From e93b988c87712b5530a28a9e24e62d50abef643a Mon Sep 17 00:00:00 2001 From: Ammar Al-Khawaldeh <3mmar.g97@gmail.com> Date: Tue, 26 Jun 2018 20:34:52 +0300 Subject: [PATCH 001/222] Update install.md In zsh you can't use command line variables in url. By adding double quotation the install command will work with both zsh and bash. --- compose/install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose/install.md b/compose/install.md index bca5527078..2ab151c251 100644 --- a/compose/install.md +++ b/compose/install.md @@ -112,7 +112,7 @@ by step instructions are also included below. 1. Run this command to download the latest version of Docker Compose: ```bash - sudo curl -L https://github.com/docker/compose/releases/download/{{site.compose_version}}/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose + sudo curl -L "https://github.com/docker/compose/releases/download/{{site.compose_version}}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose ``` > Use the latest Compose release number in the download command. From d4903435482b6247a29b6ff66110a53c70729ffa Mon Sep 17 00:00:00 2001 From: Tom Strassner Date: Thu, 12 Jul 2018 15:04:55 -0400 Subject: [PATCH 002/222] Update URI for Docker Compose version 1 --- compose/extends.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose/extends.md b/compose/extends.md index 83a6841c8b..556b26d43a 100644 --- a/compose/extends.md +++ b/compose/extends.md @@ -297,7 +297,7 @@ replaces the old value. > `build` and `image` in Compose file version 1 > > In the case of `build` and `image`, when using -> [version 1 of the Compose file format](compose-file.md#version-1), using one +> [version 1 of the Compose file format](https://docs.docker.com/compose/compose-file/compose-file-v1/), using one > option in the local service causes Compose to discard the other option if it > was defined in the original service. > From 1df778493c96864b27d56174eeea793476dd7e3e Mon Sep 17 00:00:00 2001 From: Tammy Fox Date: Mon, 23 Jul 2018 13:46:18 -0400 Subject: [PATCH 003/222] make link relative --- compose/extends.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose/extends.md b/compose/extends.md index 556b26d43a..1b7ba30592 100644 --- a/compose/extends.md +++ b/compose/extends.md @@ -297,7 +297,7 @@ replaces the old value. > `build` and `image` in Compose file version 1 > > In the case of `build` and `image`, when using -> [version 1 of the Compose file format](https://docs.docker.com/compose/compose-file/compose-file-v1/), using one +> [version 1 of the Compose file format](compose-file/compose-file-v1/), using one > option in the local service causes Compose to discard the other option if it > was defined in the original service. > From 2d0d59d868d07b2657ea0b77925496415af20958 Mon Sep 17 00:00:00 2001 From: Tammy Fox Date: Mon, 23 Jul 2018 13:48:06 -0400 Subject: [PATCH 004/222] oops, fix link again --- compose/extends.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose/extends.md b/compose/extends.md index 1b7ba30592..1c80162aaa 100644 --- a/compose/extends.md +++ b/compose/extends.md @@ -297,7 +297,7 @@ replaces the old value. > `build` and `image` in Compose file version 1 > > In the case of `build` and `image`, when using -> [version 1 of the Compose file format](compose-file/compose-file-v1/), using one +> [version 1 of the Compose file format](/compose/compose-file/compose-file-v1.md), using one > option in the local service causes Compose to discard the other option if it > was defined in the original service. > From cfd9be68ca114d40540917912b79b3c02afd34e8 Mon Sep 17 00:00:00 2001 From: Wang Jie Date: Tue, 7 Aug 2018 11:36:00 +0800 Subject: [PATCH 005/222] Update index.md --- samples/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/index.md b/samples/index.md index 8c5f38d4db..736ac99850 100644 --- a/samples/index.md +++ b/samples/index.md @@ -45,7 +45,7 @@ Run popular software using Docker. | [ASP.NET Core + SQL Server on Linux](/compose/aspnet-mssql-compose) | Run a Dockerized ASP.NET Core + SQL Server environment. | | [CouchDB](/engine/examples/couchdb_data_volumes) | Run a Dockerized CouchDB instance. | | [Django + PostgreSQL](/compose/django/) | Run a Dockerized Django + PostgreSQL environment. | -| [PostgreSQL](/engine/examples/postgresql_service) | Run a Dockerized PosgreSQL instance. | +| [PostgreSQL](/engine/examples/postgresql_service) | Run a Dockerized PostgreSQL instance. | | [Rails + PostgreSQL](/compose/rails/) | Run a Dockerized Rails + PostgreSQL environment. | | [Riak](/engine/examples/running_riak_service) | Run a Dockerized Riak instance. | | [SSHd](/engine/examples/running_ssh_service) | Run a Dockerized SSHd instance. | From e7b41162e1abadcef26f0139d660cce93edc1760 Mon Sep 17 00:00:00 2001 From: Wang Jie Date: Tue, 7 Aug 2018 15:17:56 +0800 Subject: [PATCH 006/222] Update dotnetcore.md --- engine/examples/dotnetcore.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/engine/examples/dotnetcore.md b/engine/examples/dotnetcore.md index 4a05860d53..55adf85134 100644 --- a/engine/examples/dotnetcore.md +++ b/engine/examples/dotnetcore.md @@ -11,9 +11,9 @@ This example demonstrates how to dockerize an ASP.NET Core application. ## Why build ASP.NET Core? - [Open-source](https://github.com/aspnet/home) -- Develop and run your ASP.NET Core apps cross-platform on Windows, MacOS and +- Develop and run your ASP.NET Core apps cross-platform on Windows, MacOS, and Linux -- Great for modern cloud-based apps, such as web apps, IoT apps and mobile +- Great for modern cloud-based apps, such as web apps, IoT apps, and mobile backends - ASP.NET Core apps can run on [.NET Core](https://www.microsoft.com/net/core/platform) or on the full [.NET @@ -90,7 +90,7 @@ $ docker run -d -p 8080:80 --name myapp aspnetapp directly. You can get the IP address of your container with the following steps: 1. Run `docker inspect -f "{% raw %}{{ .NetworkSettings.Networks.nat.IPAddress }}{% endraw %}" myapp` - 2. Copy the container ip address and paste into your browser. + 2. Copy the container IP address and paste into your browser. (For example, `172.16.240.197`) ## Further reading From 8ad8044c7f9d2820307d26a9ad93084a84a32d37 Mon Sep 17 00:00:00 2001 From: Wang Jie Date: Wed, 8 Aug 2018 19:29:42 +0800 Subject: [PATCH 007/222] Update aspnet-mssql-compose.md --- compose/aspnet-mssql-compose.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compose/aspnet-mssql-compose.md b/compose/aspnet-mssql-compose.md index 36c9111b01..808f347813 100644 --- a/compose/aspnet-mssql-compose.md +++ b/compose/aspnet-mssql-compose.md @@ -55,8 +55,8 @@ configure this app to use our SQL Server database, and then create a This file defines how to build the web app image. It uses the [microsoft/aspnetcore-build](https://hub.docker.com/r/microsoft/aspnetcore-build/), - map the volume with the generated code, restore the dependencies, build the - project and expose port 80. After that, it calls an `entrypoint` script + maps the volume with the generated code, restores the dependencies, builds the + project and exposes port 80. After that, it calls an `entrypoint` script that we create in the next step. 1. The `Dockerfile` makes use of an entrypoint to your webapp Docker From ced0e98f6be1503f8d8069cf29700c3d4c81326c Mon Sep 17 00:00:00 2001 From: Nathan Jones Date: Wed, 8 Aug 2018 18:06:11 -0400 Subject: [PATCH 008/222] note about sha512WithRSAEncryption Added note about support for sha512WithRSAEncryption per https://github.com/docker/escalation/issues/745#issuecomment-411543022 --- ee/ucp/admin/configure/external-auth/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ee/ucp/admin/configure/external-auth/index.md b/ee/ucp/admin/configure/external-auth/index.md index 05d005d30f..562ff48b5b 100644 --- a/ee/ucp/admin/configure/external-auth/index.md +++ b/ee/ucp/admin/configure/external-auth/index.md @@ -141,6 +141,8 @@ Click **Yes** to enable integrating UCP users and teams with LDAP servers. | No simple pagination | If your LDAP server doesn't support pagination. | | Just-In-Time User Provisioning | Whether to create user accounts only when users log in for the first time. The default value of `true` is recommended. If you upgraded from UCP 2.0.x, the default is `false`. | +> **Note:** LDAP connections using certificates created with TLS v1.2 do not currently advertise support for sha512WithRSAEncryption in the TLS handshake which leads to issues establishing connections with some clients. Support for advertising sha512WithRSAEncryption will be added in UCP 3.1.0. + ![](../../../images/ldap-integration-1.png){: .with-border} Click **Confirm** to add your LDAP domain. From a96dc071996fd6cff468a36952a726138f51ad07 Mon Sep 17 00:00:00 2001 From: David Yu Date: Thu, 9 Aug 2018 15:55:37 -0700 Subject: [PATCH 009/222] Remove interactive tag Remove the interactive tag from backup as the command does not run as shown in the example --- reference/ucp/3.0/cli/backup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/ucp/3.0/cli/backup.md b/reference/ucp/3.0/cli/backup.md index 97250d35a8..f8c0252ece 100644 --- a/reference/ucp/3.0/cli/backup.md +++ b/reference/ucp/3.0/cli/backup.md @@ -9,7 +9,7 @@ Create a backup of a UCP manager node ## Usage ```bash -docker container run --log-driver none --rm -i \ +docker container run --log-driver none --rm \ --name ucp \ -v /var/run/docker.sock:/var/run/docker.sock \ docker/ucp \ From 0ff028273a80604af74a519b504652b1bc1d936f Mon Sep 17 00:00:00 2001 From: David Yu Date: Thu, 9 Aug 2018 15:59:51 -0700 Subject: [PATCH 010/222] Add version Add version to command usage --- reference/ucp/3.0/cli/id.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/reference/ucp/3.0/cli/id.md b/reference/ucp/3.0/cli/id.md index 0721e0e1c6..a8463ac653 100644 --- a/reference/ucp/3.0/cli/id.md +++ b/reference/ucp/3.0/cli/id.md @@ -7,11 +7,14 @@ keywords: ucp, cli, id Print the ID of UCP running on this node ## Usage + +Run the UCP id command using the correct image version tag for UCP (i.e. docker/ucp:3.0.3) + ``` docker container run --rm \ --name ucp \ -v /var/run/docker.sock:/var/run/docker.sock \ - docker/ucp \ + docker/ucp:$version \ id ``` From 5458e78474dc66906fabdec51f8ea90fde74c9bc Mon Sep 17 00:00:00 2001 From: Craig Pastro <38416546+cpastro@users.noreply.github.com> Date: Mon, 13 Aug 2018 15:16:18 +0900 Subject: [PATCH 011/222] Change ADD to COPY MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit According to "Best practices for writing Dockerfiles" COPY is preferred "because it’s more transparent than ADD". --- get-started/part2.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/get-started/part2.md b/get-started/part2.md index c1e6ec41ac..2b1c3c6ebe 100644 --- a/get-started/part2.md +++ b/get-started/part2.md @@ -69,7 +69,7 @@ FROM python:2.7-slim WORKDIR /app # Copy the current directory contents into the container at /app -ADD . /app +COPY . /app # Install any needed packages specified in requirements.txt RUN pip install --trusted-host pypi.python.org -r requirements.txt @@ -92,7 +92,7 @@ This `Dockerfile` refers to a couple of files we haven't created yet, namely Create two more files, `requirements.txt` and `app.py`, and put them in the same folder with the `Dockerfile`. This completes our app, which as you can see is quite simple. When the above `Dockerfile` is built into an image, `app.py` and -`requirements.txt` is present because of that `Dockerfile`'s `ADD` command, +`requirements.txt` is present because of that `Dockerfile`'s `COPY` command, and the output from `app.py` is accessible over HTTP thanks to the `EXPOSE` command. From a2fe5b185178f9b880aa819f54f5e68a5e356119 Mon Sep 17 00:00:00 2001 From: Qhan Lin Date: Mon, 13 Aug 2018 16:28:28 +0800 Subject: [PATCH 012/222] line 32 need a tab. --- compose/completion.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose/completion.md b/compose/completion.md index 9765cfd2bb..9c03613d90 100644 --- a/compose/completion.md +++ b/compose/completion.md @@ -29,7 +29,7 @@ On a Mac, add the following to your `~/.bash_profile`: ```shell if [ -f $(brew --prefix)/etc/bash_completion ]; then -. $(brew --prefix)/etc/bash_completion + . $(brew --prefix)/etc/bash_completion fi ``` From 32ded5f6feec156fbdb9020d5e3ea7f0ed473945 Mon Sep 17 00:00:00 2001 From: Miguel Carboni Date: Mon, 13 Aug 2018 16:21:29 -0300 Subject: [PATCH 013/222] Update startup-order.md --- compose/startup-order.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compose/startup-order.md b/compose/startup-order.md index 4810a0932f..158ddccd25 100644 --- a/compose/startup-order.md +++ b/compose/startup-order.md @@ -54,7 +54,7 @@ script: check. For example, you might want to wait until Postgres is definitely ready to accept commands: - #!/bin/bash + #!/bin/sh # wait-for-postgres.sh set -e From 4bab7f6ab383d58fc4e773a9f10ba70a4b70dd2c Mon Sep 17 00:00:00 2001 From: Alex Seymour Date: Mon, 20 Aug 2018 10:56:57 +0200 Subject: [PATCH 014/222] Correct IP_COUNT environment variable name Should be IP_COUNT not IPCOUNT per https://github.com/ddebroy/az-nic-ips/blob/master/src/azip/main.go --- ee/ucp/admin/install/install-on-azure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ee/ucp/admin/install/install-on-azure.md b/ee/ucp/admin/install/install-on-azure.md index a49867950f..568eda70e8 100644 --- a/ee/ucp/admin/install/install-on-azure.md +++ b/ee/ucp/admin/install/install-on-azure.md @@ -126,7 +126,7 @@ Follow the steps below to configure multiple IP addresses per VM NIC. --secret=azure_ucp_admin.toml \ --log-driver json-file \ --log-opt max-size=1m \ - --env IPCOUNT=128 \ + --env IP_COUNT=128 \ --name ipallocator \ --constraint "node.platform.os == linux" \ docker4x/az-nic-ips From dc72f81cd32f569863203e50430f12d9c906d94d Mon Sep 17 00:00:00 2001 From: "Pablo M. Canseco" Date: Mon, 20 Aug 2018 16:38:59 -0600 Subject: [PATCH 015/222] Update networking.md --- docker-for-windows/networking.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-for-windows/networking.md b/docker-for-windows/networking.md index 37fbe642d4..a97cf53bf4 100644 --- a/docker-for-windows/networking.md +++ b/docker-for-windows/networking.md @@ -76,7 +76,7 @@ This is for development purpose and will not work in a production environment ou The gateway is also reachable as `gateway.docker.internal`. -#### I want to connect to a container from the Windows +#### I want to connect to a container from Windows Port forwarding works for `localhost`; `--publish`, `-p`, or `-P` all work. Ports exposed from Linux are forwarded to the host. From d135401715fd8c2607a0cecae233d3f35e507c79 Mon Sep 17 00:00:00 2001 From: Lazaro Herrera Date: Mon, 20 Aug 2018 21:39:26 -0400 Subject: [PATCH 016/222] Update install.md to fix critical issue. This ensures users can download Docker without any issues. --- docker-for-mac/install.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker-for-mac/install.md b/docker-for-mac/install.md index 2861c2cfe4..e977a444d2 100644 --- a/docker-for-mac/install.md +++ b/docker-for-mac/install.md @@ -6,8 +6,9 @@ title: Install Docker for Mac Docker for Mac is the [Community Edition (CE)](https://www.docker.com/community-edition) -of Docker for MacOS. To download Docker for Mac, head to Docker Store. +of Docker for MacOS. To download Docker for Mac, head to Docker Store. Alternatively, don't head to the Docker Store. +[Don't download from Docker Store](https://download.docker.com/mac/stable/Docker.dmg){: .button .primary-btn} [Download from Docker Store](https://store.docker.com/editions/community/docker-ce-desktop-mac){: .button .outline-btn} ## What to know before you install From f38330597707003410ac1c2e9316d0dd21fe9070 Mon Sep 17 00:00:00 2001 From: Lazaro Herrera Date: Mon, 20 Aug 2018 21:40:05 -0400 Subject: [PATCH 017/222] Update install.md to fix critical issue. This ensures users can download Docker without any issues. --- docker-for-windows/install.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker-for-windows/install.md b/docker-for-windows/install.md index a45dae6e84..ac02837ef7 100644 --- a/docker-for-windows/install.md +++ b/docker-for-windows/install.md @@ -7,8 +7,9 @@ title: Install Docker for Windows Docker for Windows is the [Community Edition (CE)](https://www.docker.com/community-edition) of Docker for Microsoft Windows. To download Docker for Windows, head to Docker -Store. +Store.Alternatively, don't head to the Docker Store. +[Don't download from Docker Store](https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe){: .button .outline-btn} [Download from Docker Store](https://store.docker.com/editions/community/docker-ce-desktop-windows){: .button .outline-btn} ## What to know before you install From 626c21205743078a1d3ff482af980f026d59cfbd Mon Sep 17 00:00:00 2001 From: Lazaro Herrera Date: Mon, 20 Aug 2018 21:43:11 -0400 Subject: [PATCH 018/222] Update install.md --- docker-for-windows/install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-for-windows/install.md b/docker-for-windows/install.md index ac02837ef7..35c1ab62a3 100644 --- a/docker-for-windows/install.md +++ b/docker-for-windows/install.md @@ -7,7 +7,7 @@ title: Install Docker for Windows Docker for Windows is the [Community Edition (CE)](https://www.docker.com/community-edition) of Docker for Microsoft Windows. To download Docker for Windows, head to Docker -Store.Alternatively, don't head to the Docker Store. +Store. Alternatively, don't head to the Docker Store. [Don't download from Docker Store](https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe){: .button .outline-btn} [Download from Docker Store](https://store.docker.com/editions/community/docker-ce-desktop-windows){: .button .outline-btn} From d94321524874b83431c773d40187f9b9d627e5d1 Mon Sep 17 00:00:00 2001 From: Lazaro Herrera Date: Mon, 20 Aug 2018 21:54:09 -0400 Subject: [PATCH 019/222] Update install.md --- docker-for-mac/install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-for-mac/install.md b/docker-for-mac/install.md index e977a444d2..7d0469f192 100644 --- a/docker-for-mac/install.md +++ b/docker-for-mac/install.md @@ -8,7 +8,7 @@ Docker for Mac is the [Community Edition (CE)](https://www.docker.com/community-edition) of Docker for MacOS. To download Docker for Mac, head to Docker Store. Alternatively, don't head to the Docker Store. -[Don't download from Docker Store](https://download.docker.com/mac/stable/Docker.dmg){: .button .primary-btn} +[Don't download from Docker Store](https://download.docker.com/mac/stable/Docker.dmg){: .button .outline-btn} [Download from Docker Store](https://store.docker.com/editions/community/docker-ce-desktop-mac){: .button .outline-btn} ## What to know before you install From be29da20afcedc4b3f37549c3478c4bf851154bc Mon Sep 17 00:00:00 2001 From: Truong Hoang Dung Date: Tue, 21 Aug 2018 18:25:09 +0700 Subject: [PATCH 020/222] Direct download link to Docker for Mac --- docker-for-mac/install.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/docker-for-mac/install.md b/docker-for-mac/install.md index 2861c2cfe4..a46d96a0ff 100644 --- a/docker-for-mac/install.md +++ b/docker-for-mac/install.md @@ -4,11 +4,7 @@ keywords: mac, beta, alpha, install, download title: Install Docker for Mac --- -Docker for Mac is the -[Community Edition (CE)](https://www.docker.com/community-edition) -of Docker for MacOS. To download Docker for Mac, head to Docker Store. - -[Download from Docker Store](https://store.docker.com/editions/community/docker-ce-desktop-mac){: .button .outline-btn} +[Download Community Edition (CE)](https://download.docker.com/mac/stable/Docker.dmg) ## What to know before you install From 1b95cb93e2c72a34374c3459c31543bb49c62424 Mon Sep 17 00:00:00 2001 From: Truong Hoang Dung Date: Tue, 21 Aug 2018 23:46:07 +0700 Subject: [PATCH 021/222] Update download link for Docker for Windows --- docker-for-windows/install.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/docker-for-windows/install.md b/docker-for-windows/install.md index a45dae6e84..586cc64222 100644 --- a/docker-for-windows/install.md +++ b/docker-for-windows/install.md @@ -4,12 +4,8 @@ keywords: windows, beta, edge, alpha, install, download title: Install Docker for Windows --- -Docker for Windows is the -[Community Edition (CE)](https://www.docker.com/community-edition) -of Docker for Microsoft Windows. To download Docker for Windows, head to Docker -Store. +[Download Community Edition (CE)](https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe) -[Download from Docker Store](https://store.docker.com/editions/community/docker-ce-desktop-windows){: .button .outline-btn} ## What to know before you install From e49e519453f595fdb6636d38b08266e72aa95286 Mon Sep 17 00:00:00 2001 From: Shuang Wang Date: Sun, 26 Aug 2018 13:40:06 +0900 Subject: [PATCH 022/222] Update volumes.md --- storage/volumes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/volumes.md b/storage/volumes.md index 52f3119c4a..58060b651c 100644 --- a/storage/volumes.md +++ b/storage/volumes.md @@ -354,7 +354,7 @@ $ docker run -d \ -Use `docker inspect nginxtest` to verify that the bind mount was created +Use `docker inspect nginxtest` to verify that the readonly mount was created correctly. Look for the `Mounts` section: ```json From 3054360c1122d1bec529532a11e4e3b52f5986db Mon Sep 17 00:00:00 2001 From: Matt Crupi Date: Mon, 27 Aug 2018 09:39:10 -0700 Subject: [PATCH 023/222] Update deploy-with-compose.md --- ee/ucp/kubernetes/deploy-with-compose.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ee/ucp/kubernetes/deploy-with-compose.md b/ee/ucp/kubernetes/deploy-with-compose.md index 64172cc844..406ec19207 100644 --- a/ee/ucp/kubernetes/deploy-with-compose.md +++ b/ee/ucp/kubernetes/deploy-with-compose.md @@ -7,7 +7,7 @@ redirect_from: --- Docker Enterprise Edition enables deploying [Docker Compose](/compose/overview.md/) -files to Kubernetes clusters. Starting in Compile file version 3.3, you use the +files to Kubernetes clusters. Starting in Compose file version 3.3, you use the same `docker-compose.yml` file that you use for Swarm deployments, but you specify **Kubernetes workloads** when you deploy the stack. The result is a true Kubernetes app. From 359eb0de742c1e4ce2bdc06ba67f41d9d1b6a468 Mon Sep 17 00:00:00 2001 From: Darwin Traver Date: Thu, 30 Aug 2018 17:38:33 -0400 Subject: [PATCH 024/222] RHEL 7.5 addition --- install/linux/docker-ee/rhel.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/linux/docker-ee/rhel.md b/install/linux/docker-ee/rhel.md index c96a9c2e31..bb941c2353 100644 --- a/install/linux/docker-ee/rhel.md +++ b/install/linux/docker-ee/rhel.md @@ -32,7 +32,7 @@ This section lists what you need to consider before installing Docker EE. Items ### Architectures and storage drivers -Docker EE supports {{ linux-dist-long }} 64-bit, versions 7.1 and higher (7.1, 7.2, 7.3, 7.4), running on one of the following architectures: `x86_64`, `s390x` (IBM Z), or `ppc64le` (IBM Power, little endian format). To ensure you have `ppc64le` (and not `ppc64`), run the command, `uname -m`. +Docker EE supports {{ linux-dist-long }} 64-bit, versions 7.1 and higher (7.1, 7.2, 7.3, 7.4, 7.5), running on one of the following architectures: `x86_64`, `s390x` (IBM Z), or `ppc64le` (IBM Power, little endian format). To ensure you have `ppc64le` (and not `ppc64`), run the command, `uname -m`. > Little endian format only > From 2fee19f3766a2a403165967528819a3260f0a763 Mon Sep 17 00:00:00 2001 From: Maria Bermudez Date: Thu, 30 Aug 2018 15:33:03 -0700 Subject: [PATCH 025/222] Update UCP release notes Affected versions: - 2.2.13 - 3.0.5 --- ee/ucp/release-notes.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/ee/ucp/release-notes.md b/ee/ucp/release-notes.md index ad622d48fb..325c33b321 100644 --- a/ee/ucp/release-notes.md +++ b/ee/ucp/release-notes.md @@ -20,6 +20,22 @@ upgrade your installation to the latest release. # Version 3.0 +## 3.0.5 (2018-08-30) + +**Bug fixes** + +* Security + * Fixed a critical security issue to prevent UCP from accepting certificates from + the system pool when adding client CAs to the server that requires mutual authentication. + +**Known Issue** + +* When you are upgrading from UCP 3.0.3 or 3.0.4, you must manually pull + `docker/ucp-agent:3.0.5` in the images section of the web UI before upgrading. + Alternately, you can just `docker pull docker/ucp-agent:3.0.5` on every manager node. + This issue is fixed in 3.0.5. Any upgrade from 3.0.5 or above should work without + manually pulling the images. + ## 3.0.4 (2018-08-09) **Bug fixes** @@ -275,6 +291,14 @@ deprecated. Deploy your applications as Swarm services or Kubernetes workloads. # Version 2.2 +## Version 2.2.13 (2018-08-30) + +**Bug fixes** + +* Security + * Fixed a critical security issue to prevent UCP from accepting certificates from + the system pool when adding client CAs to the server that requires mutual authentication. + ## Version 2.2.12 (2018-08-09) **Bug fixes** From 2f87993b4ef70f79845e3b7f5a90acdc5874c243 Mon Sep 17 00:00:00 2001 From: Darwin Traver Date: Thu, 30 Aug 2018 18:35:27 -0400 Subject: [PATCH 026/222] Spelling correction --- ee/engine/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ee/engine/release-notes.md b/ee/engine/release-notes.md index a8863b41f2..00f17d62f0 100644 --- a/ee/engine/release-notes.md +++ b/ee/engine/release-notes.md @@ -128,7 +128,7 @@ adopted as quickly for consistency and compatibility reasons. ### Runtime * Use rslave propagation for mounts from daemon root. [moby/moby#36055](https://github.com/moby/moby/pull/36055) -* Use rslave instead of rprivate in choortarchive. [moby/moby#35217](https://github.com/moby/moby/pull/35217) +* Use rslave instead of rprivate in chrootarchive. [moby/moby#35217](https://github.com/moby/moby/pull/35217) * Set daemon root to use shared propagation. [moby/moby#36096](https://github.com/moby/moby/pull/36096) * Windows: Increase container default shutdown timeout. [moby/moby#35184](https://github.com/moby/moby/pull/35184) * Avoid using all system memory with authz plugins. [moby/moby#36595](https://github.com/moby/moby/pull/36595) From 9f83bb962c0cdaf15a57a341ddbdb2458f422934 Mon Sep 17 00:00:00 2001 From: Maria Bermudez Date: Thu, 30 Aug 2018 15:50:53 -0700 Subject: [PATCH 027/222] Update DTR 2.5.5 --- ee/dtr/release-notes.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ee/dtr/release-notes.md b/ee/dtr/release-notes.md index 3b11316770..b5e0ebfdc9 100644 --- a/ee/dtr/release-notes.md +++ b/ee/dtr/release-notes.md @@ -20,6 +20,14 @@ to upgrade your installation to the latest release. # Version 2.5 +## 2.5.5 (2018-8-30) + +### Bug Fixes + +* Fixed bug where repository tag list UI was not loading after a tag migration. +* Fixed bug to enable poll mirroring with Windows images. +* The RethinkDB image has been patched to remove unused components with known vulnerabilities including the rethinkcli. To get an equivalent interface run rethinkcli from a separate image using `docker run -it --rm --net dtr-ol -v dtr-ca-$REPLICA_ID:/ca dockerhubenterprise/rethinkcli $REPLICA_ID`. + ## 2.5.3 (2018-6-21) ### New Features From 7fde8f7f01a0e26a0e92248657f591fd482388b8 Mon Sep 17 00:00:00 2001 From: Maria Bermudez Date: Thu, 30 Aug 2018 16:08:39 -0700 Subject: [PATCH 028/222] Update EE release notes for 18.03 and 17.03 --- ee/engine/release-notes.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/ee/engine/release-notes.md b/ee/engine/release-notes.md index a8863b41f2..f0c0ca1ef6 100644 --- a/ee/engine/release-notes.md +++ b/ee/engine/release-notes.md @@ -19,6 +19,32 @@ it references. However, Docker EE also includes back-ported fixes defect fixes that you can use in environments where new features cannot be adopted as quickly for consistency and compatibility reasons. +## 18.03.1-ee-3 (2018-08-30) + +### Builder + +- Fix: no error if build args are missing during docker build. [docker/engine#25](https://github.com/docker/engine/pull/25) +* Ensure `RUN` instruction to run without healthcheck. [moby/moby#37413](https://github.com/moby/moby/pull/37413) + +### Client + +- Fix manifest list to always use correct size. [docker/cli#1156](https://github.com/docker/cli/pull/1156) ++ Various shell completion script updates. [docker/cli#1159](https://github.com/docker/cli/pull/1159) [docker/cli#1227](https://github.com/docker/cli/pull/1227) +* Improve version output alignment. [docker/cli#1204](https://github.com/docker/cli/pull/1204) + +### Runtime + +* Disable CRI plugin listening on port 10010 by default. [docker/engine#29](https://github.com/docker/engine/pull/29) +* Update containerd to v1.1.2. [docker/engine#33](https://github.com/docker/engine/pull/33) +- Windows: Pass back system errors on container exit. [moby/moby#35967](https://github.com/moby/moby/pull/35967) +- Windows: Fix named pipe support for hyper-v isolated containers. [docker/engine#2](https://github.com/docker/engine/pull/2) [docker/cli#1165](https://github.com/docker/cli/pull/1165) +* Register OCI media types. [docker/engine#4](https://github.com/docker/engine/pull/4) + +### Swarm Mode + +- Clean up tasks in dirty list for which the service has been deleted. [docker/swarmkit#2694](https://github.com/docker/swarmkit/pull/2694) +- Propagate the provided external CA certificate to the external CA object in swarm. [docker/cli#1178](https://github.com/docker/cli/pull/1178) + ## 18.03.1-ee-2 (2018-07-10) > Important notes about this release @@ -613,6 +639,12 @@ not reachable until one of these 2 conditions happens: As a workaround, send at least a packet out from each container like (ping, GARP, etc). +## Docker EE 17.03.2-ee-9 (2018-08-30) + +### Runtime + +* Update go-connections to d217f8e [docker/engine#28](https://github.com/docker/engine/pull/28) + ## Docker EE 17.03.2-ee-8 (2017-12-13) * Handle cleanup DNS for attachable container to prevent leak in name resolution [docker/libnetwork#1999](https://github.com/docker/libnetwork/pull/1999) From 1d92b8fc29d023bfe561c542961b1c44e332a192 Mon Sep 17 00:00:00 2001 From: Maria Bermudez Date: Thu, 30 Aug 2018 16:12:44 -0700 Subject: [PATCH 029/222] Update CE 17.03 --- release-notes/docker-ce.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/release-notes/docker-ce.md b/release-notes/docker-ce.md index 3836fd7fb6..493c80f0e6 100644 --- a/release-notes/docker-ce.md +++ b/release-notes/docker-ce.md @@ -597,6 +597,12 @@ Release notes for stable versions are listed first. You can * Disable legacy registry (v1) by default [#33629](https://github.com/moby/moby/pull/33629) +## 17.03.3-ce (2018-08-30) + +### Runtime + +* Update go-connections to d217f8e [#28](https://github.com/docker/engine/pull/28) + ## 17.03.2-ce (2017-05-29) ### Networking From 7b0dabc226d104df1f37a91853b7858d626d265a Mon Sep 17 00:00:00 2001 From: Andrew Hsu Date: Thu, 30 Aug 2018 23:56:55 +0000 Subject: [PATCH 030/222] fix channel for docker-ee install on ubuntu Signed-off-by: Andrew Hsu --- install/linux/docker-ee/ubuntu.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install/linux/docker-ee/ubuntu.md b/install/linux/docker-ee/ubuntu.md index ba29e7c1cf..9ed98b3f45 100644 --- a/install/linux/docker-ee/ubuntu.md +++ b/install/linux/docker-ee/ubuntu.md @@ -185,7 +185,7 @@ from the repository. $ sudo add-apt-repository \ "deb [arch=amd64] $DOCKER_EE_URL/ubuntu \ $(lsb_release -cs) \ - $DOCKER_EE_VERSION" + stable-17.06" ``` @@ -195,7 +195,7 @@ from the repository. $ sudo add-apt-repository \ "deb [arch=s390x] $DOCKER_EE_URL/ubuntu \ $(lsb_release -cs) \ - $DOCKER_EE_VERSION" + stable-17.06" ``` @@ -205,7 +205,7 @@ from the repository. $ sudo add-apt-repository \ "deb [arch=ppc64el] $DOCKER_EE_URL/ubuntu \ $(lsb_release -cs) \ - $DOCKER_EE_VERSION" + stable-17.06" ``` From 6fa36c91032996a0defd4ccdfe885b19c28f3c46 Mon Sep 17 00:00:00 2001 From: Maria Bermudez Date: Thu, 30 Aug 2018 17:43:02 -0700 Subject: [PATCH 031/222] a very important note was missed --- ee/engine/release-notes.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ee/engine/release-notes.md b/ee/engine/release-notes.md index 11fc197ac2..29e720b771 100644 --- a/ee/engine/release-notes.md +++ b/ee/engine/release-notes.md @@ -21,6 +21,11 @@ adopted as quickly for consistency and compatibility reasons. ## 18.03.1-ee-3 (2018-08-30) +> Important notes about this release +> +> If you're deploying UCP or DTR, use Docker EE Engine 17.06. +{: .important} + ### Builder - Fix: no error if build args are missing during docker build. [docker/engine#25](https://github.com/docker/engine/pull/25) From 7fd79d10ad631adeebb1b35f3daea464b8e93683 Mon Sep 17 00:00:00 2001 From: Andrew Hsu Date: Fri, 31 Aug 2018 00:59:56 +0000 Subject: [PATCH 032/222] Remove Ubuntu Artful because EOL The Artful release of Ubuntu EOL on 2018-07-19. https://wiki.ubuntu.com/Releases Signed-off-by: Andrew Hsu --- install/linux/docker-ce/ubuntu.md | 1 - 1 file changed, 1 deletion(-) diff --git a/install/linux/docker-ce/ubuntu.md b/install/linux/docker-ce/ubuntu.md index 1d6220d29e..214d0b16a1 100644 --- a/install/linux/docker-ce/ubuntu.md +++ b/install/linux/docker-ce/ubuntu.md @@ -33,7 +33,6 @@ To install Docker CE, you need the 64-bit version of one of these Ubuntu versions: - Bionic 18.04 (LTS) -- Artful 17.10 - Xenial 16.04 (LTS) - Trusty 14.04 (LTS) From 39a76c587bfb3c125abac87e1372d43e8dd82429 Mon Sep 17 00:00:00 2001 From: Alex Seymour Date: Fri, 31 Aug 2018 11:54:16 +0200 Subject: [PATCH 033/222] Update guide to enabling interlock in the UCP Admin Settings, including new screenshot --- ee/ucp/images/interlock-install-3.png | Bin 25683 -> 109899 bytes ee/ucp/interlock/deploy/index.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/ee/ucp/images/interlock-install-3.png b/ee/ucp/images/interlock-install-3.png index 9ecc24f6fcf8b6763e66d35705019bd23f919dc4..c7ea730e55c7f6ecd1008d735a6b8a2bd9beda65 100644 GIT binary patch literal 109899 zcmaHTb6}-SvUhCToY=M}wr$&XGQq@|*qPY2ZQHhOe3^IO-Mf3gd++({dAhr*tGfDB zcUAq)`6(wO3JZk=1poj5D=zk30RRA`3jhFk3Ign_Wr_Pp_XKGg(V(3j<-R z*ALmNb)X9(hwe0BOyc&jRCoGQ~lKgtO`1AJA38!k!Trm>4`JBV8dq9opy+ zV3~6mRG5VS0fs=cu`Lgvj~CD=90d>;!e|q)dY14Ep1=hudAtuu1sQ1%#z+!i8Au$V z0W35FPG8e+X&Cb-1%Cth5N#-Sm)~r!aQ9l5!eXpnt2kIQM?O6l|L^{|RCFvD2XKT@ zdN=wedUE9=}f01(kY2}nNcQdw9`)+P+Y~%Pf2QLF711tAm1pi;xe@*#sr0V}g%E9&@l>gTA zHzhaS9}WIZqkk;dU#(y3#S6tv_pi0*g*qIY!UF){2N3@*pyUR4<_)QbBHZ#xN9YeC z)&wc)_k+oA8%02d1BA#-PC%HSA1`1qtmzfp7!@C{>P8EuiF|7pkP<3D4R7 zKjH^~KSD(efyN5`37 z?Nb-{S!YeWzfyCARs|V+W2Uh>ExN*CiQg4JM&@JJW!crd z39QB@-dRkr15x%~kpUZJbzZ|BnnCiV0n=cjI#C;?a@3|1YWq{rASI=bLxM`sl8#I& z3Jerg2n&l+xs+y;YmtIFsglD=GzQ9Yre>$q;!qQQEN71?BA_V$q&iKFOddiLkQ@)o zS7wA%gHvfSNra7ptx+!zph_6afWm7(k|7{KK!AV%0RaL6Tttk?1v_cAUOXpfHd2&% zr=Ldrb&pDVt}?2nTxB^+`_{#<5t!A}W59%)t{(k)Y z|Hkm&UMVSnzybj~K0ZDY=6JRf|F>a(#Q37heuH>=d0EnZQTw3%0s3!j{_g*eNxIgB zx+dKQkCZO0I_dBm3TEpTe$ix@Nbf2-s!xAIv|W1GEOL7u+aleZXp^qzIk`zV4~ ze=PLF$i@Y^n5_M<(HWihF4c4)?Qu^GC%x~#FJ6#YN~#^N@2(bTxKNe*k6D#eK=$yN z&yL>O3)ZKHNHadnD-e}VR?kC|wH5+9xK3pIlW>(0ow0pdl(4^hrfpa%Q+gb&5UM(T zu3V2=k5hb$qgt=##%G{;NU*W%A^cLV%NeBYuG?j#jEpvY!l}Rlo zCnMHTWWWPP#*%}i2u-1}$d)Rgo{v_sO@G#ytPGX1SaTr?D(vs&bOZJG-1f}oe)Q1+ zl*X7R=$asESFdq(IUY_MTT$F4s`2xhvlkVrS&z3~x*lw(nZ=>Nm%NZHH3^r2_niy# zsIhL;2>t06!yJDip;h7!3 zbYt(&(s6LOT*`=AQM@5RaERnmc!}XMoC&7tB~|At6j%M@^;F?NmJ-&+YbRlqYr~o) znfjgC$5_Wu7p;?7(i`{y@2b zE5TzmEo5sZbCC%n`up4Qhz)e3{Go$|eyi?9rTl;yXF5F3Bt>y)mY7hJInax_s)6bG zVPUNOxOfUke}LquXp8Z%mgMf?F`_@>Ad#xoIA1xYimQ#JVxEc}yb6}iZVv>Ehv^p+ zgTSP%^k;uf62xR?M)7z)$#g&0a+O>)SjI+$=T z`;qsxOXQXj^;E^|m0QtGin)1PK6%V!XFU%iYgC)jNy@p^+}t7aW?1q^%POp>_UoKI z9Uj~?xMUhf_3vi#N6lsnA|ZS@U>gunAew>!ps8yom-0uGv=vciDhTDGPP5yij^rsH zmKM0t`}nx<-PtJlLiLHe2_wqA#mHHmP2GTrG5=O#G{-|) z2SM4t-5@0$(Ejs*(|wwJCEa;t4wtKh{k;a3gM&kCT2lCGKS`0K<~FnC3J5ILoGY|g zmZRz9@%?!sL#xEf^iU7&T?O-YS*n6)%dvu@5nDRPi1&$llhZSjgrwxPUNqiBG7{sL zzvSmYVE1~WUuS*Eb`M9}uOd>iCL+*1vw~_GluJ`?w9-)eS&X$n+1HR*B}dJoz`{0$ z3jI@^H7-A_+5CV*{LtVHb3|&^NHy2;7ennhsy7c)8V5y+!8b+aXi_E;{h+W8zO`hD zF!`a5fPx|i(!)`fS$UFN3p+rnFjW7a$4Jt+YH$;h$KHWyXY8hZGsWwv1Iaa-sFK4~ zmRBG8Dnl{K1fGbkP?!Rt$j=k3z zzi1iG`}D5s>IHbZDb>=`Y56n`w4*|&ISddOpW&69^3PH9h!7eY+BK2Uim+0K>E+%2 zLa%uVyVFrORuTWuadS~Gu-baV#ei0EQ330EpME8YcCCm0Ag%6LPObuSkVh;3kcp2g zIkZ!g=cSZh$S96R^C&-<4JUpQ%z)An-+JlUD-gcFZ*$7)+@<4jE6(T;&X1tgCZ=i#&MJKEQY--rq*aX`!Ronh>cf6P z7RBnf%^%`cv+1B%9DK}k z$Ni9y6HSU$Vk`+x&A;HcF^45TN-S9^39`|yB~~~2^r~;z4>c&HYc0uq=(RCTh&raV zcmcjHV|nL|pW}O2qliUt{`;W1;swftiYfLHQOT*S!GW@Sznf%_PtfR?Y;`{V0nS+m zj?Fa+^J=`Y ze-bg^CIu#?qMnR?Gy2^$MVI<%evA*X9&0|(_MX4Rm&o(Zz*)qQJ4Q-fKXoS6Cd1gL zdTX(`tF{PP0pEX55fz{BQOYlR_N0*HX692D5i_u5eia# za$yf?7ug$)GvV`?k=J`UbFt<-upvAvYlDN^Df|9!KhBkuAkIPNIYefFH+mVccmp=vs7 z1r`RkYQK2Ek5C2e^ddi*??$oI-?f<|2eH;{WGvlib_5rV!aKBX=5nc1ep{MU_XN@q z#@BclV(fe)pXz66t{Db;l`N6Pd!S%Y(<0V3U_x zU@o1B@ZaxknXQ}%hk*R~aDdL3R0A31n2wp$bji+Hp4T|?3JYhA{j?#tb=6{4k^(-h zI11V)I}bf8#?Ug_ZQM;|D7hFnaO#&Ensc6PRHxRu#qujG*lP}cR7rfFpJKUC6D&3n zT?sQ5mcuH^_AtKcUjNPcy4<+*_-4jqJH1n$i*>r{41=SN>h-T%Gkc`p8;jZHsaRsQ zvC_e6t^Ptn5T^e;s)R%$Tw3g%#KAcAT3%93)p@}ZFnFm-f(j&KW)>fb6vfDV-RTfj zlW-}dC3(?{a?&Hf?QfpWr5aIQF;;rCU?%k0E((YNBgW+qy)b}eAf#Hb)!T3yPiF8= zH7T)%VIT`DD-;kz#*}ZTFsSPTn-lfWzAXNM#9MNgkcWSVh4^~Lm216yESGatX-5i`21Mw0XIlBGwJ_#^S%D%$tXs)KmFf1qa|@yhFH#MX%iU zCOcx9)&frxu07XJJT5V_pVN-Eal7y2U9?=@MZkQYLMB$%C~K5}^H%xwOJ>(UDz>Ox zytRJ5FxN7SroB}#iEc%PYaGOwWEGDIvQT=3b@yALfu|x@KGR6+anuTj#qm?2WUWG- z^c0i%uZG^5?eG@t*B1-*G@59PYV&vav8#nFtP2vc{$Xdj@x-foA_TiP&upSL1aBo~ zAm2GleG<;i1Vw_@{5%dv33_*RRaKqIY;p1EeybrTE|*H}R-1WjNm5RXPyD;{^|;MN zR8&m653iDhwfa)k=?ZO4s+PnpQ-`=&?%T*kh5VnNn!x>P?Fd>I#|E>f%+ zKc$=+=$0-Q^Tw~$Rab~gEsjT6JyA?4K$laQtxLX@o|KI~MoV^AmIN)Mv{MJhMwaHG z@Qwple z|G1ups4RBq?iT@62@cwRhzd`>&o>$xVRa!q@b(q#9ud+BM8DD=!&q`%^s9@< zhR7M8Xvd3T`exv;xUs}#3hrRSQ*<@oUb1aPt&{c0W9BioZ=l2F)vQm;DHkKD4Ry6% zML*_spt>h@tNJP*^E2Lx?+07l!R}m`7)&xBIJ%=rwwa%((`ceQ-w5|@A+ct z$GA{Ys7dl|bm*m%uUo}v`A73pA_!wKA)6|`(QRx=1|pXT@kV63X~oFX_vJoI4jxP| zY%Y9(6v=oUDTkNpe&I6@JEkz*u5lEUqZ5le22X6~2Lw;T4g=6;vI51rOpaSxZohGS zz@54lAqQjdjof$4ILf-kURS+89bvtm*O{1Qj)gR|w1AzR3J2hoPl4W-Zoe`6V9=F= z3izFJFm>&i;Oa_r*%}63q-`w*fI?5@OQL@l7B1fUI4;bxd$}_oOJ$K1USwUFMe4gf zoXk}$l%Z4+6C=*kYTKFzz&MQo?Vg!sipkRT%O-f;)>;-g4x?(k_?_!T=z4EZjFl5U zLL0E3(=@_#$z~Oik*@M_F1iUXzG&60RqeGnt187I*$kWf;@T7S<+0@=yIDmEO-S+x z%~GMHuI^l!!yr<-HJ@O4%(%gt)w<24_V{dX|I(QIRa2d<;`rK`E* zACGKLAB|F|U@bRX4ZuRA(@0_`4FsUryq`#X7t+GvKGFI!l9M^*=H_|4a5rMoqG;dG zp6KzSv3h`2v1nuBLX{;|^afJ|VK6^ovSh^v{NhOYu=XyyU-8cg9MCpW9kGcEI|9JN zeFhtzu*`Uy`5G-PqpWvMv?2yZv~3a9t}I6rX|8T>dvl|CM_QNb%#lCtD}A?rl4aU0 zS>K|K$Hv6)XAKf5nZi%gCvZAj5OX}kg@uJ7V3_?L^^(Oqoi7cyTvS^r-%s5c>hN-R z_@+wn{8)FJfFvKywg1F5UJc?nk{KUnYLiTLz@V-;M%~J@w8*qvg;YaC&V}p@{}tsv z0EG7Z_*XtJU4;MRAR*c#Oakxq_eFWmk*NIqWh5lI_cXa#>X=C6$%(PTxL_JljnI#I zpUHj_lBf4M^Yk1eNDimGHu${{v)04!P;|rUx-;^}+2VqZaP?5`+g4ViYR;gqoQDSSSKvA!8*n3K}`uA1Y(sYUQSGc{3^1D|5Xz?^&-IQF!e4X-%yaWwPF?e#mN5Kf&Z7jUM z{c1aK{#xnrguL`35V$vBD%Tmn%OWx0n3J+mawtaYEmePK#~r{pID^EYd$}IM(~Nn7 z8Pjig7k^+wH5Y-?6g#NY?9G(TZeybbnEoTh=E=tbrN`_zi^E1jfD0wPOR^k%i|4LO z56WklQW?ERq?J#;L0J8=0x#N6`wCG&9%x~7X%>`bBim{14 zGWygVVOgGeOaao)0l1^cOIz1H-bpf;U>e>b#MwC6^k+1 zuYIL%}4l;88KU{ zBxkmsF)bBXV^_UD#Rrw6!^2t+unnuuw98jY9yhVsZuFh6_HWSp!mk=F(w~pE_S$>R z-`RXlXjIbkSvwmEvmurp6(HKT&=hc6htj8?u1k1Q(bNIvRBALc|e>-&|OO5h`&on|*n zVEJpx=vy1g5`$obO%{9+lGBE=9){R@P5tSb<*rJT7aUDqoB`wNjYZM$b$kin4)F$y z*J|I)qq(<8;A1IfPtlf7HPC);--C@FUGP)(pTCa3;gEf1wj4%!hW`CdiQ8_HD&bJKNo6929oQQTSN zP<_WWCHG!Zt0#^JMKM)(8>i~e)~I)0_MvqWYsezsd3wmsk zW=Z|&s*DF<$dKGNx9-;YsFpXr9C})-1{MccEp?a>sm35QBVLpeFjVbXWw+*LW7s#d zS!IwO8F^STJ=}H#`Ga;R=dFCVO}E-t#Pq2aj_U)KZ&2zG(+u9WH6knbmppw|%?fFR zXlDu}2CF^}=W8sy?b6NfKqK&5JNt8(*&BYe3Zhw*J54Uh7dtH&@Sfl|V6p<9GCEoD z;Q6O|N}nxR&AcuZ!Ld-ycQcU-Nw zS-Y5T4eq=v3ap#SM>-HixIcSu;?v%)N;ff)GfzWO!b|kelF2i#6VxIXBwWe{m@cg* z?c=qz@-s?}vMxTZiwiS%WU98%si>bwX4$*DH7%h;$TDOE-Q1c^APHfQ1&1CE4JfLq zd&e|`K({TXNuQ{pBc8XUs$JXdMLsJ=mYg<7d%aypt!vi6nl3$5#+Y>&8qcDYWu>AE z>UKhH6YELL!fjOU_=P*+y(v#8aHD#pYg?Lg^gIeqct$g?Wz`V>3a%fafOb4QD#zkI zeJC&E)@ups+CuzpW>qs&6jrV?8wp{trg(Lo?U<<2kg}n=@GKU{f6)A#edM8`$>2if zf1M1m8tA8ZdgOn)Bi8(esVxJl5K65=!$=jIMSSK5VBhK7Qc2YeAU2 zVukZp?g$3*YlB<$da8Uyk%`a!0lIXtQoDW#3AkUFuIKiHr02RroueG@s{u^;02@K&wSL>?b(v6HR%tFxfh}0!V+Bpt`y_3fZw( zuylW=y=X+2&YMp$Kz|)`tzi?11Qr4>2vbjr9$-l@;O$^kzK5t6n}AM-=!04DHy^yn zm8{umtrx;(J#HJ*X~q%o)Z}87gjI8t(3OC5Ti);0Bow!!bo@HugJ_O5eo;zq7S(ZU zb-at@=NbLT>lQ1w`kW=T!ar~W$6cBbZ>T)vJavq1>w8;fUg6?npg%lrOom@Dnh&J! zGMBJRe=gYfQMnyf+7gvid*kE9hxDCSH7AGsIGvRnY$IKcrW4@tjL5Nk56=F{ZRT+$ zQ0mj=Qc>s=x79Kp7-tdH&cT{Zg`GvCH6Ki=O+`*VM3SXuN7ZI5IRexgpi-`p>WtYg zpDWU2zYB)NW@A<0nLAUZFZ3--QiRDvFECdxO%vbRmi;_z+_THvw)rSbJG?A^Ku@I+ z2jKEo6|g2$!*W?O5yQB&qp;ASG>hWA0t*W6iE?w9HRvi%5Cb?X$}d{gjFU~{QbB>g zQrvI$hzN`Guf7+{I9#6i-k-VhDWc@QSQ!~K>Kz7ybFGU)PwuO9+}73 z_LA&~KLE~Koz~v!L^}@AH6O%MbRDk3mlakPgIZaQU7eEy$4)!tOy&WpsVzyY@ss(9->BT_DS?@t1Pt9LRjKt@BSRW4aRK~iCt(W^#3|6luMM_wp zQM-(q)|I&%VF1mQ;pwRy0^+^EqxHtCEJfiukQz!X5D9;xR@~<_V)Aby>bg`LIb9

nd|FJ&9_XjKtdC$Tw9EX9?dVj@qi8`$uMpo=+V95XW#$}wWHE2$=U z1-SSV8l`~F{>Y|`0JF$6k?KkJc~0iIIfq0cnRUsD4uG#6nUU4)rdwV2`!4oXjNel< zV1a<#4ibMYR^fsIJ#K7`Vi>dEP^gJsoS=_D)T&#JRZBlh49U@Y8eLE@b*DQg@jS5F zXyWwrXmmA(?E?*EqPXuJ$-k8HhxU?;PCVq34F>4UTPlfyz31mJ+`H?dJkRXS>1iRk zjO3h*3awYoxK_G`C+3S3jKezi&)}0CPthPLj7#)|WzXAHmsgY7`so=96PxzC25$`o z^KPbENXtLiWQ~3k@2QTN$(wbiOL1=TCH#}7gaEk^1?j85_eocNXQ*yo*w{XiggRLl z<$oSlnn?YnW3NN$X}mG_TbafC<*v^^FvR_A|1QN*ukyqn5XH4f93GCkfBeh}@5x|U zyWN936m2{$wqWL$^=HB~@~VOd&d3ENHsZK0<7x_RN(7RL`XX5jkk&Txv*hSvgE6kB zXd)zQ@v-AueuCp*rqwPbjlBU|BOuD0T>*^QNw{;8SM_!dBC^KI?7?FlET*-euE`2# z1n!&rIykfs-GFQ%Oc9b6=m4cMLpFmof=M9=^5snNw>;3Gt{7j?Rl}UCg~zT!a1ptP zV$$F?#-9%hsbNbYi~4rZ#0@kNM3Ed2rP|29E87B82Ri~_`#jrFuX?#+-JI_??MOsN z4o((sxuwETtYg?rCbYg)R;EkhRa=t%NX13f|<4!NBdsExU zEd|V<_o%I+t{Sc5(<2^XHS~;GpY2b9Zb<`n8mUthjOsX{7NKTw(3r2{gV4-rIC>~Q zw&O7wGFY{m(W<_xW2p^o&Pm8_;K}qZ=)u6OHXLM??3PzT4PGztn2OhYhbH+efoj)D zOi)q#_zI&L9Xv5R(3P|5<+An|kBMJOB!fvPky-@<=M%gHD^9gV`y-vFa>{lIltIjiS zMUHh86qpqMuFyED!>tO>xF9(|wsheQ; z>M#1A;C2B$M?b?ztUk-^+I&5TkyfGyxT0M|#xUaALo_5G=pi+cGFeaMk_TM$J^jiH z#?Mu$zKc-jZ(%}f$;X!%@;E1=gu_=0s(V(pEyEj%^8IM{eMRMyZafdn#LXOMEyU%$ zT*op@X^*PZ6Fmb_%$8WK#9vx^W(VTbTS&4s0J!JMI+jmqyvE?HZ7Pf?g@e35S<(-Yo5;K#+uXvZ!m8)4PNQw1uwKx zInbs{w<8~{n*2l6dKtZ+d&Du_8eTO>)U_20A3s{ZH&}nJNZv$s=|k5_w_GR$E+q@b z++?NrdtG$b#rmfRIgOAKShipqt8mXHs@zkpKvj1-{>SrKzUMkl5 z3`ScLBjK$FWhLcalSkK}ZRy3c)dst9mal7@)sB8_)tr$&bkJ9Ed+b1zMSWcX@`RQ7 zCbgg<3^)f|iv6e?(k0)n2a+!X(f%Gho{2Rm;wu`ln}O(9&VBZmdgab@KPqf zznno>yI7dNZedbUeYNwX*HLjYIb$(1mj3L3pY6TnBuqe(sHwd@@;7XhZ8;7(*?qV(@;;x=vR3udlf-v)aGYwyw_ey2 zOu5feC~HyzS01go{yu7PH17wbRfoeEM?~|=bg6e}T(Y;}Z_A?lB)=eLf6wVwEY6Dd zF!g;z>qwEpBCimk<~wD38Owknq&kZwXVUb*85S&Pom2EfjRPaJ%yD?($;7jqpRu=~ zKV7Av2RPr$6$T>zt`o({Xr_iZ0H|C`zRDyAK2AjP8FqvZGn>XK+#R!(r(+pn`(>Kv z<3)bBfpy1Yl0#LY&nK?`Jg_@!@~?|ykFV5gjg84~N!5nUH6FFKjv-DJCu#w=W2j@K z`5YA@i+~d2uS^B26$L)BVXCBpy!<$+k`fXllhju^<@pD_qqM^TYuwZfyW+1ZB~OGiN33#!L+mZv|k_V zD|EElwCgZ4FBG$Z6|-R&FK!&&&g@GbT_c>Y?+NNZ!Z~t1?|6Nsw-4sJ;mK@vM4=qk zV{IuzFNJF5f>;L&d2ZaVEbZi24_vPIANe!Yg!e`LDK(MD-RiKW@_Se-U6lv(;nERY zR=_n>l2y$J!s{u9Orb%!aAz`&t)iLQck19hMi?W{l9(R)X_nIrn@jmd7>I~~I{QCO zPyr0nX30oM+<5@daBw2-PLGF1$A#@^Muo^PAm7^Ux0zwrC}vv(TfT#DQd!_Sk9v?Q zc?k>2*Q+SVGyh60keHLt3=X^jK8t(b&Jl~#yv z*Ag37sr`gsmv>7$I+9%(!7XW@wj1DSBAFBxR8!gp(N}Lvu}TuK=oy&7 zFXg++z*dJIH-8K$cA7jkz|)+J1W6pQH@pO2O+FiI~?kqa>H? z?{_J!dpJMq7?sJ&r@s-0QlVc!0V;12dY7cZ4f{gaE3Q|h_Q(q-D9zEdvf?mUr_Rtb zOXsVnQK!M=H#o1euq@`4d)5k7Gg=E*x z89Z7^vRYlvrCF7DAFaEn({6Q<_%-X?;EDllMss!%hz}mW(@ZLCrgaWiA~$%}e=^BJ z(-RFm+5{74%$XC9515F#{}ZP4#*>Iz=^M~F(TcyZm4#$D8ci4P=ob)GBT;mfx+^gu z19TVn0|h*KrNcJz*hk3omh&jsx=@)qATc$KX%JRSg}Q;7g{_>kuwXV4PTY7j%vQK6 z^t1*;K1qLiwzRq8K!nT#*V4R#E2o}d#{k(u`N!E22j}4RU_s{8JZIkeqA}q z5%sd>`#Z$e+OJlpoEOurtL|t{6j4=BfWk@yvvCYnF_e_%8{9{GSQf`n#kFSZEQLnv zj#5c`1*gJJ8nqMH)a|v$Az{hB-+>breStr)0q=_|ZPr(bkvE|KAf9l5RFViprbKWl zAB)O@^+vUAVZ(9gU$-RiO-MB1xC%;d+_jEZtIY?IT;2{{P4^*vhTCg-_w1LCWziZr z6IC}yvavxleF_V7cG$*kl2QJkTDr6av$b0xv|5}Xak++~Q4(;9WuxcHm&?JRpu^=f zG)_=2myoGTXMglk~}ovn6r2Fnkp-$ij{z8J)x z57CcUU%FXWmz;@StoGE;#XF!`a9E5HoL0fKc={cK_K!@j@|2G-ifPna1W_uNtj+Es zOhAKtm_bxcT9q!8lS7}~;9DO(cDs$fmYZH;Cv+?7yh?;xuhxuHgh0DQroPR@P3KaC z=i^kgwSB`U$uGY5xhK{hp#xF#P^2Dq5hGE6li&wW2w;=|NL3mjcxrY z@ZP$`jmsU@RbdPgX86}Ya)Eix?`+DFh+=aI6i|72Wl3bAaVB*|1XN|DhB|5%O-?At zbxK6*X=&1B0oq?h6+r0KcGN8S-u1Z6UpSRYIeCY@7VCzehMN4WzdfB4r56(k{u^L< zEeqmlZ*MPjGxG6pElmCo*zhl%{sU?JPjoW^(3j;QjsCA8e-PD=&_F~0E}dg}7$N^k zJ^zn1v|r;2pu_*WO#eV-|7~joh&4KhP=KX(#yA6<|6Q~{G%XNM#|og+r4aFni90<( z&|;F3LgL~-RbPWHR(1<`wZMr$43 z*k9*}u%2FaFjeaRCBX#`$XAWY?re!csZ<5FT(hx43AjjWyGa5x@-baMMVIJlpT{f6 z_+N_sH$5RhDDeOj_j-45sW0T0!yx?DgD~|+@q`Z+wE=XTDE$B!Hm!Nu&q0@Y`r{`YYW6n{`*-th(9O+_N*$Otj^=og zl&Sgp{A)caYBf~zf-`dygEZY^LH1V`Fub4S1=B&s2LrdM8~14gmYxizD}vvex8k`t zU)ndp=gxAU^j4&-II=F?=m#v-cuYwXFYCRdmY5u@7X@EtFoK$t&`HB#R`_hs@7E$`Stfoqv57uR?_U`gL3`zJLl-r#7f)ZyGgD9KOT;^se6aTmS_yKJ!p; zJ*BfBquTgd3#Gc1w3BZ)A_!+k*T`z`_pVLKYM~$Ap1bGjOxM?dsXasJYDzQej@A0LwpGHFfrC!bSK>-regHmo`?&$v<=Y_RK_ z=fRUQDjkIk>^$VdU7q47oU zh6d@0EXXYuON{Z*OQXH4FjnfVtqa_1Z+5TQz3%p`>a3T3bsi}4JoLGcwMzBguzUgp zh-?q4d&V?ekxxu$L>-m_-gZ7CEvDBg9QT`nQght~yuVwwcrY2Gs^Hau=p<+3jTZnm zV)i$s$46Cdk0TPSHYND4D_u^vHAqe4nB&|Zb*c;Wnn4aN3qQNSt`7tUJ|_zau>K7Y7P!q}s|^O8H*$NS!S&jq7Nsj&_bPf`Jp| zi6}d{KWMkTZqUy;pP=(o%)pYSHG_+~83VdyI+;6jle)&>)KB-%=v4NNU)d?T4TymAbzcM# z4UK31!H1*S*21-flc(MT8g@rkb>UkT;z>K`@e?(h7{THRGns@QswJTS?-t(h%zI0R zgzOidtIasxzS0cMoS}F(y)oV>*+d!sUG;TxO)DVYaK2nd-}AXgxBbBGbUvqToHsjC z>77m9KzMYSUijifl9b@n&z?T`4N;_8>z&G_Ph#HZJMo#U;9Ty9*uZtoO;PxT&9ZK{ z{a1YZ^QaQZMlAP~YqeSztjF3xaHi|^6l|kGzw=Gm-YK4CCEf6AXtJ$dUD=ZqE8(IUK@u zQu_tbP=QSupFvo-Y-$<1ES3e4i_ z1K5yijE*R}(C4%6D7;TDbU3tmOy9Nx<;yy?)flZ27IB#^NO$%~+y-vd#NHys(Imw+ z6JzlA$ZidX(fX!mX5}4ODPN!l5_;{EnIvwU=juqr45pYgk@0#D$taGE_F*EhSim7u z=Uv6I5A~+%_Di~~d}c%;k@GQg#K8?PS{ zp-l`IZ{X>Nm>cAolD5e2&DlFak&8avnth{&3B0n047gf6NJ**J`b`&Ou%d%z^W2ZP z&43cEI7)`zm@)tg0tpimBV_2eWh6yE-I;}G_{%M?nS%vjB=M`7m)+)6mN@Y>k8rSz zdJ^kso z20q5?;%znpGEvs(D!Z6du`ZAVM zVgllKSEb+Xv}#G#l^+6)WUCnI6a) z6CEf{t#4C}^Z4K`SueXutP3&@YAwdv1Ku?k9o<p3UH~&@LiU-L%U6UFKURp?91&YZeaC z!QnwYyOfXwUjyu^IBhS;_v3PACJ~s&CnKz+;;L(_LaWNYr*oWMV)L4$8W1iC_L18b z_gBOst%6vF^zpZhh{|Nwgkt8i-;VaTnM`5s3Q(af|LvN}1G0oaYS!)*e$Dp%k!|15tqfiDB z{#ND9*=PTo9R&a>c;^lDh0H+`8oMlb_tLkTowZQ{W@HN3+6&pmUST0~II zcsh}IcNea5ys(dNRlbv&YKXo#Y*6`Wzq3`Mw=?W_r^86nQSb)iLFslbQLvvJKNqho za)HJ^^{GGFK7rW0cg&BT)KvR7jeK zpGZD29Mt*4p9X(^>YTkkd5U{NwcHE6Q-Zx+?Gtc!9*W)_aiiYio&6mDbjM%+{D>q9 z?P+y6j^v3VAiTzRqsk>ggG~#Ad+yvBPngta1JzAsKL1JPo+F8TXEBR?e!4jQTfXnu z1rIK^v$EVBu~NHeaBwyEiGD+i35aTPX}%u-AcBz3XW0&j9W{AYaoJW~BL86Eznj7=y*t!nn{YIwDk zgtrvl8a|T&4JL1~z2g+G1*btTxc+hp#ZWq49^`@L}U^P;2waffq9VIQ8eEDa3)I=`a1zSEUTj`|YS?;rVCRaoACR}kASw*H1)};_?BR6JqDcg0 zpX_B2C&F*a7>I2^yB(Cc;mOdk#bx;Ool`-7a z^((M?8x`3#8gr_v7y!+t4Ti@p?BC|U>IIo6{yk03YS^vt;;Lb82%|A*(UTov!uGip z7`Ix?C;6AXEBUAP!ckla2U|GdzV&63>4DWpP%;-oTivw^hJZ4p=e@zs)esk0k+I%F zPhJCOQUxL7N&T-M*8 zw?wk@3skX|YyLKkzHkfG(Wgl@yz~!zGFg9oI=kI}I@;}={Wy~Ba%xvsv%4_rx%>*q z_9;%dB*7Ea4$z@}s(To_4(PP@_<`TVBQJPyfAO4G=k+~%TP$VjrLfr&<>?EB_#8tT zDY{@&{gzHUs%Buc!0YdQ^Q3&6(Nn2?C;qrt5PR280D-ogU+h=*`r<%1I<=VosMQO;zDx`U1 zuXsW(WkqOQBA%GxYx-FI+nTqpyEyvVXTZfKasb-&R&P$%45#w&a^T<{_U*p0nAN?)Nv;!{EmIU zy1dh9!&}Qi=M>J%6_42`PH^PFgs_B_d^<&>y_69xWQfdrZMfyr#{m`CShB;)ii+BD z$;4j)?mi#9=ClJoHKhX>s1#gSjBApeCH;TwePvi&NwaY90KwfM1c%@rEC~?YJutWr z?ry;)xVtmB`#^AacXxOH*qhyV_dfgn`TpNO^PK5Zr>jqOm-eY@;cVaz)8J6_*C>x$ z%$3o~JfMna`zdAd$<7$78>Gt-kI4KJX{I?#{-*@p_o>S(K^Q0UlcD_^sgS6P?y%RC zo<7PtDf%u={$*KuiXNX{9$o7-*EFyP}T`C};i{$0CxXfHr2r* zl34@xuexf1qNly57UOOLD~JJZ^Bd|P7ubhffF{WWz**K>-g{wjV?JRnXonZHnKKTp zKv>EXv0smCQdY+^sZmrF0_!O{=#5wuI^=R%LHmLb9kv+?1Sc;WmI;#)zhJV{+q}rE z>&Lzlx#_}2>Fyb(Zkz8+Y5vT}qVIZ}RJFGvh%mRI3CbZl!xBT|=kF?#+O?-^HGqX(pvkN22p(;XC213Qye9vI!l+B@1TslFxk zOGf^Vd8E>8*cM4aW$8vcx%bVnFXrehRxD{pD=7z)v<*Hr51-HWCCKGgaCY(4k*MOk z*KMZXvK0f6meL6VAl6Fc;(L6^}}=Re7Zk#tX3?`<^Yu@ZO$$bXO_h2X#@@i$y_^5cqr?f^S1U8qG3bLGX2> zu|A;ZAbh`!=qdDK)tBCjT~ncLKyP4cFBtEzGzOx^6Af0+HX1q38}UaD^O2tJ!iLS| zstD&f!VH^}aac35(*K~T64!OQH3`jm&SE+0ihKX=Fi7@S{g-5`uPFnN4TBOU&-Sv# z2#jp+qTU{+TCr7d12-kA##)%ea5P8T1c*TBmRYl9?C)K#yHazOm_D7N-Y1;)OLBen zUXga%D~nkg5U^Vsqqo9qRlniAZ=FeB(6hbY2Lxoc?m@~Gf3smTOznoXDVV`cszV-c zwl^p8!D2orf3aiyw9JNN-rLgMEbc~Qd?Og*&sHXCO}_GWFZul&M`}c%>mUNY24nN% zH4|I)V@dm_FV{Z;GJn*h;PMq*YP3I{1{l8ICIPG>7+l{fzu5xt{^G0$?j!T;#E(+tF+HTcr9;7uM#BW4S_?hk84^(`WMt z;_WwLkz^qfC)~F*%iMhy)zlVN2e<;u)IV9moI1klu){PG9)x5uF3AX{B#j({_6(zu z_Mp>3=8P0Bf?aNu#D1lr60wQ&J>g`V6YQ;<5=6N74@g4_mgd^)x zTYy7*^au;04NZ5=N;E3=7|FIP%NJN`A=oDZ7~9OK&)AUrem!tsd&S=d?|#w2;eb*+ zXWV$Rv>1^-H?WTJ!&gKSFR+0w(F<*6*yD@i#=vL*92ggA_m1c2?2-qxrFU1LEtwz6 zA`#S`*-SDvffJ4XX|C`rBOah#%Tt% zz=0XtpZ465a0ntagQ`Uy#=LBH!$H$;)Mr(^tH8Igas8{Puv1f0TYw2w*!4tsmqCmyQzql)}<4RTMM z1KiXw;Di`JNC0!VcEkXEObpvji8)PW?iLDCdkxJl&Nyy+USP205o*7C4(p{f%@*E_ z;03n5_4XjzqqHXxEiLV5JYUPn>vxIM&Uu$rafXtjRT9WPIBNv z{N!7rKbwv1SaxD!vo4(PI%H0yWd3yK_5qG8BCye4r_S!~E0Yci{!~BA#b_!^>Fc&Y z(Dc!-p_#PD1Drqs)I8kxCvs2N{*=LCa8Rb@DU8k@q1s|CY>AYy@|#8z-2Ne4=VnZh zczND!4esxD1@&>N%+lD>wBg@Jr)|la#%z}`q~h3|m0$(;qLMb0Lu0pMKI*b~T#=is zu9l<2;urUrzzKBY5toG*xPJo9F;h4n0IV`F#D?Fz;ibAV`Sv+nKmaw(|I*$ zQsiqB#3TDzAKq-8Gi*2EBiyy7Cu|pY;o?Z!etUtYO)}$_>-Ab8CK1BA8exhFLd-1j z&m)DvrT2Y8)VUr9_%*W0K0w&uAJA;LUILsM@6fu2;^n93T(p8%%H<)a>v(f5-YoUe zh}-}2HyA9JyC$lGXd5WAW<}eD<=$W! zkA3j8mgbw36;dUtVP{U?-+r5<-w(#W2*M&qun=c|x*>h{asf*p-e}T)M^w`D@ARXP+5qFkp&-yp5p%cs}1SY+A*ZHks$_xBE-Yp&simM4&#mvlA zKQE8is!2rGSo;&4^}af?g}8bfPYN!g|G+x zUYjp+B@<5XR>AMQ#y#MS2@w?L2?ONvD>*e8Q+k)JxHcs49JseZtrs55LLQD`JX~qF zUF^s2sVvNTBHqg4`jK**uK8@XNmeL#B0wIXIWwG0VyY&sv2+n9O>$fKO#F*_|Gk2^ z?Z_%r|DjHjhT&so}cao|2t{fcFxy*H!x(I33UTl`IL8KZZdAb(JrVOQV)T^sI z&%K3ER3}*QlBW!_KVV79w=0sXogL}-)bnv|E^P>S3ZwSt4)&j$8f|LOs)Am|#vx&|dp1LDQ!cUUP-=I+HcE7=E4>4^da%#8QQ#X4{{CGCjqDnWi zDsHwS#$6nSZt~_R2l(4crL{?*q0>BJHlblmNM$0a?<;}j1 z6aN`p3N_)6G|W*}{4ni@@e27A`^1x%sg=rSv~hm%C#hG4VRl&v19*;z$kdvL#~wm= z%4PfrsE0H=W0D*^!Kp|YfyL>B!<&M!}?Iv1m9 zxw>w86_zfb%W#l|=!qRPp z*4+e*?OT!HP)iuS2c-4* zVQ};mLTT61V;Yg~y=VAAa6{=|6F2o zJ)vl--6rt!FWyWUk_#o|ZjA=a^vGXA%IQij8N%4^sOpY;eE@O^+X^EX2F_2eNG*-$ z7GtE9oGu(OV{GHw>B4W>7(81$1myQeVu__HH#=RYlC)KFmiknf-dDELfaq{=aGAX2 z?;V-L^4sdj8ZY5r zX}RCaeoQJH{eo&^sUpPSL-8eVj!)~WsXs)fc_Iy6S7L?)5v1|A)=%J**O&4C}|M&LyDi5T*t{fj* z0U!bn{81~%RhL#L=7VC{$Lx5<Od5#ibY=KvJxQ0hf6B|tTW`)<6Cb{AR0m2mH1)kT zo<#f7=Y2=F*BAbPGCFhz(|PhDAgOghAs3+M1WGb~S)EXf_%iZ?c{bh!Ry4xHH}i$> z-D|dmc-_JflgI2E^_g>Ik+LT=_`>|tjvH2EsE0DEJip2uYDAi-YL(Jt85!wMUH0jk z7g%zV?HqCF88kvA#69UWUu>SwD^zVSxuS+iGN>5G!#1!Kce_HD+$Dsq#Q`4%q`~ve zACJ7CXsnyOQ1Vg!Xvz}Eu$u6htA1q0XGAt{&s7ysAvIW}HzH^=V-ouo*t4JLo@w9#JSUD5?Zl)Qqq9SYx%NFE|w zV(~|}Vq&5|K~EFCJB}}DWb>T6Z1+(7My{M5Ugf(mi{Y2kkc`Fd@PR?y1t=Wv$!NUO zFnMA*iqgY!bd!`O7B{!B-WN<=aJ9s38+PGJYI-Q@bjY)hE08?FgO6>gcXMcjB4yU} zd?a|_;LEc8RO}de;CR=r@&kqNRNYp1x|~5ypR&7?JXp(Nn<&3`p6MC=j7;?R<2$Gb zl6u?4Cw`?wuZUn(aoU^d7hN9{=`C^jp)&%kOGS+6R$*X$geql0tbT*X2f;+#v*EZ- ze(?;D%)$mXufXp$sp!!0aWk{hK^cXQ8eK)>9)64c$TL4u#7qUB?q2)WY*#EWv7zCc zL~cG_-UN=vk+vcb*PD#YZt78&fe*-nl!zC0B1f<>esTJ^wKD zL%43Ph!+XphYKEn{E~db3(ii_3ZbSrBQd`}s|w3q_uZ9773hVmvv?&!A~Eq>HkE9t z+9|v)2Zh)iz;r^H0k4M$G`;Z_=9*f9BFo>=!o! z4DXDmcl}b|=~X;bgnsQLPG+^|YVX@9%?Bd%s!4BAP&mx*e6PPPa2n{Sy)@1bAE3>^ z55$PiI|^=(H(j?5OR#Jflc+n4Ia~%E3ZET;7;esQY*0gi!6O_UWxJA0*pH2o&J)?~ zj2yMAtE8WvCNWgOI;^^N&lucx7Zdr8GLxlBh{7>K?QtTNqMpS3F7F(T1!5{j_=oKE zzkhNL%~%zacd0BD>$X)bvhO^{OJ5&)Ne;TJDAQ>zMr9*hY2^~_zcpn;5T(S{MhAWt zFr-1$8Z$f(1GF)|u&1r42*1yy?ahyCs**F)KFOd`m0~~aLu}PV->b>*SJSOMMUYw$F(hIGIFQ2r3ZC zuo;U6(|(*Nn)vpqfgD+)ZshCX&=%LDB#P=-*3+JHdhO5rd>!nHvuDxs&A#WCHqRUL zZi0)v!LAa^<(`WHDQ`bhsB)L?WWoXZi7YxA_{r*gS(UA40H@M}r`UAz>QU&IUYA;& zJW>0doHG)}Y$`Zu(JUH;qJ?Uuz@Y?5nL7esOT*}ImkX+o9$bLR9?VB-0>+JAb;%=s zWM5t}p&026f$lzvk%61;#nP!{umCX2LenQmF>FcO^p+v*78B>jt~>Om^_L5elFQJd zKhSvqwMM>HE{s-ELqi{*p(o{v8I_%2ti@rBU!RJ4piezt7~IqM#=xxQ@_l2nuI#h9 zEf1|^5|)1->@WRL$mj?fEw+c0PLj(P<+Y!m zm+9Wmgsa|8>7hfZQfMd&L817fLcP&W4x|GES?H4x+0-BLl39?Kq+H8jzDjncDHZMt zI1|oGOn7-)7XK=WZ;brRUvyrfxMTF1R#5Wsc(4=0*GSun98Cohi!@nyeyoBV1f zuF|D_Rw{&}^_Cy)T>%8SLJi(?3TJDP$n229s5#+9AW`Aypt|1YttDMKA4tf+vWcl9 zV+KWj=Zsc0?=A~wgb8b0Z}7&c2v7U&?bf@-E2F704e8iL~2-g)F|t0K#7uE|muBKWP%A)zp-$)0Eh8=i9wp3a2b^mlFs-Lu6oN z6pB#uk=ZQ*U4FJP_x%_p&Sw7fVDwxq?vK8J16)mr9}RNI7!k1bo}YgL(?8vfyH$R} zmx|3&y?wVa?e71^%u#!(AG3cmIeb)|=yW^A*gR|KMTH{K<&X`UQPiH<0FU;{ph{jq z9t4XUK3fZ~G1HF|DUEw^F8eEzTONw9rxjsigkWzk$~5Im9~|3nBjkflOX9TKBRfgU`_SGV^?LFKR*wyL2mAB!-GmIJb!kg z%4EIaJcEghh0jTJbhN^D98OM*u#8kp`n$d~e5QvH)B102eGD8MeBuf5!n*?-}q|3%$I65oo+_U@Wfoi2s&INO#rr_#xlZbzDO7> z20ng<5_C)za!Gbr;vh|*KD|`|1-$_ow034oO0K(Sd;Je?(Q(Yz>mDPzrl3 z%ck2OLqnU?Lr`7#GU^EE+?YT<-AcUMOlSB+cyBS-=F*6V=(-2IG^d9lve2COl~LXr z8=Cu;n#@Z6?#{0CuFCxf^=^hjsK1+frSL*!Rak%>;t*L?yS|Tk-!3hW@F%btyMumB zPs|vf6lcANdCGPK^G+O@;n2U`sY6(*l9*UC*mcRVEldD}Y z=RNU-2Z$M3%R^X%WzBVqY@6ug++G`yoYqlVGjR zVhWux)D;;?%C)MBYp||*=WNb)=XL^@w>qMHVQPCQnb~-hw25VyNrv(wZPHJTWAbjVjlGKcdb;CchKV%zZI`KZRsYhA76Zz;h#F3v`~mo5OX z`BsCy_3fn~eD@?AAeJAcC=W2=eu}j1+>7{Ht%wZRBY4k?te*3_^+6W$67}3GM+sVC-45qtup+4lUhcH0Ih79ocd<9om+8Rb?$2a2&IP1>kZ^v(m#IO zZk9eSecE(Monx-R6{*T&zTZggsF|;2z29Cq3D$gIUs2qlyoFR!&u;~}4R^fbY=2_GVWvkf}!HASc-jDvU*OMKy!V3bNO zlUX8amY!hute1OYG*^-;>6?M`d;uvRa%(-o0!oyaBOiSItahT&{(| z!hOo#f+e?$&zCK&kDKHrRZnFpM7Q|FE9yoLJYR;Mr1t1`(==(HjB3^&0}l2_?hPkg z+*8hSA2sVIj|Y)?O1dgyIj99rT!~Cr-;#^V=z^;0@lXZdKtTWg;ga>6){ap~i=e;e^KVRwWnQco z1MnVQJv|4#|90=!AB4bt_g?cq(EosX9qSv_JC5%{|Ak6#p&%f& zb(jL}ApXmXWVpTF{J)p{|DMT$4akR^lbQ9dkO3vDQf_B1)7m!>~6W5*1+eo%2@Vz0NTISXWV8>h>M}I>hwIMzCZ~2cRz0+OT93lo6h^`mb~Jl zt@d)`O@~vs+r4ll*)?9*%n&h&dceO}mi?>t_F!V;^}N~Abo2c_XnzIliDZH|R3Q1v z60z{sME`n6R3`82a2|0{LThO38rj#583@^uLjToqfHJAwNLjk)bHiksc0eur;!!-p zDP}K#R>b39%u=8LiHJ=v3-)+gi)_RP%E|S@?BqN-@2@{~DUT{A=;%r~6f3l*!jr z9+n5Nejhrg;PxR(x18-OKTj=IWE%V?@1&D=YWmW) zXcfQtSUIN#UY)(@Q{;5wpabd4T9oCzbAa?`RYFx?vCL|5q!I-Q8T0J?{n`Oi8Ou6N ztehghMU*!_`KiJErxFyCAxuPciltHh4-}hro|y>OqP<8iN@S->vc~Pz+4P>fQ6iu( zmA^7gOmlM1Ea_-Al?_sPu3#W74Ky9cuidUQr|WTKCMRdoWb0-{<}Z#!T3)W{Xm=ND z26eZlnmq1wIXw&2tQ*YOw-B4`&Rcb_*tuxb)CQtLa${XKaMfQz68#K|4qc43hX2+A zv{`V_+kY^ZIKeupHBWib|G?K!S@;=>?^a!Hc*V|PRjI#ZnSV_1~-S-wu3 z?3-Q9o{#4rkJmGz$M6)lU`x6*7QEn4&|RgGnLZJesSUqocaA(p41K>a+UWWU%C3r- zMd4Mn+D9E~%`dywAD+xie~@=jDi{6oBs;QQJg!lTGEvaY2+!eI6~ExLYR4FnOmsO zCH8Ppy$s1})|yb%Rchg+E{o z$>Z2ay=OekC_>G1CbP@5Sf#d%MZuf-IE-hkA>?i3@PxKO%Ev<3jESiB5 zfB|ej{VIoHhWzrCcu(io*%n0hgF@@1So;9}CQu=zs&?`2tie;IBL@^v;+}r!>b>>x zR!T(OteIaO=J_Ej+sr$Ew=!bnX&QPN^1;z-gn6=qc?N?66vc z3luldW1u`(de(rkl_TinxmYDvqOZ`T<7}OdHqV zmOwwYHcEM=<~QO0;j)b3x5a8dx3AgrUW7R?_P$bR9t{;GF&PPuYL6tb3EX0pOwusY zxX%;1U*EsAN8CP@F^84cd#OIEA-|lfgsS3)MiW?@S#J0QI^sB5OXi*yK=v>Bmva(O z&4^S~bRFYWaeTS8&yuBWnvhTM&HI}n)uYE(wRa47o{{muyC!u@2(V9CTzxy^-uo6l zj~I)}Iny$MZM?4Ut^vGsQcbCX$wbU?M)ML$z$<+QCuu|gft*`yT71aK-}0&T4FnTE z!tei+2HsBu>;r&x$6Nsk+Psa1w7?;0^^KE-| zLF*Y7%ao^RR7E!@%`8L#D5DKM4F^P1jV0io*|Az2W$qg2XogkREF+(r>3xa)1DL&j z2FJ-D{Ih!rmt)EoVs4GggrWBmhdkfuYMmwEz>;+aA;*#Vj5E!k2E=U>p?meCO9jW{ zt8Y7J0v(Q(RuV^4~gFx62fq#o;Y0> zcKIlIUyjR$P0kwn!h}=y5D{=OxYY19G-9=YZj0|Kx{fuh4PW-<#`fJivisFpzEqLy zn@KRIcEpkKM{UDIKT@gkNKl-#oG^+zZ#pA+8XKPKyy;3i+*MKA9zZe3i%Z14ShzRH z;|)SuA35h+p883pHRdC%z`hyoZ1J4auG#Y3b3OH0rd; z{f$_-gZ+>TV&K({kuDLNMsG}h|NcFUP@cRJ(bP90*X1mV3N)T8N{wR^iI2ACH2N7b zJbGTwi7pNJkL4qbrb4t2@P+M`DQZg3nDz3p{vQa5Y_$4JehAeBLWebgV;lJ^<;=`2 ztJf^KV}%cP;O0Vv|TwYg#%%|tkrJV1bhbrCsv^;iY_Lp_S8;MlJpz8lJ zo?;OWpZE1jUUxEZN4;`?S;2R8z5tpWa-Pp}#WdZi`(b(rMuIKzIA@G^ zyUQG1Ic(kh0l4=l!v-HYhgY~ymxh&;fu! z($66x3x`=WCuK_GUS@W&{MAzPoTj4`@kJYWRHh)lDW*-Kz;=(rvk@Qf?A6$Q8Cu$n z?}&$CN@`NvW`OC_os@j4d5^Q}>Q2h0BaKOhm1DP}iLy$h<0G-S=?F5FYlWVR z1&#ZUC921lpfaGjX9#eY1Z{Ehr9uPNG`K4KJd{kGg-4C2A24hz^sAF@dv1azSD^JW zD{8UHWd#!Wu?)~vVm?*cruZV?;nRv z0#BVS_U|2!_JV2)A2)184`?mP8A_~u07l<)3L~!UFW8We^ReFI#eTnq5XA&Q&h+&!c*q9hdD6FBzJO0 z6htnd2UqX(TSKmr!q6+8r++diR?k(suCdt?FIlNvs13ZGNAh6jzWS8vxU6P6-fL)f zvQ$D+=VsB)SSSXnYQF4Eud!X2_BDs<0{spnEXB%`{Ap?Xl?k>-)J|G}VZ89C9`Qt_ zH4uwShR5o&uCb4&i1S~w`U24hkW<-suV>LaU`5rmPdJ6WX>NR$IvC7c{joGkceRT5 z>snl{gT0fqA!?aNWX5XpA7oss*EO)i6lMbW6?@hqOs}W3PCw2vn#pWL9Tn~~^!??< z8T=tH$QPi@)5E#1ag8)&pB~fGuaYUPgL$7_-K*Cno{Z&U0()0zi%g2u(@{$fYxeFP zb*hJX4`Nsj$SVxrmP1z>hC-G6))g7kZ=I4mX2Q35fFv9TpN zrij$@%UaLqL$IQ7#3I_c9*ddmX8aeya7J@#8Kp%}MVHdB|b$ZgPBT{_1DKrK^h9Qh95Sg7&SY8NH}!eMu) zf&4E=Mpj(AYtsY&va+sOo_VZxlDXV&qHkWy68umwUpZJ2LjeC0#j)fzV4(t+t_o4-6MbYdNV7uD)*b;UYV|d-@8Q}d@0rP_)P1V&TQoSh#?~`TX)e^ z=(=-ldMGedd4DV_^{06u8`pMR#$QYE)4A*8YfVkV{Y5hM0~OEGC75UPvTTp+dIzFQ zfT+Y=dg(OS_Nix?P{-9dZBeTvg0TYlxdPwWw&2wRB{H=>{%ex|Hd|_xGfo3YuCl|& znXhAdbw$@A=7AGk;oM0y3tit$dkG-5+4V_{VgI7tKb+;ZGIH&a>&?Gyf`43*y1gR& zaWXs3`j>9~XJ83~^i6lqKO6o6A}#*ov8&T@?!Q|82?eR`2K%?A`uEi@^;e%<6@@YN z%Riz2?BNxa(SK1^k-u~YK4#6dCuB`I%Qvv&AujPNmo?qeo zs@_PDb~xMZ5&V~B@>)IQjO-sv<3E$}*6feCB44xJzaw6#udzzp^uIj3e?IJ8j{O?{ zobHg=`Fr?(U%jHj`zQ2YJ^UZ4|M1iQ5%BK?@_)(QAU999X=t$azO(+9j>0&6?J_w-CGdQ;cqcObg0 z{O<;a`qU4}vI}k{2~PRr*n>0m?R1zfxs4VY&1r5!xVV|!Jsi_seOhfLy;feYM=3%q z2=vKr$4}wC9iFMBm|*i9c9VM8sWoNodofJTWBA5;U^1^IEl~GzVmw2+-mIu(6cHQ& zaq|0JxT^nfLrORuf2**JYs5_>Q{()DSnORf-PI3Y?!vMlEuHvsAhDV_%@iH<`soe4 zBM(N*GV#Fjr5 z{M$G2g>p3umQo5K;i;3)`>W}}MX?}ym5zQE!nP}y*m#p^#~8}%S~om$b_)xKEtuZl zmc1au>%NmRB5V-lpPq3v^!e-ga=4H9FKfhDrSytxD6Z8yTk2u^1o?xB+3eaG3>7Zg z9#+%+>+t04+Ox6}B>96aT9!5w`ObI#xwH#$>02I^s?o$mg*gK}h0!qIc&%oo^A5|(UdxpF~N`@n+S282==0Yp( z@J%d^cYej4NNKE3?I>@?NTs7Sr|HiG%o`2e*$7zX8gg%$b`y~=Wzm$OC|8|Be(vH| z!0QqaU~~dH(DtpQWsa%5vpP`lUz%tsyGeAw&}@Qe)ud`lE4nNZ4x_zcJ(^OzZ+b|? z!#PjHD-yG1xc&a#Xxnw-@M8T%&4!R9At%&QTpyu%$t+#!p_wOr4q`Z+O4wx8ePan! zs3I+I*qh!ih^F;t=l}>Q`Wmx+DFlY)wft#UTHQh~QurK|ITHMI+6j66HbIa*gx)lQ zwIg5HrikK$*%mQk!Q{YnZ}vj3n00s%HXDJ1at^itYNpok$!rUi*@%X3EO)zy8VMFU zla1{{9f47iRTRcxg@IW-`}7qeB+lc^S32Z0cP1v4_o9iG3gaARZYzelr9ZAM z&y)D@-CVxyJTBs4)z(B9zN>O*UDcN!^C#)18}^}Z*eeX)TZhr2EFBzU3SrB22p;QY zX(Tj$tyBPEDp0>!oW;M*qY{*xtTc&(xE#vg_@kSfh8(BJ%DgVi%$pT)5{a*|CB;hd zyt*cdo4WnltzUM0ER}6#{9aNW)WE4e&lwVX320fY7949kxXtAj-y_U@lrf((7Cm8= z)8D3NWrIsL*_vjj2B3xU!UX#_OHZc#Y8OWg1)ks>T`J!P{>UsT$5N!uyv zvS7r}Al{7PqWPYr0$XH;tdF%SM#ei}EFe zV{<^EMtAb}pT!ZsF=t<2wDU8neQh0sik~>6u>k<*q5e z_w!{DUtKI^M7S`@nK#~#pN{5hC7N27a+{-GHr1h$L@{1voHsy$lqEBwxq%GZEWxQo zoh^LSI2jEip>XPOkpG!Ji_QHqw`MbW#HXDxUlZ{;5x7!!;0}&zhZ?qzZ>B(Y7mHRf zGCeX(Rx)Jm#}0ozeABl1G>HY$a|T-jJ+6Sc5QF_}Sb+l3>Z^0Z(h0_jCaC5Ds>Ch| zot+<;JMD3s^@Fc@^vYD2pf0hoWf~F$L<`(OIPYtmeZbH0xkqIdQL}q&MaMeYaAu2I#D%rCAK)Nl>%GBfu>W%HF@(-@`Df#|~W+?yp(^L+s$1q}h>y zpUg!eD+q-row_G*hsGguztj!Gr}eKw10cBSY$0sQgYbjmJvJ@z~(n4sDhb?H@|e zn+YpWUVK=5>v})O`gtlhlUF8n0;1fdF6hEjgzGa5CDJ6jZ4zCFxUGI8 zY?19~f-+|;kO3jLCou)?gdum;|s;#K6InlG!I~%u$Gc8)JiK-Qulgz

);`=THn=21O9vCt_CW+!TqucCRAe*?RbwJAl-alzcy@uuFo)RH>P z(=jwpb91pH&Tw9p{lZ4^zGZHYXmNFpZD5XNO|h%1`_7;^3L#wXf~sg_&mn#yz$A1? z$>x~QbOS5w+$W<4r^c|UYRqHz^6NmoyPhG8BkhBH)=(Crn}@szmFY7stI2K+={WyM zkaR}xnOST`=d`s41(`!!rOA~Wuxe)U=y_|zR*LhI`YiFI^;BO2-)*AU*e&lvJu6}W zUyJO-wo}z$?MV%f=R9_b_4WF!-2P#xr%w$CL}#yUUPQr08xh zXu9m3f&PwqxM6$qU!sEGkG=42x$L0;DeW2Xc4K>4jt&ZFWbQ1ucO|z3P^!HBoCgg? zUMR5AgGS||hm_+`=(>K!Z>E*n7_Q<=ToehNu#X1LZ3KR`C(*trHm6aaue_OhaANd2 ze-MI-eF9^@sR9)20MOrl4wb**qI*=R?Ve*1qbirn&0g86Ops3$9jMO&OlCjMvAcU1 zRdp_sU(UR+gs7yc#@0@UObBY!Ci2h^8B!0axI`GXM%sOeg26hRjj8AZtN4p(@wN$| zG{=}5RW>dZR}>N6;h8i}kk8zrx%a=tj8&4zy8kd=U%zE;Zh5pFTV-IC=%HOaqQ>A0 zlPw+ix+PalGqX^mEr0*lPCXIcZ)#r?p$Y4b1^Bu~c zyu&AE`Y@s1&CP$Bb`vnFkZKd6f!9;i-X+O1YOeQmg(|%4VHO3u+ZCpcI#H#E*q*0H z)k6V@H!AXBwk^eEV@VIgCG>hTlJJ`pPRab>-XRJR|Dh=ovXuGc*R(UKV2_5nGinOE50t?A(7( z{Ek1yn)w4UT0OqA7r0$C?o8%~63|R{MQ8blRRkn~BS0O^CAaisV9bC436aa6WQKyO z+GLZfJU=tf?$Bzed*%*;Br3dQ2bgR?L1ZxFtLEbA4HIiuvE6jUKA*R~v#*51tru-E zY&Wo4sH}rKNlQ;YNT;H0^plHJD`l`_u%12d5bUEB*lZn3r zdl+@K-hXC*zkPD0p)_VxusQTuKmn^-I8&$wmG_FcEOuDFbClVm@T*lN!jVbhu3zJ! zsy6FMGiylw7F=p})_W{_c^^-MB#zj+J@*XrQ}!<{>Y)?Y=m!6=?I)x(_y?P!F${lrcEr;UrObZx}Ck5g|YlG9qr6Qr7^8%!j? zHdzWk`o&)Yx;4@^A+9%bpZoA1`sI%hpc}3&r&gkSOuJMxY9`aRW6fuxPqg%N5o*>O z&|D1H5E$GIidCl5Dr3#TY{!*qChgS_aW8$I#&F){?>&c61y?g*QjkVcsnGJ~h}9Pu zP@|gId2@!pah9SbT9pF5No+0;wqYBa=Xiwo^jvr#m^J2W_&a0{vo~8)v9JZ3H% zj1|^RwI^5in};aa)RI@3)BHsLA(`*{*bhcWb=F)oi zb^>`b6F=*{o^1WoFrC3{#9`s!K+ZKO8_9Ne?Ng}ENPm#WxUnXOhjs6k8&G{~iqO$b z{~J&KpDRN8j}>9NXnduE9tceRP$H&eI&X@|7HjlgN#9PrbCkN$I{fdpl$W7Uc# z&Uc!MjSGsnX}JoiRHBY+nhW2l;Ma0RQcn9OVFb>;(}QADpV0_SUmwXV4b@n!5|V)1)#(UtVI#2ZV#J+96baw>>BH^Bj*r4pn`)H; zddtD_4gbD}{|%!1B6rKv<=s9yMrL3juBHGpc|zSLprIYn8zZ?Pih!%EduGy%x3J3u zIN9p%dUH^jm{{bZ0c3sD==Q7b_HotR@HyGIM@Ak_A(+qoaW%K+=%*`vki#4IdOjYE zG%b61Xb2U`X%!XSmZPdmATZjaH?pcu5b>wxY_|6(spJ&oRe0o{VHS_g{9uEA5 zHVN@Gj@e`bEJurS#tDCW`HgG>&_vBMJ$SS!U@$mIATM4QpHq3T%f#T&0ZYAL{o-|+ zS0#&F=F*gp7V6{%E5e2{2ca3%z7XLCHHfZh6vDlGnk8p^5}ej-h;a zWAGdl5ea)L+)|qAT);|ZexA?3;e*_pDqjZp#oFkEiiR zH*t&er8URdLC?6uB&==3@;XN*V_Gv2YO?*@F%tpFj?#)~NzC)KENfJ-N&R3HA?;(_|p)<-bK7|%ssc&%D7 zOiv2l_XkH+enkD6>a9q#ZMuOW<$@6brxC+Q``8OV>jfbdoRudphRjb2XH;FZnYK~K z+%o;@(FV57hg|(Dx|=Ku`Y*>HYRqP&kJSAiqwNO>F8f#0f+K2j6P93Uy83w}*wSD0 zqR@+5Z>t!mk*+^Dm&~nA?R?+;y z_y~RSX?Ov8$$g^9n53+C0&e~_OOn*bwIV_*1uU!Q!fR>H5tD2PE`~Fl_j^>@)vCn% zW_=vAbTSL)?$Fq_=)@CyjcbWLpf`%Z_ zc)tj`-j_X3&fc`cr!$`fDQT?Db_~wFMn1o$_dK05x^&4M3mr9vAekddZat_JPCC!* zQNMy|5%=-4vRCz`_Erh2Z9PgHp648Ok7OUvZ)x6&5jY#>TWKP+jq}YF6%2HQR*4@} z66KdRs!Kvl_AbXchYv`l&h_z7Au8_9ccZt=y_#Jdm=uxasEXmOuT*9bZK3bFQxb0T zEN9Xa3}v}u?{vzlC;v$@fk9nX|9h zh!jc7$atf$XT@3~o`Hh)c!Lg7IiYoBRJdUmvvLi7P-;D>vaBA)zEo=NIuy&E+UOn~ zbC3iINtYd&S+2E)kf%@eoIovoV6zhrYbOmQm2CQNX09$VN-i7<+whGUo9k$GK3vEna{9x;^Orym65VpG|$dviV4Hni7wdyeR%mQaX=V#H{{7jpxlM z3G92Qsmn79OOdD~5^JewQSIqeF2H%s!YXUbZ~mzf4$pyJjAs#sEgxhMi~K}4YO&duet?Vp6& z?-s-nhQ&c6Pk`E+4p5boLD5!J_$Ga>!11I)jD>W({=__UP6+3Y!@D4@5}t!xp`^C|_PEf+x5_cO_QjN$L^Xd-Ag)4Gkq5Pw3Y#~*aixBqZgtb7 zRPspLQ|&%Jk&~Y|AT2z|SB!*a|A$ToijH@ER?|o30OauHcLDBz@4-pMqUDvj`{@WcIg`y-p$$BE%KR5X= zQTW%7uYBY*H80mtf_k-X z8YEuOFz|T3+qh$p<>NH9grt3BO!>Ki|074kkHO)!q2V&H><0o%UB=;Cni~OYoQ$Q7 zKkd$Q?FcHTQUZc!o9x}C-pWlJ<_p)0-cow{-Q{X?u$AOJXXLS;hcs-ot52*pJg$zK zF1lh$vKk4DvKVm1i;X8Cr}bC@1$oXytLw{Ur8YYLbSeMoU9k~)XJUV2%nJ#-xvdl^ zH?_BFJ{!SDzy4iltN%0FUNxZsL{Ovfef%p_aE7keNv`(z)(~6VIO{{7P{r$OB^L!3 zKDbJsGw4p(R_fC}3t3|ZXk`-3dloU<`#QAO3a_3B0(EQopBf|7h6SEK&{@U*9q|7Z z3ZBB|WSbm$hN~7F0tMlT>era6bqb;HA0Sos zS^^9%O%~w!wu@Ruj!wH^-N!^TGgs2_DmHFv?`B*fnr7=kmo+Yv#{i^p_0?p zE8?|2oKuK4be(u&3-zv(wNCAtR?nW?_pO1@L%gKa_G3M@~iOJPQOQaPeuKrLpBFV)6#kqr7*nBQ?Nmg_1Y&`wtchaQ8ZZ|Ej zYg(TA6`+uYCP?n2^m@^I?y|}bLXd?&gf+Y~wtMq6SnG6@%?n!cu`}Vxd{)&mx|e|G zdyE5by}&`}Y&C=OSUO=2xV>25^l*H3d@!jD(uaQ~IfIvUn+eQ{yye)h5s@jghUgJy zqHb#VF?pO0k5$?$7b91?`L;+!&0QBGs$Vbihy*skFJBAN;yO?j;O^XxaQ~+7Qn^p= zRsIG29kP^%I0Yk;5>2a<;;j^+*MLY|-b+M$^j&arUeu)haMyr7q*2G-x!*X8s7N&o zZ#>hMn8R+o?8}PIuN)pY9BhE1@fn+O{>l}}&9<*9l&`Rl2OqgLySVCz=xmheto6ju z)fTL%N&ZHCXI?Bj&%999=3TAfU9LLEid(@++hYMAtEw+iQ4^(G2d5dx16~ijHJ)^H zsl2YL&30O>9i?{1xe1o3J2axwyk}Dyb9(qmcf72n+7!mjMXOrZmz&Jfo#smPYE48I zk{KJqQUf-wd3{o;8)~_$yKr`?WGg@?zIxSN^mdt`+4BI8h@+;!?5;k~h^0wH+L`Qh z2Ua;@&-N`vZO!)*2dns8bWZpq6g0#8pwH z<81cVP)uX&?YQMY!FaDsGb^SEjzX&wO+q77zY?}5JN&TjDvV`py2@j$j0*m@o1~Y# zdg?fY*}14EV>0b|JMM${4OgjgL{3RC(7jBi0(gDSg3%_jRsyt%v#LSsc7}`2ZN04N z(z0mdO=>Pl&}q5IeU6v?ZVA|v-~r;t){~Ldm1h!HTvkgS+AW_q@^%7F8Vk2U96VOD zvpb%5N&>aZ($zelj~FMzR_s%jreMs~Fa^}84PHn;?QQI*tZ*hMi?kcJe>pOMEWkj7 zR{rO@&&NY-9gU)J{TeAhDdHbILYl+V7;Em!!h)h!XIpgc(j&C^<&mZTJ*D_s8;33e z{9vTEnN+fHr~0IzJ3WJ-nkY47ceGwqXMAlVjr}+XDb}Olh zc|K{ngmab6F{8c(ntr-2c*x&Xf?_p`BQ!KpO-HBC>00M--kj*{LV1VJ=i{K=E|McO zKV#{_=|ue!e&NgXS5`@aYj4(U7t<-Rig^C{!>=!}S}SA+(ENBJ7-$t+>ODgU&4hA7 z^eS8H8})SQ@6}w7@px?=Ma4QD=<=EkNnnwm#NtCT#35$+x*SODoK2i6eKSIYxGpvs zxdeWUn?PAWGR{q>CUmR+27@Hez4eW>ZB}gSCTfAQ`Pl`tES?!Ny3V9%AF;cUbG#Ue zIQP#wR*IV+>4dPSV;xqH-&<_GYt~bpEM;)bW$P;l$U2e3f%J~;*1m5;IhSAPvEb@i zLyEUK%1YvGT_s(iv`^hLhAu7Q1Hl6gh904Ie1q{8gT!AXH&im8ZO#{?t5Zqc$;g7< z4ahiaJYR7Y(@KhIsaTpp1u>kp&oaIGuI9U-cobewKNrskcj~;6;X+cauAj4&Z_&(d ztaeFSuz4dsDssMXCfv#P4p2cT3q7~GpIoi7VK}7Y!?>By6K(QuJ-yhE5hP4;akj^`NV{BBgFkq$NU=SB2#bhS?PRp8&@!2Ad}W+%+@=9kG30WWIDofKgi#vV- zG_$V7v$+zN4tnO>v<4`_T&u1K+)plbC6_z7 z=21yzu$fYmYw&6)1ppi_Wu=@`6yt#GyBQ1((tR~3bN$Pp`(aI~H9ni0ca~XXp{

kA|8cmz6pTH{^IBRO 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 B%^v^& literal 25683 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 C&Jv9P diff --git a/ee/ucp/interlock/deploy/index.md b/ee/ucp/interlock/deploy/index.md index 6cda7383c7..73d109d08d 100644 --- a/ee/ucp/interlock/deploy/index.md +++ b/ee/ucp/interlock/deploy/index.md @@ -7,7 +7,7 @@ keywords: routing, proxy To enable support for layer 7 routing, also known as HTTP routing mesh, log in to the UCP web UI as an administrator, navigate to the **Admin Settings** -page, and click the **Routing Mesh** option. Check the **Enable routing mesh** option. +page, and click the **Layer 7 Routing** option. Check the **Enable Layer 7 Routing** option. ![http routing mesh](../../images/interlock-install-3.png){: .with-border} From 51fdc8a82385d4bae92e16511c7ebc525e957675 Mon Sep 17 00:00:00 2001 From: Rengarajan Date: Fri, 31 Aug 2018 16:42:24 +0530 Subject: [PATCH 034/222] Point to azure url rather than aws for azure release notes --- docker-for-azure/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-for-azure/release-notes.md b/docker-for-azure/release-notes.md index cd58876151..7cb1a2cd0a 100644 --- a/docker-for-azure/release-notes.md +++ b/docker-for-azure/release-notes.md @@ -9,7 +9,7 @@ title: Docker for Azure Release Notes ## Enterprise Edition [Docker Enterprise Edition Lifecycle](https://success.docker.com/Policies/Maintenance_Lifecycle){: target="_blank"} -[Deploy Docker Enterprise Edition (EE) for AWS](https://store.docker.com/editions/enterprise/docker-ee-aws?tab=description){: target="_blank" class="button outline-btn"} +[Deploy Docker Enterprise Edition (EE) for Azure](https://store.docker.com/editions/enterprise/docker-ee-azure?tab=description){: target="_blank" class="button outline-btn"} ### 17.06 EE From ae48540c502969234d91190e021cb4099fe369f7 Mon Sep 17 00:00:00 2001 From: ollypom Date: Fri, 31 Aug 2018 12:23:03 +0100 Subject: [PATCH 035/222] Added Latest Offline Bundles Signed-off-by: ollypom --- _config.yml | 10 +++++----- _data/ddc_offline_files_2.yaml | 24 ++++++++++++++++++++---- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/_config.yml b/_config.yml index 469d30fc63..00069b631f 100644 --- a/_config.yml +++ b/_config.yml @@ -102,7 +102,7 @@ defaults: values: dtr_org: "docker" dtr_repo: "dtr" - dtr_version: "2.5.3" + dtr_version: "2.5.5" - scope: path: "datacenter/dtr/2.4" values: @@ -138,23 +138,23 @@ defaults: values: ucp_org: "docker" ucp_repo: "ucp" - ucp_version: "3.0.4" + ucp_version: "3.0.5" - scope: # This is a bit of a hack for the get-support.md topic. path: "ee" values: ucp_org: "docker" ucp_repo: "ucp" dtr_repo: "dtr" - ucp_version: "3.0.4" + ucp_version: "3.0.5" dtr_version: "2.5.0" - dtr_latest_image: "docker/dtr:2.5.3" + dtr_latest_image: "docker/dtr:2.5.5" - scope: path: "datacenter/ucp/2.2" values: hide_from_sitemap: true ucp_org: "docker" ucp_repo: "ucp" - ucp_version: "2.2.12" + ucp_version: "2.2.13" - scope: path: "datacenter/ucp/2.1" values: diff --git a/_data/ddc_offline_files_2.yaml b/_data/ddc_offline_files_2.yaml index 0834cbefb6..1e4252ce24 100644 --- a/_data/ddc_offline_files_2.yaml +++ b/_data/ddc_offline_files_2.yaml @@ -6,6 +6,16 @@ - product: "ucp" version: "3.0" tar-files: + - description: "3.0.5 Linux" + url: https://packages.docker.com/caas/ucp_images_3.0.5.tar.gz + - description: "3.0.5 IBM Z" + url: https://packages.docker.com/caas/ucp_images_s390x_3.0.5.tar.gz + - description: "3.0.5 Windows Server 2016 LTSC" + url: https://packages.docker.com/caas/ucp_images_win_2016_3.0.5.tar.gz + - description: "3.0.5 Windows Server 1709" + url: https://packages.docker.com/caas/ucp_images_win_1709_3.0.5.tar.gz + - description: "3.0.5 Windows Server 1803" + url: https://packages.docker.com/caas/ucp_images_win_1803_3.0.5.tar.gz - description: "3.0.4 Linux" url: https://packages.docker.com/caas/ucp_images_3.0.4.tar.gz - description: "3.0.4 IBM Z" @@ -43,6 +53,12 @@ - product: "ucp" version: "2.2" tar-files: + - description: "2.2.13 Linux" + url: https://packages.docker.com/caas/ucp_images_2.2.13.tar.gz + - description: "2.2.13 IBM Z" + url: https://packages.docker.com/caas/ucp_images_s390x_2.2.13.tar.gz + - description: "2.2.13 Windows" + url: https://packages.docker.com/caas/ucp_images_win_2.2.13.tar.gz - description: "2.2.12 Linux" url: https://packages.docker.com/caas/ucp_images_2.2.12.tar.gz - description: "2.2.12 IBM Z" @@ -112,10 +128,10 @@ - product: "dtr" version: "2.5" tar-files: - - description: "DTR 2.5.4 Linux x86" - url: https://packages.docker.com/caas/dtr_images_2.5.4.tar.gz - - description: "DTR 2.5.4 IBM Z" - url: https://packages.docker.com/caas/dtr_images_s390x_2.5.4.tar.gz + - description: "DTR 2.5.5 Linux x86" + url: https://packages.docker.com/caas/dtr_images_2.5.5.tar.gz + - description: "DTR 2.5.5 IBM Z" + url: https://packages.docker.com/caas/dtr_images_s390x_2.5.5.tar.gz - description: "DTR 2.5.3 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.5.3.tar.gz - description: "DTR 2.5.3 IBM Z" From c8b3c97ad9d08b7efa81399811cc4a5e753a88e9 Mon Sep 17 00:00:00 2001 From: David Yu Date: Fri, 31 Aug 2018 11:11:05 -0700 Subject: [PATCH 036/222] Adding port 12388 --- ee/ucp/admin/install/system-requirements.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ee/ucp/admin/install/system-requirements.md b/ee/ucp/admin/install/system-requirements.md index a52686a251..a609de0146 100644 --- a/ee/ucp/admin/install/system-requirements.md +++ b/ee/ucp/admin/install/system-requirements.md @@ -66,7 +66,7 @@ host types: | managers | TCP 2376 (configurable) | Internal | Port for the Docker Swarm manager. Used for backwards compatibility | | managers | TCP 2377 (configurable) | Internal, | Port for control communication between swarm nodes | | managers, workers | UDP 4789 | Internal, | Port for overlay networking | -| managers | TCP 6443 (configurable) | External, Internal | Port for Kubernetes API server | +| managers | TCP 6443 (configurable) | External, Internal | Port for UCP Controller Kubernetes API endpiont | | managers, workers | TCP 6444 | Self | Port for Kubernetes API reverse proxy | | managers, workers | TCP, UDP 7946 | Internal | Port for gossip-based clustering | | managers, workers | TCP 10250 | Internal | Port for Kubelet | @@ -81,6 +81,7 @@ host types: | managers | TCP 12385 | Internal | Port for the authentication service API | | managers | TCP 12386 | Internal | Port for the authentication worker | | managers | TCP 12387 | Internal | Port for the metrics service | +| managers | TCP 12388 | Internal | Port for the Kubernetes API Server | ## Enable ESP traffic From 881113c8250bd90cbf928649464ebaf2780e9af2 Mon Sep 17 00:00:00 2001 From: David Yu Date: Fri, 31 Aug 2018 11:26:26 -0700 Subject: [PATCH 037/222] Update system-requirements.md --- ee/ucp/admin/install/system-requirements.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ee/ucp/admin/install/system-requirements.md b/ee/ucp/admin/install/system-requirements.md index a609de0146..326317f35e 100644 --- a/ee/ucp/admin/install/system-requirements.md +++ b/ee/ucp/admin/install/system-requirements.md @@ -66,7 +66,7 @@ host types: | managers | TCP 2376 (configurable) | Internal | Port for the Docker Swarm manager. Used for backwards compatibility | | managers | TCP 2377 (configurable) | Internal, | Port for control communication between swarm nodes | | managers, workers | UDP 4789 | Internal, | Port for overlay networking | -| managers | TCP 6443 (configurable) | External, Internal | Port for UCP Controller Kubernetes API endpiont | +| managers | TCP 6443 (configurable) | External, Internal | Port for Kubernetes API server | | managers, workers | TCP 6444 | Self | Port for Kubernetes API reverse proxy | | managers, workers | TCP, UDP 7946 | Internal | Port for gossip-based clustering | | managers, workers | TCP 10250 | Internal | Port for Kubelet | @@ -81,7 +81,7 @@ host types: | managers | TCP 12385 | Internal | Port for the authentication service API | | managers | TCP 12386 | Internal | Port for the authentication worker | | managers | TCP 12387 | Internal | Port for the metrics service | -| managers | TCP 12388 | Internal | Port for the Kubernetes API Server | +| managers | TCP 12388 | Internal | Internal Port for the Kubernetes API Server | ## Enable ESP traffic From 21363882607f732b47a768b516f255f068dfde30 Mon Sep 17 00:00:00 2001 From: David Yu Date: Fri, 31 Aug 2018 11:40:04 -0700 Subject: [PATCH 038/222] Update system-requirements.md --- ee/ucp/admin/install/system-requirements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ee/ucp/admin/install/system-requirements.md b/ee/ucp/admin/install/system-requirements.md index 326317f35e..afc13933ab 100644 --- a/ee/ucp/admin/install/system-requirements.md +++ b/ee/ucp/admin/install/system-requirements.md @@ -66,7 +66,7 @@ host types: | managers | TCP 2376 (configurable) | Internal | Port for the Docker Swarm manager. Used for backwards compatibility | | managers | TCP 2377 (configurable) | Internal, | Port for control communication between swarm nodes | | managers, workers | UDP 4789 | Internal, | Port for overlay networking | -| managers | TCP 6443 (configurable) | External, Internal | Port for Kubernetes API server | +| managers | TCP 6443 (configurable) | External, Internal | Port for Kubernetes API server endpoint | | managers, workers | TCP 6444 | Self | Port for Kubernetes API reverse proxy | | managers, workers | TCP, UDP 7946 | Internal | Port for gossip-based clustering | | managers, workers | TCP 10250 | Internal | Port for Kubelet | From eb0e3f7b220df4fe50bf79dac21fe97f201a7675 Mon Sep 17 00:00:00 2001 From: David Yu Date: Fri, 31 Aug 2018 13:10:09 -0700 Subject: [PATCH 039/222] Removed port 12387 No longer need port for 12387 --- ee/ucp/admin/install/system-requirements.md | 1 - 1 file changed, 1 deletion(-) diff --git a/ee/ucp/admin/install/system-requirements.md b/ee/ucp/admin/install/system-requirements.md index afc13933ab..fad8028344 100644 --- a/ee/ucp/admin/install/system-requirements.md +++ b/ee/ucp/admin/install/system-requirements.md @@ -80,7 +80,6 @@ host types: | managers | TCP 12384 | Internal | Port for the authentication storage backend for replication across managers | | managers | TCP 12385 | Internal | Port for the authentication service API | | managers | TCP 12386 | Internal | Port for the authentication worker | -| managers | TCP 12387 | Internal | Port for the metrics service | | managers | TCP 12388 | Internal | Internal Port for the Kubernetes API Server | ## Enable ESP traffic From 847bf648e711081e3bd8cd1f9e502bad41a45417 Mon Sep 17 00:00:00 2001 From: Darwin Traver Date: Fri, 31 Aug 2018 20:56:58 -0400 Subject: [PATCH 040/222] Update Calico version Previous submitted changes were overwritten with Kubernetes version update PR. As per https://docs.docker.com/ee/ucp/release-notes/#303-2018-07-26, Calico version is now 3.0.8 --- ee/ucp/ucp-architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ee/ucp/ucp-architecture.md b/ee/ucp/ucp-architecture.md index c2f1d32e42..73e1aa635d 100644 --- a/ee/ucp/ucp-architecture.md +++ b/ee/ucp/ucp-architecture.md @@ -68,7 +68,7 @@ on a node depend on whether the node is a manager or a worker. Internally, UCP uses the following components: -* Calico 3.0.1 +* Calico 3.0.8 * Kubernetes 1.8.11 ### UCP components in manager nodes From edaa61cbb5e13add21bccd5d259b8344f0194d3b Mon Sep 17 00:00:00 2001 From: Wang Jie Date: Tue, 4 Sep 2018 11:08:36 +0800 Subject: [PATCH 041/222] Update postgresql_service.md --- engine/examples/postgresql_service.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/engine/examples/postgresql_service.md b/engine/examples/postgresql_service.md index b16ea7f9bd..6d3265bc7c 100644 --- a/engine/examples/postgresql_service.md +++ b/engine/examples/postgresql_service.md @@ -1,10 +1,10 @@ --- description: Running and installing a PostgreSQL service -keywords: docker, example, package installation, postgresql +keywords: docker, example, package installation, postgresql title: Dockerize PostgreSQL --- -## Installing PostgreSQL on Docker +## Install PostgreSQL on Docker Assuming there is no Docker image that suits your needs on the [Docker Hub](http://hub.docker.com), you can create one yourself. @@ -67,7 +67,7 @@ VOLUME ["/etc/postgresql", "/var/log/postgresql", "/var/lib/postgresql"] CMD ["/usr/lib/postgresql/9.3/bin/postgres", "-D", "/var/lib/postgresql/9.3/main", "-c", "config_file=/etc/postgresql/9.3/main/postgresql.conf"] ``` -Build an image from the Dockerfile assign it a name. +Build an image from the Dockerfile and assign it a name. ```bash $ docker build -t eg_postgresql . @@ -79,14 +79,14 @@ Run the PostgreSQL server container (in the foreground): $ docker run --rm -P --name pg_test eg_postgresql ``` -There are 2 ways to connect to the PostgreSQL server. We can use [*Link +There are two ways to connect to the PostgreSQL server. We can use [*Link Containers*](../userguide/networking/default_network/dockerlinks.md), or we can access it from our host (or the network). > **Note**: The `--rm` removes the container and its image when the container exits successfully. -### Using container linking +### Use container linking Containers can be linked to another container's ports directly using `-link remote_name:local_alias` in the client's @@ -99,7 +99,7 @@ $ docker run --rm -t -i --link pg_test:pg eg_postgresql bash postgres@7ef98b1b7243:/$ psql -h $PG_PORT_5432_TCP_ADDR -p $PG_PORT_5432_TCP_PORT -d docker -U docker --password ``` -### Connecting from your host system +### Connect from your host system Assuming you have the postgresql-client installed, you can use the host-mapped port to test as well. You need to use `docker ps` @@ -115,7 +115,7 @@ CONTAINER ID IMAGE COMMAND CREATED $ psql -h localhost -p 49153 -d docker -U docker --password ``` -### Testing the database +### Test the database Once you have authenticated and have a `docker =#` prompt, you can create a table and populate it. @@ -138,7 +138,7 @@ $ docker=# select * from cities; (1 row) ``` -### Using the container volumes +### Use the container volumes You can use the defined volumes to inspect the PostgreSQL log files and to backup your configuration and data: From b6ab1d3917d12e92899109298abd5c264d47eaa4 Mon Sep 17 00:00:00 2001 From: Wang Jie Date: Tue, 4 Sep 2018 14:08:30 +0800 Subject: [PATCH 042/222] Update running_riak_service.md --- engine/examples/running_riak_service.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/examples/running_riak_service.md b/engine/examples/running_riak_service.md index b0c21d16a0..5cfa72687b 100644 --- a/engine/examples/running_riak_service.md +++ b/engine/examples/running_riak_service.md @@ -7,7 +7,7 @@ title: Dockerize a Riak service The goal of this example is to show you how to build a Docker image with Riak pre-installed. -## Creating a Dockerfile +## Create a Dockerfile Create an empty file called `Dockerfile`: From d7f26368b658a856f0c4edc58859c6fce6f828de Mon Sep 17 00:00:00 2001 From: Mano Marks Date: Tue, 4 Sep 2018 13:25:17 -0700 Subject: [PATCH 043/222] updating mac to include stable releases --- _includes/kubernetes-mac-win.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/_includes/kubernetes-mac-win.md b/_includes/kubernetes-mac-win.md index 9639ed15e7..95163a6b4f 100644 --- a/_includes/kubernetes-mac-win.md +++ b/_includes/kubernetes-mac-win.md @@ -12,11 +12,12 @@ Usage: {% include kubernetes-mac-win.md platform="mac" %} {% if platform == "mac" %} {% assign product = "Docker for Mac" %} - {% capture min-version %}{{ product }} 17.12 CE Edge{% endcapture %} + {% capture min-version %}{{ product }} 17.12 CE{% endcapture %} + {% capture min-stable-version %}{{ product }} 18.06 CE{% endcapture %} {% capture version-caveat %} -**Kubernetes is only available in {{ min-version }} and higher, on the Edge -channel.** Kubernetes support is not included in Docker for Mac Stable releases. +**Kubernetes is available in {{ min-version }} and higher on the Edge +channel. and in {% min-stable-version %} in the Stable Channel**. {% endcapture %} {% capture local-kubectl-warning %} From c08f6934b59c35ae07e97a442590a95b4e67d826 Mon Sep 17 00:00:00 2001 From: David Yu Date: Tue, 4 Sep 2018 14:18:48 -0700 Subject: [PATCH 044/222] Update id.md --- reference/ucp/3.0/cli/id.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/ucp/3.0/cli/id.md b/reference/ucp/3.0/cli/id.md index a8463ac653..068e7614d0 100644 --- a/reference/ucp/3.0/cli/id.md +++ b/reference/ucp/3.0/cli/id.md @@ -8,7 +8,7 @@ Print the ID of UCP running on this node ## Usage -Run the UCP id command using the correct image version tag for UCP (i.e. docker/ucp:3.0.3) +Run the UCP id command using the correct image version tag for UCP (i.e. docker/ucp:$version) ``` docker container run --rm \ From f3d628ad297ee0e2a6eb376bcb70bea5511c2ebf Mon Sep 17 00:00:00 2001 From: Stefan Auer <39445428+stefan-auer@users.noreply.github.com> Date: Wed, 5 Sep 2018 12:26:45 +0200 Subject: [PATCH 045/222] Update network-tutorial-overlay.md --- network/network-tutorial-overlay.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/network/network-tutorial-overlay.md b/network/network-tutorial-overlay.md index 613f519bb0..8b354ddcf6 100644 --- a/network/network-tutorial-overlay.md +++ b/network/network-tutorial-overlay.md @@ -295,7 +295,7 @@ open between the two Docker hosts: - TCP and UDP port 7946 - UDP port 4789 -One easy way to set this is up is to have two VMs (either local or on a cloud +One easy way to set this up is to have two VMs (either local or on a cloud provider like AWS), each with Docker installed and running. If you're using AWS or a similar cloud computing platform, the easiest configuration is to use a security group that opens all incoming ports between the two hosts and the SSH From fa6e76724314f2d862a58a80697434def492a0ed Mon Sep 17 00:00:00 2001 From: Mano Marks Date: Thu, 6 Sep 2018 07:20:04 -0700 Subject: [PATCH 046/222] adding stable version on windows that includes kubernetes --- _includes/kubernetes-mac-win.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/_includes/kubernetes-mac-win.md b/_includes/kubernetes-mac-win.md index 95163a6b4f..b4d794fa76 100644 --- a/_includes/kubernetes-mac-win.md +++ b/_includes/kubernetes-mac-win.md @@ -16,8 +16,8 @@ Usage: {% include kubernetes-mac-win.md platform="mac" %} {% capture min-stable-version %}{{ product }} 18.06 CE{% endcapture %} {% capture version-caveat %} -**Kubernetes is available in {{ min-version }} and higher on the Edge -channel. and in {% min-stable-version %} in the Stable Channel**. + **Kubernetes is only available in {{ min-version }} and higher on the Edge channel, and in {{ in-stable-version }} and higher in the Stable channel** + {% endcapture %} {% capture local-kubectl-warning %} @@ -33,11 +33,11 @@ channel. and in {% min-stable-version %} in the Stable Channel**. {% elsif platform == "windows" %} {% assign product = "Docker for Windows" %} - {% capture min-version %}{{ product }} 18.02 CE Edge{% endcapture %} + {% capture min-version %}{{ product }} 18.02 CE{% endcapture %} + {% capture min-stable-version %}{{ product }} 18.06 CE{% endcapture %} {% capture version-caveat %} - **Kubernetes is only available in {{ min-version }}.** Kubernetes - support is not included in {{ product }} 18.02 CE Stable. + **Kubernetes is only available in {{ min-version }} and higher on the Edge channel, and in {{ in-stable-version }} and higher in the Stable channel** {% endcapture %} {% capture local-kubectl-warning %} From 64279e87a621a498087834cb7a9c5c69d810e35d Mon Sep 17 00:00:00 2001 From: Trapier Marshall Date: Thu, 6 Sep 2018 12:36:40 -0400 Subject: [PATCH 047/222] fix swarm service constraint examples 1. Be more specific about what happens when constraints aren't satified. 2. There is no `--global`. Also addressed in network/overlay.md. 3. Label constraints do not match node labels without `node.label` prefix. AFAIK neither 2 nor 3 have ever been correct testedon: 17.06.2-ee-16 --- engine/swarm/services.md | 24 ++++++++++++------------ network/overlay.md | 6 +++--- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/engine/swarm/services.md b/engine/swarm/services.md index 09190fe21e..a045df39b0 100644 --- a/engine/swarm/services.md +++ b/engine/swarm/services.md @@ -621,20 +621,20 @@ labels to ensure that your service is deployed to the appropriate swarm nodes. Use placement constraints to control the nodes a service can be assigned to. In the following example, the service only runs on nodes with the -[label](engine/swarm/manage-nodes.md#add-or-remove-label-metadata) -`region` set to `east`. If no appropriately-labelled nodes are available, -deployment fails. The `--constraint` flag uses an equality operator -(`==` or `!=`). For replicated services, it is possible that all services -run on the same node, or each node only runs one replica, or that some nodes -don't run any replicas. For global services, the service runs on every node -that meets the placement constraint and any -[resource requirements](#reserve-cpu-or-memory-for-a-service). +[label](engine/swarm/manage-nodes.md#add-or-remove-label-metadata) `region` set +to `east`. If no appropriately-labelled nodes are available, tasks will wait in +`Pending` until they become available. The `--constraint` flag uses an equality +operator (`==` or `!=`). For replicated services, it is possible that all +services run on the same node, or each node only runs one replica, or that some +nodes don't run any replicas. For global services, the service runs on every +node that meets the placement constraint and any [resource +requirements](#reserve-cpu-or-memory-for-a-service). ```bash $ docker service create \ --name my-nginx \ --replicas 5 \ - --constraint region==east \ + --constraint node.labels.region==east \ nginx ``` @@ -648,9 +648,9 @@ all nodes where `region` is set to `east` and `type` is not set to `devel`: ```bash $ docker service create \ --name my-nginx \ - --global \ - --constraint region==east \ - --constraint type!=devel \ + --mode global \ + --constraint node.labels.region==east \ + --constraint node.labels.type!=devel \ nginx ``` diff --git a/network/overlay.md b/network/overlay.md index 75af520eef..8b476c2d3d 100644 --- a/network/overlay.md +++ b/network/overlay.md @@ -241,9 +241,9 @@ When you connect to a published port on any swarm node (whether it is running a given service or not), you are redirected to a worker which is running that service, transparently. Effectively, Docker acts as a load balancer for your swarm services. Services using the routing mesh are running in _virtual IP (VIP) -mode_. Even a service running on each node (by means of the `--global` flag) -uses the routing mesh. When using the routing mesh, there is no guarantee about -which Docker node services client requests. +mode_. Even a service running on each node (by means of the `--mode global` +flag) uses the routing mesh. When using the routing mesh, there is no guarantee +about which Docker node services client requests. To bypass the routing mesh, you can start a service using _DNS Round Robin (DNSRR) mode_, by setting the `--endpoint-mode` flag to `dnsrr`. You must run From 9def21adc41b62f6934f2aea4b3588bd2157e6d6 Mon Sep 17 00:00:00 2001 From: Carl Dunkelberger <39133599+cdunkelb@users.noreply.github.com> Date: Thu, 6 Sep 2018 12:54:14 -0400 Subject: [PATCH 048/222] Update Support.md Adding statements to clarify that a web ui support dump will not contain logs from offline nodes. --- ee/get-support.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ee/get-support.md b/ee/get-support.md index b64486e6eb..00db9c5bff 100644 --- a/ee/get-support.md +++ b/ee/get-support.md @@ -18,8 +18,11 @@ If you're unable to submit a new case using the support page, fill in the company email address. Docker Support engineers may ask you to provide a UCP support dump, which is an -archive that contains UCP system logs and diagnostic information. To obtain a -support dump: +archive that contains UCP system logs and diagnostic information. If a node is not joined to the cluster and healthy, the support dump from the web UI will not contain logs from the unhealthy node. For unhealthy nodes use the CLI to get a support dump. + +## Use the Web UI to get a support dump + +To get the support dump from the Web UI: 1. Log into the UCP web UI with an administrator account. 2. In the top-left menu, click your username and choose From d71bedf6c5e814a8c935640b28a52d5919111caf Mon Sep 17 00:00:00 2001 From: Jason Travis Date: Fri, 7 Sep 2018 06:50:07 -0700 Subject: [PATCH 049/222] Update zfs-driver.md --- storage/storagedriver/zfs-driver.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/storagedriver/zfs-driver.md b/storage/storagedriver/zfs-driver.md index 7f633d1a71..65cf4ac3e2 100644 --- a/storage/storagedriver/zfs-driver.md +++ b/storage/storagedriver/zfs-driver.md @@ -42,7 +42,7 @@ use unless you have substantial experience with ZFS on Linux. - Changing the storage driver makes any containers you have already created inaccessible on the local system. Use `docker save` to save containers, and push existing images to Docker Hub or a private repository, so that you - not need to re-create them later. + do not need to re-create them later. ## Configure Docker with the `zfs` storage driver From fcd8d3ed8879b63f962227bea36e4671d2f1a170 Mon Sep 17 00:00:00 2001 From: Trapier Marshall Date: Fri, 7 Sep 2018 17:31:10 -0400 Subject: [PATCH 050/222] interlock arch: fix constraint summary Technical: - Neither interlock extension nor interlock proxy are constrained to worker nodes. Style: - Break up run-on sentence testedon: UCP 3.0.4 --- ee/ucp/interlock/architecture.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ee/ucp/interlock/architecture.md b/ee/ucp/interlock/architecture.md index 3b29d88561..e870987b39 100644 --- a/ee/ucp/interlock/architecture.md +++ b/ee/ucp/interlock/architecture.md @@ -22,9 +22,9 @@ routing in UCP: ![](../images/interlock-architecture-1.svg) -An Interlock service starts running on a manager node, an Interlock-extension -service starts running on a worker node, and two replicas of the -Interlock-proxy service run on worker nodes. +The Interlock service starts a single replica on a manager node. The +Interlock-extension service runs a single replica on any available node, and +the Interlock-proxy service starts two replicas on any available node. If you don't have any worker nodes in your cluster, then all Interlock components run on manager nodes. From 294974fad2e7c5bb1da24cd674c1fbc146470f57 Mon Sep 17 00:00:00 2001 From: Vadim-Zenin Date: Fri, 7 Sep 2018 23:04:22 +0100 Subject: [PATCH 051/222] linux-postinstall.md updated $HOME variable will exclude mistake for users with custom home folder location. --- install/linux/linux-postinstall.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/linux/linux-postinstall.md b/install/linux/linux-postinstall.md index 2cb4de940f..3f1bf92d11 100644 --- a/install/linux/linux-postinstall.md +++ b/install/linux/linux-postinstall.md @@ -73,7 +73,7 @@ To create the `docker` group and add your user: ```bash $ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R - $ sudo chmod g+rwx "/home/$USER/.docker" -R + $ sudo chmod g+rwx "$HOME/.docker" -R ``` ## Configure Docker to start on boot From f167a179546592d8ee95069cb37f1de2e33578d5 Mon Sep 17 00:00:00 2001 From: Trapier Marshall Date: Fri, 7 Sep 2018 18:20:06 -0400 Subject: [PATCH 052/222] interlock host mode: word agreement --- ee/ucp/interlock/deploy/host-mode-networking.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ee/ucp/interlock/deploy/host-mode-networking.md b/ee/ucp/interlock/deploy/host-mode-networking.md index ed7e922d20..fe0763c91b 100644 --- a/ee/ucp/interlock/deploy/host-mode-networking.md +++ b/ee/ucp/interlock/deploy/host-mode-networking.md @@ -19,8 +19,8 @@ communicate using host mode networking. using host mode networking. * Use host mode networking for all of the components. -In this example we'll start with a production-grade deployment of the layer -7 routing solution and update it so that use host mode networking instead of +In this example we'll start with a production-grade deployment of the layer 7 +routing solution and update it so that it uses host mode networking instead of overlay networking. When using host mode networking you won't be able to use DNS service discovery, @@ -48,7 +48,7 @@ PublishMode = "host" ``` When updating the `ucp-interlock` service to use the new Docker configuration, -make sure to update it so that it starts publishes its port on the host: +make sure to update it so that it starts publishing its port on the host: ```bash docker service update \ From 4b4525e0403360da153f38565e82c69db5d34bd5 Mon Sep 17 00:00:00 2001 From: Andrew Hsu Date: Sun, 9 Sep 2018 01:13:31 +0000 Subject: [PATCH 053/222] add ol7_addons repo enable steps for oraclelinux Signed-off-by: Andrew Hsu --- _includes/ee-linux-install-reuse.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/_includes/ee-linux-install-reuse.md b/_includes/ee-linux-install-reuse.md index 920cbd16d4..85d6a1f4db 100644 --- a/_includes/ee-linux-install-reuse.md +++ b/_includes/ee-linux-install-reuse.md @@ -116,6 +116,16 @@ You only need to set up the repository once, after which you can install Docker {% endif %} +{% if linux-dist == "oraclelinux" %} + +5. Enable the `ol7_addons` Oracle repository. This ensures access to the `container-selinux` package required by `docker-ee`. + + ```bash + $ sudo yum-config-manager --enable ol7_addons + ``` + +{% endif %} + 6. Add the Docker EE **stable** repository: ```bash From 8bbeeb81012c128a3e03cdcfb86290f23915ecfa Mon Sep 17 00:00:00 2001 From: Andrew Hsu Date: Sun, 9 Sep 2018 01:27:55 +0000 Subject: [PATCH 054/222] remove oraclelinux warning about unable to install with selinux Signed-off-by: Andrew Hsu --- install/linux/docker-ee/oracle.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/install/linux/docker-ee/oracle.md b/install/linux/docker-ee/oracle.md index 684685638c..7147ff08ce 100644 --- a/install/linux/docker-ee/oracle.md +++ b/install/linux/docker-ee/oracle.md @@ -53,14 +53,6 @@ $ sudo yum remove docker \ {% include ee-linux-install-reuse.md section="using-yum-repo" %} -{% capture selinux-warning %} -> Docker EE cannot install on {{ linux-dist-long }} with SELinux enabled -> -> If you have `selinux` enabled and you attempt to install Docker EE 17.06.1 or newer, you get an error that the `container-selinux` package cannot be found.. -{:.warning} -{% endcapture %} -{{ selinux-warning }} - ### Set up the repository {% include ee-linux-install-reuse.md section="set-up-yum-repo" %} From 171cbd5091a012c3c3f9d3d465ea9a4b5074a1b4 Mon Sep 17 00:00:00 2001 From: John Gasper Date: Tue, 11 Sep 2018 17:28:10 -0700 Subject: [PATCH 055/222] typo --- datacenter/dtr/2.3/guides/user/create-promotion-policies.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datacenter/dtr/2.3/guides/user/create-promotion-policies.md b/datacenter/dtr/2.3/guides/user/create-promotion-policies.md index 555cd39b32..83b0008fee 100644 --- a/datacenter/dtr/2.3/guides/user/create-promotion-policies.md +++ b/datacenter/dtr/2.3/guides/user/create-promotion-policies.md @@ -97,5 +97,5 @@ pipelines. Also, users don't need access to all repositories in the promotion pipeline. A repository admin can define the promotion policies, and only allow access to push to the first repository in that pipeline. Once users push -to the fist repository, the image gets promoted to the other repositories as +to the first repository, the image gets promoted to the other repositories as long as it satisfies the promotion policies. From eb7419112892d9e850838819b4a9e557048de1a8 Mon Sep 17 00:00:00 2001 From: Jim Armstrong Date: Wed, 12 Sep 2018 10:23:22 -0500 Subject: [PATCH 056/222] Update link for "switch between windows and linux" The current link points back to a non-existent anchor on this same page; corrected the page and anchor --- docker-for-windows/install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-for-windows/install.md b/docker-for-windows/install.md index a45dae6e84..3a8e83aa82 100644 --- a/docker-for-windows/install.md +++ b/docker-for-windows/install.md @@ -39,7 +39,7 @@ guarantees. For more information, see Looking for information on using Windows containers? -* [Switch between Windows and Linux containers](index.md#switch-between-windows-and-linux-containers) describes the Linux / Windows containers toggle in Docker for Windows and points you to the tutorial mentioned above. +* [Switch between Windows and Linux containers](https://docs.docker.com/docker-for-windows/#switch-between-windows-and-linux-containers) describes the Linux / Windows containers toggle in Docker for Windows and points you to the tutorial mentioned above. * [Getting Started with Windows Containers (Lab)](https://github.com/docker/labs/blob/master/windows/windows-containers/README.md) provides a tutorial on how to set up and run Windows containers on Windows 10 or with Windows Server 2016. It shows you how to use a MusicStore application with From 2b79d3c4f80ac36df54ae40f216d9e3d8c2b4bee Mon Sep 17 00:00:00 2001 From: Jenkins-pr-release-docs Date: Fri, 14 Sep 2018 08:06:44 +0000 Subject: [PATCH 057/222] Docker for mac edge relnotes 2.0.0.0-beta1-mac75 Signed-off-by: Jenkins-pr-release-docs --- docker-for-mac/edge-release-notes.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docker-for-mac/edge-release-notes.md b/docker-for-mac/edge-release-notes.md index 51ddccf482..b7a5a00658 100644 --- a/docker-for-mac/edge-release-notes.md +++ b/docker-for-mac/edge-release-notes.md @@ -18,6 +18,24 @@ for Mac](install.md#download-docker-for-mac). ## Edge Releases of 2018 +### Docker Community Edition 2.0.0.0-beta1-mac75 2018-09-14 + +[Download](https://download.docker.com/mac/edge/27117/Docker.dmg) + +* Upgrades + - [Docker 18.09.0-ce-beta1](https://github.com/docker/docker-ce/releases/tag/v18.09.0-ce-beta1) + - Linux Kernel 4.9.125 + +* New + - New version scheme + +* Deprecation + - Removed support of AUFS + - Removed support of OSX 10.11 + +* Bug fixes and minor changes + - Fix panic in diagnose + ### Docker Community Edition 18.06.1-ce-mac74 2018-08-29 [Download](https://download.docker.com/mac/edge/26766/Docker.dmg) From a1262396daf68c1a8efe8c57c18edb8d365802bd Mon Sep 17 00:00:00 2001 From: Jenkins-pr-release-docs Date: Fri, 14 Sep 2018 08:08:10 +0000 Subject: [PATCH 058/222] Docker for win edge relnotes 2.0.0.0-beta1-win75 Signed-off-by: Jenkins-pr-release-docs --- docker-for-windows/edge-release-notes.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docker-for-windows/edge-release-notes.md b/docker-for-windows/edge-release-notes.md index c36cf0ac3d..d6bd0baa4e 100644 --- a/docker-for-windows/edge-release-notes.md +++ b/docker-for-windows/edge-release-notes.md @@ -18,6 +18,27 @@ for Windows](install.md#download-docker-for-windows). ## Edge Releases of 2018 +### Docker Community Edition 2.0.0.0-beta1-win75 2018-09-14 + +[Download](https://download.docker.com/win/edge/19925/Docker%20for%20Windows%20Installer.exe) + +* Upgrades + - [Docker 18.09.0-ce-beta1](https://github.com/docker/docker-ce/releases/tag/v18.09.0-ce-beta1) + - Linux Kernel 4.9.125 + +* New + - New version scheme + +* Deprecation + - Removed support of AUFS + +* Bug fixes and minor changes + - LCOW does not anymore need --platform flag on multi-arch images + - Better WCOW host.docker.internal resolution on host, don't rewrite it if not modified. From [docker/for-win#1976](https://github.com/docker/for-win/issues/1976) + - Disk size can now be ajusted from 32GiB to drive space. + - Fix dns update too verbose in logs + - Fix panic in diagnose + ### Docker Community Edition 18.06.1-ce-win74 2018-08-29 [Download](https://download.docker.com/win/edge/19508/Docker%20for%20Windows%20Installer.exe) From ed478fdd3c415885ea2e731bbda808d626b958fc Mon Sep 17 00:00:00 2001 From: Olivier Date: Mon, 17 Sep 2018 02:07:23 +0200 Subject: [PATCH 059/222] Fix typo --- _includes/install-script.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/_includes/install-script.md b/_includes/install-script.md index 0fbe56ef8e..7c3c531fbc 100644 --- a/_includes/install-script.md +++ b/_includes/install-script.md @@ -42,20 +42,24 @@ $ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh get-docker.sh +``` If you would like to use Docker as a non-root user, you should now consider adding your user to the "docker" group with something like: +```bash sudo usermod -aG docker your-user +``` Remember to log out and back in for this to take effect! -WARNING: Adding a user to the "docker" group grants the ability to run - containers which can be used to obtain root privileges on the - docker host. - Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface - for more information. -``` +> **Warning**: +> +> Adding a user to the "docker" group grants the ability to run containers +> which can be used to obtain root privileges on the docker host. Refer to +> https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface +> for more information. +{:.warning} Docker CE is installed. It starts automatically on `DEB`-based distributions. On `RPM`-based distributions, you need to start it manually using the appropriate From bf3191396a30c0141d4382ba6b67ffaac8e4440f Mon Sep 17 00:00:00 2001 From: Juan Eugenio Abadie Date: Sun, 16 Sep 2018 23:02:52 -0300 Subject: [PATCH 060/222] Add missing word --- storage/storagedriver/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/storagedriver/index.md b/storage/storagedriver/index.md index 2e91726e8d..28aa20d9cf 100644 --- a/storage/storagedriver/index.md +++ b/storage/storagedriver/index.md @@ -10,7 +10,7 @@ redirect_from: --- To use storage drivers effectively, it's important to know how Docker builds and -stores images, how these images are used by containers. You can use this +stores images, and how these images are used by containers. You can use this information to make informed choices about the best way to persist data from your applications and avoid performance problems along the way. From 7ca78921779688bbd4defa0899988f236a1db7ff Mon Sep 17 00:00:00 2001 From: imba-tjd <109224573@qq.com> Date: Tue, 18 Sep 2018 19:13:23 +0800 Subject: [PATCH 061/222] Fix anchor --- install/linux/docker-ce/centos.md | 2 +- install/linux/docker-ce/debian.md | 2 +- install/linux/docker-ce/fedora.md | 4 ++-- install/linux/docker-ce/ubuntu.md | 2 +- install/linux/docker-ee/suse.md | 2 +- install/linux/docker-ee/ubuntu.md | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/install/linux/docker-ce/centos.md b/install/linux/docker-ce/centos.md index 77e410bbfe..aacf1d203f 100644 --- a/install/linux/docker-ce/centos.md +++ b/install/linux/docker-ce/centos.md @@ -201,7 +201,7 @@ steps. #### Upgrade Docker CE To upgrade Docker CE, follow the -[installation instructions](#install-docker), choosing the new version you want +[installation instructions](#install-docker-ce), choosing the new version you want to install. ### Install from a package diff --git a/install/linux/docker-ce/debian.md b/install/linux/docker-ce/debian.md index 3ca3eb80dd..1967707fa7 100644 --- a/install/linux/docker-ce/debian.md +++ b/install/linux/docker-ce/debian.md @@ -280,7 +280,7 @@ steps. For Raspbian, you can optionally #### Upgrade Docker CE To upgrade Docker CE, first run `sudo apt-get update`, then follow the -[installation instructions](#install-docker), choosing the new version you want +[installation instructions](#install-docker-ce), choosing the new version you want to install. ### Install from a package diff --git a/install/linux/docker-ce/fedora.md b/install/linux/docker-ce/fedora.md index fcba95a6e9..00642ac815 100644 --- a/install/linux/docker-ce/fedora.md +++ b/install/linux/docker-ce/fedora.md @@ -11,7 +11,7 @@ toc_max: 4 To get started with Docker CE on Fedora, make sure you [meet the prerequisites](#prerequisites), then -[install Docker](#install-docker). +[install Docker](#install-docker-ce). ## Prerequisites @@ -192,7 +192,7 @@ steps. #### Upgrade Docker CE To upgrade Docker CE, follow the -[installation instructions](#install-docker), choosing the new version you want +[installation instructions](#install-docker-ce), choosing the new version you want to install. ### Install from a package diff --git a/install/linux/docker-ce/ubuntu.md b/install/linux/docker-ce/ubuntu.md index 1d6220d29e..55398a1d63 100644 --- a/install/linux/docker-ce/ubuntu.md +++ b/install/linux/docker-ce/ubuntu.md @@ -289,7 +289,7 @@ steps. #### Upgrade Docker CE To upgrade Docker CE, first run `sudo apt-get update`, then follow the -[installation instructions](#install-docker), choosing the new version you want +[installation instructions](#install-docker-ce), choosing the new version you want to install. ### Install from a package diff --git a/install/linux/docker-ee/suse.md b/install/linux/docker-ee/suse.md index ecc08544e9..eb1905a37e 100644 --- a/install/linux/docker-ee/suse.md +++ b/install/linux/docker-ee/suse.md @@ -313,7 +313,7 @@ To upgrade Docker EE: 2. Run `sudo zypper refresh`. 3. Follow the - [installation instructions](#install-docker), choosing the new version you want + [installation instructions](#install-docker-ee), choosing the new version you want to install. ### Install from a package diff --git a/install/linux/docker-ee/ubuntu.md b/install/linux/docker-ee/ubuntu.md index ba29e7c1cf..4a2df77b89 100644 --- a/install/linux/docker-ee/ubuntu.md +++ b/install/linux/docker-ee/ubuntu.md @@ -285,7 +285,7 @@ To upgrade Docker EE: 2. Run `sudo apt-get update`. 3. Follow the - [installation instructions](#install-docker), choosing the new version you want + [installation instructions](#install-docker-ee), choosing the new version you want to install. ### Install from a package From 8884af061f585282c829e1154e4bc0d3d69d5b01 Mon Sep 17 00:00:00 2001 From: epompeii Date: Wed, 19 Sep 2018 07:38:08 -0400 Subject: [PATCH 062/222] Fix Typo in Staging Options It said that there were three options for staging docs. Only two were listed. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0a4328515a..62e0dc5fc6 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,7 @@ of [https://docs.docker.com/](https://docs.docker.com/). ## Staging the docs -You have three options: +You have two options: 1. On your local machine, clone this repo and run our staging container: From 71d13c62a5c07ff037fed32239847b00f72b5686 Mon Sep 17 00:00:00 2001 From: Gilles Douaire Date: Wed, 19 Sep 2018 12:54:47 -0400 Subject: [PATCH 063/222] Specific docker installation - moar details. More details in the commands used to force a specific Docker version in powershell. --- install/windows/docker-ee.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/install/windows/docker-ee.md b/install/windows/docker-ee.md index ded7eaae94..ea09e55b33 100644 --- a/install/windows/docker-ee.md +++ b/install/windows/docker-ee.md @@ -158,8 +158,10 @@ Then open a new Powershell session for the update to take effect. To update Docker EE Engine to the most recent release, specify the `-RequiredVersion` and `-Update` flags: ```PowerShell -Install-Package -Name docker -ProviderName DockerMsftProvider -RequiredVersion 18.03 -Update -Force +Install-Package -Name docker -ProviderName DockerMsftProvider -RequiredVersion 18.03.1-ee-2 -Update -Force ``` +The required version must match any of the versions available in this json file: https://dockermsft.blob.core.windows.net/dockercontainer/DockerMsftIndex.json + ## Preparing a Docker EE Engine for use with UCP From b13b363c149c5fa9d0646d758794be5b4cd843d0 Mon Sep 17 00:00:00 2001 From: Thad Guidry Date: Wed, 19 Sep 2018 16:12:30 -0500 Subject: [PATCH 064/222] fixed typo for Feedback --- docker-for-windows/faqs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-for-windows/faqs.md b/docker-for-windows/faqs.md index fa0564c111..62ee13a0e3 100644 --- a/docker-for-windows/faqs.md +++ b/docker-for-windows/faqs.md @@ -69,7 +69,7 @@ Do the following each time: 4. Install a different version of the app (Stable or Edge). -### Feeback +### Feedback #### What kind of feedback are we looking for? Everything is fair game. We'd like your impressions on the download-install From 6699ef8acf51348d291387c76d136194c23bad51 Mon Sep 17 00:00:00 2001 From: Kavika Tavui Date: Thu, 20 Sep 2018 09:41:53 -0700 Subject: [PATCH 065/222] Update resource_constraints.md Block IO is not configurable, the current documentation suggests that it is on line 12. --- config/containers/resource_constraints.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/containers/resource_constraints.md b/config/containers/resource_constraints.md index 2ebb2590f9..849283ed8f 100644 --- a/config/containers/resource_constraints.md +++ b/config/containers/resource_constraints.md @@ -9,7 +9,7 @@ keywords: "docker, daemon, configuration" By default, a container has no resource constraints and can use as much of a given resource as the host's kernel scheduler allows. Docker provides ways -to control how much memory, CPU, or block IO a container can use, setting runtime +to control how much memory, or CPU a container can use, setting runtime configuration flags of the `docker run` command. This section provides details on when you should set such limits and the possible implications of setting them. From 364f6fea3041ab34ec5cc5d42a731940fa519ae9 Mon Sep 17 00:00:00 2001 From: Ben Foster Date: Thu, 20 Sep 2018 13:13:08 -0400 Subject: [PATCH 066/222] Replace references to master with manager There were two places where the node was called 'master', the rest it was called 'manager' --- network/network-tutorial-overlay.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/network/network-tutorial-overlay.md b/network/network-tutorial-overlay.md index 613f519bb0..8063fd4df0 100644 --- a/network/network-tutorial-overlay.md +++ b/network/network-tutorial-overlay.md @@ -73,7 +73,7 @@ such as EC2 security groups), and then to follow the At the end of this procedure, all three Docker hosts will be joined to the swarm and will be connected together using an overlay network called `ingress`. -1. On `master`. initialize the swarm. If the host only has one network +1. On `manager`. initialize the swarm. If the host only has one network interface, the `--advertise-addr` flag is optional. ```bash @@ -192,7 +192,7 @@ connect a service to each of them. 3. Run `docker service ls` to monitor the progress of service bring-up, which may take a few seconds. -4. Inspect the `nginx-net` network on `master`, `worker-1`, and `worker-2`. +4. Inspect the `nginx-net` network on `manager`, `worker-1`, and `worker-2`. Remember that you did not need to create it manually on `worker-1` and `worker-2` because Docker created it for you. The output will be long, but notice the `Containers` and `Peers` sections. `Containers` lists all From cb82aaf30128c166ccbecdd9a2f7473f4a89542d Mon Sep 17 00:00:00 2001 From: Joe Abbey Date: Fri, 21 Sep 2018 14:50:12 -0400 Subject: [PATCH 067/222] The proper parameter for az-nic-ips is IP_COUNT --- ee/ucp/admin/install/install-on-azure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ee/ucp/admin/install/install-on-azure.md b/ee/ucp/admin/install/install-on-azure.md index a49867950f..568eda70e8 100644 --- a/ee/ucp/admin/install/install-on-azure.md +++ b/ee/ucp/admin/install/install-on-azure.md @@ -126,7 +126,7 @@ Follow the steps below to configure multiple IP addresses per VM NIC. --secret=azure_ucp_admin.toml \ --log-driver json-file \ --log-opt max-size=1m \ - --env IPCOUNT=128 \ + --env IP_COUNT=128 \ --name ipallocator \ --constraint "node.platform.os == linux" \ docker4x/az-nic-ips From 3108ea73678202bd0f9e8f5786855728f61d7155 Mon Sep 17 00:00:00 2001 From: Raphael Luba Date: Sun, 23 Sep 2018 14:40:35 +0200 Subject: [PATCH 068/222] Fix typo in journald log options The `label` option is actually called `labels`. --- config/containers/logging/journald.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/containers/logging/journald.md b/config/containers/logging/journald.md index 83ed38b818..ecd850d63f 100644 --- a/config/containers/logging/journald.md +++ b/config/containers/logging/journald.md @@ -57,7 +57,7 @@ driver options. | Option | Required | Description | |:------------|:---------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `tag` | optional | Specify template to set `CONTAINER_TAG` and `SYSLOG_IDENTIFIER` value in journald logs. Refer to [log tag option documentation](/engine/admin/logging/log_tags/) to customize the log tag format | -| `label` | optional | Comma-separated list of keys of labels, which should be included in message, if these labels are specified for the container. | +| `labels` | optional | Comma-separated list of keys of labels, which should be included in message, if these labels are specified for the container. | | `env` | optional | Comma-separated list of keys of environment variables, which should be included in message, if these variables are specified for the container. | | `env-regex` | optional | Similar to and compatible with env. A regular expression to match logging-related environment variables. Used for advanced [log tag options](/engine/admin/logging/log_tags/). | From 269c80d2d9e70b42de3be469501ac14a8929f8c9 Mon Sep 17 00:00:00 2001 From: Oscar Caballero Date: Thu, 16 Aug 2018 14:09:59 +0200 Subject: [PATCH 069/222] Spelling revision --- README.md | 2 +- apidocs/cloud-api-source/source/includes/container.md | 2 +- .../source/javascripts/lib/_jquery.highlight.js | 4 ++-- .../source/javascripts/lib/_jquery.tocify.js | 4 ++-- apidocs/cloud-api-source/source/javascripts/lib/_lunr.js | 4 ++-- apidocs/docker-cloud/includes/action.html | 2 +- apidocs/docker-cloud/includes/container.html | 2 +- apidocs/docker-cloud/includes/dockercloud-events.html | 2 +- apidocs/docker-cloud/includes/nodecluster.html | 2 +- apidocs/docker-cloud/javascripts/all.js | 4 ++-- apidocs/layouts/single.html | 8 ++++---- compose/aspnet-mssql-compose.md | 2 +- compose/compose-file/compose-file-v1.md | 2 +- compose/compose-file/compose-file-v2.md | 6 +++--- compose/compose-file/index.md | 6 +++--- compose/rails.md | 2 +- config/containers/logging/splunk.md | 2 +- datacenter/dtr/2.0/install/upgrade/index.md | 2 +- datacenter/dtr/2.1/guides/install/upgrade.md | 2 +- datacenter/dtr/2.1/reference/api/swagger-ui.js | 8 ++++---- .../dtr/2.2/guides/admin/configure/external-storage/s3.md | 2 +- .../dtr/2.2/guides/admin/configure/garbage-collection.md | 2 +- .../monitor-and-troubleshoot/troubleshoot-batch-jobs.md | 2 +- datacenter/dtr/2.2/reference/api/swagger-ui.js | 8 ++++---- datacenter/dtr/2.2/reference/api/swagger-ui.js.original | 8 ++++---- .../dtr/2.3/guides/admin/configure/use-a-load-balancer.md | 2 +- .../monitor-and-troubleshoot/troubleshoot-batch-jobs.md | 2 +- datacenter/dtr/2.3/reference/api/swagger-ui.js | 8 ++++---- datacenter/dtr/2.3/reference/api/swagger-ui.js.original | 8 ++++---- datacenter/dtr/2.3/reference/cli/install.md | 4 ++-- datacenter/dtr/2.3/reference/cli/reconfigure.md | 4 ++-- datacenter/dtr/2.3/reference/cli/restore.md | 6 +++--- .../dtr/2.4/guides/admin/configure/use-a-load-balancer.md | 2 +- .../monitor-and-troubleshoot/troubleshoot-batch-jobs.md | 4 ++-- datacenter/dtr/2.4/reference/cli/install.md | 4 ++-- datacenter/dtr/2.4/reference/cli/reconfigure.md | 4 ++-- datacenter/dtr/2.4/reference/cli/restore.md | 6 +++--- datacenter/ucp/1.1/configuration/dtr-integration.md | 2 +- datacenter/ucp/1.1/configuration/multi-host-networking.md | 2 +- datacenter/ucp/2.0/guides/content-trust/index.md | 2 +- .../ucp/2.0/guides/installation/scale-your-cluster.md | 2 +- datacenter/ucp/2.1/guides/user/secrets/index.md | 2 +- .../2.2/guides/admin/configure/ucp-configuration-file.md | 2 +- .../user/services/use-domain-names-to-access-services.md | 2 +- datacenter/ucp/2.2/reference/api/swagger-ui.js | 8 ++++---- datacenter/ucp/2.2/reference/api/swagger-ui.js.original | 8 ++++---- docker-cloud/builds/automated-build.md | 2 +- docker-cloud/cloud-swarm/create-cloud-swarm-aws.md | 2 +- docker-cloud/cloud-swarm/create-cloud-swarm-azure.md | 2 +- docker-cloud/cloud-swarm/link-azure-swarm.md | 2 +- docker-cloud/migration/cloud-to-aws-ecs.md | 6 +++--- docker-cloud/migration/cloud-to-kube-aks.md | 2 +- docker-for-mac/edge-release-notes.md | 2 +- docker-for-mac/release-notes.md | 2 +- docker-for-mac/troubleshoot.md | 2 +- docker-for-windows/troubleshoot.md | 2 +- docker-hub/repos.md | 2 +- docker-store/certify-plugins-logging.md | 2 +- docker-store/publisher_faq.md | 2 +- .../monitor-and-troubleshoot/troubleshoot-batch-jobs.md | 2 +- ee/dtr/user/manage-images/override-a-vulnerability.md | 2 +- ee/dtr/user/promotion-policies/pull-mirror.md | 2 +- .../admin/configure/integrate-with-multiple-registries.md | 2 +- .../admin/configure/manage-and-deploy-private-images.md | 2 +- ee/ucp/admin/configure/ucp-configuration-file.md | 2 +- ee/ucp/kubernetes/layer-7-routing.md | 2 +- ee/ucp/release-notes.md | 2 +- ee/ucp/user-access/cli.md | 2 +- engine/swarm/how-swarm-mode-works/pki.md | 2 +- engine/swarm/services.md | 2 +- install/linux/docker-ce/debian.md | 2 +- js/app.js | 2 +- machine/drivers/virtualbox.md | 2 +- machine/examples/aws.md | 2 +- machine/examples/index.md | 2 +- machine/examples/ocean.md | 2 +- machine/get-started-cloud.md | 6 +++--- notary/reference/signer-config.md | 2 +- notary/running_a_service.md | 2 +- reference/dtr/2.5/cli/install.md | 2 +- reference/dtr/2.5/cli/reconfigure.md | 2 +- reference/dtr/2.5/cli/restore.md | 2 +- reference/ucp/3.0/api/swagger-ui.js | 8 ++++---- reference/ucp/3.0/api/swagger-ui.js.original | 8 ++++---- registry/storage-drivers/index.md | 2 +- release-notes/docker-ce.md | 6 +++--- release-notes/docker-compose.md | 6 +++--- release-notes/docker-engine.md | 2 +- storage/storagedriver/aufs-driver.md | 2 +- storage/storagedriver/overlayfs-driver.md | 2 +- storage/storagedriver/zfs-driver.md | 2 +- swarm/configure-tls.md | 4 ++-- swarm/swarm_at_scale/deploy-infra.md | 4 ++-- test.md | 4 ++-- tests/src/validator/frontmatter_test.go | 2 +- 95 files changed, 153 insertions(+), 153 deletions(-) diff --git a/README.md b/README.md index 62e0dc5fc6..7e3df910cb 100644 --- a/README.md +++ b/README.md @@ -307,7 +307,7 @@ In order to keep the Git repository light, _please_ compress the images (losslessly). On Mac you may use (ImageOptim)[https://imageoptim.com] for instance. Be sure to compress the images *before* adding them to the repository, doing it afterwards actually worsens the impact on the Git repo (but -still optimizes the bandwith during browsing). +still optimizes the bandwidth during browsing). ## Building archives and the live published docs diff --git a/apidocs/cloud-api-source/source/includes/container.md b/apidocs/cloud-api-source/source/includes/container.md index 29fa9ca6b6..0777feb23f 100644 --- a/apidocs/cloud-api-source/source/includes/container.md +++ b/apidocs/cloud-api-source/source/includes/container.md @@ -303,7 +303,7 @@ memory | The memory limit of the container in MB (see [Runtime Constraints on CP memory_swap | Total memory limit (memory + swap) of the container in MB autorestart | Whether to restart the container automatically if it stops (see [Crash recovery](/docker-cloud/apps/autorestart/) for more information) autodestroy | Whether to terminate the container automatically if it stops (see [Autodestroy](/docker-cloud/apps/auto-destroy/) for more information) -roles | List of Docker Cloud roles asigned to this container (see [API roles](/docker-cloud/apps/api-roles/) for more information)) +roles | List of Docker Cloud roles assigned to this container (see [API roles](/docker-cloud/apps/api-roles/) for more information)) linked_to_container | List of IP addresses of the linked containers (see table `Container Link attributes` below and [Service links](/docker-cloud/apps/service-links/) for more information) link_variables | List of environment variables that would be exposed in any container that is linked to this one privileged | Whether the container has Docker's `privileged` flag set or not (see [Runtime privilege](/engine/reference/run/#runtime-privilege-linux-capabilities-and-lxc-configuration) for more information) diff --git a/apidocs/cloud-api-source/source/javascripts/lib/_jquery.highlight.js b/apidocs/cloud-api-source/source/javascripts/lib/_jquery.highlight.js index 9dcf3c7af3..9b9d3d8e4c 100644 --- a/apidocs/cloud-api-source/source/javascripts/lib/_jquery.highlight.js +++ b/apidocs/cloud-api-source/source/javascripts/lib/_jquery.highlight.js @@ -11,7 +11,7 @@ * - highlight element tag and class names can be specified in options * * Usage: - * // wrap every occurrance of text 'lorem' in content + * // wrap every occurrence of text 'lorem' in content * // with (default options) * $('#content').highlight('lorem'); * @@ -26,7 +26,7 @@ * // don't ignore case during search of term 'lorem' * $('#content').highlight('lorem', { caseSensitive: true }); * - * // wrap every occurrance of term 'ipsum' in content + * // wrap every occurrence of term 'ipsum' in content * // with * $('#content').highlight('ipsum', { element: 'em', className: 'important' }); * diff --git a/apidocs/cloud-api-source/source/javascripts/lib/_jquery.tocify.js b/apidocs/cloud-api-source/source/javascripts/lib/_jquery.tocify.js index 91cf637913..037366cbed 100644 --- a/apidocs/cloud-api-source/source/javascripts/lib/_jquery.tocify.js +++ b/apidocs/cloud-api-source/source/javascripts/lib/_jquery.tocify.js @@ -858,7 +858,7 @@ } - // Maintains chainablity + // Maintains chainability return self; }, @@ -911,7 +911,7 @@ } - // Maintains chainablity + // Maintains chainability return self; }, diff --git a/apidocs/cloud-api-source/source/javascripts/lib/_lunr.js b/apidocs/cloud-api-source/source/javascripts/lib/_lunr.js index 54457dab7a..43d26f52a7 100644 --- a/apidocs/cloud-api-source/source/javascripts/lib/_lunr.js +++ b/apidocs/cloud-api-source/source/javascripts/lib/_lunr.js @@ -1667,7 +1667,7 @@ /** * lunr.trimmer is a pipeline function for trimming non word - * characters from the begining and end of tokens before they + * characters from the beginning and end of tokens before they * enter the index. * * This implementation may not work correctly for non latin @@ -1891,7 +1891,7 @@ } else if (typeof exports === 'object') { /** * Node. Does not work with strict CommonJS, but - * only CommonJS-like enviroments that support module.exports, + * only CommonJS-like environments that support module.exports, * like Node. */ module.exports = factory() diff --git a/apidocs/docker-cloud/includes/action.html b/apidocs/docker-cloud/includes/action.html index c0c39f34eb..d3476b9135 100644 --- a/apidocs/docker-cloud/includes/action.html +++ b/apidocs/docker-cloud/includes/action.html @@ -62,7 +62,7 @@

An action represents an API call by a user. Details of the API call such as timestamp, origin IP address, and user agent are logged in the action object.

-

Simple API calls that do not require asynchronous execution will return immediately with the appropiate HTTP error code and an action object will be created either in Success or Failed states. API calls that do require asynchronous execution will return HTTP code 202 Accepted immediately and create an action object in In progress state, which will change to Success or Failed state depending on the outcome of the operation being performed. In both cases the response will include a X-DockerCloud-Action-URI header with the resource URI of the created action.

+

Simple API calls that do not require asynchronous execution will return immediately with the appropriate HTTP error code and an action object will be created either in Success or Failed states. API calls that do require asynchronous execution will return HTTP code 202 Accepted immediately and create an action object in In progress state, which will change to Success or Failed state depending on the outcome of the operation being performed. In both cases the response will include a X-DockerCloud-Action-URI header with the resource URI of the created action.

Attributes

diff --git a/apidocs/docker-cloud/includes/container.html b/apidocs/docker-cloud/includes/container.html index 5fcb44f79e..ce7a583627 100644 --- a/apidocs/docker-cloud/includes/container.html +++ b/apidocs/docker-cloud/includes/container.html @@ -470,7 +470,7 @@ roles -List of Docker Cloud roles asigned to this container (see API roles for more information)) +List of Docker Cloud roles assigned to this container (see API roles for more information)) linked_to_container diff --git a/apidocs/docker-cloud/includes/dockercloud-events.html b/apidocs/docker-cloud/includes/dockercloud-events.html index ef08ecbf80..a93d950059 100644 --- a/apidocs/docker-cloud/includes/dockercloud-events.html +++ b/apidocs/docker-cloud/includes/dockercloud-events.html @@ -81,7 +81,7 @@ action -Type of action that was executed on the object. Posible values: create, update or delete +Type of action that was executed on the object. Possible values: create, update or delete parents diff --git a/apidocs/docker-cloud/includes/nodecluster.html b/apidocs/docker-cloud/includes/nodecluster.html index 0be9899695..cc908bc719 100644 --- a/apidocs/docker-cloud/includes/nodecluster.html +++ b/apidocs/docker-cloud/includes/nodecluster.html @@ -200,7 +200,7 @@
  • id: AWS VPC identifier of the target VPC where the nodes of the cluster will be deployed (required)
  • -
  • subnets: a list of target subnet indentifiers inside selected VPC. If you specify more than one subnet, Docker Cloud will balance among all of them following a high-availability schema (optional)
  • +
  • subnets: a list of target subnet identifiers inside selected VPC. If you specify more than one subnet, Docker Cloud will balance among all of them following a high-availability schema (optional)
  • security_groups: the security group that will be applied to every node of the cluster (optional)
  • iam: IAM-related options (optional) diff --git a/apidocs/docker-cloud/javascripts/all.js b/apidocs/docker-cloud/javascripts/all.js index a7bf81a395..10e6f3d483 100644 --- a/apidocs/docker-cloud/javascripts/all.js +++ b/apidocs/docker-cloud/javascripts/all.js @@ -82,7 +82,7 @@ e.TokenStore=function(){this.root={docs:{}},this.length=0},e.TokenStore.load=fun * - highlight element tag and class names can be specified in options * * Usage: - * // wrap every occurrance of text 'lorem' in content + * // wrap every occurrence of text 'lorem' in content * // with (default options) * $('#content').highlight('lorem'); * @@ -97,7 +97,7 @@ e.TokenStore=function(){this.root={docs:{}},this.length=0},e.TokenStore.load=fun * // don't ignore case during search of term 'lorem' * $('#content').highlight('lorem', { caseSensitive: true }); * - * // wrap every occurrance of term 'ipsum' in content + * // wrap every occurrence of term 'ipsum' in content * // with * $('#content').highlight('ipsum', { element: 'em', className: 'important' }); * diff --git a/apidocs/layouts/single.html b/apidocs/layouts/single.html index 8d058662a5..be239550b4 100644 --- a/apidocs/layouts/single.html +++ b/apidocs/layouts/single.html @@ -208,7 +208,7 @@ set this globally, or specify it before each CLI command. To learn more, see the

    An action represents an API call by a user. Details of the API call such as timestamp, origin IP address, and user agent are logged in the action object.

    -

    Simple API calls that do not require asynchronous execution will return immediately with the appropiate HTTP error code and an action object will be created either in Success or Failed states. API calls that do require asynchronous execution will return HTTP code 202 Accepted immediately and create an action object in In progress state, which will change to Success or Failed state depending on the outcome of the operation being performed. In both cases the response will include a X-DockerCloud-Action-URI header with the resource URI of the created action.

    +

    Simple API calls that do not require asynchronous execution will return immediately with the appropriate HTTP error code and an action object will be created either in Success or Failed states. API calls that do require asynchronous execution will return HTTP code 202 Accepted immediately and create an action object in In progress state, which will change to Success or Failed state depending on the outcome of the operation being performed. In both cases the response will include a X-DockerCloud-Action-URI header with the resource URI of the created action.

    Attributes

    @@ -1450,7 +1450,7 @@ set this globally, or specify it before each CLI command. To learn more, see the
    • id: AWS VPC identifier of the target VPC where the nodes of the cluster will be deployed (required)
    • -
    • subnets: a list of target subnet indentifiers inside selected VPC. If you specify more than one subnet, Docker Cloud will balance among all of them following a high-availability schema (optional)
    • +
    • subnets: a list of target subnet identifiers inside selected VPC. If you specify more than one subnet, Docker Cloud will balance among all of them following a high-availability schema (optional)
    • security_groups: the security group that will be applied to every node of the cluster (optional)
  • iam: IAM-related options (optional) @@ -5263,7 +5263,7 @@ docker-cloud tag set -t tag-2 7eaf7fff roles -List of Docker Cloud roles asigned to this container (see API roles for more information)) +List of Docker Cloud roles assigned to this container (see API roles for more information)) linked_to_container @@ -6326,7 +6326,7 @@ container.execute("ls", handler=msg_handler) action -Type of action that was executed on the object. Posible values: create, update or delete +Type of action that was executed on the object. Possible values: create, update or delete parents diff --git a/compose/aspnet-mssql-compose.md b/compose/aspnet-mssql-compose.md index 36c9111b01..e47736190a 100644 --- a/compose/aspnet-mssql-compose.md +++ b/compose/aspnet-mssql-compose.md @@ -186,7 +186,7 @@ configure this app to use our SQL Server database, and then create a Go ahead and try out the website! This sample uses the SQL Server database image in the back-end for authentication. -Ready! You now have a ASP.NET Core application running against SQL Server in +Ready! You now have an ASP.NET Core application running against SQL Server in Docker Compose! This sample made use of some of the most popular Microsoft products for Linux. To learn more about Windows Containers, check out [Docker Labs for Windows Containers](https://github.com/docker/labs/tree/master/windows) diff --git a/compose/compose-file/compose-file-v1.md b/compose/compose-file/compose-file-v1.md index 23e428e5f7..7e0ede1bc1 100644 --- a/compose/compose-file/compose-file-v1.md +++ b/compose/compose-file/compose-file-v1.md @@ -415,7 +415,7 @@ id. Sets the PID mode to the host PID mode. This turns on sharing between container and the host operating system the PID address space. Containers launched with this flag can access and manipulate other -containers in the bare-metal machine's namespace and vise-versa. +containers in the bare-metal machine's namespace and vice versa. ### ports diff --git a/compose/compose-file/compose-file-v2.md b/compose/compose-file/compose-file-v2.md index 60c574d575..4585410da3 100644 --- a/compose/compose-file/compose-file-v2.md +++ b/compose/compose-file/compose-file-v2.md @@ -1006,7 +1006,7 @@ designated container or service. If set to "host", the service's PID mode is the host PID mode. This turns on sharing between container and the host operating system the PID address space. Containers launched with this flag can access and manipulate -other containers in the bare-metal machine's namespace and vise-versa. +other containers in the bare-metal machine's namespace and vice versa. > **Note**: the `service:` and `container:` forms require > [version 2.1](compose-versioning.md#version-21) or above @@ -1483,7 +1483,7 @@ Set a custom name for this volume. data: name: my-app-data -It can also be used in conjuction with the `external` property: +It can also be used in conjunction with the `external` property: version: '2.1' volumes: @@ -1641,7 +1641,7 @@ Set a custom name for this network. network1: name: my-app-net -It can also be used in conjuction with the `external` property: +It can also be used in conjunction with the `external` property: version: '2.1' networks: diff --git a/compose/compose-file/index.md b/compose/compose-file/index.md index f21990b09c..c34bd24b68 100644 --- a/compose/compose-file/index.md +++ b/compose/compose-file/index.md @@ -1409,7 +1409,7 @@ networks: Sets the PID mode to the host PID mode. This turns on sharing between container and the host operating system the PID address space. Containers launched with this flag can access and manipulate other -containers in the bare-metal machine's namespace and vise-versa. +containers in the bare-metal machine's namespace and vice versa. ### ports @@ -2029,7 +2029,7 @@ and will **not** be scoped with the stack name. data: name: my-app-data -It can also be used in conjuction with the `external` property: +It can also be used in conjunction with the `external` property: version: '3.4' volumes: @@ -2257,7 +2257,7 @@ and will **not** be scoped with the stack name. network1: name: my-app-net -It can also be used in conjuction with the `external` property: +It can also be used in conjunction with the `external` property: version: '3.5' networks: diff --git a/compose/rails.md b/compose/rails.md index d107c14247..19d96dd112 100644 --- a/compose/rails.md +++ b/compose/rails.md @@ -230,7 +230,7 @@ web_1 | A server is already running. Check /myapp/tmp/pids/server.pid. ``` -To resolve this, delete the file `tmp/pids/server.pid`, and then re-start the +To resolve this, delete the file `tmp/pids/server.pid`, and then restart the application with `docker-compose up`. ### Restart the application diff --git a/config/containers/logging/splunk.md b/config/containers/logging/splunk.md index 93983f2a7d..c279c819ff 100644 --- a/config/containers/logging/splunk.md +++ b/config/containers/logging/splunk.md @@ -49,7 +49,7 @@ The following properties let you configure the splunk logging driver. - To configure the `splunk` driver across the Docker environment, edit `daemon.json` with the key, `"log-opts": {"NAME": "VALUE", ...}`. -- To configure the `splunk` driver for an indiviual container, use `docker run` +- To configure the `splunk` driver for an individual container, use `docker run` with the flag, `--log-opt NAME=VALUE ...`. | Option | Required | Description | diff --git a/datacenter/dtr/2.0/install/upgrade/index.md b/datacenter/dtr/2.0/install/upgrade/index.md index a246a87222..fec028a1a0 100644 --- a/datacenter/dtr/2.0/install/upgrade/index.md +++ b/datacenter/dtr/2.0/install/upgrade/index.md @@ -11,7 +11,7 @@ is ensuring you're running DTR 2.0. If that's not the case, start by upgrading your installation to version 2.0.0, and then upgrade to the latest version available. -There is no downtime when upgrading an highly-available DTR cluster. If your +There is no downtime when upgrading a highly-available DTR cluster. If your DTR deployment has a single replica, schedule the upgrade to take place outside business peak hours to ensure the impact on your business is close to none. diff --git a/datacenter/dtr/2.1/guides/install/upgrade.md b/datacenter/dtr/2.1/guides/install/upgrade.md index ebf284f607..45cd0e02c1 100644 --- a/datacenter/dtr/2.1/guides/install/upgrade.md +++ b/datacenter/dtr/2.1/guides/install/upgrade.md @@ -9,7 +9,7 @@ is ensuring you're running DTR 2.0. If that's not the case, start by upgrading your installation to version 2.0.0, and then upgrade to the latest version available. -There is no downtime when upgrading an highly-available DTR cluster. If your +There is no downtime when upgrading a highly-available DTR cluster. If your DTR deployment has a single replica, schedule the upgrade to take place outside business peak hours to ensure the impact on your business is close to none. diff --git a/datacenter/dtr/2.1/reference/api/swagger-ui.js b/datacenter/dtr/2.1/reference/api/swagger-ui.js index 207714d300..c9abd09ff8 100644 --- a/datacenter/dtr/2.1/reference/api/swagger-ui.js +++ b/datacenter/dtr/2.1/reference/api/swagger-ui.js @@ -2121,7 +2121,7 @@ SuperagentHttpClient.prototype.execute = function (obj) { } else if (res && obj.on && obj.on.response) { var possibleObj; - // Already parsed by by superagent? + // Already parsed by superagent? if(res.body && Object.keys(res.body).length > 0) { possibleObj = res.body; } else { @@ -12442,7 +12442,7 @@ var iframe, elemdisplay = {}; /** - * Retrieve the actual display of a element + * Retrieve the actual display of an element * @param {String} name nodeName of the element * @param {Object} doc Document object */ @@ -13862,7 +13862,7 @@ jQuery.fx.speeds = { }; -// Based off of the plugin by Clint Helfers, with permission. +// Based on the plugin by Clint Helfers, with permission. // http://blindsignals.com/index.php/2009/07/jquery-delay/ jQuery.fn.delay = function( time, type ) { time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; @@ -26068,7 +26068,7 @@ var baseCreate = require('./baseCreate'), * @private * @param {*} value The value to wrap. * @param {boolean} [chainAll] Enable chaining for all wrapper methods. - * @param {Array} [actions=[]] Actions to peform to resolve the unwrapped value. + * @param {Array} [actions=[]] Actions to perform to resolve the unwrapped value. */ function LodashWrapper(value, chainAll, actions) { this.__wrapped__ = value; diff --git a/datacenter/dtr/2.2/guides/admin/configure/external-storage/s3.md b/datacenter/dtr/2.2/guides/admin/configure/external-storage/s3.md index 753e29f5d7..13c3175388 100644 --- a/datacenter/dtr/2.2/guides/admin/configure/external-storage/s3.md +++ b/datacenter/dtr/2.2/guides/admin/configure/external-storage/s3.md @@ -24,7 +24,7 @@ Start by Then, as a best practice you should [create a new IAM user](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) just for the DTR -integration and apply a IAM policy that ensures the user has limited permissions. +integration and apply an IAM policy that ensures the user has limited permissions. This user only needs permissions to access the bucket that you use to store images, and to read, write, and delete files. diff --git a/datacenter/dtr/2.2/guides/admin/configure/garbage-collection.md b/datacenter/dtr/2.2/guides/admin/configure/garbage-collection.md index 971f4911f2..b1286d3dae 100644 --- a/datacenter/dtr/2.2/guides/admin/configure/garbage-collection.md +++ b/datacenter/dtr/2.2/guides/admin/configure/garbage-collection.md @@ -18,7 +18,7 @@ pushes will fail The GC cron schedule is set to run in **UTC time**. Containers typically run in UTC time (unless the system time is mounted), therefore remember that the cron -schedule will run based off of UTC time when configuring. +schedule will run based on UTC time when configuring. GC puts DTR into read-only mode; pulls succeed while pushes fail. Pushing an image while GC runs may lead to undefined behavior and data loss, therefore diff --git a/datacenter/dtr/2.2/guides/admin/monitor-and-troubleshoot/troubleshoot-batch-jobs.md b/datacenter/dtr/2.2/guides/admin/monitor-and-troubleshoot/troubleshoot-batch-jobs.md index 11e58a9ef2..9092d434bc 100644 --- a/datacenter/dtr/2.2/guides/admin/monitor-and-troubleshoot/troubleshoot-batch-jobs.md +++ b/datacenter/dtr/2.2/guides/admin/monitor-and-troubleshoot/troubleshoot-batch-jobs.md @@ -68,7 +68,7 @@ Jobs can be in one of the following status: ## Job capacity -Each job runner has a limited capacity and doesn't claim jobs that require an +Each job runner has a limited capacity and doesn't claim jobs that require a higher capacity. You can see the capacity of a job runner using the `GET /api/v0/workers` endpoint: diff --git a/datacenter/dtr/2.2/reference/api/swagger-ui.js b/datacenter/dtr/2.2/reference/api/swagger-ui.js index 207714d300..c9abd09ff8 100644 --- a/datacenter/dtr/2.2/reference/api/swagger-ui.js +++ b/datacenter/dtr/2.2/reference/api/swagger-ui.js @@ -2121,7 +2121,7 @@ SuperagentHttpClient.prototype.execute = function (obj) { } else if (res && obj.on && obj.on.response) { var possibleObj; - // Already parsed by by superagent? + // Already parsed by superagent? if(res.body && Object.keys(res.body).length > 0) { possibleObj = res.body; } else { @@ -12442,7 +12442,7 @@ var iframe, elemdisplay = {}; /** - * Retrieve the actual display of a element + * Retrieve the actual display of an element * @param {String} name nodeName of the element * @param {Object} doc Document object */ @@ -13862,7 +13862,7 @@ jQuery.fx.speeds = { }; -// Based off of the plugin by Clint Helfers, with permission. +// Based on the plugin by Clint Helfers, with permission. // http://blindsignals.com/index.php/2009/07/jquery-delay/ jQuery.fn.delay = function( time, type ) { time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; @@ -26068,7 +26068,7 @@ var baseCreate = require('./baseCreate'), * @private * @param {*} value The value to wrap. * @param {boolean} [chainAll] Enable chaining for all wrapper methods. - * @param {Array} [actions=[]] Actions to peform to resolve the unwrapped value. + * @param {Array} [actions=[]] Actions to perform to resolve the unwrapped value. */ function LodashWrapper(value, chainAll, actions) { this.__wrapped__ = value; diff --git a/datacenter/dtr/2.2/reference/api/swagger-ui.js.original b/datacenter/dtr/2.2/reference/api/swagger-ui.js.original index 207714d300..c9abd09ff8 100644 --- a/datacenter/dtr/2.2/reference/api/swagger-ui.js.original +++ b/datacenter/dtr/2.2/reference/api/swagger-ui.js.original @@ -2121,7 +2121,7 @@ SuperagentHttpClient.prototype.execute = function (obj) { } else if (res && obj.on && obj.on.response) { var possibleObj; - // Already parsed by by superagent? + // Already parsed by superagent? if(res.body && Object.keys(res.body).length > 0) { possibleObj = res.body; } else { @@ -12442,7 +12442,7 @@ var iframe, elemdisplay = {}; /** - * Retrieve the actual display of a element + * Retrieve the actual display of an element * @param {String} name nodeName of the element * @param {Object} doc Document object */ @@ -13862,7 +13862,7 @@ jQuery.fx.speeds = { }; -// Based off of the plugin by Clint Helfers, with permission. +// Based on the plugin by Clint Helfers, with permission. // http://blindsignals.com/index.php/2009/07/jquery-delay/ jQuery.fn.delay = function( time, type ) { time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; @@ -26068,7 +26068,7 @@ var baseCreate = require('./baseCreate'), * @private * @param {*} value The value to wrap. * @param {boolean} [chainAll] Enable chaining for all wrapper methods. - * @param {Array} [actions=[]] Actions to peform to resolve the unwrapped value. + * @param {Array} [actions=[]] Actions to perform to resolve the unwrapped value. */ function LodashWrapper(value, chainAll, actions) { this.__wrapped__ = value; diff --git a/datacenter/dtr/2.3/guides/admin/configure/use-a-load-balancer.md b/datacenter/dtr/2.3/guides/admin/configure/use-a-load-balancer.md index 1251b10c85..826ccf5fc6 100644 --- a/datacenter/dtr/2.3/guides/admin/configure/use-a-load-balancer.md +++ b/datacenter/dtr/2.3/guides/admin/configure/use-a-load-balancer.md @@ -54,7 +54,7 @@ with more details on any one of these services: * Content trust (notary) This endpoint is for checking the health of a *single* replica. To get -the health of every replica in a cluster, querying each replica individiually is +the health of every replica in a cluster, querying each replica individually is the preferred way to do it in real time. The `/api/v0/meta/cluster_status` diff --git a/datacenter/dtr/2.3/guides/admin/monitor-and-troubleshoot/troubleshoot-batch-jobs.md b/datacenter/dtr/2.3/guides/admin/monitor-and-troubleshoot/troubleshoot-batch-jobs.md index 90f25bb594..e05dec0fca 100644 --- a/datacenter/dtr/2.3/guides/admin/monitor-and-troubleshoot/troubleshoot-batch-jobs.md +++ b/datacenter/dtr/2.3/guides/admin/monitor-and-troubleshoot/troubleshoot-batch-jobs.md @@ -69,7 +69,7 @@ Jobs can be in one of the following status: ## Job capacity -Each job runner has a limited capacity and doesn't claim jobs that require an +Each job runner has a limited capacity and doesn't claim jobs that require a higher capacity. You can see the capacity of a job runner using the `GET /api/v0/workers` endpoint: diff --git a/datacenter/dtr/2.3/reference/api/swagger-ui.js b/datacenter/dtr/2.3/reference/api/swagger-ui.js index 3a37440753..ca11fa6ff6 100644 --- a/datacenter/dtr/2.3/reference/api/swagger-ui.js +++ b/datacenter/dtr/2.3/reference/api/swagger-ui.js @@ -2132,7 +2132,7 @@ SuperagentHttpClient.prototype.execute = function (obj) { } else if (res && obj.on && obj.on.response) { var possibleObj; - // Already parsed by by superagent? + // Already parsed by superagent? if(res.body && Object.keys(res.body).length > 0) { possibleObj = res.body; } else { @@ -12457,7 +12457,7 @@ var iframe, elemdisplay = {}; /** - * Retrieve the actual display of a element + * Retrieve the actual display of an element * @param {String} name nodeName of the element * @param {Object} doc Document object */ @@ -13877,7 +13877,7 @@ jQuery.fx.speeds = { }; -// Based off of the plugin by Clint Helfers, with permission. +// Based on the plugin by Clint Helfers, with permission. // http://blindsignals.com/index.php/2009/07/jquery-delay/ jQuery.fn.delay = function( time, type ) { time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; @@ -26083,7 +26083,7 @@ var baseCreate = require('./baseCreate'), * @private * @param {*} value The value to wrap. * @param {boolean} [chainAll] Enable chaining for all wrapper methods. - * @param {Array} [actions=[]] Actions to peform to resolve the unwrapped value. + * @param {Array} [actions=[]] Actions to perform to resolve the unwrapped value. */ function LodashWrapper(value, chainAll, actions) { this.__wrapped__ = value; diff --git a/datacenter/dtr/2.3/reference/api/swagger-ui.js.original b/datacenter/dtr/2.3/reference/api/swagger-ui.js.original index 207714d300..c9abd09ff8 100644 --- a/datacenter/dtr/2.3/reference/api/swagger-ui.js.original +++ b/datacenter/dtr/2.3/reference/api/swagger-ui.js.original @@ -2121,7 +2121,7 @@ SuperagentHttpClient.prototype.execute = function (obj) { } else if (res && obj.on && obj.on.response) { var possibleObj; - // Already parsed by by superagent? + // Already parsed by superagent? if(res.body && Object.keys(res.body).length > 0) { possibleObj = res.body; } else { @@ -12442,7 +12442,7 @@ var iframe, elemdisplay = {}; /** - * Retrieve the actual display of a element + * Retrieve the actual display of an element * @param {String} name nodeName of the element * @param {Object} doc Document object */ @@ -13862,7 +13862,7 @@ jQuery.fx.speeds = { }; -// Based off of the plugin by Clint Helfers, with permission. +// Based on the plugin by Clint Helfers, with permission. // http://blindsignals.com/index.php/2009/07/jquery-delay/ jQuery.fn.delay = function( time, type ) { time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; @@ -26068,7 +26068,7 @@ var baseCreate = require('./baseCreate'), * @private * @param {*} value The value to wrap. * @param {boolean} [chainAll] Enable chaining for all wrapper methods. - * @param {Array} [actions=[]] Actions to peform to resolve the unwrapped value. + * @param {Array} [actions=[]] Actions to perform to resolve the unwrapped value. */ function LodashWrapper(value, chainAll, actions) { this.__wrapped__ = value; diff --git a/datacenter/dtr/2.3/reference/cli/install.md b/datacenter/dtr/2.3/reference/cli/install.md index 4890cbd838..8dac003191 100644 --- a/datacenter/dtr/2.3/reference/cli/install.md +++ b/datacenter/dtr/2.3/reference/cli/install.md @@ -49,9 +49,9 @@ Note: Use --ucp-ca "$(cat ca.pem)" instead of --ucp-insecure-tls for a productio | `--https-proxy` | $DTR_HTTPS_PROXY | The HTTPS proxy used for outgoing requests. | | `--log-host` | $LOG_HOST | Where to send logs to.The endpoint to send logs to. Use this flag if you set --log-protocol to tcp or udp. | | `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO. | -| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.This allows to define the protocol used to send container logs to an external system. The supported protocals are tcp, udp, or internal. Use this flag with --log-host. | +| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.This allows to define the protocol used to send container logs to an external system. The supported protocols are tcp, udp, or internal. Use this flag with --log-host. | | `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format nfs:///.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format nfs:///. To use this flag, you need to install an NFS client library like nfs-common in the node where you're deploying DTR. You can test this by running showmount -e . When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty. | -| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route throught the proxy. Format acme.com[, acme.org]. | +| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route through the proxy. Format acme.com[, acme.org]. | | `--overlay-subnet` | $DTR_OVERLAY_SUBNET | The subnet used by the dtr-ol overlay network. Example: 10.0.0.0/24.For high-availalibity, DTR creates an overlay network between UCP nodes. This flag allows you to choose the subnet for that network. Make sure the subnet you choose is not used on any machine where DTR replicas are deployed. | | `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | | `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | diff --git a/datacenter/dtr/2.3/reference/cli/reconfigure.md b/datacenter/dtr/2.3/reference/cli/reconfigure.md index 0d358b238a..e14b24dc8e 100644 --- a/datacenter/dtr/2.3/reference/cli/reconfigure.md +++ b/datacenter/dtr/2.3/reference/cli/reconfigure.md @@ -42,9 +42,9 @@ time, configure your DTR for high-availability. | `--https-proxy` | $DTR_HTTPS_PROXY | The HTTPS proxy used for outgoing requests. | | `--log-host` | $LOG_HOST | Where to send logs to. The endpoint to send logs to. Use this flag if you set `--log-protocol` to tcp or udp. | | `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO. | -| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal. This allows to define the protocol used to send container logs to an external system. The supported protocals are tcp, udp, or internal. Use this flag with `--log-host`. | +| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal. This allows to define the protocol used to send container logs to an external system. The supported protocols are tcp, udp, or internal. Use this flag with `--log-host`. | | `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format nfs:///. By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format nfs:///. To use this flag, you need to install an NFS client library like nfs-common in the node where you're deploying DTR. You can test this by running showmount -e . When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty. | -| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for. When using `--http-proxy` you can use this flag to specify a list of domains that you don't want to route throught the proxy. Format acme.com[, acme.org]. | +| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for. When using `--http-proxy` you can use this flag to specify a list of domains that you don't want to route through the proxy. Format acme.com[, acme.org]. | | `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80. This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with `--replica-https-port`. This port can also be used for unencrypted health checks. | | `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443. This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | | `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP. Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | diff --git a/datacenter/dtr/2.3/reference/cli/restore.md b/datacenter/dtr/2.3/reference/cli/restore.md index dbfaa1aa66..554dcd9705 100644 --- a/datacenter/dtr/2.3/reference/cli/restore.md +++ b/datacenter/dtr/2.3/reference/cli/restore.md @@ -24,7 +24,7 @@ restore procedure for the Docker images stored in your registry, taking in consideration whether your DTR installation is configured to store images on the local filesystem or using a cloud provider. -After restoring, you can add more DTR replicas by using the the 'join' command. +After restoring, you can add more DTR replicas by using the 'join' command. ## Options @@ -46,9 +46,9 @@ After restoring, you can add more DTR replicas by using the the 'join' command. | `--https-proxy` | $DTR_HTTPS_PROXY | The HTTPS proxy used for outgoing requests. | | `--log-host` | $LOG_HOST | Where to send logs to.The endpoint to send logs to. Use this flag if you set --log-protocol to tcp or udp. | | `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO. | -| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.This allows to define the protocol used to send container logs to an external system. The supported protocals are tcp, udp, or internal. Use this flag with --log-host. | +| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.This allows to define the protocol used to send container logs to an external system. The supported protocols are tcp, udp, or internal. Use this flag with --log-host. | | `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format nfs:///.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format nfs:///. To use this flag, you need to install an NFS client library like nfs-common in the node where you're deploying DTR. You can test this by running showmount -e . When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty. | -| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route throught the proxy. Format acme.com[, acme.org]. | +| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route through the proxy. Format acme.com[, acme.org]. | | `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | | `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | | `--replica-id` | $DTR_INSTALL_REPLICA_ID | Assign an ID to the DTR replica. Random by default. | diff --git a/datacenter/dtr/2.4/guides/admin/configure/use-a-load-balancer.md b/datacenter/dtr/2.4/guides/admin/configure/use-a-load-balancer.md index 1251b10c85..826ccf5fc6 100644 --- a/datacenter/dtr/2.4/guides/admin/configure/use-a-load-balancer.md +++ b/datacenter/dtr/2.4/guides/admin/configure/use-a-load-balancer.md @@ -54,7 +54,7 @@ with more details on any one of these services: * Content trust (notary) This endpoint is for checking the health of a *single* replica. To get -the health of every replica in a cluster, querying each replica individiually is +the health of every replica in a cluster, querying each replica individually is the preferred way to do it in real time. The `/api/v0/meta/cluster_status` diff --git a/datacenter/dtr/2.4/guides/admin/monitor-and-troubleshoot/troubleshoot-batch-jobs.md b/datacenter/dtr/2.4/guides/admin/monitor-and-troubleshoot/troubleshoot-batch-jobs.md index 3864cc5ec9..d4207da654 100644 --- a/datacenter/dtr/2.4/guides/admin/monitor-and-troubleshoot/troubleshoot-batch-jobs.md +++ b/datacenter/dtr/2.4/guides/admin/monitor-and-troubleshoot/troubleshoot-batch-jobs.md @@ -69,8 +69,8 @@ Jobs can be in one of the following status: ## Job capacity -Each job runner has a limited capacity and doesn't claim jobs that require an -higher capacity. You can see the capacity of a job runner using the +Each job runner has a limited capacity and doesn't claim jobs that require a +higher capacity. You can see the capacity of a job runner using the `GET /api/v0/workers` endpoint: ```json diff --git a/datacenter/dtr/2.4/reference/cli/install.md b/datacenter/dtr/2.4/reference/cli/install.md index 78ebf9b66c..b7699e1e52 100644 --- a/datacenter/dtr/2.4/reference/cli/install.md +++ b/datacenter/dtr/2.4/reference/cli/install.md @@ -46,9 +46,9 @@ Note: Use --ucp-ca "$(cat ca.pem)" instead of --ucp-insecure-tls for a productio | `--https-proxy` | $DTR_HTTPS_PROXY | The HTTPS proxy used for outgoing requests. | | `--log-host` | $LOG_HOST | Where to send logs to.The endpoint to send logs to. Use this flag if you set --log-protocol to tcp or udp. | | `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO. | -| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.This allows to define the protocol used to send container logs to an external system. The supported protocals are tcp, udp, or internal. Use this flag with --log-host. | +| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.This allows to define the protocol used to send container logs to an external system. The supported protocols are tcp, udp, or internal. Use this flag with --log-host. | | `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format nfs:///.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format nfs:///. To use this flag, you need to install an NFS client library like nfs-common in the node where you're deploying DTR. You can test this by running showmount -e . When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty. | -| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route throught the proxy. Format acme.com[, acme.org]. | +| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route through the proxy. Format acme.com[, acme.org]. | | `--overlay-subnet` | $DTR_OVERLAY_SUBNET | The subnet used by the dtr-ol overlay network. Example: 10.0.0.0/24.For high-availalibity, DTR creates an overlay network between UCP nodes. This flag allows you to choose the subnet for that network. Make sure the subnet you choose is not used on any machine where DTR replicas are deployed. | | `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | | `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | diff --git a/datacenter/dtr/2.4/reference/cli/reconfigure.md b/datacenter/dtr/2.4/reference/cli/reconfigure.md index a836829c9f..0605098068 100644 --- a/datacenter/dtr/2.4/reference/cli/reconfigure.md +++ b/datacenter/dtr/2.4/reference/cli/reconfigure.md @@ -39,9 +39,9 @@ time, configure your DTR for high-availability. | `--https-proxy` | $DTR_HTTPS_PROXY | The HTTPS proxy used for outgoing requests. | | `--log-host` | $LOG_HOST | Where to send logs to.The endpoint to send logs to. Use this flag if you set --log-protocol to tcp or udp. | | `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO. | -| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.This allows to define the protocol used to send container logs to an external system. The supported protocals are tcp, udp, or internal. Use this flag with --log-host. | +| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.This allows to define the protocol used to send container logs to an external system. The supported protocols are tcp, udp, or internal. Use this flag with --log-host. | | `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format nfs:///.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format nfs:///. To use this flag, you need to install an NFS client library like nfs-common in the node where you're deploying DTR. You can test this by running showmount -e . When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty. | -| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route throught the proxy. Format acme.com[, acme.org]. | +| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route through the proxy. Format acme.com[, acme.org]. | | `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | | `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | | `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https:///ca, and use --ucp-ca "$(cat ca.pem)". | diff --git a/datacenter/dtr/2.4/reference/cli/restore.md b/datacenter/dtr/2.4/reference/cli/restore.md index 73a371f9f1..187439cf61 100644 --- a/datacenter/dtr/2.4/reference/cli/restore.md +++ b/datacenter/dtr/2.4/reference/cli/restore.md @@ -24,7 +24,7 @@ restore procedure for the Docker images stored in your registry, taking in consideration whether your DTR installation is configured to store images on the local filesystem or using a cloud provider. -After restoring, you can add more DTR replicas by using the the 'join' command. +After restoring, you can add more DTR replicas by using the 'join' command. ## Options @@ -43,9 +43,9 @@ After restoring, you can add more DTR replicas by using the the 'join' command. | `--https-proxy` | $DTR_HTTPS_PROXY | The HTTPS proxy used for outgoing requests. | | `--log-host` | $LOG_HOST | Where to send logs to.The endpoint to send logs to. Use this flag if you set --log-protocol to tcp or udp. | | `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO. | -| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.This allows to define the protocol used to send container logs to an external system. The supported protocals are tcp, udp, or internal. Use this flag with --log-host. | +| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.This allows to define the protocol used to send container logs to an external system. The supported protocols are tcp, udp, or internal. Use this flag with --log-host. | | `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format nfs:///.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format nfs:///. To use this flag, you need to install an NFS client library like nfs-common in the node where you're deploying DTR. You can test this by running showmount -e . When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty. | -| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route throught the proxy. Format acme.com[, acme.org]. | +| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route through the proxy. Format acme.com[, acme.org]. | | `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | | `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | | `--replica-id` | $DTR_INSTALL_REPLICA_ID | Assign an ID to the DTR replica. Random by default. | diff --git a/datacenter/ucp/1.1/configuration/dtr-integration.md b/datacenter/ucp/1.1/configuration/dtr-integration.md index ad7edeaaad..ee89820fd4 100644 --- a/datacenter/ucp/1.1/configuration/dtr-integration.md +++ b/datacenter/ucp/1.1/configuration/dtr-integration.md @@ -10,7 +10,7 @@ title: Integrate with Docker Trusted Registry You can integrate UCP with Docker Trusted Registry (DTR). This allows you to securely store and manage the Docker images that are used in your UCP cluster. -At an high-level, there are three steps to integrate UCP with DTR: +At a high-level, there are three steps to integrate UCP with DTR: * Configure UCP to know about DTR, * Configure DTR to trust UCP, diff --git a/datacenter/ucp/1.1/configuration/multi-host-networking.md b/datacenter/ucp/1.1/configuration/multi-host-networking.md index aa0bb4eafc..7f804cff2a 100644 --- a/datacenter/ucp/1.1/configuration/multi-host-networking.md +++ b/datacenter/ucp/1.1/configuration/multi-host-networking.md @@ -150,7 +150,7 @@ To enable the networking feature, do the following. 5. Restart the Engine `daemon`. - The Engine `daemon` is a OS service process running on each node in your + The Engine `daemon` is an OS service process running on each node in your cluster. How you restart a service is operating-system dependent. Some examples appear below but keep in mind that on your system, the restart operation may differ. Check with your system administrator if you are not diff --git a/datacenter/ucp/2.0/guides/content-trust/index.md b/datacenter/ucp/2.0/guides/content-trust/index.md index c00f0bde8c..fd6d824143 100644 --- a/datacenter/ucp/2.0/guides/content-trust/index.md +++ b/datacenter/ucp/2.0/guides/content-trust/index.md @@ -145,7 +145,7 @@ user certificates: $ notary delegation add -p // targets/releases --all-paths user1.pem user2.pem ``` -The above command adds the the `targets/releases` delegation role to a trusted +The above command adds the `targets/releases` delegation role to a trusted repository. This role is treated as an actual release branch for Docker Content Trust, since `docker pull` commands with trust enabled will pull directly from this diff --git a/datacenter/ucp/2.0/guides/installation/scale-your-cluster.md b/datacenter/ucp/2.0/guides/installation/scale-your-cluster.md index 4cb5a3af3c..41bad4213f 100644 --- a/datacenter/ucp/2.0/guides/installation/scale-your-cluster.md +++ b/datacenter/ucp/2.0/guides/installation/scale-your-cluster.md @@ -16,7 +16,7 @@ you use the [docker swarm join](/engine/swarm/swarm-tutorial/add-nodes.md) command to add more nodes to your cluster. When joining new nodes, the UCP services automatically start running in that node. -When joining a node a a cluster you can specify its role: manager or worker. +When joining a node a cluster you can specify its role: manager or worker. * **Manager nodes** diff --git a/datacenter/ucp/2.1/guides/user/secrets/index.md b/datacenter/ucp/2.1/guides/user/secrets/index.md index 7a3b83b535..5075af9166 100644 --- a/datacenter/ucp/2.1/guides/user/secrets/index.md +++ b/datacenter/ucp/2.1/guides/user/secrets/index.md @@ -11,7 +11,7 @@ services with sensitive information like passwords, TLS certificates, or private keys. Universal Control Plane allows you to store this sensitive information, also -know as secrets, in a secure way. It also gives you role-based access control +known as secrets, in a secure way. It also gives you role-based access control so that you can control which users can use a secret in their services and which ones can manage the secret. diff --git a/datacenter/ucp/2.2/guides/admin/configure/ucp-configuration-file.md b/datacenter/ucp/2.2/guides/admin/configure/ucp-configuration-file.md index 706705a17b..14857deb4d 100644 --- a/datacenter/ucp/2.2/guides/admin/configure/ucp-configuration-file.md +++ b/datacenter/ucp/2.2/guides/admin/configure/ucp-configuration-file.md @@ -139,7 +139,7 @@ Settings for syncing users. ## auth.ldap.admin_sync_opts (optional) -Settings for syncing system admininistrator users. +Settings for syncing system administrator users. | Parameter | Required | Description | |:-----------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/datacenter/ucp/2.2/guides/user/services/use-domain-names-to-access-services.md b/datacenter/ucp/2.2/guides/user/services/use-domain-names-to-access-services.md index f5247fbda5..4f70c76168 100644 --- a/datacenter/ucp/2.2/guides/user/services/use-domain-names-to-access-services.md +++ b/datacenter/ucp/2.2/guides/user/services/use-domain-names-to-access-services.md @@ -223,5 +223,5 @@ you can create an overlay network that contains the `com.docker.mesh.http` label docker network create -d overlay --label com.docker.ucp.mesh.http=true new-hrm-network ``` -If you're creating a a new HRM network you need to disable the HRM service first, or disable +If you're creating a new HRM network you need to disable the HRM service first, or disable and enable the HRM service after you create the network else HRM will not be available on new network. diff --git a/datacenter/ucp/2.2/reference/api/swagger-ui.js b/datacenter/ucp/2.2/reference/api/swagger-ui.js index 207714d300..c9abd09ff8 100644 --- a/datacenter/ucp/2.2/reference/api/swagger-ui.js +++ b/datacenter/ucp/2.2/reference/api/swagger-ui.js @@ -2121,7 +2121,7 @@ SuperagentHttpClient.prototype.execute = function (obj) { } else if (res && obj.on && obj.on.response) { var possibleObj; - // Already parsed by by superagent? + // Already parsed by superagent? if(res.body && Object.keys(res.body).length > 0) { possibleObj = res.body; } else { @@ -12442,7 +12442,7 @@ var iframe, elemdisplay = {}; /** - * Retrieve the actual display of a element + * Retrieve the actual display of an element * @param {String} name nodeName of the element * @param {Object} doc Document object */ @@ -13862,7 +13862,7 @@ jQuery.fx.speeds = { }; -// Based off of the plugin by Clint Helfers, with permission. +// Based on the plugin by Clint Helfers, with permission. // http://blindsignals.com/index.php/2009/07/jquery-delay/ jQuery.fn.delay = function( time, type ) { time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; @@ -26068,7 +26068,7 @@ var baseCreate = require('./baseCreate'), * @private * @param {*} value The value to wrap. * @param {boolean} [chainAll] Enable chaining for all wrapper methods. - * @param {Array} [actions=[]] Actions to peform to resolve the unwrapped value. + * @param {Array} [actions=[]] Actions to perform to resolve the unwrapped value. */ function LodashWrapper(value, chainAll, actions) { this.__wrapped__ = value; diff --git a/datacenter/ucp/2.2/reference/api/swagger-ui.js.original b/datacenter/ucp/2.2/reference/api/swagger-ui.js.original index 207714d300..c9abd09ff8 100644 --- a/datacenter/ucp/2.2/reference/api/swagger-ui.js.original +++ b/datacenter/ucp/2.2/reference/api/swagger-ui.js.original @@ -2121,7 +2121,7 @@ SuperagentHttpClient.prototype.execute = function (obj) { } else if (res && obj.on && obj.on.response) { var possibleObj; - // Already parsed by by superagent? + // Already parsed by superagent? if(res.body && Object.keys(res.body).length > 0) { possibleObj = res.body; } else { @@ -12442,7 +12442,7 @@ var iframe, elemdisplay = {}; /** - * Retrieve the actual display of a element + * Retrieve the actual display of an element * @param {String} name nodeName of the element * @param {Object} doc Document object */ @@ -13862,7 +13862,7 @@ jQuery.fx.speeds = { }; -// Based off of the plugin by Clint Helfers, with permission. +// Based on the plugin by Clint Helfers, with permission. // http://blindsignals.com/index.php/2009/07/jquery-delay/ jQuery.fn.delay = function( time, type ) { time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; @@ -26068,7 +26068,7 @@ var baseCreate = require('./baseCreate'), * @private * @param {*} value The value to wrap. * @param {boolean} [chainAll] Enable chaining for all wrapper methods. - * @param {Array} [actions=[]] Actions to peform to resolve the unwrapped value. + * @param {Array} [actions=[]] Actions to perform to resolve the unwrapped value. */ function LodashWrapper(value, chainAll, actions) { this.__wrapped__ = value; diff --git a/docker-cloud/builds/automated-build.md b/docker-cloud/builds/automated-build.md index e2fcd023de..e36f84253e 100644 --- a/docker-cloud/builds/automated-build.md +++ b/docker-cloud/builds/automated-build.md @@ -202,7 +202,7 @@ to an Organization, the Cancel and Retry buttons only appear if you have `Read & Automated builds are enabled per branch or tag, and can be disabled and re-enabled easily. You might do this when you want to only build manually for -awhile, for example when you are doing major refactoring in your code. Disabling +a while, for example when you are doing major refactoring in your code. Disabling autobuilds does not disable [autotests](automated-testing.md). To disable an automated build: diff --git a/docker-cloud/cloud-swarm/create-cloud-swarm-aws.md b/docker-cloud/cloud-swarm/create-cloud-swarm-aws.md index 02ef330499..bbb2fd8c48 100644 --- a/docker-cloud/cloud-swarm/create-cloud-swarm-aws.md +++ b/docker-cloud/cloud-swarm/create-cloud-swarm-aws.md @@ -107,7 +107,7 @@ Learn how to [connect to a swarm through Docker Cloud](connect-to-swarm.md). Learn how to [register existing swarms](register-swarms.md). -You can get an overivew of topics on [swarms in Docker Cloud](index.md). +You can get an overview of topics on [swarms in Docker Cloud](index.md). To find out more about Docker swarm in general, see the Docker engine [Swarm Mode overview](/engine/swarm/). diff --git a/docker-cloud/cloud-swarm/create-cloud-swarm-azure.md b/docker-cloud/cloud-swarm/create-cloud-swarm-azure.md index fc54bfd44c..86f0519490 100644 --- a/docker-cloud/cloud-swarm/create-cloud-swarm-azure.md +++ b/docker-cloud/cloud-swarm/create-cloud-swarm-azure.md @@ -113,7 +113,7 @@ Learn how to [connect to a swarm through Docker Cloud](connect-to-swarm.md). Learn how to [register existing swarms](register-swarms.md). -You can get an overivew of topics on [swarms in Docker Cloud](index.md). +You can get an overview of topics on [swarms in Docker Cloud](index.md). To find out more about Docker swarm in general, see the Docker engine [Swarm Mode overview](/engine/swarm/). diff --git a/docker-cloud/cloud-swarm/link-azure-swarm.md b/docker-cloud/cloud-swarm/link-azure-swarm.md index ab6c74a210..198e3af24e 100644 --- a/docker-cloud/cloud-swarm/link-azure-swarm.md +++ b/docker-cloud/cloud-swarm/link-azure-swarm.md @@ -112,7 +112,7 @@ You need an SSH key to provide to Docker Cloud during the swarm create process. If you haven't done so yet, check out how to [Set up SSH keys](ssh-key-setup.md). -You can get an overivew of topics on [swarms in Docker Cloud](index.md). +You can get an overview of topics on [swarms in Docker Cloud](index.md). **Using Standard Mode to managing Docker nodes on Azure?** If you are setting up nodes on Azure in [Standard Mode](/docker-cloud/standard/), diff --git a/docker-cloud/migration/cloud-to-aws-ecs.md b/docker-cloud/migration/cloud-to-aws-ecs.md index 24460a5f6a..34df16f337 100644 --- a/docker-cloud/migration/cloud-to-aws-ecs.md +++ b/docker-cloud/migration/cloud-to-aws-ecs.md @@ -157,7 +157,7 @@ EOF For a complete description of the parameters in an ECS task definition, please refer to the [documentation](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html).  -If you've already written a Docker compose file for your service, you can import it as an ECS task definition using the `ecs-cli`, a purpose-built CLI for interacting with the ECS APIs.  It's also possible to create a ECS service directly from a Docker compose file.  The following is an example of a docker compose file for the `db` service. +If you've already written a Docker compose file for your service, you can import it as an ECS task definition using the `ecs-cli`, a purpose-built CLI for interacting with the ECS APIs.  It's also possible to create an ECS service directly from a Docker compose file.  The following is an example of a docker compose file for the `db` service. ``` version: '2' @@ -207,7 +207,7 @@ When you're ready to register the task definition, execute the following command ``` aws ecs register-task-definition --cli-input-json file://db-taskdef.json   ``` -Now that we've created a task definition for the Postgres database, we need to create a ECS service.  When you create a service, the tasks are automatically monitored by the ECS scheduler which will restart tasks when they fail in order to maintain your desired state.  With ECS, you can also associate a name with your service in Route 53 so other services can discover it by querying DNS.  For this service, you're going to create an A record.  +Now that we've created a task definition for the Postgres database, we need to create an ECS service.  When you create a service, the tasks are automatically monitored by the ECS scheduler which will restart tasks when they fail in order to maintain your desired state.  With ECS, you can also associate a name with your service in Route 53 so other services can discover it by querying DNS.  For this service, you're going to create an A record.  The first step involves creating a namespace for our `db` service, for example, `corp.local`.  The following command creates a private hosted zone in Route 53 that will be used for our namespace.   @@ -313,7 +313,7 @@ Register the task definition. aws ecs register-task-definition --region  --cli-input-json file://redis-taskdef.json ``` -This task definition will create a ECS task that runs a `redis:alpine` container that listens on port 6379.  +This task definition will create an ECS task that runs a `redis:alpine` container that listens on port 6379.  Register the `redis:alpine` service with the service discovery service.  This will create a A record in a Route 53 private hosted zone that other services will use for service discovery. diff --git a/docker-cloud/migration/cloud-to-kube-aks.md b/docker-cloud/migration/cloud-to-kube-aks.md index f72cf595be..ab7fd65239 100644 --- a/docker-cloud/migration/cloud-to-kube-aks.md +++ b/docker-cloud/migration/cloud-to-kube-aks.md @@ -694,7 +694,7 @@ Save the Kubernetes manifest file (as `k8s-vote.yml`) and check it into version ## Test the app on AKS -Before migrating, you should thoroughly test each new Kubernetes manifest on a AKS cluster. Healthy testing includes _deploying_ the application with the new manifest file, performing _scaling_ operations, increasing _load_, running _failure_ scenarios, and doing _updates_ and _rollbacks_. These tests are specific to each of your applications. You should also manage your manifest files in a version control system. +Before migrating, you should thoroughly test each new Kubernetes manifest on an AKS cluster. Healthy testing includes _deploying_ the application with the new manifest file, performing _scaling_ operations, increasing _load_, running _failure_ scenarios, and doing _updates_ and _rollbacks_. These tests are specific to each of your applications. You should also manage your manifest files in a version control system. The following steps explain how to deploy your app from the Kubernetes manifest file and verify that it is running. The steps are based on the sample application used throughout this guide, but the general commands should work for any app. diff --git a/docker-for-mac/edge-release-notes.md b/docker-for-mac/edge-release-notes.md index b7a5a00658..816cb37368 100644 --- a/docker-for-mac/edge-release-notes.md +++ b/docker-for-mac/edge-release-notes.md @@ -123,7 +123,7 @@ for Mac](install.md#download-docker-for-mac). - [Notary 0.6.1](https://github.com/docker/notary/releases/tag/v0.6.1) * New - - Re-enable raw as the the default disk format for users running macOS 10.13.4 and higher. Note this change only takes effect after a "reset to factory defaults" or "remove all data" (from the Whale menu -> Preferences -> Reset). Related to [docker/for-mac#2625](https://github.com/docker/for-mac/issues/2625) + - Re-enable raw as the default disk format for users running macOS 10.13.4 and higher. Note this change only takes effect after a "reset to factory defaults" or "remove all data" (from the Whale menu -> Preferences -> Reset). Related to [docker/for-mac#2625](https://github.com/docker/for-mac/issues/2625) * Bug fixes and minor changes - Fix Docker for Mac not starting due to socket file paths being too long (typically HOME folder path being too long). Fixes [docker/for-mac#2727](https://github.com/docker/for-mac/issues/2727), [docker/for-mac#2731](https://github.com/docker/for-mac/issues/2731). diff --git a/docker-for-mac/release-notes.md b/docker-for-mac/release-notes.md index 32af59d565..30d8f4647c 100644 --- a/docker-for-mac/release-notes.md +++ b/docker-for-mac/release-notes.md @@ -44,7 +44,7 @@ for Mac](install.md#download-docker-for-mac). * New - Kubernetes Support. You can now run a single-node Kubernetes cluster from the "Kubernetes" Pane in Docker For Mac Preferences and use kubectl commands as well as docker commands. See https://docs.docker.com/docker-for-mac/kubernetes/ - Add an experimental SOCKS server to allow access to container networks, see [docker/for-mac#2670](https://github.com/docker/for-mac/issues/2670#issuecomment-372365274). Also see [docker/for-mac#2721](https://github.com/docker/for-mac/issues/2721) - - Re-enable raw as the the default disk format for users running macOS 10.13.4 and higher. Note this change only takes effect after a "reset to factory defaults" or "remove all data" (from the Whale menu -> Preferences -> Reset). Related to [docker/for-mac#2625](https://github.com/docker/for-mac/issues/2625) + - Re-enable raw as the default disk format for users running macOS 10.13.4 and higher. Note this change only takes effect after a "reset to factory defaults" or "remove all data" (from the Whale menu -> Preferences -> Reset). Related to [docker/for-mac#2625](https://github.com/docker/for-mac/issues/2625) * Bug fixes and minor changes - AUFS storage driver is deprecated in Docker Desktop and AUFS support will be removed in the next major release. You can continue with AUFS in Docker Desktop 18.06.x, but you will need to reset disk image (in Preferences > Reset menu) before updating to the next major update. You can check documentation to [save images](https://docs.docker.com/engine/reference/commandline/save/#examples) and [backup volumes](https://docs.docker.com/storage/volumes/#backup-restore-or-migrate-data-volumes) diff --git a/docker-for-mac/troubleshoot.md b/docker-for-mac/troubleshoot.md index b1e21d7b05..3696ae3e36 100644 --- a/docker-for-mac/troubleshoot.md +++ b/docker-for-mac/troubleshoot.md @@ -274,7 +274,7 @@ know before you install](install.md#what-to-know-before-you-install). * IPv6 is not (yet) supported on Docker for Mac. A workaround is provided that auto-filters out the IPv6 addresses in DNS - server lists and enables successful network accesss. For example, + server lists and enables successful network access. For example, `2001:4860:4860::8888` would become `8.8.8.8`. To learn more, see these issues on GitHub and Docker for Mac forums: diff --git a/docker-for-windows/troubleshoot.md b/docker-for-windows/troubleshoot.md index 1658ec485a..9e3de326bd 100644 --- a/docker-for-windows/troubleshoot.md +++ b/docker-for-windows/troubleshoot.md @@ -244,7 +244,7 @@ it for you. See [these instructions](https://msdn.microsoft.com/en-us/virtualization/hyperv_on_windows/quick_start/walkthrough_install) to install Hyper-V manually. A reboot is *required*. If you install Hyper-V without the reboot, Docker for Windows does not work correctly. On some systems, Virtualization needs to be enabled in the BIOS. The steps to do so are Vendor specific, but typically the BIOS option is called `Virtualization Technology (VTx)` or similar. -From the start menu, type in "Turn Windows features on or off" and hit enter. In the subequent screen, verify Hyper-V is enabled and has a checkmark: +From the start menu, type in "Turn Windows features on or off" and hit enter. In the subsequent screen, verify Hyper-V is enabled and has a checkmark: ![Hyper-V on Windows features](images/hyperv-enabled.png){:width="600px"} diff --git a/docker-hub/repos.md b/docker-hub/repos.md index 4e13fc3769..63bbf9c9d8 100644 --- a/docker-hub/repos.md +++ b/docker-hub/repos.md @@ -100,7 +100,7 @@ Now you can push this repository to the registry designated by its name or tag. $ docker push /: -The image is then uploaded and available for use by your team-mates and/or +The image is then uploaded and available for use by your teammates and/or the community. diff --git a/docker-store/certify-plugins-logging.md b/docker-store/certify-plugins-logging.md index 7d5bfcbf8b..2f52fd7b1d 100644 --- a/docker-store/certify-plugins-logging.md +++ b/docker-store/certify-plugins-logging.md @@ -552,7 +552,7 @@ if [[ $? -ne 0 ]]; then fi ####################################################################################################################################### -# Run a alpine container with the plugin and send data to it +# Run an alpine container with the plugin and send data to it ####################################################################################################################################### docker container run \ --rm \ diff --git a/docker-store/publisher_faq.md b/docker-store/publisher_faq.md index 4b8af003bd..6bb13204a5 100644 --- a/docker-store/publisher_faq.md +++ b/docker-store/publisher_faq.md @@ -94,7 +94,7 @@ We aim to have product listings published with the concept of versions, allowing *Documentation* maps to *Documentation Link* in the publish process. *Feedback* is provided via customer reviews. https://store.docker.com/images/node?tab=reviews is an example. *Tier Description* is what you see once users get entitled to a plan. For instance, in https://store.docker.com/images/openmaptiles-openstreetmap-maps/plans/f1fc533a-76f0-493a-80a1-4e0a2b38a563?tab=instructions `A detailed street map of any place on a planet. Evaluation and non-production use. Production use license available separately` is what this publisher entered in the Tier description -*Installation instructions* is documentation on installing your software. In this case the documentation is just `Just launch the container and the map is going to be available on port 80 - ready-to-use - with instructions and list of available styles.` (We recommend more details for any content thats a certification candidate). +*Installation instructions* is documentation on installing your software. In this case the documentation is just `Just launch the container and the map is going to be available on port 80 - ready-to-use - with instructions and list of available styles.` (We recommend more details for any content that's a certification candidate). ### How can I remove a submission? I don’t want to currently have this image published as it is missing several information. diff --git a/ee/dtr/admin/monitor-and-troubleshoot/troubleshoot-batch-jobs.md b/ee/dtr/admin/monitor-and-troubleshoot/troubleshoot-batch-jobs.md index 10b8099516..5b522b3c87 100644 --- a/ee/dtr/admin/monitor-and-troubleshoot/troubleshoot-batch-jobs.md +++ b/ee/dtr/admin/monitor-and-troubleshoot/troubleshoot-batch-jobs.md @@ -76,7 +76,7 @@ Jobs can be in one of the following status: ## Job capacity -Each job runner has a limited capacity and won't claim jobs that require an +Each job runner has a limited capacity and won't claim jobs that require a higher capacity. You can see the capacity of a job runner using the `GET /api/v0/workers` endpoint: diff --git a/ee/dtr/user/manage-images/override-a-vulnerability.md b/ee/dtr/user/manage-images/override-a-vulnerability.md index 00e6fe0aca..318cd75a53 100644 --- a/ee/dtr/user/manage-images/override-a-vulnerability.md +++ b/ee/dtr/user/manage-images/override-a-vulnerability.md @@ -14,7 +14,7 @@ In the **DTR web UI**, navigate to the repository that has been scanned. ![Tag list](../../images/override-vulnerability-1.png){: .with-border} Click **View details** for the image you want to see the scan results, and -and choose **Components** to see the vulnerabilities for each component packaged +choose **Components** to see the vulnerabilities for each component packaged in the image. Select the component with the vulnerability you want to ignore, navigate to the diff --git a/ee/dtr/user/promotion-policies/pull-mirror.md b/ee/dtr/user/promotion-policies/pull-mirror.md index 08576902ed..97e85a5ea0 100644 --- a/ee/dtr/user/promotion-policies/pull-mirror.md +++ b/ee/dtr/user/promotion-policies/pull-mirror.md @@ -43,7 +43,7 @@ the public key certificate for that certificate authority. You can get it by accessing `https:///ca`. Click **execute** and make sure you got an HTTP 201 response, signaling that the -the repository is polling the source repository every couple of minutes +repository is polling the source repository every couple of minutes ## Where to go next diff --git a/ee/ucp/admin/configure/integrate-with-multiple-registries.md b/ee/ucp/admin/configure/integrate-with-multiple-registries.md index bce6268652..8768a45ccf 100644 --- a/ee/ucp/admin/configure/integrate-with-multiple-registries.md +++ b/ee/ucp/admin/configure/integrate-with-multiple-registries.md @@ -54,7 +54,7 @@ dtr_ca_url=${dtr_full_url}/ca dtr_host_address=${dtr_full_url#"https://"} dtr_host_address=${dtr_host_address%":443"} -# Create the registry configuration and save it it +# Create the registry configuration and save it cat < trust-dtr.toml [[registries]] diff --git a/ee/ucp/admin/configure/manage-and-deploy-private-images.md b/ee/ucp/admin/configure/manage-and-deploy-private-images.md index c16e4fac47..aae718da77 100644 --- a/ee/ucp/admin/configure/manage-and-deploy-private-images.md +++ b/ee/ucp/admin/configure/manage-and-deploy-private-images.md @@ -39,7 +39,7 @@ To push images to DTR, you need CLI access to a licensed installation of Docker EE. - [License your installation](license-your-installation.md). -- [Set up your Docker CLI](../../user-acccess/cli.md). +- [Set up your Docker CLI](../../user-access/cli.md). When you're set up for CLI-based access to a licensed Docker EE instance, you can push images to DTR. diff --git a/ee/ucp/admin/configure/ucp-configuration-file.md b/ee/ucp/admin/configure/ucp-configuration-file.md index 12c07ef8ff..158fe672f2 100644 --- a/ee/ucp/admin/configure/ucp-configuration-file.md +++ b/ee/ucp/admin/configure/ucp-configuration-file.md @@ -138,7 +138,7 @@ Settings for syncing users. ### auth.ldap.admin_sync_opts (optional) -Settings for syncing system admininistrator users. +Settings for syncing system administrator users. | Parameter | Required | Description | |:-----------------------|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/ee/ucp/kubernetes/layer-7-routing.md b/ee/ucp/kubernetes/layer-7-routing.md index c1d343e0b2..7baccfa6a9 100644 --- a/ee/ucp/kubernetes/layer-7-routing.md +++ b/ee/ucp/kubernetes/layer-7-routing.md @@ -105,7 +105,7 @@ spec: terminationGracePeriodSeconds: 60 containers: - name: default-http-backend - # Any image is permissable as long as: + # Any image is permissible as long as: # 1. It serves a 404 page at / # 2. It serves 200 on a /healthz endpoint image: gcr.io/google_containers/defaultbackend:1.4 diff --git a/ee/ucp/release-notes.md b/ee/ucp/release-notes.md index 325c33b321..f4044552f6 100644 --- a/ee/ucp/release-notes.md +++ b/ee/ucp/release-notes.md @@ -325,7 +325,7 @@ deprecated. Deploy your applications as Swarm services or Kubernetes workloads. * Fixee an issue where removing a worker node from the cluster would cause an etcd member to be removed on a manager node. * Upgraded `etcd` version to 2.3.8. * Fixed an issue that causes classic Swarm to provide outdated data. - * Fixed an issue that raises `ucp-kv` collection error with un-named volumes. + * Fixed an issue that raises `ucp-kv` collection error with unnamed volumes. * UI * Fixed an issue that causes UI to not parse volume options correctly. diff --git a/ee/ucp/user-access/cli.md b/ee/ucp/user-access/cli.md index 8ca3ea08a6..4d52ade24d 100644 --- a/ee/ucp/user-access/cli.md +++ b/ee/ucp/user-access/cli.md @@ -80,7 +80,7 @@ cd client-bundle; Import-Module .\env.ps1 -The client bundle utility scripts update the the environment variables +The client bundle utility scripts update the environment variables `DOCKER_HOST` to make your client tools communicate with your UCP deployment, and the `DOCKER_CERT_PATH` environment variable to use the client certificates that are included in the client bundle you downloaded. The utility scripts also diff --git a/engine/swarm/how-swarm-mode-works/pki.md b/engine/swarm/how-swarm-mode-works/pki.md index 36ef4a1724..ed7b441c36 100644 --- a/engine/swarm/how-swarm-mode-works/pki.md +++ b/engine/swarm/how-swarm-mode-works/pki.md @@ -66,7 +66,7 @@ signed by the old root CA anymore. Run `docker swarm ca --rotate` to generate a new CA certificate and key. If you prefer, you can pass the `--ca-cert` and `--external-ca` flags to specify the -root certificate and and to use a root CA external to the swarm. Alternately, +root certificate and to use a root CA external to the swarm. Alternately, you can pass the `--ca-cert` and `--ca-key` flags to specify the exact certificate and key you would like the swarm to use. diff --git a/engine/swarm/services.md b/engine/swarm/services.md index 09190fe21e..09559a10f7 100644 --- a/engine/swarm/services.md +++ b/engine/swarm/services.md @@ -696,7 +696,7 @@ $ docker service create \ > proportion to any of the other groups identified by a specific label > value. In a sense, a missing label is the same as having the label with > a null value attached to it. If the service should **only** run on -> nodes with the label being used for the the spread preference, the +> nodes with the label being used for the spread preference, the > preference should be combined with a constraint. You can specify multiple placement preferences, and they are processed in the diff --git a/install/linux/docker-ce/debian.md b/install/linux/docker-ce/debian.md index 3ca3eb80dd..6230269e3f 100644 --- a/install/linux/docker-ce/debian.md +++ b/install/linux/docker-ce/debian.md @@ -243,7 +243,7 @@ from the repository. b. Install a specific version by its fully qualified package name, which is the package name (`docker-ce`) plus the version string (2nd column) up to - the first hyphen, separated by a an equals sign (`=`), for example, + the first hyphen, separated by an equals sign (`=`), for example, `docker-ce=18.03.0.ce`. ```bash diff --git a/js/app.js b/js/app.js index 549de8b8b6..43bfcb6f7a 100644 --- a/js/app.js +++ b/js/app.js @@ -92,7 +92,7 @@ $(document).on('click', 'a[href*="#"]:not(.noanchor , .find_a_partner_section .c // find the target of the clicked anchor tag var targetBSR = $(this).find('a')[0].hash; var parentBSR = $(this); - // hide detail containers, not the the current target + // hide detail containers, not the current target $('.bsr-item-detail').not(targetBSR).hide(); // toggle current target detail container $(targetBSR).slideToggle(); diff --git a/machine/drivers/virtualbox.md b/machine/drivers/virtualbox.md index 63186007ff..49d24c2102 100644 --- a/machine/drivers/virtualbox.md +++ b/machine/drivers/virtualbox.md @@ -35,7 +35,7 @@ The size of the VM's disk can be configured this way: - `--virtualbox-hostonly-no-dhcp`: Disable the Host Only DHCP Server - `--virtualbox-import-boot2docker-vm`: The name of a Boot2Docker VM to import. - `--virtualbox-memory`: Size of memory for the host in MB. -- `--virtualbox-nat-nictype`: Specify the NAT Network Adapter Type. Possible values are are '82540EM' (Intel PRO/1000), 'Am79C973' (PCnet-FAST III) and 'virtio' Paravirtualized network adapter. +- `--virtualbox-nat-nictype`: Specify the NAT Network Adapter Type. Possible values are '82540EM' (Intel PRO/1000), 'Am79C973' (PCnet-FAST III) and 'virtio' Paravirtualized network adapter. - `--virtualbox-no-dns-proxy`: Disable proxying all DNS requests to the host (Boolean value, default to false) - `--virtualbox-no-share`: Disable the mount of your home directory - `--virtualbox-no-vtx-check`: Disable checking for the availability of hardware virtualization before the vm is started diff --git a/machine/examples/aws.md b/machine/examples/aws.md index 1fb714c4ae..96af995a3d 100644 --- a/machine/examples/aws.md +++ b/machine/examples/aws.md @@ -18,7 +18,7 @@ from those Docker desktop applications. See Docker Cloud (Edge feature) on [Windows](/docker-for-windows/index.md#docker-cloud-edge-feature). > > Docker Machine still works as described here, but Docker Cloud -supercedes Machine for this purpose. +supersedes Machine for this purpose. {: .important} Follow along with this example to create a Dockerized [Amazon Web Services (AWS)](https://aws.amazon.com/) EC2 instance. diff --git a/machine/examples/index.md b/machine/examples/index.md index 8ba93f3ada..7f99adb4db 100644 --- a/machine/examples/index.md +++ b/machine/examples/index.md @@ -17,7 +17,7 @@ Docker desktop applications. See Docker Cloud (Edge feature) on [Windows](/docker-for-windows/index.md#docker-cloud-edge-feature). > > Docker Machine still works as described here, but Docker Cloud -supercedes Machine for this purpose. +supersedes Machine for this purpose. {: .important} - [Digital Ocean Example](ocean.md) diff --git a/machine/examples/ocean.md b/machine/examples/ocean.md index 36342cd1e0..bae3fa788a 100644 --- a/machine/examples/ocean.md +++ b/machine/examples/ocean.md @@ -17,7 +17,7 @@ those Docker desktop applications. See Docker Cloud (Edge feature) on [Windows](/docker-for-windows/index.md#docker-cloud-edge-feature). > > Docker Machine still works as described below, but Docker Cloud -supercedes Machine for this purpose. +supersedes Machine for this purpose. {: .important} Follow along with this example to create a Dockerized [Digital Ocean](https://digitalocean.com) Droplet (cloud host). diff --git a/machine/get-started-cloud.md b/machine/get-started-cloud.md index c6b4c79d6f..eb32e2c9b9 100644 --- a/machine/get-started-cloud.md +++ b/machine/get-started-cloud.md @@ -16,7 +16,7 @@ Docker desktop applications. See Docker Cloud (Edge feature) on [Mac](/docker-for-mac/index.md#docker-cloud-edge-feature) or [Windows](/docker-for-windows/index.md#docker-cloud-edge-feature). > -> Docker Machine still works as described here, but Docker Cloud supercedes Machine for this purpose. +> Docker Machine still works as described here, but Docker Cloud supersedes Machine for this purpose. {: .important} Docker Machine driver plugins are available for many cloud platforms, so you can @@ -115,11 +115,11 @@ You can register an already existing docker host by passing the daemon url. With ## Use Machine to provision Docker Swarm clusters -> Swarm mode supercedes Docker Machine provisioning of swarm clusters +> Swarm mode supersedes Docker Machine provisioning of swarm clusters > > In previous releases, Docker Machine was used to provision swarm clusters, but this is legacy. [Swarm mode](/engine/swarm/index.md), built -into Docker Engine, supercedes Machine provisioning of swarm clusters. The +into Docker Engine, supersedes Machine provisioning of swarm clusters. The topics below show you how to get started with the new swarm mode. {: .important} diff --git a/notary/reference/signer-config.md b/notary/reference/signer-config.md index 4d9afc0889..d27b4dd122 100644 --- a/notary/reference/signer-config.md +++ b/notary/reference/signer-config.md @@ -157,7 +157,7 @@ Example: yes if not memory The the Data Source Name used to access the DB. - (include parseTime=true as part of the the DSN) + (include parseTime=true as part of the DSN) default_alias diff --git a/notary/running_a_service.md b/notary/running_a_service.md index db8a377f06..d4ab19ee3d 100644 --- a/notary/running_a_service.md +++ b/notary/running_a_service.md @@ -205,7 +205,7 @@ and using them in a production deployment is highly insecure. Notary is a user/client-based system, and it searches for certificates in the user's home directory, at `~/.docker/trust`. To streamline using Notary from the command line, create an alias that maps the user's `trust` directory to -the the system's `ca-certificates` directory. +the system's `ca-certificates` directory. ```bash $ alias notary="notary -s https:// -d ~/.docker/trust --tlscacert /usr/local/share/ca-certificates/.crt" diff --git a/reference/dtr/2.5/cli/install.md b/reference/dtr/2.5/cli/install.md index fd83c45f11..ad31b76f8c 100644 --- a/reference/dtr/2.5/cli/install.md +++ b/reference/dtr/2.5/cli/install.md @@ -48,7 +48,7 @@ Note: Use --ucp-ca "$(cat ca.pem)" instead of --ucp-insecure-tls for a productio | `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO.The supported log levels are debug, info, warn, error, or fatal.. | | `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.By default, DTR internal components log information using the logger specified in the Docker daemon in the node where the DTR replica is deployed. Use this option to send DTR logs to an external syslog system. The supported values are tcp, udp, and internal. Internal is the default option, stopping DTR from sending logs to an external system. Use this flag with --log-host. | | `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format nfs:///.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format nfs:///. To use this flag, you need to install an NFS client library like nfs-common in the node where you're deploying DTR. You can test this by running showmount -e . When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty. | -| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route throught the proxy. Format acme.com[, acme.org]. | +| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route through the proxy. Format acme.com[, acme.org]. | | `--overlay-subnet` | $DTR_OVERLAY_SUBNET | The subnet used by the dtr-ol overlay network. Example: 10.0.0.0/24.For high-availalibity, DTR creates an overlay network between UCP nodes. This flag allows you to choose the subnet for that network. Make sure the subnet you choose is not used on any machine where DTR replicas are deployed. | | `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | | `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | diff --git a/reference/dtr/2.5/cli/reconfigure.md b/reference/dtr/2.5/cli/reconfigure.md index 198f690b98..e017a5a82f 100644 --- a/reference/dtr/2.5/cli/reconfigure.md +++ b/reference/dtr/2.5/cli/reconfigure.md @@ -41,7 +41,7 @@ time, configure your DTR for high-availability. | `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO.The supported log levels are debug, info, warn, error, or fatal.. | | `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.By default, DTR internal components log information using the logger specified in the Docker daemon in the node where the DTR replica is deployed. Use this option to send DTR logs to an external syslog system. The supported values are tcp, udp, and internal. Internal is the default option, stopping DTR from sending logs to an external system. Use this flag with --log-host. | | `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format nfs:///.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format nfs:///. To use this flag, you need to install an NFS client library like nfs-common in the node where you're deploying DTR. You can test this by running showmount -e . When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty. | -| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route throught the proxy. Format acme.com[, acme.org]. | +| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route through the proxy. Format acme.com[, acme.org]. | | `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | | `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | | `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space for rethinkdb in-memory cache use for the given replica in MB. diff --git a/reference/dtr/2.5/cli/restore.md b/reference/dtr/2.5/cli/restore.md index 4b7c11e87e..cdf8627ea1 100644 --- a/reference/dtr/2.5/cli/restore.md +++ b/reference/dtr/2.5/cli/restore.md @@ -55,7 +55,7 @@ DTR replicas for high availability. | `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO.The supported log levels are debug, info, warn, error, or fatal.. | | `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.By default, DTR internal components log information using the logger specified in the Docker daemon in the node where the DTR replica is deployed. Use this option to send DTR logs to an external syslog system. The supported values are tcp, udp, and internal. Internal is the default option, stopping DTR from sending logs to an external system. Use this flag with --log-host. | | `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format nfs:///.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format nfs:///. To use this flag, you need to install an NFS client library like nfs-common in the node where you're deploying DTR. You can test this by running showmount -e . When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty. | -| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route throught the proxy. Format acme.com[, acme.org]. | +| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route through the proxy. Format acme.com[, acme.org]. | | `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | | `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | | `--replica-id` | $DTR_INSTALL_REPLICA_ID | Assign a 12-character hexadecimal ID to the DTR replica. Random by default. | diff --git a/reference/ucp/3.0/api/swagger-ui.js b/reference/ucp/3.0/api/swagger-ui.js index 207714d300..c9abd09ff8 100644 --- a/reference/ucp/3.0/api/swagger-ui.js +++ b/reference/ucp/3.0/api/swagger-ui.js @@ -2121,7 +2121,7 @@ SuperagentHttpClient.prototype.execute = function (obj) { } else if (res && obj.on && obj.on.response) { var possibleObj; - // Already parsed by by superagent? + // Already parsed by superagent? if(res.body && Object.keys(res.body).length > 0) { possibleObj = res.body; } else { @@ -12442,7 +12442,7 @@ var iframe, elemdisplay = {}; /** - * Retrieve the actual display of a element + * Retrieve the actual display of an element * @param {String} name nodeName of the element * @param {Object} doc Document object */ @@ -13862,7 +13862,7 @@ jQuery.fx.speeds = { }; -// Based off of the plugin by Clint Helfers, with permission. +// Based on the plugin by Clint Helfers, with permission. // http://blindsignals.com/index.php/2009/07/jquery-delay/ jQuery.fn.delay = function( time, type ) { time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; @@ -26068,7 +26068,7 @@ var baseCreate = require('./baseCreate'), * @private * @param {*} value The value to wrap. * @param {boolean} [chainAll] Enable chaining for all wrapper methods. - * @param {Array} [actions=[]] Actions to peform to resolve the unwrapped value. + * @param {Array} [actions=[]] Actions to perform to resolve the unwrapped value. */ function LodashWrapper(value, chainAll, actions) { this.__wrapped__ = value; diff --git a/reference/ucp/3.0/api/swagger-ui.js.original b/reference/ucp/3.0/api/swagger-ui.js.original index 207714d300..c9abd09ff8 100644 --- a/reference/ucp/3.0/api/swagger-ui.js.original +++ b/reference/ucp/3.0/api/swagger-ui.js.original @@ -2121,7 +2121,7 @@ SuperagentHttpClient.prototype.execute = function (obj) { } else if (res && obj.on && obj.on.response) { var possibleObj; - // Already parsed by by superagent? + // Already parsed by superagent? if(res.body && Object.keys(res.body).length > 0) { possibleObj = res.body; } else { @@ -12442,7 +12442,7 @@ var iframe, elemdisplay = {}; /** - * Retrieve the actual display of a element + * Retrieve the actual display of an element * @param {String} name nodeName of the element * @param {Object} doc Document object */ @@ -13862,7 +13862,7 @@ jQuery.fx.speeds = { }; -// Based off of the plugin by Clint Helfers, with permission. +// Based on the plugin by Clint Helfers, with permission. // http://blindsignals.com/index.php/2009/07/jquery-delay/ jQuery.fn.delay = function( time, type ) { time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; @@ -26068,7 +26068,7 @@ var baseCreate = require('./baseCreate'), * @private * @param {*} value The value to wrap. * @param {boolean} [chainAll] Enable chaining for all wrapper methods. - * @param {Array} [actions=[]] Actions to peform to resolve the unwrapped value. + * @param {Array} [actions=[]] Actions to perform to resolve the unwrapped value. */ function LodashWrapper(value, chainAll, actions) { this.__wrapped__ = value; diff --git a/registry/storage-drivers/index.md b/registry/storage-drivers/index.md index e8f612982e..9025bced11 100644 --- a/registry/storage-drivers/index.md +++ b/registry/storage-drivers/index.md @@ -31,7 +31,7 @@ validation of the `storagedriver.StorageDriver` interface. ## Driver selection and configuration -The preferred method of selecting a storage driver is using the `StorageDriverFactory` interface in the `storagedriver/factory` package. These factories provide a common interface for constructing storage drivers with a parameters map. The factory model is based off of the [Register](http://golang.org/pkg/database/sql/#Register) and [Open](http://golang.org/pkg/database/sql/#Open) methods in the builtin [database/sql](http://golang.org/pkg/database/sql) package. +The preferred method of selecting a storage driver is using the `StorageDriverFactory` interface in the `storagedriver/factory` package. These factories provide a common interface for constructing storage drivers with a parameters map. The factory model is based on the [Register](http://golang.org/pkg/database/sql/#Register) and [Open](http://golang.org/pkg/database/sql/#Open) methods in the builtin [database/sql](http://golang.org/pkg/database/sql) package. Storage driver factories may be registered by name using the `factory.Register` method, and then later invoked by calling `factory.Create` diff --git a/release-notes/docker-ce.md b/release-notes/docker-ce.md index 493c80f0e6..e9d5dda7f2 100644 --- a/release-notes/docker-ce.md +++ b/release-notes/docker-ce.md @@ -204,7 +204,7 @@ Release notes for stable versions are listed first. You can - Update runc to fix hang during start and exec [moby/moby#36097](https://github.com/moby/moby/pull/36097) - Windows: Vendor of Microsoft/hcsshim @v.0.6.8 partial fix for import layer failing [moby/moby#35924](https://github.com/moby/moby/pull/35924) * Do not make graphdriver homes private mounts [moby/moby#36047](https://github.com/moby/moby/pull/36047) -* Use rslave propogation for mounts from daemon root [moby/moby#36055](https://github.com/moby/moby/pull/36055) +* Use rslave propagation for mounts from daemon root [moby/moby#36055](https://github.com/moby/moby/pull/36055) * Set daemon root to use shared mount propagation [moby/moby#36096](https://github.com/moby/moby/pull/36096) * Validate that mounted paths exist when container is started, not just during creation [moby/moby#35833](https://github.com/moby/moby/pull/35833) * Add `REMOVE` and `ORPHANED` to TaskState [moby/moby#36146](https://github.com/moby/moby/pull/36146) @@ -277,7 +277,7 @@ Release notes for stable versions are listed first. You can * `/dev` should not be readonly with `--readonly` flag [moby/moby#35344](https://github.com/moby/moby/pull/35344) + Add custom build-time Graphdrivers priority list [moby/moby#35522](https://github.com/moby/moby/pull/35522) * LCOW: CLI changes to add platform flag - pull, run, create and build [docker/cli#474](https://github.com/docker/cli/pull/474) -* Fix width/height on Windoes for `docker exec` [moby/moby#35631](https://github.com/moby/moby/pull/35631) +* Fix width/height on Windows for `docker exec` [moby/moby#35631](https://github.com/moby/moby/pull/35631) * Detect overlay2 support on pre-4.0 kernels [moby/moby#35527](https://github.com/moby/moby/pull/35527) * Devicemapper: remove container rootfs mountPath after umount [moby/moby#34573](https://github.com/moby/moby/pull/34573) * Disallow overlay/overlay2 on top of NFS [moby/moby#35483](https://github.com/moby/moby/pull/35483) @@ -545,7 +545,7 @@ Release notes for stable versions are listed first. You can + Add Support swarm-mode services with node-local networks such as macvlan, ipvlan, bridge, host [#32981](https://github.com/moby/moby/pull/32981) + Pass driver-options to network drivers on service creation [#32981](https://github.com/moby/moby/pull/33130) + Isolate Swarm Control-plane traffic from Application data traffic using --data-path-addr [#32717](https://github.com/moby/moby/pull/32717) -* Several improvments to Service Discovery [#docker/libnetwork/1796](https://github.com/docker/libnetwork/pull/1796) +* Several improvements to Service Discovery [#docker/libnetwork/1796](https://github.com/docker/libnetwork/pull/1796) ### Packaging diff --git a/release-notes/docker-compose.md b/release-notes/docker-compose.md index 707d3f2a88..7e370a426b 100644 --- a/release-notes/docker-compose.md +++ b/release-notes/docker-compose.md @@ -62,7 +62,7 @@ toc_max: 2 ### Bugfixes -- Fixed a bug where the ip_range attirbute in IPAM configs was prevented +- Fixed a bug where the ip_range attribute in IPAM configs was prevented from passing validation ## 1.21.1 (2018-04-27) @@ -275,7 +275,7 @@ toc_max: 2 preventing Compose from recovering volume data from previous containers for anonymous volumes -- Added limit for number of simulatenous parallel operations, which should +- Added limit for number of simultaneous parallel operations, which should prevent accidental resource exhaustion of the server. Default is 64 and can be configured using the `COMPOSE_PARALLEL_LIMIT` environment variable @@ -554,7 +554,7 @@ toc_max: 2 ### Bugfixes - Volumes specified through the `--volume` flag of `docker-compose run` now - complement volumes declared in the service's defintion instead of replacing + complement volumes declared in the service's definition instead of replacing them - Fixed a bug where using multiple Compose files would unset the scale value diff --git a/release-notes/docker-engine.md b/release-notes/docker-engine.md index 5bdf4ebc16..aee826f57a 100644 --- a/release-notes/docker-engine.md +++ b/release-notes/docker-engine.md @@ -842,7 +842,7 @@ installing docker, make sure to update them accordingly. + Add security options to `docker info` output [#21172](https://github.com/docker/docker/pull/21172) [#23520](https://github.com/docker/docker/pull/23520) + Add insecure registries to `docker info` output [#20410](https://github.com/docker/docker/pull/20410) + Extend Docker authorization with TLS user information [#21556](https://github.com/docker/docker/pull/21556) -+ devicemapper: expose Mininum Thin Pool Free Space through `docker info` [#21945](https://github.com/docker/docker/pull/21945) ++ devicemapper: expose Minimum Thin Pool Free Space through `docker info` [#21945](https://github.com/docker/docker/pull/21945) * API now returns a JSON object when an error occurs making it more consistent [#22880](https://github.com/docker/docker/pull/22880) - Prevent `docker run -i --restart` from hanging on exit [#22777](https://github.com/docker/docker/pull/22777) - Fix API/CLI discrepancy on hostname validation [#21641](https://github.com/docker/docker/pull/21641) diff --git a/storage/storagedriver/aufs-driver.md b/storage/storagedriver/aufs-driver.md index 87d7df726a..925029d141 100644 --- a/storage/storagedriver/aufs-driver.md +++ b/storage/storagedriver/aufs-driver.md @@ -72,7 +72,7 @@ storage driver is configured, Docker uses it by default. AUFS is a *union filesystem*, which means that it layers multiple directories on a single Linux host and presents them as a single directory. These directories are called _branches_ in AUFS terminology, and _layers_ in Docker terminology. -The unification process is referred to a a _union mount_. +The unification process is referred to a _union mount_. The diagram below shows a Docker container based on the `ubuntu:latest` image. diff --git a/storage/storagedriver/overlayfs-driver.md b/storage/storagedriver/overlayfs-driver.md index 95ae3d4b7d..98a7d16737 100644 --- a/storage/storagedriver/overlayfs-driver.md +++ b/storage/storagedriver/overlayfs-driver.md @@ -269,7 +269,7 @@ for `overlay2`. OverlayFS layers two directories on a single Linux host and presents them as a single directory. These directories are called _layers_ and the unification -process is referred to a a _union mount_. OverlayFS refers to the lower directory +process is referred to a _union mount_. OverlayFS refers to the lower directory as `lowerdir` and the upper directory a `upperdir`. The unified view is exposed through its own directory called `merged`. diff --git a/storage/storagedriver/zfs-driver.md b/storage/storagedriver/zfs-driver.md index 7f633d1a71..490e27f789 100644 --- a/storage/storagedriver/zfs-driver.md +++ b/storage/storagedriver/zfs-driver.md @@ -27,7 +27,7 @@ use unless you have substantial experience with ZFS on Linux. ## Prerequisites -- ZFS requires one or more dedicated block devices, preferrably solid-state +- ZFS requires one or more dedicated block devices, preferably solid-state drives (SSDs). - ZFS is only supported on Docker CE with Ubuntu 14.04 or higher, with the `zfs` package (16.04 and higher) or `zfs-native` and `ubuntu-zfs` packages (14.04) diff --git a/swarm/configure-tls.md b/swarm/configure-tls.md index f63a93f1cb..eb18596ade 100644 --- a/swarm/configure-tls.md +++ b/swarm/configure-tls.md @@ -262,8 +262,8 @@ In this step, you install the keys on the relevant servers in the infrastructure. Each server needs three files: - A copy of the Certificate Authority's public key (`ca.pem`) -- It's own private key -- It's own public key (cert) +- Its own private key +- Its own public key (cert) The procedure below shows you how to copy these files from the CA server to each server using `scp`. As part of the copy procedure, rename each file as diff --git a/swarm/swarm_at_scale/deploy-infra.md b/swarm/swarm_at_scale/deploy-infra.md index 80215010fe..e2bd33b890 100644 --- a/swarm/swarm_at_scale/deploy-infra.md +++ b/swarm/swarm_at_scale/deploy-infra.md @@ -242,7 +242,7 @@ in Step 4. -D run -c /etc/config.toml ``` - This command relies on the `config.toml` file being in the current directory. After running the command, confirm the image is runing: + This command relies on the `config.toml` file being in the current directory. After running the command, confirm the image is running: ```bash $ docker ps @@ -250,7 +250,7 @@ in Step 4. d846b801a978 ehazlett/interlock:1.0.1 "/bin/interlock -D ru" 2 minutes ago Up 2 minutes 0.0.0.0:32770->8080/tcp interlock ``` - If you don't see the image runing, use `docker ps -a` to list all images to make sure the system attempted to start the image. Then, get the logs to see why the container failed to start. + If you don't see the image running, use `docker ps -a` to list all images to make sure the system attempted to start the image. Then, get the logs to see why the container failed to start. ```bash $ docker logs interlock diff --git a/test.md b/test.md index 99d7ce5840..8b42804a23 100644 --- a/test.md +++ b/test.md @@ -126,7 +126,7 @@ https://github.com/docker/docker.github.io/tree/master/docker-cloud/images #### Using a custom target ID This topic has a custom target ID above its heading that can be used to link to -it, in addtion to, or instead of, the default concatenated heading style. The +it, in addition to, or instead of, the default concatenated heading style. The format of this ID is `{: id="custom-target-id"}`. You can use custom targets to link to headings or even paragraphs. You link to @@ -667,7 +667,7 @@ we use often. ### Raw, no highlighting -The raw markup is needed to keep Liquid from interperting the things with double +The raw markup is needed to keep Liquid from interpreting the things with double braces as templating language. {% raw %} diff --git a/tests/src/validator/frontmatter_test.go b/tests/src/validator/frontmatter_test.go index 4360c5446e..5f9ea93d7e 100644 --- a/tests/src/validator/frontmatter_test.go +++ b/tests/src/validator/frontmatter_test.go @@ -65,7 +65,7 @@ func TestFrontMatterKeywords(t *testing.T) { }) } -// testFrontMatterKeywords tests if if keywords are present and correctly +// testFrontMatterKeywords tests if keywords are present and correctly // formatted in given markdown file bytes func testFrontMatterKeywords(mdBytes []byte) error { fm, _, err := frontparser.ParseFrontmatterAndContent(mdBytes) From bb3da81f62e17031a2966ed0612f2bb1f69052e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8C=85=E6=A2=A6=E6=B1=9F?= Date: Tue, 25 Sep 2018 11:28:06 +0800 Subject: [PATCH 070/222] chore(*): fix typo --- storage/bind-mounts.md | 2 +- storage/storagedriver/aufs-driver.md | 11 ++++------- storage/storagedriver/index.md | 4 ++-- storage/storagedriver/overlayfs-driver.md | 2 +- storage/tmpfs.md | 2 +- 5 files changed, 9 insertions(+), 12 deletions(-) diff --git a/storage/bind-mounts.md b/storage/bind-mounts.md index ebd31e6993..fc9961853b 100644 --- a/storage/bind-mounts.md +++ b/storage/bind-mounts.md @@ -90,7 +90,7 @@ you, but generates an error. ## Start a container with a bind mount Consider a case where you have a directory `source` and that when you build the -source code, the artifacts are saved into another directory `source/target/`. +source code, the artifacts are saved into another directory `source/target/`. You want the artifacts to be available to the container at `/app/`, and you want the container to get access to a new build each time you build the source on your development host. Use the following command to bind-mount the `target/` diff --git a/storage/storagedriver/aufs-driver.md b/storage/storagedriver/aufs-driver.md index 87d7df726a..9c8ad6a2ac 100644 --- a/storage/storagedriver/aufs-driver.md +++ b/storage/storagedriver/aufs-driver.md @@ -32,7 +32,6 @@ potential performance advantages over the `aufs` storage driver. `ecryptfs`. This means that the filesystem which contains `/var/lib/docker/aufs` cannot be one of these filesystem types. - ## Configure Docker with the `aufs` storage driver If the AUFS driver is loaded into the kernel when you start Docker, and no other @@ -66,13 +65,12 @@ storage driver is configured, Docker uses it by default. `/etc/docker/daemon.json` or the output of `ps auxw | grep dockerd` to see if Docker has been started with the `--storage-driver` flag. - ## How the `aufs` storage driver works AUFS is a *union filesystem*, which means that it layers multiple directories on a single Linux host and presents them as a single directory. These directories are called _branches_ in AUFS terminology, and _layers_ in Docker terminology. -The unification process is referred to a a _union mount_. +The unification process is referred to a _union mount_. The diagram below shows a Docker container based on the `ubuntu:latest` image. @@ -228,7 +226,6 @@ The following generic performance best practices also apply to AUFS. ## Related information -* [Volumes](/storage/volumes.md) -* [Understand images, containers, and storage drivers](imagesandcontainers.md) -* [Select a storage driver](selectadriver.md) - +- [Volumes](/storage/volumes.md) +- [Understand images, containers, and storage drivers](imagesandcontainers.md) +- [Select a storage driver](selectadriver.md) diff --git a/storage/storagedriver/index.md b/storage/storagedriver/index.md index 28aa20d9cf..cdb08d1436 100644 --- a/storage/storagedriver/index.md +++ b/storage/storagedriver/index.md @@ -33,7 +33,7 @@ RUN make /app CMD python /app/app.py ``` -This Dockerfile contains four commands, each of which creates a layer. The +This Dockerfile contains four commands, each of which creates a layer. The `FROM` statement starts out by creating a layer from the `ubuntu:15.04` image. The `COPY` command adds some files from your Docker client's current directory. The `RUN` command builds your application using the `make` command. Finally, @@ -82,7 +82,7 @@ To view the approximate size of a running container, you can use the `docker ps command. Two different columns relate to size. - `size`: the amount of data (on disk) that is used for the writable layer of - each container + each container. - `virtual size`: the amount of data used for the read-only image data used by the container plus the container's writable layer `size`. diff --git a/storage/storagedriver/overlayfs-driver.md b/storage/storagedriver/overlayfs-driver.md index 95ae3d4b7d..98a7d16737 100644 --- a/storage/storagedriver/overlayfs-driver.md +++ b/storage/storagedriver/overlayfs-driver.md @@ -269,7 +269,7 @@ for `overlay2`. OverlayFS layers two directories on a single Linux host and presents them as a single directory. These directories are called _layers_ and the unification -process is referred to a a _union mount_. OverlayFS refers to the lower directory +process is referred to a _union mount_. OverlayFS refers to the lower directory as `lowerdir` and the upper directory a `upperdir`. The unified view is exposed through its own directory called `merged`. diff --git a/storage/tmpfs.md b/storage/tmpfs.md index f1818e776d..faf1326012 100644 --- a/storage/tmpfs.md +++ b/storage/tmpfs.md @@ -38,7 +38,7 @@ the `--mount` flag was used for swarm services. However, starting with Docker `--tmpfs` flag does not support any configurable options. - **`--tmpfs`**: Mounts a `tmpfs` mount without allowing you to specify any - configurable options, and can only be used with standalone containers. + configurable options, and can only be used with standalone containers. - **`--mount`**: Consists of multiple key-value pairs, separated by commas and each consisting of a `=` tuple. The `--mount` syntax is more verbose From bedfc702a8d0d76ed6cfda014cc710fdaccebbd4 Mon Sep 17 00:00:00 2001 From: Maria Bermudez Date: Tue, 25 Sep 2018 07:21:48 -0700 Subject: [PATCH 071/222] Update bind-mounts.md Add a comma --- storage/bind-mounts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/bind-mounts.md b/storage/bind-mounts.md index fc9961853b..db7c2708b0 100644 --- a/storage/bind-mounts.md +++ b/storage/bind-mounts.md @@ -90,7 +90,7 @@ you, but generates an error. ## Start a container with a bind mount Consider a case where you have a directory `source` and that when you build the -source code, the artifacts are saved into another directory `source/target/`. +source code, the artifacts are saved into another directory, `source/target/`. You want the artifacts to be available to the container at `/app/`, and you want the container to get access to a new build each time you build the source on your development host. Use the following command to bind-mount the `target/` From 12ece3c317930bafc7d555ead997f32cff2f3115 Mon Sep 17 00:00:00 2001 From: Maria Bermudez Date: Tue, 25 Sep 2018 07:22:19 -0700 Subject: [PATCH 072/222] Update aufs-driver.md Fix grammar --- storage/storagedriver/aufs-driver.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/storagedriver/aufs-driver.md b/storage/storagedriver/aufs-driver.md index 9c8ad6a2ac..abb0079b86 100644 --- a/storage/storagedriver/aufs-driver.md +++ b/storage/storagedriver/aufs-driver.md @@ -70,7 +70,7 @@ storage driver is configured, Docker uses it by default. AUFS is a *union filesystem*, which means that it layers multiple directories on a single Linux host and presents them as a single directory. These directories are called _branches_ in AUFS terminology, and _layers_ in Docker terminology. -The unification process is referred to a _union mount_. +The unification process is referred to as a _union mount_. The diagram below shows a Docker container based on the `ubuntu:latest` image. From 95fd47213571f734d00ab85da3ef5a4a6c8dc602 Mon Sep 17 00:00:00 2001 From: Maria Bermudez Date: Tue, 25 Sep 2018 07:40:43 -0700 Subject: [PATCH 073/222] Update overlayfs-driver.md Change "referred to a" to "referred to as a" --- storage/storagedriver/overlayfs-driver.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/storagedriver/overlayfs-driver.md b/storage/storagedriver/overlayfs-driver.md index 98a7d16737..0ca1928910 100644 --- a/storage/storagedriver/overlayfs-driver.md +++ b/storage/storagedriver/overlayfs-driver.md @@ -269,7 +269,7 @@ for `overlay2`. OverlayFS layers two directories on a single Linux host and presents them as a single directory. These directories are called _layers_ and the unification -process is referred to a _union mount_. OverlayFS refers to the lower directory +process is referred to as _union mount_. OverlayFS refers to the lower directory as `lowerdir` and the upper directory a `upperdir`. The unified view is exposed through its own directory called `merged`. From 4ede4f855892613472dfeb5f0908cc62d357c614 Mon Sep 17 00:00:00 2001 From: Maria Bermudez Date: Tue, 25 Sep 2018 07:52:16 -0700 Subject: [PATCH 074/222] Update overlayfs-driver.md Update "referred to a" to "referred to as a" --- storage/storagedriver/overlayfs-driver.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/storagedriver/overlayfs-driver.md b/storage/storagedriver/overlayfs-driver.md index 0ca1928910..3c8092dd18 100644 --- a/storage/storagedriver/overlayfs-driver.md +++ b/storage/storagedriver/overlayfs-driver.md @@ -269,7 +269,7 @@ for `overlay2`. OverlayFS layers two directories on a single Linux host and presents them as a single directory. These directories are called _layers_ and the unification -process is referred to as _union mount_. OverlayFS refers to the lower directory +process is referred to as a _union mount_. OverlayFS refers to the lower directory as `lowerdir` and the upper directory a `upperdir`. The unified view is exposed through its own directory called `merged`. From 6a267d1a67e3cbe1ff24b664e4819fbaf392b03a Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Tue, 25 Sep 2018 09:21:32 -0600 Subject: [PATCH 075/222] Revert "Fixes Critical Issue Stopping Downloads of Docker (#6910) (#7179)" --- docker-for-mac/install.md | 3 +-- docker-for-windows/install.md | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/docker-for-mac/install.md b/docker-for-mac/install.md index 7d0469f192..2861c2cfe4 100644 --- a/docker-for-mac/install.md +++ b/docker-for-mac/install.md @@ -6,9 +6,8 @@ title: Install Docker for Mac Docker for Mac is the [Community Edition (CE)](https://www.docker.com/community-edition) -of Docker for MacOS. To download Docker for Mac, head to Docker Store. Alternatively, don't head to the Docker Store. +of Docker for MacOS. To download Docker for Mac, head to Docker Store. -[Don't download from Docker Store](https://download.docker.com/mac/stable/Docker.dmg){: .button .outline-btn} [Download from Docker Store](https://store.docker.com/editions/community/docker-ce-desktop-mac){: .button .outline-btn} ## What to know before you install diff --git a/docker-for-windows/install.md b/docker-for-windows/install.md index 35c1ab62a3..a45dae6e84 100644 --- a/docker-for-windows/install.md +++ b/docker-for-windows/install.md @@ -7,9 +7,8 @@ title: Install Docker for Windows Docker for Windows is the [Community Edition (CE)](https://www.docker.com/community-edition) of Docker for Microsoft Windows. To download Docker for Windows, head to Docker -Store. Alternatively, don't head to the Docker Store. +Store. -[Don't download from Docker Store](https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe){: .button .outline-btn} [Download from Docker Store](https://store.docker.com/editions/community/docker-ce-desktop-windows){: .button .outline-btn} ## What to know before you install From a49613b83a23c38f0b44b441355809f60d3988f5 Mon Sep 17 00:00:00 2001 From: Maria Bermudez Date: Tue, 25 Sep 2018 08:40:53 -0700 Subject: [PATCH 076/222] Update install-script.md Update link to Docker Daemon Attack Surface --- _includes/install-script.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/install-script.md b/_includes/install-script.md index 7c3c531fbc..08e24fbf63 100644 --- a/_includes/install-script.md +++ b/_includes/install-script.md @@ -57,7 +57,7 @@ Remember to log out and back in for this to take effect! > > Adding a user to the "docker" group grants the ability to run containers > which can be used to obtain root privileges on the docker host. Refer to -> https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface +> [Docker Daemon Attack Surface](https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface) > for more information. {:.warning} From df2ee7ed73311562dff43ffc6b13cf74e195ddc1 Mon Sep 17 00:00:00 2001 From: Maria Bermudez Date: Tue, 25 Sep 2018 14:11:14 -0700 Subject: [PATCH 077/222] Update docker-ce.md - Add release notes for 18.06.0-ce and 18.06.1-ce --- release-notes/docker-ce.md | 200 +++++++++++++++++++++++++++++++++++++ 1 file changed, 200 insertions(+) diff --git a/release-notes/docker-ce.md b/release-notes/docker-ce.md index 493c80f0e6..48240d19e6 100644 --- a/release-notes/docker-ce.md +++ b/release-notes/docker-ce.md @@ -20,6 +20,206 @@ Release notes for stable versions are listed first. You can # Stable releases +## 18.06.1-ce (2018-08-21) + +### Builder + +- Fix no error if build args are missing during docker build. [docker/engine#25](https://github.com/docker/engine/pull/25) ++ Set BuildKit's ExportedProduct variable to show useful errors. [docker/engine#21](https://github.com/docker/engine/pull/21) + +### Client + ++ Various shell completion script updates: [docker/cli#1229](https://github.com/docker/cli/pull/1229), + [docker/cli#1268](https://github.com/docker/cli/pull/1268), and [docker/cli#1272](https://github.com/docker/cli/pull/1272) +- Fix `DOCKER_CONFIG` warning message and fallback search. [docker/cli#1241](https://github.com/docker/cli/pull/1241) +- Fix help message flags on `docker stack` commands and sub-commands. [docker/cli#1267](https://github.com/docker/cli/pull/1267) + +### Runtime + +* Disable CRI plugin listening on port 10010 by default. [docker/engine#29](https://github.com/docker/engine/pull/29) +* Update containerd to v1.1.2. [docker/engine#33](https://github.com/docker/engine/pull/33) +- Windows: Do not invoke HCS shutdown if terminate called. [docker/engine#31](https://github.com/docker/engine/pull/31) +* Windows: Select polling-based watcher for Windows log watcher. [docker/engine#34](https://github.com/docker/engine/pull/34) + +### Swarm Mode + +- Fix the condition used for skipping over running tasks. [docker/swarmkit#2677](https://github.com/docker/swarmkit/pull/2677) +- Fix task sorting. [docker/swarmkit#2712](https://github.com/docker/swarmkit/pull/2712) + +## 18.06.0-ce (2018-07-18) + +### Important notes about this release + +- Docker 18.06 CE will be the last release with a 4-month maintenance lifecycle. The planned Docker 18.09 CE release will be supported for 7 months with Docker 19.03 CE being the next release in line. More details about the release process can be found [here](https://docs.docker.com/install/). + +### Builder + +* Builder: fix layer leak on multi-stage wildcard copy. [moby/moby#37178](https://github.com/moby/moby/pull/37178) +* Fix parsing of invalid environment variable substitution . [moby/moby#37134](https://github.com/moby/moby/pull/37134) +* Builder: use the arch info from base image. [moby/moby#36816](https://github.com/moby/moby/pull/36816) [moby/moby#37197](https://github.com/moby/moby/pull/37197) ++ New experimental builder backend based on [BuildKit](https://github.com/moby/buildkit). To enable, run daemon in experimental mode and set `DOCKER_BUILDKIT=1` environment variable on the docker CLI. [moby/moby#37151](https://github.com/moby/moby/pull/37151) [docker/cli#1111](https://github.com/docker/cli/pull/1111) +- Fix handling uppercase targets names in multi-stage builds. [moby/moby#36960](https://github.com/moby/moby/pull/36960) + +### Client + +* Bump spf13/cobra to v0.0.3, pflag to v1.0.1. [moby/moby#37106](https://github.com/moby/moby/pull/37106) +* Add support for the new Stack API for Kubernetes v1beta2. [docker/cli#899](https://github.com/docker/cli/pull/899) +* K8s: more robust stack error detection on deploy. [docker/cli#948](https://github.com/docker/cli/pull/948) +* Support for rollback config in compose 3.7. [docker/cli#409](https://github.com/docker/cli/pull/409) +* Update Cobra and pflag, and use built-in --version feature. [docker/cli#1069](https://github.com/docker/cli/pull/1069) +* Fix `docker stack deploy --prune` with empty name removing all services. [docker/cli#1088](https://github.com/docker/cli/pull/1088) +* [Kubernetes] stack services filters. [docker/cli#1023](https://github.com/docker/cli/pull/1023) ++ Only show orchestrator flag in root, stack and version commands in help. [docker/cli#1106](https://github.com/docker/cli/pull/1106) ++ Add an `Extras` field on the compose config types. [docker/cli#1126](https://github.com/docker/cli/pull/1126) ++ Add options to the compose loader. [docker/cli#1128](https://github.com/docker/cli/pull/1128) +- Fix always listing nodes in docker stack ps command on Kubernetes. [docker/cli#1093](https://github.com/docker/cli/pull/1093) +- Fix output being shown twice on stack rm error message. [docker/cli#1093](https://github.com/docker/cli/pull/1093) +* Extend client API with custom HTTP requests. [moby/moby#37071](https://github.com/moby/moby/pull/37071) +* Changed error message for unreadable files to clarify possibility of a .Dockerignore entry. [docker/cli#1053](https://github.com/docker/cli/pull/1053) +* Restrict kubernetes.allNamespaces value to 'enabled' or 'disabled' in configuration file. [docker/cli#1087](https://github.com/docker/cli/pull/1087) +* Check errors when initializing the docker client in the help command. [docker/cli#1119](https://github.com/docker/cli/pull/1119) +* Better namespace experience with Kubernetes. Fix using namespace defined in ~/.kube/config for stack commands. Add a NAMESPACE column for docker stack ls command. Add a --all-namespaces flag for docker stack ls command. [docker/cli#991](https://github.com/docker/cli/pull/991) +* Export Push and Save. [docker/cli#1123](https://github.com/docker/cli/pull/1123) +* Export pull as a public function. [docker/cli#1026](https://github.com/docker/cli/pull/1026) +* Remove Kubernetes commands from experimental. [docker/cli#1068](https://github.com/docker/cli/pull/1068) +* Adding configs/secrets to service inspect pretty. [docker/cli#1006](https://github.com/docker/cli/pull/1006) +- Fix service filtering by name on Kubernetes. [docker/cli#1101](https://github.com/docker/cli/pull/1101) +- Fix component information alignment in `docker version`. [docker/cli#1065](https://github.com/docker/cli/pull/1065) +- Fix cpu/memory limits and reservations being reset on service update. [docker/cli#1079](https://github.com/docker/cli/pull/1079) +* Manifest list: request specific permissions. [docker/cli#1024](https://github.com/docker/cli/pull/1024) +* Setting --orchestrator=all also sets --all-namespaces unless specific --namespace are set. [docker/cli#1059](https://github.com/docker/cli/pull/1059) +- Fix panics when --compress and --stream are used together. [docker/cli#1105](https://github.com/docker/cli/pull/1105) +* Switch from x/net/context to context. [docker/cli#1038](https://github.com/docker/cli/pull/1038) ++ Add --init option to `docker service create`. [docker/cli#479](https://github.com/docker/cli/pull/479) ++ Fixed bug displaying garbage output for build command when --stream and --quiet flags combined. [docker/cli#1090](https://github.com/docker/cli/pull/1090) ++ Add `init` support in 3.7 schema. [docker/cli#1129](https://github.com/docker/cli/pull/1129) +- Fix docker trust signer removal. [docker/cli#1112](https://github.com/docker/cli/pull/1112) +- Fix error message from docker inspect. [docker/cli#1071](https://github.com/docker/cli/pull/1071) +* Allow `x-*` extension on 3rd level objects. [docker/cli#1097](https://github.com/docker/cli/pull/1097) +* An invalid orchestrator now generates an error instead of being silently ignored. [docker/cli#1055](https://github.com/docker/cli/pull/1055) +* Added ORCHESTRATOR column to docker stack ls command. [docker/cli#973](https://github.com/docker/cli/pull/973) +* Warn when using host-ip for published ports for services. [docker/cli#1017](https://github.com/docker/cli/pull/1017) ++ Added the option to enable experimental cli features through the `DOCKER_CLI_EXPERIMENTAL` environment variable. [docker/cli#1138](https://github.com/docker/cli/pull/1138) ++ Add exec_die to the list of known container events. [docker/cli#1028](https://github.com/docker/cli/pull/1028) +* [K8s] Do env-variable expansion on the uninterpreted Config files. [docker/cli#974](https://github.com/docker/cli/pull/974) ++ Print warnings on stderr for each unsupported features while parsing a compose file for deployment on Kubernetes. [docker/cli#903](https://github.com/docker/cli/pull/903) ++ Added description about pids count. [docker/cli#1045](https://github.com/docker/cli/pull/1045) +- Warn user of filter when pruning. [docker/cli#1043](https://github.com/docker/cli/pull/1043) +- Fix `--rollback-*` options overwriting `--update-*` options. [docker/cli#1052](https://github.com/docker/cli/pull/1052) +* Update Attach, Build, Commit, Cp, Create subcommand fish completions. [docker/cli#1005](https://github.com/docker/cli/pull/1005) ++ Add bash completion for `dockerd --default-address-pool`. [docker/cli#1173](https://github.com/docker/cli/pull/1173) ++ Add bash completion for `exec_die` event. [docker/cli#1173](https://github.com/docker/cli/pull/1173) +* Update docker-credential-helper so `pass` is not called on every docker command. [docker/cli#1184](https://github.com/docker/cli/pull/1184) +* Fix for rotating swarm external CA. [docker/cli#1199](https://github.com/docker/cli/pull/1199) +* Improve version output alignment. [docker/cli#1207](https://github.com/docker/cli/pull/1207) ++ Add bash completion for `service create|update --init`. [docker/cli#1210](https://github.com/docker/cli/pull/1210) + +### Deprecation + +* Document reserved namespaces deprecation. [docker/cli#1040](https://github.com/docker/cli/pull/1040) + +### Logging + +* Allow awslogs to use non-blocking mode. [moby/moby#36522](https://github.com/moby/moby/pull/36522) +* Improve logging of long log lines on fluentd log driver.. [moby/moby#36159](https://github.com/moby/moby/pull/36159) +* Re-order CHANGELOG.md to pass `make validate` test. [moby/moby#37047](https://github.com/moby/moby/pull/37047) +* Update Events, Exec, Export, History, Images, Import, Inspect, Load, and Login subcommand fish completions. [docker/cli#1061](https://github.com/docker/cli/pull/1061) +* Update documentation for RingLogger's ring buffer. [moby/moby#37084](https://github.com/moby/moby/pull/37084) ++ Add metrics for log failures/partials. [moby/moby#37034](https://github.com/moby/moby/pull/37034) +- Fix logging plugin crash unrecoverable. [moby/moby#37028](https://github.com/moby/moby/pull/37028) +- Fix logging test type. [moby/moby#37070](https://github.com/moby/moby/pull/37070) +- Fix race conditions in logs API. [moby/moby#37062](https://github.com/moby/moby/pull/37062) +- Fix some issues in logfile reader and rotation. [moby/moby#37063](https://github.com/moby/moby/pull/37063) + +### Networking + +* Allow user to specify default address pools for docker networks. [moby/moby#36396](https://github.com/moby/moby/pull/36396) [docker/cli#818](https://github.com/docker/cli/pull/818) +* Adding logs for ipam state [doccker/libnetwork#2417](https://github.com/docker/libnetwork/pull/2147) +* Fix race conditions in the overlay network driver [doccker/libnetwork#2143](https://github.com/docker/libnetwork/pull/2143) +* Add wait time into xtables lock warning [doccker/libnetwork#2142](https://github.com/docker/libnetwork/pull/2142) +* filter xtables lock warnings when firewalld is active [doccker/libnetwork#2135](https://github.com/docker/libnetwork/pull/2135) +* Switch from x/net/context to context [doccker/libnetwork#2140](https://github.com/docker/libnetwork/pull/2140) +* Adding a recovery mechanism for a split gossip cluster [doccker/libnetwork#2134](https://github.com/docker/libnetwork/pull/2134) +* Running docker inspect on network attachment tasks now returns a full task object. [moby/moby#35246](https://github.com/moby/moby/pull/35246) +* Some container/network cleanups. [moby/moby#37033](https://github.com/moby/moby/pull/37033) +- Fix network inspect for overlay network. [moby/moby#37045](https://github.com/moby/moby/pull/37045) +* Improve Scalability of the Linux load balancing. [docker/engine#16](https://github.com/docker/engine/pull/16) +* Change log level from error to warning. [docker/engine#19](https://github.com/docker/engine/pull/19) + +### Runtime + +* Aufs: log why aufs is not supported. [moby/moby#36995](https://github.com/moby/moby/pull/36995) +* Hide experimental checkpoint features on Windows. [docker/cli#1094](https://github.com/docker/cli/pull/1094) +* Lcow: Allow the client to customize capabilities and device cgroup rules for LCOW containers. [moby/moby#37294](https://github.com/moby/moby/pull/37294) +* Changed path given for executable output in windows to actual location of executable output. [moby/moby#37295](https://github.com/moby/moby/pull/37295) ++ Add windows recycle bin test and update hcsshim to v0.6.11. [moby/moby#36994](https://github.com/moby/moby/pull/36994) +* Allow to add any args when doing a make run. [moby/moby#37190](https://github.com/moby/moby/pull/37190) +* Optimize ContainerTop() aka docker top. [moby/moby#37131](https://github.com/moby/moby/pull/37131) +- Fix compilation on 32bit machines. [moby/moby#37292](https://github.com/moby/moby/pull/37292) +* Update API version to v1 38. [moby/moby#37141](https://github.com/moby/moby/pull/37141) +- Fix `docker service update --host-add` does not update existing host entry. [docker/cli#1054](https://github.com/docker/cli/pull/1054) +- Fix swagger file type for ExecIds. [moby/moby#36962](https://github.com/moby/moby/pull/36962) +- Fix swagger volume type generation. [moby/moby#37060](https://github.com/moby/moby/pull/37060) +- Fix wrong assertion in volume/service package. [moby/moby#37211](https://github.com/moby/moby/pull/37211) +- Fix daemon panic on restart when a plugin is running. [moby/moby#37234](https://github.com/moby/moby/pull/37234) +* Construct and add 'LABEL' command from 'label' option to last stage. [moby/moby#37011](https://github.com/moby/moby/pull/37011) +- Fix race condition between exec start and resize.. [moby/moby#37172](https://github.com/moby/moby/pull/37172) +* Alternative failure mitigation of `TestExecInteractiveStdinClose`. [moby/moby#37143](https://github.com/moby/moby/pull/37143) +* RawAccess allows a set of paths to be not set as masked or readonly. [moby/moby#36644](https://github.com/moby/moby/pull/36644) +* Be explicit about github.com prefix being a legacy feature. [moby/moby#37174](https://github.com/moby/moby/pull/37174) +* Bump Golang to 1.10.3. [docker/cli#1122](https://github.com/docker/cli/pull/1122) +* Close ReadClosers to prevent xz zombies. [moby/moby#34218](https://github.com/moby/moby/pull/34218) +* Daemon.ContainerStop(): fix for a negative timeout. [moby/moby#36874](https://github.com/moby/moby/pull/36874) +* Daemon.setMounts(): copy slice in place. [moby/moby#36991](https://github.com/moby/moby/pull/36991) +* Describe IP field of swagger Port definition. [moby/moby#36971](https://github.com/moby/moby/pull/36971) +* Extract volume interaction to a volumes service. [moby/moby#36688](https://github.com/moby/moby/pull/36688) +* Fixed markdown formatting in docker image v1, v1.1, and v1.2 spec. [moby/moby#37051](https://github.com/moby/moby/pull/37051) +* Improve GetTimestamp parsing. [moby/moby#35402](https://github.com/moby/moby/pull/35402) +* Jsonmessage: pass message to aux callback. [moby/moby#37064](https://github.com/moby/moby/pull/37064) +* Overlay2: remove unused cdMountFrom() helper function. [moby/moby#37041](https://github.com/moby/moby/pull/37041) +- Overlay: Fix overlay storage-driver silently ignoring unknown storage-driver options. [moby/moby#37040](https://github.com/moby/moby/pull/37040) +* Remove some unused contrib items. [moby/moby#36977](https://github.com/moby/moby/pull/36977) +* Restartmanager: do not apply restart policy on created containers. [moby/moby#36924](https://github.com/moby/moby/pull/36924) +* Set item-type for ExecIDs. [moby/moby#37121](https://github.com/moby/moby/pull/37121) +* Use go-systemd const instead of magic string in Linux version of dockerd. [moby/moby#37136](https://github.com/moby/moby/pull/37136) +* Use stdlib TLS dialer. [moby/moby#36687](https://github.com/moby/moby/pull/36687) +* Warn when an engine label using a reserved namespace (com.docker.\*, io.docker.\*, or org.dockerproject.\*) is configured, as per https://docs.docker.com/config/labels-custom-metadata/. [moby/moby#36921](https://github.com/moby/moby/pull/36921) +- Fix missing plugin name in message. [moby/moby#37052](https://github.com/moby/moby/pull/37052) +- Fix link anchors in CONTRIBUTING.md. [moby/moby#37276](https://github.com/moby/moby/pull/37276) +- Fix link to Docker Toolbox. [moby/moby#37240](https://github.com/moby/moby/pull/37240) +- Fix mis-used skip condition. [moby/moby#37179](https://github.com/moby/moby/pull/37179) +- Fix bind mounts not working in some cases. [moby/moby#37031](https://github.com/moby/moby/pull/37031) +- Fix fd leak on attach. [moby/moby#37184](https://github.com/moby/moby/pull/37184) +- Fix fluentd partial detection. [moby/moby#37029](https://github.com/moby/moby/pull/37029) +- Fix incorrect link in version-history.md. [moby/moby#37049](https://github.com/moby/moby/pull/37049) +* Allow vim to be case insensitive for D in dockerfile. [moby/moby#37235](https://github.com/moby/moby/pull/37235) ++ Add `t.Name()` to tests so that service names are unique. [moby/moby#37166](https://github.com/moby/moby/pull/37166) ++ Add additional message when backendfs is extfs without d_type support. [moby/moby#37022](https://github.com/moby/moby/pull/37022) ++ Add api version checking for tests from new feature. [moby/moby#37169](https://github.com/moby/moby/pull/37169) ++ Add image metrics for push and pull. [moby/moby#37233](https://github.com/moby/moby/pull/37233) ++ Add support for `init` on services. [moby/moby#37183](https://github.com/moby/moby/pull/37183) ++ Add verification of escapeKeys array length in pkg/term/proxy.go. [moby/moby#36918](https://github.com/moby/moby/pull/36918) +* When link id is empty for overlay2, do not remove this link.. [moby/moby#36161](https://github.com/moby/moby/pull/36161) +- Fix build on OpenBSD by defining Self(). [moby/moby#37301](https://github.com/moby/moby/pull/37301) +- Windows: Fix named pipe support for hyper-v isolated containers. [docker/engine#2](https://github.com/docker/engine/pull/2) [docker/cli#1165](https://github.com/docker/cli/pull/1165) +- Fix manifest lists to always use correct size. [docker/cli#1183](https://github.com/docker/cli/pull/1183) +* Register OCI media types. [docker/engine#4](https://github.com/docker/engine/pull/4) +* Update containerd to v1.1.1 [docker/engine#17](https://github.com/docker/engine/pull/17) +* LCOW: Prefer Windows over Linux in a manifest list. [docker/engine#3](https://github.com/docker/engine/pull/3) +* Add updated `MaskPaths` that are used in code paths directly using containerd to address [CVE-2018-10892](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2018-10892). [docker/engine#15](https://github.com/docker/engine/pull/15) +* Add `/proc/acpi` to masked paths to address [CVE-2018-10892](https://cve.mitre.org/cgi-bin/cvename.cgi?name=2018-10892). [docker/engine#14](https://github.com/docker/engine/pull/14) +- Fix bindmount autocreate race. [docker/engine#11](https://github.com/docker/engine/pull/11) + +### Swarm Mode + +* List stacks for both Swarm and Kubernetes with --orchestrator=all in docker stack ls. Allow several occurrences of --namespace for Kubernetes with docker stack ls. [docker/cli#1031](https://github.com/docker/cli/pull/1031) +* Bump SwarmKit to remove deprecated grpc metadata wrappers. [moby/moby#36905](https://github.com/moby/moby/pull/36905) +* Issue an error for --orchestrator=all when working on mismatched Swarm and Kubernetes hosts. [docker/cli#1035](https://github.com/docker/cli/pull/1035) +- Fix broken swarm commands with Kubernetes defined as orchestrator. "--orchestrator" flag is no longer global but local to stack commands and subcommands [docker/cli#1137](https://github.com/docker/cli/pull/1137) [docker/cli#1139](https://github.com/docker/cli/pull/1139) +* Bump swarmkit to include task reaper fixes and more metrics. [docker/engine#13](https://github.com/docker/engine/pull/13) +- Avoid a leak when a service with unassigned tasks is deleted. [docker/engine#27](https://github.com/docker/engine/pull/27) +- Fix racy batching on the dispatcher. [docker/engine#27](https://github.com/docker/engine/pull/27) + ## 18.03.1-ce (2018-04-26) ### Client From bcbafad67bc017577b2dd591c18021a30cec6de7 Mon Sep 17 00:00:00 2001 From: Maria Bermudez Date: Wed, 26 Sep 2018 12:58:50 -0700 Subject: [PATCH 078/222] Update client-config.md --- notary/reference/client-config.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/notary/reference/client-config.md b/notary/reference/client-config.md index 439d9a3f8c..7fc29fadd9 100644 --- a/notary/reference/client-config.md +++ b/notary/reference/client-config.md @@ -125,7 +125,7 @@ but the pinned certificates take highest priority for validation, followed by the pinned CA, followed by TOFUS (TOFU over HTTPS). The diagram below describes this validation flow: -![validation flow](https://cdn.rawgit.com/docker/notary/27469f01fe244bdf70f34219616657b336724bc3/docs/images/trust-pinning-flow.png") +![validation flow](https://cdn.rawgit.com/docker/notary/27469f01fe244bdf70f34219616657b336724bc3/docs/images/trust-pinning-flow.png) Only one trust pinning option is used to validate a GUN even if multiple sections are specified, and any validation failure results in a failed @@ -176,6 +176,7 @@ passphrase. |`NOTARY_TARGETS_PASSPHRASE` | The targets (an online) key passphrase | |`NOTARY_SNAPSHOT_PASSPHRASE` | The snapshot (an online) key passphrase | |`NOTARY_DELEGATION_PASSPHRASE` | The delegation (an online) key passphrase | +|`NOTARY_AUTH` | The notary server credentials: `:` encoded in base64 | If provided, the passphrase in `NOTARY_DELEGATION_PASSPHRASE` From afaa1a174d06b65f5b7b75bb19ee9d4ab0d10985 Mon Sep 17 00:00:00 2001 From: Bret Fisher Date: Thu, 27 Sep 2018 03:37:12 -0400 Subject: [PATCH 079/222] Fixing link to volumes Link to specific volumes page rather than storage summary page. --- storage/storagedriver/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/storagedriver/index.md b/storage/storagedriver/index.md index cdb08d1436..690f247f3e 100644 --- a/storage/storagedriver/index.md +++ b/storage/storagedriver/index.md @@ -18,7 +18,7 @@ Storage drivers allow you to create data in the writable layer of your container The files won't be persisted after the container stops, and both read and write speeds are low. -[Learn how to use volumes](../index.md) to persist data and improve performance. +[Learn how to use volumes](../volumes.md) to persist data and improve performance. ## Images and layers From 4b39f91fb0a6563bf8fa6929aa54a7f4600f559a Mon Sep 17 00:00:00 2001 From: Bret Fisher Date: Thu, 27 Sep 2018 04:11:47 -0400 Subject: [PATCH 080/222] remove aufs "default storage driver" statements In many cases, aufs is no longer the default storage driver, so just change the example to not mention the default. If you'd like it to actually state overlay2 is the default in most/some cases I can change that. --- storage/storagedriver/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/storage/storagedriver/index.md b/storage/storagedriver/index.md index cdb08d1436..bdd1ff584d 100644 --- a/storage/storagedriver/index.md +++ b/storage/storagedriver/index.md @@ -143,8 +143,8 @@ Status: Downloaded newer image for ubuntu:15.04 Each of these layers is stored in its own directory inside the Docker host's local storage area. To examine the layers on the filesystem, list the contents -of `/var/lib/docker//layers/`. This example uses `aufs`, which -is the default storage driver: +of `/var/lib/docker//layers/`. This example uses the `aufs` +storage driver: ```bash $ ls /var/lib/docker/aufs/layers @@ -292,8 +292,8 @@ layer. This means that the writable layer is as small as possible. When an existing file in a container is modified, the storage driver performs a copy-on-write operation. The specifics steps involved depend on the specific -storage driver. For the default `aufs` driver and the `overlay` and `overlay2` -drivers, the copy-on-write operation follows this rough sequence: +storage driver. For the `aufs`, `overlay` and `overlay2` drivers, the +copy-on-write operation follows this rough sequence: * Search through the image layers for the file to update. The process starts at the newest layer and works down to the base layer one layer at a time. From 95d49df03d325827fa586bfd884b22a915862552 Mon Sep 17 00:00:00 2001 From: Bret Fisher Date: Thu, 27 Sep 2018 04:11:53 -0400 Subject: [PATCH 081/222] Correct container write layer persistence statement Make it more clear that container storage file changes are persistent until the container is deleted, rather than the container stopped. This now matches statements later in the document. --- storage/storagedriver/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/storagedriver/index.md b/storage/storagedriver/index.md index cdb08d1436..d4e03c77ea 100644 --- a/storage/storagedriver/index.md +++ b/storage/storagedriver/index.md @@ -15,7 +15,7 @@ information to make informed choices about the best way to persist data from your applications and avoid performance problems along the way. Storage drivers allow you to create data in the writable layer of your container. -The files won't be persisted after the container stops, and both read and +The files won't be persisted after the container is deleted, and both read and write speeds are low. [Learn how to use volumes](../index.md) to persist data and improve performance. From 261bd2069795ed4d7355d57bc0e6f9897db9379f Mon Sep 17 00:00:00 2001 From: Bret Fisher Date: Thu, 27 Sep 2018 04:50:59 -0400 Subject: [PATCH 082/222] adding oxford comma --- storage/storagedriver/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/storagedriver/index.md b/storage/storagedriver/index.md index bdd1ff584d..41adda10c9 100644 --- a/storage/storagedriver/index.md +++ b/storage/storagedriver/index.md @@ -292,7 +292,7 @@ layer. This means that the writable layer is as small as possible. When an existing file in a container is modified, the storage driver performs a copy-on-write operation. The specifics steps involved depend on the specific -storage driver. For the `aufs`, `overlay` and `overlay2` drivers, the +storage driver. For the `aufs`, `overlay`, and `overlay2` drivers, the copy-on-write operation follows this rough sequence: * Search through the image layers for the file to update. The process starts From 6c3bae43173072c36f4c5b02eb8bdeb3f5a8bd78 Mon Sep 17 00:00:00 2001 From: Maria Bermudez Date: Thu, 27 Sep 2018 16:54:23 -0700 Subject: [PATCH 083/222] Update services.md Fixes [7435](https://github.com/docker/docker.github.io/issues/7435) --- engine/swarm/services.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/swarm/services.md b/engine/swarm/services.md index a045df39b0..23fcd7f2cb 100644 --- a/engine/swarm/services.md +++ b/engine/swarm/services.md @@ -621,7 +621,7 @@ labels to ensure that your service is deployed to the appropriate swarm nodes. Use placement constraints to control the nodes a service can be assigned to. In the following example, the service only runs on nodes with the -[label](engine/swarm/manage-nodes.md#add-or-remove-label-metadata) `region` set +[label](manage-nodes.md#add-or-remove-label-metadata) `region` set to `east`. If no appropriately-labelled nodes are available, tasks will wait in `Pending` until they become available. The `--constraint` flag uses an equality operator (`==` or `!=`). For replicated services, it is possible that all From 1f65014cb99dabcae194cd917fb0f6cb3c706106 Mon Sep 17 00:00:00 2001 From: "Justin I. Nevill" Date: Fri, 28 Sep 2018 13:19:13 -0400 Subject: [PATCH 084/222] Revert "Direct download link to Docker for Mac and Windows (#6910) (#7179)" --- docker-for-mac/install.md | 7 ++++++- docker-for-windows/install.md | 8 +++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/docker-for-mac/install.md b/docker-for-mac/install.md index a46d96a0ff..7d0469f192 100644 --- a/docker-for-mac/install.md +++ b/docker-for-mac/install.md @@ -4,7 +4,12 @@ keywords: mac, beta, alpha, install, download title: Install Docker for Mac --- -[Download Community Edition (CE)](https://download.docker.com/mac/stable/Docker.dmg) +Docker for Mac is the +[Community Edition (CE)](https://www.docker.com/community-edition) +of Docker for MacOS. To download Docker for Mac, head to Docker Store. Alternatively, don't head to the Docker Store. + +[Don't download from Docker Store](https://download.docker.com/mac/stable/Docker.dmg){: .button .outline-btn} +[Download from Docker Store](https://store.docker.com/editions/community/docker-ce-desktop-mac){: .button .outline-btn} ## What to know before you install diff --git a/docker-for-windows/install.md b/docker-for-windows/install.md index 29fbf37c8f..94ac3f7229 100644 --- a/docker-for-windows/install.md +++ b/docker-for-windows/install.md @@ -4,7 +4,13 @@ keywords: windows, beta, edge, alpha, install, download title: Install Docker for Windows --- -[Download Community Edition (CE)](https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe) +Docker for Windows is the +[Community Edition (CE)](https://www.docker.com/community-edition) +of Docker for Microsoft Windows. To download Docker for Windows, head to Docker +Store. Alternatively, don't head to the Docker Store. + +[Don't download from Docker Store](https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe){: .button .outline-btn} +[Download from Docker Store](https://store.docker.com/editions/community/docker-ce-desktop-windows){: .button .outline-btn} ## What to know before you install From d5b9b8bf0f66fe30bb64a10420a0812889a59754 Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Fri, 28 Sep 2018 12:42:43 -0700 Subject: [PATCH 085/222] Update release notes and reference for upcoming Compose 1.23.0 release Signed-off-by: Joffrey F --- compose/reference/config.md | 3 ++ release-notes/docker-compose.md | 59 +++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/compose/reference/config.md b/compose/reference/config.md index 5292b575f2..5944912d09 100644 --- a/compose/reference/config.md +++ b/compose/reference/config.md @@ -14,6 +14,9 @@ Options: anything. --services Print the service names, one per line. --volumes Print the volume names, one per line. + --hash="*" Print the service config hash, one per line. + Set "service1,service2" for a list of specified services + or use the wildcard symbol to display all services ``` Validate and view the Compose file. diff --git a/release-notes/docker-compose.md b/release-notes/docker-compose.md index 707d3f2a88..35daf979d4 100644 --- a/release-notes/docker-compose.md +++ b/release-notes/docker-compose.md @@ -5,6 +5,65 @@ keywords: release notes, compose toc_max: 2 --- +## 1.23.0 (2018-10-10) + +### Important note + +The default naming scheme for containers created by Compose in this version +has changed from `__` to +`___`, where `` is a randomly-generated +hexadecimal string. Please make sure to update scripts relying on the old +naming scheme accordingly before upgrading. + +### Features + +- Logs for containers restarting after a crash will now appear in the output + of the `up` and `logs` commands. + +- Added `--hash` option to the `docker-compose config` command, allowing users + to print a hash string for each service's configuration to facilitate rolling + updates. + +- Output for the `pull` command now reports status / progress even when pulling + multiple images in parallel. + +- For images with multiple names, Compose will now attempt to match the one + present in the service configuration in the output of the `images` command. + +### Bugfixes + +- Parallel `run` commands for the same service will no longer fail due to name + collisions. + +- Fixed an issue where paths longer than 260 characters on Windows clients would + cause `docker-compose build` to fail. + +- Fixed a bug where attempting to mount `/var/run/docker.sock` with + Docker Desktop for Windows would result in failure. + +- The `--project-directory` option is now used by Compose to determine where to + look for the `.env` file. + +- `docker-compose build` no longer fails when attempting to pull an image with + credentials provided by the gcloud credential helper. + +- Fixed the `--exit-code-from` option in `docker-compose up` to always report + the actual exit code even when the watched container isn't the cause of the + exit. + +- Fixed a bug that caused hash configuration with multiple networks to be + inconsistent, causing some services to be unnecessarily restarted. + +- Fixed a pipe handling issue when using the containerized version of Compose. + +- Fixed a bug causing `external: false` entries in the Compose file to be + printed as `external: true` in the output of `docker-compose config` + +### Miscellaneous + +- The `zsh` completion script has been updated with new options, and no + longer suggests container names where service names are expected. + ## 1.22.0 (2018-07-17) ### New features From f2a5d891a0c614ae56a4d3efb7dc9ab47d00a605 Mon Sep 17 00:00:00 2001 From: Jamin Wong Date: Fri, 28 Sep 2018 17:19:53 -0700 Subject: [PATCH 086/222] Update Docker Hub Github automated build instructions Github is deprecating Service Hooks on 10/1, and we're migrating to using web hooks --- docker-hub/github.md | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/docker-hub/github.md b/docker-hub/github.md index 7f9c3674fc..9dd2817393 100644 --- a/docker-hub/github.md +++ b/docker-hub/github.md @@ -11,8 +11,8 @@ skip to [Creating an Automated Build](github.md#creating-an-automated-build). > *Note:* > Automated Builds currently require *read* and *write* access since -> [Docker Hub](https://hub.docker.com) needs to set up a GitHub service -> hook. We have no choice here, this is how GitHub manages permissions. +> [Docker Hub](https://hub.docker.com) needs to set up a GitHub webhook. +> We have no choice here, this is how GitHub manages permissions. > We do guarantee nothing else is touched in your account. To set up an Automated Build of a repository on GitHub, you need to @@ -54,8 +54,7 @@ You can review and revoke Docker Hub's access by visiting the If you selected to link your GitHub account with only a "Limited Access" link, then after creating your automated build, you need to either manually trigger a Docker Hub build using the "Start a Build" button, or add the GitHub -webhook manually, as described in [GitHub Service -Hooks](github.md#github-service-hooks). This only works for repositories +webhook manually, as described in [GitHub Webhook](github.md#github-webhook). This only works for repositories under the user account, and adding an automated build to a public GitHub organization using a "Limited Access" link is not possible. @@ -178,9 +177,9 @@ build. -## GitHub service hooks +## GitHub webhook -A GitHub Service hook allows GitHub to notify the Docker Hub when something has +A GitHub webhook allows GitHub to notify the Docker Hub when something has been committed to a given git repository. When you create an Automated Build from a GitHub user that has full "Public and @@ -188,16 +187,24 @@ Private" linking, a Service Hook should get automatically added to your GitHub repository. If your GitHub account link to the Docker Hub is "Limited Access", then you -need to add the Service Hook manually. +need to add the webhook manually. -To add, confirm, or modify the service hook, log in to GitHub, then navigate to -the repository, click "Settings" (the gear), then select "Webhooks & Services". +To add, confirm, or modify the webhook, log in to GitHub, then navigate to +the repository, click "Settings" (the gear), then select "Webhooks". You must have Administrator privileges on the repository to view or modify -this setting. +this setting. Click on 'Add webhook', and use these settings: -The image below shows the "Docker" Service Hook. +--- +| Payload URL | https://registry.hub.docker.com/hooks/github | +| Content type | application/json | +| Which events would you like to trigger this webhook? | Just the push event | +| Active | selected | + +The image below shows the 'Webhooks/Add webhook' form with the above settings reflected: + +![github-webhook-add](images/github-webhook-add.png) + +If configured correctly, you'll see this in the 'Webhooks' view +![github-webhook](images/github-webhook.png) -![bitbucket-hooks](images/github-side-hook.png) -If you add the "Docker" service manually, make sure the "Active" checkbox is -selected and click the "Update service" button to save your changes. From fe3367a78c6794d516e339817d99faf3767e1bf3 Mon Sep 17 00:00:00 2001 From: Jie Min Wong Date: Fri, 28 Sep 2018 17:28:22 -0700 Subject: [PATCH 087/222] add images --- docker-hub/images/github-webhook-add.png | Bin 0 -> 260917 bytes docker-hub/images/github-webhook.png | Bin 0 -> 128297 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docker-hub/images/github-webhook-add.png create mode 100644 docker-hub/images/github-webhook.png diff --git a/docker-hub/images/github-webhook-add.png b/docker-hub/images/github-webhook-add.png new file mode 100644 index 0000000000000000000000000000000000000000..fbefd67f6f27e856f135c5519dd4fc40e639207d GIT binary patch literal 260917 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
    dqUV+986pJrs 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

    ?jv!ilDhO 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ⅆECnvYt;9<;Q+u&?*j~~wgHAkqLa?&Oy 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 z

    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 z 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�~A`rZo`<{xMNZzisqZKY3&`-UE4%2{ z)+ha-=E6n+9-SMN+T-K~1i~+!S>1EC*UBLk;qvl4sQTG$a+e<#tfUT`*?)lJkMTM= zei)t*&pi*XVLjLd1XoJ)uNXE=l2iM)$_ui#C*)W}OcC;6JOLm1RCATUNjbc-z%_XO zZ-3J4 zf0oT#FxeS1j>_=*-AKz$U4c<>9(VBMxz7BKVj8XiTkp@oQ<_ef2$tHpzxs*vd|F++ zX?Y$zLbv3@;Xz%OsMPn=6cj=o1>AD-0nTVTeVp5Ei`Jk`IFV3x&!86reVjIC0Ux} zY&fG}>n^mHgs{1TKW!Ii-POxIVOQ~BZw)LM;wrXmWTH9Qq9}Ass?cOwk4L?4NR0|+G8C&e*9q)7a)+3HR@dCv=K z4(M4^*3|DZo)?{8;D`!@x_$1`?CU!gy}Er{p73;Eq8EA1Sk1C|QrV`AIQGhyE{XYpD#3(C|M30K@Nw66K!@7 zE4pxYqtvbY`^U#;PBHth^o~IN-D5;IRMgj<2)kUCA$5535X@J@*f8mFiI{~i()-PZ zg|6R^%GFl#d_VZz55{8##c9$rJ*5Wg(+hDhg*pc-IV4Fc^u!mZwKh!V3f(c_=n_C zdh+(NjrPohj81-hAw-M_rsTxjuYmfV@HHn4Tb91{4s8&Sj#w=qc3ud(s+g$*PJdWF zCws0M01|Alc&HH!61)AelG1#^Y1c}*!!kFOP_Qp{chC!He)wecXBAwZ{`s5d#cEF7 zeLz&c&}jz2oH0pD3wzIr56sR)YCSa*lcb3W1xWa$@1sPQpVd>x#CQkzSl55$416b2 znO{*sNI_BfGiE;+#TX+F-7rj8%o&LtP!!1SnG{?s(g66-*iiU34Tt^POiCfX!<1!` zXzofnfi3Ef}$OJKt=lkc)Mu);t_qY;CDEK%Pq(U*4HBzeVj0alphu( zqvyrm8sheT+mYa3Jo)JE?r#5aT( zQW7OBANMC50oXdCu7e+vMoqZzbUycbXX(|4wH4nm3Vp#A$kw}uuqZ^0QJJXI)WnT7 z#Tz)dN%AX-kt;}!4Wo3%d#GXCW_(}+u6Pk3K7h9HQL=Ph0*?8oXd@8Udn%A6IxhF| z-JhCNJsVngG;I!G6K#A-tdDz#ssxt><|5k47C%$VML#ys4*-ftXEPvdoRMye+^g8TS^^7pd;uoe)s!iilTNJ zku;?yT}>tJ)~+wN0b^G@o~yx!-=$^U0uyyblfqn%7y7s6dPiv60|r(x;^JkHLy@)a z{1C@~o*P)K3(!lEm&_X5>U`_2n`My4wbU2!#O@tEJG3fUwBcY9DY;KYS}_G|bWb~c z90su;y>^Bd-pFcW&RB`kFHfQdfu?Qj%|R>_8A6|X%i94rg60_iuE;CZ zqW+mtc;g{O7)0}`b>=TP@j-XmuDP-g=l1r_A}_^!Mpt7TVPW!L^aej+>32re5j@2B zUEw=l(L9>2Vc(MQLn9M#?h`K&N3wE z`1z~EjZy#-Bf|4e0Cm#T2WqS%Z9PVKr4$dEv{YIJjv|8nFW9xOB+^aRq zyyY2Fy7nZ+hxN}pt?e3)F{(2K&Eu1yCre3`ZwdfV6$GtLVAGv_0hu1p#$NhQ{F;Z-|fE1ubqF3?Gz|$yNl*){# z7<#NXFu;Y9GAufxreLWN4x#vfJP%#OJnu+n-(3&DLBkLz?jo!V|L{9LCkec`f_6qa z=tZditMB6cv4gsW=%dG&a!OjD;Y;yGCYinz@Svnov!Mqn#i;_yTiSLa>yRT1lzqrF zL>+&cd}4>e1mbREqGO?pW6o0H@%B6(9M=F% zsae$z53gHpZayCH$wFzzCn^9=Lhj?3{H|_G?<|jCyT2uetHE>)m-5CU$#1^YZ)#OF zZWX9r#n1K*55olHlq$ow4g-a|;L|>#EzTs=q%#?6Ll!0xNR$Zg0=M2#JqOjxR4OHw zl(a}z0sT8+HaX=7UfoGJH+oi*%ymt-5r$94X$(MD^t>ZO9 z+C+gZs74%@JEXS(x5|mz#}I5$b+J+xqaGTT?ols(&L&C z0FBq)1r=Qi<5{jH3m&PQEbfAoXxLGk;L`_HZ&r{p9aXb`xgaq)3jq>M+Lh`dbdhP$qN$0_KLSW@>t>K3>soH_m4ctc8bAA?!p7iose5I zl;+4R(`h^A8<9$J%Y3L=LsT2*MZRk!EVr41hYMZ^yv`)BK+o#Ftn?iS0~Pi{O%#BYdjYG!cFW&%qGb9>p+rT zq@38UcTo0ebp;KjrtT`FGLUKB)y2?c50Xn!h=1b+nO^Um*U)1#~yd%FM zTN!jEA%F$wpY;#gc@p%Zxo@JkZ)K1*=)eRwCdPJWJUJtE!rR3tn ze(pC=PyiU#dH}srU$aRA$n$e^cgUrv=LiKjugP3j?lT9HtsXYtS~oURr`|N!`M9~2 zqIw=i+TB0k4Sq@yG$W=m;DIa~v0PjXPtJ8bMW&-V&s8(vvDvx8&mcevuv;8;&%1DR z&TK=r^L9ho`Bk{(V?(h&u-+H9>ZOr3?1+DZp^0Xk)Jn_pCZs5T<8d&wCRT2EBGu6S zf#BG`$%+*-Q%xDlQ+L8Ic`E5GD@oxXxrxHzw?t^6*%sG#M2bxHcx%e7(@ziz{4Wea z-vWbcDuqby@Ams!uT-4<_GIN!8j(+2GxEf&pc^ETrkw5GtK(Gqr8T2iAi*GGVb=l8 zrQJMqmY$wQy9Hfe)DS6SP7RRA%7BuMk2<{H=i^{U z3fiK*#kuEBFmIpT&{H+OAkxDauZQYyHu{oJcZr&5&>^yD@i+{^jGD$xA?K)gVG`Fg zRtFX@JNKr*v(X1Vq|xz1i8jC? zMStgJu!$6ACsG`h$4HXTRnyMbjy{Od^M*VUPlTJrQyLx)-D?1E83;RIMNDo8bLm|l zF>oIiHNe*TOH4{p_DXC?Q`6=j%qExT-ohh3^Jy2(<*p~1tnBtcj5&!&zN~2f5(Ijw zR!9XovsX420j3|j4oHUE4Ywd37J>BL`;0&7?v9(NfN4o#T{nab?TK2r!#^9CzzpZ} zyTH@}Cw{6-{Z|@nqU6xLnUS*^+g8G|w)&iF_iRj{8uGqyWtiCokNtfnDy)nk*F_7$ zh1~jp^ucF&0GV+leI{`B9iHOITkQt7F4ij>o!O0a)PU=&KHPM1R$YpL5O;fv!Sh7x zACFDyWo6(^hz*~z;~jP!;*=`XBL@3EbR@nIfS7S5+xjSY@G_5g&>pxd{?~1g+l8bNS$ybZdc=#zg6eS?s=!qe`JUDY7#urHFse zI>6$P#&o|Y=!7uRpu&EbeDvIbjLhbZZcBSn zwrmI2X6RtpUd^%(PSo}J^JkHK>r^~?&G2IL7o}puuu|NS{(DO}=2UF0%rXy5aevE7 z>V+gjP!&_$+zhWM(ob30Jug+X_s?a^dIk)C1?nG@JPPXhqT4?byfK{6e%9AiFf%n?Penm?6-D;B5j5xcx3^t!|=I31V zx(PEq+Eaj5XJ*j*B`5nj_Oz${M!eZ=-caxbcraYg6Mnk7qth1>>8pKbH!g&;SnL86 z!K*L3xrZN$2WV}5((pp^myO>l*>FJ6LV1E(+t~QgmHp9hmB}InLno5w$_)!|GW>|* zo4_2rTaVH5YkHQ&{>GyHgltFf{e^9wl@}r{iOd(Sj3329yrDQ6UqDu~Pr-LGvplH} zeDrW)@yhLni>7#^`>BA;;u#*SBe{!jZ>=@=sfcty&6=tgNZ$KrXh=l2t_X+@*1t#rvV;pU^GRxD4D!QgY~CTeXqFoN@kwV5D|+N!qMxUhKk!u;VP#eLXn11 zg=SuO3_jnJJf)uR$piM2$jU3A%7tDKkY8Udnvjz~J8XK;iX`b{h})Wa2M^CbTi+?@ zc|+QNeS&O%j<}GX{v}?{nVD1PxGRH__;bs-VQdULe+P`acKyX^u#uzQ}Q zeBE*mN*TWcrO5@Ayu9o4Y+WuI!blAWOjSOS!e-3ji>ZG9XXLK%g0psOxztPQIA5$;<`-feg6jJE}x4Z;fT%IQ#jbr7rSK15#uZV z&F69?;n;}0t*T=GvMzwTvwgW$B(Krw#lcO3BFF_zEkd|CEu5$w~|bcE93ta&p$x*YAiQ{j6S<;Jy2J@%Dtp&o7XxR$iKy zPbG3|icx6_ZILIXm!88mjNt(Hn}Fws$DtUt^pZe=L}9~i&EVmC--~jSDoh%nP?E;|LiX<)o8RM zS@rRj`r=i;>Eia#6F@`Gh44Ky~(b-py9d4GIl{YJF=NYANYA64< zzQJh$-r>^8rv~#S6qH|CHBAnbq-SDvOP?$Wa4=@8oTJ9n(C3L8T#B>XX=zNB-AGx^ z`exf?besZG>4bE+4dthexv~y|(KT7U>9xOw2v5m`K_s zE>a_vz=e#_amEndZiw3usTu|ZzR@^)whhQRLjL+X!Fmv~Y{;^Rf zz?Zy>qSQACI_FpXR71*Vb(?vy*;dcx$BHR`Fsgz=$R~RJ2rbdUhQN^J`SZImew9vZ z08=-JnC|{`aN*E=;(ecB;^h$&IwX{wjtVwHy(%a_9&;=5Juu|DF92VZKReldl@=~3 zJ4uY)52eLU2UGlE1GX9z+3;9ShA{feLl#rM{EMym{HgTg z{9R~%J(X@T75sNIdtDeNTXRKjGzFxK@-+<+HcK-FRX$$N{{C^CEIs7SjgpUPDsE2W zO>5I;n^JPfDbar3Pam2tKzN}F8HFzrizW)+HHq;}@?J)14vuLqh43=tjP_3uRIu@) zm}{Jitafdr3Lw!#a0e)h$QalVpMnRe>F5qXz96m*5>}=g*6Ok|SKWV2Y^8MQh5~J{ z^q9OyFSrm2dgHDqWHr_{3a_95KMRtFs!r29nYf#sLW_$yiFl6Ga2YB{3F}x=K1|ZO zd^8gw@5NvM1T-PwkBfw9L0f3bsE1puha4yJ2rx}F`@R4*T8!8v!L7w?3ivG2$MJ)(a&%~{x6a0Uil zi&bqZy(k2ZJ^1k63#5^DP>O!L@Ok!ts5qW;$WqO{_au?eenuzA>lk5z!9<@cr7fKRsjyR(6I3c zzfHB2;tCk@Nk!lo}~Jie%LcoD3c&e>3u-p8DQ zi~dEiMF^~xUt4;`d%eM!=%A*~El7dyl2Bm9*5BwXA!mu8imd-)`K@y${K+Yu2# z>8r}mx@*U$_c)K#>Mf6>|ANtILHPezCJ6}%oB7d#0f}0g>{Bp4&)q*(e~wErwMG`K zvX(I)0)3`sFg%}ck4DDFMMs|y3e5J%NI8&s<9yT1F&ejcp{??z6(s8X1<@;VZJ=|> z!$)7}X#?4L$uM$bVdCOg!XhbnY?vJqhnwDtYdsbnz!5-vMN>~GozL`Nn%7Bkw&Hg- z57{tW6TH=0kpsu{Vy7DJ+#_-doH88-G~!0{kFKcWCU$bJQ=z|Qjy7b9u%_Mn6k!1J z*Qol(Jjg11it@z|3J=+~t-RlN(0$)VxY;5OobUyt&D-`3u!A{L6ZV`i>8Z%27Jg;3 zBfr1DKN`%4&}(;s&6uXm>nMT|I@-Pgj~kY|ImN59p{NmZVGoiXhV5(7O31?U@ytc`O+EkWQ0ufXX_j0V!|ErBs#i z29Sp9yATUIRvEYrJu0cC!Jf>Fyb5Xl9S1^ zFb`9a3#QIaXfFN5at$3=)XmYpm70P97!ve`7PG6n7Q|xYoY&w9d4BQ{5$I@6HXeIrR1tCM`cW zR^9!Bhb4B9jlT5Y#O-2R-SZuWqCk`bpWS*k=%rlE>GTHsjFmu5q4B$7Yd#;DNXAesO@5;#Q_86)CAjcMz42=bhhDK**?O#6Z zl6^b~xquAv$l9=<;gWJj2pOL^m|uLK$s-HmguQ_5gt1w_{jB3E{5IC4TA^%UgNzX`{+0wA*(A&K@ZcBOfM+QK zT$D_t{s*BqITw^r=7au9_xr|A=Ie%x{I66!t?yo6kFJQbj=4$Lux$s2h>9Qa^R_1d zt;iW;l^C_dK+8jyesrnmXm#nU<3-S)S)PoKX6|3CH(ke;6Td**xq^|e)N6wT=lqw0EdGPoQ0xZ`BN7)oHliOu{aOFHP|kqta;sj zwpdHYA#12_9zOAb-OQLWmnM_^iV33EF0WbrfQ)GFnca#&7F1yAEC+?;5H2MR6mj(x zbi6@`NlNVx;20xRd{~$$)k~_^>F@Iy?64>6WVGW+)cMBKTT^3t*a)Kg*2vhMxZLsP z6FYHv!c0F>&YPt9nEl&PC6#%WL*l0K3MqHw(Lf$c_FgG7_B;_Uwun1rJ5K7Aikyc7 zGnL0V0PniyK?aK4bv`*CtB?+XcuVh#! z=7Yo=+#6}Pj~Y1q^xEJ>lI32Oc+D@XBqSs>k->xM*_m}P=Y-hWw}~|>OqoEDCl0XE zK$E~Vj>$|0#>Hb#884|zZL{%lMF$xWM>j1VjKd!Z$q?*$VY$JJALMa8ZYrn4Up#l);u zZb9VdQEjmY{_YwykB?%$kg}H*9sIkydzc?PCdVj*GcrTvFb0>#oSb!<$RZhl2eeMX z;;&CM-+#OwK5Q@ME$;d3$9_!)y@TBbCVI5o?@0gAtk9*KU>$3qjDv+0R1CJ{Kh`fV zr>V36$*D!6`^Md3v>iT#>>@>GF@OA}ps;B?Z>h&^*B2E2r}hFZZ#!|o4jH5z9aHOJ=XoW^CKTe~@i{mC9iY~*O$`{E)I>~_v4is`# zmt~A^DY8lQuVRcVr^gRhZXpCk{w0L`_4KgGgn(bbF>y-xgA7DNTnm3I${C%I@k^b!_> z-r4BsE@P^S*Ii6NabfNQU3JgzN#t=gKLleH?1+7X%pa-?W{nbHFnv08+e3JyBnA3> zR{=PstTIV&G#=)MUIX^wLH!LuSoHm04VIJ;@fYp{IlvPU6aO;H@_@0Fy>RM;=>q%8 z6-R{pg2iqbzQ=P5e1TuhV(LPIm84P-qx+*G(!5d+RPh;xI;Ihf1pB?j(&A%d(?Q&e zKpHKD=~+%LCXzvMij4iJ{IAsuXrcpT%Naf4W-?Os34%mLBj%Nb>%t$ZAWJbONHg-@ zi@)z{!NLqnu{-&Mnbh{gNRfl%rNSbmjkYRS2I^wgyDs41x0$Z)4{HyX%DKR%`cr3J z2aZnE%=yu;6mAmVD9sY!#OipxFr1iHLBGQCR#ZGtLxm+2# ztJ7^ZUhI~$(ABDw@ZW5weO0}m`aM(P>(Pq1t^)jdpF4M2ugTCYQkP!e6Ot0I-r|AX zf0;A>|2od0bJdvS%sJCpoDZjIOUDqgx}H7#G61#O-h1j;x~=l8cVwf#cibE8{Pe`C z)BH_HSK4%8wLsn^(f1PsO6J(S z6f0*3b>w44xG~>)dAWP$ijS+!_rFpuc;5+3&GM)sjK#QZ!CcdQn(@Y4+EbU_)R**D zLr2Ntk3hwykv^D`NoJe$ntS;ZEe4`IlmmYlAUI07jGuV*`>{xL_T_JYb%G#+p4&ZvSI9R zF^@eHaDsYx6C6g;<`zQuqorwyL3<3(i&*`dG?fumvx&aT*b626Ckl4kWh@2k86Ekm zo37$yu4SP)c+rq<@xCX%jNhr~>6$^W5$e=OuXNyWII1OYOpipaSiP@5nDgb#!!RVzB`k9B!nARsAt(nb8Bcgn%N`&&@R{RjF+Wi5rD=bwwAAU|$s6 z;aEgsbZwa-^28!I^T>aIIIu|&?gtwCD>D;Lg`#3&&=S80M_H40>E?PCN#ZxM!@tP0 zBQWarK53&Wd*7j8I3m;@97=a^xxm0LPhDQ$`vPpsBXsm4fg9Q7f}VHB!EPHqIDbp_ zQO$dGc-)v~@VX#qRbs;gLXM7((wE&_U&mx;NB8xKV14>@)s&O7Ib*zhuv1r87ZVc$ z5kCqYB@u{8rBHLZ-r_*s^?XcMq1A{mSFAWpSKaZmSgUEb%M?{nF{$r&Rbp*Zt%=9_ z`H|VQS7{-+SD9lrH#gn!kPhDQWL3N8kMG+g~5v-%I*`VhI3XP^v`0 ze)tkxh;pV4|jp>p=OC;?*bYyV2^Lj?fuo&)&-x5!vMJCLB4D<*+{z;u{JP z@1+AW0p~8BnVFejG*tJxpS!%5Cj*xoD*x{`hOB&rgIv2`eR-eCYu|ceC6D$qZq&h^ zGIflzhr@^Vh&;OH743mMy6L3@sDj3Y^+*CLy<82NNh1K(WP8af5TOMU~d?8_hq4&-?JBF=#a! zTAUp3OUy2%PMP&jw~`=g0b=cUv-Y0fk!Ko~Fb~&vJdlX*u{-Yp^g2x#R$Z?sUcQ3j zZwoVFKt{3kU@O3Es~)ro*TqfK?(qk(0+opC#QLGd#(BZ(pP23Yiz_4=V6g_X?&3|{ zSp;6IirZn4@q;e9UQl>5f5lIN%P0M#9>LQ7_htTPn}Y$~Y|bmRAQ;aT$-CeER^K{4 zekQoG8vIRAeT(v+GNI0S2s6U z*(J+>1?AG2676UlYQpyg>IvNjEFtUVUpu6p*uYc@93|&HO4d7I99*~8z8#TOo7u(Sp)D19eaQBL@~2!dSc5_9nZ?X)in5{)LH z?#4i7Tv$v8qYudx+S2*)Nsii;i04-jL1J}B%XN#*BWeoVV)yy(T3?jK-5>FYKm z=l;X@e$Fv_S8wfmzhuT@yUOkTxE1=R));Ex!oc}R)7V|uk zW=cy-xxocwv6=KD(a9xpOvaNg@9y@*pGv5nx*0{xt*j*Dmcvy?^wwRt#dU{^iJ89t z=>d{-B`Dc`nYY?R1l!ZEPIlRC9V4U+zeYx_2ne(_G)qA{R!b`@{gadOr85Q=g5O8b zk`4(ttqpRs5)y(sI`~^b|6#J<+y6pu(0@U=tqUn}ad6d$dP8=6htoeS75d%8@s#p? zDJ;eE@fzi>Zp#2b+I>m}38P(R|Y$wTzEwv+L(sHLEQ|m6B)F98gRgRzwpbnC`{B8T_*Y(73<_A z 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�lS97P%IElOa~pQsA&XNFx}lk;7r= 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%0ACMfwp|c;X?H~OGMJ+8mUm4W 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 z%0AFj{Q->5uOXfDe& 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ͮN!jF-x!aKr|Ix(8{gIGwPgvh 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

      K$l9i2aI7_jsx(4fKf!Rf>(!3qt044VdBB zmkZ zUFmdNd}2j`j}7Z|__{k%UK*nJ=ne|%F>^;*KAgdC4c2J$iGnzM#tX3>(eV{^$`jth zz30V#D=Sr^!+2#C63r>Lenyj+X!F^y{v1^Eq=*#cJu2L-Jj1fGVWUOD)YPi}wD8dz zXY5v#Qp)yqG-dbxySB?C-0MQk`j}XE)WyasgcZ(SK)^n8k9hhj%<{vFbYQ9fc~<-# zn?yg2u#ZoaP8tp`#Q_;~hZu>+nd7j|TNf6^Cpn$ZCEh`S z2N&!p#`Fr!(4();(kjUKo~WZQYz%Lo(k!*QM}x&)Z$lV-e+YMiI<$aZc`T#FCa@5u% z+2(W&=d-sM-(pwC>5(M9eeglx{0buAebMu%2?g8zx!ohf;EBuT#g=*m0gE6n{GioG z{?G}v*AP_0OZQHY3`#$`*y);hYyTqo@zl*Sgp&I?zg6|s&X~d7S4~)V5 z>VMkQ@S@dHE-M}NV;$Y%UgpwpICbxtC-Qcq?~Xjt6;IN$8A$74U~9g300XlSiOS)D zc?aRy=jARP@vv*c-K^*4CFZ-RO6?wKX6#vUFOCF(NF7h0>0)!{tjfyOIB$b2v4@}} zy032|_BAR_@MQ;w|72!O1|=EN{+F>-Cry|s&wlqF&sWO&{AkY5d)wT*xpo`gX3ilQ z(X+#k5Gy7i=fJrSFnar^4d*Wl^j``~|J=Un^)l2L;IgrdNcwRfe%49B>B_|}fGNL{ zGz1=c%+n6`tfsUHzW$uxJr`#LzQ~{O*}XMw@B;#|IKL5>RTt;uEEFvU5&<04Bw~6g- zjkg0-{C;NNHrd=j4VrwH)npg%0DHNL_C&=7+wWSt_RpdV?5E#-xA1YeRI~%#D3=X> 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

      c)^G#iRJr; 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

      O^NR3yFj`MixV&Z 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

      re}5cs8$7FN2Ae<1$V5ZL6jNIN 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 z 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
        >QWzTU7xZ3Ul-*Ib6>b% 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 See [Install Docker for Mac](install.md){: target="_blank" class="_"} for information on system requirements and stable & edge channels. +> See [Install Docker for Mac](install.md){: target="_blank" class="_"} for +> information on system requirements and stable & edge channels. ## Check versions -Ensure your versions of `docker`, `docker-compose`, and `docker-machine` are up-to-date and compatible with `Docker.app`. Your output may differ if you are running different versions. +Ensure your versions of `docker`, `docker-compose`, and `docker-machine` are +up-to-date and compatible with `Docker.app`. Your output may differ if you are +running different versions. ```shell $ docker --version @@ -38,7 +41,9 @@ docker-machine version {{ site.machine_version }}, build 9ba6da9 ## Explore the application 1. Open a command-line terminal and test that your installation works by - running the simple Docker image, [hello-world](https://hub.docker.com/_/hello-world/){: target="_blank" class="_"}: + running the simple Docker image, + [hello-world](https://hub.docker.com/_/hello-world/){: target="_blank" + class="_"}: ```shell $ docker run hello-world @@ -61,15 +66,18 @@ docker-machine version {{ site.machine_version }}, build 9ba6da9 $ docker run -d -p 80:80 --name webserver nginx ``` -3. In a web browser, go to `http://localhost/` to view the nginx homepage. Because we specified the default HTTP port, it isn't necessary to append `:80` at the end of the URL. +3. In a web browser, go to `http://localhost/` to view the nginx homepage. + Because we specified the default HTTP port, it isn't necessary to append + `:80` at the end of the URL. ![nginx home page](images/hello-world-nginx.png){:width="500px"} - > Early beta releases used `docker` as the hostname to build the - > URL. Now, ports are exposed on the private IP addresses of the VM and - > forwarded to `localhost` with no other host name set. + > Early beta releases used `docker` as the hostname to build the URL. Now, + > ports are exposed on the private IP addresses of the VM and forwarded to + > `localhost` with no other host name set. -4. View the details on the container while your web server is running (with `docker container ls` or `docker ps`): +4. View the details on the container while your web server is running (with + `docker container ls` or `docker ps`): ```none $ docker container ls @@ -77,7 +85,8 @@ docker-machine version {{ site.machine_version }}, build 9ba6da9 56f433965490 nginx "nginx -g 'daemon off" About a minute ago Up About a minute 0.0.0.0:80->80/tcp, 443/tcp webserver ``` -5. Stop and remove containers and images with the following commands. Use the "all" flag (`--all` or `-a`) to view stopped containers. +5. Stop and remove containers and images with the following commands. Use the + "all" flag (`--all` or `-a`) to view stopped containers. ```shell $ docker container ls @@ -90,7 +99,8 @@ docker-machine version {{ site.machine_version }}, build 9ba6da9 ## Preferences menu -Choose ![whale menu](images/whale-x.png){: .inline} -> **Preferences** from the menu bar and configure the runtime options described below. +Choose ![whale menu](images/whale-x.png){: .inline} → **Preferences** from the +menu bar and configure the runtime options described below. ![Docker context menu](images/menu/prefs.png){:width="250px"} @@ -100,18 +110,24 @@ Choose ![whale menu](images/whale-x.png){: .inline} -> **Preferences** from the General settings are: -- **Start Docker when you log in**: Uncheck this option if you don't want Docker to start when you open your session. +- **Start Docker when you log in**: Uncheck this option if you don't want Docker + to start when you open your session. - **Automatically check for updates** notifies you when an update is available. Click **OK** to accept and install updates (or cancel to keep the current version). If you disable this option, you can still find out about updates - manually by choosing ![whale menu](images/whale-x.png){: .inline} -> **Check for Updates**. + manually by choosing ![whale menu](images/whale-x.png){: .inline} → **Check + for Updates**. -- **Include VM in Time Machine backups** backs up the Docker for Mac virtual machine. (Disabled by default.) +- **Include VM in Time Machine backups** backs up the Docker for Mac virtual + machine. (Disabled by default.) -- **Securely store Docker logins in MacOS keychain** stores your Docker login credentials. (Enabled by default.) +- **Securely store Docker logins in MacOS keychain** stores your Docker login + credentials. (Enabled by default.) -- **Send usage statistics** — Send diagnostics, crash reports, and usage data to Docker. This information helps Docker improve the application and get more context for troubleshooting problems. (Enabled by default.) +- **Send usage statistics** — Send diagnostics, crash reports, and usage + data to Docker. This information helps Docker improve the application and get + more context for troubleshooting problems. (Enabled by default.) ### File sharing @@ -127,7 +143,8 @@ File share settings are: - **Add a Directory**: Click `+` and navigate to the directory you want to add. -- **Apply & Restart** makes the directory available to containers using Docker's bind mount (`-v`) feature. +- **Apply & Restart** makes the directory available to containers using Docker's + bind mount (`-v`) feature. There are some limitations on the directories that can be shared: @@ -136,30 +153,34 @@ File share settings are: For more information, see: -- [Namespaces](osxfs.md#namespaces){: target="_blank" class="_"} in the topic on [osxfs file system sharing](osxfs.md). -- [Volume mounting requires file sharing for any project directories outside of `/Users`](troubleshoot.md#volume-mounting-requires-file-sharing-for-any-project-directories-outside-of-users).) +- [Namespaces](osxfs.md#namespaces){: target="_blank" class="_"} in the topic on + [osxfs file system sharing](osxfs.md). +- [Volume mounting requires file sharing for any project directories outside of + `/Users`](troubleshoot.md#volume-mounting-requires-file-sharing-for-any-project-directories-outside-of-users).) ### Advanced On the Advanced tab, you can limit resources available to Docker. -![Advanced Preference settings-advanced](images/menu/prefs-advanced.png){:width="400px"} +![Advanced Preference +settings-advanced](images/menu/prefs-advanced.png){:width="400px"} Advanced settings are: -**CPUs**: By default, Docker for Mac is set to use half the number of processors available -on the host machine. To increase processing power, set this to a higher number; -to decrease, lower the number. +**CPUs**: By default, Docker for Mac is set to use half the number of processors +available on the host machine. To increase processing power, set this to a +higher number; to decrease, lower the number. -**Memory**: By default, Docker for Mac is set to use `2` GB runtime memory, allocated from -the total available memory on your Mac. To increase RAM, set this to a higher number; -to decrease it, lower the number. +**Memory**: By default, Docker for Mac is set to use `2` GB runtime memory, +allocated from the total available memory on your Mac. To increase RAM, set this +to a higher number; to decrease it, lower the number. **Swap**: Configure swap file size as needed. The default is 1 GB. ### Disk -Specify the **Disk image location** of the Linux volume, where containers and images are stored. +Specify the **Disk image location** of the Linux volume, where containers and +images are stored. You can also move the disk image location. If you attempt to move the disk image to a location that already has one, you get a prompt asking if you want to use @@ -178,8 +199,8 @@ pulling containers. ![macOS Proxy Settings](images/proxy-settings.png){:width="600px"} -When you start a container, your proxy settings propagate into -the containers. For example: +When you start a container, your proxy settings propagate into the containers. +For example: ``` $ docker run -it alpine env @@ -202,7 +223,8 @@ using [restart policies](/engine/reference/run/#restart-policies-restart). ### Daemon -You can configure options on the Docker daemon that determine how your containers run. +You can configure options on the Docker daemon that determine how your +containers run. Select **Basic** to configure the daemon with interactive settings, or select **Advanced** to edit the JSON directly. @@ -213,12 +235,18 @@ Select **Basic** to configure the daemon with interactive settings, or select #### Experimental features Both Docker for Mac Stable and Edge releases have experimental features enabled -on Docker Engine, as described [Docker Experimental Features README](https://github.com/docker/docker-ce/blob/master/components/cli/experimental/README.md){: target="_blank" class="_"}. If you uncheck **experimental mode**, Docker for Mac uses the current generally available -release of Docker Engine. +on Docker Engine, as described [Docker Experimental Features +README](https://github.com/docker/docker-ce/blob/master/components/cli/experimental/README.md){: +target="_blank" class="_"}. If you uncheck **experimental mode**, Docker for Mac +uses the current generally available release of Docker Engine. > Don't enable experimental features in production > -> Experimental features are not appropriate for production environments or workloads. They are meant to be sandbox experiments for new ideas. Some experimental features may become incorporated into upcoming stable releases, but others may be modified or pulled from subsequent Edge releases, and never released on Stable. +>Experimental features are not appropriate for production environments or +>workloads. They are meant to be sandbox experiments for new ideas. Some +>experimental features may become incorporated into upcoming stable releases, +>but others may be modified or pulled from subsequent Edge releases, and never +>released on Stable. You can see whether you are running experimental mode at the command line. If `Experimental` is `true`, then Docker is running in experimental mode, as shown @@ -231,30 +259,41 @@ true #### Insecure registries -You can set up a custom and insecure [registry](/registry/introduction.md){: target="_blank" class="_"} -to store your public or private images (instead of using [Docker Hub](https://hub.docker.com/){:target="_blank" class="_"} -or [Docker Trusted Registry](/datacenter/dtr/2.1/guides/index.md)). -Add URLs for your insecure registries and registry mirrors on which to host your images. +You can set up a custom and insecure [registry](/registry/introduction.md){: +target="_blank" class="_"} to store your public or private images (instead of +using [Docker Hub](https://hub.docker.com/){:target="_blank" class="_"} or +[Docker Trusted Registry](/datacenter/dtr/2.1/guides/index.md)). Add URLs for +your insecure registries and registry mirrors on which to host your images. See also: -- [How do I add custom CA certificates?](faqs.md#how-do-i-add-custom-ca-certificates){:target="_blank" class="_"} -- [How do I add client certificates](faqs.md#how-do-i-client-certificates){:target="_blank" class="_"} +- [How do I add custom CA + certificates?](faqs.md#how-do-i-add-custom-ca-certificates){:target="_blank" + class="_"} +- [How do I add client + certificates](faqs.md#how-do-i-client-certificates){:target="_blank" + class="_"} #### Daemon configuration file -Click the **Advanced** tab to configure the daemon from the JSON file. For a full -list of options, see the Docker Engine [dockerd commandline reference](/engine/reference/commandline/dockerd.md){:target="_blank" class="_"}. +Click the **Advanced** tab to configure the daemon from the JSON file. For a +full list of options, see the Docker Engine [dockerd commandline +reference](/engine/reference/commandline/dockerd.md){:target="_blank" +class="_"}. Click **Apply & Restart** to save your settings and reboot Docker. Or, to cancel -changes, click another preference tab, then choose to discard or not apply changes when asked. +changes, click another preference tab, then choose to discard or not apply +changes when asked. ![Docker Daemon](images/menu/prefs-daemon-adv.png){:width="400px"} ### Kubernetes -Docker for Mac 17.12 CE (and higher) includes a standalone Kubernetes server -that runs on your Mac, so that you can test deploying your Docker workloads on -Kubernetes. +In Docker for Mac [17.12 Edge +(mac45)](/docker-for-mac/edge-relese-notes/#docker-community-edition-17120-ce-mac45-2018-01-05) +and higher, and [18.06 Stable +(mac70)](/docker-for-mac/release-notes/#docker-community-edition-18060-ce-mac70-2018-07-25) +and higher, a standalone Kubernetes server is included that runs on your Mac, so +that you can test deploying your Docker workloads on Kubernetes. The Kubernetes client command, `kubectl`, is included and configured to connect to the local Kubernetes server. If you have `kubectl` already installed and @@ -270,10 +309,13 @@ If you installed `kubectl` with Homebrew, or by some other method, and experience conflicts, remove `/usr/local/bin/kubectl`. - To enable Kubernetes support and install a standalone instance of Kubernetes - running as a Docker container, select **Enable Kubernetes** and click the - **Apply** button. + running as a Docker container, select **Enable Kubernetes**, choose the + [default + orchestrator](/docker-for-mac/kubernetes/#override-the-default-orchestrator) + and click the **Apply** button. - ![Enable Kubernetes](images/menu/prefs-kubernetes.png){: .with-border width="400px"} + ![Enable Kubernetes](images/menu/prefs-kubernetes.png){: .with-border + width="400px"} An Internet connection is required. Images required to run the Kubernetes @@ -283,29 +325,32 @@ experience conflicts, remove `/usr/local/bin/kubectl`. When Kubernetes is enabled and running, an additional status bar item displays at the bottom right of the Docker for Mac Preferences dialog. - ![Installation complete](images/kubernetes/kubernetes-install-complete.png){:width="400px"} + ![Installation + complete](images/kubernetes/kubernetes-install-complete.png){:width="400px"} - The status of Kubernetes shows in the Docker menu and the context points to `docker-for-desktop`. + The status of Kubernetes shows in the Docker menu and the context points to + `docker-for-desktop`. - ![Docker Menu with Kubernetes](images/menu/kube-context.png){: .with-border width="400px"} + ![Docker Menu with Kubernetes](images/menu/kube-context.png){: .with-border + width="400px"} - By default, Kubernetes containers are hidden from commands like `docker service ls`, because managing them manually is not supported. To make them - visible, select **Show system containers (advanced)** and click **Apply and restart**. - Most users do not need this option. + visible, select **Show system containers (advanced)** and click **Apply and + restart**. Most users do not need this option. -- To disable Kubernetes support at any time, deselect **Enable Kubernetes**. - The Kubernetes containers are stopped and removed, and the +- To disable Kubernetes support at any time, deselect **Enable Kubernetes**. The + Kubernetes containers are stopped and removed, and the `/usr/local/bin/kubectl` command is removed. - For more about using the Kubernetes integration with - Docker for Mac, see [Deploy on Kubernetes](kubernetes.md){:target="_blank" class="_"}. + For more about using the Kubernetes integration with Docker for Mac, see + [Deploy on Kubernetes](kubernetes.md){:target="_blank" class="_"}. ### Reset -Select ![whale menu](images/whale-x.png){: .inline} -> -**Preferences** from the menu bar, then click **Reset** to reset factory -defaults, restart the Docker daemon, or uninstall. +Select ![whale menu](images/whale-x.png){: .inline} -> **Preferences** from the +menu bar, then click **Reset** to reset factory defaults, restart the Docker +daemon, or uninstall. ![Uninstall or reset Docker](images/menu/prefs-reset.png){:width="400px"} @@ -313,27 +358,28 @@ Reset settings are: * **Restart** - Select to restart the Docker daemon. -* **Remove all data** - This option removes/resets all Docker data _without_ -a reset to factory defaults (which would cause you to lose settings). +* **Remove all data** - This option removes/resets all Docker data _without_ a + reset to factory defaults (which would cause you to lose settings). * **Reset to factory defaults** - Choose this option to reset all options on Docker for Mac to its initial state, the same as when it was first installed. - * **Uninstall** - Choose this option to remove Docker for Mac from your system. + * **Uninstall** - Choose this option to remove Docker for Mac from your + system. > Uninstall Docker for Mac from the commandline > -> To uninstall Docker from Mac from a terminal, run: ` --uninstall`. -> If your instance is installed in the default location, this command provides a -> clean uninstall: +>To uninstall Docker from Mac from a terminal, run: ` +>--uninstall`. If your instance is installed in the default location, this +>command provides a clean uninstall: > -> ```shell -> $ /Applications/Docker.app/Contents/MacOS/Docker --uninstall -> Docker is running, exiting... -> Docker uninstalled successfully. You can move the Docker application to the trash. -> ``` -> You might want to use the command-line uninstall if, for example, you find that -> the app is non-functional, and you cannot uninstall it from the menu. +>```shell +>$ /Applications/Docker.app/Contents/MacOS/Docker --uninstall +>Docker is running, exiting... +>Docker uninstalled successfully. You can move the Docker application to the trash. +>``` +>You might want to use the command-line uninstall if, for example, you find that +>the app is non-functional, and you cannot uninstall it from the menu. ## Add TLS certificates @@ -343,15 +389,14 @@ registries) to your Docker daemon. ### Add custom CA certificates (server side) -All trusted CAs (root or intermediate) are supported. -Docker for Mac creates a certificate bundle of all user-trusted CAs based on the -Mac Keychain, and appends it to Moby trusted certificates. So if an enterprise -SSL certificate is trusted by the user on the host, it is trusted by Docker -for Mac. +All trusted CAs (root or intermediate) are supported. Docker for Mac creates a +certificate bundle of all user-trusted CAs based on the Mac Keychain, and +appends it to Moby trusted certificates. So if an enterprise SSL certificate is +trusted by the user on the host, it is trusted by Docker for Mac. -To manually add a custom, self-signed certificate, start by adding -the certificate to the macOS keychain, which is picked up by Docker for -Mac. Here is an example. +To manually add a custom, self-signed certificate, start by adding the +certificate to the macOS keychain, which is picked up by Docker for Mac. Here is +an example. ```bash $ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca.crt @@ -364,14 +409,17 @@ than for all users), run this command instead: $ security add-trusted-cert -d -r trustRoot -k ~/Library/Keychains/login.keychain ca.crt ``` -See also, [Directory structures for certificates](#directory-structures-for-certificates). +See also, [Directory structures for +certificates](#directory-structures-for-certificates). -> **Note:** You need to restart Docker for Mac after making any changes to -the keychain or to the `~/.docker/certs.d` directory in order for -the changes to take effect. +> **Note:** You need to restart Docker for Mac after making any changes to the +keychain or to the `~/.docker/certs.d` directory in order for the changes to +take effect. -For a complete explanation of how to do this, see the blog post -[Adding Self-signed Registry Certs to Docker & Docker for Mac](http://container-solutions.com/adding-self-signed-registry-certs-docker-mac/){:target="_blank" class="_"}. +For a complete explanation of how to do this, see the blog post [Adding +Self-signed Registry Certs to Docker & Docker for +Mac](http://container-solutions.com/adding-self-signed-registry-certs-docker-mac/){:target="_blank" +class="_"}. ### Add client certificates @@ -384,15 +432,14 @@ folder on your Mac to the `/etc/docker/certs.d` directory on Moby (the Docker for Mac `xhyve` virtual machine). > * You need to restart Docker for Mac after making any changes to the keychain -> or to the `~/.docker/certs.d` directory in order for the changes to take -> effect. +> or to the `~/.docker/certs.d` directory in order for the changes to take +> effect. > > * The registry cannot be listed as an _insecure registry_ (see [Docker -> Daemon](index.md#docker-daemon)). Docker for Mac ignores -> certificates listed under insecure registries, and does not send client -> certificates. Commands like `docker run` that attempt to pull from the -> registry produce error messages on the command line, as well as on the -> registry. +> Daemon](index.md#docker-daemon)). Docker for Mac ignores certificates listed +> under insecure registries, and does not send client certificates. Commands +> like `docker run` that attempt to pull from the registry produce error +> messages on the command line, as well as on the registry. ### Directory structures for certificates @@ -443,10 +490,11 @@ installed both in Bash and Zsh. ### Bash -Bash has [built-in support for completion](https://www.debian-administration.org/article/316/An_introduction_to_bash_completion_part_1){:target="_blank" class="_"} -To activate completion for Docker commands, these files need to be copied or -symlinked to your `bash_completion.d/` directory. For example, if you installed -bash via [Homebrew](http://brew.sh/): +Bash has [built-in support for +completion](https://www.debian-administration.org/article/316/An_introduction_to_bash_completion_part_1){:target="_blank" +class="_"} To activate completion for Docker commands, these files need to be +copied or symlinked to your `bash_completion.d/` directory. For example, if you +installed bash via [Homebrew](http://brew.sh/): ```bash etc=/Applications/Docker.app/Contents/Resources/etc @@ -457,10 +505,11 @@ ln -s $etc/docker-compose.bash-completion $(brew --prefix)/etc/bash_completion.d ### Zsh -In Zsh, the [completion system](http://zsh.sourceforge.net/Doc/Release/Completion-System.html){:target="_blank" class="_"} -takes care of things. To activate completion for Docker commands, these files -need to be copied or symlinked to your Zsh `site-functions/` directory. For -example, if you installed Zsh via [Homebrew](http://brew.sh/): +In Zsh, the [completion +system](http://zsh.sourceforge.net/Doc/Release/Completion-System.html){:target="_blank" +class="_"} takes care of things. To activate completion for Docker commands, +these files need to be copied or symlinked to your Zsh `site-functions/` +directory. For example, if you installed Zsh via [Homebrew](http://brew.sh/): ```bash etc=/Applications/Docker.app/Contents/Resources/etc @@ -486,39 +535,51 @@ options at the bottom of each docs page. ## Docker Store Choose **Docker Store** from the Docker for Mac menu to get to the Docker app -downloads site. [Docker store](https://store.docker.com/){:target="_blank" class="_"} is a component of the -next-generation Docker Hub, and the best place to find compliant, trusted -commercial and free software distributed as Docker Images. +downloads site. [Docker store](https://store.docker.com/){:target="_blank" +class="_"} is a component of the next-generation Docker Hub, and the best place +to find compliant, trusted commercial and free software distributed as Docker +Images. ![Docker Store](images/docker-store.png){:width="550px"} ## Docker Cloud -You can access your [Docker Cloud](/docker-cloud/index.md){:target="_blank" class="_"} account from within Docker for Mac. +You can access your [Docker Cloud](/docker-cloud/index.md){:target="_blank" +class="_"} account from within Docker for Mac. ![Docker Cloud](images/docker-cloud.png){:width="550px"} -From the Docker for Mac menu, sign in to Docker Cloud with your Docker ID, or create one. +From the Docker for Mac menu, sign in to Docker Cloud with your Docker ID, or +create one. ![Docker Cloud sign-in](images/menu/sign-in.png){: .with-border width="250px"} Then use the Docker for Mac menu to create, view, or navigate directly to your Cloud resources, including **organizations**, **repositories**, and **swarms**. -Check out these [Docker Cloud topics](/docker-cloud/index.md){:target="_blank" class="_"} to learn more: +Check out these [Docker Cloud topics](/docker-cloud/index.md){:target="_blank" +class="_"} to learn more: -* [Organizations and Teams in Docker Cloud](/docker-cloud/orgs/index.md){:target="_blank" class="_"} +* [Organizations and Teams in Docker + Cloud](/docker-cloud/orgs/index.md){:target="_blank" class="_"} * [Builds and Images](/docker-cloud/builds/index.md){:target="_blank" class="_"} -* [Swarms in Docker Cloud](/docker-cloud/cloud-swarm/index.md){:target="_blank" class="_"} +* [Swarms in Docker Cloud](/docker-cloud/cloud-swarm/index.md){:target="_blank" + class="_"} -Need a direct link to Cloud? [Take me to Docker Cloud](https://cloud.docker.com/){: target="_blank" class="_" }. +Need a direct link to Cloud? [Take me to Docker +Cloud](https://cloud.docker.com/){: target="_blank" class="_" }. ## Where to go next -* Try out the walkthrough at [Get Started](/get-started/){: target="_blank" class="_"}. +* Try out the walkthrough at [Get Started](/get-started/){: target="_blank" + class="_"}. -* Dig in deeper with [Docker Labs](https://github.com/docker/labs/) example walkthroughs and source code. +* Dig in deeper with [Docker Labs](https://github.com/docker/labs/) example + walkthroughs and source code. -* For a summary of Docker command line interface (CLI) commands, see [Docker CLI Reference Guide](/engine/api.md){: target="_blank" class="_"}. +* For a summary of Docker command line interface (CLI) commands, see [Docker CLI + Reference Guide](/engine/api.md){: target="_blank" class="_"}. -* Check out the blog post, [What’s New in Docker 17.06 Community Edition (CE)](https://blog.docker.com/2017/07/whats-new-docker-17-06-community-edition-ce/){: target="_blank" class="_"}. +* Check out the blog post, [What’s New in Docker 17.06 Community Edition + (CE)](https://blog.docker.com/2017/07/whats-new-docker-17-06-community-edition-ce/){: + target="_blank" class="_"}. diff --git a/docker-for-mac/opensource.md b/docker-for-mac/opensource.md index 8496ef95b2..c6308fb2c7 100644 --- a/docker-for-mac/opensource.md +++ b/docker-for-mac/opensource.md @@ -7,7 +7,7 @@ notoc: true Docker Desktop Editions are built using open source software. For details on the licensing, choose -![whale menu](images/whale-x.png){: .inline} --> +![whale menu](images/whale-x.png){: .inline} → **About Docker** from within the application, then click **Acknowledgements**. Docker Desktop Editions distribute some components that are licensed under the diff --git a/docker-for-mac/troubleshoot.md b/docker-for-mac/troubleshoot.md index 3696ae3e36..1b02df8f75 100644 --- a/docker-for-mac/troubleshoot.md +++ b/docker-for-mac/troubleshoot.md @@ -25,21 +25,24 @@ GitHub](https://github.com/docker/for-mac/issues), or the [Docker for Mac forum](https://forums.docker.com/c/docker-for-mac), we can help you troubleshoot the log data. -Choose ![whale menu](images/whale-x.png){: .inline} --> -**Diagnose & Feedback** from the menu bar. +Choose ![whale menu](images/whale-x.png){: .inline} → **Diagnose & Feedback** +from the menu bar. ![Diagnose & Feedback](images/diagnose-feedback.png){:width="600px"} -Select **Diagnose**. It runs diagnostics, shows results, and uploads the -results to Docker. A diagnostic ID is generated, which must be provided when -communicating with the Docker Team. Optionally, you can open an issue on GitHub -using the uploaded results and ID as a basis. +Once the diagnostics are available, you can upload them and obtain a +**Diagnostic ID**, which must be provided when communicating with the Docker +team. For more information on our policy regarding personal data you can read +[how is personal data handled in Docker +Desktop](https://docs.docker.com/docker-for-mac/faqs/#how-is-personal-data-handled-in-docker-desktop). -![Diagnostics & Feedback with ID](images/diagnose-feedback-id.png){:width="600px"} +![Diagnostics & Feedback with +ID](images/diagnose-feedback-id.png){:width="600px"} If you click **Report an issue**, this opens [Docker for Mac issues on GitHub](https://github.com/docker/for-mac/issues/) in your web browser in a -“create new issue” template, to be completed before submission. +"create new issue" template, to be completed before submission. Do not forget to +copy/paste your diagnostic ID. ![issue template](images/issues-template.png){:width="600px"} @@ -48,57 +51,34 @@ GitHub](https://github.com/docker/for-mac/issues/) in your web browser in a On occasions it is useful to run the diagnostics yourself, for instance if Docker for Mac cannot start. -First locate the `docker-diagnose` tool. If you installed Docker for Mac in the -Applications directory, then it is -`/Applications/Docker.app/Contents/Resources/bin/docker-diagnose`. Pass -`--help` to see the supported options: - -```sh -$ /Applications/Docker.app/Contents/Resources/bin/docker-diagnose --help -``` +First locate the `com.docker.diagnose` tool. If you installed Docker for Mac in +the Applications directory, then it is +`/Applications/Docker.app/Contents/MacOS/com.docker.diagnose`. Then to create *and upload* diagnostics, run: ```sh -$ /Applications/Docker.app/Contents/Resources/bin/docker-diagnose \ - --upload --last 1d -macOS: version 10.13.4 (build: 17E202) -Docker.app: version: 18.06.0-ce-rc1-mac67 (1fa4e2acfc1a52f79623add2390604515d32297e) -Local time: Fri May 25 14:50:51 CEST 2018 -UTC: Fri May 25 12:50:51 UTC 2018 -Timestamp: 20180525-145051 -Running diagnostic tests: -[OK] Files -[OK] console-ring does not exist -[OK] Kubernetes (disabled) -[OK] Docker CLI -[OK] environment -[OK] vmnetd -[OK] osxfs -[OK] VPNKit -[OK] driver.amd64-linux -[OK] Docker -[OK] VT-x -[OK] kern.hv_support -[OK] Hypervisor -[OK] Disk -Docker logs are being collected into /tmp/D1F48686-F045-4708-85E3-0635B729A596/20180525-145051.tar.gz -Your unique id is: D1F48686-F045-4708-85E3-0635B729A596 -Please quote this in all correspondence. +$ /Applications/Docker.app/Contents/MacOS/com.docker.diagnose gather -upload +``` +After the diagnostics have finished, you should have the following output, +containing your diagnostics ID: + +```sh +Diagnostics Bundle: /tmp/B8CF8400-47B3-4068-ADA4-3BBDCE3985D9/20180726143610.zip +Diagnostics ID: B8CF8400-47B3-4068-ADA4-3BBDCE3985D9/20180726143610 (uploaded) ``` -The diagnostics ID (here D1F48686-F045-4708-85E3-0635B729A596/20180525-145051) -is composed of your user ID (D1F48686-F045-4708-85E3-0635B729A596) and a -timestamp (20180525-145051). Be sure to provide us with the full diagnostics -ID, not just the user ID. +The diagnostics ID (here B8CF8400-47B3-4068-ADA4-3BBDCE3985D9/20180726143610) is +composed of your user ID (D1F48686-F045-4708-85E3-0635B729A596) and a timestamp +(20180525-145051). Be sure to provide us with the full diagnostics ID, not just +the user ID. Don't hesitate browsing the content of these diagnostics: ```sh -$ open /tmp/D1F48686-F045-4708-85E3-0635B729A596/20180525-145051.tar.gz +$ open /tmp/D1F48686-F045-4708-85E3-0635B729A596/20180525-145051.zip ``` - ## Check the logs @@ -147,10 +127,9 @@ ways, and create reports. ### Make sure certificates are set up correctly -Docker for Mac ignores certificates listed under insecure registries, and -does not send client certificates to them. Commands like `docker run` that -attempt to pull from the registry produces error messages on the command -line, like this: +Docker for Mac ignores certificates listed under insecure registries, and does +not send client certificates to them. Commands like `docker run` that attempt to +pull from the registry produces error messages on the command line, like this: ``` Error response from daemon: Get http://192.168.203.139:5858/v2/: malformed HTTP response "\x15\x03\x01\x00\x02\x02" @@ -163,9 +142,8 @@ As well as on the registry. For example: 2017/06/20 18:15:30 http: TLS handshake error from 192.168.203.139:52883: tls: first record does not look like a TLS handshake ``` -For more about using client and server side certificates, see [Adding -TLS certificates](index.md#adding-tls-certificates) in -the Getting Started topic. +For more about using client and server side certificates, see [Adding TLS +certificates](index.md#adding-tls-certificates) in the Getting Started topic. ### Docker for Mac does not start if Mac user account and home folder are renamed after installing the app @@ -181,8 +159,8 @@ cannot start, such as when using [Docker Compose](/compose/gettingstarted.md), you might need to enable [file sharing](index.md#file-sharing). Volume mounting requires shared drives for projects that live outside of the -`/Users` directory. Go to ![whale menu](images/whale-x.png){: .inline} --> -**Preferences** --> **File sharing** and share the drive that contains the +`/Users` directory. Go to ![whale menu](images/whale-x.png){: .inline} → +**Preferences** → **File sharing** and share the drive that contains the Dockerfile and volume. ### Incompatible CPU detected @@ -204,8 +182,8 @@ terminal window. sysctl kern.hv_support ``` -If your Mac supports the Hypervisor Framework, -the command prints `kern.hv_support: 1`. +If your Mac supports the Hypervisor Framework, the command prints +`kern.hv_support: 1`. If not, the command prints `kern.hv_support: 0`. @@ -220,9 +198,9 @@ know before you install](install.md#what-to-know-before-you-install). * If Docker for Mac fails to install or start properly: * Make sure you quit Docker for Mac before installing a new version of the - application (![whale menu](images/whale-x.png){: .inline} --> **Quit - Docker**). Otherwise, you get an "application in use" error when you try to - copy the new app from the `.dmg` to `/Applications`. + application (![whale menu](images/whale-x.png){: .inline} → **Quit + Docker**). Otherwise, you get an "application in use" error when you try to + copy the new app from the `.dmg` to `/Applications`. * Restart your Mac to stop / discard any vestige of the daemon running from the previously installed version. @@ -251,10 +229,10 @@ know before you install](install.md#what-to-know-before-you-install). * For the `hello-world-nginx` example, Docker for Mac must be running to get to the webserver on `http://localhost/`. Make sure that the Docker whale is showing in the menu bar, and that you run the Docker commands in a shell that - is connected to the Docker for Mac Engine (not Engine from - Toolbox). Otherwise, you might start the webserver container but get a "web - page not available" error when you go to `localhost`. For more on - distinguishing between the two environments, see [Docker for Mac vs. Docker + is connected to the Docker for Mac Engine (not Engine from Toolbox). + Otherwise, you might start the webserver container but get a "web page not + available" error when you go to `localhost`. For more on distinguishing + between the two environments, see [Docker for Mac vs. Docker Toolbox](docker-toolbox.md).

        @@ -297,9 +275,8 @@ know before you install](install.md#what-to-know-before-you-install). resources. Reboot and restart Docker to resolve these issues. * Docker does not auto-start on login even when it is enabled in ![whale - menu](images/whale-x.png){: .inline} --> **Preferences**. This - is related to a set of issues with Docker helper, registration, and - versioning. + menu](images/whale-x.png){: .inline} → **Preferences**. This is related to a + set of issues with Docker helper, registration, and versioning.

        @@ -309,9 +286,9 @@ know before you install](install.md#what-to-know-before-you-install). [Intel Hardware Accelerated Execution Manager (HAXM)](https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager/), the current workaround is not to run them at the same time. You can pause - `HyperKit` by quitting Docker for Mac temporarily while you work with - HAXM. This allows you to continue work with the other tools and prevent - `HyperKit` from interfering. + `HyperKit` by quitting Docker for Mac temporarily while you work with HAXM. + This allows you to continue work with the other tools and prevent `HyperKit` + from interfering. * If you are working with applications like [Apache @@ -351,7 +328,8 @@ know before you install](install.md#what-to-know-before-you-install). - Symfony - Magento - Zend Framework - - PHP applications that use [Composer](https://getcomposer.org) to install dependencies in a ```vendor``` folder

        + - PHP applications that use [Composer](https://getcomposer.org) to install + dependencies in a ```vendor``` folder

        As a work-around for this behavior, you can put vendor or third-party library directories in Docker volumes, perform temporary file system operations @@ -362,15 +340,17 @@ know before you install](install.md#what-to-know-before-you-install). and roadmap](osxfs.md#performance-issues-solutions-and-roadmap). * If your system does not have access to an NTP server, then after a hibernate - the time seen by Docker for Mac may be considerably out of sync with the - host. Furthermore, the time may slowly drift out of sync during use. To - manually reset the time after hibernation, run: + the time seen by Docker for Mac may be considerably out of sync with the host. + Furthermore, the time may slowly drift out of sync during use. To manually + reset the time after hibernation, run: ```bash docker run --rm --privileged alpine hwclock -s ``` - Or, to resolve both issues, you can add the local clock as a low-priority (high stratum) fallback NTP time source for the host. To do this, edit the host's `/etc/ntp-restrict.conf` to add: + Or, to resolve both issues, you can add the local clock as a low-priority + (high stratum) fallback NTP time source for the host. To do this, edit the + host's `/etc/ntp-restrict.conf` to add: ``` server 127.127.1.1 # LCL, local clock diff --git a/docker-for-windows/faqs.md b/docker-for-windows/faqs.md index 62ee13a0e3..a391b5712e 100644 --- a/docker-for-windows/faqs.md +++ b/docker-for-windows/faqs.md @@ -24,7 +24,7 @@ Two different download channels are available for Docker for Windows: * The **Stable channel** provides a general availability release-ready installer for a fully baked and tested, more reliable app. The Stable version of Docker for Windows comes with the latest released version of Docker Engine. The - release schedule is synched with Docker Engine releases and hotfixes. On the + release schedule is synced with Docker Engine releases and hotfixes. On the Stable channel, you can select whether to send usage statistics and other data. * The **Edge channel** provides an installer with new features we are working on, @@ -70,6 +70,7 @@ Do the following each time: ### Feedback + #### What kind of feedback are we looking for? Everything is fair game. We'd like your impressions on the download-install @@ -150,8 +151,8 @@ topic No, at this point, Docker for Windows does not enable you to control (`chmod`) the Unix-style permissions on [shared volumes](/docker-for-windows#shared-drives) for deployed containers, but rather sets permissions to a default value of -[0755](http://permissions-calculator.org/decode/0755/){: target="_blank" class="_"} -(`read`, `write`, `execute` permissions for `user`, `read` and `execute` for +[0777](http://permissions-calculator.org/decode/0777/){: target="_blank" class="_"} +(`read`, `write`, `execute` permissions for `user` and for `group`) which is not configurable. For workarounds and to learn more, see @@ -281,5 +282,4 @@ in [Troubleshooting](troubleshoot). You might decide that you do not need Toolbox now that you have Docker for Windows, and want to uninstall it. For details on how to perform a clean uninstall of Toolbox on Windows, see -[How to uninstall Toolbox](/toolbox/toolbox_install_windows#how-to-uninstall-toolbox) in the -Toolbox Windows topics. +[How to uninstall Toolbox](/toolbox/toolbox_install_windows#how-to-uninstall-toolbox) in the Toolbox Windows topics. diff --git a/docker-for-windows/images/diagnose-feedback.png b/docker-for-windows/images/diagnose-feedback.png new file mode 100644 index 0000000000000000000000000000000000000000..b3b7b0a03913ca4235eabf554647636b0d4c924e GIT binary patch literal 112335 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 literal 0 HcmV?d00001 diff --git a/docker-for-windows/images/diagnostic-id.png b/docker-for-windows/images/diagnostic-id.png index 5e0e1f19f42a96e3ae2273a9dfa204a71e2bc69e..c5ec51c099d276eccd4e641486c59a0bd154f765 100644 GIT binary patch literal 125846 zcmce;Wl&sQ&@hO*69$4aK=43-;0}X(a0u=a+}&kx3GPmUdvJGm*WfO}VIg_mufF}U zRl8NYdxyF+bMCp_r~9<`9YW=0#ZZy(ksu%-P$k4g6d@pBs~{ktBM_ioN0!|olOP}u zze<P*D!D)&%|qfqU|_%se!7}D-)?~E-xzC_sWd1fN}`a6ef?tq8d1G{sOyJ(y*ES; z%=7x@!|(=37yNpHm<PU{>-ziN-ZWuePwjxWsTH8N0ZYuc^Z#l1SJOe2Gp@X?p$>k# z#fo!OY13(g=14cTvA@)Ej022N7A5O>DEx7QKAB$}oMJ#j69%QcEjs`x_3p&!Dc>zN z70ud$LwNfk9dD)nTT5A3%c)Wem%5f#N(;U9P1#pmMlDlQ(=2wBH^i?8DZtFqlE?Gj z!OYCe`~u4UarpUD+*58LthDSy^ULiTLK4Mw+W7;d!84!kwCV~&&#2=Y5pTztaW_yb zD&uV5<PQ-yyUTgOvjt-iu?NrIyK8=7XzQuqt;_rlv$mKDG0Ay4O5$5oO^Lyu(m-=l zQyWT}ZY5=9s(h|$`#MaB=KFsDF~CQQwLf;RmdUQ)*@SsSD$e;&JMz1p7G{~>m(NR^ zjSHDg8k<=*vU)yPqYP=+mV}2iyXW5r6hvgk+P^$|-Ul8Wq>Sq!LkE|Iq`B|VW$wd3 zl=J<A-3?S$R@R;<ej1G#BSYd4@};6K3WNGVy$yU48)hDer;%9z$}Cck%%2k!7!k}` zJ2P-!NZ9la6R~<k-h18{&Lz74QF21Cm8Sj0Z9o_CRVwp#<ikJE5I(B>fJT?|9OvmH z$b%`i!DDOH5*^0*mziNyop6SGC(Dzynom+|i<B?PiZ|+tB0JVF`6o+FH@y)AR-KXs zM_D9nQ$;v8T(^-HBuT6WygdogoS8pCSE0_dZ=&*gv}<NnU5M|FYCAe!Qw%E~Eq2## z&|!k7XJ<X<KlRe_HRXODau?FpRdl`S;db98j+(c<e(I3Q;{)gQ6Pn2fP20C#87+I? zN}I7W-JSj>c^t;kv;QbJFQ6?v)cHlp{eAMKsl)p~#%5d|(u98~A=VkzkvP0|Z@gZr z8Qb1Ti)tB_>Cb&AL)8gY%gfI0;HKw18IB{SDiZq)n+bfuUIdaue!i0HQkBF^o(w=b z*6c(pUQ?v05=g1~QuSSY74h_8gycsw<xOR&z>vshnjvGp_i55E>$Oi<uvuJ&60y=q z`|si?B&vk-GyQ#6{v$k!(}fwRy*!A%cT7~<?~%YoR8ST?u#0e)nV0ot`V#BOUa8D* z@Oy89)Va~*wv6H#;jxr^D64VAyNuOYB`#ZNb>#lo@~>3-G<nXyK8_A+UB)gjQVmrN zY{)C2Un;-HR*_YfuJWQc!sd4C)boM=09%RhkNz45=FTAvegNmIZfLI-L@o8zzHi+0 zuc(phoa951a<>+rZQAjR`cn6(w_B_@1{*t4%o}Rl>s0&zMN=nG#hs66k>4@&e13VG zEoHqZMco=Nw7Yhn^~G<hu{e359Q;Tgn`&uS6aosELQ!WkGgL=s4rklM_-iyEAOw)9 z$eXhg3}P5G(QXjFVqnz*xqhz)99@1<(UPG5nXWF+{&{!j_R3zRPj4zfW<_kfmZV`j zJzCv+Bk}e@5N*FpjfP42pjzOdN&X@Q6HEVYPEHJDJQF<Hc9%aFUu`mmH0*VE^u<x< zk(7(950#3R|7W=|o{!pp$~}PK{o@t;uV25cn+qA|MT@yj^<jGwqiaKkVcTw1#Ow5r zp`sBj%nn2)=LHZYr>>gsZKXzg^HhQ&))u=oPDs9P@-FY2EX=zbC*-eB^a;M7nVHGM z4g<|MLCx{{=<D}|6e5Lyw3EsIZM2VJK->I%Wq&8=M^^zcv5p|QeScaZ16pTW@+A$M z+yfx4u!pj4W)TXwHE8yzfv;2cq%Yn0XRv7I%65EHD)Hm{SI|e(_K;`qo4vHI6I~GX zV`jOq{%xhWsLO{7$!_42^yLvJdMStp)z-TjAg_fO(N8J$si*YA5O@+>Gy8jn2fK@> z+b?|{z(!-p1FRQWKnX`p>bKk2+-Ax07@4ra!ZkPVmb7}0{W9K@hXvZ;O;?-yJ&`lv zoGOFai^`C7Q`kY51eI-0z{HTc-1!>%qc+3Sa<QdzgG;f|KRRPEGeVoODnnFnwr^() zY1Sozxli$uA6S{Z?1!(ah-Y)2?aSw-c;ZXl4y^cj^rscKDiJa-FUwbC=EHK`5PwV# zQQ*!o@^%B!f*-X?n<8(f@y(WXXpdO-l$l?K2g~anPUXrmvm5v$e~Kah`W^`q5v7wi zUT^M41JTWCR%L9qkz8%;k6g(<itnk%wFV%+atIF=0^)yIWaVcvFV%k^tJW<6S@${r z2abu}Xk!XCd9P70Lvbz6xmrMuDi2zc+Dsqok~n>*R7wO$`rdHnizZ+3%+UOmW?Po9 zQU1L}GgT(PJ8^_ceo1rvS<HqiFOPR);I4rw4*-*dfzcx7veSIQ3&xv&FO_#r+LoFg zpx5Pr{f|SWfS4!m5XNhl+K}34IEL2L<_7&uwWZ9bh0NKR8RB{8c1EwJmiRv4yV@hc z_JBA~naE5s0Oq{-L#*}o2I_b7vnE%b8^cUV-R?)L?2%iPwd|t%CrbKuv(`B6{{58z zF*+6Fy=H`I{AZbNXyEte=H!1;VuL-x{=6khm!XP7lXrF%RBVqUw)tw8g3u7xY7MO0 zlU5kRK|uv;mqcGUDUAP&;em_7Hf>CAgc|ndaLzc(c26=ME<Zd<MUjAYlGn3KZ@GD} zT?%ST_PDo;L*(g!{A1hlATf)I;da*zG0n#t=+obNY5gLr|Af?sQkCBVm$)`ZPYYHZ zIa9}YMqB9Ig8IWtrT22s&!3%s$_s~sa{)_<=mX6b_P9-l@Qh`rc(t~oLZaZG43o>T zKgL!CH*;iyu7PZQ-+a}&h2^w|#HfcJKVU?qaI$$+@O(7;mbWPperwt@)IEkwg71A; z_~NCD3*W+!{GZ7q9$)(1_TVv1R`sQZ#qRE9amchL$J71^$hB*BV<yIrDtQhbj-<=Y zLVW0=`W`$#7syyz&F%U@=o6=07hu+tu*PPqcSO_xlkePwv7(3aUERC>A6VcslZm~B z5I&DM`1?LAY0zzV28rI*o3``}X|MwBirYwB<UC>3R4o4O0|YZ>WxWO!AT%;PUb%UU z`P-;-Yo!j1?DMaiN9%j~M`nusrgp>@nW-szws%A>c<EA$Qzj}?MOalh=kQnNjA$}V zOLMkQ>1>~FPS@Cp!Dq0%F7Mh48=6B-199=AKrV9V{`zxuX9N-`80xhm4cr9bF226Z z=a)baawVxpFWsiD!M{Np1O!83Xb5hN5WS+77SE^rb>fK*7SvH0W%a-&W@INEYmUb9 z`;!H?Umj6N=nC6|CiWOk#UY&apB%i7Z@wQ-eEL$v3AN$(T(-BEVTmLAy{y7GNFVc@ zQk8dXD=;jgP||#;4=9w2!-&n#*!;bX?D;|PMPprjk2ivf{2wd&MY@MH7y!0kmnVAZ zuBI8dY$Hm($&Xl-6z7+uIvgP>Yg=-;))rrhPlYHmf<cy`ca;@&FGrd$S4P`+m%9;T zhsrmoRF>(AJ=<nML*KtM(eUW$Rr*${1&n-GSG_^N0VxzO7zTSPmc|XNq;CCayrB9s z_{j9iBp6XTHRH49z08Ceq!%yKon=n#=DMGQ2dMuRCh!3$zl>BF@{x1llacJg?_h^p zp)bFCOj?QBmTOuH2GZnqnsK$Ma*Tk&-)DnA7QHl^Xh;t7oDUJPR;A{}xl*sYT49z3 zOXz4$b$rVoA5=>}k`FIq=uAEMdd=({)8r>Jp|dPD`w+ta<wg|@HeWjEJ8j&l+AAeb zJNqZUnn%JrVwy)c!YsS8JCz|#+DGyKE$uZ*68Z!$C8|YGXH0)_d%pE2-JQ<8EUoQk z)6me36I8k>w>_heITibB9M*Xe)%Fj8;hpyiY-c~Sj#+#kz@rh37x}EB^VRlyDHVQo z)b$up_R<5den(yTy0KcV(h0v?wi&^3Zl!z!&;C9F1oMYl`-7ME{CJI>v)rou-VHRj z^HKL1Iax~he+x4Djj7sBmK3@-5MqHn7gUN3-WyHlzL9yzz=1E*HqRnY-0Q3CAE1-L zp{jW>72V;pkLmAEhyns;(38GA7?o2(cUeY6L|hFTko8-<8SJ+sybmbt=;*lgvE>WP zY-Vwxz4LzeX9g0^3$Wq#bnOR|d?#0NhmYz=)NJ*(F0);N$OoRAH?31_%#=oKEg$9= z|5xm)wmmmgu2E{x1cR0u*J9*6(v_mYWgk2`9e2;~(3;_tS;(0>(7Y*F-i=HYT<%&f zY}q~jsib7mBB*o>@!wh?LO@pp<^|FcXXud!i(NcSTr<qB`JTqvjvCt2^H;6H1)d~^ z*N1vC;z{;9!|&Z@Xwd2qU^70xWl67xk6NB<BBRb~ot37S*K;i8YbNquw(vEef2y}$ z^IDn3&_f4J5Z_3?^sN%9y-t_MSn)o@0D1d2v-fs*!o5PMLf{1r(7okzq<`b5{=fQL z^=8(5=-;sXzdtPg2G;Oz`lkLCGYS07>Z1Q<b^kvM8@@Tq|4#}0zrnn>9P<ASx;Y@I z|BON~$6Cp4p(4G@5@cmf`J_VHiQyYQ#Dss27pqrM5E}I1xQc+{I}QbpUsb0kqF*8I z2Bq1a^vTJnseg^$>K+@gk-0iFHQOI1(9g0&XSmcuGr9OQgHvhb$;-!`rErwfadhHE zC;gIt68LBD)Lrhhu~BPuAZjMHuR~c9Qz%5`Gwz13vyCGa{HniJfcc?hg(r0Yh7bZ- z9;nqDO{FhgD?rHVbd&ZPVI$Mox#ey@RMD(|WMzFDoFBUHYJKyRf2I8^1`q?le7z?C zV-k3F$xEZRtx6jaPgi}Zy#?Cci&KEO9XfD9lRu08CSvo)t)gQe+>py+@$f`PQEE>h zKTOL2WB~q$6hVPmtIT~V9eeF;0Eu`qD!zZrzDxEaS>Ql~HYr1_ULGh9^ml4N4T7(G zd2@y1-XTWBt?Yh%N#J}8zY^^VVS!-U`3$sKOgQ=f4tIINO^6+eMs+1S^r}D$C#Q|` z_p%Cc57ki9%4NUqjT~3ReUbY^IkB}zJYWEA5;zI`OOTL8p3<Ee)%PHFes>wx5knr? z^ShlJ3XTATMf*U_`_t^3(YCEDnae)~v5!%V$8vDS->@HV+>cl9q0KPOFke~n3Wh=G zQ5y9lzvI#&^6!mi>~hgw-r*mlA}WX)%2eiDv?I@n&%f%i(iLTEVZV^g*lUV|#ldgf z6hbh=^jp7pn(fTZxqM2&BwMBbUPNP8$(isF5tE=TS{oAmzj3}BhiEMy4-;srk|U-7 zSc{HB64rlRL(I`DAO7QRbXNT*^?pcn6$(-2&~_R>77+~*vX+{Vnvl0;21Ek{SvDiM zD+~<HtGyG90&a~Q)6&RV5-^vw{ni%<3+t#}Ihw;a%=#Z|U`{^~*?8Zbs;Y~Iw4?~< z%Rf18*`BZ$urZ$Sq(QUDX}p5>Oyc~X{W`PVs*J1l7B2Q)wJK*sJwg5`TGnNI(K9LD zST()p(SR~cY%{s=XQz-Vr>9AnJuvfDL_!H_=};7u$!R*?&HB`TJINm)QxY$hV})OH zaF2PZo%=-m5MJill^RT!R!)Ec;BTr~eGN$4n#ABhqD_XYOCRn7;6B5D%JOFi-`KaE zyKK#g6l<{*foy(F!wVx94*l9_sA55>IFpoKIaF(C1o&RV?sD-=+oYhoAs60#yIH<a z^t1n}A@a5zn-5|dFbLYuNo~iVoyD~iu({2jx=Q)h-JRC3I1<g<JNky4bM*QH1D8vt z^>>*r<zs$LnjO6`8^U5M<ve!BM4034j)Lc&K@B$<A5V$z9iomu^2_{@eZKa_Dm?c* z?)i>*+RzF+Q@ansl8*KIp%H@iY<>vrSoTM@nB=N2-iO*UXVT%IM}emIu!1uo+Kdb` zO0~eWRNTA{ObT2bPPc|yg{zEj7moc%Df_(d{d_M|Bkt{uiEaWYkvU3#_fHt}K<nfj zA5^ny5J<csM{hU1GC5&t+8)P8D7!ry7Li+h0f>?8nYh@sLo~A*p3LE90t=z|b!iQA zkIoiJ=D1`ts(xs`vaYSJmYkwUi}tY1hBSgExFxs0Y#zJlC2p2?3X%DL9-%`w@X~EG z69jDRXym=bdeUx0QX`G^t78+gPb@=0{6Q}VG3nvVYW)@SJb)SI70@NpXAXGlp29-@ zW1a$r|B4)<yN{Qg!H@lx6mE_f-ed$nTcl{-AMql~d7c?j*eJ%UI=1ae<TTy;f$lyx zN4S{=??s(kqzg@}^KgL#PSE;u@+f4FQ4S~s7A`}w*(CDSkohHu&(<P@RGPp(;~>BB zBjg<^16EB*J#_ctYW*DWWW4)o@*X@ovA^HQ?{e_FFn82x*bHs=ytj`Irg8oUj=ocB zB5tSHGEWCTe~VY=ar(iiOD*$7Q>{2-Y;fm5)QHPcdahhz$L_34MIXs3CYfuNpnoum zhQp#2JDiLpeypC?SNhhKmi@8{RK0U<J&h1DTzB{m>#lJIe<65~)6!uUsSuLA72O7w z19h5%i=)G|nXVPwi^bOAgr@t)Ob`Q9IwT`Mp+-z2^Wd=PLl?whWKVEyRJ`|Lvv{_~ z)70r4klo5}G)zZb935%Q?xO4WuQ>#%7oL%>*>&wEm=;(fI9|4vcV<Gj(WwK(e0^Hr zb%RRAzbYyc76b65lM(J!^}Y+z=q4&<U(JBknWs=-h@RW%euQG=vnITEKGlfg=WREO znY?w`xYWyRQbfExRbdiw$ap&Ti=<nb2%HTaBdYJf0ND34?IyszmnD9BAU+3l8sJWR z^HueE4}ZegT8Y7;uw>2j9@Z}xvR6j51|jle8a+o@22O}(lNGwZzjE69K#Be>NU<C9 zuG>*p21RwPW_0XNcXi?LbS<O<?r2to1#n?HQn&dqI_!B9u#a)FxqO$nDqvlqm>RDC zWp&{^l4K_Zz!Yel{;Pw~(hn)D_97uHt$s9!TkI~E8Ug&c{<iv$`Q<LSNHIAWodt$u zM?Gs9oVU)#>pO9s+oFtFK(-nVw!OCdMDJgkA;Ujg!oV(};Xn2>mpFc<Z8Ro&_Hu20 zfPLMBkAs~I3Xe5ewFqf428-DIP3!7Oc{n~@x;C9L>iFlLYK>XA?hyGu{+ii-s7c_f zQFVar)i69Avq${)-M0lrB4;$pf`2>)YY|rxTp<UIh^c4>7rL}1{kdWd0oI>n?Hr;X zqHqyuI4)(=AQ^+G9#$RVGPs+lTeqfPd&Czv<xeB3zVDeHDYs3W-;*B14=4l)FAXM* z0B^#6WJ^q&vpLvJ<M&#`Hrsk_b_`5&z`az3X2icLKu^lxm!D#RdHMK3jRWQu^CH1G z^Tlq|0yCVJbHxAV`?}7BoKG}LJUq$DSqEFpB}70B4x`X=r*E)nN*|={BuZqmdg{_U zjz~exvj_X<RuBGF@H`2e%NR4ixxx{K2FzIJ88(!Lq4z+aY+(LGBmnXSW>xL4=D&Hm zq+RxoplqCuGymH^=2@T%{#F#15&u5Zvs39sXiRz+OjE?l1>b`nlG#|2pvL*MP8LX* zZU({zmb}$HfmY?sI<+Epjj|eZOq*{U9-$A#XKJZWdOrEPKN!-4q@k%9pnxG5+1rD| z)?Yf=Bc5QrW=a4Z0YJNd{{79-J2_hj|LhXezeP-$1L6^+SP<9nSh}C}2z;(w8|J4l zAi03d8&L>QZR|C9yhe9U%*-O}D1AA<N8;v~(SQ-drDgXLS|ou}<0^NkxNZh?^d*Dk zky?M8mEXdh<w9VG>55YPHN7#md7!jKZSxugGJ@Nv{&A#lQGu@Rq{YZ>&QOa1Vmzd# z<df4_I`{jx<;u0Ls0`W~RcmdRPC)CbXlh%O6WI0;mV6DEVAyZA8@aZxLI+Qui3(5G zZ-MDmlH1pDQdbTd&Kzy|AWiL8{59}R(nLN?$gs+n7%^;SW@ZpOY9FyS-z_Zs4dG<s z5wetjJ6oTXw)g23b$I{iEzw^OLMKH`!3l}MURL<jfC~L3@&YTUB`)w(X%k=LV$0E+ zgz=kG*k>kkj9h=5N{)J|giNQ{sk^n?i5{_gHKJ+aKf#cUC^VP)dS3(ITUYSGC1%RX zH65p?U*|6@NV?`J4RbpqF!7i{>n~*h1fPnAT>h@IDyjy-%d8urUkePANW#S^1PcWR z;}b+C4;_+lWP$k;`;HKJAq_z!BE$r3#xCoz+L7c>WWe+3R)B%SqPNc_X$T8O^?sKP z4T(4{#wi$*OrX>PQ;|&Xy@-bPOY;&M4gwxVPGM2PL^JxQ?2xp-p^ivh44{KC;`aBf z7WkH`eAc-4BGMM4*E>q44bX9M_b0jwxMw8|XtnuTTL19Otecqt#UMn{O!18~D84Q_ zi~Px+KrFElP|1xFGG#YgD_(2#@C2K9S`Qe!(elsOR2ALgBP>?xBif|bUi_cPxPgE; z>ijYrn!*}Ej+&y!aiyI7r*hys>V-MrGAGPs%AXrvX?7$h7?$_~CGffvTK}_|2UOuq zU#fN^!8eIKP)IuN`#IpV-WKO*N0Y7A9GNQCyQNvUiFt2A?SG0q3}k>J>Dr)%$L2bF zzzWNs?7liWn!Fz!eRF7qL!^2rU8Z4{W|*xW{;_`5^$}br8@@luElwY=EHIZ(0<@#X z=8*JZ6ss!CKnSn+7UGN;CcWP`^5feCOXkPe89A+5939m(6&CKcjwA$}c6n6pVcoF* z!)^KMM~_}K5laz>xG2O=lSxvwHLRV5VTHPxy4fd&UlBa%>#41?J%2q#rb<H^V~c|3 zBMbAiq*Ot0qpKerP_28mIQK%U3o}#(pH&Br^_#yW6sUm(J|^BiQjo9{Z+Y0CCLFFh z?d~ntx5Xyi=%L>z|4uva@l5_}?n5kJX%~Yzd-N6D^I4KZid(hd`L0(6s>;-aVSzde zB_0Tm5qZYtk@Q1!t5iK|w+3{SvGGXxBZ^J(*B|euR<NVowu<`#$fjY4{|s_=)s_lp zYD>^dLl&SvlxoB@9CMHSHCPB{F-cZLfsIbOcw8_^Pj>mZNj*$E^-e+%F;EOpp_HN9 zz&bX#+hEOW1$Ov#pLIsW%CJTTVKkMk9`Wot=a}b4s~0D%SLHoz+^FYYKdLGR+1Q53 z1z*@62QM|nq<A7bYuM5uw$X2eR$r}&k^dLChahvL6_2!bjM?9cj#!lib081|=@i}R zBI@VAGsU!Fomck|>BaSLKTfUi3=t1bR%h_jhasQ88nb$!qWg&s-48vI7#WBBFeS96 zV=3EX3RG(m(2lJp2xh0xyu#Ae|KYz%`(fINq--$!FPVl&W-+8Y;kO5nBzvi+rF~2Y zFGO6pd{yo1l)M@+Kf1(NZgKDr&Afh=)R_qH%p+ynY6f&rK-0wXGC(0kXEKC5>FM&Z z*eIR7I@z(HU4yLF$LtSBi25tAsb*5(ZW2y9>2Ll2p@K2Pd`Z6<r(_ev_T{T4Ai9X5 zFjX5b;c6t*M(sons4>M1H@4&d>B-t68S>*p<~a=X=bTA^&%J=SX@vpYuIQf{gd|9> zI?`9`^9N3cE93W8EkY!jm!9C~zVZ+2nz}uk4`81n*1Y$=(j)tz|J=^)>1@Wkbc)8$ zBee)#te>Own8e$c1dEhtX~u!`q+TYk9hnq%^xzOxgoGdz3YsLG52BFeay^K#$3ykD zb!V^cP0hL0q4_*;2Iz6K)#;}gC<7r9qID~!CP8nG$rBbDN15<H0<(T(1zly{nQY@P zK*DyyLQ?cM8G&F!5&raeJyxhF5eV>&4nwD{P?%rqbw|nCS+5L{+){gVJsEQc6u>sN zK?iJ5gk#V%(`mry8=1l`&>(yFgsBn1$vgM24wGO|)F7-VyHv8s3h_9=Jje1)1YKgn z(p<6)*COP-k9jY__%~gf1a|x`JSkIUT(h?qxZoWV$!b&0t+R(Qk*UF%uShEI@4k-4 zpvjj7cX#v2R?Z$!A*rkOri*aeqpQ5UFN2Z+7N2oIutvEcpAG6T@;g*Y4YPmL)t%)* z4v`9L8GvHjLwuy7W<GvfVk^$8m2#cv2zzCdF(Zx)Sve?aosVPH1K>$m=3*Ld`+&^S zVoMpiMlS4tx5(&)*!>#^_tV4w@JsP`VLAu?>f_OoWj>E0zMZ}ECZE>oDFMv=fc|?E zmlLCxvi3cDrj)VWxLzh)_s`+(X?h{|8wU%EyK$H|g$1ID`5>YD5y|J5w$wS3jya*( zau{3r_s%t|F75!PSfnWEEIwcHJ=d)#%6RnJ)vsQP4p~wVxyXjPO1kbbulaTvJIg`u zNmf{B1#+DBtwu$(6u+YeOeq0MnJSgnWQ37C=Bom0oBOf*AWMd@e7>d<W?*(%#y2N^ z$DP!`)i~aRlHXw5F^TY$@UyE^9o@p<aby{tM;ol0f_Vgfvsgp_Ng>`_ns^(RfOZvU za%LlD(tJERQ8=_tvZN~8bbK8s2BNaVDiEX&3BmIXW?fvFvVWnyh_^|UcF^${bB~5% zh@~$Kd@F)H=h(kvqv?K4NxpsQN_{`XJy8EBY_yymx}Pst?5}VA>!9cocrQxYOYXGJ zaaVb`S*`>9y_FTU_Cqa#Z59G|WmQcp_Us<Z${*RTABn;IstB$2>|;=t1~q|QzXzM= z@aFp@)eu-IKWo5n!#(5^%MMQ2sECT<TGIQ6&EvsISmFZs)a2ld&}qG<7g~Aggv7+9 zb@m<xC2M44&nJZD;|0YwwqlbdmPdSzgr$HPCmoXZu&S{lj07ZKNa!PDW-wK-pc(w4 zdPju+$|?|694sKNu;v%l2<Pi%X92nHWFadE(-JWdFy@o=oAj#&%m@Oc$9GCv;j6?z zF3oY^bP>eal-ni8t$7+^o(ee08AYl4nTd&-kcg}hlqC!A-4Q{GkdTYWfUZDM8Qb2A z3iXQ5OcX)Sg5+OX%;2}yfQwHw&uv`<Lg{4U(HEu*S$DyXjDa{y%IqS7D4qh2=NU(! zLcV4=6-G)%!%{t|5w|0f8w)T5S2w(^d@l2(eBL6nH3-J+UwyiS;I`WDnS7j)f|ViU z5m&RMg&8^<DGF~1?O5Nd5p(Ew{iJ{^H}JT|jibb1M<4iS3iBY$Fr8m*&|B@y9~x%k z*}B~iK(_himR0WYIcVys65V&6E;fQRLIbAytL2QIw-*eDzQ6C|%2N%Sy-9Y%3ZHuM z8GeSoq)zLkv939a=|>1<KSGLbQ`r_k2M?C>4RXd8b>u=BjUYj9Z!6<z%Hi*ofX0Vf z;V&6Nb#X9%s`(B+aBlUNQ*i8WaBdH+CkiZ=`bCQUC#;X>XRlSVeA9zD-}2<7j2ov7 z(x?UDx|aLWV2-=Zb(*CHUO2z-$<5Swr)Agr7QVg43grpom6}6n2b~KclR_%Ve0@AZ zgW?FMn>1zswZpT*?+TkUd+ez>H#Et5S)02JH{D?aDzuV!_`;?(K!aLV-g8a$6M3~^ z$1bJ<X)+F-*UHeh8%YkN&Ykvk$qptTlt#UguAFm9CS;_xkV^F5saUPP74plICVYtN zR;i2>FMXp#Hg%YAx`f^x$WR;tSqLmJIpK>`Ngh64KIBjsq}009OoTx+a7duf(W6Xg zNs!4UDOTYd0`kpgXu@S-jy^+AUL;#DXAbY*%Fa={V}Bp3Q4g@T)(QG<m%#j52_^+! z31}o_8(r*Jyw&90qCw(^t|;6+RikfZV)QD6ksezVZrfJbR}c{M5A;GMiCtM?Z`amd zuetG|SdHm;OT1m&lLu`4S+TTrt(LhPm^_UdvPH2vzs(tVn_F0gP(K645TcJXp1I~f z6klA``iKU<k$rpcG`1}GI)fD459F@IlN*|<{^54{!|IDpdiwV%6aTY$o7Qi3iLZ5Y zA9^78v5iC9%iON~^@g{vC}_ApPHCJ0uV4Ft%WGd%t8;-tRQC_UcFvhMZ<YRjVBT@m z7|H05I6JQQ5op9pv1)|jqH$)fis^Hy{73W9DDPg|593|z)mEAYPKB0BP7w>e&6Z2w z%)<=oj(-#z@2sX;wQ#S^2ESqa+bbCV+oaI=+dTN&wJ`nLP5ArlSk~V@Le1YA{QtAb zcW?Lne*^lh<?w$K@|o}d<*HYkT_0}GtECdH(>a}OZ(6ZgcFKr&%r{a{;Ys*B(jLhm z-}tjWTlydtnVG_5<@jUt3v$9~%tyH&@`EnxZEEXnrt2?iFB{0(Enex5F@M>)KHP}> z^<j8ar$F`BvX!^Y6m>i^<|F^J#X+~V*_N+2x$g_G<At0P?9||JCwk!y4*{V8<D*)x zt<!2}v9e=;Q-X$)Z;mH9Ly=ac#{}}X8SJ($)^95)dN^#W^^#Lyzty3L2i{8!nzqIg zt)5C;G`))WD}<@tk5R-;&C>ZDZ3R{U=^2jrstHCj{J>{97_aj8&xJeQ>M6Ul>=mn7 zrImV3elOF=&#E_b)0N)LpEa62oG+>&UHVqP3e-COu_bJag<%|s5LmJLXmUNuZZ7Tz zivG2AqO|jI=1zt2<i}F;$%z_jJ?U7g)M#>|B-g6Vt><XlN4XN4wnuB9msin!YjO$f z*H%R(?(%&4pqMv4iDeyhsh^+ma~fRhnoyZMeq0=asK*VZn(*OUiR^7FC2dRSA%A+6 zhcdN&wUdqap+9O65w@M!>ps7!1r&t*S{A>3*<PQH+{yj<e5=1n^@Z2nUHum-*{__= z*|(A#5t>HIBO@buEz1q+=Mz<F8R#R~JsQH;dKB7F$%O(x-_18V*vj*5U;UYuW9-|h zqo0?}VHTek#fp*Kyb#aCtc>rGqTe+qQ<Y7<5j0XpH6!?o`;C(6xkF)tHezP_>4MZY zN7c0q^szd-=}>o>lk2mz>@L6HmUmkPo^<E6wV9qR#kxb!sr9rkQ=sq`_)+OIj|eOa zvq}w$xp95D-rnT>&B?9vvt1Lz;im&3hwprBi6VJ16{sHApGN(xwgcbO#Q&xXp9fJm z6FlpiDh$ZHY5becLqJ$Pd|P2tIgkteTq9zI7bDbXgP*NsffvN$5y4KWfc%?l>E!uO zO92lL@QQMG`|5}U8T>68-l{Jn7diupIc?M?2z%x`nz`g&o(r`|@|mWgo1=#yvW~Fg zE!stWC?n}=Ig#<v2SkdGP@}bd@-OzdVQ>2TZ!c@I8yj6^_ar5Aa=Xn3S5xbh@q?-q zn4M^STezn{ATaOVM`HTII{7mK!k<dy(FA<C3MfgRMm^6Hf7GROeNod~5|Fm9-Rqqk zyDV+Gt7K*{;PAVwiKnG(@z6<1z>NEvSkvgpYq(`a#RVSLP`9MK*6kSu*ip_6x$kBO z=lyH-zlnj(ljz-^twfE8@RGZ_(>2NCat>8`BHz^{H?$}t9;<QomN4Y(SI^RS8nd&> zSTedtym*yV2B$sZtiZsi$^?}60A|PMs+ymfhXhyKt!Zs8R(^Autc5JBm@)p5b+)xJ zuHhHzL=7cO9||d%)6q$+<XmV&#Y^}8*gzPtD^PsF9~77EVEo?}bavP}<w=5Um~TEP zJ9AxmHs5?7xI}=>{<-`2OwaC|Sb?&fjta;16rI82EdTaZc5N;?rGx&@G&64W=V$!N zpagu;A@N$amBK4;X5EJ}@@--qoHaZy9%<5>Yzq9KsY$0%0Fw3f;lnG)z`~1xt&db6 z%Z=OnT?U<?hG^bb4qY(X5BNhBCWdFZkbh76kS;s&tNuoj<wg;+@CMuGg}`&-gz}5% zb(J1<7}k80+t!@qWN3Tk4M{EvoX9B+mA7IVZ;vlC-i=JQI`7AZ7R@2tnpWw%D@p7| zDphEcOMaXA`_z$cm>mb8PvdJh*{75nod#|=kJ22uxXIE+*TE^ymYbX>Ff)V|D^*zE zUSje?Y(uf@tVz!^NqX|T+T6pg%Th{WA#O^8T|vilfDOKANj_(KVD9Oak5O>cR|@CC zira#?gU{K^Q3(g8vg9?+`_~SJ<BJ#D3>1%L{vqcRy}y-jhyb7^nRhm{qDS~xE#XP& zGWNyZl(E;Ii=1Xpt3PV{f&IYo42{9p^7Fjd$l__NQ%g!xdCAjhRBg7GNi)*#w)<RM z%JBA${2MPCDqXMVJFx(IsD9w_&pX3=%!g!mt1Y?XR?suio4Ws$S+H6e$<(>WaOdD* zWj8J5qrI%#C*uNl|Bg*M+VN4Qe9b~5kr$TT)u0T1U`e#VFn=C7w;=y1&Aqq3E~mPq ztU4FNmY_{HCHpdu@r9n~?!lINqCqTu6;a!nmo1V1M4O7Q&FO4DFn$KcSBWyd*ch&P z&9<ul)Q!50M-fc#M-O%U+ig|BykOzwZgm;3*ybqF-Eo&*O7#&}d%6C31g9<j#Y-X_ ztZ08d#t$^a6abi+^y<L!SJ%}?d&9mNi?z}<vy~A!(kVr@!PPE(eLHcH#jjQ-B1X}( z&Zu90xbLRv_Y-QIF*E$h;b5Sf(Qv-0bx0#je|@;nnxdYa+YpxSrjQerTwy8)7q0E> z+l7j!QqXzGLqG8IQxHg@4qM$zQ-qUy+n{;`2yNn#aY=QUNMSBEBoZHEy6K$AZ4D3v z_!ivT^JmI=Je*yf(hWdQOu9Us{dP_y^zw2vgI@t`lzY594OV}x16|EU{bodUaO2z$ zwu4Hy(cG5vh8+G3W>wAj^~>^iOt6ZU*+INIjJk-9tA*5{MB*Oyoy`0z0!WAkX9fm_ zQ^o;6zbBq-*E|goF;e7M+YfsEv~g4l=5z{cGRPmaN)r5Z_i{$`=``-v*+M3G$nb0E z-woHw!hcGw^bC5K$x2DF0<dmOcvR>Y1yAZj&#-mmP38gF#~+xnD2E#N3tG$~)wk<x z1-(Cwl*7+R0xG4})T<Gy5VYEgHrIaEk2S4B8pRyMZks;KRlGRo6S2M{ay!Hv%(9-3 zWc~@AgfzyW-#K8M3i3inO=ks@g3}~;htC)}A}`fp-X798AqRU@0d<Pbvb*sMz?zvG zp`oe$yu1^|pCUz!VjFmvUzViCWL9(;RHy1_RSIg4_f4i|P7gn84)8x#-Gp~#asC_* z-eIljxh>R66fsd2Ex6>L@id7E@JsO}-=awk6-t(*cD_ko&8|Wy*PqgQ-xJsKJT6i7 zN&zW2sp3`I{=M}73KArQ>9=nZE>;ZQ1jvPz@orZn4;mLLSQ&P0R=_~|<%zv_@r)I! zpT3XIt~{BB7QA5lx}&E7y%klof0ww5kzRh<#_P4q$<q<gdOp1wU4EIcb#)ZhahZw+ znO4REnqWog4^7nr_UujMOFww2hQH#TbR~Ud3Pe>1Vl+tF|4l1j9X?jQDJtazlOlt` z4<!`T(2>upBK9wFHObO<+W`*a9)p9*q*F-Szmi~o5D=t#@w0Nju&ci$3pJwCIVGYc zVJ9nCaj;tY7pqfzDEzfnp|)s@MW--{WhB2niIxbuwHA97pM8&L&@2DdyJ7l)1+UWd zYTVjoSWi7uM#Mc$Wrr4v-T31$bOeBkGPLhDXeey4lP}H@`?5P~YGY##;CP7C6gB=l zWS5s{=TdU1l+-G_xG*lJpS953jN<j(CJh-r6(Dt&0g&W`-`|nA??S!<)$w}7k{38C z41d$j)M&CCJv}bt-2IuE#8#sFp}{czHav+5d8guD+z*k7EP0@tY_z={LO2LA6>&{^ zj8Jul&8ms@`=f=dqq3lLri~oC(wa`X`&dT%;R+f!#IG=xKBt3X`B2-wt!~n4bkX^C zPlCWt|H6n?KPI6-XYCSxx%?Q4XTVsFf*RvsyAOtQ_{q&hM;-!QsRE&KWTIgL7i!F` zz337*_FYclCke&z!7=*xw-{Q)U!F8gOXR}(zi#$;5xgL=t_(kuF)?z9eek9M#MGY| zTv|SHkXRa+f9rDOf3hCE+x}I+hU5-D`Ca$rY7EIuYi`<$&$_a$;Yt}n2%BY2!#?A< zPXQeTy8y8GU{|x{wiIK6`+>&#f!pPq(jQh_6-FMP)j!M1sv--Duv#Aof9giyx>uy{ zcwuwTCZ#7o5G$$Hx4?)}o0k9?O`iLF%?g}qGB~FLPwnaza|4&7i2ETDu3?RK$Bbm{ zdq@CyH7ztB%|NaIHvuK_v~9-Trc}pYE%j!r5k=tzCKRPsY$nU}zS|GBtowe62ifA! zVH_|xN&bqdbOuJ}zC%A5+={%}UwZkkU1@*U`nmVj4L@6|kzg+uslUWzN<SOilpcLh zytx|ot*qJ}Dno8_Q6&O2tlH7G7Gb*H6a|Ehj&(qqCZShlJc_NicyzaB#QC>{Kb<v( z&D^kgWfK;siR7!tJGjo#jtfEwcM07vJ8I3!J~ah?OiT)qJ5Uq(zH|BM+tCn&ti71t zZW^9RnJxQygU=a5!825rSrq!c(GfM6INH&rq^21@q??H95gL9^Ab?B*Nrc-&{prk` zo&{(ge|$tkd)wm<?P`#w##<|DsjhP35oIbN!7`wf=FTA|0mv}%ip(*f_xpT)vORh; z9uz-1-<i>%gF)8*44G$2L(NOvO;DX4YU0B=9>YzQ7xGo~5o*ipQsu4!excyS^JU<% zPsk{k*r--v_ik<e@Cbd%u%Ie!4;9LcE@aGkafB!$IFFO9O4QYa$W`lWRE#(KwD}*o zYhCoUJogmO`f4iTk+#gKl5*V475`gU2oWI^nQ{2(6Tx-jnFVa5@m(~i8(}E+s#c`_ z9umT&&rJBxfPHO!41YX|d+lF=GpC{ewgTwyKN4Fke~qsbE~ty^d4J9CrE}`I+wn9> zX>Jjb5k(`8n*QZ}8(_d}6A}7bl6(vCrH=E|Ri}|CN!$c&7a_r_qGpYWAkGU}8lL`y z#bF?{T44nRtV{20;m4q=Cp^1WiYF>E>1>CwIF;zWt(k=p5?<59NNK|;v&5Y&AFNk< z?S=oD-cN++Sl}J}{1a~tUM>+BVYH4QXvLFOJnvJk?zvOWY033b=Bct4upO9{q<q!H z;&DdSr<u`cYlI{eH3Hi?(j5jNXxafh`o0Zb)(!!a!H0pDlm;~h1a$!TK8?Yo`5Akz zVUk~Yle)>Tu_z#<1#N}xwI|FeS}=Nly#CJM76Xk7$ZE$`5z@R}tP3X+NqkC3JzR8( z2SzZGdu?kA)&9QEuWx0ej~(OX>gj}0h)-O#e<tRSLKrS@LIblJ>pWfS@P-_vpsM4? z&U}-UCR2(hm{#h2hy*FyJmA8J3?%x)(eCIp@W%HezO-=)YIXa@7+@;wEyhH{cvh;} z5F^H!*M_8duS@Zi$hAy`rqXo~J$-+oR4Ll)0)Ea{sJpcXG4I`pl<Xb33m^lECHmi& z=0YIoM60CDkDV;U)J8O~?2kw;R)*AU`jEu+liN?q>{qL{1FNonJU$1+ELE}heLhI; zv<p+=AoI!&WXSF_;e=&j!(3jQqvH49lS9J(esm_H)!tz<+^itpkMgcFm~+jaoR#5} zg!ZGyEUa3dx|`pb;JnF7F$H0|%@bPZMCFc{_$gjR2qYM<n-p$8((VPa&u*FvTgG7J z#e~gfU{Sc|TRk^2P1fgd^J_k*Q%I@sRgL>C2i2dYrL{PzOnp->?dDq<_I$TdQGK44 zVt6vGCq<S{CaHfkb@O_G(6~{Ld$=FlD!BD9rLnBotNh_w)Mh1Cq}xvG(Z~>!^|hD{ z{Mh!ApbbDp@$Hyh=0U>a*KMb3P10g2cox8e>#r~oGg@5<&Fx}>_Y9@zLABSWVQMg; z_~`D!<E2+nUkMS(v{}vsAST8`L1|hhEO?n#5#1IFhWY2uR9o7_W_srrr5XsGDR#e@ zf>fyh>|tO!gKx%BU*tmB?S2v=R)$o4lsPLU%AqdX<r!FO1sjQm<Jo|WSKp<J?G!%1 zvQJvr^oWv`Uri?b45SKl(2J?1VrH1DHrB$h1v~hbI!=0OjUvQ}5bG6t-)`FodX(Lp z3(J~U!pq0r$bk=I=*=dA20o1bO3iQR=#5>jT90eqxOKMIc@ctCxDK8{>~QLHn6i5O z>P*pip!Z#gYIU?HxE#@7wv?-1Qq!ujw}7Kb_k)+2wp#v<>SK|)VlxEyS@ZD_FA?3q z%uWRP)zuv3qkpxLjBaHymMSB)?R<9Q)oSwOE*xd;MWP<2>%_6NhiM8~d4p0~&Hxti z%hwJ`0Sy5sdHT*9z9AOPvBwKj$k$|>_$0>P(kl9cET<fqBvuT&)KHK4hK|O!Q0JTl z7b()&u)G40pivo5Pluy93D{O!fwR_5#!PtmygG%g(yk-9*z*kWFzGY=X%*Newde7c zAh=$dr1s3OA>G~faWrbN3H~MBR1GZWN!6qkIR-HET;pu`BgJ5VSGgezi&uz2JBZ3g zw945Ub^mPSHRrH%IobKRbBGs^Tsve?Ozh&j@4-#wikSG-#4KUBmw3S3iXZ8@*wz2s zW{K0U->XeSG?Hb#c_Es_Yt55vr*SA+hQmw{nX^bAvj~=K11K-Ytp7#2HcW)N6#^si zc$L46B{;Yw^Qs&=NhaM5oh$mg`LRxoVHDLfBV|Pq%yVy#qBMyx;i#>nG)X1*ODIB@ z`#s<k4An}?;5gqgEz|sD=O34^K@Mv<QAv8D3BihPGHBKVyrc3=GPnH1o5#dg4f$fC zjOqB<ARcYGf{n*gMX?iDHUH%(V{!ck38-G{a#lOc-B|5-<iFMBMrQYOc}ii(tzoHa zh*^@LwrmS{p>nKm1?&crxgORRtBdxY%!heI*qRA#+q-n6y;mq?_d2o;>U_Kx=L?ul zN>*%Ofk01)<`AIzYGrx&jFrD@QDfsg))&jSX)5vC-kVwd{Ws3v%(&iwWL2qkSd1Y< z+AuYWxl^AVLHfpU_wKD4=cz^m7$l3UAS#BH&5+0wS6PnPQ8@ZZ)XES+lviKFBQZ?) zJkgsWteT3Zr8jBP!K{<fw<2qgG=FL^2R)-z=-xsPU<xYRF#_c0A-hH0_7ttf3g*so zE>k;49Mm9lIQ146Shrdj@^v-52=!+5<hI`Cic`B9RQB)jkBYRAlDS)Y1tffmyD5;k zj)$SL)$hPNjMD0)m{Vm6L6Y7?v!v8uAV>Y$A;886iRb&k(VggsU`efqIZc7jRznUa zB1{6%W5N^AD3a8Cs`ZpUrYe^UlP<f7P*L955At4v00<U7eOO{1HLe5xCLO!g^B8i% zc5G18JjqsG?nZ@(DjN3z*=QTs7s@{8+?by`i7huVOj#0Lrh;RgZiQ8F_5$g?4gI3B zO3Y97rAPg3J0y6Z6Q2-Oz1GFQ>Fquq4kI@lRMD9ecq_)zMIJRLY9>!w)ena9bEF<K zmwU*G!S+X|Rb2|`8Dh)N6^3(0{Zz<d{HBI}6ePGtQu<7N2zE1}Eg<T#gb}<JenDy< z$?uzi_M>ENE3u@)aRx~_hip;Nw&+oF@@U|F!Jk~b{A#O#umGm?LVQ~M!uS4q`jw=3 zG;F4ZM0iWVrjgpjE#LA&gAy$xKbp^6$`hPEV``{PB(*+p+s8^`N$wA|u6upgt(7*Y zniJat;+d<#<ZbsVA`4|kEA}%-xP#Zb&BO=|p?$vGYREW*Fkj#JM6PhHmoQYH%63i$ z&CYMp8$6=h&#Z7cD2RWSViJ^UPlqLhB~pXg)SI_MKV!n_eD}e8Wns6wzLgL>O=Z}& zrf^n;#IL#>FDF=ubrLne+SS--f}g?w8<b7_8Q#EzxL$&B^f7Zb4n6uXZuO^#7Q(4X ztC%?91yXO>+&vaW?q_^8&s#mV=cFXM(^~4{QwE_(5XKJdNr}IcdHKcYdLy)11lRDi z?T>lUrvNEBC-*H?RJFV%Jxu>Mzb0YuTivs9q+h6-z2uX@B7I*{dS%T-*zufl#;5r? zWLdn_kqGzU%O&S7hcm{4mYq?jhI%?#vlm=XwQb*nr5>sXyeXMg?PZhOD#YqEIy#Fr zHF_Zmlpzv!7%B;-JPYe?d^iPEL<H;d&t<KjBPAi`J-OlRxYGi1u$2y9Tko*+exj&) zadqSw`1CobV4u$iP%yrn<jp~6&;@~+H>i*Rg?GW1BWK0s$6Y&#5Q(Mg6F5b{C7Mbc z<s4k_6)H8YNayC)odZ7m6`11tYBZ1n_1NBBD+MX41n21nNu(GHjtF@v@}D_8LJVqp z;mUrv6G6U`nfrAZDa{n(G`XSgKO_f^QFtoTc$-HJVrHod7ex1>6+ooi)PVO6YD%F6 zB}KZ-UXI)QRRv{zz*n&{t~jjM3cUN(Q!>sBD?!v1d?JBrS`@!2a)1)e@cHWJ1|O!1 zUw|dsja~98&6%*ty>2M7%VV%+nM&U`;sxKSUt)hwvxj}*=!GmXNy8_i#OyMkE^mB@ z>8m1*GRH+(1DeOq7j8pXj7qn;-TYwPD*Cy0s<=l2QYd3QzB~q9qc3R(fl8oO`u)nI zh7Ka&UFqc{K3PtaXF>9sMIcOTk2EMmxQLX9W1!`m0BrmjUI;glS63$)mab^f8Pp8z z@C1w6qb3tq%oKn}K^z-4{*Yh?e)_ktxtsKJZNwDdzN9k5ZB98i!=C@vEYUu18Pn-& zzR?_dQ}ta7JpH2c+0KOyIzjRn(WQT(y`ldT>Y~;W!WR+-@>U1t1Ky=>ecQH;A$IPJ z=mCu;On^f9L&(QoagN@wakm3xd+K+#^DAOn0zHT^6b%}RS3(^W2t(ei@nz!ypmu;` zhvJy+VjQxFM!v5$0ziT7>k?Qx6tmbng%|22w$77csv536N2(IRe&YB(GFRX0CNVw< zdw(H-{`#C@m`aK~14!Wl#n2AluEP}y8jmpM4h5}Kd|DL1n1nl-p!c)oq||$tVTNlE z<3%S#$Cc!=WxixUc`+9ZBK=8rc$!sC%+)6*oR2|u7tnS)`1s5uX1xnBD*xVVH9553 zE8n32T>{F8-p>Y8joM$!XWgtDNMu-XG5Sj{>uGEa`gN<mr@2&dvPe%L=F2wV!^1$2 z#nbF{0yV2hYFoQkiY{@G6zQSjZ0gX#q;L({D+Od~9!{B#4e3J(BkwBvTQ~86mmoc! zFHb1c`cW(~6J(v(YFi2;;if(nlJ%C|EFOx|Iem@89rmOAswH{wU{W=B86pb8pvTzy z{Qbdiujx;Q+N(}~3K496EXPM3XU+X|(pGcI-DcTJy@DxAP;JwkebG>OYu-_5#&T5J zwqU$$F}euNqsAvZmc5GdJ5hK+l(zuCtyVq)bRSv4=}jqm4Tr>4n5b+b`t2z^Tk{)M zeBf|y6`H4&h+woGCKKbRbV%4Q;%zf)YZkLB(>=-D4qynFKj#xZ{*@vd;=WHWH>)lt z6X<Ka4DQR1JCFUgLbY2-R5yabmGfiTpQ94n+bzbB0(<Gn_}aM#cJ!UA14_|v4uMSS zT_i*DhLKwbb^!vRBNUh#KQ)lYR!Lf6ec?#Py)oBWKo$QrpQ&m#{WzEq5)3hqykK{o z620x{Mx+*yM-bY)HwZ-jdKf3?&G$@QUjjPEuLwzNdcY=^gffDP7Y^i@7+}K^e5efR zQq@#MLJVUkt@nZC0)r~tB(xWwieA!D=k;Eeju=H>kbg}&Ab~NgNuivDF)`ECx(7ED z7(mCW-sq;Cz~{hx$*YphZx~)P42;kth?STr6$lk@z+$wE0L&PD%p(QBMn>-5`4;L~ zkn)LB;0cTNf~vaX^}JL?f1+ysI;Is&ZX#sJV?|LQVZ)wYLE5AD7Ru(_JR8>Mv;KRQ z<PY?Id~Q_%{$XFfapgei?}<!V{TFy>HUDWhZP(bUS4~nc(^dPZ(HOi>D9BPbkEf`| zXG4=aS5v-Ad=XJNz<dSm)R=#7K4E)|gkKE_hWD)C;)|Ihsz9h(E3V~7CLbroedn;} zHtjW^`1mcJdOQ%Mi;m+B=$XXfBDewy`EsKm(iRtlgNmk59R?$0^Fjk#;aXm|6~X_} zr>v&ipb#BQoeGwOc6$AJ)5NP9ld{!p`co*?2%Zx7fON}V{|Cl*PqzW&2>Ic)^orje zDS044et=*u5cdqkt7LAQbJLDU3)KjNT7wbHrQ~C4v}{Aj4FeY>NmYUH6A$WRPQ454 z=)|iw|Jb{hZH9kEyiKbt?#qmJ&ovPp5rPHq#p_3hDG={o)gH#ZKe90nMyNjArqJ>M z0w8gU?6Y|Um;%4IMB}!N`-0XXV^A}(^beoax_v+>IZCwu2UYI?BuW!>iH>d09ox2T z+qP}nw(r<B@7T6&+t~U3-FW-<L`QW*b#z2mb!Ap&ovf@q@D#!PV7<G%J+{|Ae6Tk@ z@_oiL{z|?@8)q*#9g}&lZ$DK%$959%YyO#hQ39jkju+e}^M@hD6?0A+u8@k$K<IaP zU485Nvalnh1wbj%Dc4X`=B*OsnA3gh(C7Jl>S+E0ofGvtsUpo#Lo}k$;w54%ubICW z3JUd^s`N|V!NUGgweTi$;Uc}pY`uiyBETZlKuaJf^$?mPb60hvvxR~(@IZ-$Rqf@~ zQvdm6EH4kR9i+TMI<Nn-(XxA}I&#!Ch;1pQN^B5e-;B<`)j>ci_k%sBa6p$J-Ie0~ zN02<!j1p?Sk%A2s14PLd1&aZrV4B)9X-Lz?MLCMkAtd9(b^pA5h$HKuPLAH7t#@4h zL%?;RqtGI*p@z5_B>WQ`#s36TMF2#352lZJej|`(gji;K+M^!qN2#?i5qelww(_v7 znyF~s8nyHgqS_<XPnl)WOK2Vd=|bJl5x)jo2NAsWJ8XX)>0U7dhpDZ$&G3y30W+ky z90@pXw0~A^RXg8d*F7(r-ZvhggY53Y8yul_PVLQ3ZkzeY5nA8T&h~N7k8w}%-iO!d z2iI5!jdDItlXts|z#~Y{I6f8Md!uKE$OIN)awK`3{XO<EPH&_){VuYn)m5Wh949r7 zwxXsy;dGw2Mdar__}3A~VZp|8N}uB5i1lwraY&I$>4vhQ!Ba`bN6I|12)q&~q{S(} z7jaRtv9TJDEJ{hkU<QW@b&ar3PhFepmzAw=v$(dN?i_LXBKH2hsDy};iAv-9$@w1* z8y%?&CJ!GWE1`qN5>shdw?oHbwD-{?unr>x!#9@$#H4`ArOuj6b!xo3GuP4|mANR9 zE<=^Z77;)8xsekF(bA)T%C>Wn8PBa=k6A{R?Tg-{jG;&K$YzE5>RZ530Py_p5B(*$ zb=V=9zpK0Zlte4qGieI=hz?qq_L0siFfNz=!ZO`uMZC^K7lVXTs692O*r+<@LHY@Q z=IpXYJ)j&EB&=Mw{mO1pR>vQk{zpRjP}D7jX>}q*j8(k2owp3GBMx=yTOo!<g3(f( z#i)S-m(T@`)K3=#`OpHkc*~JN&+`@IkTtYHutG3oIEac^0ZVHFLPM;-3>d!TE0kq# zwh2dV>*ZH~vO%78J-*a~TVDKmse!lz<n@GsMM&yM$gb2uG>inHD2V60m7tgdn#Ssx z(K>(zc*}G82#<0%DD+92%7|%Rej44-^kaxMuy1OvW8sK%VgWJTblh;X@U+}o`!Gie z`R%dXOg2qyHn+B5MKQdC;9oKcTB%V@o!YV8oTU72DsL22YL&L;-W8s{b$7VBBfzwj z=NHvM;4Ov;r_>MqVtf_}{m;k8&+qRmva>`+WDleBS`HrY8gV@s#yTq#Y>*{J!w~QH zg1v*gu`OB^y6Our)-dP?Ly)Y=6@v+Aqk)t}<0I|q1>sCU_AP&mi6ByclrD?WEnq>g zBpMP>&_mkH1#v~l3&@Lc0~|afnIM`;1D463S(CDL%UFn}`72|R=fx{!6!S0?;r2uo z4T2LDvP5*z5}6XSBNR0tmWgN8+nytc%}N$cBU)98VxFv1cGoxswpkUH7)17QW?E#< z?-zq<<z(Hjx~o{>%__KxpWSWeqwJ=xzb}gf@~Ay6db88OCo%8W61RhneX*L37x2`4 zQS08b{x%y$V+j#1$IaV?x7gxvex97RRqv(Jlnh>lzFt9QbS8~ljiootWH%A<8odM_ zk@;=gJ8bVGKcwZZwtSoinvku0d-`5XSEkjVRefCb58D7Z*XZ@Aw*B130E^k`&d~Na zc9VaYj%7G`pwppick4RSbe8?Ct12t{bgiLziJda7q^7CvN>YRJwa`$}<&|^7KfGTm z`0Q6S@9_9|c}Rn@-KhtB3Ftj2brOiheK*@7?{O}^9d9NipUIvHBGs}W;XXr6SxR}T zK8G(20K~1Rpu*93>PAPxVE03hY;w3zNc_S;swEr>Gh7<cE6NVYp|~a?0&H~Lj#+0h zRcXeWfz)IznIgHug%`dTsFM{gdaL_L>apj5$44tKU&SpUq8CWdUbFj-l3=2h_6AHc z?(+wwN1z7Sxex4v@;;1taicw=OqE63m=C(cbTdr&v$0>qi8DwOBZC4}0}ek>2LVr= zE!S?D$GYJ${^jJcuVgN8*nSY38TFEVy$GUSRN^f2?yLRLa#lZj13vR;slCN&_XU~Z zRTusx;YN5wNm}v%V1Q_?HI+MvUZm~_$EJ@MP0pNpKiHga2-Iyi*)^}<A4q{Lq#i`k zvEXHRiRkVNcak5-16z(Gzw0(eqdq9B_iELsgvh;SxnP9&=`#DM4l=VJK{Dq|2u_)M z0yG1^j}f)|<Swcx4GfxBykQZ@<5qqlHWX7CKy+J$Nvn?-U)qN>&gm5JiR1cTV~Lv~ z>&2%^BtEc=Erw#XmKkKiMKbHf9{`h<y1X~4H-=Ukpy9B4Ivg(6NT}dPNPjq~z2CBK z<UFsJnquQLxSfs2;qb*F{>FQ<ZrT#LC#{WzN7GTbq9{g_YHauBx5<m*jF<KHgPhZo zThJz}h5+LQB&yyIml2Y~y^0f8S20Bb!y!@33NxLX=d)(2o(06oQ}TSS37Ua~sb1s@ zOWMN#RR<_y_U0$=Vii|QbCW1wTA=DdHIYg}#zL0=-G)&IkxX!dsouv4SQab?s7+6p zm!_aW(t%loV6F$UfvJwoS7wM_?>GMoUzdVGUnYRfJQNrpXJwc`iAM33s64EAuAZ;P zT^#}ZlRJ0LE@>iC!Cn+=w5VDX9i%F1MB*_5l~YWEYylhWpCnv<FvuH0cr%Drozw@I z)FNp+$EdMll-*@hQ6&>8R%txbLP6sdqvSSrd!9*Ql~i$^oqxeG-T9#|64vAzC-Zp5 z@Vu8+V%1^n*(AH<JZ-&Z#l6C-Qz13yI`wFsHSRKMK1Ug1lU8#*Inr>ouzM&!zFy+# zf^)H8q}^&(>gsDbj{IdBz_aGJ{9reE#bf{7SUUxHQVgg;*ORj3cKewIZt{fL^>=3X z4VX`7{pSkQ&bQ6ImrM%Wx54?gbYlC*bEs3V+Wn>yb=Uj4^Z26IC5Tt&{hN)d2U7E8 z<5-HtFK9qj^IQE!Uhxi+PJ#&MepU;!WQt_~z0*l!B%DNL06n$c2XQ<;ygGRVKoN|~ zd|RpY$9unN2_74*kJ!pZ-~t+}=BsW1Nv+A$zF5b6h}rjdN<k%?-%Xy@2ai79EgY^< zy?u)m1g|R6>PG}8;y?fvasfu`J9MniX!$DZs5?)e4B)prig*iy4CCxf=coJQVW~BS zm%*S~be|HuGiPCjm7`=p*&=3k(81zngGGu>oCy@Q+5L3kfJtk#d8j_90O4x16)574 z6wD{%j!#SZh;N7}T?$&T86`p=qCGO-QUi;cB%H4|%C2yHI#)~c1GI2bUkJ<%#it$B zYlrv!sQ)s`qdpjG?;fbsCw09`UwT##@y+>aXMh+@?VRKBPz&M-KZMg0HFMQD-5#PR zI+Vcl_rpssU|XmJ7*5Ri!{QPUX+_Hcf`YO^=%#ua!^tymqBHDj5YPzxSN=YL(6oIq z&`)tZz0Yv0*QRHUqHLEp_5P~GJ96CEF8qFLGdi;m&On_ES<?=iQNnLR5j-wRs!AtY z6y2W8R+EwTrz|<S-1aTM!~V1#Nx$o*!_s$RSNGMjD~#=aFAxfNLX!afVCwMr2URU( zVNWn5+<@TGGz2)3j2nqP`M@_^NFR#5xa8S1lvlz8Jfdf!jC>?`zl23S{O4j3-=<N$ zT};Aw5Qt)ZfoSIRRIn%>A#(?Mi~|PkMZ#c2(1ij7QO@Xl43gxS0+IoXxP)kK<pPYD zqC$!>@p97aXAB_;QHI=nL6hKMXw*6bamLKlkh@rF!QN0NYY-yn!lU086emL&a`%$W zisGYy3VDdgJy2-kL}>`gLjnv6EkbgWG0jzH$YFqr0}Nrs4T}2I3;8X83fYkdG7!x2 z*?sFHR>?y5sbTa{iZcLJ3+RbLGUjeKLGJz%r>YJ^G^6noN2A4yQNxxTYe2pN)w1`@ zQ^CcDjgC;>HV}f!iT1`v(hYG^v7@AC-az7r7pKf=0+v8@A5gHcBcQ^AVTe>!R@Y-G zE~m@}D<eR_Im_~oyK7Drq7_A=oA(8fZ-*(K=J1#QEvZ4p4V+tEg6?()*Tm!<wDs2C z!u%U-5I^o-RCNLAYvU8x3*C==&4adoaUmI4`2g6~3zU@k^8%bYBb<JsG(N*02R62o zcHRRyJ?>Pi3zLrJ;@3A^RfXA3oM-dGlL$+^<~EcG-@$k0b~Zi*4jHveAzHUt*)GM` zK($na)4a#v?YeYY#k9H)kL`H)y<a(?RI@BZ7d-7Y6%%Sq>?VaFe#9Ona@$NtH+VTU zltoALr5#45R4!+myi;v~V8)dR#-a2p6Z*q`Z&B+<Smdwj%k33lF`yqa&(MLYFj4#) zS5!M-OQ5nmx}iC(pQjCllDzgmURFQJqcxAKYi53jz#{o%YC09eEtiKhI=(bm2Z-IK zhbZ6eM%T2w6QWA`i0*Y<D?*~1AAO#yO&h8q2gO|*jiuRqhqBZSa%>!(gLjq*UvV@4 zbe8xvOs*J6QXQ8d%k{mpR~JxxEqz#@QRQ_XFN%biYp1=$|CLr90}c>!@M%O>&Y(W1 zg+!$>{{?FUqN;hi82tHSfW&saZ9-m!c;(n$CSFLiRtwdn^P>DHaPhJYO5aa%;$0#D z?+lJ~6LAaiG(Tmv<msWPVP&!09NYqZvYeJaqpOZF|5_?|FnJx>xR<DO%KqKO#T2;@ zJVqz}GnHKV8WZ@z?8d@gqk#Acy32{?u;;SNjn?-lkiFfc$UNf-UxEAjSPJy{=LVbo zp@Gg13@$aUPZ>iDDS%9M%i8|LiAlzO`ojQ`Uf{G`1{S?YMeqB_{bF4;k7CWlFXybV z1I~>9XOe0SE;oPt;X;no=FMo+Of5TdM<?2aS}UgqFNwhwG-^@#Q26WN!w@e%L6q)x ztZMUpplsEvW2$?jfUof)HHgM}VgWv}89vRsYn<V=m#L)#I!fOhtcLbYTx5VDx8rr& zzNZ;8irENpCC%6WE(@Qs!nzn0G^8a;&5_NTBZtF6N&GaCZ5wCh0ke@G6Mq@t_?E<2 z2vUw-FY-yu(Qgn8pA}&YSbPS67+N1iKOlKBFY!}6qDSaa4QXs8`ISrXQmQGIkTY|P zjB#{CG2$h)uykY|xS_1Ip^SGyVFy!s=j?RL<j@~<(aLEoAZoVsB7DZTBrh-6bB6zh zy7XgOm`+yY%e2r<O|jby39q^sPqx%+Mqf8W=s8R5IYY{=Nz#j?u(VWuO9_*XXNxD~ zI#HUJ5x4wNd4s(~4Qz{7;BPp>vox}6G+C!v!Ln+FPGFc^QCne(1+tjS41(oTVk+r* z0;Kedvw>6;zZHt0&x`}%ZMSrp(jOvN5*9R38<a*w!)D!gc+yFrZUY3UUaMJ<w0E9T z2f+8Md9R!SC$3(<-1_r)oOpAroqGD^j%u5*%-ArAPBvOShllZ3B_dt(hrsjHiIxg2 zYERvNjL(9P08}v-Hvw1e*JamMd;-#sgIB$e00S}@<$uaE4h<9>hzm+>*CP_zGggZo zv6`70pc|Q7siLfWN|~_kE~bfnrJpDc;x#r`85)%YOsl;Kf3rRE5hJl)vbv6@tl=_G zq97qfgj^w4EyVv(k7Gk)iqOzy<Uw(eOpzr=+ed~9!DD)EZ^#IZX$$ripdA3fMm!Om zgaX`LE5`zBxew8V!@mJg8a>0Rx}{phqekk<81;M8zoGQsm(0AK)B@};2>V2LbK{t% z%S{p=+CrwjzJ5lgjT}<PZ}ZyRnl)Jqu4~(B0D<kO`^jpxbJX~bu#QYpo?l{Nf!X5W zLGsXha+X?%O34Et37_YJ*Pdd?DBo~|EB>;&nTy?^WvvncB>GX@cFo`G)VPj+z?m_I zGGSNPuwEw!LkJPPLmVJHv=67=xdX};c<N-absK7@MA~uTVn5(Q=0&qbp#^&FR(s`3 zFq~rv0%_Xa9|G155`mD=1P!Xnp>1Rer{mHfqWOOO>SPvgmu$j};5N`%yK~}t${akT z0iYS#XtbOsOL$f?FHUV~LCyj~Bk)sDk~%2;FeWJ~ymVfhxeq2o&eGyTyp&rjN!1EY z|7LQ1J!_hXAdxohoPX6SuXG)9#LPMlV`4nt<}S3^q^m_?GENI3=Bw$)n~b@Im`KkZ zDHcb1OTD=vwY0@ynx%Lv{RfIBKt9`ic<f%U$0c!RIFZXc{<=j`pF`8gCj%6<t4!KU zx=q=D&(q4y#5!=G%h59SPQMt$Q$9I}J#uiznaV(flgNn-yFUwGbd>QBz0EK2Ts|Q} z%(vss(8Y+$Ys83dioVqu&*)?XBM-=&3kp&5zN(M-s8#dUDuqKNA1fz3gBNy<wURjE z53F^Q8ZQWkuwF+*NfCwCvxkYG_DpFhROpNviLzHKilU`>oJO<VssYX@tj6Oy)j)q@ zP|D(l`fI<u3bE-VC%Par*3<+zvu;^Or=x7GuExAnK-|tjJDjz<mmExp<#X4%`$1wV zDHvdjse;lNKGf29xI-Qi^-m}QQZ3}zm3gf>-0v%p%78}g_QE{WY{`(vBv$u)0GY!@ zdEfH5v+>wRg;e|_(_s|hIBK8gPCNC6oi`qLN<H{zv2pE1>W!~fOp!8d!ofvys#USA zNt&0&&`&H5RE4&t^G1YffjXk?!)v1hLt|(4^DM?3!M8e3U;$a#f1l{MdIpCRxj-oQ zVj5q->i6P_7Kmt#V8nJR^GZZ{dbS$FU<oOy5$&&WOhcWKedD0nJeht2lyC<hDnieR zk7GD-eF6}+7`|$_<Qs`sa>d<C8~=}qrM%<Lmlsxc(ID!8SRKrmM}o!-<;aaF_e<2S zd|b%SV=7C?_ce>yK*HpaViQu*Pk!gH4x*qyE0L95;)=ZWaisjx7Q8KrbM-G<dlnAw z0AZd%!V8!{q?B&tAjb=y#6aPJHxS-+bKJHEzF|+y#;Qdu4~;8Et46tvCG;bWMJQOR z{7xieQwipub^B;*a$u~Qdf1WP%u2f<M0H0ObO&d2ejTcs-bk~CXv^*d%f^h2lYfhH zWP5}BZD$0V$ne^X0akzzWk3Wj_#J@3RJ|f35VhbZSiKx1;g$diPxuXhu)6Yr50dr~ zdlQlf6#ysccjP2QN^yroDZ7Ti5UTh?<|I6Unt6=7Y7x;OssW8d_;p~fY5}vHyOhAZ zsQ6`Q&85cXvyCtyD?o9EyGn3!hrq4qy^YDsfi)qs)esb(X+rtf*{OgphKCQB?UIPN z6CnMByYWIe6M?ervm|(&hyF=#y$o2mlBHtgohOR{D0NCe@FfmuJpP>|i>?fALe$L+ zxY+J+tt1Yr++ZI{WiAezBrkiJ7?x*3*Yn_;94o!4#Fo=6)1O)P+cMR2`HPnqi-%G6 z=O*kQe^|btSk4GB+;aIiqxlHqnGPtww5CV(*%^bG2r+ywKxw!={)H&)xI2Y{D+X<P z=y{pL-W_SRDeZVFb;~+|ciefl*>|+tgL&9@ayW5uD4^wL*Gy~T#96)Y0)l(a9(2{t z+;?=!e}!lQPeXXJ+kbRey0{!Zauo8+s#N}?@{8|ug*Tf9fY+^E$j&vB|Hy&&1F(4p zG1)6#8cNvE8$BDjed$@}^SppTy8ri75DIel-tOpkd+_}y|KUo5y|>ckM~KF2gU!ms zZnZBLmWhE!e9pQ6ia@}}JUU1i1FZJ$X(MA?E@;`72Rg>gNygOiU;6X{F3-cRQMSRM z-UwEIGIS2HX9@D@36rL&l1rA{&Fly#gG6NN-CaN7tBu6LW@YnOE(D4@@ZCmryQU-v z@gn3<AaPRO>h50zAjnXT2uhYJ;UF7c*FQV=Q@V6eW9|cmIY|Q`#IPvt^T`xy3@pk# z_fpIRD$I*J365&I0%gJjiG&}rP{^`^hL!2H!5nWcgP2x>3j1)&#v%tq86LGkba6^x zYe<8WSH%(*ep2HqU8|E+iPxjZjIErh84JX}q!I5&p!yYi9h0Seaz}4(qsLkt1lXN6 z#kuAvRbt*BY~;GgEJRv55l1|-UoPA6Rmi0OF3&k4L}?DZarnk+T%@LLmo}j3<GMqw zAfPh1yDbCTWFbJTsr%@+?G1z{`=Z&SDfB6C%y~_j!<F$MG&iLmU?B|K9yeMMqB-)n z!OR5_iZvBv_p<=qo;T39dv)QVFS}ch+MLQ?c4Q!d=88N;tV~{0sTjnfhJCroVT=Wu za~WU6G^FzT<DH5%<F*o<YX~I=wJE~KmWs4$xna=PiS82n79d((jU{%{GfeFv>bF4# zh}eciIZdIL@cp^5CPho}bQ?*3i<XUPK!hgAf*<NSJ;B0G%D}Cdd8h+-v&b)r&vt9t zm}7O`rSl9BmEVg_MM9XX>G!?6qAs2ar_)xfpR-th250A<b--<H7mRWQCP)J5Z2tBM zn%9M!b){Q1rJGqxw62?~ViR>3m76q$+qI={SkrDfHl5tMm_9U_DScvM`$)+~H7l3e zEdJfu3s>qrr)=s0bc^t(htHk{PAJB2fD)!c(C?$~XCcIZQwp>vfiTe;G)Nc1VoHRx zA`aTHe@YOy<_^3ff*W}t9R3nF<wlAV-sioh_nCKRUWo9FDICMuR68LzECm#1c$HP= z`IG;Vz%m)<0z)<1R)MDrOIV?jSSA!DvgjWVm8rnjg%mtjro;h3874q?h8Eln;!A>G z1?1ktkF5^pqYJ>saZ3X%$l;vQ*NcRp88G}c5g>*LK_0SAvX~*bs|F>9I`4C;1;rDY zuZQWJ7PRZQs}p@ox`TwE0~sXAe+zA20~CtVKVh;fNYN$_Mp*Gzis1-9$aPJB#HsF< zm*t0+<%-hm)1xA<(*T-tHQ2+%C^p?H)E|C4cv$T6jF+e8oT-oKIT{8!{PxF4j)-(F zt>{-AZ8y;X3o~ZTNlmzcAxK+(EWb+1(0@eLiTT?<G-dMi;1xRl2^30b9xHK#CO!XL z>*?wJBn%L~F2U?!O4tYl{=_l>uV;K}c(pFfVuEj7mn7;fLsW+uY6v_48o3JNb2uI& zK4E4;*ZEWxD+K5U&IK`rx*Ap)Hd<xV^3hb1P{r$DTGDjs`7>w!LF-$T&rWu^H5a@v zp)Q!SY&2g0)lk4`=daB)6*>F5HA`|G%vjs+ug5|vX)oTAs8#858Me%z?kDp&EK$c{ zbtG<im@cx}^H^JoA<;8EhL(%;tcmUmv8cE6lOy@_G{T6uy>GWdkhd1I9**X9WKmpD z?ilqKb){rSHm5NsXUN`XK7lO7?^@Jzx_(8rVoUZefy;#DM%_iIp4{hY+g-@2Xvx|o zaB0Y}A+Ly}&}bby%=vDs4ssL;k*}67ag(q)WdC7$!tY{ZJv_{6@EN;hm6o{0UmG5k zhZu5;p{G+)d&9ZcP;X3%Ia`0_VW1&)@tEg!n;VzQ-@4^O#%tG&uDeUuNDa~}pIo-x z-TAw<+J$1dV<_5(;LdR<i^ovK_w>D(HpJ{)pTRe20(35GvCgSG0g4O0nxHENO~5g# zu2fvDc-?2!F%F}>0FrVp9(vw9*ZOG-o!?1aILYfTfr><<>)KEjBRR02$LA?R2C0b3 zombLE`NbvDdTnnXdgXp7_HX86nriP2lNxdEAM4E)bsnjuMF%15;+K1r8;yui2d?}f zMbkmjmMzt}7IO{Xsm_1%5z`yjF;=nC_0unW_zqq7e#?{-hSPj`%_k|wljv5+qIuHY zk4+t^Dds@xAUBhpWQ3=vC}6MQVK(|LD0UO){?-y>TJUuZ?Bha<;5j&oXD<AIc7o>! zgFjLa_LElwx+xj-=5a%hPgW2neFYye(FAVvP@Ytlnp09(icL}+ATxLa;8|~=a&0_3 zN9|lar>g&cbN^*Shd7phccKVtPyXgMr_aMJf<eFSQ6FW{26#FV>VDH60OcfwZksxm z=WKlCWb)`L*VI&M>tM!j@Lw>aV{XXzybds$?k`^HtKizT2fHN)Hh|sjK;o7U%!1Jq z3<nlO2u#60WcoqI9%noc+d~tQ#o#bxprDTP^M0x%UnGn*eXT&!wgqUt=;HxxQ+eTg zp62ANsPy^~yT);gK*UFR=@0~kK-#YnCO|+69FCx(g}km2Fan`MN!ztW-P9tV{(R2q zYV@sofv#Qpn{CE(QROt#osl8>y}Mv`6GMqx*#0ti`C&dxM}CFkTFDQXWnX&qnuAm{ zN^<Tkn<?PHNJ^0`RqV}~V2mikI}ceG^apgFz#gGe6OQnbr0!2tT?fD6Xxb?>y9X`2 z>haPuTEc2fa7!({*2v>BIf0L>O&DSkEWcrz>|F8NhW_q^)u8b1fUzB;hlzKX@K)J$ zR_i?~mJd&mql{lc`hN&U`XgmBtXHA-^N}?+KQbUF@>}^Wzm<_{G)(w*^4H*cM;j)J z+xPx449^ai<9lKGij1lPK8CVJ9HV1&&CIxSnxiGgFoH9<%uC;dULnLjQ@-FVK*f~G zE4;~o&?Q_QHJIdE`B<*lSNIRU0+^BvM*Wr0`N#pQ&>fk`X%^BY1Kty*7{$h2_<{L6 zy!jh2^F^k7lA=Y8&6>Wh)rE#?&lo}gU^2^bMX_XG9b!eissQ6reLP!+2WU*Uf7Ep1 zst?3vSE{pmC|{ObrYx~*VcnCsHMRiinlNYbIAb_*lG3rf55XK7f)64KRF@D&l@SQK zf)8RT4aymSHwr>=FR!}{Zz)|cFHu1U(V@)9E$m2QTuGwc@$B?N{f8owl8B(H!#YqE z-F~(H^z>=wfSQb5jK5vSD?IXOxaw&)rD6v-%5ss~zh50(Jc+{h6Imh)kjRBxT{}tI zTVddC@`Q{09~Sb+@}0^|)@cR^Ys;y(ENG@w{rngh7`i=EA9f^u``8a|N<L4w%lV@d zr}RFw_D^=lESK?RryenzkDq-`Nqy-1Ts9iJIK3*Uf(*U&WEz1oDzPGX<Pu;nFa3$E zh;8<04!W0A715h1q;{q9JZn<hRIl!XxG?54S0w3=|FO1UaqH~4p8Oj06P?wRu8D?P z*BHLPKs;rD8Dx7d4QbO{m)<8rinhpGslqa(xm#do?eG<P(sPt}qr|E$dp%`Q2X{R! zeC0hkv)s}lVv2qR6#_(fO*|VKB$280<bw%}2#BRFOh`5*JQALxO^sj{(ZW%r%bWhZ zepQo6{b?aZ(Ux@2g7$e&`ZG0=5bORT4YMB^ZVOh-Rvald3ilm;rYFXb%0mOT`2=M% zo^I{ZAfE60+T$|B_aRk<m38Km$U1%ne7~h#vyA>}nNayrt$?X;`n}a3MbGX#GYjFl znAZD)n4WP?0wdBYPl$xcA5m%P!WBJ{?&t4jQ&ZONb|gu2>H&QWG!Ge*^1t=Mp5L;X z3QiwSKfq?D)7nmRkERg@i28W9ei44(Z-9?NJZ^jI(>!KkDaudRd=FpG7SA$9#i8^C zaDx>96_EUrepUW52(^%e75uWu;wpf`dt%1C*^^pDkHv&)lrJclp7Iyso8|!Trqr%k z5k#u_lfdTZE=`iBc9g`tJxo6j?v;=#8Wm)cJKjvs_4A5wO19TBop%}XZw-5h72d&- zc7GYvX8nQL&6&=XBe|#xpGNK@rG=FkWR71^A}E8#8}WeyS>6`a!(BoaD<Cc=7rbMR z1^%gu7*-PE&g0oj<<K=#2A_rrrco)JL^8iY>A>mP5x;yJ-%~tl<w$g;CGD!X?}9O! z1OI79PXV}R4>rX^=RN_+^hJ^3q~?#`|HIq^7PApItf}qj|ENc|d}zQkn`&?lW<;yg zZss|m%-(?lL?nzir~!EW*kFOg;{H}_oWAm*mXuHxBggxc7hnNyd3yrmD}3>#+bMuf zr^Cj;@Rg?7@scWZzxQu>a<YU?O^{9w8r4AkusPY}m43zdvp%fkUzTfj_shvoA0yMo z<3=r(d)@bh?b=Hif%B}5F<xwWeJggX?hmQ*J`?r*Zr=eO-S&FV#pETZ7IG-9^8?<K zz{jHJ)Pb>TzA`^9pfC=<^0)XII5P;Xht1zXgh{I)5R?MAT^9kv3;HT}5*N?JmWbB} z>-lOBF0_MH7IrJ}%rE3jFIZ2@0?7&ev?o)b1~BUYd^^wgpp@R^fAT=UPjpncP)~G? zwFQV~3ipVMcE4fwXnxHQtvR7uvL&H{RW$hXFqBf@MiwRUfDBM`@S~mp_wh?1nQ4M; z!H_-lQE4ma_UGIQta^qj<nw6Z)ltGOqU2a{D9z+0H!`GpGl)J+S<V?VA~i?vs{2J# z+CP@r|Bz!U-@pMgT!lw{7Crj`m0`d>4G8dSS@jV&Ycti35QAnz24~Gb*PvT>It&j> zXA1U79YYZ;5!P!BLple-DDI$XOH@8xq>VEuyc)+Wb~%Z!1(~<i4+hSBw0!>foj=Br z{)duQEtn|v$JcArhoTJ&pI`-!RDt1tLBEp%HI52uL|9nO=h;sjLJd1|QnQ|Qh7j}h zDHcmsnn6N0%L$kBjMalhpw9wEIRgmAS3*C0C6N9RGZ1XK386lFzNKH){Yf(*l2H6A z0`WZ9IBY=Z3)o&P3ArQeIB)RqPq^uhNYqW?{fPOHkuq39Jem2IQy=QF^=PZ9UBjZh zzX4HI>XhkT&F$eZ`ip6L!}Pvn)Jh;tw}|dzBp*yOJse>&qeg{3YnC7FMBZNwzQV)_ zcX3#_t>7MwK)&ptOlf@AfpA_ts>XUobm>J7<+Lc3c44(%Oz7ZKaFi|x8?H#=77+je z;$ff!QaR$8R0}8e5c%hROsL(O)10||cv6QvnE^nmhzlfaodBhl_(>c0L)`#dX`p9= zXOO;LM)`=k%tE|CK>N?QP_^G9x(+>>kuCrD(jTRH*%@UuP^sCqgU9f%;}^gm#`LKl zn=aMKt*#zqT*v^U{ear2hN)(FJGD$S*$Q9DHu2K?4Cl){zE6Qm|8KxVb-ntyKj9nw z{-T|NDJ5MVXpQtaFXuCkVc~6N>cj-KNR%G&J-e2?p&s$GC}Upn>!?Fsb&BlXNQ0D* zUddztna`n6ett5jPFx_N`WXC7epwvx-3gYyGF`oG+Q^;-c((Jn9T~D4*rA(}y_tK3 z706W!!fQsrcA1fHXop@xr1n2y)FTW_WoDS?Iw4`!Vq;$N#{|g^2z`gQ$-mJa5aS$? z_i_ace1GTAXIJs&4z0}hQJL>3Gu^<az@Z+XHJ$KOzAc}DmG7uDe*kRU{VVYDW#VSv z$;=Oso8BPTA3;?3gf8;>DCsj@W<vI3p^|o4(6mfnz8lqgCaHAy{~-d_dsFGtFhTCL z%E*OKrlZ2o2I|d)N15LeTy|wThwjlG#Ixo}&U4UaBoY%&^p0Z}Op(0{8j>GYfhbYs zqlsE8iMxdOiwvrQcKrq-&?+3=RcIG8s1?j0vtf{U_yJvUr`@n;LF<Ts*$KCE$uGMy zTjFK9Dwnxtc)(2Y&=&EL;vl6DxdVE9y8eU8>D2-V+&gSXKn-{%d=EXK)9W_#q;ff* z9D?tWEqKSTmw{jaK`id<A7^tPtiPO^0i*js&IoUxvV3h5lB6<|z39_=i>me}piE3> zIGH0_Rt%2#4+e-)veK`UjACr|!b_Ox&J%-!k6!0vYdR;PalDJh;Uu_(lelQ695bsP z7d>aNC<BDNJi{5~Vfw2G1~<T@l6tbRm%#Gjar(vZDngor=&C?iDfZ|Hkl6_BYyl@G zxypMYCb{b85hT~yi!ouy^;lq0+2yMl;o9MCTxc8$3CM^pC&aW}gDH_Z?&aXzqC>dK z`vSt(!uvr(yvk_!zs5%d9palqq&_ti!r4GMDK^yryACmfu#%5lMO+CSa66~NDlaaZ zjKGwVIF&yghxP@`y#TKVUtANG)IVBMTc?N-pm`Hc$IOrcO8Z?(Y>kNhmcM0|n=e|N z`dqk8z$dtapkfMrh|K52na;Q}+))NOK%bys0D7WKeu59R`9p5A1smpPGlCwYiJj(e zwSvv!SCh#NCxI)ymKkM=wrk27s<)i#dhF%yeYf5jLxSH&LraWy>Z|HqitP1&F(-!i ze{zD7A@L>^p&w9ax?)N`gGs;re`BzAWkwqlKit7AxN%u9!dTkX(?1hQqx}_3lx%31 zkBM{yXg~<wfq-aaW8Sh!<5mtMn|8Tn_4qGh<y&y6Y#HDp^-j^5!gn08JK<ic3na2E zhE=uOr0`La;Gt9K>STEWNujZNk?rBWeIQ2N$qNG5#|Y@HZ`=Mb9;a9!Zk8re2HXIk zVdndoT_zl`N!wM*X7`*PDh*-=Mexd-vlKk-r{LneS4nES&{;g?Ee4}@bPv<D>2ERr z8Otf(R?{WpH@rH*;=DX>)++gt`9EsozZ*=HJ6KGgq@H$^pz(FETfaBkpiA+-ZP#E1 zGMB+Rs8ekCjp&g-M|RmFs*`NL?!Mp=uKJ~*NsaKHh%v7Exj^!^xVn#jmVP^17q#-{ zA`psr8vj|0d^FKRkV+MN$v8k2qZUQ_LVD>cIdC~=IC+q}4MgpgfHHwHW*{m-HfM5$ zpn;Hz{c6xcu!0JPO6dJLJ@rjrdH-(ksF%J6c}kdqNIJ@C1hsZi>^=&jGNMF^f-tVc z5l?vmS(QHF%@9Qa$vST~V`fEx$S`|BL|=#cv?l<|@B=Hb`4+L|R^BQJ!UjQ+Ev0St z1j{%fO{DpRL6HTZhaHRsAF4}wNKd+CS1RNX&U94$1|w24oQPc!q6)hwQRGi7%(}q- zKcTS?`FUNKj5Gr?`DX=X=RYx=al?AT3$_IoY_rK&=I=DjKfIYgRGAM<nxFjSQX01a zDgB;!G+xB?X(}@cXG-~UHZ<N8ezB^&$Oyxp`MDyi)(FpafmRb*)I*Y~u-Vqlo9l)g zZ_9>l&3Ekxz!~nSV%Gh>DNSEM+I}dk$N0d;oQxbYXsV{jF06CM2sXI<2!`Z;hk?{Z z5WeUSp}z!_IrJ%KO2)CR$q#WvBei0Q@??poqrztxvDHExTavnR+#h)ZoTWL9DSSEb zwFQr)?x-mBe4#-A(|WN4dJoB~fWR>u<(REYx&5MCPdSbD*EzpZ*GFjb>3qaqtqrUq zxZ^NFwh7^E$aenysEQ%c>h_#%8G$T;D+wXMdkY_krQp(V!eJ@COC5*ub-9vOV_Uk` zSY86vb#X1f>&LLoxqE>fZMAu<Jn}{Tj}H6ag+W4m?vT2LDIt`d%EWgIj?-laT<cZ3 z*@3$LM*Hk}rFCbG$TKZb^}q3CO;B?_$@ylSzm_cghDWs)m~^eMi7W7G%#lb~U4z5? z_1kG`Tv3nPgzZu4YcXn^N)m3m$JDA2ShB~0gSNt(G5qcztc2+G<57~E^%$1|#JbAo zGR3^Y=P@Qd>ibefJ;IkUL%zaj{3(6HxZ%Zs>VKsD6U76v9szg*Q2`|T%Q&+u`Z;7k z6at9q8IdXr2H(vK&LdKIB0A7jMUY*Z20Q5N!U-~Y^>y*2Tzu*|L(7afbg-9(`y!S5 za~FW{A`Y0p>I&#eZ{(D}!bx+>4mez}Yh%bFeF<f_;nOO7yQ=8uVhQ%uWjD2m&xjJA zhl<!np8AW@gcrl^yCGwaIaUWs*hsn|V)h0dx*&3I!rI+s8PZos6<m;1NC{0C=gq>; zkL+7CihKbr=%YDN9BD+6!w3)Qqnl_5rbhNj3nAr0SxMTaKt8vL*GqzZd6E4%(EWI! z{aB&7X!CdY$xSI7bOpGV4da>zooMd#!hkCsc0KpiB>rBAEvhbBaYgQg4Ycm+Zpcs4 zZo08WuEluX2!Fj4!bK(21Kd$0!;mrusFfi9>cOLcass?bEodsU$rD%)#Y*mCn;P*n zq6IT0mDnoV{IVhS`)}b*2e^A05#W`=Y@FkII`GL9I<nvlx`o(YlDfE^7|$-K5P*+# z`}Ab&f&+N_!WT)X9wk$2dg7{T<bRv_Gl9c<Oj;mv7RdB_I{)@xyrZ<hWqipzdDXms z*Flr-0z;;X1~9-LDIdz0>=Ul+JCBiVH@)>eJ6$fOyB|MA6gT9np!?VPEg^&r$ueZb z`M>igpW?!jzZIm34MHH_yENJ2gbc;1?ut3_5>jdlwT6c#{?Ys!82rDe6W14JP;@sa zW+QtkJ7HPA*d$5=meYpkcHx2Wz4qMAxX3@T4a@7i^jd6xPn4QcD#iK7e&cbf{*<)P zlE+osx$3g;G<{L)tK&Ibe@>|FtK@l~HP3_>xBkACtaD|G=gwy*v@z*|2ea|$+c*3Y z=C^@wZkhFX&svTuWAwWlJ9CA#xys?OKU6>oD|DvjhOb?B#Q=^M`TRq==76~%)<{6- zWDXX{bkz;l^hu$i#Rkawk`tDxE9<Wh+uW-}Xq9c#_dz~Xn0knip3DHd$d|gtmwJQ^ zUPOJGIu=E91fm6@hYU(WNQCm9GMXeRqA=1hRev}P?LZlIpg2(-2uyyWIAI7&=D3%F z2y=p%Q$>$5rqEKoGLD!^y*em=5nd_S2(pY{1!nIB_+6-gFpvKN9PxUeGFSQn?B1hL zohkhsslQ05aD^1{`Z`Ml8?gaC{=2bk9!MIY5mY(=!W?lQrFu#<YD6|?MnzHtVZtb~ z$U2HH<Ozjxg0wNDa>C#MjR#VxWWl{K9P7C<WsnSzwxUKN1a3T8A4jeDF=~H_>kLI= zIZQSXX#)zi)DenB7k7vf3`qksWta<jViAD@Wnu}T2-;tSUOYoAKtKC;ZU8((eY_6q z2!gQI@dKNCi=YJWi#zR)vjW=(_MPG;IZ)Z3*h8C<!e=OEKu0{Kzu!ai-$MTQelXwe zpvZe-*UP1<t1y~pvu*|hxlWk?AdngJtj3O6@nbZCrEE7WtrC}nVFFZ_iW9IJSW6-s ze}-u+ka*&d_ld=3g9idb;Jf71M^<*XQ3*}p?0BTDxh7lQij2r=H#=VdykD+;%uVk; z-<%e-$`gjHG<{fuPlF<4PX{DZYzb37ysnYor~ZL`$%E7V=+uuQAx{F!YP*c=4H#2i zNy7Rn-$*_2UUimS{ziK~Vh#P@aXeTz>R;p`z9*5a+qGGp`@#+wb;;B{_#smRK4ld% zRy=&@3BX#X>0RfFdI`pB?8rl0Wg8}Q9TtN6TzAL*y?Qn3)JjD9QYhDFE0&wV7PlG4 z<G^=6dv(jxN(9dn%j3xRURlTYS@}^vLi=&!vg6bFQKNNj?|7@5HpQ0hwsYR|5o>g0 za?<U_S<}8*e<?ZAoW@zzeyZ;BmNk#JKEwBO_Zp-}^R^d+=*9O(X@S(p>0)qvxI48c ztGU?V)e!u~V(KG}<)XDjVKy6Vd*RQMw&`orY{`K6hU@{%%?Sn{4Wln_f5`(#M15X` zN$Q|)xH29U<73*nAu(&vu6)sr+>wvFie7mG8|o8^#XF*g-sIC@JUF5VvO=`SLRh#_ z88ckeKD$Vl_)^~Je!Vq7BHZC3u*YBG`@SyH0Jb9hHH0d0{7mERbg;B+){F%Ja*2|4 z<sxa4%=~Nv^3bJpfhM5{)|}Sy-RO*L71C_+%Ld_PjYWtL>8i1!Vd{dJ0(~Pivq{qU z-PtTPqZa$}iM?o!#dsl@W0gFjhUuf|cJ(Z&Cl2wns9#&sa1<HKiNhv#GM+}oEIb(# zh|t5VsO${GAD_7nWu$gMh_%3=6Z8{s5g0~>Uy}MkFOr5JijNS0@!KDO8bG)ADBY*l z6A8BwvkfT`-zJc(IW~KZ+4YVK(#krlhRxV!-q<ew*cz=^`F;$Q*^m`7PlWIU{|0G^ zjH03?NaDl!P@TVLe4q39@9~#?qxz;NfGtAI_E``?auF=aI(>#tEn427-*NhLiqkQ; z9vPRXu~%5^Wga&dk>B&+StUB{hGM(#PwZA{Y);$lft*^ccDKjPw@|w6#|!rR%j?-R z57~|lABGihK=kdhfMX}V?oo*y##NRV0F-5D^0)1lXrk&s<yNyLV%*WR@W}+$mwS+2 zBm9By=UL`i>;G$5;PObt_X}CyCS34bw8cJhf6aQtow3|+YtkxtQS_ppeD#y)qpNSh z1<~9d{T=%XA3I1NyQmubN+0{E8hdCOI|&^72pl^ROM3Cx>vFyMNE&;{9(#x$JMr3c z;g-$hmd(g^<#FP;ZTi5~XP&{XymsDsdc82=^KL#g3|m@RpW#?AI5GjCjXh%H{XOb1 zX@B6Rq{^>WU+qJL&zId$ZsIUT#<SKoqb@)8V-pP$3rnoV{#MWUhH>F_Nmy%yqD2o~ z%ZH`!_Do%6!r(n_WYi{!r8+7ZmT~AEM5dA3WB@yYL7@PPx=|)+-E8#yMEt6eIFvX< zreHH3pNUlBam?@uA%a%IR66Api6ov`fh3%H%+Q8WrTDf&xSlmciS&W8?f03|)LbG; z0%OQZ(Vf4tvQRm9ic-nlx^n_2D(znU_yUMkqq|M0cwU6Fhbd#CSj-#YhoHs4Uel8M zWe>&+t=QQP!KlA9FLiS7BsZyYpEL*cZk&Uk`d5@bV4%Ol7(rP`{t$S3{l}XD7itEU ziiL{%<91q7+MS>WT(0*bZ~Ns|nMP**lC~sjtVZ;fSUw!bYa_}$XD++2qb6NKe~O}* zG}nW+nmWTxgotjsTVE3wV!J((TE#7)BOURBuw?#1-6(1N>1X^fyw%rV(_khrr+0j6 z=}Ood8e)NW`yyzey18DXZF|}lG)w98)>xajHT=9fh3^ET-?Xi8l36?r?n~nhTVisb z?sxN36Kb|QZEp`(TrarX-k+~y3uZIhUAtpnAMpD~CFSQL20C?%tRTA(wGSnUv3TxN z(i&cD9#=Q<$N{?&<LetweA1$iSXCkGn0n<l{Dm)u&v>6Xj)eb@pY<4-6^MGRd?aB) z>#76IEyn}!e(Uz2J3(m;(h1Qd(grfUZ+J{?o7xMl-GPU?PlG!G3T$x4PEbX6y%n3m zEvGRp*Z<J3Q^pavbOqsk<&>6bM*ETXYgsJ%tOTtuS#0pAbE#-ww_K&!X4$%GKNy|3 zto&AdS<bE1re<F$dkoc|YmP)#?o@TX9`!rv(Q$0p4%fRj%KGwN4VDgttxs{^4NWTL zrDA`(PX@q?UH(|VN5G3NHc4(h@16c(w@#@$+S=ry0kg6Eqcg|q<@NxWwNZ5AP3NW7 zsB02KG_DD^xyWoA)P1qPY{8W|Qe%g$v*o>;x-6k}$u(n(p`g2Bf~aa{phL@Y99iw; zAWeeVgVh#ff-t$aE||{O1P_sU8<$USeCeByI(nNE*+ui`G%T}j*p}ZS=+q;I$c*KN z0rgKHGi+8Y0VU&i$PBO^`xSAfCw9!LNCVscsKz}!l5&jaoTx&REPb*jLOD}{GZ_Gv zv90>C1apt@)x_B+hYx`22T~3nJXQ=IhHU^x5TB}t6Q^DU80o$U%eG-5pNbbz2$^c; z3`>vlg<R9O@`;!;;39&5a~%*TB#5fu(|0yOH~=joHUw4?D0pCmE<S~Qx!r1`z=rP> zFYaQGR%nu(!K1$gB<6!yN|lashmFk9wp}X@kI(abPUj0AxBKIJBT^YzX0yK0gB%z^ z%p2EVNQ53>DD*IRB|%YK@k)0}XDp3-EK4)h9h+wt+yoaA&V1KUrdQ6Uh?;fvhfW`} z|9H9o0}M2YF>QVnTf=U2G_IvH)m@KwzFxvfFTKr`btDT!R<s+xK9+u{Lr~V5-Jm*; zdXO{F0UC99NGx?Lsd!7NBoMqB9uTyLu4my@?0~0?kNVPUvD^Vsex^E(@4<sr<h{>R zrMQE*T{P}phs%tSxsz+bxB1#0KJKfoZ_edIc^g)iL(22xxksA**OWUJKT#nBC*okd z7NL}8g*<Ho9(R^UAsZA9EC}(+-7%X$(iYh4TU~vLi+BkcLes@4jYW1t)xxs1Hda|h zEitBxD*1jUW7ubGsdG?=Kj;<CeUk76&!m*_1^2(K&M10#^tZe#ptcZuLI*+yw2DXX z_*kb=0uh>9UqOxd`5+)>aIH$)y{8`lVHbnEB|2qe+%7@BK5~K0rkV=gFe)e@T3`Pu ziJQBO>>Q4iHbhs+AY@b@ZTb!EoEKs-y6QUw*nI)~ugk{_*rkHN0uc@Z?Jc}Ziogvx zptBlPC7AL=_;~Xlk+E>w{Y}G%buY5=SjS5OS}2K5z43nKCT6?!ef0jD22=?9_Vh04 zVMp&N3WKBpN|Zma3D7VLpZX>Ke6uH7J+pmp?1#0-Z4^q$ajh{l&qUurtl%kN9kX7A ze+x~)Y+A=u`tSwie^|l)DFz55giZ+BsZu);%adfnU}hHnF`nP0Vl>d`(fk|6bR?kf z*Eo_qKRlSU=@s^^)lBz$k{%<_*iI$gW6BJZwz=ZVul5`3{2r<fB4fK?sFoO<1nWLt zj?%FfCs!&}8^Fc{LNH#JU`MPQ4IU8eH9m)AKEjC23^@lQx@Xzz0c;9e%vHXb!tzdb z!H3_MV8K;~LuIHjtPT@Ct7?K)Sc0s4(3Sj>3tex)e3kvUl&v?xdz*5WS-WO7PV(#9 zi%%#O6w8Ap=SJc=vRoXDVqmfxneM^jyU|^3d+;&c{8M*ou(RgoCEJ0`d+ohjXVga| z8yd@TfuVMt<MUVOMg{L}=9}1F_5f~RqfN$Q+auW~3naxyE=H(noLA8H7Lkfa1WHc! zEaoT|B0ORen|tm<shUsq!>F2X9wGs`0GZMmAV=PaejcJK_*AG)79u^o%1hkZv+P2w z>C>4$dK8DP-SKSv%Bu32zvl1*uU4<q;pMnm&-eRCt!(72vLl1PH6dZB@+worX&9e= z84?qF&}X6P;4~PuRdFKsr?t>5RF%he#|W$-&tVuK0o9*o2h7Isc{!W)tH<#F2X*87 zXv+fU0Y`L7r-m=mse?tIVd!lnp~e(=QQSUnq`4CW8P*kjknt@z_5;7F5Q;Z38W`Np zyx27{v6~?y-7gYkI4h+}ePP?6(>IrQ8Wz&35L<kCE+X9aEWCEHU3|J8(nCp7oa!Aj zgTi!B_hZcDf2drjyYGM)mQ==D;p;(`JQ3@#LdHVtA(T2SPehlRBWz!sH#{@tS463u z#n!Oon=4NH?W=2QU^H(oqxU1gXj@nfp9<reN|G5A)&0q;v{iL-pla!fE9twc^XHn- zVfKk_<H=p`c)vXX3Z2Dhkko}ny(y`FCw&Uv@ww+O^6xRrjmUMnxu=o#CD*l&#wE+^ zyd~CWocA_&tKlKNWt!w^Tdv*`t+WD*qVWt6mFIT>T1B^O8eD1%FbAQT!?XZ)7a#%R z4LTpJlvM|aic#%U-Uq=9qGo}x#5b#ruG7rzdGZAoZ^LZ&@zP+TbZSk#!*r!1Cd~DQ z%V#g_!p*Pe=R|rk0F9#aIoJ7l23;!*0#x{&Kj2loLxUyeVQei|^ZSu6N4{||S=Yu< zMxAQOLqA5&CQIdFcrVFJwO=dUSMQgG|NlVE=zVEfWe<pKfnMnfc|CHiK`EU6a~zu5 zgcr*h*hXA6b^NrZ-8g4X%*^~X(~sXv9h~1Xq8}n<J4h?;2e4j;+f?D32YU0Ey+Lou zIyoMqRVx|Ak5Lrk7tvskm0=IE(h#>Uz>4;RENa1NFXHnPvC5FN>Vc?XR^dYM$F0I) zz?+QlUD5cq=EGnfz3*W&sr5<E-skpy!y@HhNh*)5#s{@U3WdS%aSHVG(2Y_wLdI!* z?^)fG%x%jPR%&}s$khLfr?-r1D_q)!DNv-i1uGUP?(QC>IFu47?(SNwP&~N1ySo>6 zcXy|_6qh&WJm>rNpS`kHe$3qW*dDnih$j$(TseVjQgt*dKT!l8L(`{evpr1(hb1tw zWh+B-HfQm#qIcN}FaD1vBI|X>=p_QG=|{sDoP$>V5{~c9lr;=94{)^I;+0g@0RGE{ zcu8V&w$IRClBW2Dm78jt)kz9<1i{=6<08lJCQaeh!bVRtlOyz6(4!06FKZ&>^?HM< znNFv};;ko&Bf}T9QM@|?8ALKV(dr(x@`oNaS17#s8xtX6Gdw1qpsTdyC4#ox_H*`) z7|~`6N*UQJmi+%!L;k-^qJInnG~1}MU>GBLzYDE}F$GoDWXbbK^wIqS84oZ{d-j{p zF;vT(nG+m^X*q@vYxG8KFpO`O%2w18H}`aG&IGAAX$8nz;IUrmbY5K`B#Ii%ndZ!< z1t}d$oq2o#5c*Cn2+C@FZ$8^RR4e@ayFTRZhDz~3vc*+$I>TI>&&5q~LDq)sHuKQ9 zYD|ZX<D9C>C-bI)F7N5%->X(4VbU#Z3Qtv2A}xy%u-(X-K6)mS4e$AFs`HoJ2hYLg zut|S>=cBqt*<gc<dX{fQFL=s|xmO4C8|ghb!+(q$Kcq_?>5FrA$b89{D`x)n7p{Z? zb3PYG#|8(-FB4OuxaHA`m0e>W=En!eoKoVAqdyP#9r7<Tbh8Z3#*(K2d#8^eqpviR z<(b@OuVasCjn*QKhG*wYtC8KNhZ}01Rui9vu4cFMHp%$jB=&<+b)F}_*%X%)Z*<mr z-S276FN5S@a|gVZh4TKWwYDqL+JDZ!lVZmR9mt#3c$^5`MAv>X9_oB<>6&CVIr|-? zXKdi05tEQrYa2bsum7;5iZi=fsP-ibD8_aoFK@RQwTEXn1T9<L9&{HBGb?c7`sIJ0 zF0)O2b3U823xW4wY_<JKV*DsN&f&Jn@%s2=k&?A=efDsscQ17`9hD}9=xfMAiA14z zGk=u&46S!|!U2ZKRKoTY!P|WdZJOR}L%$7Tn&_Bj=xq>pa6HOBm#A}ZI-(Mx%`?2G zqjl%qmvHcy2Y+8h)!Lu(^qIXR9PjyfIW6d{6<4f@<~dP9RyXCUU&34<o^n%Ry`)GR z;73g!4WOtZDzrLabbXcc%O47RgUUpmk~w8;GXmEq(Oh)!u_V`o%uB-9NS(=`e<d8f zk(nNBJdE)N%-^iH#>d2`-J=2T0euM#&3!u!lfm&lf=SZK;j>QHnoaQ+t?1xQzK&Lf zrk%#hIHIP}8Y`itsp6_ev3lhw%KG0fgQ^;gF5BNoWzLb;0xVxWBw(hI*>G~<%(1EF z4hZ}W)K(uG5_7r+PJNvN3ZC?r<gCTF<+5p|ELSCTY2+=)a%`q%r>c`&;x^dZlq)1~ zSvVz1D$bEHu^A2wIKk&)#){yB4;W3ZpK+AG#kC)>iDrq7zIlJ6YS{5eYQ{tIh1Q#~ zt$b?|vNVROp=Iin<Tq<J#vW+)sCWGaqcrz^<sf7E8FFl5*!q2WFq2&Q^^Mr>t;}(} zsL0G!t>b}w_C2=<KM_F_=Nkh`3T9+d@O**HilOMEk`e*H0Nj@=a=^2DUilJ5H3S^J ze`Q)+*8ydfA(<^UxNoMt{Lu$f**&nAIu1C}C~hp@rG0Cnye9;B$f3dorD3dvQ_0Rn zQ?eO5*bL;bb&0*Ttb7dWuSZRtp*LrT!7{%z;II!gHBaEQLlN=9599`Z2__f!AJ+i| z&=U|abC~Mo4QWD6F=aiH2N$3wN^gPQJl1$AQbQQ-o5_J@yq4c>q|7v-g?4m4B~Xvk z?K42di`r^eg5%SN)XUZnk%yg!&>kJWhGT4d8@36j%c&7*2?o-F?`veud$#W%o1R(P z_fu*n8R`y3FZZ($SzI3kpEFz^pAO*S|K*kRkf78#rn7A>%geW_6|}Kh4sNk<Kd4oZ z%_HygwX56PctkFX*=vp}birO!*Z&5kin@o_eM($J+YcCp$;FT)@?~_BsOQMlqv$A` z$(d}kjr+rafv)SykoTn0GxC0G2LGPI#xZ$(^5Mr-;ZMEXe+zRcd_P}2p}l4-L7-#; zz~k}rFCR}8mP^0eKT+~5IJ2{q{dzK(At#*sV|l(1rDj`>iMpRdn=j*uKAifGZx<}O zf-MvxzW*Y8mHm7X@K7PFjMvZartOza)`whot2iRMf}Li%8@ElQACW}l214G@!Nw!u z^ttvu*S3-?vhONnQ8*&dwj6GP1H?8GuH`mnNiU#2mTnqogGFrj4Fiy3FB99@0J=0r z`kig)1UDxu9q0qBCiJ~5$dD#yngKeeN^AyJBX-^rnvZ@8DDXJ?cGY<#!oJT-)Ph3T zO5q``4+L+>YOs)7zbvQQ1yYy50Z`tfO%YhBZsj#8Bu%@NCE^>V<8@8Wr)q8;*3#Sj zK+*>7k)A8A$?dZP9xu`zbwrIUtej-o6=Wq&M<tawm9=OI=HC7EN--mH`PYT2Jc`?5 z`<as4vYZ<|Qs;sDncvRPXu8yBaj%Qpd0WzC&gs8557nO&wJAR<)oKYO@eU;XBk-m+ z=-+LxD7<x{&M`I}_GR;?HiH~PejUrKp;>r^EF^I}C}pUd8a}oCy_%#cl|yLZB(9Hy zS}|Nm`=!9;K_Mvl+$U}8(hinV2_xcBx$mw2^2a}CJs-7gfr>lL+uk@4VVtgNBsoa? zlSF5P?`TvdsjfhWQqja?+eJ<N&?W#frqfI~+U8hl3sg6=S*302b<=@1x<R3)4B~7S zA7$cYBKUwN{Ku>~cw`Tqlt%F>#99ans>XJuXO&NO#I;|8F02U!TWr^2ef>b>GBe~q zN&A!@H2#sXx#@oy|4HuPneRF<6ZtcEYY2Iez4YDt_E$^ejn&RqgIL8d4{b$D!iN@C z2I-I`L89u1!;U(Z{)vvy+y};!!-w8ZcR$U}0vz}%hkualE{MG^qI-{YhHL+mo$6ts z)bJsy--`S7k?eWW4!`l`hE#4vy7FkLsnm0)iBzJ=!|V)+*pte3VxM9(OVpjF0(%36 zb^QH0CD4??icFL1<adHC_(Z~4I75gXn%FTm{E70G@LFhybq8nE2`A4oH)x*~CH%6b z_agC?r1kI0yRJy@?W-XR7i`PepO-~1VnTqyA5iA`gyk<$1=XhalJaCIII*muMNG;` zbvsItD{uyVU~*?Y>a}MEXomveGpu#`5&j4d3*uZsJ+G4$1-`KWREjj3P}B2=R*;Zm z-i^Uk<>mt42IoTc5X^VgC%YbWk3?o@t*LpgO~CM_c7^HWI_z|d=q0U`Ap8JfbTUu! zitDC@B35nSw|(%y6_^nQ*M5fnLmte!jPA4GN9{YtiXDqm4+RF_)bEd+4KIWQid!Gt zYwyaizk|P~_z+k6=d^Dew}sX-OvB+^B`zZ{Yjw=S8ybQGpxq>eJd~`4AzGfVj|{e2 z*~qh2$dvyv$^n6(|Ge^Re~L(gqQ_!nI;ZQA-GrP6O~~>Pe0?RThjx=oD&M~{e%&gs z<<lg3G)18Ikkyim(?U*`$ZYypYWhaWsM=hizD3p6yblW?y#LBL!)vJ+7oxdVoK$ZT z$kNyA7IL;;om&R&xY4UeNl9o6bcpDzGx$77^P#S~7;gUY5@9n+fGWMse))gI#w=>f zA0D{+%If#cp#N^rG64q|U<HA6eWBi{dMG(|9(*nnuM<-K`~1~B3C`_5PGSaFi75Y_ z#LUQooy)i^LgEXvQ?||D_kQ32McD_)&~+1R#Y0rJOm`!9G=Na~iDd?u8`G8+tYkN5 zg--HX+gQ#q85?4eo=d6v25t6+qYpdre5tD&9obRsYw(#43DueIBX|unhbLAkugON3 zRqhiHSo&B_(EXHP`5^-B^b-|*Y;JBYZW28d=;!;Ce)N!O;QJUe&&Y=6TipE*-gJ|T z6g`I&o{J98&GfkEl;?97T$y0a`jqR}X)`%R;w3*}4H-@MQ<odt&FR?5@KgoMxgL*= z9#&p4BTP5|8x%Kd&WTONqUZXKQ<x4;3>Vj!>pxgp|3#**mhr}e1Mp#a_YZ|53kT0o z|7L3S<)S~vD8hXWh7GcEw%j+<(3NYm!AY&iPOD_+)?|M9ONHkjISgOGQDN4qfRSL` z9RBdp4MI4})%h=-Xl>?(N)&MZM48dK^w>S-4GaJ+`MxD9xxK2A6UwKsd+U<4VraIU z&unG}|HJ!4z}(my>G@!k;~d`QY@K%y2cH<{CYfF`XT*1?STn;yoAj!&eAZ0P<7t(W zYzSIuZHm))NEi%DE&cW+-*7Rd^;N}7syzcXD8yvp&h`{0L{JQm6wXuNQEJ$L{<`1D z4<?y|>bqbEb|p7fF&VB~8|wL&Sz?6%ud4+`L3o9W{kdlne3$C1zrHV~$Vn1pqj_E# zKRf^V1`}y$+>z6bY~r13SPct4bD~bwa(^$H)xEQf$j^Fp4?d}>E~_5dV=fu={1u#k zu4E!G%{VM8Ie0XBA@alq>~%G$4QcUfSyNkiHg%U4@yO-#yY|^3$x^t!yIERImfMM0 z5g|A8{d&9#8*;sdUMdn1;oV;%wY`igcNY{cp|nNA*}p?(Td$(Dow#PIx#Axeb)Ep5 zK|Y->Xb|xCEbC4KkD=vYQO>hO-NeE5^lmv)Xr+lWM;#6Xu(1j92+|v4P{9r`+GB&% za=y>#UeGm?l+m$!?oPJ&ZihiOy>-tz-W4xHq0OiZ<&l;p#6_!GKaiF;sm9wdZUm9? z9wd+$F_m{=(zH?bvTaWt4MZOjJgey4^|9)i-gd9#WEEu4u((vMaO?=%X%<@e@63C( zP!dHvJ-yz_!icVd3R7Ad26mhE<^%pf(nUYIYWTw;O{3gTvZ^HHX-4QY)}Vmks(-yA zZCdA}mW@`4gr5{^)#kq+%xN4UG<ZL2rA%2?h2KO>yx};T1lxHGK4b*xL$2H$738F? z2HQf{XsJlq^|986`bRYf6p|G=(WO*9Zz?&YzI2+?E&~x59b3v{TwrVtm@FGtBwNEX zF=YdXumG}Fuj@6HvprNI+6Tpg{#BwaDU*++6BHGHEPH^lXd20poeOmsGe6WgYlbF1 zTUwOI43qmg^V$f{EO|ZTb7`QJ0DpSdd{iiW+{`}q11?Ld%!Wq%5I9_;Hzxo~I@~`r zEf{`+EUoNnV-Y>j4xpV6P@ekNHt(e7o_s)8o%p~#%B+1j05m68WxlJ)t*n-r=EDGU zHU$pdO5xCv4m!%i2kkR~@V%bxm7*e0&kr$6B$W9-J?*b<PlL<Xx<7xmVhFwW_lTwr z8|);Hn2vyFF1h#o^%>HxD3rP}5@GO(2*0&%&teFJj?r6GBPnFi_b)so9`|fLc7!j` zT<qXY8wC2|cR&S;3C~|3O85PtDQE>cz$L<&M`s&ztLggY<B_2sbKQ<}!-v}~_MR~m z$`pv(G(;_ZkYuHP=&`X)XcO=vbxZ(>w#xCsy?6~J96wHX(eTw775M?*9P+rxHrb$t z)$F&n!ruq%$Je-@Z{!0BY3MxWiCe+{h^;XrN+wLH2y&3&c_GJCIXOmjRFRYq2a)2_ zlwU-BM?u+#fQB}#^X0{620pM7WNPdDa4{pX)k$#6J9Ob$=r9^emyZM?g^O=dtcQJo zP-zb*aywzCqI21@_qDI$=c%HC^K<lLVnX+4&R1#U_NB(Zr)gDUD)P&J9K|}2d7ga9 zTi0=ACI9_I#=>Y=vr``7WMB7%4OMkI2t@R(^OudOe*9FXn|rRp)UDF~_GeBtnaN*T zPU4N+ld+F6O6|9Qp2I&t!f!grvu!No5FqkI+^(Pk9~6D8PF4(tu-H2XlrY5+2IDUr z6g_28@f@FnMPo=<=S6nB=0n=^i+!b>(PU=B+v@yJ`_#9$kTydC#!A_yKg2Dus;xCx zAx?yl>?pgg<^MWra(av`{-o6QR1obKQ@bOcpsll+X1G6E+~b?yEYCsZy53kp)@E2m zzb@vI0A`ZYcOjo4R@ggSRCmgC_>RkMJ+4}9N0pj+Wr@2QwD2JuwF6l#_?)%uNte1m zXC%w;a2MphTb+6PDeR}`yT~18TRMHop7v_3$@lpA=4=SY$hTuDl@Gy=?<$65bzkcx zL=P?6wxwW`<}QRpBSD$3iSwoa2)0(mXsA46hu(vk!FE=Q>_-7gc46Je^NgwqgrXVi zC#jLk%Qj>_7L;XyEIom&L8>U!r92cy)$1i+liCB^$4NtUle^?He-hp0D-hlb*P^Vy zPym9`<XGbleZ!{;#(Aubu8$NBJm+||u`E$2dYt(MnC~>cHU=@V@n^k^7B1#9E~)P^ zqdXTH7T2D83(FE~QFs=DnbV6lyKj1>xDzeSMhC&_C=RHT?`dizQ4JicH8uj?xpPXB zvVuEClZs(d775oPq-6&Xz3WWNWFvDxJM-k%1losrKfsqzAMfxOon$fMbWc_kpDHU2 zwYOmN%mJU-as*~oFIQJN^{bRXeBIa|KZ3#V2wz(x|1D#As{gt3@)%peQuoB+?8hqi zJ-P*OTK_E-B7xP)JNoR2_J=~984i!TbS#SDU$hYxjh%?JnrX=<LMfLi-dmy=ih0h+ zj2VU|(_Wi&S{eVed&W4!x6xhvDuxiKR*dzSG!C!_yO`M~&@O+A<nZ&1Ei=FhUMBU9 zAT)8)nOo{F2kkK1n2iz)e{NUGH)s5aeuc$Ln263o&PY;`VZ?()5ZEWd4|Vsl@*`YU z-TE;Uur(PTW`~oN!ekjMFwMW9!45-khVKLnR%>Y0u<rsv8e?9EASkfVBGYWyCvW}q zw~pB<JG#tXc~)4R9Anbkn0^ek+{D~3Q2q%sE8&;#PEplr?ayHDZYuRP69lH3qWsAC zJ+-tLV*D&GBN)V=QJ{h6YH(livSi`jUtpFF8XP2~-*99^=#CBjWUXS3CwxsqS!hCN zkGRjFSR$q;=r(*P@yoYo2`$k@`kq>*Kd5H(&0q^zW7^Pr<=5en{Rf@#<&nxNRS{=% zcd?4a1pSX`#k33Rg}V50yJD3*@&VUOmy)%C__!~^C#7t&0mZ-<X(-Oed7pu+VS?35 zC4P<*m&$};rNu6fr+r2u9e-s<22sleRuWdfA)S=9C2eg5S=8rGP|1H65)B9Go@yqI zy*2-JwdEtayeIA_et5UrBoq!d!E_DI+9gg1<H38^V9b>frsXm9xtH0D(bdhtlHD95 z&H+-Ak+^H!*>Np`dWP!pP(-lv4mjt}WBAVG-|Jv~!RxOcC`9ixo#!<&!~5#ohW{2< z=99wW6Szhr*5&TIWsxeW1z#JD{|x-K4;CD0Q;AD8|I7=lIP&|g=g1TtOno73fxPb# zoUZwPIS7Oiw*PJVi#i*wrNJc}<b%G19UMg~`h){Rsx2nX2)MuPC~irLcZ-s@^5f^S zxYx3X_0=<CVv+H<i`*_8(%l2Y&l0(FR1ek@C)|!p-C3=nxYA|DdlLUv1MkkdGr^b{ z3`PqOUf`4ZeqsF-8thDqz!*zE$zjKr%3gz?j2hcWe37gy_!Q(vbo9<8rOUUc9n;)z znNtv@ax)*%C->2|=36o~0Lxmz=RJ+AZEVS={fhoZNf&H9tRzIpxZ_<(%~*Q}tLB?u zF=#MuhERk8$N~`E7s!*)9orkF>}ssmB}ox?`T6Ks8*Lff7{S+PWDg&r0{C42iuZN_ zS44g=Ff+y*Xm?X~)T6ZBOsGw?K=_V7$qe(k5%vH@)#`m8S@`yWLBp0f5OQ+AD+$C- zT=qZ6)H@fN=g<;<wAGYqAL*4>;YX$3Gp;H$LinPBqpmOid@!O7V~S4jzto7>4*8Do z1<{<sPz(YeAM?PMG1m%$X5xQ#9GmGiOe_>t=@zt`{PVOiZxa9$-}JTp;b0$>eAbPy zlqC_F9OH+5GR$2I;-UZsF7^FY1^D<SIrY7fFP$z?prM9eW(K|bWV^@i0F3TQ{}&8L zs}mT=r5UQw0(EDP$nIIBJasDOW3&ILmAR2)C%L|SJ{%ihJF?798r3G8p@%&0@80;p zh<%jADU6LYZ$<DOFTt;&;XQCb7p*brOb$V{jH{ww`5EtsF{=%GvBN5IuMZtj+yZ&? zFNz<=M=iNh;~HuQ!u9)KOO92yd1!waKcoGWQyr`V@_Um^o8P!R{3(>{a<0_;JZoiH z-D3B-m$yE_giG&HPU$dv0VUGHwG4SYpT;`BAC8to+As8vM_MRK?pORQ&R=k^gTUWr zr1(e(pBROCVim@QM(oJJ@ZNO;Y*{x~*#7jDmZA4ubcjT;)u_ApNYV~oki2EBejpgR zo|`}+n<q1bz<H}^SX)Wt`{fqF(x0WAfPnx#2W+gNJa0;m&sacb+1E|DeDL0WjRM_i zloQ9@9<Al4BC<87%t=F}Iy5)OuMEx+psm4=%U3M)9^pNyi?Ot`jXveBsFG~F2wevJ z=q6jgZEX6RHT|+e9tU>e9cYSww;<|9M%EzZ00f2LkIAx;?OX#|kR&561zH+TK0&sy zc&q0-3RG|*_;4aU5rPU(|EN#2;feNN)sfiNID;HDzpxAcMGSyJ8~lXBm+~2cNf0<D z!H)~I!-{`QR=l7%Hh$cs#&2)=+nsn(i9D#B`a^)n$Izh}>8U=AIj;uUJkV`8&NuT` zgicJG)(ww=N{o&Tt9rf^8i2*sD_vR%MPZqbpEZ^uBldfalQIOvHs|`dy4ggnX0R-t zW|!O{6Mu{}vg9+hi0C!Jg~Y7i1(Y}hp&WgP?+-9N)6q?0AVL6?9JjRs7t}q$<?fGE zEXQ8*@&TPiG_&#faL%h;U)ZhC|2WVPC8uU>DV_5V0xN4ik>-W|qfQR_G35dHy5gZF zs%`2(=qA%x!9xaeXhn)Y7?KYO4gGX|b!*%@==`ga^D`KJVgb`yf}}bB?czi13Xr90 z&00imz4wcYbKjr69>*{DM~nEb1v7uoIW~))(><>*CqJzl#PBTM*S20Y+m_3!TrQ?7 z+i&pS5B}J1P+y?!*hV)YztPcPW6u0=1FP#I?1()%@Oiz(Hs??yQixwv54lp51n{+- znGZm*2<sWbO4VD9Y9gmkFK%nI4qaeF=b-WSti*=c$owz;wZ$e0y)@{HJABo+GmE8v zOX1FtmA<d8e;uKWCFIoeTelkldnx*c^_j@^G@z_+w+dd7x*rHHMR6UC-v0~a(;2@E zz9XE?(4ZwWzIxj;=mbPrApHj=eC8Xt&zaBWn8COflv>WJWgqlOQ3AZDWtNmd=GC@n z&Y;IQGjftYj-Nwq<y-Xu0(Q@OH@DO;yHH|#e{btlJ7M|sBO-?g!>AgG$sxJ^Ak{AY zKX$d@)_LDPiU0wEG$zv2n4+$tlJgFRr^L{`uh#i)LxD5^+tiCguKo*(xxDF)99{}y z^nVX~S1je}mK4lq6#D$vuNIiN+#1Nypcv!kfs~qLp-RkIQ5QeCzSepZNX>8mA6?qZ zFpu|eSSB0yhLAEQn%Ta-dW2&Cj=`sq*f*`)Qf%7O{b8Fi?p;AO2&A<LL<C&P(!VdJ zo-q6R|B}kal(+}OpAV2FH@KB0kR@*_QRi1*V$7WoK`_nzBsdMB$n?in#)n;Y(Q5ft zR&jQOjk4ux0-~&7efTUSyv^QS9#a1~YTKzY97gd=)0^)In@|rtlp*gAa<+piPl?O$ zQ2XkfWq5Us5ECJ-#aqhjaj+2wF+4u&=Uj(}&|!ck9jgw7b?b~|>$ht1$WOCl04zKC z(}UXG-zg$tjfI!}KorHhbij=Jd=-~L4Bp{S_GKW7lDgGS8-oVx1tybA_L!71wM1(B z;i=2sel8Az<rMkXN`59`mTVik8)RyxqO}nQD4e_(M!cbVXuXRajfT>DNOCekqrhNX zQq6<wx#oirR*?>0AQ!SgMXrwl7VIA@iX{yfPrkF0TjtK_yQ|mz8u3{ko22x^1xzke zze@2gt@5*?pHJ|h{=Q;<Y`h{$CgfPQTNucZ{RI$uVC-*KR>lW|q;^=pjb-nyRv+v~ z(q>+IDt_#ZZ#4ERoMU@kxLO3-R)^Tx?g%yJgx{6j_UqwErY=$gy0b)2NFkRG;Sh+a zDiG56p22FiocLN~I8lSfn7L1CiZ?63=r1H008%zZvd0=C_k%;=Z{+Sy?6z^ImAyId z)jp_Nb`YdK;3-5K+Qrvc?9h`2=Xbt0_=_uwDJcI%1NeEXMb#j+#0}SkoJSaT0UKzK z3Eh~q_@-4o#V7@48+Q@2*!5!&9M}R~g5Te2Roc+%mmO6&8XJ+$9KP2z%4Dy(_wJvo zNo=~UvaAf?L%`z#J*e9g0KY+QohP*_I=|X}w)yIzZbb3t0`X81lLHyq&#f3b7oNHX zq6lc)TG%?rM;_lrF>=QSIE;-e-ao(r#Imk)P#IQR;koj}qWaX?p!Y$`H|_ZY@Q8gP zOf~Rx(Yre8Xh_KA*?3M4VA*;picS7;TVh_xA+%@Q+z}bN;vk7sAFJn&+%J&m+jqe+ zTJT{KP?ZuPs{DusZ_Ur;IP3VTB@(4nCg9Zfqms&Gs_$>m$i&C8>Y>~;WOx!H4~t4q zMp$(^%*d^nZ?K4$!+dbeOt2qNHu-DWi=yZ7zvh?e8pKG`6!G*+T&mE%fdkrF>6Nh_ ziWDmps!gUGvNAWby1l<%B9-I5-%<&pcT()BHh}|P#w*nr#m|kg8FM}JpdP(Kt|x&p zbRWrYPmTJA<kQB3!4+D;Ug<XG_!iDRC~@?NT6hOgMwG@_C^S*M3`Byk28yqYN8rA( zB#;4y%>`IWpX-&4Iw4&8Sfl%9Klu>Z?Ii<2Tkzu(pH-3w{iWosPi2T#S10)oUY!Cz z5OPMZ0LT33{H8M5iRDtFnn)Ut{+&2Ny*t-Gb|$`aR2Q;ll;Rys{Ot$<1J`C(_)LU| z-^nD=^3Z=!{lt-%q&GQUJ?&FIC`j#`LZ+b_N-LIUVa&h)i2dG*dGZGh-7`}FKByeL z#xJY7fCt`|AgMD2dYvI_>ACd0u>jY@2q}k!j^Hq59bsBZ|F4y%WHFFsvi-EWA-N#K zaVtVdR|~QX)|Ort_FzJ@E1cw)J_Vy17&=jY%C1}*aQ=0WFFsMf`BJD1j*m8cCaOBv zFYIVz#rOw8V$}V|QzC+H8fIzgU988RPusX^P@4DbT%n<xBTXDM;Y19z^_Du7x})3{ z{MyErEUb+jwpS?<r@L%~X#OY!&}RA9ra)?x<H8PLN>z+=ihlpa=VjmtPO@U_**eB$ zAJEzU=W2_}dSNi(vrZ}Bk3Q3{%5?=bb~Q5Qh58cy#g8&00ihAnGHLv+)`>jvq@2)H zR_S$G_G-O5tqH%BIiJ{?^~=Bb&rq^fi1X-c8*>0aS~7SO?Cj3kb!$vnvDs{g=p_Fq z#6>ek|JzDwF#IJ>GNB;Ck6+)E+U=ps9hT)Vs*$==Lu!x`XM!Prz|B)%b{xj<J6eC% zRY(nE5HM&ZB}Fwbdo;TnU=ILC!dJ7#OnvQ$pRym&9*JTOTBG`uwIQpWxmV3mXv79v zdfh}#z|RVg8rr`INPd>aRw8x?oZtZb5URB#T4G1btov|30Q{uutg{1NeJNPy|1=CY zq55ENaIAsh?JTX?^-0`I+#@clpP-@d<|#C?*i)qL0k-l$(>rsGYh!fgGnVl~V;f67 z8~F*dTR4HcwYOxS2r8#75`IT+;K<^mq&`d~3L6e%cgO0LD34pm3_!m`Uv`A<C0=S| zi0_BaXC<h(Od&%65Jyx3)B7V6Aan>v9tAh#XH6i82*YZ{)PK<Ld6UeBR=X>jX@|%$ z7_g#Nm`8WxF!pb^n-_Y_<=}|bqyj=jJe_+r8vGFHbB3-nndv6)Vm`kd<i3db1kY0= z&hbDKZYWMiI<UWrfv8yJao)&D(3Tg4?0ES3Pi$}>{Ld5Nr6|2;CjOls87)zbAp=n+ zt3KD&nJXl97xhgE+IvJcW?H^pIEX&o5|8Rw1BO`OQgyG}5R>}*Jq#AW13(m;bp81i z-`3}?xMiM0c;@DS%==n9)HYm}XMXJ3{om{zu8YUqe&{@k-;0i`N7kA<^cYXGGA}f< z%AbTxRBvxIlEd459#=co)Rf*64(u<5x71RU4PVv2`Lt95+184s4(d5bcn;}?mtI>+ zs{<aJy*>76sib`M3j{BsIRt`e%wQ^U&8^B|DKFYGI)WE8Gu_+|Q+6yLQ80V+K7D-h z14ZY6g#NGq=(x(tB_~hN<pxqO_krEg8ZNnPRZ}$$vW=)zqvloaxg-$#i!b|m4+Vd| z{T%Ix@c5pyZWXdPM13*o-H$H%(ctw(5r3YCQT)Ypkpw{D#vbLm=#KGs1NxPz`W)+f z@30!FM!V|=j1!ZZ>2CC_9XR|eg3GFHG{f*5WQs)WJ!lF6*B+YFZbH6=m^OwSr)~<T zV=tMW8>G?zkiS|Tx<(H}1A*ppDbfdQ_=1K@{$Z%q^Q}g@xg=Sh+bV!HARDpf{X(>K z7Y9O#dN=6;qU{;Z_#d2l&~qB4Vn*bTr8sf!F4#r-`*1$3WiL)dhMM&+#KGpKw5F6B zQ%j1{eWKPzF9nn&raL8lkTc-#EIpr;3q#jm%^cF!p@G?$5|_{SUh`j4DYe+~Ut6;1 zqfBBt4IZq4!|{TySLYo4i-?2ZQDPM;4*j;K^NKRczCkx6j+!ku^uYg({sk&c|FNNc zy>;a!dDx}aXv~JM2UvR7%yGP&=-Nzm|HAYUyQnX-MjD9?|M=q>oZ%JJ=smTx-cff0 zyS`<cC{76wPrC&)B)6L>K_k3A@ZRwgNH+dCq6G1JclJ$rp7T}0hr(_l%s91TD#l}P zBh3w^<ZGg_ZHSNkZe{6{#amsok>+11*4lA56kKfu-*r_TbdB|_G-tO4y|AIPAUXZi zk3GO}+Pdr0vXv34re_Ko_L>JD3ISG;S20P+fk9Ft33p3$Ke}6(c?y8oc17{O|D^fk zGbFxW?>lTmg6eU<g92iH8QV9@KoePc%$x01q`2%i5*%9G%ifk&8|feVMX{|Am6YLc zVO|ZyN{ihFCLpCAC{EZ><wV_UbN$Qn8`@FTNUqB6^I<ppY{VI!$<t#=b|M&7Kt|YX z@wtl4!2@3U`IZLcM)_l|PF+I+2Oy|{Qa|94cag5bieHkWD{@&WwsI4p=X)tpNRxAf zu9|6pmn8zRQ+?G}yQP#3wV$H_tohJ@ZilCBq8ceCZu*MIb*_~|GhE4W=l-*tZ{U6Q ze?uS_YK%`1YvIT5<b*PEr+o(!r|27`ZgpbzA9^WL-#i@yV*|xgqGaXt;tn?EM&#C@ z>(#R7UnpN{LjIM*>2xd^?D>KO{<9C8-(>f*^*OOdf=cZx!p%F<&vERKr#i6YrNaes zH?#=oE+)~k<Rc-CS3BVZKhXOTVD$08NZZtgp6ONYU9Qs9B#_U(@katbd_j^!P&N45 zF~U&@nuaP;CM-~{@#rJb5lTRi)9tzTw-tEPL%J4ddTdTFQILvys?D_;2@oIkVa}3F zPQE^5X@#K!o{gE&`nx1RY*^j>bRCSbL?Lt9GgJrq`%X$e2wbbM7n*6LdR6y(8r_m> zJouh#x-f8Jg_xaS*T7&hcV)(BW<RXHMR&cLho7xtFWc@^g=Mar28I{T)&tww$*QdZ zkLylfUL6%99ZpBN#RY$rq!YM_#NeBWl38I)`0pX!&J9aLFhxBWF8SUUu!QJa!eYgv zRkV~uqMzwC+o-*))*XGF7Ym@*i~9BJ2fwwH{CB0{`IkPl*Ku<j)3UAi-1vNWff|as zMjqqde=|QrKuA#6(+kX3M4(f+zOV{!d)N^w{%>HVBisF2l;Js^4Q6B)HGVqI9ukBD zSco=&sH|;bq}a*w63cjNLY7PQJQdNc1)|&<W$d+{H4*uJ8`3t?`+Crsj`HXIcgYmd z>cK9$5g_od+DD>!%g-i)A?zmAGLzdkO3YDQm;MOOkA3Q{#5F4VoWHt(z|k7GAQnci zhjKCJTou7Y=|}$Mp+5BpH-RM%O%i+b-zV_Ds?;tPW_(xbTLbHCEG$a}Vb$6NEKA=l zTtDGz?i?q#V?U#x$|zSstEI~I?N7(>pmGL1djBLiEBsOGbl2ff3Frb4XvS+gg(p&0 z_Q+<u9NE;goFw5EMzFM>?-a%!LjVZe=Dr_Jwde6{PCA=89p#TL$3gp^whqjOw_;fe zrb;Y*_xuF|5$#<M7LhVuVpe2RQA53tzw02}C?Y+0RmqwDyMI0}Ae^?B(IHnjAKgRQ z;43<j$-we8eyx1VXD6dyWX=3o_uta_Ni9bHYe8Rz`IJFQz$}k6i(G?!*~n*$j?00m z>>tvxU$>0W?8dF`G12%@qN^7@!)yi<sh!pH#_nEe9!~!x4_c71szPg^1ILXE0P&;E zzqL%6Hq>HWgrZS2$84)+0<N=DyCXtKMrG8AWSW2Bd1@4dgfK?*X#bVspxsRZ!8IfF z`j%&@m$q}G>elM_3)D;O_VOkuomfLp=H=t8llDt;g6%<{r}EHlXqS?Og2y-9sjxD? zW7Hr`r|Fo11Ez+}ji9Cfb6Cbm#vfY`f7Iu7Y(!_*9hB@1d6AhZ9o#6zz3R-}s!hqy zQPCXS{H7$6;X~UDb~&!XO?KL@y1dofRj`+I-A{=dCoamG87|+?TLz_M-!H00jVup% zSW2G+z=)l6(V)K@|I$PnYsjRA9~C&UAzjR6m8i}1A<QtEeP*lbTBPH8jJb-K7T78? z$0M43%EnhJVu#&9roNM1ot%-DS##ne%4^KdkoD$&wEK=+n)wz>8<7%8PMeP`ngO07 zZ1^c34LvYb;VB1<_I7r_6ed{iI~Z6O(K<4pWi)RK)uEtoK-={eh5*Lv_x$UhX-l*D z2R?*34&ZO%F#mmueKq&mE-v^yf>b|=NMVt4qa3vsHorIdAHhb0+PS@CM}c(eu&c_G zme|VI$4yEQF!i1bQThTW<IUzUFwJJ5a&WX%fN92BN-8*KbX=JKS`MJ88%Av>Zs=xw zM;ePTWqP5o>0VVzLFAsxF5?VHY00wRr{xYlx{Em)d-BzyO1h2U3+($4UW$=-ZgqyM z_3fI;IEH`VK753OGa<P{AhDAh=f9->`st|!FY9gIB4PzN%5*j8;wnbyX?Aq!FXAK? zE4hsa!B)tNI!$Eb^(QDoXmL=|5evD)HiG5Hfq~y~xPL^gg3l~sc1(Ro%|)yO1s|7K zG>!X<%;y}buD9w!nyqFhW{uEa9u>UZU2pL1sQ}R)hofd0^iiX9&(Dqcv)pT0^-s?s zIwnu;j^{UVk+DaA{{6!zNRkj&t(+a%08eKyP^LEaMrG0lF{(D5lc3Ij(~4GwdqGkt zfTQ_G1S8$~vu83H>DuGr77dFW%1|`OcH?QdaF>?xUb-CLitwoE`DZ5!{PahCv8t09 z@fr`#ylFYEE9){o^KOs&c1M6pKZzr0`ie~3W*?(?5kM<q)41O(hG9M(uzhZS#%dU7 zy>O*hX`=IwZy!IRPZ&?LufnOSUsjqT@TH@@(J=F9aN9`)8C}O>-Nju_KuIC4(a{Nw zGSM*XJ1sGn<*xA|*PPvLEb?)Y%Ybj+L3HsGAi?l1?l>*0I`xChMuy70O5^8RmP1D4 zn3boW>w7Y9*T}l+R=-qkmS(GDm@Zc(v%`M91I?=5>RjYYShH3!bg@6cLK)TE3nn9T zzRC(J=veDbeQYD1=(WJ|O9wcF2uneFmj^<zUD}H+*tMLu&lqzfh4wg?rl$I4fkEOw zm%p?*5SJHPgMthzW52m*<<HM$kPMWY;-^0{L9)>)WDX|v7<+#Hn*mTAp!^AvJf+s6 zloeJiEbrW&;mHk+NGcSIqkwxRtgF3s;Fojy_=H#KPLP^QD3xQmQFs$95qtM#uVc>i zYE$-)rj!vCN8KnVcMkaNgURxb^`A>QFLKc!%i|<Dx_+W65u5Pw&FG;Ex>uJd*>fSF z@qa}U25{@+TU94b8~dp0C?fC4JIO%czS}ACscW_=zCKDQ5VS3mLjJvf^aphw-{D3K z$k4Hwai;4(+yQ?Me_W0JXG3GNFRbeVptE4}c6&A$-LH#!XP2zIcAB$*jeP=wFk_$4 zGF>#Y7;a+-ZJDW$ml%>dhB=umrzQV*^rjXmWhEvg*sL|j<kEiQ3U3K^L?uXaKDDq$ z*OU4?nv;A<!t&+sn>N6J_*RAUB&(I3xK_sIs>$b@1Xle~?o=Amf4TU@==eM_89A}r zOfBvdH8<$8eC%hhB`KO_?hGbmQ5^_trbsPFQvSIQMSCSZ735XO6EOdasW4)4;y}Ej zu=Gs_AiJvwIko@X@|FDp_v<c3!lmBwPgY+oNm9`?#3<b-8|_H_-$-OgJC2$E!d8kc zwwL~_2Cp{R`dsaN>}0>X+8r8_xvkO<FZne78FrA7k1*|qx>h(o=IGB0d+LHMzt&X; zcs=<0oxJR10Hdna%iH4X%U^XLm16<!g#Snw^wHcK7|&Yai_FIJ0(9?Go|l+?WS4}~ z>@%4Lef=y|h67elum4x>hCXe7D5)JxG<OxOFaopy-R7d)QJk#EZv@She$LIAg{;ai zpYvKaxNmE|l@%mqYf9Hp6VSm%uTAD^ZeC_Y)k}$?Pn-gggIl6r<_20kgB2?U8twkL zU6`qEkEih*A0M-)pr*hW$*a|e<RnC_L?kDbP40Fa{;bxeIYz3v4jZi1U#Z1szsTfu z<0$d`KiXlyQ=Xe8a<qxiy}=lTLIRWgjL{TC%|H5Fr9J>atZ3MMfST}e*!o-cukUKl zT|v16SW<@u7Nr5&v$Zm8bw}yF$y_!?w!22s>Y7v)&HwgDGNh`E53>&HhQcPJ-&hMu zhk&YC)abh|%kSYMxW+icOj+%P(N=_KXDb^WE|8aQDCssfHZjQbB*ZGkS^;P6_`XL~ z!U}ogKnKK7lM@v%K=Q|3A3*4Ud0Ff)(f_Ef9a_&Kd-TPOG<iuV<2>0Hycp^_`LEyL zr_LylG}sA3W>+XLUe~TKcLZ#!%Jdd{XCM-Dvhh)yV*R}GXk$CErncMe^l{NN_8e4U zpz;FHiKW?YVIh2-!Ato_o}$E1M0b@X7%_(V9Vc{z{7I1AE3?KxZjdcc`fYa@=h}>p zj_znPn9Y=+H8jDhFH?YjSI;wqI*#ff#+0N`?OOlq^6#3{lv+W^3(fyX-m=9?!qnOh z2HTA}yU6izY|(#%6Vq<7BzDE+*pBDdH5QH&Vd`;<7|{%Xf(*>*r$k#_W1=O27PPK3 z^P8U-XAH)wBshQAZg<>NFTtgJ1co+A{L;<37dMwPyKOO!_K6Z-cE8S-#UK-=vOAtD z!70TG%E1yReeE$s?|706&XK=X5w<u3gqnzH<8+UlbKoq-wj%r=aZoKR14774Sd0#; zlo4Bq100)>phi;5JrsLVpA#9X#AgS2@#68{JwggK!G*I^oO0fzn=JC9z&oRb#*~h{ zRth2smDSK6%|ab>Gjd)w%kCr*@)A4DOJig;IvJitM>o1CrJ;SNEEozRwuQFm=Lb() z-Eh~5#5}gyTG<vOxhiS0Ruj@DZ+fJ5(<X7vN+bU~OxO@d^4K3IOZMH8z2d<x5e0aD zKo=#gWhQP5k`kx?9V;)>_4*{q+JFkXh}Hpv%0nx&FuDXM>@e`mNJ*6uY6o(|N``<M z8xz2Y-dgRT0t;;PG+s$cE&BzZ+tdRN_Ni+nmA?t4wK8p?KdcAKi;}eWtVR#g;uklo zm(WrkjZ&HhxA30U7GYNe>axu1Y&jbonrdpcuMs_xILs!pS8^-{tjxV;u4-3o3zik? zr7DB$$vOo%A4Tnt=&N#^eoEV>)iy@AVVRn`j@z+@j_gH^)jOj1){1_gRVzPcvm16* zUHl&_(IB7J=b`&Qgff34H0`8Lm)YpdrkE(4KMVo)@3udJvAdzO&U|q$;LA!z)g@l* zs+%cJyev?d!Z2{>quHr+g$17rjh3#KI>0~`WmREqWFBXF$BFh2ZpAagD*AR^NKaOx z$47+?;v_ZZXh!TmNk=!K8H+GZPEL8#GNtxAeaPPg2#ief7O>jLj%ux(ssp2Vrw7dZ zcJX=Y&gfN&&9x*|z>F$jPRm6$cdu^)uS>tV7%5j6d(`n7=D~~@rr(6dQtx#BY{Pu` zKaO5#x~PdJk--POw6FvzQ8!+G+AW_n_aesg;o=3u7WzijIV_r@rbkqbX}ts>&FCD( z*f$D9xw0%+lOkuVmM&!_0uPMW6BMa);s?77-*eJzBo?M2ESGiMR-FUPIpEXCd|^YU zPTdv%<X6~~?CoIXr+!;8B$tzgv-9<~{7)KHy8Q%sTG@1AJ<S?>jZu+vmYVW==V=P% z>yHyXc?3aNb&U7I@5te)T5h2Nx8IU<W*KX<idQ4LYhh|ygL7psgfs_bb>RMw8&N=u z+xzgdPy_g2l=g+LrfAmMfbl4h@%p$7@Y)DrbgAc8tej)lJvRSWlpv0v$YjY+*=qrA zHC%9r3o@UP%Xd=bjnta=da{j&I$hZoLm`8>*JQ4-+#7Qcoz^3vkx01VI-QfRX785I z6^+?B&d6O#^%)OwgHwzQ)sIGN3U$xdCn%aVUMU?43JRj9XShS~FRZIzD`(^(+uT*@ z`hg!d>Hcg3oDy}6CnT7xZf`H@Ckx}5BAX24qQC_G@D)VVMH7+Gk>cU*lz`rR&0sq4 zU!@<;am8&_TAf*QLjMy(#v^a-n(ResV*q)gvqOqEQf&xkW=B?sEuS$)qO{6i-UaPZ zccQ5gsG(xV<<6=p>W$tH+cPROi7|9NrwfiL`=PY1;sR*t@zP$h?MVz{bVRRs`COol z&2=UvD`@T{0{Y!GEmvh;2Ok4+UN)9-<Yv%t{9*cV#xWlj87akuhl?AZo*vHj9bDY& zCbU3g<rr_YfNXdu6c3G_sA5NqL!A!R-rk-y0t9LD!=q1{?4pp6b7;R7TI1H9g3;dK zU8E`(+qtdyF-Kt~6UiKlK&~dFUtBQ$$DRb|J-=sU5$+rC24<|;Me$9N+zry@uZwu* zz?kZ%UZYwNd8HfqJptIes!7#rA(IMH^$RTmEqN3{Ly^SUQsP{!0`10>>S<wPrn(2g zEKs6OE^)`83D(G(lHmax?_>T1ZOBK?;XysupCY&vxcK<eZwXbMZ>?g#5xCmajRzx1 z`1trZ6(|G5RVM~tFg(pZXqdE~ZCAM>t`o?}5EIav@R&f>L;T|7*CQi<VS(#R2-Nfl zGvsvZ1@XW7d@kB}NH5Z{2#isAZ-m`+Chm3_?0vRxo~s&cea%Yuu`ip|W_@Eld)Eo% z4;F+x;bFXBvfDd^g?R2?)&+R71bwcq6WaY@WsOi%e6#Uvl<jFl&!!DyMf|r=3*{pB zM$)p{ZjoNBF_GY5{Y1&3uNh!}zX>IywmuHp1beq^?>VtD&UmLJ1ZfVi@db<?kdG+s z__5;9cI=RtX$Nn^U^viLt=;29D-pnlIUb<EIg9S1?U?hp46F{7@;t!Ww#M3Yw?0An zYKqy-PUTMh`Pgr^G5CcT+E?FG!1Rdy=`XyPp!+4v3rUu+cWqNs(X{!Jo1wnGvbs7{ zGT<vdg&HI>7p>X(-j_`*k#=DveUbH_FmA2Vq=d;v{Y3<$m?hG=H2iOC_(tPgM9B3j zH7u1#Om!fR$9<#Z`HhW1e_;bRRv-YISSpE>Zq?*vw~O`HfBF0myU~EhWv>UYf$#>L z5z#KA8vknX>WTo)ObnNKo(buvv0nYxXzEn{gp@_(NJ_f1?!7i;XcM2n4|q!~lQtBg z!c+Vo&&34_oIe66H3S&{Ozrt^ATY7N2Mna|K2&1zg5g&mgQl0$jsH<R7HZS&E<Xdc zE8i}xuz017RvPs`(_~lB($m8-kuxxqDP;*S-ILSMAmXnf!TU!?N28PQ%hX;OK<?T$ zpE|yc1|6#ZlrV+ntaqqQO$jwM$+8PS=r=8rLLB0H;$|pSZ-8nylxiqXcRUnysl#(j zq?=WsE!T~jGQHi~H`EfW{D&#U74B||nyo{BnOp8Y=#;^)O^~_&wLhk{Sl_^<*3>{r z1!^ab$jX;^+z$KVHNSA|DJtmZ*@vE4LuOx?|H(&4V<pJZ5rP(e0GR<6@-A!m{$t7q zttbb=+}P_A!VMIuN6EdJV`=j8=XU{X&9%QSKg?M|XlcJ{2{|@2&c@5}u7*;d4Da!& z{r0Zuy~rMVu)-OSg{&93-z*CHr<rRd1Ew>4WTxLf9pJ!4ac)S~3BdEmR60fCv`JL= zA}_Tf@~;2dyEBqWbtpg>+aNx^W|4uEd%#OE2}Bqq2L&O_0kTcHu&AD%o_bu90bQnb zO*X3tk^zB%CB?;EzbOG{PS2!FI}V79yabc_H#q<U_LSf#(h7uZf?qU~u%3iOChBv+ zMSC9y%>t-Qga1sj9nD7N)=4q)&4lH&l##(Srx6xCVYXA`FDb*t1rF0KZ~4aO!g%8G zOKGIIGuLF8W95S^<tA(}dbi7bDo8BIwzuOsiGwl6m<>Vt9y$W^!2g}33}g@Ai<8hW zszx4pNmAn9w4R5PU@FrL_Xs@zOoJpPD0|+r4L(Gc%lE{<zF3iHheQS_+7*0A%%EXB zyYL(pthcsSwYsKEoNmY{((6q@r%Go69*BqY-c<l7{`72Lek%sKpJeGjYvqHMh~Zoc zNmUy=14yh@A<AtMbB7Pe__yaj8LV@cKg(P`#hi9nYjSj~RX-x)yrEgda7A@Tdu*U- z!Fyq_a<IFdYn#)iX3^x9m7N?OBEG@NL!3{SuzakR{MR=NKnubj5R4Kr;n9y5@}w2T zJ~#vS6B2C8zU#E$U?$ycD`@l20jEOSeUfrZE4z1O71n>+^*3DTj?`T<D|6iS(ZZ$f z*=P0~37bM@*d5=SIEXMMF8c1WLD7JcC_yq={6I-m@7dnj(K?*kg$zI;$p5wH-B@;| z1|aqydj-{F3#=ciypAp~zm3+s$Iq@h1(^ITZ;4r%2~kmGREdN$^U9^zmf<7Sa6x&q zvf@b4rQeJIHTkdd3X}S)DOblp4(t~pEvmn9Yh4ogOP{_D{2p+nk|G&=*~w}AuXxG{ zQD5vfX+x~tO9jrzwNIX#EU+S$2a%Q}ooLZFN&BM7Bx|0P+uyue{7}$e8S0Vd&|ay_ zyIJMM#i6r1uwED@CMH#Sotb=2)MLN(H(}CDxa~Gx-d>+Yf|YgK-6_6&`7#GYxff-c zxh?^YPU1Oy!DGd0yT7P{hv~2~7Vl9tYf8R-L7;(U5ac^Nze$>@tyLxAJew@^z1YmY z!P|0$qjl8_n|)G^?M-IyrBT$osmVtz0KKtsnOtGCXN+-Wz(xZsgc>}oG6K&fyfn1# zvh;8YK>xG(Z#?xfKc)PF-kedTKwxUl%9QQyrrnKqQ@URWA@VX+Y<F$_v1h+_d1Yg9 zBL=n|zZ4YgC&cgJ;`a6RAEP1&%BbQB`emEb$0dUM@wB9Tg9&Rw%HxTTAP(ttbQod# z0clxXk^SCfpsk_#^SJvu9-+azCNM-^sMvV39<Yorwu-m*4+8LjkSO+j-z-}CBde(A zznH~f#BJra)F}=TM39Q()(7gx!_|kat*t@uS@?N*p~FHZ3+0-=FIUp~`uaLLBo9G1 zhm*6%&JX3&qh9NF-h%{l4h$^aWk|4xkkA5S6K~jT0E{#~{^sl<FxH7E9jSb%-k)Sc z8f@*#as#q23ZLD-c(!RqYLNM(8dX40fiXcQe;GWc1D&}n1d#i<lfqlXe2-4$H?2{I zg#UY|f*GF@Zb16~eP)X0#}y&7Zs^qm;VbkeZIpa=sfoTN#&oe4DjRhmMlgtB@`}YW za<95iW%mw73i-SV0=c<4`JbLL1k&6t8dF)t#J_&(b@=oXCsvifSZHTipsYEu2t>ah zOxo|E7+)_Sy_WLXl|TR+a`svnYC7Eloz>+_`%wzwCC>b-AXI#0k2j%e(;7-$f1)ii z{{NWz#=tng?duqgjfN99nW$;(#x^FlZ8vC)#<rTqwr$(C8|$6>-rv3VKObhk&4=eX zXP>p!UhC}U!L1=x1FZ1@8kkA+G>q`gY#JN3NuHC<9MLUW6#B;WDUWT=4y#4Rt9bu` zpgalgFj;M<-nV-<WL$z4d$;fE(bcJ%d=UE(d&%BJMizHRHZtZ)u7Ozosj&qCagwuU z@oWQSI+c8vb*4;{dHKuE)j~bplX1P~ao=^+Nq(2x^j-ezaP?s#U_I8w5d`h|q5T_Q zNJJQ$;GNuMN!!CABu^{6dD{B0^4~q+L#pKK^?Cq)j^tBsHQ6UY2OH#<msj$6H?6OF zb!4t9(G>sQGbRH?f`I7Wv~*l<Pc>z2yu48bwC?^XrVkkM`9OeHQ%+-1Z-F$v57+k% z9hm`GQm^OLIt1{o!dP<v<u<O**#<9K+*%@b&$$P6q0GP=HLDAUayTHA{3@0(Eoz|# z9Gim?b>%|=%A~sX$L1nnN|u2;u6IY$5Z~0=T3bsC$(MRzVL^r))~Z8Zdo<l#|DxCY zMoJMBl)`Q%*KQ6u{#2?yAfKA`>jC3aY$Z;1{Oo#8a?y3roxjUOa_37Uq@Kk|1A4%b z|1BJAVK7Ep_n`a+96|xO&izx!9#zSJtgQxEC_;Cq)m&Q-W4J;%$kh9v{;s)gQ)ZHd zPW<@;|N43Y`5QV1^GEXK2C%C3v>?y$tDCKc^;vORnjr)~G<tl}!r~A@mi)9ib~HT- zDaZX=NRmxni5mWSNOgt;9S8MhSc-QC25<+qerWk}2C(K5b65OK%hVb4#8xia(0R;# zn!*f(;+Q51^%wo4sZ@3$V}X^Vkv*IqpuJj&+l-(;*Z-#WHsY0?p3IXs`(;lBh0~fn zq_^4Yf$`Cz>+PGpGE)>;LE^UzM)d|~k`ojB9dvU-c??U8xVrjAyD31H)gosl=%b_R zZz+}}eaUjeC3+?u`yhSat!*jgw5<NND;|wA!UmZJr<<U=2(KU+Fre<Ajn>BmX%P!Z z!R=0=#$Jpx#=l#8MgR|rmX4B!4CZe%&wK3Z+V0J6_k^_>f`|Adsz(p;8;Xqo+x+^h za;2F(joZU(T%6<d^-=+4J|sADhJYE@J>#&l!diW&n77KVZ3sIDaL&Rqm<`3vy$>!~ z%9_u1{83wC0_vklYdna}8W(~cv>GoIb%k@w^pUZNCT*a>zK!mQrrb%}MQkDIzZ}Fq z<uG`2TKs%I6DBwdxp=XXJse~tdl$l(T7TOgej0G_Y)-O}x@4_i&BYlFhJ5XHb=a>& z?AA*Vg#;0Dmp1!#&q5J?d7}^)%jaC47T>X=_Lr)mru~8<h>1`$TV5GYzXxI=N>4;h z0@Y6ctUHbEs6r-2<7wTN2BMt^oYO`><VYe@KLr|dM-7kDLw)qZEcxh&%<gTcwGAOz zjiF#Sr=VBl`9GzlU($EpB1ReFO*P?`412kZx&8`gBMzJ@RE1mi6fnOJOS~j?Uqw~I zYtK9S^cal?xV7}n!7X75A6;r?0xeQS)+^Lq^|P1do7Ig*t<5Pxng^fE94_vPwT485 zRpbFtI96WXB|%XT30WT$D(<8YeN&wuCI{s%LCG9ydOqTwf9~Qc2MYE<1&q6@;j>8y z`-Oh*xi_rzun_;IAy5{vdh%kX{-zI_J#`4PDf(&nB%cUgM#U@gY9iq%^a`dPG4X>@ zI5?PS8G}3WkJ7)u<+OB=pb{v~PaWCnqu*Z;vr!a6b<g54VJ9Tm6PZmNv$4BPjW-&_ zr)8cHLW#A1!JXX@k!;0`vvp3v)pUpE*^mGg-0s}2+q5kMvw=1D)fG`OJvXN5=B_Zk zb)hR~yUakq9H0Y{EfbMaHfHC}#QsIYgV(inc>)tqr3TyOK<@I@Ett-VK-rmEXe<20 zC+V?2Ob(r`Q1QT>Z&#8omU4LCu~MfM&KK(X`Z_#396y*vW9<pvu#<iqQa-C~+w(gX zN<=@m+ioxf#N;=t3SM`NOvP8KFL4juFIN~H&LLDZyV@1?H*QC+`7P;Bu94Gt2O<dX zUETRfJ>7s0OP~_LIbTYIPehH5;Pm7)0A<yo!@t6C^ARgz!`ALEifHoV;ruHEP)W(% zQV+(>0L!q4(Q!VaMod*o()mUtWPq_6Mem05a?WlMK=o7HH7GV}J?Y@_LYUQ=;~&)8 zNtA$lyx>MM!QQJu4FfA)!Jl>Y|KCY?`E<%<q(Mqjg{_RXb~7!d(wqiPI3YnCE33-f z9CB3TM*m=Pc#DPW#io4z?9XyGO1e$I6c3SR5A#`hWPhF?KS4o^yPswO$XQtIFP~g_ z-&gBG|D2~@D7SS|0BcTiE5?O9LQH1?tDENI{3|9KlGgH^Y;-AZY$d#r17~8_C>BJ4 z)6wsFs&wZ$Tj(fDbi3PnmmVB`Ckr`@aJZb&v*v8ua3+LQjFk;r`YEG{2aImbYDHG8 zitad>6@`U~iHWejwBT<fTn2PYJXEdn#iM$8%S=W;y?59zU*>g<B*Li^Y-J8!3tgdu zk@>yv9o-!nodM*M%ac8ZJT7YWAP<xMw}lTvJW}~Mg#ZdsIANNA+p#3>bC_R#mAIOX z9^vMGm-kxa!^^+iga*&=j#ChxBR>Pfa8z;4BHY{iA+T6ah40nF=|BF69$c;?3D|q_ z5Tkh}qe!AQ*Zb`FF@)8KE6C=54kq{Wlysl|`HiAOyP%z`>>%4BHf}AdRM;VwK><YS zcjO@?=IY_<>S3vJfU!xt%rqQ3B%3=Ab(I{|T!NM46Q+-RCF_f=nufw818nl6Q}e5y ziZpL+(2kh%83W?!zO(5H{iViT<nIy)KT#I-DXkk?%pPU8uG3p7?W+l1Z1tcP^Qu0o z*V%y<cz0w8_=io;06^<zf<WP_@gt)64KKZD>8E)mi20$zYHt@}<ldx}RrR^K*X6*3 zFw=;Hw?<n3jXfPh!%5xtE#F^bYuW}8vO4RuNZSIVU~nGTd)j^&X%d;k1-xm|(02RE zcmV}Xf!u+`e`rYoGM3j!hAqA;A~HXwCd@W}PYbcfimJOk2QLm`U|!7@_5qInc}&-< zQrJeVg^bQ`QRZOVO@~!A__+oLa;W0$GF0?nx`US>)U?}>ntKSsK;T*taxQILz(?Q% z2^W}~+#Fm&!%hVRD#nHD9J3L|53{kcMMg%#2t<!2Gf7KGgoa%&Ygbp36!Ttw>fk_t z4#{1~9zW(ctd=RZl>&*S4X{%Xx2ZTsO|CcL#6qo_NgV<~fN4dubF8V8HzAV7?jV=S zBVJ`GZ}ef(t~i35qv2J*dR+f0**2q(Rr<L;VJC9Kqv}XfJ}r@i?@v~J`9ppk&b^~c zu&;}5Ql!iD5sax0-_9#<@^8+$&nxYgJ%Kk*iFz=y?!05qVv0X=VtGU7YnU*}e?z^7 z#SC%;v*X9#b*tX_u~08-PF(a{vge6{zG@ZVfc9?Fl`)*%*Z2?I&-9eZ=Px(V>aaHc zTsG%fULpO5U4bZhikr+jVPOU%2R=(w%XnV;vb--^VyIMY_v^1p#&vf&tX=L&LPEIs z{VCho5x3h&@P5~R+f2n+;&B??)KinQ?b#dtme(cWu98p}i7cAmO_22o8d!$KAB||6 z7e<X8>8aVbxbh>S`Bxl0{!B%aGKA}%4n?gfZkB(oC}=~ZHxSe}Aii<T?MmAK7M4zK z<-1JUd$=<tk@bYkj()Xm;OkUgHUVvvBf3fm=xu-0$8-lDDnzJ&II|a->kK1?<FJW) zf0ia72IPFjzXD@Rqk(a*$JfB!#LmvcmSX*x;B?CVJVk63&{SkWQBeS?5cmTY?kp6V z6pU%wA?1>hKo4N+`S$k5@RQO;_~}pj%S1a*;1ntM`SbeAHeGW`KPfy4X~~A&YfEwY zM}LLir!mv)0gX3_YDkz#naat(li619>!1RMVg*l^Pt=AZ^E0I7q6Iox-)?x&R?DIh z6*r0C-m`z7ugC^Th$L*J2n~`^hbV!{MK_9(F%Y3NFUQaV4$RVmC%jai?h;mh1x@6U zg&p?~j0=m}2Q-|6ah#rCMU|+0Dd9^sKRgNQ;I?X3Sgh(+^8dD{PV0DIN)hrq8R1~v zWe3M@oL>pH;J0!@XF?8WtlWaKwZ)|+%N-Ffj>g1vcG+|RzpKaVFP@$|tgP^;q!qu* zUY&mJ)e173bwhC`?TkI$nm~0A#$h5^od%CVse??f&hblAis}(EfO)lGuqQQ>NOdl} zwAmfq=bMhJnCd5GcjIOeE8e1vHqx?Y>ALsF9t%Y#qH9tZxRV?#zb<NYvTY3=Sutyq zGCP1b&!}!-C;Is)wwc;G-k}w-T`=mf9kAM4eITdK7De5yNXRLtkAMG-9B`(eN6VgW z#cRK`k*|)$|H+jPQhKufNXUwG@o)N(Wd4y19Q1~WkWlyLW+#}7*Cn;IwB+QFxsxh- zh7RvY$!%h6ZGXtak8tbZ28$mMg`SrExo7=C&RV}Et1VSL@#T%CV&yUK&TZq7$oX?M zs?pzEY19HqWPICWGV~vQjkx|B`CMU;OfTIakt06B-B`Z2^wRBbQF=3v6k55W9o#>M z)~j7|=tgRjned(wuHRA%_3T`w3UHDJp7D?bcd;+-Uu8jir$WV#U5<5~aQ`3th-iV) z&sdo-ao{qH83b$y@eFueg3r%1b6?rikRD7iQRD}`9O)rL{Dr|GbN}}C*^$I5T%cY> zUU~c9q1g4wEDu;%E@GaA-Z|&NiA)#289*UKfvK@zJnKqN-eYfwrT^BCN~ZXJfPIE& ztY`EpwK2z{2t`r5|1bO80yXAB^{vrM-%?R?FX4IIjJZ_T(CTv>6?~v&o+ipHKp|qy z8XQwdH#a3#4YY`D&#N1%#y0e4iYk=HyOgcEGigm(&PH`>2JJh*qq4x#Um}$Ujn3;8 z3RgfptX}0_P50!IgEbD|72@aGR|zI3Gu6OpZAsApG6yIcgvSqI5hEdU7)fUp#ca-A z+sWA3YOcZ(Dl!J;suQ@X&MDSidlXLHq3O?TNE^|^Ip9MbH=^ErI`8PneCo?Y1{X9< zBEn^FPAwOv5s`eE$E%UAK-Pnxo7G`=VC0UI041IexAO_$uMpPahSvN_H{hz##;-_0 z#(}N-LjFotvg5b~C=U7PW`z;hUOldRzgs`#{gIZWtFtRWYDK`zIKvH8`nb`+heK<j zg7Jfry>TfXTX{gt{&*QGN{C!JsCWi~U*_a|K==}&Dv~eNKd8xk?~8R_?lrujj8V~} zK31n&9u@U(-wkI~W)?gdMi{J`t^@${)s0d3crRj4_jvj5rlu3HoZ;f~&BbLtTOhmB zU9mzsnU6{L%;$dWWxjMCkLk;w-!O2nKF{$4C9wMQEiOBlm`uXLFc51f2*2WzsOiXe zJlnVQ3OzJ-#Z3EVp(<7^WyZqdw1x282GXVge{SV_##zT~n6%inD8;<@eU?NhPQCM+ z>xM`x*~~~(tNCsV!w!zT)-GTIS2K6+`ZV|)Ow}7wG7{p7-lsfz@m}Os?>(1OStoh) zjeaq!RUPEo=M9FR3Xn-dT|yvzL3DRoBCI{eS$Y(9_iN36y2>3;Ua-IiNz=NTTo=%B zN00^Su%Z(Io}poSnZw0S%U0%%c5}O~`o?Ph1Od<!>3-nEQQNnFO42jGu8RBIb6py| zKq5mOPYxx8LO?*^=Js%z)|-}+!fDutfKS$AuU#)qLm+wm9<OHSu6CQB5j$G1#Pux@ zMXQktFY!RtN4Kg^QCoNZT}G<39cOLptK+gu#zNFq`c&UIm@2h=T-|l*M0E9bszr2N zHauEx=O#hw)q-6>RIcA8s`MWHkWiaA53GC(#w}tiV{C=Od_Q+0|I;uj5Z$0L8+9Y0 z*Pa?>&5uA~=TBs2-yUp*z(%f)gj2ho&;LFX`Ko)uc^?0nE3<Guxo|n1qIhiomP`8r z-|BQ+SJy3DU=m16YjYF}sXsapWkgK;01JEW`MSix+g4d<QhBjHT3RabDjuN%^(!To zoQ9^+ei#!%(80n24SM?kF@ua2`LjLU9Ct_TLp4GmsNh#|N766*BFS?7(N;son5y2W z30$snj`@%~K9Go6cubv@6NUP*U)xNYLsR^^hqYgVLWH}xfmZgmV=#6j{4h&bN(;W+ zHfQjzo-hFs3jyq1M@!(r-|VJ=o~M%n7kL}BK`tE`x7Nf<*V3Wh&Ym~d`j>J~4co>O z9lKAT`POX1PX@9(da!I4n>H(49x9zXbq;(>r}m{9dY|S*#SLlf+`(8W`+e()8`{)$ zikNIHaI5LcjW%!lTh4pVclB=Lo=Id}X^>b)M9YFky5`GU#m}N7Y_-5XVe~BW&>?gY zQ-u1VTM@_%^%MJR9x->puQkt#<;}ZvC8#UBsPX;AY`lac7&J7+H1b(ps;&0g5*8K~ zs;a6sHsyk3ze`F=Dk>Pie36op@_hb#Tp$_0WIes7{usw56-o2W{em%ur`#0~RRAhF zZ=xYDeFd=6u@~>@EWqQas&eX^sCJ1zzL$?5%()y}g($WZq|gn2Wg#$3kJmz2;g^U= zA(b4m&3dg#^D7d4mjGhdiA5Y`j#XNZf{b;P%;DBdW@S_pRFJxup#RHr`wAH7sE{&D z!oSMm8-9<}2T@*!97Cw&ZzAlHFCg9(nUOdXw*K0jhbTVcL-AZ4OKV(PHrg#J*X0js zm)F*4ws>iy8V!l5R+*h6;k4GMGZ(*vhu~LLi_YfrI(>Uli0JAXdbV2BN8fr6gs1ZR z6xkIE_#T3`I5SOGT3!yV9~XrZz3U8@+2as6PE&?OI1AX;KYHVJEmkdPl86{;-l>Q( z$1ngHchfc5;}wa57DTWp_75r-+i;gjhnENo_;w}mwyD$X4bD;UE{@LGV~vlP`@FvP zA>%X9#RX9d*G-AS(1ly-_n=Kl**~#n?yGva&5+LY>qjPqMZHh`EShb=m)Es3taYe+ z+xD+@MX6mEuv{j$dYGk1evGWT_0QgJ^wi{jXs}=S%&TtJg`7x2kysaL!sB*0>RL3N zdqyUD5g5=l_|3cUYpU~fRSXj-XyR9_GCr?k!0pQ0p{+oGCE2kN_#%EXem(RoMr?o{ zJ*%=k4XEmj*Zy^)o=E|#tPS4UCm%%&n5?W+7~~o_kb|^pnG>(5s!Gi5eAE|)bvTiE zdUDcYx5@A2<<;cp_V;MI%0x_CTl?{VaySRk&uQeOou;Do!nM`6zn*l#pzg%i=7X*j z4wWSCt%REYVYfN`0U?~-enIRvJIL+3c|cO;ME<R;gR4LbOh%(6ugyhTxO`&Hc|e`S zMaguO+cTS-Rh>j(r~0idTU3Zthb4x!_{w0zZ&AXJW?zB-wvZ^P%tl@709>Y=vk3$2 z-z{QE)w+8yNa7>9hwxHwpv!1cvnTP=Sr+dDK6VQNVk}7McWb2cXOJkAZYY#*jaUUJ zaaD|ylLt)>Dm2;^<#hSE$+syW>RnvYT`#mf-d`_h<Z}qFBcc+ORqyQGKAcEpU1Y}% z#l-{2@-{l*Avnu4{0;D<!~(_ZGT+VFfQAIHaJr+WUp%J@bZ8ySirRP@4hURni(;1n zxAI_auN4SNz~#cHI6gq*SRDFR8wO_?3uLM*CcUusIv5>Nb-z*|vM`i3GVks}P_DTw z@UR+)%)B8*6UMyypv4SFjLXyS9)eTB<|Gey-bxt)ZB2o?;`J4$92D5%27ZW6Yv!Tl z1r!C6>BkmSkxjX=F+^K5kyC+UM-LqFW#ImPLNUMzEl4P9DY_W@IU&vj3kOr&@u83f zQX@@=&#TRO|AAQ$8$OAnjfBU*zbf@owev;e<LtIhV8i*GBX)Fq3NZu454&Y5lCAEN zO|W=&oAh%A26C7J_OQv<qrCGj@Iq!1$lmo3zcMPWXj*4XILm4Fyp4{m;ciNEYdAN= z)w7IN&pEwQ+rTPv7vs{Uk?_f|=}ROIa(aHrY*}tNEC&Fg0(c8p$n)j*-zkAmm=z+` zAYRA%Ks#41^PIDpXoa%n)S|pn-_@b{-?u1QA^G=IbCCZ&h(a5nX8;z*9y)b45*HA` zOJo(VwE0*L0+hgjj8IiJ>kPUnr@NwCs{K72)3MAC%D><wn2VwA@@mjn<28Z7rBhG* zEnxO0f99rF`9?UtCUEy_-q%k8^Pjk#&)D3y14f>o9U&^7UnaF1CulhFEn~5+uc3?O zGP%9(i%(8I76A~}n~i9mzj*xpA%0|TY=G@Hl#*NSgNp39ic=Hb@wj0SftLqWJf6Zp zVPW7*H<s1|6c6^BI<SUE#AQR$hSTvbMjdFK7wgcBSRX3$)dJ&^cA>~@W!8shHS_1g zYn~|Tz&3R9^bsMOFIq+sd#~$v-{IohccJuqqVwg&f>Jp*O%E!@7<mNpV;RMOK+4ZD zgNyY|fMduf%&)l-YQ4XN5tRN4Ig?9b9pelw7U8>75b}P059>d;?&on;o1OW}Ou}Y4 z-r%D<2=<i8#!O)BB`lhGLot8GOoZ(huT5n9F|cQdP{nf_lLXnjG;|W8?=K&>962tf z6XmW%{Ad^#hZ%<q)?IUIQ;=CmoT;rJRTXu`w1q)xxlY9u?K0FJOC)l7q_k|Pc>_tL zDtV$kMntH+?O!K*jJEw6D-Ac?F7p25*lu~Ym(2%?YTG6J{+kh4{fw?n5nx8S?%=NG z%5T0(22{EoE9{Oiw?i#`;sU|+QMzE2Ppfie=-hB1dG_*c%z5uB6E@uYO8ble-RJFQ z0rjzx&ru)R|IzP0*M*5SE?Q@p2s_9SDD}c?kJp926)Qn-#a@@_KkmBs=kD6aoy<3W zn0&lQ!cwuM!ggP$Dq8#;7TphfD(pr~6`CG?2-w&_^(Me4K{KL2^w^IrX%?5uj{lXA z#cC!eDmyL?LBi{4+-y8tePsSybZgOqUOl?5iuUztyA-zsO8;Y<0-1XDVU7-B((gLY zfDz8$fEX_3YYciy$on0N0ol-%0$|v!?`Z;A(#&+xrAIF5&Ce!2_Yzex`?UDmcyh;^ zEK<6;vDz9Y`*hROhYr@bK`d_AGkAUUZAHA9BdcZ<hJ5|TV;LPjOgG5@FDXjKThB>L zy}z=1c<M@&*4UTt)(OeI?&)@tm-{Do{J@@$u$=tCKY~o83+>AN`=)Flfxq`ORl*f? z0vQ8)2n}`ait1oaWyx@kqOvJdwcBQc!2`x-?IKBtNJz(|PqG#)mBbA^C!5F>V<kEM z%uM(=Mus~gZsrr@cZ2ObTr|I?&|>T8#nNkfyGY%GMVl+_yN!cPugIy-%sPwCf0CvP zx@%oQEg9K<WJ~YXNvq}D?vkgZD`O%{^v#&ze|iTr22Aio3-*Y)J(30w(|JgAai*Rn zsTxAC`f!4G*4`N`zBbe?vlgFk(fHRPtQEfm)*<{xTrG<VQ)sxIwCamg>FBiRJXJic zM=01yQpacHB{B8M|Go1$PysX3x?YA&$3@)IQ<fqQs@Bhqzgg@mxwIz^4v5n2n~e)u z-{0|>u&5$fw*9sm!%11^`ATHxJZ6i&u(B~#DxM*cD_O}3;@@4+zDejP?Vqx2oU1Tq zgtJs|y&IoO-9F}!$Y@yq+7c;?5%eOaFC)c8j2N<pZ}b)R`pF!qFZTQ%g6wo!z_P(k z<O!9Q>PCl29*s|kTR1gf?pXt==F`Uy7to&EoUfWdc*AU6&lcmlx(*r{1}Uq5|DNpW zL4bz;D>3~=HNqQe>v1^V8r5u5aocou9UfI5pL!0Gvx3*SP1Fbk^Ny3AHER5&X=g`{ z!2&OM1!S#`a6tS7E<UH_&uv)G?C?ukx^-a3(#Se#7SlW!*}Q7o71<>h`bk9)g?29p z<T=$zCNV~BX6Cr@x!jJwpb7V*C&D82?fpoIaUsaI#QHR9R3iXKgVQNTd*6D~^YEH) zvvGL7-pJ^(&NjMW^2)Y)jFj<Ah{i&~IpaCPTT6Zb9jpnGOW|{9DIX{Dx^?)<%TBEE zHn_bmUXgi+*8ar6&&<uS|J}n=Q`B?$a7^CiQsC3hjgWK0Rc>sLiUd79xw`$qw<?=< zT#LS#CT$!zLEg)`N*|^6gK3(WR-95&wQ^sT=4XTb5iggEMi@qQP-kW_tg>iVXn$*} z%mHI|Z`C1vewpFUU(Kq(fhWhp(<rq819n({|Js<Hzgbmo!I)o9%1ku1wV`~OB_h1f zJ#tT1H@)HEbEyR$_#cYyKq4ZtQ-nC&)B&YjE-&T3_N+06$s7M=H)zhI2UUuSB<xk( zz1B2}TKK%?9>NmjITVyAriy##8{_#pkS5Qbex$))$HZDbR_OHottHq#&Lb~ETpkov zpI+#1wtd#A6%Cpb>%8o25*iP3eWKW&Sw+(Xi(E!5d`WNnaT%rTm?;QvvIdF&G>mp= z{KYCdCY6-Ze^kpD=m(LrjGZZ^xoDpjLO22zuIs6b-{=^#`%Re~K(RVd&}6U%lA4Ik zRFM8m)UxR)$rJkcVl%1Ehy)qtDZl(3w%0Ha5xE1&>44?y<>?RCyV;PmxUxDvB-m`z z!^aXTD!r^}{a*LT_^gyP0-Z<lqvmZfBqlW){Jy?=^$0?rF4rvnvPDQ-mE%@NgE2EL zqWEvoBTPBxxAGMAKCpdcV4{)G>D9T2G|$d&eWot-c06kqRl;Mf+Z)Wz;qx?3q3?=G z&vxuFZlj-K=)-zk+wzQ2B-7v~rUsZ3iN$THa04Y`O%Oif9YQB?zhKfb?H~zx!Vdk0 zXjUa_#oSZ%|Lgcmjrx@^U7a);jrfxUBkVBM6_Jos7+E<Hr5_AzUVQDBA6GF{WVz@f zCV@jT=&_K}SNWeTV|yq4&yTaI=tT1NDoK5Hg|=(XoHGjI#PGgFaX6H)q>9?@V)2wX z9}5io>^d#!&5k?{ho2TIWsW-}LF)9RP@A%?c}xDwk1<UK#xH28Q`H|mj9a9Z7!uR9 z-`blsl<nb3WnaxeFiPo}?Y=s+8-2K1_h~^ins+%Ef4)zMh5@br#`UT9Q$^W*ys3gj zut6RIJ^V0MH-}Q6N<~00|7J}yfX<}FZU=_2T+Y=5{Z!_CakQ39GlD=E@zRqhW*XKj zDKf2+ufYb<7o|I_xBBdq)cIGcDraS|t~cRQlu_i%>rD|+-(%{<Bjq=YB!(0y5#`z0 zzVW%dzg8<3gHvqrDOtLRnV}LM2@v)V)A<BeizMDJYMfe>j1!L6JJs<t$to(ZAJ!QD z`mM=}i^~8l*NfK`k$gkG#_46i?na<)Yd*q-qtYk#X-*b4uns3?1fpybiePT&v@F4O zXekkx7dPDZd29|_2E>*{O&S<Q2lT3*3I0tER2b>vPxEz>%){zl=)XcWD)#Ezn-6|7 z>y<XHB?Pe6Zl5M6h|4fCY@2DIOveQ8=2epkG!p7^lFM(sl;wsMt>Z<ylzFJ|m`}jP z4QRC5EWY&AoP|%iM$<pCj<||btl2i)G|*oL#*S7R6tH)n4<>!vA4$pNK1K6|lZXgS z11+SSO3$(&=zum~C5%h!Bq$zywrqGLbYdgEb*ZXwFuUD!;H0Y0wk!jp6q2vM^gD?c zJl`<+2DS69xr_G<b5NPw<yf3V?65YRho7xYu^N3|aIhI$Y5hrcr^hkPW?lNk2P(+b zJb1cmn!ecnnC8fJWW?x2qtrnJ;<zllu22*HS6Bh$EBEb*?^=Hiu<7|l$bDp5p;}sp zFcKCi3ze^HHr>C^f~<AXP*Zg_tF?_VpBGxNr|a{w&B>T+G4(MNfvA~HeXtNMi@lTp z@g$@M6CIJ%Ig{Mldbqf-07VW3Aq7c`ZIkDJj5g_X=qljTaylHpd$}>}e7tjfp-YGU z>IW)l@yyC3j_;P37!AZ*k;z<Pc1-MJF7LN0-yxg^T&cdC#ZXWYAxfIHG*OffvY!c3 zVv|O(O^;pA+IoQY1nbI1fte*C?pCDTld_q;x*srE`E6%Aewj{eKec_+L|rMDx!EeR zf;;+0`_8uJm|DoSRWLeBdS<o$Iv<$`&jiu*g0)pVupQ4;@1oIwtT2?mu%MzO@t0nf zio!h`8zFboMekuno8G>Abz-Tjc7^JfBe_9MK1p2xmSxD6cIrWzA}E-h;`q*CQMLqQ zKU2E@8ef5co$g)xa1I1Zj0_8g1&^~W9uJ9#y1Xsh<mt*9%D>Ow2O$R;jeTi<rkmu= z+!)TXKL6z~m7sI3cc~9$AjoEn!|u+5B(3h+Qz6q*BN$|9F@N|XT3l*w9*NK6y6O+j za(%sDU!O`quzNVZdi{7kAs(~EO1OwcL)q6K`2D-|dtFXrL7ns7(KIwX8XSZ%9*%{j z6;eHd|13h=<OI?})HzPTXz;V=;0$;wAsZWuxUfyTJ<nywRcDc?D~#1R--6FQ`JaA} z$i{VAR#Z&TVLSD|r0KFi&|c0=jr2#MsP}Gl;yatGdiZ?ez<grDG>^lrs0!+jJaV>j z@}JWS^sL{1i}r|s_7JS|EIuqS4(XY{D3zPAh7B8@|K&>4RD&Iai%I8A98S#Gy&Jm| zvr-)eGTYAU81!PdqJ8fPrCzXmxxo7NtscVvahZ}beHpQSDD<?@<v;cX|GLo7(BH<( za%$kdnLgny4+yncPoE%)ZSZ0Kh(ljnN;A2nfm8DC%;u5xpxu1i*3?)kczG+AfouQ0 zBYCiRUQ<k%{AN?y+o-g~<ATcmH#35^iXO)w^W)RX<tB%)($d{n3a@Ow)!V<v{v397 zFAr|^&OwT?J0F~}tPo00j$qo><g&=Py=m%P=NN*D9~{d$VK@b^9c}AeITa+6bBY`4 zlw`OgCnG7Y<c8$>NPKX&3F<?#jO9qHjX56YlQ~DWHNc80+eOhy4}48TO9Qv+4DAr+ zGF{Qxr(YMjUI5j-VNELv;mfHLixdQZq_rPR)#iSN-{7IZ3WR(Tczv8mCdK)JD2L%2 zI*CJs_N*rn;l2T@RzbrYd1S}V4ERRFTD~>%CeG^U$PG>Hu~uSvr-7AhMauTf)N9U7 zIr)omL%#Oq@i9o{iV2#$gO}(8QAKwCBIM~mj~MI_=}m9E=1q;oA5Ab$l{lUtdfo~& z!Dc1iJQSfeh1|u0go*lTu+)xcx9b?8H&{f4lfdIqMlCsWv~+iU95CG-rENt5SGIfN zY1cUst4Joo4)gLUy4Py|8=Gr~y8}1Zleed*p3|)Z7L9L3`P)_TZwVBL!O4t^rD`K> zZ|`=&s>>}Q+z8RoEf)oX+lB!^P3)oE1oX*m<*qePTHROW8UM2e6rNZJzM;li(UuAB z3hu?2HR2gzAmGwj$8SZb+GYIPwEY7ALb|KO@b-w_{BWxF+FDeBOP?kPTdUW2Xs=B^ zF*bEe8d~~!kp&=7Hv?;@?56>u{35+%8=nG?_xIh7ZJKh}b-{!=^(E#>v}k`nAyF$j zTSOt!r1&fEMV+S-VwH2dw1OvRF_TUiY4>TZ$%~>t#Otac{s+e9GT*bfdcj#7Gr{5S zfexHPb5bz|gr9-DLsZ+u+p!Hgt)vJ4s0(15nlFk_rIBV_Z!T``?bs6Wm^eRuO{iea zF3$)zYNU74z%Nxpr>4)YXX6Y{FmBg9x`96qg@{#Dz9rkFq#%7ZOUsZj#DLQ`i%RuN zkZROzy+7Bgaz3`!(uzRDVz*gsSR6E41W&0vU7XadxBOAKpI0dD^y$+G1np}KmcMVo zp9<Tlt?qamYbmLp8Zn<~&T_gPP~%I^t4xH|b|*7aP}p#vjAVF(d&0=K1y4KSd2k=p z!TE%VwfCaaGNZKGXr<PT1~9-kcv5XIfq$|hVJ{K&&TF<JIhN!5{g_-Q(VMnW4;fUz z*sVg7Lg+Z+1068Cffty)_Ik6cibT}xxoy)*+T8MPA**L4PDB$NiGRnK&wT#9aC1N1 z8g<e5<V2Q9h`u;n8y?&n9<hp~Nb!UzM$;KnD1B*~nfY`@AxPFCr;@1gWIK3%HWYl` zRst*khE?ny9E(J#a~koV$_(0@=Sk{gHUI_Lj42WEojK&v>P_VdgTn|6dD1v==|=eM zJ!@YIn;0lr=+AuQRtBYJg#rtaWd^8{>qNdrA&)AvlVl~Qqb!aj_`Yi^sj4Ch{`@Uo zlvBq>&B(}3zHQ`kHz>e`p>Y-TV=(5)`#oy45fZ`;3hL3&uxAW0TH0lr$o=ceiOz1! z=VWA0YhUT`WvsYpw(9*o2)i@)SG~8N>M0TtM5@^?kxMu;jzFkH_(}^PRLrfqz*PFl z?IJay!Ox!hj-~^J@Itv=ODwj1std21KS7`ZADj%JBOT0Ay&2eA#gfvt4VOWlx1su# zl7*_dij9G#UKvkSG>TsiPg%R7!BT0Ms_Ge%IjsecLdD+IuBC}wxn{G-Cgk+=v^xgU zpSHE`d!2dFzLgKgf3?uZO)u#x_^xGua|c0j{#|Gnpg<I)o5Yd>zV{M4gr1zv<v!R? z#F8X3+!!ahe7z-;k=o+S?R(QXXA>-zR=$7F5*Lk6+n?Oa$D(k9Z?080w}%@(FVWRi zKUfP%e*BEU+vQ|D>*!`K6iQk^q>|<H1Y`hr-h;LnyZecMTEyzER_|7Y9ef7XP-u89 zDAvQ$T=Vr@Nl4d)=DnHx7Hv8u?Ii%nep~5cK+F&T@Bi}HCyJ1rD&JZOnOI}1orLg~ zjo(XcBTH@f#iERjX26|ow4^K<fJAt~@AZ(^8R^rw2>#TVOu=c*UEY}1P1}8&?a+lM zcmRR5O@@si)>mW6JLUO$1f&>P0d$zW23B@vf{VZN&d5}FY@P48|1=x^bt>^ZY$~;N zgK@JlL4<`Y>Gc`K3;@V<+9#~JYk(iDDVsu+{6@~nPw}OFYbCIlw<Bc-U3xSn4tE0{ zRZMl$*;vr+e59o%c$$1%ogBjC?ru;%gZXTciASJQ7aJ#+C6yCwv>!Hg^0K+D4KKHQ zbs+DdPK(}+-j&f32IFA{GnA!O4G;|bblXCji;7VeX*EqjA;|a%XT2n(>6C<H9o$`L zc=mr+A$<}957Xc$Y_#Ik`Z=JM&zXilv2x(U-`vCpE4F1FyF}ET&)Hpbi;_uwUZ#)P z_vEN1uJbj3jCwMKI5{&r;l<!o*N!n}vA(lD<bx)ezC7d0&bHpVO`lYFt|%6Vu>^h` zQDBsoj}`b1-G6-CQ2vimWI)HqB^|<lb@O^t#df%r$9o0RLI9i70iSRuV2<6c2>Z9g zq$M8V;Ra1{x_?V(n_gV8B(YI@T}7dnHeD`V^6Yu=$IHcpBhcIUW0gRVeWfw$+UkzU z<}ZgLdw=u#PC<b@Xn_nDMTY%?#)8IVadXK6BQpe%X)_T|#3MWt2HX|=><DoyZ7ve= zdM#yjpcvKc`*<;hYl%ViGHSnPc?%L*yY1*0hvYi^9AzHs6I&G%e8w6oMmN=zhA->U zw?tL#ffJi*)8kfmHI~BAJ^BDe3q{1(&>7YCInWY$>|7#zT2yw|!dym8Gx1~B49tjT zi0gGKj9WHs3$ZlsAjXzSzbrf8M{TClO(&C251Ma{?VwTp=hXEVeAWGh%jLPlKTM2} zZf-B;$C3%YGYgC!o&O+c3sRWq2N|RUuAa30nY7!PVI8q-JiGQ6Z;{bnV!o)`hfO}% zc^kC8a|V9!0B<mUctSj<rkq{h{DI7A%QFP~gsyTaC2yLn8ACW8b=zFLXYClJB8JfJ zdo++F>2h(&#h=;Zz?p&W6~cmVw^b{zSdSaHY|~vN8E=ZjxH?l{uR=RZ)i8BhAj=NP z!=1JFUPc8+N8f|_Cw4EUpSKc8gqg)9YmzV5r$fIPuDpIq^crprU1~0zdcrbvPEFJy zWE656Z;&AOYB1dQE@CWa3(A<r1{F|Bve-1NX+6Mj>YDEtsQwn^cFmTmW^-tO)M_D} zIC;OirvG24%$G+ZLc8-Vd<V5}+4NtMlKyr|W8s0pkmsvUlq{6beMUdCOv(4bL2|`u z0@3Z^=IdrswmRn{L(IT8igGOdyuBCp6=dIprNt#mAXPH~jS_NcjbmlyW!UZEX)abt zS)Eo#23e<IHRt*wN!qX3vs&S<M>g=VD^w$fo_^x30NtKfTGz5zYQlwvWYAaC(g}fO zRv>2dd5lU!YYxvFy4CL2F`gPk;Ei0*Zbe5_%->HR1N8`h={gV#vbZFb^Blg>iqU8l z1DjP{I@KeB!s;YOnZiaf$~qv=CL2GKLqQYMU#e?zk`6G-$Y>kB_-1E}wEXHrt|jk9 zj631zHc%B5J<SNcHL3cN^XD?CoU>5S9+_5`si9!|)1=O~dN5-C&uRDS`U|(&{f=Om z7@{7bn=S6d#0o<(7+j9R!ZpN_B_CJ^n8!TxWE~y2tg|H<Xtg?hn0RNpy+<A+<pDG| zKHo|Nb69<&7qfJ}L143&i_S<%0Wh&nw@9U>zyS{-?-IEMr!vFQ!Jzl?QF#e?N9Z=@ z1|Z$>P@H3q81cX>;XI(y*_2o<-3@9JYX#hsn7(McaMn90Ivh90pyTjM!NqWEUv0wm zpX5%Il>y0P-XQy`Cp86^88$9DEQj?AQc|yo7vg?uSc4s1iNRfd6xKiY3>Z)LceE*q zurhofT&t01uRWMPa)yoSm{50A)3&;kz+m>+r6ANw)PKlnf@A9tYUJPD#ZrR&Zviq# zA_LxBNpk8~gNX?_*FYRxZTUtb0C>}Af`JI9?JbCx9FVW-GpQXdF^=YyjdWN(GBP^r zZusWSq$Soc(}1t%D--|ACp$}b-dTSS8e%FeAt_la+|vvJgEIP-$12J_$pquwO&$^2 z2<wN&WI4=WQi7wg6xXl#NqzC1_dhiE;#C~{A<_A_Jzo_(>SQ8BoI%cTa5DI-y4@rh zMRlQd;Fhran#B|#3SNwzuc%;N(iAT`h`s+;db_)hF4bASg*>S5fgq!0#WrK8;0_XB zY>ShB#?ac-LudPt+ibEPpI3x6DN|0%gOs!0P;NwYy9%>WOY`QWS3(XgU_BnVp1kG! z!0(LvPq>Q=J(L}42Jk=<q@=wapqsIrUCD1Na|B-?`tG`P()5tc4Vvg-mXTKfm~VX` zm(+~4c!HPDG;(S()M<_K&D?0&+&<FR&r~SqpA=F9-AGPF)U>qBeCUoNeQ3Z5BqYM} zdKPS!;xPvOs7hhr%8xzR?q9eD{$kpO$Qrn8fIVc$8|IwpKfflxW7$j@s2lp4NzkE# zn`K)9E<@AH_hlPry<_D<S2tk(dEvIDp*B1ZDQk&=kI$768lxeHj!7wvQ|wk$i+$M{ zEzbaRZbE=!o!3nCrOIx%R+JH{NzHV>J)C9qC$s}TGIeAKC7x;#uDbPlEh&k?b>Uz+ zZ#_SHFh8hy&h&hD#g>BCUJ1n#BYZKQV%}_kh~s}nX9ZOvqRks?Fp)scUPP8{-82f3 zUI<k1ggLG|jC=Vf#vtX~u{dZghM5L4`vv1Y9+U7>rb%h}&WTp`_b`YgMNvoUe6TaB z&UCiuRX*Di;*sIYWA5*oo0;>~q}>5YN$GfO(P>(4Q4H+z`28}LTurr05Zibk09m6S zk|19P-wT6kf9RJZSy4uRG}!MK78I}SV)p1-!x!Np3f9$&W_O%gYNMIo&DnuFCzW6? zN@tA)5U?^AQQ0cL>xPM1p#R4Je{#aZ3M8rXomAG{>la1LF073w*0?AqqG}2j0jCvK zAVu_U)BfY|_ApoK{+*fKMtovCjl_uaishtNqFnhK-2y*cev%&9QKmx?i8H{uWCJ>6 zQcijl?jMK<{+TXfpVpVb3NVqXilY2mtSJKCSRCK@aqvl+M7Me_66qhZz^t2{{8rYx zCM}pcdGPZ)bN|h{KzN=;e^)tM{SEY>At&nk;9RrQqV1;d)mUnC1RgytodICW0Zaso zrzHq=tcDj5H5C@>oO?=5u<`F|f|m_oCv;>aIHz*J(q9O1=(Adc{er-JrmKX*GR|YO ziAAh^;?LrGQxc1gFtM4p3UKV8z-v~P4aJ2a@tXxOerwkmhg<!7b>Kqgp`Fp~iY)#3 zDx3dmVgrx<{2T7lRbE5s^jI*lm{A!`LGpsB>Kwc%&Cm$FK4-;-8<95Y?%E0|WW`PW zeVeS26h;P#vjcQdfq!IN^~bv4|5-rT5)o&29gy`1I^N7O5fY!rzQqXEil&vLA2A3P zJ2){Te>URd=dYxsWZ_}yTzmLy0#?Tt{f3qvwzA)$HX%mMX_*{Vi&ty+xVP}5-{6%v zbrQ)C<K$wkn^7}qR#2LgAr?n8yeDtSev68AR+yAl0CI3+gVN2Dutsf--~pd!0rG!~ zNR_HPf1F!6fQ+ZP&Ivjq%Z0#k8*ryDTKlf;g9EhJ#q+AqP;Nw;p+vcy2BXt$d6Sp7 z(lRvGz$gOvsBJdA&1`7O$GdMR^F=stZ&x^Gf$C*Oq&s%;JCk90%DAt-3HbPKLBK^s z!}bg+Z~It2r$$b!8)$CY_#r=hJm&)tyOg^2RCp!97T<J=Qdhk*``-gXw*e=W6Axv= z3^+#<2EN9#rkLPpS&{_&6^}O|fEI%}P$D7;HYnw|lwm6O=P|!2wM^!0?WJgmUZpYq zNV%r!K_qiX{QkOWxq6v!&J#pcDpTzt(*e^N-;yy+3v2}jR{Ydxr*Dk3mCZ(Fs2CvB zo)e*{*ppyv3nq?yFHKyc0UK)t-V}=WldF6H7Bk*qZIa0zG~djKZNRH$U>{c|BDCDH zA*?9(m34?N9U&M>%vnFYBuw&;E~0y)=BE{3dKB-*BZls<Wc}`v1{_TP9z#`#Ds6`V zrdh;ZW}-oki?z?`n!l7aoo+_PQ8QJxSim+L;t8t8i7?JEwMkALMzy&#!NX$=YoECM znA*Ps^3|2UA7NHV{<pg<Fu(;m(&S49aK@)W6vi^oqGEs=GC%);8F@D%Ot0ky?4laH z+FMJB1mLKCgVVE~s>d&FBE2u0?iTiAVL^(VgfJ2oKx>X?-?Kd!I{dl&wY!f<9|Kn2 zeB5RmAubnfL|-mw3urLH)k96Fy(EJ5bk2=`(Lw|E6w@&_Q(ERdc>$rMP2MeloZ!h6 zr>1qG8DMrm2meF@oC4V2|B)xE;D*Vkq-*#j6gK+hWN=@#|DZmQIxWSzyB(i-uo49Y zOVb0-eQj9n)F{dT-yh5V$Ix8}lOz2frxE%|?bcD_8fN4}$r4VzVb@mJ3=oIu-KRM~ zVy5R<7lLMFuK3}DzBGOcN~$6Vgt|iZf1XRM5e>BcJw%30@Yl!!ugS(pMk{Jy0JnM0 zokF$+xHcC>Z=5bA{3<x>3z+#{%+yU0_v}+<7%}h~v`K=knl#PK3-E3+856LX@qZw2 zrYAiFQawuNVC9Z-?a*g;^|M4pYOkaJ{(7zuLWKw7)PnI<&2)n*5>3kn0#3b^7Z1q% z<^z+=F;4W$_J)AqRsl11E<rc*0p_48-IMCJg^f;xh{-468JG(7u1mdHdMW#+O-6!K z2O%X%cq{{c*Pi%BMUVNrYJ%ph&kdn)3sbFs3HQCZ@UqrM+S%2+|GcOceQi*b@d#hc zq%!D2KdqSU-Ptc?o)Y^{gn$g)ykW@ywCB7n0}>pfGBP$JR^J#CIGaXIo9-rkBwPnq z7w!=Ni(XS8bxF?L#yr+wmE1w?0JVC<TQ*d*Gx7cJjEbg!trZqyBKJ&fgvmj$BkhuQ zBkf;y@-IMey%6~=DrY(Inl8)c$fywUc(us;ss)6K2)LC>+T3zw9z^8tKM4g7tT0ZH z-*ivXo|%%Gbw%pX^{&|JQr7o6aQlR@gjD<VEv219BtQFG)G!#LYYRK>PWZ%@q!O59 z_r}%IEXkNTadHabN4q#R$3aipt=Fn)V^w4kaJmTuuELs~DDe6miP$II-)W(NDW%}* zKdq{NAv>Vs69}DA`@4~ty-Z&{wWf$S_>3Nx*~h;pOQYKKryPEgCfae70=sU$W7ay~ zd2LY^o>z@?cXSZ{g`|R*MM}jVL_K6O8S1VJ#X5K@Z~)d^u*?BQMj3l1f#9;h{b9VQ zIe5eqxJ{a#0j$|!Zv(om?}A_W488XJ_Md?{BZhu{N*$77IwgjmSw0~NzJJ2UZB9)o zsgdrd5zZ!|2RG|V-1gr*lS^US2by+*>@}D~6`%Q#U!gbmR0IF!-FW#kX<EB}mn&Gk z615@`uAd%(=hA~a&6-OayXrw?@1HN`tnv}llWABS*FqE0`nQe!|Mzi#J6>lb-R%7a z)6ewCuC<ZxY;YE_MfIV}Pa(*N1gIgcr(4y(>jFX(*1Uwel~`-ovYK)qR7Zc`vyc>S z#=>N<z#lT@O9G3BxeZRUI500b(Z}`P&?j&eHCzc+N#}c(0bnq8!F@{WGnoFb4L^$l zww$DWehlrDk8np!em`Ms=}Ntnm2&Qu;EG#@r0FXwX7J2ber9ZywZdqMIq>PwAJthB zzb!rd<GJyZly!iUC=SzQ9G$XcL3Pxqx516zX?Z`}h!tsl!6qqQ{m15x#23{1^;&-P zCSAMz$ax&~pSL11re`^|+_4Nc;l+cPm(=-lc9R|P*#e6{8j$}B?7<=Em2t8pbMUn) zXG}(%lV2K!mjS=a3{UUY?lGN%g9_&Qc_634L<$ZvTRbBs@r<NK(b|a2F*Z<rKb^wp zyK_RC0V(^ES*VgR39YJZ?1e2KIY5-*A7Gz0prI4iBGw0^?*jdf%a^b=X4bXcMlC`+ zq@fTTupI6Ax-yG4-3~y^FTo$6P91TUqd}%PWYS8%ujXc}mwlK9`$H2Ia&aBrVdX^F z){T0dwj9g7hhE!RGrbg?af1!8qu5tnE%Y^vg>^k_6SvmNz1BVN4VhD}w7}jcvrCV2 zkHgyA{e}ApZTQnHDCp5UHdnKN>BNCq3NCKzYg?^%P7O_PKA!XcRz&H=0E7t$4bE|i zqDA4`P^CGMS?7s7kjV}va_`<A4oTamKpt~|GSd5!UrN8BQ$h=}AHEsM0;+Gg1D&AX z8&XD^nB=k(Hc@KkdX)enlAF8u^&)@3cR_5TiUzR7sVVFLo2Yrk8!O6w@1*YgS(HDp z88`>{gCuVycUO3hI@pSqJKF>!n`B5=+dsd|`{d)h7$KN$Tj-JgWh~NN`=i;1O~H~= z&p+Mml<zVL#JRa8Nrz;EAj+c25D%WKB|?p(vPg~RH}d>Az2SnBKJLFsWq~Z4KTLm# zs3u_k*4iCX;h|!|X#p=6ioqZoR}KwMHg;qsKS)k7{)hdNp@WrFZdY|qt)Q>Jj6X{f zj%EB(vdkpQ7<oGHyi$ykrc)=h2sB6uh;!6;_ttQ<br!3RKLim*QRgljIom6?J{CsF z!n8k#8tiF<|AV?AVcG?!q1*uo7A6gy6m-GzXBO@;_XDSon?yV~!z?!a9)9un`<U!x zdNZ)?^D83*I0b4wHl4aHy-E;Z@t1_d!qYB47N1;<B@wZuOc=hL9!=LcF%S%|KI4Z? zV1ivu2iebb{uuaZ*KP1?cB)MLB>d(VwxUtK;4}{B#Qya-92$@Jy|A^KknPjqR8ZZy zE<dQ{ne&xBdh`!|B<SGOqjBwA>@+hpL?Gi3RA$le!_c(=+|JNSr>mF*-$7y;sBWU# zIuiC@>W5I5le~x8XYsa7T-I9NZ0t(su#_L8Rvmzts&7b*pZ#fo`qQ9gPAY}breDHW z!k-2ye}WH2kM^n_xWKB)fQI}J@dS9y^pM4rkcOCLz&Zz<!JbTHX9AVY<QypQ+`Q~? zU$E}+4+P(5Qj27*E2oIMp^C<n+GvY0J~=D32rw=y<3q8GHS?PXTw%KJ=_4Ot$)2H_ z*!Yqkd+2!_n`EYjc*#A0T`yhS=ALDn-ggIl4wA5u)Z(m(2*DYV88`hrld~g&8tK~0 zpXt6l+A@QOhOfmCkwN`LIMdZ6fUs_WIYCWhq%IZy#fIE_<jnnQceAJZkuvsL7n8`9 zeZshgdNjM4GK|SS$E?w|fy-#iq0D#DRVIF#-EqRN;mxZl<b*tYBv`{n*MQnTeIV(w zS+(3+S4UKb_kVA6;_rBeS&iI7?b0yiTu1Na*%e`m<5S2Re4S8sJ@L@JJSDbv<hJ;G z3OEg_xu#RyRkj+SMqtPf%IgDY<9~U2VE9`vN1JrPhtON~UIg8{ao9u5cFiSf`aQUp zLT7-fDl)h;{61H-g|Ydk;w*EuiSs*V&5LQ7Vgxx+^Z#S&o1!a=wryinY}>Z&>=+eP zY&#V@*|BX_P_b>>c2cozy`1*$eeaB)x!V5Pt*x=<Q15-bf>@#a`qqkCCjGvcN+<9B zT)+lPWh{`6S6e9Fnc8|n*~8_+F%9HH--MGq0a>|(Qm;EoI_?u*&-Xl45%1G>ip-sr zOm}g3Qnd#TOVYB&bok!trd_O?J@&X2jA`b$2^>`F>NB?bvGQqzJWcJNW8tF64`DAQ z!Q0uCsNem~aGJFPT@;1dw?>He9F&Wl-Q*wu2@d;{J1BpcHheWTRdaQ8l2z4Fu6eyz zEMx<Tf!&O}vc-v8Nzq8lLP5>1Qubil_Lv0GXo*+BC_1P=P^vgbmlBjuy@YmfEcE}s zs}@Sc<oH{ns3vg17-#(J<LCr;2w{;ti&ce!Sd7lY*-0W9<k<V&ggl@9mwlmh{+U4w z@#xK6fQ9G7?7DJAStK|`*+u<E2?s`uBBkIm^K0~kd<OKpgE6i#-_QKLGEK83<Qp#S z_6t(dOjLPp)+xnQj&GJUJnw97{Tt#h&yN4g%XL{zzDQz+68Eo!$%b9CQe<3v;I08m zW2@gE310fnLblD++5?JKp}>b>x>^pTe2<fk<E)_y<7;kq$_%!co(ndI;_&A(=n7jV z$7%<6jHUw`%5{&Ji@5?^hpSb(z`|oWo)xKn^fU1}3Xb2N0zPP&-<3rkrsdy4?||h$ zOHh)G;LDi~>x?!jrTVV4t4@RIIe$`QX{-%NkKrX_^?Web`1HG;j(tQdMbvENBzx1X zn=2{TqyghQq)F`23|X;NE$XoL|GZltNKl%!K`w8;t5(MR1?Z9_*c8se*#hni+%_?v z*qrLmcbo>M|8{XE{bAMt=v{i_EK^{;yhBLoOgOW=g;CJ)djQ0El0haay?Y1I)N$ne zD{_M`_hRV3hho`#qfwljg(0_^wZ9h*qRV@tLfgw^IchK%08)PhZZuY4mC3~VS3Eat z17VPTN&iI$c8Gj-Coym5v8||?4(9?XI4rzsw!ykxgEZ>Q?=GqZQiqzbebyE6dH3(@ z77B{%-qyQt<NaHt#TCkWg1=1g3&K`WlTAy!_a@^ps((zDv20SPl<&fznPy9=%VLUm zZuYU_c?{$*1?yhd9)L}<N(6faE1N_eKEMUBGe<DAJ~2XHjT8}f<gl{e)B4-dG%JBJ zJp!AgY6Eb0UTKb#E4;oT4_=bn;mPFC{^Ojffg8^W&|>BGp<2U;OfRHic<HXPIU^&Q zPnSK|FFtb;CHNu#NW_PhlZBG2opD!6+4wv^Tb~MzfJZ|^5xvLFFC_zT-cMkgO0DOA zKhv#h5+wQO0LnSlvpjMpIF#6{OnRK1k8CJ=Jnx}pwH8E1YHV#~CDQ)C)RzBbzA7KB zkF)c~n{W2f*&X?zyI=%Czs7Vc+)=@Qb$r5K3Zv4ZwxJ}EDJ9JeLMv|sK*%M9b@c^Z z(;+Gnw;8tJhLjt(U=HGuFAghAO#qBP^9j$cGIA7aBItr;{e~&}moh!65xbhU(n1@) zWmNYSpkyUc`fI)gYKBeF`x~T9tT;DZWDGQyU+mOtFLt3}L6;o!`d9Y2ZF$A)c%qxr zW>!ILCD63?yK*K$0Z)A2DZ;mKTV?BT+geUx2G51?PpWq3HdSwfUJ-HvO#L|5?(wbr zsFe>)L6kd>(2H1`ebb$Ip+M#rMggw}`H5;6z(`WQa#}yl>vOVB2)f89@^24bZN1Vz zhn1mBcUHpgnfTqfi3}|$h=(~4h*+8D@d1ZMgKFGk=oOyVt9N$so3#zQuD-hPLpAOR z-w1jLkw3E@-Yf?(*@sLnEjP!eX1{FJC3Kw}J-qF<ntZx=H{1H1#brIxy)6$u(KHzO zvfF83nzr8mRN*`uSrY{Whb9gr!?R>b>{-ov%!D7azO0cAO^l5*L0lmG56tTO_y&1> zGqy9I1*xtjqN=wqqWKiG6>jnQTwI>E*cKax=v<oirQt~|K49BWB+ul(f#dH1>{B3r zWgV2C5Jp+h+E69^vdsMFJy9D7xh;inCds{~;!b($?*?p7;bI>*JeTj!*YlqehaogH z#h0|He&F%u$=5{LK}Xu}$RZ+)n2f?|<o0=x#_MNT+`i(b_mNq#;RChE3k59V-SZCI zu}aKl3(wQv2Mc>SsR_Q@_6dYf_r=fBE!zRPUwV<}v4yUki&-Axw!1WAbOq`21~8CQ zD!~_Q3scS5{PTRcZKyVW1KUg>>L<l{f3Y)?vVUHeYG`0gnEddijTE#3MF)YPkYGi3 zkP&UIzqH%F!!dohs)Iy1v9*4reaB5DYe5G~$$E>$d10l4P&h+QIYS8O5AO5W68V!t zz=FN^_pjl|p{y}C6x^_*CC(~~F;!djw&&@o?en(YRLN_{>FY>CM`CKVe6DqQaXuiy zBnbJWQ0Vt_L8q)jVHKjk57(D;SdaClegCV;rFSx2W#l}%w1Nhde&o=_SnAx9W+NF9 zPrNJQ|0^ZF-`B$8vR_r{<OD-llx*AG^FcK9w4yGoX6K@P)8-P&65T68gW6&vN+N;$ zOq6sR$pR7fdk;HFS}{3%ngdi%K^M7<oP#@9KXM69-z6Sy36fYHlB{7^+M~?@3Z0AY zG!7vQt`nF2z@1{vrkN3ES{&jKCCK;)C$F~2!nlo{6axG(6e1Bu3O#-+Zf2sr1^oi4 zE+tcw_cCGw4E~!D3go^N;ecg5PTly+TqMn&Zh>U7J^MhfTLPim?uIJ0R1G-G<dHaV zYhQ`p)|?q1ZqBq9Fh<w$a)(!jLNG5!5H|Q*9+1$1d)<(yUSo0MWC5u8xME)Bs$f)= z7DX)qpt17=CYU)6Y;d`orz{MZ1YPGEOZI8|kx0`(n2QCh>(=bzXcAF3kVM8}t=RbT z{_Z7g6ik^Tc;G?(fu6m%!|i~t@$=Mx#kcM#M92=hD`uP~W}0rgyllD>b;F0S&TJf! z;DgWz6&2xw6+NhEZQSX-tUbpKZo_`LvIVhoNGSWd?Go0Z<7d7pXYSC?0i0~uV&3eM zaJHX(<(V5T4|!!}xDD3-9iJx2kYUQogv<{xA*8zCVq##UqrGrY9(ZXfcLp=zxQH%p zIvXsXN`qtCUEs~eXky~k2>bW&SXLy_=hH^nDAI<w`_umYz<`}%4R%C*#=zv4jtfDr zgch+v24X63<;%jSvTNq?dih=HPDd*aA$g^l6X>%twmR7uRbrgChuffO+wWLMxu*;& zUy{m2!V_ZVBtRR(&8D|P`MmX#5lAWoykOnA7D$*txf|}=s2JhMZp1KethQjHFdTEF zdH6Tqg1)~m?}YqyxT5ak!wnH{`Gz&ZmYzDtoUP%XTeu-AKn0Y1?C@fTBIQQzw!F1P zd*nifPV13S3zqK79oY~+uRC61XBj2_woG7@GN;?)Hf0;8sIDO|g?UG3NMH<mH~TI9 zGliH}8#$XSY!syfP0fZdY#jO~IB<Wi?LOkPqE3+}crbpIM});v*0q~C^X!i$|1X6_ z5E<liAz{3}Lx(~W6OM-8#Z&25F3$szBjRa4M!)E#UzD;{-fuii{tacnLC0bb?mFOg zz()5T0%%?E1l@M?8@|;dPW_h##BgzLJqf;5Lu>S2{Ck&sU|1q5Nzh5<I8xG5x_bX| z_3nPpE#Ieu{-=6tkOl_>v9hv`6iP8W!Wtqcmm2Ku#(F-TEpHC6?>7)YKx}{6d1-u` zp4xP;=|Ae5!_Z4Kw?}r}zE5B3oR)(!2O+RR$v{zf7(DrKXk!^A6lQ-$Nl{Abslpd^ z?|_y(F*YHJFdb7TWLR}>yQOwp{PlLPvBk`f%)PHLcP)iuyrr(y3EsDq39;)BUv6<M z<D0Jv1DV1SobdX=0zW@{g_0GA^D0QisofGDA`*Wq5G@6r`dtM<GoaGMv1|q@*VB}m z;^#2%I1n8YtfqyyQ(YWx+m<2uErL%_y+$J3!~{ZW^fSA5?ApR4={nYr2hP_xN}7i- zz5jp??g=WiK$t|LtNt>+638oPTfVxQFJU8yqohvx+shasQ;#JqQ$tz%g#D*C#)!-6 z+~{1AY-lUFVD4>(Pg*MC_c^um))74Acrq7PbNm}uxA&9hQia&$!pO_S)?0veLPYjR zkHWrTVv`ZX3AdG;*)MssU)kv%URkwd53y*cSJEF>Fga`hocIR(KMPSk{=~sS1e6<| z=o&h2jDNs{CGoJu{Cx^FEb4Qu?oJzm5!Q_CR{A9EoUB))BAQE0nb;v0<4+)a9W9#) zLvp)4zS6c22%r_GKCLeHPa?C0-kf%3b_sahH1M!z(Stuo@rUzC8daAS&qHH#-WKb8 zhNm`S!xr~b_&q+Gnj|u{7tzyG-u4d4BfE7kxUDKg_{ij_A`12;zd3!ryA9_Hfr&iU zSIrfz!xBy@U(0eP2l61K=M!SJx)+B^-e_4?Qa^a(!DMp^Bf|&tHoamN7Zz%z|I7S{ z=x_5q_BY$zc8E&<R*f>zM9N6FW8u39k-zFmC;4f@%Ne-aD4A^h!Jh25m<$?eY426e z>=tVGcv_Vhe~NK=Te9kr3mAzp2|@lX6qBG7q`eL>fQZ;l8UWpMghEr{2FAk&WS}Mp zg`pr8QY?Xi^NF;_-{#a$Qu!_$KMeMoCtOrx#UOfcl8C|0W`<)_tQ&(+_&JG$LuDvg zseQD%bPN?=d{atMi8M@-mt!+`M37r1>V{X2$6~ulB#v4<=+4@~u_i*~*`o{yP1`k= zonHCqjFZZ*p3<De?R}74N%5#*z482{3Y{vuU%Z8=<t}(`9G;kBn)UDNtqur2n_xVv zL%6fnaHB23aqF1kt?_sgA%pB=Nig5g#HLk31hExdYR=!O1zQgZ_+Dh0V`1DcTxV`K zfflmuiZQ(0m1=ky#@w+eII3V`fhjZ(@~PEAKOaIE%DxoAI7&^wE6t{J4(-i}C64-Q zFDI*p8%QQX$|Ri*BCqF(#!9akzec0}j-v7`{^AEBlkG++qPrMfxd~ou+;rMSD3x>- z`q@1=U?oYaItp(%1*)nu93CI^4)OZq%a%KGa-4RWs<P_Fb=$wjrl#P@QkxC})OyS1 zu7Duh$qBw=fGIhk=@YZna9EMRoR^{db~2ds%KvC)y6qqDGvB9m=m-TPM?DXEjkM2n z?HN#otY&K`3R1C}j^aFw<xq@3P*!GC7|;A$G5CM&vrBWI%gS<=Q_xFKclrAdyi&`c z;b-p<VQ$I*KvH{pMA9f(NJ(e}$;c=v5FAE(6PKH=gt|TN97AumGhALLR{GQ|nMG-v zDLjGzb`RAED*)<v0*0nNhj2S^#38&NvVj0i5;?@4@JsC3;D1m30BaRixi#aq()A_A zNJS*x3=^+>10A^s;Dlsz$8r^qy{?M(JXa-gUgek!Xe4|;v)p!#u5c11O*iSE3cIDg zYS=*J1~xpDxbviYEQd&LipDkxGce3}X{?z)-hSKv5gS>0cFXnrIenDx;04^}TIQSL zvF3Pjs16UMH_v5xe=N3;rMB5Wh$5F_>lK~jWZx&oR>><R$KXp3xQH3Xf<|^Nkv>ol z)DgSoiYvQvEJn*^TIsrisW=hvISKhmSpu<C#a88Y)p0<CiISVsdbb0s8mVX@DK|%( zP@<^hgkMr=s~c2MAA!47l>7k-IvZF@ULP3Qxxd^^XX&m7v-LNjZae@0t+4&LR^v8z zKiEIi;&!|sU&NY6{o_sGJB?RC@85$3iq>k9Ceqy_z%%f=z7~e630Y^(PF2-oGOo5b zUlp|@^(EA+{wV+Li~M*}e)um0D>iqD94kqui>S?ZJHC|ds811vd^JMVAqyFhOgpd0 zdym6mv=vZ2EwqW>Yv&GQZLQTwV#{p6_RFWl^kDMTQP#eckK3pvj49ZKE!)FW_t{ey zUjFTZ&pkmx^uJ7VpQxh75(*ArJbxEa!cl~w#xi=cdozl1Lt{YLiiZ#Dus_v5!WX+k z%u3Ek!mSQIo9TazJ+i6Oc6U7Rvi=sMo4(V!=KLx-JS*FFpH?_SWVtk&9dOZ|R8^iV z1e|e6+5xj$MbJ<sZ7?N&yr#&y44oAK`0B4jiOHT9Wp6&%9%i=LoIW3bo{9BxQuRwg zU`8)@00~&^JSs97efF|$bFZLWz1}z6Cw?Xn8;G5T!)YYK(Wyq}*sY(9AHlghC0{6h zPL2A3HixP9X}|R7Vhf<9`V3-CPz)0UNicWg6)0D?Z2GLtGO{VSWH`3<XVuRTl0JBh zY~#qED}o%s<i#zSw%Mj6fujG*jCvE_(cdDrjX@palRlADX$VlU8QRwdJgCcjfzZ5y zG51=Oz$V*kq25NkA?&ltuRonf%gS~V;d;Coic9N^J@_LphwFz8$W(a)mG8taq_u3! zZcfJJ-xA=?A~IJR^vg9PL4#``A8Y{NnQEJ;i68r?A5zeY9}NcSvGv2L;5PVtenybq z;BUg*F=!AZsIu_z(QV#yAM@Yr7DQ|dA*1^d$0>!&9JWIyy#|}b)97{3jpv-3yLJyQ zYFbW81}chf^ep0{hv{z-e~+~a221a3J(c7*4R<E?+ks#@*^VVog-pQ(M~Hok9^KpW zM&K@7vSc>>TRZ%3eJ+o)PKqNLjZM#HMi9>B2817$E@8rK<!;2tDOh&a)wnJM;b=|? z=F+gd*A&?hbyc2YcKTD#l(bs&8ygd(B>!dfw@gh9UG5LBtC6XzFN3YYMWg8+@vx<C zgc1-E4z;*3$qr%Ur-E`8?A|btRsOPh736Y>5Zd-rIvsBR-m~pHeRL@+2`q%R8~*U= z+e1J~kne*;0gn;T<9q&P_5$r#n1`An-C$_~gGeB_Wzs~*jr(moQIHJoU#}ksOw{Y6 zben%a-PQ}@oBB06=xor%8ZFhsH*Gnz;vM-7%l^w)x8X7703>(^fCM7-h$q0&D(ZKT z%+CLL4%`x?B3`(QH%76`Rk(+XAN(Q5oEqmR!R8DzEY=+>5o3l+-)+cq2M@F$CKeMd z3X2J9_$3ErrVoa#)>1eT`)g&%!sgM|s0T&nG6=2%7KHS6GHMrd$bincB|6S-2!|+Z zYoqo{xoAzgN-2cg1aq-_?eRmf2l}G|8VWeP4Fli#K#UKSW87Ois_%2gpwT$&NC=># z=@J~J#>rVJm@jGfZBbub&;bc1Mz9fM`yJTP{z+|nk>VqUFNu?$HjYlaLp;EwZP4=s ziey*a1uhxmmfmS`LYr&*ofXuqKLNKZd;I^B%PTl)IeK^kOqE?O65C$KLW)nZs!#Pg zOa1Peb}!mbo3&sz_m?~5#+Z;4r@F8(pZa5c&zdiE+Sb-rjg5|~HlySx^RzI0g_?gu z0gWqBWgaFgLy)rDj873K6LMviUbrecp{-51?MIrg5?O5zk#At35=Uf@Fq)GvAH8cy z2DvC+FpW&P8kLy>%?$-sXo#8bSMRXsQUA;ONWUbOiXrPb)f!zW4w7p}ae8ON4Ql}; zEU+Nr#GZd-H^lo&={pvYjv<V=kqTN|6VetMu7Ueu1LzJ(=Z~E&KHD!Cf<oMiI>xKU zGUnx_n7ULl2mS6~c67`LjHp`%7A_PLO~}n8;*Y$l;RFmWKzKx~PLg)vd#K?`2P6NP z1$iEe+Lt7O&SogYhj9Y5n+2Z6A&&M@j(SKZF2-)VPQderDSJ?iPVs;zcZ?s4xrnQT zn3KrhWN5xaio%}eFd%Z{R{slQgY;^DiH}6Q|8FXc_+6Nxzl4hKbZ@-4FA>s3*~aZ= z(<Z(1PHN#qIJ~ztyWkh2r4LZumb^3>IFqSlQ-ILC6ERun1XtA@Ub03SXJ1>h#%DKX zd39wsV4mEfcn{&a(`oBASf0{Sfm)*>d^J=RBm^O0<saUF$e;SJo-mi&Z*j=3LijJS zG>+tmw4}t{0m%2VDn*2_NddpN*#Rc3^k2UNw<TxU2lSF?UHFXA#;0_%H>rHv?e=c& zH0=1p!epkWOKr-$D}B}``g)u;%CPLmaC0!077o;Y7NMsMm|{Q;6=rqgINbh=zVcDD zTd6%dOFk3K<?xHDUq=qz-4twOWoI?R4j~TPZc(rZp+Y?yMYkeTjbz;PL?Ajk?6j?( zzKMf0$J2PL#}iv^eEL;=*2A>s?q6Bag4o^R@p3?QxwZRBK*CDa1E8QdrjBzh0Afb{ z4a#@C8q}{YFSj>{|K9}Y`$WdH6cfCCyl5{zV#?`sS6*KEsivBmm7bZBNR*j?f{Y0c zSv4aI7B(Qn4s}lM08dbL?Qxv|LIKJLu)c><@T`6b{q#QTt?Cz=)@?J7S|0<jd53UM zab4~(s>bd_UJ(BRcd6tCXM?DLp;@>=Va~j6vC{~wH3NRI)Nwt_1EKz4Y*LL^QsS*J zUbbETzPfM=c}M4>Ep)Q^+39?%4YS#DmZ1|6(x8G$OxbTYe787+9kRN@yRWWB#qW!n zt!%JbL>FUt>f2Ps<Fdy=B!CH+qqXfCrq-N!!^jna{yMigD@fl?=VT9Qn5tzLCc#I( zK_n~IrKt3wnYS(6g34LQRDRuwkOw-k!Beb<Mfwy<u7}3F_8Py&S~ux;dvo23{QNDg zBPXu17Gm4(&cBtH@0zZ7N*w*~AImo!s5x8}wJvg}^=21Ba^Nj=kl{wl-fHU?h%&CE zyb^7K`Ywb%DF?dj{&kQ{qvsCtx`%9vpWF4yV0(ZFOE?Qo@alp5H-R^|%al&f^3Gac z3>L=wGs15M$^4_~T#)<g%zl$nK4@VgkHmG;Q&R-8qBfjnz^X@UZj4XRgoqbqN7&Nb z2FkWV*X#b0&0r)AR#h;!-ez(sDAc#(_vciQ6l{8UaO3JCLoh<z@vJ1KB@(|;ck2M- zZO}NU8EH)=lo2<a;?bkqgL=jT6%JXJ%5D_R406{%!atl0w+5|ND^*QR@<`x+S<Of; zLmv5+mR3%;yV~~3eQ_&KNgg?g0A87PkTI&LaU!Ak0JOxAm<yc}YRf)i;C6}q4k|Lh zL5_b1bp`pISj&0tYO1w7fX*kTO-_q#Y*5zra4eO3PFRfEA@Y6z#+sVil7g%u2Ye{G zbxqV77K#(?)4+flf-P?Usi1XZk~+V%JYX||5iaIw&B<?NbIj4ve&epyhbuQ(_{=J( zLDn9=-+)Kj!U(gW>QJ47UaJXJ5Zn=N7;m(Shlm4n_F~?U;YfGzFHK8SKk0z<_7d`B zE+;HL^a~3fUn(3sgmbsB=39c3y;es`f^CnfAkYb|Xp5YAP5jKBaxgCGhO>EX@Al<{ z%p5$Blp7rt8Bx(cY#nKPU6^sB1?dJYqkwRz2)t><<Cr_daEVh4)hS}PyqkpVI(;DP z-`}LH_&t6LNu+)XY)K>R*{y;<Z~K<*h`BIP3Zvy^qm?#t3}sXF_8`zQlj|wx5kqmn zia$q8eg}<a74_Q7b^<@GeEzy&gb(lw>MsK$zJ^}&?=r&*olM^lv%MZ0aSrx*rfk<b zsykD?uD05~vbHZ){8!$O&u<&3)RZc<=B_KAS2H`bY?o9y>rvYj8fZ+{7UrG~s%PLb zb@LIX7caef7_W_wJ_i`B;kf@1^w>q491+l6?42_t;VAP{jB*tPA2zgrlhqkKONNA8 zaM`cws;fU9PU2z0{+AiXe`zd|BgjwZc6&o!RK`Y*`zH((nShbPM#_d9%llXLKTMHT z>D=jAUmhAl2%~+?SU4m>NDN4lQw|puiAjwndyyz9)%kR9ci2BpX}0u_c{bIymdp47 z=M2cn@MUH=g#pC=;B*0icmaJuFf49lQfTJnIDgsWUhdUU;<h~#q%2(8#;iiZcb8$D z(6_7bn)a-1yENys^y@0IVYoB>BSBkk=L1a8zMH9fb>GMRJ-5h)zc#Ml#T3x<&Z6C? zoAKCooF{3*)H$ZuXn2kX_x6RO<H=Xlo<O8B53-yEgft==9l{)45a>--dh~~R%WBp9 z3MLjU^Jxo=OX;`Md;hV;4lb9_0DfC55w7uKIZ}wBkY20WO@x5U4JCeNT9Y4gwmTE~ z>#}_i6>N({;GPPxzA@W^dj3!0H7J9W$k3zwL?O}b;lxz?9#k;E--d*Yircn@zJHlW zWInFv>DQ|!-^+P?;ET~Dly@HD#?Xg~4~q{|HY;8qnjNwE3=_@@Pa?Y>w%VRn(&<F7 zu7-6G!{8KXqbF^FE}X&gHmh(=?;P5YnLgV!$<@D}<?I+Te+@Qv7AMtpZw9HB$y3jX z!r6>5<pOAD%~GuI${O-{*8b$<FKBuP=z894bH)l2jE-fVXSA=WHJ4M`hacOpp_MFf zPf=N*C2Z&9Md!-_|D}(hW9n9(cQ#+f0%WFX7{?ju<tIl&Q}txj_004PeI0QIws#($ z8;Yx%@?kghru93#Z%!A-m#g!wae64@<lR^6{;RbkZ5t^OxAXgKF_TMvT92JwpuEza zo}NK*(l<+0DJvx#sgpde5mW~idx!vp2vi3Qx)PGYfC@GuDj0EjX9WV=AxXITY`U4~ zyALQJq?7TnczJV47sAWP%$%LaNywDMiyGImD-4_3P9lK_;V$>R1IS1*0v|Sqp%;GW z_!D9}!ytq;!m(jNra1-(e3n%H7~c;pyHBvvlnFFU%K<<yS3t#zE>U23<1iDMADqet z9BAn<hpIE=m;QpVDd3rNwL=-%#Gl?tVD(~uE|VHC7gF7HMJYo7nlO-P$&W0nz6$d9 zM>lw)F+Am);-Q<Zd){xeS(k2a?LAd*z#&BWH!Wa))kyE)ep$Tt8yUX9g&4N`#HMze zOzU(Z4F4!P&G2&&7U!2z0V8ot#70eR^SSB;4T6G$5OqjxQONSV&(haavGTN(-<l8U zIK_J5kS~?s;35Q8tv2{<Ks*r&c+n-v;FmZArqHRWcS3VVIXULC4v(8(DQr8JFm3;c z0K~{m%F<T=nEb#4QnR#H_Qo+eYJwlu0(otHvpJj9Gj%6zUu<3c3LP$E{p=Gy{c=a$ z`)=Y_z%D4FT{Va`;Ob^#b<c+xKfnc@VB3DS*1)fbrRe$!?)eXy{bSs->$mjfi<;@D z@rkgPyq1H(RgsWnH8rPtI`N8me`dzjqZ~Du3QUc?T)em5RNSxb!owDhi?jAZ#zFF} zs%a@a9$=T(a#fME^R(;TEBMwHDv66KxA%rB8jnje{t_S|fn*%uM&QqSo7I=HF(m#D zY4-t6NJ!paYZmj{cPQ^j5U>L2Ur=A@`ODM#CpV&+5U^Vbhg)fOv!eG<!T=A9^AC5( zD@!pBSoEZZ%a(uu6;y2Q>Yx=!6WhEz;M=t_IX(o?84WWRJw6UUJ<jR%-^cf?!fx$h z4>-CNgpY+#lWA|j2}%ZK<nGr3MAU%UG`Lraf{qLzpt)g=LXr&(MG5Tv4+8|sBVuOY z{C;ljR>MBEdUM5!q&BUg_wzLI=4LX-^y+D|1<N660C0!m68Sfjpsy4M_?snGD3j2y z0YQ}g4fVT*Sj7h+9ViP0h7#FzgrmC07c5433NY#`mid5$#f>2}c!N{iAJX}Ft`cfC zecrCpA&D6o8(fC=c|5-rP7o;yyKi8Zz*bh4E9O}HwfPdoknDfAm9(B_2Tb?%I}WzD z*P!r;u3sqh&WzaLBCT)};mX-POk=Hc)H*zmh|(LJ`cnkKD@>gr<>%W>qLYk%f(aPo zr~1szKaK>~$hap6_&wZ5W5U3Q>&}fgo+xtf$B&W3s-NCaDX6e0B|Lq`qZ1H~mhV50 zv|?W@d1X19O!3%Z=9qVPjm*ZG&J=m3uQ#>xL~UOCXS+2_7#3HTbt33j48RH`n2X;= zTL$2ev70}KK=l4TW_9RQxvJN=1X2}4N)7}(olZd`()*KDh8Ozz?7V5S+3h^Q!bBp3 z1LP(~M(JpMw6u|OP#=+i_jPj4jz{<<UD;6sD_-Hzybmr~zTDL9rRg8f!8Ov(hqH!8 z?klhM;Wj2;E+mT(zP7yvQNc&SI+!QbPkAKtfxsG=K2m8SBuo)ah+w<CBnZSY+Ok{O z9Q0JRee@LnQgVJlNJ$MPR4im%@R|L7G$HPf5Ux%l$zhRPYfWz>cTp7!9i#8vnS<*{ z&E9@?^HueP`Znh*2Chehi3oC8`(-F#orYkw0u)Zf!H7v)?pd7uzqOiN#atzHWp?L# z{z8zUsRkA@>qs*<@slYo<`oU?aXzhLZrHm4`yV!L95K*XbKA{29Y-x30eiyX&OeSe zv8!KljpM~D`(F97au72uEIxJme1&XAKNLGj0Qd+mB++!Xo9F@Zo#L7{rs8_&ol!{@ zBx+|g51wFYFlplZco0rRjkCpeOJ2o{++NoUJ~hCBV#^*vu-L)LJionrygpV$GD$=1 z!+K{T=E%uyBH-R5CIJ{3yGT52uVX2mn|C!QGrO&Qt;Ne&OGN?Iv_2J<U@&Id1l5CO z@Zhj-8~@N?G%;*M!NM!lwXI4kC;;Fn`ojee%#lwr?=5bj{+!d{70kZdizR*V;Duw_ zxvcRQhK=N4sPO(Y6&aE5-*N&EouWzF<)MA+kNHNS!8##eJs(lcmfPyXr~Ei01`~HY zo6Qu!M^-9<rN<G9%7mBLNc1KeC!Ymyc82GAytut({o%$H)K{QdM<{7&CkSILUvQ#_ z1tQLkJJ$r>Ekuua%k!dGR%S?p(P6M1Y8RJ5_Xo+V4`+x-dc*H!vmiDrnwY-N2lHd{ zE;rXJPiXL~3<>w!O<*F4=>zX?3{ij*aSgmOV7>{<$ejV7K^oPOW3+WdSiS8_fb`ax zOk|W?FrO;qT2RUYZTN}K`ip6iL}}^=plsNda5P;-M?glxIuhy5@6D%)=<HBmy>piy z>yP-ZphHd9+_|bwDuu_n7q}X`+{Y-H>G}N>(_{gchb&PQ^q6_>`B?O*9+!ChKpcfz zsau3Bifl?8-YPbit(Q>^-%dA(75!2CmppHs3Akl?hWpmGBa!rSyMyRMzc~h@cIcAg zyZcn7dmEdDc)xW9Ct^Tq(kKLd;2UuF^2l*~5@<z0q6Y|5N4;(2?|<MALf~J73jdUp zshg_lU+V2gqSt!4i+2WfSVG`4C6tibh6{h^vVf6O!Ul=I9)Ks-$vth8u!G>Q@czVn z-07?RsEHqq9p90ivdfJp=P~}&=*`&2uad?fRp5|lly4@Kn9`~#)aV9<kEKG7$SZJp z-3XSN{)W#aRC;-5Z<M5G_=(P`1fnN4Wc@3ZmQ<MYgn*>`jX<o(wstW7z!$p(C%>@2 zjKyIoo4N81RYkq;Hy|ZAvMkI2P{+`I&8qYrOc5~Wh_$|wDtbMCI<w^hm~QD8T#C>A zXu0Js9k3MBG7!Cir<NQ-OaFZ$=&%G<o#?x~YZux9pH{M?_pyzH4KU&sRe`TodbF>~ zc-Gxvc4v|_JzzIKI^nBqb9etp>ZLtgX40yJEr01Yj!I{BKcC&`j?{)YX^wr#y}}d` zwL>8%2TFXteu0qD2iCx-XqP1?bU=1`Ex$i9z%R5|snq{dWy{9|_5M_bEv?jqnB#IN z&7{WW_6k+&t;ETan!U+)oKY_DKu-i2#H3={cvy3&>y*HP?;k)F*k;2r2nSdx50=8E ziW{-SpkZ5v!RbohP>b?IVZ{{R5B(G6CXBw5M822)VZ_akCu1|L(JsR~$>F-XXnOO~ zYtBkwmlV6q?x#McP+=qx!7cMIX`>Chg#o%|90<QO@<J`?qd<cNN8t?kt0VAUtyXm@ zyWe%ELx`1fgGeFZOWJN@Ubv0=eh~GED~k9S=fW>$uhpnWtWA|rkzBSM>%iA$HJ&`~ zCT66vyA=tFew&+)QUwhJTFo(S!a6;qK~&*K6g%SUKSyJ+m(c#C%_#0%di~ku&S$fL zeXQ4sg082&4%43at?Vj;r*ByYm%YJ%U#JpD{L?CE6)rXF<wZ+Q#?D=olD}&v8wI@x zR#8sKXZID$x$AUwIt5&hJ1Wft9Rk)wJT}i1o3Q|=OI&ej>vq1hzVk7+jR0Fi<-MTj zlVJI;*35vJ+V?i3^W1$L(9Z<b{*(@r@~t`!`_=mhuGFBp=F4v8E$94N4<>=qtZ6Jm zY-}-jSjk)ic$|FLG;tUeNhQ|sip~$|Cx&*P-CqbEI2J{nm0mEP+lVVFd6!gV%{y1x zB6C?D?$kji1DX?E&+UfksiwQ#foNvOyAy|BXTHb_41xT@(zZ<BClFXOGJK1~{GX77 zhbaOk1Lpbiia-xFHN_NyyL`IlX+RN210pl0r37|@ciHelg5J`lxZP1g&XUnE3@O{G z&H|4#e8VzT1?duPfDNFjz&BtMUuF)3HCa+=gq}RAAT2aNpCSUlNTL0!Ei~b$aO?{< zhMnck5(+Vp{I_oqRWoEMl^~?PVOVT+EyMQI+1U()=gr}K_q|#9>y&z542xq=RalSQ z>5<z70Mof8Dz@K&&Q5H!8velM$c|&els%gN^SuJo?--LO3qHF-NAA!9w~GQb(-Y;Y zH4>S@++80n@BnDUQKTnZzKlAzDC%RM9Ix2^i1)Vgt(@|&ul5eqUz8Me&!E3*3j3A_ z@yISraedEgqo;<T7!9CI4iIe~_ZQh9*lOPf`MT!*E8ke#7&|`3@Yf3`Q#V0bD_dRX zwBET|W*a08=67|~b{m?nwznB*i-NDS53%wsF)axx58Bd3#dg=S@z}&8W;VHsPmVC) zZXW{S1s76eyfvSkTVxL+cX!ka0sE5I^7F9sNI@^AjW7#8Q}-HsOy^ARaH(PcXFZQ% z>uAV?Y%(Sz8(r(Df2se=HHhHXr<Z|KndbAav~#Ot2ivJCD`^JWSn26@?6{hzfld3R z3nJEcHZe51EaWp*R`?KESgqXs#(591wE!+43igczEm>j==Og3zlFi49y6|r+^}m!D z{xBPIEwx0`J=O>rQlB|W<WA9}OfANKYvV#us~ft{pW5<E;-3e--+9b;eDaz2PdW^1 z7~fq!lZ*KML*sj$-u>YCGR1*fYcNIfVk3x*e~|D$D13_80#t(sDEzNEIvhxh<kU+D z-1IbL2ohE5Dc$zBmNu3%z{R4!l5Q{+1+om5$3=F%N%z}Aw60+GZ2lR0dH~-M=5BP) z$u7_Uo`z5gW?0ozp=Bj}!5LIt^v7`GyK>w8q(cH%4muy49AyMU$qACKt>A3)x8TQj zlv>rFB=l{z_?}-J?PE6UV18eGCmFDXd-{}QxJw+793SWKlJbM5kvO|Lp2s<UEqPBC zysoTp>*c*2fi))@j^){fpR{rfQOFEr7<7OGTG7^!glb9&I_Vpky(w)SN&@}PgHt3S zNMR4!ie(>UoJ~pzj98;YzmDJFW2%Fw;q{@z|B~r6Y&KSk-0Z_uMvv~^?ulwn+6A1k z{1D{GWfHU0RR|J)CFyTI?;V_dKp}<{b$rjRua0SU2$cB1%yNZ3?Lqn6(Gwxye))Et zTy;KpJptHWwbm0GfPumYG&`i6NrWxZ4l1#`bkbT;hWrtj;pDW9`5s4hKKPQYJYG|J z9Y(`rlc7(9-42IV{(dG_npWX{KP7*=s+pKc*yza{&9cdh7;o&g0sD%9eddlHjVL&Z zeRDFG5`}sQQG#9{y$aj8O$7XVjW_;B_ZW|V_`Q&7thZ}J#m%H0i!oSwbwNSck?&YQ zykHb)X>tU;QL8d_1|LGAT+$C4?cP?$o3HxE(x~N$ZH{&$Y=nk9(2D}f;=5hAw@nNU zCWXwY!`Iskd84`20>7Jx)c4H@|2O?1`A^FH`CItg$F8L#5#xI(&PhBT|4|Is8?0N{ zDbvKENN)g#sm?^Xlvzr7*bW)VVFJlVyTG9izDF+JI-mD0cejm#X$lT)IazPqj0^<Q zGQ#fXH+ODJHar|2k8VC8^eiW=x{BN2RG}yf%vlaSkj4N3a~<ZK1ce=%4cJ;Z69)$r z9bRMR3GOUhF(opXp?K7oeL$8;E~6UKrorLKx|dYTM{+`Z0KydDihq1{RIS1s_DnhN z4|&G-tpqwA-ut(on<M%sJ*M;#oQ<1^1`HPwrRmh6k?+e&3bpsWW8Efh!Y^s&NWjSW zh&u9Za>FOBR%1p|W#3;@uotWLn^4TE>vkt5dRo98HLql|5@i9xJSK834yP6U<lY6p z!_LciY8<f5_3g1kEVOC6-TZTu3j9?&Gb3FU{o$qJ<zz6~U&3mOy?U!fo;(E`2j_c? z!Nbb|oi@_#lDw0t-Oo{b(mE4d>v7Zz(4V-n<B%?6CZS;onTMb-dS=asfXAhcpu3&1 zhQ#D18F0)X_dp*s?wKS-7U2rlu`HmP*Z9j<2G3g_-InfhY`xG`65!}oALBDg|JKZQ zK@*QFgE2%Ju0x%04QUjzI}aaQh<(`{uL7Ss>+O^CmjIC(SfU8KHtP+Zpl-zdE$$PM zBCSSXb3Qzo)_nfn=!Harm6Gs6%nMrOcP9U70gWjw@)7%JZ;1hWr(&3uHoE-TI21RO zsn3jEqOgv-8Y=-4`QG_mW1)V#&+%x~_rvQvs3FRN^4$G7<TVPnugWi7O)b6qLRJ=m z<*nX$Vi^2k4fnTwwIzyu0l*j&A@@Maj08U>{V&Yq1T<t!gjqZbs&E;F7#Ri74krQP zbKv$S!JD7n^TqB>4xVj@S0md4J8LF&LTlW+W0C<s4K`8|5Sa%})I5(I=nh8WIyhLB zW&u`oBzZHuw_uUw)KePIeIW{<ie$jTL0n(kntz&a6!Gbfbm~xJ=PaA!DcYj=NS5Vo zelB(aN#&++tfaUQdg?Ew0eYjrW?H=34I@$*ceSO#!`q|;V5&{$UVpa3ys!r5Ob5xf zVwGNlQHqXf#Cht89?*iLU0p71dra_p9NzYaLCDMfXjVO(w#f7UJ<<3Ui!P(KY_~bb z#zx{8pPv455P>nQs;XF2Y}e`%i4y({20F;FI@tDfPJmC?_<ND}`W&PoLVE1SeBqbd zOE&X$tni(*gU*ja8wK5#F4y_0UE_^PXe2ha=AUQHd$28<2>q#I8<NCJR2Ddc)G#uV zajcSg#qKirF+6n8QNnICf#6x_ptm4Zps5ffhk}X#SQ*f8Y{}=ZS~m<~TMkA3X;|eh z{*A7-_V#wK%=fbxcm)g<tisF7OT7k6awXV>&CShq3d7Hd$^Eeod%}luFnjwa*QZBa zU+4BSX=mYM5I?kr5F?L-#g&n4n`B02JacO%)$7YI%qo?7%l<=MPehoooO*~k6Vzy` z1bK7NVNmw{BM6a+kNRkbCt8NRi3e>rP~?}O{%@jstPws~9C}`F&W4_TRJOohU%{Nl zB!@{2znO&n_N#7=v%C7*`XDW}nmEm{x-~GOt^mPQHl7CLDG#OYt=~_b{$!M9JvbAm zrSO`UGtFgjlggI~bp20m@@Ee`<pG4l573h_ozJ+6Hy5p>4Q8gK8!YB{1L$c`6Mu8g ztjS!73w9r(wa~Chtm@17>S>iW4O<Vc;l@r-vMU7(#n@w@NM<E%c;3#t*YNepYJ5rH zv7&lws<PHyVWfWb;`3y}SleGO<h^3jdfZ{84sP&>4vvS>$3Xqy9~le9_hecD+(?Qg zkrp^9n-7Ht$IE)F8i1T((p~LicB~Sv=l+Uj4MwhpjGwdD`bAK8HwY07an8D{K*~=F z`=S)?h8u-FB8z$z^!x&plG}Yn`=otc)awbeV=yTS80(Y7N>7{jM8W|3F@I!wjqYB7 zx~=CotgpF`ML1)EUd3>}S}#?po=ARjd|v0FZ#2{hO;s(V`Q5wJ$<MP`Q}}~}%1QY# zk?eE0{^J_2EO9`zf2Y6n1~3FnYS0W~8H)R{t<&YWUB<xjI!fo|A%DU`-KPG>AXZd> z!%nM63`>10BcUm;uu?iR1+@x;##)M&SK8#lQq5d+D?Z63&m=BqK4pI`ZjKXTJwW+) zBJYz5=FMR_yqg_=qwtrDsnqaKZTE`L80*QzZDGp<yQl6X95kl<M&Mdx<6RR&(R80U zX>>vycHJUrfdlseviPVsO*&Hkb;*l?3W3}gTHoJ5OSP~$N6kggcs-Kxl#19Oh;&Uc zCmmEBB$O9*u-~DpZX*`lj!<)Y@KjSVu^9?%QT9qRaL!bR*Q1G{mAdUCCK)yMxy$z_ z0`DJKRXRAFc3Eq^0edY46fz?6OE_>T1k&Rxbb1`ox~om#iA9-gj))Ap&9;|wjlTK2 z*)Ber4aZ6qCXigyq;aPOb<U=?3-I8G#3k5}{iPO|N=T4o2lc29*c{ef2BNIAf$A*y zinX}UlMZode~4jt=oU3+&_YyI8!{Sem$@;i)yrfqpcq^_JKsa12w6C-9+m{Y`7q!> z&>FKZl)dTj5dR@W+*q;Tz53LuE#O2$$#fpiLTdNk{r!)Gie4lx828GnOD2)n?c+B* znYia)*7uQ>3$MJ+uvKi#a-sI=L5Q5W+n4QEcOaMnQ;h1r#_%SZ+j5>Xn(yno@QKqu zCQlh!TA4T8;D8cxY;?bt2^d3vRNFgC6*TA=#xJMW2jKTlo_e}L@0tPwd$cRq!+hPP zWAi~_#RDa_w&i<RL~{K6Jd0fPF&)4<>#da@(O2YwwNLfW#ChTnXf@8_SV#^i>>UQm zDDJ}ki9doQ22>dJf-J~;#wfaIW^M$BA_pnCNfq;`(MP@^hjx0pCTsotArk-lH5>@g z2O^yBfD*&F3Zjq}6Mw+^VSK1C8HhKV3AW^c1axNO>1qFiRumbgy}5XBdw;DN*}i#y zxntCA^Us}!pa1)7yj?Lz^a<@RTR|>1!ge9`k1iqsXNAKeZKWZO!y1$bbr5kdBCN06 zof^Jg5PhwT9S|iWZdZI?s$Aw?g3!hFf9iHI1VS$I$A2ZF*F##-Pstk3<Yd?5<k$kO z0X3D<m@4*bs$&XCWpI_JG9&GCRs^LpC{7HOpF}jv0B(j+SJD$s^!1z+Yg>LW{8RC7 z^6=oF4^i0l(9dD*F)!7ZP+3~3xF19j7gDS6<QMN2@*u`U)Gn}~a=^G3v@D|0XOATO zJ&ZQ1lh>7fG%2K#5>QH`UwsO-XX<G}*La4vgdb3gW!l|l*`AD5m*o9AZ60W-j4AY* zGaU3bgM*O*q@)>Vzwulzfo2m|phd6GEJFsw)ISyk?N`^5Cg2KSj9H=&>cHPQQ#a+I z_`yEGM>&-8p7LgsGCTw+_T-GlSj5^acOx1Tizngmuy}NYYVGzo{Y{gowKsc<^5jnF zRe41bW1<<RS8r9)J9SRv>aDa}$$E(3%WL)oE}p#=>;_M{EVo-sk8(cV1Er$y*gOsk zOYe3g#xx$Qzy-@_&!|92J7G9sC>kVm=sE`mHEYiqmmu3IBSbi1j7I;>>8OV@TuK&6 zmg3Q<pnea<?>Q~MH+WJc>iLr&KTY#bA1B-)WF7ea>gNi58n<_6yXthF7I^CN`g}s) zu^_1h7{Zp86rgdWB99ztV3UE@0*6kOk@(v4u$f0zohvUcj%eIsgBf+U82B}roKG%n zE@l8n2qS`lr!{mPeX6n|t+i5{@@L_rmw;?rt!C|pR4zuXa}Rb-EG(RAzLVfnpDU=} zv_r6>0t#-grgjxir_fO)j$a5jl~~&qr3*PbAAvU+G=8zP6lFFRoepYEOZ^@zOu4DJ zmlESj;ux15GoN`yi%b&!ku{@1k>s;7T3)*6ypd4&76>`~9(53yvunU6{+hn|H}k2D zQPKhelPYl(MlJbDkyxwc6@?uBUV8dE*M8A;IFqA@DYIP3I^&-KxD!lbk*<OZ04j%Y zt|mpQO@tv6pDFgxl!0srkysB;?Ip;Q$kIE%($RjM5Ar>@X3d7#v;Aoq1udzdFdR=i z_qI*2>6rw~y_~}4w=MdY5#>?6*+;L*UD5+Sq5|1{8QK5|beQEq=fofeK1BD%{g(vS zV1DvBd`3}fbllNvV=Mf|m_vHj&V_!`TV+ZO)Y+&7iJFlR`6}0J$_I?BhRJP3LF2Il zDqjqjdMxHq*L=EHh-G)TIru1P-7rU^X6>EJZA&#VuAf59<Ed&gZ{=@^keIbfIyxIb zSTxU7QZ(R0uEr-tcd;N#bw>>%KyvBvWF3iz2?`14-_10W6>i3y6WkwE)jw#e;ADGB zn^2H4hTB%qHueY>GxU1zPvRCy`q(OFlF(=WMECyPd?UvB5T7eoTdW85o2UG|FS6b? zi#J-0?#YkvB!&14j&nVcyvJO75(S|7P3ON91zwrXK^;tb*p|R^&Ul_7Gewxz;Jr(a z@=`0kgv^cGM~aWoIDPbMaL>W)Q3|nY2^$8=QWGcrDL8|4ZA0km36Iy#PE9osw70yD zGlQzVoKLffy7t@l>KVEWxMhg2urV&ydw0KV8zc;V{;PD83y`jE{d_$OK_U`xJ!iDH zUvQLH0JI*hnlBRxeP(5@4^0cwv0)=G09$KMhl%2w?`*X35_SrZ<Ay1jepbCG8o4@P z+j{Arq9gq1h29}sOGhJ79u6YA0pHOPmITq<DHLL^uE8cILkTbahV|`+TXOFVqhM$I zmp{JbY}8(jEN_K2UkcWkF8ktVl!PBOZRV^$*{t1Mr0RcJPv>7L`#$g7sAeEZOY1mk zdea8FU4uS>;(ak7i=UnSNwSBug|5Pa;iu*mq*o{UqbNH*HO)ZFz-KG0Tv9Lmm;QJ7 zbIAQcTJvZCqw(cnWj}nE<{I;Q()}RCi}C`r!6sOpSJfSqW~AMP2`kLc5Y9VDPpx_W z8O<f^pbL`@lc1>?OR5Dgl6p1k;!a=2e%}Q1BZB=D6QsRF@fztKs;aEmhTR>}r8mON zk1P-irc)lR<k}jT_CBgrM_mb<#OoGl*2u?a1YGvJG_HEiV6uaQ(0a6CtnIOCp%$e` z++XF^9OIE5V{7eeXkD{9ZN^|Y?!BvzRF36DJWh`=&pR$T!f2j#;sDc{Fw)(?7DwR` z5{#pNFDly@{DvcQs=poz*Vz)``;iN)*8LCTPl^aJ<6~J{6T-|283QEpWF`s~n&{Kt z&Ogv6(wtsK^(8isA>m1!%0v>uT(FTw*ydDt|MLypezw((f<<atY<Kx|dOolg>tDQV zK|P(%M?3PE(ny3zF!7QlK^+ap;61IH=Qiek<<}m-*U@5IojJkD8pweWg$IxjWP{9r z9&*7eynmQJU?#G_ufM(Rz<^ME?h<Ii3cg{-ClS0U+N|!qO}$oc>wQi3rEZw>b+KJG zS1Wdyp5&eB*ERW!y_N~B-utc<PuDN`<Xo`q6cK`h`f)#Czeh~&45|k?beKWPnarH2 z2c>8sXj&~ExzMdISJ<S&6J2p$^~R=FZ@s;6>NC5t^7B&j9=b~x4#C?PKU9(KQw3&9 zQJTL6pS~jDx7ZwHewHXeLO@Fm4{>A(>2GgzI8A0ysaLLDFKRe?`mmXixSwIiW)S&_ z7e}lO4H+)$Me;Kdc^`%+k!G7d-{BZ5!9(UK(M3_+7!xb`lNfyU<3MZ)a0l7_2nP&6 z=aKkJ%t+lEx52tu_@^G~26AKl1h!toEWhlbXc5a%ljBE&$9{5{$V%XW_qj+zq9(^B zq@^V1B<8AWs_5u>tSJR0v?0h(N;d>?vvLRi#Sz8S6z`%f^t!=B{#7lP16uKq$s-88 zo8qj0L*Z|KF@Iw@Yen)exS*T*S@#*tMzaiqGhE_hd_7JRwTw^+;MS8t6c3=%&=3zb z|Hmpz>>g3r`fb}^!Eqv%A^RUPVsPlu8gq`m$EE*qx#xY7iqC{eN+lH>`U2q=v$x!# zd<Oi@UtMi=bYVD>kgx>>vtsYe@GM|?gg+4?N2Jnq0OV{c8a<@%g$kd7Q9CPdqvmq) z?@1jIZM|@5xaMG=&mjn6VWh(ljcsQ~uD-u0uBz#B=xf3#NY2`?y5NHFVPFz`?4AUZ z^u0JK>$y8CF5`!D2B<+Sz?xBj>pwL#<|zm?NY=qBWHmEu_!0gOW#1TGY16eC+c@cT z>~w6~b~<)Cww;dcj&0kv)3I&a&Yb6Y-<faL{G0l5YOQ3Q``o)~@7h;wvNpCAurTfY z{YA83<&cmLJMpYM)7CSR5*ql7qJulz9z0Cu^Aa_M<Ga#je9)9`+R6R-n7FjoZ8P`A zNxf!j?a^(vaYS~;C-)N^G@`|+hZsCr{lTfO&S$0QYIc-)srq$$t^d<tMzSUG(hUax zMtMaue@+CV&e=?kPG7(P7upUkFr;8Vd9dKnYOVeYIfi$|cl-AnzK`AH)#d$a^VRyx zU9q2cLxa^?H$T;n6Dv<oJP0$MG~ef)iW_h*$t;f>Q72Hi>G!h{`>)WJ$x*@Rco0x) zkXr_S?%W{~gvx#c3nad6tr37~>W!bR`4a~nk`AQEv5+Ae@t$%#vm+?5q(As;3AZD_ zkgpoD$87$ge+(?5=FAcR*tw&=rIsZ1IzS}JQu}-)=9cK9>aQEm7)H>MwUlZTd6y{S zY@o!r50F4RtcI~;Jz5j`5WhejiEb=?u7IAPifuaL(y*Qsr_x;LC-%x29*pOnc&BVF zJcB!_5wt!PkIvw&$Ad=?nv_mdL5iS6p}QGPHzPH;bkSMGG`@-La-jTU9G`m_=TRCg zx}PtTM|z80Dy@$i&(1%HT5NJfk<A!%t9(s$3ZU1w*uaQk(e){Khr1V}L42u`+SF6y z(a=YQUszn^`+C0%eG|Z2!4X@&;Kz?u+sM#XS6!WdteCU>fJP9>Lj86T9UTn{3Tis3 ztsb0T*~!~oFmY@+ZIG89dFRXT!{)Tp^gA1s<91H(Z%T-7h@P2B4ILXXBM}eLj=BN| z(p7#jPp4Pc`{8n3_j$@)PjI?v7rWto{Mm(eux_*4z%f5J-+9-N_gB>w*n1yw|L)ER z$nTs0bdU9J#(c;bZE_iq;2msxCSv?9G!6yJLvPm@Q(e0>mY3#|?Eqt9SFX*oro)dT zU5B=tL#-{HX27jr0m5QOXqvg1wXB@<o8i$UkYSc>CceGh>=jRD@fyxkPO!B+7OEwS zkpD8TNK08VH1OgI1i<FvF&j#T`unj%M8_UOczZO-We0-^+wGTHnw43b(NL97jL=5P zk4A<{2baTKqkc_)(+1N&UW(nCUxxJ3F>pdjVJUiuf?P8rER)J_Vv*`0HQg^VIXJ-h zLkLP$6SMj%mg6A6PqWudE!iSHL_?ZFsJ^u*tz$d$<MYHTOYKf%jrR2CFS9)|Jy}?* zzvx$Vea*?feD&n<3$!I-v9&QV%}094^x{HZRD49oxF)J40xlV^*J_4wt1CBaWnTrw zsINL3c^H6R&iW*pEBGiTP)C$PU5VUVp}cQi1!OljH>)jPt;}OG3I||5Cll#>KqgD! zT?L^qg~P{;qb|h-#M#kfLl<<oCAoLayAG0(q2#*6c8De*RO`VRpuSKhP=|SmDZxj; zq=oSj{hZhYB0so;;%(J=THT)az92QHm1e0!m;dk=-#`3yaCkVG&W?N?B8!YeNP@4` z;ehy;awT2KO8qNtc-mk|9p^)`3ZLtKK~3-P=qRI33Fb!-Uir@VXG^&0-;Bs9!rTN! zbFRzRZ3DlrmyN{Q)xgCYq_2A+)VHr$vxcz)*KolV(4f9TkCheMe#1amis0VDZ+LRp z4f}lk^^Csa#68AZRaAgVfl*TqX77suvz$ir9b-xngA&XCV`ZWc`B|eE`*x(q`{6$~ zk6kae76X~*hf=WOy4iT@{bWRBFftXdYdBI>!t1ttG?Z>zWoc2y-bZ}$@-qIj>iw@Q zyMfKgQZ<2>BNQS&m?>`PhRuG-k*?1J$AFM7EqO6=B^1i6!8Y?iXymsasjYV5C1s_R zrIsbOR{m-tT3T<&83ZVk;M`_b7Nw=-)m4?%6=grlSqP!1Xes!AkWdh@!W)o-;Gw_< zZTcNSPNPF?=WrJwv65Pdotr_5KvQ5DGYgWD6g*D%AnliiNl!|QjX*8OrK+W<sX(z5 zH`JBQDu8=IUszb#m|Jjye=4$`bU=O{S3S6&G>+StNvegvhs$PlWyzaVZ#wq8KRKQ5 ziU`G~62s}oErv@>6;s@h!R%-DSHT_Bp)ZTd%%w<)36KJ8#a9&}y(jMjDw3dbzN>sq zpyZNh#%*vK=U!7y!i#>4DE8oAw8UqFWs<DvR24X=i*(w(Y+ZZ(IENG5RgI_3RdAAn zdbyTW1do6bPxT->@lX%MCqZHJ<$sC%@h96~O|jVx^bSl3Iie)n=hzeT!};Lf`+}Ah zPAqEREC`5T)MgA%^L$gIcrjMuJR9V2@w>^bEh8}t&Sx-=&GY@7JganL<;VNz^*8l% zhC^22)!|UflyxyXd{{jFyk;Du?+OPP_Uy|SA&dwCxY&|%!6$u&33iw{aPL?qoK^mq zQNO<{cj8=3@9J&K`FrBSgBkiWgUxLW;D7ES@g=+LgfZYr^^+bX5l0<o1$0R#cRP<; zyWXE|5sa!6QjQo0Zj7iURb9u-t7VvvmzyvC0_5k&J9!v*$+`RM@>@iDi>YElG=5$0 z@Oi%qc(8AIyumdua6jVl+0pd89f!$oor|U|C@aFwjIN-Nq`{t;{}uO)BLUwb;tVS6 zfjRyDeQj+`6(UH1RE0w59F`%pzOqt+cy4+*QlvmYcUmV=b>Ubfu;kCr3@8UbaC0em z>2XlwZOR_3U`;R8pBkz@ZQmKNxxPWyd~2y<VQmIk`8_U!GuVitA*9__-wu;Bo~O!w zVMg^^G(`uIIhntXwSJz5DD}hFRh8{DGocWRXft21Mw&E8l#-Ja6#5a^?C5J@Zf$rt z1*w}W^$NG^qs#!+k1j>f>pN3)g-;;hRTJuS!4I>tOds_=0A!I8cB5;#;c+26+DhIA zHHkn7Jy_m-!2Lyxo`8U0p5V91TN_OB<iE<VZWI<Pmosp^<3NfkM09_>JV+G7DF_$K zZ*U@Cp~JzImxkCxq>5CHhlV(v5%RyPZo4W_bY7lc<MeG@NR5uhFt@L-&-1EtDaEHz ze9Pw}sme)uWK8-;*;s{HAavl_TDe#xZWIrR_uJ#(mX=NHukj>WL84p%L^)A1;*7v} z?Z91nAvWUO1bAuc?V9WE1C~--Ga*J5^*1|TiP5nD0*H0Mw(M_^@T*d@P}IKA>1(hA zbU410v8`=;a=QVDI42kI)@@TST<9!J+@N`Um{`G|ie8&XdtWEXS~^Lc?pyC6!%^8V zDliHXSA5=LD>0dzPp+1H@6YMr;%E+v?Zsq`1#IN`-#%GO2aA;>%F*w_Kl=Izd|%y% zUyupUkGTm5-eA$8knwMa*2;x;l?;^}!Sjh2F@_~!X32IC(DM6Yp!hKCe_)51ufX_$ zl7fCAZHwznUjgc3m-o^#$|2Qy3R)+g*u7MrpV$cyJWsw!Eme<AG>c1k9kX0D8Q}vA z9FUfIk22>RPEs)CegMsRbqU;S&1@J-t-^E(1vyig$2!uin4SB~Bx%g%ic)?*)VC@0 zxTH06GI)WAX(Q;9T1^R+CQquRPXKaojFetN7=e-U&u@awQV6#;unfVTP%tvZVY*zI zQv+0&>g?`puc1Gq^1bCHS{=WEz(|L^x%`SAUgxAHGzf+8ZrLcN_ZgbWpNPRVYfrFy zJ3cMApsx%V;GJJgOrZ5l!xR7ps1>#E{`?qTUgLj$gT&$g+HFS{B&r=neMK0Mf)E+N zOjhd^-Oh`d%Yak>KpevolW!aTzDCgpeQmHJ9UmE^7a~%n^?~4kf0wfBnF-LAj*KG@ zv^Ucac})DFF^U?V%ve~(P*^+7hbugjR1$bSa1Y~6juPJQL!@W5)p*%2kN?_l)V#sy zJb%mx4vpx~!Xlp<mp{yNdyIaWr4<u$wp$m0V({muVdxZX#9yjW%4+%w%S9}eOYXy~ z_t!e}`a@mM4@B?R2T#w9wg=y@_Kgz7(8iZOOIIiH(zI^``O+{BL3xVL>B<U`?~P=b z#i*QM*?28h?-n|gG{(7$cI@1IoL#Bej^t7AAJ$zS6a-ho<AZu+H2#kahjAH{dp}l) z53!Dtp(6AvMf3sm+9vkDko*YOBrs`&p4!~N1a&E85QQ$2Z}})@Vz&q8HFwSoT^SW` z!))Bo6ziOlVsIbM<9>*32&ST%!vRqP0zi>OI|E=w)}NeLg+i)Zm>Mdc8|tXL?Iosx z54&4mDPadSN~v5-`u?<=L*O?PHms0_=U3zYD`_f)>E(wTrgH>VjfZ*x{E^G6uD7qo z2v~&nOrtq~R<mHCsJ5;NpTTb1<H=Vg>y5Fpf}F3pqoCCJX$M`|WJ2gg7m=oh5p7rM zkpDL1iU0ODw1~4#0+rnLl7d!D<TpDiK?SH;rHt@!a1OMxIdH%YeAwl0p-6YG#tPi$ z$h+T)4PbObDHs`HeR@V+v(d(6+YCHJI=~WDDLP=)QJHTs6))TQ!&rRGj+2=nf)y1N zm666W#j`grZ961c?k@}UT`y{4?wPqC(9e^{OwuUi0s5))yQ_0YJ~Y;RM_8#X>(&ou zZ}z|f{7<f~-mW}$pCrD4UUnf{GHG7N1Etf?4G9K}c2I&B_#grx0+DtKp6nokG{!_l z&%8}BNPvbkXWh-#Z3=|}19aWZWcY~b-OTE-5!*%-uRF^?QIU%{&x7j^7kl+U{^78s zuENBGm0zxwY0x&MP=MTDL?qlr>jf`kqVFzE9a9G$6kFO!rFf;ub|*Aueo~Ka&O=H% zZzCs(0+Nt5q2G5LX7lYw4Dn7ACADc~(3un{#Wsy0@7@`}1VE7TXF0}A@l66tO<dH9 zN&T;0R)Vs_C}CNUBN!5JnTz{s*tbl8>O1kj>bpEdw9U?@_-f%PIjG7^eLx5i5fO*o zrlGmHnGJ2IFOm~!trNK*d8wbDxVnw8zQgA368z5h>o}!$55;CKE)F6j?tC~(uWR@3 z#ai>*>+8_)aB^}ou**C^lI%|osYI<G3#NpE($+G<Q~1O?v9||OhEzP0V?Np(F`82U zo|3=OJup2?a3*Xd>if4u7*iC8XCM!VXDxwmL3`a@xca`07@dSSe?31d*W(>V)e@|s zKO><&Uqx9kxsaH0PH0`v=eaJvTVKtf11&Nytbbb<LP^VHCaPtqE2U_wW{wh}2L{}& zR(AI5&L2yeLC_Gtalp6>XL*jgKl$bFz?#>Zx6ZuYlMKt9Z#>~CWdL(%NlM|KuZmWL zX^n~acAZzlNjPb}iWru(tbG0Dwcl%wTM*O(?fF^<X$N|&UOjE#FB=wz?!2ir-2wct z+u3y0Ae8EfjPQn9&@uY}KIQGxPGV`lZY&}dLt9j)=;h5}%n56CcO0Sh93(h>R52`E zwqu0MK}EZ3PVNh)m<ByN^y@Bkuih61u+5)|kM1**Ay%xMG|Q=rV;liiuWVNoVb)qZ zNKa-+X!=%o^>RX9i-;PUd_ZIIBz{1I8-Y{p!G(EPJn+%1eZLMVXQc!?k{YN(L0jR! z`^nq*Aixd&V2=pHal&EgMR0s%WvEB@?rpVz{a5abfc)Z4okUJD$vMG8)7KCm_;+aS zhD7^cqp>fhbMwE#PyJuvKZXktrI}w{Et@+5(5U~`$EIC_p(^HiKTgoygs!KufU}q? z!ce2YRDn81+x$8vaNT(8nYOHMWQu<@(nkb`Lion-^S<8dnC-S3*1YLqxm2aoVxXa+ z;pkW|Gz@^qFiX{&YHDiCu;g{Ds%)zw;^pRNV6g~!5{#*Cs?>aHrU39UTMt#F+qQe3 zx4^O^5P;%}!=p0!@u}%7;5;J{2LtG}PCln-hlTPD>*3<z%Hku+l)}sJA&XH-loggT zEX~3sMn4>eZH#pUH?V=$(8~?zi@`?tZ10<hO76Vfgt2l9I4SD8a4AJONCQC$7Whp& zZOJwRB6wh4T{tdGk(GXQM5M-Y<bLDKOPp5lN}ARb?AF#q`0sERH=+-9=z}5r2W_6p zFUV5RKDD*4JiwXaeke0AyJFVb!Zq2dL@9wsnA;}N!#F{H^A}w~#3LODum^ZzT7YMW zr?qw<O@>ntLRDR(uYMzYT6yE5=L2{wINMKl7>9^yNp;t%7EH!p6a9>HEAHVdq?NzN z0iLhLpYs^Lm6lcn4qBz;%`jg)%3uDn4Jk?OSp_~tp62{d!4;Btl=&f<mI9sre8tfW zE@feiyAeLsqsz-`x)foqvICJJiK!ntyVE)e9IP;ak~^dL!g{y;5|fyK7c0}rjJ{MT zAu`M!Vv9iTInXv((R@Z(tXm1jspJmo5k|jAb@%Tnun81*lo<Tu3TI|ehw0)V$gl}% zf=soJ_69+t30{9n714U1I>ce@b77-edL&#yu@2$xxj2@w?-&x+fi;W5_YyUL3<sTh z4ZN%B^_&{S0p0&M-pLQiKwrdkB5btR$HS6v2oj_hh*!aqY7+>?;bi;T8hcGeA#ZUR zs2^!-aM4^Pe=x;Sg_rHeAMAQXCxC<>6gvp6puZ9h3HD4#xm|)~b*Ibc`-_~MoNf2V zW07n+7&!QYhqtb-uBa#^O2VTwp`EIhmX?M_DsaTcZeLw>`+j{Q^S|3Il&MZmPR8(m zKHs0r-C#h}<RH<xO{ajS=Ac~970Yj>+q7QfLdI~@YcxHD`g&*xYuq6pm`<9iun?-j ztQJo3XX<%gI-R}vx7By`wz)2O+ZFG10*yEGHna6=^l$ci8M^M)Uk2H?Wv8n{hmX{2 zhyy|ZL#kneUjyj0d%WgqQm`~a>Bd>hUE8CJtlMA|K?^2s=e|!(G^4>5zsvEI@vfM# zW|yOgEW<2gKj7--u?_o^p4VCo>tFaQMTCu4o8*kD35!v5=d(s>W$468&mr1=i*Xx> zr?+AWLu~&zy;}s+Q`1FJi4TLALUI2d>fIbFgX3G*;MEtG55$Rv0Sn)1|2bY%`&ge* zohG70!{Vjez=VwI6=Bd^>?kp+*LnCaxxly7(l1TYa$o3R?4V94mH#<fuy^PE)@^3# zk{np067l|)$0wHq0pz&+J=LiVz5YXugxchVM)H;(pst4)Kt)IAvlqpVq71G8t`4p( zXeX1-X`1<VM05i?!knh5q^#gdw`50NSn~aO<Y>)>=PP`C<B1<)-C)0jQ4P8Muxzu_ zI?_1Gm)A<hhip-7_8NZrcqX4hHq8n6)J>na3ucpv6lT-O3XOV`sVrXSQx#}vXs@A{ zFm#GtQvu#!1Z+du!1iA8K?vUzx!tR6B4MEM!|HtiSVwZI^Q`NIo>sT*uwUNA`^b}r z=BIR`rovi=k(rp6f`^8zW+_o?4cy=_|Gk9fbI#|(vc_)T^U^T(O$Zc-^<7jq%CT?N z9#@?})@#bUz5jXxs|VDzL>+Up(H6^m+x#-!ii1_g*YL|MLDQ`I5hPktU|#VwBpUs= zpXeXLMYnofdGs-{Q?(6)M6Zv+pTy4Y@Mbu?^D!!Un3-@O1(-$2e>w&B_v0+$3dOs) zffH{Di7aVtNt9%WXeLn-*33yxE8hs0f~XQ3!El6}OWOG;B{PGm+9e=O#`_XD_Ad>% z8HxUUn9`3(%44eb4H?oc;Zjf=^p=xvi={tRRx-+RCK7tNLMz6{qRl)Y5$E;vGDgpi z7c3|MQx{3JOSSC9;TFH~f^GMANQP5D_3OY67U>U7$AKslASL)kl^FP?%g36&=kJR! zdYPm*c{VR~GOo(@k6+T`e^ksP-DUNc!4+<gmPQVt7qAzk^;*{y@T18ZYDsKksL7?- z#t186)otj-2#0$s13O+c^oyofUx5^D!)Z<yC{Jd}Wswawh)=^KGe%2RtFPP2Q#aAW zqckfO6lSCFWh*?P@OD}maTW@?ccV`orn;U_8SwOLb&gZJn81tX_q9T;W~FhcCas1F z*m>v*>4T{6-^C-6SdoURAhqxmzpq2eMcW7mBW1I?_TDa>HD7Way{=t$y<9?Xz1@aX z`|vtx7W_&1R>~=CFx9JhFfwEJQk0SNH>gqXWQ02_?>X3a`-Odr^JsT`#~qv99<8eK zeoXM`a)aG!`Fd8GK9kEie2-%cnh3`K8L^YJyVE^{FqGWblTC2Zj6u2Re%JTMfUTn5 zrwNQdp+=zoH>i3lJZ_gjCMAn$vyCF>6NS-O1Cs5*?Q97a6VEwtgGDUXLx|YvT$9YA zb&xaKhQpAFRv$MOq%7G0&6~qvJ^rWH_GCTJxu9gd`n`-hV2r5u<2q{o@I(qPa%&~8 z$Ai%Qj|}n+&qopF%Yh$rLy_4G24f9m)N1tVZC;c9qVP#H-KRrZSH8O|+yq|d^#nnB zA0F3c@jQQf`WpJ&@-w<)9|jj&oEzXH5NIyL*fy+Pv5X-|kX&KP{>DJd@x9!pw*v#c zi6zq6thH1?!;$M0rv*C9=ZfgNp8HOm0KjrdDBYQ92Qd(W@34I&eEQv;<7K6_q!6RT z5Q4EZLWCRr7L8qxtCmL@j!0sf3}DKdhf1fFW=mZk&yvc?G<wdX3rkyH&yHJgNU-vQ z6qNT$(n;Z?OTSts+<nriBMFg*&>P$P4%b2E;SlO`_8}pAM!$QOO`=k;XC$81db3D+ z&}ann8j>UzG?ABEJ5YO3rlvS5GRn~&u^GQrOoCKFa1thU#1f5{kK0+y-R-FNa?ao- zl+_Q9FZd_e+j_tL&7bOY*r;^1-mEn}%y37s*LVBDTKUH&Kfq)l6g6eNch8?ugf2N< zhMZ@a*q;z)mwh_WaF!p+pO8W5E}dULC8ty)R~kqv3Xo<I^fL!ud^70d-Ol5@2;f<z z#0jPh_So+~(=NZ|7Z4(o!Q*^$tGcw|!9HZI>vp$s6)2886d@PJYR)Cr&$)9|!xa$8 z-uFU$ol^4&b41_s{Y|=A!}iZjAYPV)RSf&Yi;-nIJeS0D%0);47%!QiIUg?lAwkU7 zz4&JNm9NKDzWhb&c6?#^q7W!Hx4~?WpfH!~$!ZfRF)5%=lP;(Sjmcu3azBOVc{_jy zA33VerM)wy)AM(9xh)uj&lFVSzXA;u=jHi-W!gqQBV*Hc^?9q>x+A@Ls=6ueXd<(= zxp@f`1k~PF(epvO-a}f6R|bxd@{ckeXch5TA;ub1I{ztQ1PEaS;WeMva}CfQWY8Zx z+Na_^Acij#r-6W@rRCl|0CQzc*wvgjHVpL9%GZh3D*d8fDj~tlmn?q_5R?7JV7R`` zm@p*Qm~O1iVE_0oITW;KGJ(hZm&0*pjB)N9Dmrbs)U^BXf@{HIy1=ke6EYlQDv4RX zPed|LB!Zk<k<9shtDX6lH_n!>Pri<g)$wpbr_HIhzP{alFE~9t9iJ2gB*xhWe~HOk zr<=FMIAs`5@xg%tq~76u-~CQGTA@TdR}cV-(m(^o!O5A)>1gsdjdgE0rW&Z14#pDi z_D4ykR!6dsRwAgZg&e}_j22wGW91W@D|rFQZrW9h>OZnqJkiT~pFDjUka0#CZ)HaY zam@)}(MU%!$Rcph60gK6H5*A+MxIUw!qAzJcaM)tz(M?{_JB>ewv_2z(+GN`H^vmr zVnsn>MNz=yS5jn(VhH&8eBPfA|E8ZURwhsp;YeyWTBrj3-&QMizoz1ZUED{+kR^$j z26p14t$f43vz9$|;>0L-#dDFyEx(h_h-@a&Q(leK>SBLLB-3TyC$BbI0?#(jzChSI z(g$Ft<Rf6k1lOz01Pb{suNUH}w;D1CkO`-1jZRXyo{s2;+b*Y5`!IB4R1jm-l<M@6 z$DgTmoSu*8K%DloLY>j|a$Pckyi&K*<N10Ahy)WCignsu@R*E4XUzVT)d63UOgia& zqg^eS4+)op@IqKjpwRW25CH@@e$#;cGl2*IK>wYA4D{~+lK<}*A^y({{Ox~79n61b z4Tyi||M%;@;{QB{jvgthJdN1D2%DI^nrUYM=ZVk@m|AkNc*@3^r)8Puobj%+w9axO z(9^lDP9IFpgv4)a8*JNjxQg5s1P)wx5Re*vcA9`k&&8R9f>F)f!QUr1lf3Vzx9!yf z7o)qki(OqRf263hkNqI$YBxt&2!d4t<TwML>Ag;Clf8X!Ls(fGwwOgCvzdf*S2Krc z`0PFsJLSOx-sWWgCa9aEGCi(;j78Dpg>W)t;^;Ay^>P`w?~!@py(57BL#W08yYM^> zVljdH&TdRKsoZ$x)q{Y48fitnY^Q;shR83x?up-sOMD-pBrQDTiR2RmkR!w}ebu@p zA5A-^F#oLK_UpwZs8Kc5iRVT0GEE*_cI)_L@ugq}px5<C9$C&dWj)tvb5Tn-IMqCE zi+O;C{VZIv*-a)QR&@LJa%fTmPbwMDwRdy99z`Ysxa%MwmpFHp{7wkm8Y16zSyyxZ zpgzSE7r$CI!(<RxooI3CI8{et<bM_=ce9{}glM%<wTsd)MwATFOf5V9LB-U70C3FR zw{KznyV0?t@rWGvV{7&0AwT8JXy~)QzKf-eM1uQ&GFO=ZU&j&<rfWUZsHUsC&f9J& zH>IT1tFm(^+lF!93y2j3vdTZ)5-U3KHe1WoUel^W6~mIpvvPw>81a7T`2$@jL3(g; z!1wg!M;(ktAdtcST~m>RTQ^zW1G4RByhrcZFCAmln~$^9ot1Ye<~6T++q(!E01=S< ze|H~PGgT%hkE@<Xw^*qdiL@nBxsvlTML$}kmf1KcHg!*EykNAUy@f(bY$VT~+t0?8 z2=xM03wszb-31wy<VRiTGCJxmJ}N70gjFvl8a1d^O~u^9slDQ-D#6F?1AOAa=hUKX z=bQD_8&7NZ(}t(-sYQoUjj5t>P4}Rc!u}E~hl8TYsO%9vv>{?36ALyJLRwt>MIEUk z4yBcvaNA<g9yFxWgQMmQ;ZcE)N1>uTjZm9Tt)-J^f9EM9e=~lDnIK8D))Jg!Q*{<M z6KRgT>DJ-*YH#6uK+%DsISz82uTG2a;J&FxnIcb7^k;6uA0>{wO9&Fh)gQ~8+#TJk zjrDutBwDnYhRunGMYLJC`1_|RaI;XN0~L(`U27ENN3X}=AQEAGa%w6gZcE`$=WpL( zmIK)Ac1x-`4kuQ=^VPUZn#(rhwOiSO(|}#X;=^od=0$XyRMRfsc$hW6MU9pFn)_Oh zFI0W-SS}32b|G{5x{NhDX2*_7rUq@T-z?K;R78cjsWjTLy^Kt+lxF{&=PpsU+uNzu z%=CSC#F?nbrJ}d)Z9(~pekw&jdx^BT_O1#2u)5tdIaujUAG3k?WsO?*9^7dHN18gT zQs=9G?W27nQy@>r$10`q9Pe%9%6y3f_h6Bypw#wOtn37<vz(bp%V4UzoqP;njNj<2 zwwUkRfHXTa-vajcn8&J=uqln2Xqe2cF{h#Q*zAPF`>EAn_|b2ArDB2vEt`K14C$Ul z%Ojb$7NQ-h$Y*TW;4{C-#`e%+Ea#(o)uJv=dYmo^;+E6ttVFf!<Jgx+ix^Z795k#| z2V+e#m3d;v;VF5$w#KT1P=`Pe^a)Ugvpo$FrPDHPaTZ|;DbzNbM~#T>YU-ND|IkBJ zFZitgg1uo4{dLNCkU0y5{3V%;_Y?@tZS*#cse#jI6sOD{O@`d$cItAv>A?MX`uzAl zY3|omshS_9z&vIcKEKohH&hG`nBkCOm?nt$ZIh|@(EyYDfv#R)_9e}mh6{C{dY<g~ zd2Q^O-y7hSt?p3()hSv75)hd0tFu_7F0z!mGWp@&vHE>v-g!3bJ#*DIVp*Py#}Fef z=I$(u1qZ`9CF!BD=lZ6g-q%qJtkEQ7xHpm2ke&mNWkpf@3Z=uJy3yU%{oHIjUf!0Y zqwzzZ(aZs#ohULs$;kBF2)~WE{y9K3YRd@8l&mHcznoT=aXfZ^&+eV2gw1tSc^Nla z&}aWveL(l~QzoVwp2Czn^L7pT3cVBR2Mw`zygJPgF%2MM5Uu1;!0L(o&&@#OpC|dG zpVVC0&CZkPV~vqLJpxnDc{hE*y*{!oj!lP|)ju!llubA;FjDiGEYh+%HOfCd?kn{J z@=86+(p5c`jqamnXPyfxq0`0GJse`Vgnq?RPo2hy;wCqX=C#ug5KjxAF}+UlTcJan z=0uv*OOgOi*!Wy3MCWCmQevviFI8n!a2q-6OLA;*^ijVRKGndSw7+jb!(=565z`Mx zU77fpjWx|J*>Ywah{#)On^u}Df-e2o>Nz>9n^IAseq~~}{zO@rVL;qanT2^^LC1e$ zEFnjapS|lYaY)6L)?<=kJi+{SyyT)TlARhS`ua>Kwy@xS8TBAb{tI%Ylny<?SAPqd z1zLI@FYL<bUWQLfDTGe|+G3F?9ojhW5mXu_wZ-JVd)j#3uhKVlU2Ocm;tWaNSzf0e zyU8x*H7!GIQB@IKC12MT_f@meFB(9KbQcg^^q{8OYRGbR-MqQ%(?SscX={kJxA7D> z&gjB!PpppQ*8aB|Yu%mJu|?DML#Z(@z_#tP_mul+Z}ya2=jAX-_}pr|y6OBzct_&T zqEEA((c;XZb)B|3(hwn|gE@^Me>2?xw5ym#FGYKTQSd!}_tE8kmG`$f#HQ9d{M2+n zB)pGHDGwlyQ<4T?gbLhpLs;WA{*?+{gs{I35n`pBao<b;>!*~f+pnXzNp5*Vv{feZ zf5s=6uI%#pT1CTMXr*pYXy@Fx6oc53o_RiiyCOC@VH50mU!AboUV$Bv!u1&C#z^NL zqB`?=K|KWhYFH$PYMS%=4+vZ@C~OVPH)Xqs5x;JoR6bDH@KU3g-yrfEO%cnQR<?E2 zYaA`2tV!a*^y~Lk3x$!0<GR={^UBmZd-VslDHrpWMqd}3((H$u{kmC|R6cjLnxKGQ zQu;o7573Bhuy1dbG|v>Zp`%upGCss^BG__AO7_r4CVL?cp4O8Yn{>lIW1p5tPEVLq zj_qsWN^7mO`F|c)5h9M+nNOt{HBz)3p=EEAN+(Nx(g^i3JhLdq<<!*3-BZ6y$dN^k z@1?EXVnL@O;#U>UXUcfYiZi+!IPSP!r+w$!`gUoWL;a%$<Tqvxi8hN$dM9c9%J~T| z>WYw@iYt#n&dTpIKb+*Bx^KACnTxmO?-tUy{D`lo{fXuE8+*FvqNV-s*K!G;ZxCuQ z(elk|$n$NiMz&T?gvRerU$jMW+X1)gBDbWq>XD-AKq(~~@mmEtJZlr7QGTJwGV*s< z&gQSIB+_XcWTle$i5iomH0|VdsY7Iu>1luiIOE>O)<VWk8T1cK1eF*>_G8mCxz2Te z8=T*#vr<@GsC@2^D1}$f1d4j$d*1Dp1(UC>LxRitH`F%CA3j<bEPW+L(wk35YpFSC z{nTN6%y6$+RJMxyir;ey`%}J}WvAUN*W7^c!{hdepwv=YLtD-^9W!|)NgX1)uxP&) z=2MOPRlO*7A?UO^Ct~e$PTn4NxJwJ%x9=+dn7I)XFk@?i(c!;@&Oj9UIG@%?Fzl2| zN;KWL>wUGFH-X@zS|pt;v2D9;1||WDlSZgZEO^Cb_EPGR8r@Ozp&!}z<V0(^TKyYc zQF-?vC&~VHmvh7j^<{ya<c8<^c@zdGU*|U93jG3=-mJp93m77@`+t@ZvaN+^BFD_k zqL86{xanx4R$|XjJsBJ=(I8-$D1Bt^hv=&js-SqAQC!+RBl(3OOXcBsyROc|;12)C zrJ6o?E!TFO@U0r6I>Z?acU32QYiDuO4SD2C*nYhLd+Z{L5~#FMac`KErus*1=-ah- zmIRN<ohI3LrH|4Ba3`cZ!6{q`kRnLTH`slRoS0CS9K@Q?EM^jTzhdYcTH}Jah?4x@ zus`UG65b@b;~~AWDBx?;-N{R{QIlY<!-EeNr%^kE=&kq}J9;d+7!YroM7h<yQv#~g zMGPD1JK1X!CT<c?kaTSJZ#Skd86bvwGYL^Azi0haxthj`kjNkfMAX6nrN4GShDhLe z5uR#BTOHkMny`&74+miW{%CPB8u0UMv0$Y>pCkahgevM%9m3I4>Bmn-K<_Hu%ZU`( zcZ6Sprr#OB7eS%yh<k|bT)~e(GIzIX)8JepYKfz%+r_s3{E5vSc`+A1#t-3Bhp2aR z%F1&7+Yae*(}vK+sL>pZ%d0SWiHe7yIse|d>El()&m~gQR3ei9H8Dc$u=XpYL5qwb z#}nQu*>6#PkmjD6^Kk!Gn3{v-25rW3mhg3ic0)1UnjaUu4#O&CXvL88^^@p}8_|Xt z73BtZzc%#UvapCWI$K>}X&j#KrKgRA)5c|@B-RI1B@rs5>Wt41v+o=JgWlJ09{Uks zX|r$h*l@RF(_%li`U^hdF|$j>Rh*xO*ztd~qeu=<_eGrvjgapgVcjfv#5&Dr26`C) z6zU{e^tuV6rQ47uFV_N&V{;i$i#7d3I~`H9{DUqaCk0Ls)~fw-Ae_Q0D9Ca%xSa&Z zi482eL&O-~q?|OczOn%$y`aN0mg*v3seVu8=l~*ki^Q&jxvyg6-Fs>WwDX^5V>8(- zp@+mXaac{+LyX(ZJxUERSYJi-fH-yQm%WfareD6^Z_S-o>=rAe)-Ceqjl)ZdLD-2N z2w9zTiMN2^s|xKR@-?zZCi}mBhHH3uHKFU0hPB@!YJf+IbjGPLSj4^8oqnT$x+xU* zADSei>$C5;*u324<qH<7;al1tY|>AJ-(?{ET`>n3!0u9%9_MmGu}r6;wQBX9ntek> zxuVyVPrPaT{n(b9^1Eob4b;^VdJ`gb$P1F!9tMe>3J1^B19v?JcEn$e;wI-F0cy=v zXU?t=NHJ<Pp`Sp$?~o@17Pg)O^WKD}5^{$<R`XcKh|~1ZqWIz@J#i~^yHsHmts((( zygQBm5{}O*P?n!_YwDt;yE5NG<lVhrh7ighzNS<-o`z<Aaojg;Qb^5YyY3Q)u9Ph3 zf2LgF|1_$m=5FvXtU16BM|)oFn)L_)DnkDMqX>xrphY>T5&MJXUA|5~^FMK+7Tnyj z26F(Ny@o8Whk)L^8Zav2K-A^7DfDq9J?oyTL3N0JeFii!w1^Ri8T~;_uVA4dhdDsB z7u@NhfOZ%zpm(2cz6^+576(D8^7sL{<FLoH;i9dGHG;KzP`?G(Y4W}%7z9H&I0Cp9 zCPha?5aV;dVTY&XzCE$1w#^cr1)=$%D&WU@iR&)=a6rk{a<3+X(<i>0)rJn-fEy4S z6n>i)SBMN=y`=&Wv9422ZY-<#V%Ob+;g#}9HwF<YQf0DTs6#X({cr3XKbC6Frhlq3 zeKG*jN1PIZdA19LWM;AI7g%C>^nlu>ePzrflb66MZd==rS15l7yUG*scT8c`$j>|E zHHfF5PJP5~=z(z8yMsqj!ZJ^hXK@3{*8`mg`kzb(MCkiOeh7sEYApJw{_G4=^aiNn z-jYMUbEM{38%BI>MYdxi6O%A;B$_9nua_`j)6{6tAo>X1z*x|1Y!Cv)RjAuC7DH6K z&js^#x{wk^CI*FHoQYqOXC%_pHELFW-_%83$;>Ih8$iutX0scLv<qpk_kgKF!^n`d zXl3XfL{~<r6$w#C7z+w@)MfBAnAc2E%gTrUbKuwg62aD_6;)2aw7&U6R>0(3A{fU> zmH*H7Ev5O{ANz~qHg~lu>DU7^3c_zL!vwvuG~LT|g;n5Lk+5K|vp_jEQ~KuSjmEeO z5w|1GLPQBgp#YDCgsCxyO)YdrpU%7X&af7bo!IRk^9xXd_-H-E3=otQBm>06#DUJX z=S{odmL~7|kRGL>(=!zhwmeG<`v6)N^DVVkwfG**qFuw{U57urQ;p8U=ul}J)PeDH zVT{BnY>I%0ktqb}mT;+z<#E@TpJM)*79Y6$Zpx#zf#RXzJ?|O5G;hYbt`6%5=8%u! zL4P`9L`n6~q6Ik^wLW(VuZ>1qA*lt&I}h<b0f*b(G+-ex&9IYM=cIb59oYn+fEk}N z886mAs~b$Ca5bj?OCoZupbb?`H*lMZuF1u!wU^mC+6mn)WX1lh<P)vvzOek7sUiji z<j%5d+D4$X_1+W)rjjXFStOSZ&vzcU$d2+coc1sK^jxQ`)SGtmx!3U50Z1_jm51>` z6^6tpX#AT6Yt)KgogOhkK`dt6e6Mn6VAD4nsm2J+Kz{k}7{WQt6<=XEvs4DIa9B8+ z%&ZFZ0W|TMrXeHDl54$>;rh508qj$7IDNs*0?oID<bN?-G(vKtHD#26)9V=<(EENZ zeDYm}G4+mW#`^Z}yx`OT6XOg_82HAQF9yHK>2rS+U(1Q5?uXyc${3kWotlzT1={F_ zn8P1EGAqr^Hh^XDq#zZo$Vg07#9fTQuOTbxr{Sl?Y0SVtB|Gl=Tm;OZhyR1E{~o{Y z1pN)#;#?PVuo*9*6H`lFvc^gj`&9#@yE}~?f#N*x_TI1sAesb=DvVM4IiRJ!U;Yt+ z&R0}}zg<Ub<CUTDwHiFt)w&1kh=v#7+i^`h_kfmCbuU?$e3kim{c#vQ)#ZE-6@c+y z$lhAW%=(6`)o^5N-k3L=;0ZvyW5+?**xSoTjVLKwXI-xzokrs_EoTNTE4y>oN*D^! zoWNIvBqL*l{yU+9Amym+f;Sg#gRl`&J;Ard()FYkZ67^_hR3U<M+4S%l>m>V(_}g6 z=h1Gsbo}Vwv<eCJh{pM~R5?exE9eC4*+if+wg4JI$*%4qPnzb3wtn>+&{&`?dLEFE zYJ@6v7Z2iWE1=s$T!fE4JGm05Cp8*0v&Vei2wwfRwWJN@sMEwemnW@<FD)O9ooCEN zYV?E=Ra7<A8JG4ZsycT^od?yx&c$CwJ~?3btpnB2!)#2mkYd3mj2Zp6`Szb=Xy@1g zVy+1UT*0j#Sjp64)c|_OxkF_8Ln;QuD7{y`JP;(rtxDRB_P5xhbNpX(y@rhNd`8k9 zxsQ%#U-=&!eTAO43s|Z;KVvi7^fThq<7r5_Zu=es2-8gaGp@$i?YLGriW|E)p8|iK zUosJr*Vrymn>65#y@_&HI_Bu3FZf9GiDQ*z^iRFqZT5L=)P_DkCt|9rwMJ+E@_46q zdmkX4%!~H!?V6)as_VZ#w%6(O6D>h~ko|?HdL;4nvn6Nx7Twu3Y5~0cBla$_?`MsS zTk|O!F;W^ZA}ME>*2rkM->FazEtkBE=C2_mz@QeWqP5`!Q$I{ibj*2Bq_KE-zEPR= z$r|%g3~xBntfH6<p>?fJBZktINfc=>2#DZEY-lJ%NQgj?5UN7~Q3UJR$%UcNP6_?0 zU?^Cgm{0v<eS~2XQH&^M%oss!9zs<g9T>=Ro{7F)`|ZY$<uEoHp*WE@UHJP4HUR1$ zLZ~b0?cC9q!uu$9^45e)Cg;qy=F_I<auyyQ2k9Nx;y_LU>)}nL-mGKz&*T%X0`0_X zY~cI8@YUW+$QCw9v4GKmJ;7doB9h9)J_s3b{ZQGS-^=)!5$iJF2?X&7zZz24Wymjj zVqTq+_ph}AxUhr9QGIL56zO{MFO6pt`0^Yo+YC`}Zt_#hhmoJq;5gx>I-?!pgD-)R zhJBVo#*xIgabEAi;8?a-^Y~BhX_xEgWkw80qX`2*lhJ>yMnW4jqjIT?BU^?xRsP%* zjiu-C4$ufmKbGq$nNnyFO(J}Ia&9EG?xbws+Q+mpu#FkZ<)KAw=zc>F{Or~FC`k}x zP8%x50puP>=Y$>yHmt|vWbx`DGW2~q_fD?td~m;&(Y}VrN&S33UW9=pyC2cO5e}Xd zh!ZE-o5f@hP8EL`CjP_tF!8zIC?2eE9%+g98YD(5!>#l)L|dYiKOwt{M~;!^{=G!Q zvN9;easM(8<5G|D1v?pbu$KqVx8#w)0F}~HIG}*spV+WQIkOh#p<wdLij@Y&glu8= zk2J)^nkD~~CM#pXRlpNYI-ujIpC}(-Gtni`Jg11L>TZ5VLZFH;f0Uh?@kgVChn6M? z)I|l=>2VTlP^Jqls*0He9B3M3<;5?ER>%{ezov=w>6@m6LjWGOJ^skYxf9|#w|wCJ zMn4M)%1c~FT=x?%pp9}`A3C2@3w_}3ZX597hZOay9_(Bale8?_NjRaypCn`QbDv#& zs9bDsXn}b1(FmiSP8^YQhD{#<Ttik%mv`K9eyBqutZ2s~*V$SI;zIl3W2j<`rp0F* zG|@fA%s1byZ*VS=UlLcO-;kycX#1mq)mcX|QMi9^8rMC^c5bI}PRSXIXddiC`5s>X z%m@#>(vXqBCZ~&%CAK(>$;<xNthKAjiXprQSxb3BS-|`e7yg0Qfiv|lYmikjz3*ZD zZ+Mj9VjT6o%OGs(ZO6l4AyXoYkwEC@yj@1OjJZbE5{1)-yT{0xp#coykOl+504SM) zm?s2l-RQte`F}1`4oNYRiuF!8-^ZEB%Tr<gPT7{vcNzi6yK<bc>Dw$`gP{%FbxUCP zylZpxVcogAWq?#M0yyh^JPg?YRY9i%|6G)5EmVP&0u6GDTPy9*$73@bzw<Tzi6Cf- z3i#Lac(v@p)nx5y;e&@GsdvR&b(5!eO`(W_uhDjyb;NroyU`+_Qv0?h-i)vOiLtQ9 zcbcYC12#f@hgr08KSc|o0ii+qS9(d4JJaE-BEj<OYj>yK1p&E&ce@pE;xSJF^oJ;1 zWi8~tXn7aod|g(Dk!FgH6+;$d)WM7p8@!%%1fi~&TM+|&N%|bN^|rd*ulpN)u^TJJ z=XGF#*sTV~7c}5zwjL*ETn1pYBg7-brEEqD>HM3W7Zo2aNa*HAtkd8A<FERUm+D{N z)PEdW|KEQe0paE6Vxn@{7w3gn=SryeIQMqM-B`aYe1t3&aXGVH6K5Zu(aHS6RZ*~a zCyOcD<kV#3-`U@p;`<K#4^HQT?={osor#X3qoE*}#5Sf9HjpfVi?w`rP4Br(B+jeU zt=(SbUvXm|45@3?9?6xqQA@sgT2X?K=A;q(@|G{cA&oZC&0dxA!=sR}v7*LtWZH_c z{9UqB{WdXbt<7^snRUNVfn+I30Dd%Ii0ZkfQAMcq1&r3rWo#z&*Nv2XVr}7y!v=zA zhyXOkFd>zFygTo&09UvDFdC%pz^xb|Zr`~7wV?41>^ZAOP=9i&Sh_IvVvs{qcdSk8 zUoL8lsumH;Z!Hzl)@kEeyN7eZ{Av-me&Vh92#o8FW?!5gq@n|^vxf1eJyHAD){-qw z;_`j&&`Mos!04Yi(O6L)tpRwZQ8kGctH1Ez8W6uH#)*3aSDS4$S4Ht{$s?9s#Q`@` zS^Pk*fdD>-i6R1GWx)mrMeq6<GzPl3>q6CTy+(n%9P19;NDa~sJwWYMG|g^ehd>=n z9gMN=Kkg^&XJB>Ma~)`Pt>L;yaW{`2>yxtfb~YY2(zea)&G)(&_flbac2T{xwR%>& zzu}`RS*m(@QI1-hzwK>Cah-y}`hghvp+bQQg$`?&BbZDYUc3}MJzq9|x!S;TwR3Zu zx;P&4*E56T=G`oqhcjh+YzHeiEVkq}M@qzFt(gT`b}ST%t`I<6g;4d74E?f2wFa@a z8oV8q=Vf3)`rZRm(ExLK2beV{=#~A;_v0O2iRiPw`ZDFcv3<1R*UbrZU%3K^ZTTnL z2L5<@YMCB6tZ#?0|EWCu-?K(t{!U(VL)on2E=JjzInw3Rs+Xd~;dD)|ejit8tmw;d zXr2RBYWT5F7FBnR8hoidL-k-fcW-A=Y1iV;T}I+-)!Q;CO}@U@vF0K8r}dVOA~G3W z{W8&&jg192lfO)V6MqP;ZP7X|YEPF|-x?1VxSyVp--okUJIbnZ^U@kd94(XYr9|?5 z*R|R>y6+Dl49F9^czDo)lchH)3;ovjF#aP=O^t))lFnpjCIJ5PdqUoObyl%UUMu(< zaf|8xwLlQO!2qr0gKtJfC>dNUmrin5c~>rTJY4Q?AO56-%U=&;F%J`mK~R%PoLD2y zPrnDV*pWTqPZ6gVoF1o5?zHq3d6y2%Plxx}@=zFmqfU;^WU%+)n4DpqTbmsh00X5f zlPOIz4P@GGnPM+WJHkoi`0M8)8k|h0E<vG$je8nkHYte<c@@CSY;SfBkz}ZLRDZL{ z2ojC=YEtes{#=B6TV|Oh<v5UMsjhZBJ$=Vg<6eFBK>Vgd$g`n6LrxMIZ||pH4Oo^w zyZMXSfU>-%b}TF$fKB>!TxKzRhNY)ZdX7U54P7kC0US^S9JIU2CWu&)t#Gg!Tit%s zI574k2Q5X_CMUx7^Ta(r+BY`7T`F^uh^~#;NNjkA#{ob~o8_T62VT8>1NyP-H3#b6 z{ml!`k+K1$7JT(Q;@A;-T<Dm-n#xBfLogZ4%Ujv_hQikmcN&NBX>=}{5T28!>^_xU z2oK0l@U9q#vA!~_R#?@1*d=R<<TA993FY8%eL13XTzIzffwgpA#mM^3z0RY?-f@5F z^Q!7@u>v=z6D#ob96X|0)V9nwHQ87swfh;(fznL}+xM2SfX$34JdoXJS*-$0W3ccQ z2B!ScI&d&B_m#vR&k^IN@i6YO-bt_Z*BaL#KDE*J8V-8A-A{8`5&RvV=<kgXhMSoX z21Bq4>`zjmY9<=iZF_hvM@qw&%B4K2k%pt4o#`-b6;qMspK3Vgo)Cx-(ew=G?soBi zENKYME405bG>iUOc<l95wb-jUBrVTsQ@<84uiH8tdIb4B6oq#83I78hc1R^kt1YO3 zfGVfzkF=?#oEy-qzlfL+5HLrK3mgH^8GxGwYkA2WjN=FFE=2cNdt_NUjyzY?<A?)E zqDetEmjEqe!WG0Axg@NI&FnjeP>s0G)|EM5m>0cKTcLcJZ}}ZgmUaj$*E`KMv&4j~ zsN9lWjSW1c!*Tu-;$egWGa~VT)U=yG85h@609wRuCEuS1Ysr=di6-Y6!-H6ngOZML zL+gZb=gET-dR<$X&NvFH;R~RDG(6_o(v~_|+<ThMKAH*8y(E<<3TArda6~0MspPSO z#eFu>N9ph8*{qpRAC+D%K_gN7iPgtD_Vn1~V&uejU<%7S;B8Y4^Mx^rVKk(4P<Rr| zT9$;g1HXTg$giRrQc#x3u8f-TmQRgKF(DWy_XP1Bf)&6#=+xtAP>dO^rX;ANK1xs; zA`e=vE0a?GwHDjnUswwdu9|B338~9I5i0x4$t*-Vq61HRCXE9rS@u2pvaW+oXXb8r zXD$)VEDoouRwjd31te2AD{guR>8@lxcI)<ek=%?>l4zz_G)v3Wo3>Hh=b}M&L6BF? zqCD9zt5#UFc3*c5C2Lh%`4e~zq@G_}+Oi1i55{v=2OAhMwXw@;E{TF9@?|wCJF%1I zXKydH%SA(U@&SG15yyPABGa(VIVpI_%K5gpV6+sNrjly8lt9jiKJO}HSRe{!J^ZuG z=&kz9WKL52ky!AkJFTiKDF_gj^9ZvL(Gaqzw#ZJUpf7QoTBDq+`U63&K|Smco~yvB z-ul-fKUo|(GlJd|V*%?K0*UFd@b_!i3?g6pE!&Pn7@iN5)GoV5mPWluz{$0hMiH_9 z1F#{oPs|l<c4FoDg3BDysL*sBCR-llVFxc!rb-#L=`U2B2gFNwr>sgcf9!DrlHi;B zA&->9R%Tiqn*TXAIG{jj9mb)*Ru`cmSN1*;D2&7oGr+Py^k0$~0Cn9ax!GRMqDH?A zLCMJ?lm_L-Ti7ELbN9&v#9|qfjyo{=f`b5lbaBfixQq%csKA!QOxT8+eNN;?@tC!v zX;X4;9~fJ#Ch-PG=BO0R<ds&fU3i_OuE%VryPjK?g|ozdP5CdU3K;#T-#H?PpydC~ z|4<pOnA7Epmr9#9j}sXzOc3d&dzGtH8V;Z0owlfp0<41%1_YVDhbChaml>NrVDu@6 z&H|gEBsD(cD)+QE4^xxe(2pZn_4Ol;)viss+#^qzYlC+Y<Iwu6Gt>~gIqsjwTNSCo z$Hb`q!z7`BqyF#WuOTbIPK#syNnVv5Wmz_(>Yem9PM!l`##wThuJaq7G<PF6Q9fYH zY-UDb59C)@?Yz#Mu76Oe6mGVu8d%;pg&_l-1kji?=ylJx*4{tT)h~=A^z%gpJPXxm z8`fT>cj|3OxJ+|J)f<nN3nB{5tMgl*x$Q4{?+Wd-@J!WAse=Vn(vJJvT-}{%5hx6= z2~K`Kd0bq0b`wR|=h;_7qoe9{$ptIx{L%Zs)C%xVL>hPQ3D6I5`d_TQWk6d^^EZr> z;z0sM3IwNU@!}G!cyYJl#VK0cgBN!#6nA%*;!@nTP>Q>};kxeo|2!Yw56>(4K*&k< z?C$LB%x~t*%%Y##YJC<hOh=O69i@?<!VqpsafDXdCX<q;gErRJ*Kd5_3SmyrzGps$ zXUz<3zLvDL_^`ehxLUp*ne&;rN-^Fqg@fx~E~EhOyUMT>BF%FlB3A5G%6yxXw_|`w za1jr!`I&fMUK;V_2m_Mwg%2ijAy_%3HCl|**#nJ`{-g^8($43x9K3XAIYGDBpDCYR ze*<`r8AMDiLsUD6JVqH8{{H$Zz@4#6JlR$`?;+ObuIo>sXP8kXTw~bT<;q?+p^(y^ z8+-{qosm&KB<5|XZcB9SE%yycjaaTC6epT<ZILDw%h;(Lfk9#>u8SKd#9z?#y^PdX zQ`ge6f$6Z3;>ysepjD0qj#v}cK93DJ?Odzh$|q^3pe_+;=MNtIM1SWo5vcU^Y5{DM zWvE)i|6#Ym%IxVkj2YRNk4&zG^cXq$+g8a;cgaExyE?;(fXL{gUyEz%<Z1zj!9!hL zmOv~ltSC`L1?b?h!piXpW~WKS%6e>Ke*$iAY&8icJdn<qHx4+?hW1;9bhuQ9!kNan z7I4ug3&oIo&Dk_1{oo{~FaN=y0wn~_5F5UI`rR~G#5|j|NVWE$6ua9U^N3t*84Zyc zVU2*{@8LH&RECwDrW^c{8A4^p7EcFS7~`%WGPUNDzWuz^p(>pXDNoihLT`A3*78E3 zhpP|fj}Rs;uFGV_<+#@~=;+~@l)R)vM$SLWvUd=1t99(=p>30}!);Lt35(FO;Urp^ z*dP2OK}Hk$CBu$90ap`@BAn#!=n_MaPd~al1$fjS+*f>Z*=4T~KC1=L^C>4dkYc1^ zPFCYERXS@2CRJ{%*8*S>`2&Wi<IJ0%C+uX}bU^QI!93YK96fQU!GZAjEC?$t7gF_~ z-^Puna#}8j>e%`fb0RSN2j3XBu)ag~P)>4o$?oPqf<e>p43MZ0v&W&H;Bz<6;_jki zVXQOm+usjHt-(SM0ck-XqZsB0BrqG;tr(*g5Vj_{&zq{~UxnJf&QF&a%2^>aF{f@) zzNDveyTZ6N(A4btT{ITiZNwbUJN%Y9VLVPXEZ7#~Cai{$`mPq>wOUA_WbK3YgLw3< zz@>lDIvmvv{}}J@>m=2322S}qS$Zu57d8L500|wJE^}4QA=T`p6^{d`p5yJT6WwSR z6HyJp49$=_?2K;DiC0P_7>faFzHiu7kPmxuOLeo#yqt@8p=a1<XX119QPNYeQQMmy zg(e3%XIPibG}jX>5wh|`jZZEkBzVkQ0u%o?kN}qs61`OjF=zPN*w^P98l@DuxU|*X zOu~VtVhM~Fr};2M+>Gmo(1sy`?9tO6ax60?h$N|vl*-|y8lv<$l;uDWzcbkq`~F#z z#7LJ-iW5j%k%_;cSBygErym55KE5A=m`}KmIimBeJZ7J8zfa_vZ9*^t1!Q5#sGry3 zr>=lZEycq5&1BrREqOU!61EZSMez8U&wPpnEk+E@FpdKDXAq9R%}L#>N;P|hvwYn< znEnIIft=WOVjX}G1`3X5vwU)L3G$2zA(}jLSXc^Bd)Nzu_(Ya-Y*um5UznNwMnYSc z=WFyK*y0473K`UN><M-FW;O(cng3Mr{+1Jzv<Sg&hGCRbwE*W^J2|L8M-Sd7ZR!YE zYAGS&4KZ&e9Gx{-7OKm=<bm*;VjX>0ghG(b<1*$<z0sQwa-O>!-!j_txkIUXL$2V_ z{YUK}Yc*LyfG^08_F178P?XfynJs|R*bam9iOIX4?QNFm;-`w7W+{f0e<C0<cN?}@ zR7u5yx+d{peA#kU`IM&!ogi1&j8N1maZGdA#)sGecQ{wx1^r^p0Cnv$k{yBkfB%ZX zpVTNkTpg;}{^NMet8M36H$!SJEYZ_$<Y;fN9T*T0V1nZ}4emr0iBpN6K_rvP=}8ez z<&<%&8QjGT2&0!t=*mJ7APArt=v3iANpRziAPcMoJk?{P_8kNwV=)@#K`2^~wsiP= zgFCMkL&>}Nn37=};Sq4WE$v8LrGXtrC-XH#ps37uc0>&7=A#=bnL}0^CdAzR9S0+R ziA%N?Am^7z6Ee$fuk?x<LqXlAnmplSSDd&b$Riw+x221bGI;4!7I%(BND?M68(kCn zHs#^SYhNY71jHNgQ?5KzBo+5PCcdqbOm<BdT9BCxS^B3t7FzAV72P}=%9zW8sn_4L z(!CFwAo+Ixqj!j?VM3zQm72;3zzF!*a`&n~|24td6G4)xXdq<Rb_R~zUDOmgG2Pq8 zjX^{Cy_R!6>M4hEF2q=<ivIm+h0+RW9y6XSCes9)uGlmmvR;<qH{;t|f|G@9H^jS8 z?5vHHPMRndEh1?cf?BW<DB87_ZT{VcNBenD4(iJ<KT-^b%~M<(>Ks&Q9w>S%TEw7X zr}H(n`_yHD$0BxWqIF%tL-~yd*4Es#6UV-#fnN~Pke`+a^g|#W!m9#p)<G0%tgleR zYzV~`gAIdoMhFBdVc<Ds0j$Lfj&&qBcul!3qyT2>^oC)58w_Ws$nv1|-Ui-1782&} z|83<feW$@irk};E!U}zkP-AG0>dfp5^v>QEpMIcW_X?)T|A4XxKTpcUm0ET*I{F4! zZt51LE`j?A1mq&F1=Q6WXaBJfDz`!SJKadYI6=ZO>)Z&@_R|l&%m!h9*I=Wx>lacv zLFl-snFc4j=lp6cxOa2z7&NF#!2cX1%76vODE(6o>dZsV@ffA9kKesGgc$yYxw{+( zg=Tu#>gF>^ZI!Bapb8TR%i?Ex)JL{;cfZ4+&xnNk$b1LyB}#lB!WrQ|qVL}@9*svz zExgt&BLr8*oJZ6HP_&VLcZ2l_4g@f?1NA)D3plKzVRC#1qc{Ni^A*{39*{o!GdGMw zh;l6{o&EeK%?cp%|4S;^V=!tXsYGNimmFi7<fx3|W)N~wE~s&IG-R)1%Q-f>7E))& zmx#3CQ0LoJ1W3YNcVVb7ni~!sRI&PuzTfE==I3rr@%{GW;*;&B@ce2;hDHOD<9CTn z5U~8ibfgZM-edYualrTWq#^4awXcsMov-)qe-w1t@9cQ=Mj*X+CUH64Cc7vglYg>> z*|52#;%eI8X16|g-1{ke&1Eru`E}vSPnPCf)w{L$>KV03pQ#ogIk2E40LgVcx~ieJ zAphjURC|2H5j!S3FtR27`)+mj@3;hgX<q0%hDq>xYYxXPOoSknf1`MK!M~5p(<z(; z)M4Nk(qp{WyDUM*lG+OrN}R=djY?k&nB2}V;LoAVeu0E8Ozv|-_u8nbgcx;Sf4s9G zd4ZuZmg#Tb`n)H2^=fUYOWmOyDTeemavt!iOeu+9BP>q+oi?k=Q2__D)be9P=&)dL zTAXZ80VF2+ZoN1)`04#M%v!*8eglGaFG%rup>99{+UeFThM5w(xw<o3XTg8QS5o+s z;^QD2`5!Lgzu&!_n~|hx;;V=-aQoH+Ez3>3dH(>z<QQ0)4!?_}2CZ8F<tFc7V0jZ& zt|>g=Q~u{<eUq+{SI@WPzXUGpz89qZ*YqU~@B`%pit~2(uwcC_dUAK{0=B&cJjVJT zIru~+#iltl4&p4V{D2hf*dK0(Y<k!}tOua7F;DTxSTBpqoNZ13?qH?0CuF&~t+751 ztHla6TuCG3nhJR!mdiw_u~Ba{r7P8(O_lMnUUSMy%eYg@)(#RJETVq=VA5YA{7|KB zLg>h%4m10@_^y&UA3Y4^daHLBq;}Nst<$8xOGe*if8HehG*QxI1-$Y8SqpHq!6o=* zo^pmg13M)h;TlS<|0vDng{D(Id&2Rq{^0YoH2ja<v|mZw&AOBYUp17ztRW?b4no_r zx2q1*MQJortj{`TvE&)soa-%rd-Wptp3}M=86=XwLrt3j5$p%kG92p{KlAf5`;+Td z>LhJlB-Y(+Fch$V#Bk~ea~xLt5@a}Wz_@XDX?~(adf9h~DR|!e+o`8y+5*NTC#3Sx z0>W8FH_g$JZNhr&)HWab4}>c+(Lo<<wyfWA)n<z{P~6t9s~`;daAC_tCHCu~m*uFd zVTN$Oe&$v#8i-f(b%aXStcomECH$UOs#g3{JIb}Y{%B=>1vY{<dZ*At((EwKO%0of zz7`l3O#J2HoLO{dpTK?;U!pvrUroEkuSabG6p{M4(Ty{Ec79RK`eiOfFK4GUv$Tcc zBVR>r+uE)i$nrLEg2ReC!};g1N`G8hjhfKpmKZy^^&Z*prjCWm4zHT9F5NBR*#N_C zk?tPIHI;M&&O`#+0Pt-F;ghEnyP4%e83kK7Du%;On9kvmpnQB(g4DRoB3l}ke2Y7v ztMat(*!I8p!X5)b8)+;NCP{>Pto-n^MZWZG<6?uUaip0-{TzEy{KeQdC5K(~`(-&N z_84xRUOE3*TU*a2UA+B5UCfN(M>i?gWX1c*UAnY&hvwTQWZP57zvFi$a{KSRx5}sX zLU$~~lF&}nF9DBbKjM{z=In}d%ppOo)UgE+irg-gAPz`*)_8ql{lzt@0?29$VmDSx z>d+86^96Yilc&ilXJt1o#*x6Mqi?*K`FDav{@Xw-rC%gBIWg%`G&^-LM_u#uSFbwB zTBZF;-H@`3oHxbe2dO+7GIfzJ9=39L3xvk?^A@}hQ9V}cXzcQ-<BD#FN>fTQb5JVY z7)RpQjFZ_D)U7T>tIH1cv2D2W__ZN5CzaD+Uy&Nm&*jNjMh9gR4Iygiq*CL4Hihax zOc-WA)1+GGzSmij4{}ED5+$`4#ZaD=N$u2AYq>aW+-12B9)j6B|Drd03>9r8h0%2r z>h|~Y%DW%2mvPo~Jg*ahTh-`M^Sz35+jNn>o?F2}C#t(3NAfWNe@P-@)JO5R^$2Z^ z(?<?ewv=sR4c~V9zMGM^0YRT6RGzBd8_c|&MACk1ecmy<%1zm8jWIHD>2+OVMPBqZ zyU)p{=C)66Hi1FO{1k7r1eqY@kC0q}bPgn2qQESg%RRGsjb4hPJ3USmF|JH96Xe%q z_bzHk>G9pG{M2G^Ia|F7o8#=SRIE;BdsgL$m}_h;Hdp0$!DD{12rgWiTGwUAW1M}r z?-CF4Uy0KYM@-bvuJ{WXusW;NNp*-+I0q^D&dlOnoed0yYtm22>=NkHr278jnQr>M zj@SnCi@$il=_aOo&$}t~Mu#VtlfV0RR}~90b5;nf&P>U06n>8bgN7h`{92DQjv@Uk zkRJu$6%X-YKQ5wgxvehs-ls;696Emb)Z)!&)#r@bFOKaR(0-)vRrYMjTM<tS3d>pm z_YJb+%1U>rp@~*-0gbsr19Ta7BtXZf4ERiC3q^&et{-`7aOVw{^{=ITazkl&4ERS* zgb6lMN;=ve8V$?4Ws$@^<ZPF0&r~GC<Aad2|IB{4JBFK(&^06)^d7wGI9frBAT=WD zKUGs&GPB`PH>ts}UIJLjZOvd<Ex8hwJJf$pThpuEU4I@)HE9hnKi6WPmlOOQ%k;TR zk&Q1DB_5U)<(pL<YIQMNkk5MRa3#-o@@<!5jL^5y1;?0wgRVvfi3Hx)e;Agr<y$T7 z+7kfvc4XP^QbcnUm=vXlQrPRVz$w8JcSKzB4HBBmKrFhA_8Z+0>!fq?5BKmd%`BEb zd{~*nJ1(Hpt@)zuqEi;EcLfnwOz`15PG?`1Z2nW<G_XBwSiazCQ-jsi+Ro*ZHQVS? zloHvpwMw{8A@ye~<k`C0yU;BNioycDUZVZu%5-%#7uR!jx)fYUxn$!MHB~m_9_y`k zfoR3}l4*vOd+^zo>{WsQ2kwu`(fU)*Z_CX!p`8yZzkk}j8NzuyXSd#BC>fGMbF`Td z<qbvIj41B^Iu<#O_7oiiE!;LpAkEw3sVjSCoYIF)8kU<D4~d@yZB~!gUqL>Zbd=V% zHB%Cg8(3KDPQXZzy_+^5rCvU`FPO0`Cy(T-@*i3)>B#i5m$#>%PR-H|T&84R)#fjE z0e&Wc)20=vtx8|0mt7%Lwml|3o|;E>+5o0>V`I6V`!&27^#uRrNb@BX&M>CqlJg6` zB;3+JnRFBX<jrZnWXXyAlTv5#PXZk?0_;NeKe=_aFPU_{{|7&&xEh1&F5~*Tg-VJe z(iti&N)+IyEQ|b(<+36>aU?$iN&?2A9bOU5E7g5>_-;<r!kn#$DVSfLVp^-7pv_wH zfDCVCa&FnS#7TxdVBL2#<(s)}jr(}}JsDq()>rTBjBWn4`?kNHLhf1T8Goq;##~17 z<}=mNmmugM1yPNU`zeQGr}*1S+rc<u0LnldF)buDUlAMHgyC&<tF#P_z48g1#+5r` zo0CgxpZ)aL7au(Ss7%!#ZU2hayjB9`FyTI~5VSGnDn`dc{%H?Lk<^l)<MteI_x{aD z$X4O0`M%~Phe=G!H1)Xrq&iecPzChT4}j7%{8Oyzlc-Z*uoG*RUUHaL()^HJgQD)E z13ks@ZHZoCdIobtlXhVBV0`B+`0*MwQv107`ByaT(!XOJ2FntxYg}0y(0v}EQ?|JV zv-!`m8?7@y<+|br+Ws?~947Fju&yF@0?^YktsC$umKC-e;vw|V|C#T_Vqc((sBztv zH+(E?p!Cp}Y5hwKz$c*n)mHUq_xZl7q-@w1lrJq|Z~u;<8epHb8maT<bT&#CG2An1 zb>x!@N7aal4`KBVX1W#Cluz3sK1<sCsp<E1E*vyuOTh8Lh~$oOg{HH{g8K^gZ}i86 z8uYBC<YD~ul}@LyM+K`Uxp%fYY>sS9dkexB(_hzVW-sT7-*H%Jme)W2{@F_;nEqkO zyeli5cz)q3ZpXp;Fb~w~_e{bHJkBm^Djd(?KX<s#9s2wH{!CB;e~Uy?D(Z)O*ejEn zpWX9@QiimL)c~=??z;7&fNLT(5$^2`)Q(XKl9*-L%x+T&@kvJKtdPHqcM<X8;n~vb zI$}Rv+0r5~tW<Dcn`N!p67gz}E$FuhkklC0d^$dr_-DP#@rS{kpLfd8r!E`r{ys&I zicQs<9@S1KghN-K7LDa>*gEc<4H6)CAyM-J7KNJE`D*RKC?b3w1AlCd(6zPBk^`AG zGoK1@O^MnoNb=U}p<fI$7PKODCOZ9zz3WaD(BBAXS!FbfhPgiAjP_%=D%N*k5*gS` z@*NqZFo9qD=TJ7(>LBPl;=FTEwZ0cCZhye57L~VMajEL_XrQqs*cIY=nNoTT(<V8X z3VRrn0lHs97AKqjXLW8mkqsH|pQUyrPy%%+dg0S9{`Gzk{KBlU<mGs>8!(U-&|iST z-f(rEyuP0Q$4JY*rh0*oxZeGUJji5xwBYIUsYge%vjg?sqDe<f-k6!?o9MYDAAxVt zW3?<1OuXJy9a=kPQ;F6J4K=Am+zdV4eqoB-)=ea*Qxk}ficf1kcivrRH{VY;;uOD* zUS`fY@Eb+)A|!I9J6?_TnBbXQ{L0OLe-7dLgejwD06=EMAQ!}$t;T`ty`M^Onk6j9 zuWKo3u<>lKb*kbme16iZYv%!Fj}N%k9^yZcc3*W&j(}%97#vb)q;XB(aSGMp2Pa8_ zp`@;8XFG<WYxzf<ERVi;xiQOU>LQgMoOOG<yQXE`%X_<ekgQl^>6LSX$4SoiDgjXY z^8w<`<uX~C{M@+%^|@xR-RCxR$`?w$gRfcP90vcpBVa_d^U?#kt2zX_Vk{HR@}1`V z9k+JsskVQt6n+x$Sg2@2fNC`5I=38Vy12zKMf53XoO<d1wy)jo)qb3L{OZ~od00#k zd+ebZK?6cC>!;W7eI<sOs!({!&>1pOXP?tH71V$`vUO;EcYnQy<99l_R8Lm9ywR9h zkGQ#&$({Icc6<DhM@0*XTRRNwPYFPv|CZ31RR?wW;D`spR-LYAdVTz;6t|jq@R@bN z%~j$UpguAn+a>1oFX!WnS+zF+Xu<B>qFWQyfG4K$FNMtX^3Q3klm8VM5*=u7+|Um9 z3Q((xI`FlSTpE-tjCv4!2d4H}8pU<hD=I|Yw2*=~et2!Cz4Kmf=F(Re&q>v}pKOX! z9BA&N^7InEi2z5ug8!8l%-wY=n)Jnz)k6#EgWmQd%Y@1+0XZyZJmTMu(e}SOF&o2e zxZD~}6Y|xP@0VLkLOC4$VInjwFdl-#v%J$4hRjij@vo?YX)(4bs84{<we0YgPicG- zR6~`~Lq4Kf;tv*fj&fj5hEJ97n=3kIXf|VSfF0%v5!nUmT9<9da3JalgSKH=v~J?> zsLuTjU3Z&(EyY}z=u;h(jp|f#Z@tO;!XCe3Z`YWs^A{j0!T%4brXtd_nZTa#6;;`F z4uR{Ic?-5^6#o&6p(h{pSf5U1pAB1}W==Kr)p6r2`S!9y`)c;F>v3{|VP-~cC0Ib` zUxZB2UL&&^0siO}a2pgcBs=|Gtb51#roabGv;hAc_VCDgnDKFA<WK0}72ZsSyfUxQ z%BaZ#z6Vi=yjR)>e}lwZ7@iC>`>}%M2|hyV0BLiiE~%rzPIjMYl4LfhNiOnT^3zkT zkDboTb4LeX4TJA&j9H-j)8n<I6CeK7SD%1it3tIO?n87E?Rr1&+@Q8e&wT>cq-s>S z?&J)G^!A$7z|4&anCeo&M<;rn7Y)oD=y81@AFn(8p_H(RhDKB@>QIcZr#}hb=JAo? zr1_-KU|hJ%jr+Ts=n$oR3EOp(yT+v1Hqs}c7qK6cvCxt{{Qqng4jmh@VuI)Ss3|J$ znwZgw8Sb=Ev%Nw7%N(^C=(fct;7)91`Aw@&y|V8%hk(zgtxDn7S`r3*xZOlMYLwCv zd0g~YX`O{PXBH@(`$qvCJ^&<C?_`3)=j)Yk*l1aIADN-_IcgOl93Ltf=~ITvmYs-4 zcl!<$vanb^r}(En0Y7G?xe|PpROo=IaN+-`@IibS3MlL{u4_JPA?HU~JYdAin{+|b zrFPUpQcO<pP%u!PdJZ&E>HDK2591QwW_=Tz2$i62tkyVRqI;jtdsZT#x<E2<nUp+w z3?Gp=Qgvvfp%_-{altx-Mu`e<B=XnSw*5KRj?N`k3&PbGVUr#^%?dT7qUob?n+&f0 z50F5hhtiwJqIKLSV5%xp<SOE8DpABQegRhl%8?N-|8NF$xu;eNwKDlnsV*f=_YxsH zhYzp%;79Y|;;`@<ohW)KTSRv#Qk+iU%>e?%zgmkjh)!Z0$9%&bn?s1U5wo~F+!%{V z>$;p8EzD=O5p9`x(G+J9>E2qsUiJ5O;{V}~*i~<r#_%--em#xbl?q(~#SSSU$R$3L zYU7GaN1DtaxTw@#%<KfdO*5+k?r<XjCN>fm)_Xsatq>77zdwPrgc9Q$5(Nlf)hG2L ztPENRS`Fedi|n#=!3&>_)j66WzxK-yjLSxCuPJtWg=th6Ct(jeNt_p(Ps#V7?#u!G zPxrlmmxi+0_QeR8*KXdczQyC;k>$V?XU8IgiJ~IEmen<edKmg8+La8>UGJw-i7KwE zRr$XMzXej|#Xw#BqEDVe_gi_6iuFl&-Zhuwf!SLjJ6x><NJ?bkvsEWbnpO8JbIeQE zJ%7r|-!h^6c)l%*Wfu|t{fi~x!&NdCk}_qxHp4=t1}<oO-ROE{3fogsnMAcUW^=Ae z8Lg8gKS651>{C6#cms}2@|Q*yb84IT0Qfp3PfuB_KWA5AB&9;#(xpr>Z!Jn;k@wve zG{2fw%9bpGzifQ9T~&*J{bMi58_90F8h}sVvw+3UI^JJ8Z}Xai{a>8*&A(cj@j3gJ z4|7jnh@ZTH8AnGqz$5$Nct93?=9_hk6uH1EsX+Vu9XNCR8B6#E5&zqKo&Q$d8SkPC zS|*#xnsyt1RU0Jm=?!`7>o4;QrOR??B_?d@{O&c?x7#%p*g;hMdcuhY4wZW!_@y$@ zGx?&QzApqh{t|Y*=IJpcgy9mC)>}z%tVk1m1l5~pbaa;NcWQC=yGI#Z<7P-J4Cdx0 zgV^8B&Q|i4sy+zE^R)f(U?0>zmRy!JApr0UN+*Xz$l*hcCA<4o-)A(=4}vf^%qgV; zb;JN=<UANd9K9bL@rVCpI<vDviJzyQFTK3s1(B}<)a|f{z0JneO3s4G|3NX$5i{rL zZ~J0ijd6@G=Vf@D|Ct>I|F&sRZDalUWn!?h2JJrt3#gWcD~kS7xj@Cn7lxuMq>5F< zbdsz}QNK@m6%fUXX)t(km9gZXP;}P5A{2Y52k+^9X=%62b6Lxr@ws?@C$m;Ij!Fq9 zh(oeMY(w9@3bH;-h=gs9JOcExpf)pVg1?F(KvZ1~`0?Jhp`F+4jXJuePWhL<erdU# z#0l}YVbN!3Z+(MM^s4AeXJXpaVek!>Q})jk&R|nGw5f=XQH+Yx1+i!Sp@-@U{ufOv zAjp4myiOlL?MQFg?YKYPm7r;1!|Orj2#VY*ELYKLEMz6gD|6&Bh<|lN??oAaW!)ra zH9^&^JD8ZUqOsX{{}(&n4qc(MnuK2{>+8vxu#b=BFNPkxj?0T?JKG4fH#s9M8k-p? zkE7{NhkAu@0Vus@Dw&XI1FHd`UuU579gBq795;WpN}-<YsPuv)=Nk!J#1VWPjGe@o z71cLUuQWzxiBbRF`y~pm(VL!p{o8vO?(-4pD$rKQE}`44?pxMB`1xgy=uhckm}R40 z*V|iagJ2IyaHYjSk_Friou?~cN(pDc;bC!Z$&hKmQwRIdeYE})w9Wiftp-ZmZ!d^` zIE0lLhRBD(pVf2S>Uw>9V*O?H6mnHT3@hl;ea`q~hGOdY{Rb+{!mI`yI5oXgB!P=h zfrKUrZFS59ywrT5fW~iJ9>0I8JxrM{F!DG*^M=J^zSMzXkbH>jnwDP-acjCbc)D_4 z<631w{?Au(0zxV6dT1|(wl9-Plw0}P>AAh7z)5Q3$$u`s*th@m28%O={R`_J_UGR! zG5<H0r+8rB{=baWg|+<u9_|YpoAf^>`2XWT;s2kyhck_Rq0s+n_nI1#{|whOwz=k| zU8NA8>c8|e1^yHEyiWs_qy2WGw*d?PeW~c9m2a79ub=YYPo|v2L0S08upr-mIu+yJ zF^9EV{jTxM&jEYYP+cTLaQ}#de$YUDnT*X~FIdd2^j$^GLTL;W_<y@L=p}@007D|k zE7YQ(A;LlM%Wr9+6wv%{Ax!TonGmW&UrI&3#PLG=z_q`?P+eHmt|<tfoEi?URqVAh z$TD@;PQ2eu0E;jd(uw-&<>~<!)H#;zWhO7bIzgkkW~yHL)6M$l`d%Cs7tG|3jSC0o z78GX(TCi=<a}Gy>O{?qQrbB{I()U!*LGTR)Je;oveS%r+jw8eW`h05^tCsY?-Fb~^ z3KoIv6$1y?`4%5`8$ax;F<zE|n#X6?-?m6$H1&bVMBEr#K!H({Hyj*qYecO%1h9V^ zd;Y}kK3d{N==rWWX+>PTk}oeU85k(099{}6h-+-|^uGSO@>Typ=x^SKf#%QWx>>?5 zWWU@=_gwTFex0^Qo%24UK8a7QjLNUpct7!8vy5GFGv>`;v1F|D-=g$=Uv7L}uR}g1 zZ%|A5n1RBq%irQY_JBc)U0B`vk^h0V$@NR={d(iuO~+3^&!)F}632;W3o$WhP&3Je zOfJW^7F>tlv|d?FD5+g~*h0eD=pZSlYjPn5cb={!T&&a^i;vn+K$7<z$e1l+YI4-` zlbp79!L!%Os6geZaNd2bjjGgHu1pEMNusSHGm{VRmUUrn$7u#{{`9n@(-zs{Z#$qp z#pPTZBM%>EL)dV{Zyr~!2)FOUv+vB<Y<LWR{v2nE`=sh-SPy0Aw3BBL#C|>bmbQIn ztg1X=vgY_Xy@876In$o3XLpL$RcE&6$6k1iwtoELAzgQpJNEI-HXdVJDT&bR*WQq{ zsO?o)|7nDq?f1t0gZgEWyZ!u)SEQ#Ki$&iwJ`DfFtarmG=hj_vU%$6DVFlrg@HuUX zq;wiQFqZAI6G}vAlvoJ1?I(wc4h<=`6c?-Y{1U6#VQDDdn<=l@^PlL|Wulv-_aFXH zja8b)U7Pkzua7<>cpQjgBx!KcLv$v)h~urtN6cxy@5F-De_Hw{Ba7^~hC%4VMFcUr znK)h9BVV582+ucI9?a^(SCS;Ru9a{d=c7YDR*GFt+HWMJIa8|7gqQW)dcumu&MF!) zxwlg#9VHtM#<LNZP}$MEP2YtDdxPkX*AKDFmb0!$NzNx`a}z=xIir=G^j$5CJ%Dz0 z5WP<oyIJH0vCrHw?Y&Dy*V|DnRQ0#T5_vv|SHny)n^K`zXwc^_hsp~Ard;VRFd9fX zf8U`W{K=gTp{*GqI9UyPomVlf87M;iS?YdZ8UucN<Kg;mL&XPsw8h_>wrfT#E+r&S zL0o&9nn>dK>AF1KL(Az!dTrw4gzQvt9r#cDjrZh;#6}FlmMhW&@6A%geV+6AcV=m) z1`z24*XGmN^Sxbvk)_%JG+a|Jr@1JJ_&6Gu#!Mi~2`aol2{CD;nH&$dQ#DdGQ=F`_ zpNDcCzhfdo=drMdjZ1^$KEzIEeeFKN<o_9dTi4A0+twg7Rk(K{o!#`$)ny+lrb@j> zQ)<U*^Fd`Dou4FAG$h7b>kSmA`VTK3SX}3=W_~L#mqkR)B1VAagtdciW+I*-Hgx_< z``cOPR=bPytUX=_#UaQpI6q--p8f58*GM!W+o-9p*nWJbFQwV+Ak~AFe1M5k>{;AT za&woekD`v)_*1(_1{1%cHZTV}7hg>kZ6bUlL1}k+z9}TV>DS7B=<84B3bu~W`sP!D ztn-Dpx2Fs2cIf%AJXplE7t%oTF>10V*g*h6fskHPVv^h+!XoG>IBzb|1rEm-ywa3_ zWouz&gmm!RxfDsNNL04t=M}2<t#6kN5mZTksK88RyfbS1JEPpDYzrR2adz*x!L(=7 z-+LH$7p*d9+1pR}dMrJ2*F+`Ao$Lerz~Oo?V4(G8b4t-51GkY3>nAx+V_6#}Q6K}T zik$PAKhhm0P`nHyYO{Z>&kv4YOM8E!4IX#lQBccB{0q@z-jYNjc$4xg2Z188vtVIw zQ=Bcl_$kJhla^@myU%@iTb0U2lk0;kox$W9KNW+=Y@ouIsSa)*x_5;~l=k7xGJ8g= zS*2K!Q_^VqPk(=Ta3;x8&`P9sfy)Lepq%<)B`xsfMV|Lrl66RyC_#278F$3tx)Hl9 zTVhkP!^|p-Vn)Ev+Up~j5#Q#&_Rr-V1oH_rE&1q%cuWZ|w!iU^AE@=iwnTNcEdDsZ z>}?hH;f}QN;}*cB<IiJdMjfZkp$1_fS(AmPA%jC#4eEQ@=f#tP3WYUyK)UftW!+L* z%>(z}A~)VcA$RL_j>uB^7|2uC!Z=aIF`HG_+@pDooa9F?(khy~h)%G4@J%rAW9751 zXe1SD2asF4ASocEqd(m^&WB2cWD;TVain1LH)}MS*6k^Ybh}#pO41u<vuFg%8Xuxx zKa*KpJYByoyZ7YN{?!p~0{^JKzyGyY*SeqM`C5u|*6Kbk2NM&E*Zn#9t$MyD&mW;L zTAKb{RkGvud|f=h+t=}Q-Jbzpkq2-z@)CxNe+<;y)TemGnScKK-g$H2N#|`=vXn3# z|90rnI$(wGA#5X~(rGPTzpk>gSbxOl2B|lFcxLU!YBAOxc1-#bp*l4byOzyC3p-Cd zij_HhMn{dk+QZ6>=`?B|jRV^b1t-_h$cTuEd#I@=4OsWb3F_U&8-YBmWfP%g(hOtn zqU~fmIwr*?jZ|P%BMQpBO<b;D?2Y|45X(Q;91}Xq_E|=mXrTCjWbKp1e}#_waz0G> zG`9wvzl9SgLv6TisdVUZc9l0?{~6>d!Gv&TXzM!ScZsKjBFc`mQb%UTFMYcOMZX^U zD+gZzxGM5RvHEqoMx8uw^l+XE`G^=~1zab)4SR53oQ^ZMeX9UcYjQeX#m=8Nbk<7M z?2amOB)**AZ>jk{T|NR$TarPm-nnSw;ZvgiBrmK(^*EoYrfr*;#QSha$B|}vwzcb8 zQ&U{TkW#{D?)d7<FKQ$Y<_PWpNV5-RcJxCa%~zX9Y#Zb4&&vw^7-Jy4<qj0;5Hmhf zOT45nG1V@_&~2M@8&jgDKF?HxlJ#hvdvg*?@o%p^p$ptxMdt8wKVqHvl>hR+J{YjV zw@N;X^AP7Tz&Ed@<}x%z9<Kbe-o`h1<W2HtG(OaQI)GKZo%3GE;?t6m><wQ8%~Xo{ zF6mF6Xh`}qfs?pUe(GG9PMwxVs~M;$f89V|-_2_$yI*2aG!@9$L2zDSrsfEwl(7;J z0w=xxirLPhAp`bfydXew`tm73#gaglx|kSvn|w7~&M;0CD}D%(x-~O?ck6DzKf{0X z;LD8my~R3C+<bH)a}+zu&7)=2TK6{e#Nr}rnTNJ3I>bG@;D<G8QP59~u{8cyPuY^e z>->+8eTlPlH=i`>TZ_3{=4Dxe+_=^K{<4ASU0*cQ4oovu3MkuAQ`z$FAfpO<^h*na zvJ-n}LUrRdWpk?l(wU9(&J9@Oe;G%^&yNuMUKEre5E&|<u99yU>zO1b$zK$q^{{z! zSba+y2?-sg{^3VJK*$&}nUf+`jxV@liI6&hNS^xZN3O1kE+AaV!l6o9|KeT&KYn7z z=G>xas^qcTgyv@`j(m4R*F2qg<kaGxi0J4cg?Hw$MX;9$ikr#Jd5Mmb3oYO8IpCFg z|5ViN>AVpo>+AL$LC#-8vS?<j8!C$tGb`tQJ(0FQW~ds_K90n4{~>YJLA2Fub*n6M zXUdh=oL^LuGv=p#kZfY>@%+x6C_qf$(UxvWRiV?en!u#_86x{p{fbLmD0}G@wE6YZ zvWwP~-Zujv9O)tV>eAG)z(d7&&L}1A4f2%U>YdfsgM!;_`;EMAu<1J!N+$4=@~q8n zyYVsoyuY7K{7-}5ST}e6au;5dWHkq^`}VU+XkRL@72cN3eNKaIhiNZyBF4WVJhR3k zq#Q*@+JPDzRI7)Z0n8M&H(is-UDQw}zB(ElOJ;awRryvf_sxziA+rITBw||mVi}@( zQ#*A(Z)HQ=SFSuAaugtmNEtIGr8#4hpTr|vPo-UwPX)Un0RwX1uqUvX5X2Ts*~a@( zc57`mEEtP61Dv#RdjVrcq{vWumC8_m$Qwcil}Z33$v#tNG^DpU<bAo&eKAh3C*d4+ zbq+6b&L&>gWi1fOo2)7EWIS*R<l9wgg>&6dPY>PxDgup9{XO`wtDcQR%?(cow11Vy zC?0HQiqfX5SkT>1vKXN*1d1!ZMXeGM^wL9{vU85L7hj}xMSxPXBmktoVPl7u!~6O= z*xQ&E2yU&7;5dDA<>Da%8mtQRE*d`WUX^gZ+}7dMm-!Q#DQr$EBiQj01GB<dPzuHF zn`PzWf-)DpkJRtgcBB+#Jl)UP`pa-=+p}Qgt?fRtAMJI7pFtlCBPR`eUBn1_-v%o2 zLNoc!`JEjjqZnk9RkW5@bzlfloWpHGA}18M9Aecr&I8b<REh9GBiXG5e%;gr3$mZF zatV{RPM##v+H+RGQE|R2Bt84ueS)dK5GV6jJ}}20@<h*|DbbhU5BVwcf)bci(i<B~ z!cmZQnZ#_Qfc;J1F0@>Y-=ax?lxF_4Y~n{GYX<tTpK9EOCS#3^v&&P82ugf{)iXC= z<W}>v39FLs?0S2~Ge64$>N40FwTP#(?b{HGy+V&le7MF9f{fj`Ho$MN(S2S%qE&D7 zwWBg%obo;hyN{s2)X`Q&xb&SsN6HtYKP=+eFR2M6BY|f7Fd{<P9MMhPe5hf!)XJl% zkTjFx_e0;#GfxPgP&*IYH;vmRsU;Z4NMS|9b_n=pS^p9(eB-6~5vV${j?liextRYn ztdkw_f}OrwKWO!EQM~d3ZWtnEvl5TOeV<T5f~ECchdtpv!4BGjz(hpl;1&(+9e!Q} zWXH~g@Z|r8;yXspKsd)I><^IYfZzq9dqA*3Y)5(|1c&@;NXZ$c{hSIH@+-d*cI<k` z*o3+wyT@(eGSAAvl<g#YRevB9a?&)d@8QT{^1*Zz0Kc@(Etf;X=#d<!x!qu|_=9UK z2JZJmQfYQlRt)ar>|UK0iOLUa&n3W;1Cb`ulDdWJ#yhGjTJ@EJ$bbSqZ%46hu1Q~3 zy}Rb8Z1ThbuylBgwtzO1zZ{5x&;-9q&X*-z^j&YXz8M~%o^lY%!W^SmvR+TbI)L$U zRJ!K2YjRZGQh9CjM=|PqD#=SU{w`DlQ5k<Ycf-;D5GnJ8NQW#=uY^fsH`wmdvR`2m zFHHT#lQ&dK2}Gd(pS_3vviIWLOivTLz)DZ>S=`^3M9YIBDt{PlMJ$t<keu<t=j~Wo z{!V@3o-d=aMaOL}2nC)(dI-hvgF9)7o3$locWS<M0_mPB+Uf*y3=M%tKFTdV8RZE) zc?E*&TiNgY_-yFkalNm2=->o(eIZ&Jnxv)*Ph(~t<VKHL-CM*FBggF|iIN@nTKM?M z7BAA?Q4T88;?tvp%U$fvEQXc?=xbin*c-Xg3|w=#1R4XKMS2}@mz861rVq+vdQS2R z@jUZY&T^eB+}r(n<w>I~gBMD=-hjOA-;Jv8K<F|C{~m;dEx?bh)7}*Q!nr0jN>sM) z)cu#05@9gh#94PI1o0w7O0I^z$`m;oyO3+hP}1g;*ofLj2<D^x{~#377lb0c`C3Z= z5$Y>#$Tp7{zaRc?t0U!jb)m|(57_m2rB$OJV7|G|w$vPeIQ4Apz~qnT5lMF;QLx-- z-~f(xZjG9V3L=>7F-&Pj<e`W(jfW~RYt$Y1i5GO_Euf0L(hKkE0x#yimElipo02pJ zXP7-Ym&uLE2{A=Q8#iEy0EwZ#1{0$SqN0YwHI(sqcd4~*D7KA(GA2n-9A*udjz@vE z1T+$zV*fag=Viwx^^OWUp9P)$Co2ag6^Qy}`r_qfdPpX$LLs<$bD4US(5^lyE<EZR z)w|jU<?RZ{RmejyxnM??5gx$$5Hr~qV~w7*&E?cSMp2mIPd$0-gB$!)H;*_woKPi4 zFF=8*HKqXG_<i`RLNU7H@Jc1kSMABS+6`_iYmJ)DK}p_MB*#qD!!T&52ZM%NE&aV< z90k8G-e30f)nW^sK0J?LOF1Jxvj{bq^rz}dFs<S#Nq8&!<w{HOeEudD6J_--(;CC< zJ8VNoE03rx>%JJLw`=kKkWQjbE|@9jOD#tPQDsyBa4Tn+QSoFl;EH0|cK3h-LzQG< zhE3?$ti%5KWcf(K+Fc58h^H8mr5!vWFna{w_6wW&@R!IPRVARg7D4HxDwOYso+L|j z3j&=LJhbyL6-{b87a^b@JdZ6-g*6#(E<R22ghE{9UhF3F_fI^t9p48ZB#>y*+@dl5 z=4tC(hEUiz-Ip^Qf2Y!@5`TNS!vWzPSX=?F3gC96jLbm0nvkyLOe&{FFO`rjkM4|P zEE8p0l|B*pNF#X2%|Jw#_-?efV(%eCB4T}?%EA=+ji2MI_wMF+g1R(P^x+=^`gu$G zAc8Z(@Y6qavP)lNU^|R)dsL|Mg@bw4o#9zYPfK5K`mV<PEV9IfLVCLe9Y#X1^wMg4 zL=E^kSeN4MNhdCn{}GH`qcDCpjD418&_vSQiXH%8tt>b57pYq9#g2TT{SLDaQ)<l% zswfa?UiZqwXgqwTfaKv)*PxuT0j}vD-|gYBl?Zf3ru&8EVo2IxqK$L*=PmE_T;HQG z36+mfVy1_w>&cWd+0n)GvhBruyUSb8a(~4cZjj%M{Cm%GIO5xYO6f7~aml;E&jz}& zy5Js$lW{H)QVfy>Oip>TBj$2U3Zod8X~Na>XYcWx8bXEM;EL3#0p;g$MXWdX)lQ$r z)hNQX`@qdQ1L_Ye`n>b~Q<~fQ{lG{w#qL|uyy|aTxnk|<^V6ckWG4$tU`-?gsGb2b zu~DS|a!|q|doJA-=L8qfl>0L4jn(h8ccVN?(`Pf#XN0Zww6K9`wq8Kgv<(6E=F+dU zuxJzq0Wl^O{kXcn=gQ?@-c?4|i8Q_FWv^dEHR@ls<Vwx1{XVAf#g%_2d*s_Z<P&EL z(`0V7M{1{>3>$khQvX{@PBCgansX4Y>c}IKZ1z=JSzt}F{YVIgo`yZQGnzLm0C21M zuf7tECW6B3{a7$EwAM}du9+dPXnM+XVCR1Ks)A_7@oqJ(4hlI!9eq|XQK(|zDQUzx z+AyVJk2%KEIOcQW<LNk2w>8_0QWT5~&GU|qHWuO41d2+0m3<^6955JobRSmK=9#LB zl2v_tdXgE?xK>A$nxO?*3VQ41e^==md4AN6-gTi7qO#35G6Hszs(%2A#0qnO7?v-~ zGs4{wBD4SXw209R*Y}hrZ)f0TAtC*M2N_|kPK^GQ&Rp1uU{Aw1#hgx_esZdtD3!V? z4adGUe%e~!u$zls>Ck0NY!hHK-5GfEn4Z5E63LmaeDi~h$|E<7+9ks)#ZPTImLybh z+alo9U$OGL3J~TEd(6v=4>pp*Sc`~;5OtlVm4&bEd~UhPj@gSf0h+F6k?2)@Aw8;L zIDV)j32HcpEdo}Yirr84BtbS1iOJj>K2T2B$)uV%&6r<7C#F=ZY>|xn;eE}0P<utu zX9WCMbTaj&H3xN#3Br!Sk0~9ij7)>03R7NuIna!on(v0O9Yy#|2(-B`rUneB0^XMw zH{Z}CX%RsU*>o{OMZ~Z;Nz3kBopoJE$zx3pR>6IALWh>(u<Dk|R@s5P6V3@_u?JsS zpEUg>X3AG{_Mo9dau;9KKdDEKl1(`AaF`Wb$6Sp@80LDP?}d!6cnB2MlJX*$&t`8i zrdH1Vmf>7H9MHh5X($%BPYQs9mRCYvp}#NwSv;h}?<nUw-dcF8Cgp?{D?bs6IB?n> zZz*0&(4}V~#95j-T-xkoYx@+9Jo<X!{6KPQdx872@X2Fc6(KC~irQWs^L=^ltG9~t z1x`lh$hcL1*gkot`c`SSK^(bO6&P!*?i~a&io^T%_xX%czF9aU7b50kcSs9p=27V7 zS3urMV)R62I;{udIAlv;R(>cn`$3OJa7A3guF9Q3NXBB8re-T-l%etypfIlu*13cG zWl|tOn8r+`sHsW+6Nx+lxtkkv`$h_Mt(14bXy@lh2wSY1^3y7SU;!^q2w{}cAn^F` zl!uTCqqg2|*0t0?)hZKI0noQmO$zN}+`OlL5+nL4iCUPD+MEicbpUbdsZ|bUL1ahN zPy{!$U_dxFcc6NQks{#HI!6oC59ZY*>;oI)sV|B~z%`1IrH%}MN&OxEcHfC|^DZZo z#VXMtP@j=;?^jlZMobvi$^M-><X^R=SlOE`YieHXfuW*I21RZ7UL3P@W1u^e7-9H? zW}wi!;N#)p>YPW>8Z~ZEEReWV{h&hI*(TP(#YHdC`Px-I3@$7%>#Ycdj{v9(KDmgy z0Rtpzu0SpEQ@JSb-Hig?B;KRgfjosVC2~<$y577wtnk%7E#BbqyjeEh*<KA>z&BCZ z6Nz#WxP=o*8#zN#4yvD6bX@~u<drnJ0F(mkbmU=!f3@lW_`+z6w;-4-s&rx<Ntnku z2he6*>2Y8`$%R@V2veEXvRz;{SV2pF2tG{er#z;5J3Am^LkC4rLQto!TKBIr3=RGO zPO!OotLNf0CE8gau6&(s)$_q5u@iDgYG4p3s+miag2CFOgoc$?a+RgRg~?w$V3IJ< z4^sa5yoi<WMp6^AQ(k>yM6t+<0uEYhhax-8?rk3XGs6LSKvL=V;wm?opeoe);P5UD z9J5Ssse_3%wZnr4ERlfWI!cs@brawno)9j^D!m91uhTaxX6W0-NxT$nT(w(o5*UpL zq3d`;4_j#)Sr$~GWTYJnjCaz5gaC@F@5TBtz%4X=e^vuMM8(QCuhHWh=80<hT_gP< zH|Y8pAq>6f7=iOv6s_EbVHf#^6s35`(1#tE2VtI3^B<oo6ZqKXhcGoo*-tS|q<iHF zRq^b1ooE+;B24)5&RZr>FIa*Q?+#Z|Vw10vc_8Q{1|YsD?vzm)IE-nd{14PEgOLNh zQB%Tm^SOCGCIkyl>=GFfYGGo|EpmWLp!Bgs7O^~X|4&{nIEfppz8^#kShBFUl9N}9 zYj#L(>uQa>=B9{!R)*c=Mia@M-jR%vlJ<&R^XXjh_r)ZRUlz@jJmrm<^u@tPlbaVo zxcNb7p&)QjJj@ZeeVt5d=C62RoWp9wr1bP+fv<6mm;m3CX0k;WDR&oPFd^{2*FMFC zO&S85^rX_i9)3gM{%T(~5Hqr=O`~`A-3LQpIw$%Kcs2XD6LW8*`0YXwKQDzIk(ydV z^x7#HY65K5M#4b4_rC#>rJ5&`rz`aUpD*-P^+HkGcw5^93riEL0Ne*BmD26CF}y#& zv;A3Tk>^@`u%r6?x|O1PeuHC2{Z^c;A+532g>1UNh?JyxvV<mR+Oy2l+u^ruLRQRI z@>-SGs^gz`e(-ZW+_GQUSJ`qf-)WR)2@`-s3E-#XJ{SYN+;&WW%K@@0F*kXfeuRRt zhC_LY)z(0L=L{iqC<V2VzoywIKH=6CO`3(sW$;y~DawFdeK^6oRJ~WWiTKF{7>N4G z2$+iocd0n<+xH(=e7m(5li2v{eGFmJ+eA?Sin+2{;mPww*;F?#?QH|&PsCa91va1_ z875gK4Swtt4<k(R|9~lNpRcgZ6hwM9ka<!G;10o&8U@j@99z-H?bov9gc@@rm`=RL z^+*V3DTgt4RSb%t8YJO+`GH-)7}Ij-L|&lIW4HQ~P!@MEqu(xhFDMa@;5DPm-`mqc zn*~h?5tg5;;9HpzOfnsshIZ*@#6qpOzsz8^D3B1Ugn$z4@fbP)buE|(I7^%OacIHi zIJh__n5y11KIIAl&9g_pAoqh1eZu$BBWvcll!vBDY4;8G1Fk+=FQ_3fe|vcqY;3!? z{b<6ngAhmQeX$ujxU~)R)eP_I2LoQoizS;GH%ljZodo2St<$tw26|+_(?wbhMaNVP zjE0=7Pkv1JofuHirTH%w4Yp3~2LI#Z>28jH6(Wc>hx*LbtCHtgoD0QnEQYx!-oyMn zvN166^Uo8e&8Dij-<%}%0#B(6rgE-4JnZ(n-GWWnkub11ZVhVUS2LY2|H!2=0#NXk zeRWz&$cB;oB=Mfg)vU4UIN#pTYMl=S1Ye%L{z1$3NGcAsk&qQUlYZhk=$PN;ZK2hH zqK-m;rjXy{kMsGip+Xv|+kQwmX+V#G3!U;<{{!Gcn@B$KD^6an7-SVA5kh#)L^Pit z<v`igik-zA0b%p#7W>gCF3^P{wZ!SJ;gpwdC!YS(nxBujT~n-ii9u)8k-Kr~pXUVZ zPF;4M!tuIXx>KH43c2RRS7x%ktp{C%rzVcOBbgDlWr>|&8X1F8u3sHEbPN<!RTv;( z^zL@FzuxOj*H1^MB33<7`VY;_-ss<1CBF2+1UY=S7l%WIzjN~u+*;eN=l8^<U7C=w z)EdDw64FJrO#pF|F<C0&ge%Be1Lw_M{#g|u8!ITL@(UZjiC^`<nv}g#x+@xe0{ZJ= zLvWqo!CoS)B+H<d27%t#2^;KR@So)fPyFw4h{=THzsJ<Qb05<uD`sZ|yWOTc1S~Bs z0RV8C`31jFMg#tRpd?6kSZptj+MuW$A|~?spjc=c!FXJEY-mV`ko@Y0x#!RuXHmA1 z8M&m!K<Ya2y^W8;=*ukc;moK)Af|4yi?;=@OT>L-<;I0vO<md2@s>>_0$Iv3Kz)0v zB?jlmGwCR#+Vh7yuS>*y-Y0s`+DAv^Kk6h!{Wg>$)C;Y9-OurLrT?cM8F2x-YzLSY z!*ZnvtBK_M<&8@$Ht5jyB!hRK;lRz%uMfwpGVSgK%)Wix??Bpl3v;d@3@a_v6Q9Wp zPCEBUWG=TmYg${!df9&tWaciWgx9LWx7_{CbLY;y^01Xtqs8a(sqg`}%1V}8s*UcQ zj-D*bpLC3O#=O%FhoP3<X|C%Vr8>Os+vke1Z6>fs#iRK;*4N{>ritgHaqnP4D*xSF zl<l{N9^5gK{?^nloOg$O0r^yrPz?Vt2&upW7dE}|7H$P)IqnMXIr}1p7^Ee+`}O8) z7?2&qQTP(K3*}iV2?7#L;sw1bqKzF@C24J?l-YIIOG3LPD!$Gsib){vn4A_Z!zD9K zdzHaVqc!VU{Oge8p+SAssQj1k`}Y)5W++lTIy538PFaGpYd4FL#$|lXCbQW!AqLw& z<a)#fNw=pfQgHZ$y9QJ^u+HyV?Y@xmCZuG*j+U>Z!syfd*EN#)Vqq@E(=t)?pBP@4 zQ2)igbrd7y-<0xwt<ZHP^M4h0<>63v{a>4<k}Qo%s6iznDk@vW*rRw<W37xVV@Wa- z2BnaO7_v9EENMXoBij^-3E6i;7{)$k7zQ)^?$PsH?{hux?|rZ9eXr;G{pOFk=DzQ< z+~<4F`F_8j?|jZVB#j6G$irMEUSag!!`D{%d&`auR|LG@uOl74lvBqELS{q*0m)x8 z{wj1Z>@#2e(v=;yZT7?ITLsa-NfpQRyNY<VRO$uL#C{&``!4=HL$0h;tn>IH^R>3} zxtrT7j;~nVF_WI60SJEiyda+hkyq2pD(!hdX}C3#h4^HAjYzwgZz2R7S56=WJweve zCZ<!@j$bG*dWDFIE;FDy59bCKpmc6-Z_D=IK#0L(-+-jHn!c_N^^i(2Ge=uFJvyWV zRb}^Ypg-NW%YH+?+)?ouD9vH5qkp)UeDf*SMfq?DFH~(0!*s8qEa0a^TRd?$uWmPl zyWIV;Z8nzF#&i2N@2|gvU+0t~N3>P6P|w_jwi4Cqm4ySFnnO%<%^Xk6M<XP^l4(KO zFHD#BWQ`t{mcUv*9Ff!B5q-EHh`f9~6#GeBCs~-HIsiSXMFfH+mVdZ)bgiwddrqhC z?9~Kq(O1Xwd+c&N1K4qznPuLIPR<|oUx8Ri!K}1~W}`>6A714RqXicQ%EOY>9rK4` z?r%Hr5;&V&t#rTqb*gb=DZeoExR*;^jt2u#f>#<$`_Nx%ihQMfAgZT7roxduaLwOZ z#wvVh&c~mjUyqqlb9g@p4)Rz%KN+-T5g!=93}+}gr)jXB$-jWmn;}d;fyu=OuP+>5 zyC;6??&Q*G{2Xx`x9cqfUT7Yn_H@(LqT8hg<y%&#FeFD$u_O;Jm!c_6*Kco06yCf` z$;D@P7cDsHYU=uuZ*DJ37OcE8Vx$o9K0H?V15Xv+r8)RcpIr8pftipK?jL#6qu-ZC zc<C;=oU}mbzbKkIKT>mrV13f3UhsiTcQoQd`%pDwQkP45HMwXyH(!EJ?Ro#rgXmL+ z4f%&iBh#%zoy0w|*vbVQz_@s>jz!nG9so9k&oIMi(F>mKz1sEIyFIgz+d2HYf8FYB zUfab7SD67DP6fPaPtD7#QWjKd(aC}dcQYOYC+d~tC#Wp?G@@Y}#&uQs&7T|RpPY8@ ziJG0KsR^N^NPNqT2@34SuwTxwrgD12F($o1FCcnMbb@N-O7Q3++pJ-6*>d`=6WyHv zBV_7r1O1ln$C9P$*7c;DV;@wiI^cmSTF+SFUGm2hhl)3v2gL_Y@z&hh@4%m(X|A-> z>Xgy+F1&tL;md?^4Yu0X)jfyNSJlxR0uyl99hWklkhbN<@!bvJPs#wx3ZOLUqg;!{ z?gfL<i}F&1ybq(e9$86RHEp|bying(Et^~q{&{IDmj!vX=Y+`kP6&t(U`JJFa_CW| zmobnafU3oL{z%U@y&l}JIQJ5Ra~N8l{Z%yAbK7(#*@ZrI#?h!FYV7x$*6A#Z&0>N$ zgevQF<0QysHiz=Xx#U!PgG0dj^{gITSU);^Ntr_#6Dv>!E`g0ae-XeQ$<wiaCV$m= z$~)A9TO$8KCIj}g1op3N1U|-~+imhf<BdRefQ?oU9&M;E%X0*%a1#O?;@aU&LK`PJ z@bn@Gv$<*x5EzHn_B-3{_lG~v9{6)wU_;W)9GryzhFJILi{=a|)XV(F$b=`cd8e)Z zZKug7iK(i`BGLHAM=Fs^mwahYT>)i;m4QvlbV_Hc-o&Mgnv07mFW#{~vZ2^qcwR&@ zEXPiyD~z&`=>A~tQ}i6jpEBt6x9}4GgF-l*%fFvQiID<&;or&c@8Mtm%XVV+1J(a8 zoYDV`Vfx>v=8T^I$LfLFxd4hb7uUXvTUa^rlAKu(1xd4y0d`mgmXMC##bm2LdJbAQ z2WfL=1T=FSXCGc*;KKwjZt4`^GHNsJMbPBuf4T*nbNH*oKXPIA?ELGkzZR5M<M`KG zz_9z3YhvOb)%~e#7=wv66mHUO8f@nr1PHX~NJ-#5dvH7q8rjZ0G|#F-tDHH*{u0$o zON|eCDPvg19|-^Q<LCu|A3AVN1KDPTw54?ql3p0jw109;-4d@k|E+ETj&J}JK;}bE z2a)41081CA5T;V(^)_D(8ujP}7f`O<La&r4gI7s9=Zi<)fE>UBtp#d_X10H(hsE-s zlo`dL`Qi_(oiiYXYxSloD&FdeAx%an>?)BxQI6}g?iei)H1p$lOnLLfgP%)L>8hIZ ztf!`OR*fi1uGI$OPCRTuYqzf()Dloj&v$Uz6)%^a7a4$}T58g!=EB~$;ZirwlR8>E z6d#sQC8=?{V3=>Q!U`HHiS>q9)EYB&dWjrRc6Uh%8DXUWydD8yLPtS@9*}rcCHvbT zKm2_#@<H-+y8`xFs9(Hvp)cu-zxNZF8&ZY!7;a8|QN8NyKAkR4DJ_yT`jB%yIKpC| zzh#ELOFbMtjqVBKhGrh;$meNbJY?M}3gVJuoni<Jw$Ogg*+Ch?kp`@p-px%3e0J1) z!>IGCQq3B6pzIu+sC4X=Mh2>Sd0K2eaAAg2^`1V4p-?4}^q<obsU^3}%VY^NQ8%dK zg9Kz`p$_^~e-d`G=2+xRPgeV!X1>EMgZzFi+myg%Y_%|PP#jJ%@%4o@Bnwy_Og-<~ zA!ZkXOkIQZRjtgt5flhswuQCu4G}Y+Pg@E|A}p)sT9@CcjIUo@lVJJm5o4@U-XV3{ z4{0U^2P%%NMnU@GB03^)Dh^2j6nQhk_%yQ4dZoKPk{UfgXr;EadNe|-PF84A6NL9j z+#mHi9q-<B268aaMj1Y1ar@Zty~Qb;L@mcnOL7rJbln&p9y}js&A+Q~@ZM!-aA<T& zw`rbxy=rqAYFiAJ=Q^wOgKS)H@ttujB@VK!x?tUYyd!HN<VmUuO8J6uw=cI5`Ukk2 zqJdpTnfa&kQo)*uJ`A`cOQSB?6jAB>J?X(ms5EYrf>%UGN)VK7)_i<e+||KXtwFLZ zpfO;v9J}^t5wq8KsqW83Fpz`radl;K0t_tF<&6d6<S{3;G`wupj}Cl~_Mp7dr=$ai zHzuycIBXKVVHo2DMW$65Wgty;W^e!d%>E4@RA0qDZ|K=wa&}c87~P1%Zht$shO^Dj zL~SK|D}6dz=rk`-p4)+9W-{{fBCq#h%5S0J-}i{Aj%NrP3K$4_o}2LLe!cv_6stsM zzvbue755P}@nyGrm#cI-d{|q>;DnmWw3t3N1-Iea>8X~53(y-{7v^5GJ=WWw`x}6L zP%C&fuaw5hX3c@Mw8)wGDIeU45Tt3*@p5LR1;hc<*rhl(Ik=>@l2tafK-<^7=fb;@ z&vMJ}AHtoSjjmo;rg}&))d|?X3aIDMG`a~KY$sW$PYw-@yaMA-zKX-w%SZd!C;!-{ zTS=p_EQ-CM4dW(nODmeI;#%R0Gj;;bqQ&j`lLLLmc>!~2M{t7&yvELphRU}gf_`k9 z3#6{etl6$H%9nS$H=W3ZXL~fVJaNx{DW#mpW5RL*%;RfDzC$qr8u@I>$i!TzC{Ns7 zsc-wJMeH17_7qLZu!jF=t2*(ww`V$+Y1BT=)6sb=Khw4g?|9^t=Oi#31<vryeeJ80 zn>A4kDQON^Cmu3w$n4&L>p0&GlSw&_{A|!|Oc?HAl^+&;1!*hZIM_<JNLe0ln>dyD z?HfC=pHY(#1BiI={4oXL;b36v?+qH`2zvYUAR+UNU~t48oIcabMZb2yb>*4+!hU}j z1J=(UBk^nN`8v3UV-((l5fKqQrt|AEfkZFXH#@Bg_C(yf*~j_F2EbjD1aXvx0<ln7 zkytzhDMQd>vyR*%7x>NDSK?|+CDgR))Ez`C%hgFD4X$k0#gA?Q_My4=oA%8fK{Yl> zy1NSR8R@zAG~T+&b>(Mv+x*}z&BPYj3)qdh=R<Ljk&tVjZ%A<01sH*3>A=vw{Fzya zt6yrKbD9*&y)E1|*W?93nFm}}Zk@^Sgf9`u{q({h6B*;EWoCn|WWuamZu$5O257Ms z;B&w*WF>%5bH(PuhUtd;vVSG6fXAzPXyhRVx991$(A<%vy^(15R$jtHjpau@b+k@s z_{PC9J;8Kv%F$I@AsdC{tE8)+f3~%6(5^Vy);eOq`2tWfu&n=^M?)mh53l<GuK(~M zCGClKCA+5Y&@tgF_nH<5;9o;N3w233OLCl1k?(zAKct)WDYuTvEFaOWB#posXxQba z{adQlSE?^=>R#<;8RO0cjAVOgpg{T~9m0gR+<7n*M$Nl&7EQ=!!KUDmu|r7GN)Cgs zpFsWr9`+Xr1k)ZBTy!sOc4V4MD!%3STO^~pj=jsAPHXiDyir-4&XhMJ16@92=XrLz zBofIsfx^brDDmI)8sinpG#72`neB0=dJ<Tt)|ExElvEt7eeRs!Q@))oRd~RLaB*GT z3ze>)N!S?p+{R3dKb3K6SkF)0^f5&U|1wDG5(__c8V#H34qRyKtZdlnJKd_I2N;NU z%Nqv}3C<rR*d7mQ4TseBQ%RN#-JZgu>I!FzU9`0UOPesQ4dQ!y!o=`s5+mU42^$oM zuTttzK}-52cA)|O)u60kX4xJIMl-dG`u*#rti!`Svm99SXe$xiijWCYh&Q#2d7+od zt+`=t<4(&{sCB>)!V`*0*f{-x@IsCBy2KiHKc|^eXe^FkQ(EF)^DWR(pjQDZ-BWJg z)a^miJU)PLD;x&SAs?-CQRYt;ZQ6f&CauK0&8<hyOEoLd3M4ze$_vBH#!9J;4Q>H6 zMH@A%HrNsK<m}v=6!xM8<q+0*JC;X%72<a03*VTR%hVo^g}HD5->{rFt)ygaYhR*T zRq0yKL|D|FaUy%bXxO|~HTF=ee4*nC{E2XrnWNU#PnuPP3~`+PUWt&MR@{<^rat4E zu1>EZ0X6AkX4`CS6Wq%`T{-egUSX22CmAisa&$9zcs&Ls&?<s5HyC}9v;()Ul<8eg zx`&``pEc!3X@m&A1nh3UTr?NZKV6ky5=>CJPVl~6^inT<LE6;!j%}H2&b*j<N5p(i zP`oui93{~!-&Vk^-O}3k@tUv`RbB|_)E}i;ej*Wf{O~{gd~Z23_b=r42`Qcy&P&P2 z6M#zh?K`S8kyXn8X2ZP=gCj<Hy3^UZQ}LBCB(!RU^3zuZ@?n5102sjo^w=CeH^81U z>*`gm^GqhVS(tk)K-s~y!rPb`CLa0RL}^peC%-^}!gy+vcjJ+uuy@zC<TrW4_4ivL zXnyaKf}Fy-Pi+pG-h9OBS*-BMP4`6`1BC^a=-Zt3w;!LEJ?cIB9%Ui@U7ja}o{PQj zb0Q^;P2`MWb*Qwwl2Dhe8!pD6aN0uno!ET^{ngcl)VxRv(GaV&T61=?#BH=+k2@|T zRO9|&K^x;a66Art+gFSl=_HNrySlR(+!`SgJa|%Q=nF?j$IZ>+$u8__{DzYIm+S|> zsU5Y0`s%y)*{+baX`@<K$|;&%YU(v2-YISEk}CmLdHqHs@@7n6CXzpnCDR9G!a%t= z>dHNbo8&XLj8RPax09w6pwsLvAgOV$vqFArWS<ol&mNCy&58Sp&tc71i<{qXte9au zb}OOtTXn&XJ#_x^!x)u8xE|r>a(_v^e{%^Q;GK{7ZM`gi0BO*>UU^G0RmB5hgHEa) z3ePV^w0LF>*S4-oI@-(=${j_wu-B3S>rGN6V+#r)J$uhJZ_SY*g~UaANPw~rZkq5> z&*1ow`FbOI!mbon#>z=n;Yb5g%i8i*bo~oo)~NQ7PCQy~=>By-7-k+1qu}!V5iSTu zx3*S4tQ(%4uf=><9}qXH*|%KDHq-F9jyMplg5MGBp+$b*zvS;YJeFI9j9j-uF<9Av zHX!z%s0N*)Sg!`ACeJ%Nyi262d)Mt_mrL$*@2gLS1bvI$s30reuI#wxfl?2&aI@(u z{1kISf!gkD*Y?oO)4!-se`%~e@Mha8{j64Vz*u${*4dY&;ka;#{Tk7A#U|!9K8a^= zt;*+O!p|%##Tn1v&NU-8N2nn1`U!@~R_B$~0s_?DQw|s*Bo=2Xu;(d>g)A*aep#ch zhQ791pURFb^Px7X=jVKKrnK&w*pwBt?IldrKF-?Vc2F!dN&hW%bg1)(KzoTPh$!pR z*b+bPA$N<1WUWevA;`?C>RGk3w9W-Fz;;Ljt|m^e`d|*G#V9Y;61RL0P)ziNQZW-* zA~GSyBULb^OZL_%$u{2frrD6lQ@ZlWnXzQAptZ}o&Z3*<<PwO_6!Nv%3^o;*n{@8( zLqbesKfz`;*HJ)>@xACRgFiGm$9tgQv{h*AA+PFQsqe>7l97DX)-fmY)Hq)Dscz>d z`F;<om*I$Pv@E|LUJ)y3A_MJ$x6HP`O9p?E*tRnF0YgbWH28)1grmh7{Ili4O&sqV zL>F{8sG^vQVhqk#76)vr(XCvfW$>RT1kGzK&t3zm$VkvyigqNog%W&s5;S2L))ZW{ zF~G4gHc*4jR3NfXl3%uSpBd6nE`EFWMs}19;>kC=_(tEAE&{d{_2ypMCMJ6|)(_wr zUCJ~v*>R3E`$h--Lt|}srBY)Om1&>vBEHw8$mi=*>bsg}OB_u7NWN|T{<tUypZ-Fj z9DK?N@BnxcK(U)K9?t0?zrsA6co7Hma$-P#09hc(A8<Eq)bTG^_McJe;}-^h1;u|t zshha@!uy?RT<hk#?}6er;~u}t=Q_+8b)4`N=X*0!^)HvR0-)-@3K=}+c%lDQ&cE-i zF8*J|Iv^bJay{DUej#2D{NUP6$7|O2XH0Z#3RrS_Grq^GiYPEW$W_Hz!OUd<G11Ap Id@JaG00+ln761SM literal 217768 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 D46%py diff --git a/docker-for-windows/images/docker-app-welcome.png b/docker-for-windows/images/docker-app-welcome.png index dd8acaf2c9b2477b3de06db179c50d314f2caa11..786f4cc521690dbc3f5ae45953ab6f7c04ec609a 100644 GIT binary patch literal 96869 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 bP*Hef`P^S}t%xi9t*BL$Ree(~Z5H@n%{m1Z literal 216825 zcmd42cT|&G&@XH`8U+jorAR-B^d=xR6cLaPk=_yMy%SnMjevlF(mSDtE?rup^j<?J zgx-56v@dwx_kQ<X_pWu{fA0D|7FkdBJoD^5&z{*cdw#PM0#=oKL_kGw>(;GD3i2}Q zw{G42c<a{vjt6(}l)Ah(3HZxHXL&uhTeqIC-F$9?pRb(ai2!#66<NUiU7FhuNNiGG zKlwwF)peKhaJP1Hy_H|mBabH$x#LMP7H(#)HqP!gPL8*pJY-<R(+O_q(oW9at~OTI z?zf7FdqnY6;2)~1h3O6JKkhaT7PkaWh#%tbJiNK1;biF!F?F@LW#oK)!%q08a~n4^ zds95C>#dq!m63SzgB!ArsjH)nqt&fn)XTwm8sOjOJzUK!ZXI32HvW@M+R4Ge!qNTK zaZelyPrHA^rfK7DZ*dE;J;ZYBu1br7jFhI=<YwbTT}_)LxRL}$YuE?_De&3uaqpk@ z#wAW+jIB01i#8qW>#E9&DwV?&dzFjbrPMVIZ<E|3agm*d+>6zm25V@`%DPCCoTRFd z%R1lFd~q-SZ>d+?A^$w<3;E)vnxgwF@C1s?OSk10cA1x)@<m=>qp%B3%O)%jKK+CL z|8h)3ob=)5+k;PDAmHSUc5V$E&%$r6A7Fo)z#Aq0cN@a2H_W&Gedd4D_%-D^kei!J z!DFncskykkoG#)vcX6g9q@-9tCqA_1-V`wZ^rnMZIQQOiZ*pB-T`)1dG0J~osI@Rr zZ-v-AML{H?%44U@BcGCgZ1bsrRpVHSikS{eV2N5PeLRwR&UyWNMUDl8nwnbVPfx;# z=Hs*Zz>?jz;)Rup=*TqVcvt6{W$_H&`t~<@el?=ruMW3APDT0)LKgz4kr!DRg_2Y? zdn}A&SMSXau{iE)QTwelD5Zx-Y0@KBhwG6-ok+ToX{3Rc@!99*`*>MDz}CGl>&g(T zZ86?<sI>Bi>-Cu1l7<)C9hY+y?#-nF#Px%GhuYmg3gY^!)6O=&(TjbGmelw8E&atJ zUVJ&_RI&o%G*hRPS9reHSs^!4rDp5F<6hds$Broev6R<uOm2iqZCIJ^@(31cp<VfL z`_KINP*G8pS5)K`WBE6Kjm$xekGq{tMN8KTQ-q)u2FSX}eGk>{8YZsmI_3jOfc@Ts z=`~)SZpLTLX201Y*VeAZIK2DmpmgpQJtXN5r|wu~`=Qq4j~0?fGctKhkPX_-W}^++ zyrv2Z%jr}iCx<)tOBVlgWV}9%3=PGYM7_c5u{(}6ezDm7@W03Ok!%BUsLVJgry6%7 zxA|*2`W0T@PBZ_w_UQ#WLN)Kt^rtmnjM^j9i;JOD<+I<$HlJwBD@tn{rIcAa8UIcV zCN7M$v;@d)5?o*DpGMTru}MaRvR}oQYP*f!*n~4!yeT`g9<mcutV;8DfGPOx0!5zj zv4rtK>-S(2nx7}FX+y?rt!cgl*J>TrCPcd1yynGnuNvguWy-A@&jnogylDzNh%YQC zVCL?kDXVkd-W$u<i+s~3UgKrdww`d8Kc0Tyz~7_I5wm%?Ou5FDHHNv$E6o(KzZqQ^ zL6@;{F_<Nnq2%db#ombhJ%z#;A5N)Epf0bPRtEDVO%f;E^n$Do%K~UfE(!bPBPGJb z8%BMILiU~_JI!X3)Y@9?RfYZjIp`Y5KfmA8_;;K>KiAgCAzJ4ybB+(L1=rJ;1j%L+ zD`v7+>s~bKWz>$ls+05v-;7R!{_rAfb#2&cA<toz*YYU-!1E-nqOgDd@-j05TE909 zPpzFfcZ?7_-yJ(3zM#OW&>>yuo<xbaZSForwr1_@r$Z%H=y5!kBOL+(SgVOVV*@0C z<Qg>;vOL$eL%#GVq=yc*_V)BDZUDnIJfwdIvKqwIK~1-NSw9gI+~&QyMyJ(fa}O`d zfCO+-pVECfG{&@y<<7ndQG>n^YmMWpnZhgYBkUsbO0;G#ax7WGDD6mR!PDz6X0INJ zP2P=f?G4J2A@!0})k|vac^5CA9jN8eoObROU)NqwIyOf)shb2bHxej#ktGd1f3S*% zat$BX_<>dm##*wU=;^rpnTGnsrKNzq)}25-p~-8R(;vGmP4q}1;N*MxK<)?y`e^5g zo#SMl1HAc<?pM8F$p5jFJRf&8W^jMT=FI(Q&E&M*_b;XmTKC-FQZP?%BFrMMM5kFB zLnI|Yyp81|wm+`_l2}=(kPv%f*;OKBn%@?2dPO4AoR{l>Nz^hppI-M>%Br*bA^9j2 z;UN9Ty){rg5Il>%-nF{kFEp`1gXheef&(Q<u68e-!KUgL3+<Bl)gt6I8sYRz0~ON0 zQ_Zka@kj&}(tBp_w(V4HwDH}macpiXfIbdKAuZ(db&4&<e26-47XE|?$gXR1DiN6o z5dQ?ZY&SLVU#jA=ZeREzuA*^5(73DeaVia%0JZ5Ux@+*HZyIT|mJOnM^ma?SgpKu& z|J@<C%tL2p0HLQ_pw)vFo^D4;QOMddl2J!+OKbt;y)qX4_`F}@V(AbD&7;NfUCiz@ z5BsV}o}Lvor}KymTA)X-C9E+f;p6-99~G`m-*=@4<v<tfdl#mv=&nHG%*?)@a|x~& zB!ORWD?H1G=}7|q8w&%N(!14SbYkc89Rn>f;#M5&bRrIsmiM&IzJ)ywxd|!1d<!zR zIN>Fth=DWzwf*qcLSmfqS9(#0>y{A_{&`2aHXUyH0^=zCdask=du(dYAQCCHXP&D` zb_*1#^b!jl^ekK3BA)G%XZASX(w%F|4xGt_>6*!5%1MP3Z@_lNUVo4SuHv@c_3=h4 zmMG!OB~nCsc_kvGn2yH9W_LBg?jBRqJB{<J72fS{M)$NXzBM}hiFmsVw$|r_h(aK4 zbE1Nh5Td5*XFD<&uf(^$Oyei+7O+s+sA8JmYg(V2_w*TO6`P;h!XdQOYRf4h`pVYP z2h;G<Xt89a!c#1z9Qo2&wy(q6sv(#D+;ac7q_Xn)vv>VFcaQy_xSIb;;ka!;Pn?nr za&7yVGM!ncQ~Fs%jp{G3)IZ_gLoN$#YyllHN*>x$e~jMi`sHEq1H4pq*S`|K$+okU z@H|oUQk@!mMua70CRR}xiB~7USbV|Y{=Skuh0LLXc18m1lXe3%u*y>yVXh@Dul=xm z1-0hK{wWO=qF(J;3R83{)5c_n&5^%D`tvsZ#sAq~AJ;qY>h3le+d{wpP)=Zj?%sYI z93wt#aj#VhA8%&GhX-ny@G4vV+Cl$1bN}^1df<-TLj{|}l=tdtfq$F7G>0ht*zH8e zvH5;=WWOi|pKDOf*|gQ}!pKR_`h>manyP|=#<*GGdQwWUlG%cpm4{&T&uvWWUN)v( zmX_UPT*{#4nd2K5P>wb>??Ry)YuT8EX;-*z+r?%Zh-K$?Q3defolgUb3P*kqtp%Wc z>AKb8k)r_-3eKG@Q<JtlR2k^AlA0=jRZ9>|<E+)^y9bP3TQy#+1V$-GLmKytJt6X^ zWhw^1HTTlZ?XQ`#`qoKNtn8QdHigyJGoNQx+t}<|MK|=Rat;-!^DD1h_I)RD_x7<^ zBahinap^?(!FNi7kg~TuMx=a+^-2DAvs<TASgE(iX{<(IFPT}9jxFVe*MV}c$?2cc zdRxn&dlf?J*z%oXXkI?A_0~nhKF+aN^@IiBHghf;-$o5clfzyusl2^1=@rbaL8(`O zlf(yy<~CQ0{W+q{-`nKRC}#mXyV4KOzk0uwwQ=wOOAnRTd!Ikvprx=l{j$51BY6E* zguZBt<t~0nofl>}y?tfmF+hjqJ_=(ayYHhq;ZREGuX8!u!Cxpuuc9ykS%nWYripv( zrMYZ4-e+n^iele^|5i|G9uuQ_vE>dv9Zkv;eN@jVnLVs7wIpf2Lhn!!;EH71fLrEK zTb1${>?;7SDprdH1DK2N!Qmx}2E(}Mo4p7CN(jVl_#d>lPQTQQ(%A?kR(0Hu^cCg8 zwG72>T((CLq>ANdUR?cVv|=f)<?~#SHl<b71Ej|6`gk2S-yT-Ir;0JuC~TFo(AxiY zr0JDN+{wP0;bI#i83y#PH!fg+TAS=?%IbO2*l9wRB-~>gN3L!Lo)sq>IH~7Bo(s9P zK?9_<pXC5WdGl?ibCUw8RXO$Q)`=T^JvWY>e2+Ip1CC!?9|jI$vFS<7J8&t`22@*% zC?SrF&&;hjR}7J|-)S8it|XEHcfH1M1u9p7RetJ@l3IBOg$|nDPPC_;`1jmRBUn8b zXIaA{iKrWMo!5~<rUcTj4XlvCo3_W;V@~&xkfpcD?O*q|&U03p?j3kC)23B2PdT~8 zN`$koz(0c4gE;HOSue&@WT(=_hnL}kmQ2a@6<2a1S{i8yS;F}pp8S&=;x^~m<Qb#v z;ne}FEo%7v<%bi^S6Wwl;?4sBmwquii=814t29moK5zSH@!Yc|(6AWD#rxb((I#K9 zR}1i33W_2SX^n%9`g_Hp64*yKjY}j-oUKgClQVxe^0rHz(+Zh);8rB2@;tCab%9$i z6#gkg&tD!&lSfUXDNUt0#bR+x3b+aMD}Nns*&>vHlihCCH4?v3N8z+TW<y`pTd!XU z4G$aS(%X|<Ii32OKD9phQgwnN65l^V{QNjP#KI&_TU+OazIft)0DP40`yPF=^jo2{ zX>qxg@D96j=*iT6W<S~us}j-QC8}X!QtFYOotDdLtu7LM{p|^iUh<n5>w-95!J=P3 zAY~tUbV|vEr;2*a#C0Al1P3~<FVyUH!&{IU=O_Zu;YiG(#BX2ReP*JRpIpwWO&5<6 z3y)_gTr;0MahC%56HOY6o1RBTM^Swa&8Suw7=5k!TJECbNDcWw?1iZNFbqH}P!#># z%B>5?d_}=@;Oe()<{J)(rRJXn0xTL>ZryqXARVa5$>0`QT}O-~!fimuDG}HJ%d5$| zrb@@khCi&D{N}E=lgr(&r>o>fx5R2!yk^QagG1tz^jBCOb~6TU^KwUJzYMo=RXq5q z(%%p_gR^|Cz8K|DYJ#e+&~5nixj;Dfk~m*Qc&z9<(7vV0d(Y7Y-2TVg`Q5sM(|(C& z0*K>nICDgDQ`D#SLeK4ZONXVLgE);16R_`tOC0JcB-2s!XeCZ|6u0RtwO6RiH0k7T z*?yl^e{@IGw7u{<cI-kz*lqeS^_-Xn;$F(xRXxR4lYh)G{M`2*(-Zbaxrx%ZPF9S3 z>6IGv=<mFDfue{7NlLs4%vc~#=TCqlIeOB8l74x#hfCe@{LixD9mai&=RI7sl=iaX zs7JV%A`KkH97(RQpSt2M_J!_|IhD*nqmvGp?Q5U_GG;*)MeC=HSM596+V0d1mM-r5 zk&;)dyH4c^hFL%T>JO!l$%|hWIX^f0iSXd{P}z7M(*3-%$e+|g57@OWs<2M@y>1g8 zab=Dd$Sc0HyPLv(C?h*}*K|(p^NmoNtIyO_Cn{dzf<HHVpSW|4vCljhvWaLo$Nkj4 zVm_Hk&I)w0+#Jb!t;GiqsyjSd5R{}Qzg(>t%zu(w+Ar#jtgW5cqi51%kQcc|tVtKR zwF(rUOk`FYHiQq+x;oc-K|l!DpXr$85=OkTuvo%{hiI&{rSar*c~2XHZ8X)~7OCf7 zPbBBa9hOk06jj0-z%f^`*tivGo!FCyy_+lbr@!Wg1q7=4F4=ic5cA4O66p7aTt@2_ z7%sQZp0wy6Bpb!7_AM9CB#B9K;Cjc+y1#`_$k`X!`b~b;nJ>k4#D-Xf6^79Xkc(Fi zf*DwRc2q8Mges1!loiW6f~eR-kPj6c32+(yn{8IcVNU+yXFpCpA4xvXmGsi>ox5?< zzoeE1*WB^xBmsfZ-&IHN+G5M6eR;y@s!1ihh9?EE>+si+7ZXE5yn0;2C+l*7NdoTs zB|^VL!f#KxH)qlNQ72CEnD4Cq2&Wce5f8{%_>+^(!fhW!N4vTm$bEg7TxM-&yIj?< zzcN-xeMqIxM)cT$<S)(LL26=b3a8D4SFS~ygp~Nb+t4Q|XkmX}%<7R^gU<Ap(1KzA zj&?+P`DVv=Ga53ysQ7e8qG>TZC@3hjD|kc5o?6KC_;eTX6ROiszCl1Qh%K^VD|BEh zv|)p0Ms9}2LC5s9%^Myn**+!Hzyzqyte8bzA8kBHcR5f$rfGz(Tovk+3bWsIER4|p zJo0rLQy;KAy>yy=85ZY6l-%gwHLX&i^PC&wWxds>!5gyj{&8Q)WSoH2R>lXBP8h8E zV$kUlF))6w@G)ekzb;8bQ|nTfRj!}m-+85dBX3T?%+9%=*08ag>)<=;s2DQ&tzrE< z+rn-kz9hs1$<1I39jXiOEHgOSmKXEe-OazaXv$Md7uAB@z)<+qmO4!`!2e_$)6mes zZ`EgRPV;0Qoj)uhB2wdsDJU*>u(w~lVZ;L?e=h$*EB~j)2iW`{_Wv75&VRvp{!fD3 z`k&?f|Ep9(G&fWG-<&Jqe{-z=@?!tZ#sCTJp-MOP9{}#bC+m%0QV;+AP80Jl61S@R zFMjra6NvlYs&5t4y0P3wZ!$KM&%xvO)^$y9CVx_iQmu~$>Z<?ciNH#~cyFJ#vF851 zrv-E*tS$bfPH@ipX+giwqwVJ{a4kx$O299J2C9l&Vm`yKjk)$n1vk9K?y&SaC2b@b z8;!+2Y^%LAU61mm&c*02oAB9fhEu-&E50wX;R&tAp0w@J_b@d#dbG~N^t?gmfs;`w z5254I?O}-g3NqSqlV{Kcd>gRE>b!Lqi0d0T%&pBhI~s0VsafAn4M>XKwZ5LO-^h#M z+HaKbcx4K=y81HX-Te6!H#xo&3Tuy-k(oBWgtqocOQvxS#EKzGOPn07?H#izwb(G5 zW4LeM!WmFBvsgFX)6*OmP=s;gW#w&v12J8ClK8m$gO24pz)2Uc$P(z@Y(%PmLy~kb z%>ToK%bnNlK6)5&hTkIB+jSqJCN2pt&JC$AWoLf$yP?iGt#(Tv4KhMHcJ}?m4xsla zkJ!@0jz%B<mg$#h)IZ1R8EJ_3u6}~)2SS8UWCs1Q8#AV5*8?<_*HL$4Q*u7QJjDRe z_EIPfDd2L}d-U}6(|NW<0g7p(6{D95KY9YXue8Pgq9+scxaj@DMXX*T!GkCYkU=$^ z)1VV*wx~!UxZj|pCpkQH_+7e_cfgJC_qpqKzcS*5w|=ngb*;6Oww~p-Q$*<^uG|5= zVs7s)fqC{*vS!Pp*q*WwJvP$WYi_lwRe2pRF%AJwKqi9nh`XJPMUae^ogZ$`s6W{f zd*|;rSnm~VuKE~nR5XUaq*CRc-p4iUwZ^WD#m$5raT8oYuO8GNvpvd4Mw)y~59r*C zDS$QE`<O~RnE>a}Xui(czN-BzfM-w!M63tR-cQ|#ZI`+|Ksq~n2e>XKP?}D@p$O5U zP4aRp`3H{bJaX-js$U}7OcbgN_=pWXPyYN`^~6Nn3v-dAjo&O9c)yJj9Ya+pNK2-c zpNxVmGw{wQ>CPX)@-9Z2&D8ozexfD{tuv)>MB4FpU2AHQJ9kT`XngM)Wk91@nsG0g z1;}q9jjbJA{ePcbS?&hyMGiGNago)bQ$4|^T^Fm=!*STD1TD8c3k}-hbvgi9-ICK5 zEoLl%;L>Y<284eY&UQ1fB+<T!p@|XF10C+n<u(_)!t#hpQ&=h?rE+JlY$aTo$1@p5 zV8*0cO7tT4HR`Lp=J$c1cG>pmWfkHRn$4+J&Ds2o*@rMjL6#KGl2Nf5WJcX-OG)qV z1(u6t>fsOQndZ7j59w+-*|Jt$V2r>?-9!<$j=vY);QGGw=EqX2{PWenG39ZE`H%ht zlVd?>s+yN`&y`Zwz1xo43Gb(iOfu)vrgaTs%J}@=>!?ZRjJ%~*6(2oyE957SaKNCg z2rCL=lCoLtHoET3(@}-i`ipyOp-bFqjD>N1@xt)<r3D$u3kalTQ2~Pk^3ql9G{MaH zLv01Z8?Di?Ceu%Zpsu?scY{2tg^l+BC0(P(whd*BMMu%8mrtBnp$bOEF{O>eBZin< z$oMj~zFcTRWU4F7Krm){!ouy&s@lh>Cko`f!ny%NmT~Ahu^?ID*CK%G*01r#q-jVL zB^k+{wD$M;940qg0Zod{NF%;e&;r?H?M?zRdTjIO?hmPrkL27vuZD?9RhtwT<F_Py zvCiL&hDm!VVn&k_Cf~;8zeIym1D=aMYltuN4wu|&*r$E9yga-seErUF_jE4^Drk6* zk@4AMt?g$8V@Qyv`WAPdWWX}lgj>~7X=}QfL^{_M4i{904+^-C&wAcGj+3C$eacFD z<vuA@Z$Z52>u~sE9-Q&B5xg9t?U4>cdi$7OQmkY4nhu_cTfRdvuv?_ndG${Dot32q zyEHc+OsyR4YL<{$*xX&mD-+5l`s?L4_zrrN&=q@?X@1@Hqok1x**DC?dX`iqr7OWl z%@J9A)lf6<UpEgAAJGvEKKFQQuiH-lFb>FWA21xlo4O=8Q;R*UqR=Ex#4IqOkM|?X zxIh~5^;MCLHB@{2jrRjcJofT&R(>_h*4r1>gaC)1koRS%QhR>S^)1i~T#LBXM)I0s zL@|+;$nDQ=zWY%{fbe5AE=)LV19uY3bAQ_RcLudBq&LX7U5M3qwz2)MY|@SCH8?wk zCbcla`H3#?nZ_CD)$Gf_0tIa$dZW(owPwMcSe&2sb}TlC5x9<4wXN;0+D@YdkR{Us zTBRg~KObQOGg5F9@*>8npjDI=@u|@aSV~$*Ql5N$WVpc5eL#pfQjPXqgXyF3x3*>q z#C&o0Jj?W*Y&2V9YDr9dBRAN|VrH&}Bd2wI$PHMtY(QxX6rTw~v<^HgK?wKfg+tPl z?<)%>SPs269Eo}Jr~{u0y32i3J^G%Qo-SNjn#2LxfotV0<Gi{B<Ug>jttP>ilMQ}- zD@zlF?7rxh9)+l84k=es+%tHcJ<4Ry@av~9`6Jf&kK}GC$dBh7i$|`*<}M5Sp=`?< zvCpfZG>1V6j$=YiW6|+y-z@_lwQnD^CiaoV{f+8Kco#S2kEKjL@F>XBw*1(+uHS#K zC+K^6jyMn?ph~%Jw$K0VerB2C{8256Zgu90AF}fZ5)CUb25)-~n90hK*Yq{mZyD&m zaE(E+4Nl>PnK?yuvbN!J1S%}A?1+C675a9}_BD^D=ezutO2sHl)u*hH8gVY7ds#k! zkDuF&DdGdn)=wandfhJ%z?O~kfQm3;idIv7dS=-;zk7z%cH4W0<O=4|pM`|^w<p}r zowC@OMcAjNQs;aV(ytq<0~F4!Z4vse^nC3_&%=i(FVjAfv@iWtxpy_A$EflU^}~Cu zb?DNuh)b2<igs~(CrWPlWRQgM=)7V7-S%B*o_X^yh-Ds<>LG37*PDoV*cROKp+h$r zs4*ADO)u&-I=G}I19-IikffT2rs^*nh;i2T@po3<g(0_`>E_}+fBkGWUv@~t;bnDw zW=oO5wXE-s0&!D?+uM(}&&GAjCrtLg#Hz*5sHBLYL+U0RJ;7KDepv9DM#%U4xbS}t zfi!6>%yPluGfT>*51T2xPacG;)H=7j-o^y2rx@MN<=D_6k>iL}D|WnHf!wz9O*631 z7>=*-jGNqs%PQ^<mu(y`8hi~V5j{DnTpsuFg{*Cn1GG@^=?%Eq{ov1jwjHB+3c+bF z#rjkeu)T+cl0eleho^hX{O{Jk3^o&i{Knr?kJL`(CHg)M0;;jwxerODVig#q-bLwL zQjQ0-{=Ts7&WaECApo747_P4%2V7dt&A6sz<2_C&thx{;Au1N|b+fU2c^ZeMcKXzO zzumY%+pA5n-NIjtq3oAv9#dDGPl+ZI8H4_(!)lIftB6id4Z)d7ffWri;5)qnd$~As zQ1uC9@B3Mf(-_Z^TMi!U9S#c%qOx$ANu;Vty_X4NUs<7|r!jt^?M)_CcJ!GXsG_k6 zKr1}fAGPXB^bj|wdEtI3l1yW1X0yJ_bEG%)d)Uf9H-?)_lJqp3pMPk26JFf8?@+s+ zC6U9UGqa%z@_(wNG5RL`Elnw#@g2S-?lk?b+99F3hEy2pWg5|?;L?;~(h9{Re&gD7 zRpp+54CfR`&nY@~j{#^1-u3{;VspANR99tt&(j+OOI6F3Vttin8al8q{1JPyke=gd z(G?o>S!&EoI$1KB{cXWEyyvP#N>YqlvO68>dqhuo*Jl~%VIj5}f0l*h0M49QV=LNL zDhmu~HRp^cyf|D!_m+<e^@6wanZ4a73{dM_PMY}ovartc1$a0yUsms#64UKi3BC3p zdMNxfJXQ{N-Yq$sLolzuq`9;LrtX!E6-K<K$VjVe*t+!LDC%RWp7~ZPxQOV2EHqw* z`7<S3J_*2NvnB^0q#BXXQzwaE$;|(n*(bI+7_7;Pa@c{dv!E6a9bxO1^I=^-C-fxQ zL5Qx{quEz2@;OZuC&xXPniA2)<At*Yu*q8Z^cI{wOQk11pfrOKg3)pT$I_OFRW9mK z89$!1WNBrzTOn<Pup%V!2IHx@Z%j(Kv=qoBN^8W>X^ZK*9k{?U{gssb!ra&oB(j>? z$cWPPyH}I(en;7)mW_G7L$a1MUmD2X*^XG&=&dM1FI#Nzo*YLc`W$|5VjPw&1N#FL zS)kpJ#oBGS^!;sCn@S#`(SAXfh$Q7u%{P`R(vrp1X8x}xw}Z+ij^tJX*ZPZxbCzfP za!7Kvmf?KB;;kO1jWGRrc)|L+m;Q-w1k<lw+0+B=x-9-IqfL0h%7?R+ZW`ebSiyG4 z88aLIdznI*Xl*obI-RLi%^6HnndP#uRO~>kA>B<*z=5g<)4PA$Ir<R@K}j0BsmejY zLLh6s=~ISkNOQ29j=P(=cKO-cF>gQD{GK*iK`tdgY)^`HDx$DRR)m_l>MBKo8okpy zFWqFz7kAp>?(rd}%T0d%?<VwE<Gqnb+ror00IhhIJ-ETuaoc=xw83@bMvpX=f1U7Q zMf>BhP_3nN3eQ*-6eVcF0E50*iSxDNCeJeFDWav(bmaVa6i7ioqqp1xNqB=<=-MCZ zPLzW<Oug`(`}Di{PK&xq0kFV7o6bu1<lAM=ytzz$8W$ziT;?A&Z@|}iUPxMUQ|48Y z>@8;@o9C0WCvV$^rIHdC2Ax-&y>F3n83497>cj>Ih}AC61pN+_!iP^Q5#wmZ6^DSI zE9(_^MipEuV4-Yfzb|Wyohoa)A;|$389}{YPFj8sCPq3qRZ*q6g#zpNOlxeGWt^}i zl8DH@N*b0tuA&PCKl2ET-llq}`j&|KTdZb6q}V&f@#>-`fM`5&pjrZ9cExp7e`xO9 z_N&L6sypvz+4)dR123&bw|oAYQ>v~|M)5k#R^+XKpY9uRJ10v=1Kt5UU8^b$v{dWh zzEbbC#Jg70dYzy3w)_*d@JWOOqM3TI;Z;zsjEBKyw)BZraaAH-+lS2y?Lkx-AmgX) zlwdvsMCqYk-#dWZC*Y|=NzDstn?cNu+L$rY2!i@}G>_SU=X4r3I$VPrKI)$(nnjA1 zHM5HK{igZ8RQX}_w8X^zn7?>y_7y7zn_5AzmHCg3*HC>jHne!9D^>HY4lR1xN4jCY zn+Bvj>R_?`CI(d6(@8zttXq(rTN%FY{E7ItRA5uehDDgqx)P^1ATp)i{M~i6EBGwF zt=ba|Quz$ComTM8VW9!Zsw^n{kzQKf;OeyQczU>yaJ%Hms3`84Q$kjuyFb*S=m$9O zU0Li=WSS7t+Gkj%u&!T<S}EER$~nC8eCAbEgljYuop?RCr|O^p8PERM9Gu^O9qR#x z=1A|{;^KAgooIJzmU<-jO1GU=q{m5_Vq<@YnlFVFx-AHZO+?JiE~u3J%3B-cpky}n zxeBrRVuPj8qg#Wz4;1uRyBTHoLGQ|OhGAp9k1Wrm6}~fDk;yglkU<Q(-%-;XVqC%P zIF8NK%-rHRxbP}K;UIY#<gwKBSgxsHPdb#@KW*dE?$HF;l>5TTwejkk<WQ;k=#X#O z>&KNO=kE0|WJd@UlK~7&qm}RSzFgQ&O7ycTO~uY`R(HAbVaNkF5eSHiJuWGVt#)Tw zE*C_DF3Kbh<*P1!`r?;?a?m5)@|`r;<K+TaD8K#7>NIbf9}Xz*g+~jOkcy=QTR}bL z*%uDK-Di>j!NTQYLk8~P!0!Xch;9>5n{L4DK`nqZPSrsgK*poXwafsdYn8&@187nA zu)7`hz|LLpF2qdz0GB_&h$_VG7EKj?wzuACnDeC7{2R=0SM<2;(1Q%5I$})DsqL(% zKU56V*CCZu%GazHPSu`DkoTq_Y2P&H7l(961%k5N56xHnD{5G65#vfrhhj@Lb8u!( zJB@BK7AFk=nSt7r@Vk*w!Tuy6%a<zj)hVlH+9RV}3Gu7$+q;R8sW@d?7X~oi@b=zv zXoKMD0j~@@>bcrswoh4xbsH)IN{`*aM~R{ZP93!NVu&CidY8<MZlRaIq_AqnLMZZ4 zZ;Is(LZfvJCoW2DF}(q>sh4%+G(*#aw;6}(LedWou=kEG#7;mN-N=BC=`TLJPc)7{ z5uiwG@Yf$Z47GGGg(=#7ozhNtq9iY>o!nW_7nY#orkQ6?f4A-;n<Q7Om@KSciRGhc zth{eG(ALZHi`G1Cukz1zcvMty#E2yorQhnua*n4y$M{z>PU&nQx!mJBnFUpgMfKE2 zPY%WtNxg-D>&@hC`+5)PHf1Q;RK!o`?GFW=!GHo-NHhE7xKyjUjIAseRk!DT;;mUA zJ8-4SH&ii+5T6%-SXFvej(Q(8{TjGq)H%qKC#20x@Nn=~vRe>&@PiVzQ|nSOdIp>! zHIunQ;9$B&7dcmb4R0;`Wm828sFeM$+fdB3Jpaw2D&(=JwtoyZm6~I$?q2%>4U9k| zYV;n1-Klb7#RNczSRn{q`8s^_i-OCoUmftvlT;(AJuXp%nF#xdC?cD)no(e#O#2}p z<di_Klh16q|M=o%eu0FM54LrU<UK`2SADekgV07CT)GiLI%?x>Fp#+!A%ZYZOsRGT zD||ob%c?epW?V3GL<SSP4vQ*ya<lRlbJy&D>&4{W1tE?%(C=MYZo;+m=c~hb6_0y7 zj++5~es~Bgu}0^9jLZX=41nxD0q;Hz-DyFHf7jP_non=(@2xXj?l?lgE|08zn>m<- zc*5;GfM<T4o$O01jf(r~S+I2!7e_U!PF$&*KcAS+!Ozdex5z<9+gI3nDG)|MN?}6^ zvaRaT^DKoS^Et+Ox6Il{*J%XBkUv$$RfG@E=>?y<+PD&XL<{5YZ!0@M1wnOUQPacF zT`R(fZZ0kT<VKb9(`-zY=(%b*a`)$;D&hE%hh2+UT$AE<mB^m-d9{TD^IBAaVt3to zDK-jSdzI>26$#TP4URWjEGiQe(k?$WZ}$M(EO{@<F1RzTWklU^z5!gFKF=#gQqh@= z#Txm<v7l41*TVcc>+jS@ZZmwg_y&{|@u)ivec^?lgs$=wN4EhyR^>#IGDA;K^7yoS zChGBvOG~G&e61c*MGC8(B@E+5@Yl?C@=5gW&(+fi-n&5vstnovat&-}g{KkHNy}Rv zm3lgG=Bp$iexC}TVUx3vc0+9ziW{?fv8!t<sLM|yLW1jb<aF1j7vK!mtRDU<aT-mh z`$5cHe%6h4HGCA|w4<H*vFw;Rc$}T`$uaFu_Z`{pWxE?tgv`SK3E0@ya9`HsK6FLs zjf;HH+V@RL^0hVezWjdwvT-x6RG2e$dsx>XrTR5$dZX0uPC!nplrKKF;DQhci1lGn zs{7oe(CN1p<OjMiN!ogDmAd$*wv&?0Ew)ANyS^t*(ts+%&l<wiPx|z)I@T{>2ZvS7 zL4I_|_vXGm3Q-Xb16YpbTnYo4#>{57qxiOt83{&E15BU0i7g<sjfnI<&(Sfx5YKA| z)uFKY&kyEmUo6H;$3G`6BVqtfGL&cFJ|q5C!C61{Sr2EpaB4=?+<&wb1G6QX`yP!* zn2MQBo6igXPW~f?RE%nDL?g4pRzx*J$VtViGZ=J4H|p>u|K-p(-Zxy;4Uz>C_uYkt z;t~Za!}^nm>>gFg$FuuqHSt$9(rD@v4gGXVC;r<mmO})Z3_>8!RJkZY%K9AZ@pmtl z^qqF|Zcp_UrpeB~BNC`3ZGQx+5sMm`U|s{o(fACfZBQQ@HdK4>O%3&MwD{nz-W>Pn zBs1iFGT+i`J{tG<vD9|dSxi{w@300JBxI8Jls3#!xQ=kCf!gv@9<Q!;^%p7SDDpgl zb{%h4vk4=5pjykMw4;(Z&ELFLAL-}+w$0NHyhTI$ive)7Eoka6zZ9$=rY0yRhJqRs zt5JAVmkCOG41ud!-xV=?P5Kh)iZw~nQriv3BCgy1;c=?U9bh5m7Pt1I2Kv~YfUB6H z21im@-E5*9GeLW4`R^rSt_y*UMvqxW5xwcoJ20?LCCj^Ce@|ex=PO)GcgwRI1vM5H z4w7>@Dq+qE?~mh!lSOU)zEO(fu@-)Q=Oq7n2i;_a>9BPrJD49CcMk(5_xUQ%R)MD* zxOq^CL`hl~W9!2s{5-`KUj(OXB%DHR2+7P5(DGZJlU)viB5vwOPW@6U-6i&4FagMp z{J>7?f-tqsNg6T#Pa>d9>@woZ8uhVBL#ek4eFoim&LzjQCUL;IC&>Z#llyY`<Bodv zRVK&ucR$gzs9tJ{GmPmPxIVL)IozFj??1R3K5X`$c!_n(>%2#y+(8{mWroMzV--ft z=w^aoNkHAcj}CTkBKCJiAzwsDwnhAZH_(^AOqZWGw~A#k#HX3g3(9;}adJ^^tI3Iy z4}2X}Ie;62t}{{MI^m@>5hDOH)hrF_mB14|IyMFl8rGCbw)ifOl5Oi|ST~O2b@`Hl zzuj@N@z=>_sT_)28==oxVl(pqd^Sx*?YB|>rBp?TV9s$^NKCNxaQQ1tpRRE~%=a@$ z0lxO^Xd7qb<^0vls=C5h47zty-D+U`xx@6=Y%${~z{9_Q{-z>^FC__o5+2v@Zc6)8 zRRR*svWG)}e?0}5gKD?${wIsf4c?KeMG=L!qnlFTt=^dJ)Y_rUi{eK^RG#Y`{<m++ zLBgyba)&id_TX;VUuAaoVbL!&DJ-D$+haNLae>co-JICKn;{8c>v;t_P**|4n~eC^ z&CxBuJ?BqdJ>FSRP+_TjriuLPMid=>4178GHjVVEn`G(_(~*w1^OFU|geCvty2E|N z@^@}t3IF#$ALO2e|4aP0*!LfGvj1k|-+un%ng3Jce>3)f5#+x#{=bomz5phOvSI#@ zQ}orq|1918FSWdXoWcJV_wE3g{^fq~zwrK#TmQ+MnI+14t3%zyAOZOsf?id-DX+<- z51JICWD0MMvzS@rjTYvPburQ(5{s9^kF0>(^zF^0ub$v-M7)4oPHmT0Tu!Czp9*P# z-+|+aM&ba-nh-zkJ(*Pt==hU6hsTxI+}3Jz28Vk0I)2wnimwe(3}~&SPa#bccMu=w zE*pA}cROotn*?%(DGJA%6fY3n@+CfP(hWH1T)>QQ!1HSU_BWz{JO?x;3J-8%%@)E$ zIA+-RbRfL6soaEoSdoYLQ-g4r2x9vU?mj(_)5dhHhu6u2$ZkIXKVY|Sck$P=g}XES z_N}#DK%WwMS~LrH@bG-9$ADgN+8=!aaiib1M6@2NNum~Ci;*rO#wqQ^)O^~PJ!U<B zU@1&Y4E#h*H@r}Z$ymoE&8M}#mOAJ|wq{TFr^Ij`<XzBey(=bh0Ml45$vp|NKKyR^ zAz}r7WU(f7H^+bNe5>K~GTuo7QA|-f(UlwzYzsa+^Zfo?2GC|`nLs`MO<=g<h-fc0 zAZ`@Qz(4K9rV;@y?0@b0R@hoj^kgP>qfg$&4<93nZUbVo*!c~g!7+I)>BZnq0<=y_ z7`-?+GsDGPdJcnZ9R~lw=jP!bU`W{gB+=ffxrSU#1M%kfgg?N)@W(rEJ~X7x;9jv# z-HDNu+eY8=8_gP#|M<i6Y-9qQ*J)J={%1CaMcMO&p~Sm7^lr|!)-KcL!$y2BMB^*& z;8RL`FL(_19*riUj^N2lCMlGXvsmoeBKR8{*`&vacMd2_H?9H62lCiBeT6D%L+!6E z(@OYD>w5-Pm-t~Cm2i^8tD|z9dg}sEJJ$%;HTu0tL9CrSL@iI|^Iyq=&tghQkLPwD zwcDkQrt42>)qlb&ob{c~txcI5=qDujarzG)?xq<p>zUxnlbVR9{d0d-&m5hP9gUZ@ zc@p*y41nvRDpw~0thxT4vO3I+1~x{sepU(Z8J)<_VE8SL5*RaokwzB3y&eM@0*N)x zh(uG5)rV6V4n^hW<suP@JG-M>r|w~*#TN<=k8)0}i%PjfN$TB?b(W#Whg-b1o-)%9 zSybOC__7COk_)@=PReURTLT>qnha_Na!gu?g<_ACbX;FL*2dSk{4VCc{N$JAutQx( z-9F#kVzj?znP<`S>={IMd>iIJ$kRO)|KsvA;qi{~YXjO!@!?O<_%?d3f{_`+zS)ve zPh3sSj4Mx`?8EbS$hN?vq1Tx;smMIHWEd6lnYydd)6%7*GQdHhVZ(Nco%AD!<{nA@ zQ&u*=0iX{P^RJh=Zi5n5>kA|Fdhe)|)*H`43t;Q68W%C_kpvcLkN36GGmb2RvryYv z>ZLE4bn@ojfIUP!yPlqfA0{sEDheK1Jv+B4eiieC+WI0BPD;)AnCQ*Y7$seu@xl98 z&r&WLv};n*Mf%TGxK?~kFX5TY)`8g@1B&aq3NCp&srKPQzgWpNeV9SA#mM)2W~8H^ zTnk|YR!%=nC~_p%o|Fp@{}wG$6-87~WaUiA0}gbr&AZjKjlLelU5fU@&+?Sp5$iqk zgAxS6uKBOmm;f}DNKUh5XD2{SDbIBbop?oXo__I?WRa-G2>u`wvea|GhT4Q*m7SKN z`C?4dl>K8EkbTp*#hRXrYGv1BMUmR}XVyG?;5V%%=lr;hew`arQhIi;kP#OiTjvl( zEP6AV*M1%wwq}4mGy1IH;SYsM873?aa@aGB3#p^NY6x{k=Z6I}^z^W<g~NX}xT<Y% z?BC&WI<SLoFglE?0^ELQ>P@o#WLoAWo{<9B7WK?`yeBOCdtX6Zt`|r)vsUa`I+n28 z>>4%a3E=w1?Xvg*Hlv(mr%R;pVEE47Jb^+`LXwZhvWOK<clOf+dFTCRwLV0YBo>WL zY8itGT00X~a8`<m2#6pqgZ9%nnD2%AI_wc`4E3uixlMrH<u52>t&uT@2ILUNcZTZu zQ`~RzC&tC1VrgDt+&BLA+${WdPut|V@|S7*y$?dq5zidB9nyPs){UIOF6Tj5kdd&~ z8-oUkM_)yZoUr>$R!N8bWR6g7QA9m*at&J|sq>i2nC^2*BV=QcggEoXLxu@50GH}_ zzrd?!kI4^)PYS(~(|O)+i1=Y@hk~fK5iFU?SPtV>+)9>tz-aof>e*(GfrA4Tn}*VA zQqg2Zfs<teolm5+?vv|@xcY=hNTn7k0ofD%Ttw9JN-xo_mfZn)hP&{|*UGE?HlTkA z7;erzFE}^~75X$w^4p9^fvUSpqs~`O`(9#tzEOO-3upB6;~$0OO)qQIQB`{6Cg1=j zPj!mUbq%><QQ*;Kt4oxk?ne&$^c;L0i>wUC6d^%Ln>t#@ZU@~e9(I{h6-9GX1sPDL zxut(Krt{rQ8ksMxt4}=W^`<CX3T&C9uXbg#5j=PiQf=*=uh-VHc9N$iFM|`%FiQ=O zs2Qf%(Uo4SNos78i-K1fLKIgA$t%tyP;z=k_+tI+P%A5Mvh`(m^3{7W@9u$QHcsM{ zI!4)C9*G|{kqlVx%`{b<Y<^f>m=evFV#J|CZzq!yM1B=#$Z0(3Y8L)dboG$r_e?da z1}W&9oUI}2&lx>ezCJJD=CU4Z5QnKI58yt3y#xe!oD~|KZjo1Me6q|nh;SN&Y}Z&0 zH`aTJZowg*_o<yoje<&5D=0lO3Xz_o4E*hD8-1~Y?yC`9Uf|VlK=zqW(!?MGLxufZ zYY+OGO>3|so8C-;{dxXQcEpRBjJCgWFj1J-T5Vn1ij3EsCgx<!S2{UzI8hL@)Fy2; zEr}h{#DYu65oM)Z-5MZFJ#3_;#cA_of*Z7L2{_uCRAY!-G6wWczZ9vGvAS+3kMb?! zjg3ALIJflfj`;4Z22;{6x05s(nKXBF8Ndw}wk7O`CG&J_yEi6SyPS$E*2C(&ctb6- zB-_yi&bo^o?J{XYo!R5ny2ph;Qa(@HEi9XG)wBXYtIuPEqV21eQCO8Q(=%=FfyL+^ zXASaqGOmI3v}i7qtwSdYHT_t^7F)5PW}tqW=xb<C4Tlgb#neCsh#g2kJ17-<G<bWR z|FwXy^-h9)Rl&*pB3&WqlNaL#RsK*nt7!01<EwRe7xYck83(X*gOU5IW2!6v^#eE5 zj}bIer_x2G`;i11$C2FY`_#Jt$wiAkGfZl(@e*kH`0OquhCPLAv{};LHAh>GSxDd~ z+TO=IQXZL=)0+wb4_+|0BgEQ!R-91@!w&OsZj-O-6>n>wa!KYR&`}S+H@$rzAB|<~ ze8(_VC|w9EK&L(73CO8<OXh;!pXU?;A$*aO6If%UQ)OPNv{|$sWLhd!N9d#{Ovg?- zcpD+iItwph(TJsW_b*6Ye1A;fG(n+wV0{||3Ef}RYugE}OyS`=3oj57cG3ORLtRWu zD8!LlT%<dbUtHcWuhbCNr7e&@O!~M4zlyk<PK|W>xrC<YV~gcES($x*$ZY*kjHxU9 zodaC2-Tz|7ze?-KdQj`I^E07;ZZ_c)9*c_Sc@r`*UiL_#P4g@j%$H)cc2ufY%@>pf zEYSZfC6=F}7pI-V#2CTg$O0HS9#OsW+@txXLd-GkOY1q19CFt;ALBbUDK#?rKUCEU z`a%dS$l)>0rRYgA3v0A6X6<ce-Re30KK-)TN3|70sGCt8GSqw37a2x@4YJr4Sg!nb zblQq*?iRJV@X)UDxNb?t=j69-1h~@;fHU(OcJ$Mz^nm4#kDrSx;#XOI$}0+V(vXZi zyK5<6Q*l3D6p`BLR{}yHnvNsF*7rOxQbwq!vK4PpPjk`@<BXjG(u*y|<`Kyt+Z0dm zk<MySVj5Mlkq-3QzjLYRuJ1er*PvQgWrEshHE{h<2Xr#EG0X_)j*w87Y^Ft>D3-`% z{ODZstrM)15*Z8vV&1xdSHA$+Ywv+f5>!&6&7r*AXn@CI;Lv;BsOnuqsInb-%b?gd zzGX-7R8fN7p@X`>yjn!hz#&0;ZCzL@c9k69!5p@{$YpH8Gis<k{C)owd#iTub^g}P zmgkuH0AEHM@((CB74Z2j4qV5zB6>NiHsZb0V}sup*8G4SNu_FDj~3))NxpR|6m%J= zzOv21a$nWQCEhQY_AP!B<Im?_y>-DbMuVQX@g<?K*TL=sO$l#dw7%?9|4=$wTpGGy zqy%EzDs;fbP#VpYMDtYN`sf!%HoD1Y)D~@zMcmVEv#5?7HsP-u#|Q6Pw92y1W|qzf z49P8h`EvO~+s(Ci<*P%hc8$PKXoY(gEHo`!JViKoEA86x=hG^sSQxMX=ZnpS5sdJz zbnA?w<7Y_<9;ob}I4}Yn@IUFqZ7p9QPI{DuQhYt1zs=pR?5AL$9?~S}uyX^)|EC=d zNwv~BSKZbs5E3nW)2I?$528iSGKmWWT1ZuSx`I35;$fkymO`<V9}rw&2OmYPT{06I zcMmVMb(2<SYcI}Ea%7Xxkza(nMl<oha?#YZOe>nAy5JH)AjLAO3xDMz@(gIvYhh(s zBCF9wiFb3fNong@Hq<*W0gnZ23-{n#ha-w8%=C}r`$j((X6(HFei)l3cnUlktTX(C zS76zrn;ra?Ni8KuZ`EV10xov!T1$R@bq#Saji%?P4B-!Ixe^hAligBGDh!lT7Ta0z zl+~<y*^1KVt0L6HTAuR<=PU4ev`xnNfL`Dvi)Vy9)beLuI5wHu(D6a}6jg%}t>$Kt zv*|pXTI|;&3NwHk81GPi$#xPD233EDRgdX#Tza}BeGiJ(rV(4;_t|?r*UQm4Sb_S+ z9sj~_W68&g20bF!B6S-u;@lfrsKU<4lzH49^%!bv!}2K7Z_n70H%8^{of&aJEV}q* z<SQX;t9g5Nn1=D2tpUC}8W#<*??O;-p?5y&`pt5IR-+GZogWNuNhG%17lPC$&zLWo zAf`uWx7OkFh`YfYf<H&3FwVT5oB#n6N88eqdj_ATeo0Mj6>dcWMqa$s^Xqn<kW$et z5qnnitsJw_xAd=M&uyYijn}or9Edb&h`0@!)!f1LPi$J*nB$;AnMKy?!`_8J_QW&` zO>zysSNYqGx-sZ7b*a%B%`)UiTaJ+Mi)vcU;YT_zEzkL@3^q^+CWx5(aX$-xPmM@1 ztr=KRpgkgCb^bSEjquHb#oDLW;akTep(5{GV&V-czBOTfLGd+=S0S?d7JMg@?Z1Sl zf^PirB)66e<*Q5ABoINBwKY`F=bLwtGRmU-2+4FL1#RZHeTm^L3hN9}_@`dB6^n$0 z!bpzDl6!N|v17#~8-}9ld>Fwc&SSsM#=T_0zn_e+UAhbuG<Vlc2Jj_PgPmlT@9Q}J z1rhKv5JupAyxSdh|2cex8nLe&fcM5UXq<q*+_kY&yA<YdBoxTbW>V@uq&SLjtAHu` z2YMJ0a*d^SJFI5ICOIf??`DV~JiG~aBsnGgq>Fo!ez3c5h@x_3g~>*h%XACfW;4-z zfjOeBt(WH7Xs@WU@<Lpc%kq}tR}=hiBn&*jF60eAJR@wX<Mg|F=f`XeM9a_TIg`y3 z%q<g|&OdNNf-66D8hC<zV{<k*_?iH=NlOln&KX1*`HaR6BNF&nNlmL+^aEii16EH{ z@RwC|YsM&=G+ZWV0F;#t*{lqV8lQsVV4-r_{vsYm{$Ej$DYT_+O{q5Bdv4mL9Iv6# z_#CeFZAJ0ml%AJMR<XJjt#!!KxElk(doK2w$EjQ9w`dL<bJsO{=$}Un<@bAGSB>%x zax`uQ5;Tsfvgr1TYZ?kpHc5#$9__S1Uq2fP<0`ON-A?_QY=#7Q?5V}nYqlPdJvyLS zP@Ac$TU#wSP?PC@dL6RKRRqPau+o(3p`S57QXkT2$&r8keo^-`OZ!OX^I2N^d<)eZ z0*G7Zer(gzi;=h!i@8+Os;gO_`^WxrZ7{|C@2U6uLd130&N}Pr^A;M8oP<9%LMw~j zIa0lwMfoi2azO(eZJdQf5$0v|=~XOb7wY9bjnf|4*o~=p^(@rZ%9guHn(%3r&bvi6 zrhbpD_nW#vcGZTBMaq}_jWR6ahO#!%M@yd@e9!-?{0OU_(kWDNi{WmXXtgsgvbcSQ zo1CxAVMu?<UAFteYNru*d3feyGnr!`NYSEIc9`trA{6*%7B?f<k1aeNPH4ShClyVC z33lt~X*@DD3JufJFDe=S^m6Yv)~Yh!F-&#@%WYgp_C!p}swlKlAq?%lk%gne^a0r$ z-SQix4W_vWA*z&&m(kpp7s{x<(!#u4!*Z?oxXKXaEynCZ9u%l5@p-4yMB_-_#E<|j zi3Y3&xnj+>GaGatk_A)r<zljkY_N3XuHGz^PaDSMh8DQg<ZM(4i>LLto*k7Kx80|# zUZ|VmZUYMP%oO<5oxR)`>>vMtp)fbLPWIm0IvQC&I?LJdjiX39`+7ta#)W`f&2Siv z88?KsrrXFnv{0ZyZkXE1AmGf~R-4nIyv3S9BI3Y^d3aEF$-e#cYa3I-z$G<5lu^Nq ziPI81@imX>I*nxDlJnuiSi<#%ZuhgPrb|to;Xx;v+%7d=5JFZ_-9<1;xuSn#&Sqt7 z!sZ!uRTK>msuSma1k%cyc~kKGD813_sBw`h@=I%lj9H?A4)t^@kll}2VfoiYwE<Li zIjD4`R0SGZDYLT4%Q3^{CS&e7g^xK4BZ!)9lPJN#6!*D%d0V4lPVuGH^=~vs0>^Da zIfx!Y{|Vv@Iyjk$9!wt>A&$kLnW)<~w3U|IL8$fd#N`L~lQOM>fwt?mtYQ@$?5@W; zLzUmIRCvdQTsMvvbhd4MyC%?<1*IJd1~iZD`#e032#$@Y0xA*OX8o}3wvcheJ>#gq z3a&6OoquQkWQ>nF&d1PdP7W4{Q7crBgsHLElf^NRo6HB+{6FlycUV-*wlBI2*b369 zfGiPc70F2?XAuR-ISYtL&PbCRlopVz<V=I)C^^Fd1SIDiT4Ixt)IdXb-`Tj_`<#95 zIp^Jb-}~-Ak54IPRn4kVqr$B5t1(8+tCmR#WEc!hEclx)KX~fftAD&S{R+8SZu5n- zUVr1^9kSJ-Nu&4}f2y#o@%rO0S+REuWu86WQ*h@8^!#TUz*c%?&QWXMws|o5pF-~} z%cagxvkHClXVAY+wGzLer(O56phzXv?u!|hh~a!Cz!{;OG{v`(0_;B@o8t~Zu2N26 zj%TvdLKbyi6$T)_Bv#jAolXCr%-3Gth-MX+d0BHrd>09!+7gkAfRB4mk2uT<A^nwR zRG|zqi!q5!@;(wtjRK%)UoZ+`*OEqk2>H~U82#N9r`t#HZvx<J1C=tH)Rjd%0E7-; z_6rDG-w7d8AO2hC0C*6*Hcaro?4r#>!Xp5&L3^K&n6wL*t+V`{F1(ytF*)56Eq<j) zT>2IO;R6^xO}T9~orrNcv;n5v^s$FJOdN;?piPTJp;euHtDlnl%9@U=1oI)_M0+}H z2*P-G<C?w}90bIi!}bK=9{Bsecpw}W06)L7{dW%paFCFjfc&2qD(*mC>bm3}Qpftu zh_eP3fPQ!MF`-WCdUlb_D@jolCqV2yd6+I{BuzZo<HU<wqM;xK4NwLY@RwxTmQdwH zoqBPz|4(qgTPnlI*+e91(`FO6dy7W(#@7a${$)t&$UNfQAO?)F6SNq3pFlPySs2ZW z8jcnSk7=;_Rn$AOUdat>lK#!01aZ@eFxR6hFG1KYSSW`@2(#Ai={h%<1RVPk&I7>f z6f(EVSExWo;q=+3l@QO+!_j5s{k}QFLu^G8#NIevBGq+&h@60C6A`+}uhMIiZ*<LR zI9MVkZq-N6rEc?=T>+3x=yS5|l5rJ7ZrhlgG<=fEVVLgkih|(YAHy5`>s(>Jiqx1s zF?PZx?*gGu4=%wr#X4DW#aSAw9oIAgvVfBe!PV0>+qPY7Xl59NRB;9Yp1Xrb&Xu^M z`8~|_Kkc?68RB+U$4xq>1dEE6EMAuH<P4^kd&g$mhpU#+FDT6nu-J>3WLkD;(W#ED zDv><a$7eQH3fi__<l;hd7UJj3547(OPWNeAC8!nGxv~KG?O*TgU?HQ3S`VUA>1<Q& zavapG+EJOY<95}!$<FBF=uK%5c6d!dGwj*oa6;Lsycg99*1)0CT@Q=D+7BsT9-BWy zC7{LxfY0SCK*<}`Gt<OR`T}d=)rVAU;%8hlG+ee0pgEWvjqpJW*ezxA*uBx@>w?X1 zbc}Cb<0<jJlYk{39)|`oCzVvG)!chByB*!$i#w_g@DJsk5z}86VM3Yv8)5N9HJ-@a z;6+X7;qFL;<mVcnyUwF|q{^)0owwR|Rv=u-wW4^4f<&{*7T?a1wH!I;xTyVrgIq{= zJgnxBd5jWpNOITG#w(4bwy3_Q_=R~*Xx3D^CtLbnF9?H5!-$DOQ5EPaqS=OkY5pKv z-2PYJ8;Mu!hr}A<TxQ=&ZyTN5bzSk{U=I>TSJz6mvP3x>OognN=%EW#H@HV3VR=!u zeog#aOQ{Oqu}8}Sx16AQS2D{D!SDxd!#YSg{hgOqVgY<FLsm%SFl--4jF-^*GR5P3 zmw>5ZyNu{P)a{0a;upwczclvFRL`|HB{wS8r|An>oUi$(%wCqMpW5Py6IS2B$6{#> zu^{Ei;-A~xG7aUCKdT0V>QHL}LR(r`eaC^7aR!zXz#2fYcB&_t2;XW{*fZ=CZxo?B zXMrj)P*48KxntgSx5Qad1dK^P9;?cFe_0~g1^aQPip0b)mb339uw@+EnPJVw)kz$X zS<Kr|dnPrfOmU>1=rL{E`sps!n}mYxgyl`{c<DsLa<L|*U^sE%O>QRr%4g&D<aE^X zi~OQu6l^{r;>0~9-5z7F#w8QigNKMseb$s)gV9lU$cD=Rmll!BK7&Yhu5NYak)I2g zS(beYvK((FrkDEO6@86x{!uCjD+YfSO&l}JrM)|l<v-m~%tl9npDB^CrXJyv##ZIi zYLzh%*cax&15I*$qAV3x3WL`j>~C0NWbU^!MC&D({uRV#mDm$V%4=sncE7W%vqduh zv6hPfO1uFMqmMlayXE@V4U-n0yqAtDyKI<{Z6Pc4@uwdtNX!e(QUHl0zO83;gKF&g zo-7O=l0YjgR-awPVw#U^C<hd<dTa9;@YAgNW}lrs$`x2S{SRYsj>dx@mQRvfoH9!H z2EX~*GRWmVCNbr;M<HV=uesm*Z7DEf6D3anEfsXvRlkQ3P<OCLw+U++<<@&<tTyG< zl)?(KeAeEYMJn0~j>Zv1IRcs|bzeBV<d4~mGxNDs$Hn>Z(QDd0!c0uVw?N5I%zV1; zN|f>YSl(1yow8SdHS1voiu$+(VjY~>)heHcG*vcMtIkUHCnjv5BKN(UN`LZn8(`N$ zB1rllUbDGRDvC`A{~65QpNX$*te4hw3H1>fbt9Jb>6RfUaqUVX+v_+`W?XWvv?YyZ z@n|8D^=fq1_Vd40`AE(~=qi)u3deGA$$ci(8DH_EJ1O`MzUNQ--<`Z6ta2bIrRO3b zb)$>&``GLmJ^fraI=twWWoeZc5F}b;2fS~{$(`8Pc~xBL4I*F%NfrBHWngMv>krxD zsnnkhAFNFj7dIq4_CV-zW?JgqR5c_zrD+r{%+ab1$Mj*_Bt4`K54QLCX*6E5PGX0w zIUunWA~6Y`b8o$=T#E-voAi;X)!IEwFbXv<1x`4_sO0@*ey3PymCfQlN~lB5zkOzO z0il+88u_E;na~B>yxb&eMl<3nU6-%x+Zyb;7Ey)ajFg#TD(GlZ0rL-QNA5k10Y`_} zdPOceQOy12Ms(wGR<`tsx>ajdZEPl${RvmC`{bUHvVAAdQN0h1f!Qc!(GEgFYvE3T zRX_y&w5eW^II^a!RL$ljYsz{dxLGDLxN3{z%y0e=MIl3d^UuMQWV`*^voJ(~zYjm( z&JOm_o=Eoj!obD*ATOITq0dQJ_l4vdo{*D18(H-iWI+f=c_)fD<6NgcTun6s`1rPa zAF{?ZW951ack$n}MAcmeQn}by=ZpJ&`^6Ye;$!rGUS*xxf5OPc0lR<V{w8o#&g3b| z+d2#X<&R;{u->-gyz26R&L)Xqwko<CLpu0-O|Mb$Orj(}SK6wBY#SpV&05%FUn{ZM zWZ*`oiV9PA=WOCRC;=QL)|k6S*ze(+vnT2xkMU*m^<+RPMEl$Ak#1X`0QckfJriRX z;AkLXs!gI1VJM$o4v0!e4%@uCAecdv(-spW)78&A0i*P^u_sLnbUG3^BQZk(ZFRuN zpw2}`X^rBsVM~A^T_E>VkB{C1WC`1BpTxG;2;v8uk1z|0YOh8u^a|^C;Oj~?uwzl2 zQJ+9vUews9=&l9@mocZc0-vdq9Hs3En9X1``>6@TweN^@tftkPZ1bA>&NNMwe|8`n z`>oJY21}z@BrSEuW2vJ1Ov};*3vRtxLG&I0S`)Inad}BX5o6zRvveE#S!<ox-Db4h zx?bqa*Tz5F(zu-X$$-sXWh|UuLWp9CC2^5rxkuDyM0zI!yiWTmi$7aG%Ah}5hQO7b zo1JoI+GX}JmV+lhMx63f-CliG<rG6@=WUs2uJi6xEh4xe97*>V5fMywXjB~}ze{~F z8Ac?b`r@8gCp*Tk(_U+d&uWh24xp}grGN*;6@6JF!HSrD!Z7PNl#6rrSmdNr=XT?Q z+_HwTGHx~_qOl{z8pks@Md^|G+^XLQFOoTv_D#|c>86P`ulKGr37l2>xiWra56cyN zCAE&2lnNKuwzpjthqbby+FzoA?~67-2J*go*X$P&Yz9g`mA4x`N9I?a*)!CI7Qc}@ z@mBX7Y3ERLQYk51bpQd<b)j(1Gj7wzQMV(krh7RYRW>Mcw_JuUg?OMu@CE8%E4JcW zU6JN251rXuu2?7IxXiqeq##&~<{60z*VZ9<|EBGdyQxl&BYk6sb14}#o`PU4aHlXQ zL77rr(dX_FLNd7YYMzIDv-ZopLUkXzU><2rBQ?z3$b8#I%bnrk)P&FuVOM5HmE{)w z2wBTLu^(1Uffewshxcst^!bQ%JTp{mBVxvQCbgp4Ofageq5DDEeiPJV_Kb(h3S3tn zv#7E4jEC9M@!FfGBv%0&dzx|sn(~?x8wG9CP9CP49Om@8B01|0Lt1hIr*|bp9b|HO zz``5`TP2YIAbTcVYUW{;;A+a!wY7n$IPyQ4UVq-2Y1<yK?4xT`)J$tct82b#gH4@= zblJRYvo9CSdE*<lH)GDm)O}4D+r?sf6Smy{pgSnJ@ee~Su4GFl5oY<r=BF}^1|wN` z>yzZuJ#YfgmhbDu;3+Dv#gNzUnGF`4PQe(eU_0c{&%9wKMeZuLzE5Q+L})*h^2nzi zFdyy9xO*SD!6YG@rJO62gE@JbsCqzNLu--O$b&dUUfLU<t`i8hG)WBJH7yc6mi+Uk zXYL-92iPiOTxiOLxTZQLCTUZQ8PZlBrrRhtyo9MRxwJQ95PKgfbJ+zR;7&`OPbr@v z<!l*c$9h{ddirhnOg<_8e4+TlYe9)s9M_YEq=ycaie+)TK!{fQH6h6?wPEP*bPlWW z1;uB*D{`o}nk)3_&3bQqs@v@atcPXP<v7^{b8Oo#>4P*mZm^}0v4ZnrwgDrU=UMf- zl7kd9<s~b-??0q(H&5n)G<qdRMVg~so}9T-s*gKy>yiF>*nQ%h*-OFptMfEy3M`X1 z>m&D)OW>ZiF(H37kb$lG_PT7(XdP9!cj>WGf!sQncv$r3ppO%2_L(waIdK^@%G(+0 z!hkOSN4TCxw3g8z>k&C|BrUTQmv`NB=}AXhrx8g_(Dmv;$x#>SUV_$sM-ZU4Ps|V_ zyv9aDiL+MG7s^Rr6>;R|Z>*2AF<?h4Gp@L|#j=f0fB>-pz%vuO)n)#yTcq0Ze6W~B zOwWP@f%xpbM#6kuhb0pYvx<9T)=oxaDoXPoulP9EtLv-nn(N_;ecKK{ZBi6{7R*sm zQO~K#xxaVzIHhJ*GP(CcFtW(;a3pLVp-6e>wZX&Yi7U1&)3C~QEkC86dscVJ)-&M3 z&WzU8fBHRDlD%7u#ky_y{c#4yerJ{awSdX3M1wxgHm-<!oTMiLu3H2JzIW~-`h;>8 z1XU;Nb)_xpL@Zjj^o=mxz2!G#G^d0E*cWo1t$ldy=;Yt3uE5@t#e8a3wL8VD!OoYt zB23LOAm*;p@pyP)#vv4GXZL2K?|`gR(nvJUnDuzdv{mc`sx>_%Nh=)L*8BwxZb%c} z-1<sXBM~_=hktO$Ew)dfDjY7C^&v4E7pJYNmUMmTBYe!<|1Ro^dw+RErwcV1wV99a z+vc$1sYyvA3FO^EjXZ-SlMGvp^ka8RbkX)yuMaho$k7ZpsKG?n?|{oZ8qlMEgDY*n zZg&^ZpDvA^in>RcsGYcA(vOpP1cEu@FvzLGAp{yT-?)pQme%^nlV5HaqNr>?m;6Yx zz`zvmasi;KwoQ^D_<rw{CG%Hz4^8V{z!TIZIr7&JE8<6(3iYGJ5>hc4w6q#YR9uR? zUG%rPZJ9vPoS4`87s}Ug-X@*O9acOi%L?MBaw|wajq(z6ehe*tc)B{PI9D&dRpKDh z49uFF@UY4${K0D$MIiHJ`A^UiLeE95;$tp=VRJx?i@V;xVJ@R*aj<-DXq!w%@JAvB z!dl6v&5|Wj`9VIv9DM1+Sen{p^YAXHg5DN59`<xq%iA5PBp|>$WhX&hBgahf^VliJ z<cus#I*bUf2^&l}t!mnJtp*NAMx{!mvy!{!(6l36iHCJCsUl^qO@7S+zd24Y>#kb| z`q|LV=95s5>176yC^&yZZMj(S)=HZ^+br&+zV!9-M%sK|a<gRLXe`uCm>O6~So=%b z=BW3huBh_%`jRO%M3$5WV{5l>TSHxTkzSJCIDh9mJ%3SFQcnOBDmH_+8}F$bL+msA zsE2ct$JT8;^t2kC9m8sbL-u~k$qLIX>Lq&%T>|T&>>o-gX-33S(`pn`1AB(t>9TUs zNX(DHER+PJEqmRJ7TBu92CJNHAfZ;ID#g&PWM!DYA3JRu^T+Wgnvs_clHLqQSxm8Q zY1F`J>=0#By8-rLQK>X8#Dk`ay+g{eun)tgyX+dZLL;j-MIEe40AKb#=7SE2Lqtto z{p}Ukc}-m1k1raLvN8%=P$@TTy6h%Ud16wW|9Aznb(~tbw=cXoOJ&|U@#3yX&hmq# zIk6T3cs$dQ-g@&3?7DxglR~0Uj>^C(E;JxOP5w$x7cTG(UD2bjkMr|Xb+y}`j}qO% z7|b+?c1KKwDqHt$b3BgiR@Hen{lNWX_-A_DTRyGP8;8@fb>hq?X^dqh1z(v@GZ#EI zT4>f~$5&FyaqZd?V@b2xXIzq{>IyR}h~Ai19f^cb5^P`chSVez)}2o}>@l|W)-_pQ zs+pr6$u2LhmPVQuQy1XYbpo?JYTl83mt@dA$(IOc@2uX}o1zf%B=(b}hA4hNMW)%V zB5nse5Q9v6If9Az6^kJ#<ZfaSgc2*OFi5pW^~GD@1G$ru^eC+Rv4SF$tB)bxu!tQm z_j771|1dHJH(anFW=dgy@ee@TY(Xy31G~OXIWVk$waHjy$tR(@+{5~EW)Awb?8-yi z&X0!zhm}YBJYMool(~%7#>C@4>D-&9oLd3hTUx9raM{Zy49`$p5W~c~c)BTQMJHPE zSYB^tsnU*`PP83yz&8qNw&eX#)#>Yhh%bs+q$uDPH^R(^x1-LI0sV1_57ZSCYG94t ztog~n-gJLlZ<ojzwN*T)CPv!NvTxg2CEvK95VI$drB{`<WpCqwv6yY4vFygXf7MZ5 zFMfDeqvxyli~WT{`8snvG|p807}YCoFzB+sU`yVwRcCAnXoIUA=&bpv)Y>#0SKS7U zaG|Cz@kI>lK2C3SVPOY8RT_i6F8ynqqjHBVax2CN7c=@v!JMzndEJBLUc!@JvG=_i z4HHzecyE^hrhmn0taSp_r%`ULPkhl%Dosf~y815bVPnrP-nGsnA6v%uJWr-14uLe` zxFoGa%!ID=rA)ry@mnl%G4vdlmO4Zp@48jkk7U149v!PFgs;0UcSa9M_~&wL(Qn*7 z#}CHZdN}kAzqik7Y2e8Uq+zYYa3l)%tcdnQX@YT!&gaU4-iO=I-JgG>X_J~1nsN}N z5MeN+{ir2Ey0i`tf|8vBe6;C}514EnUpQ2WOVe)hTcJxADdkf6`xVrZLm#3L9?k+` zZ2?3W=pipG*7f+9)G~HE@Aj%C1jM&FH`{HgI^62%y<ws>>7j^B@S5cH{>xyat=muB zj~_erQ!!JdU+;*>x;!Vlif&Vh9i0?^I=<Lui(70-clTtg;M#t@>dHy_GVaKArQ)_< z#w#}*f};wIk|=&VU{laO2Muhn-)L5>&89kvJ?88ory>{dT7)!lDOSJy^7TpjG;R6l zve9g<n~0NpW1QcpdCQ)6leDSw^(i$2m}tctm5ew`@))9Z8r4VlJ3TDEfwmF;M?s$2 z2euY=L8$>No?G?W6T&GO1~eKT%)NE@Uy`&q&RB~FXkKZ*>f?E`owrjAV_lQJfw_%? z={joopH;{ji2|$3*8KwAZhgQ2al3ZCzJW}nQfbKZoeo3;Q2r)Bu7WxGH#)+vNTa5( z2LUSx<)Iak(yxGfIRdf?4q9ZiP7FPe6t>WGnt0VK^y)LRsCs^WK;xnBy}AA4)ZyaY zua^O*Sg?=e5u1I|m_KOCaW)~AdolJ)xgG>{VgU7Y7(hFG_2r1<D`Yyr39TO5?xzpi z<@5&UamkZWTO^$E^3SE6ya*t+s!D+=+<4Xz7{#XSrgIUf{x-g#A>tM1Jg=FVS!kt% zr#;Qc*Hm$%4>mWl{|c69IJVfVr(0poOEE4XI(+%d;dLcto8xfpo%Qm>F8(_)H}w)S zPl)hXK$_68+$bLFsEVPK62qFAX*iOew{R*8EIe7NQFjE<N_KqKJVym8{H}9zFYqbU z!|_h`pbKV$fP_1!2srStwCE@__OBLy@Lo@n1Bs*|vxQ`zrk<{SC<N3*hbW&Nb_aze z(AFA{uchk=|2PNG&tdzpbp&7*c3JWU;osocd-$zie+x4Iiuy;yWw6|N9?2hwzjOa1 z>380LCjIZ^z45!4-EE<BCHg1RaCi&8e=hM4P3ZC|4#uXLt1(`et37I9fX~x7f*HU# zYGGXcGqLlP$&%z!A%i*BKEL|JJa`qX>KL~FB1vWBqac~!6?#WH2fDy?U*f*2#LVfS z8-nQ{Pj+}V*OD5JCe8o2BaXz36gI9TwbG4Ep1vJ3+^D*G|HF-^4k}Lxp)dT_zYA%i zZk#{=9sWQ7S%G|ihnGPN=g)%7gd(oq|2u4!ymtQlI|R#}S8?_4@c*!?|949HUm-Z* zBV0*NoG_yQASL;IK9Wk~e3(WOP`XEmMu^i3>VI)kF^=`7Kj*}uh;P~aFJ@f^PHxWm z0h|o{;wC|L{k(p_X73lfX-1|sBw*+z%TQl)PL0!VW#;AFzxY1Fp`2%3bX#LfOuK}> zVW!iPfvhT(6X}ha2Mc`gnepxl+wzIEmC&qQjM~Cau~cB2vb#B##Pf>M;&1-ysr5H2 z8em=By%U=abI0(@!u@%hqGjpBJ$p(#bS_DTQ;vF_*~4^Rm{zQ^NwA0l$NHmXyHgg| zDP_*%H)=R0a{H=8xBS@;GcJqv-lF2DMaS{!u!b?0p6KxQmpF@q%y4N_p97c{l1PAr z{l(wy%KP}U+N%v$%DEf<bVZybUVq>HY`7mKdSZh%sSD8)x%POSSG7A^LiDSp#byKA z*I$W~f|j><_Hy03Fv`mZd5TYDjEL!?DbKKNWHKpuhiB49@!Cbm+^pok8|AbeE0%(j z_d}$lztbYQIQ3Rl^Q^CfTtL(RTcAOj?>pQp@&T~R1zQQ(RZs&qQ1Qvz=NB4QZVZGc zUG$K=q4K^_Vy+<PwE}_Mp&MmYJ3AMn8$E@R1als1?-jO2vVKrfk$qB!)j8ZR9*x%Q z?<(Ni)!z>6UtqY<Ku?^r$Wp&>vmSd=$Bc-#^-m?Cb3_NEZV!A1hWRJ|4TO)EfYVo> zK(C{4K&^j0fjpMY^I?<^ozdcrf&PU&4-RkV&C>m~li>vO$T2FHa?&f5M9!sZPXP9A z`!geAX)jWrHK;$CzAiHCvNRc0PE37=K&AujK`KcR=7dF?>Wmy1Q<^s^-frXu^_yv4 zy@)xn0o<#Onmdktst%gehun@9b&S%?EAS9@Zw2r)=IjS+S97*l>ZP9WOkEc_Z5}vK zmNqv-No0N|@Kex2%3*+MGFaT*bL8`>Vf`}hv#PyMDf8(y@Om^nMpJ`p#(>e;M~>i> zmCEd!4|jLO*KW0!m~Y&l_QRG-6s1h~hz{~9-+|@vuU6LvAVqqR4bm$OO*?f>f&m}T z8W*SZG5RNuY&Vg~TwWr({+QW43Em$gqA!eYW9N+USfXjp#^YE+ed3;`Bk6@{;YB;c z<0EYxTDl{RZ8(T}HR|hn`a!5Vy}p1?o8v1Rk&$}n(nx4FaRFa~A`2q4+3^*AZ?^F? zw73~)4cO{l6#l3U*>LRBYn4+~+#%UUG2<iZVGsy=;04%WL~2Cjb{8x#)Imhcr#!g* zp6&|}Llkv9vlrhO-%?9qMvNz46c(Nqy6OFFCBXL`Sb|N|kLvOP{C<;nQ{KRj@=mZ7 za~d&`Z4_89vJPDq``prIY||dnFJ{DWbpjroC<A^OxmX96bKiwXsqgTA-P0L8se6sv zO;0hva|>>dgZK!O{|BO9Qwn=)AZr^DYo`qp+j(F2Zi<b2cIWZ__QLE@%7lE+_=sqo zQ=QXN(DW7)>t*K<wI{aGaZwjBxF6-IVcKzTRW4oAWVQI>JfLqaf-{_m)Xq-Ijl%Uh zJzDXJpBBl6Th*6hj3rn6?eS(iQfKN*m35@6pEL{%F@cKRMrYO*XN?8E0iz3G)2(1K zY`%e_5zfZej+C&v3a;)CsrV3;%ZlV6qGifhMf#bc<O8?NSq5^S-ybHS+Nq_#eivGg z+baxeBypMweal9)&Wgyse1Vd#!-&;weNYlVRAjv&u_~V<C7DPB5;!%W=ler@a#zXi zfOf?A?PQ>>jsNMXveq(hT+zUg3B9fPsq#&hlkMr3Z(Vnu)af+wi<J=*zAZEd?iLn* zTm~qy7>!KOJeB|O^k7}@;5Ca%N5qRr5|NIT;wgO{lT^gRvsCL7%CwT$(aa~b7d@0% z5QQd6&It}{xu4M=!I;@~hI!u)xcj1+D#|iAaehn8v|tVym=#)<C((4D<|eGTFA10M z$YH+U$hO*#uqXqvCpGn-7i@>Xdbk|3nc9UuN2?3TS+`VV7_tT|-6bF#9%@@j2F{1* z)`8rFiwT_9EH)%N{0kqY=+O(UHU_hJ++t<5(96n?v0#%_oIJcllCBTJ&Ob-}(T%4P zHa4jhW$D;0YVxW&((`yd-bC`&02uR4jRMZyil{gI)9i8A((wI4*H+pjE?0yZI{fg6 z&zH?NTES`e*oBVi^i`1`)nfBMAGtZJpx%4TV>5+Ts(J=bH>U(_W1En<b@#SXT{w0d zs7CO522qvYe(Z<#KkpklvX!Zv{BDxTSbXcXNj2l9wwC}Zz9hAYK~KHZs*BS;{LmrA z5!eV=u7mS(6EBbtFm54$y_n25s>vAtRMk1z8v|<$VaAA5B`6n>M_I>aq6}AzC^@Pc zB4WfY>Rv^X^MxX(@YXO$3h0B<L&Tylyh!L^AOk+fHS$?SRuVGzXdV$g?(G8hp(tOF z_%JD!{t#Evx)2;4<cghdnu8sho>JVKXW+u^lrY)kslPq?aqQE0CgSci;3If>-Ic5U zR*bVQT^@@ViObo|wc@kw<;p;+<yfqiyAaDJWoY5aY&V|9XMp=Tv#X*7&+d*O&aBKV z%^FOC#|R9j<63v^Ys5uzhRLF_2*%1DmNZWDZ)^TVPV0FHK3DYsVHCNL%U|vfDN)VG zFGrRNFiS^hfqD_Q!c%rPY}SF{-DxCL2<CIQTAPnPe{W#{?BgZLeN90_^>BoP@M(8Y z(O$cr@s8gT)ZkF2#w>16HSoCZo%kmr4Flrx;iwsIS=YXo`3~2wQ#vhc>E_3ocwC&a z8W`l4@)3*OpD2LivN+PfL=|<R=Ac4R0W368zJA7Pio0YZKa1T&Qa@1}*Qof~Wz;^% zUBzeZvsZ7C6rbi;9(5agoX^4ON$JFWEdys8J+|ql#vcb7YvhK<`uOCN(WaU+%C?@= z(^C_hbk?39DQOc4-JM`rEybMNQS;pe)z4&wog8mzJV)<1COz~t44i{0tEmKV2NCPJ za}Rny`mpctY@~zQdOM|rzge3&ZM#Or>*L$kc!-|!rkI^%*RK5YDREZV2uZP5<&({0 z3KuJr@TO|#>7b^2hR4%YcR9r!w!IJGA<Hgo+PDzF?(x2Ki8%9B4LTj*^fNup{)*a@ z#B#Wu=pJG?<ne`EP&xb_LOpooV#4@xKz*hsWa+k8jIiYXc2uaoi_)K%H3}6^78S`S zNUF=c?PHgwtbTm{Buljut(EAaqIeBj|JVH+bhHQCmER>SdrfX$&t1eHbs-IdE2(BF zAPP;fZiUh&`Wkkt&M~tve0tLG7t;`Q_DC^Fvek~Fpq1*ub=DD0r<VPFeY_zysV0VI zgrCEE|GVp!nD?H49P)9%2Uh-WZf!glq#R$26v1RA<G25GVD(7Z7d^||v5R$5;X7fu z+2Z3qUs%1b*#&bJp;|ywWim`a2J0viFjBz-6I-#}<w~j3!=8@znT}UAQHyi8aPvon zsMO+-DCmhfAa-2cePgC*LJ6fA`Mg0wdue&j&`rz%GUZI`yqQqvasjIKdi_=ERbX&E zm3{Jsih`y_XFlf^>k@G33uwsxC|sG0&RdS1X#Ivt+O0@-MBx=0>RR5anN}W+Xt>pj z9Bfl?*FvXca$5+6)tdtWympUd@Lp>2&R9~_BF$wMac>uwD~)IUaTS*CWKj0$-2uJn zq9n*Yd&?&@Blq%Tei+)sOFd;Md`lC6bXAxVFslA^ww=0PJi<K3(AZfspMYxKm6N>+ z?eoi*MI}!*IJLXdwlyavP(Fo9bS(=CCu@{lf$xjTrvlQ{(^X&_vj!?81r>T@HoNZ- zUAZ`AtTuO`*yeteGV;+CGqji2re9j8aAR}7KqpXE{RtTf`{X{Nt2Iy43IugQu%z5! zqa67H7Y<<cczl`m^CPdSV6Etsqyr<aF6*1v!-gVyDjSh6L#p(dl&;Uwh$&!)&YtyE zVd(Yf%e%#u3Ur}twDgJfb5%b6Q=JSbXS=Ys_wt4N-p4LLj<nXT3drnICT}B83nheQ zin{=FBgpa|<Xe$8YC<2Hbm>Lg_yVxQ_l2_(MeQQqI}KP9X*G+`M#s$%m3JRZOVG0A z=R_<s?DVzXBpH^VsFm<*`$Q2PH&->D?yB&?p6_SQtJEEs>ngmNiOk4NXTOIH1pTa1 z;p^e7vL&-*Mmyr5lDXj`Y^E7dEz0OUkHpXManBC&q0rz~39asm_>iNvpJfz_j?qPH z$Ejic4qgcB>>^_?s7mMaw)rZ%@WWo=9Akp4)hx+Jq_Jb<pu$D#ykBx!NjG5Gr+3gN zrw~ajtW+cRYIl}Awm|JDyCM(c(4K6ku0%YvrbRrW_yk1bu~P?6RsLS@eENA@JR?fw z6d%LTngJhsE|DYOG~@f(pe=gNuc$^j#<0kP6IfG60q-;FXEz+`2Zbm*9jk3X-%670 z;QAHT4GAJtl~xy?#%2tz7uqRy$b+CP9H!2%2wxkp986^$eq~IOsi2OYcvUQy!eTYV zH$KsCO{OnkwdL_{RZv%~T@!lu=OX{9GY3)L?Sc177byQM|LK9lTJ4-Jy}1Tu&UrnO zzOyLl$NjDlk7DyV-7)suSqu6=wI~U#T}e{^nhdAi@D|O{<=eCBes&GUwYwnH@k*tG z+kxiRd}=?9D(RhQiB<(m<p!8D?i5nXh|J^Gvb5aH(gjiWXU0GOLSUrj5V%WNwqg-6 z*1<QsuxD_&+<sxUm#N#Y<uGhq)Z-;=^DNnzga--n$ZM@GFqU^($y(}HtPykFFRV%2 zUm)^sywk*DzPZ<(8YY}ep^_%xj9&2_>N1}b$$6MYa?5~X<e=WI>SUs?jWu~{zS&c> zKe!)XgTkLov*B-UugEB!IC(k2;;4#Ex`D&_>ibPQf-WBv4Km$d^xZ<+%Xsa&j&t-Q z|J*A@3nx~_qquOVY?5hgMWWpFVNXvoQj0aMw%{iI4X?p<x*+V<e6B2qO&uO{@HUzn z!g}2VJDzi?jj%W6bp)9<9P7OuV5?%2%0g}-n29i3;jTUnucPz0X3KOU(JyyydosGc z$@==ITDY#Z9fkO<EbeQElA5A0m*RunkKcO6E+t=Ny?6bJqPRyBCKp9sz|B8s9KnSP z$M2@gn@0y?5a0l{(T0LPWoS%h$fUjKl|d<($}aY`BP7iZyB7jd)3%4=`f%vH$i1u2 z7g>|S%+VO|`sP>lnEC4=aE}VpAbPY26qK8;kz<W2(fO<adkA?s^W*qZY0|oU^6NYA znp{%8a&N6%k_jZ5UJWR(fYTmkMd@2jNiz6o?le~X__+V9+le54zaWRI>^rR$`}02s z&El*(&4)jzA=Ef9)8yk+v04+``z^IUwe6zAj2s(>kKg*jgtZpWT>7FToVLt20MWdi zLulILuM3@$5_f&JSKFL;P&(G$A!Q=NTkg3v&<HgQ%Q)($c9(n2s6t6t`1==e228T5 z;<G}h`kr_0@#NoJ6V7p_*|a}2PktC0H}|;WL*9pp8sdhPW1=>9mEva^xJ&+O*~iy= zoz(M&6bu0esVR^%YO1pis+m|vC!xXf{(25N)MCR94P>n%%J`8Re|l;Q-Nfa`yWbJ$ zvI$tUY1WP$7N>*VpJ=4<`uUxt<=HX%3r|N;b*anFA=I<Dh;riX^ChRvyaQz!nyAYf z_k_hyop9tvv>H)d<M%xUymYzdV9gF>5AKgVHxerU5_q^^%jGHMMAbmFXiL6o{*1af zp-3RpNM)fDBE%$eNAc*WSyItHemyQ1^esrfW5Xt4UzC?hTYeOCi7vAU)4U7|_FH6U zDQK99`YB}B?dq|J2qTYcbbOlQe34I?mmq;C4oarJ;leE0?tD-i7^srajlzCAl^9#1 zDPNcEefQjTqyq3rLFcpoMU_e<OnlJe#gxn!E+1ZD{aY$E6sw=qw=<taqu2htE^K_* zyAa@INx)xd%A18OlCwI6RzpR?KMba(zni;#Tk6*3gGEOHaXQb2t%-cw4#CU3@*D^? zmVwBHXKthyC@pxFzAYHIrj8915rli`g?}&HTfH4v{UEZ{HYzwhd6^f$Mtt8HT8pd% z6_Ptg%}Q?3OA?VnIf*5BXEmjg8RFl}g$s?Dn2qhqYw1xEM0yJv-Y3nHiS=;e{sq@0 z&Qr%z_{sF;?fx=VQTzPA#6+IIt(u6dTHc;9y1f07qCNX6#YE@$Qb(a*0H=ni$I~wl z2v}3I<gA+de!-rqqMwLnzvylvT#ln4+{Y6ga{D<z^FJUxK-cx(p>@rGPk~<;(?1h_ zVQapCZu2>cmBAu%j!g32`=t+Tkpb4jme<BOY_<yw3p7G#32MlH9NuZ3q}kK*bkfNN zW4twHny}{QZ;hB=Hg6@k7CBd5{)OEBM$dkQz~}#0^0^8#K;YjY;S~TaJJ&@1N1k7K ze@Fig|B?J}iy-(yAe8Yt{AbDMHT;gwQ3mT-H=mP0odO@za~QyMeIhyXdE4$mf7rBv zzv7ePvG%#TEr#S~k|a<ZP)ysek^vRC^OF8;%(;h*Uv&Q>ia_Gu<ek5F-kyK{b)HP1 znx<S;WOc@%DwvEj2$t#IAl7Wu#Lam4qqj6bQ#p0=+m<d=v#l_=DQpK*5ev3DO@hS+ z??g)!d9QfM_eSQGf?Soikd&h*);pDX?izKvGT=$^!u3J*-9?*eElor84=b&){tbSA zuj7hv@RX?88$H>I<9M>-tj3+S&H5RrqS{oUZ)si!-(HN)_S{sJ_wHQ|FM-8a9Hoe5 z|KVM-f(7v@@ybof-FRCPoQ6pDY125BP8(^B&+Ep0q<#p*emX>^uOUB|ld5kjB~`ED z(NPJ9v~;0FYP^w_S+p|NzCT60RJ?Si;Vo{aCWE0{VvFMN7L_`odp3Ul>_ys_)IEO= z;~k8hDw=Vu%UcmB9MM>&d3h3kGmGY+zctKE?+td~th_!lQBg>7KQ70%=DDUcWToee z@3(%K!@#N})0+#0)s0B_yT-Cty~_dNhXUE{dgV}?@*^<yEKJ^Tmwc<guz}ND07Q!K zh$<7(+Um{8WuAD{<2K%idxKSMXi)JJw<OS$8UPm#MLDh|k9^qW8jn;z?d!s}DU-I% zugxZ<KPG!kf%8`DgRdhMmL?a|_u+H9_q^^p74S912Xld`ak%y~;_Sy_o*E8}Qx2Yn z>-8t!;Mplv8MSZlOBP%-8lyK)X=r)pLqD(`UGJaevBpLGbVycKr&Az|3}EmrBj$^} z_Pd)eni`p49}TXM$G+5d=GTff-$8D=)nbR5+K&u;SgID*c*tKLpgO6xwb(?6AW4&p zXEgKf7|%sDvK1|6;hUtVv<CdLZikUU*4g19w4$8fC*NbBDiZ}4<ikk%SAz?cQ{4d{ zum(k(jXz{RYK9q_aERA>uX*B$W5KE^>8D>YhGqx)jI;+sT_#EwpxZzGx`_tw6~h;b z^wtL?<=^g;<kKeZKC;HIJUU%;G9LHeRDlj?&5F+%?nn7SYIb$#7*xFuXX<5#jquvl zf<3REC4P4|8K*@;ix7xSM?QjE9{^&Ci=@DXa|bBTY9{6^qsNX>X6bTNgWK)a;!f-F zYRfzpq}(3Xlep78aZM`oP@B6&yVYpa#pm|A&^|Pz-2aNd>tyk!5)Aza^+sdbfxc$v z@p55RJ+Nu!+_1@8|BO9CEfp5kz8!1mILNH*%<jsF6%}rB{>lOf8#aY52Q4Xgmr6+& zR;OznRZzvgGrUKOXDCSNj#%{R(|(Szi3-;U5{SECc96-To@+bdK0+|2ex=Q4mQ`F# zp3iPiDBfbfMr22J`<T}UzZrWVeVRE_vM#cE+B8!b;j-*F=x^wuMJ2YR5nsTY85>Yt zx7ab=r=76Dd1#APKE}zvuF9O>H{Csi_uUqc1}@wjcE{ok6SVDCF4Q{ZU-!Q-QURx? zK{c0gcI&_NcAv((cq)Di3|R2-srI=_C3ik~+-(_++mF(N*O_Mf>1O+91>N5y$FIuM zb5h9rG(NT;>%egFCs0Y4N;Qr+p7c1GRSas_Ex(;cvJPh*Vgw-2F)Co=@C3gl;Yli_ zj_c_u@}sL}wLNOhZ=HL*jHqq>V|`3AREC~c-%Z^~q1Rxe9=SJyM-pzh6SSC3uu#zG zI`kU#TB_wy^%HX&qP+xo1{dkJ%80gV=d5EPqpNqdDZ(^?@w*8H2(mH(fqnO#8CnhQ zg8fPI?#9kR#=gGvRt82_MQ+q)uBml-y!mbl<D=2hKd;yDM>5WaBfTCp9&|R4&XU#z zZGA~1ODNC)R?ByAadW*8n)24nC;foq#BuHLz}(*Ew{r7u$0disdB@6A>LXCdY;ACH zsmEW7`JE<s4i(@M5Z|SjjwzAuC+h3kn)9UtDuAZq&lk0G8huAClA5rpggSmV=}LXg z?1c59mZZY`q{u3ul@0?Q^-5~NyXxVyB_qj!eKUFwNw2`XEV0Z;ngiwGq8Pbp{Rph> zTdqx%rK*Sdj&lbShy%F7FU7)0-TA?w4Wvx1xZxwN+2$iSZ~gk15KAu;&P_GjE$`l! z73*W*Iz9je4vua07TVS;+_xOe<?|suL#jcAF@P82Ne;&PuGPbeB}ArshaGc}m{@*o zx#NPoV2&(^Z?cVT#Ou#m)Q{ePaObXCV!zbKRUA0bm*>FO6jT_1MJyg6UECiSC7MWG zT133x1Zk3TkS4*WQrfsC4H2u^`J6($t<QEIgV$Th;I}VHt<VTLkM8}<^=x8}i~$-B zD%1w&m2jHU_9!IO9X0ddY0Hg6Kv?CfWkgR1vF5g3TkizFH)P*`6=8Ti2x>XnGIhDG z($GsKcl{0@^990Xbnvk>m~??EN4ZH=zdlrr%~@k1wBtftq=xnW0$;u=#>BI0N&#)Y z*ESuh?WVn*&}?%gy@dec`q`--H0-o_<!*H)2Pv(ZlRd6;5(7G(=HO%(ntyp5gMhxw zZQS5?cZal2DGb7uzIP{#8^8wELHbQ3WCdF_RyhHzX<Y{SETX(enT#kzgMV`5_;qHn z*aIfuQUs^93*^bm=R<gF!W^r^B+D1IzdM`ZuvNpjW8YK!=w&|7r;Ug41q<5&TQ!`v zMvm5>8~yWK6n&C2u52O3^etzh;63?<Fx2<ivE>dE&y!;+q@0|mMY_KPP%2nY#G;VO z$b*S*UZ{`?KeoP@xyLgU(etLtvU_m0ib_<Y-??b<Z~;PPlstN9-75PC>pK&yLOp4C zEMfMBg>S@S^tdW!Gg@1L>O;l7NvYg|pW3yYv_hg;7XU9=lHTUcS^7@J(9uHr9qa4b z6Dcu~WkSYUDkNVnFwqY$c{^|Q14H01N$XB=qmz|bIMHFdI0Kcgr~bU3GUTOv>VaZZ zZ^?(r-fK-Mj_Z5FbwbZg{gt;2M5qeM`Zj@0-2C{$Ow<UxhBC-~&42$(qVh{813rn3 zs)UXsdqcSdo}F2;<dlP<Ch79EI<FOUL9i<uWZXhAXYZ9~QF7fC+9J+6^mJJ^+0NC` z@mL=^{-366OD+i`wtaJ{!*-OS1x4I$wFb(xBaWZ)_mr~1AIo>5wl?$Y)(>l|+QdB2 z<#~b<I|Jy#OPDZnn1&$xFsPuvR!gr?bl<Wpy(W&Z2J4vzC<`r4+ocA-Hp(S?ZZ+fA zUzpO@nxDH9{z!+*u)H>d#uSv*3=-!Q-kHC4Dni1)q+@-S>$fzCPOsak|1vOO9!}i% zY{PPOg2%lbB%AENj4-VtCQkix+W>kp`7k*sZ@q+^uHS3!J%i86Yr?0>B3Wd$Y&~cJ ze)vs%*?dxhy^C|avLhic3C?Cqwi*CH@EtGUCh>WWMbwZuSEsjZ>hdekTy?k9xS#af z&?OrQ%`i=?_f|aKPKM=fEkI-CAn`vJ%#|Sq828t$36TdV;|?xu3&=XP^<Wqarj=}} zK*YH!Z|a+FUde5U*IWaRFrD}%LCJL+F4!{VwpYCZj1V#R{DPTD2zt}ebTV|mDJ-`A zYJ!u>?w9tA?K;d~uVL)Dvj1*x$W>>##mCrBNf9NMr*SZP4WeUc7~{E>_fz3)k*o<l zi%w8}>8v?9Z?$tUDj~y#Wpf$f(v3ecH4SPg)6E|B;KHLjTS4t$8e`|6js1Ez<G>GM zLRDRPbmM~PwOy(CsI8OE9y0$}9AD#31btoKY#;0uhmVE<JtVG!vc<ACDVjHbuF{Jz zICYt>{SX2i*8#m51i$zLL70r^CUQVC0Y8!iE52XO-2mqQ&trbw4EF0cArHYm^Sm%1 zIDhrugoHZ&r^$rK-$f9d#uA?Y4u41g4*!`<$n?(|2v7ep&v{Y5qu;@u41p>64{_$V zVdXCY<v$TjehVo7OeWOyA4H!2C5dQbOfpqNBA4NufOl6=hzh0v0;>t_A^iSL@ITx7 zFYN%j2Kf1BGU4erEB;d^|El31$^Xxo{4W*%+wS{^OUHl7^RLAHyJQszP5GGb`7q!W z1r=8OZt%Y?_;*WwhyNh?*YNor{rlDbvcCVw%KuYdollDY3+(=9v;U<d|0}Ni-<psA zX_x&A?f-TV{>@lk4-o8Z$&uszuR$URDijj}+@TP<4Marv{r61#Ju!cW|D2%b*?vb8 zEaV8U{x=i!Uy}*%{4U}@E%{#;4#G>nSBC!&7MB5!Z3I#QdF<_ce(NCt)3Me#pIv{D z64VKSAL@L<fjNLQsh$3d#@FAPUjJ*#WxtimeusbSO8qy=W&fL1{jHkyFRE$(Kf%9% z#b0WCzd%6(PZHcpwXa)_F#^_a6_e0i5Q&T8+VXL*z4D~?U)O%R)uX>PYzaylecQ6q z>)04dpGynN+B*r7S9H2`)xD^&{1x&e7Y$_2`Ws!*7|^TGHN;p8eXvZG&D|-{HwX15 zep<k&Z<E|$Wze0LcG<a2F;h4jWlJT0Ob39sH-#)l7g^s)2aHC%Wi{1p`4RWNu+G_j zuHD_3*a}&u`R(Uwe7?GOZ;6fpGMYhTHGw^rtiD{FSLf_g4j)y)g~{({$))hDmA7M} zpPS5M0I1yMHg7JhUx~uLD7Emr-Rrw5)l8LD`@xoVSk(UWcc=k55;aP&9Q^^H@<+|R z>@G9j<~2<J;y_6(AwWql#c(qij(+J~d!2yj4b-|0e7`X5bn@VQ8!{rox|3|cm*@Ic z8J#<x{dx&8cCoGO*te@g&;pUm{C%Ry5)*eHS<uxEz=;eo1%>oU{R>rw?DJ2xCBDYY z97APV$_I^<kg?(Li(q0!8u_u9xUY|Nxu?-*HVa)#Qm7)zm=|3-hF)wN8C$iJS+F=) zupZkF1a&~mkCpduenpU<$4BRi0_AZ|!aCx{DTZ+Ol<B%iJ!siJcF^MVWjuC?Mvso^ z>|F;y03pjc<1cunFWD@(-c*8J4-1-1GTq(D3j%gzgik*3A6WALG?A76^UsIGt3PQ4 zy0DFT=V?GZkOq7Z{gvm7ZGvoes(C+D1RYvCi=Iald?XP{c;!Dd9LU|LG|;CWVGp>r z=$7m?n(ZQaO!lxheCyWk)`l%5RF=LYOgB0qjXD$1Au6n?ThI&SOEWyRgHDMdT~u;n zJYK_E3g|woa!d#0@>@=ZMG7%Q&(V-it4vkwig_H^%ujr+oRwH57x6qjc>uA>GAlmm zQ9rr3JUHf{V$6?C$+!>02pzFi>v!9=2CyT221nlC>eE<Xurv{QLHTCd#izq1L7{OL zB+(du26OG$$^1k~1qGjGX2M!#?4aAd{oYE8OfT*t>ldqN{kdNHJT9KuH-x-!vc3*M z2PUU@El3BB_Se-7h=wt8QQu4c%x}!`6a&3e_WhgxiHi+i<FjQya{;DrE+<{?Z$31f zK4kQ6Q-$y&Ebu)R!<3T+lN-`aRzAD=mwdX$Fv3w(DaaZtZ|79pj`QY}f|b+FR!|SJ zT%Zgw<1-)GsG=7-uvKTn(KRDva_oxk*3b$5PIS5*cl5}hymFw55#_WM!Ik|~9iP*m zajn}WlS;3_CNt)M64^8+y;&Alzv1C$1lIFrv&DL8%9rhE=%sXoSHxZjOnh7^73X$8 zx{;-W&q}+_;8DOsv*{+gqdxp&pOy~v3dM-`k0`jGAoCMiwHUhbS@%IpvHhR3e_%_G zCMCP=Y4rtXas;C=7XgQGW4<QcjTT(Q76+yDevMaiIuxyL&(ObF0XIYlted>%5d3_g z_#$o$^`T+Vr)FG#H5DF%e33lE_H^GsGFh5S+?rc0vn4Y4fJ|N`J53$!CX}<dGA2$- zYri9MVo{Pk{-Ke&Y%OosT3AV`F?aZ^;Q5+0Q|0xsnd2gel6>!IW5Bg+`v%9g8N{c+ z{Kp)P!a2(eV<-2MTb#w~H$1<1%N?!BL<s;FAGX#jZ9&6&-W1D=%!=_ASL|EgB2P86 za^nytM-G?l%-`JLtU3GZ#>;tBycF^(zs0%%@^0fwb)P`aZ5oZk)3MDmqGH;SR7R%j z2mMnv&I2>2^r8B>%L^-(3!DKJ)J<)5?LQU}Ev^o;QAbnjl&LAD>k6OI;R@ExyBTY# z>)whs(_>E0oTLNIL7M&FY+ulp3o`S@fOb*ZP^-nYb|V>Zo|?3I>PsCwCw=y{S-K%T z#TD8SCzoFBh<9kYiAYp;@3fQ4)_7NN^1#~AXpL;)(^?k$>mJDkT_zEnwh;~cS*U?| z2+J6v6!!gxVr;`YX+y+Jowc*|T_;fBK<D7pNjSepaZ~!*gK3^`8^v3KWSiV-lV4sn zRr$5qjtg0Ej@!vp$@RQA+`cRmIupI2cwZ+soTuF2sYmXZwNq7FBMYoij+@U*o+Gzw z#Z_y)yTtzFIHk**&(q*zu~t&WpI|o!%j;cL8#DsN9&z6y9~;+}ZgkJ}jAg`*q`<eu zm^`AtBuWUIA!?HYi2B7BX1O#c*`dn$@S%fcTH4;?w>EMq@}Bav<a3%Z(~sLXcxFv0 z1x}k&E0(3*X$3867xotX;B!J0cbCsz%h|TO<WL$-d^(o$yI|>L8sGi;jeCW`?FSv; zlt-2DpV~>FUN(@Xa8=_{Jak|~&Dyo7LBKm=uQ@gpjbyUIUDxugw{7B`qZ_kYHw-n3 zkOPV3#{~w%FN#t*dB>mC&eJyZ(P-p`Jms2NB`pd!=?X5Un|oBHeCEvq&MSaUiHdq> zD__)eH#tRcwHyd^qCc^*@JsLc3&_|u*nRc399O+L+mcYRHS2l8-G<WP&_**0(|_rJ zu;vBtBJQ_7Xbk*HH9r-TreZ#Sf3tR1bpgg!V6t$B)RI|<l8S|HdLWQwG~B|^Zt=r? zvE<YN@0UZATw!OUq$Y-ZdcB%3i80)$hL@X*k&Kbv5$QN@qS3~VGzdh}AhUQYN}rSB zy2RIKxNA#Ul6zM!A00b;4fTcS=b>O@5#4pSKh6dubo5qZ^^5V3mlbRD4WMct=)Qz- zs39|sZd*)A>Pv@j56q2?FxjYvU1#AEthg_?UT-hpvCL51sJKUtHk&5_BgbheoLP<E zp)bWp4DU8%FzqyWa=Fm18GAlyvPc@qr=_UjEzGE-J?NM;d9Y<}wXvpOnI_mWYH2^@ z4|nyd(WADD=vVCXaBmevW#+<qsyT|JV65_X$<s}?GSVeAT6vrIu6mjb=s~=%ve1^J zq5^&Uu0W}UV6K%`t*m=su2g1d*cGV0!`Bz5Z+(SHgLG3owqvYlG)z0Ax60Z`O3j+; zS|ph`D7**!8*cJR2+exGV%s*DZ1SEoPHDR&8t%B;TgxS;i9Vw#U;VyhXWTA!X9e|; z#dGbt@V@A)h6rB4r)Qrm@0K0VDX`TQ^Lk5ncRXvd{`%Oy|IuzNHqpdo2{0<5K0rrj z;3t^s<BNDHXp?5SzPq`>(??>pFNv~pVJQat?hBhl6xB2!R(~EBp|{I#Moz6A=F6JM z`vx!?mRs>lV6}{UXNA;7#W{&LM8A99y2Wp{F8aXhrH4z~RoLWXEBs#lli4ndAVcP2 zj)4L=wX?YHkT%rP{J8sDk0qbm#DkO>GutcQk~v3h?0cuk5)13TC6vZ;o^?~+$*cez z8+z0aDixQB{smsQj;xEJATJX5+B_{Jn`bU3e)z5K$Y|XNrJ1c}vPgpN=$(v66JX9{ zr!Ps}-y1bUm%KIrk@|d5uiiNYWa`To+nx@+kL%pdhqHRf)o%z5I}CKyW7R#MAG0A^ z1S?xfd}+s<f4p~W(z|YZD7}~S-Awo`3kBF}0G=6l$81EK;suD$ZJSGC4@}p15D~^v zaTjM&+qVB!v)HA>gPXf+cQMT~)yS^)Y<%Gh$&{d|*(rZVZ%;#A`QAdpr&qoB42OaL z!PHmBMcG7cKZ<~~2uOoSN+aDO-5@0`AT8aoATHgFG}5)8bR*pzOE)at3oJ`~x6kvw z-}n9aXMfzx+;e7!Gjp!%%yriM67Yz<d>!xX4+B0pjCIy3FE3hC^LJfw*v>8{Ty5>+ z_Vz225|o_uJ#iWj?Z?q!7QJ)3k86k#wQoFjcxgRXJTy%&JrmvU*S^H*`c^usvEt&2 zc%~41%lWl1d8g-qPq3ub3+}6%m!$VDp}@$oJzse*hl;(_NZEYKKV#AoRM+v3H%Im) zfDSy7bwYYY<Cgx2SX&8L&jcoAtz}OYGU=ahTWVHyc{%BBS0jA7Wwx=vUG(;okm0ug z54A4g1QB@AbulO?4eEi%KZ@*Q2oV;e+3CC3;kc}dXa==;%6xTx9ZlgTtUbBY=oU9P zq6(8}KOiuPBL6|`p$jY5*Elj3(hg>mYV=@ZJZ{t?$F&j2RlhwDyHkp{WN4iK8DZ3X z=`$c^(kp#gRExSGfx_v?$%$LKxRt;E!bmj2(XL?7Qo(PU$jNOS+P<2$c|bH1F?;Ms z{!zdR%nl0yKfTWha2Z!TkOcYm7rT$gS4W@=_N|eR5b@5?cs%qO{q&}E4j$ZQwzH5G zmP412G`8uGhzfZeY~FOPOe)0j5@Bs~>tZ?<WzVG*`{J=AD8=hEAGx^5a5e3<!@@7V znaWjV?R6`YNW9wQ1YZis)YqXKCbvu9|Cu4O6$Bn^KC~8zoEYJKfot;>EeN^Oa^T{m zyZp+W(V_3#Xj+$J0m1%yd86nzTr5LS$ty~poIKdbP%OW)%GnRG23csJWR`+}b<M|Z zP0s8hHygp?u;@EsbeSL<WA&ND)#fCZ?ZY^`x8$1^qrXSgHB`!ZoYh>2-6;rjqI<!? zqw_8>gg~(`_|jXc6mT7OdfYRDsl8@~G!E=349#cxM(E4w+2{_O`ya|s(cwAx-e@Ic zTGqHw6jMEI&CRDhA;>tCx^3p{#<JtpNuO4V=)EM^JTqCZFc#+iW)Qd(eJ`zR$f2wr zkPAKK7WZy2Kk+#Doq(%1MkDOt1J7G9XOjL#SpzLqvRxJ|j!~|V;yn>A2CZhDy$z{c zVd3A)30o|vM~VPy8AiTs*5tFkPF^bmiJvUZwLy^-(`7Jj;H+jh7IA$^@#~6W+Uh16 z@%x!GBL2rb;|bE|OTJ=K?;o)f!e8pZwCo4>qAIkKqW&!Z;L!TZ)GD^>QJze&bX>Va zQvINi>N)yMCG$S(3vT<vkfRoNwV86>1W)S#_#X)(?gRrNVMvNLE;f`Mlct`3bCh$; zR7aS1-*#2v-p2WZ`b>41Oe5hLjxD~JU+-)+DiIZhX5q!OGXK+`woib(%p&c`-4ZR% z+Jghb+@Lp3DCpOqnQHK@dn$mEJPn`D-s+MHc`sOe$sPj^#O^+TQ%Q=S`|lJY3kDCZ z@(XuzI^*fo2buHHn6MJP>6Olxh$jSy*rdoB-nylPXO)6NE><NJxwT{B_Z@lhNZ);a z=uHH|sI6CnL@vH$c+B-L^x?7^AvJE(ogkcYYE4AW(tPUCMj;uk*!HG%oww7bvzmB% zM)lCIwZkh?pfcHWK8<Ha_5}|9!kX-|mAbYUjRID>JCjd7!t9~Rt!71)%T8;DGwDIj zaSSe-K#=wA_M2&Dz77&1sDDL4F@5)3r0XolXY45K@t55<9?h(!&*vZMbv`($BV@L7 z&N=57Sa(<{F@HlfrU_?$6InXRFBfdQ9j7XT)q@qxUM))b{$BfarT1M-a2Jxvt%o-H zb^kYb5dJE$oxa=hQcufst1MyQib0j$wPa}OHRbdw1MFS$<^K9skZ2bX3vLZHAIvk( zk3}@S&H0l2$+TJ}g{Ea-t3g%X{V&~+8sZpW(#c+gm%g|2##!8(>EsJ=QuC^i?2ojo z2f3@Q3svY1boG50tk8Myf-<oMJy7YlBLp%nwS;rzxU)0-mk}&I1*&=?rlZGztOZzQ z`?Wu%CRwd1j|B26i-yKXxY*!jM_-izPOrrFo1Dp$XC(~5R~+aitwHX3-fiz*h@(bP z*Y#g??FWEwm$!JRk6Bn2oBgX4S+rh>^L^^#JH=%d&(Vkqj<3L$k+zBQ`zs*`KX$r{ zg4_!!ZVp@6Uzi;>#$0S{tH{ns3Y}2a47yKfKDb}IOPi54=Kl1kO<kIWS{vXpr?8*< ztp##)B_6fvj*`ddA8DNhe}NJ^K`*!FjL~_g;u!c*Ds8w2j#djqeDYk>8t(;E6Sh`` zR^K6rtN!h#KaRSNMA=u9khuaKci$snN}Ap8@Rq$^o4I_E6H+OV%d-&?)Q466AY9zX zj2=$#Q^?q&)UF@O1b7z{*Pv1v%Am3NeOp~+W83MW&Z5TAEPh<Qf`=pE_<3G&K;$RN ze_1Ni>hrd($wLiHMcYoPIbjVu`*j1>^wMuYF?0_Nat@D=D8(dC-E2AARe_X&&}(<> z)2D|*yv_z!#74G_$m76+5yW%NWd$F%niQu8BPcyJ@>W14&!wAZ^g1U5;|z=f>(~K- zg@v+J<<a4pUh}FHZ5E)DY-Y$R`Pod>l(e=#<+LP0e9DN+-pS=*&LA($QSBSr_kHHg zw$C-QI`>9b$G|<`>uq#Eg^jhH-R?vYRxo-rmDX&j5?TJUE$Yk1a)gCDWb`U8*&<n6 zlo~y$Y?9<s?G~t9+-2H;ttCIZ6F7tPO(3$aaBb$g&|a+9)nJ#_vb)~oxHwEmzC0L1 z9^}lIg`ksa>2kEUnQ51;sby1W>ShgiqRQEJgyolr8`?DBmWou%7iHM3{EE>~M|N)M zWp=3NUG0!RkG(S0oXxE<pLBpWIjS{E@41fL&TJi99;(c=2M<y9dY7@3=v&M0FncjK zRYoM1mfGwZ!;<*(0Hi`o<6M+zrLy6-d6h3MkjzGg8~*g<BSy>|4*IBp&TvN!(X&yp zHkZvyE=j$*nHPks&<GtjBTRU#B_rk7?_!Re?I4&3d$yQs7rjQkYLXVR_~)QjJSqou z>v~|*Xf=Rky?Lu0Z+N8WVhHH4SerRM%A?mh%mDJ4Ghh+qSP~&rh@);Ek9^0EbaDny zH;$oE*5im8QucPz7g2m>984m<c>$FmqI5Q43n>@#RrJ$V(~Ym@Fv;h9O1FFAN9}sq zBT-ha6OT4j4O%77a%C#Y|0o*C!9nY`BDZ*G!C`AS!;PNgQ`s!5l(tkD<&Ib1WT|LW zTBN(U(n?%pL73cZMEWYqcF*K0vgI!CRO^VxEZw=|Y|sbhpJjr4(>@PbO?TVQafW_P z?>9Oa)sMXW*6QF~cOXAUuI>^aZPW@ohqH>b8W1Yfdllb8G_~xe8F92UXRKEEhWWmT z+xVT&e|MfCf?IXI&~<NyjIz$8x4u}qNH^~zyr>Dhrb=5jZU_px_ox@E+|2n0M@_Pt zZ!FYnBtj_YiK|*lfNXT`ps0RWkCk4KK#@!7s;wuIbznijXi{wzZCc;unqF@6`iQvA zo~_G(f50<eGgGkG^cAF9GYcf#9`z}S@)J6dALo~H9Vn~jE290$*2YS6RyX@UXwD@h z$nBrsV^%LVX2vkLl3zoHCLfU9D8jzFWmDFA$fB!owHc?xGUK-?UDl_#rS`>z+Oit# zx)t^-`&Sk>gwpUt?E~zETX;-)MYY#iIB$4Tk#K3=sq4TaL(!q@G}0T>!NYK<t2jyf z6;(DR8{fnlm2u_eM@b@=_+Yym-8(~?dKWm67BU=iE0NnED|bS~oO`%9*y8yuSix&$ z!i{V7^7%Paj-8L6pyEu*S|xaa8c=kMu$vMazRVTQvd`XMJ<i-Yyq1uRcvr6+`cCL| zUE3cBP*|n6A8lHKI>qS5y2?k;c6$Oh7QB#+axDLR?~7xhQq(SIi{y}27dFEIlTbn= zED1eVrgc9oe`qv1l9-ABS!dL;L=H1jU#i8dAD1pY#IubBQd{DAcwu9+J{|{io$JBq zvb%2#y(T?-Bh!bN_sxUHlwS2NPMg><EP4t4D83Cl@O$NJ@9cpajU3!P*!wM3Jjy{I z^c3wnQZL*3Y(OHYES%m&qkX(WEJNWwf#gc&aa$G>GHvnH>XgCz#71wh3NZn?W${m6 z@N>mvak=}&W9=`KHM`&SAXI$wW6$b5_X+5>ofe|Zco!W*BKG;Aur(ER+h|2ht9==i z1+`{tJUfUE1OUJO2z)G2uKVW5jCRj4#CObWm^JFGL|HfeA(~M0NMLjVm08ir2m}?~ zEwXJ;IIG1~YWO`uX}-w@?dr#yniqH>J<psWvb2qfgZG|l#s5HNtl64=G`TB9dIknr zoX(um3|$+$-jQ64No2NrRb6pp36?1Gd(GRLNK=@=QvgIR!`18ksv4!{`~XClT)x_i z_zRU>8ucRmhQ3prj6R26$PZno0mflSh&^?G8*`g%{tZUmNq^wn77t8gxyenfZ%^fi zz#R&VzkfC(7$UAg5z4@5Ag5}t&(@;e793$b2Dhip9IpQefX5`dl6j_lmb$(`Rc6$! z(}f!<(e6Ta1K3}<bz5lm!!;fA%8f)eDMrbBv~kP7beWaQ^?1u{t-(v89DFc%78BtS z(H2fxDcf7XLh<IGZ)nk)5hKNu0ssT-7XCREZBr+@FnjaGlYe-u6viNks?7O$x&NV* z*Tl~Q=@P2r{)Z3y!@;@-q%xJ=yVU`_)nBIUkBV1E367~&<}dBv$a6skfRp=6Fx7sz zTBtmf?oZNMNedZU)cDi!<Uew(m<>IN`JDpG8N=a#8S~5ki2wITPV@+J*(dHPHmAUg zXIYBz{_=eP%SGz7&wK6Oj9Xvurl$S+=-Dw)4TBrKcD!BzJpmING-Y*3{Jq`}px|0u z)(`Jme`Y}1_E}m!Z(eDF*R!svL_UlBOO*qXe=f<D*L@N$_S;w_LRP`z={nXB3gY&_ zQB9ydFuw67m+@}5^dLM0Qr0l&h|o9j;xB;+n55T?%k1j^knO%cDeD$Z^>(-emiU(@ z1W@wXT(Asw>h8Jq_h3B*ML}EOx8t8F6X!NfR6ZsF!WP%mU%rr!$_s%;>v0z2y`?Tt z%nG|#TeSX!{Z$)~lf=MXh^25noo@8b7Ic>B%=GEW5dQD-KMt=V-&cGCjfC-&-sc>1 zO(&r%SkKPSu~4y%9GSU?LLe_~qM2pCH*sHvApW-vT`a=Mtt#M~(2K)Vlz&smDQd(l zR?jp#yIhq6AL&}&d&XB>KmCcW>De)pA<|0x{F8zL&|$29QSsozdt<!yi)DUf9u-(b zsF+hcj8FM5HwbjGQzo%_NuhG1s^#{MO4Bo{11oUMW8Ol-=5eB~OcouKcfn80Zd{~G z01W*Zkj929WV9;LhsANKmOhXG-r4$Z#!qRC1dGoOc&YoaHf1UGKd><V<*I;5yagau zI>rRt1)zpUrAN5tLj-5SUV;M}7I*TfL4RQn!3R0oPyhkOUv5T4^|0kPKaf`Jn%_@s za6jt$zJNy(7jM4K3NRX0V1O(L{F`RSkbiRBHZlmj;G@IGzvPgo$qBEi2a4B<mgi^9 zVo&i~(^-|QNua>_-!|)PPn^{HK3sHu(=qw>7Lxtq16dnb26rxP@sy$lKrq>1_yAQz z{vC{|v4^sqgDZCL{)tw!ReLB(<L%G}?d|AtPs~?fj8QPlvm|={Nq0IW^84*e5CU#l z=JiT7tp&{2;&rx7L_{sy`)pi-xZ=LiDQmf$H~TCn<i+GxLak}&rp@EkmS#l|Fni*- z3$I~4SP9`z>2o?+=}l%u{?d2=>n6Z-7OUKh`)p7mD0-#WXZbG!3Q(;;LT)r?<i}mt zujA#*RhF}pwI~cDuVft2q}~U?lLO;`75uO4$68KplCI(`nme<qB%^76w~KBHIoyr- z-^<#GKt7`|m&V4K$~NbCg5?;0uSG_?i!%pab7fh6r^qeA0f7ZPG}2~XZ1`*==Soyx zI-0WjYu^AlebR$NrkVTxu)N`$Hc%_X#V5_<u1-?vZetmSH8|oM=u*}0Oq*VN^q|sx z`sCtcG}+fLUJ|`+%2R#VkHw1DJEM~Lvv24IyRu)c)cPF#_z?h5CZ!7tt@F}JSyz{z z6qdGrQ*Mbv;c#}q;s40~b@Wxj{M*U~*VR!rr|C@y&GL7OY|<sjb_$A*l2MxLX}Als z{dP|`Q(qi5madcf$w^|C-oogVYFg*C;E7P0@^l(jQh)#)Q9|3M1_iN>3AfnD$Q6S; z7Tg~#?unqr26n-8LW2*<FiKUU8@v3AG1S@<%6Bx@9?3&qEMvlPFNKwa+6|2#2WMlW zVM#th6)+FrlI3zy_7K0hRA=FR3JQPE{M|82ObtEk@0NC6hjG+moWd0`n+?=rzRuGz zXB%8-_gt7$?M^nU+is@HeVFu+z00y+NVnc-wlCaM=(D~quU{rF^1XDO(3w2{K0MuH zKLXDa`#r@^(a*Wyi@;>{^Za{~kj(Y2e_qG`i)J9j%~%(&;sdaF3Vc^A>Gt>5j19dX zTMj<c+VzSFS$VDe4(jsZ=l9fcjEPMZzWW63c6LH;^p97dkzeUm28uRn=dsvKAhIoS zLA0OzX?-du^xWPzpwq$mZl}`RAP`i>+1+-Q!>HoGOz4oCyIWsiF_pv$g+KMmhWac{ zy|Guhf+`!y+D)Ghx?NLgQO<^KTJ4@NLhkpO?E;$|2Tp&9M;zzSeD?$XAirPT8~v%= zKvU7K&e{i4$FX9!)KTrP14?8C%R4{{f24S+OH2i;K%41?kDc4K^h*9W;o^>C#SrhI zyI2(yp~YEvtGajrv974F6(TCL8s26l!?t>OtvMIJZW~Sf>E6Dnc0Fe{H_}eVSSDTR z`nYu?Uj^yNrKorteqube;>nGxSENJp9XxCLlsCBQCvEvkqxZ#V?_wm@^$6*L5bHwl z<sx*}|HaXrY(Q}k5_3kUjN7(dd!;_`IGl66{+#D0US85P#=2wBL)lb#xtQH2cT<NR zQKMZRO!7IiJ6A1_!lMglzWybJyW()lV0zgpSgc8M__BiwMc;qETKZQsSo;-)u7Hvk z-mm+;(DjMUAgXAq-^Lxw|M8}%ERV?--}*C!I%Pqm^~)m}3f!~Tv3P~1v|ZieFn9R% zIvc~G`ASGU<2>0n7o>hj7`lN|`IgvdbV7m)5ByxoR~4~VMx-G${n5WPBL5aBRrj)v z#SA%J{91Hf<CA9RdMoXbvh<BU^%d!=252@7RW@p&>{8H&e?7E>eQ~P%B5~{BSXtD6 z?6Pg7b|HTHx$Tfdl*j4=k@{YA9&~)mNn2<)$Y2i-<K7NJ+lNafUI)G;nsPvlYR9Gv z$yh&LMZ{E#4z)T(<E7S04`sL5G|AxVc{1@0dQBvdeQQMw5O>82hF}`D-865Ce=VCg z$kT!pD}O2*Xy)NJHc9pwD`BTy5wglO3Ie1Yn!OIHv#|dmI;{S+YouX4vC|9IHd+<i z#X9pcE&7?qpI?$aH%~Rr*wZU_UH6x$IUbUvXb!D8q7-D@K27r3-e**{mM73hBWH8@ zn0ioyY022VaZfzMY+&8!W`8}nt4=<1?Z0iPyUYC}Ve3|)>TV^;On!=?uhij5a!tVz zxBxdjzpIoVqqVfG9mC0f*cQxhs7)0$$RZD>?QU!J61Qv+VX4+Te|Pmzb#3t5-{I^> zvn+#$i&%)A;1{?F)bdxSQBlF2ucp{|4*(96v$=ipGEolQ&@Npz^mfy@cE2JH<Pb2R z$kC{b{S|<<<BpAMM<wL6-ceSkTEaRYoEd)_fvmpi$7_~exD`%NVWCO|d=pSp-sh}t zncK;&^Hk^PKC>Ec=dH1u=e&TE&j<Z60bl5L1C`zjio-+Idy9Fls7-IvKGhJE`i&^W za%Gi~YU+96UB9V*@Hy5;-Ndt@7M0OuJgjJ8XC0^nI(C|n!p$HLUUuEbdvm9~Wmh}I zsKe;qjgcWvTTvbQWyBUO1;7N2Y#2}RI;w3yq>|&=Al$qd_Xd1+yS*y#nt{w(81CNN zhnLT7+t(6%{z&w(lQP~p6GV48%XSgB4Oz}|EW6KVfM@r#LV-Og)1xiYK5c)VVWZh- zwU2%NSHYo)*ObkK1%;+lE#|HBg3PkzkwWT)o%D`kSrMCPj__;cHVWIDC{titc@$gM zNkEw-?9ExUHeq$d2ed3I5Zxor79%>N!rqrRU}-X{S^LYuuP&6mVl6!y;W4aMn*s(V z7gwvi7ty)*+!@diKBvB=W98Yy+C1Z0csy<l*|=h5GY_Nr`N0CernpKgtI4{9D<=Q0 zpT?)eqi#3jbi?D7vKp72#lZ+k<O#vpC+xaD<-!QOKKRVklwR20a%D@)+p5;;6#gB{ z5or&?Oq*jiWw%RgDi5Ygl>KA}2Wj-pTfzJC`(N|kU{cLxpLOGkekOR?9@?nHHizG? z?Zi;@E)G#~A~Gz!mORe0LbG1fWB<&?ak}5IF)2&0tyg>I?BA)Ql;}x|_P8P!S1jIk zT_1!qz%q@5igS%EKO3a2e;ykoAIN)?37riPH%IptY4$zA$gGyV_dGoA@PcGgirh0$ zGrvQICH+Ny`S+_Q8YPTYI7gjQK(%9~8ciYjm#(HtvCTCIwTPTogT(#yUyhzs1v~7u zT_zrYuWaSPok!6>T6}uOUmvZ~OybNOWHX@^8S&<i-5j#8D%68YWeBa@P3Mj2qm*J9 zcN-KWUsE@vJF9Ijr)-}b$@@6FrF+{ClJw~av>=0Rn{Z1-pG$1oZkwu9q1T5UrZ{(< zVp+=Tb8^ZJ@q(<H0GJsOakBn=j_*;^;LDHEO8o6mUkJOU1|atGuQPWSl8v!?^OS4} z^x5J{i>xM$C2pzmV&?}XRrc$_>m7H1vzwitRp3`S*)L7ZGFsvKR9V^iT4nWo_hXeH zTrcVEvO_gA1nmI+a<4n2-ZPv>d^sXIc8L;2NZ7#AY6G=QTNPqA+amoHrDC~Ya>}<A zzo3m*Gbqq{xE5N+#NRP#b1Ea-3*u|?G`Q}*s%XtN>BY6FK~8pfh<mVuj>&slY#wWp z39gqWoz#vx+Vm(_*zdb1L(t&{ehZt#?3T9K(PSD+zSd0uT)P)RJ<D|#2^)b5K4(UU zI|^Y_)QndC-QABaN%$JW0EJ<Uq}i{75-eknb3;JfaxLFzo!g~A#yjVuY4ej>-=daq zXQf|Zv6h$K<SJvGHrSt#f%v`C@<Jy{-Um=)mPI8M)fSjtu3jdFy}-*;k^3bwSka}- zlDhx5=iL<We?snIO(o`XPs(jxY0u!lYB;r?QLo>Jqh*7#e>^!jtd%J;Tz>s9UFOjZ zCLef3bYWI_9A)f`KO?Gt?Xzz4Pt`%q-tBsR;^lWezhP7R>uu@~GSJ+PQ2%ybk<R7& z109Xi(*kFY(<3_qpR}4!#4v#S8E7vge~#W-Ybh7%BK39YEkQbm=!rJvvs$pX0Oc*N z-t~W9Gnz`;6ydWPyBG-|;K<_z78JtS!F5r4YjRS|gsdKCYX7Y!h0+hs%hoFsqr~X= ztIlRzKE$p4adhzn&6ihjWjQXnAu*VcukY7$u9Ol1_Oo?1D!kgE$c5xqOS;3+{^}q5 zbUyb0*l&M7ZVF5G{5%5^+3<niz6J@wOBohi`bQUcR5FH8T<wUtT+OZDwCi&uI<w~3 zEhvwTG0+`}c$C#0pY6CCoAeeskzRd1-fgr?I`5g3xNt385=vT)5>?wZp2GPCR*-%D zrMFJsg3tKY?(iIJ(01P7&X?{n4s#-UBVcu8aa9FZ?vQ}78mnsX9pp@68Tb$Sv{`wJ zQmGURkPu&_X@?2_RBM4e4E^}&U}FcF_$)!~tvl>d>=`g*x2Tu+pdp?T@7J-sfNj{K zTd&avtZA_gs0U+1a(Ip4RFkB4(p^CXCFD&+{9r_gTuHhqb?Hu*tg&jVo`(nyH+)h8 zr_XIy*ec2WXn2Q4GPqpGyX)mHf*LUFc!@V=g+nx(Qu9H!8c+UmEC{L$^+!(<?>Kam zsf_zkAyWA`2y^{wh24&(g?1kCc)R~J+(v~;dEOSCSGWxjI~iFeVu4d(h!4uf=q6Vk zNL@vV^x(N<LU=P+%yw{1?0*Cxvt8bn+H`l%q%7n7dJP)d$XZ|iuJj7y`iL#-4Qr~4 z)lB5rho&ZWeomlBm%=yg0M)Z^OjK&&c$nMAA1B0XdRcG%_76(H3l68r<gzJBB$HJT zMRVj&4foaOTR1EF=(So`yihB{@Mq|g63QYY{7&q^K_$Rd4SJS2HY0KHz%1oB4iw8< zM0Id|D0C9u9aLVl?gMV|i?IFaj*^{ewBkIHq&>fU{nK%{@M57L$+b@V7#(gOT~t%D zvRB1Z!S!B4!45799V1<p(WMjdp8wq(0E*~qWgZYtNy~9A{FQ80-#Ft{Yvicnlj1Gf zlcrosUhVm{N0Kg+_SyvRA>-Ej5GXc)p=F&Ae0e-?@EdpPn{fsD;Xq5{a(k_djN%C_ z9_e^#fE-F1Q&pJSZ1T}+R?ea>)WRKZE<9)lr|E`kw<0FjJc(hr0H^{kd(k0bOS2AU z<S~6hDeN<m2l&gs_V|+W@&_tjR~<-56wp)PSgalxxo-<*F`z?)-o)@-@GvXF9>~TU zACr<<7Pny&g$ygVr?1AYbH7gw$;uJc@!E7MdYD?q6ngf~B)={x%_EhAL0h$MJoXP- z!GnEpD2}>m$Eii8nZ{GCf|aG?q4ufat98V7j!+C_+ZdFYoW*alzH*<#Yv1&Q1dkbX zrfg*C%0c)9xKr!$cL}}bM)Yk*X}xbJ<2l|)I^Z!qq0m&n>Th09T3I$%7VSu}&20Dz zS!&-{mezQ9Us<R9;Ibmx&5tjQ>QH^J1-P=!C^`0<N~f4a_f@|Og0Ti$>8B<1b3$ST zj5lOYw^mCWIB{*nE1cbwR$n=tE=v&M@eGgb@d<fTrMI?Z1b82(8I(-|Z|mSXD^k4w z+62J+jqc@t`6G9}7r1)ue}gU@wZN*Qs2K?lDiIZ|+1AS4vCH9QGM0)Hm~@mk2XPn| z&70&)YGmMnQgrf(U6!qE*_AS@XNhr?LA8dww^Z@(*qm&cb$AQ9@ybS{Vd(W{j@Uu9 zn}=}&!qEN7v}qOE<C70*zHHK9s5x%%%eoET$_e*CX!CaBp=(`A+%_auRCW5V@>(j6 z6xZ2W=8GJ6rjx;ql2oQ_n|3HQA4@{{p`?v6AkXdv#UzH2$rkWz_21Qil7LK(uSAP- z@CDQX5k&}_WrBjDx!YFSK?P?9=>Au68|z>l5L*_rkIt(CHsk~E{Zr8-X#Ldz#l9Dg z=shyy;c2j5$ktLC$6^?ZugY>+`@T}r_D1x)BHmm6x|^joQPL*Gut5-GxNtF^!&&)i zhzI4YA-RU1SVcwHW@HVsR=O_v<{@Q<Uj4^2s(GjLc(-W%v_d+B&;CIwc!z4qPwBBi z0i@%nJq9<wCgKJnc0DKU_7Z(86*}eny?7v3hZR@XTrho3{KIM#VF8zN#SAG0uZ=_7 zqcRkzML6?4s*sOaAp!UXxp#*Io6kqm3y3SrH~-pxz!U*}oa}#g*^J@jak2~;58svV z;+I^dxYY<A1<C8mtNfS~_U^)P3nMkbJPphLWK9@%MmehCV4EJQGF5NRRQM&CIKxo9 zq>{5>bHx7M73;EC5e+RUGQAnuq6oq_d37|g6(qTHGzM)nUwCjmEX=E@H3X7oH3)jg zK0%sDSg3SrF??uk{Hknu2^L8n^Q~zEy<U=yJqs#n7XK=As28Cs_(iQ&rVh`6YsPT8 z&f}z~1a>}+)Yo<Pf_+!%jfw0LJ}Wbhxf7A{nJeC?SZ#-mKcLO%-;2WGLlSn6D<ZBN zBK6KmrE%`wVEJKj*DI52qOlS?g6t5+#$>K4)#FtDT!)Cy5HV}SZV;~nc_AEQ8`ZKd z`hflcgWrP?{`I7vqsQs@)vF&rANCW8Ggcd|42C`%HlIWG0G%VR{{NwkL<XJ6`@+Od znh>caE+LnRe)BdERB94*$YxpWr1D7Q&>Ml`82njP|BLEgZsE3V;#H%jWXZ*u1HRa7 zc8vYmHcJ*Cq8M#aSgC)rzKaHdP_0f<Tmt6z8cg+B`1r}|vvJxIR|#p<RQBa`;bwx3 zI%*?30q>dkHs_jBro1Zbs2joKl=H!*X|8ocL)(u+t0Xg%g6h*FdaS8sTNp2{$UpWu z6ue_PaZMB-&-s<TqHlE2&ak`z)mIWMo_HYhsOZlNj7mm}?R!m@?0bDN4HZXsdyKAm zsItT=F>mq-yA<eb-Y_*fZiAGZWG}FEYG^=7iGK=spXujQ7Z@6!<W7(UJ(V}EoW7^A z8IVgZvMdpo651PmCEyo<bRk|%tB^(4!oJq@bJpzJL!KM*`7d`T3qeWY65~EKFPYFG zQ)RImangTeb6!$tX3hm_MM=J=4N=7p&zf|^sdNtUQ(I1U6();#SEn4hkDu>f6U07= zp<m@o^<&E&tZDG6%aQ@>`pp=3ap2$#R=aBnak0$By0iJjyq4K5km=Ce9eM-hQHX0! z{6s9o=%+1y!Mr4Xf|6HnrMYtfoP1ooM*4ST6iau3($)v~PU#-Gk$|9&r%knSQJbIO zZW7UbR9dzLNUg*%-s8Z{>m+BiP^`3mqNLu#(MIG@n^M%aV`AG-I0)fO$uuTh=h(1r z@mw^MMaAYJ4GydmAmM-){iRlWja#||fLP_P{FGtT14t&<4<~(|YZNuOl^@P;YgX7~ zWgXQ{TsDRgP+{peIm&cN((}zJBfIBG)#$liePV_T^x3nlYaex;Y3+dgdH@jgqXbYG z{}lWS;$~6g75%nXUji}C?o?l+Si^Y2wAqKR&S}6E=Xr@t)r5EMm6QbBYR5UXa5<bq zE;~1cw2rF&I(*avSdV*HtPUfw_j9p*0%1^B0QNnIWlT{&o3l(d|BhYX!+C2CA0z$B z!lq66MzZK*a?f>WqK|!deLlsE(RR<@Bh@TwDtbK6mB(aYQVA*5Sb;%N?|XL0ysd2e zz6h$`5H0G~G_)R&x4u}c2ks55Qx6z=_pahwJBR6P5BmZFkS7D>_YsyV`;*GYnQmFP z=E5rbyo~jEFz4kLWLqJfDfEcIz1o~5{T#^kZ^_|u0X*sr#VOv+oQ?0lyTl#c(cMA! zW$RtDnQv#CM;kJ%`rIteC*ggODaLrk;MsXCxw}E~3KK=g@qg&;_k^ASLWeejDaltD z7iG?t%iU#U@cfAaPPftK6%H}rk_a`e(gvx3HSSXYZmuP9nl4Y-9(Gjwn1YXmTSMOZ zE}d7zX<SJDA@hyN2URe^xM~~eFdf|oIdG@|<zj8WIIhCJMuu5)Yw3)FqndxUH8cRN z=DY6@hxeFa<JrnRdW|N)cZBk~SSzh*-}g$$A8pNM(bO@2HKAc)&jo<^OpDQTIL?Rn z%{W=VK#yDtOf>oHTNdZn%gV#RNqFEQ(q+#uh8qh5m+VwiTRS>hvHTI`eNY?<j~dXg z!g_%E&nD>yC$*2N8=s^G?bdw&h);{pUe#`5{lMEQ`vXo1J$c<Y&%coQGjzL*d5^oq z@#RnchumM+=C%hG&rg;L4FAf9Dm=$s_~EiGb38X6k<|=(cs$I+Fo;B6_qD607l2YS zS>lcsIF4%>r6R6CtMuw`@YOY|0;Q_x-l|ufAXTbP6x9P2?S~BgJW?MKqe|79+{%fI zaB=Evoys$w5s{1G>Xz(_`z)73OV+t6<e!836UP{-pK45B)Ce(2FCQa5A0k)DQXVH3 z&{rsh7B<^LKL8K^eUxd`!n~5@Gv{IS)q%FJcSi*zDO|KB$JF$UQp$<=Zy$u1LD=En zN6+gw;_K59!}gAs&zjuQDQn#q*$+Jf|ED8D(wbKtYo4QVQ?b7<gUl{bMwZs3b6?iK zx4RRL$=V2({;#7CXi0M8h0jm%<9F*}Q~|eF9g5n*qXq(_=0fPIvU7-lk^7xF<(ShS z1UT)Pl+AqBK71n7LerbGlK<QOe><W9=l(mi4?kli)c=n0??C>V`|k(BcTE5D;qT!8 z8)MK1wEu1V|F!AQ`G1Ys!4FqR2dm3R^md_^uOvm;r8*0SORueX$d(g*JuZ|~+7C=3 zqT4!g&X34Q38S#X$)7F1esE;8oPS1ZE1GBhQ_w?v4b3|K!O_E^xEh=l&=uI@bK={L z^Bp@}22DCIPGaKGtz8V?!n~)^abJ&BSS@fdAEW6;u7>zpm~4~lz!Be`;ENj1J0>!q z^M_!PX&#~Gf9mB4EY+ajT2UL6V<jf~bF6^px7>!>z6Wx>xBpZk$d7qfnl=4=-RXtR z3-VS=C8Y&kJti4yyB>V8`A{=IeB?#}*_KB1RhxENHrcg?n4JNA0B-?ISpLB-BsBD$ zU^Xpv+7sKGV+0$0KK*t=&-HU0I=aCy-)h%U@c$k9f31MA0j2}i{P#l(&IPRc+ueT; zu)~4B-_*hZ#{cg}G-=>3Cg6NuxQyjgL+e}}Pt5+bd6NoYJ7M6d3L`Jg%s~}4hfsNg zox^?6?*23vm1%Bg>UA=zEa$b2>KLMz6{_2PMJagYhGh0%3~R;A$}git`w%jHUkumE zKZ@$YjN(&v$wFF)*G+W2IuPYjsybs2!5J}Y=54Rxr>!s7;T$XtKPZV_-sJseLps<Y z7lWSBeF19aCG4VPjYVVNk=h>T=+q|lPO5s8<g|>&{GmmgTd?G3!^!>xe{<X0mb^~x zVxO!T+9nm|&L*dKb~fMBT7v(RW|K7&-l$rA<UqO$$RP&kOPlAW%H#*NF+5xxG&z3A zy`I2vic5}OatLe}|B^Ax!JhD}+S5T@JELBhYhf}P8TNTd6<e=y&p<+VlhQcW&(Bl% ztIP^iIfmolJxrQhLsgVe<HbMBBouR1lk-W}C5`0my%kI~KA}9YH2~{+!xox<XV#u9 zSsuX8ap+)KJ&S&GtCK0Z3xgY|yD7;#BD?*9qN=}p$`&M5{Je;XrV(>0@i`A?7DFBg zXA!l_ow|Nm?ps=Y=L@<;SUU2RZt_Le*EvpS4?M?9>wR=}?3ELVeXRTVedaUuQ%8j@ z%CO+kJW$@I%SHHL`ws~OdENfyCtc@jt9|ShVv}7FF*>e$(^`(-Ra+}(-KZ_CWOV~P z_`*dE4mMJ?U{h<GEAt8c+BzKlvn%b<ebmkQ)rKtfwcLcBmxp><t7|>IBBy_s5yt2* zRXkQas?Tc38M!gv_1Sc4I+O9L&Wi&Juf2%II?@KEutj4Xuav>~bmW^B!%Mp6_k3vJ z4_s+4d=?jGSC?7t8B$2ZR+Mnc?z{F=hmE{cmS&E-mhVl)a@uA#*r2weVOZQ&<`W3z zix86OwoJSDQDQAWQm|i3db9V6qa@du2am4PhP1gEx79KdT=6pnwxcMW6wkREBHUP} z6lnvZT>KpurS4N)wQHJIlw?O~@M*|UVFEFNC1vj~keEyj`nWPpa;eD2ac9>_NMMU^ z{M-1s=1D17qNlAB)<NovRielk;ivpQmFB1Lh4^fg0#Q%O?1(EAS<Wrfv)ICB@<tT` z5_yS7tjYHptWB70yk~rX&*<2%^NPag?M7(_qN>}_33K$T-s`I+Q_(-dG{|Fgd6Jsk zwf?WR9UR3wq(*nqCc+|LVZ34XD1g7%MZ4~6flr~T^1tvr<-!a<KZC=Tv-WlS92W5z zvn0f~>^xqI^wV5@-gF>s(mZu*upBNaNs*>Hr9M7168do3B4f-rF8HQ*ekSBvC~7dr zcFb|i>hRB(z~)ME@thBp_bVo{5ufwumEE>hl|p1NdO`C<P-06_$UV1Tzhd>KasK*P zYt(ns@6W(bKIaL_dr^14vs$Sgak)M13gDe}iOjR@mFy^608?VgEZnGFm<e7s@37|^ z{eqi776Y5JXbro-Zvx*;owB>9Up!;y>*>>Z=3*R04EgyRC&1%OMdU%x84cp=<hlJR zz?LYgMCS;vGaKsNoeNeS?BU*xBM;dS^dV;CJJGPKj`__ODy~2It81fA`wW_Gk9jP? zHCbpAQUd>0$~s5A4Po>od{4*mfeBkl+<6*5z~@_tzNHiYyGO~1F4@nUV}suRjQRf9 z9x&`&wKm~+IY;0t;vrHl4)z<^x&O16jX2mO6C-+h+Hybg$H(15`<EOV+lVR-j5h9% zmsviJM;?eYLkps{Y%FD0oY*I9_D2HdKuSS#hw0cqwtDsJid#myW5TgR-}Kmsklyq8 zWolZTa7h3O&o!ZkmI?XnIlYij{t7G6oVZE4V+C<1Y~YW1inyF#4=IdX(D1amLI|g# z_2c5Q=MlL!AsF*SFGG!GnJaK~?$?t_kQA`}v{wbOyG1i_H9`Y}d56N!ods!_L?!h_ zC$RO-T#a+20ku~7)1^ooltI^Te)_I2PNX<Fzn&xvE_}<|C+o#UXO|Q3uFU^<<A&)# zHTPmK#l3xkWZJD9%o62c->j#}&bi~qJfDk60bha^Fa%$k%5rR|VnlBK83AF6a|*t@ zQj%vQx2bG@`zYg|GM*!db2D<imZb`(n9X9vAIPCa*&!ntSFTZU46Q!j1cPmF)S1!) z3FwVEsS{h3FCjb9=9&IC6-u7pZfq2+w4`J;{b|G6QiMn@yONX{f=#c`g@hWzsr9S) z^nA9#yY(a++#d1x%i^?GOD{b$t8!U{TZYRjWC%L>Rvj8b<p$=ZahC$xX}C4UG_&*7 zudXHv4wo&Br~j!^v_*k?(yS=Mf}$CIE|=eC%9stKC&fy%f4;z^ya9=59}N?v?K}Y^ zh0W$H@lf<Z;02H6@Q`MMC{NgL(2Q(7i}<Up>?Jp*$7Rco)U1KaoWwkS%%H-TTE4yw z9Bum<7M!5%+K&^KMAXRl{-UAvBMS@-c+XqEhjIu1Ibx>_aZ(gy;UNgaJ$5jYorl12 zAmraAGG&Du_B!|?#qYj7$~f8#rjADNrm?TY_TtLFZ*i&r<6)>9-yTAZdP4NWt8z!a z?R>8SLFL`@=^@^5#)5qU{~~hxF5we||Kce&St^NWEQo#C3lfXFn$iyP^pzbXUHRm@ zosiLkg2;316b>H8<iERT1a@@85Ji<rUe03P9QqBqPX}6%^YuDXt*tMuJQ~yggpc1_ zvAt$;B*Ld=xo=q_#vo0!$AleS584<p;Au;L?+Ic?Maw&aX8Cd0Nb1If&S@Mp<o{`i zZ|%B566G@9NjQ4@OW38jJa~uimNU_SSH{v(JY}}FfK;71VM`HvLbPp^3@z&HD9dn` zgSMEo7io#c%=Y0nN2?1C)D?EM8Gl*{l~tOI7T)(ko2za6Lfffd_-m2{u~vdYwb#^2 zkCGmV(C+U>SZ<^vuw}Kd617*|sLcbfUxLN5v;TO!@#~?AyWkbyW<<=pXj?1YAv`ul znctWeB%%7yib~a&L40Gm+A&>PEvcD{Zw&9`^CUW3XVHdKT1yEp=)-lhCtF5-wl<)f z-PHAMh>cz@zv(+bMUSvS2;AY=ivQ_0QhJ`?uZ)jye|jyB<MS8>9E_mbMSC65rYH%# zc^<U}GdC$pT$>zP{2jU`6>pB?6;--#Lvf$@iJ}pC;UHZ>1;Qs%#<u-YO_w(3&+t>^ zAA+kw7xiDCf4Mew;DPnFLN5(tq_~O$9&@MY-&920!OORs=01C!ov8F7omRGsb_sfL z#&VvfuuKq;m)a*(u)5T~!dH43n7@!0{FV4ih|W>!3_lVIVd!XA|6RZ2X}Fay^iY3T zzkAqR*pZXn=;bBsOKDv5XFhMI0_k8LbTOwh#($r+TOIzxMQ^WGIiWG&8=3Jo5=$|o zyeHeSVccDCzCR~`M04x@<)b2@$AD)W6#A(<Rr~X&_ji5x;l{I4k`fKXq9IQz-ZF09 z3wjiFy}@gL;T5n6V#lwa0?wDNc{gY5FpOOEc&UG6qsqu0bx^wST8a;p5uw^g?2T*h zzm-_Y+<9X&@9@z5!tY+<f(~;+9$>RO=_i_U=dC~bjzPM@;C-*6<%)9TP$^{*Suvjm zrOrKv`FP)A;i4kd58veKV*jIc%O`R#n?p`N=O+Ji1#7yQJI~%1?jA#49n57TR;vbj z7m1VuB*a}VW;Y|)1(P^GJ_D~PW)|o?#=2~-Se%YAo8lp^VZ`%Lzw`CJ3F#5f5_4|9 zx8Pa7O}!&UicJEiQmKt|%Iq_zHTHvrcb53DFHg{ju1&niXI~5KsT9!hzm$AM#s05P zj>f|4#a*Wu7#+|NllP6PbT5UpwDy99<NEnwUdty#;_Kc)lq?n7HioN;awyzZ<7xUy zZXZ)B`exH}U&OXc1g?hqD`eIk+LU~Of^CTP9tJ?23$~^evv&thkmu*5*m{WHH$BzO z#4+1n3fQBg^WO5_eN>L>%HhBp<4O7IqSgL0Ey=h2s(x48@`PL7^Y;_1G)#j9_|c~O z7EzKs_S6Pc`%d&vd*|N;VVwQEI{qeNr*E$Gq^SU5J*(Aqk8;OPmC%B1AZl<`cRJri zZh5uyrMs`<n@DHecR`*F63si==IldT!^L_vFBh}eiZ8+_*x!wHg&{N~)1aM>6t@$M z8HX6ud*_o6*BlQ5rm}iB<l0NpA=D?u2T!k8Oa1<aLNde6!Sc=*jOR?-*)81@`gV*4 zwnNiMULBdLDUD68Vgc4oNdDZq9=-!z#%Gq)AWlQ2Z$JHtGzUl%HE72d%VGi=;9miM za^KicW(Z-@u*;J-_+FzPzK><T_#X50Mdgp~E`BUA1;=dK-?q_DA6c+(Q`75>jB6SU z>%DI;eynw0y2Pv`^Z(;rHS`bqC4XYhvDW<<b8b88!+F}zWA7M6xh!H1Z<6qK#!zw= zs~<76o*afCycE_ie~k49>}v1&ZGjN!*0uqN^->xTzAuetJd42lXGPwbKljrN=DJBV z4|R>Y$>r4&e+QRA_I1q1tBPc4MJa5{l;myMBt%R8ae(%ksXfTXUY5SzN8WpoCcYd_ z=&~(?GVr+a>;JmfWcw|IfmyEbUi^^;Z98U6p=!S8q$!CWI!UZkCRAd%1#9zutlg*@ zL*C|a!gj{>BD|ehFi}TO4`x1L>miT46F#dsA(M(@x`aQ_-wM1mbfptEgmyg!725ab z>^gMaaR=Q57|N@n*M5;u@Cz<o9lYx!t<lp`;lhm;LU8m*L_`Ojy|bgqCv0%GoBfS- zokfI6Xl*l%$cdLWcp$(Ylu3;lQ?ZNU;;x63jf(i&%_phRFRBV?i9e=e5BfWCUFh#u zA55|<m(li;Xo3AW9xq$sZ+C|Ln^Hwa)L#cvQYN^s0VLU&@r45wT{_;a7xv&{0e#xe z<*JFAyoNtnq(qt40Fl|x{hq&$gf@-ZJ8>(cCtF1C$n~{%u(qKK40TKjuAlly2R>&M z@N;Jv*D)KPER&xqTOeRvcB;M_^#P8zcZ~)wU()zzIn{1$Fm&X!Sl6N=WC@6eDc-29 z`1ZGeo+5hg1YL~dSMRA!$8VLplI~uA7m9;b<$b?@hJ5>}y!lh*)7ZN}P+n|<My-eI zS0%LVBGNGN74pwx2r}$j5!>kMZfaR3t>W7y#sR+ae%o39rN8rQCuYT_B`uY`R!Ti~ zXWQN|aOhU`R6I&1-cb$$qurF&9itzpx=SI^q@&{%McZ~@!6%ZTZ`=W``>Gj5#|2(Q zdW}_5#W*Nn55~-35F&_I`rlMGuQGvWZQrT(Kp+fe`);&4h_iK*hs5|MtZ#SP<lJG3 zbHwOEIQ-O_-$@njlyV9I>)(UF?7{9}I;t}%U%SqWym$->uz-cz)L{_Q$(7_0-vW_V z65Aw>Dl@iYSU;z@+lDu*Jnsx|*qRDQrs5JjXrU23N166%>(H@K3uA~p7gx#SWNLpf zzqjGuYjkM3Eh*t<LjKtBaDQRI^$_s-A!|R~M9uG=ZYJ$$(sf-3oJ`}f<5>XN%}bfJ zeJa6{xTuxq*m~LDHJ-kWQBIOT#p;+X<I{)|Ho@R$^^a7kS|9_y>q{NpcDkaQ@QzNl z?=~5r8_VR|>EcQwMT4BGrkn4GT$D1?&(b-F_4eMJr!(+<)~1If5>2U4^`~e=U(-IK zgTseBUP*G^A^w4vs2f)|YHFCPsiWXOMY<Tewb0K!*(cG8WzuSNBGp`D&>rJOOv;9F zmSqv>?Gve$qXQ8d1#X>HON(d6IlSUQP*oZh@88hGl@I+<IGXd)*vXHeRNXkCoqqY( z-2gVcx$rfBh8XwU%}SY)b$}Y0Et}rcHt3CtJ;gboJDRa3O!lqT+>#F&T@o_Z)IGt9 z41JJHqSyK8mAU#LjYiZG8otLNTWJSGjF34{WgJP(Xg|Rt25($+0;{hZ<UMkBp}zOt zRS_%%eqo9s<LDwkTc$DQjrbWHl0SAG!HsTv8Cppn$bc>LbQxEgIw=EXU*)*BmNB9m z$7vd0X`8t3g$4m6j#Ts4c}r+;@+IG<y+vSsR=-i^i9LlVdsSZHpW>!K()mv7y*EOQ zDdHoBbiWj${^Yc4t*la5akSwvXRL;g+SPDYP1@aJGq*S>&X!G0(7-MBEbTvaoGay~ ztGm>#_t>cmpZrCIjAuS53*fYh@MnUUKQ;bp+0}D@%En^0cJ%wT!SJ1Z$5op*Lx&4D z`}0=Z;X!YA6Ma`T>a!x0j^5SSGA@^?0R0&o?<uIfF+PDyxm-8zaA{0msUfiEB+(;$ zv{U~yrQXKy-q!=xJkk-e)$9E_9<Gi_>ZJa4x)XpC$5U3He6;i)oB0LRxQl^H%d0v9 zt3gXb9{(}6fWVEa+?I?NKK&=|ln1Zt_z1+aEO|LSEg$-Bxr-g0l;;dELL7)N%;Qps zmW7&ZEM~d~7s4P<UWf6E8JXo6f0tvV&?b*wVIpMj(nOqfbnr6BxYhA|fsOWUYjdzk z5!kzrT)04qrLpfYm}fVWGhev~_r;8m-^gZ_*Ybn%fOin6EUs7AVdy}<8?y6vE=uD) z=cVgyyvm?!B0J<BLxh}^+Lh%FExy8C=X-{yJecCEr2YD(!`gAOb6bwVsgx`8N_NHM zXY|#FsJ@&|Wr1}RnJ+L5s;4z8orS116iE{qYmFM|BH+$eDWjJsS43Aw^v$D~I!s_y zS3WbZnV&QpMuw(nL>Xrv7b|*{36!1}G}`jo{}Vo1o{hB!zTNq$7(=A_cPU4$+3?n& z4t?^}p7~PPf71|Mt-2jy7RDemQzqw(X%xxn@#6XC&?qOrVSVvs>0e~oZNC{S9eZPX z>uR&<S+K5TFtxR6j?Ioo9tcioGG4MJs*FP5w@}i=iv4vW2~glZ@wwvZbGu@hFKPjM z1m9O1wwG|OZ5m5n+`TGodrDR*l=Q~W_PIePs@Tr+Ypth02Zb<pB>lXJ-cK`Cf2@7C z(Z!7Ok9>=@7d*3{MeS#7y(;EmaxSeuwf*tsyZQ?4DCaM56b)>y=e1Wm{-A)xlkkjK z+8g$)X#EqAC|Ut{LALA2&i1~g#i21qc4PgH_Kii@^I0vTT1dBSrwyfz_&fd2&qLes zbSR77%k?>vb8xivo~qY!qg5&rAde5+H7ZBC7fTs)12OTiD9FBpin=5H<VJHgR#kT8 z2)Xfdt!FA^(WL!tN%UOp6O?Po7VZ?An->cezeT>x_^WbpY!<>I#qSz`yjf~?Ge8^6 zrusxG)U9@YEJ5Mf+E{z_aq>NzAC2H?;iJ19L%{gg5ru^rCCPl4&Fpt;PPF@@spXn^ zUjCFd%StB=nm_1fwAU*LrjA)Aq1JqhBp;e*ae<!)F-Pq#YO09Z8{^quY5Dd#woAo! z4+&IwSagAF=5I|gO`#vDHD7x?>`nBT#xS^tx@H$Y*_{+_28}=tj<+v-_Kt?7C2cM{ zUM_XCJq1_6vNMeLIQB0(i~H*?zR|w1WG1GLIwPuwh*bhx96!pP7TH=m#`6*`TW$=c zrv5N;mi@>lv_yvq`^%5d!BvbGOAAEAB7ffBwY5Hu_BCD64-}$G<^`~s7;QvLxrf#) z)R6k=i2|YN@-FzC^J#po*dJ&;^ViRdtL${IY0~-C-dGpf{a?tqyFD-HS75ujRcG)% zO36k9bV=x!c|kSHqgc|)eRFU~5k&)2DFKfiYon+LQ!H`WftlEdi}aP(acaQ;C)0I} z=gDdEGpm--cKnd%*=C`t1~ymQHYk^X&r5`3jat%sH#xR5%(W1JXQ^MRXtS}jBxb#^ zv+lFQQOzcZ|KS&h)ffL2=ax&u)Uz_j;n0?}@nRo&OQ7VX{%}_Q<22T(MGVd}PPN-& zWp?YOo?aFJxR8>y|3lkbg~io0?ZQZa;7K631|8hp-3N!k-6goYySuwX@Zb>K-7UDg z`%j)H?|#37|Jv8y2m5elR!y(ftE;N(zN@S3C|Wx$eBw%eAmToNvj<BEcx41ri(VaB ztqHaW_0htyZhDwGqV|)UfZY2AIo{GeJt)znwxLh<H-4voKMn|X3V};eW;Xdv*F(a! zyB}6HlD$&f|6p;S*slzQb%2D@p857QtVBd(IHkx;-B2kFOL5$eh+9#GLj@P`Jw5U^ zLY&JrO0Z5lfFDXGq;*!uOL_ysZPF{4zigLLV^HQZ$DpLE$xIx76Je}dKWmS$8ppX{ z#Y!WJgLGH5GZR*X$lGwGL}jT~{->84>jak@{x^8;um5la@4tDqmr+DL3Z+wYRZKFq zhdnyg@crRM-Z_?+EL)}8M2;~3JnZF!C?|i8`876}KTJd3q{;PrJ>bT9XLr*(M|;1Y z+t+H4r&2uO;_s6G$UZK!u)>OH<U&7&dGIn*@E4a`Bf>il?e8Qd-odhBy)zbnIE%av zO*?EP@u@Yemj@$sce?KwDCw%TL*Sz@>p#4;houZ!2>y^F?-x#**n42so!+9=%~{`X zkSdb==RTMoJC4ww^ozpERL4qS&ouj;x&Kf#e<YZiJp<|Qh%m8@p`aqS(YKAAFdY!H z5|SOZmE|z4NdDJ9zfaI#f%n<?=i&ZL+21+%GxqzI=AUog|MGpA|8qD0Q~19!e|+e_ zm;O6}|6KZq*!frHzrz0=@YVXi#Mtcpe+jYw7i`*ps5m%G)PFg-|4GID9}oCn;s3w8 zmHnUe-T!vLKXlb!4)OnZ?Eeeu@P9k@p8<=lwK`rO%YJ(e4-Ivt_a`JIoO!*T->yDs zdjj6O-%!6ODqcU{q&24Rb*{fYUj?ZMSA~VH$0w<D#)gK%IlqSas`U0+Q&3QBz@DwY zApptA-ES_H==a)w@1?O?!^4NIb-Z=DEf$T#byjI7bzWJoyL`V{8dYz^?>usUyoUD_ z{g=oU$Vsj9#&R)usJ@<FZaf<v22eo|?XI^vUCq6a0kz!k&o2(^)%$^33vGL1V{7_k zGMZf9_h$;JK>&5f%Jt-StM1$SqlOB#77}}_aO=+2&XllSS`Buu4Y;h5tMpaBj1^yQ zk8Yzt5f~_1mfCCP`tt?{gzHPhE9CHG7NV(NMx`kUQGQ1VD&w;2C0FIgkbRi!$e32T zRwsMAU(NQIR&{b~yFM68wv;p=U03}g+O)(eipcoQ*0nG?GSxq5S(v1a(F)Inn7F_R z12wJ{n;GNw)`dbW_va1#dBxIleCeW5S<CH2tnOX5Drf9IgmSu9Nux+nSBS~HM!wT` zexwmhKhjK&S!~limT9`b&bWEZd&FCfSEpLS3<C}rM_UHUZcV05i;dF2r>I+Ejn;kA z01hzSRSU0?Om8wWIoM~7IKu-@31&I)$ZSA;+R3t8oUzN&`J5=juh;uk+Z<O^vl>YQ z9{q~c{xIiSm!;gyYRLN+FV0(l%qz4?Hv8>szaZdx+Y_ch#l1t`JCFTGE6u)eIBlf9 z-UV75A5j%8R0K#Mv%otNS{!dRAJR_?B&9+I#M2%?n!0e8Bx+)I@;k58m@_71%3rSj zHnrD<*JR(plZW^YyAP<ELs=6pCGo&@=AnvF+J_#GiJjkSORCdz!YshchvVDmu&-D+ z>vaM1Li#k~Vi@>N6K+$OjIuxmMbyEiV>XdEpd-v(ks@UOA=v-u-;4QDdb4`V3$jvA zANWt2aCavWer>h-s5)DqNIP~Ke9K3!BKR~UAJG=uS4n&Y=-C~fY~b%#^a1(OL(_QN zofdEniTatXwqVrO7y+j>Ngu#3`Qnpb+PTHF6~*J8c{Df+2@n)Y$76y9TIKP>+0^#1 zPU7fV_R7*lUhDjQjxziJ^%|MX=KJSf$>d5kOJ&OUcm0nR&&*G3E)X+kfcrzn<G33r zWQXfT?P9&;gTFr{-0IFUlF|W_e0_J+kNko$<O)}*eV&!}VZK@<k8pce861;i&V>c1 z;F322BI{Lrswe4d%rlnp9$wd2;5KlM@e%Xk*#O1jbKQvRoJ5={eI7U3>-HCV8?}{f z)9S>o;ZfgBQMN$D>NM_O#)E8c1%=ak;qGW&*87v=4EY_J3*=D)^fVhp$Hs_GDXg7l zb6{z*kR2rY8hcSUs&qXp_Q}fvVLu$W`<t#H>g0#o44GlX05=9+-yU<+O7EaQCK?G^ zel2yJv*LALA>L!Z+PppGL?XJ0h6-?l_-C#ES?$_Dt!Z>-l>=e5eSWT*g4<61h8(n7 z<;8JLbIep7W^2EfSf=$Gm|s&eBTJ6ItXJDX%j4y2Hcnd+o3ndaG@PzvuLBjMjS@9s zZz~U*^V>&Nu~ls=uf_Iv!|QkLhK66CQ*Y1p`=&2713J!Ju2|g$tvNFjPbi)d@$Awc z-utf_puf;IZsU)|;*JkZ<G(?8wY=y8j0bPY4AZPSq}{GV?r?5noiN8K+1^%P4v~uj z2AMLKAOde%hE#h8XgX*N@qr@JL?<F&X3t<be+`9<F;L$)gR3M%f+;|7IAJsY>Kt=3 zyC0fOqtzI4yKRk58jgBT=lI9$&#Gc^t%Nd78>;;}ce-oeT4BsgIHS6E*t;4^pZD5< z*hu(s>#hBs3h`^{CNM#3WJznpw?Cx{q#mkzq%Cjl+AHBTx}-d!roh*>L1O;iAktc% zkg__O#s{WE*j{&ta;{IM+#$ezP~>*~7m70ak2$mn?GtBdFVc?ODzM=V!wpRxD2DYP z@?ju#t;u<R2e4EBuVVUDu+QR`qp|dnwLVk@J1xWHcV^sPSu<mAG39VI)!rlALdQvQ z{FULivbhs}b^hW|nj3Kt2@>_kq<Is#Bbm`l34+Cz9EjMAYxESP^iJ#5@5XG4j{C25 zD;D|O^E^@k={=IK<_H6g%Rxd%^2SWo{?P>ECcgeRtobR?-1QUH8E3iaUGe+zljBPe znhRBb8dZ||b&)iWxdh%YSCnBI@D0A9y^Enq27PI-7RRcl+)5T(yJ*~|S=_SM^H;w4 zwZrj(*N%G_jXy~u>%P|p``B@kZ@@X+dEpO;b|+OHr-iETVLO9bS)FcF({)@CJcXz< zgz;r-+N2h=@7c#w5@KU##CKi><8K3}60!He<!(~PD$#O2`B~g@Cz9JY02kIGuqCMy zm}G2n%gVCcRb(Ced>;>??NSdI89vR@++5byC8hs(ELm-e;+@k|+&-otrdzA?E12Pw zqpMJGKEjoc#l|CjLg(A&R9ogN{hQn=CuWlO9nE9fzaC(%bzL)BTIW>K6mOWej%L>b zw$6xZ-<2%JNV9|!D|!Hhc!Lz=kyhR$=vCP&&Vm*@qCK$IVe*}6ha{v)DqT5l!;^_& z3E`(g63V9p2!G3*e$Y2W!Q0UTpkYP(sw;LX=%JSy$m4p96W`zO0sS9~lyulrBIy?h zVxYb*Ky_uHZbo)UZrL(r&nS6FHB3=~zw&^7ub&VZ7qF;^;Ch*9p|LfXzQZlh2<`#F z7l-!9)Yr6)19I@wHyZQYZ1%a&kDX{E-u<$8?r%Z;jgu$(SbOmHj`)@$gae49{DoV8 z>X9sWF00RPhj1RRRN}%V9$YNptT1;KUkBCpP+__z2YI^IIKa@5&GOxl|7$ai0S-@@ zx6OHmU)@*~P7x6}23!b@3Gj?8Q}@J$65lE#Xx?Vm0D(+LBJaQHQGh5qv%xtB;@ONO zsH%gBWR8NpI8xf8gtCar&Z4P>iObTDpVD5#JNO0eKDX?kihOmo5h$gT8utV%k#RjX z&0Ad%hO}S2n6%=4lsUgngAaJ|5zQIkJr(=wU2+a{a5?W9Pnmp~=93f-i7KvN=&B09 zvZF&$pTd!1;310T;tVF_p0vusufbgt6VC?gX2?+Xq6_vO5Dwb{RB4QT9b-EYus+qR z$&BcQSVGuH=EO`YJrExdE<T3pnVe?XzmkV9k*(-MFecOU=cfUDqzZRk<Au_WCef4T zjr{;YLM;ul2aEMZ;McgLBOKnGU;d+QuH@YMS><~8g~CA0-nG&CAnEj&=%?MY^e=PA zLC>(+aaA^ZdNP&t9apveJJ>^z^O|Orte9YRDH7U%9nT&+ZjfihaCUVPMi4X8bJIRC zC`ELWCJw4U8N?oL{sl3TqiQRM0^|`!yrMV9Yv|}s%<dKa@)ms^W$+;VC0;ntHBKfl z-^EFw|B-O1ROKtl4v)94tIGJ|Pon>1yOjnZ;j&ZaopVp;Ce^uHvq#_`qgf0AUQsCU zAJ!_c@!8{;d%KG-ZkEVgSy12W)GX1?>sm<Gzta|e7`<oW16DjB8n!XjDgr!!!64{W z;A5nK)XcZc3+Wx&@D`!xMn*h<lo$=jH6<T4wwwVj?-S1IZDe^nP-8x3<8>Pbxp0e3 zB!@LksA<lMl}UG0c_rrWc1A$FbZQDHKA18Z|3pvi%1G@dS%z?}*<^lK_QsEcYDOWR z>}f#E0<lzVBkO#`Lm!k@k4sW^&rQc9cPP4x_d9N<Tw^G8nqi=3Sn3y|(bwhSDuz#( z^=kY^a1#^=>zw5zbe5=zX*47(Wx?}C80E%#Rngn%#Ch>(&P(GEc!r5udKQU;PFW++ zvK+AW>&Oa7_}pPn?{D@|1mk*s-Sa)H-0!=+@=a==MiU<tB+KEEhoej6))BcR4EFow zE_;M6ZF6fZ-B=%Lp!1R@m{p`DG>@T|<z90wnODo}BcY;2MrqBYp0Tdy(5`q5>a(FP z7@^~-V2~Xf)Wh@{FuB+L7(BJ%7PdpD1w2+p86Pzm<F9#zrDlVh7P)(+u77DOU8WEy z134s_m00T?cwOCktRzjCTzk#`2>>6>pH|0tfrz283Rnar>ndv19d(b<`!B2}j3at# zXzjYX7q$H>z0b2fW#zjk{j!fAC~wG!ARl1G=_pYJ(v0Yd4-uYK%w`b->RHt*2aR`e zb&u!i&MAM(;Q5WMy`LfPQj|Nz7jP(g5KYEx!4T7j_!4kWK0>m?<+AEwB+SD|k6;um zF?bg*w|}sKt#x0DarYj={u@ZfK6d35L3-60tKBM0J<5rg>cCgvch^?g!ZGsC=Xz1r z0oW@d*{@}Cjto9-{t|-7<%wVDxk8EEtePSyHspeY6+b4Cw_xmAWKzKU&2alIN;&0# zlMs~YQzH#AEdodrC`VnG@ni<sWVHB0nA02>cGn#P5S7wXkNSJaR1}qexBLH%m(}Fa z+o=w@2SV%itCn1aBu8~C++;#lM7OeGp%C$5ED?~GZ6&MIO6oSfcg_3^>pb&klQzpR zm>v-_7GYg3<cc2d2TJBXh+puiKa^wI`E&|kcxgMga`?Gg8;z5%64tHoCe-1Rm8}5l znH8-L!FwydiwgXW&^3AQFfDoqkj+Zy%bOl$S2s>2BUg6pLmNk}55eGO58TGrXUlJr zjY@f$RG#=HZeYIrjGNPekn;aQVlT!365wLJ*vi1^CT}%GfD}%0mPE_=MspO>Pg=9x zI>ER_!zdGCFJW@epR?0296UsTS<p_gB&g<qV{<-$xe_+<7aN%Gj>>Aspc~1o!|547 zj+e)nak~sxLe~QG>-&gWY+aM-yb&cMV>3k|n3DJ+9@ajEOBx+eR2n#66?*{s1Y-y> zMF_}5hbiFA;p6sa5wyLRf{o+X-I%fe;w2o+jGp0}lGj5Lq8PDj$8Cis#hVa&MpSYB z@?$cx@sz6v7dArV9}L2t+x>XEpt7w<4Dj4JfJ}Pn2hC2k<l2FXVL#{R#Rw}d5XGxm z`I?8EM<=Fc`Y8sVuUS2Y1iiF$T06h{s8CYOga%|25fvq8j4|xYaifs!k3zj>P%RZK z@lcSFIN9p#(<d3P;B~Gy&UXTdak%|iSyt7b^UGiSWZ%`<W9U>lgH(bN2?~LP8YU_| z6$}inmp_R|KZWUmjhxOTOeRij*k>x#FXU2|!3Zs+Y6!<y!?|B*C_4;zaq*dgiGS|1 z6m)<#Z2Wh<6_ZO&6i=~_e1rvq=9C7^^gby}r9<jGXP*vC1=ZZg>+&NtVy|ys#@}u5 zUr?(uC~uRcq@LLTHIPLCTV^{bJf$58gXsv-e2vI6Z;aHu8zn2%DMf(n3ps+(j0j!f zBo}nSqA=P;4{_=)_Qm;USq2>#X+>Z0+}0h+D~x5O9#ZfnXE=KDe5NibS&Y#vqI9aW z3<0%>MCE<jJT^XY^Zhl*q9Mv5oBysx<niRT+>|A95%4duB7>$885psxMgGItH=%w4 zf-)CZq7gkvqh5W{FFlfPN7#0XYL-94FJ(aqx>9KuAAY4=tay_^iB4naC3RLE4Vn%d zB#vYdt0|d>Btq1K#O-3yve1Ttv%LJ1Cx^17wrz66N==F7UaFf8Ke6w0X}V!|ygm4B ztGB%OuGb3stDH+S9RB2BeG$>hcsUc33(P#mPO$K)y|m6F4C8Ti>V@>nI7S&7epFDC zcD4~6FBW*XUJdfJ-x>2hf<2;qut|yRt4o_4!d}UD#^4J&yrv_G?@wi_b4lcTa>mfg zN*RUsjdcm~;m3Sq`r;-|z6KkkC{`AfPTW=JO3uSE6Ge`cD2G+P=2({#qJ44nMZDqa zDE2N0r~$L?r6~J&fWC6^SBYNVj*#&sSKaf1e|-cLd=B6I7$9TB$dWZe{z}%C%#G&N zh9|wuo-<+glN}_K7^_3+a$jcVMV`~2@m!E`^F`!B^c%0DnkmNgVz`jD&VtguI07-T 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 diff --git a/docker-for-windows/images/docker-menu-context-switch.png b/docker-for-windows/images/docker-menu-context-switch.png new file mode 100644 index 0000000000000000000000000000000000000000..f243e02cc5a57d6bf56650629a8315b4e1227c53 GIT binary patch literal 38589 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 X+W%q!eW7)J00000NkvXXu0mjfKeCAX literal 0 HcmV?d00001 diff --git a/docker-for-windows/images/docker-menu-settings.png b/docker-for-windows/images/docker-menu-settings.png index 58a9b0db56bce9a80a41d60d8b203052fb0126e1..12ec3f2ba0ac4c096eedaa3760aa79279c01a6f4 100644 GIT binary patch literal 24546 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 literal 52416 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 diff --git a/docker-for-windows/images/docker-menu-switch.png b/docker-for-windows/images/docker-menu-switch.png index 09ba080353231a7141a274dcc89a44f2666efb1c..d5766c5296a6965e811d11e8f5acdaca6b0427b9 100644 GIT binary patch literal 9200 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 C=wSZ< literal 53557 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 AP5=M^ diff --git a/docker-for-windows/images/issue-template.png b/docker-for-windows/images/issue-template.png new file mode 100644 index 0000000000000000000000000000000000000000..8f9daa090855550cf7e2f081b8c849935f8c0404 GIT binary patch literal 141178 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 G{Qe*ESRtwa literal 0 HcmV?d00001 diff --git a/docker-for-windows/images/settings-advanced.png b/docker-for-windows/images/settings-advanced.png index dca2b5194d18042d4c4e936575aee7b526fe62d3..b8e1b63add60b36c45085ec4932e5353898c1f60 100644 GIT binary patch literal 83559 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 F{{l=0Q=I?+ literal 151043 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%0D&+aHN15()Hbb6wBAFHnsTU=SJs?ik- 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 LKB`pJHvGQ;l?p(= diff --git a/docker-for-windows/images/settings-daemon-advanced.png b/docker-for-windows/images/settings-daemon-advanced.png index c1a032b14ea37ef1797fa5a9a573cd5962abd910..6ad98a29f6123a6fca31ed81b6aa11e2ba4293fa 100644 GIT binary patch literal 92368 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%0A};ygr%ZL5`)KBLBATeb1T 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 Xr|F0Ni{H)$x|qS!)z4*}Q$iB}I12zm literal 116102 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 Vki49-fvF=;m4>R0N-@&R{~xNF<1hdK diff --git a/docker-for-windows/images/settings-daemon-basic.png b/docker-for-windows/images/settings-daemon-basic.png index 533a810af2a8da2ff2be0850de6d15fb8c02ee9d..75cf762f0a8e7ea2decc7acf7c26151165444334 100644 GIT binary patch literal 91815 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%0A};ygr%ZL5`)KBLBATeb1T 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 literal 116037 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%0DYB7sB$3$JtujVQ=wn=}26f7sIZeyH4)& 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 diff --git a/docker-for-windows/images/settings-diagnose.png b/docker-for-windows/images/settings-diagnose.png deleted file mode 100644 index d0f1fed8a9cbfa49fa83456bbe4152f599cff2ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 180072 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 C5Cc2_ diff --git a/docker-for-windows/images/settings-general.png b/docker-for-windows/images/settings-general.png index f8300a84b8aec4113455fd898f71538bc6c22adf..80b4c86eeab665108ab15c0a36644c1c577d6c76 100644 GIT binary patch literal 105747 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 literal 141311 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 diff --git a/docker-for-windows/images/settings-kubernetes.png b/docker-for-windows/images/settings-kubernetes.png index 7cd50e56dd8b3afef0b451d84947b581c8c92e12..80285a50fdf6b5c21eae830e017cd8014b5d910c 100644 GIT binary patch literal 69476 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 S!EAMo1(AeG<UW4!=Klc8H(Zqf literal 94161 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%0Di7tz{%EV3$1@SqO9+duiZj0p!uRP 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 IM6N<$g6T|dng9R* diff --git a/docker-for-windows/images/settings-network.png b/docker-for-windows/images/settings-network.png index 0e74c1b237cff1cacb2967675373432bd552b5bc..0d5477e55d6686264a33e5600283e7ddd84852ed 100644 GIT binary patch literal 86726 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 literal 125610 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 aO(}KM&-b>lfx8`%ki>+f1#_NhyZtXSnWX*z diff --git a/docker-for-windows/images/settings-proxies.png b/docker-for-windows/images/settings-proxies.png index ace0271a3fa11ffbf059c247373b8b0639123b6a..d404ae3c9e9d5483a76f3e6fddab3af68eccdfed 100644 GIT binary patch literal 84427 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 Lq^?*fZ|wUYTKAbu literal 122647 zcmd41Wl&vB(=JRx0tvDqxVt;S-GjS3!QI^n!QI{69fG@U+}+*X?d<zb^1RPEZ`Jqv zn_5+C*4n*hy07VJn;j%0B@7FN0R;vI1}iEeC<g}ii4+X%W9p~(pf@QjN6cXFR#!y@ z`4pVr9WUSmy79pLHn8>XRwhJL@&~577=M^X64ka9TkPEJIGueuyKsLY5}k`75{(93 z+YXVxJ4B)lZGbB((1@T`0sil8-QnLGSPS6ayZ79?fA1Yfzh66J|Gxh})aUHKUu!}B zU({GTe@6RXzti;@m&M7+J^G)AUtEp36xH3eNg~dJSWvn>1*a%BlkGTnX}w!LqG-57 zh)zjF6%RfM?hE&zvNwc)hZfQco8&VgkSmyg<e->8m}M1{Vbu9(uk*oh)YCV{iT(^n z*j7^&RpqUr-ePpMJE@f0>vjReSSI^G_43rz)a<O|4sfQ%$TVCboq|gxkFsKzj5Ah; z^A`z?nT_-1@cFdC#KWQfmOqz)O(SyO%S`+c^~=l4KhXc%WUw__HwF=pdP`UU8O7AB z)&zXYIB|w@q!{tNhr5EP&V3m9XI$rfhp}Ggi?5h=IbH&BmmDFRZ|<_k?KI2WqL@|` z?DJE4cASJ-9fmb^4LqinjZ3b3S$`)0%lXBAeRHGTWUq*b%p+RkVOl$Cx0b~AWaW}p z@5;ostBq`D75L!Pi;1r2h5AbxitIkDtbllL-cbsQ=W)crzZRx-X7OtMyYf?OcmVb+ z>8#KDi;%<(_r1~bQ*q^FXbDm$B8B5cJC#t~zjMl9ySllVnVAX1NM4DXwQ!%LPtJ1` zb#hlpy=E#&lzxdh?5UORiP#K(z5&_~a;OIv$Ijx$GUFsDC3tvQ_zW^u&V3i&e0AYY zTK(RXJN<HZ%43WDFut;~V!v^?SooZ`=sx4W6+$5WJa&z(tMFUfz`(p)0Uimo+Os_< z!*uBxQ&c3(!Gog{L?qg1X!0~cCL@~xHo|YFGdP2^+KV#eLOAi<>@<F{ullX8=NpIN z;iDa4yGcjkrnf5Zozg!qDa>1MOx4%BL55F5l+FbZG5P7&{oKc)3U7S&4Vw7R0)}oL zj<2n)O-^Qqjb072ac#-H&2O!20eCQ)+bzrwMyg1LIGTnKB~aVZ6Cd`{m-19ECV^Ok z9MW>A>~EK@DyIkXd#9_dM-2x9KlVeS0-mPXPC$}bO0lA)sWcfjyFA<`)A>4RCJ~lO zP>CA9uJ)+>-bNs>zu7ocE}ekdA@u^HQ@kX(m8aQRUW1(3nixA5$!$*}w(#nzqc#6= zmK9at%hl&ElTRsmNf(o)f`gQb$vAf>c|j(P$a%t}W3V)rp`2w*+)&i@Wz375FJXwg zC+Q94UrpOTk)x=^e46AyIj(HsW>WjR#NM(R*jNBzBcr+EaZM|lFi%<_9gW7@>uxkT zeL#L*YHE}wPxJm__F?@TOYG}Nmx9R#&R_wrS~9Uqo;a@gTQ~j28<)dT1ZwZg+|yDU z2ZM+1K$Tw=wHd|Zp1ElvvTQR&9apYkAuK_yinEdGo|XBzS`yLU**nO}0o7D@*Vm;F zDlA@i6LDeE`E%F9g=ZJ$m68_D?2T<!avpDE74z-Qt(UY4s?kp6wdMS3X7SnKBA)(h zi5ag;CHC#juLD+QVqX1}TNMR;?YnUmOpYa27Cw#4b))6Xf$Icc)CltZ=7z6_c+^x0 zzhTq>1)_=I;#B`Kac+u%fzcn1y*4pH?mx`7(Ad*x-J<|G=NK>&WFT%gMr{?pW`=~A z(vu6VdnrW!P@U*1B=M%;&hprkQ85tZ4h>P<ooqDIsZ2W}8K<-({@swgR6{N93H55S zzmyD?`t&n-G?S~U+4J*-nEc$F%STirePu^`P83VkVR{NUI5?BYD{YFJ-b=GkKs5Bi zU#&PVPJLN-@;tlqI^V*DqvvETU?b&7U_}iNJsh8#b9#IArBqgXKWiu%PA4^L;%=e5 zg4ulNS>JpbR{NM?z}%YTw38OR`!<R3W^5Up3yfDvfMtX*ayUmX1b|}`<cg@t(|p{2 zv-f<AFfx2JT$xKg?)2lgsB|-ObS>v-wzn|(W~pd*g}ve5yMURCDwia@{>PGoaEqn< zVe4$o<C3Tx&>zuU!P1by=~ia^_Aq^1?8mnd^L&+GUgB)!@Bo>$d&dv#4~T88X>uQ4 z45n8P_w=yo;~5pX5BYfDb)5F*=GnA1i}KdjC1Il0QcIwINf|l)ZBP4knql`zue$(3 zxg7Ybg88~kqWx{7i6La#g<byUWa;EI#<!pLmbp-O*f1ny0c*?rONACTgp+KKik2<% zpM~}Q4v!OC0K0U!Zp}KH-rU62<esiQx;&21zTZ^IHS&eciFtQzN%wf(e1Eyn4J~S= zo}^3_d#=`WioBxoh3Af?rIqT)?Mm*=%y4pTOzic_so`~EN!E*%@B(f(@A>t4dhIUs zZB8_W)UEtsHf5uRd75^`<E;C}h({xO-hLw{JspQWcQ^B^dTfe!jbLDw%^P8C^N&l# zzl!I{wZZ4oWnB)?)YSZri|)>hyXKPVHq@DZe%Z!E{F3G8ST>Qx#L774KWhv}e^Wto zsIESVsbv^KbreKV|7{<)V#IWcNWF!pTpdY~$?hg=kZ<Sg5jjHB1f#v$+IHP@?EH$7 z;Z!=JR2xZ2P1&oc-!R6&g>0hpCE+!v^^bc7MG<hogm1hKWaMQ~%l7lM53bXmU(|?x zK>N)SF@DQp{#5t6KnDX8Hu3P-F%#M4W0Ezx7G_(R#iL*ZP40}4x>hve0Uzr@i&wJ3 zQ?p`qrn%+;_x=*c48|k<3)9dnN?m>Z;>m3S>bpB5meAM3zry2jlC`sbEf!GeY3oRY zaF9|KiTX4hgqJ3Bv;rF@`vF7H+b&<$SR!NY)869vCT(b>552WXU!OR1H&8mm^6=yY z5h@n9^138#7LN@U2kN`5vlTJLm3VnmqT-lEkIX0%%GF!*=Q%F28rCz_?@i5@8)_HN z2y=TM{xA?)e4d$#^-a(rv5IV!wiChJx-jh2&DZSC_c&!`C&guqC1-^rXN9Liz0AoN z26$EX?MrTgk(F5zvMm|Yih14QPj%n5V>pinpQlW^dm3#Ihss~&lq)~p8>Kr>L}0p$ z??@N9`~FqM2}GROnC`$rz?PwV%h!u<m4nF0TC9u^dyyV?t|;au+7}bA9V2<-1jEp} z<qvzROy3@aX7DRJ=y`T)4)FWCvTfO$oBR-VPS<l=6nWX$ei^E#FCk|Bve-mUuiS29 zFI2$M{`E0r!Qs2LkFGlUauJ>LRPfL+h2I-V`3i!<?+^?O49#MLkBu!f@bG-MwrmKI z8nol}oELoKuBCZG3xlONGN+J}hK8gw%3)W{<%l(|M(RvLfiw7cYp2L_r|7O-EJRzf z1&T0!2G+P8I+D%@qVOmzaqA@&fMBy&T(mrQ!}`r9^4H@H=s$AvIyid(Arv?3*7+OU zuwe)?JKA)mjf{^c$~dBxsnkmWm+dRACGK8zUds;#<QAPmz?n{-hB3<e5r*quPS%S# zfD)N?ZmwTzcREVsCq^<NpFlXvB*m?r5Wm|%MuFw{t4$yf=-D*l>}TR&mlYt}-J2<H zCWM>AEf<=uR&1==Zx^K{NM4E#rw-?*#G@@gqEaeDt{oR#Ij-Kql)=D=AMMu$)Anzg z!U1>q*x1Rm-wsQBfzOu>c5864hGd+=rf9f0uz%)SXFSMgDbPf4qW>i_+qP~D879k0 z`|%K)@@w-nM}%dBsCtw02IQIKy|JExqo<#j#>r)EbEh9jGL90X+4@~{{D3YNkgKl_ zrWM|30gpfnxqJWu+ma8@p{(}m<;bYyo-1+63#9(~fp2=YGM+ZM3IVubs+<g)iQ1OJ z*0L3gcqOp>S6%`y=Ek9pb)6_O=lV0NkPHN4<`Q&ggVTF^2bVWHt5JPBq9d;^tr)(S z@1`m5R0@PNlZ&Vq(oCIoPrkH&4N+y9$NuK*Ad_CvBEr^AX7&0P&(P@YOm`DOg#ag# zVULp+?*^39+hylfmN^s+f(jbMk|DpVyGVpDGV3bvUPoLvuk;~z5^&U4V`myj9xfOD zIYT+aT2aENq;(M6OSRur>DfM@u*MhgxbWO>r)H)CfyD*V8Ntfmm0%4a{VMiW&==gW zV>f+|G-G%FBQ~F{Ogi2B;_gj@&Q93_K1|!)68Sal^viUsRmj8WAhjz&$%UtP`EV_E z1y2U90ehD74*EtL)L|2+31&AVuItTr>0_&quMe%Jt)=v2M37;8x1)!uvCr0}P6r4M zhejE73nz{jP)KdJxSS2&K@NY%&GF4{IiumkmG%z|9me7S;FQ0cLtyv<c8pxA0eh6Z zTpfO!LUZqS!^Cz?=Yw06p_!=u^Xt!Jz5H(20Mn(*(M3&CaWe^i3ygbBJ@<`w(|qg! z6m@31vzRd+mxT5Dw>LL~)l{*tt*9`b*cIo%PlW*B-La>5z}KBH#6R<TPsC!ylENJw z%4lk~lDlTSb~Mh?2wT*g7@wqFQiu;$Q5q=56EZc7sh1`!9kbvB_i+%swbT#?@}}7u zI(z2$GO*q2FQ5=}Vc=Q|*0DF|URR<)*@aT{nY%oI$H!_btir+TIlf7@rj%%lI#{>v zKBA-SY*7~e&hNm$=nliMIaVcwtPycip#vNo_D@d%A%QFPC6xz`Ydg)Gw#~m>rQL0{ zHCky?-&(AN8S8<lmP1U`)m2in7+PA`(+~?h4Njt$zHA(p?YG~TcjtdV!r{0##$a-$ zR&|)yyN_aBEt3N&Y9>+7q`=LnP%hZ^DB=S8*WL4EzSsX+#qWErE&)08*wYRNtlFIi z4$s?UF%#dPM_Y|r7^&Q>U;f}k7tP4X$o}NRZ)=T-lPdl%uaO3gyhe){&9n{K8~KWi zEAg1>kiy+%J`>Xvb8E418nN9_LXo2@G>~Po_j}xmc@85H7G8Qm6GjfUJ5}<40KI`3 zzJ>LKYoPWCrOYCICa1Q6=fR9}1pvzEE14HRON4<Ouif8m0#k6fZofC0wjJBDKCn{2 zeQ>|sw$+8LY>tK%Hr97=bUFJ1?tq^OGT5vER`nJxk6Vo#>TAllN!8YNCcQzz5$rwV zjm*rfqQ0EmZ@4cjwDKM{VN1mEd(6_Tq-y@wH!~%^PwI{<m74@}+uD!b<zWcje{HMx zKXHvzTKPgXA(yVO*3FJv!r~Kc-HV*FaU7;4kj-ePPN<7V`@=!oIOa42TV=;-^Vval zY<W^jg(OsQ;z>*kZN+g-z1w?%0u7eG0->?ZbPk%<r5AD^m8_!0$a<bX-#n(QBrNvy zj_J>VCuq!M6)Be24+O>OI%IvChV>7?YsHG3YyUcRi2Srr8~8}><0oEAPHyrLk)h)E zKJ<_<`|pMZMbuT3H#cF>@uuC(251qCOtsu?wiQlzoXcM%8-(PKczu2?lHfiG<|+hL z5`1Bd#M<_LepPgHiznhqeX$vet&Fi6Tc{GNv3PqG*i@{X^4b3n*Ap{*@jI)lt4mIc z(M|@%?z3f3K@0K<@*WGWRU<YhQ6QBn=Rt@M0MEItCo@IB#f`0dXbnL;lZ3TGtEpWV zj+q^k7dnuDOy+4ds9ESqfDBRXMW6UHy!Qksxj%M%8cAs=mP#KQq+O`x5^APVMNDcs z-D)W#-@QNH3UVPuv@3BkRPygnQT9i5-%okH+8GR)X=XVcW{6dooz`q}JM+}m&gckH z)z#?NOQH4+;8Uj>10=+MlmCx8f#xx1PO0HiP*OtPr<7xmyeMi))cnX1bJ@_lXC5}R zkRFK{lbR7JSILn>M_G~Gvgxe1)jK*W70``O7wd}|8=AlU7n4kOGPmb@8*y=Q0RaI; z#hFgufYhz~3q%J82NuiaeNa0)L)8XoU}AE%!Q*N?;ZnT~rDIQlfpvj_bss-VF2RHb zWJFq1mxW>cjvgTX)OU3LlzU2lr|W+o{}hA%pGTEH#h*XH=AXxPhCkH*&(E{Jb*1AE z^`FPeKV>I}LK`sSf5Zd5`28V>h2JzsVBWv0N`E_`A%1i6A6ii7H|_uW=s&ce&hK&m z^U?pJ1^fU11OfjVi2qL!enaygx&JpUNbY~b9S~ywt`rDe5H+ZQz64SKcL#(Rh#J)X z(t<j_X}ulR`TE!ip#OeQ3HZH8B=g5BkQ(yJZ#>q;Xz*JEc!AKp?{w4Zy36Y7Y8{j) zyM0R3lp*UEvmD`;u8Y8Bmg{Rr<JImc@_?)F3A(?%gG9ImvhTgMHcn5sfAh~ej2L@z zNN>@Vusm&aQ5xIx97`~1Yzjry+(m_}o}!$mm7g!iA8uz^T8{V_Zpb&~yg&C0)NbL7 zFr#3dvf(|Hfd-~-N48$>$osRgEr^f6<lah2d91V~3^}ET4$7i{%Rz$i{wHmTV9(z& zV0qZ#dBDZ3)a+jPro4MJJgW@bmKAWW@5^vyXZT8Eeiy=NirpSHpxB$r01&}0j!JRW z;I3<)E`=bfE@=Nu36To`^Pc`|7;#h=#XOmkAuDv3AnAEf>-hrFLqm)2`2vX@+lTd- zFMfz?6l{1;cYZSHGkH*ftWk5epBst-EeD9P-_09HkY1f|lG5?4@eALo(DPF-yn4D0 z>FPFHlt#g>_w)t;Sm?ck0BPdXfc#2II7PFEg1N0FB@Xkj@-{`@eVj+4Nh=HzQRL6o z2J^PLt?2B1ck}Zi*d3=P>I7rZqvX<m5wQEl3Vpe)YQ(0870JGg!ZrXY3ggoqI2K;8 ztF-ihZ#WiR-~mAXzYw$LQBhpYq}dZvect`(NgcmOa`B_x#o)`FNy#gUgt%hYRzp=< zcVmV4$(6qsBwV@q+6T|AmJOEoxq#qI7l5H6k*^XYW$?Qqa4@_-m1D5`h)W1X`nM+} z=+{VWXTKNL=o74AM*sqj7ux7;*bZs@<u+H#Hii-V_rwqT)6bJOw>2qfY|DE(o?Ht) zqAeOlZ+!2He0AF!hD(7RaPVxPf$wSm2hOy3Wt7XFwBrK$uIjpq5V~28DLQ-VeC7Qp zH7qN)=$D5mnU_pOJ(H(4`t*!Wzz8yn($_(qHZIix)AFgzP0-Mn+g}6J4FH#91~xAs zLH=j4y+6AMJbtft!n!&m?}0fo8*fhRE8pO>gr;o-CdCV+6%9ErE1`@Fo8wv(cRB*L zf^~8Mu-py<t0(yMh-?+yW|zZ0$vjxGv^GaaWF?O%LBmxQO9&60A95@RH@Cq@1i^P~ zHpLr@`d{|(ZYS0I(U^Cpxa<QlGT{P_Gf(HFHVcBLSA)3Q2pI)bujB_L=WDt~6iL4D zv_J2styL+vrM3ws?wufp4ayQY(1C%0SpVH5`k`rSDy<e~3sk5Z?!Np87<ri&#q}hV zohK|DmD#WK`pTfWt+P+%@u&%m!LX-?k_$NQ7&KJ;_Ly`pj?{S>6pp|^nERrP1(Z>0 z-<B3eKhoKTC**Fv^OON@zlcAIkAz0DN?k*bmGK?w7`xdRiSTMy=`xN?vIZSh>p}fD zgqak!WCJ>0?j7}<vU`eF^;Ik!&lv3}gvWdGkoTWyj`iNP9*8Bovesm1Z!TnsU}M-G zW-gyuC>cobx^giUqF6l_JpSnQ*9D8}Zo%v2N_fu6-u5MWWA8eF#EYhX*GCgpeOTiU z70_n6x@zgsn+=(hB8JZ6#~}~dtq!ZL`>Y=MUt6z3^Ojh7A){nI{@q=3)5)5+v3O=n z;Ok^vewluM0v!+jCH;erI>aTKSJoXwNtYQ1j*STRXu0E8M7A<+vo5-=V^bpmKA-1n z3no}#=#)aM4kr^`>DC=KL*E9C@POotMbc3j9`Efg{mzP9M8{yXx+1c;<yx5NJgvz_ z86hhbM-gK>d+F=2009ocWwkYofz;*2n0v(Pt5VR`J~9V?v|Vh26^+B}7@c&)$^r-t z*8f@5WLq56j(Wg$TfWNr>OCvRMz<nyT}us4=NJ<TYw*LY^x^s*P^xuk=(3iWIQiLK z(J}t8I-82Sjf$q8^*Z%(P8%v5r?rX=&#C|RIaB)z4wr(}p_=YKB0A98HKM*Y7Lf=( z!ue1~<t`m7(c<xSI-0M<7kOqH|5K4q6tS1y4!mI1n!01e#~0{#dPIsDcb_Dbl;lJC z+{DqvvGu<$w5FK%KhQi#3<#dma2Tf#J5zrKnY?w_e@?(aO-C=|$i{q*4zV6lC*|?H z2iHvb)LR>$<A=rR(CnP}VTVWB(2j3Syt9V0rTyi;?B|GPlIt_fsYZEo7E%oQH1;0* z6NHro`X+(q{c!B;MGip@hw#%y;@L*GWyBYG($Hqsn;FUyrB#^cs%QS-aQ;te;S7ED z?6(6%@FLg<bAaNBriMx=D;NiEy82BX>#(XBSA<(tMYf;j3!*vNB-8i`cP<-XeY$W- zcb-D97$))rI>$&orlCz7jS@-@seS<<P2v@h{A+a4a=b1Gp?hv8@-gfg>&-r$EGnef zLNYqAc06nL92anZTPU_9Z!PPlBHECo?kb}apeDXXGc-V_se{V-KJim4i?1TpY?5_Y zj^Fo{BHNF#RCQ|K(SkfO(9R*q?$pzB`<xQjO92Dt8xx{Li9sxH2Vo@p_+itae89Cg zz2eaE)sI*vwTQE365v3>L{-V#b6VEB7s;CpmQ;$1)e1&is4glAyP&g{E|8n>{&QBt znA&@qDpKDVF=$nViZY(VJe^&}=o#3PHmp71d1w+_;V5>n6kYv6411qm0hi&Y=&-<z zuhy405p>^k2r&{h<^o|?b>}O?YY5j+;~9c#hoMiZN1xPH1&`uwJX|T`X=$N8%kHh} zP#`;Mx&D%eRC8o;IE=(*U8ppYPn+F3xWTwd&g2hk&UnvMQaHHRYw*^L<0F+N#UZ@| z@^2sq=dmXBaM{a$WL|Z{1X3R3bC4hTw|PsANVQU<uqQfJ!qS+pv1+CI+6E-&114T? zlGzp9k7L=#lP5m{k&B_QbCr;&$8pJ}0xN4^k-PnOM}8s%#E%>Zxkf~aGMc#0wtVS@ zW9(8FIUv*(6-3*CpDo+ea5EgfRl;G-1dbY--VjD|WmfoJRC}}2&d<$f)&)6ny~l2% zDd4S`L$UC(zZ3oBfHnh^WF^bs8rCv(RQ|^g|K&5&*T#l<36v{2-ehflu0J79w?SIL zHce(veXG)v52#kujDD)m#>1af`X(xn>ri4%uV%a&3c*!?#3zDhUfQkRkUK{%n|bVm z@JWo2%nkllH~Uvt_Ghjv{Nolu-}G8bQCUF=qyAwb=&Re48M3(Nte?~Prjpt<%~oHD z3g3vmy746v*r&Pg=(H?lEzoj?S!;(CbsbUV+(-*RCUOd5@E<MimimttZzc6F<o6$$ zB&Ap!4)M3|sv!p?=K|1$=ljxc64~9iquEO-Zwy7QE+sJNsdjb}_C*&%O-#~p5>RO1 zGYZC%lN$GLuGwnj3tFP@hvkE$VI|P7+!YD{vX1ppj`c`%pQ3!Zoij6kqz9UO=tV~2 z6kJs4zunJwc2X7HXVWww4#vSLpZ390Bcn$gT;<GXG&$rQI%Q(S$E(tkgA5v;DDscT zEfYVC^f1oy#W&nPtru(q)v|hOhp~ts|I4y_d(rg~v>ADp-^8)s-{_K}*eKHfBS_=k z!tA@78Og;tRm6MK4Ik=<_7^2j`Z`ATCMx=>%}L_#`uc?xT4f^A6~AJOfIzvO?eUn) zSR~VV8Kg@iQ5BV0)C?o98-u1h2_Sy<5{KXduuzA;Ff1}r{+w45ujgwZ9mXSn@b<*m zuH{NGHI@6XACS3#g=Q|xUcl9l>N6gP%)_9j(%cj}2bt45<`%7r0{GjcnxuhFJz;*D zCQ<PJ#4+B@-`P=~ajwcLo{s!x0qwu8qRp60PrRFAg5B$_sIJNqrhP2jQ$JSd69bFu z$Jo=(jj;&T%IFv|fN-@!LP#P=A0gMC$?1$n=0tP839`-0dw>(ecA-ebN83qaOznzK z8zeJZW=9A9Tx~5cd(p~K;AZRu#eUhGxB34BR!p+MCrNA=*y8>Vxjf#}KB*c?OoR*7 zF(55KYf=*DbTm?~2~hmk{{2;Uuq`zvo*RfI8LJ}jI>&hqA5@JdP+%&73r1H~Pe9me ze{%mQhFuS<yXRFZ31QvucBA^y4?b31L8~eEd53qhCTH{MCdgb5aiS$j<^qo%)fDeK zjDXBJ@MM+g=xU6S#md&XvdA~;bu60il5FQC7vNv#{FROF$p-|nPt1s*RLR(^`k~JA z(-~`mf7*Yk1Mgv`Za>Pj-eF~D(n(Us6~k%MJgh|7EYfxYF|p>=iuFZY5IxNb?X^YT zgSL|r+!AG#w$=^{tpeuTzWsC*pQeVK=gYUYP2f$6i=V=wwGsM<Ik=fRGnZy3qc&#R z@9SV$I|B01HZjEX4uPg~%+;Dp?Q5R$X$hq6A8_0cd1H-~IWU_LLn8zBX1N^bVlm+N zW{l$A3_v5b`sv$(qRxC!kk4eF>7V*vT!ZyFs5$l(XqjQx^0X)<Ar%7$XSa6_fWSnh zkPkl?@~NpZxuJlWnb+u3x@qjfB4x%hjl8jCdA25`F$DmsOkC)fU^9xaJV0nw^(C-0 zwIy<VdxRr`)_Le|P}Yj$Hks>k=WfiO6mtXyO%Fq|w>Lz&J%+S>A7v&ht#T&Xg>cbA zbf1>mOtMqJzPWyGdku;UXZ^bfcHmbrZV}yExS%b;hl5bJy^oD<EimGzeIcY+yC2C< zFX{%LP(57+ri;J_0m-B#st^7IDs8&z8Y@zr<3Vn@Yktj|Ip<9FikO!Fowby#3JFb1 z{MxUGyeyk4eB$@W101;`RUA6lY$k@f*dd*@**UB%KCi){q_S!upl3DN3Ms1r8I%1H z`2)?arw=n(85xgq6v?-=!X1yvn7^aAepOfXXRZr0o?!I&m3CNSN%Df9y3lsP$#O6{ z;6q<Nb7*UY;{PqT{N~MLvE>ZQ)tRL(Wm%B<qDpBC$Bb=u+4Z^B#jLnUK}SMeBelWG zYIoCb+Khcz4x#w$0$z+7S4|{malYrqzOml2?9`{c0ndT1O;8GyBpUsbd`dK@K2;>* zkuuQhSGW%v3%izFIJoQ#8UXw^gI>jNd$!4}yac3d2f~S^hlsjdn-An6ZSi$Nx7Wyl z7t_mcR&5D{aGuO{%?i)<BT}8tq?SQPU0k0VGz$~48T>+sY#bf=LGVSm9)e}I;p`sG zEPW$*hHLI7%jkw;`kh+-;^-^x^1liK`a;(5JP_RwH{APxBk6I-3Gs8~0h-R5*Al0= zTNG=~QAP;VL<mjZH3>KT(&CEw1~Zn(LHaaATMlUs<Z-SfBG6Em;f;gW4FJb@yDR6E zFDXLh*IJJVc5)wu!$v4N>y}VQn8<ttt0JvApI@dZ4>^7`7e2Ym55cOx-W%kxN!uMA zi7nR}T0^zBJZM%=_q<&}IpIp4moO#Bp`Yk-+|;A)XEJ4z(q(8{TNkPwldDrFn&^{2 zPD)Z%@^tpx*Qsh}{0LV&hHz4kWI`EoHp5^wX89-vfD-_1twEnIF_#k&(o?Z^^$Woc zP>Q|84<lUQ#R`PcmXj_5m&H=wrD!~nI7zdtO2E*nusg(y4_syw?*33TO_&Jq17-3! z2h;EH&U(6T4I83hZX{)Ym-M`s=<+FPX+Oi|SXk4Hq{TdMLSMAvM%Y%O#<%22A~rG2 zm7jFZfkM^HhjR5@yJ{I|yG4#b%R^Kg6Wpv_{`dIDPiwO@`6crFZ=Rw85C(1BZ<kMJ zE6)#mUF$p)HRW`5$qXdn!dzCFJNMQ1_o-I1xl*a{OLgLcL%UsZ4Y8k;yMfV<bO9j6 za7|O%BLwN%o$cu5g~AzH|Ffo~jOFH9NXApDGRjNyxDUOOiUP{7yRo90?G;F>YSW|D z`A1~C1<H5}67>O+y2GypR}8p}PS=*xuI`8nA5uo;?>_p`DdjvA+u9cH<A3MndCcl{ znK;8)Xfm)@Z-(B|qLG$zRq>R`1-u7UF4`Af@|c1!o0`k!zeFdSJ&Ob=DcIp<!4Tj# zq{~4@W1g~1IEU)GGZZCf{7AGwW4j*i&?m-*0(l0`#Uk*I#ygAQQ@o@L^)INu>n3!4 z3KWZ?2f!!FQMi3vgEfDpXOqCYxd5@@?oz6*6!lp5dA~9Sk8NJjZ#&AGTg}XHh=h<u zah2;*()+tkm`BCL2TIiYF2C}K_}9Sk$_wneKr#PvA6b06`m=H%1?AC17;aBxfaSS# z#%|Jl1+5U(rj!^G^LS<mtrm)yHo?;3#PybjX7snPT**SHaBM~LuM2rPo;qKznk(Wl zhZ{(FT2m9&p6_OI3@42E5lCIjOwPWJ0asU+4aE?b$ivD=#mz~Uny4^XU22|C_X>ul zG_)gG>eJ`vU4O*A<o0rVVw8o`E5)dqU0zkV*Rlggm0)nl#6DXsaCY^v_Z8WV&S^8m z1$TExv!glkE>dc98zjmgTR*ivcjr^RPQTqnZetmY@Q03LXSg=sFvYTbB8CK2wRmoL zOy(VnK#<E?cJaMP7!&xrj5Ed$-9aS{dZhjM9xm@6BtI=(NxMUzrKk$=Z|%#vnQ^UP z#8gyws!_ecGKX_btLA0AQQv?qAYg+uro|@tcSzj@krr;kXmDXOEr~zc$Z=98ebnAH zPU{FQ-6I@Aa=mTE;<l@fTbAoamf)Cw64z6Kc!;T1mpS{f76RlSko;h$2YER&3?&6_ zhAyIJ%l5fy)g(<m+;C>X6L^dsr&_g>2Zd(``v?<z!aG${aN2N=3=ygsQs1&=CQV|Q zY$CM^$~@!M1;^HfXXd#SgYPc~iE#zLK8mNMl$4Yf9y(-Aou_`PH^L%@bXZm)&t!qq z8WgWsYtjv^Dw%^`b+uCN*Md%&Z{nFv?(!!`SW+&-;<V5}iBPk)e%-~idRDlY#aY4h zK^ACrQm;)ix8%wyTFG4<Ye`Rw=|?NsxK>oIF!Z>Vm2eBNreDssg;ZCK)$6|^^hZtS zR4vhlFY3;L0|Sd>pT=fFQCWBU3V!fUne3nD99gS&IH`ewU8b@tFtiX=8z_woAxF75 zD6F#65Ie5-b2=EO`=;z;mwH2>32jMibM*~LIF@~iD|tSgB-%JjmUhPcsb&s`L#9%< zy_uH^D4P;_2X27FXe`7%42)*p$g<06@zE-9aB=mMgZe(NGDWyTl5xGf-;PR4!R{a@ zuTn@&>&3bxGo@+*4SnV7De1A{k{qZaPe8===<fIJmjmVE5=DLp;S9_8^k@WH{7dhi zkQc<1v||IW-^DYGqcZ?{e~6iNuDHkN1gk4&_R2QTS)xxxR`y|Ii++o%J>DUGrl(JH zvadC0WZDp*Rn|O;%WbswgPLV+wd7`D$o<v^<63_bD3XFx!D7k;(#@jo*i3<}x?ihm z7NRO>7DY(JW|BPgnoz+}KSw9A7d5r&q6yFeuq6K!1ako-cn8nLR`U)_kjIt3|K9ON z-B*ZjXJc&q$XGESe&V-ucq56_b?xC{@~Pq(k$=2(k6yF+(-L~?b9UF>$z|(VjW>6` z1opFQwY*gk61q^Q7n#?~PE*F2;zL6cw3fKbLtbuFH(~~c2<2JrtJD)<g8B_)3xc27 zuD&Up!e>?d%vAnK>_#c>D%7HyKAMVvRO~5&&bB!@N$lcwrvS<bt}YYBZq~OT`^cCJ zMVb?x);sbZDtaf=`Qs5TsskqA)mg`p%nhccIY8BjpQITwrOqsO0k{;%!KR}b^yL)0 zK^zOOqUJ~P!((ys&(?Dvx)S^uuDnuDuz=yCd%+AE@~_f!#_`GNHRDD#nhh@Tw_3Z* zr?KoRbyw9#H->MYQw#^D)}B>w92Hk}(CnV8)BHX4X;K8!@`#xcJ-FvfCk~y%s(@k! zGVmXz_}hdwP+m&qN(yfQgS4UK+)gMv09dO3fc^4{P6W44^7{`FZ?IJc^krRpr^`{S z`jIlT<JFCo+tf7ohjZ?|Bv7^Ik{{vs0^lUCtP7ftp~G>qRzEjI>uSXhg;N_~x+Rg= zW}bN5hVK9wN9W5<(i7FnsL8V`D8oW>$Ozm<l+myDH0?8zub=l-lu^|p010*Z7@w-f z@k8Yxf%rtbx>jIfc*cP{?{!JOOjUVY7JjMqnjTqc7SGOBV6hy(=oP=fRgO1~1x_aJ zo3&v^`@`k9JrsTQ?ZRnVWQ1n7Oa78ZM@$*Z(sR2Xf4K?0pzX<*#$211XRm7NSRZ;c z&B>G2YxTV!rKWXjAsinR4!@`%oyY(>nQskKAS*Qq=Y7bJuWcRa_cOi$ByidG5u%ZB z?Ak!76<tCjOVv$e?M3X3%KXsD(;%);`-5HH7&pGvFFUH2tlBkao)G5Rk5feA&7!mt zYDwBMU8bHc=p_Tg5-GbvHc|5<KRo$drHE;j-|o`tv&vfkt$l-39pA$dQK{o7>CrW@ zLfHy4$htADznr_&I1&}>Ut_{3Bm`V(p5n~!yEzmcN%E`YGe<Ae-b1#kDp>q+B><uM zdhUCa!i*xDvzuye6O&z>HFar5f2<twWUejY`@mj<D|}V!%Ww3<OYeBi7a>rrcg<i> zlz3xf4*b0_HTPDXi@pC|08IG7G1)ihT76m+uAc{YzS#$XVPyNaE?GoBnm*1iOv-sq z4tz-xM_rr8lEJ_%As;YOJMoISma&z2Hag$ATNC$m)VEjX0HVPdiSMoPi$zS6Buhn` zicK1gWm9S=NAe<8Fk8_@a~c06fnE4cWdIkl&>_&S(^;Z2V2aY_-)o7`<&XJULy@3m zDl*7efKV<Y<-RB{O<6CgIj_|yB)o<l?seObMVe|^i)<IRuW!lCVT_iW;Dl9Pmtin_ zB)82sL0_W@Xll0@3%>JW>+OlxL{b}pLM)0jI6m`h|3Ee>sWS^d4^;j3p5~jjTVA?b zXDe1`fh7O&+hlt~2GQp?x?EjeIw3xBN{Kh|$N9D~)XX=j8f%#AVNbPEmJRK>lhU%f zY-*_^m{2(Hey+Dd_y~8WxO2Wm=J*QvT|4s-4Iyw+?r@fua>CCmH7lm2$un&;&4Aoe zZ?h1hYc!sOz#o3|N82x>C{{@d@=X07B;u5d(~JZr*M;ICs5_QRYM%5n;~q^~G)?&g z)M2L!(irTlT}{YLR`BBV``2U`Uoe%&kL)iHA+8IgCO!&>%k*TEQ_q;zGBRRd>ow4T zeaTQLB5}*?wAWA{qzrL(;jS1!jfN;wbC!Kx@`{a9hQJQOV!PE7#jGHyPe<U8PQihO zlv+K$x$$f8RFW;1S<yMwCRu2rVos1WCrFtunmZQgCopwmQ(RCrIhF4&ONJ`){WTKn zP;&q7r7-TJ5CIm31SsDCoiYhROP`w-g;)_~Tx-%Lp4PVucvwCB4kEk<vZ%-pHcRC9 zUu|qi32cP872e3qkM;B<XW*2%wKNeB%gD*#gE3DfHT&MUdjT!LXU!vpo%JqH*L32y zVM^$O<3l>!^0knlCRq7cIfO4+oX&JdQ_|7GVG?NL5%oIRT1fl_P#)WOQt`n!Kly0o zwxC=!art{3Z6q+52<%>4vKfr_W&FF|%a6w;pr*5yJ6j0>6Zdr4YjdpNa`5R<D_X3- zmZ^=i$xOx^Gm{9vj?^)DrO(^BFNGt%U2*+#zk#z$xF6Fz<T0vxdv0KEy;%*X-G;0` zX1`gAD%_qfJuVT8Q|lJI!%k38DsFhYHd@P~q&hB0T5?udlr~%O*cf<dr=EAeI^j}- zLN@(sSk}Bb-d|94BZzU5YUEkt*p3!FUA(-pEA2Bao=Sk8)mq=?>6h%XUHYJAoC*6+ z=`fNV&*7KwV`P(&<zDkQxab7WUtNDr)_c%$!r!CU7)@Z5t9;=7?(6*2UinTI+Qgit zpgrLswjlSD+x`^L4c26alQs@py@#25l=;^*fmJ3mc)P?yK@dGd=X0%EzS7j7{LoJH zKwybkyR_$q%b}p8x{&NM?-jBso|=eXS$tt`PLbbyttuHuCf`Z*(mW9i7OxNvOT9%N zH<ZGob-UREyXJ!*v=?n6?%urUzG5bAJ-p>cff<cukzfS#Y}BpA=F?qk%VqcE&->ha z#s*RCd8drEMH{IjsTwuM>-hSV)#2|=2ACCwfT`p~X{!m({L(A)W=p%Y4CkCNoeX6| z_oq=Ht{1m84HI>9Ha~Sf-Ossbu{<_=&fBCtWwk{~EB%x2--W|+6548yhcSJ2bm#Vy zVe73^s)raTG1c33zdwnk&`iZwEPm4@a4w@$ic0s~*hwI`jsn+Y6pPSJW!Fw+7xLJG za1|p2IY!<?@98Xzojs3?xa5_=-8A?=2{hQ$!~q2Z!&HHrP<>raJ?!2vrtH?vr<b(X z+G0$LHImUrw~IzQ#b%fp3`9ruCTs5#7rtQ}<29n3C-Sm_md-c}%mIS7oxH}I+MF-2 z`EnEN4jZ^$8k!C9r?C-dOB~5+Eb0x}<idw{U$c4S%D_LuO^f+_OKgK6Xwp>A3agPv z?fsfDnTUq(Jz;ueT~~w-?yxH5;>p;{hQtsU2m9sG6amOt*yi&CKA0B)k|*Y6CZYJ) zJXiuqsQ|qS6<M2PI17BKnmtvp9`EVPsj6#MRHxv!wxUXTR5>cT77i*q*UgzdMX_ih zs!yN1Wl(cWG+DD)Ev&+=P<>K&kIv4PE1Nkqo$5`>%Qcidf9#v|bR|q8onf!tXLLKh ztl@sL=hoep*{X6@wn^YC88L_fUCDK6n=g-VVnY;YB?fmP+1b!z;Yi6pj~MXjL5Xz2 zJ_WwRKj-nF1N0(+o9Vq(D=SCH!O*qfd%}N%zgJv0BP<m8#n%g`q9R5`CV550p9=3p zQF@@7<6-#}6+dR-A*(b)J5~)XYRY{8{S{BM+3fq;z$t;EqJr25!Pw$r)8Ztyv8(2> zVJ%PED_!=!O$V>?r{p6vhP`3VDebYn<vUcq$T{>bI%`~ystPBP9zlWCYAUAW5t`Yl zK{^&c%t5Qs6iNz;=rvMlHUelk<Kk?;pzR(i+ja12Bf5o&2=gO>P1hJ!=VNh4IDJAa z&l_U&iP~KhgIp};D7H|YAG*mYN6|6jN@Y}7XX#68#QkmR{xYD_x65a-_)@Tb+l!7{ z;*L$ULnDW3noBh8Hao~qm?jp~slw!IGRlxwMV6zVeV0G6#<djqaIv+6$7*ouFD>jg z1KzETyWdcJ3Hc0NR#=L=Q}s=9A9^+`Evv#`RR(g%#Qo@iJ&oVKwBV{N-%MR<ram>_ z1f$S$8<PKhGQuLX3V0UD`FB0EP>(F(&cdPLjV+~<`4kQJt9Qru48vE-XywiNy`K9e z-VNO|H%&i1YqwK%t!uv`+lWl+4U@p?Nhen3>TT?>cz8T?V*t?68g|Eg8&%B51I=%E zzjSJw=qZt?LDm93{lGKE9%m=>y+0<%%69xDjv)Vm5B~SH-HZQ$1hAq8pT07foTipD z7$Zz+<n2R855(P7d%W?Vg}hU&$q?5+&8mx1(#q@Y7a3)auJ=h*m!v7pQB5(~`2L6& zz&uwt&O!zk)ff=p>|_=ronR5s-0D2B^SykbUQ<UHQ{R_!`Ns&t_>_;~Cu=wz170-m zL?5llu8nRnrE+5tNsC5@Ba;(6Yfo}>_}sh|&AP91MG>65KQt|zf7T3kWp@f}+t*Mh zGgg`J0TT6vawml!X3k~o%cf2C<*Yx;yl-xNY26g|$Hx8gxb!QJ92AIQwXR=R9`LlX zTqU&O*Z>IIPg!;R6yJ6r>g^au-p_<SFMf7krN6eMy?%#3p|xLP#^f-tzq8hh(;n+p zQdG2q{#BGJ{*>)Jq3EUb_Pw?Ys{cyYw-GM%II=LYT&z+7{p{&MLaFX~Xjg1|>ejv| zch56V;s8<Anf90XtelZWyrjy(uM9rzs{w0gd`I51??8B$fvZ7=7rg&DBuDlG540x# zT$f$E@!cz9+=JEi`VA914Oc__A9eC&Rx{sK#!!}(D_t1UxG}4K`KBZX901^Oy+PrB z2o}kUK0I8M7tO<*6{vSy?Rb}z-$!@zNgupfkPbGefJA!UU+NP)T%}T_x69dWJ2%rW zcWHNdzD~r`ckbT=lnf6ZZyvx`{dVHuEOoD%3?i%zWdPO<o}GykckK)Fu^Ii0A?Yf1 z_j3=^1RM#0x9_ba5xthao8k4L8)8vEM^SMOqhRsAy)!=wz%~B7qR3?-ZgQTF5U90( zhP`%`LyZktK3$bG)A{}p`MHzJo8KG!`yP4@Y1x9^`dIOy{~HC)`rwfA=`B_Z8U!WZ z(od~DRe^#RRwpZ8_ez8UU5JlZ<BS(3M(dr3QjZ;a4<{T3Se`ll!xG~>m9OhQI`0@H zL-8)292JQEOSP@JP}eb>V%o_5!1@D^RsCRNwUvz-`+G6maKDjL2Z!+wPw#I5Lxd|7 zh=_S%VOB0Jj`CWTHxoI;B}y7scYcH7s?~)SXvc(eaO9b|`lt9)%Z!pJzEM*v8^smU zs^$`Uh9qA?_;hOH<A1a?UQVD5_!$cMnde|>d`yIJ{s}zRhqY>KCvKuA4KOj!l>P!n z8f|OtIwp_EuOJ{(@NTHUs_|}_UO4LWq{|bAfRhrWc?&nmAxte_;*D0W!IxoXiBIm% zB(K=R;Kz^DDt9AMAfzx-)C_-GC6J1AGm`ENau`{7ktqX~%Y5Hn0fwHO8~W5S<Y&_N z$9*GD%T0DP?2Ep(-scwQ`jy8E*k$D(KYF+EU;K~m<%t0HxLm$2)v?8L{0FB`__=wx zL}PilJ%rsWkEK?TJ5U`smama~4qh*Vj7+jW;rA85UhpW$el=KH*vQ}=JJmE!JvLox zT1CRzDuSQBOCN?u(^pH>v^~_^rq9~GnlZ3hDwoc1oamHF=LO5==av&qM@=&^l)K-6 zq#G}K=!1p$0EaI<=8FgE#cnl22vZ8)Be(=}&$!>bWbsK^gebCz&dtc6qffU%RT%c9 zdnW8T%Y#pIzr^B;@sibRaRmZ?S#o55x$|L!hCm8D>=amFWxc19-&le&0U|mp=G|kI z&Bbz_$zcgi;xNnAv-M{1CT1SitK|l5&48UP#x?suvecwLCEQd8?^UJ)?~ylXBhJ1n z1D}hr;Yq==@t7z|By%#ddu`u7|H)i$S>x3>yL%OjnoHC}1!v<_Usw0#wE%k~WoePU zIY6*HLYkbc0(GhZVWPEk>f-3T1CBbDW0l2<dqO`^E>e-DfuJHwwdd1Q0o~r)oc5;u zEcV0AAJh9GD(`YNk%zW>_=97|0<4Yd4@P}9eWw!`x1HR&xL49op_;{IetmwyFFd@n zy<wH(8b+i_^BwUG8l>mb+fithp$C2Zg)rbRRD?e6(FjYMnS(JA<?k!NJ>U`o;N0L_ z8_9Wa-F?6E%vE_AIUF)2z#78etFcmFyggzhi0la>v}rRsOr>@De5SMeOn}Rt2+4o- z)1)CXOg&tT$P3cHTTejmDt6t9Nn&2*(@S|4;a;kSwG0)<=euCeVOHtIQHEQS0-h+V zQ>F>4k(EiPMaMt|SEGe~bC@8BxXubNf%x@3cpi5VG=BnPY>>?3?1dP$0MYMbo>gRC z4FzHD(5X*GNSZvz3`?-g4RJrM&e}kwYl+g*5whjn`!pB5ySQ;?`D!bwvq8khKFzIa zTi%peBf3QYy)HyRID2ue`?@uC@6ky3!xl3T@{dO=6Bs#=Uq{Q_{yceHcGt)6+*0HG z<x2?p<u$bxMU=NE*^A*86VKWYSwe;~st$H<wMbH_p*e=U7Y_21SK<n2(~}N%-e%vH ziH&ScmU%`i8XChH06vh7z-02mPSb7758@*ep|)QCM=i5UR0<Wyot5qu56M&UQT6ub zR3n5;lIsb^i=$1(JKfb0;n@xMMMcVfI^&@6dYIGK&c1O?#q&PY(!dWUWArIAep)9m zDo5)a9(oRv;1(Qs!@>O#F%h*t7L@34VYXE}_u-Hpg|xW;1rNR!V2s_<5b;3`n7(C> z-D6NhA3V!{fPIE+6e|z6nOYYfOuqPC)S*^V0p~(?maP!T9%uzR7};oWFfcbH(m=I= z2M8~DQtR*zGd-gC{_#IQJ6_GB`kk3gcpWpi%@b;-d_w&`60WF;iN`H8^)h`h0?V43 zX~%9wL2`DP4m=)B%N)WNYV`<KYZh*Mx7_VA4p;qSFKh0dKds{1ZAxvv|JTs3!M?#1 z2WjmCNqIskJjZJRk`BA*Pf53-sV#?_UAWq%S9npMSM8TJUaS~L3ixe(<4t(2Rm?3k zW1dr}HC-aD&|y4~`&I}^$_C_)OV(we0ky25i<van?!sQ#<#`Rt=gN_!od!F-o10*7 z_Nu>FFhjqa0ASha9*XNqVcbA*4oJ34hjl15$c<_wz--o6@=!&P%>*|u47l4Q!NOV6 z;mIB@yWNa62+o+bu^7#1ux0-^#*{B3p&jo4R>IKj-|zChD~6(IasU>A^xxtBK?{vQ z^X4iFOV}+@){f6nk2_^whiKqrPs8C_`Buv_m)f@&?<Q-b%kN0u*RE-vx1!t2k&W{b z*8G&d5L?qzs-e7r0A)H|3_)3mTb>i1!ZO!Me!qyUx`YSu$l6GAj87`Yg${9$V0_&2 zbl%UasN)0C*P43emZRp3HS!N%ahlji-fjd*x+6K9D8GfOgWCWO``-D!2M7@bZuHV> z*|k+1v0vLUb;jQM$4FTCW^*r4M~O5_HaDTOa|lR7K8mYY<d>vbn%cX}%h;$UNhI>& z8)K{dyDKvtWYh@3%57Md%(1s~{C}wj0Eg?!t>4FW;C_L0dmGE4VOx%VN+j-e{4BJW zDR+cN6N=gC)#+CSBVO!YG{^t11^ox2pCS~LAuk>a7h>Z_ctiLi4AWzW`miR0$6WUo zALnZF^LMv{%(%7Cb!-@?cTNCwil5!V2OykdalO}l@Wm^Slkl7$uPIdPs=28Zp;91z zlDXomX^YXG;ytaAR)yP#a0S)7Rkj7F^T0VIRuWxL9WYK&U$e4;#|?N_uG9(qK&+$6 zKT!ENqK%*}zvRqG-apIso<@JtOjJYzz2zG*6ZLL-+|bubzzGbAD!W8TILEh78+fjP zD()7OJ?1$8HYGI|0J|SeS4nr7W!TxE29E%)R{qUhk)Ys#{0%60`^Ut9g1CUxx_T(} zvyH*pFt@!+SplFr<W3xTsN|)AZ?IKtyi!mhjI5%`0W7od!rg%lcsved#l)Vh3#Z_K z!|-GstDiKd4kBv+b2%2|PG(|GWTc!7MZ~lr_%HE=`MtskD9JBS;F+=K<WL9b$Fvvo zaIzFbPq!}|Kf%ku|AdY3a$c|QZQ?w?&TvY>YdI>vx9sM_TWWZ{V)edbvhWG)4RdL9 z;#Q5{+f2o$6PcRS!4zgUt|srl)LXcwP+~iuUYEsTf$c8M)S-db=Z`H_(Q<oaBt($q zf7NDFKpL+Z8k9mkhqVvEMp6mrlLT}UuDI~evY(d~z+LmeduFOCa_g+F`gi&Stk+s@ zDHj-_det2iW?o6aPIXK`N9O<-D4L*rL?!)K`1#msSrYZ9?D{4U53q8<ky)ai*c6XA zhkU8bcGX$jbqUp0@(e8I;vF2fI|8;*y=-0a2N(Izo(BO11ff6Nemm!XoOC80HdqFs zgT*q(*wXsFv$u`An2$TAM%$OsQ{OS1XPZlT$7#LSX4~~<LF`r<SIgN82soFaAJJiu z!K*&qiNuvuVyut`W#9qjFy3>N&q-_(*+-x0B8pCm7OHXOFVx1K$a`*t3YhN~uGU=t zD)jm{mxbB+)bccZJ+RyU9UDLrieW<n6-q*aJTc!V6Y5rF987t}32=Y;&Oi!dbf3N` z1x@Z0Mjca_RzhV?lI2uH$AyztDoSXT69srU8H__bqV*e@%6nB5LzlCrSgW;F+anT= zrC_?+>cI4HB962j;D)SdJ!|RBQ=}En_~^Lu5a;;DONCKiT*&|=Z&W20NXY?gfWXD7 zz3I@0B_@#9@OOX5%&(ZBVqJ(ly4FdM*}9<*n?vpa5rB#kS6ep6w<w0Y9eHIoAT6Iu z?=fJg65mhRhZAgmB2~{(13^IkWA#2wOpOd=3;qd8{_!zLEMv%d0+_d>5gD393N(s* zE_*r$RUF!aae}e!>JyyScaX<zEzu~vE_)p_?3~23-Ct#j98h+w<TNz3)+?mn{Cdyz zC`z}AC1f!X3cCw>TkHPKe*Q@~)ht(AcK2ekDxmLHYMj=tIP@`~uOQ$`pD!veg8+#; zc)+1ndN;%PIz^1q-1=ERVafkP)m6qtxov$EVL)I&kY*?;0Ric5k?!v9hM`lCk?!sW z>F(|jknZl5Zr<VCbIyA&zvlzr=83h|Ki1lNBfo~-CI0B*ZFpM>`s92pO33Tq58;x) z-a*|>*CX>GM2NsRMX>SJUwI9p47iJL<kEEYp6t3=T3?7CXqYnWiynLxG^g+F^2EU7 z;JphTV?f+xwuO?*1L`WEY@ngraLe(BnfqU}hpfjAQdJpt5~Cf_KP&Mvn|>aCwU%W& zn`FE^)@9v#M5H;u7ZyK&dEIiz%$7zLM!Aq`irmCLN;8Ja(|;{Au=l0<3P}Fu?SFC< zN+<o+ood(Psu|sPqCK9L>vk^Hoob^dROEgTv1?Q0#WXd`&J$6Q$y0qc4g~Rc3)t9J z1B=&I(MB^)X=w19BM3^%ae_yJ3hn;}YJ_o@Kl*D4sCvz#aC5Z8^)f_wAgCu{_32Y? zzXOTCnRV&i*3OU+eEz{+|KqC!KjuVkm@?bntqV(2Me5c|q$MTcS>Ytsjb~#W7R%c4 zDQ;DssHb#Ngc_BwrfxophU`L4l)>X_u(=xd)YJefbgT5Htg;#@e!w{~I5WN7tK-IK zkGdKt`wr5*ft7y5v1w35s5cF(GBT%t5nJ#x8Y7(^X*dO|23rzJe<rKWLYM49^l*$~ zg(igDoZv3J`#pt{gSwq4`9kw^asNNq(xweo>q%q+TO7gyU%j1t#OvQ+#uYOQ?6gjF z7%<i4`BoWB?_Kf}`ZlND&r{bsSI?IIlDl%V9EAM)VmcXO0}&fq+;h7?cX;~@=afsT z2}?ESOG-4eT4yHT7)nY|5^+^1Wrp_*QMP?hEF%(OZ(VX}k<PO|Mq5ay8RFq%0s!x9 zQK752c1Bm!(Y&T+xbihrBCr_D#hz$#PAB>KHo4yJ$2+<1AG=m-ZS@j%rL@c=d1NkS z`t?+kbU=2ViRDXN5ayJpJum9;@?LeBJmGm|D1GNO*i6}&R~BH<78{)}b0|~WQ&T}C z83c1EMr?jJEc!tEx{mZSkij-^nNuity>9x2xBTVP{1_UcJ?OcQCyiSh0E-``I_y%* zG79k5=8r@+<}hT+x8Mi8HJ*UkYDH`E8y(=Vtpo;bguSQlv&t0UqPixDMK$ApN#>X9 zc%tojscvkyUHaztxDUu-_P&+dRQFNGn|DLn)?butJt*j>j(5XkolIjGt0_DhysRa4 zK%iXX7z0!hZVIwtWAj;vW0LsmCB((uAz@pOq^m$>90%0Yd0ea0Woo&su?}a8w|2XO zzM53WU{A?@Q?M_eFjoQo?Lzo0gVhj^=?7V}CO<>R8?!223C}j#ACih{Va)x=2w5;& z859Y{7JE#eEUSb`l?FMPRerbel2ic0r+u4TZU&;4rE)`{c>Cg#)T%*ktjc~J8CC;T z*PV<IaJgn2>2{1^$+{VDIb%w-pQYvac^_?sy59lzjxK0c8I4XyBrz90F=G+(o=zfD z-1qN1`cd6@cf23VunAZvSmpI}E$E8<vypUmKE}x{#4(wlyL@Xnmz%akG>6BoyODu% zL3eqqMnItGaP}rdPTm*=kvOuN*G1NydT*pMw}Ea1SFj5iwuQiAsqqWz=p1KwEsg4i zzTOei5s=%!dm>E^gKr2%CS%+Q!1(FzxP0%cU@fm~;(%y`i$|Q^>?cXB-9ow)ePeur zXQ4`YZ)@~-zZNBHuN76_()ILmKk&vYW4FP1@Bb~HGQem`v2k%&IRwEvCkMtO-WTwt zexbS=NnM&0<hfl1OXL?l1zhXdr@uO*Vs7=J{5Ed%m_}EpV~)eN9C)gwNMS@=Do{9f z+9@@nnfzD1e+iLyTRS?pr?CC@x>awOCnu0E3^Rdx<Bgm_RDwUMGc&gp$72yUNNNRm zmG({|#oai|9V74_buDP|14&|QFNcMpaL7|2%I-+RNNU6XTqHEyjo<WpcgHf7&C=-t zmseW~#&`Uw5tQF{P-P?Sk!lX1{lrd{_U@io6I_+txo&YMIXlR7HqLOhue(3xeUml# zvvG%w6D?qwSE!XJE5g2`r9Z5dnI@oiIve~F*UPd{9r-@(AkX97476<AkC(TV*zdt` z&$7i0E!_nv3+N4_7jruAw0Cg+2!|Au9<3Uu6frWzy_W(IBXekrz56>gTnYV|jZJn? z@esJS&F0lDW2!T~;%bcMYD<JkGy6Bt0^Y4OsWfgQ$-XX^wY;f{gU2VZDoCee@X-yx z&#ba|et@lhbM3x^=*x~`=jv*-o;fH3`7CZ()@9)pibqk6{N^CT3{Q92q+;bRtN)Ei z%{mEVq%ir<eZ`RLBu%a4h^qjFYRTrBU(GYt50O+=`ckL^19M~n?kRrykvQ)5r$XvZ zf#};MwJ+{1!i&|#os9d{+Mx})M8lYU_LcS7x32a2-lZIIxp)HW+nCQ1<oCU2G3j4( z-yTF%9u7!CA~y5~F^$SfZ<=75wTDKsT>h>K5j)m)Y{tghC?3}*xB?GA+}D1V3v^(U zD53?nuL!>8&?ane$etQS?<#%<F@4gJ4Fi+!<Zh968s_~~ZA=VWg(}Op>`d{yY@$H9 z{k*4flok=xlpKl+6{fR^N(4fJ1hm#RxT|ZO(IEEO@jip1fY1KAGJCq)Ji6UcomuGQ z#jqqZVNoZL&TA#B$dV<qc{auIhv|RWHK0{u^7jGhansD(Dz_NG)g(thl69BA%i4gV z7<D)V0ke;GAZ`1YfL#r+E4^xMRNp5&)JewvSn>~2Zeu7uJ}?c#HNr%HV|HbrMJVp- zS>}Pd(iqjia1&mYXD8;BIYe}9e%2h*g03JV9K=f6VaAeAHeYFdCQb8dl)lI3NMUZS z;*ggJ4N=@{F=;~8`K+Xw0pAAUyN;EmZ^!;KvK;OCXSbCZen#a<?Fv%6g$8R?`$K*x zC|Nu7q86|mRWX(dq`!SNn*0jT|5L$wzfJpcdAMI=mIoFGEm`19Wk)GPD((pjJizQO zk%J$2oBL9~%XI!Rid#&D{d&-Djyshd(p`_WGw7~v5MpbqC^*d%gZdH+&?^gJV)222 zj!q~Zb?}uNXmdKV-$3v@mPXMUgcjf%C}yN#keTm`5*$FH$T^ROn@Y#*Z}OH8Ps90& zmNxrmeDGMK`zB;fTpd6$UwV4pYE7pw+0Kb`Ymo%kdT<W)wlBbzj_i};RyQgc1oIs( z<O(OwOL2yq@0pO#AK+XQWWrqJ=DrowidOT??Tel~1pY<vTrmU=+EH2?s@xTa3$xrR z22T=IJc+N0ZhyS(ig{oDA{IHA!rtpVy)A~7O?-b<Z!8ysT1E6sBltI3`BztSKX}RH zRYZhFO;3OO_IS}O086H%WD24pDd!DUQ>!EGtm0DFS}p8&L+$i4s?|C#@Hct>GE`VI zV`8BPWd4MVB_$h{(a3SKHn>K2p=Js-IbQx|M4Dtoojl>TSnT@<HD6~WIYfJf$t{xZ z3XxivrJ9G2@_Krnm&wfKjMv|DX`8LslE-~ph#+@&^8)=9l$*ccOZ<@g>>_3KTqQdz z4Em%^mZ(b53*98r-NRoyGiBU4(0JGJsk~I2cAJO6Vpw82E<)=rg`Wl@6h!|ZF^RsN zk-mOh?3bi4R$(q5_kISJ)`w+Tu`fLf)*u8uJbVjj0(!h_xx99mGyDwfH_C|9)I)g_ zv3AFp5TN)^owQ_<>Qeth_i!pt3%)shXK$hO27|scsR!aEfr-hLg0C?v0Yzv_4~<li zH-)2(L-1P0b!->@+5jG!wvPe_^w`UKIONk2@1iBRpz4l#f`OX8oNE(X=dbQiKR${& z;5hU(y~WAHuR5TjCeHaviyy-#J3Hjr^Pruy)suVh`||_FKrh`^T+7z+OE=@?!ci-O z^~cB&EQ1{ejzb%Dp9cX4vKse%<{$*}N_`Sb9ynFsAlQ3)RPc9}SGcgPuL$+*&frn0 z)t=Nm&40=(#MTR$8gL{ZjKxVg{V|55Zv*%B*m7GkZMdj1(~nNe@<if=L0+KOg#Cx9 zm{-;ZuD!er8i6L8a~5OY{P@zWtYWEZ@YX4!o>=CVH3Gq_oQ7s?`2Sx?s(~`{SAJa0 za=v1Su@_bqKt|yi8LQLkwU29rmfX%e!BqcAr*F-_8h~3|&W4FN75E2e;g+=ihI>OF zzE&@{J@XlXHuHS-3WSBfOjSSemNZG=6OL_jQe!Hd)q4@=TzZ)eP!7>u9(9c<d@EGA zYutP7N9!;#bb?a!w1sW@h6MS1oUgn-k|0@R9>+koBC~JiRW_FsioYYo8QHU@B#*=O z5K0}d279_5h=i@H!uIEfO-=eKI1#u2bgGR90<NKzz`WeJ6dkGBOP`aQs36OO(EsSE zm#$Jt*M=e?>N{Q|hov3SEt*Q;>6yy+-Q|X*DgaVC4G}HRvikXpzx{GaDoi~7S~0@e ze{N~9&H&(|_V~UUe@@i~B-)@U{chS36=4?B77mjp=esWlcgLqBd>Q#fd3(RxHKe%s zhMq#+Ou=ip<n(q<8H*U7xRXT4w0{tXDVmGOdodyvP7L)T-8XV9223`c8G3!V5NoyD zVi*MpD<o0{uzc`Nm9Elkz8YD4VxWeu>VWhMts@T6C0vF~GXMF_dOgK@O~{}xc9nbJ zAHk{$aiE{$?7kHKOND2EZ~6rO0yHhpwaS>89?lngb5Uo9*D!EmkY|?dY9Jm$fIXoS zysNF;`PSL}iOHQ%)8K8-`@chUd0HES?CZ;24RgFJ!-oF85hZ?l@_}9z(8(_ZJFp<( zbxG+CiD0L!tf8D+7u6@2oqru3W~f0gibM<$iJXYMxFSL+^u`P$0Pe$iz^XzdB^(Nx zePIVTHpo$lDwoio36NX7z8&s=&03f~ZWmrydaAs3Q6U0nwk3_pEK&K`aI}>5h0SqM zlj=me_<WS9Jt<LOJF})geeVcltxCpgd#)BHwesUMw<0doiK^G8x9c3gF8xO#J+qsF zR%x1xr7n~0O6f1&NnC|`E^?gSdK@qNo)6kNQPLCHsU0(I`5C#`gTDMHDI@Ao#^=@T zZ21;P((`g(#g-018qa<w#6?B1Epnn!n`QM-_OAt!l|s<>5U$3Q+7EX%Fn>SFWBVa- z*C@{E=F&=>Tcj!AF);<IKD^BnoLVO3lOp+iMQ}BCQtFJyLnS*wCM&f~SUvpBt)XvZ zS?SLxL;}(?Q!hD}`^pXouaMzL>+vD}*xc+LhG4-NLkXD)&D<Jt+vHFskWczQX5oLn zDlsqN*`}-I%(g7~>X^t{b74f216lz2Qou3*`gj|ITg5e=mBGZ^iLKH<N{Kwx=c_jY zxP$(VW*b~#(!#r21b?!8b2H7c&0K*#KVR)9QMUTBXQ^5svQ@ndy~h`)h6q+``L2Ux zWpFF!7}d}?yUm!7yH2SE9UX=IM^Ex<*0EvJAF|u!QzMoYZ51PP1_^bwh2HL&M5FyW zU1a4O?V~NN{eC~bdl&DKcz6%(!ijkt6pp<pmn?%lwhm{l=z`b?*1D32ETRFznfR## znEAb7#=nXxf;z;Tpc+_h8+{&4iPv=EYpxEecb3x(cG&vZ%if>1vkj^*(_DI&K2ts? z;0v`}%bDLIV5egK)0=lKB1TqlzABUObn7U2WH3a0%ScGaarsWG<*rv95TLA+pHJF9 zO{i((UKj0Q;7wmJ(*^o1Y0y=q2?)qUrHe}E#vBL5P@7eIKAB^mtVIuV!kH(*59EEi z-E&OgaGaN!&_5O-h-$uIhX@<5pE>d*C+-W<vt;Jy6<(KrPB+$R?lAj;*pe;=bRSEI zpExL=iqz%`_`CL;j`~dtq`c27S37dZ32UV)R~wx&{()qW<_Ijcn<+rH8&Ur%eG6Pv z0VaXiJ)%|kjpP%y+F*JTfdA0%WMY42?PeF(0-6g>et|s4yuv@Zye$^d(F6EqAOtFa zz5NJMFR-f_v={b7W<qIIm|cct>f9en`A4W;3M)#4OH*s(tnm5`S06F>!?V+C9k79S z>y+btBtE4_6c&~aKKN#fg@@r4ewoJAy{gn|4^(6@|8d&oJBc?i)35Ni7g7|9>J+mK zk00MHzvfYQ2mI~b2y8*S2N?h#xh4rJfZ`ZQ#x8-+tK_E-*lH<IUflv7D$f~=ud^?X zcV()EExBhoZ6Lz@r`WtsD$}7qOGz0#fth|q$b@`he}7#hDd}<U213XTHM$s;>91X; zo(&18-+MfnDB@EPJEwV)2RkEp6drjZQvQL-jytxo4NB%P_Hob!R6%zJF&FW|%M<A3 z!MaMW>~sIM1qV>iQslD@9RBg?h|v*cbT+>wladOMtX<W5cPy#|=5bE$5#8G&>OX$< zvkq7R+$@V#r2QxBWO+<M^=5#+8V>!t*D;5LxhVs(ogAuk60Q$bFF0a<3QSRvZjFE5 zhtS%^^ZW-l5YFOAN{VQ1^}$K){L9A?%K}XKRli#3c`4BclCPw?nQhASHDIoTj-<oj zC(fExXmxQudM1389wu9Gv&TSXVETELOlZREMQ>|KyrQqpCDaBTsIWy<-|jH><Rv7C zVgGRT)Y&EcT@TgadipxKSz>8+2jus0Uqo9(%WsEn-s?b`qYG^iBxqq%b)KhBpt!hO zZo=@11L+`SdTr~all7NDyjjX=bJ&VL7z_1CNb=7Ek=S?|vR)jN(eR`=cfc`C{>5v% z(de7LC)$5|ItUZ9F3wBy%$`fkUJzy;5PSdr;-0!sdQM(Is~FlCEYy+4+b9_Pv<G@L z?RBosy_!ObJ<~jMr?RYfz(74Molb?V+6mJ!WNQrHKt_r7xq8jVLc+}R##BS*gkAS` z_XktPTSZ1&#3V{hKXgYfDeper%7BXa+J@21_Di@g&bjj2Jrkp59RiivY#yK~7EbnY zhoZuQs8-Vd+~QwTI|1b7r!R<>k|Jc!9>OnwsIq$Yc^1vgC_e2HgWhbb+XUNJWbKec z+pG*0e=YRi`k0fu)ls)%h=4rqSWTk9sTH5T)RPC*2^MA_J^dnTBMwz@gmTvZaDBeo z>>If7nl4Ib`+_sCDDd<UV|gMrA6H;GDvic@%G=;peLSl0{g?=}KkqJ&N;E-7VlMKe z3xf8GPeUGSKKYg0mnBp)a;?iAAhGb2BaW-}@{mq`uVe=poH&1_<%m~@85Cf#7F!g3 z;sLZq?t86>Rnr3Eu>VQ7OK7?+r?!K2v^?%biP-^PoZAOD`2GCP=;Pf1)--)v`P+2H zFuyPTadpTh@}nMlLO#^>EH)~aPyI_n^QhNk!=%36`jZzR3q3xN_~FSbtmN?T?d#iH z!ux+N@Y?m(ByuyuwsdO4>cB*Q_lfg0ssEuZMa5D&lLU2d7-;a~5zU@Dinl*6B!M9$ zr?C;bT$R3=&A#Q)y{pmfAo=FppTQP!9NVLM81}L$;3~DAN!P&c=E)f7iJCzpSQ`f> zdMpVDv~l;PR0T{}E3}1jP)CX?%}vUykOmTU2rm>7HyW(ix@|GU){d(n{y#;{IQxNm zq7$U*b~u79NB(Z><O*hM4Bq*)IK(u~Vv)sYC2JRo5-DdY(VqP^g+^ADu<LhO*>ZFq z--oEZMAJe|B=Mz7+0)<JE=GL)+u7K(%K1#$q&xWo8K;sADQ1Kjee>!_0enHFhjS;w zpL5aMHjtKirsXn)#f%lPvNL|?UM8W>`XQ5L#!Q;v_EW+G!?#06k_w(#)P|m?-~Gh> z6BJGG5&jjc`2986)rC>$+rM#j^OP?GF?uqqyqySZ+pl0vEM&B*_(k1hAu(nc-Z)K$ zlOOh5B6RX>8t|dBYQ5}`-pmOv|5`-R2xSb(-xa5io9B<QN|)5rhL@Mlg1xLB^RaUe z`h$8Wwr*wstHS&;C~&@1pBLZb1v=JSIfHW-g0g46jJ^Y2kMy|ApR!*`lnW)Yzfq^@ z6(4GW&5zx<ATc`C%0jmv>K>gzajrzqf=Aj4&hZCFbU?=i#QPg5-IfQ2<k>=2X+C=V zEz34P@yn~ZGI@BxzY#y5)E$v;%zXOt72=LR%_Jpt5t>osYup1RWj{Zo1WoHb-&Y^5 zA29nvWW|t#X(sR~#gv(EHw^4OD88>A=)ms%HoLfX-F(;~b7pHv7x<!78DW?e5l(E@ zs(wLCu|58E132Gw<4m|=%A06I_+}6~B`D*bS(axeYcf-FETLd*RrW)iY><VM!Rw$b ziR+Uu768S-#)^r^xr~L)I`&=G`gF?t=EPiHr=Ur85*+KeP2<N0!@<xLPWFK9-XU}@ z=-YY$*OIOS7<B-@CeFrBDj?yJ*L`U?Un)4ex>{V==*LfS2^+)IFr5>c74aR0Z$Bi^ z{Pl~gvz%9J?H6YNs|!tEd&szJ`Pc94=iZWc(_Vv_c4)lSdQb;2uIy27-5-Yzdcvj4 zZeXccga0lx{R;@tLCHsZt$+#!rRaF-p_q}%Jr~d3>Nt(MU3>upTq$kw*o4c`PmsjJ zU5T=E!(?P_dITClvR}pO1vHscGiH}c>JHJY+!-a8mM|>jmOLneIVdR5@guNB$2TUe zBLglDnM2N2gFYA(18+3clYa5G1A=_Sh5Roop_0037NG4T3xeG`ory`Eu5OLK@iL2( zF}_h9V;n)Hw-bvVT#in86%1M`G^5(jzUg0v@H9y86JyR$RwHV;<RX~aq6_N()W|~{ zUoRo?(g1^zd!m?CRY81s_xYC8`V&?$`|2q^6&2D{nWm9^J<9dvnk9&x*n;tI%#WzU z7W@eWHJh3sWdgAch2q99z({=_vo3q2o*%M6<~EVp9TCV6mBn4P$I#Z1sKyWEyLo}M zOBpx>q*zS7?x<~zI>PSm?GO;Q%{D{L234jJ%uRqd?oG47YPKHUqJyR6Y8~4L^qf&C zM}&u~Mu9p87T^5Fv55?W_A?d$9=?X+6Xfkg`&mlrY%2lErQ#>;+V9pC$zP5twTFS& zl~V$|W^eZ^(q*(i>xQTFkG5WnTQe}1g$w;d3ZTtZ90Z<?FV54hEpe$IF&uCXa?p5x zk$hM0;3{z1qGrN0!L{=_K~KG}EQTGWcwndH`&TxjjXQF*t+r&AN4pCM@s#*c468M6 zn(9>8(3_dvdjH|anfvV8qWFfS`VQ|6EngRB#8*tKzH&IgnMvbkjmC~w7!yYo^Jh1F zb#u|fQi|he=`%4ryvoQzn{e$L8?vwawa*I(TmJk;Vpl~uV-J_6YV%(Q_<Xb6*~YS) z>zcP<gKkmTg8tk^luo;F#LG||KERG2J)qv}wTi#|`x=W=xRvjDvKWMk1PqFWP7LfF zyaU)lyZ`y8{%Noxv;#EtC3hl#$XzE@(}377oNZljmse(u50Xe#hji0h$ukiL`Fr2N zoB4r;qcD|Ik=^q`zg5+8uC91DS4~;vn|2XOsPoqIW=eaY(_=5M<fZMWFX=;@=L;Kz z+dl|kqB4GG3)IwYfxV7(R~tH~`nl#Rfb0F`5641C!A9M`8Wl|xr?qZ7Sdt0D)LC?5 zT5@WlVK&=hZbl*}9ypN#BJ=z(Fe~iPmR~nIwx6s>o8|9nRcnn{(kO_|tDl`iq=FQ( zNYm{U-8(O4aM-PJh{wvM=(W&dX%M~+_B>O*=DD_OV+z(B5$2%uZ?sJ3)Sanz-Y`Ly zOkld{Z|-Ot!9U$t>{uDaYxHb9*v`;9=<I?u_F&_(r<@#*1z?r2m!DP<#g%f_>o2WA zN5gCu?P;B63PCHBCyUP8V=^Bpqv)RQC6^N&;wP%gb}(Z!>6+a)oNjCIuWc5o=^HfE zG-f7eC*@a&(OK$htAl#b3*U$jisptOpB+XOA@zK#6Y7{#??GpG)$&wO0(V_%7=2ec zG1}JTbGSOAr>tyUaI#-wYm-F2+3p(9;Y86gpE4*dAEIsDQk1HK5p|TsxT|Hmki))t z3nC4W;$x&K<z^Jf(#(QIT+p%_Gn(dtF9wgXUaK`6%Su^A4_?YIrF(1cFHlOECj2ac z3!q)%r!TVDp~2{7(H_>L6c<Z2Q-CX>%BhPo(<A-0B!mPUUtihvBT&~F4De=%V(Vgq zvQ22I7~{+UN05}#b2fG^rIkGx-yJ3>oGm$qjl9A^>mmt$!F3tLlZ^RTjQA~zYCTt& z)&~4yS-BR~+o=<B#d$0K^6sE#nHrJ5fyf{2jDeRoKl@8kt8r`gu^(}A9+W905R#Pw z0>NY&1hai5O9NrchNHx1MSLyw(aKu+>v<}%6%Peqe$u$wIP4lSN$dGd+2>TxqdMSq z+p(Q1xa>mao*>+Ij>n*1rPVreqt6vc$mitqwJj~p>8e%B(o?d;6K>n<&iKi#_o=a$ z7Y|;0|89BzPMcfE=F<nhPnm6T?bw7YZ@jpD%Q#~y+8XVA8Y8{AeA5HOh~0H}hnRpq z288#cFyJe8{t4!CKeh5&j!DJVTSe$tre1tvK&p`B5p*M=fP}g4>g>a=&YLE%Up==s z8y!ypLy$17t>dPSCFc#*vdie#Z769~;O%c9*;Ur<PeI`ijw_W@fEmjN*T?OZ)<s80 zp^FMByEdC8Pdsh_Lb$8MdKcDl8mn`%PCr&U?(gLZ)(%_|nWu59haKJbcR(%klghDf zr??D>A6|WX^H>Ts!{4StRx#ks5&@k%mXxPf^rznu0BM1I9-td6H`YuiYn>)~UhLYY zw^^A2lvEmlhT}n!pA?9|A71qE#8^QU_S^PM*;r^By#<pKDQiT4HRsPHe|U!-RJB4o z&ABWrioM<!>;2+hk_m07%cB3#cQiRAfwyl+A@y7f^GWAK=g6$JwbreXmV<vlvl8Ak z?`Br?U{gPME*Tb`Z=RJORB6UBYLTzk-?0&<KDW`fRk<Ui@aAS{+CBc$wW<;7x>cC@ z%BAS99?VuL1Tno}B6S6+;@j!IZz)exelJ_GOT>gC|8auMys)4c0$qke<2+Fn<bC(a z^ZKfL*R^$sG8_T_ymg1+TA+neLtW~fy2~Dps|BJbbLfMMh?gz4w|fLYWEJ^gEzfJ# z0n&88mVRpJPI8Yh73S$n-w(@j<;r*Z_7nkbw9TNO7q!n8W^`z!h|X}Si%S;%P;Ay2 zajVSx0?&KSbye%|c`&z!t8(He;+*~{Dv`()mdmSfO#D};Zgb~P=BG~Vfx}kiBVFvW zU1Xv|%&J4o2)rQ=N4Cauxm)xBu(#hc9=7Ns;_*Bb=U#D_8Nu)9u>{8TF!u-7IzHvx z?@DENO26@RW_s|U+GjYxpI4P^``9$~z1V(?`SL2|?(#C(NHMn^Rmb7XFipV*=Q*}C z`xo#2o}s$hCJLS`bmD22GUz|KO!YUOK}&cu1p~Ue7OmKmCc)Cz-)!6^vo6aeJpD3h z)x?pkJRZ1J7Mn}RXo9EZS+zI4ev=_Zeb1>NkTawHTpB86nH}y^g=ZUF04vi)@wb}L zN9Nf*eqQs}rUE`vPSZr~0lWl0#$yadQm~eT=OK?Qzh+UK>ucKlwj4nRd-KW@U`ylk zlKcb5q=6G=B&W4s?)2~HAqTVmc=O+p2uL$7takRni56p@H1i#BxXWh1Vb(hgOCwd) zB|@v8K*fU9w0Q^Mv=S30i6IZ_Q8Ljk+JwF<{(d}SNxxN`_pen^&|oWpu+tc(N$~sw zN&r!$hTfY644k`)0HHkcSwbYL4`b+F_MxwIUX6U<yV20<PXmmS)PZcJZ_g{SeFXIQ z{Aw?emqs!JuGX+T<JH@mDw7vxT9)ci67RD6@^P8;Pv~b?2zprA&}0z^s2SzP!L#bF zVb$dhV=60zW~P?PM=QSdS?gDw1<09tNtU(fWSoXLNDc%?CmvUU_01`-|3hH?N&og8 zz7h9ZWDyL~Mdct=R;6>}WlHs2@f?B;6o~du<T?u^S<zmvy_qRpk>QMPGCTOwfaEL< zoE`JN887wR*>m<!e$-O|y@Ay@g5zcUwF;{(K!@)_QI3S_L?W7R@I#=^m4XL5=}Oy@ z=>`dc%6f@YmD@K9UCLo~#AOzLFiE84hp}q6xwt~ot7|wrAm{MR!?`|OA5I^l5k<-+ zntCeM>n}6jNB4lVpWSm9P2^7*9(Z@|cbos!Kh-wb({gfg1v1LX`hJ;rr`w&$i;%$a zM(c!V`Eq%O+g0V{k6p`R9jDYHB4CMcQJ>4hldTQ~x^Ci_+c5OkDhmiuT#Z{jxM-GW zmL4wUPG7VCjO!tteT;;1gzdA;a7<{n$n&-u0^J%Qg5XYT2XA(SX%~;W92J|>-;d(= z0Xju_I_fj?QA>9QzPs)u&)X4$?TZSf=U7{>g=<#!=4UCQaL{93H|hn~jduTU)J~Zu zdJZ-tu=SX8oyp11q`I<?>uBA=bxN#M&Fql@C)kOOs45t40@*@4%T?Ee53o_x1^dM4 zVn>Oa9y1+<4?yU^#k#Z4ocQetN(rysH__bp{QoI{|CsPlkkjS}iQyfl>@$w6=gmN? z$Mj8<_~U1`KSMwJhhLS-kakD2@z0|#AC_0`^@p+==~B5~t$Z__`&0jA^VcU=ujyIX z(e6$|X2+R*^Ij$D?lKP*xC>*?)LeaFyRr`lp?kR84D0lXJaYW0k}RXQZ<*c%ST%ww zOFXu(-WJSp6>WFV1UwT%AI<K`>z!pQ<isY7olK8L01q*i%G)r@5UwwrT2T3P5Dw4- z9XRfE$0o2$efC2jTvN1VxW0!kD8Es!f2+7#x<AMD)3{ejGQ5G$YN(~%#s=P|5#wR$ z$S1T1>NMVafqP7}GDqXTLnWMB=}2nj-S}oK2S&V!ly)MI(bSjl(aOd66r#F|&Kn~$ z3_b~G9gpdaD&+7j+)7FXZeA&fw_C|T@~K&GH>O%z`p#W3&FSM$D&39H)nDYc4Y(RZ z(1D3<FCF@4m(#Uu^xW|3S2LtRa^tp`ty9ct74dn2DrFr=(qu+OtU?0v3Jy?j3)w+| zRk+cQ0^g-HKN>n0b<`8weSOkK;fwN*;`uk*5ClyhJ<m>TD@$fRd~es{J|yfHkql0* zzl9IbJC0R8=CGxpWgKzc)tBf)<2isK%)vn7Uch(r)g5E}J}0nji;NMiOB|JHRp6Tb zWlV{|aXy?#ghEEm^Y`<C1yk*Edd;KWZt2fkKIVZhf`+e)Q0AF=MGIBz>CX(wpFClr zHU`9XpA`Ik)_hD>Z-2Z&j9L8FpVPlm_8dMj9<P14wFw|IT<}aobWC(HPjG4BvorEq z17WgpK6stUpQPbJ2L<ixGX^A>#)hDMNc^$3&s@o^bfNzWyZ?X8&L3uXb!5^49JVJe zIKmPm3Z2yhZ0*cx>-g7g3wH~r73qka0P{pQi=^@@H^-6(mXH=#k!4~+=3fuUjRA?5 zYTWFnV~}?PV^j>_^HjBkA+;LYawTJI-DfShrlUyPC}DE#z)RCi^nv0dBfPu_(a&Fo zx-INi@1oo>sU;mF6cyh~;iQk8z#xvBspIWI1xN6+!3kY^mgIeFc$XvP2R#yUr#^kQ z&<vcqU!`>x-%1vm>bK^XYAE)rv?`6Heml`@1-%v@8rIyoO#9H(%3FuO8yfESz}x3K z+ks37_IynDcIMo*WifuOpdBUvPz3Zr*LJ?F6My;R$6=-Svpf=2Rxybes=1aRA{<$! z*He>EUDmCbJv(01YT2`R4x8|AG)*%`_zLQo0&baS-!`r}y86vuE0tNFREN(K{7Fiq z<4LP6GE|-d30x_hyRNPoT&Mwl;xpL(v{sE`Baq><kPnaCpeSih)lu}D%3ReI6o*B< zrvp^Tj_xGIoRO(4-Ihn(&&`EJ63D)6bU5|*-pxK}({AY=T#?7$@@g`ANA~j!g^;d> z3FBsG+l*?)mu+oUI<i}YwBs95H_S;JlBimTWI5M~EeI6Kj4aQ6CHzbtnXP-28r}4! zUrB^6fnsD^>>%b(U)T{ZA_f-T8lv=Z6+y;1V!iuHX___UnK*nR29q0hU;((8jM<_Y z*k>sEB#%x>Z7ZP-4nKYc?Em%J{yD{Al^7w}fDB)QhjUlf;F=bMU@&z2FjWsrLe`eC z3rUyH`?ZvD`GBp1-!mbM=qQ9KrH|*BFvICMl`;EaLs>KV4|EjXZ@9|!PAA)&Li%+k zQqdG|^v|DN)f~w|K||(bfZ4&pN^Koery>(Yno#{r0czI5STPiCI%JUi?ShRc@a0DS z{g6OtgMJs^Fx7J`vllfK_b~QEt@B~;N7t={+KFd#-IRm^xwTM3Qpf9fk~0y57Wd`_ zo3r?AES-eL>>t*q1#1klEKR4wZm_+e^($r8-SROt9{*!-##Cl~PBVNEOxL1>q@?v^ zJ5@a1dq%$q8^ysr5r_gkcz`c~zgT(ta|U!%JeZ$<Z~Y0QH)I_ROX5hkmZ%7+`8DvH zO|AFN#hzV{oy+6lE2j<TI$DR^*VAgb)|L%`^z$_DVtIa6oboFIydd>AbUOtBP~#3F zqZ$>RJo*%mP=Sf5<<8MtEQd=*dcP#j7${aGZLZ39(BfR;d{P<q<|S7C3YwRAo}o$X zAAwOvNRtAaiU7Y>VO|rq7zUz6#kdukjB!_3<Wy0I6ak&hSQ}1qo&(jQL3P)y2A2VE zy2B~C5hbrH?o%-%NA?S*UsVM1<zsX{u_XirH6JaEKRyn>O%xzw7|a#PT|7J%2Y|$* zqErL)KyWV){nyjK{5+cA2#8pNlecKUd_MhfZ*;lkuACE1@E9}pD%d5o3}vT4up!B| zjW<}t+nxmL9ED!^IU$xGzUQ%D?h8j@Rt$=WXZ@kAnHk*uB*I5239gm0a5+-OezI!L zSvF2nMY9t1O|P@Sn(_!R?f-oJ0^oo}e?aYM0q2;I)1|RZE>AHKS!lbZCU%64{i9(0 zetECfcDR;PAYHJCii_U9=<q&m<N|_;QcQuiWB2J7lTnijnc$B!Lt2ewJwp@4O87UL zNd(CDg`R;I5&e}+CIps&%>VnO0lV1IC{}5D;G1gf<PsA#`B;LBJcr9>5q27(-QPE@ z1Qn;V#jwiU#om$7m`?pNNI^fb-##VG@&|PJD^6%S3jJyza&VB#{W_=4!a$MclC(pN zu#fm1dBeUm_&C9P)o0^Vq{z#jIRBomB>2Pb<J|1koHB&q!w~w<f_lr{1eY|5Ni|$r zTiiufOH5C}P|8bsRd7N>8+4VO>&Q>hFlzY&yoO?j-J{VqU22+iQ)b^;%Po^p?L>xF z^FYU`OL380?x{W+hvSsNL)z(gng1Qf8JsybB=`$FUHj!t^zQeLN?=jxrpe|B8fFgL z7!v9-yLU)oEkBwFY!iS&wYF1on&6!7Pn>xI&<!elvWQyqNqkEv1ZiDe6PZjX8k+FT zY|xO7Byun--=9##_l3|&iFYoE7XZT$|Eu1W$G4JdaPbsvmgnKlVfSMhRdrjRhn*~X zeC7Q3jpHX;`1FL1cJlZAQ^7DU|6g2#&Vkzn03@(n3m&}Z2c=Y`UG=!AVMa+70O;)c zMCSZDd!VEBt2$}cR7Z}oakaVJ%@+2vCjDRaRrMucp%rAuuiQ0%VC2}a=9#GwXptOE z-&YwY9~V)179_@`EWSi)3SKoMRfqRtG;qfK*%j<;Ode4&L`Q=cnm^@R7J6a9?vk!( zf`&*B4~WgpecDKPO_KAl-opfYm#E1sQkXyixQ92xMoD$=ciR9D9W4}R3;xen?NpA7 z5Q;RksxnamAqT7V_Ev5V)+~Buo;R4^Uy7TLdS50#z_kPcMt61EquZsIlTN0NtV$`q zjd0d8|IjYH;(XG@zR3My+gP%8(g{mayS^SA=_iF3D?mGmbbEn=S-IJZBIA6d>2$|@ ztSkt&b%cTWr-Z|Fm&X(r-R|>G-$ef^nN4n6>GVF_+^b#6Q~U%Ta|;Ju{%M#)#Bp@_ zJX)>QW7RcnJLLzhq4MD*pBsUc^_o2422o<AGB_%U(T^&Bd{k*&HCPXN1hZ9LqWXRZ zzY$6F$NDje^-DZNgzN=(0smjF`DedL7)n6!+6)6nWFqKAs^S>q$R|rZ1JgeBjqejr z2HZO7-0V+t(eGc1v)j4TK+9y(3Hqh(qMohl#w*GjZk}}asDqRoxh+~v-Csinh_2im zi}#;DXB#<0D_ccLpvYIqeav5xE<8!A(dB(q!}=dsB_Pzp#pk%gQk!WGDC(LHJDeg? z?L_O0i&GkQx2PKC=~Tld1LH$8s^{>{f`LqtUH=D2Zhl-qV&c7(oDHrK%2$WUH4iIc zpS}zoIKd=>-QNzW3ivGj8dbe+C(GGuzN#hUlrm{ZK*{l+p^Sk7?b%bl(i~)L=C+>3 znnuPH@Sy*>9dks%*-jcmZz?qfgAHJ{UPSs%MV!6+l<r*0BG(54-c7S_sqY2QXMXTL z^FFl2bFN0H0ca<jmr|=gGZ|0a+DT0G(hvPmb9Gv8q)~9*>^mwe(7M%AetkRBx5Mm( z(Xek@s1akbQDCFBD0AA-1_2OKW;b|0wYKDBeJkl?z>KHUN@d^`%V+tx1z#~n^)B&! zC0U)D$=&rQPP-IV#Q%MF<|w`5BOp?)rYeg^i*;*qZ+rHnUtCJD1O<~JG@e2`_KE@{ zgSwG)`l=rLC*i+8FGjQv-&`yw^oR*e)H(&GtTfM1rAzCDYFuAhGPO4em3!CiO0O~9 zw^ZuiH1SC-M@bC5dHht9#VM&8yEk{q!nsRq8z|fO)e04XvFJVgs}nsJ_K8BF-{E}d z0eXlPn_EV0ZB#u~kvtqf-oPhzU#wc^hDd`>4(F`8qA^}dC;v;fy(Id4epW<+O2nts zxo7)zUkZq)z+tS7+JfiRE5Uwf9obIRwo{%j@|)zjTfw*1k7f1*=wHVmd!Ot`zpKKp z*)5!8LH}V$K$zaOW>0lT9zV482adE*@@RW)A=BvOa|e@CYa@q=^0!}qR$5fpcIuGT zdleuKQ<?U41>_EKnz&5!#meK$x~QlGl<LGIm%GYdckdPCqw2sCcv?Fd5xC@}e!_-| z{lle=?{!Xw;gD$C9(!N^H|Fpk3E|YT$EV!*Snge1C;*Ed6SX`C=3t9+H`g-!e)S%T z-4yyhi*g>c%LTYpClWR_St^6dfQZ8}pEzFqw%Nz4K@*E5ARL{Wo7<y@9$8t<fBIcN zx3t2$PA?LPFMLVsaMfltN2)FvRdrY{z+N$P-OX?1adl!mB&5pM&s3%0E$YSCsjc0Z z&w~&^=K9cD@#A5O0ByBS@#b3Gc>P*#<OlJI3AF&dSN}~(GL%XEKQ&274h__nRuggC z*{g2oV4b)#v6j=$-RvGi55x^ZjXREQgm5er3E3V*<T?PS)^dSY>g^#qY0EiUXgX9C zeF5eUPTQw9ufNxN#rHQ%IAab=+b-7G?O$b$bg?2rH_+LKn#n&9qvO$nb9eL8M=o}) z(NwJBYGt^0;hHD!jwwp!i8m)~7G^l8wg%EdrNKv<ju%uFbE<y@$3FmD@C(7>BjpZi zw7+d-1&Z24vD*irl-1C~+l}UtT4$!FgUXfgy5*Lkr_79U)8*u3xOp@aBjT@wvknif zbKqJ|vWUcc>VTF<&kf^LL&iiN4sH^<cpCJ;FZzYfePanqCVP2+K95``r})d1a+Oua zS#6M`9uMGGrK)A^dQ`Jivb;z0h2YZwU#WVQ&b%|nkMHnF1di$oJn`@O(zy@;ruM}C z<^RLMWe?urYq)%eQV}7c{#uyIRu;8|#a2@{s|iS7E2EnhQe|NaSn58@wN>TLe3&y3 z%Ap5y_m1WldCp)fRA&M9*4u5|;EysG!bPwuxZG!c7juZ<D$ZGK4&*fVa)a=Q-`QV_ zruOp-fN#HNDdbC|;4!bB--fDR;ay!t)_Y<CZ}c~=)ZnG>)z{yBvPHz6LOPhYag(#d z?P7?Xo8t(^%Duh+Jua&R+WmdbUM+-!$rv3>QB!C$0y$yY+Ipez^yvRZa60E{EuUQN z-B52YQO>5`M4^dY!AJ2t_NTov)IsAQkZMgH-shvf*Z<RVx-3%IpCk8sQ#U3^%Kl?Z zOxybY)K7_I>C}d4CfmF!d$bauht%#3X8ggnJfyy5OGx{^(&Bk{i$+;Gfx)+Hjh%<X zm!H9GJO`EcrhRl&hAhslW{>SKmB{3{%&{7q%b|_Mbo-r}-@DgV3H92lJG>Len=4h$ zZ}1519m@Jf7z$%ii~Jr>*`f5QrwQ@#qlVq*;7y<XQ_|P}791F2S_31Rw{zcyEK4Ib zp95RYSllnUu6oN3Z3+)tBx@_XmE}Dwy6zPDh^o}hBE*o<-#s!m=shM6#m|XLAPPk( z(AOM%z7+r?MAf6DHj|eDl_6>XO9L!QFbV-t+pgc_<fL+mI!{jq>=$npUES5WDii19 z#l4M<4=QF4umK^rWQk9=Ko!usR|G50$b`S>Qs;uRH%nW_4>b3HEIE>cUu;p1>OA4+ zrY;OYZ{h=hANjlq2VPBOLWR{oRTGBTpB!1j61A1=sw?UzQCoUqBIsE=swfOfYa)Yw z9hc@e0v6}m!c|LpbIyNpwXNsiY!)LZx`rh_nc1Zl0TB;3Ke4%ox|~lH+F{dcGbjH# zK0cPw0?pT0INx3DjgOB{6{$2eG)Z96fx6ZytcH_3BiQAQ^g6K#RNTV03;n*+kw~eB z4GfQb@Mp-)g#%zfliPT@;KJj$t7iNH$0da+mGk|<WdSsn!1({A!MYSR8|-<RyQ!ja z{5|f;CCrWFJ+F})SJ!sS+6ZNA#@#}y?1@3n1v8fNi>>!n82i&1ur04X+OIt$BjZ1v zkMgM~D--g0Y35JxfWf8{c_<}7<gUd=FbylKGHqOeV<^1T^832{$;>O`uWiYP>wJ+# zZ_!Qtv|6%8wdy+-+q|!nZARWWvg}ohd=F8E{Ir8WEOJ9hJ8r!^sjW5p<RP3||D*I( zY2hHKxi>Dj!ms^QO{ahEWv;Dh3g5)Lx7l6dnnO=O^$q13O;6P=H1Go&4%Q}XeS_{E z#hb?ahS(n`R76E(CchL&-*SNtN+9;1wPcMRm~3z`Y2}}-H!4fO%m<lCvEiQO2^{gH zDFZkUpba@uX<n6-7)Ltp;er_a9Q}LA5LMHtAEquDJ7nn^m?V<aJ-KULmS4VrIl2Ew z-1=Nv>rHFeB(YFKZ!<>Xk}*&%o3*~F>==3~!uUZf{Mi2L3cc4=2d6R!$S8#6HEp9S zDk1{!N=!pj<a)j>qXJ?l7%7m;-i;BO5^}v$)EkH*ceEGGwBO^oGT{8W&OSx5FXcDr zPN0K9HVNOr8hB^)SX!0Jm2}WB>+TmJa}X0b{V{a#Fza*E{sq*YphH20=bbrRa{|x5 zxA5`;0a5=)8R}NW=H=_)U|A^+9*xG3lioWR22u$e%_~fY(Vv{q5{-Rydpz{3<z(4K ztE<b=T9Nw`jHRTgSWYW}@R5cld&_5Ni?=7kPrgvI#vD^?znzyKK}<pdpFuZ6mG;l+ z9<$j-=v-JOlOM9@LXHKVP_$n+c|l_7$)7RNdpJ$~Oiw%!>RO$yT=|?Db322l=7XyB zDDK5WKALxXaNJ47^2vAGbWgKRCxlMilS?nA)W6g`r?PT2cvJ?wXPD6<(9bsZ;T@&; z)(OH=@?fL=)}y=hEE|n)p~95jp}xYw6+JF8ykLKq;^~x%&hJ-n`IOxof1ueF9TQ_% zH8;!m9&1^v-ZoRYDE8xIM@18XQNH8rKsTYXOI(^MxEe*U2K65XclWtyKWICY`J*8- z$5^$k!<6_?iAHW=AvXNiF`^0pB3@CBKIfw?b;dzzi@RlY8GmXCFkQy+ZmD}T_=wob zjIx;=Mz-!B55#9{+NL3$R@&m&CMGD9^wr~8f#x4vmG?Afj<J_G3|r@FfPF=9xg*i7 zwM+MEXQ$xRyDwk9L{rLO1^37>@2+lb)!1$HKD$Ke)~H_}&TSkV(7X@SxFBG$@c#ax z*>*mT6pO&YjIlD8QMY335<y2dLZS#BB>CcwjF_&_o&SP57jNUx@|wAyPcs#?I8{Em zGYpbJQ*pV+k&bNl_<Ci*8>PGeC_7XH?YQ%l-3+9p7<!c*a%jjR|Nlpr62{r~GTy$d zpCxlv$&Rpjk0c{X9;mrYlE$vS$b2y+1TKK0ej(QxcaoFmK}j7^s&obdiOEO`E~g_E z3Mw<DA|*$CQ&ZdJv_?ZigMY;HO?Fgtbd&Q59eUtCi}}-jp5)hh!$7aNuAPU;jt{3G zxyKWi&h%T47E#lPASrQ<M~FaO*aY*J=hSlVa;*0cwboW52XV{_duC<wgHq;3_ORhd zeqF(rlz}~+f}hHOa19>=4>tM$HJ4YDZ&RL#9nP<gaY1dopULZBrq<?E0QVYqY;V+M zY))zgHg@Qj5=}>%wKTI^(@0%zt|cEH#42I`-_2o=3>5Hgw6Up@FWqsFIcwl^VCS=U zZE~&TD6>rRY*#li2KDcTBa35)`vFjSCE>zHsK(S8jE8Y@<!{;6e4pM!y3A(F^*lU0 zoSay@7!IFB5E^XP1fQQC&DtXh9iQ*`PY~j1f6b}jav6=1#*Sih|EAYG{!9mTLGZ~* z=h4SC>W1AmLhonFs{Fa{7>ny{7O=VNrzV2mC}E&7%f09+@c!mtiY2W}LC@4$Z`pzV z{7}kMTE_LfLIH5Jij!M<8@qZH=171=2PASl`VszLFU7|k3MaAGHYanQc^W=)P=jC% zn+_5HNpDyjeQa#5c-lW~teDpuAwlOhXbLV(`)%sc%&GVtaxhayuU46(RHXdcxBd2W zHQN})XWe!m`nHF&<ra7EI|!QKE)hB&9(AmEkG$*Y#nHuy=Lr3S&nK^nTit`!m2-bS z`=j*74el^)+Ujun8yBr~uKe|R7X2!oC-Fgg&3bO@5V`h=i4RYntfaYiT`AYtdW)HH z%8+k4u`Nc@Q@_p3k_?mpiV*78qjp@3)_g1YasOqX$SPYLN6AQ<Z`ox+msASVjXuGs z|GcSm4gbDit+e#|f|TeUsTxf5$J#Fdg<hvs5<&0zTaP}6_tV4K){u~(;KRei;^Lws zr&hK|XrtpEBY1!E!`HAea<t7?SM*Tuv*`Zujx<t~HtvG3&2U6-`?mFTrgrmik8ce} z$2Mk&qt}kN!|o}zuL_mUg>~?0)pN*(?b+VeH)8yvdg2xR-gghEW#D2fgxzBDacZXN zbci16A!a%$LGaUME?hRfM^JTQY!4@=o}ayUY)rHnDUUVrCX{Gy+KQp@9{x2AdSWOb zJ#tTg8I@anOn>B>EhwG-zo<&L{lWAW;)aa*q~n-xnlK%oT;847K`Xew^Og%q`v$rm zp5HZDAR3R=((!1XMX;Yw62c&<riQDvU<<957Z;9r)NkLurKX|T3xD1?`86;Q7=%Zf zM>gL2d1!|~KW!tX%OctO@Q7`VvZN1@?i%L^g<waR?)nFR%>D-0>Q1rIGUf3;-k@gt zXg2L|%M1;vs23DM{e5nUrNwh0%i!zYXr-*hPoa)$yZL>d8oK(kiE+3ESx}k<*u@gH z&v!3;IhY(lHR+<6^8J5(RJ|bN0G)a8gYQs2YDTz2O8DC^ZB*4?7h9$!HJNN=_JXyb zo;4QR0q^2cm*24#R3kk5bLS-)kV6j+&UOdAdF?Bi2^~Jz-%$khH!tM|^Kv(|-Ip7n z&wY;E#EHMgh?lr_9s3+luer#$;?iZ$b&@{AgeG_{;q>6{*x@HfRvymPpG)z5xL8gL z0p%kX_$?BlxfGb{#v`k}FzA_7$c}|w5)3_wy*_H=2*!7Uh<lqXi|hZZ$OGTi2yAho z`{Tv~IY(j$T5WL9>u(qbf?xPGf}MVxuU|H*V~-%&IofN1iIu1`)&<{v7u5h*v)1#M zyDed~PzC7^X%7rMOO-#G358XBe&f14>Og2BJ#vzQu?qd)b)`%%av*4&iR~r?Az!#~ zP><^q<C+Q`y_Rm&?xcm%DWaH%6;mznTwfyPJ`6ojm~2LXud7&IUcS-kXmIP#Fs&u8 zMuKhxvzeHtRR8)TVCl}p)<un0nF12uo5#;VU{c|&ca9G4A?x|viq+}!hFkOAP&KTE zTop1wOz8h$N%NUZVkMQW?s$&rJ?cpSm>AB!Z?#yy8hDZgCRV8I*ZylH|L@7BHv-52 z5w1yIS9`q&e|k=2f?v+_J?Mg^LKH*netj}Ki1NbIc8|{$%$punQgH#=kQSrTwC7EG zSNTFk@99^03{a4)F`p7Aey?8Rn9_VKzo7vr|4I{=|9tUO?%0Y*1(;?0C`}#gIh^px z=zK?&9pYVc6<P{Y&BYxY+_b)hXojW>8aZvy1=*|5J<r#iPb_^tJF|!THZ4$=0VaN* z9`mpV>W+%e{ok8L>tcsA?u-(ZYR6hzu+5c1Le1I=H6iJ$&5l@Hena2?aE%>DSnA<3 z8Q#^st4lVitd0SOl<gnm>kjLess0~TZyD7F)NBnyfu=1GC~m=udx0Xst+<uqQlPk7 zaCi6OUbMKoySqbi4erjDKF_`HUEle~4_2}==giFBGqa~sxU8OHTRe(bHkChpd{3mj z+fBP=ukVSNCXcXjSg$wq%A+-?AW75DLV*roV!UA^U%~yJK?iQFbJ9v-<nK@GU2Q>i zY#e^Ii%i~v8)KxFX^WpGPF%*OwqsK6z5UG;jLMAaDJoW1(y5(7P#fA2k$&;**;0gD zR3eo0%>xs9_HSf0kgGHd*E4;^19O_D3^G)0_ND1bAsPHxkq}VR{n&fHq{j+1D3TzY z*f!Sq!*8X{Y{f*WA3i0vk=C5EF#|qHs)G&nd;5mx6;cT5fOU=B`nSh|Dx!a@_Vu6i ze{g<Q_VU948AeMOpd@n8(*<7^=#=QcRBi^I+FeymZf|8jxp(x2@q47|v0^RSV>BN9 zfdU_yKK#n)#yif3hxJPSPyZ}BVkbw?;UQqnGxeu+DlNME!5ROWeso;L-nR@(j8ueH zpgPvCG2Hy*U^$KYRbEfAYMBI;BCN%%@oqJ&+i7_LKNAy=8lIWiSrET_0}Qb<;7FV3 zFIijIOtgJH2C3sIVQ^4C2vU!;XD1I)pR+DnG&E9=l;kw#e12n0c==MA7MMBQc#&Tq zKWu=V$h?-qPNvBK7O5N)ZeUOJ%?~2tN#$WP{=T>OdJb+B)+s2YRf^~P&fA<%GosAf zmh~jkizz0H)DkxJ74NM~9DntS7-Og!Yz)?&M{)Bj{+HkhdYS1*+#ix^ybD6zo)m`~ zsYu)YvC)2k(CvHEY|oS^N{1h51K(enz=ZGJ*h;5J=inQ#zij8l8C3xdNHNu^{UD?< zTNKZJrXLT>De9B`e-sOG--%^VPKiJA4eEdVuR_NEbTHwmfqBEC#?9AG;?H06Di_1V zBIEA`>js+38;rwcgJghM`Ls4@`0jDv*=%E#p(MWgl(wU+>pm~@ht+S`if=$*3TkR- zHy8%yyt@3~69I#Axbz=yFoo@EEgYh0I9HpA=;p_lW5}x{***`izpq+2k^xfpuFxr) zcn+*s)m60SHBzhc7S>)4q}CG;>{z=$I9MKE{uXC?bQVgvGJWT~ZaXGeRntftuHjl` zS={pHo1$j6b9^xup%e+8_$j`q_-#(TLtcH;^knNn1KPew+(FA|XwGnG6J1`KAi+Es z4k-i{n3YEnFv_rAEun&c7KJtYt=fKjG#6!<P%m_wCmCb3F5ur}u!kJUl?1CG>sA1_ zvA5Ol7js*EU6L!Dyb-PsrS!biXckFSk}LXPb6NxH(-B%9BId|~obee;5u&k=Bn;lz zcZ+qGf8r0;0+*hi2fSn6puaup&4^@X;(>M9|F_-uzYXws#2QTHE_Y`qBlyO$h`J!w zg%a$1%R3x|h|#wfqpkTUNww|Mf=LzelC~Xu233o+Mk+y|RgpHS_?~%o*w*ehx^t1# z9LKInDJf%_0<ZU%d)BJF@rj8dIerllsO;b~L@GW3)F&q`<>+`9<qM=oGhE4H97%c{ z>0w-H`t|WMX6qF)vOL@)rq$29H0lNj&!{#c8>$MxWFo6S$vd4ld=$_5YK!+(BdvET zel70Ce6OWfr)fO0^Vqm+afrgxBlu(_Da2KbjAJPus!K&xTU@^r>qwI%30fb>SszJ= zJLGn2@1q(hy&zkh{orw(?%$)mP{N*V=PZNibHQzsxYhCr?emLs)9*)=`rSs8#Y<`R z{9tf3Bv7moz<QAUtPuyvB6`alIo2Q?snzbLvQ6!EBzNDB&7vN(GpzkRY9xrb+$%BX zadEQPNt@g{0sBapxCBj>iVyYLFIjjnCQ!7K(wHW7*$cz<$#t^$(krrkKRb(N2z}1y zNaE&uJ+O25x#+<y&7)lc;!{ragE-rz3*#V!%t-<HU>$UScs(2i5{ntfz4w3md_ucE z9+lO)ZE#*}O@Ne1@9kdq?wa#{yYIPz3K6E$`#&=cuwIcszkG8N0j9fM=;civY(=kJ zEz8iht!h#|b|`OzEMKEOiS?_jz?0i}<y@IAC`%6Yw=-*lFBaQy5Ad}7;Uvkx8d4qR zSa|Zq9lm#`xvBAZxxW0*pF_q#32G`T$CH)hO`8T@PfgXR^WrhYKJ!?B9Xg8i7I8_` z=pu34-SikJ$jO4M(F6M_1s&ANw|myKa4CKJg7)2CMRMlbeWE5wfIM;#zWPM<8(JVt zVaSF4URVM6$m13y6SmK7$47ag@`p;A<TYeXSw;C(c1w7A_V(m&${n*r+!zNZ(yw1X ze>#?ydz@?aH$lc6{J*i#bfx2SRD2vtv~>Fsa}%+7UOv<o)CX&9$0y9CYrv$j&Ez(i zY2)~173k={nf8Sb|92#_=!kko$+<4lV?k)dAwC8~`tnVW{%2Dq-49y%yuQ-|#RNFW z6u$&Z??!FVr=;}WK?PGlGo=WPUkOeyU|vnwhs-Ih@I8c2v@E^V>*$w$AH8@uQu3nc zODpX^C8YnCK%k4NXk0k|G{_K1o$h-D48iwwn@We(I*#d^TPNHLN^Q?NX~i4JFYcbx zXY-a?IAs;00CDTsF)tCUGUyYGB{owR3n?EiNy?Y%pk!DnD1;nGR|nIzwY5!X6?C+; z+&1gp&CNWiqq}x4bEWA5X~f)|`8AzL?zD`kVWanyU^?sJl72#gLX=Y~r8*=B1q&0j z_O49&?q*!8C-j%w#C=BSPy6=xgwG8CNv%~U0iETOdY0ZU4q4r|O1}=R$%6q&r4Cuu z^RW{xi>V|n^PK2LW|d+(<d0-}F;h!R;NG>bOs~fSF=4H4Mw+2^C3j9i3o7madZ+B} z5Nqe-d@QsWrqIl<^j1U)-xJwY7GP3@7aiRA>GCTGE==h~GO`4SNo;}eQ5Dj8)<cpZ zcfDk9FupJg9&@{(&SmYTr0M5pg}uF&INTHn-DK)iCvc>G#(G-;6lG#j2iPUn)B{C% zqUpPB4ranpC;2ud-`|IG&m3BXa8q`l{TsphpNU;qyv~LmN_|secDwTV_>@H?r&Pkm zJJvW?+68J>*Ko7#t#EOAWv4Ltu{y8#y1YXOr#O|2#S=IBjh|Uw5giSE@1UKXLL7tH zT*W?N(_A14$5dYrRx5bwzc)5EhLRH-u&N6Qbv|4}wY68(7&tPSYb+MqUIh|Hg6S0G z9lR$c&2P21>pU!9jN1R4l{qwE{*?DtQg*I)OZ`f`TFGQEjvZ11|6I*d=e`rW&G#4c zn`m9K1qX`C(6^T%Y0M-l&AOE>HofD`XP>F2@$S=*rHDL+7H)Fp;yMvD3Zt3XK`bz7 zd7<;w)&p;U!hLs1u}V$BVAYz%?@!tX3uK|gl~U&uYOs{?aAW<VQqBv42E_dR<qzOn zet!N5^PJYVNRXjuk53(oYR2FjiPCi1-6RGj`tC_f*~o|X*#5iZ$Ql1q1a6PxQiRGk zC`&#D0?|hA?2ZTi)HK?}VGIy32e{xB4Tk3<{F`U}e|JB6iCX?-G#%lm4e8hhdodD9 zH@CUo3si7CDPUO4(T^Jk!6o5ux`(QuGMJ`~iR;MhirPm~r8LV3RTC@^x8)kkpxFmZ z!E1S89XT_Vvrovk_FU(%;SCz*<m7xks@^CnDw>_O=CzezO2oy*6$$I!9*kSAG5vjH zw|-ut0d@_4Fw!va%v!?sTL|1w>VYa^{vmIo4TfFI-S7Ato|czApwB_L{fTin0NPfr zhs8jALNv#tL@M_3@yI|~mn}pisT~%Ri>c_#*am`Vl9#m~=nFu@RJTsh>HbNk#|s^U zPX9|}3gBK$h<~=2r-K}_7_Wy`NkUilT2fg2z0hZ_6Yj((yibotDJqmvmuc5rJ(Ri0 z>vA_QT;$O)kSPUKXq<vIX%QT4##wz$Iz02&CVEjUygBZoS+7JyAFkH|lr%SP0Sa~` zz4odll<_6Ov+%#6E^Bknp0|t5pF|Xd4SoGzZ=mq70i|hCyQ3q|D2Iv$AQZ{(&VISx zt-^J7qo+niF7q1>f}Z)BJO<tmC4oX?Q;D*fpWmCzq|m-sP6rsV7{BN3VOm>U`}&tm z#Pjd-@tQ4Ut4-ipr=H9rw0{p7#xGP^ELOqDFyZNL^HqcvIH?;2KJNpWYNJs*M@O8L zBn6_#kdWksx$M)z^6X(DzOfB@)4{fM9=(iMhL){0n$h7dZM`-Bbe{Hb<|0*Km?M7_ zK|RA@lO=d9*E9Fqv$h}b*Kc5Y{T=f&(^DXY+$?bnDU^*Wmi3mE1Jr?uM#S&9;rGg? zxF4!z%dA~@;K8aaDSlpI?Y}wcayLUqKv)Cp;VayXksRe@C{TN3t*tx$ux*pA#A_Mw z6@^6&aN*B;xltQ5;!6%7Lq#7cFhhq5x*`qak<w3DJ%`s<-z~UT!cf9XST1vP{S3hr zY`se#Av*XzcE(oZ|L@ZM^NX$4UdqKY*@)`CaaTmxYt)a_RX1)3)a~A1#)n@<ri)jJ zAvA3I+@w>Fg)w@4My6@Ax~><;NOv`~<5K97WBcq!$I*j85u$08QsFvTwzlzQRDyTr z#eOIGw#iG>*7=Pfjf1_tW|e`Yjt=qnw};n$Pn7HBFqyxdot=PyfFK}<fX|iviu26b zJv3(ls|7ILWLY5p=5}mNi8z--?Y(gJ?a9ierhgFA7uSV)c34_!e3Ww+8o-lz@}eu1 z5`wf+^iU*q;LbJxk@#HCzfz{zGh@@B?p0Udt!%bz&on#}XUNep<9IgpYgtNa2pcR! zPZzq+^#kmShXvwv{Y{_VqM&#$Gr9i{h5nFyXY*S^!(jo5Pc3M3IRwKlI`QKY80>hN z&i+?K#&OOL9-P=FIhiSQPe#>sHs{kg>*I1YwN?ep%@*Qo(tG_Lijp<8cpL2(*I-ZH zp;Lu+-bh0NyV??QS#?(ro$K<h3+)Pf!jHto<Fx1=c5FFOihLgAR&?lyrgzX!>xiBZ ze7u(Jfe^S)7f6FonXngeN>}ygPjjX`f5D-hH>wf6p{9n`v#!nTHB>=R0J0maiRM+O zE)W?|Frar=lHTh@fj)t(KipjqNaE-)zJ6Av))##qofqmNQDs$a`fa~UyB$e#tyE9S zZh<{C$a(Q@mK*f=Dq><aYNXW1fFq_@=je#Q%ZFezs!?yH?cm^`rA5RQ*y^^`)!n@} zo+;pbrYkNk4h%wI4%DUr1~Ib--~bBvKT!qlN@DB>RuLU?^iv3gUFAZUM}v4?aVDKq zMJ>{9?;P3`7S}p_HCM>Pa$*@Rba|HgAge9fLg%$!DQIfrGXntk)F?sjcO|VnjwFx6 zoihX=gqj`5RU_o;YkmC&p+rLs`Jd*^llK8cOE7I|yy&NArQ-<p(Yg6mFc!tzg?25e z49uoWg}%I0CkejfqmnoXDY*zwptv@9KQ%&VN(O{<^{qjC3{0t4GMwrj-QWh}-q{4q zLFs5S6DuZ8$kiFtcpm04D<b|xKE63Y3Bwlp3K={8C>R7ECC&w}y+jykKMmQLNQ|)| z`HD5|zVn=!1e3nK4-CwL6pp^S<cCcRNbIv-?mcNB`H}|vWSN_J@;L0L)f%?ic_W$z z+c!)MUf)lC`Y_A>N?3p51*Qr%{|r}xur}r9KH&8ONT$}%?9e?@xK+wy^e6Df;9LBk zt<EQB={;G@d8Xh}XIys#5S}VwMXAlxA0<+R-4iB5XUZ0fGhD)@hHK0ubww@WpkZYz zBBs<)BX|pr#NmK7%^H)=Z=D+*ub1&4jQq_6Ild-f##1td=h)cZAtSIt@@A6$=5JfI zDf|1#Im_RiTzqJbJo8IL8bpTx`p&l^333{BQv277ht^SVd*@r4Fz%zdA898Ae^z_) zN{_ek{}3!hkevp90Y5ngMG}6sCiNh+mgb!ZDxftR#(oQvNp^`(r+D8k3l%(EKnG<L zYm`<)NIOx$NpP&q5`-V&`pw*-(Ih;ftmK^^Tww|sr4p(LF+c+S{4h+aA`(qND2dKs zu;(nlg4HnV+GGL%QBgOjqX=aFrvKhyUst~E5AE<R`0CE!Fa=almN>`pY~Mie+1u6S zfbMT~nv*d6$|`TiyABNuoP!k3J4JD*t~aKEpb6SqkVhX<*<y^ti>Ilj{qsKqN@R$~ ze5|Eb;30jdk7v@vK>cWUnsGe@Z$zKY_Hlb*ng8xYbMdsD{`<~uSHHaR$bANDkWLW1 z7P5SM`Sg!bi!9vUc>mF*56`H{Sb&Ut)j(-v8NHb)NzEY0rIT-h$xz$Inwxq4*A;@c z{elycQS@b=#w!A_?KO9w!UxyC8AI>MToC%p4;QS%YeiIjlD}{vg>EVk0SP_x;!}Kv zx9pwW6;N?FEG?EC?T$Xz)US2LtPv%Ho*7Isk7jWIRgCc}RF<zgH;%=ZglQxX%ZBHL zGNGuql*;%It8{IzNy=;K?_{!G$pv)XRhBcV7mc2|bKrL!`Puf$T)*Fa@9#kG%}c+k z)2WE9Z?Uw=uXj+z+NCw&)&Tek51r%^lr}?1)w^>;N5A*acY>oa@n8@G@Da9E=^erF z(L)W8;8CoQOmSZ7+7RSz9`koQFveWkA!xTqW}V_MvDiFXbfwnz1Z*sK1C)Jn)43k? z_jkBXP{rP6uCN$p{&t5yuCWm6-OI?9M&P#+^8w0#@5|_e=L{-}2H-8tuqRucG0t}m zsI>`9$>%*l3Jc~F-)5CH+?^b$8{e-eF^0!S0Eryy8V_otf)dhs#D@(&V7Dj6do(*> z%CC_0AgJ<o7%ydH`L~CY`BrQiFMsuPIf{w|prh%MvU08bEKQpqkI=zWn!4)BJLtGu zG9^4kO|4&^wNGob<cUUllN}N?-tR-m%u<@r5cJ11^+JfkSr+Ah!$2b_qnl_|z+wxW zWm({J+=P0v|G6q|zTFiq(VdHN#rnLHR!?=WODuXQ$)gX=?Lvy&b<(<7@JDl9clj8V zjnX&SUi9q>%k9lPGVW+lX`6Ql)GBEKEpMa~d}Y1pX`&{oWoTF{7XegmpQhfMCgh2^ zZdr8<Vl$7oDsh3)rl}ZiLPs>8K(IWP&_E*gCR!K3DiYktEZRQjqlcIvZG%%HFF)tA zf|>&g4)i864V;e~l(&xBjKgr-#T0?XB-!Yte%emHfUipvSM)3apSvZpvHQnbR;iL~ zp98JhLd3vn75*k@FnL0MKVd=C-w>9k`qNzmIW?G4pij$I0Z-jtowZZwtT6r_>Goco zeZ$d?I##u`j-n7TcX7!F)MZN}s93U_xAXqX0i8ZbXQ}P)lkRj6Iy%}PZt0;J{ddk1 zFgW12|B=HD>bp>tPfnaGwZ`Hx-I{Ih#O)T2v&b!6@Fu9cwxZ_6Vq`mbVH+Y&wxMng zA^SDDs?G6pxO-49k^0%@{D-+6Rmo_21&6iNLak}ct<kYFhnM^>4r(SJS&j6{V;*pe zAOF&u57hNi9~X~KH!(Sk`&BhbIEa3b{X$LoI9`9{i-Oj+16LlEZ=C+3Jbx}FUp^%e zr6}64KMbb0qcx~C0inFZ&ldU99AOL!wV&%KYl1<)0Y2K1c6b9I))zXCb}U^Ti{I)& zoAi}0Hx$P_>;O4g>p35Hg5VDL13@Ch>MH#<NAD9^*kYWy>;qM*cIwMuxa?u-P8RsB zvAD#qy5GBKz9>(2#hM*r<6XpO@2D1F4J?<9N2f-?7}^Q2iHC1(o;>ki?#!#b@sGmv z?McP|zSPrkbECKE6zoN?YiFc;T>A+XG-9!X(|i`C(D&Bo&b_1)XRvVEo}Qc`kkP0Z zH%3jg%}`!J-kKv`TOA8Y5jNlb@|+JGvTCT$s1rNUl9goZWa-0xG5kSkt^rb;5`BJp zkAxhn=gC!Vmc}GXw)COh#!5s!A*Q!F&+XdSE>A0dBZOa|a=y|m9ZLzlI|30`<Pkt? zNU_G^My_}}$(t>l6DH&-mNio=nWCR-_wniiLn9&vr<c7WhDcGNSg>5|B5t3LgpT~m z?wdnHnBBlPml&OY0iMEhul`AwX`6!$#^CDxY3-BbXwnGkfg1`wP`uBnHs_`Jv|5Uw z4zDW!5s2e%h()hpRh-r(yI$fa6JShYP&u8;-hVh(5CGWm+NnI$0x22@YPtgo$;yx6 zX%_^PN8FDGkWjQ+o@cQ$7D>D+_ph~Ci1iYsU^H$w54I0nZ{|DJbK&VvaR5Ifi{=m{ z9LxV`;A;TB&>^#a>TBU0FIVmeF*X661(E*;nXktDO5oSJAW14f9NKU|{!K)0Tc_q= znft@Vs*FxFg*0*amPE?_<glOPST_0kGsnTC%h^m3;i(|Mk1Js(XX=I1{ae8lhkUcK zZ*QXjvS>y5IU-}NB5h!rMa`dCFK_RkTCpbrCdR#rWO<y*I>LK%;D|HVI`b~m#OQ&B ze+SyMlN04Ln;6mfVEhhgp3@On3zQutDO%AuV__p5ynuzJS}MfdLG@~(7~7DZSy_R$ zJknhR4PLnW&6=#$uK;*3;{~n$_*ljXtyol6bij85{pHUcU~srdud&$54wvRU#f^Do zX!4>JAprMkOB^o2halxOX#!9!vEns5=#h3egBm9>e<?$TdV3X}pn|*SG#{JBLjbEe z#NT-fqLR$^TSKdTwb@T)vEX(-Lt=@ibHh&7TH<X@wyGwF3^8bey#1FA_+X|I<xzl# zSE|M5g)o}E6H7S6{l_={kf(qA2lu-IQ%%?H#ErESn>E#AGS|IfnOZkbPc<fdX}As? z{ySHKE?*>^e^3&(PJ>W{E&JCbi9)wNaTcV5B=kRAmV*dW&~_j_0-t=baIRh#?1Opt zfB_o<Q=;7HOj<4c&I=B8>dfe9U)`NJ#0}P7o;Q$l?VUuX{hpYwpVupjd4fh|tE|!o zcW4V3Z5!~lteQHugGCZyh5qQHQnML7si`KH%DgSr^n({g?~nk#)SU2NT|V7=$Qtz! zqTBm41XI<qwc^3i#2?Ord%M#I^9QF<6G9Q@Ac~>9IV$VdHl~)}86U178)eCw?LI*4 zL4Mf?pkaF8QxGf3gz!Qt^NE1T{>ZTEDUE}FLUB&+W7nIj8rstC?rIx~fHs(l2=+~; zXiWbMq#kHMrMN%*3?IMHsTkmw^l<s{g?&LC7b+NuomZk%42mF9*m8^ch2dWp$y|Zm zHe;RT`Ny@1R@8?=i_9tiV+lesmzZL_qu$tkKZO+m6LF)v%%>K-6CBg5e_&lU(O3Yp zpO^Hg-BtR!=MD0|XD|U~;apaKn??iUa0Ren3GzGNeZke~f?HgPvG>kdL^}Qwnwo#{ zzEnN@ZG9Uwi^cB=HeIUcMK*ERpA}xW8mZi};WE;9b6QK@Qpp`(I%ijSuv<fDHL%pt zdaa}-hsxm4hZ&-rkfl?5(`@;Td8i_h{K#@T7X<Xpjzu!P@IF19i3vdP*%y0qC{s5p z7A=?(%}p(*TMPQH?$>%iqugHgtfy_fx5TL0K-`n*z0=8}`5kFY)M$Z91&x?`!vq=Y zIU(YchqXdx90_{DI^ehag`K_9^ydg!*J{~EwVI1$dUYioouX<;^dxTm^s*~-9?Ux+ z49&tFaR2nxU+$;K^uQG{%rn`Gr3iA%ga`OOAi@4h#{Jc>pncaw$A8eMAg!q2_=6qg z%B=9uD=eO@w=oDvBrG}4`IrFmiA-zt)MGqTn21gNBwnP4`zE=&=8rI3>I$)7KQ6ni znY_pBq5NJ}X0Rkf#eevzQUnAv{XoU9%y>9T!E^9lG&%oRt4YM?O;wGu=;3%m)KsnO z(~8bD14`OK+-8SwbN~s5EVaF!9ON>lb`W=oDZi(f*zBhDT-XsWcMgBN3kjyJu@W0{ z=w=0N8AP-GZ?|6`lWa!qZ;2gZlYN%xp4qqM?JZ90cLvDKGEAItqrL_Q4sGalJvXQ2 z+E>$Et9jO|>@&u&1tHoTJN?C;VV(!a^@S0s)T+8;`jrb<l;|l7wHDLOnd5uaxX<wp z=TEDDkZ*VX$S!V17c8x#^)nB*^XPgj1eI?}mst~+%R?v5ck@60=oK)Z0FQ*wLixbq z^e<jFWpE6C%<ic>w7plgJ9@(_MDx(Gl__ewzWr%8dbs%YOM}0d;d1Abkdg;gz9FsY zy#qF@Q0;dXS;Z<r(M}|ExKU9yY!=k-H455>dgCwShP|em$tq)i#cp}pPdz>9R;ulH z$3{-ZPDe(zm_qqkPd$BB1M^M>sQeeQ<~9l-6z3n`!zw4~5z2r&Er2G1#&T}C4%c=1 z$L9^W`-tlOXYm#`Cl@gI)+Yu6$4Y8EyYlhb`W>nD^3SsxW$t{G8b)=1b8V%cTZd=w z@eLj?&MG6jr<6LEtqq#1Ac;YG1A5<2iEeO*t=II=#RMen(4!G>M;3C@C(GJakc2wd zF9O0@VvCRylf$m<d=7^j36-isn}&jO(^6keD{~tgo4ITwXi}dIA#b^wwZU5yPl@>v zf-fvAf~yT}S-^KhTxLQ!Hv?j=zwqJk$SZYcItb|ppM`_IQg5pqR9;0>lCJ7Q=-$_1 z@UdUXmy>YWv`{@K0mmyg1iHP@l!M#oIQ5<c1sWxby64h50@|`Y{(Mn1OUNZGQ=yP7 z;89M(LfB-Nz>IU~xWJcc#9bLF)Ip<2UQRYCFN{v$nFUFQ;1lHF$RLj_{rt2yfjf>| zmxCZH`!(0=w_up`b$#@gfc_fq4__mYXN54GBK?A98uHXrECI!fcE3^D0e|v&d>I3P zpnB5J<yzMEsUj!&W-{4msswXFP9+=HGO3~gv&OQDoNu2NNL~}(OE_OJVP?p1(S9j? zlLLR;@wDrkdc>h<9#IEBOo5#-wL#Y}_2r2=SLHx`C5-HW&EI;Zd=w;6Q)am<75g_b zFAV#r1c4_T{sW#@w;&?qU5oUa^~Ci{^n3~%Ld%@q>Y56t_x$fGdsS{s#yU52NkzBu z%$V`b>B5zJ`?gH`GVAf9+|8d1n=AFB&R697hL!u8%ptS0{W`?y)b@ELB9UQAWnI-- ztF7&xSJ@jwzo^VV9UdkyXgXQ<Qyc1_z1Q(LIpsAN(To#$yh)`0UgO=ds^sbPc%mml z&Bt@ST)#<2Ra(%EfTBo<N-{pE^(<qcvFvRjv;aMfWwif|jpopE<pgSCc6kiDotq2( z?qfL+*c4LCtWdQ<q7?hseqp;V(*50X37OT2E|oNH5Igh+MC|N(S7>U_|7xabbux|{ zMtJ{rT6yKpSP$P2BoS5tWQ!Xk3G?!?Lzs#X<od|@^qf1CS_w3m>3>|lc3)Md{3i9M z?)k^V{7kj+_;MhGD?zF)G}=mOJItyt<%dft0^r{<2AxRESP;7;x@d%e*iQ*Sf%C#h zEm^dMb%*9nZM<JtMNRa7adIR=^9(_Mkag#ZkhVWoBF)|yfk@ktx-`ky1&ML0i>0jP zVP<F1Yw%J^Ko3EQs@>7CDGg=SXagphcL}9`NoK=~eq&zE6J)43H848M^#wl7Z#G|! z4>bm565fuQrt_o(L7&Ga4v`~B4I==Z^;7XuU5Q_tnW{_@5q8~TO?Omf=h=yFkUsD@ z{OhFudsEl<f3+$M(YIJsxxootUMMZJmCcE>lRw_f`AiWektB`KgRvdy8$mo=Pz7yt zLNaTxS&~9Jl17&RT5?d0|9Qjm9oi4%Q@o>0|An>j#oydPe!iEekiM{X{HSBn#!JaV z=PFag`v=;pL)$94v=V$l4ivJrNY;Gum>fggdL~Azy<&)|Sh*G_*^gs;=ez2MA*t;S zE;0jaIothi=0=x*#`+V&iR;CNYxUx`QP+bXm`e|}_V$>UkF1>XwO$G~uQBp1=k1du zdo9&}z;u$FY-LBq!ShqgZzl$);@z@T6N2`v0&XL3$Wm;j^C>gTan1z^zLFDCQEIyx z&n_nJ?V-9-XU|V#@&p2J+6v-=a<bobD`!yxGd>t9BxW#2KHnCc6Dn1C4ZiLSL8>+k zwq^x6uzqnq<)vZ8$6Sd7CSmD&&26+xwv$AV(9%L}cwZWmC5;)?gPi8IJuZ%~{~o_> zyyrbScpUIRLs?2_TGnM*$Un-j3Z@V+pFxzYqLnqSV(KcKx1ICx`**5=PUKfbTNW$R zIbg=At6B8OoDk#5eRv+Oq|l6aUmmG|>MMbtEPoS39dwej)fkzlsa?8fy*~@vyjSkH zG?!CL4GmBYYDFP3tivYLifdZXDM6q?yl+Bnhc|YD{TGtoNsN|2heoNd2ICjarD$pd z^%1epMH9TMu%)%=rNT_74{VWLd7_S?lq>jY2+n{CH&MKGBCF>T4kFS3rOG5=WLbE0 zD&KFY)7wxtGw!);s!s$Cs8QG!cvku~+*h#09)9T%I9s7>R6<dIBqlN&ol50gKNchN z2tEyo&c~0uAjj8Ei8uD6Lhd4JfF4~^$nd5P%48<DyI;@wM>~7a7guzKE*9j_&PY%k zM8cB&W7BK9`;^Z~qLD_9ly8Iod~p|YXLZkSf=6nyn}s3bQEnn&nqAg4s(>{W&tGzL zK<r%xJE8Pti&2rzc_zCwp^OUu_vRY;+4d)(<IRAr{gBeotrKcnbgceUGs9)Tnz@dL zeZDcYja6A~87ME8QQcH{w1jrQlgXgY^OQH=qWL&vzzQx@-`(BVfu7FO)+~E}j*5I* z4^S77$!zqP&3b=ed9uu?YBX%H=*yrq3syR)-fCOl`6-azc7cM9hS#s#bVyC9?O}X< zuPX3*p2_x&*mL6<@W|&RU!WicbwhIEHY8Y~f#2N7R-mKB#ke`^kYw8{mmQR(2W#83 z)FoYfh;Z-rJeQ|&V9^dRB!^a1$M@vc2$pu&Y!5q}2tQBh9)KA@kzOul7h=eBJ}qtA zqG#T;8EqRU{Lk@Du*IDx0=UfDWc~|*kcRJKFx|9a-#k5#uY^XtnxZYhw;D+F@1#L! zGH^{Yy!8Frxatbv3OIje8xVik{u%VRwHC91d=V!S_zrcCR;dS~8-u|GMhmhjm1ZL? zQmZlUvyr`_O?TM}u|WOx#^`oA01_O5$^qIPEo&&m&ExW-Ik?=$ObA+)ZJ%B6|1ee- zN-mO0e6R=h2jXv9Pmv7hPyOXpY?hEyI&Ae;5&!x%lz#A&QR*^1(M^DifWFA3e!o`z zoX8#o)lnk`)NF?qXRnJIFZeovL&62<nTc_^ShqCl@5){p5C)w65ti8gal(#Y$np8u zdsQ7kYSM87w^>cQQm3vtXk<V74u2+%)S#joh)LcZ5GXPhG7-?b$<UrxF~KRxCt}{) z?B^<#@R#3@e*J4hT(8&J2sOh`tEz*_-{R#pp^!o*Z!W5+U_kp%C+6bc?T8u5t&s31 zCUoxiCCE!mJ~Ik#hQ>UOq;q6kTn*XzWU}G-6^|6_{r;arB)4YrQvxX}$SO$hcxU{v zE?AaOCEe{=z2Z&Tgb{P^LN?;iMJx=1cY(-2Ic_a3xhblt<W>V0Tyy)0OaYr~KOl9` zBX+%N=7Wiq$LLxn2@4(yn?6qcjoZvBkIc#PX>ww|sq`xiQ#mu2C*;<LEv)Ts_h94G z!8&5fwUcf3y_Zng)y0MBZ?ogm`AXF_rYLz++?LtmQDUV=g!J?EqLr;|iA!kBW^WSy zkBmq;j^NxkT7mo9O@-S_g{V!h?$`bPzm$IpEWbwGwz(Yrx?d&NF`wVDJ#_=S{#kl= z@&Q-K=#NEKxdc7{l3LffD%{`3=OSkJaQjGS=hde5T}8eKsexukx2cQ`{p@#_ofI#g zBQaIAX3m_R-Nl#V(1WQ;AVj+PNb@tT+0W-6Tp0u95c!r`xxbEC#jGQv&DKF<A{>^3 zx&=gVf#BHoX!ptKoA~ZnQrp7rbB8go&D@3@+<znS*$i}-AayJ+10c&((Snu>$6zQN znFN(Ss082TGr&XP7QaKI;H1XDg|lX&1kP|-UKD<CMWXN30is^BMO)EKC*MwyINlil zJ~y_=nDj~Ss)jfJHN?HX7k!9eDO^|Uk`G+fLoXVEC^S00v-jh8uLdxg_0xP?Jo-5R z#c>WkGUa!bZ^gS~Zy9yCuNuO0@S&h}xwo%EmLRNt7GF55@D|0-O}NC*lot%q3o-^P zZB)6l3u}=e9|+u?{NNN>ro+U9FeC)0)X4pv43ZtEKf+u^AF(EWPGh%^U$=sF$pASt zgM1hqmnT%8R<Dio)W2=j)P?fXBOUwb?PBy(x>teE*afkbPHXcuek1Lc#Gqui=Vx2% zh1X)ewMzQbsoN-5OMSrt(!3$*-QC^8L$e%2*ra9q$g#F+qIFujBTwy+gVnF&qZ;XG z!w*&IcIA0~e~H+hm$N6KFQ>;1)N50sEtOpESN&*wJhhrVggzdDk9_D~gV-Bf{_KB? zA2*pD3SlZxprP#-WR`F28g8zwk2-yZ_Ze@yJ5;4@Tnrim-PN`=<g_)c*rXeIV*tX2 zOU7ff3%e@v{AE@RIIG~9z;Ay}A1b>RsRfa?=0od5M=8RpV&}gY9ydinl&^5U>(xXX zUKLM6p-{^~@I;>6UR*5#1^!`$Ud8!RFHdzVhB1iiKL=_<&fntlqwrh{$?oc7Wb1}0 zBG*-*Oy}1&qv|T)gg;_z!<`(35h(id=1$KE&H|McWvUt&+>>QM#@apR<`dDu);C>V zVLF`dTPt-y)WPg+Mpocwfy4%BQ08N*CCCJ$odgnE4Oav2KE&S1dxm?l3BUaW_146! zKvs}PjKZ`)sdUYP;Hv>{C>X0>J2E<)lHQU)rRRaS{j>nb+pgd3>={THTY)IbM1qMD z*8MD}-L`6g3gs1c7QRV%ZIo|sT!@Ihgni|O!z;1f93#<ykxj*YKi5Ly{qpa-;Uu(h zFS<pyNU-mGY%yU;+Vi8gQ29`c>-#?$FK8$!jk+SXjl@&8sGm}hqo5qdL`e^w#vlDM zj`8r0+-~{km`RdHA}-K`#>P&;JeH1TzjhqvtqPi1(@&(FnxH%dDr?|c*U`ns((3Bs zu(0at>bST#bA<gh!alL!+o`ZRYmEILT1Wxk@@`s}+qECFnE2j4tyP353509jdbkR? zgwTX%Hwd?gw!xDTG6VyZf+$@*Za<AcDo(|4O6l854rFunKunCN&ujCKIdP+P9Ht(Y zcS+1z*l3M3uFa2EE?LVH+ReAH$*fdDI>}6fODbs!rk;jZY1_2HbO7wx|L4rXpBi_b z^<s~H>r6Blo`#%ZW3r+wKs!HJlpxrBCy0eO3yZqW!6Wu!`xcK{*k^}HQ~m_mgk%RG zQ}7%$;x4??*+a0?VAZNnLRU81^VTBCwISU=2+7_}YPy$?W(=2}O+8PD{?hEB78EW) zK}hHGs!N8TNQnUT{!X@@kNDo%*+#7l6Klb)1fdyb;&l^#1Sp(w^Lfhqum3f003j<e z!LfCJBy68g-I)!1TWBgxvo?zthJI8j%H)b|N2lHdA^lBs#H)e)ZtPBHU;1Ppy>Y2& z)zwM7Jg>WO`p)Vvr(443xt5Ylrl&8ZKZJT_yj(1e1`klzj#I18hR@@S#88NdmkI<J z#rKP>*ao|Q2Cc^)92sm9v!<Oa9n6?DS5Grg7i7J)5;7nl5PaP^piNYY?Og63F8BhP zojB-Z(t9R$vmII9qHb+B5xc0z7cc_xYT8wubV&MzTzY?=tnUE_|IU@2&P8=7>rOlF zE8NDRaY{<ivgdlird0zp?S?dboQ`GsDpHED`U$`KEPDKTTw$nFd9k_n$DQWs2)F$W zFImrxY=<X3sX1}pb`ay9gth13om=uxESUTLZ~8kAhOG$<M0qoO0B(WCx#)k4Ne_X* zwXTy3{uP5+@O#*vp-u86Zk#s+F2wee_iXMOvPI951O5U5mSG1Jwi=5Y(8UvcjV->_ zjpT1HC<7|NjX`m_*!>VK-XlDGiem&ao1#jZQqAYs7iaR-&ppqa>dihPLje3mLqdab zGl=i`2M{%4fzcKQ#vrx7F$>RtmLxqnBsBt*S{$BpW3r$t{1xPomsnREs{uSo_-sWp z9!K`M&NOqgK5L&S(opZu?~LU#`Eys>_-uu~V}&aOrCL5p2J_WzPNw;F`v{@*U5XDz zzGoTmIru<+z8Zd?NeFdt1}37%UX20+tgUfff@Nl_t$Uz^ZLcA_52*u3guo{{o%?pJ zC3Oe7`=Ho`9YU({2X?a~f7$M@xsPj!jF?qgX*UgA$BvLe2iup<*?T3<diX<*R@dv} z%YlxUk0KeaMm+-JZ7=2LikLY+bBvho)~B&kzAST|f*b0uZgZ-Z5DHA}3;Kpzv@x{u zUn_kfEFaNo2B*eE3{D&|P)q#y${!%bafb<ri!Bq`o{|%Nv&ANu1p@6WJ+-*ayq~+3 zg))tp<sobQ&*IO~WwX${_rI@eb8Tqvb6};(aGd6*_VY7N{l+K+@Bc|P-OCW%6O9>D z1>5kqLbReoXqCptz#XMFo4`bo|CpIsk8eF&x)aQj=bO8VtZy_YKynA46e>FAQ;%?g z_O62)Krg%M>Mb)7@%VOINaSbihl3hTw`!nsfvwQ<JDG34I=t{i-imx^S#0umq}r`P z$UQ!PYQZA(C*s(TS@qJz9`NAM+zC^%UT8)~50O#VwPEIckcO(y5wgkwBux7w`@kJ& z=ak;*rhUI>RY4M=|2Q7>Wxv$LZUVP|SsD>hq>uTRKHoe8F=j%l{J}rs;f9;KI%yED z=jCK^KxAx@>${<oTZiDJR+`53yDz+@UVeBqMTN{@#pb;ZbxR%fv6@D1cu?($m4@nG zt1o@)&AYN@><eo!Y?$2kA#l{K&VYC+MzgN^%wa4>;O5z`u|Z4Tx`61d0utvAT1o@U z5Pa~57|4RBcT0Qkf-sEXZrnJkyu%%w0$6D7E8yH7Jra&3VS_1V1=#L+oUT8`+eH@% zKZ8Zx&nE4bgrvbaBZWNHBWZG*P56l{r~AV!KgZtuK3M^2?02XGfd3B6BnRvRyp?%u zq^4cbNoFtsGyz{`K4?cqN(FI6>vAMScOmQ<#{GE=rgx+0haj+~y!jaSnZ$rB?nJi> znd-1R%|pURr0B)~L^@hWPbKr027S92Ba7T`b@yxqdOQLal*Xbl@g`x32BHume(8Gr zSp3S8HYC0(%57%<>m&Scx5~X1{J&V8(fEnmB?ymG4f}W2LjE{G(Qu^1ZxP=DiLk#g z;91p8{s#%7k8*Pn{hr7+6Hw<2HnDJ_$uRL9ys^#amv)ZJD`FFX+#WJ11q^s}2S%i{ zeL9`T$bv6v4ZT&xVN#F7<!2Gko)|(r$Iz;^sv`QuT5f#Wg=9-9pq%=LW(1jFolb}b zuwQ|Q3%eJBrd756BMT@cey!!(57_2j4Y}{DH{x1z4jS!_BliuuGY=vrFK^eTVGW40 znhH1H?ruO_`_~qhAJacE=B;9Eo%TnV#tmFp$pkj#;4bn_t0BZmoGARS3#<k{)VzOV z7YT%SBtDfh07d^ka3X+`-XhmvjF&g^nS*lI{{85VdmVjFT@+BGB=B}-Np}e!r}?ri z1*MV6#E)rVcxDQsnZ-;9+`gP4b-0)4v#J~ggOTd5zkx4)nZMg*)d3Q8Z;s(|5%@)g zLQ%Vr{Rk}g1S&rK{qybzGYjw2*M~W;H{T9BHgy<>!Gc?jJn4}25`?qq=t7cOQrqU6 ziG%4q$iV17*5@a^2>af;O*q-qeVBw+#c}g%Ignbw`ZK}%G4M7nk;20b2G;6IOVb(& zyYqchNzMh>oEFf4LMiZrL1ra({xyV%nYnV`rwW)s%xxzx#k>9X?Q!ah;`z%o)n;dC z@914%>N8UNq=I|voX^u4W^#3D0GNStdVY5Nm11jx&;$BvoNBDmUUNC-?}Ca6S`YZE z?NmD+EWhgU0LvhzI@jTa<V`o{ezY<0DVi5@>TnsYd?|G)O&EyHdOM_-aK32@$Rgr` zc69zbu>Fq>=Fk4JH!3?e7g(&4^+-@SYO6_2Mnb*iOh`wst}ramn>t0BrTg1Lv{<w~ z20vkL+_9k??$puCe)@I{_}m-XMPYv<^iEx&#2SANK8weTM*C+*`GuF^u%u(E-xHt6 zfG$ki^s9e|yWzlv$Q~u$DjiJtlAWM}wC<YZPQK}b-;lKQ)~9W*^Ntgp8(2vN0set7 z*au#gtQDl$`e_X89fiDcX-CErwL0=58T|Qg<yU(k5YX|<-r!jYF}9AQd7sRo%KVR_ z7ru2>?)*F-+Y_VEqOyYHrNt_=bTIRju@v5FUFDEiYRD|C&R_?Xxa^mkS-OVeCRx9B z!l&DT^P3^lX{y)8NlE~{*d}}dDg!lmh2RyQbISZwv3p88SL_dwK2Bm80Z#33v#gHh zPV)Q-rL@{31AYSHuacy*&cJD}lTvn5kK?S6)Ds}l?w_L_@>3?&pa>$i#?5VOe{>$@ zLoIG;8q0)*L<Xq4^w#f)5IqAgU&V4Z-$Eyh|FZ?fDaB0*Q}48&vkDv-j*Ws|BMH*M z<GLO~8I52~Y2~3op!zOnf+r0U?a5rIa$fgoK#tN8C<vq8U#~^Kxf5W+Z-CH0fAsXj zZc>6_Y#E>42e!+BB8NT{+Gujh2{S~yWebjeV%A*PutgGToOI?FF;w^u5`a4rQ#C-# z&!ktBQrLSzp#82EAi2Xbj0igUuSo>;pPYFff$B#|d@5Z0P&h*I9G0%g%AhZS3qu6| zd=T7DvVn_n7ppy9@=1lM|M^Ii7mt#w^pM<XU8^>)pZ1P+(=~o2_vJe*O2I{+FINbL zSXW}j^}A>;O#P=im7AU2+EB@1(06XLFQq;MZVrNzWeAl0=04IL1zf@HeLdi95GM=- zDjf}R;{AR6WAsu2T1Frl`tEEzXyB%;{o$E!ymhhcrP>G+O{i8{#Pex$^d1UKjk0G6 zPf<OZhvdc?2geyZIc5IM_7FEP*p(FJChg9Pz;+wBnU~ZTz`zwwaI|V_+YsvB1VGvO z25(RCiqVvyn9M+c?*GCnIBJ<i7l4Gy2KU#e<}=Gqu%PD$c|*Y^;C6+KSEsOv@yEa! zL>Al*o0Y{9zil_4#6A*KUgA4tgMuj@K=_=$DNx}?cZ_FUzssD=Oc#D2fCeyZuo*?7 zh4zC4zXuiAYhsVis*Cd`L&(q=WFsjgmPDnu9F3ma6hx7+ss^a$eSs0+7<XtE*xJ2P zuSIfUC=FybcP($C@odX^d?4OG-!&k4%Wc#jTlODScAcvOR<Ji{yGA)4DSFT~)qisX zf)E6Gq8NVW5JiWT;Op`>U0WMVsj8%h;jw?sKO$FxC>OekjqB*8&}vU1l6X&}QMMC= z*6p1<-nup30w$=WH8?p--MaG>Oj^G;wmxEeK5GwVBgZdzi!prV!qWV)?;Yv5;M7&Y zk=Rl{D7W={?eSqKZ6T*2Q9$k(t4X|U#O`tc$G^3#EZ%ux{x5WX9(;%c`Bbm5Sy6LI zlH$3<Z0uh3VsiDhJClbiBC7o8vq9ZRas5bfVzU!-J1~k_rzyWq#kxk|-DjQWZf6U? zBA=g~wt*$0`eI_qJ4)MC)Jy@jc9sf9&-K~HbhCV?5`y_6yWQdIJ$ml7|B3HoU@p@2 z^_q7s{<~R`F^=9fAIBU7aibE9L1(S&!lW0%a{g3JES4;JRO_{*_>5nmaC-rix*&?b z$Sv$wINfo3XDBi0QpZFc+#NACXS)7Q9X*KpD2Xx;A1`rOHyTF{M?WFC$2TbF(Fc!8 zV!T}Cg^?MsR01n(c|QSMdyooXNg2?GCnf_%swLqvk@AJ9Jpt4M0w8eW78Jxd-OE&d zZl9}xM;nADfEBb3K&Q@;HO!VUwh~6t%*dJq9sh?g3xlO%K)8!zn%oJW+BrS3q)LN; zNd;q3+nrD*$H@-?P0htE)y=B)(fpt4j6jy5*xtydF;~UecN2{s(|bGocnq<qzQuFB z>hzd)+ZROErz=ckNYyx4#xOd6I&md84@0YWR1Y*lB?u$@BLV{P*OvV3l3omFjpN#u zrmibj?aD2L>gIa`beebmtY*+X>^U7bTN2$IMg~;N_e5j`AkW#LT{)F8qH^QhZsse$ zuZ|rP75e4pEUTr>b{3&5)eg^efzDZ;QF?lOyL9(Dr`0m!TgPCB22t(RL!+J==$y^9 zk@R?YG+sN=_&joZhiM56dWc7KKE1qtG41%ND$k`)v{&-KWvKOB+HmjLiI?^}kTM`P zr@x%tnlz0=C?eyfW@PS8+-L^RS_DQ>)rYxF#vh(r;1BpjK#3DS(82EmnexL}s(}?` z^bZlxVWm&FhIpxd;S%t2j8gqzi3VI}Q}5TL(H++nHL_#<YdK0A-~f7O6j|xp7Qb43 zUxVNxzgBboxzsgJQpTMmAdh|Io*z0w*Kqlja#8d}?TT_92R1pL9X}7NU*|3?H|K%E z_4xxJyt4pbrQz(24|iW^)d5LD#2~8nVHsPDd$fl4C0#JcNvFfJLK2g{*t(z&s5?XT z`N+va#`{wEeEeVU>y4|Yx1@(=j#BySbBetU7u<j<0>w`dF~#|+q)v&VS8s5aE(=!T z)7AF$PlM1gt3OP3nZ#QK?kWyBbs-vv{yyGbII4L6vOornWL)Cx>x=w&zqwg;`i6;i zg-x;o55X7dpJ8<;jNG2HqSi^;*rV3vh=_qS2()yciUeX8X+^)a>0LY&lZ=i3;M*49 zIYAyvXgtP-5{eG_*rB=cVmG(A*8>6>-JUO#hvi%9H-?O%p-PyzuS5b5IlI{pltK=F z5e#t&%CZ8XLJtDh(tb>44@4nehHjg&Vo<4kiutdpO29ad{UBLMWhcB%I<$}RtJrO= zLA;N<og(6r!{ZX9^UV5L4yxMMi&F*U7g)qDc2Tf;nmp~e>X5WAaYF@TFIhkL|7DjG zpWl!clHivwsyIK5h&^W(+@<s9%1()<=J%#}hy=u=+2B?lh_9bOCG)S;2Btga$6+2} z;tisUnnUQlibFxw7v|s(m|fK2eu^Q^Yw%<gQ@rBEJP8>1<V+YuBj9=X$Q@2Hc9h2m zoPL(6+N5141w{GLvV?F*v^#T_vJiTTd!KGev|6=m!O@sc8sl3a@)!cbscvnO4ZT9- zVu3@#G|x|Qz@Rlhe1I8KQN<gMpMUKM=TT!}{jw$v-0%OC4}IZFTwm99h7Wt@*uR@_ z(Z)oe&gu(*-74X?m{7O`<fxIAcv!S2e~zpc`9v+F;Ky${3ifs|UbjSqGjxPqt&%qh zNX2*?+><W*e*7a9eO{#0KvQ*&TYY2DLU;XQzRU?K`P#%sJUol#7snA|dLoY$_V4uG zj-(X5Uk7ZDEB+Je(MOAs^)pqFH}@8jO3Xe1`qKdyVov@Xy2LcAzYNAdYOdjheC*AW zP84{yfE9UM8;gATTAJ(7T=l2Nx~cf#sCZS?>=5n@X}F)<^qvA+`ZGq(Er0)-3<Xe^ z7E4D;(PE%E)sGUMeb;mUHpral?Of52q6~$r!u}Npt2??Bi8d8YRtpF;=x?XRuZy!O zx4CI+^<n^o2J#bS5;mqC3#^;J_^o9Kut7978}|(mS_2XoWTe|zy*x}emn_$)85q>h zPcIt0RG7RDSE~By5?_C)uh>)mXsP~WtJt+Pa}SM@k!~U~JkL=a3{2!7Y396h8RBf9 z6aH>Ve0aMceSoiF*SvH7{<Bu|&1LZ3?S0)CByq>3Y0r)Jw#XwC47oe54oLe49R5qo z6XDMyMH}>brxEy1XLjfyBI<~HYY0Xru5pwgSWxnJ@zU?kH((0fN0gtNOG_(quRDMl z5Q^D%`#<QS29^MFyqw`Ga31e$)%eyA?tUMY_{F;k)ubRMOAH&MeENxhhpn>beMK3s zO<Dzas+*TItIqO>e`SLyt5yXZnARJR6#hi621>Bf;()yA0<UZO)Ubz*k}YaT+xsRW zo#PcqGRs*y3!!86_-lFc7Os8B3>*`MeF(O<fxA#G){9>c<mzL$U*{75==$l<$cCBW zK^nKsHbzLlMMB7x$0!OL2AAO`13g|kYP+8#gURYxMeWx$oIfJ=gFax8kW)e@0t~#o ztAGk83Th5#A)V##LP?XWs)OX~W44S=dGdd|cgTuUC28ZJ^t^=jY0}Z0pNVhug+F<< zB>ldb9pbZJS*fvNjd4CZpQQWs|FQKIP<1Rz*9q<r2*EwLyL&>g;O_433GVJ3+=IKj zySux)yB_|Nn|t58>wn)_vsewxndzyn+Fe!Cy{qv(9=uWir#FXBLD1DdA@h(VdeOH4 z?r|negCE7jam(Ca1ozl=yPX~%3>#gI;F;78qIUPBj&YoZ6<v9Dmbq_%H?84s;ryIG zeAlk-C<mXg#8|6isP?TWQtE*R<i|*p{GfK^qKw#^ryWzP|4P_Cp*}yioAkvslOl3b zQFDs&eMF};Y1x|F;}u|evgP=An5<PjQ*Nh$YyU^XZt=%BZ;Gbzb~if~P$K?MbfpR% z2$|XziDf|bvx5j3+j24hHUgu~i|##V-g2Cym)YB>waOU;6^7jK?Vg>^VilRfWk4bU zw;A}{`<r%9@*sl0rNV@wslgCe)4B~uhKT!^a1->#y34n(1Q6_~;~eqpQj{N!0|3|3 zT^d}-o#+KKr?6kkJ9*XKNV@r{zlShb+KY#{E)$zE1C5#lV#P$ysZ(mfGJ@5BA&jkT z49wJ;IRD`%<_L9FCVv|!+b}cpl^oB@m?-*9g>UQI%mG!jODU-2M`fMD_@34Yr**&u zVg_X9GobdaSEnDc@<Rij#7An}G{+8puZ`a`l4K=-D7l*u6bIX^WDyp3=blu26tdgL zF{f8$ZoFTrUFuOBJOw8}|A;&kC+NKXcF{%ee8R7)?L&5d|EB5aBT6237+Mv%6N#0v z+~&)nwA8Em89xrLRHICB!2axZJk+I$;u=)#y_NHRq6HpGD2}BHY1lb-ur3!j=E#_i zJN{zD)j>@-Z_2n{BZ)Tl)DivQ;ehuHzqw^8XC1G?Y2qPr?=)Ph=oe4tIw~e{;H1rJ zs;L(h^woJ!^?hIjx&m)1PgBEC^V7<-@mY%@2HlHoN^*UtjnnIs&)iy^<G{UAa4phW zkx+XbfBQwt=9OVr@IM*(xlZr*v;;N5@O_Ag{v;;zk$IpcPV5rZh);!th|Py^zo3Ao z?;A5*?!gY`Y?`Z)CK`O%z+qb}KQw9|Oqd`#>}9(93nKZARcestF|PJ?a1q+Ge+u)R z2Y)3u`#QKtSccEcG9!)Tn$%n!llD9Q3sTaR51+FFreawH&2nyh<aMC`re^W}T&Fcr zC%3vlCmXfn5IQ28&zcB}MSYP>jcr9gEnnTbk1&#AwBs`QMxU$4EqQ{`0usLv0tik7 zE;&eSun^^FGJ-r^3Z$%?a3?<cW+X2B><oI@CzEsN{ux#__w)tYQ#?KZ2eHn>9O4$! z^I8pF<X$fb7`BPyY`qeWdCH;5j9;lAtmh9})nP;+ko*hpPFkp>^7d_!8~%dg?DYIz zXwJyUdAqC!O@sby2EA19Ex`_6fs)R@iTlh-P#A_t+`@>I8WuuK2!Ym$sH*uo<$i>& z{)UaR7j>g`|2ow;UAH>moH@g7{GJZT+K(tP@C#{?v4(LuhZ}X8xYOu^RV2yRTxmXb z@vI0X*E-uvtNGe<bFn3T9WX1^?1_t+W*loSJ5K9fsqf8WB`Mtb1}BinV|oXIg$9)V zb>H~AlQmJoP*!~@5YA+IUeX6QYQGJd#b>m=dXy@ll9jguZ&O><x%m@%Ied)<0HTCj z?_xK%5TA&;XQ_#fGT_%AJf1?Pk=AY6q2jvLL#6B7k4TnU_3gQo^2~PkmJLT5R1J6g z3D$=1{Zz&?=uOazl^N9<6@En>#yO-%DhnRR&q*XOoO#V{B7;`n{$3&~v6Z;oKsHf8 zcyEP=vg4VUq6>YGRWgxCI8dsH<dflt0zrf|J@_I5%34Kj4JcL4-``cJm0n|%-60<m z%Zm)n%C^xqwR7vImo*%*L3Wf5V+y=W3@O`vtrCBJuum-~fUgpy^G$}nEQqRR>4k(k z&UZ5#qGd{$oii_Jn+;v#F)dJ9QW4y`9?XZm*Ug>UL1ZNurBCPIOF&>>r%?lZWo(oh zJyi!#6ojqiJ4xTcYp=g)YrCa$n#!NPDk0U?#|MGj!ea_uJyM5~V(0yRsL0{5!R;T! zJT)j_NdaAg;4I>5!h^L4xsHx=g0;SZ%e_6TCU_@*wr_*TBs_so?To>n-v1_+h{R;C zf9-dx*Zyn2u?OnUC_+&&V%3k!6mz;B9~YluY?cUNcIxOq#M<xEwcYhS$JxjEA%Wjd z+-1<0E@iRCtB=-aFgN&nqtw&RV&Cr^t|t|luHwVxs)~1tlj`->2z3_4rKU9BHR=Y; z!shv65aD04H>ZGzCF8pk#F!$YGUWUR)z5+1{2!S|)D$kKq0Q^-J$Y6~+11IM6*vrr zO*!7bMxEf)70w4eT95fRbE^G1FSgt0rztpj*h&a9W+&%@3UIQ#zPZ-7;{*>P-X!Wb zqs3;_*e?M)e)mg}QLk3`%fg{QyhlCKAI<>KT6n#|=g%*U(9-3+w7>ZrcA{H>)OVsJ z1K_ntFdnEvC_6*8Rdw`97_%^nQ?z175GuLUE3kejO8N&&$B?jSWQJXu?n{Wz?T5h@ zoS)Iph%YB9P$}vYtC08It7VqYVaK{d0l{<L0CCl1J<1TpA{N@^gM6WbtcA6kiH++S z*Q}v{Qr~S2Wf7&y9l8XX-sr*Oa(7;G!&k4#LM=f~R57yBp=kMRJDG_nYtdT-aRk$9 zw~HESkCBX;%BT2V1km0HVC%t`{7!9oe9dI}$xPfhD@$%CcScIiWwTn|msyw|BWi3W zm42CQ$4qoJwJdvkMhNKihr5(FmA_eHK&#U^>+Vb`waSHmYXQ)S^jjp050A>R*9JKe zgdolA=V!Dk!Y815AVAZ<D;%tH^^&_vh23K5aC2Fy%WsNq(u20?`?DLC^TSZ7Yx<}s zE8wnB``YHhN4M8$)%-1h&2*A|AV;s4<-0u<dcIP3_|kqLR{a@s=yTcwl=l5zEVmS} zXtfjHS#*Fr<Mb2R>gFymIE9vgmO_)^X<w6Zwfgiq&MqyrgFQ$P8Zzx`am*{R5+DCz zimGcKJwJ&E?$*Go6lYYWgtW5@kh!lo#V<IzP>m{8-RbB~PR>s0`}fid3IP{jkFs{i zTqhC!j$CO>K!b2^P2n3Fs30czpTd}8Z*B{2h;h7ctozq(FRh#N?ruZqAj7y2^(KrL zZhzU|vK~nw3-to2Nfh*p7>poF1z0~Pg$~M@`HJ^QBoVg=jIuNgSmU+g%MOV4m|a9V zGmXSxhyma#Y0;mbU_A&j5G%!Ho8iH7ew1{MpR0+<<*w#Fd6wUlvNm>@Y?oss`#Kwo zsrNUtOlRq=_t?qsKGT*UK8Nu)20lq`@jrRfZeke4P^zB`a0=LL&R-7K)#JsTon_=^ zRvW^>aCL|UERn>@=KpxGKH}WUhdnl?;pDTeM#r~%BaiUh&hMUd=hxxk;+~vjQl#0Q zYZ9Kvm}24x?Iq@+Lb0=T_UW9~{1s&@M=nJ+S%m4EF&>>I95nmHPmKRpp)3$$Tol#J zv_3C97Je&J^LxvF^3%QUks8r|>-2OR`my-|>^FwQ7w@6dKk@H%yuIE~gZ;)>`~Ybo z7@rvp)P?c^pTuWVy!cwQ5T_9F?J`0?T-wruw;mXBDixtXQGo8-2{ZAm%a-*$4J!qd zmE#*+apOaXZZFbz1)BXWyI<OBRNk9$2*m~**4C%;^qBR=$r9#A{EdT*=(j5(yqmfd z`|O8<ClAZP+);x##r$tEn(P~+2<+C3)0vreIZQzu2C|YN&M*%FytHccKX&bd1Ub}x zfp!=LX(E+-7&^dX!+d})OtcG<ZK^+;_55N~S5`Jg%p-(ir~6#TLs|-uU}Xvp$hvCb z3Ckk#2ZxSoYI-9*_WFw^45UQLxnFb6h&I__Y!mqIz9j-fkyRmn(=hR%D!V>E2ZTPX zwWv`bCIyZC23sDMzb2P29Ijp#1avF;yb=bw2x6}S6?0wk>%!0#j>a!*6$fY8jyh@r z2b;O`WQP((R+RWwBwG_Q2Sn{%aKmvoZ|Rw^ky|`GoB@xT{5A-PPu`(nlb$cWly9F^ zLe>qT2B7qNwJlYOFx<VQ4!d9SoBanpW33C)+Fm|l`a2+dK9iAREw^BO!R_Gc2%768 zcaV?V)OM@0?ot8@yZQ_3kNAzwDYr8|_q2Rg?&V^XwNnfmYIPiM>%KEI?Rh%*1}{`r zRYJ)jQykT~1F9qfqDkk|`q~|^R8#~)*S{DmK$h}$PN{PDCFrJ7odnVL1pjx{wE+^x z+IzC8Ip(Ty_}>+2J3$I^#n7qlw*^t<5yim&#1|*p-%hNM_5sk{YI``fOW*c1J6v8G zhZMbF{1SKG*sW|Gt<zw+F7qbaGH4^je{F7g--b=VA0JaKHTvaPV7f$YlnS6j;xKVj zK{~47@_qz5tPm`s=W{yyOZF{S?&DWggR8lKZBQCS)p(p%?dEBoTm5!1-^q6`fCe&+ zBw8o|Jk^*gZJGy+?e^#6Go^ZdN$Y}3+xwCJX7e&0e%8VEU6ewux+ET4IixbaQ*F$v zPdT_HY|FnWX3KK&abDaV#nmLJSvK%f6(`6vU;0G#s<Ryb+9h|z@9jlc!B40QJW+mn zov(*vZrj{^1yx?-@3hHQ`%5~%zAPs1ujH}=DUUBsQb!??cV~ru>(Ot8snozgDj_k4 zUI}#}3{{KO{N-mKcs{&^olf4{YpB1TzIQmUCJs3a$TGWMSX?g~qilhR*|1*5JDcF@ zxY+AXKv-sSB<VL55>f?(0EShQ5aN6r%m#Y_{#Ah!Hm|PCVTEM!wtz~op6+l`iF!p2 zS+N-SEcs+fsD70DKzDH*Gb38QyW5kU@K)`??6^fZahlLNb?5_YuO9Fcg{8%!`>IXQ zs&-x;#<4jHYJio)w`*%!&RNe9@%yOva%6IOAu$slJUTVM0oQvp=5(qrBTeG=R|0OK zw5=}?u^SbH2RpfTez<<RJN3nh{|9#d%QMsG3*$KN=bJLPx34=pm6jm!EjkxZ?8>#v z`Vq_;?F@}AWz=Me{{>KKRu4n|!%Jh9n4xBQW<1{DjDI=Pg`rzvO><?_Xxf*NQkwr+ z{rk8_YBM)AKw!xWAlBPtD!ys*bK=HR=<SsFSKf$<(!MCq3h~)RKchm_ts0a0KH@rq zX{_O1c1YuPyu|@K6=eY_On?RF0~7~U)yEOOT=ODh8=)`z==4&+6P(kXTSYV+`mJ|p z#yGdzS$E@Ovd_0R*~F;@Hbb0T93{^soa+e*1p7aL(WM|kOQn_QQ_z-f7@*o9b2%%^ ztAtM3>Ie6NjN`A_>E8rLraVD9r5_@8;V22B4Dkj|{qaG72FYmfDv<pu*dRl5p|sg1 zr>>lk9=&Wmfr5nwAzUcbt^X|f>}EO#yskfUX#fSfQn{mU4^_72dBF8^d)h9LZ(@k5 zG?fbA3MSV(>%{6pX;S{SU%IT%<+cc9(>ZeFoXHT6kso=B63Vlv993~T%136mIC=h= zY>eWEW0yOHi-}buB9CIbkZ-p-oqf7Q-uK&w*^AlEgus^Pj6!Cc;bA9b%$cT0Y9igi z$&vIE!b6|^*>S_kZxa4IuGOF*uik&X^Pv`rw7jjvUda?|DB5wNu@MvOb(lYukflld z_uTTwW&aP=lO9?bE(Ve{(X#gLem!by*NW)-yf%wO0@6?4$`8b+@?ii;Lbs6K7eXX5 znwr(@KePksd~+PU{NQp@g@uV-C0{LUr8fOjh<sfW1Jb?6>FblPB6i)|C6|q(Fn`+I zNN}_6?=VRf?yT_Y{C3*bQ><1}jOofD?=KSOvaXC)YYMySgtcFf=dn_rTGCGlqQ6pR zk#Q*#lTl@|a)s&%aOSuKS{y&jI8SePvP&*mKr&7Qq4h_qd*sazJeGO48V*rhAj%o~ zP0`j_CK&U*=}y+=gzZ?Y@`a0;Q}HOsd7Nz-hW3h|z(j&URHz^!9+cZc;2EIOmZG@g zfxSq*UdhWtf_4M{=7ak;5m}Ftt7d`{W6o>R+jTjRW#q~JGqR7aEsg3*42|j6_&Or$ z<`_$1h}H2fYon~Ym=1NE+a+7gG*VVt>LNpASiE;<f@KJIutyBKbLE`=307KX?Zu6N zdM{(TLMAesCS?)(HV+!%Q1t1oE>bKP7~9Ol&VFUIRXP4^>gi7VJ^i|;t<Fo-t)O!> zNfF5Bvyz*M_{AEyF2oI-s@)LDTzJWVYU3j1fjT5<Ad7DING~9kZH~3f+AFBLZz;>Z zN{G8%u(>{V@ftBqJuFbW*%+#w)3Y}ZZ!qbykh59N-YI|oY_b1zbSh`>h&2x!om@)z zoj*($$p$`5rDjvyI<ZQA4(r{mxSDv`{q5ZIqlWleD9DP0<-I|I`fIBGo7B^yPQn%S z8tj!7A@|;4ji5(EjYpVbjTScqO+3agmWvU&Qys!PX!-$#8@5><3JH5_>jUhTU><^8 z)7O@(JxR+;Mf+aO61A<~@8ax%Z^N$m``@47Ui10Q2|OdNFFva0kxDV7Ds*)X80f8o zcbhcdv(kk7@|j&O0%_PXpF7Ql_yPBm^%^qpm83#sg8+_QaZ(fqlxsxs1QzG^hlRD_ zKzA0)Uh61+uc3p!2#%KKr!6l=>Qwh;@dBAfF1bEG>X~RDZBxtR*hu*0AR*4yw4GCD zPM3kNi>RpY2gEOWP$^lAxU~GTn(EILq0mBR;^HHn-q_-2Cb3YjIw3I3P>>pfgCM(_ z%L@L@<@J|={Z=N>fkMYouiLsdEc|k3Lz;Vk*N`_2=NClM5$&AH-UzqJT;13PuBFiA zH<T#Q$Rr~IjpSzKK&&34tae`?3|-Ap=TlV#PHK#dPsy+0QbD1utT#kU#emPHqM+j7 z=6Trbwg7M_$<h?tttA_kT{YLQIpwzJ1A#Ggv0ODABsIWJ9DR7g20qN{!aN{+Fwcj1 zLfq2nAt2^BuSL9jg*AC>RZz;tj8#Gw_xmo@$Hg$JP}%&($Fq>bwyj>uYENDk#<8Ua zz~okx^SlPuotTqCxowR)bt9FKP@uQ<1>C_z-L-s%XS>OAI)W@`j?wwkDp!u-`PhKJ zeFGzYTU-nvDmo>qbNAqyS~@*oC@^rI7e&sHEk#J!feNYzJgl?7IMaREcbrF2QzPvE zLTKWLqN3P!&-~n-RE;7<#=MIObF%Gj8^GOBZBaw%C3re!i4%P66cE*)Ki6uqbiLw- z`JLUjvY@Vw@}X?%W4KVMPbqfNMl>xoj&8R@{j{N6i+lBZ`~6FwY6{h-O3h9;>|v{^ z7H9*JPv|LHQ<0@__rFTE47v?9(8{wr#gOHp?{5uJ0ZKHGx*Hp85NPjs3lwAoN}uPs z`@WP8I!q<zj6YjNpCxrx1O>}e^w_~98&UdmP$||0Dw}<24hLU<Fmf6SR8Q_;zu3SL zd9}$rzOatdN=q&HBu9o&0=|p;0rPHLa6Ce-;itWi2{w=r^CTEr2C4bJ(#ER&b+02W zwu)s>xEF&?dy`<u$Vg7z^{SZu>cuT{Sg-~O!SLdi&A*m|>48+Qk|mnv|3LQRUie*t zmh*=@o3xZrN~RUNyA$79Bqfz6hexx;%h;wDUw9=8x4qnGe7;F3Chg!Z>0Rtkt9k1; z^zkRNiiv~<GW6>*DsDxo%eK1x5W`bvT`MrURt>Fa+(+%?s8;(JH6?1#U5BmfpZ1Th zhKoB{W|jd4%x2=(ZOQrWP81E$jLn466)ce5-hN&LT-?=kWlL7Aj^z<^HK#p|jrLTz z1y}}hHmEcwCUV^NT5HL3r>rFXXF$jK`jm0WMXEA|<d2{XMF1?0x%QifXQZ+xoXIWm ziM(C5&}RpDf3B6@V#Ne4ddZ~M)%c#89{0xJ!^UiVuV4DPazBxJuw$5588UH!96ETo zM#MzC?DH}<TQ`e=QamVf?mGkC@r;?HxI^!y2;0Ct6NlH_0~aj7{s7xwuEO6eyDW(D z^7$c9?K!p9-SdrH1Sj(e<z*f=cxZL-31zsHynR^6pAAhnnC{2oN^+0u+Bn>5oCS*a znCQtHBjc{FVJ)~FW_oU$uMrGu*{SoW%|b_;?3?pA-M|a{+wmH3k}%xePvOa@Fz_k( zR%JYV*a@0UB-!>xpG1~x+4m277ju0$Y{0r1wtie2Y1q3y*Ff}%(RjZ*-Z(=l6Jj?@ z)x9Ju2;B&wHD`HA2sT)9(zW|_!``vbNBev_c+XaQa8uMpDnho0)3q}s<4=V^jMOdC z_Ix~bdvOd)EQr7r^eu4(C-!|e*Vv|nXR=GPt4&a#!<dZ6){QVJKFqlG0;(|_+`Gk& z!Oyr4%*w{C&C~{XbYv%H#Qp()rhtEgonKUwem~O9QC74BXXD4RS^S?@u-^MAKq1=k z*kR>zJTA59*o2I@K~6KMExg#6S~L5X2iR(#t|e|tHvt~e9X=VB)w<!>3}B6vvKwuC zOkjmjq0@P-qwphSsQ~%P<`<Pu&U^&?yE2;}L?vdlS0F|a$)+jweMH_4rIUk9RH{BF zLlu6RK_J9Qe)YAyOXL`RBSKoCNT{@_m$k-G>Icy)6xQ@@GB^A(aDM-Gs&ysHlT`B+ zWgqwe1$GS#I3AZ43p-?9Bh4(1L$ahpj*;nvQ!FS}9=3AVO1-<hH?KQeONv>|lwANE zag2vcJEpR8u-DV(R{v;EYrbIEb)-|0OwYNunP!UXYom}n-ve8YhvRZ=X={I13S#jD zxm*7xADmJ^k(1ZZn8*W&5KU8<w&uHD25s8t%cmfR=Ds`>;<|U@_y5e8fns~<(8`Q# z2a?j{!EfV!mUWT%$OmVb=`3)ZuZ@kCU_deXd5-2Bxf8Mi#+m)aXAYx295h!ncx-iQ zz;>rl)9jI8+{E&4y1kx0Ldmk(WLrGMI+{QU`It{LIv+Znc7~EoV4`oKarLQ)-F>>U zpB^-B9=tg<IAXIK-|}{AXgu4cuVHNMFKprJU?L@_S`hm{qpw!5LhRes+`|1hjgI4N zAw6VM!@Ba^aSlmixFrc)RAi1H!{4neClBv>hcZt+_&GJFF+j<SpBWOAE<2J~1`PjS zcD5??^6T6ETQ$7H#Sza62;`{pq`Yxb<TyKe&4o9kd7n94e{__#4db6xxQxc<Yq=<% zt_g`eQ(^LR3}LlvRnm?DXOc%Cf7nQaPi?)7iTQse2QFOd1aKk^W%VWg5MX~nJTTSS zm0QSx0F}x1^6>IT3y!7u{LwC6*Y4G~Djh3Jy<t(o1&NB-V;#bfON8ayqooM2Ujc>} zW~(c=G)mcK1n(gLdHc&c!`1W4g2(wlTox+V4gr%VEZ%2Bp^rnKvL;spBi)R9^IR^K zSxKL@0K&YmHSF^8YCo=YO-$=FTh$mh!F}uV7Y+y=^@xr$bFN!>vt~BC#_)RdKKxOR zfBT;~hb7<!cuV!uMF1`gR+YdQb`e;fb(XgGYPe&m?Qxx0S+wuy4A$pv&*DxTm(kYU zT<vUBxJB?Na$8<kTSl3?gIY<R)&euuj|`T4e5R<4zGXS6rWJ0~=uSeNqK(_We@`P^ z{gL!cDQ5U<GhssTx57ApSP#zTN+BnCY;b+|zz!!%Y_Zea%}K)jv|a37L1WHP839aK zrB4n48MW%wSK_2vd9MlZhQQ?!-j?<(r<V|BUw-lM6HZX-_%H{?A=_tX2oyJ!I7PxC z9KW1Id5)^Ly(cD_*dhdGuQpp0U^t748izw8sh22idJC1zU8~pc)LZAvGp4RWnVR~~ zb&q~TQ)Ig<U8<VOyCwc3ntz*+T3~nJ)h`l|Bpqdi-&<c&lO%U=p$K}x&jHA#^LO@6 z#hYn&F9P!dPflI$-TAE-t9`YRVS_av)GE;ZI$u+o3|l3_IQK{r!Vez<a@8HWzg6OE zWq-}2aCK*)rIX2~RLb1~^I=JAGK1#JJ-qiLqlyRlqvs^iD-?0@Vs<7}%7v%|yGMD4 zOWfzN1X+noZX2nMD@QiS7O;yY<Pz0`^@BUV()7-BhuAjhZ@?dQ<X5@P>E6t(E;}lz zv*?rULLKEGL_d1Vaf#+3INb#ygrD85OiX6HRoD!l-K2Czi(tBzIz-UD$yla+b@94z zvs6_*Z0{G4gf8)ok1@xBdr{TO^c2iT+Gn#Obaeb*qngUmDHoQN^%%yqC2xzFW17h_ zPPYO()~Qq(j>r%nom~cWuez1HyQz%@q`7*g^F3Wf${L)#)*u;J_4tQdW9_@aig-KT zH+(RU5>pA-)L7*(Hb!z2wt@d%zxFgpfP;3M2i}eqdxaoTcO=r11sl54(xS42A8ccW z^hBggHL6IVk{hE~tg5X1Jq78>IUk$tgw<4h^jmQ+Qm}Y7J^6D)6e8D^aLB?v19$q0 zO7rKr?`Ri@=jFxNkM5nZ=VixSC&QU_zPXY%_DR<EjTv#Uan!y5I$haPSKiyM0eTOO zkM-QMmlAOH*9j819D{3VG0}-J$#JQ1i7{aNm!^wb31?+XM82$eG(SN_MTJT*#xfpW zn18irAjNQrtL>Nga6vDW8o<C(q5C2k{;&LeSSbBw00|gQXF0h$*lJmdQ_w#htSyc~ z`Idg^jKK-a)A{mq-9c&bzDvb&E+^{M^-3VBeJ0`qR1&5}lo%(6>;PwNvi<!Am~YK% z#>n%Hu|AkFpBpS2+3vCg;mEFIpS%ALewx|Hl!C*_gzMXF1E#UbOF}@<H-Pwv*npwU z%$NG9)*JD)gzK>8+C38G5dcqE8A3?jpc6@Z$gZd8X1mmuu~o6F>tSVr(dS#Y+rSMc zU&?tCa;kT3zG2>O;F4Y`(hkQF;38o^ajp=L>qvo|Okih%JVtqEi+QVz&YmkL*@))^ zn(Sq6rzRZuix+}|D;5oSZE*MA{cDr-9&+({1t*x}Xq)dl=Vvun(xM2kJV>?#s9E5W z*18d~C*has`0A}_wbiNrgwB7W=s&TKD4IT}<IzCqxcQEpEfJsaZoO&m{0xg$77NdL zFSRn~wufs%H!tnupty==Z9&Qe%p55B|6&<OpC1)6<SiGp356_8$E0>Y)Sj8unV5`R zMEHjJ0ClzAEo|>Q=+ad|`5ol{G}sUJC&*K&HrJp`BX7`dn9%!e#39g_Ox@uZ5bzIH z=mieCF})?CXCvo{<EYCu^Zl~hD-ZV7dSz+39zGLX{W$hPiiw}RF+&K8#u$te{f6DI z{`~4;0omxa!Dcp3b1?Hgb`?_+XR}gViRb>wm2o-knO1#fsihWzC^i#4YJ?5wx7FHS z-Z45)q_fyo^WCzKle{ZZ02bV82crjfH^Nd_h>ge4;AUjRgM4Ru?@Zr^{Ddsf%f$0t zT?8Z=cYBA`N`0Z}cJ@EW_U{B$Wh$rq%MvxVc$p&gZP{4g#YFN}c3-oex^X2gU8(3w zf8V-(t$>=<W*$~Nq@@7r%Dp$>JFB+;@oOrlF>Ah@op)zbw0^j4A=xyn{h(tt?}|+* zW5Qf=Sbunm{0(#a>>YN;qaY${w;UX11(M!s%}g*r!g>cE%$Idjwu#U8hTtu+k?t^o zlshmYb)jliAS3fGOae0zioCHr71k?y@;#_<Id`VxdViqg^TRU8`?V62Tn4#F0?%L7 zoSxDfu2_E+e{!rHv;GR)+sA>tfA1+@=Onq5UYZT(WBM@9W1O!k@!6<imt2ZJG1Irz z|0P*Ud7>#-zcNOI2((XcUq(_74w?33y7;N%{gr?cKPdGJim(5zV?nnsk5%>kp$S%$ zjZ(dsU@vs}xok0xgnk;0N`TVw_I;u46Ti5dq1p25Ydvfb(@h89sVhQj$wT@m-@{0p zIVH3#nVLrDqm_M!WDsBydK_!+Y_6SMnEL{2Y&k)ZqGt#?8P(l)0iB3VVPEdbB1Bxd zhzUIeBH%IJ_DAp~Os0FT9YHWyA4Z99*j@gtpe6UM=kY6+#GKV?o$>nEPRYYl+j}x} zGWqt`e(F%y%j@j(gM5Vc!~~4{$<qhObX{dLC-?h`>2y0Uk-)AkCY*72WUz%42cu0e zW(sI_jD`FhMMgE!(V@?&8gOGHD7Y?GuUr$T{|8j@pgbJUOTWI5JV2ES<vA+tau#O> zD{nlCR3Tx|Y1Ji&?yqcrCO_q>e&MujmD5)Zyttwl!M?*|QC1rPD7oH(H9#Z=;0nL0 zQ{jO}RwYr<LY4WYaB%0p#i|0|C#7pGGMPrmU#}Rw4Op!qkhMPY+a>ct#V(!@9NwwU zYFrh@9nsm}I>N%ioAW#Lq^!SGVJ2szP1y;sz3k$DmH`_qe6%G{ra$>|c1Nz&TCojm z;0zw5B*X{SsF*7MJX@n#?S#(7h1oPWA1l)`3<=-+$dnc`IROVM*6}T^nOZc+2kA6o zJgHk*ng3%m;J?YbN6(WqNCh0z`Tp^HJy@cKIrP$Ug}K$$)>HL_dMoqU*(Nz>dfGEo zA+SroY*rBMYzS10WZRp;+^fal(QBG(`n3TQER+2SaBofG@BH|ioMhgoB%0?s#)Gg( zv6iAW4-@%mMOD-A8QKzIOJRAvfS0*aVYQLM0QX3>NiGY5WP6>b^l342eZ>#iFAzV( zs+xGd%2N)N#qY5jqOZkinr#Ys<bJoU{cf8}%iJ!OJWnxJh^AR0CaX*~AVJdWzb|he zDKb=t7oysD*%609*0#&L(LSb?a{6d&X`zGhCEm*-O0C3q;R+R%cyx|zu~W;y*nVo5 z{NynKb<Q2%^}<EL#X>;?&K$3Sagskog(A?tI1AV6(t7?JTmJ*{V2NqP3k`%g?iVIY zv0lgR3|TR+2r<lAnO0}%v4={`wRghthQ_gm*259@HcoQ4SEE?WMGn1odCe(tpkhFv zIJgSwKe=LvOLAYgv)VT)Aux<lGXooBx-J~<I+Ag7fLdT)3S|;ind>;Mp8~FXjp@1Y zT!|wL2cKb3%C|SI*8oJsbcRhJ2L8{ZwEpyzm#&oR{4sT2<HLP;zLlDdU!y7srK`7{ z`OOLC@M&#2qj5iq*VCI$a_isj5313~c`ocWE}o$tBX1AUX>87n$FFO*pO-FL9(m4D zyvM8W#>`J#@+~Y$EG<wMLIU4nv$r~-W|4#5L}d^*2NJjz^uhdQqUmkzzZ0-h?cTDZ zVbF#ySCBp#s3<518N?)-v-Oq*eP&Tw3cEz$z1puo$1iTG_^>{xRj6PZqfj{5svy5^ z!juGjK!q08-yYrBF-KdMe}3Hfr1<z~z`4-LrDF(>r;#?>`YOKnT3+3d_<xCRzx&{J zHmg~|qwT~(>pg+$>dN!kAq7p12vU7*sc_zCs8qDbT8vAS(HA_^wdYL5((Xzz@KlI3 zH*#%tXlWeR$Z}<5bys8@S7+|@1m5-Ki2YHthf7@dhpx4F5<VE*n*GY+QeTWN?{o9< z`(4gkJDZ!@-5>gnP6QigQ^u+DUZ&t+P7n|oNLcAh?VbTC#eV06y_u%m>JLzb)iP$* zfxH2qL_hGjT70&m!}5j7<9#u?;zrw^cmH7jV4(0tLm>vU7N)S$n5LHi$a}lbe(Eav z(V2~pms&m+6y*GBl}9$cfqsV4myod6(_6eU<lH{<L)gxX9Kb!<z+vFSw#Sp%&4j<9 zS7m4?p+7HY9P=&#|D8mh`<+t$`@qao%pGyPc%S3I2*CJ?T*TKZzBhhcR(584sl$L- z4p1Zu*|j*v?>Tow&Q6RCf5xvYa)fbru6Q>mxUszfqqyOZ4%IbSi!A-F_FbnJ2_F)e zb_q`jn6?V^Nh3h<gOmpf!UBjG+418YYSXR#HTF#NTZQhg^B-q`U~B30>W5cH?Xq=S zi~h9=P3SFUx45T+?JXi-<`*~83&aToDKG`jiY@P36pe)n{Q|rn3@9$jJPrjWU7Cf` zJOCb3@vS1(-axXHpEvwox-*LT`REA%_H~O#VF_HD;Uvkv6n0zbcv>x&%dus}^fL<E zDDJBr9@ijf&Lf=Ev<YJ|W*42if)Ajj$qt`1e^EjIF}%NQ@Q-}9==};yPoL&!lf7RT zOX#}37TglZ)#~!bwDYFQi8Knk2C|)_?m_5SbevZsMGtP}JOrs7OU2&t-%eiBx3N8X zf6Hihe-Q?DIwM>WoK7#VcN<6LkL%F46D>6Sym7WWJw0OWfW%4Q6Pj<cN(Z-<TKDdT zf)2yt+e@!>=66~r8RvbzYPOb2=Jk9$0%TY(wmjP$Y)<!&_oqilwnPzDNt#4e31jQU z=tpFPE`LhCm^`ZaMu2vIPJd~Wz{M>F86lUR`>v}q0uA{D{~Lr`aH!1DPSBnNhdjHL z!2R7OFHoA{q<K_@?%7uZoFNG%;OVJvA#qEU*{*Lb>*~r2R{m#0rTni+=|MfbxVAMo zXXTZQ$4FiuF=S0cLxo*|KbmxWk>L9ujT*w^3Jtj;@I;V~qlR$fQH$s)vvPr{YC5o+ z-hSNOi&y&U)LFl^Iln3#U|3}fb+_;(BUEywq4FpcI_Xp?m5i3RotK8~*23ZHaKKMr zml0Y@Yr*kgW^ck*{SNohpnHtI?(|jfI30Pe^v&+MZ8pPN^Y-ym2}c9v4T==E3)PFk z7oIH#1=P0BG<4_@L_CbESNC?Ym~C&$<kjA?h|#d7llf!)rR!mEP!4iJg1$ZT&|i_0 z?o#b4V&VK{kmUHJ%_x5g7+jrLwJe8L_VMc)M{$~_CoyhitKO~&>qG>#6%;U%<(W)< zS>5o43pEwkMRXR{v#CL-&#gvF_9~RwWiXKGM2lSin4iMMRWS6A&27@d{rv(51tK`G z@1P(Rc6;HbteE+UhLUG>7W`ScM76h0jS1UTiKoWd!R(5zH^ktB*j9#RtsgG$+IR6t z$&X)qb9?YP(m9+3pH7{{d3bVov<~gt0>XiFlnyW_E1X<JM9It$Dzu%iOe!E<?`j=x zjk9?s=pW|->|}5TNpBW&wA+#K*k0OArs*?3-N(B8Af8YUE_Jo32z1%t@mm^~eLK{- zb}}zW5ZD{w-RsLvuSX(7gZn6{shJmXcNP$!1SooFbyjqDrC!xo*hGv%RKYu`*veg5 zRXjW_b8!Az@O(FifGtyLmYY=<e~Sp?^FN65V6HcHj6>W-g#R&K>PZx|wV5xSi{5SP zvhM;OM0%DJ>`FC0%(rUA@(G}9NKw5#Z8%w|k*<lFl!y-?3<(K~<iqhc9kj)%`#h!{ zmJehOK!}F%*EU|ZjJ6!d+goY0s&ItEd!a^Z#{$p*z2Sp<mV7U-*@$Ceu^4a%w+bF= z67`L@`PUO)&b~})I)|RMk^izL2yQM`pwJ1$cezXGYfP$pP%qxoUpKMeY+U!8<Yau; zufvc@*SRnQp`J-kYdKwj(?u_Uui<_?y5f4)Cu8!FMSzWB1Cv1m!XK~ht#iNxYbK$d ze8>tVku@6;w&`k(dz5l8(Q`~^2I6wQ{;$dXUl`-lBYb-%vl^s}xiHLD{{e1cq&!sS zbl?6keEzt5taf(~J2~Yt^C$8Fv;?(h7~<GCrKq%MIIk0#)4lhD^gMaXo9z&eb#5dc zIX=^uqa(2CDAVCF<|sYiPr@!!1m5`@tGGCOH~J+PVePu#f@t)}i*ZY=@jPB}A?|;n zeVL4gmEF&dF&Yv3ak)E_pCLuSO!mt&BZU2lX}QD*Pbd&8Ho;j@(MhvC;-IYfxU7(k zg$48IXrZ<cHkLnZ0ygOG&T3c?_pqpFDgkgfJj``<rB=n1^3}9LwV`}SnT9@@6Z{&} z;q{4vkr0~|5sc3VM?Yc<D$GVEbF9y9esEPorzLJJ-3E2BKAcXAqy6lL5+Nd>BNO!x z827CAasBNl{`QIRKbLb>5ESb2=tKb7EF|31c|ZF}QpnsNt6%JF?-nZ)zb(fAW))R+ z{k#P}Ef@$9Cx&YO+*mc~Nx)H8Z#FmMD%Y|cjAQc)oX6*tYjd)^iz~#s=a2e;J978I z?vv4yUfBC$ECz|BS|lenl}25tlcUc9q8ggl8Hh|4@Mo8tQ|w4>9}^OL(79d;=Qh9X z+ta4VAfd*h;^E`8d)N<^B(cwh)o;0l;t5(FpHrrDLe{;Lt+Eju%=Sm8=BLwa$aHwD zs*2<*QEA?L+WW4U!ltp_;LRQ69GWlP%yrqCO&JSM;L759BWfw*)g(=y8!F?CBi0c( z<YT1sO&I>6p%aC|e4q;oziSptA4j3}mBkmDxTe#)sl#il(cTQ1U@9R#%9`-_ci8p< zD!2C^z!6MbTDHy$EtC3*{HVv{5`l%R8js5e7MV@m%2Oi@{flvIcV3$|iMiSAdM~*< z@Mt{UG%VO^5M_JOspimneAIH<RDHMVQ(+D#Z7mU1mD%uK(XDoTxr!2#=h|%Wxz<l$ zV~ef6qc`wq%|qNc3)j?y@43U340VEs4KZ!degoI{%fV-Kjw+CA_~2rUfbB;oOiAAo z$KtNE6@Ul`Tsv5_3yhdp-rZbo9GtD!!7D+J)_^CYi|MhQoMe4YXFG+digD~{2uhKF zF5tmKk6(W0`)R^iVt2oLuCs%<p|RrLH=kSKeF*9Xstp9W04+sYngZsOjxl(%SBLsZ zKct%*cym3({U_JSQ_EdCA-ai~VLRtlMHcs?@HB2la|pnv5^KVNzckHL`!DhRt#o-~ zV`J3HRO}_=&F5Mp=e-}b*;EmZH;8)z-1+bx_1eI>fmsRVMgxR?bQBEEHwCGTzwFK$ zXpLVMQf-~JaCuRqdCmOjI8fXlqZ5_Xp7tv!E!=RhPdXSE7Hz=&Z2d;Lxw$D@c~oaN zPm^|!V*Ih;wKGOGP%c~VbK7pjyPD{?*eoMCe^OD=P*Gv;!eA9v>e9NN>Hee`v|9P# zw!72P;0IxF_hvV@S?oQ#4srZ-3vK)Oo<I0<ey$pcmKv(41<%mUwSZ6s;;u-QN~b}h zZxx||@dCBe$_ATFDgq{{m3FKLcA>hsm>JF_PK9@6!AM-_Jsmq87f*as0=*TjW#-#% z{aS(A+gEuxJ!9Dq$*h%zEIs_4f62-K?>~MdjE`;@EiE1=C%cnH`^%7o4YDYTz2?KD z6M?rM6Y2zvlu!k*V=9fH{}R=;><3bW4Slp>U;pk(2>qtrbo?Bbs7SST1o<v)>C0mN z>Up}&<LJDEGEF%md~qE0wIX)mm-tk=$nVj8c}5~6@EKIW6%M#DUr(mavE7f+k@N80 zD+X#wg!2Xp1@ey&zi<%8wyzSlm18wTeIb|7lVjGO&Y?8Tej=e~0L4fqT3j-Rq*3Ze zm@{o_3z_(k7$34Kf+!R^3V2p+H*Em6QI4XYxc%#G$a=upD&RSSieNNM9NYOGsOs`M zJz*jWY#N1q;I!S^wqk2(nN*b>YYS@u$&{}kzMuc!yN-Hc#by+2GIBQA9Huu5Kng&Q zvR`$KGWm3&YV4ITCY2g4@E+pMCE*q^3XUT}kwT|?7R%L5oVS7>`<0qTx{YKZ{yX?H z2H)iZU|zdeqq^yCL6&DfqOm9M%&L!x5v*btgG@fZ?O4Q8xN{bDx7UXyiA*aMJ%ub( z?2~!-yt97<+c``N`mT)YhN<jL@W4*S{d?Y3ibLZQFduX(kasZ<7j~dv>QDq>E~#du zp=RWxLZ)O=`<PH3r!X_e?o`8)xMjr9EL38MR|m;Li<NV<9UeVKrETrs%eMJsq#749 zvKU-!r=z{qAkzV8-|*1krg?m%XyMTzvGIfFfYP{MSr$1C2-Lu3J{nTD&OZD!gxy3% zg?Xk%0z|C($2Iy_IC9?s;HxpMy~P;A7)_JE=-F;!{1wI5H>16iaQP0jm%}30r<@&M z|63E5Km0=R^G%;bYUa(gE;lRUL15(0iidh939@DyPocr2&ye&y>lYCnBna-rreb*h zUDr!@j@ORTRVZO|*Z$k3r(x1v$OJmYymK~O_kow@tMh=g?jmF!`UpPk!B5gJ*;E_E zkMle|_vm0+cHca9FdMFO7kYBUKE%TXlr%V~W`9YFDf~3ZnslV0*$Ei#-Bp~e{my=g z;fx*LR}O^j$TaSuPSWfyF~E~t2E+d3cOc~B@LqU=41Nr@wXWv9@FYDvj$%6>is*vL z)9ob0lljw~l0I_<e+VYadtf4D8n2PUn4j$rWPX*06XyB6mwJcG?BnISI?a)@1_hYu z4s;em%vjjaq(5jM<@g^5oDk@L)@i|nb#&ZpZq5Y<zhqB0m%**xXl2>ERND)`hcTL} z#bRzWd7}E2*;pgxM(c8g({MOGo=#ioa<J(NK(IX$P%uzuk=9l+vM|%b1=Yc@9=eXu z&9J`80L3ex+SMbei?m|8hV`I+gl~gg&D>zWzDnAkpa0oUJ+4EUHmnVaax0&k(7pV# z(9`Snhj@1?*NbC4$R1_O=&dhR4-TqA0X(Gg0J`}Qz#^(*ghm4S_}KiewjgPL?G&ht zXVX)k5eJm-qzRBO%)eYaF>z&kWG#BG3aR;<L%s*B^aOE27Dd+GLG;qAYgU?g0xj+H z#cNSGj@8N15B+7On++eS0;E+{Prj17hstDOXj{9`FH=7r<<y;=jBRC|LDu@qmk~Ru z{P9T*?GJ$cJKxgDz>g3cJbC;b4=?Y|$*;0BeAU5;NmDayGRV0S*pvVBQ|#o5%V-I# zA@RDutBw<-dnrL%Jc{<YZR#R#D(59dY)ht~GhcfJL-R%m+j$IEy$nD;b71V70Jwpf z9rG-woMW9II{2cVKbvM2I<<q!^sdH1#TLvOs;ZVzg|XJij7FTP{iUs2@ReR0SH4WF zv#PocY5s*8a8~alod$I&O<{wUs;091I!yD#(p=g3(a{kb=6A9_pU3*HM02`iWa)}2 z0n@z;mutsS<TC8gP90z;<m(gan;gpjKJ8__4<pXaUK5yoCsy@?KH1Cny#w$O;Brzc zNfK}OsOvXI=zhlhbR9k8M0E9$Udp|?qc`JGDi};Cz08$G9M_*lQk!y!i1rXG+3uyR z``G$*e1wg4apt0n{X0T6eAom!wT?qv+h8=Iwo@*qD6SE;UrX?$^)6#@?FVz`=AIM5 zwLg8Z<UZh7SP>#QdxIv7UnYVk#Ckq9ILAjd<nCq&lOktp61xv0G$O|oNX7E=U#L5k za<g2nb8<h|-CruH9jayY-tRA6tR*eX<oZ)4UZA~bCf!0iwwAf-BxB@_vYKx^ERyN@ znC6L>y3csK>treB2r=VFT``$`8<rW>ELZ0=-qB+y^Yyd><m`K|4@Kbb-o2AKWHogP z=ef^GR@l{$1Ek@A%&Ewp802N_w>-V{ovg$u$l$#@NH_wW`%b2n<~d)hy^d=?EpcZ8 z<YcyTNdU3i>^)`i-hs{neVnYv-&TKKUYTV$gVou)Tu!|_OD3lsegoa>uiJIZq2Kmz z-%bJgvG9*_sgLHNs||n12|B*ZBq;vf9f8{_506)%NvmC$1TEsYoy%_W(`!~qhQ1}~ z?E811<K4T1=ZgwkU7$zRT2oome!gSRX_n*K#N+MU?c;u-g$5xf!hd>0wLEWh#(q1i zdE3=H%Xw}CPnV{gb{#PO@^m)xZ1u3D(D#ol-`zMFPj8Jp)U-8KYc*Cib)ROb=|k$> zNH~h@vA4MG+E^#v{$QgQtEPSya(pM?`1@H4#H-1<*^Fj)!aNJxn(O&63qXremRmMo zy`Rp2k}j;p`3C!WEX~l1&ENwKRj=OL7#b)#nNSG20D-tGjGlN>pQ0F*P3dh$6r7L= zFASDUgb+j@z}JNncoDW1r4r>2&E~&~NU@jsjKp*s7~XBLCVls?OdCvFyw5Xq=kt<0 z<8`LnaNAF{e|jrG%J}q0z`uX~CF%b*3XtA`j^7>rp9bjh|NQGea`@kd*U=w!dk1QO z4$wycG}eEH`#%i<N0YhgvSUz52)=mZ@MBfw*2VWgpTEZIodPtlY4-g;UkEYc9S7Rz zpGqT@a}^-{xuDmP&DE+#y5s93L*~E!cwu)ca#vPd%wLRD1P<yL=#$Cyf-$){SE|04 zG_?B7|A>L`zgPCqYE4c{Qd>9Ic#B;WbOhb-&;4h0tqbjJLmX&a2lm^zW$_fC|BRo2 z<AL_&fz_^CZg=s5Wg!lc0`z|`_T>1xM`=lmJcp@2Yx!7BoMis>MUKVPU_=1li@KBJ z?Y`9dQvWl~y)pT>@-PEU66L;pjCp*5dRL{uMAY%)(d?I-U<bs*h*$URwdGE8z{^Vn zU}<?1hg*96qao2}qn%K8>H0N~!0P56<%dhhNlLWHN)BH9^Nkxu5pv^m>l1={Xct@K zgck)qi~DG2ss0l_d*_~dWoyUw`lG+cnjririm#Vwj$a}Ej?0}w>zqy-XYgming%~j z%q&q~Bs2xL`<Cw;O+;Nnd%>=%_2a_SFQp%j9Iew`D(P)sPsjFTZGYIfwAC(bqxZ}s zUETy2>n$vsx7X0)+$7X451!+%t2_P?r`M)Dp5CK?UZLP*NrrJ?bL5t9&DO={KFMO? zgX7!7&CAJ-$;;1nHEXM!BH@x^ia{jXr!Oz-&BLU6fR4k3>&lf4Nxn%A8oF|%Qlr+N zwvm^Iiw)fbMG~%G$xAtwQj3iUT71s*d$@zj@#xDKquZZPUU`0+uws}!La)2q-Q7H? z+%Zfpcw}<@qdOPT*}^scQ)0lHGYfZRzB-$>N@<I?>wZ)(p7CE?pT_~Bksrrn-Da#D z2h6o;K=SOJSgk~!vr<C)P9lqECHZ|<mCer5_V@?4ZQ#N};R)i5Rry&DZPQZwTT}JZ zZh|(y>s!@m63=mnEqA3I@to$D^8;C$B6gg}$n|#MgYC8xZRCB~f4al)ahLh=Qa6<; zP3eSIQNlBhfO$t2?}>nN>dRG5u(39M*&UzrW{xU<`{T@0v4f*1zbDU2ubww1kAqg3 z^e%?83(7MQAZWPAzHl@p+vv-=Xrx*xyZWx6=-(soZdNx@4<q+x6A_yF7w=w6cd@lq zI=w>TqJ^W}R^aR45y~QwCKNGO9FO>;Eed>df<mC18L#a=Chx1;<;fvB>~3WqQ+t|+ zHKU#0h9|A^xbVPGC+V+G(A3I`(0|MnlWUg9sOFn8($BN@kL{PzKWh2V-(>loGs=({ z<+!+e7LhA4_1+y$$NiRXt*Gbd0duf^{qbmQr@UxOXjSxneQ1?$t;E@X2Z@1(e%>k$ z%D3u7#$w!<x9cktUQV%aSe(`f3flgz{mJRN=ksYV5c%z)&i1^x+=%?!w#M$-Y*u7y zWph;i*$09+f~GVr5xJ+e<U*1LWP-4M{d?Z{fAqhon>-AuQi_nb7@we@{t`M#K$>6L zAn<|W6(Q@@E&sB9keWnQT+A_O97>!1gC~6kP&#6{eSx3|Eg_Ph1J|t-`akeu-Mi#t zR|zSr2P+^MjI4z>1&>Y4-Ba>tcuWg2tMFabt^vU0<mKVxTSfsw7FS#bmaIo}XU_mV zzLbF`8nQMBic$Z8+sb39x2a`Nk+I6osf}48_pvW-`0hFPoKxh@@UsI58Q<yI+Fo_v zdad6)<XgCp`D%`2fMDWQ3Cd=_+?(#lci`Y>H)Fy6MzJgxhx!=A&wH<E#>5HVP5OyY z3Xf1gXd0=A_yI4bU$Q@6bG9*j|5U0=rdarmUZ+A?_NRcudIIRgBJh8DB#aUYr}rqN z{f56tM7I6BdPHv2u3yHZDGYkX8jmM2{XvndZA@pCS)w~GDt=v}G;=Bm*R)R7W7`Gc zH-F*(Xy7K=x4;HMGl2z7QHbD};AaEJpfD8huK_{!InS%rl&KbD2!||(E*maec9$}~ zmZNb&c!wCVS_0YsH4_MsLKygd2~2#6T;C)2?HLlBJS?o`)gBZt61GU1Nehp()fe%c zIFiBTYe+||<mv%8ejG6}zxW>W)NXMhyM0`Y^v|Fn2#;j!-x@J)2%=nWKlPBS)~;FP z()0fY6QV^J;t&mkz}8&xpLk!}C1{u0c@hVzbrk|9mQpzhh%;1vOdZ|q=ctxzXv}f6 z&@Awn(s*9eye4m5-2kZ3e&qe#;f|;Rq)U>=0q9*l@+=ji=tRfytEJPv?QJLWkJjl{ zv|2cv=BT&o!ABF^+>$gj8j;yDb@%dobrrWQuWKDR&SpR2ca_T{kbZIbDOKZt&;4od zxPO?k<@;pY(q8$}yAI-m$Uc@Y#K8C)b&N>{F_dsiG)Bk5HPly*kg!SktXBA*pU`f9 z<cs<KH4S&56d)b4!h`RHSQuS@W<18f61S`=RvKJ?<n=gzjf$Zp8o!=$&kX7A`;w0N zsJCI(`j}(u4jNkgZ4g`sE2E6ZwA9?1n9_`|G1?j4bO9Q4pZt5BBa63}R6Jr_oc@_5 zAL1s7$kt**k=3M?^p{?RXH&w-OZmn<B2Hw0nTLhXQS)aO_~>cI!X-#qF0IWko&cU> zTJ44Jr|)Z>nm!Xz#tXhYG#%7B&ZedRKl0u?s;Tbz7e-OB21P{?LsN<%Aksqzr8h(G zAiYZoEkMvn6QvjFAT_ig2uK$J5u`)ty%Tz`fqMe#^Sr<Bcir`__r3q!v$Eji<eWXT zXV0Gb%<OX1W(}_lN<7~yB>at0YR6u334y#R4)0>S=UYF2Xvg(8s*ft7<XT5Y`-E(w z5^-^v57?lni7kbd5B&DV?ryG=8OzEz2^8paZkN2Fof|(Xc^r%I-9%k0_fd~)=1a4D zAK-;yrfT(?{*C=`JB_`Mwyc4+)qQ@}3Ce%08)=4A*B0gW;<q=i?-CG<HF@t4@K@-K zHJ*L_ljY3Q=U!Cj%!$mdT;8<#K$w4moYaX3a`5n!05~E2{r~hr&l!RR`~@!<!M78H z^7lj^Oz@u%pWI9E9}oS#7dZJ#=zkK})xtjr9Ka8!CkuG8zyVMO9y~n(I0O!W^6ANc z+zYV#?JWM5|9JTCGk;J1+rxheou2&Xy*Y%ZO#R<MAQIp1hdptHJuwa-YVBUw{RY>B z9gmD~=|_g|&jVsU(FgZlIKsHLY9*+x*gAl%xTi-8-vaz6kwGzs*CZhegZ{Uhch5m1 zZ?lqI#Viqa7<Z_7FzTmRQc1*S`fL^r$QLEY%w<Z^D$p~R`3DbQh%RPz<Ye{$b6GYh znRBLm!I(2eq}#DK_II^fR!7UXRj?1rbhRG)&NdFgZJv5<tdvp$enc4d)oly=nvkel z3wR%Pwe!lz`nr9xqPmtA`!VNnb$<R6LBXRc0qrXHe)m*lXrMQ+Shoj_YwfAixrXQX zB=S)N3ub7uL`kQGLuWjs9UL4mqsc~soV_2JTDE3b9Bf}<L|i(a^<<oM2Le1o^}?<i z2fur@ziFPPtf!aA+nzMMTZLGkl5&V5+q+&DMYkkeCbrIU>gY~F3uRwcskLyV)J1Pm zk=~ac9v)_9KZp2uc+7N*ZYjgA>mHab%jBJOO#&dkAP}x>u~(Fi7l8Ndc<AumWE2+{ zZ@z4D0j7^hE=oyh>;!X}oOBd?0D+H#WMpLO*E%RYK6kdna!;=9E)SQdbj$^U`2z3r zJ{1tiWy;CRi+R4iJbW<K80M8FHnFX2%A-8B6!X(|^ThW4kwo*E^J(3=S|yI9vUFX; z!{8g=4~N{denpRWn#7Nf8!Uax1y3;#8xX3T^vd7DpfbI+y)udpe|nrEQ{lE{F<5MU zqdYP)QX+`L<H=aEi^)WNz@0NHM7bL`%Ypa1e|2C~_{}{~RRI0f#>B^~NVhaM&yg@O zG1)iOv}zmXb<;LOOgIZo6fwyad>nP1d%{_@>$Q3;@ry$vL%S{M?Y3MVU40cEdJ~D& z{MtQ<V>X|PCQ8&3szduqD))v9D_%{tgyl7}mN$0?rfrcQO~yVz3~FkBzjDkA(?h&H zUhie{M+#Y4zkgfVe&EY#gBzbx;P&*GU$DPDYO``}bl;RVCE*L@v6}*qa(A~-213GS zs$8+d`2p{#<^TvpF%gU1lD=}~3T3ms-&Znn@-EtDMWVuiQis_$*&uP7FF0JQOK(xV zLKetmM{v!f?y+gf{Gf*t@u7Ye@_2WavU=FaqdiDSXd9e`Oq8n_+$_O)|Jpe2qbDZ$ z9^jt%HNN-L`k?hY)2y^hytYsor;iJ^G^bi93<z*;{|OIIX1E(}zlfz{aFE>YAE9|+ zM4WywAJdFhLU#M765sJ{*kAt^cdpM;o~S}#i>hMo8zNGu6f)KI`GPBSW4pCr^0vKu ziW@9g#R@~6xEvY`<u6%VHV?^HJNk-hsH)_1SxSj8&}Rc*k#Wd0yYyl0y^`Z9gznCk z+Nm&3`oycnKDIRFWW{z`r{y8Ce{u5-Bci+ZV7O*YJ|uCmPuV_UytA6};5J$ZyN|qM ze^+lw8T?Y`Md8OgdkYFPQauir3c74jARJDv9(nm#(`CN8^q?QX8h>=)A@wNwNXX4T zAz5!^=ppd@ae(6$-gc^~!D|hj0n;U;bJoE#tDkr1yy3QH*|HUDCE0Fy2lq~TIuHl| z-4+JC2R;~TVQnoJWoBs^z|%F|t#w9?sGltAgToFVQ=p8atolgOLss@s@NP^tvNq(B zYoOIntt>H~`*~b#qMy86)eoI?wSK<#f43sx3Es1xo+ZqUyf_&Oo|2Qbr#W#%_zn+{ zDt*;cQ}ALG61+9M9Nyw8Q;;vq7A$p+Q;n#hi=@DMrM|N&7t+_}Bq<Z(t1@mnAy?c? z?I8lv`?(&8xkJy#uhB*UHrhY&()eC3tfQY-+tkz~9=D(mu)7RoN<NI_FF2lYWe)BT z+|S&`Dte5)R*&nW%{Xs`Nyb_&N~A1pC$}!Qg*~QTfrcK^wA7H?e#oa@aLyt1#O>lu zhoi?`a&jeU0ry?SsE-K=fnUieD0*lU1U)QNW$400REcDqS3fnD=Q*1Y#fUvGr+eH{ zL-MFB50?li*!I#geM<5tv-PSph_dCKBjpSnBRn;DR-+urs~1w;gQ04vITC0zzozA= zANb`0z7_BxZu^#jlauNrPImSbnU5*N!^6WNqlS5VW5I7V8gfi}uI53$IujklufNz3 zR=u)wUl9(=#~s-qa+G~rAB~P1*sG}Ymhqz=sWd!u3Gu7s^(#H1({g&^kL2zA)6N82 zQ1HVio12@;pm5KlLs!5$*4b>#v}|l_l-2F;y8$L!qbbhiA}}qN=+@7RXAj~F_*N)x zSXp}bV6V&Y4YAy)*(xbyDc@c8Ly9>BkKeLSN}eG6gglWNK5LM)@WcDcop7l0@=(Y0 z)9Ck0b;!NaJ>{rhCWR*P?53?|H{4;t%T$9C%NUUv4tFp{WMt-+EG*a@^t5qcI#(_f z{1Ec<+ocnJPkM6M+G0Pu!%)rJw-^j22;}Kk|5B^iitTf9ZmxA(f`Cb+7|^Yzn_u|X z`VupxQSiH5cZcOyUy>|C;^fIv9#isKr^%#Wtb+8-KK`mk6z#^WR@#!CZ}M))to#lM zrX2a+HaMDWeTFvr!C&J=prb%XPagpdy{Ro_|J7yflLmE!wD}DeSiYn0t6Aj{`;5in zUj%OnoMw?IkSD~1tZ+;noT~ZJ^|nY|czI){n$<O(u$!OrwVYScJ8x<EBprhjPb!3W zkixy^8!ybXNJ^uUld0JgM0(BK-G_$Yhr4!UEMP}irr_%&>d4l?m2gCm9<S#&PaomD zyh_N=!16AeN^Pt**vNTw{<*mQRIO)GqTDk9UO}1$ip61(Dpr3o66+C!#|fbmWrCTQ zo6pa6q)4NbGUR#VT!OU?<Rw3rgDChJ#8L^-Akc8~!hlf}y|ZQkvg20U?tuIS@}E>w zn%T%MJ*wFK0^Su}@IyYHW{*gNyXylFv>bwO4BKyt0D|oeUR=#f|Ji%$>F@!k4#K`v zn=t|^9nWL;(#9rlzvlb~s`Q7phWqExQndiDY^07L7(NOf7>u26wct%kHk^2k_6}}w zt_`4Tfg~z|n=h{ox-J-6k<}$b{OTPaYvat<pGzfa<Q#fj(40oIu-*m@i}*;yz6=R; zZ4UX<W1No-S3p#gO*eT0g;u}acM%Z?Kz(K^&M~`YdR;DHE+jj6G5Y-HtESpkMW~$4 zD_nsx*Df^9cQ0WQl2J8tMKKY@jJ>*+rYoPQWAkAq(Z+o1U$`00I&5%-9n#6o3fa<I z#{zHv(`R2f9zmGA-dQ?61`>*Wqgu?Ez#u`7eaBqdI3dIlkfXG;v@8<h(p_EbFFe>; z=@k^1-UvhP*I8zRW|pb$nY(q^dVexCsb&^HbGhm6J8c&RE#^A!c8%t$Illl~4OT~Z ztWM4&Y~bx~##=EIDHpDPf!y^ZI5xjCqsA1o^J8O%^=c1Ghl#R}@%3u?1+9hM_mRUQ z<=pjQjd^#DS^p|m(mn{jKGg`!{*y0)@?HL<{#bQdPL)WbJY?>v3Xz5uPew1UD)``t zj@u}j^wAf)7{`5|NI6Gvj?j#Ll(p2{ZhgG@gI6#`g}w4D(b~yP{z*n+@AJ&%*K^aK zI1?=yr0K-zUOu6w2+sfbPLuo-s{S%TRxRJed{;&h=e43kMLs$=clU}&vepCvK3-ne zwTXH@=jFLuz9l-~Zt&Un?nk==(PlqMI-dHGyK#=n!`dJBT)q?Nt0|Cy!%{5>34A=- zO|s^kWi4aKDT0tsB7Bf6-Qf4Wh7N%oCxn%Ki%*jNtJ~Q~-S;K;QI+9GY#t_Ke%0SZ zvIzq{)*H;N6*d{O#3~({6^@VkdSZ~lTJZMpVrRG87!mlR;p4$>`i3vxY7he<uisLb z_9dX0><nAn*Ne)Kd$RMD?tkgHe-E8gt~sE6Fo<{oWTm|r^AE7AppKWmc@8_-a3Gol z4rQXxhNw3Zuq4PL8({vDAanY@#H^21c22QKCI}0fudjrHo3gK{DW%X0-fdCBC)8JM zK0)RJ90DEbPYkCbxNf;EXVDv*#JzS2un}2=BXY__OL=v?o$>g<0>I*aKPHENEDHmK z0FMW_P|_Sk)W~5E<<Y#*0wxfD4*(abVcgsk>g0>bRv}oxcmf~HII|Y|u_y0tLeY3- zn@wSRvct)(nV^7(Psx0WV4(A60?CyM6xwyjV|3OhM{c`@ox>M&;#`v;%8d1k!PeHV z#O<GF5d!8Nb4J;>WQ()@Xm04cX3^wHSwN5I0S`T^+69E}3L9U)Q(GBANNp)LC!FfM z8}RGcZIQD&+mGgLltQ<uIsLkBnm^PjbNYT%C);r5-ll~7=I%!CojG2%n6k2bP0;Ej zW1LHnZJYZ*xgF);o}9@eGuY~7)JJPfsehbjDGr~$Q}#Xf+!|yVT=yP&KzOq-$Ws&T zMDx2|RS~kss?L(StV>xCmtUnFwba>{`1pA?@`vPMW*0BF_EkKBbZ?nf+1j-z7AuFe zNCw}#Iv6Q3w`yk7e?=Lr4BD(cp9LDR=UUc;+3;u2F4_GaH^B!KRx2RG4c&5#2)e&W zSpQkT1+Ko&%E{xGxEmh83>tdAiBEEu%)a?qSNTqIUK)6%%lpfpIBzzQ#CYrjDnEEh zf~K+-ad-K{+?DR?@8JVdg;>RAdTp6EYQ8^SFAIwc{TbK+g8Haz<l}ThpJn~Kj|Q?D z^{ziT$kaAh^yG-;H*yj6asXGgZIaU`CF!e^unEmn@I!8)>%=0{(Zfmiigh}<+s6l6 zvTCP{cG@iYpn9ywb9<AB-I?{oYKziZ=-To#s|7Xw7&=~jJauv;5oXsGFSiTWwOtW} z{-SNxI?H+V;HWA(A_*g+YO;TIklxiH<9;^XQ;u8KWe+Dto;@2C;eZ3Le0&L_4`Jm* zg90Zxc<E{t!H#g|OK0$Y`{aP6KsXR-6!DBMxf1WVg;a?zw@T)zn~TD!P~_)wL1m(Y z^!}=BJcbT?Z*yJW*(3#VzztvB$emM!+)yE6p1Y_Ct`If(M*A;5yRwmGwaVQC{b1P# zTTOb2{svL0A#r!UKz<S;25A!Gf5Q1p6_52d&RtBqCZIzv=4WEtfDUIA*JMpT2*^Tu z`srgt7K9xw&ix)u0WjAKOiep@QQeJgOtR9icj0g>2uKBQQpFD>5i38ifQiV^)cyKU z;rPlRtD$o%_Yw3VntRV_pZblm?@K|l;)N1^4lcEvlVJ0t&hdKStHU)<pp@q`xVLMv zkt4ecMOCCCX1Q-{(r9no%bv?O+!j#smL`yy|5!vFsXJgt&pdrm6`XFbMXuF9Zj><f zd%z8Vgso`M#Bl6fF;^ch`u3z`r5LfiIkh6}$;xzUvSxOY5W^EQ-nY=V7no?i9FSuP zH`JaSzO262Dwy{#c60%D3>dTy&tqzwzK3}Iuq{>rSGbE3LAm`w(pNP}I*f2g!FKSd z8O*QlWuD3`ojUd(25?YtT`Z*oc^T3m6(rj(AyV`L91gxk2I$1Sl-E7a%*6TH+=8J_ z47-akCILG&40R0StxgHCw?wBSHh@GHQ?UATAfVmN?xEBU2Ri1ql!;W%=4xh25YQ6T zU&3i19aSb5TQb-_R$C8ZM1<1SR@<D$Uj3_pLM&C<f>g=4-WWGI>Ut9RgRUj4y({js zD^6{+xhX)++^)9x!rG_Kh_A=V@+n*$Gje5aC72quX8KyKacVBRsMUWe1VV#+mV+xi zY0bIGP+J!Uf>AiEzP5c*28P_1@=o)kIz5sXOy|p*g26e<{_q*oJB4CfmhnmsWsXsp zWC{wBJQdT1bc#r(zc%5UCkiyE_qH5|6KIi$T)$+x;O&|<MrPy6y|our_WE&}VGXJ5 z+(V*l1YKA@C;f}KRof`J=bR1>=kteLoJ#vQ$(=+C49$lvOE4lkZCAfWjys?Gr~i~d zGWjIKLYSgG2eS%mktnp<uL$cVA$JGsb!W=AF@l=2Onvl61&ilhEmt<Tw$wR?!-%h{ z#q+yDIcvLbVnux=SXnEc;MTF<r>Cd~70)^8fH^`uZd3dfh%hYprA-~1GSQ>f4}0io zT1TpaY2nPRYZS6h)kdqYJ1WMZ)91QwT%AeDYw7A;{LsL%SOqcT{P|4m3~$T`>-ZVr z+oxR}7|iASLZRWw!+y7znGiu%x746JohH4JNIAd@3E?I>|D33H{nB$H<a$a!V3TE@ z{i3qh^jW){jWqBE_6Y31^Y5bOu1<SB_!X3w_QMxWPI|FVo~M(KKcOtkBS01@v~-Pc zd*<87c(vdYqVr<%t26R@YSt8tI&7V~(s&>1#&O&-uXnH$R90_^0!=WRPUaa4TAe)| z(gc__D+he@=^zR44e)7-CocB%8sL0S4*c)`?Hu1Ur{iXS(n3dVBVaFayIdS4CBX%+ z^FYp6!|Ob$v=_lSYQ?ij+6>o9sdk|4S6*Ma=5j~hH?;;qXfcQ&XL}7z8ziZhlpBny z81O=!>3bN#X!$F9t0&xs_L;xy1M#vNx}U1zu#qsU%~Cj@plpfh_nCd%^>>cWrfqQo z<=-}9H?E$tDhZ^6xq=~e*zsClA>3xy9X)q84i3lN)p6$$*V*=DF-nik4gj82A0HhM z5mTJ&8!*|(l~=L!<RW;S`B?Y<Ncn?!$9PVgr?{Qts+$#k_)@*PfdnG<)$x(XO|Hek zk~VnN$jC^W(6PI#EAJCwEWz%EAv!}x;^%-Se36os_CEbur_hfX9KnqUR^qA{M=<vu zc5K@IpOW%#%gM=A?#;xGlqm@AP5t;l9w9y5ks=X9DZ~Y2BdcHwJ<;r@3C6^;t?}%{ z=ZkL@1WIn}t|Iqy;+7mOFDKg3zzCYWt(sgJKQk*8S)0PF<z}@_k+ICXXJ|@!yMMId z(HOuN0TryTjFgmAJ{~gdnlPWi0YuU}icf=LW<Q$7%*Luk_YTN_-wwJu(PlO@>xVsH z=&g@~5UfYYzye!U-rNg?bmMaAU}pE?P6E(iKv5*Y#RO6}1b4>>+ctnqo*qj1jhXu> z<=wka&`(R;gQW^1A$Jk?@*cFVvToAF%gKNx!Co)*ppCb_Lmt=YRqFEd=Fd*6`I^k< zp95GN6JiAvC>Wyb%=__T&6gLKJ%i{K67KUkHCJo{ky<(?w5YoVHtbgZnECyea{G(# zu(44PFU$2oiRE*C+gdv>J#cuT;u+KZ0_Sx}*ja0!JgA~P^rXwYOF_XU@nk2dSk>Rs z+#Hon8Sur;PD@LRt0+qXOV9%?zK(BI;6M=)RJ2Qimq)AhDm}i8s7vjvjsvm$^73-I z^NMCx-PTr-OjH`AjHxspiOW^qk^~E5@v{A+7Ww|o7tXhBRN=M<$AZ|nqqrJ)?Izyl zN)KTQ<MRqxFlw7fGg6=9sT>)TE8bNPRRo|!!4N#l_~yYgUnjrKfY+)G{*9m{d3&TU zHo+ghv)qrWYm`e)`vt9AmX_}tyZWCGTBXZGvA8BUA06&}yWnu&fx|(TFM{XN4H_p6 zP2R!zrmhr~twYR0eHft*m^s?|lBw8BEt7_X*Bwj&5u-2i(SWuu&zrfr-QtesYPg%2 z-L04L;i#f%B7${;XnXNzYFOUJB2Ek9wjS22hEs<UMeC47RXbWc>bC`Asf;Ml%zGl6 zY|1k~h@Cj-hp}fs?zoDZ6u2edVyEwVf-6c)K}&fcnNdD=zV70+FGju3G~S@M?lVn@ z$6oxUf_n(hqNhttt-7Dm>^trK*ix9<@_|w1T*k}Df{JR5pG4UKlFXQep!v3Jgoya@ znUKi^Bjxc)^Y@(pNIt1VtqiuHs*fy1A$bSZCL5MgL7@+xvFtbX_+5PdbA5Wea`0v# zO_62llmtU}1naDGTAZSPJTmInS{mr+u&zd}GtVAm<1p%Ne~1#B_8sp{;0AHy23Cn9 zsG6RU7NGL8idLhl8hxumB&}AWKkkV2G)NwF^>S|MZ55e)is1zoEC@KYvlm>Hg_TR_ z1g<~Qh$g;rrC$|G6|lF*K9;UW8N0*H3v0h)v`KkA79~cQbE0vnfHj2@)dL+~pzUC* zSC5dq*{->xnQaLM_8&2BtR7$;j_`DNJY6~U&fej*eTmiGOljjQ#+8a{jMIbK5_!^5 z53F7dN|3&k0#CgtE$-JI8lt_!uU2Zk7fNZ09Yf2#zABQ=wtv@%CZfBB_1co`TZEbY zcXC_jDPL)`<s^4HCT}a~Q{PdeOVLN!A)-VYsF1x4!}v!T+s#~pQoQVY;W^E|-rk2> zuVpd&H;vEu5$Z|EfsL+Vn!Vzrw|?=INuiKcR13#vN?oz&XqdewChA>vLK(_Kid_FB zYjmpD3?uLrfwm0_0k>Oy`hkXlCV}S6FvUEo-g2hr@?es|of&$BcHW^@VW_BHVYc=p zuoryf_ICF^=5Wt8^058E-NunCp6^k}SkLLPxd^RnPwUwz1ZYK?7kV*>8P*s7E3Jq1 zt*51Z-Y0D&^M?<j4edgG^LcvV0=hV!LyXoPA_aHmHs-`7SswePVn>_Hsr9n*bi=~} zsy+7@jIR_aP24$vhVs7Ml9S%PjhrnTNOV2&%?-PP?N#eclAZKvS`P|CA`S*G?S((a ziz5dOt$Yym^n6RHo%z+`j(W2SH@duqABm8;E1gZmeu7uGWCr{!@!E+uDPG+o6<a-8 z39|y8hdlXpTBfWp#j?k!;fPPlTj`@79?I1#qAs5`D3o`^&Q1I0r9Mb`M-SuaU}w1f zy**$jdq85jE(G%Pmh9s_Hz}R7$*UUjbe3Gt7;qubc*Er3ms6pxmq^1KEC(L%r9H?k zis+yFj9hH&aDFyNpRWDE1|j&E#pntOc}}p2B$(Zw9#FwlZ_4XeP-0@}KPu?O916+r z6=5uEGA@P|h3nI3swmi*rVgVl$jeZ-uu~+SX<gN~D45ehH*OtprMI@oHAF%rak{9V zzSSY`MPf?K67!Et>>YeoKZ>oNcNIg8`WS&i;g7B;%D<5NvDw&hClt4r|2ddB74)?F z>A`+<T_j#q---RayOWc9P6P!dBJg^10O5C8O?t7iKm}ua6g@v2(QT-4H{hxyMR&ka zK`+%&w+I|&g{oct93jjw>}zySl&-Ud)ZLmU;z};C@yO8GXKs(A<hW9?xwE?aXS*Aj zrfD4GxAyY$@sy$Qy${Ius1`FoO>e$z8kz{f%#t{%@U&088SwtvCD)OOiI@7dfIqhi z1lB$o6)I*pYJ_G*E02a7njd1yOKgwT`JI=igq=%<YSm=GpE$Y!Crj7hCjiTQJX+;3 z+0<RyaroNCfm@@r!B!R}ws~*Lu{DDEPO@QpVL)dH>6XSmDKWFN<ksz9U8Uhhp#3vq z(j5hmh;{T+HqE#j4esjdKZ^nLN=Wv`#@NdF5QThNMCvJQl?M9o<pSPM0@eahs#+kA z#oxw<IC9rV@&@w8@TSLii&PJ2o7>#1%$jA@As6WDh;sycheDn)yaM!6d4_HS?);G^ zgQm4xgtFR`WL@}INa(f+wlMrG%G@TUgu%YcT)-jt=qU-`TfJ;FJ<)!}T!dlvhJgX~ zpe%SQP3NX(ID3!~%uldrpV$xAoh;Jph3DoJSv;wXaD&5hhZOf4!{~u5AGhyQK8mv{ zIN(+0Af^`UO+)`C;@Wbk{6+5QRwJjy`6CCV+6>T9r<zAg-c6d%%wa$_b|0=)(4pjO zmZm1~%ujIT<@7u$5wk=4iW&>?T(a0O{OQZ+AaN<M5oqf51!?dm^4am3&xsI@seAvh zaXry<A2sVb>anA<+7K>H>kvmQbl7gs<e2s=RQnA}kv>lSrBh~01mpNG_yzd{rX!bw zZTsi09>_FM5p1JQ1}w1Gfnwse8P(a^QnMZJ7MY((Z7%op9lls%AIW^Jp!=a?u!_dc zLu{q>=3ZY63hCM6Ihg_KKnMd$_2KKk+h={fpnrMw2e~c3`|gv>sD8$^?Lk|30=JNm zEib<JKN^mpp}%XRb<8c}NmVS1rScC5!`_e2KF4{F3Dyp8S}<%c-&?r!8XBr|*W4ML zJPRr?O9h9zUxW=yK=xrr#j`0jP~Z7Dau3j<f1bD`c#|@CSIPH+`Uy(M1K(6o7O=^& zTY~dMoj)+9in+t<zTIy+b1_3c{_@)hpl<dlj%v^#+S`0mOyOru0Zkj}Jhnj4RWMjm z1UI(Z@>T4ikexRq$&t`_HMe7?HihlmTTB?G(n7<2qwpaSQI@@*4;|Zuo>lf%c_vqH z?V06ti)h@(x<%T}@kx9#<-)#I-#zm=2Ey^}Urp3*NZ3WzxKUx)5Ewnkey+L;0JqJS z#9)ZgGRX~FtYR#Cx6$>U9WqIkQBN#Y6a^C}^pd7gPE&FO)~p$Ye6J@&<Z3Y-6}fOj zrd#+2E8qi5W06+y;2{y-d~Ft%2yGAL{WDwZMYuh)FWn+sd~+Qia#C0Aer8Y;brz=V zEBVd|QEe;v`e^)1PGx|`Rv#>vC(Kp?fk43|wWzj%ljKJ=FwZMt8yagin4+{#Ze?Ys z;;5%{%K9_4PJeb-@I4gt)i!z?aOoK!&w0u0n+WXK!@~1v*m=N}*nir;yZIEZqI9ex zbbWlsGFV<)bEaLefJ%#Ub4cVKqtv3J&ii#i2+nICmt);3QJV$|X){g>mV-!RsYDW> zzES;t+^}|p@FuzD+@yKZzk!aHy8095P@wa>@2)mCzpt{Z;kQUIOwh2-G14W!2nUq1 zw9rxQo#$h7tCa2lT$;aClih?I_)xUR1M)7<KmU!xwC@AV%dZ2(dM3h%B3!pfDx_fs zM<rVtEceKGYtAs(lyQYF`ptOpwH8LH_x##7SLRBQkA=e2KN2f`56=u|{5sf!D828e zK9jNrC6cmzuUvdx@chxCx+#pdktdwjTmYIi8IUXMH%ximBgj`U!AI*~!rmY8?#fVb zc6Np*lpv0eP$-mrsnyYJwcvP^p64UdfSDI<>OuD(Ci)4%f@Rz>*)dy&jkjmSE!3)J zZ1N-O1CV?-XI`hL)BQprp;oY1he?MBVE}hJwB)%ap&o5kfu0gmqqo)2K~)KnY7McF zuge2GB!loDX!O2Fi|mYZ+I@*ef^as5qAqOt2VISvgo29Ehz{+-@YM}ky?#C#WApyd z8`RFh=_=)g{i*LO1WB5I+TV{0H@`a7460gR{^Gr7=GQGU>;*u&UwYw6D3;l^geCti zS(<~Wi`<@<a4!#JMn6txdVY?$^!b30MvFZwW?Sd6gaY{9tA7Eax#f{c{K%Gq@kcF@ z=C(GXdj}|Fw{Jub&Hm@qP9~DUrz(Ra(8SoEKR!Yv?~q#GMOls8n+d2%2ey4}bTrX{ z%v+#~5!~}H*rV+)*kArGH#<eLz2Bf%)!w`4Bmc1?aq(U|seE5q$OXYrzByD>RWBW+ zn&XR-4{KtYd))dZ&5uFi(%`8p(K6)*>{PQWTst}pOq0R6kDH=IaW9!}zMLg`rXlsT z6Nt~Y);K2q)r0-U0M6@QcGMBiaCIDPFKzInOG<i&4h+o9=CaXMq2)Yv2@o@Do9=gL z&&SmqG<PO?r5Ep4Xh-$}m|-sERTny_<v<!=6KwXR0{F7!l5Nk9YImq*Z`#nFM1x|q zR`sHe0n1*(MN6*2r}6OOXlm}tPmX+02crHI8o2di0ER<$?K@Rkf3?VIeGKxE0YBTb zhXn~|cIRPfIvbJ^^qZ{3g4A3H;krcxhC(zUHz>oPM|cvigr|m)!RW!LwmM@Kj57Nv zck~Jn_c(djKdm&h^(+|3W=QB3A*(O6EW0_V2>}J_YOO!OIN;JOQwZTsbLc=mm<uEr z$r;w)*%21yB*FzHnkV0w9tdx&ADS6{%C~(#xI`&W?s!Ruqwc$8c><p#0&Kou`@x)+ z<I(KaX46)Y`5{zuwh!=SGT<rM9#w}Kz3Nc-g;YDmqUs2U?w-66jr->mc|Q#0b?VW3 zd)r6HD87A{dv<?y=h<}vzXV8yq*0+*0s5{LO?coJtB%u|H9#=o1%LzOKw!1`E4sdC z!MPx23F#A%hle=D;rJhWg2gMd{X7_gj_M7<PJ;OpL_sKwU8U^Pk;4DB8sPD0+Uakb z_h|wk7D`m@n2JGJV5_l2PWsz*BMEDz@3=Pbv4U?o8D6${q;F+#2Doz^edOSx)`XIt zPFFkIx1<^2f|>+idwo+i5aTq~^mgVI)>!|FI>dW!0^Q*5@v!5)(cGg3O2i=$w4(r4 zs7yBaN{oA~WOx)x=P3@N2~kMN9EDQZ@>gA@qP+OWyqMp0zZN>$oeTm(ca&JRQmyrJ zxgsd%dpzp6WVr51S)J4T_Y=URbsa_cyI=ySZ*0a<oFg~OH(R!AUU|%WuT_HOrGH1o zj?jTev|Z7WfqAdP>KC$Q505`P6XmJI6Hzu$QW3qO4wjUALL#M@wWUI0Meg3=75lQ6 zmrXcHJ|3kWap{5*8_Jp~fFtJ14-4x$ad`Qc!U)pAFYm6&NJw|3i<!R$-MW4;A7S(r zo+sySk5+4js0vb65!Auk1n3A}A>#0ZPua+ajVIXzf*oU6@WYd}Km_XGhf=C1gAqBP z(BIcoiKIeL=ZOK=i~za+`(a=j&+lvBuvAh7K*Iyl`Y+e?0TLPjPyl950{5Mg$cIRV z<^UlnFvk;5*7sy6@Bb6E(^CGS@jpsFsnCDB_D>}N4uDzwC$8hKVE$V@@Ynv|Qu`~k z{}AL~5(NKL_wTiT$l}}RAEBKJ_n%5KG-Hz*kE(>an=cu(PU!7;L`CB!WqvnRc5QTV zuo_fXNw2qJE84JE{=+dE(c)|_Mgo-@O!iNl6{9_EeJ>1k<YOyr1!VP#23V8$J<eHP z>~E_;Bglyk=!XoXfGghkuB{JKAK4fXIOaGC>WUHs_U39_e>ha6KkA2G1j<vqk8jKz z(2MA{3u<cKaWk`dw_IQS(VlEE<(cnCO~Dp(M^$}DnZHCn{U~O=hUy7;PO0}-m9E1w zIiI29D*vdcs&6kuZ3LJdlUOm>d8ock)}0n~-^K0+Vc_VT;CAQ0%xz3ixVN&#^QCt` ztOdX;!#qNhTH-`%wA9)5v#&;cHT9NtLaVHn2b6?<%pwvkIq7V+sxTXl8}D3i&%cmn zB<<l`>0j&Np4XUO+D7fP3U(D#<(b$>{giI9#6}6g^cxykiR@X!{<NfT>=L<XmN7#Z z0(O_DOO-6$g3ocKcVFoK{NZrL!&{1FR&5)Jaz8TG#COU<gSX5U4(6|<?-(BVY_?A` zi_JUZo})p8h-LFEsr5vahAR)kTq(W^Y;G15T=)09^j8W`?Cf+%3P@p|0^z1Go}(9S zp{ZkcmTwxi32Kl+=P?8rg)fIQC=8|ulV<QP)%?J>B!#`S%2{ri<Sl2$s9)>GP;~M7 zs_kv9L`pe?`VjVs2dfmTQXlSEp*!P_fRRcO_}&L}9?u%WA-(c*p6f#VFCGhrl_H2_ z0b~l_lKQZZ{GP9jB?Zc+k%$=$a9OdHtSCeF==Snw)|IOlqR~f3&;$QF8QOlY^bIwB zmTeRiq61~cOLPWQV&5tklzMz=zZTvTU&`xok8DKw_OKS}D~5W*v-eGKM6=eYgVBJ$ zTvhbEYX##oO9_s*k4G?Tjg>Nud#uOX>mdQ?{dAST%G|y+h^Dm6y^31z37E~B)c`Zj zMEV*@&8lzKdG8)cZm0p;zhWG{`Nn^D(*CBTsghgVeqPE=cG(BC<QIrKDM@v~6Qwj7 z1uNKZ9<3J3wnQ0LBzkc+7d2YibfU*U{FV5tgT*4-a)s?f3k?l-M6wIa4^8;<xW!XF z-}a%>YR-jyuBcnPjEI+32kVXx&E~2Sj#iuIeI8bcej3AGZ=?QI9;7fOke#qC(Zy^u zyBcoE>PG77g8Z#DkFv$=q%Ay069mV3N3p><d^fA9dcASe^VvYZ8{VlC*R&K<72Da_ zv-JxXtTt#8OAS-;n6Hd@rwgtcEvFMaesk=dHr%js^y;g#lpp%_AET}68*N01S>1Qp zk37t-o!LHg_`Zf@67BJ+ad;lr$HX_AZrKni!(OSsK3BEbglvkhB{X$b5#Lc|bb{R_ z*H)?9o2||nUjY9SvuKTBp0$ljJYxB6%JpFk*_pX$%aQ%&5CwR3jI3UqEg%zupT}v4 z;hN7c<rnM5(}OX6@K3AEv7z1@S)brcw?9LkX^F1IB!B}c_ktO7wMOk12O8(1=zg1h zemMw>E_j`Sx{6A_aopB)p{{kB#m;XfR~Znu(A=5aAv@QBnl?n=sB+j_^CpWJK8Rpd zL^Q5C=C>Tx!4tC_{8RoPKzY)lt%q`V=qO*pBw1H7S+YLBeI_kgZML?ZIeH?z%|l%m z4&XmbmsWloI|9{{j@$F86&=947(2Wm+7r`d+j<zY0PlThkd=i)%kuAHS6?{mY<}_a zHCtb5LoW?hR+-3u%{E$-k(j(0cIyAUh+e|{5<y^1pQps@9P{h(wd{!H@$}GF64Q~+ z16s2q9tDmwB5J;@^4xE8VDRdXm3oW2A6nysBHnht+3x7)&G}oE)_60y>Ng4}8jufU z)aJ9*62FpFQ|%DU4&6*e$Jt0u96Y`asBhcl?ETKRm^3=Qe%@nhMCD&M<aZBl3Ioi< zBKaft(purs8OKkVyORMoJFd|EaN<ah6%*UpnvW8!+tFyMhSc>MbUTCNciRr#!hl!6 z*bD#l#i?l77QNve9S;6yy=-rd8pn63uZJ}dr#Cz@U&PJdq!-s*5OYsV`<^W}FrDz6 zTBYC3j_Mdez0u$9Ll~8gTSW$d6Ng&i-V&oTc!hXbd}Q>OMM?Av$q0-s-=N3Vwm_Tc zoM3S_*QL@I$+Iqw(;_ptyz|tS)7wFG8MrQQTm<!sN8|*Cy6iSI%dtNpFv!+;!t|Lf zynx?-#50{4SM5$wIn9a-QoHTqQ~WSnYz=RzzG1I(ySa8vJd}O0FX;iZF2;7QhK2sf z6Z-I@ynZ!3>uia6nJa@wj-z8@8Zg3sC#2GH*7p%$_h;mDJawOw*aHNQwLa|`ss1(v z1VA-+xxs_?q{S%ajjxO0Zmz*?ova(L5vr7z{V>tyyr4$g;Sp(~4W6L$bTM##eN%=N z`E|!r+IHp9Zlux3{!zkO|8ebKL`1!Gh_M96!|z4)s5M91Cx5%i9Lp!Ph_kStk&sO^ z&%UbR(3`N&HX1TIr>jOXZ2Ac3ArWMI3spER@+g+a3ZfSBu&vH5%bi4b-pVCt^6{_D zlGKvm&`p`2r$a)2G1vbdH2i~t@Ic}(=$oHyImLp1@W`0nVt>FTFX5}tYThkP43z5L znu>i%qfbl|OQuWw`tg6mE%<ByzX0I>z@7icu;~8|ug(0yyT1kVN_R&g^kJjU1^jma zz~K=h0Kt9(#osLbhH9s>`i*<>s11<kZ+sa1vz&;)^x~i2oQVlqum8byD-;B;eDEdW zZ3*y2l1J>1I4j`4f5Nwn%MO7T`?=rE^v@T7n{WTEaB2|2HG&ZVg0ZV-)PZ$S5CX5? zRL>Bc7IyN(55j!NDr#WCC0FO#zi$8#IlxN62`d0^#Bk@afoH|_c89DK7cThtJR!Yw zkMTkX1DZ8h(wutA`qKG>%c5-IUq!CTnA@q*kj|6pFd8MFJ$Kj3wQoRg;VCbBYwR}k z(33zvY(AbZOtNny7H-3DwKo!-S)Mrcs$h7t%G@S#O5u{@;Wb&X3FXcO9A*Z3i}~CL zuTYM7k$8qs-vN(|VnRx;55f((fRl>*nIC~GB_ECKd9pQq=xE=P{_*hUCDKo3sL}z% z+H$}$Qr0(Dx=H6O!wvz#F4<WiFvQ27T9<DqE4F}@Ts$rB(vuwxSh$RG6d#q@S%N2O z<BJYdMhnl!M_rP>p|HQzHK=2LEyMrt779t733CEXB1W>d_!4Yx3zrfRd~3V@J8?h6 zbp6VEHBp7{5q5dOqFV#85fEA5rL4q~Q0=pI2gCI%SLRbe6TRi-U7JJH+9Mr&1k)4* z1VUoJlh>~n=H@F8nS-~>L+G(h;Wwaj?c`yQxnwv@scf+Sel>1$N7fdxcWAKE+fwu+ zHz~FI4CAMRmL+o<<1|nj1xvlDd7R>CzQ{^P?l-;+@(1tCzxS*@JoEpowPlujmN7I> z%wtr|nv*ZJz2IULN^I?M`nvuvY@86^-7g3-+BAJ3B9D9_4=h#J@bdGc+k&pQ>7(MW zYMIuIymS_lCukBNAn^40Jp*A(c-%^uv(u!|+|igZ)by(?crjYY(=&9eseUp-T3QDf z4|v^Nf%x?9EV-71|AV9<Advc7WrlVlDJ|h=!!0)9!x2(^DhruFjjw9`X#V9JHXG!z zl3ky0lo8e~G7)dgYOFswawZ&3KyY{!2(<B|Sv4Mu`gde*)9mJsTlK9Ms<PEVe(2s1 z!4hzODcjj(poTpG$?`q*+<I7{PCr44m%~48RX}(aoRT2+j_Q4$?7OG$*{Unx9V;9b zm{tDTi`jsZ9Z%?QKS0$kjyZ;VQ+WiR6<;d6bbB<tWHCDqe6{CZNt^gZQdPYp#ht8C zctAqdelKS&O)~O^LI~upM4;MC18B`?!BGY~*7Lwx5lW-De1^a)k^1-G`Ykh`)bHsa z#d2D7vEXOt07=$w^3Dgu*;U*Uidy90hJMWQuFDtID~lqRxes}j0M(OvF|9rA*q7xJ zRpgV^J*cHHm(mr|%UwIPsRNx8#!~I~8UaHYi}_FGOG}}nyTJr_IdRXL&Iuj+p8K6_ zvO#g7Bxau*%c=ONJmIvcr{uzJ?7UM9(NyS>kZF;3c+^?D&A1bbvAN~|d6xURVkq<Z zmDlw3?8qH**zwC?BHZxVlyHZLFeyEy(#(0LM+JsNTcaIzy*#y617E&1p(VlZJ^FLu znFJrY&zz1X|E}&=KX6W@lv|G`Mp;F)D^lVk_~Qg_`IGYxwBX{g(|tY9jop$XWYgZ@ zhuoAs%(80vG6FoI7i-H==Za1YBo#Ib9_s!mzQL1-T?i_yQ$12~g6n1f5XohCIoMhJ zLf)B(hAZf0CFJnbTn2Z0&O%H-hE-{K!oyRkU>}zs`-*={4QIts8oGZS{!~kXPrM0r zwFMsl*_zWN9HW<o-S-Oat%R)l`8K_V4d>Xv2Bz7Co7mya+vh$f#H*$88^-|4X^+`t za@aT|&#bMPO&71|@GuW=FJ5~fUDfpDszCKfVx4$Wl4fB)lf~zqgQB+fbgw4Q>v~&< zqBd68q|J<M)&lXCxzFc<Azv??h~?A<Ro+07ie{#wL^E_rE5kHFLIW1Nqpbyk{<*jy z&ds6j8e1EMu+qhN;sO*l+k=?Jlvwi~m9bu0rK;FxWXFtjGIBels)}reTLX<+mB%LG zDuobkd?VWBi23Xcvjz$aS9<w60esF4KR$*}%f0Ozx4)#NkYYLh#_TyVQn>HIqw03W zZO~5(<wV^Kj1+Boi_-YqcuQgH@M>azZDqnIqDMGJ&bRTG=i~#Hy*erHus3sA&7Tu8 z$Le=QSv$wTEaJ(iV6QIyp#WG{xc8fcsNP?nJ{3#HGny|Lr(D)eBFO1=puJ?_gkBaf zHYLW&J3d!KQ7`t11du(Wd`k-F`IvkwGxAvW0Mf_8H4J3%P_-XUGkL!SMUK?POm3R* zy%|xG(#pQ^G&_gu{DpfW7>xb9Z|4hqHOKt*tcf$!oFX*O=<kF;7pdH2%AfMYB!B3p zj-XUc!TSQrMUS{?!J?UE3Vg%kvxKK*t8$uAzg88_47LcD+o~&vUcLtXA{QvXKm*H{ z1G*(+%*!+Zh@E|ewC628zY86LogfoQtm2PLQoy8}S6wH$+|$We`j3^`DXzIa-z<)l zU`T6c+5q0tEE?Wbdt9cupdUbwD_haIbr`RcRzL&J8Ig&JMYh$50MmAois%7%BzD5i z=`4l2T2C`sVyZs85xoF@qJd8H1-TUpM-=H7X{n`b3r}|#bsIEws93=KRXG_P+nevZ zgXEz^P@?$$e>XKyJB)}*uIjLEvY1<=Rsi)TkwvM|3gHXYqQQiiQ3{>4qrsRKPTjOR zbi&(rV2;9WkJRC2#T?AjTxygU^#HF<B7-n??DC17KkX{p^4GHDEyqRO)aX<+w<sAs z-$^&$tK8k>5OreK_0`qGDh{YvXvel@_K8I0d8F23t}dN_wErU*a_g9pQJ)ZBNFH7p zPp$V5Dp_DiqxD5>RYk?P>!2EjGey3-Z#XDGwfuv_&kohvo%gdinIsl*X=CYXX&u9D z<u4P@l97>uezjx+TlUNu)G&sG;l9ec({?2M<AoJP_T>x7rd_Y<6m@0xSELL$J6S0L zMzm3TZCw5!>cv1}fZoco{D<6xfJn@!5YBnFf22X<Wi;+{o)SYZ!#LxWp3R_yk*-{! zgL6eeU%tjCS9+HUkf6kz*x8<Q<C*_<8_=B7rs|9LcOO;%N~K9b?X<*BfmU|ZS6sL{ z;^AK{H1;bI-Ue|N(<@Sc5wBXfkxhJnjv$W1?Ujoh6r)4k;EvE$5l^9tLG2|Wa=^Rq zE!^Tfnk|`Z0l-K6ceHH<>jGmy@8)g3?!hHKr@1jRpY5fdclV&a6Ia5akmP#b!CbA^ zv*$}FtmP)oopN&`+Oaa)uYKMc3T?AG6b4IYsR2(UGF?7dYvGu8Z$IH9W_b&oYuZj= zieRa!{2*1cE#kUYqNXb+1I)7G#Npj;J)0(iy4BRI#230Kj8)`!Y&T`uS8eya^e?mi zHB?x@_RA}3guKC>AX-6+T+CTpkbo!RNn!SImzsIX+=?@3GS!cm9L7o{RFSQuJ*{$N zwy3}SV9C)(d@(7D7bO;*jO20$_&(8wQ)`^}P!ZLs`Bi`F*1&n1!YSO0hHdGK@=bM* z{Og!|zback58#Yc%T0-px(=v&`}Yh`{e{lPPf+FU=-A3u`xMgW9ip#XdB63N<!uu| zYE|@%UyrB{NDSbvZj|^Il!=Bw`Vz}-aC8`4!Y@kV8T6av0aZ^p(B}jYWSR{^1?mG| zdWnFwG_!MlzPMXVP|Eu*(2I)j;$hThj$EkP(D*uk73-LC%}SUIFe_i#R|mh5M<(do zB>WyOXjCm(kRnfhg4>r4n0*R-@V5}neQB9JnheYK6_yLCzI4RG6bY=(Pz4sD;HS4{ zg2ud9FkbkLoZ3B3{t-NWm$PCSiOpU&xSv~JTX7k<arOPlmQTRhukwK7VQMDQ*J?RU zzYMe|1@Jp4{Gs$pwii4_rtHfFOe}Y|d`@5nJOF%vVu4w*z+e2i12KVP38a}k1%jWz zOhq6p1~7SA01(f_!GYx{F7;bmu!PxoH0ZIX`_Ze_synzYK8j)ANR_CAj)5cN+cBNr z9DuT}6MO@(ud?reNn!uUh;HaZ^B7eX3<mq{)6e~mAHQPDv8NUCa!@#6XJ=nfhcWzm zD%WK+xw`s_pQ1VwbZy8XAP4h{``6$GkLE%m0=H#)8><8cxVZ@M`Y}2h1=@Nqo-$S1 z)un_<hR>+ccWAnMmS43^ft-*RhCN|tR{~pnl%+$~P`OUb&6z>svp~ZR&Nn11YY#ou z@^IA%&%JPptAQKR`0b~F53nzmyNO9UB;455$tjY*V`0n2#%4wfi~?C5k7#^mU%6{_ zTzd}z0;B@SLzxI*95c=ecRt&xy1jBnyEwm*@fTGr)z$9==&M%`A1Rvjy(7MSRrx5~ zy2<Nt+PHK&imWlyj1eLi*8^dp-A)VhPeq$-*0apN9gyt~3@esj47G@*|IF&6YA<sB ztafC@eTS{yO&7PDGn!GJLfVl7@E&-7EB9=Iw%9fAJYWMY8cFc>y;P7SI2iIC6IJP( z{3)w!Uva5XyaA(cWNr-DQ@lCFAB#c<957&g{$WYP%*;$MgbF5%%~zm?jfEpLElan} zG<1QW2j743$1wra*XU_<XD6_HRgu9t$MM~w2{zbYVc%!b`UBnMg~p+76KA43yJEo+ zMc$XTr#%aejATEQ9-LLsW$GtkKqsEd1gZKLIeg>ZKpa}%%u&L6<S4}pjQG3ERAwJU z@4n>|x~^(B>vc@M5T`jVcKpqxFtil2oZhra#<1lpq4O}>h+|AuLQ*W%<e5VB2m4GV z@Kk$ZeHEC4h=VcaT+L(I{R@!Xz4UGpu_`G>QR~%AjXcWDk6&%R9m#?HlCk8yLroB1 z%;8Uc>cz0v{hzhQ^W6!khrTTJN=|N95W<Dilz)UUY^3PWJqSXx3QXDzZp)(#UAW?z zr6G$}p<nJyDLJz!%A8N7Gv#3hCK2Zjb$T4olBb~!W1X0h${L>uG4wFWHaGKuQnu~$ zH{Z=YYU@(WY<)QrxcNRi;xdWMPK&GHtRhK`AdJg3orP8InLn!baN+v#$GMvCBXZ!X zSBI6Y8X9hEG$a++Cq15;x*z%7o#=w`TY>!HJWT{Yg&ViMy{-MOy}#deWkjH(B%%tK z{^3)CU$+QMAca%I6lquj*d#1q@^w?PM?}lEq$xK?WTFloDa$*CA5QmXR)#IgJ5544 z#+q4;Vh_aTbJEqgmn^_l)sa2nR`TMyfzN;Vww9)sQb!M5a1Z;;y(rkzqgRW4Szdqp zMKPIL)G$kQ*-+S(9D?%EUTe0e&=r?g?V+}u(fwxZT&@w>vL&xA5C-P30hCkj{2Oke zXGK~gS90u{#C9|IdCXEm%u?)Ihy3KM#ctZRWZGtP&Td*5pgIl@^GROM(ZpVWQTPnV zTAZDXRg*sc4%I?bf2e1i?4aG^eck|P7I!1f*MkxzR2<I5tZkGO5Y-wq5V}^XpUz}H z(N>h$W72ZRd1!5V53p57iA~yN0mRWEuq(qg+r8!T70+Yb&aM8IZi9hGWDaGA=mODO z^6i>Djm_HqyJ(Y@t{k8G4v<sEUeo(eoT-B&1jmi>j`{S}>nrbGO}>oroxRMcI^z@j zfl>3}EK`?j(mfO*tpK<;(atbchs^3)0-`DOVSiqiB!^<@8@3Qfm-g?Kx5Gi#e7>Ru zUXV3<Zm6J8gofqfwduzxre_Y=U{wB!zYN6s)0@~urhx8-$2|J*>+$e12^Q_Iug1T7 zTdt&nY)Z<L6%7q1ZL4v`6%}y<Q(JE2m#3xEe%hpiHn|U4l(z*`SGJ|CUbsA|V6+*9 z@MjEnAc~7C?k%!C1*ZfYeoY-I&wfMti1E5|`iAgx6k!pyr|zvtNnoXhr8ZyTIA4og zkhpV#TkMAkjifrCCNm)KaMV?p6nbzAN)&oG8*Ox6nh97_f#(kJzrQ)_HgI$d_kj3M zuDMLCef?1qu`P~WZ5mDU92`A%k-KqASrqr>GE3f9q14a!^P08UW`$;_V!DrngSW4L zoqDDyeEnAQH7(Rr9U?|qaOSnDa`!fdgyf8zVV-1r4myKyvD<BWwkbW{#%9-P(?FpP zkY9$@%g5bkP=p~!(_(wyckDF)CKtvh8<Qd+W8Z;A>MYulU}gN6d4HiPIZtI}rT?=} z<>lqc?eTohP@`TY-#3Plv>T;oMxSv+-{44ko=v!ENAY75IV?b7;QQpF@l^d>ccs@# zRC2N>JQg!x_9^mh_Q8PR%&gq;>vspw$?2pSq^Ae++Dy0Le7n4#5Ig780#HSp{XLns zLSk59VCxv#_u#qve)@=m#sM)*Vt5p)NeCqf?OndyhR(TTU@W+3f#wsP#!T!?u9tlq z4P+f53%p;wQqWD2mGvZ3<^EpJcw)+SNqM8<3tBUYCyLc6Y`tync134<x{k(Dj5QpV zqxab${13Q|RKo^_#fpAZm3N1DTsbxCP@+?fxq>2$j*l<W%)NGhIq2~_$s3hQL^bH2 zMF<qS!gH>C6WRDx$^x<iqP?Y~L=@_;a5bJ?M*KD(`+(4|_~g~cPuj%=XozTG?U~53 zTpjt9?$`UdFPIQFp+u>msp;ty<L__$6-P@PmpP~-8d$1#9$M`6`@PUcCSw<>qHiyC zi+IlLr8gyYR2`13_nzktS!cCQu7f*-@Iv&p`c#Or#rR<QhJstsB8tDb6HE^TT~Ey$ z5EB9I2dKO#R+uK_BAAI;zhp3x-}Ms$D?GZGOqmhTW>4ySvuWUas;xc~aj>Qi`+U3> zN$bOuGbJ8O*nG#)IJK`!cS85H+gPi<Rifr5*4JY>y(5dZ6o5&FnMZK2(-T-yFA*H< z=+*t&b#;<j^XX`n{QfXvE2OOJ3mFx<!1FP+-+c-mP$9XwZ*B5G*cWq}wpV>?!k)I+ z>-VzJsmvr68>#EvA5sTy4W|{0UTqM#G`>fg!I1k?Ey>BTkoF!{QoBbIOp;T=F#^F} zlwZDZqMfgVp}vbmz?_bJUqIe`xi#~STo*sKm@uZ<Vuc$B{Dg)TGA;zP-AuB+aAb2O z{#!F*Pfwv~!CWm{*`?18o9;15yuEg=cL<aLas!1g+$o~g?aojFF+{i1!;;F**%A*6 zBN*7`M6p1<SS4voj~R~-wS0vNzO1)OgdNQ`_pIz$S|Rc_ND?OZ$klKEuykNrv0~9b zIP-R4H5{Vc+kLk$!KVskTqYGbYMm^cl3u?tc?X-|Q@-}5{C>mS*gGGuiq?<}t7C&C z+*Pi9vzs1Hjgi@J2Vz1;*}e6^0v1VYP+BDqTg;lu|6=bgqv8sdMo|a^2!tU72m}}i z79bEb1Q^^kxI4j}-~<mYfe;89+}+)s;O_1W?hbDcIp;g)u5+HO_5R!+x7RG_**$xA z@2cvm>Mm*G29(G3-{Zmp4kmuPd!y;Oh@=rnn(nX7g0><dKLUDxYiBoIy{mf<`B>Zg zkh|571@Nfyw~~K6-Hihi&UFGjOr^c2a>n>3z2ut2U0?RhSu=w-^MMKW`lWPWH7&t+ z%~)Af&|N0a(MSuCcri?S8JgK`j;<fR{T{3|_>2Ofm5d}&o7+@|*%#|u80v5#oFzCB zYWQ5_Cb8S~C_DnkF3fmT&?di;e@X%(6^~<;LQnOqR=kWn#s!Kj;@<odlRFdsuh4yD zdFQrJ-k*Qc2RF^k&CQ*H+m@ZKPq#t9bjYci?iK~N*$F=p8w5EHg?{_VGc8E79@R2r zW-xn)xj#Fz(=o%di%YLLDm%sz3)zCm$Tlgpd2igd)!x%aD1Pa3kpQRVlQhU7E2UUz zEqB^}A0*Fy-v1<JQ|F6R(+Sfjj*J44Kp4~Wu(sVc;wNmpR4I<r{$fL3Lih7DQ6?=g zEn53HVPppXFsmR_vizBsWQ77+r^qmho2QsyqG`@D>!+bPd48L#nhj%<>VHQLpD4H+ zNPeWIriTCVH<wG){$k3QmwV|zjC*li*R(7Od+>0Mr`3*zVXw|*g6PWn)|D+nW8fAk z2aA{NL{#c(1A(F#SIdX0R|8TWM5uze>yr2TtR-Sf9$$7kmPsZmM9pJ=88X?JADcEV zY%H_eyK&gpaU}gHhfsdD5pJ+*oi}0p$jW+P4NY$2t+)}o3LLX*;dreVQ8eIp!5<-r z=@pveT~VX@Ssp)t&Z0aj9QWb4q!TZgCiP<`Bbvl;^NV=IeS_36J;sehbu=?nj!aIr zhJZ0IK4`Lhd<!#<kfK;k#~;ktoybm9E*61dp9$4LjhzlFZqcuy!5=@#p!r=hs=Aab zAUv+j|H=_-YdK_y_Ka!8hMYeT9)~^5WB+FRHLLoIS3lyezdaMW6mV(<zx{MpMusO? zRY#WBLDzP&#bBa#yb)6?yeYupQs}LPFuouC6Xl#mELFt5MLPbC9ml7yA9wZN9~ZD! z%}<0Uo;d_+QOd`=#L=|nOL4px=ARdW9x`TvSfySEQB%`D90cQrFP-h&?PW=qMMQ1? z(0_NefBp>`l{50SKMUmV?pjQj>W1saA0!Q43y&}u>-Q+F@RsvmO-w&mke7yA(&+~B z^5_7IEnp4`q^QuIpA7QQ)6(ubL3x>u#1?-v6#SumeIogN;^WN^tDkqLt_0#M%hgp` zqky=(;c%(<qAaRva<kASb-YnJ`&na>cJ7o}t+6(ZxRc=U<($U(0nSXMp}@BJ;jp4~ zHA`%VQD)D5_)QX`@$t!Odd(!geX<Rp(a$dAf_lcL3?1doW{R+ANE4qzi069ax)&F& zwB@POLB!fnUbF2vcLdU|gF4!ZBt^WQ_UunkiJa$ImXW3K-utQOm@|&!VMiWWUbsnv zGDaPB)a5Qu;E;u38T@*=fIoomI4^8-<z5o}p%RkccM8s%`$(Fdom<E)=XlLymQ7Vv ztwsA?ke9<gc|>SYh`G}rB}2&v*vKsf?p6V|*a4)&cH(|O7=WBN{D-kAP4q+`W%>?_ zYR~U?TDpUAC1^C_SH`?Lu!KzO8_aSL5=x72fG%O1Cw~bBcDqhfCg|DVm$q}{ca#m3 zV-JjkmNf*?!B!C<Nh(J8t7hOfZW6kFVy*rzY=E1*K?8JEm?6hAjM{$6L>12SE)GI& z^*dJq?RBUY-Im6P?QaRP05;8~=*<gDC@-a2z+mde!KPF=Oqi(N0mJ^E{)-3Y{M%LB z3}SOL4aDi}-F|;WlZlU19WshPSA+82mya8Z(8TdQ2X>!eL_ui&5B&|cb%=h<JQ!He z-2#(ubZ%~(j5ejIAv4(KXbglG<maYP-V$#I*7cmIewQX_+GfBbnBa_`Vc;uzFVp^$ zz5wXMOMsO&4%iwCnIbK6^NA($ZHcrwHKLS<U;LP4w{i7x5H}w+1UT(C3>FkIAHpaa zj{|;avwaywB-Lka(e)gHKlZ@l1_nm}uu*^+;!&4zt<P!e842!MKDs}z^#F(iSjCN@ zfU)~65M&gIY=^##T+Owf8?fJu$b9-<-M<+fhM%2K1a{m|Uf7dwx4OB=T35J6$O1)D z%CK78i}XIlBBkd!o()wDVg}a7KzDqq>H#4xH+vQnZ_D)O^i9jv0McI#_hq5TBbI6P zjxRF@C-%P5Wtq}bI73t}i_^L`zrDN80y$A*Jf~PG#e3bW!`9GmTXm&n7|d@)+(4_K znv+eW`7Zh1B3P?f+co0!+xA6bW}7!b8Lj>01`ccicSu6=sIbb^9}j*f8`S@<M=W|p zIqsYkIr_>k{9?aI6mh^+_%*N%JD%-8X8-2cyEpP3gI`dtsiGpEsJwHlJcAw#gE<0U zCwPVonHrPE*0uYfNK}GD8vPkD{1oVZzw-UYKGn$@G{ug%6d`E!Aoy#eKU@Oqr5p>Y zNSRYN>0ehnAH^MEy8z9J-vFQk54*~GsJz-#nqV2S;Vin9P^Xe@S55%Z0c@E``5Jq` z@1<WB11k5bBRJJvj@6dz?c)%<nRsRlm`rKh`@=m$OL*H2K3X!?k#_iFpDvwBfDh$} z7`Ao7+Kqs%h+|tO&iIKFu8g^sIbv}#00N$x-j6*a+<kozo!>scKVop(%EqIyb@wkh zAEI1W#{pkWqzJ#7$w3$&R&n&HWGyzenK!Y!Wj!;*l}Emgk}Ga%*hiUN;*DnpjVGEr zntZ~SL%!^85xKkB;2gz>uE!egU_E935mHYWjOdE+0K{__SAI$Vg7?tg`;B)BuLChW zCT2@qhF{Z5f&Y{5eh32_`X<>J-n!)ci;zz<OG7$x5#P{I+u@$PYIcNVxbK^D(&F3O zn(^?!Wm6OwmRq6LKP1G~jgKK6^ntBtHy595C#y>|7fPo5_*ND5&Yr5Cie*kKHnR8g zg=e4cc@6?;6S=Eb^^rkV6Y-wa8PP&6`R2$**|Ox$2aYYew|e6fOKE`ZQ0%89;5s@6 zc)>ysWA*E_l_LUA&sXPlml7!HZ}L2<S~xiDxNXg2+to)uWK_kGrR%5)!siJ52_88i z-11yp8iQ|Z*q4iQmAm`O8gG)|PFODbRT5lCA@(!Jn>-e9La;pd>I`mJQJ3yXKp!Hr z_!z(2gPmm5o&|bkunp$1NdGf++<Ej`5`1ZKNeO9#P>7pzay0@{m|QFqa4`U!ZEJ_a zX3Cz08Pd5ElZSd{+b7wX0gvF!iF5o#X;0NibtZ4c_*#P4?IA}&68yuWh+M;|)BgJC zMr3;z;iEj@{QHlANP;E7z(UEyPr#>~1rJ?~IuEaP=cx*&E;RYjPiglJqCE0KH%FU2 z{=-f@FmCZa04M-#fMJO2NQmj@VN7qwZ{A6zHOkzjQEO>tvqJ7RtwfA!LKY6JzSGOZ z=aK)pqA<OPYv{kbNTa^?^}0ABl_zePSF@N)3~6M#=*K8aT>StKf3R$F`USBiir$OL z+pJTP;x|N}vgo5rzssg_PT$?8UjyWixKgB-sv#vkYhx{IPEYxD^nt_ifmR3qlS=w` zIzA%u<qgzt<^6e~FS19gr^2V;+vdlQWXDX-_M!X5KK~B77MHw`42iq89FC5*hI?<{ z4>kN5jkQ?2{9y$5312DTw|4Gwa@wqi;-s5J3_o_|d=yA!{6jEhNu5&!Mv@9%atw|U zPoCwvc3$o2O-IA{=uY%2g9@Rn4|F53?JLK*pd$71^BY7<@B!^-ANdar&%ip+=BBsz zHS4*fmmJMBdL}MeuKzY3NL?WJez{3yR@Ln6fpOxxP+Q{qvxJR?8Ge@a!IOd(9E=^q zgG8>ClcYi!tNi>A(25z2jDWG_!_SLRVeNyAAuqf{Hu+A%ebGV^nl#kjH!sl3R?!UY zWlnNwEm|MppMI8*0U&ojXh0?OGgW7|ng7Xx@({`iL?cg{ySy|Z7P7_@%~dJY(t_!O zzlNV72B4P-@FRMp5(K}xFsrO*@6HA$;z#H9%660Mx>xt^qB(zaO<!g_bleitvnCR0 z4}&+JG)NHihH%%rFSuM<uS!dTYa2wi^;e2`LOR>H@6NgwIx*x27)c$Lz8D?mv&<_X z4IZQTIOqh$qt5Re)^WM(894tUaBxRYT$J7*ZtCt)itH;L-+3=ZceGlRHJy&fI(h%4 zow~XGnb(llo^23;F85f^2qei1z?4hIS8AQ0LiryrkHcQKH7wkX>=l#$8;QT=SPzN+ zjaO9zaX#M|)Z)B9ZL!O#6VZOY`@p}0(<M!?edT>*R^zZ1>jsr6P;#dAIJXVq;Ely~ z{!adFvnX7X+XCYL?$n-faVC?WH?rLXX`M>kP|Tos1`ZMRGzdO5uwy~mH;f?!g32v6 zcp*fk3FW;WH9*H!{$4oROeC>xaUuFRYk|p2F7JQ%2eo{#l7EvN3x7_PqwgER*{C8y zf_h>gJ)8ZK^YQcmBkcp<b6TIJ)(`Kln4NqboNg899FuVCkW~{4e7CBB^K4=%>|ZC6 z%xVCzSj+Il6gJ-%n2v?$19>RUuR9{fZ)m4UeuZR@F3C)7Kq0`E%_GwRXl`3F4M;eF zVWnxF^xm~b?BY3Ks?X*=q&-+q=-uv7Qb)L670LoV_b{{#2>=`GmOTY6VkmtmMkIC3 zxXc-vq!{kzNqdP+QTF_zNbG40Nww{*Qb!m=>b#q+oWJY4-i8KUy97V~f$k!EfJgnz zL3m`MlHfj~4Pq{rXy2J!`F2E(z2-te-we?5a#ueiZ9Tu2z8{Zw_;7A|Mt_nK2Ttwa zGP&1m?>-j=H2~vetRS#TADks(7d$pYYYecgt~S|(_<Y&wq=k+Fya-06e~GmWIrQm$ zRnPIY?km$--!H}%TY_sV0I*klvf2H7rS+DI%CGp;<0p+xM#B=16t*0ykmTnwU@y~G zw%mWz$yCy|9vv`-3f6Vc1o5hAW{>Z)G;Le$H4*pMOSK7Dp%*$ozSCa@p5tBWIJ-AX z9Uoux@Ur9p6`e0}e^d2xFdD+}7MPPfN-V|Sd76gT&5%A5$f44`WdGGF=YN?>>mEhU z(+-kMlz$)8gpmn4T8(#0hyxfajHf@c_T-Y~WR|3mqownX1tWvPs8R2O&`UPy^=QB+ z!Zh?sQ!BH18s+wBecv&P9P0f`u3szvc&@&X0;UT+rZBb(u_TzZQ<*p6TT0n3G%o93 z*pGz-P;Sw4@q1J&g>nAz40{0d<*QA+ossb8&%?FBw?6e=!!IF%(gs16j_qnu-LT<4 z_f|yr0qwde-nuc^2M{mz?Tp!ik6{FL%hIa)O!TiH32<iv*V2GqbsreJQCk;3`EetN zGVw$(9fWBcvIT!);L18LJ~XV)i0HlU7#JfiSQY=rnu-rzNOg`je9v8z!r_h8GU4{O zeS!9C{Co5m2)0btl83K?PmaL$zscek!)$4J($O3|+)_;+AFPcl{RgkVOM+K60;pFa zPgF~-;qAW1B0lh)*f_|i6cOAnUmZD{JqxmlOXOY@eT^khoCZQA*2RN=))JK?;FW{m z=%vW_cS@Q`{X^oLYe@@W049bhuI_<jJ+ipK@+)&Tp`s6w%KFIj9pv2h0kL|5FCr?D zXKC2Kjy^QhFW)%y_^f2T<W{en!AFE_Ob2(J%%!}<HV~9ff)F9o`hX+}lgxaUuSv3* z?5XmlT0ZG0{@5e>H}2G9x;cy7uxTab{e5s(KORALJAI_)M!%5-52^6jvhJ=*0^=Bz z#4@T+stMgk&zh!jGl&n<Jw2I`ivtvfFSa3UyDL&<s%gZ(_3SDPPe2U^ucdt(=^kg? z)6gLbsds#`ou{X&Q;hf9U5-C&(`DOH$ZY6djR9bm&02aeq-86aC;J!67hoUG%9}II zKTW)~eb}nPAk!jrW1CrodMFkR8Cf2<)<aXyOT-(>>`Tz26Ygu9rfbxJ0~juhWo+;0 zjaL~%E^gxUE}G_R>SOOIxA)E`W`|!3TUE_ejgpJu;-(GS$9xWDj8TcpWEU2h#XF@l zg5W@Xm%lvSp9s67A7~=gRC~xk6nZ^BO6j0tT6OROvQ!qvK)4jH7z@Ex%3}YPw5)aD z&hlvlIzK+2@^66bX&WO65nb9Q`NXL2FKxmcmND)-L;NaNnT~DgWT*Gn;pP>s-z?2I zqL@M9M@D6Kj{w&q4@y$|fEYb<T)Y-ThF&t>115)e%a#{!zsMRCc3OqmrEuXzB~$6S zT<@j{r~nBAsoZ_8M5Ho+k*H?*fX1Fr)zaMeA<uIC4;#Yi07uQ3{1jN9XmdBdN!!&o zs?d6-ow}gQ_vG?+-c*OGe2(8uJsnLu)bZhp;<0l?PymQl17#EY_Y+L6UpiGTw>La0 zqD8gv7}+rZ8QDoEZMba_Zm)>Mc&zQh=|g2y68r>^p9uXgN}Ra<>GD}{|2=EM1{YBY zw}<DQR@tb_F=@3udufDne8Vr{gy4`OS*!fDdO?Tl4d<rOY-ysH&69-tiTj&j#WoL) z`{#?Qv3aaYtl9~ZjdTE=C+W4rH_>WzC&^o*wufZC+;=bnbT7#FYmN0==er|xz4-i6 zYy(&6q=pjXMO@}ql#t)W?PIzV_V`D$55Wx_&G~o%tqip*luL|g*`DS)RJC3x-AI1? z$}gTE^1guc${E5=PL5_BI4VkJm@E3^ruz&q-2%pK;N!%85$#&5yI@LK>AbZsvpxry z!H1AwmfdmqC912d>h!Rpvd*Ook02gfcEI=z7>H+5AC2bjJNNgTvWOE$@0aK$A6r)7 zAMN#Un@s1LQ<%T)udlvbj6xru$ndvAYZT(>vX@Cte;@Q{{P%R&rO0~N2N5P6Y=04} z*&X15S^Yia9&OPu^EsygEQ1ve%<|sMj0l*u|6!z0B>6i^Si|A-e{{VBcuxLL!)D@P zEX+jy*R~Ir>kWMSr<;H$RL9Wp(dO?7GyVfjkH3R;1r%Te3b6lwE#m*R@)vwS(|=a} zzU!M-R=^1u^8k!&%{fFo+{6IqeaD0B#Hk-PVB$}n@vVF!<u{4QfRv!^$C~7M<6y}T zwoKF2!~9N59Ge5~O~_4~7xJ2#(nYwQ-rS3Go7auf7(i!!|2)wOHd0_E`<P1}0OWtI z{67yLXa&lD4*!3y{CyADj~>b4zgHfS2y6P!3edsdk^R?kIF$iU{d?bIPVK+616=se z%3q`dP5)T|um@ZO3Q&Pz^1oI7fq$S4fZ1OJKUU@*u0~tVZ72fMyx4MFfn?-P^N<ST z^oeIyzA4t@8hyWyraYow#Vap+{PU?MMGcC9X(1wu<h44i*b4qDJ4q}`5o|#b<DIHJ zlCR*34**bkR@t9i>6Y1^^b#z7ly+~z81!<_QgZjW7O<ts72p<to%3~nX-OSniuQJI z!ha`4W9PID4WYSFf<9j2%fRO+Fi84`1=FbSY2kMU2Me>{zq2CZqCKmI^@&`?Fy1M| z7-3gGRxjB`4%ghcL+lZ;W=Z*ow(bi;V#@7_h~aEjk7~D1VJVkqT^j>4${b+aU7<qI zl}H$rf%|?{u&Du4y{*G*eL4So>Wdq?QE+O98v*KL$I^8L;tzK>RS_HKt>&kF+F3^( z85M2usTz5?pboJ3`Iamg@8Y|Z{Q)QX(sxWF3+xD`PU2e<L>aJJMozfg4k&p`!9V}B zXw`8LUlcm;$s?-ZPnZjwo}%ZJC?K~phjiE(Q1&rM?Cxmgy93V}JnRTFUi<D^Zk0eA zEg*F)aGF{+NU!;9S&a}qpHRd98DbRjzzmfoM+G@P)nuIs+}kFIzU2*%_QN{eAP-NG z2O}5Dhr8)$5w7uNSpabPCk<D>l~aJn0G+mtuBOVmrDWZCu6vbzMBPDE@Yl-wz|6uV zZ^{K>2PiF9U}F8Ae;^NbRN6TF_;OBo;{MxV-cpx1zduhNJHFRDc>ZQbyo$@6kJqai zPo_tnZtSp{u8=i3Xjv0d4_`%xu-ZX1OtvZXcCXitG=Y74=aWlBVvlp`a6R)V5twps z=e2W0V8lk{C!^z;STV}9;pkBP(+PI{rKRTj-QVO*)0ERRv!(m)Mi*`#*!@@MRgD!B zRp-|e4>yfqPW*$=4R*GA^L&BBm^Le9Vg>beKMH?biFIitj?g<zfB86XfhWr<{%{jn zesPUEybgaVqeMHfaw%J|e=nHzmicOA7UkLQ4Cm}ON)|HIY0NrORgC+O`qBs>aLrQ} zkxgCSBtdTiE=DiP;w|pn3AT2j+r1%clua5r@gKs`-@H+ORfiE$X{1BN!%mOkST$kR zJGvS>N?pY0N8`vM*ZUb6b+_B&*`CFg<<dx_L+4lqXRcK_QBQQEvsT!M4f*I~eg%#1 zc1KXD$WzH*sn*YYZLl+|V%{G+ZBn{9R}lxP5*1F6);00$-*o8oO*?gdP+L^qX1A-H zpHZ$B`o(A6{C!BNzDX@&wR%B}+>t_QwLlAMXXtw2vm_GmzOKCBi+vO;8rfNfI_|>G z+>g5kw5llR*AXw}qQVf0heDQbX}6|>%V=x`OV2~H*tgbDM?VB_2%l{(Ms^NM8sUC< zeMnaS>^-@i__musJZp>yolXp5PZ8WS>2;s7m5Litwq!9&<%Ajb)MnUqw7+7lhR40Z z(FkuEB|VGNiAlD?`yY%CPBbSr!yphS)IOU|+v7&jrKhC?gmih((&Q*^Yb{DnxbsGX zW_~#SVd4Sf>0a^ul@P`V33)^jPZGhw&h8XJg4?RC?rR%21H;=i%OWzuh3yg-U9;65 z{^j~1ypFB-m{QRF3WI+l++pn??yGmh6VktIKEA&&>W5tV5pnGKPF?My=df+g#<d_I zX=&tBtC1ELiahO${3o=N-gA~Zi4j>{6AEb!-{GQej_9flrZK{q1`B!U@OLxnfCGX@ zc-PqqZC*}m(x6?HCEWPV^fVZ@Y@0ZlX53e?6jrR`==z|BgxwQJUrBuE3*&>tlz^V0 zgqDu>ET_q4kZt%-VAs6nlsS&P?isVLqP$5Nq#I7z{q!eJ?(5>vCi+GZt4=gx&)!<P zV$u~9J#P@f{#oV7g!uO!86?`f-nI{#TJKI>TwL^Ia$o(4ao#qtyt^#(_7*5rMZSsu zMYyx1f((={2;2l5*6eGmuXdJPArf17aca?G$N|AWBoh_GqM_%GF(r;>1l#5{r1>aQ z9c9Y4MNQ36v_Bg*^IFN<%`%q8$wmn7de~`Jq^tYC65kicc6+=<*=Ns-6xrrtn*mN# zD~NSdu9u)SPOtFcH*L4n61KpPOYjj0@9(<~CL$xa7CWMCYH7oRU;Vfx>scfBfi6WR zwDlCJOh^g*gf%fpG~3+c!svlWdg@zr&6xmV0rQ8*g~Q-jGw}&{<a#fQ;(;O0A|52Q zpDWd^V)~8=(<AZp=mS9^cdS%;77wQS(KarWMB{tkgNdHMFN&eAzdFrFa3l!r8{1Ry zSHcKYXvn0Kn?VcOxbRBxrS?W+H2SfJk5lzRT6M}{b)Yag=?6|qK!Nt2xMqDyj(BTk zWGn0L36k5|Pu=igU637_**N#fIG$2Ca_&p>gn|nEUnw9JfTq9H0w*D_48~+kMggn@ zfb_CqhVo*yxpf~v#i91rK*>kQR-7ane06J~Fv1Pl|MXcs*hvV>$THq$W7oK;YPz4? z$lZH(PIMD~@MzZkgVxu}-K?*N+2@lTw%bEkug|VZP6wijTcc0w=dY*RwsWqCe|_35 zaxLKLdC2Q}o54vrz#f};(ItV&ufg+ajs9zV9d{P7vKjjJ!Dg`IL)4-@Tl}9(KW?rb z*;BtI3RFpJd3c3PKhBT2mQ`KS!j7S+>0KK;B%AhI>`QxLo0Pqa_~$6JzdmojL|vyM zoN%v9t{rHU@SXNs{Wb%o6%m$s%?oXmeA|%o0TGSUt4x(7*jc#Jei$>Xx~W2U^n~;M z4lfSUs&zz1lm$UcxMjfV#uo&~y}iA&j@R*LBK>yFs;vBb`X=P#PG2IoLd4p3nrEuF zT855;V)@rO^Qv_NaVcGWNp^--S}+%Je^20=fAm=9KN2gR-o)kL_>m{b-SVBJ(fB2? zXX)3kE?gddxJ~CqM3mHTuesj#j#V(L$N&D4)vsMbjBh1A5h-`=2eB#+(`eoR`|4vg zpa|C)&PJ5a7&X3Ydw0yM_^qJ0LMx5Q4!)P$LdF&8ebRx2ox|ef?M4WV<_&ERy2O!D zpN?huaJA9O@E{2E%uf%j#LZH#`saUe>+Lyk!L+KMfIs6EAH#;pH$ZE}nchj6ej**j zK5<i5tTnJ76@EkGl#A$wbqCQ<A#%CHLc=N1z{<Fc63<vG$Ue{aF21Q~T*I}x^b|F| zBXh$<qSar*)@D2Ie?TjSV#d7d7^1-L!IUIEF^{biU;p&t`7ii;s@?efzL0buIn=}! z1jK|L73BP27nByvojCTurNV8GCS|POEUj<VpOhASdF@%VKF%x@EP};_E+)L`UTFYU z<7PW{C1HFKPcq5<TBx#~&N(QW`d(V|80&3zq{~vlvpBhPBKqqzx3$v2tsj!u&xu$6 zoW~Y*76)<4B<SRs7mQ@PHJ7?NQ;ir%3K$Kmo?kK>I(CipA^}_mp!|D7iY^G-L<>+# zK%UGst;n%W{TDwId(sgC+1ShMkome<$xGL3S8U94SzE<0;Dg?F?pVLV+!CK-={%-Q zC;s@oqXROOVU39!?*eZ&GS)3ARNoW49{MI7E`rFbL~d7;KaDUa<<5MV{;T&p0aIP9 zk6+%G>zs@`L0Tu&><ab4?)7eT-|VMH0#f@E5Y>-GT2!~Crdq?4%mMz8|DK+so(sxM z_PjI3-gthg+Y+fou2iK@(s?9+LinEQDsTwgjwvkJ92wNLx=uMOOm`Ck`ZJ)Brh;LO zNgAlQk;j@(ilIP0Wvafzf-lfK(!_bXT{;(g+ZfEO_eyxk(PG;O8OZWm0&?ZW@8LTN z=x)MN@rNF3cP@CGI3mwhZG|Be5nj*7AB5c*u+NkLR%3&vs}yC>?K?G>+{=K=mEo>! zy{2=D!&%395N=iN`FIzfNf_Y{-aY5fV)xY*ovsoxj)K`449gG1wA^1wwlLv*Mz#cB z73U5A%oGVtaPrXqDr>s4wDhLA1SHF?)SWA;k`&<|d}g&wMb~RO;v9iPhwK%u>Dd^_ zFRly!=ZkYj?Uuj2xp}_#9EDt&tAQp>G}6$>K8-=r!d95vPljDgJerOL3jOu1PgXqY zwC}`3`-z|4pi!nL%NlIT<S#tkL2YGvYevbJbu0Et?fh*xVKF0}M_F0@*UT+Fn(&S| z7??$=L%dO*U^8R!^HMP$Q`WGis{7CjQ<{rUyVUQ7orm{wrwK4=&6NhrxK#|gzW+?o zR?M1tYee?F^F{F~J%(GYq!H=_No9!Ys}NlX8#zj-{SPappg?=4FIJZq$g}Phlrx}v z_sa#e65&RthSds$@)t8``3P~m<y;+SH!ho#79<IG%efj++Oe<aSQM<6Do*>?bHCZk zYzvYk>(~P#5`Mo9q%nOxnT3&cRoS-D-@zIMT{ba0eEkEIPndzQ^rYL{SEBHWv}0z} z-?5Pjr*O?i0KxT!_6LIPM?$#_Y@0-Z;da;U&PL^^oE}Zf)3)!*j3ppD>Y`~U{HLTy zMb^gYr&fy_ukPQ_x*%qXm)HXO9O7sfm-@FarWSigx47Dp8@BA+A82sZ$qO*8oRF5} z17kkfkv-jcqoSNENs`|Xu~caDRP`Q*pQNzi%T;^<FtMM;L|cyK3z#8^ptc14RJJzE ztu#)<OsS;46@P)+L23Ly;AKi9n^`f+m4z~E->6Vy2qfwBsxgckKZlpNIv&dEwae52 zf9{R}?;Mu40;D^aza|gLGGyC$LAm4k;@<E2d;jG_eaRp98$8cGe+HkWs9UVA(Be-? z=TCMHJ-c?>Am%@@PS4(IS}c!8$m`Z4SX4=|efS=A@^;B#G6m`K*WwBNu>Gt!WgaUB zXym1>d9xM3wQvXt33uRlEsoThC<!|ZjXs|Us7#fGNe;x0r%pr}p+zIz8btY+tJb^D zOSm;VUU{Yl&O?4Tp=KcG*rd_qOqGGIXYlsYymf6Ute5mCTwi0VJPNN(nDCMWX!Wvw zjWy$_&*U8u-xlhqP5tsiEH@J53I0w`D}E>XwB{Ag`Ul_Y^G=r1dQSP5-H>uaYeA)_ z@9FybP}VhC<PjOCC-P-npJYZhboH8+glaU?r3sW~H@7`!(r(bjaZY~QGBK-GB&$OV zBT-eHuZglz?-l?OeO^OI_!GVhB7=}M0_NDUzD;m+B>~;GHGP<;SJ1rw{pmut;`Ucw z*Q`V6GdtHltjc|f70D-i7oWjW3C?*1M*&wx_sqFw!AS{MCq%5Y4eqDL1a4o*h7*=q zm$0;mJN=TsZjR{=;6Jxq>})r7OdN7JJ$Af4fNa^zB|vIcUs%0)lcquIVPg*sY&`&g z3~13>-})9_H^1*AG+x5^0qV?0=q;=%8P)0*q5gW!MCP%-XjaBn(8WH`(puJiPb7p@ zX3v&pWRdLjJNXQ;7!)K#E$zuklX!4`eyISdBS8Ne;$>g#_)L}EbaZy`RXUeQ0@dN% zeqy3m%A8IS*Up>hcW021i6MR6y#zrAWz`o~%3tu5t(-d~#qf4scvz2VW6@*CCdQ_w zJe8KsR=89IRIW!DhiULWgpMfN$>ytW5D4UtQBHjY*zCJDa-EJrNI=uij35#{hx|5) zXMn76bxP0!?S2i5w%2idI9t!PW_yz#^)SDlW}z<a)Y~*A>IAn3uXuZY?jVL1K$D$! zz0}s<b;ahoLFbX2O3bN93Z6Cgs8aYo08!c2hw9f2HK0DOL|(|y8?`l>NF>0`z>n}% z8%`VURdBP$-5W^#rit9=bgeyCez}U0<8E>0el&udv+=yn%5|STY?zf%7d&-%`4C~R z!vaQE-ru)>)^Y)?_%7mh(B?OTgB5TkT|O9scQyD^2!Czw8TCdG+-V_aq@>)g;huy| zPE7p{G7V8hb|$M-60x}$sz=p5lX}UsqhqB(&`V<|eyrlJ@-3}l2h9kBa3?tikkLiT ziLz@?kPfKG)1XA?n^rRk_5mbHP%QI?f-^ux#ZdWU1YYTlS(kpv&PM(u)ZW-^mR-o& z+)nijg=S*;Fo%Obuuko3Rf5|6g8l6|)?}NsY5vCI3_f(YSDHWfl92vIXDdcW;ub0| z(xqz{@6jBWt&^E3W!8s$Z!OBwKc|oStvB4&TQ%-Q-W1RH=;{R3fmoc$^N}wi*Pl&l zGF3yrshu5}lT;r{YF`!+pME;svA%nH^n!1SrX=6n)uiHH9&V5*>YEw$f!)3Ae4~ij zL`xr_?+nK*xK~;y#ZU4a8K4;H4nn$<N@VAuL@g>d5-pk*zsb*E=G1&arv)_qKl<R$ z=%J{SlOA(|Qq;-RKL;UG($p?txMMHdc0K{Lglxas$LgnI5~YLYp=7Lp;MOe8u=7H> z^H$Dn@=-+*k*eQ2$g}b)19cS@_J9}I?E}=@t&QBt`4Tm_Ysc@~&rDHvhANMo15xzC zJw&B{Al*{Pi9CmP`(vb*frKG7S5ooTA_|f)W#3y5+>FstHU!EKx+HdcJE)5WnnRAx zB+Oz^9Ub$yj`QB(oK6n>3?3MXP<O(?`L$L85`OyB*>ROt8QEH@t5HNR1FzbLpB*wv zF!)M5Sd?7p^{xtXM?W#jx6s{#V3Jmn{J@BIP0|Y1!q{~jW+99*FTx<JHz+J~6VF36 zKKl*kPN6#c7jTBG0lbmg;Na-%dTi6e^99+UM04iF>dzV6e>s*J|GTSvf&ABH);#15 z9BkwWFxgkW>Y=nOjgfm)24Z;jgvzg~!PXXoX=Nyf<6U6Rihvu6^be1K^us4QXV5P- z4SlqNm+^s8N<40LZkxSW9(XsV=+Q%Mk0AXFPo9p_NiS-vDk_>o&0eO#v|Reu9bd?u zTt4#Nz53UYvB8jF1ITFbHL4=EQA8hvfsl%pY;3b@WUH-F#3e(e#z%|2RHG70a+I1v z$z{STj>@RI{ad({2<_YzRcJo8Ple6TDT(y+&Whst&zUN(dYv+Q&LAt1#nf=)mHO80 z?M^9Byhus?o~Psgg2Z&wg5-ki77hP`X~I<}HjM?AxvD~gu))?z7x1Ga!@gGaz>ZXJ z0VZG}$4%ahoUv*Erb?!Hcf?7`r1Rd14jIi;O2Z3x=^<^k%HtZcGHPMhN=baFeq(jd zref}@t&aY<(C(ft_}y-kGBU+!01`J`k>A$Vx|1adc<14^jo+Z(+tc4^2%875mKTN; zgtTxu<F@vA@4gg+cIhkVi_1cE50QSb7R_E57h*R^Y(=IqHMmzA=PCY*4Oj377^|6P zC}%)kPKv{+ly$Thr<M<k<IhWp^v=$4buD)J(>F+B9G<#wvnx>@genT~2ywXcVwjSd zSk|8YX#-yJTweU(D7T(uVKV+6+>st}*9STIPOUWacIsOJ4*obFaq+GyvH~#S+LIWA zC)N%?pg=D@Fcq`ys2slvvJi>((vug%q4qLm@ZH!)+ei@j@%8xaNg%up^IZ3`jDq57 z2`E4S(z^>bh2A)+sb3X*9GBY+5)|x43pKwTQeKwkQ=cLSKO1I6oP1TpGPCb2)PMW@ zVi{GPL@a^jQy(;EXWd*}=GFN-qpAzi43W(VoE^#z3%ns&rKb+MhrSd!D0MP;P4fzr zbkg*b>2B88uTHr-`ys%j0SIQh-$>##0_kj%`CevE6&Wt=owKlk?ziqVV3#I~dt};1 z)LJ99w%ZAFqFHQ(K758?a_qP#_H*&}VsF&WO;VQF_dW&E1_X5uw$^7$WkEKU*DGVF zHolqIS`X;y65Kn<Nie26NMKHe%it`ct4Q(zE6GThC$_A|RWJD0H6m~ZT!S#h7DANs zj7}0=uUtnYWANveC}4g)1DG%O;bG@G^0-e4$YKu}Lr8FP@4;+hxtT`R;I6B87+_ml zi1jMh=9ghjCX04xj|!@R<MvM^*yb2q1vKtKvw^$u&0C|Q{Nb;q)6d6$qOg~3I^Q?V zZ=zi&n|bxxHzg7I9_xtJbnOctoEnqKXIhw4yQ~&zS<ySHv7Q}V#3s3E6!>au$Mr-_ zo_#va_pYzC6g|3=&aPryo92whEc?p*891raRLk%uQ<$??f~JR4&;B6q2K^;*y`GNU z;&e0(m#bf69KBWMuiCClRpbH*JSq`}hR>D8m3)rrgE$}2ggH;$@AHWZfGpV-s>r$r z)kSqCk&P50%eRJW+k>HqR`p5~S_0mBg+;cbxzip3DtXnI9)V*E)xuHAeb_1~`NVG^ zi*?o#u8u*GPgvf0{ayj1nD*Y^$U7ldeztBm`hw&d1yUl8>g1_~;HqU?JV&c>Pz#s) zF-)FhUz{YT2HP;J443c(h?|93w+ODWDgNfox~_(IA8VmXj&$)jupg=5$*nV;g?_$W zN~?JLy6hGRUhzi+bY4QIrOXVa&)`czo28G*&@-%5!Y3<6U?Nv1L34}`(yU`*FX$8d zagn`u+wvYxiDmCbA9>xAZgr8~Ut1J>4!S~rVvG8VuNcPXM|mB4cHk0>tZ2tO_H;gE z7Bs!kG}gKt<&i#sPV?b%q5%P`SXdKY%L|{s_j|^VcPL4_Oz@SmL$-T<6`<`B)`q_? zzQ8xFYLvlSr*sPgIP%wM8EO&TuRGKHB&b6cl&u5$0Dwt$-yqpAFts?uwS0Uk5<-TW zXY&)li_0p$niiux)l5#M&nVFhU$vOfP~0KNykjX~aAArzp=X7WP?fIzCu=NalKqf0 zbwk(eCi=%muu-7->ElhlJNf<|rbko&dIU}~hRV5#w_7c(1dd1N^X=we9w3mIuO67~ zu=$h3F<CqPs}pzwgbA<D97zxq8_Ye*EVTrCCz~rO;=xKIFs&VFa;<~WCHnsISDL0= z=OAxyKuE%=hfQsed-jTSL&!Gzem(U7MDqhPjlBsYCV%Af8?@nK--po^RcWHLOG5ST z@=y6H$e{xsH8m0VaOW(tQsEVro@ZA_T&GDa24J=!ZT;O8Z>vV8Wy?a_q_-VH_3Ddy zxB1=!fF>auyI@y|GX8AH`QrgbnfV|D&Y=Y3V1oUI|IQPqJOP#DOSons8jh+;MnpR> z1qmicfUT(3y_sT=_za&@Z0d&&j$$EiGHwpmeJe{O-r9tM$~m^Dh-)FFSNYyok#d)Q zZVSm_8ZVzSLFTYnBbbeD`X;%R)c)=cyyGP<?i)o4wo@fh+<jd}2L6cwsI8vAV&!iZ z$^{K(yN>df*EdbK=N)40f7GBI&L8fyB=MUaJ{0_ccyeTcQa-p$v`A8Zdre1d5#i!! zZT(|e1=*qI)Ij)HL+(X|IH?9A&1PT4`gCiC*M4MG8MBd&C^V^~hc)ANh@Rlwpi^Rz zv&jGbEju|kPtEYqVtZRME2KegiMFXR@cqskiDepz;;3YM1f8n)ZqJ|JZB|V@J?FJj z_Cs>`Xr}9Bg4DG0F?5@sZd8PTPrH_A)d-ADmm(j!aC%<mYv~s57Fc!Dpb%rBK=xS& zj7Rj@966CtK)w_NhlaUWIUZuKuWSDg^;H5;UxQZsD3+g494);O4+cnaeTho4)bPlL zlQ^L5r-1aaD)L?Ah)X>H%wUbLTZ^)5iDZ(Ti1EL(YTP!=2x#8_OQ!{Bky~>@0!O>E zuaP+lpv6ERJ#gw`d3&Rq^W;s>_^L(IPgQ@5@}|2S8UG@wgt=GShp~0K-w2y(M_Tg* ze&n&cLP4&fatm0K&OQZFsYL8o+UNUlr3G(7SDjiA;GZbI=<(r;WD>xBLlqPUuZX(t zJeDero;GYz!3t3?lVWA``;@C$o=>WfyAzok_41`%`3pBeS?p3Rio2{GmSDQ;nM-%L znYwz7Z*>p!j>t=Xa>(83@|G{_27bSWgX@kZoXE?l)9!+A?!zq*rQ0lCFcdd{EBFEV zU_J6PGU?a8*gQ|QZ+beeawaHs^(b0%TNu}SD{t!tP2m1I?A;9;;mv4NbdL9}*fAlO zBP;u@>yfCQ5j4e+QsAVMJW0wBHSSfZrhw%n+!B!e!&lHSA-@3*t~yH2;jQUAhtI3& z&jIK8YJ;_V)5eMSh`@0X+mpyoY&OCPJJvL^73zFLM)PKny<31$x5-fZ7xmuOIxi6g zezv?SCws=5SqUY)NyGEvHey$<cO|yj9p*~n^i|IB-kp(IyF<OuVU1@XzC<^1TVGZZ zCZ|j4^#}{(Y%s-?u(-Xi6WhOuxDoDOz-~rJ2Stjkv7t<80geLw@cSro$ewnDZ|r}d zW7I}Otr5Sin>EF|=iQ9;Tx5HQb+gGXnN7#~X>&QlK{Ml4F^}vwPG-D!$42ijK^&)5 zFA3J4;y!gS?)v0cc%PTw^)1eE#**%Xf#llu*{8KxI47?$uhCy?q>QlcG-kytEn8P& zC}2=<6E`cX1ojckGMI)wi-PsryzjG#+ziw&zka51nTZ~WK2l_9q_@stzN%=17KE-8 znV7g6P{w}SQH8#lYfYVBHye$xcrn{S)^Jy@$+3I<xgReg!I4Y&j<O6l<0%jYA8%d# zGAzz0pLJUR*7*kk_r{+bl6`+F#$d6r(qKa)^K<rc;Owq$KYs}2`x@V*z@z)aE9qr) zk2joK>F;n(I_3SvjbcrhU*>MpU^6B}{^mc$=-7*7R&&Oi7Jac#Y~N^LD->oGF@ZkE zOHMvZFgEc`Mqh_BvGBrgJptsGXEC09;h|wQ5>t&Fzg>MTnKv(ibwvdPP0amRy&G?5 z?&Z|`)VHbX!a@M&*#oKpa#F+n2mtT{#C-TqL?wI=<>F#_RneCl9-YH!20LcfGnW1_ z{6a=iSfG@7L+E@bWA2$5J<K72;pFLKG)9kc_x0v5rhG}N9{s{#!K+YJ7g%$js~6Ai zG(3=t8wH`|eh>S(eh6drsygQq1P=HB<v%N)JO5|`D!>OQ|5<@6MEKhTRA3*V{AZ;a z1P6S8QVqiV$B!N_l~IcQ1e|cke!`x=1h_Z?U&w1fum=Ec?67aZRbUL&fPW(JHHT*s z9&WM)@H>XJeLdgx1j01^bYncmo4zx>#PU}Bn+c*2xcb*Uq<9Y2X(QS{-9VBBVZKBE z?^jd)>l6O_RTymlzdrZ>|8M{M82<Oas`Cx{0)~rZm>ZOeC9JyW3-f%Df%(w<pR50O zaCoE`h&e)H1BYh_&Fm^0_tH0A#uo^FDJxG?Bk=`$XJSM+GfJM|lLT)S*QYoi9(Q{( zp*V;aX9i5#A(u@T=g1x(r|wB8lndtd>-8Y|p&`I&SvfE@ZSVFqQM%}B#k=!(S`0L7 zCbCZ+Kg`>L8UdjM$4vo4&_6OSJ#0Rn_6?Wp03_f08_fo^T`K&5XuN>SJt<k#peA~L z-!<i0aTaTR01*Xq<2>FCMC2w#Tsths3%)>mxrkl4^Bx{xZ*u<9k4yrHWoo;MM!k9V zGRN*KCx=UxQ&Z(d;k3=64Fy*48GYW$2^JC0BGpFeYL4Iw4oqS(X-WF%BtqYUlP@y$ zFKtg_`{`lF+WqZGrtb2myg&C!bZPL;V3@$<m~Q!Dx$mHoQ?&yPPCJsQ)UQMqG4KE& zbYQF%R>tT=!Ph8qRXy}^xUT*bV|gcH>z~N5MytrmrX`N1a^3(La-mD1|GFXRg`EF` zz_apk*NcsQtvz?fEVUD>ZzZ>{!dstCI5A-T7Dkf@3u}$?5sAMl8TI(>Jj7Ntw*2i? z5iF6|-#!m1CSbjqA2ub{5r)|##;&+ewfc^!)V=1wlq_s4P4&`g1dc%b4WILvObd2X zw&o9rsGAElR=X6%Nky?Qnz17_nB$9W!7$Y5VZVBjP9z-&Y<>fTX~7B%L&<md<EXfU z8~j6Ao^$jBF&b{O9=`-hwSfpV`{utv(!eiauTP%89#Ilw+FNa{RjB`&azvu8fLrTV zA;$H^e1_fP408?wY#bUe3Iz0oy315KWSj&Xj)2_G+Vrg-0W%Hj)4NVz$%)K@!_p}; zqkB1u;wKX9y}o~@<46=oH04sBa~dwEnM8n0x!z@;-kWA60Jy%;RJGFX8?kJVzrSk> zF|zIOC-%Uvm~0aSJMrK-24OtNKd97g2cBE7_(<DbmOXHb1Wt=v5x2Hg#HI^d%k=j3 z^rir3Iti=}&l%sjGer_LSl*|Mk#K%}sVOBtUqkO+6ibK6)wjLJQp1`^?C&u7T~Us2 zW53K0?cXs!vrs72Id({!Bj8r|Axj`f=%;+%O^S1+;F0h<ydgICf?`b`3Fr$=%XcQ4 zeJ_Z(l(esdwFeYIZC<!+`D^*ZG8cm*bfWWAR}*#w@o0azpRR16B~TMJRhANih!&>B z*>1;L%#3g2{YBz~WzEbClPG`<2pSXjShpjO{yEC3T4TF;Hq5u(v_c0sk5Qfggkh*Y z{rxr{KTQvsOaP6)KW#tV+qcRg`*USF4^iY_Asc>bShiZr`-56(ACd{Wx#^G`s;Ez% z$9(oy85!N9y2<AK!h`OqMa`A&MGHo4v)IYeuK6j|b~YB&y{LHJ1f8!gVgD-=s;um^ zfEx|ZD?8LV-<ykITjdITJ##+YAUE=M207%glp`xk$$)IP3)cWchiMjj;|t+Yjf22( z+=od?60dCJT0a43@|W?xKUSFR|C)bq?D6Jg-p|YXU#{1zbS~5x4t9RvaqO8Z8Ezd7 z!}g7k?>J9nsclX>FZF$cq9Nyh^ykl-m{`N*B^BXNxXQ}S`@8rt;=cB}31&MBr!)(P zS9ZUaHq@+g&c>noL)6O;?i^VgbqzBO&;yZ_MhE60xAA>D>Ti~DeUq(G(bo<snj+C} zzOYmk_S*{rQO=XZTF@n)4@CXH{I`+EUsO20Go^nyJXbF7ACHDMe6})qUpYLFRlvt^ zy>b+{&BgrI(aE)1en9hXCsP8Nj9!!KXu-#aEDDCH0f5po^EAi%6~}Kz`>ETTg3{dV z)J_QfXPwvuH%6aW2%d7TvLRO1uaQ_}^gJ47Gyjyftc$=a)3k@TijxupO~sb^H~3^a zn$yYsk&s{la`)}oZ_uR?+Zemz;%WTPuyMNg+qc%9$f1(i53S`B`ksGK*1pwd<_emJ zzZgv)mu)cn_X)0pOE)i%e1Sk_hgZV+J|xjSrJ>v`lD};}L)L$+MFW&Po5Mtt+dHE< zjC`64x>1<4*8?BZjyN%lHg2v#)o+3}ju6%68LH}k-#~C&t=D`f`~%#Z;?2+($67LV zPl)jkHmp2;qn2lPSU_TOyxTr3UUR45plKDwZlycvIWk_1@x|Lw+rR>VA4^3r38_5; zM4^`wsfY_tfvrLwxy-*d<z1hH@@~<COVNo9h2FukzP%W@D!Au7d|<*EXU0TS{V9vK zIksi`6ABC=uyP8)j;#Mr$R);i58FFs4!EI&-7&tJ?>FtoZvEJmujg$)fy+zVRG8uA zkpHryM@}c;%_Zl5c-dsNusiO4y}fX}H#?lt0I^ptP)t{5nP?cY$^>m^Xs(jhrq!nQ zXN=)Y=JVEpa){N~lbPS`cFA?!c__K;B<j#MO=l?(5-Hg=dpTgq&82z07KUNvzQ3&} ze>7yI1y>20Ox|(@9&3NOIN7J`NJnPB6<P?ej5zZD1u^a?1!0ZA6gb=xb7tg-LivnT zvA?}_Iqz0f22TjdR{!cK^h?9Sh*>B8;WA_Qv-9R5+Xs#{sWW58?@(8Mj;HMJ{ZW`` zkY{Fk44wsaSve93tS)M3PSh<y3PMI2x@4T|4F|3QhtEnuwgKAevTKj>8HNK>+;q^s z1b8m!y5A@xM}LvjlJu99wB+LbNw(TWCZU6fe<UQkf#0VLqtq|Wtd}$cV`f6sPLC2F z&ap5pzgrNE$WGsDfDDiS?`!X|Ah$__0SfH5Xj<BoeqhLY^6yM)i(K6eYfo#8N97Nq zrV+L@{o+kdB_I^*GUrJy2LJf~f*4~FKJbCUl8WdJ={sC{+Hwde65^5x@*H+I28yIK z$E5i7^Vp!*sa&x|`GapmgkB1Wf;s&<%W4{UbuM$fAIvt2MWTk!XksNF-d6+q$fKJz z9Pi$@F+S~zol}kIRQJ^u$<3Y1j4qKB0sjzzSI;5N%bY-NQayLur(QVnK3)DC>lmZ{ zI_6i4x=k|8jYmVM_cQWhV-?GGtsVel-tjcf>#dEpg6a_Bt=z|5(Ni<kY8BC?qY%;l zdv_@%H9yQ*QQs<Sv*VsA7APw$YeXoD^lO^ig`Y@(6?VsK(W+LgNwv+~6i&_tuLex| z@!wsbp;s&s?=LotB(TrTWBAWLdjMGKe&uG=OU8$>mg<5<v&@81jg87-`vRY3Yh*ym z{$nDc0Rk4Q!mCM7b}{F7eO=`KqFOLG#KOG%VbnPjbR9Ft{ZTb+?R@g(#Ie|XU0t$y zh!>CBw!7aBD{JFT?mRT_;A5OX827DzXH$*o*`!2~2JxUIm=JQDYp3Y}eTXx8^FiGW zNF>VcPRd^9AbNO60!xt!D=-3DUY?O;GBp3a5)T=pDGTIdna=VxW+uK_gPY&vlt=CW zp=uF2q=~yW89e0Flna!2b~byfhBzFUKdL9>?AiqwtoDb*_zxTVSo~OXQeaYm3ATYU z%QIV6Sx#bR4WY@*T`cVH_U;n@sSv?1nsRk53rOAKp5ENA_<1-XKOLMDhM7<+_U|ia zr8pIkcs7B|GQ~VAO2aJBV{z#qIZcn@^2UbA4fc`j0m@y*Azo};k1_B()y%N%Yv$CU zt4J=C^5BP&b8G2{bJ%Fqw9=H@Q1%GrfCFuYg2*z+?~7swpv4?ZFwIJWz|X||U&C1m zmITKgEY#0ktuGv(jsrnlZz__*qV`hnn}41w$ZpO#L>G&Qh>Xub>e$@btL|^vc5y=x zW3Q%<Y$d^wl-cy_36uSaskc(jx_xZ2RggtXr|c{?OrnFR%%2El(c^!3dD_3Pkj-D5 zip<VZxw=pnRu-N<Ybey78hVqY^^hUeu#bo?GVEmMn0Kde;39uBnMaZi0{FnBhM8K( z#PZR}+1&c2*u2|4y#qA)jnUEvD`^a0)x@G$#wzcUr~P|{UDH$p{dd+n8KBe<pCvC? z<UUY5XF70yLfB-y8d3+70O_GfOu_y0zF$<M;wlKo+c?WflYf$}puBMZK*Wu05IDQ@ zOE4sDVe7=hY|UFRca$l^Q$*GG#LZsMem1<*Nm0n+tZ4H%4kI{TB*k4b{0jO)4tWtE z^1{u@>}}R@j9e3gq_>(AXJ4~wR(KQ-xwM#vDPGA<h-T*is)GR$^kd7v6TSash7}sY z3|2RnJ%hx|%O<6%LV^tUaeAwqH($kx4U_aqkvD<x#}lE`r#HkBChq;Q=-y-BN6Prp z=3SLW9F)D|c9<{9P{W9D?eDxCFTa*Fh(yj<<eKyBj<vw%`eaqbcBJugi`eB_97G|l zN+@A_6x~1-AOmCaRC_S#%x$j}I3EZ5>ist$&F&+-fC-^32TcyEpv<%a*qe|`zEe6V zLGDhNF&a!9=(x|ssJy%O+JRkxpk6R~%T<7g`1RmM(9CnuEYc(+XmUd&k#NJX<JNHV zC&@)wf9?gDq{uKMqv+mqCo{qWNohN^okonb4eqgqEu>+FJdcBeV%H*I^~26kLe>9C z@Y9S3597t4H-P#Dm<UiedoL|QmVCukpndv0N5F`a$5s8q_<P_5h=k>nxn2%Gm%%`? zo9DLcc!2u>J5B7zmvv{j|Es<40E((<76n0<xI_WLB?~AZDtXB{N)`}F0*Xiu3kZ^t zC=w-#<eY=#oIyl#4w3|xj361_*+u-nzx@8XU)8<!UcIV2ML{!X&P;bt&vZ|p>6vya zM}2n>3^E@qY=SN<gD5)BMbSB8GC67s9&hh?PoET=CY?wtM*K2@Zi(f5ruTslEmPFx zIPx1=FmdqCP`;_Bcgp>+*98t9IRE$+RLFO3ckSfB<#gtl0|+=G0OU#uQc-4B(&v@| zoMRe|bhKonjYR6fUYI>crM`;{R}n^61Lfa#{<-AT&t7-LfFdr5T&eiE!yEQ$bRml2 zAK5f?LGGhKJOhvjlpt3o++xfG1bRgC*IYgg#r%{(@q33{J>jDc(e!=<+&+1(XE4*% zRuhuxK7nx^(|2lNwqES(3VtAWI6eWQmZ2mmSV!8B)@hy==fk@>uZv!Xyom;4bM7OC zf)WJd*zH({^<h`qr~Zt4K=2g<H<0ZP9KS-J7Bqaat63|kB-8Wg8ho#4<#4!dLz!C~ zQyAulxWUdH;jYlPLCn^pI>=a`J^%!&6m&s^{@??5=ON>T<dNQuYNXSNh5=Co5wzpg ziMU%&-ysR%0BQN{U%FR`Kx^$TGJ+)<Q5aeC1y)l?4+%aIA{*htYFt39#0#sD%^3W4 zoLn&9o)poHm^`8|qBc-C1pqZ{h$38G|AByCJOS|jU!;M~{a;T1yL|uuEFKn8&J4Ge zZ)D;ra!}^4Q^L?txHEvzDqu*s1H&pL=Pd^}UI|J=5HOhm2^c(LcOm8wquFz@{TB`? zLmw(e%z$%(FGd^?)Fub3m^r$w-FJFeFJ!^`aJYY=sdrA7M9@X((*~me`#LbFk;Bj( zZdI-3t8HI#rho4hv&+`HKODshh#~vcuGRNc0o8}oFU^1u&Ia6nwcWu*A#)}IM6RX- zLl;QE>_Ia#kOM}c0zB40LX3I)@7W^<`u0Z#IYS@F@*fQ>$OC6aDsnt|!d9K64IsV# zluqcCeW@Uqz|8o8;*!f!dOIBLeQL&ot<PD$rb0K3U0hB5CxQW=-6b|5df?2Sb#J|) zSHrQnX);vrL*J~6Vk~!px#Q^G_Y+!q*_xQ!EWYB-zl>Ex%zI-!lluLtrvna;nc$_y z)2_7j>09k9MMsB2Z`cttagp)KX<!#0$d{2k$bZ(U)}c%fvjeP^Vq%l@z{=GkF-%)p z>Ivv^#g<XsnR;IAcMw~g8zG8CAaa^V%#TLCt9U(uqR>y%m{-T9=agKV6Zdv`uq)RN zOjdIOf6V6;G(RiQXb0#&8e5xhvW>11I<NTg(7B$BcR1s2aijE)uF8$i?Ij6mOKFA{ zj6ZZiz-iLRX;#gbFCRR%GP}{HayFP+$~CbOq2nzrMVbH;?QHdK((&icnV0z*#XNHU z{#7>F>q6J)H#^m&hkELeOG!|ISkyx!KF@?H#iDEoK|4f+j^)G-ooNJL94BbJdudog zbi{l3QzZ7o4LujzePpciuim?ZW~f(Qru*UN3g)5t8@u%QH-vn)LkrzoDPC3^Lpv`H zk7>KklwA2zPU3C_eOc=PZWQ{>k<_8Dq-DV+z3rVxYW?h=TnW2~Nlp*l*0Ww0?Vc)g z*L<Be5a3nSo2))-PEq>{wKGSx;6n<?@DBF_MxbkYj<uThg6`Jeso9y;UYu@e8sC^T zu}_ijmx5O3K`&KQB6M<PA{B3h3Wq^p<;5!XF%xd$0UIo#V4)zlPK}DPp681ohwXxi z2<%eF2*WD8;31#Elv9dfVNnuGLrD*m>eFWm>aaAPWw24Q$xr6g>_diMu}SBAI^z5y zr2H3lZWKa^tHhvH+Q5NODYL<)bziC0cP(6`g`5vIfxvPuibcJO$#~%6S!B#DLYraG zOvF?>_VgdX-*4_bhw-lftR@nS-RP_TzB3|=!@BN^jbN-i%wkD38xcYcbO2(=Zv}?` zl;>QL$r$FFEv{_^EE0f`f?+lG#Pt&hz5@I^wnGM111})taQDJOL3FCk;gpxr3v0IO z_|3>33(|az1<VDnY%xQ2Y?OL}-<Wmm?+SR8Ofb5feU-1KM>Fz`D{-3wN3EAr)vx&o z?mWRw`CM?MT}uW`Gf4$KCBscZZdeipky4-8<WVNce^-Nn5PFrGp%5Xgtc(Z!uTSPU znCs}O4qtJy^7m#6*xDPI?-yDbSuW<xp+yF0u!WU!jUAmW%T_I)oy-sSQ*AuLG7jYC z==Zk-m!Mc3|7${VC>C&5CI!T{ViE#YclQ6Lt(7<Qbtv1!CSMaG`z}Jqc=>fyz4?*+ zvqaaYiDA1DC%LC-NqW5ey=EZyCn-o@J7NZ?>^V|%B0!6rIecwjQ+rQErb|sSRwE%} zH}$a-ecr=-{!Jgf5tq6LkL6};Yk;A<I-q1vvSXo~ON&x2@q0Q8_{t^Qu2JAxw07Y8 z$rqR^v^Z<+g7h7ex3}Wrrwya9s-&tZ^1ioNxg^>wc8mj-SdHTTqPnT86N`|Gy|ICr zQ{5+Jdw!vlJ<Yt>k5o6~&e~m3Dj@$e77*gtLX_<03_$JxIS0Otx~+|QTtyMaL2o?E zsRPydTxZYs4S91H2%08R^F<WCFwhne2HMtzfhLQ{MOtD}NK0%JX^Amin4y5lrH!-` z>ydWizdqnuA!n)+q(O*K1@44M%kQrhBkGm?qhdsECekwew~D!dWA2d&QH==VSbbzt z1;T~_<bM6fj-XN)_<GuXk>p_*$eMor+l>e@z8HZ>G7%&oC_{?u1&P0MfXs_W7XVNR z@@`+GO^bN)CxHC)hj{cS08D^DCXkSp_um7+_`aAYkw!LRtp5%0XRE(+fCc~<NPjl} zJLezbaWU2WZSz$B2uI{p^*1c~E3)?xxFY-J?*U=t;TXWPKLMb-fJ{XCvon9^{KH-a zFaXk@cmNGtJo>Zw-#Pyjk4ss)Lg{QT4YcNtvV8tB$ew)?r4ZR;`oLv(NC4RJnv3lD zVN?|4E(Mff)P@VefuURgf0hMax-5GExc^c1&zJr$Ht_TpO@9#g8&3fE2aIq>bky&6 z{v_$YTmL^{^uPDcZ)E-%0snOaz966`L;`k^AOYYNfKVU-`~m2@0D!&&5`fAD@JHD{ zU%DvEgpfXJ6mjKTx0<NsUNUreU|t)b5xg$t1!(gdqU!%t!GG22ZwxPhKQIKyx}fI& zaRY2fPF@ZHfNB6AApI7pOQ4sl5G-_oas%|T81Q%XcLDs%ekla&LoVqhzj9giFlz24 zbA`n&iAGd)`PvJNOR3ca6@o8c!$rO9(^Zt=#$O_kNORe$KBNJ9`5FiMWvjVpnxJ2= zx&P}q5Yl^z!7s#t^1vy?zgxp|-bYz@L2^~;;GOwInelKL@Z0NYwR2EYtk(vaVMbfo z4U!QGi#ThWx|bBQ0()lw@05V6ezMVq8fW=kzAfipe`1%gI_<I&$ZQciy&2}96~FJ4 z5;$W4TYY=R=4QP}TD1?{;Yi6-HgOyZ96x-aY61U_4d4h<uWhVzisN<Iz{WEQ7W(nU zCuJtmV^hxZ&90iPL)vE6{<F;|Z8faMwS8N&AN&u0=$4x6E!*+(BXuL9&(wgsg)+hC zd{$=rAM`#}C=c1f<8Ynsq_vuve4yE5mnfDMaGaTQasK?cU+(sFaE;6q^HRAn9_7S5 z>aY17(3kXSt!+)z^9BG-G-h|pO^-eHf)^A7=Q&q$LVQ}&l43!dQa{gydmQto4POn| zujy^tSN|1-Y_V~5P`209t8A-9jgdQ5@0_H@yNNrq_rxY*9>C2jMaIPHzsHr%tUTRl zp8K(-t*C`iYKY_xFRXJk(#tH#PlwX8W{VlA^E!q%!vgZfro$O*#f#wwy>{<#Tof(T z_IG`JTeP-;JzoW#yaj0-8&)!nP==b5`@d_#w=R?LX)@6I+{KX(Tn&`n{0?okV2=^h ziM5}k8_C8$nFud3JU`OJ`T5y&4A$UoYvC%p9olE#q5#9_6P!{xVR&}WWGNW+LU{wn zxJW-SAG#iydY>%=N{^i_woo4IO7F0f>ClyDgJIa(yj;GxeZmfg%uo!#m2^KhmOqbn zAT0+CLw9S><i4*ho|6H6?ZeozgxOr5WntW?wjHZgSQ1uFyQ1JDT{rNco)ggR0aBn^ zUA<)uBkf|rQ-J>-@NZV*OD8)mHwqpVMTtT79eL(qopHyWpV!~+=)0{sN5<dE<vQCP zkP0}yOVyWDg#L-2&2X`k1Mo0pg7qhz$G6Pt+xl&mSD$kad4$va*oS_w29C2C>I9sO zN|4An&c<bZotJ$KmiCEIB}h}5Q{18Cqpx*Xp}81ByXV3dD*I*Ynq-TOuFu*#il~ZC zw_5!4onE|_?5PsZ1EYjICmOQRvZvx$_T<xz-Ww`j|0qPZFWKG5b~nPE5eMKp+E5bM z7&vU_r7hyLZ#Cbv^yE36)WG0RMw&))IdEZEB9!MthV4@Ay}d8jaM|hfAmq<GVk|k2 zQkQWvK2rw6@%h6P+HQDk^&a#qmIDjS7OJ77m#n_ij|=A<=_k-kAq=;piiSOanlR?y ziot|&6#x?-kRw<BBBs**rw_MY$h8vCnjnV7ET5I#2-?`Z^Bv}%YqLVT>K$~iRKb)J zkSI8Q>G{$z)bFd(V!(k02p9t=?bDSFEwK1kC*NVm<eS*^5)mBuQG>Kvo?Tk2<AFb1 zNgufers93ZVvc+-L2TA)E!y_(@dwdPEY5k1oNEQzIW(U%LF_fx?ol@A<GGq@%hHfn zhky*i?uAMAul)f3@NGVFmEY*=v||6fzv&EKnzpU8-N@TLpW1x=3gpW`+9A~2->>vY zEhPMoLYs3pjJ4aIZ3I^Fh@CDkzu2>;wD^{0nh+khn!x#s?<KI58r)kgXVp4!z=4cT zIM?;=vycR~8WcrCwRr}{t}MGxUYl8YM-Lo535kYgn)c4rZG7UZSB+<a7beR(r=G;s zg;K_4qH$;z$p*emE18+(;hYnwT8f!`TloOrNw)2X74+_7nw(PLKwPY;y<oU=xnU1= zwe#W;gcIVHn28qe9I9^jKwpp$-VnJ*=5O6OY5Y@ZzCx|U$#q&)gWMrMIH;+pgjL)R zZXD3~{&0*My)7?TFB*d&j10$GE}P9$96V65K#7Axz&p!*RlE|r@?~Suh8SNVc}cZF zdy;OE!FT-F;r#6`;v$*HEa_ltvm)sisg)eY8|EMMxVr{Dve53^<%WH!eqT<b3Od$H zl7|c$W}XE+Ez(3VVo*fb7d+r0J6AruQL-a>{%mG!dZXv3Iyd>`#_-Rcjp>rQ)>Uzw zz0%p>2`8Vei8LC^;Ea?n0&X$GWnjf%hvl$A{gAGwCS0BI%Z-Dx%)LNFDDPsdZa5QM zU;D7pW?ggSiM=wYL*spp#HX^KFJB~GslATJ$D!ra#`f;mi`aUL>RiGnUzzYH??cEH z#=w5}n+lVnL|4|GU8TVidaG-=y*`zA7-Ew;@1X8pgDUs^h&22gnUp~Z=Z;UwuZNIR z88D7XctX*g;-iD`Jp$$|=>$?17WyjUB3cdL!b~<(?}Nj)Kl0g!uj{4*eXJQ~0B=D2 zAjnq*QHX0;;~(N}<h$O6Tdl0Eyc>>`7#z1gTD!$OI9ps$kn?3q^z+p4kQ54z!9AN% z)MuZ<Nul>(N+bDnUtQhm?T;t?lfe!(c~kX@6D|w9PqMrYRBKZuPPqD1!mimmib?!9 z-0pm==LBy%{2qXNBXE%pBUsn%n=$8?B}@6%V&b*}@*70K^?jnsAR-$kp4WjO%H6fj zUc-miE1p~RZwdq$jNYD5M8{~Z$$astFDc#7NVZf)2{idiL(7coRuDGh57*W*^ShXE zVI0X&=z_&e9Tb|IqI+&+#YG9>ylO%YQ;!rSjfI{V9seXQBIy&juNS4w_S(|3L$`76 zDTTjI>Z;Sp!!CpSutbjayRt*cUHNrg_H3%4bTG^9`!Idr2Pr36UbuvJtJ|x4JL>s2 zXQ~BUqViOHKYIzR)7CdiTWyiuz>|Izt?K;s+ag;MxLNn>WaitPQkb2+ed#CKMbwvj zj=p&+pzg3Xun|v#ei(4_HgV~p{`Y;bJ3jqfLiuS<<Y9W*qJH|+AZjPLX@<o9csx5P zt2Iz5V|@o*Of>4{wk^#Lb?z{%;cDmCjr+uKv7@Y?QT_5Cd2wuYMl>{LwRQ$kU*3*^ z4AJ>6IH;dAGO2>Z(wVQhJSr-S(4kzsYn_QEjHg4nkk#ylg?T!=r3x)_?C@~Jou{R1 z0EqWX$r&2cQhWTK^h?mJ|E#33i0*go8yEtdKl+w($P4@k2X|K<ejJ;xT2gG2`|MOY zI<#-xwUK7a)-MOm_#!1Lp@^Y4WZhYFC4&rP4)SS_{Y)7Y)TC_xyl8eh*Nyh4r(GQ5 z-geQF0d?)bpncH;Z0=;nGzCbem4x68yITC5t|TG*h34~Wb(cLqsCxG3;tlL@=H1Ts zlIY=@)W!I`_sh3Ng?D>@=8o|hJnVvlo(-e3de5~o%uNXdcI~_@h@$}gOuyUjmY$`= z@;#6FIeJ+g8G--R;AnrfT-M1(--nbMT{NT)B*6;o_ciwv9AoEH<xk$6{lI&kE6CH9 zZcRH*7QiQ5fP3xkup~>`v%rb2^i*FdDcLg#hDhf#iGWHnw@Ho%bd@xiol_58v8)YW zEM7NkE(-|;A*NDI;DT&lF!~c=PZaZp0ZBJsV-k{ziE0bpt1HC?^~NGs#7#BM7kLI7 z=S>n$b9x5mq!~U`*tL~VqbASqzRDRyy#eW%3c-+43CQyD{P^1NjooeFR@{EY+M*_1 zxbVRQ(dKoyH6Q3WK8Hihsju_fiRC(58a@-PAPgUqkk|%aOy)L}S0wo6t=sb9GOx1Y z$$W@m4fkeKKL=92<%bo%ZWV&KcD=qB2))E@CCsf6_q@VrcITe9_Y&v>nxJK5Z=9bs z`ve+2+FM$1bl+D}?(6F!e-1}lk91P@J+_iu88MTp5_(8Sqe~zr_c|<}!8dtH<0##P zXcvlq%_Le?M`a%z(u-;?PSib=mIB5I-P%Mi;4OO(c0T$_%0fJ+9h)_PO)moJd4x|Y z@@l7Ql_1cRRt}OVZTxm#$YITp5SkcdMrcv)XL=ADI0|o(H!@^Z@6qs&!B(~l3eoD2 z%BXd=wUcvE<MUX5y=4ngl$^{kFXuK`X{@Atar6qhw@`hLaBfcwJgF0h0k=9O;@;y~ ziAmFZJVqKb`W!YIzDvEpMNi{j-Ki)N105}7rJs9Rj#K~!aNw?ysCWzU_a@APsJs}0 z;{~LcID;z^iC|h9gV6BkkcT2Tv5DZYQB-zGN%0*-A5psQ<(HzX`a0h!mC~*KYyn4U z)=Z`RFnX3|;aqQ<b|9&%eU-aZ9%5BY_$W~X=c*lD&zrIYVRjtblT=yAnbk7E2e4hH zo63fbH7G>^qQ5ba<H>x-J_*<q^yV>9JNFE9GUt<NkrX}mZ9qdc!V}<WQ*-4p8~t{p z#!qqt&J@K;)D?J^_tlzbJq=}_a60vXquQx(zMhdE*-dstJ60vfC4(6j3TH=I%an~8 zVzSy}v#q~KFSl9I1w73lsm#E9lAUT4)Ymw~O>pXry+Wy01`>RiG2ZK)5ak0Uj*Li! z^QL{FD{95BI;_SmdCE;r;cH2jr<sLY6q28%gWng|{!#3njtlp9by&YpuTt5@kVQ^= zg1)@d_ko_a*=>C?=M(}#>TGZ6T>nW-xu)^EX0bHvO5Nr!2!#TxE$-Zr<veM3>HG4g zw^nkHFVvsY8f2z7iJCTf6+J19a!19G;oZ=)FOJ?pj2T}!&(Wjozh>Gc?>`8^|A;&H z7%jYT_uInt>v=K3oRXeO^W^B|Z((Gl1p&pGiutS1jg(!iTRu^T2F)j1J`{ztT1V5U zhomtF6SXVRGC!L3m$Trcx;zi=)YHhwOg^;1!eV3@D@TY!!7p)eSB?1AA~(pB801>9 z7sV<JCbk637^e2ZH?qV$*SpAJ`0wwaFrQJ00XhQ9Df#tn8^}kNa_$k4gVxGNf_J<c zM60eqTg#)fuu$37orDwe;tF#F@JGsmnY&eX8;poEy|P$5(lc_$lz-HXXvJU{+`}3a zsS1AaXj7DpSG+7Nix%rbcQf)eINYzid-!Rj$&TP<lLkdz^VeO{veG2_yV7o10ZB@F zZ+vU32cELWnBCSHVLdQ!F_B>?4k<TLjm*OBxuZfI=?7hQs_Gmfy6F)x<-1qJFl*+f z8O2t|p^>%PtD|8eILc^K^dL@}BXLCBwY)#$Rt%}lK>EY)TsT+gh#Z0{)4r5<KT9v6 zf7C6`HQWLzv=NuMKIsvu(qY1bK^2KnA<KBe1a4>=5D_v_9GofL`PN(aYQZV5&xZnE zy-4$BAIS?Aj<!?<h~MlfTr1jws5#s%6cz=iRft&NMvO%nc@cl;Xa$1#IhSLR>ZASG ztu7jjl!PAtM7B}uaVaIxj&4f>-wQ2KRS>ku3oKPU5(;c9%Qm;1Do2Mw-d2ywK|C1) z?Y6Fr+m_k8RH>fyROJUcp>++47~CYppynCYDOq<7EzL9LuUqmKVsh(Sl!a^s0!uhx z=93=%d=U0wgC$qt=^9pnaw10HASxzdDJ#8Cm{vcpSg`i%N35>J-*N_)b}*JmjA)$9 zXV%;TxK0E%itGkG>>IbXd8}ExMHbNUGh}4Uu`yk}YHrv(9Lz#fsCe)Yo%@bi)v^}d zc*_i(x1DxYjQ-J1QTnE^CA1|V@@0p~*BIB9M^OJ6d`6q7S%`;KFCMtoxTCc_$!ho8 zvJD}8(1V;ZsHIo+r-Y9)5tGdJEF--&xBu--CD3vCRRX+Ygz7;UanNTdT=g9G_>w{o z2{HCC@ALvZ3!uk`jtmI85f1QT52C_1Z3cJ=-NBuDQnA1R_4ZV+Hja-!P0T0|!z$*1 z(D>t0jdv%b>TrCXy2qp$XUt1b&CdJy@xgPiZ++ReV!cX9PbTV_iAMaPrdPYf@S!Y+ znw`zH+v#8)U0K)gVnF}pYHrZ(HRy;(-}N5C)C<j=GX<`DM0*L>w!Kf>i+d!Rj9*%q z)}p9>m5=yZ{MK4Bk+(n7_&w*hFFP~Q0vHGU?<}NQG4?%@SNl3P!Aqc?2quj8<5W%s z7h;>t8JRs{33<^>K6h;{zbQ4fobov>l_|4BL-aCAj_(IYE5A6yhY@`KiTc(UmSk~w zO3h7PV$?UFyqGf?hI_Z>Ql$X_?4ywQF5!bR*HC#RM{|;XvPBeD5!XUInCW#o;rUK# z2dTz$pP@rg(3a6r<s^ly1?GbLgsJMpXH-v$TJ%wrnbyAXO@*GoQe&W*tJ243pwFDO z49bJE6r5TXl|Lu)^~R+jO6rZh*#RO0p>lD-iY()O8t<_m(DeCRWwv7UV}auu(ekmD z#_z(ZIXLYyh0*0_lUtJ1>>A(Dr-NB<Io-s6qcTk5*@Lh}^TeZ7cQtah8$EWVcIPUN zr<`qfqpxnnN3yKl@qXL|HD7ROEFAn6VgMYeNn*~Ej`4j(MHw_+DiwFtU)ke__@d^c zZ)Rk|F&K}dNPOduLBRcS*}ATWi%V2ry1L|tT2Ei>tHwinMZ7gI+z4=R%<oZIpUItE zPkFLv$m#~tlBHq1BJ0hM8ZW)({<UX2?!-&1yni#HMHO^7D^uG+o4i%^u_}KQ_R^6y z_vjZZiL;Qb^gTriWndN>j-yOtmLi~D2R*&771JChp{asy#aC|}`qnx?vk4_2>S`vz z5pJtZ(giw$PhVzYJ;Ls{f8|MIdwo#~%u3j=UvGOI$F?{e9j2+tPm{OYq8Y-`y4SSN zu$BQ%Zr}{KlcPhN&Ic)K40xoaq6+eOtIm7enoT(ImXaJ$nlyDYU_;3^BGQozzQ@dJ zi9}L%IjW!&+FP2*epk#)$x<tr#{DLJ(~`gy#Z}v6l%{u|kiv3k+Tn9fGo=x?$PQC8 z;3k8l>8TbTPgt&iyHU8jo1F`DB;q<;qzU2ravhKO2)+_2L0nM}WfE)O>V?Ha^&3Gt zY`Hdxx7B4PA%66p(3biq{VJeCa~dKS<dQo~@$+?PLzd!8xO>Dkc^_an>L7+=mBnk0 zp9bqQQ{jc4{ri-?0W*hvUxM4CVxfszjXpR!fwFo}Y)!)&TRM{?G*yRsBP!YNdDNBt z>~B&448!Db7~Bfmk>>_=u1T0Q^`XAv=`D&(v@j^~U94i^u^m6DFjY_yU19U`?JzMz zgt6CWr@A)g*?2c$l{&$Y8p_?{;;`wM`wj(f2S+3w6uRT_xH;YD8I~7?IfK}QE8Lyy z@f$`TiukKP>a>o03^lKGy`#gzrhAf{nVppOtU-vE_XbYNfQk}`g>VaR7*7MAl6xGT zQzaR^Q>2~*_Q&J(j0#bZCTU{#-b1yMj;@ujcLRE`g^jS2m5x&5J~how(*k$M(bPhQ zz7R}lhQx^9jOdqDt)%%_m#KtB5t7-D<w7{<@f<`5gZS;>GP$sl;V?wE7{C+rzX~R} zE_oGm7ED<iUy<dTe4LW!e45{!SKxNmYV4m1t~_><eADCXdVcJHXZF~Qn+5xWDe>m= zEdj%e#p#$(Y?XCg<&{#;!mt&E#?I{@A077j&m`seeaT%=DW#pqx0~aoYBen7zvv8R zmTrlG_*cc1eC0kV<|8!t{v8H`$-zyRax44jqwn*m5)r7Wp3gE@wiK@s%xO^Bzc4W! zVc5r%!=M>fa7$ds9Eqk$cC^bVvN`(xMF=qX5cZvC)a`EJSv)MuP(kIJlmdM+O>bK< zm`36Rr3LQ~qRw=sWMD$S`M#hirrvs3yFQ4DmSWDClhC{QrB8z3>G-=8EDxjlekn$2 z7F<|^aG}B#s9&BJS1wCMEI*Nw-zRdI5+3hE@O{z~4+BOg>-*2w?%b^OZf8LK`9MJ+ zWro;*hf5iBNO~h_>(deLoDOR>&CsT#JPl^1*HKyG+|#H_&Ab$^pqF^Atq-~iM=2Bj zc7+#i^{SEe*a$@Dhh6C94nDY*1$a|*+P0<Qm^UjozZ86g=1vxv^Ez&(_0{1=kiqe# zoVsG;gEUAKWigI|&zrtsGkDy&Ngf-vDn59Fq#k2S__`^$bkoVbg6YgY*qD}P5LJkv z>0mGuEkt&`89aB*G`_Z0M*Cr`7N0?Yha)C0Lidf!WVOx?tvG{d#jTY~BrqiIsz0As zW5^EwaD%z0SAosijgZELUNg!+1>6AUDPoKqr$)i*&Kl!tqynU{qeh9VxgkU;<$W2t ziEV6tSFPG0YL0<f^Vr}u92pkIadbB&!z+LwCxYQL!R&(_4byg^v#F#0y4pq<vtyjo z;DZ9pqNq1$1*BXapYfj-2SYpRJC>b#l6fj8ebnkH?!Tc2UIkRl#X_+&Yw;RH9CU<E zTi|OEk*$vl7j{19;BH9hqQghMp>Q1HMw8qKxU9TF{gjS3(@gg#e`?g9+zD;gt53Tz z!fywE9}~kC83|p!eS_IHVeIh_!8*Qk!mI5)l$<Jb>eK7dn{}?AJyML@J@uw<(;*_q zHs1FsOo!ecPh!|1*Oz58i>c}5aZr9s4-I~<AMUN>n^?c3)2-X>9bMNVvC^CmUiVYL zDc7t|NgtvTpIOKNN6+>c+icqF`&52i6Tx9s29X42dGVAwnKI~x9_Bv@$9WEwQ!#vq zuu)g~#)hku2V^#u>5bd&qT|IkK?v`8(GwnA8#=63z7E&lc%u2Z@>*}>!Uk!j_F<u$ zc?!7H(x*^03&#?TL9<7jAOVvOEFO(PLG_tQ5u&tq11*H@%EwRj#pu0_b`v#P8d>j5 zm>!@WYBDQ<_Ciz@xhZ4y2pmPSh-xbw9kJuC<&=0Z6Fz72vi^2mbjhx7HgYB+3}JJ& z?$;K*AEI*Y1Xh0@Z)r{girk(^w=|Rd@&KX^3z^xE5yedEoD#!?Q`#w(Jfn`QwPcp5 zGtolVh2PeDkqJpaa`i#otp2Og>@aEfw^i7!^=ExEk)|^zLmFN;>mKI`Xy%{(NILNc zZqX$%eTB7{{w38DaKME)SiMlW@Yn90q?mw%c)ld;8t!)I4N;zFB#jASflfcZ?8Rz| zN#&CeO*jIPe^Au0YiEz>CH;xNk^@zb;sghSnr%t<Dgre4yxRd|x|f%k85>3+?<<gm z%Mc3zjNH67Uy67|WB9V4-21#cR$Mp-jK<A=w_I3BzO8iy62R9&IggJSn)=8GgQz~l zne!~kw|}?Zn~JV|LT{H+;41Yl-`Ln#MimtLJUNZz%$}auU$iKF1CP}Z#1hz1Lomae zf~%W^1q%uObOMpi^5$pedor^7p}%cblhH8Ir6Gv6S*9{vQ`<>r@8q?z1|2Z3a17|g z=F`ZwjdyQYZFhCuW$8|7X05+{%a`$-mLkvDUZ-evaEpga)9#Zmh3m(=f)i2GA>Q;G z4EL}4gW_Jdj+U_+&EIENDjFvU;yYvGAh<Ls%r~8DqSCNLLca6Ab<O<rqnr0Axmi~+ zr{g(Uy3eh_X@Pt4ct(X8E+Q|lTHKO=py;|odQw2b7zlS>FBMu8xB6>`A;ER7XAAn; zG!t3o`6tuMUvhvB<7FN_Qwey^RNm#QrwKTbx6?B6nN2CN**2E0#p-qsa)y7i8q&j- zvrq2YA>80qF0maC>_YS2y}8uz_6m#|FCSz_jmyy__$eIPfXnZr+K!oK*#PR;Elb=c znk;`EuPK^KT*NHP=kfpskv7FICZ=ehc6#KU<-e$w2!2qcfC5v(s4OVqP-WzsbB3iU z?9LHlDs_ZP--P+qbFBzjVretZp?6x!#>{rscUYl{I&yYdO3M;DghzX}cs;B$Fq<F= z+ipOyuJ=Z2PJn`g9;yT3Dyj!K(kWCn<*#~hbhI5;<d%+|p;}i}mTv@r#1e<!eLVXS zMRLVA5Qr`?Po5g^ecGW6`fy_ib?w`Bh5rc_!e9K>HU#>*o%>OG!FWc*_SP3Tlg+5p zy_Dm*P2=a!MOlU)sDC?nuEQQt{Mif1IgXbd-CfK~w((8I-FjLk2eK)l<e~4sM{k}j z|9BLnp)b(39ub4Z*BKgleVv1!fWbxbsD@0SzMs3c@D@iuKXPiq3vOV552B8G<SU@A z34gFP<c7I75xML=yZTD=j`vil`oM@n<=cANdFjYA#{#mL`%W(v8ZGnvB8#3I?^;x7 z=z0tYYZ4BnW)0|PW7(+ejqXuS4P2Gi$K>m6-$&v5HViDd?+jxmg745|9EB<tI%QOV zmgfCsnP9>ZTgeUBIb_vw0Yvomw-<dFPiX_ueaN@wZrMjS`4A%)4XKo7N7oG}%0m3w z`@cgAk@|7aqvLT%`}NFpVT#jQ+Jwe+i#L-M^EX+xz=3skoF)Yw#`p5C%-%VutTo0@ ziAn^EXJIAF1J^AAa%r5PNb&9IeEn<g3~jL>(4iI>FH)-HCeDI>L?A|y=4VZjnORSc zyMW6c_$ksP)Rrp_uMvhQd5-F$G8x#jkXT|PtV>otR>fuN3KV{)@#Xs08}i1c*fgnZ zI5_R~&|<I;sA}Ts^LvXbj@AL;{IEn(k6m0u?{>Te&1a^$IT^2yYkWGM9^A++>Y{jC zuU#pmB{-hBsDCrJ)U5cXW^Op&CihF%^SGsx<>jC(%|~0?In(>hTt?m3aSOJuim?oj zcp@30>bsIIIwiR*9FfLm!#Lu*!ZJ;Q{M>XO)&M$V!pc+eA(y~^k#b(VX=bS*73WN8 zRaypfbgJQjbrQn-;Qb-x86~wttYM7feAUh%D|i?OEJVmOAPZPKEPqXSeXttNMsXW^ zRkwcC8B}`xQLJvt)b`J&FucBVi<6z8*cYp{AdY#q@|!jLy;&NOj}KpvtQv)uRoukW z*mX7khyfT32wuUhK0%*+aDA3ROUhg#;ekgISbh~TaH64w^lx1;;f3_CsOUYO!W#xX zdP&(6^bQOy<DEB!&W<*zZl9-HTlAkEmv(b=qKQtb5}Z2B*PrVrL_WzEP&vz+b8xk* z*xQp!agodx_iNSCjV0f%)BDjCxyQ_|V#mrLaLaHJ`Na$}PY)U%@%zO!69?sNrWO4J zam<Cmu%4Jy9o1jG3ZQfkCOi$=;R@4}heV1exDnJGZbw_DE&<<_s)PB<7xllZTIM<~ z3{`(*(JNZdJJ#jhnV+#g-D#5E1QrpM0f2>R;9`z2G=YUB2I%xl+I>0h>Ky|klkeL5 zYgK@IzsjebQ3zMUASHSik0T;a^3k{5u%49#9hJZ0fL|_m2JHvFA0a=Qc_5k9p^Yv( zW3}dFWU?fWa2Vfq4=oInsbT$PF#_CUx)qOHF(U`bFB}Tf@q+o&O?_^f1e1*5xfXlB zv!LgA(2Mw<8TI~qFSV4Gx~@pfXLgb^D)k3I$E><dR5q)=d5VISa=bafQBc#5^(H$r zOkPbHBiW6UdiLf936(amxnYQAJ>%fDhHRw(@Kql9VLlVQmjzy_>Jih6Z9cc@Tvvj? z(Jr<C06QOf<lU0$v6Gm`&4HU&F3WRffs354w=aH(OGDn=g!o#l6bQHa;M*(Ujqht+ z{!zsu9Ik}eH;8xy?4E|BG$3|=W}_i4aJj7JuP{*buca^c1RiR5{14P}<G-;(^J1Uf zU-$AkW*~R=T;hu$4@nw=C?q@o2Kc>6@lOD#2gn4{?+X6}fF^)UAOXMyWBvsGrq$mF z0S#PW_Gk0IbN(S7|G9ZF)PI8G#ryvSvKI{bjoM#;gr3V?x4_>uzM;my{(BA0_SJd{ S9PEi;m5hXfc)qB<=l=nQi*5)2 diff --git a/docker-for-windows/images/settings-reset.png b/docker-for-windows/images/settings-reset.png index 4d94937a349a6baf695e47de20ab02a3bddbe307..18c5b5ecc61ffaf7e08d02f8ae96bc9c4ecac7c4 100644 GIT binary patch literal 74324 zcmZ^}1yo#1vo=gZ2nhs|;7&qtP4K}bxCI&9-DPlx5JGSm+}+*X-DMcu8Qk6BBgr}M zd;h!syVqVbte)=b+Evw6Pdyv|Z_*+tNO(waaBwJMqF?3U;9mZOgL~or>iN^iS*5Nd z+%pn<v9J6JPS5tHWijF2VIc5-IfEYe*`S9#CpH|;o}TQ9BozbO(TRaGu_dIzPk)n& zmBS`=p4P*8ks<#6iYEB|sSNu4`TrTx?tAt>h7$kJ*}M#Oq`<0~hJjr6aTf2js)L4< z$py#xqMqQHWi&@pOz(H&Xz^E_J`U<-@7l!RsRZUVL=VVba9C#0mKk6q@8fOzswvQS zh>ifRAEjU9r+`NuPZe7*F@XqX0dI-et=CW1Cnptu>+*CR`H<FCS6AC^4g-Ne0|VNM z>_K8MGZV9o^z`6fj-TXxa4D{Mi*pMx>-J#>IoDK=;>se)(w_%~gX05py4Uj<m$EpW ztoBB6{xok!bH6)XF*4|N#=R)x;;8zH8-9<U=NCEAAwFBSWUXLG--{mpw7FFmy3fy_ z-Dk9p{3}HNXd((SL?vJ!wXz)RO+a%{{4Om~vNpb(`+_Lym+*DTv2*{?dVf$-KMc>{ zU~vgYqf|$*>eq{l5u||OWR8NPgN25ZsP69Ut+9a)k)l8?w}-may5DYny24<C%*@O$ zNDWb%DfuZ#_ac8xNqqJB!6rI^c^#U`5)hv=IGZ&%T|78<iN6zXp?0}gZ@=r`JAZwv zKS(md>CV{LLd2nP=@Mxse7*17U~ppSOroFmS2i3efJv!X{k5br`^4$`z-$jg@g-Nw z-j?lY4L4KWU00uw=V>|6c`Wb8u+k0fx78DmPb9m&D;>mcM{NUNqAD)>8aNHw>p4ph zWt{1_+!qzaiZRUmrw7*kTWS9>j0dy5ea@l_O={M9wq1hbv}?d+XNnNm%+k{NEI89E z@;lq!wKpW717dblIM1896=QR2$;G7`#c1t|rj`3<1b9OSOqO~GO;ssD9k_BGX!tle z8!I%GZ4u!m3oVNyGOAJzG|;W;q;Ek7FiZS>EHC0<w&MHY!}|yM5uUjr>P^B^R9Bhf z<f{r%P*G8l_ZQs0&6X`S26ue2lfoa95~C)s&A^^`6`KA7^4ZWGPq|AfA0?XOtp39L zfF`-ulJ4yK+xk-GLMfc$=R`4kSVmEIxA-a|A$J1**^i+tP6=?T(?SZ!c=np6kPS8z zF}|DmA_+Xogl407qY>pPO({3=+(0}SELSu*pZ1l0+|yo>I)as|3{a8_gw*&qDVUSp z+_0;~agCZ8XfBf1VTW$W(P6DWs?g>SeB$Mhs@h_MSlKWA-7>Wwx92VeHk`z%q~5r8 zJO$PwsyPUc-J{SgCl2oOFxG$YnH=w7a=c$rtBCR#!0=OBvaw&(%o<@daLZe@qk*u} ze44ylgHUBCdTtd)MpFB0-i&>+%C2AFgb{Jk2QqZJOI^q3i?QLZCJ*R2B$7I&!2j7< z0kGzk5;0$_L2)b05Gbx36YK1z+LooVTbvWcGQwaHr*XA1kr?POC1yVx!lM_cg<rkn zor~c49(-~8o_>AoSllU^(K?RNxDM?z19ksJiH!8Gkrv#hvkoJ8LycN%{sSR-OoqUG z=QjvLS?8&}b#H=)tnZo;{%p<{#pD6oB%K-`KM`1-H*h62OOY&ziWD!439LFR;5Asy z9mQ^znxn0#k=S7sgU)VZEhU!k2*@dF3{EV#@3W-&M|tbbf2`hz-(Z^-=XK>GsVOUy zJ&=<3?3EJ+|9wC&XBQ@-Gf%Kuv##FYUWB}vfqI&9V3*=}7qOXt5X0mnDduk8aGC65 zdo2|UqkV;B(U@nfLI!bMsVq^bvh(>4)DnXkJRgesM`JH)qw%%7B-qOWiA3L&*@5#j z!;2nG>b@w(YEg4caHFibMii$=oaTWhUKtC8$Zj_^phCg$M97A)#%q)-DLujavfZ$U zb6ykL+2fdbIz*c<aT?1j+k<#>^E3Z~#x_4|Euw+>n(FUq`?fCWlGqZV&X*Dt8LUgg zvTqZ@h^usF;M6~ySqF9BUl+vEa#V~DvbbU#bq4MIfG(&^W>?t7HNH{%vPGLeyc%fM z%)Y@{7`k;9V(4(UC^me4o?nkzb25aR(gaBqdR%fELVY{z!u>Z0c@+Q=M4N}CmmnCI zQP%WfIBXtmV_Km~);0!H(>$M;GwXvPup*-|kTj<D;Iwob1s>|Ft35s&WHuIbF2SHe zZk2Jd+y#V?=2UD|Xv{Bu&NJ;6InjXZO%e^Qz5lyM7>qXUFk2z67+ew4cNA5_q&O*^ zvUgR%dkcw<-p~^X@y*<`SF{g@p-sA>vF;CkfRZh&9oqxeE(*Hs4A~!iC;&hv&yGn) z{<Xwo_){b7zhaM8caYQM$xSzwNR-IS07VtpX2q3p0qH?_xUSkuE2UzH4U(V?(7_9t zeEhh|Z_V(b41>7Xnf5%oS1?3rP`;rD#ahWvHC)9$dtAJ~#&5kqm1)9DC@r=ZFPa|k zu$MqI%E~kcXM#rrBWl(+W1=i6r{yZBChHvZ7cKm(YCG<JMX@c3PV+FZC^a)_#mHBM z$PNT~g4JVO*<;-&%9wA`2LDPPT^mHb;q7a>UxFug<$f6Y>UcN%Xs<Z%RqAo={$ttE z0FSLSFK#$4npT)P-Frw#w{(d=$kJb9Vb#uYYz>Um5~Q+t;?#MvKj#=wXKB^Bqh@5- zo^{_Ck*G5QO{pFDcNa;X6Hl-N0q>`l)n69<=`r7Xc+q)Iub)Y1;nd#E<etT}=b(Js z+`zD;;k_`?4c}@gw2XWmm2S27&D_bXN?q7si3sNM=p7Sru-HVyy-K6^lfbZ@S4{d5 zdN(#S1y{aK{r5}|yCn8`c}A!U33Z(fj&qXqjMUUSGQ(mBduh18mF*9Pch6y4_E&Mr zIS8yyIU-qilYu7FtGBX-4yP~3$%nv1jBm9cWI*I|+_8smb((|z9yK^#olqv?QzP&x zy{RkU!_A(E++#Ac+XpFP3Hb_UH_Db;dV8hWk$K}14k(X9M-w<PLwz-x?XAky7%w-z z=k|Ek)4>Hoxqf<V>}qt6u73&2rw_gM$l2&|O@?u3%JS;EorEYI8OLvI-(-9I4I{o# zCfo}dFvLK=){rj0`64f|abD9g3zDLxX|^;sVM+Ji%qC`c?Tm;GbUw6Yz?O0llN49? zbr44)ZukVHBN^qVY@iTyJENQ5eUMFm%r<G}IGF+vL2*MqW^$v`v50Z=%W6yH)gL$p z2j{d~1gEFFD;;&3yfs34dA*s^axn?FKYA|VSYHgXH6v{+{WdI{O#!e6N}QFem4w*6 zC9>RoxX7o6Vy`w!+1_}dY;**K_GM<@7%B|uff_f(hL66AZ!RdfA7<fQ+8;?d!~9<U z^-+Dj{9>))_?l!v;w8qRzlS8KJ`kIs`AD^8R*$W?x<9XA{7YX_-J+&iNlODqaV})F z)@GMCP|e16D}BT0wgeAr&DhK=;uiTZ>o1T=-4v6anx4MupMx(4)g-r2VOvSuySgNB zo&%#eZ#5elq_wbOlu4`QaJ42_$sZvr1C}qd2t1aft_BBvK`Bg@q<_N{4y?{r<5D_D z(L%`MBHLE%BbCC+GH|U1ddPNq5TRd)^oh|QlP)X1&GejIXX`e1**ZVA$sl)jB8Iqm zzW(dBFj)O9+HRprURwC;rW;j1GQ%0eV#i^IiV-U5*hD5{SfV4z-beTSyu85S6kdi) z!Xbkza?a3fJjcYp0^r1oDT*~3s*OgH!C)}3puD2OcER#;EJK9%;cD&no^ve-zm+;V zxj5`^QGpXfZSkm4h7f8Wd+ts1KjVYLK=_>X6-@+N%I^AE>owss^Dn;*p9=dU|1Y{0 z{}b2W{y6{t=ZDBYQ2p-@e1Fh6+}{=d^M~bTa6t@Q>~Ae70dRlhilhD!`LyuQL~+zV zi@m_`e}?~$S(JePW0v-BwaF0wsPQ!Aj|PzhPtxGvKKxhKpT+;~_`hU54gaIp|C;56 z`y~1wSx-}*q`|>G>G*pKum8&Wv-n@_|Cg+%;Xlv#k0SqLmf?S8J#F!{?5Q8<3;$U> zQ+co4^N&83I)^-7@#2>}Axw0TSeFFbf<q@)g9bC5efnx>!Pe~iuJ5Td<9h|#Y!03D z4$qKT>*?$SN<O|26(zH#Oe1^Id;1nq*8#v^`>JN|kjW@E3`P(l{W$yx2vsC~wdTqJ z2*T5`n)12K2+tr$RDb?`ZQNj%*a<8MhUfbSi)>|PR8%ziaC2~QN<EVBf%Qlku1<wd z_HI}=6o|kCU;?<O`}cLnCy}@~y*O&B9j_W$6?~$al-;bNxbSUZI^D`Fhs%%EkCd&I zz;Wr`BDjKhWoxgeg=le~V`-$TPv^(|+iKyDea}Ap4Iwz3pl)*ags<{3pNhm8<g=ow zA*9qgQ-K6=)e7<j#a5;kOczZ3&%gxoPOirz4KcYP>bQxtI_5<t!GO&jydR`~q=;Um ze_O1_d*kfj=tR7reY?sk$E^mBStQe<mwE<Lf@S4DpR0ctrBBVM1&6$NPk8b*Jki4t zXbcM~?$UO<EF}2Q_r+#$f%{;yf&mGa@QuNLZSr~R+#WjHUC&{vo2?_#6f}-+z%J#E zK2#-EfN#8>_kFC-6c3|{qo}xUhA+iYnL#mYP*D*m(nVL+nYg%!p#&m2%d6{$mI6^# zir<QYBv+Gp%TI0euC{DML2ys^@9T5q86Dk>*!M8K+v`OlBZr$;$-D=tS1gV3D8lv{ z5t;d{68U|UN)R*!RZnqVUjx${mI`$`#i?=Z_%n=+L5*O|UkYzfdd}akO$%xlgOKt; zk=Mou1+T+k=2Xq>Nq)UQ{%a(`lBz7g&EineFp~xWuj<A1k~)RkYLm4CENQo+4j`yk zkfyGdLRKV>MFZ|cI*o^*orY^a<ZW@lsIvNlKvH?x)y*m;W-O7pL)_A>Nh`HR>*ZN^ zcx@d#g`%Kp{Zn2Y5g68z{MJjcgxep7JM8(c*sm5tg*n)-{YWKZ9qs6Z!33*TGhFQ+ zFOo3h3!pQ)03BGU(}GbD$ZnlCP2T)rcb=r)l3@Z8eou1&q2Ey9{V4MeZCSTYd#Z?& z194R9DRLT1{&6`U#9Hjj$U=6AO$uNo^D#ShVG-X*TA5`fV#qd!nx<b;FjRQaG(mM+ z$C?>kWLxTJA)M_Qp@xiah7V7cwg|edZ$SL>y6WBAy_j43(I~1N*)gW-nglqp5W(%P zZSx<XKy5ppkM4x*ZHpnuR++c%uk{MdOysW<H}B`^1Wffl1w>VTp~b#^eWy@VM4IEY zVPYQ-l$8M7e7wE1SbFi_6Z1whSa^S(3u5LCDd<T91~3YLLgwztv8l6%ba(UCvc2I1 zj85YLS>uB;&L%H=)dZB}Gd{;CkmUH>pLn6(&;ZKwe;PLZ_UMpX_%^l#B4mwZerB-? zAHeWgGK_+C0R6|6%=WOh=X^x3wS5txE7nn=jCd%r!y|H%uAXJ+`{bPi#|vVYmpxg5 z4Ve&gO-IEwx>~w*aS;9DB5zI;&D9qYIt`&XTr?+^xgEtVtZb)~l9ndzWv+Ugf!`+o z=e)Ll7}G>#lObAUHWI(PS2N91CLdM;{*qfuu9v!Y+pjFUWJo65InQS%rl3`NOIh%G z+5(6O3b3EZs48FyrpsQ06Qe(zz~LO|ANGt|jk_J$?;XKjqSv=u%5rb=S>V)Nt<w!b z>#fRp@rg@-uxJWEdOLxmIYs5FDdAdVfRa`#;&CR$+)+jwV`OD^7+{3BP^XwHZUs4~ zEkhHt{7ql{IZ>%Y+PP3gU;(gbNNTS;!=442up!-0>6s%Sr%W{*69uE{4**4IxeO-P zJ`5a>Soyu#e#jrXsdlT2CZD2=Mj7Gvaf-t<jUQlo22R{JDv|~7p4uXZSmnHM5UNRW z?fH_}cCffwT+Q;77)8JtJKZ+@`v`kE$d)uN8o$`?bxY(64}CTtg4P~p<k;Rx{=gpr zag)|Pdm@4U6zJCH&?~>R7}PyLP0!<YQ9*w|dC0{@=GJDiExEjpd^EOvXojGs>W5*e zQx#^{A=ntMl_u);Cs;qTeI+lvLHUXVs7phv_?eic=!ZU)W=2yP-6c;S>7684Zr!;( zl6{G$f6y()fwE!UXlUb_9ejuT(toqfXwFa7jgz(}{KV!|zs|8ql-=x5&KAc8#k^V< z(q(~GhpNgS`!;q8(O8j~`Zo+o67rxO@jR1WoS=Qcc>W6qCO;iXkP0TADxKML(mI}v zG4%u6&{_lGpK3EKbxL5pgNEtzx50hxEoK0M_ZJPtuS40V&jZhu@eQgxc&KG)&~tix z{j@f3ot@Y@L-4u|ngdALKKz>s-`SkE&*tgnb|UPbG`GFY{8(!b>EW%jS?|TV?CkZ+ z52z6f$%cu8#;Z9-xOUbxHPvxkA1!AGlr=Q=Z;8TpM_HL6zvitk*e_H-*HO^mqL=6& z`fPrkK7<oag{h@v1yKV_w$3dv%5D~_wrmgNZwyZlw&>Jw`j8*emuxNS|EDf|9hREN zhP7_TV{u8E1_-zl3!1#B=UR-8yX`6s8rU(|hGY8kbEFhhw4yT8T#h@^F}~06)lr>l z5A0Mh2wetJJyRkKhJLb^#p}crqHglzS4W$g&dqX4dXXBPidn%zy{UY}LDEJQo$fU9 zjE5il?#FlYt_byKJtzRey~L1;w%w=1$>Dl+T;k`)iwPS8%9UB$^Zgs+9}e2MXZfM- z-Pkj)kNZz_XS?}T=v|JNS&Q@*nq0nEl!=oKgGRB(S5xZTj>{g$ovF%X#LML=VM&WC zML;U4!?$#VL(z&TwxQ_1V1RP!S<9$}+2>Cgh7I5V|HGT2ZaffDH<b#)`wGr*<~bm% zCb&s}1&l~l>Rkq)^g&luK=9B0ExkM9Do^!8XHy0{GY99)#f8FY=>ix+jOe**<ZMU) z1XL-wIn-Rz$M^!HvL?l(>CkymUuXLk$jKH9E2_#yy6+#=h*X=0#Yk+)VN{5p+WK5t zw&0X9QHb&3e~oPpTr?>x$*AMfaMutK@$;9USkTwdo9aeAS(!IuQ7NQUWGs4_@jEx_ ztTuWsHkF_K3d6MqS7b7}sLzFw157;=Ia%J2^sOi1bu{f4tP}tIZ#hgP^>wZkjv~U} z{9*>)Or&~S@<NFUb~{<5%w}P}dWuM0U_pRU$;Tp9y5t^ptz^S<UpY}Pf#{Ic$(80I zQbKl(YvkyhGFvTF5LtsC%s}+BDDDoI&TL^BRtt5GUUvR5Hf^|*Ze>E%FWK_0G{Umg zq8}%vq{RjI{o?Gr`RaHsn|@@$5@3RS>&C?6o(HTR{}reRoSHCgjU)i86KB4+T#!B3 z479>#gqH+Kp0SzN->fBnHGCD3Xpk9Pvs`UgDpq_bL-$Ba3V32y|Kz^qQNzy!^OX+g zu#tmAj>K#7jmbVAP9+Y%WKOXJz$pK1t|~862x@@k<@c*PF$SuU^S%9Vu_-qjV!h4) zclk&Ov0~9!(U}8|N9~AW{=}HmA>J0QDhpeWo!uNZdh<k<W3QfgB-!`(+x4dV83owQ zacu4-bK_wdx5lNzt}C=9*V3zZ1j7$mW-MoA*1%EQQOh@WuNEPZ>iJ*el=7mCP4QLF z$@##$pZe=U_nb3lwdMtxqTXBzzlv#D%~kk~kQ}hNYi`j(n5yd14iHmN82jFDKc!cx zlWqbrD9CDJ*^|X}Sst_(uTd=S|6gBD^iDA5i7U#EC_wJ;ngmNs@In{~_NP<B{b{-o z-YfYy6skY9m|NTh*faxybYF(cBLp@3cfZ?tH&Q@lD`<wrsW8aD1?f?2fJun=K`LiA z+n;vaYh;K~>>R^k$lI&yLNojg?(<3Hq{7@#YRr#4sC&xWcU%1`vWfxuyEgXN@YN-8 zT=6g02QMcj1Os`RB)JDiz!J3KkPB23gM2hhi0)@yIaIM>R+Gw0ElQ^{C*GUD2njxG zr_g1%w?;khFREET8m!*A1|;7fVk7)~ebT9M@<PW=CTD5xZK>JJL*vzs`E4>M!9FfQ z4837i4+0{4=)?O^?u-<%;gc`;B!VxTxu;I<Mw5$StE)#o(*FUNeBm?{fR*lJL5e$8 z;>!iM_0h$x(z%mzIUCK3{$t|g-KRr}$%bUKd2vNgcwdvDHfd6rf@@SI2|f89vS{@) zc@5$Ni^N>7n$6c+#9t$xFXsw7*gi+z%??HeR6ov!w|>&x^({%yy%}pIOcIhwZNRDZ z0juA2d{Yynm&nJx*e4v+bHvy%9x5!%P8*uGd`=2Th;6@3-YAArm|EW9gjYL`o#uoX z1m6Eh-Mb8fz53M19(t03(iomRg2BOfM5shZd+H%zeh7C2FY^~PAMNz{5Yi+nNnPom zXO0+8O;pME6hDq1k8apI`bg6f?^@q0!%3BuK_z7szh;@Q4Zap>np9haagid#RhC21 z)~0<H0hK0055dKiTAe-;{6-FzS&p=)c2>zhERxwQP8+xVSnFPE3DFD$&=zO~GJ;X9 z9MpK-xv~U@rHF#|3D1<-`t>_JzeP!)(TGn3JrhF}J4nJY$aaPe+D!D;*bIAg=E{Z) zd)$5I|43(2^$#94{c%4BAxPx9*6BktJQ@L4w2OiT?~({;*?MosMC+TpmTNus;`{67 z&l3wiX%yZj6DHmX+Ez{5U@rS5{{wEssg}0Ojn}V2tLbiyCXxzDQhxBX*k7MrSmicY z#D3A4+4O8_d+Wyej$$~cuZoGY+FXk#MYFW4=#sy~j)8aqb2D4b)4N#)TZ_|T?*bFq ztvOi`I^uY&^i(0X?u!o;!yXvHi!*0X1&$bxs#*4Q$}iOIm%D&x_=+Yl#sp-mbBnwz zYE%6VUK$axVm{4<QQgl^EgBpgc%IMSM|kc$=6=NUvLV#4VIS2c{v)I+?oVQRP|Iri zbsWp>kCiLDSSR3PHPOBm766jhO*wGT;CejF7(SRaZ4w3oWlwHwrg!{P#$k9UL+1xJ zXNK(+h%4CA9*6Svy<(42jw1wVJso6Ro~33`lADYNiA~u$rbk&Z9qDmo7bfG-&~qok zrqqNw*9%IikuKgh5GZtKXP2Yy<@%PaW&BOHe%bd0dHYyYhpAs^&drUgQydCnsK1e8 z7>s@T(Z=N4_w=q8zg0e3qBuD?Ki3LzOuC}lkIbi~sb1s(f+^0_IHqhbVB=gLflLyg z3cwP^hrXk!dS~q??z`wC`xnl~M<MwF`rITUxCi48Nl$RU9;2!yms5$A9YBA*S91A1 zM7Ag*CcfrpDp|pMrSFACyIc43Fr@~Kmh6Nx4MwYlvtzTI5WsR>_6P2$jDGugah59P ziVLeaF#fP_!SAZ;McT7^ztmoE{b-@`hq(E0E)?`s!05HyBtt<JA;xy2CCsJO_A7(6 zM+s-~`!-!FeU<HJ2Qzv+frhdb8Ty9qNZe>4KbP-f?wKUsnQ@be;L<a!1I47Nr8>%d z4~8PF1KiIF>(M=u6^;kR=&zyI?hgtF7+`^2_m7q-9Fik-bKB)d{cQ_p+MF)AiF1)7 zEpcqz0M;jNs^anlm=Eg968AQSld=eV%7F~>Kt>co!lb9P4-bc<DGD-=o+D7x`|fQ5 z>0=ZKrHwl~Eh;1bZE_q3sOkE}I<jKO?a_}C3WTadE+Xm3f?`UsVApsIOn&!Ztg!Lb z$$gp)i0DH7_L@2YFDjrq6fNPLirVD$dBaoRhlzwfb7KhDQgR+Sr|Rqaxn!LJ(CK1F z#7mNQq>CLAb30yM-EKd7;bQUHnc>sHzD5n#-QDZ>iHwplCk<d0OrW(IQ;+cbrKOdH zCF{8W#1s>H-VVa-V&vB%lOD!ht8Fpi+$3`h?q$Ib%5H=IU3N+9mg+P-y2+T0Yhthw zNL>%8*?4kuhb9<C!|Xizris-qa6uw}u>aMilihxMyjY6GQz3<}eRHTl*rgUJP?<p- zG@$4_RH=yFnB_8*O7|_$L{4NKO2Wf;5Y&lUG^X0E%DCk+lo^(B)pK5AJQ4Pz<g6<E z9Qb_6M<OS0w+QF5Z9l@#cqRWjqY&c;9pi!awagXc&Yh;`>6K>PHPLk7Xyf8*t<b17 z-dBqaMRl@9J6TU`PZ{(>feEF;gg(%CoHV}^O-R?@Sxcec=!_{#L5!DbdhAOqsfg8h zl&wB+=O+8&l92@QH)$aX%JAvT=Bc7&6sYkSFBm*FTr6a6Yklkq|C6E~G)xPsj2y3v z<G60T{LJ`W+ApgOaw+?>eHJmeke3*jOrY4r5Xce;tVJ%&ooSHSwsbR&2OLmO5LR>< zoJ&f+jV5}WuRka|wZWJ|%OHwlP)-yqvKY!7Q&>kMA<pj?indavXp9}jpLuOlSs0~R zaX89iA{WXUa}>)0;5fr-7=h2Z2tift6vyXLFy57zkSr?~R$TZnHi1Q*e@b0t0&X_i zV$UZae65I>Z~@X+6|&GXQ)_s_kZ^E65x@imQm6CxF%C=Tdc<v>9jU*muivqGRwQR* z1KK-Hpg@%u$)Fa=l1z-q-pd0qZwv2=RiLls1&+xtRu4Xc9h5}<-35>p@<L=)GNw$9 zM+$4y7V5^GpDNYr;ZiwQT!_Y7*TcQB%^LbZTgVn?S6pA@qw(=}n^XbaNKi%x$I94t zrE=8=sj!5*^2X1B^a7_YW0wM3RG>(NYo284xQPi0m+{2rq3J>^GYh8bCl)Ov<R?~B zW<I@|st|wCBX>y1SJ}%jjR561#q4yN$XqiTTn#C`K<`y85sELrlXa^#Klqb{5dWI9 z!=%$enK4Kd^f>nWDUF*8<w%;{ceZLQ2Pi=niGXkyf~;aFI`5jR)gW4@EW4hPKT`6d z=P7ey_mVMiyBHWqS<~b}Ae=W`jun-?n3>LXp`_}t!?M(8-%fGKkhqr&M&E>FSrYMD zClOO(u75Mj(0T$3ZrCHoD$JbsK!vLEJJ(Y?yg22=1S0#(*`f%<PgWY)q$1oQ533Pj z$aV#l(2kHOWFbJDLi^(VNM^?A{`binL)+hZ1$mmR;GSpNzJysVMmCMA#4^`ne2T5A z9|$dZf!lNS(Q@~>+r9LW%u>C>nu(pdxQ-1#elB$i|0QI5+E(`FZ`L<ALqE7rN~&5S z>}9;q5%}ArXN<*0UAZjXM43ING@W{x-h|wEI0&GLK7WQ?Jh@=H5b)|1b?RQz<)SNf z`uE;<n3$L~B-D%w7>M*gDP4VB0}Br5(w(h-Wd%fkhw`{5UwRB5!a89oo&v5Ln{J2q z`TcW}gy_1($Q8Lg<>M!pS(}zxEudmvS~E`j&uR+wNXQ!@Mu%R?1p2G2J#?i&f*RMM z^0}#}W*=$wO|dsAVQ!QCnC)`P5lQFng_VRD(y8}?b-EH?AOAF6tFo=0x&FmXl*s_L z5{wv2rEY^}vzS>?uurhCW-TOB`PEh%BWLY{xFB>G^H@`r+Ch9RecpnBjis{M!Bz2W zs9}=kGKH@d1*_Fvu!8z4Oq)rgD@)DDlz~=i(L@`MT{qLC<Y8xClUh;?Av+SS=JJh) z);SNa8S4FzvQ74Yq?DD&W$g7A{7K7R9_uXy6(LBM1l!?)=b38m&Wl&nfEWB>o=DVy zRO$^|ip|KtF8~G5tM4D4?nf1RmPucgof?Bxa!X|bo4T}<#q+=qUD}Ko1O%eY#;TN@ z9`9UmmQ%X?%0sKA(%PBLq>f*IGfBg88H$+;RODr_u2p{f{cWX2Vkml0QaktVaH2ZQ zQcX(^PF&h<2wDM6(Eaq$!YJeOq|^N8wJ(B=_J*xf3k~*luxW30;!T({zx6%$mfO3K zl4M>r8yDwaHA$;Zxlz5MD%U4nwry+xIvg!-$6KAgtPQIpo3MONSx=TtyNsSheP5LW zU3EZyErHJ`nTS{c11XYna&%>obuTRd$qY$IJ-Ith{C$e}CUt-qmA{yDhHX@=n?ZA- zOUuXlh$sSksqa4RN^}}!W}63%;PRilYzK`l_rjwZ@BWx37nW?8@Sej1ho8*vx1C;{ zXu-NFa@5eVJFX}s^V>gDu`|YE-ZLJO<EbN{Ail4LpPORS;-)|vN}8^KSVYV1j0?3- z`ZDl1ZQl4&vf&5zed?e)*BQlph>ONZXy!Pc%;JrKv?=VVtF3)QUf{-$7?382Kh)O& z7+_3%C73Ov`Z7v*@YbK}%Hf;S)bP|sw#5-!;(kF+Gs~Baox1EznPje7*Uig@8m%U$ zk9g|)Bp;5Gn><`shC3kGEkb?kY#O|Zj$~{4K<z<tXO_3kh16<t{OZDSY|15<7>J6* z_9SLVJ~^U?S>0O&ZD8;D#Pr%ow1^y0oq-C{s4W7a`X3}f^=HYW>;a?~3i&^dUgvUD zS0c3>?#ZGTMk;Xcsi${*nzEGQjCCxmOus4oEO&WRlCAarALDs(U3#X%QXA|&L0*%! zZSdFo65G>Fh@lWrz>>P#!3^8W1J&dt8flqiqhdxU>qA~w9g{n6AH;&#+m0lB;^v!Z zSIdycyJ%~X+LcDwJ!Xw&8d&h%3;uU6t`BV=FN!`(z`rUNLhdlTPCruh3xJ+N$%5B~ zq}IDeyWtAvFD%tjoY_9xk%%Eq(zaT&24yD~aM9(<Sv>A7;A1O^yo{5%=@OBl<27=W z7y5E0#AjyeYOoWPou5>I7VUS#=Ys0c&0Xt`d14nW@8Qz~qLN)Xa&5h7GdQAu)$qbo zDJM?8u`=gST=OMQ@!3_leISW$BSGs{Q8MwQ!qcnx4XG)m3T}_<`jw5tu1zcV2ynwQ zar%8xlhtZL#gBc0XB%%WHJNN?-bcAB86|m)nboreQ&B+8UJ6>E+C0bx7*P*_5F{Kw zN-=>M$D#oJ@!a!~fX>)4nS>enU@9h`VI>{$JTGvDIOVV7AMGJjZVKt3NSsEKBheTI z!%GE18mp9Yn~{o51_UjHzu_xhOg80zL}fT5(?GsPzy6}v$8Q(o;&UL3$+3ZcW4Txa zo%UzhYft20V#QHt%h5p`tfhfsUWVtx=6Jzym%-HadvC$t#^-;RdA(!Mo76V3lmDw# z;v7>;7`80*s<y4vw0qWI4lSdG-d~dtSKVRt!=AqxEpJqrgL7d`L`gHAQ>E{);%Fff zeEz;7s_KUeD>XzafD()EpgoN???MQsP0Y@~Tol2)vqXFQj(ktsahp<yd11>6Z7ndd zglT?LG2se6yv9)v<Z=T3)KI;*6kpEcg34YiDiU}GmH4QGXi?PVcR_yv`c=wgR!F(8 z`|HgUH<yj@QmI8JT-`%WoWA72RB^_a#dq_&%)%t4M=|i0KSw%MgJzV{^%Lh%(r|Q4 znBsf+6hUPT8RZ2&(PE0i{7;32WTesWGfw?aPk-5>qPdS#v6^ieN|<!NuEb5l0LaW5 zyZSGg#|lbz-k37E<U+Cx!|M9qgrErt__r!%T4w`l=`5SwwY*aQ1TWcClm_VTNVje2 zB$Z2tBViOc4MFcGwiD`sT8&4L*@@Rgn9xm?6C#ek()htT`sG%2z!TW_@o%Djd$9Pj z$)JFlXMBu+wbp;ticqP&%9$gV+t+lWgOe?Xtjpq;zZdn(UyXJ7G|E!fLnhgG&nYA* zb(Ha7Wkze%-|W*9_;@?w8VPQz^QM8e@Y<#<R+rT>R;b4{C+L1($GE1^9d!@srzsKT zD?glQ_g5{v)-+Mmqfj+Rq$^HX!>-Mj@|Alv?SPol<hm~)YZ;w0dA4At)aZVydgR#p zYq!FPp?KlpUJ_Du*KM|x3X@K5a=tRR6^1mi1cx@6E)5rB7)K+ADrRX<=53CzS@cOd z#|mVPgpd{%ek299eWWk=Ku1H-ehRG8-fD&TD-b$yuy<yy|F~kx%tfF0C79W2UcRds z(1nz*!)2mKDlrziC==5wmuUmM`>w?2TmbiPs3Q|+)ooVY1;b3m5o{)<jN#o+IBGy| zkvc^DCuZ1a>O4JU!ucdkO#hSFQ()_-Mx2V|9K&JoW-nDLB3vE$?@$J@uNX#c1ymf; zniq!Jq}iN~XY25$DQmts5Mj{rHKOvonqf26_QHB4+O&Q+hqA)*&M2MCE@r16KFH9= z7`cYk>lqZ{cj<xG=`*nWV7<I?q(QTBrP3RW^m#m&fzFG?c7JK^0e=}$0gFIo+58#x zX9m55E&E!XnPYXwU=w^j>{ipp7UL+3Ca7CWX)U$Ah~>m83aa#}x*Jx>w8z%Bb%ZU` zt>P$7n~M$a?72LYOI_2Hcwn_@q-Q=%Q&gsuq9U8oso!o0LEu@80*ZLZmrb}i-Xz?5 zC0e_b=|uRT-j0b}^vurj(02N~_}cWJVd|GT`97ZHKr}RozT+H|2<|*u1kJ-4WGoAp zhdVPp%0D>bsXWqkt)y(T#Gg0kB&ij1InFTrl&>PuX;3?Dsvfc_A!60~c@8Q@pC&9y z6y6DLX||}w-QRV*uVpS?pK03I=w5|yx3F%S(U1kvN%bLBKCRZ!v6?p+lUj+k?imW- z(aPM??+8@;_D|&BA$s@X>=~%x?d>ybpst!U-|UPUAqCEb7+5e24iy6I@5JTp8{Xee z4DsK8zcnYrVMM86Y*g2J_HtiN5P@{IIHjQJxKFrlPHDIeg>GFKP|z<pWjd6nM?yBW z;<fFgqbx&*S<7f4L~wUH@Syn4H}ww7dD?r~M-7_HLv@4Y<bFA8P-=*Zq^!2sd~a?F zgYM4WoZ{CUoWGX*2Du<$X{%g%hhoWKfMmA19PXm|zK`=nyhSHweypN~5&y8b&=n?s z@50(!>p-UTEVQV}=t@5Jgf?&cZ07XiGYUD7dWk}aCkIQm7Y}dfdz&!K*gl(uuWC+j z7Qd4ca<7KfI^xk#O3>2!y|?*=WuI7?`J*%)uajWjn{hn3TMm3s(&Pp`V6#$t@o3TN zArN^u?`tNMV}>`P={z_7UHqWO=Lx-t9{_bmH$5!A3TV{OV!v_8)^a&lQd=1>;%(s^ zqP=aKI#k2yeB2Z8jXgn3Vq<}Q%@-j)4B_~(t)gstsnoEc%Q4;X{tJ*!`OxbhER=b^ zz&TCnXsoo;5Aa4#EJ`$zE|bN9ucsTHGMO6}(q4b+X_}nNj*W%$V=mr&HXgIAuAyh) zTSSoqeV#!AG{_@fs$1q_n6PXaF4Q<z6^*kaM)j52qZ+EVD1g%Am2iA8=`(H1zJGzD zPI*21ae|2Bf>JS#NQ`Zor{(kkod=qIH_RG|<+MBah7poS-EU=OWo+Dt5m728HQ?SW zsuB0V#LkV;RSVKh?6bT08b7VfXfar7lil_@uR&U2!x7Sx#O11|1=+7Uf4ec+_&L|9 z<hTwD$-n!+NfSv+J`ygA2~mctM;XMkaVG20qhYcmHjng~0kT(i`GSemI<W|R9Y2au z9K;MeN~Vbry+>Yps~fUg9Y<L1SJ^0+d#b1)D>4h|$`QMq5)&UbHgTr7k~z5<n%k)l z6f?U};h>O?-C%PHvRztn5bWkK*rzeJun;1<{PerVl3k_}a48tAl!jC)bOl{WCI%xh zxP91?%Pu~(a;hJRpRB9fr6&}0EO*J1qFd;n@Mm<-h5f-s{11U%9i|rUmnSn2ivivJ zD2kW3X6*qr8#GeO?O!(vI=m$ba@maSOBHc;tv(~?<M7Qb{IJb?FK0hm6BY-4G5IE2 zYeihN8v$py9EgKFuz@!az_)2%i?99?+vmj@L<!O8(&Q^Dp2p!q<HR?`TIOl=vy`Yi zV{3;jk+;9PRp&f3JGeN}MWXuh2G*7y#%fhHXV|r4Uj{SzlkkMofAQ}o8qp3hDDU>S zA@2)fJSaF|W8{(o6b-lBiK(u+#|rFElGOP~4b9;n2u*Ual^9#Z*zEfh>>$Xv2337x zj8c|kisO)Nk0hY1Ggy}+N|;#zSlAW<kC5oH`TA`Ol+SFOP^Uz%4wf6N$O{X7Hame; zg@D^GA#qeW&}*aI`!`#O+xI{5tma)xtIqE|>Chc7?#^R>5Jp78likEJx!^#qe=>`4 z$7iDQ3j_{AtL^<g&u>tu>xki>8UX6L=!UB8XM~6nCP;lrY6bXtcuOCKzk&)++oo5o zJ*H}A>^<>n^k7AS-S5$S{^OAXH>XD)20cH&pP&TY0<Ym0)|#I7d`-|O7=v9IR@D~_ znEw3rn#(t*&xI~kc{i;WD4Y@KI+2)~Dp-34tj94Q(2Kwsx16NQ%PH7q1FP;D%LQp! z&$7P>F|gLm@J$oc(7S{L&MKUWeY$@$0f|88fAnrgH)$)70;XP@WA+rqW8a;v2(}TM zFEppjN%;5T$r#G$i^=S>OzQudX&-yfi8*d+h{+Aj!`@29G=?Gt6)cKO@o<k$BrdIE zf<)ruAx}B1*c0d5sd&zvk1!&c64^Hf7kWT<a<5#vO}0EsMq8V=ozKO~&z5Mm7lDxk z`b)-R6j@x=pVMWksp{~Or&ybNu-;i8(Gw_IW6|ip)!$vFYhRV`)T~z+4r=>E=U|ky z^)<g4o5bzMCa=fhbqB<#L>g;Sg`Hd+r8G@E?ps#SF9P@cOd>%!k@Ol|M=zAP9Eq3- zC~Jt*@hZ!o*4FAp)Vy{M3SzT>%L$h!MUkxAtP(W}cvs6_(AHl-Un7HFr*nzDj_cA= z<gWezm2>35K6(<K;*uEnPZ!*~kT9j^u3nfE;w=Qaw9+`}>}h*1w3*6}$=W$1Nr=C1 z>Dpv*RoSsq(|`AgQ>j}CbAwQFZtDdK8WVZPyWMl!l!eXNy7~pPXn`zv^-nvlz8<f0 zL#G=|?B!w^8d3Y-c53}-+K$V(JzS`LMUIN*Y@Htv((N?eCc2k>mFstT@I3(Sj{l+= zUCv!0chA4^As-#x)(De(vKVuV`IVh%Tl~Grs5VNXy#ex7m7w<e13e8QT|v6rd_cX3 zH?-u8hUd~|{~XnK#7U3f^`J>&az$<hwub`9-@t7uxUdfKt2inu_fBo)lww&I0tp#n zL_XIyP`b<HdenTF`SAQbsS|2RCsu?3N-i4H&pX4U@T5oVA<VZ(f%vGzMK44gK9{67 z?yO!14oz9jdmbHa?@n3qr?`(OtDEg6HH1oIu}r%bu3R7-8cMF>%8~^ubMtoq-pH$D zt|sc#tfm`|${sf>DimL|YMB>nwfKmm^1p-O^N~&6(<`jOPy^>4Jm&Cub4z!{s`F#p zQaqR&udL$H6G3VZ;o)=45l63?*cRT|Mdi#G{*W0JZ93JG|JQ8=*bK#q7F?CKYGMAY z%(=<a6>A5<fm%sQnCIyM6Zmg}+c#>h%>>naZI1GuoYS^z%@N7UCr;01FE|`sHCk&* z$Lj+8+M0E9a*^QUKCo1S47Lmd&w<||M7>u^FfC3hF{7lR=8i^&&;OR?Lh3#+>#I{* zLq8$#w)wqBYh6C1REfSHipQK1GkNy(Z}GO(7KJoa9v4^Pslo1uC%)p+ZfK5P^&rC} zY51%165>(Q5TI4eB=_Qi)8*BSnpQ}j03)g<@4TIv%-X)xc?(0n`;N+aeFsvVjANfk zWaB~FvJ^%_H>?1{oG}}zj$$H~mpSmV3{bZ(9#Xc91KYs)a-9lW7Ol4cpUqy#_R$rD zAq~TZ2gt~PNF|{hV&JiC(Ogtwvl@yV(IW(GdX~A`qGgm)ql?PD;|d=qs{)Tt>cV~3 z1v|7yZ`5mCI?@`^S&T-O+|I6Mcx6VK+|D<S%EWE`vW|r8nsI%NI>T7kFKUQCf0670 zK&Z>8v>hdkLq3?dw30Nd8s^gYW{@$B7UtHXMiG4f(EIj9RAMfKd2_yk{+c0{Zr=s@ ztD~GXVG?1hW54@{E5n0KQ@b?&>Vour-mHJBS6EIc(G$<1LbQ`m{+Vl386FAiLxMx~ z33D&wk=Z*j`16;BC`2pjoNDl93);l<RTWjK(B-F2a5XLO%?yVlN|w9YBwrsqWd*8j zUJO1p>cMnnZ^xqHPV76|g{Pi!HcH)HtnI;KS6j0Rw&fjEHSk@ss(iBKNB7IIWom*e zQyh8U9*sT;$?msW*q9#0CuiRKyESyd!>TcnRUSg(3d*H%AwDOa@0c{M1iva;$_)1r z-5bhvQrIF6%FW9bXw1cdA=KElN=^Rx?)6zK9>Qx29a2NiQZ*qdP0oeehL-ZS4r@sk zD3>3_YBCRO_|7E)`yEvYH-Ma(FzKdc89RzHg-%i^WyM^S`s*bFc-zG`-Y9k0d$Flt zW?6C6$i!2ZWGg&Mz}PClrbR>77WLgqKlHpa)g7Z4&$ocbv>ej*iR}A`Hx$Il7?A1d zKw>@givXRmCwB0Qu4sH%UH4ad*py@|1chKd&7_i2f3aFarHjR0NvrX$d&u(gfLF6& zyZ4uWGih=h&QcJ)Njvc>tLX)(XjyNVip{57&F2#7ITOM&-0!L8-jE$Lc=Dfe?6Ys0 zEkXU7e`p_GBn8m?j2N)AaTVXk(nl}<MXMva2A%UkC93N_m}79v!)){kZssi$&vZNn z{ln+*FSb}Mq|{T5ezl#-f1$ipZ7&w-(@%<n5$sSQ=8uYqT>aF%iWawtQgzPrc^7HC zEB{FTJRe6Jn3zkBNlNH8Da78)(JkV*@x&pFHc-d&-p}^~4U5%Q^0J<DzY!U)srK7m zmSC8O_Aey<dK&$r76H%9KOdim`_fYLr*h)<)k<l^ft!@req2PU?7?JKwwi?nT2>D# z?FGmyg>c(gR>=kLp?F>}$K^uFz&hs)C%>q+sUDq-g5xLVp%jhULjK~{2`(+IN4R-) z)ei2@HdN<tS4~r#lv*zGT`W|tQR#R0c+xdM*P+fC1fqL!=G!xNP3*bK2m`|6l;I#v z2G+yT6miQ%9nrqAwScd;Yne$?HusMH^&dq24Ms0MVA*_gG5~RZaU%9*OXyFa%URX< zrts-1F=s?`SgSFR#6UWl`S7~nF*Q&2zT3Ay1QmSOCsde&Db*j@&+?pGB#JppLha2J zR6~P-n#6ST_<MbhjFv+|M_T<wxz;rK%===6W<ZotC-D}$DpQ}eM_x}fBLB?cQ&IOf z<K<U*K2r2nWbjwki5-p`cZpZjA6(->8VlBw`Nd^Zv#!R4EgAg~p@kS<2obX1Kdlt1 z;c%+69O$qSlluNd0k(2K7)3tigFh7N*5xg~A;)Jqq}@gBb2UBZvFIy=<oNz*Pz%30 zDrwBxS)b)jfOmI%TlTE>u5RO=MCfKat!V?TPm-k)UIEi2t!+}4@t12QHhW)#kD58C zhJuQyjFu^yFVRr!l8eT#&I329X#lbl(#$Vi(~1d%<=b8gh!=O9?LN`avX-n^5grI8 zuhIau0Jr>m)a4Uxp`_qdc3vM9-@04vJoUvfv^bA^yJ3t6nTmC`DATF?U@*j(^PMMC z-n#$*jua-LUw%zCW)TM_@fn9@$n8Mn{GR;Cb;Nw%UfeuUyxo4+lbc~z5VuWx-Ecqt zdjCiQrW0$16bs$gU132!cz&AFW_A2=o|JWRAu@REoGVdgc)bU6xa#)xk=ZAEspA0^ zgpPyrjaD0_kt8Pl(N&Nm-o5&j?2dez3mS$v`us5@`dGu1FY089rlt5-?5{>;oyb2- z)ZXt2%b<Xcr2r}lj~f<&%ZE?B1UC?**h8BP83{q<2{B{09#?My<ZxHdzwN(y7mI*e zyyjh)xKymPh9YMyccbg(4u6V}3u{Jy^3rte?8)BZdcghbZg@^C&ffY>djsK0Diea0 z6o|^j9)EHJ?TUo4+qKtOfMsl5v^qt*V<-0^Z^pklygNXy!2~@GkXBasE)(Y$)2k#* z;=#o_Mjewdim&6~O$33<=b118I=lNbXzNUy0paA}LhUGA3Bk}j(Y7`c$%wc|Wl8eR zjgW1AV8}v~M;iCZOX3&D*oFr0bc{fGX(td)F9RRI%oBs94#m{=RBssYS+ad1*-u%r ze)B7mMB7>1ga>ddwWz!M%ftTO2S-gFH#=P-ARWEgxN(<l4^xa|Dmix`MG057#uG2T zy9r+l7|Rfa+MoNRw?Wg5!07Y6tNC*7cDOD!>1{xen~h8j%Al`^(A?^Bt2#AvvD}(W zV5GWC4+~nG3JIBrrX0yigm5SqNh8SOQ=bcAQjvJn3o>kVS@*QH$F>SK7_ej84Ovr5 zt;3n@GdEI*q!T0W3;o7Z3D5Pqeea<YiI=DSKl5m@b`1o<pGm(bL@*j%R^zfRvQg9D zA4hCjr$`5=7wi^GPN}x;SV(Nd1@y(rd{*CV-qzGsG(*IlT4{Y7yAjqG_9abhM=Aj` zNc@2K_jwa9{zT_E(n&eW@v1yCJDOg<$D<GouNp6R{#Egyz;Kx5nzFEI*FpX0G34J= z9ABbg157|dc`d?Jz0~CJ>?}H$z3Td8=7J9Nlr6c+jB)~ZCc2VQ-&$(<SlDP4xqI!l zCAGaX%gsv8ny18J^mSV3o_5AI6@TgvNz0wArDjjMEGsb5>YrJn>abZmEU)!T!vvIk zN}65xrC+MQDdDT2ep8^ytK_PGS^W*!J>s~-%?|j{4Y4Js<Ffs{^vAHGO=8nYr?S;% z!R8M^LWA{S#(SgiX?Z7ig`7ezdhxz{WW<+BMwnbH0&CO~QF9W0Y1j;MpvdX;W+Hs$ zu^u7ukXQvOtoqR1YX9+Un5e`+W}#B4PX({=4%)D&Q_dJR0U0R}IVy2m{AVqmPf3x< zyD_H=)t>O^S(;De*WR>iZ>(AUi%|w$9^>!^e!%}c5FCAavAA8bucVQ%68(u~+NX^z zOSJ7v%$8X}A>i@^I_Ejl;d*#%-a)A-V<tYQ%7M9A=oPe?G*EkyI?tR#8xFp;D5s&W zJACuIr38fEh#zRL>$`{W-lr&nNQfdSJmX-yVQ~dbbKif%<R``*_9&sc)a0X!$eH!} zbG!?etH^0oHiMwGc3bKx#$9~JS>N^TIKQ_$t+nx~qxBd4nXet0%O`wU8u@;Ve!-=f z!|oT%Pw(BH7@9sw71XIfJp3K$lryN3Pn7Lbr<3=@M5e!dwMu7KHc!B&r9kj(abJ1E zVOp(*n&h1aCWeStyAPqmW`V?qFPGbIeGYxYp=VHkLv&AXT(#OOWe1Ksp(96racRR= zS`H;|Dkk^UlSWVZzPu#2UP2R@=x;e<reSC3Pkz9Y|FBjY-F&3n0M_%}Uvst0B2V;I zN*zh7aW8k8=8+W-L30gQs|&6^y6TBcRAE$+j3Un~GQe<tSe0tqj09@lIR{a^j#TGG ztcbnw8hq=S*T;y^=K4YhKs?X7kfK``%-I^($?{Pm-v6?ih-0!LZM#3ly|6^9g{4a3 zgP2OIHf>HxQT^pZ>fTiPb3b~@y0`ryac@lYvMX1Xmk9o_jdyV0`rH9z)L_sf0vUz) z2{aqA_muO!EqpK=v_;_G7lDt&#60tjZeJEhpc;a>y2fT3ei(ZrUfT-a^wOUrvM<l3 zV%vLHWI-dB5{>$EXy4HARBoz6w`qcbVX;0t&?mCJH4unJ@O~(F(L8|_;no2wUsisq z%W1kppdR@C8TM}f*ArBSJ~~hhe3fH$c`eDKwYwNk=E|(FIzBaWXsd_=X;<;9Q(yX5 zR{OYdRAN$?T{R_1R>WSIVtiLvS4rPmO?fRyU~A8%D$Ci5ov-iWQiH)KKa=5EI-LR< zc}&q`h;A+;3HHD=9)0+m((hBq=raT%67Q(%qEcZe*CA$Ui{6RK!m5h=s*1y?!>i8b zX|z<&P!I>!Za50{e-giQ;P+|?q+4~d%n+%fs*5B~UzEd>kdjnY8ZlpqDsbd^Y@uM6 zcko!Ilo9O{dw`k7Sz~>jUg~Ge)qOQX^EtEtpR^^cyCzdCuFOTn47W$U>0)L`O?9!0 zZs3E2%J;*ydszBG5`NgRcx34APjJMSw3D-!p*CNC+y6w6j|`EE`vAh<?~7ey*K)Sp zGj_5!Kc+v`!fIPSIWwhNzeGCb{vh$s;d$ZB_~Uk{CS*@q4Ys0P!qq3JHw%WlEP9Rn zG3sSEik&iWWvm?CPcEkG3V-<dH3H{Cs+N67@O$-YL;l{A&nX|!>2e*ttO;VvW#rA% z>lCbw{2VRfHnpp5fzKOXK~XR%-ukL+X%v^#+Kb`zn;n|gj#XQss**3uI~HrO$Csg; z*s1I)wOY*ixE@9DA+ScLe0Th)hIpF)tUKP{I~f7-qS@toQ@ZjLyW|qLP%z>f>=Kw# z>a^4n|Nppp%cwZFrE4?<0>Le~y9I)~1PJc#?!g;(cXxMphsJ}uySuwP+}_#eeD4|e z8KeLASW>HM)||6qX`G2U<|Bw1(rEKUSXHG(D^VdgwnLXXxcWS%d*2*u-kj=u>p0Fe zNV%J0R^o9bOYiH|`w>QnDvQa<m1gu|@;#cE&<{X>j2KO1e`eotj`caxg8R$E#QTQF zqfKsg#{rUwsn#aqRkb=GM*^8uPT#7k`kO<#Crn*YgDT?4x?s8=2`iu5y9xZsm9P4c zkF;XP7maysQ0?dSFp^#Q47}F@U}f(Tl0A$#oBY25Kqm%3qF?$hKa3W1^AYqqQ>G!5 z#+lkYUP|>(#rKHlBYysY^lwXRvIv^LIo%Qm9jH1{$F^3(h!3&47YM>1`LPii2loz6 zdE=T0wk-mn7+D8?1Xr_N%_;a1f1$UnW<?N3)8{_p&-GBxb-mFi31*Ek_nUFQTdgUt z?<I^H_T`SYqCdwzGS!Z4>g>@6-beME5I$yWg6=C7iP2L-9m^&1R4dX3SB(=z8`_aB z<QCV98LILaELZ{MW4awi<p{!jfjDL8gM3D^&87$qM+Hny_)H}-2#ZmS+SrM-A(Swk zEU*_fF6$}@VeRD)0?*&dKJaOw%mQKfpf-!8Cw_Q2jMETV`W9!!j&ngsz+Uj!m=V-P z%+-2-FzvUqSQ6>5>{=5BquVphr1g(C+o1D+I3akRAYinM@v2WH`qjZNs%AR;WP`i) zchM=LjH#Z`VJ18lGQx{r4Ts~GLcd+*n9U>@utu(2%i5dx;D!UE>`&^cm(Ow~aApeN zghyQdwj7`IvSY#V4b!Gtly4`m?y*apAU^1-Kn-9?T~zPLsg7}Q4^Tf+5%8h%^Dlr5 zR%F-MqA!+BQ68$XtLJn)iBGTJRFzr9Wp};1ZeJ|<g@wG78BK{tlS@ZME!hchL6>Yz z%afVbVD%-uw*QG!FdBY609=N!&$03t4#<=&5pY1?1tWg0Z@HA{|D}0_4FnP=1vqzi zaD43zfz;aaqo0H+dK%`yOb!rJ#k2}Q15BN>(j&ecS+&+F6^+Q?b9y*m9Fe?C$Li~8 zX$3c*U!AU9Y&5~}Zat52@qOq^9!MFCjAAl56*;awpxY!^ey&777z85LO|;4LxT<ix zbkEYF<q_9n))xM%Oq3lm>qo}OBoy95-JbZlD|NW9%!V}23_}oiB2+5<_<SvX=;bYC z7w!_oKg1w-U)^mt7(xch>3<b`g)wJU=>OACcJ%-y1Cgbm?O=B3tP`5gQIwTutLUIx zSiGKtql~a^y*ZA_sEkrOPZYC~)#(i1wAS{9`MoI5MhbFB2$;X>J<{T!@%7~C%$;S( zv>kIJn9is;8{PXaAO;0`@PRR<S1Iv%X8G%f!@JaD2f$4)Z>T-I6MeJ!mrTcZ9RZ>} z80zK^lE3AY?`o?9Q~$^iztOZiMHmPqUa_;R-Z&Gm#2RFDemAP41~Nrk>F)j0YFFbZ zN&(RHyy=1@^4GBuH8B!?+&R1~-Rs|cEp$&d?@GHtH)f!2I=g;L++eRACuv@2VkxWT z{Ji0YJ{V@>O9Ddn)3u}ZO1rUHdQ@GOPfOChJ!Uv9Z`;H37rm(7BEHRi0;TH9C8I9w zMi_&hiip%IZFKj~aL$pK=KKd#cCN+m=(Sp{_XO;~dkEaGKv$njWh2_-02!rwtr!hA zSBulFoXoVBwC_heJmGv@68b<tRUHKsnY2Gsg<{9k&l)kpz{!5+slve6xm+>V5m9t= zG40l&t)QQC$ogT>Bh+7q8vI${{Trk%zbaJba^oRu%ao!}anxROrvk}ai(=9)N-1P? zzVa4TUM)YG5z%W8pPCimX(A;*A%v?oA%y2W7w~0Sw1g0wF)FZ?b{t{<+BL=*kasq2 z^Px+;y6bY|wSUO;QKLtDIaHa0pq9y6n^~M>g!zkfMSV%Yt*;`NdSA6oG2%mV51^rf z`M73n9*^_L80^~Ntw&hdl^uE``1Ef&x3<z$M(q1%z{N}|=ykb5BFnL2J~Y$I<!4X= zKG!EKw!uj)v+}@U#l=TsCWrEfZcKLBXqcP)bxx-43b?#AON<s(q1L5eoT&x0I&hX1 zFRWEyNl<+VIQqoWr%PXcBU*huInF+HSSa;>iZr$>k4S`c6ZnNd7ii>oiSvGJ@~7GB zX8PVJEXTfE%Rv1sMZs4FXnV6h(U}_ESHw`D<ORD?ptW*FrHEwH5@F-d2m+>->emkT z*pwn8m-%{)GRl<|5eszJDJcresoIN(gye%p=g95qi)~1mMMu>jBGG;F1ow|X$dDm4 zEsRRg=LxbqO8IBQ4zPkKEX!<oqiPb%cqk(PlAI;-lm+~d84d$w5c>xNQH|u{a7zom zA+DY!_-K15|JTThzH_5(jF$Jlkp<rgGj1nAeoH#7<ydMX)|ne!U1M0xnsbe2#PhVY zAW9*`=P}v?-KBMKGH_wn7<S=QFc+d1b#TU3uO15@yWz1c@(HrglUg^-v9R^fzxQnb zbl*&=5I)=sa5tzP%;hVojW119zMwUJefQ|lG(U)6xpLwjV<mAP9+hJIf6eHNqQ?A1 zvliTPgRmRhmc_)77kRf3a`}}F-~E|x@RXOv^7d6#vf;@tlHOIq>qY~Y@3)ob8;OAZ zLEb}w0N7;#OL!apxatTZhl&2(Q~0uD30PfihrLzrmKh4Z#NtMl;`LS+ENs$wp`ed- zcPxO-8CZLjI>+PJ)!p9)cltk|Or0<1Q(PKLH7}u^E_iVn#zTjdkmJ%B7<DBM#1RT* zw?1bG`>d;NF|tS0vXzQl$gIgTx$=)AH96F#!UFTsv3TH<8C}0YOGR5TSE5H0N$ves z04^)q!nXh+14^V(7j#9B#NlcaQxB!$7>EJ(Vwzgm8{TvUBFGEGb<BiE!Wh_`mM|hg z-E(AicZB@Hd&hF@Er!r|Tc{mG%}E>%#juv?d}hn;xl`h~H;&usg1cF##kg8S@8~xM zj&0^18@7@M^B3sSBUJK<zijiw3N=16>i8hPu+o^c=WnS5aG0~<Uc+vTZl^^k>Yy}s z3e93%!HbUr#5^XD*A1bylo9i2R}l05DOsPU{(0SYIj{IOCim@LX}W4#{E;&zfbY63 z+9l8SSu7Ph{r^XFTv=+gubCO8ik#VNBoh|AKa(JEy3v0tcm^a>1WYSU4gOZ**B+mb z2k`_v)GJ}0;g0b<K_ZWbeVS?t>3X?J%Z|I#e-M8FLMrk3I`FHGEw{PI*%7J~S`q8_ zNbjgs;H51(+BSeb0LGKn!3<9G>ByR0N5Qo@=d%^;f?uHdi9!3<afDIAZ&Kb-c3Bnm zq<?PCR@i)HoI!AVafl=HxxFn`LyY!GeW~92Z5_X2MhjvK{DlLKMnl=g7`1C9FwfTg zb&DUN?B)2E*sH$CMS+NMNvtWgVLu$PV8rm0q1cH}V4htA=4E;j+4zE9&yhhl&e3z6 z<1Bqs#E!wuw;61`Y=`IfG8DcQBr<z4BPla-nh?Ea!y-%jGv`Eo;9@*d4H3d@N1}ZP zm|t1X=J7NKCvzp8Qt<&CrGQ|O%+7I4UxS!Fwjl#Nr$!iciA)S*{?`FMseYO-5aVn0 zJa2~lwjMi6=7{(_=4NId&$mXa*X@%NKjZ12)jWMRDk*%<+KboL-V@*TTXv*zlJ)@9 zda-=1Kr0|wsr@4>nF*3hD%T&d7CcwP+RBpF;J?>2$Pa|zi8o7=&PPZw@nzX6iCP^e z9=j@aQUMP5=zazO*EdS46T1oDlh(@DviHtIE(^|3Yd!+{VgDtp8EV=4uhm0KGwl+t zL6*YKCYze$aEESNCt*`J{?KXja5>%UA8ssGr@gK8Meu{oz6T>+E}~h_9^C?!!IxIK z6Z7f3HTsdALH+fgNFsVaHJ#qkOsFITE6?s3ov}w}s;kK_s=7d00dflKZM=l#lP|83 ztWB+v_I8#ho{pJPPLzL^p8q_4COOj3yLC{o*yV;|N^S}uKzsuFe|peR`2o!f1<Adq zxN5eVBKbbLbxyU+a?wDo!90>_9?z}J<0!-Na_w(KAu>LOt(!_ncF^~{6ix>XV*%-t zD``AR$}mT@jXm4w38{?8!(hgvj0k@9UKmS~;YI_AI2nbr-|V2dIz@FdQbYh`dAT*O zC{<n~4_@%uN9CoyXzo6>{sPS|O`wpffvxw(p^5@^V2~xaYNkpgg0LvzxFpT0Bbe6V zO@u+rIvmF^s9oNPR*{5N7sQ}6?M-ep7|)t3hBZkF|5ek2{Z}Qg&@>VPCMTx;-Yr8M z-d1)wgUEozRD4Q~Jr+}FK7&_rE5BjM&T$&P2EKC<&;80BTq(|Hrj2f2j$)5bN93Ft z&dfJ`N`TTEw>JyEH8L9K2@U5foU`@HB!!BZVtHZvj;(q%q6wWg0kVgxe~2jJl{*7I zAYO{jVPlcYxw`<=T!LFuL0Ck|Q6#vT*HtTB{^HB7rt2J;nlc(wt{?Qt^oF2<XsOqn z5S|mc9_P!2fi*qBi_sLsf8gn!!S!nFLS+zbqThL0C7s(HM21#R(*c))oG1&8w2IV0 z0<{BTydZq7a~G`Z;ZqWExuP39`{wFc&PWPuz!bA9L%;e5*dvv5B{w36%If8<f_f52 z@qVyB7rU&0!%R<MdHYn7DcsJJ6MXQ8d@j=vKiG=k#jf1gs>Y?XI=xPoX`x{kgaV4H zwAI~BqfC=<Nw0MwS?5>GJVx6x$`a|IFOyBIc_+HKmwP<#UaNbK%w!07UWZfLoGPfX zJq^e06XTCRwSNJej0jImJS{l}oSrtv8f0L;!3}LQh3GQ{Gouk3K!%inXwg!Mli8Q` ziyq<09^o8<7EgI=&!fpqy{>cg7nXS>55ooVqwLNa?S}!zLS@AVVE7H@x`%fYuXwo5 zLL4vHb)785%*ryTxpt+p{bWk~THsVQ@%82Dz}!$ubu@}=`%B#Q2tL73PBEBunfpbd zCdr%=Qu#Uk-on6{{zpbg4&Oi$TX<1!!PIzUKg7)O=<Yd_OL#2#K*LI~VopZH^?*E? z?c*7@Wbxa&bC%(U11e;C7tSf0HT#A3RG)#{g9P<nHV#sqD{&9p=%*weMEtZ1_$>4p z6Gd-{;W32kN{uyyar3H=?*#m@lLg{fkbzZhH-%pkRy+UMYwG66QrP75+1YESJ(y2! zt^!jPDjC$3%eUUpr{kVUhXZvK5cv!1mPfbB&F8gRH@bKq_}(Bs=G$srqICP#6vU2C zJ)LweD_O+LH6P}G4o@D?wUTO56}B9gbX<V;RvtajDF1s9=JGkq$UNOwsYp0z))_7A zT`(UYf<ftIQfj*%nJMr-7#A+iN(<$S4={rU6$FmEoQ(ThK_$}$nCtpBRFF4p*+>_5 zM4~74<j4-%h>{Zj%$p$($H8f`S$|%9s?nB~vueDI(^M>aJ{;G?K6PMbx^tHrx@fAz z9a%=OZg;*v-3vQ-NV8t+@Vt9J)2Pzvc)i^6+ca<USYfnG{E@&FN6O&0E~rqB2p3c; zpFI2xa(7daaumz3kvgNOD|$-rj%_ara87nWQpSl9s^A5`2u8D8XhEs4>>+*kc!6z1 ztIqQItff(5P416}%g-UIGu{b&UHH60{r0gzZ7hM8#@xWhOW;2oHhP8c_CE})=sec- zmVNVff%=!WvNbT7k@dMSr7Bzc?3V3iEdKr|dYR)C3gto2;SIj#c~N&orK2X^r7vS? ztg{Kce-f$9g<=?T9_Yc8piqz$@hmd@1P#sO^nCC%BpwHmT^WQC6{NjhGD*16ESw%M zJRclrDBNp=mh_rx4FWeRF*Yi988?pnGY#(;izKkb@0tdAG_T*^+&~2|3J8)Y-t{gT z@Gyk-YNb8r#}}>np^G>JBf73*+x)aHvUhi^XJ=<%>k1;Y(>o4q%soY!JSa0nZMego z&%MeTKC5T0nRjT~TG-`3|5Oj!)ff&KA2y6b+k8fte7v@K+3x>wj&DsjQRHCFp&4}M zN?f99i}j9EzjhB0a`isxhyDETd$rs8DL0?qiC~Z&YA=Kp#^5ZzUr?<ytdv{Qukd@i zhC8WKWyDbG6VbxEXwTZW${;SC_%uAjQmtw}@N4t4v`rWQqpws$)Ax|j2ZzWz$JLJS zh3LyTbZkCRellGKb1Ciyf;`v}kc`r?BrMqvn?ALIq|NS}8NvnfZbPC$Pc91y37VbG z9sBlEIa(zn0v<dKiknI0p<f3lmf#_gX1DqRmn*HDUEYjCL!lyy#F4VZ^v6D7iReog z+0LbS+;Rw(yAD6yrf@g~J52xZTp8%wlUh?ONw>Ay-!i`Ircg(_;BPluXe8S#g-|C3 zTiDA}ppg}=Ft}^**2Kwc;u!Kmq+|{54jCIuu+{8=8`1N>FbO;dXB)6v{{u5hOjku% zUS2@U-G9F}1UHTjyD^dM^bajE-3C%IgI>7l@taV8d^ZcyiGf&yI-*B;Z!)p|FMJMD zz9mbFA%+Btj>O+U-%5Nzg-n?Q*u02)qjy7@6HERJOCoZ42W}5+k*MA&lHe1RlvHr? zfTvUECzY4|O^4R}u*e}5aK|Rko7qyC<-85%L^+_VBvzc-^G&5zC(Yy5e+k|$kdelT zZ<{owG)gjwle8_ByPQR>FI)KE0;6(~JCGmR=*~7z&Np7p{;l8%X|2~4(KA+4G3ypb z7^b_phv$qH+-FOApzz;3KjaNE%2GeKA+)ZauK^*n%Bmp|s1^Li>{nUh3BjO-fcqmR z{G)pp5)W+237ZEnt_Us4I3qGzmZgvcP%bU~wE|O{$At}Lu6L*W1@e!YM?;;`Dp?ks zZlTT7m=QVPUV1gjHu3S_M#LqAY)j{zF3wkhkS#W1*+s2^wNaU=QJKGs1K!*BHGC_l zmX}K_aRhcsVn`L2z{6ig;c!fA?12-BwpSv1Y|5pl&Ga{uV`@S&%;M{&N}k@=P+KLx zVY?DO^1x@x6<C!STvNO1sam5rhF%QBr7gz6Iz~V|eiS`&D;F}dEw~BGIR6bgOjEM* zQiH%VP@Wu)))s_S8+4X6ZoAYAH%v@N6SQX6D->Xe#Uu+D^_*86uq5t+3IgV0uLn$c z;(AC?lJ%pb=D~`_3{br<eQUxaEm91fa}AvmZxP1Ta^ZFH#)~odqz`(8i9c?~T@~M) zn!Xy?V{K@jUas5AH9PCzh~5t&G-!10O_r%x|Jw_olpS(dW4Ouy5V$wI5uymowL-fI z?1r?`W_&zat(Ar)pybNUp8v!#Z7ZQkJNPBm<|X%EuKs4HE*=hLwT22^*U!VaAjC~H z=ePa6uuSzC9_ECFAE|E63yJmli=rY-rlt<c2~Nrxu_$Qsik_u4<&-=eQz|-RmWldX zKHq~!d;<Nzhk#*sd$POOR+g9-C$SAgOT)8Yr)?})-ENUMDoW-#VH{gR@1MmZ3HJjL z9uxYE#l*w{A)xp?o)54S5}T|q*4yL&r#9;H0?(=Wc5?}9sb0(t5yW=0rrdX)sW-;> z%?xFaHNr!%W7o=K;?>qRoLK^Ij$~{O=6LN%9LzYPw{^rXMj#xycO&0l{5;%LKA|l? z9@J37tH!y-O=eMkeD`b=+dK*uQ_4OgeVyr=k4a4IF%h$iq|eu-oD1d{jDhq0(Tw0Y z9RhWV?zBO@)ug~p4{nc7%NSLkuef{UA89Rw#vQZ*Ly)9`l9U*?9ZI$Hc~Fzmfd#Xo znVbHm=Ro`%oZGVsHTmgSrGcGMBx;;3vl3Zb%MCg(Om66n26UIQV^21dV>uTY)UtMD zKJ>5DrM*q(Z!Wy`<QAk%&KvFLi>rqk!XB`T@s|R~gCm<{8oj}m={}(X*V@_#pK@Yf z2q6DOXZmJ}sHTwT6$bv)DB(gyp#w<tl5Zy~$H4lrLBW`?8S)DP2;r*O6)B?An1!<| z_p0al`OE4dwP2iSZ|80GXPFkeld_y#%s42vKBTiMYsd`oORU3WN<Jw$Oa~v4KuK+i zUiM;!hoDk0v$1)Z!ReW-rm0kMUfJp-@JeTfC?+fJnZwQMFt<Xu%5_Tpad5Ihi`N8i zPx=yLK8T|$2tNu2f*Sxlt8DU#@!qk1;4+W+8l(cXTP|s_BS!{lza$|llwqYK@S?${ zBOn0qyj&j;LjCFeO!^3p#7{6^2sqyB!$(||2etd#dbWL1a3?IegII2#TrSlxof2%; z2c4GwIBXDawc}afK||_xjrC;_MO}Kw<Jvb%GcIAaL9H$!a_GH$aowWOEyELBR(17O z(wCnP`=He-`^ya>3u<dos^N3VY#!e1YG29{2ZCf>Al+9g6zqN_pZU>oJ3cGAb>sua zx&>j@{nMD@=mA*~23z-Mpmo9C5(ls~ZXP&ch0uBe343u)(D|fsLHD~lI4El^?QKYF zpv$#APxs*+{$ILtv=c2YeHXTA?olNJ{5=pPe4&H3ulh06>2z`(($1Chr%S*pes4EM zTYV;n5Y2J4p{c4H^-xsmtBoI;gH(c%O<Akc#qr4r)6XHXyG#at0>jm0B88%G#WaTX zpB}N$=|mnP)5XkRhcmccYFl$kJ6qO&*u#gAC<5M?iA~TtC%?fLyl;X_m7~T<%RP}B zX3AaYNsmr~TZ&hv;$_Z^n8O;G9c77+d({1sCC^{{Sx_Tb>&8`%B3;_px7rKNNcx#6 zK-@|Se2OBCI!9&;YYK`p+8spn)3mjYiU?mMmP3YM*$R&zK(7f92@t0{|F+?X=8j=- z4i>z5l|JtS^9`Yij+z)AKm>q0iVeI*FClvI432^w_6=T@I3gM+wFRLi3TP3RwV`#s zm49iM5dR>S|8`#%#<QeCV1nLk;f;h6zPLo773tC`&DO%$mC)C^a&w*ScG#<;IUO8x z#6-1TiIAN%A2Wq<TX@{f5v;a@H??@YG&UxpM~ys{Tukf)(NMjzYM7K(bj12q`esD> zR%GV#h;o`~BT{wj9?z9^E~M{t1JAyle<#;5_x=rB4iQmT`iPB9t8NP>w-n#Ts)1UJ z6##&U+SGWuF1S=RlKH#3oJuh9>6BzmwdmbeJZJnvN`DgajrP*L*K|+(#}LhNpewnC zB=J)7q3x1!7!JK<hx#&)_gXS*fS<aZE^Uvu1%PM<TMVK-at1K2%M=PI(x}R8(Q&1l zjrzzz{(OYg1lZ~&vBJz$Bxnomd;&vVq!xo6PH|ES!P}h7R6FlIcq)}+KI<BafVF>+ z+y7fQE*09fI@`JSv?N^^G(+5U5b;EJ+e*{o(*-11sZ(V}&^Xkjo#lr`DK$6DJ_vXP z*K2XPFO;intkQ1t)>vzGnwXvaHmp=YW<(B`Rme0485x-VG#Vm2Y~T>zZz_e8cc+l0 zXMt{hzS`UkHh01Q_!_}1Ce@NJOpt&yw}bf3LdIs>M}@r+{~4tsi-qCQKs*wy5wRDm zS!;;De#|oO*CBpPY}{ATi@i4G<YaKNrg}K^p&GxskV~1tuBQu<P#jqo^4pyA-s+ys z<zj|_cCCdO{V-nY=45xOCaLgZ)abxGTF#{vGZu?-zotP6iM}^S2I2q$B7gk+;pOQ^ zP=C1`*_oO7;N=Cl$x}f-Rbbx%9b!(oKC;?N{@z`X=4<u0qwzmWM!?(q(hAZ`e)fdN z#bqu|%;K(h)T1Qb(KSgo{du?CynJG_>5`UHM$Op*u=+H}?(AuLKu(a60up6)c-%l* z-Ea4W`TIk#ru8N5(u8MLF!ag0lsCSLvOL8c&-9y4U{>*&*Dm#L4S#32;;`Fy|3QX< z+#b+9lP&Rkc<^O{8}I<)4DX=cm`xkoQz=~e-1koU5kRR3-VZuklKps77!qr-(1i+< z2e8P_PWISJrNx%{kY)fU5R5PJWdZa+@ylV-Fr1&_k*vKD-yB8rck?q8C<Vw=;DgXT z<fk1-xM31jyA9fLRpL-3HXXih+qzF<!bWyW1@pg9d00?#qZWpz@b?~FWX8e{zw5Tv zmt2^7nFgZ8G2m4lX6Y!B9Mb)bo&QCd3BSfRTg~C(<eiORnB<dMYI6VRl{DGI^_sMy z&x1LT_YgX&S-qJv*=#nAZ|KPXqhYcS0-YX3^Zi_a33>`j&4X242A-bpms>r}xaUAU zm}((u+xmVB4m(VpIi-5PE2U!XjMou3TXG5(mOD52O7e;&!MJJts|GijyR1w%g|g=j zd4L2=vAh5o1w(HDy9~RGxM(Rl;!xuKy0EtLyKR!DCc}mc510Lg2-!hvUXfksB}e`W ziUgUv<4;g4ZK44lVn7i_BWkWE{VweX!!`TvesLI#VfuocfsBVDK#qcRjde;N=Fc05 zfpfM8gakNVa^5!i#^#A+A-VE&w(n}sGgB$lfat&sEE_6A{A&In3}0_1w?q@XHs7|Y z%du?!%<FBR_8<EHzk=<*LCrp`m94U<N=zMpzlnJfM>8$y{x<Zr2PqZRGOUcpgVFqL zIB;43M0Q_ow`DMYgE=&ik`P}^1v<aw4%VWIY_z@CrJl@JXgE4HPF~ViKj>mA&jl_i zebI2X;JRErU&taKyg$-VQK5L0F5dt|Q&o(_&L2@7aCv;(d5I0pL6cW<3MQ~Zee|7L z%cR>uNMa4LTy1_A%Q~A}oUGi<*P0KTSlTF@`|aGpWw^%X-HckW0_0uE@w>~5ty>=4 z#H4piW*T@zMNcOsT~NroaRZhY^<y;AaA1ZM(9-$Gr>pL6t<#-+wd6XYyeewW-bLT@ zizR8kARkecCzD$AD5pi82t0j@d}8-Gn16{2m+v(k73C&LtrweIg^$ALLv;uL|DChX zW(^oJS*y)1JU<MeD4Ri~x=IgR1vKMr@hCiywj{e``x_-kOag4(><v@0lH>K^4pb*! zi&s^_US0Yu=<#&CSbv+50nf2_XiUdq2g<mopMB@BQ#%4lD)(}}3S4F^*1mmBC>o2O zk4f2OA~{HPjQCk6ko~3TI!@uPfyA}!bLB^2yk@uU?-e?Zd6~$3Q8{tx;$7z~8V)K< zO*E?J1QzbB`b;aFKVu%a?04(q{!RYkl`+5DQu|o)MN_9e@5o2_K(55bibk6AeztyL zTiDOt2GtS>@wh;~nqbYZlgNoG&<UESRFx{!Z3yC#7Og3xY(ZU0R$g2Kb8Nm3?nP(- zwa*(FGH90aeQp{d56q|+mX)Pk7w7FFzFwdIf9H$a>zducCEag$cQk%47fZ<*f-EVf zmU~v9>hW^@rHPKO&CX*Wl%3{js>`?q<GA#T7g#*^<Kv?Z`)Zem$nQb5Kh>q8qg|V& z)0k3~>>Km*_fvTn<o1yn<+<X=vOsm70U(V@=3EKX+C6_>z0rNjLY)i`25+VdQ`uqj z^3cHXlg#YRmfWME@)pyU2AOp|^+wNKwCju+(jjY?4~1osa{gHd-RY)Azc4}J6%nKH zFy`UURHyjpRaPK&^3ct?wEDZ;kk5}DjtY};4npykt2TuvD;#JVA@Os#1vf6(b@9@` zcw99SA3D8H;*lJ5-k3_0iLqQ=PVWjsQy|fs7J!&+0B$74R_llO3jYiBfE|uI@@NYR zyfQMGREQ?Y`A?B3S|`7{&Y&p2V9oh5HC~SGTGn5BkrNi>z8B4~AHZp_zc1<Eh5d_o zoNIPAa?eiiyU2qi8BSF?-idQ=Y;^dNE1M-H+l&gHkqvVDEoeCCV+~oXUAE7=b2ow@ zAtv%Gi|(qshsTmdBZLG{QQ9&V`PZ&};j$EFWv_9_%F4={9ofUV)=B$IlmyK<ZTJfR zzF8cQGhDm>RSawzKr{{DPmftg=~+whOIH<K>kDeGgKC|8S!Q@%nR;1afLdgL;tYYe zkHtJ6!aEwv`qrC-2=Y*$o6tRyZ5r$Gm>KBHOs?O)tzS!;jpT!{EK+*Yt`f_3LXb|Y z2H#VmowP&>kK&U~Vt^tWz}}Vow!eJ*C#L3YhNFW^baO{}&PO?~evXTt1R+#i!6j4U zF;gSQwZU@p7H+`~$IgnbjSdcYL@uZHtVqQ){D>rA!LSNXuH@EY>F*mHMb-SpCAKoH zI4o>)d|U6u)y)c>ieos}9eToY*MG);&cU!J;TILt=LLUqgA%?A#Y4}pz_%SVfZN7V zV218PBcb@AT!Eyp^nGc0^CjN>r`&(V>HpeXfU?8zY%A5aKXOI@|BRuS+lnt7M<YG% zxbYxRoD+9KI?A!BNeS0Fj~<<MjP@STX19~NdExwWZ|ULT;q2^uvEJ@_e^|n(Eg~}o zwyZ+d{L1g=Sy@qmW}otK!Pn+8bG>^M7M5g9Fiew05NG_m$*|nltBMGrI~{u=cyNl$ z29B^tNFOJ93G!DWui9#KKMQ#<4oY8yC`!L!By@_o!1f=8LWz_qXL1Nz5|Fe3=0_+F zvRYs_N#PG}IG)^O`~XYBa;rlFSYa7}yDY)jV%B#R_#06itVU}9V5xqz?DrF*7ySCz zW*TS>$V6OG@?g7y`Cmb_Lm+U$5&D9;@j}{BHxTI6690D0myo_<jCG;7UCOx~imgZM zXF?6W{#yYst9Hc<Ef`qOVX05aaL!E00V>*B%Sk{F+gvpt0;Gx_3VM9{FH=XEs<B)! zReC2I0!+UEYl@OS<Sm(<lxSdo`TG0}uH(z8Gj{yjJC28DA))<-+fIOqD$m#uE_h4* z(PRximYYnw#|rV|!GEx&|L)IV(8I;ZO_b1L$`W-%QzqxKv>7)ybRFa9#E_MxWjmme z$Y8D1VG3EK&XLFC_U9yCY+PK5es~VJaQA8HGpT}FiqCg+CQeT5W3^V4fYy(fo$Xj* z$_M6#unU&n#HEq=ezu&O2r6z8l!54OmfRaDQ2GLc$!un)j40tKBN4*ec)HGdy56|$ zaq0}7-u#Bg@rKv@hU)^J?hLNAY4gkhfMl1rwTq2zz&J7MIW-zNHX@nt38gj~I@J@4 zVJ^C%-9#dj47MPdCTNW8ou#OQ8`M-_P~)0MV%sM)sU@Z4VCw(m7JFwL>xICuP06tT zjo}@R>YbUaF}U$Ed9lq8Bz*Z}H&tB<+@LdSg4geI!?Z&P4!AgIvDO=%@LSN^k1uD> zqPBtvj45Q#idIEPJKEflr#s0>Mw`X46>3oJCCXeO2fUg&OMG_K;%WNB!#@X#WKhCJ zNr|Y5DzOO|-G?-)9H9J~%%Cf}=23`t%JHfB&uHSG(eo#EAg{Ab*-<Wx6(1L1rR_Mn z20yKdz~k;XV$;p%pMK^4B)t<^ykKBW-+L*hr}Q)ZI7VyGPd9F!_eS{g@h-I|J+l28 zbUHm5<$2-<jt;3fURg~U!-lYVo|`tjKHBZDoObrxN85{5-{QQU$3VQ4pIcbb9M6W8 zycyQLF%7Y}hkppR=iTx@2%iRt#KVM7$}<gXh1Q9c)&Z@l3;YgQf}lQ$y}%9pK@#S# z%&92KKnh{lVaZ&YJCgCkF)CJd)k;)P@v)cSP>IOU5#BFpS_<DAqvpl&8SI9T3i|j) ze!Qw#@lPPX%lmP=@HN*MotaH1Dt3?sm<WH8fvVwxHu$>H6-<dstU?J<(r!V;*BT@8 zMRu2DC>2D`!3m*j4Swgyza+^o{(Ncg-^(~1iy|%wCdzzhq8oS~AQ-~+MI3?AHh;)Y z%tCZXEtpCOB{9C6#zqZs;jVsBVA66DqboHHR<LT<A4L|Bo()Hpbw-Z~+lY{lKR^NB zxWEraBS#cVY$U#yCVt;!bk|69HEJ454o>cWG)8s1_QXh8hQmuoU)E=+2VK;O7g8}0 z&5Fl5ZlHF(exXzIm;doU8&yqoe&0Z2QbvPKBTlf|{Pylqwn+eP#*Tr3!N5=>CrExo zy-XDm7zibX9@p$}qTHopv$MYjuYst>_2Y<ZHL-h!Ow3e)44%}m!WH2GliA_jv?5_x zT5Xw#LMnHp0yQmN!K&HXbF=A0>SurJA2`fu3;5ypPeyq}ZhU+%o9_4G^yxexQPq~& zi$$5tvfYGb)Ee8{dF^?l;5ADa&~+zZ?-{vht_^V{#hSpn-sLg80KDk?DHE%tYjKh@ zABC_?&V8<E>J-`7&uQo=AVY$Iz+OrW*_arQ1?5{tu^=}UYBwbldYlPG?AStFhEw$C zd(<8TRE%`e-c0hJE%5QHsjk!c9EP?e#xfE$SX0qXen*Pxl3>h2)t{Nvy4;d;UI<|Z z>^8n@(l*s5?ldV(+tGw~bhlAk<n2746aHfuAubx%9Z<r91xveQ>K0{a<wYNYu9yjZ zL7{@Fe<$tnZMp$rev^klGFRLU&VfYC`xDFC6C2y5Z6}{I@uLpdKiR<l6+gZ|f#-uU zB%sL~wLH&dQjGJdznQ8ZWFh@33k&a`@65Xn+FWiNP5N!MZi?3h%Zs`3YW>mcg2Xy& z_yPMG4Sq7}z4PovtGD7FpCP4o*LXP_zJGOumhrxHSEw>IUNJz&1#S(1vteXfI6wGp zjH~c+X#=fWF6#FK$7*kcVQCr!V3gVsq!?FNr<_NEkFGp~gTxW;4euI@#8PJdOxj9* zEsruk6-6O8#199i#u=4UdYp=ZYl#VRml*gC!rX+EUO}v(k&Z;{f*32242#Sy`lNbt z$f_Lr@@Ot*R4h5k_!^>7yj{s&{*8o)+kog;kO>8J7IU?O4Jo%mj)L!3!E#ucSdr)H z$NkYv<r|C(AmHr0`!Sr~pp8;~pR^J>eDA$5Wj7trKE~(hxOvf_;pzFOR~BX=nhxHF z>m-@1m4Mfk`Vr$ljwt`?2q5?;OQ6>~%spnNpHJ^rlC0OecEXxytJXW*pc-I(>89Mv zT$bz2G@&b32eCkKGO7sWj2WDn*%2y*^jF@kr5lVG1`Vk2dJ;f`=;_jEW`AdK|FQor zS7pa>>yC@=zMHJI&F8vb>t{MV0(%ShX9V!N^H7gGV67VNj@&n5Zu^Z_k%HGsVL;(E z4zigwz_&BUs3~<GRR+jzdkZxv>W$C#Y02?aYTdzuti;t3qS5*0arUHCuqYd$t22<9 zNWel;F(!EeuIXgm*zM1u`|`C@*s*8Iz9)3K8y!(yEq#6dk0{%*@{FT@y8B!FXJ&y4 zyS*sgE#%#+dAs~p-!e;_txs5R5PhNB=UxeU%_gF4*A1!cfE+0Xq+HVzbVvFW$_VR# z4f_|B2Itavh7^-uNvzNs)q5Kw1OJ*&{YL-*N|BP;ZEPO0I@+8MrUJO4N~_k&T5SpN zPpsEF?JutKFsgK#+T0NP&o4j<^}g-^*d>ekAAC`Bu}zs|Ce%ZFg0gh%?2i*EONmZX z&}P$oDNRr84OvD0X>_I6Vs0qOPtus$FYgHFFD0B)L%suuU?~+~Sk|vjogmJ{DA!$$ z-7sDlko+yUHs!n-6t&^A@E1%Z+5L~$-!cd#MGSFb`{0XlNvIc+K>>0%6{Z4r0;DIC zPN+o+<<6<DBdzD)`pqYDJW&~+lNqn$PPHQ-ih3Yh_$#_lD8{%S#e^)nAxR+~{g07h za&AIn^7Y4JD{OXSZBx_^h9waj1jXzj_3T<Z8L)^dC-nV9fK5VoEu*q^j%7{%&hblG zYk+<q5z?yIxrdBt5=${0#35JbMEV>y<8#JA`oL4c7oRlamUd42X<@roUA%Mm(keDJ zLx!P`gXkZ2q_r>MFsv}jc$@b+!!_tQYGFxLFX7)?j9Q`oF@*f*2l^CeSq5Pf^1Cv` ze~30`$VkU>N8w)oC}M&cH%8AK`A%v{S0SsWskV|UzwyD*97iE@e`3PrZB3C(_-!0S zlVnR3#EHV;Vr64XvLp+8IxC6k`Zkflh{8S^ybLT-$L=w0FEQg=Y|ySY%C9*dWLN6- zLBHN#d(Lp^%Gy9~chs)t)T?#Au}PAFlyY9OzXXt^6+q?>T=@qU5_@EdZrJ<eG^<8Q zHl>7!rOj|ln+QvLgF!nQgYABtTn{d0bn;d?(0->qHm4)!iDV?vn$Vdb_6{F8vhn8> z<~78txSNDGJo(~6_=8bfh&S^keDI5>d)@{;AYeYqyw#?ZFt@ZN@(l7{Ptd>1@$)<% zU1@%O@P~wSYtq&`FyZAPj&eexEkWYl3!sh<?U-cuEq|DWwW%6!WOx__=517RtSIu^ z<2YOj$MV>ppA*y5+iBJvdYJpm5#N1O@)3?~`^R62h;Sa1g>es`vJ2ZwILGcoR9UI{ z?TB}Vq*RUPWQHfJZW4cuc;v=Hlx<TyeeBXd@YFueS-ple_OJn-p|DmU?`zZrv`d(n zQE`$(S-cLOPSPIZJ_H3aiI$FaiCA|-1{rF<ZY~8ZM@GY;{o<+&g?%LztgSi<fRJCs zzx1itkYiZCkie^~%6#(myzde#Sy;6C*M|4s*)xXgw0Xc+Nmo5_b>0$dMDCF5)!CIN zjJmLy(D>a%nx4k0!ovLwr*#Ha*4ieVEe400hfzWag*09dxPu9d#KeTR>L<bvs+!1< zG_Z-WkFogTNBm$T9v(@jsu{7J#bS0=#z;#%6NQQmwN7I@p-Gbz30`s3PP@K~Jq7I; zFZL>~@2Yme@vUk^FUDWaQt;Z6zAHLtVjVPI6*t{B1zc!pTzS|&o<mCAg)N*WCJf^5 z8|V%`tCyK1o+LkF-C&4ozvi^K3Ge>vhxvCSFP$~D)$WdNeR~^+fI+1I7csM^q>K37 zc%>LxBuOYYl_)$eR{KL)bJ&g@2)?cI>KGZB>4gOx9@p8(47Z;7Ungm<vi-hYsNH0> zfvwQc2kX+%@+bPLR2(&=a}GA|_kz=l^RzWD1XodUEHKLbw>3yHeF%9)mh5gs5qg+^ zZFT>3w67418lf#~iPoBRRJe;NT`gJpvH(C6!rRat8yrLm`Nb?HgU`F*WL!Pd`vsRI zm7D(Hm=2$pK{4sT%Ji6AwOIzc?D+jL0JWpY)nB5X?yP4EsyxY4CAV0&0bUGbp8U@b z^bJBP0Y2(2dC%n#p<N8y&Rw<5#FR3`$ErW%KzizV4eOM&w51jJhxCqFC*{K#@Sy0j za&%Ub7j@S|fR;rjJlq?xU~MN<Bd0E|^_)xr=;&c4KixGUuGc&~B%-7JPslJ;F$km1 z0}?mCJ?!A;3};MG4^vf?TL0EtiHnY=w^)?zaNs)_dN&;E37?`9?$-oA$HYTb0atin zz$dU=R15hz{}!|wq1AH4I^f9A4CFM6B;C7(S1$XX-SgI4oIZYL!U`ZQbJ&k&DK`W= zsqn20ZRvM}+Pl8K_7@<Mvg_v<B~$>MD`2RraSKh&4CzBfCNzmW<{aF!kVHFtgaqsT zs>)hmLd8}c1yNtA*kpYE8c+Xw;+M~CS>UD2g!U|D1|0yh=bFZHdP0`1Vv%~uh<vY; z{r$g@ys9TgbuX}d1hZ@l4qd*TS?nOyTEuDAcABJqi%q|fC~4v5TV~ztV{4q7pC<tg zg!<2r8E^C$$3z`%k1J_geGIZ@8V;D)-Bd2;@YBbu9R!4XWA4nG-7maMzL~DwNw@67 zs+;sD1#^5Dx1zB<A>jrPWr)W%ZQrvr@8=$%=6<vM@4B-M?SYOjY*9wIt!0_Y596fW zqy=WyrmWrJk&*WHb}7k2TfrhXDa6L}3o+Xa2N$aubZdkSEt;4+*+hX@4TosP`+A)B z&b1d*HCoW%tWW=$=khaF!6aU>eog)C)edk_7djNLsSp;bxAJh-w6VOXinxoI&O-NR zusb3*LlP45u_Ku>ro^pOjA*F2oJ+vA?R20blFJ_Ze~w~(nNUF@1~qCc<q(-!;ch7G zu(@cg0T*G?h)6i*_|Ejb4D7Ac8fD~;x19NBzV^G<A3Uh}Hu*K-8jlR2_s17VwMGkK z4XOP9_ZL6W5}!$GtIiuK0Iu6$m-=?ezpG)%ZLA7ZR+VDyZ+Ph|%nT>caP)gfey2FO z)EtUml^tkOwpPBK6$G$PWA-y`BjTZEb<D#Kx&~pFI~`&%=*9Q@A4<&e$lzq*Afx+* zfBx?<ko+Vnb8NbU`274mr@6klf8t<m*x-c=nTl<hY)V1#_u^u+*MrH`i_VX62G;2v z=>i~~p{!Ny<ICk5yt8N}6kBDec4xK;`7GPbjn2Kcure5EN~PQ&DqAPkA*X9~0FeXY znAh+6ljTDo4Gd{>q*iF=&xR3@3H{Ua7xBCY@?o^Oj2!NVBa77B!<s7Gi7Lqd?9(S& zeN5#F<5Z>6(r0o&dp!4ZqPAkDI~Sjvw6A(nMsMeuft2(JSB6})wx-<LWN-BYXcjU% zN6ZsY?c2i8;PQZ(L%1Q|%}2JS*nM1EpKyPj9JIwO|FzRtr-Z?hwkHMK_9qh0gVK&> z*`xz5m(1PUW(`q*7Qc&NqvLlehv0fP(q<8Hz}ar|kokkAoc*?6_hsh%U+a8O{9!Gd zXJJj6pEXHTTpj$;npi{_)e*zrSeFtYW|pc^rp{Axls}vRGB>XFTBec621b6PrN{Y3 z=uXD4{l`FaThx~1P71qBy{Vo1aAu?<hVdXlhds~|p#9YRaKn}49^GOrA!gW?y4!qU z*nYc%_{!dsOprZtQ$x`D`e=<2v&$*vLg!ja<bd&3ZoZkObJ1!pQLo4xCqpvCV;GzE zaNXhc{5-~zn_?*#gnfJ3<k{&*)w~Y%Ps{;**)`33(q?FCJ2sr{-r*IXWQZ_mm7a`& zuE6q_^hnSv|5E6%aYCx)-P}W`tR|Qc*D?aM#{JdU0P|4H6Qh~tPUuD5myefGt6kjX zQFWb-KR<P<tO?)+1qH#u!FhOiB1;;2Zl8E#Y9rjt^KDDD*;XkGR9<C&n{~=3otWMA z=2mdYFtarg4mpUggsXIVkDW=`QZY#jch=q=gU5kpsi;a0u=##q3oxf+dq}ITh5a|! z{HzmCC@SwrEhEGbMb%)Ve|2HTkQg%4XevFkqbn0tTlqu(9U1?sgnY;rFDn_P=6Yaz zz<iC`OtoT!vUCt)Rdm1zHxuoSjmda)vDRp$#$aIZ*F+G3CnhG)V*ByR9S6sNB(JNd z(Ai?KP0xg?xp<`vG?B$pVL8G}JIRsl?BZk3=?WfRN)(V0^LnfhAJ`X2B3|w^DG+N; zlU7^pIje<GMNTq&hyLH|Wq3ff<mE~x!f(7i=)SrEwT+@7({#rU7=*HMk_AQIB|GJ4 z(xL%7?7jD{orV>kUiOf3hTE_*1tB>Pj>1{5!{g&vYNy@7m}l3qWBCMeB~8sXlL@Pu z#jJ^glOvpP6o^1~Pqo_4<_Gurt=6(Y==Hh0HFnnSh4m$EHKj1pqPx!lqzfUW3*+#5 zf(IA)+b{o4;JfrX&45zXP)QshIP(cF?q-$4#&L4v?!sp(T%ac$@aSsSt<6WW=~GSX z_avZeWw+>uUp)bi@Y{;{D6Y0fxM2wAe*J~qZ(pzSNAEI}Ym<T*CFMp!=60P{{N{q| z;1wAJ&-)dX#4cINNX(Lc+`jg_#yNEjVC|VidpGTof&3Eg;Nb-WrHQo4$`ybU<!2I| z=VH88Tb^_Ny&l%DT^p<2p*cJI`;FEc9m~t=@Y(VutX8XsTU&a4%eOdayj*)t5MmV} zsvOgDT!3y)JB^r#k^Cr(svnApzgxf*0eWc!*|AK?vEbu$1f$7=b4368PyTHh5Qv~i z54{3MWMGDnn&M<(Og@WO0t+j(wbaPIg<^VsmASMUgbG4oat)74>nx(&ZU0uJvd+lF zWMcZWVl^0<#Pj{hWGw9U`J{@dt80F~jXzJwu9G{?CVz@q`eD`N-ioPXaM(paa#iI^ z09o;Fi&1>K$gmI^8(C4Cr|frt(;k!hW92#V)i@I()rCA29l>0o@U8hfJ2z6+Ju3H4 z4PmZntK;hZVhH8x-PVr{G*@GarO%{Pms&4RB1QNGduiRML(%P%o(qujfIk`agj!#g zkHj1nq6w1MYj1+vug70?WS8;UD<xdsOn-B`cU5FXNv^x8RSHMrm;c9U0||oY&X!c| zZhGglsWMAQRtQ#GQdMb*weu}|)ZP=rt8QxtDtT~SqL^F%D=^?i;`71x11{K<N`4f4 z<FQmFS=nqb^=DPDr@bUTH)kXoHsbHkJ9y2|B9fclvA;W;-Nw%PFI{EApKTg6<-*0K zf1Fz&7_4mn><V{K8)^{tIsSvFnP>ipj~nS|kb>Yn3x3R~!uE%n^IF2e{6ceB<H@Jw zz@7({n}4aHmmZ{SOx|7xtS|0paZwq;+W<E24}}qU{~Wa#ZiEpf=faoY2>w6(M|7g7 zGN<NN?JlCIk9>DWH*s|*7f{=-U{a-~`hrAu@aVc*k9OeZAFJ_vcf)YQw#<2NtR49N z_F`gaXsVrGSZI8)-U%Hb(2+L+6w*K?og>fQJ?_SEAK{cS%oq?EmrmrN{Y6$p!DuF# z*1Ct7p8DLQWrUHiT0|xHInW`k{#Dj-+@m|7+&&n6E+Yw2JA{vsk>f4-9!x;Gm43Qw zWWup+wA-IP5f9z%vR0sA?8h6C8T{dQdf(-y{vs1C;Kpb`UddF&4<nNMVag)1s9#0D z+16X^uDH~dSe!3)1*tg1i)<(;3Mz7*J##h*IGW4-_d7?W`3O}|*|jhZ)gMDOs(xco zrQ%@zqkth>@cYY5gW#_=YB*K9>*;2kuKhjfsf17)^-J<wJRb>{<OVTA6Fi}~^yU0$ zag`NCYFn&CJSzzPGut?D*eBb%a?WzU4q-jm650hkfuJ*0iJPuGAzLm$L{<lN3ACq< zem{Z15xdoPeLh9)XGOp>$%}(aSs9qxmx_GF3Wz>SDp|F;LJxUvN(V)irZ5FA=Za%R z`7lUSQbUJ&xRKg!%#v~vtj7K{%k^K=Rg4+qvl+;s(b46a*fYen{tPG?8I%(RrW+>C zWKc~rPhv;r-u5$=l3(<oiVobhqWih@OrSL6OB8>DtS|rD<ls>nN>G_wm5WFENLYKr zrmG?=N*L@=c-Z~%@_4tJJB)3)+NJZ+GO|jPyam<rPPFew`y|oHdY3rY8=lG*_`;AL z92^`yWQdK2K*0ODY+iL&+mKOzIyoKgYLHdKdD#w*?no>#P&1RK%sZx#8+(F3C<<)! zWhu_*bk-7^6W8^#kG_b|)g50N5u?3e;n328bY;uIjaqLOQ~%|Fj-75VE|hg=j7uiM z0Xomm)$H^DS?9s4mP0WNkS^uFfSW73l$2Dy`CVu^{mQT7olTS2=TgcF3sVc?v{!no zgcOhJ6s=8j5`BXvj1*ujDuFp%r1p?a-^9elbb$mmp4BQ485{ezu`z2eoBohqLrsFF z)L{?`4HWVTH+tD_3tlX3H2RwMDD;43M{%wxS*qQL+7A4Dh@HRrfmt=R860fd;cEq9 zqv<xRb2Z24r8vT^!2v}<6+aK+BHQE5vrZD>F`?o&;{S`QPk6E#8_7lTI_{d$mM~Oh zNcFDgKEzG=xs4tCGm^XIGGk|cqi3I?zPQ)w>L~g4#)}M^@h(3H|FAIvGX9<|27xWV z?Pbg6!q91JYZ@KTU!I{fGBKAV#D5F&4Oas&4M;F?7?{Ko!^Fo4_30d9aU>+PKe_B= z0<MhUaI)pOhlh9_A8lL#nws&0?F9K%^6|L0b@IL_oJAGq5@aE{7dZ5~+tgZ5Q!?UO z;Gxf(+mynQFAm6tZX}D1Sbif>+Jj1^$p44zzal^mDJdOrD`mD<(P!ue!A4!%h0*-} zGr+>iDwXkqb!DrJz<+*Gsp?)mAD^&Vn<w>N7mLYrd3($4c3)md0(!0%i)09RH(0O3 z47T(7l>ifO`{%Xwh!=Binzunzq3)8JEXhe+ne^cW&5SL8yjO?Ah`VpqaPZHJw?c=L z`Vu+lV_(G)e$Qo#MgpcQtH7kXCv#xD5Pb1~IvC*#65woQ0cg&`Mf|T&APVch2KW5Y znW9RT9&%50I4<IEet5UmRy-au(xE$puR!10;pf19N0+<?(8H>+2&Kve=_2{g$Uj~E zOTUE-aMcQ<bMznrYiAcov$eI=WW6zO4*_jJ7E@jxpeA~I{K2ia+N10uy<#|yxYryW zp;KEasun0dPX9CI+pM*%GN7fa(p|+#PEixUnIc~t@#dZ%-D{%^sG{X{>_p85!nP^L z|1u&agJN3$nR8UKn@x<M{WZZZdM10r0gSqD&rg5q55_iM??6og+TXi8Ew#F_Ib?dZ zYNO*v$dlI6UAMvqhu&!X3fuW8We`jFRbEXiNk?6*bXR(9gefz8goG~+Uei_6hOP6L z(o>s}rzQ>>T0$Q9I*IuBFp=(T{+vV<b4q!v#(f0&_Kh_zZbm@23Z}HGs%md<?>7u5 zP5Z=@|BtP|j*6ps-Um=10fGdAy99T)MT5J$EE?S10wj>&y12W$yIXK~cX#)@<o$f_ z{rz!!&)GS<XLe_%s_W^h>VB#d0pNH(Yn!*PHzWc_bHH78$;t-L@PyaIyNlbHnFb&X z)taUs!bJ;+R3tmC_8V8Fh9!snm5tunXV6E0Kd&!!I=ahLXMK<7N-i$#06_}t1Ga0b z0`&SS*H=CWk%Y)UN=Og!3J!^tZ%G0QVv$Wt$wK#t-FF(^O+rSf8K7=kSmqZWTdQ-U z#M>Sd3mMdpg1ESNJGqA;5ts6->{*~GEr1e<>yG4CIB)Wca@i!T0tEpC_=wtyJ4&fh z%fqA|#OQ1LjBT+u&n(L|etUa+L`sjl(^l`7M}L19S@Gw~A;#_i<oeo5d_ty?1}U2h z!5bpcH|q)7`994Wjh0Li)o`iNNC~4R@d1Je<4l(jZvE0DDI`K)sJ78xvQC)Lo-~E& zzhY7j4U0I7jjFk*0Kw5m@lNpkpWcmWLNQJH;`AExpBY`du^7qT1xy!g%Umo8Mm9~Q zxAd891U#$H(*F^%Kic<wdy(`b4h-rmwScEBV&ESYSolK&=>D8+Sq6&Mb4&1fko=_t zoRO%T2}e~;46sE%+8=X-KToUUSF~u73TK<Sy-Qg>EA=5gC@3q_K_zTyX#sD$o|j1+ zD+P;)-C;y87WOa>e#DK}DoF2itxG@8#z0V<Ep2&$2)XGuVu7DwQAO7Z4%g!PQKPZ= zUbZNn#)k}$z_jVVs)=M$9oRwxg*GRt4BwMb`XmgRJ!k;y$CsV!+kelx9<G}i;F*e% zTtdLKAMZ2Xcs=d}mTuGGJVHC~962ve%WjZ8c&B;8SbVjCulMEaK93;h#7a70yP%Ph zapF&tA2tc5XKL>*rNd?$;HAQ24pO}`h&#){p0e}JXW5ey9ZAWBbAhoM`|J8Mf@2=f z;sKh*-=s+oKD0j832)<H{f>@~(9qBl<9h}M%x?~7aJiT2tkK~A>>{$V91HL>AJR46 zuaK8F`dFQOv6#DCVK)~qDz;P{IOv@DJaNHOeMZAW9f;Z^v18#?y#398BDkMh-JwR( zwZwH0VBFtXxp|`QOfyI&U%+5PC|;xKN(<OoA$ld$8$#Cka8SD(i@!2(LQdqT5BpMn zbdTles;jP~<`;tq9)e9R)*mL0^jFYFLBi*Honji7w@CubT847d=3hP@z=aj((3}KS zr8HC=H~Yuh0I6bzc&@%(<TSKY<&}Z`Hm}%avo|VBai7^vM!VHp<Fy2vy6ymN2jD6; z|Mzp^N%y4WWa%p9k>-@Ejw&k=5fMqrAb%k*;L9KeEy3}LCPE*N((`~lDdq=@)ipA# z7WS1v{_8M7<p>EMODii8@_q~jzAp_Gbk1`dYLn5~`WXV#&IkG1+mqOWM@xO+dafI7 zaVf{bL$y^>UohBzf!D_^FYt%2#X;ky%T<wRHAKdy;U7@zZ)}7MQE1e=_V83YYPnV^ zKZmO&f0mQl<dtUFc5L8l=x&hkQ9pUr?`-t6{S|SfMh=T%M@UFGj$d-;+*x){nyu{G zNx6YX`pGC_Xy$#$_u&l$BRJTJE!bY4NV_g4{@6(a0G*#}Xo|()7b>$VI0?t|y9bb! z?WVRdwlmPu6crR%bIO!vRNS9Tu$B`1aFcs&W91|>Nhkw_tfZ~gucfd4*t(gVR8pe4 zTX9`$eYstVi;DwZ*c%uaY{M?$azjHyJMIowR#nwh*5S5)k3hjwk2hf(c}}<Fjc4W+ zoVSZ8C`o6uxQ30zCy;8$YYQs=ragce?-o!u$x%w0)zQ>T6t5hz;lz(m>t3)K*RTlp z{7YH+>rB@dDI|(s!MCE-Iq2prV*GlX;FtGx4Y23W@16p9`IgjZ1Mw%JP1zu*=BRvL zM?IT{#|EoF`@ea}MWk|(RE?HZB&bl@s@iiLis8f5S4c_yj+Z-tM-RCN8s_fbc<OgC zZ2;a#+ohw+ouTi0Gcz-kaw)`RBcr3?nffLsx8SI3ESd9cqdOqU=kLSS9yn3x&QX$4 zf0V*FhIc`Tnk$PUnO}-8T$=j2`2;R{aRn~V0J&_$hMda~g4%d@v_}D<-VML}*ch^@ zj4UW!oF;{&pesOy+1Pw(fbzCqgQ?gnI{;Y}VCn+8<2WO#J0nU=Nt+RzBe&W%v#1f^ z?QlJrt3z|HrvkXqQ}dB6HAEsjF@Yy(nccq}kIT;GD(Ubi;jUdua-lpBvvHGxg(A29 z@V@iSyL3`61i$=tE8nZV$x%23hs;*O>}9^7=Ik4r1=qs#udT%+TiY~)MHaYt+Oay; z*1-FFuC!?6u?f@d236?@GgPv?#FGro9|bOvb7YQ=A+?rs7D-=g9mvWyLKxf5uddKO zeU#y`va)&vFQ)=i?7_>)<KtaH8d}QA(Q$FRo12E+TDOkKDed`x1LKMLXR#kAzB(>J z;O(`Crluq~UVZ(y@D5CP>|b^65cT@*V?G2QqA@ErD};*bS4rYu1ea&VH5w-p)g$L? zCZhStMQPxr^V-TGM_*3HY2r9FhF0VBBTrA@M-fqx95@8u4ycfdw>zUNI?t_yHJ?|{ z<NoBcJ*>gg(P2;9)zC!7vymrxd^xJ^fHrP<0z5V~h69RnAg>VWt7Z`=u~Tnhr63^# z3n?4}5gvN+Xz}b+0IJrB@*n61+$VJI&q@>oekSOjWMc#gZB~SFv>Ty+7v5q3=hmb- z6*dxRdJ2Atw7q^Q5{G)paG~gIjfZ&fC-ra6q&rB|g<3`%Wh(fV$!u0FuC8;8u@C7Q z+(fLaJpGr2HE-1T5DvA`@*6g{FStDTH_AL{;<}9ak8>nLoy2Ky6_D@{^t}7DzTEPC zy|7pM=ny<AMOEe41^P_zez*H@^)Xn>85)!zQ1&p=(`b(s>7Yus`~Kpj*KZq@N2wf0 zzJbp`xc(9PxfM^Sj<`XH?2lD@_3>Zu0#U*H1}wK?{DE;_X5hMx(JEnmE0bUI9p@)G z5lw|FlH2DQXU7#P9G%1cl3_o2@>a5WxwU?O1~aWxU~A6j^*}QVWM^e|#gbxZ=CNn5 z&naqo^~f$OEk25KbM%XK@oLHS@}hV?T`Ay8jguHKxKFr4V6JnSJeW$KI&gydi2ujI z(b4sI9t97t*<z+>PS;bmP{sRtLi~#`torCm2OSWeINy19IFW;cLn$cL=RA&+t&~Xz zS;+y-hsc)x=7?{7!I*ZHvAkd-1|Jp{R$Sg!*`aSRATRR182&~`vuAq&zKdEEC9Saa zN#Rjx#6cY{6I_uGY7r%aaYVr*3;nmr5PPmiu+3h(D2BIc@P?hg?9POy$0KE$B#n{6 zuV0{Ss#m<RQ&^**tW6C>i$pGUXR(iNPz$Xh$_}ar2J<+%;vjsh%@tn`N<k*Bg<961 z4k(=R6)n0Xp^Sz!qS$`~J%cYBN*uAN09VH{PI$~_JTAhRqS{gXStBHLqReqUf~xzH zAOGf&Z<|r0jk|q=3+oM)!O%u0kH5ol5lNT11*WHhvX`W<WxhB~nxMv!Eea;r8qgWH zzN-8AWrKHb%xa_FGgRexx#g^*Yz|c0gY@Uu)Oi?+)so1uwmxGb{#lvyu!-wwYU|d= z+f40HziLR`=v?UEh{ui^z&|=VT3A>}A?A<!NvKL!R@T|s83-iEsdf2!CLyk@JOy5N zo+*!KS=`yZj7fnX@>p37>j#<5PC!agT4kTI$$R}!zgbtiuLU5Vb6kIKF*<f4zq8_p zl?z8(H6W?Ds_3EK%GdZ9C@uYjxV{X_&8sUwHY6m+{oK=+tPqnXq+vj5`pw_1VlI^5 zryDi<HI>MQ$HR!$3X^9=)nRT52MN3Ns{#oQUeqE%buR5#xHNA@yZ6j|z@o-w-xhcU zX<#w-qG-@BVYzTraZ1gG`Y1tY7^(2Qh7DaN2OJ3$nTQpaoD3*qRpD{zzx8{GrZ6|~ zVIhuKS~Lb<(B2wZdlb}7kMHiE`Wym6W-vGv^H~qncN>Ylm%Ov7#&dCj2%coo{D_-h z&l?b3JgL8)#6g(BYcS_ulk7_ReD||wL+_kld$qnm__2dR%t{a{hEmwtrm(}ve1n@A zMI(bPwRw8l_iZ52z|^n;MRe(7hPK&a@O4zx_O~hdEg^jNFhj|%jJ(Os?S#|jkMi>s zf{=MC#_>l@*>E#(JOiX5s85{MoedJ-Y;vW-e6fyMlW<%$S<fCDpbeClePvvTi(2PR zpq$|&&f|Z|4#=ghSvx5tHjv2KD~0=IZ~1o&!W|TUOG*67k3=Xn)@Qj(EOIKO>gDBF zOlZ+b0)%dv2|>v6xVwqt_H2|_Eqll$KNLr3ld}n!-H95o6J8EIn6k9AeA6?;{@P`8 zy+2V`#}ST%q+2~F@|>Z1i%*S1zdz5kz5&fqRTvy#N@*?s0S-Xk-`UwYA-o=g|L{9Q z0Anv4I_A@F1j2p~XbSZxe_yq6i9i@;K2CqyP@+#V45WcjzC9>VpNKbYGP|ywOt>?G zB17xp*-wFHymtPksH1@V&E?1nupx$lvT5ZgxA`wf#E*&RO<|Uz9=NT=3R1qgPio-y zJfv3A$gq(C=*aM<nvGD(FCY{|AbPueA`qr`T6W|<rR0n$XHzu9L)6zhT))}q@Ojy2 zgpvq(`qKUYm9r8Qad$V=;7|doPh||Pf0yuBNIQ8>$90O^F&?n1dr6~BFpMYQAUTR* zV`SHDK9m3D1;y8kP%w;2rOe;W`y&6q793QVvG9e99;i5~UM3f>$9j@k&)A<P<N4W@ zM+>Ftb*&GU+a6>?MHl?Z1j5d7NlHPCYKuhK^ZcLStCbiX?f$SO_p}0MZQ~C=$h^|r z{(9~l5`;~}Ney&X^RJvgABxPYe`i_f3&Z=vm-;z2Hr5WAAgAQEt{(4z-~1wg(jzYF zw^Vuc>{&hNaq-sO!uM{o-I$R58lUT*K02uZyabV3JrE8OlV26!dXy0mMc<-Z`DwLm zXg*)+NlYt_rcnHbMG7phCK&zX3j#Ef;%!T4G8J^l3`}6;SBGIsia`2l6~qU{exmfK zZ&0S&A^3Fij3#Zi!W<Yt7iQRv!Z)Hp4C$4IjX=Wmj(J`tT)ozIy-W%YyDNzzi=S$8 z0sKvT7DMZ#CAA;z6!29=82Ee9G|Xsc=@Xa`P+<3y(-WxyO|A2$P~g?+A2%n3yaJCf z*0$EyAxIFVQgyAT1#hXq{lMyLabTpbRG@1%Z2wD~yi2_H3(jDvuBGoH(g}g9PI=zr zCG1mMw6$?sFf(I&k_KjJWuPI_xyai*4!zFNY|e6N`$H2;?!ZozB!`-sFbwkReRc%c z`|s_GG606SP<0>f?U`Cz8#7ko9kcM--NX;B(DNnNH-GJ32Y438PHRtc65Gj5FJwul zfQ}UH-ka3uR<w`<_QxIDv+oR$0a*mG6>Ivk*#n&+-ZZ~meh0$gf6>LrZT}>P6fW_b zGm=4H72KJ-+e9*G0FfOoUpjIy5C7C4oy-q?8;JTWdK50mYbI<VL=?g;Z>AsVVc9nN zY^m3Bo23I;U;!gF8p;#xhDQ+iC70eWVjbafeA<E!?Lx|Q?^iLI#^<Eq(2A_U5xIeh z(%!ZsFfHB5vvTYs5^ho^CFfU58O#JfzYqJ_VnENC+TE-{?t%xqOGAwB)m<MZ9Q*$e z(ReeI@;f%d=t2^PN!2ToY<-eho4DHf1}zl0d^3AH$^$3?Qv1YmdoB+0ZX?6Af+EqX zu@cG&vo^fZ33t-MC7ip1ZG-pP9qpw4E=7On7Fy-OuFW61XZ~Wl0W1E9>@_~y=W$<Q z;B(*o6wd(koh;sjx0#-MIgnoq!v{<*4i0A4PdBD7`{>H_+_CfFf2GpMFuLzi2gf0) z0lZfp+p~Fjm~sO*R9x?k94qN-9Xb_wY)p}Wd<<2Hj{B4DmVxiYeoidx9`#};*3N{~ z2*>MOS=8}uAc$8gB!R>QT&D8R8CWcK#^}opacOPz{4A)4Y)u9R(%j_zB!t`y1lYEs zm7f8&sPMFpU8&~r<sq5IJ$Rxmw<J2hayN?rt`rv>zH&0JHs6Q>JH?skQHb#{pwt6r zf_6;o708$lE<uTo6T|$1Rwhz%>ag+Ix%tJa+9afzYSfstqHp?ZH=0!cb#j>AJf|p; z)}hYMAOO%a;I`@1LKtD0*;R8%<HyZnZjyhnrR-;VYiHReM^)!9bA4I}P{P~9B*^>i zSyH7JB!K9Qsu$RZ0T^C`Ev`<*)2)}yWNCpBV0AUK))e{gp_2z>6;`H}3)4@5N5Lvb zYToK~``ugZ5sL?`wo~WK%EtsLIk&e)eeQJL${%v|D={h@Qh%YW-A2(8Z=esd40|4s zhlyQj2N!q2X54pY3I`Y(u0{^+*!iUNjOMNV?9_E6>29Zol=NuIDKR+67p>}?vQBvp z5MVjF63DxL7IjDgflYUP9Yg)|Fs$CAf|LC|8H%EgKcpyx(spDt>j-c69JY#n#x`~g zsy&RUV#uiuT}(<Dm+Aq6sWZ!d41ToRJt_eelvf&6uB~yluVL8T3|gl?I?M?*UEl&0 z;5JpVCQPHo_#6f3Jz1WM7@6`}8ubunTyO{ZfCtV}h6ZSLp<U7Tm_YMACREKKaT18E z;PAU%!_=37F@KwjYaRm9GID&;dkcoiI8q*-7pQ(myK^%q4=j3RkBE(ppbh9k+ABUP z#!D)%tr2=qN5d&9w;=jq<?od)ImwS^>;)9(Ki%W8oeI&u_4fioL0U5VKn@OLxAYN0 zyM*|$x)jTpYd4k}4)jx+ik+ogUN##+>Ec|Dixifmr>1`I=nzEXZN;L~yjb1iS(}&^ zTb0}{U75Ld+VA%h<FzsRFyS!U?f=;mKt{&Qe6il?M@~+Db8};DZLQ#kk+pa2;Uz6C zt*N;XwAByJr?wgP!c*;n(^J+~B?O+*0gYi^78}jww&f58beTEF)4h7y(v;GV{0AG= z`wF-6Fc9w&c(<T_YCtG*1-29t0KjW#022i#Ew0$<0G<k}K@%-a%ipfx|MYEl69pX? zr=6aU??vL5f-E!Xvw-jbw3lO<FMK3;yC?nvULI=1hb+A#4GI)xO`OoK48C3rx&#oK zE$Lv%1gzmXO6V%BRM_XH)HslPA7RNXE1kKcvV&9QfiN2F5>)XXZUwPJh*WCYDiEWd zfvBfiUn-mhElz&G-p&rfQf+P-J{LP2OC2H~W}&dJ{4Jmg`3n&&ph7_n3hLreTWg7j z8?Hv*bZ&|@PAZiz1=d48?Q(L8)not``Q)vGG`q#*0k(fsGrj7#x@Bfy(M*<-EUava z_M@YyFnFJFDr8*aAGgaF*m`VAw&xqCYUdpxsg^FaCCh4U*Hh_wp|YOdH|lMSWj@oU zWnC*+LaRASu;StYnaEVUUU_udI0SFK;e1cwM6^W%+&){a?Kraqvf#45F}AndwMPvQ zu;P?F+LnO{c;oGF;AKmuBS{a3#pU4bh6o+B);x|z=#x2VW234~MlLUI)p*Z;ijY7e zjg9s-t$mBXkY|MR=5#zM6B}yaM{cWYl0&L@zP68n9Zr1nS6k|!1|Wf(+`!6P3_hO> z0;937U+8`$JuBfT69v*A(eQA)UUWbBj*CiVhs`ojwgat|MIt!wq;s}MBwmo3Xig|4 zSF?kiBCoDq!3aqj@i!M5JG3i@Pp3@G(s!T~Q*<Dx4kdOg16kw_1qFR>N2eAwo1#(* zVhfb_+irq>goI<J=eK|-6=qS0^T$N`M37N>5Mj=HziL7h(xN4+5vnV!gcrF5RN|Cq z%xvJRI2SOKTL1h$&+!7h;*Jln264+ns4<-P)+YH0yhK<$DUZPn?0op@JneoifyFtd zxLVz^CnkV*dr*>)THZs1^ioB2d^9;1U2ExWrqf&uV95nGHh*Xn%d06{S-`*W>OS0V zI?uTrXAH*lwliE^@<CRj5WsqUKy%Dm&L74DFzD}h6TavW#@*nNL~(0q-&Dm*iH8yL zaDofC-toV3kYAOHU&-qf4AGtqmmd$7?+?;3Sv`jsSi}G74wf<3yc{Sr4|zKe?4M#u zL~N?6uC1)DhPEg#uXb$r_Ilz100zFddP;v4SG8cQtgrr4KKcQs`Drw@+UBn4tn8aN zL!8FRL&=ONQJTF2T#fT39@~$;IM-LVEiuac?Nio&enhyk!!}DU1v>gA=RIoBepdV+ zrne15<g32}8y8UuIKKp;9m4Tbcl8zF%{e@B)l6!KzYR>BEeC8>Xi@`e@E@TF=&o|g zM?a~Lv-&TDk*Ga^M10VLPU$g4-j(TBhsZB94ENHbCp3Rbg%DYl1Bb`hJ8AMIxeC5x z5`CdF1#EPc!y;o!4*2-^Um8um?_8Eo6SgZr;*^|^Tb3q8+MnYyG&x)v8XGj$U23r| zlLV*|e44-7^O+y$>)c|$iJdO#@-3?CZddWnetq)or6qL2o6(lIs;Q0U7LqD7S`&Qn z55;FOobK4j#>j3F3r*bQ=I<C`Jy$GGjNnJP{=2;vhRy2Sv-KJ*-U<_jkC5qdZeaTG zA$;_MC(liNwd+ssl9Cc)b9C$)lrm(#8>{uhg!;DSsM|ZEJvq#|6b4Ix@~V4Y3qsnI zaaXkZY;4>dMmFT_iA`cfY816>IeFUCN)nmt+k>z;@9uOy<MJ0uNSo0<EknyA;@A#k z1?8E>w+>iJndHYo&(5<~1Qylo+x@7}>Ofc)_ZK1l>ez=xu7^f`4%(-4>h2d<xp#=N zlLBiE;ysf6jt4LBRi(sFn7I}sgPAo&<t=8zj>5OAOBj<XOn_uwwL=;I{71~v8#vBj z8Tj;}FE#7j3T%|%48u{VRiQf-;3Cc_fzk=S%FRm5V4N^GRpCHWXA!JC=J`()-+sTV z4~pC)POe%R2D&=34yP%1p*K$+0tmsDx1;Pp$2xKKF9V`Oqpmas5kDx{s^Ug$h-ASJ z!6{zY34eww0CQpAv6ITss-@#~qUDH(=}f#O;~gd39#j`@MD*kMp$GW(m^&Eh+Iudo zYN{x^wBcLCSeMV>Z9Vcmz0l9U;hRWuN1-M{4KBpy=z4Q(Y%P69U*DkCJ@l(z`A^-I zpJUf`^#LU+a{<e|Ezi0h?hDBmde4#G_v49!&+tISu(k|bGcE&>^>vxFbVk>c*TSPT z4E;<(%i&c#MS(hhFIC*<Q-S;d%E!?qUU#+WoDS7h$E<vM@3)7UHHN3>_}XS%!`G|; zL>+P$v#-eCN6Q||Jmwp6XTw)7VbjvEP^V^RZ5oKcvCcnWw3kB4NJ!N&^Prm8?Rk)v zpmu*G#Y1oP9-$kWz?I2loS{>}4tV;=gW<_V3Y!v0)q<Pw1Hzk_)xl7eIE`l~6GuyF z9PR_TxR|Cx#&0fh?CjVCrLGc8R&rQovYekxDUg@WDkd4*fgcM=c(b+SORBzHY(S!1 zIlXEdL**!eE_10fqY>W~*+`ppxmfbq$be}mYg@zW<4WK-IJ87+X~t*a7-&ZFUkcKg zL}1TlqH^Er<?~Mkp;2=fBlv?m$z9Og8?%xFSIz=8z&~-{T`C;xzFY8rBcF}#jTL8v z=v6Z(+pW5=03gPEpg<zr0P8axSn#u4K(EQ8E~`w&v$arl4ekd%Mp&3EGT&`zSohXT zfSYaj8~>RUCCCtlcqrK7bMGADL#*{1H?WeF{i!vg9ZtI$;O3sQ7787mp2Tinb#^bQ zi^kWwfpd28J3l^sEqaWX)o3<^kr6=?w~fW(YKiFi;waT;gv;U9%m65;y7$M@AK}Ko zTK)3_Mn@-#8JDsYLp`k&Vm-9_T&X-~i9A}Gb79wq_A+U-({^Etu}Q+nMoTrBq^WgN ztJEKlNT2T++{-ukq5tzy-dz+<A0N>>j2k#}JL&qLzNAa%MPKz@RV3CTNBdaDm@qid z7JKDfV<Q)%oU?y>KtksZVm{JK$jUIH0Jl3=R#Ly@^%p=9ZYq9bo9|t&IhF23-`H>j z+n|LY1YLAsR#whDb+neD29ZNX(03~li(mS|Rx_h$^-!1N3Qy~;ONivipHnU6q>yk1 zHPqSq3cjS2*ifrTHSFl3d;aW}(8=$&S&9H|NTHM@Nu=vgWCxC?9m6rjDXx1JF$wBR z+AV9xsjdpPgo&8pHGEB?^Oqokgk=uT@Ha$rm4HzY!8b#1&4G4pDrFSZC4*zFt%3Uj ziDIZ+rym0`*Sxr`hfqGQfQ&x&+|18I-p_*e?p9a)v_Mv!OUhjQ@I6!LVLEvlj~5$_ zvS(aSCgs9%w6}=Wn7wvRd;PT`&V{eS{(KpYRyQJ+JIvXRkke-&FWa;>f!pH<WpkJ2 zv#BNG-Vx$nO&4<h5RaquO(T}JT<oEouGuiPjqhGQD6WN;;2}2k+jeLFdiQz9*q<3F zSlHArW?UpV0eY@!$6X~ePglR57v`dm#9(_Q9`Cu3y)P@_7**8N@J_YC(CFvqr|i(u zB5Yu=$)?E&^?gdkwUDfEL~+Ew8W9I|ZU@_mI4#kF_lv<K^UhVw6ajOBpDOgvwC{AG zGDcKq-+r~RkwQUv{XLhbGf)Zn1@fy$jY43C19fgObSk889}NRnAw~ZN_xiC<w6^mx zf<UCgEH1)vv)^Ew6?-fqHVn3nt<5piajeLMv_EwlUZ7y7A|e_Z11Gu6pu`%hz@AZW zo>k{xuOy*B7CN$!{<foPWrt(de+UvHtgQXCv)Jc*xtPwNx)-OC+MwZ%_^AN_qo3HR ztbrsyhi1=^96TnHd~d|mDQs18Z55n@aW8N83S>lWuXpuW*5&X3o$-!zwmeI5+nfA^ zy{~26`3<Wpeki;Ddk5g$XxV@9lmhZYMe95xz`5L)c9C0s@#k&)daK;+1$ONI8(h?N zX4Llzjr{rs$@}~QL$o1!lD?IpeHKc-hlaFaU_sn;xcQ`1^gjO(G9EU4R+&=)u|Gp4 z)zS2#x`|K@V*FvG2Klq^(k{v%`DX>0kr*i+xj19AMvZ)KkD#Jb3MpnSwg!>RsqomZ zUwtrM(WaM#D+(q#+X^s&u`G*FsoG3pT7<PJl$H6HI!T%b`pm(fP7c!GFZ=Rvfqf*@ zfD4YS@*(Jp40@o1BEN6(IL0!8z$d=~$02*1V8@RhrdBcde)BQ(*lXQo-x>Cm$S#K4 z-_sI^tQYOaD{vYyH?Md0&?f$}IuIzL2pHt_(vsO$z0t9RRdNS#wCNm!yl+_|G}f6j zyo)A(UQ2tVrX)l}nKVWH4G3<nv9aqCe?j^az%=}7Oh2>h=Y65<X?Ofi2rE#2<T@hS z&33o0bM*B1a>@w8?@-m(x2ph7%`L7dug#KMn$fEkU0LEf7UKnPhpFuMs5Xf*hbIxF zI;hq<-#Ch^GK$ODOk8W$Yc4FWZ@Tnjt%>gr!4?DpJ7X=aKu-YKr$^f@_YnNg1vk2H zi8s?crTNSDSHV7Ne=Rhxe8K#P4&MoIVcJ5{=le$zScu3k`flw45D-j0TJ%fZ*HgzT zS|dQd8jP}{!Z7&MlFTqE9V1Uyad|yP){dQqp_#?m)4OfjI4I=g0nUf^+cQLS%eLkD zN40KxKgzH|hlQC%BISNZ5CS*zeNTVa0Rmxtm9_!TO?ZT>*H{wrf1DXIK$B_X>*+ZJ z#A9N~a-%8)1h%}YoOHD^9N+jh>>_9W!BIY<ct{%aC7)*8>)kBF$VEX<KL>P~r^C@K z@@?u^`A{*za48O3R==WncC55OM3X3zWO&`*R*#0xp*t_yCk)?#RZa#^87<xJB-sDE z=u4rhO~nU@pWKUUk^)-j5D<N=UjD3FZym%0PV~i=qvh7<k`~@P={Jrw=YIi;R&vH3 zqLwDcrv4?Q`FR56ajl_boHd9(#>bsA>63l7AcQlY=T^5ToZ^yWo7z+l&vWr7wj{z? z-glA+@xa%CgS||K#l-Fk2s_zG!ex93PBuLE;Gt0g7}SQ7FU)ih5FNd+jgtrJD}Mu} zFh;C$2TG}xM3p3Eb-YEbY}|F)WT+HB4IL^E9u|xktKaR;+PTKF9t@Tdw%>seOh1IP zF*Ix$ODE^LOxd(s=js_K0?22JasMNefbgd#GE`_nL<9UO_Zp$eYN{ca+HjWtrk~X~ zI7%cGXaGbg!UfQekIc){;c$yh#9<&Hz6I#wEjCM`%O31F59HR?Fd&xaOfL3p9$xj% zTsu~Y2uf?H#ecQTZgt3$cQ6Ek@Y2!L*Ld0Q@0%-?fv0t@*Di@(XZ26vF0PjI#W?@F zj}-5+Ri=7z<anlI_74y=$jj^o=(okU-@_)iz-#h3bFv>wjc-N{cBB^Z<LRQ5y_)Yq zl<|`=+^YU1eEI&&_MoA{SwhJ<8v-9?0+RW7VGNs)IfUbQ09W~sWn0U_98l}w*Z+xI zl~AX5g@4pM$d<{~<0J_RB9!J$Mk1p;zF)@ED=_(BV+Rl0fkMw&meK<PLdG~(5V>Yw zrzmcmwd5=Al9Zzsm|ik~%FqP#fFmEAc5qfRt`CYRpG-aI>Rq(nIG(*=pE1yOo1?dM zk=bU%lxe!@%Z(t62s|*t#vG>o|51bVx9~=Eau13}Qu%JIfi*Gosn?F$u8h`!N2kVS zp&xjD>&}j^rUG*x*Y3DZKhoAKj$ZexlU~)>rs?;OET|5K*rwoXpxF%%+E9<#EQBuH zeQc|2&Qu(M0t@v2*he^-%d?9s+EddEnVp5~pEm~|Q!G@~jJ<Sag`-*|v#iR@%&ZT` zoo=ru=(nd+aXmDPR617#POFM^ifSZvR-)B;%m&G@lykhE(0Obqcw5|)yd2aIYZiQ} zYZ~1_Th_=AZ3*NI-yy+#pZ}33Izq=s8?>Co1+7U5L~_R|Xq0m#wyBNbGfx%e<R?FG zvCtgC@5ri#S(mQx)p&x@>gBd;hoVubQDTv}Y%+mmU}w%^OuB|hEG(J~3%#@LI@Rj+ zgi&LWuF^%LPX9tUAVTc+hMDgD0pB|gxFv*?>G}&LHz<jchbK?!Gx5jD<tuq*i&`@@ z7qyj?HR{ZOw90byfUlb%oe1jszdJ*<g&2!`%*U1nTbcc>ua?d6XP&c2y1Y-?DLSq7 zt&Ppu)gjPeDEL37jicZep2f@wK$T_@&9#s<-$6@A(pt?p)w{?KrFmOvP=#%yvqzGl zSgQHWcXruzz<O#0soe7>jwrwBL1TeoV`=TOBWX`tn@8jQAKx(s+?cSm;&O42a-A(E z6e6VCoD`=10Js;5q#c%{#g?VZTBw_g;-wOU0?J-NnJXr<+S^^`A<G?2obo&k%LWFm ze_aNv{)7-ks?JutlPTUwtKg<DHl4~x4)6SEOenZhH-r<l4U)0|Nn;#f(C4K$Na5{d zA=I3uuq<U3Z`6p|tQW4BSKGM#Hm#nwfnO0i?VP_y$9z}g|44+xpIDhR7RHmvi?cOM zl42DU9-15IL?;u}dGt5Q)QRWda~FYoW?g=XrxAF|*P6R2<al(@X&gxPbQ&#><71TA zdFlVJ7_X8J6{u{{;|64>wnnkk#ZBXmc`&`!=Mvrrh7|S-27rC-?YAn;+Xha#${K-D zuLU$-JbB9ias;gM*T<!FZf<VP|5t#detwI)a<VSQtpjy`d-sNf<SFkTVBOcQ{;CW7 z-W&3~+|J`~_TW~3s&h{Tel}eT{+_-X&41({P+Ed@d5qaS+W4|^Cs3}=UiJS<&_#Q@ z2zRNW`ES@w)<Q`Q7GrMB?vQXl7UL7%n#t^@_9>sk;}7%hZ#H3)(K=dxZm%?4iXVp6 zy|$*;jn2fH>AmNLDmn&TCZ-Q`lXX7@2V<$xs=j>qaNO|cpPDiX0}*e5n?32@?&Xl* zbOv61C_Z1LWmJ>L{SgRRVG-=-5%D<4hXm^~qd31@r4UmR!)SF&%9)R$Rwt3VI7Dh- z;kGlrn8<54Z|839X<a~`Vpk$bBU-Id>!e)MY8;NWz+s7mYT)J(=5^O;#mh-|W^mV^ zT8{JSC4H`oWNVZnw-=tZc-z@ei=GGR9S}kI1xED^vg2D_qi)g;hw~7wuOHi<{Ed|U zb=04h;*3*zWfshWAnB;TVBn)RZtAab5H%DO-7mbiCOYx5UlRAxd;1}yRaiEd=#ZTv z(|mPT{Bmp&S=MiU>hrMvJ$^@x1A)Gj51IpkqaE`HHv{1D$6?|}gYPX&%&N;vbN%5w z;O-07L2baCL-N+L9v4|0bu5d4#ChdK-1hznq9f@)OYdOMDEG;zYa}f-L_{uA@<)pu zI8daDqLkiV4hKB`+U4!pjuAD*Jma==8WBj79WJD?W?Lx;5c+fLw5rPI8tV`E_&VD% zX&Zl&BPz^ilbPz5|3+(@E<MT>ogl;<u5B8v#M9igVE+N!{eMDxmEaB~_yHYo|8QB| z^~G8uNyw)CqlbMfo+;vCcS>-gi%#)1OsNR<SRRK{^D{?=u3|k9<#}yA`{gX3F7pLz zhLs}uHc~lzCAkCUH_$5pyjQ6Lef2>#UBpt_?gHKV0z*ZbliyJa#*)A@?^nJ(8Q-%0 z1N9av>8YimaMu4sB2)ABk)XVlyySrrz`8i=5AH)?D{q2B?hU3`?By^~CJ^&9U8Hs8 zs0PR6hXU!IUOTPG0k4?R>c!Lw6?uTRB(2OBsz-}OT5)Cu-|(qAzSq^p14l19_v(i_ zgkuWE%gfiNG+QAf<*I^CoRVXqfsPJhgn!o#kads%zusZR<Tnm>iJ939GLZd6ilz`i zKj`Cm_o_L^*mx1w+;-0(qcfpa@SHuk6Mk_qbB}ua!m2JByX4|K+Y$0aPW!^2%Dbh8 z@Oq=hK{%DS_PpLbhJSx>e}*;ry12EeT!lMLuT_nA_HKkf$pXNy_h*El2l73zhb?z1 zO)(lIl29~XZ`mS^02{i3_qbd;OKrW+RULj+iLjd`wK^z59|tJrl{xrRs>)ZD6PjPH zVDj5Ohy~m89yR`0dbq+|z3FPNd&4Ib<qUnYj0nLnQJJNAf`$1X96SF0-!*@JMZVk( zN3{9tH-NPQWKdQkN=<3>IPsueRrxjIWE%f)G%G-K>*=A1He?--HzkU9F^Xy7nmVNl zm>Sd1#l}LPxSKw`&b6!qG|=s7Hfx`k)u*<Ai`Q}fc-(QNGy-Lzijv-PnX6js5q0Z| z{zq_bNQ8WC(>;}Yh7-P*JLSi76<0H3V0FitG$rsG?k<=VO4AWip8{GuLHkuh6g^k0 zzug%en|j<^Aq6$>n@*_o{P_sxzSX36WX?^QMnu-=u?<Yj2y;G-KOw&r!r0pC46?K! z-3`3%ISWmxAQqe6i=VCTU+vj;3~@4vP__36Fx`C(y=MuN{ikTAf*B51i@_u9s_)L! zYysd=O-?Bpn5zV)6^BUcysVRQxRmk!stzk1^6jl}ZMM{tQ;p9F8X<a0MBXD`v_&n9 zQcPf7k({X~fz{(xu)mw~)WKS|J*rU9=ZUcOYOOv3#p`<Q?GLO`_f6nlv{)Eh1Bs@_ zbY=gO#bvvujlc%Ua$QeR`43Pup-yglR_82x9``16k})^xlj_$${;HCx_$|xc*F(5@ zEH)a4dgm)23}@7t2AGTXqskrCC4vlMjiiulu{Ua$@ql6=*3BU{4lu}p;dJok7MacU zR^o8F1{iLV<6wjX3J_=8kEo^4JD_)P!fO_CM*}uR7{J2^r>$O3ZWlU!tYhGCVWp5w zd>L=bH*3}bqrT!xf^EEXyt&VS{u*GU?UA<GIaI#LCL)W7%~J2l*gqiRCZ`dq*_{{9 zl_%igu57j9t-pd5t_#HoKTI3LWOw3atM5eOUz|}b06*aB!^A`;qf&yegkNvkfO5f^ zYGcY6bYP}%nB#NUE35Ou27CzcN80r<Ny{Lxe0U~@j6z*uWP{%r{Q&pK=DZ%EX4=ks z9{Jimu2wC;jkd<PIi^^6d#=SFKgDqjAdP#ua8SgyPP)=zHw0a+HP1bboiU)LZ@elI z)Dw{G!jl8uQhBg&boUhN;Zj6B;pYVmM0l1F-^?C~Hjz(O8z!lVZ^zy`$c}OReDqKC z?pfM~X=DEfg2tYSkWIBZ#zvNfRgEQW<n>aqii+a2%4(D}%489pm;n3SqP)V^=K6Gk zEHzG_%YnVJYTnX&IZU<iIJK#iyykZ7^RfyB#XOUK4{S^CQZ<#b7Y0rB5nX`G&RFH- zx0#cP>)oUP-3Rl>7SB?*vbyM9t);Q*%5<KwtMK~Ow___MT>2tg(i<)V8+*;O84nGN zceh27VI$;c6cT$8>2pJP^{w3tMnilG|JC`!bI5UPG+{%CKuv^|Y1~FRjw<$@d5SLx z=N1{j!$+~ti^<W|%#3Js-gxcVoAntfqA2?%wIM<*d8zChh;=^N#E!sEz}GtBJUL_Q zLJ*VnP|v{4AiG`WzfqDoBR6;Emgz-hzsWPPFWd$fGPBqL)u^uPpl)RXxf}0vKT7WJ zu1aCf4ZW(Ybt+$I=luBaa0$=Zb!C0JL2t4cE78Z<aOt>}hl}_CrC{_wgKa;0u?dZH zUGpSMs4*6WNjSKa<|e3yt#kX|thATw&=##xT9bVuOFcG{7ea_CHb)Z7*rRQaY>duM zxu16XpLG#mZl(bSFeiRbmZ2g1jNIvQ^yRkt|9R@eU(lNWEcszZ+CfL-Hwx6my%gV0 zCHwm>FLu`+OTgdKvD~v=`)7|>F+J<}vxj2$@kOKp`X~X}Wk&b%COv<`?pdP#^#d8Z z>c;0Jm@SS$#h+-B7&S8t(rS!lCHXwFilMZMMYMQJ1$Pr|ynck@Z=Kh7bJH}d59?FO zHjOKNvx!|P-`346_kIjrKJh<4>kGNK%Q>t60&$FlsV2}y9;s>l;UE!zI&r_vrgGsK zG2miW*>8~OFO?2g;>!%NFDJ0{Iz94LeSI=zxUNKPxP-RhO+G3)SzamAZn}+<^?Z9W zO)BKx+-<1dQ;wbl7r;3@P1F6)y&b)l;mDf~BooK06*Cv}MmdQORfNHEyo^v`j(^q3 zX0QJZ(e^6O&OZ?5LeL#-b{>FsHU`fwrZXSNh$d-c^$sTrEZHt`>Qj-1(+mKuLM73t zmZ06HNgE#Ld@<LphF_h(1nGPEyD!QSr>2*+Xo^vG(EIX(+h1SLN%1&<0%sIFo>)o! z76u3U)<-SJb*h4$dcRYp<>{^IRFKeT!e;UseKQFh*+8l)g36lCu1N@hvC|*}0j};g zPc5v2)r?KC8*8q~R{okgq%fOL!5Mo`y04iIUUtLQ5p8?N-jrjDBa?$OQtKvrOm~kD zw5NJUcemo{Q!+D-1Ef~r*%I+7iP}24Gn2FYTwH(u3m6j-WLa1I>1k-_wp&ZJIUn8J z>^|^-aoBP3tD(3;)tqHluKiOBVz?2i=NRQ(4+f_t!%gFJcA}z>?GF&^E4R$(sAzY# zqB@L!kR><vR`l||9t9|+@O>;ts+?R<k_0*yshBT+-kKbYy>73cAlPEiji=&O^rm4b z&k;^yTmDI-s$w_@b_=@4`g|UD+WI;9_cj`*Z9oVS0?t{zWHe5kjLk>pZyl|f8_Wlw z<-;`8*t!Ba9!zTnpN5eMBe_}***sY)<1x%C6u|KW;;lY>Gh@&T_pcY4Un`zzE6E}w zWwuWfi~0OP?Pm++eCqss3p*5P9W#>_-11D0muwNqajSRpXs_u%+611hx*E5y+r#ZM zD3yDljbqtIN>9M-{r}?5ltg_M^RMzA;cWSih@h0tazt;-^+_UeW$eK)hH=i)kxZdK zCfDd3b&{ijM@&T`FY6i%Oph>*Q;cHG6)0e_ya%p73ta|kEg$#WY}p86<uY|o7gQIu z<F!|aEzM@GZ>q5-1eg@ERdT=YOr0_X+b?gTVu;dmPd{j@EVtji-udV2CY&|KFeaE7 zv-d9cP4u}u;@{z&wZ0KCLbuevofqEIY1+s}<OI>1W8;4OYT8dSrg%e(t#$nYND^O` z_5JEdGpc6KO=+QCd<*O~&cUZs0{1+YWE}S3OvX{?M;)A-FTy=v+W`9goNGh?LIQc8 zD8W!3G{#U2lRyM1%b1%|g4Be<;D15Q?jLHn#t?z!>SZqu8!tvOIvN^X&bFFHrk<s3 zNt;pai$Q6oWrThw2@*fAx0KA|cv#9J>}p8|{3JfSCik6l8xEUrE3-_KYXrP2W0HTv zb%H)B?F^f!H08<%Iaik(hf@+ty6CCZCR9;nM^pK?j`iMCRdrqZ2<ZV_8v8C*(h<Cw zlVoX`%!HenU+HN+4>x$Ww=M}n+G7;*HBRdY_>_QQyY%|`r%_lAtH-%~JtFuBG}AcO z7!EUY3Ckd<_`S<=jWnYx3@ZZyTJ!I@O`JqB(QHH!BaepxYp<0TJLJ0jSD0?H_9>R+ z2?o8cnZ5Nc&Ufb?-@6^te^j33Z$;%BGK!?jvj^Hw1Z8axw}38-`gUhe(+KgEMgIl; ztSWdO0-S_S%JX`APExXo+af$E*W&zPT~5=1-B35lBg-y<*sM|x9!a~K4SdU^0^J5! z{#YEBLn7dxgVP0&HjfsKMb2jXML($Ofga;DVX7lVC5*+EWfnQY#fY9LGg7K0Owmi2 zoR7HNBQ#kicSiGt1VqP|nlBYY!|rh{1DJ8qZqL-boor20%Q5EFyTibiOa3)kM(d^4 zv%dp9EyKZOLOU5XiS)Jx<g!f?>MES*2irPD*~Zw%4SE;~UdmOyH&*5!q@ByN{;=Tl z0f^}=xKOEoc$)rw%zv$Q>OIt~#*%exN$b!5Y+uHEgcHY`B)+lD;<&L=JZru3I)U5{ zW)4ecrAeeOuiJ)V8SkRUQ>%snlhR(jZHA%$C3I47ig@kjs8|&WL5U0lGeo+UcEx}# zGx)nnIp&v)Pu0>6_+l8Xy(4xCzdQe*L8w_hyh$raC^e6#jaw^dt8QZAwLwOcptY^C zHF+1HL&vEYEG2^xp|vTt$|hc)m`z|RfDh+$(OyS?*ETm{KH3vh_oEXXVQ7FYb0(Ox zcW^MRzq-EGHSMhN`L=oPp6}_9Qjg&A;JZ>x#kP>3S6fOHn^M};Nlr9}vJIYAX_M$q zcv`03&dhag97n$?xX#k>+ikycd26fbiolC)+l=XM3ZC_`$+?>{U1^@?dES%_*RK&o zX<BjGwCbx+=pozow_f$t=hO3x{TvnCm2X5d88m%l`KDNsF-3W+{3Z&;-Qd}IBnW-{ zQ59p5Uy6(yBjAOQu}$xH(u;hJ`27Ln_cF=w?c;0g)=ZqY|FfV^BND1$e^-@0vC1P# zC5pF2J)F=v#2cHxBuTC8Z-D~l0N#-nPqRmYVv(||t2`T4X{eTya@~9kokz|>$yghD z#pdmk$(W{@fH`-%K=176K;P&>uz+)yh-Z;A8l{$e%HR5m8mxJ4dFM9o&a9pKm50dq zJDPOZIf0r}>b3rK_xlUeS!*}%mB&58A8uQz{6{S<ZyaM+vp6<sE=a5ov*Bp;_!KfV zwG|0$6TUF*+?UWzi2Ybx2p^{i@<tQS+>6H!eXM-m)?gz<6{td`F_f9NZ+j+;*r0oI z*l@KKiK*4u+3#*|zIMImF+zuc4swD6FwL7YmD<ZP?5mx2-ZXDzt$&iDD6u{gMOS&i z5w+{P2`T66BXf2*ooskGN;pjV{qmetLA1<xxu$5_C=-17)5!O;&nK~u9FVu&flJB1 zW<K%@)gSsDuipq3XJ%IB%B@c53aru954-SF<uIgPHJtJrRSHR3v&tk^MXvA<mzvB} zX#ccKtlB9gCn@VYfu?NvvOi){X05mkp!cr6+TEeaKdqfq@A~7#H#d#AI;HU$FAh^H z1ED$Ocp<GblBGQNo$Rf%2<Q<IJZkdA5rB2ol@%5F?232Vun0|xsq8O|az89hwV<@I z@()f&861J8^k8h;4sRyXddqohuRFc}p=YM?-71tRI>c}JK+D3;o;oqed?E3H+$p~$ zZ+Dj8f1)ZI>fLjlEvX+sc?JDs!u^n;OvlaUB+X&#<HLwX0Z{ThR`h(?pY9OOG9=&N zpEwO;d+1pAA@mS_+DR7f^4FtAOUG$LPS*Y=)C^db4)+W`d(}Vxx`OX7;PpW#m6w>{ z;3uQKCz}Y>R4dozH<g_opF}aT#@|0Tc$T5bD!>ATume28!g?lnJLl)=%z(qw>SC1| zhay$Bw@iiA9IFE>i!+<K>q%Z%DYxTXw)$EG)+<CLH{AM$ixS~}QRVJ23jD{L?J~wY z*w(AcHCDz_;9U=2@vHaJplXPX7Qas?=xCS0!9G>GA4rf|p1jM|Z~o{!m9i`2oFe-M za9*?mdL*C99gK8OS#D%uNXM^jdF@%G&qVOv91oSlv_2igKM4zg6ZgT{mc2ROCwCe$ zKkqT*Q04?H_dGO`D}m#9zLA>!S$!88&@wwT1e5*D&!sps)gZWjo_&E)1BSw|z%#;x zahrR8{{|iBgr&d643ah?&*VIynUc)g-w^e19*@Wd+wnpFC3O}Pk%6r;$^rhEpH*^a z7FU)grt%N6zl*oGgf>st*14j`s40w1B7bWj0hczS8hc4g5uC!1>mwuJyLpmtPep=z z*{KEtiP_zp;F<U3VV$cU+z-#8qb2j!=S6MCR@CdsV%wH`JwZs@7OaMsZdd-t<7!)< z``xE**a$KFpg?#Ya9X23`!1*74EQRYTWU9u*a)87tB_G6FE6&WvN=08e0;JG;38|Z zga^+r*ux5e(+mwf_N~3%dGWS(-~aT*ps9ZrkoVT8D95_{^=WNjrQ3AtRG6e&xJV{| zjDbwyO=`t-u9ZoqWL?(`JPBupzFDz?=f!KXc=V>rxYiNLB?-&Ah$Y6j_iB<}zj+k) z%3^Of^DoR$4L@AUh^z4M6Puw*a#mO?V4#Us+~D@)k4;*P)qxY9(i#gf<H57G&dv~v zSf1tZ&~0zPI?|IAJv%-RmdnDLiYBqJ>ndp}@dc3-mQ<-}&K20$Sf9;?$()$JM?}L& z|C>u7KEGj>(H76oYRgnmib_dzwQ-Z^N?<reg|QBACdZc*mz5fm9HXa+REZg|urQai zkj6Xl%Z8cjA2;a`boud~p8mgC1H`C|b<u_5+E!)VIRzzMQA*)x76+=x3795Y!h<YS z<*a~1yw9Q-##n&}<h?tpGr=BBIQXdrGduOGx)y)HDPuD`35U5)|KI;h2_wkCom~_7 zW?xcTEj=?$SF9SNrm`0wHw8IalhQSP48?t#M2y-WQf1alW~!i<jX^sch+#6BMM+(+ zIGs&zi@w5g8C)GQ7@QN!_B&Io&_bcUKzpf~jj!ogY~SN8zLn=^3F+7eE`I%v4}>Zm zq$L$!q%{PMsc8$8ar4(nT7=nR5U`NWB)A5J8?EK+p$r(|(&}{N=rAVKj%?UV_^jiJ z|1f=laI3#c@+n(d8#-<>w;$X4(Cn3%_%KFvev|$XPt;9&0}dSj#mwNG&wIfB{^9-j z6D+s)G|>C={yT!-{{Ni^{_;NwOCtR{{@>}}Ku5LJzg*7H9p4k};EJZp3b3gcR{Dk~ zLBlG^jlTTg?<5>zgIBai=$`at<xE)A$KTJBER&kB+*@eey-XWciEi}ue#iRA?eO+C zW-5m%R#v|^4%-t<B3f31vj5#4&uWYJZQmiMsWpS`U2sHnB9r>RG%4|bm(N{D3ERxe z?T=O+@2w-FL`l$lG8uf4QzOhq##8UNQ}vy;mb=4lQ;Ok#MHIoeBtJ{BO6_2NHgheU zyLqz}Hq$s%YLXU<8&6@X&OzADU}z#0a#nSe+~00SEP1h;e%IWd-puP=7-hWYs@e23 z65$Hhb|Tm6I2Vm|*Nk9p=U(mXZm_R;wqj}S!onx-J{fU$_)0n~+~kI<>aOo`&F#pp zlz|MsDUgowC+Uz)rD$o!D&2y6n=8&zUc4-3$GwNqr$lP@MyK?{Un%ajtzT@Swx?G1 zdjCk4xwTd&$d&Ta0^B|Bw0I5NXn8zpIHs`q3uZS*kFxr7!ubEEvfH?1`<q2U(`T#Z z0LuJsf}2GnQ^kYoKc};=8$*-Ttv9i>#-2$D32vOMx#L(#I`|Tg{y-@!Kc3;zG6AmU z-i_D3Nz*X8&$e!$<TEFV!K=90yR=q5bIX%M4a`xgaF=+2k?yUSJw6S+)Td`xWS`4z z(^5uTp!U+^Spf{PZqhzJI{O~Hn6LoUyZ9NLtI)f;f@?2EI}g6}x4N*>hShFmRYd34 z=U*8h4By6eBUBm?k7zgd@&uif)2@6yOTvUrt?#yEIQuN?;1_ihzItTCb2UP@Vzf_$ z%es<JnI9WY#1Q`fVeh@en%tUxVfS_`76cn0-4c3LdRGxOR0Zh)1f-WhD4|D1KtYP3 z_iX{Bg<e97bVHRAY9Imur1wtXy92m=_I}^zeCIje`RBW?_a7EXR+*VKYi8DO*1hg? z{0P&P^2P6=dxGy+a_1q{oIf4_<6XrjLURV@X-4=u!*cF!Db7^;+g-VEOJh?9!U;1z zp@06qp!cNUE|Whq?S5iFgK)-l+MC7@z6BbZl~{jG3)Is;RsoFRHnKeTYRYq(8Lcdr zDK*@nTt(T2*;nO}7QwK^oqCVC#iDX&(l>m@hUhtg7Om(nfz1IVw&@m{x6coCy;koL zFxr}yrDlDbmsVT_X;=955)VW;wJ@0nRv*twwZUo&&B+<AkdTv-NLrVu6vVbJT$a;l zsZpbms`lr|iO^cWCGcGN%^P4TjOZ^~Vx6w#htkY*u{JZ89Ijwl*SWGwJ7_dTtS3at zLML<|y(88b@a!d>WT;ZqcJU|@M#VXuxN)d!`2B(C&gr7*6wAn1F4Su!75<d!LM?&$ zCwkV9xP(Lux~!_Q(qR7mc5Qs(I)yUKkzRjossORq+sr+FENI*5#DRf+dk+~D&#=2L zFi5vOX3G+fA4!~wsLe21dK=3%PYer$Y+Fe4C(l#%I~QpSVg2l$$_r<@b&0K({|V?O z)em4J^&CVe#v07V%WoAFAOmUXI-8A)R*U5-E-nP$&3NX>G;UBciay^s&4J#$Q^~nn zzQ|(z$P{(|<l%$_Y4S$qP9N8hJNthA!`zh+*NJ%Dugb=LhVHG)h_T2~$<j^wia0R8 zy{V)3%8%%F{mDOXeaFRQb{xs@u5MtZ&E|XHZo$o)$yKCPB1tHTP%ar2dDlEp#lAo) zQq=YJO!M7lMX?{Mle#2O^kvUxXk$F0tb#EUkL{Y*M##yn|0(qD+}k4f=uDw6iIaAJ zb+PaXK;iL23Ns;SO;VtZHOz6+ufoO5%yfUzY{~&)I<CkgK=;mN!qhyl8K0V(+8OCP zW?1g7g+ZZ)5U#Gi*+n+l(l%}F`x!n+M%pcg<Q7!cLLwo%d{OrXbJFj_iZi=?Mmcto zp-EJRaimWdP=-zbE=m^Yg@>@l_}&1!PkNOX?&&qt(z=~+w{e_wd0ZJ}x&2DtjYG6J z%Q6?AHNQ?ZVi;OB;)wKG8c_=!GT@RQI>8`hlyVag(Bor=O4dgAS(64G7)CQJAmi?c zDR)5QS_;(1IycAt$}P%2Hncpcbh;NYeB2;5v7-B{B4F!$e7C{;l3N>l4bu>hq!Mc3 zlCmZ7%0C%cy(^e>C0${z>E$$3sGHjR3x|rxM9wpjFT6fDA_06jD9-~H{6NEgmdO9U z9#H?t*8g@;{;Up^hYb9;KI{LxZ##adyNAU7lZZcl5qrSgPp1A^58(9Q@OYaQ5Xq4v z{-=Yz`Y(?7z`FmNdVm){a*+SUe{Uby#6yYw3lSd=Fl0cBj-19nW%pffb|_eh$>R6M zrR5&E(Y@y%D_9@uh`Z}wW#OnfafbHpAIMIdKed}ufG5-*UO1f+aN^a;ueVAqd*aMh z;2ovGH$`nkRO-(0q+??T7zE-foiFt_)88?FPUu*pPwn@1Ez3l*qZa~RymA>{r#Hk% z7f?Thxm|NfQt#qoZaD+cOg>hT<SFnlE6=XOhncw-AA0w7(8u)-8(6pKpQfgYyg%MO zKo*eU8S+v<CU|?==*8bn1h*wk4!34}KMd^2QvzK2I{3N)RxO%<%e$tq`+0SOMn+}7 zEL%-udnF<%u9a293mkyd!|Ng$zuiW`juF(XF_&JUA7VNW?H*Y-!-#iHTbHx+ii6aX zQ!D7utg-p)v9ufOx7A9PJ<<r&PL2k=?}%PUWZy=fMciB&i?_ZEZtGK@eJiKUpK=|{ z{|EW!gU;|X<sR@zkVQl{ea;Pg<UyDX%-?fRnl#uRO2yk6OPC0H+r);&kv%Ax2@pDR zDi>`qFMlpHvyxDkI#Eg$YHgxfgm23n<n{QzkgV>ZFqqJ8+Z-7;Sdi7=;QXi~rvKVN zj%l>BCr@EqB(x74`|*R3^-UX0LO%kkpOkjVdm>=V{8=8Fo8#m9Zz4Mzxrp1W&s=64 z4Qw=+e3rieEuF@qlk+_vFb|qu33qxBSuFhSTpQDrhNpV163iw|e-cHUiqA5f6AE~y z2^>v4P~xjt_h}geC-;DH-J*tBnVE-L@gC}68DC>`_8ur2lV!eRU%h>L-P%?A0n-Vo zP}w06huQrW?3hjDSOT_tPyJ@47>~AS5__W!%MbiH_omdwN*b}~*Q7ts)GG)<aQZVb zXAE0G@a+{2*Q(Ew<YWNZgn-*L%nK*<GtX+I{vkrmo%bhhRBbT0LUyry(8yxVNgf>T zGaTEEkLyQl$CZUkjv8%ulx^)Uj0+X2Sr%CqBjiw7PqQt?Azi_9%uz1OXZMS~6)K8k z^f!VPE=ppqmq-_6!4>CCo%TkY-IMQlYpe>C@xyb%@g_Z@<KHy!P@Ps^7));&^Tb5@ zbyA{x^Kk~r$sC4`oFsaL@a_v4J0)0Da!F7+{4q_Sdr?D6tlD--p|ie>MXNY#Oqh)l zjDw%^qDF55i+g8ORnoUlwq#)*=tHmQhdf9w8~@a!WVvxWbp@Fzl>1<w>4#~xB!3Of zOEXm(`dd#B=nQLAZ(n&~xY5*ZMn;Opgns}_Uxu#o1)%`@5;MCEFiHrz_3c&+QvaKy zTtcwzk4ako!O1KfjiJ)CjH&8iq;|?Vmq>vDWKVwDnF6|2mrEObVE&6j1pb3VUI!{W ztMB~qjXq4%3S<x>0M7n8;mOR&IxHe^0}6iZSw;IIUb_y`tJSJHwPpow*Fg?`ThjUQ zR57LELp4d8IYvFN<JuZA;k4)VmGB9^@APW4dnr<>ykOK+mKJ$gkX2mjE;0xd!S%I9 z!=j}kP7kV4p6NRn483;(+8z!W*OXjY2Z^nI*9F52RwC(_>PpUZNIjAjO!vGsZ*VhB za?9H{vP(m9ZliPtrrEmt*=X?9>@IWM{f%d4hGcO9X6}0lvDn#EHOD`z#{I#ZPw`p8 zb<?O4#dx)uXNJ@zu8G9r!m_Nqgak*Iv~JO-J&%hxBnsN5auSH<{7-l*&R2NFEj_c? zKeNYiyh&s|!uPg&#X9oBLhpuGe48b>s>1uPfpV{7`+G-c`}iSgkp(%~x{ab4U!pFW zpE!AGhbnk_h82z^;sapn>t^?Bfh3JN#vCaW-fR+Qo0WB<YldGdfjiwZSbE$NFa6Rt zdfZ=4G|NJWPzI~VF_WzU+1hDA4A3U6Vt2f@EDba3zs<>IELtkaU^%P@Y{s~S^DE@P zol)Zg7QZPBWo2uqq#(0<ha!0#1UJgj&OU8J#oArdhQz<d`_nEx-1=ytRdz}V_8<*0 zwS{VC!_F}r4FZ@{t=@0mC+y>JCx<bpL`PPe`3yrR<vJ_$)slIA#RL%rD>u!^dD&(# zznjfkT}c$RP?B}7S}LRBHeXJ48l)xDtekSa_cM%o)!aQ`y*YywY`;OC3nbHW@~r0+ z2lUha4ubM37A;2d3RlnL?!PBssa<?|rI(}(?S?DaOy}k#PM6eJh+t#SYZc{NTWP7R z2`q%Er)P|_&5P|uL|c&JB|i2eGraMW7#bzy;02)b=b&hxF}5)=M7&OpDfI4TFx6G8 zZZywaTuxjDtw!0WA<otT$q-W1-HB>?jaZA-5@KM`bgn@3$cD-#nK?!GaE8!!u<VBZ z%E*h;=wP{VzpU#%k@18K31lVV9nqB%7~(3HKF3SEKoxldEAq!x>{Qiomfqxhahr3J zFKYPKAev7N7YuNz+^uSHAwsKPU`podF?LZ9;TyfO=j`C%wwB((0??#v&(_;G5)EJ3 zvavv+tFlf;g8sLqQgq$Rv}8ubxZ{Mf>)MfLdR^@KX1UZ1PO+HO#||wxKix?hYm$Ca z)T-&?jnhHu$EXXZT6RKsh_ylE7j`u6E67Y92sj~cfz@e7jSrhmD3@Kv4kC8v2Ca~I zCqUR>^l1^zxo~L<*|)3dp7+IelXsJoIsni3GSSztOPX^s4l^0orj}8}w4>MXL_N4K z0;m2svpH}wY1h46!^1_{$!1)GkLPiSIK_kRsxA<GAyC4uS;E^uc5aJ{50^|lDIC_N zlZ&PA?RfQ)#+*435|PM}w)=Yy{fC68z`YFy?Myq5#K-Cuc&01NXQ(Rj{!A(ejFF^W zj%aPw&&0QsB343%6ITPuKBE)LO6Y!EvE#+M)W4jHy2ctetv5VsLtX@nUL0t`+~CHt z+J4pU4uIZ=<Ih5hfQSLyW+I>HtvMs@2D~uy31c&@#zw{O?lbo6FZkRt9>r0oR-6zK z)N#bQCOxK^pY?L5u=~uzlECMMXvWGH$55F$dny?#!rE}s@}G>RUS{E6mR%H~ejCt+ z6rx^&v{Kv@K}`%0X1)p^dUN1#Lf6<yIj@vmO!WTw9S$(+T|5PFiT`4%wevlN6K9mB z!5KvYF*keH(Xxr@+>es%$8pTF>45W26ZX=N&*#B+QY2^g6Sh9OV<%;wm<WsG_U^2; zSUG9)piZU@EySc72VlA@4M1p13>9!0T;Z;ci=gk8m7?9!Q^CP-*s=$a>#bbzPU82@ z2SRZ=MY7|$5*~b3e4dd4pCvz5^NC1UGd_W9?VB!8T^&S^9t&Z0`}0fnAFpn6c3)x2 zNU1x<CM5Ft;wet4h-;?5jhxTA@n>y^rbBAhrTEX57B}<M(}hcscibF~h4Hyt4Hyk6 z<;&G4FHkIE_RDvNf2$fc@LaajGK7#p8{UVoJ8C7nZ{NV`1=+Ec8;ghd5*g?~zU6Ob zZ$byO#(*~3Y7gU0a&))<CO!Zq6v<^2A`8L>@9#;7543sbk0^7Am9K4K`&%ES4c*hj z>liV|(+3(iood(C<m$xgf6V=%Ov4cR=2L)}1;INnvAL|tU1ngd)@|Ihqn7YeK+NK7 z<j$HvCKAFFd8<u1^>Y2`gRK&9j6V=0b}2x?%mYd2+!w&s&rP@ahu=4AZhdbkgk_WD z=CX0I*+L18ZD-%p<HgI&HKSjWvS7TTt{HP~SkozQ0a4AsD0cK_6XD4Ui`d|;=cma_ z?U*Y_;v<1G=5s`j^XdSYKcq?5Y<bXUZFJjS&;{=8njh`$S+dmibYcTql8~O`!^A5M z9ImEMWaU(HnRx<hgP=OW?Jnj5Cj3Hu!&vHUIf@l5|I3eRli4cnceK;wqD(P=cAIad zVfH$}w|q8>)G>t|5<}-I+(V^KEwnQKrhGtzP9TWmBi^D2Wypbz&H1LQ-d##k8GaYg z%d4qW@tivqsnE6}?Wj3X=C!sye*ZDnp!4gfYrRGY1SFaffrKUx1oUo<+%fl=N9`^5 z9XskX1Z1%~&92FnGpv6DJEXPJ12-^A^jMjO_hhiih@Kh!=r9Uj#yJ(J8;X<&1xykl zQPp+l=a(W?`#;aVULR?tAgZh4e~URFF!y(G+qa=OuxiG)ANt4y8UOyB$Z?}=71Wgw z;_oX$6Sou4+}fo+O1lVstxFusb$9a~>ymhD1*itOa@HHgf4h1}Q|=Ay=`sy$Jf}A0 zSPEEGj5-lVyeZ*{yhK-@?Divhp1;PZ89uJ5(K8V+M1<%U*&|ioUYpi`f=p~nBE}7U zM>lE?I4&>k0C?-M>}BaIGAzfaj{WxhScJoi=a2sQ?NiF;`$ya**`IWJ9uJP{#ID_d zv&Co4xWKtmj5x7Z=6WHE>O5k9;Ba0USQI)#HQFQET5B-XC(mafV?Z>%quflUH02WL zx1<>fcU2QulGAKZM*hx@<8#r;iiMp7z!dGe4{wk`?_<x)ZzF@2Nj5WSHQgD*@3_JI zJ?YaIAAs4=`Eb+AL0#WR_Z#aqErwNu%Sr>pqxomJ9wtZCeV>`hk$Q0Y_Gj`A34~tF zI482!>iGZ~Lu4TAZ4}_V9d8;*U{h$dg9}ER0`aRWQ={cewdlyf2hAIp3^BwG61W-# zoj)y4d`_Mg`iHO-PCD&}4>{0Rnmff_r=|dJRl(N3uV>Uy+DK`TtMfD-LydZsQjRGq zr#8nC<F=QV+HkAtnYV$)&jUf|!gs@(E+QvZ^eI-}fastMDp`IG8esl;v3XI|z@Uv3 zRk{+L&QU}Zvz%xpw4_2l0U9lX4UX=CbAC4J_vTiLJcMY0)YQ9q8gx2!C3=kR>?ImL z#P^g~Yj^>eKaW5&bi-RE?`vy+)n=p3apmZey`ndcDHJy`B+IBSb<s_m8(BGA8PI7N zIVa((09m(bk&spQ$^3K$1>i1Hlh=wlZF=bsg1yT=Zbf@`Y4WrI@A?c9C&u*(PmYF< zHd$2TvhA$e>T|+a+&tFxtX%a?9Q|#<{7uv@vJwX4+luAK$qwh)4Xi@#%$YfEMP=LO zjS}HH>h9rv$WB`=M;mRTctwG!${4B0F@6<PjDI=7%t|Ngm1{b-pbn4h>FsUQf1)Av zIWse;3xCnvJZGGN#jgL`{!&Y+mfWLwe#`!F$YoX@I7#*eFb;W2-V8)Mgmrv<5!F|! zZq2GI2a#A!fiuNJE(bxT+j^!o=2X{21-@#sXz$#%wGfLZj_T?#Qb+0Mu7CL|eje!J zst}p{%B@HBAUc5Wa?`cim3f{N^uW#ppDm;-Z^d_IOObKb(hBlO%thaJ=w(AmXvl*C zI>*;GVxR?EJ|Hn6XZV<@FRsDwoC|vDh0Lz<;6!a&V?%g82bx${QJ<Z+L4Jb|*|;;1 zBX@E{cYx#o9}Y_358#Ur_GaYh{$D_hzhxb4|8q3s0Im4Xn~|pwpy&vJ`APFZd0X@s zg7Y^ffM0(yaZvthf7s7|-i*9m{Wr8<Wjso${1eIfCqnb9{h^2bkDEOQhyWNkk^$u8 z--H2t_$h<G@eX{6WK#C04tYf<>PN9}F|yWI?Vz-%x8x;T%7N#;WE7C?Sz~HYKji9% zka47|YTGzj14PQe#P8j?cz?RcS;=kb>6LA#(zO^$gF%brMVS#65LU&DCTSsIO{r3p z7dxbQI75)_wU0MO6iXwoNS|+?oAw>4(<xmvb0h7)@(clq(GT}s=4f=G3^;2#QunCO z0fH=7IMgrnczJD=nz>=+@sV*m<HzYuq{WSqBv%niW<E-{E>?Lh?L8(B!db$?>9pF! zTl9uAylwLMOZ)*+Hn+S)nFc)W4(5X3rk84sAA6YNhtz<(A*o5nN9y6V(Ar8MVM7*k z^R07}&7n188ZS&u-4M6%<^HCUvrS1vpYpWQIm}QsXhYMjSbRV`#7}B2bi|WTb`uQa zK+xr6lEOFea_wEm9c__#GEhS9Oo=wLW+qqziRWXPOI$EPLe_1@LM#Nx>x2ArytpgH zf<Yt^Bmq`E%xi`bYjQyx*r7Yf1YpS>OjIyay6f0<UGMvir*5uFUT5}@DkFX}@AvNl z_gXvJy=W|}@$E_`&}`qoTl4ISEQ8@Jm6FsLGP)W53N_-ub|L0s&b=h1%fUpR#7X|d zv(SYz%}RvT>bAvuaJL!D&01VM1TT6)YftoI8I?bs4^33Wuy>YJA@k{Ic6m0(Owvey z{|#HlQ;5$VKb(`w^&paedQL<KVrC!4lp0@5q-3Rhl_o~J2k&V3=ECVt`jnHmHYu;Z zUE?WG;V|U4F<LFS>mrFYt1=1TF=F(bKt(R)l-De)q`=E-3S^9DER3&v4$W+r)a72< zm+ms<A-M0-tuBY;77A6B1M1|65Z_I6fF7iL!-(v)W$^H3sk(aBq#w#@FL1~65?f1| zhNo2#;(2kzlyCWLq!Bi$nx#y*DAs_=V4sIJp)QjrOU|1o9A70v6Ix{HDJ~If=-_HI zeqm446uGmk<A%x{4M^T3j5K4d!Sh4R1)+x9!BO+nmvA=SZGsn(Rcn5|G@{;`NyJ-_ zJbEPFs3udN+h=y`g`lH$IKEDMghQWu55FOJxa93`%@Q=0P`L1gMhS>gS#3}FNR7^j zi-~xJ-n6|Oi4y|VS4${c3zs*x6!zKs8t^_l?UDQkbrqc<nzKrSPsML)?Jh>Yw^5TG z{a|36C0w&FwKgBH^ymIqLFuGT4o1bFn|+T(u4hmiUo7P%s5KzU%8r_G%z<*@J|_wh zR`IdvOLYRcHO)=YswA0#{q>O+%bXTfq4v2m`k?_%DW*k{ZPOY7HIV39Mt!Bqd?{z| zizQ`(48x3+0?@MoD7jUOk^X#ngttpuJA>L@=J8&Vy6^jRXBHO1r3P*g+KA~?kYw$Q ze0?}VglS%Y$$O^F85i6ZkQO+&XUpluXj(h6w0yybzL<q~q8MJQF$Ibq53H2*wyP`g zNXrSvw6#?mjEry8cv_5>%RjKNp4eU~;lM^VtlvTO_oe21z%DkV<|FQ;%#5s!H~<dk zDt1i-_o;hW3~D?U7c!I_5={8GEI-4NUMc#GVlM^Zyjy%6^wT8h1IwPE6L;JBGjH|o zO=*H|!ntmv^`2)xhBTv|w)v0O8;~|FGeYV^72=B<>5W+psGJ~@43jTOqjL6y0%9lI zxCJX4yL)hA$mEFLX-S`;B;ck}L9a!ZqNzY%<0w*jm(V34IVJw8c<C)iN^kF!f}0V0 z_k$!ac~(hZrqz`F!9kjO8ojRKW;dOWzq}run8IUJmwcn6INvZ&Y}OJ%2|Wk0XG;=i zjQ`$wyhIdh<`#t?4;|ItCpm8?4<?=@LmFZF-|(K?az5=3DJ#;U2iy^Drixd6^ISJ* zc9hhvoW@PaRQl{TT;NWGO4b(3`F&bjprx){5M@KJ(z);6j`<8bZkzS0#LGQk^@V6K z`~A%)2$NT_NXV}4B@Q{wI#>U9-C~LaFG+fz$9U_Gq`IqwKAo~`k!G+Cym;Gm%4D#~ zr`~+Z5;r!m?l6x6p*OX5Cmo{6k5ISjuer9r<ztpZOpNSU+kDtgt-4S^oB-le1^wDR zrEA8wDtcl|MT+zu#Q6N#H(yux;ocwpH2fCamL<H{l&*#zInDTzwJvd<>0);DDx69B z{EdNmXnsy<+@3D<QKRfsXl>tmG-dO06-G{`?alrvrA&d@u(fn2#A&&=;Q0wu-z=El zQDG<rBzBXDR>jVR6LK0(12{RnJag@sQ?U1DTlkuYf{Ot2*HF4+fN*gRCY;hkx?5aU zM)i~LG`(9Bn|n%l_8hV0#v}*eomJ?zdB%BBs@ZRIYOtlGZ}SezgU%n49F}_6&~GpS zP8Mh2=P{K66`hx&8gbfV@C5H4I)Vip=+*Y^raVS!S=66#d#3&r4fWy4ingc2M<Pd6 zlSo4)4_iF#M*~}t#JwnL`NrC+>TksY6@ARwMwKf-jy&Ee;m3d{yR7yS3mL<r8>g;# zqOB38kM?$Ex{c(C-L#(IvPxD?{n!$0<jI|LW`Mp5!@;!Y<RM6ySQ{LSB;NWXr;f#5 z5^I1yKTzzaK(J@)@8wqg)|^E2=OJ8*8<tO9VWo4|>4pzsciDHdgj~y%efLKegxJxP z+P3~6xH+dR^yX5T4VXV}(_{VjMuU-h-;n}LKsnj_@iW*aYHK_yDMkRql(&6dP%6QY z_?15mv<id*zF5-;an5Pi4pf1=6a~@dPm;RAuhPccl253UdE#z>HU-<mV@iR20Y8VH zmrM_{VLx55&&BmbUjD0|yotootUUc_q9mrw56r(5QBnmp&$$~$LJew%n5n^ZbNZ&4 z`KoAadJAOU&sEk$G~6)qKf9H?KaVesTMP&v!Pyl^ZmNagZ<OT!4k%-=YfkR#yMF*t zv~rl+@P2x(u)+OKB;1UO`CPk;A4M~*nwzO<*~^rn2~bHkM{RJX<1K>*P_*GmV^5O~ zTpe6F0hI;juWgTuQI4M4ZIo~na>5tSx8&x^S6jNtdS|oS+w&D=&uZJ2eN16}vEhZF zY!a*ZAUlNtCb4X}_Zxy!x+B(Sm@q{4(b2=4h`mRRPG_fKe&zZzdo$1m3vBZKQ>Q^8 z>UJB>Dx=+pwKWY<tpRGGk=Z?q6Y?6#Iz3zNCRe;wT%3lP=iNS=@VpJMw}R+M!sfhJ zSPX~qcDnMG3iH(9@GL9HmEOXb?Oh?ep~m}-FPcE;HyVzeJ!JnddwQFGK3chqL9(Ph zQGy0|gNC3RH3+S?EyTN!Td|)S4Hsvj)ikVF8(p|WaNKsTl#3O?vSA+jk27yqVLkT7 zu2V0)_e7l8PcSwP__5Z;h-)t}-f~7ZJJg#i!2;GbrRD}bE^2pAz39%rGKF*lc=zU+ zv560i-{tnYI8T4<SgE7SNW6S{uz#=I#T#0>ER6I&Htpq6sV@f}3{c$fe2hY+Lsd^T zZ{%bPoJ7~pj0$FQpm)>fS%rz*OeJHrXkB~a?dIb}BB!xkzdwXcaW8Ezq1#V*<_fJE zP>GE#KXB4et*E@oAL2e44)GZ6(;!VL(lkHh;sZ2>zDhxQa%rf03JA?Q`O=%(w*kv* zI`z&$w;ds!eA6+B<!gSfJa)e79!MqY>xDrre;!c{WTsbZUH27&iorCNVlvqKGVM?* zC^{(}u1&UZ^|Z9CY|(u`Qi_^k=o76{AqFj>p`nSgeP#C0bl93mBYTvMTcMf!expT@ zD${U(UReYN79{1rTo5AKCy7aY>NE4SDhpSCRhti6ADR;so4fu(r0c<++s5h(C!VsL z&=<*Y{$`bPtL1Z2)XA?|7YLnssY`ngKxk_KC3rIu;MC*(`oy(i6Zc(fPWV*8Vo!(e z3Pvx4oyEju_fdcM`{t3flzKxc%tN*HDM_8EyZ)EVxNTggcGwNlO~6~6kH;HS8x;hj z=BZ3aqFRwVlQ)b*!jCUyqx)@cRpfCcp~TdkW<sc6y?BDuA2xDPC$2AcjMpins;cT% zCT_8HtSvNna`a;2w^Oa&NZk*o8^#hEm)foM=}~=@fP*x1xaDk@TvQ={3zwLn+-?Ne zoX%#)1lfx{2wHaT6RqMWL{Ov4Mxy=-jJ2sb<}%+Fr40Nc-yu9DNDq!3vqyrW<p_gM zk`wr7#hS)pYbxG1BB4Ur>12dJPPX^!?U_;h6HgntxQEY|_PTYkyeH9&9Ox03pfuTG zNkR2>KhYdcmXi6D<6G#iW0(SoC57d!{Ep*D2n?puZ{gv?ykBZ*YRO2+p-BBz?$#B< zVOrYOZ3kshr84>6fE2Y5|H_m}eVHm~PekUskH*;5jI5p7cLHNcY6+A;Ospi8X8K^X zt&T#>4;5ZdP3`CX@!I?4bMHg<C7D?GY|A%D4*U_2BrKcSETz6$Lv@1GrLy&i1~ivz zAmElHD6$u~JKj5daQ<_xKGNE#Ke5Ts(GI`a1NSh$FTM(PE0TH_J~}pe5Im8RDP@w= z28^`bT&_|Ex9w)B=#M^5Vm)<9*PM%;*4<4^I#Q?an*Lpb!j$tJZINxA`ch|aATs2< zDJ*+<ian6!(o9iNKHF=xLL9ps`e&+VB8}1}zpc%2pL=Sv8=D%k2hqNExvDdf4O`C@ z;0W~$+P_al{fgQ&o5ujvIJSjeH0vvqGeosxk}ZRR*8QyFO*G#oXRS8QlDAk5d*?YK z*(?g`g9D?g!Wo)6*0(h7*xMn>EbEhK$8>HrMa~;CPZ_?WgwY`JKh`7Bx?lmBLdeQ+ zKY?wYT?)|S^v|}50odH^m_QcgDoOdlrF;3Yq`+&l#AjR1X*x5=9FBE0j*5Gb*E!BC ziiq-FQ)i`iXk6)KLxP^8ppq+yJz{7!Fw-n&5<!RhRG^)ZweeAf2Ju?nII3$wZQpvz z*h@H!Ngl7Sl)x8r4VyA%<z;Cgx>U2{;&;~6s8l#s&rzg{Cf>LnSEnk8`Rt`XGrqVT z)vXnOmykl)EEQpvzZp387R*ob*uH(`EEy_*b7E6KNn25Umb#N@XM3gfvby{WOCf!_ z_cug)qhA{CF5C-K;y`;DX`m+JXofzDsfIa?e$QZ@Tp8>C4T)d%M!b;{765iuYp*y& z+gjxGs%})sTxo+O>dVVAQrY!-!?3A~HK=c%?2z<b;q77Hk$%1u|4#a(O-;A0N(bWI zdi9m+cZ+w^m1T-=RBS|tMM?Jb$c*Hn#HD8a2(N;SQ9|^M$ud|4ZT`!uQ>F$f(8?RO zBwl5_pr^q(`3JSlQZ=1zo%EbZsF56bw2=HreRc|~v&|-Ms~d|Ds94O*eYQ=62Nb_p z>?c603wB*M%n;j#)01v4+s&?i<6Rb9pTZ#xJfexji)ndMyj*jWelm`U_-Du<l>gp~ z#k&<5XSF+mD8}9cK}2auB}Hvl3S`e&?MjmOP3a!ZjAZ?qpdI=Bhv_fM9BBZ+GnQz* z;OW*HqSn~Sm;%#_STNA6x_VC%uldyjfcWaqmt>)>d?deWD#GNU{8{Mtx?RLk>52~n zJIOW#(h_S!0|1=PN4f1!l#jRpyXd`+aD0U(bVGU2X|t~XN@{-2Y2f-;lT<zb#J8)c zj7%=YKhRH*N)!!+`PmJ!UX$BJ#!fE#h1<Z@1CbJ?V_+(A)+9w<<E4GNW5;qwr&~d2 z&C0E}Qe67aimviseaD3*rA2QfWTSW`CInapJ38GEcCCd26ng7rku>wqkjF<2GIi-( z0YX4%r^M!4_)-RrE;e6?x3{-slcq8ZfOaoR2>R~UYXpepyg931cY^!5)H~wyHwBJ? zcny;Ab)aP=7<Sq>d!>rBOtqp%F{zbT-LrKwAb2fDMFH)M43ZFBiYT82Xm@hte@t0$ z{I2E~!ZNUL6u)&PY5wimw=CQ2&j5VwA*{;@H&H@00Tp~;@3Ye(aR>EeByNLNug}s* z!+^Ufk`4W11s>INnW*I)`qm;$(f`dt4D<PnV|!Psv=iv*jN)sGbMCSqgq_~QXkH-D z!{qNgagSuAw@i%l)hfw=KXW}bI0%u;{9J$H@ukQ7k;Ku)vHbH;A8}Dbb|Aue(A+T7 zP`P2`lPi&jnguMwn-j(Wxinuabqo@iN-RwQ^hexD<QcGY1CY&!MjGBKk5MBXQRhgk z$$XNIZWfKxo1coW^j~Bgk8&~GKNrx;_PgPAtU@x>E8o>)s#|2~Tdx-$^L{QCk<nc5 z*uKqQM4dI?2OGLNICdt>5yj#lz(Ky*C5-rCH+^{G1Ul}FHLDft6|i;%e$=HleVoN4 zA~T6NIw@tUu7nlI>X*`6H@G;RJj>J+dVIs2e3TA|aqVWihL~*_=tR56P2QA4hilt` zm$-X**m{MKQEm+>Z=sIr(MuCRS8>2NThyW@5I7NHAV2braeH$3Qyj)EYx_#qKViA6 zcregA0HD3Pby)rc){el)e}ahzc-;RIhXcC#iADZ}<1yXlBs1~r^G_J>palN>9QC05 z+592wV6^{@X8*q?{_hxc{%;2$@=s9u7od8WC;T^n>d)#w%m2LD-!W+V!+HNX6aQu6 zdV8OQYk3kX+^OYO#){988u=$0f3sIQQq}DBy-7)`#P(2&ljo7ZyaRw?$@E;3Zn5*O zm*!XvunSKeXYl#v&21WW{M4cT$#mb8PC{bbY~ed_Mwp1kbo}=H2BBl8bb;o;eiPUw zPmJn}!+6Ss?nyikBcG%=TB-?LCB<@bR1Skj3fn<;?r|?68U#DrpZWudkXuwYP`NWS zuvd3uQqpIyrFJE?*Y|TJ8J~e?@OMeBPtAwmy5fn`478%fwtH8L>Kz*8MNX)A`<W&J z8zQB#mt_#?7N@x#weg(6sgS4!zpfp~c{p&$uE*8x`?-2j>)Wx#sl27n%a2C2ON;IB z%Of}^%&qhJ2WuAvB9v#OS}v7c8WU<;%d-E9`!r4qr%bts`+9rlM$r@>L!756PSH7c z_gh(=>k{YI`!<dlo2EJiE_L4@uX(gTb<1|jo)=T19`}Me;mew|Pu>NtS_4*XipP@# zcJ1}v0g5E6!Q9EkHw7m+sGx=`x0Nkc21BD{qWO!nAhqy8c$;nKvZXSFoC!-GLs{CR zFs^@!#HST+l_KO<UP4sx&%S>d*uIPK%=g}C)R4mWvz#@6L|hknJ<3T=2O;d@OEnv( z#aDHDk!epgZDw}kYIH`UmMqPT=uZKZH~{y;EETs}x|u3H7<FykeLAz-?Tz~A86Py2 z;bXRuj%Ex#S0P!{+6k9cV-~xg-~AYdhM36WCli}f%Len?oC;2M^ghuJzoH;~>sy(4 zbe4@H=M)xxqcU?eyHbGpwbTi+dg5V72re{wXwsw5+o#?|f9(22$M`x&jjncCgoRaW zL|JN8M?T3V=OLv8)%B1MP2WuolqlH@hED2F;x4z?Ff&mE9(40N5`uDvt|zK3Tu;op zIKvS^vIBO5V^fq-hA!9b;~DOm@Eb}_uq|||AYN=nTAX7&VDS<Ny;tNCDVK=ZtbbGM z>ER(-NZM@7WT0ycQc7<KZ8x~~p-fx_HT#==<<@iuAIaYO{8UYJ->u=5IF_d1pzG%W z006M#^9|v|2HBy!iR5XRh?S63X!%1W`-pi6kZ1Ea&r|k5C^>%h5jTeVl`T*k0OF+! z`AT3rKh}7nMRC2#>1377U@fuxF*U`-E5BV|Kb)#4lC?C4kkeN&p4pvKg*m3igD4Ib z13nzgPrwvcc^UZbzKEVq)w*jJ9E8#$Y@yrCfU`AS_6Epi+1IPj%4We-r+{5C84`#& z8?E2tPU_eYo$PE5ZCKSTUfC2c+k9SJ9!?y6d0xzL_*!0=d=H4?6%cj<^Z`!TAR+$D z!FF=0wM(q5&0S12lP88C8G~U2^ZQq?UcETj3YC-O$5tmQ9%kLffq*4%;zcRU8ucCx zeI^|j%NCskjbfdCO%H8rTLD52o51OKkICT~2D%{2z42iHKl;!v6+NDMG7s?lRj^lC z`Z%duK##3Q*5d%<TRSu_FK4tKXM2D0e)_DUg&bi}+Nu>V>}}dszp0fP#0-X&M-^y! zbKshmNqpzfrM=|v%^ir)I$Z(hx{womXJ#FQuFJoS_J5!+x{8n%dW}mtrAxTX_z6U@ z?*Jq~zVGM3DZ(7hc8)hvKm@<s4wm!JRlF8;@s6`@`AY@xF0MB7{1yMA8b(@oQ2Pza zn!#63%`U`MUGMyp#+y4MM{-@^uAN!IGq7=~;IT!+iRpKe=+^9JH|VC<v0EG)aDneL zc+X?sF>%B*prSWD>yLAO@HoAD1{>F0_^7|wmQ*Oe-t@R~rFP_eI3%pfy}Kgv$@LTG zVB%n^Bfo*vGqtr|S4#|_fDWgSey{vEx4ya=Y^@_9QnEfP%;&*V3@;pvjb~uwZGHlM z8?06$No{1V6c9@s<<jdK3)Z`sT3Wi0(&}5{=o>*ia5}&rz^{;J`@bCD{?~-*KTn7M ztp2n7>6?J^@6FJ_xi293_%o{bmvG>3LC8PCfuGfXmjBnA{q{dp{mQo<$l~9N_}|HD zu0{K#J)COiFp#?uOY}FwcG_FqN~Z*cC)!K41pR#Mz(Q(e?Q`R~DU-vRNc{Lo^!9FB zES<K}Or=a8Brb8&TBOSENDp~1cT|y1g9k)C@&}G~geft!CKkLmP(FI94usCVgWB}N zT?C=89L1J?=V0{$Sy5N93V=ca+6+cH_(F6dVhK}|lC$`b{UoQn;SPHX`;5m*+{bZ@ zV_n%r7HPejUshMg%{@JKVc5QIh{eWdZNWPWmgOQYALID8tj9K|c}G}{cG=%{4$DqQ zCV-NzMa56nj9u}RlUKKaQ08qd3zIgFDHV)NRqlIduB=AO9#A7F37&`fLP+t!xp(Xz z0`O$PTH}57HwG(9WeGHQ)>J1o7fdfDEELt`JACZmt<+AG!Zm5GZNb8UqZbzK(Y2?v zlN&#ZH>V5*mv0?^#c}wED)0o<Sw>>b*-Uw5SWsqbkdmfc@{F{!xGcR}C1!YAI!GOT z{L>JQSN9xkQO|}^@-xE)*NI^PMf2jeW%g1`?jsE6+r%`eC&_1fezJ9(^&@D5G^(r) zW`IW*JkAHlmDKbUcv83Rq;P-<Bv<6t6m{f_CAs}E(B_=M0Ck&dobJ=|gwdL%YV)1u zjiI@T(V$h|)9ZB8+9$<j-72btr5@WT9^M-F_6*p5cW?LEMd&$3Eu<2XI4WtpqTQBv z5!=f+LMs%I+3$cQj;^?st~xuhGghq6g|ANk0ag$G-AGu;{&(eao)Vr|fu5SHW*l7G zQTQ!Gq4KHi%51Tvgvv<*;ccThAugTrt@pn4Tw|y3oG<wZ$d`v<#C*jldJklC|Aq^f z_p;rbVwEJqLEv;Ef4f|CfqkU##)s3e9UW<<Cqo|=HDmiF7ow9t31a=&*8E5nH*0Bl z!ZRB?5+!(lKd@c*N%gqM2mNrO|Nf};lWG$I+Qtu;qvl&Uv`2LwFQ2*8O}n0B6tNE- zTh{bIz68<n3l(pEFk0pOc#XSce>tO<;;@%(w}8cA%RX+g1Q6Yc&pO*be7bYWc*Y`4 zjGgp^t9uzSv=w>foqQ;paSpDBuo3$p1N(3#Bi>=kv@F#^QR?9erJaK{AQ%TiI}oi4 zHSIY$P(Dq!JL&_0=k=5y2`W_+l$6yS(gn@mSvq=@^-@_FQ$CT4w}<X$wUBQ{I3@@K zp?|#gb2wJJuZY~iEU+YB-mDax1!<cg)f8b}h@D>Snom%W{=!^W5&Dgu`e|gtkVsDc z!A&fJFM(yI$?x+*WbgZ67!uOPn6`7asObyoffc4tFdXs*e1?B*rlB`Fr#-53hqN}o zJOn6tXvPUL^Up6_!z$>H*PP8dF~mE0)~c5c{mh30W91jFT01#$x0qWz-FOp>B7#mt zpNSNZ#sV+Bd9bp!S$%M{=gX;g#K7VvKZhv1r^7I2)YgU_EsE7d#%34b^SceO5}a$% zMFJ=TkzJ6s5AuUjidt2+=1F`0s)sw{^-^?q$Oho)r-!f;`r~)woA8EHsqQ;PC@?H` zTa0l?xa#{#Jr-2q6Fazx#71gYR>+vNOU|)U2P6;`l`jshw`g4!tldiQ^)AnW7Y^;t z3{$|@<!!e5ajZ#lrO~fqP9M0fkN1&0ecW_&uaxXXdV%FeSutz`^)}1~g|BQh<|x5T z!^78R#b1sGP&Be;RWKa$HSz&6UqzxFO(?n^zE;(4q{H!A6&M@)X@Ls=^Zo7~(wj@` z(}d8Sg_NDS`xir0N&B<!o`q1exaxH!Ykn;MI?rq6)o+Mk@^Rl<MPhNaho<H&KbYS( zGAIMGsU*Y$&Lgjrp$}usWkWbAoMOmyqUv7ydn@=2CX=umR)y<rhdd@Mh|EM@g{};R zyPiU#+lc|Sn{CUW656DMwL{rOfMH8oXt#a61<Mj4G2Cai$QRSWOH=FXj~6bfK~&U| zv%O2*Y^_lR@!5Ny4=t#4RywGtp|5+kbK6Hpw41D9SMhVf(>w8r+w)5~B;{4X#*=cV z)t-5k;oLWG`GAWy)}K0AiSC${u73|Gm%}LS$REbFzjmVs&f;eP0F+0j{x3M;Z}G#g zW?wLX=Kl;!fbwrU?)!=V+x`3>4*!4H>|mw;J7)ht;??$z7pNc~rK!b3<i1p%r+g7J z^)lq7ydB?Ta9^Q@`DcBQsD4oFr|#@)#g^PEH@m6M#d9kyscNKYiBz-0iWyODCYs#b znvOB^SFC2f+&%Nhsc(p9RTdRyP*pmIC=khO^Y_h(O3<-myI;qIR<l7W{mSHcK86Uw z9-OjcmjJVqVJ<-|7<pjc*hR2@(rVI6b>ZoYbq7|sC7F1)h3Wenj-(iJK>58qk;oJg zPW;XdeAvVgL9yg-zkoQvT^<KMIy?d7Cml|H%m?WF)<KXs!wixrC7&-n_(p~H=YQk? z5;%<X7fEa6hwGmr!vQE1_@`IuA<{SVU%#QyW;-DJuSP&!q6gqAe$fwExQeX??v?-R zo9BN31pP(h0kg_5<X^4+BJi(Phu`>SA`hq_Gxk$Luu3vnf5{F74?C1X3^CR7kcsc# zGe8Hd#}HM;UVZqGzoj%Yuu~=w97DrmaVTJA7<k1ee`ou-<DKpOi6i1QMOph?fB4>o z&b!%|*(q@2FX3FNRi^l!E(XoFv_%$S+}09w?`a4h^j$i9O#&-}9_x7}5X>@b70bNb zMA($KKLh=(QPjUL6u9)OOZ-UO=+conKALM<OQYcMgw-F1VyMOuLD9TB!%%rcyAAE1 z8o(kI4ykaBC4O4qJ>r0B0fqQljhn@_OAhq%#>lx|xQ9)cj$4~zPJS!>-6EJtJjp)8 zNKcmMRn3kK+|@@KLLA4>RmR%6v_FYdxF(vJ57V_7TxzFiz&P=fo^jSlbEpi?Fasj| z0*WplP?wqa2q2DAV`3ToOcd!BN@c?~wR+n`dL#Tljmk-S=Ix`m9&@HXbC;B{M1~*e zh~SMJ_}3wyax=r%3PnTmZ)EHV3)+#dbil1Ma~x16^zQi3t;Q}n*1@3<G&1mpO1VNa z%?Jc!&2}<<e#K~lfXU+t2S_g6#2}p4XZPw0?%HbEbtSFDHg83@dvzCA6@%*3gGrU9 zm=UqYd2f*w_1ApfT=DxBc+7BelXjgV6$-!uo`X^OTVIOhSua}?26msg3$JrP6QeyY zB}<kd9`Dv$K5l#^Fm4YQzK@m5+ELOrd(GF3=YnmEh)K>Tml$RT$t7jXY>ySy#eaMt zG^0L(3N%^|-3AuYf!MoZeKYG7%!;z(3rY&Gp_G`l%w6l^>8~Rn2rD_|J`wwFrbf#l zul-HmM29DCYAA8<S=L6W1ywoN$-9*D6pg$Es~#w@U{?%L{j6A}w`1Yg2e3584-UP7 zNh4quf4<!`s99@Ti0rKN)Q|P3-4gp*xuxgu;*wW=$klRoH2sk#djwSH2vLa1T=3Ib zwH@p~or&+CKQV$(+~pfgY-`{oM)Gd1`HzWhpA6c&C8nQzI{c#D^et@br^A)yFlN1O z>+$%q3C>`FSf!G5G4WGW*Zx-b_qA4=4E2$!&!g#U6mUZZuI*;!nua-G*r<aU{@#GA z9XglpX|z4mYWt34vv;;~X(*L?#>2#s(R+VPqjl}9(%m~&E<1#f2_&Y4S~Lmllljbu zI)-Te1m*yo&^ZR&HBd4T^-5<n-!ELh`L6AnCsrssoOfpf;c8)+lSDHgOB(Ro2`Bi` zHOpsh)ox;Ig|My94=oOb_9Zhl`$T4w^oG6RniZZ0*78}iMQ1}-KT_nB^e9{_My*U# z1{m4t(wL0v!{dpomCc7%^k|)l=H%r#V5YxKB>U?WqE-fOkXA3r%v{tM7#Ui-Mw|Tu zZHnyL;6GYkqp~vUQX@$L!@#SD&MV<u(t_}bk{-hG_QO*1jO%l5{3}~uUO|)Qy(H@x ziXrIzMZNt%;3<P*A7OPO^#;n&)@H%GWD`WEwOUs`QmFFNIE~&XOu0#d2=pGNE>>Ta zA_brWPO?I-Gc~~mp022@?1$q<s><eUBH4DaJJ2LdMfQpxdTY&Y-Cu~K!H6esV+&c6 zot48h;9@?j7|?>17sxR%r1i@M8N?7TT3FRmCqo%GAM7qylLq-?9;W_f;E_YpLyu$u zcJQry<Qe|$Lq=-VNF7MKdlvU#eH?k?d)54|o;E~yBeLd|wq>bJZN(!&JL<fjON!rJ zy$G0&;U$VEY8xWG0*U%8eicvLHOKQOfRveBn0Ra4j`{wQb62UD(!`VAtfBs;Nr96r z&O9?m=E>;Y8TZHacn+Up*vxx_<hPgi*_=u?X6>_MH5g1%#+!#{%S_I{J5aL4D}Q;W zf9rjo(>quC{_<MvXhZ>=g7*B$o9FNEEJ&XCBkYR*hL?l>7vnwz;KjbwYaU4g=ny=A z?$AxR4+B2|3VG;Bj<o~#q61mWU*G(zZ#i@hfUEke(cyY<rvU%e=<u7-j6-+!m&*nQ zkX`_~{pD{bnL+4M53;lR$>{f=t$;EA^8CvcNB->4FRV}jn>w;rXGfES97pTkT;e$J zd=QApd2!(LfvQ)rabWBJ)xVPYJ0J}3#fK)0UE=x4y()Uw*)ZVsF0Vg4+V6(?7$y5& z0ea??IL1bH*NRk+$YIEz#A6Y7z@py9{s#O4+`<Y2egR503gDN6uMa*(Fg-sA2-qn8 zO|3tG%8FD#FMx4I9*-c$9!Dd6`Pt=BAHPQW+2wyX(yv;_4!itG?Gf<@BMJT@>!6Qc zBmM01h}yr6^sClwfJ&g|5w$;wKNu+iczfRw=YQ+#*NEhYGLBgMS7DMlm;WDO{!N&a zzqILKLVgMHXny`j)c>8XJ%at`diy`3CjPW<2P(MuYaNq?`MhzM`L<5%-dQHONJA4| z*FV`U#d`XxnVZ>fe7t=!QmKH4A71wgUH?I4eOgu62A<jfD)tt>@_63O**<@}6p(39 zp8BWvS=DdFU5Y1;-QIwkPj~bSsW?q5OOoVRDTF4a+nw4xsTS9&7LNbS0{;Vm2U5gW z{|#<`un+$?&2AU{=gH}V4f=oHEQuUp|H82Uh7LSY`IXi9+y4Kb>4{$%_uFL80sJ`v zq5lpWgb^<u{C@C!%>T09-?Jb8+ui?PZuXOjpXJ|VaPj|@s-zZKpG5}`ljWu_e)2LF zgYfn2!EF`V(9Iir!5m{LSI*Z4LVrK%J3cXyWMjTu6P&!B*q=Z3b$a3>dW|q4yDPg< zO}+G5PI12>d`X@1wed~y)XPT4kCbZT$HMOBTwYE9ym%d@M~K#Ux?VE+gkO8<^<n=e z4$5!dC_K+N!g#hGQ2Wr!?bN5M$xZ8{C!U>g2$C_;p$y@=c{7#n@Js~=os!H-r)$@X z4ej+Vf#E{m4MuIhuD;2}-mtpy1A^|DhwyK>@3&rmq@)J;Y9RT#5gHVvHukLKwGB@+ zeysCGYF%9nOHlWG6-;bLuAQV&I}n`BY|!YRqcTBg1i_u2+Q{<{Iy|*4(+S8B=RFds zNsxaj8~%Ye&19pd6AGdns$h~H$Bxc&tZjHEZyGg<x1hK`e|Z{+!4A>!t5}&>ZzjgH zhWqCtH$pR~FLar{)8VGg(nV%|Ht~y<>h-7g>IplmtG|Em{V<a0NULSs#48tCqSn0M z;f7Z)1l6hMeTM;%s&!#GSF|B2?I<Pu5OyhCTa;P1a^l`OB!u^(QvJ*3MB-iJQMakJ zEYHG6+JB`HPx3Qa%f{(DW}F1`)4oYDsUBB@8E@m~)x&4#dDL7s_OHm|JIabjw*1d$ zGY16hml|<uH4(Op5KzyllP*@oA4AdX=$d;7eXD008$Y^(pm28wsAt9C?!`Gz3IT$^ z6PEiMmT#G)D$uKj{XH)RmCnAHI@csigh!`FU%s>=b`rDu>AmpO7wAfRJ0k2>WP6%g zLI@vl&#v=#+&N{|^rqM;xMZ?VM^@f=^WJ7)SK58@>U{2@3<I>W7r}TZTQn4q8l(pl zjh7u-551s4M_v4^eOYyK@7tF2hOLauV@^4&z2$?hf`+b+A_PMFfs$zygPH<>m`IeQ zS)m$(?>X`y%2(|Zo$C39ZN8f;lrW&31t$UuXD=clP0!CI*IB$3<4i%XZjahPm<E!@ z?{aJ7*wG`UqMQAUaF=@nXZta0!E}K*YUKb;T#NG?*!V(s_fVx005p-~wUBUpTa^o| zk5K`L4wwfha4599%WYBJad-%QCbEc$NvWT=4r}7Hls)x5Wp#E{ryZ{$brMQ6l4i|@ zelKYXjL3h~mE;8Pyf`&C5RxWh^5$LVSKFO$L(8>&#di8#A)WmON*IV}B1PY(k?9tl z8a;3~<U*uPVZ%<*Y62#bT`Q58pLLB{_p1?UVFJ?UZC|$iVk$QyF}7-K*m)hYjbxKJ z!11QVv34Z(o$mp0Y-m8FUh%*KA+bsnj7m#3xyxr`_uSREW@opybZ5}R+SYQdm1BNv zb$RKTm3F#ZgmWsNMyBTShbB`4&E~1>gJK5*<|CQ!pLwathK`Bv(L)yA&v=;=Pvj2e zHQ<1dzBub>wnB&;d~Y{IF_lLz-$6puuS^AA$Zq5aWE-nw?Bdd*x$&U9pxa|YTlKv~ zhq&nDGFahgS?{W=mD8JLI(1$}XmK8VS41?Dv&CqRVX~Jb8=J$AO<8!~1S)xWDnWcW zE-A<Usbm(nMFVE)5$%5W!5Yflg_P>ikK8Y(0~_V(FqCb6&9^bp*Nan39@)HSJo1~s z<5*(Z{WCZYw4h57)J7f!vcUuQ>G$eyv1PxLG+SmEl;U0XeIg;qtQ9HLMa>4RXJDEa zsd6jj%XWoT)AghkH2w30mm`fcGt2Gv=AG%%Xzg9?_VW<N`<|8gvYO#U?)9)l0_m!E z6nF3EF%aE;B^1~Lk~dah`|maH0kcU{^usalAur9@DnF2zi#@zd4pO$z_kj+T8ho|$ zE8DB=&eRMVM#@hLop$ZCk3Iso1e)(LB@M2L3@&w5B7#9;J>e-~dhV_Hz}Agy;z;c1 zH&~wdkSs%|4}UFmRoKe=EH7%`n))2WvdUUZct!UnuKw;BXDcF4jn)8E#4cN}*zBI3 z(^fdd>`jJ!aOq9``m<B|o?_wn%J*~V2m>C^tfK*j*wGZ!X&Zpuugdv3fSD5Pry0xr z&XypiCRg6#JnQp5h6tscx8$ZN>Jp=4)h$J!H&*-Z(xf{~;*++xdz0t6qt^}lgdncI zB|0hlgnf%FcJTc6k1aWiPDcOq5rdn5q8B`HVE#m=zCIUOW~Y(8hv}kKAHn=Z-F*a; zML&i(jAKRiwQ%66RY0PjCqWy})|dPk<%$6J;<Oy>acG%!a$UjvHu&6|x`Scy(RQ2d z>ZdXVMFtA4HT(G&%_TZMC_w?ozijQj+JAI6-!FD`j=b;F8OG55J5Bnd0gs}Jrj*H1 z`QnJ4*9v-*vL-zm@xU~uQpbd(q)SnyY=h|Lsq7Hzj$+YO32m*xx;?P0l9?eD7!Bsf zZuEJ^?<{J`42NqDNIhcA*)c4`TaO7%nsQa<p+RqM$^e!)@Vz;h-#uz_Kq~Z{QG5%X z5jSF{cdv4e@j70b+MePhU|TD!pJfdtxe8~0emFIo)!BFI?&I-J2}fV6;Lhs@#`<+h zCKy@1<LUKf^4cxhP+vI&&p!Lc$8sT<_=ldAhN6vqdm>@P6PrSq^6C%ZCndOG00e`) z+eYGNXJ-MoETHOLHeVjelbHiM@Si%MC~khSD|4zAH`I*|<F07wZK?g{&3*$8xsXyV z92y3=_XGcVIhytDhW%SmiT4k~3y0i_Vf}VLQoO^BJ}W8x!{yCJWDq$R0BRdTT*Hdr zsL++Fs~z^L?T&&#yckMe1qCzwKTG<3#Z<jWTTH9)W6B;8W^i?Xy0A{>j?9hf1vS@i z9y;^m4&Sbw$JR|;sRV8&T&V=s=~KIPrIH?BsZHOOW3_45&y2jk+jsKsKVSR7+2&FI zrTs9Y;`)9ccf9pp@vYVEnPrbNUhn-?#{wx2Rdzl(`Q|Y&S*xq9=ZUenQoOA;{r;}C z_fvpvnMe04jN-Z&4cF|*Szz$_`OoCJnb&WgvdsmbXSiVBWZ2GjvYO6hwz%<VLzy5$ zYu`HnCwWnt%s>uQJ$MES$br$g`vC&~_RCspfW~D6uI=Bd`(d-JCNLHC=~x~Bmuud9 zFnR-c>Sq!&m<AF$piBy*fgEqpU=Gc-L2bcm+kr{ilT<uG=!(82m{##*mYtt@xtlxs Q9nf(Mp00i_>zopr012SJ@&Et; literal 107838 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 diff --git a/docker-for-windows/images/settings-shared-drives.png b/docker-for-windows/images/settings-shared-drives.png index 324bfbab33c92121f45b6e8960497870f059344e..4550899d2cd2e16ca4108eff2949a309c2903a74 100644 GIT binary patch literal 72039 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 literal 97784 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 KKbLh*2~7a*#*2ag diff --git a/docker-for-windows/index.md b/docker-for-windows/index.md index 4afe09d087..6485c0daae 100644 --- a/docker-for-windows/index.md +++ b/docker-for-windows/index.md @@ -240,8 +240,7 @@ credentials so that you don't need to enter them every time. There are a number of issues with using host-mounted volumes and network paths for database files. See [Volume mounts from host paths use a nobrl option to override database locking](troubleshoot.md#volume-mounts-from-host-paths-use-a-nobrl-option-to-override-database-locking). > - * Docker for Windows sets permissions to read/write/execute for users and - read/execute for groups and others [0755 or u+rwx,go+rx](http://permissions-calculator.org/decode/0755/). + * Docker for Windows sets permissions to read/write/execute for users, groups and others [0777 or a+rwx](http://permissions-calculator.org/decode/0777/). This is not configurable. See [Permissions errors on data directories for shared volumes](troubleshoot.md#permissions-errors-on-data-directories-for-shared-volumes). > * Ensure the domain user has access to shared drives, as described in [Verify domain user has permissions for shared drives](troubleshoot.md#verify-domain-user-has-permissions-for-shared-drives-volumes). @@ -297,7 +296,7 @@ You can configure Docker for Windows networking to work on a virtual private net ![Network settings](images/settings-network.png){:width="600px"} -* **Internal Virtual Switch** - You can specify a network address translation (NAT) prefix and subnet mask to enable internet connectivity. +* **Internal Virtual Switch** - You can specify a network address translation (NAT) prefix and subnet mask to enable Internet connectivity. * **DNS Server** - You can configure the DNS server to use dynamic or static IP addressing. @@ -427,12 +426,11 @@ For a full list of options on the Docker daemon, see [daemon](/engine/reference/ [Kubernetes on Docker for Windows](/docker-for-windows/kubernetes/){: target="_blank" class="_"} is available in -[18.02 Edge (win50)](/docker-for-windows/edge-release-notes/#docker-community-edition-18020-ce-rc1-win50-2018-01-26){: target="_blank" class="_"} and higher edge channels only. +[18.02 Edge (win50)](/docker-for-windows/edge-release-notes/#docker-community-edition-18020-ce-rc1-win50-2018-01-26){: target="_blank" class="_"} and higher, and in [18.06 Stable (win70)](/docker-for-windows/edge-release-notes/#docker-community-edition-18060-ce-win70-2018-07-25) and higher. ![Enable Kubernetes](images/settings-kubernetes.png){:width="600px"} -Docker for Windows 18.02 CE Edge and higher include a standalone Kubernetes -server that runs on your Windows host, so that you can test deploying your +From Docker for Windows 18.02 CE Edge and 18.06 CE Stable a standalone Kubernetes server is included that runs on your Windows host, so that you can test deploying your Docker workloads on Kubernetes. The Kubernetes client command, `kubectl`, is included and configured to connect @@ -445,6 +443,10 @@ to change context so that `kubectl` is pointing to `docker-for-desktop`: > kubectl config use-context docker-for-desktop ``` +You can also change it through the Docker for Windows menu: + +![Change Kubernetes Context](images/docker-menu-context-switch.png){:width="600px"} + If you installed `kubectl` by another method, and experience conflicts, remove it. @@ -452,7 +454,7 @@ experience conflicts, remove it. running as a Docker container, select **Enable Kubernetes** and click the **Apply and restart** button. - An internet connection is required. Images required to run the Kubernetes + An Internet connection is required. Images required to run the Kubernetes server are downloaded and instantiated as containers, and the > Program Files\Docker\Docker\Resources\bin\kubectl.exe` command is installed. @@ -468,18 +470,6 @@ experience conflicts, remove it. For more about using the Kubernetes integration with Docker for Windows, see [Deploy on Kubernetes](kubernetes.md). -### Diagnose & feedback - -Use this tab to troubleshoot problems and get help from Docker. - -![Reset](images/settings-diagnose.png){:width="600px"} - -Log on to our [Docker for Windows forum](https://forums.docker.com/c/docker-for-windows) to get help from the community, review current user topics, or join a discussion. - -Log on to [Docker for Windows issues on GitHub](https://github.com/docker/for-win/issues) to report bugs or problems and review community reported issues. See [Logs and Troubleshooting](troubleshoot.md) for more details. - -To give feedback on the documentation or update it yourself, use the Feedback options at the bottom of each docs page. - ### Reset On the Reset tab, you can restart Docker or reset its configuration. @@ -491,6 +481,16 @@ On the Reset tab, you can restart Docker or reset its configuration. * **Reset to factory defaults** - Resets Docker to factory defaults. This is useful in cases where Docker stops working or becomes unresponsive. +### Diagnose & feedback + +Visit our [Logs and Troubleshooting](troubleshoot.md) guide for more details. + +Log on to our [Docker for Windows forum](https://forums.docker.com/c/docker-for-windows) to get help from the community, review current user topics, or join a discussion. + +Log on to [Docker for Windows issues on GitHub](https://github.com/docker/for-win/issues) to report bugs or problems and review community reported issues. + +To give feedback on the documentation or update it yourself, use the Feedback options at the bottom of each docs page. + ## Switch between Windows and Linux containers From the Docker for Windows menu, you can toggle which daemon (Linux or Windows) diff --git a/docker-for-windows/install.md b/docker-for-windows/install.md index 3a8e83aa82..d53e4c1d75 100644 --- a/docker-for-windows/install.md +++ b/docker-for-windows/install.md @@ -4,62 +4,83 @@ keywords: windows, beta, edge, alpha, install, download title: Install Docker for Windows --- -Docker for Windows is the -[Community Edition (CE)](https://www.docker.com/community-edition) -of Docker for Microsoft Windows. To download Docker for Windows, head to Docker -Store. +Docker for Windows is the [Community Edition +(CE)](https://www.docker.com/community-edition) of Docker for Microsoft Windows. +To download Docker for Windows, head to Docker Store. -[Download from Docker Store](https://store.docker.com/editions/community/docker-ce-desktop-windows){: .button .outline-btn} +[Download from Docker +Store](https://store.docker.com/editions/community/docker-ce-desktop-windows){: +.button .outline-btn} ## What to know before you install -If your system does not meet the requirements to run Docker for Windows, you can install -[Docker Toolbox](/toolbox/overview.md), which uses Oracle Virtual Box instead of -Hyper-V. +* **README FIRST for Docker Toolbox and Docker Machine users**: Docker for + Windows requires Microsoft Hyper-V to run. The Docker for Windows installer + enables Hyper-V for you, if needed, and restart your machine. After Hyper-V is + enabled, VirtualBox no longer works, but any VirtualBox VM images remain. + VirtualBox VMs created with `docker-machine` (including the `default` one + typically created during Toolbox install) no longer start. These VMs cannot be + used side-by-side with Docker for Windows. However, you can still use + `docker-machine` to manage remote VMs. -* **README FIRST for Docker Toolbox and Docker Machine users**: Docker for Windows requires Microsoft Hyper-V to run. The Docker for Windows installer enables Hyper-V for you, if needed, and restart your machine. After Hyper-V is -enabled, VirtualBox no longer works, but any VirtualBox VM images -remain. VirtualBox VMs created with `docker-machine` (including the `default` -one typically created during Toolbox install) no longer start. These VMs -cannot be used side-by-side with Docker for Windows. However, you can still use -`docker-machine` to manage remote VMs. -* Virtualization must be enabled in BIOS and CPU SLAT-capable. Typically, virtualization is enabled by default. This is different from having Hyper-V enabled. For more -detail see [Virtualization must be -enabled](troubleshoot.md#virtualization-must-be-enabled) in Troubleshooting. -* The current version of Docker for Windows runs on 64bit Windows 10 Pro, Enterprise and Education (1607 Anniversary Update, Build 14393 or later). -* Containers and images created with Docker for Windows are shared between all user accounts on machines where it is installed. This is because all -Windows accounts use the same VM to build and run containers. -* Nested virtualization scenarios, such as running Docker for Windows -on a VMWare or Parallels instance, might work, but come with no -guarantees. For more information, see -[Running Docker for Windows in nested virtualization scenarios](troubleshoot.md#running-docker-for-windows-in-nested-virtualization-scenarios) -* **What the Docker for Windows install includes**: The installation provides [Docker Engine](/engine/userguide/), Docker CLI client, [Docker Compose](/compose/overview.md), [Docker Machine](/machine/overview.md), and [Kitematic](/kitematic/userguide.md). +* **System Requirements**: + - Windows 10 64bit: Pro, Enterprise or Education (1607 Anniversary Update, + Build 14393 or later). + - Virtualization is enabled in BIOS. Typically, virtualization is enabled by + default. This is different from having Hyper-V enabled. For more detail see + [Virtualization must be + enabled](troubleshoot.md#virtualization-must-be-enabled) in Troubleshooting. + - CPU SLAT-capable feature. + - At least 4GB of RAM. + +> **Note**: If your system does not meet the requirements to run Docker for +> Windows, you can install [Docker Toolbox](/toolbox/overview.md), which uses +> Oracle Virtual Box instead of Hyper-V. + +* **What the Docker for Windows install includes**: The installation provides + [Docker Engine](/engine/userguide/), Docker CLI client, [Docker + Compose](/compose/overview.md), [Docker Machine](/machine/overview.md), and + [Kitematic](/kitematic/userguide.md). +* Containers and images created with Docker for Windows are shared between all + user accounts on machines where it is installed. This is because all Windows + accounts use the same VM to build and run containers. +* Nested virtualization scenarios, such as running Docker for Windows on a + VMWare or Parallels instance, might work, but come with no guarantees. For + more information, see [Running Docker for Windows in nested virtualization + scenarios](troubleshoot.md#running-docker-for-windows-in-nested-virtualization-scenarios) ### About Windows containers Looking for information on using Windows containers? -* [Switch between Windows and Linux containers](https://docs.docker.com/docker-for-windows/#switch-between-windows-and-linux-containers) describes the Linux / Windows containers toggle in Docker for Windows and points you to the tutorial mentioned above. -* [Getting Started with Windows Containers (Lab)](https://github.com/docker/labs/blob/master/windows/windows-containers/README.md) -provides a tutorial on how to set up and run Windows containers on Windows 10 or -with Windows Server 2016. It shows you how to use a MusicStore application with -Windows containers. -* Docker Container Platform for Windows Server 2016 [articles and blog posts](https://www.docker.com/microsoft/) on the Docker website +* [Switch between Windows and Linux + containers](https://docs.docker.com/docker-for-windows/#switch-between-windows-and-linux-containers) + describes the Linux / Windows containers toggle in Docker for Windows and + points you to the tutorial mentioned above. +* [Getting Started with Windows Containers + (Lab)](https://github.com/docker/labs/blob/master/windows/windows-containers/README.md) + provides a tutorial on how to set up and run Windows containers on Windows 10 + or with Windows Server 2016. It shows you how to use a MusicStore application + with Windows containers. +* Docker Container Platform for Windows Server 2016 [articles and blog + posts](https://www.docker.com/microsoft/) on the Docker website ## Install Docker for Windows desktop app 1. Double-click **Docker for Windows Installer.exe** to run the installer. - If you haven't already downloaded the installer (`Docker for Windows Installer.exe`), you can get it from + If you haven't already downloaded the installer (`Docker for Windows + Installer.exe`), you can get it from [**download.docker.com**](https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe). - It typically downloads to your `Downloads folder`, or you can run it from the recent downloads bar at the - bottom of your web browser. + It typically downloads to your `Downloads folder`, or you can run it from + the recent downloads bar at the bottom of your web browser. -2. Follow the install wizard to accept the license, authorize the installer, and proceed with the install. +2. Follow the install wizard to accept the license, authorize the installer, and + proceed with the install. - You are asked to authorize `Docker.app` with your system password during the install process. - Privileged access is needed to install networking components, links to the Docker apps, and manage the - Hyper-V VMs. + You are asked to authorize `Docker.app` with your system password during the + install process. Privileged access is needed to install networking + components, links to the Docker apps, and manage the Hyper-V VMs. 3. Click **Finish** on the setup complete dialog to launch Docker. @@ -77,7 +98,8 @@ accessible from any terminal window. ![whale on taskbar](images/whale-icon-systray.png) If the whale is hidden in the Notifications area, click the up arrow on the -taskbar to show it. To learn more, see [Docker Settings](index.md#docker-settings). +taskbar to show it. To learn more, see [Docker +Settings](index.md#docker-settings-dialog). If you just installed the app, you also get a popup success message with suggested next steps, and a link to this documentation. @@ -92,7 +114,10 @@ Congratulations! You are up and running with Docker for Windows. ## Where to go next * [Getting started](index.md) introduces Docker for Windows. -* [Get started with Docker](/get-started/) is a tutorial that teaches you how to deploy a multi-service stack. -* [Troubleshooting](troubleshoot.md) describes common problems, workarounds, and how to get support. +* [Get started with Docker](/get-started/) is a tutorial that teaches you how to + deploy a multi-service stack. +* [Troubleshooting](troubleshoot.md) describes common problems, workarounds, and + how to get support. * [FAQs](faqs.md) provides answers to frequently asked questions. -* [Stable Release Notes](release-notes.md) or [Edge Release Notes](edge-release-notes.md). +* [Stable Release Notes](release-notes.md) or [Edge Release + Notes](edge-release-notes.md). diff --git a/docker-for-windows/opensource.md b/docker-for-windows/opensource.md index 333d4f3967..2a7bb4096e 100644 --- a/docker-for-windows/opensource.md +++ b/docker-for-windows/opensource.md @@ -7,7 +7,7 @@ notoc: true Docker Desktop Editions are built using open source software. For details on the licensing, choose ![whale menu](/docker-for-mac/images/whale-x.png){: .inline} --->&nbsp;**About** from within the application, then click **Acknowledgements**. +→ &nbsp;**About** from within the application, then click **Acknowledgements**. Docker Desktop Editions distribute some components that are licensed under the GNU General Public License. You can download the source for these components diff --git a/docker-for-windows/troubleshoot.md b/docker-for-windows/troubleshoot.md index 9e3de326bd..a767b67b4f 100644 --- a/docker-for-windows/troubleshoot.md +++ b/docker-for-windows/troubleshoot.md @@ -7,18 +7,68 @@ redirect_from: title: Logs and troubleshooting --- -This page explains how to diagnose and troubleshoot problems you may be having with Docker for Windows. +Here is information about how to diagnose and troubleshoot problems, send logs +and communicate with the Docker for Windows team, use our forums and Knowledge +Hub, browse and log issues on GitHub, and find workarounds for known problems. -## Getting help +## Docker Knowledge Hub -There are several ways to get the support you need with Docker for Windows. If you encounter problems not addressed here in the documentation: +**Looking for help with Docker for Windows?** Check out the [Docker Knowledge +Hub](http://success.docker.com/q) for knowledge base articles, FAQs, and +technical support for various subscription levels. -- Refer to the knowledge base articles at the [Docker Success Center](https://success.docker.com/q/). -- Browse the logs (in `User\AppData\Local\Docker`) by clicking **log file** in the Diagnose & Feedback window. -- Ask questions on the [Docker for Windows forum](https://forums.docker.com/c/docker-for-windows). -- Upload diagnostics in the Diagnose & Feedback window. You'll get a unique ID in return. You can then use this ID to submit issues at the [Docker for Windows GitHub repo](https://github.com/docker/for-win/issues). +## Diagnose problems, send feedack, and create GitHub issues -![Diagnose & Feedback with ID](images/diagnostic-id.png){:width="500px"} +### In-app diagnostics + +If you encounter problems for which you do not find solutions in this +documentation, on [Docker for Windows issues on +GitHub](https://github.com/docker/for-win/issues), or the [Docker for Win +forum](https://forums.docker.com/c/docker-for-windows), we can help you +troubleshoot the log data. + +Choose ![whale menu](images/whale-x.png){: .inline} → **Diagnose & Feedback** +from the menu bar. + +![Diagnose & Feedback](images/diagnose-feedback.png){:width="600px"} + +Once the **Diagnose & Feedback** window is opened, it will start to collect the +dignostics. When the diagnostics are available, you can upload them and obtain a +**Diagnostic ID**, which must be provided when communicating with the Docker +team. For more information on our policy regarding personal data you can read +[how is personal data handled in Docker +Desktop](https://docs.docker.com/docker-for-mac/faqs/#how-is-personal-data-handled-in-docker-desktop). + +![Diagnose & Feedback with ID](images/diagnostic-id.png){:width="600px"} + +If you click on **Report an issue**, this opens [Docker for Windows issues on +GitHub](https://github.com/docker/for-win/issues/) in your web browser in a +"create new issue" template, to be completed before submision. Do not forget to +copy/paste your diagnistic ID. + +![issue-template](images/issue-template.png){:width="600px"} + +### Diagnosing from the terminal + +On occasions it is useful to run the diagnostics yourself, for instance if +Docker for Windows cannot start. + +First locate the `com.docker.diagnose`, that should be in `C:\Program +Files\Docker\Docker\resources\com.docker.diagnose.exe`. + +To create *and upload* diagnostics in Powershell, run: + +```powershell + PS C:\> & "C:\Program Files\Docker\Docker\resources\com.docker.diagnose.exe" gather -upload +``` + +After the diagnostics have finished, you should have the following output, +containing your diagnostic ID: + +```sh +Diagnostics Bundle: C:\Users\User\AppData\Local\Temp\CD6CF862-9CBD-4007-9C2F-5FBE0572BBC2\20180720152545.zip +Diagnostics ID: CD6CF862-9CBD-4007-9C2F-5FBE0572BBC2/20180720152545 (uploaded) +``` ## Troubleshooting topics @@ -41,25 +91,17 @@ As well as on the registry. For example: ``` For more about using client and server side certificates, see [How do I add -custom CA certificates?](index.md#how-do-i-add-custom-ca -certificates) and [How do I add client -certificates?](index.md#how-do-i-add-client-certificates) in -the Getting Started topic. +custom CA certificates?](index.md#how-do-i-add-custom-ca certificates) and [How +do I add client certificates?](index.md#how-do-i-add-client-certificates) in the +Getting Started topic. ### Volumes #### Permissions errors on data directories for shared volumes -Docker for Windows sets permissions on [shared -volumes](index.md#shared-drives) to a default value of -[0755](http://permissions-calculator.org/decode/0755/) (`read`, `write`, -`execute` permissions for `user`, `read` and `execute` for `group`). If you are -working with applications that require permissions different than this default, -you may get errors similar to the following. - -```none -Data directory (/var/www/html/data) is readable by other users. Please change the permissions to 0755 so that the directory cannot be listed by other users. -``` +Docker for Windows sets permissions on [shared volumes](index.md#shared-drives) +to a default value of [0777](http://permissions-calculator.org/decode/0777/) +(`read`, `write`, `execute` permissions for `user` and for `group`). The default permissions on shared volumes are not configurable. If you are working with applications that require permissions different from the shared @@ -67,9 +109,17 @@ volume defaults at container runtime, you need to either use non-host-mounted volumes or find a way to make the applications work with the default file permissions. -Docker for Windows currrently implements host-mounted volumes based on the [Microsoft SMB protocol](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365233(v=vs.85).aspx), which does not support fine-grained, `chmod` control over these permissions. +Docker for Windows currrently implements host-mounted volumes based on the +[Microsoft SMB +protocol](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365233(v=vs.85).aspx), +which does not support fine-grained, `chmod` control over these permissions. -See also, [Can I change permissions on shared volumes for container-specific deployment requirements?](faqs.md#can-i-change-permissions-on-shared-volumes-for-container-specific-deployment-requirements) in the FAQs, and for more of an explanation, the GitHub issue, [Controlling Unix-style perms on directories passed through from shared Windows drives](https://github.com/docker/docker.github.io/issues/3298). +See also, [Can I change permissions on shared volumes for container-specific +deployment +requirements?](faqs.md#can-i-change-permissions-on-shared-volumes-for-container-specific-deployment-requirements) +in the FAQs, and for more of an explanation, the GitHub issue, [Controlling +Unix-style perms on directories passed through from shared Windows +drives](https://github.com/docker/docker.github.io/issues/3298). #### inotify on shared drives does not work @@ -78,39 +128,48 @@ for example, when an application needs to read/write to a container across a mounted drive. Instead of relying on filesystem inotify, we recommend using polling features for your framework or programming language. -* **Workaround for nodemon and Node.js** - If you are using [nodemon](https://github.com/remy/nodemon) with `Node.js`, try the fallback polling mode described here: [nodemon isn't restarting node applications](https://github.com/remy/nodemon#application-isnt-restarting) +* **Workaround for nodemon and Node.js** - If you are using + [nodemon](https://github.com/remy/nodemon) with `Node.js`, try the fallback + polling mode described here: [nodemon isn't restarting node + applications](https://github.com/remy/nodemon#application-isnt-restarting) -* **Docker for Windows issue on GitHub** - See the issue [Inotify on shared drives does not work](https://github.com/docker/for-win/issues/56#issuecomment-242135705) +* **Docker for Windows issue on GitHub** - See the issue [Inotify on shared + drives does not + work](https://github.com/docker/for-win/issues/56#issuecomment-242135705) #### Volume mounting requires shared drives for Linux containers -If you are using mounted volumes and get runtime errors indicating an application file is not found, access is denied to a volume mount, or a service cannot start, such as when using [Docker Compose](/compose/gettingstarted.md), you might need to enable [shared drives](index.md#shared-drives). +If you are using mounted volumes and get runtime errors indicating an +application file is not found, access is denied to a volume mount, or a service +cannot start, such as when using [Docker Compose](/compose/gettingstarted.md), +you might need to enable [shared drives](index.md#shared-drives). Volume mounting requires shared drives for Linux containers (not for Windows containers). Go to ![whale menu](/docker-for-mac/images/whale-x.png){: .inline} ---> **Settings** --> **Shared Drives** and share the drive that contains the +→ **Settings** → **Shared Drives** and share the drive that contains the Dockerfile and volume. #### Verify domain user has permissions for shared drives (volumes) > **Tip**: Shared drives are only required for volume mounting [Linux -> containers](index.md#switch-between-windows-and-linux-containers), -> not Windows containers. +> containers](index.md#switch-between-windows-and-linux-containers), not Windows +> containers. Permissions to access shared drives are tied to the username and password you -use to set up [shared drives](index.md#shared-drives). If -you run `docker` commands and tasks under a different username than the one used -to set up shared drives, your containers don't have permissions to access the -mounted volumes. The volumes show as empty. +use to set up [shared drives](index.md#shared-drives). If you run `docker` +commands and tasks under a different username than the one used to set up shared +drives, your containers don't have permissions to access the mounted volumes. +The volumes show as empty. The solution to this is to switch to the domain user account and reset credentials on shared drives. -Here is an example of how to de-bug this problem, given a scenario where you +Here is an example of how to debug this problem, given a scenario where you shared the `C` drive as a local user instead of as the domain user. Assume the local user is `samstevens` and the domain user is `merlin`. -1. Make sure you are logged in as the Windows domain user (for our example, `merlin`). +1. Make sure you are logged in as the Windows domain user (for our example, + `merlin`). 2. Run `net share c` to view user permissions for `<host>\<username>, FULL`. @@ -132,9 +191,8 @@ local user is `samstevens` and the domain user is `merlin`. > net share c /delete ``` -4. Re-share the drive via the [Shared Drives - dialog](index.md#shared-drives), and provide the Windows - domain user account credentials. +4. Re-share the drive via the [Shared Drives dialog](index.md#shared-drives), + and provide the Windows domain user account credentials. 5. Re-run `net share c`. @@ -199,7 +257,8 @@ error(5): I/O error Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) mount: mounting //10.0.75.1/C on /c failed: Invalid argument ``` -See also, <a href="https://github.com/docker/for-win/issues/98">Docker for Windows issue #98</a>. +See also, <a href="https://github.com/docker/for-win/issues/98">Docker for +Windows issue #98</a>. #### Understand symlinks limitations @@ -229,7 +288,8 @@ script](https://github.com/moby/moby/issues/24388). In order for Docker for Windows to function properly your machine needs: -1. [Hyper-V](https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/hyper-v-technology-overview) installed and working +1. [Hyper-V](https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/hyper-v-technology-overview) + installed and working 2. Virtualization enabled @@ -241,10 +301,17 @@ Docker for Windows requires a Hyper-V as well as the Hyper-V Module for Windows Powershell to be installed and enabled. The Docker for Windows installer enables it for you. -See [these instructions](https://msdn.microsoft.com/en-us/virtualization/hyperv_on_windows/quick_start/walkthrough_install) to install Hyper-V manually. A reboot is *required*. If you install Hyper-V without the reboot, Docker for Windows does not work correctly. On some systems, Virtualization needs to be enabled in the BIOS. The steps to do so are Vendor specific, but typically the BIOS option is called `Virtualization Technology (VTx)` or similar. +See [these +instructions](https://msdn.microsoft.com/en-us/virtualization/hyperv_on_windows/quick_start/walkthrough_install) +to install Hyper-V manually. A reboot is *required*. If you install Hyper-V +without the reboot, Docker for Windows does not work correctly. On some systems, +Virtualization needs to be enabled in the BIOS. The steps to do so are Vendor +specific, but typically the BIOS option is called `Virtualization Technology +(VTx)` or similar. -From the start menu, type in "Turn Windows features on or off" and hit enter. In the subsequent screen, verify Hyper-V is enabled and has a checkmark: +From the start menu, type in "Turn Windows features on or off" and hit enter. +In the subequent screen, verify Hyper-V is enabled and has a checkmark: ![Hyper-V on Windows features](images/hyperv-enabled.png){:width="600px"} @@ -264,13 +331,14 @@ Machine driver example](/machine/drivers/hyper-v.md#example). #### Virtualization must be enabled -In addition to [Hyper-V](#hyper-v), virtualization must be enabled. Check the Performance tab on the -Task Manager: +In addition to [Hyper-V](#hyper-v), virtualization must be enabled. Check the +Performance tab on the Task Manager: ![Task Manager](images/virtualization-enabled.png){:width="700px"} If, at some point, if you manually uninstall Hyper-V or disable virtualization, -Docker for Windows cannot start. See: [Unable to run Docker for Windows on Windows 10 Enterprise](https://github.com/docker/for-win/issues/74). +Docker for Windows cannot start. See: [Unable to run Docker for Windows on +Windows 10 Enterprise](https://github.com/docker/for-win/issues/74). ### Networking and WiFi problems upon Docker for Windows install @@ -278,42 +346,50 @@ Some users have encountered networking issues during install and startup of Docker for Windows. For example, upon install or auto-reboot, network adapters and/or WiFi gets disabled. In some scenarios, problems are due to having VirtualBox or its network adapters still installed, but in other scenarios this -is not the case. (See also, Docker for Windows issue on GitHub: -[Enabling Hyper-V feature turns my wi-fi off -](https://github.com/docker/for-win/issues/139).) +is not the case. (See also, Docker for Windows issue on GitHub: [Enabling +Hyper-V feature turns my wi-fi +off](https://github.com/docker/for-win/issues/139).) Here are some steps to take if you encounter similar problems: -1. Ensure **virtualization** is enabled, as described above in [Virtualization must be enabled](#virtualization-must-be-enabled). +1. Ensure **virtualization** is enabled, as described above in [Virtualization + must be enabled](#virtualization-must-be-enabled). -2. Ensure **Hyper-V** is installed and enabled, as described above in [Hyper-V must be enabled](#hyper-v-must-be-enabled). +2. Ensure **Hyper-V** is installed and enabled, as described above in [Hyper-V + must be enabled](#hyper-v-must-be-enabled). -3. Ensure **DockerNAT** is enabled by checking the **Virtual Switch Manager** on the Actions tab on the right side of the **Hyper-V Manager**. +3. Ensure **DockerNAT** is enabled by checking the **Virtual Switch Manager** + on the Actions tab on the right side of the **Hyper-V Manager**. ![Hyper-V manager](images/hyperv-manager.png) -4. Set up an external network switch. If you plan at any point to use - [Docker Machine](/machine/overview.md) to set up multiple local VMs, you - need this anyway, as described in the topic on the - [Hyper-V driver for Docker Machine](/machine/drivers/hyper-v.md#example). - You can replace `DockerNAT` with this switch. +4. Set up an external network switch. If you plan at any point to use [Docker + Machine](/machine/overview.md) to set up multiple local VMs, you need this + anyway, as described in the topic on the [Hyper-V driver for Docker + Machine](/machine/drivers/hyper-v.md#example). You can replace `DockerNAT` + with this switch. -5. If previous steps fail to solve the problems, follow steps on the - [Cleanup README](https://github.com/Microsoft/Virtualization-Documentation/blob/master/windows-server-container-tools/CleanupContainerHostNetworking/README.md). +5. If previous steps fail to solve the problems, follow steps on the [Cleanup + README](https://github.com/Microsoft/Virtualization-Documentation/blob/master/windows-server-container-tools/CleanupContainerHostNetworking/README.md). > Read full description before you run Windows cleanup script > - > The cleanup command has two flags, `-Cleanup` and `-ForceDeleteAllSwitches`. - > Read the whole page before running any scripts, especially warnings about `-ForceDeleteAllSwitches`. - > {: .warning} + >The cleanup command has two flags, `-Cleanup` and + >`-ForceDeleteAllSwitches`. Read the whole page before running any scripts, + >especially warnings about `-ForceDeleteAllSwitches`. {: .warning} ### Windows containers and Windows Server 2016 -If you have questions about how to set up and run Windows containers on Windows -Server 2016 or Windows 10, see [About Windows containers and Windows Server 2016](index.md#about-windows-containers-and-windows-server-2016). +Docker Desktop is not supported on Windows Server 2016, instead you can use +[Docker Enterprise Basic Edition](/ee/index) at no aditional cost. + +If you have questions about how to run Windows containers on Windows 10, see +[Switch between Windows and Linux +containers](index.md#switch-between-windows-and-linux-containers). A full tutorial is available in [docker/labs](https://github.com/docker/labs) at -[Getting Started with Windows Containers](https://github.com/docker/labs/blob/master/windows/windows-containers/README.md). +[Getting Started with Windows +Containers](https://github.com/docker/labs/blob/master/windows/windows-containers/README.md). You can install a native Windows binary which allows you to develop and run Windows containers without Docker for Windows. However, if you install Docker @@ -349,10 +425,14 @@ Using `curl http://localhost`, or pointing your web browser at `http://localhost` does not display the `nginx` web page (as it would do with Linux containers). -To reach a Windows container from the local host, you need to specify -the IP address and port for the container that is running the service. +To reach a Windows container from the local host, you need to specify the IP +address and port for the container that is running the service. -You can get the container IP address by using [`docker inspect`](/engine/reference/commandline/inspect.md) with some `--format` options and the ID or name of the container. For the example above, the command would look like this, using the name we gave to the container (`webserver`) instead of the container ID: +You can get the container IP address by using [`docker +inspect`](/engine/reference/commandline/inspect.md) with some `--format` options +and the ID or name of the container. For the example above, the command would +look like this, using the name we gave to the container (`webserver`) instead of +the container ID: {% raw %} ```bash @@ -391,7 +471,12 @@ For more information, see: ### Running Docker for Windows in nested virtualization scenarios -Docker for Windows can run inside a Windows 10 virtual machine (VM) running on apps like Parallels or VMware Fusion on a Mac provided that the VM is properly configured. However, problems and intermittent failures may still occur due to the way these apps virtualize the hardware. For these reasons, _**Docker for Windows is not supported for nested virtualization scenarios**_. It might work in some cases, and not in others. +Docker for Windows can run inside a Windows 10 virtual machine (VM) running on +apps like Parallels or VMware Fusion on a Mac provided that the VM is properly +configured. However, problems and intermittent failures may still occur due to +the way these apps virtualize the hardware. For these reasons, _**Docker for +Windows is not supported for nested virtualization scenarios**_. It might work +in some cases, and not in others. The better solution is to run Docker for Windows natively on a Windows system (to work with Windows or Linux containers), or Docker for Mac on Mac to work @@ -400,8 +485,8 @@ with Linux containers. #### If you still want to use nested virtualization * Make sure nested virtualization support is enabled in VMWare or Parallels. -Check the settings in **Hardware -> CPU & Memory -> Advanced Options -> Enable -nested virtualization** (the exact menu sequence might vary slightly). + Check the settings in **Hardware → CPU & Memory → Advanced Options → Enable + nested virtualization** (the exact menu sequence might vary slightly). * Configure your VM with at least 2 CPUs and sufficient memory to run your workloads. @@ -421,10 +506,10 @@ nested virtualization** (the exact menu sequence might vary slightly). prefixed with `Moby`. On real hardware, it takes 5-10 seconds to boot the Linux VM; roughly the time between the `Connected` log entry and the `* Starting Docker ... [ ok ]` log entry. If you boot the Linux VM inside a - Windows VM, this may take considerably longer. We have a timeout of 60s or - so. If the VM hasn't started by that time, we retry. If the retry fails we - print an error. You can sometimes work around this by providing more resources - to the Windows VM. + Windows VM, this may take considerably longer. We have a timeout of 60s or so. + If the VM hasn't started by that time, we retry. If the retry fails we print + an error. You can sometimes work around this by providing more resources to + the Windows VM. * Sometimes the VM fails to boot when Linux tries to calibrate the time stamp counter (TSC). This process is quite timing sensitive and may fail when @@ -433,11 +518,13 @@ nested virtualization** (the exact menu sequence might vary slightly). #### Related issues -Discussion thread on GitHub at [Docker for Windows issue 267](https://github.com/docker/for-win/issues/267) +Discussion thread on GitHub at [Docker for Windows issue +267](https://github.com/docker/for-win/issues/267) ### Networking issues -Some users have reported problems connecting to Docker Hub on the Docker for Windows stable version. (See GitHub issue +Some users have reported problems connecting to Docker Hub on the Docker for +Windows stable version. (See GitHub issue [22567](https://github.com/moby/moby/issues/22567).) Here is an example command and error message: @@ -453,9 +540,9 @@ See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'. As an immediate workaround to this problem, reset the DNS server to use the Google DNS fixed address: `8.8.8.8`. You can configure this via the **Settings** --> **Network** dialog, as described in the topic -[Network](index.md#network). Docker automatically restarts -when you apply this setting, which could take some time. +→ **Network** dialog, as described in the topic [Network](index.md#network). +Docker automatically restarts when you apply this setting, which could take some +time. We are currently investigating this issue. @@ -471,10 +558,10 @@ under [Settings](index.md#docker-settings). ### `inotify` currently does not work on Docker for Windows If you are using `Node.js` with `nodemon`, a temporary workaround is to try the -fallback polling mode described here: -[nodemon isn't restarting node applications](https://github.com/remy/nodemon#application-isnt-restarting). See -also this issue on GitHub -[Inotify on shared drives does not work](https://github.com/docker/for-win/issues/56#issuecomment-242135705). +fallback polling mode described here: [nodemon isn't restarting node +applications](https://github.com/remy/nodemon#application-isnt-restarting). See +also this issue on GitHub [Inotify on shared drives does not +work](https://github.com/docker/for-win/issues/56#issuecomment-242135705). ### Reboot @@ -503,7 +590,7 @@ or `listen tcp:0.0.0.0:8080: bind: address is already in use` ... These errors are often caused by some other software on Windows using those ports. To discover the identity of this software, either use the `resmon.exe` -GUI and click "Network" and then "Listening Ports" or in a powershell use +GUI and click "Network" and then "Listening Ports" or in a Powershell use `netstat -aon | find /i "listening "` to discover the PID of the process currently using the port (the PID is the number in the rightmost column). Decide whether to shut the other process down, or to use a different port in your @@ -519,13 +606,13 @@ start failure**. The Comodo Firewall was one example of this problem, but users report that software has since been updated to work with these Windows 10 builds. -See the Comodo forums topics -[Comodo Firewall conflict with Hyper-V](https://forums.comodo.com/bug-reports-cis/comodo-firewall-began-conflict-with-hyperv-t116351.0.html) -and -[Windows 10 Anniversary build doesn't allow Comodo drivers to be installed](https://forums.comodo.com/install-setup-configuration-help-cis/windows-10-aniversary-build-doesnt-allow-comodo-drivers-to-be-installed-t116322.0.html). +See the Comodo forums topics [Comodo Firewall conflict with +Hyper-V](https://forums.comodo.com/bug-reports-cis/comodo-firewall-began-conflict-with-hyperv-t116351.0.html) +and [Windows 10 Anniversary build doesn't allow Comodo drivers to be +installed](https://forums.comodo.com/install-setup-configuration-help-cis/windows-10-aniversary-build-doesnt-allow-comodo-drivers-to-be-installed-t116322.0.html). A Docker for Windows user-created issue describes the problem specifically as it -relates to Docker: -[Docker fails to start on Windows 10](https://github.com/docker/for-win/issues/27). +relates to Docker: [Docker fails to start on Windows +10](https://github.com/docker/for-win/issues/27). For a temporary workaround, uninstall the firewall or anti-virus software, or explore other workarounds suggested on the forum. From 2f0cc38dd5a082695cc248863830bb27ec8889aa Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Fri, 5 Oct 2018 12:32:03 -0600 Subject: [PATCH 102/222] Update cc-ee-node-activation.md Resolves https://github.com/docker/docker-core-backlog/issues/370 --- engine/cc-ee-node-activation.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/engine/cc-ee-node-activation.md b/engine/cc-ee-node-activation.md index 6ea47e2997..f19ee7e7ac 100644 --- a/engine/cc-ee-node-activation.md +++ b/engine/cc-ee-node-activation.md @@ -8,9 +8,9 @@ The Docker Engine release `18.09` release introduces a new feature called CE-EE CE-EE Node Activate will apply a license, and if you aren't already running the Enterprise engine, and switch the Docker engine to the enterprise engine binary. -The Docker Community Edition version must be 18.09 or higher. - -The activation can be performed either online with connection to Docker Hub, or offline. +## Requirements: +* The Docker Community Edition version must be 18.09 or higher. +* All of the Docker packages must be installed: docker-cli, docker-server, and containerd ## Limitations @@ -21,6 +21,8 @@ The activation can be performed either online with connection to Docker Hub, or ## Docker Engine 18.09 CE to EE Node Activation Process +The activation can be performed either online with connection to Docker Hub, or offline. + 1. Check the current Docker version. Both the Docker client and server (`containerd`) need to be installed. Your output may vary slightly from what is displayed on this page. ``` From 577d2b4d03c1effc2ff703fffdfebc0f1241cf3c Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Fri, 5 Oct 2018 16:52:06 -0600 Subject: [PATCH 103/222] Added TOC entry and beta disclaimer. --- _data/toc.yaml | 2 ++ engine/cc-ee-node-activation.md | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/_data/toc.yaml b/_data/toc.yaml index 3066f47919..a47a07717b 100644 --- a/_data/toc.yaml +++ b/_data/toc.yaml @@ -149,6 +149,8 @@ guides: nosync: true - sectiontitle: Compatibility between Docker versions section: + - path: /engine/cc-ee-node-activation/ + title: CE-EE Node Activate - path: /engine/migration/ title: Migrate to Docker 1.10 - path: /engine/breaking_changes/ diff --git a/engine/cc-ee-node-activation.md b/engine/cc-ee-node-activation.md index 6ea47e2997..95d4018867 100644 --- a/engine/cc-ee-node-activation.md +++ b/engine/cc-ee-node-activation.md @@ -4,6 +4,10 @@ keywords: Engine, CE, EE, node, activation, enterprise title: CE-EE Node Activate --- +> BETA DISCLAIMER +> +> This is beta content. It is not yet complete and should be considered a work in progress. This content is subject to change without notice. + The Docker Engine release `18.09` release introduces a new feature called CE-EE Node Activate, which allows a user to perform an in-place seamless activation of the Enterprise engine feature-set on an existing Community Edition (CE) node through the Docker command line. CE-EE Node Activate will apply a license, and if you aren't already running the Enterprise engine, and switch the Docker engine to the enterprise engine binary. From bb096624bf634e095c5bdd6f4c5f53790d6a42bf Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Mon, 8 Oct 2018 10:20:07 -0600 Subject: [PATCH 104/222] renamed file after recognizing typo. --- engine/ce-ee-node-activate.md | 124 ++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 engine/ce-ee-node-activate.md diff --git a/engine/ce-ee-node-activate.md b/engine/ce-ee-node-activate.md new file mode 100644 index 0000000000..38abc70625 --- /dev/null +++ b/engine/ce-ee-node-activate.md @@ -0,0 +1,124 @@ +--- +description: Engine +keywords: Engine, CE, EE, node, activation, enterprise +title: CE-EE Node Activate +--- + +> BETA DISCLAIMER +> +> This is beta content. It is not yet complete and should be considered a work in progress. This content is subject to change without notice. + +The Docker Engine release `18.09` release introduces a new feature called CE-EE Node Activate, which allows a user to perform an in-place seamless activation of the Enterprise engine feature-set on an existing Community Edition (CE) node through the Docker command line. + +CE-EE Node Activate will apply a license, and if you aren't already running the Enterprise engine, and switch the Docker engine to the enterprise engine binary. + +## Requirements: +* The Docker Community Edition version must be 18.09 or higher. +* All of the Docker packages must be installed: docker-cli, docker-server, and containerd + +## Limitations + +* This feature is only supported on x86 Linux nodes +* Windows nodes are not currently supported +* Node level Engine activation between CE and EE is only supported in the same version of Docker Enterprise Engine for Docker +* Prior versions of Docker CE do not support this feature + +## Docker Engine 18.09 CE to EE Node Activation Process + +The activation can be performed either online with connection to Docker Hub, or offline. + +1. Check the current Docker version. Both the Docker client and server (`containerd`) need to be installed. Your output may vary slightly from what is displayed on this page. + +``` +root@docker-node:~# docker version +Client: + Version: 18.09.0-ce + API version: 1.39 + Go version: go1.10.3 + Git commit: ca36ebe + Built: Thu Aug 23 18:21:56 2018 + OS/Arch: linux/amd64 + Experimental: false +Server: + Engine: + Version: 18.09.0-ce + API version: 1.39 (minimum version 1.12) + Go version: go1.10.3 + Git commit: ca36ebe + Built: + OS/Arch: linux/amd64 + Experimental: false +``` + +2. Log into the Docker engine from the command line. + +**NOTE:** When the running the command `docker login`, the shell stores the credentials in the current users's home directory. For CentOS and Red Hat, the `sudo` command overwrites overwrites the $HOME environment variable. + + +For Ubuntu or Debian: +``` +$ docker login +Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. +Username: beluga +Password: +WARNING! Your password will be stored unencrypted in /home/docker/.docker/config.json. +Configure a credential helper to remove this warning. See +https://docs.docker.com/engine/reference/commandline/login/#credentials-store +Login Succeeded +``` + +For CentOS or Red Hat Linux, use `sudo`: +``` +$ sudo docker login +Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. +Username: beluga +Password: +WARNING! Your password will be stored unencrypted in /home/docker/.docker/config.json. +Configure a credential helper to remove this warning. See +https://docs.docker.com/engine/reference/commandline/login/#credentials-store +Login Succeeded +``` + +3. [Download your Docker Enterprise license](https://success.docker.com/article/where-is-my-docker-enterprise-edition-license) and distribute it to your Docker engines. + +4. Activate the EE license. You must use sudo even if your user is part of the docker group. + +``` +root@docker-node:~# sudo docker engine actviate --license dockersub.lic +Looking for existing licenses for beluga... +NUM OWNER PRODUCT ID EXPIRES PRICING COMPONENTS +0 beluga docker-ee-trial 2018-09-13 21:41:12 +0000 UTC Nodes:10 +1 beluga docker-ee-trial 2018-08-31 03:17:15 +0000 UTC Nodes:10 +``` + +**NOTE:** If the Docker EE engines are in a swarm cluster, you only need to activate the license on the +manager node. This action stores the license as a swarm configuration, which is compatible with UCP. + +5. Check the Docker Engine version. The server engine will now be EE, and the client will stay CE. +``` + +root@docker-node:~# docker version +Client: + Version: 18.09.0-ce + API version: 1.39 + Go version: go1.10.3 + Git commit: ca36ebe + Built: Thu Aug 23 18:21:56 2018 + OS/Arch: linux/amd64 + Experimental: false +Server: + Engine: + Version: 18.09.0-ee-1 + API version: 1.39 (minimum version 1.12) + Go version: go1.10.3 + Git commit: b9e7996 + Built: + OS/Arch: linux/amd64 + Experimental: false +``` + +**NOTE**: Your output may vary slightly from what is displayed on this page. + +## Off-line CE-EE node activation + +For offline CE-EE node activation, you'll need to get the enterprise engine onto the system. The recommended model is to download the EE deb or rpm packages manually and copy them to the target systems. Afterward, download the license manually, and copy that license to the target systems. Use the `--license <path/to/license.file>` command line option to the activate command. From ae7ef74365770c77eff2f7a8b404df8b15012a4e Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Mon, 8 Oct 2018 10:21:45 -0600 Subject: [PATCH 105/222] Fixed TOC too. --- _data/toc.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/toc.yaml b/_data/toc.yaml index a47a07717b..c18302f5d2 100644 --- a/_data/toc.yaml +++ b/_data/toc.yaml @@ -149,7 +149,7 @@ guides: nosync: true - sectiontitle: Compatibility between Docker versions section: - - path: /engine/cc-ee-node-activation/ + - path: /engine/ce-ee-node-activate/ title: CE-EE Node Activate - path: /engine/migration/ title: Migrate to Docker 1.10 From 0d321f68aff20f65ea06ef4f6629211023810929 Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Mon, 8 Oct 2018 10:22:16 -0600 Subject: [PATCH 106/222] Renamed cc-ee-node-activation.md to ce-ee-node-activate.md. This removes the original filename. --- engine/cc-ee-node-activation.md | 124 -------------------------------- 1 file changed, 124 deletions(-) delete mode 100644 engine/cc-ee-node-activation.md diff --git a/engine/cc-ee-node-activation.md b/engine/cc-ee-node-activation.md deleted file mode 100644 index 38abc70625..0000000000 --- a/engine/cc-ee-node-activation.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -description: Engine -keywords: Engine, CE, EE, node, activation, enterprise -title: CE-EE Node Activate ---- - -> BETA DISCLAIMER -> -> This is beta content. It is not yet complete and should be considered a work in progress. This content is subject to change without notice. - -The Docker Engine release `18.09` release introduces a new feature called CE-EE Node Activate, which allows a user to perform an in-place seamless activation of the Enterprise engine feature-set on an existing Community Edition (CE) node through the Docker command line. - -CE-EE Node Activate will apply a license, and if you aren't already running the Enterprise engine, and switch the Docker engine to the enterprise engine binary. - -## Requirements: -* The Docker Community Edition version must be 18.09 or higher. -* All of the Docker packages must be installed: docker-cli, docker-server, and containerd - -## Limitations - -* This feature is only supported on x86 Linux nodes -* Windows nodes are not currently supported -* Node level Engine activation between CE and EE is only supported in the same version of Docker Enterprise Engine for Docker -* Prior versions of Docker CE do not support this feature - -## Docker Engine 18.09 CE to EE Node Activation Process - -The activation can be performed either online with connection to Docker Hub, or offline. - -1. Check the current Docker version. Both the Docker client and server (`containerd`) need to be installed. Your output may vary slightly from what is displayed on this page. - -``` -root@docker-node:~# docker version -Client: - Version: 18.09.0-ce - API version: 1.39 - Go version: go1.10.3 - Git commit: ca36ebe - Built: Thu Aug 23 18:21:56 2018 - OS/Arch: linux/amd64 - Experimental: false -Server: - Engine: - Version: 18.09.0-ce - API version: 1.39 (minimum version 1.12) - Go version: go1.10.3 - Git commit: ca36ebe - Built: - OS/Arch: linux/amd64 - Experimental: false -``` - -2. Log into the Docker engine from the command line. - -**NOTE:** When the running the command `docker login`, the shell stores the credentials in the current users's home directory. For CentOS and Red Hat, the `sudo` command overwrites overwrites the $HOME environment variable. - - -For Ubuntu or Debian: -``` -$ docker login -Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. -Username: beluga -Password: -WARNING! Your password will be stored unencrypted in /home/docker/.docker/config.json. -Configure a credential helper to remove this warning. See -https://docs.docker.com/engine/reference/commandline/login/#credentials-store -Login Succeeded -``` - -For CentOS or Red Hat Linux, use `sudo`: -``` -$ sudo docker login -Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. -Username: beluga -Password: -WARNING! Your password will be stored unencrypted in /home/docker/.docker/config.json. -Configure a credential helper to remove this warning. See -https://docs.docker.com/engine/reference/commandline/login/#credentials-store -Login Succeeded -``` - -3. [Download your Docker Enterprise license](https://success.docker.com/article/where-is-my-docker-enterprise-edition-license) and distribute it to your Docker engines. - -4. Activate the EE license. You must use sudo even if your user is part of the docker group. - -``` -root@docker-node:~# sudo docker engine actviate --license dockersub.lic -Looking for existing licenses for beluga... -NUM OWNER PRODUCT ID EXPIRES PRICING COMPONENTS -0 beluga docker-ee-trial 2018-09-13 21:41:12 +0000 UTC Nodes:10 -1 beluga docker-ee-trial 2018-08-31 03:17:15 +0000 UTC Nodes:10 -``` - -**NOTE:** If the Docker EE engines are in a swarm cluster, you only need to activate the license on the -manager node. This action stores the license as a swarm configuration, which is compatible with UCP. - -5. Check the Docker Engine version. The server engine will now be EE, and the client will stay CE. -``` - -root@docker-node:~# docker version -Client: - Version: 18.09.0-ce - API version: 1.39 - Go version: go1.10.3 - Git commit: ca36ebe - Built: Thu Aug 23 18:21:56 2018 - OS/Arch: linux/amd64 - Experimental: false -Server: - Engine: - Version: 18.09.0-ee-1 - API version: 1.39 (minimum version 1.12) - Go version: go1.10.3 - Git commit: b9e7996 - Built: - OS/Arch: linux/amd64 - Experimental: false -``` - -**NOTE**: Your output may vary slightly from what is displayed on this page. - -## Off-line CE-EE node activation - -For offline CE-EE node activation, you'll need to get the enterprise engine onto the system. The recommended model is to download the EE deb or rpm packages manually and copy them to the target systems. Afterward, download the license manually, and copy that license to the target systems. Use the `--license <path/to/license.file>` command line option to the activate command. From 86a71b28ad2b63e980faad0687dd7126803c0af4 Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Mon, 8 Oct 2018 11:27:35 -0600 Subject: [PATCH 107/222] Added intro Calico info --- ee/ucp/kubernetes/install-cni-plugin.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/ee/ucp/kubernetes/install-cni-plugin.md b/ee/ucp/kubernetes/install-cni-plugin.md index b16cf194d8..cd57ef7555 100644 --- a/ee/ucp/kubernetes/install-cni-plugin.md +++ b/ee/ucp/kubernetes/install-cni-plugin.md @@ -4,13 +4,14 @@ description: Learn how to install a Container Networking Interface plugin on Doc keywords: ucp, cli, administration, kubectl, Kubernetes, cni, Container Networking Interface, flannel, weave, ipip, calico --- -With Docker Universal Control Plane, you can install a third-party Container -Networking Interface (CNI) plugin when you install UCP, by using the -`--cni-installer-url` option. By default, Docker EE installs the built-in -[Calico](https://github.com/projectcalico/cni-plugin) plugin, but you can -override the default and install a plugin of your choice, -like [Flannel](https://github.com/coreos/flannel) or -[Weave](https://www.weave.works/). + +For Docker Universal Control Plane, [Project Calico](https://docs.projectcalico.org/v3.0/introduction/) +provides the secure networking functionality for the container communication with Kubernetes. + +UCP supports third-party Container Networking Interface (CNI) plugins by using the `--cni-installer-url` +option. By default, Docker EE installs the built-in [Calico](https://github.com/projectcalico/cni-plugin) +plugin, but you can override the default and install a plugin of your choice, like +[Flannel](https://github.com/coreos/flannel) or [Weave](https://www.weave.works/). # Install UCP with a custom CNI plugin From 188091081716a1f6e1baad0debb057a3c1bfa3ca Mon Sep 17 00:00:00 2001 From: Derrick Miller <millerdz@users.noreply.github.com> Date: Tue, 9 Oct 2018 15:05:34 -0400 Subject: [PATCH 108/222] Point latest engine docs to latest UCP & DTR docs User guides section was linking to UCP 2.2 & DTR 2.4 documentation. Instead, it should be linking to the latest UCP & DTR docs. --- _includes/ee-linux-install-reuse.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/ee-linux-install-reuse.md b/_includes/ee-linux-install-reuse.md index 85d6a1f4db..4b075b899f 100644 --- a/_includes/ee-linux-install-reuse.md +++ b/_includes/ee-linux-install-reuse.md @@ -311,6 +311,6 @@ You must delete any edited configuration files manually. - Continue to [Post-installation steps for Linux](/install/linux/linux-postinstall.md){: target="_blank" class="_" } -- Continue with user guides on [Universal Control Plane (UCP)](/datacenter/ucp/2.2/guides/){: target="_blank" class="_" } and [Docker Trusted Registry (DTR)](/datacenter/dtr/2.4/guides/){: target="_blank" class="_" } +- Continue with user guides on [Universal Control Plane (UCP)](/ee/ucp/){: target="_blank" class="_" } and [Docker Trusted Registry (DTR)](/ee/dtr/){: target="_blank" class="_" } {% endif %} From a367850547dcc3923c5a483d07b1deb5f2eb543f Mon Sep 17 00:00:00 2001 From: Gabriel Dutra <nesk.frz@gmail.com> Date: Fri, 12 Oct 2018 22:18:25 -0300 Subject: [PATCH 109/222] Add missing "to" --- get-started/part5.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/part5.md b/get-started/part5.md index 2d09223360..353c0ee69c 100644 --- a/get-started/part5.md +++ b/get-started/part5.md @@ -244,7 +244,7 @@ Redis service. Be sure to replace `username/repo:tag` with your image details. 3. Make sure your shell is configured to talk to `myvm1` (full examples are [here](part4.md#configure-a-docker-machine-shell-to-the-swarm-manager)). - * Run `docker-machine ls` to list machines and make sure you are connected to `myvm1`, as indicated by an asterisk next it. + * Run `docker-machine ls` to list machines and make sure you are connected to `myvm1`, as indicated by an asterisk next to it. * If needed, re-run `docker-machine env myvm1`, then run the given command to configure the shell. From d573f9a30c55904fa1cbfdf7502d01d74c9e7488 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 15 Oct 2018 13:12:50 -0600 Subject: [PATCH 110/222] Update install-cni-plugin.md Change per @mark-church --- ee/ucp/kubernetes/install-cni-plugin.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ee/ucp/kubernetes/install-cni-plugin.md b/ee/ucp/kubernetes/install-cni-plugin.md index cd57ef7555..5d3d11cd8d 100644 --- a/ee/ucp/kubernetes/install-cni-plugin.md +++ b/ee/ucp/kubernetes/install-cni-plugin.md @@ -10,8 +10,7 @@ provides the secure networking functionality for the container communication wit UCP supports third-party Container Networking Interface (CNI) plugins by using the `--cni-installer-url` option. By default, Docker EE installs the built-in [Calico](https://github.com/projectcalico/cni-plugin) -plugin, but you can override the default and install a plugin of your choice, like -[Flannel](https://github.com/coreos/flannel) or [Weave](https://www.weave.works/). +plugin, but you can override the default and install a Docker certified plugin. # Install UCP with a custom CNI plugin From c3efcdd0a4ef5b65894a879f0745a3a784e0f5b5 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Tue, 16 Oct 2018 10:19:40 -0600 Subject: [PATCH 111/222] Update ce-ee-node-activate.md Removed Red Hat Linux per @andrewhsu --- engine/ce-ee-node-activate.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/engine/ce-ee-node-activate.md b/engine/ce-ee-node-activate.md index 38abc70625..8d9c3377f4 100644 --- a/engine/ce-ee-node-activate.md +++ b/engine/ce-ee-node-activate.md @@ -52,7 +52,7 @@ Server: 2. Log into the Docker engine from the command line. -**NOTE:** When the running the command `docker login`, the shell stores the credentials in the current users's home directory. For CentOS and Red Hat, the `sudo` command overwrites overwrites the $HOME environment variable. +**NOTE:** When the running the command `docker login`, the shell stores the credentials in the current users's home directory. For CentOS, the `sudo` command overwrites overwrites the $HOME environment variable. For Ubuntu or Debian: @@ -67,7 +67,7 @@ https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded ``` -For CentOS or Red Hat Linux, use `sudo`: +For CentOS, use `sudo`: ``` $ sudo docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. From 28fbdab78c31b0d489690344fc146b170da1093a Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Tue, 16 Oct 2018 10:21:44 -0600 Subject: [PATCH 112/222] Update ce-ee-node-activate.md Fixed --license output per @davidwilliamson and fixed root prompts (changed to $). --- engine/ce-ee-node-activate.md | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/engine/ce-ee-node-activate.md b/engine/ce-ee-node-activate.md index 8d9c3377f4..12b0dd5655 100644 --- a/engine/ce-ee-node-activate.md +++ b/engine/ce-ee-node-activate.md @@ -30,7 +30,7 @@ The activation can be performed either online with connection to Docker Hub, or 1. Check the current Docker version. Both the Docker client and server (`containerd`) need to be installed. Your output may vary slightly from what is displayed on this page. ``` -root@docker-node:~# docker version +$ docker version Client: Version: 18.09.0-ce API version: 1.39 @@ -84,11 +84,18 @@ Login Succeeded 4. Activate the EE license. You must use sudo even if your user is part of the docker group. ``` -root@docker-node:~# sudo docker engine actviate --license dockersub.lic -Looking for existing licenses for beluga... -NUM OWNER PRODUCT ID EXPIRES PRICING COMPONENTS -0 beluga docker-ee-trial 2018-09-13 21:41:12 +0000 UTC Nodes:10 -1 beluga docker-ee-trial 2018-08-31 03:17:15 +0000 UTC Nodes:10 +$ sudo docker engine activate --license ee-engine-license-1000-nodes.lic +License: Quantity: 400 Nodes Expiration date: 2019-05-12 License is currently active +18.09.0-beta: resolved +e3cba72cdf2e: done [==================================================>] 434B/434B +3642e2b52398: done [==================================================>] 1.161kB/1.161kB +eb6fe2abc4ad: done [==================================================>] 4.544MB/4.544MB +f2f08b0292f2: done [==================================================>] 25.65MB/25.65MB +a539281ee17b: done [==================================================>] 1.122MB/1.122MB +515c4dc2b0fe: done [==================================================>] 333.9kB/333.9kB +2cf04a6ee63e: done [==================================================>] 4.84kB/4.84kB +Successfully activated engine. +Restart docker with 'systemctl restart docker' to complete the activation. ``` **NOTE:** If the Docker EE engines are in a swarm cluster, you only need to activate the license on the @@ -97,7 +104,7 @@ manager node. This action stores the license as a swarm configuration, which is 5. Check the Docker Engine version. The server engine will now be EE, and the client will stay CE. ``` -root@docker-node:~# docker version +$ docker version Client: Version: 18.09.0-ce API version: 1.39 From 6e00f1eb82d8d93e7fb1ab7f8891824f6136d3f3 Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Tue, 16 Oct 2018 19:15:32 -0600 Subject: [PATCH 113/222] Initial blurb on engine signature verification --- engine/security/security.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/engine/security/security.md b/engine/security/security.md index d524ca85ed..7ec9feaf33 100644 --- a/engine/security/security.md +++ b/engine/security/security.md @@ -199,6 +199,13 @@ capability removal, or less secure through the addition of capabilities. The best practice for users would be to remove all capabilities except those explicitly required for their processes. +## Dockert Content Trust Signature Verification + +The Docker Engine can be configured to only permitted to run signed +images. This is configured in the Dockerd configuration file. To +incorporate this, Docker will use trustpinning. Trustpinning means Docker +reposoitories with a known configured root key will only be accepted. + ## Other kernel security features Capabilities are just one of the many security features provided by From 15a8fcd60bf7eb9e05373582f6a274cbb4611bb4 Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Tue, 16 Oct 2018 19:22:22 -0600 Subject: [PATCH 114/222] Added x-ref. --- engine/security/security.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/engine/security/security.md b/engine/security/security.md index 7ec9feaf33..b42a538f53 100644 --- a/engine/security/security.md +++ b/engine/security/security.md @@ -199,12 +199,16 @@ capability removal, or less secure through the addition of capabilities. The best practice for users would be to remove all capabilities except those explicitly required for their processes. -## Dockert Content Trust Signature Verification +## Docker Content Trust Signature Verification -The Docker Engine can be configured to only permitted to run signed -images. This is configured in the Dockerd configuration file. To -incorporate this, Docker will use trustpinning. Trustpinning means Docker -reposoitories with a known configured root key will only be accepted. +The Docker Content Trust signature verification feature is built directly +into the `dockerd` binary. The Docker Engine can be configured to only +permitted to run signed images. This is configured in the Dockerd +configuration file. To incorporate this, Docker will use trustpinning. +Trustpinning means Docker reposoitories with a known configured root key +will only be accepted. + +For more information on configuring Docker Content Trust Signature Verificiation, go to (xxx)[xxx]. ## Other kernel security features From ddc2bb4e115c353bbb7f12c2c8a4853fe073e3ef Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Tue, 16 Oct 2018 19:23:32 -0600 Subject: [PATCH 115/222] Added x-ref --- engine/security/security.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/security/security.md b/engine/security/security.md index b42a538f53..6e030d314c 100644 --- a/engine/security/security.md +++ b/engine/security/security.md @@ -208,7 +208,7 @@ configuration file. To incorporate this, Docker will use trustpinning. Trustpinning means Docker reposoitories with a known configured root key will only be accepted. -For more information on configuring Docker Content Trust Signature Verificiation, go to (xxx)[xxx]. +For more information on configuring Docker Content Trust Signature Verificiation, go to (sxxx)[xxx]. ## Other kernel security features From 1155d5322551b58a26e4495558a4a5661423c89c Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Tue, 16 Oct 2018 19:32:03 -0600 Subject: [PATCH 116/222] Testing rebase. --- engine/security/security.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/security/security.md b/engine/security/security.md index 6e030d314c..b42a538f53 100644 --- a/engine/security/security.md +++ b/engine/security/security.md @@ -208,7 +208,7 @@ configuration file. To incorporate this, Docker will use trustpinning. Trustpinning means Docker reposoitories with a known configured root key will only be accepted. -For more information on configuring Docker Content Trust Signature Verificiation, go to (sxxx)[xxx]. +For more information on configuring Docker Content Trust Signature Verificiation, go to (xxx)[xxx]. ## Other kernel security features From bf9ed86856da25ab41f328716a4e2de092515095 Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Tue, 16 Oct 2018 19:50:20 -0600 Subject: [PATCH 117/222] Added more explanation, cleaned up wording. --- engine/security/security.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/engine/security/security.md b/engine/security/security.md index b42a538f53..74124d004f 100644 --- a/engine/security/security.md +++ b/engine/security/security.md @@ -204,9 +204,14 @@ those explicitly required for their processes. The Docker Content Trust signature verification feature is built directly into the `dockerd` binary. The Docker Engine can be configured to only permitted to run signed images. This is configured in the Dockerd -configuration file. To incorporate this, Docker will use trustpinning. -Trustpinning means Docker reposoitories with a known configured root key -will only be accepted. +configuration file. To incorporate this, the Docker engine have +trustpinning configured in the `daemon.json` file. Trustpinning is when +Docker reposoitories with a known configured root key will only be accepted. + +This feature provides image signature verification whenever a Docker pull +or run command uses an image. This provides insight to administrators that +was not previously available with the CLI being responsible for enforcing +and performing image signature verification. For more information on configuring Docker Content Trust Signature Verificiation, go to (xxx)[xxx]. From cdca0a310585767d99c21b668ab989d60a1175d1 Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudez.mt@gmail.com> Date: Tue, 16 Oct 2018 19:15:40 -0700 Subject: [PATCH 118/222] Closes #744. --- _data/toc.yaml | 4 +- ee/dtr/user/manage-images/index.md | 2 +- .../manage-images/review-repository-info.md | 36 +++++++++ ee/dtr/user/manage-repository-events.md | 81 ------------------- .../audit-repository-events.md | 65 +++++++++++++++ 5 files changed, 105 insertions(+), 83 deletions(-) create mode 100644 ee/dtr/user/manage-images/review-repository-info.md delete mode 100644 ee/dtr/user/manage-repository-events.md create mode 100644 ee/dtr/user/manage-repository-events/audit-repository-events.md diff --git a/_data/toc.yaml b/_data/toc.yaml index 40058534ad..47a8e2b23a 100644 --- a/_data/toc.yaml +++ b/_data/toc.yaml @@ -2392,6 +2392,8 @@ manuals: section: - path: /ee/dtr/user/manage-images/ title: Create a repository + - path: /ee/dtr/user/review-repository-info/ + title: Review repository info - path: /ee/dtr/user/manage-images/pull-and-push-images/ title: Pull and push images - path: /ee/dtr/user/manage-images/delete-images/ @@ -2425,7 +2427,7 @@ manuals: - sectiontitle: Manage repository events section: - title: Audit repository events - path: /ee/dtr/user/manage-repository-events/ + path: /ee/dtr/user/audit-repository-events/ - title: Auto-delete repository events path: /ee/dtr/admin/configure/auto-delete-repo-events/ - path: /ee/dtr/user/create-and-manage-webhooks/ diff --git a/ee/dtr/user/manage-images/index.md b/ee/dtr/user/manage-images/index.md index 8538534ea2..a8cdc66321 100644 --- a/ee/dtr/user/manage-images/index.md +++ b/ee/dtr/user/manage-images/index.md @@ -57,4 +57,4 @@ name of our repository will be `dtr-example.com/test-user-1/wordpress`. ## Where to go next -- [Pull and push images](pull-and-push-images.md) +- [Review repository info](review-repository-info.md) diff --git a/ee/dtr/user/manage-images/review-repository-info.md b/ee/dtr/user/manage-images/review-repository-info.md new file mode 100644 index 0000000000..be2523c6e1 --- /dev/null +++ b/ee/dtr/user/manage-images/review-repository-info.md @@ -0,0 +1,36 @@ +--- +title: Review Repository Info +description: View your repository permissions. +keywords: dtr, repository, permissions +--- + +> BETA DISCLAIMER +> +> This is beta content. It is not yet complete and should be considered a work in progress. This content is subject to change without notice. + +The **Repository Info** tab includes the following details: + * README (which you can [edit if you have admin rights to the repository](../../admin/manage-users/permission-levels/#team-permission-levels)) + * Docker Pull Command + * Your repository permissions + +To learn more about pulling images, see [Pull and Push Images](pull-and-push-images.md). To review your repository permissions, do the following: + +1. Navigate to `https://<dtr-url>`and log in with your UCP credentials. + +2. Select **Repositories** on the left navigation pane, and then click on the name of the repository that you want to view. Note that you will have to click on the repository name following the `/` after the specific namespace for your repository. + + ![](../../images/tag-pruning-0.png){: .img-fluid .with-border} + +3. You should see the **Info** tab by default. Notice **Your Permission** under **Docker Pull Command**. + +4. Hover over the question mark next to [your permission level](../../admin/manage-users/permission-levels/) to view the list of repository events you have access to. + + ![](../../images/manage-repo-events-2.png){: .img-fluid .with-border} + +> Limitations +> +> Your permissions list may include repository events that are not displayed in the **Activity** tab. It is also not an exhaustive list of event types displayed on your activity stream. To learn more about repository events, see [Audit Repository Events](../manage-repository-events/audit-repository-events). + +## Where to go next + +- [Pull and push images](pull-and-push-images.md) diff --git a/ee/dtr/user/manage-repository-events.md b/ee/dtr/user/manage-repository-events.md deleted file mode 100644 index 6bcaa0793f..0000000000 --- a/ee/dtr/user/manage-repository-events.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: Manage Repository Events -description: View a list of image events happening within a repository. -keywords: registry, events, log, activity stream ---- - -> BETA DISCLAIMER -> -> This is beta content. It is not yet complete and should be considered a work in progress. This content is subject to change without notice. - -## Overview - -Starting in DTR 2.6, each repository page includes an **Activity** tab which displays a sortable and paginated list of the most recent events within the repository. This offers better visibility along with the ability to audit events. Event types listed will vary according to your [repository permission level](../admin/manage-users/permission-levels/). Additionally, DTR admins can [enable auto-deletion of repository events](../admin/configure/auto-delete-repo-events/) as part of maintenance and cleanup. - -In the following section, we will show you how to: - -* Review actions or events that you have access to -* View the list of events in a repository, including event types associated with your permission level - -## Review Repository Permissions - -To review the type of events you have access to, do the following: -1. Navigate to `https://<dtr-url>`and log in with your UCP credentials. - -2. Select **Repositories** on the left navigation pane, and then click on the name of the repository that you want to view. Note that you will have to click on the repository name following the `/` after the specific namespace for your repository. - -![](../images/tag-pruning-0.png){: .img-fluid .with-border} - -3. You should see the **Info** tab by default. Notice **Your Permission** under **Docker Pull Command**. - -4. Hover over the question mark next to [your permission level](../admin/manage-users/permission-levels/) to view the list of repository events you have access to. - -![](../images/manage-repo-events-2.png){: .img-fluid .with-border} - -> KNOWN LIMITATIONS -> -> Your repository permissions list may include events that are not displayed in the **Activity** tab. It is also not an exhaustive list of event types on your activity stream. - -## View List of Events - -As of DTR 2.3, admins were able to view a list of DTR events [using the API](https://docs.docker.com/datacenter/dtr/2.3/reference/api/#!/events/GetEvents). DTR 2.6 improves on that feature by showing a permission-based events list for each repository page on the user interface. To view the list of events within a repository, select the **Activity** tab. You should see a paginated list of the latest events based on your repository permission level. By default, **Activity** shows the latest `10` events and excludes pull events, which are only visible to repository and DTR admins. - * If you're a repository or a DTR admin, uncheck "Exclude pull" to view pull events. This should give you a better understanding of who is consuming your images. - * To update your event view, select a different time filter from the drop-down list. - -![](../images/manage-repo-events-0.png){: .img-fluid .with-border} - -### Activity Stream - -The following table breaks down the data included in an event and uses the highlighted "Create Promotion Policy" event as an example. - -| Event Detail | Description | Example | -|:----------------|:-------------------------------------------------|:--------| -| Label | Friendly name of the event. | `Create Promotion Policy` -| Repository | This will always be the repository in review following the `<user-or-org>/<repository_name>` convention outlined in [Create a Repository](../user/manage-images/#create-a-repository). | `test-org/test-repo-1` | -| Tag | Tag affected by the event, when applicable. | `test-org/test-repo-1:latest` where `latest` is the affected tag| -| SHA | The [digest value](/registry/spec/api/#content-digests) for `CREATE` operations such as creating a new image tag or a promotion policy. | `sha256:bbf09ba3` | -| Type | Event type. Possible values are: `CREATE`, `GET`, `UPDATE`, `DELETE`, `SEND`, `FAIL` and `SCAN` | `CREATE` | -| Initiated by | The actor responsible for the event. For user-initiated events, this will reflect the user ID and link to that user's profile. For image events triggered by a policy &ndash; pruning, pull / push mirroring, or promotion &ndash; this will reflect the relevant policy ID except for manual promotions where it reflects `PROMOTION MANUAL_P`, and link to the relevant policy page. Other event actors may not include a link. | `PROMOTION CA5E7822` | -| Date and Time | When the event happened in your configured time zone. | `9/13/2018 9:59 PM` | - -### Event Audits - -Given the level of detail on each event, it should be easy for DTR and security admins to determine what events have taken place inside of DTR. For example, when an image which shouldn’t have been deleted ends up getting deleted, the security admin can determine when and who initiated the deletion. - -### Event Permissions - -For more details on different permission levels within DTR, see [Authentication and authorization in DTR](../admin/manage-users/) to understand the minimum level required to view the different repository events. - -| Repository Event | Description | Minimum Permission Level | -|:----------------|:---------------------------------------------------| :----------------| -| Push | Refers to "Create Manifest" and "Update Tag" events. Learn more about [pushing images](../user/manage-images/pull-and-push-images/#push-the-image). | Authenticated Users | -| Scan | Requires [security scanning to be set up](../admin/configure/set-up-vulnerability-scans/) by a DTR admin. Once enabled, this will display as a `SCAN` event type. | Authenticated Users | -| Promotion | Refers to a "Create Promotion Policy" event which links to the **Promotions** tab of the repository where you can edit the existing promotions. See [Promotion Policies](../user/promotion-policies/) for different ways to promote an image. | Repository Admin | -| Delete | Refers to "Delete Tag" events. Learn more about [deleting images](../user/manage-images/pull-and-push-images/#delete-images). | Authenticated Users | -| Pull | Refers to "Get Tag" events. Learn more about [pulling images](../user/manage-images/pull-and-push-images/#pull-the-image). | Repository Admin | -| Mirror |Refers to "Pull mirroring" and "Push mirroring" events. See [Mirror images to another registry](../user/promotion-policies/#mirror-images-to-another-registry) and [Mirror images from another registry](../user/promotion-policies/#mirror-images-from-another-registry) for more details. | Repository Admin | -| Create repo | Refers to "Create Repository" events. See [Create a repository](../user/manage-images/) for more details. | Authenticated Users | - -## Where to go next - -- [Enable auto-deletion of repository events](../admin/configure/auto-delete-repo-events.md) diff --git a/ee/dtr/user/manage-repository-events/audit-repository-events.md b/ee/dtr/user/manage-repository-events/audit-repository-events.md new file mode 100644 index 0000000000..70ff0296b6 --- /dev/null +++ b/ee/dtr/user/manage-repository-events/audit-repository-events.md @@ -0,0 +1,65 @@ +--- +title: Audit Repository Events +description: View and audit your repository events. +keywords: dtr, events, log, activity stream +--- + +> BETA DISCLAIMER +> +> This is beta content. It is not yet complete and should be considered a work in progress. This content is subject to change without notice. + +## Overview + +Starting in DTR 2.6, each repository page includes an **Activity** tab which displays a sortable and paginated list of the most recent events within the repository. This offers better visibility along with the ability to audit events. Event types listed will vary according to your [repository permission level](../../admin/manage-users/permission-levels/). Additionally, DTR admins can [enable auto-deletion of repository events](../../admin/configure/auto-delete-repo-events/) as part of maintenance and cleanup. + +In the following section, we will show you how to view and audit the list of events in a repository. We will also cover the event types associated with your permission level. + +## View List of Events + +As of DTR 2.3, admins were able to view a list of DTR events [using the API](../../../../datacenter/dtr/2.3/reference/api/#!/events/GetEvents). DTR 2.6 enhances that feature by showing a permission-based events list for each repository page on the web interface. To view the list of events within a repository, do the following: +1. Navigate to `https://<dtr-url>`and log in with your UCP credentials. + +2. Select **Repositories** on the left navigation pane, and then click on the name of the repository that you want to view. Note that you will have to click on the repository name following the `/` after the specific namespace for your repository. + +3. Select the **Activity** tab. You should see a paginated list of the latest events based on your repository permission level. By default, **Activity** shows the latest `10` events and excludes pull events, which are only visible to repository and DTR admins. + * If you're a repository or a DTR admin, uncheck "Exclude pull" to view pull events. This should give you a better understanding of who is consuming your images. + * To update your event view, select a different time filter from the drop-down list. + +![](../../images/manage-repo-events-0.png){: .img-fluid .with-border} + + +### Activity Stream + +The following table breaks down the data included in an event and uses the highlighted "Create Promotion Policy" event as an example. + +| Event Detail | Description | Example | +|:----------------|:-------------------------------------------------|:--------| +| Label | Friendly name of the event. | `Create Promotion Policy` +| Repository | This will always be the repository in review following the `<user-or-org>/<repository_name>` convention outlined in [Create a Repository](../manage-images/#create-a-repository). | `test-org/test-repo-1` | +| Tag | Tag affected by the event, when applicable. | `test-org/test-repo-1:latest` where `latest` is the affected tag| +| SHA | The [digest value](../../../../registry/spec/api/#content-digests) for `CREATE` operations such as creating a new image tag or a promotion policy. | `sha256:bbf09ba3` | +| Type | Event type. Possible values are: `CREATE`, `GET`, `UPDATE`, `DELETE`, `SEND`, `FAIL` and `SCAN` | `CREATE` | +| Initiated by | The actor responsible for the event. For user-initiated events, this will reflect the user ID and link to that user's profile. For image events triggered by a policy &ndash; pruning, pull / push mirroring, or promotion &ndash; this will reflect the relevant policy ID except for manual promotions where it reflects `PROMOTION MANUAL_P`, and link to the relevant policy page. Other event actors may not include a link. | `PROMOTION CA5E7822` | +| Date and Time | When the event happened in your configured time zone. | `9/13/2018 9:59 PM` | + +### Event Audits + +Given the level of detail on each event, it should be easy for DTR and security admins to determine what events have taken place inside of DTR. For example, when an image which shouldn’t have been deleted ends up getting deleted, the security admin can determine when and who initiated the deletion. + +### Event Permissions + +For more details on different permission levels within DTR, see [Authentication and authorization in DTR](../../admin/manage-users/) to understand the minimum level required to view the different repository events. + +| Repository Event | Description | Minimum Permission Level | +|:----------------|:---------------------------------------------------| :----------------| +| Push | Refers to "Create Manifest" and "Update Tag" events. Learn more about [pushing images](../manage-images/pull-and-push-images/#push-the-image). | Authenticated Users | +| Scan | Requires [security scanning to be set up](../../admin/configure/set-up-vulnerability-scans/) by a DTR admin. Once enabled, this will display as a `SCAN` event type. | Authenticated Users | +| Promotion | Refers to a "Create Promotion Policy" event which links to the **Promotions** tab of the repository where you can edit the existing promotions. See [Promotion Policies](../promotion-policies/) for different ways to promote an image. | Repository Admin | +| Delete | Refers to "Delete Tag" events. Learn more about [deleting images](../manage-images/delete-images). | Authenticated Users | +| Pull | Refers to "Get Tag" events. Learn more about [pulling images](../manage-images/pull-and-push-images/#pull-an-image). | Repository Admin | +| Mirror |Refers to "Pull mirroring" and "Push mirroring" events. See [Mirror images to another registry](../promotion-policies/#mirror-images-to-another-registry) and [Mirror images from another registry](../promotion-policies/#mirror-images-from-another-registry) for more details. | Repository Admin | +| Create repo | Refers to "Create Repository" events. See [Create a repository](../manage-images/) for more details. | Authenticated Users | + +## Where to go next + +- [Enable auto-deletion of repository events](../../admin/configure/auto-delete-repo-events.md) From 6f8524d5fce4dc8f536dc30b8b0351f395bd651d Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Wed, 17 Oct 2018 08:48:40 -0600 Subject: [PATCH 119/222] Started working on the detailed content for the DCT plugin. --- engine/security/trust/content_trust.md | 71 ++++++++++++++++++++++---- 1 file changed, 62 insertions(+), 9 deletions(-) diff --git a/engine/security/trust/content_trust.md b/engine/security/trust/content_trust.md index a2e5f972a3..aa977a70f9 100644 --- a/engine/security/trust/content_trust.md +++ b/engine/security/trust/content_trust.md @@ -25,16 +25,35 @@ the `DOCKER_CONTENT_TRUST` environment variable to `1`. Refer to the and [Notary](../../reference/commandline/cli.md#notary) configuration for the docker client for more options. -Once content trust is enabled, image publishers can sign their images. Image consumers can -ensure that the images they use are signed. Publishers and consumers can be -individuals alone or in organizations. Docker's content trust supports users and -automated processes such as builds. +Once content trust is enabled, image publishers can sign their images. Image consumers can ensure that the images they use are signed. Publishers and consumers can be individuals alone or in organizations. Docker's content trust supports users and automated processes such as builds. When you enable content trust, signing occurs on the client after push and verification happens on the client after pull if you use Docker CE. If you use Docker EE with UCP, and you have configured UCP to require images to be signed before deploying, signing is verified by UCP. +To enforce Docker to run only signed images, configure the `daemon.json` file: + +``` +{ + ... + “content-trust”: { + “trust-pinning”: { + “root-keys”: { + “myregistry.com/myorg/*”: [“keyID1”, “keyID2”], + “myregistry.com/otherorg/repo”: [“keyID3”] + }, + “official-images”: true, + }, + “skip-check-on-run”: true, + “allow-expired-trust-cache”: true, + } +} + +``` + +xxx - add configuration table here or xref- xxx + ### Image tags and content trust An individual image record has the following identifier: @@ -139,13 +158,47 @@ these various trusted operations: * Pull the signed image pushed above * Pull unsigned image pushed above +### Enabling Content Trust in Docker Engine Configuration + +The signature verification feature is configured in the Docker daemon configuration file `daemon.json`. + +``` +{ + ... + “content-trust”: { + “trust-pinning”: { + “root-keys”: { + “myregistry.com/myorg/*”: [“keyID1”, “keyID2”], + “myregistry.com/otherorg/repo”: [“keyID3”] + }, + “official-images”: true, + }, + “skip-check-on-run”: true, + “allow-expired-trust-cache”: true, + } +} +``` + +| Stanza | Description | +| ----------------------- |:-------------:| +| trust-pinning:root-keys |A mapping of image globs to root key IDs which should have signed the root metadata of the image trust data. These key IDs are canonical IDs; root keys in DCT are certificates tying the name of the image to the repo metadata, so each one’s ID is different per repo. The ID of the private key (the canonical key ID) corresponding to the certificate though is the same no matter what the name of the mage. + +If this setting is provided, any image not matching one of these globs will not be trusted at all (with the optional exception of official images - see below) + +If an image’s name matches more than one glob, then the most specific (longest) one is chosen. + +***Note:*** the Docker Trust CLI or some other tool needs to be able to provide these canonical key IDs, +as opposed to just the regular key IDs | + ### Enable and disable content trust per-shell or per-invocation -In a shell, you can enable content trust by setting the `DOCKER_CONTENT_TRUST` -environment variable. Enabling per-shell is useful because you can have one -shell configured for trusted operations and another terminal shell for untrusted -operations. You can also add this declaration to your shell profile to have it -turned on always by default. +Instead of enabling Docker Content Trust through the system-wide configuration, Docker +Content Trust can be enabled or disabled on a per-shell or per-invocation basis. + +To enable on a per-shell basis, enable the `DOCKER_CONTENT_TRUST` environment variable. +Enabling per-shell is useful because you can have one shell configured for trusted operations +and another terminal shell for untrusted operations. You can also add this declaration to +your shell profile to have it turned on always by default. To enable content trust in a `bash` shell enter the following command: From e7202bbfc46866c58185a9dc1b6c7dab22e2ce14 Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Wed, 17 Oct 2018 08:50:17 -0600 Subject: [PATCH 120/222] Fixed table column --- engine/security/trust/content_trust.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/security/trust/content_trust.md b/engine/security/trust/content_trust.md index aa977a70f9..7bb72b4e2d 100644 --- a/engine/security/trust/content_trust.md +++ b/engine/security/trust/content_trust.md @@ -180,7 +180,7 @@ The signature verification feature is configured in the Docker daemon configurat ``` | Stanza | Description | -| ----------------------- |:-------------:| +| ----------------------- |:--------------| | trust-pinning:root-keys |A mapping of image globs to root key IDs which should have signed the root metadata of the image trust data. These key IDs are canonical IDs; root keys in DCT are certificates tying the name of the image to the repo metadata, so each one’s ID is different per repo. The ID of the private key (the canonical key ID) corresponding to the certificate though is the same no matter what the name of the mage. If this setting is provided, any image not matching one of these globs will not be trusted at all (with the optional exception of official images - see below) From c9296ab1c92a9ba0c3859807100970820ba4e69e Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Wed, 17 Oct 2018 08:53:05 -0600 Subject: [PATCH 121/222] fixed table, again. --- engine/security/trust/content_trust.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/security/trust/content_trust.md b/engine/security/trust/content_trust.md index 7bb72b4e2d..96d9450011 100644 --- a/engine/security/trust/content_trust.md +++ b/engine/security/trust/content_trust.md @@ -180,7 +180,7 @@ The signature verification feature is configured in the Docker daemon configurat ``` | Stanza | Description | -| ----------------------- |:--------------| +| ----------------------- |---------------| | trust-pinning:root-keys |A mapping of image globs to root key IDs which should have signed the root metadata of the image trust data. These key IDs are canonical IDs; root keys in DCT are certificates tying the name of the image to the repo metadata, so each one’s ID is different per repo. The ID of the private key (the canonical key ID) corresponding to the certificate though is the same no matter what the name of the mage. If this setting is provided, any image not matching one of these globs will not be trusted at all (with the optional exception of official images - see below) From 1ba6e4f414304ef0c585e046944935143e2d6834 Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Wed, 17 Oct 2018 09:00:03 -0600 Subject: [PATCH 122/222] Fixed formatting, added another row for testing before completing table. --- engine/security/trust/content_trust.md | 57 +++++++++++--------------- 1 file changed, 23 insertions(+), 34 deletions(-) diff --git a/engine/security/trust/content_trust.md b/engine/security/trust/content_trust.md index 96d9450011..5e56d9c367 100644 --- a/engine/security/trust/content_trust.md +++ b/engine/security/trust/content_trust.md @@ -19,41 +19,11 @@ ability to use digital signatures for data sent to and received from remote Docker registries. These signatures allow client-side verification of the integrity and publisher of specific image tags. -Currently, content trust is disabled by default. To enable it, set -the `DOCKER_CONTENT_TRUST` environment variable to `1`. Refer to the -[environment variables](../../reference/commandline/cli.md#environment-variables) -and [Notary](../../reference/commandline/cli.md#notary) configuration -for the docker client for more options. - -Once content trust is enabled, image publishers can sign their images. Image consumers can ensure that the images they use are signed. Publishers and consumers can be individuals alone or in organizations. Docker's content trust supports users and automated processes such as builds. - When you enable content trust, signing occurs on the client after push and verification happens on the client after pull if you use Docker CE. If you use Docker EE with UCP, and you have configured UCP to require images to be signed before deploying, signing is verified by UCP. -To enforce Docker to run only signed images, configure the `daemon.json` file: - -``` -{ - ... - “content-trust”: { - “trust-pinning”: { - “root-keys”: { - “myregistry.com/myorg/*”: [“keyID1”, “keyID2”], - “myregistry.com/otherorg/repo”: [“keyID3”] - }, - “official-images”: true, - }, - “skip-check-on-run”: true, - “allow-expired-trust-cache”: true, - } -} - -``` - -xxx - add configuration table here or xref- xxx - ### Image tags and content trust An individual image record has the following identifier: @@ -160,7 +130,20 @@ these various trusted operations: ### Enabling Content Trust in Docker Engine Configuration -The signature verification feature is configured in the Docker daemon configuration file `daemon.json`. +Currently, content trust is disabled by default. To enable it, set +the `DOCKER_CONTENT_TRUST` environment variable to `1`. Refer to the +[environment variables](../../reference/commandline/cli.md#environment-variables) +and [Notary](../../reference/commandline/cli.md#notary) configuration +for the docker client for more options. + +Once content trust is enabled, image publishers can sign their images. Image consumers +can ensure that the images they use are signed. Publishers and consumers can be individuals +alone or in organizations. Docker's content trust supports users and automated processes +such as builds. + + +The signature verification feature is configured in the Docker daemon configuration file +`daemon.json`. ``` { @@ -179,16 +162,22 @@ The signature verification feature is configured in the Docker daemon configurat } ``` -| Stanza | Description | +| ***Stanza*** | ***Description*** | | ----------------------- |---------------| -| trust-pinning:root-keys |A mapping of image globs to root key IDs which should have signed the root metadata of the image trust data. These key IDs are canonical IDs; root keys in DCT are certificates tying the name of the image to the repo metadata, so each one’s ID is different per repo. The ID of the private key (the canonical key ID) corresponding to the certificate though is the same no matter what the name of the mage. +| `trust-pinning:root-keys` |A mapping of image globs to root key IDs which should have signed the root metadata of the image trust data. These key IDs are canonical IDs; root keys in DCT are certificates tying the name of the image to the repo metadata, so each one’s ID is different per repo. The ID of the private key (the canonical key ID) corresponding to the certificate though is the same no matter what the name of the mage. If this setting is provided, any image not matching one of these globs will not be trusted at all (with the optional exception of official images - see below) If an image’s name matches more than one glob, then the most specific (longest) one is chosen. - ***Note:*** the Docker Trust CLI or some other tool needs to be able to provide these canonical key IDs, as opposed to just the regular key IDs | +|`trust-pinning:library-images` | +Docker EE will have the docker official images root key ID hard-coded. If this option is turned on, users will not have to look up the key ID of the Docker official library images (excluding DTR/UCP) and include it in their `trust-pinning:root-keys` setting - this will pin the official libraries (`docker.io/library/*`) to that hard-coded root key, and the official images will be trusted by default in addition to whatever images are specified by `trust-pinning:root-keys`. + +Certified images from Docker Store and DTR/UCP would be considered for a future feature. + +If `trustpinning:root-keys` specifies a key mapping for `docker.io/library/*`, those keys will be preferred for trust pinning. Otherwise, if a more general `docker.io/*` or `*` are specified, the official images key will be preferred.| + ### Enable and disable content trust per-shell or per-invocation From 3397e5129cd4db0d408e4a911baec6e55acc43c6 Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Wed, 17 Oct 2018 09:02:23 -0600 Subject: [PATCH 123/222] More table formatting fun. --- engine/security/trust/content_trust.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/engine/security/trust/content_trust.md b/engine/security/trust/content_trust.md index 5e56d9c367..fca3553022 100644 --- a/engine/security/trust/content_trust.md +++ b/engine/security/trust/content_trust.md @@ -170,13 +170,13 @@ If this setting is provided, any image not matching one of these globs will not If an image’s name matches more than one glob, then the most specific (longest) one is chosen. ***Note:*** the Docker Trust CLI or some other tool needs to be able to provide these canonical key IDs, -as opposed to just the regular key IDs | +as opposed to just the regular key IDs | |`trust-pinning:library-images` | Docker EE will have the docker official images root key ID hard-coded. If this option is turned on, users will not have to look up the key ID of the Docker official library images (excluding DTR/UCP) and include it in their `trust-pinning:root-keys` setting - this will pin the official libraries (`docker.io/library/*`) to that hard-coded root key, and the official images will be trusted by default in addition to whatever images are specified by `trust-pinning:root-keys`. Certified images from Docker Store and DTR/UCP would be considered for a future feature. -If `trustpinning:root-keys` specifies a key mapping for `docker.io/library/*`, those keys will be preferred for trust pinning. Otherwise, if a more general `docker.io/*` or `*` are specified, the official images key will be preferred.| +If `trustpinning:root-keys` specifies a key mapping for `docker.io/library/*`, those keys will be preferred for trust pinning. Otherwise, if a more general `docker.io/*` or `*` are specified, the official images key will be preferred. | ### Enable and disable content trust per-shell or per-invocation From af2ef50387f15788b0371dccf428f49418c1ba3b Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Wed, 17 Oct 2018 09:53:40 -0600 Subject: [PATCH 124/222] Removed --cni-url-installer since it's deprecated for the next release. --- ee/ucp/kubernetes/install-cni-plugin.md | 11 ++++++++--- reference/ucp/3.0/cli/install.md | 1 - reference/ucp/3.0/cli/upgrade.md | 1 - 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ee/ucp/kubernetes/install-cni-plugin.md b/ee/ucp/kubernetes/install-cni-plugin.md index 5d3d11cd8d..80ab2eb9aa 100644 --- a/ee/ucp/kubernetes/install-cni-plugin.md +++ b/ee/ucp/kubernetes/install-cni-plugin.md @@ -4,13 +4,18 @@ description: Learn how to install a Container Networking Interface plugin on Doc keywords: ucp, cli, administration, kubectl, Kubernetes, cni, Container Networking Interface, flannel, weave, ipip, calico --- +> BETA DISCLAIMER +> +> This is beta content. It is not yet complete and should be considered a work in progress. This content is subject to change without notice. For Docker Universal Control Plane, [Project Calico](https://docs.projectcalico.org/v3.0/introduction/) provides the secure networking functionality for the container communication with Kubernetes. -UCP supports third-party Container Networking Interface (CNI) plugins by using the `--cni-installer-url` -option. By default, Docker EE installs the built-in [Calico](https://github.com/projectcalico/cni-plugin) -plugin, but you can override the default and install a Docker certified plugin. +UCP supports third-party Container Networking Interface (CNI) plugins. By default, Docker EE +installs the built-in [Calico](https://github.com/projectcalico/cni-plugin) plugin, but you +can override the default and install a Docker certified plugin. + +***NOTE:*** The `--cni-installer-url` option is deprecated as of the EE 2.1 release. # Install UCP with a custom CNI plugin diff --git a/reference/ucp/3.0/cli/install.md b/reference/ucp/3.0/cli/install.md index 3dc06c8e91..379f1f2d92 100644 --- a/reference/ucp/3.0/cli/install.md +++ b/reference/ucp/3.0/cli/install.md @@ -60,7 +60,6 @@ command. | `--kube-apiserver-port` | Port for the Kubernetes API server (default: 6443) | | `--swarm-port` | Port for the Docker Swarm manager. Used for backwards compatibility | | `--swarm-grpc-port` | Port for communication between nodes | -| `--cni-installer-url` | A URL pointing to a Kubernetes YAML file to be used as an installer for the CNI plugin of the cluster. If specified, the default CNI plugin is not installed. If the URL uses the HTTPS scheme, no certificate verification is performed. | | `--pod-cidr` | Kubernetes cluster IP pool for the pods to allocated IPs from (Default: 192.168.0.0/16) | | `--cloud-provider` | The cloud provider for the cluster | | `--dns` | Set custom DNS servers for the UCP containers | diff --git a/reference/ucp/3.0/cli/upgrade.md b/reference/ucp/3.0/cli/upgrade.md index 9206d2b608..a43f6f0923 100644 --- a/reference/ucp/3.0/cli/upgrade.md +++ b/reference/ucp/3.0/cli/upgrade.md @@ -45,4 +45,3 @@ healthy and that all nodes have been upgraded successfully. | `--pod-cidr` | Kubernetes cluster IP pool for the pods to allocated IP from (Default: 192.168.0.0/16 | | `--nodeport-range` | Allowed port range for Kubernetes services of type NodePort (Default: 32768-35535) | | `--cloud-provider` | The cloud provider for the cluster | -| `--cni-installer-url` | A URL pointing to a kubernetes YAML file to be used as an installer for the CNI plugin of the cluster | From 1c944746963f84900fe61770092bdf6003780ffd Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudez.mt@gmail.com> Date: Tue, 16 Oct 2018 20:30:08 -0700 Subject: [PATCH 125/222] Document planned deprecation of current ManifestLists behavior --- ee/dtr/deprecation-notice.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 ee/dtr/deprecation-notice.md diff --git a/ee/dtr/deprecation-notice.md b/ee/dtr/deprecation-notice.md new file mode 100644 index 0000000000..d7ac7f0703 --- /dev/null +++ b/ee/dtr/deprecation-notice.md @@ -0,0 +1,14 @@ +--- +description: Page for deprecation announcements. +keywords: registry, manifest, images, signatures, repository, distribution, digest +title: Deprecation Notice +--- + +This document outlines the functionalities or components within DTR that will be deprecated. + +### Enable Manifest List via the API + +Since `v2.5`, it has been possible for repository admins to enable manifest lists when [creating a repository via the API](./reference/dtr/2.5/api/). You accomplish this by setting `enableManifestLists` to `true` when sending a POST request to the `/api/v0/repositories/{namespace}` endpoint. When enabled for a repository, any image that you push to an existing tag will be added to the list of manifests for that tag. + +The above behavior and the field `enableManifestLists` will be removed in `v2.7`. Starting in `v2.7`, you can use the CLI command, `docker manifest` to [create and push a manifest list to any repository](./edge/engine/reference/commandline/manifest/). + From ffb074b661b8c075aac22e622e458bea8e8afe37 Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Thu, 18 Oct 2018 08:25:15 -0700 Subject: [PATCH 126/222] restored topic to current release content --- reference/ucp/3.0/cli/support.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reference/ucp/3.0/cli/support.md b/reference/ucp/3.0/cli/support.md index d2e8146137..f30dfb497f 100644 --- a/reference/ucp/3.0/cli/support.md +++ b/reference/ucp/3.0/cli/support.md @@ -18,11 +18,11 @@ docker container run --rm \ ## Description -This command creates a support dump file for the specified node(s), and prints it to stdout. +This command creates a support dump file for this node, and prints it to stdout. ## Options | Option | Description | |:--------------------------|:---------------------------| -|`--loglines`|Specify number of lines to grab from `journalctl`. The default is 10,000 lines.| -|`--nodes`|Select specific nodes on which to produce a support dump. Comma-separated node IDs are allowed. The default selects all nodes.| +|`--debug, D`|Enable debug mode| +|`--jsonlog`|Produce json formatted output for easier parsing| From f415a1de99ce6f388d688be5f87f39d4833df02d Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Thu, 18 Oct 2018 09:43:45 -0600 Subject: [PATCH 127/222] Fixed formatting, cleaning up text a bit. --- engine/security/trust/content_trust.md | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/engine/security/trust/content_trust.md b/engine/security/trust/content_trust.md index fca3553022..16a2e67f2a 100644 --- a/engine/security/trust/content_trust.md +++ b/engine/security/trust/content_trust.md @@ -164,19 +164,14 @@ The signature verification feature is configured in the Docker daemon configurat | ***Stanza*** | ***Description*** | | ----------------------- |---------------| -| `trust-pinning:root-keys` |A mapping of image globs to root key IDs which should have signed the root metadata of the image trust data. These key IDs are canonical IDs; root keys in DCT are certificates tying the name of the image to the repo metadata, so each one’s ID is different per repo. The ID of the private key (the canonical key ID) corresponding to the certificate though is the same no matter what the name of the mage. - -If this setting is provided, any image not matching one of these globs will not be trusted at all (with the optional exception of official images - see below) - +| `trust-pinning:root-keys` |A mapping of image globs to root key IDs which should have signed the root metadata of the image trust data. These key IDs are canonical IDs; root keys in DCT are certificates tying the name of the image to the repo metadata, so each one’s ID is different per repo. The ID of the private key (the canonical key ID) corresponding to the certificate though is the same no matter what the name of the mage.<br> +If this setting is provided, any image not matching one of these globs will not be trusted at all (with the optional exception of official images - see below)<br> If an image’s name matches more than one glob, then the most specific (longest) one is chosen. ***Note:*** the Docker Trust CLI or some other tool needs to be able to provide these canonical key IDs, as opposed to just the regular key IDs | |`trust-pinning:library-images` | -Docker EE will have the docker official images root key ID hard-coded. If this option is turned on, users will not have to look up the key ID of the Docker official library images (excluding DTR/UCP) and include it in their `trust-pinning:root-keys` setting - this will pin the official libraries (`docker.io/library/*`) to that hard-coded root key, and the official images will be trusted by default in addition to whatever images are specified by `trust-pinning:root-keys`. - -Certified images from Docker Store and DTR/UCP would be considered for a future feature. - -If `trustpinning:root-keys` specifies a key mapping for `docker.io/library/*`, those keys will be preferred for trust pinning. Otherwise, if a more general `docker.io/*` or `*` are specified, the official images key will be preferred. | +Docker EE will have the docker official images root key ID hard-coded. If this option is turned on, users will not have to look up the key ID of the Docker official library images (excluding DTR/UCP) and include it in their `trust-pinning:root-keys` setting - this will pin the official libraries (`docker.io/library/*`) to that hard-coded root key, and the official images will be trusted by default in addition to whatever images are specified by `trust-pinning:root-keys`. <br> +If `trustpinning:root-keys` specifies a key mapping for `docker.io/library/*`, those keys will be preferred for trust pinning. Otherwise, if a more general `docker.io/*` or `*` are specified, the official images key will be preferred.<br> | ### Enable and disable content trust per-shell or per-invocation From ea19cdbe08c2afe49917a228e3c9358561803ce1 Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Thu, 18 Oct 2018 09:47:34 -0600 Subject: [PATCH 128/222] More table fun. --- engine/security/trust/content_trust.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/engine/security/trust/content_trust.md b/engine/security/trust/content_trust.md index 16a2e67f2a..7e4bd53e5c 100644 --- a/engine/security/trust/content_trust.md +++ b/engine/security/trust/content_trust.md @@ -164,15 +164,8 @@ The signature verification feature is configured in the Docker daemon configurat | ***Stanza*** | ***Description*** | | ----------------------- |---------------| -| `trust-pinning:root-keys` |A mapping of image globs to root key IDs which should have signed the root metadata of the image trust data. These key IDs are canonical IDs; root keys in DCT are certificates tying the name of the image to the repo metadata, so each one’s ID is different per repo. The ID of the private key (the canonical key ID) corresponding to the certificate though is the same no matter what the name of the mage.<br> -If this setting is provided, any image not matching one of these globs will not be trusted at all (with the optional exception of official images - see below)<br> -If an image’s name matches more than one glob, then the most specific (longest) one is chosen. -***Note:*** the Docker Trust CLI or some other tool needs to be able to provide these canonical key IDs, -as opposed to just the regular key IDs | -|`trust-pinning:library-images` | -Docker EE will have the docker official images root key ID hard-coded. If this option is turned on, users will not have to look up the key ID of the Docker official library images (excluding DTR/UCP) and include it in their `trust-pinning:root-keys` setting - this will pin the official libraries (`docker.io/library/*`) to that hard-coded root key, and the official images will be trusted by default in addition to whatever images are specified by `trust-pinning:root-keys`. <br> -If `trustpinning:root-keys` specifies a key mapping for `docker.io/library/*`, those keys will be preferred for trust pinning. Otherwise, if a more general `docker.io/*` or `*` are specified, the official images key will be preferred.<br> | - +| `trust-pinning:root-keys` | A mapping of image globs to root key IDs which should have signed the root metadata of the image trust data. These key IDs are canonical IDs; root keys in DCT are certificates tying the name of the image to the repo metadata, so each one’s ID is different per repo. The ID of the private key (the canonical key ID) corresponding to the certificate though is the same no matter what the name of the image.<br> If this setting is provided, any image not matching one of these globs will not be trusted at all (with the optional exception of official images - see below)<br> If an image’s name matches more than one glob, then the most specific (longest) one is chosen. ***Note:*** the Docker Trust CLI or some other tool needs to be able to provide these canonical key IDs, as opposed to just the regular key IDs| +|`trust-pinning:library-images` | Docker EE will have the docker official images root key ID hard-coded. If this option is turned on, users will not have to look up the key ID of the Docker official library images (excluding DTR/UCP) and include it in their `trust-pinning:root-keys` setting - this will pin the official libraries (`docker.io/library/*`) to that hard-coded root key, and the official images will be trusted by default in addition to whatever images are specified by `trust-pinning:root-keys`. <br> If `trustpinning:root-keys` specifies a key mapping for `docker.io/library/*`, those keys will be preferred for trust pinning. Otherwise, if a more general `docker.io/*` or `*` are specified, the official images key will be preferred.<br> | ### Enable and disable content trust per-shell or per-invocation From 4f51e3a8ed18ef64f7a368330a2eea5ebdfb3458 Mon Sep 17 00:00:00 2001 From: Steve Smith <steve@kentsmiths.com> Date: Thu, 18 Oct 2018 12:18:53 -0400 Subject: [PATCH 129/222] It's "on premises" not "on premise" --- engine/examples/dotnetcore.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/examples/dotnetcore.md b/engine/examples/dotnetcore.md index 55adf85134..14a656d4f8 100644 --- a/engine/examples/dotnetcore.md +++ b/engine/examples/dotnetcore.md @@ -19,7 +19,7 @@ This example demonstrates how to dockerize an ASP.NET Core application. Core](https://www.microsoft.com/net/core/platform) or on the full [.NET Framework](https://www.microsoft.com/net/framework) - Designed to provide an optimized development framework for apps that are - deployed to the cloud or run on-premise + deployed to the cloud or run on-premises - Modular components with minimal overhead retain flexibility while constructing your solutions From bcf2835e8352f91e73be7b9bd922d4838fb69a89 Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Thu, 18 Oct 2018 10:31:18 -0600 Subject: [PATCH 130/222] Initial draft for user/dockerd/daemon.json complete. Need to check API docs before review. --- engine/security/trust/content_trust.md | 33 ++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/engine/security/trust/content_trust.md b/engine/security/trust/content_trust.md index 7e4bd53e5c..0584489b6c 100644 --- a/engine/security/trust/content_trust.md +++ b/engine/security/trust/content_trust.md @@ -141,6 +141,32 @@ can ensure that the images they use are signed. Publishers and consumers can be alone or in organizations. Docker's content trust supports users and automated processes such as builds. +Engine Signature Verification will prevent the following behaviors on an image: +* Running a container to build an image (the base image must be signed, or must be scratch) +* Creating a container from an image that isn’t signed +* Enabling `skip-check-on-run` allows containers created by an already existing services to use whatever image was specified starting a container from an unsigned image +* Enabling `skip-check-on-run` also allows containers previously created to run, independent of specified image + +Content trust does not verify that a running container’s filesystem has not been altered from what +was in the image. For example, it does not prevent a container from writing to the filesystem, nor +the container’s filesystem from being altered on disk. + +It will also only pull signed images from registries, but will not prevent unsigned images from being +imported, loaded, or created. + +The image name, digest, or tag must be verified if content trust is enabled. he latest DCT metadata for +an image must be downloaded from the trust server associated with the registry: +* If an image tag does not have a digest, the DCT metadata translates the name to an image digest +* If an image tag has an image digest, the DCT metadata verifies that the name matches the provided digest +* If an image digest does not have an image tag, the DCT metadata reverse lookups and provides the image tag as well as the digest. + +If translation or verification fails, the request or operation requiring the image is failed. +This can happen because the content trust server is not reachable, if the `allow-expired-trust-cache` +is eanbled, or the the DCT metadata is used if the timestamp has not expired. + +Provided `skip-check-on-run` is not enabled, an initiated container's image will be re-validated +against the cached metadata first. If the cached metadata has expired or is not available, the image +will be validated using the image name, digest, or tag. The signature verification feature is configured in the Docker daemon configuration file `daemon.json`. @@ -164,8 +190,11 @@ The signature verification feature is configured in the Docker daemon configurat | ***Stanza*** | ***Description*** | | ----------------------- |---------------| -| `trust-pinning:root-keys` | A mapping of image globs to root key IDs which should have signed the root metadata of the image trust data. These key IDs are canonical IDs; root keys in DCT are certificates tying the name of the image to the repo metadata, so each one’s ID is different per repo. The ID of the private key (the canonical key ID) corresponding to the certificate though is the same no matter what the name of the image.<br> If this setting is provided, any image not matching one of these globs will not be trusted at all (with the optional exception of official images - see below)<br> If an image’s name matches more than one glob, then the most specific (longest) one is chosen. ***Note:*** the Docker Trust CLI or some other tool needs to be able to provide these canonical key IDs, as opposed to just the regular key IDs| -|`trust-pinning:library-images` | Docker EE will have the docker official images root key ID hard-coded. If this option is turned on, users will not have to look up the key ID of the Docker official library images (excluding DTR/UCP) and include it in their `trust-pinning:root-keys` setting - this will pin the official libraries (`docker.io/library/*`) to that hard-coded root key, and the official images will be trusted by default in addition to whatever images are specified by `trust-pinning:root-keys`. <br> If `trustpinning:root-keys` specifies a key mapping for `docker.io/library/*`, those keys will be preferred for trust pinning. Otherwise, if a more general `docker.io/*` or `*` are specified, the official images key will be preferred.<br> | +| `trust-pinning:root-keys` | Root key IDs are canonical IDs that sign the root metadata of the image trust data. In Docker Certified Trust (DCT), the root keys are unique certificates tying the name of the image to the repo metadata.  The private key ID (the canonical key ID) corresponding to the certificate is not dependent on the image name. If an image’s name matches more than one glob, then the most specific (longest) one is chosen.| +|`trust-pinning:library-images` | This option pins the official libraries (`docker.io/library/*`) to the hard-coded Docker official images root key. DCT trusts the official images by default. This is in addition to whatever images are specified by `trust-pinning:root-keys`. If `trustpinning:root-keys` specifies a key mapping for `docker.io/library/*`, those keys will be preferred for trust pinning. Otherwise, if a more general `docker.io/*` or `*` are specified, the official images key will be preferred.| +| `skip-check-on-run` | Specifies whether DCT image validiation exempts existing containers or services. This determines whether the check is only on container creation or service creation, as opposed to container start or service maintenance, rescheduling, or rollback.| +| `allow-expired-trust-cache` | Specifies whether cached locally expired metadata validates images if an external server is unreachable or does not have image trust metadata. This is necessary for machines which may be often offline, as may be the case for edge. This does not provide mitigations against freeze attacks, which is a necessary to provide availability in low-connectivity environments. | + ### Enable and disable content trust per-shell or per-invocation From 2309def6289e2ad3421b764fea11913c74bdb504 Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudez.mt@gmail.com> Date: Thu, 18 Oct 2018 11:06:30 -0700 Subject: [PATCH 131/222] Closes #730 --- ee/dtr/images/immutable-repo-0.png | Bin 0 -> 29143 bytes ee/dtr/images/immutable-repo-2.png | Bin 0 -> 96848 bytes .../prevent-tags-from-being-overwritten.md | 45 ++++++++++++------ 3 files changed, 30 insertions(+), 15 deletions(-) create mode 100644 ee/dtr/images/immutable-repo-0.png create mode 100644 ee/dtr/images/immutable-repo-2.png diff --git a/ee/dtr/images/immutable-repo-0.png b/ee/dtr/images/immutable-repo-0.png new file mode 100644 index 0000000000000000000000000000000000000000..ec1da70d6f4b0cf3bab6c76cee9e39696cc79faf GIT binary patch literal 29143 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 NGp9}T3Azry{0EYcYVZI6 literal 0 HcmV?d00001 diff --git a/ee/dtr/images/immutable-repo-2.png b/ee/dtr/images/immutable-repo-2.png new file mode 100644 index 0000000000000000000000000000000000000000..345a9309fe2a47bb23b1659d73e9bb0d16b16162 GIT binary patch literal 96848 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 literal 0 HcmV?d00001 diff --git a/ee/dtr/user/manage-images/prevent-tags-from-being-overwritten.md b/ee/dtr/user/manage-images/prevent-tags-from-being-overwritten.md index a69cdcc221..517b80c7b6 100644 --- a/ee/dtr/user/manage-images/prevent-tags-from-being-overwritten.md +++ b/ee/dtr/user/manage-images/prevent-tags-from-being-overwritten.md @@ -1,34 +1,49 @@ --- title: Prevent tags from being overwritten -description: Learn how to make your tags immutable and don't allow users to - overwrite a tag if it already exists +description: Learn how to make your tags immutable and prevent users from + overwriting a tag if it already exists keywords: registry, immutable --- -{% assign domain="dtr.example.org" %} +{% assign domain="dtr-example.com" %} {% assign org="library" %} {% assign repo="wordpress" %} {% assign tag="latest" %} -By default, users with access to push to a repository, can push the same tag -multiple times to the same repository. -As an example, a user pushes an image to `{{ org }}/{{ repo }}:{{ tag }}`, and later another -user can push the image with exactly the same name but different functionality. -This might make it difficult to trace back the image to the build that generated +By default, users with push or [read and write access](../../admin/manage-users/permission-levels/) to a repository can push the same tag +multiple times to that repository. For example, when ***user A*** pushes an image to `{{ org }}/{{ repo }}:{{ tag }}`, there is no preventing ***user B*** +from pushing an image with exactly the same name but a completely different functionality. +This might make it difficult to trace the image back to the build that generated it. To prevent this from happening, you can configure a repository to be immutable. -Once you push a tag, DTR won't allow anyone else to push another tag with the same -name. +Once configured, DTR will not allow anyone else to push another image tag with the same name. ## Make tags immutable -To make tags immutable, in the **DTR web UI**, navigate to the -**repository settings** page, and change **Immutability** to **On**. +There are two ways to enable tag immutability on a repository. You can enable it when you create your repository, or at any time after. -![](../../images/immutable-repo-1.png){: .with-border} +### New Repository -From now on, users will get an error message when trying to push a tag + +If you're not already logged in, navigate to `https://<dtr-url>`and log in with your UCP credentials. To make tags immutable on a new repository, do the following: + +1. Follow the steps in [Create a repository](../manage-images/). + +2. Click **Show advanced settings**, and turn on **Immutability**. Note that tag limits are enabled when immutability is enabled for a repository. + +### Existing Repository + +1. Select **Repositories** on the left navigation pane, and then click on the name of the repository that you want to view. Note that you will have to click on the repository name following the `/` after the specific namespace for your repository. + + ![](../../images/immutable-repo-0.png){: .img-fluid .with-border} + +2. Select the **Settings** tab, and turn on **Immutability**. + + ![](../../images/immutable-repo-2.png){: .with-border} + + +From now on, you will get an error message when trying to push a tag that already exists: ```bash @@ -38,4 +53,4 @@ unknown: tag={{ tag }} cannot be overwritten because {{ domain }}/{{ org }}/{{ r ## Where to go next -- [Sign images](sign-images/index.md) \ No newline at end of file +- [Sign images](sign-images/index.md) From ee694e28eb595ccbdf6ae7f83c3a4a3efdabf831 Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudezmt@users.noreply.github.com> Date: Thu, 18 Oct 2018 12:33:50 -0700 Subject: [PATCH 132/222] Update prevent-tags-from-being-overwritten.md - Incorporate Anne's feedback. --- .../prevent-tags-from-being-overwritten.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/ee/dtr/user/manage-images/prevent-tags-from-being-overwritten.md b/ee/dtr/user/manage-images/prevent-tags-from-being-overwritten.md index 517b80c7b6..886c37acde 100644 --- a/ee/dtr/user/manage-images/prevent-tags-from-being-overwritten.md +++ b/ee/dtr/user/manage-images/prevent-tags-from-being-overwritten.md @@ -10,18 +10,16 @@ keywords: registry, immutable {% assign repo="wordpress" %} {% assign tag="latest" %} -By default, users with push or [read and write access](../../admin/manage-users/permission-levels/) to a repository can push the same tag +By default, users with [read and write access](../../admin/manage-users/permission-levels/) to a repository can push the same tag multiple times to that repository. For example, when ***user A*** pushes an image to `{{ org }}/{{ repo }}:{{ tag }}`, there is no preventing ***user B*** -from pushing an image with exactly the same name but a completely different functionality. -This might make it difficult to trace the image back to the build that generated -it. +from pushing an image with the same name but a completely different functionality. -To prevent this from happening, you can configure a repository to be immutable. +To prevent tags from being overwritten, you can configure a repository to be immutable. Once configured, DTR will not allow anyone else to push another image tag with the same name. ## Make tags immutable -There are two ways to enable tag immutability on a repository. You can enable it when you create your repository, or at any time after. +You can enable tag immutability on a repository when you create it, or at any time after. ### New Repository From 09b0ab55d6bbdcd0ec08f1c6141fbd888bf88d47 Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudezmt@users.noreply.github.com> Date: Thu, 18 Oct 2018 13:12:26 -0700 Subject: [PATCH 133/222] Update prevent-tags-from-being-overwritten.md Incorporate @ddeyo 's feedback. --- .../user/manage-images/prevent-tags-from-being-overwritten.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ee/dtr/user/manage-images/prevent-tags-from-being-overwritten.md b/ee/dtr/user/manage-images/prevent-tags-from-being-overwritten.md index 886c37acde..8f94003534 100644 --- a/ee/dtr/user/manage-images/prevent-tags-from-being-overwritten.md +++ b/ee/dtr/user/manage-images/prevent-tags-from-being-overwritten.md @@ -12,7 +12,8 @@ keywords: registry, immutable By default, users with [read and write access](../../admin/manage-users/permission-levels/) to a repository can push the same tag multiple times to that repository. For example, when ***user A*** pushes an image to `{{ org }}/{{ repo }}:{{ tag }}`, there is no preventing ***user B*** -from pushing an image with the same name but a completely different functionality. +from pushing an image with the same name but a completely different functionality. This can make it difficult to trace the image back to the build that generated +it. To prevent tags from being overwritten, you can configure a repository to be immutable. Once configured, DTR will not allow anyone else to push another image tag with the same name. From 62069559fc09088a6572fb44e312d50587835692 Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudezmt@users.noreply.github.com> Date: Thu, 18 Oct 2018 23:27:58 -0700 Subject: [PATCH 134/222] Update deprecation-notice.md Clarify differences in manifest lists behavior between different versions --- ee/dtr/deprecation-notice.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ee/dtr/deprecation-notice.md b/ee/dtr/deprecation-notice.md index d7ac7f0703..c6c11c0d9d 100644 --- a/ee/dtr/deprecation-notice.md +++ b/ee/dtr/deprecation-notice.md @@ -8,7 +8,15 @@ This document outlines the functionalities or components within DTR that will be ### Enable Manifest List via the API -Since `v2.5`, it has been possible for repository admins to enable manifest lists when [creating a repository via the API](./reference/dtr/2.5/api/). You accomplish this by setting `enableManifestLists` to `true` when sending a POST request to the `/api/v0/repositories/{namespace}` endpoint. When enabled for a repository, any image that you push to an existing tag will be added to the list of manifests for that tag. +#### 2.5 -The above behavior and the field `enableManifestLists` will be removed in `v2.7`. Starting in `v2.7`, you can use the CLI command, `docker manifest` to [create and push a manifest list to any repository](./edge/engine/reference/commandline/manifest/). +Since `v2.5`, it has been possible for repository admins to enable manifest lists when [creating a repository via the API](./reference/dtr/2.5/api/). You accomplish this by setting `enableManifestLists` to `true` when sending a POST request to the `/api/v0/repositories/{namespace}` endpoint. When enabled for a repository, any image that you push to an existing tag will be added to the manifest list for that tag. + +#### 2.6 + +Manifest lists are enabled for tags by default on any repository. There is no need to enable manifest lists using uthe API. + +#### 2.7 + +The `v2.5` behavior and the `enableManifestLists` field will be removed in `v2.7`. Starting in `v2.7`, you can use the CLI command, `docker manifest` to [create and push a manifest list to any repository](./engine/reference/commandline/manifest/). From 506476573359275125ec49135a908167465abb68 Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Fri, 19 Oct 2018 08:09:29 -0600 Subject: [PATCH 135/222] Added more on verification. --- engine/security/trust/content_trust.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/engine/security/trust/content_trust.md b/engine/security/trust/content_trust.md index 0584489b6c..3e5cdb92d5 100644 --- a/engine/security/trust/content_trust.md +++ b/engine/security/trust/content_trust.md @@ -164,6 +164,15 @@ If translation or verification fails, the request or operation requiring the ima This can happen because the content trust server is not reachable, if the `allow-expired-trust-cache` is eanbled, or the the DCT metadata is used if the timestamp has not expired. +DCT checks against metadata, and this will prevent an image verification for happening twice when +using the `docker run` command. The `docker run` command first creates a container and starts it +immediately. + +DCT needs to verify the image because a container could have been created before a change to the +Content Trust configuration. As a result, DCT enforces the new configuration by applying it to +the old created container. Alternately, a container could have been created significantly earlier, +which means the trust data for it is no longer valid. In that case, DCT will re-verify the container. + Provided `skip-check-on-run` is not enabled, an initiated container's image will be re-validated against the cached metadata first. If the cached metadata has expired or is not available, the image will be validated using the image name, digest, or tag. From f5722330e06bbb8b5a32b75707efc6cd0b830505 Mon Sep 17 00:00:00 2001 From: Trapier Marshall <trapier.marshall@docker.com> Date: Fri, 19 Oct 2018 14:50:20 -0400 Subject: [PATCH 136/222] dtr push mirror: word agreement --- ee/dtr/user/promotion-policies/push-mirror.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ee/dtr/user/promotion-policies/push-mirror.md b/ee/dtr/user/promotion-policies/push-mirror.md index 7f13848027..1f0163a015 100644 --- a/ee/dtr/user/promotion-policies/push-mirror.md +++ b/ee/dtr/user/promotion-policies/push-mirror.md @@ -91,7 +91,7 @@ with the policy, it automatically gets promoted. When an image is pushed to another registry using a mirroring policy, scanning and signing data is not persisted in the destination repository. -If you have scanning enable for the destination repository, DTR is going to scan +If you have scanning enabled for the destination repository, DTR is going to scan the image pushed. If you want the image to be signed, you need to do it manually. ## Where to go next From d50e8141bb524b04c6e3fecb0e1d61235c2c78bf Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudezmt@users.noreply.github.com> Date: Fri, 19 Oct 2018 14:04:20 -0700 Subject: [PATCH 137/222] Update deprecation-notice.md Final edit based on sync-up with @caervs . --- ee/dtr/deprecation-notice.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/ee/dtr/deprecation-notice.md b/ee/dtr/deprecation-notice.md index c6c11c0d9d..08b43d69db 100644 --- a/ee/dtr/deprecation-notice.md +++ b/ee/dtr/deprecation-notice.md @@ -8,15 +8,11 @@ This document outlines the functionalities or components within DTR that will be ### Enable Manifest List via the API -#### 2.5 +#### 2.5 and 2.6 -Since `v2.5`, it has been possible for repository admins to enable manifest lists when [creating a repository via the API](./reference/dtr/2.5/api/). You accomplish this by setting `enableManifestLists` to `true` when sending a POST request to the `/api/v0/repositories/{namespace}` endpoint. When enabled for a repository, any image that you push to an existing tag will be added to the manifest list for that tag. - -#### 2.6 - -Manifest lists are enabled for tags by default on any repository. There is no need to enable manifest lists using uthe API. +Since `v2.5`, it has been possible for repository admins to autogenerate manifest lists when [creating a repository via the API](./reference/dtr/2.5/api/). You accomplish this by setting `enableManifestLists` to `true` when sending a POST request to the `/api/v0/repositories/{namespace}` endpoint. When enabled for a repository, any image that you push to an existing tag will be appended to the list of manifests for that tag. `enableManifestLists` is set to false by default, which means pushing a new image to an existing tag will overwrite the manifest entry for that tag. #### 2.7 -The `v2.5` behavior and the `enableManifestLists` field will be removed in `v2.7`. Starting in `v2.7`, you can use the CLI command, `docker manifest` to [create and push a manifest list to any repository](./engine/reference/commandline/manifest/). +The above behavior and the `enableManifestLists` field will be removed in `v2.7`. Starting in `v2.7`, you can use the CLI command, `docker manifest`, to [create and push a manifest list to any repository](./engine/reference/commandline/manifest/). From 2fc040689ee5b7b2d018d75a9532a118d1160cab Mon Sep 17 00:00:00 2001 From: milindchawre <milindchawre@gmail.com> Date: Sun, 21 Oct 2018 09:09:01 +0000 Subject: [PATCH 138/222] Fixes #37610 : Documentation changes for container hostname --- config/containers/container-networking.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/containers/container-networking.md b/config/containers/container-networking.md index bf27fdd2cb..45acb077ec 100644 --- a/config/containers/container-networking.md +++ b/config/containers/container-networking.md @@ -49,7 +49,7 @@ When you connect an existing container to a different network using `docker network connect`, you can use the `--ip` or `--ip6` flags on that command to specify the container's IP address on the additional network. -In the same way, a container's hostname defaults to be the container's name in +In the same way, a container's hostname defaults to be the container's ID in Docker. You can override the hostname using `--hostname`. When connecting to an existing network using `docker network connect`, you can use the `--alias` flag to specify an additional network alias for the container on that network. @@ -65,7 +65,7 @@ settings on a per-container basis. | `--dns` | The IP address of a DNS server. To specify multiple DNS servers, use multiple `--dns` flags. If the container cannot reach any of the IP addresses you specify, Google's public DNS server `8.8.8.8` is added, so that your container can resolve internet domains. | | `--dns-search` | A DNS search domain to search non-fully-qualified hostnames. To specify multiple DNS search prefixes, use multiple `--dns-search` flags. | | `--dns-opt` | A key-value pair representing a DNS option and its value. See your operating system's documentation for `resolv.conf` for valid options. | -| `--hostname` | The hostname a container uses for itself. Defaults to the container's name if not specified. | +| `--hostname` | The hostname a container uses for itself. Defaults to the container's ID if not specified. | ## Proxy server From 8a86c77bfd9d7c9960f4a405a921d4623d10ef92 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 22 Oct 2018 08:45:34 -0600 Subject: [PATCH 139/222] Update ce-ee-node-activate.md Incorporated @bermudezmt's fixes. --- engine/ce-ee-node-activate.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/engine/ce-ee-node-activate.md b/engine/ce-ee-node-activate.md index 12b0dd5655..02ffd9ce6a 100644 --- a/engine/ce-ee-node-activate.md +++ b/engine/ce-ee-node-activate.md @@ -8,20 +8,20 @@ title: CE-EE Node Activate > > This is beta content. It is not yet complete and should be considered a work in progress. This content is subject to change without notice. -The Docker Engine release `18.09` release introduces a new feature called CE-EE Node Activate, which allows a user to perform an in-place seamless activation of the Enterprise engine feature-set on an existing Community Edition (CE) node through the Docker command line. +The Docker Engine `18.09` release introduces a new feature called **CE-EE Node Activate**, which allows a user to perform an in-place seamless activation of the Enterprise engine feature set on an existing Community Edition (CE) node through the Docker command line. -CE-EE Node Activate will apply a license, and if you aren't already running the Enterprise engine, and switch the Docker engine to the enterprise engine binary. +CE-EE Node Activate will apply a license, and switch the Docker engine to the Enterprise engine binary. ## Requirements: -* The Docker Community Edition version must be 18.09 or higher. -* All of the Docker packages must be installed: docker-cli, docker-server, and containerd +* The Docker Community Edition (CE) version must be 18.09 or higher. +* All of the Docker packages must be installed: docker-cli, docker-server, and containerd. ## Limitations -* This feature is only supported on x86 Linux nodes -* Windows nodes are not currently supported -* Node level Engine activation between CE and EE is only supported in the same version of Docker Enterprise Engine for Docker -* Prior versions of Docker CE do not support this feature +* This feature is only supported on x86 Linux nodes. +* Windows nodes are not currently supported. +* Node-level Engine activation between CE and EE is only supported in the same version of Docker Enterprise Engine for Docker. +* Prior versions of Docker CE do not support this feature. ## Docker Engine 18.09 CE to EE Node Activation Process @@ -52,7 +52,7 @@ Server: 2. Log into the Docker engine from the command line. -**NOTE:** When the running the command `docker login`, the shell stores the credentials in the current users's home directory. For CentOS, the `sudo` command overwrites overwrites the $HOME environment variable. +**NOTE:** When the running the command `docker login`, the shell stores the credentials in the current user's home directory. For CentOS, the `sudo` command overwrites overwrites the $HOME environment variable. For Ubuntu or Debian: @@ -81,7 +81,7 @@ Login Succeeded 3. [Download your Docker Enterprise license](https://success.docker.com/article/where-is-my-docker-enterprise-edition-license) and distribute it to your Docker engines. -4. Activate the EE license. You must use sudo even if your user is part of the docker group. +4. Activate the EE license. You must use `sudo` even if your user is part of the docker group. ``` $ sudo docker engine activate --license ee-engine-license-1000-nodes.lic @@ -126,6 +126,6 @@ Server: **NOTE**: Your output may vary slightly from what is displayed on this page. -## Off-line CE-EE node activation +## Offline CE-EE node activation -For offline CE-EE node activation, you'll need to get the enterprise engine onto the system. The recommended model is to download the EE deb or rpm packages manually and copy them to the target systems. Afterward, download the license manually, and copy that license to the target systems. Use the `--license <path/to/license.file>` command line option to the activate command. +For offline CE-EE node activation, you'll need to get the Docker Enterprise Engine onto the system. The recommended model is to download the EE `.deb` or `.rpm` packages manually and copy them to the target systems. Afterward, download the license manually, and copy that license to the target systems. Use the `--license <path/to/license.file>` command line option to the activate command. From b50b063a6773657053a01f0523340ecb83ad4752 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 22 Oct 2018 11:25:41 -0600 Subject: [PATCH 140/222] Update ce-ee-node-activate.md --- engine/ce-ee-node-activate.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/ce-ee-node-activate.md b/engine/ce-ee-node-activate.md index 02ffd9ce6a..b05f6ca8bc 100644 --- a/engine/ce-ee-node-activate.md +++ b/engine/ce-ee-node-activate.md @@ -52,7 +52,7 @@ Server: 2. Log into the Docker engine from the command line. -**NOTE:** When the running the command `docker login`, the shell stores the credentials in the current user's home directory. For CentOS, the `sudo` command overwrites overwrites the $HOME environment variable. +**NOTE:** When running the command `docker login`, the shell stores the credentials in the current user's home directory. For CentOS, the `sudo` command overwrites overwrites the $HOME environment variable. For Ubuntu or Debian: From 8f93d966e3a4f440d0531cb932b4d9e49ad6449f Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudez.mt@gmail.com> Date: Mon, 22 Oct 2018 10:29:58 -0700 Subject: [PATCH 141/222] Update NFS configuration page and DTR CLI install and reconfigure options to include NFS v4 additions --- .../admin/configure/external-storage/nfs.md | 9 +- reference/dtr/2.6/api/index.html | 16 +++ reference/dtr/2.6/api/main.js | 21 ++++ reference/dtr/2.6/api/swagger-ui-bundle.js | 105 ++++++++++++++++++ .../2.6/api/swagger-ui-standalone-preset.js | 21 ++++ reference/dtr/2.6/api/swagger-ui.css | 5 + reference/dtr/2.6/cli/backup.md | 54 +++++++++ reference/dtr/2.6/cli/destroy.md | 38 +++++++ reference/dtr/2.6/cli/emergency-repair.md | 55 +++++++++ reference/dtr/2.6/cli/images.md | 22 ++++ reference/dtr/2.6/cli/index.md | 36 ++++++ reference/dtr/2.6/cli/install.md | 65 +++++++++++ reference/dtr/2.6/cli/join.md | 40 +++++++ reference/dtr/2.6/cli/reconfigure.md | 56 ++++++++++ reference/dtr/2.6/cli/remove.md | 38 +++++++ reference/dtr/2.6/cli/restore.md | 70 ++++++++++++ reference/dtr/2.6/cli/upgrade.md | 34 ++++++ 17 files changed, 681 insertions(+), 4 deletions(-) create mode 100644 reference/dtr/2.6/api/index.html create mode 100644 reference/dtr/2.6/api/main.js create mode 100644 reference/dtr/2.6/api/swagger-ui-bundle.js create mode 100644 reference/dtr/2.6/api/swagger-ui-standalone-preset.js create mode 100644 reference/dtr/2.6/api/swagger-ui.css create mode 100644 reference/dtr/2.6/cli/backup.md create mode 100644 reference/dtr/2.6/cli/destroy.md create mode 100644 reference/dtr/2.6/cli/emergency-repair.md create mode 100644 reference/dtr/2.6/cli/images.md create mode 100644 reference/dtr/2.6/cli/index.md create mode 100644 reference/dtr/2.6/cli/install.md create mode 100644 reference/dtr/2.6/cli/join.md create mode 100644 reference/dtr/2.6/cli/reconfigure.md create mode 100644 reference/dtr/2.6/cli/remove.md create mode 100644 reference/dtr/2.6/cli/restore.md create mode 100644 reference/dtr/2.6/cli/upgrade.md diff --git a/ee/dtr/admin/configure/external-storage/nfs.md b/ee/dtr/admin/configure/external-storage/nfs.md index 49fcfc6467..4d87cb914f 100644 --- a/ee/dtr/admin/configure/external-storage/nfs.md +++ b/ee/dtr/admin/configure/external-storage/nfs.md @@ -36,7 +36,7 @@ docker run -it --rm {{ page.dtr_org }}/{{ page.dtr_repo }}:{{ dtr_version }} ins <other options> ``` -The NFS storage URL should be in the format `nfs://<nfs server>/<directory>`. +The NFS storage URL should be in the format `nfs://<nfs server>/<directory>`. If you're using **NFS v4**, you can specify additional options. See [docker/dtr install](../../../../../reference/dtr/2.6/cli/install/) for more details. When you join replicas to the DTR cluster, the replicas will pick up that configuration, so you don't need to specify it again. @@ -44,7 +44,8 @@ configuration, so you don't need to specify it again. ### Reconfigure DTR to use NFS If you're upgrading from a previous version of DTR and are already using -NFS you can continue using the same configurations. +NFS you can continue using the same configurations. If you want to use **NFS v4**, see [docker/dtr reconfigure](../../../../../reference/dtr/2.6/cli/reconfigure/) for more NFS options. + If you want to start using the new DTR built-in support for NFS you can reconfigure DTR: @@ -54,8 +55,8 @@ docker run -it --rm {{ page.dtr_org }}/{{ page.dtr_repo }}:{{ dtr_version }} rec --nfs-storage-url <nfs-storage-url> ``` -If you want to reconfigure DTR to stop using NFS storage, leave the option -in blank: +If you want to reconfigure DTR to stop using NFS storage, leave the `--nfs-storage-url` option +blank: ```bash docker run -it --rm {{ page.dtr_org }}/{{ page.dtr_repo }}:{{ dtr_version}} reconfigure \ diff --git a/reference/dtr/2.6/api/index.html b/reference/dtr/2.6/api/index.html new file mode 100644 index 0000000000..91abd52d94 --- /dev/null +++ b/reference/dtr/2.6/api/index.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="UTF-8"> + <title>Docker Trusted Registry API Documentation</title> + <link rel="stylesheet" type="text/css" href="./swagger-ui.css" > +</head> + +<body> + <div id="swagger-ui"></div> + <script src="./swagger-ui-bundle.js"> </script> + <script src="./swagger-ui-standalone-preset.js"> </script> + <script src="./main.js"> </script> +</body> + +</html> diff --git a/reference/dtr/2.6/api/main.js b/reference/dtr/2.6/api/main.js new file mode 100644 index 0000000000..3bb1091a50 --- /dev/null +++ b/reference/dtr/2.6/api/main.js @@ -0,0 +1,21 @@ +window.onload = function() { + + // Build a system + const ui = SwaggerUIBundle({ + spec: +{"swagger":"2.0","info":{"description":"Docker Trusted Registry has an experimental API that you can use to manage\nDTR repositories, permissions, and settings.\n\n**This API is experimental and subject to change, which could affect future\nbackwards compatibility.**\n\nYou can authenticate your requests by using an authentication token. In the\nDTR web UI, navigate to your user profile and choose **Access tokens** to\ncreate a new token. The authentication token issued will have the same\npermissions your user has.\n\nTo authenticate your requests, use HTTP basic authentication to pass the\nauthentication token to the DTR API. Here's an example:\n\n```\ncurl -sL -u {user}:{token} /api/v0/repositories\n```\n","title":"Docker Trusted Registry","version":"2.5.0"},"paths":{"/api/v0/accounts/language":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Get the chosen language","operationId":"GetLanguage","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Language"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Language"}}}}},"/api/v0/accounts/{namespace}":{"delete":{"description":"\n\t*Authorization:* Client must be authenticated as a system admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Removes a user or organization along with all repositories","operationId":"DeleteNamespace","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true}],"responses":{"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/accounts/{namespace}/repositories":{"delete":{"description":"\n\t*Authorization:* Client must be authenticated as a system admin, organization admin or user in question\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Removes all of a user or organization's repositories","operationId":"DeleteNamespaceRepositories","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true}],"responses":{"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/accounts/{namespace}/webhooks":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"List the webhook subscriptions for a namespace","operationId":"ListNamespaceWebhooks","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/accounts/{orgname}/teams/{teamname}/repositoryAccess":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who owns the organization the team is in or be a member of that team.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"List repository access grants for a team","operationId":"ListTeamRepoAccess","parameters":[{"type":"string","description":"organization account name","name":"orgname","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListTeamRepoAccess"}},"400":{"description":"the team does not belong to the organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListTeamRepoAccess"}}}}},"/api/v0/accounts/{username}/repositoryAccess/{namespace}/{reponame}":{"get":{"description":"\n\t*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Check a user's access to a repository","operationId":"GetUserRepoAccess","parameters":[{"type":"string","description":"user account name","name":"username","in":"path","required":true},{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.RepoUserAccess"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.RepoUserAccess"}}}}},"/api/v0/accounts/{username}/settings":{"get":{"description":"\n*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Check a user's settings","operationId":"GetUserSettings","parameters":[{"type":"string","description":"user account name","name":"username","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.UserSettings"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.UserSettings"}}}},"patch":{"description":"\n*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Update a user's settings","operationId":"UpdateUserSettings","parameters":[{"type":"string","description":"user account name","name":"username","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UserSettings"}}],"responses":{"200":{"description":"Successfully updated user settings."},"400":{"description":"INVALID_USER_SETTINGS: The submitted user settings change request contains invalid values."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully updated user settings."}}}},"/api/v0/action_configs":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"List all action configs","operationId":"ListActionConfigs","responses":{"200":{"description":"Success, list of action configs returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfigs"}},"default":{"description":"Success, list of action configs returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfigs"}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"Configure actions","operationId":"UpdateActionConfig","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.ActionConfigCreate"}}],"responses":{"202":{"description":"Success.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}}},"/api/v0/action_configs/{action}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"Get info about the actionConfig with the given action","operationId":"GetActionConfig","parameters":[{"type":"string","description":"name of action to fetch the config for","name":"action","in":"path","required":true}],"responses":{"200":{"description":"Success, action config info returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}},"default":{"description":"Success, action config info returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}},"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"Delete the action config. The defaults will be used.","operationId":"DeleteActionConfig","parameters":[{"type":"string","description":"the name of the action to delete the config for","name":"action","in":"path","required":true}],"responses":{"204":{"description":"Success, action config has been deleted."}}}},"/api/v0/api_tokens":{"get":{"description":"listUserAPITokensHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Get all API tokens associated with user. Get all tokens if no user is not specified","operationId":"GetAllAPITokensByUser","parameters":[{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"string","description":"Limit the API token results to a specific user","name":"username","in":"query"}],"responses":{"200":{"description":"Successfully retrieved API tokens","schema":{"type":"array","items":{"$ref":"#/definitions/responses.APIToken"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved API tokens","schema":{"type":"array","items":{"$ref":"#/definitions/responses.APIToken"}}}}},"post":{"description":"createAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Create a new API token","operationId":"CreateAnAPIToken","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateAPIToken"}},{"type":"string","description":"Limit the API token results to a specific user","name":"username","in":"query"}],"responses":{"200":{"description":"Successfully created API token","schema":{"$ref":"#/definitions/responses.NewAPIToken"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully created API token","schema":{"$ref":"#/definitions/responses.NewAPIToken"}}}},"delete":{"description":"cleanupAPITokenHleanupHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Mass deletion of API tokens from database based on user, time created, and/or generation method","operationId":"APITokenCleanup","parameters":[{"type":"string","description":"Limit the API token results to a specific user","name":"username","in":"query"},{"type":"string","description":"The date on which the token was last used","name":"usedbefore","in":"query"},{"type":"string","default":"auto","description":"The method by which the token was created","name":"generatedby","in":"query"}],"responses":{"200":{"description":"Successfully cleaned up API tokens"},"400":{"description":"INVALID_PARAMETERS: Unable to parse query parameters"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully cleaned up API tokens"}}}},"/api/v0/api_tokens/{hashedtoken}":{"get":{"description":"getAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Get an API token's information based on it's token id","operationId":"GetAnAPIToken","parameters":[{"type":"string","description":"API token id","name":"hashedtoken","in":"path","required":true}],"responses":{"200":{"description":"Successfully retrieved API token","schema":{"$ref":"#/definitions/responses.APIToken"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_API_TOKEN: An API token with the id name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved API token","schema":{"$ref":"#/definitions/responses.APIToken"}}}},"delete":{"description":"deleteAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Delete a specific API token","operationId":"DeleteAnAPIToken","parameters":[{"type":"string","description":"API token id","name":"hashedtoken","in":"path","required":true}],"responses":{"200":{"description":"Successfully deleted API token"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_API_TOKEN: An API token with the id name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully deleted API token"}}},"patch":{"description":"updateAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Update information about a specific API token","operationId":"UpdateAnAPIToken","parameters":[{"type":"string","description":"API token id","name":"hashedtoken","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateAPIToken"}}],"responses":{"200":{"description":"Successfully updated API tokens","schema":{"$ref":"#/definitions/responses.APIToken"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_API_TOKEN: An API token with the id name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully updated API tokens","schema":{"$ref":"#/definitions/responses.APIToken"}}}}},"/api/v0/content_caches":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"List all content caches","operationId":"ListContentCaches","responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ContentCache"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ContentCache"}}}}},"post":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"Create content cache","operationId":"CreateContentCache","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateContentCache"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.ContentCache"}},"400":{"description":"invalid content cache details"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/content_caches/{contentcacheuuid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"View details of a content cache","operationId":"GetContentCache","parameters":[{"type":"string","description":"uuid of content cache","name":"contentcacheuuid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ContentCache"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_CONTENT_CACHE: A content cache with the given uuid does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ContentCache"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"Remove a content cache","operationId":"DeleteContentCache","parameters":[{"type":"string","description":"uuid of content cache","name":"contentcacheuuid","in":"path","required":true}],"responses":{"204":{"description":"success or content cache does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_CONTENT_CACHE: A content cache with the given uuid does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/crons":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"List all crons","operationId":"ListCrons","responses":{"200":{"description":"Success, list of crons returned.","schema":{"$ref":"#/definitions/tmpresponses.Crons"}},"default":{"description":"Success, list of crons returned.","schema":{"$ref":"#/definitions/tmpresponses.Crons"}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"Create / update a periodic task","operationId":"UpdateCron","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.CronCreate"}}],"responses":{"202":{"description":"Success.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}}}}},"/api/v0/crons/{action}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"Get info about the cron with the given action","operationId":"GetCron","parameters":[{"type":"string","description":"action of the cron to fetch","name":"action","in":"path","required":true}],"responses":{"200":{"description":"Success, cron info returned.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}},"default":{"description":"Success, cron info returned.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}}}},"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"Delete the cron. Jobs created from it will not be canceled.","operationId":"DeleteCron","parameters":[{"type":"string","description":"action of cron to delete","name":"action","in":"path","required":true}],"responses":{"204":{"description":"Success, cron has been deleted."}}}},"/api/v0/events":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["events"],"summary":"Get Events","operationId":"GetEvents","parameters":[{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"string","name":"publishedBefore","in":"query"},{"type":"string","name":"publishedAfter","in":"query"},{"type":"string","description":"UUID of the user or organization that performed the event","name":"actorId","in":"query"},{"type":"string","description":"Type of events to filter by","name":"eventType","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Events"}},"400":{"description":"INVALID_PARAMETERS: Unable to parse query parameters"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Events"}}}}},"/api/v0/imagescan/layeroverride":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Gets a list of all the available overrides","operationId":"GetLayerVulnOverrides","responses":{"200":{"description":"Successfully set vulnerability override","schema":{"type":"array","items":{"$ref":"#/definitions/responses.LayerVulnOverride"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"500":{"description":"INTERNAL_ERROR: An internal server error occurred. Contact a system administrator for more information."},"default":{"description":"Successfully set vulnerability override","schema":{"type":"array","items":{"$ref":"#/definitions/responses.LayerVulnOverride"}}}}}},"/api/v0/imagescan/layeroverride/{layerid}":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Sets a vulnerability override for the given layer","operationId":"SetLayerVulnOverride","parameters":[{"type":"string","description":"layer id","name":"layerid","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.VulnOverrideOption"}}],"responses":{"200":{"description":"Successfully set vulnerability override"},"400":{"description":"INVALID_SETTINGS: The submitted settings change request contains invalid values."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_LAYER: A layer with the given sha does not exist in the repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"500":{"description":"INTERNAL_ERROR: An internal server error occurred. Contact a system administrator for more information."},"default":{"description":"Successfully set vulnerability override"}}}},"/api/v0/imagescan/layeroverride/{vulnerabilityid}":{"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Deletes a layer vulnerability override","operationId":"DeleteLayerVulnOverride","parameters":[{"type":"string","description":"vulnerability id","name":"vulnerabilityid","in":"path","required":true}],"responses":{"200":{"description":"OK"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_LAYER: A layer with the given sha does not exist in the repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK"}}}},"/api/v0/imagescan/repositories/{namespace}/{reponame}/{tag}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the summary info on a namespace/repo:tag","operationId":"GetSummaryByManifestDigest","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to include detailed summary results","name":"detailed","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"}],"responses":{"200":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.OldScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.OldScanSummary"}}}}}},"/api/v0/imagescan/scan":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Do a scan or a scan/check of all layers","operationId":"ScanAllLayers","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.ScanOptions"}}],"responses":{"200":{"description":"Successfully submitted all layers to jobrunner for scan/check."},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully submitted all layers to jobrunner for scan/check."}}}},"/api/v0/imagescan/scan/update":{"put":{"consumes":["multipart/form-data","application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Update the vulnerability database for security scanning","operationId":"UpdateVulnDB","parameters":[{"type":"file","description":"Upload file to init database","name":"file","in":"formData"},{"type":"boolean","default":false,"description":"Init or update vuln db in online mode.","name":"online","in":"query"}],"responses":{"200":{"description":"Successfully started to updated vulnerability DB."},"400":{"description":"SCANNING_DB_NOT_READY: Scanning DB is not ready"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully started to updated vulnerability DB."}}}},"/api/v0/imagescan/scan/{namespace}/{reponame}/{tag}/{os}/{arch}":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Do a scan or a scan/check of given image","operationId":"ScanImage","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"string","description":"operating system of the tag","name":"os","in":"path","required":true},{"type":"string","description":"architecture of the tag","name":"arch","in":"path","required":true}],"responses":{"200":{"description":"Successfully submitted image to jobrunner for scan/check."},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully submitted image to jobrunner for scan/check."}}}},"/api/v0/imagescan/scansummary/component/{component}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by component","operationId":"GetScannedImageByComponent","parameters":[{"type":"string","description":"component","name":"component","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/cve/{cve}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by CVE","operationId":"GetScannedImageByCVE","parameters":[{"type":"string","description":"cve","name":"cve","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/layer/{layerid}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by layer sha","operationId":"GetScannedImageByLayer","parameters":[{"type":"string","description":"layer id","name":"layerid","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_LAYER: A layer with the given sha does not exist in the repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/license/{license}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by license","operationId":"GetScannedImageByLicense","parameters":[{"type":"string","description":"license","name":"license","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/repositories/{namespace}/{reponame}/{tag}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the scan summary info on a namespace/repo:tag","operationId":"GetScanSummary","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"}],"responses":{"200":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/status":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the status and version of scanning service","operationId":"GetNautilusDBStatus","responses":{"200":{"description":"Successfully retrieved DB status","schema":{"$ref":"#/definitions/responses.NautilusStatus"}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved DB status","schema":{"$ref":"#/definitions/responses.NautilusStatus"}}}}},"/api/v0/index/autocomplete":{"get":{"description":"\nRepository results will be filtered to only those repositories visible to the client. Account results will not be filtered.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["index"],"summary":"Autocompletion for repositories and/or accounts","operationId":"Autocomplete","parameters":[{"type":"string","description":"Autocomplete query","name":"query","in":"query","required":true},{"type":"boolean","default":true,"description":"Whether to include repositories in the response","name":"includeRepositories","in":"query"},{"type":"boolean","default":true,"description":"Whether to include accounts in the response","name":"includeAccounts","in":"query"},{"type":"string","description":"Exact repository namespace to limit results to.","name":"namespace","in":"query"},{"type":"number","default":25,"name":"limit","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Autocomplete"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Autocomplete"}}}}},"/api/v0/index/dockersearch":{"get":{"description":"\nThis is used for the Docker CLI's docker search command. Repository results will be filtered to only those repositories visible to the client.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["index"],"summary":"Search Docker repositories","operationId":"Docker Search","parameters":[{"type":"string","description":"Search query","name":"q","in":"query","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.DockerSearch"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.DockerSearch"}}}}},"/api/v0/jobs":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"List all jobs ordered by most recently scheduled","operationId":"ListJobs","parameters":[{"type":"string","default":"any","description":"Filter jobs by action.","name":"action","in":"query"},{"type":"string","default":"any","description":"Filter jobs by worker ID.","name":"worker","in":"query"},{"type":"string","default":"any","description":"Show only jobs that are running.","name":"running","in":"query"},{"type":"integer","default":0,"description":"Return most recently scheduled jobs starting from this offset index.","name":"start","in":"query"},{"type":"integer","default":10,"description":"Maximum number of jobs per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, list of jobs returned.","schema":{"$ref":"#/definitions/tmpresponses.Jobs"}},"default":{"description":"Success, list of jobs returned.","schema":{"$ref":"#/definitions/tmpresponses.Jobs"}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Schedule a job to be run immediately","operationId":"CreateJob","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.JobSubmission"}}],"responses":{"202":{"description":"Success, job waiting to be claimed.","schema":{"$ref":"#/definitions/tmpresponses.Job"}}}}},"/api/v0/jobs/{jobID}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Get info about the job with the given ID","operationId":"GetJob","parameters":[{"type":"string","description":"ID of job to fetch","name":"jobID","in":"path","required":true}],"responses":{"200":{"description":"Success, job info returned.","schema":{"$ref":"#/definitions/tmpresponses.Job"}},"default":{"description":"Success, job info returned.","schema":{"$ref":"#/definitions/tmpresponses.Job"}}}},"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Signal this job's worker to cancel and delete the job","operationId":"DeleteJobs","parameters":[{"type":"string","description":"ID of job to delete","name":"jobID","in":"path","required":true}],"responses":{"204":{"description":"Success, job has been deleted."}}}},"/api/v0/jobs/{jobID}/cancel":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Signal this job's worker to cancel the job","operationId":"CancelJob","parameters":[{"type":"string","description":"ID of job to cancel","name":"jobID","in":"path","required":true}],"responses":{"204":{"description":"Success, job has been canceled."}}}},"/api/v0/jobs/{jobID}/logs":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Retrieve logs for this job from its worker","operationId":"GetJobLogs","parameters":[{"type":"string","description":"ID of job whose logs to retrieve","name":"jobID","in":"path","required":true},{"type":"boolean","default":false,"description":"t/f: stream new logs","name":"stream","in":"query"},{"type":"integer","default":0,"description":"Line number to start from","name":"offset","in":"query"},{"type":"integer","default":0,"description":"Number of lines to return if not streaming","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, job's logs returned.","schema":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.JobLog"}}},"default":{"description":"Success, job's logs returned.","schema":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.JobLog"}}}}}},"/api/v0/meta/cluster_status":{"get":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get cluster status","operationId":"GetClusterStatus","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ClusterStatus"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ClusterStatus"}}}}},"/api/v0/meta/features":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get features","operationId":"GetFeatures","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Features"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Features"}}}}},"/api/v0/meta/settings":{"get":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get settings","operationId":"GetSettings","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Settings"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Settings"}}}},"post":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Update settings","operationId":"UpdateSettings","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Settings"}}],"responses":{"202":{"description":"success"},"400":{"description":"INVALID_SETTINGS: The submitted settings change request contains invalid values."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/remote/registry":{"post":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system. Credentials provided in the request body must be for an active user in the remote system.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["remote"],"summary":"Create a check for connection status of remote registry","operationId":"CreateRemoteRegistryCheck","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateRemoteRegistryCheck"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.RemoteRegistryCheck"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system. Results will be filtered to only those repositories visible to the client.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List all repositories","operationId":"ListRepositories","parameters":[{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}}}}},"/api/v0/repositories/scan/toggle":{"post":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" access to the repository\n(i.e., user owns the repo or is a member of a team with \"admin\" level access to the organization\"s repository).\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Toggles scan on push for all repositories","operationId":"ToggleAllRepositoriesScanOnPush","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.ToggleScanOnPush"}}],"responses":{"200":{"description":"Successfully toggled scan on push for all repositories."},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully toggled scan on push for all repositories."}}}},"/api/v0/repositories/{namespace}":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system. Results will be filtered to only those repositories visible to the client.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List repositories in a namespace","operationId":"ListNamespaceRepositories","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}}}},"post":{"description":"\n*Authorization:* Client must be authenticated as a user who has admin access to the\nrepository namespace (i.e., user owns the repo or is a member of a team with\n\"admin\" level access to the organization's namespace of repositories).\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create repository","operationId":"CreateRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateRepo"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.Repository"}},"400":{"description":"REPOSITORY_EXISTS: A repository with the same name already exists."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"View details of a repository","operationId":"GetRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" access to the repository\n(i.e., user owns the repo or is a member of a team with \"admin\" level access to the organization\"s repository).\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Remove a repository","operationId":"DeleteRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"}],"responses":{"204":{"description":"success or repository does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}},"patch":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" access to the repository\n(i.e., user owns the repo or is a member of a team with \"admin\" level access to the organization\"s repository).\n\nNote that a repository cannot be renamed this way.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Update details of a repository","operationId":"PatchRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateRepo"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}},"400":{"description":"INVALID_REPOSITORY_VISIBILITY: The visibility value of the repository is invalid."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}}}}},"/api/v0/repositories/{namespace}/{reponame}/manifests":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the available manifests for a repository","operationId":"ListRepoManifests","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Manifest"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Manifest"}}}}}},"/api/v0/repositories/{namespace}/{reponame}/manifests/{reference}":{"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"write\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Delete a manifest for a repository","operationId":"DeleteRepoManifest","deprecated":true,"parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"digest or tag for an image manifest","name":"reference","in":"path","required":true}],"responses":{"204":{"description":"success"},"400":{"description":"INVALID_DIGEST: The given digest is invalid."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_MANIFEST: A manifest with the given reference does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pollMirroringPolicies":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the poll mirroring policies for a repository","operationId":"ListRepoPollMirroringPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}}}},"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create a poll mirroring policy for a repository","operationId":"CreateRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePollMirroringPolicy"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_POLL_MIRRORING_POLICY: The given poll mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pollMirroringPolicies/{pollmirroringpolicyid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific poll mirroring policy for a repository","operationId":"GetRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"poll mirroring policy id","name":"pollmirroringpolicyid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_POLL_MIRRORING_POLICY: A poll mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Updates a specific poll mirroring policy for a repository","operationId":"UpdateRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"poll mirroring policy id","name":"pollmirroringpolicyid","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdatePollMirroringPolicy"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_POLL_MIRRORING_POLICY: The given poll mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a specific poll mirroring policy for a repository","operationId":"DeleteRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"poll mirroring policy id","name":"pollmirroringpolicyid","in":"path","required":true}],"responses":{"204":{"description":"success or poll mirroring policy does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_POLL_MIRRORING_POLICY: A poll mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/promotionPolicies":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the source or target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the promotion policies for a repository","operationId":"ListRepoPromotionPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to list promotion policies for a repository as a source or destination.","name":"source","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PromotionPolicy"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PromotionPolicy"}}}}},"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the source and target repository.\nRules for the policy can be on the following fields and their respective operators:\n- \"tag\"\n\t- \"eq\": equals\n\t- \"sw\": starts with\n\t- \"ew\": ends with\n\t- \"c\": contains\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"license.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"package.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"vulnerability_all\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_critical\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_major\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_minor\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n\nThe tag template is used to rename the tag in the target repository. The\nfollowing symbols are allowed:\n- \"%n\": The tag to promote (e.g. 1, 4.5, latest)\n- \"%A\": Day of the week (e.g. Sunday, Monday)\n- \"%a\": Day of the week, abbreviated (e.g. Sun, Mon , Tue)\n- \"%w\": Day of the week, as a number (e.g. 0, 1, 6)\n- \"%d\": Number for the day of the month (e.g. 01, 15, 31)\n- \"%B\": Month (e.g. January, December)\n- \"%b\": Month, abbreviated (e.g. Jan, Jun, Dec)\n- \"%m\": Month, as a number (e.g. 01, 06, 12)\n- \"%Y\": Year (e.g. 1999, 2015, 2048)\n- \"%y\": Year, two digits (e.g. 99, 15, 48)\n- \"%H\": Hour, in 24 hour format (e.g. 00, 12, 23)\n- \"%I\": Hour, in 12 hour format (e.g. 01, 10, 10)\n- \"%p\": Period of the day (e.g. AM, PM)\n- \"%M\": Minute (e.g. 00, 10, 59)\n- \"%S\": Second (e.g. 00, 10, 59)\n- \"%f\": Microsecond (e.g. 000000, 999999)\n- \"%Z\": Name for the timezone (e.g. UTC, PST, EST)\n- \"%j\": Day of the year (e.g. 001, 200, 366)\n- \"%W\": Week of the year (e.g. 00, 10 , 53)\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create a promotion policy for a repository","operationId":"CreateRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePromotionPolicy"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}},"400":{"description":"REQUIRES_ADVANCED_LICENSE: This feature requires Enterprise Edition Advanced"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PROMOTION_POLICY: The given promotion policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/promotionPolicies/{promotionpolicyid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the source or target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific promotion policy for a repository","operationId":"GetRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"promotion policy id","name":"promotionpolicyid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PROMOTION_POLICY: A promotion policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the source and target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Updates a specific promotion policy for a repository","operationId":"UpdateRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"promotion policy id","name":"promotionpolicyid","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdatePromotionPolicy"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}},"400":{"description":"REQUIRES_ADVANCED_LICENSE: This feature requires Enterprise Edition Advanced"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PROMOTION_POLICY: The given promotion policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the source or target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a specific promotion policy for a repository","operationId":"DeleteRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"promotion policy id","name":"promotionpolicyid","in":"path","required":true}],"responses":{"204":{"description":"success or promotion policy does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PROMOTION_POLICY: A promotion policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pushMirroringPolicies":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the push mirroring policies for a repository","operationId":"ListRepoPushMirroringPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}}}},"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.\nRules for the policy can be on the following fields and their respective operators:\n- \"tag\"\n\t- \"eq\": equals\n\t- \"sw\": starts with\n\t- \"ew\": ends with\n\t- \"c\": contains\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"license.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"package.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"vulnerability_all\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_critical\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_major\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_minor\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n\nThe tag template is used to rename the tag in the target repository. The\nfollowing symbols are allowed:\n- \"%n\": The tag to promote (e.g. 1, 4.5, latest)\n- \"%A\": Day of the week (e.g. Sunday, Monday)\n- \"%a\": Day of the week, abbreviated (e.g. Sun, Mon , Tue)\n- \"%w\": Day of the week, as a number (e.g. 0, 1, 6)\n- \"%d\": Number for the day of the month (e.g. 01, 15, 31)\n- \"%B\": Month (e.g. January, December)\n- \"%b\": Month, abbreviated (e.g. Jan, Jun, Dec)\n- \"%m\": Month, as a number (e.g. 01, 06, 12)\n- \"%Y\": Year (e.g. 1999, 2015, 2048)\n- \"%y\": Year, two digits (e.g. 99, 15, 48)\n- \"%H\": Hour, in 24 hour format (e.g. 00, 12, 23)\n- \"%I\": Hour, in 12 hour format (e.g. 01, 10, 10)\n- \"%p\": Period of the day (e.g. AM, PM)\n- \"%M\": Minute (e.g. 00, 10, 59)\n- \"%S\": Second (e.g. 00, 10, 59)\n- \"%f\": Microsecond (e.g. 000000, 999999)\n- \"%Z\": Name for the timezone (e.g. UTC, PST, EST)\n- \"%j\": Day of the year (e.g. 001, 200, 366)\n- \"%W\": Week of the year (e.g. 00, 10 , 53)\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create a push mirroring policy for a repository","operationId":"CreateRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePushMirroringPolicy"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PUSH_MIRRORING_POLICY: The given push mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pushMirroringPolicies/{pushmirroringpolicyid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific push mirroring policy for a repository","operationId":"GetRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"push mirroring policy id","name":"pushmirroringpolicyid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PUSH_MIRRORING_POLICY: A push mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Updates a specific push mirroring policy for a repository","operationId":"UpdateRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"push mirroring policy id","name":"pushmirroringpolicyid","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdatePushMirroringPolicy"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PUSH_MIRRORING_POLICY: The given push mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a specific push mirroring policy for a repository","operationId":"DeleteRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"push mirroring policy id","name":"pushmirroringpolicyid","in":"path","required":true}],"responses":{"204":{"description":"success or push mirroring policy does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PUSH_MIRRORING_POLICY: A push mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the available tags for a repository","operationId":"ListRepoTags","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the manifest for each tag","name":"includeManifests","in":"query"},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific tag for a repository","operationId":"ListRepoTag","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"write\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Delete a tag for a repository","operationId":"DeleteRepoTag","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"}],"responses":{"204":{"description":"success"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"409":{"description":"TAG_IN_NOTARY: This tag is in notary and can't be deleted until it is removed from notary"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}/promotion":{"post":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"read\" level access to the source repository and \"write\" level access to the target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Promotes a specific tag for a repository","operationId":"CreateRepoTagPromotion","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePromotion"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.Promotion"}},"400":{"description":"INVALID_TAG_NAME: The given tag name is either too long or contains illegal characters."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}/pushMirroring":{"post":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"read\" level access to the local repository and \"write\" level access to the remote repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Mirrors a local tag by pushing to a remote repository","operationId":"CreateRepoTagPushMirroring","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateMirroring"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.Mirroring"}},"400":{"description":"INVALID_TAG_NAME: The given tag name is either too long or contains illegal characters."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/teamAccess":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List teams granted access to an organization-owned repository","operationId":"ListRepoTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}}}}},"/api/v0/repositories/{namespace}/{reponame}/teamAccess/{teamname}":{"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Set a team's access to an orgnization-owned repository","operationId":"GrantRepoTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Access"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}},"400":{"description":"the team does not belong to the organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Revoke a team's acccess to an organization-owned repository","operationId":"RevokeRepoTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true}],"responses":{"204":{"description":"success or the team is not in the access list or there is no such team in the organization"},"400":{"description":"the repository is not owned by an organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/webhooks":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the webhook subscriptions for a repository","operationId":"ListRepoWebhooks","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/repositoryNamespaces/{namespace}/teamAccess":{"get":{"description":"\n*Authorization:* Client must be authenticated as an admin or a member of the organization.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"List teams granted access to an organization-owned namespace of repositories","operationId":"ListRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoNamespaceTeamAccess"}},"400":{"description":"the namespace is not owned by an organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoNamespaceTeamAccess"}}}}},"/api/v0/repositoryNamespaces/{namespace}/teamAccess/{teamname}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level\naccess to the namespace or is a member of the team.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"Get a team's granted access to an organization-owned namespace of repositories","operationId":"GetRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_NAMESPACE_TEAM_ACCESS: An access grant for the given team in the given namespace does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the namespace.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"Set a team's access to an organization-owned namespace of repositories","operationId":"GrantRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Access"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}},"400":{"description":"the team does not belong to the owning organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the namespace.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"Revoke a team's access to an organization-owned namespace of repositories","operationId":"RevokeRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true}],"responses":{"204":{"description":"success or the team does not exist in the access list or there is no such team in the organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/webhooks":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"List Webhooks","operationId":"ListWebhooks","parameters":[{"type":"string","default":"any","description":"The type of webhook to list","name":"webhookType","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Create Webhook","operationId":"CreateWebhook","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Webhook"}}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/webhooks/test":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Test Webhook","operationId":"TestWebhook","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.WebhookTestPayload"}}],"responses":{"200":{"description":"OK"},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK"}}}},"/api/v0/webhooks/update":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Update Webhook","operationId":"UpdateWebhook","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.WebhookUpdate"}}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/webhooks/{webhook}":{"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Delete Webhook","operationId":"DeleteWebhook","parameters":[{"type":"string","description":"webhook subscription ID","name":"webhook","in":"path","required":true}],"responses":{"200":{"description":"OK"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_WEBHOOK: A webhook subscription with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK"}}}},"/api/v0/workers":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["workers"],"summary":"List all workers","operationId":"ListWorkers","responses":{"200":{"description":"Success, list of workers returned.","schema":{"$ref":"#/definitions/tmpresponses.Workers"}},"default":{"description":"Success, list of workers returned.","schema":{"$ref":"#/definitions/tmpresponses.Workers"}}}}},"/api/v0/workers/{id}/capacity":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["workers"],"summary":"Update the capacity for a worker","operationId":"UpdateWorkerCapacity","parameters":[{"type":"string","description":"ID of worker to update","name":"id","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.UpdateWorkerCapacity"}}],"responses":{"202":{"description":"Success."}}}}},"definitions":{"forms.Access":{"required":["accessLevel"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]}}},"forms.CreateAPIToken":{"properties":{"tokenLabel":{"type":"string"}}},"forms.CreateContentCache":{"required":["name","host"],"properties":{"host":{"type":"string"},"name":{"type":"string"}}},"forms.CreateMirroring":{"required":["remoteHost","remoteRepository","remoteCA","skipTLSVerification","remoteTag","username","password","authToken"],"properties":{"authToken":{"type":"string"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"remoteTag":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.CreatePollMirroringPolicy":{"required":["remoteHost","remoteRepository","remoteCA","skipTLSVerification","enabled","username","password","authToken"],"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.CreatePromotion":{"required":["targetRepository","targetTag"],"properties":{"targetRepository":{"type":"string"},"targetTag":{"type":"string"}}},"forms.CreatePromotionPolicy":{"required":["rules","targetRepository","tagTemplate","enabled"],"properties":{"enabled":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"tagTemplate":{"type":"string"},"targetRepository":{"type":"string"}}},"forms.CreatePushMirroringPolicy":{"required":["rules","remoteHost","remoteRepository","remoteCA","skipTLSVerification","tagTemplate","enabled","username","password","authToken"],"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"skipTLSVerification":{"type":"boolean"},"tagTemplate":{"type":"string"},"username":{"type":"string"}}},"forms.CreateRemoteRegistryCheck":{"required":["remoteHost","remoteRepository","remoteCA","skipTLSVerification","username","password","authToken"],"properties":{"authToken":{"type":"string"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.CreateRepo":{"required":["name","shortDescription","longDescription","scanOnPush","immutableTags","enableManifestLists"],"properties":{"enableManifestLists":{"type":"boolean"},"immutableTags":{"type":"boolean"},"longDescription":{"type":"string"},"name":{"type":"string"},"scanOnPush":{"type":"boolean"},"shortDescription":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]}}},"forms.EmptyForm":{},"forms.ScanOptions":{"required":["scan","check"],"properties":{"check":{"type":"boolean"},"scan":{"type":"boolean"}}},"forms.Settings":{"required":["dtrHost","sso","createRepositoryOnPush","reportAnalytics","anonymizeAnalytics","disableBackupWarning","webTLSCert","webTLSKey","webTLSCA","scanningEnabled","scanningSyncOnline","scanningEnableAutoRecheck","jobHistoryToKeep"],"properties":{"anonymizeAnalytics":{"type":"boolean"},"createRepositoryOnPush":{"type":"boolean"},"disableBackupWarning":{"type":"boolean"},"dtrHost":{"type":"string"},"jobHistoryToKeep":{"type":"integer"},"reportAnalytics":{"type":"boolean"},"scanningEnableAutoRecheck":{"type":"boolean"},"scanningEnabled":{"type":"boolean"},"scanningSyncOnline":{"type":"boolean"},"sso":{"type":"boolean"},"webTLSCA":{"type":"string"},"webTLSCert":{"type":"string"},"webTLSKey":{"type":"string"}}},"forms.ToggleScanOnPush":{"required":["scanOnPush"],"properties":{"scanOnPush":{"type":"boolean"}}},"forms.UpdateAPIToken":{"properties":{"isActive":{"type":"boolean"},"tokenLabel":{"type":"string"}}},"forms.UpdatePollMirroringPolicy":{"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.UpdatePromotionPolicy":{"properties":{"enabled":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"tagTemplate":{"type":"string"},"targetRepository":{"type":"string"}}},"forms.UpdatePushMirroringPolicy":{"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"skipTLSVerification":{"type":"boolean"},"tagTemplate":{"type":"string"},"username":{"type":"string"}}},"forms.UpdateRepo":{"required":["immutableTags"],"properties":{"enableManifestLists":{"type":"boolean"},"immutableTags":{"type":"boolean"},"longDescription":{"type":"string"},"scanOnPush":{"type":"boolean"},"shortDescription":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]}}},"forms.UserSettings":{"properties":{"contentCacheUUID":{"type":"string"}}},"forms.VulnOverrideOption":{"required":["component","componentVersion","cve","notes"],"properties":{"component":{"type":"string"},"componentVersion":{"type":"string"},"cve":{"type":"string"},"notes":{"type":"string"}}},"forms.Webhook":{"required":["endpoint"],"properties":{"endpoint":{"type":"string"},"key":{"type":"string"},"type":{"type":"string","enum":["TAG_PUSH","TAG_DELETE","PROMOTION","PUSH_MIRRORING","POLL_MIRRORING","MANIFEST_PUSH","MANIFEST_DELETE","REPO_EVENT","SCAN_COMPLETED","SCAN_FAILED","SCANNER_UPDATE_COMPLETED"]}}},"forms.WebhookTestPayload":{"required":["type","endpoint"],"properties":{"endpoint":{"type":"string"},"type":{"type":"string"}}},"forms.WebhookUpdate":{"required":["id","inactive"],"properties":{"id":{"type":"string"},"inactive":{"type":"boolean"}}},"responses.APIToken":{"required":["hashedToken","tokenLabel","isActive","lastUsed","createdAt","generatedBy","creatorUa"],"properties":{"createdAt":{"type":"string","format":"date-time"},"creatorUa":{"type":"string"},"generatedBy":{"type":"string"},"hashedToken":{"type":"string"},"isActive":{"type":"boolean"},"lastUsed":{"type":"string","format":"date-time"},"tokenLabel":{"type":"string"}}},"responses.Account":{"required":["name","id","fullName","isOrg","isImported"],"properties":{"fullName":{"description":"Full Name of the account","type":"string"},"id":{"description":"ID of the account","type":"string"},"isActive":{"description":"Whether the user is active and can login (users only)","type":"boolean"},"isAdmin":{"description":"Whether the user is a system admin (users only)","type":"boolean"},"isImported":{"type":"boolean"},"isOrg":{"description":"Whether the account is an organization (or user)","type":"boolean"},"membersCount":{"description":"The number of members of the organization","type":"integer","format":"int32"},"name":{"description":"Name of the account","type":"string"}}},"responses.Autocomplete":{"properties":{"accountResults":{"type":"array","items":{"$ref":"#/definitions/responses.Account"}},"repositoryResults":{"type":"array","items":{"$ref":"#/definitions/responses.Repository"}}}},"responses.ClusterStatus":{"required":["rethink_system_tables","replica_health","replica_timestamp","replica_readonly","gc_lock_holder"],"properties":{"gc_lock_holder":{"type":"string"},"replica_health":{"type":"object"},"replica_readonly":{"type":"object"},"replica_timestamp":{"type":"object"},"rethink_system_tables":{"type":"object"}}},"responses.Component":{"required":["component","version","vulns","fullpath"],"properties":{"component":{"type":"string"},"fullpath":{"type":"array","items":{"type":"string"}},"license":{"$ref":"#/definitions/responses.License"},"version":{"type":"string"},"vulns":{"type":"array","items":{"$ref":"#/definitions/responses.VulnerabilityDetails"}}}},"responses.ContentCache":{"required":["id","name","host"],"properties":{"host":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}}},"responses.DetailedSummary":{"required":["sha256sum"],"properties":{"components":{"type":"array","items":{"$ref":"#/definitions/responses.Component"}},"sha256sum":{"type":"string"}}},"responses.DockerRepository":{"required":["description","is_official","is_trusted","name","star_count"],"properties":{"description":{"type":"string"},"is_official":{"type":"boolean"},"is_trusted":{"type":"boolean"},"name":{"type":"string"},"star_count":{"type":"integer","format":"int32"}}},"responses.DockerSearch":{"required":["num_results","query","results"],"properties":{"num_results":{"type":"integer","format":"int32"},"query":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/definitions/responses.DockerRepository"}}}},"responses.DockerfileLine":{"required":["line","layerDigest","size","isEmpty"],"properties":{"isEmpty":{"type":"boolean"},"layerDigest":{"type":"string"},"line":{"type":"string"},"mediaType":{"type":"string"},"size":{"type":"integer","format":"int64"},"urls":{"type":"array","items":{"type":"string"}}}},"responses.Events":{"required":["events"],"properties":{"events":{"type":"array","items":{"$ref":"#/definitions/schema.Event"}}}},"responses.Features":{"required":["scanningEnabled","scanningLicensed","promotionLicensed","mirroringLicensed","metadataStoreOptedIn","onlineGCEnabled","db_version","ucpHost"],"properties":{"db_version":{"type":"integer","format":"int32"},"metadataStoreOptedIn":{"type":"boolean"},"mirroringLicensed":{"type":"boolean"},"onlineGCEnabled":{"type":"boolean"},"promotionLicensed":{"type":"boolean"},"scanningEnabled":{"type":"boolean"},"scanningLicensed":{"type":"boolean"},"ucpHost":{"type":"string"}}},"responses.Language":{"required":["language"],"properties":{"language":{"type":"string"}}},"responses.LayerVulnOverride":{"required":["pk","digest","component","componentVersion","cve","notes"],"properties":{"component":{"type":"string"},"componentVersion":{"type":"string"},"cve":{"type":"string"},"digest":{"type":"string"},"notes":{"type":"string"},"pk":{"type":"string"}}},"responses.License":{"required":["name","type","url"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}}},"responses.ListRepoNamespaceTeamAccess":{"required":["namespace","teamAccessList"],"properties":{"namespace":{"type":"string"},"teamAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.TeamAccess"}}}},"responses.ListRepoTeamAccess":{"required":["repository","teamAccessList"],"properties":{"repository":{"$ref":"#/definitions/responses.Repository"},"teamAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.TeamAccess"}}}},"responses.ListTeamRepoAccess":{"required":["team","repositoryAccessList"],"properties":{"repositoryAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.RepoAccess"}},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.Manifest":{"required":["digest"],"properties":{"architecture":{"type":"string"},"author":{"type":"string"},"configDigest":{"type":"string"},"configMediaType":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"digest":{"type":"string"},"dockerfile":{"type":"array","items":{"$ref":"#/definitions/responses.DockerfileLine"}},"mediaType":{"type":"string"},"os":{"type":"string"},"osVersion":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"responses.Mirroring":{"required":["mirroringPolicyID","digest","remoteRepository","remoteTag"],"properties":{"digest":{"type":"string"},"mirroringPolicyID":{"type":"string"},"remoteRepository":{"type":"string"},"remoteTag":{"type":"string"}}},"responses.NamespaceTeamAccess":{"required":["accessLevel","team","namespace"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"namespace":{"type":"string"},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.NautilusStatus":{"required":["state","scanner_version","scannerUpdatedAt","db_version","db_updated_at","lastDBUpdateFailed","lastVulnOverridesDBUpdateFailed"],"properties":{"db_updated_at":{"type":"string","format":"date-time"},"db_version":{"type":"integer","format":"int32"},"lastDBUpdateFailed":{"type":"boolean"},"lastVulnOverridesDBUpdateFailed":{"type":"boolean"},"replicas":{"type":"object"},"scannerUpdatedAt":{"type":"string","format":"date-time"},"scanner_version":{"type":"integer","format":"int32"},"state":{"type":"integer","format":"int32"}}},"responses.NewAPIToken":{"required":["token","hashedToken","tokenLabel","isActive","lastUsed","createdAt","generatedBy","creatorUa"],"properties":{"createdAt":{"type":"string","format":"date-time"},"creatorUa":{"type":"string"},"generatedBy":{"type":"string"},"hashedToken":{"type":"string"},"isActive":{"type":"boolean"},"lastUsed":{"type":"string","format":"date-time"},"token":{"type":"string"},"tokenLabel":{"type":"string"}}},"responses.Note":{"required":["reason","type"],"properties":{"reason":{"type":"string"},"type":{"type":"string"}}},"responses.OldScanSummary":{"required":["namespace","reponame","tag","critical","major","minor","last_scan_status","check_completed_at","should_rescan","has_foreign_layers"],"properties":{"check_completed_at":{"type":"string","format":"date-time"},"critical":{"type":"integer","format":"int32"},"has_foreign_layers":{"type":"boolean"},"last_scan_status":{"type":"integer","format":"int32"},"layer_details":{"type":"array","items":{"$ref":"#/definitions/responses.DetailedSummary"}},"major":{"type":"integer","format":"int32"},"minor":{"type":"integer","format":"int32"},"namespace":{"type":"string"},"reponame":{"type":"string"},"should_rescan":{"type":"boolean"},"tag":{"type":"string"}}},"responses.PollMirroringPolicy":{"required":["id","username","localRepository","remoteHost","remoteRepository","remoteCA","skipTLSVerification","enabled","lastMirroredAt","lastStatus"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastMirroredAt":{"type":"string"},"lastStatus":{"$ref":"#/definitions/schema.MirroringStatus"},"localRepository":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"responses.Promotion":{"required":["promotionPolicyID","string","sourceRepository","sourceTag"],"properties":{"promotionPolicyID":{"type":"string"},"sourceRepository":{"type":"string"},"sourceTag":{"type":"string"},"string":{"type":"string"}}},"responses.PromotionPolicy":{"required":["id","rules","sourceRepository","targetRepository","tagTemplate","enabled","lastPromotedAt"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastPromotedAt":{"type":"string","format":"date-time"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"sourceRepository":{"type":"string"},"tagTemplate":{"type":"string"},"targetRepository":{"type":"string"}}},"responses.PushMirroringPolicy":{"required":["id","rules","username","localRepository","remoteHost","remoteRepository","remoteCA","skipTLSVerification","tagTemplate","enabled","lastMirroredAt","lastStatus"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastMirroredAt":{"type":"string"},"lastStatus":{"$ref":"#/definitions/schema.MirroringStatus"},"localRepository":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"skipTLSVerification":{"type":"boolean"},"tagTemplate":{"type":"string"},"username":{"type":"string"}}},"responses.RemoteRegistryCheck":{"required":["registryType","accessLevel"],"properties":{"accessLevel":{"type":"string"},"registryType":{"type":"string"}}},"responses.RepoAccess":{"required":["accessLevel","repository"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"repository":{"$ref":"#/definitions/responses.Repository"}}},"responses.RepoUserAccess":{"required":["accessLevel","user","repository"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"repository":{"$ref":"#/definitions/responses.Repository"},"user":{"$ref":"#/definitions/responses.Account"}}},"responses.Repositories":{"required":["repositories"],"properties":{"repositories":{"type":"array","items":{"$ref":"#/definitions/responses.Repository"}}}},"responses.Repository":{"required":["id","namespace","namespaceType","name","shortDescription","visibility","scanOnPush","immutableTags","enableManifestLists","pulls","pushes"],"properties":{"enableManifestLists":{"type":"boolean"},"id":{"type":"string"},"immutableTags":{"type":"boolean"},"longDescription":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"namespaceType":{"type":"string","enum":["user","organization"]},"pulls":{"type":"integer","format":"integer"},"pushes":{"type":"integer","format":"integer"},"scanOnPush":{"type":"boolean"},"shortDescription":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]}}},"responses.ScanSummary":{"required":["scannedImage","shouldRescan"],"properties":{"scanStatus":{"type":"integer","format":"int32"},"scannedImage":{"$ref":"#/definitions/schema.ScannedImage"},"shouldRescan":{"type":"boolean"}}},"responses.Settings":{"required":["dtrHost","sso","createRepositoryOnPush","replicaSettings","httpProxy","httpsProxy","noProxy","reportAnalytics","anonymizeAnalytics","disableBackupWarning","logProtocol","logHost","logLevel","webTLSCert","webTLSCA","replicaID","scanningEnabled","scanningSyncOnline","scanningEnableAutoRecheck","jobHistoryToKeep","storageVolume","nfsHost","nfsPath"],"properties":{"anonymizeAnalytics":{"type":"boolean"},"createRepositoryOnPush":{"type":"boolean"},"disableBackupWarning":{"type":"boolean"},"dtrHost":{"type":"string"},"httpProxy":{"type":"string"},"httpsProxy":{"type":"string"},"jobHistoryToKeep":{"type":"integer"},"logHost":{"type":"string"},"logLevel":{"type":"string"},"logProtocol":{"type":"string"},"nfsHost":{"type":"string"},"nfsPath":{"type":"string"},"noProxy":{"type":"string"},"replicaID":{"type":"string"},"replicaSettings":{"type":"object"},"reportAnalytics":{"type":"boolean"},"scanningEnableAutoRecheck":{"type":"boolean"},"scanningEnabled":{"type":"boolean"},"scanningSyncOnline":{"type":"boolean"},"sso":{"type":"boolean"},"storageVolume":{"type":"string"},"webTLSCA":{"type":"string"},"webTLSCert":{"type":"string"}}},"responses.Tag":{"required":["name","digest","author","updatedAt","createdAt","hashMismatch","inNotary","manifest","licenses","components"],"properties":{"author":{"type":"string"},"components":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerComponent"}},"createdAt":{"type":"string","format":"date-time"},"digest":{"type":"string"},"hashMismatch":{"description":"true if the hashes from notary and registry don't match","type":"boolean"},"inNotary":{"description":"true if the tag exists in Notary","type":"boolean"},"licenses":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerLicense"}},"manifest":{"$ref":"#/definitions/responses.Manifest"},"mirroring":{"$ref":"#/definitions/responses.Mirroring"},"name":{"type":"string"},"promotion":{"$ref":"#/definitions/responses.Promotion"},"updatedAt":{"type":"string","format":"date-time"},"vuln_summary":{"$ref":"#/definitions/responses.OldScanSummary"}}},"responses.Team":{"required":["id","clientUserIsMember"],"properties":{"clientUserIsMember":{"type":"boolean"},"id":{"type":"string"}}},"responses.TeamAccess":{"required":["accessLevel","team"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.UserSettings":{"required":["ContentCacheUUID"],"properties":{"ContentCacheUUID":{"type":"string"}}},"responses.Vulnerability":{"required":["cve","cvss","summary"],"properties":{"cve":{"type":"string"},"cvss":{"type":"number","format":"float"},"summary":{"type":"string"}}},"responses.VulnerabilityDetails":{"required":["vuln","exact","notes"],"properties":{"exact":{"type":"boolean"},"notes":{"type":"array","items":{"$ref":"#/definitions/responses.Note"}},"vuln":{"$ref":"#/definitions/responses.Vulnerability"}}},"responses.Webhook":{"required":["id","type","key","endpoint","authorID","createdAt","inactive"],"properties":{"authorID":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"endpoint":{"type":"string"},"id":{"type":"string"},"inactive":{"type":"boolean"},"key":{"type":"string"},"lastSuccessfulAt":{"type":"string","format":"date-time"},"type":{"type":"string"}}},"ruleengine.Rule":{"properties":{"field":{"type":"string"},"operator":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}}},"schema.Event":{"required":["id","publishedAt","actor","type","object"],"properties":{"actor":{"type":"string"},"id":{"type":"string"},"object":{"$ref":"#/definitions/schema.Object"},"publishedAt":{"type":"string","format":"date-time"},"target":{"$ref":"#/definitions/schema.Object"},"type":{"type":"string"}}},"schema.LayerVulnOverride":{"required":["pk","digest","component","componentVersion","cve","notes"],"properties":{"component":{"type":"string"},"componentVersion":{"type":"string"},"cve":{"type":"string"},"digest":{"type":"string"},"notes":{"type":"string"},"pk":{"type":"string"}}},"schema.MirroringStatus":{"required":["code","detail","timestamp"],"properties":{"code":{"type":"string"},"detail":{"type":"string"},"timestamp":{"type":"string","format":"date-time"}}},"schema.Object":{"required":["id","type"],"properties":{"content":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"}}},"schema.ScannedImage":{"required":["pk","namespace","repository","tag","manifestDigest","totalVulnCount","licenses","layers","components","cves","maxCVSSValue","scannerFingerprint","vulnOverrides"],"properties":{"components":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerComponent"}},"cves":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerCVE"}},"layers":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerLayer"}},"licenses":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerLicense"}},"manifestDigest":{"type":"string"},"maxCVSSValue":{"type":"number","format":"float"},"namespace":{"type":"string"},"pk":{"type":"string"},"repository":{"type":"string"},"scannerFingerprint":{"$ref":"#/definitions/schema.ScannerFingerprint"},"tag":{"type":"string"},"totalVulnCount":{"$ref":"#/definitions/schema.ScannerVulnCount"},"vulnOverrides":{"type":"array","items":{"$ref":"#/definitions/schema.LayerVulnOverride"}}}},"schema.ScannerCVE":{"required":["cvePK","summary","cvss","notes"],"properties":{"cvePK":{"type":"string"},"cvss":{"type":"number","format":"float"},"notes":{"type":"string"},"summary":{"type":"string"}}},"schema.ScannerComponent":{"required":["componentPK","vulnCount","name","version","filepaths","cves","licenses"],"properties":{"componentPK":{"type":"string"},"cves":{"type":"array","items":{"type":"string"}},"filepaths":{"type":"array","items":{"type":"string"}},"licenses":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"version":{"type":"string"},"vulnCount":{"$ref":"#/definitions/schema.ScannerVulnCount"}}},"schema.ScannerFingerprint":{"required":["scannerType","version"],"properties":{"scannerType":{"type":"integer","format":"int32"},"version":{"type":"array","items":{"type":"string"}}}},"schema.ScannerLayer":{"required":["digest","mediaType","author","size","components"],"properties":{"author":{"type":"string"},"components":{"type":"array","items":{"type":"string"}},"digest":{"type":"string"},"mediaType":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"schema.ScannerLicense":{"required":["name","url","type"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}}},"schema.ScannerVulnCount":{"required":["critical","major","minor"],"properties":{"critical":{"type":"integer","format":"int32"},"major":{"type":"integer","format":"int32"},"minor":{"type":"integer","format":"int32"}}},"tmpforms.ActionConfigCreate":{"required":["action","parameters"],"properties":{"action":{"description":"The action to modify the config for","type":"string"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job. These are overwritten by any corresponding parameters set in the job itself.","type":"object"}}},"tmpforms.CronCreate":{"required":["action","schedule","retries","capacityMap","parameters","deadline","stopTimeout"],"properties":{"action":{"description":"The action which the cron will perform","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object"},"deadline":{"description":"After this amount of time has passed, a SIGTERM will be sent","type":"string"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object"},"retries":{"description":"The number of times to retry a job if it fails","type":"integer","format":"int32"},"schedule":{"description":"The for the cron as a cronspec string: (seconds) (minutes) (hours) (day of month) (month) (day of week) or @hourly, @weekly, etc.","type":"string"},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"}}},"tmpforms.EmptyForm":{},"tmpforms.JobSubmission":{"required":["action","parameters","retries","capacityMap","deadline","stopTimeout","scheduledAt"],"properties":{"action":{"description":"The action which the job will perform","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object"},"deadline":{"description":"After this amount of time has passed, a SIGTERM will be sent","type":"string"},"parameters":{"description":"Parameters to start the job with","type":"object"},"retries":{"description":"The number of times to retry a job if it fails","type":"integer","format":"int32"},"scheduledAt":{"description":"The time at which to run the job. Empty string or no value means now. Format: RFC3339","type":"string"},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"}}},"tmpforms.UpdateWorkerCapacity":{"required":["capacityMap"],"properties":{"capacityMap":{"description":"The new capacity for the worker, representing roughly the amount of RAM to use","type":"object"}}},"tmpresponses.ActionConfig":{"required":["id","action","parameters"],"properties":{"action":{"description":"The action this config refers to.","type":"string"},"id":{"description":"Randomly generated UUID for foreign references.","type":"string"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object"}}},"tmpresponses.ActionConfigs":{"required":["actionConfigs"],"properties":{"actionConfigs":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}},"tmpresponses.Cron":{"required":["id","action","schedule","retries","capacityMap","parameters","deadline","stopTimeout","nextRun"],"properties":{"action":{"description":"The action to be performed by jobs spawned from this cron.","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object"},"deadline":{"type":"string"},"id":{"description":"Randomly generated UUID for foreign references.","type":"string"},"nextRun":{"description":"The next time the job will run.","type":"string","format":"date-time"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object"},"retries":{"description":"The number of times to retry the job if it fails","type":"integer","format":"int32"},"schedule":{"description":"The schedule for this cron as a cronspec string: (seconds) (minutes) (hours) (day of month) (month) (day of week) or @hourly, @weekly, etc.","type":"string"},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"}}},"tmpresponses.Crons":{"required":["crons"],"properties":{"crons":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Cron"}}}},"tmpresponses.Job":{"required":["id","retryFromID","workerID","status","scheduledAt","lastUpdated","action","retriesLeft","retriesTotal","capacityMap","parameters","deadline","stopTimeout"],"properties":{"action":{"description":"The action this job performs","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object"},"deadline":{"type":"string"},"id":{"description":"The ID of the job","type":"string"},"lastUpdated":{"description":"The last time at which the status of this job was updated","type":"string","format":"date-time"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object"},"retriesLeft":{"description":"The number of times to retry the job if it fails","type":"integer","format":"int32"},"retriesTotal":{"description":"The total number of times to retry the original job if it fails","type":"integer","format":"int32"},"retryFromID":{"description":"The ID of the job this job retried from","type":"string"},"scheduledAt":{"description":"The time at which this job was scheduled","type":"string","format":"date-time"},"status":{"description":"The current status of the job","type":"string","enum":["waiting","running","done","canceled","errored"]},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"},"workerID":{"description":"The ID of the worker which performed the job, unclaimed by a worker if empty","type":"string"}}},"tmpresponses.JobLog":{"required":["data","lineNum"],"properties":{"data":{"type":"string"},"lineNum":{"type":"integer","format":"int32"}}},"tmpresponses.Jobs":{"required":["jobs"],"properties":{"jobs":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Job"}}}},"tmpresponses.Worker":{"required":["id","status","capacityMap","heartbeatExpiration"],"properties":{"capacityMap":{"description":"A map used to represent now much load the worker should be allocated. Only security scanning jobs use this and the value is roughly equivalent to expected memory usage in bytes.","type":"object"},"heartbeatExpiration":{"description":"Time after which the worker should be considered dead.","type":"string"},"id":{"description":"Randomly generated UUID for foreign references.","type":"string"},"status":{"description":"Status of the worker","type":"string"}}},"tmpresponses.Workers":{"required":["workers"],"properties":{"workers":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Worker"}}}}},"tags":[{"description":"Accounts","name":"accounts"},{"description":"Admin","name":"meta"},{"description":"Content Caches","name":"content_caches"},{"description":"Repositories","name":"repositories"},{"description":"Repository Namespaces","name":"repositoryNamespaces"},{"description":"Events","name":"events"},{"description":"Docker Security Scanner","name":"imagescan"},{"description":"Webhooks","name":"webhooks"},{"description":"Jobs","name":"jobs"},{"description":"Crons","name":"crons"},{"description":"Workers","name":"workers"},{"description":"Action Configs","name":"action_configs"}]} +, + dom_id: '#swagger-ui', + validatorUrl: null, + presets: [ + SwaggerUIBundle.presets.apis, + SwaggerUIStandalonePreset + ], + plugins: [ + SwaggerUIBundle.plugins.DownloadUrl + ], + layout: "StandaloneLayout" + }) + + window.ui = ui +} diff --git a/reference/dtr/2.6/api/swagger-ui-bundle.js b/reference/dtr/2.6/api/swagger-ui-bundle.js new file mode 100644 index 0000000000..4ec510a936 --- /dev/null +++ b/reference/dtr/2.6/api/swagger-ui-bundle.js @@ -0,0 +1,105 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.SwaggerUIBundle=t():e.SwaggerUIBundle=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="/dist",t(0)}(function(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))switch(typeof e[t]){case"function":break;case"object":e[t]=function(t){var n=t.slice(1),r=e[t[0]];return function(e,t,i){r.apply(this,[e,t,i].concat(n))}}(e[t]);break;default:e[t]=e[e[t]]}return e}([function(e,t,n){n(1),e.exports=n(56)},function(e,t,n){"use strict";n(2)},function(e,t,n){n(3),n(17),n(30),n(36),e.exports=n(16).Promise},function(e,t,n){"use strict";var r=n(4),i={};i[n(6)("toStringTag")]="z",i+""!="[object z]"&&n(10)(Object.prototype,"toString",function(){return"[object "+r(this)+"]"},!0)},function(e,t,n){var r=n(5),i=n(6)("toStringTag"),o="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=(t=Object(e))[i])?n:o?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(7)("wks"),i=n(9),o=n(8).Symbol;e.exports=function(e){return r[e]||(r[e]=o&&o[e]||(o||i)("Symbol."+e))}},function(e,t,n){var r=n(8),i="__core-js_shared__",o=r[i]||(r[i]={});e.exports=function(e){return o[e]||(o[e]={})}},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){var r=n(8),i=n(11),o=n(9)("src"),a="toString",s=Function[a],u=(""+s).split(a);n(16).inspectSource=function(e){return s.call(e)},(e.exports=function(e,t,n,a){"function"==typeof n&&(n.hasOwnProperty(o)||i(n,o,e[t]?""+e[t]:u.join(String(t))),n.hasOwnProperty("name")||i(n,"name",t)),e===r?e[t]=n:(a||delete e[t],i(e,t,n))})(Function.prototype,a,function(){return"function"==typeof this&&this[o]||s.call(this)})},function(e,t,n){var r=n(12),i=n(13);e.exports=n(14)?function(e,t,n){return r.setDesc(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){var n=Object;e.exports={create:n.create,getProto:n.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:n.getOwnPropertyDescriptor,setDesc:n.defineProperty,setDescs:n.defineProperties,getKeys:n.keys,getNames:n.getOwnPropertyNames,getSymbols:n.getOwnPropertySymbols,each:[].forEach}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){e.exports=!n(15)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){var n=e.exports={version:"1.2.6"};"number"==typeof __e&&(__e=n)},function(e,t,n){"use strict";var r=n(18)(!0);n(21)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){var r=n(19),i=n(20);e.exports=function(e){return function(t,n){var o,a,s=String(i(t)),u=r(n),c=s.length;return u<0||u>=c?e?"":void 0:(o=s.charCodeAt(u),o<55296||o>56319||u+1===c||(a=s.charCodeAt(u+1))<56320||a>57343?e?s.charAt(u):o:e?s.slice(u,u+2):(o-55296<<10)+(a-56320)+65536)}}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";var r=n(22),i=n(23),o=n(10),a=n(11),s=n(26),u=n(27),c=n(28),l=n(29),p=n(12).getProto,f=n(6)("iterator"),h=!([].keys&&"next"in[].keys()),d="@@iterator",m="keys",v="values",y=function(){return this};e.exports=function(e,t,n,g,_,b,x){c(n,t,g);var w,k,S=function(e){if(!h&&e in T)return T[e];switch(e){case m:return function(){return new n(this,e)};case v:return function(){return new n(this,e)}}return function(){return new n(this,e)}},E=t+" Iterator",C=_==v,A=!1,T=e.prototype,D=T[f]||T[d]||_&&T[_],M=D||S(_);if(D){var O=p(M.call(new e));l(O,E,!0),!r&&s(T,d)&&a(O,f,y),C&&D.name!==v&&(A=!0,M=function(){return D.call(this)})}if(r&&!x||!h&&!A&&T[f]||a(T,f,M),u[t]=M,u[E]=y,_)if(w={values:C?M:S(v),keys:b?M:S(m),entries:C?S("entries"):M},x)for(k in w)k in T||o(T,k,w[k]);else i(i.P+i.F*(h||A),t,w);return w}},function(e,t){e.exports=!1},function(e,t,n){var r=n(8),i=n(16),o=n(11),a=n(10),s=n(24),u="prototype",c=function(e,t,n){var l,p,f,h,d=e&c.F,m=e&c.G,v=e&c.S,y=e&c.P,g=e&c.B,_=m?r:v?r[t]||(r[t]={}):(r[t]||{})[u],b=m?i:i[t]||(i[t]={}),x=b[u]||(b[u]={});m&&(n=t);for(l in n)p=!d&&_&&l in _,f=(p?_:n)[l],h=g&&p?s(f,r):y&&"function"==typeof f?s(Function.call,f):f,_&&!p&&a(_,l,f),b[l]!=f&&o(b,l,h),y&&x[l]!=f&&(x[l]=f)};r.core=i,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,e.exports=c},function(e,t,n){var r=n(25);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t){e.exports={}},function(e,t,n){"use strict";var r=n(12),i=n(13),o=n(29),a={};n(11)(a,n(6)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r.create(a,{next:i(1,n)}),o(e,t+" Iterator")}},function(e,t,n){var r=n(12).setDesc,i=n(26),o=n(6)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},function(e,t,n){n(31);var r=n(8),i=n(11),o=n(27),a=n(6)("iterator"),s=r.NodeList,u=r.HTMLCollection,c=s&&s.prototype,l=u&&u.prototype,p=o.NodeList=o.HTMLCollection=o.Array;c&&!c[a]&&i(c,a,p),l&&!l[a]&&i(l,a,p)},function(e,t,n){"use strict";var r=n(32),i=n(33),o=n(27),a=n(34);e.exports=n(21)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,n):"values"==t?i(0,e[n]):i(0,[n,e[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(e,t,n){var r=n(6)("unscopables"),i=Array.prototype;void 0==i[r]&&n(11)(i,r,{}),e.exports=function(e){i[r][e]=!0}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){var r=n(35),i=n(20);e.exports=function(e){return r(i(e))}},function(e,t,n){var r=n(5);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){"use strict";var r,i=n(12),o=n(22),a=n(8),s=n(24),u=n(4),c=n(23),l=n(37),p=n(38),f=n(25),h=n(39),d=n(40),m=n(45).set,v=n(46),y=n(6)("species"),g=n(47),_=n(48),b="Promise",x=a.process,w="process"==u(x),k=a[b],S=function(){},E=function(e){var t,n=new k(S);return e&&(n.constructor=function(e){e(S,S)}),(t=k.resolve(n)).catch(S),t===n},C=function(){function e(t){var n=new k(t);return m(n,e.prototype),n}var t=!1;try{if(t=k&&k.resolve&&E(),m(e,k),e.prototype=i.create(k.prototype,{constructor:{value:e}}),e.resolve(5).then(function(){})instanceof e||(t=!1),t&&n(14)){var r=!1;k.resolve(i.setDesc({},"then",{get:function(){r=!0}})),t=r}}catch(e){t=!1}return t}(),A=function(e,t){return!(!o||e!==k||t!==r)||v(e,t)},T=function(e){var t=p(e)[y];return void 0!=t?t:e},D=function(e){var t;return!(!l(e)||"function"!=typeof(t=e.then))&&t},M=function(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r}),this.resolve=f(t),this.reject=f(n)},O=function(e){try{e()}catch(e){return{error:e}}},P=function(e,t){if(!e.n){e.n=!0;var n=e.c;_(function(){for(var r=e.v,i=1==e.s,o=0,s=function(t){var n,o,a=i?t.ok:t.fail,s=t.resolve,u=t.reject;try{a?(i||(e.h=!0),n=a===!0?r:a(r),n===t.promise?u(TypeError("Promise-chain cycle")):(o=D(n))?o.call(n,s,u):s(n)):u(r)}catch(e){u(e)}};n.length>o;)s(n[o++]);n.length=0,e.n=!1,t&&setTimeout(function(){var t,n,i=e.p;I(i)&&(w?x.emit("unhandledRejection",r,i):(t=a.onunhandledrejection)?t({promise:i,reason:r}):(n=a.console)&&n.error&&n.error("Unhandled promise rejection",r)),e.a=void 0},1)})}},I=function(e){var t,n=e._d,r=n.a||n.c,i=0;if(n.h)return!1;for(;r.length>i;)if(t=r[i++],t.fail||!I(t.promise))return!1;return!0},N=function(e){var t=this;t.d||(t.d=!0,t=t.r||t,t.v=e,t.s=2,t.a=t.c.slice(),P(t,!0))},R=function(e){var t,n=this;if(!n.d){n.d=!0,n=n.r||n;try{if(n.p===e)throw TypeError("Promise can't be resolved itself");(t=D(e))?_(function(){var r={r:n,d:!1};try{t.call(e,s(R,r,1),s(N,r,1))}catch(e){N.call(r,e)}}):(n.v=e,n.s=1,P(n,!1))}catch(e){N.call({r:n,d:!1},e)}}};C||(k=function(e){f(e);var t=this._d={p:h(this,k,b),c:[],a:void 0,s:0,d:!1,v:void 0,h:!1,n:!1};try{e(s(R,t,1),s(N,t,1))}catch(e){N.call(t,e)}},n(53)(k.prototype,{then:function(e,t){var n=new M(g(this,k)),r=n.promise,i=this._d;return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,i.c.push(n),i.a&&i.a.push(n),i.s&&P(i,!1),r},catch:function(e){return this.then(void 0,e)}})),c(c.G+c.W+c.F*!C,{Promise:k}),n(29)(k,b),n(54)(b),r=n(16)[b],c(c.S+c.F*!C,b,{reject:function(e){var t=new M(this),n=t.reject;return n(e),t.promise}}),c(c.S+c.F*(!C||E(!0)),b,{resolve:function(e){if(e instanceof k&&A(e.constructor,this))return e;var t=new M(this),n=t.resolve;return n(e),t.promise}}),c(c.S+c.F*!(C&&n(55)(function(e){k.all(e).catch(function(){})})),b,{all:function(e){var t=T(this),n=new M(t),r=n.resolve,o=n.reject,a=[],s=O(function(){d(e,!1,a.push,a);var n=a.length,s=Array(n);n?i.each.call(a,function(e,i){var a=!1;t.resolve(e).then(function(e){a||(a=!0,s[i]=e,--n||r(s))},o)}):r(s)});return s&&o(s.error),n.promise},race:function(e){var t=T(this),n=new M(t),r=n.reject,i=O(function(){d(e,!1,function(e){t.resolve(e).then(n.resolve,r)})});return i&&r(i.error),n.promise}})},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var r=n(37);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e,t,n){if(!(e instanceof t))throw TypeError(n+": use the 'new' operator!");return e}},function(e,t,n){var r=n(24),i=n(41),o=n(42),a=n(38),s=n(43),u=n(44);e.exports=function(e,t,n,c){var l,p,f,h=u(e),d=r(n,c,t?2:1),m=0;if("function"!=typeof h)throw TypeError(e+" is not iterable!");if(o(h))for(l=s(e.length);l>m;m++)t?d(a(p=e[m])[0],p[1]):d(e[m]);else for(f=h.call(e);!(p=f.next()).done;)i(f,d,p.value,t)}},function(e,t,n){var r=n(38);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(t){var o=e.return;throw void 0!==o&&r(o.call(e)),t}}},function(e,t,n){var r=n(27),i=n(6)("iterator"),o=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||o[i]===e)}},function(e,t,n){var r=n(19),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},function(e,t,n){var r=n(4),i=n(6)("iterator"),o=n(27);e.exports=n(16).getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||o[r(e)]}},function(e,t,n){var r=n(12).getDesc,i=n(37),o=n(38),a=function(e,t){if(o(e),!i(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,i){try{i=n(24)(Function.call,r(Object.prototype,"__proto__").set,2),i(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return a(e,n),t?e.__proto__=n:i(e,n),e}}({},!1):void 0),check:a}},function(e,t){e.exports=Object.is||function(e,t){return e===t?0!==e||1/e===1/t:e!=e&&t!=t}},function(e,t,n){var r=n(38),i=n(25),o=n(6)("species");e.exports=function(e,t){var n,a=r(e).constructor;return void 0===a||void 0==(n=r(a)[o])?t:i(n)}},function(e,t,n){var r,i,o,a=n(8),s=n(49).set,u=a.MutationObserver||a.WebKitMutationObserver,c=a.process,l=a.Promise,p="process"==n(5)(c),f=function(){var e,t,n;for(p&&(e=c.domain)&&(c.domain=null,e.exit());r;)t=r.domain,n=r.fn,t&&t.enter(),n(),t&&t.exit(),r=r.next;i=void 0,e&&e.enter()};if(p)o=function(){c.nextTick(f)};else if(u){var h=1,d=document.createTextNode("");new u(f).observe(d,{characterData:!0}),o=function(){d.data=h=-h}}else o=l&&l.resolve?function(){l.resolve().then(f)}:function(){s.call(a,f)};e.exports=function(e){var t={fn:e,next:void 0,domain:p&&c.domain};i&&(i.next=t),r||(r=t,o()),i=t}},function(e,t,n){var r,i,o,a=n(24),s=n(50),u=n(51),c=n(52),l=n(8),p=l.process,f=l.setImmediate,h=l.clearImmediate,d=l.MessageChannel,m=0,v={},y="onreadystatechange",g=function(){var e=+this;if(v.hasOwnProperty(e)){var t=v[e];delete v[e],t()}},_=function(e){g.call(e.data)};f&&h||(f=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return v[++m]=function(){s("function"==typeof e?e:Function(e),t)},r(m),m},h=function(e){delete v[e]},"process"==n(5)(p)?r=function(e){p.nextTick(a(g,e,1))}:d?(i=new d,o=i.port2,i.port1.onmessage=_,r=a(o.postMessage,o,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(e){l.postMessage(e+"","*")},l.addEventListener("message",_,!1)):r=y in c("script")?function(e){u.appendChild(c("script"))[y]=function(){u.removeChild(this),g.call(e)}}:function(e){setTimeout(a(g,e,1),0)}),e.exports={set:f,clear:h}},function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){e.exports=n(8).document&&document.documentElement},function(e,t,n){var r=n(37),i=n(8).document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},function(e,t,n){var r=n(10);e.exports=function(e,t){for(var n in t)r(e,n,t[n]);return e}},function(e,t,n){"use strict";var r=n(8),i=n(12),o=n(14),a=n(6)("species");e.exports=function(e){var t=r[e];o&&t&&!t[a]&&i.setDesc(t,a,{configurable:!0,get:function(){return this}})}},function(e,t,n){var r=n(6)("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var o=[7],a=o[r]();a.next=function(){return{done:n=!0}},o[r]=function(){return a},e(o)}catch(e){}return n}},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}var o=n(57),a=i(o),s=n(60),u=i(s),c=n(94),l=i(c),p=n(131),f=i(p),h=n(136),d=i(h),m=n(177),v=i(m),y=n(414),g=i(y),_=n(1175),b=r(_),x=n(183),w=["url","spec","validatorUrl","onComplete","onFailure","authorizations","docExpansion","apisSorter","operationsSorter","supportedSubmitMethods","dom_id","defaultModelRendering","oauth2RedirectUrl","showRequestHeaders","custom","modelPropertyMacro","parameterMacro","displayOperationId"],k={PACKAGE_VERSION:"3.0.17",GIT_COMMIT:"gf3c3c5c",GIT_DIRTY:!0},S=k.GIT_DIRTY,E=k.GIT_COMMIT,C=k.PACKAGE_VERSION;e.exports=function(e){v.default.versions=v.default.versions||{},v.default.versions.swaggerUi=C+"/"+(E||"unknown")+(S?"-dirty":"");var t={dom_id:null,spec:{},url:"",layout:"BaseLayout",docExpansion:"list",validatorUrl:"https://online.swagger.io/validator",configs:{},custom:{},displayOperationId:!1,presets:[],plugins:[],fn:{},components:{},state:{},store:{}},n=(0,f.default)({},t,e),r=(0,f.default)({},n.store,{system:{configs:n.configs},plugins:n.presets,state:{layout:{layout:n.layout},spec:{spec:"",url:n.url}}}),i=function(){return{fn:n.fn,components:n.components,state:n.state}},o=new d.default(r);o.register([n.plugins,i]);var s=o.getSystem(),c=(0,x.parseSeach)();s.initOAuth=s.authActions.configureAuth;var p=function(e){if("object"!==("undefined"==typeof n?"undefined":(0,l.default)(n)))return s;var t=s.specSelectors.getLocalConfig?s.specSelectors.getLocalConfig():{},r=(0,f.default)({},t,n,e||{},c);return o.setConfigs((0,x.filterConfigs)(r,w)),null!==e&&(!c.url&&"object"===(0,l.default)(r.spec)&&(0,u.default)(r.spec).length?(s.specActions.updateUrl(""),s.specActions.updateLoadingStatus("success"),s.specActions.updateSpec((0,a.default)(r.spec))):s.specActions.download&&r.url&&(s.specActions.updateUrl(r.url),s.specActions.download(r.url))),r.dom_id?s.render(r.dom_id,"App"):console.error("Skipped rendering: no `dom_id` was specified"),s},h=c.config||n.configUrl;return!h||!s.specActions.getConfigByUrl||s.specActions.getConfigByUrl&&!s.specActions.getConfigByUrl(h,p)?p():s},e.exports.presets={apis:g.default},e.exports.plugins=b},function(e,t,n){e.exports={default:n(58),__esModule:!0}},function(e,t,n){var r=n(59),i=r.JSON||(r.JSON={stringify:JSON.stringify});e.exports=function(e){return i.stringify.apply(i,arguments)}},function(e,t){var n=e.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},function(e,t,n){e.exports={default:n(61),__esModule:!0}},function(e,t,n){n(62),e.exports=n(59).Object.keys},function(e,t,n){var r=n(63),i=n(65);n(80)("keys",function(){return function(e){return i(r(e))}})},function(e,t,n){var r=n(64);e.exports=function(e){return Object(r(e))}},20,function(e,t,n){var r=n(66),i=n(79);e.exports=Object.keys||function(e){return r(e,i)}},function(e,t,n){var r=n(67),i=n(68),o=n(71)(!1),a=n(75)("IE_PROTO");e.exports=function(e,t){var n,s=i(e),u=0,c=[];for(n in s)n!=a&&r(s,n)&&c.push(n);for(;t.length>u;)r(s,n=t[u++])&&(~o(c,n)||c.push(n));return c}},26,function(e,t,n){var r=n(69),i=n(64);e.exports=function(e){return r(i(e))}},function(e,t,n){var r=n(70);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},5,function(e,t,n){var r=n(68),i=n(72),o=n(74);e.exports=function(e){return function(t,n,a){var s,u=r(t),c=i(u.length),l=o(a,c);if(e&&n!=n){for(;c>l;)if(s=u[l++],s!=s)return!0}else for(;c>l;l++)if((e||l in u)&&u[l]===n)return e||l||0;return!e&&-1}}},function(e,t,n){var r=n(73),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},19,function(e,t,n){var r=n(73),i=Math.max,o=Math.min;e.exports=function(e,t){return e=r(e),e<0?i(e+t,0):o(e,t)}},function(e,t,n){var r=n(76)("keys"),i=n(78);e.exports=function(e){return r[e]||(r[e]=i(e))}},function(e,t,n){var r=n(77),i="__core-js_shared__",o=r[i]||(r[i]={});e.exports=function(e){return o[e]||(o[e]={})}},8,9,function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var r=n(81),i=n(59),o=n(90);e.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],a={};a[e]=t(n),r(r.S+r.F*o(function(){n(1)}),"Object",a)}},function(e,t,n){var r=n(77),i=n(59),o=n(82),a=n(84),s="prototype",u=function(e,t,n){var c,l,p,f=e&u.F,h=e&u.G,d=e&u.S,m=e&u.P,v=e&u.B,y=e&u.W,g=h?i:i[t]||(i[t]={}),_=g[s],b=h?r:d?r[t]:(r[t]||{})[s];h&&(n=t);for(c in n)l=!f&&b&&void 0!==b[c],l&&c in g||(p=l?b[c]:n[c],g[c]=h&&"function"!=typeof b[c]?n[c]:v&&l?o(p,r):y&&b[c]==p?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t[s]=e[s],t}(p):m&&"function"==typeof p?o(Function.call,p):p,m&&((g.virtual||(g.virtual={}))[c]=p,e&u.R&&_&&!_[c]&&a(_,c,p)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},function(e,t,n){var r=n(83);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},25,function(e,t,n){var r=n(85),i=n(93);e.exports=n(89)?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(86),i=n(88),o=n(92),a=Object.defineProperty;t.f=n(89)?Object.defineProperty:function(e,t,n){if(r(e),t=o(t,!0),r(n),i)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){var r=n(87);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},37,function(e,t,n){e.exports=!n(89)&&!n(90)(function(){return 7!=Object.defineProperty(n(91)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){e.exports=!n(90)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},15,function(e,t,n){var r=n(87),i=n(77).document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},function(e,t,n){var r=n(87);e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},13,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(95),o=r(i),a=n(115),s=r(a),u="function"==typeof s.default&&"symbol"==typeof o.default?function(e){return typeof e}:function(e){return e&&"function"==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?"symbol":typeof e};t.default="function"==typeof s.default&&"symbol"===u(o.default)?function(e){return"undefined"==typeof e?"undefined":u(e)}:function(e){return e&&"function"==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?"symbol":"undefined"==typeof e?"undefined":u(e)}},function(e,t,n){e.exports={default:n(96),__esModule:!0}},function(e,t,n){n(97),n(110),e.exports=n(114).f("iterator")},function(e,t,n){"use strict";var r=n(98)(!0);n(99)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){var r=n(73),i=n(64);e.exports=function(e){return function(t,n){var o,a,s=String(i(t)),u=r(n),c=s.length;return u<0||u>=c?e?"":void 0:(o=s.charCodeAt(u),o<55296||o>56319||u+1===c||(a=s.charCodeAt(u+1))<56320||a>57343?e?s.charAt(u):o:e?s.slice(u,u+2):(o-55296<<10)+(a-56320)+65536)}}},function(e,t,n){"use strict";var r=n(100),i=n(81),o=n(101),a=n(84),s=n(67),u=n(102),c=n(103),l=n(107),p=n(109),f=n(108)("iterator"),h=!([].keys&&"next"in[].keys()),d="@@iterator",m="keys",v="values",y=function(){return this};e.exports=function(e,t,n,g,_,b,x){c(n,t,g);var w,k,S,E=function(e){if(!h&&e in D)return D[e];switch(e){case m:return function(){return new n(this,e)};case v:return function(){return new n(this,e)}}return function(){return new n(this,e)}},C=t+" Iterator",A=_==v,T=!1,D=e.prototype,M=D[f]||D[d]||_&&D[_],O=M||E(_),P=_?A?E("entries"):O:void 0,I="Array"==t?D.entries||M:M;if(I&&(S=p(I.call(new e)),S!==Object.prototype&&(l(S,C,!0),r||s(S,f)||a(S,f,y))),A&&M&&M.name!==v&&(T=!0,O=function(){return M.call(this)}),r&&!x||!h&&!T&&D[f]||a(D,f,O),u[t]=O,u[C]=y,_)if(w={values:A?O:E(v),keys:b?O:E(m),entries:P},x)for(k in w)k in D||o(D,k,w[k]);else i(i.P+i.F*(h||T),t,w);return w}},function(e,t){e.exports=!0},function(e,t,n){e.exports=n(84)},27,function(e,t,n){"use strict";var r=n(104),i=n(93),o=n(107),a={};n(84)(a,n(108)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(a,{next:i(1,n)}),o(e,t+" Iterator")}},function(e,t,n){var r=n(86),i=n(105),o=n(79),a=n(75)("IE_PROTO"),s=function(){},u="prototype",c=function(){var e,t=n(91)("iframe"),r=o.length,i="<",a=">";for(t.style.display="none",n(106).appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write(i+"script"+a+"document.F=Object"+i+"/script"+a),e.close(),c=e.F;r--;)delete c[u][o[r]];return c()};e.exports=Object.create||function(e,t){var n;return null!==e?(s[u]=r(e),n=new s,s[u]=null,n[a]=e):n=c(),void 0===t?n:i(n,t)}},function(e,t,n){var r=n(85),i=n(86),o=n(65);e.exports=n(89)?Object.defineProperties:function(e,t){i(e);for(var n,a=o(t),s=a.length,u=0;s>u;)r.f(e,n=a[u++],t[n]);return e}},function(e,t,n){e.exports=n(77).document&&document.documentElement},function(e,t,n){var r=n(85).f,i=n(67),o=n(108)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},function(e,t,n){var r=n(76)("wks"),i=n(78),o=n(77).Symbol,a="function"==typeof o,s=e.exports=function(e){return r[e]||(r[e]=a&&o[e]||(a?o:i)("Symbol."+e))};s.store=r},function(e,t,n){var r=n(67),i=n(63),o=n(75)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,o)?e[o]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,n){n(111);for(var r=n(77),i=n(84),o=n(102),a=n(108)("toStringTag"),s=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],u=0;u<5;u++){var c=s[u],l=r[c],p=l&&l.prototype;p&&!p[a]&&i(p,a,c),o[c]=o.Array}},function(e,t,n){"use strict";var r=n(112),i=n(113),o=n(102),a=n(68);e.exports=n(99)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,n):"values"==t?i(0,e[n]):i(0,[n,e[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(e,t){e.exports=function(){}},33,function(e,t,n){t.f=n(108)},function(e,t,n){e.exports={default:n(116),__esModule:!0}},function(e,t,n){n(117),n(128),n(129),n(130),e.exports=n(59).Symbol},function(e,t,n){"use strict";var r=n(77),i=n(67),o=n(89),a=n(81),s=n(101),u=n(118).KEY,c=n(90),l=n(76),p=n(107),f=n(78),h=n(108),d=n(114),m=n(119),v=n(120),y=n(121),g=n(124),_=n(86),b=n(68),x=n(92),w=n(93),k=n(104),S=n(125),E=n(127),C=n(85),A=n(65),T=E.f,D=C.f,M=S.f,O=r.Symbol,P=r.JSON,I=P&&P.stringify,N="prototype",R=h("_hidden"),j=h("toPrimitive"),F={}.propertyIsEnumerable,B=l("symbol-registry"),L=l("symbols"),z=l("op-symbols"),q=Object[N],U="function"==typeof O,W=r.QObject,K=!W||!W[N]||!W[N].findChild,V=o&&c(function(){return 7!=k(D({},"a",{get:function(){return D(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=T(q,t);r&&delete q[t],D(e,t,n),r&&e!==q&&D(q,t,r)}:D,H=function(e){var t=L[e]=k(O[N]);return t._k=e,t},J=U&&"symbol"==typeof O.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof O},G=function(e,t,n){return e===q&&G(z,t,n),_(e),t=x(t,!0),_(n),i(L,t)?(n.enumerable?(i(e,R)&&e[R][t]&&(e[R][t]=!1),n=k(n,{enumerable:w(0,!1)})):(i(e,R)||D(e,R,w(1,{})),e[R][t]=!0),V(e,t,n)):D(e,t,n)},X=function(e,t){_(e);for(var n,r=y(t=b(t)),i=0,o=r.length;o>i;)G(e,n=r[i++],t[n]);return e},Y=function(e,t){return void 0===t?k(e):X(k(e),t)},$=function(e){var t=F.call(this,e=x(e,!0));return!(this===q&&i(L,e)&&!i(z,e))&&(!(t||!i(this,e)||!i(L,e)||i(this,R)&&this[R][e])||t)},Z=function(e,t){if(e=b(e),t=x(t,!0),e!==q||!i(L,t)||i(z,t)){var n=T(e,t);return!n||!i(L,t)||i(e,R)&&e[R][t]||(n.enumerable=!0),n}},Q=function(e){for(var t,n=M(b(e)),r=[],o=0;n.length>o;)i(L,t=n[o++])||t==R||t==u||r.push(t);return r},ee=function(e){for(var t,n=e===q,r=M(n?z:b(e)),o=[],a=0;r.length>a;)!i(L,t=r[a++])||n&&!i(q,t)||o.push(L[t]);return o};U||(O=function(){if(this instanceof O)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),t=function(n){this===q&&t.call(z,n),i(this,R)&&i(this[R],e)&&(this[R][e]=!1),V(this,e,w(1,n))};return o&&K&&V(q,e,{configurable:!0,set:t}),H(e)},s(O[N],"toString",function(){return this._k}),E.f=Z,C.f=G,n(126).f=S.f=Q,n(123).f=$,n(122).f=ee,o&&!n(100)&&s(q,"propertyIsEnumerable",$,!0),d.f=function(e){return H(h(e))}),a(a.G+a.W+a.F*!U,{Symbol:O});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ne=0;te.length>ne;)h(te[ne++]);for(var te=A(h.store),ne=0;te.length>ne;)m(te[ne++]);a(a.S+a.F*!U,"Symbol",{for:function(e){return i(B,e+="")?B[e]:B[e]=O(e)},keyFor:function(e){if(J(e))return v(B,e);throw TypeError(e+" is not a symbol!")},useSetter:function(){K=!0},useSimple:function(){K=!1}}),a(a.S+a.F*!U,"Object",{create:Y,defineProperty:G,defineProperties:X,getOwnPropertyDescriptor:Z,getOwnPropertyNames:Q,getOwnPropertySymbols:ee}),P&&a(a.S+a.F*(!U||c(function(){var e=O();return"[null]"!=I([e])||"{}"!=I({a:e})||"{}"!=I(Object(e))})),"JSON",{stringify:function(e){if(void 0!==e&&!J(e)){for(var t,n,r=[e],i=1;arguments.length>i;)r.push(arguments[i++]);return t=r[1],"function"==typeof t&&(n=t),!n&&g(t)||(t=function(e,t){if(n&&(t=n.call(this,e,t)),!J(t))return t}),r[1]=t,I.apply(P,r)}}}),O[N][j]||n(84)(O[N],j,O[N].valueOf),p(O,"Symbol"),p(Math,"Math",!0),p(r.JSON,"JSON",!0)},function(e,t,n){var r=n(78)("meta"),i=n(87),o=n(67),a=n(85).f,s=0,u=Object.isExtensible||function(){return!0},c=!n(90)(function(){return u(Object.preventExtensions({}))}),l=function(e){a(e,r,{value:{i:"O"+ ++s,w:{}}})},p=function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!o(e,r)){if(!u(e))return"F";if(!t)return"E";l(e)}return e[r].i},f=function(e,t){if(!o(e,r)){if(!u(e))return!0;if(!t)return!1;l(e)}return e[r].w},h=function(e){return c&&d.NEED&&u(e)&&!o(e,r)&&l(e),e},d=e.exports={KEY:r,NEED:!1,fastKey:p,getWeak:f,onFreeze:h}},function(e,t,n){var r=n(77),i=n(59),o=n(100),a=n(114),s=n(85).f;e.exports=function(e){var t=i.Symbol||(i.Symbol=o?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:a.f(e)})}},function(e,t,n){var r=n(65),i=n(68);e.exports=function(e,t){for(var n,o=i(e),a=r(o),s=a.length,u=0;s>u;)if(o[n=a[u++]]===t)return n}},function(e,t,n){var r=n(65),i=n(122),o=n(123);e.exports=function(e){var t=r(e),n=i.f;if(n)for(var a,s=n(e),u=o.f,c=0;s.length>c;)u.call(e,a=s[c++])&&t.push(a);return t}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var r=n(70);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(68),i=n(126).f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return i(e)}catch(e){return a.slice()}};e.exports.f=function(e){return a&&"[object Window]"==o.call(e)?s(e):i(r(e))}},function(e,t,n){var r=n(66),i=n(79).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},function(e,t,n){var r=n(123),i=n(93),o=n(68),a=n(92),s=n(67),u=n(88),c=Object.getOwnPropertyDescriptor;t.f=n(89)?c:function(e,t){if(e=o(e),t=a(t,!0),u)try{return c(e,t)}catch(e){}if(s(e,t))return i(!r.f.call(e,t),e[t])}},function(e,t){},function(e,t,n){n(119)("asyncIterator")},function(e,t,n){n(119)("observable")},function(e,t,n){(function(t){/*! + * @description Recursive object extending + * @author Viacheslav Lotsmanov <lotsmanov89@gmail.com> + * @license MIT + * + * The MIT License (MIT) + * + * Copyright (c) 2013-2015 Viacheslav Lotsmanov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +"use strict";function n(e){return e instanceof t||e instanceof Date||e instanceof RegExp}function r(e){if(e instanceof t){var n=new t(e.length);return e.copy(n),n}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e);throw new Error("Unexpected situation")}function i(e){var t=[];return e.forEach(function(e,a){"object"==typeof e&&null!==e?Array.isArray(e)?t[a]=i(e):n(e)?t[a]=r(e):t[a]=o({},e):t[a]=e}),t}var o=e.exports=function(){if(arguments.length<1||"object"!=typeof arguments[0])return!1;if(arguments.length<2)return arguments[0];var e,t,a=arguments[0],s=Array.prototype.slice.call(arguments,1);return s.forEach(function(s){"object"!=typeof s||Array.isArray(s)||Object.keys(s).forEach(function(u){return t=a[u],e=s[u],e===a?void 0:"object"!=typeof e||null===e?void(a[u]=e):Array.isArray(e)?void(a[u]=i(e)):n(e)?void(a[u]=r(e)):"object"!=typeof t||null===t||Array.isArray(t)?void(a[u]=o({},e)):void(a[u]=o(t,e))})}),a}}).call(t,n(132).Buffer)},function(e,t,n){(function(e){/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org> + * @license MIT + */ +"use strict";function r(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}function i(){return a.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(e,t){if(i()<t)throw new RangeError("Invalid typed array length");return a.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=a.prototype):(null===e&&(e=new a(t)),e.length=t),e}function a(e,t,n){if(!(a.TYPED_ARRAY_SUPPORT||this instanceof a))return new a(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return l(this,e)}return s(this,e,t,n)}function s(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?h(e,t,n,r):"string"==typeof t?p(e,t,n):d(e,t)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function c(e,t,n,r){return u(t),t<=0?o(e,t):void 0!==n?"string"==typeof r?o(e,t).fill(n,r):o(e,t).fill(n):o(e,t)}function l(e,t){if(u(t),e=o(e,t<0?0:0|m(t)),!a.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function p(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!a.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|y(t,n);e=o(e,r);var i=e.write(t,n);return i!==r&&(e=e.slice(0,i)),e}function f(e,t){var n=t.length<0?0:0|m(t.length);e=o(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function h(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),a.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=a.prototype):e=f(e,t),e}function d(e,t){if(a.isBuffer(t)){var n=0|m(t.length);return e=o(e,n),0===e.length?e:(t.copy(e,0,0,n),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||Y(t.length)?o(e,0):f(e,t);if("Buffer"===t.type&&Q(t.data))return f(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function m(e){if(e>=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function v(e){return+e!=e&&(e=0),a.alloc(+e)}function y(e,t){if(a.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return V(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return G(e).length;default:if(r)return V(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return I(this,t,n);case"utf8":case"utf-8":return D(this,t,n);case"ascii":return O(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return T(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function _(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function b(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=a.from(t,r)),a.isBuffer(t))return 0===t.length?-1:x(e,t,n,r,i);if("number"==typeof t)return t&=255,a.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):x(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function x(e,t,n,r,i){function o(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}var a=1,s=e.length,u=t.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,n/=2}var c;if(i){var l=-1;for(c=n;c<s;c++)if(o(e,c)===o(t,l===-1?0:c-l)){if(l===-1&&(l=c),c-l+1===u)return l*a}else l!==-1&&(c-=c-l),l=-1}else for(n+u>s&&(n=s-u),c=n;c>=0;c--){for(var p=!0,f=0;f<u;f++)if(o(e,c+f)!==o(t,f)){p=!1;break}if(p)return c}return-1}function w(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r),r>i&&(r=i)):r=i;var o=t.length;if(o%2!==0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var a=0;a<r;++a){var s=parseInt(t.substr(2*a,2),16);if(isNaN(s))return a;e[n+a]=s}return a}function k(e,t,n,r){return X(V(t,e.length-n),e,n,r)}function S(e,t,n,r){return X(H(t),e,n,r)}function E(e,t,n,r){return S(e,t,n,r)}function C(e,t,n,r){return X(G(t),e,n,r)}function A(e,t,n,r){return X(J(t,e.length-n),e,n,r)}function T(e,t,n){return 0===t&&n===e.length?$.fromByteArray(e):$.fromByteArray(e.slice(t,n))}function D(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var o=e[i],a=null,s=o>239?4:o>223?3:o>191?2:1;if(i+s<=n){var u,c,l,p;switch(s){case 1:o<128&&(a=o);break;case 2:u=e[i+1],128===(192&u)&&(p=(31&o)<<6|63&u,p>127&&(a=p));break;case 3:u=e[i+1],c=e[i+2],128===(192&u)&&128===(192&c)&&(p=(15&o)<<12|(63&u)<<6|63&c,p>2047&&(p<55296||p>57343)&&(a=p));break;case 4:u=e[i+1],c=e[i+2],l=e[i+3],128===(192&u)&&128===(192&c)&&128===(192&l)&&(p=(15&o)<<18|(63&u)<<12|(63&c)<<6|63&l,p>65535&&p<1114112&&(a=p))}}null===a?(a=65533,s=1):a>65535&&(a-=65536,r.push(a>>>10&1023|55296),a=56320|1023&a),r.push(a),i+=s}return M(r)}function M(e){var t=e.length;if(t<=ee)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=ee));return n}function O(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function P(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function I(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var i="",o=t;o<n;++o)i+=K(e[o]);return i}function N(e,t,n){for(var r=e.slice(t,n),i="",o=0;o<r.length;o+=2)i+=String.fromCharCode(r[o]+256*r[o+1]);return i}function R(e,t,n){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function j(e,t,n,r,i,o){if(!a.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<o)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function F(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-n,2);i<o;++i)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function B(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-n,4);i<o;++i)e[n+i]=t>>>8*(r?i:3-i)&255}function L(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function z(e,t,n,r,i){return i||L(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),Z.write(e,t,n,r,23,4),n+4}function q(e,t,n,r,i){return i||L(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),Z.write(e,t,n,r,52,8),n+8}function U(e){if(e=W(e).replace(te,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function W(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function K(e){return e<16?"0"+e.toString(16):e.toString(16)}function V(e,t){t=t||1/0;for(var n,r=e.length,i=null,o=[],a=0;a<r;++a){if(n=e.charCodeAt(a),n>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=(i-55296<<10|n-56320)+65536}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function H(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}function J(e,t){for(var n,r,i,o=[],a=0;a<e.length&&!((t-=2)<0);++a)n=e.charCodeAt(a),r=n>>8,i=n%256,o.push(i),o.push(r);return o}function G(e){return $.toByteArray(U(e))}function X(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function Y(e){return e!==e}var $=n(133),Z=n(134),Q=n(135);t.Buffer=a,t.SlowBuffer=v,t.INSPECT_MAX_BYTES=50,a.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:r(),t.kMaxLength=i(),a.poolSize=8192,a._augment=function(e){return e.__proto__=a.prototype,e},a.from=function(e,t,n){return s(null,e,t,n)},a.TYPED_ARRAY_SUPPORT&&(a.prototype.__proto__=Uint8Array.prototype,a.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&a[Symbol.species]===a&&Object.defineProperty(a,Symbol.species,{value:null,configurable:!0})),a.alloc=function(e,t,n){return c(null,e,t,n)},a.allocUnsafe=function(e){return l(null,e)},a.allocUnsafeSlow=function(e){return l(null,e)},a.isBuffer=function(e){return!(null==e||!e._isBuffer)},a.compare=function(e,t){if(!a.isBuffer(e)||!a.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,o=Math.min(n,r);i<o;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},a.isEncoding=function(e){switch(String(e).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}},a.concat=function(e,t){if(!Q(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return a.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=a.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var o=e[n];if(!a.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,i),i+=o.length}return r},a.byteLength=y,a.prototype._isBuffer=!0,a.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)_(this,t,t+1);return this},a.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)_(this,t,t+3),_(this,t+1,t+2);return this},a.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)_(this,t,t+7),_(this,t+1,t+6),_(this,t+2,t+5),_(this,t+3,t+4);return this},a.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?D(this,0,e):g.apply(this,arguments)},a.prototype.equals=function(e){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===a.compare(this,e)},a.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},a.prototype.compare=function(e,t,n,r,i){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;for(var o=i-r,s=n-t,u=Math.min(o,s),c=this.slice(r,i),l=e.slice(t,n),p=0;p<u;++p)if(c[p]!==l[p]){o=c[p],s=l[p];break}return o<s?-1:s<o?1:0},a.prototype.includes=function(e,t,n){return this.indexOf(e,t,n)!==-1},a.prototype.indexOf=function(e,t,n){return b(this,e,t,n,!0)},a.prototype.lastIndexOf=function(e,t,n){return b(this,e,t,n,!1)},a.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return k(this,e,t,n);case"ascii":return S(this,e,t,n);case"latin1":case"binary":return E(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var ee=4096;a.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t<e&&(t=e);var r;if(a.TYPED_ARRAY_SUPPORT)r=this.subarray(e,t),r.__proto__=a.prototype;else{var i=t-e;r=new a(i,void 0);for(var o=0;o<i;++o)r[o]=this[o+e]}return r},a.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],i=1,o=0;++o<t&&(i*=256);)r+=this[e+o]*i;return r},a.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},a.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},a.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},a.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},a.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=this[e],i=1,o=0;++o<t&&(i*=256);)r+=this[e+o]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*t)),r},a.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||R(e,t,this.length);for(var r=t,i=1,o=this[e+--r];r>0&&(i*=256);)o+=this[e+--r]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},a.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?(255-this[e]+1)*-1:this[e]},a.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},a.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},a.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},a.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},a.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),Z.read(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),Z.read(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),Z.read(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),Z.read(this,e,!1,52,8)},a.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){var i=Math.pow(2,8*n)-1;j(this,e,t,n,i,0)}var o=1,a=0;for(this[t]=255&e;++a<n&&(o*=256);)this[t+a]=e/o&255;return t+n},a.prototype.writeUIntBE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){var i=Math.pow(2,8*n)-1;j(this,e,t,n,i,0)}var o=n-1,a=1;for(this[t+o]=255&e;--o>=0&&(a*=256);)this[t+o]=e/a&255;return t+n},a.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,1,255,0),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},a.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):F(this,e,t,!0),t+2},a.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):F(this,e,t,!1),t+2},a.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):B(this,e,t,!0),t+4},a.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},a.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);j(this,e,t,n,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o<n&&(a*=256);)e<0&&0===s&&0!==this[t+o-1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+n},a.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);j(this,e,t,n,i-1,-i)}var o=n-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+n},a.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,1,127,-128),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},a.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):F(this,e,t,!0),t+2},a.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):F(this,e,t,!1),t+2},a.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):B(this,e,t,!0),t+4},a.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):B(this,e,t,!1),t+4},a.prototype.writeFloatLE=function(e,t,n){return z(this,e,t,!0,n)},a.prototype.writeFloatBE=function(e,t,n){return z(this,e,t,!1,n)},a.prototype.writeDoubleLE=function(e,t,n){return q(this,e,t,!0,n)},a.prototype.writeDoubleBE=function(e,t,n){return q(this,e,t,!1,n)},a.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,o=r-n;if(this===e&&n<t&&t<r)for(i=o-1;i>=0;--i)e[i+t]=this[i+n];else if(o<1e3||!a.TYPED_ARRAY_SUPPORT)for(i=0;i<o;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+o),t);return o},a.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!a.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var o;if("number"==typeof e)for(o=t;o<n;++o)this[o]=e;else{var s=a.isBuffer(e)?e:V(new a(e,r).toString()),u=s.length;for(o=0;o<n-t;++o)this[o+t]=s[o%u]}return this};var te=/[^+\/0-9A-Za-z-_]/g}).call(t,function(){return this}())},function(e,t){"use strict";function n(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function r(e){return 3*e.length/4-n(e)}function i(e){var t,r,i,o,a,s=e.length;o=n(e),a=new l(3*s/4-o),r=o>0?s-4:s;var u=0;for(t=0;t<r;t+=4)i=c[e.charCodeAt(t)]<<18|c[e.charCodeAt(t+1)]<<12|c[e.charCodeAt(t+2)]<<6|c[e.charCodeAt(t+3)],a[u++]=i>>16&255,a[u++]=i>>8&255,a[u++]=255&i;return 2===o?(i=c[e.charCodeAt(t)]<<2|c[e.charCodeAt(t+1)]>>4,a[u++]=255&i):1===o&&(i=c[e.charCodeAt(t)]<<10|c[e.charCodeAt(t+1)]<<4|c[e.charCodeAt(t+2)]>>2,a[u++]=i>>8&255,a[u++]=255&i),a}function o(e){return u[e>>18&63]+u[e>>12&63]+u[e>>6&63]+u[63&e]}function a(e,t,n){for(var r,i=[],a=t;a<n;a+=3)r=(e[a]<<16)+(e[a+1]<<8)+e[a+2],i.push(o(r));return i.join("")}function s(e){for(var t,n=e.length,r=n%3,i="",o=[],s=16383,c=0,l=n-r;c<l;c+=s)o.push(a(e,c,c+s>l?l:c+s));return 1===r?(t=e[n-1],i+=u[t>>2],i+=u[t<<4&63],i+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],i+=u[t>>10],i+=u[t>>4&63],i+=u[t<<2&63],i+="="),o.push(i),o.join("")}t.byteLength=r,t.toByteArray=i,t.fromByteArray=s;for(var u=[],c=[],l="undefined"!=typeof Uint8Array?Uint8Array:Array,p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,h=p.length;f<h;++f)u[f]=p[f],c[p.charCodeAt(f)]=f;c["-".charCodeAt(0)]=62,c["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,i){var o,a,s=8*i-r-1,u=(1<<s)-1,c=u>>1,l=-7,p=n?i-1:0,f=n?-1:1,h=e[t+p];for(p+=f,o=h&(1<<-l)-1,h>>=-l,l+=s;l>0;o=256*o+e[t+p],p+=f,l-=8);for(a=o&(1<<-l)-1,o>>=-l,l+=r;l>0;a=256*a+e[t+p],p+=f,l-=8);if(0===o)o=1-c;else{if(o===u)return a?NaN:(h?-1:1)*(1/0);a+=Math.pow(2,r),o-=c}return(h?-1:1)*a*Math.pow(2,o-r)},t.write=function(e,t,n,r,i,o){var a,s,u,c=8*o-i-1,l=(1<<c)-1,p=l>>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:o-1,d=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),t+=a+p>=1?f/u:f*Math.pow(2,1-p),t*u>=2&&(a++,u/=2),a+p>=l?(s=0,a=l):a+p>=1?(s=(t*u-1)*Math.pow(2,i),a+=p):(s=t*Math.pow(2,p-1)*Math.pow(2,i),a=0));i>=8;e[n+h]=255&s,h+=d,s/=256,i-=8);for(a=a<<i|s,c+=i;c>0;e[n+h]=255&a,h+=d,a/=256,c-=8);e[n+h-d]|=128*m}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){var r=[(0,P.systemThunkMiddleware)(n)],i=O.default.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||x.compose;return(0,x.createStore)(e,t,i(x.applyMiddleware.apply(void 0,r)))}function o(e,t){return(0,P.isObject)(e)&&!(0,P.isArray)(e)?e:(0,P.isFunc)(e)?o(e(t),t):(0,P.isArray)(e)?e.map(function(e){return o(e,t)}).reduce(a,{}):{}}function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!(0,P.isObject)(e))return{};if(!(0,P.isObject)(t))return e;var n=e.statePlugins;if((0,P.isObject)(n))for(var r in n){var i=n[r];if((0,P.isObject)(i)&&(0,P.isObject)(i.wrapActions)){var o=i.wrapActions;for(var a in o){var s=o[a];Array.isArray(s)||(s=[s],o[a]=s),t&&t.statePlugins&&t.statePlugins[r]&&t.statePlugins[r].wrapActions&&t.statePlugins[r].wrapActions[a]&&(t.statePlugins[r].wrapActions[a]=o[a].concat(t.statePlugins[r].wrapActions[a]))}}}return(0,E.default)(e,t)}function s(e){var t=(0,P.objMap)(e,function(e){return e.reducers});return u(t)}function u(e){var t=(0,f.default)(e).reduce(function(t,n){return t[n]=c(e[n]),t},{});return(0,f.default)(t).length?(0,C.combineReducers)(t):I}function c(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new w.Map,n=arguments[1];if(!e)return t;var r=e[n.type];return r?r(t,n):t}}function l(e,t,n){var r=i(e,t,n);return r}Object.defineProperty(t,"__esModule",{value:!0});var p=n(60),f=r(p),h=n(137),d=r(h),m=n(141),v=r(m),y=n(145),g=r(y),_=n(146),b=r(_),x=n(147),w=n(168),k=r(w),S=n(131),E=r(S),C=n(169),A=n(175),T=r(A),D=n(176),M=n(177),O=r(M),P=n(183),I=function(e){return e},N=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,g.default)(this,e),(0,E.default)(this,{state:{},plugins:[],system:{configs:{},fn:{},components:{},rootInjects:{},statePlugins:{}},boundSystem:{},toolbox:{}},t),this.getSystem=this._getSystem.bind(this),this.store=l(I,(0,w.fromJS)(this.state),this.getSystem),this.buildSystem(!1),this.register(this.plugins)}return(0,b.default)(e,[{key:"getStore",value:function(){return this.store}},{key:"register",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=o(e,this.getSystem());a(this.system,n),t&&this.buildSystem()}},{key:"buildSystem",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.getStore().dispatch,n=this.getStore().getState;this.boundSystem=(0,v.default)({},this.getRootInjects(),this.getWrappedAndBoundActions(t),this.getBoundSelectors(n,this.getSystem),this.getStateThunks(n),this.getFn(),this.getConfigs()),e&&this.rebuildReducer()}},{key:"_getSystem",value:function(){return this.boundSystem}},{key:"getRootInjects",value:function(){return(0,v.default)({getSystem:this.getSystem,getStore:this.getStore.bind(this),getComponents:this.getComponents.bind(this),getState:this.getStore().getState,getConfigs:this._getConfigs.bind(this),Im:k.default},this.system.rootInjects||{})}},{key:"_getConfigs",value:function(){return this.system.configs}},{key:"getConfigs",value:function(){return{configs:this.system.configs}}},{key:"setConfigs",value:function(e){this.system.configs=e}},{key:"rebuildReducer",value:function(){this.store.replaceReducer(s(this.system.statePlugins))}},{key:"getType",value:function(e){var t=e[0].toUpperCase()+e.slice(1);return(0,P.objReduce)(this.system.statePlugins,function(n,r){var i=n[e];if(i)return(0,d.default)({},r+t,i)})}},{key:"getSelectors",value:function(){return this.getType("selectors")}},{key:"getActions",value:function(){var e=this.getType("actions");return(0,P.objMap)(e,function(e){return(0,P.objReduce)(e,function(e,t){if((0,P.isFn)(e))return(0,d.default)({},t,e)})})}},{key:"getWrappedAndBoundActions",value:function(e){var t=this,n=this.getBoundActions(e);return(0,P.objMap)(n,function(e,n){var r=t.system.statePlugins[n.slice(0,-7)].wrapActions;return r?(0,P.objMap)(e,function(e,n){var i=r[n];return i?(Array.isArray(i)||(i=[i]),i.reduce(function(e,n){var r=function(){return n(e,t.getSystem()).apply(void 0,arguments)};if(!(0,P.isFn)(r))throw new TypeError("wrapActions needs to return a function that returns a new function (ie the wrapped action)");return r},e||Function.prototype)):e}):e})}},{key:"getStates",value:function(e){return(0,f.default)(this.system.statePlugins).reduce(function(t,n){return t[n]=e.get(n),t},{})}},{key:"getStateThunks",value:function(e){return(0,f.default)(this.system.statePlugins).reduce(function(t,n){return t[n]=function(){return e().get(n)},t},{})}},{key:"getFn",value:function(){return{fn:this.system.fn}}},{key:"getComponents",value:function(e){return"undefined"!=typeof e?this.system.components[e]:this.system.components}},{key:"getBoundSelectors",value:function(e,t){return(0,P.objMap)(this.getSelectors(),function(n,r){var i=[r.slice(0,-9)],o=function(){return e().getIn(i)};return(0,P.objMap)(n,function(e){return function(){for(var n=arguments.length,r=Array(n),i=0;i<n;i++)r[i]=arguments[i];var a=e.apply(null,[o()].concat(r));return"function"==typeof a&&(a=a(t())),a}})})}},{key:"getBoundActions",value:function(e){e=e||this.getStore().dispatch;var t=function e(t){return"function"!=typeof t?(0,P.objMap)(t,function(t){return e(t)}):function(){var e=null;try{e=t.apply(void 0,arguments)}catch(t){e={type:D.NEW_THROWN_ERR,error:!0,payload:(0,T.default)(t)}}finally{return e}}};return(0,P.objMap)(this.getActions(),function(n){return(0,x.bindActionCreators)(t(n),e)})}},{key:"getMapStateToProps",value:function(){var e=this;return function(){var t=(0,v.default)({},e.getSystem());return t}}},{key:"getMapDispatchToProps",value:function(e){var t=this;return function(n){return(0,E.default)({},t.getWrappedAndBoundActions(n),t.getFn(),e)}}}]),e}();t.default=N},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(138),o=r(i);t.default=function(e,t,n){return t in e?(0,o.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){e.exports={default:n(139),__esModule:!0}},function(e,t,n){n(140);var r=n(59).Object;e.exports=function(e,t,n){return r.defineProperty(e,t,n)}},function(e,t,n){var r=n(81);r(r.S+r.F*!n(89),"Object",{defineProperty:n(85).f})},function(e,t,n){e.exports={default:n(142),__esModule:!0}},function(e,t,n){n(143),e.exports=n(59).Object.assign},function(e,t,n){var r=n(81);r(r.S+r.F,"Object",{assign:n(144)})},function(e,t,n){"use strict";var r=n(65),i=n(122),o=n(123),a=n(63),s=n(69),u=Object.assign;e.exports=!u||n(90)(function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach(function(e){t[e]=e}),7!=u({},e)[n]||Object.keys(u({},t)).join("")!=r})?function(e,t){for(var n=a(e),u=arguments.length,c=1,l=i.f,p=o.f;u>c;)for(var f,h=s(arguments[c++]),d=l?r(h).concat(l(h)):r(h),m=d.length,v=0;m>v;)p.call(h,f=d[v++])&&(n[f]=h[f]);return n}:u},function(e,t){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(138),o=r(i);t.default=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),(0,o.default)(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.compose=t.applyMiddleware=t.bindActionCreators=t.combineReducers=t.createStore=void 0;var i=n(148),o=r(i),a=n(163),s=r(a),u=n(165),c=r(u),l=n(166),p=r(l),f=n(167),h=r(f),d=n(164);r(d);t.createStore=o.default,t.combineReducers=s.default,t.bindActionCreators=c.default,t.applyMiddleware=p.default,t.compose=h.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){function r(){y===v&&(y=v.slice())}function o(){return m}function s(e){if("function"!=typeof e)throw new Error("Expected listener to be a function.");var t=!0;return r(),y.push(e),function(){if(t){t=!1,r();var n=y.indexOf(e);y.splice(n,1)}}}function l(e){if(!(0,a.default)(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if("undefined"==typeof e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(g)throw new Error("Reducers may not dispatch actions.");try{g=!0,m=d(m,e)}finally{g=!1}for(var t=v=y,n=0;n<t.length;n++){var r=t[n];r()}return e}function p(e){if("function"!=typeof e)throw new Error("Expected the nextReducer to be a function.");d=e,l({type:c.INIT})}function f(){var e,t=s;return e={subscribe:function(e){function n(){e.next&&e.next(o())}if("object"!=typeof e)throw new TypeError("Expected the observer to be an object.");n();var r=t(n);return{unsubscribe:r}}},e[u.default]=function(){return this},e}var h;if("function"==typeof t&&"undefined"==typeof n&&(n=t,t=void 0),"undefined"!=typeof n){if("function"!=typeof n)throw new Error("Expected the enhancer to be a function.");return n(i)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var d=e,m=t,v=[],y=v,g=!1;return l({type:c.INIT}),h={dispatch:l,subscribe:s,getState:o,replaceReducer:p},h[u.default]=f,h}t.__esModule=!0,t.ActionTypes=void 0,t.default=i;var o=n(149),a=r(o),s=n(159),u=r(s),c=t.ActionTypes={INIT:"@@redux/INIT"}},function(e,t,n){function r(e){if(!a(e)||i(e)!=s)return!1;var t=o(e);if(null===t)return!0;var n=p.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&l.call(n)==f}var i=n(150),o=n(156),a=n(158),s="[object Object]",u=Function.prototype,c=Object.prototype,l=u.toString,p=c.hasOwnProperty,f=l.call(Object); +e.exports=r},function(e,t,n){function r(e){return null==e?void 0===e?u:s:(e=Object(e),c&&c in e?o(e):a(e))}var i=n(151),o=n(154),a=n(155),s="[object Null]",u="[object Undefined]",c=i?i.toStringTag:void 0;e.exports=r},[1177,152],[1178,153],function(e,t){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(t,function(){return this}())},function(e,t,n){function r(e){var t=a.call(e,u),n=e[u];try{e[u]=void 0;var r=!0}catch(e){}var i=s.call(e);return r&&(t?e[u]=n:delete e[u]),i}var i=n(151),o=Object.prototype,a=o.hasOwnProperty,s=o.toString,u=i?i.toStringTag:void 0;e.exports=r},function(e,t){function n(e){return i.call(e)}var r=Object.prototype,i=r.toString;e.exports=n},[1179,157],function(e,t){function n(e,t){return function(n){return e(t(n))}}e.exports=n},function(e,t){function n(e){return null!=e&&"object"==typeof e}e.exports=n},function(e,t,n){e.exports=n(160)},function(e,t,n){(function(e,r){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o,a=n(162),s=i(a);o="undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof e?e:r;var u=(0,s.default)(o);t.default=u}).call(t,function(){return this}(),n(161)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t){"use strict";function n(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var n=t&&t.type,r=n&&'"'+n.toString()+'"'||"an action";return"Given action "+r+', reducer "'+e+'" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.'}function o(e){Object.keys(e).forEach(function(t){var n=e[t],r=n(void 0,{type:s.ActionTypes.INIT});if("undefined"==typeof r)throw new Error('Reducer "'+t+"\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.");var i="@@redux/PROBE_UNKNOWN_ACTION_"+Math.random().toString(36).substring(7).split("").join(".");if("undefined"==typeof n(void 0,{type:i}))throw new Error('Reducer "'+t+'" returned undefined when probed with a random type. '+("Don't try to handle "+s.ActionTypes.INIT+' or other actions in "redux/*" ')+"namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.")})}function a(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var a=t[r];"function"==typeof e[a]&&(n[a]=e[a])}var s=Object.keys(n),u=void 0;try{o(n)}catch(e){u=e}return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];if(u)throw u;for(var r=!1,o={},a=0;a<s.length;a++){var c=s[a],l=n[c],p=e[c],f=l(p,t);if("undefined"==typeof f){var h=i(c,t);throw new Error(h)}o[c]=f,r=r||f!==p}return r?o:e}}t.__esModule=!0,t.default=a;var s=n(148),u=n(149),c=(r(u),n(164));r(c)},function(e,t){"use strict";function n(e){"undefined"!=typeof console&&"function"==typeof console.error&&console.error(e);try{throw new Error(e)}catch(e){}}t.__esModule=!0,t.default=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){return function(){return t(e.apply(void 0,arguments))}}function o(e,t){if("function"==typeof e)return i(e,t);if("object"!=typeof e||null===e)throw new Error("bindActionCreators expected an object or a function, instead received "+(null===e?"null":typeof e)+'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');for(var n=Object.keys(e),r={},o=0;o<n.length;o++){var a=n[o],u=e[a];"function"==typeof u?r[a]=i(u,t):(0,s.default)("bindActionCreators expected a function actionCreator for key '"+a+"', instead received type '"+typeof u+"'.")}return r}t.__esModule=!0,t.default=o;var a=n(164),s=r(a)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return function(n,r,i){var a=e(n,r,i),u=a.dispatch,c=[],l={getState:a.getState,dispatch:function(e){return u(e)}};return c=t.map(function(e){return e(l)}),u=s.default.apply(void 0,c)(a.dispatch),o({},a,{dispatch:u})}}}t.__esModule=!0;var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t.default=i;var a=n(167),s=r(a)},function(e,t){"use strict";function n(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce(function(e,t){return function(){return e(t.apply(void 0,arguments))}})}t.__esModule=!0,t.default=n},function(e,t,n){!function(t,n){e.exports=n()}(this,function(){"use strict";function e(e,t){t&&(e.prototype=Object.create(t.prototype)),e.prototype.constructor=e}function t(e){return o(e)?e:D(e)}function n(e){return a(e)?e:M(e)}function r(e){return s(e)?e:O(e)}function i(e){return o(e)&&!u(e)?e:P(e)}function o(e){return!(!e||!e[cn])}function a(e){return!(!e||!e[ln])}function s(e){return!(!e||!e[pn])}function u(e){return a(e)||s(e)}function c(e){return!(!e||!e[fn])}function l(e){return e.value=!1,e}function p(e){e&&(e.value=!0)}function f(){}function h(e,t){t=t||0;for(var n=Math.max(0,e.length-t),r=new Array(n),i=0;i<n;i++)r[i]=e[i+t];return r}function d(e){return void 0===e.size&&(e.size=e.__iterate(v)),e.size}function m(e,t){if("number"!=typeof t){var n=t>>>0;if(""+n!==t||4294967295===n)return NaN;t=n}return t<0?d(e)+t:t}function v(){return!0}function y(e,t,n){return(0===e||void 0!==n&&e<=-n)&&(void 0===t||void 0!==n&&t>=n)}function g(e,t){return b(e,t,0)}function _(e,t){return b(e,t,t)}function b(e,t,n){return void 0===e?n:e<0?Math.max(0,t+e):void 0===t?e:Math.min(t,e)}function x(e){this.next=e}function w(e,t,n,r){var i=0===e?t:1===e?n:[t,n];return r?r.value=i:r={value:i,done:!1},r}function k(){return{value:void 0,done:!0}}function S(e){return!!A(e)}function E(e){return e&&"function"==typeof e.next}function C(e){var t=A(e);return t&&t.call(e)}function A(e){var t=e&&(kn&&e[kn]||e[Sn]);if("function"==typeof t)return t}function T(e){return e&&"number"==typeof e.length}function D(e){return null===e||void 0===e?B():o(e)?e.toSeq():q(e)}function M(e){return null===e||void 0===e?B().toKeyedSeq():o(e)?a(e)?e.toSeq():e.fromEntrySeq():L(e)}function O(e){return null===e||void 0===e?B():o(e)?a(e)?e.entrySeq():e.toIndexedSeq():z(e)}function P(e){return(null===e||void 0===e?B():o(e)?a(e)?e.entrySeq():e:z(e)).toSetSeq()}function I(e){this._array=e,this.size=e.length}function N(e){var t=Object.keys(e);this._object=e,this._keys=t,this.size=t.length}function R(e){this._iterable=e,this.size=e.length||e.size}function j(e){this._iterator=e,this._iteratorCache=[]}function F(e){return!(!e||!e[Cn])}function B(){return An||(An=new I([]))}function L(e){var t=Array.isArray(e)?new I(e).fromEntrySeq():E(e)?new j(e).fromEntrySeq():S(e)?new R(e).fromEntrySeq():"object"==typeof e?new N(e):void 0;if(!t)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+e);return t}function z(e){var t=U(e);if(!t)throw new TypeError("Expected Array or iterable object of values: "+e);return t}function q(e){var t=U(e)||"object"==typeof e&&new N(e);if(!t)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+e);return t}function U(e){return T(e)?new I(e):E(e)?new j(e):S(e)?new R(e):void 0}function W(e,t,n,r){var i=e._cache;if(i){for(var o=i.length-1,a=0;a<=o;a++){var s=i[n?o-a:a];if(t(s[1],r?s[0]:a,e)===!1)return a+1}return a}return e.__iterateUncached(t,n)}function K(e,t,n,r){var i=e._cache;if(i){var o=i.length-1,a=0;return new x(function(){var e=i[n?o-a:a];return a++>o?k():w(t,r?e[0]:a-1,e[1])})}return e.__iteratorUncached(t,n)}function V(e,t){return t?H(t,e,"",{"":e}):J(e)}function H(e,t,n,r){return Array.isArray(t)?e.call(r,n,O(t).map(function(n,r){return H(e,n,r,t)})):G(t)?e.call(r,n,M(t).map(function(n,r){return H(e,n,r,t)})):t}function J(e){return Array.isArray(e)?O(e).map(J).toList():G(e)?M(e).map(J).toMap():e}function G(e){return e&&(e.constructor===Object||void 0===e.constructor)}function X(e,t){if(e===t||e!==e&&t!==t)return!0;if(!e||!t)return!1;if("function"==typeof e.valueOf&&"function"==typeof t.valueOf){if(e=e.valueOf(),t=t.valueOf(),e===t||e!==e&&t!==t)return!0;if(!e||!t)return!1}return!("function"!=typeof e.equals||"function"!=typeof t.equals||!e.equals(t))}function Y(e,t){if(e===t)return!0;if(!o(t)||void 0!==e.size&&void 0!==t.size&&e.size!==t.size||void 0!==e.__hash&&void 0!==t.__hash&&e.__hash!==t.__hash||a(e)!==a(t)||s(e)!==s(t)||c(e)!==c(t))return!1;if(0===e.size&&0===t.size)return!0;var n=!u(e);if(c(e)){var r=e.entries();return t.every(function(e,t){var i=r.next().value;return i&&X(i[1],e)&&(n||X(i[0],t))})&&r.next().done}var i=!1;if(void 0===e.size)if(void 0===t.size)"function"==typeof e.cacheResult&&e.cacheResult();else{i=!0;var l=e;e=t,t=l}var p=!0,f=t.__iterate(function(t,r){if(n?!e.has(t):i?!X(t,e.get(r,yn)):!X(e.get(r,yn),t))return p=!1,!1});return p&&e.size===f}function $(e,t){if(!(this instanceof $))return new $(e,t);if(this._value=e,this.size=void 0===t?1/0:Math.max(0,t),0===this.size){if(Tn)return Tn;Tn=this}}function Z(e,t){if(!e)throw new Error(t)}function Q(e,t,n){if(!(this instanceof Q))return new Q(e,t,n);if(Z(0!==n,"Cannot step a Range by 0"),e=e||0,void 0===t&&(t=1/0),n=void 0===n?1:Math.abs(n),t<e&&(n=-n),this._start=e,this._end=t,this._step=n,this.size=Math.max(0,Math.ceil((t-e)/n-1)+1),0===this.size){if(Dn)return Dn;Dn=this}}function ee(){throw TypeError("Abstract")}function te(){}function ne(){}function re(){}function ie(e){return e>>>1&1073741824|3221225471&e}function oe(e){if(e===!1||null===e||void 0===e)return 0;if("function"==typeof e.valueOf&&(e=e.valueOf(),e===!1||null===e||void 0===e))return 0;if(e===!0)return 1;var t=typeof e;if("number"===t){if(e!==e||e===1/0)return 0;var n=0|e;for(n!==e&&(n^=4294967295*e);e>4294967295;)e/=4294967295,n^=e;return ie(n)}if("string"===t)return e.length>Fn?ae(e):se(e);if("function"==typeof e.hashCode)return e.hashCode();if("object"===t)return ue(e);if("function"==typeof e.toString)return se(e.toString());throw new Error("Value type "+t+" cannot be hashed.")}function ae(e){var t=zn[e];return void 0===t&&(t=se(e),Ln===Bn&&(Ln=0,zn={}),Ln++,zn[e]=t),t}function se(e){for(var t=0,n=0;n<e.length;n++)t=31*t+e.charCodeAt(n)|0;return ie(t)}function ue(e){var t;if(Nn&&(t=Mn.get(e),void 0!==t))return t;if(t=e[jn],void 0!==t)return t;if(!In){if(t=e.propertyIsEnumerable&&e.propertyIsEnumerable[jn],void 0!==t)return t;if(t=ce(e),void 0!==t)return t}if(t=++Rn,1073741824&Rn&&(Rn=0),Nn)Mn.set(e,t);else{if(void 0!==Pn&&Pn(e)===!1)throw new Error("Non-extensible objects are not allowed as keys.");if(In)Object.defineProperty(e,jn,{enumerable:!1,configurable:!1,writable:!1,value:t});else if(void 0!==e.propertyIsEnumerable&&e.propertyIsEnumerable===e.constructor.prototype.propertyIsEnumerable)e.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},e.propertyIsEnumerable[jn]=t;else{if(void 0===e.nodeType)throw new Error("Unable to set a non-enumerable property on object.");e[jn]=t}}return t}function ce(e){if(e&&e.nodeType>0)switch(e.nodeType){case 1:return e.uniqueID;case 9:return e.documentElement&&e.documentElement.uniqueID}}function le(e){Z(e!==1/0,"Cannot perform this action with an infinite size.")}function pe(e){return null===e||void 0===e?we():fe(e)&&!c(e)?e:we().withMutations(function(t){var r=n(e);le(r.size),r.forEach(function(e,n){return t.set(n,e)})})}function fe(e){return!(!e||!e[qn])}function he(e,t){this.ownerID=e,this.entries=t}function de(e,t,n){this.ownerID=e,this.bitmap=t,this.nodes=n}function me(e,t,n){this.ownerID=e,this.count=t,this.nodes=n}function ve(e,t,n){this.ownerID=e,this.keyHash=t,this.entries=n}function ye(e,t,n){this.ownerID=e,this.keyHash=t,this.entry=n}function ge(e,t,n){this._type=t,this._reverse=n,this._stack=e._root&&be(e._root)}function _e(e,t){return w(e,t[0],t[1])}function be(e,t){return{node:e,index:0,__prev:t}}function xe(e,t,n,r){var i=Object.create(Un);return i.size=e,i._root=t,i.__ownerID=n,i.__hash=r,i.__altered=!1,i}function we(){return Wn||(Wn=xe(0))}function ke(e,t,n){var r,i;if(e._root){var o=l(gn),a=l(_n);if(r=Se(e._root,e.__ownerID,0,void 0,t,n,o,a),!a.value)return e;i=e.size+(o.value?n===yn?-1:1:0)}else{if(n===yn)return e;i=1,r=new he(e.__ownerID,[[t,n]])}return e.__ownerID?(e.size=i,e._root=r,e.__hash=void 0,e.__altered=!0,e):r?xe(i,r):we()}function Se(e,t,n,r,i,o,a,s){return e?e.update(t,n,r,i,o,a,s):o===yn?e:(p(s),p(a),new ye(t,r,[i,o]))}function Ee(e){return e.constructor===ye||e.constructor===ve}function Ce(e,t,n,r,i){if(e.keyHash===r)return new ve(t,r,[e.entry,i]);var o,a=(0===n?e.keyHash:e.keyHash>>>n)&vn,s=(0===n?r:r>>>n)&vn,u=a===s?[Ce(e,t,n+dn,r,i)]:(o=new ye(t,r,i),a<s?[e,o]:[o,e]);return new de(t,1<<a|1<<s,u)}function Ae(e,t,n,r){e||(e=new f);for(var i=new ye(e,oe(n),[n,r]),o=0;o<t.length;o++){var a=t[o];i=i.update(e,0,void 0,a[0],a[1])}return i}function Te(e,t,n,r){for(var i=0,o=0,a=new Array(n),s=0,u=1,c=t.length;s<c;s++,u<<=1){var l=t[s];void 0!==l&&s!==r&&(i|=u,a[o++]=l)}return new de(e,i,a)}function De(e,t,n,r,i){for(var o=0,a=new Array(mn),s=0;0!==n;s++,n>>>=1)a[s]=1&n?t[o++]:void 0;return a[r]=i,new me(e,o+1,a)}function Me(e,t,r){for(var i=[],a=0;a<r.length;a++){var s=r[a],u=n(s);o(s)||(u=u.map(function(e){return V(e)})),i.push(u)}return Ie(e,t,i)}function Oe(e,t,n){return e&&e.mergeDeep&&o(t)?e.mergeDeep(t):X(e,t)?e:t}function Pe(e){return function(t,n,r){if(t&&t.mergeDeepWith&&o(n))return t.mergeDeepWith(e,n);var i=e(t,n,r);return X(t,i)?t:i}}function Ie(e,t,n){return n=n.filter(function(e){return 0!==e.size}),0===n.length?e:0!==e.size||e.__ownerID||1!==n.length?e.withMutations(function(e){for(var r=t?function(n,r){e.update(r,yn,function(e){return e===yn?n:t(e,n,r)})}:function(t,n){e.set(n,t)},i=0;i<n.length;i++)n[i].forEach(r)}):e.constructor(n[0])}function Ne(e,t,n,r){var i=e===yn,o=t.next();if(o.done){var a=i?n:e,s=r(a);return s===a?e:s}Z(i||e&&e.set,"invalid keyPath");var u=o.value,c=i?yn:e.get(u,yn),l=Ne(c,t,n,r);return l===c?e:l===yn?e.remove(u):(i?we():e).set(u,l)}function Re(e){return e-=e>>1&1431655765,e=(858993459&e)+(e>>2&858993459),e=e+(e>>4)&252645135,e+=e>>8,e+=e>>16,127&e}function je(e,t,n,r){var i=r?e:h(e);return i[t]=n,i}function Fe(e,t,n,r){var i=e.length+1;if(r&&t+1===i)return e[t]=n,e;for(var o=new Array(i),a=0,s=0;s<i;s++)s===t?(o[s]=n,a=-1):o[s]=e[s+a];return o}function Be(e,t,n){var r=e.length-1;if(n&&t===r)return e.pop(),e;for(var i=new Array(r),o=0,a=0;a<r;a++)a===t&&(o=1),i[a]=e[a+o];return i}function Le(e){var t=Ke();if(null===e||void 0===e)return t;if(ze(e))return e;var n=r(e),i=n.size;return 0===i?t:(le(i),i>0&&i<mn?We(0,i,dn,null,new qe(n.toArray())):t.withMutations(function(e){e.setSize(i),n.forEach(function(t,n){return e.set(n,t)})}))}function ze(e){return!(!e||!e[Jn])}function qe(e,t){this.array=e,this.ownerID=t}function Ue(e,t){function n(e,t,n){return 0===t?r(e,n):i(e,t,n)}function r(e,n){var r=n===s?u&&u.array:e&&e.array,i=n>o?0:o-n,c=a-n;return c>mn&&(c=mn),function(){if(i===c)return Yn;var e=t?--c:i++;return r&&r[e]}}function i(e,r,i){var s,u=e&&e.array,c=i>o?0:o-i>>r,l=(a-i>>r)+1;return l>mn&&(l=mn),function(){for(;;){if(s){var e=s();if(e!==Yn)return e;s=null}if(c===l)return Yn;var o=t?--l:c++;s=n(u&&u[o],r-dn,i+(o<<r))}}}var o=e._origin,a=e._capacity,s=$e(a),u=e._tail;return n(e._root,e._level,0)}function We(e,t,n,r,i,o,a){var s=Object.create(Gn);return s.size=t-e,s._origin=e,s._capacity=t,s._level=n,s._root=r,s._tail=i,s.__ownerID=o,s.__hash=a,s.__altered=!1,s}function Ke(){return Xn||(Xn=We(0,0,dn))}function Ve(e,t,n){if(t=m(e,t),t!==t)return e;if(t>=e.size||t<0)return e.withMutations(function(e){t<0?Xe(e,t).set(0,n):Xe(e,0,t+1).set(t,n)});t+=e._origin;var r=e._tail,i=e._root,o=l(_n);return t>=$e(e._capacity)?r=He(r,e.__ownerID,0,t,n,o):i=He(i,e.__ownerID,e._level,t,n,o),o.value?e.__ownerID?(e._root=i,e._tail=r,e.__hash=void 0,e.__altered=!0,e):We(e._origin,e._capacity,e._level,i,r):e}function He(e,t,n,r,i,o){var a=r>>>n&vn,s=e&&a<e.array.length;if(!s&&void 0===i)return e;var u;if(n>0){var c=e&&e.array[a],l=He(c,t,n-dn,r,i,o);return l===c?e:(u=Je(e,t),u.array[a]=l,u)}return s&&e.array[a]===i?e:(p(o),u=Je(e,t),void 0===i&&a===u.array.length-1?u.array.pop():u.array[a]=i,u)}function Je(e,t){return t&&e&&t===e.ownerID?e:new qe(e?e.array.slice():[],t)}function Ge(e,t){if(t>=$e(e._capacity))return e._tail;if(t<1<<e._level+dn){for(var n=e._root,r=e._level;n&&r>0;)n=n.array[t>>>r&vn],r-=dn;return n}}function Xe(e,t,n){void 0!==t&&(t|=0),void 0!==n&&(n|=0);var r=e.__ownerID||new f,i=e._origin,o=e._capacity,a=i+t,s=void 0===n?o:n<0?o+n:i+n;if(a===i&&s===o)return e;if(a>=s)return e.clear();for(var u=e._level,c=e._root,l=0;a+l<0;)c=new qe(c&&c.array.length?[void 0,c]:[],r),u+=dn,l+=1<<u;l&&(a+=l,i+=l,s+=l,o+=l);for(var p=$e(o),h=$e(s);h>=1<<u+dn;)c=new qe(c&&c.array.length?[c]:[],r),u+=dn;var d=e._tail,m=h<p?Ge(e,s-1):h>p?new qe([],r):d;if(d&&h>p&&a<o&&d.array.length){c=Je(c,r);for(var v=c,y=u;y>dn;y-=dn){var g=p>>>y&vn;v=v.array[g]=Je(v.array[g],r)}v.array[p>>>dn&vn]=d}if(s<o&&(m=m&&m.removeAfter(r,0,s)),a>=h)a-=h,s-=h,u=dn,c=null,m=m&&m.removeBefore(r,0,a);else if(a>i||h<p){for(l=0;c;){var _=a>>>u&vn;if(_!==h>>>u&vn)break;_&&(l+=(1<<u)*_),u-=dn,c=c.array[_]}c&&a>i&&(c=c.removeBefore(r,u,a-l)),c&&h<p&&(c=c.removeAfter(r,u,h-l)),l&&(a-=l,s-=l)}return e.__ownerID?(e.size=s-a,e._origin=a,e._capacity=s,e._level=u,e._root=c,e._tail=m,e.__hash=void 0,e.__altered=!0,e):We(a,s,u,c,m)}function Ye(e,t,n){for(var i=[],a=0,s=0;s<n.length;s++){var u=n[s],c=r(u);c.size>a&&(a=c.size),o(u)||(c=c.map(function(e){return V(e)})),i.push(c)}return a>e.size&&(e=e.setSize(a)),Ie(e,t,i)}function $e(e){return e<mn?0:e-1>>>dn<<dn}function Ze(e){return null===e||void 0===e?tt():Qe(e)?e:tt().withMutations(function(t){var r=n(e);le(r.size),r.forEach(function(e,n){return t.set(n,e)})})}function Qe(e){return fe(e)&&c(e)}function et(e,t,n,r){var i=Object.create(Ze.prototype);return i.size=e?e.size:0,i._map=e,i._list=t,i.__ownerID=n,i.__hash=r,i}function tt(){return $n||($n=et(we(),Ke()))}function nt(e,t,n){var r,i,o=e._map,a=e._list,s=o.get(t),u=void 0!==s;if(n===yn){if(!u)return e;a.size>=mn&&a.size>=2*o.size?(i=a.filter(function(e,t){return void 0!==e&&s!==t}),r=i.toKeyedSeq().map(function(e){return e[0]}).flip().toMap(),e.__ownerID&&(r.__ownerID=i.__ownerID=e.__ownerID)):(r=o.remove(t),i=s===a.size-1?a.pop():a.set(s,void 0))}else if(u){if(n===a.get(s)[1])return e;r=o,i=a.set(s,[t,n])}else r=o.set(t,a.size),i=a.set(a.size,[t,n]);return e.__ownerID?(e.size=r.size,e._map=r,e._list=i,e.__hash=void 0,e):et(r,i)}function rt(e,t){this._iter=e,this._useKeys=t,this.size=e.size}function it(e){this._iter=e,this.size=e.size}function ot(e){this._iter=e,this.size=e.size}function at(e){this._iter=e,this.size=e.size}function st(e){var t=Tt(e);return t._iter=e,t.size=e.size,t.flip=function(){return e},t.reverse=function(){var t=e.reverse.apply(this);return t.flip=function(){return e.reverse()},t},t.has=function(t){return e.includes(t)},t.includes=function(t){return e.has(t)},t.cacheResult=Dt,t.__iterateUncached=function(t,n){var r=this;return e.__iterate(function(e,n){return t(n,e,r)!==!1},n)},t.__iteratorUncached=function(t,n){if(t===wn){var r=e.__iterator(t,n);return new x(function(){var e=r.next();if(!e.done){var t=e.value[0];e.value[0]=e.value[1],e.value[1]=t}return e})}return e.__iterator(t===xn?bn:xn,n)},t}function ut(e,t,n){var r=Tt(e);return r.size=e.size,r.has=function(t){return e.has(t)},r.get=function(r,i){var o=e.get(r,yn);return o===yn?i:t.call(n,o,r,e)},r.__iterateUncached=function(r,i){var o=this;return e.__iterate(function(e,i,a){return r(t.call(n,e,i,a),i,o)!==!1},i)},r.__iteratorUncached=function(r,i){var o=e.__iterator(wn,i);return new x(function(){var i=o.next();if(i.done)return i;var a=i.value,s=a[0];return w(r,s,t.call(n,a[1],s,e),i)})},r}function ct(e,t){var n=Tt(e);return n._iter=e,n.size=e.size,n.reverse=function(){return e},e.flip&&(n.flip=function(){var t=st(e);return t.reverse=function(){return e.flip()},t}),n.get=function(n,r){return e.get(t?n:-1-n,r)},n.has=function(n){return e.has(t?n:-1-n)},n.includes=function(t){return e.includes(t)},n.cacheResult=Dt,n.__iterate=function(t,n){var r=this;return e.__iterate(function(e,n){return t(e,n,r)},!n)},n.__iterator=function(t,n){return e.__iterator(t,!n)},n}function lt(e,t,n,r){var i=Tt(e);return r&&(i.has=function(r){var i=e.get(r,yn);return i!==yn&&!!t.call(n,i,r,e)},i.get=function(r,i){var o=e.get(r,yn);return o!==yn&&t.call(n,o,r,e)?o:i}),i.__iterateUncached=function(i,o){var a=this,s=0;return e.__iterate(function(e,o,u){if(t.call(n,e,o,u))return s++,i(e,r?o:s-1,a)},o),s},i.__iteratorUncached=function(i,o){var a=e.__iterator(wn,o),s=0;return new x(function(){for(;;){var o=a.next();if(o.done)return o;var u=o.value,c=u[0],l=u[1];if(t.call(n,l,c,e))return w(i,r?c:s++,l,o)}})},i}function pt(e,t,n){var r=pe().asMutable();return e.__iterate(function(i,o){r.update(t.call(n,i,o,e),0,function(e){return e+1})}),r.asImmutable()}function ft(e,t,n){var r=a(e),i=(c(e)?Ze():pe()).asMutable();e.__iterate(function(o,a){i.update(t.call(n,o,a,e),function(e){return e=e||[],e.push(r?[a,o]:o),e})});var o=At(e);return i.map(function(t){return St(e,o(t))})}function ht(e,t,n,r){var i=e.size;if(void 0!==t&&(t|=0),void 0!==n&&(n===1/0?n=i:n|=0),y(t,n,i))return e;var o=g(t,i),a=_(n,i);if(o!==o||a!==a)return ht(e.toSeq().cacheResult(),t,n,r);var s,u=a-o;u===u&&(s=u<0?0:u);var c=Tt(e);return c.size=0===s?s:e.size&&s||void 0,!r&&F(e)&&s>=0&&(c.get=function(t,n){return t=m(this,t),t>=0&&t<s?e.get(t+o,n):n}),c.__iterateUncached=function(t,n){var i=this;if(0===s)return 0;if(n)return this.cacheResult().__iterate(t,n);var a=0,u=!0,c=0;return e.__iterate(function(e,n){if(!u||!(u=a++<o))return c++,t(e,r?n:c-1,i)!==!1&&c!==s}),c},c.__iteratorUncached=function(t,n){if(0!==s&&n)return this.cacheResult().__iterator(t,n);var i=0!==s&&e.__iterator(t,n),a=0,u=0;return new x(function(){for(;a++<o;)i.next();if(++u>s)return k();var e=i.next();return r||t===xn?e:t===bn?w(t,u-1,void 0,e):w(t,u-1,e.value[1],e)})},c}function dt(e,t,n){var r=Tt(e);return r.__iterateUncached=function(r,i){var o=this;if(i)return this.cacheResult().__iterate(r,i);var a=0;return e.__iterate(function(e,i,s){return t.call(n,e,i,s)&&++a&&r(e,i,o)}),a},r.__iteratorUncached=function(r,i){var o=this;if(i)return this.cacheResult().__iterator(r,i);var a=e.__iterator(wn,i),s=!0;return new x(function(){if(!s)return k();var e=a.next();if(e.done)return e;var i=e.value,u=i[0],c=i[1];return t.call(n,c,u,o)?r===wn?e:w(r,u,c,e):(s=!1,k())})},r}function mt(e,t,n,r){var i=Tt(e);return i.__iterateUncached=function(i,o){var a=this;if(o)return this.cacheResult().__iterate(i,o);var s=!0,u=0;return e.__iterate(function(e,o,c){if(!s||!(s=t.call(n,e,o,c)))return u++,i(e,r?o:u-1,a)}),u},i.__iteratorUncached=function(i,o){var a=this;if(o)return this.cacheResult().__iterator(i,o);var s=e.__iterator(wn,o),u=!0,c=0;return new x(function(){var e,o,l;do{if(e=s.next(),e.done)return r||i===xn?e:i===bn?w(i,c++,void 0,e):w(i,c++,e.value[1],e);var p=e.value;o=p[0],l=p[1],u&&(u=t.call(n,l,o,a))}while(u);return i===wn?e:w(i,o,l,e)})},i}function vt(e,t){var r=a(e),i=[e].concat(t).map(function(e){return o(e)?r&&(e=n(e)):e=r?L(e):z(Array.isArray(e)?e:[e]),e}).filter(function(e){return 0!==e.size});if(0===i.length)return e;if(1===i.length){var u=i[0];if(u===e||r&&a(u)||s(e)&&s(u))return u}var c=new I(i);return r?c=c.toKeyedSeq():s(e)||(c=c.toSetSeq()),c=c.flatten(!0),c.size=i.reduce(function(e,t){if(void 0!==e){var n=t.size;if(void 0!==n)return e+n}},0),c}function yt(e,t,n){var r=Tt(e);return r.__iterateUncached=function(r,i){function a(e,c){var l=this;e.__iterate(function(e,i){return(!t||c<t)&&o(e)?a(e,c+1):r(e,n?i:s++,l)===!1&&(u=!0),!u},i)}var s=0,u=!1;return a(e,0),s},r.__iteratorUncached=function(r,i){var a=e.__iterator(r,i),s=[],u=0;return new x(function(){for(;a;){var e=a.next();if(e.done===!1){var c=e.value;if(r===wn&&(c=c[1]),t&&!(s.length<t)||!o(c))return n?e:w(r,u++,c,e);s.push(a),a=c.__iterator(r,i)}else a=s.pop()}return k()})},r}function gt(e,t,n){var r=At(e);return e.toSeq().map(function(i,o){return r(t.call(n,i,o,e))}).flatten(!0)}function _t(e,t){var n=Tt(e);return n.size=e.size&&2*e.size-1,n.__iterateUncached=function(n,r){var i=this,o=0;return e.__iterate(function(e,r){return(!o||n(t,o++,i)!==!1)&&n(e,o++,i)!==!1},r),o},n.__iteratorUncached=function(n,r){var i,o=e.__iterator(xn,r),a=0;return new x(function(){return(!i||a%2)&&(i=o.next(),i.done)?i:a%2?w(n,a++,t):w(n,a++,i.value,i)})},n}function bt(e,t,n){t||(t=Mt);var r=a(e),i=0,o=e.toSeq().map(function(t,r){return[r,t,i++,n?n(t,r,e):t]}).toArray();return o.sort(function(e,n){return t(e[3],n[3])||e[2]-n[2]}).forEach(r?function(e,t){o[t].length=2}:function(e,t){o[t]=e[1]}),r?M(o):s(e)?O(o):P(o)}function xt(e,t,n){if(t||(t=Mt),n){var r=e.toSeq().map(function(t,r){return[t,n(t,r,e)]}).reduce(function(e,n){return wt(t,e[1],n[1])?n:e});return r&&r[0]}return e.reduce(function(e,n){return wt(t,e,n)?n:e})}function wt(e,t,n){var r=e(n,t);return 0===r&&n!==t&&(void 0===n||null===n||n!==n)||r>0}function kt(e,n,r){var i=Tt(e);return i.size=new I(r).map(function(e){return e.size}).min(),i.__iterate=function(e,t){for(var n,r=this.__iterator(xn,t),i=0;!(n=r.next()).done&&e(n.value,i++,this)!==!1;);return i},i.__iteratorUncached=function(e,i){var o=r.map(function(e){return e=t(e),C(i?e.reverse():e)}),a=0,s=!1;return new x(function(){var t;return s||(t=o.map(function(e){return e.next()}),s=t.some(function(e){return e.done})),s?k():w(e,a++,n.apply(null,t.map(function(e){return e.value})))})},i}function St(e,t){return F(e)?t:e.constructor(t)}function Et(e){if(e!==Object(e))throw new TypeError("Expected [K, V] tuple: "+e)}function Ct(e){return le(e.size),d(e)}function At(e){return a(e)?n:s(e)?r:i}function Tt(e){return Object.create((a(e)?M:s(e)?O:P).prototype)}function Dt(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):D.prototype.cacheResult.call(this)}function Mt(e,t){return e>t?1:e<t?-1:0}function Ot(e){var n=C(e);if(!n){if(!T(e))throw new TypeError("Expected iterable or array-like: "+e);n=C(t(e))}return n}function Pt(e,t){var n,r=function(o){if(o instanceof r)return o;if(!(this instanceof r))return new r(o);if(!n){n=!0;var a=Object.keys(e);Rt(i,a),i.size=a.length,i._name=t,i._keys=a,i._defaultValues=e}this._map=pe(o)},i=r.prototype=Object.create(Zn);return i.constructor=r,r}function It(e,t,n){var r=Object.create(Object.getPrototypeOf(e));return r._map=t,r.__ownerID=n,r}function Nt(e){return e._name||e.constructor.name||"Record"}function Rt(e,t){try{t.forEach(jt.bind(void 0,e))}catch(e){}}function jt(e,t){Object.defineProperty(e,t,{get:function(){return this.get(t)},set:function(e){Z(this.__ownerID,"Cannot set on an immutable record."),this.set(t,e)}})}function Ft(e){return null===e||void 0===e?qt():Bt(e)&&!c(e)?e:qt().withMutations(function(t){var n=i(e);le(n.size),n.forEach(function(e){return t.add(e)})})}function Bt(e){return!(!e||!e[Qn])}function Lt(e,t){return e.__ownerID?(e.size=t.size,e._map=t,e):t===e._map?e:0===t.size?e.__empty():e.__make(t)}function zt(e,t){var n=Object.create(er);return n.size=e?e.size:0,n._map=e,n.__ownerID=t,n}function qt(){return tr||(tr=zt(we()))}function Ut(e){return null===e||void 0===e?Vt():Wt(e)?e:Vt().withMutations(function(t){var n=i(e);le(n.size),n.forEach(function(e){return t.add(e)})})}function Wt(e){return Bt(e)&&c(e)}function Kt(e,t){var n=Object.create(nr);return n.size=e?e.size:0,n._map=e,n.__ownerID=t,n}function Vt(){return rr||(rr=Kt(tt()))}function Ht(e){return null===e||void 0===e?Xt():Jt(e)?e:Xt().unshiftAll(e)}function Jt(e){return!(!e||!e[ir])}function Gt(e,t,n,r){var i=Object.create(or);return i.size=e,i._head=t,i.__ownerID=n,i.__hash=r,i.__altered=!1,i}function Xt(){return ar||(ar=Gt(0))}function Yt(e,t){var n=function(n){e.prototype[n]=t[n]};return Object.keys(t).forEach(n),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach(n),e}function $t(e,t){return t}function Zt(e,t){return[t,e]}function Qt(e){return function(){return!e.apply(this,arguments)}}function en(e){return function(){return-e.apply(this,arguments)}}function tn(e){return"string"==typeof e?JSON.stringify(e):String(e)}function nn(){return h(arguments)}function rn(e,t){return e<t?1:e>t?-1:0}function on(e){if(e.size===1/0)return 0;var t=c(e),n=a(e),r=t?1:0,i=e.__iterate(n?t?function(e,t){r=31*r+sn(oe(e),oe(t))|0}:function(e,t){r=r+sn(oe(e),oe(t))|0}:t?function(e){r=31*r+oe(e)|0}:function(e){r=r+oe(e)|0});return an(i,r)}function an(e,t){return t=On(t,3432918353),t=On(t<<15|t>>>-15,461845907),t=On(t<<13|t>>>-13,5),t=(t+3864292196|0)^e,t=On(t^t>>>16,2246822507),t=On(t^t>>>13,3266489909),t=ie(t^t>>>16)}function sn(e,t){return e^t+2654435769+(e<<6)+(e>>2)|0}var un=Array.prototype.slice;e(n,t),e(r,t),e(i,t),t.isIterable=o,t.isKeyed=a,t.isIndexed=s,t.isAssociative=u,t.isOrdered=c,t.Keyed=n,t.Indexed=r,t.Set=i;var cn="@@__IMMUTABLE_ITERABLE__@@",ln="@@__IMMUTABLE_KEYED__@@",pn="@@__IMMUTABLE_INDEXED__@@",fn="@@__IMMUTABLE_ORDERED__@@",hn="delete",dn=5,mn=1<<dn,vn=mn-1,yn={},gn={value:!1},_n={value:!1},bn=0,xn=1,wn=2,kn="function"==typeof Symbol&&Symbol.iterator,Sn="@@iterator",En=kn||Sn;x.prototype.toString=function(){return"[Iterator]"},x.KEYS=bn,x.VALUES=xn,x.ENTRIES=wn,x.prototype.inspect=x.prototype.toSource=function(){return this.toString()},x.prototype[En]=function(){return this},e(D,t),D.of=function(){return D(arguments)},D.prototype.toSeq=function(){return this},D.prototype.toString=function(){return this.__toString("Seq {","}")},D.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},D.prototype.__iterate=function(e,t){return W(this,e,t,!0)},D.prototype.__iterator=function(e,t){return K(this,e,t,!0)},e(M,D),M.prototype.toKeyedSeq=function(){return this},e(O,D),O.of=function(){return O(arguments)},O.prototype.toIndexedSeq=function(){return this},O.prototype.toString=function(){return this.__toString("Seq [","]")},O.prototype.__iterate=function(e,t){return W(this,e,t,!1)},O.prototype.__iterator=function(e,t){return K(this,e,t,!1)},e(P,D),P.of=function(){return P(arguments)},P.prototype.toSetSeq=function(){return this},D.isSeq=F,D.Keyed=M,D.Set=P,D.Indexed=O;var Cn="@@__IMMUTABLE_SEQ__@@";D.prototype[Cn]=!0,e(I,O),I.prototype.get=function(e,t){return this.has(e)?this._array[m(this,e)]:t},I.prototype.__iterate=function(e,t){for(var n=this._array,r=n.length-1,i=0;i<=r;i++)if(e(n[t?r-i:i],i,this)===!1)return i+1;return i},I.prototype.__iterator=function(e,t){var n=this._array,r=n.length-1,i=0;return new x(function(){return i>r?k():w(e,i,n[t?r-i++:i++])})},e(N,M),N.prototype.get=function(e,t){return void 0===t||this.has(e)?this._object[e]:t},N.prototype.has=function(e){return this._object.hasOwnProperty(e)},N.prototype.__iterate=function(e,t){for(var n=this._object,r=this._keys,i=r.length-1,o=0;o<=i;o++){var a=r[t?i-o:o];if(e(n[a],a,this)===!1)return o+1}return o},N.prototype.__iterator=function(e,t){var n=this._object,r=this._keys,i=r.length-1,o=0;return new x(function(){var a=r[t?i-o:o];return o++>i?k():w(e,a,n[a])})},N.prototype[fn]=!0, +e(R,O),R.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);var n=this._iterable,r=C(n),i=0;if(E(r))for(var o;!(o=r.next()).done&&e(o.value,i++,this)!==!1;);return i},R.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var n=this._iterable,r=C(n);if(!E(r))return new x(k);var i=0;return new x(function(){var t=r.next();return t.done?t:w(e,i++,t.value)})},e(j,O),j.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);for(var n=this._iterator,r=this._iteratorCache,i=0;i<r.length;)if(e(r[i],i++,this)===!1)return i;for(var o;!(o=n.next()).done;){var a=o.value;if(r[i]=a,e(a,i++,this)===!1)break}return i},j.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var n=this._iterator,r=this._iteratorCache,i=0;return new x(function(){if(i>=r.length){var t=n.next();if(t.done)return t;r[i]=t.value}return w(e,i,r[i++])})};var An;e($,O),$.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},$.prototype.get=function(e,t){return this.has(e)?this._value:t},$.prototype.includes=function(e){return X(this._value,e)},$.prototype.slice=function(e,t){var n=this.size;return y(e,t,n)?this:new $(this._value,_(t,n)-g(e,n))},$.prototype.reverse=function(){return this},$.prototype.indexOf=function(e){return X(this._value,e)?0:-1},$.prototype.lastIndexOf=function(e){return X(this._value,e)?this.size:-1},$.prototype.__iterate=function(e,t){for(var n=0;n<this.size;n++)if(e(this._value,n,this)===!1)return n+1;return n},$.prototype.__iterator=function(e,t){var n=this,r=0;return new x(function(){return r<n.size?w(e,r++,n._value):k()})},$.prototype.equals=function(e){return e instanceof $?X(this._value,e._value):Y(e)};var Tn;e(Q,O),Q.prototype.toString=function(){return 0===this.size?"Range []":"Range [ "+this._start+"..."+this._end+(1!==this._step?" by "+this._step:"")+" ]"},Q.prototype.get=function(e,t){return this.has(e)?this._start+m(this,e)*this._step:t},Q.prototype.includes=function(e){var t=(e-this._start)/this._step;return t>=0&&t<this.size&&t===Math.floor(t)},Q.prototype.slice=function(e,t){return y(e,t,this.size)?this:(e=g(e,this.size),t=_(t,this.size),t<=e?new Q(0,0):new Q(this.get(e,this._end),this.get(t,this._end),this._step))},Q.prototype.indexOf=function(e){var t=e-this._start;if(t%this._step===0){var n=t/this._step;if(n>=0&&n<this.size)return n}return-1},Q.prototype.lastIndexOf=function(e){return this.indexOf(e)},Q.prototype.__iterate=function(e,t){for(var n=this.size-1,r=this._step,i=t?this._start+n*r:this._start,o=0;o<=n;o++){if(e(i,o,this)===!1)return o+1;i+=t?-r:r}return o},Q.prototype.__iterator=function(e,t){var n=this.size-1,r=this._step,i=t?this._start+n*r:this._start,o=0;return new x(function(){var a=i;return i+=t?-r:r,o>n?k():w(e,o++,a)})},Q.prototype.equals=function(e){return e instanceof Q?this._start===e._start&&this._end===e._end&&this._step===e._step:Y(this,e)};var Dn;e(ee,t),e(te,ee),e(ne,ee),e(re,ee),ee.Keyed=te,ee.Indexed=ne,ee.Set=re;var Mn,On="function"==typeof Math.imul&&Math.imul(4294967295,2)===-2?Math.imul:function(e,t){e|=0,t|=0;var n=65535&e,r=65535&t;return n*r+((e>>>16)*r+n*(t>>>16)<<16>>>0)|0},Pn=Object.isExtensible,In=function(){try{return Object.defineProperty({},"@",{}),!0}catch(e){return!1}}(),Nn="function"==typeof WeakMap;Nn&&(Mn=new WeakMap);var Rn=0,jn="__immutablehash__";"function"==typeof Symbol&&(jn=Symbol(jn));var Fn=16,Bn=255,Ln=0,zn={};e(pe,te),pe.of=function(){var e=un.call(arguments,0);return we().withMutations(function(t){for(var n=0;n<e.length;n+=2){if(n+1>=e.length)throw new Error("Missing value for key: "+e[n]);t.set(e[n],e[n+1])}})},pe.prototype.toString=function(){return this.__toString("Map {","}")},pe.prototype.get=function(e,t){return this._root?this._root.get(0,void 0,e,t):t},pe.prototype.set=function(e,t){return ke(this,e,t)},pe.prototype.setIn=function(e,t){return this.updateIn(e,yn,function(){return t})},pe.prototype.remove=function(e){return ke(this,e,yn)},pe.prototype.deleteIn=function(e){return this.updateIn(e,function(){return yn})},pe.prototype.update=function(e,t,n){return 1===arguments.length?e(this):this.updateIn([e],t,n)},pe.prototype.updateIn=function(e,t,n){n||(n=t,t=void 0);var r=Ne(this,Ot(e),t,n);return r===yn?void 0:r},pe.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):we()},pe.prototype.merge=function(){return Me(this,void 0,arguments)},pe.prototype.mergeWith=function(e){var t=un.call(arguments,1);return Me(this,e,t)},pe.prototype.mergeIn=function(e){var t=un.call(arguments,1);return this.updateIn(e,we(),function(e){return"function"==typeof e.merge?e.merge.apply(e,t):t[t.length-1]})},pe.prototype.mergeDeep=function(){return Me(this,Oe,arguments)},pe.prototype.mergeDeepWith=function(e){var t=un.call(arguments,1);return Me(this,Pe(e),t)},pe.prototype.mergeDeepIn=function(e){var t=un.call(arguments,1);return this.updateIn(e,we(),function(e){return"function"==typeof e.mergeDeep?e.mergeDeep.apply(e,t):t[t.length-1]})},pe.prototype.sort=function(e){return Ze(bt(this,e))},pe.prototype.sortBy=function(e,t){return Ze(bt(this,t,e))},pe.prototype.withMutations=function(e){var t=this.asMutable();return e(t),t.wasAltered()?t.__ensureOwner(this.__ownerID):this},pe.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new f)},pe.prototype.asImmutable=function(){return this.__ensureOwner()},pe.prototype.wasAltered=function(){return this.__altered},pe.prototype.__iterator=function(e,t){return new ge(this,e,t)},pe.prototype.__iterate=function(e,t){var n=this,r=0;return this._root&&this._root.iterate(function(t){return r++,e(t[1],t[0],n)},t),r},pe.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?xe(this.size,this._root,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},pe.isMap=fe;var qn="@@__IMMUTABLE_MAP__@@",Un=pe.prototype;Un[qn]=!0,Un[hn]=Un.remove,Un.removeIn=Un.deleteIn,he.prototype.get=function(e,t,n,r){for(var i=this.entries,o=0,a=i.length;o<a;o++)if(X(n,i[o][0]))return i[o][1];return r},he.prototype.update=function(e,t,n,r,i,o,a){for(var s=i===yn,u=this.entries,c=0,l=u.length;c<l&&!X(r,u[c][0]);c++);var f=c<l;if(f?u[c][1]===i:s)return this;if(p(a),(s||!f)&&p(o),!s||1!==u.length){if(!f&&!s&&u.length>=Kn)return Ae(e,u,r,i);var d=e&&e===this.ownerID,m=d?u:h(u);return f?s?c===l-1?m.pop():m[c]=m.pop():m[c]=[r,i]:m.push([r,i]),d?(this.entries=m,this):new he(e,m)}},de.prototype.get=function(e,t,n,r){void 0===t&&(t=oe(n));var i=1<<((0===e?t:t>>>e)&vn),o=this.bitmap;return 0===(o&i)?r:this.nodes[Re(o&i-1)].get(e+dn,t,n,r)},de.prototype.update=function(e,t,n,r,i,o,a){void 0===n&&(n=oe(r));var s=(0===t?n:n>>>t)&vn,u=1<<s,c=this.bitmap,l=0!==(c&u);if(!l&&i===yn)return this;var p=Re(c&u-1),f=this.nodes,h=l?f[p]:void 0,d=Se(h,e,t+dn,n,r,i,o,a);if(d===h)return this;if(!l&&d&&f.length>=Vn)return De(e,f,c,s,d);if(l&&!d&&2===f.length&&Ee(f[1^p]))return f[1^p];if(l&&d&&1===f.length&&Ee(d))return d;var m=e&&e===this.ownerID,v=l?d?c:c^u:c|u,y=l?d?je(f,p,d,m):Be(f,p,m):Fe(f,p,d,m);return m?(this.bitmap=v,this.nodes=y,this):new de(e,v,y)},me.prototype.get=function(e,t,n,r){void 0===t&&(t=oe(n));var i=(0===e?t:t>>>e)&vn,o=this.nodes[i];return o?o.get(e+dn,t,n,r):r},me.prototype.update=function(e,t,n,r,i,o,a){void 0===n&&(n=oe(r));var s=(0===t?n:n>>>t)&vn,u=i===yn,c=this.nodes,l=c[s];if(u&&!l)return this;var p=Se(l,e,t+dn,n,r,i,o,a);if(p===l)return this;var f=this.count;if(l){if(!p&&(f--,f<Hn))return Te(e,c,f,s)}else f++;var h=e&&e===this.ownerID,d=je(c,s,p,h);return h?(this.count=f,this.nodes=d,this):new me(e,f,d)},ve.prototype.get=function(e,t,n,r){for(var i=this.entries,o=0,a=i.length;o<a;o++)if(X(n,i[o][0]))return i[o][1];return r},ve.prototype.update=function(e,t,n,r,i,o,a){void 0===n&&(n=oe(r));var s=i===yn;if(n!==this.keyHash)return s?this:(p(a),p(o),Ce(this,e,t,n,[r,i]));for(var u=this.entries,c=0,l=u.length;c<l&&!X(r,u[c][0]);c++);var f=c<l;if(f?u[c][1]===i:s)return this;if(p(a),(s||!f)&&p(o),s&&2===l)return new ye(e,this.keyHash,u[1^c]);var d=e&&e===this.ownerID,m=d?u:h(u);return f?s?c===l-1?m.pop():m[c]=m.pop():m[c]=[r,i]:m.push([r,i]),d?(this.entries=m,this):new ve(e,this.keyHash,m)},ye.prototype.get=function(e,t,n,r){return X(n,this.entry[0])?this.entry[1]:r},ye.prototype.update=function(e,t,n,r,i,o,a){var s=i===yn,u=X(r,this.entry[0]);return(u?i===this.entry[1]:s)?this:(p(a),s?void p(o):u?e&&e===this.ownerID?(this.entry[1]=i,this):new ye(e,this.keyHash,[r,i]):(p(o),Ce(this,e,t,oe(r),[r,i])))},he.prototype.iterate=ve.prototype.iterate=function(e,t){for(var n=this.entries,r=0,i=n.length-1;r<=i;r++)if(e(n[t?i-r:r])===!1)return!1},de.prototype.iterate=me.prototype.iterate=function(e,t){for(var n=this.nodes,r=0,i=n.length-1;r<=i;r++){var o=n[t?i-r:r];if(o&&o.iterate(e,t)===!1)return!1}},ye.prototype.iterate=function(e,t){return e(this.entry)},e(ge,x),ge.prototype.next=function(){for(var e=this._type,t=this._stack;t;){var n,r=t.node,i=t.index++;if(r.entry){if(0===i)return _e(e,r.entry)}else if(r.entries){if(n=r.entries.length-1,i<=n)return _e(e,r.entries[this._reverse?n-i:i])}else if(n=r.nodes.length-1,i<=n){var o=r.nodes[this._reverse?n-i:i];if(o){if(o.entry)return _e(e,o.entry);t=this._stack=be(o,t)}continue}t=this._stack=this._stack.__prev}return k()};var Wn,Kn=mn/4,Vn=mn/2,Hn=mn/4;e(Le,ne),Le.of=function(){return this(arguments)},Le.prototype.toString=function(){return this.__toString("List [","]")},Le.prototype.get=function(e,t){if(e=m(this,e),e>=0&&e<this.size){e+=this._origin;var n=Ge(this,e);return n&&n.array[e&vn]}return t},Le.prototype.set=function(e,t){return Ve(this,e,t)},Le.prototype.remove=function(e){return this.has(e)?0===e?this.shift():e===this.size-1?this.pop():this.splice(e,1):this},Le.prototype.insert=function(e,t){return this.splice(e,0,t)},Le.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=dn,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):Ke()},Le.prototype.push=function(){var e=arguments,t=this.size;return this.withMutations(function(n){Xe(n,0,t+e.length);for(var r=0;r<e.length;r++)n.set(t+r,e[r])})},Le.prototype.pop=function(){return Xe(this,0,-1)},Le.prototype.unshift=function(){var e=arguments;return this.withMutations(function(t){Xe(t,-e.length);for(var n=0;n<e.length;n++)t.set(n,e[n])})},Le.prototype.shift=function(){return Xe(this,1)},Le.prototype.merge=function(){return Ye(this,void 0,arguments)},Le.prototype.mergeWith=function(e){var t=un.call(arguments,1);return Ye(this,e,t)},Le.prototype.mergeDeep=function(){return Ye(this,Oe,arguments)},Le.prototype.mergeDeepWith=function(e){var t=un.call(arguments,1);return Ye(this,Pe(e),t)},Le.prototype.setSize=function(e){return Xe(this,0,e)},Le.prototype.slice=function(e,t){var n=this.size;return y(e,t,n)?this:Xe(this,g(e,n),_(t,n))},Le.prototype.__iterator=function(e,t){var n=0,r=Ue(this,t);return new x(function(){var t=r();return t===Yn?k():w(e,n++,t)})},Le.prototype.__iterate=function(e,t){for(var n,r=0,i=Ue(this,t);(n=i())!==Yn&&e(n,r++,this)!==!1;);return r},Le.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?We(this._origin,this._capacity,this._level,this._root,this._tail,e,this.__hash):(this.__ownerID=e,this)},Le.isList=ze;var Jn="@@__IMMUTABLE_LIST__@@",Gn=Le.prototype;Gn[Jn]=!0,Gn[hn]=Gn.remove,Gn.setIn=Un.setIn,Gn.deleteIn=Gn.removeIn=Un.removeIn,Gn.update=Un.update,Gn.updateIn=Un.updateIn,Gn.mergeIn=Un.mergeIn,Gn.mergeDeepIn=Un.mergeDeepIn,Gn.withMutations=Un.withMutations,Gn.asMutable=Un.asMutable,Gn.asImmutable=Un.asImmutable,Gn.wasAltered=Un.wasAltered,qe.prototype.removeBefore=function(e,t,n){if(n===t?1<<t:0===this.array.length)return this;var r=n>>>t&vn;if(r>=this.array.length)return new qe([],e);var i,o=0===r;if(t>0){var a=this.array[r];if(i=a&&a.removeBefore(e,t-dn,n),i===a&&o)return this}if(o&&!i)return this;var s=Je(this,e);if(!o)for(var u=0;u<r;u++)s.array[u]=void 0;return i&&(s.array[r]=i),s},qe.prototype.removeAfter=function(e,t,n){if(n===(t?1<<t:0)||0===this.array.length)return this;var r=n-1>>>t&vn;if(r>=this.array.length)return this;var i;if(t>0){var o=this.array[r];if(i=o&&o.removeAfter(e,t-dn,n),i===o&&r===this.array.length-1)return this}var a=Je(this,e);return a.array.splice(r+1),i&&(a.array[r]=i),a};var Xn,Yn={};e(Ze,pe),Ze.of=function(){return this(arguments)},Ze.prototype.toString=function(){return this.__toString("OrderedMap {","}")},Ze.prototype.get=function(e,t){var n=this._map.get(e);return void 0!==n?this._list.get(n)[1]:t},Ze.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):tt()},Ze.prototype.set=function(e,t){return nt(this,e,t)},Ze.prototype.remove=function(e){return nt(this,e,yn)},Ze.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},Ze.prototype.__iterate=function(e,t){var n=this;return this._list.__iterate(function(t){return t&&e(t[1],t[0],n)},t)},Ze.prototype.__iterator=function(e,t){return this._list.fromEntrySeq().__iterator(e,t)},Ze.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map.__ensureOwner(e),n=this._list.__ensureOwner(e);return e?et(t,n,e,this.__hash):(this.__ownerID=e,this._map=t,this._list=n,this)},Ze.isOrderedMap=Qe,Ze.prototype[fn]=!0,Ze.prototype[hn]=Ze.prototype.remove;var $n;e(rt,M),rt.prototype.get=function(e,t){return this._iter.get(e,t)},rt.prototype.has=function(e){return this._iter.has(e)},rt.prototype.valueSeq=function(){return this._iter.valueSeq()},rt.prototype.reverse=function(){var e=this,t=ct(this,!0);return this._useKeys||(t.valueSeq=function(){return e._iter.toSeq().reverse()}),t},rt.prototype.map=function(e,t){var n=this,r=ut(this,e,t);return this._useKeys||(r.valueSeq=function(){return n._iter.toSeq().map(e,t)}),r},rt.prototype.__iterate=function(e,t){var n,r=this;return this._iter.__iterate(this._useKeys?function(t,n){return e(t,n,r)}:(n=t?Ct(this):0,function(i){return e(i,t?--n:n++,r)}),t)},rt.prototype.__iterator=function(e,t){if(this._useKeys)return this._iter.__iterator(e,t);var n=this._iter.__iterator(xn,t),r=t?Ct(this):0;return new x(function(){var i=n.next();return i.done?i:w(e,t?--r:r++,i.value,i)})},rt.prototype[fn]=!0,e(it,O),it.prototype.includes=function(e){return this._iter.includes(e)},it.prototype.__iterate=function(e,t){var n=this,r=0;return this._iter.__iterate(function(t){return e(t,r++,n)},t)},it.prototype.__iterator=function(e,t){var n=this._iter.__iterator(xn,t),r=0;return new x(function(){var t=n.next();return t.done?t:w(e,r++,t.value,t)})},e(ot,P),ot.prototype.has=function(e){return this._iter.includes(e)},ot.prototype.__iterate=function(e,t){var n=this;return this._iter.__iterate(function(t){return e(t,t,n)},t)},ot.prototype.__iterator=function(e,t){var n=this._iter.__iterator(xn,t);return new x(function(){var t=n.next();return t.done?t:w(e,t.value,t.value,t)})},e(at,M),at.prototype.entrySeq=function(){return this._iter.toSeq()},at.prototype.__iterate=function(e,t){var n=this;return this._iter.__iterate(function(t){if(t){Et(t);var r=o(t);return e(r?t.get(1):t[1],r?t.get(0):t[0],n)}},t)},at.prototype.__iterator=function(e,t){var n=this._iter.__iterator(xn,t);return new x(function(){for(;;){var t=n.next();if(t.done)return t;var r=t.value;if(r){Et(r);var i=o(r);return w(e,i?r.get(0):r[0],i?r.get(1):r[1],t)}}})},it.prototype.cacheResult=rt.prototype.cacheResult=ot.prototype.cacheResult=at.prototype.cacheResult=Dt,e(Pt,te),Pt.prototype.toString=function(){return this.__toString(Nt(this)+" {","}")},Pt.prototype.has=function(e){return this._defaultValues.hasOwnProperty(e)},Pt.prototype.get=function(e,t){if(!this.has(e))return t;var n=this._defaultValues[e];return this._map?this._map.get(e,n):n},Pt.prototype.clear=function(){if(this.__ownerID)return this._map&&this._map.clear(),this;var e=this.constructor;return e._empty||(e._empty=It(this,we()))},Pt.prototype.set=function(e,t){if(!this.has(e))throw new Error('Cannot set unknown key "'+e+'" on '+Nt(this));if(this._map&&!this._map.has(e)){var n=this._defaultValues[e];if(t===n)return this}var r=this._map&&this._map.set(e,t);return this.__ownerID||r===this._map?this:It(this,r)},Pt.prototype.remove=function(e){if(!this.has(e))return this;var t=this._map&&this._map.remove(e);return this.__ownerID||t===this._map?this:It(this,t)},Pt.prototype.wasAltered=function(){return this._map.wasAltered()},Pt.prototype.__iterator=function(e,t){var r=this;return n(this._defaultValues).map(function(e,t){return r.get(t)}).__iterator(e,t)},Pt.prototype.__iterate=function(e,t){var r=this;return n(this._defaultValues).map(function(e,t){return r.get(t)}).__iterate(e,t)},Pt.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map&&this._map.__ensureOwner(e);return e?It(this,t,e):(this.__ownerID=e,this._map=t,this)};var Zn=Pt.prototype;Zn[hn]=Zn.remove,Zn.deleteIn=Zn.removeIn=Un.removeIn,Zn.merge=Un.merge,Zn.mergeWith=Un.mergeWith,Zn.mergeIn=Un.mergeIn,Zn.mergeDeep=Un.mergeDeep,Zn.mergeDeepWith=Un.mergeDeepWith,Zn.mergeDeepIn=Un.mergeDeepIn,Zn.setIn=Un.setIn,Zn.update=Un.update,Zn.updateIn=Un.updateIn,Zn.withMutations=Un.withMutations,Zn.asMutable=Un.asMutable,Zn.asImmutable=Un.asImmutable,e(Ft,re),Ft.of=function(){return this(arguments)},Ft.fromKeys=function(e){return this(n(e).keySeq())},Ft.prototype.toString=function(){return this.__toString("Set {","}")},Ft.prototype.has=function(e){return this._map.has(e)},Ft.prototype.add=function(e){return Lt(this,this._map.set(e,!0))},Ft.prototype.remove=function(e){return Lt(this,this._map.remove(e))},Ft.prototype.clear=function(){return Lt(this,this._map.clear())},Ft.prototype.union=function(){var e=un.call(arguments,0);return e=e.filter(function(e){return 0!==e.size}),0===e.length?this:0!==this.size||this.__ownerID||1!==e.length?this.withMutations(function(t){for(var n=0;n<e.length;n++)i(e[n]).forEach(function(e){return t.add(e)})}):this.constructor(e[0])},Ft.prototype.intersect=function(){var e=un.call(arguments,0);if(0===e.length)return this;e=e.map(function(e){return i(e)});var t=this;return this.withMutations(function(n){t.forEach(function(t){e.every(function(e){return e.includes(t)})||n.remove(t)})})},Ft.prototype.subtract=function(){var e=un.call(arguments,0);if(0===e.length)return this;e=e.map(function(e){return i(e)});var t=this;return this.withMutations(function(n){t.forEach(function(t){e.some(function(e){return e.includes(t)})&&n.remove(t)})})},Ft.prototype.merge=function(){return this.union.apply(this,arguments)},Ft.prototype.mergeWith=function(e){var t=un.call(arguments,1);return this.union.apply(this,t)},Ft.prototype.sort=function(e){return Ut(bt(this,e))},Ft.prototype.sortBy=function(e,t){return Ut(bt(this,t,e))},Ft.prototype.wasAltered=function(){return this._map.wasAltered()},Ft.prototype.__iterate=function(e,t){var n=this;return this._map.__iterate(function(t,r){return e(r,r,n)},t)},Ft.prototype.__iterator=function(e,t){return this._map.map(function(e,t){return t}).__iterator(e,t)},Ft.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map.__ensureOwner(e);return e?this.__make(t,e):(this.__ownerID=e,this._map=t,this)},Ft.isSet=Bt;var Qn="@@__IMMUTABLE_SET__@@",er=Ft.prototype;er[Qn]=!0,er[hn]=er.remove,er.mergeDeep=er.merge,er.mergeDeepWith=er.mergeWith,er.withMutations=Un.withMutations,er.asMutable=Un.asMutable,er.asImmutable=Un.asImmutable,er.__empty=qt,er.__make=zt;var tr;e(Ut,Ft),Ut.of=function(){return this(arguments)},Ut.fromKeys=function(e){return this(n(e).keySeq())},Ut.prototype.toString=function(){return this.__toString("OrderedSet {","}")},Ut.isOrderedSet=Wt;var nr=Ut.prototype;nr[fn]=!0,nr.__empty=Vt,nr.__make=Kt;var rr;e(Ht,ne),Ht.of=function(){return this(arguments)},Ht.prototype.toString=function(){return this.__toString("Stack [","]")},Ht.prototype.get=function(e,t){var n=this._head;for(e=m(this,e);n&&e--;)n=n.next;return n?n.value:t},Ht.prototype.peek=function(){return this._head&&this._head.value},Ht.prototype.push=function(){if(0===arguments.length)return this;for(var e=this.size+arguments.length,t=this._head,n=arguments.length-1;n>=0;n--)t={value:arguments[n],next:t};return this.__ownerID?(this.size=e,this._head=t,this.__hash=void 0,this.__altered=!0,this):Gt(e,t)},Ht.prototype.pushAll=function(e){if(e=r(e),0===e.size)return this;le(e.size);var t=this.size,n=this._head;return e.reverse().forEach(function(e){t++,n={value:e,next:n}}),this.__ownerID?(this.size=t,this._head=n,this.__hash=void 0,this.__altered=!0,this):Gt(t,n)},Ht.prototype.pop=function(){return this.slice(1)},Ht.prototype.unshift=function(){return this.push.apply(this,arguments)},Ht.prototype.unshiftAll=function(e){return this.pushAll(e)},Ht.prototype.shift=function(){return this.pop.apply(this,arguments)},Ht.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Xt()},Ht.prototype.slice=function(e,t){if(y(e,t,this.size))return this;var n=g(e,this.size),r=_(t,this.size);if(r!==this.size)return ne.prototype.slice.call(this,e,t);for(var i=this.size-n,o=this._head;n--;)o=o.next;return this.__ownerID?(this.size=i,this._head=o,this.__hash=void 0,this.__altered=!0,this):Gt(i,o)},Ht.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?Gt(this.size,this._head,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},Ht.prototype.__iterate=function(e,t){if(t)return this.reverse().__iterate(e);for(var n=0,r=this._head;r&&e(r.value,n++,this)!==!1;)r=r.next;return n},Ht.prototype.__iterator=function(e,t){if(t)return this.reverse().__iterator(e);var n=0,r=this._head;return new x(function(){if(r){var t=r.value;return r=r.next,w(e,n++,t)}return k()})},Ht.isStack=Jt;var ir="@@__IMMUTABLE_STACK__@@",or=Ht.prototype;or[ir]=!0,or.withMutations=Un.withMutations,or.asMutable=Un.asMutable,or.asImmutable=Un.asImmutable,or.wasAltered=Un.wasAltered;var ar;t.Iterator=x,Yt(t,{toArray:function(){le(this.size);var e=new Array(this.size||0);return this.valueSeq().__iterate(function(t,n){e[n]=t}),e},toIndexedSeq:function(){return new it(this)},toJS:function(){return this.toSeq().map(function(e){return e&&"function"==typeof e.toJS?e.toJS():e}).__toJS()},toJSON:function(){return this.toSeq().map(function(e){return e&&"function"==typeof e.toJSON?e.toJSON():e}).__toJS()},toKeyedSeq:function(){return new rt(this,!0)},toMap:function(){return pe(this.toKeyedSeq())},toObject:function(){le(this.size);var e={};return this.__iterate(function(t,n){e[n]=t}),e},toOrderedMap:function(){return Ze(this.toKeyedSeq())},toOrderedSet:function(){return Ut(a(this)?this.valueSeq():this)},toSet:function(){return Ft(a(this)?this.valueSeq():this)},toSetSeq:function(){return new ot(this)},toSeq:function(){return s(this)?this.toIndexedSeq():a(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return Ht(a(this)?this.valueSeq():this)},toList:function(){return Le(a(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(e,t){return 0===this.size?e+t:e+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+t},concat:function(){var e=un.call(arguments,0);return St(this,vt(this,e))},includes:function(e){return this.some(function(t){return X(t,e)})},entries:function(){return this.__iterator(wn)},every:function(e,t){le(this.size);var n=!0;return this.__iterate(function(r,i,o){if(!e.call(t,r,i,o))return n=!1,!1}),n},filter:function(e,t){return St(this,lt(this,e,t,!0))},find:function(e,t,n){var r=this.findEntry(e,t);return r?r[1]:n},forEach:function(e,t){return le(this.size),this.__iterate(t?e.bind(t):e)},join:function(e){le(this.size),e=void 0!==e?""+e:",";var t="",n=!0;return this.__iterate(function(r){n?n=!1:t+=e,t+=null!==r&&void 0!==r?r.toString():""}),t},keys:function(){return this.__iterator(bn)},map:function(e,t){return St(this,ut(this,e,t))},reduce:function(e,t,n){le(this.size);var r,i;return arguments.length<2?i=!0:r=t,this.__iterate(function(t,o,a){i?(i=!1,r=t):r=e.call(n,r,t,o,a)}),r},reduceRight:function(e,t,n){var r=this.toKeyedSeq().reverse();return r.reduce.apply(r,arguments)},reverse:function(){return St(this,ct(this,!0))},slice:function(e,t){return St(this,ht(this,e,t,!0))},some:function(e,t){return!this.every(Qt(e),t)},sort:function(e){return St(this,bt(this,e))},values:function(){return this.__iterator(xn)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some(function(){return!0})},count:function(e,t){return d(e?this.toSeq().filter(e,t):this)},countBy:function(e,t){return pt(this,e,t)},equals:function(e){return Y(this,e)},entrySeq:function(){var e=this;if(e._cache)return new I(e._cache);var t=e.toSeq().map(Zt).toIndexedSeq();return t.fromEntrySeq=function(){return e.toSeq()},t},filterNot:function(e,t){return this.filter(Qt(e),t)},findEntry:function(e,t,n){var r=n;return this.__iterate(function(n,i,o){if(e.call(t,n,i,o))return r=[i,n],!1}),r},findKey:function(e,t){var n=this.findEntry(e,t);return n&&n[0]},findLast:function(e,t,n){return this.toKeyedSeq().reverse().find(e,t,n)},findLastEntry:function(e,t,n){return this.toKeyedSeq().reverse().findEntry(e,t,n)},findLastKey:function(e,t){return this.toKeyedSeq().reverse().findKey(e,t)},first:function(){return this.find(v)},flatMap:function(e,t){return St(this,gt(this,e,t))},flatten:function(e){return St(this,yt(this,e,!0))},fromEntrySeq:function(){return new at(this)},get:function(e,t){return this.find(function(t,n){return X(n,e)},void 0,t)},getIn:function(e,t){for(var n,r=this,i=Ot(e);!(n=i.next()).done;){var o=n.value;if(r=r&&r.get?r.get(o,yn):yn,r===yn)return t}return r},groupBy:function(e,t){return ft(this,e,t)},has:function(e){return this.get(e,yn)!==yn},hasIn:function(e){return this.getIn(e,yn)!==yn},isSubset:function(e){return e="function"==typeof e.includes?e:t(e),this.every(function(t){return e.includes(t)})},isSuperset:function(e){return e="function"==typeof e.isSubset?e:t(e),e.isSubset(this)},keyOf:function(e){return this.findKey(function(t){return X(t,e)})},keySeq:function(){return this.toSeq().map($t).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},lastKeyOf:function(e){return this.toKeyedSeq().reverse().keyOf(e)},max:function(e){return xt(this,e)},maxBy:function(e,t){return xt(this,t,e)},min:function(e){return xt(this,e?en(e):rn)},minBy:function(e,t){return xt(this,t?en(t):rn,e)},rest:function(){return this.slice(1)},skip:function(e){return this.slice(Math.max(0,e))},skipLast:function(e){return St(this,this.toSeq().reverse().skip(e).reverse())},skipWhile:function(e,t){return St(this,mt(this,e,t,!0))},skipUntil:function(e,t){return this.skipWhile(Qt(e),t)},sortBy:function(e,t){return St(this,bt(this,t,e))},take:function(e){return this.slice(0,Math.max(0,e))},takeLast:function(e){return St(this,this.toSeq().reverse().take(e).reverse())},takeWhile:function(e,t){return St(this,dt(this,e,t))},takeUntil:function(e,t){return this.takeWhile(Qt(e),t)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=on(this))}});var sr=t.prototype;sr[cn]=!0,sr[En]=sr.values,sr.__toJS=sr.toArray,sr.__toStringMapper=tn,sr.inspect=sr.toSource=function(){return this.toString()},sr.chain=sr.flatMap,sr.contains=sr.includes,Yt(n,{flip:function(){return St(this,st(this))},mapEntries:function(e,t){var n=this,r=0;return St(this,this.toSeq().map(function(i,o){return e.call(t,[o,i],r++,n)}).fromEntrySeq())},mapKeys:function(e,t){var n=this;return St(this,this.toSeq().flip().map(function(r,i){return e.call(t,r,i,n)}).flip())}});var ur=n.prototype;ur[ln]=!0,ur[En]=sr.entries,ur.__toJS=sr.toObject,ur.__toStringMapper=function(e,t){return JSON.stringify(t)+": "+tn(e)},Yt(r,{toKeyedSeq:function(){return new rt(this,!1)},filter:function(e,t){return St(this,lt(this,e,t,!1))},findIndex:function(e,t){var n=this.findEntry(e,t);return n?n[0]:-1},indexOf:function(e){var t=this.keyOf(e);return void 0===t?-1:t},lastIndexOf:function(e){var t=this.lastKeyOf(e);return void 0===t?-1:t},reverse:function(){return St(this,ct(this,!1))},slice:function(e,t){return St(this,ht(this,e,t,!1))},splice:function(e,t){var n=arguments.length;if(t=Math.max(0|t,0),0===n||2===n&&!t)return this;e=g(e,e<0?this.count():this.size);var r=this.slice(0,e);return St(this,1===n?r:r.concat(h(arguments,2),this.slice(e+t)))},findLastIndex:function(e,t){var n=this.findLastEntry(e,t);return n?n[0]:-1},first:function(){return this.get(0)},flatten:function(e){return St(this,yt(this,e,!1))},get:function(e,t){return e=m(this,e),e<0||this.size===1/0||void 0!==this.size&&e>this.size?t:this.find(function(t,n){return n===e},void 0,t)},has:function(e){return e=m(this,e),e>=0&&(void 0!==this.size?this.size===1/0||e<this.size:this.indexOf(e)!==-1)},interpose:function(e){return St(this,_t(this,e))},interleave:function(){var e=[this].concat(h(arguments)),t=kt(this.toSeq(),O.of,e),n=t.flatten(!0);return t.size&&(n.size=t.size*e.length),St(this,n)},keySeq:function(){return Q(0,this.size)},last:function(){return this.get(-1)},skipWhile:function(e,t){return St(this,mt(this,e,t,!1))},zip:function(){var e=[this].concat(h(arguments));return St(this,kt(this,nn,e))},zipWith:function(e){var t=h(arguments);return t[0]=this,St(this,kt(this,e,t))}}),r.prototype[pn]=!0,r.prototype[fn]=!0,Yt(i,{get:function(e,t){return this.has(e)?e:t},includes:function(e){return this.has(e)},keySeq:function(){return this.valueSeq()}}),i.prototype.has=sr.includes,i.prototype.contains=i.prototype.includes,Yt(M,n.prototype),Yt(O,r.prototype),Yt(P,i.prototype),Yt(te,n.prototype),Yt(ne,r.prototype),Yt(re,i.prototype);var cr={Iterable:t,Seq:D,Collection:ee,Map:pe,OrderedMap:Ze,List:Le,Stack:Ht,Set:Ft,OrderedSet:Ut,Record:Pt,Range:Q,Repeat:$,is:X,fromJS:V};return cr})},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.combineReducers=void 0;var i=n(170),o=r(i);t.combineReducers=o.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(168),o=r(i),a=n(171);t.default=function(e){var t=Object.keys(e);return function(){var n=arguments.length<=0||void 0===arguments[0]?o.default.Map():arguments[0],r=arguments[1];return n.withMutations(function(n){t.forEach(function(t){var i=e[t],o=n.get(t),s=i(o,r);(0,a.validateNextState)(s,t,r),n.set(t,s)})})}},e.exports=t.default},function(e,t,n){"use strict";"create index";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.validateNextState=t.getUnexpectedInvocationParameterMessage=t.getStateName=void 0;var i=n(172),o=r(i),a=n(173),s=r(a),u=n(174),c=r(u);t.getStateName=o.default,t.getUnexpectedInvocationParameterMessage=s.default,t.validateNextState=c.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e&&"@@redux/INIT"===e.type?"initialState argument passed to createStore":"previous state received by the reducer"},e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(168),o=r(i),a=n(172),s=r(a);t.default=function(e,t,n){var r=Object.keys(t);if(!r.length)return"Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.";var i=(0,s.default)(n);if(!o.default.Iterable.isIterable(e))return"The "+i+' is of unexpected type. Expected argument to be an instance of Immutable.Iterable with the following properties: "'+r.join('", "')+'".';var a=e.keySeq().toArray().filter(function(e){return!t.hasOwnProperty(e)});return a.length>0?"Unexpected "+(1===a.length?"property":"properties")+' "'+a.join('", "')+'" found in '+i+'. Expected to find one of the known reducer property names instead: "'+r.join('", "')+'". Unexpected properties will be ignored.':null; +},e.exports=t.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){if(void 0===e)throw new Error('Reducer "'+t+'" returned undefined when handling "'+n.type+'" action. To ignore an action, you must explicitly return the previous state.');return null},e.exports=t.default},function(e,t){"use strict";function n(e,t){var r;return r=Array.isArray(e)?[]:{},t.push(e),Object.keys(e).forEach(function(i){var o=e[i];if("function"!=typeof o)return o&&"object"==typeof o?t.indexOf(e[i])===-1?void(r[i]=n(e[i],t.slice(0))):void(r[i]="[Circular]"):void(r[i]=o)}),r}e.exports=function(e){if("object"==typeof e){var t=n(e,[]);return"string"==typeof e.name&&(t.name=e.name),"string"==typeof e.message&&(t.message=e.message),"string"==typeof e.stack&&(t.stack=e.stack),t}return"function"==typeof e?"[Function: "+(e.name||"anonymous")+"]":e}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){return{type:p,payload:{action:t,error:(0,l.default)(e)}}}function o(e){return{type:f,payload:e}}function a(e){return{type:h,payload:e}}function s(e){return{type:d,payload:e}}function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:m,payload:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.CLEAR=t.NEW_AUTH_ERR=t.NEW_SPEC_ERR=t.NEW_THROWN_ERR_BATCH=t.NEW_THROWN_ERR=void 0,t.newThrownErr=i,t.newThrownErrBatch=o,t.newSpecErr=a,t.newAuthErr=s,t.clear=u;var c=n(175),l=r(c),p=t.NEW_THROWN_ERR="err_new_thrown_err",f=t.NEW_THROWN_ERR_BATCH="err_new_thrown_err_batch",h=t.NEW_SPEC_ERR="err_new_spec_err",d=t.NEW_AUTH_ERR="err_new_auth_err",m=t.CLEAR="err_clear"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){var e={location:{},history:{},open:function(){},close:function(){},File:function(){}};if("undefined"==typeof window)return e;try{e=window;var t=["File","Blob","FormData"],n=!0,r=!1,i=void 0;try{for(var o,s=(0,a.default)(t);!(n=(o=s.next()).done);n=!0){var u=o.value;u in window&&(e[u]=window[u])}}catch(e){r=!0,i=e}finally{try{!n&&s.return&&s.return()}finally{if(r)throw i}}}catch(e){console.error(e)}return e}var o=n(178),a=r(o);e.exports=i()},function(e,t,n){e.exports={default:n(179),__esModule:!0}},function(e,t,n){n(110),n(97),e.exports=n(180)},function(e,t,n){var r=n(86),i=n(181);e.exports=n(59).getIterator=function(e){var t=i(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return r(t.call(e))}},function(e,t,n){var r=n(182),i=n(108)("iterator"),o=n(102);e.exports=n(59).getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||o[r(e)]}},function(e,t,n){var r=n(70),i=n(108)("toStringTag"),o="Arguments"==r(function(){return arguments}()),a=function(e,t){try{return e[t]}catch(e){}};e.exports=function(e){var t,n,s;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=a(t=Object(e),i))?n:o?r(t):"Object"==(s=r(t))&&"function"==typeof t.callee?"Arguments":s}},function(e,t,n){(function(e){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return l(e)?Q(e)?e.toObject():e:{}}function o(e){return e?e.toArray?e.toArray():u(e):[]}function a(e){return Q(e)?e:e instanceof $.default.File?e:l(e)?Array.isArray(e)?j.default.Seq(e).map(a).toList():j.default.Seq(e).map(a).toOrderedMap():e}function s(e,t){var n={};return(0,N.default)(e).filter(function(t){return"function"==typeof e[t]}).forEach(function(r){return n[r]=e[r].bind(null,t)}),n}function u(e){return Array.isArray(e)?e:[e]}function c(e){return"function"==typeof e}function l(e){return!!e&&"object"===("undefined"==typeof e?"undefined":(0,P.default)(e))}function p(e){return"function"==typeof e}function f(e){return Array.isArray(e)}function h(e,t){return(0,N.default)(e).reduce(function(n,r){return n[r]=t(e[r],r),n},{})}function d(e,t){return(0,N.default)(e).reduce(function(n,r){var i=t(e[r],r);return i&&"object"===("undefined"==typeof i?"undefined":(0,P.default)(i))&&(0,M.default)(n,i),n},{})}function m(e){return function(t){t.dispatch,t.getState;return function(t){return function(n){return"function"==typeof n?n(e()):t(n)}}}}function v(e){var t=e.keySeq();return t.contains(Z)?Z:t.filter(function(e){return"2"===(e+"")[0]}).sort().first()}function y(e,t){if(!j.default.Iterable.isIterable(e))return j.default.List();var n=e.getIn(Array.isArray(t)?t:[t]);return j.default.List.isList(n)?n:j.default.List()}function g(e){var t,n,r,i,o,a,s,u,c,l,p,f;for(l=/(>)(<)(\/*)/g,f=/[ ]*(.*)[ ]+\n/g,t=/(<.+>)(.+\n)/g,e=e.replace(/\r\n/g,"\n").replace(l,"$1\n$2$3").replace(f,"$1\n").replace(t,"$1\n$2"),r="",u=e.split("\n"),i=0,a="other",p={"single->single":0,"single->closing":-1,"single->opening":0,"single->other":0,"closing->single":0,"closing->closing":-1,"closing->opening":0,"closing->other":0,"opening->single":1,"opening->closing":0,"opening->opening":1,"opening->other":1,"other->single":0,"other->closing":-1,"other->opening":0,"other->other":0},n=function(e){var t,n,o,s,u,c;u={single:Boolean(e.match(/<.+\/>/)),closing:Boolean(e.match(/<\/.+>/)),opening:Boolean(e.match(/<[^!?].*>/))},s=function(){var e;e=[];for(n in u)c=u[n],c&&e.push(n);return e}()[0],s=void 0===s?"other":s,t=a+"->"+s,a=s,o="",i+=p[t],o=function(){var e,t,n,r;for(n=[],r=e=0,t=i;0<=t?e<t:e>t;r=0<=t?++e:--e)n.push(" ");return n}().join(""),"opening->closing"===t?r=r.substr(0,r.length-1)+e+"\n":r+=o+e+"\n"},o=0,s=u.length;o<s;o++)c=u[o],n(c);return r}function _(e){var t=5e3,n=document,r="appendChild",i="test";if(!e)return"";if(e.textContent.length>t)return e.textContent;var o=function(e){for(var t,o,a,s,u,c=e.textContent,l=0,p=c[0],f=1,h=e.innerHTML="",d=0;o=t,t=d<7&&"\\"==t?1:f;){if(f=p,p=c[++l],s=h.length>1,!f||d>8&&"\n"==f||[/\S/[i](f),1,1,!/[$\w]/[i](f),("/"==t||"\n"==t)&&s,'"'==t&&s,"'"==t&&s,c[l-4]+o+t=="-->",o+t=="*/"][d])for(h&&(e[r](u=n.createElement("span")).setAttribute("style",["color: #555; font-weight: bold;","","","color: #555;",""][d?d<3?2:d>6?4:d>3?3:+/^(a(bstract|lias|nd|rguments|rray|s(m|sert)?|uto)|b(ase|egin|ool(ean)?|reak|yte)|c(ase|atch|har|hecked|lass|lone|ompl|onst|ontinue)|de(bugger|cimal|clare|f(ault|er)?|init|l(egate|ete)?)|do|double|e(cho|ls?if|lse(if)?|nd|nsure|num|vent|x(cept|ec|p(licit|ort)|te(nds|nsion|rn)))|f(allthrough|alse|inal(ly)?|ixed|loat|or(each)?|riend|rom|unc(tion)?)|global|goto|guard|i(f|mp(lements|licit|ort)|n(it|clude(_once)?|line|out|stanceof|t(erface|ernal)?)?|s)|l(ambda|et|ock|ong)|m(icrolight|odule|utable)|NaN|n(amespace|ative|ext|ew|il|ot|ull)|o(bject|perator|r|ut|verride)|p(ackage|arams|rivate|rotected|rotocol|ublic)|r(aise|e(adonly|do|f|gister|peat|quire(_once)?|scue|strict|try|turn))|s(byte|ealed|elf|hort|igned|izeof|tatic|tring|truct|ubscript|uper|ynchronized|witch)|t(emplate|hen|his|hrows?|ransient|rue|ry|ype(alias|def|id|name|of))|u(n(checked|def(ined)?|ion|less|signed|til)|se|sing)|v(ar|irtual|oid|olatile)|w(char_t|hen|here|hile|ith)|xor|yield)$/[i](h):0]),u[r](n.createTextNode(h))),a=d&&d<7?d:a,h="",d=11;![1,/[\/{}[(\-+*=<>:;|\\.,?!&@~]/[i](f),/[\])]/[i](f),/[$\w]/[i](f),"/"==f&&a<2&&"<"!=t,'"'==f,"'"==f,f+p+c[l+1]+c[l+2]=="<!--",f+p=="/*",f+p=="//","#"==f][--d];);h+=f}};return o(e)}function b(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"key",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:j.default.Map();if(!j.default.Map.isMap(e)||!e.size)return j.default.List();if(Array.isArray(t)||(t=[t]),t.length<1)return e.merge(n);var r=j.default.List(),i=t[0],o=!0,a=!1,s=void 0;try{for(var u,c=(0,T.default)(e.entries());!(o=(u=c.next()).done);o=!0){var l=u.value,p=(0,C.default)(l,2),f=p[0],h=p[1],d=b(h,t.slice(1),n.set(i,f));r=j.default.List.isList(d)?r.concat(d):r.push(d)}}catch(e){a=!0,s=e}finally{try{!o&&c.return&&c.return()}finally{if(a)throw s}}return r}function x(e){return(0,z.default)((0,B.default)(e))}function w(e){return x(e.replace(/\.[^.\/]*$/,""))}Object.defineProperty(t,"__esModule",{value:!0}),t.shallowEqualKeys=t.filterConfigs=t.buildFormData=t.sorters=t.btoa=t.parseSeach=t.getSampleSchema=t.validateParam=t.propChecker=t.errorLog=t.memoize=t.isImmutable=void 0;var k=n(57),S=r(k),E=n(184),C=r(E),A=n(178),T=r(A),D=n(141),M=r(D),O=n(94),P=r(O),I=n(60),N=r(I);t.objectify=i,t.arrayify=o,t.fromJSOrdered=a,t.bindToState=s,t.normalizeArray=u,t.isFn=c,t.isObject=l,t.isFunc=p,t.isArray=f,t.objMap=h,t.objReduce=d,t.systemThunkMiddleware=m,t.defaultStatusCode=v,t.getList=y,t.formatXml=g,t.highlight=_,t.mapToList=b,t.pascalCase=x,t.pascalCaseFilename=w;var R=n(168),j=r(R),F=n(188),B=r(F),L=n(195),z=r(L),q=n(212),U=r(q),W=n(245),K=r(W),V=n(314),H=r(V),J=n(234),G=r(J),X=n(322),Y=n(177),$=r(Y),Z="default",Q=t.isImmutable=function(e){return j.default.Iterable.isIterable(e)},ee=(t.memoize=U.default,t.errorLog=function(e){return function(){return function(t){return function(n){try{t(n)}catch(t){e().errActions.newThrownErr(t,n)}}}}},t.propChecker=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];return(0,N.default)(e).length!==(0,N.default)(t).length||((0,H.default)(e,function(e,n){if(r.includes(n))return!1;var i=t[n];return j.default.Iterable.isIterable(e)?!j.default.is(e,i):("object"!==("undefined"==typeof e?"undefined":(0,P.default)(e))||"object"!==("undefined"==typeof i?"undefined":(0,P.default)(i)))&&e!==i})||n.some(function(n){return!(0,G.default)(e[n],t[n])}))},function(e){if(!/^-?\d+(.?\d+)?$/.test(e))return"Value must be a number"}),te=function(e){if(!/^-?\d+$/.test(e))return"Value must be integer"};t.validateParam=function(e,t){var n=[],r=t&&"body"===e.get("in")?e.get("value_xml"):e.get("value"),i=e.get("required"),o=e.get("type");if(i&&(!r||"array"===o&&Array.isArray(r)&&!r.length))return n.push("Required field is not provided"),n;if(!r)return n;if("number"===o){var a=ee(r);if(!a)return n;n.push(a)}else if("integer"===o){var s=te(r);if(!s)return n;n.push(s)}else if("array"===o){var u=void 0;if(!r.count())return n;u=e.getIn(["items","type"]),r.forEach(function(e,t){var r=void 0;"number"===u?r=ee(e):"integer"===u&&(r=te(e)),r&&n.push({index:t,error:r})})}return n},t.getSampleSchema=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(/xml/.test(t)){if(!e.xml||!e.xml.name){if(e.xml=e.xml||{},!e.$$ref)return e.type||e.items||e.properties||e.additionalProperties?'<?xml version="1.0" encoding="UTF-8"?>\n<!-- XML example cannot be generated -->':null;var r=e.$$ref.match(/\S*\/(\S+)$/);e.xml.name=r[1]}return(0,X.memoizedCreateXMLExample)(e,n)}return(0,S.default)((0,X.memoizedSampleFromSchema)(e,n),null,2)},t.parseSeach=function(){var e={},t=window.location.search;if(""!=t){var n=t.substr(1).split("&");for(var r in n)r=n[r].split("="),e[decodeURIComponent(r[0])]=decodeURIComponent(r[1])}return e},t.btoa=function(t){var n=void 0;return n=t instanceof e?t:new e(t.toString(),"utf-8"),n.toString("base64")},t.sorters={operationsSorter:{alpha:function(e,t){return e.get("path").localeCompare(t.get("path"))},method:function(e,t){return e.get("method").localeCompare(t.get("method"))}}},t.buildFormData=function(e){var t=[];for(var n in e){var r=e[n];void 0!==r&&""!==r&&t.push([n,"=",encodeURIComponent(r).replace(/%20/g,"+")].join(""))}return t.join("&")},t.filterConfigs=function(e,t){var n=void 0,r={};for(n in e)t.indexOf(n)!==-1&&(r[n]=e[n]);return r},t.shallowEqualKeys=function(e,t,n){return!!(0,K.default)(n,function(n){return(0,G.default)(e[n],t[n])})}}).call(t,n(132).Buffer)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(185),o=r(i),a=n(178),s=r(a);t.default=function(){function e(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var a,u=(0,s.default)(e);!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{!r&&u.return&&u.return()}finally{if(i)throw o}}return n}return function(t,n){if(Array.isArray(t))return t;if((0,o.default)(Object(t)))return e(t,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(e,t,n){e.exports={default:n(186),__esModule:!0}},function(e,t,n){n(110),n(97),e.exports=n(187)},function(e,t,n){var r=n(182),i=n(108)("iterator"),o=n(102);e.exports=n(59).isIterable=function(e){var t=Object(e);return void 0!==t[i]||"@@iterator"in t||o.hasOwnProperty(r(t))}},function(e,t,n){var r=n(189),i=n(203),o=i(function(e,t,n){return t=t.toLowerCase(),e+(n?r(t):t)});e.exports=o},function(e,t,n){function r(e){return o(i(e).toLowerCase())}var i=n(190),o=n(195);e.exports=r},function(e,t,n){function r(e){return null==e?"":i(e)}var i=n(191);e.exports=r},function(e,t,n){function r(e){if("string"==typeof e)return e;if(a(e))return o(e,r)+"";if(s(e))return l?l.call(e):"";var t=e+"";return"0"==t&&1/e==-u?"-0":t}var i=n(151),o=n(192),a=n(193),s=n(194),u=1/0,c=i?i.prototype:void 0,l=c?c.toString:void 0;e.exports=r},function(e,t){function n(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}e.exports=n},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){function r(e){return"symbol"==typeof e||o(e)&&i(e)==a}var i=n(150),o=n(158),a="[object Symbol]";e.exports=r},function(e,t,n){var r=n(196),i=r("toUpperCase");e.exports=i},function(e,t,n){function r(e){return function(t){t=s(t);var n=o(t)?a(t):void 0,r=n?n[0]:t.charAt(0),u=n?i(n,1).join(""):t.slice(1);return r[e]()+u}}var i=n(197),o=n(199),a=n(200),s=n(190);e.exports=r},function(e,t,n){function r(e,t,n){var r=e.length;return n=void 0===n?r:n,!t&&n>=r?e:i(e,t,n)}var i=n(198);e.exports=r},function(e,t){function n(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(i);++r<i;)o[r]=e[r+t];return o}e.exports=n},function(e,t){function n(e){return l.test(e)}var r="\\ud800-\\udfff",i="\\u0300-\\u036f",o="\\ufe20-\\ufe2f",a="\\u20d0-\\u20ff",s=i+o+a,u="\\ufe0e\\ufe0f",c="\\u200d",l=RegExp("["+c+r+s+u+"]");e.exports=n},function(e,t,n){function r(e){return o(e)?a(e):i(e)}var i=n(201),o=n(199),a=n(202);e.exports=r},function(e,t){function n(e){return e.split("")}e.exports=n},function(e,t){function n(e){return e.match(w)||[]}var r="\\ud800-\\udfff",i="\\u0300-\\u036f",o="\\ufe20-\\ufe2f",a="\\u20d0-\\u20ff",s=i+o+a,u="\\ufe0e\\ufe0f",c="["+r+"]",l="["+s+"]",p="\\ud83c[\\udffb-\\udfff]",f="(?:"+l+"|"+p+")",h="[^"+r+"]",d="(?:\\ud83c[\\udde6-\\uddff]){2}",m="[\\ud800-\\udbff][\\udc00-\\udfff]",v="\\u200d",y=f+"?",g="["+u+"]?",_="(?:"+v+"(?:"+[h,d,m].join("|")+")"+g+y+")*",b=g+y+_,x="(?:"+[h+l+"?",l,d,m,c].join("|")+")",w=RegExp(p+"(?="+p+")|"+x+b,"g");e.exports=n},function(e,t,n){function r(e){return function(t){return i(a(o(t).replace(u,"")),e,"")}}var i=n(204),o=n(205),a=n(208),s="['’]",u=RegExp(s,"g");e.exports=r},function(e,t){function n(e,t,n,r){var i=-1,o=null==e?0:e.length;for(r&&o&&(n=e[++i]);++i<o;)n=t(n,e[i],i,e);return n}e.exports=n},function(e,t,n){function r(e){return e=o(e),e&&e.replace(a,i).replace(f,"")}var i=n(206),o=n(190),a=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,s="\\u0300-\\u036f",u="\\ufe20-\\ufe2f",c="\\u20d0-\\u20ff",l=s+u+c,p="["+l+"]",f=RegExp(p,"g");e.exports=r},function(e,t,n){var r=n(207),i={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},o=r(i);e.exports=o},function(e,t){function n(e){return function(t){return null==e?void 0:e[t]}}e.exports=n},function(e,t,n){function r(e,t,n){return e=a(e),t=n?void 0:t,void 0===t?o(e)?s(e):i(e):e.match(t)||[]}var i=n(209),o=n(210),a=n(190),s=n(211);e.exports=r},function(e,t){function n(e){return e.match(r)||[]}var r=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;e.exports=n},function(e,t){function n(e){return r.test(e)}var r=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=n},function(e,t){function n(e){return e.match(U)||[]}var r="\\ud800-\\udfff",i="\\u0300-\\u036f",o="\\ufe20-\\ufe2f",a="\\u20d0-\\u20ff",s=i+o+a,u="\\u2700-\\u27bf",c="a-z\\xdf-\\xf6\\xf8-\\xff",l="\\xac\\xb1\\xd7\\xf7",p="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",f="\\u2000-\\u206f",h=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",d="A-Z\\xc0-\\xd6\\xd8-\\xde",m="\\ufe0e\\ufe0f",v=l+p+f+h,y="['’]",g="["+v+"]",_="["+s+"]",b="\\d+",x="["+u+"]",w="["+c+"]",k="[^"+r+v+b+u+c+d+"]",S="\\ud83c[\\udffb-\\udfff]",E="(?:"+_+"|"+S+")",C="[^"+r+"]",A="(?:\\ud83c[\\udde6-\\uddff]){2}",T="[\\ud800-\\udbff][\\udc00-\\udfff]",D="["+d+"]",M="\\u200d",O="(?:"+w+"|"+k+")",P="(?:"+D+"|"+k+")",I="(?:"+y+"(?:d|ll|m|re|s|t|ve))?",N="(?:"+y+"(?:D|LL|M|RE|S|T|VE))?",R=E+"?",j="["+m+"]?",F="(?:"+M+"(?:"+[C,A,T].join("|")+")"+j+R+")*",B="\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)",L="\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)",z=j+R+F,q="(?:"+[x,A,T].join("|")+")"+z,U=RegExp([D+"?"+w+"+"+I+"(?="+[g,D,"$"].join("|")+")",P+"+"+N+"(?="+[g,D+O,"$"].join("|")+")",D+"?"+O+"+"+I,D+"+"+N,L,B,b,q].join("|"),"g");e.exports=n},function(e,t,n){function r(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(o);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(r.Cache||i),n}var i=n(213),o="Expected a function";r.Cache=i,e.exports=r},function(e,t,n){function r(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var i=n(214),o=n(239),a=n(242),s=n(243),u=n(244);r.prototype.clear=i,r.prototype.delete=o,r.prototype.get=a,r.prototype.has=s,r.prototype.set=u,e.exports=r},[1180,215,230,238],function(e,t,n){function r(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var i=n(216),o=n(226),a=n(227),s=n(228),u=n(229);r.prototype.clear=i,r.prototype.delete=o,r.prototype.get=a,r.prototype.has=s,r.prototype.set=u,e.exports=r},[1181,217],[1182,218],[1183,219,225],[1184,220,222,221,224],function(e,t,n){function r(e){if(!o(e))return!1;var t=i(e);return t==s||t==u||t==a||t==c}var i=n(150),o=n(221),a="[object AsyncFunction]",s="[object Function]",u="[object GeneratorFunction]",c="[object Proxy]";e.exports=r},function(e,t){function n(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}e.exports=n},[1185,223],[1186,152],function(e,t){function n(e){if(null!=e){try{return i.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var r=Function.prototype,i=r.toString;e.exports=n},function(e,t){function n(e,t){return null==e?void 0:e[t]}e.exports=n},function(e,t){function n(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}e.exports=n},[1187,217],[1188,217],[1189,217],function(e,t,n){function r(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var i=n(231),o=n(232),a=n(235),s=n(236),u=n(237);r.prototype.clear=i,r.prototype.delete=o,r.prototype.get=a,r.prototype.has=s,r.prototype.set=u,e.exports=r},function(e,t){function n(){this.__data__=[],this.size=0}e.exports=n},[1190,233],[1191,234],function(e,t){function n(e,t){return e===t||e!==e&&t!==t}e.exports=n},[1192,233],[1193,233],[1194,233],[1195,218,152],[1196,240],[1197,241],function(e,t){function n(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}e.exports=n},[1198,240],[1199,240],[1200,240],function(e,t,n){var r=n(246),i=n(309),o=r(i);e.exports=o},[1201,247,285,269],[1202,248,294,305,193,306],[1203,249,291,293],function(e,t,n){function r(e,t,n,r){var u=n.length,c=u,l=!r;if(null==e)return!c;for(e=Object(e);u--;){var p=n[u];if(l&&p[2]?p[1]!==e[p[0]]:!(p[0]in e))return!1}for(;++u<c;){p=n[u];var f=p[0],h=e[f],d=p[1];if(l&&p[2]){if(void 0===h&&!(f in e))return!1}else{var m=new i;if(r)var v=r(h,d,f,e,t,m);if(!(void 0===v?o(d,h,a|s,r,m):v))return!1}}return!0}var i=n(250),o=n(256),a=1,s=2;e.exports=r},[1204,230,251,252,253,254,255],[1205,230],function(e,t){function n(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}e.exports=n},function(e,t){function n(e){return this.__data__.get(e)}e.exports=n},function(e,t){function n(e){return this.__data__.has(e)}e.exports=n},[1206,230,238,213],function(e,t,n){function r(e,t,n,s,u){return e===t||(null==e||null==t||!o(e)&&!a(t)?e!==e&&t!==t:i(e,t,n,s,r,u))}var i=n(257),o=n(221),a=n(158);e.exports=r},function(e,t,n){function r(e,t,n,r,v,g){var _=c(e),b=c(t),x=d,w=d;_||(x=u(e),x=x==h?m:x),b||(w=u(t),w=w==h?m:w);var k=x==m,S=w==m,E=x==w;if(E&&l(e)){if(!l(t))return!1;_=!0,k=!1}if(E&&!k)return g||(g=new i),_||p(e)?o(e,t,n,r,v,g):a(e,t,x,n,r,v,g);if(!(n&f)){var C=k&&y.call(e,"__wrapped__"),A=S&&y.call(t,"__wrapped__");if(C||A){var T=C?e.value():e,D=A?t.value():t;return g||(g=new i),v(T,D,n,r,g)}}return!!E&&(g||(g=new i),s(e,t,n,r,v,g))}var i=n(250),o=n(258),a=n(264),s=n(268),u=n(286),c=n(193),l=n(274),p=n(277),f=1,h="[object Arguments]",d="[object Array]",m="[object Object]",v=Object.prototype,y=v.hasOwnProperty;e.exports=r},function(e,t,n){function r(e,t,n,r,c,l){var p=n&s,f=e.length,h=t.length;if(f!=h&&!(p&&h>f))return!1;var d=l.get(e);if(d&&l.get(t))return d==t;var m=-1,v=!0,y=n&u?new i:void 0;for(l.set(e,t),l.set(t,e);++m<f;){var g=e[m],_=t[m];if(r)var b=p?r(_,g,m,t,e,l):r(g,_,m,e,t,l);if(void 0!==b){if(b)continue;v=!1;break}if(y){if(!o(t,function(e,t){if(!a(y,t)&&(g===e||c(g,e,n,r,l)))return y.push(t)})){v=!1;break}}else if(g!==_&&!c(g,_,n,r,l)){v=!1;break}}return l.delete(e),l.delete(t),v}var i=n(259),o=n(262),a=n(263),s=1,u=2;e.exports=r},function(e,t,n){function r(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new i;++t<n;)this.add(e[t])}var i=n(213),o=n(260),a=n(261);r.prototype.add=r.prototype.push=o,r.prototype.has=a,e.exports=r},function(e,t){function n(e){return this.__data__.set(e,r),this}var r="__lodash_hash_undefined__";e.exports=n},function(e,t){function n(e){return this.__data__.has(e)}e.exports=n},function(e,t){function n(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}e.exports=n},function(e,t){function n(e,t){return e.has(t)}e.exports=n},function(e,t,n){function r(e,t,n,r,i,k,E){switch(n){case w:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case x:return!(e.byteLength!=t.byteLength||!k(new o(e),new o(t)));case f:case h:case v:return a(+e,+t);case d:return e.name==t.name&&e.message==t.message;case y:case _:return e==t+"";case m:var C=u;case g:var A=r&l;if(C||(C=c),e.size!=t.size&&!A)return!1;var T=E.get(e);if(T)return T==t;r|=p,E.set(e,t);var D=s(C(e),C(t),r,i,k,E);return E.delete(e),D;case b:if(S)return S.call(e)==S.call(t)}return!1}var i=n(151),o=n(265),a=n(234),s=n(258),u=n(266),c=n(267),l=1,p=2,f="[object Boolean]",h="[object Date]",d="[object Error]",m="[object Map]",v="[object Number]",y="[object RegExp]",g="[object Set]",_="[object String]",b="[object Symbol]",x="[object ArrayBuffer]",w="[object DataView]",k=i?i.prototype:void 0,S=k?k.valueOf:void 0;e.exports=r},[1207,152],function(e,t){function n(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}e.exports=n},function(e,t){function n(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}e.exports=n},function(e,t,n){function r(e,t,n,r,a,u){var c=n&o,l=i(e),p=l.length,f=i(t),h=f.length;if(p!=h&&!c)return!1;for(var d=p;d--;){var m=l[d];if(!(c?m in t:s.call(t,m)))return!1}var v=u.get(e);if(v&&u.get(t))return v==t;var y=!0;u.set(e,t),u.set(t,e);for(var g=c;++d<p;){m=l[d];var _=e[m],b=t[m];if(r)var x=c?r(b,_,m,t,e,u):r(_,b,m,e,t,u);if(!(void 0===x?_===b||a(_,b,n,r,u):x)){y=!1;break}g||(g="constructor"==m)}if(y&&!g){var w=e.constructor,k=t.constructor;w!=k&&"constructor"in e&&"constructor"in t&&!("function"==typeof w&&w instanceof w&&"function"==typeof k&&k instanceof k)&&(y=!1)}return u.delete(e),u.delete(t),y}var i=n(269),o=1,a=Object.prototype,s=a.hasOwnProperty;e.exports=r},[1208,270,282,285],function(e,t,n){function r(e,t){var n=a(e),r=!n&&o(e),l=!n&&!r&&s(e),f=!n&&!r&&!l&&c(e),h=n||r||l||f,d=h?i(e.length,String):[],m=d.length;for(var v in e)!t&&!p.call(e,v)||h&&("length"==v||l&&("offset"==v||"parent"==v)||f&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||u(v,m))||d.push(v);return d}var i=n(271),o=n(272),a=n(193),s=n(274),u=n(276),c=n(277),l=Object.prototype,p=l.hasOwnProperty;e.exports=r},function(e,t){function n(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}e.exports=n},function(e,t,n){var r=n(273),i=n(158),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(e){return i(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},function(e,t,n){function r(e){return o(e)&&i(e)==a}var i=n(150),o=n(158),a="[object Arguments]";e.exports=r},[1209,152,275],function(e,t){function n(){return!1}e.exports=n},function(e,t){function n(e,t){return t=null==t?r:t,!!t&&("number"==typeof e||i.test(e))&&e>-1&&e%1==0&&e<t}var r=9007199254740991,i=/^(?:0|[1-9]\d*)$/;e.exports=n},[1210,278,280,281],function(e,t,n){function r(e){return a(e)&&o(e.length)&&!!O[i(e)]}var i=n(150),o=n(279),a=n(158),s="[object Arguments]",u="[object Array]",c="[object Boolean]",l="[object Date]",p="[object Error]",f="[object Function]",h="[object Map]",d="[object Number]",m="[object Object]",v="[object RegExp]",y="[object Set]",g="[object String]",_="[object WeakMap]",b="[object ArrayBuffer]",x="[object DataView]",w="[object Float32Array]",k="[object Float64Array]",S="[object Int8Array]",E="[object Int16Array]",C="[object Int32Array]",A="[object Uint8Array]",T="[object Uint8ClampedArray]",D="[object Uint16Array]",M="[object Uint32Array]",O={};O[w]=O[k]=O[S]=O[E]=O[C]=O[A]=O[T]=O[D]=O[M]=!0,O[s]=O[u]=O[b]=O[c]=O[x]=O[l]=O[p]=O[f]=O[h]=O[d]=O[m]=O[v]=O[y]=O[g]=O[_]=!1,e.exports=r},function(e,t){function n(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=r}var r=9007199254740991;e.exports=n},function(e,t){function n(e){return function(t){return e(t)}}e.exports=n},function(e,t,n){(function(e){var r=n(153),i="object"==typeof t&&t&&!t.nodeType&&t,o=i&&"object"==typeof e&&e&&!e.nodeType&&e,a=o&&o.exports===i,s=a&&r.process,u=function(){try{return s&&s.binding&&s.binding("util")}catch(e){}}();e.exports=u}).call(t,n(161)(e))},[1211,283,284],function(e,t){function n(e){var t=e&&e.constructor,n="function"==typeof t&&t.prototype||r;return e===n}var r=Object.prototype;e.exports=n},[1212,157],[1213,220,279],function(e,t,n){var r=n(287),i=n(238),o=n(288),a=n(289),s=n(290),u=n(150),c=n(224),l="[object Map]",p="[object Object]",f="[object Promise]",h="[object Set]",d="[object WeakMap]",m="[object DataView]",v=c(r),y=c(i),g=c(o),_=c(a),b=c(s),x=u;(r&&x(new r(new ArrayBuffer(1)))!=m||i&&x(new i)!=l||o&&x(o.resolve())!=f||a&&x(new a)!=h||s&&x(new s)!=d)&&(x=function(e){var t=u(e),n=t==p?e.constructor:void 0,r=n?c(n):"";if(r)switch(r){case v:return m;case y:return l;case g:return f;case _:return h;case b:return d}return t}),e.exports=x},[1214,218,152],[1215,218,152],[1216,218,152],[1217,218,152],[1218,292,269],[1219,221],function(e,t){function n(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}e.exports=n},function(e,t,n){function r(e,t){return s(e)&&u(t)?c(l(e),t):function(n){var r=o(n,e);return void 0===r&&r===t?a(n,e):i(t,r,p|f)}}var i=n(256),o=n(295),a=n(302),s=n(298),u=n(292),c=n(293),l=n(301),p=1,f=2;e.exports=r},[1220,296],function(e,t,n){function r(e,t){t=i(t,e);for(var n=0,r=t.length;null!=e&&n<r;)e=e[o(t[n++])];return n&&n==r?e:void 0}var i=n(297),o=n(301);e.exports=r},function(e,t,n){function r(e,t){return i(e)?e:o(e,t)?[e]:a(s(e))}var i=n(193),o=n(298),a=n(299),s=n(190);e.exports=r},[1221,193,194],function(e,t,n){var r=n(300),i=/^\./,o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,s=r(function(e){var t=[];return i.test(e)&&t.push(""),e.replace(o,function(e,n,r,i){t.push(r?i.replace(a,"$1"):n||e)}),t});e.exports=s},[1222,212],[1223,194],[1224,303,304],function(e,t){function n(e,t){return null!=e&&t in Object(e)}e.exports=n},function(e,t,n){function r(e,t,n){t=i(t,e);for(var r=-1,l=t.length,p=!1;++r<l;){var f=c(t[r]);if(!(p=null!=e&&n(e,f)))break;e=e[f]}return p||++r!=l?p:(l=null==e?0:e.length,!!l&&u(l)&&s(f,l)&&(a(e)||o(e)))}var i=n(297),o=n(272),a=n(193),s=n(276),u=n(279),c=n(301);e.exports=r},function(e,t){function n(e){return e}e.exports=n},[1225,307,308,298,301],function(e,t){function n(e){return function(t){return null==t?void 0:t[e]}}e.exports=n},[1226,296],function(e,t,n){function r(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var u=null==n?0:a(n);return u<0&&(u=s(r+u,0)),i(e,o(t,3),u)}var i=n(310),o=n(247),a=n(311),s=Math.max;e.exports=r},function(e,t){function n(e,t,n,r){for(var i=e.length,o=n+(r?1:-1);r?o--:++o<i;)if(t(e[o],o,e))return o;return-1}e.exports=n},[1227,312],[1228,313],[1229,221,194],function(e,t,n){function r(e,t,n){var r=s(e)?i:a;return n&&u(e,t,n)&&(t=void 0),r(e,o(t,3))}var i=n(262),o=n(247),a=n(315),s=n(193),u=n(321);e.exports=r},function(e,t,n){function r(e,t){var n;return i(e,function(e,r,i){return n=t(e,r,i),!n}),!!n}var i=n(316);e.exports=r},function(e,t,n){var r=n(317),i=n(320),o=i(r);e.exports=o},function(e,t,n){function r(e,t){return e&&i(e,t,o)}var i=n(318),o=n(269);e.exports=r},function(e,t,n){var r=n(319),i=r();e.exports=i},function(e,t){function n(e){return function(t,n,r){for(var i=-1,o=Object(t),a=r(t),s=a.length;s--;){var u=a[e?s:++i];if(n(o[u],u,o)===!1)break}return t}}e.exports=n},function(e,t,n){function r(e,t){return function(n,r){if(null==n)return n;if(!i(n))return e(n,r);for(var o=n.length,a=t?o:-1,s=Object(n);(t?a--:++a<o)&&r(s[a],a,s)!==!1;);return n}}var i=n(285);e.exports=r},[1230,234,285,276,221],function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var n=h(e,t);if(n)return(0,s.default)(n,{declaration:!0,indent:"\t"})}Object.defineProperty(t,"__esModule",{value:!0}),t.memoizedSampleFromSchema=t.memoizedCreateXMLExample=t.sampleXmlFromSchema=t.inferSchema=t.sampleFromSchema=void 0,t.createXMLExample=i;var o=n(183),a=n(323),s=r(a),u=n(350),c=r(u),l={string:function(){return"string"},string_email:function(){return"user@example.com"},"string_date-time":function(){return(new Date).toISOString()},number:function(){return 0},number_float:function(){return 0},integer:function(){return 0},boolean:function(){return!0}},p=function(e){e=(0,o.objectify)(e);var t=e,n=t.type,r=t.format,i=l[n+"_"+r]||l[n];return(0,o.isFunc)(i)?i(e):"Unknown Type: "+e.type},f=t.sampleFromSchema=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(0, +o.objectify)(t),i=r.type,a=r.example,s=r.properties,u=r.additionalProperties,c=r.items,l=n.includeReadOnly;if(void 0!==a)return a;if(!i)if(s)i="object";else{if(!c)return;i="array"}if("object"===i){var f=(0,o.objectify)(s),h={};for(var d in f)f[d].readOnly&&!l||(h[d]=e(f[d],{includeReadOnly:l}));if(u===!0)h.additionalProp1={};else if(u)for(var m=(0,o.objectify)(u),v=e(m,{includeReadOnly:l}),y=1;y<4;y++)h["additionalProp"+y]=v;return h}return"array"===i?[e(c,{includeReadOnly:l})]:t.enum?t.default?t.default:(0,o.normalizeArray)(t.enum)[0]:p(t)},h=(t.inferSchema=function(e){return e.schema&&(e=e.schema),e.properties&&(e.type="object"),e},t.sampleXmlFromSchema=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(0,o.objectify)(t),i=r.type,a=r.properties,s=r.additionalProperties,u=r.items,c=r.example,l=n.includeReadOnly,f=r.default,h={},d={},m=t.xml,v=m.name,y=m.prefix,g=m.namespace,_=r.enum,b=void 0,x=void 0;if(!i)if(a||s)i="object";else{if(!u)return;i="array"}if(v=v||"notagname",b=(y?y+":":"")+v,g){var w=y?"xmlns:"+y:"xmlns";d[w]=g}if("array"===i&&u){if(u.xml=u.xml||m||{},u.xml.name=u.xml.name||m.name,m.wrapped)return h[b]=[],Array.isArray(c)?c.forEach(function(t){u.example=t,h[b].push(e(u,n))}):Array.isArray(f)?f.forEach(function(t){u.default=t,h[b].push(e(u,n))}):h[b]=[e(u,n)],d&&h[b].push({_attr:d}),h;var k=[];return Array.isArray(c)?(c.forEach(function(t){u.example=t,k.push(e(u,n))}),k):Array.isArray(f)?(f.forEach(function(t){u.default=t,k.push(e(u,n))}),k):e(u,n)}if("object"===i){var S=(0,o.objectify)(a);h[b]=[],c=c||{};for(var E in S)if(!S[E].readOnly||l)if(S[E].xml=S[E].xml||{},S[E].xml.attribute){var C=Array.isArray(S[E].enum)&&S[E].enum[0],A=S[E].example,T=S[E].default;d[S[E].xml.name||E]=void 0!==A&&A||void 0!==c[E]&&c[E]||void 0!==T&&T||C||p(S[E])}else{S[E].xml.name=S[E].xml.name||E,S[E].example=void 0!==S[E].example?S[E].example:c[E];var D=e(S[E]);Array.isArray(D)?h[b]=h[b].concat(D):h[b].push(D)}return s===!0?h[b].push({additionalProp:"Anything can be here"}):s&&h[b].push({additionalProp:p(s)}),d&&h[b].push({_attr:d}),h}return x=void 0!==c?c:void 0!==f?f:Array.isArray(_)?_[0]:p(t),h[b]=d?[{_attr:d},x]:x,h});t.memoizedCreateXMLExample=(0,c.default)(i),t.memoizedSampleFromSchema=(0,c.default)(f)},function(e,t,n){(function(t){function r(e,n){function r(e){v?t.nextTick(e):e()}function i(e,t){if(void 0!==t&&(h+=t),e&&!d&&(f=f||new l,d=!0),e&&d){var n=h;r(function(){f.emit("data",n)}),h=""}}function o(e,t){s(i,a(e,m,m?1:0),t)}function u(){if(f){var e=h;r(function(){f.emit("data",e),f.emit("end"),f.readable=!1,f.emit("close")})}}function c(e){var t=e.encoding||"UTF-8",n={version:"1.0",encoding:t};e.standalone&&(n.standalone=e.standalone),o({"?xml":{_attr:n}}),h=h.replace("/>","?>")}"object"!=typeof n&&(n={indent:n});var f=n.stream?new l:null,h="",d=!1,m=n.indent?n.indent===!0?p:n.indent:"",v=!0;return r(function(){v=!1}),n.declaration&&c(n.declaration),e&&e.forEach?e.forEach(function(t,n){var r;n+1===e.length&&(r=u),o(t,r)}):o(e,u),f?(f.readable=!0,f):h}function i(){var e=Array.prototype.slice.call(arguments),t={_elem:a(e)};return t.push=function(e){if(!this.append)throw new Error("not assigned to a parent!");var t=this,n=this._elem.indent;s(this.append,a(e,n,this._elem.icount+(n?1:0)),function(){t.append(!0)})},t.close=function(e){void 0!==e&&this.push(e),this.end&&this.end()},t}function o(e,t){return new Array(t||0).join(e||"")}function a(e,t,n){function r(e){var t=Object.keys(e);t.forEach(function(t){d.push(u(t,e[t]))})}n=n||0;var i,s=o(t,n),l=e,p=!1;if("object"==typeof e){var f=Object.keys(e);if(i=f[0],l=e[i],l&&l._elem)return l._elem.name=i,l._elem.icount=n,l._elem.indent=t,l._elem.indents=s,l._elem.interrupt=l,l._elem}var h,d=[],m=[];switch(typeof l){case"object":if(null===l)break;l._attr&&r(l._attr),l._cdata&&m.push(("<![CDATA["+l._cdata).replace(/\]\]>/g,"]]]]><![CDATA[>")+"]]>"),l.forEach&&(h=!1,m.push(""),l.forEach(function(e){if("object"==typeof e){var i=Object.keys(e)[0];"_attr"==i?r(e._attr):m.push(a(e,t,n+1))}else m.pop(),h=!0,m.push(c(e))}),h||m.push(""));break;default:m.push(c(l))}return{name:i,interrupt:p,attributes:d,content:m,icount:n,indents:s,indent:t}}function s(e,t,n){function r(){for(;t.content.length;){var r=t.content.shift();if(void 0!==r){if(i(r))return;s(e,r)}}e(!1,(o>1?t.indents:"")+(t.name?"</"+t.name+">":"")+(t.indent&&!n?"\n":"")),n&&n()}function i(t){return!!t.interrupt&&(t.interrupt.append=e,t.interrupt.end=r,t.interrupt=!1,e(!0),!0)}if("object"!=typeof t)return e(!1,t);var o=t.interrupt?1:t.content.length;return e(!1,t.indents+(t.name?"<"+t.name:"")+(t.attributes.length?" "+t.attributes.join(" "):"")+(o?t.name?">":"":t.name?"/>":"")+(t.indent&&o>1?"\n":"")),o?void(i(t)||r()):e(!1,t.indent?"\n":"")}function u(e,t){return e+'="'+c(t)+'"'}var c=n(325),l=n(326).Stream,p=" ";e.exports=r,e.exports.element=e.exports.Element=i}).call(t,n(324))},function(e,t){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function i(e){if(l===setTimeout)return setTimeout(e,0);if((l===n||!l)&&setTimeout)return l=setTimeout,setTimeout(e,0);try{return l(e,0)}catch(t){try{return l.call(null,e,0)}catch(t){return l.call(this,e,0)}}}function o(e){if(p===clearTimeout)return clearTimeout(e);if((p===r||!p)&&clearTimeout)return p=clearTimeout,clearTimeout(e);try{return p(e)}catch(t){try{return p.call(null,e)}catch(t){return p.call(this,e)}}}function a(){m&&h&&(m=!1,h.length?d=h.concat(d):v=-1,d.length&&s())}function s(){if(!m){var e=i(a);m=!0;for(var t=d.length;t;){for(h=d,d=[];++v<t;)h&&h[v].run();v=-1,t=d.length}h=null,m=!1,o(e)}}function u(e,t){this.fun=e,this.array=t}function c(){}var l,p,f=e.exports={};!function(){try{l="function"==typeof setTimeout?setTimeout:n}catch(e){l=n}try{p="function"==typeof clearTimeout?clearTimeout:r}catch(e){p=r}}();var h,d=[],m=!1,v=-1;f.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];d.push(new u(e,t)),1!==d.length||m||i(s)},u.prototype.run=function(){this.fun.apply(null,this.array)},f.title="browser",f.browser=!0,f.env={},f.argv=[],f.version="",f.versions={},f.on=c,f.addListener=c,f.once=c,f.off=c,f.removeListener=c,f.removeAllListeners=c,f.emit=c,f.prependListener=c,f.prependOnceListener=c,f.listeners=function(e){return[]},f.binding=function(e){throw new Error("process.binding is not supported")},f.cwd=function(){return"/"},f.chdir=function(e){throw new Error("process.chdir is not supported")},f.umask=function(){return 0}},function(e,t){function n(e){return e&&e.replace?e.replace(/([&"<>'])/g,function(e,t){return r[t]}):e}var r={"&":"&amp;",'"':"&quot;","'":"&apos;","<":"&lt;",">":"&gt;"};e.exports=n},function(e,t,n){function r(){i.call(this)}e.exports=r;var i=n(327).EventEmitter,o=n(328);o(r,i),r.Readable=n(329),r.Writable=n(346),r.Duplex=n(347),r.Transform=n(348),r.PassThrough=n(349),r.Stream=r,r.prototype.pipe=function(e,t){function n(t){e.writable&&!1===e.write(t)&&c.pause&&c.pause()}function r(){c.readable&&c.resume&&c.resume()}function o(){l||(l=!0,e.end())}function a(){l||(l=!0,"function"==typeof e.destroy&&e.destroy())}function s(e){if(u(),0===i.listenerCount(this,"error"))throw e}function u(){c.removeListener("data",n),e.removeListener("drain",r),c.removeListener("end",o),c.removeListener("close",a),c.removeListener("error",s),e.removeListener("error",s),c.removeListener("end",u),c.removeListener("close",u),e.removeListener("close",u)}var c=this;c.on("data",n),e.on("drain",r),e._isStdio||t&&t.end===!1||(c.on("end",o),c.on("close",a));var l=!1;return c.on("error",s),e.on("error",s),c.on("end",u),c.on("close",u),e.on("close",u),e.emit("pipe",c),e}},function(e,t){function n(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(e){return"function"==typeof e}function i(e){return"number"==typeof e}function o(e){return"object"==typeof e&&null!==e}function a(e){return void 0===e}e.exports=n,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._maxListeners=void 0,n.defaultMaxListeners=10,n.prototype.setMaxListeners=function(e){if(!i(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},n.prototype.emit=function(e){var t,n,i,s,u,c;if(this._events||(this._events={}),"error"===e&&(!this._events.error||o(this._events.error)&&!this._events.error.length)){if(t=arguments[1],t instanceof Error)throw t;var l=new Error('Uncaught, unspecified "error" event. ('+t+")");throw l.context=t,l}if(n=this._events[e],a(n))return!1;if(r(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:s=Array.prototype.slice.call(arguments,1),n.apply(this,s)}else if(o(n))for(s=Array.prototype.slice.call(arguments,1),c=n.slice(),i=c.length,u=0;u<i;u++)c[u].apply(this,s);return!0},n.prototype.addListener=function(e,t){var i;if(!r(t))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,r(t.listener)?t.listener:t),this._events[e]?o(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,o(this._events[e])&&!this._events[e].warned&&(i=a(this._maxListeners)?n.defaultMaxListeners:this._maxListeners,i&&i>0&&this._events[e].length>i&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(e,t){function n(){this.removeListener(e,n),i||(i=!0,t.apply(this,arguments))}if(!r(t))throw TypeError("listener must be a function");var i=!1;return n.listener=t,this.on(e,n),this},n.prototype.removeListener=function(e,t){var n,i,a,s;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(n=this._events[e],a=n.length,i=-1,n===t||r(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(n)){for(s=a;s-- >0;)if(n[s]===t||n[s].listener&&n[s].listener===t){i=s;break}if(i<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(i,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},n.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(n=this._events[e],r(n))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},n.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},n.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},n.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){t=e.exports=n(330),t.Stream=t,t.Readable=t,t.Writable=n(339),t.Duplex=n(338),t.Transform=n(344),t.PassThrough=n(345)},function(e,t,n){(function(t){"use strict";function r(e){return j.from(e)}function i(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)||j.isBuffer(e)}function o(e,t,n){return"function"==typeof e.prependListener?e.prependListener(t,n):void(e._events&&e._events[t]?I(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n))}function a(e,t){P=P||n(338),e=e||{},this.objectMode=!!e.objectMode,t instanceof P&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var r=e.highWaterMark,i=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:i,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new q,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(z||(z=n(343).StringDecoder),this.decoder=new z(e.encoding),this.encoding=e.encoding)}function s(e){return P=P||n(338),this instanceof s?(this._readableState=new a(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),void R.call(this)):new s(e)}function u(e,t,n,i,o){var a=e._readableState;if(null===t)a.reading=!1,d(e,a);else{var s;o||(s=l(a,t)),s?e.emit("error",s):a.objectMode||t&&t.length>0?("string"==typeof t||Object.getPrototypeOf(t)===j.prototype||a.objectMode||(t=r(t)),i?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):c(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?c(e,a,t,!1):y(e,a)):c(e,a,t,!1))):i||(a.reading=!1)}return p(a)}function c(e,t,n,r){t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&m(e)),y(e,t)}function l(e,t){var n;return i(t)||"string"==typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk")),n}function p(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}function f(e){return e>=K?e=K:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function h(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=f(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function d(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,m(e)}}function m(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(L("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?O(v,e):v(e))}function v(e){L("emit readable"),e.emit("readable"),k(e)}function y(e,t){t.readingMore||(t.readingMore=!0,O(g,e,t))}function g(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(L("maybeReadMore read 0"),e.read(0),n!==t.length);)n=t.length;t.readingMore=!1}function _(e){return function(){var t=e._readableState;L("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&N(e,"data")&&(t.flowing=!0,k(e))}}function b(e){L("readable nexttick read 0"),e.read(0)}function x(e,t){t.resumeScheduled||(t.resumeScheduled=!0,O(w,e,t))}function w(e,t){t.reading||(L("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),k(e),t.flowing&&!t.reading&&e.read(0)}function k(e){var t=e._readableState;for(L("flow",t.flowing);t.flowing&&null!==e.read(););}function S(e,t){if(0===t.length)return null;var n;return t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=E(e,t.buffer,t.decoder),n}function E(e,t,n){var r;return e<t.head.data.length?(r=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):r=e===t.head.data.length?t.shift():n?C(e,t):A(e,t),r}function C(e,t){var n=t.head,r=1,i=n.data;for(e-=i.length;n=n.next;){var o=n.data,a=e>o.length?o.length:e;if(i+=a===o.length?o:o.slice(0,e),e-=a,0===e){a===o.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=o.slice(a));break}++r}return t.length-=r,i}function A(e,t){var n=j.allocUnsafe(e),r=t.head,i=1;for(r.data.copy(n),e-=r.data.length;r=r.next;){var o=r.data,a=e>o.length?o.length:e;if(o.copy(n,n.length-e,0,a),e-=a,0===e){a===o.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=o.slice(a));break}++i}return t.length-=i,n}function T(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,O(D,t,e))}function D(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function M(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}var O=n(331);e.exports=s;var P,I=n(135);s.ReadableState=a;var N=(n(327).EventEmitter,function(e,t){return e.listeners(t).length}),R=n(332),j=n(333).Buffer,F=n(334);F.inherits=n(328);var B=n(335),L=void 0;L=B&&B.debuglog?B.debuglog("stream"):function(){};var z,q=n(336),U=n(337);F.inherits(s,R);var W=["error","close","destroy","pause","resume"];Object.defineProperty(s.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),s.prototype.destroy=U.destroy,s.prototype._undestroy=U.undestroy,s.prototype._destroy=function(e,t){this.push(null),t(e)},s.prototype.push=function(e,t){var n,r=this._readableState;return r.objectMode?n=!0:"string"==typeof e&&(t=t||r.defaultEncoding,t!==r.encoding&&(e=j.from(e,t),t=""),n=!0),u(this,e,t,!1,n)},s.prototype.unshift=function(e){return u(this,e,null,!0,!1)},s.prototype.isPaused=function(){return this._readableState.flowing===!1},s.prototype.setEncoding=function(e){return z||(z=n(343).StringDecoder),this._readableState.decoder=new z(e),this._readableState.encoding=e,this};var K=8388608;s.prototype.read=function(e){L("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return L("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?T(this):m(this),null;if(e=h(e,t),0===e&&t.ended)return 0===t.length&&T(this),null;var r=t.needReadable;L("need readable",r),(0===t.length||t.length-e<t.highWaterMark)&&(r=!0,L("length less than watermark",r)),t.ended||t.reading?(r=!1,L("reading or ended",r)):r&&(L("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=h(n,t)));var i;return i=e>0?S(e,t):null,null===i?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&T(this)),null!==i&&this.emit("data",i),i},s.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},s.prototype.pipe=function(e,n){function r(e,t){L("onunpipe"),e===f&&t&&t.hasUnpiped===!1&&(t.hasUnpiped=!0,a())}function i(){L("onend"),e.end()}function a(){L("cleanup"),e.removeListener("close",c),e.removeListener("finish",l),e.removeListener("drain",v),e.removeListener("error",u),e.removeListener("unpipe",r),f.removeListener("end",i),f.removeListener("end",p),f.removeListener("data",s),y=!0,!h.awaitDrain||e._writableState&&!e._writableState.needDrain||v()}function s(t){L("ondata"),g=!1;var n=e.write(t);!1!==n||g||((1===h.pipesCount&&h.pipes===e||h.pipesCount>1&&M(h.pipes,e)!==-1)&&!y&&(L("false write response, pause",f._readableState.awaitDrain),f._readableState.awaitDrain++,g=!0),f.pause())}function u(t){L("onerror",t),p(),e.removeListener("error",u),0===N(e,"error")&&e.emit("error",t)}function c(){e.removeListener("finish",l),p()}function l(){L("onfinish"),e.removeListener("close",c),p()}function p(){L("unpipe"),f.unpipe(e)}var f=this,h=this._readableState;switch(h.pipesCount){case 0:h.pipes=e;break;case 1:h.pipes=[h.pipes,e];break;default:h.pipes.push(e)}h.pipesCount+=1,L("pipe count=%d opts=%j",h.pipesCount,n);var d=(!n||n.end!==!1)&&e!==t.stdout&&e!==t.stderr,m=d?i:p;h.endEmitted?O(m):f.once("end",m),e.on("unpipe",r);var v=_(f);e.on("drain",v);var y=!1,g=!1;return f.on("data",s),o(e,"error",u),e.once("close",c),e.once("finish",l),e.emit("pipe",f),h.flowing||(L("pipe resume"),f.resume()),e},s.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n),this);if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o<i;o++)r[o].emit("unpipe",this,n);return this}var a=M(t.pipes,e);return a===-1?this:(t.pipes.splice(a,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,n),this)},s.prototype.on=function(e,t){var n=R.prototype.on.call(this,e,t);if("data"===e)this._readableState.flowing!==!1&&this.resume();else if("readable"===e){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&m(this):O(b,this))}return n},s.prototype.addListener=s.prototype.on,s.prototype.resume=function(){var e=this._readableState;return e.flowing||(L("resume"),e.flowing=!0,x(this,e)),this},s.prototype.pause=function(){return L("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(L("pause"),this._readableState.flowing=!1,this.emit("pause")),this},s.prototype.wrap=function(e){var t=this._readableState,n=!1,r=this;e.on("end",function(){if(L("wrapped end"),t.decoder&&!t.ended){var e=t.decoder.end();e&&e.length&&r.push(e)}r.push(null)}),e.on("data",function(i){if(L("wrapped data"),t.decoder&&(i=t.decoder.write(i)),(!t.objectMode||null!==i&&void 0!==i)&&(t.objectMode||i&&i.length)){var o=r.push(i);o||(n=!0,e.pause())}});for(var i in e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var o=0;o<W.length;o++)e.on(W[o],r.emit.bind(r,W[o]));return r._read=function(t){L("wrapped _read",t),n&&(n=!1,e.resume())},r},s._fromList=S}).call(t,n(324))},function(e,t,n){(function(t){"use strict";function n(e,n,r,i){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var o,a,s=arguments.length;switch(s){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick(function(){e.call(null,n)});case 3:return t.nextTick(function(){e.call(null,n,r)});case 4:return t.nextTick(function(){e.call(null,n,r,i)});default:for(o=new Array(s-1),a=0;a<o.length;)o[a++]=arguments[a];return t.nextTick(function(){e.apply(null,o)})}}!t.version||0===t.version.indexOf("v0.")||0===t.version.indexOf("v1.")&&0!==t.version.indexOf("v1.8.")?e.exports=n:e.exports=t.nextTick}).call(t,n(324))},function(e,t,n){e.exports=n(327).EventEmitter},function(e,t,n){function r(e,t){for(var n in e)t[n]=e[n]}function i(e,t,n){return a(e,t,n)}var o=n(132),a=o.Buffer;a.from&&a.alloc&&a.allocUnsafe&&a.allocUnsafeSlow?e.exports=o:(r(o,t),t.Buffer=i),r(a,i),i.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return a(e,t,n)},i.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=a(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},i.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return a(e)},i.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return o.SlowBuffer(e)}},function(e,t,n){(function(e){function n(e){return Array.isArray?Array.isArray(e):"[object Array]"===v(e)}function r(e){return"boolean"==typeof e}function i(e){return null===e}function o(e){return null==e}function a(e){return"number"==typeof e}function s(e){return"string"==typeof e}function u(e){return"symbol"==typeof e}function c(e){return void 0===e}function l(e){return"[object RegExp]"===v(e)}function p(e){return"object"==typeof e&&null!==e}function f(e){return"[object Date]"===v(e)}function h(e){return"[object Error]"===v(e)||e instanceof Error}function d(e){return"function"==typeof e}function m(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function v(e){return Object.prototype.toString.call(e)}t.isArray=n,t.isBoolean=r,t.isNull=i,t.isNullOrUndefined=o,t.isNumber=a,t.isString=s,t.isSymbol=u,t.isUndefined=c,t.isRegExp=l,t.isObject=p,t.isDate=f,t.isError=h,t.isFunction=d,t.isPrimitive=m,t.isBuffer=e.isBuffer}).call(t,n(132).Buffer)},function(e,t){},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t,n){e.copy(t,n)}var o=n(333).Buffer;e.exports=function(){function e(){r(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return o.alloc(0);if(1===this.length)return this.head.data;for(var t=o.allocUnsafe(e>>>0),n=this.head,r=0;n;)i(n.data,t,r),r+=n.data.length,n=n.next;return t},e}()},function(e,t,n){"use strict";function r(e,t){var n=this,r=this._readableState&&this._readableState.destroyed,i=this._writableState&&this._writableState.destroyed;return r||i?void(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||a(o,this,e)):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),void this._destroy(e||null,function(e){!t&&e?(a(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)}))}function i(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function o(e,t){e.emit("error",t)}var a=n(331);e.exports={destroy:r,undestroy:i}},function(e,t,n){"use strict";function r(e){return this instanceof r?(c.call(this,e),l.call(this,e),e&&e.readable===!1&&(this.readable=!1),e&&e.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,e&&e.allowHalfOpen===!1&&(this.allowHalfOpen=!1),void this.once("end",i)):new r(e)}function i(){this.allowHalfOpen||this._writableState.ended||a(o,this)}function o(e){e.end()}var a=n(331),s=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=r;var u=n(334);u.inherits=n(328);var c=n(330),l=n(339);u.inherits(r,c);for(var p=s(l.prototype),f=0;f<p.length;f++){var h=p[f];r.prototype[h]||(r.prototype[h]=l.prototype[h])}Object.defineProperty(r.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}}),r.prototype._destroy=function(e,t){this.push(null),this.end(),a(t,e)}},function(e,t,n){(function(t,r){"use strict";function i(e){var t=this;this.next=null,this.entry=null,this.finish=function(){C(t,e)}}function o(e){return I.from(e)}function a(e){return"[object Uint8Array]"===Object.prototype.toString.call(e)||I.isBuffer(e)}function s(){}function u(e,t){T=T||n(338),e=e||{},this.objectMode=!!e.objectMode,t instanceof T&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var r=e.highWaterMark,o=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:o,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=e.decodeStrings===!1;this.decodeStrings=!a,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){y(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new i(this)}function c(e){return T=T||n(338),R.call(c,this)||this instanceof T?(this._writableState=new u(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),void P.call(this)):new c(e)}function l(e,t){var n=new Error("write after end");e.emit("error",n),A(t,n)}function p(e,t,n,r){var i=!0,o=!1;return null===n?o=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(e.emit("error",o),A(r,o),i=!1),i}function f(e,t,n){return e.objectMode||e.decodeStrings===!1||"string"!=typeof t||(t=I.from(t,n)),t}function h(e,t,n,r,i,o){if(!n){var a=f(t,r,i);r!==a&&(n=!0,i="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var u=t.length<t.highWaterMark;if(u||(t.needDrain=!0),t.writing||t.corked){var c=t.lastBufferedRequest;t.lastBufferedRequest={chunk:r,encoding:i,isBuf:n,callback:o,next:null},c?c.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else d(e,t,!1,s,r,i,o);return u}function d(e,t,n,r,i,o,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(i,t.onwrite):e._write(i,o,t.onwrite),t.sync=!1}function m(e,t,n,r,i){--t.pendingcb,n?(A(i,r),A(S,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(i(r),e._writableState.errorEmitted=!0,e.emit("error",r),S(e,t))}function v(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function y(e,t){var n=e._writableState,r=n.sync,i=n.writecb;if(v(n),t)m(e,n,r,t,i);else{var o=x(n);o||n.corked||n.bufferProcessing||!n.bufferedRequest||b(e,n),r?D(g,e,n,o,i):g(e,n,o,i)}}function g(e,t,n,r){n||_(e,t),t.pendingcb--,r(),S(e,t)}function _(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function b(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),a=t.corkedRequestsFree;a.entry=n;for(var s=0,u=!0;n;)o[s]=n,n.isBuf||(u=!1),n=n.next,s+=1;o.allBuffers=u,d(e,t,!0,t.length,o,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new i(t)}else{for(;n;){var c=n.chunk,l=n.encoding,p=n.callback,f=t.objectMode?1:c.length;if(d(e,t,!1,f,c,l,p),n=n.next,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=n,t.bufferProcessing=!1}function x(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function w(e,t){e._final(function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),S(e,t)})}function k(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,A(w,e,t)):(t.prefinished=!0,e.emit("prefinish")))}function S(e,t){var n=x(t);return n&&(k(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}function E(e,t,n){t.ending=!0,S(e,t),n&&(t.finished?A(n):e.once("finish",n)),t.ended=!0,e.writable=!1}function C(e,t,n){var r=e.entry;for(e.entry=null;r;){var i=r.callback;t.pendingcb--,i(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}var A=n(331);e.exports=c;var T,D=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:A; +c.WritableState=u;var M=n(334);M.inherits=n(328);var O={deprecate:n(342)},P=n(332),I=n(333).Buffer,N=n(337);M.inherits(c,P),u.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(u.prototype,"buffer",{get:O.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}();var R;"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(R=Function.prototype[Symbol.hasInstance],Object.defineProperty(c,Symbol.hasInstance,{value:function(e){return!!R.call(this,e)||e&&e._writableState instanceof u}})):R=function(e){return e instanceof this},c.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},c.prototype.write=function(e,t,n){var r=this._writableState,i=!1,u=a(e)&&!r.objectMode;return u&&!I.isBuffer(e)&&(e=o(e)),"function"==typeof t&&(n=t,t=null),u?t="buffer":t||(t=r.defaultEncoding),"function"!=typeof n&&(n=s),r.ended?l(this,n):(u||p(this,r,e,n))&&(r.pendingcb++,i=h(this,r,u,e,t,n)),i},c.prototype.cork=function(){var e=this._writableState;e.corked++},c.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||b(this,e))},c.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},c.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},c.prototype._writev=null,c.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!==e&&void 0!==e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||E(this,r,n)},Object.defineProperty(c.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),c.prototype.destroy=N.destroy,c.prototype._undestroy=N.undestroy,c.prototype._destroy=function(e,t){this.end(),t(e)}}).call(t,n(324),n(340).setImmediate)},function(e,t,n){function r(e,t){this._id=e,this._clearFn=t}var i=Function.prototype.apply;t.setTimeout=function(){return new r(i.call(setTimeout,window,arguments),clearTimeout)},t.setInterval=function(){return new r(i.call(setInterval,window,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},r.prototype.unref=r.prototype.ref=function(){},r.prototype.close=function(){this._clearFn.call(window,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(341),t.setImmediate=setImmediate,t.clearImmediate=clearImmediate},function(e,t,n){(function(e,t){!function(e,n){"use strict";function r(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n<t.length;n++)t[n]=arguments[n+1];var r={callback:e,args:t};return m[d]=r,h(d),d++}function i(e){delete m[e]}function o(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(n,r)}}function a(e){if(v)setTimeout(a,0,e);else{var t=m[e];if(t){v=!0;try{o(t)}finally{i(e),v=!1}}}}function s(){h=function(e){t.nextTick(function(){a(e)})}}function u(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}function c(){var t="setImmediate$"+Math.random()+"$",n=function(n){n.source===e&&"string"==typeof n.data&&0===n.data.indexOf(t)&&a(+n.data.slice(t.length))};e.addEventListener?e.addEventListener("message",n,!1):e.attachEvent("onmessage",n),h=function(n){e.postMessage(t+n,"*")}}function l(){var e=new MessageChannel;e.port1.onmessage=function(e){var t=e.data;a(t)},h=function(t){e.port2.postMessage(t)}}function p(){var e=y.documentElement;h=function(t){var n=y.createElement("script");n.onreadystatechange=function(){a(t),n.onreadystatechange=null,e.removeChild(n),n=null},e.appendChild(n)}}function f(){h=function(e){setTimeout(a,0,e)}}if(!e.setImmediate){var h,d=1,m={},v=!1,y=e.document,g=Object.getPrototypeOf&&Object.getPrototypeOf(e);g=g&&g.setTimeout?g:e,"[object process]"==={}.toString.call(e.process)?s():u()?c():e.MessageChannel?l():y&&"onreadystatechange"in y.createElement("script")?p():f(),g.setImmediate=r,g.clearImmediate=i}}("undefined"==typeof self?"undefined"==typeof e?this:e:self)}).call(t,function(){return this}(),n(324))},function(e,t){(function(t){function n(e,t){function n(){if(!i){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?console.trace(t):console.warn(t),i=!0}return e.apply(this,arguments)}if(r("noDeprecation"))return e;var i=!1;return n}function r(e){try{if(!t.localStorage)return!1}catch(e){return!1}var n=t.localStorage[e];return null!=n&&"true"===String(n).toLowerCase()}e.exports=n}).call(t,function(){return this}())},function(e,t,n){"use strict";function r(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function i(e){var t=r(e);if("string"!=typeof t&&(g.isEncoding===_||!_(e)))throw new Error("Unknown encoding: "+e);return t||e}function o(e){this.encoding=i(e);var t;switch(this.encoding){case"utf16le":this.text=f,this.end=h,t=4;break;case"utf8":this.fillLast=c,t=4;break;case"base64":this.text=d,this.end=m,t=3;break;default:return this.write=v,void(this.end=y)}this.lastNeed=0,this.lastTotal=0,this.lastChar=g.allocUnsafe(t)}function a(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:-1}function s(e,t,n){var r=t.length-1;if(r<n)return 0;var i=a(t[r]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--r<n?0:(i=a(t[r]),i>=0?(i>0&&(e.lastNeed=i-2),i):--r<n?0:(i=a(t[r]),i>=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0))}function u(e,t,n){if(128!==(192&t[0]))return e.lastNeed=0,"�".repeat(n);if(e.lastNeed>1&&t.length>1){if(128!==(192&t[1]))return e.lastNeed=1,"�".repeat(n+1);if(e.lastNeed>2&&t.length>2&&128!==(192&t[2]))return e.lastNeed=2,"�".repeat(n+2)}}function c(e){var t=this.lastTotal-this.lastNeed,n=u(this,e,t);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function l(e,t){var n=s(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function p(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�".repeat(this.lastTotal-this.lastNeed):t}function f(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function h(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function d(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function m(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function v(e){return e.toString(this.encoding)}function y(e){return e&&e.length?this.write(e):""}var g=n(333).Buffer,_=g.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};t.StringDecoder=o,o.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(t=this.fillLast(e),void 0===t)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},o.prototype.end=p,o.prototype.text=l,o.prototype.fillLast=function(e){return this.lastNeed<=e.length?(e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),void(this.lastNeed-=e.length))}},function(e,t,n){"use strict";function r(e){this.afterTransform=function(t,n){return i(e,t,n)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function i(e,t,n){var r=e._transformState;r.transforming=!1;var i=r.writecb;if(!i)return e.emit("error",new Error("write callback called multiple times"));r.writechunk=null,r.writecb=null,null!==n&&void 0!==n&&e.push(n),i(t);var o=e._readableState;o.reading=!1,(o.needReadable||o.length<o.highWaterMark)&&e._read(o.highWaterMark)}function o(e){if(!(this instanceof o))return new o(e);s.call(this,e),this._transformState=new r(this);var t=this;this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.once("prefinish",function(){"function"==typeof this._flush?this._flush(function(e,n){a(t,e,n)}):a(t)})}function a(e,t,n){if(t)return e.emit("error",t);null!==n&&void 0!==n&&e.push(n);var r=e._writableState,i=e._transformState;if(r.length)throw new Error("Calling transform done when ws.length != 0");if(i.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}e.exports=o;var s=n(338),u=n(334);u.inherits=n(328),u.inherits(o,s),o.prototype.push=function(e,t){return this._transformState.needTransform=!1,s.prototype.push.call(this,e,t)},o.prototype._transform=function(e,t,n){throw new Error("_transform() is not implemented")},o.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var i=this._readableState;(r.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},o.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},o.prototype._destroy=function(e,t){var n=this;s.prototype._destroy.call(this,e,function(e){t(e),n.emit("close")})}},function(e,t,n){"use strict";function r(e){return this instanceof r?void i.call(this,e):new r(e)}e.exports=r;var i=n(344),o=n(334);o.inherits=n(328),o.inherits(r,i),r.prototype._transform=function(e,t,n){n(null,e)}},function(e,t,n){e.exports=n(339)},function(e,t,n){e.exports=n(338)},function(e,t,n){e.exports=n(329).Transform},function(e,t,n){e.exports=n(329).PassThrough},function(e,t,n){"use strict";var r=n(351),i=n(352),o=n(358);e.exports=function(e){var t,a=r(arguments[1]);return a.normalizer||(t=a.length=i(a.length,e.length,a.async),0!==t&&(a.primitive?t===!1?a.normalizer=n(396):t>1&&(a.normalizer=n(397)(t)):t===!1?a.normalizer=n(398)():1===t?a.normalizer=n(400)():a.normalizer=n(401)(t))),a.async&&n(402),a.promise&&n(405),a.dispose&&n(407),a.maxAge&&n(408),a.max&&n(411),a.refCounter&&n(413),o(e,a)}},function(e,t){"use strict";var n=Array.prototype.forEach,r=Object.create,i=function(e,t){var n;for(n in e)t[n]=e[n]};e.exports=function(e){var t=r(null);return n.call(arguments,function(e){null!=e&&i(Object(e),t)}),t}},function(e,t,n){"use strict";var r=n(353);e.exports=function(e,t,n){var i;return isNaN(e)?(i=t,i>=0?n&&i?i-1:i:1):e!==!1&&r(e)}},function(e,t,n){"use strict";var r=n(354),i=Math.max;e.exports=function(e){return i(0,r(e))}},function(e,t,n){"use strict";var r=n(355),i=Math.abs,o=Math.floor;e.exports=function(e){return isNaN(e)?0:(e=Number(e),0!==e&&isFinite(e)?r(e)*o(i(e)):e)}},function(e,t,n){"use strict";e.exports=n(356)()?Math.sign:n(357)},function(e,t){"use strict";e.exports=function(){var e=Math.sign;return"function"==typeof e&&(1===e(10)&&e(-20)===-1)}},function(e,t){"use strict";e.exports=function(e){return e=Number(e),isNaN(e)||0===e?e:e>0?1:-1}},function(e,t,n){"use strict";var r=n(359),i=n(360),o=n(363),a=n(364),s=n(352),u=Object.prototype.hasOwnProperty;e.exports=function e(t){var n,c,l;if(r(t),n=Object(arguments[1]),n.async&&n.promise)throw new Error("Options 'async' and 'promise' cannot be used together");return u.call(t,"__memoized__")&&!n.force?t:(c=s(n.length,t.length,n.async&&o.async),l=a(t,c,n),i(o,function(e,t){n[t]&&e(n[t],l,n)}),e.__profiler__&&e.__profiler__(l),l.updateEnv(),l.memoized)}},function(e,t){"use strict";e.exports=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e}},function(e,t,n){"use strict";e.exports=n(361)("forEach")},function(e,t,n){"use strict";var r=n(359),i=n(362),o=Function.prototype.bind,a=Function.prototype.call,s=Object.keys,u=Object.prototype.propertyIsEnumerable;e.exports=function(e,t){return function(n,c){var l,p=arguments[2],f=arguments[3];return n=Object(i(n)),r(c),l=s(n),f&&l.sort("function"==typeof f?o.call(f,n):void 0),"function"!=typeof e&&(e=l[e]),a.call(e,l,function(e,r){return u.call(n,e)?a.call(c,p,n[e],e,n,r):t})}}},function(e,t){"use strict";e.exports=function(e){if(null==e)throw new TypeError("Cannot use null or undefined");return e}},function(e,t){"use strict"},function(e,t,n){"use strict";var r=n(365),i=n(373),o=n(375),a=n(380).methods,s=n(381),u=n(395),c=Function.prototype.apply,l=Function.prototype.call,p=Object.create,f=Object.prototype.hasOwnProperty,h=Object.defineProperties,d=a.on,m=a.emit;e.exports=function(e,t,n){var a,v,y,g,_,b,x,w,k,S,E,C,A,T=p(null);return v=t!==!1?t:isNaN(e.length)?1:e.length,n.normalizer&&(w=u(n.normalizer),y=w.get,g=w.set,_=w.delete,b=w.clear),null!=n.resolvers&&(A=s(n.resolvers)),C=y?i(function(t){var n,i,o=arguments;if(A&&(o=A(o)),n=y(o),null!==n&&f.call(T,n))return k&&a.emit("get",n,o,this),T[n];if(i=1===o.length?l.call(e,this,o[0]):c.call(e,this,o),null===n){if(n=y(o),null!==n)throw r("Circular invocation","CIRCULAR_INVOCATION");n=g(o)}else if(f.call(T,n))throw r("Circular invocation","CIRCULAR_INVOCATION");return T[n]=i,S&&a.emit("set",n,null,i),i},v):0===t?function(){var t;if(f.call(T,"data"))return k&&a.emit("get","data",arguments,this),T.data;if(t=arguments.length?c.call(e,this,arguments):l.call(e,this),f.call(T,"data"))throw r("Circular invocation","CIRCULAR_INVOCATION");return T.data=t,S&&a.emit("set","data",null,t),t}:function(t){var n,i,o=arguments;if(A&&(o=A(arguments)),i=String(o[0]),f.call(T,i))return k&&a.emit("get",i,o,this),T[i];if(n=1===o.length?l.call(e,this,o[0]):c.call(e,this,o),f.call(T,i))throw r("Circular invocation","CIRCULAR_INVOCATION");return T[i]=n,S&&a.emit("set",i,null,n),n},a={original:e,memoized:C,get:function(e){return A&&(e=A(e)),y?y(e):String(e[0])},has:function(e){return f.call(T,e)},delete:function(e){var t;f.call(T,e)&&(_&&_(e),t=T[e],delete T[e],E&&a.emit("delete",e,t))},clear:function(){var e=T;b&&b(),T=p(null),a.emit("clear",e)},on:function(e,t){return"get"===e?k=!0:"set"===e?S=!0:"delete"===e&&(E=!0),d.call(this,e,t)},emit:m,updateEnv:function(){e=a.original}},x=y?i(function(e){var t,n=arguments;A&&(n=A(n)),t=y(n),null!==t&&a.delete(t)},v):0===t?function(){return a.delete("data")}:function(e){return A&&(e=A(arguments)[0]),a.delete(e)},h(C,{__memoized__:o(!0),delete:o(x),clear:o(a.clear)}),a}},function(e,t,n){"use strict";var r=n(366),i=n(372),o=Error.captureStackTrace;t=e.exports=function(e){var n=new Error(e),a=arguments[1],s=arguments[2];return null==s&&i(a)&&(s=a,a=null),null!=s&&r(n,s),null!=a&&(n.code=a),o&&o(n,t),n}},function(e,t,n){"use strict";e.exports=n(367)()?Object.assign:n(368)},function(e,t){"use strict";e.exports=function(){var e,t=Object.assign;return"function"==typeof t&&(e={foo:"raz"},t(e,{bar:"dwa"},{trzy:"trzy"}),e.foo+e.bar+e.trzy==="razdwatrzy")}},function(e,t,n){"use strict";var r=n(369),i=n(362),o=Math.max;e.exports=function(e,t){var n,a,s,u=o(arguments.length,2);for(e=Object(i(e)),s=function(r){try{e[r]=t[r]}catch(e){n||(n=e)}},a=1;a<u;++a)t=arguments[a],r(t).forEach(s);if(void 0!==n)throw n;return e}},function(e,t,n){"use strict";e.exports=n(370)()?Object.keys:n(371)},function(e,t){"use strict";e.exports=function(){try{return Object.keys("primitive"),!0}catch(e){return!1}}},function(e,t){"use strict";var n=Object.keys;e.exports=function(e){return n(null==e?e:Object(e))}},function(e,t){"use strict";var n={function:!0,object:!0};e.exports=function(e){return null!=e&&n[typeof e]||!1}},function(e,t,n){"use strict";var r,i,o,a,s=n(353),u=function(e,t){};try{Object.defineProperty(u,"length",{configurable:!0,writable:!1,enumerable:!1,value:1})}catch(e){}1===u.length?(r={configurable:!0,writable:!1,enumerable:!1},i=Object.defineProperty,e.exports=function(e,t){return t=s(t),e.length===t?e:(r.value=t,i(e,"length",r))}):(a=n(374),o=function(){var e=[];return function(t){var n,r=0;if(e[t])return e[t];for(n=[];t--;)n.push("a"+(++r).toString(36));return new Function("fn","return function ("+n.join(", ")+") { return fn.apply(this, arguments); };")}}(),e.exports=function(e,t){var n;if(t=s(t),e.length===t)return e;n=o(t)(e);try{a(n,e)}catch(e){}return n})},function(e,t,n){"use strict";var r=n(362),i=Object.defineProperty,o=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,s=Object.getOwnPropertySymbols;e.exports=function(e,t){var n,u=Object(r(t));if(e=Object(r(e)),a(u).forEach(function(r){try{i(e,r,o(t,r))}catch(e){n=e}}),"function"==typeof s&&s(u).forEach(function(r){try{i(e,r,o(t,r))}catch(e){n=e}}),void 0!==n)throw n;return e}},function(e,t,n){"use strict";var r,i=n(366),o=n(351),a=n(376),s=n(377);r=e.exports=function(e,t){var n,r,a,u,c;return arguments.length<2||"string"!=typeof e?(u=t,t=e,e=null):u=arguments[2],null==e?(n=a=!0,r=!1):(n=s.call(e,"c"),r=s.call(e,"e"),a=s.call(e,"w")),c={value:t,configurable:n,enumerable:r,writable:a},u?i(o(u),c):c},r.gs=function(e,t,n){var r,u,c,l;return"string"!=typeof e?(c=n,n=t,t=e,e=null):c=arguments[3],null==t?t=void 0:a(t)?null==n?n=void 0:a(n)||(c=n,n=void 0):(c=t,t=n=void 0),null==e?(r=!0,u=!1):(r=s.call(e,"c"),u=s.call(e,"e")),l={get:t,set:n,configurable:r,enumerable:u},c?i(o(c),l):l}},function(e,t){"use strict";e.exports=function(e){return"function"==typeof e}},function(e,t,n){"use strict";e.exports=n(378)()?String.prototype.contains:n(379)},function(e,t){"use strict";var n="razdwatrzy";e.exports=function(){return"function"==typeof n.contains&&(n.contains("dwa")===!0&&n.contains("foo")===!1)}},function(e,t){"use strict";var n=String.prototype.indexOf;e.exports=function(e){return n.call(this,e,arguments[1])>-1}},function(e,t,n){"use strict";var r,i,o,a,s,u,c,l=n(375),p=n(359),f=Function.prototype.apply,h=Function.prototype.call,d=Object.create,m=Object.defineProperty,v=Object.defineProperties,y=Object.prototype.hasOwnProperty,g={configurable:!0,enumerable:!1,writable:!0};r=function(e,t){var n;return p(t),y.call(this,"__ee__")?n=this.__ee__:(n=g.value=d(null),m(this,"__ee__",g),g.value=null),n[e]?"object"==typeof n[e]?n[e].push(t):n[e]=[n[e],t]:n[e]=t,this},i=function(e,t){var n,i;return p(t),i=this,r.call(this,e,n=function(){o.call(i,e,n),f.call(t,this,arguments)}),n.__eeOnceListener__=t,this},o=function(e,t){var n,r,i,o;if(p(t),!y.call(this,"__ee__"))return this;if(n=this.__ee__,!n[e])return this;if(r=n[e],"object"==typeof r)for(o=0;i=r[o];++o)i!==t&&i.__eeOnceListener__!==t||(2===r.length?n[e]=r[o?0:1]:r.splice(o,1));else r!==t&&r.__eeOnceListener__!==t||delete n[e];return this},a=function(e){var t,n,r,i,o;if(y.call(this,"__ee__")&&(i=this.__ee__[e]))if("object"==typeof i){for(n=arguments.length,o=new Array(n-1),t=1;t<n;++t)o[t-1]=arguments[t];for(i=i.slice(),t=0;r=i[t];++t)f.call(r,this,o)}else switch(arguments.length){case 1:h.call(i,this);break;case 2:h.call(i,this,arguments[1]);break;case 3:h.call(i,this,arguments[1],arguments[2]);break;default:for(n=arguments.length,o=new Array(n-1),t=1;t<n;++t)o[t-1]=arguments[t];f.call(i,this,o)}},s={on:r,once:i,off:o,emit:a},u={on:l(r),once:l(i),off:l(o),emit:l(a)},c=v({},u),e.exports=t=function(e){return null==e?d(c):v(Object(e),u)},t.methods=s},function(e,t,n){"use strict";var r,i=n(382),o=n(359),a=Array.prototype.slice;r=function(e){return this.map(function(t,n){return t?t(e[n]):e[n]}).concat(a.call(e,this.length))},e.exports=function(e){return e=i(e),e.forEach(function(e){null!=e&&o(e)}),r.bind(e)}},function(e,t,n){"use strict";var r=n(383),i=Array.isArray;e.exports=function(e){return i(e)?e:r(e)}},function(e,t,n){"use strict";e.exports=n(384)()?Array.from:n(385)},function(e,t){"use strict";e.exports=function(){var e,t,n=Array.from;return"function"==typeof n&&(e=["raz","dwa"],t=n(e),Boolean(t&&t!==e&&"dwa"===t[1]))}},function(e,t,n){"use strict";var r=n(386).iterator,i=n(391),o=n(392),a=n(353),s=n(359),u=n(362),c=n(394),l=Array.isArray,p=Function.prototype.call,f={configurable:!0,enumerable:!0,writable:!0,value:null},h=Object.defineProperty;e.exports=function(e){var t,n,d,m,v,y,g,_,b,x,w=arguments[1],k=arguments[2];if(e=Object(u(e)),null!=w&&s(w),this&&this!==Array&&o(this))t=this;else{if(!w){if(i(e))return v=e.length,1!==v?Array.apply(null,e):(m=new Array(1),m[0]=e[0],m);if(l(e)){for(m=new Array(v=e.length),n=0;n<v;++n)m[n]=e[n];return m}}m=[]}if(!l(e))if(void 0!==(b=e[r])){for(g=s(b).call(e),t&&(m=new t),_=g.next(),n=0;!_.done;)x=w?p.call(w,k,_.value,n):_.value,t?(f.value=x,h(m,n,f)):m[n]=x,_=g.next(),++n;v=n}else if(c(e)){for(v=e.length,t&&(m=new t),n=0,d=0;n<v;++n)x=e[n],n+1<v&&(y=x.charCodeAt(0),y>=55296&&y<=56319&&(x+=e[++n])),x=w?p.call(w,k,x,d):x,t?(f.value=x,h(m,d,f)):m[d]=x,++d;v=d}if(void 0===v)for(v=a(e.length),t&&(m=new t(v)),n=0;n<v;++n)x=w?p.call(w,k,e[n],n):e[n],t?(f.value=x,h(m,n,f)):m[n]=x;return t&&(f.value=null,m.length=v),m}},function(e,t,n){"use strict";e.exports=n(387)()?Symbol:n(388)},function(e,t){"use strict";var n={object:!0,symbol:!0};e.exports=function(){var e;if("function"!=typeof Symbol)return!1;e=Symbol("test symbol");try{String(e)}catch(e){return!1}return!!n[typeof Symbol.iterator]&&(!!n[typeof Symbol.toPrimitive]&&!!n[typeof Symbol.toStringTag])}},function(e,t,n){"use strict";var r,i,o,a,s=n(375),u=n(389),c=Object.create,l=Object.defineProperties,p=Object.defineProperty,f=Object.prototype,h=c(null);if("function"==typeof Symbol){r=Symbol;try{String(r()),a=!0}catch(e){}}var d=function(){var e=c(null);return function(t){for(var n,r,i=0;e[t+(i||"")];)++i;return t+=i||"",e[t]=!0,n="@@"+t,p(f,n,s.gs(null,function(e){r||(r=!0,p(this,n,s(e)),r=!1)})),n}}();o=function(e){if(this instanceof o)throw new TypeError("Symbol is not a constructor");return i(e)},e.exports=i=function e(t){var n;if(this instanceof e)throw new TypeError("Symbol is not a constructor");return a?r(t):(n=c(o.prototype),t=void 0===t?"":String(t),l(n,{__description__:s("",t),__name__:s("",d(t))}))},l(i,{for:s(function(e){return h[e]?h[e]:h[e]=i(String(e))}),keyFor:s(function(e){var t;u(e);for(t in h)if(h[t]===e)return t}),hasInstance:s("",r&&r.hasInstance||i("hasInstance")),isConcatSpreadable:s("",r&&r.isConcatSpreadable||i("isConcatSpreadable")),iterator:s("",r&&r.iterator||i("iterator")),match:s("",r&&r.match||i("match")),replace:s("",r&&r.replace||i("replace")),search:s("",r&&r.search||i("search")),species:s("",r&&r.species||i("species")),split:s("",r&&r.split||i("split")),toPrimitive:s("",r&&r.toPrimitive||i("toPrimitive")),toStringTag:s("",r&&r.toStringTag||i("toStringTag")),unscopables:s("",r&&r.unscopables||i("unscopables"))}),l(o.prototype,{constructor:s(i),toString:s("",function(){return this.__name__})}),l(i.prototype,{toString:s(function(){return"Symbol ("+u(this).__description__+")"}),valueOf:s(function(){return u(this)})}),p(i.prototype,i.toPrimitive,s("",function(){var e=u(this);return"symbol"==typeof e?e:e.toString()})),p(i.prototype,i.toStringTag,s("c","Symbol")),p(o.prototype,i.toStringTag,s("c",i.prototype[i.toStringTag])),p(o.prototype,i.toPrimitive,s("c",i.prototype[i.toPrimitive]))},function(e,t,n){"use strict";var r=n(390);e.exports=function(e){if(!r(e))throw new TypeError(e+" is not a symbol");return e}},function(e,t){"use strict";e.exports=function(e){return!!e&&("symbol"==typeof e||!!e.constructor&&("Symbol"===e.constructor.name&&"Symbol"===e[e.constructor.toStringTag]))}},function(e,t){"use strict";var n=Object.prototype.toString,r=n.call(function(){return arguments}());e.exports=function(e){return n.call(e)===r}},function(e,t,n){"use strict";var r=Object.prototype.toString,i=r.call(n(393));e.exports=function(e){return"function"==typeof e&&r.call(e)===i}},function(e,t){"use strict";e.exports=function(){}},function(e,t){"use strict";var n=Object.prototype.toString,r=n.call("");e.exports=function(e){return"string"==typeof e||e&&"object"==typeof e&&(e instanceof String||n.call(e)===r)||!1}},function(e,t,n){"use strict";var r=n(359);e.exports=function(e){var t;return"function"==typeof e?{set:e,get:e}:(t={get:r(e.get)},void 0!==e.set?(t.set=r(e.set),t.delete=r(e.delete),t.clear=r(e.clear),t):(t.set=t.get,t))}},function(e,t){"use strict";e.exports=function(e){var t,n,r=e.length;if(!r)return"";for(t=String(e[n=0]);--r;)t+=""+e[++n];return t}},function(e,t){"use strict";e.exports=function(e){return e?function(t){for(var n=String(t[0]),r=0,i=e;--i;)n+=""+t[++r];return n}:function(){return""}}},function(e,t,n){"use strict";var r=n(399),i=Object.create;e.exports=function(){var e=0,t=[],n=i(null);return{get:function(e){var n,i=0,o=t,a=e.length;if(0===a)return o[a]||null;if(o=o[a]){for(;i<a-1;){if(n=r.call(o[0],e[i]),n===-1)return null;o=o[1][n],++i}return n=r.call(o[0],e[i]),n===-1?null:o[1][n]||null}return null},set:function(i){var o,a=0,s=t,u=i.length;if(0===u)s[u]=++e;else{for(s[u]||(s[u]=[[],[]]),s=s[u];a<u-1;)o=r.call(s[0],i[a]),o===-1&&(o=s[0].push(i[a])-1,s[1].push([[],[]])),s=s[1][o],++a;o=r.call(s[0],i[a]),o===-1&&(o=s[0].push(i[a])-1),s[1][o]=++e}return n[e]=i,e},delete:function(e){var i,o=0,a=t,s=n[e],u=s.length,c=[];if(0===u)delete a[u];else if(a=a[u]){for(;o<u-1;){if(i=r.call(a[0],s[o]),i===-1)return;c.push(a,i),a=a[1][i],++o}if(i=r.call(a[0],s[o]),i===-1)return;for(e=a[1][i],a[0].splice(i,1),a[1].splice(i,1);!a[0].length&&c.length;)i=c.pop(),a=c.pop(),a[0].splice(i,1),a[1].splice(i,1)}delete n[e]},clear:function(){t=[],n=i(null)}}}},function(e,t,n){"use strict";var r=n(353),i=n(362),o=Array.prototype.indexOf,a=Object.prototype.hasOwnProperty,s=Math.abs,u=Math.floor;e.exports=function(e){var t,n,c,l;if(e===e)return o.apply(this,arguments);for(n=r(i(this).length),c=arguments[1],c=isNaN(c)?0:c>=0?u(c):r(this.length)-u(s(c)),t=c;t<n;++t)if(a.call(this,t)&&(l=this[t],l!==l))return t;return-1}},function(e,t,n){"use strict";var r=n(399);e.exports=function(){var e=0,t=[],n=[];return{get:function(e){var i=r.call(t,e[0]);return i===-1?null:n[i]},set:function(r){return t.push(r[0]),n.push(++e),e},delete:function(e){var i=r.call(n,e);i!==-1&&(t.splice(i,1),n.splice(i,1))},clear:function(){t=[],n=[]}}}},function(e,t,n){"use strict";var r=n(399),i=Object.create;e.exports=function(e){var t=0,n=[[],[]],o=i(null);return{get:function(t){for(var i,o=0,a=n;o<e-1;){if(i=r.call(a[0],t[o]),i===-1)return null;a=a[1][i],++o}return i=r.call(a[0],t[o]),i===-1?null:a[1][i]||null},set:function(i){for(var a,s=0,u=n;s<e-1;)a=r.call(u[0],i[s]),a===-1&&(a=u[0].push(i[s])-1,u[1].push([[],[]])),u=u[1][a],++s;return a=r.call(u[0],i[s]),a===-1&&(a=u[0].push(i[s])-1),u[1][a]=++t,o[t]=i,t},delete:function(t){for(var i,a=0,s=n,u=[],c=o[t];a<e-1;){if(i=r.call(s[0],c[a]),i===-1)return;u.push(s,i),s=s[1][i],++a}if(i=r.call(s[0],c[a]),i!==-1){for(t=s[1][i],s[0].splice(i,1),s[1].splice(i,1);!s[0].length&&u.length;)i=u.pop(),s=u.pop(),s[0].splice(i,1),s[1].splice(i,1);delete o[t]}},clear:function(){n=[[],[]],o=i(null)}}}},function(e,t,n){"use strict";var r=n(383),i=n(403),o=n(374),a=n(373),s=n(404),u=Array.prototype.slice,c=Function.prototype.apply,l=Object.create,p=Object.prototype.hasOwnProperty;n(363).async=function(e,t){var n,f,h,d=l(null),m=l(null),v=t.memoized,y=t.original;t.memoized=a(function(e){var t=arguments,r=t[t.length-1];return"function"==typeof r&&(n=r,t=u.call(t,0,-1)),v.apply(f=this,h=t)},v);try{o(t.memoized,v)}catch(e){}t.on("get",function(e){var r,i,o;if(n){if(d[e])return"function"==typeof d[e]?d[e]=[d[e],n]:d[e].push(n),void(n=null);r=n,i=f,o=h,n=f=h=null,s(function(){var a;p.call(m,e)?(a=m[e],t.emit("getasync",e,o,i),c.call(r,a.context,a.args)):(n=r,f=i,h=o,v.apply(i,o))})}}),t.original=function(){var e,i,o,a;return n?(e=r(arguments),i=function e(n){var i,o,u=e.id;return null==u?void s(c.bind(e,this,arguments)):(delete e.id,i=d[u],delete d[u],i?(o=r(arguments),t.has(u)&&(n?t.delete(u):(m[u]={context:this,args:o},t.emit("setasync",u,"function"==typeof i?1:i.length))),"function"==typeof i?a=c.call(i,this,o):i.forEach(function(e){a=c.call(e,this,o)},this),a):void 0)},o=n,n=f=h=null,e.push(i),a=c.call(y,this,e),i.cb=o,n=i,a):c.call(y,this,arguments)},t.on("set",function(e){return n?(d[e]?"function"==typeof d[e]?d[e]=[d[e],n.cb]:d[e].push(n.cb):d[e]=n.cb,delete n.cb,n.id=e,void(n=null)):void t.delete(e)}),t.on("delete",function(e){var n;p.call(d,e)||m[e]&&(n=m[e],delete m[e],t.emit("deleteasync",e,u.call(n.args,1)))}),t.on("clear",function(){var e=m;m=l(null),t.emit("clearasync",i(e,function(e){return u.call(e.args,1)}))})}},function(e,t,n){"use strict";var r=n(359),i=n(360),o=Function.prototype.call;e.exports=function(e,t){var n={},a=arguments[2];return r(t),i(e,function(e,r,i,s){n[r]=o.call(t,a,e,r,i,s)}),n}},function(e,t,n){(function(t,n){"use strict";var r,i;r=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e},i=function(e){var t,n,i=document.createTextNode(""),o=0;return new e(function(){var e;if(t)n&&(t=n.concat(t));else{if(!n)return;t=n}if(n=t,t=null,"function"==typeof n)return e=n,n=null,void e();for(i.data=o=++o%2;n;)e=n.shift(),n.length||(n=null),e()}).observe(i,{characterData:!0}),function(e){return r(e),t?void("function"==typeof t?t=[t,e]:t.push(e)):(t=e,void(i.data=o=++o%2))}},e.exports=function(){if("object"==typeof t&&t&&"function"==typeof t.nextTick)return t.nextTick;if("object"==typeof document&&document){if("function"==typeof MutationObserver)return i(MutationObserver);if("function"==typeof WebKitMutationObserver)return i(WebKitMutationObserver)}return"function"==typeof n?function(e){n(r(e))}:"function"==typeof setTimeout||"object"==typeof setTimeout?function(e){setTimeout(r(e),0)}:null}()}).call(t,n(324),n(340).setImmediate)},function(e,t,n){"use strict";var r=n(403),i=n(406),o=n(404),a=Object.create,s=Object.prototype.hasOwnProperty;n(363).promise=function(e,t){var n=a(null),u=a(null),c=a(null);t.on("set",function(r,a,s){if(!i(s))return u[r]=s,void t.emit("setasync",r,1);n[r]=1,c[r]=s;var l=function(e){var i=n[r];i&&(delete n[r],u[r]=e,t.emit("setasync",r,i))},p=function(){n[r]&&(delete n[r],delete c[r],t.delete(r))};"then"!==e&&"function"==typeof s.done?"done"!==e&&"function"==typeof s.finally?(s.done(l),s.finally(p)):s.done(l,p):s.then(function(e){o(l.bind(this,e))},function(){o(p)})}),t.on("get",function(e,r,a){var s;if(n[e])return void++n[e];s=c[e];var u=function(){t.emit("getasync",e,r,a)};i(s)?"function"==typeof s.done?s.done(u):s.then(function(){o(u)}):u()}),t.on("delete",function(e){if(delete c[e],n[e])return void delete n[e]; +if(s.call(u,e)){var r=u[e];delete u[e],t.emit("deleteasync",e,[r])}}),t.on("clear",function(){var e=u;u=a(null),n=a(null),c=a(null),t.emit("clearasync",r(e,function(e){return[e]}))})}},function(e,t){function n(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then}e.exports=n},function(e,t,n){"use strict";var r=n(359),i=n(360),o=n(363),a=Function.prototype.apply;o.dispose=function(e,t,n){var s;return r(e),n.async&&o.async||n.promise&&o.promise?(t.on("deleteasync",s=function(t,n){a.call(e,null,n)}),void t.on("clearasync",function(e){i(e,function(e,t){s(t,e)})})):(t.on("delete",s=function(t,n){e(n)}),void t.on("clear",function(e){i(e,function(e,t){s(t,e)})}))}},function(e,t,n){"use strict";var r=n(383),i=n(360),o=n(404),a=n(406),s=n(409),u=n(363),c=Function.prototype,l=Math.max,p=Math.min,f=Object.create;u.maxAge=function(e,t,n){var h,d,m,v;e=s(e),e&&(h=f(null),d=n.async&&u.async||n.promise&&u.promise?"async":"",t.on("set"+d,function(n){h[n]=setTimeout(function(){t.delete(n)},e),v&&(v[n]&&"nextTick"!==v[n]&&clearTimeout(v[n]),v[n]=setTimeout(function(){delete v[n]},m))}),t.on("delete"+d,function(e){clearTimeout(h[e]),delete h[e],v&&("nextTick"!==v[e]&&clearTimeout(v[e]),delete v[e])}),n.preFetch&&(m=n.preFetch===!0||isNaN(n.preFetch)?.333:l(p(Number(n.preFetch),1),0),m&&(v={},m=(1-m)*e,t.on("get"+d,function(e,i,s){v[e]||(v[e]="nextTick",o(function(){var o;"nextTick"===v[e]&&(delete v[e],t.delete(e),n.async&&(i=r(i),i.push(c)),o=t.memoized.apply(s,i),n.promise&&a(o)&&("function"==typeof o.done?o.done(c,c):o.then(c,c)))}))}))),t.on("clear"+d,function(){i(h,function(e){clearTimeout(e)}),h={},v&&(i(v,function(e){"nextTick"!==e&&clearTimeout(e)}),v={})}))}},function(e,t,n){"use strict";var r=n(353),i=n(410);e.exports=function(e){if(e=r(e),e>i)throw new TypeError(e+" exceeds maximum possible timeout");return e}},function(e,t){"use strict";e.exports=2147483647},function(e,t,n){"use strict";var r=n(353),i=n(412),o=n(363);o.max=function(e,t,n){var a,s,u;e=r(e),e&&(s=i(e),a=n.async&&o.async||n.promise&&o.promise?"async":"",t.on("set"+a,u=function(e){e=s.hit(e),void 0!==e&&t.delete(e)}),t.on("get"+a,u),t.on("delete"+a,s.delete),t.on("clear"+a,s.clear))}},function(e,t,n){"use strict";var r=n(353),i=Object.create,o=Object.prototype.hasOwnProperty;e.exports=function(e){var t,n=0,a=1,s=i(null),u=i(null),c=0;return e=r(e),{hit:function(r){var i=u[r],l=++c;if(s[l]=r,u[r]=l,!i){if(++n,n<=e)return;return r=s[a],t(r),r}if(delete s[i],a===i)for(;!o.call(s,++a);)continue},delete:t=function(e){var t=u[e];if(t&&(delete s[t],delete u[e],--n,a===t)){if(!n)return c=0,void(a=1);for(;!o.call(s,++a);)continue}},clear:function(){n=0,a=1,s=i(null),u=i(null),c=0}}}},function(e,t,n){"use strict";var r=n(375),i=n(363),o=Object.create,a=Object.defineProperties;i.refCounter=function(e,t,n){var s,u;s=o(null),u=n.async&&i.async||n.promise&&i.promise?"async":"",t.on("set"+u,function(e,t){s[e]=t||1}),t.on("get"+u,function(e){++s[e]}),t.on("delete"+u,function(e){delete s[e]}),t.on("clear"+u,function(){s={}}),a(t.memoized,{deleteRef:r(function(){var e=t.get(arguments);return null===e?null:s[e]?!--s[e]&&(t.delete(e),!0):null}),getRefCount:r(function(){var e=t.get(arguments);return null===e?0:s[e]?s[e]:0})})}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){return[a.default]}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(415),a=r(o)},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e={components:{App:M.default,authorizationPopup:P.default,authorizeBtn:N.default,authorizeOperationBtn:j.default,auths:B.default,authError:z.default,oauth2:H.default,apiKeyAuth:U.default,basicAuth:K.default,clear:G.default,liveResponse:Y.default,info:Ce.default,onlineValidatorBadge:Z.default,operations:ee.default,operation:ne.default,highlightCode:ie.default,responses:ae.default,response:ue.default,responseBody:le.default,parameters:fe.default,parameterRow:de.default,execute:ve.default,headers:ge.default,errors:be.default,contentType:we.default,overview:Se.default,footer:Te.default,ParamBody:Me.default,curl:Pe.default,schemes:Ne.default,modelExample:je.default,model:Be.default,models:ze.default,TryItOutButton:Ue.default,Markdown:Ke.default,BaseLayout:He.default}},t={components:Ge},n={components:Ye};return[S.default,v.default,f.default,l.default,a.default,u.default,d.default,e,t,b.default,n,w.default,g.default,C.default,T.default]};var o=n(416),a=i(o),s=n(431),u=i(s),c=n(443),l=i(c),p=n(484),f=i(p),h=n(726),d=i(h),m=n(727),v=i(m),y=n(728),g=i(y),_=n(762),b=i(_),x=n(954),w=i(x),k=n(959),S=i(k),E=n(961),C=i(E),A=n(1010),T=i(A),D=n(1011),M=i(D),O=n(1012),P=i(O),I=n(1013),N=i(I),R=n(1014),j=i(R),F=n(1016),B=i(F),L=n(1017),z=i(L),q=n(1018),U=i(q),W=n(1019),K=i(W),V=n(1020),H=i(V),J=n(1022),G=i(J),X=n(1023),Y=i(X),$=n(1024),Z=i($),Q=n(1025),ee=i(Q),te=n(1026),ne=i(te),re=n(1030),ie=i(re),oe=n(1031),ae=i(oe),se=n(1032),ue=i(se),ce=n(1033),le=i(ce),pe=n(1035),fe=i(pe),he=n(1036),de=i(he),me=n(1037),ve=i(me),ye=n(1038),ge=i(ye),_e=n(1039),be=i(_e),xe=n(1064),we=i(xe),ke=n(1065),Se=i(ke),Ee=n(1067),Ce=i(Ee),Ae=n(1068),Te=i(Ae),De=n(1069),Me=i(De),Oe=n(1070),Pe=i(Oe),Ie=n(1072),Ne=i(Ie),Re=n(1073),je=i(Re),Fe=n(1074),Be=i(Fe),Le=n(1075),ze=i(Le),qe=n(1076),Ue=i(qe),We=n(1077),Ke=i(We),Ve=n(1173),He=i(Ve),Je=n(1066),Ge=r(Je),Xe=n(1174),Ye=r(Xe)},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return{statePlugins:{err:{reducers:(0,a.default)(e),actions:u,selectors:l}}}};var o=n(417),a=i(o),s=n(176),u=r(s),c=n(429),l=r(c)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(137),o=r(i),a=n(141),s=r(a);t.default=function(e){var t;return t={},(0,o.default)(t,u.NEW_THROWN_ERR,function(t,n){var r=n.payload,i=(0,s.default)(m,r,{type:"thrown"});return t.update("errors",function(e){return(e||(0,p.List)()).push((0,p.fromJS)(i))}).update("errors",function(t){return(0,d.default)(t,e.getSystem())})}),(0,o.default)(t,u.NEW_THROWN_ERR_BATCH,function(t,n){var r=n.payload;return r=r.map(function(e){return(0,p.fromJS)((0,s.default)(m,e,{type:"thrown"}))}),t.update("errors",function(e){return(e||(0,p.List)()).concat((0,p.fromJS)(r))}).update("errors",function(t){return(0,d.default)(t,e.getSystem())})}),(0,o.default)(t,u.NEW_SPEC_ERR,function(t,n){var r=n.payload,i=(0,p.fromJS)(r);return i=i.set("type","spec"),t.update("errors",function(e){return(e||(0,p.List)()).push((0,p.fromJS)(i)).sortBy(function(e){return e.get("line")})}).update("errors",function(t){return(0,d.default)(t,e.getSystem())})}),(0,o.default)(t,u.NEW_AUTH_ERR,function(t,n){var r=n.payload,i=(0,p.fromJS)((0,s.default)({},r));return i=i.set("type","auth"),t.update("errors",function(e){return(e||(0,p.List)()).push((0,p.fromJS)(i))}).update("errors",function(t){return(0,d.default)(t,e.getSystem())})}),(0,o.default)(t,u.CLEAR,function(e,t){var n=t.payload;if(n){var r=f.default.fromJS((0,l.default)((e.get("errors")||(0,p.List)()).toJS(),n));return e.merge({errors:r})}}),t};var u=n(176),c=n(418),l=r(c),p=n(168),f=r(p),h=n(422),d=r(h),m={line:0,level:"error",message:"Unknown error"}},function(e,t,n){function r(e,t){var n=s(e)?i:o;return n(e,u(a(t,3)))}var i=n(419),o=n(420),a=n(247),s=n(193),u=n(421);e.exports=r},function(e,t){function n(e,t){for(var n=-1,r=null==e?0:e.length,i=0,o=[];++n<r;){var a=e[n];t(a,n,e)&&(o[i++]=a)}return o}e.exports=n},function(e,t,n){function r(e,t){var n=[];return i(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}var i=n(316);e.exports=r},function(e,t){function n(e){if("function"!=typeof e)throw new TypeError(r);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}var r="Expected a function";e.exports=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var n={jsSpec:t.specSelectors.specJson().toJS()},r=(0,s.default)(c,function(e,t){try{var r=t.transform(e,n);return r.filter(function(e){return!!e})}catch(t){return console.error("Transformer error:",t),e}},e);return r.filter(function(e){return!!e}).map(function(e){return!e.get("line")&&e.get("path"),e})}function o(e){return e.split("-").map(function(e){return e[0].toUpperCase()+e.slice(1)}).join("")}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var a=n(423),s=r(a),u=n(425),c=[];u.keys().forEach(function(e){"./hook.js"!==e&&e.match(/js$/)&&(e.slice(2).indexOf("/")>-1||c.push({name:o(e).replace(".js","").replace("./",""),transform:u(e).transform}))})},function(e,t,n){function r(e,t,n){var r=u(e)?i:s,c=arguments.length<3;return r(e,a(t,4),n,c,o)}var i=n(204),o=n(316),a=n(247),s=n(424),u=n(193);e.exports=r},function(e,t){function n(e,t,n,r,i){return i(e,function(e,i,o){n=r?(r=!1,e):t(n,e,i,o)}),n}e.exports=n},function(e,t,n){function r(e){return n(i(e))}function i(e){return o[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var o={"./not-of-type.js":426,"./parameter-oneof.js":427,"./strip-instance.js":428};r.keys=function(){return Object.keys(o)},r.resolve=i,e.exports=r,r.id=425},function(e,t){"use strict";function n(e){return e.map(function(e){var t="is not of a type(s)",n=e.get("message").indexOf(t);if(n>-1){var i=e.get("message").slice(n+t.length).split(",");return e.set("message",e.get("message").slice(0,n)+r(i))}return e})}function r(e){return e.reduce(function(e,t,n,r){return n===r.length-1&&r.length>1?e+"or "+t:r[n+1]&&r.length>2?e+t+", ":r[n+1]?e+t+" ":e+t},"should be a")}Object.defineProperty(t,"__esModule",{value:!0}),t.transform=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){t.jsSpec;return e}Object.defineProperty(t,"__esModule",{value:!0}),t.transform=i;var o=n(295);r(o),n(168)},function(e,t){"use strict";function n(e){return e.map(function(e){return e.set("message",r(e.get("message"),"instance."))})}function r(e,t){return e.replace(new RegExp(t,"g"),"")}Object.defineProperty(t,"__esModule",{value:!0}),t.transform=n},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.lastError=t.allErrors=void 0;var r=n(168),i=n(430),o=function(e){return e},a=t.allErrors=(0,i.createSelector)(o,function(e){return e.get("errors",(0,r.List)())});t.lastError=(0,i.createSelector)(a,function(e){return e.last()})},function(e,t){"use strict";function n(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function r(e,t){return e===t}function i(e){var t=arguments.length<=1||void 0===arguments[1]?r:arguments[1],n=null,i=null;return function(){for(var r=arguments.length,o=Array(r),a=0;a<r;a++)o[a]=arguments[a];return null!==n&&n.length===o.length&&o.every(function(e,r){return t(e,n[r])})?i:(i=e.apply(void 0,o),n=o,i)}}function o(e){var t=Array.isArray(e[0])?e[0]:e;if(!t.every(function(e){return"function"==typeof e})){var n=t.map(function(e){return typeof e}).join(", ");throw new Error("Selector creators expect all input-selectors to be functions, "+("instead received the following types: ["+n+"]"))}return t}function a(e){for(var t=arguments.length,r=Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return function(){for(var t=arguments.length,i=Array(t),a=0;a<t;a++)i[a]=arguments[a];var s=0,u=i.pop(),c=o(i),l=e.apply(void 0,[function(){return s++,u.apply(void 0,arguments)}].concat(r)),p=function(e,t){for(var r=arguments.length,i=Array(r>2?r-2:0),o=2;o<r;o++)i[o-2]=arguments[o];var a=c.map(function(n){return n.apply(void 0,[e,t].concat(i))});return l.apply(void 0,n(a))};return p.resultFunc=u,p.recomputations=function(){return s},p.resetRecomputations=function(){return s=0},p}}function s(){return a(i).apply(void 0,arguments)}function u(e){var t=arguments.length<=1||void 0===arguments[1]?s:arguments[1];if("object"!=typeof e)throw new Error("createStructuredSelector expects first argument to be an object where each property is a selector, instead received a "+typeof e);var n=Object.keys(e);return t(n.map(function(t){return e[t]}),function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.reduce(function(e,t,r){return e[n[r]]=t,e},{})})}t.__esModule=!0,t.defaultMemoize=i,t.createSelectorCreator=a,t.createSelector=s,t.createStructuredSelector=u},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return{statePlugins:{layout:{reducers:a.default,actions:u,selectors:l}}}};var o=n(432),a=i(o),s=n(433),u=r(s),c=n(434),l=r(c)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i,o=n(137),a=r(o),s=n(433);t.default=(i={},(0,a.default)(i,s.UPDATE_LAYOUT,function(e,t){return e.set("layout",t.payload)}),(0,a.default)(i,s.SHOW,function(e,t){var n=t.payload.thing,r=t.payload.shown;return e.setIn(["shown"].concat(n),r)}),(0,a.default)(i,s.UPDATE_MODE,function(e,t){var n=t.payload.thing,r=t.payload.mode;return e.setIn(["modes"].concat(n),(r||"")+"")}),i)},function(e,t,n){"use strict";function r(e){return{type:s,payload:e}}function i(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e=(0,a.normalizeArray)(e),{type:c,payload:{thing:e,shown:t}}}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return e=(0,a.normalizeArray)(e),{type:u,payload:{thing:e,mode:t}}}Object.defineProperty(t,"__esModule",{value:!0}),t.SHOW=t.UPDATE_MODE=t.UPDATE_LAYOUT=void 0,t.updateLayout=r,t.show=i,t.changeMode=o;var a=n(183),s=t.UPDATE_LAYOUT="layout_update_layout",u=t.UPDATE_MODE="layout_update_mode",c=t.SHOW="layout_show"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.showSummary=t.whatMode=t.isShown=t.current=void 0;var i=n(435),o=r(i),a=n(430),s=n(183),u=function(e){return e},c=(t.current=function(e){return e.get("layout")},t.isShown=function(e,t,n){return t=(0,s.normalizeArray)(t),Boolean(e.getIn(["shown"].concat((0,o.default)(t)),n))});t.whatMode=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return t=(0,s.normalizeArray)(t),e.getIn(["modes"].concat((0,o.default)(t)),n)},t.showSummary=(0,a.createSelector)(u,function(e){return!c(e,"editor")})},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(436),o=r(i);t.default=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return(0,o.default)(e)}},function(e,t,n){e.exports={default:n(437),__esModule:!0}},function(e,t,n){n(97),n(438),e.exports=n(59).Array.from},function(e,t,n){"use strict";var r=n(82),i=n(81),o=n(63),a=n(439),s=n(440),u=n(72),c=n(441),l=n(181);i(i.S+i.F*!n(442)(function(e){Array.from(e)}),"Array",{from:function(e){var t,n,i,p,f=o(e),h="function"==typeof this?this:Array,d=arguments.length,m=d>1?arguments[1]:void 0,v=void 0!==m,y=0,g=l(f);if(v&&(m=r(m,d>2?arguments[2]:void 0,2)),void 0==g||h==Array&&s(g))for(t=u(f.length),n=new h(t);t>y;y++)c(n,y,v?m(f[y],y):f[y]);else for(p=g.call(f),n=new h;!(i=p.next()).done;y++)c(n,y,v?a(p,m,[i.value,y],!0):i.value);return n.length=y,n}})},function(e,t,n){var r=n(86);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(t){var o=e.return;throw void 0!==o&&r(o.call(e)),t}}},function(e,t,n){var r=n(102),i=n(108)("iterator"),o=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||o[i]===e)}},function(e,t,n){"use strict";var r=n(85),i=n(93);e.exports=function(e,t,n){t in e?r.f(e,t,i(0,n)):e[t]=n}},function(e,t,n){var r=n(108)("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var o=[7],a=o[r]();a.next=function(){return{done:n=!0}},o[r]=function(){return a},e(o)}catch(e){}return n}},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return{statePlugins:{spec:{wrapActions:f,reducers:a.default,actions:u,selectors:l}}}};var o=n(444),a=i(o),s=n(445),u=r(s),c=n(482),l=r(c),p=n(483),f=r(p)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i,o=n(137),a=r(o),s=n(141),u=r(s),c=n(435),l=r(c),p=n(168),f=n(183),h=n(177),d=r(h),m=n(445);t.default=(i={},(0,a.default)(i,m.UPDATE_SPEC,function(e,t){return"string"==typeof t.payload?e.set("spec",t.payload):e}),(0,a.default)(i,m.UPDATE_URL,function(e,t){return e.set("url",t.payload+"")}),(0,a.default)(i,m.UPDATE_JSON,function(e,t){return e.set("json",(0,f.fromJSOrdered)(t.payload))}),(0,a.default)(i,m.UPDATE_RESOLVED,function(e,t){return e.setIn(["resolved"],(0,f.fromJSOrdered)(t.payload))}),(0,a.default)(i,m.UPDATE_PARAM,function(e,t){var n=t.payload,r=n.path,i=n.paramName,o=n.value,a=n.isXml;return e.updateIn(["resolved","paths"].concat((0,l.default)(r),["parameters"]),(0,p.fromJS)([]),function(e){var t=e.findIndex(function(e){return e.get("name")===i});return o instanceof d.default.File||(o=(0,f.fromJSOrdered)(o)),e.setIn([t,a?"value_xml":"value"],o)})}),(0,a.default)(i,m.VALIDATE_PARAMS,function(e,t){var n=t.payload.pathMethod,r=e.getIn(["resolved","paths"].concat((0,l.default)(n))),i=/xml/i.test(r.get("consumes_value"));return e.updateIn(["resolved","paths"].concat((0,l.default)(n),["parameters"]),(0,p.fromJS)([]),function(e){return e.withMutations(function(e){for(var t=0,n=e.count();t<n;t++){var r=(0,f.validateParam)(e.get(t),i);e.setIn([t,"errors"],(0,p.fromJS)(r))}})})}),(0,a.default)(i,m.ClEAR_VALIDATE_PARAMS,function(e,t){var n=t.payload.pathMethod;return e.updateIn(["resolved","paths"].concat((0,l.default)(n),["parameters"]),(0,p.fromJS)([]),function(e){return e.withMutations(function(e){for(var t=0,n=e.count();t<n;t++)e.setIn([t,"errors"],(0,p.fromJS)({}))})})}),(0,a.default)(i,m.SET_RESPONSE,function(e,t){var n=t.payload,r=n.res,i=n.path,o=n.method,a=void 0;a=r.error?(0,u.default)({error:!0},r.err):r,a.headers=a.headers||{};var s=e.setIn(["responses",i,o],(0,f.fromJSOrdered)(a));return r.data instanceof d.default.Blob&&(s=s.setIn(["responses",i,o,"text"],r.data)),s}),(0,a.default)(i,m.SET_REQUEST,function(e,t){var n=t.payload,r=n.req,i=n.path,o=n.method;return e.setIn(["requests",i,o],(0,f.fromJSOrdered)(r))}),(0,a.default)(i,m.UPDATE_OPERATION_VALUE,function(e,t){var n=t.payload,r=n.path,i=n.value,o=n.key,a=["resolved","paths"].concat((0,l.default)(r));return e.getIn(a)?e.setIn([].concat((0,l.default)(a),[o]),(0,p.fromJS)(i)):e}),(0,a.default)(i,m.CLEAR_RESPONSE,function(e,t){var n=t.payload,r=n.path,i=n.method;return e.deleteIn(["responses",r,i])}),(0,a.default)(i,m.CLEAR_REQUEST,function(e,t){var n=t.payload,r=n.path,i=n.method;return e.deleteIn(["requests",r,i])}),(0,a.default)(i,m.SET_SCHEME,function(e,t){var n=t.payload,r=n.scheme,i=n.path,o=n.method;return i&&o?e.setIn(["scheme",i,o],r):i||o?void 0:e.setIn(["scheme","_defaultScheme"],r)}),i)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return e instanceof Error?{type:M,error:!0,payload:e}:"string"==typeof e?{type:M,payload:e.replace(/\t/g," ")||""}:{type:M,payload:""}}function o(e){return{type:U,payload:e}}function a(e){return{type:O,payload:e}}function s(e){if(!e||"object"!==("undefined"==typeof e?"undefined":(0,k.default)(e)))throw new Error("updateJson must only accept a simple JSON object");return{type:P,payload:e}}function u(e,t,n,r){return{type:I,payload:{path:e,value:n,paramName:t,isXml:r}}}function c(e){return{type:N,payload:{pathMethod:e}}}function l(e){return{type:z,payload:{pathMethod:e}}}function p(e,t){return{type:q,payload:{path:e,value:t,key:"consumes_value"}}}function f(e,t){return{type:q,payload:{path:e,value:t,key:"produces_value"}}}function h(e,t){return{type:B,payload:{path:e,method:t}}}function d(e,t){return{type:L,payload:{path:e,method:t}}}function m(e,t,n){return{type:W,payload:{scheme:e,path:t,method:n}}}Object.defineProperty(t,"__esModule",{value:!0}),t.execute=t.executeRequest=t.logRequest=t.setRequest=t.setResponse=t.formatIntoYaml=t.resolveSpec=t.parseToJson=t.SET_SCHEME=t.UPDATE_RESOLVED=t.UPDATE_OPERATION_VALUE=t.ClEAR_VALIDATE_PARAMS=t.CLEAR_REQUEST=t.CLEAR_RESPONSE=t.LOG_REQUEST=t.SET_REQUEST=t.SET_RESPONSE=t.VALIDATE_PARAMS=t.UPDATE_PARAM=t.UPDATE_JSON=t.UPDATE_URL=t.UPDATE_SPEC=void 0;var v=n(446),y=r(v),g=n(447),_=r(g),b=n(141),x=r(b),w=n(94),k=r(w);t.updateSpec=i,t.updateResolved=o,t.updateUrl=a,t.updateJsonSpec=s,t.changeParam=u,t.validateParams=c,t.clearValidateParams=l,t.changeConsumesValue=p,t.changeProducesValue=f,t.clearResponse=h,t.clearRequest=d,t.setScheme=m;var S=n(448),E=r(S),C=n(479),A=r(C),T=n(175),D=r(T),M=t.UPDATE_SPEC="spec_update_spec",O=t.UPDATE_URL="spec_update_url",P=t.UPDATE_JSON="spec_update_json",I=t.UPDATE_PARAM="spec_update_param",N=t.VALIDATE_PARAMS="spec_validate_param",R=t.SET_RESPONSE="spec_set_response",j=t.SET_REQUEST="spec_set_request",F=t.LOG_REQUEST="spec_log_request",B=t.CLEAR_RESPONSE="spec_clear_response",L=t.CLEAR_REQUEST="spec_clear_request",z=t.ClEAR_VALIDATE_PARAMS="spec_clear_validate_param",q=t.UPDATE_OPERATION_VALUE="spec_update_operation_value",U=t.UPDATE_RESOLVED="spec_update_resolved",W=t.SET_SCHEME="set_scheme",K=(t.parseToJson=function(e){return function(t){var n=t.specActions,r=t.specSelectors,i=t.errActions,o=r.specStr,a=null;try{e=e||o(),i.clear({source:"parser"}),a=E.default.safeLoad(e)}catch(e){return console.error(e),i.newSpecErr({source:"parser",level:"error",message:e.reason,line:e.mark&&e.mark.line?e.mark.line+1:void 0})}return n.updateJsonSpec(a)}},t.resolveSpec=function(e,t){return function(n){var r=n.specActions,i=n.specSelectors,o=n.errActions,a=n.fn,s=a.fetch,u=a.resolve,c=a.AST,l=n.getConfigs,p=l(),f=p.modelPropertyMacro,h=p.parameterMacro;"undefined"==typeof e&&(e=i.specJson()),"undefined"==typeof t&&(t=i.url());var d=c.getLineNumberForPath,m=i.specStr();return u({fetch:s,spec:e,baseDoc:t,modelPropertyMacro:f,parameterMacro:h}).then(function(e){var t=e.spec,n=e.errors;if(o.clear({type:"thrown"}),n.length>0){var i=n.map(function(e){return console.error(e),e.line=e.fullPath?d(m,e.fullPath):null,e.path=e.fullPath?e.fullPath.join("."):null,e.level="error",e.type="thrown",e.source="resolver",Object.defineProperty(e,"message",{enumerable:!0,value:e.message}),e});o.newThrownErrBatch(i)}return r.updateResolved(t)})}},t.formatIntoYaml=function(){return function(e){var t=e.specActions,n=e.specSelectors,r=n.specStr,i=t.updateSpec;try{var o=E.default.safeDump(E.default.safeLoad(r()),{indent:2});i(o)}catch(e){i(e)}}},t.setResponse=function(e,t,n){return{payload:{path:e,method:t,res:n},type:R}},t.setRequest=function(e,t,n){return{payload:{path:e,method:t,req:n},type:j}},t.logRequest=function(e){return{payload:e,type:F}},t.executeRequest=function(e){return function(t){var n=t.fn,r=t.specActions,i=t.specSelectors,o=e.pathName,a=e.method,s=e.operation,u=s.toJS();e.contextUrl=(0,A.default)(i.url()).toString(),u&&u.operationId?e.operationId=u.operationId:u&&o&&a&&(e.operationId=n.opId(u,o,a));var c=(0,x.default)({},e);return c=n.buildRequest(c),r.setRequest(e.pathName,e.method,c),n.execute(e).then(function(t){return r.setResponse(e.pathName,e.method,t)}).catch(function(t){return r.setResponse(e.pathName,e.method,{error:!0,err:(0,D.default)(t)})})}},function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.path,n=e.method,r=(0,_.default)(e,["path","method"]);return function(e){var i=e.fn.fetch,o=e.specSelectors,a=e.specActions,s=o.spec().toJS(),u=o.operationScheme(t,n),c=o.contentTypeValues([t,n]).toJS(),l=c.requestContentType,p=c.responseContentType,f=/xml/i.test(l),h=o.parameterValues([t,n],f).toJS();return a.executeRequest((0,y.default)({fetch:i,spec:s,pathName:t,method:n,parameters:h,requestContentType:l,scheme:u,responseContentType:p},r))}});t.execute=K},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(141),o=r(i);t.default=o.default||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}},function(e,t){"use strict";t.__esModule=!0,t.default=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}},function(e,t,n){"use strict";var r=n(449);e.exports=r},function(e,t,n){"use strict";function r(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}var i=n(450),o=n(478);e.exports.Type=n(456),e.exports.Schema=n(455),e.exports.FAILSAFE_SCHEMA=n(459),e.exports.JSON_SCHEMA=n(458),e.exports.CORE_SCHEMA=n(457),e.exports.DEFAULT_SAFE_SCHEMA=n(454),e.exports.DEFAULT_FULL_SCHEMA=n(473),e.exports.load=i.load,e.exports.loadAll=i.loadAll,e.exports.safeLoad=i.safeLoad,e.exports.safeLoadAll=i.safeLoadAll,e.exports.dump=o.dump,e.exports.safeDump=o.safeDump,e.exports.YAMLException=n(452),e.exports.MINIMAL_SCHEMA=n(459),e.exports.SAFE_SCHEMA=n(454),e.exports.DEFAULT_SCHEMA=n(473),e.exports.scan=r("scan"),e.exports.parse=r("parse"),e.exports.compose=r("compose"),e.exports.addConstructor=r("addConstructor")},function(e,t,n){"use strict";function r(e){return 10===e||13===e}function i(e){return 9===e||32===e}function o(e){return 9===e||32===e||10===e||13===e}function a(e){return 44===e||91===e||93===e||123===e||125===e}function s(e){var t;return 48<=e&&e<=57?e-48:(t=32|e,97<=t&&t<=102?t-97+10:-1)}function u(e){return 120===e?2:117===e?4:85===e?8:0}function c(e){return 48<=e&&e<=57?e-48:-1}function l(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e?"\t":9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function p(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function f(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||K,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function h(e,t){return new q(t,new U(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function d(e,t){throw h(e,t)}function m(e,t){e.onWarning&&e.onWarning.call(null,h(e,t))}function v(e,t,n,r){var i,o,a,s;if(t<n){if(s=e.input.slice(t,n),r)for(i=0,o=s.length;i<o;i+=1)a=s.charCodeAt(i),9===a||32<=a&&a<=1114111||d(e,"expected valid JSON character");else Q.test(s)&&d(e,"the stream contains non-printable characters");e.result+=s}}function y(e,t,n,r){var i,o,a,s;for(z.isObject(n)||d(e,"cannot merge mappings; the provided source object is unacceptable"),i=Object.keys(n),a=0,s=i.length;a<s;a+=1)o=i[a],V.call(t,o)||(t[o]=n[o],r[o]=!0)}function g(e,t,n,r,i,o,a,s){var u,c;if(i=String(i),null===t&&(t={}),"tag:yaml.org,2002:merge"===r)if(Array.isArray(o))for(u=0,c=o.length;u<c;u+=1)y(e,t,o[u],n);else y(e,t,o,n);else e.json||V.call(n,i)||!V.call(t,i)||(e.line=a||e.line,e.position=s||e.position,d(e,"duplicated mapping key")),t[i]=o,delete n[i];return t}function _(e){var t;t=e.input.charCodeAt(e.position),10===t?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):d(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function b(e,t,n){for(var o=0,a=e.input.charCodeAt(e.position);0!==a;){for(;i(a);)a=e.input.charCodeAt(++e.position);if(t&&35===a)do a=e.input.charCodeAt(++e.position);while(10!==a&&13!==a&&0!==a);if(!r(a))break;for(_(e),a=e.input.charCodeAt(e.position),o++,e.lineIndent=0;32===a;)e.lineIndent++,a=e.input.charCodeAt(++e.position)}return n!==-1&&0!==o&&e.lineIndent<n&&m(e,"deficient indentation"),o}function x(e){var t,n=e.position;return t=e.input.charCodeAt(n),!(45!==t&&46!==t||t!==e.input.charCodeAt(n+1)||t!==e.input.charCodeAt(n+2)||(n+=3,t=e.input.charCodeAt(n),0!==t&&!o(t)))}function w(e,t){1===t?e.result+=" ":t>1&&(e.result+=z.repeat("\n",t-1))}function k(e,t,n){var s,u,c,l,p,f,h,d,m,y=e.kind,g=e.result;if(m=e.input.charCodeAt(e.position),o(m)||a(m)||35===m||38===m||42===m||33===m||124===m||62===m||39===m||34===m||37===m||64===m||96===m)return!1;if((63===m||45===m)&&(u=e.input.charCodeAt(e.position+1),o(u)||n&&a(u)))return!1;for(e.kind="scalar",e.result="",c=l=e.position,p=!1;0!==m;){if(58===m){if(u=e.input.charCodeAt(e.position+1),o(u)||n&&a(u))break}else if(35===m){if(s=e.input.charCodeAt(e.position-1),o(s))break}else{if(e.position===e.lineStart&&x(e)||n&&a(m))break;if(r(m)){if(f=e.line,h=e.lineStart,d=e.lineIndent,b(e,!1,-1),e.lineIndent>=t){p=!0,m=e.input.charCodeAt(e.position);continue}e.position=l,e.line=f,e.lineStart=h,e.lineIndent=d;break}}p&&(v(e,c,l,!1),w(e,e.line-f),c=l=e.position,p=!1),i(m)||(l=e.position+1),m=e.input.charCodeAt(++e.position)}return v(e,c,l,!1),!!e.result||(e.kind=y,e.result=g,!1)}function S(e,t){var n,i,o;if(n=e.input.charCodeAt(e.position),39!==n)return!1;for(e.kind="scalar",e.result="",e.position++,i=o=e.position;0!==(n=e.input.charCodeAt(e.position));)if(39===n){if(v(e,i,e.position,!0),n=e.input.charCodeAt(++e.position),39!==n)return!0;i=e.position,e.position++,o=e.position}else r(n)?(v(e,i,o,!0),w(e,b(e,!1,t)),i=o=e.position):e.position===e.lineStart&&x(e)?d(e,"unexpected end of the document within a single quoted scalar"):(e.position++,o=e.position);d(e,"unexpected end of the stream within a single quoted scalar")}function E(e,t){var n,i,o,a,c,l;if(l=e.input.charCodeAt(e.position),34!==l)return!1;for(e.kind="scalar",e.result="",e.position++,n=i=e.position;0!==(l=e.input.charCodeAt(e.position));){if(34===l)return v(e,n,e.position,!0),e.position++,!0;if(92===l){if(v(e,n,e.position,!0),l=e.input.charCodeAt(++e.position),r(l))b(e,!1,t);else if(l<256&&ie[l])e.result+=oe[l],e.position++;else if((c=u(l))>0){for(o=c,a=0;o>0;o--)l=e.input.charCodeAt(++e.position),(c=s(l))>=0?a=(a<<4)+c:d(e,"expected hexadecimal character");e.result+=p(a),e.position++}else d(e,"unknown escape sequence");n=i=e.position}else r(l)?(v(e,n,i,!0),w(e,b(e,!1,t)),n=i=e.position):e.position===e.lineStart&&x(e)?d(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}d(e,"unexpected end of the stream within a double quoted scalar")}function C(e,t){var n,r,i,a,s,u,c,l,p,f,h,m=!0,v=e.tag,y=e.anchor,_={};if(h=e.input.charCodeAt(e.position),91===h)a=93,c=!1,r=[];else{if(123!==h)return!1;a=125,c=!0,r={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=r),h=e.input.charCodeAt(++e.position);0!==h;){if(b(e,!0,t),h=e.input.charCodeAt(e.position),h===a)return e.position++,e.tag=v,e.anchor=y,e.kind=c?"mapping":"sequence",e.result=r,!0;m||d(e,"missed comma between flow collection entries"),p=l=f=null,s=u=!1,63===h&&(i=e.input.charCodeAt(e.position+1),o(i)&&(s=u=!0,e.position++,b(e,!0,t))),n=e.line,I(e,t,H,!1,!0),p=e.tag,l=e.result, +b(e,!0,t),h=e.input.charCodeAt(e.position),!u&&e.line!==n||58!==h||(s=!0,h=e.input.charCodeAt(++e.position),b(e,!0,t),I(e,t,H,!1,!0),f=e.result),c?g(e,r,_,p,l,f):s?r.push(g(e,null,_,p,l,f)):r.push(l),b(e,!0,t),h=e.input.charCodeAt(e.position),44===h?(m=!0,h=e.input.charCodeAt(++e.position)):m=!1}d(e,"unexpected end of the stream within a flow collection")}function A(e,t){var n,o,a,s,u=Y,l=!1,p=!1,f=t,h=0,m=!1;if(s=e.input.charCodeAt(e.position),124===s)o=!1;else{if(62!==s)return!1;o=!0}for(e.kind="scalar",e.result="";0!==s;)if(s=e.input.charCodeAt(++e.position),43===s||45===s)Y===u?u=43===s?Z:$:d(e,"repeat of a chomping mode identifier");else{if(!((a=c(s))>=0))break;0===a?d(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):p?d(e,"repeat of an indentation width identifier"):(f=t+a-1,p=!0)}if(i(s)){do s=e.input.charCodeAt(++e.position);while(i(s));if(35===s)do s=e.input.charCodeAt(++e.position);while(!r(s)&&0!==s)}for(;0!==s;){for(_(e),e.lineIndent=0,s=e.input.charCodeAt(e.position);(!p||e.lineIndent<f)&&32===s;)e.lineIndent++,s=e.input.charCodeAt(++e.position);if(!p&&e.lineIndent>f&&(f=e.lineIndent),r(s))h++;else{if(e.lineIndent<f){u===Z?e.result+=z.repeat("\n",l?1+h:h):u===Y&&l&&(e.result+="\n");break}for(o?i(s)?(m=!0,e.result+=z.repeat("\n",l?1+h:h)):m?(m=!1,e.result+=z.repeat("\n",h+1)):0===h?l&&(e.result+=" "):e.result+=z.repeat("\n",h):e.result+=z.repeat("\n",l?1+h:h),l=!0,p=!0,h=0,n=e.position;!r(s)&&0!==s;)s=e.input.charCodeAt(++e.position);v(e,n,e.position,!1)}}return!0}function T(e,t){var n,r,i,a=e.tag,s=e.anchor,u=[],c=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=u),i=e.input.charCodeAt(e.position);0!==i&&45===i&&(r=e.input.charCodeAt(e.position+1),o(r));)if(c=!0,e.position++,b(e,!0,-1)&&e.lineIndent<=t)u.push(null),i=e.input.charCodeAt(e.position);else if(n=e.line,I(e,t,G,!1,!0),u.push(e.result),b(e,!0,-1),i=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==i)d(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break;return!!c&&(e.tag=a,e.anchor=s,e.kind="sequence",e.result=u,!0)}function D(e,t,n){var r,a,s,u,c,l=e.tag,p=e.anchor,f={},h={},m=null,v=null,y=null,_=!1,x=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=f),c=e.input.charCodeAt(e.position);0!==c;){if(r=e.input.charCodeAt(e.position+1),s=e.line,u=e.position,63!==c&&58!==c||!o(r)){if(!I(e,n,J,!1,!0))break;if(e.line===s){for(c=e.input.charCodeAt(e.position);i(c);)c=e.input.charCodeAt(++e.position);if(58===c)c=e.input.charCodeAt(++e.position),o(c)||d(e,"a whitespace character is expected after the key-value separator within a block mapping"),_&&(g(e,f,h,m,v,null),m=v=y=null),x=!0,_=!1,a=!1,m=e.tag,v=e.result;else{if(!x)return e.tag=l,e.anchor=p,!0;d(e,"can not read an implicit mapping pair; a colon is missed")}}else{if(!x)return e.tag=l,e.anchor=p,!0;d(e,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===c?(_&&(g(e,f,h,m,v,null),m=v=y=null),x=!0,_=!0,a=!0):_?(_=!1,a=!0):d(e,"incomplete explicit mapping pair; a key node is missed"),e.position+=1,c=r;if((e.line===s||e.lineIndent>t)&&(I(e,t,X,!0,a)&&(_?v=e.result:y=e.result),_||(g(e,f,h,m,v,y,s,u),m=v=y=null),b(e,!0,-1),c=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==c)d(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return _&&g(e,f,h,m,v,null),x&&(e.tag=l,e.anchor=p,e.kind="mapping",e.result=f),x}function M(e){var t,n,r,i,a=!1,s=!1;if(i=e.input.charCodeAt(e.position),33!==i)return!1;if(null!==e.tag&&d(e,"duplication of a tag property"),i=e.input.charCodeAt(++e.position),60===i?(a=!0,i=e.input.charCodeAt(++e.position)):33===i?(s=!0,n="!!",i=e.input.charCodeAt(++e.position)):n="!",t=e.position,a){do i=e.input.charCodeAt(++e.position);while(0!==i&&62!==i);e.position<e.length?(r=e.input.slice(t,e.position),i=e.input.charCodeAt(++e.position)):d(e,"unexpected end of the stream within a verbatim tag")}else{for(;0!==i&&!o(i);)33===i&&(s?d(e,"tag suffix cannot contain exclamation marks"):(n=e.input.slice(t-1,e.position+1),ne.test(n)||d(e,"named tag handle cannot contain such characters"),s=!0,t=e.position+1)),i=e.input.charCodeAt(++e.position);r=e.input.slice(t,e.position),te.test(r)&&d(e,"tag suffix cannot contain flow indicator characters")}return r&&!re.test(r)&&d(e,"tag name cannot contain such characters: "+r),a?e.tag=r:V.call(e.tagMap,n)?e.tag=e.tagMap[n]+r:"!"===n?e.tag="!"+r:"!!"===n?e.tag="tag:yaml.org,2002:"+r:d(e,'undeclared tag handle "'+n+'"'),!0}function O(e){var t,n;if(n=e.input.charCodeAt(e.position),38!==n)return!1;for(null!==e.anchor&&d(e,"duplication of an anchor property"),n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!o(n)&&!a(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&d(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function P(e){var t,n,r;if(r=e.input.charCodeAt(e.position),42!==r)return!1;for(r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!o(r)&&!a(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&d(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(n)||d(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],b(e,!0,-1),!0}function I(e,t,n,r,i){var o,a,s,u,c,l,p,f,h=1,m=!1,v=!1;if(null!==e.listener&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,o=a=s=X===n||G===n,r&&b(e,!0,-1)&&(m=!0,e.lineIndent>t?h=1:e.lineIndent===t?h=0:e.lineIndent<t&&(h=-1)),1===h)for(;M(e)||O(e);)b(e,!0,-1)?(m=!0,s=o,e.lineIndent>t?h=1:e.lineIndent===t?h=0:e.lineIndent<t&&(h=-1)):s=!1;if(s&&(s=m||i),1!==h&&X!==n||(p=H===n||J===n?t:t+1,f=e.position-e.lineStart,1===h?s&&(T(e,f)||D(e,f,p))||C(e,p)?v=!0:(a&&A(e,p)||S(e,p)||E(e,p)?v=!0:P(e)?(v=!0,null===e.tag&&null===e.anchor||d(e,"alias node should not have any properties")):k(e,p,H===n)&&(v=!0,null===e.tag&&(e.tag="?")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===h&&(v=s&&T(e,f))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(u=0,c=e.implicitTypes.length;u<c;u+=1)if(l=e.implicitTypes[u],l.resolve(e.result)){e.result=l.construct(e.result),e.tag=l.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else V.call(e.typeMap[e.kind||"fallback"],e.tag)?(l=e.typeMap[e.kind||"fallback"][e.tag],null!==e.result&&l.kind!==e.kind&&d(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+l.kind+'", not "'+e.kind+'"'),l.resolve(e.result)?(e.result=l.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):d(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):d(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||v}function N(e){var t,n,a,s,u=e.position,c=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(s=e.input.charCodeAt(e.position))&&(b(e,!0,-1),s=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==s));){for(c=!0,s=e.input.charCodeAt(++e.position),t=e.position;0!==s&&!o(s);)s=e.input.charCodeAt(++e.position);for(n=e.input.slice(t,e.position),a=[],n.length<1&&d(e,"directive name must not be less than one character in length");0!==s;){for(;i(s);)s=e.input.charCodeAt(++e.position);if(35===s){do s=e.input.charCodeAt(++e.position);while(0!==s&&!r(s));break}if(r(s))break;for(t=e.position;0!==s&&!o(s);)s=e.input.charCodeAt(++e.position);a.push(e.input.slice(t,e.position))}0!==s&&_(e),V.call(se,n)?se[n](e,n,a):m(e,'unknown document directive "'+n+'"')}return b(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,b(e,!0,-1)):c&&d(e,"directives end mark is expected"),I(e,e.lineIndent-1,X,!1,!0),b(e,!0,-1),e.checkLineBreaks&&ee.test(e.input.slice(u,e.position))&&m(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&x(e)?void(46===e.input.charCodeAt(e.position)&&(e.position+=3,b(e,!0,-1))):void(e.position<e.length-1&&d(e,"end of the stream or a document separator is expected"))}function R(e,t){e=String(e),t=t||{},0!==e.length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+="\n"),65279===e.charCodeAt(0)&&(e=e.slice(1)));var n=new f(e,t);for(n.input+="\0";32===n.input.charCodeAt(n.position);)n.lineIndent+=1,n.position+=1;for(;n.position<n.length-1;)N(n);return n.documents}function j(e,t,n){var r,i,o=R(e,n);for(r=0,i=o.length;r<i;r+=1)t(o[r])}function F(e,t){var n=R(e,t);if(0!==n.length){if(1===n.length)return n[0];throw new q("expected a single document in the stream, but found more")}}function B(e,t,n){j(e,t,z.extend({schema:W},n))}function L(e,t){return F(e,z.extend({schema:W},t))}for(var z=n(451),q=n(452),U=n(453),W=n(454),K=n(473),V=Object.prototype.hasOwnProperty,H=1,J=2,G=3,X=4,Y=1,$=2,Z=3,Q=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,ee=/[\x85\u2028\u2029]/,te=/[,\[\]\{\}]/,ne=/^(?:!|!!|![a-z\-]+!)$/i,re=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i,ie=new Array(256),oe=new Array(256),ae=0;ae<256;ae++)ie[ae]=l(ae)?1:0,oe[ae]=l(ae);var se={YAML:function(e,t,n){var r,i,o;null!==e.version&&d(e,"duplication of %YAML directive"),1!==n.length&&d(e,"YAML directive accepts exactly one argument"),r=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),null===r&&d(e,"ill-formed argument of the YAML directive"),i=parseInt(r[1],10),o=parseInt(r[2],10),1!==i&&d(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&m(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var r,i;2!==n.length&&d(e,"TAG directive accepts exactly two arguments"),r=n[0],i=n[1],ne.test(r)||d(e,"ill-formed tag handle (first argument) of the TAG directive"),V.call(e.tagMap,r)&&d(e,'there is a previously declared suffix for "'+r+'" tag handle'),re.test(i)||d(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[r]=i}};e.exports.loadAll=j,e.exports.load=F,e.exports.safeLoadAll=B,e.exports.safeLoad=L},function(e,t){"use strict";function n(e){return"undefined"==typeof e||null===e}function r(e){return"object"==typeof e&&null!==e}function i(e){return Array.isArray(e)?e:n(e)?[]:[e]}function o(e,t){var n,r,i,o;if(t)for(o=Object.keys(t),n=0,r=o.length;n<r;n+=1)i=o[n],e[i]=t[i];return e}function a(e,t){var n,r="";for(n=0;n<t;n+=1)r+=e;return r}function s(e){return 0===e&&Number.NEGATIVE_INFINITY===1/e}e.exports.isNothing=n,e.exports.isObject=r,e.exports.toArray=i,e.exports.repeat=a,e.exports.isNegativeZero=s,e.exports.extend=o},function(e,t){"use strict";function n(e,t){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||"",this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():"")}n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t},e.exports=n},function(e,t,n){"use strict";function r(e,t,n,r,i){this.name=e,this.buffer=t,this.position=n,this.line=r,this.column=i}var i=n(451);r.prototype.getSnippet=function(e,t){var n,r,o,a,s;if(!this.buffer)return null;for(e=e||4,t=t||75,n="",r=this.position;r>0&&"\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(r-1))===-1;)if(r-=1,this.position-r>t/2-1){n=" ... ",r+=5;break}for(o="",a=this.position;a<this.buffer.length&&"\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(a))===-1;)if(a+=1,a-this.position>t/2-1){o=" ... ",a-=5;break}return s=this.buffer.slice(r,a),i.repeat(" ",e)+n+s+o+"\n"+i.repeat(" ",e+this.position-r+n.length)+"^"},r.prototype.toString=function(e){var t,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(n+=":\n"+t)),n},e.exports=r},function(e,t,n){"use strict";var r=n(455);e.exports=new r({include:[n(457)],implicit:[n(467),n(468)],explicit:[n(469),n(470),n(471),n(472)]})},function(e,t,n){"use strict";function r(e,t,n){var i=[];return e.include.forEach(function(e){n=r(e,t,n)}),e[t].forEach(function(e){n.forEach(function(t,n){t.tag===e.tag&&t.kind===e.kind&&i.push(n)}),n.push(e)}),n.filter(function(e,t){return i.indexOf(t)===-1})}function i(){function e(e){r[e.kind][e.tag]=r.fallback[e.tag]=e}var t,n,r={scalar:{},sequence:{},mapping:{},fallback:{}};for(t=0,n=arguments.length;t<n;t+=1)arguments[t].forEach(e);return r}function o(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new s("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=r(this,"implicit",[]),this.compiledExplicit=r(this,"explicit",[]),this.compiledTypeMap=i(this.compiledImplicit,this.compiledExplicit)}var a=n(451),s=n(452),u=n(456);o.DEFAULT=null,o.create=function(){var e,t;switch(arguments.length){case 1:e=o.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new s("Wrong number of arguments for Schema.create function")}if(e=a.toArray(e),t=a.toArray(t),!e.every(function(e){return e instanceof o}))throw new s("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every(function(e){return e instanceof u}))throw new s("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new o({include:e,explicit:t})},e.exports=o},function(e,t,n){"use strict";function r(e){var t={};return null!==e&&Object.keys(e).forEach(function(n){e[n].forEach(function(e){t[String(e)]=n})}),t}function i(e,t){if(t=t||{},Object.keys(t).forEach(function(t){if(a.indexOf(t)===-1)throw new o('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=r(t.styleAliases||null),s.indexOf(this.kind)===-1)throw new o('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var o=n(452),a=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],s=["scalar","sequence","mapping"];e.exports=i},function(e,t,n){"use strict";var r=n(455);e.exports=new r({include:[n(458)]})},function(e,t,n){"use strict";var r=n(455);e.exports=new r({include:[n(459)],implicit:[n(463),n(464),n(465),n(466)]})},function(e,t,n){"use strict";var r=n(455);e.exports=new r({explicit:[n(460),n(461),n(462)]})},function(e,t,n){"use strict";var r=n(456);e.exports=new r("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}})},function(e,t,n){"use strict";var r=n(456);e.exports=new r("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}})},function(e,t,n){"use strict";var r=n(456);e.exports=new r("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},function(e,t,n){"use strict";function r(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)}function i(){return null}function o(e){return null===e}var a=n(456);e.exports=new a("tag:yaml.org,2002:null",{kind:"scalar",resolve:r,construct:i,predicate:o,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},function(e,t,n){"use strict";function r(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)}function i(e){return"true"===e||"True"===e||"TRUE"===e}function o(e){return"[object Boolean]"===Object.prototype.toString.call(e)}var a=n(456);e.exports=new a("tag:yaml.org,2002:bool",{kind:"scalar",resolve:r,construct:i,predicate:o,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},function(e,t,n){"use strict";function r(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function i(e){return 48<=e&&e<=55}function o(e){return 48<=e&&e<=57}function a(e){if(null===e)return!1;var t,n=e.length,a=0,s=!1;if(!n)return!1;if(t=e[a],"-"!==t&&"+"!==t||(t=e[++a]),"0"===t){if(a+1===n)return!0;if(t=e[++a],"b"===t){for(a++;a<n;a++)if(t=e[a],"_"!==t){if("0"!==t&&"1"!==t)return!1;s=!0}return s&&"_"!==t}if("x"===t){for(a++;a<n;a++)if(t=e[a],"_"!==t){if(!r(e.charCodeAt(a)))return!1;s=!0}return s&&"_"!==t}for(;a<n;a++)if(t=e[a],"_"!==t){if(!i(e.charCodeAt(a)))return!1;s=!0}return s&&"_"!==t}if("_"===t)return!1;for(;a<n;a++)if(t=e[a],"_"!==t){if(":"===t)break;if(!o(e.charCodeAt(a)))return!1;s=!0}return!(!s||"_"===t)&&(":"!==t||/^(:[0-5]?[0-9])+$/.test(e.slice(a)))}function s(e){var t,n,r=e,i=1,o=[];return r.indexOf("_")!==-1&&(r=r.replace(/_/g,"")),t=r[0],"-"!==t&&"+"!==t||("-"===t&&(i=-1),r=r.slice(1),t=r[0]),"0"===r?0:"0"===t?"b"===r[1]?i*parseInt(r.slice(2),2):"x"===r[1]?i*parseInt(r,16):i*parseInt(r,8):r.indexOf(":")!==-1?(r.split(":").forEach(function(e){o.unshift(parseInt(e,10))}),r=0,n=1,o.forEach(function(e){r+=e*n,n*=60}),i*r):i*parseInt(r,10)}function u(e){return"[object Number]"===Object.prototype.toString.call(e)&&e%1===0&&!c.isNegativeZero(e)}var c=n(451),l=n(456);e.exports=new l("tag:yaml.org,2002:int",{kind:"scalar",resolve:a,construct:s,predicate:u,represent:{binary:function(e){return"0b"+e.toString(2)},octal:function(e){return"0"+e.toString(8)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return"0x"+e.toString(16).toUpperCase()}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},function(e,t,n){"use strict";function r(e){return null!==e&&!(!c.test(e)||"_"===e[e.length-1])}function i(e){var t,n,r,i;return t=e.replace(/_/g,"").toLowerCase(),n="-"===t[0]?-1:1,i=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(e){i.unshift(parseFloat(e,10))}),t=0,r=1,i.forEach(function(e){t+=e*r,r*=60}),n*t):n*parseFloat(t,10)}function o(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(s.isNegativeZero(e))return"-0.0";return n=e.toString(10),l.test(n)?n.replace("e",".e"):n}function a(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!==0||s.isNegativeZero(e))}var s=n(451),u=n(456),c=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),l=/^[-+]?[0-9]+e/;e.exports=new u("tag:yaml.org,2002:float",{kind:"scalar",resolve:r,construct:i,predicate:a,represent:o,defaultStyle:"lowercase"})},function(e,t,n){"use strict";function r(e){return null!==e&&(null!==s.exec(e)||null!==u.exec(e))}function i(e){var t,n,r,i,o,a,c,l,p,f,h=0,d=null;if(t=s.exec(e),null===t&&(t=u.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,r,i));if(o=+t[4],a=+t[5],c=+t[6],t[7]){for(h=t[7].slice(0,3);h.length<3;)h+="0";h=+h}return t[9]&&(l=+t[10],p=+(t[11]||0),d=6e4*(60*l+p),"-"===t[9]&&(d=-d)),f=new Date(Date.UTC(n,r,i,o,a,c,h)),d&&f.setTime(f.getTime()-d),f}function o(e){return e.toISOString()}var a=n(456),s=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),u=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");e.exports=new a("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:r,construct:i,instanceOf:Date,represent:o})},function(e,t,n){"use strict";function r(e){return"<<"===e||null===e}var i=n(456);e.exports=new i("tag:yaml.org,2002:merge",{kind:"scalar",resolve:r})},function(e,t,n){function r(e){if(null===e)return!1;var t,n,r=0,i=e.length,o=c;for(n=0;n<i;n++)if(t=o.indexOf(e.charAt(n)),!(t>64)){if(t<0)return!1;r+=6}return r%8===0}function i(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,o=c,a=0,u=[];for(t=0;t<i;t++)t%4===0&&t&&(u.push(a>>16&255),u.push(a>>8&255),u.push(255&a)),a=a<<6|o.indexOf(r.charAt(t));return n=i%4*6,0===n?(u.push(a>>16&255),u.push(a>>8&255),u.push(255&a)):18===n?(u.push(a>>10&255),u.push(a>>2&255)):12===n&&u.push(a>>4&255),s?s.from?s.from(u):new s(u):u}function o(e){var t,n,r="",i=0,o=e.length,a=c;for(t=0;t<o;t++)t%3===0&&t&&(r+=a[i>>18&63],r+=a[i>>12&63],r+=a[i>>6&63],r+=a[63&i]),i=(i<<8)+e[t];return n=o%3,0===n?(r+=a[i>>18&63],r+=a[i>>12&63],r+=a[i>>6&63],r+=a[63&i]):2===n?(r+=a[i>>10&63],r+=a[i>>4&63],r+=a[i<<2&63],r+=a[64]):1===n&&(r+=a[i>>2&63],r+=a[i<<4&63],r+=a[64],r+=a[64]),r}function a(e){return s&&s.isBuffer(e)}var s;try{s=n(132).Buffer}catch(e){}var u=n(456),c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";e.exports=new u("tag:yaml.org,2002:binary",{kind:"scalar",resolve:r,construct:i,predicate:a,represent:o})},function(e,t,n){"use strict";function r(e){if(null===e)return!0;var t,n,r,i,o,u=[],c=e;for(t=0,n=c.length;t<n;t+=1){if(r=c[t],o=!1,"[object Object]"!==s.call(r))return!1;for(i in r)if(a.call(r,i)){if(o)return!1;o=!0}if(!o)return!1;if(u.indexOf(i)!==-1)return!1;u.push(i)}return!0}function i(e){return null!==e?e:[]}var o=n(456),a=Object.prototype.hasOwnProperty,s=Object.prototype.toString;e.exports=new o("tag:yaml.org,2002:omap",{kind:"sequence",resolve:r,construct:i})},function(e,t,n){"use strict";function r(e){if(null===e)return!0;var t,n,r,i,o,s=e;for(o=new Array(s.length),t=0,n=s.length;t<n;t+=1){if(r=s[t],"[object Object]"!==a.call(r))return!1;if(i=Object.keys(r),1!==i.length)return!1;o[t]=[i[0],r[i[0]]]}return!0}function i(e){if(null===e)return[];var t,n,r,i,o,a=e;for(o=new Array(a.length),t=0,n=a.length;t<n;t+=1)r=a[t],i=Object.keys(r),o[t]=[i[0],r[i[0]]];return o}var o=n(456),a=Object.prototype.toString;e.exports=new o("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:r,construct:i})},function(e,t,n){"use strict";function r(e){if(null===e)return!0;var t,n=e;for(t in n)if(a.call(n,t)&&null!==n[t])return!1;return!0}function i(e){return null!==e?e:{}}var o=n(456),a=Object.prototype.hasOwnProperty;e.exports=new o("tag:yaml.org,2002:set",{kind:"mapping",resolve:r,construct:i})},function(e,t,n){"use strict";var r=n(455);e.exports=r.DEFAULT=new r({include:[n(454)],explicit:[n(474),n(475),n(476)]})},function(e,t,n){"use strict";function r(){return!0}function i(){}function o(){return""}function a(e){return"undefined"==typeof e}var s=n(456);e.exports=new s("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:r,construct:i,predicate:a,represent:o})},function(e,t,n){"use strict";function r(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,n=/\/([gim]*)$/.exec(e),r="";if("/"===t[0]){if(n&&(r=n[1]),r.length>3)return!1;if("/"!==t[t.length-r.length-1])return!1}return!0}function i(e){var t=e,n=/\/([gim]*)$/.exec(e),r="";return"/"===t[0]&&(n&&(r=n[1]),t=t.slice(1,t.length-r.length-1)),new RegExp(t,r)}function o(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function a(e){return"[object RegExp]"===Object.prototype.toString.call(e)}var s=n(456);e.exports=new s("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:r,construct:i,predicate:a,represent:o})},function(e,t,n){function r(e){if(null===e)return!1;try{var t="("+e+")",n=s.parse(t,{range:!0});return"Program"===n.type&&1===n.body.length&&"ExpressionStatement"===n.body[0].type&&"FunctionExpression"===n.body[0].expression.type}catch(e){return!1}}function i(e){var t,n="("+e+")",r=s.parse(n,{range:!0}),i=[];if("Program"!==r.type||1!==r.body.length||"ExpressionStatement"!==r.body[0].type||"FunctionExpression"!==r.body[0].expression.type)throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(e){i.push(e.name)}),t=r.body[0].expression.body.range,new Function(i,n.slice(t[0]+1,t[1]-1))}function o(e){return e.toString()}function a(e){return"[object Function]"===Object.prototype.toString.call(e)}var s;try{s=n(477)}catch(e){"undefined"!=typeof window&&(s=window.esprima)}var u=n(456);e.exports=new u("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:r,construct:i,predicate:a,represent:o})},function(e,t,n){!function(t,n){e.exports=n()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e,t,n){var r=null,i=function(e,t){n&&n(e,t),r&&r.visit(e,t)},u="function"==typeof n?i:null,c=!1;if(t){c="boolean"==typeof t.comment&&t.comment;var l="boolean"==typeof t.attachComment&&t.attachComment;(c||l)&&(r=new o.CommentHandler,r.attach=l,t.comment=!0,u=i)}var p;p=t&&"boolean"==typeof t.jsx&&t.jsx?new s.JSXParser(e,t,u):new a.Parser(e,t,u);var f=p.parseProgram();return c&&(f.comments=r.comments),p.config.tokens&&(f.tokens=p.tokens),p.config.tolerant&&(f.errors=p.errorHandler.errors),f}function i(e,t,n){var r,i=new u.Tokenizer(e,t);r=[];try{for(;;){var o=i.getNextToken();if(!o)break;n&&(o=n(o)),r.push(o)}}catch(e){i.errorHandler.tolerate(e)}return i.errorHandler.tolerant&&(r.errors=i.errors()),r}var o=n(1),a=n(3),s=n(11),u=n(15);t.parse=r,t.tokenize=i;var c=n(2);t.Syntax=c.Syntax,t.version="3.1.3"},function(e,t,n){"use strict";var r=n(2),i=function(){function e(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return e.prototype.insertInnerComments=function(e,t){if(e.type===r.Syntax.BlockStatement&&0===e.body.length){for(var n=[],i=this.leading.length-1;i>=0;--i){var o=this.leading[i];t.end.offset>=o.start&&(n.unshift(o.comment),this.leading.splice(i,1),this.trailing.splice(i,1))}n.length&&(e.innerComments=n)}},e.prototype.findTrailingComments=function(e,t){var n=[];if(this.trailing.length>0){for(var r=this.trailing.length-1;r>=0;--r){var i=this.trailing[r];i.start>=t.end.offset&&n.unshift(i.comment)}return this.trailing.length=0,n}var o=this.stack[this.stack.length-1];if(o&&o.node.trailingComments){var a=o.node.trailingComments[0];a&&a.range[0]>=t.end.offset&&(n=o.node.trailingComments,delete o.node.trailingComments)}return n},e.prototype.findLeadingComments=function(e,t){for(var n,r=[];this.stack.length>0;){var i=this.stack[this.stack.length-1];if(!(i&&i.start>=t.start.offset))break;n=this.stack.pop().node}if(n){for(var o=n.leadingComments?n.leadingComments.length:0,a=o-1;a>=0;--a){var s=n.leadingComments[a];s.range[1]<=t.start.offset&&(r.unshift(s),n.leadingComments.splice(a,1))}return n.leadingComments&&0===n.leadingComments.length&&delete n.leadingComments,r}for(var a=this.leading.length-1;a>=0;--a){var i=this.leading[a];i.start<=t.start.offset&&(r.unshift(i.comment),this.leading.splice(a,1))}return r},e.prototype.visitNode=function(e,t){if(!(e.type===r.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var n=this.findTrailingComments(e,t),i=this.findLeadingComments(e,t);i.length>0&&(e.leadingComments=i),n.length>0&&(e.trailingComments=n),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var n="L"===e.type[0]?"Line":"Block",r={type:n,value:e.value};if(e.range&&(r.range=e.range),e.loc&&(r.loc=e.loc),this.comments.push(r),this.attach){var i={comment:{type:n,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(i.comment.loc=e.loc),e.type=n,this.leading.push(i),this.trailing.push(i)}},e.prototype.visit=function(e,t){"LineComment"===e.type?this.visitComment(e,t):"BlockComment"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=i},function(e,t){"use strict";t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,n){"use strict";var r=n(4),i=n(5),o=n(6),a=n(7),s=n(8),u=n(2),c=n(10),l="ArrowParameterPlaceHolder",p=function(){function e(e,t,n){void 0===t&&(t={}),this.config={range:"boolean"==typeof t.range&&t.range,loc:"boolean"==typeof t.loc&&t.loc,source:null,tokens:"boolean"==typeof t.tokens&&t.tokens,comment:"boolean"==typeof t.comment&&t.comment,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=n,this.errorHandler=new o.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new s.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.sourceType=t&&"module"===t.sourceType?"module":"script",this.lookahead=null,this.hasLineTerminator=!1,this.context={allowIn:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:"module"===this.sourceType},this.tokens=[],this.startMarker={index:0,lineNumber:this.scanner.lineNumber, +lineStart:0},this.lastMarker={index:0,lineNumber:this.scanner.lineNumber,lineStart:0},this.nextToken(),this.lastMarker={index:this.scanner.index,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var i=Array.prototype.slice.call(arguments,1),o=e.replace(/%(\d)/g,function(e,t){return r.assert(t<i.length,"Message reference must be in range"),i[t]}),a=this.lastMarker.index,s=this.lastMarker.lineNumber,u=this.lastMarker.index-this.lastMarker.lineStart+1;throw this.errorHandler.createError(a,s,u,o)},e.prototype.tolerateError=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var i=Array.prototype.slice.call(arguments,1),o=e.replace(/%(\d)/g,function(e,t){return r.assert(t<i.length,"Message reference must be in range"),i[t]}),a=this.lastMarker.index,s=this.scanner.lineNumber,u=this.lastMarker.index-this.lastMarker.lineStart+1;this.errorHandler.tolerateError(a,s,u,o)},e.prototype.unexpectedTokenError=function(e,t){var n,r=t||i.Messages.UnexpectedToken;if(e?(t||(r=e.type===a.Token.EOF?i.Messages.UnexpectedEOS:e.type===a.Token.Identifier?i.Messages.UnexpectedIdentifier:e.type===a.Token.NumericLiteral?i.Messages.UnexpectedNumber:e.type===a.Token.StringLiteral?i.Messages.UnexpectedString:e.type===a.Token.Template?i.Messages.UnexpectedTemplate:i.Messages.UnexpectedToken,e.type===a.Token.Keyword&&(this.scanner.isFutureReservedWord(e.value)?r=i.Messages.UnexpectedReserved:this.context.strict&&this.scanner.isStrictModeReservedWord(e.value)&&(r=i.Messages.StrictReservedWord))),n=e.type===a.Token.Template?e.value.raw:e.value):n="ILLEGAL",r=r.replace("%0",n),e&&"number"==typeof e.lineNumber){var o=e.start,s=e.lineNumber,u=e.start-this.lastMarker.lineStart+1;return this.errorHandler.createError(o,s,u,r)}var o=this.lastMarker.index,s=this.lastMarker.lineNumber,u=o-this.lastMarker.lineStart+1;return this.errorHandler.createError(o,s,u,r)},e.prototype.throwUnexpectedToken=function(e,t){throw this.unexpectedTokenError(e,t)},e.prototype.tolerateUnexpectedToken=function(e,t){this.errorHandler.tolerate(this.unexpectedTokenError(e,t))},e.prototype.collectComments=function(){if(this.config.comment){var e=this.scanner.scanComments();if(e.length>0&&this.delegate)for(var t=0;t<e.length;++t){var n=e[t],r=void 0;r={type:n.multiLine?"BlockComment":"LineComment",value:this.scanner.source.slice(n.slice[0],n.slice[1])},this.config.range&&(r.range=n.range),this.config.loc&&(r.loc=n.loc);var i={start:{line:n.loc.start.line,column:n.loc.start.column,offset:n.range[0]},end:{line:n.loc.end.line,column:n.loc.end.column,offset:n.range[1]}};this.delegate(r,i)}}else this.scanner.scanComments()},e.prototype.getTokenRaw=function(e){return this.scanner.source.slice(e.start,e.end)},e.prototype.convertToken=function(e){var t;return t={type:a.TokenName[e.type],value:this.getTokenRaw(e)},this.config.range&&(t.range=[e.start,e.end]),this.config.loc&&(t.loc={start:{line:this.startMarker.lineNumber,column:this.startMarker.index-this.startMarker.lineStart},end:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}),e.regex&&(t.regex=e.regex),t},e.prototype.nextToken=function(){var e=this.lookahead;this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;var t;return t=this.scanner.lex(),this.hasLineTerminator=!(!e||!t)&&e.lineNumber!==t.lineNumber,t&&this.context.strict&&t.type===a.Token.Identifier&&this.scanner.isStrictModeReservedWord(t.value)&&(t.type=a.Token.Keyword),this.lookahead=t,this.config.tokens&&t.type!==a.Token.EOF&&this.tokens.push(this.convertToken(t)),e},e.prototype.nextRegexToken=function(){this.collectComments();var e=this.scanner.scanRegExp();return this.config.tokens&&(this.tokens.pop(),this.tokens.push(this.convertToken(e))),this.lookahead=e,this.nextToken(),e},e.prototype.createNode=function(){return{index:this.startMarker.index,line:this.startMarker.lineNumber,column:this.startMarker.index-this.startMarker.lineStart}},e.prototype.startNode=function(e){return{index:e.start,line:e.lineNumber,column:e.start-e.lineStart}},e.prototype.finalize=function(e,t){if(this.config.range&&(t.range=[e.index,this.lastMarker.index]),this.config.loc&&(t.loc={start:{line:e.line,column:e.column},end:{line:this.lastMarker.lineNumber,column:this.lastMarker.index-this.lastMarker.lineStart}},this.config.source&&(t.loc.source=this.config.source)),this.delegate){var n={start:{line:e.line,column:e.column,offset:e.index},end:{line:this.lastMarker.lineNumber,column:this.lastMarker.index-this.lastMarker.lineStart,offset:this.lastMarker.index}};this.delegate(t,n)}return t},e.prototype.expect=function(e){var t=this.nextToken();t.type===a.Token.Punctuator&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.expectCommaSeparator=function(){if(this.config.tolerant){var e=this.lookahead;e.type===a.Token.Punctuator&&","===e.value?this.nextToken():e.type===a.Token.Punctuator&&";"===e.value?(this.nextToken(),this.tolerateUnexpectedToken(e)):this.tolerateUnexpectedToken(e,i.Messages.UnexpectedToken)}else this.expect(",")},e.prototype.expectKeyword=function(e){var t=this.nextToken();t.type===a.Token.Keyword&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.match=function(e){return this.lookahead.type===a.Token.Punctuator&&this.lookahead.value===e},e.prototype.matchKeyword=function(e){return this.lookahead.type===a.Token.Keyword&&this.lookahead.value===e},e.prototype.matchContextualKeyword=function(e){return this.lookahead.type===a.Token.Identifier&&this.lookahead.value===e},e.prototype.matchAssign=function(){if(this.lookahead.type!==a.Token.Punctuator)return!1;var e=this.lookahead.value;return"="===e||"*="===e||"**="===e||"/="===e||"%="===e||"+="===e||"-="===e||"<<="===e||">>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,n=this.context.isAssignmentTarget,r=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=n,this.context.firstCoverInitializedNameError=r,i},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,n=this.context.isAssignmentTarget,r=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&n,this.context.firstCoverInitializedNameError=r||this.context.firstCoverInitializedNameError,i},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(this.lookahead.type===a.Token.EOF||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.lineNumber=this.startMarker.lineNumber,this.lastMarker.lineStart=this.startMarker.lineStart)},e.prototype.parsePrimaryExpression=function(){var e,t,n,r,o=this.createNode();switch(this.lookahead.type){case a.Token.Identifier:"module"===this.sourceType&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.finalize(o,new c.Identifier(this.nextToken().value));break;case a.Token.NumericLiteral:case a.Token.StringLiteral:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,i.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),r=this.getTokenRaw(n),e=this.finalize(o,new c.Literal(n.value,r));break;case a.Token.BooleanLiteral:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),n.value="true"===n.value,r=this.getTokenRaw(n),e=this.finalize(o,new c.Literal(n.value,r));break;case a.Token.NullLiteral:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),n.value=null,r=this.getTokenRaw(n),e=this.finalize(o,new c.Literal(n.value,r));break;case a.Token.Template:e=this.parseTemplateLiteral();break;case a.Token.Punctuator:switch(t=this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,n=this.nextRegexToken(),r=this.getTokenRaw(n),e=this.finalize(o,new c.RegexLiteral(n.value,r,n.regex));break;default:this.throwUnexpectedToken(this.nextToken())}break;case a.Token.Keyword:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(o,new c.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(o,new c.ThisExpression)):this.matchKeyword("class")?e=this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new c.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var n=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(n)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new c.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,n=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,n},e.prototype.parsePropertyMethodFunction=function(){var e=!1,t=this.createNode(),n=this.context.allowYield;this.context.allowYield=!1;var r=this.parseFormalParameters(),i=this.parsePropertyMethod(r);return this.context.allowYield=n,this.finalize(t,new c.FunctionExpression(null,r.params,i,e))},e.prototype.parseObjectPropertyKey=function(){var e=this.createNode(),t=this.nextToken(),n=null;switch(t.type){case a.Token.StringLiteral:case a.Token.NumericLiteral:this.context.strict&&t.octal&&this.tolerateUnexpectedToken(t,i.Messages.StrictOctalLiteral);var r=this.getTokenRaw(t);n=this.finalize(e,new c.Literal(t.value,r));break;case a.Token.Identifier:case a.Token.BooleanLiteral:case a.Token.NullLiteral:case a.Token.Keyword:n=this.finalize(e,new c.Identifier(t.value));break;case a.Token.Punctuator:"["===t.value?(n=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):this.throwUnexpectedToken(t);break;default:this.throwUnexpectedToken(t)}return n},e.prototype.isPropertyKey=function(e,t){return e.type===u.Syntax.Identifier&&e.name===t||e.type===u.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,n,r,o=this.createNode(),s=this.lookahead,u=!1,l=!1,p=!1;s.type===a.Token.Identifier?(this.nextToken(),n=this.finalize(o,new c.Identifier(s.value))):this.match("*")?this.nextToken():(u=this.match("["),n=this.parseObjectPropertyKey());var f=this.qualifiedPropertyName(this.lookahead);if(s.type===a.Token.Identifier&&"get"===s.value&&f)t="get",u=this.match("["),n=this.parseObjectPropertyKey(),this.context.allowYield=!1,r=this.parseGetterMethod();else if(s.type===a.Token.Identifier&&"set"===s.value&&f)t="set",u=this.match("["),n=this.parseObjectPropertyKey(),r=this.parseSetterMethod();else if(s.type===a.Token.Punctuator&&"*"===s.value&&f)t="init",u=this.match("["),n=this.parseObjectPropertyKey(),r=this.parseGeneratorMethod(),l=!0;else if(n||this.throwUnexpectedToken(this.lookahead),t="init",this.match(":"))!u&&this.isPropertyKey(n,"__proto__")&&(e.value&&this.tolerateError(i.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),r=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))r=this.parsePropertyMethodFunction(),l=!0;else if(s.type===a.Token.Identifier){var h=this.finalize(o,new c.Identifier(s.value));if(this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),p=!0;var d=this.isolateCoverGrammar(this.parseAssignmentExpression);r=this.finalize(o,new c.AssignmentPattern(h,d))}else p=!0,r=h}else this.throwUnexpectedToken(this.nextToken());return this.finalize(o,new c.Property(t,n,u,r,l,p))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],n={value:!1};!this.match("}");)t.push(this.parseObjectProperty(n)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new c.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){r.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),n={raw:t.value.raw,cooked:t.value.cooked};return this.finalize(e,new c.TemplateElement(n,t.tail))},e.prototype.parseTemplateElement=function(){this.lookahead.type!==a.Token.Template&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),n={raw:t.value.raw,cooked:t.value.cooked};return this.finalize(e,new c.TemplateElement(n,t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],n=[],r=this.parseTemplateHead();for(n.push(r);!r.tail;)t.push(this.parseExpression()),r=this.parseTemplateElement(),n.push(r);return this.finalize(e,new c.TemplateLiteral(n,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case u.Syntax.Identifier:case u.Syntax.MemberExpression:case u.Syntax.RestElement:case u.Syntax.AssignmentPattern:break;case u.Syntax.SpreadElement:e.type=u.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case u.Syntax.ArrayExpression:e.type=u.Syntax.ArrayPattern;for(var t=0;t<e.elements.length;t++)null!==e.elements[t]&&this.reinterpretExpressionAsPattern(e.elements[t]);break;case u.Syntax.ObjectExpression:e.type=u.Syntax.ObjectPattern;for(var t=0;t<e.properties.length;t++)this.reinterpretExpressionAsPattern(e.properties[t].value);break;case u.Syntax.AssignmentExpression:e.type=u.Syntax.AssignmentPattern,delete e.operator,this.reinterpretExpressionAsPattern(e.left)}},e.prototype.parseGroupExpression=function(){var e;if(this.expect("("),this.match(")"))this.nextToken(),this.match("=>")||this.expect("=>"),e={type:l,params:[]};else{var t=this.lookahead,n=[];if(this.match("..."))e=this.parseRestElement(n),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:l,params:[e]};else{var r=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var i=[];for(this.context.isAssignmentTarget=!1,i.push(e);this.startMarker.index<this.scanner.length&&this.match(",");){if(this.nextToken(),this.match("...")){this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),i.push(this.parseRestElement(n)),this.expect(")"),this.match("=>")||this.expect("=>"),this.context.isBindingElement=!1;for(var o=0;o<i.length;o++)this.reinterpretExpressionAsPattern(i[o]);r=!0,e={type:l,params:i}}else i.push(this.inheritCoverGrammar(this.parseAssignmentExpression));if(r)break}r||(e=this.finalize(this.startNode(t),new c.SequenceExpression(i)))}if(!r){if(this.expect(")"),this.match("=>")&&(e.type===u.Syntax.Identifier&&"yield"===e.name&&(r=!0,e={type:l,params:[e]}),!r)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===u.Syntax.SequenceExpression)for(var o=0;o<e.expressions.length;o++)this.reinterpretExpressionAsPattern(e.expressions[o]);else this.reinterpretExpressionAsPattern(e);var a=e.type===u.Syntax.SequenceExpression?e.expressions:[e];e={type:l,params:a}}this.context.isBindingElement=!1}}}return e},e.prototype.parseArguments=function(){this.expect("(");var e=[];if(!this.match(")"))for(;;){var t=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAssignmentExpression);if(e.push(t),this.match(")"))break;this.expectCommaSeparator()}return this.expect(")"),e},e.prototype.isIdentifierName=function(e){return e.type===a.Token.Identifier||e.type===a.Token.Keyword||e.type===a.Token.BooleanLiteral||e.type===a.Token.NullLiteral},e.prototype.parseIdentifierName=function(){var e=this.createNode(),t=this.nextToken();return this.isIdentifierName(t)||this.throwUnexpectedToken(t),this.finalize(e,new c.Identifier(t.value))},e.prototype.parseNewExpression=function(){var e=this.createNode(),t=this.parseIdentifierName();r.assert("new"===t.name,"New expression must start with `new`");var n;if(this.match("."))if(this.nextToken(),this.lookahead.type===a.Token.Identifier&&this.context.inFunctionBody&&"target"===this.lookahead.value){var i=this.parseIdentifierName();n=new c.MetaProperty(t,i)}else this.throwUnexpectedToken(this.lookahead);else{var o=this.isolateCoverGrammar(this.parseLeftHandSideExpression),s=this.match("(")?this.parseArguments():[];n=new c.NewExpression(o,s),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return this.finalize(e,n)},e.prototype.parseLeftHandSideExpressionAllowCall=function(){var e=this.lookahead,t=this.context.allowIn;this.context.allowIn=!0;var n;for(this.matchKeyword("super")&&this.context.inFunctionBody?(n=this.createNode(),this.nextToken(),n=this.finalize(n,new c.Super),this.match("(")||this.match(".")||this.match("[")||this.throwUnexpectedToken(this.lookahead)):n=this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match(".")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(".");var r=this.parseIdentifierName();n=this.finalize(this.startNode(e),new c.StaticMemberExpression(n,r))}else if(this.match("(")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!1;var i=this.parseArguments();n=this.finalize(this.startNode(e),new c.CallExpression(n,i))}else if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("[");var r=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),n=this.finalize(this.startNode(e),new c.ComputedMemberExpression(n,r))}else{if(this.lookahead.type!==a.Token.Template||!this.lookahead.head)break;var o=this.parseTemplateLiteral();n=this.finalize(this.startNode(e),new c.TaggedTemplateExpression(n,o))}return this.context.allowIn=t,n},e.prototype.parseSuper=function(){var e=this.createNode();return this.expectKeyword("super"),this.match("[")||this.match(".")||this.throwUnexpectedToken(this.lookahead),this.finalize(e,new c.Super)},e.prototype.parseLeftHandSideExpression=function(){r.assert(this.context.allowIn,"callee of new expression always allow in keyword.");for(var e=this.startNode(this.lookahead),t=this.matchKeyword("super")&&this.context.inFunctionBody?this.parseSuper():this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("[");var n=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),t=this.finalize(e,new c.ComputedMemberExpression(t,n))}else if(this.match(".")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(".");var n=this.parseIdentifierName();t=this.finalize(e,new c.StaticMemberExpression(t,n))}else{if(this.lookahead.type!==a.Token.Template||!this.lookahead.head)break;var i=this.parseTemplateLiteral();t=this.finalize(e,new c.TaggedTemplateExpression(t,i))}return t},e.prototype.parseUpdateExpression=function(){var e,t=this.lookahead;if(this.match("++")||this.match("--")){var n=this.startNode(t),r=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),this.context.strict&&e.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(i.Messages.StrictLHSPrefix),this.context.isAssignmentTarget||this.tolerateError(i.Messages.InvalidLHSInAssignment);var o=!0;e=this.finalize(n,new c.UpdateExpression(r.value,e,o)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else if(e=this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall),!this.hasLineTerminator&&this.lookahead.type===a.Token.Punctuator&&(this.match("++")||this.match("--"))){this.context.strict&&e.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(i.Messages.StrictLHSPostfix),this.context.isAssignmentTarget||this.tolerateError(i.Messages.InvalidLHSInAssignment),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var s=this.nextToken().value,o=!1;e=this.finalize(this.startNode(t),new c.UpdateExpression(s,e,o))}return e},e.prototype.parseUnaryExpression=function(){var e;if(this.match("+")||this.match("-")||this.match("~")||this.match("!")||this.matchKeyword("delete")||this.matchKeyword("void")||this.matchKeyword("typeof")){var t=this.startNode(this.lookahead),n=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),e=this.finalize(t,new c.UnaryExpression(n.value,e)),this.context.strict&&"delete"===e.operator&&e.argument.type===u.Syntax.Identifier&&this.tolerateError(i.Messages.StrictDelete),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else e=this.parseUpdateExpression();return e},e.prototype.parseExponentiationExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseUnaryExpression);if(t.type!==u.Syntax.UnaryExpression&&this.match("**")){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var n=t,r=this.isolateCoverGrammar(this.parseExponentiationExpression);t=this.finalize(this.startNode(e),new c.BinaryExpression("**",n,r))}return t},e.prototype.binaryPrecedence=function(e){var t,n=e.value;return t=e.type===a.Token.Punctuator?this.operatorPrecedence[n]||0:e.type===a.Token.Keyword&&("instanceof"===n||this.context.allowIn&&"in"===n)?7:0},e.prototype.parseBinaryExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseExponentiationExpression),n=this.lookahead,r=this.binaryPrecedence(n);if(r>0){this.nextToken(),n.prec=r,this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var i=[e,this.lookahead],o=t,a=this.isolateCoverGrammar(this.parseExponentiationExpression),s=[o,n,a];;){if(r=this.binaryPrecedence(this.lookahead),r<=0)break;for(;s.length>2&&r<=s[s.length-2].prec;){a=s.pop();var u=s.pop().value;o=s.pop(),i.pop();var l=this.startNode(i[i.length-1]);s.push(this.finalize(l,new c.BinaryExpression(u,o,a)))}n=this.nextToken(),n.prec=r,s.push(n),i.push(this.lookahead),s.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var p=s.length-1;for(t=s[p],i.pop();p>1;){var l=this.startNode(i.pop());t=this.finalize(l,new c.BinaryExpression(s[p-1].value,s[p-2],t)),p-=2}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var n=this.context.allowIn;this.context.allowIn=!0;var r=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=n,this.expect(":");var i=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new c.ConditionalExpression(t,r,i)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case u.Syntax.Identifier:this.validateParam(e,t,t.name);break;case u.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case u.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case u.Syntax.ArrayPattern:for(var n=0;n<t.elements.length;n++)null!==t.elements[n]&&this.checkPatternParam(e,t.elements[n]);break;case u.Syntax.YieldExpression:break;default:r.assert(t.type===u.Syntax.ObjectPattern,"Invalid type");for(var n=0;n<t.properties.length;n++)this.checkPatternParam(e,t.properties[n].value)}},e.prototype.reinterpretAsCoverFormalsList=function(e){var t,n=[e];switch(e.type){case u.Syntax.Identifier:break;case l:n=e.params;break;default:return null}t={paramSet:{}};for(var r=0;r<n.length;++r){var o=n[r];o.type===u.Syntax.AssignmentPattern&&o.right.type===u.Syntax.YieldExpression&&(o.right.argument&&this.throwUnexpectedToken(this.lookahead),o.right.type=u.Syntax.Identifier,o.right.name="yield",delete o.right.argument,delete o.right.delegate),this.checkPatternParam(t,o),n[r]=o}if(this.context.strict||!this.context.allowYield)for(var r=0;r<n.length;++r){var o=n[r];o.type===u.Syntax.YieldExpression&&this.throwUnexpectedToken(this.lookahead)}if(t.message===i.Messages.StrictParamDupe){var a=this.context.strict?t.stricted:t.firstRestricted;this.throwUnexpectedToken(a,t.message)}return{params:n,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.parseAssignmentExpression=function(){var e;if(!this.context.allowYield&&this.matchKeyword("yield"))e=this.parseYieldExpression();else{var t=this.lookahead,n=t;if(e=this.parseConditionalExpression(),e.type===l||this.match("=>")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var r=this.reinterpretAsCoverFormalsList(e);if(r){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var o=this.context.strict,a=this.context.allowYield;this.context.allowYield=!0;var s=this.startNode(t);this.expect("=>");var p=this.match("{")?this.parseFunctionSourceElements():this.isolateCoverGrammar(this.parseAssignmentExpression),f=p.type!==u.Syntax.BlockStatement;this.context.strict&&r.firstRestricted&&this.throwUnexpectedToken(r.firstRestricted,r.message),this.context.strict&&r.stricted&&this.tolerateUnexpectedToken(r.stricted,r.message),e=this.finalize(s,new c.ArrowFunctionExpression(r.params,p,f)),this.context.strict=o,this.context.allowYield=a}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(i.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===u.Syntax.Identifier){var h=e;this.scanner.isRestrictedWord(h.name)&&this.tolerateUnexpectedToken(n,i.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(h.name)&&this.tolerateUnexpectedToken(n,i.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1),n=this.nextToken();var d=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new c.AssignmentExpression(n.value,e,d)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var n=[];for(n.push(t);this.startMarker.index<this.scanner.length&&this.match(",");)this.nextToken(),n.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new c.SequenceExpression(n))}return t},e.prototype.parseStatementListItem=function(){var e=null;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,this.lookahead.type===a.Token.Keyword)switch(this.lookahead.value){case"export":"module"!==this.sourceType&&this.tolerateUnexpectedToken(this.lookahead,i.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":"module"!==this.sourceType&&this.tolerateUnexpectedToken(this.lookahead,i.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement()}else e=this.parseStatement();return e},e.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var t=[];;){if(this.match("}"))break;t.push(this.parseStatementListItem())}return this.expect("}"),this.finalize(e,new c.BlockStatement(t))},e.prototype.parseLexicalBinding=function(e,t){var n=this.createNode(),r=[],o=this.parsePattern(r,e);this.context.strict&&o.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(o.name)&&this.tolerateError(i.Messages.StrictVarName);var a=null;return"const"===e?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.expect("="),a=this.isolateCoverGrammar(this.parseAssignmentExpression)):(!t.inFor&&o.type!==u.Syntax.Identifier||this.match("="))&&(this.expect("="),a=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(n,new c.VariableDeclarator(o,a))},e.prototype.parseBindingList=function(e,t){for(var n=[this.parseLexicalBinding(e,t)];this.match(",");)this.nextToken(),n.push(this.parseLexicalBinding(e,t));return n},e.prototype.isLexicalDeclaration=function(){var e=this.scanner.index,t=this.scanner.lineNumber,n=this.scanner.lineStart;this.collectComments();var r=this.scanner.lex();return this.scanner.index=e,this.scanner.lineNumber=t,this.scanner.lineStart=n,r.type===a.Token.Identifier||r.type===a.Token.Punctuator&&"["===r.value||r.type===a.Token.Punctuator&&"{"===r.value||r.type===a.Token.Keyword&&"let"===r.value||r.type===a.Token.Keyword&&"yield"===r.value},e.prototype.parseLexicalDeclaration=function(e){var t=this.createNode(),n=this.nextToken().value;r.assert("let"===n||"const"===n,"Lexical declaration must be either let or const");var i=this.parseBindingList(n,e);return this.consumeSemicolon(),this.finalize(t,new c.VariableDeclaration(i,n))},e.prototype.parseBindingRestElement=function(e,t){var n=this.createNode();this.expect("...");var r=this.parsePattern(e,t);return this.finalize(n,new c.RestElement(r))},e.prototype.parseArrayPattern=function(e,t){var n=this.createNode();this.expect("[");for(var r=[];!this.match("]");)if(this.match(","))this.nextToken(),r.push(null);else{if(this.match("...")){r.push(this.parseBindingRestElement(e,t));break}r.push(this.parsePatternWithDefault(e,t)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(n,new c.ArrayPattern(r))},e.prototype.parsePropertyPattern=function(e,t){var n,r,i=this.createNode(),o=!1,s=!1,u=!1;if(this.lookahead.type===a.Token.Identifier){var l=this.lookahead;n=this.parseVariableIdentifier();var p=this.finalize(i,new c.Identifier(l.value));if(this.match("=")){e.push(l),s=!0,this.nextToken();var f=this.parseAssignmentExpression();r=this.finalize(this.startNode(l),new c.AssignmentPattern(p,f))}else this.match(":")?(this.expect(":"),r=this.parsePatternWithDefault(e,t)):(e.push(l),s=!0,r=p)}else o=this.match("["),n=this.parseObjectPropertyKey(),this.expect(":"),r=this.parsePatternWithDefault(e,t);return this.finalize(i,new c.Property("init",n,o,r,u,s))},e.prototype.parseObjectPattern=function(e,t){var n=this.createNode(),r=[];for(this.expect("{");!this.match("}");)r.push(this.parsePropertyPattern(e,t)), +this.match("}")||this.expect(",");return this.expect("}"),this.finalize(n,new c.ObjectPattern(r))},e.prototype.parsePattern=function(e,t){var n;return this.match("[")?n=this.parseArrayPattern(e,t):this.match("{")?n=this.parseObjectPattern(e,t):(!this.matchKeyword("let")||"const"!==t&&"let"!==t||this.tolerateUnexpectedToken(this.lookahead,i.Messages.UnexpectedToken),e.push(this.lookahead),n=this.parseVariableIdentifier(t)),n},e.prototype.parsePatternWithDefault=function(e,t){var n=this.lookahead,r=this.parsePattern(e,t);if(this.match("=")){this.nextToken();var i=this.context.allowYield;this.context.allowYield=!0;var o=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=i,r=this.finalize(this.startNode(n),new c.AssignmentPattern(r,o))}return r},e.prototype.parseVariableIdentifier=function(e){var t=this.createNode(),n=this.nextToken();return n.type===a.Token.Keyword&&"yield"===n.value?(this.context.strict&&this.tolerateUnexpectedToken(n,i.Messages.StrictReservedWord),this.context.allowYield||this.throwUnexpectedToken(n)):n.type!==a.Token.Identifier?this.context.strict&&n.type===a.Token.Keyword&&this.scanner.isStrictModeReservedWord(n.value)?this.tolerateUnexpectedToken(n,i.Messages.StrictReservedWord):(this.context.strict||"let"!==n.value||"var"!==e)&&this.throwUnexpectedToken(n):"module"===this.sourceType&&n.type===a.Token.Identifier&&"await"===n.value&&this.tolerateUnexpectedToken(n),this.finalize(t,new c.Identifier(n.value))},e.prototype.parseVariableDeclaration=function(e){var t=this.createNode(),n=[],r=this.parsePattern(n,"var");this.context.strict&&r.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(i.Messages.StrictVarName);var o=null;return this.match("=")?(this.nextToken(),o=this.isolateCoverGrammar(this.parseAssignmentExpression)):r.type===u.Syntax.Identifier||e.inFor||this.expect("="),this.finalize(t,new c.VariableDeclarator(r,o))},e.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor},n=[];for(n.push(this.parseVariableDeclaration(t));this.match(",");)this.nextToken(),n.push(this.parseVariableDeclaration(t));return n},e.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new c.VariableDeclaration(t,"var"))},e.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new c.EmptyStatement)},e.prototype.parseExpressionStatement=function(){var e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new c.ExpressionStatement(t))},e.prototype.parseIfStatement=function(){var e,t=this.createNode(),n=null;this.expectKeyword("if"),this.expect("(");var r=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new c.EmptyStatement)):(this.expect(")"),e=this.parseStatement(),this.matchKeyword("else")&&(this.nextToken(),n=this.parseStatement())),this.finalize(t,new c.IfStatement(r,e,n))},e.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var t=this.context.inIteration;this.context.inIteration=!0;var n=this.parseStatement();this.context.inIteration=t,this.expectKeyword("while"),this.expect("(");var r=this.parseExpression();return this.expect(")"),this.match(";")&&this.nextToken(),this.finalize(e,new c.DoWhileStatement(n,r))},e.prototype.parseWhileStatement=function(){var e,t=this.createNode();this.expectKeyword("while"),this.expect("(");var n=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new c.EmptyStatement);else{this.expect(")");var r=this.context.inIteration;this.context.inIteration=!0,e=this.parseStatement(),this.context.inIteration=r}return this.finalize(t,new c.WhileStatement(n,e))},e.prototype.parseForStatement=function(){var e,t,n=null,r=null,o=null,a=!0,s=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){n=this.createNode(),this.nextToken();var l=this.context.allowIn;this.context.allowIn=!1;var p=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=l,1===p.length&&this.matchKeyword("in")){var f=p[0];f.init&&(f.id.type===u.Syntax.ArrayPattern||f.id.type===u.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(i.Messages.ForInOfLoopInitializer,"for-in"),n=this.finalize(n,new c.VariableDeclaration(p,"var")),this.nextToken(),e=n,t=this.parseExpression(),n=null}else 1===p.length&&null===p[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new c.VariableDeclaration(p,"var")),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,a=!1):(n=this.finalize(n,new c.VariableDeclaration(p,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){n=this.createNode();var h=this.nextToken().value;if(this.context.strict||"in"!==this.lookahead.value){var l=this.context.allowIn;this.context.allowIn=!1;var p=this.parseBindingList(h,{inFor:!0});this.context.allowIn=l,1===p.length&&null===p[0].init&&this.matchKeyword("in")?(n=this.finalize(n,new c.VariableDeclaration(p,h)),this.nextToken(),e=n,t=this.parseExpression(),n=null):1===p.length&&null===p[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new c.VariableDeclaration(p,h)),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,a=!1):(this.consumeSemicolon(),n=this.finalize(n,new c.VariableDeclaration(p,h)))}else n=this.finalize(n,new c.Identifier(h)),this.nextToken(),e=n,t=this.parseExpression(),n=null}else{var d=this.lookahead,l=this.context.allowIn;if(this.context.allowIn=!1,n=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=l,this.matchKeyword("in"))this.context.isAssignmentTarget&&n.type!==u.Syntax.AssignmentExpression||this.tolerateError(i.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseExpression(),n=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&n.type!==u.Syntax.AssignmentExpression||this.tolerateError(i.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseAssignmentExpression(),n=null,a=!1;else{if(this.match(",")){for(var m=[n];this.match(",");)this.nextToken(),m.push(this.isolateCoverGrammar(this.parseAssignmentExpression));n=this.finalize(this.startNode(d),new c.SequenceExpression(m))}this.expect(";")}}"undefined"==typeof e&&(this.match(";")||(r=this.parseExpression()),this.expect(";"),this.match(")")||(o=this.parseExpression()));var v;if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),v=this.finalize(this.createNode(),new c.EmptyStatement);else{this.expect(")");var y=this.context.inIteration;this.context.inIteration=!0,v=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=y}return"undefined"==typeof e?this.finalize(s,new c.ForStatement(n,r,o,v)):a?this.finalize(s,new c.ForInStatement(e,t,v)):this.finalize(s,new c.ForOfStatement(e,t,v))},e.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var t=null;if(this.lookahead.type===a.Token.Identifier&&!this.hasLineTerminator){t=this.parseVariableIdentifier();var n="$"+t.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(i.Messages.UnknownLabel,t.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.throwError(i.Messages.IllegalContinue),this.finalize(e,new c.ContinueStatement(t))},e.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var t=null;if(this.lookahead.type===a.Token.Identifier&&!this.hasLineTerminator){t=this.parseVariableIdentifier();var n="$"+t.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(i.Messages.UnknownLabel,t.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.context.inSwitch||this.throwError(i.Messages.IllegalBreak),this.finalize(e,new c.BreakStatement(t))},e.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(i.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var t=!this.match(";")&&!this.match("}")&&!this.hasLineTerminator&&this.lookahead.type!==a.Token.EOF,n=t?this.parseExpression():null;return this.consumeSemicolon(),this.finalize(e,new c.ReturnStatement(n))},e.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(i.Messages.StrictModeWith);var e=this.createNode();this.expectKeyword("with"),this.expect("(");var t=this.parseExpression();this.expect(")");var n=this.parseStatement();return this.finalize(e,new c.WithStatement(t,n))},e.prototype.parseSwitchCase=function(){var e,t=this.createNode();this.matchKeyword("default")?(this.nextToken(),e=null):(this.expectKeyword("case"),e=this.parseExpression()),this.expect(":");for(var n=[];;){if(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"))break;n.push(this.parseStatementListItem())}return this.finalize(t,new c.SwitchCase(e,n))},e.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var t=this.parseExpression();this.expect(")");var n=this.context.inSwitch;this.context.inSwitch=!0;var r=[],o=!1;for(this.expect("{");;){if(this.match("}"))break;var a=this.parseSwitchCase();null===a.test&&(o&&this.throwError(i.Messages.MultipleDefaultsInSwitch),o=!0),r.push(a)}return this.expect("}"),this.context.inSwitch=n,this.finalize(e,new c.SwitchStatement(t,r))},e.prototype.parseLabelledStatement=function(){var e,t=this.createNode(),n=this.parseExpression();if(n.type===u.Syntax.Identifier&&this.match(":")){this.nextToken();var r=n,o="$"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,o)&&this.throwError(i.Messages.Redeclaration,"Label",r.name),this.context.labelSet[o]=!0;var a=this.parseStatement();delete this.context.labelSet[o],e=new c.LabeledStatement(r,a)}else this.consumeSemicolon(),e=new c.ExpressionStatement(n);return this.finalize(t,e)},e.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(i.Messages.NewlineAfterThrow);var t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new c.ThrowStatement(t))},e.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var t=[],n=this.parsePattern(t),r={},o=0;o<t.length;o++){var a="$"+t[o].value;Object.prototype.hasOwnProperty.call(r,a)&&this.tolerateError(i.Messages.DuplicateBinding,t[o].value),r[a]=!0}this.context.strict&&n.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(n.name)&&this.tolerateError(i.Messages.StrictCatchVariable),this.expect(")");var s=this.parseBlock();return this.finalize(e,new c.CatchClause(n,s))},e.prototype.parseFinallyClause=function(){return this.expectKeyword("finally"),this.parseBlock()},e.prototype.parseTryStatement=function(){var e=this.createNode();this.expectKeyword("try");var t=this.parseBlock(),n=this.matchKeyword("catch")?this.parseCatchClause():null,r=this.matchKeyword("finally")?this.parseFinallyClause():null;return n||r||this.throwError(i.Messages.NoCatchOrFinally),this.finalize(e,new c.TryStatement(t,n,r))},e.prototype.parseDebuggerStatement=function(){var e=this.createNode();return this.expectKeyword("debugger"),this.consumeSemicolon(),this.finalize(e,new c.DebuggerStatement)},e.prototype.parseStatement=function(){var e=null;switch(this.lookahead.type){case a.Token.BooleanLiteral:case a.Token.NullLiteral:case a.Token.NumericLiteral:case a.Token.StringLiteral:case a.Token.Template:case a.Token.RegularExpression:e=this.parseExpressionStatement();break;case a.Token.Punctuator:var t=this.lookahead.value;e="{"===t?this.parseBlock():"("===t?this.parseExpressionStatement():";"===t?this.parseEmptyStatement():this.parseExpressionStatement();break;case a.Token.Identifier:e=this.parseLabelledStatement();break;case a.Token.Keyword:switch(this.lookahead.value){case"break":e=this.parseBreakStatement();break;case"continue":e=this.parseContinueStatement();break;case"debugger":e=this.parseDebuggerStatement();break;case"do":e=this.parseDoWhileStatement();break;case"for":e=this.parseForStatement();break;case"function":e=this.parseFunctionDeclaration();break;case"if":e=this.parseIfStatement();break;case"return":e=this.parseReturnStatement();break;case"switch":e=this.parseSwitchStatement();break;case"throw":e=this.parseThrowStatement();break;case"try":e=this.parseTryStatement();break;case"var":e=this.parseVariableStatement();break;case"while":e=this.parseWhileStatement();break;case"with":e=this.parseWithStatement();break;default:e=this.parseExpressionStatement()}break;default:this.throwUnexpectedToken(this.lookahead)}return e},e.prototype.parseFunctionSourceElements=function(){var e=this.createNode();this.expect("{");var t=this.parseDirectivePrologues(),n=this.context.labelSet,r=this.context.inIteration,i=this.context.inSwitch,o=this.context.inFunctionBody;for(this.context.labelSet={},this.context.inIteration=!1,this.context.inSwitch=!1,this.context.inFunctionBody=!0;this.startMarker.index<this.scanner.length&&!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.context.labelSet=n,this.context.inIteration=r,this.context.inSwitch=i,this.context.inFunctionBody=o,this.finalize(e,new c.BlockStatement(t))},e.prototype.validateParam=function(e,t,n){var r="$"+n;this.context.strict?(this.scanner.isRestrictedWord(n)&&(e.stricted=t,e.message=i.Messages.StrictParamName),Object.prototype.hasOwnProperty.call(e.paramSet,r)&&(e.stricted=t,e.message=i.Messages.StrictParamDupe)):e.firstRestricted||(this.scanner.isRestrictedWord(n)?(e.firstRestricted=t,e.message=i.Messages.StrictParamName):this.scanner.isStrictModeReservedWord(n)?(e.firstRestricted=t,e.message=i.Messages.StrictReservedWord):Object.prototype.hasOwnProperty.call(e.paramSet,r)&&(e.stricted=t,e.message=i.Messages.StrictParamDupe)),"function"==typeof Object.defineProperty?Object.defineProperty(e.paramSet,r,{value:!0,enumerable:!0,writable:!0,configurable:!0}):e.paramSet[r]=!0},e.prototype.parseRestElement=function(e){var t=this.createNode();this.expect("...");var n=this.parsePattern(e);return this.match("=")&&this.throwError(i.Messages.DefaultRestParameter),this.match(")")||this.throwError(i.Messages.ParameterAfterRestParameter),this.finalize(t,new c.RestElement(n))},e.prototype.parseFormalParameter=function(e){for(var t=[],n=this.match("...")?this.parseRestElement(t):this.parsePatternWithDefault(t),r=0;r<t.length;r++)this.validateParam(e,t[r],t[r].value);return e.params.push(n),!this.match(")")},e.prototype.parseFormalParameters=function(e){var t;if(t={params:[],firstRestricted:e},this.expect("("),!this.match(")"))for(t.paramSet={};this.startMarker.index<this.scanner.length&&this.parseFormalParameter(t);)this.expect(",");return this.expect(")"),{params:t.params,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.parseFunctionDeclaration=function(e){var t=this.createNode();this.expectKeyword("function");var n=this.match("*");n&&this.nextToken();var r,o=null,a=null;if(!e||!this.match("(")){var s=this.lookahead;o=this.parseVariableIdentifier(),this.context.strict?this.scanner.isRestrictedWord(s.value)&&this.tolerateUnexpectedToken(s,i.Messages.StrictFunctionName):this.scanner.isRestrictedWord(s.value)?(a=s,r=i.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(s.value)&&(a=s,r=i.Messages.StrictReservedWord)}var u=this.context.allowYield;this.context.allowYield=!n;var l=this.parseFormalParameters(a),p=l.params,f=l.stricted;a=l.firstRestricted,l.message&&(r=l.message);var h=this.context.strict,d=this.parseFunctionSourceElements();return this.context.strict&&a&&this.throwUnexpectedToken(a,r),this.context.strict&&f&&this.tolerateUnexpectedToken(f,r),this.context.strict=h,this.context.allowYield=u,this.finalize(t,new c.FunctionDeclaration(o,p,d,n))},e.prototype.parseFunctionExpression=function(){var e=this.createNode();this.expectKeyword("function");var t=this.match("*");t&&this.nextToken();var n,r,o=null,a=this.context.allowYield;if(this.context.allowYield=!t,!this.match("(")){var s=this.lookahead;o=this.context.strict||t||!this.matchKeyword("yield")?this.parseVariableIdentifier():this.parseIdentifierName(),this.context.strict?this.scanner.isRestrictedWord(s.value)&&this.tolerateUnexpectedToken(s,i.Messages.StrictFunctionName):this.scanner.isRestrictedWord(s.value)?(r=s,n=i.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(s.value)&&(r=s,n=i.Messages.StrictReservedWord)}var u=this.parseFormalParameters(r),l=u.params,p=u.stricted;r=u.firstRestricted,u.message&&(n=u.message);var f=this.context.strict,h=this.parseFunctionSourceElements();return this.context.strict&&r&&this.throwUnexpectedToken(r,n),this.context.strict&&p&&this.tolerateUnexpectedToken(p,n),this.context.strict=f,this.context.allowYield=a,this.finalize(e,new c.FunctionExpression(o,l,h,t))},e.prototype.parseDirective=function(){var e=this.lookahead,t=null,n=this.createNode(),r=this.parseExpression();return r.type===u.Syntax.Literal&&(t=this.getTokenRaw(e).slice(1,-1)),this.consumeSemicolon(),this.finalize(n,t?new c.Directive(r,t):new c.ExpressionStatement(r))},e.prototype.parseDirectivePrologues=function(){for(var e=null,t=[];;){var n=this.lookahead;if(n.type!==a.Token.StringLiteral)break;var r=this.parseDirective();t.push(r);var o=r.directive;if("string"!=typeof o)break;"use strict"===o?(this.context.strict=!0,e&&this.tolerateUnexpectedToken(e,i.Messages.StrictOctalLiteral)):!e&&n.octal&&(e=n)}return t},e.prototype.qualifiedPropertyName=function(e){switch(e.type){case a.Token.Identifier:case a.Token.StringLiteral:case a.Token.BooleanLiteral:case a.Token.NullLiteral:case a.Token.NumericLiteral:case a.Token.Keyword:return!0;case a.Token.Punctuator:return"["===e.value}return!1},e.prototype.parseGetterMethod=function(){var e=this.createNode();this.expect("("),this.expect(")");var t=!1,n={params:[],stricted:null,firstRestricted:null,message:null},r=this.context.allowYield;this.context.allowYield=!1;var i=this.parsePropertyMethod(n);return this.context.allowYield=r,this.finalize(e,new c.FunctionExpression(null,n.params,i,t))},e.prototype.parseSetterMethod=function(){var e=this.createNode(),t={params:[],firstRestricted:null,paramSet:{}},n=!1,r=this.context.allowYield;this.context.allowYield=!1,this.expect("("),this.match(")")?this.tolerateUnexpectedToken(this.lookahead):this.parseFormalParameter(t),this.expect(")");var i=this.parsePropertyMethod(t);return this.context.allowYield=r,this.finalize(e,new c.FunctionExpression(null,t.params,i,n))},e.prototype.parseGeneratorMethod=function(){var e=this.createNode(),t=!0,n=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();this.context.allowYield=!1;var i=this.parsePropertyMethod(r);return this.context.allowYield=n,this.finalize(e,new c.FunctionExpression(null,r.params,i,t))},e.prototype.isStartOfExpression=function(){var e=!0,t=this.lookahead.value;switch(this.lookahead.type){case a.Token.Punctuator:e="["===t||"("===t||"{"===t||"+"===t||"-"===t||"!"===t||"~"===t||"++"===t||"--"===t||"/"===t||"/="===t;break;case a.Token.Keyword:e="class"===t||"delete"===t||"function"===t||"let"===t||"new"===t||"super"===t||"this"===t||"typeof"===t||"void"===t||"yield"===t}return e},e.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var t=null,n=!1;if(!this.hasLineTerminator){var r=this.context.allowYield;this.context.allowYield=!1,n=this.match("*"),n?(this.nextToken(),t=this.parseAssignmentExpression()):this.isStartOfExpression()&&(t=this.parseAssignmentExpression()),this.context.allowYield=r}return this.finalize(e,new c.YieldExpression(t,n))},e.prototype.parseClassElement=function(e){var t,n,r,o=this.lookahead,s=this.createNode(),u=!1,l=!1,p=!1;if(this.match("*"))this.nextToken();else{u=this.match("["),n=this.parseObjectPropertyKey();var f=n;"static"===f.name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(o=this.lookahead,p=!0,u=this.match("["),this.match("*")?this.nextToken():n=this.parseObjectPropertyKey())}var h=this.qualifiedPropertyName(this.lookahead);return o.type===a.Token.Identifier?"get"===o.value&&h?(t="get",u=this.match("["),n=this.parseObjectPropertyKey(),this.context.allowYield=!1,r=this.parseGetterMethod()):"set"===o.value&&h&&(t="set",u=this.match("["),n=this.parseObjectPropertyKey(),r=this.parseSetterMethod()):o.type===a.Token.Punctuator&&"*"===o.value&&h&&(t="init",u=this.match("["),n=this.parseObjectPropertyKey(),r=this.parseGeneratorMethod(),l=!0),!t&&n&&this.match("(")&&(t="init",r=this.parsePropertyMethodFunction(),l=!0),t||this.throwUnexpectedToken(this.lookahead),"init"===t&&(t="method"),u||(p&&this.isPropertyKey(n,"prototype")&&this.throwUnexpectedToken(o,i.Messages.StaticPrototype),!p&&this.isPropertyKey(n,"constructor")&&("method"===t&&l&&!r.generator||this.throwUnexpectedToken(o,i.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(o,i.Messages.DuplicateConstructor):e.value=!0,t="constructor")),this.finalize(s,new c.MethodDefinition(n,u,r,t,p))},e.prototype.parseClassElementList=function(){var e=[],t={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(t));return this.expect("}"),e},e.prototype.parseClassBody=function(){var e=this.createNode(),t=this.parseClassElementList();return this.finalize(e,new c.ClassBody(t))},e.prototype.parseClassDeclaration=function(e){var t=this.createNode(),n=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var r=e&&this.lookahead.type!==a.Token.Identifier?null:this.parseVariableIdentifier(),i=null;this.matchKeyword("extends")&&(this.nextToken(),i=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var o=this.parseClassBody();return this.context.strict=n,this.finalize(t,new c.ClassDeclaration(r,i,o))},e.prototype.parseClassExpression=function(){var e=this.createNode(),t=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var n=this.lookahead.type===a.Token.Identifier?this.parseVariableIdentifier():null,r=null;this.matchKeyword("extends")&&(this.nextToken(),r=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var i=this.parseClassBody();return this.context.strict=t,this.finalize(e,new c.ClassExpression(n,r,i))},e.prototype.parseProgram=function(){for(var e=this.createNode(),t=this.parseDirectivePrologues();this.startMarker.index<this.scanner.length;)t.push(this.parseStatementListItem());return this.finalize(e,new c.Program(t,this.sourceType))},e.prototype.parseModuleSpecifier=function(){var e=this.createNode();this.lookahead.type!==a.Token.StringLiteral&&this.throwError(i.Messages.InvalidModuleSpecifier);var t=this.nextToken(),n=this.getTokenRaw(t);return this.finalize(e,new c.Literal(t.value,n))},e.prototype.parseImportSpecifier=function(){var e,t,n=this.createNode();return this.lookahead.type===a.Token.Identifier?(e=this.parseVariableIdentifier(),t=e,this.matchContextualKeyword("as")&&(this.nextToken(),t=this.parseVariableIdentifier())):(e=this.parseIdentifierName(),t=e,this.matchContextualKeyword("as")?(this.nextToken(),t=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(n,new c.ImportSpecifier(t,e))},e.prototype.parseNamedImports=function(){this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e},e.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName();return this.finalize(e,new c.ImportDefaultSpecifier(t))},e.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(i.Messages.NoAsAfterImportNamespace),this.nextToken();var t=this.parseIdentifierName();return this.finalize(e,new c.ImportNamespaceSpecifier(t))},e.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(i.Messages.IllegalImportDeclaration);var e=this.createNode();this.expectKeyword("import");var t,n=[];if(this.lookahead.type===a.Token.StringLiteral)t=this.parseModuleSpecifier();else{if(this.match("{")?n=n.concat(this.parseNamedImports()):this.match("*")?n.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(n.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?n.push(this.parseImportNamespaceSpecifier()):this.match("{")?n=n.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var r=this.lookahead.value?i.Messages.UnexpectedToken:i.Messages.MissingFromClause;this.throwError(r,this.lookahead.value)}this.nextToken(),t=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(e,new c.ImportDeclaration(n,t))},e.prototype.parseExportSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName(),n=t;return this.matchContextualKeyword("as")&&(this.nextToken(),n=this.parseIdentifierName()),this.finalize(e,new c.ExportSpecifier(t,n))},e.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(i.Messages.IllegalExportDeclaration);var e=this.createNode();this.expectKeyword("export");var t;if(this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var n=this.parseFunctionDeclaration(!0);t=this.finalize(e,new c.ExportDefaultDeclaration(n))}else if(this.matchKeyword("class")){var n=this.parseClassDeclaration(!0);t=this.finalize(e,new c.ExportDefaultDeclaration(n))}else{this.matchContextualKeyword("from")&&this.throwError(i.Messages.UnexpectedToken,this.lookahead.value);var n=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression();this.consumeSemicolon(),t=this.finalize(e,new c.ExportDefaultDeclaration(n))}else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var r=this.lookahead.value?i.Messages.UnexpectedToken:i.Messages.MissingFromClause;this.throwError(r,this.lookahead.value)}this.nextToken();var o=this.parseModuleSpecifier();this.consumeSemicolon(),t=this.finalize(e,new c.ExportAllDeclaration(o))}else if(this.lookahead.type===a.Token.Keyword){var n=void 0;switch(this.lookahead.value){case"let":case"const":n=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":n=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}t=this.finalize(e,new c.ExportNamedDeclaration(n,[],null))}else{var s=[],u=null,l=!1;for(this.expect("{");!this.match("}");)l=l||this.matchKeyword("default"),s.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");if(this.expect("}"),this.matchContextualKeyword("from"))this.nextToken(),u=this.parseModuleSpecifier(),this.consumeSemicolon();else if(l){var r=this.lookahead.value?i.Messages.UnexpectedToken:i.Messages.MissingFromClause;this.throwError(r,this.lookahead.value)}else this.consumeSemicolon();t=this.finalize(e,new c.ExportNamedDeclaration(null,s,u))}return t},e}();t.Parser=p},function(e,t){"use strict";function n(e,t){if(!e)throw new Error("ASSERT: "+t)}t.assert=n},function(e,t){"use strict";t.Messages={UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",DefaultRestParameter:"Unexpected token =",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ConstructorSpecialMethod:"Class constructor may not be an accessor",DuplicateConstructor:"A class may only have one constructor",StaticPrototype:"Classes may not have static property named prototype",MissingFromClause:"Unexpected token",NoAsAfterImportNamespace:"Unexpected token",InvalidModuleSpecifier:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalExportDeclaration:"Unexpected token",DuplicateBinding:"Duplicate binding %0",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer"}},function(e,t){"use strict";var n=function(){function e(){this.errors=[],this.tolerant=!1}return e.prototype.recordError=function(e){this.errors.push(e)},e.prototype.tolerate=function(e){if(!this.tolerant)throw e;this.recordError(e)},e.prototype.constructError=function(e,t){var n=new Error(e);try{throw n}catch(e){Object.create&&Object.defineProperty&&(n=Object.create(e),Object.defineProperty(n,"column",{value:t}))}finally{return n}},e.prototype.createError=function(e,t,n,r){var i="Line "+t+": "+r,o=this.constructError(i,n);return o.index=e,o.lineNumber=t,o.description=r,o},e.prototype.throwError=function(e,t,n,r){throw this.createError(e,t,n,r)},e.prototype.tolerateError=function(e,t,n,r){var i=this.createError(e,t,n,r);if(!this.tolerant)throw i;this.recordError(i)},e}();t.ErrorHandler=n},function(e,t){"use strict";!function(e){e[e.BooleanLiteral=1]="BooleanLiteral",e[e.EOF=2]="EOF",e[e.Identifier=3]="Identifier",e[e.Keyword=4]="Keyword",e[e.NullLiteral=5]="NullLiteral",e[e.NumericLiteral=6]="NumericLiteral",e[e.Punctuator=7]="Punctuator",e[e.StringLiteral=8]="StringLiteral",e[e.RegularExpression=9]="RegularExpression",e[e.Template=10]="Template"}(t.Token||(t.Token={}));var n=t.Token;t.TokenName={},t.TokenName[n.BooleanLiteral]="Boolean",t.TokenName[n.EOF]="<end>",t.TokenName[n.Identifier]="Identifier",t.TokenName[n.Keyword]="Keyword",t.TokenName[n.NullLiteral]="Null",t.TokenName[n.NumericLiteral]="Numeric", +t.TokenName[n.Punctuator]="Punctuator",t.TokenName[n.StringLiteral]="String",t.TokenName[n.RegularExpression]="RegularExpression",t.TokenName[n.Template]="Template"},function(e,t,n){"use strict";function r(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function i(e){return"01234567".indexOf(e)}var o=n(4),a=n(5),s=n(9),u=n(7),c=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){void 0===e&&(e=a.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(){this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,a.Messages.UnexpectedTokenIllegal)},e.prototype.skipSingleLineComment=function(e){var t,n,r;for(this.trackComment&&(t=[],n=this.index-e,r={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var i=this.source.charCodeAt(this.index);if(++this.index,s.Character.isLineTerminator(i)){if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart-1};var o={multiLine:!1,slice:[n+e,this.index-1],range:[n,this.index-1],loc:r};t.push(o)}return 13===i&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t}}if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart};var o={multiLine:!1,slice:[n+e,this.index],range:[n,this.index],loc:r};t.push(o)}return t},e.prototype.skipMultiLineComment=function(){var e,t,n;for(this.trackComment&&(e=[],t=this.index-2,n={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var r=this.source.charCodeAt(this.index);if(s.Character.isLineTerminator(r))13===r&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===r){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart};var i={multiLine:!0,slice:[t+2,this.index-2],range:[t,this.index],loc:n};e.push(i)}return e}++this.index}else++this.index}if(this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart};var i={multiLine:!0,slice:[t+2,this.index],range:[t,this.index],loc:n};e.push(i)}return this.tolerateUnexpectedToken(),e},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var n=this.source.charCodeAt(this.index);if(s.Character.isWhiteSpace(n))++this.index;else if(s.Character.isLineTerminator(n))++this.index,13===n&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===n)if(n=this.source.charCodeAt(this.index+1),47===n){this.index+=2;var r=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(r)),t=!0}else{if(42!==n)break;this.index+=2;var r=this.skipMultiLineComment();this.trackComment&&(e=e.concat(r))}else if(t&&45===n){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3;var r=this.skipSingleLineComment(3);this.trackComment&&(e=e.concat(r))}else{if(60!==n)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4;var r=this.skipSingleLineComment(4);this.trackComment&&(e=e.concat(r))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var n=this.source.charCodeAt(e+1);if(n>=56320&&n<=57343){var r=t;t=1024*(r-55296)+n-56320+65536}}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,n=0,i=0;i<t;++i){if(this.eof()||!s.Character.isHexDigit(this.source.charCodeAt(this.index)))return"";n=16*n+r(this.source[this.index++])}return String.fromCharCode(n)},e.prototype.scanUnicodeCodePointEscape=function(){var e=this.source[this.index],t=0;for("}"===e&&this.throwUnexpectedToken();!this.eof()&&(e=this.source[this.index++],s.Character.isHexDigit(e.charCodeAt(0)));)t=16*t+r(e);return(t>1114111||"}"!==e)&&this.throwUnexpectedToken(),s.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!s.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e=this.codePointAt(this.index),t=s.Character.fromCodePoint(e);this.index+=t.length;var n;for(92===e&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,n=this.scanUnicodeCodePointEscape()):(n=this.scanHexEscape("u"),e=n.charCodeAt(0),n&&"\\"!==n&&s.Character.isIdentifierStart(e)||this.throwUnexpectedToken()),t=n);!this.eof()&&(e=this.codePointAt(this.index),s.Character.isIdentifierPart(e));)n=s.Character.fromCodePoint(e),t+=n,this.index+=n.length,92===e&&(t=t.substr(0,t.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,n=this.scanUnicodeCodePointEscape()):(n=this.scanHexEscape("u"),e=n.charCodeAt(0),n&&"\\"!==n&&s.Character.isIdentifierPart(e)||this.throwUnexpectedToken()),t+=n);return t},e.prototype.octalToDecimal=function(e){var t="0"!==e,n=i(e);return!this.eof()&&s.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,n=8*n+i(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&s.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(n=8*n+i(this.source[this.index++]))),{code:n,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,n=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();return e=1===n.length?u.Token.Identifier:this.isKeyword(n)?u.Token.Keyword:"null"===n?u.Token.NullLiteral:"true"===n||"false"===n?u.Token.BooleanLiteral:u.Token.Identifier,{type:e,value:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e={type:u.Token.Punctuator,value:"",lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index},t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:t=this.source.substr(this.index,4),">>>="===t?this.index+=4:(t=t.substr(0,3),"==="===t||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:(t=t.substr(0,2),"&&"===t||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)))}return this.index===e.start&&this.throwUnexpectedToken(),e.end=this.index,e.value=t,e},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&s.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),s.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,n="";!this.eof()&&(t=this.source[this.index],"0"===t||"1"===t);)n+=this.source[this.index++];return 0===n.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(s.Character.isIdentifierStart(t)||s.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:u.Token.NumericLiteral,value:parseInt(n,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var n="",r=!1;for(s.Character.isOctalDigit(e.charCodeAt(0))?(r=!0,n="0"+this.source[this.index++]):++this.index;!this.eof()&&s.Character.isOctalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];return r||0!==n.length||this.throwUnexpectedToken(),(s.Character.isIdentifierStart(this.source.charCodeAt(this.index))||s.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseInt(n,8),octal:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e<this.length;++e){var t=this.source[e];if("8"===t||"9"===t)return!1;if(!s.Character.isOctalDigit(t.charCodeAt(0)))return!0}return!0},e.prototype.scanNumericLiteral=function(){var e=this.index,t=this.source[e];o.assert(s.Character.isDecimalDigit(t.charCodeAt(0))||"."===t,"Numeric literal must start with a decimal digit or a decimal point");var n="";if("."!==t){if(n=this.source[this.index++],t=this.source[this.index],"0"===n){if("x"===t||"X"===t)return++this.index,this.scanHexLiteral(e);if("b"===t||"B"===t)return++this.index,this.scanBinaryLiteral(e);if("o"===t||"O"===t)return this.scanOctalLiteral(t,e);if(t&&s.Character.isOctalDigit(t.charCodeAt(0))&&this.isImplicitOctalLiteral())return this.scanOctalLiteral(t,e)}for(;s.Character.isDecimalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];t=this.source[this.index]}if("."===t){for(n+=this.source[this.index++];s.Character.isDecimalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];t=this.source[this.index]}if("e"===t||"E"===t)if(n+=this.source[this.index++],t=this.source[this.index],"+"!==t&&"-"!==t||(n+=this.source[this.index++]),s.Character.isDecimalDigit(this.source.charCodeAt(this.index)))for(;s.Character.isDecimalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];else this.throwUnexpectedToken();return s.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseFloat(n),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanStringLiteral=function(){var e=this.index,t=this.source[e];o.assert("'"===t||'"'===t,"String literal must starts with a quote"),++this.index;for(var n=!1,r="";!this.eof();){var i=this.source[this.index++];if(i===t){t="";break}if("\\"===i)if(i=this.source[this.index++],i&&s.Character.isLineTerminator(i.charCodeAt(0)))++this.lineNumber,"\r"===i&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(i){case"u":case"x":if("{"===this.source[this.index])++this.index,r+=this.scanUnicodeCodePointEscape();else{var a=this.scanHexEscape(i);a||this.throwUnexpectedToken(),r+=a}break;case"n":r+="\n";break;case"r":r+="\r";break;case"t":r+="\t";break;case"b":r+="\b";break;case"f":r+="\f";break;case"v":r+="\v";break;case"8":case"9":r+=i,this.tolerateUnexpectedToken();break;default:if(i&&s.Character.isOctalDigit(i.charCodeAt(0))){var c=this.octalToDecimal(i);n=c.octal||n,r+=String.fromCharCode(c.code)}else r+=i}else{if(s.Character.isLineTerminator(i.charCodeAt(0)))break;r+=i}}return""!==t&&(this.index=e,this.throwUnexpectedToken()),{type:u.Token.StringLiteral,value:r,octal:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanTemplate=function(){var e="",t=!1,n=this.index,r="`"===this.source[n],i=!1,o=2;for(++this.index;!this.eof();){var c=this.source[this.index++];if("`"===c){o=1,i=!0,t=!0;break}if("$"===c){if("{"===this.source[this.index]){this.curlyStack.push("${"),++this.index,t=!0;break}e+=c}else if("\\"===c)if(c=this.source[this.index++],s.Character.isLineTerminator(c.charCodeAt(0)))++this.lineNumber,"\r"===c&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(c){case"n":e+="\n";break;case"r":e+="\r";break;case"t":e+="\t";break;case"u":case"x":if("{"===this.source[this.index])++this.index,e+=this.scanUnicodeCodePointEscape();else{var l=this.index,p=this.scanHexEscape(c);p?e+=p:(this.index=l,e+=c)}break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:"0"===c?(s.Character.isDecimalDigit(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(a.Messages.TemplateOctalLiteral),e+="\0"):s.Character.isOctalDigit(c.charCodeAt(0))?this.throwUnexpectedToken(a.Messages.TemplateOctalLiteral):e+=c}else s.Character.isLineTerminator(c.charCodeAt(0))?(++this.lineNumber,"\r"===c&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index,e+="\n"):e+=c}return t||this.throwUnexpectedToken(),r||this.curlyStack.pop(),{type:u.Token.Template,value:{cooked:e,raw:this.source.slice(n+1,this.index-o)},head:r,tail:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:n,end:this.index}},e.prototype.testRegExp=function(e,t){var n="￿",r=e,i=this;t.indexOf("u")>=0&&(r=r.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,function(e,t,r){var o=parseInt(t||r,16);return o>1114111&&i.throwUnexpectedToken(a.Messages.InvalidRegExp),o<=65535?String.fromCharCode(o):n}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,n));try{RegExp(r)}catch(e){this.throwUnexpectedToken(a.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(e){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];o.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],n=!1,r=!1;!this.eof();)if(e=this.source[this.index++],t+=e,"\\"===e)e=this.source[this.index++],s.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(a.Messages.UnterminatedRegExp),t+=e;else if(s.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(a.Messages.UnterminatedRegExp);else if(n)"]"===e&&(n=!1);else{if("/"===e){r=!0;break}"["===e&&(n=!0)}r||this.throwUnexpectedToken(a.Messages.UnterminatedRegExp);var i=t.substr(1,t.length-2);return{value:i,literal:t}},e.prototype.scanRegExpFlags=function(){for(var e="",t="";!this.eof();){var n=this.source[this.index];if(!s.Character.isIdentifierPart(n.charCodeAt(0)))break;if(++this.index,"\\"!==n||this.eof())t+=n,e+=n;else if(n=this.source[this.index],"u"===n){++this.index;var r=this.index;if(n=this.scanHexEscape("u"))for(t+=n,e+="\\u";r<this.index;++r)e+=this.source[r];else this.index=r,t+="u",e+="\\u";this.tolerateUnexpectedToken()}else e+="\\",this.tolerateUnexpectedToken()}return{value:t,literal:e}},e.prototype.scanRegExp=function(){var e=this.index,t=this.scanRegExpBody(),n=this.scanRegExpFlags(),r=this.testRegExp(t.value,n.value);return{type:u.Token.RegularExpression,value:r,literal:t.literal+n.literal,regex:{pattern:t.value,flags:n.value},lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.lex=function(){if(this.eof())return{type:u.Token.EOF,lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index};var e=this.source.charCodeAt(this.index);return s.Character.isIdentifierStart(e)?this.scanIdentifier():40===e||41===e||59===e?this.scanPunctuator():39===e||34===e?this.scanStringLiteral():46===e?s.Character.isDecimalDigit(this.source.charCodeAt(this.index+1))?this.scanNumericLiteral():this.scanPunctuator():s.Character.isDecimalDigit(e)?this.scanNumericLiteral():96===e||125===e&&"${"===this.curlyStack[this.curlyStack.length-1]?this.scanTemplate():e>=55296&&e<57343&&s.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=c},function(e,t){"use strict";var n={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){ +return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&n.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&n.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,n){"use strict";var r=n(2),i=function(){function e(e){this.type=r.Syntax.ArrayExpression,this.elements=e}return e}();t.ArrayExpression=i;var o=function(){function e(e){this.type=r.Syntax.ArrayPattern,this.elements=e}return e}();t.ArrayPattern=o;var a=function(){function e(e,t,n){this.type=r.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=n}return e}();t.ArrowFunctionExpression=a;var s=function(){function e(e,t,n){this.type=r.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=n}return e}();t.AssignmentExpression=s;var u=function(){function e(e,t){this.type=r.Syntax.AssignmentPattern,this.left=e,this.right=t}return e}();t.AssignmentPattern=u;var c=function(){function e(e,t,n){var i="||"===e||"&&"===e;this.type=i?r.Syntax.LogicalExpression:r.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=n}return e}();t.BinaryExpression=c;var l=function(){function e(e){this.type=r.Syntax.BlockStatement,this.body=e}return e}();t.BlockStatement=l;var p=function(){function e(e){this.type=r.Syntax.BreakStatement,this.label=e}return e}();t.BreakStatement=p;var f=function(){function e(e,t){this.type=r.Syntax.CallExpression,this.callee=e,this.arguments=t}return e}();t.CallExpression=f;var h=function(){function e(e,t){this.type=r.Syntax.CatchClause,this.param=e,this.body=t}return e}();t.CatchClause=h;var d=function(){function e(e){this.type=r.Syntax.ClassBody,this.body=e}return e}();t.ClassBody=d;var m=function(){function e(e,t,n){this.type=r.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=n}return e}();t.ClassDeclaration=m;var v=function(){function e(e,t,n){this.type=r.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=n}return e}();t.ClassExpression=v;var y=function(){function e(e,t){this.type=r.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t}return e}();t.ComputedMemberExpression=y;var g=function(){function e(e,t,n){this.type=r.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=n}return e}();t.ConditionalExpression=g;var _=function(){function e(e){this.type=r.Syntax.ContinueStatement,this.label=e}return e}();t.ContinueStatement=_;var b=function(){function e(){this.type=r.Syntax.DebuggerStatement}return e}();t.DebuggerStatement=b;var x=function(){function e(e,t){this.type=r.Syntax.ExpressionStatement,this.expression=e,this.directive=t}return e}();t.Directive=x;var w=function(){function e(e,t){this.type=r.Syntax.DoWhileStatement,this.body=e,this.test=t}return e}();t.DoWhileStatement=w;var k=function(){function e(){this.type=r.Syntax.EmptyStatement}return e}();t.EmptyStatement=k;var S=function(){function e(e){this.type=r.Syntax.ExportAllDeclaration,this.source=e}return e}();t.ExportAllDeclaration=S;var E=function(){function e(e){this.type=r.Syntax.ExportDefaultDeclaration,this.declaration=e}return e}();t.ExportDefaultDeclaration=E;var C=function(){function e(e,t,n){this.type=r.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=n}return e}();t.ExportNamedDeclaration=C;var A=function(){function e(e,t){this.type=r.Syntax.ExportSpecifier,this.exported=t,this.local=e}return e}();t.ExportSpecifier=A;var T=function(){function e(e){this.type=r.Syntax.ExpressionStatement,this.expression=e}return e}();t.ExpressionStatement=T;var D=function(){function e(e,t,n){this.type=r.Syntax.ForInStatement,this.left=e,this.right=t,this.body=n,this.each=!1}return e}();t.ForInStatement=D;var M=function(){function e(e,t,n){this.type=r.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=n}return e}();t.ForOfStatement=M;var O=function(){function e(e,t,n,i){this.type=r.Syntax.ForStatement,this.init=e,this.test=t,this.update=n,this.body=i}return e}();t.ForStatement=O;var P=function(){function e(e,t,n,i){this.type=r.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=n,this.generator=i,this.expression=!1}return e}();t.FunctionDeclaration=P;var I=function(){function e(e,t,n,i){this.type=r.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=n,this.generator=i,this.expression=!1}return e}();t.FunctionExpression=I;var N=function(){function e(e){this.type=r.Syntax.Identifier,this.name=e}return e}();t.Identifier=N;var R=function(){function e(e,t,n){this.type=r.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=n}return e}();t.IfStatement=R;var j=function(){function e(e,t){this.type=r.Syntax.ImportDeclaration,this.specifiers=e,this.source=t}return e}();t.ImportDeclaration=j;var F=function(){function e(e){this.type=r.Syntax.ImportDefaultSpecifier,this.local=e}return e}();t.ImportDefaultSpecifier=F;var B=function(){function e(e){this.type=r.Syntax.ImportNamespaceSpecifier,this.local=e}return e}();t.ImportNamespaceSpecifier=B;var L=function(){function e(e,t){this.type=r.Syntax.ImportSpecifier,this.local=e,this.imported=t}return e}();t.ImportSpecifier=L;var z=function(){function e(e,t){this.type=r.Syntax.LabeledStatement,this.label=e,this.body=t}return e}();t.LabeledStatement=z;var q=function(){function e(e,t){this.type=r.Syntax.Literal,this.value=e,this.raw=t}return e}();t.Literal=q;var U=function(){function e(e,t){this.type=r.Syntax.MetaProperty,this.meta=e,this.property=t}return e}();t.MetaProperty=U;var W=function(){function e(e,t,n,i,o){this.type=r.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=n,this.kind=i,this.static=o}return e}();t.MethodDefinition=W;var K=function(){function e(e,t){this.type=r.Syntax.NewExpression,this.callee=e,this.arguments=t}return e}();t.NewExpression=K;var V=function(){function e(e){this.type=r.Syntax.ObjectExpression,this.properties=e}return e}();t.ObjectExpression=V;var H=function(){function e(e){this.type=r.Syntax.ObjectPattern,this.properties=e}return e}();t.ObjectPattern=H;var J=function(){function e(e,t){this.type=r.Syntax.Program,this.body=e,this.sourceType=t}return e}();t.Program=J;var G=function(){function e(e,t,n,i,o,a){this.type=r.Syntax.Property,this.key=t,this.computed=n,this.value=i,this.kind=e,this.method=o,this.shorthand=a}return e}();t.Property=G;var X=function(){function e(e,t,n){this.type=r.Syntax.Literal,this.value=e,this.raw=t,this.regex=n}return e}();t.RegexLiteral=X;var Y=function(){function e(e){this.type=r.Syntax.RestElement,this.argument=e}return e}();t.RestElement=Y;var $=function(){function e(e){this.type=r.Syntax.ReturnStatement,this.argument=e}return e}();t.ReturnStatement=$;var Z=function(){function e(e){this.type=r.Syntax.SequenceExpression,this.expressions=e}return e}();t.SequenceExpression=Z;var Q=function(){function e(e){this.type=r.Syntax.SpreadElement,this.argument=e}return e}();t.SpreadElement=Q;var ee=function(){function e(e,t){this.type=r.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t}return e}();t.StaticMemberExpression=ee;var te=function(){function e(){this.type=r.Syntax.Super}return e}();t.Super=te;var ne=function(){function e(e,t){this.type=r.Syntax.SwitchCase,this.test=e,this.consequent=t}return e}();t.SwitchCase=ne;var re=function(){function e(e,t){this.type=r.Syntax.SwitchStatement,this.discriminant=e,this.cases=t}return e}();t.SwitchStatement=re;var ie=function(){function e(e,t){this.type=r.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t}return e}();t.TaggedTemplateExpression=ie;var oe=function(){function e(e,t){this.type=r.Syntax.TemplateElement,this.value=e,this.tail=t}return e}();t.TemplateElement=oe;var ae=function(){function e(e,t){this.type=r.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t}return e}();t.TemplateLiteral=ae;var se=function(){function e(){this.type=r.Syntax.ThisExpression}return e}();t.ThisExpression=se;var ue=function(){function e(e){this.type=r.Syntax.ThrowStatement,this.argument=e}return e}();t.ThrowStatement=ue;var ce=function(){function e(e,t,n){this.type=r.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=n}return e}();t.TryStatement=ce;var le=function(){function e(e,t){this.type=r.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0}return e}();t.UnaryExpression=le;var pe=function(){function e(e,t,n){this.type=r.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=n}return e}();t.UpdateExpression=pe;var fe=function(){function e(e,t){this.type=r.Syntax.VariableDeclaration,this.declarations=e,this.kind=t}return e}();t.VariableDeclaration=fe;var he=function(){function e(e,t){this.type=r.Syntax.VariableDeclarator,this.id=e,this.init=t}return e}();t.VariableDeclarator=he;var de=function(){function e(e,t){this.type=r.Syntax.WhileStatement,this.test=e,this.body=t}return e}();t.WhileStatement=de;var me=function(){function e(e,t){this.type=r.Syntax.WithStatement,this.object=e,this.body=t}return e}();t.WithStatement=me;var ve=function(){function e(e,t){this.type=r.Syntax.YieldExpression,this.argument=e,this.delegate=t}return e}();t.YieldExpression=ve},function(e,t,n){"use strict";function r(e){var t;switch(e.type){case l.JSXSyntax.JSXIdentifier:var n=e;t=n.name;break;case l.JSXSyntax.JSXNamespacedName:var i=e;t=r(i.namespace)+":"+r(i.name);break;case l.JSXSyntax.JSXMemberExpression:var o=e;t=r(o.object)+"."+r(o.property)}return t}var i,o=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},a=n(9),s=n(7),u=n(3),c=n(12),l=n(13),p=n(10),f=n(14);!function(e){e[e.Identifier=100]="Identifier",e[e.Text=101]="Text"}(i||(i={})),s.TokenName[i.Identifier]="JSXIdentifier",s.TokenName[i.Text]="JSXText";var h=function(e){function t(t,n,r){e.call(this,t,n,r)}return o(t,e),t.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.lineNumber,this.scanner.lineStart=this.startMarker.lineStart},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t="&",n=!0,r=!1,i=!1,o=!1;!this.scanner.eof()&&n&&!r;){var s=this.scanner.source[this.scanner.index];if(s===e)break;if(r=";"===s,t+=s,++this.scanner.index,!r)switch(t.length){case 2:i="#"===s;break;case 3:i&&(o="x"===s,n=o||a.Character.isDecimalDigit(s.charCodeAt(0)),i=i&&!o);break;default:n=n&&!(i&&!a.Character.isDecimalDigit(s.charCodeAt(0))),n=n&&!(o&&!a.Character.isHexDigit(s.charCodeAt(0)))}}if(n&&r&&t.length>2){var u=t.substr(1,t.length-2);i&&u.length>1?t=String.fromCharCode(parseInt(u.substr(1),10)):o&&u.length>2?t=String.fromCharCode(parseInt("0"+u.substr(1),16)):i||o||!c.XHTMLEntities[u]||(t=c.XHTMLEntities[u])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e){var t=this.scanner.source[this.scanner.index++];return{type:s.Token.Punctuator,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(34===e||39===e){for(var n=this.scanner.index,r=this.scanner.source[this.scanner.index++],o="";!this.scanner.eof();){var u=this.scanner.source[this.scanner.index++];if(u===r)break;o+="&"===u?this.scanXHTMLEntity(r):u}return{type:s.Token.StringLiteral,value:o,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index}}if(46===e){var c=this.scanner.source.charCodeAt(this.scanner.index+1),l=this.scanner.source.charCodeAt(this.scanner.index+2),t=46===c&&46===l?"...":".",n=this.scanner.index;return this.scanner.index+=t.length,{type:s.Token.Punctuator,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index}}if(96===e)return{type:s.Token.Template,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(a.Character.isIdentifierStart(e)&&92!==e){var n=this.scanner.index;for(++this.scanner.index;!this.scanner.eof();){var u=this.scanner.source.charCodeAt(this.scanner.index);if(a.Character.isIdentifierPart(u)&&92!==u)++this.scanner.index;else{if(45!==u)break;++this.scanner.index}}var p=this.scanner.source.slice(n,this.scanner.index);return{type:i.Identifier,value:p,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index}}this.scanner.throwUnexpectedToken()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;for(var e=this.scanner.index,t="";!this.scanner.eof();){var n=this.scanner.source[this.scanner.index];if("{"===n||"<"===n)break;++this.scanner.index,t+=n,a.Character.isLineTerminator(n.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===n&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart;var r={type:i.Text,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(r)),r},t.prototype.peekJSXToken=function(){var e=this.scanner.index,t=this.scanner.lineNumber,n=this.scanner.lineStart;this.scanner.scanComments();var r=this.lexJSX();return this.scanner.index=e,this.scanner.lineNumber=t,this.scanner.lineStart=n,r},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();t.type===s.Token.Punctuator&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return t.type===s.Token.Punctuator&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return t.type!==i.Identifier&&this.throwUnexpectedToken(t),this.finalize(e,new f.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){var n=t;this.expectJSX(":");var r=this.parseJSXIdentifier();t=this.finalize(e,new f.JSXNamespacedName(n,r))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var i=t;this.expectJSX(".");var o=this.parseJSXIdentifier();t=this.finalize(e,new f.JSXMemberExpression(i,o))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),n=this.parseJSXIdentifier();if(this.matchJSX(":")){var r=n;this.expectJSX(":");var i=this.parseJSXIdentifier();e=this.finalize(t,new f.JSXNamespacedName(r,i))}else e=n;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();t.type!==s.Token.StringLiteral&&this.throwUnexpectedToken(t);var n=this.getTokenRaw(t);return this.finalize(e,new p.Literal(t.value,n))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new f.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),n=null;return this.matchJSX("=")&&(this.expectJSX("="),n=this.parseJSXAttributeValue()),this.finalize(e,new f.JSXAttribute(t,n))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new f.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX("/")&&!this.matchJSX(">");){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),n=this.parseJSXAttributes(),r=this.matchJSX("/");return r&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new f.JSXOpeningElement(t,r,n))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new f.JSXClosingElement(t))}var n=this.parseJSXElementName(),r=this.parseJSXAttributes(),i=this.matchJSX("/");return i&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new f.JSXOpeningElement(n,i,r))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.finalize(e,new f.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e=this.createJSXNode();this.expectJSX("{");var t;return this.matchJSX("}")?(t=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),t=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(e,new f.JSXExpressionContainer(t))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),n=this.nextJSXText();if(n.start<n.end){var r=this.getTokenRaw(n),i=this.finalize(t,new f.JSXText(n.value,r));e.push(i)}if("{"!==this.scanner.source[this.scanner.index])break;var o=this.parseJSXExpressionContainer();e.push(o)}return e},t.prototype.parseComplexJSXElement=function(e){for(var t=[];!this.scanner.eof();){e.children=e.children.concat(this.parseJSXChildren());var n=this.createJSXChildNode(),i=this.parseJSXBoundaryElement();if(i.type===l.JSXSyntax.JSXOpeningElement){var o=i;if(o.selfClosing){var a=this.finalize(n,new f.JSXElement(o,[],null));e.children.push(a)}else t.push(e),e={node:n,opening:o,closing:null,children:[]}}if(i.type===l.JSXSyntax.JSXClosingElement){e.closing=i;var s=r(e.opening.name),u=r(e.closing.name);if(s!==u&&this.tolerateError("Expected corresponding JSX closing tag for %0",s),!(t.length>0))break;var a=this.finalize(e.node,new f.JSXElement(e.opening,e.children,e.closing));e=t.pop(),e.children.push(a)}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),n=[],r=null;if(!t.selfClosing){var i=this.parseComplexJSXElement({node:e,opening:t,closing:r,children:n});n=i.children,r=i.closing}return this.finalize(e,new f.JSXElement(t,n,r))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t}(u.Parser);t.JSXParser=h},function(e,t){"use strict";t.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(e,t){"use strict";t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,n){"use strict";var r=n(13),i=function(){function e(e){this.type=r.JSXSyntax.JSXClosingElement,this.name=e}return e}();t.JSXClosingElement=i;var o=function(){function e(e,t,n){this.type=r.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=n}return e}();t.JSXElement=o;var a=function(){function e(){this.type=r.JSXSyntax.JSXEmptyExpression}return e}();t.JSXEmptyExpression=a;var s=function(){function e(e){this.type=r.JSXSyntax.JSXExpressionContainer,this.expression=e}return e}();t.JSXExpressionContainer=s;var u=function(){function e(e){this.type=r.JSXSyntax.JSXIdentifier,this.name=e}return e}();t.JSXIdentifier=u;var c=function(){function e(e,t){this.type=r.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t}return e}();t.JSXMemberExpression=c;var l=function(){function e(e,t){this.type=r.JSXSyntax.JSXAttribute,this.name=e,this.value=t}return e}();t.JSXAttribute=l;var p=function(){function e(e,t){this.type=r.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t}return e}();t.JSXNamespacedName=p;var f=function(){function e(e,t,n){this.type=r.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=n}return e}();t.JSXOpeningElement=f;var h=function(){function e(e){this.type=r.JSXSyntax.JSXSpreadAttribute,this.argument=e}return e}();t.JSXSpreadAttribute=h;var d=function(){function e(e,t){this.type=r.JSXSyntax.JSXText,this.value=e,this.raw=t}return e}();t.JSXText=d},function(e,t,n){"use strict";var r=n(8),i=n(6),o=n(7),a=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var n=this.values[this.paren-1];t="if"===n||"while"===n||"for"===n||"with"===n;break;case"}":if(t=!1,"function"===this.values[this.curly-3]){var r=this.values[this.curly-4];t=!!r&&!this.beforeFunctionExpression(r)}else if("function"===this.values[this.curly-4]){var i=this.values[this.curly-5];t=!i||!this.beforeFunctionExpression(i)}}return t},e.prototype.push=function(e){e.type===o.Token.Punctuator||e.type===o.Token.Keyword?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),s=function(){function e(e,t){this.errorHandler=new i.ErrorHandler,this.errorHandler.tolerant=!!t&&("boolean"==typeof t.tolerant&&t.tolerant),this.scanner=new r.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&("boolean"==typeof t.comment&&t.comment),this.trackRange=!!t&&("boolean"==typeof t.range&&t.range),this.trackLoc=!!t&&("boolean"==typeof t.loc&&t.loc),this.buffer=[],this.reader=new a}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;t<e.length;++t){var n=e[t],r=void 0,i=this.scanner.source.slice(n.slice[0],n.slice[1]);r={type:n.multiLine?"BlockComment":"LineComment",value:i},this.trackRange&&(r.range=n.range),this.trackLoc&&(r.loc=n.loc),this.buffer.push(r)}if(!this.scanner.eof()){var a=void 0;this.trackLoc&&(a={start:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},end:{}});var s=void 0;s="/"===this.scanner.source[this.scanner.index]?this.reader.isRegexStart()?this.scanner.scanRegExp():this.scanner.scanPunctuator():this.scanner.lex(),this.reader.push(s);var u=void 0;u={type:o.TokenName[s.type],value:this.scanner.source.slice(s.start,s.end)},this.trackRange&&(u.range=[s.start,s.end]),this.trackLoc&&(a.end={line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},u.loc=a),s.regex&&(u.regex=s.regex),this.buffer.push(u)}}return this.buffer.shift()},e}();t.Tokenizer=s}])})},function(e,t,n){"use strict";function r(e,t){var n,r,i,o,a,s,u;if(null===t)return{};for(n={},r=Object.keys(t),i=0,o=r.length;i<o;i+=1)a=r[i],s=String(t[a]),"!!"===a.slice(0,2)&&(a="tag:yaml.org,2002:"+a.slice(2)),u=e.compiledTypeMap.fallback[a],u&&R.call(u.styleAliases,s)&&(s=u.styleAliases[s]),n[a]=s;return n}function i(e){var t,n,r;if(t=e.toString(16).toUpperCase(),e<=255)n="x",r=2;else if(e<=65535)n="u",r=4;else{if(!(e<=4294967295))throw new O("code point within a string may not be greater than 0xFFFFFFFF");n="U",r=8}return"\\"+n+M.repeat("0",r-t.length)+t}function o(e){this.schema=e.schema||P,this.indent=Math.max(1,e.indent||2),this.skipInvalid=e.skipInvalid||!1,this.flowLevel=M.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=r(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function a(e,t){for(var n,r=M.repeat(" ",t),i=0,o=-1,a="",s=e.length;i<s;)o=e.indexOf("\n",i),o===-1?(n=e.slice(i),i=s):(n=e.slice(i,o+1),i=o+1),n.length&&"\n"!==n&&(a+=r),a+=n;return a}function s(e,t){return"\n"+M.repeat(" ",e.indent*t)}function u(e,t){var n,r,i;for(n=0,r=e.implicitTypes.length;n<r;n+=1)if(i=e.implicitTypes[n],i.resolve(t))return!0;return!1}function c(e){return e===B||e===j}function l(e){return 32<=e&&e<=126||161<=e&&e<=55295&&8232!==e&&8233!==e||57344<=e&&e<=65533&&65279!==e||65536<=e&&e<=1114111}function p(e){return l(e)&&65279!==e&&e!==H&&e!==Z&&e!==Q&&e!==te&&e!==re&&e!==G&&e!==q}function f(e){return l(e)&&65279!==e&&!c(e)&&e!==J&&e!==Y&&e!==G&&e!==H&&e!==Z&&e!==Q&&e!==te&&e!==re&&e!==q&&e!==W&&e!==V&&e!==L&&e!==ne&&e!==X&&e!==K&&e!==z&&e!==U&&e!==$&&e!==ee}function h(e,t,n,r,i){var o,a,s=!1,u=!1,h=r!==-1,d=-1,m=f(e.charCodeAt(0))&&!c(e.charCodeAt(e.length-1));if(t)for(o=0;o<e.length;o++){if(a=e.charCodeAt(o),!l(a))return le;m=m&&p(a)}else{for(o=0;o<e.length;o++){if(a=e.charCodeAt(o),a===F)s=!0,h&&(u=u||o-d-1>r&&" "!==e[d+1],d=o);else if(!l(a))return le;m=m&&p(a)}u=u||h&&o-d-1>r&&" "!==e[d+1]}return s||u?" "===e[0]&&n>9?le:u?ce:ue:m&&!i(e)?ae:se}function d(e,t,n,r){e.dump=function(){function i(t){return u(e,t)}if(0===t.length)return"''";if(!e.noCompatMode&&oe.indexOf(t)!==-1)return"'"+t+"'";var o=e.indent*Math.max(1,n),s=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o),c=r||e.flowLevel>-1&&n>=e.flowLevel;switch(h(t,c,e.indent,s,i)){case ae:return t;case se:return"'"+t.replace(/'/g,"''")+"'";case ue:return"|"+m(t,e.indent)+v(a(t,o));case ce:return">"+m(t,e.indent)+v(a(y(t,s),o));case le:return'"'+_(t,s)+'"';default:throw new O("impossible error: invalid scalar style")}}()}function m(e,t){var n=" "===e[0]?String(t):"",r="\n"===e[e.length-1],i=r&&("\n"===e[e.length-2]||"\n"===e),o=i?"+":r?"":"-";return n+o+"\n"}function v(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function y(e,t){for(var n,r,i=/(\n+)([^\n]*)/g,o=function(){var n=e.indexOf("\n");return n=n!==-1?n:e.length,i.lastIndex=n,g(e.slice(0,n),t)}(),a="\n"===e[0]||" "===e[0];r=i.exec(e);){var s=r[1],u=r[2];n=" "===u[0],o+=s+(a||n||""===u?"":"\n")+g(u,t),a=n}return o}function g(e,t){if(""===e||" "===e[0])return e;for(var n,r,i=/ [^ ]/g,o=0,a=0,s=0,u="";n=i.exec(e);)s=n.index,s-o>t&&(r=a>o?a:s,u+="\n"+e.slice(o,r),o=r+1),a=s;return u+="\n",u+=e.length-o>t&&a>o?e.slice(o,a)+"\n"+e.slice(a+1):e.slice(o),u.slice(1)}function _(e){for(var t,n,r="",o=0;o<e.length;o++)t=e.charCodeAt(o),n=ie[t],r+=!n&&l(t)?e[o]:n||i(t);return r}function b(e,t,n){var r,i,o="",a=e.tag;for(r=0,i=n.length;r<i;r+=1)E(e,t,n[r],!1,!1)&&(0!==r&&(o+=", "),o+=e.dump);e.tag=a,e.dump="["+o+"]"}function x(e,t,n,r){var i,o,a="",u=e.tag;for(i=0,o=n.length;i<o;i+=1)E(e,t+1,n[i],!0,!0)&&(r&&0===i||(a+=s(e,t)),a+=e.dump&&F===e.dump.charCodeAt(0)?"-":"- ",a+=e.dump);e.tag=u,e.dump=a||"[]"}function w(e,t,n){var r,i,o,a,s,u="",c=e.tag,l=Object.keys(n);for(r=0,i=l.length;r<i;r+=1)s="",0!==r&&(s+=", "),o=l[r],a=n[o],E(e,t,o,!1,!1)&&(e.dump.length>1024&&(s+="? "),s+=e.dump+": ",E(e,t,a,!1,!1)&&(s+=e.dump,u+=s));e.tag=c,e.dump="{"+u+"}"}function k(e,t,n,r){var i,o,a,u,c,l,p="",f=e.tag,h=Object.keys(n);if(e.sortKeys===!0)h.sort();else if("function"==typeof e.sortKeys)h.sort(e.sortKeys);else if(e.sortKeys)throw new O("sortKeys must be a boolean or a function");for(i=0,o=h.length;i<o;i+=1)l="",r&&0===i||(l+=s(e,t)),a=h[i],u=n[a],E(e,t+1,a,!0,!0,!0)&&(c=null!==e.tag&&"?"!==e.tag||e.dump&&e.dump.length>1024,c&&(l+=e.dump&&F===e.dump.charCodeAt(0)?"?":"? "),l+=e.dump,c&&(l+=s(e,t)),E(e,t+1,u,!0,c)&&(l+=e.dump&&F===e.dump.charCodeAt(0)?":":": ",l+=e.dump,p+=l));e.tag=f, +e.dump=p||"{}"}function S(e,t,n){var r,i,o,a,s,u;for(i=n?e.explicitTypes:e.implicitTypes,o=0,a=i.length;o<a;o+=1)if(s=i[o],(s.instanceOf||s.predicate)&&(!s.instanceOf||"object"==typeof t&&t instanceof s.instanceOf)&&(!s.predicate||s.predicate(t))){if(e.tag=n?s.tag:"?",s.represent){if(u=e.styleMap[s.tag]||s.defaultStyle,"[object Function]"===N.call(s.represent))r=s.represent(t,u);else{if(!R.call(s.represent,u))throw new O("!<"+s.tag+'> tag resolver accepts not "'+u+'" style');r=s.represent[u](t,u)}e.dump=r}return!0}return!1}function E(e,t,n,r,i,o){e.tag=null,e.dump=n,S(e,n,!1)||S(e,n,!0);var a=N.call(e.dump);r&&(r=e.flowLevel<0||e.flowLevel>t);var s,u,c="[object Object]"===a||"[object Array]"===a;if(c&&(s=e.duplicates.indexOf(n),u=s!==-1),(null!==e.tag&&"?"!==e.tag||u||2!==e.indent&&t>0)&&(i=!1),u&&e.usedDuplicates[s])e.dump="*ref_"+s;else{if(c&&u&&!e.usedDuplicates[s]&&(e.usedDuplicates[s]=!0),"[object Object]"===a)r&&0!==Object.keys(e.dump).length?(k(e,t,e.dump,i),u&&(e.dump="&ref_"+s+e.dump)):(w(e,t,e.dump),u&&(e.dump="&ref_"+s+" "+e.dump));else if("[object Array]"===a)r&&0!==e.dump.length?(x(e,t,e.dump,i),u&&(e.dump="&ref_"+s+e.dump)):(b(e,t,e.dump),u&&(e.dump="&ref_"+s+" "+e.dump));else{if("[object String]"!==a){if(e.skipInvalid)return!1;throw new O("unacceptable kind of an object to dump "+a)}"?"!==e.tag&&d(e,e.dump,t,o)}null!==e.tag&&"?"!==e.tag&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function C(e,t){var n,r,i=[],o=[];for(A(e,i,o),n=0,r=o.length;n<r;n+=1)t.duplicates.push(i[o[n]]);t.usedDuplicates=new Array(r)}function A(e,t,n){var r,i,o;if(null!==e&&"object"==typeof e)if(i=t.indexOf(e),i!==-1)n.indexOf(i)===-1&&n.push(i);else if(t.push(e),Array.isArray(e))for(i=0,o=e.length;i<o;i+=1)A(e[i],t,n);else for(r=Object.keys(e),i=0,o=r.length;i<o;i+=1)A(e[r[i]],t,n)}function T(e,t){t=t||{};var n=new o(t);return n.noRefs||C(e,n),E(n,0,e,!0,!0)?n.dump+"\n":""}function D(e,t){return T(e,M.extend({schema:I},t))}var M=n(451),O=n(452),P=n(473),I=n(454),N=Object.prototype.toString,R=Object.prototype.hasOwnProperty,j=9,F=10,B=32,L=33,z=34,q=35,U=37,W=38,K=39,V=42,H=44,J=45,G=58,X=62,Y=63,$=64,Z=91,Q=93,ee=96,te=123,ne=124,re=125,ie={};ie[0]="\\0",ie[7]="\\a",ie[8]="\\b",ie[9]="\\t",ie[10]="\\n",ie[11]="\\v",ie[12]="\\f",ie[13]="\\r",ie[27]="\\e",ie[34]='\\"',ie[92]="\\\\",ie[133]="\\N",ie[160]="\\_",ie[8232]="\\L",ie[8233]="\\P";var oe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],ae=1,se=2,ue=3,ce=4,le=5;e.exports.dump=T,e.exports.safeDump=D},function(e,t,n){(function(t){"use strict";function r(e){e=e||t.location||{};var n,r={},i=typeof e;if("blob:"===e.protocol)r=new a(unescape(e.pathname),{});else if("string"===i){r=new a(e,{});for(n in d)delete r[n]}else if("object"===i){for(n in e)n in d||(r[n]=e[n]);void 0===r.slashes&&(r.slashes=f.test(e.href))}return r}function i(e){var t=p.exec(e);return{protocol:t[1]?t[1].toLowerCase():"",slashes:!!t[2],rest:t[3]}}function o(e,t){for(var n=(t||"/").split("/").slice(0,-1).concat(e.split("/")),r=n.length,i=n[r-1],o=!1,a=0;r--;)"."===n[r]?n.splice(r,1):".."===n[r]?(n.splice(r,1),a++):a&&(0===r&&(o=!0),n.splice(r,1),a--);return o&&n.unshift(""),"."!==i&&".."!==i||n.push(""),n.join("/")}function a(e,t,n){if(!(this instanceof a))return new a(e,t,n);var s,u,p,f,d,m,v=h.slice(),y=typeof t,g=this,_=0;for("object"!==y&&"string"!==y&&(n=t,t=null),n&&"function"!=typeof n&&(n=l.parse),t=r(t),u=i(e||""),s=!u.protocol&&!u.slashes,g.slashes=u.slashes||s&&t.slashes,g.protocol=u.protocol||t.protocol||"",e=u.rest,u.slashes||(v[2]=[/(.*)/,"pathname"]);_<v.length;_++)f=v[_],p=f[0],m=f[1],p!==p?g[m]=e:"string"==typeof p?~(d=e.indexOf(p))&&("number"==typeof f[2]?(g[m]=e.slice(0,d),e=e.slice(d+f[2])):(g[m]=e.slice(d),e=e.slice(0,d))):(d=p.exec(e))&&(g[m]=d[1],e=e.slice(0,d.index)),g[m]=g[m]||(s&&f[3]?t[m]||"":""),f[4]&&(g[m]=g[m].toLowerCase());n&&(g.query=n(g.query)),s&&t.slashes&&"/"!==g.pathname.charAt(0)&&(""!==g.pathname||""!==t.pathname)&&(g.pathname=o(g.pathname,t.pathname)),c(g.port,g.protocol)||(g.host=g.hostname,g.port=""),g.username=g.password="",g.auth&&(f=g.auth.split(":"),g.username=f[0]||"",g.password=f[1]||""),g.origin=g.protocol&&g.host&&"file:"!==g.protocol?g.protocol+"//"+g.host:"null",g.href=g.toString()}function s(e,t,n){var r=this;switch(e){case"query":"string"==typeof t&&t.length&&(t=(n||l.parse)(t)),r[e]=t;break;case"port":r[e]=t,c(t,r.protocol)?t&&(r.host=r.hostname+":"+t):(r.host=r.hostname,r[e]="");break;case"hostname":r[e]=t,r.port&&(t+=":"+r.port),r.host=t;break;case"host":r[e]=t,/:\d+$/.test(t)?(t=t.split(":"),r.port=t.pop(),r.hostname=t.join(":")):(r.hostname=t,r.port="");break;case"protocol":r.protocol=t.toLowerCase(),r.slashes=!n;break;case"pathname":r.pathname=t.length&&"/"!==t.charAt(0)?"/"+t:t;break;default:r[e]=t}for(var i=0;i<h.length;i++){var o=h[i];o[4]&&(r[o[1]]=r[o[1]].toLowerCase())}return r.origin=r.protocol&&r.host&&"file:"!==r.protocol?r.protocol+"//"+r.host:"null",r.href=r.toString(),r}function u(e){e&&"function"==typeof e||(e=l.stringify);var t,n=this,r=n.protocol;r&&":"!==r.charAt(r.length-1)&&(r+=":");var i=r+(n.slashes?"//":"");return n.username&&(i+=n.username,n.password&&(i+=":"+n.password),i+="@"),i+=n.host+n.pathname,t="object"==typeof n.query?e(n.query):n.query,t&&(i+="?"!==t.charAt(0)?"?"+t:t),n.hash&&(i+=n.hash),i}var c=n(480),l=n(481),p=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\S\s]*)/i,f=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,h=[["#","hash"],["?","query"],["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d+)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],d={hash:1,query:1};a.prototype={set:s,toString:u},a.extractProtocol=i,a.location=r,a.qs=l,e.exports=a}).call(t,function(){return this}())},function(e,t){"use strict";e.exports=function(e,t){if(t=t.split(":")[0],e=+e,!e)return!1;switch(t){case"http":case"ws":return 80!==e;case"https":case"wss":return 443!==e;case"ftp":return 21!==e;case"gopher":return 70!==e;case"file":return!1}return 0!==e}},function(e,t){"use strict";function n(e){return decodeURIComponent(e.replace(/\+/g," "))}function r(e){for(var t,r=/([^=?&]+)=?([^&]*)/g,i={};t=r.exec(e);i[n(t[1])]=n(t[2]));return i}function i(e,t){t=t||"";var n=[];"string"!=typeof t&&(t="?");for(var r in e)o.call(e,r)&&n.push(encodeURIComponent(r)+"="+encodeURIComponent(e[r]));return n.length?t+n.join("&"):""}var o=Object.prototype.hasOwnProperty;t.stringify=i,t.parse=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){var r=b(e).getIn(["paths"].concat((0,f.default)(t),["parameters"]),(0,m.fromJS)([]));return r.filter(function(e){return m.Map.isMap(e)&&e.get("name")===n}).first()}function o(e,t,n){var r=b(e).getIn(["paths"].concat((0,f.default)(t),["parameters"]),(0,m.fromJS)([]));return r.reduce(function(e,t){var r=n&&"body"===t.get("in")?t.get("value_xml"):t.get("value");return e.set(t.get("name"),r)},(0,m.fromJS)({}))}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(m.List.isList(e))return e.some(function(e){return m.Map.isMap(e)&&e.get("in")===t})}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(m.List.isList(e))return e.some(function(e){return m.Map.isMap(e)&&e.get("type")===t})}function u(e,t){var n=b(e).getIn(["paths"].concat((0,f.default)(t)),(0,m.fromJS)({})),r=n.get("parameters")||new m.List,i=s(r,"file")?"multipart/form-data":a(r,"formData")?"application/x-www-form-urlencoded":n.get("consumes_value");return(0,m.fromJS)({requestContentType:i,responseContentType:n.get("produces_value")})}function c(e,t){return b(e).getIn(["paths"].concat((0,f.default)(t),["consumes"]),(0,m.fromJS)({}))}function l(e){return m.Map.isMap(e)?e:new m.Map}Object.defineProperty(t,"__esModule",{value:!0}),t.validateBeforeExecute=t.canExecuteScheme=t.operationScheme=t.hasHost=t.allowTryItOutFor=t.requestFor=t.responseFor=t.requests=t.responses=t.taggedOperations=t.operationsWithTags=t.tagDetails=t.tags=t.operationsWithRootInherited=t.schemes=t.host=t.basePath=t.definitions=t.findDefinition=t.securityDefinitions=t.security=t.produces=t.consumes=t.operations=t.paths=t.semver=t.version=t.externalDocs=t.info=t.spec=t.specResolved=t.specJson=t.specSource=t.specStr=t.url=t.lastError=void 0;var p=n(435),f=r(p);t.getParameter=i,t.parameterValues=o,t.parametersIncludeIn=a,t.parametersIncludeType=s,t.contentTypeValues=u,t.operationConsumes=c;var h=n(430),d=n(183),m=n(168),v="default",y=["get","put","post","delete","options","head","patch"],g=function(e){return e||(0,m.Map)()},_=(t.lastError=(0,h.createSelector)(g,function(e){return e.get("lastError")}),t.url=(0,h.createSelector)(g,function(e){return e.get("url")}),t.specStr=(0,h.createSelector)(g,function(e){return e.get("spec")||""}),t.specSource=(0,h.createSelector)(g,function(e){return e.get("specSource")||"not-editor"}),t.specJson=(0,h.createSelector)(g,function(e){return e.get("json",(0,m.Map)())}),t.specResolved=(0,h.createSelector)(g,function(e){return e.get("resolved",(0,m.Map)())})),b=t.spec=function(e){var t=_(e);return t},x=t.info=(0,h.createSelector)(b,function(e){return l(e&&e.get("info"))}),w=(t.externalDocs=(0,h.createSelector)(b,function(e){return l(e&&e.get("externalDocs"))}),t.version=(0,h.createSelector)(x,function(e){return e&&e.get("version")})),k=(t.semver=(0,h.createSelector)(w,function(e){return/v?([0-9]*)\.([0-9]*)\.([0-9]*)/i.exec(e).slice(1)}),t.paths=(0,h.createSelector)(b,function(e){return e.get("paths")})),S=t.operations=(0,h.createSelector)(k,function(e){if(!e||e.size<1)return(0,m.List)();var t=(0,m.List)();return e&&e.forEach?(e.forEach(function(e,n){return e&&e.forEach?void e.forEach(function(e,r){y.indexOf(r)!==-1&&(t=t.push((0,m.fromJS)({path:n,method:r,operation:e,id:r+"-"+n})))}):{}}),t):(0,m.List)()}),E=t.consumes=(0,h.createSelector)(b,function(e){return(0,m.Set)(e.get("consumes"))}),C=t.produces=(0,h.createSelector)(b,function(e){return(0,m.Set)(e.get("produces"))}),A=(t.security=(0,h.createSelector)(b,function(e){return e.get("security",(0,m.List)())}),t.securityDefinitions=(0,h.createSelector)(b,function(e){return e.get("securityDefinitions")}),t.findDefinition=function(e,t){return _(e).getIn(["definitions",t],null)},t.definitions=(0,h.createSelector)(b,function(e){return e.get("definitions")||(0,m.Map)()}),t.basePath=(0,h.createSelector)(b,function(e){return e.get("basePath")}),t.host=(0,h.createSelector)(b,function(e){return e.get("host")}),t.schemes=(0,h.createSelector)(b,function(e){return e.get("schemes",(0,m.Map)())}),t.operationsWithRootInherited=(0,h.createSelector)(S,E,C,function(e,t,n){return e.map(function(e){return e.update("operation",function(e){if(e){if(!m.Map.isMap(e))return;return e.withMutations(function(e){return e.get("consumes")||e.update("consumes",function(e){return(0,m.Set)(e).merge(t)}),e.get("produces")||e.update("produces",function(e){return(0,m.Set)(e).merge(n)}),e})}return(0,m.Map)()})})})),T=t.tags=(0,h.createSelector)(b,function(e){return e.get("tags",(0,m.List)())}),D=t.tagDetails=function(e,t){var n=T(e)||(0,m.List)();return n.filter(m.Map.isMap).find(function(e){return e.get("name")===t},(0,m.Map)())},M=t.operationsWithTags=(0,h.createSelector)(A,function(e){return e.reduce(function(e,t){var n=(0,m.Set)(t.getIn(["operation","tags"]));return n.count()<1?e.update(v,(0,m.List)(),function(e){return e.push(t)}):n.reduce(function(e,n){return e.update(n,(0,m.List)(),function(e){return e.push(t)})},e)},(0,m.Map)())}),O=(t.taggedOperations=function(e){return function(t){var n=t.getConfigs,r=n(),i=r.operationsSorter;return M(e).map(function(t,n){var r="function"==typeof i?i:d.sorters.operationsSorter[i],o=r?t.sort(r):t;return(0,m.Map)({tagDetails:D(e,n),operations:o})})}},t.responses=(0,h.createSelector)(g,function(e){return e.get("responses",(0,m.Map)())})),P=t.requests=(0,h.createSelector)(g,function(e){return e.get("requests",(0,m.Map)())}),I=(t.responseFor=function(e,t,n){return O(e).getIn([t,n],null)},t.requestFor=function(e,t,n){return P(e).getIn([t,n],null)},t.allowTryItOutFor=function(){return!0},t.hasHost=(0,h.createSelector)(b,function(e){var t=e.get("host");return"string"==typeof t&&t.length>0&&"/"!==t[0]}),t.operationScheme=function(e,t,n){var r=e.get("url"),i=r.match(/^([a-z][a-z0-9+\-.]*):/),o=Array.isArray(i)?i[1]:null;return e.getIn(["scheme",t,n])||e.getIn(["scheme","_defaultScheme"])||o||""});t.canExecuteScheme=function(e,t,n){return["http","https"].indexOf(I(e,t,n))>-1},t.validateBeforeExecute=function(e,t){var n=b(e).getIn(["paths"].concat((0,f.default)(t),["parameters"]),(0,m.fromJS)([])),r=!0;return n.forEach(function(e){var t=e.get("errors");t&&t.count()&&(r=!1)}),r}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.updateSpec=function(e,t){var n=t.specActions;return function(){e.apply(void 0,arguments),n.parseToJson.apply(n,arguments)}},t.updateJsonSpec=function(e,t){var n=t.specActions;return function(){e.apply(void 0,arguments),n.resolveSpec.apply(n,arguments)}},t.executeRequest=function(e,t){var n=t.specActions;return function(t){return n.logRequest(t),e(t)}}},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.getComponents,n=e.getStore,r=e.getSystem,i=o.getComponent,s=o.render,u=o.makeMappedContainer,c=(0,a.memoize)(i.bind(null,r,n,t)),l=(0,a.memoize)(u.bind(null,r,n,c,t));return{rootInjects:{getComponent:c,makeMappedContainer:l,render:s.bind(null,r,n,i,t)}}};var i=n(485),o=r(i),a=n(183)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.getComponent=t.render=t.makeMappedContainer=void 0;var i=n(94),o=r(i),a=n(60),s=r(a),u=n(446),c=r(u),l=n(486),p=r(l),f=n(145),h=r(f),d=n(146),m=r(d),v=n(489),y=r(v),g=n(490),_=r(g),b=n(498),x=r(b),w=n(528),k=r(w),S=n(666),E=n(677),C=r(E),A=function(e,t){return function(n){function r(){return(0,h.default)(this,r),(0,y.default)(this,(r.__proto__||(0,p.default)(r)).apply(this,arguments))}return(0,_.default)(r,n),(0,m.default)(r,[{key:"render",value:function(){return x.default.createElement(t,(0,c.default)({},e(),this.props,this.context))}}]),r}(b.Component)},T=function(e,t){return function(n){function r(){return(0,h.default)(this,r),(0,y.default)(this,(r.__proto__||(0,p.default)(r)).apply(this,arguments))}return(0,_.default)(r,n),(0,m.default)(r,[{key:"render",value:function(){return x.default.createElement(S.Provider,{store:e},x.default.createElement(t,(0,c.default)({},this.props,this.context)))}}]),r}(b.Component)},D=function(e,t,n){var r=A(e,t,n),i=(0,S.connect)(function(e){return{state:e}})(r);return n?T(n,i):i},M=function(e,t,n,r){for(var i in t){var o=t[i];"function"==typeof o&&o(n[i],r[i],e())}},O=(t.makeMappedContainer=function(e,t,n,r,i,o){return function(t){function r(t,n){(0,h.default)(this,r);var i=(0,y.default)(this,(r.__proto__||(0,p.default)(r)).call(this,t,n));return M(e,o,t,{}),i}return(0,_.default)(r,t),(0,m.default)(r,[{key:"componentWillReceiveProps",value:function(t){M(e,o,t,this.props)}},{key:"render",value:function(){var e=(0,C.default)(this.props,o?(0,s.default)(o):[]),t=n(i,"root");return x.default.createElement(t,e)}}]),r}(b.Component)},t.render=function(e,t,n,r,i){var o=document.querySelector(i),a=n(e,t,r,"App","root");k.default.render(x.default.createElement(a,null),o)},function(e){return x.default.createClass({render:function(){return e(this.props)}})}),P=function(e){var t=e.name;return x.default.createElement("div",{style:{padding:"1em",color:"#aaa"}},"😱 ",x.default.createElement("i",null,"Could not render ","t"===t?"this component":t,", see the console."))},I=function(e){var t=function(e){return!(e.prototype&&e.prototype.isReactComponent)},n=t(e)?O(e):e,r=n.prototype.render;return n.prototype.render=function(){try{for(var e=arguments.length,t=Array(e),i=0;i<e;i++)t[i]=arguments[i];return r.apply(this,t)}catch(e){return console.error(e),x.default.createElement(P,{error:e,name:n.name})}},n};t.getComponent=function(e,t,n,r,i){if("string"!=typeof r)throw new TypeError("Need a string, to fetch a component. Was given a "+("undefined"==typeof r?"undefined":(0,o.default)(r)));var a=n(r);return a?i?"root"===i?D(e,a,t()):D(e,a):I(a):(e().log.warn("Could not find component",r),null)}},function(e,t,n){e.exports={default:n(487),__esModule:!0}},function(e,t,n){n(488),e.exports=n(59).Object.getPrototypeOf},function(e,t,n){var r=n(63),i=n(109);n(80)("getPrototypeOf",function(){return function(e){return i(r(e))}})},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(94),o=r(i);t.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==("undefined"==typeof t?"undefined":(0,o.default)(t))&&"function"!=typeof t?e:t}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(491),o=r(i),a=n(495),s=r(a),u=n(94),c=r(u);t.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+("undefined"==typeof t?"undefined":(0,c.default)(t)));e.prototype=(0,s.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(o.default?(0,o.default)(e,t):e.__proto__=t)}},function(e,t,n){e.exports={default:n(492),__esModule:!0}},function(e,t,n){n(493),e.exports=n(59).Object.setPrototypeOf},function(e,t,n){var r=n(81);r(r.S,"Object",{setPrototypeOf:n(494).set})},function(e,t,n){var r=n(87),i=n(86),o=function(e,t){if(i(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{r=n(82)(Function.call,n(127).f(Object.prototype,"__proto__").set,2),r(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return o(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:o}},function(e,t,n){e.exports={default:n(496),__esModule:!0}},function(e,t,n){n(497);var r=n(59).Object;e.exports=function(e,t){return r.create(e,t)}},function(e,t,n){var r=n(81);r(r.S,"Object",{create:n(104)})},function(e,t,n){"use strict";e.exports=n(499)},function(e,t,n){"use strict";var r=n(500),i=n(501),o=n(510),a=n(518),s=n(512),u=n(519),c=n(524),l=n(525),p=n(527),f=s.createElement,h=s.createFactory,d=s.cloneElement,m=r,v=function(e){return e},y={Children:{map:o.map,forEach:o.forEach,count:o.count,toArray:o.toArray,only:p},Component:i.Component,PureComponent:i.PureComponent,createElement:f,cloneElement:d,isValidElement:s.isValidElement,PropTypes:u,createClass:l,createFactory:h,createMixin:v,DOM:a,version:c,__spread:m};e.exports=y},function(e,t){/* + object-assign + (c) Sindre Sorhus + @license MIT + */ +"use strict";function n(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function r(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==r.join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(e){i[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(e){return!1}}var i=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=r()?Object.assign:function(e,t){for(var r,s,u=n(e),c=1;c<arguments.length;c++){r=Object(arguments[c]);for(var l in r)o.call(r,l)&&(u[l]=r[l]);if(i){s=i(r);for(var p=0;p<s.length;p++)a.call(r,s[p])&&(u[s[p]]=r[s[p]])}}return u}},function(e,t,n){"use strict";function r(e,t,n){this.props=e,this.context=t,this.refs=c,this.updater=n||u}function i(e,t,n){this.props=e,this.context=t,this.refs=c,this.updater=n||u}function o(){}var a=n(502),s=n(500),u=n(503),c=(n(506),n(507));n(508),n(509);r.prototype.isReactComponent={},r.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e?a("85"):void 0,this.updater.enqueueSetState(this,e),t&&this.updater.enqueueCallback(this,t,"setState")},r.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e,"forceUpdate")};o.prototype=r.prototype,i.prototype=new o,i.prototype.constructor=i,s(i.prototype,r.prototype),i.prototype.isPureReactComponent=!0,e.exports={Component:r,PureComponent:i}},function(e,t){"use strict";function n(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);n+=" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";var i=new Error(n);throw i.name="Invariant Violation",i.framesToPop=1,i}e.exports=n},function(e,t,n){"use strict";function r(e,t){}var i=(n(504),{isMounted:function(e){return!1},enqueueCallback:function(e,t){},enqueueForceUpdate:function(e){r(e,"forceUpdate")},enqueueReplaceState:function(e,t){r(e,"replaceState")},enqueueSetState:function(e,t){r(e,"setState")}});e.exports=i},function(e,t,n){"use strict";var r=n(505),i=r;e.exports=i},function(e,t){"use strict";function n(e){return function(){return e}}var r=function(){};r.thatReturns=n,r.thatReturnsFalse=n(!1),r.thatReturnsTrue=n(!0),r.thatReturnsNull=n(null),r.thatReturnsThis=function(){return this},r.thatReturnsArgument=function(e){return e},e.exports=r},function(e,t,n){"use strict";var r=!1;e.exports=r},function(e,t,n){"use strict";var r={};e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r,o,a,s,u){if(i(t),!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,s,u],p=0;c=new Error(t.replace(/%s/g,function(){return l[p++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}}var i=function(e){};e.exports=r},function(e,t,n){"use strict";var r=function(){};e.exports=r},function(e,t,n){"use strict";function r(e){return(""+e).replace(b,"$&/")}function i(e,t){this.func=e,this.context=t,this.count=0}function o(e,t,n){var r=e.func,i=e.context;r.call(i,t,e.count++)}function a(e,t,n){if(null==e)return e;var r=i.getPooled(t,n);y(e,o,r),i.release(r)}function s(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function u(e,t,n){var i=e.result,o=e.keyPrefix,a=e.func,s=e.context,u=a.call(s,t,e.count++);Array.isArray(u)?c(u,i,n,v.thatReturnsArgument):null!=u&&(m.isValidElement(u)&&(u=m.cloneAndReplaceKey(u,o+(!u.key||t&&t.key===u.key?"":r(u.key)+"/")+n)),i.push(u))}function c(e,t,n,i,o){var a="";null!=n&&(a=r(n)+"/");var c=s.getPooled(t,a,i,o);y(e,u,c),s.release(c)}function l(e,t,n){if(null==e)return e;var r=[];return c(e,r,null,t,n),r}function p(e,t,n){return null}function f(e,t){return y(e,p,null)}function h(e){var t=[];return c(e,t,null,v.thatReturnsArgument),t}var d=n(511),m=n(512),v=n(505),y=n(515),g=d.twoArgumentPooler,_=d.fourArgumentPooler,b=/\/+/g;i.prototype.destructor=function(){this.func=null,this.context=null,this.count=0},d.addPoolingTo(i,g),s.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},d.addPoolingTo(s,_);var x={forEach:a,map:l,mapIntoWithKeyPrefixInternal:c,count:f,toArray:h};e.exports=x},[1231,502],function(e,t,n){"use strict";function r(e){return void 0!==e.ref}function i(e){return void 0!==e.key}var o=n(500),a=n(513),s=(n(504),n(506),Object.prototype.hasOwnProperty),u=n(514),c={key:!0,ref:!0,__self:!0,__source:!0},l=function(e,t,n,r,i,o,a){var s={$$typeof:u,type:e,key:t,ref:n,props:a,_owner:o};return s};l.createElement=function(e,t,n){var o,u={},p=null,f=null,h=null,d=null;if(null!=t){r(t)&&(f=t.ref),i(t)&&(p=""+t.key),h=void 0===t.__self?null:t.__self,d=void 0===t.__source?null:t.__source;for(o in t)s.call(t,o)&&!c.hasOwnProperty(o)&&(u[o]=t[o])}var m=arguments.length-2;if(1===m)u.children=n;else if(m>1){for(var v=Array(m),y=0;y<m;y++)v[y]=arguments[y+2];u.children=v}if(e&&e.defaultProps){var g=e.defaultProps;for(o in g)void 0===u[o]&&(u[o]=g[o])}return l(e,p,f,h,d,a.current,u)},l.createFactory=function(e){var t=l.createElement.bind(null,e);return t.type=e,t},l.cloneAndReplaceKey=function(e,t){var n=l(e.type,t,e.ref,e._self,e._source,e._owner,e.props);return n},l.cloneElement=function(e,t,n){var u,p=o({},e.props),f=e.key,h=e.ref,d=e._self,m=e._source,v=e._owner;if(null!=t){r(t)&&(h=t.ref,v=a.current),i(t)&&(f=""+t.key);var y;e.type&&e.type.defaultProps&&(y=e.type.defaultProps);for(u in t)s.call(t,u)&&!c.hasOwnProperty(u)&&(void 0===t[u]&&void 0!==y?p[u]=y[u]:p[u]=t[u])}var g=arguments.length-2;if(1===g)p.children=n;else if(g>1){for(var _=Array(g),b=0;b<g;b++)_[b]=arguments[b+2];p.children=_}return l(e.type,f,h,d,m,v,p)},l.isValidElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===u},e.exports=l},function(e,t){"use strict";var n={current:null};e.exports=n},function(e,t){"use strict";var n="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=n},function(e,t,n){"use strict";function r(e,t){return e&&"object"==typeof e&&null!=e.key?c.escape(e.key):t.toString(36)}function i(e,t,n,o){var f=typeof e;if("undefined"!==f&&"boolean"!==f||(e=null),null===e||"string"===f||"number"===f||"object"===f&&e.$$typeof===s)return n(o,e,""===t?l+r(e,0):t),1;var h,d,m=0,v=""===t?l:t+p;if(Array.isArray(e))for(var y=0;y<e.length;y++)h=e[y],d=v+r(h,y),m+=i(h,d,n,o);else{var g=u(e);if(g){var _,b=g.call(e);if(g!==e.entries)for(var x=0;!(_=b.next()).done;)h=_.value,d=v+r(h,x++),m+=i(h,d,n,o);else for(;!(_=b.next()).done;){var w=_.value;w&&(h=w[1],d=v+c.escape(w[0])+p+r(h,0),m+=i(h,d,n,o))}}else if("object"===f){var k="",S=String(e);a("31","[object Object]"===S?"object with keys {"+Object.keys(e).join(", ")+"}":S,k)}}return m}function o(e,t,n){return null==e?0:i(e,"",t,n)}var a=n(502),s=(n(513),n(514)),u=n(516),c=(n(508),n(517)),l=(n(504),"."),p=":";e.exports=o},function(e,t){"use strict";function n(e){var t=e&&(r&&e[r]||e[i]);if("function"==typeof t)return t}var r="function"==typeof Symbol&&Symbol.iterator,i="@@iterator";e.exports=n},function(e,t){"use strict";function n(e){var t=/[=:]/g,n={"=":"=0",":":"=2"},r=(""+e).replace(t,function(e){return n[e]});return"$"+r}function r(e){var t=/(=0|=2)/g,n={"=0":"=","=2":":"},r="."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1);return(""+r).replace(t,function(e){return n[e]})}var i={escape:n,unescape:r};e.exports=i},function(e,t,n){"use strict";var r=n(512),i=r.createFactory,o={a:i("a"),abbr:i("abbr"),address:i("address"),area:i("area"),article:i("article"),aside:i("aside"),audio:i("audio"),b:i("b"),base:i("base"),bdi:i("bdi"),bdo:i("bdo"),big:i("big"),blockquote:i("blockquote"),body:i("body"),br:i("br"),button:i("button"),canvas:i("canvas"),caption:i("caption"),cite:i("cite"),code:i("code"),col:i("col"),colgroup:i("colgroup"),data:i("data"),datalist:i("datalist"),dd:i("dd"),del:i("del"),details:i("details"),dfn:i("dfn"),dialog:i("dialog"),div:i("div"),dl:i("dl"),dt:i("dt"),em:i("em"),embed:i("embed"),fieldset:i("fieldset"),figcaption:i("figcaption"),figure:i("figure"),footer:i("footer"),form:i("form"),h1:i("h1"),h2:i("h2"),h3:i("h3"),h4:i("h4"),h5:i("h5"),h6:i("h6"),head:i("head"),header:i("header"),hgroup:i("hgroup"),hr:i("hr"),html:i("html"),i:i("i"),iframe:i("iframe"),img:i("img"),input:i("input"),ins:i("ins"),kbd:i("kbd"),keygen:i("keygen"),label:i("label"),legend:i("legend"),li:i("li"),link:i("link"),main:i("main"),map:i("map"),mark:i("mark"),menu:i("menu"),menuitem:i("menuitem"),meta:i("meta"),meter:i("meter"),nav:i("nav"),noscript:i("noscript"),object:i("object"),ol:i("ol"),optgroup:i("optgroup"),option:i("option"),output:i("output"),p:i("p"),param:i("param"),picture:i("picture"),pre:i("pre"),progress:i("progress"),q:i("q"),rp:i("rp"),rt:i("rt"),ruby:i("ruby"),s:i("s"),samp:i("samp"),script:i("script"),section:i("section"),select:i("select"),small:i("small"),source:i("source"),span:i("span"),strong:i("strong"),style:i("style"),sub:i("sub"),summary:i("summary"),sup:i("sup"),table:i("table"),tbody:i("tbody"),td:i("td"),textarea:i("textarea"),tfoot:i("tfoot"),th:i("th"),thead:i("thead"),time:i("time"),title:i("title"),tr:i("tr"),track:i("track"),u:i("u"),ul:i("ul"),var:i("var"),video:i("video"),wbr:i("wbr"),circle:i("circle"),clipPath:i("clipPath"),defs:i("defs"),ellipse:i("ellipse"),g:i("g"),image:i("image"),line:i("line"),linearGradient:i("linearGradient"),mask:i("mask"),path:i("path"),pattern:i("pattern"),polygon:i("polygon"),polyline:i("polyline"),radialGradient:i("radialGradient"),rect:i("rect"),stop:i("stop"),svg:i("svg"),text:i("text"),tspan:i("tspan")};e.exports=o},function(e,t,n){"use strict";var r=n(512),i=r.isValidElement,o=n(520);e.exports=o(i)},function(e,t,n){"use strict";var r=n(521);e.exports=function(e){var t=!1;return r(e,t)}},function(e,t,n){"use strict";var r=n(505),i=n(508),o=n(504),a=n(522),s=n(523);e.exports=function(e,t){function n(e){var t=e&&(A&&e[A]||e[T]);if("function"==typeof t)return t}function u(e,t){return e===t?0!==e||1/e===1/t:e!==e&&t!==t}function c(e){this.message=e,this.stack=""}function l(e){function n(n,r,o,s,u,l,p){if(s=s||D,l=l||o,p!==a)if(t)i(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else;return null==r[o]?n?new c(null===r[o]?"The "+u+" `"+l+"` is marked as required "+("in `"+s+"`, but its value is `null`."):"The "+u+" `"+l+"` is marked as required in "+("`"+s+"`, but its value is `undefined`.")):null:e(r,o,s,u,l)}var r=n.bind(null,!1);return r.isRequired=n.bind(null,!0),r}function p(e){function t(t,n,r,i,o,a){var s=t[n],u=k(s);if(u!==e){var l=S(s);return new c("Invalid "+i+" `"+o+"` of type "+("`"+l+"` supplied to `"+r+"`, expected ")+("`"+e+"`."))}return null}return l(t)}function f(){return l(r.thatReturnsNull)}function h(e){function t(t,n,r,i,o){if("function"!=typeof e)return new c("Property `"+o+"` of component `"+r+"` has invalid PropType notation inside arrayOf.");var s=t[n];if(!Array.isArray(s)){var u=k(s);return new c("Invalid "+i+" `"+o+"` of type "+("`"+u+"` supplied to `"+r+"`, expected an array."))}for(var l=0;l<s.length;l++){var p=e(s,l,r,i,o+"["+l+"]",a);if(p instanceof Error)return p}return null}return l(t)}function d(){function t(t,n,r,i,o){var a=t[n];if(!e(a)){var s=k(a);return new c("Invalid "+i+" `"+o+"` of type "+("`"+s+"` supplied to `"+r+"`, expected a single ReactElement."))}return null}return l(t)}function m(e){function t(t,n,r,i,o){if(!(t[n]instanceof e)){var a=e.name||D,s=C(t[n]);return new c("Invalid "+i+" `"+o+"` of type "+("`"+s+"` supplied to `"+r+"`, expected ")+("instance of `"+a+"`."))}return null}return l(t)}function v(e){function t(t,n,r,i,o){for(var a=t[n],s=0;s<e.length;s++)if(u(a,e[s]))return null;var l=JSON.stringify(e);return new c("Invalid "+i+" `"+o+"` of value `"+a+"` "+("supplied to `"+r+"`, expected one of "+l+"."))}return Array.isArray(e)?l(t):r.thatReturnsNull}function y(e){function t(t,n,r,i,o){if("function"!=typeof e)return new c("Property `"+o+"` of component `"+r+"` has invalid PropType notation inside objectOf.");var s=t[n],u=k(s);if("object"!==u)return new c("Invalid "+i+" `"+o+"` of type "+("`"+u+"` supplied to `"+r+"`, expected an object."));for(var l in s)if(s.hasOwnProperty(l)){var p=e(s,l,r,i,o+"."+l,a);if(p instanceof Error)return p}return null}return l(t)}function g(e){function t(t,n,r,i,o){for(var s=0;s<e.length;s++){var u=e[s];if(null==u(t,n,r,i,o,a))return null}return new c("Invalid "+i+" `"+o+"` supplied to "+("`"+r+"`."))}if(!Array.isArray(e))return r.thatReturnsNull;for(var n=0;n<e.length;n++){var i=e[n];if("function"!=typeof i)return o(!1,"Invalid argument supplid to oneOfType. Expected an array of check functions, but received %s at index %s.",E(i),n),r.thatReturnsNull}return l(t)}function _(){function e(e,t,n,r,i){return x(e[t])?null:new c("Invalid "+r+" `"+i+"` supplied to "+("`"+n+"`, expected a ReactNode."))}return l(e)}function b(e){function t(t,n,r,i,o){var s=t[n],u=k(s);if("object"!==u)return new c("Invalid "+i+" `"+o+"` of type `"+u+"` "+("supplied to `"+r+"`, expected `object`."));for(var l in e){var p=e[l];if(p){var f=p(s,l,r,i,o+"."+l,a);if(f)return f}}return null}return l(t)}function x(t){switch(typeof t){case"number":case"string":case"undefined":return!0;case"boolean":return!t;case"object":if(Array.isArray(t))return t.every(x);if(null===t||e(t))return!0;var r=n(t);if(!r)return!1;var i,o=r.call(t);if(r!==t.entries){for(;!(i=o.next()).done;)if(!x(i.value))return!1}else for(;!(i=o.next()).done;){var a=i.value;if(a&&!x(a[1]))return!1}return!0;default:return!1}}function w(e,t){return"symbol"===e||("Symbol"===t["@@toStringTag"]||"function"==typeof Symbol&&t instanceof Symbol)}function k(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":w(t,e)?"symbol":t}function S(e){if("undefined"==typeof e||null===e)return""+e;var t=k(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function E(e){var t=S(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}function C(e){return e.constructor&&e.constructor.name?e.constructor.name:D}var A="function"==typeof Symbol&&Symbol.iterator,T="@@iterator",D="<<anonymous>>",M={array:p("array"),bool:p("boolean"),func:p("function"),number:p("number"),object:p("object"),string:p("string"),symbol:p("symbol"),any:f(),arrayOf:h,element:d(),instanceOf:m,node:_(),objectOf:y,oneOf:v,oneOfType:g,shape:b};return c.prototype=Error.prototype,M.checkPropTypes=s,M.PropTypes=M,M}},function(e,t){"use strict";var n="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";e.exports=n},function(e,t,n){"use strict";function r(e,t,n,r,i){}e.exports=r},function(e,t){"use strict";e.exports="15.6.1"},function(e,t,n){"use strict";var r=n(501),i=r.Component,o=n(512),a=o.isValidElement,s=n(503),u=n(526);e.exports=u(i,a,s)},function(e,t,n){"use strict";function r(e){return e}function i(e,t,n){function i(e,t){var n=g.hasOwnProperty(t)?g[t]:null;w.hasOwnProperty(t)&&u("OVERRIDE_BASE"===n,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e&&u("DEFINE_MANY"===n||"DEFINE_MANY_MERGED"===n,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function o(e,n){if(n){u("function"!=typeof n,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),u(!t(n),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var r=e.prototype,o=r.__reactAutoBindPairs;n.hasOwnProperty(c)&&_.mixins(e,n.mixins);for(var a in n)if(n.hasOwnProperty(a)&&a!==c){var s=n[a],l=r.hasOwnProperty(a);if(i(l,a),_.hasOwnProperty(a))_[a](e,s);else{var p=g.hasOwnProperty(a),d="function"==typeof s,m=d&&!p&&!l&&n.autobind!==!1;if(m)o.push(a,s),r[a]=s;else if(l){var v=g[a];u(p&&("DEFINE_MANY_MERGED"===v||"DEFINE_MANY"===v),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",v,a),"DEFINE_MANY_MERGED"===v?r[a]=f(r[a],s):"DEFINE_MANY"===v&&(r[a]=h(r[a],s))}else r[a]=s}}}else;}function l(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var i=n in _;u(!i,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n);var o=n in e;u(!o,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),e[n]=r}}}function p(e,t){u(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.");for(var n in t)t.hasOwnProperty(n)&&(u(void 0===e[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n),e[n]=t[n]);return e}function f(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var i={};return p(i,n),p(i,r),i}}function h(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function d(e,t){var n=t.bind(e);return n}function m(e){for(var t=e.__reactAutoBindPairs,n=0;n<t.length;n+=2){var r=t[n],i=t[n+1];e[r]=d(e,i)}}function v(e){var t=r(function(e,r,i){this.__reactAutoBindPairs.length&&m(this),this.props=e,this.context=r,this.refs=s,this.updater=i||n,this.state=null;var o=this.getInitialState?this.getInitialState():null;u("object"==typeof o&&!Array.isArray(o),"%s.getInitialState(): must return an object or null",t.displayName||"ReactCompositeComponent"),this.state=o});t.prototype=new k,t.prototype.constructor=t,t.prototype.__reactAutoBindPairs=[],y.forEach(o.bind(null,t)),o(t,b),o(t,e),o(t,x),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),u(t.prototype.render,"createClass(...): Class specification must implement a `render` method.");for(var i in g)t.prototype[i]||(t.prototype[i]=null);return t}var y=[],g={mixins:"DEFINE_MANY",statics:"DEFINE_MANY",propTypes:"DEFINE_MANY",contextTypes:"DEFINE_MANY",childContextTypes:"DEFINE_MANY",getDefaultProps:"DEFINE_MANY_MERGED",getInitialState:"DEFINE_MANY_MERGED",getChildContext:"DEFINE_MANY_MERGED",render:"DEFINE_ONCE",componentWillMount:"DEFINE_MANY",componentDidMount:"DEFINE_MANY",componentWillReceiveProps:"DEFINE_MANY",shouldComponentUpdate:"DEFINE_ONCE",componentWillUpdate:"DEFINE_MANY",componentDidUpdate:"DEFINE_MANY",componentWillUnmount:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},_={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)o(e,t[n])},childContextTypes:function(e,t){e.childContextTypes=a({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=a({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=f(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=a({},e.propTypes,t)},statics:function(e,t){l(e,t)},autobind:function(){}},b={componentDidMount:function(){this.__isMounted=!0}},x={componentWillUnmount:function(){this.__isMounted=!1}},w={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e,t)},isMounted:function(){return!!this.__isMounted}},k=function(){};return a(k.prototype,e.prototype,w),v}var o,a=n(500),s=n(507),u=n(508),c="mixins";o={},e.exports=i},function(e,t,n){"use strict";function r(e){return o.isValidElement(e)?void 0:i("143"),e}var i=n(502),o=n(512);n(508);e.exports=r},function(e,t,n){"use strict";e.exports=n(529)},function(e,t,n){"use strict";var r=n(530),i=n(534),o=n(657),a=n(555),s=n(552),u=n(662),c=n(663),l=n(664),p=n(665);n(504);i.inject();var f={findDOMNode:c,render:o.render,unmountComponentAtNode:o.unmountComponentAtNode,version:u,unstable_batchedUpdates:s.batchedUpdates,unstable_renderSubtreeIntoContainer:p};"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ComponentTree:{getClosestInstanceFromNode:r.getClosestInstanceFromNode,getNodeFromInstance:function(e){return e._renderedComponent&&(e=l(e)),e?r.getNodeFromInstance(e):null}},Mount:o,Reconciler:a});e.exports=f},function(e,t,n){"use strict";function r(e,t){return 1===e.nodeType&&e.getAttribute(d)===String(t)||8===e.nodeType&&e.nodeValue===" react-text: "+t+" "||8===e.nodeType&&e.nodeValue===" react-empty: "+t+" "}function i(e){for(var t;t=e._renderedComponent;)e=t;return e}function o(e,t){var n=i(e);n._hostNode=t,t[v]=n}function a(e){var t=e._hostNode;t&&(delete t[v],e._hostNode=null)}function s(e,t){if(!(e._flags&m.hasCachedChildNodes)){var n=e._renderedChildren,a=t.firstChild;e:for(var s in n)if(n.hasOwnProperty(s)){var u=n[s],c=i(u)._domID;if(0!==c){for(;null!==a;a=a.nextSibling)if(r(a,c)){o(u,a);continue e}p("32",c)}}e._flags|=m.hasCachedChildNodes}}function u(e){if(e[v])return e[v];for(var t=[];!e[v];){if(t.push(e),!e.parentNode)return null;e=e.parentNode}for(var n,r;e&&(r=e[v]);e=t.pop())n=r,t.length&&s(r,e);return n}function c(e){var t=u(e);return null!=t&&t._hostNode===e?t:null}function l(e){if(void 0===e._hostNode?p("33"):void 0,e._hostNode)return e._hostNode;for(var t=[];!e._hostNode;)t.push(e),e._hostParent?void 0:p("34"),e=e._hostParent;for(;t.length;e=t.pop())s(e,e._hostNode);return e._hostNode}var p=n(531),f=n(532),h=n(533),d=(n(508),f.ID_ATTRIBUTE_NAME),m=h,v="__reactInternalInstance$"+Math.random().toString(36).slice(2),y={getClosestInstanceFromNode:u,getInstanceFromNode:c,getNodeFromInstance:l,precacheChildNodes:s,precacheNode:o,uncacheNode:a};e.exports=y},502,function(e,t,n){"use strict";function r(e,t){return(e&t)===t}var i=n(531),o=(n(508),{MUST_USE_PROPERTY:1,HAS_BOOLEAN_VALUE:4,HAS_NUMERIC_VALUE:8,HAS_POSITIVE_NUMERIC_VALUE:24,HAS_OVERLOADED_BOOLEAN_VALUE:32,injectDOMPropertyConfig:function(e){var t=o,n=e.Properties||{},a=e.DOMAttributeNamespaces||{},u=e.DOMAttributeNames||{},c=e.DOMPropertyNames||{},l=e.DOMMutationMethods||{};e.isCustomAttribute&&s._isCustomAttributeFunctions.push(e.isCustomAttribute);for(var p in n){s.properties.hasOwnProperty(p)?i("48",p):void 0;var f=p.toLowerCase(),h=n[p],d={attributeName:f,attributeNamespace:null,propertyName:p,mutationMethod:null,mustUseProperty:r(h,t.MUST_USE_PROPERTY),hasBooleanValue:r(h,t.HAS_BOOLEAN_VALUE),hasNumericValue:r(h,t.HAS_NUMERIC_VALUE),hasPositiveNumericValue:r(h,t.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:r(h,t.HAS_OVERLOADED_BOOLEAN_VALUE)};if(d.hasBooleanValue+d.hasNumericValue+d.hasOverloadedBooleanValue<=1?void 0:i("50",p),u.hasOwnProperty(p)){var m=u[p];d.attributeName=m}a.hasOwnProperty(p)&&(d.attributeNamespace=a[p]),c.hasOwnProperty(p)&&(d.propertyName=c[p]),l.hasOwnProperty(p)&&(d.mutationMethod=l[p]),s.properties[p]=d}}}),a=":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",s={ID_ATTRIBUTE_NAME:"data-reactid",ROOT_ATTRIBUTE_NAME:"data-reactroot",ATTRIBUTE_NAME_START_CHAR:a,ATTRIBUTE_NAME_CHAR:a+"\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",properties:{},getPossibleStandardName:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t<s._isCustomAttributeFunctions.length;t++){var n=s._isCustomAttributeFunctions[t];if(n(e))return!0}return!1},injection:o};e.exports=s},function(e,t){"use strict";var n={hasCachedChildNodes:1};e.exports=n},function(e,t,n){"use strict";function r(){k||(k=!0,g.EventEmitter.injectReactEventListener(y),g.EventPluginHub.injectEventPluginOrder(s),g.EventPluginUtils.injectComponentTree(f),g.EventPluginUtils.injectTreeTraversal(d),g.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:w,EnterLeaveEventPlugin:u,ChangeEventPlugin:a,SelectEventPlugin:x,BeforeInputEventPlugin:o}),g.HostComponent.injectGenericComponentClass(p),g.HostComponent.injectTextComponentClass(m),g.DOMProperty.injectDOMPropertyConfig(i),g.DOMProperty.injectDOMPropertyConfig(c),g.DOMProperty.injectDOMPropertyConfig(b),g.EmptyComponent.injectEmptyComponentFactory(function(e){return new h(e)}),g.Updates.injectReconcileTransaction(_),g.Updates.injectBatchingStrategy(v),g.Component.injectEnvironment(l))}var i=n(535),o=n(536),a=n(551),s=n(564),u=n(565),c=n(570),l=n(571),p=n(584),f=n(530),h=n(628),d=n(629),m=n(630),v=n(631),y=n(632),g=n(635),_=n(636),b=n(644),x=n(645),w=n(646),k=!1;e.exports={inject:r}},function(e,t){"use strict";var n={Properties:{"aria-current":0,"aria-details":0,"aria-disabled":0,"aria-hidden":0,"aria-invalid":0,"aria-keyshortcuts":0,"aria-label":0,"aria-roledescription":0,"aria-autocomplete":0,"aria-checked":0,"aria-expanded":0,"aria-haspopup":0,"aria-level":0,"aria-modal":0,"aria-multiline":0,"aria-multiselectable":0,"aria-orientation":0,"aria-placeholder":0,"aria-pressed":0,"aria-readonly":0,"aria-required":0,"aria-selected":0,"aria-sort":0,"aria-valuemax":0,"aria-valuemin":0,"aria-valuenow":0,"aria-valuetext":0,"aria-atomic":0,"aria-busy":0,"aria-live":0,"aria-relevant":0,"aria-dropeffect":0,"aria-grabbed":0,"aria-activedescendant":0,"aria-colcount":0,"aria-colindex":0,"aria-colspan":0,"aria-controls":0,"aria-describedby":0,"aria-errormessage":0,"aria-flowto":0,"aria-labelledby":0,"aria-owns":0,"aria-posinset":0,"aria-rowcount":0,"aria-rowindex":0,"aria-rowspan":0,"aria-setsize":0},DOMAttributeNames:{},DOMPropertyNames:{}};e.exports=n},function(e,t,n){"use strict";function r(){var e=window.opera;return"object"==typeof e&&"function"==typeof e.version&&parseInt(e.version(),10)<=12}function i(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}function o(e){switch(e){case"topCompositionStart":return C.compositionStart;case"topCompositionEnd":return C.compositionEnd;case"topCompositionUpdate":return C.compositionUpdate}}function a(e,t){return"topKeyDown"===e&&t.keyCode===_}function s(e,t){switch(e){case"topKeyUp":return g.indexOf(t.keyCode)!==-1;case"topKeyDown":return t.keyCode!==_;case"topKeyPress":case"topMouseDown":case"topBlur":return!0;default:return!1}}function u(e){var t=e.detail;return"object"==typeof t&&"data"in t?t.data:null}function c(e,t,n,r){var i,c;if(b?i=o(e):T?s(e,n)&&(i=C.compositionEnd):a(e,n)&&(i=C.compositionStart),!i)return null;k&&(T||i!==C.compositionStart?i===C.compositionEnd&&T&&(c=T.getData()):T=m.getPooled(r));var l=v.getPooled(i,t,n,r);if(c)l.data=c;else{var p=u(n);null!==p&&(l.data=p)}return h.accumulateTwoPhaseDispatches(l),l}function l(e,t){switch(e){case"topCompositionEnd":return u(t);case"topKeyPress":var n=t.which;return n!==S?null:(A=!0,E);case"topTextInput":var r=t.data;return r===E&&A?null:r;default:return null}}function p(e,t){if(T){if("topCompositionEnd"===e||!b&&s(e,t)){var n=T.getData();return m.release(T),T=null,n}return null}switch(e){case"topPaste":return null;case"topKeyPress":return t.which&&!i(t)?String.fromCharCode(t.which):null;case"topCompositionEnd":return k?null:t.data;default:return null}}function f(e,t,n,r){var i;if(i=w?l(e,n):p(e,n),!i)return null;var o=y.getPooled(C.beforeInput,t,n,r);return o.data=i,h.accumulateTwoPhaseDispatches(o),o}var h=n(537),d=n(544),m=n(545),v=n(548),y=n(550),g=[9,13,27,32],_=229,b=d.canUseDOM&&"CompositionEvent"in window,x=null;d.canUseDOM&&"documentMode"in document&&(x=document.documentMode);var w=d.canUseDOM&&"TextEvent"in window&&!x&&!r(),k=d.canUseDOM&&(!b||x&&x>8&&x<=11),S=32,E=String.fromCharCode(S),C={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:["topBlur","topCompositionEnd","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:["topBlur","topCompositionStart","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:["topBlur","topCompositionUpdate","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]}},A=!1,T=null,D={eventTypes:C,extractEvents:function(e,t,n,r){return[c(e,t,n,r),f(e,t,n,r)]}};e.exports=D},function(e,t,n){"use strict";function r(e,t,n){var r=t.dispatchConfig.phasedRegistrationNames[n];return y(e,r)}function i(e,t,n){var i=r(e,n,t);i&&(n._dispatchListeners=m(n._dispatchListeners,i),n._dispatchInstances=m(n._dispatchInstances,e))}function o(e){e&&e.dispatchConfig.phasedRegistrationNames&&d.traverseTwoPhase(e._targetInst,i,e)}function a(e){if(e&&e.dispatchConfig.phasedRegistrationNames){var t=e._targetInst,n=t?d.getParentInstance(t):null;d.traverseTwoPhase(n,i,e)}}function s(e,t,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,i=y(e,r);i&&(n._dispatchListeners=m(n._dispatchListeners,i),n._dispatchInstances=m(n._dispatchInstances,e))}}function u(e){e&&e.dispatchConfig.registrationName&&s(e._targetInst,null,e)}function c(e){v(e,o)}function l(e){v(e,a)}function p(e,t,n,r){d.traverseEnterLeave(n,r,s,e,t)}function f(e){v(e,u)}var h=n(538),d=n(540),m=n(542),v=n(543),y=(n(504),h.getListener),g={accumulateTwoPhaseDispatches:c,accumulateTwoPhaseDispatchesSkipTarget:l,accumulateDirectDispatches:f,accumulateEnterLeaveDispatches:p};e.exports=g},function(e,t,n){"use strict";function r(e){return"button"===e||"input"===e||"select"===e||"textarea"===e}function i(e,t,n){switch(e){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":return!(!n.disabled||!r(t));default:return!1}}var o=n(531),a=n(539),s=n(540),u=n(541),c=n(542),l=n(543),p=(n(508),{}),f=null,h=function(e,t){e&&(s.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e))},d=function(e){return h(e,!0)},m=function(e){return h(e,!1)},v=function(e){return"."+e._rootNodeID},y={injection:{injectEventPluginOrder:a.injectEventPluginOrder,injectEventPluginsByName:a.injectEventPluginsByName},putListener:function(e,t,n){"function"!=typeof n?o("94",t,typeof n):void 0;var r=v(e),i=p[t]||(p[t]={});i[r]=n;var s=a.registrationNameModules[t];s&&s.didPutListener&&s.didPutListener(e,t,n)},getListener:function(e,t){var n=p[t];if(i(t,e._currentElement.type,e._currentElement.props))return null;var r=v(e);return n&&n[r]},deleteListener:function(e,t){var n=a.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t);var r=p[t];if(r){var i=v(e);delete r[i]}},deleteAllListeners:function(e){var t=v(e);for(var n in p)if(p.hasOwnProperty(n)&&p[n][t]){var r=a.registrationNameModules[n];r&&r.willDeleteListener&&r.willDeleteListener(e,n),delete p[n][t]}},extractEvents:function(e,t,n,r){for(var i,o=a.plugins,s=0;s<o.length;s++){var u=o[s];if(u){var l=u.extractEvents(e,t,n,r);l&&(i=c(i,l))}}return i},enqueueEvents:function(e){e&&(f=c(f,e))},processEventQueue:function(e){var t=f;f=null,e?l(t,d):l(t,m),f?o("95"):void 0,u.rethrowCaughtError()},__purge:function(){p={}},__getListenerBank:function(){return p}};e.exports=y},function(e,t,n){"use strict";function r(){if(s)for(var e in u){ +var t=u[e],n=s.indexOf(e);if(n>-1?void 0:a("96",e),!c.plugins[n]){t.extractEvents?void 0:a("97",e),c.plugins[n]=t;var r=t.eventTypes;for(var o in r)i(r[o],t,o)?void 0:a("98",o,e)}}}function i(e,t,n){c.eventNameDispatchConfigs.hasOwnProperty(n)?a("99",n):void 0,c.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var i in r)if(r.hasOwnProperty(i)){var s=r[i];o(s,t,n)}return!0}return!!e.registrationName&&(o(e.registrationName,t,n),!0)}function o(e,t,n){c.registrationNameModules[e]?a("100",e):void 0,c.registrationNameModules[e]=t,c.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var a=n(531),s=(n(508),null),u={},c={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){s?a("101"):void 0,s=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var i=e[n];u.hasOwnProperty(n)&&u[n]===i||(u[n]?a("102",n):void 0,u[n]=i,t=!0)}t&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return c.registrationNameModules[t.registrationName]||null;if(void 0!==t.phasedRegistrationNames){var n=t.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var i=c.registrationNameModules[n[r]];if(i)return i}}return null},_resetEventPlugins:function(){s=null;for(var e in u)u.hasOwnProperty(e)&&delete u[e];c.plugins.length=0;var t=c.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=c.registrationNameModules;for(var i in r)r.hasOwnProperty(i)&&delete r[i]}};e.exports=c},function(e,t,n){"use strict";function r(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e}function i(e){return"topMouseMove"===e||"topTouchMove"===e}function o(e){return"topMouseDown"===e||"topTouchStart"===e}function a(e,t,n,r){var i=e.type||"unknown-event";e.currentTarget=y.getNodeFromInstance(r),t?m.invokeGuardedCallbackWithCatch(i,n,e):m.invokeGuardedCallback(i,n,e),e.currentTarget=null}function s(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var i=0;i<n.length&&!e.isPropagationStopped();i++)a(e,t,n[i],r[i]);else n&&a(e,t,n,r);e._dispatchListeners=null,e._dispatchInstances=null}function u(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t)){for(var r=0;r<t.length&&!e.isPropagationStopped();r++)if(t[r](e,n[r]))return n[r]}else if(t&&t(e,n))return n;return null}function c(e){var t=u(e);return e._dispatchInstances=null,e._dispatchListeners=null,t}function l(e){var t=e._dispatchListeners,n=e._dispatchInstances;Array.isArray(t)?d("103"):void 0,e.currentTarget=t?y.getNodeFromInstance(n):null;var r=t?t(e):null;return e.currentTarget=null,e._dispatchListeners=null,e._dispatchInstances=null,r}function p(e){return!!e._dispatchListeners}var f,h,d=n(531),m=n(541),v=(n(508),n(504),{injectComponentTree:function(e){f=e},injectTreeTraversal:function(e){h=e}}),y={isEndish:r,isMoveish:i,isStartish:o,executeDirectDispatch:l,executeDispatchesInOrder:s,executeDispatchesInOrderStopAtTrue:c,hasDispatches:p,getInstanceFromNode:function(e){return f.getInstanceFromNode(e)},getNodeFromInstance:function(e){return f.getNodeFromInstance(e)},isAncestor:function(e,t){return h.isAncestor(e,t)},getLowestCommonAncestor:function(e,t){return h.getLowestCommonAncestor(e,t)},getParentInstance:function(e){return h.getParentInstance(e)},traverseTwoPhase:function(e,t,n){return h.traverseTwoPhase(e,t,n)},traverseEnterLeave:function(e,t,n,r,i){return h.traverseEnterLeave(e,t,n,r,i)},injection:v};e.exports=y},function(e,t,n){"use strict";function r(e,t,n){try{t(n)}catch(e){null===i&&(i=e)}}var i=null,o={invokeGuardedCallback:r,invokeGuardedCallbackWithCatch:r,rethrowCaughtError:function(){if(i){var e=i;throw i=null,e}}};e.exports=o},function(e,t,n){"use strict";function r(e,t){return null==t?i("30"):void 0,null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}var i=n(531);n(508);e.exports=r},function(e,t){"use strict";function n(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}e.exports=n},function(e,t){"use strict";var n=!("undefined"==typeof window||!window.document||!window.document.createElement),r={canUseDOM:n,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:n&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:n&&!!window.screen,isInWorker:!n};e.exports=r},function(e,t,n){"use strict";function r(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}var i=n(500),o=n(546),a=n(547);i(r.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[a()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,r=n.length,i=this.getText(),o=i.length;for(e=0;e<r&&n[e]===i[e];e++);var a=r-e;for(t=1;t<=a&&n[r-t]===i[o-t];t++);var s=t>1?1-t:void 0;return this._fallbackText=i.slice(e,s),this._fallbackText}}),o.addPoolingTo(r),e.exports=r},[1231,531],function(e,t,n){"use strict";function r(){return!o&&i.canUseDOM&&(o="textContent"in document.documentElement?"textContent":"innerText"),o}var i=n(544),o=null;e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(549),o={data:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n;var i=this.constructor.Interface;for(var o in i)if(i.hasOwnProperty(o)){var s=i[o];s?this[o]=s(n):"target"===o?this.target=r:this[o]=n[o]}var u=null!=n.defaultPrevented?n.defaultPrevented:n.returnValue===!1;return u?this.isDefaultPrevented=a.thatReturnsTrue:this.isDefaultPrevented=a.thatReturnsFalse,this.isPropagationStopped=a.thatReturnsFalse,this}var i=n(500),o=n(546),a=n(505),s=(n(504),"function"==typeof Proxy,["dispatchConfig","_targetInst","nativeEvent","isDefaultPrevented","isPropagationStopped","_dispatchListeners","_dispatchInstances"]),u={type:null,target:null,currentTarget:a.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};i(r.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=a.thatReturnsTrue)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=a.thatReturnsTrue)},persist:function(){this.isPersistent=a.thatReturnsTrue},isPersistent:a.thatReturnsFalse,destructor:function(){var e=this.constructor.Interface;for(var t in e)this[t]=null;for(var n=0;n<s.length;n++)this[s[n]]=null}}),r.Interface=u,r.augmentClass=function(e,t){var n=this,r=function(){};r.prototype=n.prototype;var a=new r;i(a,e.prototype),e.prototype=a,e.prototype.constructor=e,e.Interface=i({},n.Interface,t),e.augmentClass=n.augmentClass,o.addPoolingTo(e,o.fourArgumentPooler)},o.addPoolingTo(r,o.fourArgumentPooler),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(549),o={data:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n){var r=C.getPooled(O.change,e,t,n);return r.type="change",w.accumulateTwoPhaseDispatches(r),r}function i(e){var t=e.nodeName&&e.nodeName.toLowerCase();return"select"===t||"input"===t&&"file"===e.type}function o(e){var t=r(I,e,T(e));E.batchedUpdates(a,t)}function a(e){x.enqueueEvents(e),x.processEventQueue(!1)}function s(e,t){P=e,I=t,P.attachEvent("onchange",o)}function u(){P&&(P.detachEvent("onchange",o),P=null,I=null)}function c(e,t){var n=A.updateValueIfChanged(e),r=t.simulated===!0&&j._allowSimulatedPassThrough;if(n||r)return e}function l(e,t){if("topChange"===e)return t}function p(e,t,n){"topFocus"===e?(u(),s(t,n)):"topBlur"===e&&u()}function f(e,t){P=e,I=t,P.attachEvent("onpropertychange",d)}function h(){P&&(P.detachEvent("onpropertychange",d),P=null,I=null)}function d(e){"value"===e.propertyName&&c(I,e)&&o(e)}function m(e,t,n){"topFocus"===e?(h(),f(t,n)):"topBlur"===e&&h()}function v(e,t,n){if("topSelectionChange"===e||"topKeyUp"===e||"topKeyDown"===e)return c(I,n)}function y(e){var t=e.nodeName;return t&&"input"===t.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}function g(e,t,n){if("topClick"===e)return c(t,n)}function _(e,t,n){if("topInput"===e||"topChange"===e)return c(t,n)}function b(e,t){if(null!=e){var n=e._wrapperState||t._wrapperState;if(n&&n.controlled&&"number"===t.type){var r=""+t.value;t.getAttribute("value")!==r&&t.setAttribute("value",r)}}}var x=n(538),w=n(537),k=n(544),S=n(530),E=n(552),C=n(549),A=n(560),T=n(561),D=n(562),M=n(563),O={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:["topBlur","topChange","topClick","topFocus","topInput","topKeyDown","topKeyUp","topSelectionChange"]}},P=null,I=null,N=!1;k.canUseDOM&&(N=D("change")&&(!document.documentMode||document.documentMode>8));var R=!1;k.canUseDOM&&(R=D("input")&&(!("documentMode"in document)||document.documentMode>9));var j={eventTypes:O,_allowSimulatedPassThrough:!0,_isInputEventSupported:R,extractEvents:function(e,t,n,o){var a,s,u=t?S.getNodeFromInstance(t):window;if(i(u)?N?a=l:s=p:M(u)?R?a=_:(a=v,s=m):y(u)&&(a=g),a){var c=a(e,t,n);if(c){var f=r(c,n,o);return f}}s&&s(e,u,t),"topBlur"===e&&b(t,u)}};e.exports=j},function(e,t,n){"use strict";function r(){A.ReactReconcileTransaction&&x?void 0:l("123")}function i(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=f.getPooled(),this.reconcileTransaction=A.ReactReconcileTransaction.getPooled(!0)}function o(e,t,n,i,o,a){return r(),x.batchedUpdates(e,t,n,i,o,a)}function a(e,t){return e._mountOrder-t._mountOrder}function s(e){var t=e.dirtyComponentsLength;t!==y.length?l("124",t,y.length):void 0,y.sort(a),g++;for(var n=0;n<t;n++){var r=y[n],i=r._pendingCallbacks;r._pendingCallbacks=null;var o;if(d.logTopLevelRenders){var s=r;r._currentElement.type.isReactTopLevelWrapper&&(s=r._renderedComponent),o="React update: "+s.getName(),console.time(o)}if(m.performUpdateIfNecessary(r,e.reconcileTransaction,g),o&&console.timeEnd(o),i)for(var u=0;u<i.length;u++)e.callbackQueue.enqueue(i[u],r.getPublicInstance())}}function u(e){return r(),x.isBatchingUpdates?(y.push(e),void(null==e._updateBatchNumber&&(e._updateBatchNumber=g+1))):void x.batchedUpdates(u,e)}function c(e,t){x.isBatchingUpdates?void 0:l("125"),_.enqueue(e,t),b=!0}var l=n(531),p=n(500),f=n(553),h=n(546),d=n(554),m=n(555),v=n(559),y=(n(508),[]),g=0,_=f.getPooled(),b=!1,x=null,w={initialize:function(){this.dirtyComponentsLength=y.length},close:function(){this.dirtyComponentsLength!==y.length?(y.splice(0,this.dirtyComponentsLength),E()):y.length=0}},k={initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}},S=[w,k];p(i.prototype,v,{getTransactionWrappers:function(){return S},destructor:function(){this.dirtyComponentsLength=null,f.release(this.callbackQueue),this.callbackQueue=null,A.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(e,t,n){return v.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,e,t,n)}}),h.addPoolingTo(i);var E=function(){for(;y.length||b;){if(y.length){var e=i.getPooled();e.perform(s,null,e),i.release(e)}if(b){b=!1;var t=_;_=f.getPooled(),t.notifyAll(),f.release(t)}}},C={injectReconcileTransaction:function(e){e?void 0:l("126"),A.ReactReconcileTransaction=e},injectBatchingStrategy:function(e){e?void 0:l("127"),"function"!=typeof e.batchedUpdates?l("128"):void 0,"boolean"!=typeof e.isBatchingUpdates?l("129"):void 0,x=e}},A={ReactReconcileTransaction:null,batchedUpdates:o,enqueueUpdate:u,flushBatchedUpdates:E,injection:C,asap:c};e.exports=A},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=n(531),o=n(546),a=(n(508),function(){function e(t){r(this,e),this._callbacks=null,this._contexts=null,this._arg=t}return e.prototype.enqueue=function(e,t){this._callbacks=this._callbacks||[],this._callbacks.push(e),this._contexts=this._contexts||[],this._contexts.push(t)},e.prototype.notifyAll=function(){var e=this._callbacks,t=this._contexts,n=this._arg;if(e&&t){e.length!==t.length?i("24"):void 0,this._callbacks=null,this._contexts=null;for(var r=0;r<e.length;r++)e[r].call(t[r],n);e.length=0,t.length=0}},e.prototype.checkpoint=function(){return this._callbacks?this._callbacks.length:0},e.prototype.rollback=function(e){this._callbacks&&this._contexts&&(this._callbacks.length=e,this._contexts.length=e)},e.prototype.reset=function(){this._callbacks=null,this._contexts=null},e.prototype.destructor=function(){this.reset()},e}());e.exports=o.addPoolingTo(a)},function(e,t){"use strict";var n={logTopLevelRenders:!1};e.exports=n},function(e,t,n){"use strict";function r(){i.attachRefs(this,this._currentElement)}var i=n(556),o=(n(558),n(504),{mountComponent:function(e,t,n,i,o,a){var s=e.mountComponent(t,n,i,o,a);return e._currentElement&&null!=e._currentElement.ref&&t.getReactMountReady().enqueue(r,e),s},getHostNode:function(e){return e.getHostNode()},unmountComponent:function(e,t){i.detachRefs(e,e._currentElement),e.unmountComponent(t)},receiveComponent:function(e,t,n,o){var a=e._currentElement;if(t!==a||o!==e._context){var s=i.shouldUpdateRefs(a,t);s&&i.detachRefs(e,a),e.receiveComponent(t,n,o),s&&e._currentElement&&null!=e._currentElement.ref&&n.getReactMountReady().enqueue(r,e)}},performUpdateIfNecessary:function(e,t,n){e._updateBatchNumber===n&&e.performUpdateIfNecessary(t)}});e.exports=o},function(e,t,n){"use strict";function r(e,t,n){"function"==typeof e?e(t.getPublicInstance()):o.addComponentAsRefTo(t,e,n)}function i(e,t,n){"function"==typeof e?e(null):o.removeComponentAsRefFrom(t,e,n)}var o=n(557),a={};a.attachRefs=function(e,t){if(null!==t&&"object"==typeof t){var n=t.ref;null!=n&&r(n,e,t._owner)}},a.shouldUpdateRefs=function(e,t){var n=null,r=null;null!==e&&"object"==typeof e&&(n=e.ref,r=e._owner);var i=null,o=null;return null!==t&&"object"==typeof t&&(i=t.ref,o=t._owner),n!==i||"string"==typeof i&&o!==r},a.detachRefs=function(e,t){if(null!==t&&"object"==typeof t){var n=t.ref;null!=n&&i(n,e,t._owner)}},e.exports=a},function(e,t,n){"use strict";function r(e){return!(!e||"function"!=typeof e.attachRef||"function"!=typeof e.detachRef)}var i=n(531),o=(n(508),{addComponentAsRefTo:function(e,t,n){r(n)?void 0:i("119"),n.attachRef(t,e)},removeComponentAsRefFrom:function(e,t,n){r(n)?void 0:i("120");var o=n.getPublicInstance();o&&o.refs[t]===e.getPublicInstance()&&n.detachRef(t)}});e.exports=o},function(e,t,n){"use strict";var r=null;e.exports={debugTool:r}},function(e,t,n){"use strict";var r=n(531),i=(n(508),{}),o={reinitializeTransaction:function(){this.transactionWrappers=this.getTransactionWrappers(),this.wrapperInitData?this.wrapperInitData.length=0:this.wrapperInitData=[],this._isInTransaction=!1},_isInTransaction:!1,getTransactionWrappers:null,isInTransaction:function(){return!!this._isInTransaction},perform:function(e,t,n,i,o,a,s,u){this.isInTransaction()?r("27"):void 0;var c,l;try{this._isInTransaction=!0,c=!0,this.initializeAll(0),l=e.call(t,n,i,o,a,s,u),c=!1}finally{try{if(c)try{this.closeAll(0)}catch(e){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return l},initializeAll:function(e){for(var t=this.transactionWrappers,n=e;n<t.length;n++){var r=t[n];try{this.wrapperInitData[n]=i,this.wrapperInitData[n]=r.initialize?r.initialize.call(this):null}finally{if(this.wrapperInitData[n]===i)try{this.initializeAll(n+1)}catch(e){}}}},closeAll:function(e){this.isInTransaction()?void 0:r("28");for(var t=this.transactionWrappers,n=e;n<t.length;n++){var o,a=t[n],s=this.wrapperInitData[n];try{o=!0,s!==i&&a.close&&a.close.call(this,s),o=!1}finally{if(o)try{this.closeAll(n+1)}catch(e){}}}this.wrapperInitData.length=0}};e.exports=o},function(e,t,n){"use strict";function r(e){var t=e.type,n=e.nodeName;return n&&"input"===n.toLowerCase()&&("checkbox"===t||"radio"===t)}function i(e){return e._wrapperState.valueTracker}function o(e,t){e._wrapperState.valueTracker=t}function a(e){delete e._wrapperState.valueTracker}function s(e){var t;return e&&(t=r(e)?""+e.checked:e.value),t}var u=n(530),c={_getTrackerFromNode:function(e){return i(u.getInstanceFromNode(e))},track:function(e){if(!i(e)){var t=u.getNodeFromInstance(e),n=r(t)?"checked":"value",s=Object.getOwnPropertyDescriptor(t.constructor.prototype,n),c=""+t[n];t.hasOwnProperty(n)||"function"!=typeof s.get||"function"!=typeof s.set||(Object.defineProperty(t,n,{enumerable:s.enumerable,configurable:!0,get:function(){return s.get.call(this)},set:function(e){c=""+e,s.set.call(this,e)}}),o(e,{getValue:function(){return c},setValue:function(e){c=""+e},stopTracking:function(){a(e),delete t[n]}}))}},updateValueIfChanged:function(e){if(!e)return!1;var t=i(e);if(!t)return c.track(e),!0;var n=t.getValue(),r=s(u.getNodeFromInstance(e));return r!==n&&(t.setValue(r),!0)},stopTracking:function(e){var t=i(e);t&&t.stopTracking()}};e.exports=c},function(e,t){"use strict";function n(e){var t=e.target||e.srcElement||window;return t.correspondingUseElement&&(t=t.correspondingUseElement),3===t.nodeType?t.parentNode:t}e.exports=n},function(e,t,n){"use strict";/** + * Checks if an event is supported in the current execution environment. + * + * NOTE: This will not work correctly for non-generic events such as `change`, + * `reset`, `load`, `error`, and `select`. + * + * Borrows from Modernizr. + * + * @param {string} eventNameSuffix Event name, e.g. "click". + * @param {?boolean} capture Check if the capture phase is supported. + * @return {boolean} True if the event is supported. + * @internal + * @license Modernizr 3.0.0pre (Custom Build) | MIT + */ +function r(e,t){if(!o.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var a=document.createElement("div");a.setAttribute(n,"return;"),r="function"==typeof a[n]}return!r&&i&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var i,o=n(544);o.canUseDOM&&(i=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),e.exports=r},function(e,t){"use strict";function n(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!r[e.type]:"textarea"===t}var r={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};e.exports=n},function(e,t){"use strict";var n=["ResponderEventPlugin","SimpleEventPlugin","TapEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin"];e.exports=n},function(e,t,n){"use strict";var r=n(537),i=n(530),o=n(566),a={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},s={eventTypes:a,extractEvents:function(e,t,n,s){if("topMouseOver"===e&&(n.relatedTarget||n.fromElement))return null;if("topMouseOut"!==e&&"topMouseOver"!==e)return null;var u;if(s.window===s)u=s;else{var c=s.ownerDocument;u=c?c.defaultView||c.parentWindow:window}var l,p;if("topMouseOut"===e){l=t;var f=n.relatedTarget||n.toElement;p=f?i.getClosestInstanceFromNode(f):null}else l=null,p=t;if(l===p)return null;var h=null==l?u:i.getNodeFromInstance(l),d=null==p?u:i.getNodeFromInstance(p),m=o.getPooled(a.mouseLeave,l,n,s);m.type="mouseleave",m.target=h,m.relatedTarget=d;var v=o.getPooled(a.mouseEnter,p,n,s);return v.type="mouseenter",v.target=d,v.relatedTarget=h,r.accumulateEnterLeaveDispatches(m,v,l,p),[m,v]}};e.exports=s},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(567),o=n(568),a=n(569),s={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:a,button:function(e){var t=e.button;return"which"in e?t:2===t?2:4===t?1:0},buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},pageX:function(e){return"pageX"in e?e.pageX:e.clientX+o.currentScrollLeft},pageY:function(e){return"pageY"in e?e.pageY:e.clientY+o.currentScrollTop}};i.augmentClass(r,s),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(549),o=n(561),a={view:function(e){if(e.view)return e.view;var t=o(e);if(t.window===t)return t;var n=t.ownerDocument;return n?n.defaultView||n.parentWindow:window},detail:function(e){return e.detail||0}};i.augmentClass(r,a),e.exports=r},function(e,t){"use strict";var n={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(e){n.currentScrollLeft=e.x,n.currentScrollTop=e.y}};e.exports=n},function(e,t){"use strict";function n(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=i[e];return!!r&&!!n[r]}function r(e){return n}var i={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};e.exports=r},function(e,t,n){"use strict";var r=n(532),i=r.injection.MUST_USE_PROPERTY,o=r.injection.HAS_BOOLEAN_VALUE,a=r.injection.HAS_NUMERIC_VALUE,s=r.injection.HAS_POSITIVE_NUMERIC_VALUE,u=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,c={isCustomAttribute:RegExp.prototype.test.bind(new RegExp("^(data|aria)-["+r.ATTRIBUTE_NAME_CHAR+"]*$")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:o,allowTransparency:0,alt:0,as:0,async:o,autoComplete:0,autoPlay:o,capture:o,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:i|o,cite:0,classID:0,className:0,cols:s,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:o,coords:0,crossOrigin:0,data:0,dateTime:0,default:o,defer:o,dir:0,disabled:o,download:u,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:o,formTarget:0,frameBorder:0,headers:0,height:0,hidden:o,high:0,href:0,hrefLang:0,htmlFor:0,httpEquiv:0,icon:0,id:0,inputMode:0,integrity:0,is:0,keyParams:0,keyType:0,kind:0,label:0,lang:0,list:0,loop:o,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:i|o,muted:i|o,name:0,nonce:0,noValidate:o,open:o,optimum:0,pattern:0,placeholder:0,playsInline:o,poster:0,preload:0,profile:0,radioGroup:0,readOnly:o,referrerPolicy:0,rel:0,required:o,reversed:o,role:0,rows:s,rowSpan:a,sandbox:0,scope:0,scoped:o,scrolling:0,seamless:o,selected:i|o,shape:0,size:s,sizes:0,span:s,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:a,step:0,style:0,summary:0,tabIndex:0,target:0,title:0,type:0,useMap:0,value:0,width:0,wmode:0,wrap:0,about:0,datatype:0,inlist:0,prefix:0,property:0,resource:0,typeof:0,vocab:0,autoCapitalize:0,autoCorrect:0,autoSave:0,color:0,itemProp:0,itemScope:o,itemType:0,itemID:0,itemRef:0,results:0,security:0,unselectable:0},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{},DOMMutationMethods:{value:function(e,t){return null==t?e.removeAttribute("value"):void("number"!==e.type||e.hasAttribute("value")===!1?e.setAttribute("value",""+t):e.validity&&!e.validity.badInput&&e.ownerDocument.activeElement!==e&&e.setAttribute("value",""+t))}}};e.exports=c},function(e,t,n){"use strict";var r=n(572),i=n(583),o={processChildrenUpdates:i.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};e.exports=o},function(e,t,n){"use strict";function r(e,t){return Array.isArray(t)&&(t=t[1]),t?t.nextSibling:e.firstChild}function i(e,t,n){l.insertTreeBefore(e,t,n)}function o(e,t,n){Array.isArray(t)?s(e,t[0],t[1],n):m(e,t,n)}function a(e,t){if(Array.isArray(t)){var n=t[1];t=t[0],u(e,t,n),e.removeChild(n)}e.removeChild(t)}function s(e,t,n,r){for(var i=t;;){var o=i.nextSibling;if(m(e,i,r),i===n)break;i=o}}function u(e,t,n){for(;;){var r=t.nextSibling;if(r===n)break;e.removeChild(r)}}function c(e,t,n){var r=e.parentNode,i=e.nextSibling;i===t?n&&m(r,document.createTextNode(n),i):n?(d(i,n),u(r,i,t)):u(r,e,t)}var l=n(573),p=n(579),f=(n(530),n(558),n(576)),h=n(575),d=n(577),m=f(function(e,t,n){e.insertBefore(t,n)}),v=p.dangerouslyReplaceNodeWithMarkup,y={dangerouslyReplaceNodeWithMarkup:v,replaceDelimitedText:c,processUpdates:function(e,t){for(var n=0;n<t.length;n++){var s=t[n];switch(s.type){case"INSERT_MARKUP":i(e,s.content,r(e,s.afterNode));break;case"MOVE_EXISTING":o(e,s.fromNode,r(e,s.afterNode));break;case"SET_MARKUP":h(e,s.content);break;case"TEXT_CONTENT":d(e,s.content);break;case"REMOVE_NODE":a(e,s.fromNode)}}}};e.exports=y},function(e,t,n){"use strict";function r(e){if(v){var t=e.node,n=e.children;if(n.length)for(var r=0;r<n.length;r++)y(t,n[r],null);else null!=e.html?p(t,e.html):null!=e.text&&h(t,e.text)}}function i(e,t){e.parentNode.replaceChild(t.node,e),r(t)}function o(e,t){v?e.children.push(t):e.node.appendChild(t.node)}function a(e,t){v?e.html=t:p(e.node,t)}function s(e,t){v?e.text=t:h(e.node,t)}function u(){return this.node.nodeName}function c(e){return{node:e,children:[],html:null,text:null,toString:u}}var l=n(574),p=n(575),f=n(576),h=n(577),d=1,m=11,v="undefined"!=typeof document&&"number"==typeof document.documentMode||"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent&&/\bEdge\/\d/.test(navigator.userAgent),y=f(function(e,t,n){t.node.nodeType===m||t.node.nodeType===d&&"object"===t.node.nodeName.toLowerCase()&&(null==t.node.namespaceURI||t.node.namespaceURI===l.html)?(r(t),e.insertBefore(t.node,n)):(e.insertBefore(t.node,n),r(t))});c.insertTreeBefore=y,c.replaceChildWithTree=i,c.queueChild=o,c.queueHTML=a,c.queueText=s,e.exports=c},function(e,t){"use strict";var n={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};e.exports=n},function(e,t,n){"use strict";var r,i=n(544),o=n(574),a=/^[ \r\n\t\f]/,s=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,u=n(576),c=u(function(e,t){if(e.namespaceURI!==o.svg||"innerHTML"in e)e.innerHTML=t;else{r=r||document.createElement("div"),r.innerHTML="<svg>"+t+"</svg>";for(var n=r.firstChild;n.firstChild;)e.appendChild(n.firstChild)}});if(i.canUseDOM){var l=document.createElement("div");l.innerHTML=" ",""===l.innerHTML&&(c=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),a.test(t)||"<"===t[0]&&s.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t}),l=null}e.exports=c},function(e,t){"use strict";var n=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,i){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,i)})}:e};e.exports=n},function(e,t,n){"use strict";var r=n(544),i=n(578),o=n(575),a=function(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){return 3===e.nodeType?void(e.nodeValue=t):void o(e,i(t))})),e.exports=a},function(e,t){"use strict";function n(e){var t=""+e,n=i.exec(t);if(!n)return t;var r,o="",a=0,s=0;for(a=n.index;a<t.length;a++){switch(t.charCodeAt(a)){case 34:r="&quot;";break;case 38:r="&amp;";break;case 39:r="&#x27;";break;case 60:r="&lt;";break;case 62:r="&gt;";break;default:continue}s!==a&&(o+=t.substring(s,a)),s=a+1,o+=r}return s!==a?o+t.substring(s,a):o}function r(e){return"boolean"==typeof e||"number"==typeof e?""+e:n(e)}var i=/["'&<>]/;e.exports=r},function(e,t,n){"use strict";var r=n(531),i=n(573),o=n(544),a=n(580),s=n(505),u=(n(508),{dangerouslyReplaceNodeWithMarkup:function(e,t){if(o.canUseDOM?void 0:r("56"),t?void 0:r("57"),"HTML"===e.nodeName?r("58"):void 0,"string"==typeof t){var n=a(t,s)[0];e.parentNode.replaceChild(n,e)}else i.replaceChildWithTree(e,t)}});e.exports=u},function(e,t,n){"use strict";function r(e){var t=e.match(l);return t&&t[1].toLowerCase()}function i(e,t){var n=c;c?void 0:u(!1);var i=r(e),o=i&&s(i);if(o){n.innerHTML=o[1]+e+o[2];for(var l=o[0];l--;)n=n.lastChild}else n.innerHTML=e;var p=n.getElementsByTagName("script");p.length&&(t?void 0:u(!1),a(p).forEach(t));for(var f=Array.from(n.childNodes);n.lastChild;)n.removeChild(n.lastChild);return f}var o=n(544),a=n(581),s=n(582),u=n(508),c=o.canUseDOM?document.createElement("div"):null,l=/^\s*<(\w+)/;e.exports=i},function(e,t,n){"use strict";function r(e){var t=e.length;if(Array.isArray(e)||"object"!=typeof e&&"function"!=typeof e?a(!1):void 0,"number"!=typeof t?a(!1):void 0,0===t||t-1 in e?void 0:a(!1),"function"==typeof e.callee?a(!1):void 0,e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(e){}for(var n=Array(t),r=0;r<t;r++)n[r]=e[r];return n}function i(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"length"in e&&!("setInterval"in e)&&"number"!=typeof e.nodeType&&(Array.isArray(e)||"callee"in e||"item"in e)}function o(e){return i(e)?Array.isArray(e)?e.slice():r(e):[e]}var a=n(508);e.exports=o},function(e,t,n){"use strict";function r(e){return a?void 0:o(!1),f.hasOwnProperty(e)||(e="*"),s.hasOwnProperty(e)||("*"===e?a.innerHTML="<link />":a.innerHTML="<"+e+"></"+e+">",s[e]=!a.firstChild),s[e]?f[e]:null}var i=n(544),o=n(508),a=i.canUseDOM?document.createElement("div"):null,s={},u=[1,'<select multiple="true">',"</select>"],c=[1,"<table>","</table>"],l=[3,"<table><tbody><tr>","</tr></tbody></table>"],p=[1,'<svg xmlns="http://www.w3.org/2000/svg">',"</svg>"],f={"*":[1,"?<div>","</div>"],area:[1,"<map>","</map>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],legend:[1,"<fieldset>","</fieldset>"],param:[1,"<object>","</object>"],tr:[2,"<table><tbody>","</tbody></table>"],optgroup:u,option:u,caption:c,colgroup:c,tbody:c,tfoot:c,thead:c,td:l,th:l},h=["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"];h.forEach(function(e){f[e]=p,s[e]=!0}),e.exports=r},function(e,t,n){"use strict";var r=n(572),i=n(530),o={dangerouslyProcessChildrenUpdates:function(e,t){var n=i.getNodeFromInstance(e);r.processUpdates(n,t)}};e.exports=o},function(e,t,n){"use strict";function r(e){if(e){var t=e._currentElement._owner||null;if(t){var n=t.getName();if(n)return" This DOM node was rendered by `"+n+"`."}}return""}function i(e,t){t&&(Y[e._tag]&&(null!=t.children||null!=t.dangerouslySetInnerHTML?v("137",e._tag,e._currentElement._owner?" Check the render method of "+e._currentElement._owner.getName()+".":""):void 0),null!=t.dangerouslySetInnerHTML&&(null!=t.children?v("60"):void 0,"object"==typeof t.dangerouslySetInnerHTML&&K in t.dangerouslySetInnerHTML?void 0:v("61")),null!=t.style&&"object"!=typeof t.style?v("62",r(e)):void 0)}function o(e,t,n,r){if(!(r instanceof N)){var i=e._hostContainerInfo,o=i._node&&i._node.nodeType===H,s=o?i._node:i._ownerDocument;z(t,s),r.getReactMountReady().enqueue(a,{inst:e,registrationName:t,listener:n})}}function a(){var e=this;S.putListener(e.inst,e.registrationName,e.listener)}function s(){var e=this;D.postMountWrapper(e)}function u(){var e=this;P.postMountWrapper(e)}function c(){var e=this;M.postMountWrapper(e)}function l(){j.track(this)}function p(){var e=this;e._rootNodeID?void 0:v("63");var t=L(e);switch(t?void 0:v("64"),e._tag){case"iframe":case"object":e._wrapperState.listeners=[C.trapBubbledEvent("topLoad","load",t)];break;case"video":case"audio":e._wrapperState.listeners=[];for(var n in J)J.hasOwnProperty(n)&&e._wrapperState.listeners.push(C.trapBubbledEvent(n,J[n],t));break;case"source":e._wrapperState.listeners=[C.trapBubbledEvent("topError","error",t)];break;case"img":e._wrapperState.listeners=[C.trapBubbledEvent("topError","error",t),C.trapBubbledEvent("topLoad","load",t)];break;case"form":e._wrapperState.listeners=[C.trapBubbledEvent("topReset","reset",t),C.trapBubbledEvent("topSubmit","submit",t)];break;case"input":case"select":case"textarea":e._wrapperState.listeners=[C.trapBubbledEvent("topInvalid","invalid",t)]}}function f(){O.postUpdateWrapper(this)}function h(e){Q.call(Z,e)||($.test(e)?void 0:v("65",e),Z[e]=!0)}function d(e,t){return e.indexOf("-")>=0||null!=t.is}function m(e){var t=e.type;h(t),this._currentElement=e,this._tag=t.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}var v=n(531),y=n(500),g=n(585),_=n(587),b=n(573),x=n(574),w=n(532),k=n(595),S=n(538),E=n(539),C=n(597),A=n(533),T=n(530),D=n(600),M=n(603),O=n(604),P=n(605),I=(n(558),n(606)),N=n(624),R=(n(505),n(578)),j=(n(508),n(562),n(613),n(560)),F=(n(627),n(504),A),B=S.deleteListener,L=T.getNodeFromInstance,z=C.listenTo,q=E.registrationNameModules,U={string:!0,number:!0},W="style",K="__html",V={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},H=11,J={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},G={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},X={listing:!0,pre:!0,textarea:!0},Y=y({menuitem:!0},G),$=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,Z={},Q={}.hasOwnProperty,ee=1;m.displayName="ReactDOMComponent",m.Mixin={mountComponent:function(e,t,n,r){this._rootNodeID=ee++,this._domID=n._idCounter++,this._hostParent=t,this._hostContainerInfo=n;var o=this._currentElement.props;switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":this._wrapperState={listeners:null},e.getReactMountReady().enqueue(p,this);break;case"input":D.mountWrapper(this,o,t),o=D.getHostProps(this,o),e.getReactMountReady().enqueue(l,this),e.getReactMountReady().enqueue(p,this);break;case"option":M.mountWrapper(this,o,t),o=M.getHostProps(this,o);break;case"select":O.mountWrapper(this,o,t),o=O.getHostProps(this,o),e.getReactMountReady().enqueue(p,this);break;case"textarea":P.mountWrapper(this,o,t),o=P.getHostProps(this,o),e.getReactMountReady().enqueue(l,this),e.getReactMountReady().enqueue(p,this)}i(this,o);var a,f;null!=t?(a=t._namespaceURI,f=t._tag):n._tag&&(a=n._namespaceURI,f=n._tag),(null==a||a===x.svg&&"foreignobject"===f)&&(a=x.html),a===x.html&&("svg"===this._tag?a=x.svg:"math"===this._tag&&(a=x.mathml)),this._namespaceURI=a;var h;if(e.useCreateElement){var d,m=n._ownerDocument;if(a===x.html)if("script"===this._tag){var v=m.createElement("div"),y=this._currentElement.type;v.innerHTML="<"+y+"></"+y+">",d=v.removeChild(v.firstChild)}else d=o.is?m.createElement(this._currentElement.type,o.is):m.createElement(this._currentElement.type);else d=m.createElementNS(a,this._currentElement.type);T.precacheNode(this,d),this._flags|=F.hasCachedChildNodes,this._hostParent||k.setAttributeForRoot(d),this._updateDOMProperties(null,o,e);var _=b(d);this._createInitialChildren(e,o,r,_),h=_}else{var w=this._createOpenTagMarkupAndPutListeners(e,o),S=this._createContentMarkup(e,o,r);h=!S&&G[this._tag]?w+"/>":w+">"+S+"</"+this._currentElement.type+">"}switch(this._tag){case"input":e.getReactMountReady().enqueue(s,this),o.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"textarea":e.getReactMountReady().enqueue(u,this),o.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"select":o.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"button":o.autoFocus&&e.getReactMountReady().enqueue(g.focusDOMComponent,this);break;case"option":e.getReactMountReady().enqueue(c,this)}return h},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var i=t[r];if(null!=i)if(q.hasOwnProperty(r))i&&o(this,r,i,e);else{r===W&&(i&&(i=this._previousStyleCopy=y({},t.style)),i=_.createMarkupForStyles(i,this));var a=null;null!=this._tag&&d(this._tag,t)?V.hasOwnProperty(r)||(a=k.createMarkupForCustomAttribute(r,i)):a=k.createMarkupForProperty(r,i),a&&(n+=" "+a)}}return e.renderToStaticMarkup?n:(this._hostParent||(n+=" "+k.createMarkupForRoot()),n+=" "+k.createMarkupForID(this._domID))},_createContentMarkup:function(e,t,n){var r="",i=t.dangerouslySetInnerHTML;if(null!=i)null!=i.__html&&(r=i.__html);else{var o=U[typeof t.children]?t.children:null,a=null!=o?null:t.children;if(null!=o)r=R(o);else if(null!=a){var s=this.mountChildren(a,e,n);r=s.join("")}}return X[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var i=t.dangerouslySetInnerHTML;if(null!=i)null!=i.__html&&b.queueHTML(r,i.__html);else{var o=U[typeof t.children]?t.children:null,a=null!=o?null:t.children;if(null!=o)""!==o&&b.queueText(r,o);else if(null!=a)for(var s=this.mountChildren(a,e,n),u=0;u<s.length;u++)b.queueChild(r,s[u])}},receiveComponent:function(e,t,n){var r=this._currentElement;this._currentElement=e,this.updateComponent(t,r,e,n)},updateComponent:function(e,t,n,r){var o=t.props,a=this._currentElement.props;switch(this._tag){case"input":o=D.getHostProps(this,o),a=D.getHostProps(this,a);break;case"option":o=M.getHostProps(this,o),a=M.getHostProps(this,a);break;case"select":o=O.getHostProps(this,o),a=O.getHostProps(this,a);break;case"textarea":o=P.getHostProps(this,o),a=P.getHostProps(this,a)}switch(i(this,a),this._updateDOMProperties(o,a,e),this._updateDOMChildren(o,a,e,r),this._tag){case"input":D.updateWrapper(this);break;case"textarea":P.updateWrapper(this);break;case"select":e.getReactMountReady().enqueue(f,this)}},_updateDOMProperties:function(e,t,n){var r,i,a;for(r in e)if(!t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&null!=e[r])if(r===W){var s=this._previousStyleCopy;for(i in s)s.hasOwnProperty(i)&&(a=a||{},a[i]="");this._previousStyleCopy=null}else q.hasOwnProperty(r)?e[r]&&B(this,r):d(this._tag,e)?V.hasOwnProperty(r)||k.deleteValueForAttribute(L(this),r):(w.properties[r]||w.isCustomAttribute(r))&&k.deleteValueForProperty(L(this),r);for(r in t){var u=t[r],c=r===W?this._previousStyleCopy:null!=e?e[r]:void 0;if(t.hasOwnProperty(r)&&u!==c&&(null!=u||null!=c))if(r===W)if(u?u=this._previousStyleCopy=y({},u):this._previousStyleCopy=null,c){for(i in c)!c.hasOwnProperty(i)||u&&u.hasOwnProperty(i)||(a=a||{},a[i]="");for(i in u)u.hasOwnProperty(i)&&c[i]!==u[i]&&(a=a||{},a[i]=u[i])}else a=u;else if(q.hasOwnProperty(r))u?o(this,r,u,n):c&&B(this,r);else if(d(this._tag,t))V.hasOwnProperty(r)||k.setValueForAttribute(L(this),r,u);else if(w.properties[r]||w.isCustomAttribute(r)){var l=L(this);null!=u?k.setValueForProperty(l,r,u):k.deleteValueForProperty(l,r)}}a&&_.setValueForStyles(L(this),a,this)},_updateDOMChildren:function(e,t,n,r){var i=U[typeof e.children]?e.children:null,o=U[typeof t.children]?t.children:null,a=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,s=t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html,u=null!=i?null:e.children,c=null!=o?null:t.children,l=null!=i||null!=a,p=null!=o||null!=s;null!=u&&null==c?this.updateChildren(null,n,r):l&&!p&&this.updateTextContent(""),null!=o?i!==o&&this.updateTextContent(""+o):null!=s?a!==s&&this.updateMarkup(""+s):null!=c&&this.updateChildren(c,n,r)},getHostNode:function(){return L(this)},unmountComponent:function(e){switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":var t=this._wrapperState.listeners;if(t)for(var n=0;n<t.length;n++)t[n].remove();break;case"input":case"textarea":j.stopTracking(this);break;case"html":case"head":case"body":v("66",this._tag)}this.unmountChildren(e),T.uncacheNode(this),S.deleteAllListeners(this),this._rootNodeID=0,this._domID=0,this._wrapperState=null},getPublicInstance:function(){return L(this)}},y(m.prototype,m.Mixin,I.Mixin),e.exports=m},function(e,t,n){"use strict";var r=n(530),i=n(586),o={focusDOMComponent:function(){i(r.getNodeFromInstance(this))}};e.exports=o},function(e,t){"use strict";function n(e){try{e.focus()}catch(e){}}e.exports=n},function(e,t,n){"use strict";var r=n(588),i=n(544),o=(n(558),n(589),n(591)),a=n(592),s=n(594),u=(n(504),s(function(e){return a(e)})),c=!1,l="cssFloat";if(i.canUseDOM){var p=document.createElement("div").style;try{p.font=""}catch(e){c=!0}void 0===document.documentElement.style.cssFloat&&(l="styleFloat")}var f={createMarkupForStyles:function(e,t){var n="";for(var r in e)if(e.hasOwnProperty(r)){var i=0===r.indexOf("--"),a=e[r];null!=a&&(n+=u(r)+":",n+=o(r,a,t,i)+";")}return n||null},setValueForStyles:function(e,t,n){var i=e.style;for(var a in t)if(t.hasOwnProperty(a)){var s=0===a.indexOf("--"),u=o(a,t[a],n,s);if("float"!==a&&"cssFloat"!==a||(a=l),s)i.setProperty(a,u);else if(u)i[a]=u;else{var p=c&&r.shorthandPropertyExpansions[a];if(p)for(var f in p)i[f]="";else i[a]=""}}}};e.exports=f},function(e,t){"use strict";function n(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var r={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},i=["Webkit","ms","Moz","O"];Object.keys(r).forEach(function(e){i.forEach(function(t){r[n(t,e)]=r[e]})});var o={background:{backgroundAttachment:!0,backgroundColor:!0,backgroundImage:!0,backgroundPositionX:!0,backgroundPositionY:!0,backgroundRepeat:!0},backgroundPosition:{backgroundPositionX:!0,backgroundPositionY:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0},outline:{outlineWidth:!0,outlineStyle:!0,outlineColor:!0}},a={isUnitlessNumber:r,shorthandPropertyExpansions:o};e.exports=a},function(e,t,n){"use strict";function r(e){return i(e.replace(o,"ms-"))}var i=n(590),o=/^-ms-/;e.exports=r},function(e,t){"use strict";function n(e){return e.replace(r,function(e,t){return t.toUpperCase()})}var r=/-(.)/g;e.exports=n},function(e,t,n){"use strict";function r(e,t,n,r){var i=null==t||"boolean"==typeof t||""===t;if(i)return"";var a=isNaN(t);if(r||a||0===t||o.hasOwnProperty(e)&&o[e])return""+t;if("string"==typeof t){t=t.trim()}return t+"px"}var i=n(588),o=(n(504),i.isUnitlessNumber);e.exports=r},function(e,t,n){"use strict";function r(e){return i(e).replace(o,"-ms-")}var i=n(593),o=/^ms-/;e.exports=r},function(e,t){"use strict";function n(e){return e.replace(r,"-$1").toLowerCase()}var r=/([A-Z])/g;e.exports=n},function(e,t){"use strict";function n(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}e.exports=n},function(e,t,n){"use strict";function r(e){return!!c.hasOwnProperty(e)||!u.hasOwnProperty(e)&&(s.test(e)?(c[e]=!0,!0):(u[e]=!0,!1))}function i(e,t){return null==t||e.hasBooleanValue&&!t||e.hasNumericValue&&isNaN(t)||e.hasPositiveNumericValue&&t<1||e.hasOverloadedBooleanValue&&t===!1}var o=n(532),a=(n(530),n(558),n(596)),s=(n(504),new RegExp("^["+o.ATTRIBUTE_NAME_START_CHAR+"]["+o.ATTRIBUTE_NAME_CHAR+"]*$")),u={},c={},l={createMarkupForID:function(e){return o.ID_ATTRIBUTE_NAME+"="+a(e)},setAttributeForID:function(e,t){e.setAttribute(o.ID_ATTRIBUTE_NAME,t)},createMarkupForRoot:function(){return o.ROOT_ATTRIBUTE_NAME+'=""'},setAttributeForRoot:function(e){e.setAttribute(o.ROOT_ATTRIBUTE_NAME,"")},createMarkupForProperty:function(e,t){var n=o.properties.hasOwnProperty(e)?o.properties[e]:null;if(n){if(i(n,t))return"";var r=n.attributeName;return n.hasBooleanValue||n.hasOverloadedBooleanValue&&t===!0?r+'=""':r+"="+a(t)}return o.isCustomAttribute(e)?null==t?"":e+"="+a(t):null},createMarkupForCustomAttribute:function(e,t){return r(e)&&null!=t?e+"="+a(t):""},setValueForProperty:function(e,t,n){var r=o.properties.hasOwnProperty(t)?o.properties[t]:null;if(r){var a=r.mutationMethod;if(a)a(e,n);else{if(i(r,n))return void this.deleteValueForProperty(e,t);if(r.mustUseProperty)e[r.propertyName]=n;else{var s=r.attributeName,u=r.attributeNamespace;u?e.setAttributeNS(u,s,""+n):r.hasBooleanValue||r.hasOverloadedBooleanValue&&n===!0?e.setAttribute(s,""):e.setAttribute(s,""+n)}}}else if(o.isCustomAttribute(t))return void l.setValueForAttribute(e,t,n)},setValueForAttribute:function(e,t,n){if(r(t)){null==n?e.removeAttribute(t):e.setAttribute(t,""+n)}},deleteValueForAttribute:function(e,t){e.removeAttribute(t)},deleteValueForProperty:function(e,t){var n=o.properties.hasOwnProperty(t)?o.properties[t]:null;if(n){var r=n.mutationMethod;if(r)r(e,void 0);else if(n.mustUseProperty){var i=n.propertyName;n.hasBooleanValue?e[i]=!1:e[i]=""}else e.removeAttribute(n.attributeName)}else o.isCustomAttribute(t)&&e.removeAttribute(t)}};e.exports=l},function(e,t,n){"use strict";function r(e){return'"'+i(e)+'"'}var i=n(578);e.exports=r},function(e,t,n){"use strict";function r(e){return Object.prototype.hasOwnProperty.call(e,m)||(e[m]=h++,p[e[m]]={}),p[e[m]]}var i,o=n(500),a=n(539),s=n(598),u=n(568),c=n(599),l=n(562),p={},f=!1,h=0,d={topAbort:"abort",topAnimationEnd:c("animationend")||"animationend",topAnimationIteration:c("animationiteration")||"animationiteration",topAnimationStart:c("animationstart")||"animationstart",topBlur:"blur",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topScroll:"scroll",topSeeked:"seeked",topSeeking:"seeking",topSelectionChange:"selectionchange",topStalled:"stalled",topSuspend:"suspend",topTextInput:"textInput",topTimeUpdate:"timeupdate",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topTransitionEnd:c("transitionend")||"transitionend",topVolumeChange:"volumechange",topWaiting:"waiting",topWheel:"wheel"},m="_reactListenersID"+String(Math.random()).slice(2),v=o({},s,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(v.handleTopLevel),v.ReactEventListener=e}},setEnabled:function(e){v.ReactEventListener&&v.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!v.ReactEventListener||!v.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var n=t,i=r(n),o=a.registrationNameDependencies[e],s=0;s<o.length;s++){var u=o[s];i.hasOwnProperty(u)&&i[u]||("topWheel"===u?l("wheel")?v.ReactEventListener.trapBubbledEvent("topWheel","wheel",n):l("mousewheel")?v.ReactEventListener.trapBubbledEvent("topWheel","mousewheel",n):v.ReactEventListener.trapBubbledEvent("topWheel","DOMMouseScroll",n):"topScroll"===u?l("scroll",!0)?v.ReactEventListener.trapCapturedEvent("topScroll","scroll",n):v.ReactEventListener.trapBubbledEvent("topScroll","scroll",v.ReactEventListener.WINDOW_HANDLE):"topFocus"===u||"topBlur"===u?(l("focus",!0)?(v.ReactEventListener.trapCapturedEvent("topFocus","focus",n),v.ReactEventListener.trapCapturedEvent("topBlur","blur",n)):l("focusin")&&(v.ReactEventListener.trapBubbledEvent("topFocus","focusin",n),v.ReactEventListener.trapBubbledEvent("topBlur","focusout",n)),i.topBlur=!0,i.topFocus=!0):d.hasOwnProperty(u)&&v.ReactEventListener.trapBubbledEvent(u,d[u],n),i[u]=!0)}},trapBubbledEvent:function(e,t,n){return v.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return v.ReactEventListener.trapCapturedEvent(e,t,n)},supportsEventPageXY:function(){if(!document.createEvent)return!1;var e=document.createEvent("MouseEvent");return null!=e&&"pageX"in e},ensureScrollValueMonitoring:function(){if(void 0===i&&(i=v.supportsEventPageXY()),!i&&!f){var e=u.refreshScrollValues;v.ReactEventListener.monitorScrollValue(e),f=!0}}});e.exports=v},function(e,t,n){"use strict";function r(e){i.enqueueEvents(e),i.processEventQueue(!1)}var i=n(538),o={handleTopLevel:function(e,t,n,o){var a=i.extractEvents(e,t,n,o);r(a)}};e.exports=o},function(e,t,n){"use strict";function r(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t, +n["O"+e]="o"+t.toLowerCase(),n}function i(e){if(s[e])return s[e];if(!a[e])return e;var t=a[e];for(var n in t)if(t.hasOwnProperty(n)&&n in u)return s[e]=t[n];return""}var o=n(544),a={animationend:r("Animation","AnimationEnd"),animationiteration:r("Animation","AnimationIteration"),animationstart:r("Animation","AnimationStart"),transitionend:r("Transition","TransitionEnd")},s={},u={};o.canUseDOM&&(u=document.createElement("div").style,"AnimationEvent"in window||(delete a.animationend.animation,delete a.animationiteration.animation,delete a.animationstart.animation),"TransitionEvent"in window||delete a.transitionend.transition),e.exports=i},function(e,t,n){"use strict";function r(){this._rootNodeID&&f.updateWrapper(this)}function i(e){var t="checkbox"===e.type||"radio"===e.type;return t?null!=e.checked:null!=e.value}function o(e){var t=this._currentElement.props,n=c.executeOnChange(t,e);p.asap(r,this);var i=t.name;if("radio"===t.type&&null!=i){for(var o=l.getNodeFromInstance(this),s=o;s.parentNode;)s=s.parentNode;for(var u=s.querySelectorAll("input[name="+JSON.stringify(""+i)+'][type="radio"]'),f=0;f<u.length;f++){var h=u[f];if(h!==o&&h.form===o.form){var d=l.getInstanceFromNode(h);d?void 0:a("90"),p.asap(r,d)}}}return n}var a=n(531),s=n(500),u=n(595),c=n(601),l=n(530),p=n(552),f=(n(508),n(504),{getHostProps:function(e,t){var n=c.getValue(t),r=c.getChecked(t),i=s({type:void 0,step:void 0,min:void 0,max:void 0},t,{defaultChecked:void 0,defaultValue:void 0,value:null!=n?n:e._wrapperState.initialValue,checked:null!=r?r:e._wrapperState.initialChecked,onChange:e._wrapperState.onChange});return i},mountWrapper:function(e,t){var n=t.defaultValue;e._wrapperState={initialChecked:null!=t.checked?t.checked:t.defaultChecked,initialValue:null!=t.value?t.value:n,listeners:null,onChange:o.bind(e),controlled:i(t)}},updateWrapper:function(e){var t=e._currentElement.props,n=t.checked;null!=n&&u.setValueForProperty(l.getNodeFromInstance(e),"checked",n||!1);var r=l.getNodeFromInstance(e),i=c.getValue(t);if(null!=i)if(0===i&&""===r.value)r.value="0";else if("number"===t.type){var o=parseFloat(r.value,10)||0;(i!=o||i==o&&r.value!=i)&&(r.value=""+i)}else r.value!==""+i&&(r.value=""+i);else null==t.value&&null!=t.defaultValue&&r.defaultValue!==""+t.defaultValue&&(r.defaultValue=""+t.defaultValue),null==t.checked&&null!=t.defaultChecked&&(r.defaultChecked=!!t.defaultChecked)},postMountWrapper:function(e){var t=e._currentElement.props,n=l.getNodeFromInstance(e);switch(t.type){case"submit":case"reset":break;case"color":case"date":case"datetime":case"datetime-local":case"month":case"time":case"week":n.value="",n.value=n.defaultValue;break;default:n.value=n.value}var r=n.name;""!==r&&(n.name=""),n.defaultChecked=!n.defaultChecked,n.defaultChecked=!n.defaultChecked,""!==r&&(n.name=r)}});e.exports=f},function(e,t,n){"use strict";function r(e){null!=e.checkedLink&&null!=e.valueLink?s("87"):void 0}function i(e){r(e),null!=e.value||null!=e.onChange?s("88"):void 0}function o(e){r(e),null!=e.checked||null!=e.onChange?s("89"):void 0}function a(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}var s=n(531),u=n(602),c=n(520),l=n(499),p=c(l.isValidElement),f=(n(508),n(504),{button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0}),h={value:function(e,t,n){return!e[t]||f[e.type]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t,n){return!e[t]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:p.func},d={},m={checkPropTypes:function(e,t,n){for(var r in h){if(h.hasOwnProperty(r))var i=h[r](t,r,e,"prop",null,u);if(i instanceof Error&&!(i.message in d)){d[i.message]=!0;a(n)}}},getValue:function(e){return e.valueLink?(i(e),e.valueLink.value):e.value},getChecked:function(e){return e.checkedLink?(o(e),e.checkedLink.value):e.checked},executeOnChange:function(e,t){return e.valueLink?(i(e),e.valueLink.requestChange(t.target.value)):e.checkedLink?(o(e),e.checkedLink.requestChange(t.target.checked)):e.onChange?e.onChange.call(void 0,t):void 0}};e.exports=m},function(e,t){"use strict";var n="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";e.exports=n},function(e,t,n){"use strict";function r(e){var t="";return o.Children.forEach(e,function(e){null!=e&&("string"==typeof e||"number"==typeof e?t+=e:u||(u=!0))}),t}var i=n(500),o=n(499),a=n(530),s=n(604),u=(n(504),!1),c={mountWrapper:function(e,t,n){var i=null;if(null!=n){var o=n;"optgroup"===o._tag&&(o=o._hostParent),null!=o&&"select"===o._tag&&(i=s.getSelectValueContext(o))}var a=null;if(null!=i){var u;if(u=null!=t.value?t.value+"":r(t.children),a=!1,Array.isArray(i)){for(var c=0;c<i.length;c++)if(""+i[c]===u){a=!0;break}}else a=""+i===u}e._wrapperState={selected:a}},postMountWrapper:function(e){var t=e._currentElement.props;if(null!=t.value){var n=a.getNodeFromInstance(e);n.setAttribute("value",t.value)}},getHostProps:function(e,t){var n=i({selected:void 0,children:void 0},t);null!=e._wrapperState.selected&&(n.selected=e._wrapperState.selected);var o=r(t.children);return o&&(n.children=o),n}};e.exports=c},function(e,t,n){"use strict";function r(){if(this._rootNodeID&&this._wrapperState.pendingUpdate){this._wrapperState.pendingUpdate=!1;var e=this._currentElement.props,t=s.getValue(e);null!=t&&i(this,Boolean(e.multiple),t)}}function i(e,t,n){var r,i,o=u.getNodeFromInstance(e).options;if(t){for(r={},i=0;i<n.length;i++)r[""+n[i]]=!0;for(i=0;i<o.length;i++){var a=r.hasOwnProperty(o[i].value);o[i].selected!==a&&(o[i].selected=a)}}else{for(r=""+n,i=0;i<o.length;i++)if(o[i].value===r)return void(o[i].selected=!0);o.length&&(o[0].selected=!0)}}function o(e){var t=this._currentElement.props,n=s.executeOnChange(t,e);return this._rootNodeID&&(this._wrapperState.pendingUpdate=!0),c.asap(r,this),n}var a=n(500),s=n(601),u=n(530),c=n(552),l=(n(504),!1),p={getHostProps:function(e,t){return a({},t,{onChange:e._wrapperState.onChange,value:void 0})},mountWrapper:function(e,t){var n=s.getValue(t);e._wrapperState={pendingUpdate:!1,initialValue:null!=n?n:t.defaultValue,listeners:null,onChange:o.bind(e),wasMultiple:Boolean(t.multiple)},void 0===t.value||void 0===t.defaultValue||l||(l=!0)},getSelectValueContext:function(e){return e._wrapperState.initialValue},postUpdateWrapper:function(e){var t=e._currentElement.props;e._wrapperState.initialValue=void 0;var n=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=Boolean(t.multiple);var r=s.getValue(t);null!=r?(e._wrapperState.pendingUpdate=!1,i(e,Boolean(t.multiple),r)):n!==Boolean(t.multiple)&&(null!=t.defaultValue?i(e,Boolean(t.multiple),t.defaultValue):i(e,Boolean(t.multiple),t.multiple?[]:""))}};e.exports=p},function(e,t,n){"use strict";function r(){this._rootNodeID&&l.updateWrapper(this)}function i(e){var t=this._currentElement.props,n=s.executeOnChange(t,e);return c.asap(r,this),n}var o=n(531),a=n(500),s=n(601),u=n(530),c=n(552),l=(n(508),n(504),{getHostProps:function(e,t){null!=t.dangerouslySetInnerHTML?o("91"):void 0;var n=a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue,onChange:e._wrapperState.onChange});return n},mountWrapper:function(e,t){var n=s.getValue(t),r=n;if(null==n){var a=t.defaultValue,u=t.children;null!=u&&(null!=a?o("92"):void 0,Array.isArray(u)&&(u.length<=1?void 0:o("93"),u=u[0]),a=""+u),null==a&&(a=""),r=a}e._wrapperState={initialValue:""+r,listeners:null,onChange:i.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=u.getNodeFromInstance(e),r=s.getValue(t);if(null!=r){var i=""+r;i!==n.value&&(n.value=i),null==t.defaultValue&&(n.defaultValue=i)}null!=t.defaultValue&&(n.defaultValue=t.defaultValue)},postMountWrapper:function(e){var t=u.getNodeFromInstance(e),n=t.textContent;n===e._wrapperState.initialValue&&(t.value=n)}});e.exports=l},function(e,t,n){"use strict";function r(e,t,n){return{type:"INSERT_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:n,afterNode:t}}function i(e,t,n){return{type:"MOVE_EXISTING",content:null,fromIndex:e._mountIndex,fromNode:f.getHostNode(e),toIndex:n,afterNode:t}}function o(e,t){return{type:"REMOVE_NODE",content:null,fromIndex:e._mountIndex,fromNode:t,toIndex:null,afterNode:null}}function a(e){return{type:"SET_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function s(e){return{type:"TEXT_CONTENT",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function u(e,t){return t&&(e=e||[],e.push(t)),e}function c(e,t){p.processChildrenUpdates(e,t)}var l=n(531),p=n(607),f=(n(608),n(558),n(513),n(555)),h=n(609),d=(n(505),n(623)),m=(n(508),{Mixin:{_reconcilerInstantiateChildren:function(e,t,n){return h.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r,i,o){var a,s=0;return a=d(t,s),h.updateChildren(e,a,n,r,i,this,this._hostContainerInfo,o,s),a},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var i=[],o=0;for(var a in r)if(r.hasOwnProperty(a)){var s=r[a],u=0,c=f.mountComponent(s,t,this,this._hostContainerInfo,n,u);s._mountIndex=o++,i.push(c)}return i},updateTextContent:function(e){var t=this._renderedChildren;h.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&l("118");var r=[s(e)];c(this,r)},updateMarkup:function(e){var t=this._renderedChildren;h.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&l("118");var r=[a(e)];c(this,r)},updateChildren:function(e,t,n){this._updateChildren(e,t,n)},_updateChildren:function(e,t,n){var r=this._renderedChildren,i={},o=[],a=this._reconcilerUpdateChildren(r,e,o,i,t,n);if(a||r){var s,l=null,p=0,h=0,d=0,m=null;for(s in a)if(a.hasOwnProperty(s)){var v=r&&r[s],y=a[s];v===y?(l=u(l,this.moveChild(v,m,p,h)),h=Math.max(v._mountIndex,h),v._mountIndex=p):(v&&(h=Math.max(v._mountIndex,h)),l=u(l,this._mountChildAtIndex(y,o[d],m,p,t,n)),d++),p++,m=f.getHostNode(y)}for(s in i)i.hasOwnProperty(s)&&(l=u(l,this._unmountChild(r[s],i[s])));l&&c(this,l),this._renderedChildren=a}},unmountChildren:function(e){var t=this._renderedChildren;h.unmountChildren(t,e),this._renderedChildren=null},moveChild:function(e,t,n,r){if(e._mountIndex<r)return i(e,t,n)},createChild:function(e,t,n){return r(n,t,e._mountIndex)},removeChild:function(e,t){return o(e,t)},_mountChildAtIndex:function(e,t,n,r,i,o){return e._mountIndex=r,this.createChild(e,n,t)},_unmountChild:function(e,t){var n=this.removeChild(e,t);return e._mountIndex=null,n}}});e.exports=m},function(e,t,n){"use strict";var r=n(531),i=(n(508),!1),o={replaceNodeWithMarkup:null,processChildrenUpdates:null,injection:{injectEnvironment:function(e){i?r("104"):void 0,o.replaceNodeWithMarkup=e.replaceNodeWithMarkup,o.processChildrenUpdates=e.processChildrenUpdates,i=!0}}};e.exports=o},function(e,t){"use strict";var n={remove:function(e){e._reactInternalInstance=void 0},get:function(e){return e._reactInternalInstance},has:function(e){return void 0!==e._reactInternalInstance},set:function(e,t){e._reactInternalInstance=t}};e.exports=n},function(e,t,n){(function(t){"use strict";function r(e,t,n,r){var i=void 0===e[n];null!=t&&i&&(e[n]=o(t,!0))}var i=n(555),o=n(610),a=(n(618),n(614)),s=n(619),u=(n(504),{instantiateChildren:function(e,t,n,i){if(null==e)return null;var o={};return s(e,r,o),o},updateChildren:function(e,t,n,r,s,u,c,l,p){if(t||e){var f,h;for(f in t)if(t.hasOwnProperty(f)){h=e&&e[f];var d=h&&h._currentElement,m=t[f];if(null!=h&&a(d,m))i.receiveComponent(h,m,s,l),t[f]=h;else{h&&(r[f]=i.getHostNode(h),i.unmountComponent(h,!1));var v=o(m,!0);t[f]=v;var y=i.mountComponent(v,s,u,c,l,p);n.push(y)}}for(f in e)!e.hasOwnProperty(f)||t&&t.hasOwnProperty(f)||(h=e[f],r[f]=i.getHostNode(h),i.unmountComponent(h,!1))}},unmountChildren:function(e,t){for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];i.unmountComponent(r,t)}}});e.exports=u}).call(t,n(324))},function(e,t,n){"use strict";function r(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}function i(e){return"function"==typeof e&&"undefined"!=typeof e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function o(e,t){var n;if(null===e||e===!1)n=c.create(o);else if("object"==typeof e){var s=e,u=s.type;if("function"!=typeof u&&"string"!=typeof u){var f="";f+=r(s._owner),a("130",null==u?u:typeof u,f)}"string"==typeof s.type?n=l.createInternalComponent(s):i(s.type)?(n=new s.type(s),n.getHostNode||(n.getHostNode=n.getNativeNode)):n=new p(s)}else"string"==typeof e||"number"==typeof e?n=l.createInstanceForText(e):a("131",typeof e);return n._mountIndex=0,n._mountImage=null,n}var a=n(531),s=n(500),u=n(611),c=n(615),l=n(616),p=(n(617),n(508),n(504),function(e){this.construct(e)});s(p.prototype,u,{_instantiateReactComponent:o}),e.exports=o},function(e,t,n){"use strict";function r(e){}function i(e,t){}function o(e){return!(!e.prototype||!e.prototype.isReactComponent)}function a(e){return!(!e.prototype||!e.prototype.isPureReactComponent)}var s=n(531),u=n(500),c=n(499),l=n(607),p=n(513),f=n(541),h=n(608),d=(n(558),n(612)),m=n(555),v=n(507),y=(n(508),n(613)),g=n(614),_=(n(504),{ImpureClass:0,PureClass:1,StatelessFunctional:2});r.prototype.render=function(){var e=h.get(this)._currentElement.type,t=e(this.props,this.context,this.updater);return i(e,t),t};var b=1,x={construct:function(e){this._currentElement=e,this._rootNodeID=0,this._compositeType=null,this._instance=null,this._hostParent=null,this._hostContainerInfo=null,this._updateBatchNumber=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedNodeType=null,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null,this._calledComponentWillUnmount=!1},mountComponent:function(e,t,n,u){this._context=u,this._mountOrder=b++,this._hostParent=t,this._hostContainerInfo=n;var l,p=this._currentElement.props,f=this._processContext(u),d=this._currentElement.type,m=e.getUpdateQueue(),y=o(d),g=this._constructComponent(y,p,f,m);y||null!=g&&null!=g.render?a(d)?this._compositeType=_.PureClass:this._compositeType=_.ImpureClass:(l=g,i(d,l),null===g||g===!1||c.isValidElement(g)?void 0:s("105",d.displayName||d.name||"Component"),g=new r(d),this._compositeType=_.StatelessFunctional);g.props=p,g.context=f,g.refs=v,g.updater=m,this._instance=g,h.set(g,this);var x=g.state;void 0===x&&(g.state=x=null),"object"!=typeof x||Array.isArray(x)?s("106",this.getName()||"ReactCompositeComponent"):void 0,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1;var w;return w=g.unstable_handleError?this.performInitialMountWithErrorHandling(l,t,n,e,u):this.performInitialMount(l,t,n,e,u),g.componentDidMount&&e.getReactMountReady().enqueue(g.componentDidMount,g),w},_constructComponent:function(e,t,n,r){return this._constructComponentWithoutOwner(e,t,n,r)},_constructComponentWithoutOwner:function(e,t,n,r){var i=this._currentElement.type;return e?new i(t,n,r):i(t,n,r)},performInitialMountWithErrorHandling:function(e,t,n,r,i){var o,a=r.checkpoint();try{o=this.performInitialMount(e,t,n,r,i)}catch(s){r.rollback(a),this._instance.unstable_handleError(s),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),a=r.checkpoint(),this._renderedComponent.unmountComponent(!0),r.rollback(a),o=this.performInitialMount(e,t,n,r,i)}return o},performInitialMount:function(e,t,n,r,i){var o=this._instance,a=0;o.componentWillMount&&(o.componentWillMount(),this._pendingStateQueue&&(o.state=this._processPendingState(o.props,o.context))),void 0===e&&(e=this._renderValidatedComponent());var s=d.getType(e);this._renderedNodeType=s;var u=this._instantiateReactComponent(e,s!==d.EMPTY);this._renderedComponent=u;var c=m.mountComponent(u,r,t,n,this._processChildContext(i),a);return c},getHostNode:function(){return m.getHostNode(this._renderedComponent)},unmountComponent:function(e){if(this._renderedComponent){var t=this._instance;if(t.componentWillUnmount&&!t._calledComponentWillUnmount)if(t._calledComponentWillUnmount=!0,e){var n=this.getName()+".componentWillUnmount()";f.invokeGuardedCallback(n,t.componentWillUnmount.bind(t))}else t.componentWillUnmount();this._renderedComponent&&(m.unmountComponent(this._renderedComponent,e),this._renderedNodeType=null,this._renderedComponent=null,this._instance=null),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=0,this._topLevelWrapper=null,h.remove(t)}},_maskContext:function(e){var t=this._currentElement.type,n=t.contextTypes;if(!n)return v;var r={};for(var i in n)r[i]=e[i];return r},_processContext:function(e){var t=this._maskContext(e);return t},_processChildContext:function(e){var t,n=this._currentElement.type,r=this._instance;if(r.getChildContext&&(t=r.getChildContext()),t){"object"!=typeof n.childContextTypes?s("107",this.getName()||"ReactCompositeComponent"):void 0;for(var i in t)i in n.childContextTypes?void 0:s("108",this.getName()||"ReactCompositeComponent",i);return u({},e,t)}return e},_checkContextTypes:function(e,t,n){},receiveComponent:function(e,t,n){var r=this._currentElement,i=this._context;this._pendingElement=null,this.updateComponent(t,r,e,i,n)},performUpdateIfNecessary:function(e){null!=this._pendingElement?m.receiveComponent(this,this._pendingElement,e,this._context):null!==this._pendingStateQueue||this._pendingForceUpdate?this.updateComponent(e,this._currentElement,this._currentElement,this._context,this._context):this._updateBatchNumber=null},updateComponent:function(e,t,n,r,i){var o=this._instance;null==o?s("136",this.getName()||"ReactCompositeComponent"):void 0;var a,u=!1;this._context===i?a=o.context:(a=this._processContext(i),u=!0);var c=t.props,l=n.props;t!==n&&(u=!0),u&&o.componentWillReceiveProps&&o.componentWillReceiveProps(l,a);var p=this._processPendingState(l,a),f=!0;this._pendingForceUpdate||(o.shouldComponentUpdate?f=o.shouldComponentUpdate(l,p,a):this._compositeType===_.PureClass&&(f=!y(c,l)||!y(o.state,p))),this._updateBatchNumber=null,f?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,l,p,a,e,i)):(this._currentElement=n,this._context=i,o.props=l,o.state=p,o.context=a)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,i=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(i&&1===r.length)return r[0];for(var o=u({},i?r[0]:n.state),a=i?1:0;a<r.length;a++){var s=r[a];u(o,"function"==typeof s?s.call(n,o,e,t):s)}return o},_performComponentUpdate:function(e,t,n,r,i,o){var a,s,u,c=this._instance,l=Boolean(c.componentDidUpdate);l&&(a=c.props,s=c.state,u=c.context),c.componentWillUpdate&&c.componentWillUpdate(t,n,r),this._currentElement=e,this._context=o,c.props=t,c.state=n,c.context=r,this._updateRenderedComponent(i,o),l&&i.getReactMountReady().enqueue(c.componentDidUpdate.bind(c,a,s,u),c)},_updateRenderedComponent:function(e,t){var n=this._renderedComponent,r=n._currentElement,i=this._renderValidatedComponent(),o=0;if(g(r,i))m.receiveComponent(n,i,e,this._processChildContext(t));else{var a=m.getHostNode(n);m.unmountComponent(n,!1);var s=d.getType(i);this._renderedNodeType=s;var u=this._instantiateReactComponent(i,s!==d.EMPTY);this._renderedComponent=u;var c=m.mountComponent(u,e,this._hostParent,this._hostContainerInfo,this._processChildContext(t),o);this._replaceNodeWithMarkup(a,c,n)}},_replaceNodeWithMarkup:function(e,t,n){l.replaceNodeWithMarkup(e,t,n)},_renderValidatedComponentWithoutOwnerOrContext:function(){var e,t=this._instance;return e=t.render()},_renderValidatedComponent:function(){var e;if(this._compositeType!==_.StatelessFunctional){p.current=this;try{e=this._renderValidatedComponentWithoutOwnerOrContext()}finally{p.current=null}}else e=this._renderValidatedComponentWithoutOwnerOrContext();return null===e||e===!1||c.isValidElement(e)?void 0:s("109",this.getName()||"ReactCompositeComponent"),e},attachRef:function(e,t){var n=this.getPublicInstance();null==n?s("110"):void 0;var r=t.getPublicInstance(),i=n.refs===v?n.refs={}:n.refs;i[e]=r},detachRef:function(e){var t=this.getPublicInstance().refs;delete t[e]},getName:function(){var e=this._currentElement.type,t=this._instance&&this._instance.constructor;return e.displayName||t&&t.displayName||e.name||t&&t.name||null},getPublicInstance:function(){var e=this._instance;return this._compositeType===_.StatelessFunctional?null:e},_instantiateReactComponent:null};e.exports=x},function(e,t,n){"use strict";var r=n(531),i=n(499),o=(n(508),{HOST:0,COMPOSITE:1,EMPTY:2,getType:function(e){return null===e||e===!1?o.EMPTY:i.isValidElement(e)?"function"==typeof e.type?o.COMPOSITE:o.HOST:void r("26",e)}});e.exports=o},function(e,t){"use strict";function n(e,t){return e===t?0!==e||0!==t||1/e===1/t:e!==e&&t!==t}function r(e,t){if(n(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var r=Object.keys(e),o=Object.keys(t);if(r.length!==o.length)return!1;for(var a=0;a<r.length;a++)if(!i.call(t,r[a])||!n(e[r[a]],t[r[a]]))return!1;return!0}var i=Object.prototype.hasOwnProperty;e.exports=r},function(e,t){"use strict";function n(e,t){var n=null===e||e===!1,r=null===t||t===!1;if(n||r)return n===r;var i=typeof e,o=typeof t;return"string"===i||"number"===i?"string"===o||"number"===o:"object"===o&&e.type===t.type&&e.key===t.key}e.exports=n},function(e,t){"use strict";var n,r={injectEmptyComponentFactory:function(e){n=e}},i={create:function(e){return n(e)}};i.injection=r,e.exports=i},function(e,t,n){"use strict";function r(e){return s?void 0:a("111",e.type),new s(e)}function i(e){return new u(e)}function o(e){return e instanceof u}var a=n(531),s=(n(508),null),u=null,c={injectGenericComponentClass:function(e){s=e},injectTextComponentClass:function(e){u=e}},l={createInternalComponent:r,createInstanceForText:i,isTextComponent:o,injection:c};e.exports=l},function(e,t){"use strict";function n(){return r++}var r=1;e.exports=n},517,function(e,t,n){"use strict";function r(e,t){return e&&"object"==typeof e&&null!=e.key?c.escape(e.key):t.toString(36)}function i(e,t,n,o){var f=typeof e;if("undefined"!==f&&"boolean"!==f||(e=null),null===e||"string"===f||"number"===f||"object"===f&&e.$$typeof===s)return n(o,e,""===t?l+r(e,0):t),1;var h,d,m=0,v=""===t?l:t+p;if(Array.isArray(e))for(var y=0;y<e.length;y++)h=e[y],d=v+r(h,y),m+=i(h,d,n,o);else{var g=u(e);if(g){var _,b=g.call(e);if(g!==e.entries)for(var x=0;!(_=b.next()).done;)h=_.value,d=v+r(h,x++),m+=i(h,d,n,o);else for(;!(_=b.next()).done;){var w=_.value;w&&(h=w[1],d=v+c.escape(w[0])+p+r(h,0),m+=i(h,d,n,o))}}else if("object"===f){var k="",S=String(e);a("31","[object Object]"===S?"object with keys {"+Object.keys(e).join(", ")+"}":S,k)}}return m}function o(e,t,n){return null==e?0:i(e,"",t,n)}var a=n(531),s=(n(513),n(620)),u=n(621),c=(n(508),n(618)),l=(n(504),"."),p=":";e.exports=o},514,516,function(e,t,n){"use strict";function r(e){var t=Function.prototype.toString,n=Object.prototype.hasOwnProperty,r=RegExp("^"+t.call(n).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");try{var i=t.call(e);return r.test(i)}catch(e){return!1}}function i(e){var t=c(e);if(t){var n=t.childIDs;l(e),n.forEach(i)}}function o(e,t,n){return"\n in "+(e||"Unknown")+(t?" (at "+t.fileName.replace(/^.*[\\\/]/,"")+":"+t.lineNumber+")":n?" (created by "+n+")":"")}function a(e){return null==e?"#empty":"string"==typeof e||"number"==typeof e?"#text":"string"==typeof e.type?e.type:e.type.displayName||e.type.name||"Unknown"}function s(e){var t,n=E.getDisplayName(e),r=E.getElement(e),i=E.getOwnerID(e);return i&&(t=E.getDisplayName(i)),o(n,r&&r._source,t)}var u,c,l,p,f,h,d,m=n(502),v=n(513),y=(n(508),n(504),"function"==typeof Array.from&&"function"==typeof Map&&r(Map)&&null!=Map.prototype&&"function"==typeof Map.prototype.keys&&r(Map.prototype.keys)&&"function"==typeof Set&&r(Set)&&null!=Set.prototype&&"function"==typeof Set.prototype.keys&&r(Set.prototype.keys));if(y){var g=new Map,_=new Set;u=function(e,t){g.set(e,t)},c=function(e){return g.get(e)},l=function(e){g.delete(e)},p=function(){return Array.from(g.keys())},f=function(e){_.add(e)},h=function(e){_.delete(e)},d=function(){return Array.from(_.keys())}}else{var b={},x={},w=function(e){return"."+e},k=function(e){return parseInt(e.substr(1),10)};u=function(e,t){var n=w(e);b[n]=t},c=function(e){var t=w(e);return b[t]},l=function(e){var t=w(e);delete b[t]},p=function(){return Object.keys(b).map(k)},f=function(e){var t=w(e);x[t]=!0},h=function(e){var t=w(e);delete x[t]},d=function(){return Object.keys(x).map(k)}}var S=[],E={onSetChildren:function(e,t){var n=c(e);n?void 0:m("144"),n.childIDs=t;for(var r=0;r<t.length;r++){var i=t[r],o=c(i);o?void 0:m("140"),null==o.childIDs&&"object"==typeof o.element&&null!=o.element?m("141"):void 0,o.isMounted?void 0:m("71"),null==o.parentID&&(o.parentID=e),o.parentID!==e?m("142",i,o.parentID,e):void 0}},onBeforeMountComponent:function(e,t,n){var r={element:t,parentID:n,text:null,childIDs:[],isMounted:!1,updateCount:0};u(e,r)},onBeforeUpdateComponent:function(e,t){var n=c(e);n&&n.isMounted&&(n.element=t)},onMountComponent:function(e){var t=c(e);t?void 0:m("144"),t.isMounted=!0;var n=0===t.parentID;n&&f(e)},onUpdateComponent:function(e){var t=c(e);t&&t.isMounted&&t.updateCount++},onUnmountComponent:function(e){var t=c(e);if(t){t.isMounted=!1;var n=0===t.parentID;n&&h(e)}S.push(e)},purgeUnmountedComponents:function(){if(!E._preventPurging){for(var e=0;e<S.length;e++){var t=S[e];i(t)}S.length=0}},isMounted:function(e){var t=c(e);return!!t&&t.isMounted},getCurrentStackAddendum:function(e){var t="";if(e){var n=a(e),r=e._owner;t+=o(n,e._source,r&&r.getName())}var i=v.current,s=i&&i._debugID;return t+=E.getStackAddendumByID(s)},getStackAddendumByID:function(e){for(var t="";e;)t+=s(e),e=E.getParentID(e);return t},getChildIDs:function(e){var t=c(e);return t?t.childIDs:[]},getDisplayName:function(e){var t=E.getElement(e);return t?a(t):null},getElement:function(e){var t=c(e);return t?t.element:null},getOwnerID:function(e){var t=E.getElement(e);return t&&t._owner?t._owner._debugID:null},getParentID:function(e){var t=c(e);return t?t.parentID:null},getSource:function(e){var t=c(e),n=t?t.element:null,r=null!=n?n._source:null;return r},getText:function(e){var t=E.getElement(e);return"string"==typeof t?t:"number"==typeof t?""+t:null},getUpdateCount:function(e){var t=c(e);return t?t.updateCount:0},getRootIDs:d,getRegisteredIDs:p,pushNonStandardWarningStack:function(e,t){if("function"==typeof console.reactStack){var n=[],r=v.current,i=r&&r._debugID;try{for(e&&n.push({name:i?E.getDisplayName(i):null,fileName:t?t.fileName:null,lineNumber:t?t.lineNumber:null});i;){var o=E.getElement(i),a=E.getParentID(i),s=E.getOwnerID(i),u=s?E.getDisplayName(s):null,c=o&&o._source;n.push({name:u,fileName:c?c.fileName:null,lineNumber:c?c.lineNumber:null}),i=a}}catch(e){}console.reactStack(n)}},popNonStandardWarningStack:function(){"function"==typeof console.reactStackEnd&&console.reactStackEnd()}};e.exports=E},function(e,t,n){(function(t){"use strict";function r(e,t,n,r){if(e&&"object"==typeof e){var i=e,o=void 0===i[n];o&&null!=t&&(i[n]=t)}}function i(e,t){if(null==e)return e;var n={};return o(e,r,n),n}var o=(n(618),n(619));n(504);e.exports=i}).call(t,n(324))},function(e,t,n){"use strict";function r(e){this.reinitializeTransaction(),this.renderToStaticMarkup=e,this.useCreateElement=!1,this.updateQueue=new s(this)}var i=n(500),o=n(546),a=n(559),s=(n(558),n(625)),u=[],c={enqueue:function(){}},l={getTransactionWrappers:function(){return u},getReactMountReady:function(){return c},getUpdateQueue:function(){return this.updateQueue},destructor:function(){},checkpoint:function(){},rollback:function(){}};i(r.prototype,a,l),o.addPoolingTo(r),e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){}var o=n(626),a=(n(504),function(){function e(t){r(this,e),this.transaction=t}return e.prototype.isMounted=function(e){return!1},e.prototype.enqueueCallback=function(e,t,n){this.transaction.isInTransaction()&&o.enqueueCallback(e,t,n)},e.prototype.enqueueForceUpdate=function(e){this.transaction.isInTransaction()?o.enqueueForceUpdate(e):i(e,"forceUpdate")},e.prototype.enqueueReplaceState=function(e,t){this.transaction.isInTransaction()?o.enqueueReplaceState(e,t):i(e,"replaceState")},e.prototype.enqueueSetState=function(e,t){this.transaction.isInTransaction()?o.enqueueSetState(e,t):i(e,"setState")},e}());e.exports=a},function(e,t,n){"use strict";function r(e){u.enqueueUpdate(e)}function i(e){var t=typeof e;if("object"!==t)return t;var n=e.constructor&&e.constructor.name||t,r=Object.keys(e);return r.length>0&&r.length<20?n+" (keys: "+r.join(", ")+")":n}function o(e,t){var n=s.get(e);if(!n){return null}return n}var a=n(531),s=(n(513),n(608)),u=(n(558),n(552)),c=(n(508),n(504),{isMounted:function(e){var t=s.get(e);return!!t&&!!t._renderedComponent},enqueueCallback:function(e,t,n){c.validateCallback(t,n);var i=o(e);return i?(i._pendingCallbacks?i._pendingCallbacks.push(t):i._pendingCallbacks=[t],void r(i)):null},enqueueCallbackInternal:function(e,t){e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],r(e)},enqueueForceUpdate:function(e){var t=o(e,"forceUpdate");t&&(t._pendingForceUpdate=!0,r(t))},enqueueReplaceState:function(e,t,n){var i=o(e,"replaceState");i&&(i._pendingStateQueue=[t],i._pendingReplaceState=!0,void 0!==n&&null!==n&&(c.validateCallback(n,"replaceState"),i._pendingCallbacks?i._pendingCallbacks.push(n):i._pendingCallbacks=[n]),r(i))},enqueueSetState:function(e,t){var n=o(e,"setState");if(n){var i=n._pendingStateQueue||(n._pendingStateQueue=[]);i.push(t),r(n)}},enqueueElementInternal:function(e,t,n){e._pendingElement=t,e._context=n,r(e)},validateCallback:function(e,t){e&&"function"!=typeof e?a("122",t,i(e)):void 0}});e.exports=c},function(e,t,n){"use strict";var r=(n(500),n(505)),i=(n(504),r);e.exports=i},function(e,t,n){"use strict";var r=n(500),i=n(573),o=n(530),a=function(e){this._currentElement=null,this._hostNode=null,this._hostParent=null,this._hostContainerInfo=null,this._domID=0};r(a.prototype,{mountComponent:function(e,t,n,r){var a=n._idCounter++;this._domID=a,this._hostParent=t,this._hostContainerInfo=n;var s=" react-empty: "+this._domID+" ";if(e.useCreateElement){var u=n._ownerDocument,c=u.createComment(s);return o.precacheNode(this,c),i(c)}return e.renderToStaticMarkup?"":"<!--"+s+"-->"},receiveComponent:function(){},getHostNode:function(){return o.getNodeFromInstance(this)},unmountComponent:function(){o.uncacheNode(this)}}),e.exports=a},function(e,t,n){"use strict";function r(e,t){"_hostNode"in e?void 0:u("33"),"_hostNode"in t?void 0:u("33");for(var n=0,r=e;r;r=r._hostParent)n++;for(var i=0,o=t;o;o=o._hostParent)i++;for(;n-i>0;)e=e._hostParent,n--;for(;i-n>0;)t=t._hostParent,i--;for(var a=n;a--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}function i(e,t){"_hostNode"in e?void 0:u("35"),"_hostNode"in t?void 0:u("35");for(;t;){if(t===e)return!0;t=t._hostParent}return!1}function o(e){return"_hostNode"in e?void 0:u("36"),e._hostParent}function a(e,t,n){for(var r=[];e;)r.push(e),e=e._hostParent;var i;for(i=r.length;i-- >0;)t(r[i],"captured",n);for(i=0;i<r.length;i++)t(r[i],"bubbled",n)}function s(e,t,n,i,o){for(var a=e&&t?r(e,t):null,s=[];e&&e!==a;)s.push(e),e=e._hostParent;for(var u=[];t&&t!==a;)u.push(t),t=t._hostParent;var c;for(c=0;c<s.length;c++)n(s[c],"bubbled",i); +for(c=u.length;c-- >0;)n(u[c],"captured",o)}var u=n(531);n(508);e.exports={isAncestor:i,getLowestCommonAncestor:r,getParentInstance:o,traverseTwoPhase:a,traverseEnterLeave:s}},function(e,t,n){"use strict";var r=n(531),i=n(500),o=n(572),a=n(573),s=n(530),u=n(578),c=(n(508),n(627),function(e){this._currentElement=e,this._stringText=""+e,this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});i(c.prototype,{mountComponent:function(e,t,n,r){var i=n._idCounter++,o=" react-text: "+i+" ",c=" /react-text ";if(this._domID=i,this._hostParent=t,e.useCreateElement){var l=n._ownerDocument,p=l.createComment(o),f=l.createComment(c),h=a(l.createDocumentFragment());return a.queueChild(h,a(p)),this._stringText&&a.queueChild(h,a(l.createTextNode(this._stringText))),a.queueChild(h,a(f)),s.precacheNode(this,p),this._closingComment=f,h}var d=u(this._stringText);return e.renderToStaticMarkup?d:"<!--"+o+"-->"+d+"<!--"+c+"-->"},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();o.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var e=this._commentNodes;if(e)return e;if(!this._closingComment)for(var t=s.getNodeFromInstance(this),n=t.nextSibling;;){if(null==n?r("67",this._domID):void 0,8===n.nodeType&&" /react-text "===n.nodeValue){this._closingComment=n;break}n=n.nextSibling}return e=[this._hostNode,this._closingComment],this._commentNodes=e,e},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,s.uncacheNode(this)}}),e.exports=c},function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var i=n(500),o=n(552),a=n(559),s=n(505),u={initialize:s,close:function(){f.isBatchingUpdates=!1}},c={initialize:s,close:o.flushBatchedUpdates.bind(o)},l=[c,u];i(r.prototype,a,{getTransactionWrappers:function(){return l}});var p=new r,f={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,i,o){var a=f.isBatchingUpdates;return f.isBatchingUpdates=!0,a?e(t,n,r,i,o):p.perform(e,null,t,n,r,i,o)}};e.exports=f},function(e,t,n){"use strict";function r(e){for(;e._hostParent;)e=e._hostParent;var t=p.getNodeFromInstance(e),n=t.parentNode;return p.getClosestInstanceFromNode(n)}function i(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function o(e){var t=h(e.nativeEvent),n=p.getClosestInstanceFromNode(t),i=n;do e.ancestors.push(i),i=i&&r(i);while(i);for(var o=0;o<e.ancestors.length;o++)n=e.ancestors[o],m._handleTopLevel(e.topLevelType,n,e.nativeEvent,h(e.nativeEvent))}function a(e){var t=d(window);e(t)}var s=n(500),u=n(633),c=n(544),l=n(546),p=n(530),f=n(552),h=n(561),d=n(634);s(i.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),l.addPoolingTo(i,l.twoArgumentPooler);var m={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:c.canUseDOM?window:null,setHandleTopLevel:function(e){m._handleTopLevel=e},setEnabled:function(e){m._enabled=!!e},isEnabled:function(){return m._enabled},trapBubbledEvent:function(e,t,n){return n?u.listen(n,t,m.dispatchEvent.bind(null,e)):null},trapCapturedEvent:function(e,t,n){return n?u.capture(n,t,m.dispatchEvent.bind(null,e)):null},monitorScrollValue:function(e){var t=a.bind(null,e);u.listen(window,"scroll",t)},dispatchEvent:function(e,t){if(m._enabled){var n=i.getPooled(e,t);try{f.batchedUpdates(o,n)}finally{i.release(n)}}}};e.exports=m},function(e,t,n){"use strict";var r=n(505),i={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!0),{remove:function(){e.removeEventListener(t,n,!0)}}):{remove:r}},registerDefault:function(){}};e.exports=i},function(e,t){"use strict";function n(e){return e.Window&&e instanceof e.Window?{x:e.pageXOffset||e.document.documentElement.scrollLeft,y:e.pageYOffset||e.document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}e.exports=n},function(e,t,n){"use strict";var r=n(532),i=n(538),o=n(540),a=n(607),s=n(615),u=n(597),c=n(616),l=n(552),p={Component:a.injection,DOMProperty:r.injection,EmptyComponent:s.injection,EventPluginHub:i.injection,EventPluginUtils:o.injection,EventEmitter:u.injection,HostComponent:c.injection,Updates:l.injection};e.exports=p},function(e,t,n){"use strict";function r(e){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=o.getPooled(null),this.useCreateElement=e}var i=n(500),o=n(553),a=n(546),s=n(597),u=n(637),c=(n(558),n(559)),l=n(626),p={initialize:u.getSelectionInformation,close:u.restoreSelection},f={initialize:function(){var e=s.isEnabled();return s.setEnabled(!1),e},close:function(e){s.setEnabled(e)}},h={initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}},d=[p,f,h],m={getTransactionWrappers:function(){return d},getReactMountReady:function(){return this.reactMountReady},getUpdateQueue:function(){return l},checkpoint:function(){return this.reactMountReady.checkpoint()},rollback:function(e){this.reactMountReady.rollback(e)},destructor:function(){o.release(this.reactMountReady),this.reactMountReady=null}};i(r.prototype,c,m),a.addPoolingTo(r),e.exports=r},function(e,t,n){"use strict";function r(e){return o(document.documentElement,e)}var i=n(638),o=n(640),a=n(586),s=n(643),u={hasSelectionCapabilities:function(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&"text"===e.type||"textarea"===t||"true"===e.contentEditable)},getSelectionInformation:function(){var e=s();return{focusedElem:e,selectionRange:u.hasSelectionCapabilities(e)?u.getSelection(e):null}},restoreSelection:function(e){var t=s(),n=e.focusedElem,i=e.selectionRange;t!==n&&r(n)&&(u.hasSelectionCapabilities(n)&&u.setSelection(n,i),a(n))},getSelection:function(e){var t;if("selectionStart"in e)t={start:e.selectionStart,end:e.selectionEnd};else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var n=document.selection.createRange();n.parentElement()===e&&(t={start:-n.moveStart("character",-e.value.length),end:-n.moveEnd("character",-e.value.length)})}else t=i.getOffsets(e);return t||{start:0,end:0}},setSelection:function(e,t){var n=t.start,r=t.end;if(void 0===r&&(r=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(r,e.value.length);else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var o=e.createTextRange();o.collapse(!0),o.moveStart("character",n),o.moveEnd("character",r-n),o.select()}else i.setOffsets(e,t)}};e.exports=u},function(e,t,n){"use strict";function r(e,t,n,r){return e===n&&t===r}function i(e){var t=document.selection,n=t.createRange(),r=n.text.length,i=n.duplicate();i.moveToElementText(e),i.setEndPoint("EndToStart",n);var o=i.text.length,a=o+r;return{start:o,end:a}}function o(e){var t=window.getSelection&&window.getSelection();if(!t||0===t.rangeCount)return null;var n=t.anchorNode,i=t.anchorOffset,o=t.focusNode,a=t.focusOffset,s=t.getRangeAt(0);try{s.startContainer.nodeType,s.endContainer.nodeType}catch(e){return null}var u=r(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset),c=u?0:s.toString().length,l=s.cloneRange();l.selectNodeContents(e),l.setEnd(s.startContainer,s.startOffset);var p=r(l.startContainer,l.startOffset,l.endContainer,l.endOffset),f=p?0:l.toString().length,h=f+c,d=document.createRange();d.setStart(n,i),d.setEnd(o,a);var m=d.collapsed;return{start:m?h:f,end:m?f:h}}function a(e,t){var n,r,i=document.selection.createRange().duplicate();void 0===t.end?(n=t.start,r=n):t.start>t.end?(n=t.end,r=t.start):(n=t.start,r=t.end),i.moveToElementText(e),i.moveStart("character",n),i.setEndPoint("EndToStart",i),i.moveEnd("character",r-n),i.select()}function s(e,t){if(window.getSelection){var n=window.getSelection(),r=e[l()].length,i=Math.min(t.start,r),o=void 0===t.end?i:Math.min(t.end,r);if(!n.extend&&i>o){var a=o;o=i,i=a}var s=c(e,i),u=c(e,o);if(s&&u){var p=document.createRange();p.setStart(s.node,s.offset),n.removeAllRanges(),i>o?(n.addRange(p),n.extend(u.node,u.offset)):(p.setEnd(u.node,u.offset),n.addRange(p))}}}var u=n(544),c=n(639),l=n(547),p=u.canUseDOM&&"selection"in document&&!("getSelection"in window),f={getOffsets:p?i:o,setOffsets:p?a:s};e.exports=f},function(e,t){"use strict";function n(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function r(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}function i(e,t){for(var i=n(e),o=0,a=0;i;){if(3===i.nodeType){if(a=o+i.textContent.length,o<=t&&a>=t)return{node:i,offset:t-o};o=a}i=n(r(i))}}e.exports=i},function(e,t,n){"use strict";function r(e,t){return!(!e||!t)&&(e===t||!i(e)&&(i(t)?r(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}var i=n(641);e.exports=r},function(e,t,n){"use strict";function r(e){return i(e)&&3==e.nodeType}var i=n(642);e.exports=r},function(e,t){"use strict";function n(e){var t=e?e.ownerDocument||e:document,n=t.defaultView||window;return!(!e||!("function"==typeof n.Node?e instanceof n.Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}e.exports=n},function(e,t){"use strict";function n(e){if(e=e||("undefined"!=typeof document?document:void 0),"undefined"==typeof e)return null;try{return e.activeElement||e.body}catch(t){return e.body}}e.exports=n},function(e,t){"use strict";var n={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},r={accentHeight:"accent-height",accumulate:0,additive:0,alignmentBaseline:"alignment-baseline",allowReorder:"allowReorder",alphabetic:0,amplitude:0,arabicForm:"arabic-form",ascent:0,attributeName:"attributeName",attributeType:"attributeType",autoReverse:"autoReverse",azimuth:0,baseFrequency:"baseFrequency",baseProfile:"baseProfile",baselineShift:"baseline-shift",bbox:0,begin:0,bias:0,by:0,calcMode:"calcMode",capHeight:"cap-height",clip:0,clipPath:"clip-path",clipRule:"clip-rule",clipPathUnits:"clipPathUnits",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",contentScriptType:"contentScriptType",contentStyleType:"contentStyleType",cursor:0,cx:0,cy:0,d:0,decelerate:0,descent:0,diffuseConstant:"diffuseConstant",direction:0,display:0,divisor:0,dominantBaseline:"dominant-baseline",dur:0,dx:0,dy:0,edgeMode:"edgeMode",elevation:0,enableBackground:"enable-background",end:0,exponent:0,externalResourcesRequired:"externalResourcesRequired",fill:0,fillOpacity:"fill-opacity",fillRule:"fill-rule",filter:0,filterRes:"filterRes",filterUnits:"filterUnits",floodColor:"flood-color",floodOpacity:"flood-opacity",focusable:0,fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",format:0,from:0,fx:0,fy:0,g1:0,g2:0,glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",glyphRef:"glyphRef",gradientTransform:"gradientTransform",gradientUnits:"gradientUnits",hanging:0,horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",ideographic:0,imageRendering:"image-rendering",in:0,in2:0,intercept:0,k:0,k1:0,k2:0,k3:0,k4:0,kernelMatrix:"kernelMatrix",kernelUnitLength:"kernelUnitLength",kerning:0,keyPoints:"keyPoints",keySplines:"keySplines",keyTimes:"keyTimes",lengthAdjust:"lengthAdjust",letterSpacing:"letter-spacing",lightingColor:"lighting-color",limitingConeAngle:"limitingConeAngle",local:0,markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",markerHeight:"markerHeight",markerUnits:"markerUnits",markerWidth:"markerWidth",mask:0,maskContentUnits:"maskContentUnits",maskUnits:"maskUnits",mathematical:0,mode:0,numOctaves:"numOctaves",offset:0,opacity:0,operator:0,order:0,orient:0,orientation:0,origin:0,overflow:0,overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pathLength:"pathLength",patternContentUnits:"patternContentUnits",patternTransform:"patternTransform",patternUnits:"patternUnits",pointerEvents:"pointer-events",points:0,pointsAtX:"pointsAtX",pointsAtY:"pointsAtY",pointsAtZ:"pointsAtZ",preserveAlpha:"preserveAlpha",preserveAspectRatio:"preserveAspectRatio",primitiveUnits:"primitiveUnits",r:0,radius:0,refX:"refX",refY:"refY",renderingIntent:"rendering-intent",repeatCount:"repeatCount",repeatDur:"repeatDur",requiredExtensions:"requiredExtensions",requiredFeatures:"requiredFeatures",restart:0,result:0,rotate:0,rx:0,ry:0,scale:0,seed:0,shapeRendering:"shape-rendering",slope:0,spacing:0,specularConstant:"specularConstant",specularExponent:"specularExponent",speed:0,spreadMethod:"spreadMethod",startOffset:"startOffset",stdDeviation:"stdDeviation",stemh:0,stemv:0,stitchTiles:"stitchTiles",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",string:0,stroke:0,strokeDasharray:"stroke-dasharray",strokeDashoffset:"stroke-dashoffset",strokeLinecap:"stroke-linecap",strokeLinejoin:"stroke-linejoin",strokeMiterlimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",surfaceScale:"surfaceScale",systemLanguage:"systemLanguage",tableValues:"tableValues",targetX:"targetX",targetY:"targetY",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",textLength:"textLength",to:0,transform:0,u1:0,u2:0,underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicode:0,unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",values:0,vectorEffect:"vector-effect",version:0,vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",viewBox:"viewBox",viewTarget:"viewTarget",visibility:0,widths:0,wordSpacing:"word-spacing",writingMode:"writing-mode",x:0,xHeight:"x-height",x1:0,x2:0,xChannelSelector:"xChannelSelector",xlinkActuate:"xlink:actuate",xlinkArcrole:"xlink:arcrole",xlinkHref:"xlink:href",xlinkRole:"xlink:role",xlinkShow:"xlink:show",xlinkTitle:"xlink:title",xlinkType:"xlink:type",xmlBase:"xml:base",xmlns:0,xmlnsXlink:"xmlns:xlink",xmlLang:"xml:lang",xmlSpace:"xml:space",y:0,y1:0,y2:0,yChannelSelector:"yChannelSelector",z:0,zoomAndPan:"zoomAndPan"},i={Properties:{},DOMAttributeNamespaces:{xlinkActuate:n.xlink,xlinkArcrole:n.xlink,xlinkHref:n.xlink,xlinkRole:n.xlink,xlinkShow:n.xlink,xlinkTitle:n.xlink,xlinkType:n.xlink,xmlBase:n.xml,xmlLang:n.xml,xmlSpace:n.xml},DOMAttributeNames:{}};Object.keys(r).forEach(function(e){i.Properties[e]=0,r[e]&&(i.DOMAttributeNames[e]=r[e])}),e.exports=i},function(e,t,n){"use strict";function r(e){if("selectionStart"in e&&u.hasSelectionCapabilities(e))return{start:e.selectionStart,end:e.selectionEnd};if(window.getSelection){var t=window.getSelection();return{anchorNode:t.anchorNode,anchorOffset:t.anchorOffset,focusNode:t.focusNode,focusOffset:t.focusOffset}}if(document.selection){var n=document.selection.createRange();return{parentElement:n.parentElement(),text:n.text,top:n.boundingTop,left:n.boundingLeft}}}function i(e,t){if(g||null==m||m!==l())return null;var n=r(m);if(!y||!f(y,n)){y=n;var i=c.getPooled(d.select,v,e,t);return i.type="select",i.target=m,o.accumulateTwoPhaseDispatches(i),i}return null}var o=n(537),a=n(544),s=n(530),u=n(637),c=n(549),l=n(643),p=n(563),f=n(613),h=a.canUseDOM&&"documentMode"in document&&document.documentMode<=11,d={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:["topBlur","topContextMenu","topFocus","topKeyDown","topKeyUp","topMouseDown","topMouseUp","topSelectionChange"]}},m=null,v=null,y=null,g=!1,_=!1,b={eventTypes:d,extractEvents:function(e,t,n,r){if(!_)return null;var o=t?s.getNodeFromInstance(t):window;switch(e){case"topFocus":(p(o)||"true"===o.contentEditable)&&(m=o,v=t,y=null);break;case"topBlur":m=null,v=null,y=null;break;case"topMouseDown":g=!0;break;case"topContextMenu":case"topMouseUp":return g=!1,i(n,r);case"topSelectionChange":if(h)break;case"topKeyDown":case"topKeyUp":return i(n,r)}return null},didPutListener:function(e,t,n){"onSelect"===t&&(_=!0)}};e.exports=b},function(e,t,n){"use strict";function r(e){return"."+e._rootNodeID}function i(e){return"button"===e||"input"===e||"select"===e||"textarea"===e}var o=n(531),a=n(633),s=n(537),u=n(530),c=n(647),l=n(648),p=n(549),f=n(649),h=n(650),d=n(566),m=n(653),v=n(654),y=n(655),g=n(567),_=n(656),b=n(505),x=n(651),w=(n(508),{}),k={};["abort","animationEnd","animationIteration","animationStart","blur","canPlay","canPlayThrough","click","contextMenu","copy","cut","doubleClick","drag","dragEnd","dragEnter","dragExit","dragLeave","dragOver","dragStart","drop","durationChange","emptied","encrypted","ended","error","focus","input","invalid","keyDown","keyPress","keyUp","load","loadedData","loadedMetadata","loadStart","mouseDown","mouseMove","mouseOut","mouseOver","mouseUp","paste","pause","play","playing","progress","rateChange","reset","scroll","seeked","seeking","stalled","submit","suspend","timeUpdate","touchCancel","touchEnd","touchMove","touchStart","transitionEnd","volumeChange","waiting","wheel"].forEach(function(e){var t=e[0].toUpperCase()+e.slice(1),n="on"+t,r="top"+t,i={phasedRegistrationNames:{bubbled:n,captured:n+"Capture"},dependencies:[r]};w[e]=i,k[r]=i});var S={},E={eventTypes:w,extractEvents:function(e,t,n,r){var i=k[e];if(!i)return null;var a;switch(e){case"topAbort":case"topCanPlay":case"topCanPlayThrough":case"topDurationChange":case"topEmptied":case"topEncrypted":case"topEnded":case"topError":case"topInput":case"topInvalid":case"topLoad":case"topLoadedData":case"topLoadedMetadata":case"topLoadStart":case"topPause":case"topPlay":case"topPlaying":case"topProgress":case"topRateChange":case"topReset":case"topSeeked":case"topSeeking":case"topStalled":case"topSubmit":case"topSuspend":case"topTimeUpdate":case"topVolumeChange":case"topWaiting":a=p;break;case"topKeyPress":if(0===x(n))return null;case"topKeyDown":case"topKeyUp":a=h;break;case"topBlur":case"topFocus":a=f;break;case"topClick":if(2===n.button)return null;case"topDoubleClick":case"topMouseDown":case"topMouseMove":case"topMouseUp":case"topMouseOut":case"topMouseOver":case"topContextMenu":a=d;break;case"topDrag":case"topDragEnd":case"topDragEnter":case"topDragExit":case"topDragLeave":case"topDragOver":case"topDragStart":case"topDrop":a=m;break;case"topTouchCancel":case"topTouchEnd":case"topTouchMove":case"topTouchStart":a=v;break;case"topAnimationEnd":case"topAnimationIteration":case"topAnimationStart":a=c;break;case"topTransitionEnd":a=y;break;case"topScroll":a=g;break;case"topWheel":a=_;break;case"topCopy":case"topCut":case"topPaste":a=l}a?void 0:o("86",e);var u=a.getPooled(i,t,n,r);return s.accumulateTwoPhaseDispatches(u),u},didPutListener:function(e,t,n){if("onClick"===t&&!i(e._tag)){var o=r(e),s=u.getNodeFromInstance(e);S[o]||(S[o]=a.listen(s,"click",b))}},willDeleteListener:function(e,t){if("onClick"===t&&!i(e._tag)){var n=r(e);S[n].remove(),delete S[n]}}};e.exports=E},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(549),o={animationName:null,elapsedTime:null,pseudoElement:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(549),o={clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(567),o={relatedTarget:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(567),o=n(651),a=n(652),s=n(569),u={key:a,location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:s,charCode:function(e){return"keypress"===e.type?o(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?o(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}};i.augmentClass(r,u),e.exports=r},function(e,t){"use strict";function n(e){var t,n=e.keyCode;return"charCode"in e?(t=e.charCode,0===t&&13===n&&(t=13)):t=n,t>=32||13===t?t:0}e.exports=n},function(e,t,n){"use strict";function r(e){if(e.key){var t=o[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=i(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?a[e.keyCode]||"Unidentified":""}var i=n(651),o={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},a={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(566),o={dataTransfer:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(567),o=n(569),a={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:o};i.augmentClass(r,a),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(549),o={propertyName:null,elapsedTime:null,pseudoElement:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){return i.call(this,e,t,n,r)}var i=n(566),o={deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t){for(var n=Math.min(e.length,t.length),r=0;r<n;r++)if(e.charAt(r)!==t.charAt(r))return r;return e.length===t.length?-1:n}function i(e){return e?e.nodeType===N?e.documentElement:e.firstChild:null}function o(e){return e.getAttribute&&e.getAttribute(O)||""}function a(e,t,n,r,i){var o;if(x.logTopLevelRenders){var a=e._currentElement.props.child,s=a.type;o="React mount: "+("string"==typeof s?s:s.displayName||s.name),console.time(o)}var u=S.mountComponent(e,n,null,_(e,t),i,0);o&&console.timeEnd(o),e._renderedComponent._topLevelWrapper=e,L._mountImageIntoNode(u,t,e,r,n)}function s(e,t,n,r){var i=C.ReactReconcileTransaction.getPooled(!n&&b.useCreateElement);i.perform(a,null,e,t,i,n,r),C.ReactReconcileTransaction.release(i)}function u(e,t,n){for(S.unmountComponent(e,n),t.nodeType===N&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)}function c(e){var t=i(e);if(t){var n=g.getInstanceFromNode(t);return!(!n||!n._hostParent)}}function l(e){return!(!e||e.nodeType!==I&&e.nodeType!==N&&e.nodeType!==R)}function p(e){var t=i(e),n=t&&g.getInstanceFromNode(t);return n&&!n._hostParent?n:null}function f(e){var t=p(e);return t?t._hostContainerInfo._topLevelWrapper:null}var h=n(531),d=n(573),m=n(532),v=n(499),y=n(597),g=(n(513),n(530)),_=n(658),b=n(659),x=n(554),w=n(608),k=(n(558),n(660)),S=n(555),E=n(626),C=n(552),A=n(507),T=n(610),D=(n(508),n(575)),M=n(614),O=(n(504),m.ID_ATTRIBUTE_NAME),P=m.ROOT_ATTRIBUTE_NAME,I=1,N=9,R=11,j={},F=1,B=function(){this.rootID=F++};B.prototype.isReactComponent={},B.prototype.render=function(){return this.props.child},B.isReactTopLevelWrapper=!0;var L={TopLevelWrapper:B,_instancesByReactRootID:j,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r,i){return L.scrollMonitor(r,function(){E.enqueueElementInternal(e,t,n),i&&E.enqueueCallbackInternal(e,i)}),e},_renderNewRootComponent:function(e,t,n,r){l(t)?void 0:h("37"),y.ensureScrollValueMonitoring();var i=T(e,!1);C.batchedUpdates(s,i,t,n,r);var o=i._instance.rootID;return j[o]=i,i},renderSubtreeIntoContainer:function(e,t,n,r){return null!=e&&w.has(e)?void 0:h("38"),L._renderSubtreeIntoContainer(e,t,n,r)},_renderSubtreeIntoContainer:function(e,t,n,r){E.validateCallback(r,"ReactDOM.render"),v.isValidElement(t)?void 0:h("39","string"==typeof t?" Instead of passing a string like 'div', pass React.createElement('div') or <div />.":"function"==typeof t?" Instead of passing a class like Foo, pass React.createElement(Foo) or <Foo />.":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":"");var a,s=v.createElement(B,{child:t});if(e){var u=w.get(e);a=u._processChildContext(u._context)}else a=A;var l=f(n);if(l){var p=l._currentElement,d=p.props.child;if(M(d,t)){var m=l._renderedComponent.getPublicInstance(),y=r&&function(){r.call(m)};return L._updateRootComponent(l,s,a,n,y),m}L.unmountComponentAtNode(n)}var g=i(n),_=g&&!!o(g),b=c(n),x=_&&!l&&!b,k=L._renderNewRootComponent(s,n,x,a)._renderedComponent.getPublicInstance();return r&&r.call(k),k},render:function(e,t,n){return L._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){l(e)?void 0:h("40");var t=f(e);if(!t){c(e),1===e.nodeType&&e.hasAttribute(P);return!1}return delete j[t._instance.rootID],C.batchedUpdates(u,t,e,!1),!0},_mountImageIntoNode:function(e,t,n,o,a){if(l(t)?void 0:h("41"),o){var s=i(t);if(k.canReuseMarkup(e,s))return void g.precacheNode(n,s);var u=s.getAttribute(k.CHECKSUM_ATTR_NAME);s.removeAttribute(k.CHECKSUM_ATTR_NAME);var c=s.outerHTML;s.setAttribute(k.CHECKSUM_ATTR_NAME,u);var p=e,f=r(p,c),m=" (client) "+p.substring(f-20,f+20)+"\n (server) "+c.substring(f-20,f+20);t.nodeType===N?h("42",m):void 0}if(t.nodeType===N?h("43"):void 0,a.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);d.insertTreeBefore(t,e,null)}else D(t,e),g.precacheNode(n,t.firstChild)}};e.exports=L},function(e,t,n){"use strict";function r(e,t){var n={_topLevelWrapper:e,_idCounter:1,_ownerDocument:t?t.nodeType===i?t:t.ownerDocument:null,_node:t,_tag:t?t.nodeName.toLowerCase():null,_namespaceURI:t?t.namespaceURI:null};return n}var i=(n(627),9);e.exports=r},function(e,t){"use strict";var n={useCreateElement:!0,useFiber:!1};e.exports=n},function(e,t,n){"use strict";var r=n(661),i=/\/?>/,o=/^<\!\-\-/,a={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return o.test(e)?e:e.replace(i," "+a.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(a.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var i=r(e);return i===n}};e.exports=a},function(e,t){"use strict";function n(e){for(var t=1,n=0,i=0,o=e.length,a=o&-4;i<a;){for(var s=Math.min(i+4096,a);i<s;i+=4)n+=(t+=e.charCodeAt(i))+(t+=e.charCodeAt(i+1))+(t+=e.charCodeAt(i+2))+(t+=e.charCodeAt(i+3));t%=r,n%=r}for(;i<o;i++)n+=t+=e.charCodeAt(i);return t%=r,n%=r,t|n<<16}var r=65521;e.exports=n},524,function(e,t,n){"use strict";function r(e){if(null==e)return null;if(1===e.nodeType)return e;var t=a.get(e);return t?(t=s(t),t?o.getNodeFromInstance(t):null):void("function"==typeof e.render?i("44"):i("45",Object.keys(e)))}var i=n(531),o=(n(513),n(530)),a=n(608),s=n(664);n(508),n(504);e.exports=r},function(e,t,n){"use strict";function r(e){for(var t;(t=e._renderedNodeType)===i.COMPOSITE;)e=e._renderedComponent;return t===i.HOST?e._renderedComponent:t===i.EMPTY?null:void 0}var i=n(612);e.exports=r},function(e,t,n){"use strict";var r=n(657);e.exports=r.renderSubtreeIntoContainer},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.connect=t.Provider=void 0;var i=n(667),o=r(i),a=n(672),s=r(a);t.Provider=o.default,t.connect=s.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0,t.default=void 0;var s=n(498),u=n(668),c=r(u),l=n(670),p=r(l),f=n(671),h=(r(f),function(e){function t(n,r){i(this,t);var a=o(this,e.call(this,n,r));return a.store=n.store,a}return a(t,e),t.prototype.getChildContext=function(){return{store:this.store}},t.prototype.render=function(){return s.Children.only(this.props.children)},t}(s.Component));t.default=h,h.propTypes={store:p.default.isRequired,children:c.default.element.isRequired},h.childContextTypes={store:p.default.isRequired}},[1232,669],function(e,t,n){"use strict";var r=n(505),i=n(508),o=n(522);e.exports=function(){function e(e,t,n,r,a,s){s!==o&&i(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t};return n.checkPropTypes=r,n.PropTypes=n,n}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(668),o=r(i);t.default=o.default.shape({subscribe:o.default.func.isRequired,dispatch:o.default.func.isRequired,getState:o.default.func.isRequired})},function(e,t){"use strict";function n(e){"undefined"!=typeof console&&"function"==typeof console.error&&console.error(e);try{throw new Error(e)}catch(e){}}t.__esModule=!0,t.default=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return e.displayName||e.name||"Component"}function u(e,t){try{return e.apply(t)}catch(e){return A.value=e,A}}function c(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},c=Boolean(e),f=e||S,d=void 0;d="function"==typeof t?t:t?(0,y.default)(t):E;var v=n||C,g=r.pure,_=void 0===g||g,b=r.withRef,w=void 0!==b&&b,D=_&&v!==C,M=T++;return function(e){function t(e,t,n){var r=v(e,t,n);return r}var n="Connect("+s(e)+")",r=function(r){function s(e,t){i(this,s);var a=o(this,r.call(this,e,t));a.version=M,a.store=e.store||t.store,(0,k.default)(a.store,'Could not find "store" in either the context or '+('props of "'+n+'". ')+"Either wrap the root component in a <Provider>, "+('or explicitly pass "store" as a prop to "'+n+'".'));var u=a.store.getState();return a.state={storeState:u},a.clearCache(),a}return a(s,r),s.prototype.shouldComponentUpdate=function(){return!_||this.haveOwnPropsChanged||this.hasStoreStateChanged},s.prototype.computeStateProps=function(e,t){if(!this.finalMapStateToProps)return this.configureFinalMapState(e,t);var n=e.getState(),r=this.doStatePropsDependOnOwnProps?this.finalMapStateToProps(n,t):this.finalMapStateToProps(n); +return r},s.prototype.configureFinalMapState=function(e,t){var n=f(e.getState(),t),r="function"==typeof n;return this.finalMapStateToProps=r?n:f,this.doStatePropsDependOnOwnProps=1!==this.finalMapStateToProps.length,r?this.computeStateProps(e,t):n},s.prototype.computeDispatchProps=function(e,t){if(!this.finalMapDispatchToProps)return this.configureFinalMapDispatch(e,t);var n=e.dispatch,r=this.doDispatchPropsDependOnOwnProps?this.finalMapDispatchToProps(n,t):this.finalMapDispatchToProps(n);return r},s.prototype.configureFinalMapDispatch=function(e,t){var n=d(e.dispatch,t),r="function"==typeof n;return this.finalMapDispatchToProps=r?n:d,this.doDispatchPropsDependOnOwnProps=1!==this.finalMapDispatchToProps.length,r?this.computeDispatchProps(e,t):n},s.prototype.updateStatePropsIfNeeded=function(){var e=this.computeStateProps(this.store,this.props);return(!this.stateProps||!(0,m.default)(e,this.stateProps))&&(this.stateProps=e,!0)},s.prototype.updateDispatchPropsIfNeeded=function(){var e=this.computeDispatchProps(this.store,this.props);return(!this.dispatchProps||!(0,m.default)(e,this.dispatchProps))&&(this.dispatchProps=e,!0)},s.prototype.updateMergedPropsIfNeeded=function(){var e=t(this.stateProps,this.dispatchProps,this.props);return!(this.mergedProps&&D&&(0,m.default)(e,this.mergedProps))&&(this.mergedProps=e,!0)},s.prototype.isSubscribed=function(){return"function"==typeof this.unsubscribe},s.prototype.trySubscribe=function(){c&&!this.unsubscribe&&(this.unsubscribe=this.store.subscribe(this.handleChange.bind(this)),this.handleChange())},s.prototype.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)},s.prototype.componentDidMount=function(){this.trySubscribe()},s.prototype.componentWillReceiveProps=function(e){_&&(0,m.default)(e,this.props)||(this.haveOwnPropsChanged=!0)},s.prototype.componentWillUnmount=function(){this.tryUnsubscribe(),this.clearCache()},s.prototype.clearCache=function(){this.dispatchProps=null,this.stateProps=null,this.mergedProps=null,this.haveOwnPropsChanged=!0,this.hasStoreStateChanged=!0,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,this.renderedElement=null,this.finalMapDispatchToProps=null,this.finalMapStateToProps=null},s.prototype.handleChange=function(){if(this.unsubscribe){var e=this.store.getState(),t=this.state.storeState;if(!_||t!==e){if(_&&!this.doStatePropsDependOnOwnProps){var n=u(this.updateStatePropsIfNeeded,this);if(!n)return;n===A&&(this.statePropsPrecalculationError=A.value),this.haveStatePropsBeenPrecalculated=!0}this.hasStoreStateChanged=!0,this.setState({storeState:e})}}},s.prototype.getWrappedInstance=function(){return(0,k.default)(w,"To access the wrapped instance, you need to specify { withRef: true } as the fourth argument of the connect() call."),this.refs.wrappedInstance},s.prototype.render=function(){var t=this.haveOwnPropsChanged,n=this.hasStoreStateChanged,r=this.haveStatePropsBeenPrecalculated,i=this.statePropsPrecalculationError,o=this.renderedElement;if(this.haveOwnPropsChanged=!1,this.hasStoreStateChanged=!1,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,i)throw i;var a=!0,s=!0;_&&o&&(a=n||t&&this.doStatePropsDependOnOwnProps,s=t&&this.doDispatchPropsDependOnOwnProps);var u=!1,c=!1;r?u=!0:a&&(u=this.updateStatePropsIfNeeded()),s&&(c=this.updateDispatchPropsIfNeeded());var f=!0;return f=!!(u||c||t)&&this.updateMergedPropsIfNeeded(),!f&&o?o:(w?this.renderedElement=(0,p.createElement)(e,l({},this.mergedProps,{ref:"wrappedInstance"})):this.renderedElement=(0,p.createElement)(e,this.mergedProps),this.renderedElement)},s}(p.Component);return r.displayName=n,r.WrappedComponent=e,r.contextTypes={store:h.default},r.propTypes={store:h.default},(0,x.default)(r,e)}}t.__esModule=!0;var l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t.default=c;var p=n(498),f=n(670),h=r(f),d=n(673),m=r(d),v=n(674),y=r(v),g=n(671),_=(r(g),n(149)),b=(r(_),n(675)),x=r(b),w=n(676),k=r(w),S=function(e){return{}},E=function(e){return{dispatch:e}},C=function(e,t,n){return l({},n,e,t)},A={value:null},T=0},function(e,t){"use strict";function n(e,t){if(e===t)return!0;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var i=Object.prototype.hasOwnProperty,o=0;o<n.length;o++)if(!i.call(t,n[o])||e[n[o]]!==t[n[o]])return!1;return!0}t.__esModule=!0,t.default=n},function(e,t,n){"use strict";function r(e){return function(t){return(0,i.bindActionCreators)(e,t)}}t.__esModule=!0,t.default=r;var i=n(147)},function(e,t){"use strict";var n={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,mixins:!0,propTypes:!0,type:!0},r={name:!0,length:!0,prototype:!0,caller:!0,arguments:!0,arity:!0},i="function"==typeof Object.getOwnPropertySymbols;e.exports=function(e,t,o){if("string"!=typeof t){var a=Object.getOwnPropertyNames(t);i&&(a=a.concat(Object.getOwnPropertySymbols(t)));for(var s=0;s<a.length;++s)if(!(n[a[s]]||r[a[s]]||o&&o[a[s]]))try{e[a[s]]=t[a[s]]}catch(e){}}return e}},function(e,t,n){"use strict";var r=function(e,t,n,r,i,o,a,s){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,i,o,a,s],l=0;u=new Error(t.replace(/%s/g,function(){return c[l++]})),u.name="Invariant Violation"}throw u.framesToPop=1,u}};e.exports=r},function(e,t,n){var r=n(192),i=n(678),o=n(713),a=n(297),s=n(684),u=n(716),c=n(699),l=1,p=2,f=4,h=u(function(e,t){var n={};if(null==e)return n;var u=!1;t=r(t,function(t){return t=a(t,e),u||(u=t.length>1),t}),s(e,c(e),n),u&&(n=i(n,l|p|f));for(var h=t.length;h--;)o(n,t[h]);return n});e.exports=h},function(e,t,n){function r(e,t,n,A,T,D){var M,I=t&k,N=t&S,j=t&E;if(n&&(M=T?n(e,A,T,D):n(e)),void 0!==M)return M;if(!x(e))return e;var F=_(e);if(F){if(M=v(e),!I)return l(e,M)}else{var B=m(e),L=B==O||B==P;if(b(e))return c(e,I);if(B==R||B==C||L&&!T){if(M=N||L?{}:g(e),!I)return N?f(e,u(M,e)):p(e,s(M,e))}else{if(!Z[B])return T?e:{};M=y(e,B,r,I)}}D||(D=new i);var z=D.get(e);if(z)return z;D.set(e,M);var q=j?N?d:h:N?keysIn:w,U=F?void 0:q(e);return o(U||e,function(i,o){U&&(o=i,i=e[o]),a(M,o,r(i,t,n,o,e,D))}),M}var i=n(250),o=n(679),a=n(680),s=n(683),u=n(685),c=n(689),l=n(690),p=n(691),f=n(694),h=n(697),d=n(699),m=n(286),v=n(700),y=n(701),g=n(711),_=n(193),b=n(274),x=n(221),w=n(269),k=1,S=2,E=4,C="[object Arguments]",A="[object Array]",T="[object Boolean]",D="[object Date]",M="[object Error]",O="[object Function]",P="[object GeneratorFunction]",I="[object Map]",N="[object Number]",R="[object Object]",j="[object RegExp]",F="[object Set]",B="[object String]",L="[object Symbol]",z="[object WeakMap]",q="[object ArrayBuffer]",U="[object DataView]",W="[object Float32Array]",K="[object Float64Array]",V="[object Int8Array]",H="[object Int16Array]",J="[object Int32Array]",G="[object Uint8Array]",X="[object Uint8ClampedArray]",Y="[object Uint16Array]",$="[object Uint32Array]",Z={};Z[C]=Z[A]=Z[q]=Z[U]=Z[T]=Z[D]=Z[W]=Z[K]=Z[V]=Z[H]=Z[J]=Z[I]=Z[N]=Z[R]=Z[j]=Z[F]=Z[B]=Z[L]=Z[G]=Z[X]=Z[Y]=Z[$]=!0,Z[M]=Z[O]=Z[z]=!1,e.exports=r},function(e,t){function n(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}e.exports=n},[1233,681,234],function(e,t,n){function r(e,t,n){"__proto__"==t&&i?i(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var i=n(682);e.exports=r},function(e,t,n){var r=n(218),i=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=i},[1234,684,269],[1235,680,681],function(e,t,n){function r(e,t){return e&&i(t,o(t),e)}var i=n(684),o=n(686);e.exports=r},function(e,t,n){function r(e){return a(e)?i(e,!0):o(e)}var i=n(270),o=n(687),a=n(285);e.exports=r},function(e,t,n){function r(e){if(!i(e))return a(e);var t=o(e),n=[];for(var r in e)("constructor"!=r||!t&&u.call(e,r))&&n.push(r);return n}var i=n(221),o=n(283),a=n(688),s=Object.prototype,u=s.hasOwnProperty;e.exports=r},function(e,t){function n(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}e.exports=n},[1236,152],function(e,t){function n(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}e.exports=n},function(e,t,n){function r(e,t){return i(e,o(e),t)}var i=n(684),o=n(692);e.exports=r},function(e,t,n){var r=n(157),i=n(693),o=Object.getOwnPropertySymbols,a=o?r(o,Object):i;e.exports=a},function(e,t){function n(){return[]}e.exports=n},function(e,t,n){function r(e,t){return i(e,o(e),t)}var i=n(684),o=n(695);e.exports=r},function(e,t,n){var r=n(696),i=n(156),o=n(692),a=n(693),s=Object.getOwnPropertySymbols,u=s?function(e){for(var t=[];e;)r(t,o(e)),e=i(e);return t}:a;e.exports=u},function(e,t){function n(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}e.exports=n},[1237,698,692,269],[1238,696,193],function(e,t,n){function r(e){return i(e,a,o)}var i=n(698),o=n(695),a=n(686);e.exports=r},function(e,t){function n(e){var t=e.length,n=e.constructor(t);return t&&"string"==typeof e[0]&&i.call(e,"index")&&(n.index=e.index,n.input=e.input),n}var r=Object.prototype,i=r.hasOwnProperty;e.exports=n},[1239,702,703,704,706,707,709,710],[1240,265],[1241,702],function(e,t,n){function r(e,t,n){var r=t?n(a(e),s):a(e);return o(r,i,new e.constructor)}var i=n(705),o=n(204),a=n(266),s=1;e.exports=r},function(e,t){function n(e,t){return e.set(t[0],t[1]),e}e.exports=n},function(e,t){function n(e){var t=new e.constructor(e.source,r.exec(e));return t.lastIndex=e.lastIndex,t}var r=/\w*$/;e.exports=n},function(e,t,n){function r(e,t,n){var r=t?n(a(e),s):a(e);return o(r,i,new e.constructor)}var i=n(708),o=n(204),a=n(267),s=1;e.exports=r},function(e,t){function n(e,t){return e.add(t),e}e.exports=n},[1242,151],[1243,702],[1244,712,156,283],function(e,t,n){var r=n(221),i=Object.create,o=function(){function e(){}return function(t){if(!r(t))return{};if(i)return i(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=o},function(e,t,n){function r(e,t){return t=i(t,e),e=a(e,t),null==e||delete e[s(o(t))]}var i=n(297),o=n(714),a=n(715),s=n(301);e.exports=r},function(e,t){function n(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}e.exports=n},function(e,t,n){function r(e,t){return t.length<2?e:i(e,o(t,0,-1))}var i=n(296),o=n(198);e.exports=r},[1245,717,720,722],function(e,t,n){function r(e){var t=null==e?0:e.length;return t?i(e,1):[]}var i=n(718);e.exports=r},[1246,696,719],[1247,151,272,193],[1248,721],function(e,t){function n(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}e.exports=n},[1249,723,725],function(e,t,n){var r=n(724),i=n(682),o=n(305),a=i?function(e,t){return i(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:o;e.exports=a},function(e,t){function n(e){return function(){return e}}e.exports=n},function(e,t){function n(e){var t=0,n=0;return function(){var a=o(),s=i-(a-n);if(n=a,s>0){if(++t>=r)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var r=800,i=16,o=Date.now;e.exports=n},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return{fn:o}};var i=n(322),o=r(i)},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){function t(e){for(var t,n=arguments.length,r=Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];i(e)>=a&&(t=console)[e].apply(t,r)}var n=e.configs,r={debug:0,info:1,log:2,warn:3,error:4},i=function(e){return r[e]||-1},o=n.logLevel,a=i(o);return t.warn=t.bind(null,"warn"),t.error=t.bind(null,"error"),t.info=t.bind(null,"info"),t.debug=t.bind(null,"debug"),{rootInjects:{log:t}}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return{fn:{AST:a},components:{JumpToPath:u.default}}};var o=n(729),a=i(o),s=n(761),u=r(s)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){function n(e,t,i){if(!e)return i&&i.start_mark?i.start_mark.line:0;if(t.length&&e.tag===b)for(r=0;r<e.value.length;r++){var o=e.value[r],a=o[0],s=o[1];if(a.value===t[0])return n(s,t.slice(1),e);if(a.value===t[0].replace(/\[.*/,"")){var u=parseInt(t[0].match(/\[(.*)\]/)[1]);if(1===s.value.length&&0!==u&&u)var c=(0,y.default)(s.value[0],{value:u.toString()});else var c=s.value[u];return n(c,t.slice(1),s.value)}}if(t.length&&e.tag===x){var l=e.value[t[0]];if(l&&l.tag)return n(l,t.slice(1),e.value)}return e.tag!==b||Array.isArray(i)?e.start_mark.line+1:e.start_mark.line}if("string"!=typeof e)throw new TypeError("yaml should be a string");if(!(0,m.default)(t))throw new TypeError("path should be an array of strings");var r=0,i=_(e);return n(i,t)}function o(e,t){function n(e){if(e.tag===b)for(i=0;i<e.value.length;i++){var o=e.value[i],a=o[0],s=o[1];if(a.value===t[0])return t.shift(),n(s)}if(e.tag===x){var u=e.value[t[0]];if(u&&u.tag)return t.shift(),n(u)}return t.length?r:{start:{line:e.start_mark.line,column:e.start_mark.column},end:{line:e.end_mark.line,column:e.end_mark.column}}}if("string"!=typeof e)throw new TypeError("yaml should be a string");if(!(0,m.default)(t))throw new TypeError("path should be an array of strings");var r={start:{line:-1,column:-1},end:{line:-1,column:-1}},i=0,o=_(e);return n(o)}function a(e,t){function n(e){function r(e){return e.start_mark.line===e.end_mark.line?t.line===e.start_mark.line&&e.start_mark.column<=t.column&&e.end_mark.column>=t.column:t.line===e.start_mark.line?t.column>=e.start_mark.column:t.line===e.end_mark.line?t.column<=e.end_mark.column:e.start_mark.line<t.line&&e.end_mark.line>t.line}var o=0;if(!e||[b,x].indexOf(e.tag)===-1)return i;if(e.tag===b)for(o=0;o<e.value.length;o++){var a=e.value[o],s=a[0],u=a[1];if(r(s))return i;if(r(u))return i.push(s.value),n(u)}if(e.tag===x)for(o=0;o<e.value.length;o++){var c=e.value[o];if(r(c))return i.push(o.toString()),n(c)}return i}if("string"!=typeof e)throw new TypeError("yaml should be a string");if("object"!==("undefined"==typeof t?"undefined":(0,p.default)(t))||"number"!=typeof t.line||"number"!=typeof t.column)throw new TypeError("position should be an object with line and column properties");try{var r=_(e)}catch(n){return console.error("Error composing AST",n),console.error("Problem area:\n",e.split("\n").slice(t.line-5,t.line+5).join("\n")),null}var i=[];return n(r)}function s(e){return function(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];return new c.default(function(t){return t(e.apply(void 0,n))})}}Object.defineProperty(t,"__esModule",{value:!0}),t.getLineNumberForPathAsync=t.positionRangeForPathAsync=t.pathForPositionAsync=void 0;var u=n(730),c=r(u),l=n(94),p=r(l);t.getLineNumberForPath=i,t.positionRangeForPath=o,t.pathForPosition=a;var f=n(741),h=r(f),d=n(193),m=r(d),v=n(245),y=r(v),g=n(183),_=(0,g.memoize)(h.default.compose),b="tag:yaml.org,2002:map",x="tag:yaml.org,2002:seq";t.pathForPositionAsync=s(a),t.positionRangeForPathAsync=s(o),t.getLineNumberForPathAsync=s(i)},function(e,t,n){e.exports={default:n(731),__esModule:!0}},function(e,t,n){n(128),n(97),n(110),n(732),e.exports=n(59).Promise},function(e,t,n){"use strict";var r,i,o,a=n(100),s=n(77),u=n(82),c=n(182),l=n(81),p=n(87),f=n(83),h=n(733),d=n(734),m=n(735),v=n(736).set,y=n(738)(),g="Promise",_=s.TypeError,b=s.process,x=s[g],b=s.process,w="process"==c(b),k=function(){},S=!!function(){try{var e=x.resolve(1),t=(e.constructor={})[n(108)("species")]=function(e){e(k,k)};return(w||"function"==typeof PromiseRejectionEvent)&&e.then(k)instanceof t}catch(e){}}(),E=function(e,t){return e===t||e===x&&t===o},C=function(e){var t;return!(!p(e)||"function"!=typeof(t=e.then))&&t},A=function(e){return E(x,e)?new T(e):new i(e)},T=i=function(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw _("Bad Promise constructor");t=e,n=r}),this.resolve=f(t),this.reject=f(n)},D=function(e){try{e()}catch(e){return{error:e}}},M=function(e,t){if(!e._n){e._n=!0;var n=e._c;y(function(){for(var r=e._v,i=1==e._s,o=0,a=function(t){var n,o,a=i?t.ok:t.fail,s=t.resolve,u=t.reject,c=t.domain;try{a?(i||(2==e._h&&I(e),e._h=1),a===!0?n=r:(c&&c.enter(),n=a(r),c&&c.exit()),n===t.promise?u(_("Promise-chain cycle")):(o=C(n))?o.call(n,s,u):s(n)):u(r)}catch(e){u(e)}};n.length>o;)a(n[o++]);e._c=[],e._n=!1,t&&!e._h&&O(e)})}},O=function(e){v.call(s,function(){var t,n,r,i=e._v;if(P(e)&&(t=D(function(){w?b.emit("unhandledRejection",i,e):(n=s.onunhandledrejection)?n({promise:e,reason:i}):(r=s.console)&&r.error&&r.error("Unhandled promise rejection",i)}),e._h=w||P(e)?2:1),e._a=void 0,t)throw t.error})},P=function(e){if(1==e._h)return!1;for(var t,n=e._a||e._c,r=0;n.length>r;)if(t=n[r++],t.fail||!P(t.promise))return!1;return!0},I=function(e){v.call(s,function(){var t;w?b.emit("rejectionHandled",e):(t=s.onrejectionhandled)&&t({promise:e,reason:e._v})})},N=function(e){var t=this;t._d||(t._d=!0,t=t._w||t,t._v=e,t._s=2,t._a||(t._a=t._c.slice()),M(t,!0))},R=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw _("Promise can't be resolved itself");(t=C(e))?y(function(){var r={_w:n,_d:!1};try{t.call(e,u(R,r,1),u(N,r,1))}catch(e){N.call(r,e)}}):(n._v=e,n._s=1,M(n,!1))}catch(e){N.call({_w:n,_d:!1},e)}}};S||(x=function(e){h(this,x,g,"_h"),f(e),r.call(this);try{e(u(R,this,1),u(N,this,1))}catch(e){N.call(this,e)}},r=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},r.prototype=n(739)(x.prototype,{then:function(e,t){var n=A(m(this,x));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=w?b.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&M(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),T=function(){var e=new r;this.promise=e,this.resolve=u(R,e,1),this.reject=u(N,e,1)}),l(l.G+l.W+l.F*!S,{Promise:x}),n(107)(x,g),n(740)(g),o=n(59)[g],l(l.S+l.F*!S,g,{reject:function(e){var t=A(this),n=t.reject;return n(e),t.promise}}),l(l.S+l.F*(a||!S),g,{resolve:function(e){if(e instanceof x&&E(e.constructor,this))return e;var t=A(this),n=t.resolve;return n(e),t.promise}}),l(l.S+l.F*!(S&&n(442)(function(e){x.all(e).catch(k)})),g,{all:function(e){var t=this,n=A(t),r=n.resolve,i=n.reject,o=D(function(){var n=[],o=0,a=1;d(e,!1,function(e){var s=o++,u=!1;n.push(void 0),a++,t.resolve(e).then(function(e){u||(u=!0,n[s]=e,--a||r(n))},i)}),--a||r(n)});return o&&i(o.error),n.promise},race:function(e){var t=this,n=A(t),r=n.reject,i=D(function(){d(e,!1,function(e){t.resolve(e).then(n.resolve,r)})});return i&&r(i.error),n.promise}})},function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},function(e,t,n){var r=n(82),i=n(439),o=n(440),a=n(86),s=n(72),u=n(181),c={},l={},t=e.exports=function(e,t,n,p,f){var h,d,m,v,y=f?function(){return e}:u(e),g=r(n,p,t?2:1),_=0;if("function"!=typeof y)throw TypeError(e+" is not iterable!");if(o(y)){for(h=s(e.length);h>_;_++)if(v=t?g(a(d=e[_])[0],d[1]):g(e[_]),v===c||v===l)return v}else for(m=y.call(e);!(d=m.next()).done;)if(v=i(m,g,d.value,t),v===c||v===l)return v};t.BREAK=c,t.RETURN=l},function(e,t,n){var r=n(86),i=n(83),o=n(108)("species");e.exports=function(e,t){var n,a=r(e).constructor;return void 0===a||void 0==(n=r(a)[o])?t:i(n)}},function(e,t,n){var r,i,o,a=n(82),s=n(737),u=n(106),c=n(91),l=n(77),p=l.process,f=l.setImmediate,h=l.clearImmediate,d=l.MessageChannel,m=0,v={},y="onreadystatechange",g=function(){var e=+this;if(v.hasOwnProperty(e)){var t=v[e];delete v[e],t()}},_=function(e){g.call(e.data)};f&&h||(f=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return v[++m]=function(){s("function"==typeof e?e:Function(e),t)},r(m),m},h=function(e){delete v[e]},"process"==n(70)(p)?r=function(e){p.nextTick(a(g,e,1))}:d?(i=new d,o=i.port2,i.port1.onmessage=_,r=a(o.postMessage,o,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(e){l.postMessage(e+"","*")},l.addEventListener("message",_,!1)):r=y in c("script")?function(e){u.appendChild(c("script"))[y]=function(){u.removeChild(this),g.call(e)}}:function(e){setTimeout(a(g,e,1),0)}),e.exports={set:f,clear:h}},50,function(e,t,n){var r=n(77),i=n(736).set,o=r.MutationObserver||r.WebKitMutationObserver,a=r.process,s=r.Promise,u="process"==n(70)(a);e.exports=function(){var e,t,n,c=function(){var r,i;for(u&&(r=a.domain)&&r.exit();e;){i=e.fn,e=e.next;try{i()}catch(r){throw e?n():t=void 0,r}}t=void 0,r&&r.enter()};if(u)n=function(){a.nextTick(c)};else if(o){var l=!0,p=document.createTextNode("");new o(c).observe(p,{characterData:!0}),n=function(){p.data=l=!l}}else if(s&&s.resolve){var f=s.resolve();n=function(){f.then(c)}}else n=function(){i.call(r,c)};return function(r){var i={fn:r,next:void 0};t&&(t.next=i),e||(e=i,n()),t=i}}},function(e,t,n){var r=n(84);e.exports=function(e,t,n){for(var i in t)n&&e[i]?e[i]=t[i]:r(e,i,t[i]);return e}},function(e,t,n){"use strict";var r=n(77),i=n(59),o=n(85),a=n(89),s=n(108)("species");e.exports=function(e){var t="function"==typeof i[e]?i[e]:r[e];a&&t&&!t[s]&&o.f(t,s,{configurable:!0,get:function(){return this}})}},function(e,t,n){(function(){var e,r,i,o,a,s,u,c,l,p,f,h,d;e=this.composer=n(742),r=this.constructor=n(746),i=this.dumper=n(751),o=this.errors=n(744),a=this.events=n(743),s=this.loader=n(756),u=this.nodes=n(745),c=this.parser=n(760),l=this.reader=n(757),p=this.resolver=n(755),f=this.scanner=n(758),h=this.tokens=n(759),d=n(747),this.scan=function(e,t){var n,r;for(null==t&&(t=s.Loader),n=new t(e),r=[];n.check_token();)r.push(n.get_token());return r},this.parse=function(e,t){var n,r;for(null==t&&(t=s.Loader),n=new t(e),r=[];n.check_event();)r.push(n.get_event());return r},this.compose=function(e,t){var n;return null==t&&(t=s.Loader),n=new t(e),n.get_single_node()},this.compose_all=function(e,t){var n,r;for(null==t&&(t=s.Loader),n=new t(e),r=[];n.check_node();)r.push(n.get_node());return r},this.load=function(e,t){var n;return null==t&&(t=s.Loader),n=new t(e),n.get_single_data()},this.load_all=function(e,t){var n,r;for(null==t&&(t=s.Loader),n=new t(e),r=[];n.check_data();)r.push(n.get_data());return r},this.emit=function(e,t,n,r){var o,a,s,u,c;null==n&&(n=i.Dumper),null==r&&(r={}),a=t||new d.StringStream,o=new n(a,r);try{for(u=0,c=e.length;u<c;u++)s=e[u],o.emit(s)}finally{o.dispose()}return t||a.string},this.serialize=function(e,n,r,o){return null==r&&(r=i.Dumper),null==o&&(o={}),t.serialize_all([e],n,r,o)},this.serialize_all=function(e,t,n,r){var o,a,s,u,c;null==n&&(n=i.Dumper),null==r&&(r={}),a=t||new d.StringStream,o=new n(a,r);try{for(o.open(),s=0,u=e.length;s<u;s++)c=e[s],o.serialize(c);o.close()}finally{o.dispose()}return t||a.string},this.dump=function(e,n,r,o){return null==r&&(r=i.Dumper),null==o&&(o={}),t.dump_all([e],n,r,o)},this.dump_all=function(e,t,n,r){var o,a,s,u,c;null==n&&(n=i.Dumper),null==r&&(r={}),a=t||new d.StringStream,o=new n(a,r);try{for(o.open(),u=0,c=e.length;u<c;u++)s=e[u],o.represent(s);o.close()}finally{o.dispose()}return t||a.string}}).call(this)},function(e,t,n){(function(){var e,r,i,o=function(e,t){function n(){this.constructor=e}for(var r in t)a.call(t,r)&&(e[r]=t[r]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},a={}.hasOwnProperty;r=n(743),e=n(744).MarkedYAMLError,i=n(745),this.ComposerError=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return o(t,e),t}(e),this.Composer=function(){function e(){this.anchors={}}return e.prototype.check_node=function(){return this.check_event(r.StreamStartEvent)&&this.get_event(),!this.check_event(r.StreamEndEvent)},e.prototype.get_node=function(){if(!this.check_event(r.StreamEndEvent))return this.compose_document()},e.prototype.get_single_node=function(){var e,n;if(this.get_event(),e=null,this.check_event(r.StreamEndEvent)||(e=this.compose_document()),!this.check_event(r.StreamEndEvent))throw n=this.get_event(),new t.ComposerError("expected a single document in the stream",e.start_mark,"but found another document",n.start_mark);return this.get_event(),e},e.prototype.compose_document=function(){var e;return this.get_event(),e=this.compose_node(),this.get_event(),this.anchors={},e},e.prototype.compose_node=function(e,n){var i,o,a;if(this.check_event(r.AliasEvent)){if(o=this.get_event(),i=o.anchor,!(i in this.anchors))throw new t.ComposerError(null,null,"found undefined alias "+i,o.start_mark);return this.anchors[i]}if(o=this.peek_event(),i=o.anchor,null!==i&&i in this.anchors)throw new t.ComposerError("found duplicate anchor "+i+"; first occurence",this.anchors[i].start_mark,"second occurrence",o.start_mark);return this.descend_resolver(e,n),this.check_event(r.ScalarEvent)?a=this.compose_scalar_node(i):this.check_event(r.SequenceStartEvent)?a=this.compose_sequence_node(i):this.check_event(r.MappingStartEvent)&&(a=this.compose_mapping_node(i)),this.ascend_resolver(),a},e.prototype.compose_scalar_node=function(e){var t,n,r;return t=this.get_event(),r=t.tag,null!==r&&"!"!==r||(r=this.resolve(i.ScalarNode,t.value,t.implicit)),n=new i.ScalarNode(r,t.value,t.start_mark,t.end_mark,t.style),null!==e&&(this.anchors[e]=n),n},e.prototype.compose_sequence_node=function(e){var t,n,o,a,s;for(a=this.get_event(),s=a.tag,null!==s&&"!"!==s||(s=this.resolve(i.SequenceNode,null,a.implicit)),o=new i.SequenceNode(s,[],a.start_mark,null,a.flow_style),null!==e&&(this.anchors[e]=o),n=0;!this.check_event(r.SequenceEndEvent);)o.value.push(this.compose_node(o,n)),n++;return t=this.get_event(),o.end_mark=t.end_mark,o},e.prototype.compose_mapping_node=function(e){var t,n,o,a,s,u;for(s=this.get_event(),u=s.tag,null!==u&&"!"!==u||(u=this.resolve(i.MappingNode,null,s.implicit)),a=new i.MappingNode(u,[],s.start_mark,null,s.flow_style),null!==e&&(this.anchors[e]=a);!this.check_event(r.MappingEndEvent);)n=this.compose_node(a),o=this.compose_node(a,n),a.value.push([n,o]);return t=this.get_event(),a.end_mark=t.end_mark,a},e}()}).call(this)},function(e,t){(function(){var e=function(e,n){function r(){this.constructor=e}for(var i in n)t.call(n,i)&&(e[i]=n[i]);return r.prototype=n.prototype,e.prototype=new r,e.__super__=n.prototype,e},t={}.hasOwnProperty;this.Event=function(){function e(e,t){this.start_mark=e,this.end_mark=t}return e}(),this.NodeEvent=function(t){function n(e,t,n){this.anchor=e,this.start_mark=t,this.end_mark=n}return e(n,t),n}(this.Event),this.CollectionStartEvent=function(t){function n(e,t,n,r,i,o){this.anchor=e,this.tag=t,this.implicit=n,this.start_mark=r,this.end_mark=i,this.flow_style=o}return e(n,t),n}(this.NodeEvent),this.CollectionEndEvent=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n}(this.Event),this.StreamStartEvent=function(t){function n(e,t,n){this.start_mark=e,this.end_mark=t,this.encoding=n}return e(n,t),n}(this.Event),this.StreamEndEvent=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n}(this.Event),this.DocumentStartEvent=function(t){function n(e,t,n,r,i){this.start_mark=e,this.end_mark=t,this.explicit=n,this.version=r,this.tags=i}return e(n,t),n}(this.Event),this.DocumentEndEvent=function(t){function n(e,t,n){this.start_mark=e,this.end_mark=t,this.explicit=n}return e(n,t),n}(this.Event),this.AliasEvent=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n}(this.NodeEvent),this.ScalarEvent=function(t){function n(e,t,n,r,i,o,a){this.anchor=e,this.tag=t,this.implicit=n,this.value=r,this.start_mark=i,this.end_mark=o,this.style=a}return e(n,t),n}(this.NodeEvent),this.SequenceStartEvent=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n}(this.CollectionStartEvent),this.SequenceEndEvent=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n}(this.CollectionEndEvent),this.MappingStartEvent=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n}(this.CollectionStartEvent),this.MappingEndEvent=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n}(this.CollectionEndEvent)}).call(this)},function(e,t){(function(){var e=[].indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(t in this&&this[t]===e)return t;return-1},t=function(e,t){function r(){this.constructor=e}for(var i in t)n.call(t,i)&&(e[i]=t[i]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},n={}.hasOwnProperty;this.Mark=function(){function t(e,t,n,r){this.line=e,this.column=t,this.buffer=n,this.pointer=r}return t.prototype.get_snippet=function(t,n){var r,i,o,a,s,u,c;if(null==t&&(t=4),null==n&&(n=75),null==this.buffer)return null;for(r="\0\r\n…\u2028\u2029",o="",u=this.pointer;u>0&&(a=this.buffer[u-1],e.call(r,a)<0);)if(u--,this.pointer-u>n/2-1){o=" ... ",u+=5;break}for(c="",i=this.pointer;i<this.buffer.length&&(s=this.buffer[i],e.call(r,s)<0);)if(i++,i-this.pointer>n/2-1){c=" ... ",i-=5;break}return""+new Array(t).join(" ")+o+this.buffer.slice(u,i)+c+"\n"+new Array(t+this.pointer-u+o.length).join(" ")+"^"},t.prototype.toString=function(){var e,t;return e=this.get_snippet(),t=" on line "+(this.line+1)+", column "+(this.column+1),e?t:t+":\n"+e},t}(),this.YAMLError=function(e){function n(e){this.message=e,n.__super__.constructor.call(this),this.stack=this.toString()+"\n"+(new Error).stack.split("\n").slice(1).join("\n")}return t(n,e),n.prototype.toString=function(){return this.message},n}(Error),this.MarkedYAMLError=function(e){function n(e,t,r,i,o){this.context=e,this.context_mark=t,this.problem=r,this.problem_mark=i,this.note=o,n.__super__.constructor.call(this)}return t(n,e),n.prototype.toString=function(){var e;return e=[],null!=this.context&&e.push(this.context),null==this.context_mark||null!=this.problem&&null!=this.problem_mark&&this.context_mark.line===this.problem_mark.line&&this.context_mark.column===this.problem_mark.column||e.push(this.context_mark.toString()),null!=this.problem&&e.push(this.problem),null!=this.problem_mark&&e.push(this.problem_mark.toString()),null!=this.note&&e.push(this.note),e.join("\n")},n}(this.YAMLError)}).call(this)},function(e,t){(function(){var e,t=function(e,t){function r(){this.constructor=e}for(var i in t)n.call(t,i)&&(e[i]=t[i]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},n={}.hasOwnProperty;e=0,this.Node=function(){function t(t,n,r,i){this.tag=t,this.value=n,this.start_mark=r,this.end_mark=i,this.unique_id="node_"+e++}return t}(),this.ScalarNode=function(e){function n(e,t,r,i,o){this.tag=e,this.value=t,this.start_mark=r,this.end_mark=i,this.style=o,n.__super__.constructor.apply(this,arguments)}return t(n,e),n.prototype.id="scalar",n}(this.Node),this.CollectionNode=function(e){function n(e,t,r,i,o){this.tag=e,this.value=t,this.start_mark=r,this.end_mark=i,this.flow_style=o,n.__super__.constructor.apply(this,arguments)}return t(n,e),n}(this.Node),this.SequenceNode=function(e){function n(){return n.__super__.constructor.apply(this,arguments)}return t(n,e),n.prototype.id="sequence",n}(this.CollectionNode),this.MappingNode=function(e){function n(){return n.__super__.constructor.apply(this,arguments)}return t(n,e),n.prototype.id="mapping",n}(this.CollectionNode)}).call(this)},function(e,t,n){(function(e){(function(){var r,i,o,a=function(e,t){function n(){this.constructor=e}for(var r in t)s.call(t,r)&&(e[r]=t[r]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},s={}.hasOwnProperty,u=[].indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(t in this&&this[t]===e)return t; +return-1};r=n(744).MarkedYAMLError,i=n(745),o=n(747),this.ConstructorError=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return a(t,e),t}(r),this.BaseConstructor=function(){function e(){this.constructed_objects={},this.constructing_nodes=[],this.deferred_constructors=[]}return e.prototype.yaml_constructors={},e.prototype.yaml_multi_constructors={},e.add_constructor=function(e,t){return this.prototype.hasOwnProperty("yaml_constructors")||(this.prototype.yaml_constructors=o.extend({},this.prototype.yaml_constructors)),this.prototype.yaml_constructors[e]=t},e.add_multi_constructor=function(e,t){return this.prototype.hasOwnProperty("yaml_multi_constructors")||(this.prototype.yaml_multi_constructors=o.extend({},this.prototype.yaml_multi_constructors)),this.prototype.yaml_multi_constructors[e]=t},e.prototype.check_data=function(){return this.check_node()},e.prototype.get_data=function(){if(this.check_node())return this.construct_document(this.get_node())},e.prototype.get_single_data=function(){var e;return e=this.get_single_node(),null!=e?this.construct_document(e):null},e.prototype.construct_document=function(e){var t;for(t=this.construct_object(e);!o.is_empty(this.deferred_constructors);)this.deferred_constructors.pop()();return t},e.prototype.defer=function(e){return this.deferred_constructors.push(e)},e.prototype.construct_object=function(e){var n,r,o,a,s;if(e.unique_id in this.constructed_objects)return this.constructed_objects[e.unique_id];if(o=e.unique_id,u.call(this.constructing_nodes,o)>=0)throw new t.ConstructorError(null,null,"found unconstructable recursive node",e.start_mark);if(this.constructing_nodes.push(e.unique_id),n=null,s=null,e.tag in this.yaml_constructors)n=this.yaml_constructors[e.tag];else{for(a in this.yaml_multi_constructors)if(e.tag.indexOf(0===a)){s=e.tag.slice(a.length),n=this.yaml_multi_constructors[a];break}null==n&&(null in this.yaml_multi_constructors?(s=e.tag,n=this.yaml_multi_constructors[null]):null in this.yaml_constructors?n=this.yaml_constructors[null]:e instanceof i.ScalarNode?n=this.construct_scalar:e instanceof i.SequenceNode?n=this.construct_sequence:e instanceof i.MappingNode&&(n=this.construct_mapping))}return r=n.call(this,null!=s?s:e,e),this.constructed_objects[e.unique_id]=r,this.constructing_nodes.pop(),r},e.prototype.construct_scalar=function(e){if(!(e instanceof i.ScalarNode))throw new t.ConstructorError(null,null,"expected a scalar node but found "+e.id,e.start_mark);return e.value},e.prototype.construct_sequence=function(e){var n,r,o,a,s;if(!(e instanceof i.SequenceNode))throw new t.ConstructorError(null,null,"expected a sequence node but found "+e.id,e.start_mark);for(a=e.value,s=[],r=0,o=a.length;r<o;r++)n=a[r],s.push(this.construct_object(n));return s},e.prototype.construct_mapping=function(e){var n,r,o,a,s,u,c,l,p;if(!(e instanceof i.MappingNode))throw new ConstructorError(null,null,"expected a mapping node but found "+e.id,e.start_mark);for(s={},u=e.value,n=0,a=u.length;n<a;n++){if(c=u[n],o=c[0],p=c[1],r=this.construct_object(o),"object"==typeof r)throw new t.ConstructorError("while constructing a mapping",e.start_mark,"found unhashable key",o.start_mark);l=this.construct_object(p),s[r]=l}return s},e.prototype.construct_pairs=function(e){var n,r,o,a,s,u,c,l,p;if(!(e instanceof i.MappingNode))throw new t.ConstructorError(null,null,"expected a mapping node but found "+e.id,e.start_mark);for(s=[],u=e.value,n=0,a=u.length;n<a;n++)c=u[n],o=c[0],p=c[1],r=this.construct_object(o),l=this.construct_object(p),s.push([r,l]);return s},e}(),this.Constructor=function(n){function r(){return r.__super__.constructor.apply(this,arguments)}var o,s,c;return a(r,n),o={on:!0,off:!1,true:!0,false:!1,yes:!0,no:!1},c=/^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:(?:[Tt]|[\x20\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\.([0-9]*))?(?:[\x20\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?)?$/,s={year:1,month:2,day:3,hour:4,minute:5,second:6,fraction:7,tz:8,tz_sign:9,tz_hour:10,tz_minute:11},r.prototype.construct_scalar=function(e){var t,n,o,a,s,u;if(e instanceof i.MappingNode)for(a=e.value,t=0,o=a.length;t<o;t++)if(s=a[t],n=s[0],u=s[1],"tag:yaml.org,2002:value"===n.tag)return this.construct_scalar(u);return r.__super__.construct_scalar.call(this,e)},r.prototype.flatten_mapping=function(e){var n,r,o,a,s,u,c,l,p,f,h,d,m;for(c=[],r=0;r<e.value.length;)if(l=e.value[r],a=l[0],m=l[1],"tag:yaml.org,2002:merge"===a.tag)if(e.value.splice(r,1),m instanceof i.MappingNode)this.flatten_mapping(m),c=c.concat(m.value);else{if(!(m instanceof i.SequenceNode))throw new t.ConstructorError("while constructing a mapping",e.start_mark,"expected a mapping or list of mappings for merging but found "+m.id,m.start_mark);for(f=[],p=m.value,n=0,s=p.length;n<s;n++){if(h=p[n],!(h instanceof i.MappingNode))throw new t.ConstructorError("while constructing a mapping",e.start_mark,"expected a mapping for merging, but found "+h.id,h.start_mark);this.flatten_mapping(h),f.push(h.value)}for(f.reverse(),o=0,u=f.length;o<u;o++)d=f[o],c=c.concat(d)}else"tag:yaml.org,2002:value"===a.tag?(a.tag="tag:yaml.org,2002:str",r++):r++;if(c.length)return e.value=c.concat(e.value)},r.prototype.construct_mapping=function(e){return e instanceof i.MappingNode&&this.flatten_mapping(e),r.__super__.construct_mapping.call(this,e)},r.prototype.construct_yaml_null=function(e){return this.construct_scalar(e),null},r.prototype.construct_yaml_bool=function(e){var t;return t=this.construct_scalar(e),o[t.toLowerCase()]},r.prototype.construct_yaml_int=function(e){var t,n,r,i,o,a,s,c,l;if(l=this.construct_scalar(e),l=l.replace(/_/g,""),c="-"===l[0]?-1:1,s=l[0],u.call("+-",s)>=0&&(l=l.slice(1)),"0"===l)return 0;if(0===l.indexOf("0b"))return c*parseInt(l.slice(2),2);if(0===l.indexOf("0x"))return c*parseInt(l.slice(2),16);if(0===l.indexOf("0o"))return c*parseInt(l.slice(2),8);if("0"===l[0])return c*parseInt(l,8);if(u.call(l,":")>=0){for(r=function(){var e,t,n,r;for(n=l.split(/:/g),r=[],e=0,t=n.length;e<t;e++)a=n[e],r.push(parseInt(a));return r}(),r.reverse(),t=1,l=0,i=0,o=r.length;i<o;i++)n=r[i],l+=n*t,t*=60;return c*l}return c*parseInt(l)},r.prototype.construct_yaml_float=function(e){var t,n,r,i,o,a,s,c,l;if(l=this.construct_scalar(e),l=l.replace(/_/g,"").toLowerCase(),c="-"===l[0]?-1:1,s=l[0],u.call("+-",s)>=0&&(l=l.slice(1)),".inf"===l)return Infinity*c;if(".nan"===l)return NaN;if(u.call(l,":")>=0){for(r=function(){var e,t,n,r;for(n=l.split(/:/g),r=[],e=0,t=n.length;e<t;e++)a=n[e],r.push(parseFloat(a));return r}(),r.reverse(),t=1,l=0,i=0,o=r.length;i<o;i++)n=r[i],l+=n*t,t*=60;return c*l}return c*parseFloat(l)},r.prototype.construct_yaml_binary=function(n){var r,i;i=this.construct_scalar(n);try{return"undefined"!=typeof window&&null!==window?atob(i):new e(i,"base64").toString("ascii")}catch(e){throw r=e,new t.ConstructorError(null,null,"failed to decode base64 data: "+r,n.start_mark)}},r.prototype.construct_yaml_timestamp=function(e){var t,n,r,i,o,a,u,l,p,f,h,d,m,v,y,g,_;y=this.construct_scalar(e),u=e.value.match(c),g={};for(a in s)o=s[a],g[a]=u[o];if(_=parseInt(g.year),f=parseInt(g.month)-1,n=parseInt(g.day),!g.hour)return new Date(Date.UTC(_,f,n));if(i=parseInt(g.hour),p=parseInt(g.minute),h=parseInt(g.second),l=0,g.fraction){for(r=g.fraction.slice(0,6);r.length<6;)r+="0";r=parseInt(r),l=Math.round(r/1e3)}return g.tz_sign&&(v="-"===g.tz_sign?1:-1,(d=parseInt(g.tz_hour))&&(i+=v*d),(m=parseInt(g.tz_minute))&&(p+=v*m)),t=new Date(Date.UTC(_,f,n,i,p,h,l))},r.prototype.construct_yaml_pair_list=function(e,n){var r;if(r=[],!(n instanceof i.SequenceNode))throw new t.ConstructorError("while constructing "+e,n.start_mark,"expected a sequence but found "+n.id,n.start_mark);return this.defer(function(o){return function(){var a,s,u,c,l,p,f,h,d,m;for(l=n.value,f=[],a=0,c=l.length;a<c;a++){if(h=l[a],!(h instanceof i.MappingNode))throw new t.ConstructorError("while constructing "+e,n.start_mark,"expected a mapping of length 1 but found "+h.id,h.start_mark);if(1!==h.value.length)throw new t.ConstructorError("while constructing "+e,n.start_mark,"expected a mapping of length 1 but found "+h.id,h.start_mark);p=h.value[0],u=p[0],m=p[1],s=o.construct_object(u),d=o.construct_object(m),f.push(r.push([s,d]))}return f}}(this)),r},r.prototype.construct_yaml_omap=function(e){return this.construct_yaml_pair_list("an ordered map",e)},r.prototype.construct_yaml_pairs=function(e){return this.construct_yaml_pair_list("pairs",e)},r.prototype.construct_yaml_set=function(e){var t;return t=[],this.defer(function(n){return function(){var r,i;i=[];for(r in n.construct_mapping(e))i.push(t.push(r));return i}}(this)),t},r.prototype.construct_yaml_str=function(e){return this.construct_scalar(e)},r.prototype.construct_yaml_seq=function(e){var t;return t=[],this.defer(function(n){return function(){var r,i,o,a,s;for(a=n.construct_sequence(e),s=[],r=0,o=a.length;r<o;r++)i=a[r],s.push(t.push(i));return s}}(this)),t},r.prototype.construct_yaml_map=function(e){var t;return t={},this.defer(function(n){return function(){var r,i,o,a;i=n.construct_mapping(e),o=[];for(r in i)a=i[r],o.push(t[r]=a);return o}}(this)),t},r.prototype.construct_yaml_object=function(e,t){var n;return n=new t,this.defer(function(t){return function(){var r,i,o,a;i=t.construct_mapping(e,!0),o=[];for(r in i)a=i[r],o.push(n[r]=a);return o}}(this)),n},r.prototype.construct_undefined=function(e){throw new t.ConstructorError(null,null,"could not determine a constructor for the tag "+e.tag,e.start_mark)},r}(this.BaseConstructor),this.Constructor.add_constructor("tag:yaml.org,2002:null",this.Constructor.prototype.construct_yaml_null),this.Constructor.add_constructor("tag:yaml.org,2002:bool",this.Constructor.prototype.construct_yaml_bool),this.Constructor.add_constructor("tag:yaml.org,2002:int",this.Constructor.prototype.construct_yaml_int),this.Constructor.add_constructor("tag:yaml.org,2002:float",this.Constructor.prototype.construct_yaml_float),this.Constructor.add_constructor("tag:yaml.org,2002:binary",this.Constructor.prototype.construct_yaml_binary),this.Constructor.add_constructor("tag:yaml.org,2002:timestamp",this.Constructor.prototype.construct_yaml_timestamp),this.Constructor.add_constructor("tag:yaml.org,2002:omap",this.Constructor.prototype.construct_yaml_omap),this.Constructor.add_constructor("tag:yaml.org,2002:pairs",this.Constructor.prototype.construct_yaml_pairs),this.Constructor.add_constructor("tag:yaml.org,2002:set",this.Constructor.prototype.construct_yaml_set),this.Constructor.add_constructor("tag:yaml.org,2002:str",this.Constructor.prototype.construct_yaml_str),this.Constructor.add_constructor("tag:yaml.org,2002:seq",this.Constructor.prototype.construct_yaml_seq),this.Constructor.add_constructor("tag:yaml.org,2002:map",this.Constructor.prototype.construct_yaml_map),this.Constructor.add_constructor(null,this.Constructor.prototype.construct_undefined)}).call(this)}).call(t,n(132).Buffer)},function(e,t,n){(function(e){(function(){var t,r,i,o=[].slice,a={}.hasOwnProperty;this.StringStream=function(){function e(){this.string=""}return e.prototype.write=function(e){return this.string+=e},e}(),this.clone=function(e){return function(t){return e.extend({},t)}}(this),this.extend=function(){var e,t,n,r,i,a,s;for(e=arguments[0],a=2<=arguments.length?o.call(arguments,1):[],t=0,r=a.length;t<r;t++){i=a[t];for(n in i)s=i[n],e[n]=s}return e},this.is_empty=function(e){var t;if(Array.isArray(e)||"string"==typeof e)return 0===e.length;for(t in e)if(a.call(e,t))return!1;return!0},this.inspect=null!=(t=null!=(r=null!=(i=n(748))?i.inspect:void 0)?r:e.inspect)?t:function(e){return""+e},this.pad_left=function(e,t,n){return e=String(e),e.length>=n?e:e.length+1===n?""+t+e:""+new Array(n-e.length+1).join(t)+e},this.to_hex=function(e){return"string"==typeof e&&(e=e.charCodeAt(0)),e.toString(16)}}).call(this)}).call(t,function(){return this}())},function(e,t,n){(function(e,r){function i(e,n){var r={seen:[],stylize:a};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),m(n)?r.showHidden=n:n&&t._extend(r,n),x(r.showHidden)&&(r.showHidden=!1),x(r.depth)&&(r.depth=2),x(r.colors)&&(r.colors=!1),x(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=o),u(r,e,r.depth)}function o(e,t){var n=i.styles[t];return n?"["+i.colors[n][0]+"m"+e+"["+i.colors[n][1]+"m":e}function a(e,t){return e}function s(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}function u(e,n,r){if(e.customInspect&&n&&C(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var i=n.inspect(r,e);return _(i)||(i=u(e,i,r)),i}var o=c(e,n);if(o)return o;var a=Object.keys(n),m=s(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),E(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return l(n);if(0===a.length){if(C(n)){var v=n.name?": "+n.name:"";return e.stylize("[Function"+v+"]","special")}if(w(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(S(n))return e.stylize(Date.prototype.toString.call(n),"date");if(E(n))return l(n)}var y="",g=!1,b=["{","}"];if(d(n)&&(g=!0,b=["[","]"]),C(n)){var x=n.name?": "+n.name:"";y=" [Function"+x+"]"}if(w(n)&&(y=" "+RegExp.prototype.toString.call(n)),S(n)&&(y=" "+Date.prototype.toUTCString.call(n)),E(n)&&(y=" "+l(n)),0===a.length&&(!g||0==n.length))return b[0]+y+b[1];if(r<0)return w(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special");e.seen.push(n);var k;return k=g?p(e,n,r,m,a):a.map(function(t){return f(e,n,r,m,t,g)}),e.seen.pop(),h(k,y,b)}function c(e,t){if(x(t))return e.stylize("undefined","undefined");if(_(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return g(t)?e.stylize(""+t,"number"):m(t)?e.stylize(""+t,"boolean"):v(t)?e.stylize("null","null"):void 0}function l(e){return"["+Error.prototype.toString.call(e)+"]"}function p(e,t,n,r,i){for(var o=[],a=0,s=t.length;a<s;++a)O(t,String(a))?o.push(f(e,t,n,r,String(a),!0)):o.push("");return i.forEach(function(i){i.match(/^\d+$/)||o.push(f(e,t,n,r,i,!0))}),o}function f(e,t,n,r,i,o){var a,s,c;if(c=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},c.get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),O(r,i)||(a="["+i+"]"),s||(e.seen.indexOf(c.value)<0?(s=v(n)?u(e,c.value,null):u(e,c.value,n-1),s.indexOf("\n")>-1&&(s=o?s.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+s.split("\n").map(function(e){return" "+e}).join("\n"))):s=e.stylize("[Circular]","special")),x(a)){if(o&&i.match(/^\d+$/))return s;a=JSON.stringify(""+i),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function h(e,t,n){var r=0,i=e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function d(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function v(e){return null===e}function y(e){return null==e}function g(e){return"number"==typeof e}function _(e){return"string"==typeof e}function b(e){return"symbol"==typeof e}function x(e){return void 0===e}function w(e){return k(e)&&"[object RegExp]"===T(e)}function k(e){return"object"==typeof e&&null!==e}function S(e){return k(e)&&"[object Date]"===T(e)}function E(e){return k(e)&&("[object Error]"===T(e)||e instanceof Error)}function C(e){return"function"==typeof e}function A(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function T(e){return Object.prototype.toString.call(e)}function D(e){return e<10?"0"+e.toString(10):e.toString(10)}function M(){var e=new Date,t=[D(e.getHours()),D(e.getMinutes()),D(e.getSeconds())].join(":");return[e.getDate(),R[e.getMonth()],t].join(" ")}function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var P=/%[sdj%]/g;t.format=function(e){if(!_(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(i(arguments[n]));return t.join(" ")}for(var n=1,r=arguments,o=r.length,a=String(e).replace(P,function(e){if("%%"===e)return"%";if(n>=o)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}}),s=r[n];n<o;s=r[++n])a+=v(s)||!k(s)?" "+s:" "+i(s);return a},t.deprecate=function(n,i){function o(){if(!a){if(r.throwDeprecation)throw new Error(i);r.traceDeprecation?console.trace(i):console.error(i),a=!0}return n.apply(this,arguments)}if(x(e.process))return function(){return t.deprecate(n,i).apply(this,arguments)};if(r.noDeprecation===!0)return n;var a=!1;return o};var I,N={};t.debuglog=function(e){if(x(I)&&(I={NODE_ENV:"production",WEBPACK_INLINE_STYLES:!0}.NODE_DEBUG||""),e=e.toUpperCase(),!N[e])if(new RegExp("\\b"+e+"\\b","i").test(I)){var n=r.pid;N[e]=function(){var r=t.format.apply(t,arguments);console.error("%s %d: %s",e,n,r)}}else N[e]=function(){};return N[e]},t.inspect=i,i.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]},i.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=d,t.isBoolean=m,t.isNull=v,t.isNullOrUndefined=y,t.isNumber=g,t.isString=_,t.isSymbol=b,t.isUndefined=x,t.isRegExp=w,t.isObject=k,t.isDate=S,t.isError=E,t.isFunction=C,t.isPrimitive=A,t.isBuffer=n(749);var R=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];t.log=function(){console.log("%s - %s",M(),t.format.apply(t,arguments))},t.inherits=n(750),t._extend=function(e,t){if(!t||!k(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e}}).call(t,function(){return this}(),n(324))},function(e,t){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},328,function(e,t,n){(function(){var e,t,r,i,o,a=[].slice;o=n(747),e=n(752),i=n(753),t=n(754),r=n(755),this.make_dumper=function(n,s,u,c){var l,p;return null==n&&(n=e.Emitter),null==s&&(s=i.Serializer),null==u&&(u=t.Representer),null==c&&(c=r.Resolver),p=[n,s,u,c],l=function(){function e(e,n){var r,i,o;for(null==n&&(n={}),p[0].call(this,e,n),o=p.slice(1),r=0,i=o.length;r<i;r++)t=o[r],t.call(this,n)}var t;return o.extend.apply(o,[e.prototype].concat(a.call(function(){var e,n,r;for(r=[],e=0,n=p.length;e<n;e++)t=p[e],r.push(t.prototype);return r}()))),e}()},this.Dumper=this.make_dumper()}).call(this)},function(e,t,n){(function(){var e,r,i,o,a=function(e,t){function n(){this.constructor=e}for(var r in t)s.call(t,r)&&(e[r]=t[r]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},s={}.hasOwnProperty,u=[].indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(t in this&&this[t]===e)return t;return-1};i=n(743),o=n(747),r=n(744).YAMLError,this.EmitterError=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return a(t,e),t}(r),this.Emitter=function(){function n(e,t){var n;this.stream=e,this.encoding=null,this.states=[],this.state=this.expect_stream_start,this.events=[],this.event=null,this.indents=[],this.indent=null,this.flow_level=0,this.root_context=!1,this.sequence_context=!1,this.mapping_context=!1,this.simple_key_context=!1,this.line=0,this.column=0,this.whitespace=!0,this.indentation=!0,this.open_ended=!1,this.canonical=t.canonical,this.allow_unicode=t.allow_unicode,null==this.canonical&&(this.canonical=!1),null==this.allow_unicode&&(this.allow_unicode=!0),this.best_indent=1<t.indent&&t.indent<10?t.indent:2,this.best_width=t.width>2*this.indent?t.width:80,this.best_line_break="\r"===(n=t.line_break)||"\n"===n||"\r\n"===n?t.line_break:"\n",this.tag_prefixes=null,this.prepared_anchor=null,this.prepared_tag=null,this.analysis=null,this.style=null}var r,a,c;return r="\0 \t\r\n…\u2028\u2029",a={"!":"!","tag:yaml.org,2002:":"!!"},c={"\0":"0","":"a","\b":"b","\t":"t","\n":"n","\v":"v","\f":"f","\r":"r","":"e",'"':'"',"\\":"\\","…":"N"," ":"_","\u2028":"L","\u2029":"P"},n.prototype.dispose=function(){return this.states=[],this.state=null},n.prototype.emit=function(e){var t;for(this.events.push(e),t=[];!this.need_more_events();)this.event=this.events.shift(),this.state(),t.push(this.event=null);return t},n.prototype.need_more_events=function(){var e;return 0===this.events.length||(e=this.events[0],e instanceof i.DocumentStartEvent?this.need_events(1):e instanceof i.SequenceStartEvent?this.need_events(2):e instanceof i.MappingStartEvent&&this.need_events(3))},n.prototype.need_events=function(e){var t,n,r,o,a;for(o=0,a=this.events.slice(1),n=0,r=a.length;n<r;n++)if(t=a[n],t instanceof i.DocumentStartEvent||t instanceof i.CollectionStartEvent?o++:t instanceof i.DocumentEndEvent||t instanceof i.CollectionEndEvent?o--:t instanceof i.StreamEndEvent&&(o=-1),o<0)return!1;return this.events.length<e+1},n.prototype.increase_indent=function(e){return null==e&&(e={}),this.indents.push(this.indent),null==this.indent?this.indent=e.flow?this.best_indent:0:e.indentless?void 0:this.indent+=this.best_indent},n.prototype.expect_stream_start=function(){return this.event instanceof i.StreamStartEvent?(!this.event.encoding||"encoding"in this.stream||(this.encoding=this.event.encoding),this.write_stream_start(),this.state=this.expect_first_document_start):this.error("expected StreamStartEvent, but got",this.event)},n.prototype.expect_nothing=function(){return this.error("expected nothing, but got",this.event)},n.prototype.expect_first_document_start=function(){return this.expect_document_start(!0)},n.prototype.expect_document_start=function(e){var t,n,r,u,c,l,p;if(null==e&&(e=!1),this.event instanceof i.DocumentStartEvent){if((this.event.version||this.event.tags)&&this.open_ended&&(this.write_indicator("...",!0),this.write_indent()),this.event.version&&this.write_version_directive(this.prepare_version(this.event.version)),this.tag_prefixes=o.clone(a),this.event.tags)for(p=function(){var e,t;e=this.event.tags,t=[];for(u in e)s.call(e,u)&&t.push(u);return t}.call(this).sort(),r=0,c=p.length;r<c;r++)n=p[r],l=this.event.tags[n],this.tag_prefixes[l]=n,this.write_tag_directive(this.prepare_tag_handle(n),this.prepare_tag_prefix(l));return t=!e||this.event.explicit||this.canonical||this.event.version||this.event.tags||this.check_empty_document(),t&&(this.write_indent(),this.write_indicator("---",!0),this.canonical&&this.write_indent()),this.state=this.expect_document_root}return this.event instanceof i.StreamEndEvent?(this.open_ended&&(this.write_indicator("...",!0),this.write_indent()),this.write_stream_end(),this.state=this.expect_nothing):this.error("expected DocumentStartEvent, but got",this.event)},n.prototype.expect_document_end=function(){return this.event instanceof i.DocumentEndEvent?(this.write_indent(),this.event.explicit&&(this.write_indicator("...",!0),this.write_indent()),this.flush_stream(),this.state=this.expect_document_start):this.error("expected DocumentEndEvent, but got",this.event)},n.prototype.expect_document_root=function(){return this.states.push(this.expect_document_end),this.expect_node({root:!0})},n.prototype.expect_node=function(e){return null==e&&(e={}),this.root_context=!!e.root,this.sequence_context=!!e.sequence,this.mapping_context=!!e.mapping,this.simple_key_context=!!e.simple_key,this.event instanceof i.AliasEvent?this.expect_alias():this.event instanceof i.ScalarEvent||this.event instanceof i.CollectionStartEvent?(this.process_anchor("&"),this.process_tag(),this.event instanceof i.ScalarEvent?this.expect_scalar():this.event instanceof i.SequenceStartEvent?this.flow_level||this.canonical||this.event.flow_style||this.check_empty_sequence()?this.expect_flow_sequence():this.expect_block_sequence():this.event instanceof i.MappingStartEvent?this.flow_level||this.canonical||this.event.flow_style||this.check_empty_mapping()?this.expect_flow_mapping():this.expect_block_mapping():void 0):this.error("expected NodeEvent, but got",this.event)},n.prototype.expect_alias=function(){return this.event.anchor||this.error("anchor is not specified for alias"),this.process_anchor("*"),this.state=this.states.pop()},n.prototype.expect_scalar=function(){return this.increase_indent({flow:!0}),this.process_scalar(),this.indent=this.indents.pop(),this.state=this.states.pop()},n.prototype.expect_flow_sequence=function(){return this.write_indicator("[",!0,{whitespace:!0}),this.flow_level++,this.increase_indent({flow:!0}),this.state=this.expect_first_flow_sequence_item},n.prototype.expect_first_flow_sequence_item=function(){return this.event instanceof i.SequenceEndEvent?(this.indent=this.indents.pop(),this.flow_level--,this.write_indicator("]",!1),this.state=this.states.pop()):((this.canonical||this.column>this.best_width)&&this.write_indent(),this.states.push(this.expect_flow_sequence_item),this.expect_node({sequence:!0}))},n.prototype.expect_flow_sequence_item=function(){return this.event instanceof i.SequenceEndEvent?(this.indent=this.indents.pop(),this.flow_level--,this.canonical&&(this.write_indicator(",",!1),this.write_indent()),this.write_indicator("]",!1),this.state=this.states.pop()):(this.write_indicator(",",!1),(this.canonical||this.column>this.best_width)&&this.write_indent(),this.states.push(this.expect_flow_sequence_item),this.expect_node({sequence:!0}))},n.prototype.expect_flow_mapping=function(){return this.write_indicator("{",!0,{whitespace:!0}),this.flow_level++,this.increase_indent({flow:!0}),this.state=this.expect_first_flow_mapping_key},n.prototype.expect_first_flow_mapping_key=function(){return this.event instanceof i.MappingEndEvent?(this.indent=this.indents.pop(),this.flow_level--,this.write_indicator("}",!1),this.state=this.states.pop()):((this.canonical||this.column>this.best_width)&&this.write_indent(),!this.canonical&&this.check_simple_key()?(this.states.push(this.expect_flow_mapping_simple_value),this.expect_node({mapping:!0,simple_key:!0})):(this.write_indicator("?",!0),this.states.push(this.expect_flow_mapping_value),this.expect_node({mapping:!0})))},n.prototype.expect_flow_mapping_key=function(){return this.event instanceof i.MappingEndEvent?(this.indent=this.indents.pop(),this.flow_level--,this.canonical&&(this.write_indicator(",",!1),this.write_indent()),this.write_indicator("}",!1),this.state=this.states.pop()):(this.write_indicator(",",!1),(this.canonical||this.column>this.best_width)&&this.write_indent(),!this.canonical&&this.check_simple_key()?(this.states.push(this.expect_flow_mapping_simple_value),this.expect_node({mapping:!0,simple_key:!0})):(this.write_indicator("?",!0),this.states.push(this.expect_flow_mapping_value),this.expect_node({mapping:!0})))},n.prototype.expect_flow_mapping_simple_value=function(){return this.write_indicator(":",!1),this.states.push(this.expect_flow_mapping_key),this.expect_node({mapping:!0})},n.prototype.expect_flow_mapping_value=function(){return(this.canonical||this.column>this.best_width)&&this.write_indent(),this.write_indicator(":",!0),this.states.push(this.expect_flow_mapping_key),this.expect_node({mapping:!0})},n.prototype.expect_block_sequence=function(){var e;return e=this.mapping_context&&!this.indentation,this.increase_indent({indentless:e}),this.state=this.expect_first_block_sequence_item},n.prototype.expect_first_block_sequence_item=function(){return this.expect_block_sequence_item(!0)},n.prototype.expect_block_sequence_item=function(e){return null==e&&(e=!1),!e&&this.event instanceof i.SequenceEndEvent?(this.indent=this.indents.pop(),this.state=this.states.pop()):(this.write_indent(),this.write_indicator("-",!0,{indentation:!0}),this.states.push(this.expect_block_sequence_item),this.expect_node({sequence:!0}))},n.prototype.expect_block_mapping=function(){return this.increase_indent(),this.state=this.expect_first_block_mapping_key},n.prototype.expect_first_block_mapping_key=function(){return this.expect_block_mapping_key(!0)},n.prototype.expect_block_mapping_key=function(e){return null==e&&(e=!1),!e&&this.event instanceof i.MappingEndEvent?(this.indent=this.indents.pop(),this.state=this.states.pop()):(this.write_indent(),this.check_simple_key()?(this.states.push(this.expect_block_mapping_simple_value),this.expect_node({mapping:!0,simple_key:!0})):(this.write_indicator("?",!0,{indentation:!0}),this.states.push(this.expect_block_mapping_value),this.expect_node({mapping:!0})))},n.prototype.expect_block_mapping_simple_value=function(){return this.write_indicator(":",!1),this.states.push(this.expect_block_mapping_key),this.expect_node({mapping:!0})},n.prototype.expect_block_mapping_value=function(){return this.write_indent(),this.write_indicator(":",!0,{indentation:!0}),this.states.push(this.expect_block_mapping_key),this.expect_node({mapping:!0})},n.prototype.check_empty_document=function(){var e;return this.event instanceof i.DocumentStartEvent&&0!==this.events.length&&(e=this.events[0],e instanceof i.ScalarEvent&&null==e.anchor&&null==e.tag&&e.implicit&&""===e.value)},n.prototype.check_empty_sequence=function(){return this.event instanceof i.SequenceStartEvent&&this.events[0]instanceof i.SequenceEndEvent},n.prototype.check_empty_mapping=function(){return this.event instanceof i.MappingStartEvent&&this.events[0]instanceof i.MappingEndEvent},n.prototype.check_simple_key=function(){var e;return e=0,this.event instanceof i.NodeEvent&&null!=this.event.anchor&&(null==this.prepared_anchor&&(this.prepared_anchor=this.prepare_anchor(this.event.anchor)),e+=this.prepared_anchor.length),null!=this.event.tag&&(this.event instanceof i.ScalarEvent||this.event instanceof i.CollectionStartEvent)&&(null==this.prepared_tag&&(this.prepared_tag=this.prepare_tag(this.event.tag)),e+=this.prepared_tag.length),this.event instanceof i.ScalarEvent&&(null==this.analysis&&(this.analysis=this.analyze_scalar(this.event.value)),e+=this.analysis.scalar.length),e<128&&(this.event instanceof i.AliasEvent||this.event instanceof i.ScalarEvent&&!this.analysis.empty&&!this.analysis.multiline||this.check_empty_sequence()||this.check_empty_mapping())},n.prototype.process_anchor=function(e){return null==this.event.anchor?void(this.prepared_anchor=null):(null==this.prepared_anchor&&(this.prepared_anchor=this.prepare_anchor(this.event.anchor)),this.prepared_anchor&&this.write_indicator(""+e+this.prepared_anchor,!0),this.prepared_anchor=null)},n.prototype.process_tag=function(){var e;if(e=this.event.tag,this.event instanceof i.ScalarEvent){if(null==this.style&&(this.style=this.choose_scalar_style()),(!this.canonical||null==e)&&(""===this.style&&this.event.implicit[0]||""!==this.style&&this.event.implicit[1]))return void(this.prepared_tag=null);this.event.implicit[0]&&null==e&&(e="!",this.prepared_tag=null)}else if((!this.canonical||null==e)&&this.event.implicit)return void(this.prepared_tag=null);return null==e&&this.error("tag is not specified"),null==this.prepared_tag&&(this.prepared_tag=this.prepare_tag(e)),this.write_indicator(this.prepared_tag,!0),this.prepared_tag=null},n.prototype.process_scalar=function(){var e;switch(null==this.analysis&&(this.analysis=this.analyze_scalar(this.event.value)),null==this.style&&(this.style=this.choose_scalar_style()),e=!this.simple_key_context,this.style){case'"':this.write_double_quoted(this.analysis.scalar,e);break;case"'":this.write_single_quoted(this.analysis.scalar,e);break;case">":this.write_folded(this.analysis.scalar);break;case"|":this.write_literal(this.analysis.scalar);break;default:this.write_plain(this.analysis.scalar,e)}return this.analysis=null,this.style=null},n.prototype.choose_scalar_style=function(){var e;return null==this.analysis&&(this.analysis=this.analyze_scalar(this.event.value)),'"'===this.event.style||this.canonical?'"':this.event.style||!this.event.implicit[0]||this.simple_key_context&&(this.analysis.empty||this.analysis.multiline)||!(this.flow_level&&this.analysis.allow_flow_plain||!this.flow_level&&this.analysis.allow_block_plain)?this.event.style&&(e=this.event.style, +u.call("|>",e)>=0)&&!this.flow_level&&!this.simple_key_context&&this.analysis.allow_block?this.event.style:this.event.style&&"'"!==this.event.style||!this.analysis.allow_single_quoted||this.simple_key_context&&this.analysis.multiline?'"':"'":""},n.prototype.prepare_version=function(e){var t,n,r;return t=e[0],n=e[1],r=t+"."+n,1===t?r:this.error("unsupported YAML version",r)},n.prototype.prepare_tag_handle=function(e){var t,n,r,i;for(e||this.error("tag handle must not be empty"),"!"===e[0]&&"!"===e.slice(-1)||this.error("tag handle must start and end with '!':",e),i=e.slice(1,-1),n=0,r=i.length;n<r;n++)t=i[n],"0"<=t&&t<="9"||"A"<=t&&t<="Z"||"a"<=t&&t<="z"||u.call("-_",t)>=0||this.error("invalid character '"+t+"' in the tag handle:",e);return e},n.prototype.prepare_tag_prefix=function(e){var t,n,r,i;for(e||this.error("tag prefix must not be empty"),n=[],i=0,r=+("!"===e[0]);r<e.length;)t=e[r],"0"<=t&&t<="9"||"A"<=t&&t<="Z"||"a"<=t&&t<="z"||u.call("-;/?!:@&=+$,_.~*'()[]",t)>=0?r++:(i<r&&n.push(e.slice(i,r)),i=r+=1,n.push(t));return i<r&&n.push(e.slice(i,r)),n.join("")},n.prototype.prepare_tag=function(e){var t,n,r,i,o,a,c,l,p,f,h,d;if(e||this.error("tag must not be empty"),"!"===e)return e;for(i=null,h=e,p=function(){var e,t;e=this.tag_prefixes,t=[];for(a in e)s.call(e,a)&&t.push(a);return t}.call(this).sort(),o=0,c=p.length;o<c;o++)l=p[o],0===e.indexOf(l)&&("!"===l||l.length<e.length)&&(i=this.tag_prefixes[l],h=e.slice(l.length));for(n=[],f=r=0;r<h.length;)t=h[r],"0"<=t&&t<="9"||"A"<=t&&t<="Z"||"a"<=t&&t<="z"||u.call("-;/?!:@&=+$,_.~*'()[]",t)>=0||"!"===t&&"!"!==i?r++:(f<r&&n.push(h.slice(f,r)),f=r+=1,n.push(t));return f<r&&n.push(h.slice(f,r)),d=n.join(""),i?""+i+d:"!<"+d+">"},n.prototype.prepare_anchor=function(e){var t,n,r;for(e||this.error("anchor must not be empty"),n=0,r=e.length;n<r;n++)t=e[n],"0"<=t&&t<="9"||"A"<=t&&t<="Z"||"a"<=t&&t<="z"||u.call("-_",t)>=0||this.error("invalid character '"+t+"' in the anchor:",e);return e},n.prototype.analyze_scalar=function(t){var n,i,o,a,s,c,l,p,f,h,d,m,v,y,g,_,b,x,w,k,S,E,C,A,T,D;for(t||new e(t,!0,!1,!1,!0,!0,!0,!1),c=!1,f=!1,_=!1,C=!1,D=!1,y=!1,v=!1,T=!1,A=!1,l=!1,E=!1,0!==t.indexOf("---")&&0!==t.indexOf("...")||(c=!0,f=!0),b=!0,h=1===t.length||(k=t[1],u.call("\0 \t\r\n…\u2028\u2029",k)>=0),w=!1,x=!1,m=0,m=d=0,g=t.length;d<g;m=++d)p=t[m],0===m?u.call("#,[]{}&*!|>'\"%@`",p)>=0||"-"===p&&h?(f=!0,c=!0):u.call("?:",p)>=0&&(f=!0,h&&(c=!0)):u.call(",?[]{}",p)>=0?f=!0:":"===p?(f=!0,h&&(c=!0)):"#"===p&&b&&(f=!0,c=!0),u.call("\n…\u2028\u2029",p)>=0&&(_=!0),"\n"===p||" "<=p&&p<="~"||("\ufeff"!==p&&("…"===p||" "<=p&&p<="퟿"||""<=p&&p<="�")?(D=!0,this.allow_unicode||(C=!0)):C=!0)," "===p?(0===m&&(y=!0),m===t.length-1&&(T=!0),x&&(l=!0),x=!1,w=!0):u.call("\n…\u2028\u2029",p)>=0?(0===m&&(v=!0),m===t.length-1&&(A=!0),w&&(E=!0),x=!0,w=!1):(x=!1,w=!1),b=u.call(r,p)>=0,h=m+2>=t.length||(S=t[m+2],u.call(r,S)>=0);return a=!0,i=!0,s=!0,o=!0,n=!0,(y||v||T||A)&&(a=i=!1),T&&(n=!1),l&&(a=i=s=!1),(E||C)&&(a=i=s=n=!1),_&&(a=i=!1),f&&(a=!1),c&&(i=!1),new e(t,!1,_,a,i,s,o,n)},n.prototype.write_stream_start=function(){if(this.encoding&&0===this.encoding.indexOf("utf-16"))return this.stream.write("\ufeff",this.encoding)},n.prototype.write_stream_end=function(){return this.flush_stream()},n.prototype.write_indicator=function(e,t,n){var r;return null==n&&(n={}),r=this.whitespace||!t?e:" "+e,this.whitespace=!!n.whitespace,this.indentation&&(this.indentation=!!n.indentation),this.column+=r.length,this.open_ended=!1,this.stream.write(r,this.encoding)},n.prototype.write_indent=function(){var e,t,n;if(t=null!=(n=this.indent)?n:0,(!this.indentation||this.column>t||this.column===t&&!this.whitespace)&&this.write_line_break(),this.column<t)return this.whitespace=!0,e=new Array(t-this.column+1).join(" "),this.column=t,this.stream.write(e,this.encoding)},n.prototype.write_line_break=function(e){return this.whitespace=!0,this.indentation=!0,this.line+=1,this.column=0,this.stream.write(null!=e?e:this.best_line_break,this.encoding)},n.prototype.write_version_directive=function(e){return this.stream.write("%YAML "+e,this.encoding),this.write_line_break()},n.prototype.write_tag_directive=function(e,t){return this.stream.write("%TAG "+e+" "+t,this.encoding),this.write_line_break()},n.prototype.write_single_quoted=function(e,t){var n,r,i,o,a,s,c,l,p,f;for(null==t&&(t=!0),this.write_indicator("'",!0),p=!1,r=!1,f=a=0;a<=e.length;){if(i=e[a],p)null!=i&&" "===i||(f+1===a&&this.column>this.best_width&&t&&0!==f&&a!==e.length?this.write_indent():(o=e.slice(f,a),this.column+=o.length,this.stream.write(o,this.encoding)),f=a);else if(r){if(null==i||u.call("\n…\u2028\u2029",i)<0){for("\n"===e[f]&&this.write_line_break(),l=e.slice(f,a),s=0,c=l.length;s<c;s++)n=l[s],"\n"===n?this.write_line_break():this.write_line_break(n);this.write_indent(),f=a}}else(null==i||u.call(" \n…\u2028\u2029",i)>=0||"'"===i)&&f<a&&(o=e.slice(f,a),this.column+=o.length,this.stream.write(o,this.encoding),f=a);"'"===i&&(this.column+=2,this.stream.write("''",this.encoding),f=a+1),null!=i&&(p=" "===i,r=u.call("\n…\u2028\u2029",i)>=0),a++}return this.write_indicator("'",!1)},n.prototype.write_double_quoted=function(e,t){var n,r,i,a;for(null==t&&(t=!0),this.write_indicator('"',!0),a=i=0;i<=e.length;)n=e[i],(null==n||u.call('"\\…\u2028\u2029\ufeff',n)>=0||!(" "<=n&&n<="~"||this.allow_unicode&&(" "<=n&&n<="퟿"||""<=n&&n<="�")))&&(a<i&&(r=e.slice(a,i),this.column+=r.length,this.stream.write(r,this.encoding),a=i),null!=n&&(r=n in c?"\\"+c[n]:n<="ÿ"?"\\x"+o.pad_left(o.to_hex(n),"0",2):n<="￿"?"\\u"+o.pad_left(o.to_hex(n),"0",4):"\\U"+o.pad_left(o.to_hex(n),"0",16),this.column+=r.length,this.stream.write(r,this.encoding),a=i+1)),t&&0<i&&i<e.length-1&&(" "===n||a>=i)&&this.column+(i-a)>this.best_width&&(r=e.slice(a,i)+"\\",a<i&&(a=i),this.column+=r.length,this.stream.write(r,this.encoding),this.write_indent(),this.whitespace=!1,this.indentation=!1," "===e[a]&&(r="\\",this.column+=r.length,this.stream.write(r,this.encoding))),i++;return this.write_indicator('"',!1)},n.prototype.write_folded=function(e){var t,n,r,i,o,a,s,c,l,p,f,h,d;for(a=this.determine_block_hints(e),this.write_indicator(">"+a,!0),"+"===a.slice(-1)&&(this.open_ended=!0),this.write_line_break(),c=!0,n=!0,h=!1,d=o=0,f=[];o<=e.length;){if(r=e[o],n){if(null==r||u.call("\n…\u2028\u2029",r)<0){for(c||null==r||" "===r||"\n"!==e[d]||this.write_line_break(),c=" "===r,p=e.slice(d,o),s=0,l=p.length;s<l;s++)t=p[s],"\n"===t?this.write_line_break():this.write_line_break(t);null!=r&&this.write_indent(),d=o}}else h?" "!==r&&(d+1===o&&this.column>this.best_width?this.write_indent():(i=e.slice(d,o),this.column+=i.length,this.stream.write(i,this.encoding)),d=o):(null==r||u.call(" \n…\u2028\u2029",r)>=0)&&(i=e.slice(d,o),this.column+=i.length,this.stream.write(i,this.encoding),null==r&&this.write_line_break(),d=o);null!=r&&(n=u.call("\n…\u2028\u2029",r)>=0,h=" "===r),f.push(o++)}return f},n.prototype.write_literal=function(e){var t,n,r,i,o,a,s,c,l,p,f;for(a=this.determine_block_hints(e),this.write_indicator("|"+a,!0),"+"===a.slice(-1)&&(this.open_ended=!0),this.write_line_break(),n=!0,f=o=0,p=[];o<=e.length;){if(r=e[o],n){if(null==r||u.call("\n…\u2028\u2029",r)<0){for(l=e.slice(f,o),s=0,c=l.length;s<c;s++)t=l[s],"\n"===t?this.write_line_break():this.write_line_break(t);null!=r&&this.write_indent(),f=o}}else(null==r||u.call("\n…\u2028\u2029",r)>=0)&&(i=e.slice(f,o),this.stream.write(i,this.encoding),null==r&&this.write_line_break(),f=o);null!=r&&(n=u.call("\n…\u2028\u2029",r)>=0),p.push(o++)}return p},n.prototype.write_plain=function(e,t){var n,r,i,o,a,s,c,l,p,f,h;if(null==t&&(t=!0),e){for(this.root_context&&(this.open_ended=!0),this.whitespace||(o=" ",this.column+=o.length,this.stream.write(o,this.encoding)),this.whitespace=!1,this.indentation=!1,f=!1,r=!1,h=a=0,p=[];a<=e.length;){if(i=e[a],f)" "!==i&&(h+1===a&&this.column>this.best_width&&t?(this.write_indent(),this.whitespace=!1,this.indentation=!1):(o=e.slice(h,a),this.column+=o.length,this.stream.write(o,this.encoding)),h=a);else if(r){if(u.call("\n…\u2028\u2029",i)<0){for("\n"===e[h]&&this.write_line_break(),l=e.slice(h,a),s=0,c=l.length;s<c;s++)n=l[s],"\n"===n?this.write_line_break():this.write_line_break(n);this.write_indent(),this.whitespace=!1,this.indentation=!1,h=a}}else(null==i||u.call(" \n…\u2028\u2029",i)>=0)&&(o=e.slice(h,a),this.column+=o.length,this.stream.write(o,this.encoding),h=a);null!=i&&(f=" "===i,r=u.call("\n…\u2028\u2029",i)>=0),p.push(a++)}return p}},n.prototype.determine_block_hints=function(e){var t,n,r,i,o;return n="",t=e[0],r=e.length-2,o=e[r++],i=e[r++],u.call(" \n…\u2028\u2029",t)>=0&&(n+=this.best_indent),u.call("\n…\u2028\u2029",i)<0?n+="-":(1===e.length||u.call("\n…\u2028\u2029",o)>=0)&&(n+="+"),n},n.prototype.flush_stream=function(){var e;return"function"==typeof(e=this.stream).flush?e.flush():void 0},n.prototype.error=function(e,n){var r,i;throw n&&(n=null!=(r=null!=n&&null!=(i=n.constructor)?i.name:void 0)?r:o.inspect(n)),new t.EmitterError(""+e+(n?" "+n:""))},n}(),e=function(){function e(e,t,n,r,i,o,a,s){this.scalar=e,this.empty=t,this.multiline=n,this.allow_flow_plain=r,this.allow_block_plain=i,this.allow_single_quoted=o,this.allow_double_quoted=a,this.allow_block=s}return e}()}).call(this)},function(e,t,n){(function(){var e,t,r,i,o=function(e,t){function n(){this.constructor=e}for(var r in t)a.call(t,r)&&(e[r]=t[r]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},a={}.hasOwnProperty;t=n(743),r=n(745),i=n(747),e=n(744).YAMLError,this.SerializerError=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return o(t,e),t}(e),this.Serializer=function(){function e(e){var t;t=null!=e?e:{},this.encoding=t.encoding,this.explicit_start=t.explicit_start,this.explicit_end=t.explicit_end,this.version=t.version,this.tags=t.tags,this.serialized_nodes={},this.anchors={},this.last_anchor_id=0,this.closed=null}return e.prototype.open=function(){if(null===this.closed)return this.emit(new t.StreamStartEvent(this.encoding)),this.closed=!1;throw this.closed?new SerializerError("serializer is closed"):new SerializerError("serializer is already open")},e.prototype.close=function(){if(null===this.closed)throw new SerializerError("serializer is not opened");if(!this.closed)return this.emit(new t.StreamEndEvent),this.closed=!0},e.prototype.serialize=function(e){if(null===this.closed)throw new SerializerError("serializer is not opened");if(this.closed)throw new SerializerError("serializer is closed");return null!=e&&(this.emit(new t.DocumentStartEvent(void 0,void 0,this.explicit_start,this.version,this.tags)),this.anchor_node(e),this.serialize_node(e),this.emit(new t.DocumentEndEvent(void 0,void 0,this.explicit_end))),this.serialized_nodes={},this.anchors={},this.last_anchor_id=0},e.prototype.anchor_node=function(e){var t,n,i,o,a,s,u,c,l,p,f,h,d,m;if(e.unique_id in this.anchors)return null!=(t=this.anchors)[c=e.unique_id]?t[c]:t[c]=this.generate_anchor(e);if(this.anchors[e.unique_id]=null,e instanceof r.SequenceNode){for(l=e.value,h=[],n=0,s=l.length;n<s;n++)i=l[n],h.push(this.anchor_node(i));return h}if(e instanceof r.MappingNode){for(p=e.value,d=[],o=0,u=p.length;o<u;o++)f=p[o],a=f[0],m=f[1],this.anchor_node(a),d.push(this.anchor_node(m));return d}},e.prototype.generate_anchor=function(e){return"id"+i.pad_left(++this.last_anchor_id,"0",4)},e.prototype.serialize_node=function(e,n,i){var o,a,s,u,c,l,p,f,h,d,m,v,y,g;if(o=this.anchors[e.unique_id],e.unique_id in this.serialized_nodes)return this.emit(new t.AliasEvent(o));if(this.serialized_nodes[e.unique_id]=!0,this.descend_resolver(n,i),e instanceof r.ScalarNode)s=this.resolve(r.ScalarNode,e.value,[!0,!1]),a=this.resolve(r.ScalarNode,e.value,[!1,!0]),c=[e.tag===s,e.tag===a],this.emit(new t.ScalarEvent(o,e.tag,c,e.value,void 0,void 0,e.style));else if(e instanceof r.SequenceNode){for(c=e.tag===this.resolve(r.SequenceNode,e.value,!0),this.emit(new t.SequenceStartEvent(o,e.tag,c,void 0,void 0,e.flow_style)),m=e.value,i=u=0,h=m.length;u<h;i=++u)l=m[i],this.serialize_node(l,e,i);this.emit(new t.SequenceEndEvent)}else if(e instanceof r.MappingNode){for(c=e.tag===this.resolve(r.MappingNode,e.value,!0),this.emit(new t.MappingStartEvent(o,e.tag,c,void 0,void 0,e.flow_style)),v=e.value,p=0,d=v.length;p<d;p++)y=v[p],f=y[0],g=y[1],this.serialize_node(f,e,null),this.serialize_node(g,e,f);this.emit(new t.MappingEndEvent)}return this.ascend_resolver()},e}()}).call(this)},function(e,t,n){(function(){var e,r,i=function(e,t){function n(){this.constructor=e}for(var r in t)o.call(t,r)&&(e[r]=t[r]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},o={}.hasOwnProperty;r=n(745),e=n(744).YAMLError,this.RepresenterError=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return i(t,e),t}(e),this.BaseRepresenter=function(){function e(e){var t;t=null!=e?e:{},this.default_style=t.default_style,this.default_flow_style=t.default_flow_style,this.represented_objects={},this.object_keeper=[],this.alias_key=null}return e.prototype.yaml_representers_types=[],e.prototype.yaml_representers_handlers=[],e.prototype.yaml_multi_representers_types=[],e.prototype.yaml_multi_representers_handlers=[],e.add_representer=function(e,t){return this.prototype.hasOwnProperty("yaml_representers_types")||(this.prototype.yaml_representers_types=[].concat(this.prototype.yaml_representers_types)),this.prototype.hasOwnProperty("yaml_representers_handlers")||(this.prototype.yaml_representers_handlers=[].concat(this.prototype.yaml_representers_handlers)),this.prototype.yaml_representers_types.push(e),this.prototype.yaml_representers_handlers.push(t)},e.add_multi_representer=function(e,t){return this.prototype.hasOwnProperty("yaml_multi_representers_types")||(this.prototype.yaml_multi_representers_types=[].concat(this.prototype.yaml_multi_representers_types)),this.prototype.hasOwnProperty("yaml_multi_representers_handlers")||(this.prototype.yaml_multi_representers_handlers=[].concat(this.prototype.yaml_multi_representers_handlers)),this.prototype.yaml_multi_representers_types.push(e),this.prototype.yaml_multi_representers_handlers.push(t)},e.prototype.represent=function(e){var t;return t=this.represent_data(e),this.serialize(t),this.represented_objects={},this.object_keeper=[],this.alias_key=null},e.prototype.represent_data=function(e){var t,n,i,o,a,s,u;if(this.ignore_aliases(e))this.alias_key=null;else if((n=this.object_keeper.indexOf(e))!==-1){if(this.alias_key=n,this.alias_key in this.represented_objects)return this.represented_objects[this.alias_key]}else this.alias_key=this.object_keeper.length,this.object_keeper.push(e);if(s=null,t=null===e?"null":typeof e,"object"===t&&(t=e.constructor),(n=this.yaml_representers_types.lastIndexOf(t))!==-1&&(s=this.yaml_representers_handlers[n]),null==s)for(a=this.yaml_multi_representers_types,n=i=0,o=a.length;i<o;n=++i)if(u=a[n],e instanceof u){s=this.yaml_multi_representers_handlers[n];break}return null==s&&((n=this.yaml_multi_representers_types.lastIndexOf(void 0))!==-1?s=this.yaml_multi_representers_handlers[n]:(n=this.yaml_representers_types.lastIndexOf(void 0))!==-1&&(s=this.yaml_representers_handlers[n])),null!=s?s.call(this,e):new r.ScalarNode(null,""+e)},e.prototype.represent_scalar=function(e,t,n){var i;return null==n&&(n=this.default_style),i=new r.ScalarNode(e,t,null,null,n),null!=this.alias_key&&(this.represented_objects[this.alias_key]=i),i},e.prototype.represent_sequence=function(e,t,n){var i,o,a,s,u,c,l,p;for(p=[],u=new r.SequenceNode(e,p,null,null,n),null!=this.alias_key&&(this.represented_objects[this.alias_key]=u),i=!0,a=0,s=t.length;a<s;a++)o=t[a],c=this.represent_data(o),c instanceof r.ScalarNode||c.style||(i=!1),p.push(c);return null==n&&(u.flow_style=null!=(l=this.default_flow_style)?l:i),u},e.prototype.represent_mapping=function(e,t,n){var i,a,s,u,c,l,p,f;f=[],u=new r.MappingNode(e,f,n),this.alias_key&&(this.represented_objects[this.alias_key]=u),i=!0;for(a in t)o.call(t,a)&&(s=t[a],c=this.represent_data(a),l=this.represent_data(s),c instanceof r.ScalarNode||c.style||(i=!1),l instanceof r.ScalarNode||l.style||(i=!1),f.push([c,l]));return n||(u.flow_style=null!=(p=this.default_flow_style)?p:i),u},e.prototype.ignore_aliases=function(e){return!1},e}(),this.Representer=function(e){function n(){return n.__super__.constructor.apply(this,arguments)}return i(n,e),n.prototype.represent_boolean=function(e){return this.represent_scalar("tag:yaml.org,2002:bool",e?"true":"false")},n.prototype.represent_null=function(e){return this.represent_scalar("tag:yaml.org,2002:null","null")},n.prototype.represent_number=function(e){var t,n;return t="tag:yaml.org,2002:"+(e%1===0?"int":"float"),n=e!==e?".nan":Infinity===e?".inf":-Infinity===e?"-.inf":e.toString(),this.represent_scalar(t,n)},n.prototype.represent_string=function(e){return this.represent_scalar("tag:yaml.org,2002:str",e)},n.prototype.represent_array=function(e){return this.represent_sequence("tag:yaml.org,2002:seq",e)},n.prototype.represent_date=function(e){return this.represent_scalar("tag:yaml.org,2002:timestamp",e.toISOString())},n.prototype.represent_object=function(e){return this.represent_mapping("tag:yaml.org,2002:map",e)},n.prototype.represent_undefined=function(e){throw new t.RepresenterError("cannot represent an onbject: "+e)},n.prototype.ignore_aliases=function(e){var t;return null==e||("boolean"==(t=typeof e)||"number"===t||"string"===t)},n}(this.BaseRepresenter),this.Representer.add_representer("boolean",this.Representer.prototype.represent_boolean),this.Representer.add_representer("null",this.Representer.prototype.represent_null),this.Representer.add_representer("number",this.Representer.prototype.represent_number),this.Representer.add_representer("string",this.Representer.prototype.represent_string),this.Representer.add_representer(Array,this.Representer.prototype.represent_array),this.Representer.add_representer(Date,this.Representer.prototype.represent_date),this.Representer.add_representer(Object,this.Representer.prototype.represent_object),this.Representer.add_representer(null,this.Representer.prototype.represent_undefined)}).call(this)},function(e,t,n){(function(){var e,t,r,i=function(e,t){function n(){this.constructor=e}for(var r in t)o.call(t,r)&&(e[r]=t[r]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},o={}.hasOwnProperty,a=[].indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(t in this&&this[t]===e)return t;return-1};t=n(745),r=n(747),e=n(744).YAMLError,this.ResolverError=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return i(t,e),t}(e),this.BaseResolver=function(){function e(){this.resolver_exact_paths=[],this.resolver_prefix_paths=[]}var n,i,o;return i="tag:yaml.org,2002:str",o="tag:yaml.org,2002:seq",n="tag:yaml.org,2002:map",e.prototype.yaml_implicit_resolvers={},e.prototype.yaml_path_resolvers={},e.add_implicit_resolver=function(e,t,n){var i,o,a,s,u;for(null==n&&(n=[null]),this.prototype.hasOwnProperty("yaml_implicit_resolvers")||(this.prototype.yaml_implicit_resolvers=r.extend({},this.prototype.yaml_implicit_resolvers)),u=[],a=0,s=n.length;a<s;a++)o=n[a],u.push((null!=(i=this.prototype.yaml_implicit_resolvers)[o]?i[o]:i[o]=[]).push([e,t]));return u},e.prototype.descend_resolver=function(e,t){var n,i,o,a,s,u,c,l,p,f,h,d,m;if(!r.is_empty(this.yaml_path_resolvers)){if(i={},p=[],e)for(n=this.resolver_prefix_paths.length,f=this.resolver_prefix_paths.slice(-1)[0],o=0,u=f.length;o<u;o++)h=f[o],l=h[0],s=h[1],this.check_resolver_prefix(n,l,s,e,t)&&(l.length>n?p.push([l,s]):i[s]=this.yaml_path_resolvers[l][s]);else for(d=this.yaml_path_resolvers,a=0,c=d.length;a<c;a++)m=d[a],l=m[0],s=m[1],l?p.push([l,s]):i[s]=this.yaml_path_resolvers[l][s];return this.resolver_exact_paths.push(i),this.resolver_prefix_paths.push(p)}},e.prototype.ascend_resolver=function(){if(!r.is_empty(this.yaml_path_resolvers))return this.resolver_exact_paths.pop(),this.resolver_prefix_paths.pop()},e.prototype.check_resolver_prefix=function(e,n,r,i,o){var a,s,u;if(u=n[e-1],s=u[0],a=u[1],"string"==typeof s){if(i.tag!==s)return}else if(null!==s&&!(i instanceof s))return;if((a!==!0||null===o)&&(a!==!1&&null!==a||null!==o)){if("string"==typeof a){if(!(o instanceof t.ScalarNode)&&a===o.value)return}else if("number"==typeof a&&a!==o)return;return!0}},e.prototype.resolve=function(e,r,s){var u,c,l,p,f,h,d,m,v,y,g,_;if(e===t.ScalarNode&&s[0]){for(g=""===r?null!=(h=this.yaml_implicit_resolvers[""])?h:[]:null!=(d=this.yaml_implicit_resolvers[r[0]])?d:[],g=g.concat(null!=(m=this.yaml_implicit_resolvers[null])?m:[]),l=0,f=g.length;l<f;l++)if(v=g[l],_=v[0],y=v[1],r.match(y))return _;s=s[1]}u=!0;for(p in this.yaml_path_resolvers)null=={}[p]&&(u=!1);if(!u){if(c=this.resolver_exact_paths.slice(-1)[0],a.call(c,e)>=0)return c[e];if(a.call(c,null)>=0)return c[null]}return e===t.ScalarNode?i:e===t.SequenceNode?o:e===t.MappingNode?n:void 0},e}(),this.Resolver=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return i(t,e),t}(this.BaseResolver),this.Resolver.add_implicit_resolver("tag:yaml.org,2002:bool",/^(?:yes|Yes|YES|true|True|TRUE|on|On|ON|no|No|NO|false|False|FALSE|off|Off|OFF)$/,"yYnNtTfFoO"),this.Resolver.add_implicit_resolver("tag:yaml.org,2002:float",/^(?:[-+]?(?:[0-9][0-9_]*)\.[0-9_]*(?:[eE][-+][0-9]+)?|\.[0-9_]+(?:[eE][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*|[-+]?\.(?:inf|Inf|INF)|\.(?:nan|NaN|NAN))$/,"-+0123456789."),this.Resolver.add_implicit_resolver("tag:yaml.org,2002:int",/^(?:[-+]?0b[01_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[0-9a-fA-F_]+|[-+]?0o[0-7_]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)$/,"-+0123456789"),this.Resolver.add_implicit_resolver("tag:yaml.org,2002:merge",/^(?:<<)$/,"<"),this.Resolver.add_implicit_resolver("tag:yaml.org,2002:null",/^(?:~|null|Null|NULL|)$/,["~","n","N",""]),this.Resolver.add_implicit_resolver("tag:yaml.org,2002:timestamp",/^(?:[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]|[0-9][0-9][0-9][0-9]-[0-9][0-9]?-[0-9][0-9]?(?:[Tt]|[\x20\t]+)[0-9][0-9]?:[0-9][0-9]:[0-9][0-9](?:\.[0-9]*)?(?:[\x20\t]*(?:Z|[-+][0-9][0-9]?(?::[0-9][0-9])?))?)$/,"0123456789"),this.Resolver.add_implicit_resolver("tag:yaml.org,2002:value",/^(?:=)$/,"="),this.Resolver.add_implicit_resolver("tag:yaml.org,2002:yaml",/^(?:!|&|\*)$/,"!&*")}).call(this)},function(e,t,n){(function(){var e,t,r,i,o,a,s,u=[].slice;s=n(747),i=n(757),a=n(758),r=n(760),e=n(742),o=n(755),t=n(746),this.make_loader=function(n,c,l,p,f,h){var d,m;return null==n&&(n=i.Reader),null==c&&(c=a.Scanner),null==l&&(l=r.Parser),null==p&&(p=e.Composer),null==f&&(f=o.Resolver),null==h&&(h=t.Constructor),m=[n,c,l,p,f,h],d=function(){function e(e){var n,r,i;for(m[0].call(this,e),i=m.slice(1),n=0,r=i.length;n<r;n++)t=i[n],t.call(this)}var t;return s.extend.apply(s,[e.prototype].concat(u.call(function(){var e,n,r;for(r=[],e=0,n=m.length;e<n;e++)t=m[e],r.push(t.prototype);return r}()))),e}()},this.Loader=this.make_loader()}).call(this)},function(e,t,n){(function(){var e,r,i,o=function(e,t){function n(){this.constructor=e}for(var r in t)a.call(t,r)&&(e[r]=t[r]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},a={}.hasOwnProperty,s=[].indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(t in this&&this[t]===e)return t;return-1};i=n(744),e=i.Mark,r=i.YAMLError,this.ReaderError=function(e){function t(e,n,r){this.position=e,this.character=n,this.reason=r,t.__super__.constructor.call(this)}return o(t,e),t.prototype.toString=function(){return"unacceptable character #"+this.character.charCodeAt(0).toString(16)+": "+this.reason+"\n position "+this.position},t}(r),this.Reader=function(){function n(e){this.string=e,this.line=0,this.column=0,this.index=0,this.check_printable(),this.string+="\0"}var r;return r=/[^\x09\x0A\x0D\x20-\x7E\x85\xA0-\uFFFD]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,n.prototype.peek=function(e){return null==e&&(e=0),this.string[this.index+e]},n.prototype.prefix=function(e){return null==e&&(e=1),this.string.slice(this.index,this.index+e)},n.prototype.forward=function(e){var t,n;for(null==e&&(e=1),n=[];e;)t=this.string[this.index],this.index++,s.call("\n…₂\u2029",t)>=0||"\r"===t&&"\n"!==this.string[this.index]?(this.line++,this.column=0):this.column++,n.push(e--);return n},n.prototype.get_mark=function(){return new e(this.line,this.column,this.string,this.index)},n.prototype.check_printable=function(){var e,n,i;if(n=r.exec(this.string))throw e=n[0],i=this.string.length-this.index+n.index,new t.ReaderError(i,e,"special characters are not allowed")},n}()}).call(this)},function(e,t,n){(function(){var e,r,i,o,a=function(e,t){function n(){this.constructor=e}for(var r in t)s.call(t,r)&&(e[r]=t[r]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},s={}.hasOwnProperty,u=[].slice,c=[].indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(t in this&&this[t]===e)return t;return-1};e=n(744).MarkedYAMLError,i=n(759),o=n(747),this.ScannerError=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return a(t,e),t}(e),r=function(){function e(e,t,n,r,i,o){this.token_number=e,this.required=t,this.index=n,this.line=r,this.column=i,this.mark=o}return e}(),this.Scanner=function(){function e(){this.done=!1,this.flow_level=0,this.tokens=[],this.fetch_stream_start(),this.tokens_taken=0,this.indent=-1,this.indents=[],this.allow_simple_key=!0,this.possible_simple_keys={}}var n,a,l,p,f;return n="\r\n…\u2028\u2029",l="\t ",a="0123456789",f={0:"\0",a:"",b:"\b",t:"\t","\t":"\t",n:"\n",v:"\v",f:"\f",r:"\r",e:""," ":" ",'"':'"',"\\":"\\",N:"…",_:" ",L:"\u2028",P:"\u2029"},p={x:2,u:4,U:8},e.prototype.check_token=function(){var e,t,n,r;for(t=1<=arguments.length?u.call(arguments,0):[];this.need_more_tokens();)this.fetch_more_tokens();if(0!==this.tokens.length){if(0===t.length)return!0;for(n=0,r=t.length;n<r;n++)if(e=t[n],this.tokens[0]instanceof e)return!0}return!1},e.prototype.peek_token=function(){for(;this.need_more_tokens();)this.fetch_more_tokens();if(0!==this.tokens.length)return this.tokens[0]},e.prototype.get_token=function(){for(;this.need_more_tokens();)this.fetch_more_tokens();if(0!==this.tokens.length)return this.tokens_taken++,this.tokens.shift()},e.prototype.need_more_tokens=function(){return!this.done&&(0===this.tokens.length||(this.stale_possible_simple_keys(),this.next_possible_simple_key()===this.tokens_taken))},e.prototype.fetch_more_tokens=function(){var e;if(this.scan_to_next_token(),this.stale_possible_simple_keys(),this.unwind_indent(this.column),e=this.peek(),"\0"===e)return this.fetch_stream_end();if("%"===e&&this.check_directive())return this.fetch_directive();if("-"===e&&this.check_document_start())return this.fetch_document_start();if("."===e&&this.check_document_end())return this.fetch_document_end();if("["===e)return this.fetch_flow_sequence_start();if("{"===e)return this.fetch_flow_mapping_start();if("]"===e)return this.fetch_flow_sequence_end();if("}"===e)return this.fetch_flow_mapping_end();if(","===e)return this.fetch_flow_entry();if("-"===e&&this.check_block_entry())return this.fetch_block_entry();if("?"===e&&this.check_key())return this.fetch_key();if(":"===e&&this.check_value())return this.fetch_value();if("*"===e)return this.fetch_alias();if("&"===e)return this.fetch_anchor();if("!"===e)return this.fetch_tag();if("|"===e&&0===this.flow_level)return this.fetch_literal();if(">"===e&&0===this.flow_level)return this.fetch_folded();if("'"===e)return this.fetch_single();if('"'===e)return this.fetch_double();if(this.check_plain())return this.fetch_plain();throw new t.ScannerError("while scanning for the next token",null,"found character "+e+" that cannot start any token",this.get_mark())},e.prototype.next_possible_simple_key=function(){var e,t,n,r;n=null,r=this.possible_simple_keys;for(t in r)s.call(r,t)&&(e=r[t],(null===n||e.token_number<n)&&(n=e.token_number));return n},e.prototype.stale_possible_simple_keys=function(){var e,n,r,i;r=this.possible_simple_keys,i=[];for(n in r)if(s.call(r,n)&&(e=r[n],!(e.line===this.line&&this.index-e.index<=1024))){if(e.required)throw new t.ScannerError("while scanning a simple key",e.mark,"could not find expected ':'",this.get_mark());i.push(delete this.possible_simple_keys[n])}return i},e.prototype.save_possible_simple_key=function(){var e,t;if(e=0===this.flow_level&&this.indent===this.column,e&&!this.allow_simple_key)throw new Error("logic failure");if(this.allow_simple_key)return this.remove_possible_simple_key(),t=this.tokens_taken+this.tokens.length,this.possible_simple_keys[this.flow_level]=new r(t,e,this.index,this.line,this.column,this.get_mark())},e.prototype.remove_possible_simple_key=function(){var e;if(e=this.possible_simple_keys[this.flow_level]){if(e.required)throw new t.ScannerError("while scanning a simple key",e.mark,"could not find expected ':'",this.get_mark());return delete this.possible_simple_keys[this.flow_level]}},e.prototype.unwind_indent=function(e){var t,n;if(0===this.flow_level){for(n=[];this.indent>e;)t=this.get_mark(),this.indent=this.indents.pop(),n.push(this.tokens.push(new i.BlockEndToken(t,t)));return n}},e.prototype.add_indent=function(e){return e>this.indent&&(this.indents.push(this.indent),this.indent=e,!0)},e.prototype.fetch_stream_start=function(){var e;return e=this.get_mark(),this.tokens.push(new i.StreamStartToken(e,e,this.encoding))},e.prototype.fetch_stream_end=function(){var e;return this.unwind_indent(-1),this.remove_possible_simple_key(),this.allow_possible_simple_key=!1,this.possible_simple_keys={},e=this.get_mark(),this.tokens.push(new i.StreamEndToken(e,e)),this.done=!0},e.prototype.fetch_directive=function(){return this.unwind_indent(-1),this.remove_possible_simple_key(),this.allow_simple_key=!1,this.tokens.push(this.scan_directive())},e.prototype.fetch_document_start=function(){return this.fetch_document_indicator(i.DocumentStartToken)},e.prototype.fetch_document_end=function(){return this.fetch_document_indicator(i.DocumentEndToken)},e.prototype.fetch_document_indicator=function(e){var t;return this.unwind_indent(-1),this.remove_possible_simple_key(),this.allow_simple_key=!1,t=this.get_mark(),this.forward(3),this.tokens.push(new e(t,this.get_mark()))},e.prototype.fetch_flow_sequence_start=function(){return this.fetch_flow_collection_start(i.FlowSequenceStartToken)},e.prototype.fetch_flow_mapping_start=function(){return this.fetch_flow_collection_start(i.FlowMappingStartToken)},e.prototype.fetch_flow_collection_start=function(e){var t;return this.save_possible_simple_key(),this.flow_level++,this.allow_simple_key=!0,t=this.get_mark(),this.forward(),this.tokens.push(new e(t,this.get_mark()))},e.prototype.fetch_flow_sequence_end=function(){return this.fetch_flow_collection_end(i.FlowSequenceEndToken)},e.prototype.fetch_flow_mapping_end=function(){return this.fetch_flow_collection_end(i.FlowMappingEndToken)},e.prototype.fetch_flow_collection_end=function(e){var t;return this.remove_possible_simple_key(),this.flow_level--,this.allow_simple_key=!1,t=this.get_mark(),this.forward(),this.tokens.push(new e(t,this.get_mark()))},e.prototype.fetch_flow_entry=function(){var e;return this.allow_simple_key=!0,this.remove_possible_simple_key(),e=this.get_mark(),this.forward(),this.tokens.push(new i.FlowEntryToken(e,this.get_mark()))},e.prototype.fetch_block_entry=function(){var e,n;if(0===this.flow_level){if(!this.allow_simple_key)throw new t.ScannerError(null,null,"sequence entries are not allowed here",this.get_mark());this.add_indent(this.column)&&(e=this.get_mark(),this.tokens.push(new i.BlockSequenceStartToken(e,e)))}return this.allow_simple_key=!0,this.remove_possible_simple_key(),n=this.get_mark(),this.forward(),this.tokens.push(new i.BlockEntryToken(n,this.get_mark()))},e.prototype.fetch_key=function(){var e,n;if(0===this.flow_level){if(!this.allow_simple_key)throw new t.ScannerError(null,null,"mapping keys are not allowed here",this.get_mark());this.add_indent(this.column)&&(e=this.get_mark(), +this.tokens.push(new i.BlockMappingStartToken(e,e)))}return this.allow_simple_key=!this.flow_level,this.remove_possible_simple_key(),n=this.get_mark(),this.forward(),this.tokens.push(new i.KeyToken(n,this.get_mark()))},e.prototype.fetch_value=function(){var e,n,r;if(e=this.possible_simple_keys[this.flow_level])delete this.possible_simple_keys[this.flow_level],this.tokens.splice(e.token_number-this.tokens_taken,0,new i.KeyToken(e.mark,e.mark)),0===this.flow_level&&this.add_indent(e.column)&&this.tokens.splice(e.token_number-this.tokens_taken,0,new i.BlockMappingStartToken(e.mark,e.mark)),this.allow_simple_key=!1;else{if(0===this.flow_level){if(!this.allow_simple_key)throw new t.ScannerError(null,null,"mapping values are not allowed here",this.get_mark());this.add_indent(this.column)&&(n=this.get_mark(),this.tokens.push(new i.BlockMappingStartToken(n,n)))}this.allow_simple_key=!this.flow_level,this.remove_possible_simple_key()}return r=this.get_mark(),this.forward(),this.tokens.push(new i.ValueToken(r,this.get_mark()))},e.prototype.fetch_alias=function(){return this.save_possible_simple_key(),this.allow_simple_key=!1,this.tokens.push(this.scan_anchor(i.AliasToken))},e.prototype.fetch_anchor=function(){return this.save_possible_simple_key(),this.allow_simple_key=!1,this.tokens.push(this.scan_anchor(i.AnchorToken))},e.prototype.fetch_tag=function(){return this.save_possible_simple_key(),this.allow_simple_key=!1,this.tokens.push(this.scan_tag())},e.prototype.fetch_literal=function(){return this.fetch_block_scalar("|")},e.prototype.fetch_folded=function(){return this.fetch_block_scalar(">")},e.prototype.fetch_block_scalar=function(e){return this.allow_simple_key=!0,this.remove_possible_simple_key(),this.tokens.push(this.scan_block_scalar(e))},e.prototype.fetch_single=function(){return this.fetch_flow_scalar("'")},e.prototype.fetch_double=function(){return this.fetch_flow_scalar('"')},e.prototype.fetch_flow_scalar=function(e){return this.save_possible_simple_key(),this.allow_simple_key=!1,this.tokens.push(this.scan_flow_scalar(e))},e.prototype.fetch_plain=function(){return this.save_possible_simple_key(),this.allow_simple_key=!1,this.tokens.push(this.scan_plain())},e.prototype.check_directive=function(){return 0===this.column},e.prototype.check_document_start=function(){var e;return 0===this.column&&"---"===this.prefix(3)&&(e=this.peek(3),c.call(n+l+"\0",e)>=0)},e.prototype.check_document_end=function(){var e;return 0===this.column&&"..."===this.prefix(3)&&(e=this.peek(3),c.call(n+l+"\0",e)>=0)},e.prototype.check_block_entry=function(){var e;return e=this.peek(1),c.call(n+l+"\0",e)>=0},e.prototype.check_key=function(){var e;return 0!==this.flow_level||(e=this.peek(1),c.call(n+l+"\0",e)>=0)},e.prototype.check_value=function(){var e;return 0!==this.flow_level||(e=this.peek(1),c.call(n+l+"\0",e)>=0)},e.prototype.check_plain=function(){var e,t;return e=this.peek(),c.call(n+l+"\0-?:,[]{}#&*!|>'\"%@`",e)<0||(t=this.peek(1),c.call(n+l+"\0",t)<0&&("-"===e||0===this.flow_level&&c.call("?:",e)>=0))},e.prototype.scan_to_next_token=function(){var e,t,r;for(0===this.index&&"\ufeff"===this.peek()&&this.forward(),e=!1,r=[];!e;){for(;" "===this.peek();)this.forward();if("#"===this.peek())for(;t=this.peek(),c.call(n+"\0",t)<0;)this.forward();this.scan_line_break()?0===this.flow_level?r.push(this.allow_simple_key=!0):r.push(void 0):r.push(e=!0)}return r},e.prototype.scan_directive=function(){var e,t,r,o,a;if(o=this.get_mark(),this.forward(),t=this.scan_directive_name(o),a=null,"YAML"===t)a=this.scan_yaml_directive_value(o),e=this.get_mark();else if("TAG"===t)a=this.scan_tag_directive_value(o),e=this.get_mark();else for(e=this.get_mark();r=this.peek(),c.call(n+"\0",r)<0;)this.forward();return this.scan_directive_ignored_line(o),new i.DirectiveToken(t,a,o,e)},e.prototype.scan_directive_name=function(e){var r,i,o;for(i=0,r=this.peek(i);"0"<=r&&r<="9"||"A"<=r&&r<="Z"||"a"<=r&&r<="z"||c.call("-_",r)>=0;)i++,r=this.peek(i);if(0===i)throw new t.ScannerError("while scanning a directive",e,"expected alphanumeric or numeric character but found "+r,this.get_mark());if(o=this.prefix(i),this.forward(i),r=this.peek(),c.call(n+"\0 ",r)<0)throw new t.ScannerError("while scanning a directive",e,"expected alphanumeric or numeric character but found "+r,this.get_mark());return o},e.prototype.scan_yaml_directive_value=function(e){for(var r,i,o;" "===this.peek();)this.forward();if(r=this.scan_yaml_directive_number(e),"."!==this.peek())throw new t.ScannerError("while scanning a directive",e,"expected a digit or '.' but found "+this.peek(),this.get_mark());if(this.forward(),i=this.scan_yaml_directive_number(e),o=this.peek(),c.call(n+"\0 ",o)<0)throw new t.ScannerError("while scanning a directive",e,"expected a digit or ' ' but found "+this.peek(),this.get_mark());return[r,i]},e.prototype.scan_yaml_directive_number=function(e){var n,r,i,o;if(n=this.peek(),!("0"<=n&&n<="9"))throw new t.ScannerError("while scanning a directive",e,"expected a digit but found "+n,this.get_mark());for(r=0;"0"<=(i=this.peek(r))&&i<="9";)r++;return o=parseInt(this.prefix(r)),this.forward(r),o},e.prototype.scan_tag_directive_value=function(e){for(var t,n;" "===this.peek();)this.forward();for(t=this.scan_tag_directive_handle(e);" "===this.peek();)this.forward();return n=this.scan_tag_directive_prefix(e),[t,n]},e.prototype.scan_tag_directive_handle=function(e){var n,r;if(r=this.scan_tag_handle("directive",e),n=this.peek()," "!==n)throw new t.ScannerError("while scanning a directive",e,"expected ' ' but found "+n,this.get_mark());return r},e.prototype.scan_tag_directive_prefix=function(e){var r,i;if(i=this.scan_tag_uri("directive",e),r=this.peek(),c.call(n+"\0 ",r)<0)throw new t.ScannerError("while scanning a directive",e,"expected ' ' but found "+r,this.get_mark());return i},e.prototype.scan_directive_ignored_line=function(e){for(var r,i;" "===this.peek();)this.forward();if("#"===this.peek())for(;i=this.peek(),c.call(n+"\0",i)<0;)this.forward();if(r=this.peek(),c.call(n+"\0",r)<0)throw new t.ScannerError("while scanning a directive",e,"expected a comment or a line break but found "+r,this.get_mark());return this.scan_line_break()},e.prototype.scan_anchor=function(e){var r,i,o,a,s,u;for(s=this.get_mark(),i=this.peek(),a="*"===i?"alias":"anchor",this.forward(),o=0,r=this.peek(o);"0"<=r&&r<="9"||"A"<=r&&r<="Z"||"a"<=r&&r<="z"||c.call("-_",r)>=0;)o++,r=this.peek(o);if(0===o)throw new t.ScannerError("while scanning an "+a,s,"expected alphabetic or numeric character but found '"+r+"'",this.get_mark());if(u=this.prefix(o),this.forward(o),r=this.peek(),c.call(n+l+"\0?:,]}%@`",r)<0)throw new t.ScannerError("while scanning an "+a,s,"expected alphabetic or numeric character but found '"+r+"'",this.get_mark());return new e(u,s,this.get_mark())},e.prototype.scan_tag=function(){var e,r,o,a,s,u;if(a=this.get_mark(),e=this.peek(1),"<"===e){if(r=null,this.forward(2),s=this.scan_tag_uri("tag",a),">"!==this.peek())throw new t.ScannerError("while parsing a tag",a,"expected '>' but found "+this.peek(),this.get_mark());this.forward()}else if(c.call(n+l+"\0",e)>=0)r=null,s="!",this.forward();else{for(o=1,u=!1;c.call(n+"\0 ",e)<0;){if("!"===e){u=!0;break}o++,e=this.peek(o)}u?r=this.scan_tag_handle("tag",a):(r="!",this.forward()),s=this.scan_tag_uri("tag",a)}if(e=this.peek(),c.call(n+"\0 ",e)<0)throw new t.ScannerError("while scanning a tag",a,"expected ' ' but found "+e,this.get_mark());return new i.TagToken([r,s],a,this.get_mark())},e.prototype.scan_block_scalar=function(e){var t,r,a,s,u,l,p,f,h,d,m,v,y,g,_,b,x,w,k,S;for(u=">"===e,a=[],S=this.get_mark(),this.forward(),y=this.scan_block_scalar_indicators(S),r=y[0],l=y[1],this.scan_block_scalar_ignored_line(S),v=this.indent+1,v<1&&(v=1),null==l?(g=this.scan_block_scalar_indentation(),t=g[0],m=g[1],s=g[2],p=Math.max(v,m)):(p=v+l-1,_=this.scan_block_scalar_breaks(p),t=_[0],s=_[1]),d="";this.column===p&&"\0"!==this.peek();){for(a=a.concat(t),b=this.peek(),f=c.call(" \t",b)<0,h=0;x=this.peek(h),c.call(n+"\0",x)<0;)h++;if(a.push(this.prefix(h)),this.forward(h),d=this.scan_line_break(),w=this.scan_block_scalar_breaks(p),t=w[0],s=w[1],this.column!==p||"\0"===this.peek())break;u&&"\n"===d&&f&&(k=this.peek(),c.call(" \t",k)<0)?o.is_empty(t)&&a.push(" "):a.push(d)}return r!==!1&&a.push(d),r===!0&&(a=a.concat(t)),new i.ScalarToken(a.join(""),!1,S,s,e)},e.prototype.scan_block_scalar_indicators=function(e){var r,i,o;if(i=null,o=null,r=this.peek(),c.call("+-",r)>=0){if(i="+"===r,this.forward(),r=this.peek(),c.call(a,r)>=0){if(o=parseInt(r),0===o)throw new t.ScannerError("while scanning a block scalar",e,"expected indentation indicator in the range 1-9 but found 0",this.get_mark());this.forward()}}else if(c.call(a,r)>=0){if(o=parseInt(r),0===o)throw new t.ScannerError("while scanning a block scalar",e,"expected indentation indicator in the range 1-9 but found 0",this.get_mark());this.forward(),r=this.peek(),c.call("+-",r)>=0&&(i="+"===r,this.forward())}if(r=this.peek(),c.call(n+"\0 ",r)<0)throw new t.ScannerError("while scanning a block scalar",e,"expected chomping or indentation indicators, but found "+r,this.get_mark());return[i,o]},e.prototype.scan_block_scalar_ignored_line=function(e){for(var r,i;" "===this.peek();)this.forward();if("#"===this.peek())for(;i=this.peek(),c.call(n+"\0",i)<0;)this.forward();if(r=this.peek(),c.call(n+"\0",r)<0)throw new t.ScannerError("while scanning a block scalar",e,"expected a comment or a line break but found "+r,this.get_mark());return this.scan_line_break()},e.prototype.scan_block_scalar_indentation=function(){var e,t,r,i;for(e=[],r=0,t=this.get_mark();i=this.peek(),c.call(n+" ",i)>=0;)" "!==this.peek()?(e.push(this.scan_line_break()),t=this.get_mark()):(this.forward(),this.column>r&&(r=this.column));return[e,r,t]},e.prototype.scan_block_scalar_breaks=function(e){var t,r,i;for(t=[],r=this.get_mark();this.column<e&&" "===this.peek();)this.forward();for(;i=this.peek(),c.call(n,i)>=0;)for(t.push(this.scan_line_break()),r=this.get_mark();this.column<e&&" "===this.peek();)this.forward();return[t,r]},e.prototype.scan_flow_scalar=function(e){var t,n,r,o;for(n='"'===e,t=[],o=this.get_mark(),r=this.peek(),this.forward(),t=t.concat(this.scan_flow_scalar_non_spaces(n,o));this.peek()!==r;)t=t.concat(this.scan_flow_scalar_spaces(n,o)),t=t.concat(this.scan_flow_scalar_non_spaces(n,o));return this.forward(),new i.ScalarToken(t.join(""),!1,o,this.get_mark(),e)},e.prototype.scan_flow_scalar_non_spaces=function(e,r){var i,o,s,u,h,d,m,v,y;for(o=[];;){for(d=0;m=this.peek(d),c.call(n+l+"'\"\\\0",m)<0;)d++;if(0!==d&&(o.push(this.prefix(d)),this.forward(d)),i=this.peek(),e||"'"!==i||"'"!==this.peek(1))if(e&&"'"===i||!e&&c.call('"\\',i)>=0)o.push(i),this.forward();else{if(!e||"\\"!==i)return o;if(this.forward(),i=this.peek(),i in f)o.push(f[i]),this.forward();else if(i in p){for(d=p[i],this.forward(),h=u=0,v=d;0<=v?u<v:u>v;h=0<=v?++u:--u)if(y=this.peek(h),c.call(a+"ABCDEFabcdef",y)<0)throw new t.ScannerError("while scanning a double-quoted scalar",r,"expected escape sequence of "+d+" hexadecimal numbers, but found "+this.peek(h),this.get_mark());s=parseInt(this.prefix(d),16),o.push(String.fromCharCode(s)),this.forward(d)}else{if(!(c.call(n,i)>=0))throw new t.ScannerError("while scanning a double-quoted scalar",r,"found unknown escape character "+i,this.get_mark());this.scan_line_break(),o=o.concat(this.scan_flow_scalar_breaks(e,r))}}else o.push("'"),this.forward(2)}},e.prototype.scan_flow_scalar_spaces=function(e,r){var i,o,a,s,u,p,f;for(a=[],s=0;p=this.peek(s),c.call(l,p)>=0;)s++;if(f=this.prefix(s),this.forward(s),o=this.peek(),"\0"===o)throw new t.ScannerError("while scanning a quoted scalar",r,"found unexpected end of stream",this.get_mark());return c.call(n,o)>=0?(u=this.scan_line_break(),i=this.scan_flow_scalar_breaks(e,r),"\n"!==u?a.push(u):0===i.length&&a.push(" "),a=a.concat(i)):a.push(f),a},e.prototype.scan_flow_scalar_breaks=function(e,r){var i,o,a,s,u;for(i=[];;){if(o=this.prefix(3),"---"===o||"..."===o&&(a=this.peek(3),c.call(n+l+"\0",a)>=0))throw new t.ScannerError("while scanning a quoted scalar",r,"found unexpected document separator",this.get_mark());for(;s=this.peek(),c.call(l,s)>=0;)this.forward();if(u=this.peek(),!(c.call(n,u)>=0))return i;i.push(this.scan_line_break())}},e.prototype.scan_plain=function(){var e,r,o,a,s,u,p,f,h;for(r=[],h=o=this.get_mark(),a=this.indent+1,f=[];;){if(s=0,"#"===this.peek())break;for(;;){if(e=this.peek(s),c.call(n+l+"\0",e)>=0||0===this.flow_level&&":"===e&&(u=this.peek(s+1),c.call(n+l+"\0",u)>=0)||0!==this.flow_level&&c.call(",:?[]{}",e)>=0)break;s++}if(0!==this.flow_level&&":"===e&&(p=this.peek(s+1),c.call(n+l+"\0,[]{}",p)<0))throw this.forward(s),new t.ScannerError("while scanning a plain scalar",h,"found unexpected ':'",this.get_mark(),"Please check http://pyyaml.org/wiki/YAMLColonInFlowContext");if(0===s)break;if(this.allow_simple_key=!1,r=r.concat(f),r.push(this.prefix(s)),this.forward(s),o=this.get_mark(),f=this.scan_plain_spaces(a,h),null==f||0===f.length||"#"===this.peek()||0===this.flow_level&&this.column<a)break}return new i.ScalarToken(r.join(""),!0,h,o)},e.prototype.scan_plain_spaces=function(e,t){var r,i,o,a,s,u,p,f,h,d,m;for(o=[],a=0;p=this.peek(a),c.call(" ",p)>=0;)a++;if(m=this.prefix(a),this.forward(a),i=this.peek(),c.call(n,i)>=0){if(s=this.scan_line_break(),this.allow_simple_key=!0,u=this.prefix(3),"---"===u||"..."===u&&(f=this.peek(3),c.call(n+l+"\0",f)>=0))return;for(r=[];d=this.peek(),c.call(n+" ",d)>=0;)if(" "===this.peek())this.forward();else if(r.push(this.scan_line_break()),u=this.prefix(3),"---"===u||"..."===u&&(h=this.peek(3),c.call(n+l+"\0",h)>=0))return;"\n"!==s?o.push(s):0===r.length&&o.push(" "),o=o.concat(r)}else m&&o.push(m);return o},e.prototype.scan_tag_handle=function(e,n){var r,i,o;if(r=this.peek(),"!"!==r)throw new t.ScannerError("while scanning a "+e,n,"expected '!' but found "+r,this.get_mark());if(i=1,r=this.peek(i)," "!==r){for(;"0"<=r&&r<="9"||"A"<=r&&r<="Z"||"a"<=r&&r<="z"||c.call("-_",r)>=0;)i++,r=this.peek(i);if("!"!==r)throw this.forward(i),new t.ScannerError("while scanning a "+e,n,"expected '!' but found "+r,this.get_mark());i++}return o=this.prefix(i),this.forward(i),o},e.prototype.scan_tag_uri=function(e,n){var r,i,o;for(i=[],o=0,r=this.peek(o);"0"<=r&&r<="9"||"A"<=r&&r<="Z"||"a"<=r&&r<="z"||c.call("-;/?:@&=+$,_.!~*'()[]%",r)>=0;)"%"===r?(i.push(this.prefix(o)),this.forward(o),o=0,i.push(this.scan_uri_escapes(e,n))):o++,r=this.peek(o);if(0!==o&&(i.push(this.prefix(o)),this.forward(o),o=0),0===i.length)throw new t.ScannerError("while parsing a "+e,n,"expected URI but found "+r,this.get_mark());return i.join("")},e.prototype.scan_uri_escapes=function(e,n){var r,i,o,a;for(r=[],a=this.get_mark();"%"===this.peek();){for(this.forward(),o=i=0;i<=2;o=++i)throw new t.ScannerError("while scanning a "+e,n,"expected URI escape sequence of 2 hexadecimal numbers but found "+this.peek(o),this.get_mark());r.push(String.fromCharCode(parseInt(this.prefix(2),16))),this.forward(2)}return r.join("")},e.prototype.scan_line_break=function(){var e;return e=this.peek(),c.call("\r\n…",e)>=0?("\r\n"===this.prefix(2)?this.forward(2):this.forward(),"\n"):c.call("\u2028\u2029",e)>=0?(this.forward(),e):""},e}()}).call(this)},function(e,t){(function(){var e=function(e,n){function r(){this.constructor=e}for(var i in n)t.call(n,i)&&(e[i]=n[i]);return r.prototype=n.prototype,e.prototype=new r,e.__super__=n.prototype,e},t={}.hasOwnProperty;this.Token=function(){function e(e,t){this.start_mark=e,this.end_mark=t}return e}(),this.DirectiveToken=function(t){function n(e,t,n,r){this.name=e,this.value=t,this.start_mark=n,this.end_mark=r}return e(n,t),n.prototype.id="<directive>",n}(this.Token),this.DocumentStartToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="<document start>",n}(this.Token),this.DocumentEndToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="<document end>",n}(this.Token),this.StreamStartToken=function(t){function n(e,t,n){this.start_mark=e,this.end_mark=t,this.encoding=n}return e(n,t),n.prototype.id="<stream start>",n}(this.Token),this.StreamEndToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="<stream end>",n}(this.Token),this.BlockSequenceStartToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="<block sequence start>",n}(this.Token),this.BlockMappingStartToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="<block mapping end>",n}(this.Token),this.BlockEndToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="<block end>",n}(this.Token),this.FlowSequenceStartToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="[",n}(this.Token),this.FlowMappingStartToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="{",n}(this.Token),this.FlowSequenceEndToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="]",n}(this.Token),this.FlowMappingEndToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="}",n}(this.Token),this.KeyToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="?",n}(this.Token),this.ValueToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id=":",n}(this.Token),this.BlockEntryToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id="-",n}(this.Token),this.FlowEntryToken=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return e(n,t),n.prototype.id=",",n}(this.Token),this.AliasToken=function(t){function n(e,t,n){this.value=e,this.start_mark=t,this.end_mark=n}return e(n,t),n.prototype.id="<alias>",n}(this.Token),this.AnchorToken=function(t){function n(e,t,n){this.value=e,this.start_mark=t,this.end_mark=n}return e(n,t),n.prototype.id="<anchor>",n}(this.Token),this.TagToken=function(t){function n(e,t,n){this.value=e,this.start_mark=t,this.end_mark=n}return e(n,t),n.prototype.id="<tag>",n}(this.Token),this.ScalarToken=function(t){function n(e,t,n,r,i){this.value=e,this.plain=t,this.start_mark=n,this.end_mark=r,this.style=i}return e(n,t),n.prototype.id="<scalar>",n}(this.Token)}).call(this)},function(e,t,n){(function(){var e,r,i,o=function(e,t){function n(){this.constructor=e}for(var r in t)a.call(t,r)&&(e[r]=t[r]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},a={}.hasOwnProperty,s=[].slice;r=n(743),e=n(744).MarkedYAMLError,i=n(759),this.ParserError=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return o(t,e),t}(e),this.Parser=function(){function e(){this.current_event=null,this.yaml_version=null,this.tag_handles={},this.states=[],this.marks=[],this.state="parse_stream_start"}var n;return n={"!":"!","!!":"tag:yaml.org,2002:"},e.prototype.dispose=function(){return this.states=[],this.state=null},e.prototype.check_event=function(){var e,t,n,r;if(t=1<=arguments.length?s.call(arguments,0):[],null===this.current_event&&null!=this.state&&(this.current_event=this[this.state]()),null!==this.current_event){if(0===t.length)return!0;for(n=0,r=t.length;n<r;n++)if(e=t[n],this.current_event instanceof e)return!0}return!1},e.prototype.peek_event=function(){return null===this.current_event&&null!=this.state&&(this.current_event=this[this.state]()),this.current_event},e.prototype.get_event=function(){var e;return null===this.current_event&&null!=this.state&&(this.current_event=this[this.state]()),e=this.current_event,this.current_event=null,e},e.prototype.parse_stream_start=function(){var e,t;return t=this.get_token(),e=new r.StreamStartEvent(t.start_mark,t.end_mark),this.state="parse_implicit_document_start",e},e.prototype.parse_implicit_document_start=function(){var e,t,o,a;return this.check_token(i.DirectiveToken,i.DocumentStartToken,i.StreamEndToken)?this.parse_document_start():(this.tag_handles=n,a=this.peek_token(),o=e=a.start_mark,t=new r.DocumentStartEvent(o,e,!1),this.states.push("parse_document_end"),this.state="parse_block_node",t)},e.prototype.parse_document_start=function(){for(var e,n,o,a,s,u,c;this.check_token(i.DocumentEndToken);)this.get_token();if(this.check_token(i.StreamEndToken)){if(u=this.get_token(),n=new r.StreamEndEvent(u.start_mark,u.end_mark),0!==this.states.length)throw new Error("assertion error, states should be empty");if(0!==this.marks.length)throw new Error("assertion error, marks should be empty");this.state=null}else{if(a=this.peek_token().start_mark,o=this.process_directives(),c=o[0],s=o[1],!this.check_token(i.DocumentStartToken))throw new t.ParserError("expected '<document start>', but found "+this.peek_token().id,this.peek_token().start_mark);u=this.get_token(),e=u.end_mark,n=new r.DocumentStartEvent(a,e,!0,c,s),this.states.push("parse_document_end"),this.state="parse_document_content"}return n},e.prototype.parse_document_end=function(){var e,t,n,o,a;return a=this.peek_token(),o=e=a.start_mark,n=!1,this.check_token(i.DocumentEndToken)&&(a=this.get_token(),e=a.end_mark,n=!0),t=new r.DocumentEndEvent(o,e,n),this.state="parse_document_start",t},e.prototype.parse_document_content=function(){var e;return this.check_token(i.DirectiveToken,i.DocumentStartToken,i.DocumentEndToken,i.StreamEndToken)?(e=this.process_empty_scalar(this.peek_token().start_mark),this.state=this.states.pop(),e):this.parse_block_node()},e.prototype.process_directives=function(){var e,r,o,s,u,c,l,p,f,h;for(this.yaml_version=null,this.tag_handles={};this.check_token(i.DirectiveToken);)if(f=this.get_token(),"YAML"===f.name){if(null!==this.yaml_version)throw new t.ParserError(null,null,"found duplicate YAML directive",f.start_mark);if(u=f.value,r=u[0],o=u[1],1!==r)throw new t.ParserError(null,null,"found incompatible YAML document (version 1.* is required)",f.start_mark);this.yaml_version=f.value}else if("TAG"===f.name){if(c=f.value,e=c[0],s=c[1],e in this.tag_handles)throw new t.ParserError(null,null,"duplicate tag handle "+e,f.start_mark);this.tag_handles[e]=s}p=null,l=this.tag_handles;for(e in l)a.call(l,e)&&(s=l[e],null==p&&(p={}),p[e]=s);h=[this.yaml_version,p];for(e in n)a.call(n,e)&&(s=n[e],s in this.tag_handles||(this.tag_handles[e]=s));return h},e.prototype.parse_block_node=function(){return this.parse_node(!0)},e.prototype.parse_flow_node=function(){return this.parse_node()},e.prototype.parse_block_node_or_indentless_sequence=function(){return this.parse_node(!0,!0)},e.prototype.parse_node=function(e,n){var o,a,s,u,c,l,p,f,h,d,m;if(null==e&&(e=!1),null==n&&(n=!1),this.check_token(i.AliasToken))m=this.get_token(),s=new r.AliasEvent(m.value,m.start_mark,m.end_mark),this.state=this.states.pop();else{if(o=null,h=null,p=a=d=null,this.check_token(i.AnchorToken)?(m=this.get_token(),p=m.start_mark,a=m.end_mark,o=m.value,this.check_token(i.TagToken)&&(m=this.get_token(),d=m.start_mark,a=m.end_mark,h=m.value)):this.check_token(i.TagToken)&&(m=this.get_token(),p=d=m.start_mark,a=m.end_mark,h=m.value,this.check_token(i.AnchorToken)&&(m=this.get_token(),a=m.end_mark,o=m.value)),null!==h)if(u=h[0],f=h[1],null!==u){if(!(u in this.tag_handles))throw new t.ParserError("while parsing a node",p,"found undefined tag handle "+u,d);h=this.tag_handles[u]+f}else h=f;if(null===p&&(p=a=this.peek_token().start_mark),s=null,c=null===h||"!"===h,n&&this.check_token(i.BlockEntryToken))a=this.peek_token().end_mark,s=new r.SequenceStartEvent(o,h,c,p,a),this.state="parse_indentless_sequence_entry";else if(this.check_token(i.ScalarToken))m=this.get_token(),a=m.end_mark,c=m.plain&&null===h||"!"===h?[!0,!1]:null===h?[!1,!0]:[!1,!1],s=new r.ScalarEvent(o,h,c,m.value,p,a,m.style),this.state=this.states.pop();else if(this.check_token(i.FlowSequenceStartToken))a=this.peek_token().end_mark,s=new r.SequenceStartEvent(o,h,c,p,a,!0),this.state="parse_flow_sequence_first_entry";else if(this.check_token(i.FlowMappingStartToken))a=this.peek_token().end_mark,s=new r.MappingStartEvent(o,h,c,p,a,!0),this.state="parse_flow_mapping_first_key";else if(e&&this.check_token(i.BlockSequenceStartToken))a=this.peek_token().end_mark,s=new r.SequenceStartEvent(o,h,c,p,a,!1),this.state="parse_block_sequence_first_entry";else if(e&&this.check_token(i.BlockMappingStartToken))a=this.peek_token().end_mark,s=new r.MappingStartEvent(o,h,c,p,a,!1),this.state="parse_block_mapping_first_key";else{if(null===o&&null===h)throw l=e?"block":"flow",m=this.peek_token(),new t.ParserError("while parsing a "+l+" node",p,"expected the node content, but found "+m.id,m.start_mark);s=new r.ScalarEvent(o,h,[c,!1],"",p,a),this.state=this.states.pop()}}return s},e.prototype.parse_block_sequence_first_entry=function(){var e;return e=this.get_token(),this.marks.push(e.start_mark),this.parse_block_sequence_entry()},e.prototype.parse_block_sequence_entry=function(){var e,n;if(this.check_token(i.BlockEntryToken))return n=this.get_token(),this.check_token(i.BlockEntryToken,i.BlockEndToken)?(this.state="parse_block_sequence_entry",this.process_empty_scalar(n.end_mark)):(this.states.push("parse_block_sequence_entry"),this.parse_block_node());if(!this.check_token(i.BlockEndToken))throw n=this.peek_token(),new t.ParserError("while parsing a block collection",this.marks.slice(-1)[0],"expected <block end>, but found "+n.id,n.start_mark);return n=this.get_token(),e=new r.SequenceEndEvent(n.start_mark,n.end_mark),this.state=this.states.pop(),this.marks.pop(),e},e.prototype.parse_indentless_sequence_entry=function(){var e,t;return this.check_token(i.BlockEntryToken)?(t=this.get_token(),this.check_token(i.BlockEntryToken,i.KeyToken,i.ValueToken,i.BlockEndToken)?(this.state="parse_indentless_sequence_entry",this.process_empty_scalar(t.end_mark)):(this.states.push("parse_indentless_sequence_entry"),this.parse_block_node())):(t=this.peek_token(),e=new r.SequenceEndEvent(t.start_mark,t.start_mark),this.state=this.states.pop(),e)},e.prototype.parse_block_mapping_first_key=function(){var e;return e=this.get_token(),this.marks.push(e.start_mark),this.parse_block_mapping_key()},e.prototype.parse_block_mapping_key=function(){var e,n;if(this.check_token(i.KeyToken))return n=this.get_token(),this.check_token(i.KeyToken,i.ValueToken,i.BlockEndToken)?(this.state="parse_block_mapping_value",this.process_empty_scalar(n.end_mark)):(this.states.push("parse_block_mapping_value"),this.parse_block_node_or_indentless_sequence());if(!this.check_token(i.BlockEndToken))throw n=this.peek_token(),new t.ParserError("while parsing a block mapping",this.marks.slice(-1)[0],"expected <block end>, but found "+n.id,n.start_mark);return n=this.get_token(),e=new r.MappingEndEvent(n.start_mark,n.end_mark),this.state=this.states.pop(),this.marks.pop(),e},e.prototype.parse_block_mapping_value=function(){var e;return this.check_token(i.ValueToken)?(e=this.get_token(),this.check_token(i.KeyToken,i.ValueToken,i.BlockEndToken)?(this.state="parse_block_mapping_key",this.process_empty_scalar(e.end_mark)):(this.states.push("parse_block_mapping_key"),this.parse_block_node_or_indentless_sequence())):(this.state="parse_block_mapping_key",e=this.peek_token(),this.process_empty_scalar(e.start_mark))},e.prototype.parse_flow_sequence_first_entry=function(){var e;return e=this.get_token(),this.marks.push(e.start_mark),this.parse_flow_sequence_entry(!0)},e.prototype.parse_flow_sequence_entry=function(e){var n,o;if(null==e&&(e=!1),!this.check_token(i.FlowSequenceEndToken)){if(!e){if(!this.check_token(i.FlowEntryToken))throw o=this.peek_token(),new t.ParserError("while parsing a flow sequence",this.marks.slice(-1)[0],"expected ',' or ']', but got "+o.id,o.start_mark);this.get_token()}if(this.check_token(i.KeyToken))return o=this.peek_token(),n=new r.MappingStartEvent(null,null,!0,o.start_mark,o.end_mark,!0),this.state="parse_flow_sequence_entry_mapping_key",n;if(!this.check_token(i.FlowSequenceEndToken))return this.states.push("parse_flow_sequence_entry"),this.parse_flow_node()}return o=this.get_token(),n=new r.SequenceEndEvent(o.start_mark,o.end_mark),this.state=this.states.pop(),this.marks.pop(),n},e.prototype.parse_flow_sequence_entry_mapping_key=function(){var e;return e=this.get_token(),this.check_token(i.ValueToken,i.FlowEntryToken,i.FlowSequenceEndToken)?(this.state="parse_flow_sequence_entry_mapping_value",this.process_empty_scalar(e.end_mark)):(this.states.push("parse_flow_sequence_entry_mapping_value"),this.parse_flow_node())},e.prototype.parse_flow_sequence_entry_mapping_value=function(){var e;return this.check_token(i.ValueToken)?(e=this.get_token(),this.check_token(i.FlowEntryToken,i.FlowSequenceEndToken)?(this.state="parse_flow_sequence_entry_mapping_end",this.process_empty_scalar(e.end_mark)):(this.states.push("parse_flow_sequence_entry_mapping_end"),this.parse_flow_node())):(this.state="parse_flow_sequence_entry_mapping_end",e=this.peek_token(),this.process_empty_scalar(e.start_mark))},e.prototype.parse_flow_sequence_entry_mapping_end=function(){var e;return this.state="parse_flow_sequence_entry",e=this.peek_token(),new r.MappingEndEvent(e.start_mark,e.start_mark)},e.prototype.parse_flow_mapping_first_key=function(){var e;return e=this.get_token(),this.marks.push(e.start_mark),this.parse_flow_mapping_key(!0)},e.prototype.parse_flow_mapping_key=function(e){var n,o;if(null==e&&(e=!1),!this.check_token(i.FlowMappingEndToken)){if(!e){if(!this.check_token(i.FlowEntryToken))throw o=this.peek_token(),new t.ParserError("while parsing a flow mapping",this.marks.slice(-1)[0],"expected ',' or '}', but got "+o.id,o.start_mark);this.get_token()}if(this.check_token(i.KeyToken))return o=this.get_token(),this.check_token(i.ValueToken,i.FlowEntryToken,i.FlowMappingEndToken)?(this.state="parse_flow_mapping_value",this.process_empty_scalar(o.end_mark)):(this.states.push("parse_flow_mapping_value"),this.parse_flow_node());if(!this.check_token(i.FlowMappingEndToken))return this.states.push("parse_flow_mapping_empty_value"),this.parse_flow_node()}return o=this.get_token(),n=new r.MappingEndEvent(o.start_mark,o.end_mark),this.state=this.states.pop(),this.marks.pop(),n},e.prototype.parse_flow_mapping_value=function(){var e;return this.check_token(i.ValueToken)?(e=this.get_token(),this.check_token(i.FlowEntryToken,i.FlowMappingEndToken)?(this.state="parse_flow_mapping_key",this.process_empty_scalar(e.end_mark)):(this.states.push("parse_flow_mapping_key"),this.parse_flow_node())):(this.state="parse_flow_mapping_key",e=this.peek_token(),this.process_empty_scalar(e.start_mark))},e.prototype.parse_flow_mapping_empty_value=function(){return this.state="parse_flow_mapping_key",this.process_empty_scalar(this.peek_token().start_mark)},e.prototype.process_empty_scalar=function(e){return new r.ScalarEvent(null,null,[!0,!1],"",e,e)},e}()}).call(this)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=function(e){function t(){return(0,s.default)(this,t),(0,p.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){return null}}]),t}(m.default.Component);t.default=v},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(763),o=r(i);e.exports=function(e){var t=e.configs;return{fn:{fetch:o.default.makeHttp(t.preFetch,t.postFetch),buildRequest:o.default.buildRequest,execute:o.default.execute,resolve:o.default.resolve,serializeRes:o.default.serializeRes,opId:o.default.helpers.opId}}}},function(e,t,n){ +e.exports=function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=46)}([function(e,t){e.exports=n(60)},function(e,t){e.exports=n(141)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return(e.operationId||"").replace(/\s/g,"").length?b(e.operationId):o(t,n)}function o(e,t){return""+_(t)+b(e)}function a(e,t){return _(t)+"-"+e}function s(e,t){return e&&e.paths?u(e,function(e){var n=e.pathName,r=e.method,o=e.operation;if(!o||"object"!==(void 0===o?"undefined":(0,v.default)(o)))return!1;var s=o.operationId;return[i(o,n,r),a(n,r),s].some(function(e){return e&&e===t})}):null}function u(e,t){return c(e,t,!0)||null}function c(e,t,n){if(!e||"object"!==(void 0===e?"undefined":(0,v.default)(e))||!e.paths||"object"!==(0,v.default)(e.paths))return null;var r=e.paths;for(var i in r)for(var o in r[i])if("PARAMETERS"!==o.toUpperCase()){var a=r[i][o];if(a&&"object"===(void 0===a?"undefined":(0,v.default)(a))){var s={spec:e,pathName:i,method:o.toUpperCase(),operation:a},u=t(s);if(n&&u)return s}}}function l(e){var t=e.spec,n=t.paths,r={};if(!n)return e;for(var o in n){var a=n[o];if((0,g.default)(a)){var s=a.parameters;for(var u in a)!function(e){var n=a[e];if(!(0,g.default)(n))return"continue";var u=i(n,o,e);if(u&&(r[u]?r[u].push(n):r[u]=[n],(0,d.default)(r).forEach(function(e){if(r[e].length>1)r[e].forEach(function(t,n){t.__originalOperationId=t.__originalOperationId||t.operationId,t.operationId=""+e+(n+1)});else if(void 0!==n.operationId){var t=r[e][0];t.__originalOperationId=t.__originalOperationId||n.operationId,t.operationId=e}})),"parameters"!==e){var c=[],l={};for(var p in t)"produces"!==p&&"consumes"!==p&&"security"!==p||(l[p]=t[p],c.push(l));if(s&&(l.parameters=s,c.push(l)),c.length){var h=!0,m=!1,v=void 0;try{for(var y,_=(0,f.default)(c);!(h=(y=_.next()).done);h=!0){var b=y.value;for(var x in b)if(n[x]){if("parameters"===x){var w=!0,k=!1,S=void 0;try{for(var E,C=(0,f.default)(b[x]);!(w=(E=C.next()).done);w=!0)!function(){var e=E.value;n[x].some(function(t){return t.name===e.name})||n[x].push(e)}()}catch(e){k=!0,S=e}finally{try{!w&&C.return&&C.return()}finally{if(k)throw S}}}}else n[x]=b[x]}}catch(e){m=!0,v=e}finally{try{!h&&_.return&&_.return()}finally{if(m)throw v}}}}}(u)}}return e}Object.defineProperty(t,"__esModule",{value:!0});var p=n(11),f=r(p),h=n(0),d=r(h),m=n(5),v=r(m);t.opId=i,t.idFromPathMethod=o,t.legacyIdFromPathMethod=a,t.getOperationRaw=s,t.findOperation=u,t.eachOperation=c,t.normalizeSwagger=l;var y=n(41),g=r(y),_=function(e){return String.prototype.toLowerCase.call(e)},b=function(e){return e.replace(/[^\w]/gi,"_")}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){if(n=n||{},t=(0,q.default)({},t,{path:t.path&&o(t.path)}),"merge"===t.op){var r=s(t.path);W.default.apply(e,[r]),(0,q.default)(r.value,t.value)}else if("mergeDeep"===t.op){var i=s(t.path);W.default.apply(e,[i]),(0,J.default)(i.value,t.value)}else if(W.default.apply(e,[t]),n.allowMetaPatches&&t.meta&&O(t)&&(Array.isArray(t.value)||S(t.value))){var a=s(t.path);W.default.apply(e,[a]),(0,q.default)(a.value,t.meta)}return e}function o(e){return Array.isArray(e)?e.length<1?"":"/"+e.map(function(e){return(e+"").replace(/~/g,"~0").replace(/\//g,"~1")}).join("/"):e}function a(e,t){return{op:"add",path:e,value:t}}function s(e){return{op:"_get",path:e}}function u(e,t,n){return{op:"replace",path:e,value:t,meta:n}}function c(e,t){return{op:"remove",path:e}}function l(e,t){return{type:"mutation",op:"merge",path:e,value:t}}function p(e,t){return{type:"mutation",op:"mergeDeep",path:e,value:t}}function f(e,t){return{type:"context",path:e,value:t}}function h(e,t){try{return m(e,y,t)}catch(e){return e}}function d(e,t){try{return m(e,v,t)}catch(e){return e}}function m(e,t,n){return k(w(e.filter(O).map(function(e){return t(e.value,n,e.path)})||[]))}function v(e,t,n){return n=n||[],Array.isArray(e)?e.map(function(e,r){return v(e,t,n.concat(r))}):S(e)?(0,L.default)(e).map(function(r){return v(e[r],t,n.concat(r))}):t(e,n[n.length-1],n)}function y(e,t,n){n=n||[];var r=[];if(n.length>0){var i=t(e,n[n.length-1],n);i&&(r=r.concat(i))}if(Array.isArray(e)){var o=e.map(function(e,r){return y(e,t,n.concat(r))});o&&(r=r.concat(o))}else if(S(e)){var a=(0,L.default)(e).map(function(r){return y(e[r],t,n.concat(r))});a&&(r=r.concat(a))}return r=w(r)}function g(e,t){if(!Array.isArray(t))return!1;for(var n=0,r=t.length;n<r;n++)if(t[n]!==e[n])return!1;return!0}function _(e,t){return t.reduce(function(e,t){return void 0!==t&&e?e[t]:e},e)}function b(e){return k(w(x(e)))}function x(e){return Array.isArray(e)?e:[e]}function w(e){var t;return(t=[]).concat.apply(t,(0,F.default)(e.map(function(e){return Array.isArray(e)?w(e):e})))}function k(e){return e.filter(function(e){return void 0!==e})}function S(e){return e&&"object"===(void 0===e?"undefined":(0,R.default)(e))}function E(e){return S(e)&&C(e.then)}function C(e){return e&&"function"==typeof e}function A(e){return e instanceof Error}function T(e){if(I(e)){var t=e.op;return"add"===t||"remove"===t||"replace"===t}return!1}function D(e){return V.default.isGeneratorFunction(e)}function M(e){return T(e)||I(e)&&"mutation"===e.type}function O(e){return M(e)&&("add"===e.op||"replace"===e.op||"merge"===e.op||"mergeDeep"===e.op)}function P(e){return I(e)&&"context"===e.type}function I(e){return e&&"object"===(void 0===e?"undefined":(0,R.default)(e))}Object.defineProperty(t,"__esModule",{value:!0});var N=n(5),R=r(N),j=n(31),F=r(j),B=n(0),L=r(B),z=n(1),q=r(z),U=n(34),W=r(U),K=n(15),V=r(K),H=n(33),J=r(H);t.default={add:a,replace:u,remove:c,merge:l,mergeDeep:p,context:f,getIn:_,applyPatch:i,parentPathMatch:g,flatten:w,fullyNormalizeArray:b,normalizeArray:x,isPromise:E,forEachNew:h,forEachNewPrimitive:d,isJsonPatch:T,isContextPatch:P,isPatch:I,isMutation:M,isAdditiveMutation:O,isGenerator:D,isFunction:C,isObject:S,isError:A}},function(e,t){e.exports=n(446)},function(e,t){e.exports=n(94)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"object"===(void 0===e?"undefined":(0,b.default)(e))&&(t=e,e=t.url),t.headers=t.headers||{},T.mergeInQueryOrForm(t),t.requestInterceptor&&(t=t.requestInterceptor(t)||t),/multipart\/form-data/i.test(t.headers["content-type"]||t.headers["Content-Type"])&&(delete t.headers["content-type"],delete t.headers["Content-Type"]),fetch(t.url,t).then(function(n){var r=T.serializeRes(n,e,t).then(function(e){return t.responseInterceptor&&(e=t.responseInterceptor(e)||e),e});if(!n.ok){var i=new Error(n.statusText);return i.statusCode=i.status=n.status,r.then(function(e){throw i.response=e,i},function(e){throw i.responseError=e,i})}return r})}function o(e){return/json/.test(e)||/xml/.test(e)||/yaml/.test(e)||/text/.test(e)}function a(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.loadSpec,i=void 0!==r&&r,a={ok:e.ok,url:e.url||t,status:e.status,statusText:e.statusText,headers:s(e.headers)},u=i||o(a.headers["content-type"]);return(u?e.text:e.blob||e.buffer).call(e).then(function(e){if(a.text=e,a.data=e,u)try{var t=S.default.safeLoad(e);a.body=t,a.obj=t}catch(e){a.parseError=e}return a})}function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={};return"function"==typeof e.forEach?(e.forEach(function(e,n){void 0!==t[n]?(t[n]=Array.isArray(t[n])?t[n]:[t[n]],t[n].push(e)):t[n]=e}),t):t}function u(e){return"undefined"!=typeof File?e instanceof File:null!==e&&"object"===(void 0===e?"undefined":(0,b.default)(e))&&"function"==typeof e.pipe}function c(e,t){var n=e.value,r=e.collectionFormat,i=e.allowEmptyValue,o={csv:",",ssv:"%20",tsv:"%09",pipes:"|"};if(void 0===n&&i)return"";if(u(n))return n;var a=encodeURIComponent;return t&&(a=(0,A.default)(n)?function(e){return e}:function(e){return(0,g.default)(e)}),n&&!Array.isArray(n)?a(n):Array.isArray(n)&&!r?n.map(a).join(","):"multi"===r?n.map(a):n.map(a).join(o[r])}function l(e){var t=(0,v.default)(e).reduce(function(t,n){var r=e[n],i=encodeURIComponent(n),o=function(e){return e&&"object"===(void 0===e?"undefined":(0,b.default)(e))}(r)&&!Array.isArray(r);return t[i]=c(o?r:{value:r}),t},{});return w.default.stringify(t,{encode:!1,indices:!1})||""}function p(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.url,r=void 0===t?"":t,i=e.query,o=e.form;if(o){var a=(0,v.default)(o).some(function(e){return u(o[e].value)}),s=e.headers["content-type"]||e.headers["Content-Type"];if(a||/multipart\/form-data/i.test(s)){var p=n(35);e.body=new p,(0,v.default)(o).forEach(function(t){e.body.append(t,c(o[t],!0))})}else e.body=l(o);delete e.form}if(i){var f=r.split("?"),h=(0,d.default)(f,2),m=h[0],y=h[1],g="";if(y){var _=w.default.parse(y);(0,v.default)(i).forEach(function(e){return delete _[e]}),g=w.default.stringify(_,{encode:!0})}var b=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t.filter(function(e){return e}).join("&");return r?"?"+r:""}(g,l(i));e.url=m+b,delete e.query}return e}function f(e,t,n){return n=n||function(e){return e},t=t||function(e){return e},function(r){return"string"==typeof r&&(r={url:r}),T.mergeInQueryOrForm(r),r=t(r),n(e(r))}}Object.defineProperty(t,"__esModule",{value:!0}),t.self=void 0;var h=n(30),d=r(h),m=n(0),v=r(m),y=n(7),g=r(y),_=n(5),b=r(_);t.default=i,t.serializeRes=a,t.serializeHeaders=s,t.encodeFormOrQuery=l,t.mergeInQueryOrForm=p,t.makeHttp=f,n(16);var x=n(45),w=r(x),k=n(36),S=r(k),E=n(8),C=(r(E),n(43)),A=r(C),T=t.self={serializeRes:a,mergeInQueryOrForm:p}},function(e,t){e.exports=n(57)},function(e,t){e.exports=n(764)},function(e,t){e.exports=n(804)},function(e,t,n){"use strict";function r(e,t){function n(){Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack;for(var e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];this.message=n[0],t&&t.apply(this,n)}return n.prototype=new Error,n.prototype.name=e,n.prototype.constructor=n,n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r},function(e,t){e.exports=n(178)},function(e,t){e.exports=n(730)},function(e,t){e.exports=n(145)},function(e,t){e.exports=n(146)},function(e,t){e.exports=n(810)},function(e,t){e.exports=n(813)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof e?n.url=e:n=e,!(this instanceof i))return new i(n);(0,c.default)(this,n);var r=this.resolve().then(function(){return t.disableInterfaces||(0,c.default)(t,i.makeApisTagOperation(t)),t});return r.client=this,r}var o=n(4),a=r(o),s=n(37),u=(r(s),n(8)),c=r(u),l=n(6),p=r(l),f=n(20),h=r(f),d=n(9),m=r(d),v=n(19),y=n(18),g=n(2);i.http=p.default,i.makeHttp=l.makeHttp.bind(null,i.http),i.resolve=h.default,i.execute=y.execute,i.serializeRes=l.serializeRes,i.serializeHeaders=l.serializeHeaders,i.clearCache=f.clearCache,i.parameterBuilders=y.PARAMETER_BUILDERS,i.makeApisTagOperation=v.makeApisTagOperation,i.buildRequest=y.buildRequest,i.helpers={opId:g.opId},e.exports=i,i.prototype={http:p.default,execute:function(e){return this.applyDefaults(),i.execute((0,a.default)({spec:this.spec,http:this.http.bind(this),securities:{authorized:this.authorizations}},e))},resolve:function(){var e=this;return i.resolve({spec:this.spec,url:this.url,allowMetaPatches:this.allowMetaPatches}).then(function(t){return e.originalSpec=e.spec,e.spec=t.spec,e.errors=t.errors,e})}},i.prototype.applyDefaults=function(){var e=this.spec,t=this.url;if(t&&t.startsWith("http")){var n=m.default.parse(t);e.host||(e.host=n.host),e.schemes||(e.schemes=[n.protocol.replace(":","")]),e.basePath||(e.basePath="/")}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=e.http,n=e.fetch,r=e.spec,i=e.operationId,o=e.pathName,a=e.method,s=e.parameters,u=e.securities,c=(0,b.default)(e,["http","fetch","spec","operationId","pathName","method","parameters","securities"]);t=t||n||R.default,o&&a&&!i&&(i=(0,j.legacyIdFromPathMethod)(o,a));var l=q.buildRequest((0,g.default)({spec:r,operationId:i,parameters:s,securities:u},c));return l.body&&((0,A.default)(l.body)||(0,D.default)(l.body))&&(l.body=(0,v.default)(l.body)),t(l)}function o(e){var t=e.spec,n=e.operationId,r=e.parameters,i=e.securities,o=e.requestContentType,a=e.responseContentType,s=e.parameterBuilders,u=e.scheme,c=e.requestInterceptor,l=e.responseInterceptor,h=e.contextUrl;s=s||U;var d={url:p({spec:t,scheme:u,contextUrl:h}),credentials:"same-origin",headers:{}};if(c&&(d.requestInterceptor=c),l&&(d.responseInterceptor=l),!n)return d;var m=(0,j.getOperationRaw)(t,n);if(!m)throw new z("Operation "+n+" not found");var v=m.operation,y=void 0===v?{}:v,g=m.method,_=m.pathName;d.url+=_,d.method=(""+g).toUpperCase(),r=r||{};var b=t.paths[_]||{};return a&&(d.headers.accept=a),L(y.parameters).concat(L(b.parameters)).forEach(function(e){var n=s[e.in],i=void 0;if("body"===e.in&&e.schema&&e.schema.properties&&(i=r),i=e&&e.name&&r[e.name],void 0!==e.default&&void 0===i&&(i=e.default),void 0===i&&e.required&&!e.allowEmptyValue)throw new Error("Required parameter "+e.name+" is not provided");n&&n({req:d,parameter:e,value:i,operation:y,spec:t})}),d=f({request:d,securities:i,operation:y,spec:t}),(d.body||d.form)&&(o?d.headers["content-type"]=o:Array.isArray(y.consumes)?d.headers["content-type"]=y.consumes[0]:Array.isArray(t.consumes)?d.headers["content-type"]=t.consumes[0]:y.parameters.filter(function(e){return"file"===e.type}).length?d.headers["content-type"]="multipart/form-data":y.parameters.filter(function(e){return"formData"===e.in}).length&&(d.headers["content-type"]="application/x-www-form-urlencoded")),(0,N.mergeInQueryOrForm)(d),d}function a(e){var t=e.req,n=e.value;t.body=n}function s(e){var t=e.req,n=e.value,r=e.parameter;t.form=t.form||{},(n||r.allowEmptyValue)&&(t.form[r.name]={value:n,allowEmptyValue:r.allowEmptyValue,collectionFormat:r.collectionFormat})}function u(e){var t=e.req,n=e.parameter,r=e.value;t.headers=t.headers||{},void 0!==r&&(t.headers[n.name]=r)}function c(e){var t=e.req,n=e.value,r=e.parameter;t.url=t.url.replace("{"+r.name+"}",encodeURIComponent(n))}function l(e){var t=e.req,n=e.value,r=e.parameter;if(t.query=t.query||{},!1===n&&"boolean"===r.type&&(n="false"),n)t.query[r.name]={collectionFormat:r.collectionFormat,value:n};else if(r.allowEmptyValue){var i=r.name;t.query[i]=t.query[i]||{},t.query[i].allowEmptyValue=!0}}function p(e){var t=e.spec,n=e.scheme,r=e.contextUrl,i=void 0===r?"":r,o=I.default.parse(i),a=Array.isArray(t.schemes)?t.schemes[0]:null,s=n||a||W(o.protocol)||"http",u=t.host||o.host||"",c=t.basePath||"";if(s&&u){var l=s+"://"+(u+c);return"/"===l[l.length-1]?l.slice(0,-1):l}return""}function f(e){var t=e.request,n=e.securities,r=void 0===n?{}:n,i=e.operation,o=void 0===i?{}:i,a=e.spec,s=(0,S.default)({},t),u=r.authorized,c=void 0===u?{}:u,l=r.specSecurity,p=void 0===l?[]:l,f=o.security||p,h=c&&!!(0,d.default)(c).length,m=a.securityDefinitions;return s.headers=s.headers||{},s.query=s.query||{},(0,d.default)(r).length&&h&&f&&(!Array.isArray(o.security)||o.security.length)?(f.forEach(function(e,t){for(var n in e){var r=c[n];if(r){var i=r.token,o=r.value||r,a=m[n],u=a.type,l=i&&i.access_token,p=i&&i.token_type;if(r)if("apiKey"===u){var f="query"===a.in?"query":"headers";s[f]=s[f]||{},s[f][a.name]=o}else"basic"===u?o.header?s.headers.authorization=o.header:(o.base64=(0,O.default)(o.username+":"+o.password),s.headers.authorization="Basic "+o.base64):"oauth2"===u&&(s.headers.authorization=(p||"Bearer")+" "+l)}}}),s):t}Object.defineProperty(t,"__esModule",{value:!0}),t.PARAMETER_BUILDERS=t.self=void 0;var h=n(0),d=r(h),m=n(7),v=r(m),y=n(4),g=r(y),_=n(29),b=r(_),x=n(1),w=r(x);t.execute=i,t.buildRequest=o,t.bodyBuilder=a,t.formDataBuilder=s,t.headerBuilder=u,t.pathBuilder=c,t.queryBuilder=l,t.baseUrl=p,t.applySecurities=f;var k=n(8),S=r(k),E=n(39),C=(r(E),n(42)),A=r(C),T=n(40),D=r(T),M=n(32),O=r(M),P=n(9),I=r(P),N=n(6),R=r(N),j=n(2),F=n(10),B=r(F),L=function(e){return Array.isArray(e)?e:[]},z=(0,B.default)("OperationNotFoundError",function(e,t,n){this.originalError=n,(0,w.default)(this,t||{})}),q=t.self={buildRequest:o},U=t.PARAMETER_BUILDERS={body:a,header:u,query:l,path:c,formData:s},W=function(e){return e?e.replace(/\W/g,""):null}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var n=t.pathName,r=t.method,i=t.operationId;return function(t){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.execute((0,c.default)({spec:e.spec},(0,p.default)(e,"requestInterceptor","responseInterceptor"),{pathName:n,method:r,parameters:t,operationId:i},o))}}}function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=m.makeExecute(e),n=m.mapTagOperations({spec:e.spec,cb:t}),r={};for(var i in n){r[i]={operations:{}};for(var o in n[i])r[i].operations[o]={execute:n[i][o]}}return{apis:r}}function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=m.makeExecute(e);return{apis:m.mapTagOperations({spec:e.spec,cb:t})}}function s(e){var t=e.spec,n=e.cb,r=void 0===n?h:n,i=e.defaultTag,o=void 0===i?"default":i,a={},s={};return(0,f.eachOperation)(t,function(e){var n=e.pathName,i=e.method,u=e.operation;(u.tags?d(u.tags):[o]).forEach(function(e){if("string"==typeof e){var o=s[e]=s[e]||{},c=(0,f.opId)(u,n,i),l=r({spec:t,pathName:n,method:i,operation:u,operationId:c});if(a[c])a[c]=a[c]+1,o[""+c+a[c]]=l;else if(void 0!==o[c]){var p=a[c]||1;a[c]=p+1,o[""+c+a[c]]=l;var h=o[c];delete o[c],o[""+c+p]=h}else o[c]=l}})}),s}Object.defineProperty(t,"__esModule",{value:!0}),t.self=void 0;var u=n(4),c=r(u);t.makeExecute=i,t.makeApisTagOperationsOperationExecute=o,t.makeApisTagOperation=a,t.mapTagOperations=s;var l=n(44),p=r(l),f=n(2),h=function(){return null},d=function(e){return Array.isArray(e)?e:[e]},m=t.self={mapTagOperations:s,makeExecute:i}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return function(t){return e({url:t,loadSpec:!0,headers:{Accept:"application/json"},credentials:"same-origin"}).then(function(e){return e.body})}}function o(){c.plugins.refs.clearCache()}function a(e){function t(e){s&&(c.plugins.refs.docCache[s]=e),c.plugins.refs.fetchJSON=i(n);var t=[c.plugins.refs];return"function"==typeof v&&t.push(c.plugins.parameters),"function"==typeof m&&t.push(c.plugins.properties),"strict"!==f&&t.push(c.plugins.allOf),(0,l.default)({spec:e,context:{baseDoc:s},plugins:t,allowMetaPatches:d,parameterMacro:v,modelPropertyMacro:m}).then(p.normalizeSwagger)}var n=e.http,r=e.fetch,o=e.spec,a=e.url,s=e.baseDoc,f=e.mode,h=e.allowMetaPatches,d=void 0===h||h,m=e.modelPropertyMacro,v=e.parameterMacro;return s=s||a,n=r||n||u.default,o?t(o):i(n)(s).then(t)}Object.defineProperty(t,"__esModule",{value:!0}),t.makeFetchJSON=i,t.clearCache=o,t.default=a;var s=n(6),u=r(s),c=n(21),l=r(c),p=n(2)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return new F(e).dispatch()}Object.defineProperty(t,"__esModule",{value:!0}),t.plugins=t.SpecMap=void 0;var o=n(7),a=r(o),s=n(12),u=r(s),c=n(15),l=r(c),p=n(0),f=r(p),h=n(11),d=r(h),m=n(27),v=r(m),y=n(1),g=r(y),_=n(13),b=r(_),x=n(14),w=r(x);t.default=i;var k=n(38),S=r(k),E=n(3),C=r(E),A=n(26),T=r(A),D=n(22),M=r(D),O=n(24),P=r(O),I=n(25),N=r(I),R=n(23),j=r(R),F=function(){function e(t){(0,b.default)(this,e),(0,g.default)(this,{spec:"",debugLevel:"info",plugins:[],pluginHistory:{},errors:[],mutations:[],promisedPatches:[],state:{},patches:[],context:{},contextTree:new j.default,showDebug:!1,allPatches:[],pluginProp:"specMap",libMethods:(0,g.default)((0,v.default)(this),C.default),allowMetaPatches:!1},t),this.get=this._get.bind(this),this.getContext=this._getContext.bind(this),this.hasRun=this._hasRun.bind(this),this.wrappedPlugins=this.plugins.map(this.wrapPlugin.bind(this)).filter(C.default.isFunction),this.patches.push(C.default.add([],this.spec)),this.patches.push(C.default.context([],this.context)),this.updatePatches(this.patches)}return(0,w.default)(e,[{key:"debug",value:function(e){if(this.debugLevel===e){for(var t,n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];(t=console).log.apply(t,r)}}},{key:"verbose",value:function(e){if("verbose"===this.debugLevel){for(var t,n=arguments.length,r=Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];(t=console).log.apply(t,["["+e+"] "].concat(r))}}},{key:"wrapPlugin",value:function(e,t){var n=null,r=void 0;return e[this.pluginProp]?(n=e,r=e[this.pluginProp]):C.default.isFunction(e)?r=e:C.default.isObject(e)&&(r=function(e){return l.default.mark(function t(n,r){var i,o,a,s,u,c,p,h;return l.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:h=function t(n,o,a){var s,u,c,p,h,m,v,y,g;return l.default.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:if(C.default.isObject(n)){i.next=6;break}if(e.key!==o[o.length-1]){i.next=4;break}return i.next=4,e.plugin(n,e.key,o,r);case 4:i.next=38;break;case 6:s=o[o.length-1],u=!0,c=!1,p=void 0,i.prev=10,h=(0,d.default)((0,f.default)(n));case 12:if(u=(m=h.next()).done){i.next=24;break}if(v=m.value,y=n[v],g=o.concat(v),!C.default.isObject(y)){i.next=18;break}return i.delegateYield(t(y,g,a),"t0",18);case 18:if("properties"===s||v!==e.key){i.next=21;break}return i.next=21,e.plugin(y,v,g,r,a);case 21:u=!0,i.next=12;break;case 24:i.next=30;break;case 26:i.prev=26,i.t1=i.catch(10),c=!0,p=i.t1;case 30:i.prev=30,i.prev=31,!u&&h.return&&h.return();case 33:if(i.prev=33,!c){i.next=36;break}throw p;case 36:return i.finish(33);case 37:return i.finish(30);case 38:case"end":return i.stop()}},i[0],this,[[10,26,30,38],[31,,33,37]])},i=[h].map(l.default.mark),o=!0,a=!1,s=void 0,t.prev=5,u=(0,d.default)(n.filter(C.default.isAdditiveMutation));case 7:if(o=(c=u.next()).done){t.next=13;break}return p=c.value,t.delegateYield(h(p.value,p.path,p),"t0",10);case 10:o=!0,t.next=7;break;case 13:t.next=19;break;case 15:t.prev=15,t.t1=t.catch(5),a=!0,s=t.t1;case 19:t.prev=19,t.prev=20,!o&&u.return&&u.return();case 22:if(t.prev=22,!a){t.next=25;break}throw s;case 25:return t.finish(22);case 26:return t.finish(19);case 27:case"end":return t.stop()}},t,this,[[5,15,19,27],[20,,22,26]])})}(e)),(0,g.default)(r.bind(n),{pluginName:e.name||t,isGenerator:C.default.isGenerator(r)})}},{key:"nextPlugin",value:function(){var e=this;return(0,S.default)(this.wrappedPlugins,function(t){return e.getMutationsForPlugin(t).length>0})}},{key:"nextPromisedPatch",value:function(){if(this.promisedPatches.length>0)return u.default.race(this.promisedPatches.map(function(e){return e.value}))}},{key:"getPluginHistory",value:function(e){var t=this.getPluginName(e);return this.pluginHistory[t]||[]}},{key:"getPluginRunCount",value:function(e){return this.getPluginHistory(e).length}},{key:"getPluginHistoryTip",value:function(e){var t=this.getPluginHistory(e);return t&&t[t.length-1]||{}}},{key:"getPluginMutationIndex",value:function(e){var t=this.getPluginHistoryTip(e).mutationIndex;return"number"!=typeof t?-1:t}},{key:"getPluginName",value:function(e){return e.pluginName}},{key:"updatePluginHistory",value:function(e,t){var n=this.getPluginName(e);(this.pluginHistory[n]=this.pluginHistory[n]||[]).push(t)}},{key:"updatePatches",value:function(e,t){var n=this;C.default.normalizeArray(e).forEach(function(e){if(e instanceof Error)return void n.errors.push(e);try{if(!C.default.isObject(e))return void n.debug("updatePatches","Got a non-object patch",e);if(n.showDebug&&n.allPatches.push(e),C.default.isPromise(e.value))return n.promisedPatches.push(e),void n.promisedPatchThen(e);if(C.default.isContextPatch(e))return void n.setContext(e.path,e.value);if(C.default.isMutation(e))return void n.updateMutations(e)}catch(e){n.errors.push(e)}})}},{key:"updateMutations",value:function(e){C.default.applyPatch(this.state,e,{allowMetaPatches:this.allowMetaPatches})&&this.mutations.push(e)}},{key:"removePromisedPatch",value:function(e){var t=this.promisedPatches.indexOf(e);return t<0?void this.debug("Tried to remove a promisedPatch that isn't there!"):void this.promisedPatches.splice(t,1)}},{key:"promisedPatchThen",value:function(e){var t=this;return e.value=e.value.then(function(n){var r=(0,g.default)({},e,{value:n});t.removePromisedPatch(e),t.updatePatches(r)}).catch(function(n){t.removePromisedPatch(e),t.updatePatches(n)})}},{key:"getMutations",value:function(e,t){return e=e||0,"number"!=typeof t&&(t=this.mutations.length),this.mutations.slice(e,t)}},{key:"getCurrentMutations",value:function(){return this.getMutationsForPlugin(this.getCurrentPlugin())}},{key:"getMutationsForPlugin",value:function(e){var t=this.getPluginMutationIndex(e);return this.getMutations(t+1)}},{key:"getCurrentPlugin",value:function(){return this.currentPlugin}},{key:"getPatchesOfType",value:function(e,t){return e.filter(t)}},{key:"getLib",value:function(){return this.libMethods}},{key:"_get",value:function(e){return C.default.getIn(this.state,e)}},{key:"_getContext",value:function(e){return this.contextTree.get(e)}},{key:"setContext",value:function(e,t){return this.contextTree.set(e,t)}},{key:"_hasRun",value:function(e){return this.getPluginRunCount(this.getCurrentPlugin())>(e||0)}},{key:"_clone",value:function(e){return JSON.parse((0,a.default)(e))}},{key:"dispatch",value:function(){function e(e){e&&(e=C.default.fullyNormalizeArray(e),n.updatePatches(e,r))}var t=this,n=this,r=this.nextPlugin();if(!r){var i=this.nextPromisedPatch();if(i)return i.then(function(){return t.dispatch()}).catch(function(){return t.dispatch()});var o={spec:this.state,errors:this.errors};return this.showDebug&&(o.patches=this.allPatches),u.default.resolve(o)}if(n.pluginCount=n.pluginCount||{},n.pluginCount[r]=(n.pluginCount[r]||0)+1,n.pluginCount[r]>100)return u.default.resolve({spec:n.state,errors:n.errors.concat(new Error("We've reached a hard limit of 100 plugin runs"))});if(r!==this.currentPlugin&&this.promisedPatches.length){var a=this.promisedPatches.map(function(e){return e.value});return u.default.all(a.map(function(e){return e.then(Function,Function)})).then(function(){return t.dispatch()})}return function(){n.currentPlugin=r;var t=n.getCurrentMutations(),i=n.mutations.length-1;try{if(r.isGenerator){var o=!0,a=!1,s=void 0;try{for(var u,c=(0,d.default)(r(t,n.getLib()));!(o=(u=c.next()).done);o=!0)e(u.value)}catch(e){a=!0,s=e}finally{try{!o&&c.return&&c.return()}finally{if(a)throw s}}}else e(r(t,n.getLib()))}catch(t){e([(0,g.default)((0,v.default)(t),{plugin:r})])}finally{n.updatePluginHistory(r,{mutationIndex:i})}return n.dispatch()}()}}]),e}(),B={refs:T.default,allOf:M.default,parameters:P.default,properties:N.default};t.SpecMap=F,t.plugins=B},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={key:"allOf",plugin:function(e,t,n,r,i){if(!i.meta||!i.meta.$$ref){if(!Array.isArray(e)){var o=new TypeError("allOf must be an array");return o.fullPath=n,o}var a=n.slice(0,-1),s=!1;return[r.replace(a,{})].concat(e.map(function(e,t){if(!r.isObject(e)){if(s)return null;s=!0;var i=new TypeError("Elements in allOf must be objects");return i.fullPath=n,i}return r.mergeDeep(a,e)}))}}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){return o({children:{}},e,t)}function o(e,t,n){return e.value=t||{},e.protoValue=n?(0,c.default)({},n.protoValue,e.value):e.value,(0,s.default)(e.children).forEach(function(t){var n=e.children[t];e.children[t]=o(n,n.value,e)}),e}Object.defineProperty(t,"__esModule",{value:!0});var a=n(0),s=r(a),u=n(4),c=r(u),l=n(13),p=r(l),f=n(14),h=r(f),d=function(){function e(t){(0,p.default)(this,e),this.root=i(t||{})}return(0,h.default)(e,[{key:"set",value:function(e,t){var n=this.getParent(e,!0);if(!n)return void o(this.root,t,null);var r=e[e.length-1],a=n.children;return a[r]?void o(a[r],t,n):void(a[r]=i(t,n))}},{key:"get",value:function(e){if(e=e||[],e.length<1)return this.root.value;for(var t=this.root,n=void 0,r=void 0,i=0;i<e.length&&(r=e[i],n=t.children,n[r]);i++)t=n[r];return t&&t.protoValue}},{key:"getParent",value:function(e,t){return!e||e.length<1?null:e.length<2?this.root:e.slice(0,-1).reduce(function(e,n){if(!e)return e;var r=e.children;return!r[n]&&t&&(r[n]=i(null,e)),r[n]},this.root)}}]),e}();t.default=d},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(1),o=r(i),a=n(3),s=r(a);t.default={key:"parameters",plugin:function(e,t,n,r,i){if(Array.isArray(e)&&e.length){var a=(0,o.default)([],e),u=n.slice(0,-1),c=(0,o.default)({},s.default.getIn(r.spec,u));return e.forEach(function(e,t){try{a[t].default=r.parameterMacro(c,e)}catch(e){var i=new Error(e);return i.fullPath=n,i}}),s.default.replace(n,a)}return s.default.replace(n,e)}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(1),o=r(i),a=n(3),s=r(a);t.default={key:"properties",plugin:function(e,t,n,r){var i=(0,o.default)({},e);for(var a in e)try{i[a].default=r.modelPropertyMacro(i[a])}catch(e){var u=new Error(e);return u.fullPath=n,u}return s.default.replace(n,i)}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!F.test(e)){if(!t)throw new B("Tried to resolve a relative URL, without having a basePath. path: '"+e+"' basePath: '"+t+"'");return P.default.resolve(t,e)}return e}function o(e,t){return new B("Could not resolve reference because of: "+e.message,t,e)}function a(e){return(e+"").split("#")}function s(e,t){var n=L[e];if(n&&!N.default.isPromise(n))try{var r=p(t,n);return(0,T.default)(S.default.resolve(r),{__value:r})}catch(e){return S.default.reject(e)}return c(e).then(function(e){return p(t,e)})}function u(e){void 0!==e?delete L[e]:(0,w.default)(L).forEach(function(e){delete L[e]})}function c(e){var t=L[e];return t?N.default.isPromise(t)?t:S.default.resolve(t):(L[e]=U.fetchJSON(e).then(function(t){return L[e]=t,t}),L[e])}function l(e){return(0,M.default)(e,{headers:{Accept:"application/json"},loadSpec:!0}).then(function(e){return e.json()})}function p(e,t){var n=f(e);if(n.length<1)return t;var r=N.default.getIn(t,n);if(void 0===r)throw new B("Could not resolve pointer: "+e+" does not exist in document",{pointer:e});return r}function f(e){if("string"!=typeof e)throw new TypeError("Expected a string, got a "+(void 0===e?"undefined":(0,b.default)(e)));return"/"===e[0]&&(e=e.substr(1)),""===e?[]:e.split("/").map(h)}function h(e){return"string"!=typeof e?e:e.replace(/~1/g,"/").replace(/~0/g,"~")}function d(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function m(e){return 0===e.length?"":"/"+e.map(d).join("/")}function v(e,t){if(W(t))return!0;var n=e.charAt(t.length);return 0===e.indexOf(t)&&(!n||"/"===n||"#"===n)}function y(e,t,n,r){var i=z.get(r);i||(i={},z.set(r,i));var o=m(n),a=(t||"<specmap-base>")+"#"+e;if(t==r.contextTree.get([]).baseDoc&&v(o,e))return!0;var s="";return!!n.some(function(e){return s=s+"/"+d(e),i[s]&&i[s].some(function(e){return v(e,a)||v(a,e)})})||void(i[o]=(i[o]||[]).concat(a))}function g(e,t){function n(e){return N.default.isObject(e)&&(r.indexOf(e)>=0||(0,w.default)(e).some(function(t){return n(e[t])}))}var r=[e];return t.path.reduce(function(e,t){return r.push(e[t]),e[t]},e),n(t.value)}Object.defineProperty(t,"__esModule",{value:!0});var _=n(5),b=r(_),x=n(0),w=r(x),k=n(12),S=r(k),E=n(28),C=r(E),A=n(1),T=r(A),D=n(16),M=r(D),O=n(9),P=r(O),I=n(3),N=r(I),R=n(10),j=r(R),F=new RegExp("^([a-z]+://|//)","i"),B=(0, +j.default)("JSONRefError",function(e,t,n){this.originalError=n,(0,T.default)(this,t||{})}),L={},z=new C.default,q={key:"$ref",plugin:function(e,t,n,r){var u=n.slice(0,-1),c=r.getContext(n).baseDoc;if("string"!=typeof e)return new B("$ref: must be a string (JSON-Ref)",{$ref:e,baseDoc:c,fullPath:n});var l=a(e),p=l[0],h=l[1]||"",d=void 0;try{d=c||p?i(p,c):null}catch(t){return o(t,{pointer:h,$ref:e,basePath:d,fullPath:n})}var m=void 0,v=void 0;if(!y(h,d,u,r)){if(null==d?(v=f(h),void 0===(m=r.get(v))&&(m=new B("Could not resolve reference: "+e,{pointer:h,$ref:e,baseDoc:c,fullPath:n}))):(m=s(d,h),m=null!=m.__value?m.__value:m.catch(function(t){throw o(t,{pointer:h,$ref:e,baseDoc:c,fullPath:n})})),m instanceof Error)return[N.default.remove(n),m];var _=N.default.replace(u,m,{$$ref:e});return d&&d!==c?[_,N.default.context(u,{baseDoc:d})]:g(r.state,_)?void 0:_}}},U=(0,T.default)(q,{docCache:L,absoluteify:i,clearCache:u,JSONRefError:B,wrapError:o,getDoc:c,split:a,extractFromDoc:s,fetchJSON:l,extract:p,jsonPointerToArray:f,unescapeJsonPointerToken:h});t.default=U;var W=function(e){return!e||"/"===e||"#"===e}},function(e,t){e.exports=n(495)},function(e,t){e.exports=n(815)},function(e,t){e.exports=n(447)},function(e,t){e.exports=n(184)},function(e,t){e.exports=n(435)},function(e,t){e.exports=n(823)},function(e,t){e.exports=n(131)},function(e,t){e.exports=n(824)},function(e,t){e.exports=n(825)},function(e,t){e.exports=n(448)},function(e,t){e.exports=n(826)},function(e,t){e.exports=n(894)},function(e,t){e.exports=n(917)},function(e,t){e.exports=n(800)},function(e,t){e.exports=n(781)},function(e,t){e.exports=n(939)},function(e,t){e.exports=n(940)},function(e,t){e.exports=n(941)},function(e,t){e.exports=n(949)},function(e,t,n){e.exports=n(17)}])},function(e,t,n){var r=n(765),i=n(768),o=n(769),a=n(790),s=n(793),u=n(794),c=Object.prototype,l=c.hasOwnProperty,p=o(function(e,t){if(s(t)||a(t))return void i(t,u(t),e);for(var n in t)l.call(t,n)&&r(e,n,t[n])});e.exports=p},[1233,766,767],function(e,t){function n(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}var r=Object.defineProperty;e.exports=n},234,[1235,765,766],function(e,t,n){function r(e){return i(function(t,n){var r=-1,i=n.length,a=i>1?n[i-1]:void 0,s=i>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(i--,a):void 0,s&&o(n[0],n[1],s)&&(a=i<3?void 0:a,i=1),t=Object(t);++r<i;){var u=n[r];u&&e(t,u,r,a)}return t})}var i=n(770),o=n(789);e.exports=r},function(e,t,n){function r(e,t){return a(o(e,t,i),e+"")}var i=n(771),o=n(772),a=n(774);e.exports=r},305,[1248,773],721,[1249,775,788],function(e,t,n){var r=n(776),i=n(771),o=n(777),a=o?function(e,t){return o(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:i;e.exports=a},724,function(e,t,n){var r=n(778),i=r(Object,"defineProperty");e.exports=i},[1183,779,787],[1184,780,782,781,786],function(e,t,n){function r(e){var t=i(e)?u.call(e):"";return t==o||t==a}var i=n(781),o="[object Function]",a="[object GeneratorFunction]",s=Object.prototype,u=s.toString;e.exports=r},221,[1185,783],[1186,784],[1178,785],153,function(e,t){function n(e){if(null!=e){try{return i.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var r=Function.prototype,i=r.toString;e.exports=n},225,function(e,t){function n(e){var t=0,n=0;return function(){var a=o(),s=i-(a-n);if(n=a,s>0){if(++t>=r)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var r=500,i=16,o=Date.now;e.exports=n},[1230,767,790,792,781],[1213,780,791],279,276,283,[1208,795,801,790],function(e,t,n){function r(e,t){var n=a(e)||o(e)?i(e.length,String):[],r=n.length,u=!!r;for(var l in e)!t&&!c.call(e,l)||u&&("length"==l||s(l,r))||n.push(l);return n}var i=n(796),o=n(797),a=n(800),s=n(792),u=Object.prototype,c=u.hasOwnProperty;e.exports=r},271,function(e,t,n){function r(e){return i(e)&&s.call(e,"callee")&&(!c.call(e,"callee")||u.call(e)==o)}var i=n(798),o="[object Arguments]",a=Object.prototype,s=a.hasOwnProperty,u=a.toString,c=a.propertyIsEnumerable;e.exports=r},function(e,t,n){function r(e){return o(e)&&i(e)}var i=n(790),o=n(799);e.exports=r},158,193,[1211,793,802],[1212,803],157,function(e,t,n){"use strict";function r(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function i(e,t,n){if(e&&c.isObject(e)&&e instanceof r)return e;var i=new r;return i.parse(e,t,n),i}function o(e){return c.isString(e)&&(e=i(e)),e instanceof r?e.format():r.prototype.format.call(e)}function a(e,t){return i(e,!1,!0).resolve(t)}function s(e,t){return e?i(e,!1,!0).resolveObject(t):t}var u=n(805),c=n(806);t.parse=i,t.resolve=a,t.resolveObject=s,t.format=o,t.Url=r;var l=/^([a-z0-9.+-]+:)/i,p=/:[0-9]*$/,f=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,h=["<",">",'"',"`"," ","\r","\n","\t"],d=["{","}","|","\\","^","`"].concat(h),m=["'"].concat(d),v=["%","/","?",";","#"].concat(m),y=["/","?","#"],g=255,_=/^[+a-z0-9A-Z_-]{0,63}$/,b=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,x={javascript:!0,"javascript:":!0},w={javascript:!0,"javascript:":!0},k={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},S=n(807);r.prototype.parse=function(e,t,n){if(!c.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var r=e.indexOf("?"),i=r!==-1&&r<e.indexOf("#")?"?":"#",o=e.split(i),a=/\\/g;o[0]=o[0].replace(a,"/"),e=o.join(i);var s=e;if(s=s.trim(),!n&&1===e.split("#").length){var p=f.exec(s);if(p)return this.path=s,this.href=s,this.pathname=p[1],p[2]?(this.search=p[2],t?this.query=S.parse(this.search.substr(1)):this.query=this.search.substr(1)):t&&(this.search="",this.query={}),this}var h=l.exec(s);if(h){h=h[0];var d=h.toLowerCase();this.protocol=d,s=s.substr(h.length)}if(n||h||s.match(/^\/\/[^@\/]+@[^@\/]+/)){var E="//"===s.substr(0,2);!E||h&&w[h]||(s=s.substr(2),this.slashes=!0)}if(!w[h]&&(E||h&&!k[h])){for(var C=-1,A=0;A<y.length;A++){var T=s.indexOf(y[A]);T!==-1&&(C===-1||T<C)&&(C=T)}var D,M;M=C===-1?s.lastIndexOf("@"):s.lastIndexOf("@",C),M!==-1&&(D=s.slice(0,M),s=s.slice(M+1),this.auth=decodeURIComponent(D)),C=-1;for(var A=0;A<v.length;A++){var T=s.indexOf(v[A]);T!==-1&&(C===-1||T<C)&&(C=T)}C===-1&&(C=s.length),this.host=s.slice(0,C),s=s.slice(C),this.parseHost(),this.hostname=this.hostname||"";var O="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!O)for(var P=this.hostname.split(/\./),A=0,I=P.length;A<I;A++){var N=P[A];if(N&&!N.match(_)){for(var R="",j=0,F=N.length;j<F;j++)R+=N.charCodeAt(j)>127?"x":N[j];if(!R.match(_)){var B=P.slice(0,A),L=P.slice(A+1),z=N.match(b);z&&(B.push(z[1]),L.unshift(z[2])),L.length&&(s="/"+L.join(".")+s),this.hostname=B.join(".");break}}}this.hostname.length>g?this.hostname="":this.hostname=this.hostname.toLowerCase(),O||(this.hostname=u.toASCII(this.hostname));var q=this.port?":"+this.port:"",U=this.hostname||"";this.host=U+q,this.href+=this.host,O&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==s[0]&&(s="/"+s))}if(!x[d])for(var A=0,I=m.length;A<I;A++){var W=m[A];if(s.indexOf(W)!==-1){var K=encodeURIComponent(W);K===W&&(K=escape(W)),s=s.split(W).join(K)}}var V=s.indexOf("#");V!==-1&&(this.hash=s.substr(V),s=s.slice(0,V));var H=s.indexOf("?");if(H!==-1?(this.search=s.substr(H),this.query=s.substr(H+1),t&&(this.query=S.parse(this.query)),s=s.slice(0,H)):t&&(this.search="",this.query={}),s&&(this.pathname=s),k[d]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var q=this.pathname||"",J=this.search||"";this.path=q+J}return this.href=this.format(),this},r.prototype.format=function(){var e=this.auth||"";e&&(e=encodeURIComponent(e),e=e.replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",r=this.hash||"",i=!1,o="";this.host?i=e+this.host:this.hostname&&(i=e+(this.hostname.indexOf(":")===-1?this.hostname:"["+this.hostname+"]"),this.port&&(i+=":"+this.port)),this.query&&c.isObject(this.query)&&Object.keys(this.query).length&&(o=S.stringify(this.query));var a=this.search||o&&"?"+o||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||k[t])&&i!==!1?(i="//"+(i||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):i||(i=""),r&&"#"!==r.charAt(0)&&(r="#"+r),a&&"?"!==a.charAt(0)&&(a="?"+a),n=n.replace(/[?#]/g,function(e){return encodeURIComponent(e)}),a=a.replace("#","%23"),t+i+n+a+r},r.prototype.resolve=function(e){return this.resolveObject(i(e,!1,!0)).format()},r.prototype.resolveObject=function(e){if(c.isString(e)){var t=new r;t.parse(e,!1,!0),e=t}for(var n=new r,i=Object.keys(this),o=0;o<i.length;o++){var a=i[o];n[a]=this[a]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var s=Object.keys(e),u=0;u<s.length;u++){var l=s[u];"protocol"!==l&&(n[l]=e[l])}return k[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!k[e.protocol]){for(var p=Object.keys(e),f=0;f<p.length;f++){var h=p[f];n[h]=e[h]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||w[e.protocol])n.pathname=e.pathname;else{for(var d=(e.pathname||"").split("/");d.length&&!(e.host=d.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==d[0]&&d.unshift(""),d.length<2&&d.unshift(""),n.pathname=d.join("/")}if(n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,n.pathname||n.search){var m=n.pathname||"",v=n.search||"";n.path=m+v}return n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var y=n.pathname&&"/"===n.pathname.charAt(0),g=e.host||e.pathname&&"/"===e.pathname.charAt(0),_=g||y||n.host&&e.pathname,b=_,x=n.pathname&&n.pathname.split("/")||[],d=e.pathname&&e.pathname.split("/")||[],S=n.protocol&&!k[n.protocol];if(S&&(n.hostname="",n.port=null,n.host&&(""===x[0]?x[0]=n.host:x.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===d[0]?d[0]=e.host:d.unshift(e.host)),e.host=null),_=_&&(""===d[0]||""===x[0])),g)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,x=d;else if(d.length)x||(x=[]),x.pop(),x=x.concat(d),n.search=e.search,n.query=e.query;else if(!c.isNullOrUndefined(e.search)){if(S){n.hostname=n.host=x.shift();var E=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@");E&&(n.auth=E.shift(),n.host=n.hostname=E.shift())}return n.search=e.search,n.query=e.query,c.isNull(n.pathname)&&c.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!x.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var C=x.slice(-1)[0],A=(n.host||e.host||x.length>1)&&("."===C||".."===C)||""===C,T=0,D=x.length;D>=0;D--)C=x[D],"."===C?x.splice(D,1):".."===C?(x.splice(D,1),T++):T&&(x.splice(D,1),T--);if(!_&&!b)for(;T--;T)x.unshift("..");!_||""===x[0]||x[0]&&"/"===x[0].charAt(0)||x.unshift(""),A&&"/"!==x.join("/").substr(-1)&&x.push("");var M=""===x[0]||x[0]&&"/"===x[0].charAt(0);if(S){n.hostname=n.host=M?"":x.length?x.shift():"";var E=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@");E&&(n.auth=E.shift(),n.host=n.hostname=E.shift())}return _=_||n.host&&x.length,_&&!M&&x.unshift(""),x.length?n.pathname=x.join("/"):(n.pathname=null,n.path=null),c.isNull(n.pathname)&&c.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},r.prototype.parseHost=function(){var e=this.host,t=p.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,n){var r;(function(e,i){!function(o){function a(e){throw RangeError(P[e])}function s(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function u(e,t){var n=e.split("@"),r="";n.length>1&&(r=n[0]+"@",e=n[1]),e=e.replace(O,".");var i=e.split("."),o=s(i,t).join(".");return r+o}function c(e){for(var t,n,r=[],i=0,o=e.length;i<o;)t=e.charCodeAt(i++),t>=55296&&t<=56319&&i<o?(n=e.charCodeAt(i++),56320==(64512&n)?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),i--)):r.push(t);return r}function l(e){return s(e,function(e){var t="";return e>65535&&(e-=65536,t+=R(e>>>10&1023|55296),e=56320|1023&e),t+=R(e)}).join("")}function p(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:x}function f(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function h(e,t,n){var r=0;for(e=n?N(e/E):e>>1,e+=N(e/t);e>I*k>>1;r+=x)e=N(e/I);return N(r+(I+1)*e/(e+S))}function d(e){var t,n,r,i,o,s,u,c,f,d,m=[],v=e.length,y=0,g=A,_=C;for(n=e.lastIndexOf(T),n<0&&(n=0),r=0;r<n;++r)e.charCodeAt(r)>=128&&a("not-basic"),m.push(e.charCodeAt(r));for(i=n>0?n+1:0;i<v;){for(o=y,s=1,u=x;i>=v&&a("invalid-input"),c=p(e.charCodeAt(i++)),(c>=x||c>N((b-y)/s))&&a("overflow"),y+=c*s,f=u<=_?w:u>=_+k?k:u-_,!(c<f);u+=x)d=x-f,s>N(b/d)&&a("overflow"),s*=d;t=m.length+1,_=h(y-o,t,0==o),N(y/t)>b-g&&a("overflow"),g+=N(y/t),y%=t,m.splice(y++,0,g)}return l(m)}function m(e){var t,n,r,i,o,s,u,l,p,d,m,v,y,g,_,S=[];for(e=c(e),v=e.length,t=A,n=0,o=C,s=0;s<v;++s)m=e[s],m<128&&S.push(R(m));for(r=i=S.length,i&&S.push(T);r<v;){for(u=b,s=0;s<v;++s)m=e[s],m>=t&&m<u&&(u=m);for(y=r+1,u-t>N((b-n)/y)&&a("overflow"),n+=(u-t)*y,t=u,s=0;s<v;++s)if(m=e[s],m<t&&++n>b&&a("overflow"),m==t){for(l=n,p=x;d=p<=o?w:p>=o+k?k:p-o,!(l<d);p+=x)_=l-d,g=x-d,S.push(R(f(d+_%g,0))),l=N(_/g);S.push(R(f(l,0))),o=h(n,y,r==i),n=0,++r}++n,++t}return S.join("")}function v(e){return u(e,function(e){return D.test(e)?d(e.slice(4).toLowerCase()):e})}function y(e){return u(e,function(e){return M.test(e)?"xn--"+m(e):e})}var g=("object"==typeof t&&t&&!t.nodeType&&t,"object"==typeof e&&e&&!e.nodeType&&e,"object"==typeof i&&i);g.global!==g&&g.window!==g&&g.self!==g||(o=g);var _,b=2147483647,x=36,w=1,k=26,S=38,E=700,C=72,A=128,T="-",D=/^xn--/,M=/[^\x20-\x7E]/,O=/[\x2E\u3002\uFF0E\uFF61]/g,P={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},I=x-w,N=Math.floor,R=String.fromCharCode;_={version:"1.3.2",ucs2:{decode:c,encode:l},decode:d,encode:m,toASCII:y,toUnicode:v},r=function(){return _}.call(t,n,t,e),!(void 0!==r&&(e.exports=r))}(this)}).call(t,n(161)(e),function(){return this}())},function(e,t){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t,n){"use strict";t.decode=t.parse=n(808),t.encode=t.stringify=n(809)},function(e,t){"use strict";function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,r,i){t=t||"&",r=r||"=";var o={};if("string"!=typeof e||0===e.length)return o;var a=/\+/g;e=e.split(t);var s=1e3;i&&"number"==typeof i.maxKeys&&(s=i.maxKeys);var u=e.length;s>0&&u>s&&(u=s);for(var c=0;c<u;++c){var l,p,f,h,d=e[c].replace(a,"%20"),m=d.indexOf(r);m>=0?(l=d.substr(0,m),p=d.substr(m+1)):(l=d,p=""),f=decodeURIComponent(l),h=decodeURIComponent(p),n(o,f)?Array.isArray(o[f])?o[f].push(h):o[f]=[o[f],h]:o[f]=h}return o}},function(e,t){"use strict";var n=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,r,i){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map(function(i){var o=encodeURIComponent(n(i))+r;return Array.isArray(e[i])?e[i].map(function(e){return o+encodeURIComponent(n(e))}).join(t):o+encodeURIComponent(n(e[i]))}).join(t):i?encodeURIComponent(n(i))+r+encodeURIComponent(n(e)):""}},function(e,t,n){e.exports=n(811)},function(e,t,n){(function(t){var r="object"==typeof t?t:"object"==typeof window?window:"object"==typeof self?self:this,i=r.regeneratorRuntime&&Object.getOwnPropertyNames(r).indexOf("regeneratorRuntime")>=0,o=i&&r.regeneratorRuntime;if(r.regeneratorRuntime=void 0,e.exports=n(812),i)r.regeneratorRuntime=o;else try{delete r.regeneratorRuntime}catch(e){r.regeneratorRuntime=void 0}}).call(t,function(){return this}())},function(e,t){(function(t){!function(t){"use strict";function n(e,t,n,r){var o=t&&t.prototype instanceof i?t:i,a=Object.create(o.prototype),s=new h(r||[]);return a._invoke=c(e,n,s),a}function r(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}function i(){}function o(){}function a(){}function s(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function u(e){function n(t,i,o,a){var s=r(e[t],e,i);if("throw"!==s.type){var u=s.arg,c=u.value;return c&&"object"==typeof c&&g.call(c,"__await")?Promise.resolve(c.__await).then(function(e){n("next",e,o,a)},function(e){n("throw",e,o,a)}):Promise.resolve(c).then(function(e){u.value=e,o(u)},a)}a(s.arg)}function i(e,t){function r(){return new Promise(function(r,i){n(e,t,r,i)})}return o=o?o.then(r,r):r()}"object"==typeof t.process&&t.process.domain&&(n=t.process.domain.bind(n));var o;this._invoke=i}function c(e,t,n){var i=E;return function(o,a){if(i===A)throw new Error("Generator is already running");if(i===T){if("throw"===o)throw a;return m()}for(n.method=o,n.arg=a;;){var s=n.delegate;if(s){var u=l(s,n);if(u){if(u===D)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===E)throw i=T,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=A;var c=r(e,t,n);if("normal"===c.type){if(i=n.done?T:C,c.arg===D)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(i=T,n.method="throw",n.arg=c.arg)}}}function l(e,t){var n=e.iterator[t.method];if(n===v){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=v,l(e,t),"throw"===t.method))return D;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return D}var i=r(n,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,D;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=v),t.delegate=null,D):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,D)}function p(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function f(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function h(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(p,this),this.reset(!0)}function d(e){if(e){var t=e[b];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function t(){for(;++n<e.length;)if(g.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=v,t.done=!0,t};return r.next=r}}return{next:m}}function m(){return{value:v,done:!0}}var v,y=Object.prototype,g=y.hasOwnProperty,_="function"==typeof Symbol?Symbol:{},b=_.iterator||"@@iterator",x=_.asyncIterator||"@@asyncIterator",w=_.toStringTag||"@@toStringTag",k="object"==typeof e,S=t.regeneratorRuntime;if(S)return void(k&&(e.exports=S));S=t.regeneratorRuntime=k?e.exports:{},S.wrap=n;var E="suspendedStart",C="suspendedYield",A="executing",T="completed",D={},M={};M[b]=function(){return this};var O=Object.getPrototypeOf,P=O&&O(O(d([])));P&&P!==y&&g.call(P,b)&&(M=P);var I=a.prototype=i.prototype=Object.create(M);o.prototype=I.constructor=a,a.constructor=o,a[w]=o.displayName="GeneratorFunction",S.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===o||"GeneratorFunction"===(t.displayName||t.name))},S.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,a):(e.__proto__=a,w in e||(e[w]="GeneratorFunction")),e.prototype=Object.create(I),e},S.awrap=function(e){return{__await:e}},s(u.prototype),u.prototype[x]=function(){return this},S.AsyncIterator=u,S.async=function(e,t,r,i){var o=new u(n(e,t,r,i));return S.isGeneratorFunction(t)?o:o.next().then(function(e){return e.done?e.value:o.next()})},s(I),I[w]="Generator",I[b]=function(){return this},I.toString=function(){return"[object Generator]"},S.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},S.values=d,h.prototype={constructor:h,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=v,this.done=!1,this.delegate=null,this.method="next",this.arg=v,this.tryEntries.forEach(f),!e)for(var t in this)"t"===t.charAt(0)&&g.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=v)},stop:function(){this.done=!0;var e=this.tryEntries[0],t=e.completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){function t(t,r){return o.type="throw",o.arg=e,n.next=t,r&&(n.method="next",n.arg=v),!!r}if(this.done)throw e;for(var n=this,r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r],o=i.completion;if("root"===i.tryLoc)return t("end");if(i.tryLoc<=this.prev){var a=g.call(i,"catchLoc"),s=g.call(i,"finallyLoc");if(a&&s){if(this.prev<i.catchLoc)return t(i.catchLoc,!0);if(this.prev<i.finallyLoc)return t(i.finallyLoc)}else if(a){if(this.prev<i.catchLoc)return t(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return t(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&g.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,D):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),D},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),f(n),D}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;f(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:d(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=v),D}}}("object"==typeof t?t:"object"==typeof window?window:"object"==typeof self?self:this)}).call(t,function(){return this}())},function(e,t,n){n(814),e.exports=self.fetch.bind(self)},function(e,t){!function(e){"use strict";function t(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function n(e){return"string"!=typeof e&&(e=String(e)),e}function r(e){this.map={},e instanceof r?e.forEach(function(e,t){this.append(t,e)},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function i(e){return e.bodyUsed?Promise.reject(new TypeError("Already read")):void(e.bodyUsed=!0)}function o(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function a(e){var t=new FileReader;return t.readAsArrayBuffer(e),o(t)}function s(e){var t=new FileReader;return t.readAsText(e),o(t)}function u(){return this.bodyUsed=!1,this._initBody=function(e){if(this._bodyInit=e,"string"==typeof e)this._bodyText=e;else if(d.blob&&Blob.prototype.isPrototypeOf(e))this._bodyBlob=e;else if(d.formData&&FormData.prototype.isPrototypeOf(e))this._bodyFormData=e;else if(e){if(!d.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(e))throw new Error("unsupported BodyInit type")}else this._bodyText="";this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type&&this.headers.set("content-type",this._bodyBlob.type))},d.blob?(this.blob=function(){var e=i(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this.blob().then(a)},this.text=function(){var e=i(this);if(e)return e;if(this._bodyBlob)return s(this._bodyBlob);if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)}):this.text=function(){var e=i(this);return e?e:Promise.resolve(this._bodyText)},d.formData&&(this.formData=function(){return this.text().then(p)}),this.json=function(){return this.text().then(JSON.parse)},this}function c(e){var t=e.toUpperCase();return m.indexOf(t)>-1?t:e}function l(e,t){t=t||{};var n=t.body;if(l.prototype.isPrototypeOf(e)){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new r(e.headers)),this.method=e.method,this.mode=e.mode,n||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=e;if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new r(t.headers)),this.method=c(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function p(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),i=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(i))}}),t}function f(e){var t=new r,n=(e.getAllResponseHeaders()||"").trim().split("\n");return n.forEach(function(e){var n=e.trim().split(":"),r=n.shift().trim(),i=n.join(":").trim();t.append(r,i)}),t}function h(e,t){t||(t={}),this.type="default",this.status=t.status,this.ok=this.status>=200&&this.status<300,this.statusText=t.statusText,this.headers=t.headers instanceof r?t.headers:new r(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){r.prototype.append=function(e,r){e=t(e),r=n(r);var i=this.map[e];i||(i=[],this.map[e]=i),i.push(r)},r.prototype.delete=function(e){delete this.map[t(e)]},r.prototype.get=function(e){var n=this.map[t(e)];return n?n[0]:null},r.prototype.getAll=function(e){return this.map[t(e)]||[]},r.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},r.prototype.set=function(e,r){this.map[t(e)]=[n(r)]},r.prototype.forEach=function(e,t){Object.getOwnPropertyNames(this.map).forEach(function(n){this.map[n].forEach(function(r){e.call(t,r,n,this)},this)},this)};var d={blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e},m=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];l.prototype.clone=function(){return new l(this)},u.call(l.prototype),u.call(h.prototype),h.prototype.clone=function(){return new h(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new r(this.headers),url:this.url})},h.error=function(){var e=new h(null,{status:0,statusText:""});return e.type="error",e};var v=[301,302,303,307,308];h.redirect=function(e,t){if(v.indexOf(t)===-1)throw new RangeError("Invalid status code");return new h(null,{status:t,headers:{location:e}})},e.Headers=r,e.Request=l,e.Response=h,e.fetch=function(e,t){return new Promise(function(n,r){function i(){return"responseURL"in a?a.responseURL:/^X-Request-URL:/m.test(a.getAllResponseHeaders())?a.getResponseHeader("X-Request-URL"):void 0}var o;o=l.prototype.isPrototypeOf(e)&&!t?e:new l(e,t);var a=new XMLHttpRequest;a.onload=function(){var e=1223===a.status?204:a.status;if(e<100||e>599)return void r(new TypeError("Network request failed"));var t={status:e,statusText:a.statusText,headers:f(a),url:i()},o="response"in a?a.response:a.responseText;n(new h(o,t))},a.onerror=function(){r(new TypeError("Network request failed"))},a.ontimeout=function(){r(new TypeError("Network request failed"))},a.open(o.method,o.url,!0),"include"===o.credentials&&(a.withCredentials=!0),"responseType"in a&&d.blob&&(a.responseType="blob"),o.headers.forEach(function(e,t){a.setRequestHeader(t,e)}),a.send("undefined"==typeof o._bodyInit?null:o._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!=typeof self?self:this)},function(e,t,n){e.exports={default:n(816),__esModule:!0}},function(e,t,n){n(128),n(110),n(817),e.exports=n(59).WeakMap},function(e,t,n){"use strict";var r,i=n(818)(0),o=n(101),a=n(118),s=n(144),u=n(821),c=n(87),l=a.getWeak,p=Object.isExtensible,f=u.ufstore,h={},d=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},m={get:function(e){if(c(e)){var t=l(e);return t===!0?f(this).get(e):t?t[this._i]:void 0}},set:function(e,t){return u.def(this,e,t)}},v=e.exports=n(822)("WeakMap",d,m,u,!0,!0);7!=(new v).set((Object.freeze||Object)(h),7).get(h)&&(r=u.getConstructor(d),s(r.prototype,m),a.NEED=!0,i(["delete","has","get","set"],function(e){var t=v.prototype,n=t[e];o(t,e,function(t,i){if(c(t)&&!p(t)){this._f||(this._f=new r);var o=this._f[e](t,i);return"set"==e?this:o}return n.call(this,t,i)})}))},function(e,t,n){var r=n(82),i=n(69),o=n(63),a=n(72),s=n(819);e.exports=function(e,t){var n=1==e,u=2==e,c=3==e,l=4==e,p=6==e,f=5==e||p,h=t||s;return function(t,s,d){for(var m,v,y=o(t),g=i(y),_=r(s,d,3),b=a(g.length),x=0,w=n?h(t,b):u?h(t,0):void 0;b>x;x++)if((f||x in g)&&(m=g[x],v=_(m,x,y),e))if(n)w[x]=v;else if(v)switch(e){case 3:return!0;case 5:return m;case 6:return x;case 2:w.push(m)}else if(l)return!1;return p?-1:c||l?l:w}}},function(e,t,n){var r=n(820);e.exports=function(e,t){return new(r(e))(t)}},function(e,t,n){var r=n(87),i=n(124),o=n(108)("species");e.exports=function(e){var t;return i(e)&&(t=e.constructor,"function"!=typeof t||t!==Array&&!i(t.prototype)||(t=void 0),r(t)&&(t=t[o],null===t&&(t=void 0))),void 0===t?Array:t}},function(e,t,n){"use strict";var r=n(739),i=n(118).getWeak,o=n(86),a=n(87),s=n(733),u=n(734),c=n(818),l=n(67),p=c(5),f=c(6),h=0,d=function(e){return e._l||(e._l=new m)},m=function(){this.a=[]},v=function(e,t){return p(e.a,function(e){return e[0]===t})};m.prototype={get:function(e){var t=v(this,e);if(t)return t[1]},has:function(e){return!!v(this,e)},set:function(e,t){var n=v(this,e);n?n[1]=t:this.a.push([e,t])},delete:function(e){var t=f(this.a,function(t){return t[0]===e});return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,o){var c=e(function(e,r){s(e,c,t,"_i"),e._i=h++,e._l=void 0,void 0!=r&&u(r,n,e[o],e)});return r(c.prototype,{delete:function(e){if(!a(e))return!1;var t=i(e);return t===!0?d(this).delete(e):t&&l(t,this._i)&&delete t[this._i]},has:function(e){if(!a(e))return!1;var t=i(e);return t===!0?d(this).has(e):t&&l(t,this._i)}}),c},def:function(e,t,n){var r=i(o(t),!0);return r===!0?d(e).set(t,n):r[e._i]=n,e},ufstore:d}},function(e,t,n){"use strict";var r=n(77),i=n(81),o=n(118),a=n(90),s=n(84),u=n(739),c=n(734),l=n(733),p=n(87),f=n(107),h=n(85).f,d=n(818)(0),m=n(89);e.exports=function(e,t,n,v,y,g){var _=r[e],b=_,x=y?"set":"add",w=b&&b.prototype,k={};return m&&"function"==typeof b&&(g||w.forEach&&!a(function(){(new b).entries().next()}))?(b=t(function(t,n){l(t,b,e,"_c"),t._c=new _,void 0!=n&&c(n,y,t[x],t)}),d("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(e){var t="add"==e||"set"==e;e in w&&(!g||"clear"!=e)&&s(b.prototype,e,function(n,r){if(l(this,b,e),!t&&g&&!p(n))return"get"==e&&void 0;var i=this._c[e](0===n?0:n,r);return t?this:i})}),"size"in w&&h(b.prototype,"size",{get:function(){return this._c.size}})):(b=v.getConstructor(t,e,y,x),u(b.prototype,n),o.NEED=!0),f(b,e),k[e]=b,i(i.G+i.W+i.F,k),g||v.setStrong(b,e,y),b}},function(e,t,n){(function(t){!function(){"use strict";function n(e){var n;return n=e instanceof t?e:new t(e.toString(),"binary"),n.toString("base64")}e.exports=n}()}).call(t,n(132).Buffer)},function(e,t,n){/*! + * https://github.com/Starcounter-Jack/JSON-Patch + * json-patch-duplex.js version: 1.1.10 + * (c) 2013 Joachim Wester + * MIT license + */ +var r;!function(e){function t(e,n){switch(typeof e){case"undefined":case"boolean":case"string":case"number":return e===n;case"object":if(null===e)return null===n;if(E(e)){if(!E(n)||e.length!==n.length)return!1;for(var r=0,i=e.length;r<i;r++)if(!t(e[r],n[r]))return!1;return!0}var o=g(n),a=o.length;if(g(e).length!==a)return!1;for(var r=0;r<a;r++)if(!t(e[r],n[r]))return!1;return!0;default:return!1}}function n(e){return e.indexOf("/")===-1&&e.indexOf("~")===-1?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}function r(e){for(var t=0,n=w.length;t<n;t++)if(w[t].obj===e)return w[t]}function i(e,t){for(var n=0,r=e.observers.length;n<r;n++)if(e.observers[n].callback===t)return e.observers[n].observer}function o(e,t){for(var n=0,r=e.observers.length;n<r;n++)if(e.observers[n].observer===t)return void e.observers.splice(n,1)}function a(e,t){t.unobserve()}function s(e){switch(typeof e){case"object":return JSON.parse(JSON.stringify(e));case"undefined":return null;default:return e}}function u(e,t){var n,a=[],u=r(e);if(u?n=i(u,t):(u=new k(e),w.push(u)),n)return n;if(n={},u.value=s(e),t){n.callback=t,n.next=null;var l=function(){c(n)},p=function(){clearTimeout(n.next),n.next=setTimeout(l)};"undefined"!=typeof window&&(window.addEventListener?(window.addEventListener("mouseup",p),window.addEventListener("keyup",p),window.addEventListener("mousedown",p),window.addEventListener("keydown",p),window.addEventListener("change",p)):(document.documentElement.attachEvent("onmouseup",p),document.documentElement.attachEvent("onkeyup",p),document.documentElement.attachEvent("onmousedown",p),document.documentElement.attachEvent("onkeydown",p),document.documentElement.attachEvent("onchange",p)))}return n.patches=a,n.object=e,n.unobserve=function(){c(n),clearTimeout(n.next),o(u,n),"undefined"!=typeof window&&(window.removeEventListener?(window.removeEventListener("mouseup",p),window.removeEventListener("keyup",p),window.removeEventListener("mousedown",p),window.removeEventListener("keydown",p)):(document.documentElement.detachEvent("onmouseup",p),document.documentElement.detachEvent("onkeyup",p),document.documentElement.detachEvent("onmousedown",p),document.documentElement.detachEvent("onkeydown",p)))},u.observers.push(new S(t,n)),n}function c(e){for(var t,n=0,r=w.length;n<r;n++)if(w[n].obj===e.object){t=w[n];break}l(t.value,e.object,e.patches,""),e.patches.length&&f(t.value,e.patches);var i=e.patches;return i.length>0&&(e.patches=[],e.callback&&e.callback(i)),i}function l(e,t,r,i){if(t!==e){"function"==typeof t.toJSON&&(t=t.toJSON());for(var o=g(t),a=g(e),u=!1,c=!1,p=a.length-1;p>=0;p--){var f=a[p],h=e[f];if(!t.hasOwnProperty(f)||void 0===t[f]&&void 0!==h&&E(t)===!1)r.push({op:"remove",path:i+"/"+n(f)}),c=!0;else{var d=t[f];"object"==typeof h&&null!=h&&"object"==typeof d&&null!=d?l(h,d,r,i+"/"+n(f)):h!==d&&(u=!0,r.push({op:"replace",path:i+"/"+n(f),value:s(d)}))}}if(c||o.length!=a.length)for(var p=0;p<o.length;p++){var f=o[p];e.hasOwnProperty(f)||void 0===t[f]||r.push({op:"add",path:i+"/"+n(f),value:s(t[f])})}}}function p(e){for(var t,n=0,r=e.length;n<r;){t=e.charCodeAt(n);{if(!(t>=48&&t<=57))return!1;n++}}return!0}function f(e,t,n){for(var r,i,o=[],a=0,s=t.length;a<s;){r=t[a],a++;for(var u=r.path||"",c=u.split("/"),l=e,f=1,h=c.length,d=void 0;;){if(i=c[f],n&&void 0===d&&(void 0===l[i]?d=c.slice(0,f).join("/"):f==h-1&&(d=r.path),void 0!==d&&this.validator(r,a-1,e,d)),f++,void 0===i&&f>=h){o.push(x[r.op].call(r,l,i,e));break}if(E(l)){if("-"===i)i=l.length;else{if(n&&!p(i))throw new C("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",a-1,r.path,r);i=parseInt(i,10)}if(f>=h){if(n&&"add"===r.op&&i>l.length)throw new C("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",a-1,r.path,r);o.push(b[r.op].call(r,l,i,e));break}}else if(i&&i.indexOf("~")!=-1&&(i=i.replace(/~1/g,"/").replace(/~0/g,"~")),f>=h){o.push(_[r.op].call(r,l,i,e));break}l=l[i]}}return o}function h(e,t){var n=[];return l(e,t,n,""),n}function d(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function m(e){if(void 0===e)return!0;if(e)if(E(e)){for(var t=0,n=e.length;t<n;t++)if(m(e[t]))return!0}else if("object"==typeof e)for(var r=g(e),i=r.length,t=0;t<i;t++)if(m(e[r[t]]))return!0;return!1}function v(t,n,r,i){if("object"!=typeof t||null===t||E(t))throw new C("Operation is not an object","OPERATION_NOT_AN_OBJECT",n,t,r);if(!_[t.op])throw new C("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",n,t,r);if("string"!=typeof t.path)throw new C("Operation `path` property is not a string","OPERATION_PATH_INVALID",n,t,r);if(0!==t.path.indexOf("/")&&t.path.length>0)throw new C('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",n,t,r);if(("move"===t.op||"copy"===t.op)&&"string"!=typeof t.from)throw new C("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",n,t,r);if(("add"===t.op||"replace"===t.op||"test"===t.op)&&void 0===t.value)throw new C("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",n,t,r);if(("add"===t.op||"replace"===t.op||"test"===t.op)&&m(t.value))throw new C("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",n,t,r);if(r)if("add"==t.op){var o=t.path.split("/").length,a=i.split("/").length;if(o!==a+1&&o!==a)throw new C("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",n,t,r)}else if("replace"===t.op||"remove"===t.op||"_get"===t.op){if(t.path!==i)throw new C("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",n,t,r)}else if("move"===t.op||"copy"===t.op){var s={op:"_get",path:t.from,value:void 0},u=e.validate([s],r);if(u&&"OPERATION_PATH_UNRESOLVABLE"===u.name)throw new C("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",n,t,r)}}function y(e,t){try{if(!E(e))throw new C("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(t)t=JSON.parse(JSON.stringify(t)),f.call(this,t,e,!0);else for(var n=0;n<e.length;n++)this.validator(e[n],n)}catch(e){if(e instanceof C)return e;throw e}}var g=function(e){if(E(e)){for(var t=new Array(e.length),n=0;n<t.length;n++)t[n]=""+n;return t}if(Object.keys)return Object.keys(e);var t=[];for(var r in e)e.hasOwnProperty(r)&&t.push(r);return t},_={add:function(e,t){e[t]=this.value},remove:function(e,t){var n=e[t];return delete e[t],n},replace:function(e,t){var n=e[t];return e[t]=this.value,n},move:function(e,t,n){var r={op:"_get",path:this.path};f(n,[r]);var i=void 0===r.value?void 0:JSON.parse(JSON.stringify(r.value)),o={op:"_get",path:this.from};return f(n,[o]),f(n,[{op:"remove",path:this.from}]),f(n,[{op:"add",path:this.path,value:o.value}]),i},copy:function(e,t,n){var r={op:"_get",path:this.from};f(n,[r]),f(n,[{op:"add",path:this.path,value:r.value}])},test:function(e,n){return t(e[n],this.value)},_get:function(e,t){this.value=e[t]}},b={add:function(e,t){return e.splice(t,0,this.value),t},remove:function(e,t){var n=e.splice(t,1);return n[0]},replace:function(e,t){var n=e[t];return e[t]=this.value,n},move:_.move,copy:_.copy,test:_.test,_get:_._get},x={add:function(e){x.remove.call(this,e);for(var t in this.value)this.value.hasOwnProperty(t)&&(e[t]=this.value[t])},remove:function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n],_.remove.call(this,e,n));return t},replace:function(e){var t=f(e,[{op:"remove",path:this.path}]);return f(e,[{op:"add",path:this.path,value:this.value}]),t[0]},move:_.move,copy:_.copy,test:function(e){return JSON.stringify(e)===JSON.stringify(this.value)},_get:function(e){this.value=e}},w=[],k=function(){function e(e){this.observers=[],this.obj=e}return e}(),S=function(){function e(e,t){this.callback=e,this.observer=t}return e}();e.unobserve=a,e.observe=u,e.generate=c;var E;E=Array.isArray?Array.isArray:function(e){return e.push&&"number"==typeof e.length},e.apply=f,e.compare=h;var C=function(e){function t(t,n,r,i,o){e.call(this,t),this.message=t,this.name=n,this.index=r,this.operation=i,this.tree=o}return d(t,e),t}(Error);e.JsonPatchError=C,e.validator=v,e.validate=y}(r||(r={}));var t,i;t.apply=r.apply,t.observe=r.observe,t.unobserve=r.unobserve,t.generate=r.generate,t.compare=r.compare,t.validate=r.validate,t.validator=r.validator,t.JsonPatchError=r.JsonPatchError,Object.defineProperty(t,"__esModule",{value:!0}),t.default=r,i&&(t=void 0)},function(e,t){e.exports=FormData},function(e,t,n){function r(e){return i(e,!0,!0)}var i=n(827);e.exports=r},function(e,t,n){function r(e,t,n,x,w,k,S){var A;if(x&&(A=k?x(e,w,k,S):x(e)),void 0!==A)return A;if(!g(e))return e;var T=v(e);if(T){if(A=h(e),!t)return c(e,A)}else{var M=f(e),O=M==E||M==C;if(y(e))return u(e,t);if(M==D||M==b||O&&!k){if(A=m(O?{}:e),!t)return l(e,s(A,e))}else{if(!H[M])return k?e:{};A=d(e,M,r,t)}}S||(S=new i);var P=S.get(e);if(P)return P;if(S.set(e,A),!T)var I=n?p(e):_(e);return o(I||e,function(i,o){I&&(o=i,i=e[o]),a(A,o,r(i,t,n,x,o,e,S))}),A}var i=n(828),o=n(857),a=n(765),s=n(858),u=n(859),c=n(860),l=n(861),p=n(864),f=n(867),h=n(873),d=n(874),m=n(889),v=n(800),y=n(892),g=n(781),_=n(794),b="[object Arguments]",x="[object Array]",w="[object Boolean]",k="[object Date]",S="[object Error]",E="[object Function]",C="[object GeneratorFunction]",A="[object Map]",T="[object Number]",D="[object Object]",M="[object RegExp]",O="[object Set]",P="[object String]",I="[object Symbol]",N="[object WeakMap]",R="[object ArrayBuffer]",j="[object DataView]",F="[object Float32Array]",B="[object Float64Array]",L="[object Int8Array]",z="[object Int16Array]",q="[object Int32Array]",U="[object Uint8Array]",W="[object Uint8ClampedArray]",K="[object Uint16Array]",V="[object Uint32Array]",H={};H[b]=H[x]=H[R]=H[j]=H[w]=H[k]=H[F]=H[B]=H[L]=H[z]=H[q]=H[A]=H[T]=H[D]=H[M]=H[O]=H[P]=H[I]=H[U]=H[W]=H[K]=H[V]=!0,H[S]=H[E]=H[N]=!1,e.exports=r},[1204,829,836,837,838,839,840],function(e,t,n){function r(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var i=n(830),o=n(831),a=n(833),s=n(834),u=n(835);r.prototype.clear=i,r.prototype.delete=o,r.prototype.get=a,r.prototype.has=s,r.prototype.set=u,e.exports=r},231,[1190,832],[1191,767],[1192,832],[1193,832],[1194,832],[1205,829],252,253,254,[1206,829,841,842],[1195,778,784],function(e,t,n){function r(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var i=n(843),o=n(851),a=n(854),s=n(855),u=n(856);r.prototype.clear=i,r.prototype.delete=o,r.prototype.get=a,r.prototype.has=s,r.prototype.set=u,e.exports=r},[1180,844,829,841],function(e,t,n){function r(e){var t=-1,n=e?e.length:0;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var i=n(845),o=n(847),a=n(848),s=n(849),u=n(850);r.prototype.clear=i,r.prototype.delete=o,r.prototype.get=a,r.prototype.has=s,r.prototype.set=u,e.exports=r},[1181,846],[1182,778],226,[1187,846],[1188,846],[1189,846],[1196,852],[1197,853],241,[1198,852],[1199,852],[1200,852],function(e,t){function n(e,t){for(var n=-1,r=e?e.length:0;++n<r&&t(e[n],n,e)!==!1;);return e}e.exports=n},[1234,768,794],[1236,784],690,function(e,t,n){function r(e,t){return i(e,o(e),t)}var i=n(768),o=n(862);e.exports=r},function(e,t,n){var r=n(803),i=n(863),o=Object.getOwnPropertySymbols,a=o?r(o,Object):i;e.exports=a},693,[1237,865,862,794],[1238,866,800],696,function(e,t,n){var r=n(868),i=n(841),o=n(869),a=n(870),s=n(871),u=n(872),c=n(786),l="[object Map]",p="[object Object]",f="[object Promise]",h="[object Set]",d="[object WeakMap]",m="[object DataView]",v=Object.prototype,y=v.toString,g=c(r),_=c(i),b=c(o),x=c(a),w=c(s),k=u;(r&&k(new r(new ArrayBuffer(1)))!=m||i&&k(new i)!=l||o&&k(o.resolve())!=f||a&&k(new a)!=h||s&&k(new s)!=d)&&(k=function(e){var t=y.call(e),n=t==p?e.constructor:void 0,r=n?c(n):void 0;if(r)switch(r){case g:return m;case _:return l;case b:return f;case x:return h;case w:return d}return t}),e.exports=k},[1214,778,784],[1215,778,784],[1216,778,784],[1217,778,784],function(e,t){function n(e){return i.call(e)}var r=Object.prototype,i=r.toString;e.exports=n},700,[1239,875,877,878,882,883,886,888],[1240,876],[1207,784],[1241,875],function(e,t,n){function r(e,t,n){var r=t?n(a(e),!0):a(e);return o(r,i,new e.constructor)}var i=n(879),o=n(880),a=n(881);e.exports=r},705,function(e,t){function n(e,t,n,r){var i=-1,o=e?e.length:0;for(r&&o&&(n=e[++i]);++i<o;)n=t(n,e[i],i,e);return n}e.exports=n},266,706,function(e,t,n){function r(e,t,n){var r=t?n(a(e),!0):a(e);return o(r,i,new e.constructor)}var i=n(884),o=n(880),a=n(885);e.exports=r},708,267,[1242,887],[1177,784],[1243,875],[1244,890,891,793],function(e,t,n){var r=n(781),i=Object.create,o=function(){function e(){}return function(t){if(!r(t))return{};if(i)return i(t);e.prototype=prototype;var n=new e;return e.prototype=void 0,n}}();e.exports=o},[1179,803],[1209,784,893],275,function(e,t,n){var r=n(895),i=n(934),o=r(i);e.exports=o},[1201,896,790,794],[1202,897,916,771,800,931],[1203,898,913,915],function(e,t,n){function r(e,t,n,r){var u=n.length,c=u,l=!r;if(null==e)return!c;for(e=Object(e);u--;){var p=n[u];if(l&&p[2]?p[1]!==e[p[0]]:!(p[0]in e))return!1}for(;++u<c;){p=n[u];var f=p[0],h=e[f],d=p[1];if(l&&p[2]){if(void 0===h&&!(f in e))return!1}else{var m=new i;if(r)var v=r(h,d,f,e,t,m);if(!(void 0===v?o(d,h,r,a|s,m):v))return!1}}return!0}var i=n(828),o=n(899),a=1,s=2;e.exports=r},function(e,t,n){function r(e,t,n,s,u){return e===t||(null==e||null==t||!o(e)&&!a(t)?e!==e&&t!==t:i(e,t,r,n,s,u))}var i=n(900),o=n(781),a=n(799);e.exports=r},function(e,t,n){function r(e,t,n,r,m,y){var g=c(e),_=c(t),b=h,x=h;g||(b=u(e),b=b==f?d:b),_||(x=u(t),x=x==f?d:x);var w=b==d,k=x==d,S=b==x;if(S&&!w)return y||(y=new i),g||l(e)?o(e,t,n,r,m,y):a(e,t,b,n,r,m,y);if(!(m&p)){var E=w&&v.call(e,"__wrapped__"),C=k&&v.call(t,"__wrapped__");if(E||C){var A=E?e.value():e,T=C?t.value():t;return y||(y=new i),n(A,T,r,m,y)}}return!!S&&(y||(y=new i),s(e,t,n,r,m,y))}var i=n(828),o=n(901),a=n(907),s=n(908),u=n(867),c=n(800),l=n(909),p=2,f="[object Arguments]",h="[object Array]",d="[object Object]",m=Object.prototype,v=m.hasOwnProperty;e.exports=r},function(e,t,n){function r(e,t,n,r,c,l){var p=c&u,f=e.length,h=t.length;if(f!=h&&!(p&&h>f))return!1;var d=l.get(e);if(d&&l.get(t))return d==t;var m=-1,v=!0,y=c&s?new i:void 0;for(l.set(e,t),l.set(t,e);++m<f;){var g=e[m],_=t[m];if(r)var b=p?r(_,g,m,t,e,l):r(g,_,m,e,t,l);if(void 0!==b){if(b)continue;v=!1;break}if(y){if(!o(t,function(e,t){if(!a(y,t)&&(g===e||n(g,e,r,c,l)))return y.push(t)})){v=!1;break}}else if(g!==_&&!n(g,_,r,c,l)){v=!1;break}}return l.delete(e),l.delete(t),v}var i=n(902),o=n(905),a=n(906),s=1,u=2;e.exports=r},function(e,t,n){function r(e){var t=-1,n=e?e.length:0;for(this.__data__=new i;++t<n;)this.add(e[t])}var i=n(842),o=n(903),a=n(904);r.prototype.add=r.prototype.push=o,r.prototype.has=a,e.exports=r},260,261,function(e,t){function n(e,t){for(var n=-1,r=e?e.length:0;++n<r;)if(t(e[n],n,e))return!0;return!1}e.exports=n},263,function(e,t,n){function r(e,t,n,r,i,k,E){switch(n){case w:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case x:return!(e.byteLength!=t.byteLength||!r(new o(e),new o(t)));case f:case h:case v:return a(+e,+t);case d:return e.name==t.name&&e.message==t.message;case y:case _:return e==t+"";case m:var C=u;case g:var A=k&p;if(C||(C=c),e.size!=t.size&&!A)return!1;var T=E.get(e);if(T)return T==t;k|=l,E.set(e,t);var D=s(C(e),C(t),r,i,k,E);return E.delete(e),D;case b:if(S)return S.call(e)==S.call(t)}return!1}var i=n(887),o=n(876),a=n(767),s=n(901),u=n(881),c=n(885),l=1,p=2,f="[object Boolean]",h="[object Date]",d="[object Error]",m="[object Map]",v="[object Number]",y="[object RegExp]",g="[object Set]",_="[object String]",b="[object Symbol]",x="[object ArrayBuffer]",w="[object DataView]",k=i?i.prototype:void 0,S=k?k.valueOf:void 0;e.exports=r},function(e,t,n){function r(e,t,n,r,a,u){var c=a&o,l=i(e),p=l.length,f=i(t),h=f.length;if(p!=h&&!c)return!1;for(var d=p;d--;){var m=l[d];if(!(c?m in t:s.call(t,m)))return!1}var v=u.get(e);if(v&&u.get(t))return v==t;var y=!0;u.set(e,t),u.set(t,e);for(var g=c;++d<p;){m=l[d];var _=e[m],b=t[m];if(r)var x=c?r(b,_,m,t,e,u):r(_,b,m,e,t,u);if(!(void 0===x?_===b||n(_,b,r,a,u):x)){y=!1;break}g||(g="constructor"==m)}if(y&&!g){var w=e.constructor,k=t.constructor;w!=k&&"constructor"in e&&"constructor"in t&&!("function"==typeof w&&w instanceof w&&"function"==typeof k&&k instanceof k)&&(y=!1)}return u.delete(e),u.delete(t),y}var i=n(794),o=2,a=Object.prototype,s=a.hasOwnProperty;e.exports=r},[1210,910,911,912],function(e,t,n){function r(e){return o(e)&&i(e.length)&&!!M[P.call(e)]}var i=n(791),o=n(799),a="[object Arguments]",s="[object Array]",u="[object Boolean]",c="[object Date]",l="[object Error]",p="[object Function]",f="[object Map]",h="[object Number]",d="[object Object]",m="[object RegExp]",v="[object Set]",y="[object String]",g="[object WeakMap]",_="[object ArrayBuffer]",b="[object DataView]",x="[object Float32Array]",w="[object Float64Array]",k="[object Int8Array]",S="[object Int16Array]",E="[object Int32Array]",C="[object Uint8Array]",A="[object Uint8ClampedArray]",T="[object Uint16Array]",D="[object Uint32Array]",M={};M[x]=M[w]=M[k]=M[S]=M[E]=M[C]=M[A]=M[T]=M[D]=!0,M[a]=M[s]=M[_]=M[u]=M[b]=M[c]=M[l]=M[p]=M[f]=M[h]=M[d]=M[m]=M[v]=M[y]=M[g]=!1;var O=Object.prototype,P=O.toString;e.exports=r},280,function(e,t,n){(function(e){var r=n(785),i="object"==typeof t&&t&&!t.nodeType&&t,o=i&&"object"==typeof e&&e&&!e.nodeType&&e,a=o&&o.exports===i,s=a&&r.process,u=function(){try{return s&&s.binding("util")}catch(e){}}();e.exports=u}).call(t,n(161)(e))},[1218,914,794],[1219,781],293,function(e,t,n){function r(e,t){return s(e)&&u(t)?c(l(e),t):function(n){var r=o(n,e);return void 0===r&&r===t?a(n,e):i(t,r,void 0,p|f)}}var i=n(899),o=n(917),a=n(928),s=n(926),u=n(914),c=n(915),l=n(927),p=1,f=2;e.exports=r},[1220,918],function(e,t,n){function r(e,t){t=o(t,e)?[t]:i(t);for(var n=0,r=t.length;null!=e&&n<r;)e=e[a(t[n++])];return n&&n==r?e:void 0}var i=n(919),o=n(926),a=n(927);e.exports=r},function(e,t,n){function r(e){return i(e)?e:o(e)}var i=n(800),o=n(920);e.exports=r},function(e,t,n){var r=n(921),i=n(923),o=/^\./,a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,s=/\\(\\)?/g,u=r(function(e){e=i(e);var t=[];return o.test(e)&&t.push(""),e.replace(a,function(e,n,r,i){t.push(r?i.replace(s,"$1"):n||e)}),t});e.exports=u},[1222,922],function(e,t,n){function r(e,t){if("function"!=typeof e||t&&"function"!=typeof t)throw new TypeError(o);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(r.Cache||i),n}var i=n(842),o="Expected a function";r.Cache=i,e.exports=r},function(e,t,n){function r(e){return null==e?"":i(e)}var i=n(924);e.exports=r},function(e,t,n){function r(e){if("string"==typeof e)return e;if(o(e))return u?u.call(e):"";var t=e+"";return"0"==t&&1/e==-a?"-0":t}var i=n(887),o=n(925),a=1/0,s=i?i.prototype:void 0,u=s?s.toString:void 0;e.exports=r},function(e,t,n){function r(e){return"symbol"==typeof e||i(e)&&s.call(e)==o}var i=n(799),o="[object Symbol]",a=Object.prototype,s=a.toString;e.exports=r},[1221,800,925],[1223,925],[1224,929,930],303,function(e,t,n){function r(e,t,n){t=u(t,e)?[t]:i(t);for(var r=-1,p=t.length,f=!1;++r<p;){var h=l(t[r]);if(!(f=null!=e&&n(e,h)))break;e=e[h]}return f||++r!=p?f:(p=e?e.length:0,!!p&&c(p)&&s(h,p)&&(a(e)||o(e)))}var i=n(919),o=n(797),a=n(800),s=n(792),u=n(926),c=n(791),l=n(927);e.exports=r},[1225,932,933,926,927],307,[1226,918],function(e,t,n){function r(e,t,n){var r=e?e.length:0;if(!r)return-1;var u=null==n?0:a(n);return u<0&&(u=s(r+u,0)),i(e,o(t,3),u)}var i=n(935),o=n(896),a=n(936),s=Math.max;e.exports=r},310,[1227,937],[1228,938],[1229,781,925],function(e,t,n){function r(e){if(!o(e)||f.call(e)!=a)return!1;var t=i(e);if(null===t)return!0;var n=l.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&c.call(n)==p}var i=n(891),o=n(799),a="[object Object]",s=Function.prototype,u=Object.prototype,c=s.toString,l=u.hasOwnProperty,p=c.call(Object),f=u.toString;e.exports=r},function(e,t,n){function r(e){return"string"==typeof e||!i(e)&&o(e)&&u.call(e)==a}var i=n(800),o=n(799),a="[object String]",s=Object.prototype,u=s.toString;e.exports=r},function(e,t,n){var r=n(942),i=n(943),o=n(945),a=n(927),s=o(function(e,t){return null==e?{}:i(e,r(t,a))});e.exports=s},function(e,t){function n(e,t){for(var n=-1,r=e?e.length:0,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}e.exports=n},function(e,t,n){function r(e,t){return e=Object(e),i(e,t,function(t,n){return n in e})}var i=n(944);e.exports=r},function(e,t,n){function r(e,t,n){for(var r=-1,o=t.length,a={};++r<o;){var s=t[r],u=e[s];n(u,s)&&i(a,s,u)}return a}var i=n(766);e.exports=r},[1245,946,772,774],function(e,t,n){function r(e){var t=e?e.length:0;return t?i(e,1):[]}var i=n(947);e.exports=r},[1246,866,948],[1247,887,797,800],function(e,t,n){"use strict";var r=n(950),i=n(953),o=n(952);e.exports={formats:o,parse:i,stringify:r}},function(e,t,n){"use strict";var r=n(951),i=n(952),o={brackets:function(e){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},a=Date.prototype.toISOString,s={delimiter:"&",encode:!0,encoder:r.encode,encodeValuesOnly:!1,serializeDate:function(e){return a.call(e)},skipNulls:!1,strictNullHandling:!1},u=function e(t,n,i,o,a,s,u,c,l,p,f,h){var d=t;if("function"==typeof u)d=u(n,d);else if(d instanceof Date)d=p(d);else if(null===d){if(o)return s&&!h?s(n):n;d=""}if("string"==typeof d||"number"==typeof d||"boolean"==typeof d||r.isBuffer(d)){if(s){var m=h?n:s(n);return[f(m)+"="+f(s(d))]}return[f(n)+"="+f(String(d))]}var v=[];if("undefined"==typeof d)return v;var y;if(Array.isArray(u))y=u;else{var g=Object.keys(d);y=c?g.sort(c):g}for(var _=0;_<y.length;++_){var b=y[_];a&&null===d[b]||(v=Array.isArray(d)?v.concat(e(d[b],i(n,b),i,o,a,s,u,c,l,p,f,h)):v.concat(e(d[b],n+(l?"."+b:"["+b+"]"),i,o,a,s,u,c,l,p,f,h)))}return v};e.exports=function(e,t){var n=e,r=t||{};if(null!==r.encoder&&void 0!==r.encoder&&"function"!=typeof r.encoder)throw new TypeError("Encoder has to be a function.");var a="undefined"==typeof r.delimiter?s.delimiter:r.delimiter,c="boolean"==typeof r.strictNullHandling?r.strictNullHandling:s.strictNullHandling,l="boolean"==typeof r.skipNulls?r.skipNulls:s.skipNulls,p="boolean"==typeof r.encode?r.encode:s.encode,f="function"==typeof r.encoder?r.encoder:s.encoder,h="function"==typeof r.sort?r.sort:null,d="undefined"!=typeof r.allowDots&&r.allowDots,m="function"==typeof r.serializeDate?r.serializeDate:s.serializeDate,v="boolean"==typeof r.encodeValuesOnly?r.encodeValuesOnly:s.encodeValuesOnly;if("undefined"==typeof r.format)r.format=i.default;else if(!Object.prototype.hasOwnProperty.call(i.formatters,r.format))throw new TypeError("Unknown format option provided.");var y,g,_=i.formatters[r.format];"function"==typeof r.filter?(g=r.filter,n=g("",n)):Array.isArray(r.filter)&&(g=r.filter,y=g);var b=[];if("object"!=typeof n||null===n)return"";var x;x=r.arrayFormat in o?r.arrayFormat:"indices"in r?r.indices?"indices":"repeat":"indices";var w=o[x];y||(y=Object.keys(n)),h&&y.sort(h);for(var k=0;k<y.length;++k){var S=y[k];l&&null===n[S]||(b=b.concat(u(n[S],S,w,c,l,p?f:null,g,h,d,m,_,v)))}return b.join(a)}},function(e,t){"use strict";var n=Object.prototype.hasOwnProperty,r=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}();t.arrayToObject=function(e,t){for(var n=t&&t.plainObjects?Object.create(null):{},r=0;r<e.length;++r)"undefined"!=typeof e[r]&&(n[r]=e[r]);return n},t.merge=function(e,r,i){if(!r)return e;if("object"!=typeof r){if(Array.isArray(e))e.push(r);else{if("object"!=typeof e)return[e,r];(i.plainObjects||i.allowPrototypes||!n.call(Object.prototype,r))&&(e[r]=!0)}return e}if("object"!=typeof e)return[e].concat(r);var o=e;return Array.isArray(e)&&!Array.isArray(r)&&(o=t.arrayToObject(e,i)),Array.isArray(e)&&Array.isArray(r)?(r.forEach(function(r,o){n.call(e,o)?e[o]&&"object"==typeof e[o]?e[o]=t.merge(e[o],r,i):e.push(r):e[o]=r}),e):Object.keys(r).reduce(function(e,n){var o=r[n];return Object.prototype.hasOwnProperty.call(e,n)?e[n]=t.merge(e[n],o,i):e[n]=o,e},o)},t.decode=function(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(t){return e}},t.encode=function(e){if(0===e.length)return e;for(var t="string"==typeof e?e:String(e),n="",i=0;i<t.length;++i){var o=t.charCodeAt(i);45===o||46===o||95===o||126===o||o>=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122?n+=t.charAt(i):o<128?n+=r[o]:o<2048?n+=r[192|o>>6]+r[128|63&o]:o<55296||o>=57344?n+=r[224|o>>12]+r[128|o>>6&63]+r[128|63&o]:(i+=1,o=65536+((1023&o)<<10|1023&t.charCodeAt(i)),n+=r[240|o>>18]+r[128|o>>12&63]+r[128|o>>6&63]+r[128|63&o])}return n},t.compact=function(e,n){if("object"!=typeof e||null===e)return e;var r=n||[],i=r.indexOf(e);if(i!==-1)return r[i];if(r.push(e),Array.isArray(e)){for(var o=[],a=0;a<e.length;++a)e[a]&&"object"==typeof e[a]?o.push(t.compact(e[a],r)):"undefined"!=typeof e[a]&&o.push(e[a]);return o}var s=Object.keys(e);return s.forEach(function(n){e[n]=t.compact(e[n],r)}),e},t.isRegExp=function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},t.isBuffer=function(e){return null!==e&&"undefined"!=typeof e&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}},function(e,t){"use strict";var n=String.prototype.replace,r=/%20/g;e.exports={default:"RFC3986",formatters:{RFC1738:function(e){return n.call(e,r,"+")},RFC3986:function(e){return e}},RFC1738:"RFC1738",RFC3986:"RFC3986"}},function(e,t,n){"use strict";var r=n(951),i=Object.prototype.hasOwnProperty,o={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:r.decode,delimiter:"&",depth:5,parameterLimit:1e3,plainObjects:!1,strictNullHandling:!1},a=function(e,t){for(var n={},r=e.split(t.delimiter,t.parameterLimit===1/0?void 0:t.parameterLimit),o=0;o<r.length;++o){var a,s,u=r[o],c=u.indexOf("]=")===-1?u.indexOf("="):u.indexOf("]=")+1;c===-1?(a=t.decoder(u),s=t.strictNullHandling?null:""):(a=t.decoder(u.slice(0,c)),s=t.decoder(u.slice(c+1))),i.call(n,a)?n[a]=[].concat(n[a]).concat(s):n[a]=s}return n},s=function(e,t,n){if(!e.length)return t;var r,i=e.shift();if("[]"===i)r=[],r=r.concat(s(e,t,n));else{r=n.plainObjects?Object.create(null):{};var o="["===i.charAt(0)&&"]"===i.charAt(i.length-1)?i.slice(1,-1):i,a=parseInt(o,10);!isNaN(a)&&i!==o&&String(a)===o&&a>=0&&n.parseArrays&&a<=n.arrayLimit?(r=[],r[a]=s(e,t,n)):r[o]=s(e,t,n)}return r},u=function(e,t,n){if(e){var r=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,o=/(\[[^[\]]*])/,a=/(\[[^[\]]*])/g,u=o.exec(r),c=u?r.slice(0,u.index):r,l=[];if(c){if(!n.plainObjects&&i.call(Object.prototype,c)&&!n.allowPrototypes)return;l.push(c)}for(var p=0;null!==(u=a.exec(r))&&p<n.depth;){if(p+=1,!n.plainObjects&&i.call(Object.prototype,u[1].slice(1,-1))&&!n.allowPrototypes)return;l.push(u[1])}return u&&l.push("["+r.slice(u.index)+"]"),s(l,t,n)}};e.exports=function(e,t){var n=t||{};if(null!==n.decoder&&void 0!==n.decoder&&"function"!=typeof n.decoder)throw new TypeError("Decoder has to be a function.");if(n.delimiter="string"==typeof n.delimiter||r.isRegExp(n.delimiter)?n.delimiter:o.delimiter,n.depth="number"==typeof n.depth?n.depth:o.depth,n.arrayLimit="number"==typeof n.arrayLimit?n.arrayLimit:o.arrayLimit,n.parseArrays=n.parseArrays!==!1,n.decoder="function"==typeof n.decoder?n.decoder:o.decoder,n.allowDots="boolean"==typeof n.allowDots?n.allowDots:o.allowDots,n.plainObjects="boolean"==typeof n.plainObjects?n.plainObjects:o.plainObjects,n.allowPrototypes="boolean"==typeof n.allowPrototypes?n.allowPrototypes:o.allowPrototypes,n.parameterLimit="number"==typeof n.parameterLimit?n.parameterLimit:o.parameterLimit,n.strictNullHandling="boolean"==typeof n.strictNullHandling?n.strictNullHandling:o.strictNullHandling,""===e||null===e||"undefined"==typeof e)return n.plainObjects?Object.create(null):{};for(var i="string"==typeof e?a(e,n):e,s=n.plainObjects?Object.create(null):{},c=Object.keys(i),l=0;l<c.length;++l){var p=c[l],f=u(p,i[p],n);s=r.merge(s,f,n)}return r.compact(s)}},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return{statePlugins:{auth:{reducers:a.default,actions:u,selectors:l},spec:{wrapActions:f}}}};var o=n(955),a=i(o),s=n(956),u=r(s),c=n(957),l=r(c),p=n(958),f=r(p)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i,o=n(137),a=r(o),s=n(184),u=r(s),c=n(168),l=n(183),p=n(956);t.default=(i={},(0,a.default)(i,p.SHOW_AUTH_POPUP,function(e,t){var n=t.payload;return e.set("showDefinitions",n)}),(0,a.default)(i,p.AUTHORIZE,function(e,t){var n=t.payload,r=(0,c.fromJS)(n),i=e.get("authorized")||(0,c.Map)();return r.entrySeq().forEach(function(e){var t=(0,u.default)(e,2),n=t[0],r=t[1],o=r.getIn(["schema","type"]);if("apiKey"===o)i=i.set(n,r);else if("basic"===o){var a=r.getIn(["value","username"]),s=r.getIn(["value","password"]);i=i.setIn([n,"value"],{username:a,header:"Basic "+(0,l.btoa)(a+":"+s)}),i=i.setIn([n,"schema"],r.get("schema"))}}),e.set("authorized",i)}),(0,a.default)(i,p.AUTHORIZE_OAUTH2,function(e,t){var n=t.payload,r=n.auth,i=n.token,o=void 0;return r.token=i,o=(0,c.fromJS)(r),e.setIn(["authorized",o.get("name")],o)}),(0,a.default)(i,p.LOGOUT,function(e,t){var n=t.payload,r=e.get("authorized").withMutations(function(e){n.forEach(function(t){e.delete(t)})});return e.set("authorized",r)}),(0,a.default)(i,p.CONFIGURE_AUTH,function(e,t){var n=t.payload;return e.set("configs",n)}),i)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return{type:v,payload:e}}function o(e){return{type:y,payload:e}}function a(e){return{type:g,payload:e}}function s(e){return{type:_,payload:e}}function u(e){return{type:b,payload:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.authorizeRequest=t.authorizeAccessCode=t.authorizeApplication=t.authorizePassword=t.preAuthorizeImplicit=t.CONFIGURE_AUTH=t.VALIDATE=t.AUTHORIZE_OAUTH2=t.PRE_AUTHORIZE_OAUTH2=t.LOGOUT=t.AUTHORIZE=t.SHOW_AUTH_POPUP=void 0;var c=n(141),l=r(c),p=n(57),f=r(p);t.showDefinitions=i,t.authorize=o,t.logout=a,t.authorizeOauth2=s,t.configureAuth=u;var h=n(177),d=r(h),m=n(183),v=t.SHOW_AUTH_POPUP="show_popup",y=t.AUTHORIZE="authorize",g=t.LOGOUT="logout",_=(t.PRE_AUTHORIZE_OAUTH2="pre_authorize_oauth2",t.AUTHORIZE_OAUTH2="authorize_oauth2"),b=(t.VALIDATE="validate",t.CONFIGURE_AUTH="configure_auth"),x=" ";t.preAuthorizeImplicit=function(e){return function(t){var n=t.authActions,r=t.errActions,i=e.auth,o=e.token,a=e.isValid,s=i.schema,u=i.name,c=s.get("flow");return delete d.default.swaggerUIRedirectOauth2,"accessCode"===c||a||r.newAuthErr({authId:u,source:"auth",level:"warning",message:"Authorization may be unsafe, passed state was changed in server Passed state wasn't returned from auth server"}),o.error?void r.newAuthErr({authId:u,source:"auth",level:"error",message:(0,f.default)(o)}):void n.authorizeOauth2({auth:i,token:o})}},t.authorizePassword=function(e){return function(t){var n=t.authActions,r=e.schema,i=e.name,o=e.username,a=e.password,s=e.passwordType,u=e.clientId,c=e.clientSecret,p={grant_type:"password",scopes:encodeURIComponent(e.scopes.join(x))},f={},h={};return"basic"===s?h.Authorization="Basic "+(0,m.btoa)(o+":"+a):((0,l.default)(p,{username:o},{password:a}),"query"===s?(u&&(f.client_id=u),c&&(f.client_secret=c)):h.Authorization="Basic "+(0, +m.btoa)(u+":"+c)),n.authorizeRequest({body:(0,m.buildFormData)(p),url:r.get("tokenUrl"),name:i,headers:h,query:f,auth:e})}},t.authorizeApplication=function(e){return function(t){var n=t.authActions,r=e.schema,i=e.scopes,o=e.name,a=e.clientId,s=e.clientSecret,u={Authorization:"Basic "+(0,m.btoa)(a+":"+s)},c={grant_type:"client_credentials",scope:i.join(x)};return n.authorizeRequest({body:(0,m.buildFormData)(c),name:o,url:r.get("tokenUrl"),auth:e,headers:u})}},t.authorizeAccessCode=function(e){var t=e.auth,n=e.redirectUrl;return function(e){var r=e.authActions,i=t.schema,o=t.name,a=t.clientId,s=t.clientSecret,u={grant_type:"authorization_code",code:t.code,client_id:a,client_secret:s,redirect_uri:n};return r.authorizeRequest({body:(0,m.buildFormData)(u),name:o,url:i.get("tokenUrl"),auth:t})}},t.authorizeRequest=function(e){return function(t){var n=t.fn,r=t.authActions,i=t.errActions,o=t.authSelectors,a=e.body,s=e.query,u=void 0===s?{}:s,c=e.headers,p=void 0===c?{}:c,h=e.name,d=e.url,m=e.auth,v=o.getConfigs()||{},y=v.additionalQueryStringParams,g=d;for(var _ in y)d+="&"+_+"="+encodeURIComponent(y[_]);var b=(0,l.default)({Accept:"application/json, text/plain, */*","Access-Control-Allow-Origin":"*","Content-Type":"application/x-www-form-urlencoded"},p);n.fetch({url:g,method:"post",headers:b,query:u,body:a}).then(function(e){var t=JSON.parse(e.data),n=t&&(t.error||""),o=t&&(t.parseError||"");return e.ok?n||o?void i.newAuthErr({authId:h,level:"error",source:"auth",message:(0,f.default)(t)}):void r.authorizeOauth2({auth:m,token:t}):void i.newAuthErr({authId:h,level:"error",source:"auth",message:e.statusText})}).catch(function(e){var t=new Error(e);i.newAuthErr({authId:h,level:"error",source:"auth",message:t.message})})}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.getConfigs=t.isAuthorized=t.authorized=t.getDefinitionsByNames=t.definitionsToAuthorize=t.shownDefinitions=void 0;var i=n(60),o=r(i),a=n(184),s=r(a),u=n(430),c=n(168),l=function(e){return e};t.shownDefinitions=(0,u.createSelector)(l,function(e){return e.get("showDefinitions")}),t.definitionsToAuthorize=(0,u.createSelector)(l,function(){return function(e){var t=e.specSelectors,n=t.securityDefinitions(),r=(0,c.List)();return n.entrySeq().forEach(function(e){var t=(0,s.default)(e,2),n=t[0],i=t[1],o=(0,c.Map)();o=o.set(n,i),r=r.push(o)}),r}}),t.getDefinitionsByNames=function(e,t){return function(e){var n=e.specSelectors,r=n.securityDefinitions(),i=(0,c.List)();return t.valueSeq().forEach(function(e){var t=(0,c.Map)();e.entrySeq().forEach(function(e){var n=(0,s.default)(e,2),i=n[0],o=n[1],a=r.get(i),u=void 0;"oauth2"===a.get("type")&&o.size&&(u=a.get("scopes"),u.keySeq().forEach(function(e){o.contains(e)||(u=u.delete(e))}),a=a.set("allowedScopes",u)),t=t.set(i,a)}),i=i.push(t)}),i}},t.authorized=(0,u.createSelector)(l,function(e){return e.get("authorized")||(0,c.Map)()}),t.isAuthorized=function(e,t){return function(e){var n=e.authSelectors,r=n.authorized();return c.List.isList(t)?!!t.toJS().filter(function(e){var t=!0;return(0,o.default)(e).map(function(e){return!t||!!r.get(e)}).indexOf(!1)===-1}).length:null}},t.getConfigs=(0,u.createSelector)(l,function(e){return e.get("configs")})},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.execute=void 0;var i=n(446),o=r(i);t.execute=function(e,t){var n=t.authSelectors,r=t.specSelectors;return function(t){var i=t.path,a=t.method,s=t.operation,u=t.extras,c={authorized:n.authorized()&&n.authorized().toJS(),definitions:r.securityDefinitions()&&r.securityDefinitions().toJS(),specSecurity:r.security()&&r.security().toJS()};return e((0,o.default)({path:i,method:a,operation:s,securities:c},u))}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return{fn:{shallowEqualKeys:r.shallowEqualKeys,transformPathToArray:i.transformPathToArray}}};var r=n(183),i=n(960)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if("instance."===e.slice(0,9))var n=e.slice(9);else var n=e;var r=[];return n.split(".").map(function(e){if(e.includes("[")){var t=parseInt(e.match(/\[(.*)\]/)[1]),n=e.slice(0,e.indexOf("["));return[n,t.toString()]}return e}).reduce(function(e,t){return e.concat(t)},[]).concat([""]).reduce(function(e,n){var i=r.length?(0,s.default)(t,r):t;return(0,s.default)(i,o(e,n))?(e.length&&r.push(e),n.length&&r.push(n),""):""+e+(e.length?".":"")+n},""),"undefined"!=typeof(0,s.default)(t,r)?r:null}function o(e,t){var n=[];return e.length&&n.push(e),t.length&&n.push(t),n}Object.defineProperty(t,"__esModule",{value:!0}),t.transformPathToArray=i;var a=n(295),s=r(a)},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(){return{components:a}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(962),a=r(o)},function(e,t,n){"use strict";var r=n(183),i=n(963);i.keys().forEach(function(t){if("./index.js"!==t){var n=i(t);e.exports[(0,r.pascalCaseFilename)(t)]=n.default?n.default:n}})},function(e,t,n){function r(e){return n(i(e))}function i(e){return o[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var o={"./index.js":962,"./split-pane-mode.jsx":964};r.keys=function(){return Object.keys(o)},r.resolve=i,e.exports=r,r.id=963},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=n(965),y=r(v);n(1006);var g=["split-pane-mode"],_="left",b="right",x="both",w=function(e){function t(){var e,n,r,i;(0,s.default)(this,t);for(var a=arguments.length,u=Array(a),c=0;c<a;c++)u[c]=arguments[c];return n=r=(0,p.default)(this,(e=t.__proto__||(0,o.default)(t)).call.apply(e,[this].concat(u))),r.onDragFinished=function(){var e=r.props,t=e.threshold,n=e.layoutActions,i=r.refs.splitPane.state,o=i.position,a=i.draggedSize;r.draggedSize=a;var s=o<=t,u=a<=t;n.changeMode(g,s?b:u?_:x)},r.sizeFromMode=function(e,t){return e===_?(r.draggedSize=null,"0px"):e===b?(r.draggedSize=null,"100%"):r.draggedSize||t},i=n,(0,p.default)(r,i)}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props,t=e.children,n=e.layoutSelectors,r=n.whatMode(g),i=r===b?m.default.createElement("noscript",null):t[0],o=r===_?m.default.createElement("noscript",null):t[1],a=this.sizeFromMode(r,"50%");return m.default.createElement(y.default,{disabledClass:"",ref:"splitPane",split:"vertical",defaultSize:"50%",primary:"second",minSize:0,size:a,onDragFinished:this.onDragFinished,allowResize:r!==_&&r!==b,resizerStyle:{flex:"0 0 auto",position:"relative"}},i,o)}}]),t}(m.default.Component);w.propTypes={threshold:d.PropTypes.number,children:d.PropTypes.array,layoutSelectors:d.PropTypes.object.isRequired,layoutActions:d.PropTypes.object.isRequired},w.defaultProps={threshold:100,children:[]},t.default=w},function(e,t,n){var r=n(966);e.exports=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e,t){if(e.selection)e.selection.empty();else try{t.getSelection().removeAllRanges()}catch(e){}}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),l=n(498),p=r(l),f=n(528),h=r(f),d=n(967),m=r(d),v=n(1002),y=r(v),g=n(1004),_=r(g),b=n(1005),x=r(b),w="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Safari/537.2",k=function(e){function t(){var e;i(this,t);for(var n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];var s=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(r)));return s.onMouseDown=s.onMouseDown.bind(s),s.onTouchStart=s.onTouchStart.bind(s),s.onMouseMove=s.onMouseMove.bind(s),s.onTouchMove=s.onTouchMove.bind(s),s.onMouseUp=s.onMouseUp.bind(s),s.state={active:!1,resized:!1},s}return a(t,e),c(t,[{key:"componentDidMount",value:function(){this.setSize(this.props,this.state),document.addEventListener("mouseup",this.onMouseUp),document.addEventListener("mousemove",this.onMouseMove),document.addEventListener("touchmove",this.onTouchMove)}},{key:"componentWillReceiveProps",value:function(e){this.setSize(e,this.state)}},{key:"componentWillUnmount",value:function(){document.removeEventListener("mouseup",this.onMouseUp),document.removeEventListener("mousemove",this.onMouseMove),document.removeEventListener("touchmove",this.onTouchMove)}},{key:"onMouseDown",value:function(e){var t=u({},e,{touches:[{clientX:e.clientX,clientY:e.clientY}]});this.onTouchStart(t)}},{key:"onTouchStart",value:function(e){if(this.props.allowResize){s(document,window);var t="vertical"===this.props.split?e.touches[0].clientX:e.touches[0].clientY;"function"==typeof this.props.onDragStarted&&this.props.onDragStarted(),this.setState({active:!0,position:t})}}},{key:"onMouseMove",value:function(e){var t=u({},e,{touches:[{clientX:e.clientX,clientY:e.clientY}]});this.onTouchMove(t)}},{key:"onTouchMove",value:function(e){if(this.props.allowResize&&this.state.active){s(document,window);var t="first"===this.props.primary,n=t?this.pane1:this.pane2;if(n){var r=h.default.findDOMNode(n);if(r.getBoundingClientRect){var i=r.getBoundingClientRect().width,o=r.getBoundingClientRect().height,a="vertical"===this.props.split?e.touches[0].clientX:e.touches[0].clientY,u="vertical"===this.props.split?i:o,c=this.state.position,l=t?c-a:a-c,p=this.props.maxSize;if(void 0!==this.props.maxSize&&this.props.maxSize<=0){var f=this.splitPane;p="vertical"===this.props.split?f.getBoundingClientRect().width+this.props.maxSize:f.getBoundingClientRect().height+this.props.maxSize}var d=u-l;d<this.props.minSize?d=this.props.minSize:void 0!==this.props.maxSize&&d>p?d=p:this.setState({position:a,resized:!0}),this.props.onChange&&this.props.onChange(d),this.setState({draggedSize:d}),n.setState({size:d})}}}}},{key:"onMouseUp",value:function(){this.props.allowResize&&this.state.active&&("function"==typeof this.props.onDragFinished&&this.props.onDragFinished(this.state.draggedSize),this.setState({active:!1}))}},{key:"setSize",value:function(e,t){var n="first"===this.props.primary?this.pane1:this.pane2,r=void 0;n&&(r=e.size||t&&t.draggedSize||e.defaultSize||e.minSize,n.setState({size:r}),e.size!==t.draggedSize&&this.setState({draggedSize:r}))}},{key:"render",value:function(){var e=this,t=this.props,n=t.split,r=t.allowResize,i=r?"":"disabled",o=u({},this.props.style||{},{display:"flex",flex:1,position:"relative",outline:"none",overflow:"hidden",MozUserSelect:"text",WebkitUserSelect:"text",msUserSelect:"text",userSelect:"text"});"vertical"===n?u(o,{flexDirection:"row",height:"100%",position:"absolute",left:0,right:0}):u(o,{flexDirection:"column",height:"100%",minHeight:"100%",position:"absolute",top:0,bottom:0,width:"100%"});var a=this.props.children,s=["SplitPane",this.props.className,n,i],c=this.props.prefixer.prefix(u({},this.props.paneStyle||{},this.props.pane1Style||{})),l=this.props.prefixer.prefix(u({},this.props.paneStyle||{},this.props.pane2Style||{}));return p.default.createElement("div",{className:s.join(" "),style:this.props.prefixer.prefix(o),ref:function(t){e.splitPane=t}},p.default.createElement(_.default,{ref:function(t){e.pane1=t},key:"pane1",className:"Pane1",style:c,split:n,size:"first"===this.props.primary?this.props.size||this.props.defaultSize||this.props.minSize:void 0},a[0]),p.default.createElement(x.default,{ref:function(t){e.resizer=t},key:"resizer",className:i,resizerClassName:this.props.resizerClassName,onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,onTouchEnd:this.onMouseUp,style:this.props.resizerStyle||{},split:n}),p.default.createElement(_.default,{ref:function(t){e.pane2=t},key:"pane2",className:"Pane2",style:l,split:n,size:"second"===this.props.primary?this.props.size||this.props.defaultSize||this.props.minSize:void 0},a[1]))}}]),t}(l.Component);k.propTypes={primary:l.PropTypes.oneOf(["first","second"]),minSize:l.PropTypes.oneOfType([p.default.PropTypes.string,p.default.PropTypes.number]),maxSize:l.PropTypes.oneOfType([p.default.PropTypes.string,p.default.PropTypes.number]),defaultSize:l.PropTypes.oneOfType([p.default.PropTypes.string,p.default.PropTypes.number]),size:l.PropTypes.oneOfType([p.default.PropTypes.string,p.default.PropTypes.number]),allowResize:l.PropTypes.bool,split:l.PropTypes.oneOf(["vertical","horizontal"]),onDragStarted:l.PropTypes.func,onDragFinished:l.PropTypes.func,onChange:l.PropTypes.func,prefixer:l.PropTypes.instanceOf(m.default).isRequired,style:y.default,resizerStyle:y.default,paneStyle:y.default,pane1Style:y.default,pane2Style:y.default,className:l.PropTypes.string,resizerClassName:l.PropTypes.string,children:l.PropTypes.arrayOf(l.PropTypes.node).isRequired},k.defaultProps={split:"vertical",minSize:50,allowResize:!0,prefixer:new m.default({userAgent:w}),primary:"first"},t.default=k,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=arguments[2],r=arguments[3];Object.keys(t).forEach(function(i){var o=e[i];Array.isArray(o)?[].concat(t[i]).forEach(function(t){e[i].indexOf(t)===-1&&e[i].splice(o.indexOf(n),r?0:1,t)}):e[i]=t[i]})}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=n(968),u=r(s),c=n(985),l=r(c),p=n(988),f=r(p),h=n(970),d=r(h),m=n(971),v=r(m),y=n(989),g=r(y),_=n(990),b=r(_),x=n(992),w=r(x),k=n(993),S=r(k),E=n(994),C=r(E),A=n(995),T=r(A),D=n(996),M=r(D),O=n(997),P=r(O),I=n(998),N=r(I),R=n(1e3),j=r(R),F=n(1001),B=r(F),L=[b.default,w.default,S.default,C.default,M.default,P.default,N.default,j.default,B.default,T.default],z=function(){function e(){var t=this,n=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];i(this,e);var r="undefined"!=typeof navigator?navigator.userAgent:void 0;if(this._userAgent=n.userAgent||r,this._keepUnprefixed=n.keepUnprefixed||!1,this._browserInfo=(0,l.default)(this._userAgent),!this._browserInfo||!this._browserInfo.prefix)return this._usePrefixAllFallback=!0,!1;this.cssPrefix=this._browserInfo.prefix.css,this.jsPrefix=this._browserInfo.prefix.inline,this.prefixedKeyframes=(0,f.default)(this._browserInfo);var o=this._browserInfo.browser&&g.default[this._browserInfo.browser];o?(this._requiresPrefix=Object.keys(o).filter(function(e){return o[e]>=t._browserInfo.version}).reduce(function(e,t){return e[t]=!0,e},{}),this._hasPropsRequiringPrefix=Object.keys(this._requiresPrefix).length>0):this._usePrefixAllFallback=!0}return a(e,[{key:"prefix",value:function(e){var t=this;return this._usePrefixAllFallback?(0,u.default)(e):this._hasPropsRequiringPrefix?(Object.keys(e).forEach(function(n){var r=e[n];r instanceof Object&&!Array.isArray(r)?e[n]=t.prefix(r):t._requiresPrefix[n]&&(e[t.jsPrefix+(0,d.default)(n)]=r,t._keepUnprefixed||delete e[n])}),Object.keys(e).forEach(function(n){[].concat(e[n]).forEach(function(r){L.forEach(function(i){o(e,i({property:n,value:r,styles:e,browserInfo:t._browserInfo,prefix:{js:t.jsPrefix,css:t.cssPrefix,keyframes:t.prefixedKeyframes},keepUnprefixed:t._keepUnprefixed,requiresPrefix:t._requiresPrefix}),r,t._keepUnprefixed)})})}),(0,v.default)(e)):e}}],[{key:"prefixAll",value:function(e){return(0,u.default)(e)}}]),e}();t.default=z,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return Object.keys(e).forEach(function(t){var n=e[t];n instanceof Object&&!Array.isArray(n)?e[t]=i(n):Object.keys(s.default).forEach(function(r){var i=s.default[r];i[t]&&(e[r+(0,c.default)(t)]=n)})}),Object.keys(e).forEach(function(t){[].concat(e[t]).forEach(function(n,r){M.forEach(function(r){return o(e,r(t,n))})})}),(0,p.default)(e)}function o(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];Object.keys(t).forEach(function(n){var r=e[n];Array.isArray(r)?[].concat(t[n]).forEach(function(t){var i=r.indexOf(t);i>-1&&e[n].splice(i,1),e[n].push(t)}):e[n]=t[n]})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var a=n(969),s=r(a),u=n(970),c=r(u),l=n(971),p=r(l),f=n(973),h=r(f),d=n(974),m=r(d),v=n(977),y=r(v),g=n(978),_=r(g),b=n(979),x=r(b),w=n(980),k=r(w),S=n(981),E=r(S),C=n(983),A=r(C),T=n(984),D=r(T),M=[h.default,m.default,y.default,x.default,k.default,E.default,A.default,D.default,_.default];e.exports=t.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={Webkit:{transform:!0,transformOrigin:!0,transformOriginX:!0,transformOriginY:!0,backfaceVisibility:!0,perspective:!0,perspectiveOrigin:!0,transformStyle:!0,transformOriginZ:!0,animation:!0,animationDelay:!0,animationDirection:!0,animationFillMode:!0,animationDuration:!0,animationIterationCount:!0,animationName:!0,animationPlayState:!0,animationTimingFunction:!0,appearance:!0,userSelect:!0,fontKerning:!0,textEmphasisPosition:!0,textEmphasis:!0,textEmphasisStyle:!0,textEmphasisColor:!0,boxDecorationBreak:!0,clipPath:!0,maskImage:!0,maskMode:!0,maskRepeat:!0,maskPosition:!0,maskClip:!0,maskOrigin:!0,maskSize:!0,maskComposite:!0,mask:!0,maskBorderSource:!0,maskBorderMode:!0,maskBorderSlice:!0,maskBorderWidth:!0,maskBorderOutset:!0,maskBorderRepeat:!0,maskBorder:!0,maskType:!0,textDecorationStyle:!0,textDecorationSkip:!0,textDecorationLine:!0,textDecorationColor:!0,filter:!0,fontFeatureSettings:!0,breakAfter:!0,breakBefore:!0,breakInside:!0,columnCount:!0,columnFill:!0,columnGap:!0,columnRule:!0,columnRuleColor:!0,columnRuleStyle:!0,columnRuleWidth:!0,columns:!0,columnSpan:!0,columnWidth:!0,flex:!0,flexBasis:!0,flexDirection:!0,flexGrow:!0,flexFlow:!0,flexShrink:!0,flexWrap:!0,alignContent:!0,alignItems:!0,alignSelf:!0,justifyContent:!0,order:!0,transition:!0,transitionDelay:!0,transitionDuration:!0,transitionProperty:!0,transitionTimingFunction:!0,backdropFilter:!0,scrollSnapType:!0,scrollSnapPointsX:!0,scrollSnapPointsY:!0,scrollSnapDestination:!0,scrollSnapCoordinate:!0,shapeImageThreshold:!0,shapeImageMargin:!0,shapeImageOutside:!0,hyphens:!0,flowInto:!0,flowFrom:!0,regionFragment:!0,textSizeAdjust:!0},Moz:{appearance:!0,userSelect:!0,boxSizing:!0,textAlignLast:!0,textDecorationStyle:!0,textDecorationSkip:!0,textDecorationLine:!0,textDecorationColor:!0,tabSize:!0,hyphens:!0,fontFeatureSettings:!0,breakAfter:!0,breakBefore:!0,breakInside:!0,columnCount:!0,columnFill:!0,columnGap:!0,columnRule:!0,columnRuleColor:!0,columnRuleStyle:!0,columnRuleWidth:!0,columns:!0,columnSpan:!0,columnWidth:!0},ms:{flex:!0,flexBasis:!1,flexDirection:!0,flexGrow:!1,flexFlow:!0,flexShrink:!1,flexWrap:!0,alignContent:!1,alignItems:!1,alignSelf:!1,justifyContent:!1,order:!1,transform:!0,transformOrigin:!0,transformOriginX:!0,transformOriginY:!0,userSelect:!0,wrapFlow:!0,wrapThrough:!0,wrapMargin:!0,scrollSnapType:!0,scrollSnapPointsX:!0,scrollSnapPointsY:!0,scrollSnapDestination:!0,scrollSnapCoordinate:!0,touchAction:!0,hyphens:!0,flowInto:!0,flowFrom:!0,breakBefore:!0,breakAfter:!0,breakInside:!0,regionFragment:!0,gridTemplateColumns:!0,gridTemplateRows:!0,gridTemplateAreas:!0,gridTemplate:!0,gridAutoColumns:!0,gridAutoRows:!0,gridAutoFlow:!0,grid:!0,gridRowStart:!0,gridColumnStart:!0,gridRowEnd:!0,gridRow:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnGap:!0,gridRowGap:!0,gridArea:!0,gridGap:!0,textSizeAdjust:!0}},e.exports=t.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return Object.keys(e).sort(function(e,t){return(0,a.default)(e)&&!(0,a.default)(t)?-1:!(0,a.default)(e)&&(0,a.default)(t)?1:0}).reduce(function(t,n){return t[n]=e[n],t},{})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(972),a=r(o);e.exports=t.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return null!==e.match(/^(Webkit|Moz|O|ms)/)},e.exports=t.default},function(e,t){"use strict";function n(e,t){if("position"===e&&"sticky"===t)return{position:["-webkit-sticky","sticky"]}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=n,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if("string"==typeof t&&!(0,u.default)(t)&&t.indexOf("calc(")>-1)return(0,a.default)(e,t,function(e,t){return t.replace(/calc\(/g,e+"calc(")})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(975),a=r(o),s=n(976),u=r(s);e.exports=t.default},function(e,t){"use strict";function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var r=arguments.length<=2||void 0===arguments[2]?function(e,t){return e+t}:arguments[2];return n({},e,["-webkit-","-moz-",""].map(function(e){return r(e,t)}))},e.exports=t.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return Array.isArray(e)&&(e=e.join(",")),null!==e.match(/-webkit-|-moz-|-ms-/)},e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if("cursor"===e&&s[t])return(0,a.default)(e,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(975),a=r(o),s={"zoom-in":!0,"zoom-out":!0,grab:!0,grabbing:!0};e.exports=t.default},function(e,t){"use strict";function n(e,t){if("display"===e&&r[t])return{display:["-webkit-box","-moz-box","-ms-"+t+"box","-webkit-"+t,t]}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=n;var r={flex:!0,"inline-flex":!0};e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(s[e]&&u[t])return(0,a.default)(e,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(975),a=r(o),s={maxHeight:!0,maxWidth:!0,width:!0,height:!0,columnWidth:!0,minWidth:!0,minHeight:!0},u={"min-content":!0,"max-content":!0,"fill-available":!0,"fit-content":!0,"contain-floats":!0};e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if("string"==typeof t&&!(0,u.default)(t)&&null!==t.match(c))return(0,a.default)(e,t)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(975),a=r(o),s=n(976),u=r(s),c=/linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/;e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){if("string"==typeof t&&m[e]){var n,r=a(t),o=r.split(/,(?![^()]*(?:\([^()]*\))?\))/g).filter(function(e){return null===e.match(/-moz-|-ms-/)}).join(",");return e.indexOf("Webkit")>-1?i({},e,o):(n={},i(n,"Webkit"+(0,l.default)(e),o),i(n,e,r),n)}}function a(e){if((0,f.default)(e))return e;var t=e.split(/,(?![^()]*(?:\([^()]*\))?\))/g);return t.forEach(function(e,n){t[n]=Object.keys(d.default).reduce(function(t,n){var r="-"+n.toLowerCase()+"-";return Object.keys(d.default[n]).forEach(function(n){var i=(0,u.default)(n);e.indexOf(i)>-1&&"order"!==i&&(t=e.replace(i,r+i)+","+t)}),t},e)}),t.join(",")}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var s=n(982),u=r(s),c=n(970),l=r(c),p=n(976),f=r(p),h=n(969),d=r(h),m={transition:!0,transitionProperty:!0,WebkitTransition:!0,WebkitTransitionProperty:!0};e.exports=t.default},function(e,t){"use strict";function n(e){return e in o?o[e]:o[e]=e.replace(r,"-$&").toLowerCase().replace(i,"-ms-")}var r=/[A-Z]/g,i=/^ms-/,o={};e.exports=n},function(e,t){"use strict";function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){if(o[e])return n({},o[e],i[t]||t)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var i={"space-around":"distribute","space-between":"justify","flex-start":"start","flex-end":"end"},o={alignContent:"msFlexLinePack",alignSelf:"msFlexItemAlign",alignItems:"msFlexAlign",justifyContent:"msFlexPack",order:"msFlexOrder",flexGrow:"msFlexPositive",flexShrink:"msFlexNegative",flexBasis:"msPreferredSize"};e.exports=t.default},function(e,t){"use strict";function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){return"flexDirection"===e&&"string"==typeof t?{WebkitBoxOrient:t.indexOf("column")>-1?"vertical":"horizontal",WebkitBoxDirection:t.indexOf("reverse")>-1?"reverse":"normal"}:o[e]?n({},o[e],i[t]||t):void 0}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var i={"space-around":"justify","space-between":"justify","flex-start":"start","flex-end":"end","wrap-reverse":"multiple",wrap:"multiple"},o={alignItems:"WebkitBoxAlign",justifyContent:"WebkitBoxPack",flexWrap:"WebkitBoxLines"};e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(986),o=r(i),a={Webkit:["chrome","safari","ios","android","phantom","opera","webos","blackberry","bada","tizen","chromium","vivaldi"],Moz:["firefox","seamonkey","sailfish"],ms:["msie","msedge"]},s={chrome:[["chrome"],["chromium"]],safari:[["safari"]],firefox:[["firefox"]],edge:[["msedge"]],opera:[["opera"],["vivaldi"]],ios_saf:[["ios","mobile"],["ios","tablet"]],ie:[["msie"]],op_mini:[["opera","mobile"],["opera","tablet"]],and_uc:[["android","mobile"],["android","tablet"]],android:[["android","mobile"],["android","tablet"]]},u=function(e){if(e.firefox)return"firefox";var t="";return Object.keys(s).forEach(function(n){s[n].forEach(function(r){var i=0;r.forEach(function(t){e[t]&&(i+=1)}),r.length===i&&(t=n)})}),t};t.default=function(e){if(!e)return!1;var t=o.default._detect(e);return Object.keys(a).forEach(function(e){a[e].forEach(function(n){t[n]&&(t.prefix={inline:e,css:"-"+e.toLowerCase()+"-"})})}),t.browser=u(t),t.version=t.version?parseFloat(t.version):parseInt(parseFloat(t.osversion),10),t.osversion=parseFloat(t.osversion),"ios_saf"===t.browser&&t.version>t.osversion&&(t.version=t.osversion,t.safari=!0),"android"===t.browser&&t.chrome&&t.version>37&&(t.browser="and_chr"),"android"===t.browser&&t.osversion<5&&(t.version=t.osversion),t},e.exports=t.default},function(e,t,n){/*! + * Bowser - a browser detector + * https://github.com/ded/bowser + * MIT License | (c) Dustin Diaz 2015 + */ +!function(t,r,i){"undefined"!=typeof e&&e.exports?e.exports=i():n(987)(r,i)}(this,"bowser",function(){function e(e){function t(t){var n=e.match(t);return n&&n.length>1&&n[1]||""}function n(t){var n=e.match(t);return n&&n.length>1&&n[2]||""}function r(e){switch(e){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}var i,o=t(/(ipod|iphone|ipad)/i).toLowerCase(),s=/like android/i.test(e),u=!s&&/android/i.test(e),c=/nexus\s*[0-6]\s*/i.test(e),l=!c&&/nexus\s*[0-9]+/i.test(e),p=/CrOS/.test(e),f=/silk/i.test(e),h=/sailfish/i.test(e),d=/tizen/i.test(e),m=/(web|hpw)os/i.test(e),v=/windows phone/i.test(e),y=(/SamsungBrowser/i.test(e),!v&&/windows/i.test(e)),g=!o&&!f&&/macintosh/i.test(e),_=!u&&!h&&!d&&!m&&/linux/i.test(e),b=t(/edge\/(\d+(\.\d+)?)/i),x=t(/version\/(\d+(\.\d+)?)/i),w=/tablet/i.test(e),k=!w&&/[^-]mobi/i.test(e),S=/xbox/i.test(e);/opera/i.test(e)?i={name:"Opera",opera:a,version:x||t(/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i)}:/opr|opios/i.test(e)?i={name:"Opera",opera:a,version:t(/(?:opr|opios)[\s\/](\d+(\.\d+)?)/i)||x}:/SamsungBrowser/i.test(e)?i={name:"Samsung Internet for Android",samsungBrowser:a,version:x||t(/(?:SamsungBrowser)[\s\/](\d+(\.\d+)?)/i)}:/coast/i.test(e)?i={name:"Opera Coast",coast:a,version:x||t(/(?:coast)[\s\/](\d+(\.\d+)?)/i)}:/yabrowser/i.test(e)?i={name:"Yandex Browser",yandexbrowser:a,version:x||t(/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i)}:/ucbrowser/i.test(e)?i={name:"UC Browser",ucbrowser:a,version:t(/(?:ucbrowser)[\s\/](\d+(?:\.\d+)+)/i)}:/mxios/i.test(e)?i={name:"Maxthon",maxthon:a,version:t(/(?:mxios)[\s\/](\d+(?:\.\d+)+)/i)}:/epiphany/i.test(e)?i={name:"Epiphany",epiphany:a,version:t(/(?:epiphany)[\s\/](\d+(?:\.\d+)+)/i)}:/puffin/i.test(e)?i={name:"Puffin",puffin:a,version:t(/(?:puffin)[\s\/](\d+(?:\.\d+)?)/i)}:/sleipnir/i.test(e)?i={name:"Sleipnir",sleipnir:a,version:t(/(?:sleipnir)[\s\/](\d+(?:\.\d+)+)/i)}:/k-meleon/i.test(e)?i={name:"K-Meleon",kMeleon:a,version:t(/(?:k-meleon)[\s\/](\d+(?:\.\d+)+)/i)}:v?(i={name:"Windows Phone",windowsphone:a},b?(i.msedge=a,i.version=b):(i.msie=a,i.version=t(/iemobile\/(\d+(\.\d+)?)/i))):/msie|trident/i.test(e)?i={name:"Internet Explorer",msie:a,version:t(/(?:msie |rv:)(\d+(\.\d+)?)/i)}:p?i={name:"Chrome",chromeos:a,chromeBook:a,chrome:a,version:t(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:/chrome.+? edge/i.test(e)?i={name:"Microsoft Edge",msedge:a,version:b}:/vivaldi/i.test(e)?i={name:"Vivaldi",vivaldi:a,version:t(/vivaldi\/(\d+(\.\d+)?)/i)||x}:h?i={name:"Sailfish",sailfish:a,version:t(/sailfish\s?browser\/(\d+(\.\d+)?)/i)}:/seamonkey\//i.test(e)?i={name:"SeaMonkey",seamonkey:a,version:t(/seamonkey\/(\d+(\.\d+)?)/i)}:/firefox|iceweasel|fxios/i.test(e)?(i={name:"Firefox",firefox:a,version:t(/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)},/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(e)&&(i.firefoxos=a)):f?i={name:"Amazon Silk",silk:a,version:t(/silk\/(\d+(\.\d+)?)/i)}:/phantom/i.test(e)?i={name:"PhantomJS",phantom:a,version:t(/phantomjs\/(\d+(\.\d+)?)/i)}:/slimerjs/i.test(e)?i={name:"SlimerJS",slimer:a,version:t(/slimerjs\/(\d+(\.\d+)?)/i)}:/blackberry|\bbb\d+/i.test(e)||/rim\stablet/i.test(e)?i={name:"BlackBerry",blackberry:a,version:x||t(/blackberry[\d]+\/(\d+(\.\d+)?)/i)}:m?(i={name:"WebOS",webos:a,version:x||t(/w(?:eb)?osbrowser\/(\d+(\.\d+)?)/i)},/touchpad\//i.test(e)&&(i.touchpad=a)):/bada/i.test(e)?i={name:"Bada",bada:a,version:t(/dolfin\/(\d+(\.\d+)?)/i)}:d?i={name:"Tizen",tizen:a,version:t(/(?:tizen\s?)?browser\/(\d+(\.\d+)?)/i)||x}:/qupzilla/i.test(e)?i={name:"QupZilla",qupzilla:a,version:t(/(?:qupzilla)[\s\/](\d+(?:\.\d+)+)/i)||x}:/chromium/i.test(e)?i={name:"Chromium",chromium:a,version:t(/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i)||x}:/chrome|crios|crmo/i.test(e)?i={name:"Chrome",chrome:a,version:t(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)}:u?i={name:"Android",version:x}:/safari|applewebkit/i.test(e)?(i={name:"Safari",safari:a},x&&(i.version=x)):o?(i={name:"iphone"==o?"iPhone":"ipad"==o?"iPad":"iPod"},x&&(i.version=x)):i=/googlebot/i.test(e)?{name:"Googlebot",googlebot:a,version:t(/googlebot\/(\d+(\.\d+))/i)||x}:{name:t(/^(.*)\/(.*) /),version:n(/^(.*)\/(.*) /)},!i.msedge&&/(apple)?webkit/i.test(e)?(/(apple)?webkit\/537\.36/i.test(e)?(i.name=i.name||"Blink",i.blink=a):(i.name=i.name||"Webkit",i.webkit=a),!i.version&&x&&(i.version=x)):!i.opera&&/gecko\//i.test(e)&&(i.name=i.name||"Gecko",i.gecko=a,i.version=i.version||t(/gecko\/(\d+(\.\d+)?)/i)),i.windowsphone||i.msedge||!u&&!i.silk?i.windowsphone||i.msedge||!o?g?i.mac=a:S?i.xbox=a:y?i.windows=a:_&&(i.linux=a):(i[o]=a,i.ios=a):i.android=a;var E="";i.windows?E=r(t(/Windows ((NT|XP)( \d\d?.\d)?)/i)):i.windowsphone?E=t(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i):i.mac?(E=t(/Mac OS X (\d+([_\.\s]\d+)*)/i),E=E.replace(/[_\s]/g,".")):o?(E=t(/os (\d+([_\s]\d+)*) like mac os x/i),E=E.replace(/[_\s]/g,".")):u?E=t(/android[ \/-](\d+(\.\d+)*)/i):i.webos?E=t(/(?:web|hpw)os\/(\d+(\.\d+)*)/i):i.blackberry?E=t(/rim\stablet\sos\s(\d+(\.\d+)*)/i):i.bada?E=t(/bada\/(\d+(\.\d+)*)/i):i.tizen&&(E=t(/tizen[\/\s](\d+(\.\d+)*)/i)),E&&(i.osversion=E);var C=!i.windows&&E.split(".")[0];return w||l||"ipad"==o||u&&(3==C||C>=4&&!k)||i.silk?i.tablet=a:(k||"iphone"==o||"ipod"==o||u||c||i.blackberry||i.webos||i.bada)&&(i.mobile=a),i.msedge||i.msie&&i.version>=10||i.yandexbrowser&&i.version>=15||i.vivaldi&&i.version>=1||i.chrome&&i.version>=20||i.samsungBrowser&&i.version>=4||i.firefox&&i.version>=20||i.safari&&i.version>=6||i.opera&&i.version>=10||i.ios&&i.osversion&&i.osversion.split(".")[0]>=6||i.blackberry&&i.version>=10.1||i.chromium&&i.version>=20?i.a=a:i.msie&&i.version<10||i.chrome&&i.version<20||i.firefox&&i.version<20||i.safari&&i.version<6||i.opera&&i.version<10||i.ios&&i.osversion&&i.osversion.split(".")[0]<6||i.chromium&&i.version<20?i.c=a:i.x=a,i}function t(e){return e.split(".").length}function n(e,t){var n,r=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(n=0;n<e.length;n++)r.push(t(e[n]));return r}function r(e){for(var r=Math.max(t(e[0]),t(e[1])),i=n(e,function(e){var i=r-t(e);return e+=new Array(i+1).join(".0"),n(e.split("."),function(e){return new Array(20-e.length).join("0")+e}).reverse()});--r>=0;){if(i[0][r]>i[1][r])return 1;if(i[0][r]!==i[1][r])return-1;if(0===r)return 0}}function i(t,n,i){var o=s;"string"==typeof n&&(i=n,n=void 0),void 0===n&&(n=!1),i&&(o=e(i));var a=""+o.version;for(var u in t)if(t.hasOwnProperty(u)&&o[u]){if("string"!=typeof t[u])throw new Error("Browser version in the minVersion map should be a string: "+u+": "+String(t));return r([a,t[u]])<0}return n}function o(e,t,n){return!i(e,t,n)}var a=!0,s=e("undefined"!=typeof navigator?navigator.userAgent||"":"");return s.test=function(e){for(var t=0;t<e.length;++t){var n=e[t];if("string"==typeof n&&n in s)return!0}return!1},s.isUnsupportedBrowser=i,s.compareVersions=r,s.check=o,s._detect=e,s})},function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.browser,n=e.version,r=e.prefix,i="keyframes";return("chrome"===t&&n<43||("safari"===t||"ios_saf"===t)&&n<9||"opera"===t&&n<30||"android"===t&&n<=4.4||"and_uc"===t)&&(i=r.css+i),i},e.exports=t.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={chrome:{transform:35,transformOrigin:35,transformOriginX:35,transformOriginY:35,backfaceVisibility:35,perspective:35,perspectiveOrigin:35,transformStyle:35,transformOriginZ:35,animation:42,animationDelay:42,animationDirection:42,animationFillMode:42,animationDuration:42,animationIterationCount:42,animationName:42,animationPlayState:42,animationTimingFunction:42,appearance:55,userSelect:55,fontKerning:32,textEmphasisPosition:55,textEmphasis:55,textEmphasisStyle:55,textEmphasisColor:55,boxDecorationBreak:55,clipPath:55,maskImage:55,maskMode:55,maskRepeat:55,maskPosition:55,maskClip:55,maskOrigin:55,maskSize:55,maskComposite:55,mask:55,maskBorderSource:55,maskBorderMode:55,maskBorderSlice:55,maskBorderWidth:55,maskBorderOutset:55,maskBorderRepeat:55,maskBorder:55,maskType:55,textDecorationStyle:55,textDecorationSkip:55,textDecorationLine:55,textDecorationColor:55,filter:52,fontFeatureSettings:47,breakAfter:49,breakBefore:49,breakInside:49,columnCount:49,columnFill:49,columnGap:49,columnRule:49,columnRuleColor:49,columnRuleStyle:49,columnRuleWidth:49,columns:49,columnSpan:49,columnWidth:49},safari:{flex:8,flexBasis:8,flexDirection:8,flexGrow:8,flexFlow:8,flexShrink:8,flexWrap:8,alignContent:8,alignItems:8,alignSelf:8,justifyContent:8,order:8,transition:6,transitionDelay:6,transitionDuration:6,transitionProperty:6,transitionTimingFunction:6,transform:8,transformOrigin:8,transformOriginX:8,transformOriginY:8,backfaceVisibility:8,perspective:8,perspectiveOrigin:8,transformStyle:8,transformOriginZ:8,animation:8,animationDelay:8,animationDirection:8,animationFillMode:8,animationDuration:8,animationIterationCount:8,animationName:8,animationPlayState:8,animationTimingFunction:8,appearance:10,userSelect:10,backdropFilter:10,fontKerning:9,scrollSnapType:10,scrollSnapPointsX:10,scrollSnapPointsY:10,scrollSnapDestination:10,scrollSnapCoordinate:10,textEmphasisPosition:7,textEmphasis:7,textEmphasisStyle:7,textEmphasisColor:7,boxDecorationBreak:10,clipPath:10,maskImage:10,maskMode:10,maskRepeat:10,maskPosition:10,maskClip:10,maskOrigin:10,maskSize:10,maskComposite:10,mask:10,maskBorderSource:10,maskBorderMode:10,maskBorderSlice:10,maskBorderWidth:10,maskBorderOutset:10,maskBorderRepeat:10,maskBorder:10,maskType:10,textDecorationStyle:10,textDecorationSkip:10,textDecorationLine:10,textDecorationColor:10,shapeImageThreshold:10,shapeImageMargin:10,shapeImageOutside:10,filter:9,hyphens:10,flowInto:10,flowFrom:10,breakBefore:8,breakAfter:8,breakInside:8,regionFragment:10,columnCount:8,columnFill:8,columnGap:8,columnRule:8,columnRuleColor:8,columnRuleStyle:8,columnRuleWidth:8,columns:8,columnSpan:8,columnWidth:8},firefox:{appearance:51,userSelect:51,boxSizing:28,textAlignLast:48,textDecorationStyle:35,textDecorationSkip:35,textDecorationLine:35,textDecorationColor:35,tabSize:51,hyphens:42,fontFeatureSettings:33,breakAfter:51,breakBefore:51,breakInside:51,columnCount:51,columnFill:51,columnGap:51,columnRule:51,columnRuleColor:51,columnRuleStyle:51,columnRuleWidth:51,columns:51,columnSpan:51,columnWidth:51},opera:{flex:16,flexBasis:16,flexDirection:16,flexGrow:16,flexFlow:16,flexShrink:16,flexWrap:16,alignContent:16,alignItems:16,alignSelf:16,justifyContent:16,order:16,transform:22,transformOrigin:22,transformOriginX:22,transformOriginY:22,backfaceVisibility:22,perspective:22,perspectiveOrigin:22,transformStyle:22,transformOriginZ:22,animation:29,animationDelay:29,animationDirection:29,animationFillMode:29,animationDuration:29,animationIterationCount:29,animationName:29,animationPlayState:29,animationTimingFunction:29,appearance:41,userSelect:41,fontKerning:19,textEmphasisPosition:41,textEmphasis:41,textEmphasisStyle:41,textEmphasisColor:41,boxDecorationBreak:41,clipPath:41,maskImage:41,maskMode:41,maskRepeat:41,maskPosition:41,maskClip:41,maskOrigin:41,maskSize:41,maskComposite:41,mask:41,maskBorderSource:41,maskBorderMode:41,maskBorderSlice:41,maskBorderWidth:41,maskBorderOutset:41,maskBorderRepeat:41,maskBorder:41,maskType:41,textDecorationStyle:41,textDecorationSkip:41,textDecorationLine:41,textDecorationColor:41,filter:39,fontFeatureSettings:34,breakAfter:36,breakBefore:36,breakInside:36,columnCount:36,columnFill:36,columnGap:36,columnRule:36,columnRuleColor:36,columnRuleStyle:36,columnRuleWidth:36,columns:36,columnSpan:36,columnWidth:36},ie:{flex:10,flexDirection:10,flexFlow:10,flexWrap:10,transform:9,transformOrigin:9,transformOriginX:9,transformOriginY:9,userSelect:11,wrapFlow:11,wrapThrough:11,wrapMargin:11,scrollSnapType:11,scrollSnapPointsX:11,scrollSnapPointsY:11,scrollSnapDestination:11,scrollSnapCoordinate:11,touchAction:10,hyphens:11,flowInto:11,flowFrom:11,breakBefore:11,breakAfter:11,breakInside:11,regionFragment:11,gridTemplateColumns:11,gridTemplateRows:11,gridTemplateAreas:11,gridTemplate:11,gridAutoColumns:11,gridAutoRows:11,gridAutoFlow:11,grid:11,gridRowStart:11,gridColumnStart:11,gridRowEnd:11,gridRow:11,gridColumn:11,gridColumnEnd:11,gridColumnGap:11,gridRowGap:11,gridArea:11,gridGap:11,textSizeAdjust:11},edge:{userSelect:14,wrapFlow:14,wrapThrough:14,wrapMargin:14,scrollSnapType:14,scrollSnapPointsX:14,scrollSnapPointsY:14,scrollSnapDestination:14,scrollSnapCoordinate:14,hyphens:14,flowInto:14,flowFrom:14,breakBefore:14,breakAfter:14,breakInside:14,regionFragment:14,gridTemplateColumns:14,gridTemplateRows:14,gridTemplateAreas:14,gridTemplate:14,gridAutoColumns:14,gridAutoRows:14,gridAutoFlow:14,grid:14,gridRowStart:14,gridColumnStart:14,gridRowEnd:14,gridRow:14,gridColumn:14,gridColumnEnd:14,gridColumnGap:14,gridRowGap:14,gridArea:14,gridGap:14},ios_saf:{flex:8.1,flexBasis:8.1,flexDirection:8.1,flexGrow:8.1,flexFlow:8.1,flexShrink:8.1,flexWrap:8.1,alignContent:8.1,alignItems:8.1,alignSelf:8.1,justifyContent:8.1,order:8.1,transition:6,transitionDelay:6,transitionDuration:6,transitionProperty:6,transitionTimingFunction:6,transform:8.1,transformOrigin:8.1,transformOriginX:8.1,transformOriginY:8.1,backfaceVisibility:8.1,perspective:8.1,perspectiveOrigin:8.1,transformStyle:8.1,transformOriginZ:8.1,animation:8.1,animationDelay:8.1,animationDirection:8.1,animationFillMode:8.1,animationDuration:8.1,animationIterationCount:8.1,animationName:8.1,animationPlayState:8.1,animationTimingFunction:8.1,appearance:9.3,userSelect:9.3,backdropFilter:9.3,fontKerning:9.3,scrollSnapType:9.3,scrollSnapPointsX:9.3,scrollSnapPointsY:9.3,scrollSnapDestination:9.3,scrollSnapCoordinate:9.3,boxDecorationBreak:9.3,clipPath:9.3,maskImage:9.3,maskMode:9.3,maskRepeat:9.3,maskPosition:9.3,maskClip:9.3,maskOrigin:9.3,maskSize:9.3,maskComposite:9.3,mask:9.3,maskBorderSource:9.3,maskBorderMode:9.3,maskBorderSlice:9.3,maskBorderWidth:9.3,maskBorderOutset:9.3,maskBorderRepeat:9.3,maskBorder:9.3,maskType:9.3,textSizeAdjust:9.3,textDecorationStyle:9.3,textDecorationSkip:9.3,textDecorationLine:9.3,textDecorationColor:9.3,shapeImageThreshold:9.3,shapeImageMargin:9.3,shapeImageOutside:9.3,filter:9,hyphens:9.3,flowInto:9.3,flowFrom:9.3,breakBefore:8.1,breakAfter:8.1,breakInside:8.1,regionFragment:9.3,columnCount:8.1,columnFill:8.1,columnGap:8.1,columnRule:8.1,columnRuleColor:8.1,columnRuleStyle:8.1,columnRuleWidth:8.1,columns:8.1,columnSpan:8.1,columnWidth:8.1},android:{flex:4.2,flexBasis:4.2,flexDirection:4.2,flexGrow:4.2,flexFlow:4.2,flexShrink:4.2,flexWrap:4.2,alignContent:4.2,alignItems:4.2,alignSelf:4.2,justifyContent:4.2,order:4.2,transition:4.2,transitionDelay:4.2,transitionDuration:4.2,transitionProperty:4.2,transitionTimingFunction:4.2,transform:4.4,transformOrigin:4.4,transformOriginX:4.4,transformOriginY:4.4,backfaceVisibility:4.4,perspective:4.4,perspectiveOrigin:4.4,transformStyle:4.4,transformOriginZ:4.4,animation:4.4,animationDelay:4.4,animationDirection:4.4,animationFillMode:4.4,animationDuration:4.4,animationIterationCount:4.4,animationName:4.4,animationPlayState:4.4,animationTimingFunction:4.4,appearance:51,userSelect:51,fontKerning:4.4,textEmphasisPosition:51,textEmphasis:51,textEmphasisStyle:51,textEmphasisColor:51,boxDecorationBreak:51,clipPath:51,maskImage:51,maskMode:51,maskRepeat:51,maskPosition:51,maskClip:51,maskOrigin:51,maskSize:51,maskComposite:51,mask:51,maskBorderSource:51,maskBorderMode:51,maskBorderSlice:51,maskBorderWidth:51,maskBorderOutset:51,maskBorderRepeat:51,maskBorder:51,maskType:51,filter:51,fontFeatureSettings:4.4,breakAfter:51,breakBefore:51,breakInside:51,columnCount:51,columnFill:51,columnGap:51,columnRule:51,columnRuleColor:51,columnRuleStyle:51,columnRuleWidth:51,columns:51,columnSpan:51,columnWidth:51},and_chr:{appearance:51,userSelect:51,textEmphasisPosition:51,textEmphasis:51,textEmphasisStyle:51,textEmphasisColor:51,boxDecorationBreak:51,clipPath:51,maskImage:51,maskMode:51,maskRepeat:51,maskPosition:51,maskClip:51,maskOrigin:51,maskSize:51,maskComposite:51,mask:51,maskBorderSource:51,maskBorderMode:51,maskBorderSlice:51,maskBorderWidth:51,maskBorderOutset:51,maskBorderRepeat:51,maskBorder:51,maskType:51,textDecorationStyle:51,textDecorationSkip:51,textDecorationLine:51,textDecorationColor:51,filter:51},and_uc:{flex:9.9,flexBasis:9.9,flexDirection:9.9,flexGrow:9.9,flexFlow:9.9,flexShrink:9.9,flexWrap:9.9,alignContent:9.9,alignItems:9.9,alignSelf:9.9,justifyContent:9.9,order:9.9,transition:9.9,transitionDelay:9.9,transitionDuration:9.9,transitionProperty:9.9,transitionTimingFunction:9.9,transform:9.9,transformOrigin:9.9,transformOriginX:9.9,transformOriginY:9.9,backfaceVisibility:9.9,perspective:9.9,perspectiveOrigin:9.9,transformStyle:9.9,transformOriginZ:9.9,animation:9.9,animationDelay:9.9,animationDirection:9.9,animationFillMode:9.9,animationDuration:9.9,animationIterationCount:9.9,animationName:9.9,animationPlayState:9.9,animationTimingFunction:9.9,appearance:9.9,userSelect:9.9,fontKerning:9.9,textEmphasisPosition:9.9,textEmphasis:9.9,textEmphasisStyle:9.9,textEmphasisColor:9.9,maskImage:9.9,maskMode:9.9,maskRepeat:9.9,maskPosition:9.9,maskClip:9.9,maskOrigin:9.9,maskSize:9.9,maskComposite:9.9,mask:9.9,maskBorderSource:9.9,maskBorderMode:9.9,maskBorderSlice:9.9,maskBorderWidth:9.9,maskBorderOutset:9.9,maskBorderRepeat:9.9,maskBorder:9.9,maskType:9.9,textSizeAdjust:9.9,filter:9.9,hyphens:9.9,flowInto:9.9,flowFrom:9.9,breakBefore:9.9,breakAfter:9.9,breakInside:9.9,regionFragment:9.9,fontFeatureSettings:9.9,columnCount:9.9,columnFill:9.9,columnGap:9.9,columnRule:9.9,columnRuleColor:9.9,columnRuleStyle:9.9,columnRuleWidth:9.9,columns:9.9,columnSpan:9.9,columnWidth:9.9},op_mini:{}},e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){var t=e.property,n=e.value,r=e.browserInfo.browser,o=e.prefix.css,a=e.keepUnprefixed;if("position"===t&&"sticky"===n&&("safari"===r||"ios_saf"===r))return i({},t,(0,s.default)(o+n,n,a))}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=n(991),s=r(a);e.exports=t.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){return n?[e,t]:e},e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){var t=e.property,n=e.value,r=e.browserInfo,o=r.browser,a=r.version,u=e.prefix.css,c=e.keepUnprefixed;if("string"==typeof n&&n.indexOf("calc(")>-1&&("firefox"===o&&a<15||"chrome"===o&&a<25||"safari"===o&&a<6.1||"ios_saf"===o&&a<7))return i({},t,(0,s.default)(n.replace(/calc\(/g,u+"calc("),n,c))}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=n(991),s=r(a);e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=e.property,n=e.value,r=e.browserInfo,i=r.browser,o=r.version,u=e.prefix.css,c=e.keepUnprefixed;if("cursor"===t&&s[n]&&("firefox"===i&&o<24||"chrome"===i&&o<37||"safari"===i&&o<9||"opera"===i&&o<24))return{cursor:(0,a.default)(u+n,n,c)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(991),a=r(o),s={"zoom-in":!0,"zoom-out":!0};e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=e.property,n=e.value,r=e.browserInfo.browser,i=e.prefix.css,o=e.keepUnprefixed;if("cursor"===t&&s[n]&&("firefox"===r||"chrome"===r||"safari"===r||"opera"===r))return{cursor:(0,a.default)(i+n,n,o)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(991),a=r(o),s={grab:!0,grabbing:!0};e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=e.property,n=e.value,r=e.browserInfo,i=r.browser,o=r.version,u=e.prefix.css,c=e.keepUnprefixed;if("display"===t&&s[n]&&("chrome"===i&&o<29&&o>20||("safari"===i||"ios_saf"===i)&&o<9&&o>6||"opera"===i&&(15==o||16==o)))return{display:(0,a.default)(u+n,n,c)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(991),a=r(o),s={flex:!0,"inline-flex":!0};e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){var t=e.property,n=e.value,r=e.prefix.css,o=e.keepUnprefixed;if(u[t]&&c[n])return i({},t,(0,s.default)(r+n,n,o))}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=n(991),s=r(a),u={maxHeight:!0,maxWidth:!0,width:!0,height:!0,columnWidth:!0,minWidth:!0,minHeight:!0},c={"min-content":!0,"max-content":!0,"fill-available":!0,"fit-content":!0,"contain-floats":!0};e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){var t=e.property,n=e.value,r=e.browserInfo,o=r.browser,a=r.version,c=e.prefix.css,l=e.keepUnprefixed;if("string"==typeof n&&null!==n.match(u)&&("firefox"===o&&a<16||"chrome"===o&&a<26||("safari"===o||"ios_saf"===o)&&a<7||("opera"===o||"op_mini"===o)&&a<12.1||"android"===o&&a<4.4||"and_uc"===o))return i({},t,(0,s.default)(c+n,n,l))}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=n(991),s=r(a),u=/linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/;e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){var t=e.property,n=e.value,r=e.prefix.css,o=e.requiresPrefix,s=e.keepUnprefixed,c=(0,l.default)(t);if("string"==typeof n&&p[c]){var f=function(){var e=Object.keys(o).map(function(e){return(0,u.default)(e)}),a=n.split(/,(?![^()]*(?:\([^()]*\))?\))/g);return e.forEach(function(e){a.forEach(function(t,n){t.indexOf(e)>-1&&"order"!==e&&(a[n]=t.replace(e,r+e)+(s?","+t:""))})}),{v:i({},t,a.join(","))}}();if("object"===("undefined"==typeof f?"undefined":a(f)))return f.v}}Object.defineProperty(t,"__esModule",{value:!0});var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e};t.default=o;var s=n(982),u=r(s),c=n(999),l=r(c),p={transition:!0,transitionProperty:!0};e.exports=t.default},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.replace(/^(ms|Webkit|Moz|O)/,"");return t.charAt(0).toLowerCase()+t.slice(1)},e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){var t=e.property,n=e.value,r=e.styles,o=e.browserInfo,a=o.browser,l=o.version,p=e.prefix.css,f=e.keepUnprefixed;if((c[t]||"display"===t&&"string"==typeof n&&n.indexOf("flex")>-1)&&("ie_mob"===a||"ie"===a)&&10==l){if(f||Array.isArray(r[t])||delete r[t],"display"===t&&u[n])return{display:(0,s.default)(p+u[n],n,f)};if(c[t])return i({},c[t],u[n]||n)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=n(991),s=r(a),u={"space-around":"distribute","space-between":"justify","flex-start":"start","flex-end":"end",flex:"flexbox","inline-flex":"inline-flexbox"},c={alignContent:"msFlexLinePack",alignSelf:"msFlexItemAlign",alignItems:"msFlexAlign",justifyContent:"msFlexPack",order:"msFlexOrder",flexGrow:"msFlexPositive",flexShrink:"msFlexNegative",flexBasis:"msPreferredSize"};e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e){var t=e.property,n=e.value,r=e.styles,o=e.browserInfo,a=o.browser,l=o.version,f=e.prefix.css,h=e.keepUnprefixed;if((p.indexOf(t)>-1||"display"===t&&"string"==typeof n&&n.indexOf("flex")>-1)&&("firefox"===a&&l<22||"chrome"===a&&l<21||("safari"===a||"ios_saf"===a)&&l<=6.1||"android"===a&&l<4.4||"and_uc"===a)){if(h||Array.isArray(r[t])||delete r[t],"flexDirection"===t&&"string"==typeof n)return{WebkitBoxOrient:n.indexOf("column")>-1?"vertical":"horizontal",WebkitBoxDirection:n.indexOf("reverse")>-1?"reverse":"normal"};if("display"===t&&u[n])return{display:(0,s.default)(f+u[n],n,h)};if(c[t])return i({},c[t],u[n]||n)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var a=n(991),s=r(a),u={"space-around":"justify","space-between":"justify","flex-start":"start","flex-end":"end","wrap-reverse":"multiple",wrap:"multiple",flex:"box","inline-flex":"inline-box"},c={alignItems:"WebkitBoxAlign",justifyContent:"WebkitBoxPack",flexWrap:"WebkitBoxLines"},l=["alignContent","alignSelf","order","flexGrow","flexShrink","flexBasis","flexDirection"],p=Object.keys(c).concat(l);e.exports=t.default},function(e,t,n){var r=n(1003),i=n(498);e.exports=function(e,t,n){var i=e[t];if(i){var o=[];if(Object.keys(i).forEach(function(e){r.indexOf(e)===-1&&o.push(e)}),o.length)throw new Error("Prop "+t+" passed to "+n+". Has invalid keys "+o.join(", "))}},e.exports.isRequired=function(t,n,r){if(!t[n])throw new Error("Prop "+n+" passed to "+r+" is required");return e.exports(t,n,r)},e.exports.supportingArrays=i.PropTypes.oneOfType([i.PropTypes.arrayOf(e.exports),e.exports])},function(e,t){e.exports=["alignContent","MozAlignContent","WebKitAlignContent","MSAlignContent","OAlignContent","alignItems","MozAlignItems","WebKitAlignItems","MSAlignItems","OAlignItems","alignSelf","MozAlignSelf","WebKitAlignSelf","MSAlignSelf","OAlignSelf","all","MozAll","WebKitAll","MSAll","OAll","animation","MozAnimation","WebKitAnimation","MSAnimation","OAnimation","animationDelay","MozAnimationDelay","WebKitAnimationDelay","MSAnimationDelay","OAnimationDelay","animationDirection","MozAnimationDirection","WebKitAnimationDirection","MSAnimationDirection","OAnimationDirection","animationDuration","MozAnimationDuration","WebKitAnimationDuration","MSAnimationDuration","OAnimationDuration","animationFillMode","MozAnimationFillMode","WebKitAnimationFillMode","MSAnimationFillMode","OAnimationFillMode","animationIterationCount","MozAnimationIterationCount","WebKitAnimationIterationCount","MSAnimationIterationCount","OAnimationIterationCount","animationName","MozAnimationName","WebKitAnimationName","MSAnimationName","OAnimationName","animationPlayState","MozAnimationPlayState","WebKitAnimationPlayState","MSAnimationPlayState","OAnimationPlayState","animationTimingFunction","MozAnimationTimingFunction","WebKitAnimationTimingFunction","MSAnimationTimingFunction","OAnimationTimingFunction","backfaceVisibility","MozBackfaceVisibility","WebKitBackfaceVisibility","MSBackfaceVisibility","OBackfaceVisibility","background","MozBackground","WebKitBackground","MSBackground","OBackground","backgroundAttachment","MozBackgroundAttachment","WebKitBackgroundAttachment","MSBackgroundAttachment","OBackgroundAttachment","backgroundBlendMode","MozBackgroundBlendMode","WebKitBackgroundBlendMode","MSBackgroundBlendMode","OBackgroundBlendMode","backgroundClip","MozBackgroundClip","WebKitBackgroundClip","MSBackgroundClip","OBackgroundClip","backgroundColor","MozBackgroundColor","WebKitBackgroundColor","MSBackgroundColor","OBackgroundColor","backgroundImage","MozBackgroundImage","WebKitBackgroundImage","MSBackgroundImage","OBackgroundImage","backgroundOrigin","MozBackgroundOrigin","WebKitBackgroundOrigin","MSBackgroundOrigin","OBackgroundOrigin","backgroundPosition","MozBackgroundPosition","WebKitBackgroundPosition","MSBackgroundPosition","OBackgroundPosition","backgroundRepeat","MozBackgroundRepeat","WebKitBackgroundRepeat","MSBackgroundRepeat","OBackgroundRepeat","backgroundSize","MozBackgroundSize","WebKitBackgroundSize","MSBackgroundSize","OBackgroundSize","blockSize","MozBlockSize","WebKitBlockSize","MSBlockSize","OBlockSize","border","MozBorder","WebKitBorder","MSBorder","OBorder","borderBlockEnd","MozBorderBlockEnd","WebKitBorderBlockEnd","MSBorderBlockEnd","OBorderBlockEnd","borderBlockEndColor","MozBorderBlockEndColor","WebKitBorderBlockEndColor","MSBorderBlockEndColor","OBorderBlockEndColor","borderBlockEndStyle","MozBorderBlockEndStyle","WebKitBorderBlockEndStyle","MSBorderBlockEndStyle","OBorderBlockEndStyle","borderBlockEndWidth","MozBorderBlockEndWidth","WebKitBorderBlockEndWidth","MSBorderBlockEndWidth","OBorderBlockEndWidth","borderBlockStart","MozBorderBlockStart","WebKitBorderBlockStart","MSBorderBlockStart","OBorderBlockStart","borderBlockStartColor","MozBorderBlockStartColor","WebKitBorderBlockStartColor","MSBorderBlockStartColor","OBorderBlockStartColor","borderBlockStartStyle","MozBorderBlockStartStyle","WebKitBorderBlockStartStyle","MSBorderBlockStartStyle","OBorderBlockStartStyle","borderBlockStartWidth","MozBorderBlockStartWidth","WebKitBorderBlockStartWidth","MSBorderBlockStartWidth","OBorderBlockStartWidth","borderBottom","MozBorderBottom","WebKitBorderBottom","MSBorderBottom","OBorderBottom","borderBottomColor","MozBorderBottomColor","WebKitBorderBottomColor","MSBorderBottomColor","OBorderBottomColor","borderBottomLeftRadius","MozBorderBottomLeftRadius","WebKitBorderBottomLeftRadius","MSBorderBottomLeftRadius","OBorderBottomLeftRadius","borderBottomRightRadius","MozBorderBottomRightRadius","WebKitBorderBottomRightRadius","MSBorderBottomRightRadius","OBorderBottomRightRadius","borderBottomStyle","MozBorderBottomStyle","WebKitBorderBottomStyle","MSBorderBottomStyle","OBorderBottomStyle","borderBottomWidth","MozBorderBottomWidth","WebKitBorderBottomWidth","MSBorderBottomWidth","OBorderBottomWidth","borderCollapse","MozBorderCollapse","WebKitBorderCollapse","MSBorderCollapse","OBorderCollapse","borderColor","MozBorderColor","WebKitBorderColor","MSBorderColor","OBorderColor","borderImage","MozBorderImage","WebKitBorderImage","MSBorderImage","OBorderImage","borderImageOutset","MozBorderImageOutset","WebKitBorderImageOutset","MSBorderImageOutset","OBorderImageOutset","borderImageRepeat","MozBorderImageRepeat","WebKitBorderImageRepeat","MSBorderImageRepeat","OBorderImageRepeat","borderImageSlice","MozBorderImageSlice","WebKitBorderImageSlice","MSBorderImageSlice","OBorderImageSlice","borderImageSource","MozBorderImageSource","WebKitBorderImageSource","MSBorderImageSource","OBorderImageSource","borderImageWidth","MozBorderImageWidth","WebKitBorderImageWidth","MSBorderImageWidth","OBorderImageWidth","borderInlineEnd","MozBorderInlineEnd","WebKitBorderInlineEnd","MSBorderInlineEnd","OBorderInlineEnd","borderInlineEndColor","MozBorderInlineEndColor","WebKitBorderInlineEndColor","MSBorderInlineEndColor","OBorderInlineEndColor","borderInlineEndStyle","MozBorderInlineEndStyle","WebKitBorderInlineEndStyle","MSBorderInlineEndStyle","OBorderInlineEndStyle","borderInlineEndWidth","MozBorderInlineEndWidth","WebKitBorderInlineEndWidth","MSBorderInlineEndWidth","OBorderInlineEndWidth","borderInlineStart","MozBorderInlineStart","WebKitBorderInlineStart","MSBorderInlineStart","OBorderInlineStart","borderInlineStartColor","MozBorderInlineStartColor","WebKitBorderInlineStartColor","MSBorderInlineStartColor","OBorderInlineStartColor","borderInlineStartStyle","MozBorderInlineStartStyle","WebKitBorderInlineStartStyle","MSBorderInlineStartStyle","OBorderInlineStartStyle","borderInlineStartWidth","MozBorderInlineStartWidth","WebKitBorderInlineStartWidth","MSBorderInlineStartWidth","OBorderInlineStartWidth","borderLeft","MozBorderLeft","WebKitBorderLeft","MSBorderLeft","OBorderLeft","borderLeftColor","MozBorderLeftColor","WebKitBorderLeftColor","MSBorderLeftColor","OBorderLeftColor","borderLeftStyle","MozBorderLeftStyle","WebKitBorderLeftStyle","MSBorderLeftStyle","OBorderLeftStyle","borderLeftWidth","MozBorderLeftWidth","WebKitBorderLeftWidth","MSBorderLeftWidth","OBorderLeftWidth","borderRadius","MozBorderRadius","WebKitBorderRadius","MSBorderRadius","OBorderRadius","borderRight","MozBorderRight","WebKitBorderRight","MSBorderRight","OBorderRight","borderRightColor","MozBorderRightColor","WebKitBorderRightColor","MSBorderRightColor","OBorderRightColor","borderRightStyle","MozBorderRightStyle","WebKitBorderRightStyle","MSBorderRightStyle","OBorderRightStyle","borderRightWidth","MozBorderRightWidth","WebKitBorderRightWidth","MSBorderRightWidth","OBorderRightWidth","borderSpacing","MozBorderSpacing","WebKitBorderSpacing","MSBorderSpacing","OBorderSpacing","borderStyle","MozBorderStyle","WebKitBorderStyle","MSBorderStyle","OBorderStyle","borderTop","MozBorderTop","WebKitBorderTop","MSBorderTop","OBorderTop","borderTopColor","MozBorderTopColor","WebKitBorderTopColor","MSBorderTopColor","OBorderTopColor","borderTopLeftRadius","MozBorderTopLeftRadius","WebKitBorderTopLeftRadius","MSBorderTopLeftRadius","OBorderTopLeftRadius","borderTopRightRadius","MozBorderTopRightRadius","WebKitBorderTopRightRadius","MSBorderTopRightRadius","OBorderTopRightRadius","borderTopStyle","MozBorderTopStyle","WebKitBorderTopStyle","MSBorderTopStyle","OBorderTopStyle","borderTopWidth","MozBorderTopWidth","WebKitBorderTopWidth","MSBorderTopWidth","OBorderTopWidth","borderWidth","MozBorderWidth","WebKitBorderWidth","MSBorderWidth","OBorderWidth","bottom","MozBottom","WebKitBottom","MSBottom","OBottom","boxDecorationBreak","MozBoxDecorationBreak","WebKitBoxDecorationBreak","MSBoxDecorationBreak","OBoxDecorationBreak","boxShadow","MozBoxShadow","WebKitBoxShadow","MSBoxShadow","OBoxShadow","boxSizing","MozBoxSizing","WebKitBoxSizing","MSBoxSizing","OBoxSizing","breakAfter","MozBreakAfter","WebKitBreakAfter","MSBreakAfter","OBreakAfter","breakBefore","MozBreakBefore","WebKitBreakBefore","MSBreakBefore","OBreakBefore","breakInside","MozBreakInside","WebKitBreakInside","MSBreakInside","OBreakInside","captionSide","MozCaptionSide","WebKitCaptionSide","MSCaptionSide","OCaptionSide","ch","MozCh","WebKitCh","MSCh","OCh","clear","MozClear","WebKitClear","MSClear","OClear","clip","MozClip","WebKitClip","MSClip","OClip","clipPath","MozClipPath","WebKitClipPath","MSClipPath","OClipPath","cm","MozCm","WebKitCm","MSCm","OCm","color","MozColor","WebKitColor","MSColor","OColor","columnCount","MozColumnCount","WebKitColumnCount","MSColumnCount","OColumnCount","columnFill","MozColumnFill","WebKitColumnFill","MSColumnFill","OColumnFill","columnGap","MozColumnGap","WebKitColumnGap","MSColumnGap","OColumnGap","columnRule","MozColumnRule","WebKitColumnRule","MSColumnRule","OColumnRule","columnRuleColor","MozColumnRuleColor","WebKitColumnRuleColor","MSColumnRuleColor","OColumnRuleColor","columnRuleStyle","MozColumnRuleStyle","WebKitColumnRuleStyle","MSColumnRuleStyle","OColumnRuleStyle","columnRuleWidth","MozColumnRuleWidth","WebKitColumnRuleWidth","MSColumnRuleWidth","OColumnRuleWidth","columnSpan","MozColumnSpan","WebKitColumnSpan","MSColumnSpan","OColumnSpan","columnWidth","MozColumnWidth","WebKitColumnWidth","MSColumnWidth","OColumnWidth","columns","MozColumns","WebKitColumns","MSColumns","OColumns","content","MozContent","WebKitContent","MSContent","OContent","counterIncrement","MozCounterIncrement","WebKitCounterIncrement","MSCounterIncrement","OCounterIncrement","counterReset","MozCounterReset","WebKitCounterReset","MSCounterReset","OCounterReset","cursor","MozCursor","WebKitCursor","MSCursor","OCursor","deg","MozDeg","WebKitDeg","MSDeg","ODeg","direction","MozDirection","WebKitDirection","MSDirection","ODirection","display","MozDisplay","WebKitDisplay","MSDisplay","ODisplay","dpcm","MozDpcm","WebKitDpcm","MSDpcm","ODpcm","dpi","MozDpi","WebKitDpi","MSDpi","ODpi","dppx","MozDppx","WebKitDppx","MSDppx","ODppx","em","MozEm","WebKitEm","MSEm","OEm","emptyCells","MozEmptyCells","WebKitEmptyCells","MSEmptyCells","OEmptyCells","ex","MozEx","WebKitEx","MSEx","OEx","filter","MozFilter","WebKitFilter","MSFilter","OFilter","flex","MozFlex","WebKitFlex","MSFlex","OFlex","flexBasis","MozFlexBasis","WebKitFlexBasis","MSFlexBasis","OFlexBasis","flexDirection","MozFlexDirection","WebKitFlexDirection","MSFlexDirection","OFlexDirection","flexFlow","MozFlexFlow","WebKitFlexFlow","MSFlexFlow","OFlexFlow","flexGrow","MozFlexGrow","WebKitFlexGrow","MSFlexGrow","OFlexGrow","flexShrink","MozFlexShrink","WebKitFlexShrink","MSFlexShrink","OFlexShrink","flexWrap","MozFlexWrap","WebKitFlexWrap","MSFlexWrap","OFlexWrap","float","MozFloat","WebKitFloat","MSFloat","OFloat","font","MozFont","WebKitFont","MSFont","OFont","fontFamily","MozFontFamily","WebKitFontFamily","MSFontFamily","OFontFamily","fontFeatureSettings","MozFontFeatureSettings","WebKitFontFeatureSettings","MSFontFeatureSettings","OFontFeatureSettings","fontKerning","MozFontKerning","WebKitFontKerning","MSFontKerning","OFontKerning","fontLanguageOverride","MozFontLanguageOverride","WebKitFontLanguageOverride","MSFontLanguageOverride","OFontLanguageOverride","fontSize","MozFontSize","WebKitFontSize","MSFontSize","OFontSize","fontSizeAdjust","MozFontSizeAdjust","WebKitFontSizeAdjust","MSFontSizeAdjust","OFontSizeAdjust","fontStretch","MozFontStretch","WebKitFontStretch","MSFontStretch","OFontStretch","fontStyle","MozFontStyle","WebKitFontStyle","MSFontStyle","OFontStyle","fontSynthesis","MozFontSynthesis","WebKitFontSynthesis","MSFontSynthesis","OFontSynthesis","fontVariant","MozFontVariant","WebKitFontVariant","MSFontVariant","OFontVariant","fontVariantAlternates","MozFontVariantAlternates","WebKitFontVariantAlternates","MSFontVariantAlternates","OFontVariantAlternates","fontVariantCaps","MozFontVariantCaps","WebKitFontVariantCaps","MSFontVariantCaps","OFontVariantCaps","fontVariantEastAsian","MozFontVariantEastAsian","WebKitFontVariantEastAsian","MSFontVariantEastAsian","OFontVariantEastAsian","fontVariantLigatures","MozFontVariantLigatures","WebKitFontVariantLigatures","MSFontVariantLigatures","OFontVariantLigatures","fontVariantNumeric","MozFontVariantNumeric","WebKitFontVariantNumeric","MSFontVariantNumeric","OFontVariantNumeric","fontVariantPosition","MozFontVariantPosition","WebKitFontVariantPosition","MSFontVariantPosition","OFontVariantPosition","fontWeight","MozFontWeight","WebKitFontWeight","MSFontWeight","OFontWeight","grad","MozGrad","WebKitGrad","MSGrad","OGrad","grid","MozGrid","WebKitGrid","MSGrid","OGrid","gridArea","MozGridArea","WebKitGridArea","MSGridArea","OGridArea","gridAutoColumns","MozGridAutoColumns","WebKitGridAutoColumns","MSGridAutoColumns","OGridAutoColumns","gridAutoFlow","MozGridAutoFlow","WebKitGridAutoFlow","MSGridAutoFlow","OGridAutoFlow","gridAutoRows","MozGridAutoRows","WebKitGridAutoRows","MSGridAutoRows","OGridAutoRows","gridColumn","MozGridColumn","WebKitGridColumn","MSGridColumn","OGridColumn","gridColumnEnd","MozGridColumnEnd","WebKitGridColumnEnd","MSGridColumnEnd","OGridColumnEnd","gridColumnGap","MozGridColumnGap","WebKitGridColumnGap","MSGridColumnGap","OGridColumnGap","gridColumnStart","MozGridColumnStart","WebKitGridColumnStart","MSGridColumnStart","OGridColumnStart","gridGap","MozGridGap","WebKitGridGap","MSGridGap","OGridGap","gridRow","MozGridRow","WebKitGridRow","MSGridRow","OGridRow","gridRowEnd","MozGridRowEnd","WebKitGridRowEnd","MSGridRowEnd","OGridRowEnd","gridRowGap","MozGridRowGap","WebKitGridRowGap","MSGridRowGap","OGridRowGap","gridRowStart","MozGridRowStart","WebKitGridRowStart","MSGridRowStart","OGridRowStart","gridTemplate","MozGridTemplate","WebKitGridTemplate","MSGridTemplate","OGridTemplate","gridTemplateAreas","MozGridTemplateAreas","WebKitGridTemplateAreas","MSGridTemplateAreas","OGridTemplateAreas","gridTemplateColumns","MozGridTemplateColumns","WebKitGridTemplateColumns","MSGridTemplateColumns","OGridTemplateColumns","gridTemplateRows","MozGridTemplateRows","WebKitGridTemplateRows","MSGridTemplateRows","OGridTemplateRows","height","MozHeight","WebKitHeight","MSHeight","OHeight","hyphens","MozHyphens","WebKitHyphens","MSHyphens","OHyphens","hz","MozHz","WebKitHz","MSHz","OHz","imageOrientation","MozImageOrientation","WebKitImageOrientation","MSImageOrientation","OImageOrientation","imageRendering","MozImageRendering","WebKitImageRendering","MSImageRendering","OImageRendering","imageResolution","MozImageResolution","WebKitImageResolution","MSImageResolution","OImageResolution","imeMode","MozImeMode","WebKitImeMode","MSImeMode","OImeMode","in","MozIn","WebKitIn","MSIn","OIn","inherit","MozInherit","WebKitInherit","MSInherit","OInherit","initial","MozInitial","WebKitInitial","MSInitial","OInitial","inlineSize","MozInlineSize","WebKitInlineSize","MSInlineSize","OInlineSize","isolation","MozIsolation","WebKitIsolation","MSIsolation","OIsolation","justifyContent","MozJustifyContent","WebKitJustifyContent","MSJustifyContent","OJustifyContent","khz","MozKhz","WebKitKhz","MSKhz","OKhz","left","MozLeft","WebKitLeft","MSLeft","OLeft","letterSpacing","MozLetterSpacing","WebKitLetterSpacing","MSLetterSpacing","OLetterSpacing","lineBreak","MozLineBreak","WebKitLineBreak","MSLineBreak","OLineBreak","lineHeight","MozLineHeight","WebKitLineHeight","MSLineHeight","OLineHeight","listStyle","MozListStyle","WebKitListStyle","MSListStyle","OListStyle","listStyleImage","MozListStyleImage","WebKitListStyleImage","MSListStyleImage","OListStyleImage","listStylePosition","MozListStylePosition","WebKitListStylePosition","MSListStylePosition","OListStylePosition","listStyleType","MozListStyleType","WebKitListStyleType","MSListStyleType","OListStyleType","margin","MozMargin","WebKitMargin","MSMargin","OMargin","marginBlockEnd","MozMarginBlockEnd","WebKitMarginBlockEnd","MSMarginBlockEnd","OMarginBlockEnd","marginBlockStart","MozMarginBlockStart","WebKitMarginBlockStart","MSMarginBlockStart","OMarginBlockStart","marginBottom","MozMarginBottom","WebKitMarginBottom","MSMarginBottom","OMarginBottom","marginInlineEnd","MozMarginInlineEnd","WebKitMarginInlineEnd","MSMarginInlineEnd","OMarginInlineEnd","marginInlineStart","MozMarginInlineStart","WebKitMarginInlineStart","MSMarginInlineStart","OMarginInlineStart","marginLeft","MozMarginLeft","WebKitMarginLeft","MSMarginLeft","OMarginLeft","marginRight","MozMarginRight","WebKitMarginRight","MSMarginRight","OMarginRight","marginTop","MozMarginTop","WebKitMarginTop","MSMarginTop","OMarginTop","mask","MozMask","WebKitMask","MSMask","OMask","maskClip","MozMaskClip","WebKitMaskClip","MSMaskClip","OMaskClip","maskComposite","MozMaskComposite","WebKitMaskComposite","MSMaskComposite","OMaskComposite","maskImage","MozMaskImage","WebKitMaskImage","MSMaskImage","OMaskImage","maskMode","MozMaskMode","WebKitMaskMode","MSMaskMode","OMaskMode","maskOrigin","MozMaskOrigin","WebKitMaskOrigin","MSMaskOrigin","OMaskOrigin","maskPosition","MozMaskPosition","WebKitMaskPosition","MSMaskPosition","OMaskPosition","maskRepeat","MozMaskRepeat","WebKitMaskRepeat","MSMaskRepeat","OMaskRepeat","maskSize","MozMaskSize","WebKitMaskSize","MSMaskSize","OMaskSize","maskType","MozMaskType","WebKitMaskType","MSMaskType","OMaskType","maxBlockSize","MozMaxBlockSize","WebKitMaxBlockSize","MSMaxBlockSize","OMaxBlockSize","maxHeight","MozMaxHeight","WebKitMaxHeight","MSMaxHeight","OMaxHeight","maxInlineSize","MozMaxInlineSize","WebKitMaxInlineSize","MSMaxInlineSize","OMaxInlineSize","maxWidth","MozMaxWidth","WebKitMaxWidth","MSMaxWidth","OMaxWidth","minBlockSize","MozMinBlockSize","WebKitMinBlockSize","MSMinBlockSize","OMinBlockSize","minHeight","MozMinHeight","WebKitMinHeight","MSMinHeight","OMinHeight","minInlineSize","MozMinInlineSize","WebKitMinInlineSize","MSMinInlineSize","OMinInlineSize","minWidth","MozMinWidth","WebKitMinWidth","MSMinWidth","OMinWidth","mixBlendMode","MozMixBlendMode","WebKitMixBlendMode","MSMixBlendMode","OMixBlendMode","mm","MozMm","WebKitMm","MSMm","OMm","ms","MozMs","WebKitMs","MSMs","OMs","objectFit","MozObjectFit","WebKitObjectFit","MSObjectFit","OObjectFit","objectPosition","MozObjectPosition","WebKitObjectPosition","MSObjectPosition","OObjectPosition","offsetBlockEnd","MozOffsetBlockEnd","WebKitOffsetBlockEnd","MSOffsetBlockEnd","OOffsetBlockEnd","offsetBlockStart","MozOffsetBlockStart","WebKitOffsetBlockStart","MSOffsetBlockStart","OOffsetBlockStart","offsetInlineEnd","MozOffsetInlineEnd","WebKitOffsetInlineEnd","MSOffsetInlineEnd","OOffsetInlineEnd","offsetInlineStart","MozOffsetInlineStart","WebKitOffsetInlineStart","MSOffsetInlineStart","OOffsetInlineStart","opacity","MozOpacity","WebKitOpacity","MSOpacity","OOpacity","order","MozOrder","WebKitOrder","MSOrder","OOrder","orphans","MozOrphans","WebKitOrphans","MSOrphans","OOrphans","outline","MozOutline","WebKitOutline","MSOutline","OOutline","outlineColor","MozOutlineColor","WebKitOutlineColor","MSOutlineColor","OOutlineColor","outlineOffset","MozOutlineOffset","WebKitOutlineOffset","MSOutlineOffset","OOutlineOffset","outlineStyle","MozOutlineStyle","WebKitOutlineStyle","MSOutlineStyle","OOutlineStyle","outlineWidth","MozOutlineWidth","WebKitOutlineWidth","MSOutlineWidth","OOutlineWidth","overflow","MozOverflow","WebKitOverflow","MSOverflow","OOverflow","overflowWrap","MozOverflowWrap","WebKitOverflowWrap","MSOverflowWrap","OOverflowWrap","overflowX","MozOverflowX","WebKitOverflowX","MSOverflowX","OOverflowX","overflowY","MozOverflowY","WebKitOverflowY","MSOverflowY","OOverflowY","padding","MozPadding","WebKitPadding","MSPadding","OPadding","paddingBlockEnd","MozPaddingBlockEnd","WebKitPaddingBlockEnd","MSPaddingBlockEnd","OPaddingBlockEnd","paddingBlockStart","MozPaddingBlockStart","WebKitPaddingBlockStart","MSPaddingBlockStart","OPaddingBlockStart","paddingBottom","MozPaddingBottom","WebKitPaddingBottom","MSPaddingBottom","OPaddingBottom","paddingInlineEnd","MozPaddingInlineEnd","WebKitPaddingInlineEnd","MSPaddingInlineEnd","OPaddingInlineEnd","paddingInlineStart","MozPaddingInlineStart","WebKitPaddingInlineStart","MSPaddingInlineStart","OPaddingInlineStart","paddingLeft","MozPaddingLeft","WebKitPaddingLeft","MSPaddingLeft","OPaddingLeft","paddingRight","MozPaddingRight","WebKitPaddingRight","MSPaddingRight","OPaddingRight","paddingTop","MozPaddingTop","WebKitPaddingTop","MSPaddingTop","OPaddingTop","pageBreakAfter","MozPageBreakAfter","WebKitPageBreakAfter","MSPageBreakAfter","OPageBreakAfter","pageBreakBefore","MozPageBreakBefore","WebKitPageBreakBefore","MSPageBreakBefore","OPageBreakBefore","pageBreakInside","MozPageBreakInside","WebKitPageBreakInside","MSPageBreakInside","OPageBreakInside","pc","MozPc","WebKitPc","MSPc","OPc","perspective","MozPerspective","WebKitPerspective","MSPerspective","OPerspective","perspectiveOrigin","MozPerspectiveOrigin","WebKitPerspectiveOrigin","MSPerspectiveOrigin","OPerspectiveOrigin","pointerEvents","MozPointerEvents","WebKitPointerEvents","MSPointerEvents","OPointerEvents","position","MozPosition","WebKitPosition","MSPosition","OPosition","pt","MozPt","WebKitPt","MSPt","OPt","px","MozPx","WebKitPx","MSPx","OPx","q","MozQ","WebKitQ","MSQ","OQ","quotes","MozQuotes","WebKitQuotes","MSQuotes","OQuotes","rad","MozRad","WebKitRad","MSRad","ORad","rem","MozRem","WebKitRem","MSRem","ORem","resize","MozResize","WebKitResize","MSResize","OResize","revert","MozRevert","WebKitRevert","MSRevert","ORevert","right","MozRight","WebKitRight","MSRight","ORight","rubyAlign","MozRubyAlign","WebKitRubyAlign","MSRubyAlign","ORubyAlign","rubyMerge","MozRubyMerge","WebKitRubyMerge","MSRubyMerge","ORubyMerge","rubyPosition","MozRubyPosition","WebKitRubyPosition","MSRubyPosition","ORubyPosition","s","MozS","WebKitS","MSS","OS","scrollBehavior","MozScrollBehavior","WebKitScrollBehavior","MSScrollBehavior","OScrollBehavior","scrollSnapCoordinate","MozScrollSnapCoordinate","WebKitScrollSnapCoordinate","MSScrollSnapCoordinate","OScrollSnapCoordinate","scrollSnapDestination","MozScrollSnapDestination","WebKitScrollSnapDestination","MSScrollSnapDestination","OScrollSnapDestination","scrollSnapType","MozScrollSnapType","WebKitScrollSnapType","MSScrollSnapType","OScrollSnapType","shapeImageThreshold","MozShapeImageThreshold","WebKitShapeImageThreshold","MSShapeImageThreshold","OShapeImageThreshold","shapeMargin","MozShapeMargin","WebKitShapeMargin","MSShapeMargin","OShapeMargin","shapeOutside","MozShapeOutside","WebKitShapeOutside","MSShapeOutside","OShapeOutside","tabSize","MozTabSize","WebKitTabSize","MSTabSize","OTabSize","tableLayout","MozTableLayout","WebKitTableLayout","MSTableLayout","OTableLayout","textAlign","MozTextAlign","WebKitTextAlign","MSTextAlign","OTextAlign","textAlignLast","MozTextAlignLast","WebKitTextAlignLast","MSTextAlignLast","OTextAlignLast","textCombineUpright","MozTextCombineUpright","WebKitTextCombineUpright","MSTextCombineUpright","OTextCombineUpright","textDecoration","MozTextDecoration","WebKitTextDecoration","MSTextDecoration","OTextDecoration","textDecorationColor","MozTextDecorationColor","WebKitTextDecorationColor","MSTextDecorationColor","OTextDecorationColor","textDecorationLine","MozTextDecorationLine","WebKitTextDecorationLine","MSTextDecorationLine","OTextDecorationLine","textDecorationStyle","MozTextDecorationStyle","WebKitTextDecorationStyle","MSTextDecorationStyle","OTextDecorationStyle","textEmphasis","MozTextEmphasis","WebKitTextEmphasis","MSTextEmphasis","OTextEmphasis","textEmphasisColor","MozTextEmphasisColor","WebKitTextEmphasisColor","MSTextEmphasisColor","OTextEmphasisColor","textEmphasisPosition","MozTextEmphasisPosition","WebKitTextEmphasisPosition","MSTextEmphasisPosition","OTextEmphasisPosition","textEmphasisStyle","MozTextEmphasisStyle","WebKitTextEmphasisStyle","MSTextEmphasisStyle","OTextEmphasisStyle","textIndent","MozTextIndent","WebKitTextIndent","MSTextIndent","OTextIndent","textOrientation","MozTextOrientation","WebKitTextOrientation","MSTextOrientation","OTextOrientation","textOverflow","MozTextOverflow","WebKitTextOverflow","MSTextOverflow","OTextOverflow","textRendering","MozTextRendering","WebKitTextRendering","MSTextRendering","OTextRendering","textShadow","MozTextShadow","WebKitTextShadow","MSTextShadow","OTextShadow","textTransform","MozTextTransform","WebKitTextTransform","MSTextTransform","OTextTransform","textUnderlinePosition","MozTextUnderlinePosition","WebKitTextUnderlinePosition","MSTextUnderlinePosition","OTextUnderlinePosition","top","MozTop","WebKitTop","MSTop","OTop","touchAction","MozTouchAction","WebKitTouchAction","MSTouchAction","OTouchAction","transform","MozTransform","WebKitTransform","MSTransform","OTransform","transformBox","MozTransformBox","WebKitTransformBox","MSTransformBox","OTransformBox","transformOrigin","MozTransformOrigin","WebKitTransformOrigin","MSTransformOrigin","OTransformOrigin","transformStyle","MozTransformStyle","WebKitTransformStyle","MSTransformStyle","OTransformStyle","transition","MozTransition","WebKitTransition","MSTransition","OTransition","transitionDelay","MozTransitionDelay","WebKitTransitionDelay","MSTransitionDelay","OTransitionDelay","transitionDuration","MozTransitionDuration","WebKitTransitionDuration","MSTransitionDuration","OTransitionDuration","transitionProperty","MozTransitionProperty","WebKitTransitionProperty","MSTransitionProperty","OTransitionProperty","transitionTimingFunction","MozTransitionTimingFunction","WebKitTransitionTimingFunction","MSTransitionTimingFunction","OTransitionTimingFunction","turn","MozTurn","WebKitTurn","MSTurn","OTurn","unicodeBidi","MozUnicodeBidi","WebKitUnicodeBidi","MSUnicodeBidi","OUnicodeBidi","unset","MozUnset","WebKitUnset","MSUnset","OUnset","verticalAlign","MozVerticalAlign","WebKitVerticalAlign","MSVerticalAlign","OVerticalAlign","vh","MozVh","WebKitVh","MSVh","OVh","visibility","MozVisibility","WebKitVisibility","MSVisibility","OVisibility","vmax","MozVmax","WebKitVmax","MSVmax","OVmax","vmin","MozVmin","WebKitVmin","MSVmin","OVmin","vw","MozVw","WebKitVw","MSVw","OVw","whiteSpace","MozWhiteSpace","WebKitWhiteSpace","MSWhiteSpace","OWhiteSpace","widows","MozWidows","WebKitWidows","MSWidows","OWidows","width","MozWidth","WebKitWidth","MSWidth","OWidth","willChange","MozWillChange","WebKitWillChange","MSWillChange","OWillChange","wordBreak","MozWordBreak","WebKitWordBreak","MSWordBreak","OWordBreak","wordSpacing","MozWordSpacing","WebKitWordSpacing","MSWordSpacing","OWordSpacing","wordWrap","MozWordWrap","WebKitWordWrap","MSWordWrap","OWordWrap","writingMode","MozWritingMode","WebKitWritingMode","MSWritingMode","OWritingMode","zIndex","MozZIndex","WebKitZIndex","MSZIndex","OZIndex","fontSize","MozFontSize","WebKitFontSize","MSFontSize","OFontSize"]; +},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),c=n(498),l=r(c),p=n(967),f=r(p),h=n(1002),d=r(h),m="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Safari/537.2",v=function(e){function t(){var e;i(this,t);for(var n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];var s=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(r)));return s.state={size:s.props.size},s}return a(t,e),u(t,[{key:"render",value:function(){var e=this.props.split,t=["Pane",e,this.props.className],n=s({},this.props.style||{},{flex:1,position:"relative",outline:"none"});return void 0!==this.state.size&&("vertical"===e?n.width=this.state.size:(n.height=this.state.size,n.display="flex"),n.flex="none"),l.default.createElement("div",{className:t.join(" "),style:this.props.prefixer.prefix(n)},this.props.children)}}]),t}(c.Component);v.propTypes={split:c.PropTypes.oneOf(["vertical","horizontal"]),className:c.PropTypes.string.isRequired,children:c.PropTypes.node.isRequired,prefixer:c.PropTypes.instanceOf(f.default).isRequired,style:d.default,size:c.PropTypes.oneOfType([l.default.PropTypes.string,l.default.PropTypes.number])},v.defaultProps={prefixer:new f.default({userAgent:m})},t.default=v,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=n(498),c=r(u),l=n(967),p=r(l),f=n(1002),h=r(f),d="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Safari/537.2",m=function(e){function t(){return i(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return a(t,e),s(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.split,r=t.className,i=t.resizerClassName,o=[i,n,r];return c.default.createElement("span",{className:o.join(" "),style:this.props.prefixer.prefix(this.props.style)||{},onMouseDown:function(t){e.props.onMouseDown(t)},onTouchStart:function(t){t.preventDefault(),e.props.onTouchStart(t)},onTouchEnd:function(t){t.preventDefault(),e.props.onTouchEnd(t)}})}}]),t}(u.Component);m.propTypes={onMouseDown:u.PropTypes.func.isRequired,onTouchStart:u.PropTypes.func.isRequired,onTouchEnd:u.PropTypes.func.isRequired,prefixer:u.PropTypes.instanceOf(p.default).isRequired,split:u.PropTypes.oneOf(["vertical","horizontal"]),className:u.PropTypes.string.isRequired,resizerClassName:u.PropTypes.string.isRequired,style:h.default},m.defaultProps={prefixer:new p.default({userAgent:d}),resizerClassName:"Resizer"},t.default=m,e.exports=t.default},function(e,t,n){var r=n(1007);"string"==typeof r&&(r=[[e.id,r,""]]);n(1009)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(1008)(),t.push([e.id,".swagger-ui .Resizer.vertical.disabled{display:none}",""])},function(e,t){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;t<this.length;t++){var n=this[t];n[2]?e.push("@media "+n[2]+"{"+n[1]+"}"):e.push(n[1])}return e.join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},i=0;i<this.length;i++){var o=this[i][0];"number"==typeof o&&(r[o]=!0)}for(i=0;i<t.length;i++){var a=t[i];"number"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),e.push(a))}},e}},function(e,t,n){function r(e,t){for(var n=0;n<e.length;n++){var r=e[n],i=h[r.id];if(i){i.refs++;for(var o=0;o<i.parts.length;o++)i.parts[o](r.parts[o]);for(;o<r.parts.length;o++)i.parts.push(c(r.parts[o],t))}else{for(var a=[],o=0;o<r.parts.length;o++)a.push(c(r.parts[o],t));h[r.id]={id:r.id,refs:1,parts:a}}}}function i(e){for(var t=[],n={},r=0;r<e.length;r++){var i=e[r],o=i[0],a=i[1],s=i[2],u=i[3],c={css:a,media:s,sourceMap:u};n[o]?n[o].parts.push(c):t.push(n[o]={id:o,parts:[c]})}return t}function o(e,t){var n=v(),r=_[_.length-1];if("top"===e.insertAt)r?r.nextSibling?n.insertBefore(t,r.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),_.push(t);else{if("bottom"!==e.insertAt)throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");n.appendChild(t)}}function a(e){e.parentNode.removeChild(e);var t=_.indexOf(e);t>=0&&_.splice(t,1)}function s(e){var t=document.createElement("style");return t.type="text/css",o(e,t),t}function u(e){var t=document.createElement("link");return t.rel="stylesheet",o(e,t),t}function c(e,t){var n,r,i;if(t.singleton){var o=g++;n=y||(y=s(t)),r=l.bind(null,n,o,!1),i=l.bind(null,n,o,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=u(t),r=f.bind(null,n),i=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=s(t),r=p.bind(null,n),i=function(){a(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else i()}}function l(e,t,n,r){var i=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=b(t,i);else{var o=document.createTextNode(i),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(o,a[t]):e.appendChild(o)}}function p(e,t){var n=t.css,r=t.media;t.sourceMap;if(r&&e.setAttribute("media",r),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}function f(e,t){var n=t.css,r=(t.media,t.sourceMap);r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var i=new Blob([n],{type:"text/css"}),o=e.href;e.href=URL.createObjectURL(i),o&&URL.revokeObjectURL(o)}var h={},d=function(e){var t;return function(){return"undefined"==typeof t&&(t=e.apply(this,arguments)),t}},m=d(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),v=d(function(){return document.head||document.getElementsByTagName("head")[0]}),y=null,g=0,_=[];e.exports=function(e,t){t=t||{},"undefined"==typeof t.singleton&&(t.singleton=m()),"undefined"==typeof t.insertAt&&(t.insertAt="bottom");var n=i(e);return r(n,t),function(e){for(var o=[],a=0;a<n.length;a++){var s=n[a],u=h[s.id];u.refs--,o.push(u)}if(e){var c=i(e);r(c,t)}for(var a=0;a<o.length;a++){var u=o[a];if(0===u.refs){for(var l=0;l<u.parts.length;l++)u.parts[l]();delete h[u.id]}}}};var b=function(){var e=[];return function(t,n){return e[t]=n,e.filter(Boolean).join("\n")}}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=e.fn,n={download:function(e){return function(n){function r(t){return t instanceof Error||t.status>=400?(a.updateLoadingStatus("failed"),i.newThrownErr(new Error(t.statusText+" "+e))):(a.updateLoadingStatus("success"),a.updateSpec(t.text),void a.updateUrl(e))}var i=n.errActions,o=n.specSelectors,a=n.specActions,s=t.fetch;e=e||o.url(),a.updateLoadingStatus("loading"),s({url:e,loadSpec:!0,credentials:"same-origin",headers:{Accept:"application/json,*/*"}}).then(r,r)}},updateLoadingStatus:function(e){var t=[null,"loading","failed","success","failedConfig"];return t.indexOf(e)===-1&&console.error("Error: "+e+" is not one of "+(0,a.default)(t)),{type:"spec_update_loading_status",payload:e}}},r={spec_update_loading_status:function(e,t){return"string"==typeof t.payload?e.set("loadingStatus",t.payload):e}},i={loadingStatus:(0,s.createSelector)(function(e){return e||(0,u.Map)()},function(e){return e.get("loadingStatus")||null})};return{statePlugins:{spec:{actions:n,reducers:r,selectors:i}}}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(57),a=r(o);t.default=i;var s=n(430),u=n(168)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=function(e){function t(){return(0,s.default)(this,t),(0,p.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"getLayout",value:function(){var e=this.props,t=e.getComponent,n=e.layoutSelectors,r=n.current(),i=t(r,!0);return i?i:function(){return m.default.createElement("h1",null,' No layout defined for "',r,'" ')}}},{key:"render",value:function(){var e=this.getLayout();return m.default.createElement(e,null)}}]),t}(m.default.Component);t.default=v,v.propTypes={getComponent:d.PropTypes.func.isRequired,layoutSelectors:d.PropTypes.object.isRequired},v.defaultProps={}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=function(e){function t(){var e,n,r,i;(0,s.default)(this,t);for(var a=arguments.length,u=Array(a),c=0;c<a;c++)u[c]=arguments[c];return n=r=(0,p.default)(this,(e=t.__proto__||(0,o.default)(t)).call.apply(e,[this].concat(u))),r.close=function(){var e=r.props.authActions;e.showDefinitions(!1)},i=n,(0,p.default)(r,i)}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props,t=e.authSelectors,n=e.authActions,r=e.getComponent,i=e.errSelectors,o=e.specSelectors,a=e.fn.AST,s=t.shownDefinitions(),u=r("auths");return m.default.createElement("div",{className:"dialog-ux"},m.default.createElement("div",{className:"backdrop-ux"}),m.default.createElement("div",{className:"modal-ux"},m.default.createElement("div",{className:"modal-dialog-ux"},m.default.createElement("div",{className:"modal-ux-inner"},m.default.createElement("div",{className:"modal-ux-header"},m.default.createElement("h3",null,"Available authorizations"),m.default.createElement("button",{type:"button",className:"close-modal",onClick:this.close},m.default.createElement("svg",{width:"20",height:"20"},m.default.createElement("use",{xlinkHref:"#close"})))),m.default.createElement("div",{className:"modal-ux-content"},s.valueSeq().map(function(e,s){return m.default.createElement(u,{key:s,AST:a,definitions:e,getComponent:r,errSelectors:i,authSelectors:t,authActions:n,specSelectors:o})}))))))}}]),t}(m.default.Component);v.propTypes={fn:d.PropTypes.object.isRequired,getComponent:d.PropTypes.func.isRequired,authSelectors:d.PropTypes.object.isRequired,specSelectors:d.PropTypes.object.isRequired,errSelectors:d.PropTypes.object.isRequired,authActions:d.PropTypes.object.isRequired},t.default=v},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=function(e){function t(){var e,n,r,i;(0,s.default)(this,t);for(var a=arguments.length,u=Array(a),c=0;c<a;c++)u[c]=arguments[c];return n=r=(0,p.default)(this,(e=t.__proto__||(0,o.default)(t)).call.apply(e,[this].concat(u))),r.onClick=function(){var e=r.props,t=e.authActions,n=e.authSelectors,i=n.definitionsToAuthorize();t.showDefinitions(i)},i=n,(0,p.default)(r,i)}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props,t=e.authSelectors,n=e.getComponent,r=n("authorizationPopup",!0),i=!!t.shownDefinitions(),o=!!t.authorized().size;return m.default.createElement("div",{className:"auth-wrapper"},m.default.createElement("button",{className:o?"btn authorize locked":"btn authorize unlocked",onClick:this.onClick},m.default.createElement("span",null,"Authorize"),m.default.createElement("svg",{width:"20",height:"20"},m.default.createElement("use",{xlinkHref:o?"#locked":"#unlocked"}))),i&&m.default.createElement(r,null))}}]),t}(m.default.Component);v.propTypes={className:d.PropTypes.string},v.propTypes={getComponent:d.PropTypes.func.isRequired,authSelectors:d.PropTypes.object.isRequired,errActions:d.PropTypes.object.isRequired,authActions:d.PropTypes.object.isRequired},t.default=v},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=n(1015),y=r(v),g=function(e){function t(){var e,n,r,i;(0,s.default)(this,t);for(var a=arguments.length,u=Array(a),c=0;c<a;c++)u[c]=arguments[c];return n=r=(0,p.default)(this,(e=t.__proto__||(0,o.default)(t)).call.apply(e,[this].concat(u))),r.onClick=function(e){e.stopPropagation();var t=r.props,n=t.security,i=t.authActions,o=t.authSelectors,a=o.getDefinitionsByNames(n);i.showDefinitions(a)},i=n,(0,p.default)(r,i)}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props,t=e.security,n=e.authSelectors,r=n.isAuthorized(t);return null===r?null:m.default.createElement("button",{className:r?"authorization__btn locked":"authorization__btn unlocked",onClick:this.onClick},m.default.createElement("svg",{width:"20",height:"20"},m.default.createElement("use",{xlinkHref:r?"#locked":"#unlocked"})))}}]),t}(m.default.Component);g.propTypes={authSelectors:d.PropTypes.object.isRequired,authActions:d.PropTypes.object.isRequired,security:y.default.iterable.isRequired},t.default=g},function(e,t,n){"use strict";function r(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":e instanceof b.Iterable?"Immutable."+e.toSource().split(" ")[0]:t}function i(e){function t(t,n,r,i,o,a){for(var s=arguments.length,u=Array(s>6?s-6:0),c=6;c<s;c++)u[c-6]=arguments[c];if(a=a||r,i=i||x,null!=n[r])return e.apply(void 0,[n,r,i,o,a].concat(u));var l=o;return t?new Error("Required "+l+" `"+a+"` was not specified in "+("`"+i+"`.")):void 0}var n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n}function o(e,t){function n(n,i,o,a,s){var u=n[i];if(!t(u)){var c=r(u);return new Error("Invalid "+a+" `"+s+"` of type `"+c+"` "+("supplied to `"+o+"`, expected `"+e+"`."))}return null}return i(n)}function a(e,t,n){function o(i,o,a,s,u){for(var c=arguments.length,l=Array(c>5?c-5:0),p=5;p<c;p++)l[p-5]=arguments[p];var f=i[o];if(!n(f)){var h=s,d=r(f);return new Error("Invalid "+h+" `"+u+"` of type "+("`"+d+"` supplied to `"+a+"`, expected an Immutable.js "+t+"."))}if("function"!=typeof e)return new Error("Invalid typeChecker supplied to `"+a+"` "+("for propType `"+u+"`, expected a function."));for(var m=f.toArray(),v=0,y=m.length;v<y;v++){var g=e.apply(void 0,[m,v,a,s,""+u+"["+v+"]"].concat(l));if(g instanceof Error)return g}}return i(o)}function s(e){function t(t,n,r,i,o){for(var a=arguments.length,s=Array(a>5?a-5:0),u=5;u<a;u++)s[u-5]=arguments[u];var c=t[n];if("function"!=typeof e)return new Error("Invalid keysTypeChecker (optional second argument) supplied to `"+r+"` "+("for propType `"+o+"`, expected a function."));for(var l=c.keySeq().toArray(),p=0,f=l.length;p<f;p++){var h=e.apply(void 0,[l,p,r,i,""+o+" -> key("+l[p]+")"].concat(s));if(h instanceof Error)return h}}return i(t)}function u(e){return a(e,"List",b.List.isList)}function c(e,t,n,r){function o(){for(var i=arguments.length,o=Array(i),u=0;u<i;u++)o[u]=arguments[u];return a(e,n,r).apply(void 0,o)||t&&s(t).apply(void 0,o)}return i(o)}function l(e,t){return c(e,t,"Map",b.Map.isMap)}function p(e,t){return c(e,t,"OrderedMap",b.OrderedMap.isOrderedMap)}function f(e){return a(e,"Set",b.Set.isSet)}function h(e){return a(e,"OrderedSet",b.OrderedSet.isOrderedSet)}function d(e){return a(e,"Stack",b.Stack.isStack)}function m(e){return a(e,"Iterable",b.Iterable.isIterable)}function v(e){function t(t,n,i,o,a){for(var s=arguments.length,u=Array(s>5?s-5:0),c=5;c<s;c++)u[c-5]=arguments[c];var l=t[n];if(!(l instanceof b.Record)){var p=r(l),f=o;return new Error("Invalid "+f+" `"+a+"` of type `"+p+"` "+("supplied to `"+i+"`, expected an Immutable.js Record."))}for(var h in e){var d=e[h];if(d){var m=l.toObject(),v=d.apply(void 0,[m,h,i,o,""+a+"."+h].concat(u));if(v)return v}}}return i(t)}function y(e){function t(t,i,a,s,u){for(var c=arguments.length,l=Array(c>5?c-5:0),p=5;p<c;p++)l[p-5]=arguments[p];var f=t[i];if(!o(f)){var h=r(f),d=s;return new Error("Invalid "+d+" `"+u+"` of type `"+h+"` "+("supplied to `"+a+"`, expected an Immutable.js "+n+"."))}var m=f.toObject();for(var v in e){var y=e[v];if(y){var g=y.apply(void 0,[m,v,a,s,""+u+"."+v].concat(l));if(g)return g}}}var n=void 0===arguments[1]?"Iterable":arguments[1],o=void 0===arguments[2]?b.Iterable.isIterable:arguments[2];return i(t)}function g(e){return y(e)}function _(e){return y(e,"Map",b.Map.isMap)}var b=n(168),x="<<anonymous>>",w={listOf:u,mapOf:l,orderedMapOf:p,setOf:f,orderedSetOf:h,stackOf:d,iterableOf:m,recordOf:v,shape:g,contains:g,mapContains:_,list:o("List",b.List.isList),map:o("Map",b.Map.isMap),orderedMap:o("OrderedMap",b.OrderedMap.isOrderedMap),set:o("Set",b.Set.isSet),orderedSet:o("OrderedSet",b.OrderedSet.isOrderedSet),stack:o("Stack",b.Stack.isStack),seq:o("Seq",b.Seq.isSeq),record:o("Record",function(e){return e instanceof b.Record}),iterable:o("Iterable",b.Iterable.isIterable)};e.exports=w},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(137),o=r(i),a=n(486),s=r(a),u=n(145),c=r(u),l=n(146),p=r(l),f=n(489),h=r(f),d=n(490),m=r(d),v=n(498),y=r(v),g=n(1015),_=r(g),b=function(e){function t(e,n){(0,c.default)(this,t);var r=(0,h.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,n));return r.onAuthChange=function(e){var t=e.name;r.setState((0,o.default)({},t,e))},r.submitAuth=function(e){e.preventDefault();var t=r.props.authActions;t.authorize(r.state)},r.logoutClick=function(e){e.preventDefault();var t=r.props,n=t.authActions,i=t.definitions,o=i.map(function(e,t){return t}).toArray();n.logout(o)},r.state={},r}return(0,m.default)(t,e),(0,p.default)(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.definitions,r=t.getComponent,i=t.authSelectors,o=t.errSelectors,a=r("apiKeyAuth"),s=r("basicAuth"),u=r("oauth2",!0),c=r("Button"),l=i.authorized(),p=n.filter(function(e,t){return!!l.get(t)}),f=n.filter(function(e){return"oauth2"!==e.get("type")}),h=n.filter(function(e){return"oauth2"===e.get("type")});return y.default.createElement("div",{className:"auth-container"},!!f.size&&y.default.createElement("form",{onSubmit:this.submitAuth},f.map(function(t,n){var i=t.get("type"),u=void 0;switch(i){case"apiKey":u=y.default.createElement(a,{key:n,schema:t,name:n,errSelectors:o,authorized:l,getComponent:r,onChange:e.onAuthChange});break;case"basic":u=y.default.createElement(s,{key:n,schema:t,name:n,errSelectors:o,authorized:l,getComponent:r,onChange:e.onAuthChange});break;default:u=y.default.createElement("div",{key:n},"Unknown security definition type ",i)}return y.default.createElement("div",{key:n+"-jump"},u)}).toArray(),y.default.createElement("div",{className:"auth-btn-wrapper"},f.size===p.size?y.default.createElement(c,{className:"btn modal-btn auth",onClick:this.logoutClick},"Logout"):y.default.createElement(c,{type:"submit",className:"btn modal-btn auth authorize"},"Authorize"))),h&&h.size?y.default.createElement("div",null,y.default.createElement("div",{className:"scope-def"},y.default.createElement("p",null,"Scopes are used to grant an application different levels of access to data on behalf of the end user. Each API may declare one or more scopes."),y.default.createElement("p",null,"API requires the following scopes. Select which ones you want to grant to Swagger UI.")),n.filter(function(e){return"oauth2"===e.get("type")}).map(function(e,t){return y.default.createElement("div",{key:t},y.default.createElement(u,{authorized:l,schema:e,name:t}))}).toArray()):null)}}]),t}(y.default.Component);b.propTypes={definitions:v.PropTypes.object.isRequired,getComponent:v.PropTypes.func.isRequired,authSelectors:v.PropTypes.object.isRequired,authActions:v.PropTypes.object.isRequired,specSelectors:v.PropTypes.object.isRequired},b.propTypes={errSelectors:v.PropTypes.object.isRequired,getComponent:v.PropTypes.func.isRequired,authSelectors:v.PropTypes.object.isRequired,specSelectors:v.PropTypes.object.isRequired,authActions:v.PropTypes.object.isRequired,definitions:_.default.iterable.isRequired},t.default=b},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=function(e){function t(){return(0,s.default)(this,t),(0,p.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props.error,t=e.get("level"),n=e.get("message"),r=e.get("source");return m.default.createElement("div",{className:"errors",style:{backgroundColor:"#ffeeee",color:"red",margin:"1em"}},m.default.createElement("b",{style:{textTransform:"capitalize",marginRight:"1em"}},r," ",t),m.default.createElement("span",null,n))}}]),t}(m.default.Component);v.propTypes={error:d.PropTypes.object.isRequired},t.default=v},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(141),o=r(i),a=n(486),s=r(a),u=n(145),c=r(u),l=n(146),p=r(l),f=n(489),h=r(f),d=n(490),m=r(d),v=n(498),y=r(v),g=function(e){function t(e,n){(0,c.default)(this,t);var r=(0,h.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,n));_.call(r);var i=r.props,o=i.name,a=i.schema,u=r.getValue();return r.state={name:o,schema:a,value:u},r}return(0,m.default)(t,e),(0,p.default)(t,[{key:"getValue",value:function(){var e=this.props,t=e.name,n=e.authorized;return n&&n.getIn([t,"value"])}},{key:"render",value:function(){var e=this.props,t=e.schema,n=e.getComponent,r=e.errSelectors,i=e.name,o=n("Input"),a=n("Row"),s=n("Col"),u=n("authError"),c=n("Markdown"),l=n("JumpToPath",!0),p=this.getValue(),f=r.allErrors().filter(function(e){return e.get("authId")===i});return y.default.createElement("div",null,y.default.createElement("h4",null,"Api key authorization",y.default.createElement(l,{path:["securityDefinitions",i]})),p&&y.default.createElement("h6",null,"Authorized"),y.default.createElement(a,null,y.default.createElement(c,{source:t.get("description")})),y.default.createElement(a,null,y.default.createElement("p",null,"Name: ",y.default.createElement("code",null,t.get("name")))),y.default.createElement(a,null,y.default.createElement("p",null,"In: ",y.default.createElement("code",null,t.get("in")))),y.default.createElement(a,null,y.default.createElement("label",null,"Value:"),p?y.default.createElement("code",null," ****** "):y.default.createElement(s,null,y.default.createElement(o,{type:"text",onChange:this.onChange}))),f.valueSeq().map(function(e,t){return y.default.createElement(u,{error:e,key:t})}))}}]),t}(y.default.Component);g.propTypes={authorized:v.PropTypes.object,getComponent:v.PropTypes.func.isRequired,errSelectors:v.PropTypes.object.isRequired,schema:v.PropTypes.object.isRequired,name:v.PropTypes.string.isRequired,onChange:v.PropTypes.func};var _=function(){var e=this;this.onChange=function(t){var n=e.props.onChange,r=t.target.value,i=(0,o.default)({},e.state,{value:r});e.setState(i),n(i)}};t.default=g},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=n(1015),y=r(v),g=function(e){function t(e,n){(0,s.default)(this,t);var r=(0,p.default)(this,(t.__proto__||(0,o.default)(t)).call(this,e,n));_.call(r);var i=r.props,a=i.schema,u=i.name,c=r.getValue(),l=c.username;return r.state={name:u,schema:a,value:l?{username:l}:{}},r}return(0,h.default)(t,e),(0,c.default)(t,[{key:"getValue",value:function(){var e=this.props,t=e.authorized,n=e.name;return t&&t.getIn([n,"value"])||{}}},{key:"render",value:function(){var e=this.props,t=e.schema,n=e.getComponent,r=e.name,i=e.errSelectors,o=n("Input"),a=n("Row"),s=n("Col"),u=n("authError"),c=n("JumpToPath",!0),l=n("Markdown"),p=this.getValue().username,f=i.allErrors().filter(function(e){return e.get("authId")===r});return m.default.createElement("div",null,m.default.createElement("h4",null,"Basic authorization",m.default.createElement(c,{path:["securityDefinitions",r]})),p&&m.default.createElement("h6",null,"Authorized"),m.default.createElement(a,null,m.default.createElement(l,{source:t.get("description")})),m.default.createElement(a,null,m.default.createElement("label",null,"Username:"),p?m.default.createElement("code",null," ",p," "):m.default.createElement(s,null,m.default.createElement(o,{type:"text",required:"required",name:"username",onChange:this.onChange}))),m.default.createElement(a,null,m.default.createElement("label",null,"Password:"),p?m.default.createElement("code",null," ****** "):m.default.createElement(s,null,m.default.createElement(o,{required:"required",autoComplete:"new-password",name:"password",type:"password",onChange:this.onChange}))),f.valueSeq().map(function(e,t){return m.default.createElement(u,{error:e,key:t})}))}}]),t}(m.default.Component);g.propTypes={authorized:d.PropTypes.object,getComponent:d.PropTypes.func.isRequired,schema:d.PropTypes.object.isRequired,onChange:d.PropTypes.func.isRequired},g.propTypes={name:d.PropTypes.string.isRequired,errSelectors:d.PropTypes.object.isRequired,getComponent:d.PropTypes.func.isRequired,onChange:d.PropTypes.func,schema:y.default.map,authorized:y.default.map};var _=function(){var e=this;this.onChange=function(t){var n=e.props.onChange,r=t.target,i=r.value,o=r.name,a=e.state.value;a[o]=i,e.setState({value:a}),n(e.state)}};t.default=g},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(137),o=r(i),a=n(486),s=r(a),u=n(145),c=r(u),l=n(146),p=r(l),f=n(489),h=r(f),d=n(490),m=r(d),v=n(498),y=r(v),g=n(1021),_=r(g),b="implicit",x="accessCode",w="password",k="application",S=function(e){function t(e,n){(0,c.default)(this,t);var r=(0,h.default)(this,(t.__proto__||(0,s.default)(t)).call(this,e,n));E.call(r);var i=r.props,o=i.name,a=i.schema,u=i.authorized,l=i.authSelectors,p=u&&u.get(o),f=l.getConfigs()||{},d=p&&p.get("username")||"",m=p&&p.get("clientId")||f.clientId||"",v=p&&p.get("clientSecret")||f.clientSecret||"",y=p&&p.get("passwordType")||"request-body";return r.state={appName:f.appName,name:o,schema:a,scopes:[],clientId:m,clientSecret:v,username:d,password:"",passwordType:y},r}return(0,m.default)(t,e),(0,p.default)(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.schema,r=t.getComponent,i=t.authSelectors,o=t.errSelectors,a=t.name,s=r("Input"),u=r("Row"),c=r("Col"),l=r("Button"),p=r("authError"),f=r("JumpToPath",!0),h=r("Markdown"),d=n.get("flow"),m=n.get("allowedScopes")||n.get("scopes"),v=i.authorized().get(a),g=!!v,_=o.allErrors().filter(function(e){return e.get("authId")===a}),S=!_.filter(function(e){return"validation"===e.get("source")}).size,E=n.get("description");return y.default.createElement("div",null,y.default.createElement("h4",null,"OAuth2.0 ",y.default.createElement(f,{path:["securityDefinitions",a]})),this.state.appName?y.default.createElement("h5",null,"Application: ",this.state.appName," "):null,E&&y.default.createElement(h,{source:n.get("description")}),g&&y.default.createElement("h6",null,"Authorized"),(d===b||d===x)&&y.default.createElement("p",null,"Authorization URL: ",y.default.createElement("code",null,n.get("authorizationUrl"))),(d===w||d===x||d===k)&&y.default.createElement("p",null,"Token URL:",y.default.createElement("code",null," ",n.get("tokenUrl"))),y.default.createElement("p",{className:"flow"},"Flow: ",y.default.createElement("code",null,n.get("flow"))),d!==w?null:y.default.createElement(u,null,y.default.createElement(u,null,y.default.createElement("label",{htmlFor:"oauth_username"},"username:"),g?y.default.createElement("code",null," ",this.state.username," "):y.default.createElement(c,{tablet:10,desktop:10},y.default.createElement("input",{id:"oauth_username",type:"text","data-name":"username",onChange:this.onInputChange}))),y.default.createElement(u,null,y.default.createElement("label",{htmlFor:"oauth_password"},"password:"),g?y.default.createElement("code",null," ****** "):y.default.createElement(c,{tablet:10,desktop:10},y.default.createElement("input",{id:"oauth_password",type:"password","data-name":"password",onChange:this.onInputChange}))),y.default.createElement(u,null,y.default.createElement("label",{htmlFor:"password_type"},"type:"),g?y.default.createElement("code",null," ",this.state.passwordType," "):y.default.createElement(c,{tablet:10,desktop:10},y.default.createElement("select",{id:"password_type","data-name":"passwordType",onChange:this.onInputChange},y.default.createElement("option",{value:"request-body"},"Request body"),y.default.createElement("option",{value:"basic"},"Basic auth"),y.default.createElement("option",{value:"query"},"Query parameters"))))),(d===k||d===b||d===x||d===w&&"basic"!==this.state.passwordType)&&(!g||g&&this.state.clientId)&&y.default.createElement(u,null,y.default.createElement("label",{htmlFor:"client_id"},"client_id:"),g?y.default.createElement("code",null," ****** "):y.default.createElement(c,{tablet:10,desktop:10},y.default.createElement("input",{id:"client_id",type:"text",required:d===w,value:this.state.clientId,"data-name":"clientId",onChange:this.onInputChange}))),(d===k||d===x||d===w&&"basic"!==this.state.passwordType)&&y.default.createElement(u,null,y.default.createElement("label",{htmlFor:"client_secret"},"client_secret:"),g?y.default.createElement("code",null," ****** "):y.default.createElement(c,{tablet:10,desktop:10},y.default.createElement("input",{id:"client_secret",value:this.state.clientSecret,type:"text","data-name":"clientSecret",onChange:this.onInputChange}))),!g&&m&&m.size?y.default.createElement("div",{className:"scopes"},y.default.createElement("h2",null,"Scopes:"),m.map(function(t,n){return y.default.createElement(u,{key:n},y.default.createElement("div",{className:"checkbox"},y.default.createElement(s,{"data-value":n,id:n+"-checkbox-"+e.state.name,disabled:g,type:"checkbox",onChange:e.onScopeChange}),y.default.createElement("label",{htmlFor:n+"-checkbox-"+e.state.name},y.default.createElement("span",{className:"item"}),y.default.createElement("div",{className:"text"},y.default.createElement("p",{className:"name" +},n),y.default.createElement("p",{className:"description"},t)))))}).toArray()):null,_.valueSeq().map(function(e,t){return y.default.createElement(p,{error:e,key:t})}),y.default.createElement("div",{className:"auth-btn-wrapper"},S&&(g?y.default.createElement(l,{className:"btn modal-btn auth authorize",onClick:this.logout},"Logout"):y.default.createElement(l,{className:"btn modal-btn auth authorize",onClick:this.authorize},"Authorize"))))}}]),t}(y.default.Component);S.propTypes={name:v.PropTypes.string,authorized:v.PropTypes.object,getComponent:v.PropTypes.func.isRequired,schema:v.PropTypes.object.isRequired,authSelectors:v.PropTypes.object.isRequired,authActions:v.PropTypes.object.isRequired,errSelectors:v.PropTypes.object.isRequired,errActions:v.PropTypes.object.isRequired,getConfigs:v.PropTypes.any};var E=function(){var e=this;this.authorize=function(){var t=e.props,n=t.authActions,r=t.errActions,i=t.getConfigs,o=t.authSelectors,a=i(),s=o.getConfigs();r.clear({authId:name,type:"auth",source:"auth"}),(0,_.default)({auth:e.state,authActions:n,errActions:r,configs:a,authConfigs:s})},this.onScopeChange=function(t){var n=t.target,r=n.checked,i=n.dataset.value;if(r&&e.state.scopes.indexOf(i)===-1){var o=e.state.scopes.concat([i]);e.setState({scopes:o})}else!r&&e.state.scopes.indexOf(i)>-1&&e.setState({scopes:e.state.scopes.filter(function(e){return e!==i})})},this.onInputChange=function(t){var n=t.target,r=n.dataset.name,i=n.value,a=(0,o.default)({},r,i);e.setState(a)},this.logout=function(t){t.preventDefault();var n=e.props,r=n.authActions,i=n.errActions,o=n.name;i.clear({authId:o,type:"auth",source:"auth"}),r.logout([o])}};t.default=S},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=e.auth,n=e.authActions,r=e.errActions,i=e.configs,o=e.authConfigs,u=void 0===o?{}:o,c=t.schema,l=t.scopes,p=t.name,f=t.clientId,h=c.get("flow"),d=[];switch(h){case"password":return void n.authorizePassword(t);case"application":return void n.authorizeApplication(t);case"accessCode":d.push("response_type=code");break;case"implicit":d.push("response_type=token")}"string"==typeof f&&d.push("client_id="+encodeURIComponent(f));var m=i.oauth2RedirectUrl;if("undefined"==typeof m)return void r.newAuthErr({authId:p,source:"validation",level:"error",message:"oauth2RedirectUri configuration is not passed. Oauth2 authorization cannot be performed."});if(d.push("redirect_uri="+encodeURIComponent(m)),Array.isArray(l)&&0<l.length){var v=u.scopeSeparator||" ";d.push("scope="+encodeURIComponent(l.join(v)))}var y=(0,s.btoa)(new Date);d.push("state="+encodeURIComponent(y)),"undefined"!=typeof u.realm&&d.push("realm="+encodeURIComponent(u.realm));var g=u.additionalQueryStringParams;for(var _ in g)"undefined"!=typeof g[_]&&d.push([_,g[_]].map(encodeURIComponent).join("="));var b=[c.get("authorizationUrl"),d.join("&")].join("?");a.default.swaggerUIRedirectOauth2={auth:t,state:y,redirectUrl:m,callback:"implicit"===h?n.preAuthorizeImplicit:n.authorizeAccessCode,errCb:r.newAuthErr},a.default.open(b)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(177),a=r(o),s=n(183)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=function(e){function t(){var e,n,r,i;(0,s.default)(this,t);for(var a=arguments.length,u=Array(a),c=0;c<a;c++)u[c]=arguments[c];return n=r=(0,p.default)(this,(e=t.__proto__||(0,o.default)(t)).call.apply(e,[this].concat(u))),r.onClick=function(){var e=r.props,t=e.specActions,n=e.path,i=e.method;t.clearResponse(n,i),t.clearRequest(n,i)},i=n,(0,p.default)(r,i)}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){return m.default.createElement("button",{className:"btn btn-clear opblock-control__btn",onClick:this.onClick},"Clear")}}]),t}(d.Component);v.propTypes={specActions:d.PropTypes.object.isRequired,path:d.PropTypes.string.isRequired,method:d.PropTypes.string.isRequired},t.default=v},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(60),o=r(i),a=n(486),s=r(a),u=n(145),c=r(u),l=n(146),p=r(l),f=n(489),h=r(f),d=n(490),m=r(d),v=n(498),y=r(v),g=n(1015),_=r(g),b=function(e){var t=e.headers;return y.default.createElement("div",null,y.default.createElement("h5",null,"Response headers"),y.default.createElement("pre",null,t))};b.propTypes={headers:v.PropTypes.array.isRequired};var x=function(e){function t(){return(0,c.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,m.default)(t,e),(0,p.default)(t,[{key:"render",value:function(){var e=this.props,t=e.request,n=e.response,r=e.getComponent,i=n.get("status"),a=n.get("url"),s=n.get("headers").toJS(),u=n.get("notDocumented"),c=n.get("error"),l=c?n.get("response").get("text"):n.get("text"),p=(0,o.default)(s),f=s["content-type"],h=r("curl"),d=r("responseBody"),m=p.map(function(e){return y.default.createElement("span",{className:"headerline",key:e}," ",e,": ",s[e]," ")}),v=0!==m.length;return y.default.createElement("div",null,t&&y.default.createElement(h,{request:t}),y.default.createElement("h4",null,"Server response"),y.default.createElement("table",{className:"responses-table"},y.default.createElement("thead",null,y.default.createElement("tr",{className:"responses-header"},y.default.createElement("td",{className:"col col_header response-col_status"},"Code"),y.default.createElement("td",{className:"col col_header response-col_description"},"Details"))),y.default.createElement("tbody",null,y.default.createElement("tr",{className:"response"},y.default.createElement("td",{className:"col response-col_status"},i,u?y.default.createElement("div",{className:"response-undocumented"},y.default.createElement("i",null," Undocumented ")):null),y.default.createElement("td",{className:"col response-col_description"},c?y.default.createElement("span",null,n.get("name")+": "+n.get("message")):null,l?y.default.createElement(d,{content:l,contentType:f,url:a,headers:s,getComponent:r}):null,v?y.default.createElement(b,{headers:m}):null)))))}}]),t}(y.default.Component);x.propTypes={response:v.PropTypes.object.isRequired,getComponent:v.PropTypes.func.isRequired},x.propTypes={getComponent:v.PropTypes.func.isRequired,request:_.default.map,response:_.default.map},t.default=x},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(60),o=r(i),a=n(94),s=r(a),u=n(486),c=r(u),l=n(145),p=r(l),f=n(146),h=r(f),d=n(489),m=r(d),v=n(490),y=r(v),g=n(498),_=r(g),b=function(e){function t(e,n){(0,p.default)(this,t);var r=(0,m.default)(this,(t.__proto__||(0,c.default)(t)).call(this,e,n)),i=e.specSelectors,o=e.getConfigs,a=o(),s=a.validatorUrl;return r.state={url:i.url(),validatorUrl:void 0===s?"https://online.swagger.io/validator":s},r}return(0,y.default)(t,e),(0,h.default)(t,[{key:"componentWillReceiveProps",value:function(e){var t=e.specSelectors,n=e.getConfigs,r=n(),i=r.validatorUrl;this.setState({url:t.url(),validatorUrl:void 0===i?"https://online.swagger.io/validator":i})}},{key:"render",value:function(){var e=this.props.getConfigs,t=e(),n=t.spec;return"object"===("undefined"==typeof n?"undefined":(0,s.default)(n))&&(0,o.default)(n).length?null:!this.state.url||!this.state.validatorUrl||this.state.url.indexOf("localhost")>=0||this.state.url.indexOf("127.0.0.1")>=0?null:_.default.createElement("span",{style:{float:"right"}},_.default.createElement("a",{target:"_blank",href:this.state.validatorUrl+"/debug?url="+this.state.url},_.default.createElement(x,{src:this.state.validatorUrl+"?url="+this.state.url,alt:"Online validator badge"})))}}]),t}(_.default.Component);b.propTypes={getComponent:g.PropTypes.func.isRequired,getConfigs:g.PropTypes.func.isRequired,specSelectors:g.PropTypes.object.isRequired},t.default=b;var x=function(e){function t(e){(0,p.default)(this,t);var n=(0,m.default)(this,(t.__proto__||(0,c.default)(t)).call(this,e));return n.state={loaded:!1,error:!1},n}return(0,y.default)(t,e),(0,h.default)(t,[{key:"componentDidMount",value:function(){var e=this,t=new Image;t.onload=function(){e.setState({loaded:!0})},t.onerror=function(){e.setState({error:!0})},t.src=this.props.src}},{key:"componentWillReceiveProps",value:function(e){var t=this;if(e.src!==this.props.src){var n=new Image;n.onload=function(){t.setState({loaded:!0})},n.onerror=function(){t.setState({error:!0})},n.src=e.src}}},{key:"render",value:function(){return this.state.error?_.default.createElement("img",{alt:"Error"}):this.state.loaded?_.default.createElement("img",{src:this.props.src,alt:this.props.alt}):_.default.createElement("img",{alt:"Loading..."})}}]),t}(_.default.Component);x.propTypes={src:g.PropTypes.string,alt:g.PropTypes.string}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(446),o=r(i),a=n(486),s=r(a),u=n(145),c=r(u),l=n(146),p=r(l),f=n(489),h=r(f),d=n(490),m=r(d),v=n(498),y=r(v),g=function(e){function t(){return(0,c.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,m.default)(t,e),(0,p.default)(t,[{key:"render",value:function(){var e=this.props,t=e.specSelectors,n=e.specActions,r=e.getComponent,i=e.layoutSelectors,a=e.layoutActions,s=e.authActions,u=e.authSelectors,c=e.getConfigs,l=e.fn,p=t.taggedOperations(),f=r("operation"),h=r("Collapse"),d=i.showSummary(),m=c(),v=m.docExpansion,g=m.displayOperationId;return y.default.createElement("div",null,p.map(function(e,p){var m=e.get("operations"),_=e.getIn(["tagDetails","description"],null),b=["operations-tag",p],x=i.isShown(b,"full"===v||"list"===v);return y.default.createElement("div",{className:x?"opblock-tag-section is-open":"opblock-tag-section",key:"operation-"+p},y.default.createElement("h4",{onClick:function(){return a.show(b,!x)},className:_?"opblock-tag":"opblock-tag no-desc"},y.default.createElement("span",null,p),_?y.default.createElement("small",null,_):null,y.default.createElement("button",{className:"expand-operation",title:"Expand operation",onClick:function(){return a.show(b,!x)}},y.default.createElement("svg",{className:"arrow",width:"20",height:"20"},y.default.createElement("use",{xlinkHref:x?"#large-arrow-down":"#large-arrow"})))),y.default.createElement(h,{isOpened:x},m.map(function(e){var h=["operations",e.get("id"),p],m=e.get("path",""),v=e.get("method",""),_="paths."+m+"."+v,b=t.allowTryItOutFor(e.get("path"),e.get("method")),x=t.responseFor(e.get("path"),e.get("method")),w=t.requestFor(e.get("path"),e.get("method"));return y.default.createElement(f,(0,o.default)({},e.toObject(),{isShownKey:h,jumpToKey:_,showSummary:d,key:h,response:x,request:w,allowTryItOut:b,displayOperationId:g,specActions:n,specSelectors:t,layoutActions:a,layoutSelectors:i,authActions:s,authSelectors:u,getComponent:r,fn:l,getConfigs:c}))}).toArray()))}).toArray(),p.size<1?y.default.createElement("h3",null," No operations defined in spec! "):null)}}]),t}(y.default.Component);g.propTypes={specSelectors:v.PropTypes.object.isRequired,specActions:v.PropTypes.object.isRequired,getComponent:v.PropTypes.func.isRequired,layoutSelectors:v.PropTypes.object.isRequired,layoutActions:v.PropTypes.object.isRequired,authActions:v.PropTypes.object.isRequired,authSelectors:v.PropTypes.object.isRequired,getConfigs:v.PropTypes.func.isRequired},t.default=g,g.propTypes={layoutActions:v.PropTypes.object.isRequired,specSelectors:v.PropTypes.object.isRequired,specActions:v.PropTypes.object.isRequired,layoutSelectors:v.PropTypes.object.isRequired,getComponent:v.PropTypes.func.isRequired,fn:v.PropTypes.object.isRequired}},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(486),a=i(o),s=n(145),u=i(s),c=n(146),l=i(c),p=n(489),f=i(p),h=n(490),d=i(h),m=n(498),v=i(m),y=n(1027),g=i(y),_=n(183),b=n(1029),x=r(b),w=function(e){function t(e,n){(0,u.default)(this,t);var r=(0,f.default)(this,(t.__proto__||(0,a.default)(t)).call(this,e,n));return r.toggleShown=function(){var e=r.props,t=e.layoutActions,n=e.isShownKey;t.show(n,!r.isShown())},r.isShown=function(){var e=r.props,t=e.layoutSelectors,n=e.isShownKey,i=e.getConfigs,o=i(),a=o.docExpansion;return t.isShown(n,"full"===a)},r.onTryoutClick=function(){r.setState({tryItOutEnabled:!r.state.tryItOutEnabled})},r.onCancelClick=function(){var e=r.props,t=e.specActions,n=e.path,i=e.method;r.setState({tryItOutEnabled:!r.state.tryItOutEnabled}),t.clearValidateParams([n,i])},r.onExecute=function(){r.setState({executeInProgress:!0})},r.state={tryItOutEnabled:!1},r}return(0,d.default)(t,e),(0,l.default)(t,[{key:"componentWillReceiveProps",value:function(e){var t="application/json",n=e.specActions,r=e.path,i=e.method,o=e.operation,a=o.get("produces_value"),s=o.get("produces"),u=o.get("consumes"),c=o.get("consumes_value");e.response!==this.props.response&&this.setState({executeInProgress:!1}),void 0===a&&(a=s&&s.size?s.first():t,n.changeProducesValue([r,i],a)),void 0===c&&(c=u&&u.size?u.first():t,n.changeConsumesValue([r,i],c))}},{key:"shouldComponentUpdate",value:function(e,t){return(0,g.default)(this,e,t)}},{key:"render",value:function(){var e=this.props,t=e.isShownKey,n=e.jumpToKey,r=e.path,i=e.method,o=e.operation,a=e.showSummary,s=e.response,u=e.request,c=e.allowTryItOut,l=e.displayOperationId,p=e.fn,f=e.getComponent,h=e.specActions,d=e.specSelectors,m=e.authActions,y=e.authSelectors,g=o.get("summary"),b=o.get("description"),x=o.get("deprecated"),w=o.get("externalDocs"),k=o.get("responses"),S=o.get("security")||d.security(),E=o.get("produces"),C=o.get("schemes"),A=(0,_.getList)(o,["parameters"]),T=o.get("__originalOperationId"),D=f("responses"),M=f("parameters"),O=f("execute"),P=f("clear"),I=f("authorizeOperationBtn"),N=f("JumpToPath",!0),R=f("Collapse"),j=f("Markdown"),F=f("schemes");if(s&&s.size>0){var B=!k.get(String(s.get("status")));s=s.set("notDocumented",B)}var L=this.state.tryItOutEnabled,z=this.isShown(),q=[r,i];return v.default.createElement("div",{className:x?"opblock opblock-deprecated":z?"opblock opblock-"+i+" is-open":"opblock opblock-"+i,id:t},v.default.createElement("div",{className:"opblock-summary opblock-summary-"+i,onClick:this.toggleShown},v.default.createElement("span",{className:"opblock-summary-method"},i.toUpperCase()),v.default.createElement("span",{className:x?"opblock-summary-path__deprecated":"opblock-summary-path"},v.default.createElement("span",null,r),v.default.createElement(N,{path:n})),a?v.default.createElement("div",{className:"opblock-summary-description"},g):null,l&&T?v.default.createElement("span",{className:"opblock-summary-operation-id"},T):null,S&&S.count()?v.default.createElement(I,{authActions:m,security:S,authSelectors:y}):null),v.default.createElement(R,{isOpened:z,animated:!0},v.default.createElement("div",{className:"opblock-body"},x&&v.default.createElement("h4",{className:"opblock-title_normal"}," Warning: Deprecated"),b&&v.default.createElement("div",{className:"opblock-description-wrapper"},v.default.createElement("div",{className:"opblock-description"},v.default.createElement(j,{source:b}))),w&&w.get("url")?v.default.createElement("div",{className:"opblock-external-docs-wrapper"},v.default.createElement("h4",{className:"opblock-title_normal"},"Find more details"),v.default.createElement("div",{className:"opblock-external-docs"},v.default.createElement("span",{className:"opblock-external-docs__description"},w.get("description")),v.default.createElement("a",{className:"opblock-external-docs__link",href:w.get("url")},w.get("url")))):null,v.default.createElement(M,{parameters:A,onChangeKey:q,onTryoutClick:this.onTryoutClick,onCancelClick:this.onCancelClick,tryItOutEnabled:L,allowTryItOut:c,fn:p,getComponent:f,specActions:h,specSelectors:d,pathMethod:[r,i]}),L&&c&&C&&C.size?v.default.createElement("div",{className:"opblock-schemes"},v.default.createElement(F,{schemes:C,path:r,method:i,specActions:h})):null,v.default.createElement("div",{className:L&&s&&c?"btn-group":"execute-wrapper"},L&&c?v.default.createElement(O,{getComponent:f,operation:o,specActions:h,specSelectors:d,path:r,method:i,onExecute:this.onExecute}):null,L&&s&&c?v.default.createElement(P,{onClick:this.onClearClick,specActions:h,path:r,method:i}):null),this.state.executeInProgress?v.default.createElement("div",{className:"loading-container"},v.default.createElement("div",{className:"loading"})):null,k?v.default.createElement(D,{responses:k,request:u,tryItOutResponse:s,getComponent:f,specSelectors:d,specActions:h,produces:E,producesValue:o.get("produces_value"),pathMethod:[r,i],fn:p}):null)))}}]),t}(v.default.Component);w.propTypes={path:m.PropTypes.string.isRequired,method:m.PropTypes.string.isRequired,operation:m.PropTypes.object.isRequired,showSummary:m.PropTypes.bool,isShownKey:x.arrayOrString.isRequired,jumpToKey:x.arrayOrString.isRequired,allowTryItOut:m.PropTypes.bool,displayOperationId:m.PropTypes.bool,response:m.PropTypes.object,request:m.PropTypes.object,getComponent:m.PropTypes.func.isRequired,authActions:m.PropTypes.object,authSelectors:m.PropTypes.object,specActions:m.PropTypes.object.isRequired,specSelectors:m.PropTypes.object.isRequired,layoutActions:m.PropTypes.object.isRequired,layoutSelectors:m.PropTypes.object.isRequired,fn:m.PropTypes.object.isRequired,getConfigs:m.PropTypes.func.isRequired},w.defaultProps={showSummary:!0,response:null,allowTryItOut:!0,displayOperationId:!1},t.default=w},function(e,t,n){e.exports=n(1028)},function(e,t,n){"use strict";function r(e,t,n){return!i(e.props,t)||!i(e.state,n)}var i=n(613);e.exports=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.objectWithFuncs=t.arrayOrString=void 0;var r=n(498),i=function(e,t){return r.PropTypes.shape(e.reduce(function(e,n){return e[n]=t,e},{}))};t.arrayOrString=r.PropTypes.oneOfType([r.PropTypes.arrayOf(r.PropTypes.string),r.PropTypes.string]),t.objectWithFuncs=function(e){return i(e,r.PropTypes.func.isRequired)}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=n(183),y=function(e){function t(){return(0,s.default)(this,t),(0,p.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"componentDidMount",value:function(){(0,v.highlight)(this.refs.el)}},{key:"componentDidUpdate",value:function(){(0,v.highlight)(this.refs.el)}},{key:"render",value:function(){var e=this.props,t=e.value,n=e.className;return n=n||"",m.default.createElement("pre",{ref:"el",className:n+" microlight"},t)}}]),t}(d.Component);y.propTypes={value:d.PropTypes.string.isRequired,className:d.PropTypes.string},t.default=y},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(184),o=r(i),a=n(486),s=r(a),u=n(145),c=r(u),l=n(146),p=r(l),f=n(489),h=r(f),d=n(490),m=r(d),v=n(498),y=r(v),g=n(168),_=n(183),b=function(e){function t(){var e,n,r,i;(0,c.default)(this,t);for(var o=arguments.length,a=Array(o),u=0;u<o;u++)a[u]=arguments[u];return n=r=(0,h.default)(this,(e=t.__proto__||(0,s.default)(t)).call.apply(e,[this].concat(a))),r.onChangeProducesWrapper=function(e){return r.props.specActions.changeProducesValue(r.props.pathMethod,e)},i=n,(0,h.default)(r,i)}return(0,m.default)(t,e),(0,p.default)(t,[{key:"render",value:function(){var e=this.props,n=e.responses,r=e.request,i=e.tryItOutResponse,a=e.getComponent,s=e.specSelectors,u=e.fn,c=e.producesValue,l=(0,_.defaultStatusCode)(n),p=a("contentType"),f=a("liveResponse"),h=a("response"),d=this.props.produces&&this.props.produces.size?this.props.produces:t.defaultProps.produces;return y.default.createElement("div",{className:"responses-wrapper"},y.default.createElement("div",{className:"opblock-section-header"},y.default.createElement("h4",null,"Responses"),y.default.createElement("label",null,y.default.createElement("span",null,"Response content type"),y.default.createElement(p,{value:c,onChange:this.onChangeProducesWrapper,contentTypes:d,className:"execute-content-type"}))),y.default.createElement("div",{className:"responses-inner"},i?y.default.createElement("div",null,y.default.createElement(f,{request:r,response:i,getComponent:a}),y.default.createElement("h4",null,"Responses")):null,y.default.createElement("table",{className:"responses-table"},y.default.createElement("thead",null,y.default.createElement("tr",{className:"responses-header"},y.default.createElement("td",{className:"col col_header response-col_status"},"Code"),y.default.createElement("td",{className:"col col_header response-col_description"},"Description"))),y.default.createElement("tbody",null,n.entrySeq().map(function(e){var t=(0,o.default)(e,2),n=t[0],r=t[1],p=i&&i.get("status")==n?"response_current":"";return y.default.createElement(h,{key:n,isDefault:l===n,fn:u,className:p,code:n,response:r,specSelectors:s,contentType:c,getComponent:a})}).toArray()))))}}]),t}(y.default.Component);b.propTypes={request:v.PropTypes.object,tryItOutResponse:v.PropTypes.object,responses:v.PropTypes.object.isRequired,produces:v.PropTypes.object,producesValue:v.PropTypes.any,getComponent:v.PropTypes.func.isRequired,specSelectors:v.PropTypes.object.isRequired,specActions:v.PropTypes.object.isRequired,pathMethod:v.PropTypes.array.isRequired,fn:v.PropTypes.object.isRequired},b.defaultProps={request:null,tryItOutResponse:null,produces:(0,g.fromJS)(["application/json"])},t.default=b},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(57),m=r(d),v=n(184),y=r(v),g=n(498),_=r(g),b=n(168),x=n(183),w=function(e,t,n){return t&&t.size?t.entrySeq().map(function(e){var t=(0,y.default)(e,2),r=t[0],i=t[1],o=void 0;try{o=i&&i.toJS?i.toJS():i,o=(0,m.default)(o,null,2)}catch(e){o=String(i)}return _.default.createElement("div",{key:r},_.default.createElement("h5",null,r),_.default.createElement(n,{className:"example",value:o}))}).toArray():e?_.default.createElement("div",null,_.default.createElement(n,{className:"example",value:e})):null},k=function(e){function t(){return(0,s.default)(this,t),(0,p.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props,t=e.code,n=e.response,r=e.className,i=e.fn,o=e.getComponent,a=e.specSelectors,s=e.contentType,u=i.inferSchema,c=u(n.toJS()),l=n.get("headers"),p=n.get("examples"),f=o("headers"),h=o("highlightCode"),d=o("modelExample"),m=o("Markdown"),v=c?(0,x.getSampleSchema)(c,s,{includeReadOnly:!0}):null,y=w(v,p,h);return _.default.createElement("tr",{className:"response "+(r||"")},_.default.createElement("td",{className:"col response-col_status"},t),_.default.createElement("td",{className:"col response-col_description"},_.default.createElement("div",{className:"response-col_description__inner"},_.default.createElement(m,{source:n.get("description")})),y?_.default.createElement(d,{getComponent:o,specSelectors:a,schema:(0,b.fromJS)(c),example:y}):null,l?_.default.createElement(f,{headers:l}):null))}}]),t}(_.default.Component);k.propTypes={code:g.PropTypes.string.isRequired,response:g.PropTypes.object,className:g.PropTypes.string,getComponent:g.PropTypes.func.isRequired,specSelectors:g.PropTypes.object.isRequired,fn:g.PropTypes.object.isRequired,contentType:g.PropTypes.string},k.defaultProps={response:(0,b.fromJS)({})},t.default=k},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(57),o=r(i),a=n(486),s=r(a),u=n(145),c=r(u),l=n(146),p=r(l),f=n(489),h=r(f),d=n(490),m=r(d),v=n(498),y=r(v),g=n(183),_=n(1034),b=r(_),x=function(e){function t(){return(0,c.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,m.default)(t,e),(0,p.default)(t,[{key:"render",value:function(){var e=this.props,t=e.content,n=e.contentType,r=e.url,i=e.headers,a=void 0===i?{}:i,s=e.getComponent,u=s("highlightCode"),c=void 0,l=void 0;if(r=r||"",/json/i.test(n)){try{c=(0,o.default)(JSON.parse(t),null," ")}catch(e){c="can't parse JSON. Raw result:\n\n"+t}l=y.default.createElement(u,{value:c})}else if(/xml/i.test(n))c=(0,g.formatXml)(t),l=y.default.createElement(u,{value:c});else if("text/html"===(0,b.default)(n)||/text\/plain/.test(n))l=y.default.createElement(u,{value:t});else if(/^image\//i.test(n))l=y.default.createElement("img",{src:r});else if(/^audio\//i.test(n))l=y.default.createElement("pre",null,y.default.createElement("audio",{controls:!0},y.default.createElement("source",{src:r,type:n})));else if(/^application\/octet-stream/i.test(n)||a["Content-Disposition"]&&/attachment/i.test(a["Content-Disposition"])||a["content-disposition"]&&/attachment/i.test(a["content-disposition"])||a["Content-Description"]&&/File Transfer/i.test(a["Content-Description"])||a["content-description"]&&/File Transfer/i.test(a["content-description"])){var p=a["content-length"]||a["Content-Length"];if(!+p)return null;var f=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);if(!f&&"Blob"in window){var h=n||"text/html",d=t instanceof Blob?t:new Blob([t],{type:h}),m=window.URL.createObjectURL(d),v=r.substr(r.lastIndexOf("/")+1),_=[h,v,m].join(":"),x=a["content-disposition"]||a["Content-Disposition"];if("undefined"!=typeof x){var w=/filename=([^;]*);?/i.exec(x);null!==w&&w.length>1&&(_=w[1])}l=y.default.createElement("div",null,y.default.createElement("a",{href:m,download:_},"Download file"))}else l=y.default.createElement("pre",null,"Download headers detected but your browser does not support downloading binary via XHR (Blob).")}else l="string"==typeof t?y.default.createElement(u,{value:t}):y.default.createElement("div",null,"Unknown response type");return l?y.default.createElement("div",null,y.default.createElement("h5",null,"Response body"),l):null}}]),t}(y.default.Component);x.propTypes={content:v.PropTypes.any.isRequired,contentType:v.PropTypes.string.isRequired,getComponent:v.PropTypes.func.isRequired,headers:v.PropTypes.object,url:v.PropTypes.string},t.default=x},function(e,t,n){var r=n(203),i=r(function(e,t,n){return e+(n?" ":"")+t.toLowerCase()});e.exports=i},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=n(1015),y=r(v),g=n(168),_=r(g),b=function(e,t){return e.valueSeq().filter(_.default.Map.isMap).map(t)},x=function(e){function t(){var e,n,r,i;(0,s.default)(this,t);for(var a=arguments.length,u=Array(a),c=0;c<a;c++)u[c]=arguments[c];return n=r=(0,p.default)(this,(e=t.__proto__||(0,o.default)(t)).call.apply(e,[this].concat(u))),r.onChange=function(e,t,n){var i=r.props,o=i.specActions.changeParam,a=i.onChangeKey;o(a,e.get("name"),t,n)},r.onChangeConsumesWrapper=function(e){var t=r.props,n=t.specActions.changeConsumesValue,i=t.onChangeKey;n(i,e)},i=n,(0,p.default)(r,i)}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.onTryoutClick,r=t.onCancelClick,i=t.parameters,o=t.allowTryItOut,a=t.tryItOutEnabled,s=t.fn,u=t.getComponent,c=t.specSelectors,l=t.pathMethod,p=u("parameterRow"),f=u("TryItOutButton"),h=a&&o;return m.default.createElement("div",{className:"opblock-section"},m.default.createElement("div",{className:"opblock-section-header"},m.default.createElement("h4",{className:"opblock-title"},"Parameters"),o?m.default.createElement(f,{enabled:a,onCancelClick:r,onTryoutClick:n}):null),i.count()?m.default.createElement("div",{className:"table-container"},m.default.createElement("table",{className:"parameters"},m.default.createElement("thead",null,m.default.createElement("tr",null,m.default.createElement("th",{className:"col col_header parameters-col_name"},"Name"),m.default.createElement("th",{className:"col col_header parameters-col_description"},"Description"))),m.default.createElement("tbody",null,b(i,function(t){return m.default.createElement(p,{fn:s,getComponent:u,param:t,key:t.get("name"),onChange:e.onChange,onChangeConsumes:e.onChangeConsumesWrapper,specSelectors:c,pathMethod:l,isExecute:h})}).toArray()))):m.default.createElement("div",{className:"opblock-description-wrapper"},m.default.createElement("p",null,"No parameters")))}}]),t}(d.Component);x.propTypes={parameters:y.default.list.isRequired,specActions:d.PropTypes.object.isRequired,getComponent:d.PropTypes.func.isRequired,specSelectors:d.PropTypes.object.isRequired,fn:d.PropTypes.object.isRequired,tryItOutEnabled:d.PropTypes.bool,allowTryItOut:d.PropTypes.bool,onTryoutClick:d.PropTypes.func,onCancelClick:d.PropTypes.func,onChangeKey:d.PropTypes.array,pathMethod:d.PropTypes.array.isRequired},x.defaultProps={onTryoutClick:Function.prototype,onCancelClick:Function.prototype,tryItOutEnabled:!1,allowTryItOut:!0,onChangeKey:[]},t.default=x},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=n(177),y=r(v),g=function(e){function t(e,n){(0,s.default)(this,t);var r=(0,p.default)(this,(t.__proto__||(0,o.default)(t)).call(this,e,n));_.call(r);var i=e.specSelectors,a=e.pathMethod,u=e.param,c=u.get("default"),l=i.getParameter(a,u.get("name")),f=l?l.get("value"):"";return void 0!==c&&void 0===f&&r.onChangeWrapper(c),r}return(0,h.default)(t,e),(0,c.default)(t,[{key:"componentWillReceiveProps",value:function(e){var t=e.specSelectors,n=e.pathMethod,r=e.param,i=r.get("example"),o=r.get("default"),a=t.getParameter(n,r.get("name")),s=a?a.get("value"):void 0,u=a?a.get("enum"):void 0,c=void 0;void 0!==s?c=s:void 0!==i?c=i:void 0!==o?c=o:r.get("required")&&u&&u.size&&(c=u.first()),void 0!==c&&this.onChangeWrapper(c)}},{key:"render",value:function(){var e=this.props,t=e.param,n=e.onChange,r=e.getComponent,i=e.isExecute,o=e.fn,a=e.onChangeConsumes,s=e.specSelectors,u=e.pathMethod,c=r("JsonSchemaForm"),l=r("ParamBody"),p=t.get("in"),f="body"!==p?null:m.default.createElement(l,{getComponent:r,fn:o,param:t,consumes:s.operationConsumes(u),consumesValue:s.contentTypeValues(u).get("requestContentType"),onChange:n,onChangeConsumes:a,isExecute:i,specSelectors:s,pathMethod:u}),h=r("modelExample"),d=r("Markdown"),v=t.get("schema"),g="formData"===p,_="FormData"in y.default,b=t.get("required"),x=t.getIn(["items","type"]),w=s.getParameter(u,t.get("name")),k=w?w.get("value"):"";return m.default.createElement("tr",null,m.default.createElement("td",{className:"col parameters-col_name"},m.default.createElement("div",{className:b?"parameter__name required":"parameter__name"},t.get("name"),b?m.default.createElement("span",{style:{color:"red"}}," *"):null),m.default.createElement("div",{className:"parаmeter__type"},t.get("type")," ",x&&"["+x+"]"),m.default.createElement("div",{className:"parameter__in"},"(",t.get("in"),")")),m.default.createElement("td",{className:"col parameters-col_description"},m.default.createElement(d,{source:t.get("description")}),g&&!_&&m.default.createElement("div",null,"Error: your browser does not support FormData"),f||!i?null:m.default.createElement(c,{fn:o,getComponent:r,value:k,required:b,description:t.get("description")?t.get("name")+" - "+t.get("description"):""+t.get("name"),onChange:this.onChangeWrapper,schema:t}),f&&v?m.default.createElement(h,{ +getComponent:r,isExecute:i,specSelectors:s,schema:v,example:f}):null))}}]),t}(d.Component);g.propTypes={onChange:d.PropTypes.func.isRequired,param:d.PropTypes.object.isRequired,getComponent:d.PropTypes.func.isRequired,fn:d.PropTypes.object.isRequired,isExecute:d.PropTypes.bool,onChangeConsumes:d.PropTypes.func.isRequired,specSelectors:d.PropTypes.object.isRequired,pathMethod:d.PropTypes.array.isRequired};var _=function(){var e=this;this.onChangeWrapper=function(t){var n=e.props,r=n.onChange,i=n.param;return r(i,t)}};t.default=g},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=function(e){function t(){var e,n,r,i;(0,s.default)(this,t);for(var a=arguments.length,u=Array(a),c=0;c<a;c++)u[c]=arguments[c];return n=r=(0,p.default)(this,(e=t.__proto__||(0,o.default)(t)).call.apply(e,[this].concat(u))),r.onClick=function(){var e=r.props,t=e.specSelectors,n=e.specActions,i=e.operation,o=e.path,a=e.method;n.validateParams([o,a]),t.validateBeforeExecute([o,a])&&(r.props.onExecute&&r.props.onExecute(),n.execute({operation:i,path:o,method:a}))},r.onChangeProducesWrapper=function(e){return r.props.specActions.changeProducesValue([r.props.path,r.props.method],e)},i=n,(0,p.default)(r,i)}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){return m.default.createElement("button",{className:"btn execute opblock-control__btn",onClick:this.onClick},"Execute")}}]),t}(d.Component);v.propTypes={specSelectors:d.PropTypes.object.isRequired,specActions:d.PropTypes.object.isRequired,operation:d.PropTypes.object.isRequired,path:d.PropTypes.string.isRequired,getComponent:d.PropTypes.func.isRequired,method:d.PropTypes.string.isRequired,onExecute:d.PropTypes.func},t.default=v},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(184),o=r(i),a=n(486),s=r(a),u=n(145),c=r(u),l=n(146),p=r(l),f=n(489),h=r(f),d=n(490),m=r(d),v=n(498),y=r(v),g=n(168),_=r(g),b=function(e){function t(){return(0,c.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,m.default)(t,e),(0,p.default)(t,[{key:"render",value:function(){var e=this.props.headers;return e&&e.size?y.default.createElement("div",{className:"headers-wrapper"},y.default.createElement("h4",{className:"headers__title"},"Headers:"),y.default.createElement("table",{className:"headers"},y.default.createElement("thead",null,y.default.createElement("tr",{className:"header-row"},y.default.createElement("th",{className:"header-col"},"Name"),y.default.createElement("th",{className:"header-col"},"Description"),y.default.createElement("th",{className:"header-col"},"Type"))),y.default.createElement("tbody",null,e.entrySeq().map(function(e){var t=(0,o.default)(e,2),n=t[0],r=t[1];return _.default.Map.isMap(r)?y.default.createElement("tr",{key:n},y.default.createElement("td",{className:"header-col"},n),y.default.createElement("td",{className:"header-col"},r.get("description")),y.default.createElement("td",{className:"header-col"},r.get("type"))):null}).toArray()))):null}}]),t}(y.default.Component);b.propTypes={headers:v.PropTypes.object.isRequired},t.default=b},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return e.split(" ").map(function(e){return e[0].toUpperCase()+e.slice(1)}).join(" ")}Object.defineProperty(t,"__esModule",{value:!0});var o=n(486),a=r(o),s=n(145),u=r(s),c=n(146),l=r(c),p=n(489),f=r(p),h=n(490),d=r(h),m=n(498),v=r(m),y=n(168),g=n(1040),_=r(g),b=function(e){function t(){return(0,u.default)(this,t),(0,f.default)(this,(t.__proto__||(0,a.default)(t)).apply(this,arguments))}return(0,d.default)(t,e),(0,l.default)(t,[{key:"render",value:function(){var e=this.props,t=e.editorActions,n=e.errSelectors,r=e.layoutSelectors,i=e.layoutActions;if(t&&t.jumpToLine)var o=t.jumpToLine;var a=n.allErrors(),s=a.filter(function(e){return"thrown"===e.get("type")||"error"===e.get("level")});if(!s||s.count()<1)return null;var u=r.isShown(["errorPane"],!0),c=function(){return i.show(["errorPane"],!u)},l=s.sortBy(function(e){return e.get("line")});return v.default.createElement("pre",{className:"errors-wrapper"},v.default.createElement("hgroup",{className:"error"},v.default.createElement("h4",{className:"errors__title"},"Errors"),v.default.createElement("button",{className:"btn errors__clear-btn",onClick:c},u?"Hide":"Show")),v.default.createElement(_.default,{isOpened:u,animated:!0},v.default.createElement("div",{className:"errors"},l.map(function(e,t){var n=e.get("type");return"thrown"===n||"auth"===n?v.default.createElement(x,{key:t,error:e.get("error")||e,jumpToLine:o}):"spec"===n?v.default.createElement(w,{key:t,error:e,jumpToLine:o}):void 0}))))}}]),t}(v.default.Component);b.propTypes={editorActions:m.PropTypes.object,errSelectors:m.PropTypes.object.isRequired,layoutSelectors:m.PropTypes.object.isRequired,layoutActions:m.PropTypes.object.isRequired},t.default=b;var x=function(e){var t=e.error,n=e.jumpToLine;if(!t)return null;var r=t.get("line");return v.default.createElement("div",{className:"error-wrapper"},t?v.default.createElement("div",null,v.default.createElement("h4",null,t.get("source")&&t.get("level")?i(t.get("source"))+" "+t.get("level"):"",t.get("path")?v.default.createElement("small",null," at ",t.get("path")):null),v.default.createElement("span",{style:{whiteSpace:"pre-line",maxWidth:"100%"}},t.get("message")),v.default.createElement("div",null,r&&n?v.default.createElement("a",{onClick:n.bind(null,r)},"Jump to line ",r):null)):null)},w=function(e){var t=e.error,n=e.jumpToLine,r=null;return t.get("path")?r=y.List.isList(t.get("path"))?v.default.createElement("small",null,"at ",t.get("path").join(".")):v.default.createElement("small",null,"at ",t.get("path")):t.get("line")&&!n&&(r=v.default.createElement("small",null,"on line ",t.get("line"))),v.default.createElement("div",{className:"error-wrapper"},t?v.default.createElement("div",null,v.default.createElement("h4",null,i(t.get("source"))+" "+t.get("level")," ",r),v.default.createElement("span",{style:{whiteSpace:"pre-line"}},t.get("message")),v.default.createElement("div",{style:{"text-decoration":"underline",cursor:"pointer"}},n?v.default.createElement("a",{onClick:n.bind(null,t.get("line"))},"Jump to line ",t.get("line")):null)):null)};x.propTypes={error:m.PropTypes.object.isRequired,jumpToLine:m.PropTypes.func},x.defaultProps={jumpToLine:null},w.propTypes={error:m.PropTypes.object.isRequired,jumpToLine:m.PropTypes.func}},function(e,t,n){"use strict";var r=n(1041).default;e.exports=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=n(498),s=r(a),u=n(1042),c=n(1043),l=n(1058),p=r(l),f=.5,h=function(e){return Math.max(0,parseFloat(e)).toFixed(1)},d=s.default.createClass({displayName:"Collapse",propTypes:{isOpened:s.default.PropTypes.bool.isRequired,children:s.default.PropTypes.node.isRequired,fixedHeight:s.default.PropTypes.number,style:s.default.PropTypes.object,springConfig:s.default.PropTypes.objectOf(s.default.PropTypes.number),keepCollapsedContent:s.default.PropTypes.bool,onRest:s.default.PropTypes.func,onHeightReady:s.default.PropTypes.func},getDefaultProps:function(){return{fixedHeight:-1,style:{},keepCollapsedContent:!1,onHeightReady:function(){}}},getInitialState:function(){return{height:-1,isOpenedChanged:!1}},componentWillMount:function(){this.height=h(0),this.renderStatic=!0},componentWillReceiveProps:function(e){var t=e.isOpened;this.setState({isOpenedChanged:t!==this.props.isOpened})},shouldComponentUpdate:u.shouldComponentUpdate,componentDidUpdate:function(e){var t=e.isOpened;if(t!==this.props.isOpened){var n=this.props.isOpened?this.state.height:0;this.props.onHeightReady(n)}},onHeightReady:function e(t){var n=this.props,r=n.isOpened,i=n.keepCollapsedContent,e=n.onHeightReady;this.renderStatic&&r&&(this.height=h(t)),i?this.setState({height:t}):this.setState({height:r||!this.renderStatic?t:0});var o=r?t:0;this.state.height!==o&&e(o)},getMotionHeight:function(e){var t=this.props,n=t.isOpened,r=t.springConfig,i=this.state.isOpenedChanged,a=n?Math.max(0,parseFloat(e)).toFixed(1):h(0),s=!i&&!n||this.height===a,u=(0,c.spring)(n?Math.max(0,e):0,o({precision:f},r)),l=n?Math.max(0,e):0;return s?l:u},renderFixed:function(){var e=this,t=this.props,n=(t.springConfig,t.onHeightReady,t.onRest,t.isOpened),r=t.style,a=t.children,u=t.fixedHeight,l=t.keepCollapsedContent,p=i(t,["springConfig","onHeightReady","onRest","isOpened","style","children","fixedHeight","keepCollapsedContent"]);if(this.renderStatic){this.renderStatic=!1;var f={overflow:"hidden",height:n?u:0};return l||n?(this.height=h(u),s.default.createElement("div",o({style:o({},f,r)},p),a)):null}return s.default.createElement(c.Motion,{defaultStyle:{height:n?0:u},style:{height:this.getMotionHeight(u)}},function(t){var i=t.height;if(e.height=h(i),!l&&!n&&e.height===h(0))return null;var u={overflow:"hidden",height:i};return s.default.createElement("div",o({style:o({},u,r)},p),a)})},render:function(){var e=this,t=this.props,n=(t.springConfig,t.onHeightReady,t.isOpened),r=t.style,a=t.children,u=t.fixedHeight,l=t.keepCollapsedContent,f=t.onRest,d=i(t,["springConfig","onHeightReady","isOpened","style","children","fixedHeight","keepCollapsedContent","onRest"]);if(u>-1)return this.renderFixed();var m=this.renderStatic,v=this.state.height,y=parseFloat(v).toFixed(1);v>-1&&m&&(this.renderStatic=!1);var g=s.default.createElement(p.default,{onHeightReady:this.onHeightReady},a);if(m){var _=n?{height:"auto"}:{overflow:"hidden",height:0};return!n&&v>-1?l?s.default.createElement("div",o({style:o({height:0,overflow:"hidden"},r)},d),g):null:s.default.createElement("div",o({style:o({},_,r)},d),g)}return s.default.createElement(c.Motion,{defaultStyle:{height:Math.max(0,v)},onRest:f,style:{height:this.getMotionHeight(v)}},function(t){if(e.height=h(t.height),!n&&"0.0"===e.height)return l?s.default.createElement("div",o({style:o({height:0,overflow:"hidden"},r)},d),g):null;var i=n&&e.height===y?{height:"auto"}:{height:t.height,overflow:"hidden"};return s.default.createElement("div",o({style:o({},i,r)},d),g)})}});t.default=d},function(e,t,n){"use strict";var r=n(1028),i={shouldComponentUpdate:function(e,t){return r(this,e,t)}};e.exports=i},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e.default:e}t.__esModule=!0;var i=n(1044);t.Motion=r(i);var o=n(1052);t.StaggeredMotion=r(o);var a=n(1053);t.TransitionMotion=r(a);var s=n(1055);t.spring=r(s);var u=n(1056);t.presets=r(u);var c=n(1057);t.reorderKeys=r(c)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=n(1045),a=r(o),s=n(1046),u=r(s),c=n(1047),l=r(c),p=n(1048),f=r(p),h=n(1049),d=r(h),m=n(1051),v=r(m),y=n(498),g=r(y),_=1e3/60,b=g.default.createClass({displayName:"Motion",propTypes:{defaultStyle:y.PropTypes.objectOf(y.PropTypes.number),style:y.PropTypes.objectOf(y.PropTypes.oneOfType([y.PropTypes.number,y.PropTypes.object])).isRequired,children:y.PropTypes.func.isRequired,onRest:y.PropTypes.func},getInitialState:function(){var e=this.props,t=e.defaultStyle,n=e.style,r=t||u.default(n),i=a.default(r);return{currentStyle:r,currentVelocity:i,lastIdealStyle:r,lastIdealVelocity:i}},wasAnimating:!1,animationID:null,prevTime:0,accumulatedTime:0,unreadPropStyle:null,clearUnreadPropStyle:function(e){var t=!1,n=this.state,r=n.currentStyle,o=n.currentVelocity,a=n.lastIdealStyle,s=n.lastIdealVelocity;for(var u in e)if(e.hasOwnProperty(u)){var c=e[u];"number"==typeof c&&(t||(t=!0,r=i({},r),o=i({},o),a=i({},a),s=i({},s)),r[u]=c,o[u]=0,a[u]=c,s[u]=0)}t&&this.setState({currentStyle:r,currentVelocity:o,lastIdealStyle:a,lastIdealVelocity:s})},startAnimationIfNecessary:function(){var e=this;this.animationID=d.default(function(){var t=e.props.style;if(v.default(e.state.currentStyle,t,e.state.currentVelocity))return e.wasAnimating&&e.props.onRest&&e.props.onRest(),e.animationID=null,e.wasAnimating=!1,void(e.accumulatedTime=0);e.wasAnimating=!0;var n=f.default(),r=n-e.prevTime;if(e.prevTime=n,e.accumulatedTime=e.accumulatedTime+r,e.accumulatedTime>10*_&&(e.accumulatedTime=0),0===e.accumulatedTime)return e.animationID=null,void e.startAnimationIfNecessary();var i=(e.accumulatedTime-Math.floor(e.accumulatedTime/_)*_)/_,o=Math.floor(e.accumulatedTime/_),a={},s={},u={},c={};for(var p in t)if(t.hasOwnProperty(p)){var h=t[p];if("number"==typeof h)u[p]=h,c[p]=0,a[p]=h,s[p]=0;else{for(var d=e.state.lastIdealStyle[p],m=e.state.lastIdealVelocity[p],y=0;y<o;y++){var g=l.default(_/1e3,d,m,h.val,h.stiffness,h.damping,h.precision);d=g[0],m=g[1]}var b=l.default(_/1e3,d,m,h.val,h.stiffness,h.damping,h.precision),x=b[0],w=b[1];u[p]=d+(x-d)*i,c[p]=m+(w-m)*i,a[p]=d,s[p]=m}}e.animationID=null,e.accumulatedTime-=o*_,e.setState({currentStyle:u,currentVelocity:c,lastIdealStyle:a,lastIdealVelocity:s}),e.unreadPropStyle=null,e.startAnimationIfNecessary()})},componentDidMount:function(){this.prevTime=f.default(),this.startAnimationIfNecessary()},componentWillReceiveProps:function(e){null!=this.unreadPropStyle&&this.clearUnreadPropStyle(this.unreadPropStyle),this.unreadPropStyle=e.style,null==this.animationID&&(this.prevTime=f.default(),this.startAnimationIfNecessary())},componentWillUnmount:function(){null!=this.animationID&&(d.default.cancel(this.animationID),this.animationID=null)},render:function(){var e=this.props.children(this.state.currentStyle);return e&&g.default.Children.only(e)}});t.default=b,e.exports=t.default},function(e,t){"use strict";function n(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=0);return t}t.__esModule=!0,t.default=n,e.exports=t.default},function(e,t){"use strict";function n(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]="number"==typeof e[n]?e[n]:e[n].val);return t}t.__esModule=!0,t.default=n,e.exports=t.default},function(e,t){"use strict";function n(e,t,n,i,o,a,s){var u=-o*(t-i),c=-a*n,l=u+c,p=n+l*e,f=t+p*e;return Math.abs(p)<s&&Math.abs(f-i)<s?(r[0]=i,r[1]=0,r):(r[0]=f,r[1]=p,r)}t.__esModule=!0,t.default=n;var r=[];e.exports=t.default},function(e,t,n){(function(t){(function(){var n,r,i;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:"undefined"!=typeof t&&null!==t&&t.hrtime?(e.exports=function(){return(n()-i)/1e6},r=t.hrtime,n=function(){var e;return e=r(),1e9*e[0]+e[1]},i=n()):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(t,n(324))},function(e,t,n){(function(t){for(var r=n(1050),i="undefined"==typeof window?t:window,o=["moz","webkit"],a="AnimationFrame",s=i["request"+a],u=i["cancel"+a]||i["cancelRequest"+a],c=0;!s&&c<o.length;c++)s=i[o[c]+"Request"+a],u=i[o[c]+"Cancel"+a]||i[o[c]+"CancelRequest"+a];if(!s||!u){var l=0,p=0,f=[],h=1e3/60;s=function(e){if(0===f.length){var t=r(),n=Math.max(0,h-(t-l));l=n+t,setTimeout(function(){var e=f.slice(0);f.length=0;for(var t=0;t<e.length;t++)if(!e[t].cancelled)try{e[t].callback(l)}catch(e){setTimeout(function(){throw e},0)}},Math.round(n))}return f.push({handle:++p,callback:e,cancelled:!1}),p},u=function(e){for(var t=0;t<f.length;t++)f[t].handle===e&&(f[t].cancelled=!0)}}e.exports=function(e){return s.call(i,e)},e.exports.cancel=function(){u.apply(i,arguments)},e.exports.polyfill=function(){i.requestAnimationFrame=s,i.cancelAnimationFrame=u}}).call(t,function(){return this}())},function(e,t,n){(function(t){(function(){var n,r,i,o,a,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(n()-a)/1e6},r=t.hrtime,n=function(){var e;return e=r(),1e9*e[0]+e[1]},o=n(),s=1e9*t.uptime(),a=o-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(t,n(324))},function(e,t){"use strict";function n(e,t,n){for(var r in t)if(t.hasOwnProperty(r)){if(0!==n[r])return!1;var i="number"==typeof t[r]?t[r]:t[r].val;if(e[r]!==i)return!1}return!0}t.__esModule=!0,t.default=n,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){for(var r=0;r<e.length;r++)if(!y.default(e[r],t[r],n[r]))return!1;return!0}t.__esModule=!0;var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=n(1045),s=r(a),u=n(1046),c=r(u),l=n(1047),p=r(l),f=n(1048),h=r(f),d=n(1049),m=r(d),v=n(1051),y=r(v),g=n(498),_=r(g),b=1e3/60,x=_.default.createClass({displayName:"StaggeredMotion",propTypes:{defaultStyles:g.PropTypes.arrayOf(g.PropTypes.objectOf(g.PropTypes.number)),styles:g.PropTypes.func.isRequired,children:g.PropTypes.func.isRequired},getInitialState:function(){var e=this.props,t=e.defaultStyles,n=e.styles,r=t||n().map(c.default),i=r.map(function(e){return s.default(e)});return{currentStyles:r,currentVelocities:i,lastIdealStyles:r,lastIdealVelocities:i}},animationID:null,prevTime:0,accumulatedTime:0,unreadPropStyles:null,clearUnreadPropStyle:function(e){for(var t=this.state,n=t.currentStyles,r=t.currentVelocities,i=t.lastIdealStyles,a=t.lastIdealVelocities,s=!1,u=0;u<e.length;u++){var c=e[u],l=!1;for(var p in c)if(c.hasOwnProperty(p)){var f=c[p];"number"==typeof f&&(l||(l=!0,s=!0,n[u]=o({},n[u]),r[u]=o({},r[u]),i[u]=o({},i[u]),a[u]=o({},a[u])),n[u][p]=f,r[u][p]=0,i[u][p]=f,a[u][p]=0)}}s&&this.setState({currentStyles:n,currentVelocities:r,lastIdealStyles:i,lastIdealVelocities:a})},startAnimationIfNecessary:function(){var e=this;this.animationID=m.default(function(){var t=e.props.styles(e.state.lastIdealStyles);if(i(e.state.currentStyles,t,e.state.currentVelocities))return e.animationID=null,void(e.accumulatedTime=0);var n=h.default(),r=n-e.prevTime;if(e.prevTime=n,e.accumulatedTime=e.accumulatedTime+r,e.accumulatedTime>10*b&&(e.accumulatedTime=0),0===e.accumulatedTime)return e.animationID=null,void e.startAnimationIfNecessary();for(var o=(e.accumulatedTime-Math.floor(e.accumulatedTime/b)*b)/b,a=Math.floor(e.accumulatedTime/b),s=[],u=[],c=[],l=[],f=0;f<t.length;f++){var d=t[f],m={},v={},y={},g={};for(var _ in d)if(d.hasOwnProperty(_)){var x=d[_];if("number"==typeof x)m[_]=x,v[_]=0,y[_]=x,g[_]=0;else{for(var w=e.state.lastIdealStyles[f][_],k=e.state.lastIdealVelocities[f][_],S=0;S<a;S++){var E=p.default(b/1e3,w,k,x.val,x.stiffness,x.damping,x.precision);w=E[0],k=E[1]}var C=p.default(b/1e3,w,k,x.val,x.stiffness,x.damping,x.precision),A=C[0],T=C[1];m[_]=w+(A-w)*o,v[_]=k+(T-k)*o,y[_]=w,g[_]=k}}c[f]=m,l[f]=v,s[f]=y,u[f]=g}e.animationID=null,e.accumulatedTime-=a*b,e.setState({currentStyles:c,currentVelocities:l,lastIdealStyles:s,lastIdealVelocities:u}),e.unreadPropStyles=null,e.startAnimationIfNecessary()})},componentDidMount:function(){this.prevTime=h.default(),this.startAnimationIfNecessary()},componentWillReceiveProps:function(e){null!=this.unreadPropStyles&&this.clearUnreadPropStyle(this.unreadPropStyles),this.unreadPropStyles=e.styles(this.state.lastIdealStyles),null==this.animationID&&(this.prevTime=h.default(),this.startAnimationIfNecessary())},componentWillUnmount:function(){null!=this.animationID&&(m.default.cancel(this.animationID),this.animationID=null)},render:function(){var e=this.props.children(this.state.currentStyles);return e&&_.default.Children.only(e)}});t.default=x,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){return null==t?e.map(function(e,t){return{key:e.key,data:e.data,style:n[t]}}):e.map(function(e,r){for(var i=0;i<t.length;i++)if(t[i].key===e.key)return{key:t[i].key,data:t[i].data,style:n[r]};return{key:e.key,data:e.data,style:n[r]}})}function o(e,t,n,r){if(r.length!==t.length)return!1;for(var i=0;i<r.length;i++)if(r[i].key!==t[i].key)return!1;for(var i=0;i<r.length;i++)if(!x.default(e[i],t[i].style,n[i]))return!1;return!0}function a(e,t,n,r,i,o,a,s){for(var u=m.default(n,r,function(e,n){var r=t(n);return null==r?null:x.default(i[e],r,o[e])?null:{key:n.key,data:n.data,style:r}}),l=[],p=[],f=[],h=[],d=0;d<u.length;d++){for(var v=u[d],y=null,g=0;g<n.length;g++)if(n[g].key===v.key){y=g;break}if(null==y){var _=e(v);l[d]=_,f[d]=_;var b=c.default(v.style);p[d]=b,h[d]=b}else l[d]=i[y],f[d]=a[y],p[d]=o[y],h[d]=s[y]}return[u,l,p,f,h]}t.__esModule=!0;var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=n(1045),c=r(u),l=n(1046),p=r(l),f=n(1047),h=r(f),d=n(1054),m=r(d),v=n(1048),y=r(v),g=n(1049),_=r(g),b=n(1051),x=r(b),w=n(498),k=r(w),S=1e3/60,E=k.default.createClass({displayName:"TransitionMotion",propTypes:{defaultStyles:w.PropTypes.arrayOf(w.PropTypes.shape({key:w.PropTypes.string.isRequired,data:w.PropTypes.any,style:w.PropTypes.objectOf(w.PropTypes.number).isRequired})),styles:w.PropTypes.oneOfType([w.PropTypes.func,w.PropTypes.arrayOf(w.PropTypes.shape({key:w.PropTypes.string.isRequired,data:w.PropTypes.any,style:w.PropTypes.objectOf(w.PropTypes.oneOfType([w.PropTypes.number,w.PropTypes.object])).isRequired}))]).isRequired,children:w.PropTypes.func.isRequired,willLeave:w.PropTypes.func,willEnter:w.PropTypes.func},getDefaultProps:function(){return{willEnter:function(e){return p.default(e.style)},willLeave:function(){return null}}},getInitialState:function(){var e=this.props,t=e.defaultStyles,n=e.styles,r=e.willEnter,i=e.willLeave,o="function"==typeof n?n(t):n,s=void 0;s=null==t?o:t.map(function(e){for(var t=0;t<o.length;t++)if(o[t].key===e.key)return o[t];return e});var u=null==t?o.map(function(e){return p.default(e.style)}):t.map(function(e){return p.default(e.style)}),l=null==t?o.map(function(e){return c.default(e.style)}):t.map(function(e){return c.default(e.style)}),f=a(r,i,s,o,u,l,u,l),h=f[0],d=f[1],m=f[2],v=f[3],y=f[4];return{currentStyles:d,currentVelocities:m,lastIdealStyles:v,lastIdealVelocities:y,mergedPropsStyles:h}},animationID:null,prevTime:0,accumulatedTime:0,unreadPropStyles:null,clearUnreadPropStyle:function(e){for(var t=a(this.props.willEnter,this.props.willLeave,this.state.mergedPropsStyles,e,this.state.currentStyles,this.state.currentVelocities,this.state.lastIdealStyles,this.state.lastIdealVelocities),n=t[0],r=t[1],i=t[2],o=t[3],u=t[4],c=0;c<e.length;c++){var l=e[c].style,p=!1;for(var f in l)if(l.hasOwnProperty(f)){var h=l[f];"number"==typeof h&&(p||(p=!0,r[c]=s({},r[c]),i[c]=s({},i[c]),o[c]=s({},o[c]),u[c]=s({},u[c]),n[c]={key:n[c].key,data:n[c].data,style:s({},n[c].style)}),r[c][f]=h,i[c][f]=0,o[c][f]=h,u[c][f]=0,n[c].style[f]=h)}}this.setState({currentStyles:r,currentVelocities:i,mergedPropsStyles:n,lastIdealStyles:o,lastIdealVelocities:u})},startAnimationIfNecessary:function(){var e=this;this.animationID=_.default(function(){var t=e.props.styles,n="function"==typeof t?t(i(e.state.mergedPropsStyles,e.unreadPropStyles,e.state.lastIdealStyles)):t;if(o(e.state.currentStyles,n,e.state.currentVelocities,e.state.mergedPropsStyles))return e.animationID=null,void(e.accumulatedTime=0);var r=y.default(),s=r-e.prevTime;if(e.prevTime=r,e.accumulatedTime=e.accumulatedTime+s,e.accumulatedTime>10*S&&(e.accumulatedTime=0),0===e.accumulatedTime)return e.animationID=null,void e.startAnimationIfNecessary();for(var u=(e.accumulatedTime-Math.floor(e.accumulatedTime/S)*S)/S,c=Math.floor(e.accumulatedTime/S),l=a(e.props.willEnter,e.props.willLeave,e.state.mergedPropsStyles,n,e.state.currentStyles,e.state.currentVelocities,e.state.lastIdealStyles,e.state.lastIdealVelocities),p=l[0],f=l[1],d=l[2],m=l[3],v=l[4],g=0;g<p.length;g++){var _=p[g].style,b={},x={},w={},k={};for(var E in _)if(_.hasOwnProperty(E)){var C=_[E];if("number"==typeof C)b[E]=C,x[E]=0,w[E]=C,k[E]=0;else{for(var A=m[g][E],T=v[g][E],D=0;D<c;D++){var M=h.default(S/1e3,A,T,C.val,C.stiffness,C.damping,C.precision);A=M[0],T=M[1]}var O=h.default(S/1e3,A,T,C.val,C.stiffness,C.damping,C.precision),P=O[0],I=O[1];b[E]=A+(P-A)*u,x[E]=T+(I-T)*u,w[E]=A,k[E]=T}}m[g]=w,v[g]=k,f[g]=b,d[g]=x}e.animationID=null,e.accumulatedTime-=c*S,e.setState({currentStyles:f,currentVelocities:d,lastIdealStyles:m,lastIdealVelocities:v,mergedPropsStyles:p}),e.unreadPropStyles=null,e.startAnimationIfNecessary()})},componentDidMount:function(){this.prevTime=y.default(),this.startAnimationIfNecessary()},componentWillReceiveProps:function(e){this.unreadPropStyles&&this.clearUnreadPropStyle(this.unreadPropStyles),"function"==typeof e.styles?this.unreadPropStyles=e.styles(i(this.state.mergedPropsStyles,this.unreadPropStyles,this.state.lastIdealStyles)):this.unreadPropStyles=e.styles,null==this.animationID&&(this.prevTime=y.default(),this.startAnimationIfNecessary())},componentWillUnmount:function(){null!=this.animationID&&(_.default.cancel(this.animationID),this.animationID=null)},render:function(){var e=i(this.state.mergedPropsStyles,this.unreadPropStyles,this.state.currentStyles),t=this.props.children(e);return t&&k.default.Children.only(t)}});t.default=E,e.exports=t.default},function(e,t){"use strict";function n(e,t,n){for(var r={},i=0;i<e.length;i++)r[e[i].key]=i;for(var o={},i=0;i<t.length;i++)o[t[i].key]=i;for(var a=[],i=0;i<t.length;i++)a[i]=t[i];for(var i=0;i<e.length;i++)if(!o.hasOwnProperty(e[i].key)){var s=n(i,e[i]);null!=s&&a.push(s)}return a.sort(function(e,n){var i=o[e.key],a=o[n.key],s=r[e.key],u=r[n.key];if(null!=i&&null!=a)return o[e.key]-o[n.key];if(null!=s&&null!=u)return r[e.key]-r[n.key];if(null!=i){for(var c=0;c<t.length;c++){var l=t[c].key;if(r.hasOwnProperty(l)){if(i<o[l]&&u>r[l])return-1;if(i>o[l]&&u<r[l])return 1}}return 1}for(var c=0;c<t.length;c++){var l=t[c].key;if(r.hasOwnProperty(l)){if(a<o[l]&&s>r[l])return 1;if(a>o[l]&&s<r[l])return-1}}return-1})}t.__esModule=!0,t.default=n,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){return o({},u,t,{val:e})}t.__esModule=!0;var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t.default=i;var a=n(1056),s=r(a),u=o({},s.default.noWobble,{precision:.01});e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default={noWobble:{stiffness:170,damping:26},gentle:{stiffness:120,damping:14},wobbly:{stiffness:180,damping:12},stiff:{stiffness:210,damping:20}},e.exports=t.default},function(e,t,n){"use strict";function r(){}t.__esModule=!0,t.default=r;e.exports=t.default},function(e,t,n){"use strict";var r=n(1059).default;e.exports=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=n(498),s=r(a),u=n(1060),c=r(u),l=n(1062),p=r(l),f=n(1042),h=function(e){return e.clientHeight},d=(0,p.default)({propTypes:{children:c.default.node.isRequired,onHeightReady:c.default.func.isRequired,hidden:c.default.bool,dirty:c.default.bool,getElementHeight:c.default.func},getDefaultProps:function(){return{hidden:!1,dirty:!0,getElementHeight:h}},getInitialState:function(){return{height:0,dirty:this.props.dirty}},componentDidMount:function(){var e=this,t=this.props.getElementHeight(this.wrapper),n=!1;this.setState({height:t,dirty:n},function(){return e.props.onHeightReady(e.state.height)})},componentWillReceiveProps:function(e){var t=e.children,n=e.dirty;(t!==this.props.children||n)&&this.setState({dirty:!0})},shouldComponentUpdate:f.shouldComponentUpdate,componentDidUpdate:function(){var e=this,t=this.props.getElementHeight(this.wrapper),n=!1;t===this.state.height?this.setState({dirty:n}):this.setState({height:t,dirty:n},function(){return e.props.onHeightReady(e.state.height)})},setWrapperRef:function(e){this.wrapper=e},render:function(){var e=this.props,t=(e.onHeightReady,e.getElementHeight,e.dirty,e.hidden),n=e.children,r=i(e,["onHeightReady","getElementHeight","dirty","hidden","children"]),a=this.state.dirty;return t&&!a?null:t?s.default.createElement("div",{style:{height:0,overflow:"hidden"}},s.default.createElement("div",o({ref:this.setWrapperRef},r),n)):s.default.createElement("div",o({ref:this.setWrapperRef},r),n)}});t.default=d},[1232,1061],function(e,t,n){"use strict";var r=n(505),i=n(508);e.exports=function(){function e(){i(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t};return n.checkPropTypes=r,n.PropTypes=n,n}},function(e,t,n){"use strict";var r=n(498),i=n(1063),o=(new r.Component).updater;e.exports=i(r.Component,r.isValidElement,o)},function(e,t,n){"use strict";function r(e){return e}function i(e,t,n){function i(e,t){var n=g.hasOwnProperty(t)?g[t]:null;x.hasOwnProperty(t)&&u("OVERRIDE_BASE"===n,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e&&u("DEFINE_MANY"===n||"DEFINE_MANY_MERGED"===n,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function o(e,n){if(n){u("function"!=typeof n,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),u(!t(n),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var r=e.prototype,o=r.__reactAutoBindPairs;n.hasOwnProperty(c)&&_.mixins(e,n.mixins);for(var a in n)if(n.hasOwnProperty(a)&&a!==c){var s=n[a],l=r.hasOwnProperty(a);if(i(l,a),_.hasOwnProperty(a))_[a](e,s);else{var p=g.hasOwnProperty(a),d="function"==typeof s,m=d&&!p&&!l&&n.autobind!==!1;if(m)o.push(a,s),r[a]=s;else if(l){var v=g[a];u(p&&("DEFINE_MANY_MERGED"===v||"DEFINE_MANY"===v),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",v,a),"DEFINE_MANY_MERGED"===v?r[a]=f(r[a],s):"DEFINE_MANY"===v&&(r[a]=h(r[a],s))}else r[a]=s}}}else;}function l(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var i=n in _;u(!i,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n);var o=n in e;u(!o,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),e[n]=r}}}function p(e,t){u(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.");for(var n in t)t.hasOwnProperty(n)&&(u(void 0===e[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n), +e[n]=t[n]);return e}function f(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var i={};return p(i,n),p(i,r),i}}function h(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function d(e,t){var n=t.bind(e);return n}function m(e){for(var t=e.__reactAutoBindPairs,n=0;n<t.length;n+=2){var r=t[n],i=t[n+1];e[r]=d(e,i)}}function v(e){var t=r(function(e,r,i){this.__reactAutoBindPairs.length&&m(this),this.props=e,this.context=r,this.refs=s,this.updater=i||n,this.state=null;var o=this.getInitialState?this.getInitialState():null;u("object"==typeof o&&!Array.isArray(o),"%s.getInitialState(): must return an object or null",t.displayName||"ReactCompositeComponent"),this.state=o});t.prototype=new w,t.prototype.constructor=t,t.prototype.__reactAutoBindPairs=[],y.forEach(o.bind(null,t)),o(t,b),o(t,e),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),u(t.prototype.render,"createClass(...): Class specification must implement a `render` method.");for(var i in g)t.prototype[i]||(t.prototype[i]=null);return t}var y=[],g={mixins:"DEFINE_MANY",statics:"DEFINE_MANY",propTypes:"DEFINE_MANY",contextTypes:"DEFINE_MANY",childContextTypes:"DEFINE_MANY",getDefaultProps:"DEFINE_MANY_MERGED",getInitialState:"DEFINE_MANY_MERGED",getChildContext:"DEFINE_MANY_MERGED",render:"DEFINE_ONCE",componentWillMount:"DEFINE_MANY",componentDidMount:"DEFINE_MANY",componentWillReceiveProps:"DEFINE_MANY",shouldComponentUpdate:"DEFINE_ONCE",componentWillUpdate:"DEFINE_MANY",componentDidUpdate:"DEFINE_MANY",componentWillUnmount:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},_={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)o(e,t[n])},childContextTypes:function(e,t){e.childContextTypes=a({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=a({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=f(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=a({},e.propTypes,t)},statics:function(e,t){l(e,t)},autobind:function(){}},b={componentDidMount:function(){this.__isMounted=!0},componentWillUnmount:function(){this.__isMounted=!1}},x={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e,t)},isMounted:function(){return!!this.__isMounted}},w=function(){};return a(w.prototype,e.prototype,x),v}var o,a=n(500),s=n(507),u=n(508),c="mixins";o={},e.exports=i},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=n(1015),y=r(v),g=n(168),_=function(){},b=function(e){function t(){var e,n,r,i;(0,s.default)(this,t);for(var a=arguments.length,u=Array(a),c=0;c<a;c++)u[c]=arguments[c];return n=r=(0,p.default)(this,(e=t.__proto__||(0,o.default)(t)).call.apply(e,[this].concat(u))),r.onChangeWrapper=function(e){return r.props.onChange(e.target.value)},i=n,(0,p.default)(r,i)}return(0,h.default)(t,e),(0,c.default)(t,[{key:"componentDidMount",value:function(){this.props.onChange(this.props.contentTypes.first())}},{key:"render",value:function(){var e=this.props,t=e.contentTypes,n=e.className,r=e.value;return t&&t.size?m.default.createElement("div",{className:"content-type-wrapper "+(n||"")},m.default.createElement("select",{className:"content-type",value:r,onChange:this.onChangeWrapper},t.map(function(e){return m.default.createElement("option",{key:e,value:e},e)}).toArray())):null}}]),t}(m.default.Component);b.propTypes={contentTypes:d.PropTypes.oneOfType([y.default.list,y.default.set]),value:d.PropTypes.string,onChange:d.PropTypes.func,className:d.PropTypes.string},b.defaultProps={onChange:_,value:null,contentTypes:(0,g.fromJS)(["application/json"])},t.default=b},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.OperationLink=void 0;var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=n(1066),y=function(e){function t(){var e;(0,s.default)(this,t);for(var n=arguments.length,r=Array(n),i=0;i<n;i++)r[i]=arguments[i];var a=(0,p.default)(this,(e=t.__proto__||(0,o.default)(t)).call.apply(e,[this].concat(r)));return a.setTagShown=a._setTagShown.bind(a),a}return(0,h.default)(t,e),(0,c.default)(t,[{key:"_setTagShown",value:function(e,t){this.props.layoutActions.show(e,t)}},{key:"showOp",value:function(e,t){var n=this.props.layoutActions;n.show(e,t)}},{key:"render",value:function(){var e=this.props,t=e.specSelectors,n=e.layoutSelectors,r=e.layoutActions,i=e.getComponent,o=t.taggedOperations(),a=i("Collapse");return m.default.createElement("div",null,m.default.createElement("h4",{className:"overview-title"},"Overview"),o.map(function(e,t){var i=e.get("operations"),o=["overview-tags",t],s=n.isShown(o,!0),u=function(){return r.show(o,!s)};return m.default.createElement("div",{key:"overview-"+t},m.default.createElement("h4",{onClick:u,className:"link overview-tag"}," ",s?"-":"+",t),m.default.createElement(a,{isOpened:s,animated:!0},i.map(function(e){var t=e.toObject(),i=t.path,o=t.method,a=t.id,s="operations",u=a,c=n.isShown([s,u]);return m.default.createElement(g,{key:a,path:i,method:o,id:i+"-"+o,shown:c,showOpId:u,showOpIdPrefix:s,href:"#operation-"+u,onClick:r.show})}).toArray()))}).toArray(),o.size<1&&m.default.createElement("h3",null," No operations defined in spec! "))}}]),t}(m.default.Component);t.default=y,y.propTypes={layoutSelectors:d.PropTypes.object.isRequired,specSelectors:d.PropTypes.object.isRequired,layoutActions:d.PropTypes.object.isRequired,getComponent:d.PropTypes.func.isRequired};var g=t.OperationLink=function(e){function t(e){(0,s.default)(this,t);var n=(0,p.default)(this,(t.__proto__||(0,o.default)(t)).call(this,e));return n.onClick=n._onClick.bind(n),n}return(0,h.default)(t,e),(0,c.default)(t,[{key:"_onClick",value:function(){var e=this.props,t=e.showOpId,n=e.showOpIdPrefix,r=e.onClick,i=e.shown;r([n,t],!i)}},{key:"render",value:function(){var e=this.props,t=e.id,n=e.method,r=e.shown,i=e.href;return m.default.createElement(v.Link,{href:i,style:{fontWeight:r?"bold":"normal"},onClick:this.onClick,className:"block opblock-link"},m.default.createElement("div",null,m.default.createElement("small",{className:"bold-label-"+n},n.toUpperCase()),m.default.createElement("span",{className:"bold-label"},t)))}}]),t}(m.default.Component);g.propTypes={href:d.PropTypes.string,onClick:d.PropTypes.func,id:d.PropTypes.string.isRequired,method:d.PropTypes.string.isRequired,shown:d.PropTypes.bool.isRequired,showOpId:d.PropTypes.string.isRequired,showOpIdPrefix:d.PropTypes.string.isRequired}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter(function(e){return!!e}).join(" ").trim()}Object.defineProperty(t,"__esModule",{value:!0}),t.Collapse=t.Link=t.Select=t.Input=t.TextArea=t.Button=t.Row=t.Col=t.Container=void 0;var o=n(446),a=r(o),s=n(447),u=r(s),c=n(486),l=r(c),p=n(145),f=r(p),h=n(146),d=r(h),m=n(489),v=r(m),y=n(490),g=r(y),_=n(498),b=r(_),x=n(1040),w=r(x),k=t.Container=function(e){function t(){return(0,f.default)(this,t),(0,v.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,g.default)(t,e),(0,d.default)(t,[{key:"render",value:function(){var e=this.props,t=e.fullscreen,n=e.full,r=(0,u.default)(e,["fullscreen","full"]);if(t)return b.default.createElement("section",r);var o="swagger-container"+(n?"-full":"");return b.default.createElement("section",(0,a.default)({},r,{className:i(r.className,o)}))}}]),t}(b.default.Component);k.propTypes={fullscreen:_.PropTypes.bool,full:_.PropTypes.bool,className:_.PropTypes.string};var S={mobile:"",tablet:"-tablet",desktop:"-desktop",large:"-hd"},E=t.Col=function(e){function t(){return(0,f.default)(this,t),(0,v.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,g.default)(t,e),(0,d.default)(t,[{key:"render",value:function(){var e=this.props,t=e.hide,n=e.keepContents,r=(e.mobile,e.tablet,e.desktop,e.large,(0,u.default)(e,["hide","keepContents","mobile","tablet","desktop","large"]));if(t&&!n)return b.default.createElement("span",null);var o=[];for(var s in S){var c=S[s];if(s in this.props){var l=this.props[s];if(l<1){o.push("none"+c);continue}o.push("block"+c),o.push("col-"+l+c)}}var p=i.apply(void 0,[r.className].concat(o));return b.default.createElement("section",(0,a.default)({},r,{style:{display:t?"none":null},className:p}))}}]),t}(b.default.Component);E.propTypes={hide:_.PropTypes.bool,keepContents:_.PropTypes.bool,mobile:_.PropTypes.number,tablet:_.PropTypes.number,desktop:_.PropTypes.number,large:_.PropTypes.number,className:_.PropTypes.string};var C=t.Row=function(e){function t(){return(0,f.default)(this,t),(0,v.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,g.default)(t,e),(0,d.default)(t,[{key:"render",value:function(){return b.default.createElement("div",(0,a.default)({},this.props,{className:i(this.props.className,"wrapper")}))}}]),t}(b.default.Component);C.propTypes={className:_.PropTypes.string};var A=t.Button=function(e){function t(){return(0,f.default)(this,t),(0,v.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,g.default)(t,e),(0,d.default)(t,[{key:"render",value:function(){return b.default.createElement("button",(0,a.default)({},this.props,{className:i(this.props.className,"button")}))}}]),t}(b.default.Component);A.propTypes={className:_.PropTypes.string},A.defaultProps={className:""};var T=(t.TextArea=function(e){return b.default.createElement("textarea",e)},t.Input=function(e){return b.default.createElement("input",e)},t.Select=function(e){function t(e,n){(0,f.default)(this,t);var r=(0,v.default)(this,(t.__proto__||(0,l.default)(t)).call(this,e,n));D.call(r);var i=void 0;return i=void 0!==e.value?e.value:e.multiple?[""]:"",r.state={value:i},r}return(0,g.default)(t,e),(0,d.default)(t,[{key:"render",value:function(){var e=this.props,t=e.allowedValues,n=e.multiple,r=e.allowEmptyValue,i=this.state.value.toJS?this.state.value.toJS():this.state.value;return b.default.createElement("select",{multiple:n,value:i,onChange:this.onChange},r?b.default.createElement("option",{value:""},"--"):null,t.map(function(e,t){return b.default.createElement("option",{key:t,value:String(e)},e)}))}}]),t}(b.default.Component));T.propTypes={allowedValues:_.PropTypes.array,value:_.PropTypes.any,onChange:_.PropTypes.func,multiple:_.PropTypes.bool,allowEmptyValue:_.PropTypes.bool},T.defaultProps={multiple:!1,allowEmptyValue:!0};var D=function(){var e=this;this.onChange=function(t){var n=e.props,r=n.onChange,i=n.multiple,o=[].slice.call(t.target.options),a=void 0;a=i?o.filter(function(e){return e.selected}).map(function(e){return e.value}):t.target.value,e.setState({value:a}),r&&r(a)}},M=t.Link=function(e){function t(){return(0,f.default)(this,t),(0,v.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,g.default)(t,e),(0,d.default)(t,[{key:"render",value:function(){return b.default.createElement("a",(0,a.default)({},this.props,{className:i(this.props.className,"link")}))}}]),t}(b.default.Component);M.propTypes={className:_.PropTypes.string};var O=function(e){var t=e.children;return b.default.createElement("div",{style:{height:"auto",border:"none",margin:0,padding:0}}," ",t," ")};O.propTypes={children:_.PropTypes.node};var P=t.Collapse=function(e){function t(){return(0,f.default)(this,t),(0,v.default)(this,(t.__proto__||(0,l.default)(t)).apply(this,arguments))}return(0,g.default)(t,e),(0,d.default)(t,[{key:"renderNotAnimated",value:function(){return this.props.isOpened?b.default.createElement(O,null,this.props.children):b.default.createElement("noscript",null)}},{key:"render",value:function(){var e=this.props,t=e.animated,n=e.isOpened,r=e.children;return t?(r=n?r:null,b.default.createElement(w.default,{isOpened:n},b.default.createElement(O,null,r))):this.renderNotAnimated()}}]),t}(b.default.Component);P.propTypes={isOpened:_.PropTypes.bool,children:_.PropTypes.node.isRequired,animated:_.PropTypes.bool},P.defaultProps={isOpened:!1,animated:!1}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=n(168),y=n(1015),g=r(y),_=function(e){function t(){return(0,s.default)(this,t),(0,p.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props,t=e.host,n=e.basePath;return m.default.createElement("pre",{className:"base-url"},"[ Base url: ",t,n,"]")}}]),t}(m.default.Component);_.propTypes={host:d.PropTypes.string,basePath:d.PropTypes.string};var b=function(e){function t(){return(0,s.default)(this,t),(0,p.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props.data,t=e.get("name")||"the developer",n=e.get("url"),r=e.get("email");return m.default.createElement("div",null,n&&m.default.createElement("div",null,m.default.createElement("a",{href:n,target:"_blank"},t," - Website")),r&&m.default.createElement("a",{href:"mailto:"+r},n?"Send email to "+t:"Contact "+t))}}]),t}(m.default.Component);b.propTypes={data:d.PropTypes.object};var x=function(e){function t(){return(0,s.default)(this,t),(0,p.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props.license,t=e.get("name")||"License",n=e.get("url");return m.default.createElement("div",null,n?m.default.createElement("a",{target:"_blank",href:n},t):m.default.createElement("span",null,t))}}]),t}(m.default.Component);x.propTypes={license:d.PropTypes.object};var w=function(e){function t(){return(0,s.default)(this,t),(0,p.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props,t=e.info,n=e.url,r=e.host,i=e.basePath,o=e.getComponent,a=e.externalDocs,s=t.get("version"),u=t.get("description"),c=t.get("title"),l=t.get("termsOfService"),p=t.get("contact"),f=t.get("license"),h=(a||(0,v.fromJS)({})).toJS(),d=h.url,y=h.description,g=o("Markdown");return m.default.createElement("div",{className:"info"},m.default.createElement("hgroup",{className:"main"},m.default.createElement("h2",{className:"title"},c,s&&m.default.createElement("small",null,m.default.createElement("pre",{className:"version"}," ",s," "))),r||i?m.default.createElement(_,{host:r,basePath:i}):null,n&&m.default.createElement("a",{target:"_blank",href:n},m.default.createElement("span",{className:"url"}," ",n," "))),m.default.createElement("div",{className:"description"},m.default.createElement(g,{source:u})),l&&m.default.createElement("div",null,m.default.createElement("a",{target:"_blank",href:l},"Terms of service")),p&&p.size?m.default.createElement(b,{data:p}):null,f&&f.size?m.default.createElement(x,{license:f}):null,d?m.default.createElement("a",{target:"_blank",href:d},y||d):null)}}]),t}(m.default.Component);w.propTypes={info:d.PropTypes.object,url:d.PropTypes.string,host:d.PropTypes.string,basePath:d.PropTypes.string,externalDocs:g.default.map,getComponent:d.PropTypes.func.isRequired},t.default=w,w.propTypes={title:d.PropTypes.any,description:d.PropTypes.any,version:d.PropTypes.any,url:d.PropTypes.string}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=function(e){function t(){return(0,s.default)(this,t),(0,p.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){return m.default.createElement("div",{className:"footer"})}}]),t}(m.default.Component);t.default=v},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=n(1027),y=r(v),g=n(168),_=n(183),b=Function.prototype,x=function(e){function t(e,n){(0,s.default)(this,t);var r=(0,p.default)(this,(t.__proto__||(0,o.default)(t)).call(this,e,n));return w.call(r),r.state={isEditBox:!1,value:""},r}return(0,h.default)(t,e),(0,c.default)(t,[{key:"componentDidMount",value:function(){this.updateValues.call(this,this.props)}},{key:"shouldComponentUpdate",value:function(e,t){return(0,y.default)(this,e,t)}},{key:"componentWillReceiveProps",value:function(e){this.updateValues.call(this,e)}},{key:"render",value:function(){var e=this.props,n=e.onChangeConsumes,r=e.param,i=e.isExecute,o=e.specSelectors,a=e.pathMethod,s=e.getComponent,u=s("Button"),c=s("TextArea"),l=s("highlightCode"),p=s("contentType"),f=o?o.getParameter(a,r.get("name")):r,h=f.get("errors",(0,g.List)()),d=o.contentTypeValues(a).get("requestContentType"),v=this.props.consumes&&this.props.consumes.size?this.props.consumes:t.defaultProp.consumes,y=this.state,_=y.value,b=y.isEditBox;return m.default.createElement("div",{className:"body-param"},b&&i?m.default.createElement(c,{className:"body-param__text"+(h.count()?" invalid":""),value:_,onChange:this.handleOnChange}):_&&m.default.createElement(l,{className:"body-param__example",value:_}),m.default.createElement("div",{className:"body-param-options"},i?m.default.createElement("div",{className:"body-param-edit"},m.default.createElement(u,{className:b?"btn cancel body-param__example-edit":"btn edit body-param__example-edit",onClick:this.toggleIsEditBox},b?"Cancel":"Edit")):null,m.default.createElement("label",{htmlFor:""},m.default.createElement("span",null,"Parameter content type"),m.default.createElement(p,{value:d,contentTypes:v,onChange:n,className:"body-param-content-type"}))))}}]),t}(d.Component);x.propTypes={param:d.PropTypes.object,onChange:d.PropTypes.func,onChangeConsumes:d.PropTypes.func,consumes:d.PropTypes.object,consumesValue:d.PropTypes.string,fn:d.PropTypes.object.isRequired,getComponent:d.PropTypes.func.isRequired,isExecute:d.PropTypes.bool,specSelectors:d.PropTypes.object.isRequired,pathMethod:d.PropTypes.array.isRequired},x.defaultProp={consumes:(0,g.fromJS)(["application/json"]),param:(0,g.fromJS)({}),onChange:b,onChangeConsumes:b};var w=function(){var e=this;this.updateValues=function(t){var n=t.specSelectors,r=t.pathMethod,i=t.param,o=t.isExecute,a=t.consumesValue,s=void 0===a?"":a,u=n?n.getParameter(r,i.get("name")):{},c=/xml/i.test(s),l=c?u.get("value_xml"):u.get("value");if(void 0!==l){var p=l||c?l:"{}";e.setState({value:p}),e.onChange(p,{isXml:c,isEditBox:o})}else c?e.onChange(e.sample("xml"),{isXml:c,isEditBox:o}):e.onChange(e.sample(),{isEditBox:o})},this.sample=function(t){var n=e.props,r=n.param,i=n.fn.inferSchema,o=i(r.toJS());return(0,_.getSampleSchema)(o,t)},this.onChange=function(t,n){var r=n.isEditBox,i=n.isXml;e.setState({value:t,isEditBox:r}),e._onChange(t,i)},this._onChange=function(t,n){(e.props.onChange||b)(e.props.param,t,n)},this.handleOnChange=function(t){var n=e.props.consumesValue;e.onChange(t.target.value.trim(),{isXml:/xml/i.test(n)})},this.toggleIsEditBox=function(){return e.setState(function(e){return{isEditBox:!e.isEditBox}})}};t.default=x},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=n(1071),y=r(v),g=function(e){function t(){return(0,s.default)(this,t),(0,p.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"handleFocus",value:function(e){e.target.select(),document.execCommand("copy")}},{key:"render",value:function(){var e=this.props.request,t=(0,y.default)(e);return m.default.createElement("div",null,m.default.createElement("h4",null,"Curl"),m.default.createElement("div",{className:"copy-paste"},m.default.createElement("textarea",{onFocus:this.handleFocus,readOnly:"true",className:"curl",style:{whiteSpace:"normal"},value:t})))}}]),t}(m.default.Component);g.propTypes={request:d.PropTypes.object.isRequired},t.default=g},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=[],n="",r=e.get("headers");if(t.push("curl"),t.push("-X",e.get("method")),t.push('"'+e.get("url")+'"'),r&&r.size){var i=!0,o=!1,s=void 0;try{for(var c,p=(0,l.default)(e.get("headers").entries());!(i=(c=p.next()).done);i=!0){var h=c.value,d=(0,u.default)(h,2),m=d[0],v=d[1];n=v,t.push("-H "),t.push('"'+m+": "+v+'"')}}catch(e){o=!0,s=e}finally{try{!i&&p.return&&p.return()}finally{if(o)throw s}}}if(e.get("body"))if("multipart/form-data"===n&&"POST"===e.get("method")){var y=!0,g=!1,_=void 0;try{for(var b,x=(0,l.default)(e.get("body").values());!(y=(b=x.next()).done);y=!0){var w=(0,u.default)(b.value,2),k=w[0],v=w[1];t.push("-F"),v instanceof f.default.File?t.push('"'+k+"=@"+v.name+";type="+v.type+'"'):t.push('"'+k+"="+v+'"')}}catch(e){g=!0,_=e}finally{try{!y&&x.return&&x.return()}finally{if(g)throw _}}}else t.push("-d"),t.push((0,a.default)(e.get("body")).replace(/\\n/g,""));return t.join(" ")}Object.defineProperty(t,"__esModule",{value:!0});var o=n(57),a=r(o),s=n(184),u=r(s),c=n(178),l=r(c);t.default=i;var p=n(177),f=r(p)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=function(e){function t(){var e,n,r,i;(0,s.default)(this,t);for(var a=arguments.length,u=Array(a),c=0;c<a;c++)u[c]=arguments[c];return n=r=(0,p.default)(this,(e=t.__proto__||(0,o.default)(t)).call.apply(e,[this].concat(u))),r.onChange=function(e){r.setScheme(e.target.value)},r.setScheme=function(e){var t=r.props,n=t.path,i=t.method,o=t.specActions;o.setScheme(e,n,i)},i=n,(0,p.default)(r,i)}return(0,h.default)(t,e),(0,c.default)(t,[{key:"componentWillMount",value:function(){var e=this.props.schemes;this.setScheme(e.first())}},{key:"render",value:function(){var e=this.props.schemes;return m.default.createElement("label",{htmlFor:"schemes"},m.default.createElement("span",{className:"schemes-title"},"Schemes"),m.default.createElement("select",{onChange:this.onChange},e.valueSeq().map(function(e){return m.default.createElement("option",{value:e,key:e},e)}).toArray()))}}]),t}(m.default.Component);v.propTypes={specActions:d.PropTypes.object.isRequired,schemes:d.PropTypes.object.isRequired,path:d.PropTypes.string,method:d.PropTypes.string},t.default=v},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=function(e){function t(e,n){(0,s.default)(this,t);var r=(0,p.default)(this,(t.__proto__||(0,o.default)(t)).call(this,e,n));return r.activeTab=function(e){var t=e.target.dataset.name;r.setState({activeTab:t})},r.state={activeTab:"example"},r}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.specSelectors,r=e.schema,i=e.example,o=e.isExecute,a=t("model");return m.default.createElement("div",null,m.default.createElement("ul",{className:"tab"},m.default.createElement("li",{className:"tabitem"+(o||"example"===this.state.activeTab?" active":"")},m.default.createElement("a",{className:"tablinks","data-name":"example",onClick:this.activeTab},"Example Value")),m.default.createElement("li",{className:"tabitem"+(o||"model"!==this.state.activeTab?"":" active")},m.default.createElement("a",{className:"tablinks"+(o?" inactive":""),"data-name":"model",onClick:this.activeTab},"Model"))),m.default.createElement("div",null,(o||"example"===this.state.activeTab)&&i,!o&&"model"===this.state.activeTab&&m.default.createElement(a,{schema:r,getComponent:t,specSelectors:n,expandDepth:1})))}}]),t}(m.default.Component);v.propTypes={getComponent:d.PropTypes.func.isRequired,specSelectors:d.PropTypes.object.isRequired,schema:d.PropTypes.object.isRequired,example:d.PropTypes.any.isRequired,isExecute:d.PropTypes.bool},t.default=v},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(446),o=r(i),a=n(184),s=r(a),u=n(447),c=r(u),l=n(486),p=r(l),f=n(145),h=r(f),d=n(146),m=r(d),v=n(489),y=r(v),g=n(490),_=r(g),b=n(498),x=r(b),w=n(1015),k=r(w),S=n(168),E="{",C="}",A={color:"#999",fontStyle:"italic"},T=function(e){var t=e.value,n=x.default.createElement("span",null,"Array [ ",t.count()," ]");return x.default.createElement("span",{className:"prop-enum"},"Enum:",x.default.createElement("br",null),x.default.createElement(N,{collapsedContent:n},"[ ",t.join(", ")," ]"))};T.propTypes={value:k.default.iterable};var D=function(e){function t(){return(0,h.default)(this,t),(0,y.default)(this,(t.__proto__||(0,p.default)(t)).apply(this,arguments))}return(0,_.default)(t,e),(0,m.default)(t,[{key:"render",value:function(){var e=this.props,t=e.schema,n=e.name,r=e.isRef,i=e.getComponent,a=e.depth,u=(0,c.default)(e,["schema","name","isRef","getComponent","depth"]),l=this.props.expandDepth,p=i("JumpToPath",!0),f=t.get("description"),h=t.get("properties"),d=t.get("additionalProperties"),m=t.get("title")||n,v=t.get("required"),y=i("Markdown"),g=function(e){var t=e.name;return x.default.createElement("span",{className:"model-jump-to-path"},x.default.createElement(p,{path:"definitions."+t}))},_=x.default.createElement("span",null,x.default.createElement("span",null,E),"...",x.default.createElement("span",null,C),r?x.default.createElement(g,{name:n}):"");return x.default.createElement("span",{className:"model"},m&&x.default.createElement("span",{className:"model-title"},r&&t.get("$$ref")&&x.default.createElement("span",{className:"model-hint"},t.get("$$ref")),x.default.createElement("span",{className:"model-title__text"},m)),x.default.createElement(N,{collapsed:a>l,collapsedContent:_},x.default.createElement("span",{className:"brace-open object"},E),r?x.default.createElement(g,{name:n}):null,x.default.createElement("span",{className:"inner-object"},x.default.createElement("table",{className:"model",style:{marginLeft:"2em"}},x.default.createElement("tbody",null,f?x.default.createElement("tr",{style:{color:"#999",fontStyle:"italic"}},x.default.createElement("td",null,"description:"),x.default.createElement("td",null,x.default.createElement(y,{source:f}))):null,h&&h.size?h.entrySeq().map(function(e){var t=(0,s.default)(e,2),r=t[0],c=t[1],l=S.List.isList(v)&&v.contains(r),p={verticalAlign:"top",paddingRight:"0.2em"};return l&&(p.fontWeight="bold"),x.default.createElement("tr",{key:r},x.default.createElement("td",{style:p},r,":"),x.default.createElement("td",{style:{verticalAlign:"top"}},x.default.createElement(P,(0,o.default)({key:"object-"+n+"-"+r+"_"+c},u,{required:l,getComponent:i,schema:c,depth:a+1}))))}).toArray():null,d&&d.size?x.default.createElement("tr",null,x.default.createElement("td",null,"< * >:"),x.default.createElement("td",null,x.default.createElement(P,(0,o.default)({},u,{required:!1,getComponent:i,schema:d,depth:a+1})))):null))),x.default.createElement("span",{className:"brace-close"},C)))}}]),t}(b.Component);D.propTypes={schema:b.PropTypes.object.isRequired,getComponent:b.PropTypes.func.isRequired,specSelectors:b.PropTypes.object.isRequired,name:b.PropTypes.string,isRef:b.PropTypes.bool,expandDepth:b.PropTypes.number,depth:b.PropTypes.number};var M=function(e){function t(){return(0,h.default)(this,t),(0,y.default)(this,(t.__proto__||(0,p.default)(t)).apply(this,arguments))}return(0,_.default)(t,e),(0,m.default)(t,[{key:"render",value:function(){var e=this.props,t=e.schema,n=e.getComponent,r=e.required;if(!t||!t.get)return x.default.createElement("div",null);var i=t.get("type"),o=t.get("format"),a=t.get("xml"),u=t.get("enum"),c=t.get("description"),l=t.filter(function(e,t){return["enum","type","format","description","$$ref"].indexOf(t)===-1}),p=r?{fontWeight:"bold"}:{},f=n("Markdown");return x.default.createElement("span",{className:"prop"},x.default.createElement("span",{className:"prop-type",style:p},i)," ",r&&x.default.createElement("span",{style:{color:"red"}},"*"),o&&x.default.createElement("span",{className:"prop-format"},"($",o,")"),l.size?l.entrySeq().map(function(e){var t=(0,s.default)(e,2),n=t[0],r=t[1];return x.default.createElement("span",{key:n+"-"+r,style:A},x.default.createElement("br",null),n,": ",String(r))}):null,c?x.default.createElement(f,{source:c}):null,a&&a.size?x.default.createElement("span",null,x.default.createElement("br",null),x.default.createElement("span",{style:A},"xml:"),a.entrySeq().map(function(e){var t=(0,s.default)(e,2),n=t[0],r=t[1];return x.default.createElement("span",{key:n+"-"+r,style:A},x.default.createElement("br",null),"   ",n,": ",String(r))}).toArray()):null,u&&x.default.createElement(T,{value:u}))}}]),t}(b.Component);M.propTypes={schema:b.PropTypes.object.isRequired,getComponent:b.PropTypes.func.isRequired,required:b.PropTypes.bool};var O=function(e){function t(){return(0,h.default)(this,t),(0,y.default)(this,(t.__proto__||(0,p.default)(t)).apply(this,arguments))}return(0,_.default)(t,e),(0,m.default)(t,[{key:"render",value:function(){var e=this.props,t=e.required,n=e.schema,r=e.depth,i=e.expandDepth,a=n.get("items"),u=n.filter(function(e,t){return["type","items","$$ref"].indexOf(t)===-1});return x.default.createElement("span",{className:"model"},x.default.createElement("span",{className:"model-title"},x.default.createElement("span",{className:"model-title__text"},n.get("title"))),x.default.createElement(N,{collapsed:r>i,collapsedContent:"[...]"},"[",x.default.createElement("span",null,x.default.createElement(P,(0,o.default)({},this.props,{schema:a,required:!1}))),"]",u.size?x.default.createElement("span",null,u.entrySeq().map(function(e){var t=(0,s.default)(e,2),n=t[0],r=t[1];return x.default.createElement("span",{key:n+"-"+r,style:A},x.default.createElement("br",null),n+":",String(r))}),x.default.createElement("br",null)):null),t&&x.default.createElement("span",{style:{color:"red"}},"*"))}}]),t}(b.Component);O.propTypes={schema:b.PropTypes.object.isRequired,getComponent:b.PropTypes.func.isRequired,specSelectors:b.PropTypes.object.isRequired,name:b.PropTypes.string,required:b.PropTypes.bool,expandDepth:b.PropTypes.number,depth:b.PropTypes.number};var P=function(e){function t(){var e,n,r,i;(0,h.default)(this,t);for(var o=arguments.length,a=Array(o),s=0;s<o;s++)a[s]=arguments[s];return n=r=(0,y.default)(this,(e=t.__proto__||(0,p.default)(t)).call.apply(e,[this].concat(a))),r.getModelName=function(e){if(e.indexOf("#/definitions/")!==-1)return e.replace(/^.*#\/definitions\//,"")},r.getRefSchema=function(e){var t=r.props.specSelectors;return t.findDefinition(e)},i=n,(0,y.default)(r,i)}return(0,_.default)(t,e),(0,m.default)(t,[{key:"render",value:function(){var e=this.props,t=e.schema,n=e.getComponent,r=e.required,i=e.name,a=e.isRef,s=t&&t.get("$$ref"),u=s&&this.getModelName(s),c=void 0,l=void 0;switch(t&&(t.get("type")||t.get("properties"))?c=t:s&&(c=this.getRefSchema(u)),l=c&&c.get("type"),!l&&c&&c.get("properties")&&(l="object"),l){case"object":return x.default.createElement(D,(0,o.default)({className:"object"},this.props,{schema:c,name:i||u,isRef:void 0!==a?a:!!s}));case"array":return x.default.createElement(O,(0,o.default)({className:"array"},this.props,{schema:c,required:r}));case"string":case"number":case"integer":case"boolean":default:return x.default.createElement(M,{ +getComponent:n,schema:c,required:r})}}}]),t}(b.Component);P.propTypes={schema:b.PropTypes.object.isRequired,getComponent:b.PropTypes.func.isRequired,specSelectors:b.PropTypes.object.isRequired,name:b.PropTypes.string,isRef:b.PropTypes.bool,required:b.PropTypes.bool,expandDepth:b.PropTypes.number,depth:b.PropTypes.number};var I=function(e){function t(){return(0,h.default)(this,t),(0,y.default)(this,(t.__proto__||(0,p.default)(t)).apply(this,arguments))}return(0,_.default)(t,e),(0,m.default)(t,[{key:"render",value:function(){return x.default.createElement("div",{className:"model-box"},x.default.createElement(P,(0,o.default)({},this.props,{depth:1,expandDepth:this.props.expandDepth||0})))}}]),t}(b.Component);I.propTypes={schema:b.PropTypes.object.isRequired,name:b.PropTypes.string,getComponent:b.PropTypes.func.isRequired,specSelectors:b.PropTypes.object.isRequired,expandDepth:b.PropTypes.number},t.default=I;var N=function(e){function t(e,n){(0,h.default)(this,t);var r=(0,y.default)(this,(t.__proto__||(0,p.default)(t)).call(this,e,n));r.toggleCollapsed=function(){r.setState({collapsed:!r.state.collapsed})};var i=r.props,o=i.collapsed,a=i.collapsedContent;return r.state={collapsed:void 0!==o?o:t.defaultProps.collapsed,collapsedContent:a||t.defaultProps.collapsedContent},r}return(0,_.default)(t,e),(0,m.default)(t,[{key:"render",value:function(){return x.default.createElement("span",null,x.default.createElement("span",{onClick:this.toggleCollapsed,style:{cursor:"pointer"}},x.default.createElement("span",{className:"model-toggle"+(this.state.collapsed?" collapsed":"")})),this.state.collapsed?this.state.collapsedContent:this.props.children)}}]),t}(b.Component);N.propTypes={collapsedContent:b.PropTypes.any,collapsed:b.PropTypes.bool,children:b.PropTypes.any},N.defaultProps={collapsedContent:"{...}",collapsed:!0}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(184),o=r(i),a=n(486),s=r(a),u=n(145),c=r(u),l=n(146),p=r(l),f=n(489),h=r(f),d=n(490),m=r(d),v=n(498),y=r(v),g=function(e){function t(){return(0,c.default)(this,t),(0,h.default)(this,(t.__proto__||(0,s.default)(t)).apply(this,arguments))}return(0,m.default)(t,e),(0,p.default)(t,[{key:"render",value:function(){var e=this.props,t=e.specSelectors,n=e.getComponent,r=e.layoutSelectors,i=e.layoutActions,a=e.getConfigs,s=t.definitions(),u=a(),c=u.docExpansion,l=r.isShown("models","full"===c||"list"===c),p=n("model"),f=n("Collapse");return s.size?y.default.createElement("section",{className:l?"models is-open":"models"},y.default.createElement("h4",{onClick:function(){return i.show("models",!l)}},y.default.createElement("span",null,"Models"),y.default.createElement("svg",{width:"20",height:"20"},y.default.createElement("use",{xlinkHref:"#large-arrow"}))),y.default.createElement(f,{isOpened:l,animated:!0},s.entrySeq().map(function(e){var r=(0,o.default)(e,2),i=r[0],a=r[1];return y.default.createElement("div",{className:"model-container",key:"models-section-"+i},y.default.createElement(p,{name:i,schema:a,isRef:!0,getComponent:n,specSelectors:t}))}).toArray())):null}}]),t}(v.Component);g.propTypes={getComponent:v.PropTypes.func,specSelectors:v.PropTypes.object,layoutSelectors:v.PropTypes.object,layoutActions:v.PropTypes.object,getConfigs:v.PropTypes.func.isRequired},t.default=g},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=function(e){function t(){return(0,s.default)(this,t),(0,p.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props,t=e.onTryoutClick,n=e.onCancelClick,r=e.enabled;return m.default.createElement("div",{className:"try-out"},r?m.default.createElement("button",{className:"btn try-out__btn cancel",onClick:t},"Cancel"):m.default.createElement("button",{className:"btn try-out__btn",onClick:n},"Try it out "))}}]),t}(m.default.Component);v.propTypes={onTryoutClick:d.PropTypes.func,onCancelClick:d.PropTypes.func,enabled:d.PropTypes.bool},v.defaultProps={onTryoutClick:Function.prototype,onCancelClick:Function.prototype,enabled:!1},t.default=v},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=e.source,n=(0,l.default)(t,p);return t&&n&&"undefined"!==n?a.default.createElement(u.default,{options:{html:!0,typographer:!0,linkify:!0,linkTarget:"_blank"},source:n}):null}Object.defineProperty(t,"__esModule",{value:!0});var o=n(498),a=r(o),s=n(1078),u=r(s),c=n(1140),l=r(c),p={textFilter:function(e){return e.replace(/&quot;/g,'"')}};i.propTypes={source:o.PropTypes.string.isRequired},t.default=i},function(e,t,n){"use strict";var r=function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=n(498),o=r(i),a=n(1079),s=r(a),u=o.default.createClass({displayName:"Remarkable",getDefaultProps:function(){return{container:"div",options:{}}},render:function(){var e=this.props.container;return o.default.createElement(e,null,this.content())},componentWillUpdate:function(e,t){e.options!==this.props.options&&(this.md=new s.default(e.options))},content:function(){var e=this;return this.props.source?o.default.createElement("span",{dangerouslySetInnerHTML:{__html:this.renderMarkdown(this.props.source)}}):o.default.Children.map(this.props.children,function(t){return"string"==typeof t?o.default.createElement("span",{dangerouslySetInnerHTML:{__html:e.renderMarkdown(t)}}):t})},renderMarkdown:function(e){return this.md||(this.md=new s.default(this.props.options)),this.md.render(e)}});t.default=u,e.exports=t.default},function(e,t,n){"use strict";e.exports=n(1080)},function(e,t,n){"use strict";function r(e,t,n){this.src=t,this.env=n,this.options=e.options,this.tokens=[],this.inlineMode=!1,this.inline=e.inline,this.block=e.block,this.renderer=e.renderer,this.typographer=e.typographer}function i(e,t){"string"!=typeof e&&(t=e,e="default"),this.inline=new c,this.block=new u,this.core=new s,this.renderer=new a,this.ruler=new l,this.options={},this.configure(p[e]),this.set(t||{})}var o=n(1081).assign,a=n(1083),s=n(1085),u=n(1103),c=n(1118),l=n(1086),p={default:n(1137),full:n(1138),commonmark:n(1139)};i.prototype.set=function(e){o(this.options,e)},i.prototype.configure=function(e){var t=this;if(!e)throw new Error("Wrong `remarkable` preset, check name/content");e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(n){e.components[n].rules&&t[n].ruler.enable(e.components[n].rules,!0)})},i.prototype.use=function(e,t){return e(this,t),this},i.prototype.parse=function(e,t){var n=new r(this,e,t);return this.core.process(n),n.tokens},i.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},i.prototype.parseInline=function(e,t){var n=new r(this,e,t);return n.inlineMode=!0,this.core.process(n),n.tokens},i.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)},e.exports=i,e.exports.utils=n(1081)},function(e,t,n){"use strict";function r(e){return Object.prototype.toString.call(e)}function i(e){return"[object String]"===r(e)}function o(e,t){return!!e&&d.call(e,t)}function a(e){var t=[].slice.call(arguments,1);return t.forEach(function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach(function(n){e[n]=t[n]})}}),e}function s(e){return e.indexOf("\\")<0?e:e.replace(m,"$1")}function u(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!==(65535&e)&&65534!==(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function c(e){if(e>65535){e-=65536;var t=55296+(e>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}function l(e,t){var n=0;return o(g,t)?g[t]:35===t.charCodeAt(0)&&y.test(t)&&(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10),u(n))?c(n):e}function p(e){return e.indexOf("&")<0?e:e.replace(v,l)}function f(e){return x[e]}function h(e){return _.test(e)?e.replace(b,f):e}var d=Object.prototype.hasOwnProperty,m=/\\([\\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g,v=/&([a-z#][a-z0-9]{1,31});/gi,y=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,g=n(1082),_=/[&<>"]/,b=/[&<>"]/g,x={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};t.assign=a,t.isString=i,t.has=o,t.unescapeMd=s,t.isValidEntityCode=u,t.fromCodePoint=c,t.replaceEntities=p,t.escapeHtml=h},function(e,t){"use strict";e.exports={Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",amp:"&",And:"⩓",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",Barwed:"⌆",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",Because:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxDL:"╗",boxDl:"╖",boxdL:"╕",boxdl:"┐",boxDR:"╔",boxDr:"╓",boxdR:"╒",boxdr:"┌",boxH:"═",boxh:"─",boxHD:"╦",boxHd:"╤",boxhD:"╥",boxhd:"┬",boxHU:"╩",boxHu:"╧",boxhU:"╨",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxUL:"╝",boxUl:"╜",boxuL:"╛",boxul:"┘",boxUR:"╚",boxUr:"╙",boxuR:"╘",boxur:"└",boxV:"║",boxv:"│",boxVH:"╬",boxVh:"╫",boxvH:"╪",boxvh:"┼",boxVL:"╣",boxVl:"╢",boxvL:"╡",boxvl:"┤",boxVR:"╠",boxVr:"╟",boxvR:"╞",boxvr:"├",bprime:"‵",Breve:"˘",breve:"˘",brvbar:"¦",Bscr:"ℬ",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",Cap:"⋒",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",CenterDot:"·",centerdot:"·",Cfr:"ℭ",cfr:"𝔠",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",Colon:"∷",colon:":",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",Conint:"∯",conint:"∮",ContourIntegral:"∮",Copf:"ℂ",copf:"𝕔",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",Cup:"⋓",cup:"∪",cupbrcap:"⩈",CupCap:"≍",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",Dagger:"‡",dagger:"†",daleth:"ℸ",Darr:"↡",dArr:"⇓",darr:"↓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",DD:"ⅅ",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",Diamond:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",Downarrow:"⇓",downarrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",ecir:"≖",Ecirc:"Ê",ecirc:"ê",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",eDot:"≑",edot:"ė",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",Escr:"ℰ",escr:"ℯ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",ExponentialE:"ⅇ",exponentiale:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",ForAll:"∀",forall:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",Fscr:"ℱ",fscr:"𝒻",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",gE:"≧",ge:"≥",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",GT:">",Gt:"≫",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",hArr:"⇔",harr:"↔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",Hfr:"ℌ",hfr:"𝔥",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"𝕙",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"𝒽",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"𝔦",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Im:"ℑ",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",Int:"∬",int:"∫",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"𝒾",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",Larr:"↞",lArr:"⇐",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",lAtail:"⤛",latail:"⤙",late:"⪭",lates:"⪭︀",lBarr:"⤎",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",lE:"≦",le:"≤",LeftAngleBracket:"⟨",LeftArrow:"←",Leftarrow:"⇐",leftarrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",Ll:"⋘",ll:"≪",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lnE:"≨",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftarrow:"⟵",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longleftrightarrow:"⟷",longmapsto:"⟼",LongRightArrow:"⟶",Longrightarrow:"⟹",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"𝓁",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",LT:"<",Lt:"≪",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",Mscr:"ℳ",mscr:"𝓂",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",ne:"≠",nearhk:"⤤",neArr:"⇗",nearr:"↗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlArr:"⇍",nlarr:"↚",nldr:"‥",nlE:"≦̸",nle:"≰",nLeftarrow:"⇍",nleftarrow:"↚",nLeftrightarrow:"⇎",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",nopf:"𝕟",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nRightarrow:"⇏",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nVDash:"⊯",nVdash:"⊮",nvDash:"⊭",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwArr:"⇖",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",ocir:"⊚",Ocirc:"Ô",ocirc:"ô",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",Otimes:"⨷",otimes:"⊗",otimesas:"⨶",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",Popf:"ℙ",popf:"𝕡",pound:"£",Pr:"⪻",pr:"≺",prap:"⪷",prcue:"≼",prE:"⪳",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",Prime:"″",prime:"′",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",Qopf:"ℚ",qopf:"𝕢",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',quot:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",Rang:"⟫",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",Rarr:"↠",rArr:"⇒",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",rAtail:"⤜",ratail:"⤚",ratio:"∶",rationals:"ℚ",RBarr:"⤐",rBarr:"⤏",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",REG:"®",reg:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",Rfr:"ℜ",rfr:"𝔯",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrow:"→",Rightarrow:"⇒",rightarrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",Ropf:"ℝ",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"𝓇",Rsh:"↱",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",Sc:"⪼",sc:"≻",scap:"⪸",Scaron:"Š",scaron:"š",sccue:"≽",scE:"⪴",sce:"⪰",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",seArr:"⇘",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",Square:"□",square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",Sub:"⋐",sub:"⊂",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",Subset:"⋐",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",Sum:"∑",sum:"∑",sung:"♪",Sup:"⋑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",Supset:"⋑",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swArr:"⇙",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",Therefore:"∴",therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",Tilde:"∼",tilde:"˜",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",Uarr:"↟",uArr:"⇑",uarr:"↑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrow:"↑",Uparrow:"⇑",uparrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",Updownarrow:"⇕",updownarrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",upsi:"υ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅", +varphi:"ϕ",varpi:"ϖ",varpropto:"∝",vArr:"⇕",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",Vbar:"⫫",vBar:"⫨",vBarv:"⫩",Vcy:"В",vcy:"в",VDash:"⊫",Vdash:"⊩",vDash:"⊨",vdash:"⊢",Vdashl:"⫦",Vee:"⋁",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",Verbar:"‖",verbar:"|",Vert:"‖",vert:"|",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"𝔷",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"𝕫",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"}},function(e,t,n){"use strict";function r(){this.rules=i.assign({},o),this.getBreak=o.getBreak}var i=n(1081),o=n(1084);e.exports=r,r.prototype.renderInline=function(e,t,n){for(var r=this.rules,i=e.length,o=0,a="";i--;)a+=r[e[o].type](e,o++,t,n,this);return a},r.prototype.render=function(e,t,n){for(var r=this.rules,i=e.length,o=-1,a="";++o<i;)a+="inline"===e[o].type?this.renderInline(e[o].children,t,n):r[e[o].type](e,o,t,n,this);return a}},function(e,t,n){"use strict";function r(e,t){return++t>=e.length-2?t:"paragraph_open"===e[t].type&&e[t].tight&&"inline"===e[t+1].type&&0===e[t+1].content.length&&"paragraph_close"===e[t+2].type&&e[t+2].tight?r(e,t+2):t}var i=n(1081).has,o=n(1081).unescapeMd,a=n(1081).replaceEntities,s=n(1081).escapeHtml,u={};u.blockquote_open=function(){return"<blockquote>\n"},u.blockquote_close=function(e,t){return"</blockquote>"+c(e,t)},u.code=function(e,t){return e[t].block?"<pre><code>"+s(e[t].content)+"</code></pre>"+c(e,t):"<code>"+s(e[t].content)+"</code>"},u.fence=function(e,t,n,r,u){var l,p,f,h=e[t],d="",m=n.langPrefix,v="";if(h.params){if(l=h.params.split(/\s+/g),p=l.join(" "),i(u.rules.fence_custom,l[0]))return u.rules.fence_custom[l[0]](e,t,n,r,u);v=s(a(o(p))),d=' class="'+m+v+'"'}return f=n.highlight?n.highlight.apply(n.highlight,[h.content].concat(l))||s(h.content):s(h.content),"<pre><code"+d+">"+f+"</code></pre>"+c(e,t)},u.fence_custom={},u.heading_open=function(e,t){return"<h"+e[t].hLevel+">"},u.heading_close=function(e,t){return"</h"+e[t].hLevel+">\n"},u.hr=function(e,t,n){return(n.xhtmlOut?"<hr />":"<hr>")+c(e,t)},u.bullet_list_open=function(){return"<ul>\n"},u.bullet_list_close=function(e,t){return"</ul>"+c(e,t)},u.list_item_open=function(){return"<li>"},u.list_item_close=function(){return"</li>\n"},u.ordered_list_open=function(e,t){var n=e[t],r=n.order>1?' start="'+n.order+'"':"";return"<ol"+r+">\n"},u.ordered_list_close=function(e,t){return"</ol>"+c(e,t)},u.paragraph_open=function(e,t){return e[t].tight?"":"<p>"},u.paragraph_close=function(e,t){var n=!(e[t].tight&&t&&"inline"===e[t-1].type&&!e[t-1].content);return(e[t].tight?"":"</p>")+(n?c(e,t):"")},u.link_open=function(e,t,n){var r=e[t].title?' title="'+s(a(e[t].title))+'"':"",i=n.linkTarget?' target="'+n.linkTarget+'"':"";return'<a href="'+s(e[t].href)+'"'+r+i+">"},u.link_close=function(){return"</a>"},u.image=function(e,t,n){var r=' src="'+s(e[t].src)+'"',i=e[t].title?' title="'+s(a(e[t].title))+'"':"",u=' alt="'+(e[t].alt?s(a(o(e[t].alt))):"")+'"',c=n.xhtmlOut?" /":"";return"<img"+r+u+i+c+">"},u.table_open=function(){return"<table>\n"},u.table_close=function(){return"</table>\n"},u.thead_open=function(){return"<thead>\n"},u.thead_close=function(){return"</thead>\n"},u.tbody_open=function(){return"<tbody>\n"},u.tbody_close=function(){return"</tbody>\n"},u.tr_open=function(){return"<tr>"},u.tr_close=function(){return"</tr>\n"},u.th_open=function(e,t){var n=e[t];return"<th"+(n.align?' style="text-align:'+n.align+'"':"")+">"},u.th_close=function(){return"</th>"},u.td_open=function(e,t){var n=e[t];return"<td"+(n.align?' style="text-align:'+n.align+'"':"")+">"},u.td_close=function(){return"</td>"},u.strong_open=function(){return"<strong>"},u.strong_close=function(){return"</strong>"},u.em_open=function(){return"<em>"},u.em_close=function(){return"</em>"},u.del_open=function(){return"<del>"},u.del_close=function(){return"</del>"},u.ins_open=function(){return"<ins>"},u.ins_close=function(){return"</ins>"},u.mark_open=function(){return"<mark>"},u.mark_close=function(){return"</mark>"},u.sub=function(e,t){return"<sub>"+s(e[t].content)+"</sub>"},u.sup=function(e,t){return"<sup>"+s(e[t].content)+"</sup>"},u.hardbreak=function(e,t,n){return n.xhtmlOut?"<br />\n":"<br>\n"},u.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?"<br />\n":"<br>\n":"\n"},u.text=function(e,t){return s(e[t].content)},u.htmlblock=function(e,t){return e[t].content},u.htmltag=function(e,t){return e[t].content},u.abbr_open=function(e,t){return'<abbr title="'+s(a(e[t].title))+'">'},u.abbr_close=function(){return"</abbr>"},u.footnote_ref=function(e,t){var n=Number(e[t].id+1).toString(),r="fnref"+n;return e[t].subId>0&&(r+=":"+e[t].subId),'<sup class="footnote-ref"><a href="#fn'+n+'" id="'+r+'">['+n+"]</a></sup>"},u.footnote_block_open=function(e,t,n){var r=n.xhtmlOut?'<hr class="footnotes-sep" />\n':'<hr class="footnotes-sep">\n';return r+'<section class="footnotes">\n<ol class="footnotes-list">\n'},u.footnote_block_close=function(){return"</ol>\n</section>\n"},u.footnote_open=function(e,t){var n=Number(e[t].id+1).toString();return'<li id="fn'+n+'" class="footnote-item">'},u.footnote_close=function(){return"</li>\n"},u.footnote_anchor=function(e,t){var n=Number(e[t].id+1).toString(),r="fnref"+n;return e[t].subId>0&&(r+=":"+e[t].subId),' <a href="#'+r+'" class="footnote-backref">↩</a>'},u.dl_open=function(){return"<dl>\n"},u.dt_open=function(){return"<dt>"},u.dd_open=function(){return"<dd>"},u.dl_close=function(){return"</dl>\n"},u.dt_close=function(){return"</dt>\n"},u.dd_close=function(){return"</dd>\n"};var c=u.getBreak=function(e,t){return t=r(e,t),t<e.length&&"list_item_close"===e[t].type?"":"\n"};e.exports=u},function(e,t,n){"use strict";function r(){this.options={},this.ruler=new i;for(var e=0;e<o.length;e++)this.ruler.push(o[e][0],o[e][1])}var i=n(1086),o=[["block",n(1087)],["abbr",n(1088)],["references",n(1091)],["inline",n(1096)],["footnote_tail",n(1097)],["abbr2",n(1098)],["replacements",n(1099)],["smartquotes",n(1100)],["linkify",n(1101)]];r.prototype.process=function(e){var t,n,r;for(r=this.ruler.getRules(""),t=0,n=r.length;t<n;t++)r[t](e)},e.exports=r},function(e,t){"use strict";function n(){this.__rules__=[],this.__cache__=null}n.prototype.__find__=function(e){for(var t=this.__rules__.length,n=-1;t--;)if(this.__rules__[++n].name===e)return n;return-1},n.prototype.__compile__=function(){var e=this,t=[""];e.__rules__.forEach(function(e){e.enabled&&e.alt.forEach(function(e){t.indexOf(e)<0&&t.push(e)})}),e.__cache__={},t.forEach(function(t){e.__cache__[t]=[],e.__rules__.forEach(function(n){n.enabled&&(t&&n.alt.indexOf(t)<0||e.__cache__[t].push(n.fn))})})},n.prototype.at=function(e,t,n){var r=this.__find__(e),i=n||{};if(r===-1)throw new Error("Parser rule not found: "+e);this.__rules__[r].fn=t,this.__rules__[r].alt=i.alt||[],this.__cache__=null},n.prototype.before=function(e,t,n,r){var i=this.__find__(e),o=r||{};if(i===-1)throw new Error("Parser rule not found: "+e);this.__rules__.splice(i,0,{name:t,enabled:!0,fn:n,alt:o.alt||[]}),this.__cache__=null},n.prototype.after=function(e,t,n,r){var i=this.__find__(e),o=r||{};if(i===-1)throw new Error("Parser rule not found: "+e);this.__rules__.splice(i+1,0,{name:t,enabled:!0,fn:n,alt:o.alt||[]}),this.__cache__=null},n.prototype.push=function(e,t,n){var r=n||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:r.alt||[]}),this.__cache__=null},n.prototype.enable=function(e,t){e=Array.isArray(e)?e:[e],t&&this.__rules__.forEach(function(e){e.enabled=!1}),e.forEach(function(e){var t=this.__find__(e);if(t<0)throw new Error("Rules manager: invalid rule name "+e);this.__rules__[t].enabled=!0},this),this.__cache__=null},n.prototype.disable=function(e){e=Array.isArray(e)?e:[e],e.forEach(function(e){var t=this.__find__(e);if(t<0)throw new Error("Rules manager: invalid rule name "+e);this.__rules__[t].enabled=!1},this),this.__cache__=null},n.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]},e.exports=n},function(e,t){"use strict";e.exports=function(e){e.inlineMode?e.tokens.push({type:"inline",content:e.src.replace(/\n/g," ").trim(),level:0,lines:[0,1],children:[]}):e.block.parse(e.src,e.options,e.env,e.tokens)}},function(e,t,n){"use strict";function r(e,t,n,r){var a,s,u,c,l,p;if(42!==e.charCodeAt(0))return-1;if(91!==e.charCodeAt(1))return-1;if(e.indexOf("]:")===-1)return-1;if(a=new i(e,t,n,r,[]),s=o(a,1),s<0||58!==e.charCodeAt(s+1))return-1;for(c=a.posMax,u=s+2;u<c&&10!==a.src.charCodeAt(u);u++);return l=e.slice(2,s),p=e.slice(s+2,u).trim(),0===p.length?-1:(r.abbreviations||(r.abbreviations={}),"undefined"==typeof r.abbreviations[":"+l]&&(r.abbreviations[":"+l]=p),u)}var i=n(1089),o=n(1090);e.exports=function(e){var t,n,i,o,a=e.tokens;if(!e.inlineMode)for(t=1,n=a.length-1;t<n;t++)if("paragraph_open"===a[t-1].type&&"inline"===a[t].type&&"paragraph_close"===a[t+1].type){for(i=a[t].content;i.length&&(o=r(i,e.inline,e.options,e.env),!(o<0));)i=i.slice(o).trim();a[t].content=i,i.length||(a[t-1].tight=!0,a[t+1].tight=!0)}}},function(e,t){"use strict";function n(e,t,n,r,i){this.src=e,this.env=r,this.options=n,this.parser=t,this.tokens=i,this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache=[],this.isInLabel=!1,this.linkLevel=0,this.linkContent="",this.labelUnmatchedScopes=0}n.prototype.pushPending=function(){this.tokens.push({type:"text",content:this.pending,level:this.pendingLevel}),this.pending=""},n.prototype.push=function(e){this.pending&&this.pushPending(),this.tokens.push(e),this.pendingLevel=this.level},n.prototype.cacheSet=function(e,t){for(var n=this.cache.length;n<=e;n++)this.cache.push(0);this.cache[e]=t},n.prototype.cacheGet=function(e){return e<this.cache.length?this.cache[e]:0},e.exports=n},function(e,t){"use strict";e.exports=function(e,t){var n,r,i,o=-1,a=e.posMax,s=e.pos,u=e.isInLabel;if(e.isInLabel)return-1;if(e.labelUnmatchedScopes)return e.labelUnmatchedScopes--,-1;for(e.pos=t+1,e.isInLabel=!0,n=1;e.pos<a;){if(i=e.src.charCodeAt(e.pos),91===i)n++;else if(93===i&&(n--,0===n)){r=!0;break}e.parser.skipToken(e)}return r?(o=e.pos,e.labelUnmatchedScopes=0):e.labelUnmatchedScopes=n-1,e.pos=s,e.isInLabel=u,o}},function(e,t,n){"use strict";function r(e,t,n,r){var c,l,p,f,h,d,m,v,y;if(91!==e.charCodeAt(0))return-1;if(e.indexOf("]:")===-1)return-1;if(c=new i(e,t,n,r,[]),l=o(c,0),l<0||58!==e.charCodeAt(l+1))return-1;for(f=c.posMax,p=l+2;p<f&&(h=c.src.charCodeAt(p),32===h||10===h);p++);if(!a(c,p))return-1;for(m=c.linkContent,p=c.pos,d=p,p+=1;p<f&&(h=c.src.charCodeAt(p),32===h||10===h);p++);for(p<f&&d!==p&&s(c,p)?(v=c.linkContent,p=c.pos):(v="",p=d);p<f&&32===c.src.charCodeAt(p);)p++;return p<f&&10!==c.src.charCodeAt(p)?-1:(y=u(e.slice(1,l)),"undefined"==typeof r.references[y]&&(r.references[y]={title:v,href:m}),p)}var i=n(1089),o=n(1090),a=n(1092),s=n(1094),u=n(1095);e.exports=function(e){var t,n,i,o,a=e.tokens;if(e.env.references=e.env.references||{},!e.inlineMode)for(t=1,n=a.length-1;t<n;t++)if("inline"===a[t].type&&"paragraph_open"===a[t-1].type&&"paragraph_close"===a[t+1].type){for(i=a[t].content;i.length&&(o=r(i,e.inline,e.options,e.env),!(o<0));)i=i.slice(o).trim();a[t].content=i,i.length||(a[t-1].tight=!0,a[t+1].tight=!0)}}},function(e,t,n){"use strict";var r=n(1093),i=n(1081).unescapeMd;e.exports=function(e,t){var n,o,a,s=t,u=e.posMax;if(60===e.src.charCodeAt(t)){for(t++;t<u;){if(n=e.src.charCodeAt(t),10===n)return!1;if(62===n)return a=r(i(e.src.slice(s+1,t))),!!e.parser.validateLink(a)&&(e.pos=t+1,e.linkContent=a,!0);92===n&&t+1<u?t+=2:t++}return!1}for(o=0;t<u&&(n=e.src.charCodeAt(t),32!==n)&&!(n>8&&n<14);)if(92===n&&t+1<u)t+=2;else{if(40===n&&(o++,o>1))break;if(41===n&&(o--,o<0))break;t++}return s!==t&&(a=i(e.src.slice(s,t)),!!e.parser.validateLink(a)&&(e.linkContent=a,e.pos=t,!0))}},function(e,t,n){"use strict";var r=n(1081).replaceEntities;e.exports=function(e){var t=r(e);try{t=decodeURI(t)}catch(e){}return encodeURI(t)}},function(e,t,n){"use strict";var r=n(1081).unescapeMd;e.exports=function(e,t){var n,i=t,o=e.posMax,a=e.src.charCodeAt(t);if(34!==a&&39!==a&&40!==a)return!1;for(t++,40===a&&(a=41);t<o;){if(n=e.src.charCodeAt(t),n===a)return e.pos=t+1,e.linkContent=r(e.src.slice(i+1,t)),!0;92===n&&t+1<o?t+=2:t++}return!1}},function(e,t){"use strict";e.exports=function(e){return e.trim().replace(/\s+/g," ").toUpperCase()}},function(e,t){"use strict";e.exports=function(e){var t,n,r,i=e.tokens;for(n=0,r=i.length;n<r;n++)t=i[n],"inline"===t.type&&e.inline.parse(t.content,e.options,e.env,t.children)}},function(e,t){"use strict";e.exports=function(e){var t,n,r,i,o,a,s,u,c,l=0,p=!1,f={};if(e.env.footnotes&&(e.tokens=e.tokens.filter(function(e){return"footnote_reference_open"===e.type?(p=!0,u=[],c=e.label,!1):"footnote_reference_close"===e.type?(p=!1,f[":"+c]=u,!1):(p&&u.push(e),!p)}),e.env.footnotes.list)){for(a=e.env.footnotes.list,e.tokens.push({type:"footnote_block_open",level:l++}),t=0,n=a.length;t<n;t++){for(e.tokens.push({type:"footnote_open",id:t,level:l++}),a[t].tokens?(s=[],s.push({type:"paragraph_open",tight:!1,level:l++}),s.push({type:"inline",content:"",level:l,children:a[t].tokens}),s.push({type:"paragraph_close",tight:!1,level:--l})):a[t].label&&(s=f[":"+a[t].label]),e.tokens=e.tokens.concat(s),o="paragraph_close"===e.tokens[e.tokens.length-1].type?e.tokens.pop():null,i=a[t].count>0?a[t].count:1,r=0;r<i;r++)e.tokens.push({type:"footnote_anchor",id:t,subId:r,level:l});o&&e.tokens.push(o),e.tokens.push({type:"footnote_close",level:--l})}e.tokens.push({type:"footnote_block_close",level:--l})}}},function(e,t){"use strict";function n(e){return e.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1")}var r=" \n()[]'\".,!?-";e.exports=function(e){var t,i,o,a,s,u,c,l,p,f,h,d,m=e.tokens;if(e.env.abbreviations)for(e.env.abbrRegExp||(d="(^|["+r.split("").map(n).join("")+"])("+Object.keys(e.env.abbreviations).map(function(e){return e.substr(1)}).sort(function(e,t){return t.length-e.length}).map(n).join("|")+")($|["+r.split("").map(n).join("")+"])",e.env.abbrRegExp=new RegExp(d,"g")),f=e.env.abbrRegExp,i=0,o=m.length;i<o;i++)if("inline"===m[i].type)for(a=m[i].children,t=a.length-1;t>=0;t--)if(s=a[t],"text"===s.type){for(l=0,u=s.content,f.lastIndex=0,p=s.level,c=[];h=f.exec(u);)f.lastIndex>l&&c.push({type:"text",content:u.slice(l,h.index+h[1].length),level:p}),c.push({type:"abbr_open",title:e.env.abbreviations[":"+h[2]],level:p++}),c.push({type:"text",content:h[2],level:p}),c.push({type:"abbr_close",level:--p}),l=f.lastIndex-h[3].length;c.length&&(l<u.length&&c.push({type:"text",content:u.slice(l),level:p}),m[i].children=a=[].concat(a.slice(0,t),c,a.slice(t+1)))}}},function(e,t){"use strict";function n(e){return e.indexOf("(")<0?e:e.replace(i,function(e,t){return o[t.toLowerCase()]})}var r=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,i=/\((c|tm|r|p)\)/gi,o={c:"©",r:"®",p:"§",tm:"™"};e.exports=function(e){var t,i,o,a,s;if(e.options.typographer)for(s=e.tokens.length-1;s>=0;s--)if("inline"===e.tokens[s].type)for(a=e.tokens[s].children,t=a.length-1;t>=0;t--)i=a[t],"text"===i.type&&(o=i.content,o=n(o),r.test(o)&&(o=o.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---([^-]|$)/gm,"$1—$2").replace(/(^|\s)--(\s|$)/gm,"$1–$2").replace(/(^|[^-\s])--([^-\s]|$)/gm,"$1–$2")),i.content=o)}},function(e,t){"use strict";function n(e,t){return!(t<0||t>=e.length)&&!a.test(e[t])}function r(e,t,n){return e.substr(0,t)+n+e.substr(t+1)}var i=/['"]/,o=/['"]/g,a=/[-\s()\[\]]/,s="’";e.exports=function(e){var t,a,u,c,l,p,f,h,d,m,v,y,g,_,b,x,w;if(e.options.typographer)for(w=[],b=e.tokens.length-1;b>=0;b--)if("inline"===e.tokens[b].type)for(x=e.tokens[b].children,w.length=0,t=0;t<x.length;t++)if(a=x[t],"text"===a.type&&!i.test(a.text)){for(f=x[t].level,g=w.length-1;g>=0&&!(w[g].level<=f);g--);w.length=g+1,u=a.content,l=0,p=u.length;e:for(;l<p&&(o.lastIndex=l,c=o.exec(u));)if(h=!n(u,c.index-1),l=c.index+1,_="'"===c[0],d=!n(u,l),d||h){if(v=!d,y=!h)for(g=w.length-1;g>=0&&(m=w[g],!(w[g].level<f));g--)if(m.single===_&&w[g].level===f){m=w[g],_?(x[m.token].content=r(x[m.token].content,m.pos,e.options.quotes[2]),a.content=r(a.content,c.index,e.options.quotes[3])):(x[m.token].content=r(x[m.token].content,m.pos,e.options.quotes[0]),a.content=r(a.content,c.index,e.options.quotes[1])),w.length=g;continue e}v?w.push({token:t,pos:c.index,single:_,level:f}):y&&_&&(a.content=r(a.content,c.index,s))}else _&&(a.content=r(a.content,c.index,s))}}},function(e,t,n){"use strict";function r(e){return/^<a[>\s]/i.test(e)}function i(e){return/^<\/a\s*>/i.test(e)}function o(){var e=[],t=new a({stripPrefix:!1,url:!0,email:!0,twitter:!1,replaceFn:function(t,n){switch(n.getType()){case"url":e.push({text:n.matchedText,url:n.getUrl()});break;case"email":e.push({text:n.matchedText,url:"mailto:"+n.getEmail().replace(/^mailto:/i,"")})}return!1}});return{links:e,autolinker:t}}var a=n(1102),s=/www|@|\:\/\//;e.exports=function(e){var t,n,a,u,c,l,p,f,h,d,m,v,y,g=e.tokens,_=null;if(e.options.linkify)for(n=0,a=g.length;n<a;n++)if("inline"===g[n].type)for(u=g[n].children,m=0,t=u.length-1;t>=0;t--)if(c=u[t],"link_close"!==c.type){if("htmltag"===c.type&&(r(c.content)&&m>0&&m--,i(c.content)&&m++),!(m>0)&&"text"===c.type&&s.test(c.content)){if(_||(_=o(),v=_.links,y=_.autolinker),l=c.content,v.length=0,y.link(l),!v.length)continue;for(p=[],d=c.level,f=0;f<v.length;f++)e.inline.validateLink(v[f].url)&&(h=l.indexOf(v[f].text),h&&(d=d,p.push({type:"text",content:l.slice(0,h),level:d})),p.push({type:"link_open",href:v[f].url,title:"",level:d++}),p.push({type:"text",content:v[f].text,level:d}),p.push({type:"link_close",level:--d}),l=l.slice(h+v[f].text.length));l.length&&p.push({type:"text",content:l,level:d}),g[n].children=u=[].concat(u.slice(0,t),p,u.slice(t+1))}}else for(t--;u[t].level!==c.level&&"link_open"!==u[t].type;)t--}},function(e,t,n){var r,i;!function(n,o){r=[],i=function(){return n.Autolinker=o()}.apply(t,r),!(void 0!==i&&(e.exports=i))}(this,function(){/*! + * Autolinker.js + * 0.15.3 + * + * Copyright(c) 2015 Gregory Jacobs <greg@greg-jacobs.com> + * MIT Licensed. http://www.opensource.org/licenses/mit-license.php + * + * https://github.com/gregjacobs/Autolinker.js + */ +var e=function(t){e.Util.assign(this,t)};return e.prototype={constructor:e,urls:!0,email:!0,twitter:!0,newWindow:!0,stripPrefix:!0,truncate:void 0,className:"",htmlParser:void 0,matchParser:void 0,tagBuilder:void 0,link:function(e){for(var t=this.getHtmlParser(),n=t.parse(e),r=0,i=[],o=0,a=n.length;o<a;o++){var s=n[o],u=s.getType(),c=s.getText();if("element"===u)"a"===s.getTagName()&&(s.isClosing()?r=Math.max(r-1,0):r++),i.push(c);else if("entity"===u)i.push(c);else if(0===r){var l=this.linkifyStr(c);i.push(l)}else i.push(c)}return i.join("")},linkifyStr:function(e){return this.getMatchParser().replace(e,this.createMatchReturnVal,this)},createMatchReturnVal:function(t){var n;if(this.replaceFn&&(n=this.replaceFn.call(this,this,t)),"string"==typeof n)return n;if(n===!1)return t.getMatchedText();if(n instanceof e.HtmlTag)return n.toString();var r=this.getTagBuilder(),i=r.build(t);return i.toString()},getHtmlParser:function(){var t=this.htmlParser;return t||(t=this.htmlParser=new e.htmlParser.HtmlParser),t},getMatchParser:function(){var t=this.matchParser;return t||(t=this.matchParser=new e.matchParser.MatchParser({urls:this.urls,email:this.email,twitter:this.twitter,stripPrefix:this.stripPrefix})),t},getTagBuilder:function(){var t=this.tagBuilder;return t||(t=this.tagBuilder=new e.AnchorTagBuilder({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),t}},e.link=function(t,n){var r=new e(n);return r.link(t)},e.match={},e.htmlParser={},e.matchParser={},e.Util={abstractMethod:function(){throw"abstract"},assign:function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},extend:function(t,n){var r=t.prototype,i=function(){};i.prototype=r;var o;o=n.hasOwnProperty("constructor")?n.constructor:function(){r.constructor.apply(this,arguments)};var a=o.prototype=new i;return a.constructor=o,a.superclass=r,delete n.constructor,e.Util.assign(a,n),o},ellipsis:function(e,t,n){return e.length>t&&(n=null==n?"..":n,e=e.substring(0,t-n.length)+n),e},indexOf:function(e,t){if(Array.prototype.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},splitAndCapture:function(e,t){if(!t.global)throw new Error("`splitRegex` must have the 'g' flag set");for(var n,r=[],i=0;n=t.exec(e);)r.push(e.substring(i,n.index)),r.push(n[0]),i=n.index+n[0].length;return r.push(e.substring(i)),r}},e.HtmlTag=e.Util.extend(Object,{whitespaceRegex:/\s+/,constructor:function(t){e.Util.assign(this,t),this.innerHtml=this.innerHtml||this.innerHTML},setTagName:function(e){return this.tagName=e,this},getTagName:function(){return this.tagName||""},setAttr:function(e,t){var n=this.getAttrs();return n[e]=t,this},getAttr:function(e){return this.getAttrs()[e]},setAttrs:function(t){var n=this.getAttrs();return e.Util.assign(n,t),this},getAttrs:function(){return this.attrs||(this.attrs={})},setClass:function(e){return this.setAttr("class",e)},addClass:function(t){for(var n,r=this.getClass(),i=this.whitespaceRegex,o=e.Util.indexOf,a=r?r.split(i):[],s=t.split(i);n=s.shift();)o(a,n)===-1&&a.push(n);return this.getAttrs().class=a.join(" "),this},removeClass:function(t){for(var n,r=this.getClass(),i=this.whitespaceRegex,o=e.Util.indexOf,a=r?r.split(i):[],s=t.split(i);a.length&&(n=s.shift());){var u=o(a,n);u!==-1&&a.splice(u,1)}return this.getAttrs().class=a.join(" "),this},getClass:function(){return this.getAttrs().class||""},hasClass:function(e){return(" "+this.getClass()+" ").indexOf(" "+e+" ")!==-1},setInnerHtml:function(e){return this.innerHtml=e,this},getInnerHtml:function(){return this.innerHtml||""},toString:function(){var e=this.getTagName(),t=this.buildAttrsStr();return t=t?" "+t:"",["<",e,t,">",this.getInnerHtml(),"</",e,">"].join("")},buildAttrsStr:function(){if(!this.attrs)return"";var e=this.getAttrs(),t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n+'="'+e[n]+'"');return t.join(" ")}}),e.AnchorTagBuilder=e.Util.extend(Object,{constructor:function(t){e.Util.assign(this,t)},build:function(t){var n=new e.HtmlTag({tagName:"a",attrs:this.createAttrs(t.getType(),t.getAnchorHref()),innerHtml:this.processAnchorText(t.getAnchorText())});return n},createAttrs:function(e,t){var n={href:t},r=this.createCssClass(e);return r&&(n.class=r),this.newWindow&&(n.target="_blank"),n},createCssClass:function(e){var t=this.className;return t?t+" "+t+"-"+e:""},processAnchorText:function(e){return e=this.doTruncate(e)},doTruncate:function(t){return e.Util.ellipsis(t,this.truncate||Number.POSITIVE_INFINITY)}}),e.htmlParser.HtmlParser=e.Util.extend(Object,{htmlRegex:function(){var e=/[0-9a-zA-Z][0-9a-zA-Z:]*/,t=/[^\s\0"'>\/=\x01-\x1F\x7F]+/,n=/(?:"[^"]*?"|'[^']*?'|[^'"=<>`\s]+)/,r=t.source+"(?:\\s*=\\s*"+n.source+")?";return new RegExp(["(?:","<(!DOCTYPE)","(?:","\\s+","(?:",r,"|",n.source+")",")*",">",")","|","(?:","<(/)?","("+e.source+")","(?:","\\s+",r,")*","\\s*/?",">",")"].join(""),"gi")}(),htmlCharacterEntitiesRegex:/(&nbsp;|&#160;|&lt;|&#60;|&gt;|&#62;|&quot;|&#34;|&#39;)/gi,parse:function(e){for(var t,n,r=this.htmlRegex,i=0,o=[];null!==(t=r.exec(e));){var a=t[0],s=t[1]||t[3],u=!!t[2],c=e.substring(i,t.index);c&&(n=this.parseTextAndEntityNodes(c),o.push.apply(o,n)),o.push(this.createElementNode(a,s,u)),i=t.index+a.length}if(i<e.length){var l=e.substring(i);l&&(n=this.parseTextAndEntityNodes(l),o.push.apply(o,n))}return o},parseTextAndEntityNodes:function(t){for(var n=[],r=e.Util.splitAndCapture(t,this.htmlCharacterEntitiesRegex),i=0,o=r.length;i<o;i+=2){var a=r[i],s=r[i+1];a&&n.push(this.createTextNode(a)),s&&n.push(this.createEntityNode(s))}return n},createElementNode:function(t,n,r){return new e.htmlParser.ElementNode({text:t,tagName:n.toLowerCase(),closing:r})},createEntityNode:function(t){return new e.htmlParser.EntityNode({text:t})},createTextNode:function(t){return new e.htmlParser.TextNode({text:t})}}),e.htmlParser.HtmlNode=e.Util.extend(Object,{text:"",constructor:function(t){e.Util.assign(this,t)},getType:e.Util.abstractMethod,getText:function(){return this.text}}),e.htmlParser.ElementNode=e.Util.extend(e.htmlParser.HtmlNode,{tagName:"",closing:!1,getType:function(){return"element"},getTagName:function(){return this.tagName},isClosing:function(){return this.closing}}),e.htmlParser.EntityNode=e.Util.extend(e.htmlParser.HtmlNode,{getType:function(){return"entity"}}),e.htmlParser.TextNode=e.Util.extend(e.htmlParser.HtmlNode,{getType:function(){return"text"}}),e.matchParser.MatchParser=e.Util.extend(Object,{urls:!0,email:!0,twitter:!0,stripPrefix:!0,matcherRegex:function(){var e=/(^|[^\w])@(\w{1,15})/,t=/(?:[\-;:&=\+\$,\w\.]+@)/,n=/(?:[A-Za-z][-.+A-Za-z0-9]+:(?![A-Za-z][-.+A-Za-z0-9]+:\/\/)(?!\d+\/?)(?:\/\/)?)/,r=/(?:www\.)/,i=/[A-Za-z0-9\.\-]*[A-Za-z0-9\-]/,o=/\.(?:international|construction|contractors|enterprises|photography|productions|foundation|immobilien|industries|management|properties|technology|christmas|community|directory|education|equipment|institute|marketing|solutions|vacations|bargains|boutique|builders|catering|cleaning|clothing|computer|democrat|diamonds|graphics|holdings|lighting|partners|plumbing|supplies|training|ventures|academy|careers|company|cruises|domains|exposed|flights|florist|gallery|guitars|holiday|kitchen|neustar|okinawa|recipes|rentals|reviews|shiksha|singles|support|systems|agency|berlin|camera|center|coffee|condos|dating|estate|events|expert|futbol|kaufen|luxury|maison|monash|museum|nagoya|photos|repair|report|social|supply|tattoo|tienda|travel|viajes|villas|vision|voting|voyage|actor|build|cards|cheap|codes|dance|email|glass|house|mango|ninja|parts|photo|shoes|solar|today|tokyo|tools|watch|works|aero|arpa|asia|best|bike|blue|buzz|camp|club|cool|coop|farm|fish|gift|guru|info|jobs|kiwi|kred|land|limo|link|menu|mobi|moda|name|pics|pink|post|qpon|rich|ruhr|sexy|tips|vote|voto|wang|wien|wiki|zone|bar|bid|biz|cab|cat|ceo|com|edu|gov|int|kim|mil|net|onl|org|pro|pub|red|tel|uno|wed|xxx|xyz|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw)\b/,a=/[\-A-Za-z0-9+&@#\/%=~_()|'$*\[\]?!:,.;]*[\-A-Za-z0-9+&@#\/%=~_()|'$*\[\]]/;return new RegExp(["(",e.source,")","|","(",t.source,i.source,o.source,")","|","(","(?:","(",n.source,i.source,")","|","(?:","(.?//)?",r.source,i.source,")","|","(?:","(.?//)?",i.source,o.source,")",")","(?:"+a.source+")?",")"].join(""),"gi")}(),charBeforeProtocolRelMatchRegex:/^(.)?\/\//,constructor:function(t){e.Util.assign(this,t),this.matchValidator=new e.MatchValidator},replace:function(e,t,n){var r=this;return e.replace(this.matcherRegex,function(e,i,o,a,s,u,c,l,p){var f=r.processCandidateMatch(e,i,o,a,s,u,c,l,p);if(f){var h=t.call(n,f.match);return f.prefixStr+h+f.suffixStr}return e})},processCandidateMatch:function(t,n,r,i,o,a,s,u,c){var l,p=u||c,f="",h="";if(n&&!this.twitter||o&&!this.email||a&&!this.urls||!this.matchValidator.isValidMatch(a,s,p))return null;if(this.matchHasUnbalancedClosingParen(t)&&(t=t.substr(0,t.length-1),h=")"),o)l=new e.match.Email({matchedText:t,email:o});else if(n)r&&(f=r,t=t.slice(1)),l=new e.match.Twitter({matchedText:t,twitterHandle:i});else{if(p){var d=p.match(this.charBeforeProtocolRelMatchRegex)[1]||"";d&&(f=d,t=t.slice(1))}l=new e.match.Url({matchedText:t,url:t,protocolUrlMatch:!!s,protocolRelativeMatch:!!p,stripPrefix:this.stripPrefix})}return{prefixStr:f,suffixStr:h,match:l}},matchHasUnbalancedClosingParen:function(e){var t=e.charAt(e.length-1);if(")"===t){var n=e.match(/\(/g),r=e.match(/\)/g),i=n&&n.length||0,o=r&&r.length||0;if(i<o)return!0}return!1}}),e.MatchValidator=e.Util.extend(Object,{invalidProtocolRelMatchRegex:/^[\w]\/\//,hasFullProtocolRegex:/^[A-Za-z][-.+A-Za-z0-9]+:\/\//,uriSchemeRegex:/^[A-Za-z][-.+A-Za-z0-9]+:/,hasWordCharAfterProtocolRegex:/:[^\s]*?[A-Za-z]/,isValidMatch:function(e,t,n){return!(t&&!this.isValidUriScheme(t)||this.urlMatchDoesNotHaveProtocolOrDot(e,t)||this.urlMatchDoesNotHaveAtLeastOneWordChar(e,t)||this.isInvalidProtocolRelativeMatch(n))},isValidUriScheme:function(e){var t=e.match(this.uriSchemeRegex)[0].toLowerCase();return"javascript:"!==t&&"vbscript:"!==t},urlMatchDoesNotHaveProtocolOrDot:function(e,t){return!(!e||t&&this.hasFullProtocolRegex.test(t)||e.indexOf(".")!==-1)},urlMatchDoesNotHaveAtLeastOneWordChar:function(e,t){return!(!e||!t)&&!this.hasWordCharAfterProtocolRegex.test(e)},isInvalidProtocolRelativeMatch:function(e){return!!e&&this.invalidProtocolRelMatchRegex.test(e)}}),e.match.Match=e.Util.extend(Object,{constructor:function(t){e.Util.assign(this,t)},getType:e.Util.abstractMethod,getMatchedText:function(){return this.matchedText},getAnchorHref:e.Util.abstractMethod,getAnchorText:e.Util.abstractMethod}),e.match.Email=e.Util.extend(e.match.Match,{getType:function(){return"email"},getEmail:function(){return this.email},getAnchorHref:function(){return"mailto:"+this.email},getAnchorText:function(){return this.email}}),e.match.Twitter=e.Util.extend(e.match.Match,{getType:function(){return"twitter"},getTwitterHandle:function(){return this.twitterHandle},getAnchorHref:function(){return"https://twitter.com/"+this.twitterHandle},getAnchorText:function(){return"@"+this.twitterHandle}}),e.match.Url=e.Util.extend(e.match.Match,{urlPrefixRegex:/^(https?:\/\/)?(www\.)?/i,protocolRelativeRegex:/^\/\//,protocolPrepended:!1,getType:function(){return"url"},getUrl:function(){var e=this.url;return this.protocolRelativeMatch||this.protocolUrlMatch||this.protocolPrepended||(e=this.url="http://"+e,this.protocolPrepended=!0),e},getAnchorHref:function(){var e=this.getUrl();return e.replace(/&amp;/g,"&")},getAnchorText:function(){var e=this.getUrl();return this.protocolRelativeMatch&&(e=this.stripProtocolRelativePrefix(e)),this.stripPrefix&&(e=this.stripUrlPrefix(e)),e=this.removeTrailingSlash(e)},stripUrlPrefix:function(e){return e.replace(this.urlPrefixRegex,"")},stripProtocolRelativePrefix:function(e){return e.replace(this.protocolRelativeRegex,"")},removeTrailingSlash:function(e){return"/"===e.charAt(e.length-1)&&(e=e.slice(0,-1)),e}}),e})},function(e,t,n){"use strict";function r(){this.ruler=new i;for(var e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1],{alt:(a[e][2]||[]).slice()})}var i=n(1086),o=n(1104),a=[["code",n(1105)],["fences",n(1106),["paragraph","blockquote","list"]],["blockquote",n(1107),["paragraph","blockquote","list"]],["hr",n(1108),["paragraph","blockquote","list"]],["list",n(1109),["paragraph","blockquote"]],["footnote",n(1110),["paragraph"]],["heading",n(1111),["paragraph","blockquote"]],["lheading",n(1112)],["htmlblock",n(1113),["paragraph","blockquote"]],["table",n(1115),["paragraph"]],["deflist",n(1116),["paragraph"]],["paragraph",n(1117)]];r.prototype.tokenize=function(e,t,n){for(var r,i,o=this.ruler.getRules(""),a=o.length,s=t,u=!1;s<n&&(e.line=s=e.skipEmptyLines(s),!(s>=n))&&!(e.tShift[s]<e.blkIndent);){for(i=0;i<a&&!(r=o[i](e,s,n,!1));i++);if(e.tight=!u,e.isEmpty(e.line-1)&&(u=!0),s=e.line,s<n&&e.isEmpty(s)){if(u=!0,s++,s<n&&"list"===e.parentType&&e.isEmpty(s))break;e.line=s}}};var s=/[\n\t]/g,u=/\r[\n\u0085]|[\u2424\u2028\u0085]/g,c=/\u00a0/g;r.prototype.parse=function(e,t,n,r){var i,a=0,l=0;return e?(e=e.replace(c," "),e=e.replace(u,"\n"),e.indexOf("\t")>=0&&(e=e.replace(s,function(t,n){var r;return 10===e.charCodeAt(n)?(a=n+1,l=0,t):(r=" ".slice((n-a-l)%4),l=n-a+1,r)})),i=new o(e,this,t,n,r),void this.tokenize(i,i.line,i.lineMax)):[]},e.exports=r},function(e,t){"use strict";function n(e,t,n,r,i){var o,a,s,u,c,l,p;for(this.src=e,this.parser=t,this.options=n,this.env=r,this.tokens=i,this.bMarks=[],this.eMarks=[],this.tShift=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.parentType="root",this.ddIndent=-1,this.level=0,this.result="",a=this.src,l=0,p=!1,s=u=l=0,c=a.length;u<c;u++){if(o=a.charCodeAt(u),!p){if(32===o){l++;continue}p=!0}10!==o&&u!==c-1||(10!==o&&u++,this.bMarks.push(s),this.eMarks.push(u),this.tShift.push(l),p=!1,l=0,s=u+1)}this.bMarks.push(a.length),this.eMarks.push(a.length),this.tShift.push(0),this.lineMax=this.bMarks.length-1}n.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},n.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},n.prototype.skipSpaces=function(e){for(var t=this.src.length;e<t&&32===this.src.charCodeAt(e);e++);return e},n.prototype.skipChars=function(e,t){for(var n=this.src.length;e<n&&this.src.charCodeAt(e)===t;e++);return e},n.prototype.skipCharsBack=function(e,t,n){if(e<=n)return e;for(;e>n;)if(t!==this.src.charCodeAt(--e))return e+1;return e},n.prototype.getLines=function(e,t,n,r){var i,o,a,s,u,c=e;if(e>=t)return"";if(c+1===t)return o=this.bMarks[c]+Math.min(this.tShift[c],n),a=r?this.eMarks[c]+1:this.eMarks[c],this.src.slice(o,a);for(s=new Array(t-e),i=0;c<t;c++,i++)u=this.tShift[c],u>n&&(u=n),u<0&&(u=0),o=this.bMarks[c]+u,a=c+1<t||r?this.eMarks[c]+1:this.eMarks[c],s[i]=this.src.slice(o,a);return s.join("")},e.exports=n},function(e,t){"use strict";e.exports=function(e,t,n){var r,i;if(e.tShift[t]-e.blkIndent<4)return!1;for(i=r=t+1;r<n;)if(e.isEmpty(r))r++;else{if(!(e.tShift[r]-e.blkIndent>=4))break;r++,i=r}return e.line=r,e.tokens.push({type:"code",content:e.getLines(t,i,4+e.blkIndent,!0),block:!0,lines:[t,e.line],level:e.level}),!0}},function(e,t){"use strict";e.exports=function(e,t,n,r){var i,o,a,s,u,c=!1,l=e.bMarks[t]+e.tShift[t],p=e.eMarks[t];if(l+3>p)return!1;if(i=e.src.charCodeAt(l),126!==i&&96!==i)return!1;if(u=l,l=e.skipChars(l,i),o=l-u,o<3)return!1;if(a=e.src.slice(l,p).trim(),a.indexOf("`")>=0)return!1;if(r)return!0;for(s=t;(s++,!(s>=n))&&(l=u=e.bMarks[s]+e.tShift[s],p=e.eMarks[s],!(l<p&&e.tShift[s]<e.blkIndent));)if(e.src.charCodeAt(l)===i&&!(e.tShift[s]-e.blkIndent>=4||(l=e.skipChars(l,i),l-u<o||(l=e.skipSpaces(l),l<p)))){c=!0;break}return o=e.tShift[t],e.line=s+(c?1:0),e.tokens.push({type:"fence",params:a,content:e.getLines(t+1,s,o,!0),lines:[t,e.line],level:e.level}),!0}},function(e,t){"use strict";e.exports=function(e,t,n,r){var i,o,a,s,u,c,l,p,f,h,d,m=e.bMarks[t]+e.tShift[t],v=e.eMarks[t];if(m>v)return!1;if(62!==e.src.charCodeAt(m++))return!1;if(e.level>=e.options.maxNesting)return!1;if(r)return!0;for(32===e.src.charCodeAt(m)&&m++,u=e.blkIndent,e.blkIndent=0,s=[e.bMarks[t]],e.bMarks[t]=m,m=m<v?e.skipSpaces(m):m,o=m>=v,a=[e.tShift[t]],e.tShift[t]=m-e.bMarks[t],p=e.parser.ruler.getRules("blockquote"),i=t+1;i<n&&(m=e.bMarks[i]+e.tShift[i],v=e.eMarks[i],!(m>=v));i++)if(62!==e.src.charCodeAt(m++)){if(o)break;for(d=!1,f=0,h=p.length;f<h;f++)if(p[f](e,i,n,!0)){d=!0;break}if(d)break;s.push(e.bMarks[i]),a.push(e.tShift[i]),e.tShift[i]=-1337}else 32===e.src.charCodeAt(m)&&m++,s.push(e.bMarks[i]),e.bMarks[i]=m,m=m<v?e.skipSpaces(m):m,o=m>=v,a.push(e.tShift[i]),e.tShift[i]=m-e.bMarks[i];for(c=e.parentType,e.parentType="blockquote",e.tokens.push({type:"blockquote_open",lines:l=[t,0],level:e.level++}),e.parser.tokenize(e,t,i),e.tokens.push({type:"blockquote_close",level:--e.level}),e.parentType=c,l[1]=e.line,f=0;f<a.length;f++)e.bMarks[f+t]=s[f],e.tShift[f+t]=a[f];return e.blkIndent=u,!0}},function(e,t){"use strict";e.exports=function(e,t,n,r){var i,o,a,s=e.bMarks[t],u=e.eMarks[t];if(s+=e.tShift[t],s>u)return!1;if(i=e.src.charCodeAt(s++),42!==i&&45!==i&&95!==i)return!1;for(o=1;s<u;){if(a=e.src.charCodeAt(s++),a!==i&&32!==a)return!1;a===i&&o++}return!(o<3)&&(!!r||(e.line=t+1,e.tokens.push({type:"hr",lines:[t,e.line],level:e.level}),!0))}},function(e,t){"use strict";function n(e,t){var n,r,i;return r=e.bMarks[t]+e.tShift[t],i=e.eMarks[t],r>=i?-1:(n=e.src.charCodeAt(r++),42!==n&&45!==n&&43!==n?-1:r<i&&32!==e.src.charCodeAt(r)?-1:r)}function r(e,t){var n,r=e.bMarks[t]+e.tShift[t],i=e.eMarks[t];if(r+1>=i)return-1;if(n=e.src.charCodeAt(r++),n<48||n>57)return-1;for(;;){if(r>=i)return-1;if(n=e.src.charCodeAt(r++),!(n>=48&&n<=57)){if(41===n||46===n)break;return-1}}return r<i&&32!==e.src.charCodeAt(r)?-1:r}function i(e,t){var n,r,i=e.level+2;for(n=t+2,r=e.tokens.length-2;n<r;n++)e.tokens[n].level===i&&"paragraph_open"===e.tokens[n].type&&(e.tokens[n+2].tight=!0,e.tokens[n].tight=!0,n+=2)}e.exports=function(e,t,o,a){var s,u,c,l,p,f,h,d,m,v,y,g,_,b,x,w,k,S,E,C,A,T,D=!0;if((d=r(e,t))>=0)_=!0;else{if(!((d=n(e,t))>=0))return!1;_=!1}if(e.level>=e.options.maxNesting)return!1;if(g=e.src.charCodeAt(d-1),a)return!0;for(x=e.tokens.length,_?(h=e.bMarks[t]+e.tShift[t],y=Number(e.src.substr(h,d-h-1)),e.tokens.push({type:"ordered_list_open",order:y,lines:k=[t,0],level:e.level++})):e.tokens.push({type:"bullet_list_open",lines:k=[t,0],level:e.level++}),s=t,w=!1,E=e.parser.ruler.getRules("list");!(!(s<o)||(b=e.skipSpaces(d),m=e.eMarks[s],v=b>=m?1:b-d,v>4&&(v=1),v<1&&(v=1),u=d-e.bMarks[s]+v,e.tokens.push({type:"list_item_open",lines:S=[t,0],level:e.level++}),l=e.blkIndent,p=e.tight,c=e.tShift[t],f=e.parentType,e.tShift[t]=b-e.bMarks[t],e.blkIndent=u,e.tight=!0,e.parentType="list",e.parser.tokenize(e,t,o,!0),e.tight&&!w||(D=!1),w=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=l,e.tShift[t]=c,e.tight=p,e.parentType=f,e.tokens.push({type:"list_item_close",level:--e.level}),s=t=e.line,S[1]=s,b=e.bMarks[t],s>=o)||e.isEmpty(s)||e.tShift[s]<e.blkIndent);){for(T=!1,C=0,A=E.length;C<A;C++)if(E[C](e,s,o,!0)){T=!0;break}if(T)break;if(_){if(d=r(e,s),d<0)break}else if(d=n(e,s),d<0)break;if(g!==e.src.charCodeAt(d-1))break}return e.tokens.push({type:_?"ordered_list_close":"bullet_list_close",level:--e.level}),k[1]=s,e.line=s,D&&i(e,x),!0}},function(e,t){"use strict";e.exports=function(e,t,n,r){var i,o,a,s,u,c=e.bMarks[t]+e.tShift[t],l=e.eMarks[t];if(c+4>l)return!1;if(91!==e.src.charCodeAt(c))return!1;if(94!==e.src.charCodeAt(c+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(s=c+2;s<l;s++){if(32===e.src.charCodeAt(s))return!1;if(93===e.src.charCodeAt(s))break}return s!==c+2&&(!(s+1>=l||58!==e.src.charCodeAt(++s))&&(!!r||(s++,e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.refs||(e.env.footnotes.refs={}),u=e.src.slice(c+2,s-2),e.env.footnotes.refs[":"+u]=-1,e.tokens.push({type:"footnote_reference_open",label:u,level:e.level++}),i=e.bMarks[t],o=e.tShift[t],a=e.parentType,e.tShift[t]=e.skipSpaces(s)-s,e.bMarks[t]=s,e.blkIndent+=4,e.parentType="footnote",e.tShift[t]<e.blkIndent&&(e.tShift[t]+=e.blkIndent,e.bMarks[t]-=e.blkIndent),e.parser.tokenize(e,t,n,!0),e.parentType=a,e.blkIndent-=4,e.tShift[t]=o,e.bMarks[t]=i,e.tokens.push({type:"footnote_reference_close",level:--e.level}),!0)))}},function(e,t){"use strict";e.exports=function(e,t,n,r){var i,o,a,s=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(s>=u)return!1;if(i=e.src.charCodeAt(s),35!==i||s>=u)return!1;for(o=1,i=e.src.charCodeAt(++s);35===i&&s<u&&o<=6;)o++,i=e.src.charCodeAt(++s);return!(o>6||s<u&&32!==i)&&(!!r||(u=e.skipCharsBack(u,32,s),a=e.skipCharsBack(u,35,s),a>s&&32===e.src.charCodeAt(a-1)&&(u=a),e.line=t+1,e.tokens.push({type:"heading_open",hLevel:o,lines:[t,e.line],level:e.level}),s<u&&e.tokens.push({type:"inline",content:e.src.slice(s,u).trim(),level:e.level+1,lines:[t,e.line],children:[]}),e.tokens.push({type:"heading_close",hLevel:o,level:e.level}),!0))}},function(e,t){"use strict";e.exports=function(e,t,n){var r,i,o,a=t+1;return!(a>=n)&&(!(e.tShift[a]<e.blkIndent)&&(!(e.tShift[a]-e.blkIndent>3)&&(i=e.bMarks[a]+e.tShift[a],o=e.eMarks[a],!(i>=o)&&(r=e.src.charCodeAt(i),(45===r||61===r)&&(i=e.skipChars(i,r),i=e.skipSpaces(i),!(i<o)&&(i=e.bMarks[t]+e.tShift[t],e.line=a+1,e.tokens.push({type:"heading_open",hLevel:61===r?1:2,lines:[t,e.line],level:e.level}),e.tokens.push({type:"inline",content:e.src.slice(i,e.eMarks[t]).trim(),level:e.level+1,lines:[t,e.line-1],children:[]}),e.tokens.push({type:"heading_close",hLevel:61===r?1:2,level:e.level}),!0))))))}},function(e,t,n){"use strict";function r(e){var t=32|e;return t>=97&&t<=122}var i=n(1114),o=/^<([a-zA-Z]{1,15})[\s\/>]/,a=/^<\/([a-zA-Z]{1,15})[\s>]/;e.exports=function(e,t,n,s){var u,c,l,p=e.bMarks[t],f=e.eMarks[t],h=e.tShift[t];if(p+=h,!e.options.html)return!1;if(h>3||p+2>=f)return!1;if(60!==e.src.charCodeAt(p))return!1;if(u=e.src.charCodeAt(p+1),33===u||63===u){if(s)return!0}else{if(47!==u&&!r(u))return!1;if(47===u){if(c=e.src.slice(p,f).match(a),!c)return!1}else if(c=e.src.slice(p,f).match(o),!c)return!1;if(i[c[1].toLowerCase()]!==!0)return!1;if(s)return!0}for(l=t+1;l<e.lineMax&&!e.isEmpty(l);)l++;return e.line=l,e.tokens.push({type:"htmlblock",level:e.level,lines:[t,e.line],content:e.getLines(t,l,0,!0)}),!0}},function(e,t){"use strict";var n={};["article","aside","button","blockquote","body","canvas","caption","col","colgroup","dd","div","dl","dt","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","iframe","li","map","object","ol","output","p","pre","progress","script","section","style","table","tbody","td","textarea","tfoot","th","tr","thead","ul","video"].forEach(function(e){n[e]=!0}),e.exports=n},function(e,t){"use strict";function n(e,t){var n=e.bMarks[t]+e.blkIndent,r=e.eMarks[t];return e.src.substr(n,r-n)}e.exports=function(e,t,r,i){var o,a,s,u,c,l,p,f,h,d,m;if(t+2>r)return!1;if(c=t+1,e.tShift[c]<e.blkIndent)return!1;if(s=e.bMarks[c]+e.tShift[c],s>=e.eMarks[c])return!1;if(o=e.src.charCodeAt(s),124!==o&&45!==o&&58!==o)return!1;if(a=n(e,t+1),!/^[-:| ]+$/.test(a))return!1;if(l=a.split("|"),l<=2)return!1;for(f=[],u=0;u<l.length;u++){if(h=l[u].trim(),!h){if(0===u||u===l.length-1)continue;return!1}if(!/^:?-+:?$/.test(h))return!1;58===h.charCodeAt(h.length-1)?f.push(58===h.charCodeAt(0)?"center":"right"):58===h.charCodeAt(0)?f.push("left"):f.push("")}if(a=n(e,t).trim(),a.indexOf("|")===-1)return!1;if(l=a.replace(/^\||\|$/g,"").split("|"),f.length!==l.length)return!1;if(i)return!0;for(e.tokens.push({type:"table_open",lines:d=[t,0],level:e.level++}),e.tokens.push({type:"thead_open",lines:[t,t+1],level:e.level++}),e.tokens.push({type:"tr_open",lines:[t,t+1],level:e.level++}),u=0;u<l.length;u++)e.tokens.push({type:"th_open",align:f[u],lines:[t,t+1],level:e.level++}),e.tokens.push({type:"inline",content:l[u].trim(),lines:[t,t+1],level:e.level,children:[]}),e.tokens.push({type:"th_close",level:--e.level});for(e.tokens.push({type:"tr_close",level:--e.level}),e.tokens.push({type:"thead_close",level:--e.level}),e.tokens.push({type:"tbody_open",lines:m=[t+2,0],level:e.level++}),c=t+2;c<r&&!(e.tShift[c]<e.blkIndent)&&(a=n(e,c).trim(),a.indexOf("|")!==-1);c++){for(l=a.replace(/^\||\|$/g,"").split("|"),e.tokens.push({type:"tr_open",level:e.level++}),u=0;u<l.length;u++)e.tokens.push({type:"td_open",align:f[u],level:e.level++}),p=l[u].substring(124===l[u].charCodeAt(0)?1:0,124===l[u].charCodeAt(l[u].length-1)?l[u].length-1:l[u].length).trim(),e.tokens.push({type:"inline",content:p,level:e.level,children:[]}),e.tokens.push({type:"td_close",level:--e.level});e.tokens.push({type:"tr_close",level:--e.level})}return e.tokens.push({type:"tbody_close",level:--e.level}),e.tokens.push({type:"table_close",level:--e.level}),d[1]=m[1]=c,e.line=c,!0}},function(e,t){"use strict";function n(e,t){var n,r,i=e.bMarks[t]+e.tShift[t],o=e.eMarks[t];return i>=o?-1:(r=e.src.charCodeAt(i++),126!==r&&58!==r?-1:(n=e.skipSpaces(i),i===n?-1:n>=o?-1:n))}function r(e,t){var n,r,i=e.level+2;for(n=t+2,r=e.tokens.length-2;n<r;n++)e.tokens[n].level===i&&"paragraph_open"===e.tokens[n].type&&(e.tokens[n+2].tight=!0,e.tokens[n].tight=!0,n+=2)}e.exports=function(e,t,i,o){var a,s,u,c,l,p,f,h,d,m,v,y,g,_;if(o)return!(e.ddIndent<0)&&n(e,t)>=0;if(f=t+1,e.isEmpty(f)&&++f>i)return!1;if(e.tShift[f]<e.blkIndent)return!1;if(a=n(e,f),a<0)return!1;if(e.level>=e.options.maxNesting)return!1;p=e.tokens.length,e.tokens.push({type:"dl_open",lines:l=[t,0],level:e.level++}),u=t,s=f;e:for(;;){for(_=!0,g=!1,e.tokens.push({type:"dt_open",lines:[u,u],level:e.level++}),e.tokens.push({type:"inline",content:e.getLines(u,u+1,e.blkIndent,!1).trim(),level:e.level+1,lines:[u,u],children:[]}),e.tokens.push({type:"dt_close",level:--e.level});;){if(e.tokens.push({type:"dd_open",lines:c=[f,0],level:e.level++}),y=e.tight,d=e.ddIndent,h=e.blkIndent,v=e.tShift[s],m=e.parentType,e.blkIndent=e.ddIndent=e.tShift[s]+2,e.tShift[s]=a-e.bMarks[s],e.tight=!0,e.parentType="deflist",e.parser.tokenize(e,s,i,!0),e.tight&&!g||(_=!1),g=e.line-s>1&&e.isEmpty(e.line-1),e.tShift[s]=v,e.tight=y,e.parentType=m,e.blkIndent=h,e.ddIndent=d,e.tokens.push({type:"dd_close",level:--e.level}),c[1]=f=e.line,f>=i)break e;if(e.tShift[f]<e.blkIndent)break e;if(a=n(e,f),a<0)break;s=f}if(f>=i)break;if(u=f,e.isEmpty(u))break;if(e.tShift[u]<e.blkIndent)break;if(s=u+1,s>=i)break;if(e.isEmpty(s)&&s++,s>=i)break;if(e.tShift[s]<e.blkIndent)break;if(a=n(e,s),a<0)break}return e.tokens.push({type:"dl_close",level:--e.level}),l[1]=f,e.line=f,_&&r(e,p),!0}},function(e,t){"use strict";e.exports=function(e,t){var n,r,i,o,a,s,u=t+1;if(n=e.lineMax,u<n&&!e.isEmpty(u))for(s=e.parser.ruler.getRules("paragraph");u<n&&!e.isEmpty(u);u++)if(!(e.tShift[u]-e.blkIndent>3)){for(i=!1,o=0,a=s.length;o<a;o++)if(s[o](e,u,n,!0)){i=!0;break}if(i)break}return r=e.getLines(t,u,e.blkIndent,!1).trim(),e.line=u,r.length&&(e.tokens.push({type:"paragraph_open",tight:!1,lines:[t,e.line],level:e.level}),e.tokens.push({type:"inline",content:r,level:e.level+1,lines:[t,e.line],children:[]}),e.tokens.push({type:"paragraph_close",tight:!1,level:e.level})),!0}},function(e,t,n){"use strict";function r(){this.ruler=new o;for(var e=0;e<u.length;e++)this.ruler.push(u[e][0],u[e][1]);this.validateLink=i}function i(e){var t=["vbscript","javascript","file","data"],n=e.trim().toLowerCase();return n=s.replaceEntities(n),n.indexOf(":")===-1||t.indexOf(n.split(":")[0])===-1}var o=n(1086),a=n(1089),s=n(1081),u=[["text",n(1119)],["newline",n(1120)],["escape",n(1121)],["backticks",n(1122)],["del",n(1123)],["ins",n(1124)],["mark",n(1125)],["emphasis",n(1126)],["sub",n(1127)],["sup",n(1128)],["links",n(1129)],["footnote_inline",n(1130)],["footnote_ref",n(1131)],["autolink",n(1132)],["htmltag",n(1134)],["entity",n(1136)]];r.prototype.skipToken=function(e){var t,n,r=this.ruler.getRules(""),i=r.length,o=e.pos;if((n=e.cacheGet(o))>0)return void(e.pos=n);for(t=0;t<i;t++)if(r[t](e,!0))return void e.cacheSet(o,e.pos);e.pos++,e.cacheSet(o,e.pos)},r.prototype.tokenize=function(e){for(var t,n,r=this.ruler.getRules(""),i=r.length,o=e.posMax;e.pos<o;){for(n=0;n<i&&!(t=r[n](e,!1));n++);if(t){if(e.pos>=o)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},r.prototype.parse=function(e,t,n,r){var i=new a(e,this,t,n,r);this.tokenize(i)},e.exports=r},function(e,t){"use strict";function n(e){switch(e){case 10:case 92:case 96:case 42:case 95:case 94:case 91:case 93:case 33:case 38:case 60:case 62:case 123:case 125:case 36:case 37:case 64:case 126:case 43:case 61:case 58:return!0;default:return!1}}e.exports=function(e,t){for(var r=e.pos;r<e.posMax&&!n(e.src.charCodeAt(r));)r++;return r!==e.pos&&(t||(e.pending+=e.src.slice(e.pos,r)),e.pos=r,!0)}},function(e,t){"use strict";e.exports=function(e,t){var n,r,i=e.pos;if(10!==e.src.charCodeAt(i))return!1;if(n=e.pending.length-1,r=e.posMax,!t)if(n>=0&&32===e.pending.charCodeAt(n))if(n>=1&&32===e.pending.charCodeAt(n-1)){for(var o=n-2;o>=0;o--)if(32!==e.pending.charCodeAt(o)){e.pending=e.pending.substring(0,o+1);break}e.push({type:"hardbreak",level:e.level})}else e.pending=e.pending.slice(0,-1),e.push({type:"softbreak",level:e.level});else e.push({type:"softbreak",level:e.level});for(i++;i<r&&32===e.src.charCodeAt(i);)i++;return e.pos=i,!0}},function(e,t){"use strict";for(var n=[],r=0;r<256;r++)n.push(0);"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach(function(e){n[e.charCodeAt(0)]=1}),e.exports=function(e,t){var r,i=e.pos,o=e.posMax;if(92!==e.src.charCodeAt(i))return!1;if(i++,i<o){if(r=e.src.charCodeAt(i),r<256&&0!==n[r])return t||(e.pending+=e.src[i]),e.pos+=2,!0;if(10===r){for(t||e.push({type:"hardbreak",level:e.level}),i++;i<o&&32===e.src.charCodeAt(i);)i++;return e.pos=i,!0}}return t||(e.pending+="\\"),e.pos++,!0}},function(e,t){"use strict";e.exports=function(e,t){var n,r,i,o,a,s=e.pos,u=e.src.charCodeAt(s);if(96!==u)return!1;for(n=s,s++,r=e.posMax;s<r&&96===e.src.charCodeAt(s);)s++;for(i=e.src.slice(n,s),o=a=s;(o=e.src.indexOf("`",a))!==-1;){for(a=o+1;a<r&&96===e.src.charCodeAt(a);)a++;if(a-o===i.length)return t||e.push({type:"code",content:e.src.slice(s,o).replace(/[ \n]+/g," ").trim(),block:!1,level:e.level}),e.pos=a,!0}return t||(e.pending+=i),e.pos+=i.length,!0}},function(e,t){"use strict";e.exports=function(e,t){var n,r,i,o,a,s=e.posMax,u=e.pos;if(126!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=s)return!1;if(126!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(o=u>0?e.src.charCodeAt(u-1):-1,a=e.src.charCodeAt(u+2),126===o)return!1;if(126===a)return!1;if(32===a||10===a)return!1;for(r=u+2;r<s&&126===e.src.charCodeAt(r);)r++;if(r>u+3)return e.pos+=r-u,t||(e.pending+=e.src.slice(u,r)),!0;for(e.pos=u+2,i=1;e.pos+1<s;){if(126===e.src.charCodeAt(e.pos)&&126===e.src.charCodeAt(e.pos+1)&&(o=e.src.charCodeAt(e.pos-1),a=e.pos+2<s?e.src.charCodeAt(e.pos+2):-1,126!==a&&126!==o&&(32!==o&&10!==o?i--:32!==a&&10!==a&&i++,i<=0))){n=!0;break}e.parser.skipToken(e)}return n?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:"del_open",level:e.level++}),e.parser.tokenize(e),e.push({type:"del_close",level:--e.level})),e.pos=e.posMax+2,e.posMax=s,!0):(e.pos=u,!1)}},function(e,t){"use strict";e.exports=function(e,t){var n,r,i,o,a,s=e.posMax,u=e.pos;if(43!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=s)return!1;if(43!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1; +if(o=u>0?e.src.charCodeAt(u-1):-1,a=e.src.charCodeAt(u+2),43===o)return!1;if(43===a)return!1;if(32===a||10===a)return!1;for(r=u+2;r<s&&43===e.src.charCodeAt(r);)r++;if(r!==u+2)return e.pos+=r-u,t||(e.pending+=e.src.slice(u,r)),!0;for(e.pos=u+2,i=1;e.pos+1<s;){if(43===e.src.charCodeAt(e.pos)&&43===e.src.charCodeAt(e.pos+1)&&(o=e.src.charCodeAt(e.pos-1),a=e.pos+2<s?e.src.charCodeAt(e.pos+2):-1,43!==a&&43!==o&&(32!==o&&10!==o?i--:32!==a&&10!==a&&i++,i<=0))){n=!0;break}e.parser.skipToken(e)}return n?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:"ins_open",level:e.level++}),e.parser.tokenize(e),e.push({type:"ins_close",level:--e.level})),e.pos=e.posMax+2,e.posMax=s,!0):(e.pos=u,!1)}},function(e,t){"use strict";e.exports=function(e,t){var n,r,i,o,a,s=e.posMax,u=e.pos;if(61!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=s)return!1;if(61!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(o=u>0?e.src.charCodeAt(u-1):-1,a=e.src.charCodeAt(u+2),61===o)return!1;if(61===a)return!1;if(32===a||10===a)return!1;for(r=u+2;r<s&&61===e.src.charCodeAt(r);)r++;if(r!==u+2)return e.pos+=r-u,t||(e.pending+=e.src.slice(u,r)),!0;for(e.pos=u+2,i=1;e.pos+1<s;){if(61===e.src.charCodeAt(e.pos)&&61===e.src.charCodeAt(e.pos+1)&&(o=e.src.charCodeAt(e.pos-1),a=e.pos+2<s?e.src.charCodeAt(e.pos+2):-1,61!==a&&61!==o&&(32!==o&&10!==o?i--:32!==a&&10!==a&&i++,i<=0))){n=!0;break}e.parser.skipToken(e)}return n?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:"mark_open",level:e.level++}),e.parser.tokenize(e),e.push({type:"mark_close",level:--e.level})),e.pos=e.posMax+2,e.posMax=s,!0):(e.pos=u,!1)}},function(e,t){"use strict";function n(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function r(e,t){var r,i,o,a=t,s=!0,u=!0,c=e.posMax,l=e.src.charCodeAt(t);for(r=t>0?e.src.charCodeAt(t-1):-1;a<c&&e.src.charCodeAt(a)===l;)a++;return a>=c&&(s=!1),o=a-t,o>=4?s=u=!1:(i=a<c?e.src.charCodeAt(a):-1,32!==i&&10!==i||(s=!1),32!==r&&10!==r||(u=!1),95===l&&(n(r)&&(s=!1),n(i)&&(u=!1))),{can_open:s,can_close:u,delims:o}}e.exports=function(e,t){var n,i,o,a,s,u,c,l=e.posMax,p=e.pos,f=e.src.charCodeAt(p);if(95!==f&&42!==f)return!1;if(t)return!1;if(c=r(e,p),n=c.delims,!c.can_open)return e.pos+=n,t||(e.pending+=e.src.slice(p,e.pos)),!0;if(e.level>=e.options.maxNesting)return!1;for(e.pos=p+n,u=[n];e.pos<l;)if(e.src.charCodeAt(e.pos)!==f)e.parser.skipToken(e);else{if(c=r(e,e.pos),i=c.delims,c.can_close){for(a=u.pop(),s=i;a!==s;){if(s<a){u.push(a-s);break}if(s-=a,0===u.length)break;e.pos+=a,a=u.pop()}if(0===u.length){n=a,o=!0;break}e.pos+=i;continue}c.can_open&&u.push(i),e.pos+=i}return o?(e.posMax=e.pos,e.pos=p+n,t||(2!==n&&3!==n||e.push({type:"strong_open",level:e.level++}),1!==n&&3!==n||e.push({type:"em_open",level:e.level++}),e.parser.tokenize(e),1!==n&&3!==n||e.push({type:"em_close",level:--e.level}),2!==n&&3!==n||e.push({type:"strong_close",level:--e.level})),e.pos=e.posMax+n,e.posMax=l,!0):(e.pos=p,!1)}},function(e,t){"use strict";var n=/\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;e.exports=function(e,t){var r,i,o=e.posMax,a=e.pos;if(126!==e.src.charCodeAt(a))return!1;if(t)return!1;if(a+2>=o)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=a+1;e.pos<o;){if(126===e.src.charCodeAt(e.pos)){r=!0;break}e.parser.skipToken(e)}return r&&a+1!==e.pos?(i=e.src.slice(a+1,e.pos),i.match(/(^|[^\\])(\\\\)*\s/)?(e.pos=a,!1):(e.posMax=e.pos,e.pos=a+1,t||e.push({type:"sub",level:e.level,content:i.replace(n,"$1")}),e.pos=e.posMax+1,e.posMax=o,!0)):(e.pos=a,!1)}},function(e,t){"use strict";var n=/\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;e.exports=function(e,t){var r,i,o=e.posMax,a=e.pos;if(94!==e.src.charCodeAt(a))return!1;if(t)return!1;if(a+2>=o)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=a+1;e.pos<o;){if(94===e.src.charCodeAt(e.pos)){r=!0;break}e.parser.skipToken(e)}return r&&a+1!==e.pos?(i=e.src.slice(a+1,e.pos),i.match(/(^|[^\\])(\\\\)*\s/)?(e.pos=a,!1):(e.posMax=e.pos,e.pos=a+1,t||e.push({type:"sup",level:e.level,content:i.replace(n,"$1")}),e.pos=e.posMax+1,e.posMax=o,!0)):(e.pos=a,!1)}},function(e,t,n){"use strict";var r=n(1090),i=n(1092),o=n(1094),a=n(1095);e.exports=function(e,t){var n,s,u,c,l,p,f,h,d=!1,m=e.pos,v=e.posMax,y=e.pos,g=e.src.charCodeAt(y);if(33===g&&(d=!0,g=e.src.charCodeAt(++y)),91!==g)return!1;if(e.level>=e.options.maxNesting)return!1;if(n=y+1,s=r(e,y),s<0)return!1;if(p=s+1,p<v&&40===e.src.charCodeAt(p)){for(p++;p<v&&(h=e.src.charCodeAt(p),32===h||10===h);p++);if(p>=v)return!1;for(y=p,i(e,p)?(c=e.linkContent,p=e.pos):c="",y=p;p<v&&(h=e.src.charCodeAt(p),32===h||10===h);p++);if(p<v&&y!==p&&o(e,p))for(l=e.linkContent,p=e.pos;p<v&&(h=e.src.charCodeAt(p),32===h||10===h);p++);else l="";if(p>=v||41!==e.src.charCodeAt(p))return e.pos=m,!1;p++}else{if(e.linkLevel>0)return!1;for(;p<v&&(h=e.src.charCodeAt(p),32===h||10===h);p++);if(p<v&&91===e.src.charCodeAt(p)&&(y=p+1,p=r(e,p),p>=0?u=e.src.slice(y,p++):p=y-1),u||("undefined"==typeof u&&(p=s+1),u=e.src.slice(n,s)),f=e.env.references[a(u)],!f)return e.pos=m,!1;c=f.href,l=f.title}return t||(e.pos=n,e.posMax=s,d?e.push({type:"image",src:c,title:l,alt:e.src.substr(n,s-n),level:e.level}):(e.push({type:"link_open",href:c,title:l,level:e.level++}),e.linkLevel++,e.parser.tokenize(e),e.linkLevel--,e.push({type:"link_close",level:--e.level}))),e.pos=p,e.posMax=v,!0}},function(e,t,n){"use strict";var r=n(1090);e.exports=function(e,t){var n,i,o,a,s=e.posMax,u=e.pos;return!(u+2>=s)&&(94===e.src.charCodeAt(u)&&(91===e.src.charCodeAt(u+1)&&(!(e.level>=e.options.maxNesting)&&(n=u+2,i=r(e,u+1),!(i<0)&&(t||(e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.list||(e.env.footnotes.list=[]),o=e.env.footnotes.list.length,e.pos=n,e.posMax=i,e.push({type:"footnote_ref",id:o,level:e.level}),e.linkLevel++,a=e.tokens.length,e.parser.tokenize(e),e.env.footnotes.list[o]={tokens:e.tokens.splice(a)},e.linkLevel--),e.pos=i+1,e.posMax=s,!0)))))}},function(e,t){"use strict";e.exports=function(e,t){var n,r,i,o,a=e.posMax,s=e.pos;if(s+3>a)return!1;if(!e.env.footnotes||!e.env.footnotes.refs)return!1;if(91!==e.src.charCodeAt(s))return!1;if(94!==e.src.charCodeAt(s+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(r=s+2;r<a;r++){if(32===e.src.charCodeAt(r))return!1;if(10===e.src.charCodeAt(r))return!1;if(93===e.src.charCodeAt(r))break}return r!==s+2&&(!(r>=a)&&(r++,n=e.src.slice(s+2,r-1),"undefined"!=typeof e.env.footnotes.refs[":"+n]&&(t||(e.env.footnotes.list||(e.env.footnotes.list=[]),e.env.footnotes.refs[":"+n]<0?(i=e.env.footnotes.list.length,e.env.footnotes.list[i]={label:n,count:0},e.env.footnotes.refs[":"+n]=i):i=e.env.footnotes.refs[":"+n],o=e.env.footnotes.list[i].count,e.env.footnotes.list[i].count++,e.push({type:"footnote_ref",id:i,subId:o,level:e.level})),e.pos=r,e.posMax=a,!0)))}},function(e,t,n){"use strict";var r=n(1133),i=n(1093),o=/^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,a=/^<([a-zA-Z.\-]{1,25}):([^<>\x00-\x20]*)>/;e.exports=function(e,t){var n,s,u,c,l,p=e.pos;return 60===e.src.charCodeAt(p)&&(n=e.src.slice(p),!(n.indexOf(">")<0)&&((s=n.match(a))?!(r.indexOf(s[1].toLowerCase())<0)&&(c=s[0].slice(1,-1),l=i(c),!!e.parser.validateLink(c)&&(t||(e.push({type:"link_open",href:l,level:e.level}),e.push({type:"text",content:c,level:e.level+1}),e.push({type:"link_close",level:e.level})),e.pos+=s[0].length,!0)):(u=n.match(o),!!u&&(c=u[0].slice(1,-1),l=i("mailto:"+c),!!e.parser.validateLink(l)&&(t||(e.push({type:"link_open",href:l,level:e.level}),e.push({type:"text",content:c,level:e.level+1}),e.push({type:"link_close",level:e.level})),e.pos+=u[0].length,!0)))))}},function(e,t){"use strict";e.exports=["coap","doi","javascript","aaa","aaas","about","acap","cap","cid","crid","data","dav","dict","dns","file","ftp","geo","go","gopher","h323","http","https","iax","icap","im","imap","info","ipp","iris","iris.beep","iris.xpc","iris.xpcs","iris.lwz","ldap","mailto","mid","msrp","msrps","mtqp","mupdate","news","nfs","ni","nih","nntp","opaquelocktoken","pop","pres","rtsp","service","session","shttp","sieve","sip","sips","sms","snmp","soap.beep","soap.beeps","tag","tel","telnet","tftp","thismessage","tn3270","tip","tv","urn","vemmi","ws","wss","xcon","xcon-userid","xmlrpc.beep","xmlrpc.beeps","xmpp","z39.50r","z39.50s","adiumxtra","afp","afs","aim","apt","attachment","aw","beshare","bitcoin","bolo","callto","chrome","chrome-extension","com-eventbrite-attendee","content","cvs","dlna-playsingle","dlna-playcontainer","dtn","dvb","ed2k","facetime","feed","finger","fish","gg","git","gizmoproject","gtalk","hcp","icon","ipn","irc","irc6","ircs","itms","jar","jms","keyparc","lastfm","ldaps","magnet","maps","market","message","mms","ms-help","msnim","mumble","mvn","notes","oid","palm","paparazzi","platform","proxy","psyc","query","res","resource","rmi","rsync","rtmp","secondlife","sftp","sgn","skype","smb","soldat","spotify","ssh","steam","svn","teamspeak","things","udp","unreal","ut2004","ventrilo","view-source","webcal","wtai","wyciwyg","xfire","xri","ymsgr"]},function(e,t,n){"use strict";function r(e){var t=32|e;return t>=97&&t<=122}var i=n(1135).HTML_TAG_RE;e.exports=function(e,t){var n,o,a,s=e.pos;return!!e.options.html&&(a=e.posMax,!(60!==e.src.charCodeAt(s)||s+2>=a)&&(n=e.src.charCodeAt(s+1),!(33!==n&&63!==n&&47!==n&&!r(n))&&(!!(o=e.src.slice(s).match(i))&&(t||e.push({type:"htmltag",content:e.src.slice(s,s+o[0].length),level:e.level}),e.pos+=o[0].length,!0))))}},function(e,t){"use strict";function n(e,t){return e=e.source,t=t||"",function n(r,i){return r?(i=i.source||i,e=e.replace(r,i),n):new RegExp(e,t)}}var r=/[a-zA-Z_:][a-zA-Z0-9:._-]*/,i=/[^"'=<>`\x00-\x20]+/,o=/'[^']*'/,a=/"[^"]*"/,s=n(/(?:unquoted|single_quoted|double_quoted)/)("unquoted",i)("single_quoted",o)("double_quoted",a)(),u=n(/(?:\s+attr_name(?:\s*=\s*attr_value)?)/)("attr_name",r)("attr_value",s)(),c=n(/<[A-Za-z][A-Za-z0-9]*attribute*\s*\/?>/)("attribute",u)(),l=/<\/[A-Za-z][A-Za-z0-9]*\s*>/,p=/<!--([^-]+|[-][^-]+)*-->/,f=/<[?].*?[?]>/,h=/<![A-Z]+\s+[^>]*>/,d=/<!\[CDATA\[([^\]]+|\][^\]]|\]\][^>])*\]\]>/,m=n(/^(?:open_tag|close_tag|comment|processing|declaration|cdata)/)("open_tag",c)("close_tag",l)("comment",p)("processing",f)("declaration",h)("cdata",d)();e.exports.HTML_TAG_RE=m},function(e,t,n){"use strict";var r=n(1082),i=n(1081).has,o=n(1081).isValidEntityCode,a=n(1081).fromCodePoint,s=/^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i,u=/^&([a-z][a-z0-9]{1,31});/i;e.exports=function(e,t){var n,c,l,p=e.pos,f=e.posMax;if(38!==e.src.charCodeAt(p))return!1;if(p+1<f)if(n=e.src.charCodeAt(p+1),35===n){if(l=e.src.slice(p).match(s))return t||(c="x"===l[1][0].toLowerCase()?parseInt(l[1].slice(1),16):parseInt(l[1],10),e.pending+=a(o(c)?c:65533)),e.pos+=l[0].length,!0}else if(l=e.src.slice(p).match(u),l&&i(r,l[1]))return t||(e.pending+=r[l[1]]),e.pos+=l[0].length,!0;return t||(e.pending+="&"),e.pos++,!0}},function(e,t){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,linkTarget:"",typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["block","inline","references","replacements","linkify","smartquotes","references","abbr2","footnote_tail"]},block:{rules:["blockquote","code","fences","footnote","heading","hr","htmlblock","lheading","list","paragraph","table"]},inline:{rules:["autolink","backticks","del","emphasis","entity","escape","footnote_ref","htmltag","links","newline","text"]}}}},function(e,t){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,linkTarget:"",typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{},block:{},inline:{}}}},function(e,t){"use strict";e.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,linkTarget:"",typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["block","inline","references","abbr2"]},block:{rules:["blockquote","code","fences","heading","hr","htmlblock","lheading","list","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","htmltag","links","newline","text"]}}}},function(e,t,n){function r(e,t){e&&Object.keys(e).forEach(function(n){t(e[n],n)})}function i(e,t){return{}.hasOwnProperty.call(e,t)}function o(e,t,n){function l(e,t){var n=this;this.tag=e,this.attribs=t||{},this.tagPosition=d.length,this.text="",this.updateParentNodeText=function(){if(w.length){var e=w[w.length-1];e.text+=n.text}}}function p(e){return"string"!=typeof e&&(e+=""),e.replace(/\&/g,"&amp;").replace(/</g,"&lt;").replace(/\>/g,"&gt;").replace(/\"/g,"&quot;")}function f(e,n){n=n.replace(/[\x00-\x20]+/g,""),n=n.replace(/<\!\-\-.*?\-\-\>/g,"");var r=n.match(/^([a-zA-Z]+)\:/);if(!r)return!!n.match(/^\/\//)&&!t.allowProtocolRelative;var o=r[1].toLowerCase();return i(t.allowedSchemesByTag,e)?t.allowedSchemesByTag[e].indexOf(o)===-1:!t.allowedSchemes||t.allowedSchemes.indexOf(o)===-1}function h(e,t){return t?(e=e.split(/\s+/),e.filter(function(e){return t.indexOf(e)!==-1}).join(" ")):e}var d="";t?(t=s(o.defaults,t),t.parser?t.parser=s(c,t.parser):t.parser=c):(t=o.defaults,t.parser=c);var m,v,y=t.nonTextTags||["script","style","textarea"];t.allowedAttributes&&(m={},v={},r(t.allowedAttributes,function(e,t){m[t]=[];var n=[];e.forEach(function(e){e.indexOf("*")>=0?n.push(u(e).replace(/\\\*/g,".*")):m[t].push(e)}),v[t]=new RegExp("^("+n.join("|")+")$")}));var g={};r(t.allowedClasses,function(e,t){m&&(i(m,t)||(m[t]=[]),m[t].push("class")),g[t]=e});var _,b={};r(t.transformTags,function(e,t){var n;"function"==typeof e?n=e:"string"==typeof e&&(n=o.simpleTransform(e)),"*"===t?_=n:b[t]=n});var x=0,w=[],k={},S={},E=!1,C=0,A=new a.Parser({onopentag:function(e,n){if(E)return void C++;var o=new l(e,n);w.push(o);var a,s=!1,u=!!o.text;i(b,e)&&(a=b[e](e,n),o.attribs=n=a.attribs,void 0!==a.text&&(o.innerText=a.text),e!==a.tagName&&(o.name=e=a.tagName,S[x]=a.tagName)),_&&(a=_(e,n),o.attribs=n=a.attribs,e!==a.tagName&&(o.name=e=a.tagName,S[x]=a.tagName)),t.allowedTags&&t.allowedTags.indexOf(e)===-1&&(s=!0,y.indexOf(e)!==-1&&(E=!0,C=1),k[x]=!0),x++,s||(d+="<"+e,(!m||i(m,e)||m["*"])&&r(n,function(t,n){if(!m||i(m,e)&&m[e].indexOf(n)!==-1||m["*"]&&m["*"].indexOf(n)!==-1||i(v,e)&&v[e].test(n)||v["*"]&&v["*"].test(n)){if(("href"===n||"src"===n)&&f(e,t))return void delete o.attribs[n];if("class"===n&&(t=h(t,g[e]),!t.length))return void delete o.attribs[n];d+=" "+n,t.length&&(d+='="'+p(t)+'"')}else delete o.attribs[n]}),t.selfClosing.indexOf(e)!==-1?d+=" />":(d+=">",!o.innerText||u||t.textFilter||(d+=o.innerText)))},ontext:function(e){if(!E){var n,r=w[w.length-1];if(r&&(n=r.tag,e=void 0!==r.innerText?r.innerText:e),"script"===n||"style"===n)d+=e;else{var i=p(e);d+=t.textFilter?t.textFilter(i):i}if(w.length){var o=w[w.length-1];o.text+=e}}},onclosetag:function(e){if(E){if(C--,C)return;E=!1}var n=w.pop();if(n){if(E=!1,x--,k[x])return delete k[x],void n.updateParentNodeText();if(S[x]&&(e=S[x],delete S[x]),t.exclusiveFilter&&t.exclusiveFilter(n))return void(d=d.substr(0,n.tagPosition));n.updateParentNodeText(),t.selfClosing.indexOf(e)===-1&&(d+="</"+e+">")}}},t.parser);return A.write(e),A.end(),d}var a=n(1141),s=n(1171),u=n(1172);e.exports=o;var c={decodeEntities:!0};o.defaults={allowedTags:["h3","h4","h5","h6","blockquote","p","a","ul","ol","nl","li","b","i","strong","em","strike","code","hr","br","div","table","thead","caption","tbody","tr","th","td","pre"],allowedAttributes:{a:["href","name","target"],img:["src"]},selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto"],allowedSchemesByTag:{},allowProtocolRelative:!0},o.simpleTransform=function(e,t,n){return n=void 0===n||n,t=t||{},function(r,i){var o;if(n)for(o in t)i[o]=t[o];else i=t;return{tagName:e,attribs:i}}}},function(e,t,n){function r(t,n){return delete e.exports[t],e.exports[t]=n,n}var i=n(1142),o=n(1149);e.exports={Parser:i,Tokenizer:n(1143),ElementType:n(1150),DomHandler:o,get FeedHandler(){return r("FeedHandler",n(1153))},get Stream(){return r("Stream",n(1154))},get WritableStream(){return r("WritableStream",n(1155))},get ProxyHandler(){return r("ProxyHandler",n(1157))},get DomUtils(){return r("DomUtils",n(1158))},get CollectingHandler(){return r("CollectingHandler",n(1170))},DefaultHandler:o,get RssHandler(){return r("RssHandler",this.FeedHandler)},parseDOM:function(e,t){var n=new o(t);return new i(n,t).end(e),n.dom},parseFeed:function(t,n){var r=new e.exports.FeedHandler(n);return new i(r,n).end(t),r.dom},createDomStream:function(e,t,n){var r=new o(e,t,n);return new i(r,t)},EVENTS:{attribute:2,cdatastart:0,cdataend:0,text:1,processinginstruction:2,comment:1,commentend:0,closetag:1,opentag:2,opentagname:1,error:1,end:0}}},function(e,t,n){function r(e,t){this._options=t||{},this._cbs=e||{},this._tagname="",this._attribname="",this._attribvalue="",this._attribs=null,this._stack=[],this.startIndex=0,this.endIndex=null,this._lowerCaseTagNames="lowerCaseTags"in this._options?!!this._options.lowerCaseTags:!this._options.xmlMode,this._lowerCaseAttributeNames="lowerCaseAttributeNames"in this._options?!!this._options.lowerCaseAttributeNames:!this._options.xmlMode,this._options.Tokenizer&&(i=this._options.Tokenizer),this._tokenizer=new i(this._options,this),this._cbs.onparserinit&&this._cbs.onparserinit(this)}var i=n(1143),o={input:!0,option:!0,optgroup:!0,select:!0,button:!0,datalist:!0,textarea:!0},a={tr:{tr:!0,th:!0,td:!0},th:{th:!0},td:{thead:!0,th:!0,td:!0},body:{head:!0,link:!0,script:!0},li:{li:!0},p:{p:!0},h1:{p:!0},h2:{p:!0},h3:{p:!0},h4:{p:!0},h5:{p:!0},h6:{p:!0},select:o,input:o,output:o,button:o,datalist:o,textarea:o,option:{option:!0},optgroup:{optgroup:!0}},s={__proto__:null,area:!0,base:!0,basefont:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,isindex:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,path:!0,circle:!0,ellipse:!0,line:!0,rect:!0,use:!0,stop:!0,polyline:!0,polygon:!0},u=/\s|\//;n(328)(r,n(327).EventEmitter),r.prototype._updatePosition=function(e){null===this.endIndex?this._tokenizer._sectionStart<=e?this.startIndex=0:this.startIndex=this._tokenizer._sectionStart-e:this.startIndex=this.endIndex+1,this.endIndex=this._tokenizer.getAbsoluteIndex()},r.prototype.ontext=function(e){this._updatePosition(1),this.endIndex--,this._cbs.ontext&&this._cbs.ontext(e)},r.prototype.onopentagname=function(e){if(this._lowerCaseTagNames&&(e=e.toLowerCase()),this._tagname=e,!this._options.xmlMode&&e in a)for(var t;(t=this._stack[this._stack.length-1])in a[e];this.onclosetag(t));!this._options.xmlMode&&e in s||this._stack.push(e),this._cbs.onopentagname&&this._cbs.onopentagname(e),this._cbs.onopentag&&(this._attribs={})},r.prototype.onopentagend=function(){this._updatePosition(1),this._attribs&&(this._cbs.onopentag&&this._cbs.onopentag(this._tagname,this._attribs),this._attribs=null),!this._options.xmlMode&&this._cbs.onclosetag&&this._tagname in s&&this._cbs.onclosetag(this._tagname),this._tagname=""},r.prototype.onclosetag=function(e){if(this._updatePosition(1),this._lowerCaseTagNames&&(e=e.toLowerCase()),!this._stack.length||e in s&&!this._options.xmlMode)this._options.xmlMode||"br"!==e&&"p"!==e||(this.onopentagname(e),this._closeCurrentTag());else{var t=this._stack.lastIndexOf(e);if(t!==-1)if(this._cbs.onclosetag)for(t=this._stack.length-t;t--;)this._cbs.onclosetag(this._stack.pop());else this._stack.length=t;else"p"!==e||this._options.xmlMode||(this.onopentagname(e),this._closeCurrentTag())}},r.prototype.onselfclosingtag=function(){this._options.xmlMode||this._options.recognizeSelfClosing?this._closeCurrentTag():this.onopentagend()},r.prototype._closeCurrentTag=function(){var e=this._tagname;this.onopentagend(),this._stack[this._stack.length-1]===e&&(this._cbs.onclosetag&&this._cbs.onclosetag(e),this._stack.pop())},r.prototype.onattribname=function(e){this._lowerCaseAttributeNames&&(e=e.toLowerCase()),this._attribname=e},r.prototype.onattribdata=function(e){this._attribvalue+=e},r.prototype.onattribend=function(){this._cbs.onattribute&&this._cbs.onattribute(this._attribname,this._attribvalue),this._attribs&&!Object.prototype.hasOwnProperty.call(this._attribs,this._attribname)&&(this._attribs[this._attribname]=this._attribvalue),this._attribname="",this._attribvalue=""},r.prototype._getInstructionName=function(e){var t=e.search(u),n=t<0?e:e.substr(0,t);return this._lowerCaseTagNames&&(n=n.toLowerCase()),n},r.prototype.ondeclaration=function(e){if(this._cbs.onprocessinginstruction){var t=this._getInstructionName(e);this._cbs.onprocessinginstruction("!"+t,"!"+e)}},r.prototype.onprocessinginstruction=function(e){if(this._cbs.onprocessinginstruction){var t=this._getInstructionName(e);this._cbs.onprocessinginstruction("?"+t,"?"+e)}},r.prototype.oncomment=function(e){this._updatePosition(4),this._cbs.oncomment&&this._cbs.oncomment(e),this._cbs.oncommentend&&this._cbs.oncommentend()},r.prototype.oncdata=function(e){this._updatePosition(1),this._options.xmlMode||this._options.recognizeCDATA?(this._cbs.oncdatastart&&this._cbs.oncdatastart(),this._cbs.ontext&&this._cbs.ontext(e),this._cbs.oncdataend&&this._cbs.oncdataend()):this.oncomment("[CDATA["+e+"]]")},r.prototype.onerror=function(e){this._cbs.onerror&&this._cbs.onerror(e)},r.prototype.onend=function(){if(this._cbs.onclosetag)for(var e=this._stack.length;e>0;this._cbs.onclosetag(this._stack[--e]));this._cbs.onend&&this._cbs.onend()},r.prototype.reset=function(){this._cbs.onreset&&this._cbs.onreset(),this._tokenizer.reset(),this._tagname="",this._attribname="",this._attribs=null,this._stack=[],this._cbs.onparserinit&&this._cbs.onparserinit(this)},r.prototype.parseComplete=function(e){this.reset(),this.end(e)},r.prototype.write=function(e){this._tokenizer.write(e)},r.prototype.end=function(e){this._tokenizer.end(e)},r.prototype.pause=function(){this._tokenizer.pause()},r.prototype.resume=function(){this._tokenizer.resume()},r.prototype.parseChunk=r.prototype.write,r.prototype.done=r.prototype.end,e.exports=r},function(e,t,n){function r(e){return" "===e||"\n"===e||"\t"===e||"\f"===e||"\r"===e}function i(e,t){return function(n){n===e&&(this._state=t)}}function o(e,t,n){var r=e.toLowerCase();return e===r?function(e){e===r?this._state=t:(this._state=n,this._index--)}:function(i){i===r||i===e?this._state=t:(this._state=n,this._index--)}}function a(e,t){var n=e.toLowerCase();return function(r){r===n||r===e?this._state=t:(this._state=m,this._index--)}}function s(e,t){this._state=h,this._buffer="",this._sectionStart=0,this._index=0,this._bufferOffset=0,this._baseState=h,this._special=me,this._cbs=t,this._running=!0,this._ended=!1,this._xmlMode=!(!e||!e.xmlMode),this._decodeEntities=!(!e||!e.decodeEntities)}e.exports=s;var u=n(1144),c=n(1146),l=n(1147),p=n(1148),f=0,h=f++,d=f++,m=f++,v=f++,y=f++,g=f++,_=f++,b=f++,x=f++,w=f++,k=f++,S=f++,E=f++,C=f++,A=f++,T=f++,D=f++,M=f++,O=f++,P=f++,I=f++,N=f++,R=f++,j=f++,F=f++,B=f++,L=f++,z=f++,q=f++,U=f++,W=f++,K=f++,V=f++,H=f++,J=f++,G=f++,X=f++,Y=f++,$=f++,Z=f++,Q=f++,ee=f++,te=f++,ne=f++,re=f++,ie=f++,oe=f++,ae=f++,se=f++,ue=f++,ce=f++,le=f++,pe=f++,fe=f++,he=f++,de=0,me=de++,ve=de++,ye=de++;s.prototype._stateText=function(e){"<"===e?(this._index>this._sectionStart&&this._cbs.ontext(this._getSection()),this._state=d,this._sectionStart=this._index):this._decodeEntities&&this._special===me&&"&"===e&&(this._index>this._sectionStart&&this._cbs.ontext(this._getSection()),this._baseState=h,this._state=ce,this._sectionStart=this._index)},s.prototype._stateBeforeTagName=function(e){"/"===e?this._state=y:"<"===e?(this._cbs.ontext(this._getSection()),this._sectionStart=this._index):">"===e||this._special!==me||r(e)?this._state=h:"!"===e?(this._state=A,this._sectionStart=this._index+1):"?"===e?(this._state=D,this._sectionStart=this._index+1):(this._state=this._xmlMode||"s"!==e&&"S"!==e?m:W,this._sectionStart=this._index)},s.prototype._stateInTagName=function(e){("/"===e||">"===e||r(e))&&(this._emitToken("onopentagname"),this._state=b,this._index--)},s.prototype._stateBeforeCloseingTagName=function(e){r(e)||(">"===e?this._state=h:this._special!==me?"s"===e||"S"===e?this._state=K:(this._state=h,this._index--):(this._state=g,this._sectionStart=this._index))},s.prototype._stateInCloseingTagName=function(e){(">"===e||r(e))&&(this._emitToken("onclosetag"),this._state=_,this._index--)},s.prototype._stateAfterCloseingTagName=function(e){">"===e&&(this._state=h,this._sectionStart=this._index+1)},s.prototype._stateBeforeAttributeName=function(e){">"===e?(this._cbs.onopentagend(),this._state=h,this._sectionStart=this._index+1):"/"===e?this._state=v:r(e)||(this._state=x,this._sectionStart=this._index)},s.prototype._stateInSelfClosingTag=function(e){">"===e?(this._cbs.onselfclosingtag(),this._state=h,this._sectionStart=this._index+1):r(e)||(this._state=b,this._index--)},s.prototype._stateInAttributeName=function(e){("="===e||"/"===e||">"===e||r(e))&&(this._cbs.onattribname(this._getSection()),this._sectionStart=-1,this._state=w,this._index--)},s.prototype._stateAfterAttributeName=function(e){"="===e?this._state=k:"/"===e||">"===e?(this._cbs.onattribend(),this._state=b,this._index--):r(e)||(this._cbs.onattribend(),this._state=x,this._sectionStart=this._index)},s.prototype._stateBeforeAttributeValue=function(e){'"'===e?(this._state=S,this._sectionStart=this._index+1):"'"===e?(this._state=E,this._sectionStart=this._index+1):r(e)||(this._state=C,this._sectionStart=this._index,this._index--)},s.prototype._stateInAttributeValueDoubleQuotes=function(e){'"'===e?(this._emitToken("onattribdata"),this._cbs.onattribend(),this._state=b):this._decodeEntities&&"&"===e&&(this._emitToken("onattribdata"),this._baseState=this._state,this._state=ce,this._sectionStart=this._index)},s.prototype._stateInAttributeValueSingleQuotes=function(e){"'"===e?(this._emitToken("onattribdata"),this._cbs.onattribend(),this._state=b):this._decodeEntities&&"&"===e&&(this._emitToken("onattribdata"),this._baseState=this._state,this._state=ce,this._sectionStart=this._index)},s.prototype._stateInAttributeValueNoQuotes=function(e){r(e)||">"===e?(this._emitToken("onattribdata"),this._cbs.onattribend(),this._state=b,this._index--):this._decodeEntities&&"&"===e&&(this._emitToken("onattribdata"),this._baseState=this._state,this._state=ce,this._sectionStart=this._index)},s.prototype._stateBeforeDeclaration=function(e){this._state="["===e?N:"-"===e?M:T},s.prototype._stateInDeclaration=function(e){">"===e&&(this._cbs.ondeclaration(this._getSection()),this._state=h,this._sectionStart=this._index+1)},s.prototype._stateInProcessingInstruction=function(e){">"===e&&(this._cbs.onprocessinginstruction(this._getSection()),this._state=h,this._sectionStart=this._index+1)},s.prototype._stateBeforeComment=function(e){"-"===e?(this._state=O,this._sectionStart=this._index+1):this._state=T},s.prototype._stateInComment=function(e){"-"===e&&(this._state=P)},s.prototype._stateAfterComment1=function(e){"-"===e?this._state=I:this._state=O},s.prototype._stateAfterComment2=function(e){">"===e?(this._cbs.oncomment(this._buffer.substring(this._sectionStart,this._index-2)),this._state=h,this._sectionStart=this._index+1):"-"!==e&&(this._state=O)},s.prototype._stateBeforeCdata1=o("C",R,T),s.prototype._stateBeforeCdata2=o("D",j,T),s.prototype._stateBeforeCdata3=o("A",F,T),s.prototype._stateBeforeCdata4=o("T",B,T),s.prototype._stateBeforeCdata5=o("A",L,T),s.prototype._stateBeforeCdata6=function(e){"["===e?(this._state=z,this._sectionStart=this._index+1):(this._state=T,this._index--)},s.prototype._stateInCdata=function(e){"]"===e&&(this._state=q)},s.prototype._stateAfterCdata1=i("]",U),s.prototype._stateAfterCdata2=function(e){">"===e?(this._cbs.oncdata(this._buffer.substring(this._sectionStart,this._index-2)),this._state=h,this._sectionStart=this._index+1):"]"!==e&&(this._state=z)},s.prototype._stateBeforeSpecial=function(e){"c"===e||"C"===e?this._state=V:"t"===e||"T"===e?this._state=te:(this._state=m,this._index--)},s.prototype._stateBeforeSpecialEnd=function(e){this._special!==ve||"c"!==e&&"C"!==e?this._special!==ye||"t"!==e&&"T"!==e?this._state=h:this._state=oe:this._state=Y},s.prototype._stateBeforeScript1=a("R",H),s.prototype._stateBeforeScript2=a("I",J),s.prototype._stateBeforeScript3=a("P",G),s.prototype._stateBeforeScript4=a("T",X),s.prototype._stateBeforeScript5=function(e){("/"===e||">"===e||r(e))&&(this._special=ve),this._state=m,this._index--},s.prototype._stateAfterScript1=o("R",$,h),s.prototype._stateAfterScript2=o("I",Z,h),s.prototype._stateAfterScript3=o("P",Q,h),s.prototype._stateAfterScript4=o("T",ee,h),s.prototype._stateAfterScript5=function(e){">"===e||r(e)?(this._special=me,this._state=g,this._sectionStart=this._index-6,this._index--):this._state=h},s.prototype._stateBeforeStyle1=a("Y",ne),s.prototype._stateBeforeStyle2=a("L",re),s.prototype._stateBeforeStyle3=a("E",ie),s.prototype._stateBeforeStyle4=function(e){("/"===e||">"===e||r(e))&&(this._special=ye),this._state=m,this._index--},s.prototype._stateAfterStyle1=o("Y",ae,h),s.prototype._stateAfterStyle2=o("L",se,h),s.prototype._stateAfterStyle3=o("E",ue,h),s.prototype._stateAfterStyle4=function(e){">"===e||r(e)?(this._special=me,this._state=g,this._sectionStart=this._index-5,this._index--):this._state=h},s.prototype._stateBeforeEntity=o("#",le,pe),s.prototype._stateBeforeNumericEntity=o("X",he,fe),s.prototype._parseNamedEntityStrict=function(){if(this._sectionStart+1<this._index){var e=this._buffer.substring(this._sectionStart+1,this._index),t=this._xmlMode?p:c;t.hasOwnProperty(e)&&(this._emitPartial(t[e]),this._sectionStart=this._index+1)}},s.prototype._parseLegacyEntity=function(){var e=this._sectionStart+1,t=this._index-e;for(t>6&&(t=6);t>=2;){var n=this._buffer.substr(e,t);if(l.hasOwnProperty(n))return this._emitPartial(l[n]),void(this._sectionStart+=t+1);t--}},s.prototype._stateInNamedEntity=function(e){";"===e?(this._parseNamedEntityStrict(),this._sectionStart+1<this._index&&!this._xmlMode&&this._parseLegacyEntity(),this._state=this._baseState):(e<"a"||e>"z")&&(e<"A"||e>"Z")&&(e<"0"||e>"9")&&(this._xmlMode||this._sectionStart+1===this._index||(this._baseState!==h?"="!==e&&this._parseNamedEntityStrict():this._parseLegacyEntity()),this._state=this._baseState,this._index--)},s.prototype._decodeNumericEntity=function(e,t){var n=this._sectionStart+e;if(n!==this._index){var r=this._buffer.substring(n,this._index),i=parseInt(r,t);this._emitPartial(u(i)),this._sectionStart=this._index}else this._sectionStart--;this._state=this._baseState},s.prototype._stateInNumericEntity=function(e){";"===e?(this._decodeNumericEntity(2,10),this._sectionStart++):(e<"0"||e>"9")&&(this._xmlMode?this._state=this._baseState:this._decodeNumericEntity(2,10),this._index--)},s.prototype._stateInHexEntity=function(e){";"===e?(this._decodeNumericEntity(3,16),this._sectionStart++):(e<"a"||e>"f")&&(e<"A"||e>"F")&&(e<"0"||e>"9")&&(this._xmlMode?this._state=this._baseState:this._decodeNumericEntity(3,16),this._index--)},s.prototype._cleanup=function(){this._sectionStart<0?(this._buffer="",this._bufferOffset+=this._index,this._index=0):this._running&&(this._state===h?(this._sectionStart!==this._index&&this._cbs.ontext(this._buffer.substr(this._sectionStart)),this._buffer="",this._bufferOffset+=this._index,this._index=0):this._sectionStart===this._index?(this._buffer="",this._bufferOffset+=this._index,this._index=0):(this._buffer=this._buffer.substr(this._sectionStart),this._index-=this._sectionStart,this._bufferOffset+=this._sectionStart),this._sectionStart=0)},s.prototype.write=function(e){this._ended&&this._cbs.onerror(Error(".write() after done!")),this._buffer+=e,this._parse()},s.prototype._parse=function(){for(;this._index<this._buffer.length&&this._running;){var e=this._buffer.charAt(this._index);this._state===h?this._stateText(e):this._state===d?this._stateBeforeTagName(e):this._state===m?this._stateInTagName(e):this._state===y?this._stateBeforeCloseingTagName(e):this._state===g?this._stateInCloseingTagName(e):this._state===_?this._stateAfterCloseingTagName(e):this._state===v?this._stateInSelfClosingTag(e):this._state===b?this._stateBeforeAttributeName(e):this._state===x?this._stateInAttributeName(e):this._state===w?this._stateAfterAttributeName(e):this._state===k?this._stateBeforeAttributeValue(e):this._state===S?this._stateInAttributeValueDoubleQuotes(e):this._state===E?this._stateInAttributeValueSingleQuotes(e):this._state===C?this._stateInAttributeValueNoQuotes(e):this._state===A?this._stateBeforeDeclaration(e):this._state===T?this._stateInDeclaration(e):this._state===D?this._stateInProcessingInstruction(e):this._state===M?this._stateBeforeComment(e):this._state===O?this._stateInComment(e):this._state===P?this._stateAfterComment1(e):this._state===I?this._stateAfterComment2(e):this._state===N?this._stateBeforeCdata1(e):this._state===R?this._stateBeforeCdata2(e):this._state===j?this._stateBeforeCdata3(e):this._state===F?this._stateBeforeCdata4(e):this._state===B?this._stateBeforeCdata5(e):this._state===L?this._stateBeforeCdata6(e):this._state===z?this._stateInCdata(e):this._state===q?this._stateAfterCdata1(e):this._state===U?this._stateAfterCdata2(e):this._state===W?this._stateBeforeSpecial(e):this._state===K?this._stateBeforeSpecialEnd(e):this._state===V?this._stateBeforeScript1(e):this._state===H?this._stateBeforeScript2(e):this._state===J?this._stateBeforeScript3(e):this._state===G?this._stateBeforeScript4(e):this._state===X?this._stateBeforeScript5(e):this._state===Y?this._stateAfterScript1(e):this._state===$?this._stateAfterScript2(e):this._state===Z?this._stateAfterScript3(e):this._state===Q?this._stateAfterScript4(e):this._state===ee?this._stateAfterScript5(e):this._state===te?this._stateBeforeStyle1(e):this._state===ne?this._stateBeforeStyle2(e):this._state===re?this._stateBeforeStyle3(e):this._state===ie?this._stateBeforeStyle4(e):this._state===oe?this._stateAfterStyle1(e):this._state===ae?this._stateAfterStyle2(e):this._state===se?this._stateAfterStyle3(e):this._state===ue?this._stateAfterStyle4(e):this._state===ce?this._stateBeforeEntity(e):this._state===le?this._stateBeforeNumericEntity(e):this._state===pe?this._stateInNamedEntity(e):this._state===fe?this._stateInNumericEntity(e):this._state===he?this._stateInHexEntity(e):this._cbs.onerror(Error("unknown _state"),this._state), +this._index++}this._cleanup()},s.prototype.pause=function(){this._running=!1},s.prototype.resume=function(){this._running=!0,this._index<this._buffer.length&&this._parse(),this._ended&&this._finish()},s.prototype.end=function(e){this._ended&&this._cbs.onerror(Error(".end() after done!")),e&&this.write(e),this._ended=!0,this._running&&this._finish()},s.prototype._finish=function(){this._sectionStart<this._index&&this._handleTrailingData(),this._cbs.onend()},s.prototype._handleTrailingData=function(){var e=this._buffer.substr(this._sectionStart);this._state===z||this._state===q||this._state===U?this._cbs.oncdata(e):this._state===O||this._state===P||this._state===I?this._cbs.oncomment(e):this._state!==pe||this._xmlMode?this._state!==fe||this._xmlMode?this._state!==he||this._xmlMode?this._state!==m&&this._state!==b&&this._state!==k&&this._state!==w&&this._state!==x&&this._state!==E&&this._state!==S&&this._state!==C&&this._state!==g&&this._cbs.ontext(e):(this._decodeNumericEntity(3,16),this._sectionStart<this._index&&(this._state=this._baseState,this._handleTrailingData())):(this._decodeNumericEntity(2,10),this._sectionStart<this._index&&(this._state=this._baseState,this._handleTrailingData())):(this._parseLegacyEntity(),this._sectionStart<this._index&&(this._state=this._baseState,this._handleTrailingData()))},s.prototype.reset=function(){s.call(this,{xmlMode:this._xmlMode,decodeEntities:this._decodeEntities},this._cbs)},s.prototype.getAbsoluteIndex=function(){return this._bufferOffset+this._index},s.prototype._getSection=function(){return this._buffer.substring(this._sectionStart,this._index)},s.prototype._emitToken=function(e){this._cbs[e](this._getSection()),this._sectionStart=-1},s.prototype._emitPartial=function(e){this._baseState!==h?this._cbs.onattribdata(e):this._cbs.ontext(e)}},function(e,t,n){function r(e){if(e>=55296&&e<=57343||e>1114111)return"�";e in i&&(e=i[e]);var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+=String.fromCharCode(e)}var i=n(1145);e.exports=r},function(e,t){e.exports={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376}},function(e,t){e.exports={Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",amp:"&",AMP:"&",andand:"⩕",And:"⩓",and:"∧",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angmsd:"∡",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",apacir:"⩯",ap:"≈",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxHd:"╤",boxhD:"╥",boxHD:"╦",boxhu:"┴",boxHu:"╧",boxhU:"╨",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsolb:"⧅",bsol:"\\",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",capand:"⩄",capbrcup:"⩉",capcap:"⩋",cap:"∩",Cap:"⋒",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cir:"○",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cup:"∪",Cup:"⋓",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",Darr:"↡",dArr:"⇓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",ddagger:"‡",ddarr:"⇊",DD:"ⅅ",dd:"ⅆ",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrowBar:"⤓",downarrow:"↓",DownArrow:"↓",Downarrow:"⇓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVectorBar:"⥖",DownLeftVector:"↽",DownRightTeeVector:"⥟",DownRightVectorBar:"⥗",DownRightVector:"⇁",DownTeeArrow:"↧",DownTee:"⊤",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",Ecirc:"Ê",ecirc:"ê",ecir:"≖",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",edot:"ė",eDot:"≑",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp13:" ",emsp14:" ",emsp:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",ge:"≥",gE:"≧",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",gescc:"⪩",ges:"⩾",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gla:"⪥",gl:"≷",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gtcc:"⪧",gtcir:"⩺",gt:">",GT:">",Gt:"≫",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",harrcir:"⥈",harr:"↔",hArr:"⇔",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",Im:"ℑ",imof:"⊷",imped:"Ƶ",Implies:"⇒",incare:"℅",in:"∈",infin:"∞",infintie:"⧝",inodot:"ı",intcal:"⊺",int:"∫",Int:"∬",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larrb:"⇤",larrbfs:"⤟",larr:"←",Larr:"↞",lArr:"⇐",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",latail:"⤙",lAtail:"⤛",lat:"⪫",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",LeftArrowBar:"⇤",leftarrow:"←",LeftArrow:"←",Leftarrow:"⇐",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVectorBar:"⥙",LeftDownVector:"⇃",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTeeArrow:"↤",LeftTee:"⊣",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangleBar:"⧏",LeftTriangle:"⊲",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVectorBar:"⥘",LeftUpVector:"↿",LeftVectorBar:"⥒",LeftVector:"↼",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",lescc:"⪨",les:"⩽",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",llarr:"⇇",ll:"≪",Ll:"⋘",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoustache:"⎰",lmoust:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftrightarrow:"⟷",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longmapsto:"⟼",longrightarrow:"⟶",LongRightArrow:"⟶",Longrightarrow:"⟹",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",ltcc:"⪦",ltcir:"⩹",lt:"<",LT:"<",Lt:"≪",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",midast:"*",midcir:"⫰",mid:"∣",middot:"·",minusb:"⊟",minus:"−",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natural:"♮",naturals:"ℕ",natur:"♮",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",ne:"≠",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nlE:"≦̸",nle:"≰",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangleBar:"⧏̸",NotLeftTriangle:"⋪",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangleBar:"⧐̸",NotRightTriangle:"⋫",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",nparallel:"∦",npar:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",nprec:"⊀",npreceq:"⪯̸",npre:"⪯̸",nrarrc:"⤳̸",nrarr:"↛",nrArr:"⇏",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",Ocirc:"Ô",ocirc:"ô",ocir:"⊚",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",orarr:"↻",Or:"⩔",or:"∨",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",otimesas:"⨶",Otimes:"⨷",otimes:"⊗",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",para:"¶",parallel:"∥",par:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plus:"+",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",prap:"⪷",Pr:"⪻",pr:"≺",prcue:"≼",precapprox:"⪷",prec:"≺",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",pre:"⪯",prE:"⪳",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportional:"∝",Proportion:"∷",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarr:"→",Rarr:"↠",rArr:"⇒",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",Re:"ℜ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrowBar:"⇥",rightarrow:"→",RightArrow:"→",Rightarrow:"⇒",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVectorBar:"⥕",RightDownVector:"⇂",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTeeArrow:"↦",RightTee:"⊢",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangleBar:"⧐",RightTriangle:"⊳",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVectorBar:"⥔",RightUpVector:"↾",RightVectorBar:"⥓",RightVector:"⇀",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoustache:"⎱",rmoust:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",scap:"⪸",Scaron:"Š",scaron:"š",Sc:"⪼",sc:"≻",sccue:"≽",sce:"⪰",scE:"⪴",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdotb:"⊡",sdot:"⋅",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",solbar:"⌿",solb:"⧄",sol:"/",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squ:"□",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succapprox:"⪸",succ:"≻",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",Sup:"⋑",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",therefore:"∴",Therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",ThinSpace:" ",thinsp:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",timesbar:"⨱",timesb:"⊠",times:"×",timesd:"⨰",tint:"∭",toea:"⤨",topbot:"⌶",topcir:"⫱",top:"⊤",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",uarr:"↑",Uarr:"↟",uArr:"⇑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrowBar:"⤒",uparrow:"↑",UpArrow:"↑",Uparrow:"⇑",UpArrowDownArrow:"⇅",updownarrow:"↕",UpDownArrow:"↕",Updownarrow:"⇕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTeeArrow:"↥",UpTee:"⊥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",Vcy:"В",vcy:"в",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",veebar:"⊻",vee:"∨",Vee:"⋁",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xharr:"⟷",xhArr:"⟺",Xi:"Ξ",xi:"ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",yuml:"ÿ",Yuml:"Ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",zfr:"𝔷",Zfr:"ℨ",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"}},function(e,t){e.exports={Aacute:"Á",aacute:"á",Acirc:"Â",acirc:"â",acute:"´",AElig:"Æ",aelig:"æ",Agrave:"À",agrave:"à",amp:"&",AMP:"&",Aring:"Å",aring:"å",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",brvbar:"¦",Ccedil:"Ç",ccedil:"ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",Eacute:"É",eacute:"é",Ecirc:"Ê",ecirc:"ê",Egrave:"È",egrave:"è",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",Iacute:"Í",iacute:"í",Icirc:"Î",icirc:"î",iexcl:"¡",Igrave:"Ì",igrave:"ì",iquest:"¿",Iuml:"Ï",iuml:"ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",Ntilde:"Ñ",ntilde:"ñ",Oacute:"Ó",oacute:"ó",Ocirc:"Ô",ocirc:"ô",Ograve:"Ò",ograve:"ò",ordf:"ª",ordm:"º",Oslash:"Ø",oslash:"ø",Otilde:"Õ",otilde:"õ",Ouml:"Ö",ouml:"ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",THORN:"Þ",thorn:"þ",times:"×",Uacute:"Ú",uacute:"ú",Ucirc:"Û",ucirc:"û",Ugrave:"Ù",ugrave:"ù",uml:"¨",Uuml:"Ü",uuml:"ü",Yacute:"Ý",yacute:"ý",yen:"¥",yuml:"ÿ"}},function(e,t){e.exports={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}},function(e,t,n){function r(e,t,n){"object"==typeof e?(n=t,t=e,e=null):"function"==typeof t&&(n=t,t=u),this._callback=e,this._options=t||u,this._elementCB=n,this.dom=[],this._done=!1,this._tagStack=[],this._parser=this._parser||null}var i=n(1150),o=/\s+/g,a=n(1151),s=n(1152),u={normalizeWhitespace:!1,withStartIndices:!1,withEndIndices:!1};r.prototype.onparserinit=function(e){this._parser=e},r.prototype.onreset=function(){r.call(this,this._callback,this._options,this._elementCB)},r.prototype.onend=function(){this._done||(this._done=!0,this._parser=null,this._handleCallback(null))},r.prototype._handleCallback=r.prototype.onerror=function(e){if("function"==typeof this._callback)this._callback(e,this.dom);else if(e)throw e},r.prototype.onclosetag=function(){var e=this._tagStack.pop();this._options.withEndIndices&&(e.endIndex=this._parser.endIndex),this._elementCB&&this._elementCB(e)},r.prototype._createDomElement=function(e){if(!this._options.withDomLvl1)return e;var t;t="tag"===e.type?Object.create(s):Object.create(a);for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t},r.prototype._addDomElement=function(e){var t=this._tagStack[this._tagStack.length-1],n=t?t.children:this.dom,r=n[n.length-1];e.next=null,this._options.withStartIndices&&(e.startIndex=this._parser.startIndex),this._options.withEndIndices&&(e.endIndex=this._parser.endIndex),r?(e.prev=r,r.next=e):e.prev=null,n.push(e),e.parent=t||null},r.prototype.onopentag=function(e,t){var n={type:"script"===e?i.Script:"style"===e?i.Style:i.Tag,name:e,attribs:t,children:[]},r=this._createDomElement(n);this._addDomElement(r),this._tagStack.push(r)},r.prototype.ontext=function(e){var t,n=this._options.normalizeWhitespace||this._options.ignoreWhitespace;if(!this._tagStack.length&&this.dom.length&&(t=this.dom[this.dom.length-1]).type===i.Text)n?t.data=(t.data+e).replace(o," "):t.data+=e;else if(this._tagStack.length&&(t=this._tagStack[this._tagStack.length-1])&&(t=t.children[t.children.length-1])&&t.type===i.Text)n?t.data=(t.data+e).replace(o," "):t.data+=e;else{n&&(e=e.replace(o," "));var r=this._createDomElement({data:e,type:i.Text});this._addDomElement(r)}},r.prototype.oncomment=function(e){var t=this._tagStack[this._tagStack.length-1];if(t&&t.type===i.Comment)return void(t.data+=e);var n={data:e,type:i.Comment},r=this._createDomElement(n);this._addDomElement(r),this._tagStack.push(r)},r.prototype.oncdatastart=function(){var e={children:[{data:"",type:i.Text}],type:i.CDATA},t=this._createDomElement(e);this._addDomElement(t),this._tagStack.push(t)},r.prototype.oncommentend=r.prototype.oncdataend=function(){this._tagStack.pop()},r.prototype.onprocessinginstruction=function(e,t){var n=this._createDomElement({name:e,data:t,type:i.Directive});this._addDomElement(n)},e.exports=r},function(e,t){e.exports={Text:"text",Directive:"directive",Comment:"comment",Script:"script",Style:"style",Tag:"tag",CDATA:"cdata",Doctype:"doctype",isTag:function(e){return"tag"===e.type||"script"===e.type||"style"===e.type}}},function(e,t){var n=e.exports={get firstChild(){var e=this.children;return e&&e[0]||null},get lastChild(){var e=this.children;return e&&e[e.length-1]||null},get nodeType(){return i[this.type]||i.element}},r={tagName:"name",childNodes:"children",parentNode:"parent",previousSibling:"prev",nextSibling:"next",nodeValue:"data"},i={element:1,text:3,cdata:4,comment:8};Object.keys(r).forEach(function(e){var t=r[e];Object.defineProperty(n,e,{get:function(){return this[t]||null},set:function(e){return this[t]=e,e}})})},function(e,t,n){var r=n(1151),i=e.exports=Object.create(r),o={tagName:"name"};Object.keys(o).forEach(function(e){var t=o[e];Object.defineProperty(i,e,{ +get:function(){return this[t]||null},set:function(e){return this[t]=e,e}})})},function(e,t,n){function r(e,t){this.init(e,t)}function i(e,t){return l.getElementsByTagName(e,t,!0)}function o(e,t){return l.getElementsByTagName(e,t,!0,1)[0]}function a(e,t,n){return l.getText(l.getElementsByTagName(e,t,n,1)).trim()}function s(e,t,n,r,i){var o=a(n,r,i);o&&(e[t]=o)}var u=n(1141),c=u.DomHandler,l=u.DomUtils;n(328)(r,c),r.prototype.init=c;var p=function(e){return"rss"===e||"feed"===e||"rdf:RDF"===e};r.prototype.onend=function(){var e,t,n={},r=o(p,this.dom);r&&("feed"===r.name?(t=r.children,n.type="atom",s(n,"id","id",t),s(n,"title","title",t),(e=o("link",t))&&(e=e.attribs)&&(e=e.href)&&(n.link=e),s(n,"description","subtitle",t),(e=a("updated",t))&&(n.updated=new Date(e)),s(n,"author","email",t,!0),n.items=i("entry",t).map(function(e){var t,n={};return e=e.children,s(n,"id","id",e),s(n,"title","title",e),(t=o("link",e))&&(t=t.attribs)&&(t=t.href)&&(n.link=t),(t=a("summary",e)||a("content",e))&&(n.description=t),(t=a("updated",e))&&(n.pubDate=new Date(t)),n})):(t=o("channel",r.children).children,n.type=r.name.substr(0,3),n.id="",s(n,"title","title",t),s(n,"link","link",t),s(n,"description","description",t),(e=a("lastBuildDate",t))&&(n.updated=new Date(e)),s(n,"author","managingEditor",t,!0),n.items=i("item",r.children).map(function(e){var t,n={};return e=e.children,s(n,"id","guid",e),s(n,"title","title",e),s(n,"link","link",e),s(n,"description","description",e),(t=a("pubDate",e))&&(n.pubDate=new Date(t)),n}))),this.dom=n,c.prototype._handleCallback.call(this,r?null:Error("couldn't find root of feed"))},e.exports=r},function(e,t,n){function r(e){o.call(this,new i(this),e)}function i(e){this.scope=e}e.exports=r;var o=n(1155);n(328)(r,o),r.prototype.readable=!0;var a=n(1141).EVENTS;Object.keys(a).forEach(function(e){if(0===a[e])i.prototype["on"+e]=function(){this.scope.emit(e)};else if(1===a[e])i.prototype["on"+e]=function(t){this.scope.emit(e,t)};else{if(2!==a[e])throw Error("wrong number of arguments!");i.prototype["on"+e]=function(t,n){this.scope.emit(e,t,n)}}})},function(e,t,n){function r(e,t){var n=this._parser=new i(e,t),r=this._decoder=new a;o.call(this,{decodeStrings:!1}),this.once("finish",function(){n.end(r.end())})}e.exports=r;var i=n(1142),o=n(326).Writable||n(1156).Writable,a=n(343).StringDecoder,s=n(132).Buffer;n(328)(r,o),o.prototype._write=function(e,t,n){e instanceof s&&(e=this._decoder.write(e)),this._parser.write(e),n()}},335,function(e,t,n){function r(e){this._cbs=e||{}}e.exports=r;var i=n(1141).EVENTS;Object.keys(i).forEach(function(e){if(0===i[e])e="on"+e,r.prototype[e]=function(){this._cbs[e]&&this._cbs[e]()};else if(1===i[e])e="on"+e,r.prototype[e]=function(t){this._cbs[e]&&this._cbs[e](t)};else{if(2!==i[e])throw Error("wrong number of arguments");e="on"+e,r.prototype[e]=function(t,n){this._cbs[e]&&this._cbs[e](t,n)}}})},function(e,t,n){var r=e.exports;[n(1159),n(1165),n(1166),n(1167),n(1168),n(1169)].forEach(function(e){Object.keys(e).forEach(function(t){r[t]=e[t].bind(r)})})},function(e,t,n){function r(e,t){return e.children?e.children.map(function(e){return a(e,t)}).join(""):""}function i(e){return Array.isArray(e)?e.map(i).join(""):s(e)?"br"===e.name?"\n":i(e.children):e.type===o.CDATA?i(e.children):e.type===o.Text?e.data:""}var o=n(1150),a=n(1160),s=o.isTag;e.exports={getInnerHTML:r,getOuterHTML:a,getText:i}},function(e,t,n){function r(e,t){if(e){var n,r="";for(var i in e)n=e[i],r&&(r+=" "),r+=!n&&p[i]?i:i+'="'+(t.decodeEntities?l.encodeXML(n):n)+'"';return r}}function i(e,t){"svg"===e.name&&(t={decodeEntities:t.decodeEntities,xmlMode:!0});var n="<"+e.name,i=r(e.attribs,t);return i&&(n+=" "+i),!t.xmlMode||e.children&&0!==e.children.length?(n+=">",e.children&&(n+=d(e.children,t)),h[e.name]&&!t.xmlMode||(n+="</"+e.name+">")):n+="/>",n}function o(e){return"<"+e.data+">"}function a(e,t){var n=e.data||"";return!t.decodeEntities||e.parent&&e.parent.name in f||(n=l.encodeXML(n)),n}function s(e){return"<![CDATA["+e.children[0].data+"]]>"}function u(e){return"<!--"+e.data+"-->"}var c=n(1161),l=n(1162),p={__proto__:null,allowfullscreen:!0,async:!0,autofocus:!0,autoplay:!0,checked:!0,controls:!0,default:!0,defer:!0,disabled:!0,hidden:!0,ismap:!0,loop:!0,multiple:!0,muted:!0,open:!0,readonly:!0,required:!0,reversed:!0,scoped:!0,seamless:!0,selected:!0,typemustmatch:!0},f={__proto__:null,style:!0,script:!0,xmp:!0,iframe:!0,noembed:!0,noframes:!0,plaintext:!0,noscript:!0},h={__proto__:null,area:!0,base:!0,basefont:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,isindex:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},d=e.exports=function(e,t){Array.isArray(e)||e.cheerio||(e=[e]),t=t||{};for(var n="",r=0;r<e.length;r++){var l=e[r];n+="root"===l.type?d(l.children,t):c.isTag(l)?i(l,t):l.type===c.Directive?o(l):l.type===c.Comment?u(l):l.type===c.CDATA?s(l):a(l,t)}return n}},function(e,t){e.exports={Text:"text",Directive:"directive",Comment:"comment",Script:"script",Style:"style",Tag:"tag",CDATA:"cdata",isTag:function(e){return"tag"===e.type||"script"===e.type||"style"===e.type}}},function(e,t,n){var r=n(1163),i=n(1164);t.decode=function(e,t){return(!t||t<=0?i.XML:i.HTML)(e)},t.decodeStrict=function(e,t){return(!t||t<=0?i.XML:i.HTMLStrict)(e)},t.encode=function(e,t){return(!t||t<=0?r.XML:r.HTML)(e)},t.encodeXML=r.XML,t.encodeHTML4=t.encodeHTML5=t.encodeHTML=r.HTML,t.decodeXML=t.decodeXMLStrict=i.XML,t.decodeHTML4=t.decodeHTML5=t.decodeHTML=i.HTML,t.decodeHTML4Strict=t.decodeHTML5Strict=t.decodeHTMLStrict=i.HTMLStrict,t.escape=r.escape},function(e,t,n){function r(e){return Object.keys(e).sort().reduce(function(t,n){return t[e[n]]="&"+n+";",t},{})}function i(e){var t=[],n=[];return Object.keys(e).forEach(function(e){1===e.length?t.push("\\"+e):n.push(e)}),n.unshift("["+t.join("")+"]"),new RegExp(n.join("|"),"g")}function o(e){return"&#x"+e.charCodeAt(0).toString(16).toUpperCase()+";"}function a(e){var t=e.charCodeAt(0),n=e.charCodeAt(1),r=1024*(t-55296)+n-56320+65536;return"&#x"+r.toString(16).toUpperCase()+";"}function s(e,t){function n(t){return e[t]}return function(e){return e.replace(t,n).replace(d,a).replace(h,o)}}function u(e){return e.replace(m,o).replace(d,a).replace(h,o)}var c=r(n(1148)),l=i(c);t.XML=s(c,l);var p=r(n(1146)),f=i(p);t.HTML=s(p,f);var h=/[^\0-\x7F]/g,d=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,m=i(c);t.escape=u},function(e,t,n){function r(e){var t=Object.keys(e).join("|"),n=o(e);t+="|#[xX][\\da-fA-F]+|#\\d+";var r=new RegExp("&(?:"+t+");","g");return function(e){return String(e).replace(r,n)}}function i(e,t){return e<t?1:-1}function o(e){return function(t){return"#"===t.charAt(1)?c("X"===t.charAt(2)||"x"===t.charAt(2)?parseInt(t.substr(3),16):parseInt(t.substr(2),10)):e[t.slice(1,-1)]}}var a=n(1146),s=n(1147),u=n(1148),c=n(1144),l=r(u),p=r(a),f=function(){function e(e){return";"!==e.substr(-1)&&(e+=";"),l(e)}for(var t=Object.keys(s).sort(i),n=Object.keys(a).sort(i),r=0,u=0;r<n.length;r++)t[u]===n[r]?(n[r]+=";?",u++):n[r]+=";";var c=new RegExp("&(?:"+n.join("|")+"|#[xX][\\da-fA-F]+;?|#\\d+;?)","g"),l=o(a);return function(t){return String(t).replace(c,e)}}();e.exports={XML:l,HTML:f,HTMLStrict:p}},function(e,t){var n=t.getChildren=function(e){return e.children},r=t.getParent=function(e){return e.parent};t.getSiblings=function(e){var t=r(e);return t?n(t):[e]},t.getAttributeValue=function(e,t){return e.attribs&&e.attribs[t]},t.hasAttrib=function(e,t){return!!e.attribs&&hasOwnProperty.call(e.attribs,t)},t.getName=function(e){return e.name}},function(e,t){t.removeElement=function(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children;t.splice(t.lastIndexOf(e),1)}},t.replaceElement=function(e,t){var n=t.prev=e.prev;n&&(n.next=t);var r=t.next=e.next;r&&(r.prev=t);var i=t.parent=e.parent;if(i){var o=i.children;o[o.lastIndexOf(e)]=t}},t.appendChild=function(e,t){if(t.parent=e,1!==e.children.push(t)){var n=e.children[e.children.length-2];n.next=t,t.prev=n,t.next=null}},t.append=function(e,t){var n=e.parent,r=e.next;if(t.next=r,t.prev=e,e.next=t,t.parent=n,r){if(r.prev=t,n){var i=n.children;i.splice(i.lastIndexOf(r),0,t)}}else n&&n.children.push(t)},t.prepend=function(e,t){var n=e.parent;if(n){var r=n.children;r.splice(r.lastIndexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=n,t.prev=e.prev,t.next=e,e.prev=t}},function(e,t,n){function r(e,t,n,r){return Array.isArray(t)||(t=[t]),"number"==typeof r&&isFinite(r)||(r=1/0),i(e,t,n!==!1,r)}function i(e,t,n,r){for(var o,a=[],s=0,u=t.length;s<u&&!(e(t[s])&&(a.push(t[s]),--r<=0))&&(o=t[s].children,!(n&&o&&o.length>0&&(o=i(e,o,n,r),a=a.concat(o),r-=o.length,r<=0)));s++);return a}function o(e,t){for(var n=0,r=t.length;n<r;n++)if(e(t[n]))return t[n];return null}function a(e,t){for(var n=null,r=0,i=t.length;r<i&&!n;r++)c(t[r])&&(e(t[r])?n=t[r]:t[r].children.length>0&&(n=a(e,t[r].children)));return n}function s(e,t){for(var n=0,r=t.length;n<r;n++)if(c(t[n])&&(e(t[n])||t[n].children.length>0&&s(e,t[n].children)))return!0;return!1}function u(e,t){for(var n=[],r=[t];r.length;){for(var i=r.pop(),o=0,a=i.length;o<a;o++)c(i[o])&&e(i[o])&&n.push(i[o]);for(;a-- >0;)i[a].children&&i[a].children.length>0&&r.push(i[a].children)}return n}var c=n(1150).isTag;e.exports={filter:r,find:i,findOneChild:o,findOne:a,existsOne:s,findAll:u}},function(e,t,n){function r(e,t){return"function"==typeof t?function(n){return n.attribs&&t(n.attribs[e])}:function(n){return n.attribs&&n.attribs[e]===t}}function i(e,t){return function(n){return e(n)||t(n)}}var o=n(1150),a=t.isTag=o.isTag;t.testElement=function(e,t){for(var n in e)if(e.hasOwnProperty(n)){if("tag_name"===n){if(!a(t)||!e.tag_name(t.name))return!1}else if("tag_type"===n){if(!e.tag_type(t.type))return!1}else if("tag_contains"===n){if(a(t)||!e.tag_contains(t.data))return!1}else if(!t.attribs||!e[n](t.attribs[n]))return!1}else;return!0};var s={tag_name:function(e){return"function"==typeof e?function(t){return a(t)&&e(t.name)}:"*"===e?a:function(t){return a(t)&&t.name===e}},tag_type:function(e){return"function"==typeof e?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return"function"==typeof e?function(t){return!a(t)&&e(t.data)}:function(t){return!a(t)&&t.data===e}}};t.getElements=function(e,t,n,o){var a=Object.keys(e).map(function(t){var n=e[t];return t in s?s[t](n):r(t,n)});return 0===a.length?[]:this.filter(a.reduce(i),t,n,o)},t.getElementById=function(e,t,n){return Array.isArray(t)||(t=[t]),this.findOne(r("id",e),t,n!==!1)},t.getElementsByTagName=function(e,t,n,r){return this.filter(s.tag_name(e),t,n,r)},t.getElementsByTagType=function(e,t,n,r){return this.filter(s.tag_type(e),t,n,r)}},function(e,t){t.removeSubsets=function(e){for(var t,n,r,i=e.length;--i>-1;){for(t=n=e[i],e[i]=null,r=!0;n;){if(e.indexOf(n)>-1){r=!1,e.splice(i,1);break}n=n.parent}r&&(e[i]=t)}return e};var n={DISCONNECTED:1,PRECEDING:2,FOLLOWING:4,CONTAINS:8,CONTAINED_BY:16},r=t.compareDocumentPosition=function(e,t){var r,i,o,a,s,u,c=[],l=[];if(e===t)return 0;for(r=e;r;)c.unshift(r),r=r.parent;for(r=t;r;)l.unshift(r),r=r.parent;for(u=0;c[u]===l[u];)u++;return 0===u?n.DISCONNECTED:(i=c[u-1],o=i.children,a=c[u],s=l[u],o.indexOf(a)>o.indexOf(s)?i===t?n.FOLLOWING|n.CONTAINED_BY:n.FOLLOWING:i===e?n.PRECEDING|n.CONTAINS:n.PRECEDING)};t.uniqueSort=function(e){var t,i,o=e.length;for(e=e.slice();--o>-1;)t=e[o],i=e.indexOf(t),i>-1&&i<o&&e.splice(o,1);return e.sort(function(e,t){var i=r(e,t);return i&n.PRECEDING?-1:i&n.FOLLOWING?1:0}),e}},function(e,t,n){function r(e){this._cbs=e||{},this.events=[]}e.exports=r;var i=n(1141).EVENTS;Object.keys(i).forEach(function(e){if(0===i[e])e="on"+e,r.prototype[e]=function(){this.events.push([e]),this._cbs[e]&&this._cbs[e]()};else if(1===i[e])e="on"+e,r.prototype[e]=function(t){this.events.push([e,t]),this._cbs[e]&&this._cbs[e](t)};else{if(2!==i[e])throw Error("wrong number of arguments");e="on"+e,r.prototype[e]=function(t,n){this.events.push([e,t,n]),this._cbs[e]&&this._cbs[e](t,n)}}}),r.prototype.onreset=function(){this.events=[],this._cbs.onreset&&this._cbs.onreset()},r.prototype.restart=function(){this._cbs.onreset&&this._cbs.onreset();for(var e=0,t=this.events.length;e<t;e++)if(this._cbs[this.events[e][0]]){var n=this.events[e].length;1===n?this._cbs[this.events[e][0]]():2===n?this._cbs[this.events[e][0]](this.events[e][1]):this._cbs[this.events[e][0]](this.events[e][1],this.events[e][2])}}},function(e,t){function n(){for(var e={},t=0;t<arguments.length;t++){var n=arguments[t];for(var i in n)r.call(n,i)&&(e[i]=n[i])}return e}e.exports=n;var r=Object.prototype.hasOwnProperty},function(e,t){e.exports=function(e){return e.replace(/[-\\^$*+?.()|[\]{}]/g,"\\$&")}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(486),o=r(i),a=n(145),s=r(a),u=n(146),c=r(u),l=n(489),p=r(l),f=n(490),h=r(f),d=n(498),m=r(d),v=function(e){function t(){return(0,s.default)(this,t),(0,p.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,h.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props,t=e.specSelectors,n=e.specActions,r=e.getComponent,i=t.info(),o=t.url(),a=t.basePath(),s=t.host(),u=t.securityDefinitions(),c=t.externalDocs(),l=t.schemes(),p=r("info"),f=r("operations",!0),h=r("models",!0),d=r("authorizeBtn",!0),v=r("Row"),y=r("Col"),g=r("errors",!0),_=r("schemes"),b=!t.specStr();return b?m.default.createElement("h4",null,"No spec provided."):m.default.createElement("div",{className:"swagger-ui"},m.default.createElement("div",null,m.default.createElement(g,null),m.default.createElement(v,{className:"information-container"},m.default.createElement(y,{mobile:12},i.count()?m.default.createElement(p,{info:i,url:o,host:s,basePath:a,externalDocs:c,getComponent:r}):null)),l&&l.size||u?m.default.createElement("div",{className:"scheme-container"},m.default.createElement(y,{className:"schemes wrapper",mobile:12},l&&l.size?m.default.createElement(_,{schemes:l,specActions:n}):null,u?m.default.createElement(d,null):null)):null,m.default.createElement(v,null,m.default.createElement(y,{mobile:12,desktop:12},m.default.createElement(f,null))),m.default.createElement(v,null,m.default.createElement(y,{mobile:12,desktop:12},m.default.createElement(h,null)))))}}]),t}(m.default.Component);v.propTypes={errSelectors:d.PropTypes.object.isRequired,errActions:d.PropTypes.object.isRequired,specActions:d.PropTypes.object.isRequired,specSelectors:d.PropTypes.object.isRequired,layoutSelectors:d.PropTypes.object.isRequired,layoutActions:d.PropTypes.object.isRequired,getComponent:d.PropTypes.func.isRequired},t.default=v},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.JsonSchema_boolean=t.JsonSchema_array=t.JsonSchema_string=t.JsonSchemaForm=void 0;var i=n(141),o=r(i),a=n(446),s=r(a),u=n(486),c=r(u),l=n(145),p=r(l),f=n(146),h=r(f),d=n(489),m=r(d),v=n(490),y=r(v),g=n(498),_=r(g),b=n(1027),x=r(b),w=n(168),k=function(){},S={getComponent:g.PropTypes.func.isRequired,value:g.PropTypes.any,onChange:g.PropTypes.func,keyName:g.PropTypes.any,fn:g.PropTypes.object.isRequired,schema:g.PropTypes.object,required:g.PropTypes.bool,description:g.PropTypes.any},E={value:"",onChange:k,schema:{},keyName:"",required:!1},C=t.JsonSchemaForm=function(e){function t(){return(0,p.default)(this,t),(0,m.default)(this,(t.__proto__||(0,c.default)(t)).apply(this,arguments))}return(0,y.default)(t,e),(0,h.default)(t,[{key:"render",value:function(){var e=this.props,t=e.schema,n=e.value,r=e.onChange,i=e.getComponent,o=e.fn;t.toJS&&(t=t.toJS());var a=t,u=a.type,c=a.format,l=void 0===c?"":c,p=i("JsonSchema_"+u+"_"+l)||i("JsonSchema_"+u)||i("JsonSchema_string");return _.default.createElement(p,(0,s.default)({},this.props,{fn:o,getComponent:i,value:n,onChange:r,schema:t}))}}]),t}(g.Component);C.propTypes=S,C.defaultProps=E;var A=t.JsonSchema_string=function(e){function t(){var e,n,r,i;(0,p.default)(this,t);for(var o=arguments.length,a=Array(o),s=0;s<o;s++)a[s]=arguments[s];return n=r=(0,m.default)(this,(e=t.__proto__||(0,c.default)(t)).call.apply(e,[this].concat(a))),r.onChange=function(e){var t="file"===r.props.schema.type?e.target.files[0]:e.target.value;r.props.onChange(t,r.props.keyName)},r.onEnumChange=function(e){return r.props.onChange(e)},i=n,(0,m.default)(r,i)}return(0,y.default)(t,e),(0,h.default)(t,[{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.value,r=e.schema,i=e.required,o=e.description,a=r.enum,s=r.errors||[];if(a){var u=t("Select");return _.default.createElement(u,{allowedValues:a,value:n,allowEmptyValue:!i,onChange:this.onEnumChange})}var c="formData"===r.in&&!("FormData"in window),l=t("Input");return"file"===r.type?_.default.createElement(l,{type:"file",className:s.length?"invalid":"",onChange:this.onChange,disabled:c}):_.default.createElement(l,{type:"password"===r.format?"password":"text",className:s.length?"invalid":"",value:n,placeholder:o,onChange:this.onChange,disabled:c})}}]),t}(g.Component);A.propTypes=S,A.defaultProps=E;var T=t.JsonSchema_array=function(e){function t(e,n){(0,p.default)(this,t);var r=(0,m.default)(this,(t.__proto__||(0,c.default)(t)).call(this,e,n));return r.onChange=function(){return r.props.onChange(r.state.value)},r.onItemChange=function(e,t){r.setState(function(n){return{value:n.value.set(t,e)}},r.onChange)},r.removeItem=function(e){r.setState(function(t){return{value:t.value.remove(e)}},r.onChange)},r.addItem=function(){r.setState(function(e){return e.value=e.value||(0,w.List)(),{value:e.value.push("")}},r.onChange)},r.onEnumChange=function(e){r.setState(function(){return{value:e}},r.onChange)},r.state={value:e.value},r}return(0,y.default)(t,e),(0,h.default)(t,[{key:"componentWillReceiveProps",value:function(e){e.value!==this.state.value&&this.setState({value:e.value})}},{key:"shouldComponentUpdate",value:function(e,t){return(0,x.default)(this,e,t)}},{key:"render",value:function(){var e=this,t=this.props,n=t.getComponent,r=t.required,i=t.schema,a=t.fn,s=a.inferSchema(i.items),u=n("JsonSchemaForm"),c=n("Button"),l=s.enum,p=this.state.value;if(l){var f=n("Select");return _.default.createElement(f,{multiple:!0,value:p,allowedValues:l,allowEmptyValue:!r,onChange:this.onEnumChange})}var h=i.errors||[];return _.default.createElement("div",null,!p||p.count()<1?h.length?_.default.createElement("span",{style:{color:"red",fortWeight:"bold"}},h[0]):null:p.map(function(t,r){var i=(0,o.default)({},s);if(h.length){var l=h.filter(function(e){return e.index===r});l.length&&(i.errors=[l[0].error+r])}return _.default.createElement("div",{key:r,className:"json-schema-form-item"},_.default.createElement(u,{fn:a,getComponent:n,value:t,onChange:function(t){return e.onItemChange(t,r)},schema:i}),_.default.createElement(c,{className:"json-schema-form-item-remove",onClick:function(){return e.removeItem(r)}}," - "))}).toArray(),_.default.createElement(c,{className:"json-schema-form-item-add",onClick:this.addItem}," Add item "))}}]),t}(g.Component);T.propTypes=S,T.defaultProps=E;var D=t.JsonSchema_boolean=function(e){function t(){var e,n,r,i;(0,p.default)(this,t);for(var o=arguments.length,a=Array(o),s=0;s<o;s++)a[s]=arguments[s];return n=r=(0,m.default)(this,(e=t.__proto__||(0,c.default)(t)).call.apply(e,[this].concat(a))),r.onEnumChange=function(e){return r.props.onChange(e)},i=n,(0,m.default)(r,i)}return(0,y.default)(t,e),(0,h.default)(t,[{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.required,r=e.value,i=t("Select");return _.default.createElement(i,{value:String(r),allowedValues:(0,w.fromJS)(["true","false"]),allowEmptyValue:!n,onChange:this.onEnumChange})}}]),t}(g.Component);D.propTypes=S,D.defaultProps=E},function(e,t,n){"use strict";var r=n(183),i=n(1176);i.keys().forEach(function(t){if("./index.js"!==t){var n=i(t);e.exports[(0,r.pascalCaseFilename)(t)]=n.default?n.default:n}})},function(e,t,n){function r(e){return n(i(e))}function i(e){return o[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var o={"./all.js":1175,"./ast/ast.js":729,"./ast/index.js":728,"./ast/jump-to-path.jsx":761,"./auth/actions.js":956,"./auth/index.js":954,"./auth/reducers.js":955,"./auth/selectors.js":957,"./auth/spec-wrap-actions.js":958,"./download-url.js":1010,"./err/actions.js":176,"./err/error-transformers/hook.js":422,"./err/error-transformers/transformers/not-of-type.js":426,"./err/error-transformers/transformers/parameter-oneof.js":427,"./err/error-transformers/transformers/strip-instance.js":428,"./err/index.js":416,"./err/reducers.js":417,"./err/selectors.js":429,"./layout/actions.js":433,"./layout/index.js":431,"./layout/reducers.js":432,"./layout/selectors.js":434,"./logs/index.js":727,"./samples/fn.js":322,"./samples/index.js":726,"./spec/actions.js":445,"./spec/index.js":443,"./spec/reducers.js":444,"./spec/selectors.js":482,"./spec/wrap-actions.js":483,"./split-pane-mode/components/index.js":962,"./split-pane-mode/components/split-pane-mode.jsx":964,"./split-pane-mode/index.js":961,"./swagger-js/index.js":762,"./util/index.js":959,"./view/index.js":484,"./view/root-injects.js":485};r.keys=function(){return Object.keys(o)},r.resolve=i,e.exports=r,r.id=1176},function(e,t,n,r){var i=n(r),o=i.Symbol;e.exports=o},function(e,t,n,r){var i=n(r),o="object"==typeof self&&self&&self.Object===Object&&self,a=i||o||Function("return this")();e.exports=a},function(e,t,n,r){var i=n(r),o=i(Object.getPrototypeOf,Object);e.exports=o},function(e,t,n,r,i,o){function a(){this.size=0,this.__data__={hash:new s,map:new(c||u),string:new s}}var s=n(r),u=n(i),c=n(o);e.exports=a},function(e,t,n,r){function i(){this.__data__=o?o(null):{},this.size=0}var o=n(r);e.exports=i},function(e,t,n,r){var i=n(r),o=i(Object,"create");e.exports=o},function(e,t,n,r,i){function o(e,t){var n=s(e,t);return a(n)?n:void 0}var a=n(r),s=n(i);e.exports=o},function(e,t,n,r,i,o,a){function s(e){if(!l(e)||c(e))return!1;var t=u(e)?g:h;return t.test(p(e))}var u=n(r),c=n(i),l=n(o),p=n(a),f=/[\\^$.*+?()[\]{}|]/g,h=/^\[object .+?Constructor\]$/,d=Function.prototype,m=Object.prototype,v=d.toString,y=m.hasOwnProperty,g=RegExp("^"+v.call(y).replace(f,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=s},function(e,t,n,r){function i(e){return!!a&&a in e}var o=n(r),a=function(){var e=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=i},function(e,t,n,r){var i=n(r),o=i["__core-js_shared__"];e.exports=o},function(e,t,n,r){function i(e){var t=this.__data__;if(o){var n=t[e];return n===a?void 0:n}return u.call(t,e)?t[e]:void 0}var o=n(r),a="__lodash_hash_undefined__",s=Object.prototype,u=s.hasOwnProperty;e.exports=i},function(e,t,n,r){function i(e){var t=this.__data__;return o?void 0!==t[e]:s.call(t,e)}var o=n(r),a=Object.prototype,s=a.hasOwnProperty;e.exports=i},function(e,t,n,r){function i(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=o&&void 0===t?a:t,this}var o=n(r),a="__lodash_hash_undefined__";e.exports=i},function(e,t,n,r){function i(e){var t=this.__data__,n=o(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():s.call(t,n,1),--this.size,!0}var o=n(r),a=Array.prototype,s=a.splice;e.exports=i},function(e,t,n,r){function i(e,t){for(var n=e.length;n--;)if(o(e[n][0],t))return n;return-1}var o=n(r);e.exports=i},function(e,t,n,r){function i(e){var t=this.__data__,n=o(t,e);return n<0?void 0:t[n][1]}var o=n(r);e.exports=i},function(e,t,n,r){function i(e){return o(this.__data__,e)>-1}var o=n(r);e.exports=i},function(e,t,n,r){function i(e,t){var n=this.__data__,r=o(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var o=n(r);e.exports=i},function(e,t,n,r,i){var o=n(r),a=n(i),s=o(a,"Map");e.exports=s},function(e,t,n,r){function i(e){var t=o(this,e).delete(e);return this.size-=t?1:0,t}var o=n(r);e.exports=i},function(e,t,n,r){function i(e,t){var n=e.__data__;return o(t)?n["string"==typeof t?"string":"hash"]:n.map}var o=n(r);e.exports=i},function(e,t,n,r){function i(e){return o(this,e).get(e)}var o=n(r);e.exports=i},function(e,t,n,r){function i(e){return o(this,e).has(e)}var o=n(r);e.exports=i},function(e,t,n,r){function i(e,t){var n=o(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var o=n(r);e.exports=i},function(e,t,n,r,i,o){function a(e){return function(t,n,r){var i=Object(t);if(!u(t)){var o=s(n,3);t=c(t),n=function(e){return o(i[e],e,i)}}var a=e(t,n,r);return a>-1?i[o?t[a]:a]:void 0}}var s=n(r),u=n(i),c=n(o);e.exports=a},function(e,t,n,r,i,o,a,s){function u(e){return"function"==typeof e?e:null==e?p:"object"==typeof e?f(e)?l(e[0],e[1]):c(e):h(e)}var c=n(r),l=n(i),p=n(o),f=n(a),h=n(s);e.exports=u},function(e,t,n,r,i,o){function a(e){var t=u(e);return 1==t.length&&t[0][2]?c(t[0][0],t[0][1]):function(n){return n===e||s(n,e,t)}}var s=n(r),u=n(i),c=n(o);e.exports=a},function(e,t,n,r,i,o,a,s,u){function c(e){var t=this.__data__=new l(e);this.size=t.size}var l=n(r),p=n(i),f=n(o),h=n(a),d=n(s),m=n(u);c.prototype.clear=p,c.prototype.delete=f,c.prototype.get=h,c.prototype.has=d,c.prototype.set=m,e.exports=c},function(e,t,n,r){function i(){this.__data__=new o,this.size=0}var o=n(r);e.exports=i},function(e,t,n,r,i,o){function a(e,t){var n=this.__data__;if(n instanceof s){var r=n.__data__;if(!u||r.length<l-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new c(r)}return n.set(e,t),this.size=n.size,this}var s=n(r),u=n(i),c=n(o),l=200;e.exports=a},function(e,t,n,r){var i=n(r),o=i.Uint8Array;e.exports=o},function(e,t,n,r,i,o){function a(e){return c(e)?s(e):u(e)}var s=n(r),u=n(i),c=n(o);e.exports=a},function(e,t,n,r,i){(function(e){var o=n(r),a=n(i),s="object"==typeof t&&t&&!t.nodeType&&t,u=s&&"object"==typeof e&&e&&!e.nodeType&&e,c=u&&u.exports===s,l=c?o.Buffer:void 0,p=l?l.isBuffer:void 0,f=p||a;e.exports=f}).call(t,n(161)(e))},function(e,t,n,r,i,o){var a=n(r),s=n(i),u=n(o),c=u&&u.isTypedArray,l=c?s(c):a;e.exports=l},function(e,t,n,r,i){function o(e){if(!a(e))return s(e);var t=[];for(var n in Object(e))c.call(e,n)&&"constructor"!=n&&t.push(n);return t}var a=n(r),s=n(i),u=Object.prototype,c=u.hasOwnProperty;e.exports=o},function(e,t,n,r){var i=n(r),o=i(Object.keys,Object);e.exports=o},function(e,t,n,r,i){function o(e){return null!=e&&s(e.length)&&!a(e)}var a=n(r),s=n(i);e.exports=o},function(e,t,n,r,i){var o=n(r),a=n(i),s=o(a,"DataView");e.exports=s},function(e,t,n,r,i){var o=n(r),a=n(i),s=o(a,"Promise");e.exports=s},function(e,t,n,r,i){var o=n(r),a=n(i),s=o(a,"Set");e.exports=s},function(e,t,n,r,i){var o=n(r),a=n(i),s=o(a,"WeakMap");e.exports=s},function(e,t,n,r,i){function o(e){for(var t=s(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,a(i)]}return t}var a=n(r),s=n(i);e.exports=o},function(e,t,n,r){function i(e){return e===e&&!o(e)}var o=n(r);e.exports=i},function(e,t,n,r){function i(e,t,n){var r=null==e?void 0:o(e,t);return void 0===r?n:r}var o=n(r);e.exports=i},function(e,t,n,r,i){function o(e,t){if(a(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!s(e))||(c.test(e)||!u.test(e)||null!=t&&e in Object(t))}var a=n(r),s=n(i),u=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,c=/^\w*$/;e.exports=o},function(e,t,n,r){function i(e){var t=o(e,function(e){return n.size===a&&n.clear(),e}),n=t.cache;return t}var o=n(r),a=500;e.exports=i},function(e,t,n,r){function i(e){if("string"==typeof e||o(e))return e;var t=e+"";return"0"==t&&1/e==-a?"-0":t}var o=n(r),a=1/0;e.exports=i},function(e,t,n,r,i){function o(e,t){return null!=e&&s(e,t,a)}var a=n(r),s=n(i);e.exports=o},function(e,t,n,r,i,o,a){function s(e){return l(e)?u(p(e)):c(e)}var u=n(r),c=n(i),l=n(o),p=n(a);e.exports=s},function(e,t,n,r){function i(e){return function(t){return o(t,e)}}var o=n(r);e.exports=i},function(e,t,n,r){function i(e){var t=o(e),n=t%1;return t===t?n?t-n:t:0}var o=n(r);e.exports=i},function(e,t,n,r){function i(e){if(!e)return 0===e?e:0;if(e=o(e),e===a||e===-a){var t=e<0?-1:1;return t*s}return e===e?e:0}var o=n(r),a=1/0,s=1.7976931348623157e308;e.exports=i},function(e,t,n,r,i){function o(e){if("number"==typeof e)return e;if(s(e))return u;if(a(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=a(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(c,"");var n=p.test(e);return n||f.test(e)?h(e.slice(2),n?2:8):l.test(e)?u:+e}var a=n(r),s=n(i),u=NaN,c=/^\s+|\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,f=/^0o[0-7]+$/i,h=parseInt;e.exports=o},function(e,t,n,r,i,o,a){function s(e,t,n){if(!p(n))return!1;var r=typeof t;return!!("number"==r?c(n)&&l(t,n.length):"string"==r&&t in n)&&u(n[t],e)}var u=n(r),c=n(i),l=n(o),p=n(a);e.exports=s},function(e,t,n,r){"use strict";var i=n(r),o=(n(508),function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)}),a=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},s=function(e,t,n){var r=this;if(r.instancePool.length){var i=r.instancePool.pop();return r.call(i,e,t,n),i}return new r(e,t,n)},u=function(e,t,n,r){var i=this;if(i.instancePool.length){var o=i.instancePool.pop();return i.call(o,e,t,n,r),o}return new i(e,t,n,r)},c=function(e){var t=this;e instanceof t?void 0:i("25"),e.destructor(),t.instancePool.length<t.poolSize&&t.instancePool.push(e)},l=10,p=o,f=function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||p,n.poolSize||(n.poolSize=l),n.release=c,n},h={addPoolingTo:f,oneArgumentPooler:o,twoArgumentPooler:a,threeArgumentPooler:s,fourArgumentPooler:u};e.exports=h},function(e,t,n,r){e.exports=n(r)()},function(e,t,n,r,i){function o(e,t,n){var r=e[t];c.call(e,t)&&s(r,n)&&(void 0!==n||t in e)||a(e,t,n)}var a=n(r),s=n(i),u=Object.prototype,c=u.hasOwnProperty;e.exports=o},function(e,t,n,r,i){function o(e,t){return e&&a(t,s(t),e)}var a=n(r),s=n(i);e.exports=o},function(e,t,n,r,i){function o(e,t,n,r){var i=!n;n||(n={});for(var o=-1,u=t.length;++o<u;){var c=t[o],l=r?r(n[c],e[c],c,n,e):void 0;void 0===l&&(l=e[c]),i?s(n,c,l):a(n,c,l)}return n}var a=n(r),s=n(i);e.exports=o},function(e,t,n,r){(function(e){function i(e,t){if(t)return e.slice();var n=e.length,r=l?l(n):new e.constructor(n);return e.copy(r),r}var o=n(r),a="object"==typeof t&&t&&!t.nodeType&&t,s=a&&"object"==typeof e&&e&&!e.nodeType&&e,u=s&&s.exports===a,c=u?o.Buffer:void 0,l=c?c.allocUnsafe:void 0;e.exports=i}).call(t,n(161)(e))},function(e,t,n,r,i,o){function a(e){return s(e,c,u)}var s=n(r),u=n(i),c=n(o);e.exports=a},function(e,t,n,r,i){function o(e,t,n){var r=t(e);return s(e)?r:a(r,n(e))}var a=n(r),s=n(i);e.exports=o},function(e,t,n,r,i,o,a,s,u,c){function l(e,t,n,r){var i=e.constructor;switch(t){case C:return p(e);case g:case _:return new i(+e);case A:return f(e,r);case T:case D:case M:case O:case P:case I:case N:case R:case j:return y(e,r);case b:return h(e,r,n);case x:case S:return new i(e);case w:return d(e);case k:return m(e,r,n);case E:return v(e)}}var p=n(r),f=n(i),h=n(o),d=n(a),m=n(s),v=n(u),y=n(c),g="[object Boolean]",_="[object Date]",b="[object Map]",x="[object Number]",w="[object RegExp]",k="[object Set]",S="[object String]",E="[object Symbol]",C="[object ArrayBuffer]",A="[object DataView]",T="[object Float32Array]",D="[object Float64Array]",M="[object Int8Array]",O="[object Int16Array]",P="[object Int32Array]",I="[object Uint8Array]",N="[object Uint8ClampedArray]",R="[object Uint16Array]",j="[object Uint32Array]";e.exports=l},function(e,t,n,r){function i(e){var t=new e.constructor(e.byteLength);return new o(t).set(new o(e)),t}var o=n(r);e.exports=i},function(e,t,n,r){function i(e,t){var n=t?o(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}var o=n(r);e.exports=i},function(e,t,n,r){function i(e){return s?Object(s.call(e)):{}}var o=n(r),a=o?o.prototype:void 0,s=a?a.valueOf:void 0;e.exports=i},function(e,t,n,r){function i(e,t){var n=t?o(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}var o=n(r);e.exports=i},function(e,t,n,r,i,o){function a(e){return"function"!=typeof e.constructor||c(e)?{}:s(u(e)); +}var s=n(r),u=n(i),c=n(o);e.exports=a},function(e,t,n,r,i,o){function a(e){return c(u(e,void 0,s),e+"")}var s=n(r),u=n(i),c=n(o);e.exports=a},function(e,t,n,r,i){function o(e,t,n,r,i){var u=-1,c=e.length;for(n||(n=s),i||(i=[]);++u<c;){var l=e[u];t>0&&n(l)?t>1?o(l,t-1,n,r,i):a(i,l):r||(i[i.length]=l)}return i}var a=n(r),s=n(i);e.exports=o},function(e,t,n,r,i,o){function a(e){return c(e)||u(e)||!!(l&&e&&e[l])}var s=n(r),u=n(i),c=n(o),l=s?s.isConcatSpreadable:void 0;e.exports=a},function(e,t,n,r){function i(e,t,n){return t=a(void 0===t?e.length-1:t,0),function(){for(var r=arguments,i=-1,s=a(r.length-t,0),u=Array(s);++i<s;)u[i]=r[t+i];i=-1;for(var c=Array(t+1);++i<t;)c[i]=r[i];return c[t]=n(u),o(e,this,c)}}var o=n(r),a=Math.max;e.exports=i},function(e,t,n,r,i){var o=n(r),a=n(i),s=a(o);e.exports=s}]))}); +//# sourceMappingURL=swagger-ui-bundle.js.map \ No newline at end of file diff --git a/reference/dtr/2.6/api/swagger-ui-standalone-preset.js b/reference/dtr/2.6/api/swagger-ui-standalone-preset.js new file mode 100644 index 0000000000..0de5dea453 --- /dev/null +++ b/reference/dtr/2.6/api/swagger-ui-standalone-preset.js @@ -0,0 +1,21 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.SwaggerUIStandalonePreset=t():e.SwaggerUIStandalonePreset=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="/dist",t(0)}(function(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))switch(typeof e[t]){case"function":break;case"object":e[t]=function(t){var n=t.slice(1),r=e[t[0]];return function(e,t,i){r.apply(this,[e,t,i].concat(n))}}(e[t]);break;default:e[t]=e[e[t]]}return e}([function(e,t,n){n(1),e.exports=n(56)},function(e,t,n){"use strict";n(2)},function(e,t,n){n(3),n(17),n(30),n(36),e.exports=n(16).Promise},function(e,t,n){"use strict";var r=n(4),i={};i[n(6)("toStringTag")]="z",i+""!="[object z]"&&n(10)(Object.prototype,"toString",function(){return"[object "+r(this)+"]"},!0)},function(e,t,n){var r=n(5),i=n(6)("toStringTag"),o="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,s;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=(t=Object(e))[i])?n:o?r(t):"Object"==(s=r(t))&&"function"==typeof t.callee?"Arguments":s}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(7)("wks"),i=n(9),o=n(8).Symbol;e.exports=function(e){return r[e]||(r[e]=o&&o[e]||(o||i)("Symbol."+e))}},function(e,t,n){var r=n(8),i="__core-js_shared__",o=r[i]||(r[i]={});e.exports=function(e){return o[e]||(o[e]={})}},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){var r=n(8),i=n(11),o=n(9)("src"),s="toString",a=Function[s],u=(""+a).split(s);n(16).inspectSource=function(e){return a.call(e)},(e.exports=function(e,t,n,s){"function"==typeof n&&(n.hasOwnProperty(o)||i(n,o,e[t]?""+e[t]:u.join(String(t))),n.hasOwnProperty("name")||i(n,"name",t)),e===r?e[t]=n:(s||delete e[t],i(e,t,n))})(Function.prototype,s,function(){return"function"==typeof this&&this[o]||a.call(this)})},function(e,t,n){var r=n(12),i=n(13);e.exports=n(14)?function(e,t,n){return r.setDesc(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){var n=Object;e.exports={create:n.create,getProto:n.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:n.getOwnPropertyDescriptor,setDesc:n.defineProperty,setDescs:n.defineProperties,getKeys:n.keys,getNames:n.getOwnPropertyNames,getSymbols:n.getOwnPropertySymbols,each:[].forEach}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){e.exports=!n(15)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){var n=e.exports={version:"1.2.6"};"number"==typeof __e&&(__e=n)},function(e,t,n){"use strict";var r=n(18)(!0);n(21)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){var r=n(19),i=n(20);e.exports=function(e){return function(t,n){var o,s,a=String(i(t)),u=r(n),c=a.length;return u<0||u>=c?e?"":void 0:(o=a.charCodeAt(u),o<55296||o>56319||u+1===c||(s=a.charCodeAt(u+1))<56320||s>57343?e?a.charAt(u):o:e?a.slice(u,u+2):(o-55296<<10)+(s-56320)+65536)}}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";var r=n(22),i=n(23),o=n(10),s=n(11),a=n(26),u=n(27),c=n(28),l=n(29),h=n(12).getProto,p=n(6)("iterator"),f=!([].keys&&"next"in[].keys()),d="@@iterator",m="keys",g="values",x=function(){return this};e.exports=function(e,t,n,y,v,b,D){c(n,t,y);var w,E,k=function(e){if(!f&&e in F)return F[e];switch(e){case m:return function(){return new n(this,e)};case g:return function(){return new n(this,e)}}return function(){return new n(this,e)}},A=t+" Iterator",C=v==g,S=!1,F=e.prototype,T=F[p]||F[d]||v&&F[v],B=T||k(v);if(T){var N=h(B.call(new e));l(N,A,!0),!r&&a(F,d)&&s(N,p,x),C&&T.name!==g&&(S=!0,B=function(){return T.call(this)})}if(r&&!D||!f&&!S&&F[p]||s(F,p,B),u[t]=B,u[A]=x,v)if(w={values:C?B:k(g),keys:b?B:k(m),entries:C?k("entries"):B},D)for(E in w)E in F||o(F,E,w[E]);else i(i.P+i.F*(f||S),t,w);return w}},function(e,t){e.exports=!1},function(e,t,n){var r=n(8),i=n(16),o=n(11),s=n(10),a=n(24),u="prototype",c=function(e,t,n){var l,h,p,f,d=e&c.F,m=e&c.G,g=e&c.S,x=e&c.P,y=e&c.B,v=m?r:g?r[t]||(r[t]={}):(r[t]||{})[u],b=m?i:i[t]||(i[t]={}),D=b[u]||(b[u]={});m&&(n=t);for(l in n)h=!d&&v&&l in v,p=(h?v:n)[l],f=y&&h?a(p,r):x&&"function"==typeof p?a(Function.call,p):p,v&&!h&&s(v,l,p),b[l]!=p&&o(b,l,f),x&&D[l]!=p&&(D[l]=p)};r.core=i,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,e.exports=c},function(e,t,n){var r=n(25);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t){e.exports={}},function(e,t,n){"use strict";var r=n(12),i=n(13),o=n(29),s={};n(11)(s,n(6)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r.create(s,{next:i(1,n)}),o(e,t+" Iterator")}},function(e,t,n){var r=n(12).setDesc,i=n(26),o=n(6)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},function(e,t,n){n(31);var r=n(8),i=n(11),o=n(27),s=n(6)("iterator"),a=r.NodeList,u=r.HTMLCollection,c=a&&a.prototype,l=u&&u.prototype,h=o.NodeList=o.HTMLCollection=o.Array;c&&!c[s]&&i(c,s,h),l&&!l[s]&&i(l,s,h)},function(e,t,n){"use strict";var r=n(32),i=n(33),o=n(27),s=n(34);e.exports=n(21)(Array,"Array",function(e,t){this._t=s(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,n):"values"==t?i(0,e[n]):i(0,[n,e[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(e,t,n){var r=n(6)("unscopables"),i=Array.prototype;void 0==i[r]&&n(11)(i,r,{}),e.exports=function(e){i[r][e]=!0}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){var r=n(35),i=n(20);e.exports=function(e){return r(i(e))}},function(e,t,n){var r=n(5);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){"use strict";var r,i=n(12),o=n(22),s=n(8),a=n(24),u=n(4),c=n(23),l=n(37),h=n(38),p=n(25),f=n(39),d=n(40),m=n(45).set,g=n(46),x=n(6)("species"),y=n(47),v=n(48),b="Promise",D=s.process,w="process"==u(D),E=s[b],k=function(){},A=function(e){var t,n=new E(k);return e&&(n.constructor=function(e){e(k,k)}),(t=E.resolve(n)).catch(k),t===n},C=function(){function e(t){var n=new E(t);return m(n,e.prototype),n}var t=!1;try{if(t=E&&E.resolve&&A(),m(e,E),e.prototype=i.create(E.prototype,{constructor:{value:e}}),e.resolve(5).then(function(){})instanceof e||(t=!1),t&&n(14)){var r=!1;E.resolve(i.setDesc({},"then",{get:function(){r=!0}})),t=r}}catch(e){t=!1}return t}(),S=function(e,t){return!(!o||e!==E||t!==r)||g(e,t)},F=function(e){var t=h(e)[x];return void 0!=t?t:e},T=function(e){var t;return!(!l(e)||"function"!=typeof(t=e.then))&&t},B=function(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r}),this.resolve=p(t),this.reject=p(n)},N=function(e){try{e()}catch(e){return{error:e}}},I=function(e,t){if(!e.n){e.n=!0;var n=e.c;v(function(){for(var r=e.v,i=1==e.s,o=0,a=function(t){var n,o,s=i?t.ok:t.fail,a=t.resolve,u=t.reject;try{s?(i||(e.h=!0),n=s===!0?r:s(r),n===t.promise?u(TypeError("Promise-chain cycle")):(o=T(n))?o.call(n,a,u):a(n)):u(r)}catch(e){u(e)}};n.length>o;)a(n[o++]);n.length=0,e.n=!1,t&&setTimeout(function(){var t,n,i=e.p;P(i)&&(w?D.emit("unhandledRejection",r,i):(t=s.onunhandledrejection)?t({promise:i,reason:r}):(n=s.console)&&n.error&&n.error("Unhandled promise rejection",r)),e.a=void 0},1)})}},P=function(e){var t,n=e._d,r=n.a||n.c,i=0;if(n.h)return!1;for(;r.length>i;)if(t=r[i++],t.fail||!P(t.promise))return!1;return!0},M=function(e){var t=this;t.d||(t.d=!0,t=t.r||t,t.v=e,t.s=2,t.a=t.c.slice(),I(t,!0))},O=function(e){var t,n=this;if(!n.d){n.d=!0,n=n.r||n;try{if(n.p===e)throw TypeError("Promise can't be resolved itself");(t=T(e))?v(function(){var r={r:n,d:!1};try{t.call(e,a(O,r,1),a(M,r,1))}catch(e){M.call(r,e)}}):(n.v=e,n.s=1,I(n,!1))}catch(e){M.call({r:n,d:!1},e)}}};C||(E=function(e){p(e);var t=this._d={p:f(this,E,b),c:[],a:void 0,s:0,d:!1,v:void 0,h:!1,n:!1};try{e(a(O,t,1),a(M,t,1))}catch(e){M.call(t,e)}},n(53)(E.prototype,{then:function(e,t){var n=new B(y(this,E)),r=n.promise,i=this._d;return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,i.c.push(n),i.a&&i.a.push(n),i.s&&I(i,!1),r},catch:function(e){return this.then(void 0,e)}})),c(c.G+c.W+c.F*!C,{Promise:E}),n(29)(E,b),n(54)(b),r=n(16)[b],c(c.S+c.F*!C,b,{reject:function(e){var t=new B(this),n=t.reject;return n(e),t.promise}}),c(c.S+c.F*(!C||A(!0)),b,{resolve:function(e){if(e instanceof E&&S(e.constructor,this))return e;var t=new B(this),n=t.resolve;return n(e),t.promise}}),c(c.S+c.F*!(C&&n(55)(function(e){E.all(e).catch(function(){})})),b,{all:function(e){var t=F(this),n=new B(t),r=n.resolve,o=n.reject,s=[],a=N(function(){d(e,!1,s.push,s);var n=s.length,a=Array(n);n?i.each.call(s,function(e,i){var s=!1;t.resolve(e).then(function(e){s||(s=!0,a[i]=e,--n||r(a))},o)}):r(a)});return a&&o(a.error),n.promise},race:function(e){var t=F(this),n=new B(t),r=n.reject,i=N(function(){d(e,!1,function(e){t.resolve(e).then(n.resolve,r)})});return i&&r(i.error),n.promise}})},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var r=n(37);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e,t,n){if(!(e instanceof t))throw TypeError(n+": use the 'new' operator!");return e}},function(e,t,n){var r=n(24),i=n(41),o=n(42),s=n(38),a=n(43),u=n(44);e.exports=function(e,t,n,c){var l,h,p,f=u(e),d=r(n,c,t?2:1),m=0;if("function"!=typeof f)throw TypeError(e+" is not iterable!");if(o(f))for(l=a(e.length);l>m;m++)t?d(s(h=e[m])[0],h[1]):d(e[m]);else for(p=f.call(e);!(h=p.next()).done;)i(p,d,h.value,t)}},function(e,t,n){var r=n(38);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(t){var o=e.return;throw void 0!==o&&r(o.call(e)),t}}},function(e,t,n){var r=n(27),i=n(6)("iterator"),o=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||o[i]===e)}},function(e,t,n){var r=n(19),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},function(e,t,n){var r=n(4),i=n(6)("iterator"),o=n(27);e.exports=n(16).getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||o[r(e)]}},function(e,t,n){var r=n(12).getDesc,i=n(37),o=n(38),s=function(e,t){if(o(e),!i(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,i){try{i=n(24)(Function.call,r(Object.prototype,"__proto__").set,2),i(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return s(e,n),t?e.__proto__=n:i(e,n),e}}({},!1):void 0),check:s}},function(e,t){e.exports=Object.is||function(e,t){return e===t?0!==e||1/e===1/t:e!=e&&t!=t}},function(e,t,n){var r=n(38),i=n(25),o=n(6)("species");e.exports=function(e,t){var n,s=r(e).constructor;return void 0===s||void 0==(n=r(s)[o])?t:i(n)}},function(e,t,n){var r,i,o,s=n(8),a=n(49).set,u=s.MutationObserver||s.WebKitMutationObserver,c=s.process,l=s.Promise,h="process"==n(5)(c),p=function(){var e,t,n;for(h&&(e=c.domain)&&(c.domain=null,e.exit());r;)t=r.domain,n=r.fn,t&&t.enter(),n(),t&&t.exit(),r=r.next;i=void 0,e&&e.enter()};if(h)o=function(){c.nextTick(p)};else if(u){var f=1,d=document.createTextNode("");new u(p).observe(d,{characterData:!0}),o=function(){d.data=f=-f}}else o=l&&l.resolve?function(){l.resolve().then(p)}:function(){a.call(s,p)};e.exports=function(e){var t={fn:e,next:void 0,domain:h&&c.domain};i&&(i.next=t),r||(r=t,o()),i=t}},function(e,t,n){var r,i,o,s=n(24),a=n(50),u=n(51),c=n(52),l=n(8),h=l.process,p=l.setImmediate,f=l.clearImmediate,d=l.MessageChannel,m=0,g={},x="onreadystatechange",y=function(){var e=+this;if(g.hasOwnProperty(e)){var t=g[e];delete g[e],t()}},v=function(e){y.call(e.data)};p&&f||(p=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return g[++m]=function(){a("function"==typeof e?e:Function(e),t)},r(m),m},f=function(e){delete g[e]},"process"==n(5)(h)?r=function(e){h.nextTick(s(y,e,1))}:d?(i=new d,o=i.port2,i.port1.onmessage=v,r=s(o.postMessage,o,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(e){l.postMessage(e+"","*")},l.addEventListener("message",v,!1)):r=x in c("script")?function(e){u.appendChild(c("script"))[x]=function(){u.removeChild(this),y.call(e)}}:function(e){setTimeout(s(y,e,1),0)}),e.exports={set:p,clear:f}},function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){e.exports=n(8).document&&document.documentElement},function(e,t,n){var r=n(37),i=n(8).document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},function(e,t,n){var r=n(10);e.exports=function(e,t){for(var n in t)r(e,n,t[n]);return e}},function(e,t,n){"use strict";var r=n(8),i=n(12),o=n(14),s=n(6)("species");e.exports=function(e){var t=r[e];o&&t&&!t[s]&&i.setDesc(t,s,{configurable:!0,get:function(){return this}})}},function(e,t,n){var r=n(6)("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var o=[7],s=o[r]();s.next=function(){return{done:n=!0}},o[r]=function(){return s},e(o)}catch(e){}return n}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(57),o=r(i);n(174);var s=n(178),a=r(s),u=n(181),c=r(u),l=[a.default,c.default,function(){return{components:{StandaloneLayout:o.default}}}];e.exports=l},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(58),o=r(i),s=n(84),a=r(s),u=n(85),c=r(u),l=n(89),h=r(l),p=n(136),f=r(p),d=n(144),m=r(d),g=function(e){function t(){return(0,a.default)(this,t),(0,h.default)(this,(t.__proto__||(0,o.default)(t)).apply(this,arguments))}return(0,f.default)(t,e),(0,c.default)(t,[{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.specSelectors,r=t("Container"),i=t("Row"),o=t("Col"),s=t("Topbar",!0),a=t("BaseLayout",!0),u=t("onlineValidatorBadge",!0),c=n.loadingStatus();return m.default.createElement(r,{className:"swagger-ui"},s?m.default.createElement(s,null):null,"loading"===c&&m.default.createElement("div",{className:"info"},m.default.createElement("h4",{className:"title"},"Loading...")),"failed"===c&&m.default.createElement("div",{className:"info"},m.default.createElement("h4",{className:"title"},"Failed to load spec.")),"failedConfig"===c&&m.default.createElement("div",{className:"info",style:{maxWidth:"880px",marginLeft:"auto",marginRight:"auto",textAlign:"center"}},m.default.createElement("h4",{className:"title"},"Failed to load config.")),!c||"success"===c&&m.default.createElement(a,null),m.default.createElement(i,null,m.default.createElement(o,null,m.default.createElement(u,null))))}}]),t}(m.default.Component);g.propTypes={errSelectors:d.PropTypes.object.isRequired,errActions:d.PropTypes.object.isRequired,specActions:d.PropTypes.object.isRequired,specSelectors:d.PropTypes.object.isRequired,layoutSelectors:d.PropTypes.object.isRequired,layoutActions:d.PropTypes.object.isRequired,getComponent:d.PropTypes.func.isRequired},t.default=g},function(e,t,n){e.exports={default:n(59),__esModule:!0}},function(e,t,n){n(60),e.exports=n(71).Object.getPrototypeOf},function(e,t,n){var r=n(61),i=n(63);n(69)("getPrototypeOf",function(){return function(e){return i(r(e))}})},function(e,t,n){var r=n(62);e.exports=function(e){return Object(r(e))}},20,function(e,t,n){var r=n(64),i=n(61),o=n(65)("IE_PROTO"),s=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,o)?e[o]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?s:null}},26,function(e,t,n){var r=n(66)("keys"),i=n(68);e.exports=function(e){return r[e]||(r[e]=i(e))}},function(e,t,n){var r=n(67),i="__core-js_shared__",o=r[i]||(r[i]={});e.exports=function(e){return o[e]||(o[e]={})}},8,9,function(e,t,n){var r=n(70),i=n(71),o=n(80);e.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],s={};s[e]=t(n),r(r.S+r.F*o(function(){n(1)}),"Object",s)}},function(e,t,n){var r=n(67),i=n(71),o=n(72),s=n(74),a="prototype",u=function(e,t,n){var c,l,h,p=e&u.F,f=e&u.G,d=e&u.S,m=e&u.P,g=e&u.B,x=e&u.W,y=f?i:i[t]||(i[t]={}),v=y[a],b=f?r:d?r[t]:(r[t]||{})[a];f&&(n=t);for(c in n)l=!p&&b&&void 0!==b[c],l&&c in y||(h=l?b[c]:n[c],y[c]=f&&"function"!=typeof b[c]?n[c]:g&&l?o(h,r):x&&b[c]==h?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t[a]=e[a],t}(h):m&&"function"==typeof h?o(Function.call,h):h,m&&((y.virtual||(y.virtual={}))[c]=h,e&u.R&&v&&!v[c]&&s(v,c,h)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},function(e,t){var n=e.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},function(e,t,n){var r=n(73);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},25,function(e,t,n){var r=n(75),i=n(83);e.exports=n(79)?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(76),i=n(78),o=n(82),s=Object.defineProperty;t.f=n(79)?Object.defineProperty:function(e,t,n){if(r(e),t=o(t,!0),r(n),i)try{return s(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){var r=n(77);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},37,function(e,t,n){e.exports=!n(79)&&!n(80)(function(){return 7!=Object.defineProperty(n(81)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){e.exports=!n(80)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},15,function(e,t,n){var r=n(77),i=n(67).document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},function(e,t,n){var r=n(77);e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},13,function(e,t){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(86),o=r(i);t.default=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),(0,o.default)(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}()},function(e,t,n){e.exports={default:n(87),__esModule:!0}},function(e,t,n){n(88);var r=n(71).Object;e.exports=function(e,t,n){return r.defineProperty(e,t,n)}},function(e,t,n){var r=n(70);r(r.S+r.F*!n(79),"Object",{defineProperty:n(75).f})},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(90),o=r(i);t.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==("undefined"==typeof t?"undefined":(0,o.default)(t))&&"function"!=typeof t?e:t}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(91),o=r(i),s=n(120),a=r(s),u="function"==typeof a.default&&"symbol"==typeof o.default?function(e){return typeof e}:function(e){return e&&"function"==typeof a.default&&e.constructor===a.default&&e!==a.default.prototype?"symbol":typeof e};t.default="function"==typeof a.default&&"symbol"===u(o.default)?function(e){return"undefined"==typeof e?"undefined":u(e)}:function(e){return e&&"function"==typeof a.default&&e.constructor===a.default&&e!==a.default.prototype?"symbol":"undefined"==typeof e?"undefined":u(e)}},function(e,t,n){e.exports={default:n(92),__esModule:!0}},function(e,t,n){n(93),n(115),e.exports=n(119).f("iterator")},function(e,t,n){"use strict";var r=n(94)(!0);n(96)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){var r=n(95),i=n(62);e.exports=function(e){return function(t,n){var o,s,a=String(i(t)),u=r(n),c=a.length;return u<0||u>=c?e?"":void 0:(o=a.charCodeAt(u),o<55296||o>56319||u+1===c||(s=a.charCodeAt(u+1))<56320||s>57343?e?a.charAt(u):o:e?a.slice(u,u+2):(o-55296<<10)+(s-56320)+65536)}}},19,function(e,t,n){"use strict";var r=n(97),i=n(70),o=n(98),s=n(74),a=n(64),u=n(99),c=n(100),l=n(113),h=n(63),p=n(114)("iterator"),f=!([].keys&&"next"in[].keys()),d="@@iterator",m="keys",g="values",x=function(){return this};e.exports=function(e,t,n,y,v,b,D){c(n,t,y);var w,E,k,A=function(e){if(!f&&e in T)return T[e];switch(e){case m:return function(){return new n(this,e)};case g:return function(){return new n(this,e)}}return function(){return new n(this,e)}},C=t+" Iterator",S=v==g,F=!1,T=e.prototype,B=T[p]||T[d]||v&&T[v],N=B||A(v),I=v?S?A("entries"):N:void 0,P="Array"==t?T.entries||B:B;if(P&&(k=h(P.call(new e)),k!==Object.prototype&&(l(k,C,!0),r||a(k,p)||s(k,p,x))),S&&B&&B.name!==g&&(F=!0,N=function(){return B.call(this)}),r&&!D||!f&&!F&&T[p]||s(T,p,N),u[t]=N,u[C]=x,v)if(w={values:S?N:A(g),keys:b?N:A(m),entries:I},D)for(E in w)E in T||o(T,E,w[E]);else i(i.P+i.F*(f||F),t,w);return w}},function(e,t){e.exports=!0},function(e,t,n){e.exports=n(74)},27,function(e,t,n){"use strict";var r=n(101),i=n(83),o=n(113),s={};n(74)(s,n(114)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(s,{next:i(1,n)}),o(e,t+" Iterator")}},function(e,t,n){var r=n(76),i=n(102),o=n(111),s=n(65)("IE_PROTO"),a=function(){},u="prototype",c=function(){var e,t=n(81)("iframe"),r=o.length,i="<",s=">";for(t.style.display="none",n(112).appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write(i+"script"+s+"document.F=Object"+i+"/script"+s),e.close(),c=e.F;r--;)delete c[u][o[r]];return c()};e.exports=Object.create||function(e,t){var n;return null!==e?(a[u]=r(e),n=new a,a[u]=null,n[s]=e):n=c(),void 0===t?n:i(n,t)}},function(e,t,n){var r=n(75),i=n(76),o=n(103);e.exports=n(79)?Object.defineProperties:function(e,t){i(e);for(var n,s=o(t),a=s.length,u=0;a>u;)r.f(e,n=s[u++],t[n]);return e}},function(e,t,n){var r=n(104),i=n(111);e.exports=Object.keys||function(e){return r(e,i)}},function(e,t,n){var r=n(64),i=n(105),o=n(108)(!1),s=n(65)("IE_PROTO");e.exports=function(e,t){var n,a=i(e),u=0,c=[];for(n in a)n!=s&&r(a,n)&&c.push(n);for(;t.length>u;)r(a,n=t[u++])&&(~o(c,n)||c.push(n));return c}},function(e,t,n){var r=n(106),i=n(62);e.exports=function(e){return r(i(e))}},function(e,t,n){var r=n(107);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},5,function(e,t,n){var r=n(105),i=n(109),o=n(110);e.exports=function(e){return function(t,n,s){var a,u=r(t),c=i(u.length),l=o(s,c);if(e&&n!=n){for(;c>l;)if(a=u[l++],a!=a)return!0}else for(;c>l;l++)if((e||l in u)&&u[l]===n)return e||l||0;return!e&&-1}}},function(e,t,n){var r=n(95),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},function(e,t,n){var r=n(95),i=Math.max,o=Math.min;e.exports=function(e,t){return e=r(e),e<0?i(e+t,0):o(e,t)}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){e.exports=n(67).document&&document.documentElement},function(e,t,n){var r=n(75).f,i=n(64),o=n(114)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},function(e,t,n){var r=n(66)("wks"),i=n(68),o=n(67).Symbol,s="function"==typeof o,a=e.exports=function(e){return r[e]||(r[e]=s&&o[e]||(s?o:i)("Symbol."+e))};a.store=r},function(e,t,n){n(116);for(var r=n(67),i=n(74),o=n(99),s=n(114)("toStringTag"),a=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],u=0;u<5;u++){var c=a[u],l=r[c],h=l&&l.prototype;h&&!h[s]&&i(h,s,c),o[c]=o.Array}},function(e,t,n){"use strict";var r=n(117),i=n(118),o=n(99),s=n(105);e.exports=n(96)(Array,"Array",function(e,t){this._t=s(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,n):"values"==t?i(0,e[n]):i(0,[n,e[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(e,t){e.exports=function(){}},33,function(e,t,n){t.f=n(114)},function(e,t,n){e.exports={default:n(121),__esModule:!0}},function(e,t,n){n(122),n(133),n(134),n(135),e.exports=n(71).Symbol},function(e,t,n){"use strict";var r=n(67),i=n(64),o=n(79),s=n(70),a=n(98),u=n(123).KEY,c=n(80),l=n(66),h=n(113),p=n(68),f=n(114),d=n(119),m=n(124),g=n(125),x=n(126),y=n(129),v=n(76),b=n(105),D=n(82),w=n(83),E=n(101),k=n(130),A=n(132),C=n(75),S=n(103),F=A.f,T=C.f,B=k.f,N=r.Symbol,I=r.JSON,P=I&&I.stringify,M="prototype",O=f("_hidden"),_=f("toPrimitive"),L={}.propertyIsEnumerable,R=l("symbol-registry"),U=l("symbols"),j=l("op-symbols"),z=Object[M],J="function"==typeof N,X=r.QObject,Y=!X||!X[M]||!X[M].findChild,K=o&&c(function(){return 7!=E(T({},"a",{get:function(){return T(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=F(z,t);r&&delete z[t],T(e,t,n),r&&e!==z&&T(z,t,r)}:T,W=function(e){var t=U[e]=E(N[M]);return t._k=e,t},H=J&&"symbol"==typeof N.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof N},q=function(e,t,n){return e===z&&q(j,t,n),v(e),t=D(t,!0),v(n),i(U,t)?(n.enumerable?(i(e,O)&&e[O][t]&&(e[O][t]=!1),n=E(n,{enumerable:w(0,!1)})):(i(e,O)||T(e,O,w(1,{})),e[O][t]=!0),K(e,t,n)):T(e,t,n)},G=function(e,t){v(e);for(var n,r=x(t=b(t)),i=0,o=r.length;o>i;)q(e,n=r[i++],t[n]);return e},V=function(e,t){return void 0===t?E(e):G(E(e),t)},$=function(e){var t=L.call(this,e=D(e,!0));return!(this===z&&i(U,e)&&!i(j,e))&&(!(t||!i(this,e)||!i(U,e)||i(this,O)&&this[O][e])||t)},Z=function(e,t){if(e=b(e),t=D(t,!0),e!==z||!i(U,t)||i(j,t)){var n=F(e,t);return!n||!i(U,t)||i(e,O)&&e[O][t]||(n.enumerable=!0),n}},Q=function(e){for(var t,n=B(b(e)),r=[],o=0;n.length>o;)i(U,t=n[o++])||t==O||t==u||r.push(t);return r},ee=function(e){for(var t,n=e===z,r=B(n?j:b(e)),o=[],s=0;r.length>s;)!i(U,t=r[s++])||n&&!i(z,t)||o.push(U[t]);return o};J||(N=function(){if(this instanceof N)throw TypeError("Symbol is not a constructor!");var e=p(arguments.length>0?arguments[0]:void 0),t=function(n){this===z&&t.call(j,n),i(this,O)&&i(this[O],e)&&(this[O][e]=!1),K(this,e,w(1,n))};return o&&Y&&K(z,e,{configurable:!0,set:t}),W(e)},a(N[M],"toString",function(){return this._k}),A.f=Z,C.f=q,n(131).f=k.f=Q,n(128).f=$,n(127).f=ee,o&&!n(97)&&a(z,"propertyIsEnumerable",$,!0),d.f=function(e){return W(f(e))}),s(s.G+s.W+s.F*!J,{Symbol:N});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ne=0;te.length>ne;)f(te[ne++]);for(var te=S(f.store),ne=0;te.length>ne;)m(te[ne++]);s(s.S+s.F*!J,"Symbol",{for:function(e){return i(R,e+="")?R[e]:R[e]=N(e)},keyFor:function(e){if(H(e))return g(R,e);throw TypeError(e+" is not a symbol!")},useSetter:function(){Y=!0},useSimple:function(){Y=!1}}),s(s.S+s.F*!J,"Object",{create:V,defineProperty:q,defineProperties:G,getOwnPropertyDescriptor:Z,getOwnPropertyNames:Q,getOwnPropertySymbols:ee}),I&&s(s.S+s.F*(!J||c(function(){var e=N();return"[null]"!=P([e])||"{}"!=P({a:e})||"{}"!=P(Object(e))})),"JSON",{stringify:function(e){if(void 0!==e&&!H(e)){for(var t,n,r=[e],i=1;arguments.length>i;)r.push(arguments[i++]);return t=r[1],"function"==typeof t&&(n=t),!n&&y(t)||(t=function(e,t){if(n&&(t=n.call(this,e,t)),!H(t))return t}),r[1]=t,P.apply(I,r)}}}),N[M][_]||n(74)(N[M],_,N[M].valueOf),h(N,"Symbol"),h(Math,"Math",!0),h(r.JSON,"JSON",!0)},function(e,t,n){var r=n(68)("meta"),i=n(77),o=n(64),s=n(75).f,a=0,u=Object.isExtensible||function(){return!0},c=!n(80)(function(){return u(Object.preventExtensions({}))}),l=function(e){s(e,r,{value:{i:"O"+ ++a,w:{}}})},h=function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!o(e,r)){if(!u(e))return"F";if(!t)return"E";l(e)}return e[r].i},p=function(e,t){if(!o(e,r)){if(!u(e))return!0;if(!t)return!1;l(e)}return e[r].w},f=function(e){return c&&d.NEED&&u(e)&&!o(e,r)&&l(e),e},d=e.exports={KEY:r,NEED:!1,fastKey:h,getWeak:p,onFreeze:f}},function(e,t,n){var r=n(67),i=n(71),o=n(97),s=n(119),a=n(75).f;e.exports=function(e){var t=i.Symbol||(i.Symbol=o?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||a(t,e,{value:s.f(e)})}},function(e,t,n){var r=n(103),i=n(105);e.exports=function(e,t){for(var n,o=i(e),s=r(o),a=s.length,u=0;a>u;)if(o[n=s[u++]]===t)return n}},function(e,t,n){var r=n(103),i=n(127),o=n(128);e.exports=function(e){var t=r(e),n=i.f;if(n)for(var s,a=n(e),u=o.f,c=0;a.length>c;)u.call(e,s=a[c++])&&t.push(s);return t}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var r=n(107);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(105),i=n(131).f,o={}.toString,s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(e){try{return i(e)}catch(e){return s.slice()}};e.exports.f=function(e){return s&&"[object Window]"==o.call(e)?a(e):i(r(e))}},function(e,t,n){var r=n(104),i=n(111).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},function(e,t,n){var r=n(128),i=n(83),o=n(105),s=n(82),a=n(64),u=n(78),c=Object.getOwnPropertyDescriptor;t.f=n(79)?c:function(e,t){if(e=o(e),t=s(t,!0),u)try{return c(e,t)}catch(e){}if(a(e,t))return i(!r.f.call(e,t),e[t])}},function(e,t){},function(e,t,n){n(124)("asyncIterator")},function(e,t,n){n(124)("observable")},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(137),o=r(i),s=n(141),a=r(s),u=n(90),c=r(u);t.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+("undefined"==typeof t?"undefined":(0,c.default)(t)));e.prototype=(0,a.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0 +}}),t&&(o.default?(0,o.default)(e,t):e.__proto__=t)}},function(e,t,n){e.exports={default:n(138),__esModule:!0}},function(e,t,n){n(139),e.exports=n(71).Object.setPrototypeOf},function(e,t,n){var r=n(70);r(r.S,"Object",{setPrototypeOf:n(140).set})},function(e,t,n){var r=n(77),i=n(76),o=function(e,t){if(i(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{r=n(72)(Function.call,n(132).f(Object.prototype,"__proto__").set,2),r(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return o(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:o}},function(e,t,n){e.exports={default:n(142),__esModule:!0}},function(e,t,n){n(143);var r=n(71).Object;e.exports=function(e,t){return r.create(e,t)}},function(e,t,n){var r=n(70);r(r.S,"Object",{create:n(101)})},function(e,t,n){"use strict";e.exports=n(145)},function(e,t,n){"use strict";var r=n(146),i=n(147),o=n(156),s=n(164),a=n(158),u=n(165),c=n(170),l=n(171),h=n(173),p=a.createElement,f=a.createFactory,d=a.cloneElement,m=r,g=function(e){return e},x={Children:{map:o.map,forEach:o.forEach,count:o.count,toArray:o.toArray,only:h},Component:i.Component,PureComponent:i.PureComponent,createElement:p,cloneElement:d,isValidElement:a.isValidElement,PropTypes:u,createClass:l,createFactory:f,createMixin:g,DOM:s,version:c,__spread:m};e.exports=x},function(e,t){/* + object-assign + (c) Sindre Sorhus + @license MIT + */ +"use strict";function n(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function r(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==r.join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(e){i[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(e){return!1}}var i=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable;e.exports=r()?Object.assign:function(e,t){for(var r,a,u=n(e),c=1;c<arguments.length;c++){r=Object(arguments[c]);for(var l in r)o.call(r,l)&&(u[l]=r[l]);if(i){a=i(r);for(var h=0;h<a.length;h++)s.call(r,a[h])&&(u[a[h]]=r[a[h]])}}return u}},function(e,t,n){"use strict";function r(e,t,n){this.props=e,this.context=t,this.refs=c,this.updater=n||u}function i(e,t,n){this.props=e,this.context=t,this.refs=c,this.updater=n||u}function o(){}var s=n(148),a=n(146),u=n(149),c=(n(152),n(153));n(154),n(155);r.prototype.isReactComponent={},r.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e?s("85"):void 0,this.updater.enqueueSetState(this,e),t&&this.updater.enqueueCallback(this,t,"setState")},r.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e,"forceUpdate")};o.prototype=r.prototype,i.prototype=new o,i.prototype.constructor=i,a(i.prototype,r.prototype),i.prototype.isPureReactComponent=!0,e.exports={Component:r,PureComponent:i}},function(e,t){"use strict";function n(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);n+=" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";var i=new Error(n);throw i.name="Invariant Violation",i.framesToPop=1,i}e.exports=n},function(e,t,n){"use strict";function r(e,t){}var i=(n(150),{isMounted:function(e){return!1},enqueueCallback:function(e,t){},enqueueForceUpdate:function(e){r(e,"forceUpdate")},enqueueReplaceState:function(e,t){r(e,"replaceState")},enqueueSetState:function(e,t){r(e,"setState")}});e.exports=i},function(e,t,n){"use strict";var r=n(151),i=r;e.exports=i},function(e,t){"use strict";function n(e){return function(){return e}}var r=function(){};r.thatReturns=n,r.thatReturnsFalse=n(!1),r.thatReturnsTrue=n(!0),r.thatReturnsNull=n(null),r.thatReturnsThis=function(){return this},r.thatReturnsArgument=function(e){return e},e.exports=r},function(e,t,n){"use strict";var r=!1;e.exports=r},function(e,t,n){"use strict";var r={};e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r,o,s,a,u){if(i(t),!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,s,a,u],h=0;c=new Error(t.replace(/%s/g,function(){return l[h++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}}var i=function(e){};e.exports=r},function(e,t,n){"use strict";var r=function(){};e.exports=r},function(e,t,n){"use strict";function r(e){return(""+e).replace(b,"$&/")}function i(e,t){this.func=e,this.context=t,this.count=0}function o(e,t,n){var r=e.func,i=e.context;r.call(i,t,e.count++)}function s(e,t,n){if(null==e)return e;var r=i.getPooled(t,n);x(e,o,r),i.release(r)}function a(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function u(e,t,n){var i=e.result,o=e.keyPrefix,s=e.func,a=e.context,u=s.call(a,t,e.count++);Array.isArray(u)?c(u,i,n,g.thatReturnsArgument):null!=u&&(m.isValidElement(u)&&(u=m.cloneAndReplaceKey(u,o+(!u.key||t&&t.key===u.key?"":r(u.key)+"/")+n)),i.push(u))}function c(e,t,n,i,o){var s="";null!=n&&(s=r(n)+"/");var c=a.getPooled(t,s,i,o);x(e,u,c),a.release(c)}function l(e,t,n){if(null==e)return e;var r=[];return c(e,r,null,t,n),r}function h(e,t,n){return null}function p(e,t){return x(e,h,null)}function f(e){var t=[];return c(e,t,null,g.thatReturnsArgument),t}var d=n(157),m=n(158),g=n(151),x=n(161),y=d.twoArgumentPooler,v=d.fourArgumentPooler,b=/\/+/g;i.prototype.destructor=function(){this.func=null,this.context=null,this.count=0},d.addPoolingTo(i,y),a.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},d.addPoolingTo(a,v);var D={forEach:s,map:l,mapIntoWithKeyPrefixInternal:c,count:p,toArray:f};e.exports=D},function(e,t,n){"use strict";var r=n(148),i=(n(154),function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)}),o=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},s=function(e,t,n){var r=this;if(r.instancePool.length){var i=r.instancePool.pop();return r.call(i,e,t,n),i}return new r(e,t,n)},a=function(e,t,n,r){var i=this;if(i.instancePool.length){var o=i.instancePool.pop();return i.call(o,e,t,n,r),o}return new i(e,t,n,r)},u=function(e){var t=this;e instanceof t?void 0:r("25"),e.destructor(),t.instancePool.length<t.poolSize&&t.instancePool.push(e)},c=10,l=i,h=function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||l,n.poolSize||(n.poolSize=c),n.release=u,n},p={addPoolingTo:h,oneArgumentPooler:i,twoArgumentPooler:o,threeArgumentPooler:s,fourArgumentPooler:a};e.exports=p},function(e,t,n){"use strict";function r(e){return void 0!==e.ref}function i(e){return void 0!==e.key}var o=n(146),s=n(159),a=(n(150),n(152),Object.prototype.hasOwnProperty),u=n(160),c={key:!0,ref:!0,__self:!0,__source:!0},l=function(e,t,n,r,i,o,s){var a={$$typeof:u,type:e,key:t,ref:n,props:s,_owner:o};return a};l.createElement=function(e,t,n){var o,u={},h=null,p=null,f=null,d=null;if(null!=t){r(t)&&(p=t.ref),i(t)&&(h=""+t.key),f=void 0===t.__self?null:t.__self,d=void 0===t.__source?null:t.__source;for(o in t)a.call(t,o)&&!c.hasOwnProperty(o)&&(u[o]=t[o])}var m=arguments.length-2;if(1===m)u.children=n;else if(m>1){for(var g=Array(m),x=0;x<m;x++)g[x]=arguments[x+2];u.children=g}if(e&&e.defaultProps){var y=e.defaultProps;for(o in y)void 0===u[o]&&(u[o]=y[o])}return l(e,h,p,f,d,s.current,u)},l.createFactory=function(e){var t=l.createElement.bind(null,e);return t.type=e,t},l.cloneAndReplaceKey=function(e,t){var n=l(e.type,t,e.ref,e._self,e._source,e._owner,e.props);return n},l.cloneElement=function(e,t,n){var u,h=o({},e.props),p=e.key,f=e.ref,d=e._self,m=e._source,g=e._owner;if(null!=t){r(t)&&(f=t.ref,g=s.current),i(t)&&(p=""+t.key);var x;e.type&&e.type.defaultProps&&(x=e.type.defaultProps);for(u in t)a.call(t,u)&&!c.hasOwnProperty(u)&&(void 0===t[u]&&void 0!==x?h[u]=x[u]:h[u]=t[u])}var y=arguments.length-2;if(1===y)h.children=n;else if(y>1){for(var v=Array(y),b=0;b<y;b++)v[b]=arguments[b+2];h.children=v}return l(e.type,p,f,d,m,g,h)},l.isValidElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===u},e.exports=l},function(e,t){"use strict";var n={current:null};e.exports=n},function(e,t){"use strict";var n="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=n},function(e,t,n){"use strict";function r(e,t){return e&&"object"==typeof e&&null!=e.key?c.escape(e.key):t.toString(36)}function i(e,t,n,o){var p=typeof e;if("undefined"!==p&&"boolean"!==p||(e=null),null===e||"string"===p||"number"===p||"object"===p&&e.$$typeof===a)return n(o,e,""===t?l+r(e,0):t),1;var f,d,m=0,g=""===t?l:t+h;if(Array.isArray(e))for(var x=0;x<e.length;x++)f=e[x],d=g+r(f,x),m+=i(f,d,n,o);else{var y=u(e);if(y){var v,b=y.call(e);if(y!==e.entries)for(var D=0;!(v=b.next()).done;)f=v.value,d=g+r(f,D++),m+=i(f,d,n,o);else for(;!(v=b.next()).done;){var w=v.value;w&&(f=w[1],d=g+c.escape(w[0])+h+r(f,0),m+=i(f,d,n,o))}}else if("object"===p){var E="",k=String(e);s("31","[object Object]"===k?"object with keys {"+Object.keys(e).join(", ")+"}":k,E)}}return m}function o(e,t,n){return null==e?0:i(e,"",t,n)}var s=n(148),a=(n(159),n(160)),u=n(162),c=(n(154),n(163)),l=(n(150),"."),h=":";e.exports=o},function(e,t){"use strict";function n(e){var t=e&&(r&&e[r]||e[i]);if("function"==typeof t)return t}var r="function"==typeof Symbol&&Symbol.iterator,i="@@iterator";e.exports=n},function(e,t){"use strict";function n(e){var t=/[=:]/g,n={"=":"=0",":":"=2"},r=(""+e).replace(t,function(e){return n[e]});return"$"+r}function r(e){var t=/(=0|=2)/g,n={"=0":"=","=2":":"},r="."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1);return(""+r).replace(t,function(e){return n[e]})}var i={escape:n,unescape:r};e.exports=i},function(e,t,n){"use strict";var r=n(158),i=r.createFactory,o={a:i("a"),abbr:i("abbr"),address:i("address"),area:i("area"),article:i("article"),aside:i("aside"),audio:i("audio"),b:i("b"),base:i("base"),bdi:i("bdi"),bdo:i("bdo"),big:i("big"),blockquote:i("blockquote"),body:i("body"),br:i("br"),button:i("button"),canvas:i("canvas"),caption:i("caption"),cite:i("cite"),code:i("code"),col:i("col"),colgroup:i("colgroup"),data:i("data"),datalist:i("datalist"),dd:i("dd"),del:i("del"),details:i("details"),dfn:i("dfn"),dialog:i("dialog"),div:i("div"),dl:i("dl"),dt:i("dt"),em:i("em"),embed:i("embed"),fieldset:i("fieldset"),figcaption:i("figcaption"),figure:i("figure"),footer:i("footer"),form:i("form"),h1:i("h1"),h2:i("h2"),h3:i("h3"),h4:i("h4"),h5:i("h5"),h6:i("h6"),head:i("head"),header:i("header"),hgroup:i("hgroup"),hr:i("hr"),html:i("html"),i:i("i"),iframe:i("iframe"),img:i("img"),input:i("input"),ins:i("ins"),kbd:i("kbd"),keygen:i("keygen"),label:i("label"),legend:i("legend"),li:i("li"),link:i("link"),main:i("main"),map:i("map"),mark:i("mark"),menu:i("menu"),menuitem:i("menuitem"),meta:i("meta"),meter:i("meter"),nav:i("nav"),noscript:i("noscript"),object:i("object"),ol:i("ol"),optgroup:i("optgroup"),option:i("option"),output:i("output"),p:i("p"),param:i("param"),picture:i("picture"),pre:i("pre"),progress:i("progress"),q:i("q"),rp:i("rp"),rt:i("rt"),ruby:i("ruby"),s:i("s"),samp:i("samp"),script:i("script"),section:i("section"),select:i("select"),small:i("small"),source:i("source"),span:i("span"),strong:i("strong"),style:i("style"),sub:i("sub"),summary:i("summary"),sup:i("sup"),table:i("table"),tbody:i("tbody"),td:i("td"),textarea:i("textarea"),tfoot:i("tfoot"),th:i("th"),thead:i("thead"),time:i("time"),title:i("title"),tr:i("tr"),track:i("track"),u:i("u"),ul:i("ul"),var:i("var"),video:i("video"),wbr:i("wbr"),circle:i("circle"),clipPath:i("clipPath"),defs:i("defs"),ellipse:i("ellipse"),g:i("g"),image:i("image"),line:i("line"),linearGradient:i("linearGradient"),mask:i("mask"),path:i("path"),pattern:i("pattern"),polygon:i("polygon"),polyline:i("polyline"),radialGradient:i("radialGradient"),rect:i("rect"),stop:i("stop"),svg:i("svg"),text:i("text"),tspan:i("tspan")};e.exports=o},function(e,t,n){"use strict";var r=n(158),i=r.isValidElement,o=n(166);e.exports=o(i)},function(e,t,n){"use strict";var r=n(167);e.exports=function(e){var t=!1;return r(e,t)}},function(e,t,n){"use strict";var r=n(151),i=n(154),o=n(150),s=n(168),a=n(169);e.exports=function(e,t){function n(e){var t=e&&(S&&e[S]||e[F]);if("function"==typeof t)return t}function u(e,t){return e===t?0!==e||1/e===1/t:e!==e&&t!==t}function c(e){this.message=e,this.stack=""}function l(e){function n(n,r,o,a,u,l,h){if(a=a||T,l=l||o,h!==s)if(t)i(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else;return null==r[o]?n?new c(null===r[o]?"The "+u+" `"+l+"` is marked as required "+("in `"+a+"`, but its value is `null`."):"The "+u+" `"+l+"` is marked as required in "+("`"+a+"`, but its value is `undefined`.")):null:e(r,o,a,u,l)}var r=n.bind(null,!1);return r.isRequired=n.bind(null,!0),r}function h(e){function t(t,n,r,i,o,s){var a=t[n],u=E(a);if(u!==e){var l=k(a);return new c("Invalid "+i+" `"+o+"` of type "+("`"+l+"` supplied to `"+r+"`, expected ")+("`"+e+"`."))}return null}return l(t)}function p(){return l(r.thatReturnsNull)}function f(e){function t(t,n,r,i,o){if("function"!=typeof e)return new c("Property `"+o+"` of component `"+r+"` has invalid PropType notation inside arrayOf.");var a=t[n];if(!Array.isArray(a)){var u=E(a);return new c("Invalid "+i+" `"+o+"` of type "+("`"+u+"` supplied to `"+r+"`, expected an array."))}for(var l=0;l<a.length;l++){var h=e(a,l,r,i,o+"["+l+"]",s);if(h instanceof Error)return h}return null}return l(t)}function d(){function t(t,n,r,i,o){var s=t[n];if(!e(s)){var a=E(s);return new c("Invalid "+i+" `"+o+"` of type "+("`"+a+"` supplied to `"+r+"`, expected a single ReactElement."))}return null}return l(t)}function m(e){function t(t,n,r,i,o){if(!(t[n]instanceof e)){var s=e.name||T,a=C(t[n]);return new c("Invalid "+i+" `"+o+"` of type "+("`"+a+"` supplied to `"+r+"`, expected ")+("instance of `"+s+"`."))}return null}return l(t)}function g(e){function t(t,n,r,i,o){for(var s=t[n],a=0;a<e.length;a++)if(u(s,e[a]))return null;var l=JSON.stringify(e);return new c("Invalid "+i+" `"+o+"` of value `"+s+"` "+("supplied to `"+r+"`, expected one of "+l+"."))}return Array.isArray(e)?l(t):r.thatReturnsNull}function x(e){function t(t,n,r,i,o){if("function"!=typeof e)return new c("Property `"+o+"` of component `"+r+"` has invalid PropType notation inside objectOf.");var a=t[n],u=E(a);if("object"!==u)return new c("Invalid "+i+" `"+o+"` of type "+("`"+u+"` supplied to `"+r+"`, expected an object."));for(var l in a)if(a.hasOwnProperty(l)){var h=e(a,l,r,i,o+"."+l,s);if(h instanceof Error)return h}return null}return l(t)}function y(e){function t(t,n,r,i,o){for(var a=0;a<e.length;a++){var u=e[a];if(null==u(t,n,r,i,o,s))return null}return new c("Invalid "+i+" `"+o+"` supplied to "+("`"+r+"`."))}if(!Array.isArray(e))return r.thatReturnsNull;for(var n=0;n<e.length;n++){var i=e[n];if("function"!=typeof i)return o(!1,"Invalid argument supplid to oneOfType. Expected an array of check functions, but received %s at index %s.",A(i),n),r.thatReturnsNull}return l(t)}function v(){function e(e,t,n,r,i){return D(e[t])?null:new c("Invalid "+r+" `"+i+"` supplied to "+("`"+n+"`, expected a ReactNode."))}return l(e)}function b(e){function t(t,n,r,i,o){var a=t[n],u=E(a);if("object"!==u)return new c("Invalid "+i+" `"+o+"` of type `"+u+"` "+("supplied to `"+r+"`, expected `object`."));for(var l in e){var h=e[l];if(h){var p=h(a,l,r,i,o+"."+l,s);if(p)return p}}return null}return l(t)}function D(t){switch(typeof t){case"number":case"string":case"undefined":return!0;case"boolean":return!t;case"object":if(Array.isArray(t))return t.every(D);if(null===t||e(t))return!0;var r=n(t);if(!r)return!1;var i,o=r.call(t);if(r!==t.entries){for(;!(i=o.next()).done;)if(!D(i.value))return!1}else for(;!(i=o.next()).done;){var s=i.value;if(s&&!D(s[1]))return!1}return!0;default:return!1}}function w(e,t){return"symbol"===e||("Symbol"===t["@@toStringTag"]||"function"==typeof Symbol&&t instanceof Symbol)}function E(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":w(t,e)?"symbol":t}function k(e){if("undefined"==typeof e||null===e)return""+e;var t=E(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function A(e){var t=k(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}function C(e){return e.constructor&&e.constructor.name?e.constructor.name:T}var S="function"==typeof Symbol&&Symbol.iterator,F="@@iterator",T="<<anonymous>>",B={array:h("array"),bool:h("boolean"),func:h("function"),number:h("number"),object:h("object"),string:h("string"),symbol:h("symbol"),any:p(),arrayOf:f,element:d(),instanceOf:m,node:v(),objectOf:x,oneOf:g,oneOfType:y,shape:b};return c.prototype=Error.prototype,B.checkPropTypes=a,B.PropTypes=B,B}},function(e,t){"use strict";var n="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";e.exports=n},function(e,t,n){"use strict";function r(e,t,n,r,i){}e.exports=r},function(e,t){"use strict";e.exports="15.6.1"},function(e,t,n){"use strict";var r=n(147),i=r.Component,o=n(158),s=o.isValidElement,a=n(149),u=n(172);e.exports=u(i,s,a)},function(e,t,n){"use strict";function r(e){return e}function i(e,t,n){function i(e,t){var n=y.hasOwnProperty(t)?y[t]:null;w.hasOwnProperty(t)&&u("OVERRIDE_BASE"===n,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e&&u("DEFINE_MANY"===n||"DEFINE_MANY_MERGED"===n,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function o(e,n){if(n){u("function"!=typeof n,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),u(!t(n),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var r=e.prototype,o=r.__reactAutoBindPairs;n.hasOwnProperty(c)&&v.mixins(e,n.mixins);for(var s in n)if(n.hasOwnProperty(s)&&s!==c){var a=n[s],l=r.hasOwnProperty(s);if(i(l,s),v.hasOwnProperty(s))v[s](e,a);else{var h=y.hasOwnProperty(s),d="function"==typeof a,m=d&&!h&&!l&&n.autobind!==!1;if(m)o.push(s,a),r[s]=a;else if(l){var g=y[s];u(h&&("DEFINE_MANY_MERGED"===g||"DEFINE_MANY"===g),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",g,s),"DEFINE_MANY_MERGED"===g?r[s]=p(r[s],a):"DEFINE_MANY"===g&&(r[s]=f(r[s],a))}else r[s]=a}}}else;}function l(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var i=n in v;u(!i,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n);var o=n in e;u(!o,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),e[n]=r}}}function h(e,t){u(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.");for(var n in t)t.hasOwnProperty(n)&&(u(void 0===e[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n),e[n]=t[n]);return e}function p(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var i={};return h(i,n),h(i,r),i}}function f(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function d(e,t){var n=t.bind(e);return n}function m(e){for(var t=e.__reactAutoBindPairs,n=0;n<t.length;n+=2){var r=t[n],i=t[n+1];e[r]=d(e,i)}}function g(e){var t=r(function(e,r,i){this.__reactAutoBindPairs.length&&m(this),this.props=e,this.context=r,this.refs=a,this.updater=i||n,this.state=null;var o=this.getInitialState?this.getInitialState():null;u("object"==typeof o&&!Array.isArray(o),"%s.getInitialState(): must return an object or null",t.displayName||"ReactCompositeComponent"),this.state=o});t.prototype=new E,t.prototype.constructor=t,t.prototype.__reactAutoBindPairs=[],x.forEach(o.bind(null,t)),o(t,b),o(t,e),o(t,D),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),u(t.prototype.render,"createClass(...): Class specification must implement a `render` method.");for(var i in y)t.prototype[i]||(t.prototype[i]=null);return t}var x=[],y={mixins:"DEFINE_MANY",statics:"DEFINE_MANY",propTypes:"DEFINE_MANY",contextTypes:"DEFINE_MANY",childContextTypes:"DEFINE_MANY",getDefaultProps:"DEFINE_MANY_MERGED",getInitialState:"DEFINE_MANY_MERGED",getChildContext:"DEFINE_MANY_MERGED",render:"DEFINE_ONCE",componentWillMount:"DEFINE_MANY",componentDidMount:"DEFINE_MANY",componentWillReceiveProps:"DEFINE_MANY",shouldComponentUpdate:"DEFINE_ONCE",componentWillUpdate:"DEFINE_MANY",componentDidUpdate:"DEFINE_MANY",componentWillUnmount:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},v={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)o(e,t[n])},childContextTypes:function(e,t){e.childContextTypes=s({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=s({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=p(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=s({},e.propTypes,t)},statics:function(e,t){l(e,t)},autobind:function(){}},b={componentDidMount:function(){this.__isMounted=!0}},D={componentWillUnmount:function(){this.__isMounted=!1}},w={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e,t)},isMounted:function(){return!!this.__isMounted}},E=function(){};return s(E.prototype,e.prototype,w),g}var o,s=n(146),a=n(153),u=n(154),c="mixins";o={},e.exports=i},function(e,t,n){"use strict";function r(e){return o.isValidElement(e)?void 0:i("143"),e}var i=n(148),o=n(158);n(154);e.exports=r},function(e,t,n){var r=n(175);"string"==typeof r&&(r=[[e.id,r,""]]);n(177)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(176)(),t.push([e.id,"@charset \"UTF-8\";.swagger-ui html{box-sizing:border-box}.swagger-ui *,.swagger-ui :after,.swagger-ui :before{box-sizing:inherit}.swagger-ui body{margin:0;background:#fafafa}.swagger-ui .wrapper{width:100%;max-width:1460px;margin:0 auto;padding:0 20px}.swagger-ui .opblock-tag-section{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.swagger-ui .opblock-tag{display:-webkit-box;display:-ms-flexbox;display:flex;padding:10px 20px 10px 10px;cursor:pointer;transition:all .2s;border-bottom:1px solid rgba(59,65,81,.3);-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swagger-ui .opblock-tag:hover{background:rgba(0,0,0,.02)}.swagger-ui .opblock-tag{font-size:24px;margin:0 0 5px;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .opblock-tag.no-desc span{-webkit-box-flex:1;-ms-flex:1;flex:1}.swagger-ui .opblock-tag svg{transition:all .4s}.swagger-ui .opblock-tag small{font-size:14px;font-weight:400;padding:0 10px;-webkit-box-flex:1;-ms-flex:1;flex:1;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .parаmeter__type{font-size:12px;padding:5px 0;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .view-line-link{position:relative;top:3px;width:20px;margin:0 5px;cursor:pointer;transition:all .5s}.swagger-ui .opblock{margin:0 0 15px;border:1px solid #000;border-radius:4px;box-shadow:0 0 3px rgba(0,0,0,.19)}.swagger-ui .opblock.is-open .opblock-summary{border-bottom:1px solid #000}.swagger-ui .opblock .opblock-section-header{padding:8px 20px;background:hsla(0,0%,100%,.8);box-shadow:0 1px 2px rgba(0,0,0,.1)}.swagger-ui .opblock .opblock-section-header,.swagger-ui .opblock .opblock-section-header label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swagger-ui .opblock .opblock-section-header label{font-size:12px;font-weight:700;margin:0;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .opblock .opblock-section-header label span{padding:0 10px 0 0}.swagger-ui .opblock .opblock-section-header h4{font-size:14px;margin:0;-webkit-box-flex:1;-ms-flex:1;flex:1;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .opblock .opblock-summary-method{font-size:14px;font-weight:700;min-width:80px;padding:6px 15px;text-align:center;border-radius:3px;background:#000;text-shadow:0 1px 0 rgba(0,0,0,.1);font-family:Titillium Web,sans-serif;color:#fff}.swagger-ui .opblock .opblock-summary-operation-id,.swagger-ui .opblock .opblock-summary-path,.swagger-ui .opblock .opblock-summary-path__deprecated{font-size:16px;display:-webkit-box;display:-ms-flexbox;display:flex;padding:0 10px;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swagger-ui .opblock .opblock-summary-operation-id .view-line-link,.swagger-ui .opblock .opblock-summary-path .view-line-link,.swagger-ui .opblock .opblock-summary-path__deprecated .view-line-link{position:relative;top:2px;width:0;margin:0;cursor:pointer;transition:all .5s}.swagger-ui .opblock .opblock-summary-operation-id:hover .view-line-link,.swagger-ui .opblock .opblock-summary-path:hover .view-line-link,.swagger-ui .opblock .opblock-summary-path__deprecated:hover .view-line-link{width:18px;margin:0 5px}.swagger-ui .opblock .opblock-summary-path__deprecated{text-decoration:line-through}.swagger-ui .opblock .opblock-summary-operation-id{font-size:14px}.swagger-ui .opblock .opblock-summary-description{font-size:13px;-webkit-box-flex:1;-ms-flex:1;flex:1;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .opblock .opblock-summary{display:-webkit-box;display:-ms-flexbox;display:flex;padding:5px;cursor:pointer;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swagger-ui .opblock.opblock-post{border-color:#49cc90;background:rgba(73,204,144,.1)}.swagger-ui .opblock.opblock-post .opblock-summary-method{background:#49cc90}.swagger-ui .opblock.opblock-post .opblock-summary{border-color:#49cc90}.swagger-ui .opblock.opblock-put{border-color:#fca130;background:rgba(252,161,48,.1)}.swagger-ui .opblock.opblock-put .opblock-summary-method{background:#fca130}.swagger-ui .opblock.opblock-put .opblock-summary{border-color:#fca130}.swagger-ui .opblock.opblock-delete{border-color:#f93e3e;background:rgba(249,62,62,.1)}.swagger-ui .opblock.opblock-delete .opblock-summary-method{background:#f93e3e}.swagger-ui .opblock.opblock-delete .opblock-summary{border-color:#f93e3e}.swagger-ui .opblock.opblock-get{border-color:#61affe;background:rgba(97,175,254,.1)}.swagger-ui .opblock.opblock-get .opblock-summary-method{background:#61affe}.swagger-ui .opblock.opblock-get .opblock-summary{border-color:#61affe}.swagger-ui .opblock.opblock-patch{border-color:#50e3c2;background:rgba(80,227,194,.1)}.swagger-ui .opblock.opblock-patch .opblock-summary-method{background:#50e3c2}.swagger-ui .opblock.opblock-patch .opblock-summary{border-color:#50e3c2}.swagger-ui .opblock.opblock-head{border-color:#9012fe;background:rgba(144,18,254,.1)}.swagger-ui .opblock.opblock-head .opblock-summary-method{background:#9012fe}.swagger-ui .opblock.opblock-head .opblock-summary{border-color:#9012fe}.swagger-ui .opblock.opblock-options{border-color:#0d5aa7;background:rgba(13,90,167,.1)}.swagger-ui .opblock.opblock-options .opblock-summary-method{background:#0d5aa7}.swagger-ui .opblock.opblock-options .opblock-summary{border-color:#0d5aa7}.swagger-ui .opblock.opblock-deprecated{opacity:.6;border-color:#ebebeb;background:hsla(0,0%,92%,.1)}.swagger-ui .opblock.opblock-deprecated .opblock-summary-method{background:#ebebeb}.swagger-ui .opblock.opblock-deprecated .opblock-summary{border-color:#ebebeb}.swagger-ui .opblock .opblock-schemes{padding:8px 20px}.swagger-ui .opblock .opblock-schemes .schemes-title{padding:0 10px 0 0}.swagger-ui .tab{display:-webkit-box;display:-ms-flexbox;display:flex;margin:20px 0 10px;padding:0;list-style:none}.swagger-ui .tab li{font-size:12px;min-width:100px;min-width:90px;padding:0;cursor:pointer;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .tab li:first-of-type{position:relative;padding-left:0}.swagger-ui .tab li:first-of-type:after{position:absolute;top:0;right:6px;width:1px;height:100%;content:\"\";background:rgba(0,0,0,.2)}.swagger-ui .tab li.active{font-weight:700}.swagger-ui .opblock-description-wrapper,.swagger-ui .opblock-title_normal{padding:15px 20px}.swagger-ui .opblock-description-wrapper,.swagger-ui .opblock-description-wrapper h4,.swagger-ui .opblock-title_normal,.swagger-ui .opblock-title_normal h4{font-size:12px;margin:0 0 5px;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .opblock-description-wrapper p,.swagger-ui .opblock-title_normal p{font-size:14px;margin:0;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .execute-wrapper{padding:20px;text-align:right}.swagger-ui .execute-wrapper .btn{width:100%;padding:8px 40px}.swagger-ui .body-param-options{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.swagger-ui .body-param-options .body-param-edit{padding:10px 0}.swagger-ui .body-param-options label{padding:8px 0}.swagger-ui .body-param-options label select{margin:3px 0 0}.swagger-ui .responses-inner{padding:20px}.swagger-ui .responses-inner h4,.swagger-ui .responses-inner h5{font-size:12px;margin:10px 0 5px;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .response-col_status{font-size:14px;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .response-col_status .response-undocumented{font-size:11px;font-family:Source Code Pro,monospace;font-weight:600;color:#999}.swagger-ui .response-col_description__inner span{font-size:12px;font-style:italic;display:block;margin:10px 0;padding:10px;border-radius:4px;background:#41444e;font-family:Source Code Pro,monospace;font-weight:600;color:#fff}.swagger-ui .response-col_description__inner span p{margin:0}.swagger-ui .opblock-body pre{font-size:12px;margin:0;padding:10px;word-wrap:break-word;word-break:break-all;word-break:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;white-space:pre-wrap;border-radius:4px;background:#41444e;overflow-wrap:break-word;font-family:Source Code Pro,monospace;font-weight:600;color:#fff}.swagger-ui .opblock-body pre span{color:#fff!important}.swagger-ui .opblock-body pre .headerline{display:block}.swagger-ui .scheme-container{margin:0 0 20px;padding:30px 0;background:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.15)}.swagger-ui .scheme-container .schemes{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swagger-ui .scheme-container .schemes>label{font-size:12px;font-weight:700;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:-20px 15px 0 0;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .scheme-container .schemes>label select{min-width:130px;text-transform:uppercase}.swagger-ui .loading-container{padding:40px 0 60px}.swagger-ui .loading-container .loading{position:relative}.swagger-ui .loading-container .loading:after{font-size:10px;font-weight:700;position:absolute;top:50%;left:50%;content:\"loading\";-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-transform:uppercase;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .loading-container .loading:before{position:absolute;top:50%;left:50%;display:block;width:60px;height:60px;margin:-30px;content:\"\";-webkit-animation:rotation 1s infinite linear,opacity .5s;animation:rotation 1s infinite linear,opacity .5s;opacity:1;border:2px solid rgba(85,85,85,.1);border-top-color:rgba(0,0,0,.6);border-radius:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden}@-webkit-keyframes rotation{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotation{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes blinker{50%{opacity:0}}@keyframes blinker{50%{opacity:0}}.swagger-ui .btn{font-size:14px;font-weight:700;padding:5px 23px;transition:all .3s;border:2px solid #888;border-radius:4px;background:transparent;box-shadow:0 1px 2px rgba(0,0,0,.1);font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .btn[disabled]{cursor:not-allowed;opacity:.3}.swagger-ui .btn:hover{box-shadow:0 0 5px rgba(0,0,0,.3)}.swagger-ui .btn.cancel{border-color:#ff6060;font-family:Titillium Web,sans-serif;color:#ff6060}.swagger-ui .btn.authorize{line-height:1;display:inline;color:#49cc90;border-color:#49cc90}.swagger-ui .btn.authorize span{float:left;padding:4px 20px 0 0}.swagger-ui .btn.authorize svg{fill:#49cc90}.swagger-ui .btn.execute{-webkit-animation:swagger-ui-pulse 2s infinite;animation:swagger-ui-pulse 2s infinite;color:#fff;border-color:#4990e2}@-webkit-keyframes swagger-ui-pulse{0%{color:#fff;background:#4990e2;box-shadow:0 0 0 0 rgba(73,144,226,.8)}70%{box-shadow:0 0 0 5px rgba(73,144,226,0)}to{color:#fff;background:#4990e2;box-shadow:0 0 0 0 rgba(73,144,226,0)}}@keyframes swagger-ui-pulse{0%{color:#fff;background:#4990e2;box-shadow:0 0 0 0 rgba(73,144,226,.8)}70%{box-shadow:0 0 0 5px rgba(73,144,226,0)}to{color:#fff;background:#4990e2;box-shadow:0 0 0 0 rgba(73,144,226,0)}}.swagger-ui .btn-group{display:-webkit-box;display:-ms-flexbox;display:flex;padding:30px}.swagger-ui .btn-group .btn{-webkit-box-flex:1;-ms-flex:1;flex:1}.swagger-ui .btn-group .btn:first-child{border-radius:4px 0 0 4px}.swagger-ui .btn-group .btn:last-child{border-radius:0 4px 4px 0}.swagger-ui .authorization__btn{padding:0 10px;border:none;background:none}.swagger-ui .authorization__btn.locked{opacity:1}.swagger-ui .authorization__btn.unlocked{opacity:.4}.swagger-ui .expand-methods,.swagger-ui .expand-operation{border:none;background:none}.swagger-ui .expand-methods svg,.swagger-ui .expand-operation svg{width:20px;height:20px}.swagger-ui .expand-methods{padding:0 10px}.swagger-ui .expand-methods:hover svg{fill:#444}.swagger-ui .expand-methods svg{transition:all .3s;fill:#777}.swagger-ui button{cursor:pointer;outline:none}.swagger-ui select{font-size:14px;font-weight:700;padding:5px 40px 5px 10px;border:2px solid #41444e;border-radius:4px;background:#f7f7f7 url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+ICAgIDxwYXRoIGQ9Ik0xMy40MTggNy44NTljLjI3MS0uMjY4LjcwOS0uMjY4Ljk3OCAwIC4yNy4yNjguMjcyLjcwMSAwIC45NjlsLTMuOTA4IDMuODNjLS4yNy4yNjgtLjcwNy4yNjgtLjk3OSAwbC0zLjkwOC0zLjgzYy0uMjctLjI2Ny0uMjctLjcwMSAwLS45NjkuMjcxLS4yNjguNzA5LS4yNjguOTc4IDBMMTAgMTFsMy40MTgtMy4xNDF6Ii8+PC9zdmc+) right 10px center no-repeat;background-size:20px;box-shadow:0 1px 2px 0 rgba(0,0,0,.25);font-family:Titillium Web,sans-serif;color:#3b4151;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swagger-ui select[multiple]{margin:5px 0;padding:5px;background:#f7f7f7}.swagger-ui .opblock-body select{min-width:230px}.swagger-ui label{font-size:12px;font-weight:700;margin:0 0 5px;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui input[type=email],.swagger-ui input[type=password],.swagger-ui input[type=search],.swagger-ui input[type=text]{min-width:100px;margin:5px 0;padding:8px 10px;border:1px solid #d9d9d9;border-radius:4px;background:#fff}.swagger-ui input[type=email].invalid,.swagger-ui input[type=password].invalid,.swagger-ui input[type=search].invalid,.swagger-ui input[type=text].invalid{-webkit-animation:shake .4s 1;animation:shake .4s 1;border-color:#f93e3e;background:#feebeb}@-webkit-keyframes shake{10%,90%{-webkit-transform:translate3d(-1px,0,0);transform:translate3d(-1px,0,0)}20%,80%{-webkit-transform:translate3d(2px,0,0);transform:translate3d(2px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-4px,0,0);transform:translate3d(-4px,0,0)}40%,60%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}}@keyframes shake{10%,90%{-webkit-transform:translate3d(-1px,0,0);transform:translate3d(-1px,0,0)}20%,80%{-webkit-transform:translate3d(2px,0,0);transform:translate3d(2px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-4px,0,0);transform:translate3d(-4px,0,0)}40%,60%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}}.swagger-ui textarea{font-size:12px;width:100%;min-height:280px;padding:10px;border:none;border-radius:4px;outline:none;background:hsla(0,0%,100%,.8);font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui textarea:focus{border:2px solid #61affe}.swagger-ui textarea.curl{font-size:12px;min-height:100px;margin:0;padding:10px;resize:none;border-radius:4px;background:#41444e;font-family:Source Code Pro,monospace;font-weight:600;color:#fff}.swagger-ui .checkbox{padding:5px 0 10px;transition:opacity .5s;color:#333}.swagger-ui .checkbox label{display:-webkit-box;display:-ms-flexbox;display:flex}.swagger-ui .checkbox p{font-weight:400!important;font-style:italic;margin:0!important;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .checkbox input[type=checkbox]{display:none}.swagger-ui .checkbox input[type=checkbox]+label>.item{position:relative;top:3px;display:inline-block;width:16px;height:16px;margin:0 8px 0 0;padding:5px;cursor:pointer;border-radius:1px;background:#e8e8e8;box-shadow:0 0 0 2px #e8e8e8;-webkit-box-flex:0;-ms-flex:none;flex:none}.swagger-ui .checkbox input[type=checkbox]+label>.item:active{-webkit-transform:scale(.9);transform:scale(.9)}.swagger-ui .checkbox input[type=checkbox]:checked+label>.item{background:#e8e8e8 url(\"data:image/svg+xml;charset=utf-8,%3Csvg width='10' height='8' viewBox='3 7 10 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%2341474E' fill-rule='evenodd' d='M6.333 15L3 11.667l1.333-1.334 2 2L11.667 7 13 8.333z'/%3E%3C/svg%3E\") 50% no-repeat}.swagger-ui .dialog-ux{position:fixed;z-index:9999;top:0;right:0;bottom:0;left:0}.swagger-ui .dialog-ux .backdrop-ux{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.8)}.swagger-ui .dialog-ux .modal-ux{position:absolute;z-index:9999;top:50%;left:50%;width:100%;min-width:300px;max-width:650px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border:1px solid #ebebeb;border-radius:4px;background:#fff;box-shadow:0 10px 30px 0 rgba(0,0,0,.2)}.swagger-ui .dialog-ux .modal-ux-content{overflow-y:auto;max-height:540px;padding:20px}.swagger-ui .dialog-ux .modal-ux-content p{font-size:12px;margin:0 0 5px;color:#41444e;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .dialog-ux .modal-ux-content h4{font-size:18px;font-weight:600;margin:15px 0 0;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .dialog-ux .modal-ux-header{display:-webkit-box;display:-ms-flexbox;display:flex;padding:12px 0;border-bottom:1px solid #ebebeb;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swagger-ui .dialog-ux .modal-ux-header .close-modal{padding:0 10px;border:none;background:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swagger-ui .dialog-ux .modal-ux-header h3{font-size:20px;font-weight:600;margin:0;padding:0 20px;-webkit-box-flex:1;-ms-flex:1;flex:1;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .model{font-size:12px;font-weight:300;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .model-toggle{font-size:10px;position:relative;top:6px;display:inline-block;margin:auto .3em;cursor:pointer;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in,-webkit-transform .15s ease-in;-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-transform-origin:50% 50%;transform-origin:50% 50%}.swagger-ui .model-toggle.collapsed{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.swagger-ui .model-toggle:after{display:block;width:20px;height:20px;content:\"\";background:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z'/%3E%3C/svg%3E\") 50% no-repeat;background-size:100%}.swagger-ui .model-jump-to-path{position:relative;cursor:pointer}.swagger-ui .model-jump-to-path .view-line-link{position:absolute;top:-.4em;cursor:pointer}.swagger-ui .model-title{position:relative}.swagger-ui .model-title:hover .model-hint{visibility:visible}.swagger-ui .model-hint{position:absolute;top:-1.8em;visibility:hidden;padding:.1em .5em;white-space:nowrap;color:#ebebeb;border-radius:4px;background:rgba(0,0,0,.7)}.swagger-ui section.models{margin:30px 0;border:1px solid rgba(59,65,81,.3);border-radius:4px}.swagger-ui section.models.is-open{padding:0 0 20px}.swagger-ui section.models.is-open h4{margin:0 0 5px;border-bottom:1px solid rgba(59,65,81,.3)}.swagger-ui section.models.is-open h4 svg{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.swagger-ui section.models h4{font-size:16px;display:-webkit-box;display:-ms-flexbox;display:flex;margin:0;padding:10px 20px 10px 10px;cursor:pointer;transition:all .2s;font-family:Titillium Web,sans-serif;color:#777;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swagger-ui section.models h4 svg{transition:all .4s}.swagger-ui section.models h4 span{-webkit-box-flex:1;-ms-flex:1;flex:1}.swagger-ui section.models h4:hover{background:rgba(0,0,0,.02)}.swagger-ui section.models h5{font-size:16px;margin:0 0 10px;font-family:Titillium Web,sans-serif;color:#777}.swagger-ui section.models .model-jump-to-path{position:relative;top:5px}.swagger-ui section.models .model-container{margin:0 20px 15px;transition:all .5s;border-radius:4px;background:rgba(0,0,0,.05)}.swagger-ui section.models .model-container:hover{background:rgba(0,0,0,.07)}.swagger-ui section.models .model-container:first-of-type{margin:20px}.swagger-ui section.models .model-container:last-of-type{margin:0 20px}.swagger-ui section.models .model-box{background:none}.swagger-ui .model-box{padding:10px;border-radius:4px;background:rgba(0,0,0,.1)}.swagger-ui .model-box .model-jump-to-path{position:relative;top:4px}.swagger-ui .model-title{font-size:16px;font-family:Titillium Web,sans-serif;color:#555}.swagger-ui span>span.model,.swagger-ui span>span.model .brace-close{padding:0 0 0 10px}.swagger-ui .prop-type{color:#55a}.swagger-ui .prop-enum{display:block}.swagger-ui .prop-format{color:#999}.swagger-ui table{width:100%;padding:0 10px;border-collapse:collapse}.swagger-ui table.model tbody tr td{padding:0;vertical-align:top}.swagger-ui table.model tbody tr td:first-of-type{width:100px;padding:0}.swagger-ui table.headers td{font-size:12px;font-weight:300;vertical-align:middle;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui table tbody tr td{padding:10px 0 0;vertical-align:top}.swagger-ui table tbody tr td:first-of-type{width:20%;padding:10px 0}.swagger-ui table thead tr td,.swagger-ui table thead tr th{font-size:12px;font-weight:700;padding:12px 0;text-align:left;border-bottom:1px solid rgba(59,65,81,.2);font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .parameters-col_description p{font-size:14px;margin:0;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .parameters-col_description input[type=text]{width:100%;max-width:340px}.swagger-ui .parameter__name{font-size:16px;font-weight:400;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .parameter__name.required{font-weight:700}.swagger-ui .parameter__name.required:after{font-size:10px;position:relative;top:-6px;padding:5px;content:\"required\";color:rgba(255,0,0,.6)}.swagger-ui .parameter__in{font-size:12px;font-style:italic;font-family:Source Code Pro,monospace;font-weight:600;color:#888}.swagger-ui .table-container{padding:20px}.swagger-ui .topbar{padding:8px 30px;background-color:#89bf04}.swagger-ui .topbar .topbar-wrapper{-ms-flex-align:center}.swagger-ui .topbar .topbar-wrapper,.swagger-ui .topbar a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;align-items:center}.swagger-ui .topbar a{font-size:1.5em;font-weight:700;max-width:300px;text-decoration:none;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-align:center;font-family:Titillium Web,sans-serif;color:#fff}.swagger-ui .topbar a span{margin:0;padding:0 10px}.swagger-ui .topbar .download-url-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:3;-ms-flex:3;flex:3}.swagger-ui .topbar .download-url-wrapper input[type=text]{width:100%;min-width:350px;margin:0;border:2px solid #547f00;border-radius:4px 0 0 4px;outline:none}.swagger-ui .topbar .download-url-wrapper .download-url-button{font-size:16px;font-weight:700;padding:4px 40px;border:none;border-radius:0 4px 4px 0;background:#547f00;font-family:Titillium Web,sans-serif;color:#fff}.swagger-ui .info{margin:50px 0}.swagger-ui .info hgroup.main{margin:0 0 20px}.swagger-ui .info hgroup.main a{font-size:12px}.swagger-ui .info li,.swagger-ui .info p,.swagger-ui .info table{font-size:14px;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .info h1,.swagger-ui .info h2,.swagger-ui .info h3,.swagger-ui .info h4,.swagger-ui .info h5{font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .info code{padding:3px 5px;border-radius:4px;background:rgba(0,0,0,.05);font-family:Source Code Pro,monospace;font-weight:600;color:#9012fe}.swagger-ui .info a{font-size:14px;transition:all .4s;font-family:Open Sans,sans-serif;color:#4990e2}.swagger-ui .info a:hover{color:#1f69c0}.swagger-ui .info>div{margin:0 0 5px}.swagger-ui .info .base-url{font-size:12px;font-weight:300!important;margin:0;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .info .title{font-size:36px;margin:0;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .info .title small{font-size:10px;position:relative;top:-5px;display:inline-block;margin:0 0 0 5px;padding:2px 4px;vertical-align:super;border-radius:57px;background:#7d8492}.swagger-ui .info .title small pre{margin:0;font-family:Titillium Web,sans-serif;color:#fff}.swagger-ui .auth-btn-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;padding:10px 0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.swagger-ui .auth-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.swagger-ui .auth-wrapper .authorize{padding-right:20px}.swagger-ui .auth-container{margin:0 0 10px;padding:10px 20px;border-bottom:1px solid #ebebeb}.swagger-ui .auth-container:last-of-type{margin:0;padding:10px 20px;border:0}.swagger-ui .auth-container h4{margin:5px 0 15px!important}.swagger-ui .auth-container .wrapper{margin:0;padding:0}.swagger-ui .auth-container input[type=password],.swagger-ui .auth-container input[type=text]{min-width:230px}.swagger-ui .auth-container .errors{font-size:12px;padding:10px;border-radius:4px;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .scopes h2{font-size:14px;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .scope-def{padding:0 0 20px}.swagger-ui .errors-wrapper{margin:20px;padding:10px 20px;-webkit-animation:scaleUp .5s;animation:scaleUp .5s;border:2px solid #f93e3e;border-radius:4px;background:rgba(249,62,62,.1)}.swagger-ui .errors-wrapper .error-wrapper{margin:0 0 10px}.swagger-ui .errors-wrapper .errors h4{font-size:14px;margin:0;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .errors-wrapper .errors small{color:#666}.swagger-ui .errors-wrapper hgroup{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.swagger-ui .errors-wrapper hgroup h4{font-size:20px;margin:0;-webkit-box-flex:1;-ms-flex:1;flex:1;font-family:Titillium Web,sans-serif;color:#3b4151}@-webkit-keyframes scaleUp{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes scaleUp{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}",""]); +},function(e,t){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;t<this.length;t++){var n=this[t];n[2]?e.push("@media "+n[2]+"{"+n[1]+"}"):e.push(n[1])}return e.join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},i=0;i<this.length;i++){var o=this[i][0];"number"==typeof o&&(r[o]=!0)}for(i=0;i<t.length;i++){var s=t[i];"number"==typeof s[0]&&r[s[0]]||(n&&!s[2]?s[2]=n:n&&(s[2]="("+s[2]+") and ("+n+")"),e.push(s))}},e}},function(e,t,n){function r(e,t){for(var n=0;n<e.length;n++){var r=e[n],i=f[r.id];if(i){i.refs++;for(var o=0;o<i.parts.length;o++)i.parts[o](r.parts[o]);for(;o<r.parts.length;o++)i.parts.push(c(r.parts[o],t))}else{for(var s=[],o=0;o<r.parts.length;o++)s.push(c(r.parts[o],t));f[r.id]={id:r.id,refs:1,parts:s}}}}function i(e){for(var t=[],n={},r=0;r<e.length;r++){var i=e[r],o=i[0],s=i[1],a=i[2],u=i[3],c={css:s,media:a,sourceMap:u};n[o]?n[o].parts.push(c):t.push(n[o]={id:o,parts:[c]})}return t}function o(e,t){var n=g(),r=v[v.length-1];if("top"===e.insertAt)r?r.nextSibling?n.insertBefore(t,r.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),v.push(t);else{if("bottom"!==e.insertAt)throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");n.appendChild(t)}}function s(e){e.parentNode.removeChild(e);var t=v.indexOf(e);t>=0&&v.splice(t,1)}function a(e){var t=document.createElement("style");return t.type="text/css",o(e,t),t}function u(e){var t=document.createElement("link");return t.rel="stylesheet",o(e,t),t}function c(e,t){var n,r,i;if(t.singleton){var o=y++;n=x||(x=a(t)),r=l.bind(null,n,o,!1),i=l.bind(null,n,o,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=u(t),r=p.bind(null,n),i=function(){s(n),n.href&&URL.revokeObjectURL(n.href)}):(n=a(t),r=h.bind(null,n),i=function(){s(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else i()}}function l(e,t,n,r){var i=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=b(t,i);else{var o=document.createTextNode(i),s=e.childNodes;s[t]&&e.removeChild(s[t]),s.length?e.insertBefore(o,s[t]):e.appendChild(o)}}function h(e,t){var n=t.css,r=t.media;t.sourceMap;if(r&&e.setAttribute("media",r),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}function p(e,t){var n=t.css,r=(t.media,t.sourceMap);r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var i=new Blob([n],{type:"text/css"}),o=e.href;e.href=URL.createObjectURL(i),o&&URL.revokeObjectURL(o)}var f={},d=function(e){var t;return function(){return"undefined"==typeof t&&(t=e.apply(this,arguments)),t}},m=d(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),g=d(function(){return document.head||document.getElementsByTagName("head")[0]}),x=null,y=0,v=[];e.exports=function(e,t){t=t||{},"undefined"==typeof t.singleton&&(t.singleton=m()),"undefined"==typeof t.insertAt&&(t.insertAt="bottom");var n=i(e);return r(n,t),function(e){for(var o=[],s=0;s<n.length;s++){var a=n[s],u=f[a.id];u.refs--,o.push(u)}if(e){var c=i(e);r(c,t)}for(var s=0;s<o.length;s++){var u=o[s];if(0===u.refs){for(var l=0;l<u.parts.length;l++)u.parts[l]();delete f[u.id]}}}};var b=function(){var e=[];return function(t,n){return e[t]=n,e.filter(Boolean).join("\n")}}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){return{components:{Topbar:o.default}}};var i=n(179),o=r(i)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(58),o=r(i),s=n(84),a=r(s),u=n(85),c=r(u),l=n(89),h=r(l),p=n(136),f=r(p),d=n(144),m=r(d),g=n(180),x=r(g),y=function(e){function t(e,n){(0,a.default)(this,t);var r=(0,h.default)(this,(t.__proto__||(0,o.default)(t)).call(this,e,n));return r.onUrlChange=function(e){var t=e.target.value;r.setState({url:t})},r.downloadUrl=function(e){r.props.specActions.updateUrl(r.state.url),r.props.specActions.download(r.state.url),e.preventDefault()},r.state={url:e.specSelectors.url()},r}return(0,f.default)(t,e),(0,c.default)(t,[{key:"componentWillReceiveProps",value:function(e){this.setState({url:e.specSelectors.url()})}},{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.specSelectors,r=t("Button"),i=t("Link"),o="loading"===n.loadingStatus(),s="failed"===n.loadingStatus(),a={};return s&&(a.color="red"),o&&(a.color="#aaa"),m.default.createElement("div",{className:"topbar"},m.default.createElement("div",{className:"wrapper"},m.default.createElement("div",{className:"topbar-wrapper"},m.default.createElement(i,{href:"#",title:"Swagger UX"},m.default.createElement("img",{height:"30",width:"30",src:x.default,alt:"Swagger UX"}),m.default.createElement("span",null,"swagger")),m.default.createElement("form",{className:"download-url-wrapper",onSubmit:this.downloadUrl},m.default.createElement("input",{className:"download-url-input",type:"text",onChange:this.onUrlChange,value:this.state.url,disabled:o,style:a}),m.default.createElement(r,{className:"download-url-button",onClick:this.downloadUrl},"Explore")))))}}]),t}(m.default.Component);t.default=y,y.propTypes={specSelectors:d.PropTypes.object.isRequired,specActions:d.PropTypes.object.isRequired,getComponent:d.PropTypes.func.isRequired}},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAqRJREFUeNrEVz1s00AUfnGXii5maMXoEUEHVwIpEkPNgkBdMnQoU5ytiKHJwpp2Q2JIO8DCUDOxIJFIVOoWZyJSh3pp1Q2PVVlcCVBH3ufeVZZ9Zye1Ay86nXV+ue/9fO/lheg/Se02X1rvksmbnTiKvuxQMBNgBnN4a/LCbmnUAP6JV58NCUsBC8CuAJxGPF47OgNqBaA93tolUhnx6jC4NxGwyOEwlccyAs+3kwdzKq0HDn2vEBTi8J2XpyMaywNDE157BhXUE3zJhlq8GKq+Zd2zaWHepPA8oN9XkfLmRdOiJV4XUUg/IyWncLjCYY/SHndV2u7zHr3bPKZtdxgboJOnthvrfGj/oMf3G0r7JVmNlLfKklmrt2MvvcNO7LFOhoFHfuAJI5o6ta10jpt5CQLgwXhXG2YIwvu+34qf78ybOjWTnWwkgR36d7JqJOrW0hHmNrKg9xhiS4+1jFmrxymh03B0w+6kURIAu3yHtOD5oaUNojMnGgbcctNvwdAnyxvxRR+/vaJnjzbpzcZX+nN1SdGv85i9eH8w3qPO+mdm/y4dnQ1iI8Fq6Nf4cxL6GWSjiFDSs0VRnxC5g0xSB2cgHpaseTxfqOv5uoHkNQ6Ha/N1Yz9mNMppEkEkYKj79q6uCq4bCHcSX3fJ0Vk/k9siASjCm1N6gZH6Ec9IXt2WkFES2K/ixoIyktJPAu/ptOA1SgO5zqtr6KASJPF0nMV8dgMsRhRPOcMwqQAOoi0VAIMLAEWJ6YYC1c8ibj1GP51RqwzYwZVMHQuvOzMCBUtb2tGHx5NAdLKqp5AX7Ng4d+Zi8AGDI9z1ijx9yaCH04y3GCP2S+QcvaGl+pcxyUBvinFlawoDQjHSelX8hQEoIrAq8p/mgC88HOS1YCl/BRgAmiD/1gn6Nu8AAAAASUVORK5CYII="},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=e.fn,n={downloadConfig:function(e){return function(){var n=t.fetch;return n(e)}},getConfigByUrl:function(e,t){return function(n){function r(n){n instanceof Error||n.status>=400?(i.updateLoadingStatus("failedConfig"),i.updateLoadingStatus("failedConfig"),i.updateUrl(""),console.error(n.statusText+" "+e),t(null)):t(c(n.text))}var i=n.specActions;if(e)return i.downloadConfig(e).then(r,r)}}},r={getLocalConfig:function(){return c(u.default)}};return{statePlugins:{spec:{actions:n,selectors:r}}}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=i;var o=n(182),s=r(o),a=n(217),u=r(a),c=function(e,t){try{return s.default.safeLoad(e)}catch(e){return t&&t.errActions.newThrownErr(new Error(e)),{}}}},function(e,t,n){"use strict";var r=n(183);e.exports=r},function(e,t,n){"use strict";function r(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}var i=n(184),o=n(216);e.exports.Type=n(190),e.exports.Schema=n(189),e.exports.FAILSAFE_SCHEMA=n(193),e.exports.JSON_SCHEMA=n(192),e.exports.CORE_SCHEMA=n(191),e.exports.DEFAULT_SAFE_SCHEMA=n(188),e.exports.DEFAULT_FULL_SCHEMA=n(211),e.exports.load=i.load,e.exports.loadAll=i.loadAll,e.exports.safeLoad=i.safeLoad,e.exports.safeLoadAll=i.safeLoadAll,e.exports.dump=o.dump,e.exports.safeDump=o.safeDump,e.exports.YAMLException=n(186),e.exports.MINIMAL_SCHEMA=n(193),e.exports.SAFE_SCHEMA=n(188),e.exports.DEFAULT_SCHEMA=n(211),e.exports.scan=r("scan"),e.exports.parse=r("parse"),e.exports.compose=r("compose"),e.exports.addConstructor=r("addConstructor")},function(e,t,n){"use strict";function r(e){return 10===e||13===e}function i(e){return 9===e||32===e}function o(e){return 9===e||32===e||10===e||13===e}function s(e){return 44===e||91===e||93===e||123===e||125===e}function a(e){var t;return 48<=e&&e<=57?e-48:(t=32|e,97<=t&&t<=102?t-97+10:-1)}function u(e){return 120===e?2:117===e?4:85===e?8:0}function c(e){return 48<=e&&e<=57?e-48:-1}function l(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e?"\t":9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function h(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function p(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||Y,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function f(e,t){return new z(t,new J(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function d(e,t){throw f(e,t)}function m(e,t){e.onWarning&&e.onWarning.call(null,f(e,t))}function g(e,t,n,r){var i,o,s,a;if(t<n){if(a=e.input.slice(t,n),r)for(i=0,o=a.length;i<o;i+=1)s=a.charCodeAt(i),9===s||32<=s&&s<=1114111||d(e,"expected valid JSON character");else Q.test(a)&&d(e,"the stream contains non-printable characters");e.result+=a}}function x(e,t,n,r){var i,o,s,a;for(j.isObject(n)||d(e,"cannot merge mappings; the provided source object is unacceptable"),i=Object.keys(n),s=0,a=i.length;s<a;s+=1)o=i[s],K.call(t,o)||(t[o]=n[o],r[o]=!0)}function y(e,t,n,r,i,o,s,a){var u,c;if(i=String(i),null===t&&(t={}),"tag:yaml.org,2002:merge"===r)if(Array.isArray(o))for(u=0,c=o.length;u<c;u+=1)x(e,t,o[u],n);else x(e,t,o,n);else e.json||K.call(n,i)||!K.call(t,i)||(e.line=s||e.line,e.position=a||e.position,d(e,"duplicated mapping key")),t[i]=o,delete n[i];return t}function v(e){var t;t=e.input.charCodeAt(e.position),10===t?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):d(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function b(e,t,n){for(var o=0,s=e.input.charCodeAt(e.position);0!==s;){for(;i(s);)s=e.input.charCodeAt(++e.position);if(t&&35===s)do s=e.input.charCodeAt(++e.position);while(10!==s&&13!==s&&0!==s);if(!r(s))break;for(v(e),s=e.input.charCodeAt(e.position),o++,e.lineIndent=0;32===s;)e.lineIndent++,s=e.input.charCodeAt(++e.position)}return n!==-1&&0!==o&&e.lineIndent<n&&m(e,"deficient indentation"),o}function D(e){var t,n=e.position;return t=e.input.charCodeAt(n),!(45!==t&&46!==t||t!==e.input.charCodeAt(n+1)||t!==e.input.charCodeAt(n+2)||(n+=3,t=e.input.charCodeAt(n),0!==t&&!o(t)))}function w(e,t){1===t?e.result+=" ":t>1&&(e.result+=j.repeat("\n",t-1))}function E(e,t,n){var a,u,c,l,h,p,f,d,m,x=e.kind,y=e.result;if(m=e.input.charCodeAt(e.position),o(m)||s(m)||35===m||38===m||42===m||33===m||124===m||62===m||39===m||34===m||37===m||64===m||96===m)return!1;if((63===m||45===m)&&(u=e.input.charCodeAt(e.position+1),o(u)||n&&s(u)))return!1;for(e.kind="scalar",e.result="",c=l=e.position,h=!1;0!==m;){if(58===m){if(u=e.input.charCodeAt(e.position+1),o(u)||n&&s(u))break}else if(35===m){if(a=e.input.charCodeAt(e.position-1),o(a))break}else{if(e.position===e.lineStart&&D(e)||n&&s(m))break;if(r(m)){if(p=e.line,f=e.lineStart,d=e.lineIndent,b(e,!1,-1),e.lineIndent>=t){h=!0,m=e.input.charCodeAt(e.position);continue}e.position=l,e.line=p,e.lineStart=f,e.lineIndent=d;break}}h&&(g(e,c,l,!1),w(e,e.line-p),c=l=e.position,h=!1),i(m)||(l=e.position+1),m=e.input.charCodeAt(++e.position)}return g(e,c,l,!1),!!e.result||(e.kind=x,e.result=y,!1)}function k(e,t){var n,i,o;if(n=e.input.charCodeAt(e.position),39!==n)return!1;for(e.kind="scalar",e.result="",e.position++,i=o=e.position;0!==(n=e.input.charCodeAt(e.position));)if(39===n){if(g(e,i,e.position,!0),n=e.input.charCodeAt(++e.position),39!==n)return!0;i=e.position,e.position++,o=e.position}else r(n)?(g(e,i,o,!0),w(e,b(e,!1,t)),i=o=e.position):e.position===e.lineStart&&D(e)?d(e,"unexpected end of the document within a single quoted scalar"):(e.position++,o=e.position);d(e,"unexpected end of the stream within a single quoted scalar")}function A(e,t){var n,i,o,s,c,l;if(l=e.input.charCodeAt(e.position),34!==l)return!1;for(e.kind="scalar",e.result="",e.position++,n=i=e.position;0!==(l=e.input.charCodeAt(e.position));){if(34===l)return g(e,n,e.position,!0),e.position++,!0;if(92===l){if(g(e,n,e.position,!0),l=e.input.charCodeAt(++e.position),r(l))b(e,!1,t);else if(l<256&&ie[l])e.result+=oe[l],e.position++;else if((c=u(l))>0){for(o=c,s=0;o>0;o--)l=e.input.charCodeAt(++e.position),(c=a(l))>=0?s=(s<<4)+c:d(e,"expected hexadecimal character");e.result+=h(s),e.position++}else d(e,"unknown escape sequence");n=i=e.position}else r(l)?(g(e,n,i,!0),w(e,b(e,!1,t)),n=i=e.position):e.position===e.lineStart&&D(e)?d(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}d(e,"unexpected end of the stream within a double quoted scalar")}function C(e,t){var n,r,i,s,a,u,c,l,h,p,f,m=!0,g=e.tag,x=e.anchor,v={};if(f=e.input.charCodeAt(e.position),91===f)s=93,c=!1,r=[];else{if(123!==f)return!1;s=125,c=!0,r={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=r),f=e.input.charCodeAt(++e.position);0!==f;){if(b(e,!0,t),f=e.input.charCodeAt(e.position),f===s)return e.position++,e.tag=g,e.anchor=x,e.kind=c?"mapping":"sequence",e.result=r,!0;m||d(e,"missed comma between flow collection entries"),h=l=p=null,a=u=!1,63===f&&(i=e.input.charCodeAt(e.position+1),o(i)&&(a=u=!0,e.position++,b(e,!0,t))),n=e.line,P(e,t,W,!1,!0),h=e.tag,l=e.result,b(e,!0,t),f=e.input.charCodeAt(e.position),!u&&e.line!==n||58!==f||(a=!0,f=e.input.charCodeAt(++e.position),b(e,!0,t),P(e,t,W,!1,!0),p=e.result),c?y(e,r,v,h,l,p):a?r.push(y(e,null,v,h,l,p)):r.push(l),b(e,!0,t),f=e.input.charCodeAt(e.position),44===f?(m=!0,f=e.input.charCodeAt(++e.position)):m=!1}d(e,"unexpected end of the stream within a flow collection")}function S(e,t){var n,o,s,a,u=V,l=!1,h=!1,p=t,f=0,m=!1;if(a=e.input.charCodeAt(e.position),124===a)o=!1;else{if(62!==a)return!1;o=!0}for(e.kind="scalar",e.result="";0!==a;)if(a=e.input.charCodeAt(++e.position),43===a||45===a)V===u?u=43===a?Z:$:d(e,"repeat of a chomping mode identifier");else{if(!((s=c(a))>=0))break;0===s?d(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):h?d(e,"repeat of an indentation width identifier"):(p=t+s-1,h=!0)}if(i(a)){do a=e.input.charCodeAt(++e.position);while(i(a));if(35===a)do a=e.input.charCodeAt(++e.position);while(!r(a)&&0!==a)}for(;0!==a;){for(v(e),e.lineIndent=0,a=e.input.charCodeAt(e.position);(!h||e.lineIndent<p)&&32===a;)e.lineIndent++,a=e.input.charCodeAt(++e.position);if(!h&&e.lineIndent>p&&(p=e.lineIndent),r(a))f++;else{if(e.lineIndent<p){u===Z?e.result+=j.repeat("\n",l?1+f:f):u===V&&l&&(e.result+="\n");break}for(o?i(a)?(m=!0,e.result+=j.repeat("\n",l?1+f:f)):m?(m=!1,e.result+=j.repeat("\n",f+1)):0===f?l&&(e.result+=" "):e.result+=j.repeat("\n",f):e.result+=j.repeat("\n",l?1+f:f),l=!0,h=!0,f=0,n=e.position;!r(a)&&0!==a;)a=e.input.charCodeAt(++e.position);g(e,n,e.position,!1)}}return!0}function F(e,t){var n,r,i,s=e.tag,a=e.anchor,u=[],c=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=u),i=e.input.charCodeAt(e.position);0!==i&&45===i&&(r=e.input.charCodeAt(e.position+1),o(r));)if(c=!0,e.position++,b(e,!0,-1)&&e.lineIndent<=t)u.push(null),i=e.input.charCodeAt(e.position);else if(n=e.line,P(e,t,q,!1,!0),u.push(e.result),b(e,!0,-1),i=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==i)d(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break;return!!c&&(e.tag=s,e.anchor=a,e.kind="sequence",e.result=u,!0)}function T(e,t,n){var r,s,a,u,c,l=e.tag,h=e.anchor,p={},f={},m=null,g=null,x=null,v=!1,D=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=p),c=e.input.charCodeAt(e.position);0!==c;){if(r=e.input.charCodeAt(e.position+1),a=e.line,u=e.position,63!==c&&58!==c||!o(r)){if(!P(e,n,H,!1,!0))break;if(e.line===a){for(c=e.input.charCodeAt(e.position);i(c);)c=e.input.charCodeAt(++e.position);if(58===c)c=e.input.charCodeAt(++e.position),o(c)||d(e,"a whitespace character is expected after the key-value separator within a block mapping"),v&&(y(e,p,f,m,g,null),m=g=x=null),D=!0,v=!1,s=!1,m=e.tag,g=e.result;else{if(!D)return e.tag=l,e.anchor=h,!0;d(e,"can not read an implicit mapping pair; a colon is missed")}}else{if(!D)return e.tag=l,e.anchor=h,!0;d(e,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===c?(v&&(y(e,p,f,m,g,null),m=g=x=null),D=!0,v=!0,s=!0):v?(v=!1,s=!0):d(e,"incomplete explicit mapping pair; a key node is missed"),e.position+=1,c=r;if((e.line===a||e.lineIndent>t)&&(P(e,t,G,!0,s)&&(v?g=e.result:x=e.result),v||(y(e,p,f,m,g,x,a,u),m=g=x=null),b(e,!0,-1),c=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==c)d(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return v&&y(e,p,f,m,g,null),D&&(e.tag=l,e.anchor=h,e.kind="mapping",e.result=p),D}function B(e){var t,n,r,i,s=!1,a=!1;if(i=e.input.charCodeAt(e.position),33!==i)return!1;if(null!==e.tag&&d(e,"duplication of a tag property"),i=e.input.charCodeAt(++e.position),60===i?(s=!0,i=e.input.charCodeAt(++e.position)):33===i?(a=!0,n="!!",i=e.input.charCodeAt(++e.position)):n="!",t=e.position,s){do i=e.input.charCodeAt(++e.position);while(0!==i&&62!==i);e.position<e.length?(r=e.input.slice(t,e.position),i=e.input.charCodeAt(++e.position)):d(e,"unexpected end of the stream within a verbatim tag")}else{for(;0!==i&&!o(i);)33===i&&(a?d(e,"tag suffix cannot contain exclamation marks"):(n=e.input.slice(t-1,e.position+1),ne.test(n)||d(e,"named tag handle cannot contain such characters"),a=!0,t=e.position+1)),i=e.input.charCodeAt(++e.position);r=e.input.slice(t,e.position),te.test(r)&&d(e,"tag suffix cannot contain flow indicator characters")}return r&&!re.test(r)&&d(e,"tag name cannot contain such characters: "+r),s?e.tag=r:K.call(e.tagMap,n)?e.tag=e.tagMap[n]+r:"!"===n?e.tag="!"+r:"!!"===n?e.tag="tag:yaml.org,2002:"+r:d(e,'undeclared tag handle "'+n+'"'),!0}function N(e){var t,n;if(n=e.input.charCodeAt(e.position),38!==n)return!1;for(null!==e.anchor&&d(e,"duplication of an anchor property"),n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!o(n)&&!s(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&d(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function I(e){var t,n,r;if(r=e.input.charCodeAt(e.position),42!==r)return!1;for(r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!o(r)&&!s(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&d(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(n)||d(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],b(e,!0,-1),!0}function P(e,t,n,r,i){var o,s,a,u,c,l,h,p,f=1,m=!1,g=!1;if(null!==e.listener&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,o=s=a=G===n||q===n,r&&b(e,!0,-1)&&(m=!0,e.lineIndent>t?f=1:e.lineIndent===t?f=0:e.lineIndent<t&&(f=-1)),1===f)for(;B(e)||N(e);)b(e,!0,-1)?(m=!0,a=o,e.lineIndent>t?f=1:e.lineIndent===t?f=0:e.lineIndent<t&&(f=-1)):a=!1;if(a&&(a=m||i),1!==f&&G!==n||(h=W===n||H===n?t:t+1,p=e.position-e.lineStart,1===f?a&&(F(e,p)||T(e,p,h))||C(e,h)?g=!0:(s&&S(e,h)||k(e,h)||A(e,h)?g=!0:I(e)?(g=!0,null===e.tag&&null===e.anchor||d(e,"alias node should not have any properties")):E(e,h,W===n)&&(g=!0,null===e.tag&&(e.tag="?")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===f&&(g=a&&F(e,p))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(u=0,c=e.implicitTypes.length;u<c;u+=1)if(l=e.implicitTypes[u],l.resolve(e.result)){e.result=l.construct(e.result),e.tag=l.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else K.call(e.typeMap[e.kind||"fallback"],e.tag)?(l=e.typeMap[e.kind||"fallback"][e.tag],null!==e.result&&l.kind!==e.kind&&d(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+l.kind+'", not "'+e.kind+'"'),l.resolve(e.result)?(e.result=l.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):d(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):d(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||g}function M(e){var t,n,s,a,u=e.position,c=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(a=e.input.charCodeAt(e.position))&&(b(e,!0,-1),a=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==a));){for(c=!0,a=e.input.charCodeAt(++e.position),t=e.position;0!==a&&!o(a);)a=e.input.charCodeAt(++e.position);for(n=e.input.slice(t,e.position),s=[],n.length<1&&d(e,"directive name must not be less than one character in length");0!==a;){for(;i(a);)a=e.input.charCodeAt(++e.position);if(35===a){do a=e.input.charCodeAt(++e.position);while(0!==a&&!r(a));break}if(r(a))break;for(t=e.position;0!==a&&!o(a);)a=e.input.charCodeAt(++e.position);s.push(e.input.slice(t,e.position))}0!==a&&v(e),K.call(ae,n)?ae[n](e,n,s):m(e,'unknown document directive "'+n+'"')}return b(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,b(e,!0,-1)):c&&d(e,"directives end mark is expected"),P(e,e.lineIndent-1,G,!1,!0),b(e,!0,-1),e.checkLineBreaks&&ee.test(e.input.slice(u,e.position))&&m(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&D(e)?void(46===e.input.charCodeAt(e.position)&&(e.position+=3,b(e,!0,-1))):void(e.position<e.length-1&&d(e,"end of the stream or a document separator is expected"))}function O(e,t){e=String(e),t=t||{},0!==e.length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+="\n"),65279===e.charCodeAt(0)&&(e=e.slice(1)));var n=new p(e,t);for(n.input+="\0";32===n.input.charCodeAt(n.position);)n.lineIndent+=1,n.position+=1;for(;n.position<n.length-1;)M(n);return n.documents}function _(e,t,n){var r,i,o=O(e,n);for(r=0,i=o.length;r<i;r+=1)t(o[r])}function L(e,t){var n=O(e,t);if(0!==n.length){if(1===n.length)return n[0];throw new z("expected a single document in the stream, but found more")}}function R(e,t,n){_(e,t,j.extend({schema:X},n))}function U(e,t){return L(e,j.extend({schema:X},t))}for(var j=n(185),z=n(186),J=n(187),X=n(188),Y=n(211),K=Object.prototype.hasOwnProperty,W=1,H=2,q=3,G=4,V=1,$=2,Z=3,Q=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,ee=/[\x85\u2028\u2029]/,te=/[,\[\]\{\}]/,ne=/^(?:!|!!|![a-z\-]+!)$/i,re=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i,ie=new Array(256),oe=new Array(256),se=0;se<256;se++)ie[se]=l(se)?1:0,oe[se]=l(se);var ae={YAML:function(e,t,n){var r,i,o;null!==e.version&&d(e,"duplication of %YAML directive"),1!==n.length&&d(e,"YAML directive accepts exactly one argument"),r=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),null===r&&d(e,"ill-formed argument of the YAML directive"),i=parseInt(r[1],10),o=parseInt(r[2],10),1!==i&&d(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=o<2,1!==o&&2!==o&&m(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var r,i;2!==n.length&&d(e,"TAG directive accepts exactly two arguments"),r=n[0],i=n[1],ne.test(r)||d(e,"ill-formed tag handle (first argument) of the TAG directive"),K.call(e.tagMap,r)&&d(e,'there is a previously declared suffix for "'+r+'" tag handle'),re.test(i)||d(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[r]=i}};e.exports.loadAll=_,e.exports.load=L,e.exports.safeLoadAll=R,e.exports.safeLoad=U},function(e,t){"use strict";function n(e){return"undefined"==typeof e||null===e}function r(e){return"object"==typeof e&&null!==e}function i(e){return Array.isArray(e)?e:n(e)?[]:[e]}function o(e,t){var n,r,i,o;if(t)for(o=Object.keys(t),n=0,r=o.length;n<r;n+=1)i=o[n],e[i]=t[i];return e}function s(e,t){var n,r="";for(n=0;n<t;n+=1)r+=e;return r}function a(e){return 0===e&&Number.NEGATIVE_INFINITY===1/e}e.exports.isNothing=n,e.exports.isObject=r,e.exports.toArray=i,e.exports.repeat=s,e.exports.isNegativeZero=a,e.exports.extend=o},function(e,t){"use strict";function n(e,t){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||"",this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():"")}n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t},e.exports=n},function(e,t,n){"use strict";function r(e,t,n,r,i){this.name=e,this.buffer=t,this.position=n,this.line=r,this.column=i}var i=n(185);r.prototype.getSnippet=function(e,t){var n,r,o,s,a;if(!this.buffer)return null;for(e=e||4,t=t||75,n="",r=this.position;r>0&&"\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(r-1))===-1;)if(r-=1,this.position-r>t/2-1){n=" ... ",r+=5;break}for(o="",s=this.position;s<this.buffer.length&&"\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(s))===-1;)if(s+=1,s-this.position>t/2-1){o=" ... ",s-=5;break}return a=this.buffer.slice(r,s),i.repeat(" ",e)+n+a+o+"\n"+i.repeat(" ",e+this.position-r+n.length)+"^"},r.prototype.toString=function(e){var t,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(n+=":\n"+t)),n},e.exports=r},function(e,t,n){"use strict";var r=n(189);e.exports=new r({include:[n(191)],implicit:[n(201),n(202)],explicit:[n(203),n(208),n(209),n(210)]})},function(e,t,n){"use strict";function r(e,t,n){var i=[];return e.include.forEach(function(e){n=r(e,t,n)}),e[t].forEach(function(e){n.forEach(function(t,n){t.tag===e.tag&&t.kind===e.kind&&i.push(n)}),n.push(e)}),n.filter(function(e,t){return i.indexOf(t)===-1})}function i(){function e(e){r[e.kind][e.tag]=r.fallback[e.tag]=e}var t,n,r={scalar:{},sequence:{},mapping:{},fallback:{}};for(t=0,n=arguments.length;t<n;t+=1)arguments[t].forEach(e);return r}function o(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new a("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=r(this,"implicit",[]),this.compiledExplicit=r(this,"explicit",[]),this.compiledTypeMap=i(this.compiledImplicit,this.compiledExplicit)}var s=n(185),a=n(186),u=n(190);o.DEFAULT=null,o.create=function(){var e,t;switch(arguments.length){case 1:e=o.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new a("Wrong number of arguments for Schema.create function")}if(e=s.toArray(e),t=s.toArray(t),!e.every(function(e){return e instanceof o}))throw new a("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every(function(e){return e instanceof u}))throw new a("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new o({include:e,explicit:t})},e.exports=o},function(e,t,n){"use strict";function r(e){var t={};return null!==e&&Object.keys(e).forEach(function(n){e[n].forEach(function(e){t[String(e)]=n})}),t}function i(e,t){if(t=t||{},Object.keys(t).forEach(function(t){if(s.indexOf(t)===-1)throw new o('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=r(t.styleAliases||null),a.indexOf(this.kind)===-1)throw new o('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var o=n(186),s=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],a=["scalar","sequence","mapping"];e.exports=i},function(e,t,n){"use strict";var r=n(189);e.exports=new r({include:[n(192)]})},function(e,t,n){"use strict";var r=n(189);e.exports=new r({include:[n(193)],implicit:[n(197),n(198),n(199),n(200)]})},function(e,t,n){"use strict";var r=n(189);e.exports=new r({explicit:[n(194),n(195),n(196)]})},function(e,t,n){"use strict";var r=n(190);e.exports=new r("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}})},function(e,t,n){"use strict";var r=n(190);e.exports=new r("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}})},function(e,t,n){"use strict";var r=n(190);e.exports=new r("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},function(e,t,n){"use strict";function r(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)}function i(){return null}function o(e){return null===e}var s=n(190);e.exports=new s("tag:yaml.org,2002:null",{kind:"scalar",resolve:r,construct:i,predicate:o,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},function(e,t,n){"use strict";function r(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)}function i(e){return"true"===e||"True"===e||"TRUE"===e}function o(e){return"[object Boolean]"===Object.prototype.toString.call(e)}var s=n(190);e.exports=new s("tag:yaml.org,2002:bool",{kind:"scalar",resolve:r,construct:i,predicate:o,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},function(e,t,n){"use strict";function r(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function i(e){return 48<=e&&e<=55}function o(e){return 48<=e&&e<=57}function s(e){if(null===e)return!1;var t,n=e.length,s=0,a=!1;if(!n)return!1;if(t=e[s],"-"!==t&&"+"!==t||(t=e[++s]),"0"===t){if(s+1===n)return!0;if(t=e[++s],"b"===t){for(s++;s<n;s++)if(t=e[s],"_"!==t){if("0"!==t&&"1"!==t)return!1;a=!0}return a&&"_"!==t}if("x"===t){for(s++;s<n;s++)if(t=e[s],"_"!==t){if(!r(e.charCodeAt(s)))return!1;a=!0}return a&&"_"!==t}for(;s<n;s++)if(t=e[s],"_"!==t){if(!i(e.charCodeAt(s)))return!1;a=!0}return a&&"_"!==t}if("_"===t)return!1;for(;s<n;s++)if(t=e[s],"_"!==t){if(":"===t)break;if(!o(e.charCodeAt(s)))return!1;a=!0}return!(!a||"_"===t)&&(":"!==t||/^(:[0-5]?[0-9])+$/.test(e.slice(s)))}function a(e){var t,n,r=e,i=1,o=[];return r.indexOf("_")!==-1&&(r=r.replace(/_/g,"")),t=r[0],"-"!==t&&"+"!==t||("-"===t&&(i=-1),r=r.slice(1),t=r[0]),"0"===r?0:"0"===t?"b"===r[1]?i*parseInt(r.slice(2),2):"x"===r[1]?i*parseInt(r,16):i*parseInt(r,8):r.indexOf(":")!==-1?(r.split(":").forEach(function(e){o.unshift(parseInt(e,10))}),r=0,n=1,o.forEach(function(e){r+=e*n,n*=60}),i*r):i*parseInt(r,10)}function u(e){return"[object Number]"===Object.prototype.toString.call(e)&&e%1===0&&!c.isNegativeZero(e)}var c=n(185),l=n(190);e.exports=new l("tag:yaml.org,2002:int",{kind:"scalar",resolve:s,construct:a,predicate:u,represent:{binary:function(e){return"0b"+e.toString(2)},octal:function(e){return"0"+e.toString(8)},decimal:function(e){ +return e.toString(10)},hexadecimal:function(e){return"0x"+e.toString(16).toUpperCase()}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},function(e,t,n){"use strict";function r(e){return null!==e&&!(!c.test(e)||"_"===e[e.length-1])}function i(e){var t,n,r,i;return t=e.replace(/_/g,"").toLowerCase(),n="-"===t[0]?-1:1,i=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(e){i.unshift(parseFloat(e,10))}),t=0,r=1,i.forEach(function(e){t+=e*r,r*=60}),n*t):n*parseFloat(t,10)}function o(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(a.isNegativeZero(e))return"-0.0";return n=e.toString(10),l.test(n)?n.replace("e",".e"):n}function s(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!==0||a.isNegativeZero(e))}var a=n(185),u=n(190),c=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"),l=/^[-+]?[0-9]+e/;e.exports=new u("tag:yaml.org,2002:float",{kind:"scalar",resolve:r,construct:i,predicate:s,represent:o,defaultStyle:"lowercase"})},function(e,t,n){"use strict";function r(e){return null!==e&&(null!==a.exec(e)||null!==u.exec(e))}function i(e){var t,n,r,i,o,s,c,l,h,p,f=0,d=null;if(t=a.exec(e),null===t&&(t=u.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,r,i));if(o=+t[4],s=+t[5],c=+t[6],t[7]){for(f=t[7].slice(0,3);f.length<3;)f+="0";f=+f}return t[9]&&(l=+t[10],h=+(t[11]||0),d=6e4*(60*l+h),"-"===t[9]&&(d=-d)),p=new Date(Date.UTC(n,r,i,o,s,c,f)),d&&p.setTime(p.getTime()-d),p}function o(e){return e.toISOString()}var s=n(190),a=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),u=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");e.exports=new s("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:r,construct:i,instanceOf:Date,represent:o})},function(e,t,n){"use strict";function r(e){return"<<"===e||null===e}var i=n(190);e.exports=new i("tag:yaml.org,2002:merge",{kind:"scalar",resolve:r})},function(e,t,n){function r(e){if(null===e)return!1;var t,n,r=0,i=e.length,o=c;for(n=0;n<i;n++)if(t=o.indexOf(e.charAt(n)),!(t>64)){if(t<0)return!1;r+=6}return r%8===0}function i(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,o=c,s=0,u=[];for(t=0;t<i;t++)t%4===0&&t&&(u.push(s>>16&255),u.push(s>>8&255),u.push(255&s)),s=s<<6|o.indexOf(r.charAt(t));return n=i%4*6,0===n?(u.push(s>>16&255),u.push(s>>8&255),u.push(255&s)):18===n?(u.push(s>>10&255),u.push(s>>2&255)):12===n&&u.push(s>>4&255),a?a.from?a.from(u):new a(u):u}function o(e){var t,n,r="",i=0,o=e.length,s=c;for(t=0;t<o;t++)t%3===0&&t&&(r+=s[i>>18&63],r+=s[i>>12&63],r+=s[i>>6&63],r+=s[63&i]),i=(i<<8)+e[t];return n=o%3,0===n?(r+=s[i>>18&63],r+=s[i>>12&63],r+=s[i>>6&63],r+=s[63&i]):2===n?(r+=s[i>>10&63],r+=s[i>>4&63],r+=s[i<<2&63],r+=s[64]):1===n&&(r+=s[i>>2&63],r+=s[i<<4&63],r+=s[64],r+=s[64]),r}function s(e){return a&&a.isBuffer(e)}var a;try{a=n(204).Buffer}catch(e){}var u=n(190),c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";e.exports=new u("tag:yaml.org,2002:binary",{kind:"scalar",resolve:r,construct:i,predicate:s,represent:o})},function(e,t,n){(function(e){/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org> + * @license MIT + */ +"use strict";function r(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}function i(){return s.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(e,t){if(i()<t)throw new RangeError("Invalid typed array length");return s.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=s.prototype):(null===e&&(e=new s(t)),e.length=t),e}function s(e,t,n){if(!(s.TYPED_ARRAY_SUPPORT||this instanceof s))return new s(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return l(this,e)}return a(this,e,t,n)}function a(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?f(e,t,n,r):"string"==typeof t?h(e,t,n):d(e,t)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function c(e,t,n,r){return u(t),t<=0?o(e,t):void 0!==n?"string"==typeof r?o(e,t).fill(n,r):o(e,t).fill(n):o(e,t)}function l(e,t){if(u(t),e=o(e,t<0?0:0|m(t)),!s.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function h(e,t,n){if("string"==typeof n&&""!==n||(n="utf8"),!s.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|x(t,n);e=o(e,r);var i=e.write(t,n);return i!==r&&(e=e.slice(0,i)),e}function p(e,t){var n=t.length<0?0:0|m(t.length);e=o(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function f(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");return t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r),s.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=s.prototype):e=p(e,t),e}function d(e,t){if(s.isBuffer(t)){var n=0|m(t.length);return e=o(e,n),0===e.length?e:(t.copy(e,0,0,n),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||V(t.length)?o(e,0):p(e,t);if("Buffer"===t.type&&Q(t.data))return p(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function m(e){if(e>=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function g(e){return+e!=e&&(e=0),s.alloc(+e)}function x(e,t){if(s.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return K(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return q(e).length;default:if(r)return K(e).length;t=(""+t).toLowerCase(),r=!0}}function y(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return P(this,t,n);case"utf8":case"utf-8":return T(this,t,n);case"ascii":return N(this,t,n);case"latin1":case"binary":return I(this,t,n);case"base64":return F(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function v(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function b(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=s.from(t,r)),s.isBuffer(t))return 0===t.length?-1:D(e,t,n,r,i);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):D(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function D(e,t,n,r,i){function o(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}var s=1,a=e.length,u=t.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;s=2,a/=2,u/=2,n/=2}var c;if(i){var l=-1;for(c=n;c<a;c++)if(o(e,c)===o(t,l===-1?0:c-l)){if(l===-1&&(l=c),c-l+1===u)return l*s}else l!==-1&&(c-=c-l),l=-1}else for(n+u>a&&(n=a-u),c=n;c>=0;c--){for(var h=!0,p=0;p<u;p++)if(o(e,c+p)!==o(t,p)){h=!1;break}if(h)return c}return-1}function w(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r),r>i&&(r=i)):r=i;var o=t.length;if(o%2!==0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var s=0;s<r;++s){var a=parseInt(t.substr(2*s,2),16);if(isNaN(a))return s;e[n+s]=a}return s}function E(e,t,n,r){return G(K(t,e.length-n),e,n,r)}function k(e,t,n,r){return G(W(t),e,n,r)}function A(e,t,n,r){return k(e,t,n,r)}function C(e,t,n,r){return G(q(t),e,n,r)}function S(e,t,n,r){return G(H(t,e.length-n),e,n,r)}function F(e,t,n){return 0===t&&n===e.length?$.fromByteArray(e):$.fromByteArray(e.slice(t,n))}function T(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var o=e[i],s=null,a=o>239?4:o>223?3:o>191?2:1;if(i+a<=n){var u,c,l,h;switch(a){case 1:o<128&&(s=o);break;case 2:u=e[i+1],128===(192&u)&&(h=(31&o)<<6|63&u,h>127&&(s=h));break;case 3:u=e[i+1],c=e[i+2],128===(192&u)&&128===(192&c)&&(h=(15&o)<<12|(63&u)<<6|63&c,h>2047&&(h<55296||h>57343)&&(s=h));break;case 4:u=e[i+1],c=e[i+2],l=e[i+3],128===(192&u)&&128===(192&c)&&128===(192&l)&&(h=(15&o)<<18|(63&u)<<12|(63&c)<<6|63&l,h>65535&&h<1114112&&(s=h))}}null===s?(s=65533,a=1):s>65535&&(s-=65536,r.push(s>>>10&1023|55296),s=56320|1023&s),r.push(s),i+=a}return B(r)}function B(e){var t=e.length;if(t<=ee)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=ee));return n}function N(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function I(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function P(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var i="",o=t;o<n;++o)i+=Y(e[o]);return i}function M(e,t,n){for(var r=e.slice(t,n),i="",o=0;o<r.length;o+=2)i+=String.fromCharCode(r[o]+256*r[o+1]);return i}function O(e,t,n){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function _(e,t,n,r,i,o){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<o)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function L(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-n,2);i<o;++i)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function R(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-n,4);i<o;++i)e[n+i]=t>>>8*(r?i:3-i)&255}function U(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function j(e,t,n,r,i){return i||U(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),Z.write(e,t,n,r,23,4),n+4}function z(e,t,n,r,i){return i||U(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),Z.write(e,t,n,r,52,8),n+8}function J(e){if(e=X(e).replace(te,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function X(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function Y(e){return e<16?"0"+e.toString(16):e.toString(16)}function K(e,t){t=t||1/0;for(var n,r=e.length,i=null,o=[],s=0;s<r;++s){if(n=e.charCodeAt(s),n>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=(i-55296<<10|n-56320)+65536}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function W(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}function H(e,t){for(var n,r,i,o=[],s=0;s<e.length&&!((t-=2)<0);++s)n=e.charCodeAt(s),r=n>>8,i=n%256,o.push(i),o.push(r);return o}function q(e){return $.toByteArray(J(e))}function G(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function V(e){return e!==e}var $=n(205),Z=n(206),Q=n(207);t.Buffer=s,t.SlowBuffer=g,t.INSPECT_MAX_BYTES=50,s.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:r(),t.kMaxLength=i(),s.poolSize=8192,s._augment=function(e){return e.__proto__=s.prototype,e},s.from=function(e,t,n){return a(null,e,t,n)},s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})),s.alloc=function(e,t,n){return c(null,e,t,n)},s.allocUnsafe=function(e){return l(null,e)},s.allocUnsafeSlow=function(e){return l(null,e)},s.isBuffer=function(e){return!(null==e||!e._isBuffer)},s.compare=function(e,t){if(!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,o=Math.min(n,r);i<o;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},s.isEncoding=function(e){switch(String(e).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(e,t){if(!Q(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return s.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=s.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var o=e[n];if(!s.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,i),i+=o.length}return r},s.byteLength=x,s.prototype._isBuffer=!0,s.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)v(this,t,t+1);return this},s.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)v(this,t,t+3),v(this,t+1,t+2);return this},s.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)v(this,t,t+7),v(this,t+1,t+6),v(this,t+2,t+5),v(this,t+3,t+4);return this},s.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?T(this,0,e):y.apply(this,arguments)},s.prototype.equals=function(e){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===s.compare(this,e)},s.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},s.prototype.compare=function(e,t,n,r,i){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;for(var o=i-r,a=n-t,u=Math.min(o,a),c=this.slice(r,i),l=e.slice(t,n),h=0;h<u;++h)if(c[h]!==l[h]){o=c[h],a=l[h];break}return o<a?-1:a<o?1:0},s.prototype.includes=function(e,t,n){return this.indexOf(e,t,n)!==-1},s.prototype.indexOf=function(e,t,n){return b(this,e,t,n,!0)},s.prototype.lastIndexOf=function(e,t,n){return b(this,e,t,n,!1)},s.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return E(this,e,t,n);case"ascii":return k(this,e,t,n);case"latin1":case"binary":return A(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var ee=4096;s.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t<e&&(t=e);var r;if(s.TYPED_ARRAY_SUPPORT)r=this.subarray(e,t),r.__proto__=s.prototype;else{var i=t-e;r=new s(i,void 0);for(var o=0;o<i;++o)r[o]=this[o+e]}return r},s.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||O(e,t,this.length);for(var r=this[e],i=1,o=0;++o<t&&(i*=256);)r+=this[e+o]*i;return r},s.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||O(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},s.prototype.readUInt8=function(e,t){return t||O(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||O(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||O(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||O(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||O(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||O(e,t,this.length);for(var r=this[e],i=1,o=0;++o<t&&(i*=256);)r+=this[e+o]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*t)),r},s.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||O(e,t,this.length);for(var r=t,i=1,o=this[e+--r];r>0&&(i*=256);)o+=this[e+--r]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},s.prototype.readInt8=function(e,t){return t||O(e,1,this.length),128&this[e]?(255-this[e]+1)*-1:this[e]},s.prototype.readInt16LE=function(e,t){t||O(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt16BE=function(e,t){t||O(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},s.prototype.readInt32LE=function(e,t){return t||O(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||O(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return t||O(e,4,this.length),Z.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||O(e,4,this.length),Z.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||O(e,8,this.length),Z.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||O(e,8,this.length),Z.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){var i=Math.pow(2,8*n)-1;_(this,e,t,n,i,0)}var o=1,s=0;for(this[t]=255&e;++s<n&&(o*=256);)this[t+s]=e/o&255;return t+n},s.prototype.writeUIntBE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){var i=Math.pow(2,8*n)-1;_(this,e,t,n,i,0)}var o=n-1,s=1;for(this[t+o]=255&e;--o>=0&&(s*=256);)this[t+o]=e/s&255;return t+n},s.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):R(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);_(this,e,t,n,i-1,-i)}var o=0,s=1,a=0;for(this[t]=255&e;++o<n&&(s*=256);)e<0&&0===a&&0!==this[t+o-1]&&(a=1),this[t+o]=(e/s>>0)-a&255;return t+n},s.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);_(this,e,t,n,i-1,-i)}var o=n-1,s=1,a=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/s>>0)-a&255;return t+n},s.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):L(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):L(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):R(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||_(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,n){return j(this,e,t,!0,n)},s.prototype.writeFloatBE=function(e,t,n){return j(this,e,t,!1,n)},s.prototype.writeDoubleLE=function(e,t,n){return z(this,e,t,!0,n)},s.prototype.writeDoubleBE=function(e,t,n){return z(this,e,t,!1,n)},s.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,o=r-n;if(this===e&&n<t&&t<r)for(i=o-1;i>=0;--i)e[i+t]=this[i+n];else if(o<1e3||!s.TYPED_ARRAY_SUPPORT)for(i=0;i<o;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+o),t);return o},s.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!s.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var o;if("number"==typeof e)for(o=t;o<n;++o)this[o]=e;else{var a=s.isBuffer(e)?e:K(new s(e,r).toString()),u=a.length;for(o=0;o<n-t;++o)this[o+t]=a[o%u]}return this};var te=/[^+\/0-9A-Za-z-_]/g}).call(t,function(){return this}())},function(e,t){"use strict";function n(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function r(e){return 3*e.length/4-n(e)}function i(e){var t,r,i,o,s,a=e.length;o=n(e),s=new l(3*a/4-o),r=o>0?a-4:a;var u=0;for(t=0;t<r;t+=4)i=c[e.charCodeAt(t)]<<18|c[e.charCodeAt(t+1)]<<12|c[e.charCodeAt(t+2)]<<6|c[e.charCodeAt(t+3)],s[u++]=i>>16&255,s[u++]=i>>8&255,s[u++]=255&i;return 2===o?(i=c[e.charCodeAt(t)]<<2|c[e.charCodeAt(t+1)]>>4,s[u++]=255&i):1===o&&(i=c[e.charCodeAt(t)]<<10|c[e.charCodeAt(t+1)]<<4|c[e.charCodeAt(t+2)]>>2,s[u++]=i>>8&255,s[u++]=255&i),s}function o(e){return u[e>>18&63]+u[e>>12&63]+u[e>>6&63]+u[63&e]}function s(e,t,n){for(var r,i=[],s=t;s<n;s+=3)r=(e[s]<<16)+(e[s+1]<<8)+e[s+2],i.push(o(r));return i.join("")}function a(e){for(var t,n=e.length,r=n%3,i="",o=[],a=16383,c=0,l=n-r;c<l;c+=a)o.push(s(e,c,c+a>l?l:c+a));return 1===r?(t=e[n-1],i+=u[t>>2],i+=u[t<<4&63],i+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],i+=u[t>>10],i+=u[t>>4&63],i+=u[t<<2&63],i+="="),o.push(i),o.join("")}t.byteLength=r,t.toByteArray=i,t.fromByteArray=a;for(var u=[],c=[],l="undefined"!=typeof Uint8Array?Uint8Array:Array,h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",p=0,f=h.length;p<f;++p)u[p]=h[p],c[h.charCodeAt(p)]=p;c["-".charCodeAt(0)]=62,c["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,i){var o,s,a=8*i-r-1,u=(1<<a)-1,c=u>>1,l=-7,h=n?i-1:0,p=n?-1:1,f=e[t+h];for(h+=p,o=f&(1<<-l)-1,f>>=-l,l+=a;l>0;o=256*o+e[t+h],h+=p,l-=8);for(s=o&(1<<-l)-1,o>>=-l,l+=r;l>0;s=256*s+e[t+h],h+=p,l-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:(f?-1:1)*(1/0);s+=Math.pow(2,r),o-=c}return(f?-1:1)*s*Math.pow(2,o-r)},t.write=function(e,t,n,r,i,o){var s,a,u,c=8*o-i-1,l=(1<<c)-1,h=l>>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:o-1,d=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=l):(s=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-s))<1&&(s--,u*=2),t+=s+h>=1?p/u:p*Math.pow(2,1-h),t*u>=2&&(s++,u/=2),s+h>=l?(a=0,s=l):s+h>=1?(a=(t*u-1)*Math.pow(2,i),s+=h):(a=t*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;e[n+f]=255&a,f+=d,a/=256,i-=8);for(s=s<<i|a,c+=i;c>0;e[n+f]=255&s,f+=d,s/=256,c-=8);e[n+f-d]|=128*m}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";function r(e){if(null===e)return!0;var t,n,r,i,o,u=[],c=e;for(t=0,n=c.length;t<n;t+=1){if(r=c[t],o=!1,"[object Object]"!==a.call(r))return!1;for(i in r)if(s.call(r,i)){if(o)return!1;o=!0}if(!o)return!1;if(u.indexOf(i)!==-1)return!1;u.push(i)}return!0}function i(e){return null!==e?e:[]}var o=n(190),s=Object.prototype.hasOwnProperty,a=Object.prototype.toString;e.exports=new o("tag:yaml.org,2002:omap",{kind:"sequence",resolve:r,construct:i})},function(e,t,n){"use strict";function r(e){if(null===e)return!0;var t,n,r,i,o,a=e;for(o=new Array(a.length),t=0,n=a.length;t<n;t+=1){if(r=a[t],"[object Object]"!==s.call(r))return!1;if(i=Object.keys(r),1!==i.length)return!1;o[t]=[i[0],r[i[0]]]}return!0}function i(e){if(null===e)return[];var t,n,r,i,o,s=e;for(o=new Array(s.length),t=0,n=s.length;t<n;t+=1)r=s[t],i=Object.keys(r),o[t]=[i[0],r[i[0]]];return o}var o=n(190),s=Object.prototype.toString;e.exports=new o("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:r,construct:i})},function(e,t,n){"use strict";function r(e){if(null===e)return!0;var t,n=e;for(t in n)if(s.call(n,t)&&null!==n[t])return!1;return!0}function i(e){return null!==e?e:{}}var o=n(190),s=Object.prototype.hasOwnProperty;e.exports=new o("tag:yaml.org,2002:set",{kind:"mapping",resolve:r,construct:i})},function(e,t,n){"use strict";var r=n(189);e.exports=r.DEFAULT=new r({include:[n(188)],explicit:[n(212),n(213),n(214)]})},function(e,t,n){"use strict";function r(){return!0}function i(){}function o(){return""}function s(e){return"undefined"==typeof e}var a=n(190);e.exports=new a("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:r,construct:i,predicate:s,represent:o})},function(e,t,n){"use strict";function r(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,n=/\/([gim]*)$/.exec(e),r="";if("/"===t[0]){if(n&&(r=n[1]),r.length>3)return!1;if("/"!==t[t.length-r.length-1])return!1}return!0}function i(e){var t=e,n=/\/([gim]*)$/.exec(e),r="";return"/"===t[0]&&(n&&(r=n[1]),t=t.slice(1,t.length-r.length-1)),new RegExp(t,r)}function o(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function s(e){return"[object RegExp]"===Object.prototype.toString.call(e)}var a=n(190);e.exports=new a("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:r,construct:i,predicate:s,represent:o})},function(e,t,n){function r(e){if(null===e)return!1;try{var t="("+e+")",n=a.parse(t,{range:!0});return"Program"===n.type&&1===n.body.length&&"ExpressionStatement"===n.body[0].type&&"FunctionExpression"===n.body[0].expression.type}catch(e){return!1}}function i(e){var t,n="("+e+")",r=a.parse(n,{range:!0}),i=[];if("Program"!==r.type||1!==r.body.length||"ExpressionStatement"!==r.body[0].type||"FunctionExpression"!==r.body[0].expression.type)throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(e){i.push(e.name)}),t=r.body[0].expression.body.range,new Function(i,n.slice(t[0]+1,t[1]-1))}function o(e){return e.toString()}function s(e){return"[object Function]"===Object.prototype.toString.call(e)}var a;try{a=n(215)}catch(e){"undefined"!=typeof window&&(a=window.esprima)}var u=n(190);e.exports=new u("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:r,construct:i,predicate:s,represent:o})},function(e,t,n){!function(t,n){e.exports=n()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e,t,n){var r=null,i=function(e,t){n&&n(e,t),r&&r.visit(e,t)},u="function"==typeof n?i:null,c=!1;if(t){c="boolean"==typeof t.comment&&t.comment;var l="boolean"==typeof t.attachComment&&t.attachComment;(c||l)&&(r=new o.CommentHandler,r.attach=l,t.comment=!0,u=i)}var h;h=t&&"boolean"==typeof t.jsx&&t.jsx?new a.JSXParser(e,t,u):new s.Parser(e,t,u);var p=h.parseProgram();return c&&(p.comments=r.comments),h.config.tokens&&(p.tokens=h.tokens),h.config.tolerant&&(p.errors=h.errorHandler.errors),p}function i(e,t,n){var r,i=new u.Tokenizer(e,t);r=[];try{for(;;){var o=i.getNextToken();if(!o)break;n&&(o=n(o)),r.push(o)}}catch(e){i.errorHandler.tolerate(e)}return i.errorHandler.tolerant&&(r.errors=i.errors()),r}var o=n(1),s=n(3),a=n(11),u=n(15);t.parse=r,t.tokenize=i;var c=n(2);t.Syntax=c.Syntax,t.version="3.1.3"},function(e,t,n){"use strict";var r=n(2),i=function(){function e(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return e.prototype.insertInnerComments=function(e,t){if(e.type===r.Syntax.BlockStatement&&0===e.body.length){for(var n=[],i=this.leading.length-1;i>=0;--i){var o=this.leading[i];t.end.offset>=o.start&&(n.unshift(o.comment),this.leading.splice(i,1),this.trailing.splice(i,1))}n.length&&(e.innerComments=n)}},e.prototype.findTrailingComments=function(e,t){var n=[];if(this.trailing.length>0){for(var r=this.trailing.length-1;r>=0;--r){var i=this.trailing[r];i.start>=t.end.offset&&n.unshift(i.comment)}return this.trailing.length=0,n}var o=this.stack[this.stack.length-1];if(o&&o.node.trailingComments){var s=o.node.trailingComments[0];s&&s.range[0]>=t.end.offset&&(n=o.node.trailingComments,delete o.node.trailingComments)}return n},e.prototype.findLeadingComments=function(e,t){for(var n,r=[];this.stack.length>0;){var i=this.stack[this.stack.length-1];if(!(i&&i.start>=t.start.offset))break;n=this.stack.pop().node}if(n){for(var o=n.leadingComments?n.leadingComments.length:0,s=o-1;s>=0;--s){var a=n.leadingComments[s];a.range[1]<=t.start.offset&&(r.unshift(a),n.leadingComments.splice(s,1))}return n.leadingComments&&0===n.leadingComments.length&&delete n.leadingComments,r}for(var s=this.leading.length-1;s>=0;--s){var i=this.leading[s];i.start<=t.start.offset&&(r.unshift(i.comment),this.leading.splice(s,1))}return r},e.prototype.visitNode=function(e,t){if(!(e.type===r.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var n=this.findTrailingComments(e,t),i=this.findLeadingComments(e,t);i.length>0&&(e.leadingComments=i),n.length>0&&(e.trailingComments=n),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var n="L"===e.type[0]?"Line":"Block",r={type:n,value:e.value};if(e.range&&(r.range=e.range),e.loc&&(r.loc=e.loc),this.comments.push(r),this.attach){var i={comment:{type:n,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(i.comment.loc=e.loc),e.type=n,this.leading.push(i),this.trailing.push(i)}},e.prototype.visit=function(e,t){"LineComment"===e.type?this.visitComment(e,t):"BlockComment"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=i},function(e,t){"use strict";t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,n){"use strict";var r=n(4),i=n(5),o=n(6),s=n(7),a=n(8),u=n(2),c=n(10),l="ArrowParameterPlaceHolder",h=function(){function e(e,t,n){void 0===t&&(t={}),this.config={range:"boolean"==typeof t.range&&t.range,loc:"boolean"==typeof t.loc&&t.loc,source:null,tokens:"boolean"==typeof t.tokens&&t.tokens,comment:"boolean"==typeof t.comment&&t.comment,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=n,this.errorHandler=new o.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new a.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2, +"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.sourceType=t&&"module"===t.sourceType?"module":"script",this.lookahead=null,this.hasLineTerminator=!1,this.context={allowIn:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:"module"===this.sourceType},this.tokens=[],this.startMarker={index:0,lineNumber:this.scanner.lineNumber,lineStart:0},this.lastMarker={index:0,lineNumber:this.scanner.lineNumber,lineStart:0},this.nextToken(),this.lastMarker={index:this.scanner.index,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var i=Array.prototype.slice.call(arguments,1),o=e.replace(/%(\d)/g,function(e,t){return r.assert(t<i.length,"Message reference must be in range"),i[t]}),s=this.lastMarker.index,a=this.lastMarker.lineNumber,u=this.lastMarker.index-this.lastMarker.lineStart+1;throw this.errorHandler.createError(s,a,u,o)},e.prototype.tolerateError=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var i=Array.prototype.slice.call(arguments,1),o=e.replace(/%(\d)/g,function(e,t){return r.assert(t<i.length,"Message reference must be in range"),i[t]}),s=this.lastMarker.index,a=this.scanner.lineNumber,u=this.lastMarker.index-this.lastMarker.lineStart+1;this.errorHandler.tolerateError(s,a,u,o)},e.prototype.unexpectedTokenError=function(e,t){var n,r=t||i.Messages.UnexpectedToken;if(e?(t||(r=e.type===s.Token.EOF?i.Messages.UnexpectedEOS:e.type===s.Token.Identifier?i.Messages.UnexpectedIdentifier:e.type===s.Token.NumericLiteral?i.Messages.UnexpectedNumber:e.type===s.Token.StringLiteral?i.Messages.UnexpectedString:e.type===s.Token.Template?i.Messages.UnexpectedTemplate:i.Messages.UnexpectedToken,e.type===s.Token.Keyword&&(this.scanner.isFutureReservedWord(e.value)?r=i.Messages.UnexpectedReserved:this.context.strict&&this.scanner.isStrictModeReservedWord(e.value)&&(r=i.Messages.StrictReservedWord))),n=e.type===s.Token.Template?e.value.raw:e.value):n="ILLEGAL",r=r.replace("%0",n),e&&"number"==typeof e.lineNumber){var o=e.start,a=e.lineNumber,u=e.start-this.lastMarker.lineStart+1;return this.errorHandler.createError(o,a,u,r)}var o=this.lastMarker.index,a=this.lastMarker.lineNumber,u=o-this.lastMarker.lineStart+1;return this.errorHandler.createError(o,a,u,r)},e.prototype.throwUnexpectedToken=function(e,t){throw this.unexpectedTokenError(e,t)},e.prototype.tolerateUnexpectedToken=function(e,t){this.errorHandler.tolerate(this.unexpectedTokenError(e,t))},e.prototype.collectComments=function(){if(this.config.comment){var e=this.scanner.scanComments();if(e.length>0&&this.delegate)for(var t=0;t<e.length;++t){var n=e[t],r=void 0;r={type:n.multiLine?"BlockComment":"LineComment",value:this.scanner.source.slice(n.slice[0],n.slice[1])},this.config.range&&(r.range=n.range),this.config.loc&&(r.loc=n.loc);var i={start:{line:n.loc.start.line,column:n.loc.start.column,offset:n.range[0]},end:{line:n.loc.end.line,column:n.loc.end.column,offset:n.range[1]}};this.delegate(r,i)}}else this.scanner.scanComments()},e.prototype.getTokenRaw=function(e){return this.scanner.source.slice(e.start,e.end)},e.prototype.convertToken=function(e){var t;return t={type:s.TokenName[e.type],value:this.getTokenRaw(e)},this.config.range&&(t.range=[e.start,e.end]),this.config.loc&&(t.loc={start:{line:this.startMarker.lineNumber,column:this.startMarker.index-this.startMarker.lineStart},end:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}),e.regex&&(t.regex=e.regex),t},e.prototype.nextToken=function(){var e=this.lookahead;this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;var t;return t=this.scanner.lex(),this.hasLineTerminator=!(!e||!t)&&e.lineNumber!==t.lineNumber,t&&this.context.strict&&t.type===s.Token.Identifier&&this.scanner.isStrictModeReservedWord(t.value)&&(t.type=s.Token.Keyword),this.lookahead=t,this.config.tokens&&t.type!==s.Token.EOF&&this.tokens.push(this.convertToken(t)),e},e.prototype.nextRegexToken=function(){this.collectComments();var e=this.scanner.scanRegExp();return this.config.tokens&&(this.tokens.pop(),this.tokens.push(this.convertToken(e))),this.lookahead=e,this.nextToken(),e},e.prototype.createNode=function(){return{index:this.startMarker.index,line:this.startMarker.lineNumber,column:this.startMarker.index-this.startMarker.lineStart}},e.prototype.startNode=function(e){return{index:e.start,line:e.lineNumber,column:e.start-e.lineStart}},e.prototype.finalize=function(e,t){if(this.config.range&&(t.range=[e.index,this.lastMarker.index]),this.config.loc&&(t.loc={start:{line:e.line,column:e.column},end:{line:this.lastMarker.lineNumber,column:this.lastMarker.index-this.lastMarker.lineStart}},this.config.source&&(t.loc.source=this.config.source)),this.delegate){var n={start:{line:e.line,column:e.column,offset:e.index},end:{line:this.lastMarker.lineNumber,column:this.lastMarker.index-this.lastMarker.lineStart,offset:this.lastMarker.index}};this.delegate(t,n)}return t},e.prototype.expect=function(e){var t=this.nextToken();t.type===s.Token.Punctuator&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.expectCommaSeparator=function(){if(this.config.tolerant){var e=this.lookahead;e.type===s.Token.Punctuator&&","===e.value?this.nextToken():e.type===s.Token.Punctuator&&";"===e.value?(this.nextToken(),this.tolerateUnexpectedToken(e)):this.tolerateUnexpectedToken(e,i.Messages.UnexpectedToken)}else this.expect(",")},e.prototype.expectKeyword=function(e){var t=this.nextToken();t.type===s.Token.Keyword&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.match=function(e){return this.lookahead.type===s.Token.Punctuator&&this.lookahead.value===e},e.prototype.matchKeyword=function(e){return this.lookahead.type===s.Token.Keyword&&this.lookahead.value===e},e.prototype.matchContextualKeyword=function(e){return this.lookahead.type===s.Token.Identifier&&this.lookahead.value===e},e.prototype.matchAssign=function(){if(this.lookahead.type!==s.Token.Punctuator)return!1;var e=this.lookahead.value;return"="===e||"*="===e||"**="===e||"/="===e||"%="===e||"+="===e||"-="===e||"<<="===e||">>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,n=this.context.isAssignmentTarget,r=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=n,this.context.firstCoverInitializedNameError=r,i},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,n=this.context.isAssignmentTarget,r=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&n,this.context.firstCoverInitializedNameError=r||this.context.firstCoverInitializedNameError,i},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(this.lookahead.type===s.Token.EOF||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.lineNumber=this.startMarker.lineNumber,this.lastMarker.lineStart=this.startMarker.lineStart)},e.prototype.parsePrimaryExpression=function(){var e,t,n,r,o=this.createNode();switch(this.lookahead.type){case s.Token.Identifier:"module"===this.sourceType&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.finalize(o,new c.Identifier(this.nextToken().value));break;case s.Token.NumericLiteral:case s.Token.StringLiteral:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,i.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),r=this.getTokenRaw(n),e=this.finalize(o,new c.Literal(n.value,r));break;case s.Token.BooleanLiteral:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),n.value="true"===n.value,r=this.getTokenRaw(n),e=this.finalize(o,new c.Literal(n.value,r));break;case s.Token.NullLiteral:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,n=this.nextToken(),n.value=null,r=this.getTokenRaw(n),e=this.finalize(o,new c.Literal(n.value,r));break;case s.Token.Template:e=this.parseTemplateLiteral();break;case s.Token.Punctuator:switch(t=this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,n=this.nextRegexToken(),r=this.getTokenRaw(n),e=this.finalize(o,new c.RegexLiteral(n.value,r,n.regex));break;default:this.throwUnexpectedToken(this.nextToken())}break;case s.Token.Keyword:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(o,new c.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(o,new c.ThisExpression)):this.matchKeyword("class")?e=this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new c.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var n=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(n)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new c.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,n=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,n},e.prototype.parsePropertyMethodFunction=function(){var e=!1,t=this.createNode(),n=this.context.allowYield;this.context.allowYield=!1;var r=this.parseFormalParameters(),i=this.parsePropertyMethod(r);return this.context.allowYield=n,this.finalize(t,new c.FunctionExpression(null,r.params,i,e))},e.prototype.parseObjectPropertyKey=function(){var e=this.createNode(),t=this.nextToken(),n=null;switch(t.type){case s.Token.StringLiteral:case s.Token.NumericLiteral:this.context.strict&&t.octal&&this.tolerateUnexpectedToken(t,i.Messages.StrictOctalLiteral);var r=this.getTokenRaw(t);n=this.finalize(e,new c.Literal(t.value,r));break;case s.Token.Identifier:case s.Token.BooleanLiteral:case s.Token.NullLiteral:case s.Token.Keyword:n=this.finalize(e,new c.Identifier(t.value));break;case s.Token.Punctuator:"["===t.value?(n=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):this.throwUnexpectedToken(t);break;default:this.throwUnexpectedToken(t)}return n},e.prototype.isPropertyKey=function(e,t){return e.type===u.Syntax.Identifier&&e.name===t||e.type===u.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,n,r,o=this.createNode(),a=this.lookahead,u=!1,l=!1,h=!1;a.type===s.Token.Identifier?(this.nextToken(),n=this.finalize(o,new c.Identifier(a.value))):this.match("*")?this.nextToken():(u=this.match("["),n=this.parseObjectPropertyKey());var p=this.qualifiedPropertyName(this.lookahead);if(a.type===s.Token.Identifier&&"get"===a.value&&p)t="get",u=this.match("["),n=this.parseObjectPropertyKey(),this.context.allowYield=!1,r=this.parseGetterMethod();else if(a.type===s.Token.Identifier&&"set"===a.value&&p)t="set",u=this.match("["),n=this.parseObjectPropertyKey(),r=this.parseSetterMethod();else if(a.type===s.Token.Punctuator&&"*"===a.value&&p)t="init",u=this.match("["),n=this.parseObjectPropertyKey(),r=this.parseGeneratorMethod(),l=!0;else if(n||this.throwUnexpectedToken(this.lookahead),t="init",this.match(":"))!u&&this.isPropertyKey(n,"__proto__")&&(e.value&&this.tolerateError(i.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),r=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))r=this.parsePropertyMethodFunction(),l=!0;else if(a.type===s.Token.Identifier){var f=this.finalize(o,new c.Identifier(a.value));if(this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),h=!0;var d=this.isolateCoverGrammar(this.parseAssignmentExpression);r=this.finalize(o,new c.AssignmentPattern(f,d))}else h=!0,r=f}else this.throwUnexpectedToken(this.nextToken());return this.finalize(o,new c.Property(t,n,u,r,l,h))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],n={value:!1};!this.match("}");)t.push(this.parseObjectProperty(n)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new c.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){r.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),n={raw:t.value.raw,cooked:t.value.cooked};return this.finalize(e,new c.TemplateElement(n,t.tail))},e.prototype.parseTemplateElement=function(){this.lookahead.type!==s.Token.Template&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),n={raw:t.value.raw,cooked:t.value.cooked};return this.finalize(e,new c.TemplateElement(n,t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],n=[],r=this.parseTemplateHead();for(n.push(r);!r.tail;)t.push(this.parseExpression()),r=this.parseTemplateElement(),n.push(r);return this.finalize(e,new c.TemplateLiteral(n,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case u.Syntax.Identifier:case u.Syntax.MemberExpression:case u.Syntax.RestElement:case u.Syntax.AssignmentPattern:break;case u.Syntax.SpreadElement:e.type=u.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case u.Syntax.ArrayExpression:e.type=u.Syntax.ArrayPattern;for(var t=0;t<e.elements.length;t++)null!==e.elements[t]&&this.reinterpretExpressionAsPattern(e.elements[t]);break;case u.Syntax.ObjectExpression:e.type=u.Syntax.ObjectPattern;for(var t=0;t<e.properties.length;t++)this.reinterpretExpressionAsPattern(e.properties[t].value);break;case u.Syntax.AssignmentExpression:e.type=u.Syntax.AssignmentPattern,delete e.operator,this.reinterpretExpressionAsPattern(e.left)}},e.prototype.parseGroupExpression=function(){var e;if(this.expect("("),this.match(")"))this.nextToken(),this.match("=>")||this.expect("=>"),e={type:l,params:[]};else{var t=this.lookahead,n=[];if(this.match("..."))e=this.parseRestElement(n),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:l,params:[e]};else{var r=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var i=[];for(this.context.isAssignmentTarget=!1,i.push(e);this.startMarker.index<this.scanner.length&&this.match(",");){if(this.nextToken(),this.match("...")){this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),i.push(this.parseRestElement(n)),this.expect(")"),this.match("=>")||this.expect("=>"),this.context.isBindingElement=!1;for(var o=0;o<i.length;o++)this.reinterpretExpressionAsPattern(i[o]);r=!0,e={type:l,params:i}}else i.push(this.inheritCoverGrammar(this.parseAssignmentExpression));if(r)break}r||(e=this.finalize(this.startNode(t),new c.SequenceExpression(i)))}if(!r){if(this.expect(")"),this.match("=>")&&(e.type===u.Syntax.Identifier&&"yield"===e.name&&(r=!0,e={type:l,params:[e]}),!r)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===u.Syntax.SequenceExpression)for(var o=0;o<e.expressions.length;o++)this.reinterpretExpressionAsPattern(e.expressions[o]);else this.reinterpretExpressionAsPattern(e);var s=e.type===u.Syntax.SequenceExpression?e.expressions:[e];e={type:l,params:s}}this.context.isBindingElement=!1}}}return e},e.prototype.parseArguments=function(){this.expect("(");var e=[];if(!this.match(")"))for(;;){var t=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAssignmentExpression);if(e.push(t),this.match(")"))break;this.expectCommaSeparator()}return this.expect(")"),e},e.prototype.isIdentifierName=function(e){return e.type===s.Token.Identifier||e.type===s.Token.Keyword||e.type===s.Token.BooleanLiteral||e.type===s.Token.NullLiteral},e.prototype.parseIdentifierName=function(){var e=this.createNode(),t=this.nextToken();return this.isIdentifierName(t)||this.throwUnexpectedToken(t),this.finalize(e,new c.Identifier(t.value))},e.prototype.parseNewExpression=function(){var e=this.createNode(),t=this.parseIdentifierName();r.assert("new"===t.name,"New expression must start with `new`");var n;if(this.match("."))if(this.nextToken(),this.lookahead.type===s.Token.Identifier&&this.context.inFunctionBody&&"target"===this.lookahead.value){var i=this.parseIdentifierName();n=new c.MetaProperty(t,i)}else this.throwUnexpectedToken(this.lookahead);else{var o=this.isolateCoverGrammar(this.parseLeftHandSideExpression),a=this.match("(")?this.parseArguments():[];n=new c.NewExpression(o,a),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return this.finalize(e,n)},e.prototype.parseLeftHandSideExpressionAllowCall=function(){var e=this.lookahead,t=this.context.allowIn;this.context.allowIn=!0;var n;for(this.matchKeyword("super")&&this.context.inFunctionBody?(n=this.createNode(),this.nextToken(),n=this.finalize(n,new c.Super),this.match("(")||this.match(".")||this.match("[")||this.throwUnexpectedToken(this.lookahead)):n=this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match(".")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(".");var r=this.parseIdentifierName();n=this.finalize(this.startNode(e),new c.StaticMemberExpression(n,r))}else if(this.match("(")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!1;var i=this.parseArguments();n=this.finalize(this.startNode(e),new c.CallExpression(n,i))}else if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("[");var r=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),n=this.finalize(this.startNode(e),new c.ComputedMemberExpression(n,r))}else{if(this.lookahead.type!==s.Token.Template||!this.lookahead.head)break;var o=this.parseTemplateLiteral();n=this.finalize(this.startNode(e),new c.TaggedTemplateExpression(n,o))}return this.context.allowIn=t,n},e.prototype.parseSuper=function(){var e=this.createNode();return this.expectKeyword("super"),this.match("[")||this.match(".")||this.throwUnexpectedToken(this.lookahead),this.finalize(e,new c.Super)},e.prototype.parseLeftHandSideExpression=function(){r.assert(this.context.allowIn,"callee of new expression always allow in keyword.");for(var e=this.startNode(this.lookahead),t=this.matchKeyword("super")&&this.context.inFunctionBody?this.parseSuper():this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("[");var n=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),t=this.finalize(e,new c.ComputedMemberExpression(t,n))}else if(this.match(".")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(".");var n=this.parseIdentifierName();t=this.finalize(e,new c.StaticMemberExpression(t,n))}else{if(this.lookahead.type!==s.Token.Template||!this.lookahead.head)break;var i=this.parseTemplateLiteral();t=this.finalize(e,new c.TaggedTemplateExpression(t,i))}return t},e.prototype.parseUpdateExpression=function(){var e,t=this.lookahead;if(this.match("++")||this.match("--")){var n=this.startNode(t),r=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),this.context.strict&&e.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(i.Messages.StrictLHSPrefix),this.context.isAssignmentTarget||this.tolerateError(i.Messages.InvalidLHSInAssignment);var o=!0;e=this.finalize(n,new c.UpdateExpression(r.value,e,o)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else if(e=this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall),!this.hasLineTerminator&&this.lookahead.type===s.Token.Punctuator&&(this.match("++")||this.match("--"))){this.context.strict&&e.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(i.Messages.StrictLHSPostfix),this.context.isAssignmentTarget||this.tolerateError(i.Messages.InvalidLHSInAssignment),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var a=this.nextToken().value,o=!1;e=this.finalize(this.startNode(t),new c.UpdateExpression(a,e,o))}return e},e.prototype.parseUnaryExpression=function(){var e;if(this.match("+")||this.match("-")||this.match("~")||this.match("!")||this.matchKeyword("delete")||this.matchKeyword("void")||this.matchKeyword("typeof")){var t=this.startNode(this.lookahead),n=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),e=this.finalize(t,new c.UnaryExpression(n.value,e)),this.context.strict&&"delete"===e.operator&&e.argument.type===u.Syntax.Identifier&&this.tolerateError(i.Messages.StrictDelete),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else e=this.parseUpdateExpression();return e},e.prototype.parseExponentiationExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseUnaryExpression);if(t.type!==u.Syntax.UnaryExpression&&this.match("**")){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var n=t,r=this.isolateCoverGrammar(this.parseExponentiationExpression);t=this.finalize(this.startNode(e),new c.BinaryExpression("**",n,r))}return t},e.prototype.binaryPrecedence=function(e){var t,n=e.value;return t=e.type===s.Token.Punctuator?this.operatorPrecedence[n]||0:e.type===s.Token.Keyword&&("instanceof"===n||this.context.allowIn&&"in"===n)?7:0},e.prototype.parseBinaryExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseExponentiationExpression),n=this.lookahead,r=this.binaryPrecedence(n);if(r>0){this.nextToken(),n.prec=r,this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var i=[e,this.lookahead],o=t,s=this.isolateCoverGrammar(this.parseExponentiationExpression),a=[o,n,s];;){if(r=this.binaryPrecedence(this.lookahead),r<=0)break;for(;a.length>2&&r<=a[a.length-2].prec;){s=a.pop();var u=a.pop().value;o=a.pop(),i.pop();var l=this.startNode(i[i.length-1]);a.push(this.finalize(l,new c.BinaryExpression(u,o,s)))}n=this.nextToken(),n.prec=r,a.push(n),i.push(this.lookahead),a.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var h=a.length-1;for(t=a[h],i.pop();h>1;){var l=this.startNode(i.pop());t=this.finalize(l,new c.BinaryExpression(a[h-1].value,a[h-2],t)),h-=2}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var n=this.context.allowIn;this.context.allowIn=!0;var r=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=n,this.expect(":");var i=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new c.ConditionalExpression(t,r,i)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case u.Syntax.Identifier:this.validateParam(e,t,t.name);break;case u.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case u.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case u.Syntax.ArrayPattern:for(var n=0;n<t.elements.length;n++)null!==t.elements[n]&&this.checkPatternParam(e,t.elements[n]);break;case u.Syntax.YieldExpression:break;default:r.assert(t.type===u.Syntax.ObjectPattern,"Invalid type");for(var n=0;n<t.properties.length;n++)this.checkPatternParam(e,t.properties[n].value)}},e.prototype.reinterpretAsCoverFormalsList=function(e){var t,n=[e];switch(e.type){case u.Syntax.Identifier:break;case l:n=e.params;break;default:return null}t={paramSet:{}};for(var r=0;r<n.length;++r){var o=n[r];o.type===u.Syntax.AssignmentPattern&&o.right.type===u.Syntax.YieldExpression&&(o.right.argument&&this.throwUnexpectedToken(this.lookahead),o.right.type=u.Syntax.Identifier,o.right.name="yield",delete o.right.argument,delete o.right.delegate),this.checkPatternParam(t,o),n[r]=o}if(this.context.strict||!this.context.allowYield)for(var r=0;r<n.length;++r){var o=n[r];o.type===u.Syntax.YieldExpression&&this.throwUnexpectedToken(this.lookahead)}if(t.message===i.Messages.StrictParamDupe){var s=this.context.strict?t.stricted:t.firstRestricted;this.throwUnexpectedToken(s,t.message)}return{params:n,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.parseAssignmentExpression=function(){var e;if(!this.context.allowYield&&this.matchKeyword("yield"))e=this.parseYieldExpression();else{var t=this.lookahead,n=t;if(e=this.parseConditionalExpression(),e.type===l||this.match("=>")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var r=this.reinterpretAsCoverFormalsList(e);if(r){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var o=this.context.strict,s=this.context.allowYield;this.context.allowYield=!0;var a=this.startNode(t);this.expect("=>");var h=this.match("{")?this.parseFunctionSourceElements():this.isolateCoverGrammar(this.parseAssignmentExpression),p=h.type!==u.Syntax.BlockStatement;this.context.strict&&r.firstRestricted&&this.throwUnexpectedToken(r.firstRestricted,r.message),this.context.strict&&r.stricted&&this.tolerateUnexpectedToken(r.stricted,r.message),e=this.finalize(a,new c.ArrowFunctionExpression(r.params,h,p)),this.context.strict=o,this.context.allowYield=s}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(i.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===u.Syntax.Identifier){var f=e;this.scanner.isRestrictedWord(f.name)&&this.tolerateUnexpectedToken(n,i.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(f.name)&&this.tolerateUnexpectedToken(n,i.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1),n=this.nextToken();var d=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new c.AssignmentExpression(n.value,e,d)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var n=[];for(n.push(t);this.startMarker.index<this.scanner.length&&this.match(",");)this.nextToken(),n.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new c.SequenceExpression(n))}return t},e.prototype.parseStatementListItem=function(){var e=null;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,this.lookahead.type===s.Token.Keyword)switch(this.lookahead.value){case"export":"module"!==this.sourceType&&this.tolerateUnexpectedToken(this.lookahead,i.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":"module"!==this.sourceType&&this.tolerateUnexpectedToken(this.lookahead,i.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement()}else e=this.parseStatement();return e},e.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var t=[];;){if(this.match("}"))break;t.push(this.parseStatementListItem())}return this.expect("}"),this.finalize(e,new c.BlockStatement(t))},e.prototype.parseLexicalBinding=function(e,t){var n=this.createNode(),r=[],o=this.parsePattern(r,e);this.context.strict&&o.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(o.name)&&this.tolerateError(i.Messages.StrictVarName);var s=null;return"const"===e?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.expect("="),s=this.isolateCoverGrammar(this.parseAssignmentExpression)):(!t.inFor&&o.type!==u.Syntax.Identifier||this.match("="))&&(this.expect("="),s=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(n,new c.VariableDeclarator(o,s))},e.prototype.parseBindingList=function(e,t){for(var n=[this.parseLexicalBinding(e,t)];this.match(",");)this.nextToken(),n.push(this.parseLexicalBinding(e,t));return n},e.prototype.isLexicalDeclaration=function(){var e=this.scanner.index,t=this.scanner.lineNumber,n=this.scanner.lineStart;this.collectComments();var r=this.scanner.lex();return this.scanner.index=e,this.scanner.lineNumber=t,this.scanner.lineStart=n,r.type===s.Token.Identifier||r.type===s.Token.Punctuator&&"["===r.value||r.type===s.Token.Punctuator&&"{"===r.value||r.type===s.Token.Keyword&&"let"===r.value||r.type===s.Token.Keyword&&"yield"===r.value},e.prototype.parseLexicalDeclaration=function(e){var t=this.createNode(),n=this.nextToken().value;r.assert("let"===n||"const"===n,"Lexical declaration must be either let or const");var i=this.parseBindingList(n,e);return this.consumeSemicolon(),this.finalize(t,new c.VariableDeclaration(i,n))},e.prototype.parseBindingRestElement=function(e,t){var n=this.createNode();this.expect("...");var r=this.parsePattern(e,t);return this.finalize(n,new c.RestElement(r))},e.prototype.parseArrayPattern=function(e,t){var n=this.createNode();this.expect("[");for(var r=[];!this.match("]");)if(this.match(","))this.nextToken(),r.push(null);else{if(this.match("...")){r.push(this.parseBindingRestElement(e,t));break}r.push(this.parsePatternWithDefault(e,t)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(n,new c.ArrayPattern(r))},e.prototype.parsePropertyPattern=function(e,t){var n,r,i=this.createNode(),o=!1,a=!1,u=!1;if(this.lookahead.type===s.Token.Identifier){var l=this.lookahead;n=this.parseVariableIdentifier();var h=this.finalize(i,new c.Identifier(l.value));if(this.match("=")){ +e.push(l),a=!0,this.nextToken();var p=this.parseAssignmentExpression();r=this.finalize(this.startNode(l),new c.AssignmentPattern(h,p))}else this.match(":")?(this.expect(":"),r=this.parsePatternWithDefault(e,t)):(e.push(l),a=!0,r=h)}else o=this.match("["),n=this.parseObjectPropertyKey(),this.expect(":"),r=this.parsePatternWithDefault(e,t);return this.finalize(i,new c.Property("init",n,o,r,u,a))},e.prototype.parseObjectPattern=function(e,t){var n=this.createNode(),r=[];for(this.expect("{");!this.match("}");)r.push(this.parsePropertyPattern(e,t)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(n,new c.ObjectPattern(r))},e.prototype.parsePattern=function(e,t){var n;return this.match("[")?n=this.parseArrayPattern(e,t):this.match("{")?n=this.parseObjectPattern(e,t):(!this.matchKeyword("let")||"const"!==t&&"let"!==t||this.tolerateUnexpectedToken(this.lookahead,i.Messages.UnexpectedToken),e.push(this.lookahead),n=this.parseVariableIdentifier(t)),n},e.prototype.parsePatternWithDefault=function(e,t){var n=this.lookahead,r=this.parsePattern(e,t);if(this.match("=")){this.nextToken();var i=this.context.allowYield;this.context.allowYield=!0;var o=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=i,r=this.finalize(this.startNode(n),new c.AssignmentPattern(r,o))}return r},e.prototype.parseVariableIdentifier=function(e){var t=this.createNode(),n=this.nextToken();return n.type===s.Token.Keyword&&"yield"===n.value?(this.context.strict&&this.tolerateUnexpectedToken(n,i.Messages.StrictReservedWord),this.context.allowYield||this.throwUnexpectedToken(n)):n.type!==s.Token.Identifier?this.context.strict&&n.type===s.Token.Keyword&&this.scanner.isStrictModeReservedWord(n.value)?this.tolerateUnexpectedToken(n,i.Messages.StrictReservedWord):(this.context.strict||"let"!==n.value||"var"!==e)&&this.throwUnexpectedToken(n):"module"===this.sourceType&&n.type===s.Token.Identifier&&"await"===n.value&&this.tolerateUnexpectedToken(n),this.finalize(t,new c.Identifier(n.value))},e.prototype.parseVariableDeclaration=function(e){var t=this.createNode(),n=[],r=this.parsePattern(n,"var");this.context.strict&&r.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(i.Messages.StrictVarName);var o=null;return this.match("=")?(this.nextToken(),o=this.isolateCoverGrammar(this.parseAssignmentExpression)):r.type===u.Syntax.Identifier||e.inFor||this.expect("="),this.finalize(t,new c.VariableDeclarator(r,o))},e.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor},n=[];for(n.push(this.parseVariableDeclaration(t));this.match(",");)this.nextToken(),n.push(this.parseVariableDeclaration(t));return n},e.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new c.VariableDeclaration(t,"var"))},e.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new c.EmptyStatement)},e.prototype.parseExpressionStatement=function(){var e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new c.ExpressionStatement(t))},e.prototype.parseIfStatement=function(){var e,t=this.createNode(),n=null;this.expectKeyword("if"),this.expect("(");var r=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new c.EmptyStatement)):(this.expect(")"),e=this.parseStatement(),this.matchKeyword("else")&&(this.nextToken(),n=this.parseStatement())),this.finalize(t,new c.IfStatement(r,e,n))},e.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var t=this.context.inIteration;this.context.inIteration=!0;var n=this.parseStatement();this.context.inIteration=t,this.expectKeyword("while"),this.expect("(");var r=this.parseExpression();return this.expect(")"),this.match(";")&&this.nextToken(),this.finalize(e,new c.DoWhileStatement(n,r))},e.prototype.parseWhileStatement=function(){var e,t=this.createNode();this.expectKeyword("while"),this.expect("(");var n=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new c.EmptyStatement);else{this.expect(")");var r=this.context.inIteration;this.context.inIteration=!0,e=this.parseStatement(),this.context.inIteration=r}return this.finalize(t,new c.WhileStatement(n,e))},e.prototype.parseForStatement=function(){var e,t,n=null,r=null,o=null,s=!0,a=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){n=this.createNode(),this.nextToken();var l=this.context.allowIn;this.context.allowIn=!1;var h=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=l,1===h.length&&this.matchKeyword("in")){var p=h[0];p.init&&(p.id.type===u.Syntax.ArrayPattern||p.id.type===u.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(i.Messages.ForInOfLoopInitializer,"for-in"),n=this.finalize(n,new c.VariableDeclaration(h,"var")),this.nextToken(),e=n,t=this.parseExpression(),n=null}else 1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new c.VariableDeclaration(h,"var")),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,s=!1):(n=this.finalize(n,new c.VariableDeclaration(h,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){n=this.createNode();var f=this.nextToken().value;if(this.context.strict||"in"!==this.lookahead.value){var l=this.context.allowIn;this.context.allowIn=!1;var h=this.parseBindingList(f,{inFor:!0});this.context.allowIn=l,1===h.length&&null===h[0].init&&this.matchKeyword("in")?(n=this.finalize(n,new c.VariableDeclaration(h,f)),this.nextToken(),e=n,t=this.parseExpression(),n=null):1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(n=this.finalize(n,new c.VariableDeclaration(h,f)),this.nextToken(),e=n,t=this.parseAssignmentExpression(),n=null,s=!1):(this.consumeSemicolon(),n=this.finalize(n,new c.VariableDeclaration(h,f)))}else n=this.finalize(n,new c.Identifier(f)),this.nextToken(),e=n,t=this.parseExpression(),n=null}else{var d=this.lookahead,l=this.context.allowIn;if(this.context.allowIn=!1,n=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=l,this.matchKeyword("in"))this.context.isAssignmentTarget&&n.type!==u.Syntax.AssignmentExpression||this.tolerateError(i.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseExpression(),n=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&n.type!==u.Syntax.AssignmentExpression||this.tolerateError(i.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(n),e=n,t=this.parseAssignmentExpression(),n=null,s=!1;else{if(this.match(",")){for(var m=[n];this.match(",");)this.nextToken(),m.push(this.isolateCoverGrammar(this.parseAssignmentExpression));n=this.finalize(this.startNode(d),new c.SequenceExpression(m))}this.expect(";")}}"undefined"==typeof e&&(this.match(";")||(r=this.parseExpression()),this.expect(";"),this.match(")")||(o=this.parseExpression()));var g;if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),g=this.finalize(this.createNode(),new c.EmptyStatement);else{this.expect(")");var x=this.context.inIteration;this.context.inIteration=!0,g=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=x}return"undefined"==typeof e?this.finalize(a,new c.ForStatement(n,r,o,g)):s?this.finalize(a,new c.ForInStatement(e,t,g)):this.finalize(a,new c.ForOfStatement(e,t,g))},e.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var t=null;if(this.lookahead.type===s.Token.Identifier&&!this.hasLineTerminator){t=this.parseVariableIdentifier();var n="$"+t.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(i.Messages.UnknownLabel,t.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.throwError(i.Messages.IllegalContinue),this.finalize(e,new c.ContinueStatement(t))},e.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var t=null;if(this.lookahead.type===s.Token.Identifier&&!this.hasLineTerminator){t=this.parseVariableIdentifier();var n="$"+t.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,n)||this.throwError(i.Messages.UnknownLabel,t.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.context.inSwitch||this.throwError(i.Messages.IllegalBreak),this.finalize(e,new c.BreakStatement(t))},e.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(i.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var t=!this.match(";")&&!this.match("}")&&!this.hasLineTerminator&&this.lookahead.type!==s.Token.EOF,n=t?this.parseExpression():null;return this.consumeSemicolon(),this.finalize(e,new c.ReturnStatement(n))},e.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(i.Messages.StrictModeWith);var e=this.createNode();this.expectKeyword("with"),this.expect("(");var t=this.parseExpression();this.expect(")");var n=this.parseStatement();return this.finalize(e,new c.WithStatement(t,n))},e.prototype.parseSwitchCase=function(){var e,t=this.createNode();this.matchKeyword("default")?(this.nextToken(),e=null):(this.expectKeyword("case"),e=this.parseExpression()),this.expect(":");for(var n=[];;){if(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"))break;n.push(this.parseStatementListItem())}return this.finalize(t,new c.SwitchCase(e,n))},e.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var t=this.parseExpression();this.expect(")");var n=this.context.inSwitch;this.context.inSwitch=!0;var r=[],o=!1;for(this.expect("{");;){if(this.match("}"))break;var s=this.parseSwitchCase();null===s.test&&(o&&this.throwError(i.Messages.MultipleDefaultsInSwitch),o=!0),r.push(s)}return this.expect("}"),this.context.inSwitch=n,this.finalize(e,new c.SwitchStatement(t,r))},e.prototype.parseLabelledStatement=function(){var e,t=this.createNode(),n=this.parseExpression();if(n.type===u.Syntax.Identifier&&this.match(":")){this.nextToken();var r=n,o="$"+r.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,o)&&this.throwError(i.Messages.Redeclaration,"Label",r.name),this.context.labelSet[o]=!0;var s=this.parseStatement();delete this.context.labelSet[o],e=new c.LabeledStatement(r,s)}else this.consumeSemicolon(),e=new c.ExpressionStatement(n);return this.finalize(t,e)},e.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(i.Messages.NewlineAfterThrow);var t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new c.ThrowStatement(t))},e.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var t=[],n=this.parsePattern(t),r={},o=0;o<t.length;o++){var s="$"+t[o].value;Object.prototype.hasOwnProperty.call(r,s)&&this.tolerateError(i.Messages.DuplicateBinding,t[o].value),r[s]=!0}this.context.strict&&n.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(n.name)&&this.tolerateError(i.Messages.StrictCatchVariable),this.expect(")");var a=this.parseBlock();return this.finalize(e,new c.CatchClause(n,a))},e.prototype.parseFinallyClause=function(){return this.expectKeyword("finally"),this.parseBlock()},e.prototype.parseTryStatement=function(){var e=this.createNode();this.expectKeyword("try");var t=this.parseBlock(),n=this.matchKeyword("catch")?this.parseCatchClause():null,r=this.matchKeyword("finally")?this.parseFinallyClause():null;return n||r||this.throwError(i.Messages.NoCatchOrFinally),this.finalize(e,new c.TryStatement(t,n,r))},e.prototype.parseDebuggerStatement=function(){var e=this.createNode();return this.expectKeyword("debugger"),this.consumeSemicolon(),this.finalize(e,new c.DebuggerStatement)},e.prototype.parseStatement=function(){var e=null;switch(this.lookahead.type){case s.Token.BooleanLiteral:case s.Token.NullLiteral:case s.Token.NumericLiteral:case s.Token.StringLiteral:case s.Token.Template:case s.Token.RegularExpression:e=this.parseExpressionStatement();break;case s.Token.Punctuator:var t=this.lookahead.value;e="{"===t?this.parseBlock():"("===t?this.parseExpressionStatement():";"===t?this.parseEmptyStatement():this.parseExpressionStatement();break;case s.Token.Identifier:e=this.parseLabelledStatement();break;case s.Token.Keyword:switch(this.lookahead.value){case"break":e=this.parseBreakStatement();break;case"continue":e=this.parseContinueStatement();break;case"debugger":e=this.parseDebuggerStatement();break;case"do":e=this.parseDoWhileStatement();break;case"for":e=this.parseForStatement();break;case"function":e=this.parseFunctionDeclaration();break;case"if":e=this.parseIfStatement();break;case"return":e=this.parseReturnStatement();break;case"switch":e=this.parseSwitchStatement();break;case"throw":e=this.parseThrowStatement();break;case"try":e=this.parseTryStatement();break;case"var":e=this.parseVariableStatement();break;case"while":e=this.parseWhileStatement();break;case"with":e=this.parseWithStatement();break;default:e=this.parseExpressionStatement()}break;default:this.throwUnexpectedToken(this.lookahead)}return e},e.prototype.parseFunctionSourceElements=function(){var e=this.createNode();this.expect("{");var t=this.parseDirectivePrologues(),n=this.context.labelSet,r=this.context.inIteration,i=this.context.inSwitch,o=this.context.inFunctionBody;for(this.context.labelSet={},this.context.inIteration=!1,this.context.inSwitch=!1,this.context.inFunctionBody=!0;this.startMarker.index<this.scanner.length&&!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.context.labelSet=n,this.context.inIteration=r,this.context.inSwitch=i,this.context.inFunctionBody=o,this.finalize(e,new c.BlockStatement(t))},e.prototype.validateParam=function(e,t,n){var r="$"+n;this.context.strict?(this.scanner.isRestrictedWord(n)&&(e.stricted=t,e.message=i.Messages.StrictParamName),Object.prototype.hasOwnProperty.call(e.paramSet,r)&&(e.stricted=t,e.message=i.Messages.StrictParamDupe)):e.firstRestricted||(this.scanner.isRestrictedWord(n)?(e.firstRestricted=t,e.message=i.Messages.StrictParamName):this.scanner.isStrictModeReservedWord(n)?(e.firstRestricted=t,e.message=i.Messages.StrictReservedWord):Object.prototype.hasOwnProperty.call(e.paramSet,r)&&(e.stricted=t,e.message=i.Messages.StrictParamDupe)),"function"==typeof Object.defineProperty?Object.defineProperty(e.paramSet,r,{value:!0,enumerable:!0,writable:!0,configurable:!0}):e.paramSet[r]=!0},e.prototype.parseRestElement=function(e){var t=this.createNode();this.expect("...");var n=this.parsePattern(e);return this.match("=")&&this.throwError(i.Messages.DefaultRestParameter),this.match(")")||this.throwError(i.Messages.ParameterAfterRestParameter),this.finalize(t,new c.RestElement(n))},e.prototype.parseFormalParameter=function(e){for(var t=[],n=this.match("...")?this.parseRestElement(t):this.parsePatternWithDefault(t),r=0;r<t.length;r++)this.validateParam(e,t[r],t[r].value);return e.params.push(n),!this.match(")")},e.prototype.parseFormalParameters=function(e){var t;if(t={params:[],firstRestricted:e},this.expect("("),!this.match(")"))for(t.paramSet={};this.startMarker.index<this.scanner.length&&this.parseFormalParameter(t);)this.expect(",");return this.expect(")"),{params:t.params,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.parseFunctionDeclaration=function(e){var t=this.createNode();this.expectKeyword("function");var n=this.match("*");n&&this.nextToken();var r,o=null,s=null;if(!e||!this.match("(")){var a=this.lookahead;o=this.parseVariableIdentifier(),this.context.strict?this.scanner.isRestrictedWord(a.value)&&this.tolerateUnexpectedToken(a,i.Messages.StrictFunctionName):this.scanner.isRestrictedWord(a.value)?(s=a,r=i.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(a.value)&&(s=a,r=i.Messages.StrictReservedWord)}var u=this.context.allowYield;this.context.allowYield=!n;var l=this.parseFormalParameters(s),h=l.params,p=l.stricted;s=l.firstRestricted,l.message&&(r=l.message);var f=this.context.strict,d=this.parseFunctionSourceElements();return this.context.strict&&s&&this.throwUnexpectedToken(s,r),this.context.strict&&p&&this.tolerateUnexpectedToken(p,r),this.context.strict=f,this.context.allowYield=u,this.finalize(t,new c.FunctionDeclaration(o,h,d,n))},e.prototype.parseFunctionExpression=function(){var e=this.createNode();this.expectKeyword("function");var t=this.match("*");t&&this.nextToken();var n,r,o=null,s=this.context.allowYield;if(this.context.allowYield=!t,!this.match("(")){var a=this.lookahead;o=this.context.strict||t||!this.matchKeyword("yield")?this.parseVariableIdentifier():this.parseIdentifierName(),this.context.strict?this.scanner.isRestrictedWord(a.value)&&this.tolerateUnexpectedToken(a,i.Messages.StrictFunctionName):this.scanner.isRestrictedWord(a.value)?(r=a,n=i.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(a.value)&&(r=a,n=i.Messages.StrictReservedWord)}var u=this.parseFormalParameters(r),l=u.params,h=u.stricted;r=u.firstRestricted,u.message&&(n=u.message);var p=this.context.strict,f=this.parseFunctionSourceElements();return this.context.strict&&r&&this.throwUnexpectedToken(r,n),this.context.strict&&h&&this.tolerateUnexpectedToken(h,n),this.context.strict=p,this.context.allowYield=s,this.finalize(e,new c.FunctionExpression(o,l,f,t))},e.prototype.parseDirective=function(){var e=this.lookahead,t=null,n=this.createNode(),r=this.parseExpression();return r.type===u.Syntax.Literal&&(t=this.getTokenRaw(e).slice(1,-1)),this.consumeSemicolon(),this.finalize(n,t?new c.Directive(r,t):new c.ExpressionStatement(r))},e.prototype.parseDirectivePrologues=function(){for(var e=null,t=[];;){var n=this.lookahead;if(n.type!==s.Token.StringLiteral)break;var r=this.parseDirective();t.push(r);var o=r.directive;if("string"!=typeof o)break;"use strict"===o?(this.context.strict=!0,e&&this.tolerateUnexpectedToken(e,i.Messages.StrictOctalLiteral)):!e&&n.octal&&(e=n)}return t},e.prototype.qualifiedPropertyName=function(e){switch(e.type){case s.Token.Identifier:case s.Token.StringLiteral:case s.Token.BooleanLiteral:case s.Token.NullLiteral:case s.Token.NumericLiteral:case s.Token.Keyword:return!0;case s.Token.Punctuator:return"["===e.value}return!1},e.prototype.parseGetterMethod=function(){var e=this.createNode();this.expect("("),this.expect(")");var t=!1,n={params:[],stricted:null,firstRestricted:null,message:null},r=this.context.allowYield;this.context.allowYield=!1;var i=this.parsePropertyMethod(n);return this.context.allowYield=r,this.finalize(e,new c.FunctionExpression(null,n.params,i,t))},e.prototype.parseSetterMethod=function(){var e=this.createNode(),t={params:[],firstRestricted:null,paramSet:{}},n=!1,r=this.context.allowYield;this.context.allowYield=!1,this.expect("("),this.match(")")?this.tolerateUnexpectedToken(this.lookahead):this.parseFormalParameter(t),this.expect(")");var i=this.parsePropertyMethod(t);return this.context.allowYield=r,this.finalize(e,new c.FunctionExpression(null,t.params,i,n))},e.prototype.parseGeneratorMethod=function(){var e=this.createNode(),t=!0,n=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();this.context.allowYield=!1;var i=this.parsePropertyMethod(r);return this.context.allowYield=n,this.finalize(e,new c.FunctionExpression(null,r.params,i,t))},e.prototype.isStartOfExpression=function(){var e=!0,t=this.lookahead.value;switch(this.lookahead.type){case s.Token.Punctuator:e="["===t||"("===t||"{"===t||"+"===t||"-"===t||"!"===t||"~"===t||"++"===t||"--"===t||"/"===t||"/="===t;break;case s.Token.Keyword:e="class"===t||"delete"===t||"function"===t||"let"===t||"new"===t||"super"===t||"this"===t||"typeof"===t||"void"===t||"yield"===t}return e},e.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var t=null,n=!1;if(!this.hasLineTerminator){var r=this.context.allowYield;this.context.allowYield=!1,n=this.match("*"),n?(this.nextToken(),t=this.parseAssignmentExpression()):this.isStartOfExpression()&&(t=this.parseAssignmentExpression()),this.context.allowYield=r}return this.finalize(e,new c.YieldExpression(t,n))},e.prototype.parseClassElement=function(e){var t,n,r,o=this.lookahead,a=this.createNode(),u=!1,l=!1,h=!1;if(this.match("*"))this.nextToken();else{u=this.match("["),n=this.parseObjectPropertyKey();var p=n;"static"===p.name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(o=this.lookahead,h=!0,u=this.match("["),this.match("*")?this.nextToken():n=this.parseObjectPropertyKey())}var f=this.qualifiedPropertyName(this.lookahead);return o.type===s.Token.Identifier?"get"===o.value&&f?(t="get",u=this.match("["),n=this.parseObjectPropertyKey(),this.context.allowYield=!1,r=this.parseGetterMethod()):"set"===o.value&&f&&(t="set",u=this.match("["),n=this.parseObjectPropertyKey(),r=this.parseSetterMethod()):o.type===s.Token.Punctuator&&"*"===o.value&&f&&(t="init",u=this.match("["),n=this.parseObjectPropertyKey(),r=this.parseGeneratorMethod(),l=!0),!t&&n&&this.match("(")&&(t="init",r=this.parsePropertyMethodFunction(),l=!0),t||this.throwUnexpectedToken(this.lookahead),"init"===t&&(t="method"),u||(h&&this.isPropertyKey(n,"prototype")&&this.throwUnexpectedToken(o,i.Messages.StaticPrototype),!h&&this.isPropertyKey(n,"constructor")&&("method"===t&&l&&!r.generator||this.throwUnexpectedToken(o,i.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(o,i.Messages.DuplicateConstructor):e.value=!0,t="constructor")),this.finalize(a,new c.MethodDefinition(n,u,r,t,h))},e.prototype.parseClassElementList=function(){var e=[],t={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(t));return this.expect("}"),e},e.prototype.parseClassBody=function(){var e=this.createNode(),t=this.parseClassElementList();return this.finalize(e,new c.ClassBody(t))},e.prototype.parseClassDeclaration=function(e){var t=this.createNode(),n=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var r=e&&this.lookahead.type!==s.Token.Identifier?null:this.parseVariableIdentifier(),i=null;this.matchKeyword("extends")&&(this.nextToken(),i=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var o=this.parseClassBody();return this.context.strict=n,this.finalize(t,new c.ClassDeclaration(r,i,o))},e.prototype.parseClassExpression=function(){var e=this.createNode(),t=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var n=this.lookahead.type===s.Token.Identifier?this.parseVariableIdentifier():null,r=null;this.matchKeyword("extends")&&(this.nextToken(),r=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var i=this.parseClassBody();return this.context.strict=t,this.finalize(e,new c.ClassExpression(n,r,i))},e.prototype.parseProgram=function(){for(var e=this.createNode(),t=this.parseDirectivePrologues();this.startMarker.index<this.scanner.length;)t.push(this.parseStatementListItem());return this.finalize(e,new c.Program(t,this.sourceType))},e.prototype.parseModuleSpecifier=function(){var e=this.createNode();this.lookahead.type!==s.Token.StringLiteral&&this.throwError(i.Messages.InvalidModuleSpecifier);var t=this.nextToken(),n=this.getTokenRaw(t);return this.finalize(e,new c.Literal(t.value,n))},e.prototype.parseImportSpecifier=function(){var e,t,n=this.createNode();return this.lookahead.type===s.Token.Identifier?(e=this.parseVariableIdentifier(),t=e,this.matchContextualKeyword("as")&&(this.nextToken(),t=this.parseVariableIdentifier())):(e=this.parseIdentifierName(),t=e,this.matchContextualKeyword("as")?(this.nextToken(),t=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(n,new c.ImportSpecifier(t,e))},e.prototype.parseNamedImports=function(){this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e},e.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName();return this.finalize(e,new c.ImportDefaultSpecifier(t))},e.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(i.Messages.NoAsAfterImportNamespace),this.nextToken();var t=this.parseIdentifierName();return this.finalize(e,new c.ImportNamespaceSpecifier(t))},e.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(i.Messages.IllegalImportDeclaration);var e=this.createNode();this.expectKeyword("import");var t,n=[];if(this.lookahead.type===s.Token.StringLiteral)t=this.parseModuleSpecifier();else{if(this.match("{")?n=n.concat(this.parseNamedImports()):this.match("*")?n.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(n.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?n.push(this.parseImportNamespaceSpecifier()):this.match("{")?n=n.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var r=this.lookahead.value?i.Messages.UnexpectedToken:i.Messages.MissingFromClause;this.throwError(r,this.lookahead.value)}this.nextToken(),t=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(e,new c.ImportDeclaration(n,t))},e.prototype.parseExportSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName(),n=t;return this.matchContextualKeyword("as")&&(this.nextToken(),n=this.parseIdentifierName()),this.finalize(e,new c.ExportSpecifier(t,n))},e.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(i.Messages.IllegalExportDeclaration);var e=this.createNode();this.expectKeyword("export");var t;if(this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var n=this.parseFunctionDeclaration(!0);t=this.finalize(e,new c.ExportDefaultDeclaration(n))}else if(this.matchKeyword("class")){var n=this.parseClassDeclaration(!0);t=this.finalize(e,new c.ExportDefaultDeclaration(n))}else{this.matchContextualKeyword("from")&&this.throwError(i.Messages.UnexpectedToken,this.lookahead.value);var n=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression();this.consumeSemicolon(),t=this.finalize(e,new c.ExportDefaultDeclaration(n))}else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var r=this.lookahead.value?i.Messages.UnexpectedToken:i.Messages.MissingFromClause;this.throwError(r,this.lookahead.value)}this.nextToken();var o=this.parseModuleSpecifier();this.consumeSemicolon(),t=this.finalize(e,new c.ExportAllDeclaration(o))}else if(this.lookahead.type===s.Token.Keyword){var n=void 0;switch(this.lookahead.value){case"let":case"const":n=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":n=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}t=this.finalize(e,new c.ExportNamedDeclaration(n,[],null))}else{var a=[],u=null,l=!1;for(this.expect("{");!this.match("}");)l=l||this.matchKeyword("default"),a.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");if(this.expect("}"),this.matchContextualKeyword("from"))this.nextToken(),u=this.parseModuleSpecifier(),this.consumeSemicolon();else if(l){var r=this.lookahead.value?i.Messages.UnexpectedToken:i.Messages.MissingFromClause;this.throwError(r,this.lookahead.value)}else this.consumeSemicolon();t=this.finalize(e,new c.ExportNamedDeclaration(null,a,u))}return t},e}();t.Parser=h},function(e,t){"use strict";function n(e,t){if(!e)throw new Error("ASSERT: "+t)}t.assert=n},function(e,t){"use strict";t.Messages={UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",DefaultRestParameter:"Unexpected token =",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ConstructorSpecialMethod:"Class constructor may not be an accessor",DuplicateConstructor:"A class may only have one constructor",StaticPrototype:"Classes may not have static property named prototype",MissingFromClause:"Unexpected token",NoAsAfterImportNamespace:"Unexpected token",InvalidModuleSpecifier:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalExportDeclaration:"Unexpected token",DuplicateBinding:"Duplicate binding %0",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer"}},function(e,t){"use strict";var n=function(){function e(){this.errors=[],this.tolerant=!1}return e.prototype.recordError=function(e){this.errors.push(e)},e.prototype.tolerate=function(e){if(!this.tolerant)throw e;this.recordError(e)},e.prototype.constructError=function(e,t){var n=new Error(e);try{throw n}catch(e){Object.create&&Object.defineProperty&&(n=Object.create(e),Object.defineProperty(n,"column",{value:t}))}finally{return n}},e.prototype.createError=function(e,t,n,r){var i="Line "+t+": "+r,o=this.constructError(i,n);return o.index=e,o.lineNumber=t,o.description=r,o},e.prototype.throwError=function(e,t,n,r){throw this.createError(e,t,n,r)},e.prototype.tolerateError=function(e,t,n,r){var i=this.createError(e,t,n,r);if(!this.tolerant)throw i;this.recordError(i)},e}();t.ErrorHandler=n},function(e,t){"use strict";!function(e){e[e.BooleanLiteral=1]="BooleanLiteral", +e[e.EOF=2]="EOF",e[e.Identifier=3]="Identifier",e[e.Keyword=4]="Keyword",e[e.NullLiteral=5]="NullLiteral",e[e.NumericLiteral=6]="NumericLiteral",e[e.Punctuator=7]="Punctuator",e[e.StringLiteral=8]="StringLiteral",e[e.RegularExpression=9]="RegularExpression",e[e.Template=10]="Template"}(t.Token||(t.Token={}));var n=t.Token;t.TokenName={},t.TokenName[n.BooleanLiteral]="Boolean",t.TokenName[n.EOF]="<end>",t.TokenName[n.Identifier]="Identifier",t.TokenName[n.Keyword]="Keyword",t.TokenName[n.NullLiteral]="Null",t.TokenName[n.NumericLiteral]="Numeric",t.TokenName[n.Punctuator]="Punctuator",t.TokenName[n.StringLiteral]="String",t.TokenName[n.RegularExpression]="RegularExpression",t.TokenName[n.Template]="Template"},function(e,t,n){"use strict";function r(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function i(e){return"01234567".indexOf(e)}var o=n(4),s=n(5),a=n(9),u=n(7),c=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){void 0===e&&(e=s.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(){this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,s.Messages.UnexpectedTokenIllegal)},e.prototype.skipSingleLineComment=function(e){var t,n,r;for(this.trackComment&&(t=[],n=this.index-e,r={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var i=this.source.charCodeAt(this.index);if(++this.index,a.Character.isLineTerminator(i)){if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart-1};var o={multiLine:!1,slice:[n+e,this.index-1],range:[n,this.index-1],loc:r};t.push(o)}return 13===i&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t}}if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart};var o={multiLine:!1,slice:[n+e,this.index],range:[n,this.index],loc:r};t.push(o)}return t},e.prototype.skipMultiLineComment=function(){var e,t,n;for(this.trackComment&&(e=[],t=this.index-2,n={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var r=this.source.charCodeAt(this.index);if(a.Character.isLineTerminator(r))13===r&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===r){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart};var i={multiLine:!0,slice:[t+2,this.index-2],range:[t,this.index],loc:n};e.push(i)}return e}++this.index}else++this.index}if(this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart};var i={multiLine:!0,slice:[t+2,this.index],range:[t,this.index],loc:n};e.push(i)}return this.tolerateUnexpectedToken(),e},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var n=this.source.charCodeAt(this.index);if(a.Character.isWhiteSpace(n))++this.index;else if(a.Character.isLineTerminator(n))++this.index,13===n&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===n)if(n=this.source.charCodeAt(this.index+1),47===n){this.index+=2;var r=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(r)),t=!0}else{if(42!==n)break;this.index+=2;var r=this.skipMultiLineComment();this.trackComment&&(e=e.concat(r))}else if(t&&45===n){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3;var r=this.skipSingleLineComment(3);this.trackComment&&(e=e.concat(r))}else{if(60!==n)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4;var r=this.skipSingleLineComment(4);this.trackComment&&(e=e.concat(r))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var n=this.source.charCodeAt(e+1);if(n>=56320&&n<=57343){var r=t;t=1024*(r-55296)+n-56320+65536}}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,n=0,i=0;i<t;++i){if(this.eof()||!a.Character.isHexDigit(this.source.charCodeAt(this.index)))return"";n=16*n+r(this.source[this.index++])}return String.fromCharCode(n)},e.prototype.scanUnicodeCodePointEscape=function(){var e=this.source[this.index],t=0;for("}"===e&&this.throwUnexpectedToken();!this.eof()&&(e=this.source[this.index++],a.Character.isHexDigit(e.charCodeAt(0)));)t=16*t+r(e);return(t>1114111||"}"!==e)&&this.throwUnexpectedToken(),a.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!a.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e=this.codePointAt(this.index),t=a.Character.fromCodePoint(e);this.index+=t.length;var n;for(92===e&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,n=this.scanUnicodeCodePointEscape()):(n=this.scanHexEscape("u"),e=n.charCodeAt(0),n&&"\\"!==n&&a.Character.isIdentifierStart(e)||this.throwUnexpectedToken()),t=n);!this.eof()&&(e=this.codePointAt(this.index),a.Character.isIdentifierPart(e));)n=a.Character.fromCodePoint(e),t+=n,this.index+=n.length,92===e&&(t=t.substr(0,t.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,n=this.scanUnicodeCodePointEscape()):(n=this.scanHexEscape("u"),e=n.charCodeAt(0),n&&"\\"!==n&&a.Character.isIdentifierPart(e)||this.throwUnexpectedToken()),t+=n);return t},e.prototype.octalToDecimal=function(e){var t="0"!==e,n=i(e);return!this.eof()&&a.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,n=8*n+i(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&a.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(n=8*n+i(this.source[this.index++]))),{code:n,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,n=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();return e=1===n.length?u.Token.Identifier:this.isKeyword(n)?u.Token.Keyword:"null"===n?u.Token.NullLiteral:"true"===n||"false"===n?u.Token.BooleanLiteral:u.Token.Identifier,{type:e,value:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e={type:u.Token.Punctuator,value:"",lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index},t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:t=this.source.substr(this.index,4),">>>="===t?this.index+=4:(t=t.substr(0,3),"==="===t||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:(t=t.substr(0,2),"&&"===t||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)))}return this.index===e.start&&this.throwUnexpectedToken(),e.end=this.index,e.value=t,e},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&a.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),a.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,n="";!this.eof()&&(t=this.source[this.index],"0"===t||"1"===t);)n+=this.source[this.index++];return 0===n.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(a.Character.isIdentifierStart(t)||a.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:u.Token.NumericLiteral,value:parseInt(n,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var n="",r=!1;for(a.Character.isOctalDigit(e.charCodeAt(0))?(r=!0,n="0"+this.source[this.index++]):++this.index;!this.eof()&&a.Character.isOctalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];return r||0!==n.length||this.throwUnexpectedToken(),(a.Character.isIdentifierStart(this.source.charCodeAt(this.index))||a.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseInt(n,8),octal:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e<this.length;++e){var t=this.source[e];if("8"===t||"9"===t)return!1;if(!a.Character.isOctalDigit(t.charCodeAt(0)))return!0}return!0},e.prototype.scanNumericLiteral=function(){var e=this.index,t=this.source[e];o.assert(a.Character.isDecimalDigit(t.charCodeAt(0))||"."===t,"Numeric literal must start with a decimal digit or a decimal point");var n="";if("."!==t){if(n=this.source[this.index++],t=this.source[this.index],"0"===n){if("x"===t||"X"===t)return++this.index,this.scanHexLiteral(e);if("b"===t||"B"===t)return++this.index,this.scanBinaryLiteral(e);if("o"===t||"O"===t)return this.scanOctalLiteral(t,e);if(t&&a.Character.isOctalDigit(t.charCodeAt(0))&&this.isImplicitOctalLiteral())return this.scanOctalLiteral(t,e)}for(;a.Character.isDecimalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];t=this.source[this.index]}if("."===t){for(n+=this.source[this.index++];a.Character.isDecimalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];t=this.source[this.index]}if("e"===t||"E"===t)if(n+=this.source[this.index++],t=this.source[this.index],"+"!==t&&"-"!==t||(n+=this.source[this.index++]),a.Character.isDecimalDigit(this.source.charCodeAt(this.index)))for(;a.Character.isDecimalDigit(this.source.charCodeAt(this.index));)n+=this.source[this.index++];else this.throwUnexpectedToken();return a.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseFloat(n),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanStringLiteral=function(){var e=this.index,t=this.source[e];o.assert("'"===t||'"'===t,"String literal must starts with a quote"),++this.index;for(var n=!1,r="";!this.eof();){var i=this.source[this.index++];if(i===t){t="";break}if("\\"===i)if(i=this.source[this.index++],i&&a.Character.isLineTerminator(i.charCodeAt(0)))++this.lineNumber,"\r"===i&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(i){case"u":case"x":if("{"===this.source[this.index])++this.index,r+=this.scanUnicodeCodePointEscape();else{var s=this.scanHexEscape(i);s||this.throwUnexpectedToken(),r+=s}break;case"n":r+="\n";break;case"r":r+="\r";break;case"t":r+="\t";break;case"b":r+="\b";break;case"f":r+="\f";break;case"v":r+="\v";break;case"8":case"9":r+=i,this.tolerateUnexpectedToken();break;default:if(i&&a.Character.isOctalDigit(i.charCodeAt(0))){var c=this.octalToDecimal(i);n=c.octal||n,r+=String.fromCharCode(c.code)}else r+=i}else{if(a.Character.isLineTerminator(i.charCodeAt(0)))break;r+=i}}return""!==t&&(this.index=e,this.throwUnexpectedToken()),{type:u.Token.StringLiteral,value:r,octal:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanTemplate=function(){var e="",t=!1,n=this.index,r="`"===this.source[n],i=!1,o=2;for(++this.index;!this.eof();){var c=this.source[this.index++];if("`"===c){o=1,i=!0,t=!0;break}if("$"===c){if("{"===this.source[this.index]){this.curlyStack.push("${"),++this.index,t=!0;break}e+=c}else if("\\"===c)if(c=this.source[this.index++],a.Character.isLineTerminator(c.charCodeAt(0)))++this.lineNumber,"\r"===c&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(c){case"n":e+="\n";break;case"r":e+="\r";break;case"t":e+="\t";break;case"u":case"x":if("{"===this.source[this.index])++this.index,e+=this.scanUnicodeCodePointEscape();else{var l=this.index,h=this.scanHexEscape(c);h?e+=h:(this.index=l,e+=c)}break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:"0"===c?(a.Character.isDecimalDigit(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(s.Messages.TemplateOctalLiteral),e+="\0"):a.Character.isOctalDigit(c.charCodeAt(0))?this.throwUnexpectedToken(s.Messages.TemplateOctalLiteral):e+=c}else a.Character.isLineTerminator(c.charCodeAt(0))?(++this.lineNumber,"\r"===c&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index,e+="\n"):e+=c}return t||this.throwUnexpectedToken(),r||this.curlyStack.pop(),{type:u.Token.Template,value:{cooked:e,raw:this.source.slice(n+1,this.index-o)},head:r,tail:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:n,end:this.index}},e.prototype.testRegExp=function(e,t){var n="￿",r=e,i=this;t.indexOf("u")>=0&&(r=r.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,function(e,t,r){var o=parseInt(t||r,16);return o>1114111&&i.throwUnexpectedToken(s.Messages.InvalidRegExp),o<=65535?String.fromCharCode(o):n}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,n));try{RegExp(r)}catch(e){this.throwUnexpectedToken(s.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(e){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];o.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],n=!1,r=!1;!this.eof();)if(e=this.source[this.index++],t+=e,"\\"===e)e=this.source[this.index++],a.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(s.Messages.UnterminatedRegExp),t+=e;else if(a.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(s.Messages.UnterminatedRegExp);else if(n)"]"===e&&(n=!1);else{if("/"===e){r=!0;break}"["===e&&(n=!0)}r||this.throwUnexpectedToken(s.Messages.UnterminatedRegExp);var i=t.substr(1,t.length-2);return{value:i,literal:t}},e.prototype.scanRegExpFlags=function(){for(var e="",t="";!this.eof();){var n=this.source[this.index];if(!a.Character.isIdentifierPart(n.charCodeAt(0)))break;if(++this.index,"\\"!==n||this.eof())t+=n,e+=n;else if(n=this.source[this.index],"u"===n){++this.index;var r=this.index;if(n=this.scanHexEscape("u"))for(t+=n,e+="\\u";r<this.index;++r)e+=this.source[r];else this.index=r,t+="u",e+="\\u";this.tolerateUnexpectedToken()}else e+="\\",this.tolerateUnexpectedToken()}return{value:t,literal:e}},e.prototype.scanRegExp=function(){var e=this.index,t=this.scanRegExpBody(),n=this.scanRegExpFlags(),r=this.testRegExp(t.value,n.value);return{type:u.Token.RegularExpression,value:r,literal:t.literal+n.literal,regex:{pattern:t.value,flags:n.value},lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.lex=function(){if(this.eof())return{type:u.Token.EOF,lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index};var e=this.source.charCodeAt(this.index);return a.Character.isIdentifierStart(e)?this.scanIdentifier():40===e||41===e||59===e?this.scanPunctuator():39===e||34===e?this.scanStringLiteral():46===e?a.Character.isDecimalDigit(this.source.charCodeAt(this.index+1))?this.scanNumericLiteral():this.scanPunctuator():a.Character.isDecimalDigit(e)?this.scanNumericLiteral():96===e||125===e&&"${"===this.curlyStack[this.curlyStack.length-1]?this.scanTemplate():e>=55296&&e<57343&&a.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=c},function(e,t){"use strict";var n={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/ +};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&n.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&n.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,n){"use strict";var r=n(2),i=function(){function e(e){this.type=r.Syntax.ArrayExpression,this.elements=e}return e}();t.ArrayExpression=i;var o=function(){function e(e){this.type=r.Syntax.ArrayPattern,this.elements=e}return e}();t.ArrayPattern=o;var s=function(){function e(e,t,n){this.type=r.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=n}return e}();t.ArrowFunctionExpression=s;var a=function(){function e(e,t,n){this.type=r.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=n}return e}();t.AssignmentExpression=a;var u=function(){function e(e,t){this.type=r.Syntax.AssignmentPattern,this.left=e,this.right=t}return e}();t.AssignmentPattern=u;var c=function(){function e(e,t,n){var i="||"===e||"&&"===e;this.type=i?r.Syntax.LogicalExpression:r.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=n}return e}();t.BinaryExpression=c;var l=function(){function e(e){this.type=r.Syntax.BlockStatement,this.body=e}return e}();t.BlockStatement=l;var h=function(){function e(e){this.type=r.Syntax.BreakStatement,this.label=e}return e}();t.BreakStatement=h;var p=function(){function e(e,t){this.type=r.Syntax.CallExpression,this.callee=e,this.arguments=t}return e}();t.CallExpression=p;var f=function(){function e(e,t){this.type=r.Syntax.CatchClause,this.param=e,this.body=t}return e}();t.CatchClause=f;var d=function(){function e(e){this.type=r.Syntax.ClassBody,this.body=e}return e}();t.ClassBody=d;var m=function(){function e(e,t,n){this.type=r.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=n}return e}();t.ClassDeclaration=m;var g=function(){function e(e,t,n){this.type=r.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=n}return e}();t.ClassExpression=g;var x=function(){function e(e,t){this.type=r.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t}return e}();t.ComputedMemberExpression=x;var y=function(){function e(e,t,n){this.type=r.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=n}return e}();t.ConditionalExpression=y;var v=function(){function e(e){this.type=r.Syntax.ContinueStatement,this.label=e}return e}();t.ContinueStatement=v;var b=function(){function e(){this.type=r.Syntax.DebuggerStatement}return e}();t.DebuggerStatement=b;var D=function(){function e(e,t){this.type=r.Syntax.ExpressionStatement,this.expression=e,this.directive=t}return e}();t.Directive=D;var w=function(){function e(e,t){this.type=r.Syntax.DoWhileStatement,this.body=e,this.test=t}return e}();t.DoWhileStatement=w;var E=function(){function e(){this.type=r.Syntax.EmptyStatement}return e}();t.EmptyStatement=E;var k=function(){function e(e){this.type=r.Syntax.ExportAllDeclaration,this.source=e}return e}();t.ExportAllDeclaration=k;var A=function(){function e(e){this.type=r.Syntax.ExportDefaultDeclaration,this.declaration=e}return e}();t.ExportDefaultDeclaration=A;var C=function(){function e(e,t,n){this.type=r.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=n}return e}();t.ExportNamedDeclaration=C;var S=function(){function e(e,t){this.type=r.Syntax.ExportSpecifier,this.exported=t,this.local=e}return e}();t.ExportSpecifier=S;var F=function(){function e(e){this.type=r.Syntax.ExpressionStatement,this.expression=e}return e}();t.ExpressionStatement=F;var T=function(){function e(e,t,n){this.type=r.Syntax.ForInStatement,this.left=e,this.right=t,this.body=n,this.each=!1}return e}();t.ForInStatement=T;var B=function(){function e(e,t,n){this.type=r.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=n}return e}();t.ForOfStatement=B;var N=function(){function e(e,t,n,i){this.type=r.Syntax.ForStatement,this.init=e,this.test=t,this.update=n,this.body=i}return e}();t.ForStatement=N;var I=function(){function e(e,t,n,i){this.type=r.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=n,this.generator=i,this.expression=!1}return e}();t.FunctionDeclaration=I;var P=function(){function e(e,t,n,i){this.type=r.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=n,this.generator=i,this.expression=!1}return e}();t.FunctionExpression=P;var M=function(){function e(e){this.type=r.Syntax.Identifier,this.name=e}return e}();t.Identifier=M;var O=function(){function e(e,t,n){this.type=r.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=n}return e}();t.IfStatement=O;var _=function(){function e(e,t){this.type=r.Syntax.ImportDeclaration,this.specifiers=e,this.source=t}return e}();t.ImportDeclaration=_;var L=function(){function e(e){this.type=r.Syntax.ImportDefaultSpecifier,this.local=e}return e}();t.ImportDefaultSpecifier=L;var R=function(){function e(e){this.type=r.Syntax.ImportNamespaceSpecifier,this.local=e}return e}();t.ImportNamespaceSpecifier=R;var U=function(){function e(e,t){this.type=r.Syntax.ImportSpecifier,this.local=e,this.imported=t}return e}();t.ImportSpecifier=U;var j=function(){function e(e,t){this.type=r.Syntax.LabeledStatement,this.label=e,this.body=t}return e}();t.LabeledStatement=j;var z=function(){function e(e,t){this.type=r.Syntax.Literal,this.value=e,this.raw=t}return e}();t.Literal=z;var J=function(){function e(e,t){this.type=r.Syntax.MetaProperty,this.meta=e,this.property=t}return e}();t.MetaProperty=J;var X=function(){function e(e,t,n,i,o){this.type=r.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=n,this.kind=i,this.static=o}return e}();t.MethodDefinition=X;var Y=function(){function e(e,t){this.type=r.Syntax.NewExpression,this.callee=e,this.arguments=t}return e}();t.NewExpression=Y;var K=function(){function e(e){this.type=r.Syntax.ObjectExpression,this.properties=e}return e}();t.ObjectExpression=K;var W=function(){function e(e){this.type=r.Syntax.ObjectPattern,this.properties=e}return e}();t.ObjectPattern=W;var H=function(){function e(e,t){this.type=r.Syntax.Program,this.body=e,this.sourceType=t}return e}();t.Program=H;var q=function(){function e(e,t,n,i,o,s){this.type=r.Syntax.Property,this.key=t,this.computed=n,this.value=i,this.kind=e,this.method=o,this.shorthand=s}return e}();t.Property=q;var G=function(){function e(e,t,n){this.type=r.Syntax.Literal,this.value=e,this.raw=t,this.regex=n}return e}();t.RegexLiteral=G;var V=function(){function e(e){this.type=r.Syntax.RestElement,this.argument=e}return e}();t.RestElement=V;var $=function(){function e(e){this.type=r.Syntax.ReturnStatement,this.argument=e}return e}();t.ReturnStatement=$;var Z=function(){function e(e){this.type=r.Syntax.SequenceExpression,this.expressions=e}return e}();t.SequenceExpression=Z;var Q=function(){function e(e){this.type=r.Syntax.SpreadElement,this.argument=e}return e}();t.SpreadElement=Q;var ee=function(){function e(e,t){this.type=r.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t}return e}();t.StaticMemberExpression=ee;var te=function(){function e(){this.type=r.Syntax.Super}return e}();t.Super=te;var ne=function(){function e(e,t){this.type=r.Syntax.SwitchCase,this.test=e,this.consequent=t}return e}();t.SwitchCase=ne;var re=function(){function e(e,t){this.type=r.Syntax.SwitchStatement,this.discriminant=e,this.cases=t}return e}();t.SwitchStatement=re;var ie=function(){function e(e,t){this.type=r.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t}return e}();t.TaggedTemplateExpression=ie;var oe=function(){function e(e,t){this.type=r.Syntax.TemplateElement,this.value=e,this.tail=t}return e}();t.TemplateElement=oe;var se=function(){function e(e,t){this.type=r.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t}return e}();t.TemplateLiteral=se;var ae=function(){function e(){this.type=r.Syntax.ThisExpression}return e}();t.ThisExpression=ae;var ue=function(){function e(e){this.type=r.Syntax.ThrowStatement,this.argument=e}return e}();t.ThrowStatement=ue;var ce=function(){function e(e,t,n){this.type=r.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=n}return e}();t.TryStatement=ce;var le=function(){function e(e,t){this.type=r.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0}return e}();t.UnaryExpression=le;var he=function(){function e(e,t,n){this.type=r.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=n}return e}();t.UpdateExpression=he;var pe=function(){function e(e,t){this.type=r.Syntax.VariableDeclaration,this.declarations=e,this.kind=t}return e}();t.VariableDeclaration=pe;var fe=function(){function e(e,t){this.type=r.Syntax.VariableDeclarator,this.id=e,this.init=t}return e}();t.VariableDeclarator=fe;var de=function(){function e(e,t){this.type=r.Syntax.WhileStatement,this.test=e,this.body=t}return e}();t.WhileStatement=de;var me=function(){function e(e,t){this.type=r.Syntax.WithStatement,this.object=e,this.body=t}return e}();t.WithStatement=me;var ge=function(){function e(e,t){this.type=r.Syntax.YieldExpression,this.argument=e,this.delegate=t}return e}();t.YieldExpression=ge},function(e,t,n){"use strict";function r(e){var t;switch(e.type){case l.JSXSyntax.JSXIdentifier:var n=e;t=n.name;break;case l.JSXSyntax.JSXNamespacedName:var i=e;t=r(i.namespace)+":"+r(i.name);break;case l.JSXSyntax.JSXMemberExpression:var o=e;t=r(o.object)+"."+r(o.property)}return t}var i,o=this&&this.__extends||function(e,t){function n(){this.constructor=e}for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},s=n(9),a=n(7),u=n(3),c=n(12),l=n(13),h=n(10),p=n(14);!function(e){e[e.Identifier=100]="Identifier",e[e.Text=101]="Text"}(i||(i={})),a.TokenName[i.Identifier]="JSXIdentifier",a.TokenName[i.Text]="JSXText";var f=function(e){function t(t,n,r){e.call(this,t,n,r)}return o(t,e),t.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.lineNumber,this.scanner.lineStart=this.startMarker.lineStart},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t="&",n=!0,r=!1,i=!1,o=!1;!this.scanner.eof()&&n&&!r;){var a=this.scanner.source[this.scanner.index];if(a===e)break;if(r=";"===a,t+=a,++this.scanner.index,!r)switch(t.length){case 2:i="#"===a;break;case 3:i&&(o="x"===a,n=o||s.Character.isDecimalDigit(a.charCodeAt(0)),i=i&&!o);break;default:n=n&&!(i&&!s.Character.isDecimalDigit(a.charCodeAt(0))),n=n&&!(o&&!s.Character.isHexDigit(a.charCodeAt(0)))}}if(n&&r&&t.length>2){var u=t.substr(1,t.length-2);i&&u.length>1?t=String.fromCharCode(parseInt(u.substr(1),10)):o&&u.length>2?t=String.fromCharCode(parseInt("0"+u.substr(1),16)):i||o||!c.XHTMLEntities[u]||(t=c.XHTMLEntities[u])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e){var t=this.scanner.source[this.scanner.index++];return{type:a.Token.Punctuator,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(34===e||39===e){for(var n=this.scanner.index,r=this.scanner.source[this.scanner.index++],o="";!this.scanner.eof();){var u=this.scanner.source[this.scanner.index++];if(u===r)break;o+="&"===u?this.scanXHTMLEntity(r):u}return{type:a.Token.StringLiteral,value:o,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index}}if(46===e){var c=this.scanner.source.charCodeAt(this.scanner.index+1),l=this.scanner.source.charCodeAt(this.scanner.index+2),t=46===c&&46===l?"...":".",n=this.scanner.index;return this.scanner.index+=t.length,{type:a.Token.Punctuator,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index}}if(96===e)return{type:a.Token.Template,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(s.Character.isIdentifierStart(e)&&92!==e){var n=this.scanner.index;for(++this.scanner.index;!this.scanner.eof();){var u=this.scanner.source.charCodeAt(this.scanner.index);if(s.Character.isIdentifierPart(u)&&92!==u)++this.scanner.index;else{if(45!==u)break;++this.scanner.index}}var h=this.scanner.source.slice(n,this.scanner.index);return{type:i.Identifier,value:h,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:n,end:this.scanner.index}}this.scanner.throwUnexpectedToken()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;for(var e=this.scanner.index,t="";!this.scanner.eof();){var n=this.scanner.source[this.scanner.index];if("{"===n||"<"===n)break;++this.scanner.index,t+=n,s.Character.isLineTerminator(n.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===n&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart;var r={type:i.Text,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(r)),r},t.prototype.peekJSXToken=function(){var e=this.scanner.index,t=this.scanner.lineNumber,n=this.scanner.lineStart;this.scanner.scanComments();var r=this.lexJSX();return this.scanner.index=e,this.scanner.lineNumber=t,this.scanner.lineStart=n,r},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();t.type===a.Token.Punctuator&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return t.type===a.Token.Punctuator&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return t.type!==i.Identifier&&this.throwUnexpectedToken(t),this.finalize(e,new p.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){var n=t;this.expectJSX(":");var r=this.parseJSXIdentifier();t=this.finalize(e,new p.JSXNamespacedName(n,r))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var i=t;this.expectJSX(".");var o=this.parseJSXIdentifier();t=this.finalize(e,new p.JSXMemberExpression(i,o))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),n=this.parseJSXIdentifier();if(this.matchJSX(":")){var r=n;this.expectJSX(":");var i=this.parseJSXIdentifier();e=this.finalize(t,new p.JSXNamespacedName(r,i))}else e=n;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();t.type!==a.Token.StringLiteral&&this.throwUnexpectedToken(t);var n=this.getTokenRaw(t);return this.finalize(e,new h.Literal(t.value,n))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new p.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),n=null;return this.matchJSX("=")&&(this.expectJSX("="),n=this.parseJSXAttributeValue()),this.finalize(e,new p.JSXAttribute(t,n))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new p.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX("/")&&!this.matchJSX(">");){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),n=this.parseJSXAttributes(),r=this.matchJSX("/");return r&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new p.JSXOpeningElement(t,r,n))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new p.JSXClosingElement(t))}var n=this.parseJSXElementName(),r=this.parseJSXAttributes(),i=this.matchJSX("/");return i&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new p.JSXOpeningElement(n,i,r))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.finalize(e,new p.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e=this.createJSXNode();this.expectJSX("{");var t;return this.matchJSX("}")?(t=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),t=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(e,new p.JSXExpressionContainer(t))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),n=this.nextJSXText();if(n.start<n.end){var r=this.getTokenRaw(n),i=this.finalize(t,new p.JSXText(n.value,r));e.push(i)}if("{"!==this.scanner.source[this.scanner.index])break;var o=this.parseJSXExpressionContainer();e.push(o)}return e},t.prototype.parseComplexJSXElement=function(e){for(var t=[];!this.scanner.eof();){e.children=e.children.concat(this.parseJSXChildren());var n=this.createJSXChildNode(),i=this.parseJSXBoundaryElement();if(i.type===l.JSXSyntax.JSXOpeningElement){var o=i;if(o.selfClosing){var s=this.finalize(n,new p.JSXElement(o,[],null));e.children.push(s)}else t.push(e),e={node:n,opening:o,closing:null,children:[]}}if(i.type===l.JSXSyntax.JSXClosingElement){e.closing=i;var a=r(e.opening.name),u=r(e.closing.name);if(a!==u&&this.tolerateError("Expected corresponding JSX closing tag for %0",a),!(t.length>0))break;var s=this.finalize(e.node,new p.JSXElement(e.opening,e.children,e.closing));e=t.pop(),e.children.push(s)}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),n=[],r=null;if(!t.selfClosing){var i=this.parseComplexJSXElement({node:e,opening:t,closing:r,children:n});n=i.children,r=i.closing}return this.finalize(e,new p.JSXElement(t,n,r))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t}(u.Parser);t.JSXParser=f},function(e,t){"use strict";t.XHTMLEntities={quot:'"',amp:"&",apos:"'",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦",lang:"⟨",rang:"⟩"}},function(e,t){"use strict";t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,n){"use strict";var r=n(13),i=function(){function e(e){this.type=r.JSXSyntax.JSXClosingElement,this.name=e}return e}();t.JSXClosingElement=i;var o=function(){function e(e,t,n){this.type=r.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=n}return e}();t.JSXElement=o;var s=function(){function e(){this.type=r.JSXSyntax.JSXEmptyExpression}return e}();t.JSXEmptyExpression=s;var a=function(){function e(e){this.type=r.JSXSyntax.JSXExpressionContainer,this.expression=e}return e}();t.JSXExpressionContainer=a;var u=function(){function e(e){this.type=r.JSXSyntax.JSXIdentifier,this.name=e}return e}();t.JSXIdentifier=u;var c=function(){function e(e,t){this.type=r.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t}return e}();t.JSXMemberExpression=c;var l=function(){function e(e,t){this.type=r.JSXSyntax.JSXAttribute,this.name=e,this.value=t}return e}();t.JSXAttribute=l;var h=function(){function e(e,t){this.type=r.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t}return e}();t.JSXNamespacedName=h;var p=function(){function e(e,t,n){this.type=r.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=n}return e}();t.JSXOpeningElement=p;var f=function(){function e(e){this.type=r.JSXSyntax.JSXSpreadAttribute,this.argument=e}return e}();t.JSXSpreadAttribute=f;var d=function(){function e(e,t){this.type=r.JSXSyntax.JSXText,this.value=e,this.raw=t}return e}();t.JSXText=d},function(e,t,n){"use strict";var r=n(8),i=n(6),o=n(7),s=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var n=this.values[this.paren-1];t="if"===n||"while"===n||"for"===n||"with"===n;break;case"}":if(t=!1,"function"===this.values[this.curly-3]){var r=this.values[this.curly-4];t=!!r&&!this.beforeFunctionExpression(r)}else if("function"===this.values[this.curly-4]){var i=this.values[this.curly-5];t=!i||!this.beforeFunctionExpression(i)}}return t},e.prototype.push=function(e){e.type===o.Token.Punctuator||e.type===o.Token.Keyword?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),a=function(){function e(e,t){this.errorHandler=new i.ErrorHandler,this.errorHandler.tolerant=!!t&&("boolean"==typeof t.tolerant&&t.tolerant),this.scanner=new r.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&("boolean"==typeof t.comment&&t.comment),this.trackRange=!!t&&("boolean"==typeof t.range&&t.range),this.trackLoc=!!t&&("boolean"==typeof t.loc&&t.loc),this.buffer=[],this.reader=new s}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;t<e.length;++t){var n=e[t],r=void 0,i=this.scanner.source.slice(n.slice[0],n.slice[1]);r={type:n.multiLine?"BlockComment":"LineComment",value:i},this.trackRange&&(r.range=n.range),this.trackLoc&&(r.loc=n.loc),this.buffer.push(r)}if(!this.scanner.eof()){var s=void 0;this.trackLoc&&(s={start:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},end:{}});var a=void 0;a="/"===this.scanner.source[this.scanner.index]?this.reader.isRegexStart()?this.scanner.scanRegExp():this.scanner.scanPunctuator():this.scanner.lex(),this.reader.push(a);var u=void 0;u={type:o.TokenName[a.type],value:this.scanner.source.slice(a.start,a.end)},this.trackRange&&(u.range=[a.start,a.end]),this.trackLoc&&(s.end={line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},u.loc=s),a.regex&&(u.regex=a.regex),this.buffer.push(u)}}return this.buffer.shift()},e}();t.Tokenizer=a}])})},function(e,t,n){"use strict";function r(e,t){var n,r,i,o,s,a,u;if(null===t)return{};for(n={},r=Object.keys(t),i=0,o=r.length;i<o;i+=1)s=r[i],a=String(t[s]),"!!"===s.slice(0,2)&&(s="tag:yaml.org,2002:"+s.slice(2)),u=e.compiledTypeMap.fallback[s],u&&O.call(u.styleAliases,a)&&(a=u.styleAliases[a]),n[s]=a;return n}function i(e){var t,n,r;if(t=e.toString(16).toUpperCase(),e<=255)n="x",r=2;else if(e<=65535)n="u",r=4;else{if(!(e<=4294967295))throw new N("code point within a string may not be greater than 0xFFFFFFFF");n="U",r=8}return"\\"+n+B.repeat("0",r-t.length)+t}function o(e){this.schema=e.schema||I,this.indent=Math.max(1,e.indent||2),this.skipInvalid=e.skipInvalid||!1,this.flowLevel=B.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=r(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function s(e,t){for(var n,r=B.repeat(" ",t),i=0,o=-1,s="",a=e.length;i<a;)o=e.indexOf("\n",i),o===-1?(n=e.slice(i),i=a):(n=e.slice(i,o+1),i=o+1),n.length&&"\n"!==n&&(s+=r),s+=n;return s}function a(e,t){return"\n"+B.repeat(" ",e.indent*t)}function u(e,t){var n,r,i;for(n=0,r=e.implicitTypes.length;n<r;n+=1)if(i=e.implicitTypes[n],i.resolve(t))return!0;return!1}function c(e){return e===R||e===_}function l(e){return 32<=e&&e<=126||161<=e&&e<=55295&&8232!==e&&8233!==e||57344<=e&&e<=65533&&65279!==e||65536<=e&&e<=1114111}function h(e){return l(e)&&65279!==e&&e!==W&&e!==Z&&e!==Q&&e!==te&&e!==re&&e!==q&&e!==z}function p(e){return l(e)&&65279!==e&&!c(e)&&e!==H&&e!==V&&e!==q&&e!==W&&e!==Z&&e!==Q&&e!==te&&e!==re&&e!==z&&e!==X&&e!==K&&e!==U&&e!==ne&&e!==G&&e!==Y&&e!==j&&e!==J&&e!==$&&e!==ee}function f(e,t,n,r,i){var o,s,a=!1,u=!1,f=r!==-1,d=-1,m=p(e.charCodeAt(0))&&!c(e.charCodeAt(e.length-1));if(t)for(o=0;o<e.length;o++){if(s=e.charCodeAt(o),!l(s))return le;m=m&&h(s)}else{for(o=0;o<e.length;o++){if(s=e.charCodeAt(o),s===L)a=!0,f&&(u=u||o-d-1>r&&" "!==e[d+1],d=o);else if(!l(s))return le;m=m&&h(s)}u=u||f&&o-d-1>r&&" "!==e[d+1]}return a||u?" "===e[0]&&n>9?le:u?ce:ue:m&&!i(e)?se:ae}function d(e,t,n,r){e.dump=function(){function i(t){return u(e,t)}if(0===t.length)return"''";if(!e.noCompatMode&&oe.indexOf(t)!==-1)return"'"+t+"'";var o=e.indent*Math.max(1,n),a=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o),c=r||e.flowLevel>-1&&n>=e.flowLevel;switch(f(t,c,e.indent,a,i)){case se:return t;case ae:return"'"+t.replace(/'/g,"''")+"'";case ue:return"|"+m(t,e.indent)+g(s(t,o));case ce:return">"+m(t,e.indent)+g(s(x(t,a),o));case le:return'"'+v(t,a)+'"';default:throw new N("impossible error: invalid scalar style")}}()}function m(e,t){var n=" "===e[0]?String(t):"",r="\n"===e[e.length-1],i=r&&("\n"===e[e.length-2]||"\n"===e),o=i?"+":r?"":"-";return n+o+"\n"}function g(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function x(e,t){for(var n,r,i=/(\n+)([^\n]*)/g,o=function(){var n=e.indexOf("\n");return n=n!==-1?n:e.length,i.lastIndex=n,y(e.slice(0,n),t)}(),s="\n"===e[0]||" "===e[0];r=i.exec(e);){var a=r[1],u=r[2];n=" "===u[0],o+=a+(s||n||""===u?"":"\n")+y(u,t),s=n}return o}function y(e,t){if(""===e||" "===e[0])return e;for(var n,r,i=/ [^ ]/g,o=0,s=0,a=0,u="";n=i.exec(e);)a=n.index,a-o>t&&(r=s>o?s:a,u+="\n"+e.slice(o,r),o=r+1),s=a;return u+="\n",u+=e.length-o>t&&s>o?e.slice(o,s)+"\n"+e.slice(s+1):e.slice(o),u.slice(1)}function v(e){for(var t,n,r="",o=0;o<e.length;o++)t=e.charCodeAt(o),n=ie[t],r+=!n&&l(t)?e[o]:n||i(t);return r}function b(e,t,n){var r,i,o="",s=e.tag;for(r=0,i=n.length;r<i;r+=1)A(e,t,n[r],!1,!1)&&(0!==r&&(o+=", "),o+=e.dump);e.tag=s,e.dump="["+o+"]"}function D(e,t,n,r){var i,o,s="",u=e.tag;for(i=0,o=n.length;i<o;i+=1)A(e,t+1,n[i],!0,!0)&&(r&&0===i||(s+=a(e,t)),s+=e.dump&&L===e.dump.charCodeAt(0)?"-":"- ",s+=e.dump);e.tag=u,e.dump=s||"[]"}function w(e,t,n){var r,i,o,s,a,u="",c=e.tag,l=Object.keys(n);for(r=0,i=l.length;r<i;r+=1)a="",0!==r&&(a+=", "),o=l[r],s=n[o],A(e,t,o,!1,!1)&&(e.dump.length>1024&&(a+="? "),a+=e.dump+": ",A(e,t,s,!1,!1)&&(a+=e.dump,u+=a));e.tag=c,e.dump="{"+u+"}"}function E(e,t,n,r){var i,o,s,u,c,l,h="",p=e.tag,f=Object.keys(n);if(e.sortKeys===!0)f.sort();else if("function"==typeof e.sortKeys)f.sort(e.sortKeys);else if(e.sortKeys)throw new N("sortKeys must be a boolean or a function"); +for(i=0,o=f.length;i<o;i+=1)l="",r&&0===i||(l+=a(e,t)),s=f[i],u=n[s],A(e,t+1,s,!0,!0,!0)&&(c=null!==e.tag&&"?"!==e.tag||e.dump&&e.dump.length>1024,c&&(l+=e.dump&&L===e.dump.charCodeAt(0)?"?":"? "),l+=e.dump,c&&(l+=a(e,t)),A(e,t+1,u,!0,c)&&(l+=e.dump&&L===e.dump.charCodeAt(0)?":":": ",l+=e.dump,h+=l));e.tag=p,e.dump=h||"{}"}function k(e,t,n){var r,i,o,s,a,u;for(i=n?e.explicitTypes:e.implicitTypes,o=0,s=i.length;o<s;o+=1)if(a=i[o],(a.instanceOf||a.predicate)&&(!a.instanceOf||"object"==typeof t&&t instanceof a.instanceOf)&&(!a.predicate||a.predicate(t))){if(e.tag=n?a.tag:"?",a.represent){if(u=e.styleMap[a.tag]||a.defaultStyle,"[object Function]"===M.call(a.represent))r=a.represent(t,u);else{if(!O.call(a.represent,u))throw new N("!<"+a.tag+'> tag resolver accepts not "'+u+'" style');r=a.represent[u](t,u)}e.dump=r}return!0}return!1}function A(e,t,n,r,i,o){e.tag=null,e.dump=n,k(e,n,!1)||k(e,n,!0);var s=M.call(e.dump);r&&(r=e.flowLevel<0||e.flowLevel>t);var a,u,c="[object Object]"===s||"[object Array]"===s;if(c&&(a=e.duplicates.indexOf(n),u=a!==-1),(null!==e.tag&&"?"!==e.tag||u||2!==e.indent&&t>0)&&(i=!1),u&&e.usedDuplicates[a])e.dump="*ref_"+a;else{if(c&&u&&!e.usedDuplicates[a]&&(e.usedDuplicates[a]=!0),"[object Object]"===s)r&&0!==Object.keys(e.dump).length?(E(e,t,e.dump,i),u&&(e.dump="&ref_"+a+e.dump)):(w(e,t,e.dump),u&&(e.dump="&ref_"+a+" "+e.dump));else if("[object Array]"===s)r&&0!==e.dump.length?(D(e,t,e.dump,i),u&&(e.dump="&ref_"+a+e.dump)):(b(e,t,e.dump),u&&(e.dump="&ref_"+a+" "+e.dump));else{if("[object String]"!==s){if(e.skipInvalid)return!1;throw new N("unacceptable kind of an object to dump "+s)}"?"!==e.tag&&d(e,e.dump,t,o)}null!==e.tag&&"?"!==e.tag&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function C(e,t){var n,r,i=[],o=[];for(S(e,i,o),n=0,r=o.length;n<r;n+=1)t.duplicates.push(i[o[n]]);t.usedDuplicates=new Array(r)}function S(e,t,n){var r,i,o;if(null!==e&&"object"==typeof e)if(i=t.indexOf(e),i!==-1)n.indexOf(i)===-1&&n.push(i);else if(t.push(e),Array.isArray(e))for(i=0,o=e.length;i<o;i+=1)S(e[i],t,n);else for(r=Object.keys(e),i=0,o=r.length;i<o;i+=1)S(e[r[i]],t,n)}function F(e,t){t=t||{};var n=new o(t);return n.noRefs||C(e,n),A(n,0,e,!0,!0)?n.dump+"\n":""}function T(e,t){return F(e,B.extend({schema:P},t))}var B=n(185),N=n(186),I=n(211),P=n(188),M=Object.prototype.toString,O=Object.prototype.hasOwnProperty,_=9,L=10,R=32,U=33,j=34,z=35,J=37,X=38,Y=39,K=42,W=44,H=45,q=58,G=62,V=63,$=64,Z=91,Q=93,ee=96,te=123,ne=124,re=125,ie={};ie[0]="\\0",ie[7]="\\a",ie[8]="\\b",ie[9]="\\t",ie[10]="\\n",ie[11]="\\v",ie[12]="\\f",ie[13]="\\r",ie[27]="\\e",ie[34]='\\"',ie[92]="\\\\",ie[133]="\\N",ie[160]="\\_",ie[8232]="\\L",ie[8233]="\\P";var oe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],se=1,ae=2,ue=3,ce=4,le=5;e.exports.dump=F,e.exports.safeDump=T},function(e,t){e.exports='---\nurl: "http://petstore.swagger.io/v2/swagger.json"\ndom_id: "#swagger-ui"\nvalidatorUrl: "https://online.swagger.io/validator"\noauth2RedirectUrl: "http://localhost:3200/oauth2-redirect.html"\n'}]))}); +//# sourceMappingURL=swagger-ui-standalone-preset.js.map \ No newline at end of file diff --git a/reference/dtr/2.6/api/swagger-ui.css b/reference/dtr/2.6/api/swagger-ui.css new file mode 100644 index 0000000000..cb2976d0e9 --- /dev/null +++ b/reference/dtr/2.6/api/swagger-ui.css @@ -0,0 +1,5 @@ +@charset "UTF-8";.swagger-ui html{box-sizing:border-box}.swagger-ui *,.swagger-ui :after,.swagger-ui :before{box-sizing:inherit}.swagger-ui body{margin:0;background:#fafafa}.swagger-ui .wrapper{width:100%;max-width:1460px;margin:0 auto;padding:0 20px}.swagger-ui .opblock-tag-section{display:flex;flex-direction:column}.swagger-ui .opblock-tag{display:flex;padding:10px 20px 10px 10px;cursor:pointer;transition:all .2s;border-bottom:1px solid rgba(59,65,81,.3);align-items:center}.swagger-ui .opblock-tag:hover{background:rgba(0,0,0,.02)}.swagger-ui .opblock-tag{font-size:24px;margin:0 0 5px;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .opblock-tag.no-desc span{flex:1}.swagger-ui .opblock-tag svg{transition:all .4s}.swagger-ui .opblock-tag small{font-size:14px;font-weight:400;padding:0 10px;flex:1;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .parаmeter__type{font-size:12px;padding:5px 0;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .view-line-link{position:relative;top:3px;width:20px;margin:0 5px;cursor:pointer;transition:all .5s}.swagger-ui .opblock{margin:0 0 15px;border:1px solid #000;border-radius:4px;box-shadow:0 0 3px rgba(0,0,0,.19)}.swagger-ui .opblock.is-open .opblock-summary{border-bottom:1px solid #000}.swagger-ui .opblock .opblock-section-header{display:flex;padding:8px 20px;background:hsla(0,0%,100%,.8);box-shadow:0 1px 2px rgba(0,0,0,.1);align-items:center}.swagger-ui .opblock .opblock-section-header label{font-size:12px;font-weight:700;display:flex;margin:0;align-items:center;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .opblock .opblock-section-header label span{padding:0 10px 0 0}.swagger-ui .opblock .opblock-section-header h4{font-size:14px;margin:0;flex:1;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .opblock .opblock-summary-method{font-size:14px;font-weight:700;min-width:80px;padding:6px 15px;text-align:center;border-radius:3px;background:#000;text-shadow:0 1px 0 rgba(0,0,0,.1);font-family:Titillium Web,sans-serif;color:#fff}.swagger-ui .opblock .opblock-summary-operation-id,.swagger-ui .opblock .opblock-summary-path,.swagger-ui .opblock .opblock-summary-path__deprecated{font-size:16px;display:flex;padding:0 10px;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151;align-items:center}.swagger-ui .opblock .opblock-summary-operation-id .view-line-link,.swagger-ui .opblock .opblock-summary-path .view-line-link,.swagger-ui .opblock .opblock-summary-path__deprecated .view-line-link{position:relative;top:2px;width:0;margin:0;cursor:pointer;transition:all .5s}.swagger-ui .opblock .opblock-summary-operation-id:hover .view-line-link,.swagger-ui .opblock .opblock-summary-path:hover .view-line-link,.swagger-ui .opblock .opblock-summary-path__deprecated:hover .view-line-link{width:18px;margin:0 5px}.swagger-ui .opblock .opblock-summary-path__deprecated{text-decoration:line-through}.swagger-ui .opblock .opblock-summary-operation-id{font-size:14px}.swagger-ui .opblock .opblock-summary-description{font-size:13px;flex:1;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .opblock .opblock-summary{display:flex;padding:5px;cursor:pointer;align-items:center}.swagger-ui .opblock.opblock-post{border-color:#49cc90;background:rgba(73,204,144,.1)}.swagger-ui .opblock.opblock-post .opblock-summary-method{background:#49cc90}.swagger-ui .opblock.opblock-post .opblock-summary{border-color:#49cc90}.swagger-ui .opblock.opblock-put{border-color:#fca130;background:rgba(252,161,48,.1)}.swagger-ui .opblock.opblock-put .opblock-summary-method{background:#fca130}.swagger-ui .opblock.opblock-put .opblock-summary{border-color:#fca130}.swagger-ui .opblock.opblock-delete{border-color:#f93e3e;background:rgba(249,62,62,.1)}.swagger-ui .opblock.opblock-delete .opblock-summary-method{background:#f93e3e}.swagger-ui .opblock.opblock-delete .opblock-summary{border-color:#f93e3e}.swagger-ui .opblock.opblock-get{border-color:#61affe;background:rgba(97,175,254,.1)}.swagger-ui .opblock.opblock-get .opblock-summary-method{background:#61affe}.swagger-ui .opblock.opblock-get .opblock-summary{border-color:#61affe}.swagger-ui .opblock.opblock-patch{border-color:#50e3c2;background:rgba(80,227,194,.1)}.swagger-ui .opblock.opblock-patch .opblock-summary-method{background:#50e3c2}.swagger-ui .opblock.opblock-patch .opblock-summary{border-color:#50e3c2}.swagger-ui .opblock.opblock-head{border-color:#9012fe;background:rgba(144,18,254,.1)}.swagger-ui .opblock.opblock-head .opblock-summary-method{background:#9012fe}.swagger-ui .opblock.opblock-head .opblock-summary{border-color:#9012fe}.swagger-ui .opblock.opblock-options{border-color:#0d5aa7;background:rgba(13,90,167,.1)}.swagger-ui .opblock.opblock-options .opblock-summary-method{background:#0d5aa7}.swagger-ui .opblock.opblock-options .opblock-summary{border-color:#0d5aa7}.swagger-ui .opblock.opblock-deprecated{opacity:.6;border-color:#ebebeb;background:hsla(0,0%,92%,.1)}.swagger-ui .opblock.opblock-deprecated .opblock-summary-method{background:#ebebeb}.swagger-ui .opblock.opblock-deprecated .opblock-summary{border-color:#ebebeb}.swagger-ui .opblock .opblock-schemes{padding:8px 20px}.swagger-ui .opblock .opblock-schemes .schemes-title{padding:0 10px 0 0}.swagger-ui .tab{display:flex;margin:20px 0 10px;padding:0;list-style:none}.swagger-ui .tab li{font-size:12px;min-width:100px;min-width:90px;padding:0;cursor:pointer;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .tab li:first-of-type{position:relative;padding-left:0}.swagger-ui .tab li:first-of-type:after{position:absolute;top:0;right:6px;width:1px;height:100%;content:"";background:rgba(0,0,0,.2)}.swagger-ui .tab li.active{font-weight:700}.swagger-ui .opblock-description-wrapper,.swagger-ui .opblock-title_normal{padding:15px 20px}.swagger-ui .opblock-description-wrapper,.swagger-ui .opblock-description-wrapper h4,.swagger-ui .opblock-title_normal,.swagger-ui .opblock-title_normal h4{font-size:12px;margin:0 0 5px;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .opblock-description-wrapper p,.swagger-ui .opblock-title_normal p{font-size:14px;margin:0;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .execute-wrapper{padding:20px;text-align:right}.swagger-ui .execute-wrapper .btn{width:100%;padding:8px 40px}.swagger-ui .body-param-options{display:flex;flex-direction:column}.swagger-ui .body-param-options .body-param-edit{padding:10px 0}.swagger-ui .body-param-options label{padding:8px 0}.swagger-ui .body-param-options label select{margin:3px 0 0}.swagger-ui .responses-inner{padding:20px}.swagger-ui .responses-inner h4,.swagger-ui .responses-inner h5{font-size:12px;margin:10px 0 5px;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .response-col_status{font-size:14px;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .response-col_status .response-undocumented{font-size:11px;font-family:Source Code Pro,monospace;font-weight:600;color:#999}.swagger-ui .response-col_description__inner span{font-size:12px;font-style:italic;display:block;margin:10px 0;padding:10px;border-radius:4px;background:#41444e;font-family:Source Code Pro,monospace;font-weight:600;color:#fff}.swagger-ui .response-col_description__inner span p{margin:0}.swagger-ui .opblock-body pre{font-size:12px;margin:0;padding:10px;word-wrap:break-word;word-break:break-all;word-break:break-word;hyphens:auto;white-space:pre-wrap;border-radius:4px;background:#41444e;overflow-wrap:break-word;font-family:Source Code Pro,monospace;font-weight:600;color:#fff}.swagger-ui .opblock-body pre span{color:#fff!important}.swagger-ui .opblock-body pre .headerline{display:block}.swagger-ui .scheme-container{margin:0 0 20px;padding:30px 0;background:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.15)}.swagger-ui .scheme-container .schemes{display:flex;align-items:center}.swagger-ui .scheme-container .schemes>label{font-size:12px;font-weight:700;display:flex;flex-direction:column;margin:-20px 15px 0 0;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .scheme-container .schemes>label select{min-width:130px;text-transform:uppercase}.swagger-ui .loading-container{padding:40px 0 60px}.swagger-ui .loading-container .loading{position:relative}.swagger-ui .loading-container .loading:after{font-size:10px;font-weight:700;position:absolute;top:50%;left:50%;content:"loading";transform:translate(-50%,-50%);text-transform:uppercase;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .loading-container .loading:before{position:absolute;top:50%;left:50%;display:block;width:60px;height:60px;margin:-30px;content:"";animation:rotation 1s infinite linear,opacity .5s;opacity:1;border:2px solid rgba(85,85,85,.1);border-top-color:rgba(0,0,0,.6);border-radius:100%;backface-visibility:hidden}@keyframes rotation{to{transform:rotate(1turn)}}@keyframes blinker{50%{opacity:0}}.swagger-ui .btn{font-size:14px;font-weight:700;padding:5px 23px;transition:all .3s;border:2px solid #888;border-radius:4px;background:transparent;box-shadow:0 1px 2px rgba(0,0,0,.1);font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .btn[disabled]{cursor:not-allowed;opacity:.3}.swagger-ui .btn:hover{box-shadow:0 0 5px rgba(0,0,0,.3)}.swagger-ui .btn.cancel{border-color:#ff6060;font-family:Titillium Web,sans-serif;color:#ff6060}.swagger-ui .btn.authorize{line-height:1;display:inline;color:#49cc90;border-color:#49cc90}.swagger-ui .btn.authorize span{float:left;padding:4px 20px 0 0}.swagger-ui .btn.authorize svg{fill:#49cc90}.swagger-ui .btn.execute{animation:swagger-ui-pulse 2s infinite;color:#fff;border-color:#4990e2}@keyframes swagger-ui-pulse{0%{color:#fff;background:#4990e2;box-shadow:0 0 0 0 rgba(73,144,226,.8)}70%{box-shadow:0 0 0 5px rgba(73,144,226,0)}to{color:#fff;background:#4990e2;box-shadow:0 0 0 0 rgba(73,144,226,0)}}.swagger-ui .btn-group{display:flex;padding:30px}.swagger-ui .btn-group .btn{flex:1}.swagger-ui .btn-group .btn:first-child{border-radius:4px 0 0 4px}.swagger-ui .btn-group .btn:last-child{border-radius:0 4px 4px 0}.swagger-ui .authorization__btn{padding:0 10px;border:none;background:none}.swagger-ui .authorization__btn.locked{opacity:1}.swagger-ui .authorization__btn.unlocked{opacity:.4}.swagger-ui .expand-methods,.swagger-ui .expand-operation{border:none;background:none}.swagger-ui .expand-methods svg,.swagger-ui .expand-operation svg{width:20px;height:20px}.swagger-ui .expand-methods{padding:0 10px}.swagger-ui .expand-methods:hover svg{fill:#444}.swagger-ui .expand-methods svg{transition:all .3s;fill:#777}.swagger-ui button{cursor:pointer;outline:none}.swagger-ui select{font-size:14px;font-weight:700;padding:5px 40px 5px 10px;border:2px solid #41444e;border-radius:4px;background:#f7f7f7 url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+ICAgIDxwYXRoIGQ9Ik0xMy40MTggNy44NTljLjI3MS0uMjY4LjcwOS0uMjY4Ljk3OCAwIC4yNy4yNjguMjcyLjcwMSAwIC45NjlsLTMuOTA4IDMuODNjLS4yNy4yNjgtLjcwNy4yNjgtLjk3OSAwbC0zLjkwOC0zLjgzYy0uMjctLjI2Ny0uMjctLjcwMSAwLS45NjkuMjcxLS4yNjguNzA5LS4yNjguOTc4IDBMMTAgMTFsMy40MTgtMy4xNDF6Ii8+PC9zdmc+) right 10px center no-repeat;background-size:20px;box-shadow:0 1px 2px 0 rgba(0,0,0,.25);font-family:Titillium Web,sans-serif;color:#3b4151;appearance:none}.swagger-ui select[multiple]{margin:5px 0;padding:5px;background:#f7f7f7}.swagger-ui .opblock-body select{min-width:230px}.swagger-ui label{font-size:12px;font-weight:700;margin:0 0 5px;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui input[type=email],.swagger-ui input[type=password],.swagger-ui input[type=search],.swagger-ui input[type=text]{min-width:100px;margin:5px 0;padding:8px 10px;border:1px solid #d9d9d9;border-radius:4px;background:#fff}.swagger-ui input[type=email].invalid,.swagger-ui input[type=password].invalid,.swagger-ui input[type=search].invalid,.swagger-ui input[type=text].invalid{animation:shake .4s 1;border-color:#f93e3e;background:#feebeb}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}}.swagger-ui textarea{font-size:12px;width:100%;min-height:280px;padding:10px;border:none;border-radius:4px;outline:none;background:hsla(0,0%,100%,.8);font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui textarea:focus{border:2px solid #61affe}.swagger-ui textarea.curl{font-size:12px;min-height:100px;margin:0;padding:10px;resize:none;border-radius:4px;background:#41444e;font-family:Source Code Pro,monospace;font-weight:600;color:#fff}.swagger-ui .checkbox{padding:5px 0 10px;transition:opacity .5s;color:#333}.swagger-ui .checkbox label{display:flex}.swagger-ui .checkbox p{font-weight:400!important;font-style:italic;margin:0!important;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .checkbox input[type=checkbox]{display:none}.swagger-ui .checkbox input[type=checkbox]+label>.item{position:relative;top:3px;display:inline-block;width:16px;height:16px;margin:0 8px 0 0;padding:5px;cursor:pointer;border-radius:1px;background:#e8e8e8;box-shadow:0 0 0 2px #e8e8e8;flex:none}.swagger-ui .checkbox input[type=checkbox]+label>.item:active{transform:scale(.9)}.swagger-ui .checkbox input[type=checkbox]:checked+label>.item{background:#e8e8e8 url("data:image/svg+xml;charset=utf-8,%3Csvg width='10' height='8' viewBox='3 7 10 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%2341474E' fill-rule='evenodd' d='M6.333 15L3 11.667l1.333-1.334 2 2L11.667 7 13 8.333z'/%3E%3C/svg%3E") 50% no-repeat}.swagger-ui .dialog-ux{position:fixed;z-index:9999;top:0;right:0;bottom:0;left:0}.swagger-ui .dialog-ux .backdrop-ux{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.8)}.swagger-ui .dialog-ux .modal-ux{position:absolute;z-index:9999;top:50%;left:50%;width:100%;min-width:300px;max-width:650px;transform:translate(-50%,-50%);border:1px solid #ebebeb;border-radius:4px;background:#fff;box-shadow:0 10px 30px 0 rgba(0,0,0,.2)}.swagger-ui .dialog-ux .modal-ux-content{overflow-y:auto;max-height:540px;padding:20px}.swagger-ui .dialog-ux .modal-ux-content p{font-size:12px;margin:0 0 5px;color:#41444e;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .dialog-ux .modal-ux-content h4{font-size:18px;font-weight:600;margin:15px 0 0;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .dialog-ux .modal-ux-header{display:flex;padding:12px 0;border-bottom:1px solid #ebebeb;align-items:center}.swagger-ui .dialog-ux .modal-ux-header .close-modal{padding:0 10px;border:none;background:none;appearance:none}.swagger-ui .dialog-ux .modal-ux-header h3{font-size:20px;font-weight:600;margin:0;padding:0 20px;flex:1;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .model{font-size:12px;font-weight:300;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .model-toggle{font-size:10px;position:relative;top:6px;display:inline-block;margin:auto .3em;cursor:pointer;transition:transform .15s ease-in;transform:rotate(90deg);transform-origin:50% 50%}.swagger-ui .model-toggle.collapsed{transform:rotate(0deg)}.swagger-ui .model-toggle:after{display:block;width:20px;height:20px;content:"";background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z'/%3E%3C/svg%3E") 50% no-repeat;background-size:100%}.swagger-ui .model-jump-to-path{position:relative;cursor:pointer}.swagger-ui .model-jump-to-path .view-line-link{position:absolute;top:-.4em;cursor:pointer}.swagger-ui .model-title{position:relative}.swagger-ui .model-title:hover .model-hint{visibility:visible}.swagger-ui .model-hint{position:absolute;top:-1.8em;visibility:hidden;padding:.1em .5em;white-space:nowrap;color:#ebebeb;border-radius:4px;background:rgba(0,0,0,.7)}.swagger-ui section.models{margin:30px 0;border:1px solid rgba(59,65,81,.3);border-radius:4px}.swagger-ui section.models.is-open{padding:0 0 20px}.swagger-ui section.models.is-open h4{margin:0 0 5px;border-bottom:1px solid rgba(59,65,81,.3)}.swagger-ui section.models h4{font-size:16px;display:flex;margin:0;padding:10px 20px 10px 10px;cursor:pointer;transition:all .2s;font-family:Titillium Web,sans-serif;color:#777;align-items:center}.swagger-ui section.models h4 svg{transition:all .4s}.swagger-ui section.models h4 span{flex:1}.swagger-ui section.models h4:hover{background:rgba(0,0,0,.02)}.swagger-ui section.models h5{font-size:16px;margin:0 0 10px;font-family:Titillium Web,sans-serif;color:#777}.swagger-ui section.models .model-jump-to-path{position:relative;top:5px}.swagger-ui section.models .model-container{margin:0 20px 15px;transition:all .5s;border-radius:4px;background:rgba(0,0,0,.05)}.swagger-ui section.models .model-container:hover{background:rgba(0,0,0,.07)}.swagger-ui section.models .model-container:first-of-type{margin:20px}.swagger-ui section.models .model-container:last-of-type{margin:0 20px}.swagger-ui section.models .model-box{background:none}.swagger-ui .model-box{padding:10px;border-radius:4px;background:rgba(0,0,0,.1)}.swagger-ui .model-box .model-jump-to-path{position:relative;top:4px}.swagger-ui .model-title{font-size:16px;font-family:Titillium Web,sans-serif;color:#555}.swagger-ui span>span.model,.swagger-ui span>span.model .brace-close{padding:0 0 0 10px}.swagger-ui .prop-type{color:#55a}.swagger-ui .prop-enum{display:block}.swagger-ui .prop-format{color:#999}.swagger-ui table{width:100%;padding:0 10px;border-collapse:collapse}.swagger-ui table.model tbody tr td{padding:0;vertical-align:top}.swagger-ui table.model tbody tr td:first-of-type{width:100px;padding:0}.swagger-ui table.headers td{font-size:12px;font-weight:300;vertical-align:middle;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui table tbody tr td{padding:10px 0 0;vertical-align:top}.swagger-ui table tbody tr td:first-of-type{width:20%;padding:10px 0}.swagger-ui table thead tr td,.swagger-ui table thead tr th{font-size:12px;font-weight:700;padding:12px 0;text-align:left;border-bottom:1px solid rgba(59,65,81,.2);font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .parameters-col_description p{font-size:14px;margin:0;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .parameters-col_description input[type=text]{width:100%;max-width:340px}.swagger-ui .parameter__name{font-size:16px;font-weight:400;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .parameter__name.required{font-weight:700}.swagger-ui .parameter__name.required:after{font-size:10px;position:relative;top:-6px;padding:5px;content:"required";color:rgba(255,0,0,.6)}.swagger-ui .parameter__in{font-size:12px;font-style:italic;font-family:Source Code Pro,monospace;font-weight:600;color:#888}.swagger-ui .table-container{padding:20px}.swagger-ui .topbar{padding:8px 30px;background-color:#89bf04}.swagger-ui .topbar .topbar-wrapper,.swagger-ui .topbar a{display:flex;align-items:center}.swagger-ui .topbar a{font-size:1.5em;font-weight:700;flex:1;max-width:300px;text-decoration:none;font-family:Titillium Web,sans-serif;color:#fff}.swagger-ui .topbar a span{margin:0;padding:0 10px}.swagger-ui .topbar .download-url-wrapper{display:flex;flex:3;justify-content:flex-end}.swagger-ui .topbar .download-url-wrapper input[type=text]{width:100%;min-width:350px;margin:0;border:2px solid #547f00;border-radius:4px 0 0 4px;outline:none}.swagger-ui .topbar .download-url-wrapper .select-label{display:flex;align-items:center;width:100%;max-width:600px;margin:0}.swagger-ui .topbar .download-url-wrapper .select-label span{font-size:16px;flex:1;padding:0 10px 0 0;text-align:right}.swagger-ui .topbar .download-url-wrapper .select-label select{flex:2;width:100%;border:2px solid #547f00;outline:none;box-shadow:none}.swagger-ui .topbar .download-url-wrapper .download-url-button{font-size:16px;font-weight:700;padding:4px 40px;border:none;border-radius:0 4px 4px 0;background:#547f00;font-family:Titillium Web,sans-serif;color:#fff}.swagger-ui .info{margin:50px 0}.swagger-ui .info hgroup.main{margin:0 0 20px}.swagger-ui .info hgroup.main a{font-size:12px}.swagger-ui .info li,.swagger-ui .info p,.swagger-ui .info table{font-size:14px;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .info h1,.swagger-ui .info h2,.swagger-ui .info h3,.swagger-ui .info h4,.swagger-ui .info h5{font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .info code{padding:3px 5px;border-radius:4px;background:rgba(0,0,0,.05);font-family:Source Code Pro,monospace;font-weight:600;color:#9012fe}.swagger-ui .info a{font-size:14px;transition:all .4s;font-family:Open Sans,sans-serif;color:#4990e2}.swagger-ui .info a:hover{color:#1f69c0}.swagger-ui .info>div{margin:0 0 5px}.swagger-ui .info .base-url{font-size:12px;font-weight:300!important;margin:0;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .info .title{font-size:36px;margin:0;font-family:Open Sans,sans-serif;color:#3b4151}.swagger-ui .info .title small{font-size:10px;position:relative;top:-5px;display:inline-block;margin:0 0 0 5px;padding:2px 4px;vertical-align:super;border-radius:57px;background:#7d8492}.swagger-ui .info .title small pre{margin:0;font-family:Titillium Web,sans-serif;color:#fff}.swagger-ui .auth-btn-wrapper{display:flex;padding:10px 0;justify-content:center}.swagger-ui .auth-wrapper{display:flex;flex:1;justify-content:flex-end}.swagger-ui .auth-wrapper .authorize{padding-right:20px}.swagger-ui .auth-container{margin:0 0 10px;padding:10px 20px;border-bottom:1px solid #ebebeb}.swagger-ui .auth-container:last-of-type{margin:0;padding:10px 20px;border:0}.swagger-ui .auth-container h4{margin:5px 0 15px!important}.swagger-ui .auth-container .wrapper{margin:0;padding:0}.swagger-ui .auth-container input[type=password],.swagger-ui .auth-container input[type=text]{min-width:230px}.swagger-ui .auth-container .errors{font-size:12px;padding:10px;border-radius:4px;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .scopes h2{font-size:14px;font-family:Titillium Web,sans-serif;color:#3b4151}.swagger-ui .scope-def{padding:0 0 20px}.swagger-ui .errors-wrapper{margin:20px;padding:10px 20px;animation:scaleUp .5s;border:2px solid #f93e3e;border-radius:4px;background:rgba(249,62,62,.1)}.swagger-ui .errors-wrapper .error-wrapper{margin:0 0 10px}.swagger-ui .errors-wrapper .errors h4{font-size:14px;margin:0;font-family:Source Code Pro,monospace;font-weight:600;color:#3b4151}.swagger-ui .errors-wrapper .errors small{color:#666}.swagger-ui .errors-wrapper hgroup{display:flex;align-items:center}.swagger-ui .errors-wrapper hgroup h4{font-size:20px;margin:0;flex:1;font-family:Titillium Web,sans-serif;color:#3b4151}@keyframes scaleUp{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.swagger-ui .Resizer.vertical.disabled { + display: none; +} + +/*# sourceMappingURL=swagger-ui.css.map*/ \ No newline at end of file diff --git a/reference/dtr/2.6/cli/backup.md b/reference/dtr/2.6/cli/backup.md new file mode 100644 index 0000000000..12fb4822aa --- /dev/null +++ b/reference/dtr/2.6/cli/backup.md @@ -0,0 +1,54 @@ +--- +title: docker/dtr backup +description: Create a backup of DTR +keywords: dtr, cli, backup +--- + +Create a backup of DTR + +## Usage + +```bash +docker run -i --rm docker/dtr \ + backup [command options] > backup.tar +``` + +## Description + + +This command creates a tar file with the contents of the volumes used by +DTR, and prints it. You can then use the 'restore' command to restore the data +from an existing backup. + +Note: + + * This command only creates backups of configurations, and image metadata. + It doesn't backup users and organizations. Users and organizations can be + backed up when performing a UCP backup. + + It also doesn't backup the Docker images stored in your registry. + You should implement a separate backup policy for the Docker images stored + in your registry, taking in consideration whether your DTR installation is + configured to store images on the filesystem or using a cloud provider. + + * This backup contains sensitive information and should be + stored securely. + + * Using the '--offline-backup' flag will temporarily shut down the rethinkdb container. + You should take the replica out of your load balancer to avoid downtime. + + +## Options + +| Option | Environment Variable | Description | +|:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| +| `--debug` | $DEBUG | Enable debug mode for additional logs. | +| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | +| `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | +| `--offline-backup` | $DTR_OFFLINE_BACKUP | This flag takes rethinkdb down during backup and takes a more reliable backup..If you back up DTR with this flag, rethinkdb will go down during backup. However, it will be guaranteed to be consistent. With online backups there's no guarantee of consistency.. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https://<ucp-url>/ca, and use --ucp-ca "$(cat ca.pem)". | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | +| `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | +| `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | + diff --git a/reference/dtr/2.6/cli/destroy.md b/reference/dtr/2.6/cli/destroy.md new file mode 100644 index 0000000000..b24252fb94 --- /dev/null +++ b/reference/dtr/2.6/cli/destroy.md @@ -0,0 +1,38 @@ +--- +title: docker/dtr destroy +description: Destroy a DTR replica's data +keywords: dtr, cli, destroy +--- + +Destroy a DTR replica's data + +## Usage + +```bash +docker run -it --rm docker/dtr \ + destroy [command options] +``` + +## Description + + +This command forcefully removes all containers and volumes associated with +a DTR replica without notifying the rest of the cluster. Use this command +on all replicas uninstall DTR. + +Use the 'remove' command to gracefully scale down your DTR cluster. + + +## Options + +| Option | Environment Variable | Description | +|:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| +| `--replica-id` | $DTR_DESTROY_REPLICA_ID | The ID of the replica to destroy. | +| `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | +| `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | +| `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | +| `--debug` | $DEBUG | Enable debug mode for additional logs. | +| `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https://<ucp-url>/ca, and use --ucp-ca "$(cat ca.pem)". | + diff --git a/reference/dtr/2.6/cli/emergency-repair.md b/reference/dtr/2.6/cli/emergency-repair.md new file mode 100644 index 0000000000..7d8b299df3 --- /dev/null +++ b/reference/dtr/2.6/cli/emergency-repair.md @@ -0,0 +1,55 @@ +--- +title: docker/dtr emergency-repair +description: Recover DTR from loss of quorum +keywords: dtr, cli, emergency-repair +--- + +Recover DTR from loss of quorum + +## Usage + +```bash +docker run -it --rm docker/dtr \ + emergency-repair [command options] +``` + +## Description + + +This command repairs a DTR cluster that has lost quorum by reverting your +cluster to a single DTR replica. + +There are three steps you can take to recover an unhealthy DTR cluster: + +1. If the majority of replicas are healthy, remove the unhealthy nodes from + the cluster, and join new ones for high availability. +2. If the majority of replicas are unhealthy, use this command to revert your + cluster to a single DTR replica. +3. If you can't repair your cluster to a single replica, you'll have to + restore from an existing backup, using the 'restore' command. + +When you run this command, a DTR replica of your choice is repaired and +turned into the only replica in the whole DTR cluster. +The containers for all the other DTR replicas are stopped and removed. When +using the 'force' option, the volumes for these replicas are also deleted. + +After repairing the cluster, you should use the 'join' command to add more +DTR replicas for high availability. + + +## Options + +| Option | Environment Variable | Description | +|:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| +| `--debug` | $DEBUG | Enable debug mode for additional logs. | +| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | +| `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | +| `--overlay-subnet` | $DTR_OVERLAY_SUBNET | The subnet used by the dtr-ol overlay network. Example: 10.0.0.0/24.For high-availalibity, DTR creates an overlay network between UCP nodes. This flag allows you to choose the subnet for that network. Make sure the subnet you choose is not used on any machine where DTR replicas are deployed. | +| `--prune` | $PRUNE | Delete the data volumes of all unhealthy replicas.With this option, the volume of the DTR replica you're restoring is preserved but the volumes for all other replicas are deleted. This has the same result as completely uninstalling DTR from those replicas.. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https://<ucp-url>/ca, and use --ucp-ca "$(cat ca.pem)". | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | +| `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | +| `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | +| `--y, yes` | $YES | Answer yes to any prompts. | + diff --git a/reference/dtr/2.6/cli/images.md b/reference/dtr/2.6/cli/images.md new file mode 100644 index 0000000000..3d1a8cd306 --- /dev/null +++ b/reference/dtr/2.6/cli/images.md @@ -0,0 +1,22 @@ +--- +title: docker/dtr images +description: List all the images necessary to install DTR +keywords: dtr, cli, images +--- + +List all the images necessary to install DTR + +## Usage + +```bash +docker run -it --rm docker/dtr \ + images [command options] +``` + +## Description + + +This command lists all the images necessary to install DTR. + + + diff --git a/reference/dtr/2.6/cli/index.md b/reference/dtr/2.6/cli/index.md new file mode 100644 index 0000000000..f13629c2a0 --- /dev/null +++ b/reference/dtr/2.6/cli/index.md @@ -0,0 +1,36 @@ +--- +title: docker/dtr overview +description: Learn about the commands available in the docker/dtr image. +keywords: dtr, install, uninstall, configure +--- + +This tool has commands to install, configure, and backup Docker +Trusted Registry (DTR). It also allows uninstalling DTR. +By default the tool runs in interactive mode. It prompts you for +the values needed. + +Additional help is available for each command with the '--help' option. + + +## Usage + +```bash +docker run -it --rm docker/dtr \ + command [command options] +``` + + +## Commands + +| Option | Description | +|:-------------------------------------|:------------------------------------------------| +| [install](install) | Install Docker Trusted Registry | +| [join](join) | Add a new replica to an existing DTR cluster | +| [reconfigure](reconfigure) | Change DTR configurations | +| [remove](remove) | Remove a DTR replica from a cluster | +| [destroy](destroy) | Destroy a DTR replica's data | +| [restore](restore) | Install and restore DTR from an existing backup | +| [backup](backup) | Create a backup of DTR | +| [upgrade](upgrade) | Upgrade DTR 2.4.x cluster to this version | +| [images](images) | List all the images necessary to install DTR | +| [emergency-repair](emergency-repair) | Recover DTR from loss of quorum | diff --git a/reference/dtr/2.6/cli/install.md b/reference/dtr/2.6/cli/install.md new file mode 100644 index 0000000000..09baa1bfe3 --- /dev/null +++ b/reference/dtr/2.6/cli/install.md @@ -0,0 +1,65 @@ +--- +title: docker/dtr install +description: Install Docker Trusted Registry +keywords: dtr, cli, install +--- + +Install Docker Trusted Registry + +## Usage + +```bash +docker run -it --rm docker/dtr \ + install [command options] +``` + +## Description + + +This command installs Docker Trusted Registry (DTR) on a node managed by +Docker Universal Control Plane (UCP). + +After installing DTR, you can join additional DTR replicas using the 'join' +command. + +Example usage: + +$ docker run -it --rm docker/dtr:2.5.0 install \ + --ucp-node <UCP_NODE_HOSTNAME> \ + --ucp-insecure-tls + +Note: Use --ucp-ca "$(cat ca.pem)" instead of --ucp-insecure-tls for a production deployment. + +## Options + +| Option | Environment Variable | Description | +|:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| +| `--debug` | $DEBUG | Enable debug mode for additional logs. | +| `--dtr-ca` | $DTR_CA | Use a PEM-encoded TLS CA certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS CA certificate with --dtr-ca "$(cat ca.pem)". | +| `--dtr-cert` | $DTR_CERT | Use a PEM-encoded TLS certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS certificate with --dtr-cert "$(cat ca.pem)". | +| `--dtr-external-url` | $DTR_EXTERNAL_URL | URL of the host or load balancer clients use to reach DTR.When you use this flag, users are redirected to UCP for logging in. Once authenticated they are redirected to the url you specify in this flag. If you don't use this flag, DTR is deployed without single sign-on with UCP. Users and teams are shared but users login separately into the two applications. You can enable and disable single sign-on in the DTR settings. Format https://host[:port], where port is the value you used with --replica-https-port. | +| `--dtr-key` | $DTR_KEY | Use a PEM-encoded TLS private key for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS private key with --dtr-key "$(cat ca.pem)". | +| `--dtr-storage-volume` | $DTR_STORAGE_VOLUME | Customize the volume to store Docker images.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify a full path or volume name for DTR to store images. For high-availability, make sure all DTR replicas can read and write data on this volume. If you're using NFS, use --nfs-storage-url instead. | +| `--enable-pprof` | $DTR_PPROF | Enables pprof profiling of the server; use `--enable-pprof=false` to disable it.Once DTR is deployed with this flag, you can access the pprof endpoint for the api server at /debug/pprof, and the registry endpoint at /registry_debug_pprof/debug/pprof. | +| `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | +| `--http-proxy` | $DTR_HTTP_PROXY | The HTTP proxy used for outgoing requests. | +| `--https-proxy` | $DTR_HTTPS_PROXY | The HTTPS proxy used for outgoing requests. | +| `--log-host` | $LOG_HOST | The syslog system to send logs to.The endpoint to send logs to. Use this flag if you set --log-protocol to tcp or udp. | +| `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO.The supported log levels are debug, info, warn, error, or fatal.. | +| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.By default, DTR internal components log information using the logger specified in the Docker daemon in the node where the DTR replica is deployed. Use this option to send DTR logs to an external syslog system. The supported values are tcp, udp, and internal. Internal is the default option, stopping DTR from sending logs to an external system. Use this flag with --log-host. | +| `--nfs-storage-url` | $NFS_STORAGE_URL | Use NFS to store Docker images following this format: `nfs://<ip|hostname>/<mountpoint>`.By default, DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high availability. To use this flag, you need to install an NFS client library like `nfs-common` in the node where you're deploying DTR. You can test this by running `showmount -e <nfs-server>`. When you join new replicas, they will start using NFS so there is no need to specify this flag. To reconfigure DTR to stop using NFS, leave this option empty: `--nfs-storage-url ""`. See [USE NFS](../../../../ee/dtr/admin/configure/external-storage/nfs/) for more details. | +| `--async-nfs` | $ASYNC_NFS | Use async NFS volume options on the replica specified in the `--existing-replica-id` option. The NFS configuration must be set with `--nfs-storage-url` explicitly to use this option. Using `--async-nfs` will bring down any containers on the replica that use the NFS volume, delete the NFS volume, bring it back up with the appropriate configuration, and restart any containers that were brought down. | +| `--nfs-options` | $NFS_OPTIONS | Pass in NFS volume options verbatim for the replica specified in the `--existing-replica-id` option. The NFS configuration must be set with `--nfs-storage-url` explicitly to use this option. Specifying `--nfs-options` will pass in character-for-character the options specified in the argument when creating or recreating the NFS volume. For instance, to use NFS v4 with async, pass in "rw,nfsvers=4,async" as the argument. | +| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for. When using `--http-proxy`, you can use this flag to specify a list of domains that you don't want to route throught the proxy. Format `acme.com[, acme.org]`. | +| `--overlay-subnet` | $DTR_OVERLAY_SUBNET | The subnet used by the dtr-ol overlay network. Example: `10.0.0.0/24`. For high-availability, DTR creates an overlay network between UCP nodes. This flag allows you to choose the subnet for that network. Make sure the subnet you choose is not used on any machine where DTR replicas are deployed. | +| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | +| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | +| `--replica-id` | $DTR_INSTALL_REPLICA_ID | Assign a 12-character hexadecimal ID to the DTR replica. Random by default. | +| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space for rethinkdb in-memory cache use for the given replica in `MB`. Default is auto. Auto is `(available_memory - 1024) / 2`.This config allows you to change the RethinkDB cache usage per replica. You need to run it on a replica basis to apply the configuration change. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https://<ucp-url>/ca, and use --ucp-ca "$(cat ca.pem)". | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--ucp-node` | $UCP_NODE | The hostname of the UCP node to deploy DTR. Random by default.You can find the hostnames of the nodes in the cluster in the UCP web UI, or by running 'docker node ls' on a UCP manager node.. | +| `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | +| `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | +| `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | + diff --git a/reference/dtr/2.6/cli/join.md b/reference/dtr/2.6/cli/join.md new file mode 100644 index 0000000000..5ca0ea55cb --- /dev/null +++ b/reference/dtr/2.6/cli/join.md @@ -0,0 +1,40 @@ +--- +title: docker/dtr join +description: Add a new replica to an existing DTR cluster +keywords: dtr, cli, join +--- + +Add a new replica to an existing DTR cluster + + + +## Description + + +This command creates a replica of an existing DTR on a node managed by +Docker Universal Control Plane (UCP). + +For setting DTR for high-availability, create 3, 5, or 7 replicas of DTR. + + +## Options + +| Option | Environment Variable | Description | +|:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| +| `--debug` | $DEBUG | Enable debug mode for additional logs. | +| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | +| `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | +| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | +| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | +| `--replica-id` | $DTR_INSTALL_REPLICA_ID | Assign a 12-character hexadecimal ID to the DTR replica. Random by default. | +| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space for rethinkdb in-memory cache use for the given replica in MB. + Default is auto. Auto is (available_memory - 1024) / 2.This config allows changing the rethinkdb cache usage per replica. You need to run it once per replica to change each one.. | +| `--skip-network-test` | $DTR_SKIP_NETWORK_TEST | Don't test if overlay networks are working correctly between UCP nodes.For high-availalibity, DTR creates an overlay network between UCP nodes and tests that it is working when joining replicas. Don't use this option for production deployments. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https://<ucp-url>/ca, and use --ucp-ca "$(cat ca.pem)". | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--ucp-node` | $UCP_NODE | The hostname of the UCP node to deploy DTR. Random by default.You can find the hostnames of the nodes in the cluster in the UCP web UI, or by running 'docker node ls' on a UCP manager node.. | +| `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | +| `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | +| `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | +| `--unsafe-join` | $DTR_UNSAFE_JOIN | Join a new replica even if the cluster is unhealthy.Joining replicas to an unhealthy DTR cluster leads to split-brain scenarios, and data loss. Don't use this option for production deployments. | + diff --git a/reference/dtr/2.6/cli/reconfigure.md b/reference/dtr/2.6/cli/reconfigure.md new file mode 100644 index 0000000000..4f56f9f00c --- /dev/null +++ b/reference/dtr/2.6/cli/reconfigure.md @@ -0,0 +1,56 @@ +--- +title: docker/dtr reconfigure +description: Change DTR configurations +keywords: dtr, cli, reconfigure +--- + +Change DTR configurations + +## Usage + +```bash +docker run -it --rm docker/dtr \ + reconfigure [command options] +``` + +## Description + + +This command changes DTR configuration settings. + +DTR is restarted for the new configurations to take effect. To have no down +time, configure your DTR for high-availability. + + +## Options + +| Option | Environment Variable | Description | +|:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| +| `--debug` | $DEBUG | Enable debug mode for additional logs. | +| `--dtr-ca` | $DTR_CA | Use a PEM-encoded TLS CA certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS CA certificate with --dtr-ca "$(cat ca.pem)". | +| `--dtr-cert` | $DTR_CERT | Use a PEM-encoded TLS certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS certificate with --dtr-cert "$(cat ca.pem)". | +| `--dtr-external-url` | $DTR_EXTERNAL_URL | URL of the host or load balancer clients use to reach DTR.When you use this flag, users are redirected to UCP for logging in. Once authenticated they are redirected to the url you specify in this flag. If you don't use this flag, DTR is deployed without single sign-on with UCP. Users and teams are shared but users login separately into the two applications. You can enable and disable single sign-on in the DTR settings. Format https://host[:port], where port is the value you used with --replica-https-port. | +| `--dtr-key` | $DTR_KEY | Use a PEM-encoded TLS private key for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS private key with --dtr-key "$(cat ca.pem)". | +| `--dtr-storage-volume` | $DTR_STORAGE_VOLUME | Customize the volume to store Docker images.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify a full path or volume name for DTR to store images. For high-availability, make sure all DTR replicas can read and write data on this volume. If you're using NFS, use `--nfs-storage-url` instead. | +| `--enable-pprof` | $DTR_PPROF | Enables pprof profiling of the server; use --enable-pprof=false to disable it.Once DTR is deployed with this flag, you can access the pprof endpoint for the api server at /debug/pprof, and the registry endpoint at /registry_debug_pprof/debug/pprof. | +| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | +| `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | +| `--http-proxy` | $DTR_HTTP_PROXY | The HTTP proxy used for outgoing requests. | +| `--https-proxy` | $DTR_HTTPS_PROXY | The HTTPS proxy used for outgoing requests. | +| `--log-host` | $LOG_HOST | The syslog system to send logs to.The endpoint to send logs to. Use this flag if you set --log-protocol to tcp or udp. | +| `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO.The supported log levels are debug, info, warn, error, or fatal.. | +| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.By default, DTR internal components log information using the logger specified in the Docker daemon in the node where the DTR replica is deployed. Use this option to send DTR logs to an external syslog system. The supported values are tcp, udp, and internal. Internal is the default option, stopping DTR from sending logs to an external system. Use this flag with --log-host. | +| `--nfs-storage-url` | $NFS_STORAGE_URL | Use NFS to store Docker images following this format: `nfs://<ip|hostname>/<mountpoint>`.By default, DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high availability. To use this flag, you need to install an NFS client library like `nfs-common` in the node where you're deploying DTR. You can test this by running `showmount -e <nfs-server>`. When you join new replicas, they will start using NFS so there is no need to specify this flag. To reconfigure DTR to stop using NFS, leave this option empty: `--nfs-storage-url ""`. See [USE NFS](../../../../ee/dtr/admin/configure/external-storage/nfs/) for more details. | +| `--async-nfs` | $ASYNC_NFS | Use async NFS volume options on the replica specified in the `--existing-replica-id` option. The NFS configuration must be set with `--nfs-storage-url` explicitly to use this option. Using `--async-nfs` will bring down any containers on the replica that use the NFS volume, delete the NFS volume, bring it back up with the appropriate configuration, and restart any containers that were brought down. | +| `--nfs-options` | $NFS_OPTIONS | Pass in NFS volume options verbatim for the replica specified in the `--existing-replica-id` option. The NFS configuration must be set with `--nfs-storage-url` explicitly to use this option. Specifying `--nfs-options` will pass in character-for-character the options specified in the argument when creating or recreating the NFS volume. For instance, to use NFS v4 with async, pass in "rw,nfsvers=4,async" as the argument. | +| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route throught the proxy. Format acme.com[, acme.org]. | +| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | +| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | +| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space for rethinkdb in-memory cache use for the given replica in MB. + Default is auto. Auto is (available_memory - 1024) / 2.This config allows changing the rethinkdb cache usage per replica. You need to run it once per replica to change each one.. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https://<ucp-url>/ca, and use --ucp-ca "$(cat ca.pem)". | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | +| `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | +| `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | + diff --git a/reference/dtr/2.6/cli/remove.md b/reference/dtr/2.6/cli/remove.md new file mode 100644 index 0000000000..929d5df019 --- /dev/null +++ b/reference/dtr/2.6/cli/remove.md @@ -0,0 +1,38 @@ +--- +title: docker/dtr remove +description: Remove a DTR replica from a cluster +keywords: dtr, cli, remove +--- + +Remove a DTR replica from a cluster + +## Usage + +```bash +docker run -it --rm docker/dtr \ + remove [command options] +``` + +## Description + + +This command gracefully scales down your DTR cluster by removing exactly +one replica. All other replicas must be healthy and will remain healthy after +this operation. + + +## Options + +| Option | Environment Variable | Description | +|:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| +| `--debug` | $DEBUG | Enable debug mode for additional logs. | +| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | +| `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | +| `--replica-id` | $DTR_REMOVE_REPLICA_ID | DEPRECATED Alias for --replica-ids. | +| `--replica-ids` | $DTR_REMOVE_REPLICA_IDS | A comma separated list of IDs of replicas to remove from the cluster. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https://<ucp-url>/ca, and use --ucp-ca "$(cat ca.pem)". | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | +| `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | +| `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | + diff --git a/reference/dtr/2.6/cli/restore.md b/reference/dtr/2.6/cli/restore.md new file mode 100644 index 0000000000..4b7c11e87e --- /dev/null +++ b/reference/dtr/2.6/cli/restore.md @@ -0,0 +1,70 @@ +--- +title: docker/dtr restore +description: Install and restore DTR from an existing backup +keywords: dtr, cli, restore +--- + +Install and restore DTR from an existing backup + +## Usage + +```bash +docker run -i --rm docker/dtr \ + restore [command options] < backup.tar +``` + +## Description + + +This command performs a fresh installation of DTR, and reconfigures it +with configuration data from a tar file generated by the 'backup' command. + +There are three steps you can take to recover an unhealthy DTR cluster: + +1. If the majority of replicas are healthy, remove the unhealthy nodes from + the cluster, and join new ones for high availability. +2. If the majority of replicas are unhealthy, use this command to revert your + cluster to a single DTR replica. +3. If you can't repair your cluster to a single replica, you'll have to + restore from an existing backup, using the 'restore' command. + +This command does not restore Docker images. You should implement a separate +restore procedure for the Docker images stored in your registry, taking in +consideration whether your DTR installation is configured to store images on +the local filesystem or using a cloud provider. + +After restoring the cluster, you should use the 'join' command to add more +DTR replicas for high availability. + + +## Options + +| Option | Environment Variable | Description | +|:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| +| `--debug` | $DEBUG | Enable debug mode for additional logs. | +| `--dtr-ca` | $DTR_CA | Use a PEM-encoded TLS CA certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS CA certificate with --dtr-ca "$(cat ca.pem)". | +| `--dtr-cert` | $DTR_CERT | Use a PEM-encoded TLS certificate for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS certificate with --dtr-cert "$(cat ca.pem)". | +| `--dtr-external-url` | $DTR_EXTERNAL_URL | URL of the host or load balancer clients use to reach DTR.When you use this flag, users are redirected to UCP for logging in. Once authenticated they are redirected to the url you specify in this flag. If you don't use this flag, DTR is deployed without single sign-on with UCP. Users and teams are shared but users login separately into the two applications. You can enable and disable single sign-on in the DTR settings. Format https://host[:port], where port is the value you used with --replica-https-port. | +| `--dtr-key` | $DTR_KEY | Use a PEM-encoded TLS private key for DTR.By default DTR generates a self-signed TLS certificate during deployment. You can use your own TLS private key with --dtr-key "$(cat ca.pem)". | +| `--dtr-storage-volume` | $DTR_STORAGE_VOLUME | Customize the volume to store Docker images.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify a full path or volume name for DTR to store images. For high-availability, make sure all DTR replicas can read and write data on this volume. If you're using NFS, use --nfs-storage-url instead. | +| `--enable-pprof` | $DTR_PPROF | Enables pprof profiling of the server; use --enable-pprof=false to disable it.Once DTR is deployed with this flag, you can access the pprof endpoint for the api server at /debug/pprof, and the registry endpoint at /registry_debug_pprof/debug/pprof. | +| `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | +| `--http-proxy` | $DTR_HTTP_PROXY | The HTTP proxy used for outgoing requests. | +| `--https-proxy` | $DTR_HTTPS_PROXY | The HTTPS proxy used for outgoing requests. | +| `--log-host` | $LOG_HOST | The syslog system to send logs to.The endpoint to send logs to. Use this flag if you set --log-protocol to tcp or udp. | +| `--log-level` | $LOG_LEVEL | Log level for all container logs when logging to syslog. Default: INFO.The supported log levels are debug, info, warn, error, or fatal.. | +| `--log-protocol` | $LOG_PROTOCOL | The protocol for sending logs. Default is internal.By default, DTR internal components log information using the logger specified in the Docker daemon in the node where the DTR replica is deployed. Use this option to send DTR logs to an external syslog system. The supported values are tcp, udp, and internal. Internal is the default option, stopping DTR from sending logs to an external system. Use this flag with --log-host. | +| `--nfs-storage-url` | $NFS_STORAGE_URL | NFS to store Docker images. Format nfs://<ip&#124;hostname>/<mountpoint>.By default DTR creates a volume to store the Docker images in the local filesystem of the node where DTR is running, without high-availability. Use this flag to specify an NFS mount for DTR to store images, using the format nfs://<ip&#124;hostname>/<mountpoint>. To use this flag, you need to install an NFS client library like nfs-common in the node where you're deploying DTR. You can test this by running showmount -e <nfs-server>. When you join new replicas, they will start using NFS so you don't need to use this flag. To reconfigure DTR to stop using NFS, leave this option empty. | +| `--no-proxy` | $DTR_NO_PROXY | List of domains the proxy should not be used for.When using --http-proxy you can use this flag to specify a list of domains that you don't want to route throught the proxy. Format acme.com[, acme.org]. | +| `--replica-http-port` | $REPLICA_HTTP_PORT | The public HTTP port for the DTR replica. Default is 80.This allows you to customize the HTTP port where users can reach DTR. Once users access the HTTP port, they are redirected to use an HTTPS connection, using the port specified with --replica-https-port. This port can also be used for unencrypted health checks. | +| `--replica-https-port` | $REPLICA_HTTPS_PORT | The public HTTPS port for the DTR replica. Default is 443.This allows you to customize the HTTPS port where users can reach DTR. Each replica can use a different port. | +| `--replica-id` | $DTR_INSTALL_REPLICA_ID | Assign a 12-character hexadecimal ID to the DTR replica. Random by default. | +| `--replica-rethinkdb-cache-mb` | $RETHINKDB_CACHE_MB | The maximum amount of space for rethinkdb in-memory cache use for the given replica in MB. + Default is auto. Auto is (available_memory - 1024) / 2.This config allows changing the rethinkdb cache usage per replica. You need to run it once per replica to change each one.. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https://<ucp-url>/ca, and use --ucp-ca "$(cat ca.pem)". | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--ucp-node` | $UCP_NODE | The hostname of the UCP node to deploy DTR. Random by default.You can find the hostnames of the nodes in the cluster in the UCP web UI, or by running 'docker node ls' on a UCP manager node.. | +| `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | +| `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | +| `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | + diff --git a/reference/dtr/2.6/cli/upgrade.md b/reference/dtr/2.6/cli/upgrade.md new file mode 100644 index 0000000000..274b63ef15 --- /dev/null +++ b/reference/dtr/2.6/cli/upgrade.md @@ -0,0 +1,34 @@ +--- +title: docker/dtr upgrade +description: Upgrade DTR 2.4.x cluster to this version +keywords: dtr, cli, upgrade +--- + +Upgrade DTR 2.4.x cluster to this version + +## Usage + +```bash +docker run -it --rm docker/dtr \ + upgrade [command options] +``` + +## Description + + +This command upgrades DTR 2.4.x to the current version of this image. + + +## Options + +| Option | Environment Variable | Description | +|:------------------------------|:--------------------------|:-------------------------------------------------------------------------------------| +| `--debug` | $DEBUG | Enable debug mode for additional logs. | +| `--existing-replica-id` | $DTR_REPLICA_ID | The ID of an existing DTR replica.To add, remove or modify DTR, you must connect to an existing healthy replica's database.. | +| `--help-extended` | $DTR_EXTENDED_HELP | Display extended help text for a given command. | +| `--ucp-ca` | $UCP_CA | Use a PEM-encoded TLS CA certificate for UCP.Download the UCP TLS CA certificate from https://<ucp-url>/ca, and use --ucp-ca "$(cat ca.pem)". | +| `--ucp-insecure-tls` | $UCP_INSECURE_TLS | Disable TLS verification for UCP.The installation uses TLS but always trusts the TLS certificate used by UCP, which can lead to man-in-the-middle attacks. For production deployments, use --ucp-ca "$(cat ca.pem)" instead. | +| `--ucp-password` | $UCP_PASSWORD | The UCP administrator password. | +| `--ucp-url` | $UCP_URL | The UCP URL including domain and port. | +| `--ucp-username` | $UCP_USERNAME | The UCP administrator username. | + From bca9fe63e1cf77ac16a3e5dcbce4254ad3128806 Mon Sep 17 00:00:00 2001 From: Trapier Marshall <trapier.marshall@docker.com> Date: Mon, 22 Oct 2018 14:20:36 -0400 Subject: [PATCH 142/222] ucp roles: fix punctuation --- datacenter/ucp/1.1/user-management/create-and-manage-users.md | 2 +- datacenter/ucp/1.1/user-management/permission-levels.md | 2 +- datacenter/ucp/2.0/guides/user-management/permission-levels.md | 2 +- .../ucp/2.1/guides/admin/manage-users/permission-levels.md | 2 +- datacenter/ucp/2.2/guides/access-control/permission-levels.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/datacenter/ucp/1.1/user-management/create-and-manage-users.md b/datacenter/ucp/1.1/user-management/create-and-manage-users.md index c5b7f6db35..5d6782ce4a 100644 --- a/datacenter/ucp/1.1/user-management/create-and-manage-users.md +++ b/datacenter/ucp/1.1/user-management/create-and-manage-users.md @@ -32,7 +32,7 @@ in the cluster. There are four permission levels: | `No Access` | The user can't view any resource, like volumes, networks, images, or containers. | | `View Only` | The user can view volumes, networks and images, but can't create any containers. | | `Restricted Control` | The user can view and edit volumes, networks, and images. They can create containers, but can't see other users containers, run `docker exec`, or run containers that require privileged access to the host. | -| `Full Control` | The user can view and edit volumes, networks, and images, They can create containers without any restriction, but can't see other users containers. | +| `Full Control` | The user can view and edit volumes, networks, and images. They can create containers without any restriction, but can't see other users containers. | [Learn more about the UCP permission levels](permission-levels.md). Finally, click the **Create User** button, to create the user. diff --git a/datacenter/ucp/1.1/user-management/permission-levels.md b/datacenter/ucp/1.1/user-management/permission-levels.md index 9003e28e51..d767015688 100644 --- a/datacenter/ucp/1.1/user-management/permission-levels.md +++ b/datacenter/ucp/1.1/user-management/permission-levels.md @@ -34,7 +34,7 @@ access to full control over the resources. | `No Access` | The user can't view any resource, like volumes, networks, images, or containers. | | `View Only` | The user can view volumes, networks and images, but can't create any containers. | | `Restricted Control` | The user can view and edit volumes, networks, and images. They can create containers, but can't see other users containers, run `docker exec`, or run containers that require privileged access to the host. | -| `Full Control` | The user can view and edit volumes, networks, and images, They can create containers without any restriction, but can't see other users containers. | +| `Full Control` | The user can view and edit volumes, networks, and images. They can create containers without any restriction, but can't see other users containers. | When a user only has a default permission assigned, only them and admin users can see the containers they deploy in the cluster. diff --git a/datacenter/ucp/2.0/guides/user-management/permission-levels.md b/datacenter/ucp/2.0/guides/user-management/permission-levels.md index 4661527a18..aa10f1d8a5 100644 --- a/datacenter/ucp/2.0/guides/user-management/permission-levels.md +++ b/datacenter/ucp/2.0/guides/user-management/permission-levels.md @@ -32,7 +32,7 @@ access to full control over the resources. | `No Access` | The user can't view any resource, like volumes, networks, images, or containers. | | `View Only` | The user can view volumes, networks and images, but can't create any containers. | | `Restricted Control` | The user can view and edit volumes, networks, and images. They can create containers, but can't see other users containers, run `docker exec`, or run containers that require privileged access to the host. | -| `Full Control` | The user can view and edit volumes, networks, and images, They can create containers without any restriction, but can't see other users containers. | +| `Full Control` | The user can view and edit volumes, networks, and images. They can create containers without any restriction, but can't see other users containers. | When a user only has a default permission assigned, only them and admin users can see the containers they deploy in the cluster. diff --git a/datacenter/ucp/2.1/guides/admin/manage-users/permission-levels.md b/datacenter/ucp/2.1/guides/admin/manage-users/permission-levels.md index f273a37516..487663796a 100644 --- a/datacenter/ucp/2.1/guides/admin/manage-users/permission-levels.md +++ b/datacenter/ucp/2.1/guides/admin/manage-users/permission-levels.md @@ -32,7 +32,7 @@ access to full control over the resources. | `No Access` | The user can't view any resource, like volumes, networks, images, or containers. | | `View Only` | The user can view volumes, networks, and images, but can't create any containers. | | `Restricted Control` | The user can view and edit volumes, networks, and images. They can create containers, but can't see other users' containers, run `docker exec`, or run containers that require privileged access to the host. | -| `Full Control` | The user can view and edit volumes, networks, and images, They can create containers without any restriction, but can't see other users' containers. | +| `Full Control` | The user can view and edit volumes, networks, and images. They can create containers without any restriction, but can't see other users' containers. | If a user has Restricted Control or Full Control default permissions, they can create resources without labels, and only the user and Admins can see and access the resources. Default permissions also affect ability for a user to access things that can't have labels, images and nodes. diff --git a/datacenter/ucp/2.2/guides/access-control/permission-levels.md b/datacenter/ucp/2.2/guides/access-control/permission-levels.md index 871f43d2a3..3d677851c3 100644 --- a/datacenter/ucp/2.2/guides/access-control/permission-levels.md +++ b/datacenter/ucp/2.2/guides/access-control/permission-levels.md @@ -39,7 +39,7 @@ The system provides the following default roles: | `View Only` | The user can view resources like services, volumes, and networks but can't create them. | | `Restricted Control` | The user can view and edit volumes, networks, and images but can't run a service or container in a way that might affect the node where it's running. The user can't mount a node directory and can't `exec` into containers. Also, The user can't run containers in privileged mode or with additional kernel capabilities. | | `Scheduler` | The user can view nodes and schedule workloads on them. Worker nodes and manager nodes are affected by `Scheduler` grants. Having `Scheduler` access doesn't allow the user to view workloads on these nodes. They need the appropriate resource permissions, like `Container View`. By default, all users get a grant with the `Scheduler` role against the `/Shared` collection. | -| `Full Control` | The user can view and edit volumes, networks, and images, They can create containers without any restriction, but can't see other users' containers. | +| `Full Control` | The user can view and edit volumes, networks, and images. They can create containers without any restriction, but can't see other users' containers. | ![Diagram showing UCP permission levels](../images/permissions-ucp.svg) From b133cdac5f274f00cdff8cb239e666ffe2a50949 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 22 Oct 2018 13:48:42 -0600 Subject: [PATCH 143/222] Update install-cni-plugin.md Made fixes based on @mark-church's comments in the issue. --- ee/ucp/kubernetes/install-cni-plugin.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ee/ucp/kubernetes/install-cni-plugin.md b/ee/ucp/kubernetes/install-cni-plugin.md index 80ab2eb9aa..988f0e16be 100644 --- a/ee/ucp/kubernetes/install-cni-plugin.md +++ b/ee/ucp/kubernetes/install-cni-plugin.md @@ -15,7 +15,7 @@ UCP supports third-party Container Networking Interface (CNI) plugins. By defaul installs the built-in [Calico](https://github.com/projectcalico/cni-plugin) plugin, but you can override the default and install a Docker certified plugin. -***NOTE:*** The `--cni-installer-url` option is deprecated as of the EE 2.1 release. +***NOTE:*** The `--cni-installer-url` option is deprecated as of the EE 2.1 release. It is replaced by the `--unmanaged-cni` option. # Install UCP with a custom CNI plugin @@ -28,7 +28,7 @@ docker container run --rm -it --name ucp \ -v /var/run/docker.sock:/var/run/docker.sock \ {{ page.ucp_org }}/{{ page.ucp_repo }}:{{ page.ucp_version }} install \ --host-address <node-ip-address> \ - --cni-installer-url <cni-yaml-url> \ + --unmanaged-cni <true|false> \ --interactive ``` From 972a31f5e9e79fb50d9d5603e5886c5dd7c16643 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 22 Oct 2018 13:53:21 -0600 Subject: [PATCH 144/222] Update install.md Added changes per @mark-church. --- reference/ucp/3.0/cli/install.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/reference/ucp/3.0/cli/install.md b/reference/ucp/3.0/cli/install.md index 379f1f2d92..b362d91ec8 100644 --- a/reference/ucp/3.0/cli/install.md +++ b/reference/ucp/3.0/cli/install.md @@ -13,6 +13,7 @@ docker container run --rm -it \ --name ucp \ -v /var/run/docker.sock:/var/run/docker.sock \ docker/ucp \ + --unmanaged-cni <true install [command options] ``` @@ -54,6 +55,7 @@ command. | `--admin-username` | The UCP administrator username | | `--admin-password` | The UCP administrator password | | `--san` | Add subject alternative names to certificates (e.g. --san www1.acme.com --san www2.acme.com) | +| `--unmanaged-cni` | This determines who manages the CNI plugin, using `true` or `false`. The default is false. The `true` value installs UCP without a managed CNI plugin. UCP and the Kubernetes components will be running but pod to pod networking will not function until a CNI plugin is manually installed. This will impact some functionality of UCP until a CNI plugin is running. | | `--host-address` | The network address to advertise to other nodes. Format: IP address or network interface name | | `--data-path-addr` | Address or interface to use for data path traffic. Format: IP address or network interface name | | `--controller-port` | Port for the web UI and API | From 343528e7ad6a84f5d27d69a1278915d4c2629ff7 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 22 Oct 2018 13:54:16 -0600 Subject: [PATCH 145/222] Update upgrade.md Added changes per @mark-church --- reference/ucp/3.0/cli/upgrade.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/reference/ucp/3.0/cli/upgrade.md b/reference/ucp/3.0/cli/upgrade.md index a43f6f0923..d905c50731 100644 --- a/reference/ucp/3.0/cli/upgrade.md +++ b/reference/ucp/3.0/cli/upgrade.md @@ -13,6 +13,7 @@ Upgrade the UCP cluster --name ucp \ -v /var/run/docker.sock:/var/run/docker.sock \ docker/ucp \ + --unmanaged-cni <true|false> upgrade [command options] ``` @@ -39,6 +40,8 @@ healthy and that all nodes have been upgraded successfully. | `--pull` | Pull UCP images: `always`, when `missing`, or `never` | | `--registry-username` | Username to use when pulling images | | `--registry-password` | Password to use when pulling images | +| `--unmanaged-cni` | This determines who manages the CNI plugin, using `true` or `false`. The default is false. The `true` value installs UCP without a managed CNI plugin. UCP and the Kubernetes components will be running but pod to pod networking will not function until a CNI plugin is manually installed. This will impact some functionality of UCP until a CNI plugin is running. +| | `--id` | The ID of the UCP instance to upgrade | | `--host-address` | Override the previously configured host address with this IP or network interface | | `--force-minimums` | Force the install/upgrade even if the system does not meet the minimum requirements | From 8efdd8028ec8a26b7ca3f44193189438a638f9fd Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 22 Oct 2018 13:55:27 -0600 Subject: [PATCH 146/222] Update upgrade.md --- reference/ucp/3.0/cli/upgrade.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/ucp/3.0/cli/upgrade.md b/reference/ucp/3.0/cli/upgrade.md index d905c50731..e493126026 100644 --- a/reference/ucp/3.0/cli/upgrade.md +++ b/reference/ucp/3.0/cli/upgrade.md @@ -40,7 +40,7 @@ healthy and that all nodes have been upgraded successfully. | `--pull` | Pull UCP images: `always`, when `missing`, or `never` | | `--registry-username` | Username to use when pulling images | | `--registry-password` | Password to use when pulling images | -| `--unmanaged-cni` | This determines who manages the CNI plugin, using `true` or `false`. The default is false. The `true` value installs UCP without a managed CNI plugin. UCP and the Kubernetes components will be running but pod to pod networking will not function until a CNI plugin is manually installed. This will impact some functionality of UCP until a CNI plugin is running. +| `--unmanaged-cni` | This determines who manages the CNI plugin, using `true` or `false`. The default is false. The `true` value installs UCP without a managed CNI plugin. UCP and the Kubernetes components will be running but pod to pod networking will not function until a CNI plugin is manually installed. This will impact some functionality of UCP until a CNI plugin is running. | | `--id` | The ID of the UCP instance to upgrade | | `--host-address` | Override the previously configured host address with this IP or network interface | From 3b3362e5b12a243102f09d197c13f227403bfc5c Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 22 Oct 2018 14:25:09 -0600 Subject: [PATCH 147/222] Update install.md typo fix --- reference/ucp/3.0/cli/install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/ucp/3.0/cli/install.md b/reference/ucp/3.0/cli/install.md index b362d91ec8..3b26b5e0c2 100644 --- a/reference/ucp/3.0/cli/install.md +++ b/reference/ucp/3.0/cli/install.md @@ -13,7 +13,7 @@ docker container run --rm -it \ --name ucp \ -v /var/run/docker.sock:/var/run/docker.sock \ docker/ucp \ - --unmanaged-cni <true + --unmanaged-cni <true|false> install [command options] ``` From e33f4f5dda9a08f22e28049565f3d4fa05a56039 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 22 Oct 2018 14:26:12 -0600 Subject: [PATCH 148/222] Update install.md --- reference/ucp/3.0/cli/install.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/reference/ucp/3.0/cli/install.md b/reference/ucp/3.0/cli/install.md index 3b26b5e0c2..a066455d95 100644 --- a/reference/ucp/3.0/cli/install.md +++ b/reference/ucp/3.0/cli/install.md @@ -13,7 +13,6 @@ docker container run --rm -it \ --name ucp \ -v /var/run/docker.sock:/var/run/docker.sock \ docker/ucp \ - --unmanaged-cni <true|false> install [command options] ``` @@ -54,8 +53,7 @@ command. | `--interactive, i` | Run in interactive mode and prompt for configuration values | | `--admin-username` | The UCP administrator username | | `--admin-password` | The UCP administrator password | -| `--san` | Add subject alternative names to certificates (e.g. --san www1.acme.com --san www2.acme.com) | -| `--unmanaged-cni` | This determines who manages the CNI plugin, using `true` or `false`. The default is false. The `true` value installs UCP without a managed CNI plugin. UCP and the Kubernetes components will be running but pod to pod networking will not function until a CNI plugin is manually installed. This will impact some functionality of UCP until a CNI plugin is running. | +| `--san` | Add subject alternative names to certificates (e.g. --san www1.acme.com --san www2.acme.com) | | `--host-address` | The network address to advertise to other nodes. Format: IP address or network interface name | | `--data-path-addr` | Address or interface to use for data path traffic. Format: IP address or network interface name | | `--controller-port` | Port for the web UI and API | From a6de59869bd529e8c8609f00ecd41bd3bf29b5d9 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 22 Oct 2018 14:26:50 -0600 Subject: [PATCH 149/222] Update upgrade.md --- reference/ucp/3.0/cli/upgrade.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/reference/ucp/3.0/cli/upgrade.md b/reference/ucp/3.0/cli/upgrade.md index e493126026..a43f6f0923 100644 --- a/reference/ucp/3.0/cli/upgrade.md +++ b/reference/ucp/3.0/cli/upgrade.md @@ -13,7 +13,6 @@ Upgrade the UCP cluster --name ucp \ -v /var/run/docker.sock:/var/run/docker.sock \ docker/ucp \ - --unmanaged-cni <true|false> upgrade [command options] ``` @@ -40,8 +39,6 @@ healthy and that all nodes have been upgraded successfully. | `--pull` | Pull UCP images: `always`, when `missing`, or `never` | | `--registry-username` | Username to use when pulling images | | `--registry-password` | Password to use when pulling images | -| `--unmanaged-cni` | This determines who manages the CNI plugin, using `true` or `false`. The default is false. The `true` value installs UCP without a managed CNI plugin. UCP and the Kubernetes components will be running but pod to pod networking will not function until a CNI plugin is manually installed. This will impact some functionality of UCP until a CNI plugin is running. -| | `--id` | The ID of the UCP instance to upgrade | | `--host-address` | Override the previously configured host address with this IP or network interface | | `--force-minimums` | Force the install/upgrade even if the system does not meet the minimum requirements | From 71eb249571a9d27c151fbba68777986fa2680181 Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Mon, 22 Oct 2018 14:31:14 -0600 Subject: [PATCH 150/222] Added back --cni-installer-url for 3.0. --- reference/ucp/3.0/cli/install.md | 2 ++ reference/ucp/3.0/cli/upgrade.md | 1 + 2 files changed, 3 insertions(+) diff --git a/reference/ucp/3.0/cli/install.md b/reference/ucp/3.0/cli/install.md index a066455d95..0e074f75b9 100644 --- a/reference/ucp/3.0/cli/install.md +++ b/reference/ucp/3.0/cli/install.md @@ -60,6 +60,8 @@ command. | `--kube-apiserver-port` | Port for the Kubernetes API server (default: 6443) | | `--swarm-port` | Port for the Docker Swarm manager. Used for backwards compatibility | | `--swarm-grpc-port` | Port for communication between nodes | +| `--cni-installer-url` | A URL pointing to a Kubernetes YAML file to be used as an installer for the CNI plugin of the cluster. If specified, the default CNI plugin is not installed. If the URL uses the HTTPS scheme, no certificate verification is performed. | + | `--pod-cidr` | Kubernetes cluster IP pool for the pods to allocated IPs from (Default: 192.168.0.0/16) | | `--cloud-provider` | The cloud provider for the cluster | | `--dns` | Set custom DNS servers for the UCP containers | diff --git a/reference/ucp/3.0/cli/upgrade.md b/reference/ucp/3.0/cli/upgrade.md index a43f6f0923..9206d2b608 100644 --- a/reference/ucp/3.0/cli/upgrade.md +++ b/reference/ucp/3.0/cli/upgrade.md @@ -45,3 +45,4 @@ healthy and that all nodes have been upgraded successfully. | `--pod-cidr` | Kubernetes cluster IP pool for the pods to allocated IP from (Default: 192.168.0.0/16 | | `--nodeport-range` | Allowed port range for Kubernetes services of type NodePort (Default: 32768-35535) | | `--cloud-provider` | The cloud provider for the cluster | +| `--cni-installer-url` | A URL pointing to a kubernetes YAML file to be used as an installer for the CNI plugin of the cluster | From 3226a1144375ef78e34232b0569d92bf9ea883e0 Mon Sep 17 00:00:00 2001 From: Anne Henmi <anne.henmi@docker.com> Date: Mon, 22 Oct 2018 14:39:34 -0600 Subject: [PATCH 151/222] Fixed wording. Created 3.1 UCP directory. --- ee/ucp/kubernetes/install-cni-plugin.md | 2 +- reference/ucp/3.1/api/css/print.css | 1172 + reference/ucp/3.1/api/css/reset.css | 125 + reference/ucp/3.1/api/css/screen.css | 1279 + reference/ucp/3.1/api/css/style.css | 250 + reference/ucp/3.1/api/css/typography.css | 26 + reference/ucp/3.1/api/custom/custom.css | 15 + .../3.1/api/fonts/droid-sans-v6-latin-700.eot | Bin 0 -> 22922 bytes .../3.1/api/fonts/droid-sans-v6-latin-700.svg | 411 + .../3.1/api/fonts/droid-sans-v6-latin-700.ttf | Bin 0 -> 40513 bytes .../api/fonts/droid-sans-v6-latin-700.woff | Bin 0 -> 25992 bytes .../api/fonts/droid-sans-v6-latin-700.woff2 | Bin 0 -> 11480 bytes .../api/fonts/droid-sans-v6-latin-regular.eot | Bin 0 -> 22008 bytes .../api/fonts/droid-sans-v6-latin-regular.svg | 403 + .../api/fonts/droid-sans-v6-latin-regular.ttf | Bin 0 -> 39069 bytes .../fonts/droid-sans-v6-latin-regular.woff | Bin 0 -> 24868 bytes .../fonts/droid-sans-v6-latin-regular.woff2 | Bin 0 -> 11304 bytes .../ucp/3.1/api/images/explorer_icons.png | Bin 0 -> 5763 bytes .../ucp/3.1/api/images/favicon-16x16.png | Bin 0 -> 645 bytes .../ucp/3.1/api/images/favicon-32x32.png | Bin 0 -> 1654 bytes reference/ucp/3.1/api/images/favicon.ico | Bin 0 -> 5430 bytes reference/ucp/3.1/api/images/logo_small.png | Bin 0 -> 770 bytes .../ucp/3.1/api/images/pet_store_api.png | Bin 0 -> 824 bytes reference/ucp/3.1/api/images/throbber.gif | Bin 0 -> 9257 bytes reference/ucp/3.1/api/images/wordnik_api.png | Bin 0 -> 980 bytes reference/ucp/3.1/api/index.html | 32 + reference/ucp/3.1/api/index.md | 29 + reference/ucp/3.1/api/lang/en.js | 53 + reference/ucp/3.1/api/lang/es.js | 52 + reference/ucp/3.1/api/lang/pt.js | 53 + reference/ucp/3.1/api/lang/ru.js | 52 + reference/ucp/3.1/api/lang/tr.js | 53 + reference/ucp/3.1/api/lang/translator.js | 39 + reference/ucp/3.1/api/lib/backbone-min.js | 15 + reference/ucp/3.1/api/lib/handlebars-2.0.0.js | 28 + .../ucp/3.1/api/lib/highlight.7.3.pack.js | 1 + reference/ucp/3.1/api/lib/jquery-1.8.0.min.js | 2 + .../ucp/3.1/api/lib/jquery.ba-bbq.min.js | 18 + .../ucp/3.1/api/lib/jquery.slideto.min.js | 1 + .../ucp/3.1/api/lib/jquery.wiggle.min.js | 8 + reference/ucp/3.1/api/lib/marked.js | 1272 + reference/ucp/3.1/api/lib/swagger-oauth.js | 290 + reference/ucp/3.1/api/lib/underscore-min.js | 6 + reference/ucp/3.1/api/lib/underscore-min.map | 1 + reference/ucp/3.1/api/main.js | 62 + reference/ucp/3.1/api/o2c.html | 20 + reference/ucp/3.1/api/swagger-fix.diff | 25 + reference/ucp/3.1/api/swagger-ui.js | 32269 ++++++++++++++++ reference/ucp/3.1/api/swagger-ui.js.original | 32269 ++++++++++++++++ reference/ucp/3.1/api/swagger-ui.min.js | 30 + .../ucp/3.1/api/swagger-ui.min.js.original | 17 + reference/ucp/3.1/cli/backup.md | 46 + reference/ucp/3.1/cli/dump-certs.md | 35 + reference/ucp/3.1/cli/example-config.md | 17 + reference/ucp/3.1/cli/id.md | 25 + reference/ucp/3.1/cli/images.md | 34 + reference/ucp/3.1/cli/index.md | 45 + reference/ucp/3.1/cli/install.md | 89 + reference/ucp/3.1/cli/restart.md | 24 + reference/ucp/3.1/cli/restore.md | 70 + reference/ucp/3.1/cli/stop.md | 24 + reference/ucp/3.1/cli/support.md | 29 + reference/ucp/3.1/cli/uninstall-ucp.md | 42 + reference/ucp/3.1/cli/upgrade.md | 48 + 64 files changed, 70907 insertions(+), 1 deletion(-) create mode 100644 reference/ucp/3.1/api/css/print.css create mode 100644 reference/ucp/3.1/api/css/reset.css create mode 100644 reference/ucp/3.1/api/css/screen.css create mode 100644 reference/ucp/3.1/api/css/style.css create mode 100644 reference/ucp/3.1/api/css/typography.css create mode 100644 reference/ucp/3.1/api/custom/custom.css create mode 100644 reference/ucp/3.1/api/fonts/droid-sans-v6-latin-700.eot create mode 100644 reference/ucp/3.1/api/fonts/droid-sans-v6-latin-700.svg create mode 100644 reference/ucp/3.1/api/fonts/droid-sans-v6-latin-700.ttf create mode 100644 reference/ucp/3.1/api/fonts/droid-sans-v6-latin-700.woff create mode 100644 reference/ucp/3.1/api/fonts/droid-sans-v6-latin-700.woff2 create mode 100644 reference/ucp/3.1/api/fonts/droid-sans-v6-latin-regular.eot create mode 100644 reference/ucp/3.1/api/fonts/droid-sans-v6-latin-regular.svg create mode 100644 reference/ucp/3.1/api/fonts/droid-sans-v6-latin-regular.ttf create mode 100644 reference/ucp/3.1/api/fonts/droid-sans-v6-latin-regular.woff create mode 100644 reference/ucp/3.1/api/fonts/droid-sans-v6-latin-regular.woff2 create mode 100644 reference/ucp/3.1/api/images/explorer_icons.png create mode 100644 reference/ucp/3.1/api/images/favicon-16x16.png create mode 100644 reference/ucp/3.1/api/images/favicon-32x32.png create mode 100644 reference/ucp/3.1/api/images/favicon.ico create mode 100644 reference/ucp/3.1/api/images/logo_small.png create mode 100644 reference/ucp/3.1/api/images/pet_store_api.png create mode 100644 reference/ucp/3.1/api/images/throbber.gif create mode 100644 reference/ucp/3.1/api/images/wordnik_api.png create mode 100644 reference/ucp/3.1/api/index.html create mode 100644 reference/ucp/3.1/api/index.md create mode 100644 reference/ucp/3.1/api/lang/en.js create mode 100644 reference/ucp/3.1/api/lang/es.js create mode 100644 reference/ucp/3.1/api/lang/pt.js create mode 100644 reference/ucp/3.1/api/lang/ru.js create mode 100644 reference/ucp/3.1/api/lang/tr.js create mode 100644 reference/ucp/3.1/api/lang/translator.js create mode 100644 reference/ucp/3.1/api/lib/backbone-min.js create mode 100644 reference/ucp/3.1/api/lib/handlebars-2.0.0.js create mode 100644 reference/ucp/3.1/api/lib/highlight.7.3.pack.js create mode 100644 reference/ucp/3.1/api/lib/jquery-1.8.0.min.js create mode 100644 reference/ucp/3.1/api/lib/jquery.ba-bbq.min.js create mode 100644 reference/ucp/3.1/api/lib/jquery.slideto.min.js create mode 100644 reference/ucp/3.1/api/lib/jquery.wiggle.min.js create mode 100644 reference/ucp/3.1/api/lib/marked.js create mode 100644 reference/ucp/3.1/api/lib/swagger-oauth.js create mode 100644 reference/ucp/3.1/api/lib/underscore-min.js create mode 100644 reference/ucp/3.1/api/lib/underscore-min.map create mode 100644 reference/ucp/3.1/api/main.js create mode 100644 reference/ucp/3.1/api/o2c.html create mode 100644 reference/ucp/3.1/api/swagger-fix.diff create mode 100644 reference/ucp/3.1/api/swagger-ui.js create mode 100644 reference/ucp/3.1/api/swagger-ui.js.original create mode 100644 reference/ucp/3.1/api/swagger-ui.min.js create mode 100644 reference/ucp/3.1/api/swagger-ui.min.js.original create mode 100644 reference/ucp/3.1/cli/backup.md create mode 100644 reference/ucp/3.1/cli/dump-certs.md create mode 100644 reference/ucp/3.1/cli/example-config.md create mode 100644 reference/ucp/3.1/cli/id.md create mode 100644 reference/ucp/3.1/cli/images.md create mode 100644 reference/ucp/3.1/cli/index.md create mode 100644 reference/ucp/3.1/cli/install.md create mode 100644 reference/ucp/3.1/cli/restart.md create mode 100644 reference/ucp/3.1/cli/restore.md create mode 100644 reference/ucp/3.1/cli/stop.md create mode 100644 reference/ucp/3.1/cli/support.md create mode 100644 reference/ucp/3.1/cli/uninstall-ucp.md create mode 100644 reference/ucp/3.1/cli/upgrade.md diff --git a/ee/ucp/kubernetes/install-cni-plugin.md b/ee/ucp/kubernetes/install-cni-plugin.md index 988f0e16be..c7ad2d6198 100644 --- a/ee/ucp/kubernetes/install-cni-plugin.md +++ b/ee/ucp/kubernetes/install-cni-plugin.md @@ -15,7 +15,7 @@ UCP supports third-party Container Networking Interface (CNI) plugins. By defaul installs the built-in [Calico](https://github.com/projectcalico/cni-plugin) plugin, but you can override the default and install a Docker certified plugin. -***NOTE:*** The `--cni-installer-url` option is deprecated as of the EE 2.1 release. It is replaced by the `--unmanaged-cni` option. +***NOTE:*** The `--cni-installer-url` option is deprecated as of UCP 3.1. It is replaced by the `--unmanaged-cni` option. # Install UCP with a custom CNI plugin diff --git a/reference/ucp/3.1/api/css/print.css b/reference/ucp/3.1/api/css/print.css new file mode 100644 index 0000000000..cd3aa8b6a4 --- /dev/null +++ b/reference/ucp/3.1/api/css/print.css @@ -0,0 +1,1172 @@ +/* Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org> */ +.swagger-section pre code { + display: block; + padding: 0.5em; + background: #F0F0F0; +} +.swagger-section pre code, +.swagger-section pre .subst, +.swagger-section pre .tag .title, +.swagger-section pre .lisp .title, +.swagger-section pre .clojure .built_in, +.swagger-section pre .nginx .title { + color: black; +} +.swagger-section pre .string, +.swagger-section pre .title, +.swagger-section pre .constant, +.swagger-section pre .parent, +.swagger-section pre .tag .value, +.swagger-section pre .rules .value, +.swagger-section pre .rules .value .number, +.swagger-section pre .preprocessor, +.swagger-section pre .ruby .symbol, +.swagger-section pre .ruby .symbol .string, +.swagger-section pre .aggregate, +.swagger-section pre .template_tag, +.swagger-section pre .django .variable, +.swagger-section pre .smalltalk .class, +.swagger-section pre .addition, +.swagger-section pre .flow, +.swagger-section pre .stream, +.swagger-section pre .bash .variable, +.swagger-section pre .apache .tag, +.swagger-section pre .apache .cbracket, +.swagger-section pre .tex .command, +.swagger-section pre .tex .special, +.swagger-section pre .erlang_repl .function_or_atom, +.swagger-section pre .markdown .header { + color: #800; +} +.swagger-section pre .comment, +.swagger-section pre .annotation, +.swagger-section pre .template_comment, +.swagger-section pre .diff .header, +.swagger-section pre .chunk, +.swagger-section pre .markdown .blockquote { + color: #888; +} +.swagger-section pre .number, +.swagger-section pre .date, +.swagger-section pre .regexp, +.swagger-section pre .literal, +.swagger-section pre .smalltalk .symbol, +.swagger-section pre .smalltalk .char, +.swagger-section pre .go .constant, +.swagger-section pre .change, +.swagger-section pre .markdown .bullet, +.swagger-section pre .markdown .link_url { + color: #080; +} +.swagger-section pre .label, +.swagger-section pre .javadoc, +.swagger-section pre .ruby .string, +.swagger-section pre .decorator, +.swagger-section pre .filter .argument, +.swagger-section pre .localvars, +.swagger-section pre .array, +.swagger-section pre .attr_selector, +.swagger-section pre .important, +.swagger-section pre .pseudo, +.swagger-section pre .pi, +.swagger-section pre .doctype, +.swagger-section pre .deletion, +.swagger-section pre .envvar, +.swagger-section pre .shebang, +.swagger-section pre .apache .sqbracket, +.swagger-section pre .nginx .built_in, +.swagger-section pre .tex .formula, +.swagger-section pre .erlang_repl .reserved, +.swagger-section pre .prompt, +.swagger-section pre .markdown .link_label, +.swagger-section pre .vhdl .attribute, +.swagger-section pre .clojure .attribute, +.swagger-section pre .coffeescript .property { + color: #8888ff; +} +.swagger-section pre .keyword, +.swagger-section pre .id, +.swagger-section pre .phpdoc, +.swagger-section pre .title, +.swagger-section pre .built_in, +.swagger-section pre .aggregate, +.swagger-section pre .css .tag, +.swagger-section pre .javadoctag, +.swagger-section pre .phpdoc, +.swagger-section pre .yardoctag, +.swagger-section pre .smalltalk .class, +.swagger-section pre .winutils, +.swagger-section pre .bash .variable, +.swagger-section pre .apache .tag, +.swagger-section pre .go .typename, +.swagger-section pre .tex .command, +.swagger-section pre .markdown .strong, +.swagger-section pre .request, +.swagger-section pre .status { + font-weight: bold; +} +.swagger-section pre .markdown .emphasis { + font-style: italic; +} +.swagger-section pre .nginx .built_in { + font-weight: normal; +} +.swagger-section pre .coffeescript .javascript, +.swagger-section pre .javascript .xml, +.swagger-section pre .tex .formula, +.swagger-section pre .xml .javascript, +.swagger-section pre .xml .vbscript, +.swagger-section pre .xml .css, +.swagger-section pre .xml .cdata { + opacity: 0.5; +} +.swagger-section .swagger-ui-wrap { + line-height: 1; + font-family: "Droid Sans", sans-serif; + max-width: 960px; + margin-left: auto; + margin-right: auto; +} +.swagger-section .swagger-ui-wrap b, +.swagger-section .swagger-ui-wrap strong { + font-family: "Droid Sans", sans-serif; + font-weight: bold; +} +.swagger-section .swagger-ui-wrap q, +.swagger-section .swagger-ui-wrap blockquote { + quotes: none; +} +.swagger-section .swagger-ui-wrap p { + line-height: 1.4em; + padding: 0 0 10px; + color: #333333; +} +.swagger-section .swagger-ui-wrap q:before, +.swagger-section .swagger-ui-wrap q:after, +.swagger-section .swagger-ui-wrap blockquote:before, +.swagger-section .swagger-ui-wrap blockquote:after { + content: none; +} +.swagger-section .swagger-ui-wrap .heading_with_menu h1, +.swagger-section .swagger-ui-wrap .heading_with_menu h2, +.swagger-section .swagger-ui-wrap .heading_with_menu h3, +.swagger-section .swagger-ui-wrap .heading_with_menu h4, +.swagger-section .swagger-ui-wrap .heading_with_menu h5, +.swagger-section .swagger-ui-wrap .heading_with_menu h6 { + display: block; + clear: none; + float: left; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + width: 60%; +} +.swagger-section .swagger-ui-wrap table { + border-collapse: collapse; + border-spacing: 0; +} +.swagger-section .swagger-ui-wrap table thead tr th { + padding: 5px; + font-size: 0.9em; + color: #666666; + border-bottom: 1px solid #999999; +} +.swagger-section .swagger-ui-wrap table tbody tr:last-child td { + border-bottom: none; +} +.swagger-section .swagger-ui-wrap table tbody tr.offset { + background-color: #f0f0f0; +} +.swagger-section .swagger-ui-wrap table tbody tr td { + padding: 6px; + font-size: 0.9em; + border-bottom: 1px solid #cccccc; + vertical-align: top; + line-height: 1.3em; +} +.swagger-section .swagger-ui-wrap ol { + margin: 0px 0 10px; + padding: 0 0 0 18px; + list-style-type: decimal; +} +.swagger-section .swagger-ui-wrap ol li { + padding: 5px 0px; + font-size: 0.9em; + color: #333333; +} +.swagger-section .swagger-ui-wrap ol, +.swagger-section .swagger-ui-wrap ul { + list-style: none; +} +.swagger-section .swagger-ui-wrap h1 a, +.swagger-section .swagger-ui-wrap h2 a, +.swagger-section .swagger-ui-wrap h3 a, +.swagger-section .swagger-ui-wrap h4 a, +.swagger-section .swagger-ui-wrap h5 a, +.swagger-section .swagger-ui-wrap h6 a { + text-decoration: none; +} +.swagger-section .swagger-ui-wrap h1 a:hover, +.swagger-section .swagger-ui-wrap h2 a:hover, +.swagger-section .swagger-ui-wrap h3 a:hover, +.swagger-section .swagger-ui-wrap h4 a:hover, +.swagger-section .swagger-ui-wrap h5 a:hover, +.swagger-section .swagger-ui-wrap h6 a:hover { + text-decoration: underline; +} +.swagger-section .swagger-ui-wrap h1 span.divider, +.swagger-section .swagger-ui-wrap h2 span.divider, +.swagger-section .swagger-ui-wrap h3 span.divider, +.swagger-section .swagger-ui-wrap h4 span.divider, +.swagger-section .swagger-ui-wrap h5 span.divider, +.swagger-section .swagger-ui-wrap h6 span.divider { + color: #aaaaaa; +} +.swagger-section .swagger-ui-wrap a { + color: #547f00; +} +.swagger-section .swagger-ui-wrap a img { + border: none; +} +.swagger-section .swagger-ui-wrap article, +.swagger-section .swagger-ui-wrap aside, +.swagger-section .swagger-ui-wrap details, +.swagger-section .swagger-ui-wrap figcaption, +.swagger-section .swagger-ui-wrap figure, +.swagger-section .swagger-ui-wrap footer, +.swagger-section .swagger-ui-wrap header, +.swagger-section .swagger-ui-wrap hgroup, +.swagger-section .swagger-ui-wrap menu, +.swagger-section .swagger-ui-wrap nav, +.swagger-section .swagger-ui-wrap section, +.swagger-section .swagger-ui-wrap summary { + display: block; +} +.swagger-section .swagger-ui-wrap pre { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + background-color: #fcf6db; + border: 1px solid #e5e0c6; + padding: 10px; +} +.swagger-section .swagger-ui-wrap pre code { + line-height: 1.6em; + background: none; +} +.swagger-section .swagger-ui-wrap .content > .content-type > div > label { + clear: both; + display: block; + color: #0F6AB4; + font-size: 1.1em; + margin: 0; + padding: 15px 0 5px; +} +.swagger-section .swagger-ui-wrap .content pre { + font-size: 12px; + margin-top: 5px; + padding: 5px; +} +.swagger-section .swagger-ui-wrap .icon-btn { + cursor: pointer; +} +.swagger-section .swagger-ui-wrap .info_title { + padding-bottom: 10px; + font-weight: bold; + font-size: 25px; +} +.swagger-section .swagger-ui-wrap .footer { + margin-top: 20px; +} +.swagger-section .swagger-ui-wrap p.big, +.swagger-section .swagger-ui-wrap div.big p { + font-size: 1em; + margin-bottom: 10px; +} +.swagger-section .swagger-ui-wrap form.fullwidth ol li.string input, +.swagger-section .swagger-ui-wrap form.fullwidth ol li.url input, +.swagger-section .swagger-ui-wrap form.fullwidth ol li.text textarea, +.swagger-section .swagger-ui-wrap form.fullwidth ol li.numeric input { + width: 500px !important; +} +.swagger-section .swagger-ui-wrap .info_license { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .info_tos { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .message-fail { + color: #cc0000; +} +.swagger-section .swagger-ui-wrap .info_url { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .info_email { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .info_name { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .info_description { + padding-bottom: 10px; + font-size: 15px; +} +.swagger-section .swagger-ui-wrap .markdown ol li, +.swagger-section .swagger-ui-wrap .markdown ul li { + padding: 3px 0px; + line-height: 1.4em; + color: #333333; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input, +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input, +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input { + display: block; + padding: 4px; + width: auto; + clear: both; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input.title, +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input.title, +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input.title { + font-size: 1.3em; +} +.swagger-section .swagger-ui-wrap table.fullwidth { + width: 100%; +} +.swagger-section .swagger-ui-wrap .model-signature { + font-family: "Droid Sans", sans-serif; + font-size: 1em; + line-height: 1.5em; +} +.swagger-section .swagger-ui-wrap .model-signature .signature-nav a { + text-decoration: none; + color: #AAA; +} +.swagger-section .swagger-ui-wrap .model-signature .signature-nav a:hover { + text-decoration: underline; + color: black; +} +.swagger-section .swagger-ui-wrap .model-signature .signature-nav .selected { + color: black; + text-decoration: none; +} +.swagger-section .swagger-ui-wrap .model-signature .propType { + color: #5555aa; +} +.swagger-section .swagger-ui-wrap .model-signature pre:hover { + background-color: #ffffdd; +} +.swagger-section .swagger-ui-wrap .model-signature pre { + font-size: .85em; + line-height: 1.2em; + overflow: auto; + max-height: 200px; + cursor: pointer; +} +.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav { + display: block; + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li:last-child { + padding-right: 0; + border-right: none; +} +.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li { + float: left; + margin: 0 5px 5px 0; + padding: 2px 5px 2px 0; + border-right: 1px solid #ddd; +} +.swagger-section .swagger-ui-wrap .model-signature .propOpt { + color: #555; +} +.swagger-section .swagger-ui-wrap .model-signature .snippet small { + font-size: 0.75em; +} +.swagger-section .swagger-ui-wrap .model-signature .propOptKey { + font-style: italic; +} +.swagger-section .swagger-ui-wrap .model-signature .description .strong { + font-weight: bold; + color: #000; + font-size: .9em; +} +.swagger-section .swagger-ui-wrap .model-signature .description div { + font-size: 0.9em; + line-height: 1.5em; + margin-left: 1em; +} +.swagger-section .swagger-ui-wrap .model-signature .description .stronger { + font-weight: bold; + color: #000; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper { + border-spacing: 0; + position: absolute; + background-color: #ffffff; + border: 1px solid #bbbbbb; + display: none; + font-size: 11px; + max-width: 400px; + line-height: 30px; + color: black; + padding: 5px; + margin-left: 10px; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper th { + text-align: center; + background-color: #eeeeee; + border: 1px solid #bbbbbb; + font-size: 11px; + color: #666666; + font-weight: bold; + padding: 5px; + line-height: 15px; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper .optionName { + font-weight: bold; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown > p:first-child, +.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown > p:last-child { + display: inline; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown > p:not(:first-child):before { + display: block; + content: ''; +} +.swagger-section .swagger-ui-wrap .model-signature .description span:last-of-type.propDesc.markdown > p:only-child { + margin-right: -3px; +} +.swagger-section .swagger-ui-wrap .model-signature .propName { + font-weight: bold; +} +.swagger-section .swagger-ui-wrap .model-signature .signature-container { + clear: both; +} +.swagger-section .swagger-ui-wrap .body-textarea { + width: 300px; + height: 100px; + border: 1px solid #aaa; +} +.swagger-section .swagger-ui-wrap .markdown p code, +.swagger-section .swagger-ui-wrap .markdown li code { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + background-color: #f0f0f0; + color: black; + padding: 1px 3px; +} +.swagger-section .swagger-ui-wrap .required { + font-weight: bold; +} +.swagger-section .swagger-ui-wrap input.parameter { + width: 300px; + border: 1px solid #aaa; +} +.swagger-section .swagger-ui-wrap h1 { + color: black; + font-size: 1.5em; + line-height: 1.3em; + padding: 10px 0 10px 0; + font-family: "Droid Sans", sans-serif; + font-weight: bold; +} +.swagger-section .swagger-ui-wrap .heading_with_menu { + float: none; + clear: both; + overflow: hidden; + display: block; +} +.swagger-section .swagger-ui-wrap .heading_with_menu ul { + display: block; + clear: none; + float: right; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + margin-top: 10px; +} +.swagger-section .swagger-ui-wrap h2 { + color: black; + font-size: 1.3em; + padding: 10px 0 10px 0; +} +.swagger-section .swagger-ui-wrap h2 a { + color: black; +} +.swagger-section .swagger-ui-wrap h2 span.sub { + font-size: 0.7em; + color: #999999; + font-style: italic; +} +.swagger-section .swagger-ui-wrap h2 span.sub a { + color: #777777; +} +.swagger-section .swagger-ui-wrap span.weak { + color: #666666; +} +.swagger-section .swagger-ui-wrap .message-success { + color: #89BF04; +} +.swagger-section .swagger-ui-wrap caption, +.swagger-section .swagger-ui-wrap th, +.swagger-section .swagger-ui-wrap td { + text-align: left; + font-weight: normal; + vertical-align: middle; +} +.swagger-section .swagger-ui-wrap .code { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.text textarea { + font-family: "Droid Sans", sans-serif; + height: 250px; + padding: 4px; + display: block; + clear: both; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.select select { + display: block; + clear: both; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean { + float: none; + clear: both; + overflow: hidden; + display: block; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean label { + display: block; + float: left; + clear: none; + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean input { + display: block; + float: left; + clear: none; + margin: 0 5px 0 0; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.required label { + color: black; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label { + display: block; + clear: both; + width: auto; + padding: 0 0 3px; + color: #666666; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label abbr { + padding-left: 3px; + color: #888888; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li p.inline-hints { + margin-left: 0; + font-style: italic; + font-size: 0.9em; + margin: 0; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.buttons { + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap span.blank, +.swagger-section .swagger-ui-wrap span.empty { + color: #888888; + font-style: italic; +} +.swagger-section .swagger-ui-wrap .markdown h3 { + color: #547f00; +} +.swagger-section .swagger-ui-wrap .markdown h4 { + color: #666666; +} +.swagger-section .swagger-ui-wrap .markdown pre { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + background-color: #fcf6db; + border: 1px solid #e5e0c6; + padding: 10px; + margin: 0 0 10px 0; +} +.swagger-section .swagger-ui-wrap .markdown pre code { + line-height: 1.6em; +} +.swagger-section .swagger-ui-wrap div.gist { + margin: 20px 0 25px 0 !important; +} +.swagger-section .swagger-ui-wrap ul#resources { + font-family: "Droid Sans", sans-serif; + font-size: 0.9em; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource { + border-bottom: 1px solid #dddddd; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading h2 a, +.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading h2 a { + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading ul.options li a, +.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading ul.options li a { + color: #555555; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource:last-child { + border-bottom: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading { + border: 1px solid transparent; + float: none; + clear: both; + overflow: hidden; + display: block; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options { + overflow: hidden; + padding: 0; + display: block; + clear: none; + float: right; + margin: 14px 10px 0 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li { + float: left; + clear: none; + margin: 0; + padding: 2px 10px; + border-right: 1px solid #dddddd; + color: #666666; + font-size: 0.9em; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a { + color: #aaaaaa; + text-decoration: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover { + text-decoration: underline; + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:active, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a.active { + text-decoration: underline; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:first-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.first { + padding-left: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.last { + padding-right: 0; + border-right: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options:first-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options.first { + padding-left: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 { + color: #999999; + padding-left: 0; + display: block; + clear: none; + float: left; + font-family: "Droid Sans", sans-serif; + font-weight: bold; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a { + color: #999999; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a:hover { + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation { + float: none; + clear: both; + overflow: hidden; + display: block; + margin: 0 0 10px; + padding: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading { + float: none; + clear: both; + overflow: hidden; + display: block; + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 { + display: block; + clear: none; + float: left; + width: auto; + margin: 0; + padding: 0; + line-height: 1.1em; + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path { + padding-left: 10px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a { + color: black; + text-decoration: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a:hover { + text-decoration: underline; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.http_method a { + text-transform: uppercase; + text-decoration: none; + color: white; + display: inline-block; + width: 50px; + font-size: 0.7em; + text-align: center; + padding: 7px 0 4px; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + -o-border-radius: 2px; + -ms-border-radius: 2px; + -khtml-border-radius: 2px; + border-radius: 2px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span { + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options { + overflow: hidden; + padding: 0; + display: block; + clear: none; + float: right; + margin: 6px 10px 0 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li { + float: left; + clear: none; + margin: 0; + padding: 2px 10px; + font-size: 0.9em; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li a { + text-decoration: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li.access { + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content { + border-top: none; + padding: 10px; + -moz-border-radius-bottomleft: 6px; + -webkit-border-bottom-left-radius: 6px; + -o-border-bottom-left-radius: 6px; + -ms-border-bottom-left-radius: 6px; + -khtml-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -moz-border-radius-bottomright: 6px; + -webkit-border-bottom-right-radius: 6px; + -o-border-bottom-right-radius: 6px; + -ms-border-bottom-right-radius: 6px; + -khtml-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + margin: 0 0 20px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content h4 { + font-size: 1.1em; + margin: 0; + padding: 15px 0 5px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header { + float: none; + clear: both; + overflow: hidden; + display: block; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header a { + padding: 4px 0 0 10px; + display: inline-block; + font-size: 0.9em; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header input.submit { + display: block; + clear: none; + float: left; + padding: 6px 8px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header span.response_throbber { + background-image: url('../images/throbber.gif'); + width: 128px; + height: 16px; + display: block; + clear: none; + float: right; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content form input[type='text'].error { + outline: 2px solid black; + outline-color: #cc0000; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.response div.block pre { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + padding: 10px; + font-size: 0.9em; + max-height: 400px; + overflow-y: auto; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading { + background-color: #f9f2e9; + border: 1px solid #f0e0ca; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading h3 span.http_method a { + background-color: #c5862b; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #f0e0ca; + color: #c5862b; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li a { + color: #c5862b; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content { + background-color: #faf5ee; + border: 1px solid #f0e0ca; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content h4 { + color: #c5862b; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content div.sandbox_header a { + color: #dcb67f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading { + background-color: #fcffcd; + border: 1px solid black; + border-color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading h3 span.http_method a { + text-transform: uppercase; + background-color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #ffd20f; + color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li a { + color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content { + background-color: #fcffcd; + border: 1px solid black; + border-color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content h4 { + color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content div.sandbox_header a { + color: #6fc992; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading { + background-color: #f5e8e8; + border: 1px solid #e8c6c7; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading h3 span.http_method a { + text-transform: uppercase; + background-color: #a41e22; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #e8c6c7; + color: #a41e22; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li a { + color: #a41e22; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content { + background-color: #f7eded; + border: 1px solid #e8c6c7; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content h4 { + color: #a41e22; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content div.sandbox_header a { + color: #c8787a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading { + background-color: #e7f6ec; + border: 1px solid #c3e8d1; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading h3 span.http_method a { + background-color: #10a54a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #c3e8d1; + color: #10a54a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li a { + color: #10a54a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content { + background-color: #ebf7f0; + border: 1px solid #c3e8d1; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content h4 { + color: #10a54a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content div.sandbox_header a { + color: #6fc992; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading { + background-color: #FCE9E3; + border: 1px solid #F5D5C3; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading h3 span.http_method a { + background-color: #D38042; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #f0cecb; + color: #D38042; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li a { + color: #D38042; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content { + background-color: #faf0ef; + border: 1px solid #f0cecb; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content h4 { + color: #D38042; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content div.sandbox_header a { + color: #dcb67f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading { + background-color: #e7f0f7; + border: 1px solid #c3d9ec; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading h3 span.http_method a { + background-color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #c3d9ec; + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li a { + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content { + background-color: #ebf3f9; + border: 1px solid #c3d9ec; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content h4 { + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content div.sandbox_header a { + color: #6fa5d2; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading { + background-color: #e7f0f7; + border: 1px solid #c3d9ec; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading h3 span.http_method a { + background-color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #c3d9ec; + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li a { + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content { + background-color: #ebf3f9; + border: 1px solid #c3d9ec; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content h4 { + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content div.sandbox_header a { + color: #6fa5d2; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content { + border-top: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li.last { + padding-right: 0; + border-right: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:hover, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:active, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a.active { + text-decoration: underline; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li:first-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li.first { + padding-left: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations:first-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations.first { + padding-left: 0; +} +.swagger-section .swagger-ui-wrap p#colophon { + margin: 0 15px 40px 15px; + padding: 10px 0; + font-size: 0.8em; + border-top: 1px solid #dddddd; + font-family: "Droid Sans", sans-serif; + color: #999999; + font-style: italic; +} +.swagger-section .swagger-ui-wrap p#colophon a { + text-decoration: none; + color: #547f00; +} +.swagger-section .swagger-ui-wrap h3 { + color: black; + font-size: 1.1em; + padding: 10px 0 10px 0; +} +.swagger-section .swagger-ui-wrap .markdown ol, +.swagger-section .swagger-ui-wrap .markdown ul { + font-family: "Droid Sans", sans-serif; + margin: 5px 0 10px; + padding: 0 0 0 18px; + list-style-type: disc; +} +.swagger-section .swagger-ui-wrap form.form_box { + background-color: #ebf3f9; + border: 1px solid #c3d9ec; + padding: 10px; +} +.swagger-section .swagger-ui-wrap form.form_box label { + color: #0f6ab4 !important; +} +.swagger-section .swagger-ui-wrap form.form_box input[type=submit] { + display: block; + padding: 10px; +} +.swagger-section .swagger-ui-wrap form.form_box p.weak { + font-size: 0.8em; +} +.swagger-section .swagger-ui-wrap form.form_box p { + font-size: 0.9em; + padding: 0 0 15px; + color: #7e7b6d; +} +.swagger-section .swagger-ui-wrap form.form_box p a { + color: #646257; +} +.swagger-section .swagger-ui-wrap form.form_box p strong { + color: black; +} +.swagger-section .swagger-ui-wrap .operation-status td.markdown > p:last-child { + padding-bottom: 0; +} +.swagger-section .title { + font-style: bold; +} +.swagger-section .secondary_form { + display: none; +} +.swagger-section .main_image { + display: block; + margin-left: auto; + margin-right: auto; +} +.swagger-section .oauth_body { + margin-left: 100px; + margin-right: 100px; +} +.swagger-section .oauth_submit { + text-align: center; +} +.swagger-section .api-popup-dialog { + z-index: 10000; + position: absolute; + width: 500px; + background: #FFF; + padding: 20px; + border: 1px solid #ccc; + border-radius: 5px; + display: none; + font-size: 13px; + color: #777; +} +.swagger-section .api-popup-dialog .api-popup-title { + font-size: 24px; + padding: 10px 0; +} +.swagger-section .api-popup-dialog .api-popup-title { + font-size: 24px; + padding: 10px 0; +} +.swagger-section .api-popup-dialog p.error-msg { + padding-left: 5px; + padding-bottom: 5px; +} +.swagger-section .api-popup-dialog button.api-popup-authbtn { + height: 30px; +} +.swagger-section .api-popup-dialog button.api-popup-cancel { + height: 30px; +} +.swagger-section .api-popup-scopes { + padding: 10px 20px; +} +.swagger-section .api-popup-scopes li { + padding: 5px 0; + line-height: 20px; +} +.swagger-section .api-popup-scopes .api-scope-desc { + padding-left: 20px; + font-style: italic; +} +.swagger-section .api-popup-scopes li input { + position: relative; + top: 2px; +} +.swagger-section .api-popup-actions { + padding-top: 10px; +} +#header { + display: none; +} +.swagger-section .swagger-ui-wrap .model-signature pre { + max-height: none; +} +.swagger-section .swagger-ui-wrap .body-textarea { + width: 100px; +} +.swagger-section .swagger-ui-wrap input.parameter { + width: 100px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options { + display: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints { + display: block !important; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content { + display: block !important; +} diff --git a/reference/ucp/3.1/api/css/reset.css b/reference/ucp/3.1/api/css/reset.css new file mode 100644 index 0000000000..b2b078943c --- /dev/null +++ b/reference/ucp/3.1/api/css/reset.css @@ -0,0 +1,125 @@ +/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 */ +html, +body, +div, +span, +applet, +object, +iframe, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +big, +cite, +code, +del, +dfn, +em, +img, +ins, +kbd, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +b, +u, +i, +center, +dl, +dt, +dd, +ol, +ul, +li, +fieldset, +form, +label, +legend, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td, +article, +aside, +canvas, +details, +embed, +figure, +figcaption, +footer, +header, +hgroup, +menu, +nav, +output, +ruby, +section, +summary, +time, +mark, +audio, +video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section { + display: block; +} +body { + line-height: 1; +} +ol, +ul { + list-style: none; +} +blockquote, +q { + quotes: none; +} +blockquote:before, +blockquote:after, +q:before, +q:after { + content: ''; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/reference/ucp/3.1/api/css/screen.css b/reference/ucp/3.1/api/css/screen.css new file mode 100644 index 0000000000..436cc28edd --- /dev/null +++ b/reference/ucp/3.1/api/css/screen.css @@ -0,0 +1,1279 @@ +/* Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org> */ +.swagger-section pre code { + display: block; + padding: 0.5em; + background: #F0F0F0; +} +.swagger-section pre code, +.swagger-section pre .subst, +.swagger-section pre .tag .title, +.swagger-section pre .lisp .title, +.swagger-section pre .clojure .built_in, +.swagger-section pre .nginx .title { + color: black; +} +.swagger-section pre .string, +.swagger-section pre .title, +.swagger-section pre .constant, +.swagger-section pre .parent, +.swagger-section pre .tag .value, +.swagger-section pre .rules .value, +.swagger-section pre .rules .value .number, +.swagger-section pre .preprocessor, +.swagger-section pre .ruby .symbol, +.swagger-section pre .ruby .symbol .string, +.swagger-section pre .aggregate, +.swagger-section pre .template_tag, +.swagger-section pre .django .variable, +.swagger-section pre .smalltalk .class, +.swagger-section pre .addition, +.swagger-section pre .flow, +.swagger-section pre .stream, +.swagger-section pre .bash .variable, +.swagger-section pre .apache .tag, +.swagger-section pre .apache .cbracket, +.swagger-section pre .tex .command, +.swagger-section pre .tex .special, +.swagger-section pre .erlang_repl .function_or_atom, +.swagger-section pre .markdown .header { + color: #800; +} +.swagger-section pre .comment, +.swagger-section pre .annotation, +.swagger-section pre .template_comment, +.swagger-section pre .diff .header, +.swagger-section pre .chunk, +.swagger-section pre .markdown .blockquote { + color: #888; +} +.swagger-section pre .number, +.swagger-section pre .date, +.swagger-section pre .regexp, +.swagger-section pre .literal, +.swagger-section pre .smalltalk .symbol, +.swagger-section pre .smalltalk .char, +.swagger-section pre .go .constant, +.swagger-section pre .change, +.swagger-section pre .markdown .bullet, +.swagger-section pre .markdown .link_url { + color: #080; +} +.swagger-section pre .label, +.swagger-section pre .javadoc, +.swagger-section pre .ruby .string, +.swagger-section pre .decorator, +.swagger-section pre .filter .argument, +.swagger-section pre .localvars, +.swagger-section pre .array, +.swagger-section pre .attr_selector, +.swagger-section pre .important, +.swagger-section pre .pseudo, +.swagger-section pre .pi, +.swagger-section pre .doctype, +.swagger-section pre .deletion, +.swagger-section pre .envvar, +.swagger-section pre .shebang, +.swagger-section pre .apache .sqbracket, +.swagger-section pre .nginx .built_in, +.swagger-section pre .tex .formula, +.swagger-section pre .erlang_repl .reserved, +.swagger-section pre .prompt, +.swagger-section pre .markdown .link_label, +.swagger-section pre .vhdl .attribute, +.swagger-section pre .clojure .attribute, +.swagger-section pre .coffeescript .property { + color: #8888ff; +} +.swagger-section pre .keyword, +.swagger-section pre .id, +.swagger-section pre .phpdoc, +.swagger-section pre .title, +.swagger-section pre .built_in, +.swagger-section pre .aggregate, +.swagger-section pre .css .tag, +.swagger-section pre .javadoctag, +.swagger-section pre .phpdoc, +.swagger-section pre .yardoctag, +.swagger-section pre .smalltalk .class, +.swagger-section pre .winutils, +.swagger-section pre .bash .variable, +.swagger-section pre .apache .tag, +.swagger-section pre .go .typename, +.swagger-section pre .tex .command, +.swagger-section pre .markdown .strong, +.swagger-section pre .request, +.swagger-section pre .status { + font-weight: bold; +} +.swagger-section pre .markdown .emphasis { + font-style: italic; +} +.swagger-section pre .nginx .built_in { + font-weight: normal; +} +.swagger-section pre .coffeescript .javascript, +.swagger-section pre .javascript .xml, +.swagger-section pre .tex .formula, +.swagger-section pre .xml .javascript, +.swagger-section pre .xml .vbscript, +.swagger-section pre .xml .css, +.swagger-section pre .xml .cdata { + opacity: 0.5; +} +.swagger-section .swagger-ui-wrap { + line-height: 1; + font-family: "Droid Sans", sans-serif; + max-width: 960px; + margin-left: auto; + margin-right: auto; +} +.swagger-section .swagger-ui-wrap b, +.swagger-section .swagger-ui-wrap strong { + font-family: "Droid Sans", sans-serif; + font-weight: bold; +} +.swagger-section .swagger-ui-wrap q, +.swagger-section .swagger-ui-wrap blockquote { + quotes: none; +} +.swagger-section .swagger-ui-wrap p { + line-height: 1.4em; + padding: 0 0 10px; + color: #333333; +} +.swagger-section .swagger-ui-wrap q:before, +.swagger-section .swagger-ui-wrap q:after, +.swagger-section .swagger-ui-wrap blockquote:before, +.swagger-section .swagger-ui-wrap blockquote:after { + content: none; +} +.swagger-section .swagger-ui-wrap .heading_with_menu h1, +.swagger-section .swagger-ui-wrap .heading_with_menu h2, +.swagger-section .swagger-ui-wrap .heading_with_menu h3, +.swagger-section .swagger-ui-wrap .heading_with_menu h4, +.swagger-section .swagger-ui-wrap .heading_with_menu h5, +.swagger-section .swagger-ui-wrap .heading_with_menu h6 { + display: block; + clear: none; + float: left; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + width: 60%; +} +.swagger-section .swagger-ui-wrap table { + border-collapse: collapse; + border-spacing: 0; +} +.swagger-section .swagger-ui-wrap table thead tr th { + padding: 5px; + font-size: 0.9em; + color: #666666; + border-bottom: 1px solid #999999; +} +.swagger-section .swagger-ui-wrap table tbody tr:last-child td { + border-bottom: none; +} +.swagger-section .swagger-ui-wrap table tbody tr.offset { + background-color: #f0f0f0; +} +.swagger-section .swagger-ui-wrap table tbody tr td { + padding: 6px; + font-size: 0.9em; + border-bottom: 1px solid #cccccc; + vertical-align: top; + line-height: 1.3em; +} +.swagger-section .swagger-ui-wrap ol { + margin: 0px 0 10px; + padding: 0 0 0 18px; + list-style-type: decimal; +} +.swagger-section .swagger-ui-wrap ol li { + padding: 5px 0px; + font-size: 0.9em; + color: #333333; +} +.swagger-section .swagger-ui-wrap ol, +.swagger-section .swagger-ui-wrap ul { + list-style: none; +} +.swagger-section .swagger-ui-wrap h1 a, +.swagger-section .swagger-ui-wrap h2 a, +.swagger-section .swagger-ui-wrap h3 a, +.swagger-section .swagger-ui-wrap h4 a, +.swagger-section .swagger-ui-wrap h5 a, +.swagger-section .swagger-ui-wrap h6 a { + text-decoration: none; +} +.swagger-section .swagger-ui-wrap h1 a:hover, +.swagger-section .swagger-ui-wrap h2 a:hover, +.swagger-section .swagger-ui-wrap h3 a:hover, +.swagger-section .swagger-ui-wrap h4 a:hover, +.swagger-section .swagger-ui-wrap h5 a:hover, +.swagger-section .swagger-ui-wrap h6 a:hover { + text-decoration: underline; +} +.swagger-section .swagger-ui-wrap h1 span.divider, +.swagger-section .swagger-ui-wrap h2 span.divider, +.swagger-section .swagger-ui-wrap h3 span.divider, +.swagger-section .swagger-ui-wrap h4 span.divider, +.swagger-section .swagger-ui-wrap h5 span.divider, +.swagger-section .swagger-ui-wrap h6 span.divider { + color: #aaaaaa; +} +.swagger-section .swagger-ui-wrap a { + color: #547f00; +} +.swagger-section .swagger-ui-wrap a img { + border: none; +} +.swagger-section .swagger-ui-wrap article, +.swagger-section .swagger-ui-wrap aside, +.swagger-section .swagger-ui-wrap details, +.swagger-section .swagger-ui-wrap figcaption, +.swagger-section .swagger-ui-wrap figure, +.swagger-section .swagger-ui-wrap footer, +.swagger-section .swagger-ui-wrap header, +.swagger-section .swagger-ui-wrap hgroup, +.swagger-section .swagger-ui-wrap menu, +.swagger-section .swagger-ui-wrap nav, +.swagger-section .swagger-ui-wrap section, +.swagger-section .swagger-ui-wrap summary { + display: block; +} +.swagger-section .swagger-ui-wrap pre { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + background-color: #fcf6db; + border: 1px solid #e5e0c6; + padding: 10px; +} +.swagger-section .swagger-ui-wrap pre code { + line-height: 1.6em; + background: none; +} +.swagger-section .swagger-ui-wrap .content > .content-type > div > label { + clear: both; + display: block; + color: #0F6AB4; + font-size: 1.1em; + margin: 0; + padding: 15px 0 5px; +} +.swagger-section .swagger-ui-wrap .content pre { + font-size: 12px; + margin-top: 5px; + padding: 5px; +} +.swagger-section .swagger-ui-wrap .icon-btn { + cursor: pointer; +} +.swagger-section .swagger-ui-wrap .info_title { + padding-bottom: 10px; + font-weight: bold; + font-size: 25px; +} +.swagger-section .swagger-ui-wrap .footer { + margin-top: 20px; +} +.swagger-section .swagger-ui-wrap p.big, +.swagger-section .swagger-ui-wrap div.big p { + font-size: 1em; + margin-bottom: 10px; +} +.swagger-section .swagger-ui-wrap form.fullwidth ol li.string input, +.swagger-section .swagger-ui-wrap form.fullwidth ol li.url input, +.swagger-section .swagger-ui-wrap form.fullwidth ol li.text textarea, +.swagger-section .swagger-ui-wrap form.fullwidth ol li.numeric input { + width: 500px !important; +} +.swagger-section .swagger-ui-wrap .info_license { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .info_tos { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .message-fail { + color: #cc0000; +} +.swagger-section .swagger-ui-wrap .info_url { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .info_email { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .info_name { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .info_description { + padding-bottom: 10px; + font-size: 15px; +} +.swagger-section .swagger-ui-wrap .markdown ol li, +.swagger-section .swagger-ui-wrap .markdown ul li { + padding: 3px 0px; + line-height: 1.4em; + color: #333333; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input, +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input, +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input { + display: block; + padding: 4px; + width: auto; + clear: both; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input.title, +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input.title, +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input.title { + font-size: 1.3em; +} +.swagger-section .swagger-ui-wrap table.fullwidth { + width: 100%; +} +.swagger-section .swagger-ui-wrap .model-signature { + font-family: "Droid Sans", sans-serif; + font-size: 1em; + line-height: 1.5em; +} +.swagger-section .swagger-ui-wrap .model-signature .signature-nav a { + text-decoration: none; + color: #AAA; +} +.swagger-section .swagger-ui-wrap .model-signature .signature-nav a:hover { + text-decoration: underline; + color: black; +} +.swagger-section .swagger-ui-wrap .model-signature .signature-nav .selected { + color: black; + text-decoration: none; +} +.swagger-section .swagger-ui-wrap .model-signature .propType { + color: #5555aa; +} +.swagger-section .swagger-ui-wrap .model-signature pre:hover { + background-color: #ffffdd; +} +.swagger-section .swagger-ui-wrap .model-signature pre { + font-size: .85em; + line-height: 1.2em; + overflow: auto; + max-height: 200px; + cursor: pointer; +} +.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav { + display: block; + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li:last-child { + padding-right: 0; + border-right: none; +} +.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li { + float: left; + margin: 0 5px 5px 0; + padding: 2px 5px 2px 0; + border-right: 1px solid #ddd; +} +.swagger-section .swagger-ui-wrap .model-signature .propOpt { + color: #555; +} +.swagger-section .swagger-ui-wrap .model-signature .snippet small { + font-size: 0.75em; +} +.swagger-section .swagger-ui-wrap .model-signature .propOptKey { + font-style: italic; +} +.swagger-section .swagger-ui-wrap .model-signature .description .strong { + font-weight: bold; + color: #000; + font-size: .9em; +} +.swagger-section .swagger-ui-wrap .model-signature .description div { + font-size: 0.9em; + line-height: 1.5em; + margin-left: 1em; +} +.swagger-section .swagger-ui-wrap .model-signature .description .stronger { + font-weight: bold; + color: #000; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper { + border-spacing: 0; + position: absolute; + background-color: #ffffff; + border: 1px solid #bbbbbb; + display: none; + font-size: 11px; + max-width: 400px; + line-height: 30px; + color: black; + padding: 5px; + margin-left: 10px; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper th { + text-align: center; + background-color: #eeeeee; + border: 1px solid #bbbbbb; + font-size: 11px; + color: #666666; + font-weight: bold; + padding: 5px; + line-height: 15px; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper .optionName { + font-weight: bold; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown > p:first-child, +.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown > p:last-child { + display: inline; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown > p:not(:first-child):before { + display: block; + content: ''; +} +.swagger-section .swagger-ui-wrap .model-signature .description span:last-of-type.propDesc.markdown > p:only-child { + margin-right: -3px; +} +.swagger-section .swagger-ui-wrap .model-signature .propName { + font-weight: bold; +} +.swagger-section .swagger-ui-wrap .model-signature .signature-container { + clear: both; +} +.swagger-section .swagger-ui-wrap .body-textarea { + width: 300px; + height: 100px; + border: 1px solid #aaa; +} +.swagger-section .swagger-ui-wrap .markdown p code, +.swagger-section .swagger-ui-wrap .markdown li code { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + background-color: #f0f0f0; + color: black; + padding: 1px 3px; +} +.swagger-section .swagger-ui-wrap .required { + font-weight: bold; +} +.swagger-section .swagger-ui-wrap input.parameter { + width: 300px; + border: 1px solid #aaa; +} +.swagger-section .swagger-ui-wrap h1 { + color: black; + font-size: 1.5em; + line-height: 1.3em; + padding: 10px 0 10px 0; + font-family: "Droid Sans", sans-serif; + font-weight: bold; +} +.swagger-section .swagger-ui-wrap .heading_with_menu { + float: none; + clear: both; + overflow: hidden; + display: block; +} +.swagger-section .swagger-ui-wrap .heading_with_menu ul { + display: block; + clear: none; + float: right; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + margin-top: 10px; +} +.swagger-section .swagger-ui-wrap h2 { + color: black; + font-size: 1.3em; + padding: 10px 0 10px 0; +} +.swagger-section .swagger-ui-wrap h2 a { + color: black; +} +.swagger-section .swagger-ui-wrap h2 span.sub { + font-size: 0.7em; + color: #999999; + font-style: italic; +} +.swagger-section .swagger-ui-wrap h2 span.sub a { + color: #777777; +} +.swagger-section .swagger-ui-wrap span.weak { + color: #666666; +} +.swagger-section .swagger-ui-wrap .message-success { + color: #89BF04; +} +.swagger-section .swagger-ui-wrap caption, +.swagger-section .swagger-ui-wrap th, +.swagger-section .swagger-ui-wrap td { + text-align: left; + font-weight: normal; + vertical-align: middle; +} +.swagger-section .swagger-ui-wrap .code { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.text textarea { + font-family: "Droid Sans", sans-serif; + height: 250px; + padding: 4px; + display: block; + clear: both; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.select select { + display: block; + clear: both; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean { + float: none; + clear: both; + overflow: hidden; + display: block; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean label { + display: block; + float: left; + clear: none; + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean input { + display: block; + float: left; + clear: none; + margin: 0 5px 0 0; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.required label { + color: black; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label { + display: block; + clear: both; + width: auto; + padding: 0 0 3px; + color: #666666; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label abbr { + padding-left: 3px; + color: #888888; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li p.inline-hints { + margin-left: 0; + font-style: italic; + font-size: 0.9em; + margin: 0; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.buttons { + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap span.blank, +.swagger-section .swagger-ui-wrap span.empty { + color: #888888; + font-style: italic; +} +.swagger-section .swagger-ui-wrap .markdown h3 { + color: #547f00; +} +.swagger-section .swagger-ui-wrap .markdown h4 { + color: #666666; +} +.swagger-section .swagger-ui-wrap .markdown pre { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + background-color: #fcf6db; + border: 1px solid #e5e0c6; + padding: 10px; + margin: 0 0 10px 0; +} +.swagger-section .swagger-ui-wrap .markdown pre code { + line-height: 1.6em; +} +.swagger-section .swagger-ui-wrap div.gist { + margin: 20px 0 25px 0 !important; +} +.swagger-section .swagger-ui-wrap ul#resources { + font-family: "Droid Sans", sans-serif; + font-size: 0.9em; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource { + border-bottom: 1px solid #dddddd; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading h2 a, +.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading h2 a { + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading ul.options li a, +.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading ul.options li a { + color: #555555; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource:last-child { + border-bottom: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading { + border: 1px solid transparent; + float: none; + clear: both; + overflow: hidden; + display: block; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options { + overflow: hidden; + padding: 0; + display: block; + clear: none; + float: right; + margin: 14px 10px 0 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li { + float: left; + clear: none; + margin: 0; + padding: 2px 10px; + border-right: 1px solid #dddddd; + color: #666666; + font-size: 0.9em; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a { + color: #aaaaaa; + text-decoration: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover { + text-decoration: underline; + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:active, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a.active { + text-decoration: underline; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:first-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.first { + padding-left: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.last { + padding-right: 0; + border-right: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options:first-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options.first { + padding-left: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 { + color: #999999; + padding-left: 0; + display: block; + clear: none; + float: left; + font-family: "Droid Sans", sans-serif; + font-weight: bold; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a { + color: #999999; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a:hover { + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation { + float: none; + clear: both; + overflow: hidden; + display: block; + margin: 0 0 10px; + padding: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading { + float: none; + clear: both; + overflow: hidden; + display: block; + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 { + display: block; + clear: none; + float: left; + width: auto; + margin: 0; + padding: 0; + line-height: 1.1em; + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path { + padding-left: 10px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a { + color: black; + text-decoration: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a:hover { + text-decoration: underline; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.http_method a { + text-transform: uppercase; + text-decoration: none; + color: white; + display: inline-block; + width: 50px; + font-size: 0.7em; + text-align: center; + padding: 7px 0 4px; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + -o-border-radius: 2px; + -ms-border-radius: 2px; + -khtml-border-radius: 2px; + border-radius: 2px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span { + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options { + overflow: hidden; + padding: 0; + display: block; + clear: none; + float: right; + margin: 6px 10px 0 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li { + float: left; + clear: none; + margin: 0; + padding: 2px 10px; + font-size: 0.9em; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li a { + text-decoration: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li.access { + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content { + border-top: none; + padding: 10px; + -moz-border-radius-bottomleft: 6px; + -webkit-border-bottom-left-radius: 6px; + -o-border-bottom-left-radius: 6px; + -ms-border-bottom-left-radius: 6px; + -khtml-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -moz-border-radius-bottomright: 6px; + -webkit-border-bottom-right-radius: 6px; + -o-border-bottom-right-radius: 6px; + -ms-border-bottom-right-radius: 6px; + -khtml-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + margin: 0 0 20px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content h4 { + font-size: 1.1em; + margin: 0; + padding: 15px 0 5px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header { + float: none; + clear: both; + overflow: hidden; + display: block; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header a { + padding: 4px 0 0 10px; + display: inline-block; + font-size: 0.9em; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header input.submit { + display: block; + clear: none; + float: left; + padding: 6px 8px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header span.response_throbber { + background-image: url('../images/throbber.gif'); + width: 128px; + height: 16px; + display: block; + clear: none; + float: right; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content form input[type='text'].error { + outline: 2px solid black; + outline-color: #cc0000; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.response div.block pre { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + padding: 10px; + font-size: 0.9em; + max-height: 400px; + overflow-y: auto; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading { + background-color: #f9f2e9; + border: 1px solid #f0e0ca; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading h3 span.http_method a { + background-color: #c5862b; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #f0e0ca; + color: #c5862b; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li a { + color: #c5862b; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content { + background-color: #faf5ee; + border: 1px solid #f0e0ca; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content h4 { + color: #c5862b; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content div.sandbox_header a { + color: #dcb67f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading { + background-color: #fcffcd; + border: 1px solid black; + border-color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading h3 span.http_method a { + text-transform: uppercase; + background-color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #ffd20f; + color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li a { + color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content { + background-color: #fcffcd; + border: 1px solid black; + border-color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content h4 { + color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content div.sandbox_header a { + color: #6fc992; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading { + background-color: #f5e8e8; + border: 1px solid #e8c6c7; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading h3 span.http_method a { + text-transform: uppercase; + background-color: #a41e22; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #e8c6c7; + color: #a41e22; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li a { + color: #a41e22; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content { + background-color: #f7eded; + border: 1px solid #e8c6c7; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content h4 { + color: #a41e22; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content div.sandbox_header a { + color: #c8787a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading { + background-color: #e7f6ec; + border: 1px solid #c3e8d1; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading h3 span.http_method a { + background-color: #10a54a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #c3e8d1; + color: #10a54a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li a { + color: #10a54a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content { + background-color: #ebf7f0; + border: 1px solid #c3e8d1; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content h4 { + color: #10a54a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content div.sandbox_header a { + color: #6fc992; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading { + background-color: #FCE9E3; + border: 1px solid #F5D5C3; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading h3 span.http_method a { + background-color: #D38042; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #f0cecb; + color: #D38042; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li a { + color: #D38042; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content { + background-color: #faf0ef; + border: 1px solid #f0cecb; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content h4 { + color: #D38042; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content div.sandbox_header a { + color: #dcb67f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading { + background-color: #e7f0f7; + border: 1px solid #c3d9ec; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading h3 span.http_method a { + background-color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #c3d9ec; + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li a { + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content { + background-color: #ebf3f9; + border: 1px solid #c3d9ec; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content h4 { + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content div.sandbox_header a { + color: #6fa5d2; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading { + background-color: #e7f0f7; + border: 1px solid #c3d9ec; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading h3 span.http_method a { + background-color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #c3d9ec; + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li a { + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content { + background-color: #ebf3f9; + border: 1px solid #c3d9ec; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content h4 { + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content div.sandbox_header a { + color: #6fa5d2; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content { + border-top: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li.last { + padding-right: 0; + border-right: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:hover, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:active, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a.active { + text-decoration: underline; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li:first-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li.first { + padding-left: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations:first-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations.first { + padding-left: 0; +} +.swagger-section .swagger-ui-wrap p#colophon { + margin: 0 15px 40px 15px; + padding: 10px 0; + font-size: 0.8em; + border-top: 1px solid #dddddd; + font-family: "Droid Sans", sans-serif; + color: #999999; + font-style: italic; +} +.swagger-section .swagger-ui-wrap p#colophon a { + text-decoration: none; + color: #547f00; +} +.swagger-section .swagger-ui-wrap h3 { + color: black; + font-size: 1.1em; + padding: 10px 0 10px 0; +} +.swagger-section .swagger-ui-wrap .markdown ol, +.swagger-section .swagger-ui-wrap .markdown ul { + font-family: "Droid Sans", sans-serif; + margin: 5px 0 10px; + padding: 0 0 0 18px; + list-style-type: disc; +} +.swagger-section .swagger-ui-wrap form.form_box { + background-color: #ebf3f9; + border: 1px solid #c3d9ec; + padding: 10px; +} +.swagger-section .swagger-ui-wrap form.form_box label { + color: #0f6ab4 !important; +} +.swagger-section .swagger-ui-wrap form.form_box input[type=submit] { + display: block; + padding: 10px; +} +.swagger-section .swagger-ui-wrap form.form_box p.weak { + font-size: 0.8em; +} +.swagger-section .swagger-ui-wrap form.form_box p { + font-size: 0.9em; + padding: 0 0 15px; + color: #7e7b6d; +} +.swagger-section .swagger-ui-wrap form.form_box p a { + color: #646257; +} +.swagger-section .swagger-ui-wrap form.form_box p strong { + color: black; +} +.swagger-section .swagger-ui-wrap .operation-status td.markdown > p:last-child { + padding-bottom: 0; +} +.swagger-section .title { + font-style: bold; +} +.swagger-section .secondary_form { + display: none; +} +.swagger-section .main_image { + display: block; + margin-left: auto; + margin-right: auto; +} +.swagger-section .oauth_body { + margin-left: 100px; + margin-right: 100px; +} +.swagger-section .oauth_submit { + text-align: center; +} +.swagger-section .api-popup-dialog { + z-index: 10000; + position: absolute; + width: 500px; + background: #FFF; + padding: 20px; + border: 1px solid #ccc; + border-radius: 5px; + display: none; + font-size: 13px; + color: #777; +} +.swagger-section .api-popup-dialog .api-popup-title { + font-size: 24px; + padding: 10px 0; +} +.swagger-section .api-popup-dialog .api-popup-title { + font-size: 24px; + padding: 10px 0; +} +.swagger-section .api-popup-dialog p.error-msg { + padding-left: 5px; + padding-bottom: 5px; +} +.swagger-section .api-popup-dialog button.api-popup-authbtn { + height: 30px; +} +.swagger-section .api-popup-dialog button.api-popup-cancel { + height: 30px; +} +.swagger-section .api-popup-scopes { + padding: 10px 20px; +} +.swagger-section .api-popup-scopes li { + padding: 5px 0; + line-height: 20px; +} +.swagger-section .api-popup-scopes .api-scope-desc { + padding-left: 20px; + font-style: italic; +} +.swagger-section .api-popup-scopes li input { + position: relative; + top: 2px; +} +.swagger-section .api-popup-actions { + padding-top: 10px; +} +.swagger-section .access { + float: right; +} +.swagger-section .auth { + float: right; +} +.swagger-section .api-ic { + height: 18px; + vertical-align: middle; + display: inline-block; + background: url(../images/explorer_icons.png) no-repeat; +} +.swagger-section .api-ic .api_information_panel { + position: relative; + margin-top: 20px; + margin-left: -5px; + background: #FFF; + border: 1px solid #ccc; + border-radius: 5px; + display: none; + font-size: 13px; + max-width: 300px; + line-height: 30px; + color: black; + padding: 5px; +} +.swagger-section .api-ic .api_information_panel p .api-msg-enabled { + color: green; +} +.swagger-section .api-ic .api_information_panel p .api-msg-disabled { + color: red; +} +.swagger-section .api-ic:hover .api_information_panel { + position: absolute; + display: block; +} +.swagger-section .ic-info { + background-position: 0 0; + width: 18px; + margin-top: -6px; + margin-left: 4px; +} +.swagger-section .ic-warning { + background-position: -60px 0; + width: 18px; + margin-top: -6px; + margin-left: 4px; +} +.swagger-section .ic-error { + background-position: -30px 0; + width: 18px; + margin-top: -6px; + margin-left: 4px; +} +.swagger-section .ic-off { + background-position: -90px 0; + width: 58px; + margin-top: -4px; + cursor: pointer; +} +.swagger-section .ic-on { + background-position: -160px 0; + width: 58px; + margin-top: -4px; + cursor: pointer; +} +.swagger-section #header { + background-color: #89bf04; + padding: 14px; +} +.swagger-section #header a#logo { + font-size: 1.5em; + font-weight: bold; + text-decoration: none; + background: transparent url(../images/logo_small.png) no-repeat left center; + padding: 20px 0 20px 40px; + color: white; +} +.swagger-section #header form#api_selector { + display: block; + clear: none; + float: right; +} +.swagger-section #header form#api_selector .input { + display: block; + clear: none; + float: left; + margin: 0 10px 0 0; +} +.swagger-section #header form#api_selector .input input#input_apiKey { + width: 200px; +} +.swagger-section #header form#api_selector .input input#input_baseUrl { + width: 400px; +} +.swagger-section #header form#api_selector .input a#explore { + display: block; + text-decoration: none; + font-weight: bold; + padding: 6px 8px; + font-size: 0.9em; + color: white; + background-color: #547f00; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + -o-border-radius: 4px; + -ms-border-radius: 4px; + -khtml-border-radius: 4px; + border-radius: 4px; +} +.swagger-section #header form#api_selector .input a#explore:hover { + background-color: #547f00; +} +.swagger-section #header form#api_selector .input input { + font-size: 0.9em; + padding: 3px; + margin: 0; +} +.swagger-section #content_message { + margin: 10px 15px; + font-style: italic; + color: #999999; +} +.swagger-section #message-bar { + min-height: 30px; + text-align: center; + padding-top: 10px; +} diff --git a/reference/ucp/3.1/api/css/style.css b/reference/ucp/3.1/api/css/style.css new file mode 100644 index 0000000000..fc21a31db5 --- /dev/null +++ b/reference/ucp/3.1/api/css/style.css @@ -0,0 +1,250 @@ +.swagger-section #header a#logo { + font-size: 1.5em; + font-weight: bold; + text-decoration: none; + background: transparent url(../images/logo.png) no-repeat left center; + padding: 20px 0 20px 40px; +} +#text-head { + font-size: 80px; + font-family: 'Roboto', sans-serif; + color: #ffffff; + float: right; + margin-right: 20%; +} +.navbar-fixed-top .navbar-nav { + height: auto; +} +.navbar-fixed-top .navbar-brand { + height: auto; +} +.navbar-header { + height: auto; +} +.navbar-inverse { + background-color: #000; + border-color: #000; +} +#navbar-brand { + margin-left: 20%; +} +.navtext { + font-size: 10px; +} +.h1, +h1 { + font-size: 60px; +} +.navbar-default .navbar-header .navbar-brand { + color: #a2dfee; +} +/* tag titles */ +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a { + color: #393939; + font-family: 'Arvo', serif; + font-size: 1.5em; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a:hover { + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 { + color: #525252; + padding-left: 0px; + display: block; + clear: none; + float: left; + font-family: 'Arvo', serif; + font-weight: bold; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #0A0A0A; +} +.container1 { + width: 1500px; + margin: auto; + margin-top: 0; + background-image: url('../images/shield.png'); + background-repeat: no-repeat; + background-position: -40px -20px; + margin-bottom: 210px; +} +.container-inner { + width: 1200px; + margin: auto; + background-color: rgba(223, 227, 228, 0.75); + padding-bottom: 40px; + padding-top: 40px; + border-radius: 15px; +} +.header-content { + padding: 0; + width: 1000px; +} +.title1 { + font-size: 80px; + font-family: 'Vollkorn', serif; + color: #404040; + text-align: center; + padding-top: 40px; + padding-bottom: 100px; +} +#icon { + margin-top: -18px; +} +.subtext { + font-size: 25px; + font-style: italic; + color: #08b; + text-align: right; + padding-right: 250px; +} +.bg-primary { + background-color: #00468b; +} +.navbar-default .nav > li > a, +.navbar-default .nav > li > a:focus { + color: #08b; +} +.navbar-default .nav > li > a, +.navbar-default .nav > li > a:hover { + color: #08b; +} +.navbar-default .nav > li > a, +.navbar-default .nav > li > a:focus:hover { + color: #08b; +} +.text-faded { + font-size: 25px; + font-family: 'Vollkorn', serif; +} +.section-heading { + font-family: 'Vollkorn', serif; + font-size: 45px; + padding-bottom: 10px; +} +hr { + border-color: #00468b; + padding-bottom: 10px; +} +.description { + margin-top: 20px; + padding-bottom: 200px; +} +.description li { + font-family: 'Vollkorn', serif; + font-size: 25px; + color: #525252; + margin-left: 28%; + padding-top: 5px; +} +.gap { + margin-top: 200px; +} +.troubleshootingtext { + color: rgba(255, 255, 255, 0.7); + padding-left: 30%; +} +.troubleshootingtext li { + list-style-type: circle; + font-size: 25px; + padding-bottom: 5px; +} +.overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 1000; +} +.block.response_body.json:hover { + cursor: pointer; +} +.backdrop { + color: blue; +} +#myModal { + height: 100%; +} +.modal-backdrop { + bottom: 0; + position: fixed; +} +.curl { + padding: 10px; + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + font-size: 0.9em; + max-height: 400px; + margin-top: 5px; + overflow-y: auto; + background-color: #fcf6db; + border: 1px solid #e5e0c6; + border-radius: 4px; +} +.curl_title { + font-size: 1.1em; + margin: 0; + padding: 15px 0 5px; + font-family: 'Open Sans', 'Helvetica Neue', Arial, sans-serif; + font-weight: 500; + line-height: 1.1; +} +.footer { + display: none; +} +.swagger-section .swagger-ui-wrap h2 { + padding: 0; +} +h2 { + margin: 0; + margin-bottom: 5px; +} +.markdown p { + font-size: 15px; + font-family: 'Arvo', serif; +} +.swagger-section .swagger-ui-wrap .code { + font-size: 15px; + font-family: 'Arvo', serif; +} +.swagger-section .swagger-ui-wrap b { + font-family: 'Arvo', serif; +} +#signin:hover { + cursor: pointer; +} +.dropdown-menu { + padding: 15px; +} +.navbar-right .dropdown-menu { + left: 0; + right: auto; +} +#signinbutton { + width: 100%; + height: 32px; + font-size: 13px; + font-weight: bold; + color: #08b; +} +.navbar-default .nav > li .details { + color: #000000; + text-transform: none; + font-size: 15px; + font-weight: normal; + font-family: 'Open Sans', sans-serif; + font-style: italic; + line-height: 20px; + top: -2px; +} +.navbar-default .nav > li .details:hover { + color: black; +} +#signout { + width: 100%; + height: 32px; + font-size: 13px; + font-weight: bold; + color: #08b; +} diff --git a/reference/ucp/3.1/api/css/typography.css b/reference/ucp/3.1/api/css/typography.css new file mode 100644 index 0000000000..27c3751ac2 --- /dev/null +++ b/reference/ucp/3.1/api/css/typography.css @@ -0,0 +1,26 @@ +/* droid-sans-regular - latin */ +@font-face { + font-family: 'Droid Sans'; + font-style: normal; + font-weight: 400; + src: url('../fonts/droid-sans-v6-latin-regular.eot'); /* IE9 Compat Modes */ + src: local('Droid Sans'), local('DroidSans'), + url('../fonts/droid-sans-v6-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/droid-sans-v6-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/droid-sans-v6-latin-regular.woff') format('woff'), /* Modern Browsers */ + url('../fonts/droid-sans-v6-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/droid-sans-v6-latin-regular.svg#DroidSans') format('svg'); /* Legacy iOS */ +} +/* droid-sans-700 - latin */ +@font-face { + font-family: 'Droid Sans'; + font-style: normal; + font-weight: 700; + src: url('../fonts/droid-sans-v6-latin-700.eot'); /* IE9 Compat Modes */ + src: local('Droid Sans Bold'), local('DroidSans-Bold'), + url('../fonts/droid-sans-v6-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/droid-sans-v6-latin-700.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/droid-sans-v6-latin-700.woff') format('woff'), /* Modern Browsers */ + url('../fonts/droid-sans-v6-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/droid-sans-v6-latin-700.svg#DroidSans') format('svg'); /* Legacy iOS */ +} diff --git a/reference/ucp/3.1/api/custom/custom.css b/reference/ucp/3.1/api/custom/custom.css new file mode 100644 index 0000000000..c365077de3 --- /dev/null +++ b/reference/ucp/3.1/api/custom/custom.css @@ -0,0 +1,15 @@ +em { + font-weight: bold; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content h5 { + color: #10654A; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content h5 { + font-size: 1.0em; + margin: 0px; + padding: 15px 0px 5px; +} + +.swagger-section .swagger-ui-wrap table tr td:nth-child(2) textarea { + display: none !important; +} diff --git a/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-700.eot b/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-700.eot new file mode 100644 index 0000000000000000000000000000000000000000..d8524983ad8d296be95cb5b469efd1987d6e04e3 GIT binary patch literal 22922 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 b()wT*kWXAeMzX)G0;aHJLU2Us_FHkFnk)~p literal 0 HcmV?d00001 diff --git a/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-700.svg b/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-700.svg new file mode 100644 index 0000000000..a54bbbbf25 --- /dev/null +++ b/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-700.svg @@ -0,0 +1,411 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg"> +<defs > +<font id="DroidSans" horiz-adv-x="1123" ><font-face + font-family="Droid Sans" + units-per-em="2048" + panose-1="2 11 8 6 3 8 4 2 2 4" + ascent="1907" + descent="-492" + alphabetic="0" /> +<glyph unicode=" " glyph-name="space" horiz-adv-x="532" /> +<glyph unicode="!" glyph-name="exclam" horiz-adv-x="586" d="M416 485H172L121 1462H467L416 485ZM117 143Q117 190 130 222T168 275T224 304T293 313Q328 313 359 304T415 275T453 223T467 143Q467 98 453 66T415 13T360 -17T293 -27Q256 -27 224 -18T168 13T131 +66T117 143Z" /> +<glyph unicode="&quot;" glyph-name="quotedbl" horiz-adv-x="967" d="M412 1462L371 934H174L133 1462H412ZM834 1462L793 934H596L555 1462H834Z" /> +<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="1323" d="M999 844L952 612H1210V406H913L836 0H616L694 406H500L424 0H209L283 406H45V612H322L369 844H117V1053H406L483 1460H702L625 1053H823L901 1460H1116L1038 1053H1278V844H999ZM539 612H735L782 +844H586L539 612Z" /> +<glyph unicode="$" glyph-name="dollar" horiz-adv-x="1128" d="M1061 457Q1061 382 1035 318T956 206T825 127T645 86V-119H508V82Q442 84 386 90T281 107T188 133T100 168V432Q142 411 191 392T294 358T401 331T508 317V635Q500 638 491 642Q483 645 475 648T461 +653Q370 688 302 726T189 811T121 915T98 1044Q98 1119 126 1180T208 1287T337 1361T508 1399V1556H645V1405Q732 1400 823 1380T1014 1317L913 1083Q848 1109 778 1129T645 1155V862L684 848Q779 813 850 776T968 693T1038 590T1061 457ZM760 451Q760 475 754 +493T733 526T698 553T645 580V328Q704 337 732 367T760 451ZM399 1051Q399 1004 425 973T508 920V1153Q454 1147 427 1123T399 1051Z" /> +<glyph unicode="%" glyph-name="percent" horiz-adv-x="1804" d="M315 1024Q315 897 337 835T410 772Q459 772 482 834T506 1024Q506 1274 410 1274Q360 1274 338 1213T315 1024ZM758 1026Q758 918 738 832T674 687T565 597T408 565Q323 565 259 596T151 687T85 +832T63 1026Q63 1134 83 1219T145 1362T253 1452T408 1483Q494 1483 559 1452T669 1363T735 1219T758 1026ZM1425 1462L614 0H375L1186 1462H1425ZM1298 440Q1298 313 1320 251T1393 188Q1442 188 1465 250T1489 440Q1489 690 1393 690Q1343 690 1321 629T1298 +440ZM1741 442Q1741 334 1721 249T1657 104T1548 14T1391 -18Q1306 -18 1242 13T1135 104T1069 248T1047 442Q1047 550 1067 635T1129 778T1236 868T1391 899Q1477 899 1542 868T1652 779T1718 635T1741 442Z" /> +<glyph unicode="&amp;" glyph-name="ampersand" horiz-adv-x="1479" d="M1475 0H1098L1001 100Q921 45 825 13T612 -20Q492 -20 395 10T228 94T120 225T82 395Q82 472 100 532T153 642T235 731T344 807Q306 853 280 895T237 979T214 1062T207 1149Q207 1227 237 +1288T322 1393T452 1460T618 1483Q704 1483 776 1462T901 1401T984 1301T1014 1165Q1014 1096 992 1039T931 932T842 842T731 766L991 498Q1026 564 1052 637T1098 784H1415Q1400 727 1380 664T1332 538T1270 411T1192 291L1475 0ZM403 424Q403 380 419 345T463 +286T530 249T614 236Q674 236 725 251T819 295L510 625Q459 583 431 535T403 424ZM731 1124Q731 1155 721 1176T695 1212T658 1232T616 1239Q594 1239 572 1233T531 1214T501 1178T489 1122Q489 1070 512 1024T575 932Q652 976 691 1020T731 1124Z" /> +<glyph unicode="&apos;" glyph-name="quotesingle" horiz-adv-x="545" d="M412 1462L371 934H174L133 1462H412Z" /> +<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="694" d="M82 561Q82 686 100 807T155 1043T248 1263T383 1462H633Q492 1269 420 1038T348 563Q348 444 366 326T420 95T509 -124T631 -324H383Q305 -234 249 -131T155 84T100 317T82 561Z" /> +<glyph unicode=")" glyph-name="parenright" horiz-adv-x="694" d="M612 561Q612 437 594 317T539 85T446 -131T311 -324H63Q132 -230 185 -124T274 95T328 326T346 563Q346 807 274 1038T61 1462H311Q389 1369 445 1264T539 1044T594 808T612 561Z" /> +<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="1116" d="M688 1556L647 1188L1020 1292L1053 1040L713 1016L936 719L709 598L553 911L416 600L180 719L401 1016L63 1042L102 1292L467 1188L426 1556H688Z" /> +<glyph unicode="+" glyph-name="plus" horiz-adv-x="1128" d="M455 612H88V831H455V1200H674V831H1040V612H674V248H455V612Z" /> +<glyph unicode="," glyph-name="comma" horiz-adv-x="594" d="M459 215Q445 161 426 100T383 -23T334 -146T283 -264H63Q78 -203 92 -137T120 -6T145 122T164 238H444L459 215Z" /> +<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="659" d="M61 424V674H598V424H61Z" /> +<glyph unicode="." glyph-name="period" horiz-adv-x="584" d="M117 143Q117 190 130 222T168 275T224 304T293 313Q328 313 359 304T415 275T453 223T467 143Q467 98 453 66T415 13T360 -17T293 -27Q256 -27 224 -18T168 13T131 66T117 143Z" /> +<glyph unicode="/" glyph-name="slash" horiz-adv-x="846" d="M836 1462L291 0H14L559 1462H836Z" /> +<glyph unicode="0" glyph-name="zero" horiz-adv-x="1128" d="M1065 731Q1065 554 1038 415T950 179T794 31T563 -20Q436 -20 342 31T186 179T94 415T63 731Q63 908 90 1048T178 1285T333 1433T563 1485Q689 1485 783 1434T940 1286T1034 1049T1065 731ZM371 731Q371 +481 414 355T563 229Q667 229 712 354T758 731Q758 982 713 1108T563 1235Q510 1235 474 1203T414 1108T381 951T371 731Z" /> +<glyph unicode="1" glyph-name="one" horiz-adv-x="1128" d="M817 0H508V846Q508 872 508 908T510 984T513 1064T516 1137Q511 1131 499 1119T472 1093T441 1063T410 1036L242 901L92 1087L563 1462H817V0Z" /> +<glyph unicode="2" glyph-name="two" horiz-adv-x="1128" d="M1063 0H82V215L426 586Q491 656 544 715T635 830T694 944T715 1069Q715 1143 671 1184T551 1225Q472 1225 399 1186T246 1075L78 1274Q123 1315 172 1352T280 1419T410 1465T569 1483Q674 1483 757 +1454T900 1372T990 1242T1022 1071Q1022 985 992 907T910 753T790 603T643 451L467 274V260H1063V0Z" /> +<glyph unicode="3" glyph-name="three" horiz-adv-x="1128" d="M1006 1135Q1006 1059 982 999T915 893T815 817T690 770V764Q867 742 958 657T1049 426Q1049 330 1015 249T909 107T729 14T473 -20Q355 -20 251 -1T57 59V322Q102 298 152 280T252 250T350 231T442 +225Q528 225 585 241T676 286T724 355T739 444Q739 489 721 525T661 587T552 627T387 641H283V858H385Q477 858 538 874T635 919T687 986T702 1067Q702 1145 654 1189T500 1233Q452 1233 411 1224T334 1200T269 1168T215 1133L59 1339Q101 1370 150 1396T258 1441T383 +1472T526 1483Q634 1483 722 1460T874 1392T971 1283T1006 1135Z" /> +<glyph unicode="4" glyph-name="four" horiz-adv-x="1128" d="M1085 303H909V0H608V303H4V518L625 1462H909V543H1085V303ZM608 543V791Q608 804 608 828T610 884T612 948T615 1011T618 1063T621 1096H612Q594 1054 572 1007T520 913L276 543H608Z" /> +<glyph unicode="5" glyph-name="five" horiz-adv-x="1128" d="M598 934Q692 934 773 905T914 820T1008 681T1042 489Q1042 370 1005 276T896 116T718 15T473 -20Q418 -20 364 -15T261 -1T167 24T86 59V326Q121 306 167 289T262 259T362 239T457 231Q591 231 661 +286T731 463Q731 571 663 627T451 684Q425 684 396 681T338 673T283 663T238 651L115 717L170 1462H942V1200H438L414 913Q446 920 488 927T598 934Z" /> +<glyph unicode="6" glyph-name="six" horiz-adv-x="1128" d="M76 621Q76 726 87 830T128 1029T208 1207T336 1349T522 1444T776 1479Q797 1479 822 1478T872 1476T922 1471T965 1464V1217Q927 1226 885 1231T799 1237Q664 1237 577 1204T439 1110T367 966T340 +780H352Q372 816 400 847T467 901T552 937T659 950Q754 950 830 919T958 829T1039 684T1067 487Q1067 368 1034 274T938 115T788 15T590 -20Q482 -20 388 18T225 136T116 335T76 621ZM584 227Q625 227 658 242T716 289T754 369T768 483Q768 590 724 651T588 713Q542 +713 504 695T439 648T398 583T383 510Q383 459 395 409T433 318T496 252T584 227Z" /> +<glyph unicode="7" glyph-name="seven" horiz-adv-x="1128" d="M207 0L727 1200H55V1460H1063V1266L530 0H207Z" /> +<glyph unicode="8" glyph-name="eight" horiz-adv-x="1128" d="M565 1481Q656 1481 737 1459T879 1393T976 1283T1012 1128Q1012 1062 992 1009T937 912T854 834T750 772Q808 741 863 703T962 618T1031 511T1057 379Q1057 288 1021 214T920 88T765 8T565 -20Q447 +-20 355 7T200 84T105 207T72 371Q72 446 94 506T154 614T243 699T352 764Q303 795 260 831T186 912T136 1011T117 1130Q117 1217 153 1282T252 1392T395 1459T565 1481ZM358 389Q358 349 371 316T409 258T473 221T561 207Q666 207 718 256T770 387Q770 429 753 +462T708 524T645 577T575 623L553 637Q509 615 473 590T412 534T372 467T358 389ZM563 1255Q530 1255 502 1245T453 1216T420 1169T408 1106Q408 1064 420 1034T454 980T504 938T565 901Q596 917 624 936T673 979T708 1035T721 1106Q721 1141 709 1169T676 1216T626 +1245T563 1255Z" /> +<glyph unicode="9" glyph-name="nine" horiz-adv-x="1128" d="M1055 838Q1055 733 1044 629T1003 429T923 252T795 109T609 15T354 -20Q333 -20 308 -19T258 -17T208 -13T166 -6V242Q203 232 245 227T332 221Q467 221 554 254T692 348T764 493T791 678H778Q758 +642 730 611T664 557T578 521T471 508Q376 508 300 539T172 629T91 774T63 971Q63 1090 96 1184T192 1343T342 1444T541 1479Q649 1479 743 1441T906 1323T1015 1123T1055 838ZM547 1231Q506 1231 472 1216T414 1170T376 1090T362 975Q362 869 407 807T543 745Q589 +745 627 763T692 810T733 875T748 948Q748 999 736 1049T698 1140T635 1206T547 1231Z" /> +<glyph unicode=":" glyph-name="colon" horiz-adv-x="584" d="M117 143Q117 190 130 222T168 275T224 304T293 313Q328 313 359 304T415 275T453 223T467 143Q467 98 453 66T415 13T360 -17T293 -27Q256 -27 224 -18T168 13T131 66T117 143ZM117 969Q117 1016 +130 1048T168 1101T224 1130T293 1139Q328 1139 359 1130T415 1101T453 1049T467 969Q467 924 453 892T415 839T360 809T293 799Q256 799 224 808T168 838T131 891T117 969Z" /> +<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="594" d="M444 238L459 215Q445 161 426 100T383 -23T334 -146T283 -264H63Q78 -203 92 -137T120 -6T145 122T164 238H444ZM117 969Q117 1016 130 1048T168 1101T224 1130T293 1139Q328 1139 359 1130T415 +1101T453 1049T467 969Q467 924 453 892T415 839T360 809T293 799Q256 799 224 808T168 838T131 891T117 969Z" /> +<glyph unicode="&lt;" glyph-name="less" horiz-adv-x="1128" d="M1040 203L88 641V784L1040 1280V1040L397 723L1040 442V203Z" /> +<glyph unicode="=" glyph-name="equal" horiz-adv-x="1128" d="M88 807V1024H1040V807H88ZM88 418V637H1040V418H88Z" /> +<glyph unicode="&gt;" glyph-name="greater" horiz-adv-x="1128" d="M88 442L731 723L88 1040V1280L1040 784V641L88 203V442Z" /> +<glyph unicode="?" glyph-name="question" horiz-adv-x="940" d="M264 485V559Q264 610 274 651T306 730T362 803T444 877Q486 910 515 936T562 987T588 1041T596 1106Q596 1163 558 1200T440 1237Q371 1237 292 1208T127 1137L25 1358Q68 1383 118 1405T223 1445T334 +1473T444 1483Q546 1483 628 1459T767 1387T854 1273T885 1120Q885 1057 871 1008T830 916T761 834T664 750Q622 717 596 693T554 646T534 601T528 545V485H264ZM231 143Q231 190 244 222T282 275T338 304T408 313Q443 313 474 304T530 275T568 223T582 143Q582 +98 568 66T530 13T475 -17T408 -27Q371 -27 339 -18T282 13T245 66T231 143Z" /> +<glyph unicode="@" glyph-name="at" horiz-adv-x="1774" d="M1673 752Q1673 657 1651 564T1582 398T1467 279T1303 233Q1265 233 1232 242T1170 269T1122 310T1090 362H1075Q1056 337 1031 314T975 272T907 244T825 233Q742 233 678 261T569 342T502 468T479 631Q479 +734 510 820T599 968T740 1065T926 1100Q971 1100 1019 1095T1111 1082T1195 1064T1262 1044L1241 625Q1239 603 1239 582T1239 555Q1239 513 1245 486T1262 444T1286 422T1315 416Q1350 416 1376 443T1419 516T1445 623T1454 754Q1454 882 1416 982T1311 1151T1150 +1256T948 1292Q795 1292 679 1241T484 1099T365 882T324 608Q324 470 359 364T463 185T633 75T866 37Q922 37 981 44T1098 63T1213 92T1321 129V-63Q1227 -105 1113 -129T868 -154Q687 -154 545 -103T304 46T154 283T102 602Q102 726 129 839T207 1050T331 1227T499 +1363T706 1450T948 1481Q1106 1481 1239 1431T1468 1286T1619 1056T1673 752ZM711 627Q711 515 749 466T850 416Q892 416 922 435T972 490T1002 575T1016 686L1028 907Q1008 912 981 915T926 918Q867 918 826 893T760 827T723 734T711 627Z" /> +<glyph unicode="A" glyph-name="A" horiz-adv-x="1331" d="M1018 0L918 348H414L313 0H0L475 1468H854L1331 0H1018ZM846 608L752 928Q746 946 734 987T709 1077T683 1177T666 1262Q662 1240 656 1210T641 1147T623 1079T606 1015T592 962T582 928L489 608H846Z" /> +<glyph unicode="B" glyph-name="B" horiz-adv-x="1315" d="M184 1462H612Q750 1462 854 1443T1028 1380T1133 1266T1169 1092Q1169 1030 1154 976T1110 881T1040 813T944 776V766Q999 754 1046 732T1129 670T1185 570T1206 424Q1206 324 1171 246T1071 113T912 +29T700 0H184V1462ZM494 883H655Q713 883 752 893T815 925T849 977T860 1051Q860 1135 808 1171T641 1208H494V883ZM494 637V256H676Q737 256 778 270T845 310T882 373T893 455Q893 496 882 529T845 587T775 624T668 637H494Z" /> +<glyph unicode="C" glyph-name="C" horiz-adv-x="1305" d="M805 1225Q716 1225 648 1191T533 1092T462 935T438 727Q438 610 459 519T525 366T639 271T805 238Q894 238 983 258T1178 315V55Q1130 35 1083 21T987 -2T887 -15T776 -20Q607 -20 483 34T278 186T158 +422T119 729Q119 895 164 1033T296 1272T511 1427T805 1483Q914 1483 1023 1456T1233 1380L1133 1128Q1051 1167 968 1196T805 1225Z" /> +<glyph unicode="D" glyph-name="D" horiz-adv-x="1434" d="M1315 745Q1315 560 1265 421T1119 188T885 47T569 0H184V1462H612Q773 1462 902 1416T1124 1280T1265 1055T1315 745ZM1001 737Q1001 859 977 947T906 1094T792 1180T637 1208H494V256H608Q804 256 902 +376T1001 737Z" /> +<glyph unicode="E" glyph-name="E" horiz-adv-x="1147" d="M1026 0H184V1462H1026V1208H494V887H989V633H494V256H1026V0Z" /> +<glyph unicode="F" glyph-name="F" horiz-adv-x="1124" d="M489 0H184V1462H1022V1208H489V831H985V578H489V0Z" /> +<glyph unicode="G" glyph-name="G" horiz-adv-x="1483" d="M739 821H1319V63Q1261 44 1202 29T1080 3T947 -14T799 -20Q635 -20 509 28T296 172T164 408T119 733Q119 905 169 1044T316 1280T556 1430T883 1483Q1000 1483 1112 1458T1317 1393L1214 1145Q1146 1179 +1061 1202T881 1225Q779 1225 698 1190T558 1089T469 932T438 727Q438 619 459 530T527 375T645 274T819 238Q885 238 930 244T1016 258V563H739V821Z" /> +<glyph unicode="H" glyph-name="H" horiz-adv-x="1485" d="M1300 0H991V631H494V0H184V1462H494V889H991V1462H1300V0Z" /> +<glyph unicode="I" glyph-name="I" horiz-adv-x="797" d="M731 0H66V176L244 258V1204L66 1286V1462H731V1286L553 1204V258L731 176V0Z" /> +<glyph unicode="J" glyph-name="J" horiz-adv-x="678" d="M-2 -430Q-67 -430 -116 -424T-199 -408V-150Q-162 -158 -122 -164T-33 -170Q13 -170 52 -160T121 -126T167 -60T184 43V1462H494V53Q494 -73 458 -164T356 -314T199 -402T-2 -430Z" /> +<glyph unicode="K" glyph-name="K" horiz-adv-x="1298" d="M1298 0H946L610 608L494 522V0H184V1462H494V758L616 965L950 1462H1294L827 803L1298 0Z" /> +<glyph unicode="L" glyph-name="L" horiz-adv-x="1096" d="M184 0V1462H494V256H1026V0H184Z" /> +<glyph unicode="M" glyph-name="M" horiz-adv-x="1870" d="M772 0L451 1147H442Q448 1055 452 969Q454 932 455 893T458 816T460 743T461 680V0H184V1462H606L922 344H928L1264 1462H1686V0H1397V692Q1397 718 1397 751T1399 821T1401 896T1404 970Q1408 1054 +1411 1145H1403L1057 0H772Z" /> +<glyph unicode="N" glyph-name="N" horiz-adv-x="1604" d="M1419 0H1026L451 1106H442Q448 1029 452 953Q456 888 458 817T461 688V0H184V1462H575L1149 367H1155Q1152 443 1148 517Q1147 549 1146 582T1143 649T1142 714T1141 770V1462H1419V0Z" /> +<glyph unicode="O" glyph-name="O" horiz-adv-x="1548" d="M1430 733Q1430 564 1391 425T1270 187T1066 34T774 -20Q606 -20 483 34T279 187T159 425T119 735Q119 905 158 1043T279 1280T483 1431T776 1485Q944 1485 1067 1432T1270 1280T1390 1043T1430 733ZM438 +733Q438 618 458 527T519 372T624 274T774 240Q863 240 926 274T1030 371T1090 526T1110 733Q1110 848 1091 939T1031 1095T927 1193T776 1227Q689 1227 625 1193T520 1095T458 940T438 733Z" /> +<glyph unicode="P" glyph-name="P" horiz-adv-x="1225" d="M494 774H555Q686 774 752 826T819 995Q819 1104 760 1156T573 1208H494V774ZM1133 1006Q1133 910 1104 822T1009 667T834 560T565 520H494V0H184V1462H590Q731 1462 833 1431T1002 1341T1101 1198T1133 1006Z" /> +<glyph unicode="Q" glyph-name="Q" horiz-adv-x="1548" d="M1430 733Q1430 614 1411 510T1352 319T1253 166T1112 55L1473 -348H1075L807 -18Q800 -18 794 -19Q789 -20 784 -20T774 -20Q606 -20 483 34T279 187T159 425T119 735Q119 905 158 1043T279 1280T483 +1431T776 1485Q944 1485 1067 1432T1270 1280T1390 1043T1430 733ZM438 733Q438 618 458 527T519 372T624 274T774 240Q863 240 926 274T1030 371T1090 526T1110 733Q1110 848 1091 939T1031 1095T927 1193T776 1227Q689 1227 625 1193T520 1095T458 940T438 733Z" +/> +<glyph unicode="R" glyph-name="R" horiz-adv-x="1290" d="M494 813H578Q707 813 763 864T819 1016Q819 1120 759 1164T573 1208H494V813ZM494 561V0H184V1462H584Q865 1462 999 1354T1133 1024Q1133 949 1113 888T1060 780T983 697T891 637Q1002 459 1090 319Q1128 +259 1163 202T1227 100T1273 28L1290 0H946L629 561H494Z" /> +<glyph unicode="S" glyph-name="S" horiz-adv-x="1073" d="M985 406Q985 308 952 230T854 96T696 10T481 -20Q375 -20 277 2T94 68V356Q142 333 191 312T290 273T391 246T492 236Q543 236 579 247T638 279T671 328T682 391Q682 432 665 463T616 522T540 576T440 +631Q394 655 337 689T230 773T145 895T111 1067Q111 1165 143 1242T236 1373T381 1455T573 1483Q626 1483 676 1476T776 1456T876 1424T979 1380L879 1139Q834 1160 795 1176T719 1203T647 1219T575 1225Q497 1225 456 1184T414 1073Q414 1036 426 1008T466 954T537 +903T643 844Q718 804 781 763T889 671T960 556T985 406Z" /> +<glyph unicode="T" glyph-name="T" horiz-adv-x="1124" d="M717 0H408V1204H41V1462H1083V1204H717V0Z" /> +<glyph unicode="U" glyph-name="U" horiz-adv-x="1466" d="M1292 1462V516Q1292 402 1258 304T1153 134T976 21T727 -20Q592 -20 489 18T316 128T210 298T174 520V1462H483V543Q483 462 499 405T546 311T625 257T735 240Q866 240 924 316T983 545V1462H1292Z" /> +<glyph unicode="V" glyph-name="V" horiz-adv-x="1249" d="M936 1462H1249L793 0H455L0 1462H313L561 582Q566 565 574 525T592 437T611 341T625 260Q630 293 639 341T658 436T677 524T692 582L936 1462Z" /> +<glyph unicode="W" glyph-name="W" horiz-adv-x="1898" d="M1546 0H1194L1014 721Q1010 736 1005 763T992 824T978 895T965 967T955 1031T948 1079Q946 1061 942 1032T931 968T919 896T906 825T893 763T883 719L705 0H352L0 1462H305L471 664Q474 648 479 618T492 +549T506 469T521 387T534 313T543 256Q546 278 551 312T563 384T576 464T590 540T601 603T610 643L813 1462H1085L1288 643Q1291 631 1296 604T1308 541T1322 464T1335 385T1347 312T1356 256Q1359 278 1364 312T1377 387T1391 469T1406 549T1418 617T1427 664L1593 +1462H1898L1546 0Z" /> +<glyph unicode="X" glyph-name="X" horiz-adv-x="1284" d="M1284 0H930L631 553L332 0H0L444 754L31 1462H373L647 936L915 1462H1249L831 737L1284 0Z" /> +<glyph unicode="Y" glyph-name="Y" horiz-adv-x="1196" d="M598 860L862 1462H1196L752 569V0H444V559L0 1462H336L598 860Z" /> +<glyph unicode="Z" glyph-name="Z" horiz-adv-x="1104" d="M1055 0H49V201L668 1206H68V1462H1036V1262L418 256H1055V0Z" /> +<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="678" d="M627 -324H143V1462H627V1251H403V-113H627V-324Z" /> +<glyph unicode="\" glyph-name="backslash" horiz-adv-x="846" d="M289 1462L834 0H557L12 1462H289Z" /> +<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="678" d="M51 -113H274V1251H51V1462H535V-324H51V-113Z" /> +<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="1090" d="M8 520L446 1470H590L1085 520H846L524 1163Q455 1002 384 839T244 520H8Z" /> +<glyph unicode="_" glyph-name="underscore" horiz-adv-x="842" d="M846 -324H-4V-184H846V-324Z" /> +<glyph unicode="`" glyph-name="grave" horiz-adv-x="1182" d="M645 1241Q611 1269 564 1310T470 1396T386 1480T332 1548V1569H674Q690 1535 711 1495T756 1414T803 1335T848 1268V1241H645Z" /> +<glyph unicode="a" glyph-name="a" horiz-adv-x="1176" d="M809 0L750 152H741Q708 107 675 75T603 21T516 -10T403 -20Q335 -20 277 1T177 66T110 176T86 334Q86 512 200 596T541 690L719 696V780Q719 849 679 882T567 915Q495 915 427 894T289 838L190 1040Q274 +1087 376 1114T590 1141Q799 1141 910 1043T1022 745V0H809ZM719 518L618 514Q557 512 515 498T448 461T411 405T399 332Q399 262 433 233T522 203Q564 203 600 217T662 260T704 330T719 426V518Z" /> +<glyph unicode="b" glyph-name="b" horiz-adv-x="1245" d="M756 1139Q842 1139 913 1102T1035 992T1114 811T1143 561Q1143 417 1115 309T1034 127T909 17T748 -20Q692 -20 649 -8T571 24T512 69T465 123H444L393 0H160V1556H465V1194Q465 1161 463 1123T459 1051Q456 +1012 453 973H465Q486 1008 513 1038T575 1090T656 1126T756 1139ZM653 895Q602 895 567 877T509 821T477 728T465 596V563Q465 482 474 419T506 314T564 249T655 227Q746 227 788 313T831 565Q831 730 789 812T653 895Z" /> +<glyph unicode="c" glyph-name="c" horiz-adv-x="1022" d="M625 -20Q505 -20 409 13T244 115T139 293T102 553Q102 720 139 832T245 1013T410 1110T625 1139Q711 1139 796 1118T956 1059L868 827Q802 856 741 874T625 893Q514 893 464 809T414 555Q414 387 464 +307T621 227Q708 227 779 249T924 307V53Q887 35 852 21T782 -2T708 -15T625 -20Z" /> +<glyph unicode="d" glyph-name="d" horiz-adv-x="1245" d="M489 -20Q403 -20 332 17T210 126T131 307T102 557Q102 701 130 809T211 991T337 1102T498 1139Q552 1139 597 1127T678 1092T742 1040T793 975H803Q797 1014 792 1054Q787 1088 784 1126T780 1198V1556H1085V0H852L793 +145H780Q759 111 732 81T670 28T590 -7T489 -20ZM600 223Q654 223 692 241T753 297T788 391T801 522V555Q801 636 791 699T758 804T696 869T598 891Q502 891 457 805T412 553Q412 388 457 306T600 223Z" /> +<glyph unicode="e" glyph-name="e" horiz-adv-x="1190" d="M612 922Q531 922 478 865T416 686H805Q804 737 792 780T756 854T696 904T612 922ZM651 -20Q531 -20 430 15T256 120T143 298T102 551Q102 698 139 808T242 991T402 1102T610 1139Q721 1139 810 1106T962 +1007T1058 848T1092 631V483H410Q412 419 430 368T482 281T563 226T672 207Q723 207 768 212T857 229T942 256T1028 295V59Q988 38 948 24T862 -1T765 -15T651 -20Z" /> +<glyph unicode="f" glyph-name="f" horiz-adv-x="793" d="M741 889H514V0H209V889H41V1036L209 1118V1200Q209 1307 235 1377T309 1490T425 1549T578 1567Q670 1567 733 1553T840 1520L768 1296Q737 1307 703 1316T623 1325Q563 1325 539 1287T514 1188V1118H741V889Z" /> +<glyph unicode="g" glyph-name="g" horiz-adv-x="1130" d="M1085 1116V950L922 899Q942 865 950 829T958 750Q958 665 931 595T851 474T718 397T532 369Q509 369 482 371T442 377Q422 360 411 342T399 297Q399 276 412 264T446 244T495 234T553 231H727Q808 231 +872 213T980 156T1049 60T1073 -80Q1073 -175 1035 -251T922 -381T734 -463T475 -492Q361 -492 276 -471T134 -409T49 -311T20 -182Q20 -121 41 -76T97 1T176 53T268 84Q247 93 227 109T190 146T163 192T152 246Q152 278 161 304T189 352T234 395T295 436Q207 474 +156 558T104 756Q104 846 132 917T214 1037T348 1113T532 1139Q552 1139 577 1137T626 1131T672 1123T705 1116H1085ZM285 -158Q285 -183 295 -206T330 -248T393 -276T489 -287Q645 -287 724 -243T803 -125Q803 -62 754 -41T602 -20H461Q434 -20 403 -26T346 -49T303 +-91T285 -158ZM395 752Q395 661 429 611T532 561Q604 561 636 611T668 752Q668 842 637 895T532 948Q395 948 395 752Z" /> +<glyph unicode="h" glyph-name="h" horiz-adv-x="1284" d="M1130 0H825V653Q825 774 788 834T672 895Q613 895 573 871T509 800T475 684T465 526V0H160V1556H465V1239Q465 1197 463 1151T458 1065Q454 1019 451 975H467Q516 1062 592 1100T764 1139Q847 1139 914 +1116T1030 1042T1104 915T1130 729V0Z" /> +<glyph unicode="i" glyph-name="i" horiz-adv-x="625" d="M147 1407Q147 1450 160 1478T195 1524T248 1549T313 1556Q347 1556 377 1549T429 1525T465 1479T479 1407Q479 1365 466 1336T430 1290T377 1265T313 1257Q279 1257 249 1264T196 1289T160 1336T147 1407ZM465 +0H160V1118H465V0Z" /> +<glyph unicode="j" glyph-name="j" horiz-adv-x="625" d="M102 -492Q54 -492 3 -485T-82 -467V-227Q-51 -237 -24 -241T37 -246Q62 -246 84 -239T123 -212T150 -160T160 -76V1118H465V-121Q465 -198 446 -265T383 -383T270 -463T102 -492ZM147 1407Q147 1450 160 +1478T195 1524T248 1549T313 1556Q347 1556 377 1549T429 1525T465 1479T479 1407Q479 1365 466 1336T430 1290T377 1265T313 1257Q279 1257 249 1264T196 1289T160 1336T147 1407Z" /> +<glyph unicode="k" glyph-name="k" horiz-adv-x="1208" d="M453 608L565 778L838 1118H1182L778 633L1208 0H856L584 430L465 348V0H160V1556H465V862L449 608H453Z" /> +<glyph unicode="l" glyph-name="l" horiz-adv-x="625" d="M465 0H160V1556H465V0Z" /> +<glyph unicode="m" glyph-name="m" horiz-adv-x="1929" d="M1120 0H815V653Q815 774 779 834T666 895Q608 895 570 871T508 800T475 684T465 526V0H160V1118H393L434 975H451Q475 1018 508 1049T582 1100T667 1129T758 1139Q873 1139 953 1100T1077 975H1102Q1126 +1018 1160 1049T1235 1100T1321 1129T1413 1139Q1593 1139 1684 1042T1776 729V0H1470V653Q1470 774 1434 834T1321 895Q1212 895 1166 809T1120 561V0Z" /> +<glyph unicode="n" glyph-name="n" horiz-adv-x="1284" d="M1130 0H825V653Q825 774 789 834T672 895Q612 895 572 871T509 800T475 684T465 526V0H160V1118H393L434 975H451Q475 1018 509 1049T585 1100T672 1129T766 1139Q848 1139 915 1116T1030 1042T1104 +915T1130 729V0Z" /> +<glyph unicode="o" glyph-name="o" horiz-adv-x="1227" d="M414 561Q414 394 461 310T614 225Q719 225 766 310T813 561Q813 728 766 810T612 893Q507 893 461 811T414 561ZM1124 561Q1124 421 1089 313T987 131T825 19T610 -20Q499 -20 406 18T246 131T140 313T102 +561Q102 700 137 808T239 989T401 1101T616 1139Q727 1139 820 1101T980 990T1086 808T1124 561Z" /> +<glyph unicode="p" glyph-name="p" horiz-adv-x="1245" d="M748 -20Q693 -20 650 -8T572 24T512 69T465 123H449Q453 88 457 57Q460 31 462 4T465 -39V-492H160V1118H408L451 973H465Q486 1007 513 1037T575 1089T656 1125T756 1139Q843 1139 914 1102T1036 992T1115 +811T1143 561Q1143 418 1114 310T1033 128T908 17T748 -20ZM653 895Q602 895 567 877T509 821T477 728T465 596V563Q465 482 474 419T506 314T564 249T655 227Q746 227 788 313T831 565Q831 730 789 812T653 895Z" /> +<glyph unicode="q" glyph-name="q" horiz-adv-x="1245" d="M602 219Q657 219 694 237T755 293T789 386T801 518V555Q801 636 792 699T759 804T697 869T600 891Q504 891 459 805T414 553Q414 385 459 302T602 219ZM489 -20Q402 -20 331 17T209 126T130 307T102 +557Q102 700 130 808T211 990T337 1101T498 1139Q554 1139 599 1127T680 1092T745 1040T795 975H803L827 1118H1085V-492H780V-23Q780 -4 782 24T787 80Q790 112 793 145H780Q760 111 733 81T671 28T590 -7T489 -20Z" /> +<glyph unicode="r" glyph-name="r" horiz-adv-x="889" d="M743 1139Q755 1139 769 1139T797 1137T822 1134T840 1130V844Q832 846 818 848T789 851T758 853T733 854Q674 854 625 839T540 791T485 703T465 569V0H160V1118H391L436 950H451Q475 993 503 1028T565 +1087T643 1125T743 1139Z" /> +<glyph unicode="s" glyph-name="s" horiz-adv-x="985" d="M905 332Q905 244 873 178T782 68T639 2T451 -20Q396 -20 349 -17T260 -5T179 15T100 45V297Q142 276 188 259T281 230T370 210T451 203Q492 203 521 210T568 231T595 263T604 303Q604 324 598 340T568 +375T501 417T381 475Q308 508 255 540T167 613T115 704T98 827Q98 905 128 963T213 1061T345 1119T518 1139Q618 1139 708 1116T893 1047L801 831Q725 867 656 890T518 913Q456 913 429 891T401 831Q401 811 408 796T436 764T495 728T594 680Q665 649 722 619T820 +549T883 458T905 332Z" /> +<glyph unicode="t" glyph-name="t" horiz-adv-x="848" d="M614 223Q659 223 699 233T782 258V31Q739 9 676 -5T537 -20Q464 -20 401 -3T292 56T220 170T193 350V889H47V1018L215 1120L303 1356H498V1118H770V889H498V350Q498 285 530 254T614 223Z" /> +<glyph unicode="u" glyph-name="u" horiz-adv-x="1284" d="M891 0L850 143H834Q809 100 775 70T699 19T612 -10T518 -20Q436 -20 369 3T254 77T180 204T154 389V1118H459V465Q459 344 495 284T612 223Q672 223 712 247T775 318T809 434T819 592V1118H1124V0H891Z" /> +<glyph unicode="v" glyph-name="v" horiz-adv-x="1104" d="M395 0L0 1118H319L504 481Q521 424 533 363T549 252H555Q558 305 570 364T600 481L784 1118H1104L709 0H395Z" /> +<glyph unicode="w" glyph-name="w" horiz-adv-x="1651" d="M1014 0L928 391Q924 408 918 439T903 510T887 594T869 683Q849 786 825 905H819Q796 786 777 682Q769 638 761 593T744 509T730 437T719 387L629 0H301L0 1118H303L416 623Q425 584 434 530T452 420T468 +315T479 236H485Q486 255 489 285T498 351T508 422T519 491T529 547T537 582L659 1118H995L1112 582Q1117 560 1125 514T1141 416T1156 314T1163 236H1169Q1172 261 1179 310T1196 415T1215 528T1235 623L1352 1118H1651L1346 0H1014Z" /> +<glyph unicode="x" glyph-name="x" horiz-adv-x="1122" d="M389 571L29 1118H375L561 782L750 1118H1096L731 571L1112 0H766L561 362L356 0H10L389 571Z" /> +<glyph unicode="y" glyph-name="y" horiz-adv-x="1104" d="M0 1118H334L514 489Q530 437 537 378T547 272H553Q555 295 558 323T567 380T578 437T592 489L768 1118H1104L662 -143Q600 -320 493 -406T225 -492Q173 -492 135 -487T70 -475V-233Q91 -238 123 -242T190 +-246Q238 -246 272 -233T330 -197T372 -140T403 -66L422 -10L0 1118Z" /> +<glyph unicode="z" glyph-name="z" horiz-adv-x="936" d="M877 0H55V180L512 885H86V1118H858V920L416 233H877V0Z" /> +<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="745" d="M287 367T222 408T31 449V688Q93 688 141 697T223 728T272 784T287 866V1184Q287 1258 306 1310T374 1396T509 1446T725 1462V1237Q685 1236 653 1230T598 1209T563 1166T551 1096V797Q545 610 +317 575V563Q432 546 493 491T551 342V43Q551 0 563 -27T597 -69T652 -91T725 -98V-324Q594 -324 509 -308T375 -259T306 -172T287 -45V270Q287 367 222 408Z" /> +<glyph unicode="|" glyph-name="bar" horiz-adv-x="1128" d="M455 1550H674V-465H455V1550Z" /> +<glyph unicode="}" glyph-name="braceright" horiz-adv-x="745" d="M469 -45Q469 -119 450 -172T382 -258T247 -308T31 -324V-98Q71 -97 103 -91T157 -70T192 -27T205 43V342Q202 436 263 491T438 563V575Q211 610 205 797V1096Q205 1139 193 1166T158 1208T103 +1230T31 1237V1462Q162 1462 247 1446T381 1397T450 1311T469 1184V866Q468 818 484 784T533 729T614 698T725 688V449Q600 449 535 408T469 270V-45Z" /> +<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="1128" d="M528 616Q491 632 463 643T411 660T366 669T322 672Q293 672 262 663T201 637T143 598T88 551V782Q139 836 202 863T344 891Q374 891 399 889T453 879T517 860T600 827Q638 811 666 801T719 +784T764 775T807 772Q836 772 867 781T928 807T986 845T1040 893V662Q939 553 784 553Q754 553 729 555T675 564T611 583T528 616Z" /> +<glyph unicode="&#xa0;" glyph-name="nbspace" horiz-adv-x="532" /> +<glyph unicode="&#xa1;" glyph-name="exclamdown" horiz-adv-x="586" d="M168 606H412L463 -369H117L168 606ZM467 948Q467 901 454 869T416 816T360 787T291 778Q256 778 225 787T169 816T131 868T117 948Q117 993 131 1025T169 1078T224 1108T291 1118Q328 1118 +360 1109T416 1079T453 1026T467 948Z" /> +<glyph unicode="&#xa2;" glyph-name="cent" horiz-adv-x="1128" d="M543 -20V186Q451 199 377 236T251 340T171 506T143 743Q143 884 171 985T251 1155T378 1260T543 1311V1483H721V1319Q759 1318 797 1313T870 1299T937 1281T993 1260L907 1034Q886 1044 860 +1053T805 1070T750 1082T698 1087Q632 1087 586 1067T511 1006T468 901T455 750Q455 579 512 500T698 420Q774 420 844 438T965 481V242Q914 213 852 198T721 180V-20H543Z" /> +<glyph unicode="&#xa3;" glyph-name="sterling" horiz-adv-x="1128" d="M680 1483Q790 1483 879 1459T1049 1401L956 1171Q885 1200 827 1217T705 1235Q638 1235 601 1197T563 1063V870H897V651H563V508Q563 453 550 413T514 343T466 294T412 260H1090V0H82V248Q124 +266 157 287T214 337T250 407T262 506V651H84V870H262V1065Q262 1178 293 1257T380 1387T512 1460T680 1483Z" /> +<glyph unicode="&#xa4;" glyph-name="currency" horiz-adv-x="1128" d="M168 723Q168 777 182 826T221 920L92 1047L240 1194L367 1067Q410 1092 461 1106T563 1120Q617 1120 665 1107T760 1065L887 1194L1036 1051L907 922Q932 880 946 829T961 723Q961 667 947 +618T907 524L1032 399L887 254L760 379Q716 356 667 342T563 328Q507 328 458 340T365 379L240 256L94 401L221 526Q168 617 168 723ZM375 723Q375 684 390 650T430 590T490 550T563 535Q603 535 638 549T699 589T741 649T756 723Q756 763 741 797T700 857T638 +898T563 913Q524 913 490 898T431 858T390 798T375 723Z" /> +<glyph unicode="&#xa5;" glyph-name="yen" horiz-adv-x="1128" d="M565 860L809 1462H1122L760 715H954V537H709V399H954V221H709V0H422V221H174V399H422V537H174V715H365L8 1462H324L565 860Z" /> +<glyph unicode="&#xa6;" glyph-name="brokenbar" horiz-adv-x="1128" d="M455 1550H674V735H455V1550ZM455 350H674V-465H455V350Z" /> +<glyph unicode="&#xa7;" glyph-name="section" horiz-adv-x="995" d="M121 805Q121 849 131 886T160 955T203 1012T254 1055Q191 1095 156 1154T121 1288Q121 1353 150 1406T232 1498T360 1556T526 1577Q628 1577 716 1554T889 1493L807 1303Q739 1335 669 1360T520 +1386Q439 1386 402 1363T365 1292Q365 1267 377 1246T415 1206T481 1167T578 1124Q649 1096 707 1062T807 987T872 895T895 782Q895 682 861 621T770 522Q832 482 863 430T895 303Q895 229 864 170T776 68T638 3T455 -20Q345 -20 261 0T106 59V266Q145 246 190 +229T281 198T371 176T455 168Q511 168 548 177T607 202T639 239T649 285Q649 310 642 329T612 368T549 408T442 457Q366 489 306 521T205 593T143 685T121 805ZM344 827Q344 764 400 716T575 616L590 610Q605 621 619 635T644 668T661 708T668 756Q668 788 658 +815T621 867T550 917T434 967Q416 960 400 947T372 915T352 875T344 827Z" /> +<glyph unicode="&#xa8;" glyph-name="dieresis" horiz-adv-x="1182" d="M248 1405Q248 1440 259 1465T288 1507T332 1532T387 1540Q416 1540 441 1532T486 1508T516 1466T528 1405Q528 1371 517 1346T486 1305T442 1280T387 1272Q358 1272 333 1280T289 1304T259 +1346T248 1405ZM651 1405Q651 1440 662 1465T692 1507T737 1532T793 1540Q821 1540 846 1532T891 1508T922 1466T934 1405Q934 1371 923 1346T892 1305T847 1280T793 1272Q733 1272 692 1305T651 1405Z" /> +<glyph unicode="&#xa9;" glyph-name="copyright" horiz-adv-x="1704" d="M895 1010Q798 1010 745 936T692 731Q692 596 740 524T895 451Q952 451 1018 466T1141 510V319Q1084 292 1025 277T889 262Q782 262 702 296T569 392T488 540T461 733Q461 836 487 921T565 +1068T697 1164T881 1198Q964 1198 1041 1176T1186 1120L1112 952Q999 1010 895 1010ZM100 731Q100 835 127 931T202 1110T320 1263T472 1380T652 1456T852 1483Q956 1483 1052 1456T1231 1381T1384 1263T1501 1111T1577 931T1604 731Q1604 627 1577 531T1502 352T1384 +200T1232 82T1052 7T852 -20Q748 -20 652 6T473 82T320 199T203 351T127 531T100 731ZM242 731Q242 604 290 493T420 300T614 169T852 121Q979 121 1090 169T1283 299T1414 493T1462 731Q1462 858 1414 969T1284 1162T1090 1293T852 1341Q725 1341 614 1293T421 +1163T290 969T242 731Z" /> +<glyph unicode="&#xaa;" glyph-name="ordfeminine" horiz-adv-x="743" d="M520 764L489 874Q449 816 393 784T268 752Q218 752 178 765T108 806T63 876T47 975Q47 1035 68 1076T130 1144T230 1184T365 1202L455 1206Q455 1269 426 1296T342 1323Q302 1323 253 +1306T152 1262L86 1397Q148 1429 222 1454T387 1479Q455 1479 505 1460T589 1405T638 1319T655 1206V764H520ZM373 1081Q335 1078 312 1068T275 1044T257 1012T252 977Q252 939 271 921T317 903Q349 903 374 914T418 944T445 991T455 1051V1087L373 1081Z" /> +<glyph unicode="&#xab;" glyph-name="guillemotleft" horiz-adv-x="1198" d="M82 573L391 1028L610 909L393 561L610 213L391 94L82 547V573ZM588 573L897 1028L1116 909L899 561L1116 213L897 94L588 547V573Z" /> +<glyph unicode="&#xac;" glyph-name="logicalnot" horiz-adv-x="1128" d="M1040 248H821V612H88V831H1040V248Z" /> +<glyph unicode="&#xad;" glyph-name="uni00AD" horiz-adv-x="659" d="M61 424V674H598V424H61Z" /> +<glyph unicode="&#xae;" glyph-name="registered" horiz-adv-x="1704" d="M1157 905Q1157 811 1119 756T1014 672L1251 272H997L819 610H772V272H543V1188H807Q989 1188 1073 1118T1157 905ZM772 778H803Q869 778 897 806T926 901Q926 936 919 959T896 995T857 +1014T801 1020H772V778ZM100 731Q100 835 127 931T202 1110T320 1263T472 1380T652 1456T852 1483Q956 1483 1052 1456T1231 1381T1384 1263T1501 1111T1577 931T1604 731Q1604 627 1577 531T1502 352T1384 200T1232 82T1052 7T852 -20Q748 -20 652 6T473 82T320 +199T203 351T127 531T100 731ZM242 731Q242 604 290 493T420 300T614 169T852 121Q979 121 1090 169T1283 299T1414 493T1462 731Q1462 858 1414 969T1284 1162T1090 1293T852 1341Q725 1341 614 1293T421 1163T290 969T242 731Z" /> +<glyph unicode="&#xaf;" glyph-name="overscore" horiz-adv-x="1024" d="M1030 1556H-6V1757H1030V1556Z" /> +<glyph unicode="&#xb0;" glyph-name="degree" horiz-adv-x="877" d="M92 1137Q92 1208 119 1271T193 1381T303 1455T438 1483Q510 1483 573 1456T683 1381T757 1271T784 1137Q784 1065 757 1002T684 893T574 820T438 793Q366 793 303 819T193 892T119 1002T92 +1137ZM283 1137Q283 1106 295 1078T328 1029T377 996T438 983Q470 983 498 995T548 1029T581 1078T594 1137Q594 1169 582 1197T548 1247T499 1281T438 1294Q406 1294 378 1282T328 1248T295 1198T283 1137Z" /> +<glyph unicode="&#xb1;" glyph-name="plusminus" horiz-adv-x="1128" d="M455 674H88V893H455V1262H674V893H1040V674H674V309H455V674ZM88 0V219H1040V0H88Z" /> +<glyph unicode="&#xb2;" glyph-name="twosuperior" horiz-adv-x="776" d="M702 586H55V754L279 973Q325 1018 355 1051T404 1111T430 1161T438 1212Q438 1250 414 1270T350 1290Q310 1290 267 1270T170 1202L47 1354Q112 1411 193 1447T383 1483Q449 1483 503 +1467T596 1419T656 1341T678 1233Q678 1187 666 1147T626 1065T557 980T455 881L350 786H702V586Z" /> +<glyph unicode="&#xb3;" glyph-name="threesuperior" horiz-adv-x="776" d="M666 1249Q666 1180 626 1130T496 1051V1038Q547 1028 584 1007T645 959T682 898T694 829Q694 708 606 639T332 569Q256 569 190 586T59 639V829Q125 789 191 764T330 739Q404 739 438 +766T473 846Q473 867 465 886T438 919T387 943T307 952H195V1112H287Q339 1112 371 1121T421 1145T445 1180T451 1221Q451 1259 426 1284T350 1309Q303 1309 261 1290T162 1231L61 1372Q123 1419 198 1450T377 1481Q439 1481 492 1465T583 1418T644 1345T666 1249Z" +/> +<glyph unicode="&#xb4;" glyph-name="acute" horiz-adv-x="1182" d="M332 1241V1268Q353 1297 377 1335T424 1413T469 1494T506 1569H848V1548Q837 1530 816 1506T768 1453T710 1396T648 1338T587 1285T535 1241H332Z" /> +<glyph unicode="&#xb5;" glyph-name="mu" horiz-adv-x="1290" d="M465 465Q465 344 502 284T621 223Q679 223 718 247T781 318T815 434T825 592V1118H1130V0H897L854 150H842Q807 65 755 23T627 -20Q573 -20 528 3T455 70Q457 28 460 -15Q462 -52 463 -94T465 +-172V-492H160V1118H465V465Z" /> +<glyph unicode="&#xb6;" glyph-name="paragraph" horiz-adv-x="1341" d="M1167 -260H1006V1356H840V-260H678V559Q617 541 532 541Q437 541 360 566T228 651T143 806T113 1042Q113 1189 145 1287T237 1446T380 1531T563 1556H1167V-260Z" /> +<glyph unicode="&#xb7;" glyph-name="middot" horiz-adv-x="584" d="M117 723Q117 770 130 802T168 855T224 884T293 893Q328 893 359 884T415 855T453 803T467 723Q467 678 453 646T415 593T360 563T293 553Q256 553 224 562T168 592T131 645T117 723Z" /> +<glyph unicode="&#xb8;" glyph-name="cedilla" horiz-adv-x="420" d="M418 -250Q418 -307 403 -352T351 -428T256 -475T109 -492Q64 -492 28 -486T-37 -471V-303Q-22 -307 -4 -310T34 -317T72 -322T106 -324Q135 -324 156 -311T178 -262Q178 -225 141 -197T12 +-154L90 0H283L256 -61Q287 -71 316 -88T367 -128T404 -182T418 -250Z" /> +<glyph unicode="&#xb9;" glyph-name="onesuperior" horiz-adv-x="776" d="M584 586H346V1032Q346 1052 346 1082T348 1144T351 1201T354 1239Q348 1231 339 1221T319 1199T298 1178T279 1161L201 1100L92 1227L393 1462H584V586Z" /> +<glyph unicode="&#xba;" glyph-name="ordmasculine" horiz-adv-x="754" d="M696 1116Q696 1029 674 962T609 848T508 777T375 752Q306 752 248 776T147 847T81 961T57 1116Q57 1203 79 1270T143 1384T244 1455T379 1479Q447 1479 504 1455T605 1385T672 1271T696 +1116ZM260 1116Q260 1016 287 966T377 915Q437 915 464 965T492 1116Q492 1216 465 1265T377 1315Q315 1315 288 1266T260 1116Z" /> +<glyph unicode="&#xbb;" glyph-name="guillemotright" horiz-adv-x="1198" d="M1118 547L809 94L590 213L807 561L590 909L809 1028L1118 573V547ZM612 547L303 94L84 213L301 561L84 909L303 1028L612 573V547Z" /> +<glyph unicode="&#xbc;" glyph-name="onequarter" horiz-adv-x="1804" d="M1370 1462L559 0H320L1131 1462H1370ZM794 586H556V1032Q556 1052 556 1082T558 1144T561 1201T564 1239Q558 1231 549 1221T529 1199T508 1178T489 1161L411 1100L302 1227L603 1462H794V586ZM1682 +152H1557V1H1319V152H936V306L1321 883H1557V320H1682V152ZM1319 320V484Q1319 526 1320 572T1325 668Q1320 655 1311 634T1290 590T1268 546T1248 511L1121 320H1319Z" /> +<glyph unicode="&#xbd;" glyph-name="onehalf" horiz-adv-x="1804" d="M1370 1462L559 0H320L1131 1462H1370ZM794 586H556V1032Q556 1052 556 1082T558 1144T561 1201T564 1239Q558 1231 549 1221T529 1199T508 1178T489 1161L411 1100L302 1227L603 1462H794V586ZM1716 +1H1069V169L1293 388Q1339 433 1369 466T1418 526T1444 576T1452 627Q1452 665 1428 685T1364 705Q1324 705 1281 685T1184 617L1061 769Q1126 826 1207 862T1397 898Q1463 898 1517 882T1610 834T1670 756T1692 648Q1692 602 1680 562T1640 480T1571 395T1469 +296L1364 201H1716V1Z" /> +<glyph unicode="&#xbe;" glyph-name="threequarters" horiz-adv-x="1804" d="M1441 1462L630 0H391L1202 1462H1441ZM1712 152H1587V1H1349V152H966V306L1351 883H1587V320H1712V152ZM1349 320V484Q1349 526 1350 572T1355 668Q1350 655 1341 634T1320 590T1298 +546T1278 511L1151 320H1349ZM697 1249Q697 1180 657 1130T527 1051V1038Q578 1028 615 1007T676 959T713 898T725 829Q725 708 637 639T363 569Q287 569 221 586T90 639V829Q156 789 222 764T361 739Q435 739 469 766T504 846Q504 867 496 886T469 919T418 943T338 +952H226V1112H318Q370 1112 402 1121T452 1145T476 1180T482 1221Q482 1259 457 1284T381 1309Q334 1309 292 1290T193 1231L92 1372Q154 1419 229 1450T408 1481Q470 1481 523 1465T614 1418T675 1345T697 1249Z" /> +<glyph unicode="&#xbf;" glyph-name="questiondown" horiz-adv-x="940" d="M686 606V532Q686 481 676 440T644 361T588 288T506 215Q464 182 435 156T388 105T362 51T354 -14Q354 -71 393 -108T510 -145Q579 -145 659 -116T823 -45L926 -266Q883 -292 832 -314T727 +-354T616 -381T506 -391Q404 -391 323 -367T184 -296T97 -182T66 -29Q66 34 79 83T121 175T190 258T287 342Q328 375 354 399T396 446T416 492T422 547V606H686ZM719 948Q719 901 706 869T668 816T612 787T543 778Q508 778 477 787T421 816T383 868T369 948Q369 +993 383 1025T421 1078T476 1108T543 1118Q580 1118 612 1109T668 1079T705 1026T719 948Z" /> +<glyph unicode="&#xc0;" glyph-name="Agrave" horiz-adv-x="1331" d="M1018 0L918 348H414L313 0H0L475 1468H854L1331 0H1018ZM846 608L752 928Q746 946 734 987T709 1077T683 1177T666 1262Q662 1240 656 1210T641 1147T623 1079T606 1015T592 962T582 928L489 +608H846ZM632 1579Q598 1607 551 1648T457 1734T373 1818T319 1886V1907H661Q677 1873 698 1833T743 1752T790 1673T835 1606V1579H632Z" /> +<glyph unicode="&#xc1;" glyph-name="Aacute" horiz-adv-x="1331" d="M1018 0L918 348H414L313 0H0L475 1468H854L1331 0H1018ZM846 608L752 928Q746 946 734 987T709 1077T683 1177T666 1262Q662 1240 656 1210T641 1147T623 1079T606 1015T592 962T582 928L489 +608H846ZM494 1579V1606Q515 1635 539 1673T586 1751T631 1832T668 1907H1010V1886Q999 1868 978 1844T930 1791T872 1734T810 1676T749 1623T697 1579H494Z" /> +<glyph unicode="&#xc2;" glyph-name="Acircumflex" horiz-adv-x="1331" d="M1018 0L918 348H414L313 0H0L475 1468H854L1331 0H1018ZM846 608L752 928Q746 946 734 987T709 1077T683 1177T666 1262Q662 1240 656 1210T641 1147T623 1079T606 1015T592 962T582 +928L489 608H846ZM879 1579Q828 1613 773 1656T666 1755Q612 1699 560 1656T457 1579H254V1606Q280 1635 311 1673T375 1751T438 1832T490 1907H846Q867 1873 897 1833T959 1752T1024 1673T1082 1606V1579H879Z" /> +<glyph unicode="&#xc3;" glyph-name="Atilde" horiz-adv-x="1331" d="M1018 0L918 348H414L313 0H0L475 1468H854L1331 0H1018ZM846 608L752 928Q746 946 734 987T709 1077T683 1177T666 1262Q662 1240 656 1210T641 1147T623 1079T606 1015T592 962T582 928L489 +608H846ZM504 1684Q473 1684 455 1658T424 1577H275Q281 1657 301 1715T353 1811T430 1867T527 1886Q568 1886 607 1870T684 1835T760 1799T834 1782Q865 1782 883 1808T914 1888H1063Q1057 1809 1037 1751T983 1655T907 1598T811 1579Q771 1579 731 1595T653 1631T578 +1667T504 1684Z" /> +<glyph unicode="&#xc4;" glyph-name="Adieresis" horiz-adv-x="1331" d="M1018 0L918 348H414L313 0H0L475 1468H854L1331 0H1018ZM846 608L752 928Q746 946 734 987T709 1077T683 1177T666 1262Q662 1240 656 1210T641 1147T623 1079T606 1015T592 962T582 928L489 +608H846ZM324 1743Q324 1778 335 1803T364 1845T408 1870T463 1878Q492 1878 517 1870T562 1846T592 1804T604 1743Q604 1709 593 1684T562 1643T518 1618T463 1610Q434 1610 409 1618T365 1642T335 1684T324 1743ZM727 1743Q727 1778 738 1803T768 1845T813 1870T869 +1878Q897 1878 922 1870T967 1846T998 1804T1010 1743Q1010 1709 999 1684T968 1643T923 1618T869 1610Q809 1610 768 1643T727 1743Z" /> +<glyph unicode="&#xc5;" glyph-name="Aring" horiz-adv-x="1331" d="M1018 0L918 348H414L313 0H0L475 1468H854L1331 0H1018ZM846 608L752 928Q746 946 734 987T709 1077T683 1177T666 1262Q662 1240 656 1210T641 1147T623 1079T606 1015T592 962T582 928L489 +608H846ZM918 1567Q918 1511 899 1467T845 1391T764 1344T664 1327Q609 1327 563 1343T485 1390T434 1465T416 1565Q416 1620 434 1664T484 1738T563 1785T664 1802Q717 1802 763 1786T843 1739T898 1665T918 1567ZM760 1565Q760 1610 733 1635T664 1661Q622 1661 +595 1636T568 1565Q568 1520 592 1494T664 1468Q706 1468 733 1494T760 1565Z" /> +<glyph unicode="&#xc6;" glyph-name="AE" horiz-adv-x="1888" d="M1767 0H926V348H465L315 0H0L655 1462H1767V1208H1235V887H1731V633H1235V256H1767V0ZM578 608H926V1198H829L578 608Z" /> +<glyph unicode="&#xc7;" glyph-name="Ccedilla" horiz-adv-x="1305" d="M805 1225Q716 1225 648 1191T533 1092T462 935T438 727Q438 610 459 519T525 366T639 271T805 238Q894 238 983 258T1178 315V55Q1130 35 1083 21T987 -2T887 -15T776 -20Q607 -20 483 34T278 +186T158 422T119 729Q119 895 164 1033T296 1272T511 1427T805 1483Q914 1483 1023 1456T1233 1380L1133 1128Q1051 1167 968 1196T805 1225ZM926 -250Q926 -307 911 -352T859 -428T764 -475T617 -492Q572 -492 536 -486T471 -471V-303Q486 -307 504 -310T542 -317T580 +-322T614 -324Q643 -324 664 -311T686 -262Q686 -225 649 -197T520 -154L598 0H791L764 -61Q795 -71 824 -88T875 -128T912 -182T926 -250Z" /> +<glyph unicode="&#xc8;" glyph-name="Egrave" horiz-adv-x="1147" d="M1026 0H184V1462H1026V1208H494V887H989V633H494V256H1026V0ZM572 1579Q538 1607 491 1648T397 1734T313 1818T259 1886V1907H601Q617 1873 638 1833T683 1752T730 1673T775 1606V1579H572Z" /> +<glyph unicode="&#xc9;" glyph-name="Eacute" horiz-adv-x="1147" d="M1026 0H184V1462H1026V1208H494V887H989V633H494V256H1026V0ZM424 1579V1606Q445 1635 469 1673T516 1751T561 1832T598 1907H940V1886Q929 1868 908 1844T860 1791T802 1734T740 1676T679 +1623T627 1579H424Z" /> +<glyph unicode="&#xca;" glyph-name="Ecircumflex" horiz-adv-x="1147" d="M1026 0H184V1462H1026V1208H494V887H989V633H494V256H1026V0ZM832 1579Q781 1613 726 1656T619 1755Q565 1699 513 1656T410 1579H207V1606Q233 1635 264 1673T328 1751T391 1832T443 +1907H799Q820 1873 850 1833T912 1752T977 1673T1035 1606V1579H832Z" /> +<glyph unicode="&#xcb;" glyph-name="Edieresis" horiz-adv-x="1147" d="M1026 0H184V1462H1026V1208H494V887H989V633H494V256H1026V0ZM273 1743Q273 1778 284 1803T313 1845T357 1870T412 1878Q441 1878 466 1870T511 1846T541 1804T553 1743Q553 1709 542 1684T511 +1643T467 1618T412 1610Q383 1610 358 1618T314 1642T284 1684T273 1743ZM676 1743Q676 1778 687 1803T717 1845T762 1870T818 1878Q846 1878 871 1870T916 1846T947 1804T959 1743Q959 1709 948 1684T917 1643T872 1618T818 1610Q758 1610 717 1643T676 1743Z" +/> +<glyph unicode="&#xcc;" glyph-name="Igrave" horiz-adv-x="797" d="M731 0H66V176L244 258V1204L66 1286V1462H731V1286L553 1204V258L731 176V0ZM355 1579Q321 1607 274 1648T180 1734T96 1818T42 1886V1907H384Q400 1873 421 1833T466 1752T513 1673T558 1606V1579H355Z" +/> +<glyph unicode="&#xcd;" glyph-name="Iacute" horiz-adv-x="797" d="M731 0H66V176L244 258V1204L66 1286V1462H731V1286L553 1204V258L731 176V0ZM237 1579V1606Q258 1635 282 1673T329 1751T374 1832T411 1907H753V1886Q742 1868 721 1844T673 1791T615 1734T553 +1676T492 1623T440 1579H237Z" /> +<glyph unicode="&#xce;" glyph-name="Icircumflex" horiz-adv-x="797" d="M731 0H66V176L244 258V1204L66 1286V1462H731V1286L553 1204V258L731 176V0ZM609 1579Q558 1613 503 1656T396 1755Q342 1699 290 1656T187 1579H-16V1606Q10 1635 41 1673T105 1751T168 +1832T220 1907H576Q597 1873 627 1833T689 1752T754 1673T812 1606V1579H609Z" /> +<glyph unicode="&#xcf;" glyph-name="Idieresis" horiz-adv-x="797" d="M731 0H66V176L244 258V1204L66 1286V1462H731V1286L553 1204V258L731 176V0ZM54 1743Q54 1778 65 1803T94 1845T138 1870T193 1878Q222 1878 247 1870T292 1846T322 1804T334 1743Q334 1709 +323 1684T292 1643T248 1618T193 1610Q164 1610 139 1618T95 1642T65 1684T54 1743ZM457 1743Q457 1778 468 1803T498 1845T543 1870T599 1878Q627 1878 652 1870T697 1846T728 1804T740 1743Q740 1709 729 1684T698 1643T653 1618T599 1610Q539 1610 498 1643T457 +1743Z" /> +<glyph unicode="&#xd0;" glyph-name="Eth" horiz-adv-x="1434" d="M47 850H184V1462H612Q773 1462 902 1416T1124 1280T1265 1055T1315 745Q1315 560 1265 421T1119 188T885 47T569 0H184V596H47V850ZM1001 737Q1001 859 977 947T906 1094T792 1180T637 1208H494V850H731V596H494V256H608Q804 +256 902 376T1001 737Z" /> +<glyph unicode="&#xd1;" glyph-name="Ntilde" horiz-adv-x="1604" d="M1419 0H1026L451 1106H442Q448 1029 452 953Q456 888 458 817T461 688V0H184V1462H575L1149 367H1155Q1152 443 1148 517Q1147 549 1146 582T1143 649T1142 714T1141 770V1462H1419V0ZM623 +1684Q592 1684 574 1658T543 1577H394Q400 1657 420 1715T472 1811T549 1867T646 1886Q687 1886 726 1870T803 1835T879 1799T953 1782Q984 1782 1002 1808T1033 1888H1182Q1176 1809 1156 1751T1102 1655T1026 1598T930 1579Q890 1579 850 1595T772 1631T697 1667T623 +1684Z" /> +<glyph unicode="&#xd2;" glyph-name="Ograve" horiz-adv-x="1548" d="M1430 733Q1430 564 1391 425T1270 187T1066 34T774 -20Q606 -20 483 34T279 187T159 425T119 735Q119 905 158 1043T279 1280T483 1431T776 1485Q944 1485 1067 1432T1270 1280T1390 1043T1430 +733ZM438 733Q438 618 458 527T519 372T624 274T774 240Q863 240 926 274T1030 371T1090 526T1110 733Q1110 848 1091 939T1031 1095T927 1193T776 1227Q689 1227 625 1193T520 1095T458 940T438 733ZM729 1579Q695 1607 648 1648T554 1734T470 1818T416 1886V1907H758Q774 +1873 795 1833T840 1752T887 1673T932 1606V1579H729Z" /> +<glyph unicode="&#xd3;" glyph-name="Oacute" horiz-adv-x="1548" d="M1430 733Q1430 564 1391 425T1270 187T1066 34T774 -20Q606 -20 483 34T279 187T159 425T119 735Q119 905 158 1043T279 1280T483 1431T776 1485Q944 1485 1067 1432T1270 1280T1390 1043T1430 +733ZM438 733Q438 618 458 527T519 372T624 274T774 240Q863 240 926 274T1030 371T1090 526T1110 733Q1110 848 1091 939T1031 1095T927 1193T776 1227Q689 1227 625 1193T520 1095T458 940T438 733ZM590 1579V1606Q611 1635 635 1673T682 1751T727 1832T764 1907H1106V1886Q1095 +1868 1074 1844T1026 1791T968 1734T906 1676T845 1623T793 1579H590Z" /> +<glyph unicode="&#xd4;" glyph-name="Ocircumflex" horiz-adv-x="1548" d="M1430 733Q1430 564 1391 425T1270 187T1066 34T774 -20Q606 -20 483 34T279 187T159 425T119 735Q119 905 158 1043T279 1280T483 1431T776 1485Q944 1485 1067 1432T1270 1280T1390 +1043T1430 733ZM438 733Q438 618 458 527T519 372T624 274T774 240Q863 240 926 274T1030 371T1090 526T1110 733Q1110 848 1091 939T1031 1095T927 1193T776 1227Q689 1227 625 1193T520 1095T458 940T438 733ZM975 1579Q924 1613 869 1656T762 1755Q708 1699 +656 1656T553 1579H350V1606Q376 1635 407 1673T471 1751T534 1832T586 1907H942Q963 1873 993 1833T1055 1752T1120 1673T1178 1606V1579H975Z" /> +<glyph unicode="&#xd5;" glyph-name="Otilde" horiz-adv-x="1548" d="M1430 733Q1430 564 1391 425T1270 187T1066 34T774 -20Q606 -20 483 34T279 187T159 425T119 735Q119 905 158 1043T279 1280T483 1431T776 1485Q944 1485 1067 1432T1270 1280T1390 1043T1430 +733ZM438 733Q438 618 458 527T519 372T624 274T774 240Q863 240 926 274T1030 371T1090 526T1110 733Q1110 848 1091 939T1031 1095T927 1193T776 1227Q689 1227 625 1193T520 1095T458 940T438 733ZM612 1684Q581 1684 563 1658T532 1577H383Q389 1657 409 1715T461 +1811T538 1867T635 1886Q676 1886 715 1870T792 1835T868 1799T942 1782Q973 1782 991 1808T1022 1888H1171Q1165 1809 1145 1751T1091 1655T1015 1598T919 1579Q879 1579 839 1595T761 1631T686 1667T612 1684Z" /> +<glyph unicode="&#xd6;" glyph-name="Odieresis" horiz-adv-x="1548" d="M1430 733Q1430 564 1391 425T1270 187T1066 34T774 -20Q606 -20 483 34T279 187T159 425T119 735Q119 905 158 1043T279 1280T483 1431T776 1485Q944 1485 1067 1432T1270 1280T1390 1043T1430 +733ZM438 733Q438 618 458 527T519 372T624 274T774 240Q863 240 926 274T1030 371T1090 526T1110 733Q1110 848 1091 939T1031 1095T927 1193T776 1227Q689 1227 625 1193T520 1095T458 940T438 733ZM428 1743Q428 1778 439 1803T468 1845T512 1870T567 1878Q596 +1878 621 1870T666 1846T696 1804T708 1743Q708 1709 697 1684T666 1643T622 1618T567 1610Q538 1610 513 1618T469 1642T439 1684T428 1743ZM831 1743Q831 1778 842 1803T872 1845T917 1870T973 1878Q1001 1878 1026 1870T1071 1846T1102 1804T1114 1743Q1114 +1709 1103 1684T1072 1643T1027 1618T973 1610Q913 1610 872 1643T831 1743Z" /> +<glyph unicode="&#xd7;" glyph-name="multiply" horiz-adv-x="1128" d="M408 723L109 1024L260 1178L561 879L866 1178L1020 1028L715 723L1016 420L866 268L561 569L260 270L111 422L408 723Z" /> +<glyph unicode="&#xd8;" glyph-name="Oslash" horiz-adv-x="1548" d="M1430 733Q1430 564 1391 425T1270 187T1066 34T774 -20Q595 -20 467 41L395 -76L227 18L309 152Q212 252 166 400T119 735Q119 905 158 1043T279 1280T483 1431T776 1485Q867 1485 944 1469T1087 +1421L1157 1532L1323 1436L1243 1307Q1337 1208 1383 1063T1430 733ZM438 733Q438 553 485 438L942 1184Q873 1227 776 1227Q689 1227 625 1193T520 1095T458 940T438 733ZM1110 733Q1110 904 1067 1020L612 279Q646 260 686 250T774 240Q863 240 926 274T1030 +371T1090 526T1110 733Z" /> +<glyph unicode="&#xd9;" glyph-name="Ugrave" horiz-adv-x="1466" d="M1292 1462V516Q1292 402 1258 304T1153 134T976 21T727 -20Q592 -20 489 18T316 128T210 298T174 520V1462H483V543Q483 462 499 405T546 311T625 257T735 240Q866 240 924 316T983 545V1462H1292ZM706 +1579Q672 1607 625 1648T531 1734T447 1818T393 1886V1907H735Q751 1873 772 1833T817 1752T864 1673T909 1606V1579H706Z" /> +<glyph unicode="&#xda;" glyph-name="Uacute" horiz-adv-x="1466" d="M1292 1462V516Q1292 402 1258 304T1153 134T976 21T727 -20Q592 -20 489 18T316 128T210 298T174 520V1462H483V543Q483 462 499 405T546 311T625 257T735 240Q866 240 924 316T983 545V1462H1292ZM570 +1579V1606Q591 1635 615 1673T662 1751T707 1832T744 1907H1086V1886Q1075 1868 1054 1844T1006 1791T948 1734T886 1676T825 1623T773 1579H570Z" /> +<glyph unicode="&#xdb;" glyph-name="Ucircumflex" horiz-adv-x="1466" d="M1292 1462V516Q1292 402 1258 304T1153 134T976 21T727 -20Q592 -20 489 18T316 128T210 298T174 520V1462H483V543Q483 462 499 405T546 311T625 257T735 240Q866 240 924 316T983 545V1462H1292ZM942 +1579Q891 1613 836 1656T729 1755Q675 1699 623 1656T520 1579H317V1606Q343 1635 374 1673T438 1751T501 1832T553 1907H909Q930 1873 960 1833T1022 1752T1087 1673T1145 1606V1579H942Z" /> +<glyph unicode="&#xdc;" glyph-name="Udieresis" horiz-adv-x="1466" d="M1292 1462V516Q1292 402 1258 304T1153 134T976 21T727 -20Q592 -20 489 18T316 128T210 298T174 520V1462H483V543Q483 462 499 405T546 311T625 257T735 240Q866 240 924 316T983 545V1462H1292ZM393 +1743Q393 1778 404 1803T433 1845T477 1870T532 1878Q561 1878 586 1870T631 1846T661 1804T673 1743Q673 1709 662 1684T631 1643T587 1618T532 1610Q503 1610 478 1618T434 1642T404 1684T393 1743ZM796 1743Q796 1778 807 1803T837 1845T882 1870T938 1878Q966 +1878 991 1870T1036 1846T1067 1804T1079 1743Q1079 1709 1068 1684T1037 1643T992 1618T938 1610Q878 1610 837 1643T796 1743Z" /> +<glyph unicode="&#xdd;" glyph-name="Yacute" horiz-adv-x="1196" d="M598 860L862 1462H1196L752 569V0H444V559L0 1462H336L598 860ZM422 1579V1606Q443 1635 467 1673T514 1751T559 1832T596 1907H938V1886Q927 1868 906 1844T858 1791T800 1734T738 1676T677 +1623T625 1579H422Z" /> +<glyph unicode="&#xde;" glyph-name="Thorn" horiz-adv-x="1225" d="M1133 770Q1133 676 1108 590T1024 438T870 333T633 293H494V0H184V1462H494V1233H655Q779 1233 869 1200T1017 1107T1104 961T1133 770ZM494 543H578Q699 543 759 595T819 770Q819 878 766 +929T598 981H494V543Z" /> +<glyph unicode="&#xdf;" glyph-name="germandbls" horiz-adv-x="1395" d="M1188 1241Q1188 1177 1167 1129T1114 1042T1045 975T976 922T923 877T901 834Q901 814 913 797T952 760T1020 715T1118 651Q1167 620 1205 588T1269 517T1309 432T1323 326Q1323 154 1206 +67T862 -20Q764 -20 692 -6T559 43V285Q583 269 617 254T690 226T768 207T842 199Q922 199 966 229T1010 322Q1010 349 1003 370T976 412T918 457T821 516Q758 552 716 584T647 647T609 713T598 788Q598 841 618 880T670 950T737 1007T805 1059T856 1117T877 1188Q877 +1251 827 1290T680 1329Q572 1329 519 1281T465 1128V0H160V1139Q160 1248 197 1328T302 1462T467 1541T680 1567Q795 1567 889 1546T1049 1483T1152 1380T1188 1241Z" /> +<glyph unicode="&#xe0;" glyph-name="agrave" horiz-adv-x="1176" d="M809 0L750 152H741Q708 107 675 75T603 21T516 -10T403 -20Q335 -20 277 1T177 66T110 176T86 334Q86 512 200 596T541 690L719 696V780Q719 849 679 882T567 915Q495 915 427 894T289 838L190 +1040Q274 1087 376 1114T590 1141Q799 1141 910 1043T1022 745V0H809ZM719 518L618 514Q557 512 515 498T448 461T411 405T399 332Q399 262 433 233T522 203Q564 203 600 217T662 260T704 330T719 426V518ZM808 1241Q774 1269 727 1310T633 1396T549 1480T495 1548V1569H837Q853 +1535 874 1495T919 1414T966 1335T1011 1268V1241H808Z" /> +<glyph unicode="&#xe1;" glyph-name="aacute" horiz-adv-x="1176" d="M809 0L750 152H741Q708 107 675 75T603 21T516 -10T403 -20Q335 -20 277 1T177 66T110 176T86 334Q86 512 200 596T541 690L719 696V780Q719 849 679 882T567 915Q495 915 427 894T289 838L190 +1040Q274 1087 376 1114T590 1141Q799 1141 910 1043T1022 745V0H809ZM719 518L618 514Q557 512 515 498T448 461T411 405T399 332Q399 262 433 233T522 203Q564 203 600 217T662 260T704 330T719 426V518ZM441 1241V1268Q462 1297 486 1335T533 1413T578 1494T615 +1569H957V1548Q946 1530 925 1506T877 1453T819 1396T757 1338T696 1285T644 1241H441Z" /> +<glyph unicode="&#xe2;" glyph-name="acircumflex" horiz-adv-x="1176" d="M809 0L750 152H741Q708 107 675 75T603 21T516 -10T403 -20Q335 -20 277 1T177 66T110 176T86 334Q86 512 200 596T541 690L719 696V780Q719 849 679 882T567 915Q495 915 427 894T289 +838L190 1040Q274 1087 376 1114T590 1141Q799 1141 910 1043T1022 745V0H809ZM719 518L618 514Q557 512 515 498T448 461T411 405T399 332Q399 262 433 233T522 203Q564 203 600 217T662 260T704 330T719 426V518ZM801 1496Q750 1530 695 1573T588 1672Q534 1616 +482 1573T379 1496H176V1523Q202 1552 233 1590T297 1668T360 1749T412 1824H768Q789 1790 819 1750T881 1669T946 1590T1004 1523V1496H801Z" /> +<glyph unicode="&#xe3;" glyph-name="atilde" horiz-adv-x="1176" d="M809 0L750 152H741Q708 107 675 75T603 21T516 -10T403 -20Q335 -20 277 1T177 66T110 176T86 334Q86 512 200 596T541 690L719 696V780Q719 849 679 882T567 915Q495 915 427 894T289 838L190 +1040Q274 1087 376 1114T590 1141Q799 1141 910 1043T1022 745V0H809ZM719 518L618 514Q557 512 515 498T448 461T411 405T399 332Q399 262 433 233T522 203Q564 203 600 217T662 260T704 330T719 426V518ZM681 1346Q650 1346 632 1320T601 1239H452Q458 1319 478 +1377T530 1473T607 1529T704 1548Q745 1548 784 1532T861 1497T937 1461T1011 1444Q1042 1444 1060 1470T1091 1550H1240Q1234 1471 1214 1413T1160 1317T1084 1260T988 1241Q948 1241 908 1257T830 1293T755 1329T681 1346Z" /> +<glyph unicode="&#xe4;" glyph-name="adieresis" horiz-adv-x="1176" d="M809 0L750 152H741Q708 107 675 75T603 21T516 -10T403 -20Q335 -20 277 1T177 66T110 176T86 334Q86 512 200 596T541 690L719 696V780Q719 849 679 882T567 915Q495 915 427 894T289 +838L190 1040Q274 1087 376 1114T590 1141Q799 1141 910 1043T1022 745V0H809ZM719 518L618 514Q557 512 515 498T448 461T411 405T399 332Q399 262 433 233T522 203Q564 203 600 217T662 260T704 330T719 426V518ZM254 1405Q254 1440 265 1465T294 1507T338 1532T393 +1540Q422 1540 447 1532T492 1508T522 1466T534 1405Q534 1371 523 1346T492 1305T448 1280T393 1272Q364 1272 339 1280T295 1304T265 1346T254 1405ZM657 1405Q657 1440 668 1465T698 1507T743 1532T799 1540Q827 1540 852 1532T897 1508T928 1466T940 1405Q940 +1371 929 1346T898 1305T853 1280T799 1272Q739 1272 698 1305T657 1405Z" /> +<glyph unicode="&#xe5;" glyph-name="aring" horiz-adv-x="1176" d="M809 0L750 152H741Q708 107 675 75T603 21T516 -10T403 -20Q335 -20 277 1T177 66T110 176T86 334Q86 512 200 596T541 690L719 696V780Q719 849 679 882T567 915Q495 915 427 894T289 838L190 +1040Q274 1087 376 1114T590 1141Q799 1141 910 1043T1022 745V0H809ZM719 518L618 514Q557 512 515 498T448 461T411 405T399 332Q399 262 433 233T522 203Q564 203 600 217T662 260T704 330T719 426V518ZM842 1479Q842 1423 823 1379T769 1303T688 1256T588 1239Q533 +1239 487 1255T409 1302T358 1377T340 1477Q340 1532 358 1576T408 1650T487 1697T588 1714Q641 1714 687 1698T767 1651T822 1577T842 1479ZM684 1477Q684 1522 657 1547T588 1573Q546 1573 519 1548T492 1477Q492 1432 516 1406T588 1380Q630 1380 657 1406T684 +1477Z" /> +<glyph unicode="&#xe6;" glyph-name="ae" horiz-adv-x="1806" d="M1268 -20Q1137 -20 1030 30T854 186Q811 132 769 94T678 30T568 -8T424 -20Q356 -20 295 1T187 66T113 176T86 334Q86 512 200 596T541 690L719 696V780Q719 849 679 882T567 915Q495 915 427 +894T289 838L190 1040Q274 1087 376 1114T590 1141Q804 1141 913 1010Q1039 1139 1227 1139Q1338 1139 1427 1106T1579 1007T1674 848T1708 631V483H1026Q1028 419 1046 368T1098 281T1179 226T1288 207Q1382 207 1469 228T1645 295V59Q1605 38 1565 24T1479 -1T1382 +-15T1268 -20ZM719 518L618 514Q557 512 515 498T448 461T411 405T399 332Q399 262 433 233T522 203Q564 203 600 217T662 260T704 330T719 426V518ZM1229 922Q1147 922 1094 865T1032 686H1421Q1420 737 1408 780T1373 854T1313 904T1229 922Z" /> +<glyph unicode="&#xe7;" glyph-name="ccedilla" horiz-adv-x="1022" d="M625 -20Q505 -20 409 13T244 115T139 293T102 553Q102 720 139 832T245 1013T410 1110T625 1139Q711 1139 796 1118T956 1059L868 827Q802 856 741 874T625 893Q514 893 464 809T414 555Q414 +387 464 307T621 227Q708 227 779 249T924 307V53Q887 35 852 21T782 -2T708 -15T625 -20ZM778 -250Q778 -307 763 -352T711 -428T616 -475T469 -492Q424 -492 388 -486T323 -471V-303Q338 -307 356 -310T394 -317T432 -322T466 -324Q495 -324 516 -311T538 -262Q538 +-225 501 -197T372 -154L450 0H643L616 -61Q647 -71 676 -88T727 -128T764 -182T778 -250Z" /> +<glyph unicode="&#xe8;" glyph-name="egrave" horiz-adv-x="1190" d="M612 922Q531 922 478 865T416 686H805Q804 737 792 780T756 854T696 904T612 922ZM651 -20Q531 -20 430 15T256 120T143 298T102 551Q102 698 139 808T242 991T402 1102T610 1139Q721 1139 +810 1106T962 1007T1058 848T1092 631V483H410Q412 419 430 368T482 281T563 226T672 207Q723 207 768 212T857 229T942 256T1028 295V59Q988 38 948 24T862 -1T765 -15T651 -20ZM834 1241Q800 1269 753 1310T659 1396T575 1480T521 1548V1569H863Q879 1535 900 +1495T945 1414T992 1335T1037 1268V1241H834Z" /> +<glyph unicode="&#xe9;" glyph-name="eacute" horiz-adv-x="1190" d="M612 922Q531 922 478 865T416 686H805Q804 737 792 780T756 854T696 904T612 922ZM651 -20Q531 -20 430 15T256 120T143 298T102 551Q102 698 139 808T242 991T402 1102T610 1139Q721 1139 +810 1106T962 1007T1058 848T1092 631V483H410Q412 419 430 368T482 281T563 226T672 207Q723 207 768 212T857 229T942 256T1028 295V59Q988 38 948 24T862 -1T765 -15T651 -20ZM447 1241V1268Q468 1297 492 1335T539 1413T584 1494T621 1569H963V1548Q952 1530 +931 1506T883 1453T825 1396T763 1338T702 1285T650 1241H447Z" /> +<glyph unicode="&#xea;" glyph-name="ecircumflex" horiz-adv-x="1190" d="M612 922Q531 922 478 865T416 686H805Q804 737 792 780T756 854T696 904T612 922ZM651 -20Q531 -20 430 15T256 120T143 298T102 551Q102 698 139 808T242 991T402 1102T610 1139Q721 +1139 810 1106T962 1007T1058 848T1092 631V483H410Q412 419 430 368T482 281T563 226T672 207Q723 207 768 212T857 229T942 256T1028 295V59Q988 38 948 24T862 -1T765 -15T651 -20ZM819 1241Q768 1275 713 1318T606 1417Q552 1361 500 1318T397 1241H194V1268Q220 +1297 251 1335T315 1413T378 1494T430 1569H786Q807 1535 837 1495T899 1414T964 1335T1022 1268V1241H819Z" /> +<glyph unicode="&#xeb;" glyph-name="edieresis" horiz-adv-x="1190" d="M612 922Q531 922 478 865T416 686H805Q804 737 792 780T756 854T696 904T612 922ZM651 -20Q531 -20 430 15T256 120T143 298T102 551Q102 698 139 808T242 991T402 1102T610 1139Q721 1139 +810 1106T962 1007T1058 848T1092 631V483H410Q412 419 430 368T482 281T563 226T672 207Q723 207 768 212T857 229T942 256T1028 295V59Q988 38 948 24T862 -1T765 -15T651 -20ZM266 1405Q266 1440 277 1465T306 1507T350 1532T405 1540Q434 1540 459 1532T504 +1508T534 1466T546 1405Q546 1371 535 1346T504 1305T460 1280T405 1272Q376 1272 351 1280T307 1304T277 1346T266 1405ZM669 1405Q669 1440 680 1465T710 1507T755 1532T811 1540Q839 1540 864 1532T909 1508T940 1466T952 1405Q952 1371 941 1346T910 1305T865 +1280T811 1272Q751 1272 710 1305T669 1405Z" /> +<glyph unicode="&#xec;" glyph-name="igrave" horiz-adv-x="625" d="M465 0H160V1118H465V0ZM269 1241Q235 1269 188 1310T94 1396T10 1480T-44 1548V1569H298Q314 1535 335 1495T380 1414T427 1335T472 1268V1241H269Z" /> +<glyph unicode="&#xed;" glyph-name="iacute" horiz-adv-x="625" d="M465 0H160V1118H465V0ZM145 1241V1268Q166 1297 190 1335T237 1413T282 1494T319 1569H661V1548Q650 1530 629 1506T581 1453T523 1396T461 1338T400 1285T348 1241H145Z" /> +<glyph unicode="&#xee;" glyph-name="icircumflex" horiz-adv-x="625" d="M465 0H160V1118H465V0ZM521 1241Q470 1275 415 1318T308 1417Q254 1361 202 1318T99 1241H-104V1268Q-78 1297 -47 1335T17 1413T80 1494T132 1569H488Q509 1535 539 1495T601 1414T666 +1335T724 1268V1241H521Z" /> +<glyph unicode="&#xef;" glyph-name="idieresis" horiz-adv-x="625" d="M465 0H160V1118H465V0ZM-32 1405Q-32 1440 -21 1465T8 1507T52 1532T107 1540Q136 1540 161 1532T206 1508T236 1466T248 1405Q248 1371 237 1346T206 1305T162 1280T107 1272Q78 1272 53 +1280T9 1304T-21 1346T-32 1405ZM371 1405Q371 1440 382 1465T412 1507T457 1532T513 1540Q541 1540 566 1532T611 1508T642 1466T654 1405Q654 1371 643 1346T612 1305T567 1280T513 1272Q453 1272 412 1305T371 1405Z" /> +<glyph unicode="&#xf0;" glyph-name="eth" horiz-adv-x="1182" d="M457 1309Q423 1330 384 1354T303 1401L399 1571Q472 1537 536 1503T657 1430L883 1569L983 1415L809 1309Q881 1240 935 1162T1024 993T1078 798T1096 573Q1096 431 1060 321T957 135T795 20T582 +-20Q471 -20 378 14T218 113T112 272T74 489Q74 611 106 705T197 863T337 961T516 995Q612 995 680 964T780 883L801 885Q773 973 723 1050T606 1184L375 1040L274 1196L457 1309ZM784 532Q784 579 773 622T737 698T675 750T586 770Q478 770 432 700T385 487Q385 +424 396 372T432 283T495 226T586 205Q692 205 738 286T784 532Z" /> +<glyph unicode="&#xf1;" glyph-name="ntilde" horiz-adv-x="1284" d="M1130 0H825V653Q825 774 789 834T672 895Q612 895 572 871T509 800T475 684T465 526V0H160V1118H393L434 975H451Q475 1018 509 1049T585 1100T672 1129T766 1139Q848 1139 915 1116T1030 +1042T1104 915T1130 729V0ZM477 1346Q446 1346 428 1320T397 1239H248Q254 1319 274 1377T326 1473T403 1529T500 1548Q541 1548 580 1532T657 1497T733 1461T807 1444Q838 1444 856 1470T887 1550H1036Q1030 1471 1010 1413T956 1317T880 1260T784 1241Q744 1241 +704 1257T626 1293T551 1329T477 1346Z" /> +<glyph unicode="&#xf2;" glyph-name="ograve" horiz-adv-x="1227" d="M414 561Q414 394 461 310T614 225Q719 225 766 310T813 561Q813 728 766 810T612 893Q507 893 461 811T414 561ZM1124 561Q1124 421 1089 313T987 131T825 19T610 -20Q499 -20 406 18T246 +131T140 313T102 561Q102 700 137 808T239 989T401 1101T616 1139Q727 1139 820 1101T980 990T1086 808T1124 561ZM841 1241Q807 1269 760 1310T666 1396T582 1480T528 1548V1569H870Q886 1535 907 1495T952 1414T999 1335T1044 1268V1241H841Z" /> +<glyph unicode="&#xf3;" glyph-name="oacute" horiz-adv-x="1227" d="M414 561Q414 394 461 310T614 225Q719 225 766 310T813 561Q813 728 766 810T612 893Q507 893 461 811T414 561ZM1124 561Q1124 421 1089 313T987 131T825 19T610 -20Q499 -20 406 18T246 +131T140 313T102 561Q102 700 137 808T239 989T401 1101T616 1139Q727 1139 820 1101T980 990T1086 808T1124 561ZM434 1241V1268Q455 1297 479 1335T526 1413T571 1494T608 1569H950V1548Q939 1530 918 1506T870 1453T812 1396T750 1338T689 1285T637 1241H434Z" +/> +<glyph unicode="&#xf4;" glyph-name="ocircumflex" horiz-adv-x="1227" d="M414 561Q414 394 461 310T614 225Q719 225 766 310T813 561Q813 728 766 810T612 893Q507 893 461 811T414 561ZM1124 561Q1124 421 1089 313T987 131T825 19T610 -20Q499 -20 406 18T246 +131T140 313T102 561Q102 700 137 808T239 989T401 1101T616 1139Q727 1139 820 1101T980 990T1086 808T1124 561ZM821 1241Q770 1275 715 1318T608 1417Q554 1361 502 1318T399 1241H196V1268Q222 1297 253 1335T317 1413T380 1494T432 1569H788Q809 1535 839 +1495T901 1414T966 1335T1024 1268V1241H821Z" /> +<glyph unicode="&#xf5;" glyph-name="otilde" horiz-adv-x="1227" d="M414 561Q414 394 461 310T614 225Q719 225 766 310T813 561Q813 728 766 810T612 893Q507 893 461 811T414 561ZM1124 561Q1124 421 1089 313T987 131T825 19T610 -20Q499 -20 406 18T246 +131T140 313T102 561Q102 700 137 808T239 989T401 1101T616 1139Q727 1139 820 1101T980 990T1086 808T1124 561ZM444 1346Q413 1346 395 1320T364 1239H215Q221 1319 241 1377T293 1473T370 1529T467 1548Q508 1548 547 1532T624 1497T700 1461T774 1444Q805 +1444 823 1470T854 1550H1003Q997 1471 977 1413T923 1317T847 1260T751 1241Q711 1241 671 1257T593 1293T518 1329T444 1346Z" /> +<glyph unicode="&#xf6;" glyph-name="odieresis" horiz-adv-x="1227" d="M414 561Q414 394 461 310T614 225Q719 225 766 310T813 561Q813 728 766 810T612 893Q507 893 461 811T414 561ZM1124 561Q1124 421 1089 313T987 131T825 19T610 -20Q499 -20 406 18T246 +131T140 313T102 561Q102 700 137 808T239 989T401 1101T616 1139Q727 1139 820 1101T980 990T1086 808T1124 561ZM266 1405Q266 1440 277 1465T306 1507T350 1532T405 1540Q434 1540 459 1532T504 1508T534 1466T546 1405Q546 1371 535 1346T504 1305T460 1280T405 +1272Q376 1272 351 1280T307 1304T277 1346T266 1405ZM669 1405Q669 1440 680 1465T710 1507T755 1532T811 1540Q839 1540 864 1532T909 1508T940 1466T952 1405Q952 1371 941 1346T910 1305T865 1280T811 1272Q751 1272 710 1305T669 1405Z" /> +<glyph unicode="&#xf7;" glyph-name="divide" horiz-adv-x="1128" d="M88 612V831H1040V612H88ZM424 373Q424 415 435 444T465 490T509 516T563 524Q591 524 616 516T660 491T690 444T702 373Q702 333 691 304T660 257T616 230T563 221Q535 221 510 229T465 256T435 +304T424 373ZM424 1071Q424 1113 435 1142T465 1189T509 1215T563 1223Q591 1223 616 1215T660 1189T690 1142T702 1071Q702 1031 691 1003T660 956T616 929T563 920Q535 920 510 928T465 955T435 1002T424 1071Z" /> +<glyph unicode="&#xf8;" glyph-name="oslash" horiz-adv-x="1227" d="M1124 561Q1124 421 1089 313T987 131T825 19T610 -20Q553 -20 501 -10T401 18L344 -76L182 14L250 125Q181 199 142 308T102 561Q102 700 137 808T239 989T401 1101T616 1139Q678 1139 735 +1126T844 1090L893 1169L1053 1073L991 975Q1054 903 1089 799T1124 561ZM414 561Q414 475 426 410L709 868Q669 893 612 893Q507 893 461 811T414 561ZM813 561Q813 625 807 674L539 240Q556 232 574 229T614 225Q719 225 766 310T813 561Z" /> +<glyph unicode="&#xf9;" glyph-name="ugrave" horiz-adv-x="1284" d="M891 0L850 143H834Q809 100 775 70T699 19T612 -10T518 -20Q436 -20 369 3T254 77T180 204T154 389V1118H459V465Q459 344 495 284T612 223Q672 223 712 247T775 318T809 434T819 592V1118H1124V0H891ZM839 +1241Q805 1269 758 1310T664 1396T580 1480T526 1548V1569H868Q884 1535 905 1495T950 1414T997 1335T1042 1268V1241H839Z" /> +<glyph unicode="&#xfa;" glyph-name="uacute" horiz-adv-x="1284" d="M891 0L850 143H834Q809 100 775 70T699 19T612 -10T518 -20Q436 -20 369 3T254 77T180 204T154 389V1118H459V465Q459 344 495 284T612 223Q672 223 712 247T775 318T809 434T819 592V1118H1124V0H891ZM461 +1241V1268Q482 1297 506 1335T553 1413T598 1494T635 1569H977V1548Q966 1530 945 1506T897 1453T839 1396T777 1338T716 1285T664 1241H461Z" /> +<glyph unicode="&#xfb;" glyph-name="ucircumflex" horiz-adv-x="1284" d="M891 0L850 143H834Q809 100 775 70T699 19T612 -10T518 -20Q436 -20 369 3T254 77T180 204T154 389V1118H459V465Q459 344 495 284T612 223Q672 223 712 247T775 318T809 434T819 592V1118H1124V0H891ZM842 +1241Q791 1275 736 1318T629 1417Q575 1361 523 1318T420 1241H217V1268Q243 1297 274 1335T338 1413T401 1494T453 1569H809Q830 1535 860 1495T922 1414T987 1335T1045 1268V1241H842Z" /> +<glyph unicode="&#xfc;" glyph-name="udieresis" horiz-adv-x="1284" d="M891 0L850 143H834Q809 100 775 70T699 19T612 -10T518 -20Q436 -20 369 3T254 77T180 204T154 389V1118H459V465Q459 344 495 284T612 223Q672 223 712 247T775 318T809 434T819 592V1118H1124V0H891ZM295 +1405Q295 1440 306 1465T335 1507T379 1532T434 1540Q463 1540 488 1532T533 1508T563 1466T575 1405Q575 1371 564 1346T533 1305T489 1280T434 1272Q405 1272 380 1280T336 1304T306 1346T295 1405ZM698 1405Q698 1440 709 1465T739 1507T784 1532T840 1540Q868 +1540 893 1532T938 1508T969 1466T981 1405Q981 1371 970 1346T939 1305T894 1280T840 1272Q780 1272 739 1305T698 1405Z" /> +<glyph unicode="&#xfd;" glyph-name="yacute" horiz-adv-x="1104" d="M0 1118H334L514 489Q530 437 537 378T547 272H553Q555 295 558 323T567 380T578 437T592 489L768 1118H1104L662 -143Q600 -320 493 -406T225 -492Q173 -492 135 -487T70 -475V-233Q91 -238 +123 -242T190 -246Q238 -246 272 -233T330 -197T372 -140T403 -66L422 -10L0 1118ZM393 1241V1268Q414 1297 438 1335T485 1413T530 1494T567 1569H909V1548Q898 1530 877 1506T829 1453T771 1396T709 1338T648 1285T596 1241H393Z" /> +<glyph unicode="&#xfe;" glyph-name="thorn" horiz-adv-x="1245" d="M465 973Q485 1008 512 1038T576 1090T656 1126T756 1139Q842 1139 913 1102T1035 992T1114 811T1143 561Q1143 418 1115 310T1036 128T914 17T756 -20Q701 -20 656 -10T576 20T513 64T465 117H451Q454 +85 458 55Q461 29 463 3T465 -39V-492H160V1556H465V1165Q465 1141 463 1108T458 1045Q454 1010 451 973H465ZM653 895Q602 895 567 877T509 821T477 728T465 596V563Q465 482 474 419T506 314T564 249T655 227Q746 227 788 313T831 565Q831 730 789 812T653 895Z" +/> +<glyph unicode="&#xff;" glyph-name="ydieresis" horiz-adv-x="1104" d="M0 1118H334L514 489Q530 437 537 378T547 272H553Q555 295 558 323T567 380T578 437T592 489L768 1118H1104L662 -143Q600 -320 493 -406T225 -492Q173 -492 135 -487T70 -475V-233Q91 +-238 123 -242T190 -246Q238 -246 272 -233T330 -197T372 -140T403 -66L422 -10L0 1118ZM466 1405Q466 1440 477 1465T506 1507T550 1532T605 1540Q634 1540 659 1532T704 1508T734 1466T746 1405Q746 1371 735 1346T704 1305T660 1280T605 1272Q576 1272 551 1280T507 +1304T477 1346T466 1405ZM869 1405Q869 1440 880 1465T910 1507T955 1532T1011 1540Q1039 1540 1064 1532T1109 1508T1140 1466T1152 1405Q1152 1371 1141 1346T1110 1305T1065 1280T1011 1272Q951 1272 910 1305T869 1405Z" /> +<glyph unicode="&#x2013;" glyph-name="endash" horiz-adv-x="1024" d="M82 436V666H942V436H82Z" /> +<glyph unicode="&#x2014;" glyph-name="emdash" horiz-adv-x="2048" d="M82 436V666H1966V436H82Z" /> +<glyph unicode="&#x2018;" glyph-name="quoteleft" horiz-adv-x="440" d="M37 961L23 983Q37 1037 56 1098T99 1221T148 1344T199 1462H418Q403 1401 389 1335T361 1204T336 1076T317 961H37Z" /> +<glyph unicode="&#x2019;" glyph-name="quoteright" horiz-adv-x="440" d="M403 1462L418 1440Q404 1385 385 1325T342 1202T293 1078T242 961H23Q37 1021 51 1087T79 1219T104 1347T123 1462H403Z" /> +<glyph unicode="&#x201a;" glyph-name="quotesinglbase" horiz-adv-x="594" d="M459 215Q445 161 426 100T383 -23T334 -146T283 -264H63Q78 -203 92 -137T120 -6T145 122T164 238H444L459 215Z" /> +<glyph unicode="&#x201c;" glyph-name="quotedblleft" horiz-adv-x="907" d="M489 983Q503 1037 523 1098T566 1221T615 1344T666 1462H885Q870 1401 856 1335T828 1204T803 1076T784 961H504L489 983ZM23 983Q37 1037 56 1098T99 1221T148 1344T199 1462H418Q403 +1401 389 1335T361 1204T336 1076T317 961H37L23 983Z" /> +<glyph unicode="&#x201d;" glyph-name="quotedblright" horiz-adv-x="907" d="M418 1440Q404 1385 385 1325T342 1202T293 1078T242 961H23Q37 1021 51 1087T79 1219T104 1347T123 1462H403L418 1440ZM885 1440Q871 1385 852 1325T809 1202T760 1078T709 961H489Q504 +1021 518 1087T546 1219T571 1347T590 1462H870L885 1440Z" /> +<glyph unicode="&#x201e;" glyph-name="quotedblbase" horiz-adv-x="1061" d="M459 215Q445 161 426 100T383 -23T334 -146T283 -264H63Q78 -203 92 -137T120 -6T145 122T164 238H444L459 215ZM926 215Q912 161 893 100T850 -23T801 -146T750 -264H530Q545 -203 +559 -137T587 -6T612 122T631 238H911L926 215Z" /> +<glyph unicode="&#x2022;" glyph-name="bullet" horiz-adv-x="770" d="M98 748Q98 834 120 894T180 992T271 1047T385 1065Q444 1065 496 1048T588 992T649 894T672 748Q672 663 650 603T588 505T497 448T385 430Q324 430 272 448T181 504T120 603T98 748Z" /> +<glyph unicode="&#x2039;" glyph-name="guilsinglleft" horiz-adv-x="692" d="M82 573L391 1028L610 909L393 561L610 213L391 94L82 547V573Z" /> +<glyph unicode="&#x203a;" glyph-name="guilsinglright" horiz-adv-x="692" d="M610 547L301 94L82 213L299 561L82 909L301 1028L610 573V547Z" /> +</font> +</defs> +</svg> diff --git a/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-700.ttf b/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-700.ttf new file mode 100644 index 0000000000000000000000000000000000000000..15896c441fd59e5c2e9bdab90816661de06cdcba GIT binary patch literal 40513 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 literal 0 HcmV?d00001 diff --git a/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-700.woff b/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-700.woff new file mode 100644 index 0000000000000000000000000000000000000000..67e3e25f8362c71003430d52894260cd4c69413a GIT binary patch literal 25992 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 literal 0 HcmV?d00001 diff --git a/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-700.woff2 b/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-700.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1e726a7cfce4130243a3de4bb2bd412000658896 GIT binary patch literal 11480 zcmV;}EGN@<Pew8T0RR9104&%54gdfE09!-=04#w30RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-regular.eot b/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..ac2698e85aee584b0f47c0cccff8a8b9b16a5c66 GIT binary patch literal 22008 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%0AA9nOF`EcNA#X$~6CRi6AAT-xXx{3Bx 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 M4w+BmWsNjR(0tp4%K!iX literal 0 HcmV?d00001 diff --git a/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-regular.svg b/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-regular.svg new file mode 100644 index 0000000000..d9f2a214f9 --- /dev/null +++ b/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-regular.svg @@ -0,0 +1,403 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg xmlns="http://www.w3.org/2000/svg"> +<defs > +<font id="DroidSans" horiz-adv-x="1062" ><font-face + font-family="Droid Sans" + units-per-em="2048" + panose-1="2 11 6 6 3 8 4 2 2 4" + ascent="1907" + descent="-492" + alphabetic="0" /> +<glyph unicode=" " glyph-name="space" horiz-adv-x="532" /> +<glyph unicode="!" glyph-name="exclam" horiz-adv-x="551" d="M336 414H215L164 1462H387L336 414ZM147 111Q147 149 157 175T184 218T224 242T274 250Q300 250 323 243T364 219T391 176T401 111Q401 74 391 48T364 4T324 -21T274 -29Q247 -29 224 -21T184 4T157 +47T147 111Z" /> +<glyph unicode="&quot;" glyph-name="quotedbl" horiz-adv-x="823" d="M330 1462L289 934H174L133 1462H330ZM690 1462L649 934H535L494 1462H690Z" /> +<glyph unicode="#" glyph-name="numbersign" horiz-adv-x="1323" d="M983 893L920 565H1200V428H893L811 0H664L748 428H457L375 0H231L309 428H51V565H336L401 893H127V1030H426L508 1462H655L573 1030H866L950 1462H1094L1010 1030H1272V893H983ZM483 565H774L838 +893H547L483 565Z" /> +<glyph unicode="$" glyph-name="dollar" horiz-adv-x="1128" d="M985 446Q985 376 960 319T889 220T776 151T625 111V-119H487V102Q437 102 386 106T287 120T197 142T123 172V344Q156 328 199 312T291 282T389 261T487 252V686Q398 716 333 749T224 824T160 922T139 +1051Q139 1118 163 1173T233 1270T343 1338T487 1374V1554H625V1378Q725 1373 809 1352T961 1300L895 1155Q839 1180 769 1200T625 1227V805Q713 774 780 741T893 667T962 572T985 446ZM809 446Q809 479 799 506T768 556T711 598T625 635V262Q718 276 763 325T809 +446ZM315 1049Q315 1013 323 985T352 933T405 890T487 854V1223Q398 1207 357 1163T315 1049Z" /> +<glyph unicode="%" glyph-name="percent" horiz-adv-x="1690" d="M250 1026Q250 861 285 779T401 696Q557 696 557 1026Q557 1354 401 1354Q321 1354 286 1273T250 1026ZM705 1026Q705 918 687 832T632 687T538 597T401 565Q328 565 272 596T178 687T121 832T102 +1026Q102 1134 119 1219T173 1362T266 1452T401 1483Q476 1483 532 1452T627 1363T685 1219T705 1026ZM1133 440Q1133 275 1168 193T1284 111Q1440 111 1440 440Q1440 768 1284 768Q1204 768 1169 687T1133 440ZM1587 440Q1587 332 1570 247T1515 102T1421 12T1284 +-20Q1210 -20 1154 11T1061 102T1004 246T985 440Q985 548 1002 633T1056 776T1149 866T1284 897Q1359 897 1415 866T1510 777T1567 633T1587 440ZM1331 1462L520 0H362L1174 1462H1331Z" /> +<glyph unicode="&amp;" glyph-name="ampersand" horiz-adv-x="1438" d="M422 1165Q422 1131 430 1099T454 1034T497 968T559 897Q618 932 661 963T732 1026T774 1093T788 1169Q788 1205 776 1235T740 1288T683 1322T608 1335Q522 1335 472 1291T422 1165ZM557 +141Q615 141 664 152T755 184T833 231T901 289L514 696Q462 663 422 632T355 564T313 486T299 387Q299 333 316 288T367 210T448 159T557 141ZM109 381Q109 459 129 520T187 631T281 724T408 809Q377 845 347 883T295 965T258 1058T244 1165Q244 1240 269 1299T341 +1400T457 1463T614 1485Q697 1485 762 1464T873 1401T943 1300T967 1165Q967 1101 942 1047T875 946T779 860T664 784L1016 412Q1043 441 1064 471T1103 535T1133 608T1157 694H1341Q1326 628 1306 573T1259 468T1200 377T1128 293L1405 0H1180L1012 172Q963 127 +915 92T813 32T697 -6T557 -20Q452 -20 369 6T228 84T140 210T109 381Z" /> +<glyph unicode="&apos;" glyph-name="quotesingle" horiz-adv-x="463" d="M330 1462L289 934H174L133 1462H330Z" /> +<glyph unicode="(" glyph-name="parenleft" horiz-adv-x="616" d="M82 561Q82 686 100 807T155 1043T248 1263T383 1462H555Q415 1269 343 1038T270 563Q270 444 288 326T342 95T431 -124T553 -324H383Q305 -234 249 -131T155 84T100 317T82 561Z" /> +<glyph unicode=")" glyph-name="parenright" horiz-adv-x="616" d="M535 561Q535 437 517 317T462 85T368 -131T233 -324H63Q132 -230 185 -124T274 95T328 326T346 563Q346 807 274 1038T61 1462H233Q311 1369 367 1264T461 1044T517 808T535 561Z" /> +<glyph unicode="*" glyph-name="asterisk" horiz-adv-x="1128" d="M664 1556L621 1163L1018 1274L1044 1081L666 1053L911 727L733 631L557 989L399 631L215 727L457 1053L82 1081L111 1274L502 1163L459 1556H664Z" /> +<glyph unicode="+" glyph-name="plus" horiz-adv-x="1128" d="M489 647H102V797H489V1186H639V797H1026V647H639V262H489V647Z" /> +<glyph unicode="," glyph-name="comma" horiz-adv-x="512" d="M362 238L377 215Q363 161 344 100T301 -23T252 -146T201 -264H63Q78 -203 92 -137T120 -6T145 122T164 238H362Z" /> +<glyph unicode="-" glyph-name="hyphen" horiz-adv-x="659" d="M82 465V633H578V465H82Z" /> +<glyph unicode="." glyph-name="period" horiz-adv-x="549" d="M147 111Q147 149 157 175T184 218T224 242T274 250Q300 250 323 243T364 219T391 176T401 111Q401 74 391 48T364 4T324 -21T274 -29Q247 -29 224 -21T184 4T157 47T147 111Z" /> +<glyph unicode="/" glyph-name="slash" horiz-adv-x="764" d="M743 1462L199 0H20L565 1462H743Z" /> +<glyph unicode="0" glyph-name="zero" horiz-adv-x="1128" d="M1032 733Q1032 556 1007 416T925 179T779 31T563 -20Q445 -20 358 31T213 179T127 416T98 733Q98 910 123 1050T204 1286T348 1434T563 1485Q682 1485 770 1435T916 1288T1003 1051T1032 733ZM283 +733Q283 583 298 471T346 285T432 173T563 135Q640 135 694 172T782 283T832 469T848 733Q848 883 833 995T783 1181T694 1292T563 1329Q486 1329 433 1292T346 1181T298 995T283 733Z" /> +<glyph unicode="1" glyph-name="one" horiz-adv-x="1128" d="M711 0H535V913Q535 956 535 1005T537 1102T540 1195T543 1274Q526 1256 513 1243T487 1218T458 1193T422 1161L274 1040L178 1163L561 1462H711V0Z" /> +<glyph unicode="2" glyph-name="two" horiz-adv-x="1128" d="M1008 0H96V156L446 537Q521 618 580 685T680 816T744 944T766 1085Q766 1144 749 1189T701 1265T626 1313T530 1329Q435 1329 359 1291T213 1192L111 1311Q151 1347 197 1378T296 1433T408 1469T532 +1483Q628 1483 705 1456T837 1379T920 1256T950 1092Q950 1007 924 930T851 779T740 629T600 473L319 174V166H1008V0Z" /> +<glyph unicode="3" glyph-name="three" horiz-adv-x="1128" d="M961 1120Q961 1047 938 987T874 883T774 811T645 770V764Q822 742 914 652T1006 416Q1006 320 974 240T875 102T708 12T469 -20Q360 -20 264 -3T82 59V229Q169 183 270 158T465 133Q557 133 624 +153T734 210T798 301T819 422Q819 490 793 538T717 618T598 665T438 680H305V831H438Q519 831 582 851T687 908T752 996T774 1108Q774 1160 756 1201T705 1270T626 1314T524 1329Q417 1329 336 1296T180 1208L88 1333Q126 1364 172 1391T274 1438T391 1471T524 +1483Q632 1483 713 1456T850 1381T933 1266T961 1120Z" /> +<glyph unicode="4" glyph-name="four" horiz-adv-x="1128" d="M1087 328H874V0H698V328H23V487L686 1470H874V494H1087V328ZM698 494V850Q698 906 699 967T703 1087T707 1197T711 1282H702Q695 1262 685 1238T662 1189T636 1141T612 1102L201 494H698Z" /> +<glyph unicode="5" glyph-name="five" horiz-adv-x="1128" d="M545 897Q644 897 729 870T878 788T978 654T1014 469Q1014 355 980 264T879 110T714 14T487 -20Q436 -20 387 -15T292 -1T205 24T131 59V231Q164 208 208 190T302 160T400 142T492 135Q571 135 633 +153T738 211T804 309T827 449Q827 592 739 667T483 743Q456 743 425 741T362 734T302 726T252 717L162 774L217 1462H907V1296H375L336 877Q368 883 420 890T545 897Z" /> +<glyph unicode="6" glyph-name="six" horiz-adv-x="1128" d="M113 625Q113 730 123 834T160 1033T233 1211T350 1353T520 1448T752 1483Q771 1483 794 1482T840 1479T885 1473T924 1464V1309Q889 1321 845 1327T758 1333Q668 1333 600 1312T481 1251T398 1158T343 +1039T312 899T299 745H311Q331 781 359 812T426 866T511 902T618 915Q713 915 790 886T921 799T1004 660T1034 471Q1034 357 1003 266T914 112T774 14T590 -20Q490 -20 403 19T251 138T150 339T113 625ZM588 133Q648 133 697 153T783 215T838 320T858 471Q858 541 +842 596T792 691T710 751T594 772Q527 772 472 749T377 688T317 602T295 506Q295 439 313 373T368 253T460 167T588 133Z" /> +<glyph unicode="7" glyph-name="seven" horiz-adv-x="1128" d="M281 0L844 1296H90V1462H1030V1317L475 0H281Z" /> +<glyph unicode="8" glyph-name="eight" horiz-adv-x="1128" d="M565 1485Q649 1485 723 1463T854 1397T944 1287T977 1133Q977 1066 957 1012T902 915T819 837T715 774Q773 743 828 705T927 620T997 513T1024 381Q1024 289 991 215T897 88T752 8T565 -20Q455 -20 +370 7T226 84T137 208T106 373Q106 448 128 508T189 616T279 701T389 766Q340 797 297 833T223 915T173 1014T154 1135Q154 1222 187 1287T278 1397T409 1463T565 1485ZM285 371Q285 318 301 274T351 198T437 149T561 131Q631 131 684 148T774 198T828 277T846 +379Q846 431 827 473T771 551T683 619T569 682L539 696Q413 636 349 559T285 371ZM563 1333Q457 1333 395 1280T332 1126Q332 1069 349 1028T398 955T472 898T567 848Q615 870 657 896T731 955T781 1030T799 1126Q799 1227 736 1280T563 1333Z" /> +<glyph unicode="9" glyph-name="nine" horiz-adv-x="1128" d="M1028 838Q1028 733 1018 629T981 429T908 252T791 109T621 15T389 -20Q370 -20 347 -19T301 -16T256 -10T217 -2V154Q252 141 296 135T383 129Q518 129 605 176T743 303T815 491T842 717H829Q809 +681 781 650T715 596T629 560T522 547Q427 547 350 576T219 663T136 802T106 991Q106 1105 137 1196T226 1351T366 1449T551 1483Q652 1483 739 1444T890 1325T991 1124T1028 838ZM553 1329Q493 1329 444 1309T358 1247T303 1142T283 991Q283 921 299 866T349 771T431 +711T547 690Q615 690 670 713T764 774T824 860T846 956Q846 1023 828 1089T773 1209T681 1296T553 1329Z" /> +<glyph unicode=":" glyph-name="colon" horiz-adv-x="549" d="M147 111Q147 149 157 175T184 218T224 242T274 250Q300 250 323 243T364 219T391 176T401 111Q401 74 391 48T364 4T324 -21T274 -29Q247 -29 224 -21T184 4T157 47T147 111ZM147 987Q147 1026 157 +1052T184 1095T224 1119T274 1126Q300 1126 323 1119T364 1096T391 1053T401 987Q401 950 391 924T364 881T324 856T274 848Q247 848 224 856T184 881T157 924T147 987Z" /> +<glyph unicode=";" glyph-name="semicolon" horiz-adv-x="549" d="M362 238L377 215Q363 161 344 100T301 -23T252 -146T201 -264H63Q78 -203 92 -137T120 -6T145 122T164 238H362ZM147 987Q147 1026 157 1052T184 1095T224 1119T274 1126Q300 1126 323 1119T364 +1096T391 1053T401 987Q401 950 391 924T364 881T324 856T274 848Q247 848 224 856T184 881T157 924T147 987Z" /> +<glyph unicode="&lt;" glyph-name="less" horiz-adv-x="1128" d="M1026 238L102 662V764L1026 1245V1085L291 721L1026 399V238Z" /> +<glyph unicode="=" glyph-name="equal" horiz-adv-x="1128" d="M102 852V1001H1026V852H102ZM102 442V592H1026V442H102Z" /> +<glyph unicode="&gt;" glyph-name="greater" horiz-adv-x="1128" d="M102 399L838 721L102 1085V1245L1026 764V662L102 238V399Z" /> +<glyph unicode="?" glyph-name="question" horiz-adv-x="872" d="M281 414V451Q281 508 288 554T315 640T368 718T451 799Q499 840 533 873T588 941T620 1015T631 1108Q631 1156 616 1195T573 1263T502 1307T403 1323Q320 1323 245 1297T100 1237L37 1382Q118 +1424 212 1453T403 1483Q496 1483 570 1458T697 1384T777 1267T805 1110Q805 1043 792 991T751 893T684 806T590 717Q538 672 505 639T453 574T427 509T420 432V414H281ZM233 111Q233 149 243 175T270 218T310 242T360 250Q386 250 409 243T450 219T477 176T487 +111Q487 74 477 48T450 4T410 -21T360 -29Q333 -29 310 -21T270 4T243 47T233 111Z" /> +<glyph unicode="@" glyph-name="at" horiz-adv-x="1774" d="M1665 731Q1665 669 1656 607T1628 488T1581 383T1514 298T1428 242T1321 221Q1276 221 1240 236T1177 276T1135 333T1112 401H1108Q1090 364 1063 331T1001 274T921 235T823 221Q746 221 687 249T586 +327T524 449T502 606Q502 707 531 791T616 936T751 1031T928 1065Q973 1065 1018 1061T1104 1050T1179 1035T1237 1018L1214 602Q1213 580 1213 567T1212 545T1212 533T1212 526Q1212 473 1222 439T1250 385T1288 358T1333 350Q1379 350 1414 380T1472 463T1508 +585T1520 733Q1520 875 1477 985T1358 1172T1178 1287T950 1327Q781 1327 652 1272T436 1117T303 881T258 582Q258 431 297 314T413 117T603 -4T864 -45Q925 -45 984 -38T1099 -19T1205 8T1298 41V-100Q1212 -138 1104 -160T866 -182Q687 -182 547 -131T309 17T160 +255T109 575Q109 763 168 925T336 1207T601 1394T950 1462Q1106 1462 1237 1412T1463 1267T1612 1037T1665 731ZM662 602Q662 469 712 410T848 350Q903 350 942 372T1006 436T1044 535T1061 662L1075 915Q1047 923 1009 929T928 936Q854 936 804 907T722 831T676 +724T662 602Z" /> +<glyph unicode="A" glyph-name="A" horiz-adv-x="1245" d="M1055 0L895 453H350L188 0H0L537 1468H707L1245 0H1055ZM836 618L688 1042Q682 1060 674 1086T656 1142T638 1204T621 1268Q614 1237 605 1204T587 1141T570 1085T555 1042L410 618H836Z" /> +<glyph unicode="B" glyph-name="B" horiz-adv-x="1272" d="M199 1462H598Q726 1462 823 1443T986 1380T1085 1266T1118 1092Q1118 1030 1099 976T1042 881T951 813T827 776V766Q896 754 956 732T1062 670T1133 570T1159 424Q1159 324 1127 246T1033 113T883 29T684 +0H199V1462ZM385 842H629Q713 842 770 857T862 901T912 975T928 1079Q928 1199 851 1251T608 1303H385V842ZM385 686V158H651Q739 158 798 178T894 234T947 320T963 432Q963 488 947 535T893 615T793 667T639 686H385Z" /> +<glyph unicode="C" glyph-name="C" horiz-adv-x="1235" d="M793 1319Q686 1319 599 1279T451 1162T356 977T322 731Q322 590 351 481T440 296T587 182T793 143Q882 143 962 160T1120 201V39Q1081 24 1042 13T961 -6T870 -16T762 -20Q598 -20 478 34T280 187T163 +425T125 733Q125 899 168 1037T296 1274T506 1428T793 1483Q901 1483 999 1461T1176 1397L1098 1241Q1035 1273 961 1296T793 1319Z" /> +<glyph unicode="D" glyph-name="D" horiz-adv-x="1401" d="M1276 745Q1276 560 1228 421T1089 188T866 47T565 0H199V1462H606Q759 1462 883 1416T1094 1280T1228 1055T1276 745ZM1079 739Q1079 885 1046 991T950 1167T795 1269T586 1303H385V160H547Q811 160 +945 306T1079 739Z" /> +<glyph unicode="E" glyph-name="E" horiz-adv-x="1081" d="M958 0H199V1462H958V1298H385V846H920V684H385V164H958V0Z" /> +<glyph unicode="F" glyph-name="F" horiz-adv-x="1006" d="M385 0H199V1462H958V1298H385V782H920V618H385V0Z" /> +<glyph unicode="G" glyph-name="G" horiz-adv-x="1413" d="M782 772H1266V55Q1211 37 1155 23T1040 0T916 -15T776 -20Q619 -20 498 32T294 182T168 419T125 733Q125 905 172 1044T311 1280T535 1430T840 1483Q951 1483 1053 1461T1243 1397L1171 1235Q1135 1252 +1094 1267T1008 1293T918 1312T825 1319Q703 1319 609 1279T452 1162T355 977T322 731Q322 601 349 493T437 307T592 186T821 143Q865 143 901 145T969 152T1027 161T1081 172V608H782V772Z" /> +<glyph unicode="H" glyph-name="H" horiz-adv-x="1436" d="M1237 0H1051V682H385V0H199V1462H385V846H1051V1462H1237V0Z" /> +<glyph unicode="I" glyph-name="I" horiz-adv-x="694" d="M612 0H82V102L254 143V1319L82 1360V1462H612V1360L440 1319V143L612 102V0Z" /> +<glyph unicode="J" glyph-name="J" horiz-adv-x="555" d="M-29 -389Q-80 -389 -118 -383T-184 -365V-205Q-150 -214 -111 -219T-27 -225Q10 -225 47 -216T115 -181T165 -112T184 0V1462H371V20Q371 -85 342 -162T260 -289T134 -364T-29 -389Z" /> +<glyph unicode="K" glyph-name="K" horiz-adv-x="1186" d="M1186 0H975L524 698L385 584V0H199V1462H385V731L506 899L958 1462H1167L647 825L1186 0Z" /> +<glyph unicode="L" glyph-name="L" horiz-adv-x="1006" d="M199 0V1462H385V166H958V0H199Z" /> +<glyph unicode="M" glyph-name="M" horiz-adv-x="1782" d="M803 0L360 1280H352Q358 1206 362 1133Q366 1070 368 1001T371 874V0H199V1462H475L887 270H893L1307 1462H1583V0H1397V887Q1397 939 1399 1006T1404 1134Q1408 1205 1411 1278H1403L956 0H803Z" /> +<glyph unicode="N" glyph-name="N" horiz-adv-x="1493" d="M1294 0H1079L360 1210H352Q358 1133 362 1057Q366 992 368 921T371 793V0H199V1462H412L1128 258H1135Q1132 334 1128 408Q1127 440 1126 473T1123 540T1121 605T1120 662V1462H1294V0Z" /> +<glyph unicode="O" glyph-name="O" horiz-adv-x="1520" d="M1393 733Q1393 564 1353 425T1232 187T1034 34T760 -20Q597 -20 478 34T280 187T163 425T125 735Q125 905 163 1043T280 1280T479 1431T762 1485Q917 1485 1034 1432T1232 1280T1352 1043T1393 733ZM322 +733Q322 596 348 487T427 301T563 184T760 143Q874 143 956 183T1092 300T1171 486T1196 733Q1196 871 1171 980T1093 1164T958 1280T762 1321Q648 1321 565 1281T428 1165T348 980T322 733Z" /> +<glyph unicode="P" glyph-name="P" horiz-adv-x="1180" d="M1075 1034Q1075 943 1048 859T957 711T791 608T535 569H385V0H199V1462H561Q695 1462 792 1434T952 1351T1045 1216T1075 1034ZM385 727H514Q607 727 676 743T791 794T860 886T883 1024Q883 1166 801 +1234T545 1303H385V727Z" /> +<glyph unicode="Q" glyph-name="Q" horiz-adv-x="1518" d="M1393 733Q1393 602 1369 489T1297 286T1178 129T1014 25Q1057 -69 1125 -140T1284 -272L1163 -414Q1060 -341 974 -242T836 -16Q819 -18 799 -19T760 -20Q597 -20 478 34T280 187T163 425T125 735Q125 +905 163 1043T280 1280T479 1431T762 1485Q917 1485 1034 1432T1232 1280T1352 1043T1393 733ZM322 733Q322 596 348 487T427 301T563 184T760 143Q874 143 956 183T1092 300T1171 486T1196 733Q1196 871 1171 980T1093 1164T958 1280T762 1321Q648 1321 565 1281T428 +1165T348 980T322 733Z" /> +<glyph unicode="R" glyph-name="R" horiz-adv-x="1208" d="M385 604V0H199V1462H555Q821 1462 948 1359T1075 1047Q1075 960 1051 895T986 784T893 706T786 655L1184 0H965L614 604H385ZM385 762H549Q639 762 702 779T805 831T864 917T883 1038Q883 1110 863 1160T801 +1242T696 1288T545 1303H385V762Z" /> +<glyph unicode="S" glyph-name="S" horiz-adv-x="1063" d="M969 391Q969 294 935 218T836 88T680 8T473 -20Q362 -20 266 -3T104 49V227Q138 211 181 196T273 168T372 149T473 141Q633 141 709 201T786 373Q786 427 772 467T721 540T623 605T469 674Q380 709 315 +750T207 844T144 962T123 1112Q123 1200 155 1269T245 1385T383 1458T561 1483Q680 1483 775 1461T944 1403L877 1247Q812 1276 730 1297T559 1319Q437 1319 370 1263T303 1110Q303 1053 318 1012T368 937T460 874T602 811Q693 775 761 737T876 651T945 540T969 +391Z" /> +<glyph unicode="T" glyph-name="T" horiz-adv-x="1063" d="M625 0H438V1298H20V1462H1042V1298H625V0Z" /> +<glyph unicode="U" glyph-name="U" horiz-adv-x="1430" d="M1245 1464V516Q1245 402 1212 304T1113 134T946 21T709 -20Q581 -20 483 18T319 128T218 298T184 520V1462H371V510Q371 335 457 239T719 143Q808 143 872 170T977 246T1038 363T1059 512V1464H1245Z" /> +<glyph unicode="V" glyph-name="V" horiz-adv-x="1163" d="M965 1462H1163L674 0H487L0 1462H197L492 535Q521 444 542 360T580 201Q595 275 618 359T672 541L965 1462Z" /> +<glyph unicode="W" glyph-name="W" horiz-adv-x="1810" d="M809 1462H1006L1235 606Q1250 550 1264 494T1291 386T1313 286T1329 201Q1333 239 1339 284T1353 378T1370 479T1391 580L1591 1462H1790L1423 0H1235L981 938Q967 989 954 1043T930 1144Q918 1199 907 +1251Q896 1200 885 1145Q875 1098 863 1042T836 932L594 0H406L20 1462H217L440 573Q452 527 462 478T480 379T496 285T508 201Q513 238 520 287T538 390T559 499T584 604L809 1462Z" /> +<glyph unicode="X" glyph-name="X" horiz-adv-x="1120" d="M1120 0H909L555 635L188 0H0L453 764L31 1462H229L561 903L895 1462H1085L664 770L1120 0Z" /> +<glyph unicode="Y" glyph-name="Y" horiz-adv-x="1079" d="M539 723L879 1462H1079L633 569V0H446V559L0 1462H203L539 723Z" /> +<glyph unicode="Z" glyph-name="Z" horiz-adv-x="1104" d="M1022 0H82V145L793 1296H102V1462H1001V1317L291 166H1022V0Z" /> +<glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="621" d="M569 -324H164V1462H569V1313H346V-174H569V-324Z" /> +<glyph unicode="\" glyph-name="backslash" horiz-adv-x="764" d="M201 1462L745 0H567L23 1462H201Z" /> +<glyph unicode="]" glyph-name="bracketright" horiz-adv-x="621" d="M51 -174H274V1313H51V1462H457V-324H51V-174Z" /> +<glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="1090" d="M41 549L500 1473H602L1049 549H888L551 1284L202 549H41Z" /> +<glyph unicode="_" glyph-name="underscore" horiz-adv-x="842" d="M846 -324H-4V-184H846V-324Z" /> +<glyph unicode="`" glyph-name="grave" horiz-adv-x="1182" d="M786 1241H666Q631 1269 590 1310T511 1396T441 1480T393 1548V1569H612Q628 1535 649 1495T694 1414T741 1335T786 1268V1241Z" /> +<glyph unicode="a" glyph-name="a" horiz-adv-x="1087" d="M793 0L756 152H748Q715 107 682 75T610 21T523 -10T412 -20Q343 -20 285 -1T185 59T118 161T94 307Q94 471 209 559T561 655L745 662V731Q745 798 731 843T689 915T621 955T528 967Q445 967 374 943T236 +885L172 1022Q246 1062 337 1090T528 1118Q630 1118 704 1098T827 1033T900 919T924 752V0H793ZM459 127Q520 127 572 146T662 203T721 300T743 438V537L600 530Q510 526 449 510T352 466T299 397T283 305Q283 213 331 170T459 127Z" /> +<glyph unicode="b" glyph-name="b" horiz-adv-x="1200" d="M670 1118Q764 1118 841 1082T972 975T1057 797T1087 551Q1087 410 1057 304T973 125T841 17T670 -20Q611 -20 563 -7T477 27T409 78T356 139H344L307 0H174V1556H356V1180Q356 1145 355 1106T352 1032Q350 +992 348 954H356Q379 989 408 1019T475 1071T562 1105T670 1118ZM635 967Q555 967 502 942T416 864T370 734T356 551Q356 450 369 372T415 240T502 159T637 131Q772 131 835 240T899 553Q899 761 836 864T635 967Z" /> +<glyph unicode="c" glyph-name="c" horiz-adv-x="948" d="M594 -20Q493 -20 405 11T252 111T150 286T113 543Q113 700 151 809T255 987T411 1087T602 1118Q680 1118 754 1101T879 1059L825 905Q802 915 774 924T716 941T657 953T602 958Q445 958 373 858T301 545Q301 +334 373 237T594 139Q675 139 740 157T860 201V39Q806 10 745 -5T594 -20Z" /> +<glyph unicode="d" glyph-name="d" horiz-adv-x="1200" d="M852 147H844Q822 113 793 83T725 29T638 -7T530 -20Q437 -20 360 16T228 123T143 301T113 547Q113 688 143 794T228 973T360 1081T530 1118Q589 1118 637 1105T723 1070T792 1019T844 958H856Q853 992 +850 1023Q848 1049 846 1076T844 1120V1556H1026V0H879L852 147ZM565 131Q641 131 693 154T778 224T826 341T844 506V547Q844 648 831 726T785 858T698 939T563 967Q428 967 365 858T301 545Q301 336 364 234T565 131Z" /> +<glyph unicode="e" glyph-name="e" horiz-adv-x="1096" d="M608 -20Q498 -20 407 17T251 125T149 301T113 541Q113 677 146 784T239 965T382 1079T567 1118Q666 1118 745 1083T879 983T963 828T993 627V514H301Q306 321 382 230T610 139Q661 139 704 144T788 158T867 +182T944 215V53Q904 34 866 20T787 -3T703 -16T608 -20ZM563 967Q449 967 383 889T305 662H797Q797 730 784 786T742 883T669 945T563 967Z" /> +<glyph unicode="f" glyph-name="f" horiz-adv-x="674" d="M651 961H406V0H223V961H29V1036L223 1104V1200Q223 1307 245 1377T310 1490T415 1549T555 1567Q614 1567 663 1556T752 1530L705 1389Q674 1400 638 1408T561 1417Q521 1417 492 1408T444 1374T416 1309T406 +1202V1098H651V961Z" /> +<glyph unicode="g" glyph-name="g" horiz-adv-x="1061" d="M1020 1098V985L823 958Q851 923 870 869T889 745Q889 669 866 605T795 493T677 420T514 393Q492 393 470 393T434 397Q417 387 401 375T371 346T349 310T340 266Q340 239 352 223T384 197T433 185T492 +182H668Q761 182 825 159T929 95T988 1T1006 -115Q1006 -203 974 -273T874 -391T705 -466T463 -492Q356 -492 276 -471T143 -410T64 -314T37 -186Q37 -126 56 -81T109 -2T185 52T276 84Q234 103 207 144T180 238Q180 299 212 343T313 430Q270 448 235 479T175 551T137 +640T123 739Q123 828 148 898T222 1017T344 1092T514 1118Q551 1118 590 1113T657 1098H1020ZM209 -180Q209 -217 222 -249T264 -304T342 -340T463 -354Q649 -354 741 -297T834 -131Q834 -85 822 -56T783 -11T710 12T600 18H424Q389 18 351 10T282 -20T230 -80T209 +-180ZM301 745Q301 630 355 574T508 518Q608 518 659 573T711 748Q711 871 659 929T506 987Q407 987 354 927T301 745Z" /> +<glyph unicode="h" glyph-name="h" horiz-adv-x="1206" d="M860 0V707Q860 837 808 902T643 967Q562 967 507 941T419 864T371 739T356 569V0H174V1556H356V1094L348 950H358Q383 993 417 1024T493 1077T580 1108T674 1118Q857 1118 949 1023T1042 717V0H860Z" /> +<glyph unicode="i" glyph-name="i" horiz-adv-x="530" d="M356 0H174V1098H356V0ZM160 1395Q160 1455 190 1482T266 1509Q288 1509 307 1503T341 1482T364 1447T373 1395Q373 1337 342 1309T266 1280Q221 1280 191 1308T160 1395Z" /> +<glyph unicode="j" glyph-name="j" horiz-adv-x="530" d="M66 -492Q18 -492 -13 -485T-68 -467V-319Q-42 -329 -15 -334T47 -340Q74 -340 97 -333T137 -306T164 -254T174 -170V1098H356V-158Q356 -235 339 -296T286 -401T196 -468T66 -492ZM160 1395Q160 1455 +190 1482T266 1509Q288 1509 307 1503T341 1482T364 1447T373 1395Q373 1337 342 1309T266 1280Q221 1280 191 1308T160 1395Z" /> +<glyph unicode="k" glyph-name="k" horiz-adv-x="1016" d="M342 567L477 737L770 1098H981L580 623L1008 0H799L463 504L354 422V0H174V1556H354V842L338 567H342Z" /> +<glyph unicode="l" glyph-name="l" horiz-adv-x="530" d="M356 0H174V1556H356V0Z" /> +<glyph unicode="m" glyph-name="m" horiz-adv-x="1835" d="M1489 0V707Q1489 837 1439 902T1284 967Q1211 967 1160 944T1077 875T1029 762T1014 606V0H831V707Q831 837 782 902T627 967Q550 967 498 941T415 864T370 739T356 569V0H174V1098H322L348 950H358Q382 +993 415 1024T487 1077T571 1108T662 1118Q782 1118 861 1074T979 936H987Q1013 983 1049 1017T1129 1073T1221 1107T1319 1118Q1494 1118 1582 1023T1671 717V0H1489Z" /> +<glyph unicode="n" glyph-name="n" horiz-adv-x="1206" d="M860 0V707Q860 837 808 902T643 967Q562 967 507 941T419 864T371 739T356 569V0H174V1098H322L348 950H358Q383 993 417 1024T493 1077T580 1108T674 1118Q857 1118 949 1023T1042 717V0H860Z" /> +<glyph unicode="o" glyph-name="o" horiz-adv-x="1182" d="M1069 551Q1069 414 1036 308T940 129T788 18T588 -20Q485 -20 398 18T248 128T149 307T113 551Q113 687 146 792T242 970T393 1080T594 1118Q697 1118 784 1081T934 971T1033 793T1069 551ZM301 551Q301 +342 369 237T592 131Q746 131 813 236T881 551Q881 760 813 863T590 967Q436 967 369 864T301 551Z" /> +<glyph unicode="p" glyph-name="p" horiz-adv-x="1200" d="M670 -20Q611 -20 563 -7T477 27T409 78T356 139H344Q347 105 350 74Q352 48 354 21T356 -23V-492H174V1098H322L348 950H356Q379 985 408 1015T475 1068T562 1104T670 1118Q764 1118 841 1082T972 975T1057 +797T1087 551Q1087 410 1057 304T973 125T841 17T670 -20ZM635 967Q559 967 507 944T422 874T374 757T356 592V551Q356 450 369 372T415 240T502 159T637 131Q772 131 835 240T899 553Q899 761 836 864T635 967Z" /> +<glyph unicode="q" glyph-name="q" horiz-adv-x="1200" d="M565 131Q641 131 693 154T778 224T826 341T844 506V547Q844 648 831 726T785 858T698 939T563 967Q428 967 365 858T301 545Q301 336 364 234T565 131ZM530 -20Q437 -20 360 16T228 123T143 301T113 +547Q113 688 143 794T228 973T360 1081T530 1118Q589 1118 637 1105T723 1069T791 1016T844 950H852L879 1098H1026V-492H844V-23Q844 -4 846 25T850 81Q853 113 856 147H844Q822 113 793 83T725 29T638 -7T530 -20Z" /> +<glyph unicode="r" glyph-name="r" horiz-adv-x="817" d="M649 1118Q678 1118 714 1116T776 1108L752 940Q724 945 695 948T639 952Q576 952 524 927T435 854T377 740T356 592V0H174V1098H322L344 897H352Q377 940 405 980T469 1050T549 1099T649 1118Z" /> +<glyph unicode="s" glyph-name="s" horiz-adv-x="924" d="M831 301Q831 221 802 161T719 61T587 0T414 -20Q305 -20 227 -3T90 49V215Q121 199 159 184T239 156T325 137T414 129Q479 129 524 140T598 171T640 221T653 287Q653 318 643 343T607 392T534 442T416 +498Q344 529 287 559T189 626T128 711T106 827Q106 897 133 951T211 1043T331 1099T487 1118Q584 1118 664 1097T817 1042L754 895Q689 924 621 945T481 967Q379 967 330 934T281 838Q281 803 292 777T332 728T407 682T524 629Q596 599 652 569T749 502T810 416T831 +301Z" /> +<glyph unicode="t" glyph-name="t" horiz-adv-x="694" d="M506 129Q524 129 546 131T590 136T628 143T655 150V12Q642 6 622 0T578 -10T528 -17T477 -20Q415 -20 362 -4T271 51T210 156T188 324V961H33V1042L188 1120L266 1350H371V1098H647V961H371V324Q371 227 +402 178T506 129Z" /> +<glyph unicode="u" glyph-name="u" horiz-adv-x="1206" d="M885 0L858 147H848Q823 104 789 73T713 21T626 -10T532 -20Q441 -20 372 3T257 75T188 200T164 381V1098H346V391Q346 261 399 196T563 131Q644 131 699 157T787 233T835 358T850 528V1098H1032V0H885Z" /> +<glyph unicode="v" glyph-name="v" horiz-adv-x="981" d="M375 0L0 1098H188L387 487Q398 454 413 402T443 296T470 194T487 121H494Q499 146 511 194T538 296T568 402T594 487L793 1098H981L606 0H375Z" /> +<glyph unicode="w" glyph-name="w" horiz-adv-x="1528" d="M1008 0L840 616Q836 634 830 656T818 704T806 755T793 806Q779 864 764 926H758Q744 863 731 805Q720 755 708 702T684 612L512 0H301L20 1098H211L342 514Q352 469 362 417T381 313T397 216T408 141H414Q419 +167 427 210T446 302T468 398T489 479L668 1098H864L1036 479Q1045 445 1056 399T1079 306T1099 214T1112 141H1118Q1121 167 1127 210T1143 306T1162 412T1184 514L1321 1098H1507L1223 0H1008Z" /> +<glyph unicode="x" glyph-name="x" horiz-adv-x="1024" d="M408 563L55 1098H262L512 688L762 1098H969L614 563L987 0H780L512 436L242 0H35L408 563Z" /> +<glyph unicode="y" glyph-name="y" horiz-adv-x="1001" d="M10 1098H199L414 485Q428 445 442 401T469 313T491 228T504 152H510Q515 177 526 220T550 311T578 407T604 487L803 1098H991L557 -143Q529 -224 497 -288T421 -398T320 -467T182 -492Q130 -492 92 -487T27 +-475V-330Q48 -335 80 -338T147 -342Q195 -342 230 -331T291 -297T335 -243T369 -170L426 -10L10 1098Z" /> +<glyph unicode="z" glyph-name="z" horiz-adv-x="903" d="M821 0H82V125L618 961H115V1098H803V952L279 137H821V0Z" /> +<glyph unicode="{" glyph-name="braceleft" horiz-adv-x="725" d="M500 -16Q500 -64 512 -94T546 -142T601 -166T674 -174V-324Q597 -323 532 -307T419 -255T344 -164T317 -31V303Q317 406 252 449T61 492V647Q186 647 251 690T317 836V1169Q317 1247 344 1302T418 +1392T531 1444T674 1462V1313Q634 1312 602 1306T547 1282T512 1234T500 1155V823Q500 718 441 657T266 575V563Q381 543 440 482T500 315V-16Z" /> +<glyph unicode="|" glyph-name="bar" horiz-adv-x="1128" d="M489 1556H639V-492H489V1556Z" /> +<glyph unicode="}" glyph-name="braceright" horiz-adv-x="725" d="M225 315Q225 421 284 482T459 563V575Q344 595 285 656T225 823V1155Q225 1203 213 1233T179 1281T124 1305T51 1313V1462Q128 1461 193 1445T306 1393T381 1302T408 1169V836Q408 784 424 748T473 +690T554 657T664 647V492Q539 492 474 449T408 303V-31Q408 -109 381 -164T307 -254T194 -306T51 -324V-174Q91 -173 123 -167T178 -143T213 -95T225 -16V315Z" /> +<glyph unicode="~" glyph-name="asciitilde" horiz-adv-x="1128" d="M530 651Q493 667 466 678T416 695T373 704T330 707Q302 707 272 698T213 672T155 633T102 586V748Q202 856 350 856Q379 856 404 854T456 845T517 826T598 793Q635 777 662 766T713 749T757 +740T799 737Q827 737 857 746T916 772T974 811T1026 858V696Q927 588 778 588Q749 588 724 590T672 599T611 618T530 651Z" /> +<glyph unicode="&#xa0;" glyph-name="nbspace" horiz-adv-x="532" /> +<glyph unicode="&#xa1;" glyph-name="exclamdown" horiz-adv-x="551" d="M213 676H334L385 -373H162L213 676ZM401 979Q401 941 392 915T365 872T324 848T274 840Q248 840 225 847T185 871T157 914T147 979Q147 1016 157 1042T184 1085T225 1110T274 1118Q301 +1118 324 1110T364 1085T391 1042T401 979Z" /> +<glyph unicode="&#xa2;" glyph-name="cent" horiz-adv-x="1128" d="M886 212T831 197T700 180V-20H563V186Q476 199 407 236T289 340T214 506T188 743Q188 884 214 985T289 1155T407 1260T563 1311V1483H700V1319Q772 1316 840 1300T954 1260L901 1106Q878 1116 +850 1125T792 1142T733 1154T678 1159Q521 1159 449 1058T377 745Q377 535 449 438T670 340Q751 340 816 358T936 401V240Q886 212 831 197Z" /> +<glyph unicode="&#xa3;" glyph-name="sterling" horiz-adv-x="1128" d="M666 1481Q772 1481 859 1459T1012 1401L946 1257Q890 1286 820 1307T674 1329Q626 1329 585 1316T514 1273T468 1196T451 1083V788H827V651H451V440Q451 378 440 334T409 257T364 204T311 +166H1059V0H68V154Q112 165 148 185T211 240T253 322T268 438V651H70V788H268V1112Q268 1199 297 1267T379 1383T505 1456T666 1481Z" /> +<glyph unicode="&#xa4;" glyph-name="currency" horiz-adv-x="1128" d="M186 723Q186 782 203 835T252 936L123 1065L221 1163L348 1034Q395 1066 449 1084T563 1102Q623 1102 676 1084T776 1034L905 1163L1004 1067L874 938Q905 892 923 838T942 723Q942 663 +925 608T874 508L1001 381L905 285L776 412Q730 381 677 364T563 346Q503 346 448 364T348 414L221 287L125 383L252 510Q221 555 204 609T186 723ZM324 723Q324 673 342 630T393 554T469 502T563 483Q614 483 658 502T736 553T788 629T807 723Q807 774 788 818T736 +896T659 948T563 967Q513 967 470 948T394 896T343 819T324 723Z" /> +<glyph unicode="&#xa5;" glyph-name="yen" horiz-adv-x="1128" d="M563 723L909 1462H1100L715 694H954V557H653V399H954V262H653V0H475V262H174V399H475V557H174V694H408L29 1462H221L563 723Z" /> +<glyph unicode="&#xa6;" glyph-name="brokenbar" horiz-adv-x="1128" d="M489 1556H639V776H489V1556ZM489 289H639V-492H489V289Z" /> +<glyph unicode="&#xa7;" glyph-name="section" horiz-adv-x="995" d="M137 809Q137 860 150 901T185 975T237 1029T297 1067Q222 1105 180 1162T137 1303Q137 1364 164 1413T242 1496T362 1548T518 1567Q615 1567 693 1547T844 1495L788 1356Q723 1384 653 1403T512 +1423Q413 1423 362 1394T311 1307Q311 1280 323 1257T363 1212T439 1167T557 1114Q629 1086 685 1054T781 982T841 895T862 784Q862 732 850 690T818 613T771 555T717 514Q786 476 824 422T862 289Q862 218 833 163T749 69T618 10T444 -10Q336 -10 258 6T121 55V213Q152 +198 190 183T270 157T356 138T444 131Q513 131 559 143T633 174T672 219T684 272Q684 301 676 323T642 368T569 415T446 471Q373 502 316 533T218 603T158 692T137 809ZM291 831Q291 794 305 763T350 702T432 646T555 588L590 573Q610 586 630 604T667 645T694 +696T705 758Q705 796 692 828T647 889T560 947T424 1006Q399 998 376 983T333 945T303 893T291 831Z" /> +<glyph unicode="&#xa8;" glyph-name="dieresis" horiz-adv-x="1182" d="M307 1395Q307 1449 335 1473T403 1497Q442 1497 471 1473T500 1395Q500 1342 471 1317T403 1292Q363 1292 335 1317T307 1395ZM682 1395Q682 1449 710 1473T778 1497Q797 1497 814 1491T845 +1473T866 1441T874 1395Q874 1342 845 1317T778 1292Q738 1292 710 1317T682 1395Z" /> +<glyph unicode="&#xa9;" glyph-name="copyright" horiz-adv-x="1704" d="M891 1053Q830 1053 783 1031T704 968T656 866T639 731Q639 653 653 593T698 492T776 430T891 408Q914 408 941 411T996 421T1053 435T1106 453V322Q1082 311 1058 302T1007 286T950 276T885 +272Q783 272 707 305T581 399T505 545T479 733Q479 834 506 917T585 1061T714 1154T891 1188Q954 1188 1020 1172T1145 1126L1083 999Q1031 1025 983 1039T891 1053ZM100 731Q100 835 127 931T202 1110T320 1263T472 1380T652 1456T852 1483Q956 1483 1052 1456T1231 +1381T1384 1263T1501 1111T1577 931T1604 731Q1604 627 1577 531T1502 352T1384 200T1232 82T1052 7T852 -20Q748 -20 652 6T473 82T320 199T203 351T127 531T100 731ZM209 731Q209 598 259 481T397 277T602 139T852 88Q985 88 1102 138T1306 276T1444 481T1495 +731Q1495 864 1445 981T1307 1185T1102 1323T852 1374Q719 1374 602 1324T398 1186T260 981T209 731Z" /> +<glyph unicode="&#xaa;" glyph-name="ordfeminine" horiz-adv-x="678" d="M487 797L459 879Q441 857 422 840T379 810T327 791T264 784Q221 784 185 797T123 835T83 899T68 989Q68 1091 138 1145T352 1204L451 1208V1239Q451 1311 421 1339T334 1368Q286 1368 +241 1354T154 1317L106 1417Q157 1443 215 1461T334 1479Q459 1479 518 1426T578 1251V797H487ZM377 1110Q326 1107 292 1098T238 1074T208 1038T199 987Q199 936 224 914T291 891Q325 891 354 901T404 934T438 988T451 1065V1114L377 1110Z" /> +<glyph unicode="&#xab;" glyph-name="guillemotleft" horiz-adv-x="997" d="M82 553L391 967L508 889L270 541L508 193L391 115L82 526V553ZM489 553L799 967L915 889L678 541L915 193L799 115L489 526V553Z" /> +<glyph unicode="&#xac;" glyph-name="logicalnot" horiz-adv-x="1128" d="M1026 797V262H877V647H102V797H1026Z" /> +<glyph unicode="&#xad;" glyph-name="uni00AD" horiz-adv-x="659" d="M82 465V633H578V465H82Z" /> +<glyph unicode="&#xae;" glyph-name="registered" horiz-adv-x="1704" d="M743 768H815Q906 768 945 804T985 909Q985 983 944 1012T813 1042H743V768ZM1145 913Q1145 865 1132 828T1096 762T1045 713T985 680Q1052 570 1105 483Q1128 446 1149 411T1186 347T1213 +302L1223 285H1044L838 637H743V285H586V1178H819Q987 1178 1066 1113T1145 913ZM100 731Q100 835 127 931T202 1110T320 1263T472 1380T652 1456T852 1483Q956 1483 1052 1456T1231 1381T1384 1263T1501 1111T1577 931T1604 731Q1604 627 1577 531T1502 352T1384 +200T1232 82T1052 7T852 -20Q748 -20 652 6T473 82T320 199T203 351T127 531T100 731ZM209 731Q209 598 259 481T397 277T602 139T852 88Q985 88 1102 138T1306 276T1444 481T1495 731Q1495 864 1445 981T1307 1185T1102 1323T852 1374Q719 1374 602 1324T398 1186T260 +981T209 731Z" /> +<glyph unicode="&#xaf;" glyph-name="overscore" horiz-adv-x="1024" d="M1030 1556H-6V1696H1030V1556Z" /> +<glyph unicode="&#xb0;" glyph-name="degree" horiz-adv-x="877" d="M123 1167Q123 1232 148 1289T215 1390T315 1458T438 1483Q503 1483 560 1458T661 1390T729 1290T754 1167Q754 1102 729 1045T661 946T561 879T438 854Q373 854 316 878T216 945T148 1045T123 +1167ZM246 1167Q246 1128 261 1094T302 1033T363 992T438 977Q478 977 513 992T574 1033T616 1093T631 1167Q631 1207 616 1242T575 1304T513 1346T438 1362Q398 1362 363 1347T302 1305T261 1243T246 1167Z" /> +<glyph unicode="&#xb1;" glyph-name="plusminus" horiz-adv-x="1128" d="M489 647H102V797H489V1186H639V797H1026V647H639V262H489V647ZM102 0V150H1026V0H102Z" /> +<glyph unicode="&#xb2;" glyph-name="twosuperior" horiz-adv-x="678" d="M621 586H49V698L258 926Q315 988 351 1030T407 1106T434 1169T442 1233Q442 1298 409 1330T322 1362Q271 1362 225 1337T133 1274L55 1368Q109 1416 175 1448T324 1481Q384 1481 432 1465T515 +1417T567 1340T586 1237Q586 1187 572 1144T530 1059T464 971T373 870L225 713H621V586Z" /> +<glyph unicode="&#xb3;" glyph-name="threesuperior" horiz-adv-x="678" d="M590 1255Q590 1177 550 1124T440 1047Q528 1024 572 971T616 840Q616 780 596 730T535 645T430 589T281 569Q211 569 150 581T31 625V758Q94 724 160 705T279 686Q377 686 421 727T465 +842Q465 916 412 949T262 983H164V1096H262Q354 1096 396 1135T438 1239Q438 1271 428 1294T401 1333T360 1355T309 1362Q250 1362 202 1342T102 1284L33 1380Q62 1403 92 1421T157 1453T229 1473T311 1481Q380 1481 432 1464T520 1417T572 1346T590 1255Z" /> +<glyph unicode="&#xb4;" glyph-name="acute" horiz-adv-x="1182" d="M393 1268Q415 1297 438 1335T485 1413T530 1494T567 1569H786V1548Q770 1521 739 1481T669 1396T590 1311T514 1241H393V1268Z" /> +<glyph unicode="&#xb5;" glyph-name="mu" horiz-adv-x="1217" d="M356 391Q356 261 409 196T573 131Q655 131 710 157T798 233T846 358T860 528V1098H1042V0H895L868 147H858Q810 64 738 22T563 -20Q491 -20 438 3T350 68Q351 30 353 -10Q355 -45 355 -87T356 +-172V-492H174V1098H356V391Z" /> +<glyph unicode="&#xb6;" glyph-name="paragraph" horiz-adv-x="1341" d="M1126 -260H1006V1397H799V-260H678V559Q617 541 532 541Q437 541 360 566T228 651T143 806T113 1042Q113 1189 145 1287T237 1446T380 1531T563 1556H1126V-260Z" /> +<glyph unicode="&#xb7;" glyph-name="middot" horiz-adv-x="549" d="M147 723Q147 761 157 787T184 830T224 854T274 862Q300 862 323 855T364 831T391 788T401 723Q401 686 391 660T364 617T324 592T274 584Q247 584 224 592T184 617T157 660T147 723Z" /> +<glyph unicode="&#xb8;" glyph-name="cedilla" horiz-adv-x="420" d="M408 -287Q408 -384 338 -438T117 -492Q95 -492 73 -489T35 -483V-375Q50 -378 74 -379T115 -381Q186 -381 226 -360T266 -289Q266 -265 253 -248T217 -217T163 -195T94 -176L184 0H305L248 +-115Q282 -123 311 -136T361 -169T395 -219T408 -287Z" /> +<glyph unicode="&#xb9;" glyph-name="onesuperior" horiz-adv-x="678" d="M307 1462H442V586H297V1102Q297 1127 297 1157T299 1217T302 1275T305 1325Q291 1308 272 1288T231 1251L137 1178L63 1274L307 1462Z" /> +<glyph unicode="&#xba;" glyph-name="ordmasculine" horiz-adv-x="717" d="M651 1133Q651 1050 631 985T572 876T479 808T356 784Q293 784 240 807T148 875T88 985T66 1133Q66 1216 86 1280T145 1389T237 1456T360 1479Q422 1479 475 1456T568 1389T629 1281T651 +1133ZM197 1133Q197 1014 234 954T358 893Q443 893 480 953T518 1133Q518 1253 481 1310T358 1368Q272 1368 235 1311T197 1133Z" /> +<glyph unicode="&#xbb;" glyph-name="guillemotright" horiz-adv-x="997" d="M918 526L608 115L492 193L729 541L492 889L608 967L918 553V526ZM510 526L201 115L84 193L322 541L84 889L201 967L510 553V526Z" /> +<glyph unicode="&#xbc;" glyph-name="onequarter" horiz-adv-x="1509" d="M307 1462H442V586H297V1102Q297 1127 297 1157T299 1217T302 1275T305 1325Q291 1308 272 1288T231 1251L137 1178L63 1274L307 1462ZM1202 1462L391 0H234L1045 1462H1202ZM1419 193H1294V1H1151V193H776V304L1153 +883H1294V320H1419V193ZM1151 320V515Q1151 557 1152 606T1157 705Q1152 694 1142 676T1121 636T1098 595T1077 560L922 320H1151Z" /> +<glyph unicode="&#xbd;" glyph-name="onehalf" horiz-adv-x="1509" d="M544 1462H679V586H534V1102Q534 1127 534 1157T536 1217T539 1275T542 1325Q528 1308 509 1288T468 1251L374 1178L300 1274L544 1462ZM1181 1462L370 0H213L1024 1462H1181ZM1440 1H868V113L1077 +341Q1134 403 1170 445T1226 521T1253 584T1261 648Q1261 713 1228 745T1141 777Q1090 777 1044 752T952 689L874 783Q928 831 994 863T1143 896Q1203 896 1251 880T1334 832T1386 755T1405 652Q1405 602 1391 559T1349 474T1283 386T1192 285L1044 128H1440V1Z" +/> +<glyph unicode="&#xbe;" glyph-name="threequarters" horiz-adv-x="1509" d="M590 1255Q590 1177 550 1124T440 1047Q528 1024 572 971T616 840Q616 780 596 730T535 645T430 589T281 569Q211 569 150 581T31 625V758Q94 724 160 705T279 686Q377 686 421 727T465 +842Q465 916 412 949T262 983H164V1096H262Q354 1096 396 1135T438 1239Q438 1271 428 1294T401 1333T360 1355T309 1362Q250 1362 202 1342T102 1284L33 1380Q62 1403 92 1421T157 1453T229 1473T311 1481Q380 1481 432 1464T520 1417T572 1346T590 1255ZM1296 +1462L485 0H328L1139 1462H1296ZM1486 193H1361V1H1218V193H843V304L1220 883H1361V320H1486V193ZM1218 320V515Q1218 557 1219 606T1224 705Q1219 694 1209 676T1188 636T1165 595T1144 560L989 320H1218Z" /> +<glyph unicode="&#xbf;" glyph-name="questiondown" horiz-adv-x="872" d="M592 676V639Q592 581 584 536T557 450T505 371T422 291Q374 250 340 217T285 149T253 75T242 -18Q242 -66 257 -105T300 -173T371 -217T469 -233Q553 -233 628 -208T772 -147L836 -293Q754 +-335 660 -364T469 -393Q376 -393 302 -368T176 -294T96 -177T68 -20Q68 48 81 100T121 197T188 284T283 373Q335 418 368 451T420 516T446 580T453 657V676H592ZM639 979Q639 941 630 915T603 872T562 848T512 840Q486 840 463 847T423 871T395 914T385 979Q385 +1016 395 1042T422 1085T463 1110T512 1118Q539 1118 562 1110T602 1085T629 1042T639 979Z" /> +<glyph unicode="&#xc0;" glyph-name="Agrave" horiz-adv-x="1245" d="M1055 0L895 453H350L188 0H0L537 1468H707L1245 0H1055ZM836 618L688 1042Q682 1060 674 1086T656 1142T638 1204T621 1268Q614 1237 605 1204T587 1141T570 1085T555 1042L410 618H836ZM719 +1579H599Q564 1607 523 1648T444 1734T374 1818T326 1886V1907H545Q561 1873 582 1833T627 1752T674 1673T719 1606V1579Z" /> +<glyph unicode="&#xc1;" glyph-name="Aacute" horiz-adv-x="1245" d="M1055 0L895 453H350L188 0H0L537 1468H707L1245 0H1055ZM836 618L688 1042Q682 1060 674 1086T656 1142T638 1204T621 1268Q614 1237 605 1204T587 1141T570 1085T555 1042L410 618H836ZM534 +1606Q556 1635 579 1673T626 1751T671 1832T708 1907H927V1886Q911 1859 880 1819T810 1734T731 1649T655 1579H534V1606Z" /> +<glyph unicode="&#xc2;" glyph-name="Acircumflex" horiz-adv-x="1245" d="M1055 0L895 453H350L188 0H0L537 1468H707L1245 0H1055ZM836 618L688 1042Q682 1060 674 1086T656 1142T638 1204T621 1268Q614 1237 605 1204T587 1141T570 1085T555 1042L410 618H836ZM953 +1579H832Q781 1613 727 1661T621 1765Q567 1710 514 1662T410 1579H289V1606Q315 1635 349 1673T416 1751T479 1832T525 1907H717Q733 1873 762 1833T825 1752T893 1673T953 1606V1579Z" /> +<glyph unicode="&#xc3;" glyph-name="Atilde" horiz-adv-x="1245" d="M1055 0L895 453H350L188 0H0L537 1468H707L1245 0H1055ZM836 618L688 1042Q682 1060 674 1086T656 1142T638 1204T621 1268Q614 1237 605 1204T587 1141T570 1085T555 1042L410 618H836ZM772 +1581Q732 1581 693 1598T615 1637T542 1676T475 1694Q430 1694 406 1668T368 1579H264Q269 1639 285 1688T328 1771T392 1824T475 1843Q517 1843 557 1826T636 1787T708 1749T772 1731Q817 1731 840 1757T878 1845H983Q978 1785 962 1737T919 1654T855 1600T772 +1581Z" /> +<glyph unicode="&#xc4;" glyph-name="Adieresis" horiz-adv-x="1245" d="M1055 0L895 453H350L188 0H0L537 1468H707L1245 0H1055ZM836 618L688 1042Q682 1060 674 1086T656 1142T638 1204T621 1268Q614 1237 605 1204T587 1141T570 1085T555 1042L410 618H836ZM340 +1733Q340 1787 368 1811T436 1835Q475 1835 504 1811T533 1733Q533 1680 504 1655T436 1630Q396 1630 368 1655T340 1733ZM715 1733Q715 1787 743 1811T811 1835Q830 1835 847 1829T878 1811T899 1779T907 1733Q907 1680 878 1655T811 1630Q771 1630 743 1655T715 +1733Z" /> +<glyph unicode="&#xc5;" glyph-name="Aring" horiz-adv-x="1245" d="M1055 0L895 453H350L188 0H0L537 1468H707L1245 0H1055ZM836 618L688 1042Q682 1060 674 1086T656 1142T638 1204T621 1268Q614 1237 605 1204T587 1141T570 1085T555 1042L410 618H836ZM848 +1583Q848 1532 831 1492T783 1423T710 1381T619 1366Q569 1366 528 1380T458 1423T412 1490T396 1581Q396 1632 412 1671T457 1739T528 1781T619 1796Q667 1796 709 1782T782 1740T830 1673T848 1583ZM731 1581Q731 1634 700 1664T619 1694Q569 1694 538 1664T506 +1581Q506 1528 534 1498T619 1468Q668 1468 699 1498T731 1581Z" /> +<glyph unicode="&#xc6;" glyph-name="AE" horiz-adv-x="1745" d="M1622 0H862V453H387L184 0H-2L653 1462H1622V1298H1049V846H1583V684H1049V164H1622V0ZM459 618H862V1298H754L459 618Z" /> +<glyph unicode="&#xc7;" glyph-name="Ccedilla" horiz-adv-x="1235" d="M793 1319Q686 1319 599 1279T451 1162T356 977T322 731Q322 590 351 481T440 296T587 182T793 143Q882 143 962 160T1120 201V39Q1081 24 1042 13T961 -6T870 -16T762 -20Q598 -20 478 34T280 +187T163 425T125 733Q125 899 168 1037T296 1274T506 1428T793 1483Q901 1483 999 1461T1176 1397L1098 1241Q1035 1273 961 1296T793 1319ZM916 -287Q916 -384 846 -438T625 -492Q603 -492 581 -489T543 -483V-375Q558 -378 582 -379T623 -381Q694 -381 734 -360T774 +-289Q774 -265 761 -248T725 -217T671 -195T602 -176L692 0H813L756 -115Q790 -123 819 -136T869 -169T903 -219T916 -287Z" /> +<glyph unicode="&#xc8;" glyph-name="Egrave" horiz-adv-x="1081" d="M958 0H199V1462H958V1298H385V846H920V684H385V164H958V0ZM713 1579H593Q558 1607 517 1648T438 1734T368 1818T320 1886V1907H539Q555 1873 576 1833T621 1752T668 1673T713 1606V1579Z" /> +<glyph unicode="&#xc9;" glyph-name="Eacute" horiz-adv-x="1081" d="M958 0H199V1462H958V1298H385V846H920V684H385V164H958V0ZM456 1606Q478 1635 501 1673T548 1751T593 1832T630 1907H849V1886Q833 1859 802 1819T732 1734T653 1649T577 1579H456V1606Z" /> +<glyph unicode="&#xca;" glyph-name="Ecircumflex" horiz-adv-x="1081" d="M958 0H199V1462H958V1298H385V846H920V684H385V164H958V0ZM907 1579H786Q735 1613 681 1661T575 1765Q521 1710 468 1662T364 1579H243V1606Q269 1635 303 1673T370 1751T433 1832T479 +1907H671Q687 1873 716 1833T779 1752T847 1673T907 1606V1579Z" /> +<glyph unicode="&#xcb;" glyph-name="Edieresis" horiz-adv-x="1081" d="M958 0H199V1462H958V1298H385V846H920V684H385V164H958V0ZM296 1733Q296 1787 324 1811T392 1835Q431 1835 460 1811T489 1733Q489 1680 460 1655T392 1630Q352 1630 324 1655T296 1733ZM671 +1733Q671 1787 699 1811T767 1835Q786 1835 803 1829T834 1811T855 1779T863 1733Q863 1680 834 1655T767 1630Q727 1630 699 1655T671 1733Z" /> +<glyph unicode="&#xcc;" glyph-name="Igrave" horiz-adv-x="694" d="M612 0H82V102L254 143V1319L82 1360V1462H612V1360L440 1319V143L612 102V0ZM455 1579H335Q300 1607 259 1648T180 1734T110 1818T62 1886V1907H281Q297 1873 318 1833T363 1752T410 1673T455 +1606V1579Z" /> +<glyph unicode="&#xcd;" glyph-name="Iacute" horiz-adv-x="694" d="M612 0H82V102L254 143V1319L82 1360V1462H612V1360L440 1319V143L612 102V0ZM257 1606Q279 1635 302 1673T349 1751T394 1832T431 1907H650V1886Q634 1859 603 1819T533 1734T454 1649T378 +1579H257V1606Z" /> +<glyph unicode="&#xce;" glyph-name="Icircumflex" horiz-adv-x="694" d="M612 0H82V102L254 143V1319L82 1360V1462H612V1360L440 1319V143L612 102V0ZM681 1579H560Q509 1613 455 1661T349 1765Q295 1710 242 1662T138 1579H17V1606Q43 1635 77 1673T144 1751T207 +1832T253 1907H445Q461 1873 490 1833T553 1752T621 1673T681 1606V1579Z" /> +<glyph unicode="&#xcf;" glyph-name="Idieresis" horiz-adv-x="694" d="M612 0H82V102L254 143V1319L82 1360V1462H612V1360L440 1319V143L612 102V0ZM64 1733Q64 1787 92 1811T160 1835Q199 1835 228 1811T257 1733Q257 1680 228 1655T160 1630Q120 1630 92 1655T64 +1733ZM439 1733Q439 1787 467 1811T535 1835Q554 1835 571 1829T602 1811T623 1779T631 1733Q631 1680 602 1655T535 1630Q495 1630 467 1655T439 1733Z" /> +<glyph unicode="&#xd0;" glyph-name="Eth" horiz-adv-x="1401" d="M47 805H199V1462H606Q759 1462 883 1416T1094 1280T1228 1055T1276 745Q1276 560 1228 421T1089 188T866 47T565 0H199V643H47V805ZM1079 739Q1079 885 1046 991T950 1167T795 1269T586 1303H385V805H721V643H385V160H547Q811 +160 945 306T1079 739Z" /> +<glyph unicode="&#xd1;" glyph-name="Ntilde" horiz-adv-x="1493" d="M1294 0H1079L360 1210H352Q358 1133 362 1057Q366 992 368 921T371 793V0H199V1462H412L1128 258H1135Q1132 334 1128 408Q1127 440 1126 473T1123 540T1121 605T1120 662V1462H1294V0ZM905 +1581Q865 1581 826 1598T748 1637T675 1676T608 1694Q563 1694 539 1668T501 1579H397Q402 1639 418 1688T461 1771T525 1824T608 1843Q650 1843 690 1826T769 1787T841 1749T905 1731Q950 1731 973 1757T1011 1845H1116Q1111 1785 1095 1737T1052 1654T988 1600T905 +1581Z" /> +<glyph unicode="&#xd2;" glyph-name="Ograve" horiz-adv-x="1520" d="M1393 733Q1393 564 1353 425T1232 187T1034 34T760 -20Q597 -20 478 34T280 187T163 425T125 735Q125 905 163 1043T280 1280T479 1431T762 1485Q917 1485 1034 1432T1232 1280T1352 1043T1393 +733ZM322 733Q322 596 348 487T427 301T563 184T760 143Q874 143 956 183T1092 300T1171 486T1196 733Q1196 871 1171 980T1093 1164T958 1280T762 1321Q648 1321 565 1281T428 1165T348 980T322 733ZM870 1579H750Q715 1607 674 1648T595 1734T525 1818T477 1886V1907H696Q712 +1873 733 1833T778 1752T825 1673T870 1606V1579Z" /> +<glyph unicode="&#xd3;" glyph-name="Oacute" horiz-adv-x="1520" d="M1393 733Q1393 564 1353 425T1232 187T1034 34T760 -20Q597 -20 478 34T280 187T163 425T125 735Q125 905 163 1043T280 1280T479 1431T762 1485Q917 1485 1034 1432T1232 1280T1352 1043T1393 +733ZM322 733Q322 596 348 487T427 301T563 184T760 143Q874 143 956 183T1092 300T1171 486T1196 733Q1196 871 1171 980T1093 1164T958 1280T762 1321Q648 1321 565 1281T428 1165T348 980T322 733ZM651 1606Q673 1635 696 1673T743 1751T788 1832T825 1907H1044V1886Q1028 +1859 997 1819T927 1734T848 1649T772 1579H651V1606Z" /> +<glyph unicode="&#xd4;" glyph-name="Ocircumflex" horiz-adv-x="1520" d="M1393 733Q1393 564 1353 425T1232 187T1034 34T760 -20Q597 -20 478 34T280 187T163 425T125 735Q125 905 163 1043T280 1280T479 1431T762 1485Q917 1485 1034 1432T1232 1280T1352 +1043T1393 733ZM322 733Q322 596 348 487T427 301T563 184T760 143Q874 143 956 183T1092 300T1171 486T1196 733Q1196 871 1171 980T1093 1164T958 1280T762 1321Q648 1321 565 1281T428 1165T348 980T322 733ZM1096 1579H975Q924 1613 870 1661T764 1765Q710 +1710 657 1662T553 1579H432V1606Q458 1635 492 1673T559 1751T622 1832T668 1907H860Q876 1873 905 1833T968 1752T1036 1673T1096 1606V1579Z" /> +<glyph unicode="&#xd5;" glyph-name="Otilde" horiz-adv-x="1520" d="M1393 733Q1393 564 1353 425T1232 187T1034 34T760 -20Q597 -20 478 34T280 187T163 425T125 735Q125 905 163 1043T280 1280T479 1431T762 1485Q917 1485 1034 1432T1232 1280T1352 1043T1393 +733ZM322 733Q322 596 348 487T427 301T563 184T760 143Q874 143 956 183T1092 300T1171 486T1196 733Q1196 871 1171 980T1093 1164T958 1280T762 1321Q648 1321 565 1281T428 1165T348 980T322 733ZM891 1581Q851 1581 812 1598T734 1637T661 1676T594 1694Q549 +1694 525 1668T487 1579H383Q388 1639 404 1688T447 1771T511 1824T594 1843Q636 1843 676 1826T755 1787T827 1749T891 1731Q936 1731 959 1757T997 1845H1102Q1097 1785 1081 1737T1038 1654T974 1600T891 1581Z" /> +<glyph unicode="&#xd6;" glyph-name="Odieresis" horiz-adv-x="1520" d="M1393 733Q1393 564 1353 425T1232 187T1034 34T760 -20Q597 -20 478 34T280 187T163 425T125 735Q125 905 163 1043T280 1280T479 1431T762 1485Q917 1485 1034 1432T1232 1280T1352 1043T1393 +733ZM322 733Q322 596 348 487T427 301T563 184T760 143Q874 143 956 183T1092 300T1171 486T1196 733Q1196 871 1171 980T1093 1164T958 1280T762 1321Q648 1321 565 1281T428 1165T348 980T322 733ZM477 1733Q477 1787 505 1811T573 1835Q612 1835 641 1811T670 +1733Q670 1680 641 1655T573 1630Q533 1630 505 1655T477 1733ZM852 1733Q852 1787 880 1811T948 1835Q967 1835 984 1829T1015 1811T1036 1779T1044 1733Q1044 1680 1015 1655T948 1630Q908 1630 880 1655T852 1733Z" /> +<glyph unicode="&#xd7;" glyph-name="multiply" horiz-adv-x="1128" d="M459 723L141 1042L246 1147L563 829L885 1147L989 1044L668 723L987 403L885 301L563 618L246 303L143 406L459 723Z" /> +<glyph unicode="&#xd8;" glyph-name="Oslash" horiz-adv-x="1520" d="M1300 1454L1208 1305Q1299 1206 1346 1061T1393 733Q1393 564 1353 425T1232 187T1034 34T760 -20Q571 -20 438 51L360 -76L223 2L313 147Q216 247 171 396T125 735Q125 905 163 1043T280 +1280T479 1431T762 1485Q856 1485 936 1464T1083 1405L1163 1532L1300 1454ZM322 733Q322 602 345 498T416 315L995 1260Q947 1289 890 1305T762 1321Q648 1321 565 1281T428 1165T348 980T322 733ZM1196 733Q1196 990 1108 1141L530 201Q577 173 634 158T760 143Q874 +143 956 183T1092 300T1171 486T1196 733Z" /> +<glyph unicode="&#xd9;" glyph-name="Ugrave" horiz-adv-x="1430" d="M1245 1464V516Q1245 402 1212 304T1113 134T946 21T709 -20Q581 -20 483 18T319 128T218 298T184 520V1462H371V510Q371 335 457 239T719 143Q808 143 872 170T977 246T1038 363T1059 512V1464H1245ZM847 +1579H727Q692 1607 651 1648T572 1734T502 1818T454 1886V1907H673Q689 1873 710 1833T755 1752T802 1673T847 1606V1579Z" /> +<glyph unicode="&#xda;" glyph-name="Uacute" horiz-adv-x="1430" d="M1245 1464V516Q1245 402 1212 304T1113 134T946 21T709 -20Q581 -20 483 18T319 128T218 298T184 520V1462H371V510Q371 335 457 239T719 143Q808 143 872 170T977 246T1038 363T1059 512V1464H1245ZM590 +1606Q612 1635 635 1673T682 1751T727 1832T764 1907H983V1886Q967 1859 936 1819T866 1734T787 1649T711 1579H590V1606Z" /> +<glyph unicode="&#xdb;" glyph-name="Ucircumflex" horiz-adv-x="1430" d="M1245 1464V516Q1245 402 1212 304T1113 134T946 21T709 -20Q581 -20 483 18T319 128T218 298T184 520V1462H371V510Q371 335 457 239T719 143Q808 143 872 170T977 246T1038 363T1059 +512V1464H1245ZM1043 1579H922Q871 1613 817 1661T711 1765Q657 1710 604 1662T500 1579H379V1606Q405 1635 439 1673T506 1751T569 1832T615 1907H807Q823 1873 852 1833T915 1752T983 1673T1043 1606V1579Z" /> +<glyph unicode="&#xdc;" glyph-name="Udieresis" horiz-adv-x="1430" d="M1245 1464V516Q1245 402 1212 304T1113 134T946 21T709 -20Q581 -20 483 18T319 128T218 298T184 520V1462H371V510Q371 335 457 239T719 143Q808 143 872 170T977 246T1038 363T1059 512V1464H1245ZM432 +1733Q432 1787 460 1811T528 1835Q567 1835 596 1811T625 1733Q625 1680 596 1655T528 1630Q488 1630 460 1655T432 1733ZM807 1733Q807 1787 835 1811T903 1835Q922 1835 939 1829T970 1811T991 1779T999 1733Q999 1680 970 1655T903 1630Q863 1630 835 1655T807 +1733Z" /> +<glyph unicode="&#xdd;" glyph-name="Yacute" horiz-adv-x="1079" d="M539 723L879 1462H1079L633 569V0H446V559L0 1462H203L539 723ZM442 1606Q464 1635 487 1673T534 1751T579 1832T616 1907H835V1886Q819 1859 788 1819T718 1734T639 1649T563 1579H442V1606Z" /> +<glyph unicode="&#xde;" glyph-name="Thorn" horiz-adv-x="1180" d="M1075 782Q1075 691 1048 607T957 459T791 356T535 317H385V0H199V1462H385V1210H561Q695 1210 792 1182T952 1099T1045 964T1075 782ZM385 475H514Q607 475 676 491T791 542T860 634T883 772Q883 +915 801 983T545 1051H385V475Z" /> +<glyph unicode="&#xdf;" glyph-name="germandbls" horiz-adv-x="1233" d="M1010 1260Q1010 1203 989 1159T936 1078T867 1011T798 954T745 899T723 842Q723 821 730 805T756 769T811 725T903 662Q959 625 1003 589T1077 512T1124 423T1141 313Q1141 226 1113 163T1035 +60T914 0T758 -20Q661 -20 592 -3T469 49V215Q495 199 527 184T596 156T670 137T745 129Q801 129 841 141T908 176T946 231T958 303Q958 339 950 368T920 426T862 483T770 547Q707 587 665 621T596 688T558 757T547 834Q547 888 567 927T619 998T686 1057T753 1113T804 +1175T825 1253Q825 1295 809 1326T762 1377T691 1407T598 1417Q549 1417 505 1408T428 1374T376 1309T356 1202V0H174V1200Q174 1304 205 1374T293 1487T428 1548T598 1567Q690 1567 766 1548T896 1491T980 1395T1010 1260Z" /> +<glyph unicode="&#xe0;" glyph-name="agrave" horiz-adv-x="1087" d="M793 0L756 152H748Q715 107 682 75T610 21T523 -10T412 -20Q343 -20 285 -1T185 59T118 161T94 307Q94 471 209 559T561 655L745 662V731Q745 798 731 843T689 915T621 955T528 967Q445 967 +374 943T236 885L172 1022Q246 1062 337 1090T528 1118Q630 1118 704 1098T827 1033T900 919T924 752V0H793ZM459 127Q520 127 572 146T662 203T721 300T743 438V537L600 530Q510 526 449 510T352 466T299 397T283 305Q283 213 331 170T459 127ZM934 1241H814Q779 +1269 738 1310T659 1396T589 1480T541 1548V1569H760Q776 1535 797 1495T842 1414T889 1335T934 1268V1241Z" /> +<glyph unicode="&#xe1;" glyph-name="aacute" horiz-adv-x="1087" d="M793 0L756 152H748Q715 107 682 75T610 21T523 -10T412 -20Q343 -20 285 -1T185 59T118 161T94 307Q94 471 209 559T561 655L745 662V731Q745 798 731 843T689 915T621 955T528 967Q445 967 +374 943T236 885L172 1022Q246 1062 337 1090T528 1118Q630 1118 704 1098T827 1033T900 919T924 752V0H793ZM459 127Q520 127 572 146T662 203T721 300T743 438V537L600 530Q510 526 449 510T352 466T299 397T283 305Q283 213 331 170T459 127ZM446 1268Q468 1297 +491 1335T538 1413T583 1494T620 1569H839V1548Q823 1521 792 1481T722 1396T643 1311T567 1241H446V1268Z" /> +<glyph unicode="&#xe2;" glyph-name="acircumflex" horiz-adv-x="1087" d="M793 0L756 152H748Q715 107 682 75T610 21T523 -10T412 -20Q343 -20 285 -1T185 59T118 161T94 307Q94 471 209 559T561 655L745 662V731Q745 798 731 843T689 915T621 955T528 967Q445 +967 374 943T236 885L172 1022Q246 1062 337 1090T528 1118Q630 1118 704 1098T827 1033T900 919T924 752V0H793ZM459 127Q520 127 572 146T662 203T721 300T743 438V537L600 530Q510 526 449 510T352 466T299 397T283 305Q283 213 331 170T459 127ZM1148 1241H1027Q976 +1275 922 1323T816 1427Q762 1372 709 1324T605 1241H484V1268Q510 1297 544 1335T611 1413T674 1494T720 1569H912Q928 1535 957 1495T1020 1414T1088 1335T1148 1268V1241Z" /> +<glyph unicode="&#xe3;" glyph-name="atilde" horiz-adv-x="1087" d="M793 0L756 152H748Q715 107 682 75T610 21T523 -10T412 -20Q343 -20 285 -1T185 59T118 161T94 307Q94 471 209 559T561 655L745 662V731Q745 798 731 843T689 915T621 955T528 967Q445 967 +374 943T236 885L172 1022Q246 1062 337 1090T528 1118Q630 1118 704 1098T827 1033T900 919T924 752V0H793ZM459 127Q520 127 572 146T662 203T721 300T743 438V537L600 530Q510 526 449 510T352 466T299 397T283 305Q283 213 331 170T459 127ZM955 1243Q915 1243 +876 1260T798 1299T725 1338T658 1356Q613 1356 589 1330T551 1241H447Q452 1301 468 1350T511 1433T575 1486T658 1505Q700 1505 740 1488T819 1449T891 1411T955 1393Q1000 1393 1023 1419T1061 1507H1166Q1161 1447 1145 1399T1102 1316T1038 1262T955 1243Z" +/> +<glyph unicode="&#xe4;" glyph-name="adieresis" horiz-adv-x="1087" d="M793 0L756 152H748Q715 107 682 75T610 21T523 -10T412 -20Q343 -20 285 -1T185 59T118 161T94 307Q94 471 209 559T561 655L745 662V731Q745 798 731 843T689 915T621 955T528 967Q445 +967 374 943T236 885L172 1022Q246 1062 337 1090T528 1118Q630 1118 704 1098T827 1033T900 919T924 752V0H793ZM459 127Q520 127 572 146T662 203T721 300T743 438V537L600 530Q510 526 449 510T352 466T299 397T283 305Q283 213 331 170T459 127ZM529 1395Q529 +1449 557 1473T625 1497Q664 1497 693 1473T722 1395Q722 1342 693 1317T625 1292Q585 1292 557 1317T529 1395ZM904 1395Q904 1449 932 1473T1000 1497Q1019 1497 1036 1491T1067 1473T1088 1441T1096 1395Q1096 1342 1067 1317T1000 1292Q960 1292 932 1317T904 +1395Z" /> +<glyph unicode="&#xe5;" glyph-name="aring" horiz-adv-x="1087" d="M793 0L756 152H748Q715 107 682 75T610 21T523 -10T412 -20Q343 -20 285 -1T185 59T118 161T94 307Q94 471 209 559T561 655L745 662V731Q745 798 731 843T689 915T621 955T528 967Q445 967 +374 943T236 885L172 1022Q246 1062 337 1090T528 1118Q630 1118 704 1098T827 1033T900 919T924 752V0H793ZM459 127Q520 127 572 146T662 203T721 300T743 438V537L600 530Q510 526 449 510T352 466T299 397T283 305Q283 213 331 170T459 127ZM1039 1458Q1039 +1407 1022 1367T974 1298T901 1256T810 1241Q760 1241 719 1255T649 1298T603 1365T587 1456Q587 1507 603 1546T648 1614T719 1656T810 1671Q858 1671 900 1657T973 1615T1021 1548T1039 1458ZM922 1456Q922 1509 891 1539T810 1569Q760 1569 729 1539T697 1456Q697 +1403 725 1373T810 1343Q859 1343 890 1373T922 1456Z" /> +<glyph unicode="&#xe6;" glyph-name="ae" horiz-adv-x="1706" d="M94 307Q94 471 209 559T561 655L745 662V731Q745 798 731 843T689 915T621 955T528 967Q445 967 374 943T236 885L172 1022Q246 1062 337 1090T528 1118Q659 1118 742 1076T868 940Q919 1025 1002 +1071T1188 1118Q1285 1118 1362 1083T1493 983T1575 828T1604 627V514H932Q937 321 1010 230T1231 139Q1280 139 1322 144T1404 158T1480 182T1554 215V53Q1515 34 1478 20T1401 -3T1319 -16T1227 -20Q1089 -20 988 37T825 209Q791 155 753 113T668 41T562 -4T430 +-20Q359 -20 298 -1T191 59T120 161T94 307ZM283 305Q283 213 331 170T459 127Q520 127 572 146T662 203T721 300T743 438V537L600 530Q510 526 449 510T352 466T299 397T283 305ZM1184 967Q1074 967 1011 889T936 662H1407Q1407 730 1394 786T1354 883T1284 945T1184 +967Z" /> +<glyph unicode="&#xe7;" glyph-name="ccedilla" horiz-adv-x="948" d="M594 -20Q493 -20 405 11T252 111T150 286T113 543Q113 700 151 809T255 987T411 1087T602 1118Q680 1118 754 1101T879 1059L825 905Q802 915 774 924T716 941T657 953T602 958Q445 958 373 +858T301 545Q301 334 373 237T594 139Q675 139 740 157T860 201V39Q806 10 745 -5T594 -20ZM730 -287Q730 -384 660 -438T439 -492Q417 -492 395 -489T357 -483V-375Q372 -378 396 -379T437 -381Q508 -381 548 -360T588 -289Q588 -265 575 -248T539 -217T485 -195T416 +-176L506 0H627L570 -115Q604 -123 633 -136T683 -169T717 -219T730 -287Z" /> +<glyph unicode="&#xe8;" glyph-name="egrave" horiz-adv-x="1096" d="M608 -20Q498 -20 407 17T251 125T149 301T113 541Q113 677 146 784T239 965T382 1079T567 1118Q666 1118 745 1083T879 983T963 828T993 627V514H301Q306 321 382 230T610 139Q661 139 704 +144T788 158T867 182T944 215V53Q904 34 866 20T787 -3T703 -16T608 -20ZM563 967Q449 967 383 889T305 662H797Q797 730 784 786T742 883T669 945T563 967ZM934 1241H814Q779 1269 738 1310T659 1396T589 1480T541 1548V1569H760Q776 1535 797 1495T842 1414T889 +1335T934 1268V1241Z" /> +<glyph unicode="&#xe9;" glyph-name="eacute" horiz-adv-x="1096" d="M608 -20Q498 -20 407 17T251 125T149 301T113 541Q113 677 146 784T239 965T382 1079T567 1118Q666 1118 745 1083T879 983T963 828T993 627V514H301Q306 321 382 230T610 139Q661 139 704 +144T788 158T867 182T944 215V53Q904 34 866 20T787 -3T703 -16T608 -20ZM563 967Q449 967 383 889T305 662H797Q797 730 784 786T742 883T669 945T563 967ZM475 1268Q497 1297 520 1335T567 1413T612 1494T649 1569H868V1548Q852 1521 821 1481T751 1396T672 1311T596 +1241H475V1268Z" /> +<glyph unicode="&#xea;" glyph-name="ecircumflex" horiz-adv-x="1096" d="M608 -20Q498 -20 407 17T251 125T149 301T113 541Q113 677 146 784T239 965T382 1079T567 1118Q666 1118 745 1083T879 983T963 828T993 627V514H301Q306 321 382 230T610 139Q661 139 +704 144T788 158T867 182T944 215V53Q904 34 866 20T787 -3T703 -16T608 -20ZM563 967Q449 967 383 889T305 662H797Q797 730 784 786T742 883T669 945T563 967ZM1144 1241H1023Q972 1275 918 1323T812 1427Q758 1372 705 1324T601 1241H480V1268Q506 1297 540 +1335T607 1413T670 1494T716 1569H908Q924 1535 953 1495T1016 1414T1084 1335T1144 1268V1241Z" /> +<glyph unicode="&#xeb;" glyph-name="edieresis" horiz-adv-x="1096" d="M608 -20Q498 -20 407 17T251 125T149 301T113 541Q113 677 146 784T239 965T382 1079T567 1118Q666 1118 745 1083T879 983T963 828T993 627V514H301Q306 321 382 230T610 139Q661 139 +704 144T788 158T867 182T944 215V53Q904 34 866 20T787 -3T703 -16T608 -20ZM563 967Q449 967 383 889T305 662H797Q797 730 784 786T742 883T669 945T563 967ZM525 1395Q525 1449 553 1473T621 1497Q660 1497 689 1473T718 1395Q718 1342 689 1317T621 1292Q581 +1292 553 1317T525 1395ZM900 1395Q900 1449 928 1473T996 1497Q1015 1497 1032 1491T1063 1473T1084 1441T1092 1395Q1092 1342 1063 1317T996 1292Q956 1292 928 1317T900 1395Z" /> +<glyph unicode="&#xec;" glyph-name="igrave" horiz-adv-x="530" d="M356 0H174V1098H356V0ZM359 1241H239Q204 1269 163 1310T84 1396T14 1480T-34 1548V1569H185Q201 1535 222 1495T267 1414T314 1335T359 1268V1241Z" /> +<glyph unicode="&#xed;" glyph-name="iacute" horiz-adv-x="530" d="M356 0H174V1098H356V0ZM185 1268Q207 1297 230 1335T277 1413T322 1494T359 1569H578V1548Q562 1521 531 1481T461 1396T382 1311T306 1241H185V1268Z" /> +<glyph unicode="&#xee;" glyph-name="icircumflex" horiz-adv-x="530" d="M356 0H174V1098H356V0ZM597 1241H476Q425 1275 371 1323T265 1427Q211 1372 158 1324T54 1241H-67V1268Q-41 1297 -7 1335T60 1413T123 1494T169 1569H361Q377 1535 406 1495T469 1414T537 +1335T597 1268V1241Z" /> +<glyph unicode="&#xef;" glyph-name="idieresis" horiz-adv-x="530" d="M356 0H174V1098H356V0ZM-18 1395Q-18 1449 10 1473T78 1497Q117 1497 146 1473T175 1395Q175 1342 146 1317T78 1292Q38 1292 10 1317T-18 1395ZM357 1395Q357 1449 385 1473T453 1497Q472 +1497 489 1491T520 1473T541 1441T549 1395Q549 1342 520 1317T453 1292Q413 1292 385 1317T357 1395Z" /> +<glyph unicode="&#xf0;" glyph-name="eth" horiz-adv-x="1182" d="M1069 573Q1069 431 1036 321T940 135T788 20T588 -20Q484 -20 397 13T246 109T147 265T111 477Q111 596 142 688T233 843T376 938T565 971Q667 971 744 942T864 852L872 856Q841 974 781 1070T631 +1247L375 1094L301 1208L518 1339Q478 1367 436 1394T346 1448L416 1571Q481 1539 542 1503T662 1423L889 1561L963 1448L768 1331Q835 1266 890 1188T985 1017T1047 813T1069 573ZM881 526Q881 582 864 635T812 730T722 796T592 821Q515 821 461 798T371 731T320 +622T303 471Q303 395 319 333T371 225T461 156T592 131Q746 131 813 230T881 526Z" /> +<glyph unicode="&#xf1;" glyph-name="ntilde" horiz-adv-x="1206" d="M860 0V707Q860 837 808 902T643 967Q562 967 507 941T419 864T371 739T356 569V0H174V1098H322L348 950H358Q383 993 417 1024T493 1077T580 1108T674 1118Q857 1118 949 1023T1042 717V0H860ZM1015 +1243Q975 1243 936 1260T858 1299T785 1338T718 1356Q673 1356 649 1330T611 1241H507Q512 1301 528 1350T571 1433T635 1486T718 1505Q760 1505 800 1488T879 1449T951 1411T1015 1393Q1060 1393 1083 1419T1121 1507H1226Q1221 1447 1205 1399T1162 1316T1098 +1262T1015 1243Z" /> +<glyph unicode="&#xf2;" glyph-name="ograve" horiz-adv-x="1182" d="M1069 551Q1069 414 1036 308T940 129T788 18T588 -20Q485 -20 398 18T248 128T149 307T113 551Q113 687 146 792T242 970T393 1080T594 1118Q697 1118 784 1081T934 971T1033 793T1069 551ZM301 +551Q301 342 369 237T592 131Q746 131 813 236T881 551Q881 760 813 863T590 967Q436 967 369 864T301 551ZM1002 1241H882Q847 1269 806 1310T727 1396T657 1480T609 1548V1569H828Q844 1535 865 1495T910 1414T957 1335T1002 1268V1241Z" /> +<glyph unicode="&#xf3;" glyph-name="oacute" horiz-adv-x="1182" d="M1069 551Q1069 414 1036 308T940 129T788 18T588 -20Q485 -20 398 18T248 128T149 307T113 551Q113 687 146 792T242 970T393 1080T594 1118Q697 1118 784 1081T934 971T1033 793T1069 551ZM301 +551Q301 342 369 237T592 131Q746 131 813 236T881 551Q881 760 813 863T590 967Q436 967 369 864T301 551ZM473 1268Q495 1297 518 1335T565 1413T610 1494T647 1569H866V1548Q850 1521 819 1481T749 1396T670 1311T594 1241H473V1268Z" /> +<glyph unicode="&#xf4;" glyph-name="ocircumflex" horiz-adv-x="1182" d="M1069 551Q1069 414 1036 308T940 129T788 18T588 -20Q485 -20 398 18T248 128T149 307T113 551Q113 687 146 792T242 970T393 1080T594 1118Q697 1118 784 1081T934 971T1033 793T1069 +551ZM301 551Q301 342 369 237T592 131Q746 131 813 236T881 551Q881 760 813 863T590 967Q436 967 369 864T301 551ZM1173 1241H1052Q1001 1275 947 1323T841 1427Q787 1372 734 1324T630 1241H509V1268Q535 1297 569 1335T636 1413T699 1494T745 1569H937Q953 +1535 982 1495T1045 1414T1113 1335T1173 1268V1241Z" /> +<glyph unicode="&#xf5;" glyph-name="otilde" horiz-adv-x="1182" d="M1069 551Q1069 414 1036 308T940 129T788 18T588 -20Q485 -20 398 18T248 128T149 307T113 551Q113 687 146 792T242 970T393 1080T594 1118Q697 1118 784 1081T934 971T1033 793T1069 551ZM301 +551Q301 342 369 237T592 131Q746 131 813 236T881 551Q881 760 813 863T590 967Q436 967 369 864T301 551ZM992 1243Q952 1243 913 1260T835 1299T762 1338T695 1356Q650 1356 626 1330T588 1241H484Q489 1301 505 1350T548 1433T612 1486T695 1505Q737 1505 777 +1488T856 1449T928 1411T992 1393Q1037 1393 1060 1419T1098 1507H1203Q1198 1447 1182 1399T1139 1316T1075 1262T992 1243Z" /> +<glyph unicode="&#xf6;" glyph-name="odieresis" horiz-adv-x="1182" d="M1069 551Q1069 414 1036 308T940 129T788 18T588 -20Q485 -20 398 18T248 128T149 307T113 551Q113 687 146 792T242 970T393 1080T594 1118Q697 1118 784 1081T934 971T1033 793T1069 +551ZM301 551Q301 342 369 237T592 131Q746 131 813 236T881 551Q881 760 813 863T590 967Q436 967 369 864T301 551ZM556 1395Q556 1449 584 1473T652 1497Q691 1497 720 1473T749 1395Q749 1342 720 1317T652 1292Q612 1292 584 1317T556 1395ZM931 1395Q931 +1449 959 1473T1027 1497Q1046 1497 1063 1491T1094 1473T1115 1441T1123 1395Q1123 1342 1094 1317T1027 1292Q987 1292 959 1317T931 1395Z" /> +<glyph unicode="&#xf7;" glyph-name="divide" horiz-adv-x="1128" d="M102 647V797H1026V647H102ZM449 373Q449 408 458 431T482 470T518 491T563 498Q586 498 607 492T644 470T669 432T678 373Q678 340 669 317T644 278T607 255T563 248Q539 248 519 255T483 +277T458 316T449 373ZM449 1071Q449 1106 458 1129T482 1168T518 1189T563 1196Q586 1196 607 1190T644 1168T669 1130T678 1071Q678 1038 669 1015T644 976T607 953T563 946Q539 946 519 953T483 975T458 1014T449 1071Z" /> +<glyph unicode="&#xf8;" glyph-name="oslash" horiz-adv-x="1182" d="M1071 551Q1071 414 1038 308T942 129T790 18T590 -20Q465 -20 367 33L299 -76L168 -2L248 129Q185 201 150 307T115 551Q115 687 148 792T244 970T395 1080T596 1118Q659 1118 715 1104T821 +1061L889 1169L1020 1096L940 967Q1002 894 1036 790T1071 551ZM303 551Q303 467 312 402T344 285L741 932Q712 949 675 958T592 967Q438 967 371 864T303 551ZM883 551Q883 710 844 809L446 164Q477 147 513 139T594 131Q748 131 815 236T883 551Z" /> +<glyph unicode="&#xf9;" glyph-name="ugrave" horiz-adv-x="1206" d="M885 0L858 147H848Q823 104 789 73T713 21T626 -10T532 -20Q441 -20 372 3T257 75T188 200T164 381V1098H346V391Q346 261 399 196T563 131Q644 131 699 157T787 233T835 358T850 528V1098H1032V0H885ZM949 +1241H829Q794 1269 753 1310T674 1396T604 1480T556 1548V1569H775Q791 1535 812 1495T857 1414T904 1335T949 1268V1241Z" /> +<glyph unicode="&#xfa;" glyph-name="uacute" horiz-adv-x="1206" d="M885 0L858 147H848Q823 104 789 73T713 21T626 -10T532 -20Q441 -20 372 3T257 75T188 200T164 381V1098H346V391Q346 261 399 196T563 131Q644 131 699 157T787 233T835 358T850 528V1098H1032V0H885ZM489 +1268Q511 1297 534 1335T581 1413T626 1494T663 1569H882V1548Q866 1521 835 1481T765 1396T686 1311T610 1241H489V1268Z" /> +<glyph unicode="&#xfb;" glyph-name="ucircumflex" horiz-adv-x="1206" d="M885 0L858 147H848Q823 104 789 73T713 21T626 -10T532 -20Q441 -20 372 3T257 75T188 200T164 381V1098H346V391Q346 261 399 196T563 131Q644 131 699 157T787 233T835 358T850 528V1098H1032V0H885ZM930 +1241H809Q758 1275 704 1323T598 1427Q544 1372 491 1324T387 1241H266V1268Q292 1297 326 1335T393 1413T456 1494T502 1569H694Q710 1535 739 1495T802 1414T870 1335T930 1268V1241Z" /> +<glyph unicode="&#xfc;" glyph-name="udieresis" horiz-adv-x="1206" d="M885 0L858 147H848Q823 104 789 73T713 21T626 -10T532 -20Q441 -20 372 3T257 75T188 200T164 381V1098H346V391Q346 261 399 196T563 131Q644 131 699 157T787 233T835 358T850 528V1098H1032V0H885ZM309 +1395Q309 1449 337 1473T405 1497Q444 1497 473 1473T502 1395Q502 1342 473 1317T405 1292Q365 1292 337 1317T309 1395ZM684 1395Q684 1449 712 1473T780 1497Q799 1497 816 1491T847 1473T868 1441T876 1395Q876 1342 847 1317T780 1292Q740 1292 712 1317T684 +1395Z" /> +<glyph unicode="&#xfd;" glyph-name="yacute" horiz-adv-x="1001" d="M10 1098H199L414 485Q428 445 442 401T469 313T491 228T504 152H510Q515 177 526 220T550 311T578 407T604 487L803 1098H991L557 -143Q529 -224 497 -288T421 -398T320 -467T182 -492Q130 +-492 92 -487T27 -475V-330Q48 -335 80 -338T147 -342Q195 -342 230 -331T291 -297T335 -243T369 -170L426 -10L10 1098ZM407 1268Q429 1297 452 1335T499 1413T544 1494T581 1569H800V1548Q784 1521 753 1481T683 1396T604 1311T528 1241H407V1268Z" /> +<glyph unicode="&#xfe;" glyph-name="thorn" horiz-adv-x="1200" d="M356 950Q379 985 408 1015T475 1068T562 1104T670 1118Q764 1118 841 1082T972 975T1057 797T1087 551Q1087 410 1057 304T973 125T841 17T670 -20Q611 -20 563 -7T477 27T409 78T356 139H344Q347 +105 350 74Q352 48 354 21T356 -23V-492H174V1556H356V1098L348 950H356ZM635 967Q559 967 507 944T422 874T374 757T356 592V551Q356 450 369 372T415 240T502 159T637 131Q772 131 835 240T899 553Q899 761 836 864T635 967Z" /> +<glyph unicode="&#xff;" glyph-name="ydieresis" horiz-adv-x="1001" d="M10 1098H199L414 485Q428 445 442 401T469 313T491 228T504 152H510Q515 177 526 220T550 311T578 407T604 487L803 1098H991L557 -143Q529 -224 497 -288T421 -398T320 -467T182 -492Q130 +-492 92 -487T27 -475V-330Q48 -335 80 -338T147 -342Q195 -342 230 -331T291 -297T335 -243T369 -170L426 -10L10 1098ZM484 1395Q484 1449 512 1473T580 1497Q619 1497 648 1473T677 1395Q677 1342 648 1317T580 1292Q540 1292 512 1317T484 1395ZM859 1395Q859 +1449 887 1473T955 1497Q974 1497 991 1491T1022 1473T1043 1441T1051 1395Q1051 1342 1022 1317T955 1292Q915 1292 887 1317T859 1395Z" /> +<glyph unicode="&#x2013;" glyph-name="endash" horiz-adv-x="1024" d="M82 465V633H942V465H82Z" /> +<glyph unicode="&#x2014;" glyph-name="emdash" horiz-adv-x="2048" d="M82 465V633H1966V465H82Z" /> +<glyph unicode="&#x2018;" glyph-name="quoteleft" horiz-adv-x="358" d="M37 961L23 983Q37 1037 56 1098T99 1221T148 1344T199 1462H336Q321 1401 307 1335T279 1204T255 1076T236 961H37Z" /> +<glyph unicode="&#x2019;" glyph-name="quoteright" horiz-adv-x="358" d="M322 1462L336 1440Q322 1385 303 1325T260 1202T211 1078T160 961H23Q37 1021 51 1087T79 1219T104 1347T123 1462H322Z" /> +<glyph unicode="&#x201a;" glyph-name="quotesinglbase" horiz-adv-x="512" d="M362 238L377 215Q363 161 344 100T301 -23T252 -146T201 -264H63Q78 -203 92 -137T120 -6T145 122T164 238H362Z" /> +<glyph unicode="&#x201c;" glyph-name="quotedblleft" horiz-adv-x="743" d="M422 961L408 983Q422 1037 441 1098T484 1221T533 1344T584 1462H721Q706 1401 692 1335T664 1204T640 1076T621 961H422ZM37 961L23 983Q37 1037 56 1098T99 1221T148 1344T199 1462H336Q321 +1401 307 1335T279 1204T255 1076T236 961H37Z" /> +<glyph unicode="&#x201d;" glyph-name="quotedblright" horiz-adv-x="743" d="M322 1462L336 1440Q322 1385 303 1325T260 1202T211 1078T160 961H23Q37 1021 51 1087T79 1219T104 1347T123 1462H322ZM707 1462L721 1440Q707 1385 688 1325T645 1202T596 1078T545 +961H408Q422 1021 436 1087T464 1219T489 1347T508 1462H707Z" /> +<glyph unicode="&#x201e;" glyph-name="quotedblbase" horiz-adv-x="897" d="M362 238L377 215Q363 161 344 100T301 -23T252 -146T201 -264H63Q78 -203 92 -137T120 -6T145 122T164 238H362ZM748 238L762 215Q748 161 729 100T686 -23T637 -146T586 -264H449Q463 +-203 477 -137T505 -6T530 122T549 238H748Z" /> +<glyph unicode="&#x2022;" glyph-name="bullet" horiz-adv-x="770" d="M150 748Q150 819 168 869T217 950T292 996T385 1010Q434 1010 477 996T552 951T602 869T621 748Q621 678 603 628T552 547T477 500T385 485Q335 485 292 500T218 546T168 628T150 748Z" /> +<glyph unicode="&#x2039;" glyph-name="guilsinglleft" horiz-adv-x="590" d="M82 553L391 967L508 889L270 541L508 193L391 115L82 526V553Z" /> +<glyph unicode="&#x203a;" glyph-name="guilsinglright" horiz-adv-x="590" d="M508 526L199 115L82 193L319 541L82 889L199 967L508 553V526Z" /> +</font> +</defs> +</svg> diff --git a/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-regular.ttf b/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fb8cea662b2434571debae37fa6ba09fc5f24776 GIT binary patch literal 39069 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%0AhF2i0VuZL#GkvKsN76iB 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 Z(}>jn9&a4_9=ZK}-ZuE(Us=#{@joAj&y4^8 literal 0 HcmV?d00001 diff --git a/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-regular.woff b/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..abf19899f75a0e8ab8e2d41caeecd8d764d3f08c GIT binary patch literal 24868 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 X8CoUMY*lMRVpH6ur?CLJX!hLz`Fb1d literal 0 HcmV?d00001 diff --git a/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-regular.woff2 b/reference/ucp/3.1/api/fonts/droid-sans-v6-latin-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9f93f74c3bede4b96290650f7a21c98eb1e01351 GIT binary patch literal 11304 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 literal 0 HcmV?d00001 diff --git a/reference/ucp/3.1/api/images/explorer_icons.png b/reference/ucp/3.1/api/images/explorer_icons.png new file mode 100644 index 0000000000000000000000000000000000000000..ed9d2fffb64a2e6e282b90e489d83fc4ddfac3cd GIT binary patch literal 5763 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 literal 0 HcmV?d00001 diff --git a/reference/ucp/3.1/api/images/favicon-16x16.png b/reference/ucp/3.1/api/images/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..66b1a5bfb9eadbaefcca94b53b3ab435712fbccb GIT binary patch literal 645 zcmV;00($+4P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0006^Nkl<ZIE{^y zPe_wt9LGP;^S+v9)|zFq%XCO6=GMh-35^a?$;LYER1i{!q7o4lIz&_+JQN;6B+!c& zF>*$KF7Lq(dCUz-WoSDnG~5`*r0M&<PlwGpok73L!}IX{exD!T@9!r#RJLt-6siY= zA5?SxRm4FV0x>3~wpxl8`$St;*iTWaKbDB-3v1JC{?23TYCT+R3eoNkm<Ty65Kp9( zW>KI(o=Rp`f)hrV_4LBw#sF|Recbj>QtxPq2*gb(r6~X`+j^eNEDye(y-YTjI+DCs z$B#LA)cuuuN6U~VwE=0{mIr0`PZ(jcxfC}#UeFtuFC+E_zR}(BlI>iYaU%@M?z3&n zBNggSED_Q7+V;AGjDEgeCh+FdHN1^M05;N5qKWsqf*uLt>i4zjBCtZMV#nMr6WB4c z=vr0rzOeQVz^{X9P8HnlY`af#YlZq#=Q&Y*mYv-!2tkEbO*WU}SLO$uZ4a1R9AR^7 z6;RFc;6DPCDr6%-<Wm-fQz?bmPaXgrM7*xnbLnStp1H*lu3UIbGPBIObudazR?={~ zmC-MGf6kor03t2{!`Bol0(Y%HRO&Tl9#rZzm{zWM_cew93@KpD>kgPMrx$=&Vurh2 zAIb#ob$uk3m;u1$Y^S|3XbKoB8KkAbSF@dL|HmLb?4IMCqjgA=+Ca%DtEpsWDL8I~ z*+@r^B)gnmZuuu^aI{7!9pw^{XDGWbnwZHi)7EOyFke#$uRCZW#IQgfT&B|c_c~(; fcq^qAFU9`_7RU2E7DPsA00000NkvXXu0mjf!rmha literal 0 HcmV?d00001 diff --git a/reference/ucp/3.1/api/images/favicon-32x32.png b/reference/ucp/3.1/api/images/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..32f319f89bd07e691de2ccaf21632bb9793a9cd9 GIT binary patch literal 1654 zcmV-+28sEJP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F8000I(Nkl<ZScR>Z zYjBlU6^5U+_c^%{LI@<yBq>BBNTw~6nu{hdI!rrEwGFgm#aci_3sGk}<7m?sf9eb^ z&gef46cL=-R%Vz2t>aV&tTwa+k{T7cTawZs4M`*flAN4x@8yqkX_Av0()aswzFB*( z_g(v2XYI9wX~KJNyap8@D?yj3`UN7k2td_e5i#!rt)NGYgj$R-e!9LVh4Vp9;GzxA zMK7v)oerFfUJTsuv(5*(Q~8(4BX%1_<OL&kZY)yea_>Ls=xV0tMmqzMUI4PvXOov* zN@+ngMR`jQiMjRax>fZ#BX;*hCo--8?_I7}_iH1eH6lVJdXsn0?&9dFMn390GigKx zvpz#@c|A3YzfF2L8&$=tJ7mOs!x(#QN&()xLa+W!YeGv@mDYd1!hz-=a(&=GlM;_b zPG%vitA9$x!Y2?Bybn%_m{rEu%M%KSMehG%O=wBrhS}Hj9gdybeM`h+QN3s*YnL|? zvgvUVc7-t}c@jwh@o&E0n$ViS4YT|3W1Q?bbX(*J+;!)d`PKvb6Cw_Y*hdmMVUhyW zZ8T!ns4DxK>OV1ZfPY>3J+HpK1yx1F)_HZC5;g(w-sLEI-iR$|x$s+l^XGNR&0(9# z+U1ShGrx|W{)=pX?Y>FLo_?g2xjCQaWXJ2g+O&meFp#vZ`{G`z$~NHDbpvJAgsz!b z^uFGREr>*Ka-jL?Q4VX$H&eA}1J?(yaQ5=yDWg5td6>SNom7^sV|jV~DBHp21|rcL z7_oCzwI0BD?~T9~fOpTln3C=D^Q!>ZbNFi<93yT#96a8@?!#XNptPWRl&yd8BaWWl z34kD5y!Xa<4JwQYEl^dOPB*4F%u0_Hvw`81zwm@e6sU}FPKxd5=|)r)V{EC{pvuH* zJ6!Jl2VH$<$8i_SQ&l%@0nSHJRgly=clG*tI(ymx5M-qRT?Ww6)jY1Vth8L5k8)$E zd)fkqhWl`Sm>KDF#<jO!jd3Zu%&7VW06jO_Qx+EG-9yRT`}p8$3xOL##1gU@NxL;+ ztO+OILpB2ui}O+1yP7GUvy|ezr73=U`(s?HexXTRsRNP!j#~6^<u;yqw2er#pZ)JV z1;BS7`~yFE;xe;l6k|=8tzS9Cj~+XNHEHBz74hS*ck;b2{SkoIj(wlO$Tb=seUG}T z7e@I`a2c_Mh6#|k(KP<VV37C|TVs;zB)&(IIrH&8nfTI0qCw<D$fi}ieqt+sYTGu- zSUl%mez3ZkOWiH}{7@}MEY^gHx*-6pNdv(7VIcMiypQ75@zg_a@u@p%_}RhFbE&&^ zl;8W8K0{sA^8_x^X5yU;dD*2Y>N<Pc_^{_a=H*w$>bSZjd4f1W4iLB@ygIB2Q(Evj zKI~~rAs@*lV&6Bw-ypSUBrp)UhBaZbGx8@q#<9o<&%&CtWIY&*`2|&ppREQs0#KB< zgo0U%##!zYYNsv0+Hfp4R8wsEISVP7vn=s?#2B$H-n(`Yp>|B|1{jR=0g#zCWqX%I zR@!U;hN9O~Y_;X}i3a5ZBlfs4#&|`42~e~6Npdm^M{Vf1dK`d_D_^Fr>iH?jAFkZS zH}BsU+uL<~lx=2a0X5~D0Z?>@F~%DJ5oz@5yVJwjtghZZYSYovJ2-LvC30t!u()K^ zlmg02Rxx|VJX$Zjl5)4yRc$9DJQJ_JTg3bVMs!5ZMK_7qUje-Q*G)8^+cPEEt)Q}O zJ?p-(7XYvB$&d~2f)O2&h~4AW9TE}NE^p+nc@KSJ<mGoh$m1(sjD34`Zy2%3Ml+=; zRrPNh6S_Na5q{THf7>TfS+;@4SL}@UgYJ}w)Q)V=$7{=rRQ;RAgzi>VS}wfAf#wGK z2d~@`@yyISSY5T9%ChzGtaqnG%mc=liQDoKB63yzUJ+Xt8%%ES&Y7Jwo!-IKzH^fj z=jW7BTfT+b^39}&XT}GU;0+^o{j>&?k41Rn)ol`yZ6ims&fdS%-gS)L{`TapmX$u6 zyqTqx=2ufZ=iU*cneSC~&lw5r`oD)&=Y!n94L=*WXvefB)7Ws@5xC*4w>6xOb0Q(H zL4_bI75%KLUtq)*#v*lBL~MLK=dE~!3#Q}ufBOd*=m{K;N&o-=07*qoM6N<$g6kDD A00000 literal 0 HcmV?d00001 diff --git a/reference/ucp/3.1/api/images/favicon.ico b/reference/ucp/3.1/api/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..8b60bcf06a7685b9ea53983c125e7058906fbcbd GIT binary patch literal 5430 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 literal 0 HcmV?d00001 diff --git a/reference/ucp/3.1/api/images/logo_small.png b/reference/ucp/3.1/api/images/logo_small.png new file mode 100644 index 0000000000000000000000000000000000000000..5496a65579ae903d4008f9d268fac422ef9d3679 GIT binary patch literal 770 zcmV+d1O5DoP)<h;3K|Lk000e1NJLTq0015U0015c1^@s6J20-I0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!q)9|URCwCNS3PXgKoov)mx?ZCXvOFe zK?hd?DH21?f<Rp|bSP7tt%#w?!kTtNVn{o{!ca4@AdyH^>K11rQipnJ)eVnTSzHNF zN8ab&RhE5cC$$4FI-PZXx$pga@8yN)KS}L2Us~^y$(x-xioWbnFcV+~b9ig=!ft8Q z0RD+rpA8910Smyc0GviVUOPGiY6YM@-r6Nn8S&~cxHl27$l)-R$1(!Xx045RDy;_& zeXkG{;_#i9rz0B6149#Ddj=KM6MV^rTD%ylzGdCBX<^=^@I0X3SCR7OMbn}sUKdeF zKO-flaJa%@kJ27@Rod?J9=+Q<rfqi^8=#Y?wj1kwX#b$c_Zv$4C0UJ>x5|=PtG8n> zy~9rIu}+48M}FW5Bbqw3t#po?c?kmG!FX32W(dOjzTb+U@64MzHItoeB!M0Jcd}|E z>ekW`<~FjR_ZVVJkF|_htH&v!({Oad?xax?0K0sLwBY%nr46DpCmIIaa?@|Y&?n0q z@kJlMy`pE2HtEgASNd~xNzt$Kn7w#^Fy5oi`e$bUE*+f>Vk5z7=-2pj68afrqli$_ zvqe##5V?a)QU_-s9+s?mJYT5m`MQDRH4cYs^L1lCW;Dua5<w(jsQdP=t_rRj2zL@+ zcgfLNKa<-c0Vu+oQ+k1s`Vr4aUfq_EQ4-j%;>Ln9lG0BC@9DJQHA(}y&Z}$apb{kU zbezR}b^|O%6i+$BFsT3zqAe8wg9`vfiRp#{)z2bsJw`vBQL7Bt!IexM3$Hsf0tHK3 z+R=x{lR$K`s;7__?ASPW=3?*xgCpGaiadSEpoi0pw-_V#OXM8Ap{4qlG08x0ig9IY z3Ijqh(t1_=g#jocuqyJO=729e9OSiNDSrhR0Gc5G)(QGH?*IS*07*qoM6N<$f<~fU A82|tP literal 0 HcmV?d00001 diff --git a/reference/ucp/3.1/api/images/pet_store_api.png b/reference/ucp/3.1/api/images/pet_store_api.png new file mode 100644 index 0000000000000000000000000000000000000000..f9f9cd4aeb35a108c4b2f1dddb59977d56c595d8 GIT binary patch literal 824 zcmV-81IPS{P)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00004b3#c}2nYxW zd<bNS00009a7bBm000XT000XT0n*)m`~Uy|9CSrkbW?9;ba!ELWdK2BZ(?O2Mrm?o zcW-iQb09-gHF34$HUIzuvPnciR7i=fl}Tt6K@>n=Rd;8mVwQ<w7Vu!yh)%}+A_y4| z-UNe}fD5=LMo};*QSmG;(NPF0A}$9}@FM6z1efSh#09bl12MQ@5|hbdlCI2Ty1bZM z2B)3;YyJP;ug@<^05qRC<;3Ih6RztX_B>NY4k4xJQ%YT}s;WA7;r!W@XgqjG_4og} z8w>{OB9REiMa8-B85td+y}bji^~2KA`Md4j-u{zw=H%Da@83%_8qEnl9k1WK;pWX- zb-lg)pQYAreK@>)*5Clqni{IZVYGG+NY67Bp-^bn;L{Nbh44I6CIK+n7p8#U?;fCA zYMFcy%UEjup4fgnli%NyzSe*@419QuU9lJ|T$?f9w?HIQ$RwEJGK7^!y7LhxIgVJp z9c!kB{0aydM1epU1NJ=h(<e-{>}2X?Y{qn70yEN$dwm~favs=VbQ+T?!AvSl{P~PE zS&zsJbTQttne>kdM4$jBhLMFy@I1)3u-4cAzrY*l!o9eK^w%+jqY!oi(Ri8sMauvK zwnCP#%3hEH#FtNqq{iT(?=_JA_8XC>5Y8Y@!wmxKb|A87ZbpHA`+%v~0pt{5Nko1L zLKR^25YExt1lH7L1<xo5e7uJ-X(+4!X+Qw(Fk<f&f<EAoVT;7lP2gydL*Q621)^}0 zf)y)$!86{#+1P{#mE*;qp`Sg$Py%CM#x#`r6J&e`_Udg|)my<$z<3`7B_hx9N9P}F zYK3c24KdPPZP*+3AQ!CtKY<XLC+kF;aH37V!P87BrTCdh4EhHAD~1vYq?CP9Db?E1 z*~P0@ZL<b%YkN(5M<+_DR&nfjv(wYlb0-iC>{t<rP*hZu6MS@Zbo$f3zhue6T>{|P z@n)yHyZf~3>LZ@#&CNw1rA#OlY^|)UJQKUrlKKO&x%wPhH}6&e0000<MNUMnLSTZR CaCsR3 literal 0 HcmV?d00001 diff --git a/reference/ucp/3.1/api/images/throbber.gif b/reference/ucp/3.1/api/images/throbber.gif new file mode 100644 index 0000000000000000000000000000000000000000..06393889242fb3ea9e0205fa84369ec7bb66d15a GIT binary patch literal 9257 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 literal 0 HcmV?d00001 diff --git a/reference/ucp/3.1/api/images/wordnik_api.png b/reference/ucp/3.1/api/images/wordnik_api.png new file mode 100644 index 0000000000000000000000000000000000000000..dca4f1455ac45e9cdc3659d77d6a47370048eb1c GIT binary patch literal 980 zcmV;_11tQAP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00004b3#c}2nYxW zd<bNS00009a7bBm000XT000XT0n*)m`~Uy|9CSrkbW?9;ba!ELWdK2BZ(?O2Mrm?o zcW-iQb09-gHF34$HUIzvPDw;TR7i=Xl}%_|RTRg6XC{pqCo`k81cgjzl5UhNtQ+m3 zt*8-2j9OY3)<lrHC`CuamA2RkRj?pvrT9T=!KPmeE2XVSKmvXtEehhoZtP6biP(r$ zCzI(*oO|DKk(tST^8o|?;qdPLzjOZQ+>dvj&>@zN_HP5m0E=+A=efDBI*IG*Gy%%< zz@yc%2XvGm)QQv5k^Z&#4C6!9MwX8BCmQ{3eAX|GTwn#>(PS6PoB=$Pw<CKBKLBV& zb_3mx>n*?wz?%Tx2gwJ4apoy`A15D=>?%}hj`fV*p=6XW=YR(sp))`dxTnqHE&{&; zPdeO}SVkf*6_$c45W3Z}u|Z&a8{r!6ZNY62S>5{jAd)Hkjg@h%@c)c#BvZK2lmGw| z`Vh+%ECkF{t=)XpF3Z1bj=Pe9LpHbnQwjeTU#=4hB76#52DU2P2Ouj~^lRWwRd%eN zBw_z%FL0CUlk!`s2!<DdgRAm78r^sGWZmbD^^*Y6eOJdEZYRibN9$EW9FD#=y9glV zY-%$wg76eD;3WSxx_@?yTTMBeP5?x+GsOTup85vZ>`>QG&H__i_)I9=AuA=jn4<xW z!ZoN3`U>0z>;@hRsg)>J(58cx;l;h_zE*-R7Wbz6Ff#1Mss*)zTImU4`2@?a7y;v4 zH=lJ_PM5Rkw*AU`Cmq6aa>chASJ&Z3Ebj`y;w$MM!fa6`13VU7Kc|T5Xl#7ecj?mp zREV-nBJ6C)`?&}QDe_(KM>BrlN|iF{7-90j+J>N0^vY=LK;8!^9Y_m*aRPX{!S6ag zgRw(13pJvt`;{^S-vgUk?8pV_Vh4a4P7~}uHT)ENFMqd71QIOl8Q6+24TM_+158z) z54U-*C{M)S&!2Bfu&`?&#2Ti6;WojY;%6+I;uCof+*T2iUMz!7Eg<{}#DJSx)C$5f zP(oSf>_s1t06cJ-U3?<9poS4O{Go>H>hro^ks;r3mm1Ehfq?m(_YE8UiVUgG%W9ZY z!@O^}KR%JW*0e=66rUYj5BP~=x%$^x92-m_<lKT#h7yyxUmTxX5xNt{a`UcUQ-XFV zKC|Hq;F0R|QsTswRzI62boA2)P|LK|+W^y@#{CEF=vbZ23tjU70000<MNUMnLSTXw CR=u(S literal 0 HcmV?d00001 diff --git a/reference/ucp/3.1/api/index.html b/reference/ucp/3.1/api/index.html new file mode 100644 index 0000000000..c496e357eb --- /dev/null +++ b/reference/ucp/3.1/api/index.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="UTF-8"> + <title>Universal Control Plane API Documentation</title> + + <link href='custom/custom.css' media='screen' rel='stylesheet' type='text/css'/> + <link href='css/typography.css' media='screen' rel='stylesheet' type='text/css'/> + <link href='css/reset.css' media='screen' rel='stylesheet' type='text/css'/> + <link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/> + <link href='css/reset.css' media='print' rel='stylesheet' type='text/css'/> + <link href='css/print.css' media='print' rel='stylesheet' type='text/css'/> + + <script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script> + <script src='lib/jquery.slideto.min.js' type='text/javascript'></script> + <script src='lib/jquery.wiggle.min.js' type='text/javascript'></script> + <script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script> + <script src='lib/handlebars-2.0.0.js' type='text/javascript'></script> + <script src='lib/underscore-min.js' type='text/javascript'></script> + <script src='lib/backbone-min.js' type='text/javascript'></script> + <script src='swagger-ui.min.js' type='text/javascript'></script> + <script src='lib/highlight.7.3.pack.js' type='text/javascript'></script> + <script src='lib/marked.js' type='text/javascript'></script> + <script src='lib/swagger-oauth.js' type='text/javascript'></script> + <script src='main.js' type='text/javascript'></script> +</head> + +<body class="swagger-section"> + <div id="swagger-ui-container" class="swagger-ui-wrap"></div> +</body> + +</html> diff --git a/reference/ucp/3.1/api/index.md b/reference/ucp/3.1/api/index.md new file mode 100644 index 0000000000..6db4fe4dbe --- /dev/null +++ b/reference/ucp/3.1/api/index.md @@ -0,0 +1,29 @@ +--- +description: Learn how to use the Universal Control Plane REST API +keywords: ucp, api, reference +title: Universal Control Plane 3.0 API +--- + +<div class="swagger-section"> +<div id="swagger-ui-container" class="swagger-ui-wrap"></div> + +<link href='custom/custom.css' media='screen' rel='stylesheet' type='text/css'/> +<link href='css/typography.css' media='screen' rel='stylesheet' type='text/css'/> +<link href='css/reset.css' media='screen' rel='stylesheet' type='text/css'/> +<link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/> +<link href='css/reset.css' media='print' rel='stylesheet' type='text/css'/> +<link href='css/print.css' media='print' rel='stylesheet' type='text/css'/> + +<script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script> +<script src='lib/jquery.slideto.min.js' type='text/javascript'></script> +<script src='lib/jquery.wiggle.min.js' type='text/javascript'></script> +<script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script> +<script src='lib/handlebars-2.0.0.js' type='text/javascript'></script> +<script src='lib/underscore-min.js' type='text/javascript'></script> +<script src='lib/backbone-min.js' type='text/javascript'></script> +<script src='swagger-ui.min.js' type='text/javascript'></script> +<script src='lib/highlight.7.3.pack.js' type='text/javascript'></script> +<script src='lib/marked.js' type='text/javascript'></script> +<script src='lib/swagger-oauth.js' type='text/javascript'></script> +<script src='main.js' type='text/javascript'></script> +</div> diff --git a/reference/ucp/3.1/api/lang/en.js b/reference/ucp/3.1/api/lang/en.js new file mode 100644 index 0000000000..776a8b72e0 --- /dev/null +++ b/reference/ucp/3.1/api/lang/en.js @@ -0,0 +1,53 @@ +'use strict'; + +/* jshint quotmark: double */ +window.SwaggerTranslator.learn({ + "Warning: Deprecated":"Warning: Deprecated", + "Implementation Notes":"Implementation Notes", + "Response Class":"Response Class", + "Status":"Status", + "Parameters":"Parameters", + "Parameter":"Parameter", + "Value":"Value", + "Description":"Description", + "Parameter Type":"Parameter Type", + "Data Type":"Data Type", + "Response Messages":"Response Messages", + "HTTP Status Code":"HTTP Status Code", + "Reason":"Reason", + "Response Model":"Response Model", + "Request URL":"Request URL", + "Response Body":"Response Body", + "Response Code":"Response Code", + "Response Headers":"Response Headers", + "Hide Response":"Hide Response", + "Headers":"Headers", + "Try it out!":"Try it out!", + "Show/Hide":"Show/Hide", + "List Operations":"List Operations", + "Expand Operations":"Expand Operations", + "Raw":"Raw", + "can't parse JSON. Raw result":"can't parse JSON. Raw result", + "Model Schema":"Model Schema", + "Model":"Model", + "apply":"apply", + "Username":"Username", + "Password":"Password", + "Terms of service":"Terms of service", + "Created by":"Created by", + "See more at":"See more at", + "Contact the developer":"Contact the developer", + "api version":"api version", + "Response Content Type":"Response Content Type", + "fetching resource":"fetching resource", + "fetching resource list":"fetching resource list", + "Explore":"Explore", + "Show Swagger Petstore Example Apis":"Show Swagger Petstore Example Apis", + "Can't read from server. It may not have the appropriate access-control-origin settings.":"Can't read from server. It may not have the appropriate access-control-origin settings.", + "Please specify the protocol for":"Please specify the protocol for", + "Can't read swagger JSON from":"Can't read swagger JSON from", + "Finished Loading Resource Information. Rendering Swagger UI":"Finished Loading Resource Information. Rendering Swagger UI", + "Unable to read api":"Unable to read api", + "from path":"from path", + "server returned":"server returned" +}); diff --git a/reference/ucp/3.1/api/lang/es.js b/reference/ucp/3.1/api/lang/es.js new file mode 100644 index 0000000000..a8dff60b6a --- /dev/null +++ b/reference/ucp/3.1/api/lang/es.js @@ -0,0 +1,52 @@ +'use strict'; + +/* jshint quotmark: double */ +window.SwaggerTranslator.learn({ + "Warning: Deprecated":"Advertencia: Obsoleto", + "Implementation Notes":"Notas de implementación", + "Response Class":"Clase de la Respuesta", + "Status":"Status", + "Parameters":"Parámetros", + "Parameter":"Parámetro", + "Value":"Valor", + "Description":"Descripción", + "Parameter Type":"Tipo del Parámetro", + "Data Type":"Tipo del Dato", + "Response Messages":"Mensajes de la Respuesta", + "HTTP Status Code":"Código de Status HTTP", + "Reason":"Razón", + "Response Model":"Modelo de la Respuesta", + "Request URL":"URL de la Solicitud", + "Response Body":"Cuerpo de la Respuesta", + "Response Code":"Código de la Respuesta", + "Response Headers":"Encabezados de la Respuesta", + "Hide Response":"Ocultar Respuesta", + "Try it out!":"Pruébalo!", + "Show/Hide":"Mostrar/Ocultar", + "List Operations":"Listar Operaciones", + "Expand Operations":"Expandir Operaciones", + "Raw":"Crudo", + "can't parse JSON. Raw result":"no puede parsear el JSON. Resultado crudo", + "Model Schema":"Esquema del Modelo", + "Model":"Modelo", + "apply":"aplicar", + "Username":"Nombre de usuario", + "Password":"Contraseña", + "Terms of service":"Términos de Servicio", + "Created by":"Creado por", + "See more at":"Ver más en", + "Contact the developer":"Contactar al desarrollador", + "api version":"versión de la api", + "Response Content Type":"Tipo de Contenido (Content Type) de la Respuesta", + "fetching resource":"buscando recurso", + "fetching resource list":"buscando lista del recurso", + "Explore":"Explorar", + "Show Swagger Petstore Example Apis":"Mostrar Api Ejemplo de Swagger Petstore", + "Can't read from server. It may not have the appropriate access-control-origin settings.":"No se puede leer del servidor. Tal vez no tiene la configuración de control de acceso de origen (access-control-origin) apropiado.", + "Please specify the protocol for":"Por favor, especificar el protocola para", + "Can't read swagger JSON from":"No se puede leer el JSON de swagger desde", + "Finished Loading Resource Information. Rendering Swagger UI":"Finalizada la carga del recurso de Información. Mostrando Swagger UI", + "Unable to read api":"No se puede leer la api", + "from path":"desde ruta", + "server returned":"el servidor retornó" +}); diff --git a/reference/ucp/3.1/api/lang/pt.js b/reference/ucp/3.1/api/lang/pt.js new file mode 100644 index 0000000000..f2e7c13d41 --- /dev/null +++ b/reference/ucp/3.1/api/lang/pt.js @@ -0,0 +1,53 @@ +'use strict'; + +/* jshint quotmark: double */ +window.SwaggerTranslator.learn({ + "Warning: Deprecated":"Aviso: Depreciado", + "Implementation Notes":"Notas de Implementação", + "Response Class":"Classe de resposta", + "Status":"Status", + "Parameters":"Parâmetros", + "Parameter":"Parâmetro", + "Value":"Valor", + "Description":"Descrição", + "Parameter Type":"Tipo de parâmetro", + "Data Type":"Tipo de dados", + "Response Messages":"Mensagens de resposta", + "HTTP Status Code":"Código de status HTTP", + "Reason":"Razão", + "Response Model":"Modelo resposta", + "Request URL":"URL requisição", + "Response Body":"Corpo da resposta", + "Response Code":"Código da resposta", + "Response Headers":"Cabeçalho da resposta", + "Headers":"Cabeçalhos", + "Hide Response":"Esconder resposta", + "Try it out!":"Tente agora!", + "Show/Hide":"Mostrar/Esconder", + "List Operations":"Listar operações", + "Expand Operations":"Expandir operações", + "Raw":"Cru", + "can't parse JSON. Raw result":"Falha ao analisar JSON. Resulto cru", + "Model Schema":"Modelo esquema", + "Model":"Modelo", + "apply":"Aplicar", + "Username":"Usuário", + "Password":"Senha", + "Terms of service":"Termos do serviço", + "Created by":"Criado por", + "See more at":"Veja mais em", + "Contact the developer":"Contate o desenvolvedor", + "api version":"Versão api", + "Response Content Type":"Tipo de conteúdo da resposta", + "fetching resource":"busca recurso", + "fetching resource list":"buscando lista de recursos", + "Explore":"Explorar", + "Show Swagger Petstore Example Apis":"Show Swagger Petstore Example Apis", + "Can't read from server. It may not have the appropriate access-control-origin settings.":"Não é possível ler do servidor. Pode não ter as apropriadas configurações access-control-origin", + "Please specify the protocol for":"Por favor especifique o protocolo", + "Can't read swagger JSON from":"Não é possível ler o JSON Swagger de", + "Finished Loading Resource Information. Rendering Swagger UI":"Carregar informação de recurso finalizada. Renderizando Swagger UI", + "Unable to read api":"Não foi possível ler api", + "from path":"do caminho", + "server returned":"servidor retornou" +}); diff --git a/reference/ucp/3.1/api/lang/ru.js b/reference/ucp/3.1/api/lang/ru.js new file mode 100644 index 0000000000..065100f73f --- /dev/null +++ b/reference/ucp/3.1/api/lang/ru.js @@ -0,0 +1,52 @@ +'use strict'; + +/* jshint quotmark: double */ +window.SwaggerTranslator.learn({ + "Warning: Deprecated":"Ворнинг: Депрекейтед", + "Implementation Notes":"Заметки", + "Response Class":"Пример ответа", + "Status":"Статус", + "Parameters":"Параметры", + "Parameter":"Параметр", + "Value":"Значение", + "Description":"Описание", + "Parameter Type":"Тип параметра", + "Data Type":"Тип данных", + "HTTP Status Code":"HTTP код", + "Reason":"Причина", + "Response Model":"Структура ответа", + "Request URL":"URL запроса", + "Response Body":"Тело ответа", + "Response Code":"HTTP код ответа", + "Response Headers":"Заголовки ответа", + "Hide Response":"Спрятать ответ", + "Response Messages":"Что может прийти в ответ", + "Try it out!":"Попробовать!", + "Show/Hide":"Показать/Скрыть", + "List Operations":"Операции кратко", + "Expand Operations":"Операции подробно", + "Raw":"В сыром виде", + "can't parse JSON. Raw result":"Не удается распарсить ответ:", + "Model Schema":"Структура", + "Model":"Описание", + "apply":"применить", + "Username":"Имя пользователя", + "Password":"Пароль", + "Terms of service":"Условия использования", + "Created by":"Разработано", + "See more at":"Еще тут", + "Contact the developer":"Связаться с разработчиком", + "api version":"Версия API", + "Response Content Type":"Content Type ответа", + "fetching resource":"Получение ресурса", + "fetching resource list":"Получение ресурсов", + "Explore":"Поехали", + "Show Swagger Petstore Example Apis":"Показать примеры АПИ", + "Can't read from server. It may not have the appropriate access-control-origin settings.":"Не удается получить ответ от сервера. Возможно, какая-то лажа с настройками доступа", + "Please specify the protocol for":"Пожалуйста, укажите протогол для", + "Can't read swagger JSON from":"Не получается прочитать swagger json из", + "Finished Loading Resource Information. Rendering Swagger UI":"Загрузка информации о ресурсах завершена. Рендерим", + "Unable to read api":"Не удалось прочитать api", + "from path":"по адресу", + "server returned":"сервер сказал" +}); diff --git a/reference/ucp/3.1/api/lang/tr.js b/reference/ucp/3.1/api/lang/tr.js new file mode 100644 index 0000000000..16426a9c34 --- /dev/null +++ b/reference/ucp/3.1/api/lang/tr.js @@ -0,0 +1,53 @@ +'use strict'; + +/* jshint quotmark: double */ +window.SwaggerTranslator.learn({ + "Warning: Deprecated":"Uyarı: Deprecated", + "Implementation Notes":"Gerçekleştirim Notları", + "Response Class":"Dönen Sınıf", + "Status":"Statü", + "Parameters":"Parametreler", + "Parameter":"Parametre", + "Value":"Değer", + "Description":"Açıklama", + "Parameter Type":"Parametre Tipi", + "Data Type":"Veri Tipi", + "Response Messages":"Dönüş Mesajı", + "HTTP Status Code":"HTTP Statü Kodu", + "Reason":"Gerekçe", + "Response Model":"Dönüş Modeli", + "Request URL":"İstek URL", + "Response Body":"Dönüş İçeriği", + "Response Code":"Dönüş Kodu", + "Response Headers":"Dönüş Üst Bilgileri", + "Hide Response":"Dönüşü Gizle", + "Headers":"Üst Bilgiler", + "Try it out!":"Dene!", + "Show/Hide":"Göster/Gizle", + "List Operations":"Operasyonları Listele", + "Expand Operations":"Operasyonları Aç", + "Raw":"Ham", + "can't parse JSON. Raw result":"JSON çözümlenemiyor. Ham sonuç", + "Model Schema":"Model Şema", + "Model":"Model", + "apply":"uygula", + "Username":"Kullanıcı Adı", + "Password":"Parola", + "Terms of service":"Servis şartları", + "Created by":"Oluşturan", + "See more at":"Daha fazlası için", + "Contact the developer":"Geliştirici ile İletişime Geçin", + "api version":"api versiyon", + "Response Content Type":"Dönüş İçerik Tipi", + "fetching resource":"kaynak getiriliyor", + "fetching resource list":"kaynak listesi getiriliyor", + "Explore":"Keşfet", + "Show Swagger Petstore Example Apis":"Swagger Petstore Örnek Api'yi Gör", + "Can't read from server. It may not have the appropriate access-control-origin settings.":"Sunucudan okuma yapılamıyor. Sunucu access-control-origin ayarlarınızı kontrol edin.", + "Please specify the protocol for":"Lütfen istenen adres için protokol belirtiniz", + "Can't read swagger JSON from":"Swagger JSON bu kaynaktan okunamıyor", + "Finished Loading Resource Information. Rendering Swagger UI":"Kaynak baglantısı tamamlandı. Swagger UI gösterime hazırlanıyor", + "Unable to read api":"api okunamadı", + "from path":"yoldan", + "server returned":"sunucuya dönüldü" +}); diff --git a/reference/ucp/3.1/api/lang/translator.js b/reference/ucp/3.1/api/lang/translator.js new file mode 100644 index 0000000000..591f6d4094 --- /dev/null +++ b/reference/ucp/3.1/api/lang/translator.js @@ -0,0 +1,39 @@ +'use strict'; + +/** + * Translator for documentation pages. + * + * To enable translation you should include one of language-files in your index.html + * after <script src='lang/translator.js' type='text/javascript'></script>. + * For example - <script src='lang/ru.js' type='text/javascript'></script> + * + * If you wish to translate some new texsts you should do two things: + * 1. Add a new phrase pair ("New Phrase": "New Translation") into your language file (for example lang/ru.js). It will be great if you add it in other language files too. + * 2. Mark that text it templates this way <anyHtmlTag data-sw-translate>New Phrase</anyHtmlTag> or <anyHtmlTag data-sw-translate value='New Phrase'/>. + * The main thing here is attribute data-sw-translate. Only inner html, title-attribute and value-attribute are going to translate. + * + */ +window.SwaggerTranslator = { + + _words:[], + + translate: function(sel) { + var $this = this; + sel = sel || '[data-sw-translate]'; + + $(sel).each(function() { + $(this).html($this._tryTranslate($(this).html())); + + $(this).val($this._tryTranslate($(this).val())); + $(this).attr('title', $this._tryTranslate($(this).attr('title'))); + }); + }, + + _tryTranslate: function(word) { + return this._words[$.trim(word)] !== undefined ? this._words[$.trim(word)] : word; + }, + + learn: function(wordsMap) { + this._words = wordsMap; + } +}; diff --git a/reference/ucp/3.1/api/lib/backbone-min.js b/reference/ucp/3.1/api/lib/backbone-min.js new file mode 100644 index 0000000000..a3f544be6d --- /dev/null +++ b/reference/ucp/3.1/api/lib/backbone-min.js @@ -0,0 +1,15 @@ +// Backbone.js 1.1.2 + +(function(t,e){if(typeof define==="function"&&define.amd){define(["underscore","jquery","exports"],function(i,r,s){t.Backbone=e(t,s,i,r)})}else if(typeof exports!=="undefined"){var i=require("underscore");e(t,exports,i)}else{t.Backbone=e(t,{},t._,t.jQuery||t.Zepto||t.ender||t.$)}})(this,function(t,e,i,r){var s=t.Backbone;var n=[];var a=n.push;var o=n.slice;var h=n.splice;e.VERSION="1.1.2";e.$=r;e.noConflict=function(){t.Backbone=s;return this};e.emulateHTTP=false;e.emulateJSON=false;var u=e.Events={on:function(t,e,i){if(!c(this,"on",t,[e,i])||!e)return this;this._events||(this._events={});var r=this._events[t]||(this._events[t]=[]);r.push({callback:e,context:i,ctx:i||this});return this},once:function(t,e,r){if(!c(this,"once",t,[e,r])||!e)return this;var s=this;var n=i.once(function(){s.off(t,n);e.apply(this,arguments)});n._callback=e;return this.on(t,n,r)},off:function(t,e,r){var s,n,a,o,h,u,l,f;if(!this._events||!c(this,"off",t,[e,r]))return this;if(!t&&!e&&!r){this._events=void 0;return this}o=t?[t]:i.keys(this._events);for(h=0,u=o.length;h<u;h++){t=o[h];if(a=this._events[t]){this._events[t]=s=[];if(e||r){for(l=0,f=a.length;l<f;l++){n=a[l];if(e&&e!==n.callback&&e!==n.callback._callback||r&&r!==n.context){s.push(n)}}}if(!s.length)delete this._events[t]}}return this},trigger:function(t){if(!this._events)return this;var e=o.call(arguments,1);if(!c(this,"trigger",t,e))return this;var i=this._events[t];var r=this._events.all;if(i)f(i,e);if(r)f(r,arguments);return this},stopListening:function(t,e,r){var s=this._listeningTo;if(!s)return this;var n=!e&&!r;if(!r&&typeof e==="object")r=this;if(t)(s={})[t._listenId]=t;for(var a in s){t=s[a];t.off(e,r,this);if(n||i.isEmpty(t._events))delete this._listeningTo[a]}return this}};var l=/\s+/;var c=function(t,e,i,r){if(!i)return true;if(typeof i==="object"){for(var s in i){t[e].apply(t,[s,i[s]].concat(r))}return false}if(l.test(i)){var n=i.split(l);for(var a=0,o=n.length;a<o;a++){t[e].apply(t,[n[a]].concat(r))}return false}return true};var f=function(t,e){var i,r=-1,s=t.length,n=e[0],a=e[1],o=e[2];switch(e.length){case 0:while(++r<s)(i=t[r]).callback.call(i.ctx);return;case 1:while(++r<s)(i=t[r]).callback.call(i.ctx,n);return;case 2:while(++r<s)(i=t[r]).callback.call(i.ctx,n,a);return;case 3:while(++r<s)(i=t[r]).callback.call(i.ctx,n,a,o);return;default:while(++r<s)(i=t[r]).callback.apply(i.ctx,e);return}};var d={listenTo:"on",listenToOnce:"once"};i.each(d,function(t,e){u[e]=function(e,r,s){var n=this._listeningTo||(this._listeningTo={});var a=e._listenId||(e._listenId=i.uniqueId("l"));n[a]=e;if(!s&&typeof r==="object")s=this;e[t](r,s,this);return this}});u.bind=u.on;u.unbind=u.off;i.extend(e,u);var p=e.Model=function(t,e){var r=t||{};e||(e={});this.cid=i.uniqueId("c");this.attributes={};if(e.collection)this.collection=e.collection;if(e.parse)r=this.parse(r,e)||{};r=i.defaults({},r,i.result(this,"defaults"));this.set(r,e);this.changed={};this.initialize.apply(this,arguments)};i.extend(p.prototype,u,{changed:null,validationError:null,idAttribute:"id",initialize:function(){},toJSON:function(t){return i.clone(this.attributes)},sync:function(){return e.sync.apply(this,arguments)},get:function(t){return this.attributes[t]},escape:function(t){return i.escape(this.get(t))},has:function(t){return this.get(t)!=null},set:function(t,e,r){var s,n,a,o,h,u,l,c;if(t==null)return this;if(typeof t==="object"){n=t;r=e}else{(n={})[t]=e}r||(r={});if(!this._validate(n,r))return false;a=r.unset;h=r.silent;o=[];u=this._changing;this._changing=true;if(!u){this._previousAttributes=i.clone(this.attributes);this.changed={}}c=this.attributes,l=this._previousAttributes;if(this.idAttribute in n)this.id=n[this.idAttribute];for(s in n){e=n[s];if(!i.isEqual(c[s],e))o.push(s);if(!i.isEqual(l[s],e)){this.changed[s]=e}else{delete this.changed[s]}a?delete c[s]:c[s]=e}if(!h){if(o.length)this._pending=r;for(var f=0,d=o.length;f<d;f++){this.trigger("change:"+o[f],this,c[o[f]],r)}}if(u)return this;if(!h){while(this._pending){r=this._pending;this._pending=false;this.trigger("change",this,r)}}this._pending=false;this._changing=false;return this},unset:function(t,e){return this.set(t,void 0,i.extend({},e,{unset:true}))},clear:function(t){var e={};for(var r in this.attributes)e[r]=void 0;return this.set(e,i.extend({},t,{unset:true}))},hasChanged:function(t){if(t==null)return!i.isEmpty(this.changed);return i.has(this.changed,t)},changedAttributes:function(t){if(!t)return this.hasChanged()?i.clone(this.changed):false;var e,r=false;var s=this._changing?this._previousAttributes:this.attributes;for(var n in t){if(i.isEqual(s[n],e=t[n]))continue;(r||(r={}))[n]=e}return r},previous:function(t){if(t==null||!this._previousAttributes)return null;return this._previousAttributes[t]},previousAttributes:function(){return i.clone(this._previousAttributes)},fetch:function(t){t=t?i.clone(t):{};if(t.parse===void 0)t.parse=true;var e=this;var r=t.success;t.success=function(i){if(!e.set(e.parse(i,t),t))return false;if(r)r(e,i,t);e.trigger("sync",e,i,t)};q(this,t);return this.sync("read",this,t)},save:function(t,e,r){var s,n,a,o=this.attributes;if(t==null||typeof t==="object"){s=t;r=e}else{(s={})[t]=e}r=i.extend({validate:true},r);if(s&&!r.wait){if(!this.set(s,r))return false}else{if(!this._validate(s,r))return false}if(s&&r.wait){this.attributes=i.extend({},o,s)}if(r.parse===void 0)r.parse=true;var h=this;var u=r.success;r.success=function(t){h.attributes=o;var e=h.parse(t,r);if(r.wait)e=i.extend(s||{},e);if(i.isObject(e)&&!h.set(e,r)){return false}if(u)u(h,t,r);h.trigger("sync",h,t,r)};q(this,r);n=this.isNew()?"create":r.patch?"patch":"update";if(n==="patch")r.attrs=s;a=this.sync(n,this,r);if(s&&r.wait)this.attributes=o;return a},destroy:function(t){t=t?i.clone(t):{};var e=this;var r=t.success;var s=function(){e.trigger("destroy",e,e.collection,t)};t.success=function(i){if(t.wait||e.isNew())s();if(r)r(e,i,t);if(!e.isNew())e.trigger("sync",e,i,t)};if(this.isNew()){t.success();return false}q(this,t);var n=this.sync("delete",this,t);if(!t.wait)s();return n},url:function(){var t=i.result(this,"urlRoot")||i.result(this.collection,"url")||M();if(this.isNew())return t;return t.replace(/([^\/])$/,"$1/")+encodeURIComponent(this.id)},parse:function(t,e){return t},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return!this.has(this.idAttribute)},isValid:function(t){return this._validate({},i.extend(t||{},{validate:true}))},_validate:function(t,e){if(!e.validate||!this.validate)return true;t=i.extend({},this.attributes,t);var r=this.validationError=this.validate(t,e)||null;if(!r)return true;this.trigger("invalid",this,r,i.extend(e,{validationError:r}));return false}});var v=["keys","values","pairs","invert","pick","omit"];i.each(v,function(t){p.prototype[t]=function(){var e=o.call(arguments);e.unshift(this.attributes);return i[t].apply(i,e)}});var g=e.Collection=function(t,e){e||(e={});if(e.model)this.model=e.model;if(e.comparator!==void 0)this.comparator=e.comparator;this._reset();this.initialize.apply(this,arguments);if(t)this.reset(t,i.extend({silent:true},e))};var m={add:true,remove:true,merge:true};var y={add:true,remove:false};i.extend(g.prototype,u,{model:p,initialize:function(){},toJSON:function(t){return this.map(function(e){return e.toJSON(t)})},sync:function(){return e.sync.apply(this,arguments)},add:function(t,e){return this.set(t,i.extend({merge:false},e,y))},remove:function(t,e){var r=!i.isArray(t);t=r?[t]:i.clone(t);e||(e={});var s,n,a,o;for(s=0,n=t.length;s<n;s++){o=t[s]=this.get(t[s]);if(!o)continue;delete this._byId[o.id];delete this._byId[o.cid];a=this.indexOf(o);this.models.splice(a,1);this.length--;if(!e.silent){e.index=a;o.trigger("remove",o,this,e)}this._removeReference(o,e)}return r?t[0]:t},set:function(t,e){e=i.defaults({},e,m);if(e.parse)t=this.parse(t,e);var r=!i.isArray(t);t=r?t?[t]:[]:i.clone(t);var s,n,a,o,h,u,l;var c=e.at;var f=this.model;var d=this.comparator&&c==null&&e.sort!==false;var v=i.isString(this.comparator)?this.comparator:null;var g=[],y=[],_={};var b=e.add,w=e.merge,x=e.remove;var E=!d&&b&&x?[]:false;for(s=0,n=t.length;s<n;s++){h=t[s]||{};if(h instanceof p){a=o=h}else{a=h[f.prototype.idAttribute||"id"]}if(u=this.get(a)){if(x)_[u.cid]=true;if(w){h=h===o?o.attributes:h;if(e.parse)h=u.parse(h,e);u.set(h,e);if(d&&!l&&u.hasChanged(v))l=true}t[s]=u}else if(b){o=t[s]=this._prepareModel(h,e);if(!o)continue;g.push(o);this._addReference(o,e)}o=u||o;if(E&&(o.isNew()||!_[o.id]))E.push(o);_[o.id]=true}if(x){for(s=0,n=this.length;s<n;++s){if(!_[(o=this.models[s]).cid])y.push(o)}if(y.length)this.remove(y,e)}if(g.length||E&&E.length){if(d)l=true;this.length+=g.length;if(c!=null){for(s=0,n=g.length;s<n;s++){this.models.splice(c+s,0,g[s])}}else{if(E)this.models.length=0;var k=E||g;for(s=0,n=k.length;s<n;s++){this.models.push(k[s])}}}if(l)this.sort({silent:true});if(!e.silent){for(s=0,n=g.length;s<n;s++){(o=g[s]).trigger("add",o,this,e)}if(l||E&&E.length)this.trigger("sort",this,e)}return r?t[0]:t},reset:function(t,e){e||(e={});for(var r=0,s=this.models.length;r<s;r++){this._removeReference(this.models[r],e)}e.previousModels=this.models;this._reset();t=this.add(t,i.extend({silent:true},e));if(!e.silent)this.trigger("reset",this,e);return t},push:function(t,e){return this.add(t,i.extend({at:this.length},e))},pop:function(t){var e=this.at(this.length-1);this.remove(e,t);return e},unshift:function(t,e){return this.add(t,i.extend({at:0},e))},shift:function(t){var e=this.at(0);this.remove(e,t);return e},slice:function(){return o.apply(this.models,arguments)},get:function(t){if(t==null)return void 0;return this._byId[t]||this._byId[t.id]||this._byId[t.cid]},at:function(t){return this.models[t]},where:function(t,e){if(i.isEmpty(t))return e?void 0:[];return this[e?"find":"filter"](function(e){for(var i in t){if(t[i]!==e.get(i))return false}return true})},findWhere:function(t){return this.where(t,true)},sort:function(t){if(!this.comparator)throw new Error("Cannot sort a set without a comparator");t||(t={});if(i.isString(this.comparator)||this.comparator.length===1){this.models=this.sortBy(this.comparator,this)}else{this.models.sort(i.bind(this.comparator,this))}if(!t.silent)this.trigger("sort",this,t);return this},pluck:function(t){return i.invoke(this.models,"get",t)},fetch:function(t){t=t?i.clone(t):{};if(t.parse===void 0)t.parse=true;var e=t.success;var r=this;t.success=function(i){var s=t.reset?"reset":"set";r[s](i,t);if(e)e(r,i,t);r.trigger("sync",r,i,t)};q(this,t);return this.sync("read",this,t)},create:function(t,e){e=e?i.clone(e):{};if(!(t=this._prepareModel(t,e)))return false;if(!e.wait)this.add(t,e);var r=this;var s=e.success;e.success=function(t,i){if(e.wait)r.add(t,e);if(s)s(t,i,e)};t.save(null,e);return t},parse:function(t,e){return t},clone:function(){return new this.constructor(this.models)},_reset:function(){this.length=0;this.models=[];this._byId={}},_prepareModel:function(t,e){if(t instanceof p)return t;e=e?i.clone(e):{};e.collection=this;var r=new this.model(t,e);if(!r.validationError)return r;this.trigger("invalid",this,r.validationError,e);return false},_addReference:function(t,e){this._byId[t.cid]=t;if(t.id!=null)this._byId[t.id]=t;if(!t.collection)t.collection=this;t.on("all",this._onModelEvent,this)},_removeReference:function(t,e){if(this===t.collection)delete t.collection;t.off("all",this._onModelEvent,this)},_onModelEvent:function(t,e,i,r){if((t==="add"||t==="remove")&&i!==this)return;if(t==="destroy")this.remove(e,r);if(e&&t==="change:"+e.idAttribute){delete this._byId[e.previous(e.idAttribute)];if(e.id!=null)this._byId[e.id]=e}this.trigger.apply(this,arguments)}});var _=["forEach","each","map","collect","reduce","foldl","inject","reduceRight","foldr","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","toArray","size","first","head","take","initial","rest","tail","drop","last","without","difference","indexOf","shuffle","lastIndexOf","isEmpty","chain","sample"];i.each(_,function(t){g.prototype[t]=function(){var e=o.call(arguments);e.unshift(this.models);return i[t].apply(i,e)}});var b=["groupBy","countBy","sortBy","indexBy"];i.each(b,function(t){g.prototype[t]=function(e,r){var s=i.isFunction(e)?e:function(t){return t.get(e)};return i[t](this.models,s,r)}});var w=e.View=function(t){this.cid=i.uniqueId("view");t||(t={});i.extend(this,i.pick(t,E));this._ensureElement();this.initialize.apply(this,arguments);this.delegateEvents()};var x=/^(\S+)\s*(.*)$/;var E=["model","collection","el","id","attributes","className","tagName","events"];i.extend(w.prototype,u,{tagName:"div",$:function(t){return this.$el.find(t)},initialize:function(){},render:function(){return this},remove:function(){this.$el.remove();this.stopListening();return this},setElement:function(t,i){if(this.$el)this.undelegateEvents();this.$el=t instanceof e.$?t:e.$(t);this.el=this.$el[0];if(i!==false)this.delegateEvents();return this},delegateEvents:function(t){if(!(t||(t=i.result(this,"events"))))return this;this.undelegateEvents();for(var e in t){var r=t[e];if(!i.isFunction(r))r=this[t[e]];if(!r)continue;var s=e.match(x);var n=s[1],a=s[2];r=i.bind(r,this);n+=".delegateEvents"+this.cid;if(a===""){this.$el.on(n,r)}else{this.$el.on(n,a,r)}}return this},undelegateEvents:function(){this.$el.off(".delegateEvents"+this.cid);return this},_ensureElement:function(){if(!this.el){var t=i.extend({},i.result(this,"attributes"));if(this.id)t.id=i.result(this,"id");if(this.className)t["class"]=i.result(this,"className");var r=e.$("<"+i.result(this,"tagName")+">").attr(t);this.setElement(r,false)}else{this.setElement(i.result(this,"el"),false)}}});e.sync=function(t,r,s){var n=T[t];i.defaults(s||(s={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var a={type:n,dataType:"json"};if(!s.url){a.url=i.result(r,"url")||M()}if(s.data==null&&r&&(t==="create"||t==="update"||t==="patch")){a.contentType="application/json";a.data=JSON.stringify(s.attrs||r.toJSON(s))}if(s.emulateJSON){a.contentType="application/x-www-form-urlencoded";a.data=a.data?{model:a.data}:{}}if(s.emulateHTTP&&(n==="PUT"||n==="DELETE"||n==="PATCH")){a.type="POST";if(s.emulateJSON)a.data._method=n;var o=s.beforeSend;s.beforeSend=function(t){t.setRequestHeader("X-HTTP-Method-Override",n);if(o)return o.apply(this,arguments)}}if(a.type!=="GET"&&!s.emulateJSON){a.processData=false}if(a.type==="PATCH"&&k){a.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")}}var h=s.xhr=e.ajax(i.extend(a,s));r.trigger("request",r,h,s);return h};var k=typeof window!=="undefined"&&!!window.ActiveXObject&&!(window.XMLHttpRequest&&(new XMLHttpRequest).dispatchEvent);var T={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return e.$.ajax.apply(e.$,arguments)};var $=e.Router=function(t){t||(t={});if(t.routes)this.routes=t.routes;this._bindRoutes();this.initialize.apply(this,arguments)};var S=/\((.*?)\)/g;var H=/(\(\?)?:\w+/g;var A=/\*\w+/g;var I=/[\-{}\[\]+?.,\\\^$|#\s]/g;i.extend($.prototype,u,{initialize:function(){},route:function(t,r,s){if(!i.isRegExp(t))t=this._routeToRegExp(t);if(i.isFunction(r)){s=r;r=""}if(!s)s=this[r];var n=this;e.history.route(t,function(i){var a=n._extractParameters(t,i);n.execute(s,a);n.trigger.apply(n,["route:"+r].concat(a));n.trigger("route",r,a);e.history.trigger("route",n,r,a)});return this},execute:function(t,e){if(t)t.apply(this,e)},navigate:function(t,i){e.history.navigate(t,i);return this},_bindRoutes:function(){if(!this.routes)return;this.routes=i.result(this,"routes");var t,e=i.keys(this.routes);while((t=e.pop())!=null){this.route(t,this.routes[t])}},_routeToRegExp:function(t){t=t.replace(I,"\\$&").replace(S,"(?:$1)?").replace(H,function(t,e){return e?t:"([^/?]+)"}).replace(A,"([^?]*?)");return new RegExp("^"+t+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(t,e){var r=t.exec(e).slice(1);return i.map(r,function(t,e){if(e===r.length-1)return t||null;return t?decodeURIComponent(t):null})}});var N=e.History=function(){this.handlers=[];i.bindAll(this,"checkUrl");if(typeof window!=="undefined"){this.location=window.location;this.history=window.history}};var R=/^[#\/]|\s+$/g;var O=/^\/+|\/+$/g;var P=/msie [\w.]+/;var C=/\/$/;var j=/#.*$/;N.started=false;i.extend(N.prototype,u,{interval:50,atRoot:function(){return this.location.pathname.replace(/[^\/]$/,"$&/")===this.root},getHash:function(t){var e=(t||this).location.href.match(/#(.*)$/);return e?e[1]:""},getFragment:function(t,e){if(t==null){if(this._hasPushState||!this._wantsHashChange||e){t=decodeURI(this.location.pathname+this.location.search);var i=this.root.replace(C,"");if(!t.indexOf(i))t=t.slice(i.length)}else{t=this.getHash()}}return t.replace(R,"")},start:function(t){if(N.started)throw new Error("Backbone.history has already been started");N.started=true;this.options=i.extend({root:"/"},this.options,t);this.root=this.options.root;this._wantsHashChange=this.options.hashChange!==false;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var r=this.getFragment();var s=document.documentMode;var n=P.exec(navigator.userAgent.toLowerCase())&&(!s||s<=7);this.root=("/"+this.root+"/").replace(O,"/");if(n&&this._wantsHashChange){var a=e.$('<iframe src="javascript:0" tabindex="-1">');this.iframe=a.hide().appendTo("body")[0].contentWindow;this.navigate(r)}if(this._hasPushState){e.$(window).on("popstate",this.checkUrl)}else if(this._wantsHashChange&&"onhashchange"in window&&!n){e.$(window).on("hashchange",this.checkUrl)}else if(this._wantsHashChange){this._checkUrlInterval=setInterval(this.checkUrl,this.interval)}this.fragment=r;var o=this.location;if(this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){this.fragment=this.getFragment(null,true);this.location.replace(this.root+"#"+this.fragment);return true}else if(this._hasPushState&&this.atRoot()&&o.hash){this.fragment=this.getHash().replace(R,"");this.history.replaceState({},document.title,this.root+this.fragment)}}if(!this.options.silent)return this.loadUrl()},stop:function(){e.$(window).off("popstate",this.checkUrl).off("hashchange",this.checkUrl);if(this._checkUrlInterval)clearInterval(this._checkUrlInterval);N.started=false},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe){e=this.getFragment(this.getHash(this.iframe))}if(e===this.fragment)return false;if(this.iframe)this.navigate(e);this.loadUrl()},loadUrl:function(t){t=this.fragment=this.getFragment(t);return i.any(this.handlers,function(e){if(e.route.test(t)){e.callback(t);return true}})},navigate:function(t,e){if(!N.started)return false;if(!e||e===true)e={trigger:!!e};var i=this.root+(t=this.getFragment(t||""));t=t.replace(j,"");if(this.fragment===t)return;this.fragment=t;if(t===""&&i!=="/")i=i.slice(0,-1);if(this._hasPushState){this.history[e.replace?"replaceState":"pushState"]({},document.title,i)}else if(this._wantsHashChange){this._updateHash(this.location,t,e.replace);if(this.iframe&&t!==this.getFragment(this.getHash(this.iframe))){if(!e.replace)this.iframe.document.open().close();this._updateHash(this.iframe.location,t,e.replace)}}else{return this.location.assign(i)}if(e.trigger)return this.loadUrl(t)},_updateHash:function(t,e,i){if(i){var r=t.href.replace(/(javascript:|#).*$/,"");t.replace(r+"#"+e)}else{t.hash="#"+e}}});e.history=new N;var U=function(t,e){var r=this;var s;if(t&&i.has(t,"constructor")){s=t.constructor}else{s=function(){return r.apply(this,arguments)}}i.extend(s,r,e);var n=function(){this.constructor=s};n.prototype=r.prototype;s.prototype=new n;if(t)i.extend(s.prototype,t);s.__super__=r.prototype;return s};p.extend=g.extend=$.extend=w.extend=N.extend=U;var M=function(){throw new Error('A "url" property or function must be specified')};var q=function(t,e){var i=e.error;e.error=function(r){if(i)i(t,r,e);t.trigger("error",t,r,e)}};return e}); + +// From http://stackoverflow.com/a/19431552 +// Compatibility override - Backbone 1.1 got rid of the 'options' binding +// automatically to views in the constructor - we need to keep that. +Backbone.View = (function(View) { + return View.extend({ + constructor: function(options) { + this.options = options || {}; + View.apply(this, arguments); + } + }); +})(Backbone.View); \ No newline at end of file diff --git a/reference/ucp/3.1/api/lib/handlebars-2.0.0.js b/reference/ucp/3.1/api/lib/handlebars-2.0.0.js new file mode 100644 index 0000000000..53cf921d4f --- /dev/null +++ b/reference/ucp/3.1/api/lib/handlebars-2.0.0.js @@ -0,0 +1,28 @@ +/*! + + handlebars v2.0.0 + +Copyright (C) 2011-2014 by Yehuda Katz + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +@license +*/ +!function(a,b){"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?module.exports=b():a.Handlebars=a.Handlebars||b()}(this,function(){var a=function(){"use strict";function a(a){this.string=a}var b;return a.prototype.toString=function(){return""+this.string},b=a}(),b=function(a){"use strict";function b(a){return i[a]}function c(a){for(var b=1;b<arguments.length;b++)for(var c in arguments[b])Object.prototype.hasOwnProperty.call(arguments[b],c)&&(a[c]=arguments[b][c]);return a}function d(a){return a instanceof h?a.toString():null==a?"":a?(a=""+a,k.test(a)?a.replace(j,b):a):a+""}function e(a){return a||0===a?n(a)&&0===a.length?!0:!1:!0}function f(a,b){return(a?a+".":"")+b}var g={},h=a,i={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},j=/[&<>"'`]/g,k=/[&<>"'`]/;g.extend=c;var l=Object.prototype.toString;g.toString=l;var m=function(a){return"function"==typeof a};m(/x/)&&(m=function(a){return"function"==typeof a&&"[object Function]"===l.call(a)});var m;g.isFunction=m;var n=Array.isArray||function(a){return a&&"object"==typeof a?"[object Array]"===l.call(a):!1};return g.isArray=n,g.escapeExpression=d,g.isEmpty=e,g.appendContextPath=f,g}(a),c=function(){"use strict";function a(a,b){var d;b&&b.firstLine&&(d=b.firstLine,a+=" - "+d+":"+b.firstColumn);for(var e=Error.prototype.constructor.call(this,a),f=0;f<c.length;f++)this[c[f]]=e[c[f]];d&&(this.lineNumber=d,this.column=b.firstColumn)}var b,c=["description","fileName","lineNumber","message","name","number","stack"];return a.prototype=new Error,b=a}(),d=function(a,b){"use strict";function c(a,b){this.helpers=a||{},this.partials=b||{},d(this)}function d(a){a.registerHelper("helperMissing",function(){if(1===arguments.length)return void 0;throw new g("Missing helper: '"+arguments[arguments.length-1].name+"'")}),a.registerHelper("blockHelperMissing",function(b,c){var d=c.inverse,e=c.fn;if(b===!0)return e(this);if(b===!1||null==b)return d(this);if(k(b))return b.length>0?(c.ids&&(c.ids=[c.name]),a.helpers.each(b,c)):d(this);if(c.data&&c.ids){var g=q(c.data);g.contextPath=f.appendContextPath(c.data.contextPath,c.name),c={data:g}}return e(b,c)}),a.registerHelper("each",function(a,b){if(!b)throw new g("Must pass iterator to #each");var c,d,e=b.fn,h=b.inverse,i=0,j="";if(b.data&&b.ids&&(d=f.appendContextPath(b.data.contextPath,b.ids[0])+"."),l(a)&&(a=a.call(this)),b.data&&(c=q(b.data)),a&&"object"==typeof a)if(k(a))for(var m=a.length;m>i;i++)c&&(c.index=i,c.first=0===i,c.last=i===a.length-1,d&&(c.contextPath=d+i)),j+=e(a[i],{data:c});else for(var n in a)a.hasOwnProperty(n)&&(c&&(c.key=n,c.index=i,c.first=0===i,d&&(c.contextPath=d+n)),j+=e(a[n],{data:c}),i++);return 0===i&&(j=h(this)),j}),a.registerHelper("if",function(a,b){return l(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||f.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})}),a.registerHelper("with",function(a,b){l(a)&&(a=a.call(this));var c=b.fn;if(f.isEmpty(a))return b.inverse(this);if(b.data&&b.ids){var d=q(b.data);d.contextPath=f.appendContextPath(b.data.contextPath,b.ids[0]),b={data:d}}return c(a,b)}),a.registerHelper("log",function(b,c){var d=c.data&&null!=c.data.level?parseInt(c.data.level,10):1;a.log(d,b)}),a.registerHelper("lookup",function(a,b){return a&&a[b]})}var e={},f=a,g=b,h="2.0.0";e.VERSION=h;var i=6;e.COMPILER_REVISION=i;var j={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1"};e.REVISION_CHANGES=j;var k=f.isArray,l=f.isFunction,m=f.toString,n="[object Object]";e.HandlebarsEnvironment=c,c.prototype={constructor:c,logger:o,log:p,registerHelper:function(a,b){if(m.call(a)===n){if(b)throw new g("Arg not supported with multiple helpers");f.extend(this.helpers,a)}else this.helpers[a]=b},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,b){m.call(a)===n?f.extend(this.partials,a):this.partials[a]=b},unregisterPartial:function(a){delete this.partials[a]}};var o={methodMap:{0:"debug",1:"info",2:"warn",3:"error"},DEBUG:0,INFO:1,WARN:2,ERROR:3,level:3,log:function(a,b){if(o.level<=a){var c=o.methodMap[a];"undefined"!=typeof console&&console[c]&&console[c].call(console,b)}}};e.logger=o;var p=o.log;e.log=p;var q=function(a){var b=f.extend({},a);return b._parent=a,b};return e.createFrame=q,e}(b,c),e=function(a,b,c){"use strict";function d(a){var b=a&&a[0]||1,c=m;if(b!==c){if(c>b){var d=n[c],e=n[b];throw new l("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+d+") or downgrade your runtime to an older version ("+e+").")}throw new l("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function e(a,b){if(!b)throw new l("No environment passed to template");if(!a||!a.main)throw new l("Unknown template object: "+typeof a);b.VM.checkRevision(a.compiler);var c=function(c,d,e,f,g,h,i,j,m){g&&(f=k.extend({},f,g));var n=b.VM.invokePartial.call(this,c,e,f,h,i,j,m);if(null==n&&b.compile){var o={helpers:h,partials:i,data:j,depths:m};i[e]=b.compile(c,{data:void 0!==j,compat:a.compat},b),n=i[e](f,o)}if(null!=n){if(d){for(var p=n.split("\n"),q=0,r=p.length;r>q&&(p[q]||q+1!==r);q++)p[q]=d+p[q];n=p.join("\n")}return n}throw new l("The partial "+e+" could not be compiled when running in runtime-only mode")},d={lookup:function(a,b){for(var c=a.length,d=0;c>d;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:k.escapeExpression,invokePartial:c,fn:function(b){return a[b]},programs:[],program:function(a,b,c){var d=this.programs[a],e=this.fn(a);return b||c?d=f(this,a,e,b,c):d||(d=this.programs[a]=f(this,a,e)),d},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,b){var c=a||b;return a&&b&&a!==b&&(c=k.extend({},b,a)),c},noop:b.VM.noop,compilerInfo:a.compiler},e=function(b,c){c=c||{};var f=c.data;e._setup(c),!c.partial&&a.useData&&(f=i(b,f));var g;return a.useDepths&&(g=c.depths?[b].concat(c.depths):[b]),a.main.call(d,b,d.helpers,d.partials,f,g)};return e.isTop=!0,e._setup=function(c){c.partial?(d.helpers=c.helpers,d.partials=c.partials):(d.helpers=d.merge(c.helpers,b.helpers),a.usePartial&&(d.partials=d.merge(c.partials,b.partials)))},e._child=function(b,c,e){if(a.useDepths&&!e)throw new l("must pass parent depths");return f(d,b,a[b],c,e)},e}function f(a,b,c,d,e){var f=function(b,f){return f=f||{},c.call(a,b,a.helpers,a.partials,f.data||d,e&&[b].concat(e))};return f.program=b,f.depth=e?e.length:0,f}function g(a,b,c,d,e,f,g){var h={partial:!0,helpers:d,partials:e,data:f,depths:g};if(void 0===a)throw new l("The partial "+b+" could not be found");return a instanceof Function?a(c,h):void 0}function h(){return""}function i(a,b){return b&&"root"in b||(b=b?o(b):{},b.root=a),b}var j={},k=a,l=b,m=c.COMPILER_REVISION,n=c.REVISION_CHANGES,o=c.createFrame;return j.checkRevision=d,j.template=e,j.program=f,j.invokePartial=g,j.noop=h,j}(b,c,d),f=function(a,b,c,d,e){"use strict";var f,g=a,h=b,i=c,j=d,k=e,l=function(){var a=new g.HandlebarsEnvironment;return j.extend(a,g),a.SafeString=h,a.Exception=i,a.Utils=j,a.escapeExpression=j.escapeExpression,a.VM=k,a.template=function(b){return k.template(b,a)},a},m=l();return m.create=l,m["default"]=m,f=m}(d,a,c,b,e),g=function(a){"use strict";function b(a){a=a||{},this.firstLine=a.first_line,this.firstColumn=a.first_column,this.lastColumn=a.last_column,this.lastLine=a.last_line}var c,d=a,e={ProgramNode:function(a,c,d){b.call(this,d),this.type="program",this.statements=a,this.strip=c},MustacheNode:function(a,c,d,f,g){if(b.call(this,g),this.type="mustache",this.strip=f,null!=d&&d.charAt){var h=d.charAt(3)||d.charAt(2);this.escaped="{"!==h&&"&"!==h}else this.escaped=!!d;this.sexpr=a instanceof e.SexprNode?a:new e.SexprNode(a,c),this.id=this.sexpr.id,this.params=this.sexpr.params,this.hash=this.sexpr.hash,this.eligibleHelper=this.sexpr.eligibleHelper,this.isHelper=this.sexpr.isHelper},SexprNode:function(a,c,d){b.call(this,d),this.type="sexpr",this.hash=c;var e=this.id=a[0],f=this.params=a.slice(1);this.isHelper=!(!f.length&&!c),this.eligibleHelper=this.isHelper||e.isSimple},PartialNode:function(a,c,d,e,f){b.call(this,f),this.type="partial",this.partialName=a,this.context=c,this.hash=d,this.strip=e,this.strip.inlineStandalone=!0},BlockNode:function(a,c,d,e,f){b.call(this,f),this.type="block",this.mustache=a,this.program=c,this.inverse=d,this.strip=e,d&&!c&&(this.isInverse=!0)},RawBlockNode:function(a,c,f,g){if(b.call(this,g),a.sexpr.id.original!==f)throw new d(a.sexpr.id.original+" doesn't match "+f,this);c=new e.ContentNode(c,g),this.type="block",this.mustache=a,this.program=new e.ProgramNode([c],{},g)},ContentNode:function(a,c){b.call(this,c),this.type="content",this.original=this.string=a},HashNode:function(a,c){b.call(this,c),this.type="hash",this.pairs=a},IdNode:function(a,c){b.call(this,c),this.type="ID";for(var e="",f=[],g=0,h="",i=0,j=a.length;j>i;i++){var k=a[i].part;if(e+=(a[i].separator||"")+k,".."===k||"."===k||"this"===k){if(f.length>0)throw new d("Invalid path: "+e,this);".."===k?(g++,h+="../"):this.isScoped=!0}else f.push(k)}this.original=e,this.parts=f,this.string=f.join("."),this.depth=g,this.idName=h+this.string,this.isSimple=1===a.length&&!this.isScoped&&0===g,this.stringModeValue=this.string},PartialNameNode:function(a,c){b.call(this,c),this.type="PARTIAL_NAME",this.name=a.original},DataNode:function(a,c){b.call(this,c),this.type="DATA",this.id=a,this.stringModeValue=a.stringModeValue,this.idName="@"+a.stringModeValue},StringNode:function(a,c){b.call(this,c),this.type="STRING",this.original=this.string=this.stringModeValue=a},NumberNode:function(a,c){b.call(this,c),this.type="NUMBER",this.original=this.number=a,this.stringModeValue=Number(a)},BooleanNode:function(a,c){b.call(this,c),this.type="BOOLEAN",this.bool=a,this.stringModeValue="true"===a},CommentNode:function(a,c){b.call(this,c),this.type="comment",this.comment=a,this.strip={inlineStandalone:!0}}};return c=e}(c),h=function(){"use strict";var a,b=function(){function a(){this.yy={}}var b={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,CONTENT:12,COMMENT:13,openRawBlock:14,END_RAW_BLOCK:15,OPEN_RAW_BLOCK:16,sexpr:17,CLOSE_RAW_BLOCK:18,openBlock:19,block_option0:20,closeBlock:21,openInverse:22,block_option1:23,OPEN_BLOCK:24,CLOSE:25,OPEN_INVERSE:26,inverseAndProgram:27,INVERSE:28,OPEN_ENDBLOCK:29,path:30,OPEN:31,OPEN_UNESCAPED:32,CLOSE_UNESCAPED:33,OPEN_PARTIAL:34,partialName:35,param:36,partial_option0:37,partial_option1:38,sexpr_repetition0:39,sexpr_option0:40,dataName:41,STRING:42,NUMBER:43,BOOLEAN:44,OPEN_SEXPR:45,CLOSE_SEXPR:46,hash:47,hash_repetition_plus0:48,hashSegment:49,ID:50,EQUALS:51,DATA:52,pathSegments:53,SEP:54,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",12:"CONTENT",13:"COMMENT",15:"END_RAW_BLOCK",16:"OPEN_RAW_BLOCK",18:"CLOSE_RAW_BLOCK",24:"OPEN_BLOCK",25:"CLOSE",26:"OPEN_INVERSE",28:"INVERSE",29:"OPEN_ENDBLOCK",31:"OPEN",32:"OPEN_UNESCAPED",33:"CLOSE_UNESCAPED",34:"OPEN_PARTIAL",42:"STRING",43:"NUMBER",44:"BOOLEAN",45:"OPEN_SEXPR",46:"CLOSE_SEXPR",50:"ID",51:"EQUALS",52:"DATA",54:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[10,3],[14,3],[9,4],[9,4],[19,3],[22,3],[27,2],[21,3],[8,3],[8,3],[11,5],[11,4],[17,3],[17,1],[36,1],[36,1],[36,1],[36,1],[36,1],[36,3],[47,1],[49,3],[35,1],[35,1],[35,1],[41,2],[30,1],[53,3],[53,1],[6,0],[6,2],[20,0],[20,1],[23,0],[23,1],[37,0],[37,1],[38,0],[38,1],[39,0],[39,2],[40,0],[40,1],[48,1],[48,2]],performAction:function(a,b,c,d,e,f){var g=f.length-1;switch(e){case 1:return d.prepareProgram(f[g-1].statements,!0),f[g-1];case 2:this.$=new d.ProgramNode(d.prepareProgram(f[g]),{},this._$);break;case 3:this.$=f[g];break;case 4:this.$=f[g];break;case 5:this.$=f[g];break;case 6:this.$=f[g];break;case 7:this.$=new d.ContentNode(f[g],this._$);break;case 8:this.$=new d.CommentNode(f[g],this._$);break;case 9:this.$=new d.RawBlockNode(f[g-2],f[g-1],f[g],this._$);break;case 10:this.$=new d.MustacheNode(f[g-1],null,"","",this._$);break;case 11:this.$=d.prepareBlock(f[g-3],f[g-2],f[g-1],f[g],!1,this._$);break;case 12:this.$=d.prepareBlock(f[g-3],f[g-2],f[g-1],f[g],!0,this._$);break;case 13:this.$=new d.MustacheNode(f[g-1],null,f[g-2],d.stripFlags(f[g-2],f[g]),this._$);break;case 14:this.$=new d.MustacheNode(f[g-1],null,f[g-2],d.stripFlags(f[g-2],f[g]),this._$);break;case 15:this.$={strip:d.stripFlags(f[g-1],f[g-1]),program:f[g]};break;case 16:this.$={path:f[g-1],strip:d.stripFlags(f[g-2],f[g])};break;case 17:this.$=new d.MustacheNode(f[g-1],null,f[g-2],d.stripFlags(f[g-2],f[g]),this._$);break;case 18:this.$=new d.MustacheNode(f[g-1],null,f[g-2],d.stripFlags(f[g-2],f[g]),this._$);break;case 19:this.$=new d.PartialNode(f[g-3],f[g-2],f[g-1],d.stripFlags(f[g-4],f[g]),this._$);break;case 20:this.$=new d.PartialNode(f[g-2],void 0,f[g-1],d.stripFlags(f[g-3],f[g]),this._$);break;case 21:this.$=new d.SexprNode([f[g-2]].concat(f[g-1]),f[g],this._$);break;case 22:this.$=new d.SexprNode([f[g]],null,this._$);break;case 23:this.$=f[g];break;case 24:this.$=new d.StringNode(f[g],this._$);break;case 25:this.$=new d.NumberNode(f[g],this._$);break;case 26:this.$=new d.BooleanNode(f[g],this._$);break;case 27:this.$=f[g];break;case 28:f[g-1].isHelper=!0,this.$=f[g-1];break;case 29:this.$=new d.HashNode(f[g],this._$);break;case 30:this.$=[f[g-2],f[g]];break;case 31:this.$=new d.PartialNameNode(f[g],this._$);break;case 32:this.$=new d.PartialNameNode(new d.StringNode(f[g],this._$),this._$);break;case 33:this.$=new d.PartialNameNode(new d.NumberNode(f[g],this._$));break;case 34:this.$=new d.DataNode(f[g],this._$);break;case 35:this.$=new d.IdNode(f[g],this._$);break;case 36:f[g-2].push({part:f[g],separator:f[g-1]}),this.$=f[g-2];break;case 37:this.$=[{part:f[g]}];break;case 38:this.$=[];break;case 39:f[g-1].push(f[g]);break;case 48:this.$=[];break;case 49:f[g-1].push(f[g]);break;case 52:this.$=[f[g]];break;case 53:f[g-1].push(f[g])}},table:[{3:1,4:2,5:[2,38],6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],31:[2,38],32:[2,38],34:[2,38]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:[1,10],13:[1,11],14:16,16:[1,20],19:14,22:15,24:[1,18],26:[1,19],28:[2,2],29:[2,2],31:[1,12],32:[1,13],34:[1,17]},{1:[2,1]},{5:[2,39],12:[2,39],13:[2,39],16:[2,39],24:[2,39],26:[2,39],28:[2,39],29:[2,39],31:[2,39],32:[2,39],34:[2,39]},{5:[2,3],12:[2,3],13:[2,3],16:[2,3],24:[2,3],26:[2,3],28:[2,3],29:[2,3],31:[2,3],32:[2,3],34:[2,3]},{5:[2,4],12:[2,4],13:[2,4],16:[2,4],24:[2,4],26:[2,4],28:[2,4],29:[2,4],31:[2,4],32:[2,4],34:[2,4]},{5:[2,5],12:[2,5],13:[2,5],16:[2,5],24:[2,5],26:[2,5],28:[2,5],29:[2,5],31:[2,5],32:[2,5],34:[2,5]},{5:[2,6],12:[2,6],13:[2,6],16:[2,6],24:[2,6],26:[2,6],28:[2,6],29:[2,6],31:[2,6],32:[2,6],34:[2,6]},{5:[2,7],12:[2,7],13:[2,7],16:[2,7],24:[2,7],26:[2,7],28:[2,7],29:[2,7],31:[2,7],32:[2,7],34:[2,7]},{5:[2,8],12:[2,8],13:[2,8],16:[2,8],24:[2,8],26:[2,8],28:[2,8],29:[2,8],31:[2,8],32:[2,8],34:[2,8]},{17:21,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:27,30:22,41:23,50:[1,26],52:[1,25],53:24},{4:28,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],28:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{4:29,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],28:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{12:[1,30]},{30:32,35:31,42:[1,33],43:[1,34],50:[1,26],53:24},{17:35,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:36,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:37,30:22,41:23,50:[1,26],52:[1,25],53:24},{25:[1,38]},{18:[2,48],25:[2,48],33:[2,48],39:39,42:[2,48],43:[2,48],44:[2,48],45:[2,48],46:[2,48],50:[2,48],52:[2,48]},{18:[2,22],25:[2,22],33:[2,22],46:[2,22]},{18:[2,35],25:[2,35],33:[2,35],42:[2,35],43:[2,35],44:[2,35],45:[2,35],46:[2,35],50:[2,35],52:[2,35],54:[1,40]},{30:41,50:[1,26],53:24},{18:[2,37],25:[2,37],33:[2,37],42:[2,37],43:[2,37],44:[2,37],45:[2,37],46:[2,37],50:[2,37],52:[2,37],54:[2,37]},{33:[1,42]},{20:43,27:44,28:[1,45],29:[2,40]},{23:46,27:47,28:[1,45],29:[2,42]},{15:[1,48]},{25:[2,46],30:51,36:49,38:50,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],47:57,48:58,49:60,50:[1,59],52:[1,25],53:24},{25:[2,31],42:[2,31],43:[2,31],44:[2,31],45:[2,31],50:[2,31],52:[2,31]},{25:[2,32],42:[2,32],43:[2,32],44:[2,32],45:[2,32],50:[2,32],52:[2,32]},{25:[2,33],42:[2,33],43:[2,33],44:[2,33],45:[2,33],50:[2,33],52:[2,33]},{25:[1,61]},{25:[1,62]},{18:[1,63]},{5:[2,17],12:[2,17],13:[2,17],16:[2,17],24:[2,17],26:[2,17],28:[2,17],29:[2,17],31:[2,17],32:[2,17],34:[2,17]},{18:[2,50],25:[2,50],30:51,33:[2,50],36:65,40:64,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],46:[2,50],47:66,48:58,49:60,50:[1,59],52:[1,25],53:24},{50:[1,67]},{18:[2,34],25:[2,34],33:[2,34],42:[2,34],43:[2,34],44:[2,34],45:[2,34],46:[2,34],50:[2,34],52:[2,34]},{5:[2,18],12:[2,18],13:[2,18],16:[2,18],24:[2,18],26:[2,18],28:[2,18],29:[2,18],31:[2,18],32:[2,18],34:[2,18]},{21:68,29:[1,69]},{29:[2,41]},{4:70,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{21:71,29:[1,69]},{29:[2,43]},{5:[2,9],12:[2,9],13:[2,9],16:[2,9],24:[2,9],26:[2,9],28:[2,9],29:[2,9],31:[2,9],32:[2,9],34:[2,9]},{25:[2,44],37:72,47:73,48:58,49:60,50:[1,74]},{25:[1,75]},{18:[2,23],25:[2,23],33:[2,23],42:[2,23],43:[2,23],44:[2,23],45:[2,23],46:[2,23],50:[2,23],52:[2,23]},{18:[2,24],25:[2,24],33:[2,24],42:[2,24],43:[2,24],44:[2,24],45:[2,24],46:[2,24],50:[2,24],52:[2,24]},{18:[2,25],25:[2,25],33:[2,25],42:[2,25],43:[2,25],44:[2,25],45:[2,25],46:[2,25],50:[2,25],52:[2,25]},{18:[2,26],25:[2,26],33:[2,26],42:[2,26],43:[2,26],44:[2,26],45:[2,26],46:[2,26],50:[2,26],52:[2,26]},{18:[2,27],25:[2,27],33:[2,27],42:[2,27],43:[2,27],44:[2,27],45:[2,27],46:[2,27],50:[2,27],52:[2,27]},{17:76,30:22,41:23,50:[1,26],52:[1,25],53:24},{25:[2,47]},{18:[2,29],25:[2,29],33:[2,29],46:[2,29],49:77,50:[1,74]},{18:[2,37],25:[2,37],33:[2,37],42:[2,37],43:[2,37],44:[2,37],45:[2,37],46:[2,37],50:[2,37],51:[1,78],52:[2,37],54:[2,37]},{18:[2,52],25:[2,52],33:[2,52],46:[2,52],50:[2,52]},{12:[2,13],13:[2,13],16:[2,13],24:[2,13],26:[2,13],28:[2,13],29:[2,13],31:[2,13],32:[2,13],34:[2,13]},{12:[2,14],13:[2,14],16:[2,14],24:[2,14],26:[2,14],28:[2,14],29:[2,14],31:[2,14],32:[2,14],34:[2,14]},{12:[2,10]},{18:[2,21],25:[2,21],33:[2,21],46:[2,21]},{18:[2,49],25:[2,49],33:[2,49],42:[2,49],43:[2,49],44:[2,49],45:[2,49],46:[2,49],50:[2,49],52:[2,49]},{18:[2,51],25:[2,51],33:[2,51],46:[2,51]},{18:[2,36],25:[2,36],33:[2,36],42:[2,36],43:[2,36],44:[2,36],45:[2,36],46:[2,36],50:[2,36],52:[2,36],54:[2,36]},{5:[2,11],12:[2,11],13:[2,11],16:[2,11],24:[2,11],26:[2,11],28:[2,11],29:[2,11],31:[2,11],32:[2,11],34:[2,11]},{30:79,50:[1,26],53:24},{29:[2,15]},{5:[2,12],12:[2,12],13:[2,12],16:[2,12],24:[2,12],26:[2,12],28:[2,12],29:[2,12],31:[2,12],32:[2,12],34:[2,12]},{25:[1,80]},{25:[2,45]},{51:[1,78]},{5:[2,20],12:[2,20],13:[2,20],16:[2,20],24:[2,20],26:[2,20],28:[2,20],29:[2,20],31:[2,20],32:[2,20],34:[2,20]},{46:[1,81]},{18:[2,53],25:[2,53],33:[2,53],46:[2,53],50:[2,53]},{30:51,36:82,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],50:[1,26],52:[1,25],53:24},{25:[1,83]},{5:[2,19],12:[2,19],13:[2,19],16:[2,19],24:[2,19],26:[2,19],28:[2,19],29:[2,19],31:[2,19],32:[2,19],34:[2,19]},{18:[2,28],25:[2,28],33:[2,28],42:[2,28],43:[2,28],44:[2,28],45:[2,28],46:[2,28],50:[2,28],52:[2,28]},{18:[2,30],25:[2,30],33:[2,30],46:[2,30],50:[2,30]},{5:[2,16],12:[2,16],13:[2,16],16:[2,16],24:[2,16],26:[2,16],28:[2,16],29:[2,16],31:[2,16],32:[2,16],34:[2,16]}],defaultActions:{4:[2,1],44:[2,41],47:[2,43],57:[2,47],63:[2,10],70:[2,15],73:[2,45]},parseError:function(a){throw new Error(a)},parse:function(a){function b(){var a;return a=c.lexer.lex()||1,"number"!=typeof a&&(a=c.symbols_[a]||a),a}var c=this,d=[0],e=[null],f=[],g=this.table,h="",i=0,j=0,k=0;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var l=this.lexer.yylloc;f.push(l);var m=this.lexer.options&&this.lexer.options.ranges;"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var n,o,p,q,r,s,t,u,v,w={};;){if(p=d[d.length-1],this.defaultActions[p]?q=this.defaultActions[p]:((null===n||"undefined"==typeof n)&&(n=b()),q=g[p]&&g[p][n]),"undefined"==typeof q||!q.length||!q[0]){var x="";if(!k){v=[];for(s in g[p])this.terminals_[s]&&s>2&&v.push("'"+this.terminals_[s]+"'");x=this.lexer.showPosition?"Parse error on line "+(i+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+v.join(", ")+", got '"+(this.terminals_[n]||n)+"'":"Parse error on line "+(i+1)+": Unexpected "+(1==n?"end of input":"'"+(this.terminals_[n]||n)+"'"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[n]||n,line:this.lexer.yylineno,loc:l,expected:v})}}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+n);switch(q[0]){case 1:d.push(n),e.push(this.lexer.yytext),f.push(this.lexer.yylloc),d.push(q[1]),n=null,o?(n=o,o=null):(j=this.lexer.yyleng,h=this.lexer.yytext,i=this.lexer.yylineno,l=this.lexer.yylloc,k>0&&k--);break;case 2:if(t=this.productions_[q[1]][1],w.$=e[e.length-t],w._$={first_line:f[f.length-(t||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(t||1)].first_column,last_column:f[f.length-1].last_column},m&&(w._$.range=[f[f.length-(t||1)].range[0],f[f.length-1].range[1]]),r=this.performAction.call(w,h,j,i,this.yy,q[1],e,f),"undefined"!=typeof r)return r;t&&(d=d.slice(0,-1*t*2),e=e.slice(0,-1*t),f=f.slice(0,-1*t)),d.push(this.productions_[q[1]][0]),e.push(w.$),f.push(w._$),u=g[d[d.length-2]][d[d.length-1]],d.push(u);break;case 3:return!0}}return!0}},c=function(){var a={EOF:1,parseError:function(a,b){if(!this.yy.parser)throw new Error(a);this.yy.parser.parseError(a,b)},setInput:function(a){return this._input=a,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var b=a.match(/(?:\r\n?|\n).*/g);return b?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var b=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b-1),this.offset-=b;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-b]),this},more:function(){return this._more=!0,this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),b=new Array(a.length+1).join("-");return a+this.upcomingInput()+"\n"+b+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,b,c,d,e;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),g=0;g<f.length&&(c=this._input.match(this.rules[f[g]]),!c||b&&!(c[0].length>b[0].length)||(b=c,d=g,this.options.flex));g++);return b?(e=b[0].match(/(?:\r\n?|\n).*/g),e&&(this.yylineno+=e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:e?e[e.length-1].length-e[e.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],a=this.performAction.call(this,this.yy,this,f[d],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a?a:void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var a=this.next();return"undefined"!=typeof a?a:this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(a){this.begin(a)}};return a.options={},a.performAction=function(a,b,c,d){function e(a,c){return b.yytext=b.yytext.substr(a,b.yyleng-c)}switch(c){case 0:if("\\\\"===b.yytext.slice(-2)?(e(0,1),this.begin("mu")):"\\"===b.yytext.slice(-1)?(e(0,1),this.begin("emu")):this.begin("mu"),b.yytext)return 12;break;case 1:return 12;case 2:return this.popState(),12;case 3:return b.yytext=b.yytext.substr(5,b.yyleng-9),this.popState(),15;case 4:return 12;case 5:return e(0,4),this.popState(),13;case 6:return 45;case 7:return 46;case 8:return 16;case 9:return this.popState(),this.begin("raw"),18;case 10:return 34;case 11:return 24;case 12:return 29;case 13:return this.popState(),28;case 14:return this.popState(),28;case 15:return 26;case 16:return 26;case 17:return 32;case 18:return 31;case 19:this.popState(),this.begin("com");break;case 20:return e(3,5),this.popState(),13;case 21:return 31;case 22:return 51;case 23:return 50;case 24:return 50;case 25:return 54;case 26:break;case 27:return this.popState(),33;case 28:return this.popState(),25;case 29:return b.yytext=e(1,2).replace(/\\"/g,'"'),42;case 30:return b.yytext=e(1,2).replace(/\\'/g,"'"),42;case 31:return 52;case 32:return 44;case 33:return 44;case 34:return 43;case 35:return 50;case 36:return b.yytext=e(1,2),50;case 37:return"INVALID";case 38:return 5}},a.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{\/)))/,/^(?:[\s\S]*?--\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{!--)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/],a.conditions={mu:{rules:[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[5],inclusive:!1},raw:{rules:[3,4],inclusive:!1},INITIAL:{rules:[0,1,38],inclusive:!0}},a}();return b.lexer=c,a.prototype=b,b.Parser=a,new a}();return a=b}(),i=function(a){"use strict";function b(a,b){return{left:"~"===a.charAt(2),right:"~"===b.charAt(b.length-3)}}function c(a,b,c,d,i,k){if(a.sexpr.id.original!==d.path.original)throw new j(a.sexpr.id.original+" doesn't match "+d.path.original,a);var l=c&&c.program,m={left:a.strip.left,right:d.strip.right,openStandalone:f(b.statements),closeStandalone:e((l||b).statements)};if(a.strip.right&&g(b.statements,null,!0),l){var n=c.strip;n.left&&h(b.statements,null,!0),n.right&&g(l.statements,null,!0),d.strip.left&&h(l.statements,null,!0),e(b.statements)&&f(l.statements)&&(h(b.statements),g(l.statements))}else d.strip.left&&h(b.statements,null,!0);return i?new this.BlockNode(a,l,b,m,k):new this.BlockNode(a,b,l,m,k)}function d(a,b){for(var c=0,d=a.length;d>c;c++){var i=a[c],j=i.strip;if(j){var k=e(a,c,b,"partial"===i.type),l=f(a,c,b),m=j.openStandalone&&k,n=j.closeStandalone&&l,o=j.inlineStandalone&&k&&l;j.right&&g(a,c,!0),j.left&&h(a,c,!0),o&&(g(a,c),h(a,c)&&"partial"===i.type&&(i.indent=/([ \t]+$)/.exec(a[c-1].original)?RegExp.$1:"")),m&&(g((i.program||i.inverse).statements),h(a,c)),n&&(g(a,c),h((i.inverse||i.program).statements))}}return a}function e(a,b,c){void 0===b&&(b=a.length);var d=a[b-1],e=a[b-2];return d?"content"===d.type?(e||!c?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(d.original):void 0:c}function f(a,b,c){void 0===b&&(b=-1);var d=a[b+1],e=a[b+2];return d?"content"===d.type?(e||!c?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(d.original):void 0:c}function g(a,b,c){var d=a[null==b?0:b+1];if(d&&"content"===d.type&&(c||!d.rightStripped)){var e=d.string;d.string=d.string.replace(c?/^\s+/:/^[ \t]*\r?\n?/,""),d.rightStripped=d.string!==e}}function h(a,b,c){var d=a[null==b?a.length-1:b-1];if(d&&"content"===d.type&&(c||!d.leftStripped)){var e=d.string;return d.string=d.string.replace(c?/\s+$/:/[ \t]+$/,""),d.leftStripped=d.string!==e,d.leftStripped}}var i={},j=a;return i.stripFlags=b,i.prepareBlock=c,i.prepareProgram=d,i}(c),j=function(a,b,c,d){"use strict";function e(a){return a.constructor===h.ProgramNode?a:(g.yy=k,g.parse(a))}var f={},g=a,h=b,i=c,j=d.extend;f.parser=g;var k={};return j(k,i,h),f.parse=e,f}(h,g,i,b),k=function(a,b){"use strict";function c(){}function d(a,b,c){if(null==a||"string"!=typeof a&&a.constructor!==c.AST.ProgramNode)throw new h("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+a);b=b||{},"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var d=c.parse(a),e=(new c.Compiler).compile(d,b);return(new c.JavaScriptCompiler).compile(e,b)}function e(a,b,c){function d(){var d=c.parse(a),e=(new c.Compiler).compile(d,b),f=(new c.JavaScriptCompiler).compile(e,b,void 0,!0);return c.template(f)}if(null==a||"string"!=typeof a&&a.constructor!==c.AST.ProgramNode)throw new h("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+a);b=b||{},"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var e,f=function(a,b){return e||(e=d()),e.call(this,a,b)};return f._setup=function(a){return e||(e=d()),e._setup(a)},f._child=function(a,b,c){return e||(e=d()),e._child(a,b,c)},f}function f(a,b){if(a===b)return!0;if(i(a)&&i(b)&&a.length===b.length){for(var c=0;c<a.length;c++)if(!f(a[c],b[c]))return!1;return!0}}var g={},h=a,i=b.isArray,j=[].slice;return g.Compiler=c,c.prototype={compiler:c,equals:function(a){var b=this.opcodes.length;if(a.opcodes.length!==b)return!1;for(var c=0;b>c;c++){var d=this.opcodes[c],e=a.opcodes[c];if(d.opcode!==e.opcode||!f(d.args,e.args))return!1}for(b=this.children.length,c=0;b>c;c++)if(!this.children[c].equals(a.children[c]))return!1;return!0},guid:0,compile:function(a,b){this.opcodes=[],this.children=[],this.depths={list:[]},this.options=b,this.stringParams=b.stringParams,this.trackIds=b.trackIds;var c=this.options.knownHelpers;if(this.options.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,"if":!0,unless:!0,"with":!0,log:!0,lookup:!0},c)for(var d in c)this.options.knownHelpers[d]=c[d];return this.accept(a)},accept:function(a){return this[a.type](a)},program:function(a){for(var b=a.statements,c=0,d=b.length;d>c;c++)this.accept(b[c]);return this.isSimple=1===d,this.depths.list=this.depths.list.sort(function(a,b){return a-b}),this},compileProgram:function(a){var b,c=(new this.compiler).compile(a,this.options),d=this.guid++; +this.usePartial=this.usePartial||c.usePartial,this.children[d]=c;for(var e=0,f=c.depths.list.length;f>e;e++)b=c.depths.list[e],2>b||this.addDepth(b-1);return d},block:function(a){var b=a.mustache,c=a.program,d=a.inverse;c&&(c=this.compileProgram(c)),d&&(d=this.compileProgram(d));var e=b.sexpr,f=this.classifySexpr(e);"helper"===f?this.helperSexpr(e,c,d):"simple"===f?(this.simpleSexpr(e),this.opcode("pushProgram",c),this.opcode("pushProgram",d),this.opcode("emptyHash"),this.opcode("blockValue",e.id.original)):(this.ambiguousSexpr(e,c,d),this.opcode("pushProgram",c),this.opcode("pushProgram",d),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue")),this.opcode("append")},hash:function(a){var b,c,d=a.pairs;for(this.opcode("pushHash"),b=0,c=d.length;c>b;b++)this.pushParam(d[b][1]);for(;b--;)this.opcode("assignToHash",d[b][0]);this.opcode("popHash")},partial:function(a){var b=a.partialName;this.usePartial=!0,a.hash?this.accept(a.hash):this.opcode("push","undefined"),a.context?this.accept(a.context):(this.opcode("getContext",0),this.opcode("pushContext")),this.opcode("invokePartial",b.name,a.indent||""),this.opcode("append")},content:function(a){a.string&&this.opcode("appendContent",a.string)},mustache:function(a){this.sexpr(a.sexpr),a.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},ambiguousSexpr:function(a,b,c){var d=a.id,e=d.parts[0],f=null!=b||null!=c;this.opcode("getContext",d.depth),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.ID(d),this.opcode("invokeAmbiguous",e,f)},simpleSexpr:function(a){var b=a.id;"DATA"===b.type?this.DATA(b):b.parts.length?this.ID(b):(this.addDepth(b.depth),this.opcode("getContext",b.depth),this.opcode("pushContext")),this.opcode("resolvePossibleLambda")},helperSexpr:function(a,b,c){var d=this.setupFullMustacheParams(a,b,c),e=a.id,f=e.parts[0];if(this.options.knownHelpers[f])this.opcode("invokeKnownHelper",d.length,f);else{if(this.options.knownHelpersOnly)throw new h("You specified knownHelpersOnly, but used the unknown helper "+f,a);e.falsy=!0,this.ID(e),this.opcode("invokeHelper",d.length,e.original,e.isSimple)}},sexpr:function(a){var b=this.classifySexpr(a);"simple"===b?this.simpleSexpr(a):"helper"===b?this.helperSexpr(a):this.ambiguousSexpr(a)},ID:function(a){this.addDepth(a.depth),this.opcode("getContext",a.depth);var b=a.parts[0];b?this.opcode("lookupOnContext",a.parts,a.falsy,a.isScoped):this.opcode("pushContext")},DATA:function(a){this.options.data=!0,this.opcode("lookupData",a.id.depth,a.id.parts)},STRING:function(a){this.opcode("pushString",a.string)},NUMBER:function(a){this.opcode("pushLiteral",a.number)},BOOLEAN:function(a){this.opcode("pushLiteral",a.bool)},comment:function(){},opcode:function(a){this.opcodes.push({opcode:a,args:j.call(arguments,1)})},addDepth:function(a){0!==a&&(this.depths[a]||(this.depths[a]=!0,this.depths.list.push(a)))},classifySexpr:function(a){var b=a.isHelper,c=a.eligibleHelper,d=this.options;if(c&&!b){var e=a.id.parts[0];d.knownHelpers[e]?b=!0:d.knownHelpersOnly&&(c=!1)}return b?"helper":c?"ambiguous":"simple"},pushParams:function(a){for(var b=0,c=a.length;c>b;b++)this.pushParam(a[b])},pushParam:function(a){this.stringParams?(a.depth&&this.addDepth(a.depth),this.opcode("getContext",a.depth||0),this.opcode("pushStringParam",a.stringModeValue,a.type),"sexpr"===a.type&&this.sexpr(a)):(this.trackIds&&this.opcode("pushId",a.type,a.idName||a.stringModeValue),this.accept(a))},setupFullMustacheParams:function(a,b,c){var d=a.params;return this.pushParams(d),this.opcode("pushProgram",b),this.opcode("pushProgram",c),a.hash?this.hash(a.hash):this.opcode("emptyHash"),d}},g.precompile=d,g.compile=e,g}(c,b),l=function(a,b){"use strict";function c(a){this.value=a}function d(){}var e,f=a.COMPILER_REVISION,g=a.REVISION_CHANGES,h=b;d.prototype={nameLookup:function(a,b){return d.isValidJavaScriptVariableName(b)?a+"."+b:a+"['"+b+"']"},depthedLookup:function(a){return this.aliases.lookup="this.lookup",'lookup(depths, "'+a+'")'},compilerInfo:function(){var a=f,b=g[a];return[a,b]},appendToBuffer:function(a){return this.environment.isSimple?"return "+a+";":{appendToBuffer:!0,content:a,toString:function(){return"buffer += "+a+";"}}},initializeBuffer:function(){return this.quotedString("")},namespace:"Handlebars",compile:function(a,b,c,d){this.environment=a,this.options=b,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!d,this.name=this.environment.name,this.isChild=!!c,this.context=c||{programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.compileChildren(a,b),this.useDepths=this.useDepths||a.depths.list.length||this.options.compat;var e,f,g,i=a.opcodes;for(f=0,g=i.length;g>f;f++)e=i[f],this[e.opcode].apply(this,e.args);if(this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new h("Compile completed with content left on stack");var j=this.createFunctionContext(d);if(this.isChild)return j;var k={compiler:this.compilerInfo(),main:j},l=this.context.programs;for(f=0,g=l.length;g>f;f++)l[f]&&(k[f]=l[f]);return this.environment.usePartial&&(k.usePartial=!0),this.options.data&&(k.useData=!0),this.useDepths&&(k.useDepths=!0),this.options.compat&&(k.compat=!0),d||(k.compiler=JSON.stringify(k.compiler),k=this.objectLiteral(k)),k},preamble:function(){this.lastContext=0,this.source=[]},createFunctionContext:function(a){var b="",c=this.stackVars.concat(this.registers.list);c.length>0&&(b+=", "+c.join(", "));for(var d in this.aliases)this.aliases.hasOwnProperty(d)&&(b+=", "+d+"="+this.aliases[d]);var e=["depth0","helpers","partials","data"];this.useDepths&&e.push("depths");var f=this.mergeSource(b);return a?(e.push(f),Function.apply(this,e)):"function("+e.join(",")+") {\n "+f+"}"},mergeSource:function(a){for(var b,c,d="",e=!this.forceBuffer,f=0,g=this.source.length;g>f;f++){var h=this.source[f];h.appendToBuffer?b=b?b+"\n + "+h.content:h.content:(b&&(d?d+="buffer += "+b+";\n ":(c=!0,d=b+";\n "),b=void 0),d+=h+"\n ",this.environment.isSimple||(e=!1))}return e?(b||!d)&&(d+="return "+(b||'""')+";\n"):(a+=", buffer = "+(c?"":this.initializeBuffer()),d+=b?"return buffer + "+b+";\n":"return buffer;\n"),a&&(d="var "+a.substring(2)+(c?"":";\n ")+d),d},blockValue:function(a){this.aliases.blockHelperMissing="helpers.blockHelperMissing";var b=[this.contextName(0)];this.setupParams(a,0,b);var c=this.popStack();b.splice(1,0,c),this.push("blockHelperMissing.call("+b.join(", ")+")")},ambiguousBlockValue:function(){this.aliases.blockHelperMissing="helpers.blockHelperMissing";var a=[this.contextName(0)];this.setupParams("",0,a,!0),this.flushInline();var b=this.topStack();a.splice(1,0,b),this.pushSource("if (!"+this.lastHelper+") { "+b+" = blockHelperMissing.call("+a.join(", ")+"); }")},appendContent:function(a){this.pendingContent&&(a=this.pendingContent+a),this.pendingContent=a},append:function(){this.flushInline();var a=this.popStack();this.pushSource("if ("+a+" != null) { "+this.appendToBuffer(a)+" }"),this.environment.isSimple&&this.pushSource("else { "+this.appendToBuffer("''")+" }")},appendEscaped:function(){this.aliases.escapeExpression="this.escapeExpression",this.pushSource(this.appendToBuffer("escapeExpression("+this.popStack()+")"))},getContext:function(a){this.lastContext=a},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(a,b,c){var d=0,e=a.length;for(c||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(a[d++]));e>d;d++)this.replaceStack(function(c){var e=this.nameLookup(c,a[d],"context");return b?" && "+e:" != null ? "+e+" : "+c})},lookupData:function(a,b){a?this.pushStackLiteral("this.data(data, "+a+")"):this.pushStackLiteral("data");for(var c=b.length,d=0;c>d;d++)this.replaceStack(function(a){return" && "+this.nameLookup(a,b[d],"data")})},resolvePossibleLambda:function(){this.aliases.lambda="this.lambda",this.push("lambda("+this.popStack()+", "+this.contextName(0)+")")},pushStringParam:function(a,b){this.pushContext(),this.pushString(b),"sexpr"!==b&&("string"==typeof a?this.pushString(a):this.pushStackLiteral(a))},emptyHash:function(){this.pushStackLiteral("{}"),this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}"))},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:[],types:[],contexts:[],ids:[]}},popHash:function(){var a=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push("{"+a.ids.join(",")+"}"),this.stringParams&&(this.push("{"+a.contexts.join(",")+"}"),this.push("{"+a.types.join(",")+"}")),this.push("{\n "+a.values.join(",\n ")+"\n }")},pushString:function(a){this.pushStackLiteral(this.quotedString(a))},push:function(a){return this.inlineStack.push(a),a},pushLiteral:function(a){this.pushStackLiteral(a)},pushProgram:function(a){null!=a?this.pushStackLiteral(this.programExpression(a)):this.pushStackLiteral(null)},invokeHelper:function(a,b,c){this.aliases.helperMissing="helpers.helperMissing";var d=this.popStack(),e=this.setupHelper(a,b),f=(c?e.name+" || ":"")+d+" || helperMissing";this.push("(("+f+").call("+e.callParams+"))")},invokeKnownHelper:function(a,b){var c=this.setupHelper(a,b);this.push(c.name+".call("+c.callParams+")")},invokeAmbiguous:function(a,b){this.aliases.functionType='"function"',this.aliases.helperMissing="helpers.helperMissing",this.useRegister("helper");var c=this.popStack();this.emptyHash();var d=this.setupHelper(0,a,b),e=this.lastHelper=this.nameLookup("helpers",a,"helper");this.push("((helper = (helper = "+e+" || "+c+") != null ? helper : helperMissing"+(d.paramsInit?"),("+d.paramsInit:"")+"),(typeof helper === functionType ? helper.call("+d.callParams+") : helper))")},invokePartial:function(a,b){var c=[this.nameLookup("partials",a,"partial"),"'"+b+"'","'"+a+"'",this.popStack(),this.popStack(),"helpers","partials"];this.options.data?c.push("data"):this.options.compat&&c.push("undefined"),this.options.compat&&c.push("depths"),this.push("this.invokePartial("+c.join(", ")+")")},assignToHash:function(a){var b,c,d,e=this.popStack();this.trackIds&&(d=this.popStack()),this.stringParams&&(c=this.popStack(),b=this.popStack());var f=this.hash;b&&f.contexts.push("'"+a+"': "+b),c&&f.types.push("'"+a+"': "+c),d&&f.ids.push("'"+a+"': "+d),f.values.push("'"+a+"': ("+e+")")},pushId:function(a,b){"ID"===a||"DATA"===a?this.pushString(b):"sexpr"===a?this.pushStackLiteral("true"):this.pushStackLiteral("null")},compiler:d,compileChildren:function(a,b){for(var c,d,e=a.children,f=0,g=e.length;g>f;f++){c=e[f],d=new this.compiler;var h=this.matchExistingProgram(c);null==h?(this.context.programs.push(""),h=this.context.programs.length,c.index=h,c.name="program"+h,this.context.programs[h]=d.compile(c,b,this.context,!this.precompile),this.context.environments[h]=c,this.useDepths=this.useDepths||d.useDepths):(c.index=h,c.name="program"+h)}},matchExistingProgram:function(a){for(var b=0,c=this.context.environments.length;c>b;b++){var d=this.context.environments[b];if(d&&d.equals(a))return b}},programExpression:function(a){var b=this.environment.children[a],c=(b.depths.list,this.useDepths),d=[b.index,"data"];return c&&d.push("depths"),"this.program("+d.join(", ")+")"},useRegister:function(a){this.registers[a]||(this.registers[a]=!0,this.registers.list.push(a))},pushStackLiteral:function(a){return this.push(new c(a))},pushSource:function(a){this.pendingContent&&(this.source.push(this.appendToBuffer(this.quotedString(this.pendingContent))),this.pendingContent=void 0),a&&this.source.push(a)},pushStack:function(a){this.flushInline();var b=this.incrStack();return this.pushSource(b+" = "+a+";"),this.compileStack.push(b),b},replaceStack:function(a){{var b,d,e,f="";this.isInline()}if(!this.isInline())throw new h("replaceStack on non-inline");var g=this.popStack(!0);if(g instanceof c)f=b=g.value,e=!0;else{d=!this.stackSlot;var i=d?this.incrStack():this.topStackName();f="("+this.push(i)+" = "+g+")",b=this.topStack()}var j=a.call(this,b);e||this.popStack(),d&&this.stackSlot--,this.push("("+f+j+")")},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var a=this.inlineStack;if(a.length){this.inlineStack=[];for(var b=0,d=a.length;d>b;b++){var e=a[b];e instanceof c?this.compileStack.push(e):this.pushStack(e)}}},isInline:function(){return this.inlineStack.length},popStack:function(a){var b=this.isInline(),d=(b?this.inlineStack:this.compileStack).pop();if(!a&&d instanceof c)return d.value;if(!b){if(!this.stackSlot)throw new h("Invalid stack pop");this.stackSlot--}return d},topStack:function(){var a=this.isInline()?this.inlineStack:this.compileStack,b=a[a.length-1];return b instanceof c?b.value:b},contextName:function(a){return this.useDepths&&a?"depths["+a+"]":"depth"+a},quotedString:function(a){return'"'+a.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(a){var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(this.quotedString(c)+":"+a[c]);return"{"+b.join(",")+"}"},setupHelper:function(a,b,c){var d=[],e=this.setupParams(b,a,d,c),f=this.nameLookup("helpers",b,"helper");return{params:d,paramsInit:e,name:f,callParams:[this.contextName(0)].concat(d).join(", ")}},setupOptions:function(a,b,c){var d,e,f,g={},h=[],i=[],j=[];g.name=this.quotedString(a),g.hash=this.popStack(),this.trackIds&&(g.hashIds=this.popStack()),this.stringParams&&(g.hashTypes=this.popStack(),g.hashContexts=this.popStack()),e=this.popStack(),f=this.popStack(),(f||e)&&(f||(f="this.noop"),e||(e="this.noop"),g.fn=f,g.inverse=e);for(var k=b;k--;)d=this.popStack(),c[k]=d,this.trackIds&&(j[k]=this.popStack()),this.stringParams&&(i[k]=this.popStack(),h[k]=this.popStack());return this.trackIds&&(g.ids="["+j.join(",")+"]"),this.stringParams&&(g.types="["+i.join(",")+"]",g.contexts="["+h.join(",")+"]"),this.options.data&&(g.data="data"),g},setupParams:function(a,b,c,d){var e=this.objectLiteral(this.setupOptions(a,b,c));return d?(this.useRegister("options"),c.push("options"),"options="+e):(c.push(e),"")}};for(var i="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield".split(" "),j=d.RESERVED_WORDS={},k=0,l=i.length;l>k;k++)j[i[k]]=!0;return d.isValidJavaScriptVariableName=function(a){return!d.RESERVED_WORDS[a]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(a)},e=d}(d,c),m=function(a,b,c,d,e){"use strict";var f,g=a,h=b,i=c.parser,j=c.parse,k=d.Compiler,l=d.compile,m=d.precompile,n=e,o=g.create,p=function(){var a=o();return a.compile=function(b,c){return l(b,c,a)},a.precompile=function(b,c){return m(b,c,a)},a.AST=h,a.Compiler=k,a.JavaScriptCompiler=n,a.Parser=i,a.parse=j,a};return g=p(),g.create=p,g["default"]=g,f=g}(f,g,j,k,l);return m}); \ No newline at end of file diff --git a/reference/ucp/3.1/api/lib/highlight.7.3.pack.js b/reference/ucp/3.1/api/lib/highlight.7.3.pack.js new file mode 100644 index 0000000000..9a95a75ea1 --- /dev/null +++ b/reference/ucp/3.1/api/lib/highlight.7.3.pack.js @@ -0,0 +1 @@ +var hljs=new function(){function l(o){return o.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;")}function b(p){for(var o=p.firstChild;o;o=o.nextSibling){if(o.nodeName=="CODE"){return o}if(!(o.nodeType==3&&o.nodeValue.match(/\s+/))){break}}}function h(p,o){return Array.prototype.map.call(p.childNodes,function(q){if(q.nodeType==3){return o?q.nodeValue.replace(/\n/g,""):q.nodeValue}if(q.nodeName=="BR"){return"\n"}return h(q,o)}).join("")}function a(q){var p=(q.className+" "+q.parentNode.className).split(/\s+/);p=p.map(function(r){return r.replace(/^language-/,"")});for(var o=0;o<p.length;o++){if(e[p[o]]||p[o]=="no-highlight"){return p[o]}}}function c(q){var o=[];(function p(r,s){for(var t=r.firstChild;t;t=t.nextSibling){if(t.nodeType==3){s+=t.nodeValue.length}else{if(t.nodeName=="BR"){s+=1}else{if(t.nodeType==1){o.push({event:"start",offset:s,node:t});s=p(t,s);o.push({event:"stop",offset:s,node:t})}}}}return s})(q,0);return o}function j(x,v,w){var p=0;var y="";var r=[];function t(){if(x.length&&v.length){if(x[0].offset!=v[0].offset){return(x[0].offset<v[0].offset)?x:v}else{return v[0].event=="start"?x:v}}else{return x.length?x:v}}function s(A){function z(B){return" "+B.nodeName+'="'+l(B.value)+'"'}return"<"+A.nodeName+Array.prototype.map.call(A.attributes,z).join("")+">"}while(x.length||v.length){var u=t().splice(0,1)[0];y+=l(w.substr(p,u.offset-p));p=u.offset;if(u.event=="start"){y+=s(u.node);r.push(u.node)}else{if(u.event=="stop"){var o,q=r.length;do{q--;o=r[q];y+=("</"+o.nodeName.toLowerCase()+">")}while(o!=u.node);r.splice(q,1);while(q<r.length){y+=s(r[q]);q++}}}}return y+l(w.substr(p))}function f(q){function o(s,r){return RegExp(s,"m"+(q.cI?"i":"")+(r?"g":""))}function p(y,w){if(y.compiled){return}y.compiled=true;var s=[];if(y.k){var r={};function z(A,t){t.split(" ").forEach(function(B){var C=B.split("|");r[C[0]]=[A,C[1]?Number(C[1]):1];s.push(C[0])})}y.lR=o(y.l||hljs.IR,true);if(typeof y.k=="string"){z("keyword",y.k)}else{for(var x in y.k){if(!y.k.hasOwnProperty(x)){continue}z(x,y.k[x])}}y.k=r}if(w){if(y.bWK){y.b="\\b("+s.join("|")+")\\s"}y.bR=o(y.b?y.b:"\\B|\\b");if(!y.e&&!y.eW){y.e="\\B|\\b"}if(y.e){y.eR=o(y.e)}y.tE=y.e||"";if(y.eW&&w.tE){y.tE+=(y.e?"|":"")+w.tE}}if(y.i){y.iR=o(y.i)}if(y.r===undefined){y.r=1}if(!y.c){y.c=[]}for(var v=0;v<y.c.length;v++){if(y.c[v]=="self"){y.c[v]=y}p(y.c[v],y)}if(y.starts){p(y.starts,w)}var u=[];for(var v=0;v<y.c.length;v++){u.push(y.c[v].b)}if(y.tE){u.push(y.tE)}if(y.i){u.push(y.i)}y.t=u.length?o(u.join("|"),true):{exec:function(t){return null}}}p(q)}function d(D,E){function o(r,M){for(var L=0;L<M.c.length;L++){var K=M.c[L].bR.exec(r);if(K&&K.index==0){return M.c[L]}}}function s(K,r){if(K.e&&K.eR.test(r)){return K}if(K.eW){return s(K.parent,r)}}function t(r,K){return K.i&&K.iR.test(r)}function y(L,r){var K=F.cI?r[0].toLowerCase():r[0];return L.k.hasOwnProperty(K)&&L.k[K]}function G(){var K=l(w);if(!A.k){return K}var r="";var N=0;A.lR.lastIndex=0;var L=A.lR.exec(K);while(L){r+=K.substr(N,L.index-N);var M=y(A,L);if(M){v+=M[1];r+='<span class="'+M[0]+'">'+L[0]+"</span>"}else{r+=L[0]}N=A.lR.lastIndex;L=A.lR.exec(K)}return r+K.substr(N)}function z(){if(A.sL&&!e[A.sL]){return l(w)}var r=A.sL?d(A.sL,w):g(w);if(A.r>0){v+=r.keyword_count;B+=r.r}return'<span class="'+r.language+'">'+r.value+"</span>"}function J(){return A.sL!==undefined?z():G()}function I(L,r){var K=L.cN?'<span class="'+L.cN+'">':"";if(L.rB){x+=K;w=""}else{if(L.eB){x+=l(r)+K;w=""}else{x+=K;w=r}}A=Object.create(L,{parent:{value:A}});B+=L.r}function C(K,r){w+=K;if(r===undefined){x+=J();return 0}var L=o(r,A);if(L){x+=J();I(L,r);return L.rB?0:r.length}var M=s(A,r);if(M){if(!(M.rE||M.eE)){w+=r}x+=J();do{if(A.cN){x+="</span>"}A=A.parent}while(A!=M.parent);if(M.eE){x+=l(r)}w="";if(M.starts){I(M.starts,"")}return M.rE?0:r.length}if(t(r,A)){throw"Illegal"}w+=r;return r.length||1}var F=e[D];f(F);var A=F;var w="";var B=0;var v=0;var x="";try{var u,q,p=0;while(true){A.t.lastIndex=p;u=A.t.exec(E);if(!u){break}q=C(E.substr(p,u.index-p),u[0]);p=u.index+q}C(E.substr(p));return{r:B,keyword_count:v,value:x,language:D}}catch(H){if(H=="Illegal"){return{r:0,keyword_count:0,value:l(E)}}else{throw H}}}function g(s){var o={keyword_count:0,r:0,value:l(s)};var q=o;for(var p in e){if(!e.hasOwnProperty(p)){continue}var r=d(p,s);r.language=p;if(r.keyword_count+r.r>q.keyword_count+q.r){q=r}if(r.keyword_count+r.r>o.keyword_count+o.r){q=o;o=r}}if(q.language){o.second_best=q}return o}function i(q,p,o){if(p){q=q.replace(/^((<[^>]+>|\t)+)/gm,function(r,v,u,t){return v.replace(/\t/g,p)})}if(o){q=q.replace(/\n/g,"<br>")}return q}function m(r,u,p){var v=h(r,p);var t=a(r);if(t=="no-highlight"){return}var w=t?d(t,v):g(v);t=w.language;var o=c(r);if(o.length){var q=document.createElement("pre");q.innerHTML=w.value;w.value=j(o,c(q),v)}w.value=i(w.value,u,p);var s=r.className;if(!s.match("(\\s|^)(language-)?"+t+"(\\s|$)")){s=s?(s+" "+t):t}r.innerHTML=w.value;r.className=s;r.result={language:t,kw:w.keyword_count,re:w.r};if(w.second_best){r.second_best={language:w.second_best.language,kw:w.second_best.keyword_count,re:w.second_best.r}}}function n(){if(n.called){return}n.called=true;Array.prototype.map.call(document.getElementsByTagName("pre"),b).filter(Boolean).forEach(function(o){m(o,hljs.tabReplace)})}function k(){window.addEventListener("DOMContentLoaded",n,false);window.addEventListener("load",n,false)}var e={};this.LANGUAGES=e;this.highlight=d;this.highlightAuto=g;this.fixMarkup=i;this.highlightBlock=m;this.initHighlighting=n;this.initHighlightingOnLoad=k;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.inherit=function(q,r){var o={};for(var p in q){o[p]=q[p]}if(r){for(var p in r){o[p]=r[p]}}return o}}();hljs.LANGUAGES.xml=function(a){var c="[A-Za-z0-9\\._:-]+";var b={eW:true,c:[{cN:"attribute",b:c,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"<!--",e:"-->",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{title:"style"},c:[b],starts:{e:"</style>",rE:true,sL:"css"}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"</?",e:"/?>",c:[{cN:"title",b:"[^ />]+"},b]}]}}(hljs);hljs.LANGUAGES.json=function(a){var e={literal:"true false null"};var d=[a.QSM,a.CNM];var c={cN:"value",e:",",eW:true,eE:true,c:d,k:e};var b={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:true,eE:true,c:[a.BE],i:"\\n",starts:c}],i:"\\S"};var f={b:"\\[",e:"\\]",c:[a.inherit(c,{cN:null})],i:"\\S"};d.splice(d.length,0,b,f);return{c:d,k:e,i:"\\S"}}(hljs); \ No newline at end of file diff --git a/reference/ucp/3.1/api/lib/jquery-1.8.0.min.js b/reference/ucp/3.1/api/lib/jquery-1.8.0.min.js new file mode 100644 index 0000000000..066d72c7e3 --- /dev/null +++ b/reference/ucp/3.1/api/lib/jquery-1.8.0.min.js @@ -0,0 +1,2 @@ +/*! jQuery v@1.8.0 jquery.com | jquery.org/license */ +(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d<e;d++)p.event.add(b,c,h[c][d])}g.data&&(g.data=p.extend({},g.data))}function bE(a,b){var c;if(b.nodeType!==1)return;b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?(b.parentNode&&(b.outerHTML=a.outerHTML),p.support.html5Clone&&a.innerHTML&&!p.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):c==="input"&&bv.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text),b.removeAttribute(p.expando)}function bF(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bG(a){bv.test(a.type)&&(a.defaultChecked=a.checked)}function bX(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=bV.length;while(e--){b=bV[e]+c;if(b in a)return b}return d}function bY(a,b){return a=b||a,p.css(a,"display")==="none"||!p.contains(a.ownerDocument,a)}function bZ(a,b){var c,d,e=[],f=0,g=a.length;for(;f<g;f++){c=a[f];if(!c.style)continue;e[f]=p._data(c,"olddisplay"),b?(!e[f]&&c.style.display==="none"&&(c.style.display=""),c.style.display===""&&bY(c)&&(e[f]=p._data(c,"olddisplay",cb(c.nodeName)))):(d=bH(c,"display"),!e[f]&&d!=="none"&&p._data(c,"olddisplay",d))}for(f=0;f<g;f++){c=a[f];if(!c.style)continue;if(!b||c.style.display==="none"||c.style.display==="")c.style.display=b?e[f]||"":"none"}return a}function b$(a,b,c){var d=bO.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function b_(a,b,c,d){var e=c===(d?"border":"content")?4:b==="width"?1:0,f=0;for(;e<4;e+=2)c==="margin"&&(f+=p.css(a,c+bU[e],!0)),d?(c==="content"&&(f-=parseFloat(bH(a,"padding"+bU[e]))||0),c!=="margin"&&(f-=parseFloat(bH(a,"border"+bU[e]+"Width"))||0)):(f+=parseFloat(bH(a,"padding"+bU[e]))||0,c!=="padding"&&(f+=parseFloat(bH(a,"border"+bU[e]+"Width"))||0));return f}function ca(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=!0,f=p.support.boxSizing&&p.css(a,"boxSizing")==="border-box";if(d<=0){d=bH(a,b);if(d<0||d==null)d=a.style[b];if(bP.test(d))return d;e=f&&(p.support.boxSizingReliable||d===a.style[b]),d=parseFloat(d)||0}return d+b_(a,b,c||(f?"border":"content"),e)+"px"}function cb(a){if(bR[a])return bR[a];var b=p("<"+a+">").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write("<!doctype html><html><body>"),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bR[a]=c,c}function ch(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||cd.test(a)?d(a,e):ch(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ch(a+"["+e+"]",b[e],c,d);else d(a,b)}function cy(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h<i;h++)d=g[h],f=/^\+/.test(d),f&&(d=d.substr(1)||"*"),e=a[d]=a[d]||[],e[f?"unshift":"push"](c)}}function cz(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h,i=a[f],j=0,k=i?i.length:0,l=a===cu;for(;j<k&&(l||!h);j++)h=i[j](c,d,e),typeof h=="string"&&(!l||g[h]?h=b:(c.dataTypes.unshift(h),h=cz(a,c,d,e,h,g)));return(l||!h)&&!g["*"]&&(h=cz(a,c,d,e,"*",g)),h}function cA(a,c){var d,e,f=p.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((f[d]?a:e||(e={}))[d]=c[d]);e&&p.extend(!0,a,e)}function cB(a,c,d){var e,f,g,h,i=a.contents,j=a.dataTypes,k=a.responseFields;for(f in k)f in d&&(c[k[f]]=d[f]);while(j[0]==="*")j.shift(),e===b&&(e=a.mimeType||c.getResponseHeader("content-type"));if(e)for(f in i)if(i[f]&&i[f].test(e)){j.unshift(f);break}if(j[0]in d)g=j[0];else{for(f in d){if(!j[0]||a.converters[f+" "+j[0]]){g=f;break}h||(h=f)}g=g||h}if(g)return g!==j[0]&&j.unshift(g),d[g]}function cC(a,b){var c,d,e,f,g=a.dataTypes.slice(),h=g[0],i={},j=0;a.dataFilter&&(b=a.dataFilter(b,a.dataType));if(g[1])for(c in a.converters)i[c.toLowerCase()]=a.converters[c];for(;e=g[++j];)if(e!=="*"){if(h!=="*"&&h!==e){c=i[h+" "+e]||i["* "+e];if(!c)for(d in i){f=d.split(" ");if(f[1]===e){c=i[h+" "+f[0]]||i["* "+f[0]];if(c){c===!0?c=i[d]:i[d]!==!0&&(e=f[0],g.splice(j--,0,e));break}}}if(c!==!0)if(c&&a["throws"])b=c(b);else try{b=c(b)}catch(k){return{state:"parsererror",error:c?k:"No conversion from "+h+" to "+e}}}h=e}return{state:"success",data:b}}function cK(){try{return new a.XMLHttpRequest}catch(b){}}function cL(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function cT(){return setTimeout(function(){cM=b},0),cM=p.now()}function cU(a,b){p.each(b,function(b,c){var d=(cS[b]||[]).concat(cS["*"]),e=0,f=d.length;for(;e<f;e++)if(d[e].call(a,b,c))return})}function cV(a,b,c){var d,e=0,f=0,g=cR.length,h=p.Deferred().always(function(){delete i.elem}),i=function(){var b=cM||cT(),c=Math.max(0,j.startTime+j.duration-b),d=1-(c/j.duration||0),e=0,f=j.tweens.length;for(;e<f;e++)j.tweens[e].run(d);return h.notifyWith(a,[j,d,c]),d<1&&f?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:p.extend({},b),opts:p.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:cM||cT(),duration:c.duration,tweens:[],createTween:function(b,c,d){var e=p.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(e),e},stop:function(b){var c=0,d=b?j.tweens.length:0;for(;c<d;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;cW(k,j.opts.specialEasing);for(;e<g;e++){d=cR[e].call(j,a,k,j.opts);if(d)return d}return cU(j,k),p.isFunction(j.opts.start)&&j.opts.start.call(a,j),p.fx.timer(p.extend(i,{anim:j,queue:j.opts.queue,elem:a})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function cW(a,b){var c,d,e,f,g;for(c in a){d=p.camelCase(c),e=b[d],f=a[c],p.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=p.cssHooks[d];if(g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}}function cX(a,b,c){var d,e,f,g,h,i,j,k,l=this,m=a.style,n={},o=[],q=a.nodeType&&bY(a);c.queue||(j=p._queueHooks(a,"fx"),j.unqueued==null&&(j.unqueued=0,k=j.empty.fire,j.empty.fire=function(){j.unqueued||k()}),j.unqueued++,l.always(function(){l.always(function(){j.unqueued--,p.queue(a,"fx").length||j.empty.fire()})})),a.nodeType===1&&("height"in b||"width"in b)&&(c.overflow=[m.overflow,m.overflowX,m.overflowY],p.css(a,"display")==="inline"&&p.css(a,"float")==="none"&&(!p.support.inlineBlockNeedsLayout||cb(a.nodeName)==="inline"?m.display="inline-block":m.zoom=1)),c.overflow&&(m.overflow="hidden",p.support.shrinkWrapBlocks||l.done(function(){m.overflow=c.overflow[0],m.overflowX=c.overflow[1],m.overflowY=c.overflow[2]}));for(d in b){f=b[d];if(cO.exec(f)){delete b[d];if(f===(q?"hide":"show"))continue;o.push(d)}}g=o.length;if(g){h=p._data(a,"fxshow")||p._data(a,"fxshow",{}),q?p(a).show():l.done(function(){p(a).hide()}),l.done(function(){var b;p.removeData(a,"fxshow",!0);for(b in n)p.style(a,b,n[b])});for(d=0;d<g;d++)e=o[d],i=l.createTween(e,q?h[e]:0),n[e]=h[e]||p.style(a,e),e in h||(h[e]=i.start,q&&(i.end=i.start,i.start=e==="width"||e==="height"?1:0))}}function cY(a,b,c,d,e){return new cY.prototype.init(a,b,c,d,e)}function cZ(a,b){var c,d={height:a},e=0;for(;e<4;e+=2-b)c=bU[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function c_(a){return p.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}var c,d,e=a.document,f=a.location,g=a.navigator,h=a.jQuery,i=a.$,j=Array.prototype.push,k=Array.prototype.slice,l=Array.prototype.indexOf,m=Object.prototype.toString,n=Object.prototype.hasOwnProperty,o=String.prototype.trim,p=function(a,b){return new p.fn.init(a,b,c)},q=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,r=/\S/,s=/\s+/,t=r.test(" ")?/^[\s\xA0]+|[\s\xA0]+$/g:/^\s+|\s+$/g,u=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.0",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i<j;i++)if((a=arguments[i])!=null)for(c in a){d=h[c],e=a[c];if(h===e)continue;k&&e&&(p.isPlainObject(e)||(f=p.isArray(e)))?(f?(f=!1,g=d&&p.isArray(d)?d:[]):g=d&&p.isPlainObject(d)?d:{},h[c]=p.extend(k,g,e)):e!==b&&(h[c]=e)}return h},p.extend({noConflict:function(b){return a.$===p&&(a.$=i),b&&a.jQuery===p&&(a.jQuery=h),p},isReady:!1,readyWait:1,holdReady:function(a){a?p.readyWait++:p.ready(!0)},ready:function(a){if(a===!0?--p.readyWait:p.isReady)return;if(!e.body)return setTimeout(p.ready,1);p.isReady=!0;if(a!==!0&&--p.readyWait>0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f<g;)if(c.apply(a[f++],d)===!1)break}else if(h){for(e in a)if(c.call(a[e],e,a[e])===!1)break}else for(;f<g;)if(c.call(a[f],f,a[f++])===!1)break;return a},trim:o?function(a){return a==null?"":o.call(a)}:function(a){return a==null?"":a.toString().replace(t,"")},makeArray:function(a,b){var c,d=b||[];return a!=null&&(c=p.type(a),a.length==null||c==="string"||c==="function"||c==="regexp"||p.isWindow(a)?j.call(d,a):p.merge(d,a)),d},inArray:function(a,b,c){var d;if(b){if(l)return l.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=c.length,e=a.length,f=0;if(typeof d=="number")for(;f<d;f++)a[e++]=c[f];else while(c[f]!==b)a[e++]=c[f++];return a.length=e,a},grep:function(a,b,c){var d,e=[],f=0,g=a.length;c=!!c;for(;f<g;f++)d=!!b(a[f],f),c!==d&&e.push(a[f]);return e},map:function(a,c,d){var e,f,g=[],h=0,i=a.length,j=a instanceof p||i!==b&&typeof i=="number"&&(i>0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h<i;h++)e=c(a[h],h,d),e!=null&&(g[g.length]=e);else for(f in a)e=c(a[f],f,d),e!=null&&(g[g.length]=e);return g.concat.apply([],g)},guid:1,proxy:function(a,c){var d,e,f;return typeof c=="string"&&(d=a[c],c=a,a=d),p.isFunction(a)?(e=k.call(arguments,2),f=function(){return a.apply(c,e.concat(k.call(arguments)))},f.guid=a.guid=a.guid||f.guid||p.guid++,f):b},access:function(a,c,d,e,f,g,h){var i,j=d==null,k=0,l=a.length;if(d&&typeof d=="object"){for(k in d)p.access(a,c,k,d[k],1,g,e);f=1}else if(e!==b){i=h===b&&p.isFunction(e),j&&(i?(i=c,c=function(a,b,c){return i.call(p(a),c)}):(c.call(a,e),c=null));if(c)for(;k<l;k++)c(a[k],d,i?e.call(a[k],k,c(a[k],d)):e,h);f=1}return f?a:j?c.call(a):l?c(a[0],d):g},now:function(){return(new Date).getTime()}}),p.ready.promise=function(b){if(!d){d=p.Deferred();if(e.readyState==="complete"||e.readyState!=="loading"&&e.addEventListener)setTimeout(p.ready,1);else if(e.addEventListener)e.addEventListener("DOMContentLoaded",D,!1),a.addEventListener("load",p.ready,!1);else{e.attachEvent("onreadystatechange",D),a.attachEvent("onload",p.ready);var c=!1;try{c=a.frameElement==null&&e.documentElement}catch(f){}c&&c.doScroll&&function g(){if(!p.isReady){try{c.doScroll("left")}catch(a){return setTimeout(g,50)}p.ready()}}()}}return d.promise(b)},p.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){E["[object "+b+"]"]=b.toLowerCase()}),c=p(e);var F={};p.Callbacks=function(a){a=typeof a=="string"?F[a]||G(a):p.extend({},a);var c,d,e,f,g,h,i=[],j=!a.once&&[],k=function(b){c=a.memory&&b,d=!0,h=f||0,f=0,g=i.length,e=!0;for(;i&&h<g;h++)if(i[h].apply(b[0],b[1])===!1&&a.stopOnFalse){c=!1;break}e=!1,i&&(j?j.length&&k(j.shift()):c?i=[]:l.disable())},l={add:function(){if(i){var b=i.length;(function d(b){p.each(b,function(b,c){p.isFunction(c)&&(!a.unique||!l.has(c))?i.push(c):c&&c.length&&d(c)})})(arguments),e?g=i.length:c&&(f=b,k(c))}return this},remove:function(){return i&&p.each(arguments,function(a,b){var c;while((c=p.inArray(b,i,c))>-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return typeof a=="object"?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b<d;b++)c[b]&&p.isFunction(c[b].promise)?c[b].promise().done(g(b,j,c)).fail(f.reject).progress(g(b,i,h)):--e}return e||f.resolveWith(j,c),f.promise()}}),p.support=function(){var b,c,d,f,g,h,i,j,k,l,m,n=e.createElement("div");n.setAttribute("className","t"),n.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length||!d)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="<div></div>",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/^(?:\{.*\}|\[.*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||++p.uuid:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e<f;e++)delete d[b[e]];if(!(c?K:p.isEmptyObject)(d))return}}if(!c){delete h[i].data;if(!K(h[i]))return}g?p.cleanData([a],!0):p.support.deleteExpando||h!=h.window?delete h[i]:h[i]=null},_data:function(a,b,c){return p.data(a,b,c,!0)},acceptData:function(a){var b=a.nodeName&&p.noData[a.nodeName.toLowerCase()];return!b||b!==!0&&a.getAttribute("classid")===b}}),p.fn.extend({data:function(a,c){var d,e,f,g,h,i=this[0],j=0,k=null;if(a===b){if(this.length){k=p.data(i);if(i.nodeType===1&&!p._data(i,"parsedAttrs")){f=i.attributes;for(h=f.length;j<h;j++)g=f[j].name,g.indexOf("data-")===0&&(g=p.camelCase(g.substring(5)),J(i,g,k[g]));p._data(i,"parsedAttrs",!0)}}return k}return typeof a=="object"?this.each(function(){p.data(this,a)}):(d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!",p.access(this,function(c){if(c===b)return k=this.triggerHandler("getData"+e,[d[0]]),k===b&&i&&(k=p.data(i,a),k=J(i,a,k)),k===b&&d[1]?this.data(d[0]):k;d[1]=c,this.each(function(){var b=p(this);b.triggerHandler("setData"+e,d),p.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.shift(),e=p._queueHooks(a,b),f=function(){p.dequeue(a,b)};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),delete e.stop,d.call(a,f,e)),!c.length&&e&&e.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length<d?p.queue(this[0],a):c===b?this:this.each(function(){var b=p.queue(this,a,c);p._queueHooks(this,a),a==="fx"&&b[0]!=="inprogress"&&p.dequeue(this,a)})},dequeue:function(a){return this.each(function(){p.dequeue(this,a)})},delay:function(a,b){return a=p.fx?p.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){var d,e=1,f=p.Deferred(),g=this,h=this.length,i=function(){--e||f.resolveWith(g,[g])};typeof a!="string"&&(c=a,a=b),a=a||"fx";while(h--)(d=p._data(g[h],a+"queueHooks"))&&d.empty&&(e++,d.empty.add(i));return i(),f.promise(c)}});var L,M,N,O=/[\t\r\n]/g,P=/\r/g,Q=/^(?:button|input)$/i,R=/^(?:button|input|object|select|textarea)$/i,S=/^a(?:rea|)$/i,T=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,U=p.support.getSetAttribute;p.fn.extend({attr:function(a,b){return p.access(this,p.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{f=" "+e.className+" ";for(g=0,h=b.length;g<h;g++)~f.indexOf(" "+b[g]+" ")||(f+=b[g]+" ");e.className=p.trim(f)}}}return this},removeClass:function(a){var c,d,e,f,g,h,i;if(p.isFunction(a))return this.each(function(b){p(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(s);for(h=0,i=this.length;h<i;h++){e=this[h];if(e.nodeType===1&&e.className){d=(" "+e.className+" ").replace(O," ");for(f=0,g=c.length;f<g;f++)while(d.indexOf(" "+c[f]+" ")>-1)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(O," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c<d;c++){e=h[c];if(e.selected&&(p.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!p.nodeName(e.parentNode,"optgroup"))){b=p(e).val();if(i)return b;g.push(b)}}return i&&!g.length&&h.length?p(h[f]).val():g},set:function(a,b){var c=p.makeArray(b);return p(a).find("option").each(function(){this.selected=p.inArray(p(this).val(),c)>=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,""+d),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g<d.length;g++)e=d[g],e&&(c=p.propFix[e]||e,f=T.test(e),f||p.attr(a,e,""),a.removeAttribute(U?e:c),f&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(Q.test(a.nodeName)&&a.parentNode)p.error("type property can't be changed");else if(!p.support.radioValue&&b==="radio"&&p.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}},value:{get:function(a,b){return L&&p.nodeName(a,"button")?L.get(a,b):b in a?a.value:null},set:function(a,b,c){if(L&&p.nodeName(a,"button"))return L.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,f,g,h=a.nodeType;if(!a||h===3||h===8||h===2)return;return g=h!==1||!p.isXMLDoc(a),g&&(c=p.propFix[c]||c,f=p.propHooks[c]),d!==b?f&&"set"in f&&(e=f.set(a,d,c))!==b?e:a[c]=d:f&&"get"in f&&(e=f.get(a,c))!==null?e:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):R.test(a.nodeName)||S.test(a.nodeName)&&a.href?0:b}}}}),M={get:function(a,c){var d,e=p.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;return b===!1?p.removeAttr(a,c):(d=p.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase())),c}},U||(N={name:!0,id:!0,coords:!0},L=p.valHooks.button={get:function(a,c){var d;return d=a.getAttributeNode(c),d&&(N[c]?d.value!=="":d.specified)?d.value:b},set:function(a,b,c){var d=a.getAttributeNode(c);return d||(d=e.createAttribute(c),a.setAttributeNode(d)),d.value=b+""}},p.each(["width","height"],function(a,b){p.attrHooks[b]=p.extend(p.attrHooks[b],{set:function(a,c){if(c==="")return a.setAttribute(b,"auto"),c}})}),p.attrHooks.contenteditable={get:L.get,set:function(a,b,c){b===""&&(b="false"),L.set(a,b,c)}}),p.support.hrefNormalized||p.each(["href","src","width","height"],function(a,c){p.attrHooks[c]=p.extend(p.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),p.support.style||(p.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),p.support.optSelected||(p.propHooks.selected=p.extend(p.propHooks.selected,{get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}})),p.support.enctype||(p.propFix.enctype="encoding"),p.support.checkOn||p.each(["radio","checkbox"],function(){p.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),p.each(["radio","checkbox"],function(){p.valHooks[this]=p.extend(p.valHooks[this],{set:function(a,b){if(p.isArray(b))return a.checked=p.inArray(p(a).val(),b)>=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j<c.length;j++){k=W.exec(c[j])||[],l=k[1],m=(k[2]||"").split(".").sort(),r=p.event.special[l]||{},l=(f?r.delegateType:r.bindType)||l,r=p.event.special[l]||{},n=p.extend({type:l,origType:k[1],data:e,handler:d,guid:d.guid,selector:f,namespace:m.join(".")},o),q=i[l];if(!q){q=i[l]=[],q.delegateCount=0;if(!r.setup||r.setup.call(a,e,m,h)===!1)a.addEventListener?a.addEventListener(l,h,!1):a.attachEvent&&a.attachEvent("on"+l,h)}r.add&&(r.add.call(a,n),n.handler.guid||(n.handler.guid=d.guid)),f?q.splice(q.delegateCount++,0,n):q.push(n),p.event.global[l]=!0}a=null},global:{},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,q,r=p.hasData(a)&&p._data(a);if(!r||!(m=r.events))return;b=p.trim(_(b||"")).split(" ");for(f=0;f<b.length;f++){g=W.exec(b[f])||[],h=i=g[1],j=g[2];if(!h){for(h in m)p.event.remove(a,h+b[f],c,d,!0);continue}n=p.event.special[h]||{},h=(d?n.delegateType:n.bindType)||h,o=m[h]||[],k=o.length,j=j?new RegExp("(^|\\.)"+j.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(l=0;l<o.length;l++)q=o[l],(e||i===q.origType)&&(!c||c.guid===q.guid)&&(!j||j.test(q.namespace))&&(!d||d===q.selector||d==="**"&&q.selector)&&(o.splice(l--,1),q.selector&&o.delegateCount--,n.remove&&n.remove.call(a,q));o.length===0&&k!==o.length&&((!n.teardown||n.teardown.call(a,j,r.handle)===!1)&&p.removeEvent(a,h,r.handle),delete m[h])}p.isEmptyObject(m)&&(delete r.handle,p.removeData(a,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,f,g){if(!f||f.nodeType!==3&&f.nodeType!==8){var h,i,j,k,l,m,n,o,q,r,s=c.type||c,t=[];if($.test(s+p.event.triggered))return;s.indexOf("!")>=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j<q.length&&!c.isPropagationStopped();j++)k=q[j][0],c.type=q[j][1],o=(p._data(k,"events")||{})[c.type]&&p._data(k,"handle"),o&&o.apply(k,d),o=m&&k[m],o&&p.acceptData(k)&&o.apply(k,d)===!1&&c.preventDefault();return c.type=s,!g&&!c.isDefaultPrevented()&&(!n._default||n._default.apply(f.ownerDocument,d)===!1)&&(s!=="click"||!p.nodeName(f,"a"))&&p.acceptData(f)&&m&&f[s]&&(s!=="focus"&&s!=="blur"||c.target.offsetWidth!==0)&&!p.isWindow(f)&&(l=f[m],l&&(f[m]=null),p.event.triggered=s,f[s](),p.event.triggered=b,l&&(f[m]=l)),c.result}return},dispatch:function(c){c=p.event.fix(c||a.event);var d,e,f,g,h,i,j,k,l,m,n,o=(p._data(this,"events")||{})[c.type]||[],q=o.delegateCount,r=[].slice.call(arguments),s=!c.exclusive&&!c.namespace,t=p.event.special[c.type]||{},u=[];r[0]=c,c.delegateTarget=this;if(t.preDispatch&&t.preDispatch.call(this,c)===!1)return;if(q&&(!c.button||c.type!=="click")){g=p(this),g.context=this;for(f=c.target;f!=this;f=f.parentNode||this)if(f.disabled!==!0||c.type!=="click"){i={},k=[],g[0]=f;for(d=0;d<q;d++)l=o[d],m=l.selector,i[m]===b&&(i[m]=g.is(m)),i[m]&&k.push(l);k.length&&u.push({elem:f,matches:k})}}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d<u.length&&!c.isPropagationStopped();d++){j=u[d],c.currentTarget=j.elem;for(e=0;e<j.matches.length&&!c.isImmediatePropagationStopped();e++){l=j.matches[e];if(s||!c.namespace&&!l.namespace||c.namespace_re&&c.namespace_re.test(l.namespace))c.data=l.data,c.handleObj=l,h=((p.event.special[l.origType]||{}).handle||l.handler).apply(j.elem,r),h!==b&&(c.result=h,h===!1&&(c.preventDefault(),c.stopPropagation()))}}return t.postDispatch&&t.postDispatch.call(this,c),c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,c){var d,f,g,h=c.button,i=c.fromElement;return a.pageX==null&&c.clientX!=null&&(d=a.target.ownerDocument||e,f=d.documentElement,g=d.body,a.pageX=c.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=c.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?c.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0),a}},fix:function(a){if(a[p.expando])return a;var b,c,d=a,f=p.event.fixHooks[a.type]||{},g=f.props?this.props.concat(f.props):this.props;a=p.Event(d);for(b=g.length;b;)c=g[--b],a[c]=d[c];return a.target||(a.target=d.srcElement||e),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,f.filter?f.filter(a,d):a},special:{ready:{setup:p.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){p.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=p.extend(new p.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?p.event.trigger(e,null,b):p.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},p.event.handle=p.event.dispatch,p.removeEvent=e.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]=="undefined"&&(a[d]=null),a.detachEvent(d,c))},p.Event=function(a,b){if(this instanceof p.Event)a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?bb:ba):this.type=a,b&&p.extend(this,b),this.timeStamp=a&&a.timeStamp||p.now(),this[p.expando]=!0;else return new p.Event(a,b)},p.Event.prototype={preventDefault:function(){this.isDefaultPrevented=bb;var a=this.originalEvent;if(!a)return;a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=bb;var a=this.originalEvent;if(!a)return;a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=bb,this.stopPropagation()},isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba},p.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){p.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj,g=f.selector;if(!e||e!==d&&!p.contains(d,e))a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b;return c}}}),p.support.submitBubbles||(p.event.special.submit={setup:function(){if(p.nodeName(this,"form"))return!1;p.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=p.nodeName(c,"input")||p.nodeName(c,"button")?c.form:b;d&&!p._data(d,"_submit_attached")&&(p.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),p._data(d,"_submit_attached",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&p.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(p.nodeName(this,"form"))return!1;p.event.remove(this,"._submit")}}),p.support.changeBubbles||(p.event.special.change={setup:function(){if(V.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")p.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),p.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),p.event.simulate("change",this,a,!0)});return!1}p.event.add(this,"beforeactivate._change",function(a){var b=a.target;V.test(b.nodeName)&&!p._data(b,"_change_attached")&&(p.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&p.event.simulate("change",this.parentNode,a,!0)}),p._data(b,"_change_attached",!0))})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){return p.event.remove(this,"._change"),V.test(this.nodeName)}}),p.support.focusinBubbles||p.each({focus:"focusin",blur:"focusout"},function(a,b){var c=0,d=function(a){p.event.simulate(b,a.target,p.event.fix(a),!0)};p.event.special[b]={setup:function(){c++===0&&e.addEventListener(a,d,!0)},teardown:function(){--c===0&&e.removeEventListener(a,d,!0)}}}),p.fn.extend({on:function(a,c,d,e,f){var g,h;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(h in a)this.on(h,c,d,a[h],f);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=ba;else if(!e)return this;return f===1&&(g=e,e=function(a){return p().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=p.guid++)),this.each(function(){p.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){var e,f;if(a&&a.preventDefault&&a.handleObj)return e=a.handleObj,p(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler),this;if(typeof a=="object"){for(f in a)this.off(f,c,a[f]);return this}if(c===!1||typeof c=="function")d=c,c=b;return d===!1&&(d=ba),this.each(function(){p.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){return p(this.context).on(a,this.selector,b,c),this},die:function(a,b){return p(this.context).off(a,this.selector||"**",b),this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a||"**",c)},trigger:function(a,b){return this.each(function(){p.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return p.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||p.guid++,d=0,e=function(c){var e=(p._data(this,"lastToggle"+a.guid)||0)%d;return p._data(this,"lastToggle"+a.guid,e+1),c.preventDefault(),b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),p.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){p.fn[b]=function(a,c){return c==null&&(c=a,a=null),arguments.length>0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bd(a,b,c,d){var e=0,f=b.length;for(;e<f;e++)Z(a,b[e],c,d)}function be(a,b,c,d,e,f){var g,h=$.setFilters[b.toLowerCase()];return h||Z.error(b),(a||!(g=e))&&bd(a||"*",d,g=[],e),g.length>0?h(g,c,f):[]}function bf(a,c,d,e,f){var g,h,i,j,k,l,m,n,p=0,q=f.length,s=L.POS,t=new RegExp("^"+s.source+"(?!"+r+")","i"),u=function(){var a=1,c=arguments.length-2;for(;a<c;a++)arguments[a]===b&&(g[a]=b)};for(;p<q;p++){s.exec(""),a=f[p],j=[],i=0,k=e;while(g=s.exec(a)){n=s.lastIndex=g.index+g[0].length;if(n>i){m=a.slice(i,g.index),i=n,l=[c],B.test(m)&&(k&&(l=k),k=e);if(h=H.test(m))m=m.slice(0,-5).replace(B,"$&*");g.length>1&&g[0].replace(t,u),k=be(m,g[1],g[2],l,k,h)}}k?(j=j.concat(k),(m=a.slice(i))&&m!==")"?B.test(m)?bd(m,j,d,e):Z(m,c,d,e?e.concat(k):k):o.apply(d,j)):Z(a,c,d,e)}return q===1?d:Z.uniqueSort(d)}function bg(a,b,c){var d,e,f,g=[],i=0,j=D.exec(a),k=!j.pop()&&!j.pop(),l=k&&a.match(C)||[""],m=$.preFilter,n=$.filter,o=!c&&b!==h;for(;(e=l[i])!=null&&k;i++){g.push(d=[]),o&&(e=" "+e);while(e){k=!1;if(j=B.exec(e))e=e.slice(j[0].length),k=d.push({part:j.pop().replace(A," "),captures:j});for(f in n)(j=L[f].exec(e))&&(!m[f]||(j=m[f](j,b,c)))&&(e=e.slice(j.shift().length),k=d.push({part:f,captures:j}));if(!k)break}}return k||Z.error(a),g}function bh(a,b,e){var f=b.dir,g=m++;return a||(a=function(a){return a===e}),b.first?function(b,c){while(b=b[f])if(b.nodeType===1)return a(b,c)&&b}:function(b,e){var h,i=g+"."+d,j=i+"."+c;while(b=b[f])if(b.nodeType===1){if((h=b[q])===j)return b.sizset;if(typeof h=="string"&&h.indexOf(i)===0){if(b.sizset)return b}else{b[q]=j;if(a(b,e))return b.sizset=!0,b;b.sizset=!1}}}}function bi(a,b){return a?function(c,d){var e=b(c,d);return e&&a(e===!0?c:e,d)}:b}function bj(a,b,c){var d,e,f=0;for(;d=a[f];f++)$.relative[d.part]?e=bh(e,$.relative[d.part],b):(d.captures.push(b,c),e=bi(e,$.filter[d.part].apply(null,d.captures)));return e}function bk(a){return function(b,c){var d,e=0;for(;d=a[e];e++)if(d(b,c))return!0;return!1}}var c,d,e,f,g,h=a.document,i=h.documentElement,j="undefined",k=!1,l=!0,m=0,n=[].slice,o=[].push,q=("sizcache"+Math.random()).replace(".",""),r="[\\x20\\t\\r\\n\\f]",s="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",t=s.replace("w","w#"),u="([*^$|!~]?=)",v="\\["+r+"*("+s+")"+r+"*(?:"+u+r+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+t+")|)|)"+r+"*\\]",w=":("+s+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|((?:[^,]|\\\\,|(?:,(?=[^\\[]*\\]))|(?:,(?=[^\\(]*\\))))*))\\)|)",x=":(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\)|)(?=[^-]|$)",y=r+"*([\\x20\\t\\r\\n\\f>+~])"+r+"*",z="(?=[^\\x20\\t\\r\\n\\f])(?:\\\\.|"+v+"|"+w.replace(2,7)+"|[^\\\\(),])+",A=new RegExp("^"+r+"+|((?:^|[^\\\\])(?:\\\\.)*)"+r+"+$","g"),B=new RegExp("^"+y),C=new RegExp(z+"?(?="+r+"*,|$)","g"),D=new RegExp("^(?:(?!,)(?:(?:^|,)"+r+"*"+z+")*?|"+r+"*(.*?))(\\)|$)"),E=new RegExp(z.slice(19,-6)+"\\x20\\t\\r\\n\\f>+~])+|"+y,"g"),F=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,G=/[\x20\t\r\n\f]*[+~]/,H=/:not\($/,I=/h\d/i,J=/input|select|textarea|button/i,K=/\\(?!\\)/g,L={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),NAME:new RegExp("^\\[name=['\"]?("+s+")['\"]?\\]"),TAG:new RegExp("^("+s.replace("[-","[-\\*")+")"),ATTR:new RegExp("^"+v),PSEUDO:new RegExp("^"+w),CHILD:new RegExp("^:(only|nth|last|first)-child(?:\\("+r+"*(even|odd|(([+-]|)(\\d*)n|)"+r+"*(?:([+-]|)"+r+"*(\\d+)|))"+r+"*\\)|)","i"),POS:new RegExp(x,"ig"),needsContext:new RegExp("^"+r+"*[>+~]|"+x,"i")},M={},N=[],O={},P=[],Q=function(a){return a.sizzleFilter=!0,a},R=function(a){return function(b){return b.nodeName.toLowerCase()==="input"&&b.type===a}},S=function(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}},T=function(a){var b=!1,c=h.createElement("div");try{b=a(c)}catch(d){}return c=null,b},U=T(function(a){a.innerHTML="<select></select>";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),V=T(function(a){a.id=q+0,a.innerHTML="<a name='"+q+"'></a><div name='"+q+"'></div>",i.insertBefore(a,i.firstChild);var b=h.getElementsByName&&h.getElementsByName(q).length===2+h.getElementsByName(q+0).length;return g=!h.getElementById(q),i.removeChild(a),b}),W=T(function(a){return a.appendChild(h.createComment("")),a.getElementsByTagName("*").length===0}),X=T(function(a){return a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!==j&&a.firstChild.getAttribute("href")==="#"}),Y=T(function(a){return a.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!a.getElementsByClassName||a.getElementsByClassName("e").length===0?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length!==1)}),Z=function(a,b,c,d){c=c||[],b=b||h;var e,f,g,i,j=b.nodeType;if(j!==1&&j!==9)return[];if(!a||typeof a!="string")return c;g=ba(b);if(!g&&!d)if(e=F.exec(a))if(i=e[1]){if(j===9){f=b.getElementById(i);if(!f||!f.parentNode)return c;if(f.id===i)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(i))&&bb(b,f)&&f.id===i)return c.push(f),c}else{if(e[2])return o.apply(c,n.call(b.getElementsByTagName(a),0)),c;if((i=e[3])&&Y&&b.getElementsByClassName)return o.apply(c,n.call(b.getElementsByClassName(i),0)),c}return bm(a,b,c,d,g)},$=Z.selectors={cacheLength:50,match:L,order:["ID","TAG"],attrHandle:{},createPseudo:Q,find:{ID:g?function(a,b,c){if(typeof b.getElementById!==j&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==j&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==j&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:W?function(a,b){if(typeof b.getElementsByTagName!==j)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(K,""),a[3]=(a[4]||a[5]||"").replace(K,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||Z.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&Z.error(a[0]),a},PSEUDO:function(a){var b,c=a[4];return L.CHILD.test(a[0])?null:(c&&(b=D.exec(c))&&b.pop()&&(a[0]=a[0].slice(0,b[0].length-c.length-1),c=b[0].slice(0,-1)),a.splice(2,3,c||a[3]),a)}},filter:{ID:g?function(a){return a=a.replace(K,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(K,""),function(b){var c=typeof b.getAttributeNode!==j&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(K,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=M[a];return b||(b=M[a]=new RegExp("(^|"+r+")"+a+"("+r+"|$)"),N.push(a),N.length>$.cacheLength&&delete M[N.shift()]),function(a){return b.test(a.className||typeof a.getAttribute!==j&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return b?function(d){var e=Z.attr(d,a),f=e+"";if(e==null)return b==="!=";switch(b){case"=":return f===c;case"!=":return f!==c;case"^=":return c&&f.indexOf(c)===0;case"*=":return c&&f.indexOf(c)>-1;case"$=":return c&&f.substr(f.length-c.length)===c;case"~=":return(" "+f+" ").indexOf(c)>-1;case"|=":return f===c||f.substr(0,c.length+1)===c+"-"}}:function(b){return Z.attr(b,a)!=null}},CHILD:function(a,b,c,d){if(a==="nth"){var e=m++;return function(a){var b,f,g=0,h=a;if(c===1&&d===0)return!0;b=a.parentNode;if(b&&(b[q]!==e||!a.sizset)){for(h=b.firstChild;h;h=h.nextSibling)if(h.nodeType===1){h.sizset=++g;if(h===a)break}b[q]=e}return f=a.sizset-d,c===0?f===0:f%c===0&&f/c>=0}}return function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b,c,d){var e=$.pseudos[a]||$.pseudos[a.toLowerCase()];return e||Z.error("unsupported pseudo: "+a),e.sizzleFilter?e(b,c,d):e}},pseudos:{not:Q(function(a,b,c){var d=bl(a.replace(A,"$1"),b,c);return function(a){return!d(a)}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!$.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},contains:Q(function(a){return function(b){return(b.textContent||b.innerText||bc(b)).indexOf(a)>-1}}),has:Q(function(a){return function(b){return Z(a,b).length>0}}),header:function(a){return I.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:R("radio"),checkbox:R("checkbox"),file:R("file"),password:R("password"),image:R("image"),submit:S("submit"),reset:S("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return J.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b,c){return c?a.slice(1):[a[0]]},last:function(a,b,c){var d=a.pop();return c?a:[d]},even:function(a,b,c){var d=[],e=c?1:0,f=a.length;for(;e<f;e=e+2)d.push(a[e]);return d},odd:function(a,b,c){var d=[],e=c?0:1,f=a.length;for(;e<f;e=e+2)d.push(a[e]);return d},lt:function(a,b,c){return c?a.slice(+b):a.slice(0,+b)},gt:function(a,b,c){return c?a.slice(0,+b+1):a.slice(+b+1)},eq:function(a,b,c){var d=a.splice(+b,1);return c?a:d}}};$.setFilters.nth=$.setFilters.eq,$.filters=$.pseudos,X||($.attrHandle={href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}}),V&&($.order.push("NAME"),$.find.NAME=function(a,b){if(typeof b.getElementsByName!==j)return b.getElementsByName(a)}),Y&&($.order.splice(1,0,"CLASS"),$.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!==j&&!c)return b.getElementsByClassName(a)});try{n.call(i.childNodes,0)[0].nodeType}catch(_){n=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}var ba=Z.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},bb=Z.contains=i.compareDocumentPosition?function(a,b){return!!(a.compareDocumentPosition(b)&16)}:i.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc=Z.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=bc(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=bc(b);return c};Z.attr=function(a,b){var c,d=ba(a);return d||(b=b.toLowerCase()),$.attrHandle[b]?$.attrHandle[b](a):U||d?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},Z.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},[0,0].sort(function(){return l=0}),i.compareDocumentPosition?e=function(a,b){return a===b?(k=!0,0):(!a.compareDocumentPosition||!b.compareDocumentPosition?a.compareDocumentPosition:a.compareDocumentPosition(b)&4)?-1:1}:(e=function(a,b){if(a===b)return k=!0,0;if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],g=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return f(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)g.unshift(j),j=j.parentNode;c=e.length,d=g.length;for(var l=0;l<c&&l<d;l++)if(e[l]!==g[l])return f(e[l],g[l]);return l===c?f(a,g[l],-1):f(e[l],b,1)},f=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),Z.uniqueSort=function(a){var b,c=1;if(e){k=l,a.sort(e);if(k)for(;b=a[c];c++)b===a[c-1]&&a.splice(c--,1)}return a};var bl=Z.compile=function(a,b,c){var d,e,f,g=O[a];if(g&&g.context===b)return g;e=bg(a,b,c);for(f=0;d=e[f];f++)e[f]=bj(d,b,c);return g=O[a]=bk(e),g.context=b,g.runs=g.dirruns=0,P.push(a),P.length>$.cacheLength&&delete O[P.shift()],g};Z.matches=function(a,b){return Z(a,null,null,b)},Z.matchesSelector=function(a,b){return Z(b,null,null,[a]).length>0};var bm=function(a,b,e,f,g){a=a.replace(A,"$1");var h,i,j,k,l,m,p,q,r,s=a.match(C),t=a.match(E),u=b.nodeType;if(L.POS.test(a))return bf(a,b,e,f,s);if(f)h=n.call(f,0);else if(s&&s.length===1){if(t.length>1&&u===9&&!g&&(s=L.ID.exec(t[0]))){b=$.find.ID(s[1],b,g)[0];if(!b)return e;a=a.slice(t.shift().length)}q=(s=G.exec(t[0]))&&!s.index&&b.parentNode||b,r=t.pop(),m=r.split(":not")[0];for(j=0,k=$.order.length;j<k;j++){p=$.order[j];if(s=L[p].exec(m)){h=$.find[p]((s[1]||"").replace(K,""),q,g);if(h==null)continue;m===r&&(a=a.slice(0,a.length-r.length)+m.replace(L[p],""),a||o.apply(e,n.call(h,0)));break}}}if(a){i=bl(a,b,g),d=i.dirruns++,h==null&&(h=$.find.TAG("*",G.test(a)&&b.parentNode||b));for(j=0;l=h[j];j++)c=i.runs++,i(l,b)&&e.push(l)}return e};h.querySelectorAll&&function(){var a,b=bm,c=/'|\\/g,d=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,e=[],f=[":active"],g=i.matchesSelector||i.mozMatchesSelector||i.webkitMatchesSelector||i.oMatchesSelector||i.msMatchesSelector;T(function(a){a.innerHTML="<select><option selected></option></select>",a.querySelectorAll("[selected]").length||e.push("\\["+r+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),T(function(a){a.innerHTML="<p test=''></p>",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+r+"*(?:\"\"|'')"),a.innerHTML="<input type='hidden'>",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=e.length&&new RegExp(e.join("|")),bm=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a)))if(d.nodeType===9)try{return o.apply(f,n.call(d.querySelectorAll(a),0)),f}catch(i){}else if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){var j=d.getAttribute("id"),k=j||q,l=G.test(a)&&d.parentNode||d;j?k=k.replace(c,"\\$&"):d.setAttribute("id",k);try{return o.apply(f,n.call(l.querySelectorAll(a.replace(C,"[id='"+k+"'] $&")),0)),f}catch(i){}finally{j||d.removeAttribute("id")}}return b(a,d,f,g,h)},g&&(T(function(b){a=g.call(b,"div");try{g.call(b,"[test!='']:sizzle"),f.push($.match.PSEUDO)}catch(c){}}),f=new RegExp(f.join("|")),Z.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!ba(b)&&!f.test(c)&&(!e||!e.test(c)))try{var h=g.call(b,c);if(h||a||b.document&&b.document.nodeType!==11)return h}catch(i){}return Z(c,null,null,[b]).length>0})}(),Z.attr=p.attr,p.find=Z,p.expr=Z.selectors,p.expr[":"]=p.expr.pseudos,p.unique=Z.uniqueSort,p.text=Z.getText,p.isXMLDoc=Z.isXML,p.contains=Z.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b<c;b++)if(p.contains(h[b],this))return!0});g=this.pushStack("","find",a);for(b=0,c=this.length;b<c;b++){d=g.length,p.find(a,this[b],g);if(b>0)for(e=d;e<g.length;e++)for(f=0;f<d;f++)if(g[f]===g[e]){g.splice(e--,1);break}}return g},has:function(a){var b,c=p(a,this),d=c.length;return this.filter(function(){for(b=0;b<d;b++)if(p.contains(this,c[b]))return!0})},not:function(a){return this.pushStack(bj(this,a,!1),"not",a)},filter:function(a){return this.pushStack(bj(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?bf.test(a)?p(a,this.context).index(this[0])>=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d<e;d++){c=this[d];while(c&&c.ownerDocument&&c!==b&&c.nodeType!==11){if(g?g.index(c)>-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/<tbody/i,br=/<|&#?\w+;/,bs=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,bu=new RegExp("<(?:"+bl+")[\\s/>]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,bz={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X<div>","</div>"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(f){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){return bh(this[0])?this.length?this.pushStack(p(p.isFunction(a)?a():a),"replaceWith",a):this:p.isFunction(a)?this.each(function(b){var c=p(this),d=c.html();c.replaceWith(a.call(this,b,d))}):(typeof a!="string"&&(a=p(a).detach()),this.each(function(){var b=this.nextSibling,c=this.parentNode;p(this).remove(),b?p(b).before(a):p(c).append(a)}))},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){a=[].concat.apply([],a);var e,f,g,h,i=0,j=a[0],k=[],l=this.length;if(!p.support.checkClone&&l>1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i<l;i++)d.call(c&&p.nodeName(this[i],"table")?bC(this[i],"tbody"):this[i],i===h?g:p.clone(g,!0,!0))}g=f=null,k.length&&p.each(k,function(a,b){b.src?p.ajax?p.ajax({url:b.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):p.error("no ajax"):p.globalEval((b.text||b.textContent||b.innerHTML||"").replace(by,"")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),p.buildFragment=function(a,c,d){var f,g,h,i=a[0];return c=c||e,c=(c[0]||c).ownerDocument||c[0]||c,typeof c.createDocumentFragment=="undefined"&&(c=e),a.length===1&&typeof i=="string"&&i.length<512&&c===e&&i.charAt(0)==="<"&&!bt.test(i)&&(p.support.checkClone||!bw.test(i))&&(p.support.html5Clone||!bu.test(i))&&(g=!0,f=p.fragments[i],h=f!==b),f||(f=c.createDocumentFragment(),p.clean(a,c,f,d),g&&(p.fragments[i]=h&&f)),{fragment:f,cacheable:g}},p.fragments={},p.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){p.fn[a]=function(c){var d,e=0,f=[],g=p(c),h=g.length,i=this.length===1&&this[0].parentNode;if((i==null||i&&i.nodeType===11&&i.childNodes.length===1)&&h===1)return g[b](this[0]),this;for(;e<h;e++)d=(e>0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=0,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(g=b===e&&bA;(h=a[s])!=null;s++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{g=g||bk(b),l=l||g.appendChild(b.createElement("div")),h=h.replace(bo,"<$1></$2>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]==="<table>"&&!m?l.childNodes:[];for(f=n.length-1;f>=0;--f)p.nodeName(n[f],"tbody")&&!n[f].childNodes.length&&n[f].parentNode.removeChild(n[f])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l=g.lastChild}h.nodeType?t.push(h):t=p.merge(t,h)}l&&(g.removeChild(l),h=l=g=null);if(!p.support.appendChecked)for(s=0;(h=t[s])!=null;s++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(s=0;(h=t[s])!=null;s++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[s+1,0].concat(r)),s+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^margin/,bO=new RegExp("^("+q+")(.*)$","i"),bP=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bQ=new RegExp("^([-+])=("+q+")","i"),bR={},bS={position:"absolute",visibility:"hidden",display:"block"},bT={letterSpacing:0,fontWeight:400,lineHeight:1},bU=["Top","Right","Bottom","Left"],bV=["Webkit","O","Moz","ms"],bW=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return bZ(this,!0)},hide:function(){return bZ(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bW.apply(this,arguments):this.each(function(){(c?a:bY(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bX(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bQ.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bX(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bT&&(f=bT[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(a,b){var c,d,e,f,g=getComputedStyle(a,null),h=a.style;return g&&(c=g[b],c===""&&!p.contains(a.ownerDocument.documentElement,a)&&(c=p.style(a,b)),bP.test(c)&&bN.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=c,c=g.width,h.width=d,h.minWidth=e,h.maxWidth=f)),c}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bP.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0||bH(a,"display")!=="none"?ca(a,b,d):p.swap(a,bS,function(){return ca(a,b,d)})},set:function(a,c,d){return b$(a,c,d?b_(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bP.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bU[d]+b]=e[d]||e[d-2]||e[0];return f}},bN.test(a)||(p.cssHooks[a+b].set=b$)});var cc=/%20/g,cd=/\[\]$/,ce=/\r?\n/g,cf=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,cg=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||cg.test(this.nodeName)||cf.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(ce,"\r\n")}}):{name:b.name,value:c.replace(ce,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ch(d,a[d],c,f);return e.join("&").replace(cc,"+")};var ci,cj,ck=/#.*$/,cl=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cm=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,cn=/^(?:GET|HEAD)$/,co=/^\/\//,cp=/\?/,cq=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,cr=/([?&])_=[^&]*/,cs=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,ct=p.fn.load,cu={},cv={},cw=["*/"]+["*"];try{ci=f.href}catch(cx){ci=e.createElement("a"),ci.href="",ci=ci.href}cj=cs.exec(ci.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&ct)return ct.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("<div>").append(a.replace(cq,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cA(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cA(a,b),a},ajaxSettings:{url:ci,isLocal:cm.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cw},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cy(cu),ajaxTransport:cy(cv),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cB(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cC(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=""+(c||y),k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cl.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(ck,"").replace(co,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=cs.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]==cj[1]&&i[2]==cj[2]&&(i[3]||(i[1]==="http:"?80:443))==(cj[3]||(cj[1]==="http:"?80:443)))),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cz(cu,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!cn.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cp.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cr,"$1_="+z);l.url=A+(A===l.url?(cp.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cw+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cz(cv,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cD=[],cE=/\?/,cF=/(=)\?(?=&|$)|\?\?/,cG=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cD.pop()||p.expando+"_"+cG++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cF.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cF.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cF,"$1"+f):m?c.data=i.replace(cF,"$1"+f):k&&(c.url+=(cE.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cD.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cH,cI=a.ActiveXObject?function(){for(var a in cH)cH[a](0,1)}:!1,cJ=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cK()||cL()}:cK,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cI&&delete cH[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cJ,cI&&(cH||(cH={},p(a).unload(cI)),cH[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cM,cN,cO=/^(?:toggle|show|hide)$/,cP=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cQ=/queueHooks$/,cR=[cX],cS={"*":[function(a,b){var c,d,e,f=this.createTween(a,b),g=cP.exec(b),h=f.cur(),i=+h||0,j=1;if(g){c=+g[2],d=g[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&i){i=p.css(f.elem,a,!0)||c||1;do e=j=j||".5",i=i/j,p.style(f.elem,a,i+d),j=f.cur()/h;while(j!==1&&j!==e)}f.unit=d,f.start=i,f.end=g[1]?i+(g[1]+1)*c:c}return f}]};p.Animation=p.extend(cV,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d<e;d++)c=a[d],cS[c]=cS[c]||[],cS[c].unshift(b)},prefilter:function(a,b){b?cR.unshift(a):cR.push(a)}}),p.Tween=cY,cY.prototype={constructor:cY,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(p.cssNumber[c]?"":"px")},cur:function(){var a=cY.propHooks[this.prop];return a&&a.get?a.get(this):cY.propHooks._default.get(this)},run:function(a){var b,c=cY.propHooks[this.prop];return this.pos=b=p.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration),this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):cY.propHooks._default.set(this),this}},cY.prototype.init.prototype=cY.prototype,cY.propHooks={_default:{get:function(a){var b;return a.elem[a.prop]==null||!!a.elem.style&&a.elem.style[a.prop]!=null?(b=p.css(a.elem,a.prop,!1,""),!b||b==="auto"?0:b):a.elem[a.prop]},set:function(a){p.fx.step[a.prop]?p.fx.step[a.prop](a):a.elem.style&&(a.elem.style[p.cssProps[a.prop]]!=null||p.cssHooks[a.prop])?p.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},cY.propHooks.scrollTop=cY.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},p.each(["toggle","show","hide"],function(a,b){var c=p.fn[b];p.fn[b]=function(d,e,f){return d==null||typeof d=="boolean"||!a&&p.isFunction(d)&&p.isFunction(e)?c.apply(this,arguments):this.animate(cZ(b,!0),d,e,f)}}),p.fn.extend({fadeTo:function(a,b,c,d){return this.filter(bY).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=p.isEmptyObject(a),f=p.speed(b,c,d),g=function(){var b=cV(this,p.extend({},a),f);e&&b.stop(!0)};return e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,c,d){var e=function(a){var b=a.stop;delete a.stop,b(d)};return typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,c=a!=null&&a+"queueHooks",f=p.timers,g=p._data(this);if(c)g[c]&&g[c].stop&&e(g[c]);else for(c in g)g[c]&&g[c].stop&&cQ.test(c)&&e(g[c]);for(c=f.length;c--;)f[c].elem===this&&(a==null||f[c].queue===a)&&(f[c].anim.stop(d),b=!1,f.splice(c,1));(b||!d)&&p.dequeue(this,a)})}}),p.each({slideDown:cZ("show"),slideUp:cZ("hide"),slideToggle:cZ("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){p.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),p.speed=function(a,b,c){var d=a&&typeof a=="object"?p.extend({},a):{complete:c||!c&&b||p.isFunction(a)&&a,duration:a,easing:c&&b||b&&!p.isFunction(b)&&b};d.duration=p.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in p.fx.speeds?p.fx.speeds[d.duration]:p.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";return d.old=d.complete,d.complete=function(){p.isFunction(d.old)&&d.old.call(this),d.queue&&p.dequeue(this,d.queue)},d},p.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},p.timers=[],p.fx=cY.prototype.init,p.fx.tick=function(){var a,b=p.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||p.fx.stop()},p.fx.timer=function(a){a()&&p.timers.push(a)&&!cN&&(cN=setInterval(p.fx.tick,p.fx.interval))},p.fx.interval=13,p.fx.stop=function(){clearInterval(cN),cN=null},p.fx.speeds={slow:600,fast:200,_default:400},p.fx.step={},p.expr&&p.expr.filters&&(p.expr.filters.animated=function(a){return p.grep(p.timers,function(b){return a===b.elem}).length});var c$=/^(?:body|html)$/i;p.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){p.offset.setOffset(this,a,b)});var c,d,e,f,g,h,i,j,k,l,m=this[0],n=m&&m.ownerDocument;if(!n)return;return(e=n.body)===m?p.offset.bodyOffset(m):(d=n.documentElement,p.contains(d,m)?(c=m.getBoundingClientRect(),f=c_(n),g=d.clientTop||e.clientTop||0,h=d.clientLeft||e.clientLeft||0,i=f.pageYOffset||d.scrollTop,j=f.pageXOffset||d.scrollLeft,k=c.top+i-g,l=c.left+j-h,{top:k,left:l}):{top:0,left:0})},p.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;return p.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(p.css(a,"marginTop"))||0,c+=parseFloat(p.css(a,"marginLeft"))||0),{top:b,left:c}},setOffset:function(a,b,c){var d=p.css(a,"position");d==="static"&&(a.style.position="relative");var e=p(a),f=e.offset(),g=p.css(a,"top"),h=p.css(a,"left"),i=(d==="absolute"||d==="fixed")&&p.inArray("auto",[g,h])>-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c$.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c$.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=c_(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window); \ No newline at end of file diff --git a/reference/ucp/3.1/api/lib/jquery.ba-bbq.min.js b/reference/ucp/3.1/api/lib/jquery.ba-bbq.min.js new file mode 100644 index 0000000000..bcbf24834a --- /dev/null +++ b/reference/ucp/3.1/api/lib/jquery.ba-bbq.min.js @@ -0,0 +1,18 @@ +/* + * jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010 + * http://benalman.com/projects/jquery-bbq-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,p){var i,m=Array.prototype.slice,r=decodeURIComponent,a=$.param,c,l,v,b=$.bbq=$.bbq||{},q,u,j,e=$.event.special,d="hashchange",A="querystring",D="fragment",y="elemUrlAttr",g="location",k="href",t="src",x=/^.*\?|#.*$/g,w=/^.*\#/,h,C={};function E(F){return typeof F==="string"}function B(G){var F=m.call(arguments,1);return function(){return G.apply(this,F.concat(m.call(arguments)))}}function n(F){return F.replace(/^[^#]*#?(.*)$/,"$1")}function o(F){return F.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/,"$1")}function f(H,M,F,I,G){var O,L,K,N,J;if(I!==i){K=F.match(H?/^([^#]*)\#?(.*)$/:/^([^#?]*)\??([^#]*)(#?.*)/);J=K[3]||"";if(G===2&&E(I)){L=I.replace(H?w:x,"")}else{N=l(K[2]);I=E(I)?l[H?D:A](I):I;L=G===2?I:G===1?$.extend({},I,N):$.extend({},N,I);L=a(L);if(H){L=L.replace(h,r)}}O=K[1]+(H?"#":L||!K[1]?"?":"")+L+J}else{O=M(F!==i?F:p[g][k])}return O}a[A]=B(f,0,o);a[D]=c=B(f,1,n);c.noEscape=function(G){G=G||"";var F=$.map(G.split(""),encodeURIComponent);h=new RegExp(F.join("|"),"g")};c.noEscape(",/");$.deparam=l=function(I,F){var H={},G={"true":!0,"false":!1,"null":null};$.each(I.replace(/\+/g," ").split("&"),function(L,Q){var K=Q.split("="),P=r(K[0]),J,O=H,M=0,R=P.split("]["),N=R.length-1;if(/\[/.test(R[0])&&/\]$/.test(R[N])){R[N]=R[N].replace(/\]$/,"");R=R.shift().split("[").concat(R);N=R.length-1}else{N=0}if(K.length===2){J=r(K[1]);if(F){J=J&&!isNaN(J)?+J:J==="undefined"?i:G[J]!==i?G[J]:J}if(N){for(;M<=N;M++){P=R[M]===""?O.length:R[M];O=O[P]=M<N?O[P]||(R[M+1]&&isNaN(R[M+1])?{}:[]):J}}else{if($.isArray(H[P])){H[P].push(J)}else{if(H[P]!==i){H[P]=[H[P],J]}else{H[P]=J}}}}else{if(P){H[P]=F?i:""}}});return H};function z(H,F,G){if(F===i||typeof F==="boolean"){G=F;F=a[H?D:A]()}else{F=E(F)?F.replace(H?w:x,""):F}return l(F,G)}l[A]=B(z,0);l[D]=v=B(z,1);$[y]||($[y]=function(F){return $.extend(C,F)})({a:k,base:k,iframe:t,img:t,input:t,form:"action",link:k,script:t});j=$[y];function s(I,G,H,F){if(!E(H)&&typeof H!=="object"){F=H;H=G;G=i}return this.each(function(){var L=$(this),J=G||j()[(this.nodeName||"").toLowerCase()]||"",K=J&&L.attr(J)||"";L.attr(J,a[I](K,H,F))})}$.fn[A]=B(s,A);$.fn[D]=B(s,D);b.pushState=q=function(I,F){if(E(I)&&/^#/.test(I)&&F===i){F=2}var H=I!==i,G=c(p[g][k],H?I:{},H?F:2);p[g][k]=G+(/#/.test(G)?"":"#")};b.getState=u=function(F,G){return F===i||typeof F==="boolean"?v(F):v(G)[F]};b.removeState=function(F){var G={};if(F!==i){G=u();$.each($.isArray(F)?F:arguments,function(I,H){delete G[H]})}q(G,2)};e[d]=$.extend(e[d],{add:function(F){var H;function G(J){var I=J[D]=c();J.getState=function(K,L){return K===i||typeof K==="boolean"?l(I,K):l(I,L)[K]};H.apply(this,arguments)}if($.isFunction(F)){H=F;return G}else{H=F.handler;F.handler=G}}})})(jQuery,this); +/* + * jQuery hashchange event - v1.2 - 2/11/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,i,b){var j,k=$.event.special,c="location",d="hashchange",l="href",f=$.browser,g=document.documentMode,h=f.msie&&(g===b||g<8),e="on"+d in i&&!h;function a(m){m=m||i[c][l];return m.replace(/^[^#]*#?(.*)$/,"$1")}$[d+"Delay"]=100;k[d]=$.extend(k[d],{setup:function(){if(e){return false}$(j.start)},teardown:function(){if(e){return false}$(j.stop)}});j=(function(){var m={},r,n,o,q;function p(){o=q=function(s){return s};if(h){n=$('<iframe src="javascript:0"/>').hide().insertAfter("body")[0].contentWindow;q=function(){return a(n.document[c][l])};o=function(u,s){if(u!==s){var t=n.document;t.open().close();t[c].hash="#"+u}};o(a())}}m.start=function(){if(r){return}var t=a();o||p();(function s(){var v=a(),u=q(t);if(v!==t){o(t=v,u);$(i).trigger(d)}else{if(u!==t){i[c][l]=i[c][l].replace(/#.*/,"")+"#"+u}}r=setTimeout(s,$[d+"Delay"])})()};m.stop=function(){if(!n){r&&clearTimeout(r);r=0}};return m})()})(jQuery,this); \ No newline at end of file diff --git a/reference/ucp/3.1/api/lib/jquery.slideto.min.js b/reference/ucp/3.1/api/lib/jquery.slideto.min.js new file mode 100644 index 0000000000..ba32cff365 --- /dev/null +++ b/reference/ucp/3.1/api/lib/jquery.slideto.min.js @@ -0,0 +1 @@ +(function(b){b.fn.slideto=function(a){a=b.extend({slide_duration:"slow",highlight_duration:3E3,highlight:true,highlight_color:"#FFFF99"},a);return this.each(function(){obj=b(this);b("body").animate({scrollTop:obj.offset().top},a.slide_duration,function(){a.highlight&&b.ui.version&&obj.effect("highlight",{color:a.highlight_color},a.highlight_duration)})})}})(jQuery); diff --git a/reference/ucp/3.1/api/lib/jquery.wiggle.min.js b/reference/ucp/3.1/api/lib/jquery.wiggle.min.js new file mode 100644 index 0000000000..2adb0d6d54 --- /dev/null +++ b/reference/ucp/3.1/api/lib/jquery.wiggle.min.js @@ -0,0 +1,8 @@ +/* +jQuery Wiggle +Author: WonderGroup, Jordan Thomas +URL: http://labs.wondergroup.com/demos/mini-ui/index.html +License: MIT (http://en.wikipedia.org/wiki/MIT_License) +*/ +jQuery.fn.wiggle=function(o){var d={speed:50,wiggles:3,travel:5,callback:null};var o=jQuery.extend(d,o);return this.each(function(){var cache=this;var wrap=jQuery(this).wrap('<div class="wiggle-wrap"></div>').css("position","relative");var calls=0;for(i=1;i<=o.wiggles;i++){jQuery(this).animate({left:"-="+o.travel},o.speed).animate({left:"+="+o.travel*2},o.speed*2).animate({left:"-="+o.travel},o.speed,function(){calls++;if(jQuery(cache).parent().hasClass('wiggle-wrap')){jQuery(cache).parent().replaceWith(cache);} +if(calls==o.wiggles&&jQuery.isFunction(o.callback)){o.callback();}});}});}; \ No newline at end of file diff --git a/reference/ucp/3.1/api/lib/marked.js b/reference/ucp/3.1/api/lib/marked.js new file mode 100644 index 0000000000..c2a678d550 --- /dev/null +++ b/reference/ucp/3.1/api/lib/marked.js @@ -0,0 +1,1272 @@ +/** + * marked - a markdown parser + * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed) + * https://github.com/chjj/marked + */ + +;(function() { + +/** + * Block-Level Grammar + */ + +var block = { + newline: /^\n+/, + code: /^( {4}[^\n]+\n*)+/, + fences: noop, + hr: /^( *[-*_]){3,} *(?:\n+|$)/, + heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/, + nptable: noop, + lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/, + blockquote: /^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/, + list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/, + html: /^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/, + def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/, + table: noop, + paragraph: /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/, + text: /^[^\n]+/ +}; + +block.bullet = /(?:[*+-]|\d+\.)/; +block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/; +block.item = replace(block.item, 'gm') + (/bull/g, block.bullet) + (); + +block.list = replace(block.list) + (/bull/g, block.bullet) + ('hr', '\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))') + ('def', '\\n+(?=' + block.def.source + ')') + (); + +block.blockquote = replace(block.blockquote) + ('def', block.def) + (); + +block._tag = '(?!(?:' + + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code' + + '|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo' + + '|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b'; + +block.html = replace(block.html) + ('comment', /<!--[\s\S]*?-->/) + ('closed', /<(tag)[\s\S]+?<\/\1>/) + ('closing', /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/) + (/tag/g, block._tag) + (); + +block.paragraph = replace(block.paragraph) + ('hr', block.hr) + ('heading', block.heading) + ('lheading', block.lheading) + ('blockquote', block.blockquote) + ('tag', '<' + block._tag) + ('def', block.def) + (); + +/** + * Normal Block Grammar + */ + +block.normal = merge({}, block); + +/** + * GFM Block Grammar + */ + +block.gfm = merge({}, block.normal, { + fences: /^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/, + paragraph: /^/ +}); + +block.gfm.paragraph = replace(block.paragraph) + ('(?!', '(?!' + + block.gfm.fences.source.replace('\\1', '\\2') + '|' + + block.list.source.replace('\\1', '\\3') + '|') + (); + +/** + * GFM + Tables Block Grammar + */ + +block.tables = merge({}, block.gfm, { + nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/, + table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/ +}); + +/** + * Block Lexer + */ + +function Lexer(options) { + this.tokens = []; + this.tokens.links = {}; + this.options = options || marked.defaults; + this.rules = block.normal; + + if (this.options.gfm) { + if (this.options.tables) { + this.rules = block.tables; + } else { + this.rules = block.gfm; + } + } +} + +/** + * Expose Block Rules + */ + +Lexer.rules = block; + +/** + * Static Lex Method + */ + +Lexer.lex = function(src, options) { + var lexer = new Lexer(options); + return lexer.lex(src); +}; + +/** + * Preprocessing + */ + +Lexer.prototype.lex = function(src) { + src = src + .replace(/\r\n|\r/g, '\n') + .replace(/\t/g, ' ') + .replace(/\u00a0/g, ' ') + .replace(/\u2424/g, '\n'); + + return this.token(src, true); +}; + +/** + * Lexing + */ + +Lexer.prototype.token = function(src, top, bq) { + var src = src.replace(/^ +$/gm, '') + , next + , loose + , cap + , bull + , b + , item + , space + , i + , l; + + while (src) { + // newline + if (cap = this.rules.newline.exec(src)) { + src = src.substring(cap[0].length); + if (cap[0].length > 1) { + this.tokens.push({ + type: 'space' + }); + } + } + + // code + if (cap = this.rules.code.exec(src)) { + src = src.substring(cap[0].length); + cap = cap[0].replace(/^ {4}/gm, ''); + this.tokens.push({ + type: 'code', + text: !this.options.pedantic + ? cap.replace(/\n+$/, '') + : cap + }); + continue; + } + + // fences (gfm) + if (cap = this.rules.fences.exec(src)) { + src = src.substring(cap[0].length); + this.tokens.push({ + type: 'code', + lang: cap[2], + text: cap[3] + }); + continue; + } + + // heading + if (cap = this.rules.heading.exec(src)) { + src = src.substring(cap[0].length); + this.tokens.push({ + type: 'heading', + depth: cap[1].length, + text: cap[2] + }); + continue; + } + + // table no leading pipe (gfm) + if (top && (cap = this.rules.nptable.exec(src))) { + src = src.substring(cap[0].length); + + item = { + type: 'table', + header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), + align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), + cells: cap[3].replace(/\n$/, '').split('\n') + }; + + for (i = 0; i < item.align.length; i++) { + if (/^ *-+: *$/.test(item.align[i])) { + item.align[i] = 'right'; + } else if (/^ *:-+: *$/.test(item.align[i])) { + item.align[i] = 'center'; + } else if (/^ *:-+ *$/.test(item.align[i])) { + item.align[i] = 'left'; + } else { + item.align[i] = null; + } + } + + for (i = 0; i < item.cells.length; i++) { + item.cells[i] = item.cells[i].split(/ *\| */); + } + + this.tokens.push(item); + + continue; + } + + // lheading + if (cap = this.rules.lheading.exec(src)) { + src = src.substring(cap[0].length); + this.tokens.push({ + type: 'heading', + depth: cap[2] === '=' ? 1 : 2, + text: cap[1] + }); + continue; + } + + // hr + if (cap = this.rules.hr.exec(src)) { + src = src.substring(cap[0].length); + this.tokens.push({ + type: 'hr' + }); + continue; + } + + // blockquote + if (cap = this.rules.blockquote.exec(src)) { + src = src.substring(cap[0].length); + + this.tokens.push({ + type: 'blockquote_start' + }); + + cap = cap[0].replace(/^ *> ?/gm, ''); + + // Pass `top` to keep the current + // "toplevel" state. This is exactly + // how markdown.pl works. + this.token(cap, top, true); + + this.tokens.push({ + type: 'blockquote_end' + }); + + continue; + } + + // list + if (cap = this.rules.list.exec(src)) { + src = src.substring(cap[0].length); + bull = cap[2]; + + this.tokens.push({ + type: 'list_start', + ordered: bull.length > 1 + }); + + // Get each top-level item. + cap = cap[0].match(this.rules.item); + + next = false; + l = cap.length; + i = 0; + + for (; i < l; i++) { + item = cap[i]; + + // Remove the list item's bullet + // so it is seen as the next token. + space = item.length; + item = item.replace(/^ *([*+-]|\d+\.) +/, ''); + + // Outdent whatever the + // list item contains. Hacky. + if (~item.indexOf('\n ')) { + space -= item.length; + item = !this.options.pedantic + ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '') + : item.replace(/^ {1,4}/gm, ''); + } + + // Determine whether the next list item belongs here. + // Backpedal if it does not belong in this list. + if (this.options.smartLists && i !== l - 1) { + b = block.bullet.exec(cap[i + 1])[0]; + if (bull !== b && !(bull.length > 1 && b.length > 1)) { + src = cap.slice(i + 1).join('\n') + src; + i = l - 1; + } + } + + // Determine whether item is loose or not. + // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/ + // for discount behavior. + loose = next || /\n\n(?!\s*$)/.test(item); + if (i !== l - 1) { + next = item.charAt(item.length - 1) === '\n'; + if (!loose) loose = next; + } + + this.tokens.push({ + type: loose + ? 'loose_item_start' + : 'list_item_start' + }); + + // Recurse. + this.token(item, false, bq); + + this.tokens.push({ + type: 'list_item_end' + }); + } + + this.tokens.push({ + type: 'list_end' + }); + + continue; + } + + // html + if (cap = this.rules.html.exec(src)) { + src = src.substring(cap[0].length); + this.tokens.push({ + type: this.options.sanitize + ? 'paragraph' + : 'html', + pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style', + text: cap[0] + }); + continue; + } + + // def + if ((!bq && top) && (cap = this.rules.def.exec(src))) { + src = src.substring(cap[0].length); + this.tokens.links[cap[1].toLowerCase()] = { + href: cap[2], + title: cap[3] + }; + continue; + } + + // table (gfm) + if (top && (cap = this.rules.table.exec(src))) { + src = src.substring(cap[0].length); + + item = { + type: 'table', + header: cap[1].replace(/^ *| *\| *$/g, '').split(/ *\| */), + align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), + cells: cap[3].replace(/(?: *\| *)?\n$/, '').split('\n') + }; + + for (i = 0; i < item.align.length; i++) { + if (/^ *-+: *$/.test(item.align[i])) { + item.align[i] = 'right'; + } else if (/^ *:-+: *$/.test(item.align[i])) { + item.align[i] = 'center'; + } else if (/^ *:-+ *$/.test(item.align[i])) { + item.align[i] = 'left'; + } else { + item.align[i] = null; + } + } + + for (i = 0; i < item.cells.length; i++) { + item.cells[i] = item.cells[i] + .replace(/^ *\| *| *\| *$/g, '') + .split(/ *\| */); + } + + this.tokens.push(item); + + continue; + } + + // top-level paragraph + if (top && (cap = this.rules.paragraph.exec(src))) { + src = src.substring(cap[0].length); + this.tokens.push({ + type: 'paragraph', + text: cap[1].charAt(cap[1].length - 1) === '\n' + ? cap[1].slice(0, -1) + : cap[1] + }); + continue; + } + + // text + if (cap = this.rules.text.exec(src)) { + // Top-level should never reach here. + src = src.substring(cap[0].length); + this.tokens.push({ + type: 'text', + text: cap[0] + }); + continue; + } + + if (src) { + throw new + Error('Infinite loop on byte: ' + src.charCodeAt(0)); + } + } + + return this.tokens; +}; + +/** + * Inline-Level Grammar + */ + +var inline = { + escape: /^\\([\\`*{}\[\]()#+\-.!_>])/, + autolink: /^<([^ >]+(@|:\/)[^ >]+)>/, + url: noop, + tag: /^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/, + link: /^!?\[(inside)\]\(href\)/, + reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/, + nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/, + strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/, + em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, + code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/, + br: /^ {2,}\n(?!\s*$)/, + del: noop, + text: /^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/ +}; + +inline._inside = /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/; +inline._href = /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/; + +inline.link = replace(inline.link) + ('inside', inline._inside) + ('href', inline._href) + (); + +inline.reflink = replace(inline.reflink) + ('inside', inline._inside) + (); + +/** + * Normal Inline Grammar + */ + +inline.normal = merge({}, inline); + +/** + * Pedantic Inline Grammar + */ + +inline.pedantic = merge({}, inline.normal, { + strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/, + em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/ +}); + +/** + * GFM Inline Grammar + */ + +inline.gfm = merge({}, inline.normal, { + escape: replace(inline.escape)('])', '~|])')(), + url: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/, + del: /^~~(?=\S)([\s\S]*?\S)~~/, + text: replace(inline.text) + (']|', '~]|') + ('|', '|https?://|') + () +}); + +/** + * GFM + Line Breaks Inline Grammar + */ + +inline.breaks = merge({}, inline.gfm, { + br: replace(inline.br)('{2,}', '*')(), + text: replace(inline.gfm.text)('{2,}', '*')() +}); + +/** + * Inline Lexer & Compiler + */ + +function InlineLexer(links, options) { + this.options = options || marked.defaults; + this.links = links; + this.rules = inline.normal; + this.renderer = this.options.renderer || new Renderer; + this.renderer.options = this.options; + + if (!this.links) { + throw new + Error('Tokens array requires a `links` property.'); + } + + if (this.options.gfm) { + if (this.options.breaks) { + this.rules = inline.breaks; + } else { + this.rules = inline.gfm; + } + } else if (this.options.pedantic) { + this.rules = inline.pedantic; + } +} + +/** + * Expose Inline Rules + */ + +InlineLexer.rules = inline; + +/** + * Static Lexing/Compiling Method + */ + +InlineLexer.output = function(src, links, options) { + var inline = new InlineLexer(links, options); + return inline.output(src); +}; + +/** + * Lexing/Compiling + */ + +InlineLexer.prototype.output = function(src) { + var out = '' + , link + , text + , href + , cap; + + while (src) { + // escape + if (cap = this.rules.escape.exec(src)) { + src = src.substring(cap[0].length); + out += cap[1]; + continue; + } + + // autolink + if (cap = this.rules.autolink.exec(src)) { + src = src.substring(cap[0].length); + if (cap[2] === '@') { + text = cap[1].charAt(6) === ':' + ? this.mangle(cap[1].substring(7)) + : this.mangle(cap[1]); + href = this.mangle('mailto:') + text; + } else { + text = escape(cap[1]); + href = text; + } + out += this.renderer.link(href, null, text); + continue; + } + + // url (gfm) + if (!this.inLink && (cap = this.rules.url.exec(src))) { + src = src.substring(cap[0].length); + text = escape(cap[1]); + href = text; + out += this.renderer.link(href, null, text); + continue; + } + + // tag + if (cap = this.rules.tag.exec(src)) { + if (!this.inLink && /^<a /i.test(cap[0])) { + this.inLink = true; + } else if (this.inLink && /^<\/a>/i.test(cap[0])) { + this.inLink = false; + } + src = src.substring(cap[0].length); + out += this.options.sanitize + ? escape(cap[0]) + : cap[0]; + continue; + } + + // link + if (cap = this.rules.link.exec(src)) { + src = src.substring(cap[0].length); + this.inLink = true; + out += this.outputLink(cap, { + href: cap[2], + title: cap[3] + }); + this.inLink = false; + continue; + } + + // reflink, nolink + if ((cap = this.rules.reflink.exec(src)) + || (cap = this.rules.nolink.exec(src))) { + src = src.substring(cap[0].length); + link = (cap[2] || cap[1]).replace(/\s+/g, ' '); + link = this.links[link.toLowerCase()]; + if (!link || !link.href) { + out += cap[0].charAt(0); + src = cap[0].substring(1) + src; + continue; + } + this.inLink = true; + out += this.outputLink(cap, link); + this.inLink = false; + continue; + } + + // strong + if (cap = this.rules.strong.exec(src)) { + src = src.substring(cap[0].length); + out += this.renderer.strong(this.output(cap[2] || cap[1])); + continue; + } + + // em + if (cap = this.rules.em.exec(src)) { + src = src.substring(cap[0].length); + out += this.renderer.em(this.output(cap[2] || cap[1])); + continue; + } + + // code + if (cap = this.rules.code.exec(src)) { + src = src.substring(cap[0].length); + out += this.renderer.codespan(escape(cap[2], true)); + continue; + } + + // br + if (cap = this.rules.br.exec(src)) { + src = src.substring(cap[0].length); + out += this.renderer.br(); + continue; + } + + // del (gfm) + if (cap = this.rules.del.exec(src)) { + src = src.substring(cap[0].length); + out += this.renderer.del(this.output(cap[1])); + continue; + } + + // text + if (cap = this.rules.text.exec(src)) { + src = src.substring(cap[0].length); + out += escape(this.smartypants(cap[0])); + continue; + } + + if (src) { + throw new + Error('Infinite loop on byte: ' + src.charCodeAt(0)); + } + } + + return out; +}; + +/** + * Compile Link + */ + +InlineLexer.prototype.outputLink = function(cap, link) { + var href = escape(link.href) + , title = link.title ? escape(link.title) : null; + + return cap[0].charAt(0) !== '!' + ? this.renderer.link(href, title, this.output(cap[1])) + : this.renderer.image(href, title, escape(cap[1])); +}; + +/** + * Smartypants Transformations + */ + +InlineLexer.prototype.smartypants = function(text) { + if (!this.options.smartypants) return text; + return text + // em-dashes + .replace(/--/g, '\u2014') + // opening singles + .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018') + // closing singles & apostrophes + .replace(/'/g, '\u2019') + // opening doubles + .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c') + // closing doubles + .replace(/"/g, '\u201d') + // ellipses + .replace(/\.{3}/g, '\u2026'); +}; + +/** + * Mangle Links + */ + +InlineLexer.prototype.mangle = function(text) { + var out = '' + , l = text.length + , i = 0 + , ch; + + for (; i < l; i++) { + ch = text.charCodeAt(i); + if (Math.random() > 0.5) { + ch = 'x' + ch.toString(16); + } + out += '&#' + ch + ';'; + } + + return out; +}; + +/** + * Renderer + */ + +function Renderer(options) { + this.options = options || {}; +} + +Renderer.prototype.code = function(code, lang, escaped) { + if (this.options.highlight) { + var out = this.options.highlight(code, lang); + if (out != null && out !== code) { + escaped = true; + code = out; + } + } + + if (!lang) { + return '<pre><code>' + + (escaped ? code : escape(code, true)) + + '\n</code></pre>'; + } + + return '<pre><code class="' + + this.options.langPrefix + + escape(lang, true) + + '">' + + (escaped ? code : escape(code, true)) + + '\n</code></pre>\n'; +}; + +Renderer.prototype.blockquote = function(quote) { + return '<blockquote>\n' + quote + '</blockquote>\n'; +}; + +Renderer.prototype.html = function(html) { + return html; +}; + +Renderer.prototype.heading = function(text, level, raw) { + return '<h' + + level + + ' id="' + + this.options.headerPrefix + + raw.toLowerCase().replace(/[^\w]+/g, '-') + + '">' + + text + + '</h' + + level + + '>\n'; +}; + +Renderer.prototype.hr = function() { + return this.options.xhtml ? '<hr/>\n' : '<hr>\n'; +}; + +Renderer.prototype.list = function(body, ordered) { + var type = ordered ? 'ol' : 'ul'; + return '<' + type + '>\n' + body + '</' + type + '>\n'; +}; + +Renderer.prototype.listitem = function(text) { + return '<li>' + text + '</li>\n'; +}; + +Renderer.prototype.paragraph = function(text) { + return '<p>' + text + '</p>\n'; +}; + +Renderer.prototype.table = function(header, body) { + return '<table>\n' + + '<thead>\n' + + header + + '</thead>\n' + + '<tbody>\n' + + body + + '</tbody>\n' + + '</table>\n'; +}; + +Renderer.prototype.tablerow = function(content) { + return '<tr>\n' + content + '</tr>\n'; +}; + +Renderer.prototype.tablecell = function(content, flags) { + var type = flags.header ? 'th' : 'td'; + var tag = flags.align + ? '<' + type + ' style="text-align:' + flags.align + '">' + : '<' + type + '>'; + return tag + content + '</' + type + '>\n'; +}; + +// span level renderer +Renderer.prototype.strong = function(text) { + return '<strong>' + text + '</strong>'; +}; + +Renderer.prototype.em = function(text) { + return '<em>' + text + '</em>'; +}; + +Renderer.prototype.codespan = function(text) { + return '<code>' + text + '</code>'; +}; + +Renderer.prototype.br = function() { + return this.options.xhtml ? '<br/>' : '<br>'; +}; + +Renderer.prototype.del = function(text) { + return '<del>' + text + '</del>'; +}; + +Renderer.prototype.link = function(href, title, text) { + if (this.options.sanitize) { + try { + var prot = decodeURIComponent(unescape(href)) + .replace(/[^\w:]/g, '') + .toLowerCase(); + } catch (e) { + return ''; + } + if (prot.indexOf('javascript:') === 0) { + return ''; + } + } + var out = '<a href="' + href + '"'; + if (title) { + out += ' title="' + title + '"'; + } + out += '>' + text + '</a>'; + return out; +}; + +Renderer.prototype.image = function(href, title, text) { + var out = '<img src="' + href + '" alt="' + text + '"'; + if (title) { + out += ' title="' + title + '"'; + } + out += this.options.xhtml ? '/>' : '>'; + return out; +}; + +/** + * Parsing & Compiling + */ + +function Parser(options) { + this.tokens = []; + this.token = null; + this.options = options || marked.defaults; + this.options.renderer = this.options.renderer || new Renderer; + this.renderer = this.options.renderer; + this.renderer.options = this.options; +} + +/** + * Static Parse Method + */ + +Parser.parse = function(src, options, renderer) { + var parser = new Parser(options, renderer); + return parser.parse(src); +}; + +/** + * Parse Loop + */ + +Parser.prototype.parse = function(src) { + this.inline = new InlineLexer(src.links, this.options, this.renderer); + this.tokens = src.reverse(); + + var out = ''; + while (this.next()) { + out += this.tok(); + } + + return out; +}; + +/** + * Next Token + */ + +Parser.prototype.next = function() { + return this.token = this.tokens.pop(); +}; + +/** + * Preview Next Token + */ + +Parser.prototype.peek = function() { + return this.tokens[this.tokens.length - 1] || 0; +}; + +/** + * Parse Text Tokens + */ + +Parser.prototype.parseText = function() { + var body = this.token.text; + + while (this.peek().type === 'text') { + body += '\n' + this.next().text; + } + + return this.inline.output(body); +}; + +/** + * Parse Current Token + */ + +Parser.prototype.tok = function() { + switch (this.token.type) { + case 'space': { + return ''; + } + case 'hr': { + return this.renderer.hr(); + } + case 'heading': { + return this.renderer.heading( + this.inline.output(this.token.text), + this.token.depth, + this.token.text); + } + case 'code': { + return this.renderer.code(this.token.text, + this.token.lang, + this.token.escaped); + } + case 'table': { + var header = '' + , body = '' + , i + , row + , cell + , flags + , j; + + // header + cell = ''; + for (i = 0; i < this.token.header.length; i++) { + flags = { header: true, align: this.token.align[i] }; + cell += this.renderer.tablecell( + this.inline.output(this.token.header[i]), + { header: true, align: this.token.align[i] } + ); + } + header += this.renderer.tablerow(cell); + + for (i = 0; i < this.token.cells.length; i++) { + row = this.token.cells[i]; + + cell = ''; + for (j = 0; j < row.length; j++) { + cell += this.renderer.tablecell( + this.inline.output(row[j]), + { header: false, align: this.token.align[j] } + ); + } + + body += this.renderer.tablerow(cell); + } + return this.renderer.table(header, body); + } + case 'blockquote_start': { + var body = ''; + + while (this.next().type !== 'blockquote_end') { + body += this.tok(); + } + + return this.renderer.blockquote(body); + } + case 'list_start': { + var body = '' + , ordered = this.token.ordered; + + while (this.next().type !== 'list_end') { + body += this.tok(); + } + + return this.renderer.list(body, ordered); + } + case 'list_item_start': { + var body = ''; + + while (this.next().type !== 'list_item_end') { + body += this.token.type === 'text' + ? this.parseText() + : this.tok(); + } + + return this.renderer.listitem(body); + } + case 'loose_item_start': { + var body = ''; + + while (this.next().type !== 'list_item_end') { + body += this.tok(); + } + + return this.renderer.listitem(body); + } + case 'html': { + var html = !this.token.pre && !this.options.pedantic + ? this.inline.output(this.token.text) + : this.token.text; + return this.renderer.html(html); + } + case 'paragraph': { + return this.renderer.paragraph(this.inline.output(this.token.text)); + } + case 'text': { + return this.renderer.paragraph(this.parseText()); + } + } +}; + +/** + * Helpers + */ + +function escape(html, encode) { + return html + .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&amp;') + .replace(/</g, '&lt;') + .replace(/>/g, '&gt;') + .replace(/"/g, '&quot;') + .replace(/'/g, '&#39;'); +} + +function unescape(html) { + return html.replace(/&([#\w]+);/g, function(_, n) { + n = n.toLowerCase(); + if (n === 'colon') return ':'; + if (n.charAt(0) === '#') { + return n.charAt(1) === 'x' + ? String.fromCharCode(parseInt(n.substring(2), 16)) + : String.fromCharCode(+n.substring(1)); + } + return ''; + }); +} + +function replace(regex, opt) { + regex = regex.source; + opt = opt || ''; + return function self(name, val) { + if (!name) return new RegExp(regex, opt); + val = val.source || val; + val = val.replace(/(^|[^\[])\^/g, '$1'); + regex = regex.replace(name, val); + return self; + }; +} + +function noop() {} +noop.exec = noop; + +function merge(obj) { + var i = 1 + , target + , key; + + for (; i < arguments.length; i++) { + target = arguments[i]; + for (key in target) { + if (Object.prototype.hasOwnProperty.call(target, key)) { + obj[key] = target[key]; + } + } + } + + return obj; +} + + +/** + * Marked + */ + +function marked(src, opt, callback) { + if (callback || typeof opt === 'function') { + if (!callback) { + callback = opt; + opt = null; + } + + opt = merge({}, marked.defaults, opt || {}); + + var highlight = opt.highlight + , tokens + , pending + , i = 0; + + try { + tokens = Lexer.lex(src, opt) + } catch (e) { + return callback(e); + } + + pending = tokens.length; + + var done = function(err) { + if (err) { + opt.highlight = highlight; + return callback(err); + } + + var out; + + try { + out = Parser.parse(tokens, opt); + } catch (e) { + err = e; + } + + opt.highlight = highlight; + + return err + ? callback(err) + : callback(null, out); + }; + + if (!highlight || highlight.length < 3) { + return done(); + } + + delete opt.highlight; + + if (!pending) return done(); + + for (; i < tokens.length; i++) { + (function(token) { + if (token.type !== 'code') { + return --pending || done(); + } + return highlight(token.text, token.lang, function(err, code) { + if (err) return done(err); + if (code == null || code === token.text) { + return --pending || done(); + } + token.text = code; + token.escaped = true; + --pending || done(); + }); + })(tokens[i]); + } + + return; + } + try { + if (opt) opt = merge({}, marked.defaults, opt); + return Parser.parse(Lexer.lex(src, opt), opt); + } catch (e) { + e.message += '\nPlease report this to https://github.com/chjj/marked.'; + if ((opt || marked.defaults).silent) { + return '<p>An error occured:</p><pre>' + + escape(e.message + '', true) + + '</pre>'; + } + throw e; + } +} + +/** + * Options + */ + +marked.options = +marked.setOptions = function(opt) { + merge(marked.defaults, opt); + return marked; +}; + +marked.defaults = { + gfm: true, + tables: true, + breaks: false, + pedantic: false, + sanitize: false, + smartLists: false, + silent: false, + highlight: null, + langPrefix: 'lang-', + smartypants: false, + headerPrefix: '', + renderer: new Renderer, + xhtml: false +}; + +/** + * Expose + */ + +marked.Parser = Parser; +marked.parser = Parser.parse; + +marked.Renderer = Renderer; + +marked.Lexer = Lexer; +marked.lexer = Lexer.lex; + +marked.InlineLexer = InlineLexer; +marked.inlineLexer = InlineLexer.output; + +marked.parse = marked; + +if (typeof module !== 'undefined' && typeof exports === 'object') { + module.exports = marked; +} else if (typeof define === 'function' && define.amd) { + define(function() { return marked; }); +} else { + this.marked = marked; +} + +}).call(function() { + return this || (typeof window !== 'undefined' ? window : global); +}()); \ No newline at end of file diff --git a/reference/ucp/3.1/api/lib/swagger-oauth.js b/reference/ucp/3.1/api/lib/swagger-oauth.js new file mode 100644 index 0000000000..3bb1c2773a --- /dev/null +++ b/reference/ucp/3.1/api/lib/swagger-oauth.js @@ -0,0 +1,290 @@ +var appName; +var popupMask; +var popupDialog; +var clientId; +var realm; +var oauth2KeyName; +var redirect_uri; +var clientSecret; +var scopeSeparator; + +function handleLogin() { + var scopes = []; + + var auths = window.swaggerUi.api.authSchemes || window.swaggerUi.api.securityDefinitions; + if(auths) { + var key; + var defs = auths; + for(key in defs) { + var auth = defs[key]; + if(auth.type === 'oauth2' && auth.scopes) { + oauth2KeyName = key; + var scope; + if(Array.isArray(auth.scopes)) { + // 1.2 support + var i; + for(i = 0; i < auth.scopes.length; i++) { + scopes.push(auth.scopes[i]); + } + } + else { + // 2.0 support + for(scope in auth.scopes) { + scopes.push({scope: scope, description: auth.scopes[scope]}); + } + } + } + } + } + + if(window.swaggerUi.api + && window.swaggerUi.api.info) { + appName = window.swaggerUi.api.info.title; + } + + $('.api-popup-dialog').remove(); + popupDialog = $( + [ + '<div class="api-popup-dialog">', + '<div class="api-popup-title">Select OAuth2.0 Scopes</div>', + '<div class="api-popup-content">', + '<p>Scopes are used to grant an application different levels of access to data on behalf of the end user. Each API may declare one or more scopes.', + '<a href="#">Learn how to use</a>', + '</p>', + '<p><strong>' + appName + '</strong> API requires the following scopes. Select which ones you want to grant to Swagger UI.</p>', + '<ul class="api-popup-scopes">', + '</ul>', + '<p class="error-msg"></p>', + '<div class="api-popup-actions"><button class="api-popup-authbtn api-button green" type="button">Authorize</button><button class="api-popup-cancel api-button gray" type="button">Cancel</button></div>', + '</div>', + '</div>'].join('')); + $(document.body).append(popupDialog); + + popup = popupDialog.find('ul.api-popup-scopes').empty(); + for (i = 0; i < scopes.length; i ++) { + scope = scopes[i]; + str = '<li><input type="checkbox" id="scope_' + i + '" scope="' + scope.scope + '"/>' + '<label for="scope_' + i + '">' + scope.scope; + if (scope.description) { + str += '<br/><span class="api-scope-desc">' + scope.description + '</span>'; + } + str += '</label></li>'; + popup.append(str); + } + + var $win = $(window), + dw = $win.width(), + dh = $win.height(), + st = $win.scrollTop(), + dlgWd = popupDialog.outerWidth(), + dlgHt = popupDialog.outerHeight(), + top = (dh -dlgHt)/2 + st, + left = (dw - dlgWd)/2; + + popupDialog.css({ + top: (top < 0? 0 : top) + 'px', + left: (left < 0? 0 : left) + 'px' + }); + + popupDialog.find('button.api-popup-cancel').click(function() { + popupMask.hide(); + popupDialog.hide(); + popupDialog.empty(); + popupDialog = []; + }); + + $('button.api-popup-authbtn').unbind(); + popupDialog.find('button.api-popup-authbtn').click(function() { + popupMask.hide(); + popupDialog.hide(); + + var authSchemes = window.swaggerUi.api.authSchemes; + var host = window.location; + var pathname = location.pathname.substring(0, location.pathname.lastIndexOf("/")); + var defaultRedirectUrl = host.protocol + '//' + host.host + pathname + '/o2c.html'; + var redirectUrl = window.oAuthRedirectUrl || defaultRedirectUrl; + var url = null; + + for (var key in authSchemes) { + if (authSchemes.hasOwnProperty(key)) { + var flow = authSchemes[key].flow; + + if(authSchemes[key].type === 'oauth2' && flow && (flow === 'implicit' || flow === 'accessCode')) { + var dets = authSchemes[key]; + url = dets.authorizationUrl + '?response_type=' + (flow === 'implicit' ? 'token' : 'code'); + window.swaggerUi.tokenName = dets.tokenName || 'access_token'; + window.swaggerUi.tokenUrl = (flow === 'accessCode' ? dets.tokenUrl : null); + } + else if(authSchemes[key].grantTypes) { + // 1.2 support + var o = authSchemes[key].grantTypes; + for(var t in o) { + if(o.hasOwnProperty(t) && t === 'implicit') { + var dets = o[t]; + var ep = dets.loginEndpoint.url; + url = dets.loginEndpoint.url + '?response_type=token'; + window.swaggerUi.tokenName = dets.tokenName; + } + else if (o.hasOwnProperty(t) && t === 'accessCode') { + var dets = o[t]; + var ep = dets.tokenRequestEndpoint.url; + url = dets.tokenRequestEndpoint.url + '?response_type=code'; + window.swaggerUi.tokenName = dets.tokenName; + } + } + } + } + } + var scopes = [] + var o = $('.api-popup-scopes').find('input:checked'); + + for(k =0; k < o.length; k++) { + var scope = $(o[k]).attr('scope'); + + if (scopes.indexOf(scope) === -1) + scopes.push(scope); + } + + // Implicit auth recommends a state parameter. + var state = Math.random (); + + window.enabledScopes=scopes; + + redirect_uri = redirectUrl; + + url += '&redirect_uri=' + encodeURIComponent(redirectUrl); + url += '&realm=' + encodeURIComponent(realm); + url += '&client_id=' + encodeURIComponent(clientId); + url += '&scope=' + encodeURIComponent(scopes.join(scopeSeparator)); + url += '&state=' + encodeURIComponent(state); + + window.open(url); + }); + + popupMask.show(); + popupDialog.show(); + return; +} + + +function handleLogout() { + for(key in window.swaggerUi.api.clientAuthorizations.authz){ + window.swaggerUi.api.clientAuthorizations.remove(key) + } + window.enabledScopes = null; + $('.api-ic.ic-on').addClass('ic-off'); + $('.api-ic.ic-on').removeClass('ic-on'); + + // set the info box + $('.api-ic.ic-warning').addClass('ic-error'); + $('.api-ic.ic-warning').removeClass('ic-warning'); +} + +function initOAuth(opts) { + var o = (opts||{}); + var errors = []; + + appName = (o.appName||errors.push('missing appName')); + popupMask = (o.popupMask||$('#api-common-mask')); + popupDialog = (o.popupDialog||$('.api-popup-dialog')); + clientId = (o.clientId||errors.push('missing client id')); + clientSecret = (o.clientSecret||errors.push('missing client secret')); + realm = (o.realm||errors.push('missing realm')); + scopeSeparator = (o.scopeSeparator||' '); + + if(errors.length > 0){ + log('auth unable initialize oauth: ' + errors); + return; + } + + $('pre code').each(function(i, e) {hljs.highlightBlock(e)}); + $('.api-ic').unbind(); + $('.api-ic').click(function(s) { + if($(s.target).hasClass('ic-off')) + handleLogin(); + else { + handleLogout(); + } + false; + }); +} + +window.processOAuthCode = function processOAuthCode(data) { + var params = { + 'client_id': clientId, + 'client_secret': clientSecret, + 'code': data.code, + 'grant_type': 'authorization_code', + 'redirect_uri': redirect_uri + } + $.ajax( + { + url : window.swaggerUi.tokenUrl, + type: "POST", + data: params, + success:function(data, textStatus, jqXHR) + { + onOAuthComplete(data); + }, + error: function(jqXHR, textStatus, errorThrown) + { + onOAuthComplete(""); + } + }); +} + +window.onOAuthComplete = function onOAuthComplete(token) { + if(token) { + if(token.error) { + var checkbox = $('input[type=checkbox],.secured') + checkbox.each(function(pos){ + checkbox[pos].checked = false; + }); + alert(token.error); + } + else { + var b = token[window.swaggerUi.tokenName]; + if(b){ + // if all roles are satisfied + var o = null; + $.each($('.auth .api-ic .api_information_panel'), function(k, v) { + var children = v; + if(children && children.childNodes) { + var requiredScopes = []; + $.each((children.childNodes), function (k1, v1){ + var inner = v1.innerHTML; + if(inner) + requiredScopes.push(inner); + }); + var diff = []; + for(var i=0; i < requiredScopes.length; i++) { + var s = requiredScopes[i]; + if(window.enabledScopes && window.enabledScopes.indexOf(s) == -1) { + diff.push(s); + } + } + if(diff.length > 0){ + o = v.parentNode.parentNode; + $(o.parentNode).find('.api-ic.ic-on').addClass('ic-off'); + $(o.parentNode).find('.api-ic.ic-on').removeClass('ic-on'); + + // sorry, not all scopes are satisfied + $(o).find('.api-ic').addClass('ic-warning'); + $(o).find('.api-ic').removeClass('ic-error'); + } + else { + o = v.parentNode.parentNode; + $(o.parentNode).find('.api-ic.ic-off').addClass('ic-on'); + $(o.parentNode).find('.api-ic.ic-off').removeClass('ic-off'); + + // all scopes are satisfied + $(o).find('.api-ic').addClass('ic-info'); + $(o).find('.api-ic').removeClass('ic-warning'); + $(o).find('.api-ic').removeClass('ic-error'); + } + } + }); + window.swaggerUi.api.clientAuthorizations.add(oauth2KeyName, new SwaggerClient.ApiKeyAuthorization('Authorization', 'Bearer ' + b, 'header')); + } + } + } +} diff --git a/reference/ucp/3.1/api/lib/underscore-min.js b/reference/ucp/3.1/api/lib/underscore-min.js new file mode 100644 index 0000000000..11f1d96f53 --- /dev/null +++ b/reference/ucp/3.1/api/lib/underscore-min.js @@ -0,0 +1,6 @@ +// Underscore.js 1.7.0 +// http://underscorejs.org +// (c) 2009-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors +// Underscore may be freely distributed under the MIT license. +(function(){var n=this,t=n._,r=Array.prototype,e=Object.prototype,u=Function.prototype,i=r.push,a=r.slice,o=r.concat,l=e.toString,c=e.hasOwnProperty,f=Array.isArray,s=Object.keys,p=u.bind,h=function(n){return n instanceof h?n:this instanceof h?void(this._wrapped=n):new h(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=h),exports._=h):n._=h,h.VERSION="1.7.0";var g=function(n,t,r){if(t===void 0)return n;switch(null==r?3:r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,i){return n.call(t,r,e,u,i)}}return function(){return n.apply(t,arguments)}};h.iteratee=function(n,t,r){return null==n?h.identity:h.isFunction(n)?g(n,t,r):h.isObject(n)?h.matches(n):h.property(n)},h.each=h.forEach=function(n,t,r){if(null==n)return n;t=g(t,r);var e,u=n.length;if(u===+u)for(e=0;u>e;e++)t(n[e],e,n);else{var i=h.keys(n);for(e=0,u=i.length;u>e;e++)t(n[i[e]],i[e],n)}return n},h.map=h.collect=function(n,t,r){if(null==n)return[];t=h.iteratee(t,r);for(var e,u=n.length!==+n.length&&h.keys(n),i=(u||n).length,a=Array(i),o=0;i>o;o++)e=u?u[o]:o,a[o]=t(n[e],e,n);return a};var v="Reduce of empty array with no initial value";h.reduce=h.foldl=h.inject=function(n,t,r,e){null==n&&(n=[]),t=g(t,e,4);var u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length,o=0;if(arguments.length<3){if(!a)throw new TypeError(v);r=n[i?i[o++]:o++]}for(;a>o;o++)u=i?i[o]:o,r=t(r,n[u],u,n);return r},h.reduceRight=h.foldr=function(n,t,r,e){null==n&&(n=[]),t=g(t,e,4);var u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length;if(arguments.length<3){if(!a)throw new TypeError(v);r=n[i?i[--a]:--a]}for(;a--;)u=i?i[a]:a,r=t(r,n[u],u,n);return r},h.find=h.detect=function(n,t,r){var e;return t=h.iteratee(t,r),h.some(n,function(n,r,u){return t(n,r,u)?(e=n,!0):void 0}),e},h.filter=h.select=function(n,t,r){var e=[];return null==n?e:(t=h.iteratee(t,r),h.each(n,function(n,r,u){t(n,r,u)&&e.push(n)}),e)},h.reject=function(n,t,r){return h.filter(n,h.negate(h.iteratee(t)),r)},h.every=h.all=function(n,t,r){if(null==n)return!0;t=h.iteratee(t,r);var e,u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length;for(e=0;a>e;e++)if(u=i?i[e]:e,!t(n[u],u,n))return!1;return!0},h.some=h.any=function(n,t,r){if(null==n)return!1;t=h.iteratee(t,r);var e,u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length;for(e=0;a>e;e++)if(u=i?i[e]:e,t(n[u],u,n))return!0;return!1},h.contains=h.include=function(n,t){return null==n?!1:(n.length!==+n.length&&(n=h.values(n)),h.indexOf(n,t)>=0)},h.invoke=function(n,t){var r=a.call(arguments,2),e=h.isFunction(t);return h.map(n,function(n){return(e?t:n[t]).apply(n,r)})},h.pluck=function(n,t){return h.map(n,h.property(t))},h.where=function(n,t){return h.filter(n,h.matches(t))},h.findWhere=function(n,t){return h.find(n,h.matches(t))},h.max=function(n,t,r){var e,u,i=-1/0,a=-1/0;if(null==t&&null!=n){n=n.length===+n.length?n:h.values(n);for(var o=0,l=n.length;l>o;o++)e=n[o],e>i&&(i=e)}else t=h.iteratee(t,r),h.each(n,function(n,r,e){u=t(n,r,e),(u>a||u===-1/0&&i===-1/0)&&(i=n,a=u)});return i},h.min=function(n,t,r){var e,u,i=1/0,a=1/0;if(null==t&&null!=n){n=n.length===+n.length?n:h.values(n);for(var o=0,l=n.length;l>o;o++)e=n[o],i>e&&(i=e)}else t=h.iteratee(t,r),h.each(n,function(n,r,e){u=t(n,r,e),(a>u||1/0===u&&1/0===i)&&(i=n,a=u)});return i},h.shuffle=function(n){for(var t,r=n&&n.length===+n.length?n:h.values(n),e=r.length,u=Array(e),i=0;e>i;i++)t=h.random(0,i),t!==i&&(u[i]=u[t]),u[t]=r[i];return u},h.sample=function(n,t,r){return null==t||r?(n.length!==+n.length&&(n=h.values(n)),n[h.random(n.length-1)]):h.shuffle(n).slice(0,Math.max(0,t))},h.sortBy=function(n,t,r){return t=h.iteratee(t,r),h.pluck(h.map(n,function(n,r,e){return{value:n,index:r,criteria:t(n,r,e)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index-t.index}),"value")};var m=function(n){return function(t,r,e){var u={};return r=h.iteratee(r,e),h.each(t,function(e,i){var a=r(e,i,t);n(u,e,a)}),u}};h.groupBy=m(function(n,t,r){h.has(n,r)?n[r].push(t):n[r]=[t]}),h.indexBy=m(function(n,t,r){n[r]=t}),h.countBy=m(function(n,t,r){h.has(n,r)?n[r]++:n[r]=1}),h.sortedIndex=function(n,t,r,e){r=h.iteratee(r,e,1);for(var u=r(t),i=0,a=n.length;a>i;){var o=i+a>>>1;r(n[o])<u?i=o+1:a=o}return i},h.toArray=function(n){return n?h.isArray(n)?a.call(n):n.length===+n.length?h.map(n,h.identity):h.values(n):[]},h.size=function(n){return null==n?0:n.length===+n.length?n.length:h.keys(n).length},h.partition=function(n,t,r){t=h.iteratee(t,r);var e=[],u=[];return h.each(n,function(n,r,i){(t(n,r,i)?e:u).push(n)}),[e,u]},h.first=h.head=h.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:0>t?[]:a.call(n,0,t)},h.initial=function(n,t,r){return a.call(n,0,Math.max(0,n.length-(null==t||r?1:t)))},h.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:a.call(n,Math.max(n.length-t,0))},h.rest=h.tail=h.drop=function(n,t,r){return a.call(n,null==t||r?1:t)},h.compact=function(n){return h.filter(n,h.identity)};var y=function(n,t,r,e){if(t&&h.every(n,h.isArray))return o.apply(e,n);for(var u=0,a=n.length;a>u;u++){var l=n[u];h.isArray(l)||h.isArguments(l)?t?i.apply(e,l):y(l,t,r,e):r||e.push(l)}return e};h.flatten=function(n,t){return y(n,t,!1,[])},h.without=function(n){return h.difference(n,a.call(arguments,1))},h.uniq=h.unique=function(n,t,r,e){if(null==n)return[];h.isBoolean(t)||(e=r,r=t,t=!1),null!=r&&(r=h.iteratee(r,e));for(var u=[],i=[],a=0,o=n.length;o>a;a++){var l=n[a];if(t)a&&i===l||u.push(l),i=l;else if(r){var c=r(l,a,n);h.indexOf(i,c)<0&&(i.push(c),u.push(l))}else h.indexOf(u,l)<0&&u.push(l)}return u},h.union=function(){return h.uniq(y(arguments,!0,!0,[]))},h.intersection=function(n){if(null==n)return[];for(var t=[],r=arguments.length,e=0,u=n.length;u>e;e++){var i=n[e];if(!h.contains(t,i)){for(var a=1;r>a&&h.contains(arguments[a],i);a++);a===r&&t.push(i)}}return t},h.difference=function(n){var t=y(a.call(arguments,1),!0,!0,[]);return h.filter(n,function(n){return!h.contains(t,n)})},h.zip=function(n){if(null==n)return[];for(var t=h.max(arguments,"length").length,r=Array(t),e=0;t>e;e++)r[e]=h.pluck(arguments,e);return r},h.object=function(n,t){if(null==n)return{};for(var r={},e=0,u=n.length;u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},h.indexOf=function(n,t,r){if(null==n)return-1;var e=0,u=n.length;if(r){if("number"!=typeof r)return e=h.sortedIndex(n,t),n[e]===t?e:-1;e=0>r?Math.max(0,u+r):r}for(;u>e;e++)if(n[e]===t)return e;return-1},h.lastIndexOf=function(n,t,r){if(null==n)return-1;var e=n.length;for("number"==typeof r&&(e=0>r?e+r+1:Math.min(e,r+1));--e>=0;)if(n[e]===t)return e;return-1},h.range=function(n,t,r){arguments.length<=1&&(t=n||0,n=0),r=r||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=Array(e),i=0;e>i;i++,n+=r)u[i]=n;return u};var d=function(){};h.bind=function(n,t){var r,e;if(p&&n.bind===p)return p.apply(n,a.call(arguments,1));if(!h.isFunction(n))throw new TypeError("Bind must be called on a function");return r=a.call(arguments,2),e=function(){if(!(this instanceof e))return n.apply(t,r.concat(a.call(arguments)));d.prototype=n.prototype;var u=new d;d.prototype=null;var i=n.apply(u,r.concat(a.call(arguments)));return h.isObject(i)?i:u}},h.partial=function(n){var t=a.call(arguments,1);return function(){for(var r=0,e=t.slice(),u=0,i=e.length;i>u;u++)e[u]===h&&(e[u]=arguments[r++]);for(;r<arguments.length;)e.push(arguments[r++]);return n.apply(this,e)}},h.bindAll=function(n){var t,r,e=arguments.length;if(1>=e)throw new Error("bindAll must be passed function names");for(t=1;e>t;t++)r=arguments[t],n[r]=h.bind(n[r],n);return n},h.memoize=function(n,t){var r=function(e){var u=r.cache,i=t?t.apply(this,arguments):e;return h.has(u,i)||(u[i]=n.apply(this,arguments)),u[i]};return r.cache={},r},h.delay=function(n,t){var r=a.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},h.defer=function(n){return h.delay.apply(h,[n,1].concat(a.call(arguments,1)))},h.throttle=function(n,t,r){var e,u,i,a=null,o=0;r||(r={});var l=function(){o=r.leading===!1?0:h.now(),a=null,i=n.apply(e,u),a||(e=u=null)};return function(){var c=h.now();o||r.leading!==!1||(o=c);var f=t-(c-o);return e=this,u=arguments,0>=f||f>t?(clearTimeout(a),a=null,o=c,i=n.apply(e,u),a||(e=u=null)):a||r.trailing===!1||(a=setTimeout(l,f)),i}},h.debounce=function(n,t,r){var e,u,i,a,o,l=function(){var c=h.now()-a;t>c&&c>0?e=setTimeout(l,t-c):(e=null,r||(o=n.apply(i,u),e||(i=u=null)))};return function(){i=this,u=arguments,a=h.now();var c=r&&!e;return e||(e=setTimeout(l,t)),c&&(o=n.apply(i,u),i=u=null),o}},h.wrap=function(n,t){return h.partial(t,n)},h.negate=function(n){return function(){return!n.apply(this,arguments)}},h.compose=function(){var n=arguments,t=n.length-1;return function(){for(var r=t,e=n[t].apply(this,arguments);r--;)e=n[r].call(this,e);return e}},h.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},h.before=function(n,t){var r;return function(){return--n>0?r=t.apply(this,arguments):t=null,r}},h.once=h.partial(h.before,2),h.keys=function(n){if(!h.isObject(n))return[];if(s)return s(n);var t=[];for(var r in n)h.has(n,r)&&t.push(r);return t},h.values=function(n){for(var t=h.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},h.pairs=function(n){for(var t=h.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},h.invert=function(n){for(var t={},r=h.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},h.functions=h.methods=function(n){var t=[];for(var r in n)h.isFunction(n[r])&&t.push(r);return t.sort()},h.extend=function(n){if(!h.isObject(n))return n;for(var t,r,e=1,u=arguments.length;u>e;e++){t=arguments[e];for(r in t)c.call(t,r)&&(n[r]=t[r])}return n},h.pick=function(n,t,r){var e,u={};if(null==n)return u;if(h.isFunction(t)){t=g(t,r);for(e in n){var i=n[e];t(i,e,n)&&(u[e]=i)}}else{var l=o.apply([],a.call(arguments,1));n=new Object(n);for(var c=0,f=l.length;f>c;c++)e=l[c],e in n&&(u[e]=n[e])}return u},h.omit=function(n,t,r){if(h.isFunction(t))t=h.negate(t);else{var e=h.map(o.apply([],a.call(arguments,1)),String);t=function(n,t){return!h.contains(e,t)}}return h.pick(n,t,r)},h.defaults=function(n){if(!h.isObject(n))return n;for(var t=1,r=arguments.length;r>t;t++){var e=arguments[t];for(var u in e)n[u]===void 0&&(n[u]=e[u])}return n},h.clone=function(n){return h.isObject(n)?h.isArray(n)?n.slice():h.extend({},n):n},h.tap=function(n,t){return t(n),n};var b=function(n,t,r,e){if(n===t)return 0!==n||1/n===1/t;if(null==n||null==t)return n===t;n instanceof h&&(n=n._wrapped),t instanceof h&&(t=t._wrapped);var u=l.call(n);if(u!==l.call(t))return!1;switch(u){case"[object RegExp]":case"[object String]":return""+n==""+t;case"[object Number]":return+n!==+n?+t!==+t:0===+n?1/+n===1/t:+n===+t;case"[object Date]":case"[object Boolean]":return+n===+t}if("object"!=typeof n||"object"!=typeof t)return!1;for(var i=r.length;i--;)if(r[i]===n)return e[i]===t;var a=n.constructor,o=t.constructor;if(a!==o&&"constructor"in n&&"constructor"in t&&!(h.isFunction(a)&&a instanceof a&&h.isFunction(o)&&o instanceof o))return!1;r.push(n),e.push(t);var c,f;if("[object Array]"===u){if(c=n.length,f=c===t.length)for(;c--&&(f=b(n[c],t[c],r,e)););}else{var s,p=h.keys(n);if(c=p.length,f=h.keys(t).length===c)for(;c--&&(s=p[c],f=h.has(t,s)&&b(n[s],t[s],r,e)););}return r.pop(),e.pop(),f};h.isEqual=function(n,t){return b(n,t,[],[])},h.isEmpty=function(n){if(null==n)return!0;if(h.isArray(n)||h.isString(n)||h.isArguments(n))return 0===n.length;for(var t in n)if(h.has(n,t))return!1;return!0},h.isElement=function(n){return!(!n||1!==n.nodeType)},h.isArray=f||function(n){return"[object Array]"===l.call(n)},h.isObject=function(n){var t=typeof n;return"function"===t||"object"===t&&!!n},h.each(["Arguments","Function","String","Number","Date","RegExp"],function(n){h["is"+n]=function(t){return l.call(t)==="[object "+n+"]"}}),h.isArguments(arguments)||(h.isArguments=function(n){return h.has(n,"callee")}),"function"!=typeof/./&&(h.isFunction=function(n){return"function"==typeof n||!1}),h.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},h.isNaN=function(n){return h.isNumber(n)&&n!==+n},h.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"===l.call(n)},h.isNull=function(n){return null===n},h.isUndefined=function(n){return n===void 0},h.has=function(n,t){return null!=n&&c.call(n,t)},h.noConflict=function(){return n._=t,this},h.identity=function(n){return n},h.constant=function(n){return function(){return n}},h.noop=function(){},h.property=function(n){return function(t){return t[n]}},h.matches=function(n){var t=h.pairs(n),r=t.length;return function(n){if(null==n)return!r;n=new Object(n);for(var e=0;r>e;e++){var u=t[e],i=u[0];if(u[1]!==n[i]||!(i in n))return!1}return!0}},h.times=function(n,t,r){var e=Array(Math.max(0,n));t=g(t,r,1);for(var u=0;n>u;u++)e[u]=t(u);return e},h.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},h.now=Date.now||function(){return(new Date).getTime()};var _={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},w=h.invert(_),j=function(n){var t=function(t){return n[t]},r="(?:"+h.keys(n).join("|")+")",e=RegExp(r),u=RegExp(r,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,t):n}};h.escape=j(_),h.unescape=j(w),h.result=function(n,t){if(null==n)return void 0;var r=n[t];return h.isFunction(r)?n[t]():r};var x=0;h.uniqueId=function(n){var t=++x+"";return n?n+t:t},h.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var A=/(.)^/,k={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},O=/\\|'|\r|\n|\u2028|\u2029/g,F=function(n){return"\\"+k[n]};h.template=function(n,t,r){!t&&r&&(t=r),t=h.defaults({},t,h.templateSettings);var e=RegExp([(t.escape||A).source,(t.interpolate||A).source,(t.evaluate||A).source].join("|")+"|$","g"),u=0,i="__p+='";n.replace(e,function(t,r,e,a,o){return i+=n.slice(u,o).replace(O,F),u=o+t.length,r?i+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":e?i+="'+\n((__t=("+e+"))==null?'':__t)+\n'":a&&(i+="';\n"+a+"\n__p+='"),t}),i+="';\n",t.variable||(i="with(obj||{}){\n"+i+"}\n"),i="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{var a=new Function(t.variable||"obj","_",i)}catch(o){throw o.source=i,o}var l=function(n){return a.call(this,n,h)},c=t.variable||"obj";return l.source="function("+c+"){\n"+i+"}",l},h.chain=function(n){var t=h(n);return t._chain=!0,t};var E=function(n){return this._chain?h(n).chain():n};h.mixin=function(n){h.each(h.functions(n),function(t){var r=h[t]=n[t];h.prototype[t]=function(){var n=[this._wrapped];return i.apply(n,arguments),E.call(this,r.apply(h,n))}})},h.mixin(h),h.each(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=r[n];h.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==n&&"splice"!==n||0!==r.length||delete r[0],E.call(this,r)}}),h.each(["concat","join","slice"],function(n){var t=r[n];h.prototype[n]=function(){return E.call(this,t.apply(this._wrapped,arguments))}}),h.prototype.value=function(){return this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return h})}).call(this); +//# sourceMappingURL=underscore-min.map \ No newline at end of file diff --git a/reference/ucp/3.1/api/lib/underscore-min.map b/reference/ucp/3.1/api/lib/underscore-min.map new file mode 100644 index 0000000000..b31e43590a --- /dev/null +++ b/reference/ucp/3.1/api/lib/underscore-min.map @@ -0,0 +1 @@ +{"version":3,"file":"underscore-min.js","sources":["underscore.js"],"names":["createReduce","dir","iterator","obj","iteratee","memo","keys","index","length","currentKey","context","optimizeCb","isArrayLike","_","arguments","createIndexFinder","array","predicate","cb","collectNonEnumProps","nonEnumIdx","nonEnumerableProps","constructor","proto","isFunction","prototype","ObjProto","prop","has","contains","push","root","this","previousUnderscore","ArrayProto","Array","Object","FuncProto","Function","slice","toString","hasOwnProperty","nativeIsArray","isArray","nativeKeys","nativeBind","bind","nativeCreate","create","Ctor","_wrapped","exports","module","VERSION","func","argCount","value","call","other","collection","accumulator","apply","identity","isObject","matcher","property","Infinity","createAssigner","keysFunc","undefinedOnly","source","l","i","key","baseCreate","result","MAX_ARRAY_INDEX","Math","pow","each","forEach","map","collect","results","reduce","foldl","inject","reduceRight","foldr","find","detect","findIndex","findKey","filter","select","list","reject","negate","every","all","some","any","includes","include","target","fromIndex","values","indexOf","invoke","method","args","isFunc","pluck","where","attrs","findWhere","max","computed","lastComputed","min","shuffle","rand","set","shuffled","random","sample","n","guard","sortBy","criteria","sort","left","right","a","b","group","behavior","groupBy","indexBy","countBy","toArray","size","partition","pass","fail","first","head","take","initial","last","rest","tail","drop","compact","flatten","input","shallow","strict","startIndex","output","idx","isArguments","j","len","without","difference","uniq","unique","isSorted","isBoolean","seen","union","intersection","argsLength","item","zip","unzip","object","sortedIndex","isNaN","lastIndexOf","from","findLastIndex","low","high","mid","floor","range","start","stop","step","ceil","executeBound","sourceFunc","boundFunc","callingContext","self","TypeError","bound","concat","partial","boundArgs","position","bindAll","Error","memoize","hasher","cache","address","delay","wait","setTimeout","defer","throttle","options","timeout","previous","later","leading","now","remaining","clearTimeout","trailing","debounce","immediate","timestamp","callNow","wrap","wrapper","compose","after","times","before","once","hasEnumBug","propertyIsEnumerable","allKeys","mapObject","pairs","invert","functions","methods","names","extend","extendOwn","assign","pick","oiteratee","omit","String","defaults","clone","tap","interceptor","isMatch","eq","aStack","bStack","className","areArrays","aCtor","bCtor","pop","isEqual","isEmpty","isString","isElement","nodeType","type","name","Int8Array","isFinite","parseFloat","isNumber","isNull","isUndefined","noConflict","constant","noop","propertyOf","matches","accum","Date","getTime","escapeMap","&","<",">","\"","'","`","unescapeMap","createEscaper","escaper","match","join","testRegexp","RegExp","replaceRegexp","string","test","replace","escape","unescape","fallback","idCounter","uniqueId","prefix","id","templateSettings","evaluate","interpolate","noMatch","escapes","\\","\r","\n","
","
","escapeChar","template","text","settings","oldSettings","offset","variable","render","e","data","argument","chain","instance","_chain","mixin","valueOf","toJSON","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/reference/ucp/3.1/api/main.js b/reference/ucp/3.1/api/main.js new file mode 100644 index 0000000000..b08662cf45 --- /dev/null +++ b/reference/ucp/3.1/api/main.js @@ -0,0 +1,62 @@ +$(function () { + var url = window.location.search.match(/url=([^&]+)/); + if (url && url.length > 1) { + url = decodeURIComponent(url[1]); + } else { + url = "../docs.json"; + } + + // Pre load translate... + if(window.SwaggerTranslator) { + window.SwaggerTranslator.translate(); + } + window.swaggerUi = new SwaggerUi({ + spec: + {"swagger":"2.0","info":{"description":"The Universal Control Plane API is a REST API, available using HTTPS, that enables programmatic access to swarm resources that are managed by UCP. UCP exposes the full Docker Engine API, so you can extend your existing code with UCP features. The API is secured with role-based access control so that only authorized users can make changes and deploy applications to your Docker swarm.\n\nThe UCP API is accessible in the same IP addresses and domain names that you use to access the web UI. It's the same API that the UCP web UI uses, so everything you can do on the UCP web UI from your browser, you can also do programmatically.\n\nThe system manages swarm resources by using collections, which you access through the `/collection` endpoint. For example, `GET /defaultCollection/\u003cuserID\u003e` retrieves the default collection for a user. [Learn more about resource collections](https://www.docker.com/ddc-33).\n\n- The `/roles` endpoint lets you enumerate and create custom permissions for accessing collections.\n\n- The `/accounts` endpoint enables managing users, teams, and organizations.\n\n- The `/configs` endpoint gives you access to the swarm's configuration.","title":"UCP API Documentation","version":"1.30"},"paths":{"/_ping":{"get":{"description":"Check the health of a UCP manager.\nUse the `_ping` endpoint to check the health of a single UCP manager node. The UCP manager validates that all of its internal components are working, and it returns either 200, if all components are healthy, or 500, if any aren't healthy.\n\nIf you’re accessing the `_ping` endpoint through a load balancer, you have no way of knowing which UCP manager node isn't healthy, because any manager node may be serving your request. Make sure you’re connecting directly to the URL of a manager node, and not a load balancer.","tags":["UCP"],"summary":"Check the health of a UCP manager.","operationId":"Ping","responses":{"200":{"description":"Success, manager healthy"},"500":{"description":"Failure, manager unhealthy"},"default":{"description":"Success, manager healthy"}}}},"/accounts/":{"get":{"description":"List user and organization accounts.\nLists information about user and organization accounts. Supports sorting and\nfiltering.\nRequires authentication and authorization as any user.","consumes":["application/json"],"produces":["application/json"],"tags":["Accounts"],"summary":"List user and organization accounts.","operationId":"ListAccounts","parameters":[{"type":"string","default":"all","description":"Filter accounts by type or attribute - either \"users\", \"orgs\", \"admins\", \"non-admins\", \"active-users\", \"inactive-users\", or \"all\" (default). These filters cannot be combined in any way.","name":"filter","in":"query"},{"type":"string","default":"","description":"Specifies the ordering of the results - either \"name\" (default) or \"fullName\". Prefix with \"+\" (default) or \"-\" to specify ascending or descending order, respectively.","name":"order","in":"query"},{"type":"string","default":"","description":"Only return accounts with an order marker starting from this value.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of accounts per page of results.","name":"limit","in":"query"},{"type":"string","default":"","description":"Additionally filter results to those which have either a name or full name which contains this case insensitive string","name":"contains","in":"query"}],"responses":{"200":{"description":"Success, page of accounts listed.","schema":{"$ref":"#/definitions/responses.Accounts"}},"default":{"description":"Success, page of accounts listed.","schema":{"$ref":"#/definitions/responses.Accounts"}}}},"post":{"description":"Create a user or organization account.\nTo search for and import a user from an LDAP directory, the system must be\nconfigured with LDAP integration.\nRequires authentication and authorization as an admin user.","consumes":["application/json"],"produces":["application/json"],"tags":["Accounts"],"summary":"Create a user or organization account.","operationId":"CreateAccount","parameters":[{"type":"forms.CreateAccount","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateAccount"}}],"responses":{"201":{"description":"Success, account created.","schema":{"$ref":"#/definitions/responses.Account"}}}},"patch":{"description":"Update information about user accounts or organizations, in bulk.\nRequires authentication and authorization as an admin user.","consumes":["application/json"],"produces":["application/json"],"tags":["Accounts"],"summary":"Update information about user accounts or organizations, in bulk.","operationId":"BulkAccountOps","parameters":[{"type":"forms.BulkOperations","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.BulkOperations"}}],"responses":{"200":{"description":"Success, bulk operations performed. Any errors encountered for an operation are returned.","schema":{"$ref":"#/definitions/responses.BulkResults"}},"default":{"description":"Success, bulk operations performed. Any errors encountered for an operation are returned.","schema":{"$ref":"#/definitions/responses.BulkResults"}}}}},"/accounts/{accountNameOrID}":{"get":{"description":"Details for a user or organization account.\nRequires authentication and authorization as any user.","consumes":["application/json"],"produces":["application/json"],"tags":["Accounts"],"summary":"Details for a user or organization account.","operationId":"GetAccount","parameters":[{"type":"string","default":"","description":"Name or id of account to fetch","name":"accountNameOrID","in":"path","required":true}],"responses":{"200":{"description":"Success, account returned.","schema":{"$ref":"#/definitions/responses.Account"}},"default":{"description":"Success, account returned.","schema":{"$ref":"#/definitions/responses.Account"}}}},"delete":{"description":"Delete a user or organization account.\nIf the system is configured to import users from an LDAP directory, the user\nmay be created again if they still match the current LDAP search config.\nRequires authentication and authorization as an admin user.","consumes":["application/json"],"produces":["application/json"],"tags":["Accounts"],"summary":"Delete a user or organization account.","operationId":"DeleteAccount","parameters":[{"type":"string","default":"","description":"Name or id of account to delete","name":"accountNameOrID","in":"path","required":true}],"responses":{"204":{"description":"Success, account deleted."}}},"patch":{"description":"Update details for a user or organization account.\nRequires authentication and authorization as an admin user, the target user (if\na user), or an admin member of the target organization (if an organization).","consumes":["application/json"],"produces":["application/json"],"tags":["Accounts"],"summary":"Update details for a user or organization account.","operationId":"UpdateAccount","parameters":[{"type":"string","default":"","description":"Name or id of account to update","name":"accountNameOrID","in":"path","required":true},{"type":"forms.UpdateAccount","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateAccount"}}],"responses":{"200":{"description":"Success, account updated.","schema":{"$ref":"#/definitions/responses.Account"}},"default":{"description":"Success, account updated.","schema":{"$ref":"#/definitions/responses.Account"}}}}},"/accounts/{accountNameOrID}/publicKeys":{"get":{"description":"List accountPublicKeys in an account.\nLists accountPublicKeys in ascending order by key ID.\nRequires authentication and authorization as any user.","consumes":["application/json"],"produces":["application/json"],"tags":["Account Public Keys","Accounts"],"summary":"List accountPublicKeys in an account.","operationId":"ListAccountPublicKeys","parameters":[{"type":"string","default":"","description":"Name or id of the account whose accountPublicKeys will be listed","name":"accountNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Only return accountPublicKeys with a key ID greater than or equal to this name.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of accountPublicKeys per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, page of accountPublicKeys listed.","schema":{"$ref":"#/definitions/responses.AccountPublicKeys"}},"default":{"description":"Success, page of accountPublicKeys listed.","schema":{"$ref":"#/definitions/responses.AccountPublicKeys"}}}},"post":{"description":"Create a public key for an account.\nRequires authentication and authorization as an admin user, the target user (if\na user), or an admin member of the target organization (if an organization).","consumes":["application/json"],"produces":["application/json"],"tags":["Account Public Keys","Accounts"],"summary":"Create a public key for an account.","operationId":"CreateAccountPublicKey","parameters":[{"type":"string","default":"","description":"Name or id of account to fetch","name":"accountNameOrID","in":"path","required":true},{"type":"forms.CreateAccountPublicKey","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateAccountPublicKey"}}],"responses":{"201":{"description":"Success, account public key created.","schema":{"$ref":"#/definitions/responses.AccountPublicKey"}}}}},"/accounts/{accountNameOrID}/publicKeys/{keyID}":{"delete":{"description":"Remove an account public key.\nRequires authentication and authorization as an admin user, the target user (if\na user), or an admin member of the target organization (if an organization).","consumes":["application/json"],"produces":["application/json"],"tags":["Account Public Keys","Accounts"],"summary":"Remove an account public key.","operationId":"DeleteAccountPublicKey","parameters":[{"type":"string","default":"","description":"Name or id of the account","name":"accountNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Public key id of the account","name":"keyID","in":"path","required":true}],"responses":{"204":{"description":"Success, account public key removed."}}},"patch":{"description":"Update details for an account public key.\nRequires authentication and authorization as an admin user, the target user (if\na user), or an admin member of the target organization (if an organization).","consumes":["application/json"],"produces":["application/json"],"tags":["Account Public Keys","Accounts"],"summary":"Update details for an account public key.","operationId":"UpdateAccountPublicKey","parameters":[{"type":"string","default":"","description":"Name or id of the account","name":"accountNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Public key id of the account","name":"keyID","in":"path","required":true},{"type":"forms.UpdateAccountPublicKey","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateAccountPublicKey"}}],"responses":{"200":{"description":"Success, account public key updated.","schema":{"$ref":"#/definitions/responses.AccountPublicKey"}},"default":{"description":"Success, account public key updated.","schema":{"$ref":"#/definitions/responses.AccountPublicKey"}}}}},"/accounts/{orgNameOrID}/adminMemberSyncConfig":{"get":{"description":"Get options for syncing admin members of an organization.\nRequires authentication and authorization as an admin user or an admin member\nof the organization.","consumes":["application/json"],"produces":["application/json"],"tags":["Organization Membership","Organizations","Accounts"],"summary":"Get options for syncing admin members of an organization.","operationId":"GetOrganizationAdminSyncConfig","parameters":[{"type":"string","default":"","description":"Name or id of organization whose LDAP sync options to be retrieved","name":"orgNameOrID","in":"path","required":true}],"responses":{"200":{"description":"Success, LDAP sync options retrieved.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}},"default":{"description":"Success, LDAP sync options retrieved.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}}}},"put":{"description":"Set options for syncing admin members of an organization.\nEnabling sync of organization admin members will disable the ability to\ndirectly manage organization membership for any users imported from an LDAP\ndirectory. Their organization membership is instead set by being synced as an\nadmin member of the organization or by being a member of any team within the\norganization.\nRequires authentication and authorization as an admin user or an admin member\nof the organization.","consumes":["application/json"],"produces":["application/json"],"tags":["Organization Membership","Organizations","Accounts"],"summary":"Set options for syncing admin members of an organization.","operationId":"SetOrganizationAdminSyncConfig","parameters":[{"type":"string","default":"","description":"Name or id of organization whose LDAP sync options to set","name":"orgNameOrID","in":"path","required":true},{"type":"forms.MemberSyncOpts","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.MemberSyncOpts"}}],"responses":{"200":{"description":"Success, LDAP sync options set.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}},"default":{"description":"Success, LDAP sync options set.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}}}}},"/accounts/{orgNameOrID}/members":{"get":{"description":"List members of an organization.\nLists memberships in ascending order by user ID.\nRequires authentication and authorization as an admin user or a member of the\norganization.","consumes":["application/json"],"produces":["application/json"],"tags":["Organization Membership","Organizations","Accounts"],"summary":"List members of an organization.","operationId":"ListOrganizationMembers","parameters":[{"type":"string","default":"","description":"Name or id of organization whose members will be listed","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"all","description":"Filter members by type - either 'admins', 'non-admins', or 'all' (default).","name":"filter","in":"query"},{"type":"string","default":"","description":"Only return members with a user ID greater than or equal to this ID.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of members per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, page of organization members listed.","schema":{"$ref":"#/definitions/responses.Members"}},"default":{"description":"Success, page of organization members listed.","schema":{"$ref":"#/definitions/responses.Members"}}}}},"/accounts/{orgNameOrID}/members/{memberNameOrID}":{"get":{"description":"Details of a user's membership in an organization.\nRequires authentication and authorization as an admin user, a member of the\norganization, or the target user.","consumes":["application/json"],"produces":["application/json"],"tags":["Organization Membership","Organizations","Accounts"],"summary":"Details of a user's membership in an organization.","operationId":"GetOrganizationMembership","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the membership will be retrieved","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user whose membership will be retrieved","name":"memberNameOrID","in":"path","required":true}],"responses":{"200":{"description":"Success, membership returned.","schema":{"$ref":"#/definitions/responses.Member"}},"default":{"description":"Success, membership returned.","schema":{"$ref":"#/definitions/responses.Member"}}}},"put":{"description":"Add a user to an organization.\nIf organization admin members are configured to be synced with LDAP, users\nwhich are imported from LDAP cannot be manually added as members of the\norganization and must be either synced as an organization admin member or be\nadded as a member of team within the organization.\nRequires authentication and authorization as an admin user or an admin member\nof the organization","consumes":["application/json"],"produces":["application/json"],"tags":["Organization Membership","Organizations","Accounts"],"summary":"Add a user to an organization.","operationId":"AddOrganizationMember","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the membership will be added","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user which will be added as a member","name":"memberNameOrID","in":"path","required":true},{"type":"forms.SetMembership","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.SetMembership"}}],"responses":{"200":{"description":"Success, membership set.","schema":{"$ref":"#/definitions/responses.Member"}},"default":{"description":"Success, membership set.","schema":{"$ref":"#/definitions/responses.Member"}}}},"delete":{"description":"Remove a user from an organization.\nRemoving a member of the organization will also remove them from any teams in\nthe organization. If organization admin members are configured to be synced\nwith LDAP, users which are imported from LDAP cannot be manually removed as\nmembers of the organization and must be either synced as an organization admin\nmember or removed as a member of all teams within the organization.\nRequires authentication and authorization as an admin user or an admin member\nof the organization.","consumes":["application/json"],"produces":["application/json"],"tags":["Organization Membership","Organizations","Accounts"],"summary":"Remove a user from an organization.","operationId":"DeleteOrganizationMember","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the membership will be deleted","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user whose membership will be deleted","name":"memberNameOrID","in":"path","required":true}],"responses":{"204":{"description":"Success, membership removed."}}}},"/accounts/{orgNameOrID}/members/{memberNameOrID}/teams":{"get":{"description":"List a user's team membership in an organization.\nLists team memberships in ascending order by team ID.\nRequires authentication and authorization as an admin user or a member of the\norganization.","consumes":["application/json"],"produces":["application/json"],"tags":["Organization Membership","Organizations","Accounts"],"summary":"List a user's team membership in an organization.","operationId":"ListOrganizationMemberTeams","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the member's team memberships will be listed","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user whose memberships will be listed","name":"memberNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Only return team memberships with a team ID greater than or equal to this ID.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of team memberships per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, page of member's teams listed.","schema":{"$ref":"#/definitions/responses.MemberTeams"}},"default":{"description":"Success, page of member's teams listed.","schema":{"$ref":"#/definitions/responses.MemberTeams"}}}}},"/accounts/{orgNameOrID}/teams":{"get":{"description":"List teams in an organization.\nLists teams in ascending order by name.\nRequires authentication and authorization as an admin user or a member of the\norganization.","consumes":["application/json"],"produces":["application/json"],"tags":["Teams","Organizations","Accounts"],"summary":"List teams in an organization.","operationId":"ListTeams","parameters":[{"type":"string","default":"","description":"Name or id of organization whose teams will be listed","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Only return teams with a name greater than or equal to this name.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of teams per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, page of teams listed.","schema":{"$ref":"#/definitions/responses.Teams"}},"default":{"description":"Success, page of teams listed.","schema":{"$ref":"#/definitions/responses.Teams"}}}},"post":{"description":"Create a team.\nRequires authentication and authorization as an admin user or an admin member\nof the organization.","consumes":["application/json"],"produces":["application/json"],"tags":["Teams","Organizations","Accounts"],"summary":"Create a team.","operationId":"CreateTeam","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team will be created","name":"orgNameOrID","in":"path","required":true},{"type":"forms.CreateTeam","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateTeam"}}],"responses":{"201":{"description":"Success, team created.","schema":{"$ref":"#/definitions/responses.Team"}}}}},"/accounts/{orgNameOrID}/teams/{teamNameOrID}":{"get":{"description":"Details for a team.\nRequires authentication and authorization as an admin user or a member of the\norganization.","consumes":["application/json"],"produces":["application/json"],"tags":["Teams","Organizations","Accounts"],"summary":"Details for a team.","operationId":"GetTeam","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team will be retrieved","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of team which will be retrieved","name":"teamNameOrID","in":"path","required":true}],"responses":{"200":{"description":"Success, team returned.","schema":{"$ref":"#/definitions/responses.Team"}},"default":{"description":"Success, team returned.","schema":{"$ref":"#/definitions/responses.Team"}}}},"delete":{"description":"Delete a team.\nRequires authentication and authorization as an admin user or an admin member\nof the organization.","consumes":["application/json"],"produces":["application/json"],"tags":["Teams","Organizations","Accounts"],"summary":"Delete a team.","operationId":"DeleteTeam","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team will be deleted","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of team which will be deleted","name":"teamNameOrID","in":"path","required":true}],"responses":{"204":{"description":"Success, team deleted."}}},"patch":{"description":"Update details for a team.\nRequires authentication and authorization as an admin user, an admin member of\nthe organization, or an admin member of the team.","consumes":["application/json"],"produces":["application/json"],"tags":["Teams","Organizations","Accounts"],"summary":"Update details for a team.","operationId":"UpdateTeam","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team will be updated","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of team which will be updated","name":"teamNameOrID","in":"path","required":true},{"type":"forms.UpdateTeam","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateTeam"}}],"responses":{"200":{"description":"Success, team updated.","schema":{"$ref":"#/definitions/responses.Team"}},"default":{"description":"Success, team updated.","schema":{"$ref":"#/definitions/responses.Team"}}}}},"/accounts/{orgNameOrID}/teams/{teamNameOrID}/memberSyncConfig":{"get":{"description":"Get options for syncing members of a team.\nRequires authentication and authorization as an admin user, an admin member of\nthe organization, or an admin member of the team.","consumes":["application/json"],"produces":["application/json"],"tags":["Team Membership","Teams","Organizations","Accounts"],"summary":"Get options for syncing members of a team.","operationId":"GetTeamMemberSyncConfig","parameters":[{"type":"string","default":"","description":"Name or id of organization to which the team belongs","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of team whose LDAP sync config will be retrieved","name":"teamNameOrID","in":"path","required":true}],"responses":{"200":{"description":"Success, LDAP sync options retrieved.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}},"default":{"description":"Success, LDAP sync options retrieved.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}}}},"put":{"description":"Set options for syncing members of a team.\nEnabling sync of team members will disable the ability to manually manage team\nmembership for any users imported from LDAP. Their team membership is instead\nmanaged by the LDAP sync.\nRequires authentication and authorization as an admin user, an admin member of\nthe organization, or an admin member of the team.","consumes":["application/json"],"produces":["application/json"],"tags":["Team Membership","Teams","Organizations","Accounts"],"summary":"Set options for syncing members of a team.","operationId":"SetTeamMemberSyncConfig","parameters":[{"type":"string","default":"","description":"Name or id of organization to which the team belongs","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of team whose LDAP sync config will be set","name":"teamNameOrID","in":"path","required":true},{"type":"forms.MemberSyncOpts","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.MemberSyncOpts"}}],"responses":{"200":{"description":"Success, LDAP sync options set.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}},"default":{"description":"Success, LDAP sync options set.","schema":{"$ref":"#/definitions/responses.MemberSyncOpts"}}}}},"/accounts/{orgNameOrID}/teams/{teamNameOrID}/members":{"get":{"description":"List members of a team.\nLists memberships in ascending order by user ID.\nRequires authentication and authorization as an admin user or a member of the\norganization.","consumes":["application/json"],"produces":["application/json"],"tags":["Team Membership","Teams","Organizations","Accounts"],"summary":"List members of a team.","operationId":"ListTeamMembers","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team's members will be listed'","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of team whose members will be listed","name":"teamNameOrID","in":"path","required":true},{"type":"string","default":"all","description":"Filter members by type - either 'admins', 'non-admins', or 'all' (default).","name":"filter","in":"query"},{"type":"string","default":"","description":"Only return members with a user ID greater than or equal to this ID.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of members per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, page of team members listed.","schema":{"$ref":"#/definitions/responses.Members"}},"default":{"description":"Success, page of team members listed.","schema":{"$ref":"#/definitions/responses.Members"}}}}},"/accounts/{orgNameOrID}/teams/{teamNameOrID}/members/{memberNameOrID}":{"get":{"description":"Details of a user's membership in a team.\nRequires authentication and authorization as an admin user or a member of the\norganization.","consumes":["application/json"],"produces":["application/json"],"tags":["Team Membership","Teams","Organizations","Accounts"],"summary":"Details of a user's membership in a team.","operationId":"GetTeamMembership","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team membership will be retrieved","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of the team in which the membership will be retrieved","name":"teamNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user whose team membership will be retrieved","name":"memberNameOrID","in":"path","required":true}],"responses":{"200":{"description":"Success, team membership returned.","schema":{"$ref":"#/definitions/responses.Member"}},"default":{"description":"Success, team membership returned.","schema":{"$ref":"#/definitions/responses.Member"}}}},"put":{"description":"Add a user to a team.\nThe user will be added as a member of the organization if they are not already.\nIf team members are configured to be synced with LDAP, users which are imported\nfrom LDAP cannot be manually added as members of the team and must be synced\nwith LDAP.\nRequires authentication and authorization as an admin user, an admin member of\nthe organization, or an admin member of the team.","consumes":["application/json"],"produces":["application/json"],"tags":["Team Membership","Teams","Organizations","Accounts"],"summary":"Add a user to a team.","operationId":"AddTeamMember","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team membership will be added","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of the team in which the membership will be added","name":"teamNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user which will be added as a member","name":"memberNameOrID","in":"path","required":true},{"type":"forms.SetMembership","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.SetMembership"}}],"responses":{"200":{"description":"Success, team membership set.","schema":{"$ref":"#/definitions/responses.Member"}},"default":{"description":"Success, team membership set.","schema":{"$ref":"#/definitions/responses.Member"}}}},"delete":{"description":"Remove a member from a team.\nThe user will remain a member of the organization. If team members are\nconfigured to be synced with LDAP, users which are imported from LDAP cannot be\nmanually removed as members of the team and must be synced with LDAP.\nRequires authentication and authorization as an admin user, an admin member of\nthe organization, or an admin member of the team.","consumes":["application/json"],"produces":["application/json"],"tags":["Team Membership","Teams","Organizations","Accounts"],"summary":"Remove a member from a team.","operationId":"DeleteTeamMember","parameters":[{"type":"string","default":"","description":"Name or id of organization in which the team membership will be deleted","name":"orgNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of the team in which the membership will be deleted","name":"teamNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Name or id of user whose team membership will be deleted","name":"memberNameOrID","in":"path","required":true}],"responses":{"204":{"description":"Success, team membership deleted."}}}},"/accounts/{userNameOrID}/changePassword":{"post":{"description":"Change a user's password.\nRequires authentication and authorization as an admin user or the target user.","consumes":["application/json"],"produces":["application/json"],"tags":["User Accounts","Accounts"],"summary":"Change a user's password.","operationId":"ChangePassword","parameters":[{"type":"string","default":"","description":"Username or id of user whose password is to be changed","name":"userNameOrID","in":"path","required":true},{"type":"forms.ChangePassword","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.ChangePassword"}}],"responses":{"200":{"description":"Success, password changed.","schema":{"$ref":"#/definitions/responses.Account"}},"default":{"description":"Success, password changed.","schema":{"$ref":"#/definitions/responses.Account"}}}}},"/accounts/{userNameOrID}/organizations":{"get":{"description":"List a user's organization memberships.\nLists organization memberships in ascending order by organization ID.\nRequires authentication and authorization as an admin user or the target user.","consumes":["application/json"],"produces":["application/json"],"tags":["User Accounts","Accounts"],"summary":"List a user's organization memberships.","operationId":"ListUserOrganizations","parameters":[{"type":"string","default":"","description":"Name or id of user to whose organizations will be listed","name":"userNameOrID","in":"path","required":true},{"type":"string","default":"","description":"Only return memberships with an org ID greater than or equal to this ID.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of organizations per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, page of user's organizations listed.","schema":{"$ref":"#/definitions/responses.MemberOrgs"}},"default":{"description":"Success, page of user's organizations listed.","schema":{"$ref":"#/definitions/responses.MemberOrgs"}}}}},"/api/composehelper":{"get":{"tags":["UCP"],"summary":"/api/composehelper","operationId":"restfulNoop","responses":{}}},"/auth":{"post":{"description":"Validate credentials for a registry and, if available, get an identity token for accessing the registry without password.","consumes":["application/json"],"produces":["application/json"],"tags":["System"],"summary":"Check auth configuration","operationId":"SystemAuth","parameters":[{"description":"Authentication to check","name":"authConfig","in":"body","schema":{"$ref":"#/definitions/AuthConfig"}}],"responses":{"200":{"description":"An identity token was generated successfully.","schema":{"type":"object","required":["Status"],"properties":{"IdentityToken":{"description":"An opaque token used to authenticate a user after a successful login","type":"string","x-nullable":false},"Status":{"description":"The status of the authentication","type":"string","x-nullable":false}}},"examples":{"application/json":{"IdentityToken":"9cbaf023786cd7...","Status":"Login Succeeded"}}},"204":{"description":"No error"},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/build":{"post":{"description":"Build an image from a tar archive with a `Dockerfile` in it.\n\nThe `Dockerfile` specifies how the image is built from the tar archive. It is typically in the archive's root, but can be at a different path or have a different name by specifying the `dockerfile` parameter. [See the `Dockerfile` reference for more information](https://docs.docker.com/engine/reference/builder/).\n\nThe Docker daemon performs a preliminary validation of the `Dockerfile` before starting the build, and returns an error if the syntax is incorrect. After that, each instruction is run one-by-one until the ID of the new image is output.\n\nThe build is canceled if the client drops the connection by quitting or being killed.\n","consumes":["application/octet-stream"],"produces":["application/json"],"tags":["Image"],"summary":"Build an image","operationId":"ImageBuild","parameters":[{"description":"A tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz.","name":"inputStream","in":"body","schema":{"type":"string","format":"binary"}},{"type":"string","default":"Dockerfile","description":"Path within the build context to the `Dockerfile`. This is ignored if `remote` is specified and points to an external `Dockerfile`.","name":"dockerfile","in":"query"},{"type":"string","description":"A name and optional tag to apply to the image in the `name:tag` format. If you omit the tag the default `latest` value is assumed. You can provide several `t` parameters.","name":"t","in":"query"},{"type":"string","description":"Extra hosts to add to /etc/hosts","name":"extrahosts","in":"query"},{"type":"string","description":"A Git repository URI or HTTP/HTTPS context URI. If the URI points to a single text file, the file’s contents are placed into a file called `Dockerfile` and the image is built from that file. If the URI points to a tarball, the file is downloaded by the daemon and the contents therein used as the context for the build. If the URI points to a tarball and the `dockerfile` parameter is also specified, there must be a file with the corresponding path inside the tarball.","name":"remote","in":"query"},{"type":"boolean","default":false,"description":"Suppress verbose build output.","name":"q","in":"query"},{"type":"boolean","default":false,"description":"Do not use the cache when building the image.","name":"nocache","in":"query"},{"type":"string","description":"JSON array of images used for build cache resolution.","name":"cachefrom","in":"query"},{"type":"string","description":"Attempt to pull the image even if an older image exists locally.","name":"pull","in":"query"},{"type":"boolean","default":true,"description":"Remove intermediate containers after a successful build.","name":"rm","in":"query"},{"type":"boolean","default":false,"description":"Always remove intermediate containers, even upon failure.","name":"forcerm","in":"query"},{"type":"integer","description":"Set memory limit for build.","name":"memory","in":"query"},{"type":"integer","description":"Total memory (memory + swap). Set as `-1` to disable swap.","name":"memswap","in":"query"},{"type":"integer","description":"CPU shares (relative weight).","name":"cpushares","in":"query"},{"type":"string","description":"CPUs in which to allow execution (e.g., `0-3`, `0,1`).","name":"cpusetcpus","in":"query"},{"type":"integer","description":"The length of a CPU period in microseconds.","name":"cpuperiod","in":"query"},{"type":"integer","description":"Microseconds of CPU time that the container can get in a CPU period.","name":"cpuquota","in":"query"},{"type":"integer","description":"JSON map of string pairs for build-time variables. Users pass these values at build-time. Docker uses the buildargs as the environment context for commands run via the `Dockerfile` RUN instruction, or for variable expansion in other `Dockerfile` instructions. This is not meant for passing secret values. [Read more about the buildargs instruction.](https://docs.docker.com/engine/reference/builder/#arg)","name":"buildargs","in":"query"},{"type":"integer","description":"Size of `/dev/shm` in bytes. The size must be greater than 0. If omitted the system uses 64MB.","name":"shmsize","in":"query"},{"type":"boolean","description":"Squash the resulting images layers into a single layer. *(Experimental release only.)*","name":"squash","in":"query"},{"type":"string","description":"Arbitrary key/value labels to set on the image, as a JSON map of string pairs.","name":"labels","in":"query"},{"type":"string","description":"Sets the networking mode for the run commands during build. Supported standard values are: `bridge`, `host`, `none`, and `container:\u003cname|id\u003e`. Any other value is taken as a custom network's name to which this container should connect to.","name":"networkmode","in":"query"},{"enum":["application/x-tar"],"type":"string","default":"application/x-tar","name":"Content-type","in":"header"},{"type":"string","description":"This is a base64-encoded JSON object with auth configurations for multiple registries that a build may refer to.\n\nThe key is a registry URL, and the value is an auth configuration object, [as described in the authentication section](#section/Authentication). For example:\n\n```\n{\n \"docker.example.com\": {\n \"username\": \"janedoe\",\n \"password\": \"hunter2\"\n },\n \"https://index.docker.io/v1/\": {\n \"username\": \"mobydock\",\n \"password\": \"conta1n3rize14\"\n }\n}\n```\n\nOnly the registry domain name (and port if not the default 443) are required. However, for legacy reasons, the Docker Hub registry must be specified with both a `https://` prefix and a `/v1/` suffix even though Docker will prefer to use the v2 registry API.\n","name":"X-Registry-Config","in":"header"}],"responses":{"200":{"description":"no error"},"400":{"description":"Bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/collectionByPath":{"get":{"description":"Retrieve a single collection by path.","produces":["application/json"],"tags":["UCP"],"summary":"Retrieve a single collection by path.","operationId":"Get Collection by path","parameters":[{"type":"string","default":"","description":"Path of the collection to get.","name":"path","in":"query"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/authz.Collection"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/authz.Collection"}}}}},"/collectionGrants":{"get":{"description":"Lists all collection grants","produces":["application/json"],"tags":["UCP"],"summary":"Lists all collection grants","operationId":"ListGrants","parameters":[{"type":"string","default":"","description":"Filter grants by subjectID. Only a single value may be specified for this query parameter. A subjectID may be an account ID for a user or organization, or a team ID.","name":"subjectID","in":"query"},{"type":"string","default":"","description":"Filter grants by collection ID. Only a single value may be specified for this query parameter.","name":"objectID","in":"query"},{"type":"string","default":"","description":"Filter grants by roleID. Only a single value may be specified for this query parameter.","name":"roleID","in":"query"},{"type":"string","default":"all","description":"Filter grants by a subject type - either \"anonymous\", \"authenticated\", \"org\", \"team\", \"user\", or \"all\" (default). These filters cannot be combined in any way.","name":"subjectType","in":"query"},{"type":"boolean","default":"false","description":"Expands the subject into a list of subjects that it belongs to.","name":"expandUser","in":"query"},{"type":"boolean","default":"false","description":"Include the collection paths in the response.","name":"showPaths","in":"query"},{"type":"string","default":"","description":"Only return grants with an order marker starting from this value.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of grants per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/responses.Grants"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/responses.Grants"}}}}},"/collectionGrants/{subjectID}/{objectID}/{roleID}":{"put":{"description":"Creates a collection grant","tags":["UCP"],"summary":"Creates a collection grant","operationId":"CreateGrant","parameters":[{"type":"string","default":"","description":"SubjectID of grant to create","name":"subjectID","in":"path","required":true},{"type":"string","default":"","description":"ObjectID of grant to create","name":"objectID","in":"path","required":true},{"type":"string","default":"","description":"RoleID of grant to create","name":"roleID","in":"path","required":true},{"type":"string","default":"","description":"The type of the object for this grant. Can be 'collection', 'namespace', or 'grantobject'. If not specified, the default is 'collection'. 'grantobject' is only used for creating grants against the `kubernetesnamespaces` target, which is used to give grants against all Kubernetes namespaces.","name":"type","in":"query"}],"responses":{"201":{"description":"Success"}}},"delete":{"description":"Deletes a collection grant.","tags":["UCP"],"summary":"Deletes a collection grant.","operationId":"DeleteGrant","parameters":[{"type":"string","default":"","description":"RoleID of grant to delete","name":"roleID","in":"path","required":true},{"type":"string","default":"","description":"SubjectID of grant to delete","name":"subjectID","in":"path","required":true},{"type":"string","default":"","description":"ObjectID of grant to delete","name":"objectID","in":"path","required":true}],"responses":{"204":{"description":"Success"}}}},"/collections":{"get":{"description":"List all visible collections.","produces":["application/json"],"tags":["UCP"],"summary":"List all visible collections.","operationId":"List collections","parameters":[{"type":"string","default":"","description":"Only return collections with an order marker starting from this value.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of collections per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/authz.Collection"}}},"default":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/authz.Collection"}}}}},"post":{"description":"Create a new collection of resources that share mutual authorization settings.","consumes":["application/json"],"produces":["application/json"],"tags":["UCP"],"summary":"Create a new collection of resources that share mutual authorization settings.","operationId":"Create Collection","parameters":[{"type":"authz.CollectionCreate","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/authz.CollectionCreate"}}],"responses":{"201":{"description":"Success","schema":{"$ref":"#/definitions/authz.CollectionCreateResponse"}}}}},"/collections/{id}":{"get":{"description":"Retrieve a single collection by ID.","produces":["application/json"],"tags":["UCP"],"summary":"Retrieve a single collection by ID.","operationId":"Get Collection","parameters":[{"type":"string","default":"","description":"ID of the collection to get","name":"id","in":"path","required":true}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/authz.Collection"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/authz.Collection"}}}},"delete":{"description":"Delete a single collection by ID.","tags":["UCP"],"summary":"Delete a single collection by ID.","operationId":"Delete Collection","parameters":[{"type":"string","default":"","description":"ID of the collection to delete.","name":"id","in":"path","required":true}],"responses":{"204":{"description":"Success"}}},"patch":{"description":"Updates an existing collection","consumes":["application/json"],"tags":["UCP"],"summary":"Updates an existing collection","operationId":"Update Collection","parameters":[{"type":"string","default":"","description":"ID of the collection to update.","name":"id","in":"path","required":true},{"type":"authz.CollectionUpdate","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/authz.CollectionUpdate"}}],"responses":{"200":{"description":"Success"},"default":{"description":"Success"}}}},"/collections/{id}/children":{"get":{"description":"Retrieve all children collection to a specific collection.","produces":["application/json"],"tags":["UCP"],"summary":"Retrieve all children collection to a specific collection.","operationId":"Get Collection Children","parameters":[{"type":"string","default":"","description":"ID of the collection whose children will be returned","name":"id","in":"path","required":true},{"type":"string","default":"","description":"Only return collections with an order marker starting from this value.","name":"start","in":"query"},{"type":"int","default":"10","description":"Maximum number of collections per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/authz.Collection"}}},"default":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/authz.Collection"}}}}}},"/commit":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["Image"],"summary":"Create a new image from a container","operationId":"ImageCommit","parameters":[{"description":"The container configuration","name":"containerConfig","in":"body","schema":{"$ref":"#/definitions/ContainerConfig"}},{"type":"string","description":"The ID or name of the container to commit","name":"container","in":"query"},{"type":"string","description":"Repository name for the created image","name":"repo","in":"query"},{"type":"string","description":"Tag name for the create image","name":"tag","in":"query"},{"type":"string","description":"Commit message","name":"comment","in":"query"},{"type":"string","description":"Author of the image (e.g., `John Hannibal Smith \u003channibal@a-team.com\u003e`)","name":"author","in":"query"},{"type":"boolean","default":true,"description":"Whether to pause the container before committing","name":"pause","in":"query"},{"type":"string","description":"`Dockerfile` instructions to apply while committing","name":"changes","in":"query"}],"responses":{"201":{"description":"no error","schema":{"$ref":"#/definitions/IdResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/configs":{"get":{"produces":["application/json"],"tags":["Config"],"summary":"List configs","operationId":"ConfigList","parameters":[{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the configs list. Available filters:\n\n- `id=\u003cconfig id\u003e`\n- `label=\u003ckey\u003e or label=\u003ckey\u003e=value`\n- `name=\u003cconfig name\u003e`\n- `names=\u003cconfig name\u003e`\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"array","items":{"$ref":"#/definitions/Config"},"example":[{"CreatedAt":"2016-11-05T01:20:17.327670065Z","ID":"ktnbjxoalbkvbvedmg1urrz8h","Spec":{"Name":"server.conf"},"UpdatedAt":"2016-11-05T01:20:17.327670065Z","Version":{"Index":11}}]}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/configs/create":{"post":{"description":"If you create a UCP config with a name that starts with `com.docker.ucp.config`, UCP verifies that the config is valid before saving it. Also, UCP validates any licenses with names that start with `com.docker.license`.","consumes":["application/json"],"produces":["application/json"],"tags":["Config"],"summary":"Create a config","operationId":"ConfigCreate","parameters":[{"name":"body","in":"body","schema":{"allOf":[{"$ref":"#/definitions/ConfigSpec"},{"type":"object","example":{"Data":"VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg==","Labels":{"foo":"bar"},"Name":"server.conf"}}]}}],"responses":{"201":{"description":"no error","schema":{"type":"object","properties":{"ID":{"description":"The ID of the created config.","type":"string"}},"example":{"ID":"ktnbjxoalbkvbvedmg1urrz8h"}}},"409":{"description":"name conflicts with an existing object","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/configs/{id}":{"get":{"produces":["application/json"],"tags":["Config"],"summary":"Inspect a config","operationId":"ConfigInspect","parameters":[{"type":"string","description":"ID of the config","name":"id","in":"path","required":true}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/Config"},"examples":{"application/json":{"CreatedAt":"2016-11-05T01:20:17.327670065Z","ID":"ktnbjxoalbkvbvedmg1urrz8h","Spec":{"Name":"app-dev.crt"},"UpdatedAt":"2016-11-05T01:20:17.327670065Z","Version":{"Index":11}}}},"404":{"description":"config not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"produces":["application/json"],"tags":["Config"],"summary":"Delete a config","operationId":"ConfigDelete","parameters":[{"type":"string","description":"ID of the config","name":"id","in":"path","required":true}],"responses":{"204":{"description":"no error"},"404":{"description":"config not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/configs/{id}/update":{"post":{"tags":["Config"],"summary":"Update a Config","operationId":"ConfigUpdate","parameters":[{"type":"string","description":"The ID or name of the config","name":"id","in":"path","required":true},{"description":"The spec of the config to update. Currently, only the Labels field can be updated. All other fields must remain unchanged from the [ConfigInspect endpoint](#operation/ConfigInspect) response values.","name":"body","in":"body","schema":{"$ref":"#/definitions/ConfigSpec"}},{"type":"integer","format":"int64","description":"The version number of the config object being updated. This is required to avoid conflicting writes.","name":"version","in":"query","required":true}],"responses":{"200":{"description":"no error"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such config","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/create":{"post":{"consumes":["application/json","application/octet-stream"],"produces":["application/json"],"tags":["Container"],"summary":"Create a container","operationId":"ContainerCreate","parameters":[{"pattern":"/?[a-zA-Z0-9_-]+","type":"string","description":"Assign the specified name to the container. Must match `/?[a-zA-Z0-9_-]+`.","name":"name","in":"query"},{"description":"Container to create","name":"body","in":"body","required":true,"schema":{"allOf":[{"$ref":"#/definitions/ContainerConfig","example":{"AttachStderr":true,"AttachStdin":false,"AttachStdout":true,"Cmd":["date"],"Domainname":"","Entrypoint":"","Env":["FOO=bar","BAZ=quux"],"ExposedPorts":{"22/tcp":{}},"HostConfig":{"AutoRemove":true,"Binds":["/tmp:/tmp"],"BlkioDeviceReadBps":[{}],"BlkioDeviceReadIOps":[{}],"BlkioDeviceWriteBps":[{}],"BlkioDeviceWriteIOps":[{}],"BlkioWeight":300,"BlkioWeightDevice":[{}],"CapAdd":["NET_ADMIN"],"CapDrop":["MKNOD"],"CgroupParent":"","CpuPercent":80,"CpuPeriod":100000,"CpuQuota":50000,"CpuRealtimePeriod":1000000,"CpuRealtimeRuntime":10000,"CpuShares":512,"CpusetCpus":"0,1","CpusetMems":"0,1","Devices":[],"Dns":["8.8.8.8"],"DnsOptions":[""],"DnsSearch":[""],"GroupAdd":["newgroup"],"KernelMemory":0,"Links":["redis3:redis"],"LogConfig":{"Config":{},"Type":"json-file"},"MaximumIOBps":0,"MaximumIOps":0,"Memory":0,"MemoryReservation":0,"MemorySwap":0,"MemorySwappiness":60,"NanoCPUs":500000,"NetworkMode":"bridge","OomKillDisable":false,"OomScoreAdj":500,"PidMode":"","PidsLimit":-1,"PortBindings":{"22/tcp":[{"HostPort":"11022"}]},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":[],"ShmSize":67108864,"StorageOpt":{},"Ulimits":[{}],"VolumeDriver":"","VolumesFrom":["parent","other:ro"]},"Hostname":"","Image":"ubuntu","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"MacAddress":"12:34:56:78:9a:bc","NetworkDisabled":false,"NetworkingConfig":{"EndpointsConfig":{"isolated_nw":{"Aliases":["server_x","server_y"],"IPAMConfig":{"IPv4Address":"172.20.30.33","IPv6Address":"2001:db8:abcd::3033","LinkLocalIPs":["169.254.34.68","fe80::3468"]},"Links":["container_1","container_2"]}}},"OpenStdin":false,"StdinOnce":false,"StopSignal":"SIGTERM","StopTimeout":10,"Tty":false,"User":"","Volumes":{"/volumes/data":{}},"WorkingDir":""}},{"type":"object","properties":{"HostConfig":{"$ref":"#/definitions/HostConfig"},"NetworkingConfig":{"description":"This container's networking configuration.","type":"object","properties":{"EndpointsConfig":{"description":"A mapping of network name to endpoint configuration for that network.","type":"object","additionalProperties":{"$ref":"#/definitions/EndpointSettings"}}}}},"example":{"AttachStderr":true,"AttachStdin":false,"AttachStdout":true,"Cmd":["date"],"Domainname":"","Entrypoint":"","Env":["FOO=bar","BAZ=quux"],"ExposedPorts":{"22/tcp":{}},"HostConfig":{"AutoRemove":true,"Binds":["/tmp:/tmp"],"BlkioDeviceReadBps":[{}],"BlkioDeviceReadIOps":[{}],"BlkioDeviceWriteBps":[{}],"BlkioDeviceWriteIOps":[{}],"BlkioWeight":300,"BlkioWeightDevice":[{}],"CapAdd":["NET_ADMIN"],"CapDrop":["MKNOD"],"CgroupParent":"","CpuPercent":80,"CpuPeriod":100000,"CpuQuota":50000,"CpuRealtimePeriod":1000000,"CpuRealtimeRuntime":10000,"CpuShares":512,"CpusetCpus":"0,1","CpusetMems":"0,1","Devices":[],"Dns":["8.8.8.8"],"DnsOptions":[""],"DnsSearch":[""],"GroupAdd":["newgroup"],"KernelMemory":0,"Links":["redis3:redis"],"LogConfig":{"Config":{},"Type":"json-file"},"MaximumIOBps":0,"MaximumIOps":0,"Memory":0,"MemoryReservation":0,"MemorySwap":0,"MemorySwappiness":60,"NanoCPUs":500000,"NetworkMode":"bridge","OomKillDisable":false,"OomScoreAdj":500,"PidMode":"","PidsLimit":-1,"PortBindings":{"22/tcp":[{"HostPort":"11022"}]},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":[],"ShmSize":67108864,"StorageOpt":{},"Ulimits":[{}],"VolumeDriver":"","VolumesFrom":["parent","other:ro"]},"Hostname":"","Image":"ubuntu","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"MacAddress":"12:34:56:78:9a:bc","NetworkDisabled":false,"NetworkingConfig":{"EndpointsConfig":{"isolated_nw":{"Aliases":["server_x","server_y"],"IPAMConfig":{"IPv4Address":"172.20.30.33","IPv6Address":"2001:db8:abcd::3033","LinkLocalIPs":["169.254.34.68","fe80::3468"]},"Links":["container_1","container_2"]}}},"OpenStdin":false,"StdinOnce":false,"StopSignal":"SIGTERM","StopTimeout":10,"Tty":false,"User":"","Volumes":{"/volumes/data":{}},"WorkingDir":""}}],"example":{"AttachStderr":true,"AttachStdin":false,"AttachStdout":true,"Cmd":["date"],"Domainname":"","Entrypoint":"","Env":["FOO=bar","BAZ=quux"],"ExposedPorts":{"22/tcp":{}},"HostConfig":{"AutoRemove":true,"Binds":["/tmp:/tmp"],"BlkioDeviceReadBps":[{}],"BlkioDeviceReadIOps":[{}],"BlkioDeviceWriteBps":[{}],"BlkioDeviceWriteIOps":[{}],"BlkioWeight":300,"BlkioWeightDevice":[{}],"CapAdd":["NET_ADMIN"],"CapDrop":["MKNOD"],"CgroupParent":"","CpuPercent":80,"CpuPeriod":100000,"CpuQuota":50000,"CpuRealtimePeriod":1000000,"CpuRealtimeRuntime":10000,"CpuShares":512,"CpusetCpus":"0,1","CpusetMems":"0,1","Devices":[],"Dns":["8.8.8.8"],"DnsOptions":[""],"DnsSearch":[""],"GroupAdd":["newgroup"],"KernelMemory":0,"Links":["redis3:redis"],"LogConfig":{"Config":{},"Type":"json-file"},"MaximumIOBps":0,"MaximumIOps":0,"Memory":0,"MemoryReservation":0,"MemorySwap":0,"MemorySwappiness":60,"NanoCPUs":500000,"NetworkMode":"bridge","OomKillDisable":false,"OomScoreAdj":500,"PidMode":"","PidsLimit":-1,"PortBindings":{"22/tcp":[{"HostPort":"11022"}]},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":0,"Name":""},"SecurityOpt":[],"ShmSize":67108864,"StorageOpt":{},"Ulimits":[{}],"VolumeDriver":"","VolumesFrom":["parent","other:ro"]},"Hostname":"","Image":"ubuntu","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"MacAddress":"12:34:56:78:9a:bc","NetworkDisabled":false,"NetworkingConfig":{"EndpointsConfig":{"isolated_nw":{"Aliases":["server_x","server_y"],"IPAMConfig":{"IPv4Address":"172.20.30.33","IPv6Address":"2001:db8:abcd::3033","LinkLocalIPs":["169.254.34.68","fe80::3468"]},"Links":["container_1","container_2"]}}},"OpenStdin":false,"StdinOnce":false,"StopSignal":"SIGTERM","StopTimeout":10,"Tty":false,"User":"","Volumes":{"/volumes/data":{}},"WorkingDir":""}}}],"responses":{"201":{"description":"Container created successfully","schema":{"type":"object","required":["Id","Warnings"],"properties":{"Id":{"description":"The ID of the created container","type":"string","x-nullable":false},"Warnings":{"description":"Warnings encountered when creating the container","type":"array","items":{"type":"string"},"x-nullable":false}}},"examples":{"application/json":{"Id":"e90e34656806","Warnings":[]}}},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"406":{"description":"impossible to attach","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"conflict","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/json":{"get":{"produces":["application/json"],"tags":["Container"],"summary":"List containers","operationId":"ContainerList","parameters":[{"type":"boolean","default":false,"description":"Return all containers. By default, only running containers are shown","name":"all","in":"query"},{"type":"integer","description":"Return this number of most recently created containers, including non-running ones.","name":"limit","in":"query"},{"type":"boolean","default":false,"description":"Return the size of container as fields `SizeRw` and `SizeRootFs`.","name":"size","in":"query"},{"type":"string","description":"Filters to process on the container list, encoded as JSON (a `map[string][]string`). For example, `{\"status\": [\"paused\"]}` will only return paused containers. Available filters:\n\n- `ancestor`=(`\u003cimage-name\u003e[:\u003ctag\u003e]`, `\u003cimage id\u003e`, or `\u003cimage@digest\u003e`)\n- `before`=(`\u003ccontainer id\u003e` or `\u003ccontainer name\u003e`)\n- `expose`=(`\u003cport\u003e[/\u003cproto\u003e]`|`\u003cstartport-endport\u003e/[\u003cproto\u003e]`)\n- `exited=\u003cint\u003e` containers with exit code of `\u003cint\u003e`\n- `health`=(`starting`|`healthy`|`unhealthy`|`none`)\n- `id=\u003cID\u003e` a container's ID\n- `isolation=`(`default`|`process`|`hyperv`) (Windows daemon only)\n- `is-task=`(`true`|`false`)\n- `label=key` or `label=\"key=value\"` of a container label\n- `name=\u003cname\u003e` a container's name\n- `network`=(`\u003cnetwork id\u003e` or `\u003cnetwork name\u003e`)\n- `publish`=(`\u003cport\u003e[/\u003cproto\u003e]`|`\u003cstartport-endport\u003e/[\u003cproto\u003e]`)\n- `since`=(`\u003ccontainer id\u003e` or `\u003ccontainer name\u003e`)\n- `status=`(`created`|`restarting`|`running`|`removing`|`paused`|`exited`|`dead`)\n- `volume`=(`\u003cvolume name\u003e` or `\u003cmount point destination\u003e`)\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/ContainerSummary"},"examples":{"application/json":[{"Command":"echo 1","Created":1367854155,"HostConfig":{"NetworkMode":"default"},"Id":"8dfafdbc3a40","Image":"ubuntu:latest","ImageID":"d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"Mounts":[{"Destination":"/data","Driver":"local","Mode":"ro,Z","Name":"fac362...80535","Propagation":"","RW":false,"Source":"/data"}],"Names":["/boring_feynman"],"NetworkSettings":{"Networks":{"bridge":{"EndpointID":"2cdc4edb1ded3631c81f57966563e5c8525b81121bb3706a9a9a3ae102711f3f","Gateway":"172.17.0.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.2","IPPrefixLen":16,"IPv6Gateway":"","MacAddress":"02:42:ac:11:00:02","NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"}}},"Ports":[{"PrivatePort":2222,"PublicPort":3333,"Type":"tcp"}],"SizeRootFs":0,"SizeRw":12288,"State":"Exited","Status":"Exit 0"},{"Command":"echo 222222","Created":1367854155,"HostConfig":{"NetworkMode":"default"},"Id":"9cd87474be90","Image":"ubuntu:latest","ImageID":"d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82","Labels":{},"Mounts":[],"Names":["/coolName"],"NetworkSettings":{"Networks":{"bridge":{"EndpointID":"88eaed7b37b38c2a3f0c4bc796494fdf51b270c2d22656412a2ca5d559a64d7a","Gateway":"172.17.0.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.8","IPPrefixLen":16,"IPv6Gateway":"","MacAddress":"02:42:ac:11:00:08","NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"}}},"Ports":[],"SizeRootFs":0,"SizeRw":12288,"State":"Exited","Status":"Exit 0"},{"Command":"echo 3333333333333333","Created":1367854154,"HostConfig":{"NetworkMode":"default"},"Id":"3176a2479c92","Image":"ubuntu:latest","ImageID":"d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82","Labels":{},"Mounts":[],"Names":["/sleepy_dog"],"NetworkSettings":{"Networks":{"bridge":{"EndpointID":"8b27c041c30326d59cd6e6f510d4f8d1d570a228466f956edf7815508f78e30d","Gateway":"172.17.0.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.6","IPPrefixLen":16,"IPv6Gateway":"","MacAddress":"02:42:ac:11:00:06","NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"}}},"Ports":[],"SizeRootFs":0,"SizeRw":12288,"State":"Exited","Status":"Exit 0"},{"Command":"echo 444444444444444444444444444444444","Created":1367854152,"HostConfig":{"NetworkMode":"default"},"Id":"4cb07b47f9fb","Image":"ubuntu:latest","ImageID":"d74508fb6632491cea586a1fd7d748dfc5274cd6fdfedee309ecdcbc2bf5cb82","Labels":{},"Mounts":[],"Names":["/running_cat"],"NetworkSettings":{"Networks":{"bridge":{"EndpointID":"d91c7b2f0644403d7ef3095985ea0e2370325cd2332ff3a3225c4247328e66e9","Gateway":"172.17.0.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.5","IPPrefixLen":16,"IPv6Gateway":"","MacAddress":"02:42:ac:11:00:05","NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"}}},"Ports":[],"SizeRootFs":0,"SizeRw":12288,"State":"Exited","Status":"Exit 0"}]}},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/prune":{"post":{"produces":["application/json"],"tags":["Container"],"summary":"Delete stopped containers","operationId":"ContainerPrune","parameters":[{"type":"string","description":"Filters to process on the prune list, encoded as JSON (a `map[string][]string`).\n\nAvailable filters:\n- `until=\u003ctimestamp\u003e` Prune containers created before this timestamp. The `\u003ctimestamp\u003e` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time.\n- `label` (`label=\u003ckey\u003e`, `label=\u003ckey\u003e=\u003cvalue\u003e`, `label!=\u003ckey\u003e`, or `label!=\u003ckey\u003e=\u003cvalue\u003e`) Prune containers with (or without, in case `label!=...` is used) the specified labels.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"object","properties":{"ContainersDeleted":{"description":"Container IDs that were deleted","type":"array","items":{"type":"string"}},"SpaceReclaimed":{"description":"Disk space reclaimed in bytes","type":"integer","format":"int64"}}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}":{"delete":{"tags":["Container"],"summary":"Remove a container","operationId":"ContainerDelete","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Remove the volumes associated with the container.","name":"v","in":"query"},{"type":"boolean","default":false,"description":"If the container is running, kill it before removing it.","name":"force","in":"query"},{"type":"boolean","default":false,"description":"Remove the specified link associated with the container.","name":"link","in":"query"}],"responses":{"204":{"description":"no error"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"409":{"description":"conflict","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"You cannot remove a running container: c2ada9df5af8. Stop the container before attempting removal or force remove"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/archive":{"get":{"description":"Get a tar archive of a resource in the filesystem of container id.","produces":["application/x-tar"],"tags":["Container"],"summary":"Get an archive of a filesystem resource in a container","operationId":"ContainerArchive","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","description":"Resource in the container’s filesystem to archive.","name":"path","in":"query","required":true}],"responses":{"200":{"description":"no error"},"400":{"description":"Bad parameter","schema":{"allOf":[{"$ref":"#/definitions/ErrorResponse"},{"type":"object","properties":{"message":{"description":"The error message. Either \"must specify path parameter\" (path cannot be empty) or \"not a directory\" (path was asserted to be a directory but exists as a file).","type":"string","x-nullable":false}}}]}},"404":{"description":"Container or path does not exist","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"put":{"description":"Upload a tar archive to be extracted to a path in the filesystem of container id.","consumes":["application/x-tar","application/octet-stream"],"tags":["Container"],"summary":"Extract an archive of files or folders to a directory in a container","operationId":"PutContainerArchive","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","description":"Path to a directory in the container to extract the archive’s contents into. ","name":"path","in":"query","required":true},{"type":"string","description":"If “1”, “true”, or “True” then it will be an error if unpacking the given content would cause an existing directory to be replaced with a non-directory and vice versa.","name":"noOverwriteDirNonDir","in":"query"},{"description":"The input stream must be a tar archive compressed with one of the following algorithms: identity (no compression), gzip, bzip2, xz.","name":"inputStream","in":"body","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The content was extracted successfully"},"400":{"description":"Bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"Permission denied, the volume or container rootfs is marked as read-only.","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"No such container or path does not exist inside the container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"head":{"description":"A response header `X-Docker-Container-Path-Stat` is return containing a base64 - encoded JSON object with some filesystem header information about the path.","tags":["Container"],"summary":"Get information about files in a container","operationId":"ContainerArchiveInfo","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","description":"Resource in the container’s filesystem to archive.","name":"path","in":"query","required":true}],"responses":{"200":{"description":"no error","headers":{"X-Docker-Container-Path-Stat":{"type":"string","description":"TODO"}}},"400":{"description":"Bad parameter","schema":{"allOf":[{"$ref":"#/definitions/ErrorResponse"},{"type":"object","properties":{"message":{"description":"The error message. Either \"must specify path parameter\" (path cannot be empty) or \"not a directory\" (path was asserted to be a directory but exists as a file).","type":"string","x-nullable":false}}}]}},"404":{"description":"Container or path does not exist","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/attach":{"post":{"description":"Attach to a container to read its output or send it input. You can attach to the same container multiple times and you can reattach to containers that have been detached.\n\nEither the `stream` or `logs` parameter must be `true` for this endpoint to do anything.\n\nSee [the documentation for the `docker attach` command](https://docs.docker.com/engine/reference/commandline/attach/) for more details.\n\n### Hijacking\n\nThis endpoint hijacks the HTTP connection to transport `stdin`, `stdout`, and `stderr` on the same socket.\n\nThis is the response from the daemon for an attach request:\n\n```\nHTTP/1.1 200 OK\nContent-Type: application/vnd.docker.raw-stream\n\n[STREAM]\n```\n\nAfter the headers and two new lines, the TCP connection can now be used for raw, bidirectional communication between the client and server.\n\nTo hint potential proxies about connection hijacking, the Docker client can also optionally send connection upgrade headers.\n\nFor example, the client sends this request to upgrade the connection:\n\n```\nPOST /containers/16253994b7c4/attach?stream=1\u0026stdout=1 HTTP/1.1\nUpgrade: tcp\nConnection: Upgrade\n```\n\nThe Docker daemon will respond with a `101 UPGRADED` response, and will similarly follow with the raw stream:\n\n```\nHTTP/1.1 101 UPGRADED\nContent-Type: application/vnd.docker.raw-stream\nConnection: Upgrade\nUpgrade: tcp\n\n[STREAM]\n```\n\n### Stream format\n\nWhen the TTY setting is disabled in [`POST /containers/create`](#operation/ContainerCreate), the stream over the hijacked connected is multiplexed to separate out `stdout` and `stderr`. The stream consists of a series of frames, each containing a header and a payload.\n\nThe header contains the information which the stream writes (`stdout` or `stderr`). It also contains the size of the associated frame encoded in the last four bytes (`uint32`).\n\nIt is encoded on the first eight bytes like this:\n\n```go\nheader := [8]byte{STREAM_TYPE, 0, 0, 0, SIZE1, SIZE2, SIZE3, SIZE4}\n```\n\n`STREAM_TYPE` can be:\n\n- 0: `stdin` (is written on `stdout`)\n- 1: `stdout`\n- 2: `stderr`\n\n`SIZE1, SIZE2, SIZE3, SIZE4` are the four bytes of the `uint32` size encoded as big endian.\n\nFollowing the header is the payload, which is the specified number of bytes of `STREAM_TYPE`.\n\nThe simplest way to implement this protocol is the following:\n\n1. Read 8 bytes.\n2. Choose `stdout` or `stderr` depending on the first byte.\n3. Extract the frame size from the last four bytes.\n4. Read the extracted size and output it on the correct output.\n5. Goto 1.\n\n### Stream format when using a TTY\n\nWhen the TTY setting is enabled in [`POST /containers/create`](#operation/ContainerCreate), the stream is not multiplexed. The data exchanged over the hijacked connection is simply the raw data from the process PTY and client's `stdin`.\n","produces":["application/vnd.docker.raw-stream"],"tags":["Container"],"summary":"Attach to a container","operationId":"ContainerAttach","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","description":"Override the key sequence for detaching a container.Format is a single character `[a-Z]` or `ctrl-\u003cvalue\u003e` where `\u003cvalue\u003e` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`.","name":"detachKeys","in":"query"},{"type":"boolean","default":false,"description":"Replay previous logs from the container.\n\nThis is useful for attaching to a container that has started and you want to output everything since the container started.\n\nIf `stream` is also enabled, once all the previous output has been returned, it will seamlessly transition into streaming current output.\n","name":"logs","in":"query"},{"type":"boolean","default":false,"description":"Stream attached streams from the time the request was made onwards","name":"stream","in":"query"},{"type":"boolean","default":false,"description":"Attach to `stdin`","name":"stdin","in":"query"},{"type":"boolean","default":false,"description":"Attach to `stdout`","name":"stdout","in":"query"},{"type":"boolean","default":false,"description":"Attach to `stderr`","name":"stderr","in":"query"}],"responses":{"101":{"description":"no error, hints proxy about hijacking"},"200":{"description":"no error, no upgrade header found"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/changes":{"get":{"description":"Returns which files in a container's filesystem have been added, deleted,\nor modified. The `Kind` of modification can be one of:\n\n- `0`: Modified\n- `1`: Added\n- `2`: Deleted\n","produces":["application/json"],"tags":["Container"],"summary":"Get changes on a container’s filesystem","operationId":"ContainerChanges","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true}],"responses":{"200":{"description":"The list of changes","schema":{"type":"array","items":{"type":"object","required":["Path","Kind"],"properties":{"Kind":{"description":"Kind of change","type":"integer","format":"uint8","enum":[0,1,2],"x-nullable":false},"Path":{"description":"Path to file that has changed","type":"string","x-nullable":false}},"x-go-name":"ContainerChangeResponseItem"}},"examples":{"application/json":[{"Kind":0,"Path":"/dev"},{"Kind":1,"Path":"/dev/kmsg"},{"Kind":1,"Path":"/test"}]}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/exec":{"post":{"description":"Run a command inside a running container.","consumes":["application/json"],"produces":["application/json"],"tags":["Exec"],"summary":"Create an exec instance","operationId":"ContainerExec","parameters":[{"description":"Exec configuration","name":"execConfig","in":"body","required":true,"schema":{"type":"object","properties":{"AttachStderr":{"description":"Attach to `stderr` of the exec command.","type":"boolean"},"AttachStdin":{"description":"Attach to `stdin` of the exec command.","type":"boolean"},"AttachStdout":{"description":"Attach to `stdout` of the exec command.","type":"boolean"},"Cmd":{"description":"Command to run, as a string or array of strings.","type":"array","items":{"type":"string"}},"DetachKeys":{"description":"Override the key sequence for detaching a container. Format is a single character `[a-Z]` or `ctrl-\u003cvalue\u003e` where `\u003cvalue\u003e` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`.","type":"string"},"Env":{"description":"A list of environment variables in the form `[\"VAR=value\", ...]`.","type":"array","items":{"type":"string"}},"Privileged":{"description":"Runs the exec process with extended privileges.","type":"boolean","default":false},"Tty":{"description":"Allocate a pseudo-TTY.","type":"boolean"},"User":{"description":"The user, and optionally, group to run the exec process inside the container. Format is one of: `user`, `user:group`, `uid`, or `uid:gid`.","type":"string"}},"example":{"AttachStderr":true,"AttachStdin":false,"AttachStdout":true,"Cmd":["date"],"DetachKeys":"ctrl-p,ctrl-q","Env":["FOO=bar","BAZ=quux"],"Tty":false}}},{"type":"string","description":"ID or name of container","name":"id","in":"path","required":true}],"responses":{"201":{"description":"no error","schema":{"$ref":"#/definitions/IdResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"409":{"description":"container is paused","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/export":{"get":{"description":"Export the contents of a container as a tarball.","produces":["application/octet-stream"],"tags":["Container"],"summary":"Export a container","operationId":"ContainerExport","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true}],"responses":{"200":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/json":{"get":{"description":"Return low-level information about a container.","produces":["application/json"],"tags":["Container"],"summary":"Inspect a container","operationId":"ContainerInspect","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Return the size of container as fields `SizeRw` and `SizeRootFs`","name":"size","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"object","properties":{"AppArmorProfile":{"type":"string"},"Args":{"description":"The arguments to the command being run","type":"array","items":{"type":"string"}},"Config":{"$ref":"#/definitions/ContainerConfig"},"Created":{"description":"The time the container was created","type":"string"},"Driver":{"type":"string"},"ExecIDs":{"type":"string"},"GraphDriver":{"$ref":"#/definitions/GraphDriverData"},"HostConfig":{"$ref":"#/definitions/HostConfig"},"HostnamePath":{"type":"string"},"HostsPath":{"type":"string"},"Id":{"description":"The ID of the container","type":"string"},"Image":{"description":"The container's image","type":"string"},"LogPath":{"type":"string"},"MountLabel":{"type":"string"},"Mounts":{"type":"array","items":{"$ref":"#/definitions/MountPoint"}},"Name":{"type":"string"},"NetworkSettings":{"$ref":"#/definitions/NetworkConfig"},"Node":{"description":"TODO","type":"object"},"Path":{"description":"The path to the command being run","type":"string"},"ProcessLabel":{"type":"string"},"ResolvConfPath":{"type":"string"},"RestartCount":{"type":"integer"},"SizeRootFs":{"description":"The total size of all the files in this container.","type":"integer","format":"int64"},"SizeRw":{"description":"The size of files that have been created or changed by this container.","type":"integer","format":"int64"},"State":{"description":"The state of the container.","type":"object","properties":{"Dead":{"type":"boolean"},"Error":{"type":"string"},"ExitCode":{"description":"The last exit code of this container","type":"integer"},"FinishedAt":{"description":"The time when this container last exited.","type":"string"},"OOMKilled":{"description":"Whether this container has been killed because it ran out of memory.","type":"boolean"},"Paused":{"description":"Whether this container is paused.","type":"boolean"},"Pid":{"description":"The process ID of this container","type":"integer"},"Restarting":{"description":"Whether this container is restarting.","type":"boolean"},"Running":{"description":"Whether this container is running.\n\nNote that a running container can be _paused_. The `Running` and `Paused`\nbooleans are not mutually exclusive:\n\nWhen pausing a container (on Linux), the cgroups freezer is used to suspend\nall processes in the container. Freezing the process requires the process to\nbe running. As a result, paused containers are both `Running` _and_ `Paused`.\n\nUse the `Status` field instead to determine if a container's state is \"running\".\n","type":"boolean"},"StartedAt":{"description":"The time when this container was last started.","type":"string"},"Status":{"description":"The status of the container. For example, `\"running\"` or `\"exited\"`.\n","type":"string","enum":["created","running","paused","restarting","removing","exited","dead"]}}}}},"examples":{"application/json":{"AppArmorProfile":"","Args":["-c","exit 9"],"Config":{"AttachStderr":true,"AttachStdin":false,"AttachStdout":true,"Cmd":["/bin/sh","-c","exit 9"],"Domainname":"","Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Hostname":"ba033ac44011","Image":"ubuntu","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"MacAddress":"","NetworkDisabled":false,"OpenStdin":false,"StdinOnce":false,"StopSignal":"SIGTERM","StopTimeout":10,"Tty":false,"User":"","Volumes":{"/volumes/data":{}},"WorkingDir":""},"Created":"2015-01-06T15:47:31.485331387Z","Driver":"devicemapper","HostConfig":{"BlkioDeviceReadBps":[{}],"BlkioDeviceReadIOps":[{}],"BlkioDeviceWriteBps":[{}],"BlkioDeviceWriteIOps":[{}],"BlkioWeight":0,"BlkioWeightDevice":[{}],"ContainerIDFile":"","CpuPercent":80,"CpuPeriod":100000,"CpuRealtimePeriod":1000000,"CpuRealtimeRuntime":10000,"CpuShares":0,"CpusetCpus":"","CpusetMems":"","Devices":[],"IpcMode":"","KernelMemory":0,"LogConfig":{"Type":"json-file"},"LxcConf":[],"MaximumIOBps":0,"MaximumIOps":0,"Memory":0,"MemoryReservation":0,"MemorySwap":0,"NetworkMode":"bridge","OomKillDisable":false,"OomScoreAdj":500,"PidMode":"","PortBindings":{},"Privileged":false,"PublishAllPorts":false,"ReadonlyRootfs":false,"RestartPolicy":{"MaximumRetryCount":2,"Name":"on-failure"},"ShmSize":67108864,"Sysctls":{"net.ipv4.ip_forward":"1"},"Ulimits":[{}],"VolumeDriver":""},"HostnamePath":"/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/hostname","HostsPath":"/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/hosts","Id":"ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39","Image":"04c5d3b7b0656168630d3ba35d8889bd0e9caafcaeb3004d2bfbc47e7c5d35d2","LogPath":"/var/lib/docker/containers/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b/1eb5fabf5a03807136561b3c00adcd2992b535d624d5e18b6cdc6a6844d9767b-json.log","MountLabel":"","Mounts":[{"Destination":"/data","Driver":"local","Mode":"ro,Z","Name":"fac362...80535","Propagation":"","RW":false,"Source":"/data"}],"Name":"/boring_euclid","NetworkSettings":{"Bridge":"","EndpointID":"","Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"HairpinMode":false,"IPAddress":"","IPPrefixLen":0,"IPv6Gateway":"","LinkLocalIPv6Address":"","LinkLocalIPv6PrefixLen":0,"MacAddress":"","Networks":{"bridge":{"EndpointID":"7587b82f0dada3656fda26588aee72630c6fab1536d36e394b2bfbcf898c971d","Gateway":"172.17.0.1","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"IPAddress":"172.17.0.2","IPPrefixLen":16,"IPv6Gateway":"","MacAddress":"02:42:ac:12:00:02","NetworkID":"7ea29fc1412292a2d7bba362f9253545fecdfa8ce9a6e37dd10ba8bee7129812"}},"SandboxID":"","SandboxKey":"","SecondaryIPAddresses":"","SecondaryIPv6Addresses":""},"Path":"/bin/sh","ProcessLabel":"","ResolvConfPath":"/var/lib/docker/containers/ba033ac4401106a3b513bc9d639eee123ad78ca3616b921167cd74b20e25ed39/resolv.conf","RestartCount":1,"State":{"Dead":false,"Error":"","ExitCode":9,"FinishedAt":"2015-01-06T15:47:32.080254511Z","OOMKilled":false,"Paused":false,"Pid":0,"Restarting":false,"Running":true,"StartedAt":"2015-01-06T15:47:32.072697474Z","Status":"running"}}}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/kill":{"post":{"description":"Send a POSIX signal to a container, defaulting to killing to the container.","tags":["Container"],"summary":"Kill a container","operationId":"ContainerKill","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","default":"SIGKILL","description":"Signal to send to the container as an integer or string (e.g. `SIGINT`)","name":"signal","in":"query"}],"responses":{"204":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/logs":{"get":{"description":"Get `stdout` and `stderr` logs from a container.\n\nNote: This endpoint works only for containers with the `json-file` or `journald` logging driver.\n","tags":["Container"],"summary":"Get container logs","operationId":"ContainerLogs","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Return the logs as a stream.\n\nThis will return a `101` HTTP response with a `Connection: upgrade` header, then hijack the HTTP connection to send raw output. For more information about hijacking and the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).\n","name":"follow","in":"query"},{"type":"boolean","default":false,"description":"Return logs from `stdout`","name":"stdout","in":"query"},{"type":"boolean","default":false,"description":"Return logs from `stderr`","name":"stderr","in":"query"},{"type":"integer","default":0,"description":"Only return logs since this time, as a UNIX timestamp","name":"since","in":"query"},{"type":"boolean","default":false,"description":"Add timestamps to every log line","name":"timestamps","in":"query"},{"type":"string","default":"all","description":"Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines.","name":"tail","in":"query"}],"responses":{"101":{"description":"logs returned as a stream","schema":{"type":"string","format":"binary"}},"200":{"description":"logs returned as a string in response body","schema":{"type":"string"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/pause":{"post":{"description":"Use the cgroups freezer to suspend all processes in a container.\n\nTraditionally, when suspending a process the `SIGSTOP` signal is used, which is observable by the process being suspended. With the cgroups freezer the process is unaware, and unable to capture, that it is being suspended, and subsequently resumed.\n","tags":["Container"],"summary":"Pause a container","operationId":"ContainerPause","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true}],"responses":{"204":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/rename":{"post":{"tags":["Container"],"summary":"Rename a container","operationId":"ContainerRename","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","description":"New name for the container","name":"name","in":"query","required":true}],"responses":{"204":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"409":{"description":"name already in use","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/resize":{"post":{"description":"Resize the TTY for a container. You must restart the container for the resize to take effect.","consumes":["application/octet-stream"],"produces":["text/plain"],"tags":["Container"],"summary":"Resize a container TTY","operationId":"ContainerResize","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"integer","description":"Height of the tty session in characters","name":"h","in":"query"},{"type":"integer","description":"Width of the tty session in characters","name":"w","in":"query"}],"responses":{"200":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"cannot resize container","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/restart":{"post":{"tags":["Container"],"summary":"Restart a container","operationId":"ContainerRestart","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"integer","description":"Number of seconds to wait before killing the container","name":"t","in":"query"}],"responses":{"204":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/start":{"post":{"tags":["Container"],"summary":"Start a container","operationId":"ContainerStart","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","description":"Override the key sequence for detaching a container. Format is a single character `[a-Z]` or `ctrl-\u003cvalue\u003e` where `\u003cvalue\u003e` is one of: `a-z`, `@`, `^`, `[`, `,` or `_`.","name":"detachKeys","in":"query"}],"responses":{"204":{"description":"no error"},"304":{"description":"container already started","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/stats":{"get":{"description":"This endpoint returns a live stream of a container’s resource usage\nstatistics.\n\nThe `precpu_stats` is the CPU statistic of last read, which is used\nfor calculating the CPU usage percentage. It is not the same as the\n`cpu_stats` field.\n\nIf either `precpu_stats.online_cpus` or `cpu_stats.online_cpus` is\nnil then for compatibility with older daemons the length of the\ncorresponding `cpu_usage.percpu_usage` array should be used.\n","produces":["application/json"],"tags":["Container"],"summary":"Get container stats based on resource usage","operationId":"ContainerStats","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"boolean","default":true,"description":"Stream the output. If false, the stats will be output once and then it will disconnect.","name":"stream","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"object"},"examples":{"application/json":{"blkio_stats":{},"cpu_stats":{"cpu_usage":{"percpu_usage":[8646879,24472255,36438778,30657443],"total_usage":100215355,"usage_in_kernelmode":30000000,"usage_in_usermode":50000000},"online_cpus":4,"system_cpu_usage":739306590000000,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"failcnt":0,"limit":67108864,"max_usage":6651904,"stats":{"active_anon":6537216,"active_file":0,"cache":0,"hierarchical_memory_limit":67108864,"inactive_anon":0,"inactive_file":0,"mapped_file":0,"pgfault":964,"pgmajfault":0,"pgpgin":477,"pgpgout":414,"rss":6537216,"rss_huge":6291456,"total_active_anon":6537216,"total_active_file":0,"total_cache":0,"total_inactive_anon":0,"total_inactive_file":0,"total_mapped_file":0,"total_pgfault":964,"total_pgmajfault":0,"total_pgpgin":477,"total_pgpgout":414,"total_rss":6537216,"total_rss_huge":6291456,"total_unevictable":0,"total_writeback":0,"unevictable":0,"writeback":0},"usage":6537216},"networks":{"eth0":{"rx_bytes":5338,"rx_dropped":0,"rx_errors":0,"rx_packets":36,"tx_bytes":648,"tx_dropped":0,"tx_errors":0,"tx_packets":8},"eth5":{"rx_bytes":4641,"rx_dropped":0,"rx_errors":0,"rx_packets":26,"tx_bytes":690,"tx_dropped":0,"tx_errors":0,"tx_packets":9}},"pids_stats":{"current":3},"precpu_stats":{"cpu_usage":{"percpu_usage":[8646879,24350896,36438778,30657443],"total_usage":100093996,"usage_in_kernelmode":30000000,"usage_in_usermode":50000000},"online_cpus":4,"system_cpu_usage":9492140000000,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"read":"2015-01-08T22:57:31.547920715Z"}}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/stop":{"post":{"tags":["Container"],"summary":"Stop a container","operationId":"ContainerStop","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"integer","description":"Number of seconds to wait before killing the container","name":"t","in":"query"}],"responses":{"204":{"description":"no error"},"304":{"description":"container already stopped","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/top":{"get":{"description":"On Unix systems, this is done by running the `ps` command. This endpoint is not supported on Windows.","tags":["Container"],"summary":"List processes running inside a container","operationId":"ContainerTop","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","default":"-ef","description":"The arguments to pass to `ps`. For example, `aux`","name":"ps_args","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"object","properties":{"Processes":{"description":"Each process running in the container, where each is process is an array of values corresponding to the titles","type":"array","items":{"type":"array","items":{"type":"string"}}},"Titles":{"description":"The ps column titles","type":"array","items":{"type":"string"}}}},"examples":{"application/json":{"Processes":[["root","13642","882","0","17:03","pts/0","00:00:00","/bin/bash"],["root","13735","13642","0","17:06","pts/0","00:00:00","sleep 10"]],"Titles":["UID","PID","PPID","C","STIME","TTY","TIME","CMD"]}}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/unpause":{"post":{"description":"Resume a container which has been paused.","tags":["Container"],"summary":"Unpause a container","operationId":"ContainerUnpause","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true}],"responses":{"204":{"description":"no error"},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/containers/{id}/wait":{"post":{"description":"Block until a container stops, then returns the exit code.","produces":["application/json"],"tags":["Container"],"summary":"Wait for a container","operationId":"ContainerWait","parameters":[{"type":"string","description":"ID or name of the container","name":"id","in":"path","required":true},{"type":"string","default":"not-running","description":"Wait until a container state reaches the given condition, either 'not-running' (default), 'next-exit', or 'removed'.","name":"condition","in":"query"}],"responses":{"200":{"description":"The container has exit.","schema":{"type":"object","required":["StatusCode"],"properties":{"StatusCode":{"description":"Exit code of the container","type":"integer","x-nullable":false}}}},"404":{"description":"no such container","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such container: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/defaultCollection/{userID}":{"get":{"description":"Retrieve a user's default collection.","produces":["application/json"],"tags":["UCP"],"summary":"Retrieve a user's default collection.","operationId":"Get user default collection","parameters":[{"type":"string","default":"","description":"ID of the user","name":"userID","in":"path","required":true}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/authz.Collection"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/authz.Collection"}}}},"put":{"description":"Set a user's default collection.","consumes":["application/json"],"tags":["UCP"],"summary":"Set a user's default collection.","operationId":"Set user default collection","parameters":[{"type":"string","default":"","description":"ID of the user","name":"userID","in":"path","required":true},{"type":"authz.CollectionID","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/authz.CollectionID"}}],"responses":{"201":{"description":"Success"}}},"delete":{"description":"Delete the default collection setting for a user","tags":["UCP"],"summary":"Delete the default collection setting for a user","operationId":"DeleteUserDefaultCollection","parameters":[{"type":"string","default":"","description":"ID of the user whose default collection mapping will be deleted","name":"userID","in":"path","required":true}],"responses":{"204":{"description":"Success"}}}},"/defaultCollectionRole":{"get":{"description":"Retrieve the role for the logged-in user's default collection.","produces":["application/json"],"tags":["UCP"],"summary":"Retrieve the role for the logged-in user's default collection.","operationId":"Get the logged-in user's role for their default collection","responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/role.Role"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/role.Role"}}}}},"/distribution/{name}/json":{"get":{"description":"Return image digest and platform information by contacting the registry.","produces":["application/json"],"tags":["Distribution"],"summary":"Get image information from the registry","operationId":"DistributionInspect","parameters":[{"type":"string","description":"Image name or id","name":"name","in":"path","required":true}],"responses":{"200":{"description":"descriptor and platform information","schema":{"type":"object","required":["Descriptor","Platforms"],"properties":{"Descriptor":{"description":"A descriptor struct containing digest, media type, and size","type":"object","properties":{"Digest":{"type":"string"},"MediaType":{"type":"string"},"Size":{"type":"integer","format":"int64"},"URLs":{"type":"array","items":{"type":"string"}}}},"Platforms":{"description":"An array containing all platforms supported by the image","type":"array","items":{"type":"object","properties":{"Architecture":{"type":"string"},"Features":{"type":"array","items":{"type":"string"}},"OS":{"type":"string"},"OSFeatures":{"type":"array","items":{"type":"string"}},"OSVersion":{"type":"string"},"Variant":{"type":"string"}}}}},"x-go-name":"DistributionInspect"},"examples":{"application/json":{"Descriptor":{"Digest":"sha256:c0537ff6a5218ef531ece93d4984efc99bbf3f7497c0a7726c88e2bb7584dc96","MediaType":"application/vnd.docker.distribution.manifest.v2+json","Size":3987495,"URLs":[""]},"Platforms":[{"Architecture":"amd64","Features":[""],"OS":"linux","OSFeatures":[""],"OSVersion":"","Variant":""}]}}},"401":{"description":"Failed authentication or no image found","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such image: someimage (tag: latest)"}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/events":{"get":{"description":"Stream real-time events from the server.\n\nVarious objects within Docker report events when something happens to them.\n\nContainers report these events: `attach`, `commit`, `copy`, `create`, `destroy`, `detach`, `die`, `exec_create`, `exec_detach`, `exec_start`, `export`, `health_status`, `kill`, `oom`, `pause`, `rename`, `resize`, `restart`, `start`, `stop`, `top`, `unpause`, and `update`\n\nImages report these events: `delete`, `import`, `load`, `pull`, `push`, `save`, `tag`, and `untag`\n\nVolumes report these events: `create`, `mount`, `unmount`, and `destroy`\n\nNetworks report these events: `create`, `connect`, `disconnect`, `destroy`, `update`, and `remove`\n\nThe Docker daemon reports these events: `reload`\n\nServices report these events: `create`, `update`, and `remove`\n\nNodes report these events: `create`, `update`, and `remove`\n\nSecrets report these events: `create`, `update`, and `remove`\n","produces":["application/json"],"tags":["System"],"summary":"Monitor events","operationId":"SystemEvents","parameters":[{"type":"string","description":"Show events created since this timestamp then stream new events.","name":"since","in":"query"},{"type":"string","description":"Show events created until this timestamp then stop streaming.","name":"until","in":"query"},{"type":"string","description":"A JSON encoded value of filters (a `map[string][]string`) to process on the event list. Available filters:\n\n- `container=\u003cstring\u003e` container name or ID\n- `daemon=\u003cstring\u003e` daemon name or ID\n- `event=\u003cstring\u003e` event type\n- `image=\u003cstring\u003e` image name or ID\n- `label=\u003cstring\u003e` image or container label\n- `network=\u003cstring\u003e` network name or ID\n- `plugin`=\u003cstring\u003e plugin name or ID\n- `scope`=\u003cstring\u003e local or swarm\n- `type=\u003cstring\u003e` object to filter by, one of `container`, `image`, `volume`, `network`, `daemon`, `plugin`, `node`, `service` or `secret`\n- `volume=\u003cstring\u003e` volume name or ID\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"object","properties":{"Action":{"description":"The type of event","type":"string"},"Actor":{"type":"object","properties":{"Attributes":{"description":"Various key/value attributes of the object, depending on its type","type":"object","additionalProperties":{"type":"string"}},"ID":{"description":"The ID of the object emitting the event","type":"string"}}},"Type":{"description":"The type of object emitting the event","type":"string"},"time":{"description":"Timestamp of event","type":"integer"},"timeNano":{"description":"Timestamp of event, with nanosecond accuracy","type":"integer","format":"int64"}}},"examples":{"application/json":{"Action":"create","Actor":{"Attributes":{"com.example.some-label":"some-label-value","image":"alpine","name":"my-container"},"ID":"ede54ee1afda366ab42f824e8a5ffd195155d853ceaec74a927f249ea270c743"},"Type":"container","time":1461943101}}},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/exec/{id}/json":{"get":{"description":"Return low-level information about an exec instance.","produces":["application/json"],"tags":["Exec"],"summary":"Inspect an exec instance","operationId":"ExecInspect","parameters":[{"type":"string","description":"Exec instance ID","name":"id","in":"path","required":true}],"responses":{"200":{"description":"No error","schema":{"type":"object","properties":{"ContainerID":{"type":"string"},"ExitCode":{"type":"integer"},"ID":{"type":"string"},"OpenStderr":{"type":"boolean"},"OpenStdin":{"type":"boolean"},"OpenStdout":{"type":"boolean"},"Pid":{"description":"The system process ID for the exec process.","type":"integer"},"ProcessConfig":{"$ref":"#/definitions/ProcessConfig"},"Running":{"type":"boolean"}}},"examples":{"application/json":{"CanRemove":false,"ContainerID":"b53ee82b53a40c7dca428523e34f741f3abc51d9f297a14ff874bf761b995126","DetachKeys":"","ExitCode":2,"ID":"f33bbfb39f5b142420f4759b2348913bd4a8d1a6d7fd56499cb41a1bb91d7b3b","OpenStderr":true,"OpenStdin":true,"OpenStdout":true,"Pid":42000,"ProcessConfig":{"arguments":["-c","exit 2"],"entrypoint":"sh","privileged":false,"tty":true,"user":"1000"},"Running":false}}},"404":{"description":"No such exec instance","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/exec/{id}/resize":{"post":{"description":"Resize the TTY session used by an exec instance. This endpoint only works if `tty` was specified as part of creating and starting the exec instance.","tags":["Exec"],"summary":"Resize an exec instance","operationId":"ExecResize","parameters":[{"type":"string","description":"Exec instance ID","name":"id","in":"path","required":true},{"type":"integer","description":"Height of the TTY session in characters","name":"h","in":"query"},{"type":"integer","description":"Width of the TTY session in characters","name":"w","in":"query"}],"responses":{"201":{"description":"No error"},"404":{"description":"No such exec instance","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/exec/{id}/start":{"post":{"description":"Starts a previously set up exec instance. If detach is true, this endpoint returns immediately after starting the command. Otherwise, it sets up an interactive session with the command.","consumes":["application/json"],"produces":["application/vnd.docker.raw-stream"],"tags":["Exec"],"summary":"Start an exec instance","operationId":"ExecStart","parameters":[{"name":"execStartConfig","in":"body","schema":{"type":"object","properties":{"Detach":{"description":"Detach from the command.","type":"boolean"},"Tty":{"description":"Allocate a pseudo-TTY.","type":"boolean"}},"example":{"Detach":false,"Tty":false}}},{"type":"string","description":"Exec instance ID","name":"id","in":"path","required":true}],"responses":{"200":{"description":"No error"},"404":{"description":"No such exec instance","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"Container is stopped or paused","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/id/":{"get":{"description":"Identify the Currently Authenticated Account.","produces":["application/json"],"tags":["Identity"],"summary":"Identify the Currently Authenticated Account.","operationId":"ID","responses":{"200":{"description":"Success, current account returned."},"default":{"description":"Success, current account returned."}}}},"/id/login":{"post":{"description":"Submit a Login Form in exchange for a Session Token","consumes":["application/json"],"produces":["application/json"],"tags":["Identity"],"summary":"Submit a Login Form in exchange for a Session Token","operationId":"Login","parameters":[{"type":"forms.Login","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Login"}}],"responses":{"200":{"description":"Success, login response returned.","schema":{"$ref":"#/definitions/responses.LoginSession"}},"default":{"description":"Success, login response returned.","schema":{"$ref":"#/definitions/responses.LoginSession"}}}}},"/id/logout":{"post":{"description":"Delete the current session is use.","produces":["application/json"],"tags":["Identity"],"summary":"Delete the current session is use.","operationId":"Logout","responses":{"204":{"description":"Success, current session deleted."}}}},"/images/create":{"post":{"description":"Create an image by either pulling it from a registry or importing it.\n\nThe `create` request pulls the image onto every node in the swarm that exists at that time and that have the right operating system. Nodes that join the swarm later or that don't have the same base OS as the image won't get the image.","consumes":["text/plain","application/octet-stream"],"produces":["application/json"],"tags":["Image"],"summary":"Create an image","operationId":"ImageCreate","parameters":[{"type":"string","description":"Name of the image to pull. The name may include a tag or digest. This parameter may only be used when pulling an image. The pull is cancelled if the HTTP connection is closed.","name":"fromImage","in":"query"},{"type":"string","description":"Source to import. The value may be a URL from which the image can be retrieved or `-` to read the image from the request body. This parameter may only be used when importing an image.","name":"fromSrc","in":"query"},{"type":"string","description":"Repository name given to an image when it is imported. The repo may include a tag. This parameter may only be used when importing an image.","name":"repo","in":"query"},{"type":"string","description":"Tag or digest. If empty when pulling an image, this causes all tags for the given image to be pulled.","name":"tag","in":"query"},{"description":"Image content if the value `-` has been specified in fromSrc query parameter","name":"inputImage","in":"body","schema":{"type":"string"}},{"type":"string","description":"A base64-encoded auth configuration. [See the authentication section for details.](#section/Authentication)","name":"X-Registry-Auth","in":"header"}],"responses":{"200":{"description":"no error"},"404":{"description":"repository does not exist or no read access","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/get":{"get":{"description":"Get a tarball containing all images and metadata for several image repositories.\n\nFor each value of the `names` parameter: if it is a specific name and tag (e.g. `ubuntu:latest`), then only that image (and its parents) are returned; if it is an image ID, similarly only that image (and its parents) are returned and there would be no names referenced in the 'repositories' file for this image ID.\n\nFor details on the format, see [the export image endpoint](#operation/ImageGet).\n","produces":["application/x-tar"],"tags":["Image"],"summary":"Export several images","operationId":"ImageGetAll","parameters":[{"type":"array","items":{"type":"string"},"description":"Image names to filter by","name":"names","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"string","format":"binary"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/json":{"get":{"description":"Returns a list of images on the server. Note that it uses a different, smaller representation of an image than inspecting a single image.\n\nThis endpoint returns the union of all images on all nodes in the cluster.","produces":["application/json"],"tags":["Image"],"summary":"List Images","operationId":"ImageList","parameters":[{"type":"boolean","default":false,"description":"Show all images. Only images from a final layer (no children) are shown by default.","name":"all","in":"query"},{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters:\n\n- `before`=(`\u003cimage-name\u003e[:\u003ctag\u003e]`, `\u003cimage id\u003e` or `\u003cimage@digest\u003e`)\n- `dangling=true`\n- `label=key` or `label=\"key=value\"` of an image label\n- `reference`=(`\u003cimage-name\u003e[:\u003ctag\u003e]`)\n- `since`=(`\u003cimage-name\u003e[:\u003ctag\u003e]`, `\u003cimage id\u003e` or `\u003cimage@digest\u003e`)\n","name":"filters","in":"query"},{"type":"boolean","default":false,"description":"Show digest information as a `RepoDigests` field on each image.","name":"digests","in":"query"}],"responses":{"200":{"description":"Summary image data for the images matching the query","schema":{"type":"array","items":{"$ref":"#/definitions/ImageSummary"}},"examples":{"application/json":[{"Containers":2,"Created":1474925151,"Id":"sha256:e216a057b1cb1efc11f8a268f37ef62083e70b1b38323ba252e25ac88904a7e8","Labels":{},"ParentId":"","RepoDigests":["ubuntu@sha256:992069aee4016783df6345315302fa59681aae51a8eeb2f889dea59290f21787"],"RepoTags":["ubuntu:12.04","ubuntu:precise"],"SharedSize":0,"Size":103579269,"VirtualSize":103579269},{"Containers":5,"Created":1403128455,"Id":"sha256:3e314f95dcace0f5e4fd37b10862fe8398e3c60ed36600bc0ca5fda78b087175","Labels":{},"ParentId":"","RepoDigests":["ubuntu@sha256:002fba3e3255af10be97ea26e476692a7ebed0bb074a9ab960b2e7a1526b15d7","ubuntu@sha256:68ea0200f0b90df725d99d823905b04cf844f6039ef60c60bf3e019915017bd3"],"RepoTags":["ubuntu:12.10","ubuntu:quantal"],"SharedSize":0,"Size":172064416,"VirtualSize":172064416}]}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/load":{"post":{"description":"Load a set of images and tags into a repository.\n\nFor details on the format, see [the export image endpoint](#operation/ImageGet).\n\n\nThe image is loaded on all nodes in the swarm that are compatible with the image's architecture. For example, Windows images aren't loaded on Linux nodes, and vice-versa.","consumes":["application/x-tar"],"produces":["application/json"],"tags":["Image"],"summary":"Import images","operationId":"ImageLoad","parameters":[{"description":"Tar archive containing images","name":"imagesTarball","in":"body","schema":{"type":"string","format":"binary"}},{"type":"boolean","default":false,"description":"Suppress progress details during load.","name":"quiet","in":"query"}],"responses":{"200":{"description":"no error"},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/prune":{"post":{"produces":["application/json"],"tags":["Image"],"summary":"Delete unused images","operationId":"ImagePrune","parameters":[{"type":"string","description":"Filters to process on the prune list, encoded as JSON (a `map[string][]string`). Available filters:\n\n- `dangling=\u003cboolean\u003e` When set to `true` (or `1`), prune only\n unused *and* untagged images. When set to `false`\n (or `0`), all unused images are pruned.\n- `until=\u003cstring\u003e` Prune images created before this timestamp. The `\u003ctimestamp\u003e` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time.\n- `label` (`label=\u003ckey\u003e`, `label=\u003ckey\u003e=\u003cvalue\u003e`, `label!=\u003ckey\u003e`, or `label!=\u003ckey\u003e=\u003cvalue\u003e`) Prune images with (or without, in case `label!=...` is used) the specified labels.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"object","properties":{"ImagesDeleted":{"description":"Images that were deleted","type":"array","items":{"$ref":"#/definitions/ImageDeleteResponseItem"}},"SpaceReclaimed":{"description":"Disk space reclaimed in bytes","type":"integer","format":"int64"}}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/search":{"get":{"description":"Search for an image on Docker Hub.","produces":["application/json"],"tags":["Image"],"summary":"Search images","operationId":"ImageSearch","parameters":[{"type":"string","description":"Term to search","name":"term","in":"query","required":true},{"type":"integer","description":"Maximum number of results to return","name":"limit","in":"query"},{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the images list. Available filters:\n\n- `is-automated=(true|false)`\n- `is-official=(true|false)`\n- `stars=\u003cnumber\u003e` Matches images that has at least 'number' stars.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"array","items":{"type":"object","properties":{"description":{"type":"string"},"is_automated":{"type":"boolean"},"is_official":{"type":"boolean"},"name":{"type":"string"},"star_count":{"type":"integer"}}}},"examples":{"application/json":[{"description":"","is_automated":false,"is_official":false,"name":"wma55/u1210sshd","star_count":0},{"description":"","is_automated":false,"is_official":false,"name":"jdswinbank/sshd","star_count":0},{"description":"","is_automated":false,"is_official":false,"name":"vgauthier/sshd","star_count":0}]}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/{name}":{"delete":{"description":"Remove an image, along with any untagged parent images that were\nreferenced by that image.\n\nImages can't be removed if they have descendant images, are being\nused by a running container or are being used by a build.\n","produces":["application/json"],"tags":["Image"],"summary":"Remove an image","operationId":"ImageDelete","parameters":[{"type":"string","description":"Image name or ID","name":"name","in":"path","required":true},{"type":"boolean","default":false,"description":"Remove the image even if it is being used by stopped containers or has other tags","name":"force","in":"query"},{"type":"boolean","default":false,"description":"Do not delete untagged parent images","name":"noprune","in":"query"}],"responses":{"200":{"description":"The image was deleted successfully","schema":{"type":"array","items":{"$ref":"#/definitions/ImageDeleteResponseItem"}},"examples":{"application/json":[{"Untagged":"3e2f21a89f"},{"Deleted":"3e2f21a89f"},{"Deleted":"53b4f83ac9"}]}},"404":{"description":"No such image","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"Conflict","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/{name}/get":{"get":{"description":"Get a tarball containing all images and metadata for a repository.\n\nIf `name` is a specific name and tag (e.g. `ubuntu:latest`), then only that image (and its parents) are returned. If `name` is an image ID, similarly only that image (and its parents) are returned, but with the exclusion of the `repositories` file in the tarball, as there were no image names referenced.\n\n### Image tarball format\n\nAn image tarball contains one directory per image layer (named using its long ID), each containing these files:\n\n- `VERSION`: currently `1.0` - the file format version\n- `json`: detailed layer information, similar to `docker inspect layer_id`\n- `layer.tar`: A tarfile containing the filesystem changes in this layer\n\nThe `layer.tar` file contains `aufs` style `.wh..wh.aufs` files and directories for storing attribute changes and deletions.\n\nIf the tarball defines a repository, the tarball should also include a `repositories` file at the root that contains a list of repository and tag names mapped to layer IDs.\n\n```json\n{\n \"hello-world\": {\n \"latest\": \"565a9d68a73f6706862bfe8409a7f659776d4d60a8d096eb4a3cbce6999cc2a1\"\n }\n}\n```\n","produces":["application/x-tar"],"tags":["Image"],"summary":"Export an image","operationId":"ImageGet","parameters":[{"type":"string","description":"Image name or ID","name":"name","in":"path","required":true}],"responses":{"200":{"description":"no error","schema":{"type":"string","format":"binary"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/{name}/history":{"get":{"description":"Return parent layers of an image.","produces":["application/json"],"tags":["Image"],"summary":"Get the history of an image","operationId":"ImageHistory","parameters":[{"type":"string","description":"Image name or ID","name":"name","in":"path","required":true}],"responses":{"200":{"description":"List of image layers","schema":{"type":"array","items":{"type":"object","required":["Id","Created","CreatedBy","Tags","Size","Comment"],"properties":{"Comment":{"type":"string","x-nullable":false},"Created":{"type":"integer","format":"int64","x-nullable":false},"CreatedBy":{"type":"string","x-nullable":false},"Id":{"type":"string","x-nullable":false},"Size":{"type":"integer","format":"int64","x-nullable":false},"Tags":{"type":"array","items":{"type":"string"}}},"x-go-name":"HistoryResponseItem"}},"examples":{"application/json":[{"Comment":"","Created":1398108230,"CreatedBy":"/bin/sh -c #(nop) ADD file:eb15dbd63394e063b805a3c32ca7bf0266ef64676d5a6fab4801f2e81e2a5148 in /","Id":"3db9c44f45209632d6050b35958829c3a2aa256d81b9a7be45b362ff85c54710","Size":182964289,"Tags":["ubuntu:lucid","ubuntu:10.04"]},{"Comment":"","Created":1398108222,"CreatedBy":"/bin/sh -c #(nop) MAINTAINER Tianon Gravi \u003cadmwiggin@gmail.com\u003e - mkimage-debootstrap.sh -i iproute,iputils-ping,ubuntu-minimal -t lucid.tar.xz lucid http://archive.ubuntu.com/ubuntu/","Id":"6cfa4d1f33fb861d4d114f43b25abd0ac737509268065cdfd69d544a59c85ab8","Size":0,"Tags":[]},{"Comment":"Imported from -","Created":1371157430,"CreatedBy":"","Id":"511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158","Size":0,"Tags":["scratch12:latest","scratch:latest"]}]}},"404":{"description":"No such image","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/{name}/json":{"get":{"description":"Return low-level information about an image.","produces":["application/json"],"tags":["Image"],"summary":"Inspect an image","operationId":"ImageInspect","parameters":[{"type":"string","description":"Image name or id","name":"name","in":"path","required":true}],"responses":{"200":{"description":"No error","schema":{"$ref":"#/definitions/Image"},"examples":{"application/json":{"Architecture":"amd64","Author":"","Comment":"","Config":{"AttachStderr":false,"AttachStdin":false,"AttachStdout":false,"Cmd":["/bin/bash"],"Domainname":"","Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Hostname":"e611e15f9c9d","Image":"91e54dfb11794fad694460162bf0cb0a4fa710cfa3f60979c177d920813e267c","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"MacAddress":"","NetworkDisabled":false,"OnBuild":[],"OpenStdin":false,"PublishService":"","StdinOnce":false,"Tty":false,"User":"","WorkingDir":""},"Container":"cb91e48a60d01f1e27028b4fc6819f4f290b3cf12496c8176ec714d0d390984a","ContainerConfig":{"AttachStderr":false,"AttachStdin":false,"AttachStdout":false,"Cmd":["/bin/sh","-c","#(nop) LABEL com.example.vendor=Acme com.example.license=GPL com.example.version=1.0"],"Domainname":"","Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Hostname":"e611e15f9c9d","Image":"91e54dfb11794fad694460162bf0cb0a4fa710cfa3f60979c177d920813e267c","Labels":{"com.example.license":"GPL","com.example.vendor":"Acme","com.example.version":"1.0"},"MacAddress":"","NetworkDisabled":false,"OnBuild":[],"OpenStdin":false,"PublishService":"","StdinOnce":false,"Tty":false,"User":"","WorkingDir":""},"Created":"2015-09-10T08:30:53.26995814Z","DockerVersion":"1.9.0-dev","GraphDriver":{"Data":{},"Name":"aufs"},"Id":"sha256:85f05633ddc1c50679be2b16a0479ab6f7637f8884e0cfe0f4d20e1ebb3d6e7c","Os":"linux","Parent":"sha256:91e54dfb11794fad694460162bf0cb0a4fa710cfa3f60979c177d920813e267c","RepoDigests":["localhost:5000/test/busybox/example@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf"],"RepoTags":["example:1.0","example:latest","example:stable"],"RootFS":{"Layers":["sha256:1834950e52ce4d5a88a1bbd131c537f4d0e56d10ff0dd69e66be3b7dfa9df7e6","sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef"],"Type":"layers"},"Size":0,"VirtualSize":188359297}}},"404":{"description":"No such image","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such image: someimage (tag: latest)"}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/{name}/push":{"post":{"description":"Push an image to a registry.\n\nIf you wish to push an image on to a private registry, that image must already have a tag which references the registry. For example, `registry.example.com/myimage:latest`.\n\nThe push is cancelled if the HTTP connection is closed.\n","consumes":["application/octet-stream"],"tags":["Image"],"summary":"Push an image","operationId":"ImagePush","parameters":[{"type":"string","description":"Image name or ID.","name":"name","in":"path","required":true},{"type":"string","description":"The tag to associate with the image on the registry.","name":"tag","in":"query"},{"type":"string","description":"A base64-encoded auth configuration. [See the authentication section for details.](#section/Authentication)","name":"X-Registry-Auth","in":"header","required":true}],"responses":{"200":{"description":"No error"},"404":{"description":"No such image","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/images/{name}/tag":{"post":{"description":"Tag an image so that it becomes part of a repository.","tags":["Image"],"summary":"Tag an image","operationId":"ImageTag","parameters":[{"type":"string","description":"Image name or ID to tag.","name":"name","in":"path","required":true},{"type":"string","description":"The repository to tag in. For example, `someuser/someimage`.","name":"repo","in":"query"},{"type":"string","description":"The name of the new tag.","name":"tag","in":"query"}],"responses":{"201":{"description":"No error"},"400":{"description":"Bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"No such image","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"Conflict","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/info":{"get":{"description":"UCP returns a combination of info about the swarm, including:\n\n- Swarm manager status\n\n- Swarm scheduler strategy\n\n- Swarm-manager endpoints that are useful for administrator access when troubleshooting\n\n- Engine proxy endpoints for each node in the swarm that are useful for troubleshooting\n\n- Plugins present on the current manager node\n\n- Engine information for the current manager node","produces":["application/json"],"tags":["System"],"summary":"Get system information","operationId":"SystemInfo","responses":{"200":{"description":"No error","schema":{"type":"object","properties":{"Architecture":{"type":"string"},"Containers":{"type":"integer"},"ContainersPaused":{"type":"integer"},"ContainersRunning":{"type":"integer"},"ContainersStopped":{"type":"integer"},"CpuCfsPeriod":{"type":"boolean"},"CpuCfsQuota":{"type":"boolean"},"Debug":{"type":"boolean"},"DiscoveryBackend":{"type":"string"},"DockerRootDir":{"type":"string"},"Driver":{"type":"string"},"DriverStatus":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"ExperimentalBuild":{"type":"boolean"},"HttpProxy":{"type":"string"},"HttpsProxy":{"type":"string"},"ID":{"type":"string"},"IPv4Forwarding":{"type":"boolean"},"Images":{"type":"integer"},"IndexServerAddress":{"type":"string"},"InitPath":{"type":"string"},"InitSha1":{"type":"string"},"KernelVersion":{"type":"string"},"Labels":{"type":"array","items":{"type":"string"}},"MemTotal":{"type":"integer"},"MemoryLimit":{"type":"boolean"},"NCPU":{"type":"integer"},"NEventsListener":{"type":"integer"},"NFd":{"type":"integer"},"NGoroutines":{"type":"integer"},"Name":{"type":"string"},"NoProxy":{"type":"string"},"OSType":{"type":"string"},"OomKillDisable":{"type":"boolean"},"OomScoreAdj":{"type":"integer"},"OperatingSystem":{"type":"string"},"Plugins":{"type":"object","properties":{"Log":{"type":"array","items":{"type":"string"}},"Network":{"type":"array","items":{"type":"string"}},"Volume":{"type":"array","items":{"type":"string"}}}},"RegistryConfig":{"type":"object","properties":{"IndexConfigs":{"type":"object","additionalProperties":{"type":"object","properties":{"Mirrors":{"type":"array","items":{"type":"string"}},"Name":{"type":"string"},"Official":{"type":"boolean"},"Secure":{"type":"boolean"}}}},"InsecureRegistryCIDRs":{"type":"array","items":{"type":"string"}}}},"ServerVersion":{"type":"string"},"SwapLimit":{"type":"boolean"},"SystemStatus":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"SystemTime":{"type":"string"}}},"examples":{"application/json":{"Architecture":"x86_64","CgroupDriver":"cgroupfs","ClusterStore":"etcd://localhost:2379","Containers":11,"ContainersPaused":1,"ContainersRunning":7,"ContainersStopped":3,"CpuCfsPeriod":true,"CpuCfsQuota":true,"Debug":false,"DockerRootDir":"/var/lib/docker","Driver":"btrfs","DriverStatus":[[""]],"ExperimentalBuild":false,"HttpProxy":"http://test:test@localhost:8080","HttpsProxy":"https://test:test@localhost:8080","ID":"7TRN:IPZB:QYBB:VPBQ:UMPP:KARE:6ZNR:XE6T:7EWV:PKF4:ZOJD:TPYS","IPv4Forwarding":true,"Images":16,"IndexServerAddress":"https://index.docker.io/v1/","InitPath":"/usr/bin/docker","InitSha1":"","KernelMemory":true,"KernelVersion":"3.12.0-1-amd64","Labels":["storage=ssd"],"MemTotal":2099236864,"MemoryLimit":true,"NCPU":1,"NEventsListener":0,"NFd":11,"NGoroutines":21,"Name":"prod-server-42","NoProxy":"9.81.1.160","OSType":"linux","OomKillDisable":true,"OperatingSystem":"Boot2Docker","Plugins":{"Network":["null","host","bridge"],"Volume":["local"]},"RegistryConfig":{"IndexConfigs":{"docker.io":{"Name":"docker.io","Official":true,"Secure":true}},"InsecureRegistryCIDRs":["127.0.0.0/8"]},"SecurityOptions":[{"Key":"Name","Value":"seccomp"},{"Key":"Profile","Value":"default"},{"Key":"Name","Value":"apparmor"},{"Key":"Name","Value":"selinux"},{"Key":"Name","Value":"userns"}],"ServerVersion":"1.9.0","SwapLimit":false,"SystemStatus":[["State","Healthy"]],"SystemTime":"2015-03-10T11:11:23.730591467-07:00"}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/kubernetesNamespaces":{"get":{"description":"Lists all namespaces for which a user has a grant","produces":["application/json"],"tags":["UCP"],"summary":"Lists all namespaces for which a user has a grant","operationId":"ListUserNamespaces","responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/v1.NamespaceList"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/v1.NamespaceList"}}}}},"/networks":{"get":{"description":"Returns a list of networks. For details on the format, see [the network inspect endpoint](#operation/NetworkInspect).\n\nNote that it uses a different, smaller representation of a network than inspecting a single network. For example,\nthe list of containers attached to the network is not propagated in API versions 1.28 and up.\n\n\nNode-specific networks, like those with bridge and third-party drivers, are prefixed with the node name.","produces":["application/json"],"tags":["Network"],"summary":"List networks","operationId":"NetworkList","parameters":[{"type":"string","description":"JSON encoded value of the filters (a `map[string][]string`) to process on the networks list. Available filters:\n\n- `driver=\u003cdriver-name\u003e` Matches a network's driver.\n- `id=\u003cnetwork-id\u003e` Matches all or part of a network ID.\n- `label=\u003ckey\u003e` or `label=\u003ckey\u003e=\u003cvalue\u003e` of a network label.\n- `name=\u003cnetwork-name\u003e` Matches all or part of a network name.\n- `scope=[\"swarm\"|\"global\"|\"local\"]` Filters networks by scope (`swarm`, `global`, or `local`).\n- `type=[\"custom\"|\"builtin\"]` Filters networks by type. The `custom` keyword returns all user-defined networks.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"array","items":{"$ref":"#/definitions/Network"}},"examples":{"application/json":[{"Attachable":false,"Created":"2016-10-19T06:21:00.416543526Z","Driver":"bridge","EnableIPv6":false,"IPAM":{"Config":[{"Subnet":"172.17.0.0/16"}],"Driver":"default"},"Id":"f2de39df4171b0dc801e8002d1d999b77256983dfc63041c0f34030aa3977566","Ingress":false,"Internal":false,"Name":"bridge","Options":{"com.docker.network.bridge.default_bridge":"true","com.docker.network.bridge.enable_icc":"true","com.docker.network.bridge.enable_ip_masquerade":"true","com.docker.network.bridge.host_binding_ipv4":"0.0.0.0","com.docker.network.bridge.name":"docker0","com.docker.network.driver.mtu":"1500"},"Scope":"local"},{"Attachable":false,"Containers":{},"Created":"0001-01-01T00:00:00Z","Driver":"null","EnableIPv6":false,"IPAM":{"Config":[],"Driver":"default"},"Id":"e086a3893b05ab69242d3c44e49483a3bbbd3a26b46baa8f61ab797c1088d794","Ingress":false,"Internal":false,"Name":"none","Options":{},"Scope":"local"},{"Attachable":false,"Containers":{},"Created":"0001-01-01T00:00:00Z","Driver":"host","EnableIPv6":false,"IPAM":{"Config":[],"Driver":"default"},"Id":"13e871235c677f196c4e1ecebb9dc733b9b2d2ab589e30c539efeda84a24215e","Ingress":false,"Internal":false,"Name":"host","Options":{},"Scope":"local"}]}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/networks/create":{"post":{"description":"If the name is prefixed with the name of a node, the `create` request is sent to the specified node. Use the '/' character to separate the node name, like `testnode/testnet`.","consumes":["application/json"],"produces":["application/json"],"tags":["Network"],"summary":"Create a network","operationId":"NetworkCreate","parameters":[{"description":"Network configuration","name":"networkConfig","in":"body","required":true,"schema":{"type":"object","required":["Name"],"properties":{"Attachable":{"description":"Globally scoped network is manually attachable by regular containers from workers in swarm mode.","type":"boolean"},"CheckDuplicate":{"description":"Check for networks with duplicate names. Since Network is primarily keyed based on a random ID and not on the name, and network name is strictly a user-friendly alias to the network which is uniquely identified using ID, there is no guaranteed way to check for duplicates. CheckDuplicate is there to provide a best effort checking of any networks which has the same name but it is not guaranteed to catch all name collisions.","type":"boolean"},"Driver":{"description":"Name of the network driver plugin to use.","type":"string","default":"bridge"},"EnableIPv6":{"description":"Enable IPv6 on the network.","type":"boolean"},"IPAM":{"description":"Optional custom IP scheme for the network.","$ref":"#/definitions/IPAM"},"Ingress":{"description":"Ingress network is the network which provides the routing-mesh in swarm mode.","type":"boolean"},"Internal":{"description":"Restrict external access to the network.","type":"boolean"},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"The network's name.","type":"string"},"Options":{"description":"Network specific options to be used by the drivers.","type":"object","additionalProperties":{"type":"string"}}},"example":{"Attachable":false,"CheckDuplicate":false,"Driver":"bridge","EnableIPv6":true,"IPAM":{"Config":[{"Gateway":"172.20.10.11","IPRange":"172.20.10.0/24","Subnet":"172.20.0.0/16"},{"Gateway":"2001:db8:abcd::1011","Subnet":"2001:db8:abcd::/64"}],"Driver":"default","Options":{"foo":"bar"}},"Ingress":false,"Internal":true,"Labels":{"com.example.some-label":"some-value","com.example.some-other-label":"some-other-value"},"Name":"isolated_nw","Options":{"com.docker.network.bridge.default_bridge":"true","com.docker.network.bridge.enable_icc":"true","com.docker.network.bridge.enable_ip_masquerade":"true","com.docker.network.bridge.host_binding_ipv4":"0.0.0.0","com.docker.network.bridge.name":"docker0","com.docker.network.driver.mtu":"1500"}}}}],"responses":{"201":{"description":"No error","schema":{"type":"object","properties":{"Id":{"description":"The ID of the created network.","type":"string"},"Warning":{"type":"string"}},"example":{"Id":"22be93d5babb089c5aab8dbc369042fad48ff791584ca2da2100db837a1c7c30","Warning":""}}},"403":{"description":"operation not supported for pre-defined networks","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"plugin not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/networks/prune":{"post":{"description":"Not supported on UCP.","produces":["application/json"],"tags":["Network"],"summary":"Delete unused networks","operationId":"NetworkPrune","parameters":[{"type":"string","description":"Filters to process on the prune list, encoded as JSON (a `map[string][]string`).\n\nAvailable filters:\n- `until=\u003ctimestamp\u003e` Prune networks created before this timestamp. The `\u003ctimestamp\u003e` can be Unix timestamps, date formatted timestamps, or Go duration strings (e.g. `10m`, `1h30m`) computed relative to the daemon machine’s time.\n- `label` (`label=\u003ckey\u003e`, `label=\u003ckey\u003e=\u003cvalue\u003e`, `label!=\u003ckey\u003e`, or `label!=\u003ckey\u003e=\u003cvalue\u003e`) Prune networks with (or without, in case `label!=...` is used) the specified labels.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"object","properties":{"NetworksDeleted":{"description":"Networks that were deleted","type":"array","items":{"type":"string"}}}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/networks/{id}":{"get":{"description":"Node-specific networks, like those with bridge and third-party drivers, are prefixed with the node name.","produces":["application/json"],"tags":["Network"],"summary":"Inspect a network","operationId":"NetworkInspect","parameters":[{"type":"string","description":"Network ID or name","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Detailed inspect output for troubleshooting","name":"verbose","in":"query"}],"responses":{"200":{"description":"No error","schema":{"$ref":"#/definitions/Network"}},"404":{"description":"Network not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"tags":["Network"],"summary":"Remove a network","operationId":"NetworkDelete","parameters":[{"type":"string","description":"Network ID or name","name":"id","in":"path","required":true}],"responses":{"204":{"description":"No error"},"403":{"description":"operation not supported for pre-defined networks","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such network","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/networks/{id}/connect":{"post":{"consumes":["application/octet-stream"],"tags":["Network"],"summary":"Connect a container to a network","operationId":"NetworkConnect","parameters":[{"type":"string","description":"Network ID or name","name":"id","in":"path","required":true},{"name":"container","in":"body","required":true,"schema":{"type":"object","properties":{"Container":{"description":"The ID or name of the container to connect to the network.","type":"string"},"EndpointConfig":{"$ref":"#/definitions/EndpointSettings"}},"example":{"Container":"3613f73ba0e4","EndpointConfig":{"IPAMConfig":{"IPv4Address":"172.24.56.89","IPv6Address":"2001:db8::5689"}}}}}],"responses":{"200":{"description":"No error"},"403":{"description":"Operation not supported for swarm scoped networks","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Network or container not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/networks/{id}/disconnect":{"post":{"consumes":["application/json"],"tags":["Network"],"summary":"Disconnect a container from a network","operationId":"NetworkDisconnect","parameters":[{"type":"string","description":"Network ID or name","name":"id","in":"path","required":true},{"name":"container","in":"body","required":true,"schema":{"type":"object","properties":{"Container":{"description":"The ID or name of the container to disconnect from the network.","type":"string"},"Force":{"description":"Force the container to disconnect from the network.","type":"boolean"}}}}],"responses":{"200":{"description":"No error"},"403":{"description":"Operation not supported for swarm scoped networks","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"Network or container not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/nodes":{"get":{"description":"UCP augments the `Status.State` based on the status of the UCP components running on the current node.","tags":["Node"],"summary":"List nodes","operationId":"NodeList","parameters":[{"type":"string","description":"Filters to process on the nodes list, encoded as JSON (a `map[string][]string`).\n\nAvailable filters:\n- `id=\u003cnode id\u003e`\n- `label=\u003cengine label\u003e`\n- `membership=`(`accepted`|`pending`)`\n- `name=\u003cnode name\u003e`\n- `role=`(`manager`|`worker`)`\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"array","items":{"$ref":"#/definitions/Node"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/nodes/{id}":{"get":{"description":"UCP augments the `Status.State` based on the status of the UCP components running on the current node.","tags":["Node"],"summary":"Inspect a node","operationId":"NodeInspect","parameters":[{"type":"string","description":"The ID or name of the node","name":"id","in":"path","required":true}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/Node"}},"404":{"description":"no such node","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"description":"If the current node is a manager, to keep the system healthy UCP attempts to unwind swarm components, like the KV store and auth store, from the node.","tags":["Node"],"summary":"Delete a node","operationId":"NodeDelete","parameters":[{"type":"string","description":"The ID or name of the node","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Force remove a node from the swarm","name":"force","in":"query"}],"responses":{"200":{"description":"no error"},"404":{"description":"no such node","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/nodes/{id}/update":{"post":{"tags":["Node"],"summary":"Update a node","operationId":"NodeUpdate","parameters":[{"type":"string","description":"The ID of the node","name":"id","in":"path","required":true},{"name":"body","in":"body","schema":{"$ref":"#/definitions/NodeSpec"}},{"type":"integer","format":"int64","description":"The version number of the node object being updated. This is required to avoid conflicting writes.","name":"version","in":"query","required":true}],"responses":{"200":{"description":"no error"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such node","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins":{"get":{"description":"Returns information about installed plugins.\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","produces":["application/json"],"tags":["Plugin"],"summary":"List plugins","operationId":"PluginList","parameters":[{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the plugin list. Available filters:\n\n- `capability=\u003ccapability name\u003e`\n- `enable=\u003ctrue\u003e|\u003cfalse\u003e`\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"array","items":{"$ref":"#/definitions/Plugin"}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/create":{"post":{"description":"\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","consumes":["application/x-tar"],"tags":["Plugin"],"summary":"Create a plugin","operationId":"PluginCreate","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"query","required":true},{"description":"Path to tar containing plugin rootfs and manifest","name":"tarContext","in":"body","schema":{"type":"string","format":"binary"}}],"responses":{"204":{"description":"no error"},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/pull":{"post":{"description":"Pulls and installs a plugin. After the plugin is installed, it can be enabled using the [`POST /plugins/{name}/enable` endpoint](#operation/PostPluginsEnable).\n\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","produces":["application/json"],"tags":["Plugin"],"summary":"Install a plugin","operationId":"PluginPull","parameters":[{"type":"string","description":"Remote reference for plugin to install.\n\nThe `:latest` tag is optional, and is used as the default if omitted.\n","name":"remote","in":"query","required":true},{"type":"string","description":"Local name for the pulled plugin.\n\nThe `:latest` tag is optional, and is used as the default if omitted.\n","name":"name","in":"query"},{"type":"string","description":"A base64-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)","name":"X-Registry-Auth","in":"header"},{"name":"body","in":"body","schema":{"type":"array","items":{"description":"Describes a permission accepted by the user upon installing the plugin.","type":"object","properties":{"Description":{"type":"string"},"Name":{"type":"string"},"Value":{"type":"array","items":{"type":"string"}}}},"example":[{"Description":"","Name":"network","Value":["host"]},{"Description":"","Name":"mount","Value":["/data"]},{"Description":"","Name":"device","Value":["/dev/cpu_dma_latency"]}]}}],"responses":{"204":{"description":"no error"},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/{name}":{"delete":{"description":"\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","tags":["Plugin"],"summary":"Remove a plugin","operationId":"PluginDelete","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"path","required":true},{"type":"boolean","default":false,"description":"Disable the plugin before removing. This may result in issues if the plugin is in use by a container.","name":"force","in":"query"}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/Plugin"}},"404":{"description":"plugin is not installed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/{name}/disable":{"post":{"description":"\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","tags":["Plugin"],"summary":"Disable a plugin","operationId":"PluginDisable","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"path","required":true}],"responses":{"200":{"description":"no error"},"404":{"description":"plugin is not installed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/{name}/enable":{"post":{"description":"\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","tags":["Plugin"],"summary":"Enable a plugin","operationId":"PluginEnable","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"path","required":true},{"type":"integer","default":0,"description":"Set the HTTP client timeout (in seconds)","name":"timeout","in":"query"}],"responses":{"200":{"description":"no error"},"404":{"description":"plugin is not installed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/{name}/push":{"post":{"description":"Push a plugin to the registry.\n\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","tags":["Plugin"],"summary":"Push a plugin","operationId":"PluginPush","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"path","required":true}],"responses":{"200":{"description":"no error"},"404":{"description":"plugin not installed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/{name}/set":{"post":{"description":"\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","consumes":["application/json"],"tags":["Plugin"],"summary":"Configure a plugin","operationId":"PluginSet","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"path","required":true},{"name":"body","in":"body","schema":{"type":"array","items":{"type":"string"},"example":["DEBUG=1"]}}],"responses":{"204":{"description":"No error"},"404":{"description":"Plugin not installed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/plugins/{name}/upgrade":{"post":{"description":"\n\nNOTE: This API endpoint does not work through the UCP API. Admins can use this API directly on each individual node's Docker daemon.","tags":["Plugin"],"summary":"Upgrade a plugin","operationId":"PluginUpgrade","parameters":[{"type":"string","description":"The name of the plugin. The `:latest` tag is optional, and is the default if omitted.","name":"name","in":"path","required":true},{"type":"string","description":"Remote reference to upgrade to.\n\nThe `:latest` tag is optional, and is used as the default if omitted.\n","name":"remote","in":"query","required":true},{"type":"string","description":"A base64-encoded auth configuration to use when pulling a plugin from a registry. [See the authentication section for details.](#section/Authentication)","name":"X-Registry-Auth","in":"header"},{"name":"body","in":"body","schema":{"type":"array","items":{"description":"Describes a permission accepted by the user upon installing the plugin.","type":"object","properties":{"Description":{"type":"string"},"Name":{"type":"string"},"Value":{"type":"array","items":{"type":"string"}}}},"example":[{"Description":"","Name":"network","Value":["host"]},{"Description":"","Name":"mount","Value":["/data"]},{"Description":"","Name":"device","Value":["/dev/cpu_dma_latency"]}]}}],"responses":{"204":{"description":"no error"},"404":{"description":"plugin not installed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/roles":{"get":{"description":"Lists all roles in the system.","produces":["application/json"],"tags":["UCP"],"summary":"Lists all roles in the system.","operationId":"ListRoles","responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/role.Role"}}},"default":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/role.Role"}}}}},"post":{"description":"Creates a new custom role","consumes":["application/json"],"tags":["UCP"],"summary":"Creates a new custom role","operationId":"CreateRole","parameters":[{"type":"role.Role","default":"","name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/role.Role"}}],"responses":{"201":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/authz.RoleCreateResponse"}}}}}},"/roles/{role}":{"get":{"description":"Retrieves a single role by ID","produces":["application/json"],"tags":["UCP"],"summary":"Retrieves a single role by ID","operationId":"GetRole","parameters":[{"type":"string","default":"","description":"Name of the role to get","name":"role","in":"path","required":true}],"responses":{"200":{"description":"Success","schema":{"$ref":"#/definitions/role.Role"}},"default":{"description":"Success","schema":{"$ref":"#/definitions/role.Role"}}}},"delete":{"description":"Deletes a role by name","produces":["application/json"],"tags":["UCP"],"summary":"Deletes a role by name","operationId":"DeleteRole","parameters":[{"type":"string","default":"","description":"Name of the role to delete","name":"role","in":"path","required":true}],"responses":{"204":{"description":"Success"}}}},"/secrets":{"get":{"produces":["application/json"],"tags":["Secret"],"summary":"List secrets","operationId":"SecretList","parameters":[{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the secrets list. Available filters:\n\n- `id=\u003csecret id\u003e`\n- `label=\u003ckey\u003e or label=\u003ckey\u003e=value`\n- `name=\u003csecret name\u003e`\n- `names=\u003csecret name\u003e`\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"array","items":{"$ref":"#/definitions/Secret"},"example":[{"CreatedAt":"2016-11-05T01:20:17.327670065Z","ID":"ktnbjxoalbkvbvedmg1urrz8h","Spec":{"Name":"app-dev.crt"},"UpdatedAt":"2016-11-05T01:20:17.327670065Z","Version":{"Index":11}}]}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/secrets/create":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["Secret"],"summary":"Create a secret","operationId":"SecretCreate","parameters":[{"name":"body","in":"body","schema":{"allOf":[{"$ref":"#/definitions/SecretSpec"},{"type":"object","example":{"Data":"VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg==","Labels":{"foo":"bar"},"Name":"app-key.crt"}}]}}],"responses":{"201":{"description":"no error","schema":{"type":"object","properties":{"ID":{"description":"The ID of the created secret.","type":"string"}},"example":{"ID":"ktnbjxoalbkvbvedmg1urrz8h"}}},"409":{"description":"name conflicts with an existing object","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/secrets/{id}":{"get":{"produces":["application/json"],"tags":["Secret"],"summary":"Inspect a secret","operationId":"SecretInspect","parameters":[{"type":"string","description":"ID of the secret","name":"id","in":"path","required":true}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/Secret"},"examples":{"application/json":{"CreatedAt":"2016-11-05T01:20:17.327670065Z","ID":"ktnbjxoalbkvbvedmg1urrz8h","Spec":{"Name":"app-dev.crt"},"UpdatedAt":"2016-11-05T01:20:17.327670065Z","Version":{"Index":11}}}},"404":{"description":"secret not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"produces":["application/json"],"tags":["Secret"],"summary":"Delete a secret","operationId":"SecretDelete","parameters":[{"type":"string","description":"ID of the secret","name":"id","in":"path","required":true}],"responses":{"204":{"description":"no error"},"404":{"description":"secret not found","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/secrets/{id}/update":{"post":{"tags":["Secret"],"summary":"Update a Secret","operationId":"SecretUpdate","parameters":[{"type":"string","description":"The ID or name of the secret","name":"id","in":"path","required":true},{"description":"The spec of the secret to update. Currently, only the Labels field can be updated. All other fields must remain unchanged from the [SecretInspect endpoint](#operation/SecretInspect) response values.","name":"body","in":"body","schema":{"$ref":"#/definitions/SecretSpec"}},{"type":"integer","format":"int64","description":"The version number of the secret object being updated. This is required to avoid conflicting writes.","name":"version","in":"query","required":true}],"responses":{"200":{"description":"no error"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such secret","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/services":{"get":{"tags":["Service"],"summary":"List services","operationId":"ServiceList","parameters":[{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the services list. Available filters:\n\n- `id=\u003cservice id\u003e`\n- `label=\u003cservice label\u003e`\n- `mode=[\"replicated\"|\"global\"]`\n- `name=\u003cservice name\u003e`\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"array","items":{"$ref":"#/definitions/Service"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/services/create":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["Service"],"summary":"Create a service","operationId":"ServiceCreate","parameters":[{"name":"body","in":"body","required":true,"schema":{"allOf":[{"$ref":"#/definitions/ServiceSpec"},{"type":"object","example":{"EndpointSpec":{"Ports":[{"Protocol":"tcp","PublishedPort":8080,"TargetPort":80}]},"Labels":{"foo":"bar"},"Mode":{"Replicated":{"Replicas":4}},"Name":"web","RollbackConfig":{"Delay":1000000000,"FailureAction":"pause","MaxFailureRatio":0.15,"Monitor":15000000000,"Parallelism":1},"TaskTemplate":{"ContainerSpec":{"DNSConfig":{"Nameservers":["8.8.8.8"],"Options":["timeout:3"],"Search":["example.org"]},"Hosts":["10.10.10.10 host1","ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 host2"],"Image":"nginx:alpine","Mounts":[{"ReadOnly":true,"Source":"web-data","Target":"/usr/share/nginx/html","Type":"volume","VolumeOptions":{"DriverConfig":{},"Labels":{"com.example.something":"something-value"}}}],"Secrets":[{"File":{"GID":"33","Mode":384,"Name":"www.example.org.key","UID":"33"},"SecretID":"fpjqlhnwb19zds35k8wn80lq9","SecretName":"example_org_domain_key"}],"User":"33"},"LogDriver":{"Name":"json-file","Options":{"max-file":"3","max-size":"10M"}},"Placement":{},"Resources":{"Limits":{"MemoryBytes":104857600},"Reservations":{}},"RestartPolicy":{"Condition":"on-failure","Delay":10000000000,"MaxAttempts":10}},"UpdateConfig":{"Delay":1000000000,"FailureAction":"pause","MaxFailureRatio":0.15,"Monitor":15000000000,"Parallelism":2}}}]}},{"type":"string","description":"A base64-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)","name":"X-Registry-Auth","in":"header"}],"responses":{"201":{"description":"no error","schema":{"type":"object","properties":{"ID":{"description":"The ID of the created service.","type":"string"},"Warning":{"description":"Optional warning message","type":"string"}},"example":{"ID":"ak7w3gjqoa3kuz8xcpnyy0pvl","Warning":"unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found"}}},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"403":{"description":"network is not eligible for services","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"name conflicts with an existing service","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/services/{id}":{"get":{"tags":["Service"],"summary":"Inspect a service","operationId":"ServiceInspect","parameters":[{"type":"string","description":"ID or name of service.","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Fill empty fields with default values.","name":"insertDefaults","in":"query"}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/Service"}},"404":{"description":"no such service","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"tags":["Service"],"summary":"Delete a service","operationId":"ServiceDelete","parameters":[{"type":"string","description":"ID or name of service.","name":"id","in":"path","required":true}],"responses":{"200":{"description":"no error"},"404":{"description":"no such service","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/services/{id}/logs":{"get":{"description":"Get `stdout` and `stderr` logs from a service.\n\n**Note**: This endpoint works only for services with the `json-file` or `journald` logging drivers.\n","produces":["application/vnd.docker.raw-stream","application/json"],"tags":["Service"],"summary":"Get service logs","operationId":"ServiceLogs","parameters":[{"type":"string","description":"ID or name of the service","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Show service context and extra details provided to logs.","name":"details","in":"query"},{"type":"boolean","default":false,"description":"Return the logs as a stream.\n\nThis will return a `101` HTTP response with a `Connection: upgrade` header, then hijack the HTTP connection to send raw output. For more information about hijacking and the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).\n","name":"follow","in":"query"},{"type":"boolean","default":false,"description":"Return logs from `stdout`","name":"stdout","in":"query"},{"type":"boolean","default":false,"description":"Return logs from `stderr`","name":"stderr","in":"query"},{"type":"integer","default":0,"description":"Only return logs since this time, as a UNIX timestamp","name":"since","in":"query"},{"type":"boolean","default":false,"description":"Add timestamps to every log line","name":"timestamps","in":"query"},{"type":"string","default":"all","description":"Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines.","name":"tail","in":"query"}],"responses":{"101":{"description":"logs returned as a stream","schema":{"type":"string","format":"binary"}},"200":{"description":"logs returned as a string in response body","schema":{"type":"string"}},"404":{"description":"no such service","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such service: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/services/{id}/update":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["Service"],"summary":"Update a service","operationId":"ServiceUpdate","parameters":[{"type":"string","description":"ID or name of service.","name":"id","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"allOf":[{"$ref":"#/definitions/ServiceSpec"},{"type":"object","example":{"EndpointSpec":{"Mode":"vip"},"Mode":{"Replicated":{"Replicas":1}},"Name":"top","RollbackConfig":{"Delay":1000000000,"FailureAction":"pause","MaxFailureRatio":0.15,"Monitor":15000000000,"Parallelism":1},"TaskTemplate":{"ContainerSpec":{"Args":["top"],"Image":"busybox"},"ForceUpdate":0,"Placement":{},"Resources":{"Limits":{},"Reservations":{}},"RestartPolicy":{"Condition":"any","MaxAttempts":0}},"UpdateConfig":{"Delay":1000000000,"FailureAction":"pause","MaxFailureRatio":0.15,"Monitor":15000000000,"Parallelism":2}}}]}},{"type":"integer","description":"The version number of the service object being updated. This is required to avoid conflicting writes.","name":"version","in":"query","required":true},{"type":"string","default":"spec","description":"If the X-Registry-Auth header is not specified, this parameter indicates where to find registry authorization credentials. The valid values are `spec` and `previous-spec`.","name":"registryAuthFrom","in":"query"},{"type":"string","description":"Set to this parameter to `previous` to cause a server-side rollback to the previous service spec. The supplied spec will be ignored in this case.","name":"rollback","in":"query"},{"type":"string","description":"A base64-encoded auth configuration for pulling from private registries. [See the authentication section for details.](#section/Authentication)","name":"X-Registry-Auth","in":"header"}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/ServiceUpdateResponse"}},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"404":{"description":"no such service","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/swarm":{"get":{"tags":["Swarm"],"summary":"Inspect swarm","operationId":"SwarmInspect","responses":{"200":{"description":"no error","schema":{"allOf":[{"$ref":"#/definitions/ClusterInfo"},{"type":"object","properties":{"JoinTokens":{"description":"The tokens workers and managers need to join the swarm.","type":"object","properties":{"Manager":{"description":"The token managers can use to join the swarm.","type":"string"},"Worker":{"description":"The token workers can use to join the swarm.","type":"string"}}}}}],"example":{"CreatedAt":"2016-08-15T16:00:20.349727406Z","ID":"70ilmkj2f6sp2137c753w2nmt","JoinTokens":{"Manager":"SWMTKN-1-1h8aps2yszaiqmz2l3oc5392pgk8e49qhx2aj3nyv0ui0hez2a-8llk83c4wm9lwioey2s316r9l","Worker":"SWMTKN-1-1h8aps2yszaiqmz2l3oc5392pgk8e49qhx2aj3nyv0ui0hez2a-6qmn92w6bu3jdvnglku58u11a"},"RootRotationInProgress":false,"Spec":{"CAConfig":{"NodeCertExpiry":7776000000000000},"Dispatcher":{"HeartbeatPeriod":5000000000},"EncryptionConfig":{"AutoLockManagers":false},"Name":"default","Orchestration":{"TaskHistoryRetentionLimit":10},"Raft":{"ElectionTick":3,"HeartbeatTick":1,"LogEntriesForSlowFollowers":500,"SnapshotInterval":10000},"TaskDefaults":{}},"TLSInfo":{"CertIssuerPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A==","CertIssuerSubject":"MBMxETAPBgNVBAMTCHN3YXJtLWNh","TrustRoot":"-----BEGIN CERTIFICATE-----\nMIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw\nEzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0\nMzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH\nA0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf\n3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB\nAf8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO\nPQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz\npxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H\n-----END CERTIFICATE-----\n"},"UpdatedAt":"2016-08-15T16:32:09.623207604Z","Version":{"Index":51}}}},"404":{"description":"no such swarm","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/swarm/init":{"post":{"produces":["application/json","text/plain"],"tags":["Swarm"],"summary":"Initialize a new swarm","operationId":"SwarmInit","parameters":[{"name":"body","in":"body","required":true,"schema":{"type":"object","properties":{"AdvertiseAddr":{"description":"Externally reachable address advertised to other nodes. This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the port number from the listen address is used. If `AdvertiseAddr` is not specified, it will be automatically detected when possible.","type":"string"},"DataPathAddr":{"description":"Address or interface to use for data path traffic (format: `\u003cip|interface\u003e`), for example, `192.168.1.1`,\nor an interface, like `eth0`. If `DataPathAddr` is unspecified, the same address as `AdvertiseAddr`\nis used.\n\nThe `DataPathAddr` specifies the address that global scope network drivers will publish towards other\nnodes in order to reach the containers running on this node. Using this parameter it is possible to\nseparate the container data traffic from the management traffic of the cluster.\n","type":"string"},"ForceNewCluster":{"description":"Force creation of a new swarm.","type":"boolean"},"ListenAddr":{"description":"Listen address used for inter-manager communication, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP). This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the default swarm listening port is used.","type":"string"},"Spec":{"$ref":"#/definitions/SwarmSpec"}},"example":{"AdvertiseAddr":"192.168.1.1:2377","ForceNewCluster":false,"ListenAddr":"0.0.0.0:2377","Spec":{"CAConfig":{},"Dispatcher":{},"EncryptionConfig":{"AutoLockManagers":false},"Orchestration":{},"Raft":{}}}}}],"responses":{"200":{"description":"no error","schema":{"description":"The node ID","type":"string","example":"7v2t30z9blmxuhnyo6s4cpenp"}},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is already part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/swarm/join":{"post":{"tags":["Swarm"],"summary":"Join an existing swarm","operationId":"SwarmJoin","parameters":[{"name":"body","in":"body","required":true,"schema":{"type":"object","properties":{"AdvertiseAddr":{"description":"Externally reachable address advertised to other nodes. This can either be an address/port combination in the form `192.168.1.1:4567`, or an interface followed by a port number, like `eth0:4567`. If the port number is omitted, the port number from the listen address is used. If `AdvertiseAddr` is not specified, it will be automatically detected when possible.","type":"string"},"DataPathAddr":{"description":"Address or interface to use for data path traffic (format: `\u003cip|interface\u003e`), for example, `192.168.1.1`,\nor an interface, like `eth0`. If `DataPathAddr` is unspecified, the same address as `AdvertiseAddr`\nis used.\n\nThe `DataPathAddr` specifies the address that global scope network drivers will publish towards other\nnodes in order to reach the containers running on this node. Using this parameter it is possible to\nseparate the container data traffic from the management traffic of the cluster.\n","type":"string"},"JoinToken":{"description":"Secret token for joining this swarm.","type":"string"},"ListenAddr":{"description":"Listen address used for inter-manager communication if the node gets promoted to manager, as well as determining the networking interface used for the VXLAN Tunnel Endpoint (VTEP).","type":"string"},"RemoteAddrs":{"description":"Addresses of manager nodes already participating in the swarm.","type":"string"}},"example":{"AdvertiseAddr":"192.168.1.1:2377","JoinToken":"SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2","ListenAddr":"0.0.0.0:2377","RemoteAddrs":["node1:2377"]}}}],"responses":{"200":{"description":"no error"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is already part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/swarm/leave":{"post":{"tags":["Swarm"],"summary":"Leave a swarm","operationId":"SwarmLeave","parameters":[{"type":"boolean","default":false,"description":"Force leave swarm, even if this is the last manager or that it will break the cluster.","name":"force","in":"query"}],"responses":{"200":{"description":"no error"},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/swarm/update":{"post":{"tags":["Swarm"],"summary":"Update a swarm","operationId":"SwarmUpdate","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/SwarmSpec"}},{"type":"integer","format":"int64","description":"The version number of the swarm object being updated. This is required to avoid conflicting writes.","name":"version","in":"query","required":true},{"type":"boolean","default":false,"description":"Rotate the worker join token.","name":"rotateWorkerToken","in":"query"},{"type":"boolean","default":false,"description":"Rotate the manager join token.","name":"rotateManagerToken","in":"query"},{"type":"boolean","default":false,"description":"Rotate the manager unlock key.","name":"rotateManagerUnlockKey","in":"query"}],"responses":{"200":{"description":"no error"},"400":{"description":"bad parameter","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/tasks":{"get":{"produces":["application/json"],"tags":["Task"],"summary":"List tasks","operationId":"TaskList","parameters":[{"type":"string","description":"A JSON encoded value of the filters (a `map[string][]string`) to process on the tasks list. Available filters:\n\n- `desired-state=(running | shutdown | accepted)`\n- `id=\u003ctask id\u003e`\n- `label=key` or `label=\"key=value\"`\n- `name=\u003ctask name\u003e`\n- `node=\u003cnode id or name\u003e`\n- `service=\u003cservice name\u003e`\n","name":"filters","in":"query"}],"responses":{"200":{"description":"no error","schema":{"type":"array","items":{"$ref":"#/definitions/Task"},"example":[{"CreatedAt":"2016-06-07T21:07:31.171892745Z","DesiredState":"running","ID":"0kzzo1i0y4jz6027t0k7aezc7","NetworksAttachments":[{"Addresses":["10.255.0.10/16"],"Network":{"CreatedAt":"2016-06-07T20:31:11.912919752Z","DriverState":{"Name":"overlay","Options":{"com.docker.network.driver.overlay.vxlanid_list":"256"}},"ID":"4qvuz4ko70xaltuqbt8956gd1","IPAMOptions":{"Configs":[{"Gateway":"10.255.0.1","Subnet":"10.255.0.0/16"}],"Driver":{"Name":"default"}},"Spec":{"DriverConfiguration":{},"IPAMOptions":{"Configs":[{"Gateway":"10.255.0.1","Subnet":"10.255.0.0/16"}],"Driver":{}},"Labels":{"com.docker.swarm.internal":"true"},"Name":"ingress"},"UpdatedAt":"2016-06-07T21:07:29.955277358Z","Version":{"Index":18}}}],"NodeID":"60gvrl6tm78dmak4yl7srz94v","ServiceID":"9mnpnzenvg8p8tdbtq4wvbkcz","Slot":1,"Spec":{"ContainerSpec":{"Image":"redis"},"Placement":{},"Resources":{"Limits":{},"Reservations":{}},"RestartPolicy":{"Condition":"any","MaxAttempts":0}},"Status":{"ContainerStatus":{"ContainerID":"e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035","PID":677},"Message":"started","State":"running","Timestamp":"2016-06-07T21:07:31.290032978Z"},"UpdatedAt":"2016-06-07T21:07:31.376370513Z","Version":{"Index":71}},{"CreatedAt":"2016-06-07T21:07:30.019104782Z","DesiredState":"shutdown","ID":"1yljwbmlr8er2waf8orvqpwms","Name":"hopeful_cori","NetworksAttachments":[{"Addresses":["10.255.0.5/16"],"Network":{"CreatedAt":"2016-06-07T20:31:11.912919752Z","DriverState":{"Name":"overlay","Options":{"com.docker.network.driver.overlay.vxlanid_list":"256"}},"ID":"4qvuz4ko70xaltuqbt8956gd1","IPAMOptions":{"Configs":[{"Gateway":"10.255.0.1","Subnet":"10.255.0.0/16"}],"Driver":{"Name":"default"}},"Spec":{"DriverConfiguration":{},"IPAMOptions":{"Configs":[{"Gateway":"10.255.0.1","Subnet":"10.255.0.0/16"}],"Driver":{}},"Labels":{"com.docker.swarm.internal":"true"},"Name":"ingress"},"UpdatedAt":"2016-06-07T21:07:29.955277358Z","Version":{"Index":18}}}],"NodeID":"60gvrl6tm78dmak4yl7srz94v","ServiceID":"9mnpnzenvg8p8tdbtq4wvbkcz","Slot":1,"Spec":{"ContainerSpec":{"Image":"redis"},"Placement":{},"Resources":{"Limits":{},"Reservations":{}},"RestartPolicy":{"Condition":"any","MaxAttempts":0}},"Status":{"ContainerStatus":{"ContainerID":"1cf8d63d18e79668b0004a4be4c6ee58cddfad2dae29506d8781581d0688a213"},"Message":"shutdown","State":"shutdown","Timestamp":"2016-06-07T21:07:30.202183143Z"},"UpdatedAt":"2016-06-07T21:07:30.231958098Z","Version":{"Index":30}}]}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/tasks/{id}":{"get":{"produces":["application/json"],"tags":["Task"],"summary":"Inspect a task","operationId":"TaskInspect","parameters":[{"type":"string","description":"ID of the task","name":"id","in":"path","required":true}],"responses":{"200":{"description":"no error","schema":{"$ref":"#/definitions/Task"}},"404":{"description":"no such task","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/tasks/{id}/logs":{"get":{"description":"Get `stdout` and `stderr` logs from a task.\n\n**Note**: This endpoint works only for services with the `json-file` or `journald` logging drivers.\n","produces":["application/vnd.docker.raw-stream","application/json"],"tags":["UCP"],"summary":"Get task logs","operationId":"TaskLogs","parameters":[{"type":"string","description":"ID of the task","name":"id","in":"path","required":true},{"type":"boolean","default":false,"description":"Show task context and extra details provided to logs.","name":"details","in":"query"},{"type":"boolean","default":false,"description":"Return the logs as a stream.\n\nThis will return a `101` HTTP response with a `Connection: upgrade` header, then hijack the HTTP connection to send raw output. For more information about hijacking and the stream format, [see the documentation for the attach endpoint](#operation/ContainerAttach).\n","name":"follow","in":"query"},{"type":"boolean","default":false,"description":"Return logs from `stdout`","name":"stdout","in":"query"},{"type":"boolean","default":false,"description":"Return logs from `stderr`","name":"stderr","in":"query"},{"type":"integer","default":0,"description":"Only return logs since this time, as a UNIX timestamp","name":"since","in":"query"},{"type":"boolean","default":false,"description":"Add timestamps to every log line","name":"timestamps","in":"query"},{"type":"string","default":"all","description":"Only return this number of log lines from the end of the logs. Specify as an integer or `all` to output all log lines.","name":"tail","in":"query"}],"responses":{"101":{"description":"logs returned as a stream","schema":{"type":"string","format":"binary"}},"200":{"description":"logs returned as a string in response body","schema":{"type":"string"}},"404":{"description":"no such task","schema":{"$ref":"#/definitions/ErrorResponse"},"examples":{"application/json":{"message":"No such task: c2ada9df5af8"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}},"503":{"description":"node is not part of a swarm","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/totalRole":{"get":{"description":"Returns a role with all operations that a user can perform against at least one collection in the system.","produces":["application/json"],"tags":["UCP"],"summary":"Returns a role with all operations that a user can perform against at least one collection in the system.","operationId":"TotalRole","responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/role.Role"}}},"default":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/role.Role"}}}}}},"/version":{"get":{"description":"Returns the version of Docker that is running and various information about the system that Docker is running on.","produces":["application/json"],"tags":["System"],"summary":"Get version","operationId":"SystemVersion","responses":{"200":{"description":"no error","schema":{"type":"object","properties":{"ApiVersion":{"type":"string"},"Arch":{"type":"string"},"BuildTime":{"type":"string"},"Experimental":{"type":"boolean"},"GitCommit":{"type":"string"},"GoVersion":{"type":"string"},"KernelVersion":{"type":"string"},"MinAPIVersion":{"type":"string"},"Os":{"type":"string"},"Version":{"type":"string"}}},"examples":{"application/json":{"ApiVersion":"1.27","Arch":"amd64","BuildTime":"2016-06-14T07:09:13.444803460+00:00","Experimental":true,"GitCommit":"deadbee","GoVersion":"go1.7.5","KernelVersion":"3.19.0-23-generic","MinAPIVersion":"1.12","Os":"linux","Version":"17.04.0"}}},"500":{"description":"server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/volumes":{"get":{"description":"If the name is prefixed with the name of a node, the request is sent to the specified node. Use the '/' character to distinguish the node name, like `testnode/testvolume`.","produces":["application/json"],"tags":["Volume"],"summary":"List volumes","operationId":"VolumeList","parameters":[{"type":"string","format":"json","description":"JSON encoded value of the filters (a `map[string][]string`) to\nprocess on the volumes list. Available filters:\n\n- `dangling=\u003cboolean\u003e` When set to `true` (or `1`), returns all\n volumes that are not in use by a container. When set to `false`\n (or `0`), only volumes that are in use by one or more\n containers are returned.\n- `driver=\u003cvolume-driver-name\u003e` Matches volumes based on their driver.\n- `label=\u003ckey\u003e` or `label=\u003ckey\u003e:\u003cvalue\u003e` Matches volumes based on\n the presence of a `label` alone or a `label` and a value.\n- `name=\u003cvolume-name\u003e` Matches all or part of a volume name.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"Summary volume data that matches the query","schema":{"type":"object","required":["Volumes","Warnings"],"properties":{"Volumes":{"description":"List of volumes","type":"array","items":{"$ref":"#/definitions/Volume"},"x-nullable":false},"Warnings":{"description":"Warnings that occurred when fetching the list of volumes","type":"array","items":{"type":"string"},"x-nullable":false}}},"examples":{"application/json":{"Volumes":[{"Driver":"local","Labels":{"com.example.some-label":"some-value","com.example.some-other-label":"some-other-value"},"Mountpoint":"/var/lib/docker/volumes/tardis","Name":"tardis","Options":{"device":"tmpfs","o":"size=100m,uid=1000","type":"tmpfs"},"Scope":"local"}],"Warnings":[]}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/volumes/create":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["Volume"],"summary":"Create a volume","operationId":"VolumeCreate","parameters":[{"description":"Volume configuration","name":"volumeConfig","in":"body","required":true,"schema":{"type":"object","properties":{"Driver":{"description":"Name of the volume driver to use.","type":"string","default":"local","x-nullable":false},"DriverOpts":{"description":"A mapping of driver options and values. These options are passed directly to the driver and are driver specific.","type":"object","additionalProperties":{"type":"string"}},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"The new volume's name. If not specified, Docker generates a name.","type":"string","x-nullable":false}},"example":{"Driver":"custom","Labels":{"com.example.some-label":"some-value","com.example.some-other-label":"some-other-value"},"Name":"tardis"}}}],"responses":{"201":{"description":"The volume was created successfully","schema":{"$ref":"#/definitions/Volume"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/volumes/prune":{"post":{"produces":["application/json"],"tags":["Volume"],"summary":"Delete unused volumes","operationId":"VolumePrune","parameters":[{"type":"string","description":"Filters to process on the prune list, encoded as JSON (a `map[string][]string`).\n\nAvailable filters:\n- `label` (`label=\u003ckey\u003e`, `label=\u003ckey\u003e=\u003cvalue\u003e`, `label!=\u003ckey\u003e`, or `label!=\u003ckey\u003e=\u003cvalue\u003e`) Prune volumes with (or without, in case `label!=...` is used) the specified labels.\n","name":"filters","in":"query"}],"responses":{"200":{"description":"No error","schema":{"type":"object","properties":{"SpaceReclaimed":{"description":"Disk space reclaimed in bytes","type":"integer","format":"int64"},"VolumesDeleted":{"description":"Volumes that were deleted","type":"array","items":{"type":"string"}}}}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}},"/volumes/{name}":{"get":{"description":"If the name is prefixed with the name of a node, the request is sent to the specified node. Use the '/' character to distinguish the node name, like `testnode/testvolume`.","produces":["application/json"],"tags":["Volume"],"summary":"Inspect a volume","operationId":"VolumeInspect","parameters":[{"type":"string","description":"Volume name or ID","name":"name","in":"path","required":true}],"responses":{"200":{"description":"No error","schema":{"$ref":"#/definitions/Volume"}},"404":{"description":"No such volume","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}},"delete":{"description":"Instruct the driver to remove the volume.","tags":["Volume"],"summary":"Remove a volume","operationId":"VolumeDelete","parameters":[{"type":"string","description":"Volume name or ID","name":"name","in":"path","required":true},{"type":"boolean","default":false,"description":"Force the removal of the volume","name":"force","in":"query"}],"responses":{"204":{"description":"The volume was removed"},"404":{"description":"No such volume or volume driver","schema":{"$ref":"#/definitions/ErrorResponse"}},"409":{"description":"Volume is in use and cannot be removed","schema":{"$ref":"#/definitions/ErrorResponse"}},"500":{"description":"Server error","schema":{"$ref":"#/definitions/ErrorResponse"}}}}}},"definitions":{"AuthConfig":{"type":"object","properties":{"email":{"type":"string"},"password":{"type":"string"},"serveraddress":{"type":"string"},"username":{"type":"string"}},"example":{"password":"xxxx","serveraddress":"https://index.docker.io/v1/","username":"hannibal"}},"BuildInfo":{"type":"object","properties":{"error":{"type":"string"},"errorDetail":{"$ref":"#/definitions/ErrorDetail"},"id":{"type":"string"},"progress":{"type":"string"},"progressDetail":{"$ref":"#/definitions/ProgressDetail"},"status":{"type":"string"},"stream":{"type":"string"}}},"ClusterInfo":{"type":"object","properties":{"CreatedAt":{"type":"string","format":"dateTime"},"ID":{"description":"The ID of the swarm.","type":"string"},"RootRotationInProgress":{"description":"Whether there is currently a root CA rotation in progress for the swarm","type":"boolean"},"Spec":{"$ref":"#/definitions/SwarmSpec"},"TLSInfo":{"$ref":"#/definitions/TLSInfo"},"UpdatedAt":{"type":"string","format":"dateTime"},"Version":{"$ref":"#/definitions/ObjectVersion"}}},"Config":{"type":"object","properties":{"CreatedAt":{"type":"string","format":"dateTime"},"ID":{"type":"string"},"Spec":{"$ref":"#/definitions/ConfigSpec"},"UpdatedAt":{"type":"string","format":"dateTime"},"Version":{"$ref":"#/definitions/ObjectVersion"}}},"ConfigSpec":{"type":"object","properties":{"Data":{"description":"Base64-url-safe-encoded config data","type":"array","items":{"type":"string"}},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"User-defined name of the config.","type":"string"}}},"ContainerConfig":{"description":"Configuration for a container that is portable between hosts","type":"object","properties":{"ArgsEscaped":{"description":"Command is already escaped (Windows only)","type":"boolean"},"AttachStderr":{"description":"Whether to attach to `stderr`.","type":"boolean","default":true},"AttachStdin":{"description":"Whether to attach to `stdin`.","type":"boolean","default":false},"AttachStdout":{"description":"Whether to attach to `stdout`.","type":"boolean","default":true},"Cmd":{"description":"Command to run specified as a string or an array of strings.","type":["array","string"],"items":{"type":"string"}},"Domainname":{"description":"The domain name to use for the container.","type":"string"},"Entrypoint":{"description":"The entry point for the container as a string or an array of strings.\n\nIf the array consists of exactly one empty string (`[\"\"]`) then the entry point is reset to system default (i.e., the entry point used by docker when there is no `ENTRYPOINT` instruction in the `Dockerfile`).\n","type":["array","string"],"items":{"type":"string"}},"Env":{"description":"A list of environment variables to set inside the container in the form `[\"VAR=value\", ...]`. A variable without `=` is removed from the environment, rather than to have an empty value.\n","type":"array","items":{"type":"string"}},"ExposedPorts":{"description":"An object mapping ports to an empty object in the form:\n\n`{\"\u003cport\u003e/\u003ctcp|udp\u003e\": {}}`\n","type":"object","additionalProperties":{"type":"object","default":{},"enum":[{}]}},"Healthcheck":{"$ref":"#/definitions/HealthConfig"},"Hostname":{"description":"The hostname to use for the container, as a valid RFC 1123 hostname.","type":"string"},"Image":{"description":"The name of the image to use when creating the container","type":"string"},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"MacAddress":{"description":"MAC address of the container.","type":"string"},"NetworkDisabled":{"description":"Disable networking for the container.","type":"boolean"},"OnBuild":{"description":"`ONBUILD` metadata that were defined in the image's `Dockerfile`.","type":"array","items":{"type":"string"}},"OpenStdin":{"description":"Open `stdin`","type":"boolean","default":false},"Shell":{"description":"Shell for when `RUN`, `CMD`, and `ENTRYPOINT` uses a shell.","type":"array","items":{"type":"string"}},"StdinOnce":{"description":"Close `stdin` after one attached client disconnects","type":"boolean","default":false},"StopSignal":{"description":"Signal to stop a container as a string or unsigned integer.","type":"string","default":"SIGTERM"},"StopTimeout":{"description":"Timeout to stop a container in seconds.","type":"integer","default":10},"Tty":{"description":"Attach standard streams to a TTY, including `stdin` if it is not closed.","type":"boolean","default":false},"User":{"description":"The user that commands are run as inside the container.","type":"string"},"Volumes":{"description":"An object mapping mount point paths inside the container to empty objects.","type":"object","properties":{"additionalProperties":{"type":"object","default":{},"enum":[{}]}}},"WorkingDir":{"description":"The working directory for commands to run in.","type":"string"}}},"ContainerSummary":{"type":"array","items":{"type":"object","properties":{"Command":{"description":"Command to run when starting the container","type":"string"},"Created":{"description":"When the container was created","type":"integer","format":"int64"},"HostConfig":{"type":"object","properties":{"NetworkMode":{"type":"string"}}},"Id":{"description":"The ID of this container","type":"string","x-go-name":"ID"},"Image":{"description":"The name of the image used when creating this container","type":"string"},"ImageID":{"description":"The ID of the image that this container was created from","type":"string"},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Mounts":{"type":"array","items":{"$ref":"#/definitions/Mount"}},"Names":{"description":"The names that this container has been given","type":"array","items":{"type":"string"}},"NetworkSettings":{"description":"A summary of the container's network settings","type":"object","properties":{"Networks":{"type":"object","additionalProperties":{"$ref":"#/definitions/EndpointSettings"}}}},"Ports":{"description":"The ports exposed by this container","type":"array","items":{"$ref":"#/definitions/Port"}},"SizeRootFs":{"description":"The total size of all the files in this container","type":"integer","format":"int64"},"SizeRw":{"description":"The size of files that have been created or changed by this container","type":"integer","format":"int64"},"State":{"description":"The state of this container (e.g. `Exited`)","type":"string"},"Status":{"description":"Additional human-readable status of this container (e.g. `Exit 0`)","type":"string"}}}},"CreateImageInfo":{"type":"object","properties":{"error":{"type":"string"},"progress":{"type":"string"},"progressDetail":{"$ref":"#/definitions/ProgressDetail"},"status":{"type":"string"}}},"DeviceMapping":{"description":"A device mapping between the host and container","type":"object","properties":{"CgroupPermissions":{"type":"string"},"PathInContainer":{"type":"string"},"PathOnHost":{"type":"string"}},"example":{"CgroupPermissions":"mrw","PathInContainer":"/dev/deviceName","PathOnHost":"/dev/deviceName"}},"EndpointPortConfig":{"type":"object","properties":{"Name":{"type":"string"},"Protocol":{"type":"string","enum":["tcp","udp"]},"PublishedPort":{"description":"The port on the swarm hosts.","type":"integer"},"TargetPort":{"description":"The port inside the container.","type":"integer"}}},"EndpointSettings":{"description":"Configuration for a network endpoint.","type":"object","properties":{"Aliases":{"type":"array","items":{"type":"string"}},"EndpointID":{"type":"string"},"Gateway":{"type":"string"},"GlobalIPv6Address":{"type":"string"},"GlobalIPv6PrefixLen":{"type":"integer","format":"int64"},"IPAMConfig":{"description":"IPAM configurations for the endpoint","type":"object","properties":{"IPv4Address":{"type":"string"},"IPv6Address":{"type":"string"},"LinkLocalIPs":{"type":"array","items":{"type":"string"}}}},"IPAddress":{"type":"string"},"IPPrefixLen":{"type":"integer"},"IPv6Gateway":{"type":"string"},"Links":{"type":"array","items":{"type":"string"}},"MacAddress":{"type":"string"},"NetworkID":{"type":"string"}}},"EndpointSpec":{"description":"Properties that can be configured to access and load balance a service.","type":"object","properties":{"Mode":{"description":"The mode of resolution to use for internal load balancing between tasks.","type":"string","default":"vip","enum":["vip","dnsrr"]},"Ports":{"description":"List of exposed ports that this service is accessible on from the outside. Ports can only be provided if `vip` resolution mode is used.","type":"array","items":{"$ref":"#/definitions/EndpointPortConfig"}}}},"ErrorDetail":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}},"ErrorResponse":{"description":"Represents an error.","type":"object","required":["message"],"properties":{"message":{"description":"The error message.","type":"string","x-nullable":false}},"example":{"message":"Something went wrong."}},"GraphDriverData":{"description":"Information about a container's graph driver.","type":"object","required":["Name","Data"],"properties":{"Data":{"type":"object","additionalProperties":{"type":"string"},"x-nullable":false},"Name":{"type":"string","x-nullable":false}}},"HealthConfig":{"description":"A test to perform to check that the container is healthy.","type":"object","properties":{"Interval":{"description":"The time to wait between checks in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means inherit.","type":"integer"},"Retries":{"description":"The number of consecutive failures needed to consider a container as unhealthy. 0 means inherit.","type":"integer"},"StartPeriod":{"description":"Start period for the container to initialize before starting health-retries countdown in nanoseconds. It should be 0 or at least 1000000 (1 ms). 0 means inherit.","type":"integer"},"Test":{"description":"The test to perform. Possible values are:\n\n- `[]` inherit healthcheck from image or parent image\n- `[\"NONE\"]` disable healthcheck\n- `[\"CMD\", args...]` exec arguments directly\n- `[\"CMD-SHELL\", command]` run command with system's default shell\n","type":"array","items":{"type":"string"}},"Timeout":{"description":"The time to wait before considering the check to have hung. It should be 0 or at least 1000000 (1 ms). 0 means inherit.","type":"integer"}}},"HostConfig":{"description":"Container configuration that depends on the host we are running on","allOf":[{"$ref":"#/definitions/Resources"},{"type":"object","properties":{"AutoRemove":{"description":"Automatically remove the container when the container's process exits. This has no effect if `RestartPolicy` is set.","type":"boolean"},"Binds":{"description":"A list of volume bindings for this container. Each volume binding is a string in one of these forms:\n\n- `host-src:container-dest` to bind-mount a host path into the container. Both `host-src`, and `container-dest` must be an _absolute_ path.\n- `host-src:container-dest:ro` to make the bind-mount read-only inside the container. Both `host-src`, and `container-dest` must be an _absolute_ path.\n- `volume-name:container-dest` to bind-mount a volume managed by a volume driver into the container. `container-dest` must be an _absolute_ path.\n- `volume-name:container-dest:ro` to mount the volume read-only inside the container. `container-dest` must be an _absolute_ path.\n","type":"array","items":{"type":"string"}},"CapAdd":{"description":"A list of kernel capabilities to add to the container.","type":"array","items":{"type":"string"}},"CapDrop":{"description":"A list of kernel capabilities to drop from the container.","type":"array","items":{"type":"string"}},"Cgroup":{"description":"Cgroup to use for the container.","type":"string"},"ConsoleSize":{"description":"Initial console size, as an `[height, width]` array. (Windows only)","type":"array","maxItems":2,"minItems":2,"items":{"type":"integer","minimum":0}},"ContainerIDFile":{"description":"Path to a file where the container ID is written","type":"string"},"Dns":{"description":"A list of DNS servers for the container to use.","type":"array","items":{"type":"string"}},"DnsOptions":{"description":"A list of DNS options.","type":"array","items":{"type":"string"}},"DnsSearch":{"description":"A list of DNS search domains.","type":"array","items":{"type":"string"}},"ExtraHosts":{"description":"A list of hostnames/IP mappings to add to the container's `/etc/hosts` file. Specified in the form `[\"hostname:IP\"]`.\n","type":"array","items":{"type":"string"}},"GroupAdd":{"description":"A list of additional groups that the container process will run as.","type":"array","items":{"type":"string"}},"IpcMode":{"description":"IPC namespace to use for the container.","type":"string"},"Isolation":{"description":"Isolation technology of the container. (Windows only)","type":"string","enum":["default","process","hyperv"]},"Links":{"description":"A list of links for the container in the form `container_name:alias`.","type":"array","items":{"type":"string"}},"LogConfig":{"description":"The logging configuration for this container","type":"object","properties":{"Config":{"type":"object","additionalProperties":{"type":"string"}},"Type":{"type":"string","enum":["json-file","syslog","journald","gelf","fluentd","awslogs","splunk","etwlogs","none"]}}},"Mounts":{"description":"Specification for mounts to be added to the container.","type":"array","items":{"$ref":"#/definitions/Mount"}},"NetworkMode":{"description":"Network mode to use for this container. Supported standard values are: `bridge`, `host`, `none`, and `container:\u003cname|id\u003e`. Any other value is taken as a custom network's name to which this container should connect to.","type":"string"},"OomScoreAdj":{"description":"An integer value containing the score given to the container in order to tune OOM killer preferences.","type":"integer"},"PidMode":{"description":"Set the PID (Process) Namespace mode for the container. It can be either:\n\n- `\"container:\u003cname|id\u003e\"`: joins another container's PID namespace\n- `\"host\"`: use the host's PID namespace inside the container\n","type":"string"},"PortBindings":{"description":"A map of exposed container ports and the host port they should map to.","type":"object","additionalProperties":{"type":"object","properties":{"HostIp":{"description":"The host IP address","type":"string"},"HostPort":{"description":"The host port number, as a string","type":"string"}}}},"Privileged":{"description":"Gives the container full access to the host.","type":"boolean"},"PublishAllPorts":{"description":"Allocates a random host port for all of a container's exposed ports.","type":"boolean"},"ReadonlyRootfs":{"description":"Mount the container's root filesystem as read only.","type":"boolean"},"RestartPolicy":{"$ref":"#/definitions/RestartPolicy"},"Runtime":{"description":"Runtime to use with this container.","type":"string"},"SecurityOpt":{"description":"A list of string values to customize labels for MLS systems, such as SELinux.","type":"array","items":{"type":"string"}},"ShmSize":{"description":"Size of `/dev/shm` in bytes. If omitted, the system uses 64MB.","type":"integer","minimum":0},"StorageOpt":{"description":"Storage driver options for this container, in the form `{\"size\": \"120G\"}`.\n","type":"object","additionalProperties":{"type":"string"}},"Sysctls":{"description":"A list of kernel parameters (sysctls) to set in the container. For example: `{\"net.ipv4.ip_forward\": \"1\"}`\n","type":"object","additionalProperties":{"type":"string"}},"Tmpfs":{"description":"A map of container directories which should be replaced by tmpfs mounts, and their corresponding mount options. For example: `{ \"/run\": \"rw,noexec,nosuid,size=65536k\" }`.\n","type":"object","additionalProperties":{"type":"string"}},"UTSMode":{"description":"UTS namespace to use for the container.","type":"string"},"UsernsMode":{"description":"Sets the usernamespace mode for the container when usernamespace remapping option is enabled.","type":"string"},"VolumeDriver":{"description":"Driver that this container uses to mount volumes.","type":"string"},"VolumesFrom":{"description":"A list of volumes to inherit from another container, specified in the form `\u003ccontainer name\u003e[:\u003cro|rw\u003e]`.","type":"array","items":{"type":"string"}}}}]},"IPAM":{"type":"object","properties":{"Config":{"description":"List of IPAM configuration options, specified as a map: `{\"Subnet\": \u003cCIDR\u003e, \"IPRange\": \u003cCIDR\u003e, \"Gateway\": \u003cIP address\u003e, \"AuxAddress\": \u003cdevice_name:IP address\u003e}`","type":"array","items":{"type":"object","additionalProperties":{"type":"string"}}},"Driver":{"description":"Name of the IPAM driver to use.","type":"string","default":"default"},"Options":{"description":"Driver-specific options, specified as a map.","type":"array","items":{"type":"object","additionalProperties":{"type":"string"}}}}},"IdResponse":{"description":"Response to an API call that returns just an Id","type":"object","required":["Id"],"properties":{"Id":{"description":"The id of the newly created object.","type":"string","x-nullable":false}}},"Image":{"type":"object","required":["Id","Parent","Comment","Created","Container","DockerVersion","Author","Architecture","Os","Size","VirtualSize","GraphDriver","RootFS"],"properties":{"Architecture":{"type":"string","x-nullable":false},"Author":{"type":"string","x-nullable":false},"Comment":{"type":"string","x-nullable":false},"Config":{"$ref":"#/definitions/ContainerConfig"},"Container":{"type":"string","x-nullable":false},"ContainerConfig":{"$ref":"#/definitions/ContainerConfig"},"Created":{"type":"string","x-nullable":false},"DockerVersion":{"type":"string","x-nullable":false},"GraphDriver":{"$ref":"#/definitions/GraphDriverData"},"Id":{"type":"string","x-nullable":false},"Os":{"type":"string","x-nullable":false},"OsVersion":{"type":"string"},"Parent":{"type":"string","x-nullable":false},"RepoDigests":{"type":"array","items":{"type":"string"}},"RepoTags":{"type":"array","items":{"type":"string"}},"RootFS":{"type":"object","required":["Type"],"properties":{"BaseLayer":{"type":"string"},"Layers":{"type":"array","items":{"type":"string"}},"Type":{"type":"string","x-nullable":false}}},"Size":{"type":"integer","format":"int64","x-nullable":false},"VirtualSize":{"type":"integer","format":"int64","x-nullable":false}}},"ImageDeleteResponseItem":{"type":"object","properties":{"Deleted":{"description":"The image ID of an image that was deleted","type":"string"},"Untagged":{"description":"The image ID of an image that was untagged","type":"string"}}},"ImageSummary":{"type":"object","required":["Id","ParentId","RepoTags","RepoDigests","Created","Size","SharedSize","VirtualSize","Labels","Containers"],"properties":{"Containers":{"type":"integer","x-nullable":false},"Created":{"type":"integer","x-nullable":false},"Id":{"type":"string","x-nullable":false},"Labels":{"type":"object","additionalProperties":{"type":"string"},"x-nullable":false},"ParentId":{"type":"string","x-nullable":false},"RepoDigests":{"type":"array","items":{"type":"string"},"x-nullable":false},"RepoTags":{"type":"array","items":{"type":"string"},"x-nullable":false},"SharedSize":{"type":"integer","x-nullable":false},"Size":{"type":"integer","x-nullable":false},"VirtualSize":{"type":"integer","x-nullable":false}}},"Mount":{"type":"object","properties":{"BindOptions":{"description":"Optional configuration for the `bind` type.","type":"object","properties":{"Propagation":{"description":"A propagation mode with the value `[r]private`, `[r]shared`, or `[r]slave`.","enum":["private","rprivate","shared","rshared","slave","rslave"]}}},"Consistency":{"description":"The consistency requirement for the mount: `default`, `consistent`, `cached`, or `delegated`.","type":"string"},"ReadOnly":{"description":"Whether the mount should be read-only.","type":"boolean"},"Source":{"description":"Mount source (e.g. a volume name, a host path).","type":"string"},"Target":{"description":"Container path.","type":"string"},"TmpfsOptions":{"description":"Optional configuration for the `tmpfs` type.","type":"object","properties":{"Mode":{"description":"The permission mode for the tmpfs mount in an integer.","type":"integer"},"SizeBytes":{"description":"The size for the tmpfs mount in bytes.","type":"integer","format":"int64"}}},"Type":{"description":"The mount type. Available types:\n\n- `bind` Mounts a file or directory from the host into the container. Must exist prior to creating the container.\n- `volume` Creates a volume with the given name and options (or uses a pre-existing volume with the same name and options). These are **not** removed when the container is removed.\n- `tmpfs` Create a tmpfs with the given options. The mount source cannot be specified for tmpfs.\n","type":"string","enum":["bind","volume","tmpfs"]},"VolumeOptions":{"description":"Optional configuration for the `volume` type.","type":"object","properties":{"DriverConfig":{"description":"Map of driver specific options","type":"object","properties":{"Name":{"description":"Name of the driver to use to create the volume.","type":"string"},"Options":{"description":"key/value map of driver specific options.","type":"object","additionalProperties":{"type":"string"}}}},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"NoCopy":{"description":"Populate volume with data from the target.","type":"boolean","default":false}}}}},"MountPoint":{"description":"A mount point inside a container","type":"object","properties":{"Destination":{"type":"string"},"Driver":{"type":"string"},"Mode":{"type":"string"},"Name":{"type":"string"},"Propagation":{"type":"string"},"RW":{"type":"boolean"},"Source":{"type":"string"},"Type":{"type":"string"}}},"Network":{"type":"object","properties":{"Attachable":{"type":"boolean"},"Containers":{"type":"object","additionalProperties":{"$ref":"#/definitions/NetworkContainer"}},"Created":{"type":"string","format":"dateTime"},"Driver":{"type":"string"},"EnableIPv6":{"type":"boolean"},"IPAM":{"$ref":"#/definitions/IPAM"},"Id":{"type":"string"},"Ingress":{"type":"boolean"},"Internal":{"type":"boolean"},"Labels":{"type":"object","additionalProperties":{"type":"string"}},"Name":{"type":"string"},"Options":{"type":"object","additionalProperties":{"type":"string"}},"Scope":{"type":"string"}},"example":{"Attachable":false,"Containers":{"19a4d5d687db25203351ed79d478946f861258f018fe384f229f2efa4b23513c":{"EndpointID":"628cadb8bcb92de107b2a1e516cbffe463e321f548feb37697cce00ad694f21a","IPv4Address":"172.19.0.2/16","IPv6Address":"","MacAddress":"02:42:ac:13:00:02","Name":"test"}},"Created":"2016-10-19T04:33:30.360899459Z","Driver":"bridge","EnableIPv6":false,"IPAM":{"Config":[{"Gateway":"172.19.0.1","Subnet":"172.19.0.0/16"}],"Driver":"default","Options":{"foo":"bar"}},"Id":"7d86d31b1478e7cca9ebed7e73aa0fdeec46c5ca29497431d3007d2d9e15ed99","Ingress":false,"Internal":false,"Labels":{"com.example.some-label":"some-value","com.example.some-other-label":"some-other-value"},"Name":"net01","Options":{"com.docker.network.bridge.default_bridge":"true","com.docker.network.bridge.enable_icc":"true","com.docker.network.bridge.enable_ip_masquerade":"true","com.docker.network.bridge.host_binding_ipv4":"0.0.0.0","com.docker.network.bridge.name":"docker0","com.docker.network.driver.mtu":"1500"},"Scope":"local"}},"NetworkConfig":{"description":"TODO: check is correct","type":"object","properties":{"Address":{"type":"string"},"Bridge":{"type":"string"},"Gateway":{"type":"string"},"IPPrefixLen":{"type":"integer"},"MacAddress":{"type":"string"},"PortMapping":{"type":"string"},"Ports":{"type":"array","items":{"$ref":"#/definitions/Port"}}}},"NetworkContainer":{"type":"object","properties":{"EndpointID":{"type":"string"},"IPv4Address":{"type":"string"},"IPv6Address":{"type":"string"},"MacAddress":{"type":"string"},"Name":{"type":"string"}}},"Node":{"type":"object","properties":{"CreatedAt":{"type":"string","format":"dateTime"},"Description":{"type":"object","properties":{"Engine":{"type":"object","properties":{"EngineVersion":{"type":"string"},"Labels":{"type":"object","additionalProperties":{"type":"string"}},"Plugins":{"type":"array","items":{"type":"object","properties":{"Name":{"type":"string"},"Type":{"type":"string"}}}}}},"Hostname":{"type":"string"},"Platform":{"type":"object","properties":{"Architecture":{"type":"string"},"OS":{"type":"string"}}},"Resources":{"type":"object","properties":{"MemoryBytes":{"type":"integer","format":"int64"},"NanoCPUs":{"type":"integer","format":"int64"}}},"TLSInfo":{"$ref":"#/definitions/SwarmSpec"}}},"ID":{"type":"string"},"Spec":{"$ref":"#/definitions/NodeSpec"},"UpdatedAt":{"type":"string","format":"dateTime"},"Version":{"$ref":"#/definitions/ObjectVersion"}},"example":{"CreatedAt":"2016-06-07T20:31:11.853781916Z","Description":{"Engine":{"EngineVersion":"17.04.0","Labels":{"foo":"bar"},"Plugins":[{"Name":"local","Type":"Volume"},{"Name":"bridge","Type":"Network"},{"Name":"null","Type":"Network"},{"Name":"overlay","Type":"Network"}]},"Hostname":"bf3067039e47","Platform":{"Architecture":"x86_64","OS":"linux"},"Resources":{"MemoryBytes":8272408576,"NanoCPUs":4000000000}},"ID":"24ifsmvkjbyhk","ManagerStatus":{"Addr":"172.17.0.2:2377","Leader":true,"Reachability":"reachable"},"Spec":{"Availability":"active","Labels":{"foo":"bar"},"Name":"my-node","Role":"manager"},"Status":{"Addr":"172.17.0.2","State":"ready"},"TLSInfo":{"CertIssuerPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A==","CertIssuerSubject":"MBMxETAPBgNVBAMTCHN3YXJtLWNh","TrustRoot":"-----BEGIN CERTIFICATE-----\nMIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw\nEzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0\nMzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH\nA0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf\n3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB\nAf8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO\nPQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz\npxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H\n-----END CERTIFICATE-----\n"},"UpdatedAt":"2016-06-07T20:31:11.999868824Z","Version":{"Index":8}}},"NodeSpec":{"type":"object","properties":{"Availability":{"description":"Availability of the node.","type":"string","enum":["active","pause","drain"]},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"Name for the node.","type":"string"},"Role":{"description":"Role of the node.","type":"string","enum":["worker","manager"]}},"example":{"Availability":"active","Labels":{"foo":"bar"},"Name":"node-name","Role":"manager"}},"ObjectVersion":{"description":"The version number of the object such as node, service, etc. This is needed to avoid conflicting writes.\nThe client must send the version number along with the modified specification when updating these objects.\nThis approach ensures safe concurrency and determinism in that the change on the object\nmay not be applied if the version number has changed from the last read. In other words,\nif two update requests specify the same base version, only one of the requests can succeed.\nAs a result, two separate update requests that happen at the same time will not\nunintentially overwrite each other.\n","type":"object","properties":{"Index":{"type":"integer","format":"int64"}}},"Plugin":{"description":"A plugin for the Engine API","type":"object","required":["Settings","Enabled","Config","Name"],"properties":{"Config":{"description":"The config of a plugin.","type":"object","required":["Description","Documentation","Interface","Entrypoint","WorkDir","Network","Linux","PidHost","PropagatedMount","IpcHost","Mounts","Env","Args"],"properties":{"Args":{"type":"object","required":["Name","Description","Settable","Value"],"properties":{"Description":{"type":"string","x-nullable":false,"example":"command line arguments"},"Name":{"type":"string","x-nullable":false,"example":"args"},"Settable":{"type":"array","items":{"type":"string"}},"Value":{"type":"array","items":{"type":"string"}}},"x-nullable":false},"Description":{"type":"string","x-nullable":false,"example":"A sample volume plugin for Docker"},"DockerVersion":{"description":"Docker Version used to create the plugin","type":"string","x-nullable":false,"example":"17.06.0-ce"},"Documentation":{"type":"string","x-nullable":false,"example":"https://docs.docker.com/engine/extend/plugins/"},"Entrypoint":{"type":"array","items":{"type":"string"},"example":["/usr/bin/sample-volume-plugin","/data"]},"Env":{"type":"array","items":{"$ref":"#/definitions/PluginEnv"},"example":[{"Description":"If set, prints debug messages","Name":"DEBUG","Settable":"","Value":"0"}]},"Interface":{"description":"The interface between Docker and the plugin","type":"object","required":["Types","Socket"],"properties":{"Socket":{"type":"string","x-nullable":false,"example":"plugins.sock"},"Types":{"type":"array","items":{"$ref":"#/definitions/PluginInterfaceType"},"example":["docker.volumedriver/1.0"]}},"x-nullable":false},"IpcHost":{"type":"boolean","x-nullable":false,"example":false},"Linux":{"type":"object","required":["Capabilities","AllowAllDevices","Devices"],"properties":{"AllowAllDevices":{"type":"boolean","x-nullable":false,"example":false},"Capabilities":{"type":"array","items":{"type":"string"},"example":["CAP_SYS_ADMIN","CAP_SYSLOG"]},"Devices":{"type":"array","items":{"$ref":"#/definitions/PluginDevice"}}},"x-nullable":false},"Mounts":{"type":"array","items":{"$ref":"#/definitions/PluginMount"}},"Network":{"type":"object","required":["Type"],"properties":{"Type":{"type":"string","x-nullable":false,"example":"host"}},"x-nullable":false},"PidHost":{"type":"boolean","x-nullable":false,"example":false},"PropagatedMount":{"type":"string","x-nullable":false,"example":"/mnt/volumes"},"User":{"type":"object","properties":{"GID":{"type":"integer","format":"uint32","example":1000},"UID":{"type":"integer","format":"uint32","example":1000}},"x-nullable":false},"WorkDir":{"type":"string","x-nullable":false,"example":"/bin/"},"rootfs":{"type":"object","properties":{"diff_ids":{"type":"array","items":{"type":"string"},"example":["sha256:675532206fbf3030b8458f88d6e26d4eb1577688a25efec97154c94e8b6b4887","sha256:e216a057b1cb1efc11f8a268f37ef62083e70b1b38323ba252e25ac88904a7e8"]},"type":{"type":"string","example":"layers"}}}},"x-nullable":false},"Enabled":{"description":"True if the plugin is running. False if the plugin is not running, only installed.","type":"boolean","x-nullable":false,"example":true},"Id":{"type":"string","example":"5724e2c8652da337ab2eedd19fc6fc0ec908e4bd907c7421bf6a8dfc70c4c078"},"Name":{"type":"string","x-nullable":false,"example":"tiborvass/sample-volume-plugin"},"PluginReference":{"description":"plugin remote reference used to push/pull the plugin","type":"string","x-nullable":false,"example":"localhost:5000/tiborvass/sample-volume-plugin:latest"},"Settings":{"description":"Settings that can be modified by users.","type":"object","required":["Args","Devices","Env","Mounts"],"properties":{"Args":{"type":"array","items":{"type":"string"}},"Devices":{"type":"array","items":{"$ref":"#/definitions/PluginDevice"}},"Env":{"type":"array","items":{"type":"string"},"example":["DEBUG=0"]},"Mounts":{"type":"array","items":{"$ref":"#/definitions/PluginMount"}}},"x-nullable":false}}},"PluginDevice":{"type":"object","required":["Name","Description","Settable","Path"],"properties":{"Description":{"type":"string","x-nullable":false},"Name":{"type":"string","x-nullable":false},"Path":{"type":"string","example":"/dev/fuse"},"Settable":{"type":"array","items":{"type":"string"}}},"x-nullable":false},"PluginEnv":{"type":"object","required":["Name","Description","Settable","Value"],"properties":{"Description":{"type":"string","x-nullable":false},"Name":{"type":"string","x-nullable":false},"Settable":{"type":"array","items":{"type":"string"}},"Value":{"type":"string"}},"x-nullable":false},"PluginInterfaceType":{"type":"object","required":["Prefix","Capability","Version"],"properties":{"Capability":{"type":"string","x-nullable":false},"Prefix":{"type":"string","x-nullable":false},"Version":{"type":"string","x-nullable":false}},"x-nullable":false},"PluginMount":{"type":"object","required":["Name","Description","Settable","Source","Destination","Type","Options"],"properties":{"Description":{"type":"string","x-nullable":false,"example":"This is a mount that's used by the plugin."},"Destination":{"type":"string","x-nullable":false,"example":"/mnt/state"},"Name":{"type":"string","x-nullable":false,"example":"some-mount"},"Options":{"type":"array","items":{"type":"string"},"example":["rbind","rw"]},"Settable":{"type":"array","items":{"type":"string"}},"Source":{"type":"string","example":"/var/lib/docker/plugins/"},"Type":{"type":"string","x-nullable":false,"example":"bind"}},"x-nullable":false},"Port":{"description":"An open port on a container","type":"object","required":["PrivatePort","Type"],"properties":{"IP":{"type":"string","format":"ip-address"},"PrivatePort":{"description":"Port on the container","type":"integer","format":"uint16","x-nullable":false},"PublicPort":{"description":"Port exposed on the host","type":"integer","format":"uint16"},"Type":{"type":"string","enum":["tcp","udp"],"x-nullable":false}},"example":{"PrivatePort":8080,"PublicPort":80,"Type":"tcp"}},"ProcessConfig":{"type":"object","properties":{"arguments":{"type":"array","items":{"type":"string"}},"entrypoint":{"type":"string"},"privileged":{"type":"boolean"},"tty":{"type":"boolean"},"user":{"type":"string"}}},"ProgressDetail":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"integer"}}},"PushImageInfo":{"type":"object","properties":{"error":{"type":"string"},"progress":{"type":"string"},"progressDetail":{"$ref":"#/definitions/ProgressDetail"},"status":{"type":"string"}}},"Resources":{"description":"A container's resources (cgroups config, ulimits, etc)","type":"object","properties":{"BlkioDeviceReadBps":{"description":"Limit read rate (bytes per second) from a device, in the form `[{\"Path\": \"device_path\", \"Rate\": rate}]`.\n","type":"array","items":{"$ref":"#/definitions/ThrottleDevice"}},"BlkioDeviceReadIOps":{"description":"Limit read rate (IO per second) from a device, in the form `[{\"Path\": \"device_path\", \"Rate\": rate}]`.\n","type":"array","items":{"$ref":"#/definitions/ThrottleDevice"}},"BlkioDeviceWriteBps":{"description":"Limit write rate (bytes per second) to a device, in the form `[{\"Path\": \"device_path\", \"Rate\": rate}]`.\n","type":"array","items":{"$ref":"#/definitions/ThrottleDevice"}},"BlkioDeviceWriteIOps":{"description":"Limit write rate (IO per second) to a device, in the form `[{\"Path\": \"device_path\", \"Rate\": rate}]`.\n","type":"array","items":{"$ref":"#/definitions/ThrottleDevice"}},"BlkioWeight":{"description":"Block IO weight (relative weight).","type":"integer","maximum":1000,"minimum":0},"BlkioWeightDevice":{"description":"Block IO weight (relative device weight) in the form `[{\"Path\": \"device_path\", \"Weight\": weight}]`.\n","type":"array","items":{"type":"object","properties":{"Path":{"type":"string"},"Weight":{"type":"integer","minimum":0}}}},"CgroupParent":{"description":"Path to `cgroups` under which the container's `cgroup` is created. If the path is not absolute, the path is considered to be relative to the `cgroups` path of the init process. Cgroups are created if they do not already exist.","type":"string"},"CpuCount":{"description":"The number of usable CPUs (Windows only).\n\nOn Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last.\n","type":"integer","format":"int64"},"CpuPercent":{"description":"The usable percentage of the available CPUs (Windows only).\n\nOn Windows Server containers, the processor resource controls are mutually exclusive. The order of precedence is `CPUCount` first, then `CPUShares`, and `CPUPercent` last.\n","type":"integer","format":"int64"},"CpuPeriod":{"description":"The length of a CPU period in microseconds.","type":"integer","format":"int64"},"CpuQuota":{"description":"Microseconds of CPU time that the container can get in a CPU period.","type":"integer","format":"int64"},"CpuRealtimePeriod":{"description":"The length of a CPU real-time period in microseconds. Set to 0 to allocate no time allocated to real-time tasks.","type":"integer","format":"int64"},"CpuRealtimeRuntime":{"description":"The length of a CPU real-time runtime in microseconds. Set to 0 to allocate no time allocated to real-time tasks.","type":"integer","format":"int64"},"CpuShares":{"description":"An integer value representing this container's relative CPU weight versus other containers.","type":"integer"},"CpusetCpus":{"description":"CPUs in which to allow execution (e.g., `0-3`, `0,1`)","type":"string"},"CpusetMems":{"description":"Memory nodes (MEMs) in which to allow execution (0-3, 0,1). Only effective on NUMA systems.","type":"string"},"DeviceCgroupRules":{"description":"a list of cgroup rules to apply to the container","type":"array","items":{"type":"string","example":"c 13:* rwm"}},"Devices":{"description":"A list of devices to add to the container.","type":"array","items":{"$ref":"#/definitions/DeviceMapping"}},"DiskQuota":{"description":"Disk limit (in bytes).","type":"integer","format":"int64"},"IOMaximumBandwidth":{"description":"Maximum IO in bytes per second for the container system drive (Windows only)","type":"integer","format":"int64"},"IOMaximumIOps":{"description":"Maximum IOps for the container system drive (Windows only)","type":"integer","format":"int64"},"KernelMemory":{"description":"Kernel memory limit in bytes.","type":"integer","format":"int64"},"Memory":{"description":"Memory limit in bytes.","type":"integer","default":0},"MemoryReservation":{"description":"Memory soft limit in bytes.","type":"integer","format":"int64"},"MemorySwap":{"description":"Total memory limit (memory + swap). Set as `-1` to enable unlimited swap.","type":"integer","format":"int64"},"MemorySwappiness":{"description":"Tune a container's memory swappiness behavior. Accepts an integer between 0 and 100.","type":"integer","format":"int64","maximum":100,"minimum":0},"NanoCPUs":{"description":"CPU quota in units of 10\u003csup\u003e-9\u003c/sup\u003e CPUs.","type":"integer","format":"int64"},"OomKillDisable":{"description":"Disable OOM Killer for the container.","type":"boolean"},"PidsLimit":{"description":"Tune a container's pids limit. Set -1 for unlimited.","type":"integer","format":"int64"},"Ulimits":{"description":"A list of resource limits to set in the container. For example: `{\"Name\": \"nofile\", \"Soft\": 1024, \"Hard\": 2048}`\"\n","type":"array","items":{"type":"object","properties":{"Hard":{"description":"Hard limit","type":"integer"},"Name":{"description":"Name of ulimit","type":"string"},"Soft":{"description":"Soft limit","type":"integer"}}}}}},"RestartPolicy":{"description":"The behavior to apply when the container exits. The default is not to restart.\n\nAn ever increasing delay (double the previous delay, starting at 100ms) is added before each restart to prevent flooding the server.\n","type":"object","properties":{"MaximumRetryCount":{"description":"If `on-failure` is used, the number of times to retry before giving up","type":"integer"},"Name":{"description":"- Empty string means not to restart\n- `always` Always restart\n- `unless-stopped` Restart always except when the user has manually stopped the container\n- `on-failure` Restart only when the container exit code is non-zero\n","type":"string","enum":["","always","unless-stopped","on-failure"]}}},"Secret":{"type":"object","properties":{"CreatedAt":{"type":"string","format":"dateTime"},"ID":{"type":"string"},"Spec":{"$ref":"#/definitions/SecretSpec"},"UpdatedAt":{"type":"string","format":"dateTime"},"Version":{"$ref":"#/definitions/ObjectVersion"}}},"SecretSpec":{"type":"object","properties":{"Data":{"description":"Base64-url-safe-encoded secret data","type":"array","items":{"type":"string"}},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"User-defined name of the secret.","type":"string"}}},"Service":{"type":"object","properties":{"CreatedAt":{"type":"string","format":"dateTime"},"Endpoint":{"type":"object","properties":{"Ports":{"type":"array","items":{"$ref":"#/definitions/EndpointPortConfig"}},"Spec":{"$ref":"#/definitions/EndpointSpec"},"VirtualIPs":{"type":"array","items":{"type":"object","properties":{"Addr":{"type":"string"},"NetworkID":{"type":"string"}}}}}},"ID":{"type":"string"},"Spec":{"$ref":"#/definitions/ServiceSpec"},"UpdateStatus":{"description":"The status of a service update.","type":"object","properties":{"CompletedAt":{"type":"string","format":"dateTime"},"Message":{"type":"string"},"StartedAt":{"type":"string","format":"dateTime"},"State":{"type":"string","enum":["updating","paused","completed"]}}},"UpdatedAt":{"type":"string","format":"dateTime"},"Version":{"$ref":"#/definitions/ObjectVersion"}},"example":{"CreatedAt":"2016-06-07T21:05:51.880065305Z","Endpoint":{"Ports":[{"Protocol":"tcp","PublishedPort":30001,"TargetPort":6379}],"Spec":{"Mode":"vip","Ports":[{"Protocol":"tcp","PublishedPort":30001,"TargetPort":6379}]},"VirtualIPs":[{"Addr":"10.255.0.2/16","NetworkID":"4qvuz4ko70xaltuqbt8956gd1"},{"Addr":"10.255.0.3/16","NetworkID":"4qvuz4ko70xaltuqbt8956gd1"}]},"ID":"9mnpnzenvg8p8tdbtq4wvbkcz","Spec":{"EndpointSpec":{"Mode":"vip","Ports":[{"Protocol":"tcp","PublishedPort":30001,"TargetPort":6379}]},"Mode":{"Replicated":{"Replicas":1}},"Name":"hopeful_cori","RollbackConfig":{"Delay":1000000000,"FailureAction":"pause","MaxFailureRatio":0.15,"Monitor":15000000000,"Parallelism":1},"TaskTemplate":{"ContainerSpec":{"Image":"redis"},"ForceUpdate":0,"Placement":{},"Resources":{"Limits":{},"Reservations":{}},"RestartPolicy":{"Condition":"any","MaxAttempts":0}},"UpdateConfig":{"Delay":1000000000,"FailureAction":"pause","MaxFailureRatio":0.15,"Monitor":15000000000,"Parallelism":1}},"UpdatedAt":"2016-06-07T21:07:29.962229872Z","Version":{"Index":19}}},"ServiceSpec":{"description":"User modifiable configuration for a service.","properties":{"EndpointSpec":{"$ref":"#/definitions/EndpointSpec"},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Mode":{"description":"Scheduling mode for the service.","type":"object","properties":{"Global":{"type":"object"},"Replicated":{"type":"object","properties":{"Replicas":{"type":"integer","format":"int64"}}}}},"Name":{"description":"Name of the service.","type":"string"},"Networks":{"description":"Array of network names or IDs to attach the service to.","type":"array","items":{"type":"object","properties":{"Aliases":{"type":"array","items":{"type":"string"}},"Target":{"type":"string"}}}},"RollbackConfig":{"description":"Specification for the rollback strategy of the service.","type":"object","properties":{"Delay":{"description":"Amount of time between rollback iterations, in nanoseconds.","type":"integer","format":"int64"},"FailureAction":{"description":"Action to take if an rolled back task fails to run, or stops running during the rollback.","type":"string","enum":["continue","pause"]},"MaxFailureRatio":{"description":"The fraction of tasks that may fail during a rollback before the failure action is invoked, specified as a floating point number between 0 and 1.","type":"number","default":0},"Monitor":{"description":"Amount of time to monitor each rolled back task for failures, in nanoseconds.","type":"integer","format":"int64"},"Order":{"description":"The order of operations when rolling back a task. Either the old task is shut down before the new task is started, or the new task is started before the old task is shut down.","type":"string","enum":["stop-first","start-first"]},"Parallelism":{"description":"Maximum number of tasks to be rolled back in one iteration (0 means unlimited parallelism).","type":"integer","format":"int64"}}},"TaskTemplate":{"$ref":"#/definitions/TaskSpec"},"UpdateConfig":{"description":"Specification for the update strategy of the service.","type":"object","properties":{"Delay":{"description":"Amount of time between updates, in nanoseconds.","type":"integer","format":"int64"},"FailureAction":{"description":"Action to take if an updated task fails to run, or stops running during the update.","type":"string","enum":["continue","pause","rollback"]},"MaxFailureRatio":{"description":"The fraction of tasks that may fail during an update before the failure action is invoked, specified as a floating point number between 0 and 1.","type":"number","default":0},"Monitor":{"description":"Amount of time to monitor each updated task for failures, in nanoseconds.","type":"integer","format":"int64"},"Order":{"description":"The order of operations when rolling out an updated task. Either the old task is shut down before the new task is started, or the new task is started before the old task is shut down.","type":"string","enum":["stop-first","start-first"]},"Parallelism":{"description":"Maximum number of tasks to be updated in one iteration (0 means unlimited parallelism).","type":"integer","format":"int64"}}}}},"ServiceUpdateResponse":{"type":"object","properties":{"Warnings":{"description":"Optional warning messages","type":"array","items":{"type":"string"}}},"example":{"Warning":"unable to pin image doesnotexist:latest to digest: image library/doesnotexist:latest not found"}},"SwarmSpec":{"description":"User modifiable swarm configuration.","type":"object","properties":{"CAConfig":{"description":"CA configuration.","type":"object","properties":{"ExternalCAs":{"description":"Configuration for forwarding signing requests to an external certificate authority.","type":"array","items":{"type":"object","properties":{"CACert":{"description":"The root CA certificate (in PEM format) this external CA uses to issue TLS certificates (assumed to be to the current swarm root CA certificate if not provided).","type":"string"},"Options":{"description":"An object with key/value pairs that are interpreted as protocol-specific options for the external CA driver.","type":"object","additionalProperties":{"type":"string"}},"Protocol":{"description":"Protocol for communication with the external CA (currently only `cfssl` is supported).","type":"string","default":"cfssl","enum":["cfssl"]},"URL":{"description":"URL where certificate signing requests should be sent.","type":"string"}}}},"ForceRotate":{"description":"An integer whose purpose is to force swarm to generate a new signing CA certificate and key, if none have been specified in `SigningCACert` and `SigningCAKey`"},"NodeCertExpiry":{"description":"The duration node certificates are issued for.","type":"integer","format":"int64"},"SigningCACert":{"description":"The desired signing CA certificate for all swarm node TLS leaf certificates, in PEM format.","type":"string"},"SigningCAKey":{"description":"The desired signing CA key for all swarm node TLS leaf certificates, in PEM format.","type":"string"}}},"Dispatcher":{"description":"Dispatcher configuration.","type":"object","properties":{"HeartbeatPeriod":{"description":"The delay for an agent to send a heartbeat to the dispatcher.","type":"integer","format":"int64"}}},"EncryptionConfig":{"description":"Parameters related to encryption-at-rest.","type":"object","properties":{"AutoLockManagers":{"description":"If set, generate a key and use it to lock data stored on the managers.","type":"boolean"}}},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"Name of the swarm.","type":"string"},"Orchestration":{"description":"Orchestration configuration.","type":"object","properties":{"TaskHistoryRetentionLimit":{"description":"The number of historic tasks to keep per instance or node. If negative, never remove completed or failed tasks.","type":"integer","format":"int64"}}},"Raft":{"description":"Raft configuration.","type":"object","properties":{"ElectionTick":{"description":"The number of ticks that a follower will wait for a message from the leader before becoming a candidate and starting an election. `ElectionTick` must be greater than `HeartbeatTick`.\n\nA tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.\n","type":"integer"},"HeartbeatTick":{"description":"The number of ticks between heartbeats. Every HeartbeatTick ticks, the leader will send a heartbeat to the followers.\n\nA tick currently defaults to one second, so these translate directly to seconds currently, but this is NOT guaranteed.\n","type":"integer"},"KeepOldSnapshots":{"description":"The number of snapshots to keep beyond the current snapshot.","type":"integer","format":"int64"},"LogEntriesForSlowFollowers":{"description":"The number of log entries to keep around to sync up slow followers after a snapshot is created.","type":"integer","format":"int64"},"SnapshotInterval":{"description":"The number of log entries between snapshots.","type":"integer","format":"int64"}}},"TaskDefaults":{"description":"Defaults for creating tasks in this cluster.","type":"object","properties":{"LogDriver":{"description":"The log driver to use for tasks created in the orchestrator if unspecified by a service.\n\nUpdating this value will only have an affect on new tasks. Old tasks will continue use their previously configured log driver until recreated.\n","type":"object","properties":{"Name":{"type":"string"},"Options":{"type":"object","additionalProperties":{"type":"string"}}}}}}},"example":{"CAConfig":{"NodeCertExpiry":7776000000000000},"Dispatcher":{"HeartbeatPeriod":5000000000},"EncryptionConfig":{"AutoLockManagers":false},"JoinTokens":{"Manager":"SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-7p73s1dx5in4tatdymyhg9hu2","Worker":"SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx"},"Name":"default","Orchestration":{"TaskHistoryRetentionLimit":10},"Raft":{"ElectionTick":3,"HeartbeatTick":1,"LogEntriesForSlowFollowers":500,"SnapshotInterval":10000}}},"TLSInfo":{"description":"Information about the issuer of leaf TLS certificates and the trusted root CA certificate","type":"object","properties":{"CertIssuerPublicKey":{"description":"The base64-url-safe-encoded raw public key bytes of the issuer","type":"string"},"CertIssuerSubject":{"description":"The base64-url-safe-encoded raw subject bytes of the issuer","type":"string"},"TrustRoot":{"description":"The root CA certificate(s) that are used to validate leaf TLS certificates","type":"string"}},"example":{"CertIssuerPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmT9XIw9h1qoNclv9VeHmf/Vi6/uI2vFXdBveXTpcPjqx6i9wNazchk1XWV/dKTKvSh9xyGKmiIeRcE4OiMnJ1A==","CertIssuerSubject":"MBMxETAPBgNVBAMTCHN3YXJtLWNh","TrustRoot":"-----BEGIN CERTIFICATE-----\nMIIBajCCARCgAwIBAgIUbYqrLSOSQHoxD8CwG6Bi2PJi9c8wCgYIKoZIzj0EAwIw\nEzERMA8GA1UEAxMIc3dhcm0tY2EwHhcNMTcwNDI0MjE0MzAwWhcNMzcwNDE5MjE0\nMzAwWjATMREwDwYDVQQDEwhzd2FybS1jYTBZMBMGByqGSM49AgEGCCqGSM49AwEH\nA0IABJk/VyMPYdaqDXJb/VXh5n/1Yuv7iNrxV3Qb3l06XD46seovcDWs3IZNV1lf\n3Skyr0ofcchipoiHkXBODojJydSjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB\nAf8EBTADAQH/MB0GA1UdDgQWBBRUXxuRcnFjDfR/RIAUQab8ZV/n4jAKBggqhkjO\nPQQDAgNIADBFAiAy+JTe6Uc3KyLCMiqGl2GyWGQqQDEcO3/YG36x7om65AIhAJvz\npxv6zFeVEkAEEkqIYi0omA9+CjanB/6Bz4n1uw8H\n-----END CERTIFICATE-----\n"}},"Task":{"type":"object","properties":{"CreatedAt":{"type":"string","format":"dateTime"},"DesiredState":{"$ref":"#/definitions/TaskState"},"ID":{"description":"The ID of the task.","type":"string"},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"}},"Name":{"description":"Name of the task.","type":"string"},"NodeID":{"description":"The ID of the node that this task is on.","type":"string"},"ServiceID":{"description":"The ID of the service this task is part of.","type":"string"},"Slot":{"type":"integer"},"Spec":{"$ref":"#/definitions/TaskSpec"},"Status":{"type":"object","properties":{"ContainerStatus":{"type":"object","properties":{"ContainerID":{"type":"string"},"ExitCode":{"type":"integer"},"PID":{"type":"integer"}}},"Err":{"type":"string"},"Message":{"type":"string"},"State":{"$ref":"#/definitions/TaskState"},"Timestamp":{"type":"string","format":"dateTime"}}},"UpdatedAt":{"type":"string","format":"dateTime"},"Version":{"$ref":"#/definitions/ObjectVersion"}},"example":{"CreatedAt":"2016-06-07T21:07:31.171892745Z","DesiredState":"running","ID":"0kzzo1i0y4jz6027t0k7aezc7","NetworksAttachments":[{"Addresses":["10.255.0.10/16"],"Network":{"CreatedAt":"2016-06-07T20:31:11.912919752Z","DriverState":{"Name":"overlay","Options":{"com.docker.network.driver.overlay.vxlanid_list":"256"}},"ID":"4qvuz4ko70xaltuqbt8956gd1","IPAMOptions":{"Configs":[{"Gateway":"10.255.0.1","Subnet":"10.255.0.0/16"}],"Driver":{"Name":"default"}},"Spec":{"DriverConfiguration":{},"IPAMOptions":{"Configs":[{"Gateway":"10.255.0.1","Subnet":"10.255.0.0/16"}],"Driver":{}},"Labels":{"com.docker.swarm.internal":"true"},"Name":"ingress"},"UpdatedAt":"2016-06-07T21:07:29.955277358Z","Version":{"Index":18}}}],"NodeID":"60gvrl6tm78dmak4yl7srz94v","ServiceID":"9mnpnzenvg8p8tdbtq4wvbkcz","Slot":1,"Spec":{"ContainerSpec":{"Image":"redis"},"Placement":{},"Resources":{"Limits":{},"Reservations":{}},"RestartPolicy":{"Condition":"any","MaxAttempts":0}},"Status":{"ContainerStatus":{"ContainerID":"e5d62702a1b48d01c3e02ca1e0212a250801fa8d67caca0b6f35919ebc12f035","PID":677},"Message":"started","State":"running","Timestamp":"2016-06-07T21:07:31.290032978Z"},"UpdatedAt":"2016-06-07T21:07:31.376370513Z","Version":{"Index":71}}},"TaskSpec":{"description":"User modifiable task configuration.","type":"object","properties":{"ContainerSpec":{"type":"object","properties":{"Args":{"description":"Arguments to the command.","type":"array","items":{"type":"string"}},"Command":{"description":"The command to be run in the image.","type":"array","items":{"type":"string"}},"Configs":{"description":"Configs contains references to zero or more configs that will be exposed to the service.","type":"array","items":{"type":"object","properties":{"ConfigID":{"description":"ConfigID represents the ID of the specific config that we're referencing.","type":"string"},"ConfigName":{"description":"ConfigName is the name of the config that this references, but this is just provided for\nlookup/display purposes. The config in the reference will be identified by its ID.\n","type":"string"},"File":{"description":"File represents a specific target that is backed by a file.","type":"object","properties":{"GID":{"description":"GID represents the file GID.","type":"string"},"Mode":{"description":"Mode represents the FileMode of the file.","type":"integer","format":"uint32"},"Name":{"description":"Name represents the final filename in the filesystem.","type":"string"},"UID":{"description":"UID represents the file UID.","type":"string"}}}}}},"DNSConfig":{"description":"Specification for DNS related configurations in resolver configuration file (`resolv.conf`).","type":"object","properties":{"Nameservers":{"description":"The IP addresses of the name servers.","type":"array","items":{"type":"string"}},"Options":{"description":"A list of internal resolver variables to be modified (e.g., `debug`, `ndots:3`, etc.).","type":"array","items":{"type":"string"}},"Search":{"description":"A search list for host-name lookup.","type":"array","items":{"type":"string"}}}},"Dir":{"description":"The working directory for commands to run in.","type":"string"},"Env":{"description":"A list of environment variables in the form `VAR=value`.","type":"array","items":{"type":"string"}},"Groups":{"description":"A list of additional groups that the container process will run as.","type":"array","items":{"type":"string"}},"HealthCheck":{"$ref":"#/definitions/HealthConfig"},"Hostname":{"description":"The hostname to use for the container, as a valid RFC 1123 hostname.","type":"string"},"Hosts":{"description":"A list of hostnames/IP mappings to add to the container's `/etc/hosts` file.\nThe format of extra hosts on swarmkit is specified in:\nhttp://man7.org/linux/man-pages/man5/hosts.5.html\n IP_address canonical_hostname [aliases...]\n","type":"array","items":{"type":"string"}},"Image":{"description":"The image name to use for the container.","type":"string"},"Labels":{"description":"User-defined key/value data.","type":"object","additionalProperties":{"type":"string"}},"Mounts":{"description":"Specification for mounts to be added to containers created as part of the service.","type":"array","items":{"$ref":"#/definitions/Mount"}},"OpenStdin":{"description":"Open `stdin`","type":"boolean"},"Privileges":{"description":"Security options for the container","type":"object","properties":{"CredentialSpec":{"description":"CredentialSpec for managed service account (Windows only)","type":"object","properties":{"File":{"description":"Load credential spec from this file. The file is read by the daemon, and must be present in the\n`CredentialSpecs` subdirectory in the docker data directory, which defaults to\n`C:\\ProgramData\\Docker\\` on Windows.\n\nFor example, specifying `spec.json` loads `C:\\ProgramData\\Docker\\CredentialSpecs\\spec.json`.\n\n\u003cp\u003e\u003cbr /\u003e\u003c/p\u003e\n\n\u003e **Note**: `CredentialSpec.File` and `CredentialSpec.Registry` are mutually exclusive.\n","type":"string"},"Registry":{"description":"Load credential spec from this value in the Windows registry. The specified registry value must be\nlocated in:\n\n`HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Virtualization\\Containers\\CredentialSpecs`\n\n\u003cp\u003e\u003cbr /\u003e\u003c/p\u003e\n\n\n\u003e **Note**: `CredentialSpec.File` and `CredentialSpec.Registry` are mutually exclusive.\n","type":"string"}}},"SELinuxContext":{"description":"SELinux labels of the container","type":"object","properties":{"Disable":{"description":"Disable SELinux","type":"boolean"},"Level":{"description":"SELinux level label","type":"string"},"Role":{"description":"SELinux role label","type":"string"},"Type":{"description":"SELinux type label","type":"string"},"User":{"description":"SELinux user label","type":"string"}}}}},"ReadOnly":{"description":"Mount the container's root filesystem as read only.","type":"boolean"},"Secrets":{"description":"Secrets contains references to zero or more secrets that will be exposed to the service.","type":"array","items":{"type":"object","properties":{"File":{"description":"File represents a specific target that is backed by a file.","type":"object","properties":{"GID":{"description":"GID represents the file GID.","type":"string"},"Mode":{"description":"Mode represents the FileMode of the file.","type":"integer","format":"uint32"},"Name":{"description":"Name represents the final filename in the filesystem.","type":"string"},"UID":{"description":"UID represents the file UID.","type":"string"}}},"SecretID":{"description":"SecretID represents the ID of the specific secret that we're referencing.","type":"string"},"SecretName":{"description":"SecretName is the name of the secret that this references, but this is just provided for\nlookup/display purposes. The secret in the reference will be identified by its ID.\n","type":"string"}}}},"StopGracePeriod":{"description":"Amount of time to wait for the container to terminate before forcefully killing it.","type":"integer","format":"int64"},"StopSignal":{"description":"Signal to stop the container.","type":"string"},"TTY":{"description":"Whether a pseudo-TTY should be allocated.","type":"boolean"},"User":{"description":"The user inside the container.","type":"string"}}},"ForceUpdate":{"description":"A counter that triggers an update even if no relevant parameters have been changed.","type":"integer"},"LogDriver":{"description":"Specifies the log driver to use for tasks created from this spec. If not present, the default one for the swarm will be used, finally falling back to the engine default if not specified.","type":"object","properties":{"Name":{"type":"string"},"Options":{"type":"object","additionalProperties":{"type":"string"}}}},"Networks":{"type":"array","items":{"type":"object","properties":{"Aliases":{"type":"array","items":{"type":"string"}},"Target":{"type":"string"}}}},"Placement":{"type":"object","properties":{"Constraints":{"description":"An array of constraints.","type":"array","items":{"type":"string"}},"Platforms":{"description":"An array of supported platforms.","type":"array","items":{"type":"object","properties":{"Architecture":{"type":"string"},"OS":{"type":"string"}}}},"Preferences":{"description":"Preferences provide a way to make the scheduler aware of factors such as topology. They are provided in order from highest to lowest precedence.","type":"array","items":{"type":"object","properties":{"Spread":{"type":"object","properties":{"SpreadDescriptor":{"description":"label descriptor, such as engine.labels.az","type":"string"}}}}}}}},"Resources":{"description":"Resource requirements which apply to each individual container created as part of the service.","type":"object","properties":{"Limits":{"description":"Define resources limits.","type":"object","properties":{"MemoryBytes":{"description":"Memory limit in Bytes.","type":"integer","format":"int64"},"NanoCPUs":{"description":"CPU limit in units of 10\u003csup\u003e-9\u003c/sup\u003e CPU shares.","type":"integer","format":"int64"}}},"Reservation":{"description":"Define resources reservation.","properties":{"MemoryBytes":{"description":"Memory reservation in Bytes.","type":"integer","format":"int64"},"NanoCPUs":{"description":"CPU reservation in units of 10\u003csup\u003e-9\u003c/sup\u003e CPU shares.","type":"integer","format":"int64"}}}}},"RestartPolicy":{"description":"Specification for the restart policy which applies to containers created as part of this service.","type":"object","properties":{"Condition":{"description":"Condition for restart.","type":"string","enum":["none","on-failure","any"]},"Delay":{"description":"Delay between restart attempts.","type":"integer","format":"int64"},"MaxAttempts":{"description":"Maximum attempts to restart a given container before giving up (default value is 0, which is ignored).","type":"integer","format":"int64","default":0},"Window":{"description":"Windows is the time window used to evaluate the restart policy (default value is 0, which is unbounded).","type":"integer","format":"int64","default":0}}},"Runtime":{"description":"Runtime is the type of runtime specified for the task executor.","type":"string"}}},"TaskState":{"type":"string","enum":["new","allocated","pending","assigned","accepted","preparing","ready","starting","running","complete","shutdown","failed","rejected"]},"ThrottleDevice":{"type":"object","properties":{"Path":{"description":"Device path","type":"string"},"Rate":{"description":"Rate","type":"integer","format":"int64","minimum":0}}},"Volume":{"type":"object","required":["Name","Driver","Mountpoint","Labels","Scope","Options"],"properties":{"Driver":{"description":"Name of the volume driver used by the volume.","type":"string","x-nullable":false},"Labels":{"description":"User-defined key/value metadata.","type":"object","additionalProperties":{"type":"string"},"x-nullable":false},"Mountpoint":{"description":"Mount path of the volume on the host.","type":"string","x-nullable":false},"Name":{"description":"Name of the volume.","type":"string","x-nullable":false},"Options":{"description":"The driver specific options used when creating the volume.","type":"object","additionalProperties":{"type":"string"}},"Scope":{"description":"The level at which the volume exists. Either `global` for cluster-wide, or `local` for machine level.","type":"string","default":"local","enum":["local","global"],"x-nullable":false},"Status":{"description":"Low-level details about the volume, provided by the volume driver.\nDetails are returned as a map with key/value pairs:\n`{\"key\":\"value\",\"key2\":\"value2\"}`.\n\nThe `Status` field is optional, and is omitted if the volume driver\ndoes not support this feature.\n","type":"object","additionalProperties":{"type":"object"}},"UsageData":{"description":"Usage details about the volume. This information is used by the\n`GET /system/df` endpoint, and omitted in other endpoints.\n","type":"object","required":["Size","RefCount"],"properties":{"RefCount":{"description":"The number of containers referencing this volume. This field\nis set to `-1` if the reference-count is not available.\n","type":"integer","default":-1,"x-nullable":false},"Size":{"description":"Amount of disk space used by the volume (in bytes). This information\nis only available for volumes created with the `\"local\"` volume\ndriver. For volumes created with other volume drivers, this field\nis set to `-1` (\"not available\")\n","type":"integer","default":-1,"x-nullable":false}},"x-nullable":true}},"example":{"Driver":"custom","Labels":{"com.example.some-label":"some-value","com.example.some-other-label":"some-other-value"},"Mountpoint":"/var/lib/docker/volumes/tardis","Name":"tardis","Scope":"local","Status":{"hello":"world"}}},"authz.Collection":{"id":"authz.Collection","required":["name","path","id","parent_ids","label_constraints","legacylabelkey","legacylabelvalue","created_at","updated_at"],"properties":{"created_at":{"description":"When the collection was created","type":"string","format":"date-time"},"id":{"description":"A unique ID for this collection","type":"string"},"label_constraints":{"description":"A set of label constraints to be applied to any service or container created in this collection","type":"array","items":{"$ref":"#/definitions/authz.LabelConstraint"}},"legacylabelkey":{"description":"The key of the legacy authorization label for this collection","type":"string"},"legacylabelvalue":{"description":"The value of the legacy authorization label for this collection","type":"string"},"name":{"description":"The name of the collection","type":"string"},"parent_ids":{"description":"A list of collection IDs of parent collections","type":"array","items":{"type":"string"}},"path":{"description":"The full path of the collection","type":"string"},"updated_at":{"description":"When the collection was updated","type":"string","format":"date-time"}}},"authz.CollectionCreate":{"id":"authz.CollectionCreate","required":["name","parent_id","label_constraints","legacy_label_key","legacy_label_value"],"properties":{"label_constraints":{"type":"array","items":{"$ref":"#/definitions/authz.LabelConstraint"}},"legacy_label_key":{"type":"string"},"legacy_label_value":{"type":"string"},"name":{"type":"string"},"parent_id":{"type":"string"}}},"authz.CollectionCreateResponse":{"id":"authz.CollectionCreateResponse","required":["id"],"properties":{"id":{"type":"string"}}},"authz.CollectionID":{"id":"authz.CollectionID","required":["id"],"properties":{"id":{"type":"string"}}},"authz.CollectionUpdate":{"id":"authz.CollectionUpdate","required":["label_constraints"],"properties":{"label_constraints":{"type":"array","items":{"$ref":"#/definitions/authz.LabelConstraint"}}}},"authz.LabelConstraint":{"id":"authz.LabelConstraint","required":["type","label_key","label_value","equality"],"properties":{"equality":{"type":"boolean"},"label_key":{"type":"string"},"label_value":{"type":"string"},"type":{"type":"string"}}},"authz.RoleCreateResponse":{"id":"authz.RoleCreateResponse","required":["id"],"properties":{"id":{"description":"The ID of the newly created role","type":"string"}}},"errors.APIError":{"id":"errors.APIError","required":["code","message"],"properties":{"code":{"type":"string"},"detail":{"$ref":"#/definitions/errors.APIError.detail"},"message":{"type":"string"}}},"errors.APIError.detail":{"id":"errors.APIError.detail"},"forms.BulkOperation":{"id":"forms.BulkOperation","required":["op"],"properties":{"op":{"description":"The operation to perform","type":"string"},"ref":{"description":"An identifier referencing the object on which to perform the operation, if applicable","type":"string"},"value":{"description":"The form value to submit for the operation, if applicable","type":"string"}}},"forms.BulkOperations":{"id":"forms.BulkOperations","required":["operations"],"properties":{"operations":{"type":"array","items":{"$ref":"#/definitions/forms.BulkOperation"}}}},"forms.Certificate":{"id":"forms.Certificate","required":["label","cert"],"properties":{"cert":{"description":"Encoded PEM for the cert","type":"string"},"label":{"description":"Label for the certificate","type":"string"}}},"forms.ChangePassword":{"id":"forms.ChangePassword","required":["oldPassword","newPassword"],"properties":{"newPassword":{"description":"User's new password","type":"string"},"oldPassword":{"description":"User's current password. Required if the client is changing their own password. May be omitted if an admin is changing another user's password","type":"string"}}},"forms.CreateAccount":{"id":"forms.CreateAccount","required":["name"],"properties":{"fullName":{"description":"Full name of account","type":"string"},"isActive":{"description":"Whether the user is active and can login (users only)","type":"boolean"},"isAdmin":{"description":"Whether the user is an admin (users only)","type":"boolean"},"isOrg":{"description":"Whether the account is an organization","type":"boolean"},"name":{"description":"Name of account","type":"string"},"password":{"description":"Password for the user (users only)","type":"string"},"searchLDAP":{"description":"Whether the user should be found by searching against the currently configured LDAP servers. If true, the password field may be omitted and the discovered full name of the user will be used if one is not specified in this form (users only)","type":"boolean"}}},"forms.CreateAccountPublicKey":{"id":"forms.CreateAccountPublicKey","required":["publicKey"],"properties":{"certificates":{"description":"certificates for the public key","type":"array","items":{"$ref":"#/definitions/forms.Certificate"}},"label":{"description":"Label or description for the key","type":"string"},"publicKey":{"description":"Encoded PEM for the public key","type":"string"}}},"forms.CreateTeam":{"id":"forms.CreateTeam","required":["name"],"properties":{"description":{"description":"Description of the team","type":"string"},"name":{"description":"Name of the team","type":"string"}}},"forms.Login":{"id":"forms.Login","required":["username","password"],"properties":{"password":{"description":"the password for the user account","type":"string"},"username":{"description":"the username of the account to login as","type":"string"}}},"forms.MemberSyncOpts":{"id":"forms.MemberSyncOpts","required":["enableSync","selectGroupMembers","groupDN","groupMemberAttr","searchBaseDN","searchScopeSubtree","searchFilter"],"properties":{"enableSync":{"description":"Whether to enable LDAP syncing. If false, all other fields are ignored","type":"boolean"},"groupDN":{"description":"The distinguished name of the LDAP group. Required if selectGroupMembers is true, ignored otherwise","type":"string"},"groupMemberAttr":{"description":"The name of the LDAP group entry attribute which corresponds to distinguished names of members. Required if selectGroupMembers is true, ignored otherwise","type":"string"},"searchBaseDN":{"description":"The distinguished name of the element from which the LDAP server will search for users. Required if selectGroupMembers is false, ignored otherwise","type":"string"},"searchFilter":{"description":"The LDAP search filter used to select users if selectGroupMembers is false, may be left blank","type":"string"},"searchScopeSubtree":{"description":"Whether to search for users in the entire subtree of the base DN or to only search one level under the base DN (if false). Required if selectGroupMembers is false, ignored otherwise","type":"boolean"},"selectGroupMembers":{"description":"Whether to sync using a group DN and member attribute selection or to use a search filter (if false)","type":"boolean"}}},"forms.SetMembership":{"id":"forms.SetMembership","properties":{"isAdmin":{"description":"Whether the member should be an admin of the organization or team (default false), unchanged if nil or omitted","type":"boolean"}}},"forms.UpdateAccount":{"id":"forms.UpdateAccount","properties":{"fullName":{"description":"Full name of account, unchanged if null or omitted","type":"string"},"isActive":{"description":"Whether the user is active and can login (users only), unchanged if null or omitted","type":"boolean"},"isAdmin":{"description":"Whether the user is an admin (users only), unchanged if null or omitted","type":"boolean"}}},"forms.UpdateAccountPublicKey":{"id":"forms.UpdateAccountPublicKey","properties":{"certificates":{"description":"certificates for the public key","type":"array","items":{"$ref":"#/definitions/forms.Certificate"}},"label":{"description":"Label or description for the key","type":"string"}}},"forms.UpdateTeam":{"id":"forms.UpdateTeam","properties":{"description":{"description":"Description of the team, unchanged if nil or omitted","type":"string"},"name":{"description":"Name of the team, unchanged if nil or omitted","type":"string"}}},"responses.Account":{"id":"responses.Account","required":["name","id","fullName","isOrg"],"properties":{"fullName":{"description":"Full Name of the account","type":"string"},"id":{"description":"ID of the account","type":"string"},"isActive":{"description":"Whether the user is active and can login (users only)","type":"boolean"},"isAdmin":{"description":"Whether the user is a system admin (users only)","type":"boolean"},"isImported":{"description":"Whether the user was imported from an upstream identity provider","type":"boolean"},"isOrg":{"description":"Whether the account is an organization (or user)","type":"boolean"},"membersCount":{"description":"The number of members of the organization","type":"integer","format":"int32"},"name":{"description":"Name of the account","type":"string"}}},"responses.AccountPublicKey":{"id":"responses.AccountPublicKey","required":["id","accountID","publicKey","label"],"properties":{"accountID":{"description":"the ID of the account","type":"string"},"certificates":{"description":"certificates for the public key","type":"array","items":{"$ref":"#/definitions/responses.Certificate"}},"id":{"description":"the hash of the public key's DER bytes","type":"string"},"label":{"description":"the label or description for the key","type":"string"},"publicKey":{"description":"the encoded PEM of the public key","type":"string"}}},"responses.AccountPublicKeys":{"id":"responses.AccountPublicKeys","required":["accountPublicKeys"],"properties":{"accountPublicKeys":{"type":"array","items":{"$ref":"#/definitions/responses.AccountPublicKey"}}}},"responses.Accounts":{"id":"responses.Accounts","required":["accounts"],"properties":{"accounts":{"type":"array","items":{"$ref":"#/definitions/responses.Account"}}}},"responses.BulkResult":{"id":"responses.BulkResult","required":["op","success"],"properties":{"error":{"description":"If not successful, the error encountered when performing the operation on this resource","$ref":"#/definitions/errors.APIError"},"op":{"description":"The operation which was perfomed","type":"string"},"ref":{"description":"The corresponding identifier in the bulk operation request","type":"string"},"success":{"description":"Whether the bulk operation was successful for this resource","type":"boolean"}}},"responses.BulkResults":{"id":"responses.BulkResults","required":["results"],"properties":{"results":{"description":"List of results for the bulk operation. The index of a bulk result corresponds to the index of the resource in the bulk request if result identifiers are omitted","type":"array","items":{"$ref":"#/definitions/responses.BulkResult"}}}},"responses.Certificate":{"id":"responses.Certificate","required":["label","cert"],"properties":{"cert":{"description":"Encoded PEM for the cert","type":"string"},"label":{"description":"Label for the certificate","type":"string"}}},"responses.Grant":{"id":"responses.Grant","required":["subjectID","objectID","roleID"],"properties":{"objectID":{"description":"ID of the object managed by the service","type":"string"},"roleID":{"description":"ID of the role managed by the service","type":"string"},"subjectID":{"description":"ID of the subject of this grant","type":"string"}}},"responses.GrantSubject":{"id":"responses.GrantSubject","required":["id","subject_type"],"properties":{"account":{"description":"The account associated with this subject, if any","$ref":"#/definitions/responses.Account"},"id":{"description":"ID of this subject","type":"string"},"subject_type":{"description":"The type of this subject (anonymous, authenticated, user, team, org)","type":"string"},"team":{"description":"The team associated with this subject, if any","$ref":"#/definitions/responses.Team"}}},"responses.Grants":{"id":"responses.Grants","required":["grants","subjects"],"properties":{"grants":{"type":"array","items":{"$ref":"#/definitions/responses.Grant"}},"subjects":{"type":"array","items":{"$ref":"#/definitions/responses.GrantSubject"}}}},"responses.LoginSession":{"id":"responses.LoginSession","required":["account","sessionToken"],"properties":{"account":{"description":"the authenticated user account","$ref":"#/definitions/responses.Account"},"sessionToken":{"description":"the session token created by the login","type":"string"}}},"responses.Member":{"id":"responses.Member","required":["member","isAdmin"],"properties":{"isAdmin":{"description":"Whether the member is an admin of the organization or team","type":"boolean"},"member":{"description":"The user which is a member of the organization or team","$ref":"#/definitions/responses.Account"}}},"responses.MemberOrg":{"id":"responses.MemberOrg","required":["org","isAdmin"],"properties":{"isAdmin":{"description":"Whether the user is an admin of the organization","type":"boolean"},"org":{"description":"The organization which the user is a member of","$ref":"#/definitions/responses.Account"}}},"responses.MemberOrgs":{"id":"responses.MemberOrgs","required":["memberOrgs"],"properties":{"memberOrgs":{"type":"array","items":{"$ref":"#/definitions/responses.MemberOrg"}}}},"responses.MemberSyncOpts":{"id":"responses.MemberSyncOpts","required":["enableSync","selectGroupMembers","groupDN","groupMemberAttr","searchBaseDN","searchScopeSubtree","searchFilter"],"properties":{"enableSync":{"description":"Whether to enable LDAP syncing. If false, all other fields are ignored","type":"boolean"},"groupDN":{"description":"The distinguished name of the LDAP group. Applicable only if selectGroupMembers is true, ignored otherwise","type":"string"},"groupMemberAttr":{"description":"The name of the LDAP group entry attribute which corresponds to distinguished names of members. Applicable only if selectGroupMembers is true, ignored otherwise","type":"string"},"searchBaseDN":{"description":"The distinguished name of the element from which the LDAP server will search for users. Applicable only if selectGroupMembers is false, ignored otherwise","type":"string"},"searchFilter":{"description":"The LDAP search filter used to select users if selectGroupMembers is false, may be left blank","type":"string"},"searchScopeSubtree":{"description":"Whether to search for users in the entire subtree of the base DN or to only search one level under the base DN (if false). Applicable only if selectGroupMembers is false, ignored otherwise","type":"boolean"},"selectGroupMembers":{"description":"Whether to sync using a group DN and member attribute selection or to use a search filter (if false)","type":"boolean"}}},"responses.MemberTeam":{"id":"responses.MemberTeam","required":["team","isAdmin"],"properties":{"isAdmin":{"description":"Whether the user is an admin of the team","type":"boolean"},"team":{"description":"The team which the user is a member of","$ref":"#/definitions/responses.Team"}}},"responses.MemberTeams":{"id":"responses.MemberTeams","required":["memberTeams"],"properties":{"memberTeams":{"type":"array","items":{"$ref":"#/definitions/responses.MemberTeam"}}}},"responses.Members":{"id":"responses.Members","required":["members"],"properties":{"members":{"type":"array","items":{"$ref":"#/definitions/responses.Member"}}}},"responses.Team":{"id":"responses.Team","required":["orgID","name","id","description","membersCount"],"properties":{"description":{"description":"Description of the team","type":"string"},"id":{"description":"ID of the team","type":"string"},"membersCount":{"description":"The number of members of the team","type":"integer","format":"int32"},"name":{"description":"Name of the team","type":"string"},"orgID":{"description":"ID of the organization to which this team belongs","type":"string"}}},"responses.Teams":{"id":"responses.Teams","required":["teams"],"properties":{"teams":{"type":"array","items":{"$ref":"#/definitions/responses.Team"}}}},"role.Role":{"id":"role.Role","required":["id","name","system_role","operations"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"operations":{"type":"object"},"system_role":{"type":"boolean"}}},"v1.FinalizerName":{"id":"v1.FinalizerName"},"v1.Initializer":{"id":"v1.Initializer","description":"Initializer is information about an initializer that has not yet completed.","required":["name"],"properties":{"name":{"description":"name of the process that is responsible for initializing this object.","type":"string"}}},"v1.Initializers":{"id":"v1.Initializers","description":"Initializers tracks the progress of initialization.","required":["pending"],"properties":{"pending":{"description":"Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.","type":"array","items":{"$ref":"#/definitions/v1.Initializer"}},"result":{"description":"If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.","$ref":"#/definitions/v1.Status"}}},"v1.ListMeta":{"id":"v1.ListMeta","description":"ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.","properties":{"continue":{"description":"continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response.","type":"string"},"resourceVersion":{"description":"String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency","type":"string"},"selfLink":{"description":"selfLink is a URL representing this object. Populated by the system. Read-only.","type":"string"}}},"v1.Namespace":{"id":"v1.Namespace","description":"Namespace provides a scope for Names. Use of multiple namespaces is optional.","properties":{"apiVersion":{"description":"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources","type":"string"},"kind":{"description":"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds","type":"string"},"metadata":{"description":"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata","$ref":"#/definitions/v1.ObjectMeta"},"spec":{"description":"Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status","$ref":"#/definitions/v1.NamespaceSpec"},"status":{"description":"Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status","$ref":"#/definitions/v1.NamespaceStatus"}}},"v1.NamespaceList":{"id":"v1.NamespaceList","description":"NamespaceList is a list of Namespaces.","required":["items"],"properties":{"apiVersion":{"description":"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources","type":"string"},"items":{"description":"Items is the list of Namespace objects in the list. More info: https://v1-8.docs.kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/","type":"array","items":{"$ref":"#/definitions/v1.Namespace"}},"kind":{"description":"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds","type":"string"},"metadata":{"description":"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds","$ref":"#/definitions/v1.ListMeta"}}},"v1.NamespaceSpec":{"id":"v1.NamespaceSpec","description":"NamespaceSpec describes the attributes on a Namespace.","properties":{"finalizers":{"description":"Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers","type":"array","items":{"$ref":"#/definitions/v1.FinalizerName"}}}},"v1.NamespaceStatus":{"id":"v1.NamespaceStatus","description":"NamespaceStatus is information about the current status of a Namespace.","properties":{"phase":{"description":"Phase is the current lifecycle phase of the namespace. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases","type":"string"}}},"v1.ObjectMeta":{"id":"v1.ObjectMeta","description":"ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.","properties":{"annotations":{"description":"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://v1-8.docs.kubernetes.io/docs/concepts/overview/working-with-objects/annotations","type":"object"},"clusterName":{"description":"The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.","type":"string"},"creationTimestamp":{"description":"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata","type":"string"},"deletionGracePeriodSeconds":{"description":"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.","type":"integer","format":"int64"},"deletionTimestamp":{"description":"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata","type":"string"},"finalizers":{"description":"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.","type":"array","items":{"type":"string"}},"generateName":{"description":"GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency","type":"string"},"generation":{"description":"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.","type":"integer","format":"int64"},"initializers":{"description":"An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\n\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.","$ref":"#/definitions/v1.Initializers"},"labels":{"description":"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://v1-8.docs.kubernetes.io/docs/concepts/overview/working-with-objects/labels","type":"object"},"name":{"description":"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://v1-8.docs.kubernetes.io/docs/concepts/overview/working-with-objects/names/","type":"string"},"namespace":{"description":"Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: https://v1-8.docs.kubernetes.io/docs/concepts/overview/working-with-objects/namespaces","type":"string"},"ownerReferences":{"description":"List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.","type":"array","items":{"$ref":"#/definitions/v1.OwnerReference"}},"resourceVersion":{"description":"An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency","type":"string"},"selfLink":{"description":"SelfLink is a URL representing this object. Populated by the system. Read-only.","type":"string"},"uid":{"description":"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: https://v1-8.docs.kubernetes.io/docs/concepts/overview/working-with-objects/names/","type":"string"}}},"v1.OwnerReference":{"id":"v1.OwnerReference","description":"OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.","required":["apiVersion","kind","name","uid"],"properties":{"apiVersion":{"description":"API version of the referent.","type":"string"},"blockOwnerDeletion":{"description":"If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.","type":"boolean"},"controller":{"description":"If true, this reference points to the managing controller.","type":"boolean"},"kind":{"description":"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds","type":"string"},"name":{"description":"Name of the referent. More info: https://v1-8.docs.kubernetes.io/docs/concepts/overview/working-with-objects/names","type":"string"},"uid":{"description":"UID of the referent. More info: https://v1-8.docs.kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids","type":"string"}}},"v1.Status":{"id":"v1.Status","description":"Status is a return value for calls that don't return other objects.","properties":{"apiVersion":{"description":"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources","type":"string"},"code":{"description":"Suggested HTTP return code for this status, 0 if not set.","type":"integer","format":"int32"},"details":{"description":"Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.","$ref":"#/definitions/v1.StatusDetails"},"kind":{"description":"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds","type":"string"},"message":{"description":"A human-readable description of the status of this operation.","type":"string"},"metadata":{"description":"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds","$ref":"#/definitions/v1.ListMeta"},"reason":{"description":"A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.","type":"string"},"status":{"description":"Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status","type":"string"}}},"v1.StatusCause":{"id":"v1.StatusCause","description":"StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.","properties":{"field":{"description":"The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"","type":"string"},"message":{"description":"A human-readable description of the cause of the error. This field may be presented as-is to a reader.","type":"string"},"reason":{"description":"A machine-readable description of the cause of the error. If this value is empty there is no information available.","type":"string"}}},"v1.StatusDetails":{"id":"v1.StatusDetails","description":"StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.","properties":{"causes":{"description":"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.","type":"array","items":{"$ref":"#/definitions/v1.StatusCause"}},"group":{"description":"The group attribute of the resource associated with the status StatusReason.","type":"string"},"kind":{"description":"The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds","type":"string"},"name":{"description":"The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).","type":"string"},"retryAfterSeconds":{"description":"If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.","type":"integer","format":"int32"},"uid":{"description":"UID of the resource. (when there is a single resource which can be described). More info: https://v1-8.docs.kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids","type":"string"}}},"||authz.Collection":{"id":"||authz.Collection"},"||authz.RoleCreateResponse":{"id":"||authz.RoleCreateResponse"},"||role.Role":{"id":"||role.Role"}},"securityDefinitions":{"JWT":{"type":"apiKey","name":"Authorization","in":"header"}},"security":[{"JWT":[]}],"tags":[{"description":"Create and manage containers.\n","name":"Container","x-displayName":"Containers"},{"name":"Image","x-displayName":"Images"},{"description":"Networks are user-defined networks that containers can be attached to. See the [networking documentation](https://docs.docker.com/engine/userguide/networking/) for more information.\n","name":"Network","x-displayName":"Networks"},{"description":"Create and manage persistent storage that can be attached to containers.\n","name":"Volume","x-displayName":"Volumes"},{"description":"Run new commands inside running containers. See the [command-line reference](https://docs.docker.com/engine/reference/commandline/exec/) for more information.\n\nTo exec a command in a container, you first need to create an exec instance, then start it. These two API endpoints are wrapped up in a single command-line command, `docker exec`.\n","name":"Exec","x-displayName":"Exec"},{"description":"Engines can be clustered together in a swarm. See [the swarm mode documentation](https://docs.docker.com/engine/swarm/) for more information.\n","name":"Swarm","x-displayName":"Swarm"},{"description":"Nodes are instances of the Engine participating in a swarm. Swarm mode must be enabled for these endpoints to work.\n","name":"Node","x-displayName":"Nodes"},{"description":"Services are the definitions of tasks to run on a swarm. Swarm mode must be enabled for these endpoints to work.\n","name":"Service","x-displayName":"Services"},{"description":"A task is a container running on a swarm. It is the atomic scheduling unit of swarm. Swarm mode must be enabled for these endpoints to work.\n","name":"Task","x-displayName":"Tasks"},{"description":"Secrets are sensitive data that can be used by services. Swarm mode must be enabled for these endpoints to work.\n","name":"Secret","x-displayName":"Secrets"},{"name":"Plugin","x-displayName":"Plugins"},{"name":"System","x-displayName":"System"},{"description":"API endpoints which are specific to UCP","name":"UCP"}]}// JavaScript source code + + , + dom_id: "swagger-ui-container", + supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'], + validatorUrl: null, + docExpansion: 'list', + supportedSubmitMethods: [], + onComplete: function(swaggerApi, swaggerUi){ + if(typeof initOAuth == "function") { + initOAuth({ + clientId: "your-client-id", + clientSecret: "your-client-secret", + realm: "your-realms", + appName: "your-app-name", + scopeSeparator: "," + }); + } + + if(window.SwaggerTranslator) { + window.SwaggerTranslator.translate(); + } + + $('pre code').each(function(i, e) { + hljs.highlightBlock(e) + }); + }, + onFailure: function(data) { + log("Unable to Load SwaggerUI"); + }, + apisSorter: "alpha", + showRequestHeaders: false + }); + + // if you have an apiKey you would like to pre-populate on the page for demonstration purposes... + /* + var apiKey = "myApiKeyXXXX123456789"; + $('#input_apiKey').val(apiKey); + */ + + window.swaggerUi.load(); + + function log() { + if ('console' in window) { + console.log.apply(console, arguments); + } + } +}); diff --git a/reference/ucp/3.1/api/o2c.html b/reference/ucp/3.1/api/o2c.html new file mode 100644 index 0000000000..88e8bf114b --- /dev/null +++ b/reference/ucp/3.1/api/o2c.html @@ -0,0 +1,20 @@ +<script> +var qp = null; +if(window.location.hash) { + qp = location.hash.substring(1); +} +else { + qp = location.search.substring(1); +} +qp = qp ? JSON.parse('{"' + qp.replace(/&/g, '","').replace(/=/g,'":"') + '"}', + function(key, value) { + return key===""?value:decodeURIComponent(value) } + ):{} + +if (window.opener.swaggerUi.tokenUrl) + window.opener.processOAuthCode(qp); +else + window.opener.onOAuthComplete(qp); + +window.close(); +</script> \ No newline at end of file diff --git a/reference/ucp/3.1/api/swagger-fix.diff b/reference/ucp/3.1/api/swagger-fix.diff new file mode 100644 index 0000000000..514ded9fb2 --- /dev/null +++ b/reference/ucp/3.1/api/swagger-fix.diff @@ -0,0 +1,25 @@ +403c403 +< var fragments = $.param.fragment().split('/'); +--- +> var fragments = location.hash.substring(1).split('/'); +413c413 +< $("#"+dom_id).slideto({highlight: false}); +--- +> //$("#"+dom_id).slideto({highlight: false}); +421c421 +< $("#"+dom_id).slideto({highlight: false}); +--- +> //$("#"+dom_id).slideto({highlight: false}); +429c429 +< $('#'+li_dom_id).slideto({highlight: false}); +--- +> //$('#'+li_dom_id).slideto({highlight: false}); +31936c31936 +< $.bbq.pushState('#/', 2); +--- +> //$.bbq.pushState('#/', 2); +32269c32269 +< });}).call(this); +\ No newline at end of file +--- +> });}).call(this); diff --git a/reference/ucp/3.1/api/swagger-ui.js b/reference/ucp/3.1/api/swagger-ui.js new file mode 100644 index 0000000000..207714d300 --- /dev/null +++ b/reference/ucp/3.1/api/swagger-ui.js @@ -0,0 +1,32269 @@ +/** + * swagger-ui - Swagger UI is a dependency-free collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API + * @version v2.1.3 + * @link http://swagger.io + * @license Apache-2.0 + */ +(function(){'use strict'; + +window.SwaggerUi = Backbone.Router.extend({ + + dom_id: 'swagger_ui', + + // Attributes + options: null, + api: null, + headerView: null, + mainView: null, + + // SwaggerUi accepts all the same options as SwaggerApi + initialize: function(options) { + options = options || {}; + if(!options.highlightSizeThreshold) { + options.highlightSizeThreshold = 100000; + } + + // Allow dom_id to be overridden + if (options.dom_id) { + this.dom_id = options.dom_id; + delete options.dom_id; + } + + if (!options.supportedSubmitMethods){ + options.supportedSubmitMethods = [ + 'get', + 'put', + 'post', + 'delete', + 'head', + 'options', + 'patch' + ]; + } + + if (typeof options.oauth2RedirectUrl === 'string') { + window.oAuthRedirectUrl = options.redirectUrl; + } + + // Create an empty div which contains the dom_id + if (! $('#' + this.dom_id).length){ + $('body').append('<div id="' + this.dom_id + '"></div>') ; + } + + this.options = options; + + // set marked options + marked.setOptions({gfm: true}); + + // Set the callbacks + var that = this; + this.options.success = function() { return that.render(); }; + this.options.progress = function(d) { return that.showMessage(d); }; + this.options.failure = function(d) { return that.onLoadFailure(d); }; + + // Create view to handle the header inputs + this.headerView = new SwaggerUi.Views.HeaderView({el: $('#header')}); + + // Event handler for when the baseUrl/apiKey is entered by user + this.headerView.on('update-swagger-ui', function(data) { + return that.updateSwaggerUi(data); + }); + }, + + // Set an option after initializing + setOption: function(option, value) { + this.options[option] = value; + }, + + // Get the value of a previously set option + getOption: function(option) { + return this.options[option]; + }, + + // Event handler for when url/key is received from user + updateSwaggerUi: function(data){ + this.options.url = data.url; + this.load(); + }, + + // Create an api and render + load: function(){ + // Initialize the API object + if (this.mainView) { + this.mainView.clear(); + } + var url = this.options.url; + if (url && url.indexOf('http') !== 0) { + url = this.buildUrl(window.location.href.toString(), url); + } + if(this.api) { + this.options.authorizations = this.api.clientAuthorizations.authz; + } + this.options.url = url; + this.headerView.update(url); + + this.api = new SwaggerClient(this.options); + }, + + // collapse all sections + collapseAll: function(){ + Docs.collapseEndpointListForResource(''); + }, + + // list operations for all sections + listAll: function(){ + Docs.collapseOperationsForResource(''); + }, + + // expand operations for all sections + expandAll: function(){ + Docs.expandOperationsForResource(''); + }, + + // This is bound to success handler for SwaggerApi + // so it gets called when SwaggerApi completes loading + render: function(){ + this.showMessage('Finished Loading Resource Information. Rendering Swagger UI...'); + this.mainView = new SwaggerUi.Views.MainView({ + model: this.api, + el: $('#' + this.dom_id), + swaggerOptions: this.options, + router: this + }).render(); + this.showMessage(); + switch (this.options.docExpansion) { + case 'full': + this.expandAll(); break; + case 'list': + this.listAll(); break; + default: + break; + } + this.renderGFM(); + + if (this.options.onComplete){ + this.options.onComplete(this.api, this); + } + + setTimeout(Docs.shebang.bind(this), 100); + }, + + buildUrl: function(base, url){ + if (url.indexOf('/') === 0) { + var parts = base.split('/'); + base = parts[0] + '//' + parts[2]; + return base + url; + } else { + var endOfPath = base.length; + + if (base.indexOf('?') > -1){ + endOfPath = Math.min(endOfPath, base.indexOf('?')); + } + + if (base.indexOf('#') > -1){ + endOfPath = Math.min(endOfPath, base.indexOf('#')); + } + + base = base.substring(0, endOfPath); + + if (base.indexOf('/', base.length - 1 ) !== -1){ + return base + url; + } + + return base + '/' + url; + } + }, + + // Shows message on topbar of the ui + showMessage: function(data){ + if (data === undefined) { + data = ''; + } + var $msgbar = $('#message-bar'); + $msgbar.removeClass('message-fail'); + $msgbar.addClass('message-success'); + $msgbar.html(data); + if(window.SwaggerTranslator) { + window.SwaggerTranslator.translate($msgbar); + } + }, + + // shows message in red + onLoadFailure: function(data){ + if (data === undefined) { + data = ''; + } + $('#message-bar').removeClass('message-success'); + $('#message-bar').addClass('message-fail'); + + var val = $('#message-bar').text(data); + + if (this.options.onFailure) { + this.options.onFailure(data); + } + + return val; + }, + + // Renders GFM for elements with 'markdown' class + renderGFM: function(){ + $('.markdown').each(function(){ + $(this).html(marked($(this).html())); + }); + + $('.propDesc', '.model-signature .description').each(function () { + $(this).html(marked($(this).html())).addClass('markdown'); + }); + } + +}); + +window.SwaggerUi.Views = {}; + +// don't break backward compatibility with previous versions and warn users to upgrade their code +(function(){ + window.authorizations = { + add: function() { + warn('Using window.authorizations is deprecated. Please use SwaggerUi.api.clientAuthorizations.add().'); + + if (typeof window.swaggerUi === 'undefined') { + throw new TypeError('window.swaggerUi is not defined'); + } + + if (window.swaggerUi instanceof SwaggerUi) { + window.swaggerUi.api.clientAuthorizations.add.apply(window.swaggerUi.api.clientAuthorizations, arguments); + } + } + }; + + window.ApiKeyAuthorization = function() { + warn('window.ApiKeyAuthorization is deprecated. Please use SwaggerClient.ApiKeyAuthorization.'); + SwaggerClient.ApiKeyAuthorization.apply(window, arguments); + }; + + window.PasswordAuthorization = function() { + warn('window.PasswordAuthorization is deprecated. Please use SwaggerClient.PasswordAuthorization.'); + SwaggerClient.PasswordAuthorization.apply(window, arguments); + }; + + function warn(message) { + if ('console' in window && typeof window.console.warn === 'function') { + console.warn(message); + } + } +})(); + + +// UMD +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['b'], function (b) { + return (root.SwaggerUi = factory(b)); + }); + } else if (typeof exports === 'object') { + // Node. Does not work with strict CommonJS, but + // only CommonJS-like environments that support module.exports, + // like Node. + module.exports = factory(require('b')); + } else { + // Browser globals + root.SwaggerUi = factory(root.b); + } +}(this, function () { + return SwaggerUi; +})); + +this["Handlebars"] = this["Handlebars"] || {}; +this["Handlebars"]["templates"] = this["Handlebars"]["templates"] || {}; +this["Handlebars"]["templates"]["apikey_button_view"] = Handlebars.template({"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return "<!--div class='auth_button' id='apikey_button'><img class='auth_icon' alt='apply api key' src='images/apikey.jpeg'></div-->\n<div class='auth_container' id='apikey_container'>\n <div class='key_input_container'>\n <div class='auth_label'><label for='input_apiKey_entry'>" + + escapeExpression(((helper = (helper = helpers.keyName || (depth0 != null ? depth0.keyName : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"keyName","hash":{},"data":data}) : helper))) + + "</label></div>\n <input placeholder='api_key' class='auth_input' id='input_apiKey_entry' name='apiKey' type='text'/>\n <div class='auth_submit'><a class='auth_submit_button' id='apply_api_key' href='#' data-sw-translate>apply</a></div>\n </div>\n</div>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["basic_auth_button_view"] = Handlebars.template({"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + return "<div class='auth_button' id='basic_auth_button'><img class='auth_icon' src='images/password.jpeg'></div>\n<div class='auth_container' id='basic_auth_container'>\n <div class='key_input_container'>\n <div class=\"auth_label\"><label for=\"input_username\" data-sw-translate>Username</label></div>\n <input placeholder=\"username\" class=\"auth_input\" id=\"input_username\" name=\"username\" type=\"text\"/>\n <div class=\"auth_label\"><label for=\"password\" data-sw-translate>Password</label></div>\n <input placeholder=\"password\" class=\"auth_input\" id=\"input_password\" name=\"password\" type=\"password\"/>\n <div class='auth_submit'><a class='auth_submit_button' id=\"apply_basic_auth\" href=\"#\">apply</a></div>\n </div>\n</div>\n\n"; + },"useData":true}); +this["Handlebars"]["templates"]["content_type"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers.each.call(depth0, (depth0 != null ? depth0.produces : depth0), {"name":"each","hash":{},"fn":this.program(2, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"2":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, buffer = " <option value=\""; + stack1 = lambda(depth0, depth0); + if (stack1 != null) { buffer += stack1; } + buffer += "\">"; + stack1 = lambda(depth0, depth0); + if (stack1 != null) { buffer += stack1; } + return buffer + "</option>\n"; +},"4":function(depth0,helpers,partials,data) { + return " <option value=\"application/json\">application/json</option>\n"; + },"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<label data-sw-translate for=\"" + + escapeExpression(((helper = (helper = helpers.contentTypeId || (depth0 != null ? depth0.contentTypeId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"contentTypeId","hash":{},"data":data}) : helper))) + + "\">Response Content Type</label>\n<select name=\"contentType\" id=\"" + + escapeExpression(((helper = (helper = helpers.contentTypeId || (depth0 != null ? depth0.contentTypeId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"contentTypeId","hash":{},"data":data}) : helper))) + + "\">\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.produces : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(4, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + "</select>\n"; +},"useData":true}); +'use strict'; + + +$(function() { + + // Helper function for vertically aligning DOM elements + // http://www.seodenver.com/simple-vertical-align-plugin-for-jquery/ + $.fn.vAlign = function() { + return this.each(function(){ + var ah = $(this).height(); + var ph = $(this).parent().height(); + var mh = (ph - ah) / 2; + $(this).css('margin-top', mh); + }); + }; + + $.fn.stretchFormtasticInputWidthToParent = function() { + return this.each(function(){ + var p_width = $(this).closest("form").innerWidth(); + var p_padding = parseInt($(this).closest("form").css('padding-left') ,10) + parseInt($(this).closest('form').css('padding-right'), 10); + var this_padding = parseInt($(this).css('padding-left'), 10) + parseInt($(this).css('padding-right'), 10); + $(this).css('width', p_width - p_padding - this_padding); + }); + }; + + $('form.formtastic li.string input, form.formtastic textarea').stretchFormtasticInputWidthToParent(); + + // Vertically center these paragraphs + // Parent may need a min-height for this to work.. + $('ul.downplayed li div.content p').vAlign(); + + // When a sandbox form is submitted.. + $("form.sandbox").submit(function(){ + + var error_free = true; + + // Cycle through the forms required inputs + $(this).find("input.required").each(function() { + + // Remove any existing error styles from the input + $(this).removeClass('error'); + + // Tack the error style on if the input is empty.. + if ($(this).val() === '') { + $(this).addClass('error'); + $(this).wiggle(); + error_free = false; + } + + }); + + return error_free; + }); + +}); + +function clippyCopiedCallback() { + $('#api_key_copied').fadeIn().delay(1000).fadeOut(); + + // var b = $("#clippy_tooltip_" + a); + // b.length != 0 && (b.attr("title", "copied!").trigger("tipsy.reload"), setTimeout(function() { + // b.attr("title", "copy to clipboard") + // }, + // 500)) +} + +// Logging function that accounts for browsers that don't have window.console +function log(){ + log.history = log.history || []; + log.history.push(arguments); + if(this.console){ + console.log( Array.prototype.slice.call(arguments)[0] ); + } +} + +// Handle browsers that do console incorrectly (IE9 and below, see http://stackoverflow.com/a/5539378/7913) +if (Function.prototype.bind && console && typeof console.log === "object") { + [ + "log","info","warn","error","assert","dir","clear","profile","profileEnd" + ].forEach(function (method) { + console[method] = this.bind(console[method], console); + }, Function.prototype.call); +} + +window.Docs = { + + shebang: function() { + + // If shebang has an operation nickname in it.. + // e.g. /docs/#!/words/get_search + var fragments = $.param.fragment().split('/'); + fragments.shift(); // get rid of the bang + + switch (fragments.length) { + case 1: + if (fragments[0].length > 0) { // prevent matching "#/" + // Expand all operations for the resource and scroll to it + var dom_id = 'resource_' + fragments[0]; + + Docs.expandEndpointListForResource(fragments[0]); + $("#"+dom_id).slideto({highlight: false}); + } + break; + case 2: + // Refer to the endpoint DOM element, e.g. #words_get_search + + // Expand Resource + Docs.expandEndpointListForResource(fragments[0]); + $("#"+dom_id).slideto({highlight: false}); + + // Expand operation + var li_dom_id = fragments.join('_'); + var li_content_dom_id = li_dom_id + "_content"; + + + Docs.expandOperation($('#'+li_content_dom_id)); + $('#'+li_dom_id).slideto({highlight: false}); + break; + } + + }, + + toggleEndpointListForResource: function(resource) { + var elem = $('li#resource_' + Docs.escapeResourceName(resource) + ' ul.endpoints'); + if (elem.is(':visible')) { + Docs.collapseEndpointListForResource(resource); + } else { + Docs.expandEndpointListForResource(resource); + } + }, + + // Expand resource + expandEndpointListForResource: function(resource) { + var resource = Docs.escapeResourceName(resource); + if (resource == '') { + $('.resource ul.endpoints').slideDown(); + return; + } + + $('li#resource_' + resource).addClass('active'); + + var elem = $('li#resource_' + resource + ' ul.endpoints'); + elem.slideDown(); + }, + + // Collapse resource and mark as explicitly closed + collapseEndpointListForResource: function(resource) { + var resource = Docs.escapeResourceName(resource); + if (resource == '') { + $('.resource ul.endpoints').slideUp(); + return; + } + + $('li#resource_' + resource).removeClass('active'); + + var elem = $('li#resource_' + resource + ' ul.endpoints'); + elem.slideUp(); + }, + + expandOperationsForResource: function(resource) { + // Make sure the resource container is open.. + Docs.expandEndpointListForResource(resource); + + if (resource == '') { + $('.resource ul.endpoints li.operation div.content').slideDown(); + return; + } + + $('li#resource_' + Docs.escapeResourceName(resource) + ' li.operation div.content').each(function() { + Docs.expandOperation($(this)); + }); + }, + + collapseOperationsForResource: function(resource) { + // Make sure the resource container is open.. + Docs.expandEndpointListForResource(resource); + + if (resource == '') { + $('.resource ul.endpoints li.operation div.content').slideUp(); + return; + } + + $('li#resource_' + Docs.escapeResourceName(resource) + ' li.operation div.content').each(function() { + Docs.collapseOperation($(this)); + }); + }, + + escapeResourceName: function(resource) { + return resource.replace(/[!"#$%&'()*+,.\/:;<=>?@\[\\\]\^`{|}~]/g, "\\$&"); + }, + + expandOperation: function(elem) { + elem.slideDown(); + }, + + collapseOperation: function(elem) { + elem.slideUp(); + } +}; + +'use strict'; + +Handlebars.registerHelper('sanitize', function(html) { + // Strip the script tags from the html, and return it as a Handlebars.SafeString + html = html.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, ''); + return new Handlebars.SafeString(html); +}); + +Handlebars.registerHelper('renderTextParam', function(param) { + var result, type = 'text', idAtt = ''; + var isArray = param.type.toLowerCase() === 'array' || param.allowMultiple; + var defaultValue = isArray && Array.isArray(param.default) ? param.default.join('\n') : param.default; + + var dataVendorExtensions = Object.keys(param).filter(function(property) { + // filter X-data- properties + return property.match(/^X-data-/i) !== null; + }).reduce(function(result, property) { + // remove X- from property name, so it results in html attributes like data-foo='bar' + return result += ' ' + property.substring(2, property.length) + '=\'' + param[property] + '\''; + }, ''); + + if (typeof defaultValue === 'undefined') { + defaultValue = ''; + } + + if(param.format && param.format === 'password') { + type = 'password'; + } + + if(param.valueId) { + idAtt = ' id=\'' + param.valueId + '\''; + } + + if(isArray) { + result = '<textarea class=\'body-textarea' + (param.required ? ' required' : '') + '\' name=\'' + param.name + '\'' + idAtt + dataVendorExtensions; + result += ' placeholder=\'Provide multiple values in new lines' + (param.required ? ' (at least one required).' : '.') + '\'>'; + result += defaultValue + '</textarea>'; + } else { + var parameterClass = 'parameter'; + if(param.required) { + parameterClass += ' required'; + } + result = '<input class=\'' + parameterClass + '\' minlength=\'' + (param.required ? 1 : 0) + '\''; + result += ' name=\'' + param.name +'\' placeholder=\'' + (param.required ? '(required)' : '') + '\'' + idAtt + dataVendorExtensions; + result += ' type=\'' + type + '\' value=\'' + defaultValue + '\'/>'; + } + return new Handlebars.SafeString(result); +}); + +this["Handlebars"]["templates"]["main"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression, buffer = " <div class=\"info_title\">" + + escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.title : stack1), depth0)) + + "</div>\n <div class=\"info_description markdown\">"; + stack1 = lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.description : stack1), depth0); + if (stack1 != null) { buffer += stack1; } + buffer += "</div>\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.externalDocs : depth0), {"name":"if","hash":{},"fn":this.program(2, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += " "; + stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.termsOfServiceUrl : stack1), {"name":"if","hash":{},"fn":this.program(4, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "\n "; + stack1 = helpers['if'].call(depth0, ((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.name : stack1), {"name":"if","hash":{},"fn":this.program(6, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "\n "; + stack1 = helpers['if'].call(depth0, ((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.url : stack1), {"name":"if","hash":{},"fn":this.program(8, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "\n "; + stack1 = helpers['if'].call(depth0, ((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.email : stack1), {"name":"if","hash":{},"fn":this.program(10, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "\n "; + stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.license : stack1), {"name":"if","hash":{},"fn":this.program(12, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + "\n"; +},"2":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression; + return " <p>" + + escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.externalDocs : depth0)) != null ? stack1.description : stack1), depth0)) + + "</p>\n <a href=\"" + + escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.externalDocs : depth0)) != null ? stack1.url : stack1), depth0)) + + "\" target=\"_blank\">" + + escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.externalDocs : depth0)) != null ? stack1.url : stack1), depth0)) + + "</a>\n"; +},"4":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression; + return "<div class=\"info_tos\"><a href=\"" + + escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.termsOfServiceUrl : stack1), depth0)) + + "\" data-sw-translate>Terms of service</a></div>"; +},"6":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression; + return "<div class='info_name' data-sw-translate>Created by " + + escapeExpression(lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.name : stack1), depth0)) + + "</div>"; +},"8":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression; + return "<div class='info_url' data-sw-translate>See more at <a href=\"" + + escapeExpression(lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.url : stack1), depth0)) + + "\">" + + escapeExpression(lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.url : stack1), depth0)) + + "</a></div>"; +},"10":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression; + return "<div class='info_email'><a href=\"mailto:" + + escapeExpression(lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.email : stack1), depth0)) + + "?subject=" + + escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.title : stack1), depth0)) + + "\" data-sw-translate>Contact the developer</a></div>"; +},"12":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression; + return "<div class='info_license'><a href='" + + escapeExpression(lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.license : stack1)) != null ? stack1.url : stack1), depth0)) + + "'>" + + escapeExpression(lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.license : stack1)) != null ? stack1.name : stack1), depth0)) + + "</a></div>"; +},"14":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression; + return " , <span style=\"font-variant: small-caps\" data-sw-translate>api version</span>: " + + escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.version : stack1), depth0)) + + "\n "; +},"16":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <span style=\"float:right\"><a href=\"" + + escapeExpression(((helper = (helper = helpers.validatorUrl || (depth0 != null ? depth0.validatorUrl : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"validatorUrl","hash":{},"data":data}) : helper))) + + "/debug?url=" + + escapeExpression(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"url","hash":{},"data":data}) : helper))) + + "\"><img id=\"validator\" src=\"" + + escapeExpression(((helper = (helper = helpers.validatorUrl || (depth0 != null ? depth0.validatorUrl : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"validatorUrl","hash":{},"data":data}) : helper))) + + "?url=" + + escapeExpression(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"url","hash":{},"data":data}) : helper))) + + "\"></a>\n </span>\n"; +},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<div class='info' id='api_info'>\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.info : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "</div>\n<div class='container' id='resources_container'>\n <ul id='resources'></ul>\n\n <div class=\"footer\">\n <h4 style=\"color: #999\">[ <span style=\"font-variant: small-caps\">base url</span>: " + + escapeExpression(((helper = (helper = helpers.basePath || (depth0 != null ? depth0.basePath : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"basePath","hash":{},"data":data}) : helper))) + + "\n"; + stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.version : stack1), {"name":"if","hash":{},"fn":this.program(14, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "]\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.validatorUrl : depth0), {"name":"if","hash":{},"fn":this.program(16, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + " </h4>\n </div>\n</div>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["operation"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + return "deprecated"; + },"3":function(depth0,helpers,partials,data) { + return " <h4>Warning: Deprecated</h4>\n"; + },"5":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, buffer = " <h4>Implementation Notes</h4>\n <div class=\"markdown\">"; + stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"description","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + return buffer + "</div>\n"; +},"7":function(depth0,helpers,partials,data) { + return " <div class=\"auth\">\n <span class=\"api-ic ic-error\">"; + },"9":function(depth0,helpers,partials,data) { + var stack1, buffer = " <div class=\"api_information_panel\">\n"; + stack1 = helpers.each.call(depth0, depth0, {"name":"each","hash":{},"fn":this.program(10, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + " </div>\n"; +},"10":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression, buffer = " <div title='"; + stack1 = lambda((depth0 != null ? depth0.description : depth0), depth0); + if (stack1 != null) { buffer += stack1; } + return buffer + "'>" + + escapeExpression(lambda((depth0 != null ? depth0.scope : depth0), depth0)) + + "</div>\n"; +},"12":function(depth0,helpers,partials,data) { + return "</span></div>"; + },"14":function(depth0,helpers,partials,data) { + return " <div class='access'>\n <span class=\"api-ic ic-off\" title=\"click to authenticate\"></span>\n </div>\n"; + },"16":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <h4><span data-sw-translate>Response Class</span> (<span data-sw-translate>Status</span> " + + escapeExpression(((helper = (helper = helpers.successCode || (depth0 != null ? depth0.successCode : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"successCode","hash":{},"data":data}) : helper))) + + ")</h4>\n <p><span class=\"model-signature\" /></p>\n <br/>\n <div class=\"response-content-type\" />\n"; +},"18":function(depth0,helpers,partials,data) { + return " <h4 data-sw-translate>Parameters</h4>\n <table class='fullwidth'>\n <thead>\n <tr>\n <th style=\"width: 100px; max-width: 100px\" data-sw-translate>Parameter</th>\n <th style=\"width: 310px; max-width: 310px\" data-sw-translate>Value</th>\n <th style=\"width: 200px; max-width: 200px\" data-sw-translate>Description</th>\n <th style=\"width: 100px; max-width: 100px\" data-sw-translate>Parameter Type</th>\n <th style=\"width: 220px; max-width: 230px\" data-sw-translate>Data Type</th>\n </tr>\n </thead>\n <tbody class=\"operation-params\">\n\n </tbody>\n </table>\n"; + },"20":function(depth0,helpers,partials,data) { + return " <div style='margin:0;padding:0;display:inline'></div>\n <h4 data-sw-translate>Response Messages</h4>\n <table class='fullwidth'>\n <thead>\n <tr>\n <th data-sw-translate>HTTP Status Code</th>\n <th data-sw-translate>Reason</th>\n <th data-sw-translate>Response Model</th>\n <th data-sw-translate>Headers</th>\n </tr>\n </thead>\n <tbody class=\"operation-status\">\n\n </tbody>\n </table>\n"; + },"22":function(depth0,helpers,partials,data) { + return ""; +},"24":function(depth0,helpers,partials,data) { + return " <div class='sandbox_header'>\n <input class='submit' type='button' value='Try it out!' data-sw-translate/>\n <a href='#' class='response_hider' style='display:none' data-sw-translate>Hide Response</a>\n <span class='response_throbber' style='display:none'></span>\n </div>\n"; + },"26":function(depth0,helpers,partials,data) { + return " <h4 data-sw-translate>Request Headers</h4>\n <div class='block request_headers'></div>\n"; + },"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, options, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, blockHelperMissing=helpers.blockHelperMissing, buffer = "\n <ul class='operations' >\n <li class='" + + escapeExpression(((helper = (helper = helpers.method || (depth0 != null ? depth0.method : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"method","hash":{},"data":data}) : helper))) + + " operation' id='" + + escapeExpression(((helper = (helper = helpers.parentId || (depth0 != null ? depth0.parentId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"parentId","hash":{},"data":data}) : helper))) + + "_" + + escapeExpression(((helper = (helper = helpers.nickname || (depth0 != null ? depth0.nickname : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"nickname","hash":{},"data":data}) : helper))) + + "'>\n <div class='heading'>\n <h3>\n <span class='http_method'>\n <a href='#!/" + + escapeExpression(((helper = (helper = helpers.encodedParentId || (depth0 != null ? depth0.encodedParentId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"encodedParentId","hash":{},"data":data}) : helper))) + + "/" + + escapeExpression(((helper = (helper = helpers.nickname || (depth0 != null ? depth0.nickname : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"nickname","hash":{},"data":data}) : helper))) + + "' class=\"toggleOperation\">" + + escapeExpression(((helper = (helper = helpers.method || (depth0 != null ? depth0.method : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"method","hash":{},"data":data}) : helper))) + + "</a>\n </span>\n <span class='path'>\n <a href='#!/" + + escapeExpression(((helper = (helper = helpers.encodedParentId || (depth0 != null ? depth0.encodedParentId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"encodedParentId","hash":{},"data":data}) : helper))) + + "/" + + escapeExpression(((helper = (helper = helpers.nickname || (depth0 != null ? depth0.nickname : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"nickname","hash":{},"data":data}) : helper))) + + "' class=\"toggleOperation "; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.deprecated : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "\">" + + escapeExpression(((helper = (helper = helpers.path || (depth0 != null ? depth0.path : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"path","hash":{},"data":data}) : helper))) + + "</a>\n </span>\n </h3>\n <ul class='options'>\n <li>\n <a href='#!/" + + escapeExpression(((helper = (helper = helpers.encodedParentId || (depth0 != null ? depth0.encodedParentId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"encodedParentId","hash":{},"data":data}) : helper))) + + "/" + + escapeExpression(((helper = (helper = helpers.nickname || (depth0 != null ? depth0.nickname : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"nickname","hash":{},"data":data}) : helper))) + + "' class=\"toggleOperation\">"; + stack1 = ((helper = (helper = helpers.summary || (depth0 != null ? depth0.summary : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"summary","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + buffer += "</a>\n </li>\n </ul>\n </div>\n <div class='content' id='" + + escapeExpression(((helper = (helper = helpers.parentId || (depth0 != null ? depth0.parentId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"parentId","hash":{},"data":data}) : helper))) + + "_" + + escapeExpression(((helper = (helper = helpers.nickname || (depth0 != null ? depth0.nickname : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"nickname","hash":{},"data":data}) : helper))) + + "_content' style='display:none'>\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.deprecated : depth0), {"name":"if","hash":{},"fn":this.program(3, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.description : depth0), {"name":"if","hash":{},"fn":this.program(5, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + stack1 = ((helper = (helper = helpers.oauth || (depth0 != null ? depth0.oauth : depth0)) != null ? helper : helperMissing),(options={"name":"oauth","hash":{},"fn":this.program(7, data),"inverse":this.noop,"data":data}),(typeof helper === functionType ? helper.call(depth0, options) : helper)); + if (!helpers.oauth) { stack1 = blockHelperMissing.call(depth0, stack1, options); } + if (stack1 != null) { buffer += stack1; } + buffer += "\n"; + stack1 = helpers.each.call(depth0, (depth0 != null ? depth0.oauth : depth0), {"name":"each","hash":{},"fn":this.program(9, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += " "; + stack1 = ((helper = (helper = helpers.oauth || (depth0 != null ? depth0.oauth : depth0)) != null ? helper : helperMissing),(options={"name":"oauth","hash":{},"fn":this.program(12, data),"inverse":this.noop,"data":data}),(typeof helper === functionType ? helper.call(depth0, options) : helper)); + if (!helpers.oauth) { stack1 = blockHelperMissing.call(depth0, stack1, options); } + if (stack1 != null) { buffer += stack1; } + buffer += "\n"; + stack1 = ((helper = (helper = helpers.oauth || (depth0 != null ? depth0.oauth : depth0)) != null ? helper : helperMissing),(options={"name":"oauth","hash":{},"fn":this.program(14, data),"inverse":this.noop,"data":data}),(typeof helper === functionType ? helper.call(depth0, options) : helper)); + if (!helpers.oauth) { stack1 = blockHelperMissing.call(depth0, stack1, options); } + if (stack1 != null) { buffer += stack1; } + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.type : depth0), {"name":"if","hash":{},"fn":this.program(16, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += " <form accept-charset='UTF-8' class='sandbox'>\n <div style='margin:0;padding:0;display:inline'></div>\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.parameters : depth0), {"name":"if","hash":{},"fn":this.program(18, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.responseMessages : depth0), {"name":"if","hash":{},"fn":this.program(20, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isReadOnly : depth0), {"name":"if","hash":{},"fn":this.program(22, data),"inverse":this.program(24, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += " </form>\n <div class='response' style='display:none'>\n <h4>Curl</h4>\n <div class='block curl'></div>\n <h4 data-sw-translate>Request URL</h4>\n <div class='block request_url'></div>\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.showRequestHeaders : depth0), {"name":"if","hash":{},"fn":this.program(26, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + " <h4 data-sw-translate>Response Body</h4>\n <div class='block response_body'></div>\n <h4 data-sw-translate>Response Code</h4>\n <div class='block response_code'></div>\n <h4 data-sw-translate>Response Headers</h4>\n <div class='block response_headers'></div>\n </div>\n </div>\n </li>\n </ul>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["param"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isFile : depth0), {"name":"if","hash":{},"fn":this.program(2, data),"inverse":this.program(4, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"2":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <input type=\"file\" name='" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "' id='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'/>\n <div class=\"parameter-content-type\" />\n"; +},"4":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0['default'] : depth0), {"name":"if","hash":{},"fn":this.program(5, data),"inverse":this.program(7, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"5":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <textarea class='body-textarea' name='" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "' id='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'>" + + escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper))) + + "</textarea>\n <br />\n <div class=\"parameter-content-type\" />\n"; +},"7":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <textarea class='body-textarea' name='" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "' id='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'></textarea>\n <br />\n <div class=\"parameter-content-type\" />\n"; +},"9":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isFile : depth0), {"name":"if","hash":{},"fn":this.program(2, data),"inverse":this.program(10, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"10":function(depth0,helpers,partials,data) { + var stack1, helperMissing=helpers.helperMissing, buffer = ""; + stack1 = ((helpers.renderTextParam || (depth0 && depth0.renderTextParam) || helperMissing).call(depth0, depth0, {"name":"renderTextParam","hash":{},"fn":this.program(11, data),"inverse":this.noop,"data":data})); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"11":function(depth0,helpers,partials,data) { + return ""; +},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<td class='code'><label for='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'>" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "</label></td>\n<td>\n\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isBody : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(9, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "\n</td>\n<td class=\"markdown\">"; + stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"description","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + buffer += "</td>\n<td>"; + stack1 = ((helper = (helper = helpers.paramType || (depth0 != null ? depth0.paramType : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"paramType","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + return buffer + "</td>\n<td>\n <span class=\"model-signature\"></span>\n</td>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["param_list"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + return " required"; + },"3":function(depth0,helpers,partials,data) { + return " multiple=\"multiple\""; + },"5":function(depth0,helpers,partials,data) { + return " required "; + },"7":function(depth0,helpers,partials,data) { + var stack1, buffer = " <option "; + stack1 = helpers.unless.call(depth0, (depth0 != null ? depth0.hasDefault : depth0), {"name":"unless","hash":{},"fn":this.program(8, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + " value=''></option>\n"; +},"8":function(depth0,helpers,partials,data) { + return " selected=\"\" "; + },"10":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "\n <option "; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isDefault : depth0), {"name":"if","hash":{},"fn":this.program(11, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += " value='" + + escapeExpression(((helper = (helper = helpers.value || (depth0 != null ? depth0.value : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"value","hash":{},"data":data}) : helper))) + + "'> " + + escapeExpression(((helper = (helper = helpers.value || (depth0 != null ? depth0.value : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"value","hash":{},"data":data}) : helper))) + + " "; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isDefault : depth0), {"name":"if","hash":{},"fn":this.program(13, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + " </option>\n\n"; +},"11":function(depth0,helpers,partials,data) { + return " selected=\"\" "; + },"13":function(depth0,helpers,partials,data) { + return " (default) "; + },"15":function(depth0,helpers,partials,data) { + return "<strong>"; + },"17":function(depth0,helpers,partials,data) { + return "</strong>"; + },"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<td class='code"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.required : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "'><label for='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'>" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "</label></td>\n<td>\n <select "; + stack1 = ((helpers.isArray || (depth0 && depth0.isArray) || helperMissing).call(depth0, depth0, {"name":"isArray","hash":{},"fn":this.program(3, data),"inverse":this.noop,"data":data})); + if (stack1 != null) { buffer += stack1; } + buffer += " class=\"parameter "; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.required : depth0), {"name":"if","hash":{},"fn":this.program(5, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "\" name=\"" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "\" id=\"" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "\">\n\n"; + stack1 = helpers.unless.call(depth0, (depth0 != null ? depth0.required : depth0), {"name":"unless","hash":{},"fn":this.program(7, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "\n"; + stack1 = helpers.each.call(depth0, ((stack1 = (depth0 != null ? depth0.allowableValues : depth0)) != null ? stack1.descriptiveValues : stack1), {"name":"each","hash":{},"fn":this.program(10, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "\n </select>\n</td>\n<td class=\"markdown\">"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.required : depth0), {"name":"if","hash":{},"fn":this.program(15, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"description","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.required : depth0), {"name":"if","hash":{},"fn":this.program(17, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "</td>\n<td>"; + stack1 = ((helper = (helper = helpers.paramType || (depth0 != null ? depth0.paramType : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"paramType","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + return buffer + "</td>\n<td><span class=\"model-signature\"></span></td>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["param_readonly"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <textarea class='body-textarea' readonly='readonly' name='" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "' id='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'>" + + escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper))) + + "</textarea>\n"; +},"3":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0['default'] : depth0), {"name":"if","hash":{},"fn":this.program(4, data),"inverse":this.program(6, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"4":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " " + + escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper))) + + "\n"; +},"6":function(depth0,helpers,partials,data) { + return " (empty)\n"; + },"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<td class='code'><label for='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'>" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "</label></td>\n<td>\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isBody : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(3, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "</td>\n<td class=\"markdown\">"; + stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"description","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + buffer += "</td>\n<td>"; + stack1 = ((helper = (helper = helpers.paramType || (depth0 != null ? depth0.paramType : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"paramType","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + return buffer + "</td>\n<td><span class=\"model-signature\"></span></td>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["param_readonly_required"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <textarea class='body-textarea' readonly='readonly' placeholder='(required)' name='" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "' id='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'>" + + escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper))) + + "</textarea>\n"; +},"3":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0['default'] : depth0), {"name":"if","hash":{},"fn":this.program(4, data),"inverse":this.program(6, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"4":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " " + + escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper))) + + "\n"; +},"6":function(depth0,helpers,partials,data) { + return " (empty)\n"; + },"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<td class='code required'><label for='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'>" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "</label></td>\n<td>\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isBody : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(3, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "</td>\n<td class=\"markdown\">"; + stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"description","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + buffer += "</td>\n<td>"; + stack1 = ((helper = (helper = helpers.paramType || (depth0 != null ? depth0.paramType : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"paramType","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + return buffer + "</td>\n<td><span class=\"model-signature\"></span></td>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["param_required"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isFile : depth0), {"name":"if","hash":{},"fn":this.program(2, data),"inverse":this.program(4, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"2":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <input type=\"file\" name='" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "' id='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'/>\n"; +},"4":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0['default'] : depth0), {"name":"if","hash":{},"fn":this.program(5, data),"inverse":this.program(7, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"5":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <textarea class='body-textarea required' placeholder='(required)' name='" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "' id=\"" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "\">" + + escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper))) + + "</textarea>\n <br />\n <div class=\"parameter-content-type\" />\n"; +},"7":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <textarea class='body-textarea required' placeholder='(required)' name='" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "' id='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'></textarea>\n <br />\n <div class=\"parameter-content-type\" />\n"; +},"9":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isFile : depth0), {"name":"if","hash":{},"fn":this.program(10, data),"inverse":this.program(12, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"10":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <input class='parameter' class='required' type='file' name='" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "' id='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'/>\n"; +},"12":function(depth0,helpers,partials,data) { + var stack1, helperMissing=helpers.helperMissing, buffer = ""; + stack1 = ((helpers.renderTextParam || (depth0 && depth0.renderTextParam) || helperMissing).call(depth0, depth0, {"name":"renderTextParam","hash":{},"fn":this.program(13, data),"inverse":this.noop,"data":data})); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"13":function(depth0,helpers,partials,data) { + return ""; +},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<td class='code required'><label for='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'>" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "</label></td>\n<td>\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isBody : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(9, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "</td>\n<td>\n <strong><span class=\"markdown\">"; + stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"description","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + buffer += "</span></strong>\n</td>\n<td>"; + stack1 = ((helper = (helper = helpers.paramType || (depth0 != null ? depth0.paramType : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"paramType","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + return buffer + "</td>\n<td><span class=\"model-signature\"></span></td>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["parameter_content_type"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers.each.call(depth0, (depth0 != null ? depth0.consumes : depth0), {"name":"each","hash":{},"fn":this.program(2, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"2":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, buffer = " <option value=\""; + stack1 = lambda(depth0, depth0); + if (stack1 != null) { buffer += stack1; } + buffer += "\">"; + stack1 = lambda(depth0, depth0); + if (stack1 != null) { buffer += stack1; } + return buffer + "</option>\n"; +},"4":function(depth0,helpers,partials,data) { + return " <option value=\"application/json\">application/json</option>\n"; + },"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<label for=\"" + + escapeExpression(((helper = (helper = helpers.parameterContentTypeId || (depth0 != null ? depth0.parameterContentTypeId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"parameterContentTypeId","hash":{},"data":data}) : helper))) + + "\">Parameter content type:</label>\n<select name=\"parameterContentType\" id=\"" + + escapeExpression(((helper = (helper = helpers.parameterContentTypeId || (depth0 != null ? depth0.parameterContentTypeId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"parameterContentTypeId","hash":{},"data":data}) : helper))) + + "\">\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.consumes : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(4, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + "</select>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["resource"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + return " : "; + },"3":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <li>\n <a href='" + + escapeExpression(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"url","hash":{},"data":data}) : helper))) + + "' data-sw-translate>Raw</a>\n </li>\n"; +},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, options, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, blockHelperMissing=helpers.blockHelperMissing, buffer = "<div class='heading'>\n <h2>\n <a href='#!/" + + escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper))) + + "' class=\"toggleEndpointList\" data-id=\"" + + escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper))) + + "\">" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "</a> "; + stack1 = ((helper = (helper = helpers.summary || (depth0 != null ? depth0.summary : depth0)) != null ? helper : helperMissing),(options={"name":"summary","hash":{},"fn":this.program(1, data),"inverse":this.noop,"data":data}),(typeof helper === functionType ? helper.call(depth0, options) : helper)); + if (!helpers.summary) { stack1 = blockHelperMissing.call(depth0, stack1, options); } + if (stack1 != null) { buffer += stack1; } + stack1 = ((helper = (helper = helpers.summary || (depth0 != null ? depth0.summary : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"summary","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + buffer += "\n </h2>\n <ul class='options'>\n <li>\n <a href='#!/" + + escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper))) + + "' id='endpointListTogger_" + + escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper))) + + "' class=\"toggleEndpointList\" data-id=\"" + + escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper))) + + "\" data-sw-translate>Show/Hide</a>\n </li>\n <li>\n <a href='#' class=\"collapseResource\" data-id=\"" + + escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper))) + + "\" data-sw-translate>\n List Operations\n </a>\n </li>\n <li>\n <a href='#' class=\"expandResource\" data-id=\"" + + escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper))) + + "\" data-sw-translate>\n Expand Operations\n </a>\n </li>\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.url : depth0), {"name":"if","hash":{},"fn":this.program(3, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + " </ul>\n</div>\n<ul class='endpoints' id='" + + escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper))) + + "_endpoint_list' style='display:none'>\n\n</ul>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["response_content_type"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers.each.call(depth0, (depth0 != null ? depth0.produces : depth0), {"name":"each","hash":{},"fn":this.program(2, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"2":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, buffer = " <option value=\""; + stack1 = lambda(depth0, depth0); + if (stack1 != null) { buffer += stack1; } + buffer += "\">"; + stack1 = lambda(depth0, depth0); + if (stack1 != null) { buffer += stack1; } + return buffer + "</option>\n"; +},"4":function(depth0,helpers,partials,data) { + return " <option value=\"application/json\">application/json</option>\n"; + },"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<label data-sw-translate for=\"" + + escapeExpression(((helper = (helper = helpers.responseContentTypeId || (depth0 != null ? depth0.responseContentTypeId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"responseContentTypeId","hash":{},"data":data}) : helper))) + + "\">Response Content Type</label>\n<select name=\"responseContentType\" id=\"" + + escapeExpression(((helper = (helper = helpers.responseContentTypeId || (depth0 != null ? depth0.responseContentTypeId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"responseContentTypeId","hash":{},"data":data}) : helper))) + + "\">\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.produces : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(4, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + "</select>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["signature"] = Handlebars.template({"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<div>\n<ul class=\"signature-nav\">\n <li><a class=\"description-link\" href=\"#\" data-sw-translate>Model</a></li>\n <li><a class=\"snippet-link\" href=\"#\" data-sw-translate>Model Schema</a></li>\n</ul>\n<div>\n\n<div class=\"signature-container\">\n <div class=\"description\">\n "; + stack1 = ((helper = (helper = helpers.signature || (depth0 != null ? depth0.signature : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"signature","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + return buffer + "\n </div>\n\n <div class=\"snippet\">\n <pre><code>" + + escapeExpression(((helper = (helper = helpers.sampleJSON || (depth0 != null ? depth0.sampleJSON : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"sampleJSON","hash":{},"data":data}) : helper))) + + "</code></pre>\n <small class=\"notice\"></small>\n </div>\n</div>\n\n"; +},"useData":true}); +this["Handlebars"]["templates"]["status_code"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + var lambda=this.lambda, escapeExpression=this.escapeExpression; + return " <tr>\n <td>" + + escapeExpression(lambda((data && data.key), depth0)) + + "</td>\n <td>" + + escapeExpression(lambda((depth0 != null ? depth0.description : depth0), depth0)) + + "</td>\n <td>" + + escapeExpression(lambda((depth0 != null ? depth0.type : depth0), depth0)) + + "</td>\n </tr>\n"; +},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<td width='15%' class='code'>" + + escapeExpression(((helper = (helper = helpers.code || (depth0 != null ? depth0.code : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"code","hash":{},"data":data}) : helper))) + + "</td>\n<td class=\"markdown\">"; + stack1 = ((helper = (helper = helpers.message || (depth0 != null ? depth0.message : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"message","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + buffer += "</td>\n<td width='50%'><span class=\"model-signature\" /></td>\n<td class=\"headers\">\n <table>\n <tbody>\n"; + stack1 = helpers.each.call(depth0, (depth0 != null ? depth0.headers : depth0), {"name":"each","hash":{},"fn":this.program(1, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + " </tbody>\n </table>\n</td>"; +},"useData":true}); +/** + * swagger-client - swagger-client is a javascript client for use with swaggering APIs. + * @version v2.1.4 + * @link http://swagger.io + * @license Apache-2.0 + */ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.SwaggerClient = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ +'use strict'; + +var auth = require('./lib/auth'); +var helpers = require('./lib/helpers'); +var SwaggerClient = require('./lib/client'); +var deprecationWrapper = function (url, options) { + helpers.log('This is deprecated, use "new SwaggerClient" instead.'); + + return new SwaggerClient(url, options); +}; + +/* Here for IE8 Support */ +if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function(obj, start) { + for (var i = (start || 0), j = this.length; i < j; i++) { + if (this[i] === obj) { return i; } + } + return -1; + }; +} + +/* Here for IE8 Support */ +if (!String.prototype.trim) { + String.prototype.trim = function () { + return this.replace(/^\s+|\s+$/g, ''); + }; +} + +/* Here for node 10.x support */ +if (!String.prototype.endsWith) { + String.prototype.endsWith = function(suffix) { + return this.indexOf(suffix, this.length - suffix.length) !== -1; + }; +} + +module.exports = SwaggerClient; + +SwaggerClient.ApiKeyAuthorization = auth.ApiKeyAuthorization; +SwaggerClient.PasswordAuthorization = auth.PasswordAuthorization; +SwaggerClient.CookieAuthorization = auth.CookieAuthorization; +SwaggerClient.SwaggerApi = deprecationWrapper; +SwaggerClient.SwaggerClient = deprecationWrapper; +SwaggerClient.SchemaMarkup = require('./lib/schema-markup'); + +},{"./lib/auth":2,"./lib/client":3,"./lib/helpers":4,"./lib/schema-markup":7}],2:[function(require,module,exports){ +'use strict'; + +var helpers = require('./helpers'); +var btoa = require('btoa'); // jshint ignore:line +var CookieJar = require('cookiejar'); +var _ = { + each: require('lodash-compat/collection/each'), + includes: require('lodash-compat/collection/includes'), + isObject: require('lodash-compat/lang/isObject'), + isArray: require('lodash-compat/lang/isArray') +}; + +/** + * SwaggerAuthorizations applys the correct authorization to an operation being executed + */ +var SwaggerAuthorizations = module.exports.SwaggerAuthorizations = function (authz) { + this.authz = authz || {}; +}; + +/** + * Add auths to the hash + * Will overwrite any existing + * + */ +SwaggerAuthorizations.prototype.add = function (name, auth) { + if(_.isObject(name)) { + for (var key in name) { + this.authz[key] = name[key]; + } + } else if(typeof name === 'string' ){ + this.authz[name] = auth; + } + + return auth; +}; + +SwaggerAuthorizations.prototype.remove = function (name) { + return delete this.authz[name]; +}; + +SwaggerAuthorizations.prototype.apply = function (obj, securities) { + var status = true; + var applyAll = !securities; + var flattenedSecurities = []; + + // Securities could be [ {} ] + _.each(securities, function (obj, key) { + + // Make sure we account for securities being [ str ] + if(typeof key === 'string') { + flattenedSecurities.push(key); + } + + // Flatten keys in to our array + _.each(obj, function (val, key) { + flattenedSecurities.push(key); + }); + }); + + _.each(this.authz, function (auth, authName) { + if(applyAll || _.includes(flattenedSecurities, authName)) { + var newStatus = auth.apply(obj); + status = status && !!newStatus; // logical ORs regarding status + } + }); + + return status; +}; + +/** + * ApiKeyAuthorization allows a query param or header to be injected + */ +var ApiKeyAuthorization = module.exports.ApiKeyAuthorization = function (name, value, type) { + this.name = name; + this.value = value; + this.type = type; +}; + +ApiKeyAuthorization.prototype.apply = function (obj) { + if (this.type === 'query') { + if (obj.url.indexOf('?') > 0) { + obj.url = obj.url + '&' + this.name + '=' + this.value; + } else { + obj.url = obj.url + '?' + this.name + '=' + this.value; + } + + return true; + } else if (this.type === 'header') { + if(typeof obj.headers[this.name] === 'undefined') { + obj.headers[this.name] = this.value; + } + + return true; + } +}; + +var CookieAuthorization = module.exports.CookieAuthorization = function (cookie) { + this.cookie = cookie; +}; + +CookieAuthorization.prototype.apply = function (obj) { + obj.cookieJar = obj.cookieJar || new CookieJar(); + obj.cookieJar.setCookie(this.cookie); + + return true; +}; + +/** + * Password Authorization is a basic auth implementation + */ +var PasswordAuthorization = module.exports.PasswordAuthorization = function (username, password) { + if (arguments.length === 3) { + helpers.log('PasswordAuthorization: the \'name\' argument has been removed, pass only username and password'); + username = arguments[1]; + password = arguments[2]; + } + this.username = username; + this.password = password; +}; + +PasswordAuthorization.prototype.apply = function (obj) { + if(typeof obj.headers.Authorization === 'undefined') { + obj.headers.Authorization = 'Basic ' + btoa(this.username + ':' + this.password); + } + + return true; +}; + +},{"./helpers":4,"btoa":18,"cookiejar":19,"lodash-compat/collection/each":55,"lodash-compat/collection/includes":58,"lodash-compat/lang/isArray":143,"lodash-compat/lang/isObject":147}],3:[function(require,module,exports){ +'use strict'; + +var _ = { + bind: require('lodash-compat/function/bind'), + cloneDeep: require('lodash-compat/lang/cloneDeep'), + find: require('lodash-compat/collection/find'), + forEach: require('lodash-compat/collection/forEach'), + indexOf: require('lodash-compat/array/indexOf'), + isArray: require('lodash-compat/lang/isArray'), + isObject: require('lodash-compat/lang/isObject'), + isFunction: require('lodash-compat/lang/isFunction'), + isPlainObject: require('lodash-compat/lang/isPlainObject'), + isUndefined: require('lodash-compat/lang/isUndefined') +}; +var auth = require('./auth'); +var helpers = require('./helpers'); +var Model = require('./types/model'); +var Operation = require('./types/operation'); +var OperationGroup = require('./types/operationGroup'); +var Resolver = require('./resolver'); +var SwaggerHttp = require('./http'); +var SwaggerSpecConverter = require('./spec-converter'); + +// We have to keep track of the function/property names to avoid collisions for tag names which are used to allow the +// following usage: 'client.{tagName}' +var reservedClientTags = [ + 'apis', + 'authorizationScheme', + 'authorizations', + 'basePath', + 'build', + 'buildFrom1_1Spec', + 'buildFrom1_2Spec', + 'buildFromSpec', + 'clientAuthorizations', + 'convertInfo', + 'debug', + 'defaultErrorCallback', + 'defaultSuccessCallback', + 'fail', + 'failure', + 'finish', + 'help', + 'idFromOp', + 'info', + 'initialize', + 'isBuilt', + 'isValid', + 'modelPropertyMacro', + 'models', + 'modelsArray', + 'options', + 'parameterMacro', + 'parseUri', + 'progress', + 'resourceCount', + 'sampleModels', + 'selfReflect', + 'setConsolidatedModels', + 'spec', + 'supportedSubmitMethods', + 'swaggerRequestHeaders', + 'tagFromLabel', + 'url', + 'useJQuery' +]; +// We have to keep track of the function/property names to avoid collisions for tag names which are used to allow the +// following usage: 'client.apis.{tagName}' +var reservedApiTags = [ + 'apis', + 'asCurl', + 'description', + 'externalDocs', + 'help', + 'label', + 'name', + 'operation', + 'operations', + 'operationsArray', + 'path', + 'tag' +]; +var supportedOperationMethods = ['delete', 'get', 'head', 'options', 'patch', 'post', 'put']; +var SwaggerClient = module.exports = function (url, options) { + this.authorizations = null; + this.authorizationScheme = null; + this.basePath = null; + this.debug = false; + this.info = null; + this.isBuilt = false; + this.isValid = false; + this.modelsArray = []; + this.resourceCount = 0; + this.url = null; + this.useJQuery = false; + this.swaggerObject = {}; + + this.clientAuthorizations = new auth.SwaggerAuthorizations(); + + if (typeof url !== 'undefined') { + return this.initialize(url, options); + } else { + return this; + } +}; + +SwaggerClient.prototype.initialize = function (url, options) { + this.models = {}; + this.sampleModels = {}; + + if (typeof url === 'string') { + this.url = url; + } else if (_.isObject(url)) { + options = url; + this.url = options.url; + } + + options = options || {}; + this.clientAuthorizations.add(options.authorizations); + this.swaggerRequestHeaders = options.swaggerRequestHeaders || 'application/json;charset=utf-8,*/*'; + this.defaultSuccessCallback = options.defaultSuccessCallback || null; + this.defaultErrorCallback = options.defaultErrorCallback || null; + this.modelPropertyMacro = options.modelPropertyMacro || null; + this.parameterMacro = options.parameterMacro || null; + + if (typeof options.success === 'function') { + this.success = options.success; + } + + if (options.useJQuery) { + this.useJQuery = options.useJQuery; + } + + this.options = options || {}; + + this.supportedSubmitMethods = options.supportedSubmitMethods || []; + this.failure = options.failure || function () {}; + this.progress = options.progress || function () {}; + this.spec = _.cloneDeep(options.spec); // Clone so we do not alter the provided document + + if (options.scheme) { + this.scheme = options.scheme; + } + + if (typeof options.success === 'function') { + this.ready = true; + this.build(); + } +}; + +SwaggerClient.prototype.build = function (mock) { + if (this.isBuilt) { + return this; + } + + var self = this; + + this.progress('fetching resource list: ' + this.url); + + var obj = { + useJQuery: this.useJQuery, + url: this.url, + method: 'get', + headers: { + accept: this.swaggerRequestHeaders + }, + on: { + error: function (response) { + if (self.url.substring(0, 4) !== 'http') { + return self.fail('Please specify the protocol for ' + self.url); + } else if (response.status === 0) { + return self.fail('Can\'t read from server. It may not have the appropriate access-control-origin settings.'); + } else if (response.status === 404) { + return self.fail('Can\'t read swagger JSON from ' + self.url); + } else { + return self.fail(response.status + ' : ' + response.statusText + ' ' + self.url); + } + }, + response: function (resp) { + + var responseObj = resp.obj; + if(!responseObj) { + return self.fail('failed to parse JSON/YAML response'); + } + + self.swaggerVersion = responseObj.swaggerVersion; + self.swaggerObject = responseObj; + + if (responseObj.swagger && parseInt(responseObj.swagger) === 2) { + self.swaggerVersion = responseObj.swagger; + + new Resolver().resolve(responseObj, self.url, self.buildFromSpec, self); + + self.isValid = true; + } else { + var converter = new SwaggerSpecConverter(); + self.oldSwaggerObject = self.swaggerObject; + + converter.setDocumentationLocation(self.url); + converter.convert(responseObj, self.clientAuthorizations, function(spec) { + self.swaggerObject = spec; + new Resolver().resolve(spec, self.url, self.buildFromSpec, self); + self.isValid = true; + }); + } + } + } + }; + + if (this.spec) { + self.swaggerObject = this.spec; + setTimeout(function () { + new Resolver().resolve(self.spec, self.buildFromSpec, self); + }, 10); + } else { + this.clientAuthorizations.apply(obj); + + if (mock) { + return obj; + } + + new SwaggerHttp().execute(obj, this.options); + } + + return this; +}; + +SwaggerClient.prototype.buildFromSpec = function (response) { + if (this.isBuilt) { + return this; + } + + this.apis = {}; + this.apisArray = []; + this.basePath = response.basePath || ''; + this.consumes = response.consumes; + this.host = response.host || ''; + this.info = response.info || {}; + this.produces = response.produces; + this.schemes = response.schemes || []; + this.securityDefinitions = response.securityDefinitions; + this.title = response.title || ''; + + if (response.externalDocs) { + this.externalDocs = response.externalDocs; + } + + // legacy support + this.authSchemes = response.securityDefinitions; + + var definedTags = {}; + var k; + + if (Array.isArray(response.tags)) { + definedTags = {}; + + for (k = 0; k < response.tags.length; k++) { + var t = response.tags[k]; + definedTags[t.name] = t; + } + } + + var location; + + if (typeof this.url === 'string') { + location = this.parseUri(this.url); + if (typeof this.scheme === 'undefined' && typeof this.schemes === 'undefined' || this.schemes.length === 0) { + this.scheme = location.scheme || 'http'; + } else if (typeof this.scheme === 'undefined') { + this.scheme = this.schemes[0]; + } + + if (typeof this.host === 'undefined' || this.host === '') { + this.host = location.host; + + if (location.port) { + this.host = this.host + ':' + location.port; + } + } + } + else { + if (typeof this.schemes === 'undefined' || this.schemes.length === 0) { + this.scheme = 'http'; + } + else if (typeof this.scheme === 'undefined') { + this.scheme = this.schemes[0]; + } + } + + this.definitions = response.definitions; + + var key; + + for (key in this.definitions) { + var model = new Model(key, this.definitions[key], this.models, this.modelPropertyMacro); + + if (model) { + this.models[key] = model; + } + } + + // get paths, create functions for each operationId + var self = this; + + // Bind help to 'client.apis' + self.apis.help = _.bind(self.help, self); + + _.forEach(response.paths, function (pathObj, path) { + // Only process a path if it's an object + if (!_.isPlainObject(pathObj)) { + return; + } + + _.forEach(supportedOperationMethods, function (method) { + var operation = pathObj[method]; + + if (_.isUndefined(operation)) { + // Operation does not exist + return; + } else if (!_.isPlainObject(operation)) { + // Operation exists but it is not an Operation Object. Since this is invalid, log it. + helpers.log('The \'' + method + '\' operation for \'' + path + '\' path is not an Operation Object'); + + return; + } + + var tags = operation.tags; + + if (_.isUndefined(tags) || !_.isArray(tags) || tags.length === 0) { + tags = operation.tags = [ 'default' ]; + } + + var operationId = self.idFromOp(path, method, operation); + var operationObject = new Operation(self, + operation.scheme, + operationId, + method, + path, + operation, + self.definitions, + self.models, + self.clientAuthorizations); + + // bind self operation's execute command to the api + _.forEach(tags, function (tag) { + var clientProperty = _.indexOf(reservedClientTags, tag) > -1 ? '_' + tag : tag; + var apiProperty = _.indexOf(reservedApiTags, tag) > -1 ? '_' + tag : tag; + var operationGroup = self[clientProperty]; + + if (clientProperty !== tag) { + helpers.log('The \'' + tag + '\' tag conflicts with a SwaggerClient function/property name. Use \'client.' + + clientProperty + '\' or \'client.apis.' + tag + '\' instead of \'client.' + tag + '\'.'); + } + + if (apiProperty !== tag) { + helpers.log('The \'' + tag + '\' tag conflicts with a SwaggerClient operation function/property name. Use ' + + '\'client.apis.' + apiProperty + '\' instead of \'client.apis.' + tag + '\'.'); + } + + if (_.indexOf(reservedApiTags, operationId) > -1) { + helpers.log('The \'' + operationId + '\' operationId conflicts with a SwaggerClient operation ' + + 'function/property name. Use \'client.apis.' + apiProperty + '._' + operationId + + '\' instead of \'client.apis.' + apiProperty + '.' + operationId + '\'.'); + + operationId = '_' + operationId; + operationObject.nickname = operationId; // So 'client.apis.[tag].operationId.help() works properly + } + + if (_.isUndefined(operationGroup)) { + operationGroup = self[clientProperty] = self.apis[apiProperty] = {}; + + operationGroup.operations = {}; + operationGroup.label = apiProperty; + operationGroup.apis = {}; + + var tagDef = definedTags[tag]; + + if (!_.isUndefined(tagDef)) { + operationGroup.description = tagDef.description; + operationGroup.externalDocs = tagDef.externalDocs; + } + + self[clientProperty].help = _.bind(self.help, operationGroup); + self.apisArray.push(new OperationGroup(tag, operationGroup.description, operationGroup.externalDocs, operationObject)); + } + + // Bind tag help + if (!_.isFunction(operationGroup.help)) { + operationGroup.help = _.bind(self.help, operationGroup); + } + + // bind to the apis object + self.apis[apiProperty][operationId] = operationGroup[operationId] = _.bind(operationObject.execute, + operationObject); + self.apis[apiProperty][operationId].help = operationGroup[operationId].help = _.bind(operationObject.help, + operationObject); + self.apis[apiProperty][operationId].asCurl = operationGroup[operationId].asCurl = _.bind(operationObject.asCurl, + operationObject); + + operationGroup.apis[operationId] = operationGroup.operations[operationId] = operationObject; + + // legacy UI feature + var api = _.find(self.apisArray, function (api) { + return api.tag === tag; + }); + + if (api) { + api.operationsArray.push(operationObject); + } + }); + }); + }); + + this.isBuilt = true; + + if (this.success) { + this.isValid = true; + this.isBuilt = true; + this.success(); + } + + return this; +}; + +SwaggerClient.prototype.parseUri = function (uri) { + var urlParseRE = /^(((([^:\/#\?]+:)?(?:(\/\/)((?:(([^:@\/#\?]+)(?:\:([^:@\/#\?]+))?)@)?(([^:\/#\?\]\[]+|\[[^\/\]@#?]+\])(?:\:([0-9]+))?))?)?)?((\/?(?:[^\/\?#]+\/+)*)([^\?#]*)))?(\?[^#]+)?)(#.*)?/; + var parts = urlParseRE.exec(uri); + + return { + scheme: parts[4].replace(':',''), + host: parts[11], + port: parts[12], + path: parts[15] + }; +}; + +SwaggerClient.prototype.help = function (dontPrint) { + var output = ''; + + if (this instanceof SwaggerClient) { + _.forEach(this.apis, function (api, name) { + if (_.isPlainObject(api)) { + output += 'operations for the \'' + name + '\' tag\n'; + + _.forEach(api.operations, function (operation, name) { + output += ' * ' + name + ': ' + operation.summary + '\n'; + }); + } + }); + } else if (this instanceof OperationGroup || _.isPlainObject(this)) { + output += 'operations for the \'' + this.label + '\' tag\n'; + + _.forEach(this.apis, function (operation, name) { + output += ' * ' + name + ': ' + operation.summary + '\n'; + }); + } + + if (dontPrint) { + return output; + } else { + helpers.log(output); + + return output; + } +}; + +SwaggerClient.prototype.tagFromLabel = function (label) { + return label; +}; + +SwaggerClient.prototype.idFromOp = function (path, httpMethod, op) { + if(!op || !op.operationId) { + op = op || {}; + op.operationId = httpMethod + '_' + path; + } + var opId = op.operationId.replace(/[\s!@#$%^&*()_+=\[{\]};:<>|.\/?,\\'""-]/g, '_') || (path.substring(1) + '_' + httpMethod); + + opId = opId.replace(/((_){2,})/g, '_'); + opId = opId.replace(/^(_)*/g, ''); + opId = opId.replace(/([_])*$/g, ''); + return opId; +}; + +SwaggerClient.prototype.setHost = function (host) { + this.host = host; + + if(this.apis) { + _.forEach(this.apis, function(api) { + if(api.operations) { + _.forEach(api.operations, function(operation) { + operation.host = host; + }); + } + }); + } +}; + +SwaggerClient.prototype.setBasePath = function (basePath) { + this.basePath = basePath; + + if(this.apis) { + _.forEach(this.apis, function(api) { + if(api.operations) { + _.forEach(api.operations, function(operation) { + operation.basePath = basePath; + }); + } + }); + } +}; + +SwaggerClient.prototype.fail = function (message) { + this.failure(message); + + throw message; +}; +},{"./auth":2,"./helpers":4,"./http":5,"./resolver":6,"./spec-converter":8,"./types/model":9,"./types/operation":10,"./types/operationGroup":11,"lodash-compat/array/indexOf":52,"lodash-compat/collection/find":56,"lodash-compat/collection/forEach":57,"lodash-compat/function/bind":61,"lodash-compat/lang/cloneDeep":141,"lodash-compat/lang/isArray":143,"lodash-compat/lang/isFunction":145,"lodash-compat/lang/isObject":147,"lodash-compat/lang/isPlainObject":148,"lodash-compat/lang/isUndefined":151}],4:[function(require,module,exports){ +(function (process){ +'use strict'; + +var _ = { + isPlainObject: require('lodash-compat/lang/isPlainObject'), + indexOf: require('lodash-compat/array/indexOf') +}; + +module.exports.__bind = function (fn, me) { + return function(){ + return fn.apply(me, arguments); + }; +}; + +var log = module.exports.log = function() { + // Only log if available and we're not testing + if (console && process.env.NODE_ENV !== 'test') { + console.log(Array.prototype.slice.call(arguments)[0]); + } +}; + +module.exports.fail = function (message) { + log(message); +}; + +var optionHtml = module.exports.optionHtml = function (label, value) { + return '<tr><td class="optionName">' + label + ':</td><td>' + value + '</td></tr>'; +}; + +var resolveSchema = module.exports.resolveSchema = function (schema) { + if (_.isPlainObject(schema.schema)) { + schema = resolveSchema(schema.schema); + } + + return schema; +}; + +var simpleRef = module.exports.simpleRef = function (name) { + if (typeof name === 'undefined') { + return null; + } + + if (name.indexOf('#/definitions/') === 0) { + return name.substring('#/definitions/'.length); + } else { + return name; + } +}; + + +}).call(this,require('_process')) +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9oZWxwZXJzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgXyA9IHtcbiAgaXNQbGFpbk9iamVjdDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2lzUGxhaW5PYmplY3QnKSxcbiAgaW5kZXhPZjogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9hcnJheS9pbmRleE9mJylcbn07XG5cbm1vZHVsZS5leHBvcnRzLl9fYmluZCA9IGZ1bmN0aW9uIChmbiwgbWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCl7XG4gICAgcmV0dXJuIGZuLmFwcGx5KG1lLCBhcmd1bWVudHMpO1xuICB9O1xufTtcblxudmFyIGxvZyA9IG1vZHVsZS5leHBvcnRzLmxvZyA9IGZ1bmN0aW9uKCkge1xuICAvLyBPbmx5IGxvZyBpZiBhdmFpbGFibGUgYW5kIHdlJ3JlIG5vdCB0ZXN0aW5nXG4gIGlmIChjb25zb2xlICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAndGVzdCcpIHtcbiAgICBjb25zb2xlLmxvZyhBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpWzBdKTtcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMuZmFpbCA9IGZ1bmN0aW9uIChtZXNzYWdlKSB7XG4gIGxvZyhtZXNzYWdlKTtcbn07XG5cbnZhciBvcHRpb25IdG1sID0gbW9kdWxlLmV4cG9ydHMub3B0aW9uSHRtbCA9IGZ1bmN0aW9uIChsYWJlbCwgdmFsdWUpIHtcbiAgcmV0dXJuICc8dHI+PHRkIGNsYXNzPVwib3B0aW9uTmFtZVwiPicgKyBsYWJlbCArICc6PC90ZD48dGQ+JyArIHZhbHVlICsgJzwvdGQ+PC90cj4nO1xufTtcblxudmFyIHJlc29sdmVTY2hlbWEgPSBtb2R1bGUuZXhwb3J0cy5yZXNvbHZlU2NoZW1hID0gZnVuY3Rpb24gKHNjaGVtYSkge1xuICBpZiAoXy5pc1BsYWluT2JqZWN0KHNjaGVtYS5zY2hlbWEpKSB7XG4gICAgc2NoZW1hID0gcmVzb2x2ZVNjaGVtYShzY2hlbWEuc2NoZW1hKTtcbiAgfVxuXG4gIHJldHVybiBzY2hlbWE7XG59O1xuXG52YXIgc2ltcGxlUmVmID0gbW9kdWxlLmV4cG9ydHMuc2ltcGxlUmVmID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgaWYgKHR5cGVvZiBuYW1lID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKG5hbWUuaW5kZXhPZignIy9kZWZpbml0aW9ucy8nKSA9PT0gMCkge1xuICAgIHJldHVybiBuYW1lLnN1YnN0cmluZygnIy9kZWZpbml0aW9ucy8nLmxlbmd0aCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5hbWU7XG4gIH1cbn07XG5cbiJdfQ== +},{"_process":17,"lodash-compat/array/indexOf":52,"lodash-compat/lang/isPlainObject":148}],5:[function(require,module,exports){ +'use strict'; + +var helpers = require('./helpers'); +var jQuery = require('jquery'); +var request = require('superagent'); +var jsyaml = require('js-yaml'); +var _ = { + isObject: require('lodash-compat/lang/isObject') +}; + +/* + * JQueryHttpClient is a light-weight, node or browser HTTP client + */ +var JQueryHttpClient = function () {}; + +/* + * SuperagentHttpClient is a light-weight, node or browser HTTP client + */ +var SuperagentHttpClient = function () {}; + +/** + * SwaggerHttp is a wrapper for executing requests + */ +var SwaggerHttp = module.exports = function () {}; + +SwaggerHttp.prototype.execute = function (obj, opts) { + var client; + + if(opts && opts.client) { + client = opts.client; + } + else { + client = new SuperagentHttpClient(opts); + } + + // legacy support + if ((obj && obj.useJQuery === true) || this.isInternetExplorer()) { + client = new JQueryHttpClient(opts); + } + + var success = obj.on.response; + + var responseInterceptor = function(data) { + if(opts && opts.responseInterceptor) { + data = opts.responseInterceptor.apply(data); + } + success(data); + }; + + obj.on.response = function(data) { + responseInterceptor(data); + }; + + + if (_.isObject(obj) && _.isObject(obj.body)) { + // special processing for file uploads via jquery + if (obj.body.type && obj.body.type === 'formData'){ + obj.contentType = false; + obj.processData = false; + + delete obj.headers['Content-Type']; + } else { + obj.body = JSON.stringify(obj.body); + } + } + client.execute(obj); +}; + +SwaggerHttp.prototype.isInternetExplorer = function () { + var detectedIE = false; + + if (typeof navigator !== 'undefined' && navigator.userAgent) { + var nav = navigator.userAgent.toLowerCase(); + + if (nav.indexOf('msie') !== -1) { + var version = parseInt(nav.split('msie')[1]); + + if (version <= 8) { + detectedIE = true; + } + } + } + + return detectedIE; +}; + +JQueryHttpClient.prototype.execute = function (obj) { + var cb = obj.on; + var request = obj; + + obj.type = obj.method; + obj.cache = false; + delete obj.useJQuery; + + /* + obj.beforeSend = function (xhr) { + var key, results; + if (obj.headers) { + results = []; + for (key in obj.headers) { + if (key.toLowerCase() === 'content-type') { + results.push(obj.contentType = obj.headers[key]); + } else if (key.toLowerCase() === 'accept') { + results.push(obj.accepts = obj.headers[key]); + } else { + results.push(xhr.setRequestHeader(key, obj.headers[key])); + } + } + return results; + } + };*/ + + obj.data = obj.body; + + delete obj.body; + + obj.complete = function (response) { + var headers = {}; + var headerArray = response.getAllResponseHeaders().split('\n'); + + for (var i = 0; i < headerArray.length; i++) { + var toSplit = headerArray[i].trim(); + + if (toSplit.length === 0) { + continue; + } + + var separator = toSplit.indexOf(':'); + + if (separator === -1) { + // Name but no value in the header + headers[toSplit] = null; + + continue; + } + + var name = toSplit.substring(0, separator).trim(); + var value = toSplit.substring(separator + 1).trim(); + + headers[name] = value; + } + + var out = { + url: request.url, + method: request.method, + status: response.status, + statusText: response.statusText, + data: response.responseText, + headers: headers + }; + + try { + var possibleObj = response.responseJSON || jsyaml.safeLoad(response.responseText); + out.obj = (typeof possibleObj === 'string') ? {} : possibleObj; + } catch (ex) { + // do not set out.obj + helpers.log('unable to parse JSON/YAML content'); + } + + // I can throw, or parse null? + out.obj = out.obj || null; + + if (response.status >= 200 && response.status < 300) { + cb.response(out); + } else if (response.status === 0 || (response.status >= 400 && response.status < 599)) { + cb.error(out); + } else { + return cb.response(out); + } + }; + + jQuery.support.cors = true; + + return jQuery.ajax(obj); +}; + +SuperagentHttpClient.prototype.execute = function (obj) { + var method = obj.method.toLowerCase(); + + if (method === 'delete') { + method = 'del'; + } + var headers = obj.headers || {}; + var r = request[method](obj.url); + var name; + for (name in headers) { + r.set(name, headers[name]); + } + + if (obj.body) { + r.send(obj.body); + } + + if(typeof r.buffer === 'function') { + r.buffer(); // force superagent to populate res.text with the raw response data + } + + r.end(function (err, res) { + res = res || { + status: 0, + headers: {error: 'no response from server'} + }; + var response = { + url: obj.url, + method: obj.method, + headers: res.headers + }; + var cb; + + if (!err && res.error) { + err = res.error; + } + + if (err && obj.on && obj.on.error) { + response.obj = err; + response.status = res ? res.status : 500; + response.statusText = res ? res.text : err.message; + cb = obj.on.error; + } else if (res && obj.on && obj.on.response) { + var possibleObj; + + // Already parsed by by superagent? + if(res.body && Object.keys(res.body).length > 0) { + possibleObj = res.body; + } else { + try { + possibleObj = jsyaml.safeLoad(res.text); + // can parse into a string... which we don't need running around in the system + possibleObj = (typeof possibleObj === 'string') ? null : possibleObj; + } catch(e) { + helpers.log('cannot parse JSON/YAML content'); + } + } + + // null means we can't parse into object + response.obj = possibleObj || null; + + response.status = res.status; + response.statusText = res.text; + cb = obj.on.response; + } + response.data = response.statusText; + + if (cb) { + cb(response); + } + }); +}; + +},{"./helpers":4,"jquery":20,"js-yaml":21,"lodash-compat/lang/isObject":147,"superagent":160}],6:[function(require,module,exports){ +'use strict'; + +var SwaggerHttp = require('./http'); +var _ = { + isObject: require('lodash-compat/lang/isObject'), + isArray: require('lodash-compat/lang/isArray') +}; + + +/** + * Resolves a spec's remote references + */ +var Resolver = module.exports = function () {}; + +Resolver.prototype.processAllOf = function(name, definition, resolutionTable, unresolvedRefs, spec) { + var i, location, property; + + definition['x-resolved-from'] = [ '#/definitions/' + name ]; + var allOf = definition.allOf; + // the refs go first + allOf.sort(function(a, b) { + if(a.$ref && b.$ref) { return 0; } + else if(a.$ref) { return -1; } + else { return 1; } + }); + for (i = 0; i < allOf.length; i++) { + property = allOf[i]; + location = '/definitions/' + name + '/allOf'; + this.resolveInline(null, spec, property, resolutionTable, unresolvedRefs, location); + } +}; + +Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) { + var root = arg1, callback = arg2, scope = arg3, location, i; + if(typeof arg1 === 'function') { + root = null; + callback = arg1; + scope = arg2; + } + var _root = root; + this.scope = (scope || this); + this.iteration = this.iteration || 0; + + var name, path, property, propertyName; + var processedCalls = 0, resolvedRefs = {}, unresolvedRefs = {}; + var resolutionTable = []; // store objects for dereferencing + + // definitions + for (name in spec.definitions) { + var definition = spec.definitions[name]; + for (propertyName in definition.properties) { + property = definition.properties[propertyName]; + if(_.isArray(property.allOf)) { + this.processAllOf(name, property, resolutionTable, unresolvedRefs, spec); + } + else { + this.resolveTo(root, property, resolutionTable, '/definitions'); + } + } + + if(definition.allOf) { + this.processAllOf(name, definition, resolutionTable, unresolvedRefs, spec); + } + } + + // operations + for (name in spec.paths) { + var method, operation, responseCode; + path = spec.paths[name]; + + for (method in path) { + // operation reference + if(method === '$ref') { + // location = path[method]; + location = '/paths' + name; + this.resolveInline(root, spec, path, resolutionTable, unresolvedRefs, location); + } + else { + operation = path[method]; + + var parameters = operation.parameters; + for (i in parameters) { + var parameter = parameters[i]; + location = '/paths' + name + '/' + method + '/parameters'; + + if (parameter.in === 'body' && parameter.schema) { + this.resolveTo(root, parameter.schema, resolutionTable, location); + } + + if (parameter.$ref) { + // parameter reference + this.resolveInline(root, spec, parameter, resolutionTable, unresolvedRefs, parameter.$ref); + } + } + + for (responseCode in operation.responses) { + var response = operation.responses[responseCode]; + location = '/paths' + name + '/' + method + '/responses/' + responseCode; + + if(_.isObject(response)) { + if(response.$ref) { + // response reference + this.resolveInline(root, spec, response, resolutionTable, unresolvedRefs, location); + } + if (response.schema) { + this.resolveTo(root, response.schema, resolutionTable, location); + } + } + } + } + } + } + + var expectedCalls = 0, toResolve = []; + // if the root is same as obj[i].root we can resolve locally + var all = resolutionTable; + + var parts; + for(i = 0; i < all.length; i++) { + var a = all[i]; + if(root === a.root) { + if(a.resolveAs === 'ref') { + // resolve any path walking + var joined = ((a.root || '') + '/' + a.key).split('/'); + var normalized = []; + var url = ''; + var k; + + if(a.key.indexOf('../') >= 0) { + for(var j = 0; j < joined.length; j++) { + if(joined[j] === '..') { + normalized = normalized.slice(0, normalized.length-1); + } + else { + normalized.push(joined[j]); + } + } + for(k = 0; k < normalized.length; k ++) { + if(k > 0) { + url += '/'; + } + url += normalized[k]; + } + // we now have to remote resolve this because the path has changed + a.root = url; + toResolve.push(a); + } + else { + parts = a.key.split('#'); + if(parts.length === 2) { + if(parts[0].indexOf('http://') === 0 || parts[0].indexOf('https://') === 0) { + a.root = parts[0]; + } + location = parts[1].split('/'); + var r; + var s = spec; + for(k = 0; k < location.length; k++) { + var part = location[k]; + if(part !== '') { + s = s[part]; + if(typeof s !== 'undefined') { + r = s; + } + else { + r = null; + break; + } + } + } + if(r === null) { + // must resolve this too + toResolve.push(a); + } + } + } + } + else { + if (a.resolveAs === 'inline') { + if(a.key && a.key.indexOf('#') === -1 && a.key.charAt(0) !== '/') { + // handle relative schema + parts = a.root.split('/'); + location = ''; + for(i = 0; i < parts.length - 1; i++) { + location += parts[i] + '/'; + } + location += a.key; + a.root = location; + a.location = ''; + } + toResolve.push(a); + } + } + } + else { + toResolve.push(a); + } + } + expectedCalls = toResolve.length; + + // resolve anything that is local + for(var ii = 0; ii < toResolve.length; ii++) { + (function(item, self) { + if(item.root === null || item.root === root) { + // local resolve + self.resolveItem(spec, _root, resolutionTable, resolvedRefs, unresolvedRefs, item); + processedCalls += 1; + + if(processedCalls === expectedCalls) { + self.finish(spec, root, resolutionTable, resolvedRefs, unresolvedRefs, callback); + } + } + else { + var obj = { + useJQuery: false, // TODO + url: item.root, + method: 'get', + headers: { + accept: self.scope.swaggerRequestHeaders || 'application/json' + }, + on: { + error: function () { + processedCalls += 1; + unresolvedRefs[item.key] = { + root: item.root, + location: item.location + }; + + if (processedCalls === expectedCalls) { + self.finish(spec, _root, resolutionTable, resolvedRefs, unresolvedRefs, callback); + } + }, // jshint ignore:line + response: function (response) { + var swagger = response.obj; + self.resolveItem(swagger, item.root, resolutionTable, resolvedRefs, unresolvedRefs, item); + processedCalls += 1; + + if (processedCalls === expectedCalls) { + self.finish(spec, _root, resolutionTable, resolvedRefs, unresolvedRefs, callback); + } + } + } // jshint ignore:line + }; + + if (scope && scope.clientAuthorizations) { + scope.clientAuthorizations.apply(obj); + } + new SwaggerHttp().execute(obj); + } + }(toResolve[ii], this)); + } + + if (Object.keys(toResolve).length === 0) { + this.finish(spec, _root, resolutionTable, resolvedRefs, unresolvedRefs, callback); + } +}; + +Resolver.prototype.resolveItem = function(spec, root, resolutionTable, resolvedRefs, unresolvedRefs, item) { + var path = item.location; + var location = spec, parts = path.split('/'); + if(path !== '') { + for (var j = 0; j < parts.length; j++) { + var segment = parts[j]; + if (segment.indexOf('~1') !== -1) { + segment = parts[j].replace(/~0/g, '~').replace(/~1/g, '/'); + if (segment.charAt(0) !== '/') { + segment = '/' + segment; + } + } + if (typeof location === 'undefined' || location === null) { + break; + } + if (segment === '' && j === (parts.length - 1) && parts.length > 1) { + location = null; + break; + } + if (segment.length > 0) { + location = location[segment]; + } + } + } + var resolved = item.key; + parts = item.key.split('/'); + var resolvedName = parts[parts.length-1]; + + if(resolvedName.indexOf('#') >= 0) { + resolvedName = resolvedName.split('#')[1]; + } + + if (location !== null && typeof location !== 'undefined') { + resolvedRefs[resolved] = { + name: resolvedName, + obj: location, + key: item.key, + root: item.root + }; + } else { + unresolvedRefs[resolved] = { + root: item.root, + location: item.location + }; + } +}; + +Resolver.prototype.finish = function (spec, root, resolutionTable, resolvedRefs, unresolvedRefs, callback) { + // walk resolution table and replace with resolved refs + var ref; + for (ref in resolutionTable) { + var item = resolutionTable[ref]; + + var key = item.key; + var resolvedTo = resolvedRefs[key]; + if (resolvedTo) { + spec.definitions = spec.definitions || {}; + if (item.resolveAs === 'ref') { + for (key in resolvedTo.obj) { + var abs = this.retainRoot(resolvedTo.obj[key], item.root); + } + spec.definitions[resolvedTo.name] = resolvedTo.obj; + item.obj.$ref = '#/definitions/' + resolvedTo.name; + } else if (item.resolveAs === 'inline') { + var targetObj = item.obj; + targetObj['x-resolved-from'] = [ item.key ]; + delete targetObj.$ref; + + for (key in resolvedTo.obj) { + var abs = this.retainRoot(resolvedTo.obj[key], item.root); + targetObj[key] = abs; + } + } + } + } + var existingUnresolved = this.countUnresolvedRefs(spec); + + if(existingUnresolved.length === 0 || this.iteration > 5) { + this.resolveAllOf(spec.definitions); + callback.call(this.scope, spec, unresolvedRefs); + } + else { + this.iteration += 1; + this.resolve(spec, root, callback, this.scope); + } +}; + +Resolver.prototype.countUnresolvedRefs = function(spec) { + var i; + var refs = this.getRefs(spec); + var keys = []; + var unresolvedKeys = []; + for(i in refs) { + if(i.indexOf('#') === 0) { + keys.push(i.substring(1)); + } + else { + unresolvedKeys.push(i); + } + } + + // verify possible keys + for (i = 0; i < keys.length; i++) { + var part = keys[i]; + var parts = part.split('/'); + var obj = spec; + + for (var k = 0; k < parts.length; k++) { + var key = parts[k]; + if(key !== '') { + obj = obj[key]; + if(typeof obj === 'undefined') { + unresolvedKeys.push(part); + break; + } + } + } + } + return unresolvedKeys.length; +}; + +Resolver.prototype.getRefs = function(spec, obj) { + obj = obj || spec; + var output = {}; + for(var key in obj) { + if (!obj.hasOwnProperty(key)) { + continue; + } + var item = obj[key]; + if(key === '$ref' && typeof item === 'string') { + output[item] = null; + } + else if(_.isObject(item)) { + var o = this.getRefs(item); + for(var k in o) { + output[k] = null; + } + } + } + return output; +}; + +Resolver.prototype.retainRoot = function(obj, root) { + // walk object and look for relative $refs + for(var key in obj) { + var item = obj[key]; + if(key === '$ref' && typeof item === 'string') { + // stop and inspect + if(item.indexOf('http://') !== 0 && item.indexOf('https://') !== 0) { + if(item.indexOf('#') !== 0) { + item = '#' + item; + } + item = (root || '') + item; + obj[key] = item; + } + } + else if(_.isObject(item)) { + this.retainRoot(item, root); + } + } + return obj; +}; + +/** + * immediately in-lines local refs, queues remote refs + * for inline resolution + */ +Resolver.prototype.resolveInline = function (root, spec, property, resolutionTable, unresolvedRefs, location) { + var key = property.$ref, ref = property.$ref, i, p, p2, rs; + var rootTrimmed = false; + if (ref) { + if(ref.indexOf('../') === 0) { + // reset root + p = ref.split('../'); + p2 = root.split('/'); + ref = ''; + for(i = 0; i < p.length; i++) { + if(p[i] === '') { + p2 = p2.slice(0, p2.length-1); + } + else { + ref += p[i]; + } + } + root = ''; + for(i = 0; i < p2.length - 1; i++) { + if(i > 0) { root += '/'; } + root += p2[i]; + } + rootTrimmed = true; + } + if(ref.indexOf('#') >= 0) { + if(ref.indexOf('/') === 0) { + rs = ref.split('#'); + p = root.split('//'); + p2 = p[1].split('/'); + root = p[0] + '//' + p2[0] + rs[0]; + location = rs[1]; + } + else { + rs = ref.split('#'); + if(rs[0] !== '') { + p2 = root.split('/'); + p2 = p2.slice(0, p2.length - 1); + if(!rootTrimmed) { + root = ''; + for (var k = 0; k < p2.length; k++) { + if(k > 0) { root += '/'; } + root += p2[k]; + } + } + root += '/' + ref.split('#')[0]; + } + location = rs[1]; + } + } + if (ref.indexOf('http') === 0) { + if(ref.indexOf('#') >= 0) { + root = ref.split('#')[0]; + location = ref.split('#')[1]; + } + else { + root = ref; + location = ''; + } + resolutionTable.push({obj: property, resolveAs: 'inline', root: root, key: key, location: location}); + } else if (ref.indexOf('#') === 0) { + location = ref.split('#')[1]; + resolutionTable.push({obj: property, resolveAs: 'inline', root: root, key: key, location: location}); + } + else { + resolutionTable.push({obj: property, resolveAs: 'inline', root: root, key: key, location: location}); + } + } else if (property.type === 'array') { + this.resolveTo(root, property.items, resolutionTable, location); + } +}; + +Resolver.prototype.resolveTo = function (root, property, resolutionTable, location) { + var sp, i; + var ref = property.$ref; + var lroot = root; + if (typeof ref !== 'undefined') { + if(ref.indexOf('#') >= 0) { + var parts = ref.split('#'); + + // #/definitions/foo + // foo.json#/bar + if(parts[0] && ref.indexOf('/') === 0) { + + } + else if(parts[0] && ref.indexOf('http') === 0) { + + } + else if(parts[0] && parts[0].length > 0) { + // relative file + sp = root.split('/'); + lroot = ''; + for(i = 0; i < sp.length - 1; i++) { + lroot += sp[i] + '/'; + } + lroot += parts[0]; + } + else { + + } + + location = parts[1]; + } + else { + // relative file + sp = root.split('/'); + lroot = ''; + for(i = 0; i < sp.length - 1; i++) { + lroot += sp[i] + '/'; + } + lroot += ref; + location = ''; + } + resolutionTable.push({ + obj: property, resolveAs: 'ref', root: lroot, key: ref, location: location + }); + } else if (property.type === 'array') { + var items = property.items; + this.resolveTo(root, items, resolutionTable, location); + } +}; + +Resolver.prototype.resolveAllOf = function(spec, obj, depth) { + depth = depth || 0; + obj = obj || spec; + var name; + for(var key in obj) { + if (!obj.hasOwnProperty(key)) { + continue; + } + var item = obj[key]; + if(item === null) { + throw new TypeError('Swagger 2.0 does not support null types (' + obj + '). See https://github.com/swagger-api/swagger-spec/issues/229.'); + } + if(typeof item === 'object') { + this.resolveAllOf(spec, item, depth + 1); + } + if(item && typeof item.allOf !== 'undefined') { + var allOf = item.allOf; + if(_.isArray(allOf)) { + var output = {}; + output['x-composed'] = true; + if (typeof item['x-resolved-from'] !== 'undefined') { + output['x-resolved-from'] = item['x-resolved-from']; + } + output.properties = {}; + if ( item.example ){ + output.example = item.example; + } + for(var i = 0; i < allOf.length; i++) { + var component = allOf[i]; + var source = 'self'; + if(typeof component['x-resolved-from'] !== 'undefined') { + source = component['x-resolved-from'][0]; + } + + for(var part in component) { + if(!output.hasOwnProperty(part)) { + output[part] = JSON.parse(JSON.stringify(component[part])); + if(part === 'properties') { + for(name in output[part]) { + output[part][name]['x-resolved-from'] = source; + } + } + } + else { + if(part === 'properties') { + var properties = component[part]; + for(name in properties) { + output.properties[name] = JSON.parse(JSON.stringify(properties[name])); + var resolvedFrom = properties[name]['x-resolved-from']; + if (typeof resolvedFrom === 'undefined' || resolvedFrom === 'self') { + resolvedFrom = source; + } + output.properties[name]['x-resolved-from'] = resolvedFrom; + } + } + else if(part === 'required') { + // merge & dedup the required array + var a = output.required.concat(component[part]); + for(var k = 0; k < a.length; ++k) { + for(var j = k + 1; j < a.length; ++j) { + if(a[k] === a[j]) { a.splice(j--, 1); } + } + } + output.required = a; + } + else if(part === 'x-resolved-from') { + output['x-resolved-from'].push(source); + } + else { + // TODO: need to merge this property + // console.log('what to do with ' + part) + } + } + } + } + obj[key] = output; + } + } + if(_.isObject(item)) { + this.resolveAllOf(spec, item, depth + 1); + } + } +}; + +},{"./http":5,"lodash-compat/lang/isArray":143,"lodash-compat/lang/isObject":147}],7:[function(require,module,exports){ +'use strict'; + +var Helpers = require('./helpers'); + +var _ = { + isPlainObject: require('lodash-compat/lang/isPlainObject'), + isUndefined: require('lodash-compat/lang/isUndefined'), + isArray: require('lodash-compat/lang/isArray'), + isObject: require('lodash-compat/lang/isObject'), + isEmpty: require('lodash-compat/lang/isEmpty'), + map: require('lodash-compat/collection/map'), + indexOf: require('lodash-compat/array/indexOf'), + cloneDeep: require('lodash-compat/lang/cloneDeep'), + keys: require('lodash-compat/object/keys'), + forEach: require('lodash-compat/collection/forEach') +}; + +module.exports.optionHtml = optionHtml; +module.exports.typeFromJsonSchema = typeFromJsonSchema; +module.exports.getStringSignature = getStringSignature; +module.exports.schemaToHTML = schemaToHTML; +module.exports.schemaToJSON = schemaToJSON; + +function optionHtml(label, value) { + return '<tr><td class="optionName">' + label + ':</td><td>' + value + '</td></tr>'; +} + +function typeFromJsonSchema(type, format) { + var str; + + if (type === 'integer' && format === 'int32') { + str = 'integer'; + } else if (type === 'integer' && format === 'int64') { + str = 'long'; + } else if (type === 'integer' && typeof format === 'undefined') { + str = 'long'; + } else if (type === 'string' && format === 'date-time') { + str = 'date-time'; + } else if (type === 'string' && format === 'date') { + str = 'date'; + } else if (type === 'number' && format === 'float') { + str = 'float'; + } else if (type === 'number' && format === 'double') { + str = 'double'; + } else if (type === 'number' && typeof format === 'undefined') { + str = 'double'; + } else if (type === 'boolean') { + str = 'boolean'; + } else if (type === 'string') { + str = 'string'; + } + + return str; +} + +function getStringSignature(obj, baseComponent) { + var str = ''; + + if (typeof obj.$ref !== 'undefined') { + str += Helpers.simpleRef(obj.$ref); + } else if (typeof obj.type === 'undefined') { + str += 'object'; + } else if (obj.type === 'array') { + if (baseComponent) { + str += getStringSignature((obj.items || obj.$ref || {})); + } else { + str += 'Array['; + str += getStringSignature((obj.items || obj.$ref || {})); + str += ']'; + } + } else if (obj.type === 'integer' && obj.format === 'int32') { + str += 'integer'; + } else if (obj.type === 'integer' && obj.format === 'int64') { + str += 'long'; + } else if (obj.type === 'integer' && typeof obj.format === 'undefined') { + str += 'long'; + } else if (obj.type === 'string' && obj.format === 'date-time') { + str += 'date-time'; + } else if (obj.type === 'string' && obj.format === 'date') { + str += 'date'; + } else if (obj.type === 'string' && typeof obj.format === 'undefined') { + str += 'string'; + } else if (obj.type === 'number' && obj.format === 'float') { + str += 'float'; + } else if (obj.type === 'number' && obj.format === 'double') { + str += 'double'; + } else if (obj.type === 'number' && typeof obj.format === 'undefined') { + str += 'double'; + } else if (obj.type === 'boolean') { + str += 'boolean'; + } else if (obj.$ref) { + str += Helpers.simpleRef(obj.$ref); + } else { + str += obj.type; + } + + return str; +} + +function schemaToJSON(schema, models, modelsToIgnore, modelPropertyMacro) { + // Resolve the schema (Handle nested schemas) + schema = Helpers.resolveSchema(schema); + + if(typeof modelPropertyMacro !== 'function') { + modelPropertyMacro = function(prop){ + return (prop || {}).default; + }; + } + + modelsToIgnore= modelsToIgnore || {}; + + var type = schema.type || 'object'; + var format = schema.format; + var model; + var output; + + if (schema.example) { + output = schema.example; + } else if (_.isUndefined(schema.items) && _.isArray(schema.enum)) { + output = schema.enum[0]; + } + + if (_.isUndefined(output)) { + if (schema.$ref) { + model = models[Helpers.simpleRef(schema.$ref)]; + + if (!_.isUndefined(model)) { + if (_.isUndefined(modelsToIgnore[model.name])) { + modelsToIgnore[model.name] = model; + output = schemaToJSON(model.definition, models, modelsToIgnore, modelPropertyMacro); + delete modelsToIgnore[model.name]; + } else { + if (model.type === 'array') { + output = []; + } else { + output = {}; + } + } + } + } else if (!_.isUndefined(schema.default)) { + output = schema.default; + } else if (type === 'string') { + if (format === 'date-time') { + output = new Date().toISOString(); + } else if (format === 'date') { + output = new Date().toISOString().split('T')[0]; + } else { + output = 'string'; + } + } else if (type === 'integer') { + output = 0; + } else if (type === 'number') { + output = 0.0; + } else if (type === 'boolean') { + output = true; + } else if (type === 'object') { + output = {}; + + _.forEach(schema.properties, function (property, name) { + var cProperty = _.cloneDeep(property); + + // Allow macro to set the default value + cProperty.default = modelPropertyMacro(property); + + output[name] = schemaToJSON(cProperty, models, modelsToIgnore, modelPropertyMacro); + }); + } else if (type === 'array') { + output = []; + + if (_.isArray(schema.items)) { + _.forEach(schema.items, function (item) { + output.push(schemaToJSON(item, models, modelsToIgnore, modelPropertyMacro)); + }); + } else if (_.isPlainObject(schema.items)) { + output.push(schemaToJSON(schema.items, models, modelsToIgnore, modelPropertyMacro)); + } else if (_.isUndefined(schema.items)) { + output.push({}); + } else { + Helpers.log('Array type\'s \'items\' property is not an array or an object, cannot process'); + } + } + } + + return output; +} + +function schemaToHTML(name, schema, models, modelPropertyMacro) { + + var strongOpen = '<span class="strong">'; + var strongClose = '</span>'; + + // Allow for ignoring the 'name' argument.... shifting the rest + if(_.isObject(arguments[0])) { + name = void 0; + schema = arguments[0]; + models = arguments[1]; + modelPropertyMacro = arguments[2]; + } + + models = models || {}; + + // Resolve the schema (Handle nested schemas) + schema = Helpers.resolveSchema(schema); + + // Return for empty object + if(_.isEmpty(schema)) { + return strongOpen + 'Empty' + strongClose; + } + + // Dereference $ref from 'models' + if(typeof schema.$ref === 'string') { + name = Helpers.simpleRef(schema.$ref); + schema = models[name]; + if(typeof schema === 'undefined') + { + return strongOpen + name + ' is not defined!' + strongClose; + } + } + + if(typeof name !== 'string') { + name = schema.title || 'Inline Model'; + } + + // If we are a Model object... adjust accordingly + if(schema.definition) { + schema = schema.definition; + } + + if(typeof modelPropertyMacro !== 'function') { + modelPropertyMacro = function(prop){ + return (prop || {}).default; + }; + } + + var references = {}; + var seenModels = []; + var inlineModels = 0; + + + + // Generate current HTML + var html = processModel(schema, name); + + // Generate references HTML + while (_.keys(references).length > 0) { + /* jshint ignore:start */ + _.forEach(references, function (schema, name) { + var seenModel = _.indexOf(seenModels, name) > -1; + + delete references[name]; + + if (!seenModel) { + seenModels.push(name); + + html += '<br />' + processModel(schema, name); + } + }); + /* jshint ignore:end */ + } + + return html; + + ///////////////////////////////// + + function addReference(schema, name, skipRef) { + var modelName = name; + var model; + + if (schema.$ref) { + modelName = schema.title || Helpers.simpleRef(schema.$ref); + model = models[modelName]; + } else if (_.isUndefined(name)) { + modelName = schema.title || 'Inline Model ' + (++inlineModels); + model = {definition: schema}; + } + + if (skipRef !== true) { + references[modelName] = _.isUndefined(model) ? {} : model.definition; + } + + return modelName; + } + + function primitiveToHTML(schema) { + var html = '<span class="propType">'; + var type = schema.type || 'object'; + + if (schema.$ref) { + html += addReference(schema, Helpers.simpleRef(schema.$ref)); + } else if (type === 'object') { + if (!_.isUndefined(schema.properties)) { + html += addReference(schema); + } else { + html += 'object'; + } + } else if (type === 'array') { + html += 'Array['; + + if (_.isArray(schema.items)) { + html += _.map(schema.items, addReference).join(','); + } else if (_.isPlainObject(schema.items)) { + if (_.isUndefined(schema.items.$ref)) { + if (!_.isUndefined(schema.items.type) && _.indexOf(['array', 'object'], schema.items.type) === -1) { + html += schema.items.type; + } else { + html += addReference(schema.items); + } + } else { + html += addReference(schema.items, Helpers.simpleRef(schema.items.$ref)); + } + } else { + Helpers.log('Array type\'s \'items\' schema is not an array or an object, cannot process'); + html += 'object'; + } + + html += ']'; + } else { + html += schema.type; + } + + html += '</span>'; + + return html; + } + + function primitiveToOptionsHTML(schema, html) { + var options = ''; + var type = schema.type || 'object'; + var isArray = type === 'array'; + + if (isArray) { + if (_.isPlainObject(schema.items) && !_.isUndefined(schema.items.type)) { + type = schema.items.type; + } else { + type = 'object'; + } + } + + if (!_.isUndefined(schema.default)) { + options += optionHtml('Default', schema.default); + } + + switch (type) { + case 'string': + if (schema.minLength) { + options += optionHtml('Min. Length', schema.minLength); + } + + if (schema.maxLength) { + options += optionHtml('Max. Length', schema.maxLength); + } + + if (schema.pattern) { + options += optionHtml('Reg. Exp.', schema.pattern); + } + break; + case 'integer': + case 'number': + if (schema.minimum) { + options += optionHtml('Min. Value', schema.minimum); + } + + if (schema.exclusiveMinimum) { + options += optionHtml('Exclusive Min.', 'true'); + } + + if (schema.maximum) { + options += optionHtml('Max. Value', schema.maximum); + } + + if (schema.exclusiveMaximum) { + options += optionHtml('Exclusive Max.', 'true'); + } + + if (schema.multipleOf) { + options += optionHtml('Multiple Of', schema.multipleOf); + } + + break; + } + + if (isArray) { + if (schema.minItems) { + options += optionHtml('Min. Items', schema.minItems); + } + + if (schema.maxItems) { + options += optionHtml('Max. Items', schema.maxItems); + } + + if (schema.uniqueItems) { + options += optionHtml('Unique Items', 'true'); + } + + if (schema.collectionFormat) { + options += optionHtml('Coll. Format', schema.collectionFormat); + } + } + + if (_.isUndefined(schema.items)) { + if (_.isArray(schema.enum)) { + var enumString; + + if (type === 'number' || type === 'integer') { + enumString = schema.enum.join(', '); + } else { + enumString = '"' + schema.enum.join('", "') + '"'; + } + + options += optionHtml('Enum', enumString); + } + } + + if (options.length > 0) { + html = '<span class="propWrap">' + html + '<table class="optionsWrapper"><tr><th colspan="2">' + type + '</th></tr>' + options + '</table></span>'; + } + + return html; + } + + function processModel(schema, name) { + var type = schema.type || 'object'; + var isArray = schema.type === 'array'; + var html = strongOpen + name + ' ' + (isArray ? '[' : '{') + strongClose; + + if (name) { + seenModels.push(name); + } + + if (isArray) { + if (_.isArray(schema.items)) { + html += '<div>' + _.map(schema.items, function (item) { + var type = item.type || 'object'; + + if (_.isUndefined(item.$ref)) { + if (_.indexOf(['array', 'object'], type) > -1) { + if (type === 'object' && _.isUndefined(item.properties)) { + return 'object'; + } else { + return addReference(item); + } + } else { + return primitiveToOptionsHTML(item, type); + } + } else { + return addReference(item, Helpers.simpleRef(item.$ref)); + } + }).join(',</div><div>'); + } else if (_.isPlainObject(schema.items)) { + if (_.isUndefined(schema.items.$ref)) { + if (_.indexOf(['array', 'object'], schema.items.type || 'object') > -1) { + if ((_.isUndefined(schema.items.type) || schema.items.type === 'object') && _.isUndefined(schema.items.properties)) { + html += '<div>object</div>'; + } else { + html += '<div>' + addReference(schema.items) + '</div>'; + } + } else { + html += '<div>' + primitiveToOptionsHTML(schema.items, schema.items.type) + '</div>'; + } + } else { + html += '<div>' + addReference(schema.items, Helpers.simpleRef(schema.items.$ref)) + '</div>'; + } + } else { + Helpers.log('Array type\'s \'items\' property is not an array or an object, cannot process'); + html += '<div>object</div>'; + } + } else { + if (schema.$ref) { + html += '<div>' + addReference(schema, name) + '</div>'; + } else if (type === 'object') { + html += '<div>'; + + if (_.isPlainObject(schema.properties)) { + html += _.map(schema.properties, function (property, name) { + var propertyIsRequired = (_.indexOf(schema.required, name) >= 0); + var cProperty = _.cloneDeep(property); + + var requiredClass = propertyIsRequired ? 'required' : ''; + var html = '<span class="propName ' + requiredClass + '">' + name + '</span> ('; + var model; + + // Allow macro to set the default value + cProperty.default = modelPropertyMacro(cProperty); + + // Resolve the schema (Handle nested schemas) + cProperty = Helpers.resolveSchema(cProperty); + + // We need to handle property references to primitives (Issue 339) + if (!_.isUndefined(cProperty.$ref)) { + model = models[Helpers.simpleRef(cProperty.$ref)]; + + if (!_.isUndefined(model) && _.indexOf([undefined, 'array', 'object'], model.definition.type) === -1) { + // Use referenced schema + cProperty = Helpers.resolveSchema(model.definition); + } + } + + html += primitiveToHTML(cProperty); + + if(!propertyIsRequired) { + html += ', <span class="propOptKey">optional</span>'; + } + + html += ')'; + + if (!_.isUndefined(cProperty.description)) { + html += ': ' + '<span class="propDesc">' + cProperty.description + '</span>'; + } + + if (cProperty.enum) { + html += ' = <span class="propVals">[\'' + cProperty.enum.join('\', \'') + '\']</span>'; + } + + return primitiveToOptionsHTML(cProperty, html); + }).join(',</div><div>'); + } + + html += '</div>'; + } else { + html += '<div>' + primitiveToOptionsHTML(schema, type) + '</div>'; + } + } + + return html + strongOpen + (isArray ? ']' : '}') + strongClose; + } +} + +},{"./helpers":4,"lodash-compat/array/indexOf":52,"lodash-compat/collection/forEach":57,"lodash-compat/collection/map":59,"lodash-compat/lang/cloneDeep":141,"lodash-compat/lang/isArray":143,"lodash-compat/lang/isEmpty":144,"lodash-compat/lang/isObject":147,"lodash-compat/lang/isPlainObject":148,"lodash-compat/lang/isUndefined":151,"lodash-compat/object/keys":152}],8:[function(require,module,exports){ +'use strict'; + +var SwaggerHttp = require('./http'); +var _ = { + isObject: require('lodash-compat/lang/isObject') +}; + +var SwaggerSpecConverter = module.exports = function () { + this.errors = []; + this.warnings = []; + this.modelMap = {}; +}; + +SwaggerSpecConverter.prototype.setDocumentationLocation = function (location) { + this.docLocation = location; +}; + +/** + * converts a resource listing OR api declaration + **/ +SwaggerSpecConverter.prototype.convert = function (obj, clientAuthorizations, callback) { + // not a valid spec + if(!obj || !Array.isArray(obj.apis)) { + return this.finish(callback, null); + } + this.clientAuthorizations = clientAuthorizations; + + // create a new swagger object to return + var swagger = { swagger: '2.0' }; + + swagger.originalVersion = obj.swaggerVersion; + + // add the info + this.apiInfo(obj, swagger); + + // add security definitions + this.securityDefinitions(obj, swagger); + + // take basePath into account + if (obj.basePath) { + this.setDocumentationLocation(obj.basePath); + } + + // see if this is a single-file swagger definition + var isSingleFileSwagger = false; + var i; + for(i = 0; i < obj.apis.length; i++) { + var api = obj.apis[i]; + if(Array.isArray(api.operations)) { + isSingleFileSwagger = true; + } + } + if(isSingleFileSwagger) { + this.declaration(obj, swagger); + this.finish(callback, swagger); + } + else { + this.resourceListing(obj, swagger, callback); + } +}; + +SwaggerSpecConverter.prototype.declaration = function(obj, swagger) { + var name, i, p, pos; + if(!obj.apis) { + return; + } + + if (obj.basePath.indexOf('http://') === 0) { + p = obj.basePath.substring('http://'.length); + pos = p.indexOf('/'); + if (pos > 0) { + swagger.host = p.substring(0, pos); + swagger.basePath = p.substring(pos); + } + else { + swagger.host = p; + swagger.basePath = '/'; + } + } else if (obj.basePath.indexOf('https://') === 0) { + p = obj.basePath.substring('https://'.length); + pos = p.indexOf('/'); + if (pos > 0) { + swagger.host = p.substring(0, pos); + swagger.basePath = p.substring(pos); + } + else { + swagger.host = p; + swagger.basePath = '/'; + } + } else { + swagger.basePath = obj.basePath; + } + + var resourceLevelAuth; + if(obj.authorizations) { + resourceLevelAuth = obj.authorizations; + } + if(obj.consumes) { + swagger.consumes = obj.consumes; + } + if(obj.produces) { + swagger.produces = obj.produces; + } + + // build a mapping of id to name for 1.0 model resolutions + if(_.isObject(obj)) { + for(name in obj.models) { + var existingModel = obj.models[name]; + var key = (existingModel.id || name); + this.modelMap[key] = name; + } + } + + for(i = 0; i < obj.apis.length; i++) { + var api = obj.apis[i]; + var path = api.path; + var operations = api.operations; + this.operations(path, obj.resourcePath, operations, resourceLevelAuth, swagger); + } + + var models = obj.models || {}; + this.models(models, swagger); +}; + +SwaggerSpecConverter.prototype.models = function(obj, swagger) { + if(!_.isObject(obj)) { + return; + } + var name; + + swagger.definitions = swagger.definitions || {}; + for(name in obj) { + var existingModel = obj[name]; + var _enum = []; + var schema = { properties: {}}; + var propertyName; + for(propertyName in existingModel.properties) { + var existingProperty = existingModel.properties[propertyName]; + var property = {}; + this.dataType(existingProperty, property); + if(existingProperty.description) { + property.description = existingProperty.description; + } + if(existingProperty['enum']) { + property['enum'] = existingProperty['enum']; + } + if(typeof existingProperty.required === 'boolean' && existingProperty.required === true) { + _enum.push(propertyName); + } + if(typeof existingProperty.required === 'string' && existingProperty.required === 'true') { + _enum.push(propertyName); + } + schema.properties[propertyName] = property; + } + if(_enum.length > 0) { + schema['enum'] = _enum; + } + + schema.required = existingModel.required; + swagger.definitions[name] = schema; + } +}; + +SwaggerSpecConverter.prototype.extractTag = function(resourcePath) { + var pathString = resourcePath || 'default'; + if(pathString.indexOf('http:') === 0 || pathString.indexOf('https:') === 0) { + pathString = pathString.split(['/']); + pathString = pathString[pathString.length -1].substring(); + } + if(pathString.endsWith('.json')) { + pathString = pathString.substring(0, pathString.length - '.json'.length); + } + return pathString.replace('/',''); +}; + +SwaggerSpecConverter.prototype.operations = function(path, resourcePath, obj, resourceLevelAuth, swagger) { + if(!Array.isArray(obj)) { + return; + } + var i; + + if(!swagger.paths) { + swagger.paths = {}; + } + + var pathObj = swagger.paths[path] || {}; + var tag = this.extractTag(resourcePath); + swagger.tags = swagger.tags || []; + var matched = false; + for(i = 0; i < swagger.tags.length; i++) { + var tagObject = swagger.tags[i]; + if(tagObject.name === tag) { + matched = true; + } + } + if(!matched) { + swagger.tags.push({name: tag}); + } + + for(i = 0; i < obj.length; i++) { + var existingOperation = obj[i]; + var method = (existingOperation.method || existingOperation.httpMethod).toLowerCase(); + var operation = {tags: [tag]}; + var existingAuthorizations = existingOperation.authorizations; + + if(existingAuthorizations && Object.keys(existingAuthorizations).length === 0) { + existingAuthorizations = resourceLevelAuth; + } + + if(typeof existingAuthorizations !== 'undefined') { + var scopesObject; + for(var key in existingAuthorizations) { + operation.security = operation.security || []; + var scopes = existingAuthorizations[key]; + if(scopes) { + var securityScopes = []; + for(var j in scopes) { + securityScopes.push(scopes[j].scope); + } + scopesObject = {}; + scopesObject[key] = securityScopes; + operation.security.push(scopesObject); + } + else { + scopesObject = {}; + scopesObject[key] = []; + operation.security.push(scopesObject); + } + } + } + + if(existingOperation.consumes) { + operation.consumes = existingOperation.consumes; + } + else if(swagger.consumes) { + operation.consumes = swagger.consumes; + } + if(existingOperation.produces) { + operation.produces = existingOperation.produces; + } + else if(swagger.produces) { + operation.produces = swagger.produces; + } + if(existingOperation.summary) { + operation.summary = existingOperation.summary; + } + if(existingOperation.notes) { + operation.description = existingOperation.notes; + } + if(existingOperation.nickname) { + operation.operationId = existingOperation.nickname; + } + if(existingOperation.deprecated) { + operation.deprecated = existingOperation.deprecated; + } + + this.authorizations(existingAuthorizations, swagger); + this.parameters(operation, existingOperation.parameters, swagger); + this.responseMessages(operation, existingOperation, swagger); + + pathObj[method] = operation; + } + + swagger.paths[path] = pathObj; +}; + +SwaggerSpecConverter.prototype.responseMessages = function(operation, existingOperation) { + if(!_.isObject(existingOperation)) { + return; + } + // build default response from the operation (1.x) + var defaultResponse = {}; + this.dataType(existingOperation, defaultResponse); + // TODO: look into the real problem of rendering responses in swagger-ui + // ....should reponseType have an implicit schema? + if(!defaultResponse.schema && defaultResponse.type) { + defaultResponse = {schema: defaultResponse}; + } + + operation.responses = operation.responses || {}; + + // grab from responseMessages (1.2) + var has200 = false; + if(Array.isArray(existingOperation.responseMessages)) { + var i; + var existingResponses = existingOperation.responseMessages; + for(i = 0; i < existingResponses.length; i++) { + var existingResponse = existingResponses[i]; + var response = { description: existingResponse.message }; + if(existingResponse.code === 200) { + has200 = true; + } + // Convert responseModel -> schema{$ref: responseModel} + if(existingResponse.responseModel) { + response.schema = {'$ref': existingResponse.responseModel}; + } + operation.responses['' + existingResponse.code] = response; + } + } + + if(has200) { + operation.responses['default'] = defaultResponse; + } + else { + operation.responses['200'] = defaultResponse; + } +}; + +SwaggerSpecConverter.prototype.authorizations = function(obj) { + // TODO + if(!_.isObject(obj)) { + return; + } +}; + +SwaggerSpecConverter.prototype.parameters = function(operation, obj) { + if(!Array.isArray(obj)) { + return; + } + var i; + for(i = 0; i < obj.length; i++) { + var existingParameter = obj[i]; + var parameter = {}; + parameter.name = existingParameter.name; + parameter.description = existingParameter.description; + parameter.required = existingParameter.required; + parameter.in = existingParameter.paramType; + + // per #168 + if(parameter.in === 'body') { + parameter.name = 'body'; + } + if(parameter.in === 'form') { + parameter.in = 'formData'; + } + + if(existingParameter.enum) { + parameter.enum = existingParameter.enum; + } + + if(existingParameter.allowMultiple === true || existingParameter.allowMultiple === 'true') { + var innerType = {}; + this.dataType(existingParameter, innerType); + parameter.type = 'array'; + parameter.items = innerType; + + if(existingParameter.allowableValues) { + var av = existingParameter.allowableValues; + if(av.valueType === 'LIST') { + parameter['enum'] = av.values; + } + } + } + else { + this.dataType(existingParameter, parameter); + } + + operation.parameters = operation.parameters || []; + operation.parameters.push(parameter); + } +}; + +SwaggerSpecConverter.prototype.dataType = function(source, target) { + if(!_.isObject(source)) { + return; + } + + if(source.minimum) { + target.minimum = source.minimum; + } + if(source.maximum) { + target.maximum = source.maximum; + } + if (source.format) { + target.format = source.format; + } + + // default can be 'false' + if(typeof source.defaultValue !== 'undefined') { + target.default = source.defaultValue; + } + + var jsonSchemaType = this.toJsonSchema(source); + if(jsonSchemaType) { + target = target || {}; + if(jsonSchemaType.type) { + target.type = jsonSchemaType.type; + } + if(jsonSchemaType.format) { + target.format = jsonSchemaType.format; + } + if(jsonSchemaType.$ref) { + target.schema = {$ref: jsonSchemaType.$ref}; + } + if(jsonSchemaType.items) { + target.items = jsonSchemaType.items; + } + } +}; + +SwaggerSpecConverter.prototype.toJsonSchema = function(source) { + if(!source) { + return 'object'; + } + var detectedType = (source.type || source.dataType || source.responseClass || ''); + var lcType = detectedType.toLowerCase(); + var format = (source.format || '').toLowerCase(); + + if(lcType.indexOf('list[') === 0) { + var innerType = detectedType.substring(5, detectedType.length - 1); + var jsonType = this.toJsonSchema({type: innerType}); + return {type: 'array', items: jsonType}; + } + else if(lcType === 'int' || (lcType === 'integer' && format === 'int32')) + {return {type: 'integer', format: 'int32'};} + else if(lcType === 'long' || (lcType === 'integer' && format === 'int64')) + {return {type: 'integer', format: 'int64'};} + else if(lcType === 'integer') + {return {type: 'integer', format: 'int64'};} + else if(lcType === 'float' || (lcType === 'number' && format === 'float')) + {return {type: 'number', format: 'float'};} + else if(lcType === 'double' || (lcType === 'number' && format === 'double')) + {return {type: 'number', format: 'double'};} + else if((lcType === 'string' && format === 'date-time') || (lcType === 'date')) + {return {type: 'string', format: 'date-time'};} + else if(lcType === 'string') + {return {type: 'string'};} + else if(lcType === 'file') + {return {type: 'file'};} + else if(lcType === 'boolean') + {return {type: 'boolean'};} + else if(lcType === 'array' || lcType === 'list') { + if(source.items) { + var it = this.toJsonSchema(source.items); + return {type: 'array', items: it}; + } + else { + return {type: 'array', items: {type: 'object'}}; + } + } + else if(source.$ref) { + return {$ref: '#/definitions/' + this.modelMap[source.$ref] || source.$ref}; + } + else if(lcType === 'void' || lcType === '') + {return {};} + else { + return {$ref: '#/definitions/' + this.modelMap[source.type] || source.type}; + } +}; + +SwaggerSpecConverter.prototype.resourceListing = function(obj, swagger, callback) { + var i; + var processedCount = 0; // jshint ignore:line + var self = this; // jshint ignore:line + var expectedCount = obj.apis.length; + var _swagger = swagger; // jshint ignore:line + + if(expectedCount === 0) { + this.finish(callback, swagger); + } + + for(i = 0; i < expectedCount; i++) { + var api = obj.apis[i]; + var path = api.path; + var absolutePath = this.getAbsolutePath(obj.swaggerVersion, this.docLocation, path); + + if(api.description) { + swagger.tags = swagger.tags || []; + swagger.tags.push({ + name : this.extractTag(api.path), + description : api.description || '' + }); + } + var http = { + url: absolutePath, + headers: {accept: 'application/json'}, + on: {}, + method: 'get' + }; + /* jshint ignore:start */ + http.on.response = function(data) { + processedCount += 1; + var obj = data.obj; + if(obj) { + self.declaration(obj, _swagger); + } + if(processedCount === expectedCount) { + self.finish(callback, _swagger); + } + }; + http.on.error = function(data) { + console.error(data); + processedCount += 1; + if(processedCount === expectedCount) { + self.finish(callback, _swagger); + } + }; + /* jshint ignore:end */ + + if(this.clientAuthorizations && typeof this.clientAuthorizations.apply === 'function') { + this.clientAuthorizations.apply(http); + } + + new SwaggerHttp().execute(http); + } +}; + +SwaggerSpecConverter.prototype.getAbsolutePath = function(version, docLocation, path) { + if(version === '1.0') { + if(docLocation.endsWith('.json')) { + // get root path + var pos = docLocation.lastIndexOf('/'); + if(pos > 0) { + docLocation = docLocation.substring(0, pos); + } + } + } + + var location = docLocation; + if(path.indexOf('http://') === 0 || path.indexOf('https://') === 0) { + location = path; + } + else { + if(docLocation.endsWith('/')) { + location = docLocation.substring(0, docLocation.length - 1); + } + location += path; + } + location = location.replace('{format}', 'json'); + return location; +}; + +SwaggerSpecConverter.prototype.securityDefinitions = function(obj, swagger) { + if(obj.authorizations) { + var name; + for(name in obj.authorizations) { + var isValid = false; + var securityDefinition = {}; + var definition = obj.authorizations[name]; + if(definition.type === 'apiKey') { + securityDefinition.type = 'apiKey'; + securityDefinition.in = definition.passAs; + securityDefinition.name = definition.keyname || name; + isValid = true; + } + else if(definition.type === 'oauth2') { + var existingScopes = definition.scopes || []; + var scopes = {}; + var i; + for(i in existingScopes) { + var scope = existingScopes[i]; + scopes[scope.scope] = scope.description; + } + securityDefinition.type = 'oauth2'; + if(i > 0) { + securityDefinition.scopes = scopes; + } + if(definition.grantTypes) { + if(definition.grantTypes.implicit) { + var implicit = definition.grantTypes.implicit; + securityDefinition.flow = 'implicit'; + securityDefinition.authorizationUrl = implicit.loginEndpoint; + isValid = true; + } + /* jshint ignore:start */ + if(definition.grantTypes['authorization_code']) { + if(!securityDefinition.flow) { + // cannot set if flow is already defined + var authCode = definition.grantTypes['authorization_code']; + securityDefinition.flow = 'accessCode'; + securityDefinition.authorizationUrl = authCode.tokenRequestEndpoint.url; + securityDefinition.tokenUrl = authCode.tokenEndpoint.url; + isValid = true; + } + } + /* jshint ignore:end */ + } + } + if(isValid) { + swagger.securityDefinitions = swagger.securityDefinitions || {}; + swagger.securityDefinitions[name] = securityDefinition; + } + } + } +}; + +SwaggerSpecConverter.prototype.apiInfo = function(obj, swagger) { + // info section + if(obj.info) { + var info = obj.info; + swagger.info = {}; + + if(info.contact) { + swagger.info.contact = {}; + swagger.info.contact.email = info.contact; + } + if(info.description) { + swagger.info.description = info.description; + } + if(info.title) { + swagger.info.title = info.title; + } + if(info.termsOfServiceUrl) { + swagger.info.termsOfService = info.termsOfServiceUrl; + } + if(info.license || info.licenseUrl) { + swagger.license = {}; + if(info.license) { + swagger.license.name = info.license; + } + if(info.licenseUrl) { + swagger.license.url = info.licenseUrl; + } + } + } + else { + this.warnings.push('missing info section'); + } +}; + +SwaggerSpecConverter.prototype.finish = function (callback, obj) { + callback(obj); +}; + +},{"./http":5,"lodash-compat/lang/isObject":147}],9:[function(require,module,exports){ +'use strict'; + +var _ = { + isPlainObject: require('lodash-compat/lang/isPlainObject'), + isString: require('lodash-compat/lang/isString'), +}; + +var SchemaMarkup = require('../schema-markup.js'); +var jsyaml = require('js-yaml'); + +var Model = module.exports = function (name, definition, models, modelPropertyMacro) { + this.definition = definition || {}; + this.isArray = definition.type === 'array'; + this.models = models || {}; + this.name = definition.title || name || 'Inline Model'; + this.modelPropertyMacro = modelPropertyMacro || function (property) { + return property.default; + }; + + return this; +}; + +Model.prototype.createJSONSample = Model.prototype.getSampleValue = function (modelsToIgnore) { + modelsToIgnore = modelsToIgnore || {}; + + modelsToIgnore[this.name] = this; + + // Response support + if (this.examples && _.isPlainObject(this.examples) && this.examples['application/json']) { + this.definition.example = this.examples['application/json']; + + if (_.isString(this.definition.example)) { + this.definition.example = jsyaml.safeLoad(this.definition.example); + } + } else if (!this.definition.example) { + this.definition.example = this.examples; + } + + return SchemaMarkup.schemaToJSON(this.definition, this.models, modelsToIgnore, this.modelPropertyMacro); +}; + +Model.prototype.getMockSignature = function () { + return SchemaMarkup.schemaToHTML(this.name, this.definition, this.models, this.modelPropertyMacro); +}; + +},{"../schema-markup.js":7,"js-yaml":21,"lodash-compat/lang/isPlainObject":148,"lodash-compat/lang/isString":149}],10:[function(require,module,exports){ +'use strict'; + +var _ = { + cloneDeep: require('lodash-compat/lang/cloneDeep'), + isUndefined: require('lodash-compat/lang/isUndefined'), + isEmpty: require('lodash-compat/lang/isEmpty'), + isObject: require('lodash-compat/lang/isObject') +}; +var helpers = require('../helpers'); +var Model = require('./model'); +var SwaggerHttp = require('../http'); + +var Operation = module.exports = function (parent, scheme, operationId, httpMethod, path, args, definitions, models, clientAuthorizations) { + var errors = []; + + parent = parent || {}; + args = args || {}; + + if(parent && parent.options) { + this.client = parent.options.client || null; + this.responseInterceptor = parent.options.responseInterceptor || null; + } + this.authorizations = args.security; + this.basePath = parent.basePath || '/'; + this.clientAuthorizations = clientAuthorizations; + this.consumes = args.consumes || parent.consumes || ['application/json']; + this.produces = args.produces || parent.produces || ['application/json']; + this.deprecated = args.deprecated; + this.description = args.description; + this.host = parent.host || 'localhost'; + this.method = (httpMethod || errors.push('Operation ' + operationId + ' is missing method.')); + this.models = models || {}; + this.nickname = (operationId || errors.push('Operations must have a nickname.')); + this.operation = args; + this.operations = {}; + this.parameters = args !== null ? (args.parameters || []) : {}; + this.parent = parent; + this.path = (path || errors.push('Operation ' + this.nickname + ' is missing path.')); + this.responses = (args.responses || {}); + this.scheme = scheme || parent.scheme || 'http'; + this.schemes = args.schemes || parent.schemes; + this.security = args.security; + this.summary = args.summary || ''; + this.type = null; + this.useJQuery = parent.useJQuery; + this.parameterMacro = parent.parameterMacro || function (operation, parameter) { + return parameter.default; + }; + + this.inlineModels = []; + + if (typeof this.deprecated === 'string') { + switch(this.deprecated.toLowerCase()) { + case 'true': case 'yes': case '1': { + this.deprecated = true; + break; + } + + case 'false': case 'no': case '0': case null: { + this.deprecated = false; + break; + } + + default: this.deprecated = Boolean(this.deprecated); + } + } + + var i, model; + + if (definitions) { + // add to global models + var key; + + for (key in definitions) { + model = new Model(key, definitions[key], this.models, parent.modelPropertyMacro); + + if (model) { + this.models[key] = model; + } + } + } + else { + definitions = {}; + } + + for (i = 0; i < this.parameters.length; i++) { + var param = this.parameters[i]; + + // Allow macro to set the default value + param.default = this.parameterMacro(this, param); + + if (param.type === 'array') { + param.isList = true; + param.allowMultiple = true; + // the enum can be defined at the items level + if (param.items && param.items.enum) { + param['enum'] = param.items.enum; + } + } + + var innerType = this.getType(param); + + if (innerType && innerType.toString().toLowerCase() === 'boolean') { + param.allowableValues = {}; + param.isList = true; + param['enum'] = [true, false]; // use actual primitives + } + + if (typeof param['enum'] !== 'undefined') { + var id; + + param.allowableValues = {}; + param.allowableValues.values = []; + param.allowableValues.descriptiveValues = []; + + for (id = 0; id < param['enum'].length; id++) { + var value = param['enum'][id]; + var isDefault = (value === param.default || value+'' === param.default); + + param.allowableValues.values.push(value); + // Always have string for descriptive values.... + param.allowableValues.descriptiveValues.push({value : value+'', isDefault: isDefault}); + } + } + + if (param.type === 'array') { + innerType = [innerType]; + + if (typeof param.allowableValues === 'undefined') { + // can't show as a list if no values to select from + delete param.isList; + delete param.allowMultiple; + } + } + + param.signature = this.getModelSignature(innerType, this.models).toString(); + param.sampleJSON = this.getModelSampleJSON(innerType, this.models); + param.responseClassSignature = param.signature; + } + + var defaultResponseCode, response, responses = this.responses; + + if (responses['200']) { + response = responses['200']; + defaultResponseCode = '200'; + } else if (responses['201']) { + response = responses['201']; + defaultResponseCode = '201'; + } else if (responses['202']) { + response = responses['202']; + defaultResponseCode = '202'; + } else if (responses['203']) { + response = responses['203']; + defaultResponseCode = '203'; + } else if (responses['204']) { + response = responses['204']; + defaultResponseCode = '204'; + } else if (responses['205']) { + response = responses['205']; + defaultResponseCode = '205'; + } else if (responses['206']) { + response = responses['206']; + defaultResponseCode = '206'; + } else if (responses['default']) { + response = responses['default']; + defaultResponseCode = 'default'; + } + + if (response && response.schema) { + var resolvedModel = this.resolveModel(response.schema, definitions); + var successResponse; + + delete responses[defaultResponseCode]; + + if (resolvedModel) { + this.successResponse = {}; + successResponse = this.successResponse[defaultResponseCode] = resolvedModel; + } else if (!response.schema.type || response.schema.type === 'object' || response.schema.type === 'array') { + // Inline model + this.successResponse = {}; + successResponse = this.successResponse[defaultResponseCode] = new Model(undefined, response.schema || {}, this.models, parent.modelPropertyMacro); + } else { + // Primitive + this.successResponse = {}; + successResponse = this.successResponse[defaultResponseCode] = response.schema; + } + + if (successResponse) { + // Attach response properties + if (response.description) { + successResponse.description = response.description; + } + + if (response.examples) { + successResponse.examples = response.examples; + } + + if (response.headers) { + successResponse.headers = response.headers; + } + } + + this.type = response; + } + + if (errors.length > 0) { + if (this.resource && this.resource.api && this.resource.api.fail) { + this.resource.api.fail(errors); + } + } + + return this; +}; + +Operation.prototype.isDefaultArrayItemValue = function(value, param) { + if (param.default && Array.isArray(param.default)) { + return param.default.indexOf(value) !== -1; + } + return value === param.default; +}; + +Operation.prototype.getType = function (param) { + var type = param.type; + var format = param.format; + var isArray = false; + var str; + + if (type === 'integer' && format === 'int32') { + str = 'integer'; + } else if (type === 'integer' && format === 'int64') { + str = 'long'; + } else if (type === 'integer') { + str = 'integer'; + } else if (type === 'string') { + if (format === 'date-time') { + str = 'date-time'; + } else if (format === 'date') { + str = 'date'; + } else { + str = 'string'; + } + } else if (type === 'number' && format === 'float') { + str = 'float'; + } else if (type === 'number' && format === 'double') { + str = 'double'; + } else if (type === 'number') { + str = 'double'; + } else if (type === 'boolean') { + str = 'boolean'; + } else if (type === 'array') { + isArray = true; + + if (param.items) { + str = this.getType(param.items); + } + } + + if (param.$ref) { + str = helpers.simpleRef(param.$ref); + } + + var schema = param.schema; + + if (schema) { + var ref = schema.$ref; + + if (ref) { + ref = helpers.simpleRef(ref); + + if (isArray) { + return [ ref ]; + } else { + return ref; + } + } else { + // If inline schema, we add it our interal hash -> which gives us it's ID (int) + if(schema.type === 'object') { + return this.addInlineModel(schema); + } + return this.getType(schema); + } + } + if (isArray) { + return [ str ]; + } else { + return str; + } +}; + +/** + * adds an inline schema (model) to a hash, where we can ref it later + * @param {object} schema a schema + * @return {number} the ID of the schema being added, or null + **/ +Operation.prototype.addInlineModel = function (schema) { + var len = this.inlineModels.length; + var model = this.resolveModel(schema, {}); + if(model) { + this.inlineModels.push(model); + return 'Inline Model '+len; // return string ref of the inline model (used with #getInlineModel) + } + return null; // report errors? +}; + +/** + * gets the internal ref to an inline model + * @param {string} inline_str a string reference to an inline model + * @return {Model} the model being referenced. Or null + **/ +Operation.prototype.getInlineModel = function(inlineStr) { + if(/^Inline Model \d+$/.test(inlineStr)) { + var id = parseInt(inlineStr.substr('Inline Model'.length).trim(),10); // + var model = this.inlineModels[id]; + return model; + } + // I'm returning null here, should I rather throw an error? + return null; +}; + +Operation.prototype.resolveModel = function (schema, definitions) { + if (typeof schema.$ref !== 'undefined') { + var ref = schema.$ref; + + if (ref.indexOf('#/definitions/') === 0) { + ref = ref.substring('#/definitions/'.length); + } + + if (definitions[ref]) { + return new Model(ref, definitions[ref], this.models, this.parent.modelPropertyMacro); + } + // schema must at least be an object to get resolved to an inline Model + } else if (schema && typeof schema === 'object' && + (schema.type === 'object' || _.isUndefined(schema.type))) { + return new Model(undefined, schema, this.models, this.parent.modelPropertyMacro); + } + + return null; +}; + +Operation.prototype.help = function (dontPrint) { + var out = this.nickname + ': ' + this.summary + '\n'; + + for (var i = 0; i < this.parameters.length; i++) { + var param = this.parameters[i]; + var typeInfo = param.signature; + + out += '\n * ' + param.name + ' (' + typeInfo + '): ' + param.description; + } + + if (typeof dontPrint === 'undefined') { + helpers.log(out); + } + + return out; +}; + +Operation.prototype.getModelSignature = function (type, definitions) { + var isPrimitive, listType; + + if (type instanceof Array) { + listType = true; + type = type[0]; + } + + // Convert undefined to string of 'undefined' + if (typeof type === 'undefined') { + type = 'undefined'; + isPrimitive = true; + + } else if (definitions[type]){ + // a model def exists? + type = definitions[type]; /* Model */ + isPrimitive = false; + + } else if (this.getInlineModel(type)) { + type = this.getInlineModel(type); /* Model */ + isPrimitive = false; + + } else { + // We default to primitive + isPrimitive = true; + } + + if (isPrimitive) { + if (listType) { + return 'Array[' + type + ']'; + } else { + return type.toString(); + } + } else { + if (listType) { + return 'Array[' + type.getMockSignature() + ']'; + } else { + return type.getMockSignature(); + } + } +}; + +Operation.prototype.supportHeaderParams = function () { + return true; +}; + +Operation.prototype.supportedSubmitMethods = function () { + return this.parent.supportedSubmitMethods; +}; + +Operation.prototype.getHeaderParams = function (args) { + var headers = this.setContentTypes(args, {}); + + for (var i = 0; i < this.parameters.length; i++) { + var param = this.parameters[i]; + + if (typeof args[param.name] !== 'undefined') { + if (param.in === 'header') { + var value = args[param.name]; + + if (Array.isArray(value)) { + value = value.toString(); + } + + headers[param.name] = value; + } + } + } + + return headers; +}; + +Operation.prototype.urlify = function (args) { + var formParams = {}; + var requestUrl = this.path; + var querystring = ''; // grab params from the args, build the querystring along the way + + for (var i = 0; i < this.parameters.length; i++) { + var param = this.parameters[i]; + + if (typeof args[param.name] !== 'undefined') { + if (param.in === 'path') { + var reg = new RegExp('\{' + param.name + '\}', 'gi'); + var value = args[param.name]; + + if (Array.isArray(value)) { + value = this.encodePathCollection(param.collectionFormat, param.name, value); + } else { + value = this.encodePathParam(value); + } + + requestUrl = requestUrl.replace(reg, value); + } else if (param.in === 'query' && typeof args[param.name] !== 'undefined') { + if (querystring === '') { + querystring += '?'; + } else { + querystring += '&'; + } + + if (typeof param.collectionFormat !== 'undefined') { + var qp = args[param.name]; + + if (Array.isArray(qp)) { + querystring += this.encodeQueryCollection(param.collectionFormat, param.name, qp); + } else { + querystring += this.encodeQueryParam(param.name) + '=' + this.encodeQueryParam(args[param.name]); + } + } else { + querystring += this.encodeQueryParam(param.name) + '=' + this.encodeQueryParam(args[param.name]); + } + } else if (param.in === 'formData') { + formParams[param.name] = args[param.name]; + } + } + } + var url = this.scheme + '://' + this.host; + + if (this.basePath !== '/') { + url += this.basePath; + } + return url + requestUrl + querystring; +}; + +Operation.prototype.getMissingParams = function (args) { + var missingParams = []; // check required params, track the ones that are missing + var i; + + for (i = 0; i < this.parameters.length; i++) { + var param = this.parameters[i]; + + if (param.required === true) { + if (typeof args[param.name] === 'undefined') { + missingParams = param.name; + } + } + } + + return missingParams; +}; + +Operation.prototype.getBody = function (headers, args, opts) { + var formParams = {}, body, key, value, hasBody = false; + + for (var i = 0; i < this.parameters.length; i++) { + var param = this.parameters[i]; + + if (typeof args[param.name] !== 'undefined') { + if (param.in === 'body') { + body = args[param.name]; + } else if (param.in === 'formData') { + formParams[param.name] = args[param.name]; + } + } + else { + if(param.in === 'body') { + hasBody = true; + } + } + } + + // if body is null and hasBody is true, AND a JSON body is requested, send empty {} + if(hasBody && typeof body === 'undefined') { + var contentType = headers['Content-Type']; + if(contentType && contentType.indexOf('application/json') === 0) { + body = '{}'; + } + } + + // handle form params + if (headers['Content-Type'] === 'application/x-www-form-urlencoded') { + var encoded = ''; + + for (key in formParams) { + value = formParams[key]; + + if (typeof value !== 'undefined') { + if (encoded !== '') { + encoded += '&'; + } + + encoded += encodeURIComponent(key) + '=' + encodeURIComponent(value); + } + } + + body = encoded; + } else if (headers['Content-Type'] && headers['Content-Type'].indexOf('multipart/form-data') >= 0) { + if (opts.useJQuery) { + var bodyParam = new FormData(); + + bodyParam.type = 'formData'; + + for (key in formParams) { + value = args[key]; + + if (typeof value !== 'undefined') { + // required for jquery file upload + if (value.type === 'file' && value.value) { + delete headers['Content-Type']; + + bodyParam.append(key, value.value); + } else { + bodyParam.append(key, value); + } + } + } + + body = bodyParam; + } + } + + return body; +}; + +/** + * gets sample response for a single operation + **/ +Operation.prototype.getModelSampleJSON = function (type, models) { + var listType, sampleJson, innerType; + models = models || {}; + + listType = (type instanceof Array); + innerType = listType ? type[0] : type; + + if(models[innerType]) { + sampleJson = models[innerType].createJSONSample(); + } else if (this.getInlineModel(innerType)){ + sampleJson = this.getInlineModel(innerType).createJSONSample(); // may return null, if type isn't correct + } + + + if (sampleJson) { + sampleJson = listType ? [sampleJson] : sampleJson; + + if (typeof sampleJson === 'string') { + return sampleJson; + } else if (_.isObject(sampleJson)) { + var t = sampleJson; + + if (sampleJson instanceof Array && sampleJson.length > 0) { + t = sampleJson[0]; + } + + if (t.nodeName) { + var xmlString = new XMLSerializer().serializeToString(t); + + return this.formatXml(xmlString); + } else { + return JSON.stringify(sampleJson, null, 2); + } + } else { + return sampleJson; + } + } +}; + +/** + * legacy binding + **/ +Operation.prototype.do = function (args, opts, callback, error, parent) { + return this.execute(args, opts, callback, error, parent); +}; + +/** + * executes an operation + **/ +Operation.prototype.execute = function (arg1, arg2, arg3, arg4, parent) { + var args = arg1 || {}; + var opts = {}, success, error; + + if (_.isObject(arg2)) { + opts = arg2; + success = arg3; + error = arg4; + } + + if(this.client) { + opts.client = this.client; + } + if(this.responseInterceptor) { + opts.responseInterceptor = this.responseInterceptor; + } + + + if (typeof arg2 === 'function') { + success = arg2; + error = arg3; + } + + success = (success || this.parent.defaultSuccessCallback || helpers.log); + error = (error || this.parent.defaultErrorCallback || helpers.log); + + + if (typeof opts.useJQuery === 'undefined') { + opts.useJQuery = this.useJQuery; + } + var missingParams = this.getMissingParams(args); + + if (missingParams.length > 0) { + var message = 'missing required params: ' + missingParams; + + helpers.fail(message); + error(message); + + return; + } + + var allHeaders = this.getHeaderParams(args); + var contentTypeHeaders = this.setContentTypes(args, opts); + var headers = {}, attrname; + + for (attrname in allHeaders) { headers[attrname] = allHeaders[attrname]; } + for (attrname in contentTypeHeaders) { headers[attrname] = contentTypeHeaders[attrname]; } + + var body = this.getBody(contentTypeHeaders, args, opts); + var url = this.urlify(args); + + if(url.indexOf('.{format}') > 0) { + if(headers) { + var format = headers.Accept || headers.accept; + if(format && format.indexOf('json') > 0) { + url = url.replace('.{format}', '.json'); + } + else if(format && format.indexOf('xml') > 0) { + url = url.replace('.{format}', '.xml'); + } + } + } + + var obj = { + url: url, + method: this.method.toUpperCase(), + body: body, + useJQuery: opts.useJQuery, + headers: headers, + on: { + response: function (response) { + return success(response, parent); + }, + error: function (response) { + return error(response, parent); + } + } + }; + + this.clientAuthorizations.apply(obj, this.operation.security); + if (opts.mock === true) { + return obj; + } else { + new SwaggerHttp().execute(obj, opts); + } +}; + +function itemByPriority(col, itemPriority) { + + // No priorities? return first... + if(_.isEmpty(itemPriority)) { + return col[0]; + } + + for (var i = 0, len = itemPriority.length; i < len; i++) { + if(col.indexOf(itemPriority[i]) > -1) { + return itemPriority[i]; + } + } + + // Otherwise return first + return col[0]; +} + +Operation.prototype.setContentTypes = function (args, opts) { + // default type + var allDefinedParams = this.parameters; + var body; + var consumes = args.parameterContentType || itemByPriority(this.consumes, ['application/json', 'application/yaml']); + var accepts = opts.responseContentType || itemByPriority(this.produces, ['application/json', 'application/yaml']); + var definedFileParams = []; + var definedFormParams = []; + var headers = {}; + var i; + + // get params from the operation and set them in definedFileParams, definedFormParams, headers + for (i = 0; i < allDefinedParams.length; i++) { + var param = allDefinedParams[i]; + + if (param.in === 'formData') { + if (param.type === 'file') { + definedFileParams.push(param); + } else { + definedFormParams.push(param); + } + } else if (param.in === 'header' && opts) { + var key = param.name; + var headerValue = opts[param.name]; + + if (typeof opts[param.name] !== 'undefined') { + headers[key] = headerValue; + } + } else if (param.in === 'body' && typeof args[param.name] !== 'undefined') { + body = args[param.name]; + } + } + + // if there's a body, need to set the consumes header via requestContentType + if (this.method === 'post' || this.method === 'put' || this.method === 'patch' || + (this.method === 'delete' && body) ) { + if (opts.requestContentType) { + consumes = opts.requestContentType; + } + // if any form params, content type must be set + if (definedFormParams.length > 0) { + if (opts.requestContentType) { // override if set + consumes = opts.requestContentType; + } else if (definedFileParams.length > 0) { // if a file, must be multipart/form-data + consumes = 'multipart/form-data'; + } else { // default to x-www-from-urlencoded + consumes = 'application/x-www-form-urlencoded'; + } + } + } + else { + consumes = null; + } + + if (consumes && this.consumes) { + if (this.consumes.indexOf(consumes) === -1) { + helpers.log('server doesn\'t consume ' + consumes + ', try ' + JSON.stringify(this.consumes)); + } + } + + if (!this.matchesAccept(accepts)) { + helpers.log('server can\'t produce ' + accepts); + } + + if ((consumes && body !== '') || (consumes === 'application/x-www-form-urlencoded')) { + headers['Content-Type'] = consumes; + } + + if (accepts) { + headers.Accept = accepts; + } + + return headers; +}; + +/** + * Returns true if the request accepts header matches anything in this.produces. + * If this.produces contains * / *, ignore the accept header. + * @param {string=} accepts The client request accept header. + * @return {boolean} + */ +Operation.prototype.matchesAccept = function(accepts) { + // no accepts or produces, no problem! + if (!accepts || !this.produces) { + return true; + } + return this.produces.indexOf(accepts) !== -1 || this.produces.indexOf('*/*') !== -1; +}; + +Operation.prototype.asCurl = function (args1, args2) { + var opts = {mock: true}; + if (typeof args2 === 'object') { + for (var argKey in args2) { + opts[argKey] = args2[argKey]; + } + } + var obj = this.execute(args1, opts); + + this.clientAuthorizations.apply(obj); + + var results = []; + + results.push('-X ' + this.method.toUpperCase()); + + if (obj.headers) { + var key; + + for (key in obj.headers) { + results.push('--header "' + key + ': ' + obj.headers[key] + '"'); + } + } + + if (obj.body) { + var body; + + if (_.isObject(obj.body)) { + body = JSON.stringify(obj.body); + } else { + body = obj.body; + } + + results.push('-d "' + body.replace(/"/g, '\\"') + '"'); + } + + return 'curl ' + (results.join(' ')) + ' "' + obj.url + '"'; +}; + +Operation.prototype.encodePathCollection = function (type, name, value) { + var encoded = ''; + var i; + var separator = ''; + + if (type === 'ssv') { + separator = '%20'; + } else if (type === 'tsv') { + separator = '\\t'; + } else if (type === 'pipes') { + separator = '|'; + } else { + separator = ','; + } + + for (i = 0; i < value.length; i++) { + if (i === 0) { + encoded = this.encodeQueryParam(value[i]); + } else { + encoded += separator + this.encodeQueryParam(value[i]); + } + } + + return encoded; +}; + +Operation.prototype.encodeQueryCollection = function (type, name, value) { + var encoded = ''; + var i; + + if (type === 'default' || type === 'multi') { + for (i = 0; i < value.length; i++) { + if (i > 0) {encoded += '&';} + + encoded += this.encodeQueryParam(name) + '=' + this.encodeQueryParam(value[i]); + } + } else { + var separator = ''; + + if (type === 'csv') { + separator = ','; + } else if (type === 'ssv') { + separator = '%20'; + } else if (type === 'tsv') { + separator = '\\t'; + } else if (type === 'pipes') { + separator = '|'; + } else if (type === 'brackets') { + for (i = 0; i < value.length; i++) { + if (i !== 0) { + encoded += '&'; + } + + encoded += this.encodeQueryParam(name) + '[]=' + this.encodeQueryParam(value[i]); + } + } + + if (separator !== '') { + for (i = 0; i < value.length; i++) { + if (i === 0) { + encoded = this.encodeQueryParam(name) + '=' + this.encodeQueryParam(value[i]); + } else { + encoded += separator + this.encodeQueryParam(value[i]); + } + } + } + } + + return encoded; +}; + +Operation.prototype.encodeQueryParam = function (arg) { + return encodeURIComponent(arg); +}; + +/** + * TODO revisit, might not want to leave '/' + **/ +Operation.prototype.encodePathParam = function (pathParam) { + return encodeURIComponent(pathParam); +}; + +},{"../helpers":4,"../http":5,"./model":9,"lodash-compat/lang/cloneDeep":141,"lodash-compat/lang/isEmpty":144,"lodash-compat/lang/isObject":147,"lodash-compat/lang/isUndefined":151}],11:[function(require,module,exports){ +'use strict'; + +var OperationGroup = module.exports = function (tag, description, externalDocs, operation) { + this.description = description; + this.externalDocs = externalDocs; + this.name = tag; + this.operation = operation; + this.operationsArray = []; + this.path = tag; + this.tag = tag; +}; + +OperationGroup.prototype.sort = function () { + +}; + + +},{}],12:[function(require,module,exports){ + +},{}],13:[function(require,module,exports){ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org> + * @license MIT + */ + +var base64 = require('base64-js') +var ieee754 = require('ieee754') +var isArray = require('is-array') + +exports.Buffer = Buffer +exports.SlowBuffer = SlowBuffer +exports.INSPECT_MAX_BYTES = 50 +Buffer.poolSize = 8192 // not used by this implementation + +var rootParent = {} + +/** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Use Object implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * Note: + * + * - Implementation must support adding new properties to `Uint8Array` instances. + * Firefox 4-29 lacked support, fixed in Firefox 30+. + * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. + * + * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. + * + * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of + * incorrect length in some situations. + * + * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they will + * get the Object implementation, which is slower but will work correctly. + */ +Buffer.TYPED_ARRAY_SUPPORT = (function () { + function Foo () {} + try { + var buf = new ArrayBuffer(0) + var arr = new Uint8Array(buf) + arr.foo = function () { return 42 } + arr.constructor = Foo + return arr.foo() === 42 && // typed array instances can be augmented + arr.constructor === Foo && // constructor can be set + typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` + new Uint8Array(1).subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` + } catch (e) { + return false + } +})() + +function kMaxLength () { + return Buffer.TYPED_ARRAY_SUPPORT + ? 0x7fffffff + : 0x3fffffff +} + +/** + * Class: Buffer + * ============= + * + * The Buffer constructor returns instances of `Uint8Array` that are augmented + * with function properties for all the node `Buffer` API functions. We use + * `Uint8Array` so that square bracket notation works as expected -- it returns + * a single octet. + * + * By augmenting the instances, we can avoid modifying the `Uint8Array` + * prototype. + */ +function Buffer (arg) { + if (!(this instanceof Buffer)) { + // Avoid going through an ArgumentsAdaptorTrampoline in the common case. + if (arguments.length > 1) return new Buffer(arg, arguments[1]) + return new Buffer(arg) + } + + this.length = 0 + this.parent = undefined + + // Common case. + if (typeof arg === 'number') { + return fromNumber(this, arg) + } + + // Slightly less common case. + if (typeof arg === 'string') { + return fromString(this, arg, arguments.length > 1 ? arguments[1] : 'utf8') + } + + // Unusual. + return fromObject(this, arg) +} + +function fromNumber (that, length) { + that = allocate(that, length < 0 ? 0 : checked(length) | 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < length; i++) { + that[i] = 0 + } + } + return that +} + +function fromString (that, string, encoding) { + if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8' + + // Assumption: byteLength() return value is always < kMaxLength. + var length = byteLength(string, encoding) | 0 + that = allocate(that, length) + + that.write(string, encoding) + return that +} + +function fromObject (that, object) { + if (Buffer.isBuffer(object)) return fromBuffer(that, object) + + if (isArray(object)) return fromArray(that, object) + + if (object == null) { + throw new TypeError('must start with number, buffer, array or string') + } + + if (typeof ArrayBuffer !== 'undefined' && object.buffer instanceof ArrayBuffer) { + return fromTypedArray(that, object) + } + + if (object.length) return fromArrayLike(that, object) + + return fromJsonObject(that, object) +} + +function fromBuffer (that, buffer) { + var length = checked(buffer.length) | 0 + that = allocate(that, length) + buffer.copy(that, 0, 0, length) + return that +} + +function fromArray (that, array) { + var length = checked(array.length) | 0 + that = allocate(that, length) + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +// Duplicate of fromArray() to keep fromArray() monomorphic. +function fromTypedArray (that, array) { + var length = checked(array.length) | 0 + that = allocate(that, length) + // Truncating the elements is probably not what people expect from typed + // arrays with BYTES_PER_ELEMENT > 1 but it's compatible with the behavior + // of the old Buffer constructor. + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +function fromArrayLike (that, array) { + var length = checked(array.length) | 0 + that = allocate(that, length) + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +// Deserialize { type: 'Buffer', data: [1,2,3,...] } into a Buffer object. +// Returns a zero-length buffer for inputs that don't conform to the spec. +function fromJsonObject (that, object) { + var array + var length = 0 + + if (object.type === 'Buffer' && isArray(object.data)) { + array = object.data + length = checked(array.length) | 0 + } + that = allocate(that, length) + + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +function allocate (that, length) { + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = Buffer._augment(new Uint8Array(length)) + } else { + // Fallback: Return an object instance of the Buffer class + that.length = length + that._isBuffer = true + } + + var fromPool = length !== 0 && length <= Buffer.poolSize >>> 1 + if (fromPool) that.parent = rootParent + + return that +} + +function checked (length) { + // Note: cannot use `length < kMaxLength` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= kMaxLength()) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + kMaxLength().toString(16) + ' bytes') + } + return length | 0 +} + +function SlowBuffer (subject, encoding) { + if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding) + + var buf = new Buffer(subject, encoding) + delete buf.parent + return buf +} + +Buffer.isBuffer = function isBuffer (b) { + return !!(b != null && b._isBuffer) +} + +Buffer.compare = function compare (a, b) { + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError('Arguments must be Buffers') + } + + if (a === b) return 0 + + var x = a.length + var y = b.length + + var i = 0 + var len = Math.min(x, y) + while (i < len) { + if (a[i] !== b[i]) break + + ++i + } + + if (i !== len) { + x = a[i] + y = b[i] + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +Buffer.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'binary': + case 'base64': + case 'raw': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } +} + +Buffer.concat = function concat (list, length) { + if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.') + + if (list.length === 0) { + return new Buffer(0) + } else if (list.length === 1) { + return list[0] + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; i++) { + length += list[i].length + } + } + + var buf = new Buffer(length) + var pos = 0 + for (i = 0; i < list.length; i++) { + var item = list[i] + item.copy(buf, pos) + pos += item.length + } + return buf +} + +function byteLength (string, encoding) { + if (typeof string !== 'string') string = '' + string + + var len = string.length + if (len === 0) return 0 + + // Use a for loop to avoid recursion + var loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'binary': + // Deprecated + case 'raw': + case 'raws': + return len + case 'utf8': + case 'utf-8': + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) return utf8ToBytes(string).length // assume utf8 + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} +Buffer.byteLength = byteLength + +// pre-set for values that may exist in the future +Buffer.prototype.length = undefined +Buffer.prototype.parent = undefined + +function slowToString (encoding, start, end) { + var loweredCase = false + + start = start | 0 + end = end === undefined || end === Infinity ? this.length : end | 0 + + if (!encoding) encoding = 'utf8' + if (start < 0) start = 0 + if (end > this.length) end = this.length + if (end <= start) return '' + + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) + + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) + + case 'ascii': + return asciiSlice(this, start, end) + + case 'binary': + return binarySlice(this, start, end) + + case 'base64': + return base64Slice(this, start, end) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } +} + +Buffer.prototype.toString = function toString () { + var length = this.length | 0 + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) +} + +Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 +} + +Buffer.prototype.inspect = function inspect () { + var str = '' + var max = exports.INSPECT_MAX_BYTES + if (this.length > 0) { + str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') + if (this.length > max) str += ' ... ' + } + return '<Buffer ' + str + '>' +} + +Buffer.prototype.compare = function compare (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return 0 + return Buffer.compare(this, b) +} + +Buffer.prototype.indexOf = function indexOf (val, byteOffset) { + if (byteOffset > 0x7fffffff) byteOffset = 0x7fffffff + else if (byteOffset < -0x80000000) byteOffset = -0x80000000 + byteOffset >>= 0 + + if (this.length === 0) return -1 + if (byteOffset >= this.length) return -1 + + // Negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = Math.max(this.length + byteOffset, 0) + + if (typeof val === 'string') { + if (val.length === 0) return -1 // special case: looking for empty string always fails + return String.prototype.indexOf.call(this, val, byteOffset) + } + if (Buffer.isBuffer(val)) { + return arrayIndexOf(this, val, byteOffset) + } + if (typeof val === 'number') { + if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') { + return Uint8Array.prototype.indexOf.call(this, val, byteOffset) + } + return arrayIndexOf(this, [ val ], byteOffset) + } + + function arrayIndexOf (arr, val, byteOffset) { + var foundIndex = -1 + for (var i = 0; byteOffset + i < arr.length; i++) { + if (arr[byteOffset + i] === val[foundIndex === -1 ? 0 : i - foundIndex]) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === val.length) return byteOffset + foundIndex + } else { + foundIndex = -1 + } + } + return -1 + } + + throw new TypeError('val must be string, number or Buffer') +} + +// `get` will be removed in Node 0.13+ +Buffer.prototype.get = function get (offset) { + console.log('.get() is deprecated. Access using array indexes instead.') + return this.readUInt8(offset) +} + +// `set` will be removed in Node 0.13+ +Buffer.prototype.set = function set (v, offset) { + console.log('.set() is deprecated. Access using array indexes instead.') + return this.writeUInt8(v, offset) +} + +function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0 + var remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } + + // must be an even number of digits + var strLen = string.length + if (strLen % 2 !== 0) throw new Error('Invalid hex string') + + if (length > strLen / 2) { + length = strLen / 2 + } + for (var i = 0; i < length; i++) { + var parsed = parseInt(string.substr(i * 2, 2), 16) + if (isNaN(parsed)) throw new Error('Invalid hex string') + buf[offset + i] = parsed + } + return i +} + +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +} + +function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) +} + +function binaryWrite (buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) +} + +function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) +} + +function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) +} + +Buffer.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset | 0 + if (isFinite(length)) { + length = length | 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + // legacy write(string, encoding, offset, length) - remove in v0.13 + } else { + var swap = encoding + encoding = offset + offset = length | 0 + length = swap + } + + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('attempt to write outside buffer bounds') + } + + if (!encoding) encoding = 'utf8' + + var loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) + + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + + case 'ascii': + return asciiWrite(this, string, offset, length) + + case 'binary': + return binaryWrite(this, string, offset, length) + + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} + +Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } +} + +function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } +} + +function utf8Slice (buf, start, end) { + var res = '' + var tmp = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; i++) { + if (buf[i] <= 0x7F) { + res += decodeUtf8Char(tmp) + String.fromCharCode(buf[i]) + tmp = '' + } else { + tmp += '%' + buf[i].toString(16) + } + } + + return res + decodeUtf8Char(tmp) +} + +function asciiSlice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; i++) { + ret += String.fromCharCode(buf[i] & 0x7F) + } + return ret +} + +function binarySlice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; i++) { + ret += String.fromCharCode(buf[i]) + } + return ret +} + +function hexSlice (buf, start, end) { + var len = buf.length + + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len + + var out = '' + for (var i = start; i < end; i++) { + out += toHex(buf[i]) + } + return out +} + +function utf16leSlice (buf, start, end) { + var bytes = buf.slice(start, end) + var res = '' + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) + } + return res +} + +Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) end = start + + var newBuf + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = Buffer._augment(this.subarray(start, end)) + } else { + var sliceLen = end - start + newBuf = new Buffer(sliceLen, undefined) + for (var i = 0; i < sliceLen; i++) { + newBuf[i] = this[i + start] + } + } + + if (newBuf.length) newBuf.parent = this.parent || this + + return newBuf +} + +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') +} + +Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + + return val +} + +Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } + + var val = this[offset + --byteLength] + var mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul + } + + return val +} + +Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] +} + +Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) +} + +Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] +} + +Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) +} + +Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) +} + +Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var i = byteLength + var mul = 1 + var val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) +} + +Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset] | (this[offset + 1] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset + 1] | (this[offset] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) +} + +Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) +} + +Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) +} + +Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) +} + +Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) +} + +Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) +} + +function checkInt (buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance') + if (value > max || value < min) throw new RangeError('value is out of bounds') + if (offset + ext > buf.length) throw new RangeError('index out of range') +} + +Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0) + + var mul = 1 + var i = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0) + + var i = byteLength - 1 + var mul = 1 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + this[offset] = value + return offset + 1 +} + +function objectWriteUInt16 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; i++) { + buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> + (littleEndian ? i : 1 - i) * 8 + } +} + +Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = value + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +function objectWriteUInt32 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffffffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; i++) { + buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff + } +} + +Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset + 3] = (value >>> 24) + this[offset + 2] = (value >>> 16) + this[offset + 1] = (value >>> 8) + this[offset] = value + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = value + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = 0 + var mul = 1 + var sub = value < 0 ? 1 : 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = byteLength - 1 + var mul = 1 + var sub = value < 0 ? 1 : 0 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + if (value < 0) value = 0xff + value + 1 + this[offset] = value + return offset + 1 +} + +Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = value + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value + this[offset + 1] = (value >>> 8) + this[offset + 2] = (value >>> 16) + this[offset + 3] = (value >>> 24) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = value + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +function checkIEEE754 (buf, value, offset, ext, max, min) { + if (value > max || value < min) throw new RangeError('value is out of bounds') + if (offset + ext > buf.length) throw new RangeError('index out of range') + if (offset < 0) throw new RangeError('index out of range') +} + +function writeFloat (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) + } + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 +} + +Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) +} + +function writeDouble (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) + } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 +} + +Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) +} + +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + + if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < len; i++) { + target[i + targetStart] = this[i + start] + } + } else { + target._set(this.subarray(start, start + len), targetStart) + } + + return len +} + +// fill(value, start=0, end=buffer.length) +Buffer.prototype.fill = function fill (value, start, end) { + if (!value) value = 0 + if (!start) start = 0 + if (!end) end = this.length + + if (end < start) throw new RangeError('end < start') + + // Fill 0 bytes; we're done + if (end === start) return + if (this.length === 0) return + + if (start < 0 || start >= this.length) throw new RangeError('start out of bounds') + if (end < 0 || end > this.length) throw new RangeError('end out of bounds') + + var i + if (typeof value === 'number') { + for (i = start; i < end; i++) { + this[i] = value + } + } else { + var bytes = utf8ToBytes(value.toString()) + var len = bytes.length + for (i = start; i < end; i++) { + this[i] = bytes[i % len] + } + } + + return this +} + +/** + * Creates a new `ArrayBuffer` with the *copied* memory of the buffer instance. + * Added in Node 0.12. Only available in browsers that support ArrayBuffer. + */ +Buffer.prototype.toArrayBuffer = function toArrayBuffer () { + if (typeof Uint8Array !== 'undefined') { + if (Buffer.TYPED_ARRAY_SUPPORT) { + return (new Buffer(this)).buffer + } else { + var buf = new Uint8Array(this.length) + for (var i = 0, len = buf.length; i < len; i += 1) { + buf[i] = this[i] + } + return buf.buffer + } + } else { + throw new TypeError('Buffer.toArrayBuffer not supported in this browser') + } +} + +// HELPER FUNCTIONS +// ================ + +var BP = Buffer.prototype + +/** + * Augment a Uint8Array *instance* (not the Uint8Array class!) with Buffer methods + */ +Buffer._augment = function _augment (arr) { + arr.constructor = Buffer + arr._isBuffer = true + + // save reference to original Uint8Array set method before overwriting + arr._set = arr.set + + // deprecated, will be removed in node 0.13+ + arr.get = BP.get + arr.set = BP.set + + arr.write = BP.write + arr.toString = BP.toString + arr.toLocaleString = BP.toString + arr.toJSON = BP.toJSON + arr.equals = BP.equals + arr.compare = BP.compare + arr.indexOf = BP.indexOf + arr.copy = BP.copy + arr.slice = BP.slice + arr.readUIntLE = BP.readUIntLE + arr.readUIntBE = BP.readUIntBE + arr.readUInt8 = BP.readUInt8 + arr.readUInt16LE = BP.readUInt16LE + arr.readUInt16BE = BP.readUInt16BE + arr.readUInt32LE = BP.readUInt32LE + arr.readUInt32BE = BP.readUInt32BE + arr.readIntLE = BP.readIntLE + arr.readIntBE = BP.readIntBE + arr.readInt8 = BP.readInt8 + arr.readInt16LE = BP.readInt16LE + arr.readInt16BE = BP.readInt16BE + arr.readInt32LE = BP.readInt32LE + arr.readInt32BE = BP.readInt32BE + arr.readFloatLE = BP.readFloatLE + arr.readFloatBE = BP.readFloatBE + arr.readDoubleLE = BP.readDoubleLE + arr.readDoubleBE = BP.readDoubleBE + arr.writeUInt8 = BP.writeUInt8 + arr.writeUIntLE = BP.writeUIntLE + arr.writeUIntBE = BP.writeUIntBE + arr.writeUInt16LE = BP.writeUInt16LE + arr.writeUInt16BE = BP.writeUInt16BE + arr.writeUInt32LE = BP.writeUInt32LE + arr.writeUInt32BE = BP.writeUInt32BE + arr.writeIntLE = BP.writeIntLE + arr.writeIntBE = BP.writeIntBE + arr.writeInt8 = BP.writeInt8 + arr.writeInt16LE = BP.writeInt16LE + arr.writeInt16BE = BP.writeInt16BE + arr.writeInt32LE = BP.writeInt32LE + arr.writeInt32BE = BP.writeInt32BE + arr.writeFloatLE = BP.writeFloatLE + arr.writeFloatBE = BP.writeFloatBE + arr.writeDoubleLE = BP.writeDoubleLE + arr.writeDoubleBE = BP.writeDoubleBE + arr.fill = BP.fill + arr.inspect = BP.inspect + arr.toArrayBuffer = BP.toArrayBuffer + + return arr +} + +var INVALID_BASE64_RE = /[^+\/0-9A-z\-]/g + +function base64clean (str) { + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = stringtrim(str).replace(INVALID_BASE64_RE, '') + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '=' + } + return str +} + +function stringtrim (str) { + if (str.trim) return str.trim() + return str.replace(/^\s+|\s+$/g, '') +} + +function toHex (n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) +} + +function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + var i = 0 + + for (; i < length; i++) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (leadSurrogate) { + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } else { + // valid surrogate pair + codePoint = leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00 | 0x10000 + leadSurrogate = null + } + } else { + // no lead yet + + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else { + // valid lead + leadSurrogate = codePoint + continue + } + } + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = null + } + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x200000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function asciiToBytes (str) { + var byteArray = [] + for (var i = 0; i < str.length; i++) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF) + } + return byteArray +} + +function utf16leToBytes (str, units) { + var c, hi, lo + var byteArray = [] + for (var i = 0; i < str.length; i++) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) + } + + return byteArray +} + +function base64ToBytes (str) { + return base64.toByteArray(base64clean(str)) +} + +function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; i++) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i +} + +function decodeUtf8Char (str) { + try { + return decodeURIComponent(str) + } catch (err) { + return String.fromCharCode(0xFFFD) // UTF 8 invalid char + } +} + +},{"base64-js":14,"ieee754":15,"is-array":16}],14:[function(require,module,exports){ +var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + +;(function (exports) { + 'use strict'; + + var Arr = (typeof Uint8Array !== 'undefined') + ? Uint8Array + : Array + + var PLUS = '+'.charCodeAt(0) + var SLASH = '/'.charCodeAt(0) + var NUMBER = '0'.charCodeAt(0) + var LOWER = 'a'.charCodeAt(0) + var UPPER = 'A'.charCodeAt(0) + var PLUS_URL_SAFE = '-'.charCodeAt(0) + var SLASH_URL_SAFE = '_'.charCodeAt(0) + + function decode (elt) { + var code = elt.charCodeAt(0) + if (code === PLUS || + code === PLUS_URL_SAFE) + return 62 // '+' + if (code === SLASH || + code === SLASH_URL_SAFE) + return 63 // '/' + if (code < NUMBER) + return -1 //no match + if (code < NUMBER + 10) + return code - NUMBER + 26 + 26 + if (code < UPPER + 26) + return code - UPPER + if (code < LOWER + 26) + return code - LOWER + 26 + } + + function b64ToByteArray (b64) { + var i, j, l, tmp, placeHolders, arr + + if (b64.length % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + + // the number of equal signs (place holders) + // if there are two placeholders, than the two characters before it + // represent one byte + // if there is only one, then the three characters before it represent 2 bytes + // this is just a cheap hack to not do indexOf twice + var len = b64.length + placeHolders = '=' === b64.charAt(len - 2) ? 2 : '=' === b64.charAt(len - 1) ? 1 : 0 + + // base64 is 4/3 + up to two characters of the original data + arr = new Arr(b64.length * 3 / 4 - placeHolders) + + // if there are placeholders, only get up to the last complete 4 chars + l = placeHolders > 0 ? b64.length - 4 : b64.length + + var L = 0 + + function push (v) { + arr[L++] = v + } + + for (i = 0, j = 0; i < l; i += 4, j += 3) { + tmp = (decode(b64.charAt(i)) << 18) | (decode(b64.charAt(i + 1)) << 12) | (decode(b64.charAt(i + 2)) << 6) | decode(b64.charAt(i + 3)) + push((tmp & 0xFF0000) >> 16) + push((tmp & 0xFF00) >> 8) + push(tmp & 0xFF) + } + + if (placeHolders === 2) { + tmp = (decode(b64.charAt(i)) << 2) | (decode(b64.charAt(i + 1)) >> 4) + push(tmp & 0xFF) + } else if (placeHolders === 1) { + tmp = (decode(b64.charAt(i)) << 10) | (decode(b64.charAt(i + 1)) << 4) | (decode(b64.charAt(i + 2)) >> 2) + push((tmp >> 8) & 0xFF) + push(tmp & 0xFF) + } + + return arr + } + + function uint8ToBase64 (uint8) { + var i, + extraBytes = uint8.length % 3, // if we have 1 byte left, pad 2 bytes + output = "", + temp, length + + function encode (num) { + return lookup.charAt(num) + } + + function tripletToBase64 (num) { + return encode(num >> 18 & 0x3F) + encode(num >> 12 & 0x3F) + encode(num >> 6 & 0x3F) + encode(num & 0x3F) + } + + // go through the array every three bytes, we'll deal with trailing stuff later + for (i = 0, length = uint8.length - extraBytes; i < length; i += 3) { + temp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]) + output += tripletToBase64(temp) + } + + // pad the end with zeros, but make sure to not forget the extra bytes + switch (extraBytes) { + case 1: + temp = uint8[uint8.length - 1] + output += encode(temp >> 2) + output += encode((temp << 4) & 0x3F) + output += '==' + break + case 2: + temp = (uint8[uint8.length - 2] << 8) + (uint8[uint8.length - 1]) + output += encode(temp >> 10) + output += encode((temp >> 4) & 0x3F) + output += encode((temp << 2) & 0x3F) + output += '=' + break + } + + return output + } + + exports.toByteArray = b64ToByteArray + exports.fromByteArray = uint8ToBase64 +}(typeof exports === 'undefined' ? (this.base64js = {}) : exports)) + +},{}],15:[function(require,module,exports){ +exports.read = function (buffer, offset, isLE, mLen, nBytes) { + var e, m + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var nBits = -7 + var i = isLE ? (nBytes - 1) : 0 + var d = isLE ? -1 : 1 + var s = buffer[offset + i] + + i += d + + e = s & ((1 << (-nBits)) - 1) + s >>= (-nBits) + nBits += eLen + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & ((1 << (-nBits)) - 1) + e >>= (-nBits) + nBits += mLen + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity) + } else { + m = m + Math.pow(2, mLen) + e = e - eBias + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen) +} + +exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) + var i = isLE ? 0 : (nBytes - 1) + var d = isLE ? 1 : -1 + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 + + value = Math.abs(value) + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0 + e = eMax + } else { + e = Math.floor(Math.log(value) / Math.LN2) + if (value * (c = Math.pow(2, -e)) < 1) { + e-- + c *= 2 + } + if (e + eBias >= 1) { + value += rt / c + } else { + value += rt * Math.pow(2, 1 - eBias) + } + if (value * c >= 2) { + e++ + c /= 2 + } + + if (e + eBias >= eMax) { + m = 0 + e = eMax + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen) + e = e + eBias + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) + e = 0 + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} + + e = (e << mLen) | m + eLen += mLen + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} + + buffer[offset + i - d] |= s * 128 +} + +},{}],16:[function(require,module,exports){ + +/** + * isArray + */ + +var isArray = Array.isArray; + +/** + * toString + */ + +var str = Object.prototype.toString; + +/** + * Whether or not the given `val` + * is an array. + * + * example: + * + * isArray([]); + * // > true + * isArray(arguments); + * // > false + * isArray(''); + * // > false + * + * @param {mixed} val + * @return {bool} + */ + +module.exports = isArray || function (val) { + return !! val && '[object Array]' == str.call(val); +}; + +},{}],17:[function(require,module,exports){ +// shim for using process in browser + +var process = module.exports = {}; +var queue = []; +var draining = false; + +function drainQueue() { + if (draining) { + return; + } + draining = true; + var currentQueue; + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + var i = -1; + while (++i < len) { + currentQueue[i](); + } + len = queue.length; + } + draining = false; +} +process.nextTick = function (fun) { + queue.push(fun); + if (!draining) { + setTimeout(drainQueue, 0); + } +}; + +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; + +// TODO(shtylman) +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; + +},{}],18:[function(require,module,exports){ +(function (Buffer){ +(function () { + "use strict"; + + function btoa(str) { + var buffer + ; + + if (str instanceof Buffer) { + buffer = str; + } else { + buffer = new Buffer(str.toString(), 'binary'); + } + + return buffer.toString('base64'); + } + + module.exports = btoa; +}()); + +}).call(this,require("buffer").Buffer) +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9idG9hL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgXCJ1c2Ugc3RyaWN0XCI7XG5cbiAgZnVuY3Rpb24gYnRvYShzdHIpIHtcbiAgICB2YXIgYnVmZmVyXG4gICAgICA7XG5cbiAgICBpZiAoc3RyIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICBidWZmZXIgPSBzdHI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJ1ZmZlciA9IG5ldyBCdWZmZXIoc3RyLnRvU3RyaW5nKCksICdiaW5hcnknKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgfVxuXG4gIG1vZHVsZS5leHBvcnRzID0gYnRvYTtcbn0oKSk7XG4iXX0= +},{"buffer":13}],19:[function(require,module,exports){ +/* jshint node: true */ +(function () { + "use strict"; + + function CookieAccessInfo(domain, path, secure, script) { + if (this instanceof CookieAccessInfo) { + this.domain = domain || undefined; + this.path = path || "/"; + this.secure = !!secure; + this.script = !!script; + return this; + } + return new CookieAccessInfo(domain, path, secure, script); + } + exports.CookieAccessInfo = CookieAccessInfo; + + function Cookie(cookiestr, request_domain, request_path) { + if (cookiestr instanceof Cookie) { + return cookiestr; + } + if (this instanceof Cookie) { + this.name = null; + this.value = null; + this.expiration_date = Infinity; + this.path = String(request_path || "/"); + this.explicit_path = false; + this.domain = request_domain || null; + this.explicit_domain = false; + this.secure = false; //how to define default? + this.noscript = false; //httponly + if (cookiestr) { + this.parse(cookiestr, request_domain, request_path); + } + return this; + } + return new Cookie(cookiestr); + } + exports.Cookie = Cookie; + + Cookie.prototype.toString = function toString() { + var str = [this.name + "=" + this.value]; + if (this.expiration_date !== Infinity) { + str.push("expires=" + (new Date(this.expiration_date)).toGMTString()); + } + if (this.domain) { + str.push("domain=" + this.domain); + } + if (this.path) { + str.push("path=" + this.path); + } + if (this.secure) { + str.push("secure"); + } + if (this.noscript) { + str.push("httponly"); + } + return str.join("; "); + }; + + Cookie.prototype.toValueString = function toValueString() { + return this.name + "=" + this.value; + }; + + var cookie_str_splitter = /[:](?=\s*[a-zA-Z0-9_\-]+\s*[=])/g; + Cookie.prototype.parse = function parse(str, request_domain, request_path) { + if (this instanceof Cookie) { + var parts = str.split(";").filter(function (value) { + return !!value; + }), + pair = parts[0].match(/([^=]+)=([\s\S]*)/), + key = pair[1], + value = pair[2], + i; + this.name = key; + this.value = value; + + for (i = 1; i < parts.length; i += 1) { + pair = parts[i].match(/([^=]+)(?:=([\s\S]*))?/); + key = pair[1].trim().toLowerCase(); + value = pair[2]; + switch (key) { + case "httponly": + this.noscript = true; + break; + case "expires": + this.expiration_date = value ? + Number(Date.parse(value)) : + Infinity; + break; + case "path": + this.path = value ? + value.trim() : + ""; + this.explicit_path = true; + break; + case "domain": + this.domain = value ? + value.trim() : + ""; + this.explicit_domain = !!this.domain; + break; + case "secure": + this.secure = true; + break; + } + } + + if (!this.explicit_path) { + this.path = request_path || "/"; + } + if (!this.explicit_domain) { + this.domain = request_domain; + } + + return this; + } + return new Cookie().parse(str, request_domain, request_path); + }; + + Cookie.prototype.matches = function matches(access_info) { + if (this.noscript && access_info.script || + this.secure && !access_info.secure || + !this.collidesWith(access_info)) { + return false; + } + return true; + }; + + Cookie.prototype.collidesWith = function collidesWith(access_info) { + if ((this.path && !access_info.path) || (this.domain && !access_info.domain)) { + return false; + } + if (this.path && access_info.path.indexOf(this.path) !== 0) { + return false; + } + if (!this.explicit_path) { + if (this.path !== access_info.path) { + return false; + } + } + var access_domain = access_info.domain && access_info.domain.replace(/^[\.]/,''); + var cookie_domain = this.domain && this.domain.replace(/^[\.]/,''); + if (cookie_domain === access_domain) { + return true; + } + if (cookie_domain) { + if (!this.explicit_domain) { + return false; // we already checked if the domains were exactly the same + } + var wildcard = access_domain.indexOf(cookie_domain); + if (wildcard === -1 || wildcard !== access_domain.length - cookie_domain.length) { + return false; + } + return true; + } + return true; + }; + + function CookieJar() { + var cookies, cookies_list, collidable_cookie; + if (this instanceof CookieJar) { + cookies = Object.create(null); //name: [Cookie] + + this.setCookie = function setCookie(cookie, request_domain, request_path) { + var remove, i; + cookie = new Cookie(cookie, request_domain, request_path); + //Delete the cookie if the set is past the current time + remove = cookie.expiration_date <= Date.now(); + if (cookies[cookie.name] !== undefined) { + cookies_list = cookies[cookie.name]; + for (i = 0; i < cookies_list.length; i += 1) { + collidable_cookie = cookies_list[i]; + if (collidable_cookie.collidesWith(cookie)) { + if (remove) { + cookies_list.splice(i, 1); + if (cookies_list.length === 0) { + delete cookies[cookie.name]; + } + return false; + } + cookies_list[i] = cookie; + return cookie; + } + } + if (remove) { + return false; + } + cookies_list.push(cookie); + return cookie; + } + if (remove) { + return false; + } + cookies[cookie.name] = [cookie]; + return cookies[cookie.name]; + }; + //returns a cookie + this.getCookie = function getCookie(cookie_name, access_info) { + var cookie, i; + cookies_list = cookies[cookie_name]; + if (!cookies_list) { + return; + } + for (i = 0; i < cookies_list.length; i += 1) { + cookie = cookies_list[i]; + if (cookie.expiration_date <= Date.now()) { + if (cookies_list.length === 0) { + delete cookies[cookie.name]; + } + continue; + } + if (cookie.matches(access_info)) { + return cookie; + } + } + }; + //returns a list of cookies + this.getCookies = function getCookies(access_info) { + var matches = [], cookie_name, cookie; + for (cookie_name in cookies) { + cookie = this.getCookie(cookie_name, access_info); + if (cookie) { + matches.push(cookie); + } + } + matches.toString = function toString() { + return matches.join(":"); + }; + matches.toValueString = function toValueString() { + return matches.map(function (c) { + return c.toValueString(); + }).join(';'); + }; + return matches; + }; + + return this; + } + return new CookieJar(); + } + exports.CookieJar = CookieJar; + + //returns list of cookies that were set correctly. Cookies that are expired and removed are not returned. + CookieJar.prototype.setCookies = function setCookies(cookies, request_domain, request_path) { + cookies = Array.isArray(cookies) ? + cookies : + cookies.split(cookie_str_splitter); + var successful = [], + i, + cookie; + cookies = cookies.map(Cookie); + for (i = 0; i < cookies.length; i += 1) { + cookie = cookies[i]; + if (this.setCookie(cookie, request_domain, request_path)) { + successful.push(cookie); + } + } + return successful; + }; +}()); + +},{}],20:[function(require,module,exports){ +/*! + * jQuery JavaScript Library v2.1.4 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2015-04-28T16:01Z + */ + +(function( global, factory ) { + + if ( typeof module === "object" && typeof module.exports === "object" ) { + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Support: Firefox 18+ +// Can't be in strict mode, several libs including ASP.NET trace +// the stack via arguments.caller.callee and Firefox dies if +// you try to trace through "use strict" call chains. (#13335) +// + +var arr = []; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var support = {}; + + + +var + // Use the correct document accordingly with window argument (sandbox) + document = window.document, + + version = "2.1.4", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android<4.1 + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // Start with an empty selector + selector: "", + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num != null ? + + // Return just the one element from the set + ( num < 0 ? this[ num + this.length ] : this[ num ] ) : + + // Return all the elements in a clean array + slice.call( this ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + // parseFloat NaNs numeric-cast false positives (null|true|false|"") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + // adding 1 corrects loss of precision from parseFloat (#15100) + return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0; + }, + + isPlainObject: function( obj ) { + // Not plain objects: + // - Any object or value whose internal [[Class]] property is not "[object Object]" + // - DOM nodes + // - window + if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.constructor && + !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) { + return false; + } + + // If the function hasn't returned already, we're confident that + // |obj| is a plain object, created by {} or constructed with new Object + return true; + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + // Support: Android<4.0, iOS<6 (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call(obj) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + var script, + indirect = eval; + + code = jQuery.trim( code ); + + if ( code ) { + // If the code includes a valid, prologue position + // strict mode pragma, execute code by injecting a + // script tag into the document. + if ( code.indexOf("use strict") === 1 ) { + script = document.createElement("script"); + script.text = code; + document.head.appendChild( script ).parentNode.removeChild( script ); + } else { + // Otherwise, avoid the DOM node creation, insertion + // and removal by using an indirect global eval + indirect( code ); + } + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE9-11+ + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } + } + + return obj; + }, + + // Support: Android<4.1 + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, + i = 0, + length = elems.length, + isArray = isArraylike( elems ), + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +}); + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +function isArraylike( obj ) { + + // Support: iOS 8.2 (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = "length" in obj && obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.nodeType === 1 && length ) { + return true; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.2.0-pre + * http://sizzlejs.com/ + * + * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2014-12-16 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // General-purpose constants + MAX_NEGATIVE = 1 << 31, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // http://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + characterEncoding + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + rescape = /'|\\/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }; + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + nodeType = context.nodeType; + + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + if ( !seed && documentIsHTML ) { + + // Try to shortcut find operations when possible (e.g., not under DocumentFragment) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document (jQuery #6963) + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // QSA path + if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + nid = old = expando; + newContext = context; + newSelector = nodeType !== 1 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( div.parentNode ) { + div.parentNode.removeChild( div ); + } + // release memory in IE + div = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = attrs.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + ( ~b.sourceIndex || MAX_NEGATIVE ) - + ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, parent, + doc = node ? node.ownerDocument || node : preferredDoc; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + parent = doc.defaultView; + + // Support: IE>8 + // If iframe document is assigned to "document" variable and if iframe has been reloaded, + // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 + // IE6-8 do not support the defaultView property so parent will be undefined + if ( parent && parent !== parent.top ) { + // IE11 does not have attachEvent, so all must suffer + if ( parent.addEventListener ) { + parent.addEventListener( "unload", unloadHandler, false ); + } else if ( parent.attachEvent ) { + parent.attachEvent( "onunload", unloadHandler ); + } + } + + /* Support tests + ---------------------------------------------------------------------- */ + documentIsHTML = !isXML( doc ); + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( div ) { + div.className = "i"; + return !div.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( doc.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( div ) { + docElem.appendChild( div ).id = expando; + return !doc.getElementsByName || !doc.getElementsByName( expando ).length; + }); + + // ID find and filter + if ( support.getById ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [ m ] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + // Support: IE6/7 + // getElementById is not reliable as a find shortcut + delete Expr.find["ID"]; + + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See http://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" + + "<select id='" + expando + "-\f]' msallowcapture=''>" + + "<option selected=''></option></select>"; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( div.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+ + if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibing-combinator selector` fails + if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( div ) { + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = doc.createElement("input"); + input.setAttribute( "type", "hidden" ); + div.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( div.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return doc; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (oldCache = outerCache[ dir ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + outerCache[ dir ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context !== document && context; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is no seed and only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( div1 ) { + // Should return 1, but returns 4 (following) + return div1.compareDocumentPosition( document.createElement("div") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( div ) { + div.innerHTML = "<a href='#'></a>"; + return div.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( div ) { + div.innerHTML = "<input/>"; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( div ) { + return div.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + + +var rneedsContext = jQuery.expr.match.needsContext; + +var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); + + + +var risSimple = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + /* jshint -W018 */ + return !!qualifier.call( elem, i, elem ) !== not; + }); + + } + + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + }); + + } + + if ( typeof qualifier === "string" ) { + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + qualifier = jQuery.filter( qualifier, elements ); + } + + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) >= 0 ) !== not; + }); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + })); +}; + +jQuery.fn.extend({ + find: function( selector ) { + var i, + len = this.length, + ret = [], + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = this.selector ? this.selector + " " + selector : selector; + return ret; + }, + filter: function( selector ) { + return this.pushStack( winnow(this, selector || [], false) ); + }, + not: function( selector ) { + return this.pushStack( winnow(this, selector || [], true) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +}); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + init = jQuery.fn.init = function( selector, context ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Support: Blackberry 4.6 + // gEBID returns nodes no longer in the document (#6963) + if ( elem && elem.parentNode ) { + // Inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return typeof rootjQuery.ready !== "undefined" ? + rootjQuery.ready( selector ) : + // Execute immediately if ready is not present + selector( jQuery ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.extend({ + dir: function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; + }, + + sibling: function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; + } +}); + +jQuery.fn.extend({ + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter(function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { + // Always skip document fragments + if ( cur.nodeType < 11 && (pos ? + pos.index(cur) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector(cur, selectors)) ) { + + matched.push( cur ); + break; + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.unique( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +function sibling( cur, dir ) { + while ( (cur = cur[dir]) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return elem.contentDocument || jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.unique( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +}); +var rnotwhite = (/\S+/g); + + + +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // Flag to know if list is currently firing + firing, + // First callback to fire (used internally by add and fireWith) + firingStart, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + firingLength = 0; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( list && ( !fired || stack ) ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // Add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // If we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); + + +// The deferred used on DOM ready +var readyList; + +jQuery.fn.ready = function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; +}; + +jQuery.extend({ + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.triggerHandler ) { + jQuery( document ).triggerHandler( "ready" ); + jQuery( document ).off( "ready" ); + } + } +}); + +/** + * The ready event handler and self cleanup method + */ +function completed() { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + jQuery.ready(); +} + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // We once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + } else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + } + } + return readyList.promise( obj ); +}; + +// Kick off the DOM ready check even if the user does not +jQuery.ready.promise(); + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + len ? fn( elems[0], key ) : emptyGet; +}; + + +/** + * Determines whether an object can have data + */ +jQuery.acceptData = function( owner ) { + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + /* jshint -W018 */ + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + +function Data() { + // Support: Android<4, + // Old WebKit does not have Object.preventExtensions/freeze method, + // return new empty object instead with no [[set]] accessor + Object.defineProperty( this.cache = {}, 0, { + get: function() { + return {}; + } + }); + + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; +Data.accepts = jQuery.acceptData; + +Data.prototype = { + key: function( owner ) { + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return the key for a frozen object. + if ( !Data.accepts( owner ) ) { + return 0; + } + + var descriptor = {}, + // Check if the owner object already has a cache key + unlock = owner[ this.expando ]; + + // If not, create one + if ( !unlock ) { + unlock = Data.uid++; + + // Secure it in a non-enumerable, non-writable property + try { + descriptor[ this.expando ] = { value: unlock }; + Object.defineProperties( owner, descriptor ); + + // Support: Android<4 + // Fallback to a less secure definition + } catch ( e ) { + descriptor[ this.expando ] = unlock; + jQuery.extend( owner, descriptor ); + } + } + + // Ensure the cache object + if ( !this.cache[ unlock ] ) { + this.cache[ unlock ] = {}; + } + + return unlock; + }, + set: function( owner, data, value ) { + var prop, + // There may be an unlock assigned to this node, + // if there is no entry for this "owner", create one inline + // and set the unlock as though an owner entry had always existed + unlock = this.key( owner ), + cache = this.cache[ unlock ]; + + // Handle: [ owner, key, value ] args + if ( typeof data === "string" ) { + cache[ data ] = value; + + // Handle: [ owner, { properties } ] args + } else { + // Fresh assignments by object are shallow copied + if ( jQuery.isEmptyObject( cache ) ) { + jQuery.extend( this.cache[ unlock ], data ); + // Otherwise, copy the properties one-by-one to the cache object + } else { + for ( prop in data ) { + cache[ prop ] = data[ prop ]; + } + } + } + return cache; + }, + get: function( owner, key ) { + // Either a valid cache is found, or will be created. + // New caches will be created and the unlock returned, + // allowing direct access to the newly created + // empty data object. A valid owner object must be provided. + var cache = this.cache[ this.key( owner ) ]; + + return key === undefined ? + cache : cache[ key ]; + }, + access: function( owner, key, value ) { + var stored; + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ((key && typeof key === "string") && value === undefined) ) { + + stored = this.get( owner, key ); + + return stored !== undefined ? + stored : this.get( owner, jQuery.camelCase(key) ); + } + + // [*]When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, name, camel, + unlock = this.key( owner ), + cache = this.cache[ unlock ]; + + if ( key === undefined ) { + this.cache[ unlock ] = {}; + + } else { + // Support array or space separated string of keys + if ( jQuery.isArray( key ) ) { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = key.concat( key.map( jQuery.camelCase ) ); + } else { + camel = jQuery.camelCase( key ); + // Try the string as a key before any manipulation + if ( key in cache ) { + name = [ key, camel ]; + } else { + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + name = camel; + name = name in cache ? + [ name ] : ( name.match( rnotwhite ) || [] ); + } + } + + i = name.length; + while ( i-- ) { + delete cache[ name[ i ] ]; + } + } + }, + hasData: function( owner ) { + return !jQuery.isEmptyObject( + this.cache[ owner[ this.expando ] ] || {} + ); + }, + discard: function( owner ) { + if ( owner[ this.expando ] ) { + delete this.cache[ owner[ this.expando ] ]; + } + } +}; +var data_priv = new Data(); + +var data_user = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /([A-Z])/g; + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + data_user.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend({ + hasData: function( elem ) { + return data_user.hasData( elem ) || data_priv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return data_user.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + data_user.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to data_priv methods, these can be deprecated. + _data: function( elem, name, data ) { + return data_priv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + data_priv.remove( elem, name ); + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = data_user.get( elem ); + + if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE11+ + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.slice(5) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + data_priv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + data_user.set( this, key ); + }); + } + + return access( this, function( value ) { + var data, + camelKey = jQuery.camelCase( key ); + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + // Attempt to get data from the cache + // with the key as-is + data = data_user.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to get data from the cache + // with the key camelized + data = data_user.get( elem, camelKey ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, camelKey, undefined ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each(function() { + // First, attempt to store a copy or reference of any + // data that might've been store with a camelCased key. + var data = data_user.get( this, camelKey ); + + // For HTML5 data-* attribute interop, we have to + // store property names with dashes in a camelCase form. + // This might not apply to all properties...* + data_user.set( this, camelKey, value ); + + // *... In the case of properties that might _actually_ + // have dashes, we need to also store a copy of that + // unchanged property. + if ( key.indexOf("-") !== -1 && data !== undefined ) { + data_user.set( this, key, value ); + } + }); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each(function() { + data_user.remove( this, key ); + }); + } +}); + + +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = data_priv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray( data ) ) { + queue = data_priv.access( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return data_priv.get( elem, key ) || data_priv.access( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + data_priv.remove( elem, [ type + "queue", key ] ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = data_priv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHidden = function( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); + }; + +var rcheckableType = (/^(?:checkbox|radio)$/i); + + + +(function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Safari<=5.1 + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Safari<=5.1, Android<4.2 + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<=11+ + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = "<textarea>x</textarea>"; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +})(); +var strundefined = typeof undefined; + + + +support.focusinBubbles = "onfocusin" in window; + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = data_priv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = data_priv.hasData( elem ) && data_priv.get( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + data_priv.remove( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && jQuery.acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && + jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + elem[ type ](); + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, j, ret, matched, handleObj, + handlerQueue = [], + args = slice.call( arguments ), + handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, matches, sel, handleObj, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG <use> instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.disabled !== true || event.type !== "click" ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var eventDoc, doc, body, + button = original.button; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: Cordova 2.5 (WebKit) (#13255) + // All events should have a target; Cordova deviceready doesn't + if ( !event.target ) { + event.target = document; + } + + // Support: Safari 6.0+, Chrome<28 + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return jQuery.nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } +}; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + // Support: Android<4.0 + src.returnValue === false ? + returnTrue : + returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && e.preventDefault ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && e.stopPropagation ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && e.stopImmediatePropagation ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +// Support: Chrome 15+ +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// Support: Firefox, Chrome, Safari +// Create "bubbling" focus and blur events +if ( !support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = data_priv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + data_priv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = data_priv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + data_priv.remove( doc, fix ); + + } else { + data_priv.access( doc, fix, attaches ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +}); + + +var + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rhtml = /<|&#?\w+;/, + rnoInnerhtml = /<(?:script|style|link)/i, + // checked="checked" or checked + rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, + rscriptType = /^$|\/(?:java|ecma)script/i, + rscriptTypeMasked = /^true\/(.*)/, + rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + + // Support: IE9 + option: [ 1, "<select multiple='multiple'>", "</select>" ], + + thead: [ 1, "<table>", "</table>" ], + col: [ 2, "<table><colgroup>", "</colgroup></table>" ], + tr: [ 2, "<table><tbody>", "</tbody></table>" ], + td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], + + _default: [ 0, "", "" ] + }; + +// Support: IE9 +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: 1.x compatibility +// Manipulating tables requires a tbody +function manipulationTarget( elem, content ) { + return jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? + + elem.getElementsByTagName("tbody")[0] || + elem.appendChild( elem.ownerDocument.createElement("tbody") ) : + elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + + if ( match ) { + elem.type = match[ 1 ]; + } else { + elem.removeAttribute("type"); + } + + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + data_priv.set( + elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" ) + ); + } +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( data_priv.hasData( src ) ) { + pdataOld = data_priv.access( src ); + pdataCur = data_priv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( data_user.hasData( src ) ) { + udataOld = data_user.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + data_user.set( dest, udataCur ); + } +} + +function getAll( context, tag ) { + var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) : + context.querySelectorAll ? context.querySelectorAll( tag || "*" ) : + []; + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], ret ) : + ret; +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var elem, tmp, tag, wrap, contains, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + // Support: QtWebKit, PhantomJS + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: QtWebKit, PhantomJS + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; + }, + + cleanData: function( elems ) { + var data, elem, type, key, + special = jQuery.event.special, + i = 0; + + for ( ; (elem = elems[ i ]) !== undefined; i++ ) { + if ( jQuery.acceptData( elem ) ) { + key = elem[ data_priv.expando ]; + + if ( key && (data = data_priv.cache[ key ]) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + if ( data_priv.cache[ key ] ) { + // Discard any remaining `private` data + delete data_priv.cache[ key ]; + } + } + } + // Discard any remaining `user` data + delete data_user.cache[ elem[ data_user.expando ] ]; + } + } +}); + +jQuery.fn.extend({ + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each(function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + }); + }, null, value, arguments.length ); + }, + + append: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + remove: function( selector, keepData /* Internal Use Only */ ) { + var elem, + elems = selector ? jQuery.filter( selector, this ) : this, + i = 0; + + for ( ; (elem = elems[i]) != null; i++ ) { + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map(function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1></$2>" ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var arg = arguments[ 0 ]; + + // Make the changes, replacing each context element with the new content + this.domManip( arguments, function( elem ) { + arg = this.parentNode; + + jQuery.cleanData( getAll( this ) ); + + if ( arg ) { + arg.replaceChild( elem, this ); + } + }); + + // Force removal if there was no new content (e.g., from empty arguments) + return arg && (arg.length || arg.nodeType) ? this : this.remove(); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, callback ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[ 0 ], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + self.domManip( args, callback ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + // Support: QtWebKit + // jQuery.merge because push.apply(_, arraylike) throws + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( this[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) ); + } + } + } + } + } + } + + return this; + } +}); + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: QtWebKit + // .get() because push.apply(_, arraylike) throws + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +}); + + +var iframe, + elemdisplay = {}; + +/** + * Retrieve the actual display of a element + * @param {String} name nodeName of the element + * @param {Object} doc Document object + */ +// Called only from within defaultDisplay +function actualDisplay( name, doc ) { + var style, + elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), + + // getDefaultComputedStyle might be reliably used only on attached element + display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? + + // Use of this method is a temporary fix (more like optimization) until something better comes along, + // since it was removed from specification and supported only in FF + style.display : jQuery.css( elem[ 0 ], "display" ); + + // We don't have any data stored on the element, + // so use "detach" method as fast way to get rid of the element + elem.detach(); + + return display; +} + +/** + * Try to determine the default display value of an element + * @param {String} nodeName + */ +function defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + + // Use the already-created iframe if possible + iframe = (iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" )).appendTo( doc.documentElement ); + + // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse + doc = iframe[ 0 ].contentDocument; + + // Support: IE + doc.write(); + doc.close(); + + display = actualDisplay( nodeName, doc ); + iframe.detach(); + } + + // Store the correct default display + elemdisplay[ nodeName ] = display; + } + + return display; +} +var rmargin = (/^margin/); + +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + // Support: IE<=11+, Firefox<=30+ (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + if ( elem.ownerDocument.defaultView.opener ) { + return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); + } + + return window.getComputedStyle( elem, null ); + }; + + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + style = elem.style; + + computed = computed || getStyles( elem ); + + // Support: IE9 + // getPropertyValue is only needed for .css('filter') (#12537) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + } + + if ( computed ) { + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // Support: iOS < 6 + // A tribute to the "awesome hack by Dean Edwards" + // iOS < 6 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + // Support: IE + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return (this.get = hookFn).apply( this, arguments ); + } + }; +} + + +(function() { + var pixelPositionVal, boxSizingReliableVal, + docElem = document.documentElement, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + if ( !div.style ) { + return; + } + + // Support: IE9-11+ + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + container.style.cssText = "border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;" + + "position:absolute"; + container.appendChild( div ); + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computePixelPositionAndBoxSizingReliable() { + div.style.cssText = + // Support: Firefox<29, Android 2.3 + // Vendor-prefix box-sizing + "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;" + + "box-sizing:border-box;display:block;margin-top:1%;top:1%;" + + "border:1px;padding:1px;width:4px;position:absolute"; + div.innerHTML = ""; + docElem.appendChild( container ); + + var divStyle = window.getComputedStyle( div, null ); + pixelPositionVal = divStyle.top !== "1%"; + boxSizingReliableVal = divStyle.width === "4px"; + + docElem.removeChild( container ); + } + + // Support: node.js jsdom + // Don't assume that getComputedStyle is a property of the global object + if ( window.getComputedStyle ) { + jQuery.extend( support, { + pixelPosition: function() { + + // This test is executed only once but we still do memoizing + // since we can use the boxSizingReliable pre-computing. + // No need to check if the test was already performed, though. + computePixelPositionAndBoxSizingReliable(); + return pixelPositionVal; + }, + boxSizingReliable: function() { + if ( boxSizingReliableVal == null ) { + computePixelPositionAndBoxSizingReliable(); + } + return boxSizingReliableVal; + }, + reliableMarginRight: function() { + + // Support: Android 2.3 + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. (#3333) + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + // This support function is only executed once so no memoizing is needed. + var ret, + marginDiv = div.appendChild( document.createElement( "div" ) ); + + // Reset CSS: box-sizing; display; margin; border; padding + marginDiv.style.cssText = div.style.cssText = + // Support: Firefox<29, Android 2.3 + // Vendor-prefix box-sizing + "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" + + "box-sizing:content-box;display:block;margin:0;border:0;padding:0"; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; + docElem.appendChild( container ); + + ret = !parseFloat( window.getComputedStyle( marginDiv, null ).marginRight ); + + docElem.removeChild( container ); + div.removeChild( marginDiv ); + + return ret; + } + }); + } +})(); + + +// A method for quickly swapping in/out CSS properties to get correct calculations. +jQuery.swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var + // Swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ), + rrelNum = new RegExp( "^([+-])=(" + pnum + ")", "i" ), + + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; + +// Return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { + + // Shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; + } + + // Check for vendor prefixed names + var capName = name[0].toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; + } + } + + return origName; +} + +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + // Both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // At this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + // At this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // At this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var valueIsBorderBox = true, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + styles = getStyles( elem ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } + + // Check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && + ( support.boxSizingReliable() || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // Use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +function showHide( elements, show ) { + var display, elem, hidden, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + values[ index ] = data_priv.get( elem, "olddisplay" ); + display = elem.style.display; + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = data_priv.access( elem, "olddisplay", defaultDisplay(elem.nodeName) ); + } + } else { + hidden = isHidden( elem ); + + if ( display !== "none" || !hidden ) { + data_priv.set( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; +} + +jQuery.extend({ + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + "float": "cssFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // Support: IE9-11+ + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { + style[ name ] = value; + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + } +}); + +jQuery.each([ "height", "width" ], function( i, name ) { + jQuery.cssHooks[ name ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && elem.offsetWidth === 0 ? + jQuery.swap( elem, cssShow, function() { + return getWidthOrHeight( elem, name, extra ); + }) : + getWidthOrHeight( elem, name, extra ); + } + }, + + set: function( elem, value, extra ) { + var styles = extra && getStyles( elem ); + return setPositiveNumber( elem, value, extra ? + augmentWidthOrHeight( + elem, + name, + extra, + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + styles + ) : 0 + ); + } + }; +}); + +// Support: Android 2.3 +jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight, + function( elem, computed ) { + if ( computed ) { + return jQuery.swap( elem, { "display": "inline-block" }, + curCSS, [ elem, "marginRight" ] ); + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each({ + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split(" ") : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( !rmargin.test( prefix ) ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +}); + +jQuery.fn.extend({ + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( jQuery.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each(function() { + if ( isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); + } +}); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || "swing"; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + if ( tween.elem[ tween.prop ] != null && + (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE9 +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + } +}; + +jQuery.fx = Tween.prototype.init; + +// Back Compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, timerId, + rfxtypes = /^(?:toggle|show|hide)$/, + rfxnum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ), + rrun = /queueHooks$/, + animationPrefilters = [ defaultPrefilter ], + tweeners = { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ), + target = tween.cur(), + parts = rfxnum.exec( value ), + unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) && + rfxnum.exec( jQuery.css( tween.elem, prop ) ), + scale = 1, + maxIterations = 20; + + if ( start && start[ 3 ] !== unit ) { + // Trust units reported by jQuery.css + unit = unit || start[ 3 ]; + + // Make sure we update the tween properties later on + parts = parts || []; + + // Iteratively approximate from a nonzero starting point + start = +target || 1; + + do { + // If previous iteration zeroed out, double until we get *something*. + // Use string for doubling so we don't accidentally see scale as unchanged below + scale = scale || ".5"; + + // Adjust and apply + start = start / scale; + jQuery.style( tween.elem, prop, start + unit ); + + // Update scale, tolerating zero or NaN from tween.cur(), + // break the loop if scale is unchanged or perfect, or if we've just had enough + } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations ); + } + + // Update tween properties + if ( parts ) { + start = tween.start = +start || +target || 0; + tween.unit = unit; + // If a +=/-= token was provided, we're doing a relative animation + tween.end = parts[ 1 ] ? + start + ( parts[ 1 ] + 1 ) * parts[ 2 ] : + +parts[ 2 ]; + } + + return tween; + } ] + }; + +// Animations created synchronously will run synchronously +function createFxNow() { + setTimeout(function() { + fxNow = undefined; + }); + return ( fxNow = jQuery.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4 ; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( (tween = collection[ index ].call( animation, prop, value )) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + /* jshint validthis: true */ + var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHidden( elem ), + dataShow = data_priv.get( elem, "fxshow" ); + + // Handle queue: false promises + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always(function() { + // Ensure the complete handler is called before this completes + anim.always(function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + }); + }); + } + + // Height/width overflow pass + if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) { + // Make sure that nothing sneaks out + // Record all 3 overflow attributes because IE9-10 do not + // change the overflow attribute when overflowX and + // overflowY are set to the same value + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Set display property to inline-block for height/width + // animations on inline elements that are having width/height animated + display = jQuery.css( elem, "display" ); + + // Test default display if display is currently "none" + checkDisplay = display === "none" ? + data_priv.get( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display; + + if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) { + style.display = "inline-block"; + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always(function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + }); + } + + // show/hide pass + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.exec( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + + // Any non-fx value stops us from restoring the original display value + } else { + display = undefined; + } + } + + if ( !jQuery.isEmptyObject( orig ) ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = data_priv.access( elem, "fxshow", {} ); + } + + // Store state if its toggle - enables .stop().toggle() to "reverse" + if ( toggle ) { + dataShow.hidden = !hidden; + } + if ( hidden ) { + jQuery( elem ).show(); + } else { + anim.done(function() { + jQuery( elem ).hide(); + }); + } + anim.done(function() { + var prop; + + data_priv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + }); + for ( prop in orig ) { + tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = tween.start; + if ( hidden ) { + tween.end = tween.start; + tween.start = prop === "width" || prop === "height" ? 1 : 0; + } + } + } + + // If this is a noop like .hide().hide(), restore an overwritten display value + } else if ( (display === "none" ? defaultDisplay( elem.nodeName ) : display) === "inline" ) { + style.display = display; + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = jQuery.camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( jQuery.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = animationPrefilters.length, + deferred = jQuery.Deferred().always( function() { + // Don't match elem in the :animated selector + delete tick.elem; + }), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + // Support: Android 2.3 + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ]); + + if ( percent < 1 && length ) { + return remaining; + } else { + deferred.resolveWith( elem, [ animation ] ); + return false; + } + }, + animation = deferred.promise({ + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { specialEasing: {} }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + }), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length ; index++ ) { + result = animationPrefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( jQuery.isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + }) + ); + + // attach callbacks from options + return animation.progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweener: function( props, callback ) { + if ( jQuery.isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.split(" "); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length ; index++ ) { + prop = props[ index ]; + tweeners[ prop ] = tweeners[ prop ] || []; + tweeners[ prop ].unshift( callback ); + } + }, + + prefilter: function( callback, prepend ) { + if ( prepend ) { + animationPrefilters.unshift( callback ); + } else { + animationPrefilters.push( callback ); + } + } +}); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + jQuery.isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing + }; + + opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : + opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( jQuery.isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend({ + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHidden ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate({ opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || data_priv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each(function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = data_priv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) { + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + }); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each(function() { + var index, + data = data_priv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + }); + } +}); + +jQuery.each([ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +}); + +// Generate shortcuts for custom animations +jQuery.each({ + slideDown: genFx("show"), + slideUp: genFx("hide"), + slideToggle: genFx("toggle"), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +}); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = jQuery.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + // Checks the timer has not already been removed + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + if ( timer() ) { + jQuery.fx.start(); + } else { + jQuery.timers.pop(); + } +}; + +jQuery.fx.interval = 13; + +jQuery.fx.start = function() { + if ( !timerId ) { + timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval ); + } +}; + +jQuery.fx.stop = function() { + clearInterval( timerId ); + timerId = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); +}; + + +(function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: iOS<=5.1, Android<=4.2+ + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE<=11+ + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: Android<=2.3 + // Options inside disabled selects are incorrectly marked as disabled + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Support: IE<=11+ + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +})(); + + +var nodeHook, boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend({ + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + } +}); + +jQuery.extend({ + attr: function( elem, name, value ) { + var hooks, ret, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === strundefined ) { + return jQuery.prop( elem, name, value ); + } + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + + } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, value + "" ); + return value; + } + + } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, value ) { + var name, propName, + i = 0, + attrNames = value && value.match( rnotwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( (name = attrNames[i++]) ) { + propName = jQuery.propFix[ name ] || name; + + // Boolean attributes get special treatment (#10870) + if ( jQuery.expr.match.bool.test( name ) ) { + // Set corresponding property to false + elem[ propName ] = false; + } + + elem.removeAttribute( name ); + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + jQuery.nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + } +}); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle; + if ( !isXML ) { + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ name ]; + attrHandle[ name ] = ret; + ret = getter( elem, name, isXML ) != null ? + name.toLowerCase() : + null; + attrHandle[ name ] = handle; + } + return ret; + }; +}); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i; + +jQuery.fn.extend({ + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each(function() { + delete this[ jQuery.propFix[ name ] || name ]; + }); + } +}); + +jQuery.extend({ + propFix: { + "for": "htmlFor", + "class": "className" + }, + + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ? + ret : + ( elem[ name ] = value ); + + } else { + return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ? + ret : + elem[ name ]; + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + return elem.hasAttribute( "tabindex" ) || rfocusable.test( elem.nodeName ) || elem.href ? + elem.tabIndex : + -1; + } + } + } +}); + +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + } + }; +} + +jQuery.each([ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +}); + + + + +var rclass = /[\t\r\n\f]/g; + +jQuery.fn.extend({ + addClass: function( value ) { + var classes, elem, cur, clazz, j, finalValue, + proceed = typeof value === "string" && value, + i = 0, + len = this.length; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call( this, j, this.className ) ); + }); + } + + if ( proceed ) { + // The disjunction here is for better compressibility (see removeClass) + classes = ( value || "" ).match( rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + " " + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // only assign if different to avoid unneeded rendering. + finalValue = jQuery.trim( cur ); + if ( elem.className !== finalValue ) { + elem.className = finalValue; + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, clazz, j, finalValue, + proceed = arguments.length === 0 || typeof value === "string" && value, + i = 0, + len = this.length; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call( this, j, this.className ) ); + }); + } + if ( proceed ) { + classes = ( value || "" ).match( rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + "" + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = value ? jQuery.trim( cur ) : ""; + if ( elem.className !== finalValue ) { + elem.className = finalValue; + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // Toggle individual class names + var className, + i = 0, + self = jQuery( this ), + classNames = value.match( rnotwhite ) || []; + + while ( (className = classNames[ i++ ]) ) { + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( type === strundefined || type === "boolean" ) { + if ( this.className ) { + // store className if set + data_priv.set( this, "__className__", this.className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + this.className = this.className || value === false ? "" : data_priv.get( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { + return true; + } + } + + return false; + } +}); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend({ + val: function( value ) { + var hooks, ret, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // Handle most common string cases + ret.replace(rreturn, "") : + // Handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + // Support: IE10-11+ + // option.text throws exceptions (#14686, #14858) + jQuery.trim( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // IE6-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + // Don't return options that are disabled or in a disabled optgroup + ( support.optDisabled ? !option.disabled : option.getAttribute( "disabled" ) === null ) && + ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + if ( (option.selected = jQuery.inArray( option.value, values ) >= 0) ) { + optionSet = true; + } + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +}); + +// Radios and checkboxes getter/setter +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute("value") === null ? "on" : elem.value; + }; + } +}); + + + + +// Return jQuery for attributes-only inclusion + + +jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; +}); + +jQuery.fn.extend({ + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + }, + + bind: function( types, data, fn ) { + return this.on( types, null, data, fn ); + }, + unbind: function( types, fn ) { + return this.off( types, null, fn ); + }, + + delegate: function( selector, types, data, fn ) { + return this.on( types, selector, data, fn ); + }, + undelegate: function( selector, types, fn ) { + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); + } +}); + + +var nonce = jQuery.now(); + +var rquery = (/\?/); + + + +// Support: Android 2.3 +// Workaround failure to string-cast null input +jQuery.parseJSON = function( data ) { + return JSON.parse( data + "" ); +}; + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE9 + try { + tmp = new DOMParser(); + xml = tmp.parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rhash = /#.*$/, + rts = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Document location + ajaxLocation = window.location.href, + + // Segment location into parts + ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || []; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || []; + + if ( jQuery.isFunction( func ) ) { + // For each dataType in the dataTypeExpression + while ( (dataType = dataTypes[i++]) ) { + // Prepend if requested + if ( dataType[0] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + (structure[ dataType ] = structure[ dataType ] || []).unshift( func ); + + // Otherwise append + } else { + (structure[ dataType ] = structure[ dataType ] || []).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + }); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader("Content-Type"); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s[ "throws" ] ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend({ + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: ajaxLocation, + type: "GET", + isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /xml/, + html: /html/, + json: /json/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": jQuery.parseJSON, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + // URL without anti-cache param + cacheURL, + // Response headers + responseHeadersString, + responseHeaders, + // timeout handle + timeoutTimer, + // Cross-domain detection vars + parts, + // To know if global events are to be dispatched + fireGlobals, + // Loop variable + i, + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + // Callbacks context + callbackContext = s.context || s, + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks("once memory"), + // Status-dependent callbacks + statusCode = s.statusCode || {}, + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + // The jqXHR state + state = 0, + // Default abort message + strAbort = "canceled", + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( state === 2 ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( (match = rheaders.exec( responseHeadersString )) ) { + responseHeaders[ match[1].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function() { + return state === 2 ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + var lname = name.toLowerCase(); + if ( !state ) { + name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( !state ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( state < 2 ) { + for ( code in map ) { + // Lazy-add the new callback in a way that preserves old ones + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } else { + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ).complete = completeDeferred.add; + jqXHR.success = jqXHR.done; + jqXHR.error = jqXHR.fail; + + // Remove hash character (#7531: and string promotion) + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" ) + .replace( rprotocol, ajaxLocParts[ 1 ] + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ]; + + // A cross-domain request is in order when we have a protocol:host:port mismatch + if ( s.crossDomain == null ) { + parts = rurl.exec( s.url.toLowerCase() ); + s.crossDomain = !!( parts && + ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] || + ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !== + ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) ) + ); + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( state === 2 ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger("ajaxStart"); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + cacheURL = s.url; + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // If data is available, append data to url + if ( s.data ) { + cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data ); + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add anti-cache in url if needed + if ( s.cache === false ) { + s.url = rts.test( cacheURL ) ? + + // If there is already a '_' parameter, set its value + cacheURL.replace( rts, "$1_=" + nonce++ ) : + + // Otherwise add one to the end + cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++; + } + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? + s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + for ( i in { success: 1, error: 1, complete: 1 } ) { + jqXHR[ i ]( s[ i ] ); + } + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = setTimeout(function() { + jqXHR.abort("timeout"); + }, s.timeout ); + } + + try { + state = 1; + transport.send( requestHeaders, done ); + } catch ( e ) { + // Propagate exception as error if not done + if ( state < 2 ) { + done( -1, e ); + // Simply rethrow otherwise + } else { + throw e; + } + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Called once + if ( state === 2 ) { + return; + } + + // State is "done" now + state = 2; + + // Clear timeout if it exists + if ( timeoutTimer ) { + clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader("Last-Modified"); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader("etag"); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger("ajaxStop"); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +}); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + // Shift arguments if data argument was omitted + if ( jQuery.isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + return jQuery.ajax({ + url: url, + type: method, + dataType: type, + data: data, + success: callback + }); + }; +}); + + +jQuery._evalUrl = function( url ) { + return jQuery.ajax({ + url: url, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); +}; + + +jQuery.fn.extend({ + wrapAll: function( html ) { + var wrap; + + if ( jQuery.isFunction( html ) ) { + return this.each(function( i ) { + jQuery( this ).wrapAll( html.call(this, i) ); + }); + } + + if ( this[ 0 ] ) { + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + }).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function( i ) { + jQuery( this ).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each(function( i ) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); + }, + + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + } +}); + + +jQuery.expr.filters.hidden = function( elem ) { + // Support: Opera <= 12.12 + // Opera reports offsetWidths and offsetHeights less than zero on some elements + return elem.offsetWidth <= 0 && elem.offsetHeight <= 0; +}; +jQuery.expr.filters.visible = function( elem ) { + return !jQuery.expr.filters.hidden( elem ); +}; + + + + +var r20 = /%20/g, + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( jQuery.isArray( obj ) ) { + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + // Item is non-scalar (array or object), encode its numeric index. + buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add ); + } + }); + + } else if ( !traditional && jQuery.type( obj ) === "object" ) { + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, value ) { + // If value is a function, invoke it and return its value + value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value ); + s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); + }; + + // Set traditional to true for jQuery <= 1.3.2 behavior. + if ( traditional === undefined ) { + traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + }); + + } else { + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ).replace( r20, "+" ); +}; + +jQuery.fn.extend({ + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map(function() { + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + }) + .filter(function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + }) + .map(function( i, elem ) { + var val = jQuery( this ).val(); + + return val == null ? + null : + jQuery.isArray( val ) ? + jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }) : + { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }).get(); + } +}); + + +jQuery.ajaxSettings.xhr = function() { + try { + return new XMLHttpRequest(); + } catch( e ) {} +}; + +var xhrId = 0, + xhrCallbacks = {}, + xhrSuccessStatus = { + // file protocol always yields status code 0, assume 200 + 0: 200, + // Support: IE9 + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +// Support: IE9 +// Open requests must be manually aborted on unload (#5280) +// See https://support.microsoft.com/kb/2856746 for more info +if ( window.attachEvent ) { + window.attachEvent( "onunload", function() { + for ( var key in xhrCallbacks ) { + xhrCallbacks[ key ](); + } + }); +} + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport(function( options ) { + var callback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(), + id = ++xhrId; + + xhr.open( options.type, options.url, options.async, options.username, options.password ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers["X-Requested-With"] ) { + headers["X-Requested-With"] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + delete xhrCallbacks[ id ]; + callback = xhr.onload = xhr.onerror = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + complete( + // file: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + // Support: IE9 + // Accessing binary-data responseText throws an exception + // (#11426) + typeof xhr.responseText === "string" ? { + text: xhr.responseText + } : undefined, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + xhr.onerror = callback("error"); + + // Create the abort callback + callback = xhrCallbacks[ id ] = callback("abort"); + + try { + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +}); + + + + +// Install script dataType +jQuery.ajaxSetup({ + accepts: { + script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /(?:java|ecma)script/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +}); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +}); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery("<script>").prop({ + async: true, + charset: s.scriptCharset, + src: s.url + }).on( + "load error", + callback = function( evt ) { + script.remove(); + callback = null; + if ( evt ) { + complete( evt.type === "error" ? 404 : 200, evt.type ); + } + } + ); + document.head.appendChild( script[ 0 ] ); + }, + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +}); + + + + +var oldCallbacks = [], + rjsonp = /(=)\?(?=&|$)|\?\?/; + +// Default jsonp settings +jQuery.ajaxSetup({ + jsonp: "callback", + jsonpCallback: function() { + var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); + this[ callback ] = true; + return callback; + } +}); + +// Detect, normalize options and install callbacks for jsonp requests +jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { + + var callbackName, overwritten, responseContainer, + jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? + "url" : + typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data" + ); + + // Handle iff the expected data type is "jsonp" or we have a parameter to set + if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { + + // Get callback name, remembering preexisting value associated with it + callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ? + s.jsonpCallback() : + s.jsonpCallback; + + // Insert callback into url or form data + if ( jsonProp ) { + s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); + } else if ( s.jsonp !== false ) { + s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; + } + + // Use data converter to retrieve json after script execution + s.converters["script json"] = function() { + if ( !responseContainer ) { + jQuery.error( callbackName + " was not called" ); + } + return responseContainer[ 0 ]; + }; + + // force json dataType + s.dataTypes[ 0 ] = "json"; + + // Install callback + overwritten = window[ callbackName ]; + window[ callbackName ] = function() { + responseContainer = arguments; + }; + + // Clean-up function (fires after converters) + jqXHR.always(function() { + // Restore preexisting value + window[ callbackName ] = overwritten; + + // Save back as free + if ( s[ callbackName ] ) { + // make sure that re-using the options doesn't screw things around + s.jsonpCallback = originalSettings.jsonpCallback; + + // save the callback name for future use + oldCallbacks.push( callbackName ); + } + + // Call if it was a function and we have a response + if ( responseContainer && jQuery.isFunction( overwritten ) ) { + overwritten( responseContainer[ 0 ] ); + } + + responseContainer = overwritten = undefined; + }); + + // Delegate to script + return "script"; + } +}); + + + + +// data: string of html +// context (optional): If specified, the fragment will be created in this context, defaults to document +// keepScripts (optional): If true, will include scripts passed in the html string +jQuery.parseHTML = function( data, context, keepScripts ) { + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + keepScripts = context; + context = false; + } + context = context || document; + + var parsed = rsingleTag.exec( data ), + scripts = !keepScripts && []; + + // Single tag + if ( parsed ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ); + + if ( scripts && scripts.length ) { + jQuery( scripts ).remove(); + } + + return jQuery.merge( [], parsed.childNodes ); +}; + + +// Keep a copy of the old load method +var _load = jQuery.fn.load; + +/** + * Load a url into a page + */ +jQuery.fn.load = function( url, params, callback ) { + if ( typeof url !== "string" && _load ) { + return _load.apply( this, arguments ); + } + + var selector, type, response, + self = this, + off = url.indexOf(" "); + + if ( off >= 0 ) { + selector = jQuery.trim( url.slice( off ) ); + url = url.slice( 0, off ); + } + + // If it's a function + if ( jQuery.isFunction( params ) ) { + + // We assume that it's the callback + callback = params; + params = undefined; + + // Otherwise, build a param string + } else if ( params && typeof params === "object" ) { + type = "POST"; + } + + // If we have elements to modify, make the request + if ( self.length > 0 ) { + jQuery.ajax({ + url: url, + + // if "type" variable is undefined, then "GET" method will be used + type: type, + dataType: "html", + data: params + }).done(function( responseText ) { + + // Save response for use in complete callback + response = arguments; + + self.html( selector ? + + // If a selector was specified, locate the right elements in a dummy div + // Exclude scripts to avoid IE 'Permission Denied' errors + jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) : + + // Otherwise use the full result + responseText ); + + }).complete( callback && function( jqXHR, status ) { + self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] ); + }); + } + + return this; +}; + + + + +// Attach a bunch of functions for handling common AJAX events +jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { + jQuery.fn[ type ] = function( fn ) { + return this.on( type, fn ); + }; +}); + + + + +jQuery.expr.filters.animated = function( elem ) { + return jQuery.grep(jQuery.timers, function( fn ) { + return elem === fn.elem; + }).length; +}; + + + + +var docElem = window.document.documentElement; + +/** + * Gets a window from an element + */ +function getWindow( elem ) { + return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView; +} + +jQuery.offset = { + setOffset: function( elem, options, i ) { + var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, + position = jQuery.css( elem, "position" ), + curElem = jQuery( elem ), + props = {}; + + // Set position first, in-case top/left are set even on static elem + if ( position === "static" ) { + elem.style.position = "relative"; + } + + curOffset = curElem.offset(); + curCSSTop = jQuery.css( elem, "top" ); + curCSSLeft = jQuery.css( elem, "left" ); + calculatePosition = ( position === "absolute" || position === "fixed" ) && + ( curCSSTop + curCSSLeft ).indexOf("auto") > -1; + + // Need to be able to calculate position if either + // top or left is auto and position is either absolute or fixed + if ( calculatePosition ) { + curPosition = curElem.position(); + curTop = curPosition.top; + curLeft = curPosition.left; + + } else { + curTop = parseFloat( curCSSTop ) || 0; + curLeft = parseFloat( curCSSLeft ) || 0; + } + + if ( jQuery.isFunction( options ) ) { + options = options.call( elem, i, curOffset ); + } + + if ( options.top != null ) { + props.top = ( options.top - curOffset.top ) + curTop; + } + if ( options.left != null ) { + props.left = ( options.left - curOffset.left ) + curLeft; + } + + if ( "using" in options ) { + options.using.call( elem, props ); + + } else { + curElem.css( props ); + } + } +}; + +jQuery.fn.extend({ + offset: function( options ) { + if ( arguments.length ) { + return options === undefined ? + this : + this.each(function( i ) { + jQuery.offset.setOffset( this, options, i ); + }); + } + + var docElem, win, + elem = this[ 0 ], + box = { top: 0, left: 0 }, + doc = elem && elem.ownerDocument; + + if ( !doc ) { + return; + } + + docElem = doc.documentElement; + + // Make sure it's not a disconnected DOM node + if ( !jQuery.contains( docElem, elem ) ) { + return box; + } + + // Support: BlackBerry 5, iOS 3 (original iPhone) + // If we don't have gBCR, just use 0,0 rather than error + if ( typeof elem.getBoundingClientRect !== strundefined ) { + box = elem.getBoundingClientRect(); + } + win = getWindow( doc ); + return { + top: box.top + win.pageYOffset - docElem.clientTop, + left: box.left + win.pageXOffset - docElem.clientLeft + }; + }, + + position: function() { + if ( !this[ 0 ] ) { + return; + } + + var offsetParent, offset, + elem = this[ 0 ], + parentOffset = { top: 0, left: 0 }; + + // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent + if ( jQuery.css( elem, "position" ) === "fixed" ) { + // Assume getBoundingClientRect is there when computed position is fixed + offset = elem.getBoundingClientRect(); + + } else { + // Get *real* offsetParent + offsetParent = this.offsetParent(); + + // Get correct offsets + offset = this.offset(); + if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) { + parentOffset = offsetParent.offset(); + } + + // Add offsetParent borders + parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ); + parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true ); + } + + // Subtract parent offsets and element margins + return { + top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ), + left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true ) + }; + }, + + offsetParent: function() { + return this.map(function() { + var offsetParent = this.offsetParent || docElem; + + while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position" ) === "static" ) ) { + offsetParent = offsetParent.offsetParent; + } + + return offsetParent || docElem; + }); + } +}); + +// Create scrollLeft and scrollTop methods +jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { + var top = "pageYOffset" === prop; + + jQuery.fn[ method ] = function( val ) { + return access( this, function( elem, method, val ) { + var win = getWindow( elem ); + + if ( val === undefined ) { + return win ? win[ prop ] : elem[ method ]; + } + + if ( win ) { + win.scrollTo( + !top ? val : window.pageXOffset, + top ? val : window.pageYOffset + ); + + } else { + elem[ method ] = val; + } + }, method, val, arguments.length, null ); + }; +}); + +// Support: Safari<7+, Chrome<37+ +// Add the top/left cssHooks using jQuery.fn.position +// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 +// Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280 +// getComputedStyle returns percent when specified for top/left/bottom/right; +// rather than make the css module depend on the offset module, just check for it here +jQuery.each( [ "top", "left" ], function( i, prop ) { + jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, + function( elem, computed ) { + if ( computed ) { + computed = curCSS( elem, prop ); + // If curCSS returns percentage, fallback to offset + return rnumnonpx.test( computed ) ? + jQuery( elem ).position()[ prop ] + "px" : + computed; + } + } + ); +}); + + +// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods +jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { + jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) { + // Margin is only for outerHeight, outerWidth + jQuery.fn[ funcName ] = function( margin, value ) { + var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), + extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); + + return access( this, function( elem, type, value ) { + var doc; + + if ( jQuery.isWindow( elem ) ) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement[ "client" + name ]; + } + + // Get document width or height + if ( elem.nodeType === 9 ) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], + // whichever is greatest + return Math.max( + elem.body[ "scroll" + name ], doc[ "scroll" + name ], + elem.body[ "offset" + name ], doc[ "offset" + name ], + doc[ "client" + name ] + ); + } + + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css( elem, type, extra ) : + + // Set width or height on the element + jQuery.style( elem, type, value, extra ); + }, type, chainable ? margin : undefined, chainable, null ); + }; + }); +}); + + +// The number of elements contained in the matched element set +jQuery.fn.size = function() { + return this.length; +}; + +jQuery.fn.andSelf = jQuery.fn.addBack; + + + + +// Register as a named AMD module, since jQuery can be concatenated with other +// files that may use define, but not via a proper concatenation script that +// understands anonymous AMD modules. A named AMD is safest and most robust +// way to register. Lowercase jquery is used because AMD module names are +// derived from file names, and jQuery is normally delivered in a lowercase +// file name. Do this after creating the global so that if an AMD module wants +// to call noConflict to hide this version of jQuery, it will work. + +// Note that for maximum portability, libraries that are not jQuery should +// declare themselves as anonymous modules, and avoid setting a global if an +// AMD loader is present. jQuery is a special case. For more information, see +// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon + +if ( typeof define === "function" && define.amd ) { + define( "jquery", [], function() { + return jQuery; + }); +} + + + + +var + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$; + +jQuery.noConflict = function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; +}; + +// Expose jQuery and $ identifiers, even in AMD +// (#7102#comment:10, https://github.com/jquery/jquery/pull/557) +// and CommonJS for browser emulators (#13566) +if ( typeof noGlobal === strundefined ) { + window.jQuery = window.$ = jQuery; +} + + + + +return jQuery; + +})); + +},{}],21:[function(require,module,exports){ +'use strict'; + + +var yaml = require('./lib/js-yaml.js'); + + +module.exports = yaml; + +},{"./lib/js-yaml.js":22}],22:[function(require,module,exports){ +'use strict'; + + +var loader = require('./js-yaml/loader'); +var dumper = require('./js-yaml/dumper'); + + +function deprecated(name) { + return function () { + throw new Error('Function ' + name + ' is deprecated and cannot be used.'); + }; +} + + +module.exports.Type = require('./js-yaml/type'); +module.exports.Schema = require('./js-yaml/schema'); +module.exports.FAILSAFE_SCHEMA = require('./js-yaml/schema/failsafe'); +module.exports.JSON_SCHEMA = require('./js-yaml/schema/json'); +module.exports.CORE_SCHEMA = require('./js-yaml/schema/core'); +module.exports.DEFAULT_SAFE_SCHEMA = require('./js-yaml/schema/default_safe'); +module.exports.DEFAULT_FULL_SCHEMA = require('./js-yaml/schema/default_full'); +module.exports.load = loader.load; +module.exports.loadAll = loader.loadAll; +module.exports.safeLoad = loader.safeLoad; +module.exports.safeLoadAll = loader.safeLoadAll; +module.exports.dump = dumper.dump; +module.exports.safeDump = dumper.safeDump; +module.exports.YAMLException = require('./js-yaml/exception'); + +// Deprecared schema names from JS-YAML 2.0.x +module.exports.MINIMAL_SCHEMA = require('./js-yaml/schema/failsafe'); +module.exports.SAFE_SCHEMA = require('./js-yaml/schema/default_safe'); +module.exports.DEFAULT_SCHEMA = require('./js-yaml/schema/default_full'); + +// Deprecated functions from JS-YAML 1.x.x +module.exports.scan = deprecated('scan'); +module.exports.parse = deprecated('parse'); +module.exports.compose = deprecated('compose'); +module.exports.addConstructor = deprecated('addConstructor'); + +},{"./js-yaml/dumper":24,"./js-yaml/exception":25,"./js-yaml/loader":26,"./js-yaml/schema":28,"./js-yaml/schema/core":29,"./js-yaml/schema/default_full":30,"./js-yaml/schema/default_safe":31,"./js-yaml/schema/failsafe":32,"./js-yaml/schema/json":33,"./js-yaml/type":34}],23:[function(require,module,exports){ +'use strict'; + + +function isNothing(subject) { + return (typeof subject === 'undefined') || (null === subject); +} + + +function isObject(subject) { + return (typeof subject === 'object') && (null !== subject); +} + + +function toArray(sequence) { + if (Array.isArray(sequence)) { + return sequence; + } else if (isNothing(sequence)) { + return []; + } + return [ sequence ]; +} + + +function extend(target, source) { + var index, length, key, sourceKeys; + + if (source) { + sourceKeys = Object.keys(source); + + for (index = 0, length = sourceKeys.length; index < length; index += 1) { + key = sourceKeys[index]; + target[key] = source[key]; + } + } + + return target; +} + + +function repeat(string, count) { + var result = '', cycle; + + for (cycle = 0; cycle < count; cycle += 1) { + result += string; + } + + return result; +} + + +function isNegativeZero(number) { + return (0 === number) && (Number.NEGATIVE_INFINITY === 1 / number); +} + + +module.exports.isNothing = isNothing; +module.exports.isObject = isObject; +module.exports.toArray = toArray; +module.exports.repeat = repeat; +module.exports.isNegativeZero = isNegativeZero; +module.exports.extend = extend; + +},{}],24:[function(require,module,exports){ +'use strict'; + +/*eslint-disable no-use-before-define*/ + +var common = require('./common'); +var YAMLException = require('./exception'); +var DEFAULT_FULL_SCHEMA = require('./schema/default_full'); +var DEFAULT_SAFE_SCHEMA = require('./schema/default_safe'); + +var _toString = Object.prototype.toString; +var _hasOwnProperty = Object.prototype.hasOwnProperty; + +var CHAR_TAB = 0x09; /* Tab */ +var CHAR_LINE_FEED = 0x0A; /* LF */ +var CHAR_CARRIAGE_RETURN = 0x0D; /* CR */ +var CHAR_SPACE = 0x20; /* Space */ +var CHAR_EXCLAMATION = 0x21; /* ! */ +var CHAR_DOUBLE_QUOTE = 0x22; /* " */ +var CHAR_SHARP = 0x23; /* # */ +var CHAR_PERCENT = 0x25; /* % */ +var CHAR_AMPERSAND = 0x26; /* & */ +var CHAR_SINGLE_QUOTE = 0x27; /* ' */ +var CHAR_ASTERISK = 0x2A; /* * */ +var CHAR_COMMA = 0x2C; /* , */ +var CHAR_MINUS = 0x2D; /* - */ +var CHAR_COLON = 0x3A; /* : */ +var CHAR_GREATER_THAN = 0x3E; /* > */ +var CHAR_QUESTION = 0x3F; /* ? */ +var CHAR_COMMERCIAL_AT = 0x40; /* @ */ +var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ +var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ +var CHAR_GRAVE_ACCENT = 0x60; /* ` */ +var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ +var CHAR_VERTICAL_LINE = 0x7C; /* | */ +var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ + +var ESCAPE_SEQUENCES = {}; + +ESCAPE_SEQUENCES[0x00] = '\\0'; +ESCAPE_SEQUENCES[0x07] = '\\a'; +ESCAPE_SEQUENCES[0x08] = '\\b'; +ESCAPE_SEQUENCES[0x09] = '\\t'; +ESCAPE_SEQUENCES[0x0A] = '\\n'; +ESCAPE_SEQUENCES[0x0B] = '\\v'; +ESCAPE_SEQUENCES[0x0C] = '\\f'; +ESCAPE_SEQUENCES[0x0D] = '\\r'; +ESCAPE_SEQUENCES[0x1B] = '\\e'; +ESCAPE_SEQUENCES[0x22] = '\\"'; +ESCAPE_SEQUENCES[0x5C] = '\\\\'; +ESCAPE_SEQUENCES[0x85] = '\\N'; +ESCAPE_SEQUENCES[0xA0] = '\\_'; +ESCAPE_SEQUENCES[0x2028] = '\\L'; +ESCAPE_SEQUENCES[0x2029] = '\\P'; + +var DEPRECATED_BOOLEANS_SYNTAX = [ + 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', + 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' +]; + +function compileStyleMap(schema, map) { + var result, keys, index, length, tag, style, type; + + if (null === map) { + return {}; + } + + result = {}; + keys = Object.keys(map); + + for (index = 0, length = keys.length; index < length; index += 1) { + tag = keys[index]; + style = String(map[tag]); + + if ('!!' === tag.slice(0, 2)) { + tag = 'tag:yaml.org,2002:' + tag.slice(2); + } + + type = schema.compiledTypeMap[tag]; + + if (type && _hasOwnProperty.call(type.styleAliases, style)) { + style = type.styleAliases[style]; + } + + result[tag] = style; + } + + return result; +} + +function encodeHex(character) { + var string, handle, length; + + string = character.toString(16).toUpperCase(); + + if (character <= 0xFF) { + handle = 'x'; + length = 2; + } else if (character <= 0xFFFF) { + handle = 'u'; + length = 4; + } else if (character <= 0xFFFFFFFF) { + handle = 'U'; + length = 8; + } else { + throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF'); + } + + return '\\' + handle + common.repeat('0', length - string.length) + string; +} + +function State(options) { + this.schema = options['schema'] || DEFAULT_FULL_SCHEMA; + this.indent = Math.max(1, (options['indent'] || 2)); + this.skipInvalid = options['skipInvalid'] || false; + this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); + this.styleMap = compileStyleMap(this.schema, options['styles'] || null); + this.sortKeys = options['sortKeys'] || false; + + this.implicitTypes = this.schema.compiledImplicit; + this.explicitTypes = this.schema.compiledExplicit; + + this.tag = null; + this.result = ''; + + this.duplicates = []; + this.usedDuplicates = null; +} + +function indentString(string, spaces) { + var ind = common.repeat(' ', spaces), + position = 0, + next = -1, + result = '', + line, + length = string.length; + + while (position < length) { + next = string.indexOf('\n', position); + if (next === -1) { + line = string.slice(position); + position = length; + } else { + line = string.slice(position, next + 1); + position = next + 1; + } + if (line.length && line !== '\n') { + result += ind; + } + result += line; + } + + return result; +} + +function generateNextLine(state, level) { + return '\n' + common.repeat(' ', state.indent * level); +} + +function testImplicitResolving(state, str) { + var index, length, type; + + for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { + type = state.implicitTypes[index]; + + if (type.resolve(str)) { + return true; + } + } + + return false; +} + +function StringBuilder(source) { + this.source = source; + this.result = ''; + this.checkpoint = 0; +} + +StringBuilder.prototype.takeUpTo = function (position) { + var er; + + if (position < this.checkpoint) { + er = new Error('position should be > checkpoint'); + er.position = position; + er.checkpoint = this.checkpoint; + throw er; + } + + this.result += this.source.slice(this.checkpoint, position); + this.checkpoint = position; + return this; +}; + +StringBuilder.prototype.escapeChar = function () { + var character, esc; + + character = this.source.charCodeAt(this.checkpoint); + esc = ESCAPE_SEQUENCES[character] || encodeHex(character); + this.result += esc; + this.checkpoint += 1; + + return this; +}; + +StringBuilder.prototype.finish = function () { + if (this.source.length > this.checkpoint) { + this.takeUpTo(this.source.length); + } +}; + +function writeScalar(state, object, level) { + var simple, first, spaceWrap, folded, literal, single, double, + sawLineFeed, linePosition, longestLine, indent, max, character, + position, escapeSeq, hexEsc, previous, lineLength, modifier, + trailingLineBreaks, result; + + if (0 === object.length) { + state.dump = "''"; + return; + } + + if (-1 !== DEPRECATED_BOOLEANS_SYNTAX.indexOf(object)) { + state.dump = "'" + object + "'"; + return; + } + + simple = true; + first = object.length ? object.charCodeAt(0) : 0; + spaceWrap = (CHAR_SPACE === first || + CHAR_SPACE === object.charCodeAt(object.length - 1)); + + // Simplified check for restricted first characters + // http://www.yaml.org/spec/1.2/spec.html#ns-plain-first%28c%29 + if (CHAR_MINUS === first || + CHAR_QUESTION === first || + CHAR_COMMERCIAL_AT === first || + CHAR_GRAVE_ACCENT === first) { + simple = false; + } + + // can only use > and | if not wrapped in spaces. + if (spaceWrap) { + simple = false; + folded = false; + literal = false; + } else { + folded = true; + literal = true; + } + + single = true; + double = new StringBuilder(object); + + sawLineFeed = false; + linePosition = 0; + longestLine = 0; + + indent = state.indent * level; + max = 80; + if (indent < 40) { + max -= indent; + } else { + max = 40; + } + + for (position = 0; position < object.length; position++) { + character = object.charCodeAt(position); + if (simple) { + // Characters that can never appear in the simple scalar + if (!simpleChar(character)) { + simple = false; + } else { + // Still simple. If we make it all the way through like + // this, then we can just dump the string as-is. + continue; + } + } + + if (single && character === CHAR_SINGLE_QUOTE) { + single = false; + } + + escapeSeq = ESCAPE_SEQUENCES[character]; + hexEsc = needsHexEscape(character); + + if (!escapeSeq && !hexEsc) { + continue; + } + + if (character !== CHAR_LINE_FEED && + character !== CHAR_DOUBLE_QUOTE && + character !== CHAR_SINGLE_QUOTE) { + folded = false; + literal = false; + } else if (character === CHAR_LINE_FEED) { + sawLineFeed = true; + single = false; + if (position > 0) { + previous = object.charCodeAt(position - 1); + if (previous === CHAR_SPACE) { + literal = false; + folded = false; + } + } + if (folded) { + lineLength = position - linePosition; + linePosition = position; + if (lineLength > longestLine) { + longestLine = lineLength; + } + } + } + + if (character !== CHAR_DOUBLE_QUOTE) { + single = false; + } + + double.takeUpTo(position); + double.escapeChar(); + } + + if (simple && testImplicitResolving(state, object)) { + simple = false; + } + + modifier = ''; + if (folded || literal) { + trailingLineBreaks = 0; + if (object.charCodeAt(object.length - 1) === CHAR_LINE_FEED) { + trailingLineBreaks += 1; + if (object.charCodeAt(object.length - 2) === CHAR_LINE_FEED) { + trailingLineBreaks += 1; + } + } + + if (trailingLineBreaks === 0) { + modifier = '-'; + } else if (trailingLineBreaks === 2) { + modifier = '+'; + } + } + + if (literal && longestLine < max) { + folded = false; + } + + // If it's literally one line, then don't bother with the literal. + // We may still want to do a fold, though, if it's a super long line. + if (!sawLineFeed) { + literal = false; + } + + if (simple) { + state.dump = object; + } else if (single) { + state.dump = '\'' + object + '\''; + } else if (folded) { + result = fold(object, max); + state.dump = '>' + modifier + '\n' + indentString(result, indent); + } else if (literal) { + if (!modifier) { + object = object.replace(/\n$/, ''); + } + state.dump = '|' + modifier + '\n' + indentString(object, indent); + } else if (double) { + double.finish(); + state.dump = '"' + double.result + '"'; + } else { + throw new Error('Failed to dump scalar value'); + } + + return; +} + +// The `trailing` var is a regexp match of any trailing `\n` characters. +// +// There are three cases we care about: +// +// 1. One trailing `\n` on the string. Just use `|` or `>`. +// This is the assumed default. (trailing = null) +// 2. No trailing `\n` on the string. Use `|-` or `>-` to "chomp" the end. +// 3. More than one trailing `\n` on the string. Use `|+` or `>+`. +// +// In the case of `>+`, these line breaks are *not* doubled (like the line +// breaks within the string), so it's important to only end with the exact +// same number as we started. +function fold(object, max) { + var result = '', + position = 0, + length = object.length, + trailing = /\n+$/.exec(object), + newLine; + + if (trailing) { + length = trailing.index + 1; + } + + while (position < length) { + newLine = object.indexOf('\n', position); + if (newLine > length || newLine === -1) { + if (result) { + result += '\n\n'; + } + result += foldLine(object.slice(position, length), max); + position = length; + } else { + if (result) { + result += '\n\n'; + } + result += foldLine(object.slice(position, newLine), max); + position = newLine + 1; + } + } + if (trailing && trailing[0] !== '\n') { + result += trailing[0]; + } + + return result; +} + +function foldLine(line, max) { + if (line === '') { + return line; + } + + var foldRe = /[^\s] [^\s]/g, + result = '', + prevMatch = 0, + foldStart = 0, + match = foldRe.exec(line), + index, + foldEnd, + folded; + + while (match) { + index = match.index; + + // when we cross the max len, if the previous match would've + // been ok, use that one, and carry on. If there was no previous + // match on this fold section, then just have a long line. + if (index - foldStart > max) { + if (prevMatch !== foldStart) { + foldEnd = prevMatch; + } else { + foldEnd = index; + } + + if (result) { + result += '\n'; + } + folded = line.slice(foldStart, foldEnd); + result += folded; + foldStart = foldEnd + 1; + } + prevMatch = index + 1; + match = foldRe.exec(line); + } + + if (result) { + result += '\n'; + } + + // if we end up with one last word at the end, then the last bit might + // be slightly bigger than we wanted, because we exited out of the loop. + if (foldStart !== prevMatch && line.length - foldStart > max) { + result += line.slice(foldStart, prevMatch) + '\n' + + line.slice(prevMatch + 1); + } else { + result += line.slice(foldStart); + } + + return result; +} + +// Returns true if character can be found in a simple scalar +function simpleChar(character) { + return CHAR_TAB !== character && + CHAR_LINE_FEED !== character && + CHAR_CARRIAGE_RETURN !== character && + CHAR_COMMA !== character && + CHAR_LEFT_SQUARE_BRACKET !== character && + CHAR_RIGHT_SQUARE_BRACKET !== character && + CHAR_LEFT_CURLY_BRACKET !== character && + CHAR_RIGHT_CURLY_BRACKET !== character && + CHAR_SHARP !== character && + CHAR_AMPERSAND !== character && + CHAR_ASTERISK !== character && + CHAR_EXCLAMATION !== character && + CHAR_VERTICAL_LINE !== character && + CHAR_GREATER_THAN !== character && + CHAR_SINGLE_QUOTE !== character && + CHAR_DOUBLE_QUOTE !== character && + CHAR_PERCENT !== character && + CHAR_COLON !== character && + !ESCAPE_SEQUENCES[character] && + !needsHexEscape(character); +} + +// Returns true if the character code needs to be escaped. +function needsHexEscape(character) { + return !((0x00020 <= character && character <= 0x00007E) || + (0x00085 === character) || + (0x000A0 <= character && character <= 0x00D7FF) || + (0x0E000 <= character && character <= 0x00FFFD) || + (0x10000 <= character && character <= 0x10FFFF)); +} + +function writeFlowSequence(state, level, object) { + var _result = '', + _tag = state.tag, + index, + length; + + for (index = 0, length = object.length; index < length; index += 1) { + // Write only valid elements. + if (writeNode(state, level, object[index], false, false)) { + if (0 !== index) { + _result += ', '; + } + _result += state.dump; + } + } + + state.tag = _tag; + state.dump = '[' + _result + ']'; +} + +function writeBlockSequence(state, level, object, compact) { + var _result = '', + _tag = state.tag, + index, + length; + + for (index = 0, length = object.length; index < length; index += 1) { + // Write only valid elements. + if (writeNode(state, level + 1, object[index], true, true)) { + if (!compact || 0 !== index) { + _result += generateNextLine(state, level); + } + _result += '- ' + state.dump; + } + } + + state.tag = _tag; + state.dump = _result || '[]'; // Empty sequence if no valid values. +} + +function writeFlowMapping(state, level, object) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + pairBuffer; + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + pairBuffer = ''; + + if (0 !== index) { + pairBuffer += ', '; + } + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (!writeNode(state, level, objectKey, false, false)) { + continue; // Skip this pair because of invalid key; + } + + if (state.dump.length > 1024) { + pairBuffer += '? '; + } + + pairBuffer += state.dump + ': '; + + if (!writeNode(state, level, objectValue, false, false)) { + continue; // Skip this pair because of invalid value. + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = '{' + _result + '}'; +} + +function writeBlockMapping(state, level, object, compact) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + explicitPair, + pairBuffer; + + // Allow sorting keys so that the output file is deterministic + if (state.sortKeys === true) { + // Default sorting + objectKeyList.sort(); + } else if (typeof state.sortKeys === 'function') { + // Custom sort function + objectKeyList.sort(state.sortKeys); + } else if (state.sortKeys) { + // Something is wrong + throw new YAMLException('sortKeys must be a boolean or a function'); + } + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + pairBuffer = ''; + + if (!compact || 0 !== index) { + pairBuffer += generateNextLine(state, level); + } + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (!writeNode(state, level + 1, objectKey, true, true)) { + continue; // Skip this pair because of invalid key. + } + + explicitPair = (null !== state.tag && '?' !== state.tag) || + (state.dump && state.dump.length > 1024); + + if (explicitPair) { + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += '?'; + } else { + pairBuffer += '? '; + } + } + + pairBuffer += state.dump; + + if (explicitPair) { + pairBuffer += generateNextLine(state, level); + } + + if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { + continue; // Skip this pair because of invalid value. + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += ':'; + } else { + pairBuffer += ': '; + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = _result || '{}'; // Empty mapping if no valid pairs. +} + +function detectType(state, object, explicit) { + var _result, typeList, index, length, type, style; + + typeList = explicit ? state.explicitTypes : state.implicitTypes; + + for (index = 0, length = typeList.length; index < length; index += 1) { + type = typeList[index]; + + if ((type.instanceOf || type.predicate) && + (!type.instanceOf || (('object' === typeof object) && (object instanceof type.instanceOf))) && + (!type.predicate || type.predicate(object))) { + + state.tag = explicit ? type.tag : '?'; + + if (type.represent) { + style = state.styleMap[type.tag] || type.defaultStyle; + + if ('[object Function]' === _toString.call(type.represent)) { + _result = type.represent(object, style); + } else if (_hasOwnProperty.call(type.represent, style)) { + _result = type.represent[style](object, style); + } else { + throw new YAMLException('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); + } + + state.dump = _result; + } + + return true; + } + } + + return false; +} + +// Serializes `object` and writes it to global `result`. +// Returns true on success, or false on invalid object. +// +function writeNode(state, level, object, block, compact) { + state.tag = null; + state.dump = object; + + if (!detectType(state, object, false)) { + detectType(state, object, true); + } + + var type = _toString.call(state.dump); + + if (block) { + block = (0 > state.flowLevel || state.flowLevel > level); + } + + if ((null !== state.tag && '?' !== state.tag) || (2 !== state.indent && level > 0)) { + compact = false; + } + + var objectOrArray = '[object Object]' === type || '[object Array]' === type, + duplicateIndex, + duplicate; + + if (objectOrArray) { + duplicateIndex = state.duplicates.indexOf(object); + duplicate = duplicateIndex !== -1; + } + + if (duplicate && state.usedDuplicates[duplicateIndex]) { + state.dump = '*ref_' + duplicateIndex; + } else { + if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { + state.usedDuplicates[duplicateIndex] = true; + } + if ('[object Object]' === type) { + if (block && (0 !== Object.keys(state.dump).length)) { + writeBlockMapping(state, level, state.dump, compact); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + (0 === level ? '\n' : '') + state.dump; + } + } else { + writeFlowMapping(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if ('[object Array]' === type) { + if (block && (0 !== state.dump.length)) { + writeBlockSequence(state, level, state.dump, compact); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + (0 === level ? '\n' : '') + state.dump; + } + } else { + writeFlowSequence(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if ('[object String]' === type) { + if ('?' !== state.tag) { + writeScalar(state, state.dump, level); + } + } else { + if (state.skipInvalid) { + return false; + } + throw new YAMLException('unacceptable kind of an object to dump ' + type); + } + + if (null !== state.tag && '?' !== state.tag) { + state.dump = '!<' + state.tag + '> ' + state.dump; + } + } + + return true; +} + +function getDuplicateReferences(object, state) { + var objects = [], + duplicatesIndexes = [], + index, + length; + + inspectNode(object, objects, duplicatesIndexes); + + for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { + state.duplicates.push(objects[duplicatesIndexes[index]]); + } + state.usedDuplicates = new Array(length); +} + +function inspectNode(object, objects, duplicatesIndexes) { + var type = _toString.call(object), + objectKeyList, + index, + length; + + if (null !== object && 'object' === typeof object) { + index = objects.indexOf(object); + if (-1 !== index) { + if (-1 === duplicatesIndexes.indexOf(index)) { + duplicatesIndexes.push(index); + } + } else { + objects.push(object); + + if (Array.isArray(object)) { + for (index = 0, length = object.length; index < length; index += 1) { + inspectNode(object[index], objects, duplicatesIndexes); + } + } else { + objectKeyList = Object.keys(object); + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); + } + } + } + } +} + +function dump(input, options) { + options = options || {}; + + var state = new State(options); + + getDuplicateReferences(input, state); + + if (writeNode(state, 0, input, true, true)) { + return state.dump + '\n'; + } + return ''; +} + +function safeDump(input, options) { + return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); +} + +module.exports.dump = dump; +module.exports.safeDump = safeDump; + +},{"./common":23,"./exception":25,"./schema/default_full":30,"./schema/default_safe":31}],25:[function(require,module,exports){ +'use strict'; + + +function YAMLException(reason, mark) { + this.name = 'YAMLException'; + this.reason = reason; + this.mark = mark; + this.message = this.toString(false); +} + + +YAMLException.prototype.toString = function toString(compact) { + var result; + + result = 'JS-YAML: ' + (this.reason || '(unknown reason)'); + + if (!compact && this.mark) { + result += ' ' + this.mark.toString(); + } + + return result; +}; + + +module.exports = YAMLException; + +},{}],26:[function(require,module,exports){ +'use strict'; + +/*eslint-disable max-len,no-use-before-define*/ + +var common = require('./common'); +var YAMLException = require('./exception'); +var Mark = require('./mark'); +var DEFAULT_SAFE_SCHEMA = require('./schema/default_safe'); +var DEFAULT_FULL_SCHEMA = require('./schema/default_full'); + + +var _hasOwnProperty = Object.prototype.hasOwnProperty; + + +var CONTEXT_FLOW_IN = 1; +var CONTEXT_FLOW_OUT = 2; +var CONTEXT_BLOCK_IN = 3; +var CONTEXT_BLOCK_OUT = 4; + + +var CHOMPING_CLIP = 1; +var CHOMPING_STRIP = 2; +var CHOMPING_KEEP = 3; + + +var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; +var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; +var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; +var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; +var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; + + +function is_EOL(c) { + return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); +} + +function is_WHITE_SPACE(c) { + return (c === 0x09/* Tab */) || (c === 0x20/* Space */); +} + +function is_WS_OR_EOL(c) { + return (c === 0x09/* Tab */) || + (c === 0x20/* Space */) || + (c === 0x0A/* LF */) || + (c === 0x0D/* CR */); +} + +function is_FLOW_INDICATOR(c) { + return 0x2C/* , */ === c || + 0x5B/* [ */ === c || + 0x5D/* ] */ === c || + 0x7B/* { */ === c || + 0x7D/* } */ === c; +} + +function fromHexCode(c) { + var lc; + + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + /*eslint-disable no-bitwise*/ + lc = c | 0x20; + + if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) { + return lc - 0x61 + 10; + } + + return -1; +} + +function escapedHexLen(c) { + if (c === 0x78/* x */) { return 2; } + if (c === 0x75/* u */) { return 4; } + if (c === 0x55/* U */) { return 8; } + return 0; +} + +function fromDecimalCode(c) { + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + return -1; +} + +function simpleEscapeSequence(c) { + return (c === 0x30/* 0 */) ? '\x00' : + (c === 0x61/* a */) ? '\x07' : + (c === 0x62/* b */) ? '\x08' : + (c === 0x74/* t */) ? '\x09' : + (c === 0x09/* Tab */) ? '\x09' : + (c === 0x6E/* n */) ? '\x0A' : + (c === 0x76/* v */) ? '\x0B' : + (c === 0x66/* f */) ? '\x0C' : + (c === 0x72/* r */) ? '\x0D' : + (c === 0x65/* e */) ? '\x1B' : + (c === 0x20/* Space */) ? ' ' : + (c === 0x22/* " */) ? '\x22' : + (c === 0x2F/* / */) ? '/' : + (c === 0x5C/* \ */) ? '\x5C' : + (c === 0x4E/* N */) ? '\x85' : + (c === 0x5F/* _ */) ? '\xA0' : + (c === 0x4C/* L */) ? '\u2028' : + (c === 0x50/* P */) ? '\u2029' : ''; +} + +function charFromCodepoint(c) { + if (c <= 0xFFFF) { + return String.fromCharCode(c); + } + // Encode UTF-16 surrogate pair + // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF + return String.fromCharCode(((c - 0x010000) >> 10) + 0xD800, + ((c - 0x010000) & 0x03FF) + 0xDC00); +} + +var simpleEscapeCheck = new Array(256); // integer, for fast access +var simpleEscapeMap = new Array(256); +for (var i = 0; i < 256; i++) { + simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; + simpleEscapeMap[i] = simpleEscapeSequence(i); +} + + +function State(input, options) { + this.input = input; + + this.filename = options['filename'] || null; + this.schema = options['schema'] || DEFAULT_FULL_SCHEMA; + this.onWarning = options['onWarning'] || null; + this.legacy = options['legacy'] || false; + + this.implicitTypes = this.schema.compiledImplicit; + this.typeMap = this.schema.compiledTypeMap; + + this.length = input.length; + this.position = 0; + this.line = 0; + this.lineStart = 0; + this.lineIndent = 0; + + this.documents = []; + + /* + this.version; + this.checkLineBreaks; + this.tagMap; + this.anchorMap; + this.tag; + this.anchor; + this.kind; + this.result;*/ + +} + + +function generateError(state, message) { + return new YAMLException( + message, + new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart))); +} + +function throwError(state, message) { + throw generateError(state, message); +} + +function throwWarning(state, message) { + var error = generateError(state, message); + + if (state.onWarning) { + state.onWarning.call(null, error); + } else { + throw error; + } +} + + +var directiveHandlers = { + + YAML: function handleYamlDirective(state, name, args) { + + var match, major, minor; + + if (null !== state.version) { + throwError(state, 'duplication of %YAML directive'); + } + + if (1 !== args.length) { + throwError(state, 'YAML directive accepts exactly one argument'); + } + + match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); + + if (null === match) { + throwError(state, 'ill-formed argument of the YAML directive'); + } + + major = parseInt(match[1], 10); + minor = parseInt(match[2], 10); + + if (1 !== major) { + throwError(state, 'unacceptable YAML version of the document'); + } + + state.version = args[0]; + state.checkLineBreaks = (minor < 2); + + if (1 !== minor && 2 !== minor) { + throwWarning(state, 'unsupported YAML version of the document'); + } + }, + + TAG: function handleTagDirective(state, name, args) { + + var handle, prefix; + + if (2 !== args.length) { + throwError(state, 'TAG directive accepts exactly two arguments'); + } + + handle = args[0]; + prefix = args[1]; + + if (!PATTERN_TAG_HANDLE.test(handle)) { + throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); + } + + if (_hasOwnProperty.call(state.tagMap, handle)) { + throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); + } + + if (!PATTERN_TAG_URI.test(prefix)) { + throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); + } + + state.tagMap[handle] = prefix; + } +}; + + +function captureSegment(state, start, end, checkJson) { + var _position, _length, _character, _result; + + if (start < end) { + _result = state.input.slice(start, end); + + if (checkJson) { + for (_position = 0, _length = _result.length; + _position < _length; + _position += 1) { + _character = _result.charCodeAt(_position); + if (!(0x09 === _character || + 0x20 <= _character && _character <= 0x10FFFF)) { + throwError(state, 'expected valid JSON character'); + } + } + } + + state.result += _result; + } +} + +function mergeMappings(state, destination, source) { + var sourceKeys, key, index, quantity; + + if (!common.isObject(source)) { + throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); + } + + sourceKeys = Object.keys(source); + + for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { + key = sourceKeys[index]; + + if (!_hasOwnProperty.call(destination, key)) { + destination[key] = source[key]; + } + } +} + +function storeMappingPair(state, _result, keyTag, keyNode, valueNode) { + var index, quantity; + + keyNode = String(keyNode); + + if (null === _result) { + _result = {}; + } + + if ('tag:yaml.org,2002:merge' === keyTag) { + if (Array.isArray(valueNode)) { + for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { + mergeMappings(state, _result, valueNode[index]); + } + } else { + mergeMappings(state, _result, valueNode); + } + } else { + _result[keyNode] = valueNode; + } + + return _result; +} + +function readLineBreak(state) { + var ch; + + ch = state.input.charCodeAt(state.position); + + if (0x0A/* LF */ === ch) { + state.position++; + } else if (0x0D/* CR */ === ch) { + state.position++; + if (0x0A/* LF */ === state.input.charCodeAt(state.position)) { + state.position++; + } + } else { + throwError(state, 'a line break is expected'); + } + + state.line += 1; + state.lineStart = state.position; +} + +function skipSeparationSpace(state, allowComments, checkIndent) { + var lineBreaks = 0, + ch = state.input.charCodeAt(state.position); + + while (0 !== ch) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (allowComments && 0x23/* # */ === ch) { + do { + ch = state.input.charCodeAt(++state.position); + } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && 0 !== ch); + } + + if (is_EOL(ch)) { + readLineBreak(state); + + ch = state.input.charCodeAt(state.position); + lineBreaks++; + state.lineIndent = 0; + + while (0x20/* Space */ === ch) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + } else { + break; + } + } + + if (-1 !== checkIndent && 0 !== lineBreaks && state.lineIndent < checkIndent) { + throwWarning(state, 'deficient indentation'); + } + + return lineBreaks; +} + +function testDocumentSeparator(state) { + var _position = state.position, + ch; + + ch = state.input.charCodeAt(_position); + + // Condition state.position === state.lineStart is tested + // in parent on each call, for efficiency. No needs to test here again. + if ((0x2D/* - */ === ch || 0x2E/* . */ === ch) && + state.input.charCodeAt(_position + 1) === ch && + state.input.charCodeAt(_position + 2) === ch) { + + _position += 3; + + ch = state.input.charCodeAt(_position); + + if (ch === 0 || is_WS_OR_EOL(ch)) { + return true; + } + } + + return false; +} + +function writeFoldedLines(state, count) { + if (1 === count) { + state.result += ' '; + } else if (count > 1) { + state.result += common.repeat('\n', count - 1); + } +} + + +function readPlainScalar(state, nodeIndent, withinFlowCollection) { + var preceding, + following, + captureStart, + captureEnd, + hasPendingContent, + _line, + _lineStart, + _lineIndent, + _kind = state.kind, + _result = state.result, + ch; + + ch = state.input.charCodeAt(state.position); + + if (is_WS_OR_EOL(ch) || + is_FLOW_INDICATOR(ch) || + 0x23/* # */ === ch || + 0x26/* & */ === ch || + 0x2A/* * */ === ch || + 0x21/* ! */ === ch || + 0x7C/* | */ === ch || + 0x3E/* > */ === ch || + 0x27/* ' */ === ch || + 0x22/* " */ === ch || + 0x25/* % */ === ch || + 0x40/* @ */ === ch || + 0x60/* ` */ === ch) { + return false; + } + + if (0x3F/* ? */ === ch || 0x2D/* - */ === ch) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + return false; + } + } + + state.kind = 'scalar'; + state.result = ''; + captureStart = captureEnd = state.position; + hasPendingContent = false; + + while (0 !== ch) { + if (0x3A/* : */ === ch) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + break; + } + + } else if (0x23/* # */ === ch) { + preceding = state.input.charCodeAt(state.position - 1); + + if (is_WS_OR_EOL(preceding)) { + break; + } + + } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || + withinFlowCollection && is_FLOW_INDICATOR(ch)) { + break; + + } else if (is_EOL(ch)) { + _line = state.line; + _lineStart = state.lineStart; + _lineIndent = state.lineIndent; + skipSeparationSpace(state, false, -1); + + if (state.lineIndent >= nodeIndent) { + hasPendingContent = true; + ch = state.input.charCodeAt(state.position); + continue; + } else { + state.position = captureEnd; + state.line = _line; + state.lineStart = _lineStart; + state.lineIndent = _lineIndent; + break; + } + } + + if (hasPendingContent) { + captureSegment(state, captureStart, captureEnd, false); + writeFoldedLines(state, state.line - _line); + captureStart = captureEnd = state.position; + hasPendingContent = false; + } + + if (!is_WHITE_SPACE(ch)) { + captureEnd = state.position + 1; + } + + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, captureEnd, false); + + if (state.result) { + return true; + } + + state.kind = _kind; + state.result = _result; + return false; +} + +function readSingleQuotedScalar(state, nodeIndent) { + var ch, + captureStart, captureEnd; + + ch = state.input.charCodeAt(state.position); + + if (0x27/* ' */ !== ch) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while (0 !== (ch = state.input.charCodeAt(state.position))) { + if (0x27/* ' */ === ch) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (0x27/* ' */ === ch) { + captureStart = captureEnd = state.position; + state.position++; + } else { + return true; + } + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a single quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; + } + } + + throwError(state, 'unexpected end of the stream within a single quoted scalar'); +} + +function readDoubleQuotedScalar(state, nodeIndent) { + var captureStart, + captureEnd, + hexLength, + hexResult, + tmp, tmpEsc, + ch; + + ch = state.input.charCodeAt(state.position); + + if (0x22/* " */ !== ch) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while (0 !== (ch = state.input.charCodeAt(state.position))) { + if (0x22/* " */ === ch) { + captureSegment(state, captureStart, state.position, true); + state.position++; + return true; + + } else if (0x5C/* \ */ === ch) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (is_EOL(ch)) { + skipSeparationSpace(state, false, nodeIndent); + + // TODO: rework to inline fn with no type cast? + } else if (ch < 256 && simpleEscapeCheck[ch]) { + state.result += simpleEscapeMap[ch]; + state.position++; + + } else if ((tmp = escapedHexLen(ch)) > 0) { + hexLength = tmp; + hexResult = 0; + + for (; hexLength > 0; hexLength--) { + ch = state.input.charCodeAt(++state.position); + + if ((tmp = fromHexCode(ch)) >= 0) { + hexResult = (hexResult << 4) + tmp; + + } else { + throwError(state, 'expected hexadecimal character'); + } + } + + state.result += charFromCodepoint(hexResult); + + state.position++; + + } else { + throwError(state, 'unknown escape sequence'); + } + + captureStart = captureEnd = state.position; + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a double quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; + } + } + + throwError(state, 'unexpected end of the stream within a double quoted scalar'); +} + +function readFlowCollection(state, nodeIndent) { + var readNext = true, + _line, + _tag = state.tag, + _result, + _anchor = state.anchor, + following, + terminator, + isPair, + isExplicitPair, + isMapping, + keyNode, + keyTag, + valueNode, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x5B/* [ */) { + terminator = 0x5D;/* ] */ + isMapping = false; + _result = []; + } else if (ch === 0x7B/* { */) { + terminator = 0x7D;/* } */ + isMapping = true; + _result = {}; + } else { + return false; + } + + if (null !== state.anchor) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(++state.position); + + while (0 !== ch) { + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (ch === terminator) { + state.position++; + state.tag = _tag; + state.anchor = _anchor; + state.kind = isMapping ? 'mapping' : 'sequence'; + state.result = _result; + return true; + } else if (!readNext) { + throwError(state, 'missed comma between flow collection entries'); + } + + keyTag = keyNode = valueNode = null; + isPair = isExplicitPair = false; + + if (0x3F/* ? */ === ch) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following)) { + isPair = isExplicitPair = true; + state.position++; + skipSeparationSpace(state, true, nodeIndent); + } + } + + _line = state.line; + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + keyTag = state.tag; + keyNode = state.result; + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if ((isExplicitPair || state.line === _line) && 0x3A/* : */ === ch) { + isPair = true; + ch = state.input.charCodeAt(++state.position); + skipSeparationSpace(state, true, nodeIndent); + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + valueNode = state.result; + } + + if (isMapping) { + storeMappingPair(state, _result, keyTag, keyNode, valueNode); + } else if (isPair) { + _result.push(storeMappingPair(state, null, keyTag, keyNode, valueNode)); + } else { + _result.push(keyNode); + } + + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (0x2C/* , */ === ch) { + readNext = true; + ch = state.input.charCodeAt(++state.position); + } else { + readNext = false; + } + } + + throwError(state, 'unexpected end of the stream within a flow collection'); +} + +function readBlockScalar(state, nodeIndent) { + var captureStart, + folding, + chomping = CHOMPING_CLIP, + detectedIndent = false, + textIndent = nodeIndent, + emptyLines = 0, + atMoreIndented = false, + tmp, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x7C/* | */) { + folding = false; + } else if (ch === 0x3E/* > */) { + folding = true; + } else { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + + while (0 !== ch) { + ch = state.input.charCodeAt(++state.position); + + if (0x2B/* + */ === ch || 0x2D/* - */ === ch) { + if (CHOMPING_CLIP === chomping) { + chomping = (0x2B/* + */ === ch) ? CHOMPING_KEEP : CHOMPING_STRIP; + } else { + throwError(state, 'repeat of a chomping mode identifier'); + } + + } else if ((tmp = fromDecimalCode(ch)) >= 0) { + if (tmp === 0) { + throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); + } else if (!detectedIndent) { + textIndent = nodeIndent + tmp - 1; + detectedIndent = true; + } else { + throwError(state, 'repeat of an indentation width identifier'); + } + + } else { + break; + } + } + + if (is_WHITE_SPACE(ch)) { + do { ch = state.input.charCodeAt(++state.position); } + while (is_WHITE_SPACE(ch)); + + if (0x23/* # */ === ch) { + do { ch = state.input.charCodeAt(++state.position); } + while (!is_EOL(ch) && (0 !== ch)); + } + } + + while (0 !== ch) { + readLineBreak(state); + state.lineIndent = 0; + + ch = state.input.charCodeAt(state.position); + + while ((!detectedIndent || state.lineIndent < textIndent) && + (0x20/* Space */ === ch)) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + + if (!detectedIndent && state.lineIndent > textIndent) { + textIndent = state.lineIndent; + } + + if (is_EOL(ch)) { + emptyLines++; + continue; + } + + // End of the scalar. + if (state.lineIndent < textIndent) { + + // Perform the chomping. + if (chomping === CHOMPING_KEEP) { + state.result += common.repeat('\n', emptyLines); + } else if (chomping === CHOMPING_CLIP) { + if (detectedIndent) { // i.e. only if the scalar is not empty. + state.result += '\n'; + } + } + + // Break this `while` cycle and go to the funciton's epilogue. + break; + } + + // Folded style: use fancy rules to handle line breaks. + if (folding) { + + // Lines starting with white space characters (more-indented lines) are not folded. + if (is_WHITE_SPACE(ch)) { + atMoreIndented = true; + state.result += common.repeat('\n', emptyLines + 1); + + // End of more-indented block. + } else if (atMoreIndented) { + atMoreIndented = false; + state.result += common.repeat('\n', emptyLines + 1); + + // Just one line break - perceive as the same line. + } else if (0 === emptyLines) { + if (detectedIndent) { // i.e. only if we have already read some scalar content. + state.result += ' '; + } + + // Several line breaks - perceive as different lines. + } else { + state.result += common.repeat('\n', emptyLines); + } + + // Literal style: just add exact number of line breaks between content lines. + } else if (detectedIndent) { + // If current line isn't the first one - count line break from the last content line. + state.result += common.repeat('\n', emptyLines + 1); + } else { + // In case of the first content line - count only empty lines. + } + + detectedIndent = true; + emptyLines = 0; + captureStart = state.position; + + while (!is_EOL(ch) && (0 !== ch)) { + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, state.position, false); + } + + return true; +} + +function readBlockSequence(state, nodeIndent) { + var _line, + _tag = state.tag, + _anchor = state.anchor, + _result = [], + following, + detected = false, + ch; + + if (null !== state.anchor) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (0 !== ch) { + + if (0x2D/* - */ !== ch) { + break; + } + + following = state.input.charCodeAt(state.position + 1); + + if (!is_WS_OR_EOL(following)) { + break; + } + + detected = true; + state.position++; + + if (skipSeparationSpace(state, true, -1)) { + if (state.lineIndent <= nodeIndent) { + _result.push(null); + ch = state.input.charCodeAt(state.position); + continue; + } + } + + _line = state.line; + composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); + _result.push(state.result); + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if ((state.line === _line || state.lineIndent > nodeIndent) && (0 !== ch)) { + throwError(state, 'bad indentation of a sequence entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'sequence'; + state.result = _result; + return true; + } + return false; +} + +function readBlockMapping(state, nodeIndent, flowIndent) { + var following, + allowCompact, + _line, + _tag = state.tag, + _anchor = state.anchor, + _result = {}, + keyTag = null, + keyNode = null, + valueNode = null, + atExplicitKey = false, + detected = false, + ch; + + if (null !== state.anchor) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (0 !== ch) { + following = state.input.charCodeAt(state.position + 1); + _line = state.line; // Save the current line. + + // + // Explicit notation case. There are two separate blocks: + // first for the key (denoted by "?") and second for the value (denoted by ":") + // + if ((0x3F/* ? */ === ch || 0x3A/* : */ === ch) && is_WS_OR_EOL(following)) { + + if (0x3F/* ? */ === ch) { + if (atExplicitKey) { + storeMappingPair(state, _result, keyTag, keyNode, null); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = true; + allowCompact = true; + + } else if (atExplicitKey) { + // i.e. 0x3A/* : */ === character after the explicit key. + atExplicitKey = false; + allowCompact = true; + + } else { + throwError(state, 'incomplete explicit mapping pair; a key node is missed'); + } + + state.position += 1; + ch = following; + + // + // Implicit notation case. Flow-style node as the key first, then ":", and the value. + // + } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + + if (state.line === _line) { + ch = state.input.charCodeAt(state.position); + + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (0x3A/* : */ === ch) { + ch = state.input.charCodeAt(++state.position); + + if (!is_WS_OR_EOL(ch)) { + throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); + } + + if (atExplicitKey) { + storeMappingPair(state, _result, keyTag, keyNode, null); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = false; + allowCompact = false; + keyTag = state.tag; + keyNode = state.result; + + } else if (detected) { + throwError(state, 'can not read an implicit mapping pair; a colon is missed'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + + } else if (detected) { + throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + + } else { + break; // Reading is done. Go to the epilogue. + } + + // + // Common reading code for both explicit and implicit notations. + // + if (state.line === _line || state.lineIndent > nodeIndent) { + if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { + if (atExplicitKey) { + keyNode = state.result; + } else { + valueNode = state.result; + } + } + + if (!atExplicitKey) { + storeMappingPair(state, _result, keyTag, keyNode, valueNode); + keyTag = keyNode = valueNode = null; + } + + skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); + } + + if (state.lineIndent > nodeIndent && (0 !== ch)) { + throwError(state, 'bad indentation of a mapping entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + // + // Epilogue. + // + + // Special case: last mapping's node contains only the key in explicit notation. + if (atExplicitKey) { + storeMappingPair(state, _result, keyTag, keyNode, null); + } + + // Expose the resulting mapping. + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'mapping'; + state.result = _result; + } + + return detected; +} + +function readTagProperty(state) { + var _position, + isVerbatim = false, + isNamed = false, + tagHandle, + tagName, + ch; + + ch = state.input.charCodeAt(state.position); + + if (0x21/* ! */ !== ch) { + return false; + } + + if (null !== state.tag) { + throwError(state, 'duplication of a tag property'); + } + + ch = state.input.charCodeAt(++state.position); + + if (0x3C/* < */ === ch) { + isVerbatim = true; + ch = state.input.charCodeAt(++state.position); + + } else if (0x21/* ! */ === ch) { + isNamed = true; + tagHandle = '!!'; + ch = state.input.charCodeAt(++state.position); + + } else { + tagHandle = '!'; + } + + _position = state.position; + + if (isVerbatim) { + do { ch = state.input.charCodeAt(++state.position); } + while (0 !== ch && 0x3E/* > */ !== ch); + + if (state.position < state.length) { + tagName = state.input.slice(_position, state.position); + ch = state.input.charCodeAt(++state.position); + } else { + throwError(state, 'unexpected end of the stream within a verbatim tag'); + } + } else { + while (0 !== ch && !is_WS_OR_EOL(ch)) { + + if (0x21/* ! */ === ch) { + if (!isNamed) { + tagHandle = state.input.slice(_position - 1, state.position + 1); + + if (!PATTERN_TAG_HANDLE.test(tagHandle)) { + throwError(state, 'named tag handle cannot contain such characters'); + } + + isNamed = true; + _position = state.position + 1; + } else { + throwError(state, 'tag suffix cannot contain exclamation marks'); + } + } + + ch = state.input.charCodeAt(++state.position); + } + + tagName = state.input.slice(_position, state.position); + + if (PATTERN_FLOW_INDICATORS.test(tagName)) { + throwError(state, 'tag suffix cannot contain flow indicator characters'); + } + } + + if (tagName && !PATTERN_TAG_URI.test(tagName)) { + throwError(state, 'tag name cannot contain such characters: ' + tagName); + } + + if (isVerbatim) { + state.tag = tagName; + + } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) { + state.tag = state.tagMap[tagHandle] + tagName; + + } else if ('!' === tagHandle) { + state.tag = '!' + tagName; + + } else if ('!!' === tagHandle) { + state.tag = 'tag:yaml.org,2002:' + tagName; + + } else { + throwError(state, 'undeclared tag handle "' + tagHandle + '"'); + } + + return true; +} + +function readAnchorProperty(state) { + var _position, + ch; + + ch = state.input.charCodeAt(state.position); + + if (0x26/* & */ !== ch) { + return false; + } + + if (null !== state.anchor) { + throwError(state, 'duplication of an anchor property'); + } + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (0 !== ch && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an anchor node must contain at least one character'); + } + + state.anchor = state.input.slice(_position, state.position); + return true; +} + +function readAlias(state) { + var _position, alias, + len = state.length, + input = state.input, + ch; + + ch = state.input.charCodeAt(state.position); + + if (0x2A/* * */ !== ch) { + return false; + } + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (0 !== ch && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an alias node must contain at least one character'); + } + + alias = state.input.slice(_position, state.position); + + if (!state.anchorMap.hasOwnProperty(alias)) { + throwError(state, 'unidentified alias "' + alias + '"'); + } + + state.result = state.anchorMap[alias]; + skipSeparationSpace(state, true, -1); + return true; +} + +function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { + var allowBlockStyles, + allowBlockScalars, + allowBlockCollections, + indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this<parent + atNewLine = false, + hasContent = false, + typeIndex, + typeQuantity, + type, + flowIndent, + blockIndent, + _result; + + state.tag = null; + state.anchor = null; + state.kind = null; + state.result = null; + + allowBlockStyles = allowBlockScalars = allowBlockCollections = + CONTEXT_BLOCK_OUT === nodeContext || + CONTEXT_BLOCK_IN === nodeContext; + + if (allowToSeek) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true; + + if (state.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } + } + + if (1 === indentStatus) { + while (readTagProperty(state) || readAnchorProperty(state)) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true; + allowBlockCollections = allowBlockStyles; + + if (state.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } else { + allowBlockCollections = false; + } + } + } + + if (allowBlockCollections) { + allowBlockCollections = atNewLine || allowCompact; + } + + if (1 === indentStatus || CONTEXT_BLOCK_OUT === nodeContext) { + if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { + flowIndent = parentIndent; + } else { + flowIndent = parentIndent + 1; + } + + blockIndent = state.position - state.lineStart; + + if (1 === indentStatus) { + if (allowBlockCollections && + (readBlockSequence(state, blockIndent) || + readBlockMapping(state, blockIndent, flowIndent)) || + readFlowCollection(state, flowIndent)) { + hasContent = true; + } else { + if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || + readSingleQuotedScalar(state, flowIndent) || + readDoubleQuotedScalar(state, flowIndent)) { + hasContent = true; + + } else if (readAlias(state)) { + hasContent = true; + + if (null !== state.tag || null !== state.anchor) { + throwError(state, 'alias node should not have any properties'); + } + + } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { + hasContent = true; + + if (null === state.tag) { + state.tag = '?'; + } + } + + if (null !== state.anchor) { + state.anchorMap[state.anchor] = state.result; + } + } + } else if (0 === indentStatus) { + // Special case: block sequences are allowed to have same indentation level as the parent. + // http://www.yaml.org/spec/1.2/spec.html#id2799784 + hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); + } + } + + if (null !== state.tag && '!' !== state.tag) { + if ('?' === state.tag) { + for (typeIndex = 0, typeQuantity = state.implicitTypes.length; + typeIndex < typeQuantity; + typeIndex += 1) { + type = state.implicitTypes[typeIndex]; + + // Implicit resolving is not allowed for non-scalar types, and '?' + // non-specific tag is only assigned to plain scalars. So, it isn't + // needed to check for 'kind' conformity. + + if (type.resolve(state.result)) { // `state.result` updated in resolver if matched + state.result = type.construct(state.result); + state.tag = type.tag; + if (null !== state.anchor) { + state.anchorMap[state.anchor] = state.result; + } + break; + } + } + } else if (_hasOwnProperty.call(state.typeMap, state.tag)) { + type = state.typeMap[state.tag]; + + if (null !== state.result && type.kind !== state.kind) { + throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); + } + + if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched + throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); + } else { + state.result = type.construct(state.result); + if (null !== state.anchor) { + state.anchorMap[state.anchor] = state.result; + } + } + } else { + throwWarning(state, 'unknown tag !<' + state.tag + '>'); + } + } + + return null !== state.tag || null !== state.anchor || hasContent; +} + +function readDocument(state) { + var documentStart = state.position, + _position, + directiveName, + directiveArgs, + hasDirectives = false, + ch; + + state.version = null; + state.checkLineBreaks = state.legacy; + state.tagMap = {}; + state.anchorMap = {}; + + while (0 !== (ch = state.input.charCodeAt(state.position))) { + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if (state.lineIndent > 0 || 0x25/* % */ !== ch) { + break; + } + + hasDirectives = true; + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (0 !== ch && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveName = state.input.slice(_position, state.position); + directiveArgs = []; + + if (directiveName.length < 1) { + throwError(state, 'directive name must not be less than one character in length'); + } + + while (0 !== ch) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (0x23/* # */ === ch) { + do { ch = state.input.charCodeAt(++state.position); } + while (0 !== ch && !is_EOL(ch)); + break; + } + + if (is_EOL(ch)) { + break; + } + + _position = state.position; + + while (0 !== ch && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveArgs.push(state.input.slice(_position, state.position)); + } + + if (0 !== ch) { + readLineBreak(state); + } + + if (_hasOwnProperty.call(directiveHandlers, directiveName)) { + directiveHandlers[directiveName](state, directiveName, directiveArgs); + } else { + throwWarning(state, 'unknown document directive "' + directiveName + '"'); + } + } + + skipSeparationSpace(state, true, -1); + + if (0 === state.lineIndent && + 0x2D/* - */ === state.input.charCodeAt(state.position) && + 0x2D/* - */ === state.input.charCodeAt(state.position + 1) && + 0x2D/* - */ === state.input.charCodeAt(state.position + 2)) { + state.position += 3; + skipSeparationSpace(state, true, -1); + + } else if (hasDirectives) { + throwError(state, 'directives end mark is expected'); + } + + composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); + skipSeparationSpace(state, true, -1); + + if (state.checkLineBreaks && + PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { + throwWarning(state, 'non-ASCII line breaks are interpreted as content'); + } + + state.documents.push(state.result); + + if (state.position === state.lineStart && testDocumentSeparator(state)) { + + if (0x2E/* . */ === state.input.charCodeAt(state.position)) { + state.position += 3; + skipSeparationSpace(state, true, -1); + } + return; + } + + if (state.position < (state.length - 1)) { + throwError(state, 'end of the stream or a document separator is expected'); + } else { + return; + } +} + + +function loadDocuments(input, options) { + input = String(input); + options = options || {}; + + if (input.length !== 0) { + + // Add tailing `\n` if not exists + if (0x0A/* LF */ !== input.charCodeAt(input.length - 1) && + 0x0D/* CR */ !== input.charCodeAt(input.length - 1)) { + input += '\n'; + } + + // Strip BOM + if (input.charCodeAt(0) === 0xFEFF) { + input = input.slice(1); + } + } + + var state = new State(input, options); + + if (PATTERN_NON_PRINTABLE.test(state.input)) { + throwError(state, 'the stream contains non-printable characters'); + } + + // Use 0 as string terminator. That significantly simplifies bounds check. + state.input += '\0'; + + while (0x20/* Space */ === state.input.charCodeAt(state.position)) { + state.lineIndent += 1; + state.position += 1; + } + + while (state.position < (state.length - 1)) { + readDocument(state); + } + + return state.documents; +} + + +function loadAll(input, iterator, options) { + var documents = loadDocuments(input, options), index, length; + + for (index = 0, length = documents.length; index < length; index += 1) { + iterator(documents[index]); + } +} + + +function load(input, options) { + var documents = loadDocuments(input, options), index, length; + + if (0 === documents.length) { + /*eslint-disable no-undefined*/ + return undefined; + } else if (1 === documents.length) { + return documents[0]; + } + throw new YAMLException('expected a single document in the stream, but found more'); +} + + +function safeLoadAll(input, output, options) { + loadAll(input, output, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); +} + + +function safeLoad(input, options) { + return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); +} + + +module.exports.loadAll = loadAll; +module.exports.load = load; +module.exports.safeLoadAll = safeLoadAll; +module.exports.safeLoad = safeLoad; + +},{"./common":23,"./exception":25,"./mark":27,"./schema/default_full":30,"./schema/default_safe":31}],27:[function(require,module,exports){ +'use strict'; + + +var common = require('./common'); + + +function Mark(name, buffer, position, line, column) { + this.name = name; + this.buffer = buffer; + this.position = position; + this.line = line; + this.column = column; +} + + +Mark.prototype.getSnippet = function getSnippet(indent, maxLength) { + var head, start, tail, end, snippet; + + if (!this.buffer) { + return null; + } + + indent = indent || 4; + maxLength = maxLength || 75; + + head = ''; + start = this.position; + + while (start > 0 && -1 === '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(start - 1))) { + start -= 1; + if (this.position - start > (maxLength / 2 - 1)) { + head = ' ... '; + start += 5; + break; + } + } + + tail = ''; + end = this.position; + + while (end < this.buffer.length && -1 === '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(end))) { + end += 1; + if (end - this.position > (maxLength / 2 - 1)) { + tail = ' ... '; + end -= 5; + break; + } + } + + snippet = this.buffer.slice(start, end); + + return common.repeat(' ', indent) + head + snippet + tail + '\n' + + common.repeat(' ', indent + this.position - start + head.length) + '^'; +}; + + +Mark.prototype.toString = function toString(compact) { + var snippet, where = ''; + + if (this.name) { + where += 'in "' + this.name + '" '; + } + + where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1); + + if (!compact) { + snippet = this.getSnippet(); + + if (snippet) { + where += ':\n' + snippet; + } + } + + return where; +}; + + +module.exports = Mark; + +},{"./common":23}],28:[function(require,module,exports){ +'use strict'; + +/*eslint-disable max-len*/ + +var common = require('./common'); +var YAMLException = require('./exception'); +var Type = require('./type'); + + +function compileList(schema, name, result) { + var exclude = []; + + schema.include.forEach(function (includedSchema) { + result = compileList(includedSchema, name, result); + }); + + schema[name].forEach(function (currentType) { + result.forEach(function (previousType, previousIndex) { + if (previousType.tag === currentType.tag) { + exclude.push(previousIndex); + } + }); + + result.push(currentType); + }); + + return result.filter(function (type, index) { + return -1 === exclude.indexOf(index); + }); +} + + +function compileMap(/* lists... */) { + var result = {}, index, length; + + function collectType(type) { + result[type.tag] = type; + } + + for (index = 0, length = arguments.length; index < length; index += 1) { + arguments[index].forEach(collectType); + } + + return result; +} + + +function Schema(definition) { + this.include = definition.include || []; + this.implicit = definition.implicit || []; + this.explicit = definition.explicit || []; + + this.implicit.forEach(function (type) { + if (type.loadKind && 'scalar' !== type.loadKind) { + throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); + } + }); + + this.compiledImplicit = compileList(this, 'implicit', []); + this.compiledExplicit = compileList(this, 'explicit', []); + this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit); +} + + +Schema.DEFAULT = null; + + +Schema.create = function createSchema() { + var schemas, types; + + switch (arguments.length) { + case 1: + schemas = Schema.DEFAULT; + types = arguments[0]; + break; + + case 2: + schemas = arguments[0]; + types = arguments[1]; + break; + + default: + throw new YAMLException('Wrong number of arguments for Schema.create function'); + } + + schemas = common.toArray(schemas); + types = common.toArray(types); + + if (!schemas.every(function (schema) { return schema instanceof Schema; })) { + throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.'); + } + + if (!types.every(function (type) { return type instanceof Type; })) { + throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + } + + return new Schema({ + include: schemas, + explicit: types + }); +}; + + +module.exports = Schema; + +},{"./common":23,"./exception":25,"./type":34}],29:[function(require,module,exports){ +// Standard YAML's Core schema. +// http://www.yaml.org/spec/1.2/spec.html#id2804923 +// +// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. +// So, Core schema has no distinctions from JSON schema is JS-YAML. + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = new Schema({ + include: [ + require('./json') + ] +}); + +},{"../schema":28,"./json":33}],30:[function(require,module,exports){ +// JS-YAML's default schema for `load` function. +// It is not described in the YAML specification. +// +// This schema is based on JS-YAML's default safe schema and includes +// JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function. +// +// Also this schema is used as default base schema at `Schema.create` function. + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = Schema.DEFAULT = new Schema({ + include: [ + require('./default_safe') + ], + explicit: [ + require('../type/js/undefined'), + require('../type/js/regexp'), + require('../type/js/function') + ] +}); + +},{"../schema":28,"../type/js/function":39,"../type/js/regexp":40,"../type/js/undefined":41,"./default_safe":31}],31:[function(require,module,exports){ +// JS-YAML's default schema for `safeLoad` function. +// It is not described in the YAML specification. +// +// This schema is based on standard YAML's Core schema and includes most of +// extra types described at YAML tag repository. (http://yaml.org/type/) + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = new Schema({ + include: [ + require('./core') + ], + implicit: [ + require('../type/timestamp'), + require('../type/merge') + ], + explicit: [ + require('../type/binary'), + require('../type/omap'), + require('../type/pairs'), + require('../type/set') + ] +}); + +},{"../schema":28,"../type/binary":35,"../type/merge":43,"../type/omap":45,"../type/pairs":46,"../type/set":48,"../type/timestamp":50,"./core":29}],32:[function(require,module,exports){ +// Standard YAML's Failsafe schema. +// http://www.yaml.org/spec/1.2/spec.html#id2802346 + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = new Schema({ + explicit: [ + require('../type/str'), + require('../type/seq'), + require('../type/map') + ] +}); + +},{"../schema":28,"../type/map":42,"../type/seq":47,"../type/str":49}],33:[function(require,module,exports){ +// Standard YAML's JSON schema. +// http://www.yaml.org/spec/1.2/spec.html#id2803231 +// +// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. +// So, this schema is not such strict as defined in the YAML specification. +// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc. + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = new Schema({ + include: [ + require('./failsafe') + ], + implicit: [ + require('../type/null'), + require('../type/bool'), + require('../type/int'), + require('../type/float') + ] +}); + +},{"../schema":28,"../type/bool":36,"../type/float":37,"../type/int":38,"../type/null":44,"./failsafe":32}],34:[function(require,module,exports){ +'use strict'; + +var YAMLException = require('./exception'); + +var TYPE_CONSTRUCTOR_OPTIONS = [ + 'kind', + 'resolve', + 'construct', + 'instanceOf', + 'predicate', + 'represent', + 'defaultStyle', + 'styleAliases' +]; + +var YAML_NODE_KINDS = [ + 'scalar', + 'sequence', + 'mapping' +]; + +function compileStyleAliases(map) { + var result = {}; + + if (null !== map) { + Object.keys(map).forEach(function (style) { + map[style].forEach(function (alias) { + result[String(alias)] = style; + }); + }); + } + + return result; +} + +function Type(tag, options) { + options = options || {}; + + Object.keys(options).forEach(function (name) { + if (-1 === TYPE_CONSTRUCTOR_OPTIONS.indexOf(name)) { + throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); + } + }); + + // TODO: Add tag format check. + this.tag = tag; + this.kind = options['kind'] || null; + this.resolve = options['resolve'] || function () { return true; }; + this.construct = options['construct'] || function (data) { return data; }; + this.instanceOf = options['instanceOf'] || null; + this.predicate = options['predicate'] || null; + this.represent = options['represent'] || null; + this.defaultStyle = options['defaultStyle'] || null; + this.styleAliases = compileStyleAliases(options['styleAliases'] || null); + + if (-1 === YAML_NODE_KINDS.indexOf(this.kind)) { + throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); + } +} + +module.exports = Type; + +},{"./exception":25}],35:[function(require,module,exports){ +'use strict'; + +/*eslint-disable no-bitwise*/ + +// A trick for browserified version. +// Since we make browserifier to ignore `buffer` module, NodeBuffer will be undefined +var NodeBuffer = require('buffer').Buffer; +var Type = require('../type'); + + +// [ 64, 65, 66 ] -> [ padding, CR, LF ] +var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; + + +function resolveYamlBinary(data) { + if (null === data) { + return false; + } + + var code, idx, bitlen = 0, len = 0, max = data.length, map = BASE64_MAP; + + // Convert one by one. + for (idx = 0; idx < max; idx++) { + code = map.indexOf(data.charAt(idx)); + + // Skip CR/LF + if (code > 64) { continue; } + + // Fail on illegal characters + if (code < 0) { return false; } + + bitlen += 6; + } + + // If there are any bits left, source was corrupted + return (bitlen % 8) === 0; +} + +function constructYamlBinary(data) { + var code, idx, tailbits, + input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan + max = input.length, + map = BASE64_MAP, + bits = 0, + result = []; + + // Collect by 6*4 bits (3 bytes) + + for (idx = 0; idx < max; idx++) { + if ((idx % 4 === 0) && idx) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } + + bits = (bits << 6) | map.indexOf(input.charAt(idx)); + } + + // Dump tail + + tailbits = (max % 4) * 6; + + if (tailbits === 0) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } else if (tailbits === 18) { + result.push((bits >> 10) & 0xFF); + result.push((bits >> 2) & 0xFF); + } else if (tailbits === 12) { + result.push((bits >> 4) & 0xFF); + } + + // Wrap into Buffer for NodeJS and leave Array for browser + if (NodeBuffer) { + return new NodeBuffer(result); + } + + return result; +} + +function representYamlBinary(object /*, style*/) { + var result = '', bits = 0, idx, tail, + max = object.length, + map = BASE64_MAP; + + // Convert every three bytes to 4 ASCII characters. + + for (idx = 0; idx < max; idx++) { + if ((idx % 3 === 0) && idx) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } + + bits = (bits << 8) + object[idx]; + } + + // Dump tail + + tail = max % 3; + + if (tail === 0) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } else if (tail === 2) { + result += map[(bits >> 10) & 0x3F]; + result += map[(bits >> 4) & 0x3F]; + result += map[(bits << 2) & 0x3F]; + result += map[64]; + } else if (tail === 1) { + result += map[(bits >> 2) & 0x3F]; + result += map[(bits << 4) & 0x3F]; + result += map[64]; + result += map[64]; + } + + return result; +} + +function isBinary(object) { + return NodeBuffer && NodeBuffer.isBuffer(object); +} + +module.exports = new Type('tag:yaml.org,2002:binary', { + kind: 'scalar', + resolve: resolveYamlBinary, + construct: constructYamlBinary, + predicate: isBinary, + represent: representYamlBinary +}); + +},{"../type":34,"buffer":12}],36:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +function resolveYamlBoolean(data) { + if (null === data) { + return false; + } + + var max = data.length; + + return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || + (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); +} + +function constructYamlBoolean(data) { + return data === 'true' || + data === 'True' || + data === 'TRUE'; +} + +function isBoolean(object) { + return '[object Boolean]' === Object.prototype.toString.call(object); +} + +module.exports = new Type('tag:yaml.org,2002:bool', { + kind: 'scalar', + resolve: resolveYamlBoolean, + construct: constructYamlBoolean, + predicate: isBoolean, + represent: { + lowercase: function (object) { return object ? 'true' : 'false'; }, + uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, + camelcase: function (object) { return object ? 'True' : 'False'; } + }, + defaultStyle: 'lowercase' +}); + +},{"../type":34}],37:[function(require,module,exports){ +'use strict'; + +var common = require('../common'); +var Type = require('../type'); + +var YAML_FLOAT_PATTERN = new RegExp( + '^(?:[-+]?(?:[0-9][0-9_]*)\\.[0-9_]*(?:[eE][-+][0-9]+)?' + + '|\\.[0-9_]+(?:[eE][-+][0-9]+)?' + + '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*' + + '|[-+]?\\.(?:inf|Inf|INF)' + + '|\\.(?:nan|NaN|NAN))$'); + +function resolveYamlFloat(data) { + if (null === data) { + return false; + } + + var value, sign, base, digits; + + if (!YAML_FLOAT_PATTERN.test(data)) { + return false; + } + return true; +} + +function constructYamlFloat(data) { + var value, sign, base, digits; + + value = data.replace(/_/g, '').toLowerCase(); + sign = '-' === value[0] ? -1 : 1; + digits = []; + + if (0 <= '+-'.indexOf(value[0])) { + value = value.slice(1); + } + + if ('.inf' === value) { + return (1 === sign) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + + } else if ('.nan' === value) { + return NaN; + + } else if (0 <= value.indexOf(':')) { + value.split(':').forEach(function (v) { + digits.unshift(parseFloat(v, 10)); + }); + + value = 0.0; + base = 1; + + digits.forEach(function (d) { + value += d * base; + base *= 60; + }); + + return sign * value; + + } + return sign * parseFloat(value, 10); +} + +function representYamlFloat(object, style) { + if (isNaN(object)) { + switch (style) { + case 'lowercase': + return '.nan'; + case 'uppercase': + return '.NAN'; + case 'camelcase': + return '.NaN'; + } + } else if (Number.POSITIVE_INFINITY === object) { + switch (style) { + case 'lowercase': + return '.inf'; + case 'uppercase': + return '.INF'; + case 'camelcase': + return '.Inf'; + } + } else if (Number.NEGATIVE_INFINITY === object) { + switch (style) { + case 'lowercase': + return '-.inf'; + case 'uppercase': + return '-.INF'; + case 'camelcase': + return '-.Inf'; + } + } else if (common.isNegativeZero(object)) { + return '-0.0'; + } + return object.toString(10); +} + +function isFloat(object) { + return ('[object Number]' === Object.prototype.toString.call(object)) && + (0 !== object % 1 || common.isNegativeZero(object)); +} + +module.exports = new Type('tag:yaml.org,2002:float', { + kind: 'scalar', + resolve: resolveYamlFloat, + construct: constructYamlFloat, + predicate: isFloat, + represent: representYamlFloat, + defaultStyle: 'lowercase' +}); + +},{"../common":23,"../type":34}],38:[function(require,module,exports){ +'use strict'; + +var common = require('../common'); +var Type = require('../type'); + +function isHexCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || + ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || + ((0x61/* a */ <= c) && (c <= 0x66/* f */)); +} + +function isOctCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); +} + +function isDecCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); +} + +function resolveYamlInteger(data) { + if (null === data) { + return false; + } + + var max = data.length, + index = 0, + hasDigits = false, + ch; + + if (!max) { return false; } + + ch = data[index]; + + // sign + if (ch === '-' || ch === '+') { + ch = data[++index]; + } + + if (ch === '0') { + // 0 + if (index + 1 === max) { return true; } + ch = data[++index]; + + // base 2, base 8, base 16 + + if (ch === 'b') { + // base 2 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') { continue; } + if (ch !== '0' && ch !== '1') { + return false; + } + hasDigits = true; + } + return hasDigits; + } + + + if (ch === 'x') { + // base 16 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') { continue; } + if (!isHexCode(data.charCodeAt(index))) { + return false; + } + hasDigits = true; + } + return hasDigits; + } + + // base 8 + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') { continue; } + if (!isOctCode(data.charCodeAt(index))) { + return false; + } + hasDigits = true; + } + return hasDigits; + } + + // base 10 (except 0) or base 60 + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') { continue; } + if (ch === ':') { break; } + if (!isDecCode(data.charCodeAt(index))) { + return false; + } + hasDigits = true; + } + + if (!hasDigits) { return false; } + + // if !base60 - done; + if (ch !== ':') { return true; } + + // base60 almost not used, no needs to optimize + return /^(:[0-5]?[0-9])+$/.test(data.slice(index)); +} + +function constructYamlInteger(data) { + var value = data, sign = 1, ch, base, digits = []; + + if (value.indexOf('_') !== -1) { + value = value.replace(/_/g, ''); + } + + ch = value[0]; + + if (ch === '-' || ch === '+') { + if (ch === '-') { sign = -1; } + value = value.slice(1); + ch = value[0]; + } + + if ('0' === value) { + return 0; + } + + if (ch === '0') { + if (value[1] === 'b') { + return sign * parseInt(value.slice(2), 2); + } + if (value[1] === 'x') { + return sign * parseInt(value, 16); + } + return sign * parseInt(value, 8); + + } + + if (value.indexOf(':') !== -1) { + value.split(':').forEach(function (v) { + digits.unshift(parseInt(v, 10)); + }); + + value = 0; + base = 1; + + digits.forEach(function (d) { + value += (d * base); + base *= 60; + }); + + return sign * value; + + } + + return sign * parseInt(value, 10); +} + +function isInteger(object) { + return ('[object Number]' === Object.prototype.toString.call(object)) && + (0 === object % 1 && !common.isNegativeZero(object)); +} + +module.exports = new Type('tag:yaml.org,2002:int', { + kind: 'scalar', + resolve: resolveYamlInteger, + construct: constructYamlInteger, + predicate: isInteger, + represent: { + binary: function (object) { return '0b' + object.toString(2); }, + octal: function (object) { return '0' + object.toString(8); }, + decimal: function (object) { return object.toString(10); }, + hexadecimal: function (object) { return '0x' + object.toString(16).toUpperCase(); } + }, + defaultStyle: 'decimal', + styleAliases: { + binary: [ 2, 'bin' ], + octal: [ 8, 'oct' ], + decimal: [ 10, 'dec' ], + hexadecimal: [ 16, 'hex' ] + } +}); + +},{"../common":23,"../type":34}],39:[function(require,module,exports){ +'use strict'; + +var esprima; + +// Browserified version does not have esprima +// +// 1. For node.js just require module as deps +// 2. For browser try to require mudule via external AMD system. +// If not found - try to fallback to window.esprima. If not +// found too - then fail to parse. +// +try { + esprima = require('esprima'); +} catch (_) { + /*global window */ + if (typeof window !== 'undefined') { esprima = window.esprima; } +} + +var Type = require('../../type'); + +function resolveJavascriptFunction(data) { + if (null === data) { + return false; + } + + try { + var source = '(' + data + ')', + ast = esprima.parse(source, { range: true }), + params = [], + body; + + if ('Program' !== ast.type || + 1 !== ast.body.length || + 'ExpressionStatement' !== ast.body[0].type || + 'FunctionExpression' !== ast.body[0].expression.type) { + return false; + } + + return true; + } catch (err) { + return false; + } +} + +function constructJavascriptFunction(data) { + /*jslint evil:true*/ + + var source = '(' + data + ')', + ast = esprima.parse(source, { range: true }), + params = [], + body; + + if ('Program' !== ast.type || + 1 !== ast.body.length || + 'ExpressionStatement' !== ast.body[0].type || + 'FunctionExpression' !== ast.body[0].expression.type) { + throw new Error('Failed to resolve function'); + } + + ast.body[0].expression.params.forEach(function (param) { + params.push(param.name); + }); + + body = ast.body[0].expression.body.range; + + // Esprima's ranges include the first '{' and the last '}' characters on + // function expressions. So cut them out. + /*eslint-disable no-new-func*/ + return new Function(params, source.slice(body[0] + 1, body[1] - 1)); +} + +function representJavascriptFunction(object /*, style*/) { + return object.toString(); +} + +function isFunction(object) { + return '[object Function]' === Object.prototype.toString.call(object); +} + +module.exports = new Type('tag:yaml.org,2002:js/function', { + kind: 'scalar', + resolve: resolveJavascriptFunction, + construct: constructJavascriptFunction, + predicate: isFunction, + represent: representJavascriptFunction +}); + +},{"../../type":34,"esprima":51}],40:[function(require,module,exports){ +'use strict'; + +var Type = require('../../type'); + +function resolveJavascriptRegExp(data) { + if (null === data) { + return false; + } + + if (0 === data.length) { + return false; + } + + var regexp = data, + tail = /\/([gim]*)$/.exec(data), + modifiers = ''; + + // if regexp starts with '/' it can have modifiers and must be properly closed + // `/foo/gim` - modifiers tail can be maximum 3 chars + if ('/' === regexp[0]) { + if (tail) { + modifiers = tail[1]; + } + + if (modifiers.length > 3) { return false; } + // if expression starts with /, is should be properly terminated + if (regexp[regexp.length - modifiers.length - 1] !== '/') { return false; } + + regexp = regexp.slice(1, regexp.length - modifiers.length - 1); + } + + try { + var dummy = new RegExp(regexp, modifiers); + return true; + } catch (error) { + return false; + } +} + +function constructJavascriptRegExp(data) { + var regexp = data, + tail = /\/([gim]*)$/.exec(data), + modifiers = ''; + + // `/foo/gim` - tail can be maximum 4 chars + if ('/' === regexp[0]) { + if (tail) { + modifiers = tail[1]; + } + regexp = regexp.slice(1, regexp.length - modifiers.length - 1); + } + + return new RegExp(regexp, modifiers); +} + +function representJavascriptRegExp(object /*, style*/) { + var result = '/' + object.source + '/'; + + if (object.global) { + result += 'g'; + } + + if (object.multiline) { + result += 'm'; + } + + if (object.ignoreCase) { + result += 'i'; + } + + return result; +} + +function isRegExp(object) { + return '[object RegExp]' === Object.prototype.toString.call(object); +} + +module.exports = new Type('tag:yaml.org,2002:js/regexp', { + kind: 'scalar', + resolve: resolveJavascriptRegExp, + construct: constructJavascriptRegExp, + predicate: isRegExp, + represent: representJavascriptRegExp +}); + +},{"../../type":34}],41:[function(require,module,exports){ +'use strict'; + +var Type = require('../../type'); + +function resolveJavascriptUndefined() { + return true; +} + +function constructJavascriptUndefined() { + /*eslint-disable no-undefined*/ + return undefined; +} + +function representJavascriptUndefined() { + return ''; +} + +function isUndefined(object) { + return 'undefined' === typeof object; +} + +module.exports = new Type('tag:yaml.org,2002:js/undefined', { + kind: 'scalar', + resolve: resolveJavascriptUndefined, + construct: constructJavascriptUndefined, + predicate: isUndefined, + represent: representJavascriptUndefined +}); + +},{"../../type":34}],42:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +module.exports = new Type('tag:yaml.org,2002:map', { + kind: 'mapping', + construct: function (data) { return null !== data ? data : {}; } +}); + +},{"../type":34}],43:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +function resolveYamlMerge(data) { + return '<<' === data || null === data; +} + +module.exports = new Type('tag:yaml.org,2002:merge', { + kind: 'scalar', + resolve: resolveYamlMerge +}); + +},{"../type":34}],44:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +function resolveYamlNull(data) { + if (null === data) { + return true; + } + + var max = data.length; + + return (max === 1 && data === '~') || + (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); +} + +function constructYamlNull() { + return null; +} + +function isNull(object) { + return null === object; +} + +module.exports = new Type('tag:yaml.org,2002:null', { + kind: 'scalar', + resolve: resolveYamlNull, + construct: constructYamlNull, + predicate: isNull, + represent: { + canonical: function () { return '~'; }, + lowercase: function () { return 'null'; }, + uppercase: function () { return 'NULL'; }, + camelcase: function () { return 'Null'; } + }, + defaultStyle: 'lowercase' +}); + +},{"../type":34}],45:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +var _hasOwnProperty = Object.prototype.hasOwnProperty; +var _toString = Object.prototype.toString; + +function resolveYamlOmap(data) { + if (null === data) { + return true; + } + + var objectKeys = [], index, length, pair, pairKey, pairHasKey, + object = data; + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + pairHasKey = false; + + if ('[object Object]' !== _toString.call(pair)) { + return false; + } + + for (pairKey in pair) { + if (_hasOwnProperty.call(pair, pairKey)) { + if (!pairHasKey) { + pairHasKey = true; + } else { + return false; + } + } + } + + if (!pairHasKey) { + return false; + } + + if (-1 === objectKeys.indexOf(pairKey)) { + objectKeys.push(pairKey); + } else { + return false; + } + } + + return true; +} + +function constructYamlOmap(data) { + return null !== data ? data : []; +} + +module.exports = new Type('tag:yaml.org,2002:omap', { + kind: 'sequence', + resolve: resolveYamlOmap, + construct: constructYamlOmap +}); + +},{"../type":34}],46:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +var _toString = Object.prototype.toString; + +function resolveYamlPairs(data) { + if (null === data) { + return true; + } + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + if ('[object Object]' !== _toString.call(pair)) { + return false; + } + + keys = Object.keys(pair); + + if (1 !== keys.length) { + return false; + } + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return true; +} + +function constructYamlPairs(data) { + if (null === data) { + return []; + } + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + keys = Object.keys(pair); + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return result; +} + +module.exports = new Type('tag:yaml.org,2002:pairs', { + kind: 'sequence', + resolve: resolveYamlPairs, + construct: constructYamlPairs +}); + +},{"../type":34}],47:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +module.exports = new Type('tag:yaml.org,2002:seq', { + kind: 'sequence', + construct: function (data) { return null !== data ? data : []; } +}); + +},{"../type":34}],48:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +var _hasOwnProperty = Object.prototype.hasOwnProperty; + +function resolveYamlSet(data) { + if (null === data) { + return true; + } + + var key, object = data; + + for (key in object) { + if (_hasOwnProperty.call(object, key)) { + if (null !== object[key]) { + return false; + } + } + } + + return true; +} + +function constructYamlSet(data) { + return null !== data ? data : {}; +} + +module.exports = new Type('tag:yaml.org,2002:set', { + kind: 'mapping', + resolve: resolveYamlSet, + construct: constructYamlSet +}); + +},{"../type":34}],49:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +module.exports = new Type('tag:yaml.org,2002:str', { + kind: 'scalar', + construct: function (data) { return null !== data ? data : ''; } +}); + +},{"../type":34}],50:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +var YAML_TIMESTAMP_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9]?)' + // [2] month + '-([0-9][0-9]?)' + // [3] day + '(?:(?:[Tt]|[ \\t]+)' + // ... + '([0-9][0-9]?)' + // [4] hour + ':([0-9][0-9])' + // [5] minute + ':([0-9][0-9])' + // [6] second + '(?:\\.([0-9]*))?' + // [7] fraction + '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour + '(?::([0-9][0-9]))?))?)?$'); // [11] tz_minute + +function resolveYamlTimestamp(data) { + if (null === data) { + return false; + } + + var match, year, month, day, hour, minute, second, fraction = 0, + delta = null, tz_hour, tz_minute, date; + + match = YAML_TIMESTAMP_REGEXP.exec(data); + + if (null === match) { + return false; + } + + return true; +} + +function constructYamlTimestamp(data) { + var match, year, month, day, hour, minute, second, fraction = 0, + delta = null, tz_hour, tz_minute, date; + + match = YAML_TIMESTAMP_REGEXP.exec(data); + + if (null === match) { + throw new Error('Date resolve error'); + } + + // match: [1] year [2] month [3] day + + year = +(match[1]); + month = +(match[2]) - 1; // JS month starts with 0 + day = +(match[3]); + + if (!match[4]) { // no hour + return new Date(Date.UTC(year, month, day)); + } + + // match: [4] hour [5] minute [6] second [7] fraction + + hour = +(match[4]); + minute = +(match[5]); + second = +(match[6]); + + if (match[7]) { + fraction = match[7].slice(0, 3); + while (fraction.length < 3) { // milli-seconds + fraction += '0'; + } + fraction = +fraction; + } + + // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute + + if (match[9]) { + tz_hour = +(match[10]); + tz_minute = +(match[11] || 0); + delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds + if ('-' === match[9]) { + delta = -delta; + } + } + + date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + + if (delta) { + date.setTime(date.getTime() - delta); + } + + return date; +} + +function representYamlTimestamp(object /*, style*/) { + return object.toISOString(); +} + +module.exports = new Type('tag:yaml.org,2002:timestamp', { + kind: 'scalar', + resolve: resolveYamlTimestamp, + construct: constructYamlTimestamp, + instanceOf: Date, + represent: representYamlTimestamp +}); + +},{"../type":34}],51:[function(require,module,exports){ +/* + Copyright (C) 2013 Ariya Hidayat <ariya.hidayat@gmail.com> + Copyright (C) 2013 Thaddee Tyl <thaddee.tyl@gmail.com> + Copyright (C) 2013 Mathias Bynens <mathias@qiwi.be> + Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com> + Copyright (C) 2012 Mathias Bynens <mathias@qiwi.be> + Copyright (C) 2012 Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl> + Copyright (C) 2012 Kris Kowal <kris.kowal@cixar.com> + Copyright (C) 2012 Yusuke Suzuki <utatane.tea@gmail.com> + Copyright (C) 2012 Arpad Borsos <arpad.borsos@googlemail.com> + Copyright (C) 2011 Ariya Hidayat <ariya.hidayat@gmail.com> + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +(function (root, factory) { + 'use strict'; + + // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, + // Rhino, and plain browser loading. + + /* istanbul ignore next */ + if (typeof define === 'function' && define.amd) { + define(['exports'], factory); + } else if (typeof exports !== 'undefined') { + factory(exports); + } else { + factory((root.esprima = {})); + } +}(this, function (exports) { + 'use strict'; + + var Token, + TokenName, + FnExprTokens, + Syntax, + PlaceHolders, + Messages, + Regex, + source, + strict, + sourceType, + index, + lineNumber, + lineStart, + hasLineTerminator, + lastIndex, + lastLineNumber, + lastLineStart, + startIndex, + startLineNumber, + startLineStart, + scanning, + length, + lookahead, + state, + extra, + isBindingElement, + isAssignmentTarget, + firstCoverInitializedNameError; + + Token = { + BooleanLiteral: 1, + EOF: 2, + Identifier: 3, + Keyword: 4, + NullLiteral: 5, + NumericLiteral: 6, + Punctuator: 7, + StringLiteral: 8, + RegularExpression: 9, + Template: 10 + }; + + TokenName = {}; + TokenName[Token.BooleanLiteral] = 'Boolean'; + TokenName[Token.EOF] = '<end>'; + TokenName[Token.Identifier] = 'Identifier'; + TokenName[Token.Keyword] = 'Keyword'; + TokenName[Token.NullLiteral] = 'Null'; + TokenName[Token.NumericLiteral] = 'Numeric'; + TokenName[Token.Punctuator] = 'Punctuator'; + TokenName[Token.StringLiteral] = 'String'; + TokenName[Token.RegularExpression] = 'RegularExpression'; + TokenName[Token.Template] = 'Template'; + + // A function following one of those tokens is an expression. + FnExprTokens = ['(', '{', '[', 'in', 'typeof', 'instanceof', 'new', + 'return', 'case', 'delete', 'throw', 'void', + // assignment operators + '=', '+=', '-=', '*=', '/=', '%=', '<<=', '>>=', '>>>=', + '&=', '|=', '^=', ',', + // binary/unary operators + '+', '-', '*', '/', '%', '++', '--', '<<', '>>', '>>>', '&', + '|', '^', '!', '~', '&&', '||', '?', ':', '===', '==', '>=', + '<=', '<', '>', '!=', '!==']; + + Syntax = { + AssignmentExpression: 'AssignmentExpression', + AssignmentPattern: 'AssignmentPattern', + ArrayExpression: 'ArrayExpression', + ArrayPattern: 'ArrayPattern', + ArrowFunctionExpression: 'ArrowFunctionExpression', + BlockStatement: 'BlockStatement', + BinaryExpression: 'BinaryExpression', + BreakStatement: 'BreakStatement', + CallExpression: 'CallExpression', + CatchClause: 'CatchClause', + ClassBody: 'ClassBody', + ClassDeclaration: 'ClassDeclaration', + ClassExpression: 'ClassExpression', + ConditionalExpression: 'ConditionalExpression', + ContinueStatement: 'ContinueStatement', + DoWhileStatement: 'DoWhileStatement', + DebuggerStatement: 'DebuggerStatement', + EmptyStatement: 'EmptyStatement', + ExportAllDeclaration: 'ExportAllDeclaration', + ExportDefaultDeclaration: 'ExportDefaultDeclaration', + ExportNamedDeclaration: 'ExportNamedDeclaration', + ExportSpecifier: 'ExportSpecifier', + ExpressionStatement: 'ExpressionStatement', + ForStatement: 'ForStatement', + ForInStatement: 'ForInStatement', + FunctionDeclaration: 'FunctionDeclaration', + FunctionExpression: 'FunctionExpression', + Identifier: 'Identifier', + IfStatement: 'IfStatement', + ImportDeclaration: 'ImportDeclaration', + ImportDefaultSpecifier: 'ImportDefaultSpecifier', + ImportNamespaceSpecifier: 'ImportNamespaceSpecifier', + ImportSpecifier: 'ImportSpecifier', + Literal: 'Literal', + LabeledStatement: 'LabeledStatement', + LogicalExpression: 'LogicalExpression', + MemberExpression: 'MemberExpression', + MethodDefinition: 'MethodDefinition', + NewExpression: 'NewExpression', + ObjectExpression: 'ObjectExpression', + ObjectPattern: 'ObjectPattern', + Program: 'Program', + Property: 'Property', + RestElement: 'RestElement', + ReturnStatement: 'ReturnStatement', + SequenceExpression: 'SequenceExpression', + SpreadElement: 'SpreadElement', + Super: 'Super', + SwitchCase: 'SwitchCase', + SwitchStatement: 'SwitchStatement', + TaggedTemplateExpression: 'TaggedTemplateExpression', + TemplateElement: 'TemplateElement', + TemplateLiteral: 'TemplateLiteral', + ThisExpression: 'ThisExpression', + ThrowStatement: 'ThrowStatement', + TryStatement: 'TryStatement', + UnaryExpression: 'UnaryExpression', + UpdateExpression: 'UpdateExpression', + VariableDeclaration: 'VariableDeclaration', + VariableDeclarator: 'VariableDeclarator', + WhileStatement: 'WhileStatement', + WithStatement: 'WithStatement' + }; + + PlaceHolders = { + ArrowParameterPlaceHolder: 'ArrowParameterPlaceHolder' + }; + + // Error messages should be identical to V8. + Messages = { + UnexpectedToken: 'Unexpected token %0', + UnexpectedNumber: 'Unexpected number', + UnexpectedString: 'Unexpected string', + UnexpectedIdentifier: 'Unexpected identifier', + UnexpectedReserved: 'Unexpected reserved word', + UnexpectedTemplate: 'Unexpected quasi %0', + UnexpectedEOS: 'Unexpected end of input', + NewlineAfterThrow: 'Illegal newline after throw', + InvalidRegExp: 'Invalid regular expression', + UnterminatedRegExp: 'Invalid regular expression: missing /', + InvalidLHSInAssignment: 'Invalid left-hand side in assignment', + InvalidLHSInForIn: 'Invalid left-hand side in for-in', + MultipleDefaultsInSwitch: 'More than one default clause in switch statement', + NoCatchOrFinally: 'Missing catch or finally after try', + UnknownLabel: 'Undefined label \'%0\'', + Redeclaration: '%0 \'%1\' has already been declared', + IllegalContinue: 'Illegal continue statement', + IllegalBreak: 'Illegal break statement', + IllegalReturn: 'Illegal return statement', + StrictModeWith: 'Strict mode code may not include a with statement', + StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode', + StrictVarName: 'Variable name may not be eval or arguments in strict mode', + StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode', + StrictParamDupe: 'Strict mode function may not have duplicate parameter names', + StrictFunctionName: 'Function name may not be eval or arguments in strict mode', + StrictOctalLiteral: 'Octal literals are not allowed in strict mode.', + StrictDelete: 'Delete of an unqualified identifier in strict mode.', + StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode', + StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode', + StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode', + StrictReservedWord: 'Use of future reserved word in strict mode', + TemplateOctalLiteral: 'Octal literals are not allowed in template strings.', + ParameterAfterRestParameter: 'Rest parameter must be last formal parameter', + DefaultRestParameter: 'Unexpected token =', + ObjectPatternAsRestParameter: 'Unexpected token {', + DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals', + ConstructorSpecialMethod: 'Class constructor may not be an accessor', + DuplicateConstructor: 'A class may only have one constructor', + StaticPrototype: 'Classes may not have static property named prototype', + MissingFromClause: 'Unexpected token', + NoAsAfterImportNamespace: 'Unexpected token', + InvalidModuleSpecifier: 'Unexpected token', + IllegalImportDeclaration: 'Unexpected token', + IllegalExportDeclaration: 'Unexpected token' + }; + + // See also tools/generate-unicode-regex.py. + Regex = { + NonAsciiIdentifierStart: new RegExp('[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]'), + NonAsciiIdentifierPart: new RegExp('[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]') + }; + + // Ensure the condition is true, otherwise throw an error. + // This is only to have a better contract semantic, i.e. another safety net + // to catch a logic error. The condition shall be fulfilled in normal case. + // Do NOT use this to enforce a certain condition on any user input. + + function assert(condition, message) { + /* istanbul ignore if */ + if (!condition) { + throw new Error('ASSERT: ' + message); + } + } + + function isDecimalDigit(ch) { + return (ch >= 0x30 && ch <= 0x39); // 0..9 + } + + function isHexDigit(ch) { + return '0123456789abcdefABCDEF'.indexOf(ch) >= 0; + } + + function isOctalDigit(ch) { + return '01234567'.indexOf(ch) >= 0; + } + + function octalToDecimal(ch) { + // \0 is not octal escape sequence + var octal = (ch !== '0'), code = '01234567'.indexOf(ch); + + if (index < length && isOctalDigit(source[index])) { + octal = true; + code = code * 8 + '01234567'.indexOf(source[index++]); + + // 3 digits are only allowed when string starts + // with 0, 1, 2, 3 + if ('0123'.indexOf(ch) >= 0 && + index < length && + isOctalDigit(source[index])) { + code = code * 8 + '01234567'.indexOf(source[index++]); + } + } + + return { + code: code, + octal: octal + }; + } + + // 7.2 White Space + + function isWhiteSpace(ch) { + return (ch === 0x20) || (ch === 0x09) || (ch === 0x0B) || (ch === 0x0C) || (ch === 0xA0) || + (ch >= 0x1680 && [0x1680, 0x180E, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(ch) >= 0); + } + + // 7.3 Line Terminators + + function isLineTerminator(ch) { + return (ch === 0x0A) || (ch === 0x0D) || (ch === 0x2028) || (ch === 0x2029); + } + + // 7.6 Identifier Names and Identifiers + + function isIdentifierStart(ch) { + return (ch === 0x24) || (ch === 0x5F) || // $ (dollar) and _ (underscore) + (ch >= 0x41 && ch <= 0x5A) || // A..Z + (ch >= 0x61 && ch <= 0x7A) || // a..z + (ch === 0x5C) || // \ (backslash) + ((ch >= 0x80) && Regex.NonAsciiIdentifierStart.test(String.fromCharCode(ch))); + } + + function isIdentifierPart(ch) { + return (ch === 0x24) || (ch === 0x5F) || // $ (dollar) and _ (underscore) + (ch >= 0x41 && ch <= 0x5A) || // A..Z + (ch >= 0x61 && ch <= 0x7A) || // a..z + (ch >= 0x30 && ch <= 0x39) || // 0..9 + (ch === 0x5C) || // \ (backslash) + ((ch >= 0x80) && Regex.NonAsciiIdentifierPart.test(String.fromCharCode(ch))); + } + + // 7.6.1.2 Future Reserved Words + + function isFutureReservedWord(id) { + switch (id) { + case 'enum': + case 'export': + case 'import': + case 'super': + return true; + default: + return false; + } + } + + // 11.6.2.2 Future Reserved Words + + function isStrictModeReservedWord(id) { + switch (id) { + case 'implements': + case 'interface': + case 'package': + case 'private': + case 'protected': + case 'public': + case 'static': + case 'yield': + case 'let': + return true; + default: + return false; + } + } + + function isRestrictedWord(id) { + return id === 'eval' || id === 'arguments'; + } + + // 7.6.1.1 Keywords + + function isKeyword(id) { + + // 'const' is specialized as Keyword in V8. + // 'yield' and 'let' are for compatibility with SpiderMonkey and ES.next. + // Some others are from future reserved words. + + switch (id.length) { + case 2: + return (id === 'if') || (id === 'in') || (id === 'do'); + case 3: + return (id === 'var') || (id === 'for') || (id === 'new') || + (id === 'try') || (id === 'let'); + case 4: + return (id === 'this') || (id === 'else') || (id === 'case') || + (id === 'void') || (id === 'with') || (id === 'enum'); + case 5: + return (id === 'while') || (id === 'break') || (id === 'catch') || + (id === 'throw') || (id === 'const') || (id === 'yield') || + (id === 'class') || (id === 'super'); + case 6: + return (id === 'return') || (id === 'typeof') || (id === 'delete') || + (id === 'switch') || (id === 'export') || (id === 'import'); + case 7: + return (id === 'default') || (id === 'finally') || (id === 'extends'); + case 8: + return (id === 'function') || (id === 'continue') || (id === 'debugger'); + case 10: + return (id === 'instanceof'); + default: + return false; + } + } + + // 7.4 Comments + + function addComment(type, value, start, end, loc) { + var comment; + + assert(typeof start === 'number', 'Comment must have valid position'); + + state.lastCommentStart = start; + + comment = { + type: type, + value: value + }; + if (extra.range) { + comment.range = [start, end]; + } + if (extra.loc) { + comment.loc = loc; + } + extra.comments.push(comment); + if (extra.attachComment) { + extra.leadingComments.push(comment); + extra.trailingComments.push(comment); + } + } + + function skipSingleLineComment(offset) { + var start, loc, ch, comment; + + start = index - offset; + loc = { + start: { + line: lineNumber, + column: index - lineStart - offset + } + }; + + while (index < length) { + ch = source.charCodeAt(index); + ++index; + if (isLineTerminator(ch)) { + hasLineTerminator = true; + if (extra.comments) { + comment = source.slice(start + offset, index - 1); + loc.end = { + line: lineNumber, + column: index - lineStart - 1 + }; + addComment('Line', comment, start, index - 1, loc); + } + if (ch === 13 && source.charCodeAt(index) === 10) { + ++index; + } + ++lineNumber; + lineStart = index; + return; + } + } + + if (extra.comments) { + comment = source.slice(start + offset, index); + loc.end = { + line: lineNumber, + column: index - lineStart + }; + addComment('Line', comment, start, index, loc); + } + } + + function skipMultiLineComment() { + var start, loc, ch, comment; + + if (extra.comments) { + start = index - 2; + loc = { + start: { + line: lineNumber, + column: index - lineStart - 2 + } + }; + } + + while (index < length) { + ch = source.charCodeAt(index); + if (isLineTerminator(ch)) { + if (ch === 0x0D && source.charCodeAt(index + 1) === 0x0A) { + ++index; + } + hasLineTerminator = true; + ++lineNumber; + ++index; + lineStart = index; + } else if (ch === 0x2A) { + // Block comment ends with '*/'. + if (source.charCodeAt(index + 1) === 0x2F) { + ++index; + ++index; + if (extra.comments) { + comment = source.slice(start + 2, index - 2); + loc.end = { + line: lineNumber, + column: index - lineStart + }; + addComment('Block', comment, start, index, loc); + } + return; + } + ++index; + } else { + ++index; + } + } + + // Ran off the end of the file - the whole thing is a comment + if (extra.comments) { + loc.end = { + line: lineNumber, + column: index - lineStart + }; + comment = source.slice(start + 2, index); + addComment('Block', comment, start, index, loc); + } + tolerateUnexpectedToken(); + } + + function skipComment() { + var ch, start; + hasLineTerminator = false; + + start = (index === 0); + while (index < length) { + ch = source.charCodeAt(index); + + if (isWhiteSpace(ch)) { + ++index; + } else if (isLineTerminator(ch)) { + hasLineTerminator = true; + ++index; + if (ch === 0x0D && source.charCodeAt(index) === 0x0A) { + ++index; + } + ++lineNumber; + lineStart = index; + start = true; + } else if (ch === 0x2F) { // U+002F is '/' + ch = source.charCodeAt(index + 1); + if (ch === 0x2F) { + ++index; + ++index; + skipSingleLineComment(2); + start = true; + } else if (ch === 0x2A) { // U+002A is '*' + ++index; + ++index; + skipMultiLineComment(); + } else { + break; + } + } else if (start && ch === 0x2D) { // U+002D is '-' + // U+003E is '>' + if ((source.charCodeAt(index + 1) === 0x2D) && (source.charCodeAt(index + 2) === 0x3E)) { + // '-->' is a single-line comment + index += 3; + skipSingleLineComment(3); + } else { + break; + } + } else if (ch === 0x3C) { // U+003C is '<' + if (source.slice(index + 1, index + 4) === '!--') { + ++index; // `<` + ++index; // `!` + ++index; // `-` + ++index; // `-` + skipSingleLineComment(4); + } else { + break; + } + } else { + break; + } + } + } + + function scanHexEscape(prefix) { + var i, len, ch, code = 0; + + len = (prefix === 'u') ? 4 : 2; + for (i = 0; i < len; ++i) { + if (index < length && isHexDigit(source[index])) { + ch = source[index++]; + code = code * 16 + '0123456789abcdef'.indexOf(ch.toLowerCase()); + } else { + return ''; + } + } + return String.fromCharCode(code); + } + + function scanUnicodeCodePointEscape() { + var ch, code, cu1, cu2; + + ch = source[index]; + code = 0; + + // At least, one hex digit is required. + if (ch === '}') { + throwUnexpectedToken(); + } + + while (index < length) { + ch = source[index++]; + if (!isHexDigit(ch)) { + break; + } + code = code * 16 + '0123456789abcdef'.indexOf(ch.toLowerCase()); + } + + if (code > 0x10FFFF || ch !== '}') { + throwUnexpectedToken(); + } + + // UTF-16 Encoding + if (code <= 0xFFFF) { + return String.fromCharCode(code); + } + cu1 = ((code - 0x10000) >> 10) + 0xD800; + cu2 = ((code - 0x10000) & 1023) + 0xDC00; + return String.fromCharCode(cu1, cu2); + } + + function getEscapedIdentifier() { + var ch, id; + + ch = source.charCodeAt(index++); + id = String.fromCharCode(ch); + + // '\u' (U+005C, U+0075) denotes an escaped character. + if (ch === 0x5C) { + if (source.charCodeAt(index) !== 0x75) { + throwUnexpectedToken(); + } + ++index; + ch = scanHexEscape('u'); + if (!ch || ch === '\\' || !isIdentifierStart(ch.charCodeAt(0))) { + throwUnexpectedToken(); + } + id = ch; + } + + while (index < length) { + ch = source.charCodeAt(index); + if (!isIdentifierPart(ch)) { + break; + } + ++index; + id += String.fromCharCode(ch); + + // '\u' (U+005C, U+0075) denotes an escaped character. + if (ch === 0x5C) { + id = id.substr(0, id.length - 1); + if (source.charCodeAt(index) !== 0x75) { + throwUnexpectedToken(); + } + ++index; + ch = scanHexEscape('u'); + if (!ch || ch === '\\' || !isIdentifierPart(ch.charCodeAt(0))) { + throwUnexpectedToken(); + } + id += ch; + } + } + + return id; + } + + function getIdentifier() { + var start, ch; + + start = index++; + while (index < length) { + ch = source.charCodeAt(index); + if (ch === 0x5C) { + // Blackslash (U+005C) marks Unicode escape sequence. + index = start; + return getEscapedIdentifier(); + } + if (isIdentifierPart(ch)) { + ++index; + } else { + break; + } + } + + return source.slice(start, index); + } + + function scanIdentifier() { + var start, id, type; + + start = index; + + // Backslash (U+005C) starts an escaped character. + id = (source.charCodeAt(index) === 0x5C) ? getEscapedIdentifier() : getIdentifier(); + + // There is no keyword or literal with only one character. + // Thus, it must be an identifier. + if (id.length === 1) { + type = Token.Identifier; + } else if (isKeyword(id)) { + type = Token.Keyword; + } else if (id === 'null') { + type = Token.NullLiteral; + } else if (id === 'true' || id === 'false') { + type = Token.BooleanLiteral; + } else { + type = Token.Identifier; + } + + return { + type: type, + value: id, + lineNumber: lineNumber, + lineStart: lineStart, + start: start, + end: index + }; + } + + + // 7.7 Punctuators + + function scanPunctuator() { + var token, str; + + token = { + type: Token.Punctuator, + value: '', + lineNumber: lineNumber, + lineStart: lineStart, + start: index, + end: index + }; + + // Check for most common single-character punctuators. + str = source[index]; + switch (str) { + + case '(': + if (extra.tokenize) { + extra.openParenToken = extra.tokens.length; + } + ++index; + break; + + case '{': + if (extra.tokenize) { + extra.openCurlyToken = extra.tokens.length; + } + state.curlyStack.push('{'); + ++index; + break; + + case '.': + ++index; + if (source[index] === '.' && source[index + 1] === '.') { + // Spread operator: ... + index += 2; + str = '...'; + } + break; + + case '}': + ++index; + state.curlyStack.pop(); + break; + case ')': + case ';': + case ',': + case '[': + case ']': + case ':': + case '?': + case '~': + ++index; + break; + + default: + // 4-character punctuator. + str = source.substr(index, 4); + if (str === '>>>=') { + index += 4; + } else { + + // 3-character punctuators. + str = str.substr(0, 3); + if (str === '===' || str === '!==' || str === '>>>' || + str === '<<=' || str === '>>=') { + index += 3; + } else { + + // 2-character punctuators. + str = str.substr(0, 2); + if (str === '&&' || str === '||' || str === '==' || str === '!=' || + str === '+=' || str === '-=' || str === '*=' || str === '/=' || + str === '++' || str === '--' || str === '<<' || str === '>>' || + str === '&=' || str === '|=' || str === '^=' || str === '%=' || + str === '<=' || str === '>=' || str === '=>') { + index += 2; + } else { + + // 1-character punctuators. + str = source[index]; + if ('<>=!+-*%&|^/'.indexOf(str) >= 0) { + ++index; + } + } + } + } + } + + if (index === token.start) { + throwUnexpectedToken(); + } + + token.end = index; + token.value = str; + return token; + } + + // 7.8.3 Numeric Literals + + function scanHexLiteral(start) { + var number = ''; + + while (index < length) { + if (!isHexDigit(source[index])) { + break; + } + number += source[index++]; + } + + if (number.length === 0) { + throwUnexpectedToken(); + } + + if (isIdentifierStart(source.charCodeAt(index))) { + throwUnexpectedToken(); + } + + return { + type: Token.NumericLiteral, + value: parseInt('0x' + number, 16), + lineNumber: lineNumber, + lineStart: lineStart, + start: start, + end: index + }; + } + + function scanBinaryLiteral(start) { + var ch, number; + + number = ''; + + while (index < length) { + ch = source[index]; + if (ch !== '0' && ch !== '1') { + break; + } + number += source[index++]; + } + + if (number.length === 0) { + // only 0b or 0B + throwUnexpectedToken(); + } + + if (index < length) { + ch = source.charCodeAt(index); + /* istanbul ignore else */ + if (isIdentifierStart(ch) || isDecimalDigit(ch)) { + throwUnexpectedToken(); + } + } + + return { + type: Token.NumericLiteral, + value: parseInt(number, 2), + lineNumber: lineNumber, + lineStart: lineStart, + start: start, + end: index + }; + } + + function scanOctalLiteral(prefix, start) { + var number, octal; + + if (isOctalDigit(prefix)) { + octal = true; + number = '0' + source[index++]; + } else { + octal = false; + ++index; + number = ''; + } + + while (index < length) { + if (!isOctalDigit(source[index])) { + break; + } + number += source[index++]; + } + + if (!octal && number.length === 0) { + // only 0o or 0O + throwUnexpectedToken(); + } + + if (isIdentifierStart(source.charCodeAt(index)) || isDecimalDigit(source.charCodeAt(index))) { + throwUnexpectedToken(); + } + + return { + type: Token.NumericLiteral, + value: parseInt(number, 8), + octal: octal, + lineNumber: lineNumber, + lineStart: lineStart, + start: start, + end: index + }; + } + + function isImplicitOctalLiteral() { + var i, ch; + + // Implicit octal, unless there is a non-octal digit. + // (Annex B.1.1 on Numeric Literals) + for (i = index + 1; i < length; ++i) { + ch = source[i]; + if (ch === '8' || ch === '9') { + return false; + } + if (!isOctalDigit(ch)) { + return true; + } + } + + return true; + } + + function scanNumericLiteral() { + var number, start, ch; + + ch = source[index]; + assert(isDecimalDigit(ch.charCodeAt(0)) || (ch === '.'), + 'Numeric literal must start with a decimal digit or a decimal point'); + + start = index; + number = ''; + if (ch !== '.') { + number = source[index++]; + ch = source[index]; + + // Hex number starts with '0x'. + // Octal number starts with '0'. + // Octal number in ES6 starts with '0o'. + // Binary number in ES6 starts with '0b'. + if (number === '0') { + if (ch === 'x' || ch === 'X') { + ++index; + return scanHexLiteral(start); + } + if (ch === 'b' || ch === 'B') { + ++index; + return scanBinaryLiteral(start); + } + if (ch === 'o' || ch === 'O') { + return scanOctalLiteral(ch, start); + } + + if (isOctalDigit(ch)) { + if (isImplicitOctalLiteral()) { + return scanOctalLiteral(ch, start); + } + } + } + + while (isDecimalDigit(source.charCodeAt(index))) { + number += source[index++]; + } + ch = source[index]; + } + + if (ch === '.') { + number += source[index++]; + while (isDecimalDigit(source.charCodeAt(index))) { + number += source[index++]; + } + ch = source[index]; + } + + if (ch === 'e' || ch === 'E') { + number += source[index++]; + + ch = source[index]; + if (ch === '+' || ch === '-') { + number += source[index++]; + } + if (isDecimalDigit(source.charCodeAt(index))) { + while (isDecimalDigit(source.charCodeAt(index))) { + number += source[index++]; + } + } else { + throwUnexpectedToken(); + } + } + + if (isIdentifierStart(source.charCodeAt(index))) { + throwUnexpectedToken(); + } + + return { + type: Token.NumericLiteral, + value: parseFloat(number), + lineNumber: lineNumber, + lineStart: lineStart, + start: start, + end: index + }; + } + + // 7.8.4 String Literals + + function scanStringLiteral() { + var str = '', quote, start, ch, unescaped, octToDec, octal = false; + + quote = source[index]; + assert((quote === '\'' || quote === '"'), + 'String literal must starts with a quote'); + + start = index; + ++index; + + while (index < length) { + ch = source[index++]; + + if (ch === quote) { + quote = ''; + break; + } else if (ch === '\\') { + ch = source[index++]; + if (!ch || !isLineTerminator(ch.charCodeAt(0))) { + switch (ch) { + case 'u': + case 'x': + if (source[index] === '{') { + ++index; + str += scanUnicodeCodePointEscape(); + } else { + unescaped = scanHexEscape(ch); + if (!unescaped) { + throw throwUnexpectedToken(); + } + str += unescaped; + } + break; + case 'n': + str += '\n'; + break; + case 'r': + str += '\r'; + break; + case 't': + str += '\t'; + break; + case 'b': + str += '\b'; + break; + case 'f': + str += '\f'; + break; + case 'v': + str += '\x0B'; + break; + case '8': + case '9': + throw throwUnexpectedToken(); + + default: + if (isOctalDigit(ch)) { + octToDec = octalToDecimal(ch); + + octal = octToDec.octal || octal; + str += String.fromCharCode(octToDec.code); + } else { + str += ch; + } + break; + } + } else { + ++lineNumber; + if (ch === '\r' && source[index] === '\n') { + ++index; + } + lineStart = index; + } + } else if (isLineTerminator(ch.charCodeAt(0))) { + break; + } else { + str += ch; + } + } + + if (quote !== '') { + throwUnexpectedToken(); + } + + return { + type: Token.StringLiteral, + value: str, + octal: octal, + lineNumber: startLineNumber, + lineStart: startLineStart, + start: start, + end: index + }; + } + + function scanTemplate() { + var cooked = '', ch, start, rawOffset, terminated, head, tail, restore, unescaped; + + terminated = false; + tail = false; + start = index; + head = (source[index] === '`'); + rawOffset = 2; + + ++index; + + while (index < length) { + ch = source[index++]; + if (ch === '`') { + rawOffset = 1; + tail = true; + terminated = true; + break; + } else if (ch === '$') { + if (source[index] === '{') { + state.curlyStack.push('${'); + ++index; + terminated = true; + break; + } + cooked += ch; + } else if (ch === '\\') { + ch = source[index++]; + if (!isLineTerminator(ch.charCodeAt(0))) { + switch (ch) { + case 'n': + cooked += '\n'; + break; + case 'r': + cooked += '\r'; + break; + case 't': + cooked += '\t'; + break; + case 'u': + case 'x': + if (source[index] === '{') { + ++index; + cooked += scanUnicodeCodePointEscape(); + } else { + restore = index; + unescaped = scanHexEscape(ch); + if (unescaped) { + cooked += unescaped; + } else { + index = restore; + cooked += ch; + } + } + break; + case 'b': + cooked += '\b'; + break; + case 'f': + cooked += '\f'; + break; + case 'v': + cooked += '\v'; + break; + + default: + if (ch === '0') { + if (isDecimalDigit(source.charCodeAt(index))) { + // Illegal: \01 \02 and so on + throwError(Messages.TemplateOctalLiteral); + } + cooked += '\0'; + } else if (isOctalDigit(ch)) { + // Illegal: \1 \2 + throwError(Messages.TemplateOctalLiteral); + } else { + cooked += ch; + } + break; + } + } else { + ++lineNumber; + if (ch === '\r' && source[index] === '\n') { + ++index; + } + lineStart = index; + } + } else if (isLineTerminator(ch.charCodeAt(0))) { + ++lineNumber; + if (ch === '\r' && source[index] === '\n') { + ++index; + } + lineStart = index; + cooked += '\n'; + } else { + cooked += ch; + } + } + + if (!terminated) { + throwUnexpectedToken(); + } + + if (!head) { + state.curlyStack.pop(); + } + + return { + type: Token.Template, + value: { + cooked: cooked, + raw: source.slice(start + 1, index - rawOffset) + }, + head: head, + tail: tail, + lineNumber: lineNumber, + lineStart: lineStart, + start: start, + end: index + }; + } + + function testRegExp(pattern, flags) { + var tmp = pattern; + + if (flags.indexOf('u') >= 0) { + // Replace each astral symbol and every Unicode escape sequence + // that possibly represents an astral symbol or a paired surrogate + // with a single ASCII symbol to avoid throwing on regular + // expressions that are only valid in combination with the `/u` + // flag. + // Note: replacing with the ASCII symbol `x` might cause false + // negatives in unlikely scenarios. For example, `[\u{61}-b]` is a + // perfectly valid pattern that is equivalent to `[a-b]`, but it + // would be replaced by `[x-b]` which throws an error. + tmp = tmp + .replace(/\\u\{([0-9a-fA-F]+)\}/g, function ($0, $1) { + if (parseInt($1, 16) <= 0x10FFFF) { + return 'x'; + } + throwUnexpectedToken(null, Messages.InvalidRegExp); + }) + .replace( + /\\u([a-fA-F0-9]{4})|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, + 'x' + ); + } + + // First, detect invalid regular expressions. + try { + RegExp(tmp); + } catch (e) { + throwUnexpectedToken(null, Messages.InvalidRegExp); + } + + // Return a regular expression object for this pattern-flag pair, or + // `null` in case the current environment doesn't support the flags it + // uses. + try { + return new RegExp(pattern, flags); + } catch (exception) { + return null; + } + } + + function scanRegExpBody() { + var ch, str, classMarker, terminated, body; + + ch = source[index]; + assert(ch === '/', 'Regular expression literal must start with a slash'); + str = source[index++]; + + classMarker = false; + terminated = false; + while (index < length) { + ch = source[index++]; + str += ch; + if (ch === '\\') { + ch = source[index++]; + // ECMA-262 7.8.5 + if (isLineTerminator(ch.charCodeAt(0))) { + throwUnexpectedToken(null, Messages.UnterminatedRegExp); + } + str += ch; + } else if (isLineTerminator(ch.charCodeAt(0))) { + throwUnexpectedToken(null, Messages.UnterminatedRegExp); + } else if (classMarker) { + if (ch === ']') { + classMarker = false; + } + } else { + if (ch === '/') { + terminated = true; + break; + } else if (ch === '[') { + classMarker = true; + } + } + } + + if (!terminated) { + throwUnexpectedToken(null, Messages.UnterminatedRegExp); + } + + // Exclude leading and trailing slash. + body = str.substr(1, str.length - 2); + return { + value: body, + literal: str + }; + } + + function scanRegExpFlags() { + var ch, str, flags, restore; + + str = ''; + flags = ''; + while (index < length) { + ch = source[index]; + if (!isIdentifierPart(ch.charCodeAt(0))) { + break; + } + + ++index; + if (ch === '\\' && index < length) { + ch = source[index]; + if (ch === 'u') { + ++index; + restore = index; + ch = scanHexEscape('u'); + if (ch) { + flags += ch; + for (str += '\\u'; restore < index; ++restore) { + str += source[restore]; + } + } else { + index = restore; + flags += 'u'; + str += '\\u'; + } + tolerateUnexpectedToken(); + } else { + str += '\\'; + tolerateUnexpectedToken(); + } + } else { + flags += ch; + str += ch; + } + } + + return { + value: flags, + literal: str + }; + } + + function scanRegExp() { + scanning = true; + var start, body, flags, value; + + lookahead = null; + skipComment(); + start = index; + + body = scanRegExpBody(); + flags = scanRegExpFlags(); + value = testRegExp(body.value, flags.value); + scanning = false; + if (extra.tokenize) { + return { + type: Token.RegularExpression, + value: value, + regex: { + pattern: body.value, + flags: flags.value + }, + lineNumber: lineNumber, + lineStart: lineStart, + start: start, + end: index + }; + } + + return { + literal: body.literal + flags.literal, + value: value, + regex: { + pattern: body.value, + flags: flags.value + }, + start: start, + end: index + }; + } + + function collectRegex() { + var pos, loc, regex, token; + + skipComment(); + + pos = index; + loc = { + start: { + line: lineNumber, + column: index - lineStart + } + }; + + regex = scanRegExp(); + + loc.end = { + line: lineNumber, + column: index - lineStart + }; + + /* istanbul ignore next */ + if (!extra.tokenize) { + // Pop the previous token, which is likely '/' or '/=' + if (extra.tokens.length > 0) { + token = extra.tokens[extra.tokens.length - 1]; + if (token.range[0] === pos && token.type === 'Punctuator') { + if (token.value === '/' || token.value === '/=') { + extra.tokens.pop(); + } + } + } + + extra.tokens.push({ + type: 'RegularExpression', + value: regex.literal, + regex: regex.regex, + range: [pos, index], + loc: loc + }); + } + + return regex; + } + + function isIdentifierName(token) { + return token.type === Token.Identifier || + token.type === Token.Keyword || + token.type === Token.BooleanLiteral || + token.type === Token.NullLiteral; + } + + function advanceSlash() { + var prevToken, + checkToken; + // Using the following algorithm: + // https://github.com/mozilla/sweet.js/wiki/design + prevToken = extra.tokens[extra.tokens.length - 1]; + if (!prevToken) { + // Nothing before that: it cannot be a division. + return collectRegex(); + } + if (prevToken.type === 'Punctuator') { + if (prevToken.value === ']') { + return scanPunctuator(); + } + if (prevToken.value === ')') { + checkToken = extra.tokens[extra.openParenToken - 1]; + if (checkToken && + checkToken.type === 'Keyword' && + (checkToken.value === 'if' || + checkToken.value === 'while' || + checkToken.value === 'for' || + checkToken.value === 'with')) { + return collectRegex(); + } + return scanPunctuator(); + } + if (prevToken.value === '}') { + // Dividing a function by anything makes little sense, + // but we have to check for that. + if (extra.tokens[extra.openCurlyToken - 3] && + extra.tokens[extra.openCurlyToken - 3].type === 'Keyword') { + // Anonymous function. + checkToken = extra.tokens[extra.openCurlyToken - 4]; + if (!checkToken) { + return scanPunctuator(); + } + } else if (extra.tokens[extra.openCurlyToken - 4] && + extra.tokens[extra.openCurlyToken - 4].type === 'Keyword') { + // Named function. + checkToken = extra.tokens[extra.openCurlyToken - 5]; + if (!checkToken) { + return collectRegex(); + } + } else { + return scanPunctuator(); + } + // checkToken determines whether the function is + // a declaration or an expression. + if (FnExprTokens.indexOf(checkToken.value) >= 0) { + // It is an expression. + return scanPunctuator(); + } + // It is a declaration. + return collectRegex(); + } + return collectRegex(); + } + if (prevToken.type === 'Keyword' && prevToken.value !== 'this') { + return collectRegex(); + } + return scanPunctuator(); + } + + function advance() { + var ch, token; + + if (index >= length) { + return { + type: Token.EOF, + lineNumber: lineNumber, + lineStart: lineStart, + start: index, + end: index + }; + } + + ch = source.charCodeAt(index); + + if (isIdentifierStart(ch)) { + token = scanIdentifier(); + if (strict && isStrictModeReservedWord(token.value)) { + token.type = Token.Keyword; + } + return token; + } + + // Very common: ( and ) and ; + if (ch === 0x28 || ch === 0x29 || ch === 0x3B) { + return scanPunctuator(); + } + + // String literal starts with single quote (U+0027) or double quote (U+0022). + if (ch === 0x27 || ch === 0x22) { + return scanStringLiteral(); + } + + // Dot (.) U+002E can also start a floating-point number, hence the need + // to check the next character. + if (ch === 0x2E) { + if (isDecimalDigit(source.charCodeAt(index + 1))) { + return scanNumericLiteral(); + } + return scanPunctuator(); + } + + if (isDecimalDigit(ch)) { + return scanNumericLiteral(); + } + + // Slash (/) U+002F can also start a regex. + if (extra.tokenize && ch === 0x2F) { + return advanceSlash(); + } + + // Template literals start with ` (U+0060) for template head + // or } (U+007D) for template middle or template tail. + if (ch === 0x60 || (ch === 0x7D && state.curlyStack[state.curlyStack.length - 1] === '${')) { + return scanTemplate(); + } + + return scanPunctuator(); + } + + function collectToken() { + var loc, token, value, entry; + + loc = { + start: { + line: lineNumber, + column: index - lineStart + } + }; + + token = advance(); + loc.end = { + line: lineNumber, + column: index - lineStart + }; + + if (token.type !== Token.EOF) { + value = source.slice(token.start, token.end); + entry = { + type: TokenName[token.type], + value: value, + range: [token.start, token.end], + loc: loc + }; + if (token.regex) { + entry.regex = { + pattern: token.regex.pattern, + flags: token.regex.flags + }; + } + extra.tokens.push(entry); + } + + return token; + } + + function lex() { + var token; + scanning = true; + + lastIndex = index; + lastLineNumber = lineNumber; + lastLineStart = lineStart; + + skipComment(); + + token = lookahead; + + startIndex = index; + startLineNumber = lineNumber; + startLineStart = lineStart; + + lookahead = (typeof extra.tokens !== 'undefined') ? collectToken() : advance(); + scanning = false; + return token; + } + + function peek() { + scanning = true; + + skipComment(); + + lastIndex = index; + lastLineNumber = lineNumber; + lastLineStart = lineStart; + + startIndex = index; + startLineNumber = lineNumber; + startLineStart = lineStart; + + lookahead = (typeof extra.tokens !== 'undefined') ? collectToken() : advance(); + scanning = false; + } + + function Position() { + this.line = startLineNumber; + this.column = startIndex - startLineStart; + } + + function SourceLocation() { + this.start = new Position(); + this.end = null; + } + + function WrappingSourceLocation(startToken) { + this.start = { + line: startToken.lineNumber, + column: startToken.start - startToken.lineStart + }; + this.end = null; + } + + function Node() { + if (extra.range) { + this.range = [startIndex, 0]; + } + if (extra.loc) { + this.loc = new SourceLocation(); + } + } + + function WrappingNode(startToken) { + if (extra.range) { + this.range = [startToken.start, 0]; + } + if (extra.loc) { + this.loc = new WrappingSourceLocation(startToken); + } + } + + WrappingNode.prototype = Node.prototype = { + + processComment: function () { + var lastChild, + leadingComments, + trailingComments, + bottomRight = extra.bottomRightStack, + i, + comment, + last = bottomRight[bottomRight.length - 1]; + + if (this.type === Syntax.Program) { + if (this.body.length > 0) { + return; + } + } + + if (extra.trailingComments.length > 0) { + trailingComments = []; + for (i = extra.trailingComments.length - 1; i >= 0; --i) { + comment = extra.trailingComments[i]; + if (comment.range[0] >= this.range[1]) { + trailingComments.unshift(comment); + extra.trailingComments.splice(i, 1); + } + } + extra.trailingComments = []; + } else { + if (last && last.trailingComments && last.trailingComments[0].range[0] >= this.range[1]) { + trailingComments = last.trailingComments; + delete last.trailingComments; + } + } + + // Eating the stack. + if (last) { + while (last && last.range[0] >= this.range[0]) { + lastChild = last; + last = bottomRight.pop(); + } + } + + if (lastChild) { + if (lastChild.leadingComments && lastChild.leadingComments[lastChild.leadingComments.length - 1].range[1] <= this.range[0]) { + this.leadingComments = lastChild.leadingComments; + lastChild.leadingComments = undefined; + } + } else if (extra.leadingComments.length > 0) { + leadingComments = []; + for (i = extra.leadingComments.length - 1; i >= 0; --i) { + comment = extra.leadingComments[i]; + if (comment.range[1] <= this.range[0]) { + leadingComments.unshift(comment); + extra.leadingComments.splice(i, 1); + } + } + } + + + if (leadingComments && leadingComments.length > 0) { + this.leadingComments = leadingComments; + } + if (trailingComments && trailingComments.length > 0) { + this.trailingComments = trailingComments; + } + + bottomRight.push(this); + }, + + finish: function () { + if (extra.range) { + this.range[1] = lastIndex; + } + if (extra.loc) { + this.loc.end = { + line: lastLineNumber, + column: lastIndex - lastLineStart + }; + if (extra.source) { + this.loc.source = extra.source; + } + } + + if (extra.attachComment) { + this.processComment(); + } + }, + + finishArrayExpression: function (elements) { + this.type = Syntax.ArrayExpression; + this.elements = elements; + this.finish(); + return this; + }, + + finishArrayPattern: function (elements) { + this.type = Syntax.ArrayPattern; + this.elements = elements; + this.finish(); + return this; + }, + + finishArrowFunctionExpression: function (params, defaults, body, expression) { + this.type = Syntax.ArrowFunctionExpression; + this.id = null; + this.params = params; + this.defaults = defaults; + this.body = body; + this.generator = false; + this.expression = expression; + this.finish(); + return this; + }, + + finishAssignmentExpression: function (operator, left, right) { + this.type = Syntax.AssignmentExpression; + this.operator = operator; + this.left = left; + this.right = right; + this.finish(); + return this; + }, + + finishAssignmentPattern: function (left, right) { + this.type = Syntax.AssignmentPattern; + this.left = left; + this.right = right; + this.finish(); + return this; + }, + + finishBinaryExpression: function (operator, left, right) { + this.type = (operator === '||' || operator === '&&') ? Syntax.LogicalExpression : Syntax.BinaryExpression; + this.operator = operator; + this.left = left; + this.right = right; + this.finish(); + return this; + }, + + finishBlockStatement: function (body) { + this.type = Syntax.BlockStatement; + this.body = body; + this.finish(); + return this; + }, + + finishBreakStatement: function (label) { + this.type = Syntax.BreakStatement; + this.label = label; + this.finish(); + return this; + }, + + finishCallExpression: function (callee, args) { + this.type = Syntax.CallExpression; + this.callee = callee; + this.arguments = args; + this.finish(); + return this; + }, + + finishCatchClause: function (param, body) { + this.type = Syntax.CatchClause; + this.param = param; + this.body = body; + this.finish(); + return this; + }, + + finishClassBody: function (body) { + this.type = Syntax.ClassBody; + this.body = body; + this.finish(); + return this; + }, + + finishClassDeclaration: function (id, superClass, body) { + this.type = Syntax.ClassDeclaration; + this.id = id; + this.superClass = superClass; + this.body = body; + this.finish(); + return this; + }, + + finishClassExpression: function (id, superClass, body) { + this.type = Syntax.ClassExpression; + this.id = id; + this.superClass = superClass; + this.body = body; + this.finish(); + return this; + }, + + finishConditionalExpression: function (test, consequent, alternate) { + this.type = Syntax.ConditionalExpression; + this.test = test; + this.consequent = consequent; + this.alternate = alternate; + this.finish(); + return this; + }, + + finishContinueStatement: function (label) { + this.type = Syntax.ContinueStatement; + this.label = label; + this.finish(); + return this; + }, + + finishDebuggerStatement: function () { + this.type = Syntax.DebuggerStatement; + this.finish(); + return this; + }, + + finishDoWhileStatement: function (body, test) { + this.type = Syntax.DoWhileStatement; + this.body = body; + this.test = test; + this.finish(); + return this; + }, + + finishEmptyStatement: function () { + this.type = Syntax.EmptyStatement; + this.finish(); + return this; + }, + + finishExpressionStatement: function (expression) { + this.type = Syntax.ExpressionStatement; + this.expression = expression; + this.finish(); + return this; + }, + + finishForStatement: function (init, test, update, body) { + this.type = Syntax.ForStatement; + this.init = init; + this.test = test; + this.update = update; + this.body = body; + this.finish(); + return this; + }, + + finishForInStatement: function (left, right, body) { + this.type = Syntax.ForInStatement; + this.left = left; + this.right = right; + this.body = body; + this.each = false; + this.finish(); + return this; + }, + + finishFunctionDeclaration: function (id, params, defaults, body) { + this.type = Syntax.FunctionDeclaration; + this.id = id; + this.params = params; + this.defaults = defaults; + this.body = body; + this.generator = false; + this.expression = false; + this.finish(); + return this; + }, + + finishFunctionExpression: function (id, params, defaults, body) { + this.type = Syntax.FunctionExpression; + this.id = id; + this.params = params; + this.defaults = defaults; + this.body = body; + this.generator = false; + this.expression = false; + this.finish(); + return this; + }, + + finishIdentifier: function (name) { + this.type = Syntax.Identifier; + this.name = name; + this.finish(); + return this; + }, + + finishIfStatement: function (test, consequent, alternate) { + this.type = Syntax.IfStatement; + this.test = test; + this.consequent = consequent; + this.alternate = alternate; + this.finish(); + return this; + }, + + finishLabeledStatement: function (label, body) { + this.type = Syntax.LabeledStatement; + this.label = label; + this.body = body; + this.finish(); + return this; + }, + + finishLiteral: function (token) { + this.type = Syntax.Literal; + this.value = token.value; + this.raw = source.slice(token.start, token.end); + if (token.regex) { + this.regex = token.regex; + } + this.finish(); + return this; + }, + + finishMemberExpression: function (accessor, object, property) { + this.type = Syntax.MemberExpression; + this.computed = accessor === '['; + this.object = object; + this.property = property; + this.finish(); + return this; + }, + + finishNewExpression: function (callee, args) { + this.type = Syntax.NewExpression; + this.callee = callee; + this.arguments = args; + this.finish(); + return this; + }, + + finishObjectExpression: function (properties) { + this.type = Syntax.ObjectExpression; + this.properties = properties; + this.finish(); + return this; + }, + + finishObjectPattern: function (properties) { + this.type = Syntax.ObjectPattern; + this.properties = properties; + this.finish(); + return this; + }, + + finishPostfixExpression: function (operator, argument) { + this.type = Syntax.UpdateExpression; + this.operator = operator; + this.argument = argument; + this.prefix = false; + this.finish(); + return this; + }, + + finishProgram: function (body) { + this.type = Syntax.Program; + this.body = body; + if (sourceType === 'module') { + // very restrictive for now + this.sourceType = sourceType; + } + this.finish(); + return this; + }, + + finishProperty: function (kind, key, computed, value, method, shorthand) { + this.type = Syntax.Property; + this.key = key; + this.computed = computed; + this.value = value; + this.kind = kind; + this.method = method; + this.shorthand = shorthand; + this.finish(); + return this; + }, + + finishRestElement: function (argument) { + this.type = Syntax.RestElement; + this.argument = argument; + this.finish(); + return this; + }, + + finishReturnStatement: function (argument) { + this.type = Syntax.ReturnStatement; + this.argument = argument; + this.finish(); + return this; + }, + + finishSequenceExpression: function (expressions) { + this.type = Syntax.SequenceExpression; + this.expressions = expressions; + this.finish(); + return this; + }, + + finishSpreadElement: function (argument) { + this.type = Syntax.SpreadElement; + this.argument = argument; + this.finish(); + return this; + }, + + finishSwitchCase: function (test, consequent) { + this.type = Syntax.SwitchCase; + this.test = test; + this.consequent = consequent; + this.finish(); + return this; + }, + + finishSuper: function () { + this.type = Syntax.Super; + this.finish(); + return this; + }, + + finishSwitchStatement: function (discriminant, cases) { + this.type = Syntax.SwitchStatement; + this.discriminant = discriminant; + this.cases = cases; + this.finish(); + return this; + }, + + finishTaggedTemplateExpression: function (tag, quasi) { + this.type = Syntax.TaggedTemplateExpression; + this.tag = tag; + this.quasi = quasi; + this.finish(); + return this; + }, + + finishTemplateElement: function (value, tail) { + this.type = Syntax.TemplateElement; + this.value = value; + this.tail = tail; + this.finish(); + return this; + }, + + finishTemplateLiteral: function (quasis, expressions) { + this.type = Syntax.TemplateLiteral; + this.quasis = quasis; + this.expressions = expressions; + this.finish(); + return this; + }, + + finishThisExpression: function () { + this.type = Syntax.ThisExpression; + this.finish(); + return this; + }, + + finishThrowStatement: function (argument) { + this.type = Syntax.ThrowStatement; + this.argument = argument; + this.finish(); + return this; + }, + + finishTryStatement: function (block, handler, finalizer) { + this.type = Syntax.TryStatement; + this.block = block; + this.guardedHandlers = []; + this.handlers = handler ? [ handler ] : []; + this.handler = handler; + this.finalizer = finalizer; + this.finish(); + return this; + }, + + finishUnaryExpression: function (operator, argument) { + this.type = (operator === '++' || operator === '--') ? Syntax.UpdateExpression : Syntax.UnaryExpression; + this.operator = operator; + this.argument = argument; + this.prefix = true; + this.finish(); + return this; + }, + + finishVariableDeclaration: function (declarations) { + this.type = Syntax.VariableDeclaration; + this.declarations = declarations; + this.kind = 'var'; + this.finish(); + return this; + }, + + finishLexicalDeclaration: function (declarations, kind) { + this.type = Syntax.VariableDeclaration; + this.declarations = declarations; + this.kind = kind; + this.finish(); + return this; + }, + + finishVariableDeclarator: function (id, init) { + this.type = Syntax.VariableDeclarator; + this.id = id; + this.init = init; + this.finish(); + return this; + }, + + finishWhileStatement: function (test, body) { + this.type = Syntax.WhileStatement; + this.test = test; + this.body = body; + this.finish(); + return this; + }, + + finishWithStatement: function (object, body) { + this.type = Syntax.WithStatement; + this.object = object; + this.body = body; + this.finish(); + return this; + }, + + finishExportSpecifier: function (local, exported) { + this.type = Syntax.ExportSpecifier; + this.exported = exported || local; + this.local = local; + this.finish(); + return this; + }, + + finishImportDefaultSpecifier: function (local) { + this.type = Syntax.ImportDefaultSpecifier; + this.local = local; + this.finish(); + return this; + }, + + finishImportNamespaceSpecifier: function (local) { + this.type = Syntax.ImportNamespaceSpecifier; + this.local = local; + this.finish(); + return this; + }, + + finishExportNamedDeclaration: function (declaration, specifiers, src) { + this.type = Syntax.ExportNamedDeclaration; + this.declaration = declaration; + this.specifiers = specifiers; + this.source = src; + this.finish(); + return this; + }, + + finishExportDefaultDeclaration: function (declaration) { + this.type = Syntax.ExportDefaultDeclaration; + this.declaration = declaration; + this.finish(); + return this; + }, + + finishExportAllDeclaration: function (src) { + this.type = Syntax.ExportAllDeclaration; + this.source = src; + this.finish(); + return this; + }, + + finishImportSpecifier: function (local, imported) { + this.type = Syntax.ImportSpecifier; + this.local = local || imported; + this.imported = imported; + this.finish(); + return this; + }, + + finishImportDeclaration: function (specifiers, src) { + this.type = Syntax.ImportDeclaration; + this.specifiers = specifiers; + this.source = src; + this.finish(); + return this; + } + }; + + + function recordError(error) { + var e, existing; + + for (e = 0; e < extra.errors.length; e++) { + existing = extra.errors[e]; + // Prevent duplicated error. + /* istanbul ignore next */ + if (existing.index === error.index && existing.message === error.message) { + return; + } + } + + extra.errors.push(error); + } + + function createError(line, pos, description) { + var error = new Error('Line ' + line + ': ' + description); + error.index = pos; + error.lineNumber = line; + error.column = pos - (scanning ? lineStart : lastLineStart) + 1; + error.description = description; + return error; + } + + // Throw an exception + + function throwError(messageFormat) { + var args, msg; + + args = Array.prototype.slice.call(arguments, 1); + msg = messageFormat.replace(/%(\d)/g, + function (whole, idx) { + assert(idx < args.length, 'Message reference must be in range'); + return args[idx]; + } + ); + + throw createError(lastLineNumber, lastIndex, msg); + } + + function tolerateError(messageFormat) { + var args, msg, error; + + args = Array.prototype.slice.call(arguments, 1); + /* istanbul ignore next */ + msg = messageFormat.replace(/%(\d)/g, + function (whole, idx) { + assert(idx < args.length, 'Message reference must be in range'); + return args[idx]; + } + ); + + error = createError(lineNumber, lastIndex, msg); + if (extra.errors) { + recordError(error); + } else { + throw error; + } + } + + // Throw an exception because of the token. + + function unexpectedTokenError(token, message) { + var value, msg = message || Messages.UnexpectedToken; + + if (token) { + if (!message) { + msg = (token.type === Token.EOF) ? Messages.UnexpectedEOS : + (token.type === Token.Identifier) ? Messages.UnexpectedIdentifier : + (token.type === Token.NumericLiteral) ? Messages.UnexpectedNumber : + (token.type === Token.StringLiteral) ? Messages.UnexpectedString : + (token.type === Token.Template) ? Messages.UnexpectedTemplate : + Messages.UnexpectedToken; + + if (token.type === Token.Keyword) { + if (isFutureReservedWord(token.value)) { + msg = Messages.UnexpectedReserved; + } else if (strict && isStrictModeReservedWord(token.value)) { + msg = Messages.StrictReservedWord; + } + } + } + + value = (token.type === Token.Template) ? token.value.raw : token.value; + } else { + value = 'ILLEGAL'; + } + + msg = msg.replace('%0', value); + + return (token && typeof token.lineNumber === 'number') ? + createError(token.lineNumber, token.start, msg) : + createError(scanning ? lineNumber : lastLineNumber, scanning ? index : lastIndex, msg); + } + + function throwUnexpectedToken(token, message) { + throw unexpectedTokenError(token, message); + } + + function tolerateUnexpectedToken(token, message) { + var error = unexpectedTokenError(token, message); + if (extra.errors) { + recordError(error); + } else { + throw error; + } + } + + // Expect the next token to match the specified punctuator. + // If not, an exception will be thrown. + + function expect(value) { + var token = lex(); + if (token.type !== Token.Punctuator || token.value !== value) { + throwUnexpectedToken(token); + } + } + + /** + * @name expectCommaSeparator + * @description Quietly expect a comma when in tolerant mode, otherwise delegates + * to <code>expect(value)</code> + * @since 2.0 + */ + function expectCommaSeparator() { + var token; + + if (extra.errors) { + token = lookahead; + if (token.type === Token.Punctuator && token.value === ',') { + lex(); + } else if (token.type === Token.Punctuator && token.value === ';') { + lex(); + tolerateUnexpectedToken(token); + } else { + tolerateUnexpectedToken(token, Messages.UnexpectedToken); + } + } else { + expect(','); + } + } + + // Expect the next token to match the specified keyword. + // If not, an exception will be thrown. + + function expectKeyword(keyword) { + var token = lex(); + if (token.type !== Token.Keyword || token.value !== keyword) { + throwUnexpectedToken(token); + } + } + + // Return true if the next token matches the specified punctuator. + + function match(value) { + return lookahead.type === Token.Punctuator && lookahead.value === value; + } + + // Return true if the next token matches the specified keyword + + function matchKeyword(keyword) { + return lookahead.type === Token.Keyword && lookahead.value === keyword; + } + + // Return true if the next token matches the specified contextual keyword + // (where an identifier is sometimes a keyword depending on the context) + + function matchContextualKeyword(keyword) { + return lookahead.type === Token.Identifier && lookahead.value === keyword; + } + + // Return true if the next token is an assignment operator + + function matchAssign() { + var op; + + if (lookahead.type !== Token.Punctuator) { + return false; + } + op = lookahead.value; + return op === '=' || + op === '*=' || + op === '/=' || + op === '%=' || + op === '+=' || + op === '-=' || + op === '<<=' || + op === '>>=' || + op === '>>>=' || + op === '&=' || + op === '^=' || + op === '|='; + } + + function consumeSemicolon() { + // Catch the very common case first: immediately a semicolon (U+003B). + if (source.charCodeAt(startIndex) === 0x3B || match(';')) { + lex(); + return; + } + + if (hasLineTerminator) { + return; + } + + // FIXME(ikarienator): this is seemingly an issue in the previous location info convention. + lastIndex = startIndex; + lastLineNumber = startLineNumber; + lastLineStart = startLineStart; + + if (lookahead.type !== Token.EOF && !match('}')) { + throwUnexpectedToken(lookahead); + } + } + + // Cover grammar support. + // + // When an assignment expression position starts with an left parenthesis, the determination of the type + // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead) + // or the first comma. This situation also defers the determination of all the expressions nested in the pair. + // + // There are three productions that can be parsed in a parentheses pair that needs to be determined + // after the outermost pair is closed. They are: + // + // 1. AssignmentExpression + // 2. BindingElements + // 3. AssignmentTargets + // + // In order to avoid exponential backtracking, we use two flags to denote if the production can be + // binding element or assignment target. + // + // The three productions have the relationship: + // + // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression + // + // with a single exception that CoverInitializedName when used directly in an Expression, generates + // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the + // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair. + // + // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not + // effect the current flags. This means the production the parser parses is only used as an expression. Therefore + // the CoverInitializedName check is conducted. + // + // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates + // the flags outside of the parser. This means the production the parser parses is used as a part of a potential + // pattern. The CoverInitializedName check is deferred. + function isolateCoverGrammar(parser) { + var oldIsBindingElement = isBindingElement, + oldIsAssignmentTarget = isAssignmentTarget, + oldFirstCoverInitializedNameError = firstCoverInitializedNameError, + result; + isBindingElement = true; + isAssignmentTarget = true; + firstCoverInitializedNameError = null; + result = parser(); + if (firstCoverInitializedNameError !== null) { + throwUnexpectedToken(firstCoverInitializedNameError); + } + isBindingElement = oldIsBindingElement; + isAssignmentTarget = oldIsAssignmentTarget; + firstCoverInitializedNameError = oldFirstCoverInitializedNameError; + return result; + } + + function inheritCoverGrammar(parser) { + var oldIsBindingElement = isBindingElement, + oldIsAssignmentTarget = isAssignmentTarget, + oldFirstCoverInitializedNameError = firstCoverInitializedNameError, + result; + isBindingElement = true; + isAssignmentTarget = true; + firstCoverInitializedNameError = null; + result = parser(); + isBindingElement = isBindingElement && oldIsBindingElement; + isAssignmentTarget = isAssignmentTarget && oldIsAssignmentTarget; + firstCoverInitializedNameError = oldFirstCoverInitializedNameError || firstCoverInitializedNameError; + return result; + } + + function parseArrayPattern() { + var node = new Node(), elements = [], rest, restNode; + expect('['); + + while (!match(']')) { + if (match(',')) { + lex(); + elements.push(null); + } else { + if (match('...')) { + restNode = new Node(); + lex(); + rest = parseVariableIdentifier(); + elements.push(restNode.finishRestElement(rest)); + break; + } else { + elements.push(parsePatternWithDefault()); + } + if (!match(']')) { + expect(','); + } + } + + } + + expect(']'); + + return node.finishArrayPattern(elements); + } + + function parsePropertyPattern() { + var node = new Node(), key, computed = match('['), init; + if (lookahead.type === Token.Identifier) { + key = parseVariableIdentifier(); + if (match('=')) { + lex(); + init = parseAssignmentExpression(); + return node.finishProperty( + 'init', key, false, + new WrappingNode(key).finishAssignmentPattern(key, init), false, false); + } else if (!match(':')) { + return node.finishProperty('init', key, false, key, false, true); + } + } else { + key = parseObjectPropertyKey(); + } + expect(':'); + init = parsePatternWithDefault(); + return node.finishProperty('init', key, computed, init, false, false); + } + + function parseObjectPattern() { + var node = new Node(), properties = []; + + expect('{'); + + while (!match('}')) { + properties.push(parsePropertyPattern()); + if (!match('}')) { + expect(','); + } + } + + lex(); + + return node.finishObjectPattern(properties); + } + + function parsePattern() { + if (lookahead.type === Token.Identifier) { + return parseVariableIdentifier(); + } else if (match('[')) { + return parseArrayPattern(); + } else if (match('{')) { + return parseObjectPattern(); + } + throwUnexpectedToken(lookahead); + } + + function parsePatternWithDefault() { + var startToken = lookahead, pattern, right; + pattern = parsePattern(); + if (match('=')) { + lex(); + right = isolateCoverGrammar(parseAssignmentExpression); + pattern = new WrappingNode(startToken).finishAssignmentPattern(pattern, right); + } + return pattern; + } + + // 11.1.4 Array Initialiser + + function parseArrayInitialiser() { + var elements = [], node = new Node(), restSpread; + + expect('['); + + while (!match(']')) { + if (match(',')) { + lex(); + elements.push(null); + } else if (match('...')) { + restSpread = new Node(); + lex(); + restSpread.finishSpreadElement(inheritCoverGrammar(parseAssignmentExpression)); + + if (!match(']')) { + isAssignmentTarget = isBindingElement = false; + expect(','); + } + elements.push(restSpread); + } else { + elements.push(inheritCoverGrammar(parseAssignmentExpression)); + + if (!match(']')) { + expect(','); + } + } + } + + lex(); + + return node.finishArrayExpression(elements); + } + + // 11.1.5 Object Initialiser + + function parsePropertyFunction(node, paramInfo) { + var previousStrict, body; + + isAssignmentTarget = isBindingElement = false; + + previousStrict = strict; + body = isolateCoverGrammar(parseFunctionSourceElements); + + if (strict && paramInfo.firstRestricted) { + tolerateUnexpectedToken(paramInfo.firstRestricted, paramInfo.message); + } + if (strict && paramInfo.stricted) { + tolerateUnexpectedToken(paramInfo.stricted, paramInfo.message); + } + + strict = previousStrict; + return node.finishFunctionExpression(null, paramInfo.params, paramInfo.defaults, body); + } + + function parsePropertyMethodFunction() { + var params, method, node = new Node(); + + params = parseParams(); + method = parsePropertyFunction(node, params); + + return method; + } + + function parseObjectPropertyKey() { + var token, node = new Node(), expr; + + token = lex(); + + // Note: This function is called only from parseObjectProperty(), where + // EOF and Punctuator tokens are already filtered out. + + switch (token.type) { + case Token.StringLiteral: + case Token.NumericLiteral: + if (strict && token.octal) { + tolerateUnexpectedToken(token, Messages.StrictOctalLiteral); + } + return node.finishLiteral(token); + case Token.Identifier: + case Token.BooleanLiteral: + case Token.NullLiteral: + case Token.Keyword: + return node.finishIdentifier(token.value); + case Token.Punctuator: + if (token.value === '[') { + expr = isolateCoverGrammar(parseAssignmentExpression); + expect(']'); + return expr; + } + break; + } + throwUnexpectedToken(token); + } + + function lookaheadPropertyName() { + switch (lookahead.type) { + case Token.Identifier: + case Token.StringLiteral: + case Token.BooleanLiteral: + case Token.NullLiteral: + case Token.NumericLiteral: + case Token.Keyword: + return true; + case Token.Punctuator: + return lookahead.value === '['; + } + return false; + } + + // This function is to try to parse a MethodDefinition as defined in 14.3. But in the case of object literals, + // it might be called at a position where there is in fact a short hand identifier pattern or a data property. + // This can only be determined after we consumed up to the left parentheses. + // + // In order to avoid back tracking, it returns `null` if the position is not a MethodDefinition and the caller + // is responsible to visit other options. + function tryParseMethodDefinition(token, key, computed, node) { + var value, options, methodNode; + + if (token.type === Token.Identifier) { + // check for `get` and `set`; + + if (token.value === 'get' && lookaheadPropertyName()) { + computed = match('['); + key = parseObjectPropertyKey(); + methodNode = new Node(); + expect('('); + expect(')'); + value = parsePropertyFunction(methodNode, { + params: [], + defaults: [], + stricted: null, + firstRestricted: null, + message: null + }); + return node.finishProperty('get', key, computed, value, false, false); + } else if (token.value === 'set' && lookaheadPropertyName()) { + computed = match('['); + key = parseObjectPropertyKey(); + methodNode = new Node(); + expect('('); + + options = { + params: [], + defaultCount: 0, + defaults: [], + firstRestricted: null, + paramSet: {} + }; + if (match(')')) { + tolerateUnexpectedToken(lookahead); + } else { + parseParam(options); + if (options.defaultCount === 0) { + options.defaults = []; + } + } + expect(')'); + + value = parsePropertyFunction(methodNode, options); + return node.finishProperty('set', key, computed, value, false, false); + } + } + + if (match('(')) { + value = parsePropertyMethodFunction(); + return node.finishProperty('init', key, computed, value, true, false); + } + + // Not a MethodDefinition. + return null; + } + + function checkProto(key, computed, hasProto) { + if (computed === false && (key.type === Syntax.Identifier && key.name === '__proto__' || + key.type === Syntax.Literal && key.value === '__proto__')) { + if (hasProto.value) { + tolerateError(Messages.DuplicateProtoProperty); + } else { + hasProto.value = true; + } + } + } + + function parseObjectProperty(hasProto) { + var token = lookahead, node = new Node(), computed, key, maybeMethod, value; + + computed = match('['); + key = parseObjectPropertyKey(); + maybeMethod = tryParseMethodDefinition(token, key, computed, node); + + if (maybeMethod) { + checkProto(maybeMethod.key, maybeMethod.computed, hasProto); + // finished + return maybeMethod; + } + + // init property or short hand property. + checkProto(key, computed, hasProto); + + if (match(':')) { + lex(); + value = inheritCoverGrammar(parseAssignmentExpression); + return node.finishProperty('init', key, computed, value, false, false); + } + + if (token.type === Token.Identifier) { + if (match('=')) { + firstCoverInitializedNameError = lookahead; + lex(); + value = isolateCoverGrammar(parseAssignmentExpression); + return node.finishProperty('init', key, computed, + new WrappingNode(token).finishAssignmentPattern(key, value), false, true); + } + return node.finishProperty('init', key, computed, key, false, true); + } + + throwUnexpectedToken(lookahead); + } + + function parseObjectInitialiser() { + var properties = [], hasProto = {value: false}, node = new Node(); + + expect('{'); + + while (!match('}')) { + properties.push(parseObjectProperty(hasProto)); + + if (!match('}')) { + expectCommaSeparator(); + } + } + + expect('}'); + + return node.finishObjectExpression(properties); + } + + function reinterpretExpressionAsPattern(expr) { + var i; + switch (expr.type) { + case Syntax.Identifier: + case Syntax.MemberExpression: + case Syntax.RestElement: + case Syntax.AssignmentPattern: + break; + case Syntax.SpreadElement: + expr.type = Syntax.RestElement; + reinterpretExpressionAsPattern(expr.argument); + break; + case Syntax.ArrayExpression: + expr.type = Syntax.ArrayPattern; + for (i = 0; i < expr.elements.length; i++) { + if (expr.elements[i] !== null) { + reinterpretExpressionAsPattern(expr.elements[i]); + } + } + break; + case Syntax.ObjectExpression: + expr.type = Syntax.ObjectPattern; + for (i = 0; i < expr.properties.length; i++) { + reinterpretExpressionAsPattern(expr.properties[i].value); + } + break; + case Syntax.AssignmentExpression: + expr.type = Syntax.AssignmentPattern; + reinterpretExpressionAsPattern(expr.left); + break; + default: + // Allow other node type for tolerant parsing. + break; + } + } + + function parseTemplateElement(option) { + var node, token; + + if (lookahead.type !== Token.Template || (option.head && !lookahead.head)) { + throwUnexpectedToken(); + } + + node = new Node(); + token = lex(); + + return node.finishTemplateElement({ raw: token.value.raw, cooked: token.value.cooked }, token.tail); + } + + function parseTemplateLiteral() { + var quasi, quasis, expressions, node = new Node(); + + quasi = parseTemplateElement({ head: true }); + quasis = [ quasi ]; + expressions = []; + + while (!quasi.tail) { + expressions.push(parseExpression()); + quasi = parseTemplateElement({ head: false }); + quasis.push(quasi); + } + + return node.finishTemplateLiteral(quasis, expressions); + } + + // 11.1.6 The Grouping Operator + + function parseGroupExpression() { + var expr, expressions, startToken, i; + + expect('('); + + if (match(')')) { + lex(); + if (!match('=>')) { + expect('=>'); + } + return { + type: PlaceHolders.ArrowParameterPlaceHolder, + params: [] + }; + } + + startToken = lookahead; + if (match('...')) { + expr = parseRestElement(); + expect(')'); + if (!match('=>')) { + expect('=>'); + } + return { + type: PlaceHolders.ArrowParameterPlaceHolder, + params: [expr] + }; + } + + isBindingElement = true; + expr = inheritCoverGrammar(parseAssignmentExpression); + + if (match(',')) { + isAssignmentTarget = false; + expressions = [expr]; + + while (startIndex < length) { + if (!match(',')) { + break; + } + lex(); + + if (match('...')) { + if (!isBindingElement) { + throwUnexpectedToken(lookahead); + } + expressions.push(parseRestElement()); + expect(')'); + if (!match('=>')) { + expect('=>'); + } + isBindingElement = false; + for (i = 0; i < expressions.length; i++) { + reinterpretExpressionAsPattern(expressions[i]); + } + return { + type: PlaceHolders.ArrowParameterPlaceHolder, + params: expressions + }; + } + + expressions.push(inheritCoverGrammar(parseAssignmentExpression)); + } + + expr = new WrappingNode(startToken).finishSequenceExpression(expressions); + } + + + expect(')'); + + if (match('=>')) { + if (!isBindingElement) { + throwUnexpectedToken(lookahead); + } + + if (expr.type === Syntax.SequenceExpression) { + for (i = 0; i < expr.expressions.length; i++) { + reinterpretExpressionAsPattern(expr.expressions[i]); + } + } else { + reinterpretExpressionAsPattern(expr); + } + + expr = { + type: PlaceHolders.ArrowParameterPlaceHolder, + params: expr.type === Syntax.SequenceExpression ? expr.expressions : [expr] + }; + } + isBindingElement = false; + return expr; + } + + + // 11.1 Primary Expressions + + function parsePrimaryExpression() { + var type, token, expr, node; + + if (match('(')) { + isBindingElement = false; + return inheritCoverGrammar(parseGroupExpression); + } + + if (match('[')) { + return inheritCoverGrammar(parseArrayInitialiser); + } + + if (match('{')) { + return inheritCoverGrammar(parseObjectInitialiser); + } + + type = lookahead.type; + node = new Node(); + + if (type === Token.Identifier) { + expr = node.finishIdentifier(lex().value); + } else if (type === Token.StringLiteral || type === Token.NumericLiteral) { + isAssignmentTarget = isBindingElement = false; + if (strict && lookahead.octal) { + tolerateUnexpectedToken(lookahead, Messages.StrictOctalLiteral); + } + expr = node.finishLiteral(lex()); + } else if (type === Token.Keyword) { + isAssignmentTarget = isBindingElement = false; + if (matchKeyword('function')) { + return parseFunctionExpression(); + } + if (matchKeyword('this')) { + lex(); + return node.finishThisExpression(); + } + if (matchKeyword('class')) { + return parseClassExpression(); + } + throwUnexpectedToken(lex()); + } else if (type === Token.BooleanLiteral) { + isAssignmentTarget = isBindingElement = false; + token = lex(); + token.value = (token.value === 'true'); + expr = node.finishLiteral(token); + } else if (type === Token.NullLiteral) { + isAssignmentTarget = isBindingElement = false; + token = lex(); + token.value = null; + expr = node.finishLiteral(token); + } else if (match('/') || match('/=')) { + isAssignmentTarget = isBindingElement = false; + index = startIndex; + + if (typeof extra.tokens !== 'undefined') { + token = collectRegex(); + } else { + token = scanRegExp(); + } + lex(); + expr = node.finishLiteral(token); + } else if (type === Token.Template) { + expr = parseTemplateLiteral(); + } else { + throwUnexpectedToken(lex()); + } + + return expr; + } + + // 11.2 Left-Hand-Side Expressions + + function parseArguments() { + var args = []; + + expect('('); + + if (!match(')')) { + while (startIndex < length) { + args.push(isolateCoverGrammar(parseAssignmentExpression)); + if (match(')')) { + break; + } + expectCommaSeparator(); + } + } + + expect(')'); + + return args; + } + + function parseNonComputedProperty() { + var token, node = new Node(); + + token = lex(); + + if (!isIdentifierName(token)) { + throwUnexpectedToken(token); + } + + return node.finishIdentifier(token.value); + } + + function parseNonComputedMember() { + expect('.'); + + return parseNonComputedProperty(); + } + + function parseComputedMember() { + var expr; + + expect('['); + + expr = isolateCoverGrammar(parseExpression); + + expect(']'); + + return expr; + } + + function parseNewExpression() { + var callee, args, node = new Node(); + + expectKeyword('new'); + callee = isolateCoverGrammar(parseLeftHandSideExpression); + args = match('(') ? parseArguments() : []; + + isAssignmentTarget = isBindingElement = false; + + return node.finishNewExpression(callee, args); + } + + function parseLeftHandSideExpressionAllowCall() { + var quasi, expr, args, property, startToken, previousAllowIn = state.allowIn; + + startToken = lookahead; + state.allowIn = true; + + if (matchKeyword('super') && state.inFunctionBody) { + expr = new Node(); + lex(); + expr = expr.finishSuper(); + if (!match('(') && !match('.') && !match('[')) { + throwUnexpectedToken(lookahead); + } + } else { + expr = inheritCoverGrammar(matchKeyword('new') ? parseNewExpression : parsePrimaryExpression); + } + + for (;;) { + if (match('.')) { + isBindingElement = false; + isAssignmentTarget = true; + property = parseNonComputedMember(); + expr = new WrappingNode(startToken).finishMemberExpression('.', expr, property); + } else if (match('(')) { + isBindingElement = false; + isAssignmentTarget = false; + args = parseArguments(); + expr = new WrappingNode(startToken).finishCallExpression(expr, args); + } else if (match('[')) { + isBindingElement = false; + isAssignmentTarget = true; + property = parseComputedMember(); + expr = new WrappingNode(startToken).finishMemberExpression('[', expr, property); + } else if (lookahead.type === Token.Template && lookahead.head) { + quasi = parseTemplateLiteral(); + expr = new WrappingNode(startToken).finishTaggedTemplateExpression(expr, quasi); + } else { + break; + } + } + state.allowIn = previousAllowIn; + + return expr; + } + + function parseLeftHandSideExpression() { + var quasi, expr, property, startToken; + assert(state.allowIn, 'callee of new expression always allow in keyword.'); + + startToken = lookahead; + + if (matchKeyword('super') && state.inFunctionBody) { + expr = new Node(); + lex(); + expr = expr.finishSuper(); + if (!match('[') && !match('.')) { + throwUnexpectedToken(lookahead); + } + } else { + expr = inheritCoverGrammar(matchKeyword('new') ? parseNewExpression : parsePrimaryExpression); + } + + for (;;) { + if (match('[')) { + isBindingElement = false; + isAssignmentTarget = true; + property = parseComputedMember(); + expr = new WrappingNode(startToken).finishMemberExpression('[', expr, property); + } else if (match('.')) { + isBindingElement = false; + isAssignmentTarget = true; + property = parseNonComputedMember(); + expr = new WrappingNode(startToken).finishMemberExpression('.', expr, property); + } else if (lookahead.type === Token.Template && lookahead.head) { + quasi = parseTemplateLiteral(); + expr = new WrappingNode(startToken).finishTaggedTemplateExpression(expr, quasi); + } else { + break; + } + } + return expr; + } + + // 11.3 Postfix Expressions + + function parsePostfixExpression() { + var expr, token, startToken = lookahead; + + expr = inheritCoverGrammar(parseLeftHandSideExpressionAllowCall); + + if (!hasLineTerminator && lookahead.type === Token.Punctuator) { + if (match('++') || match('--')) { + // 11.3.1, 11.3.2 + if (strict && expr.type === Syntax.Identifier && isRestrictedWord(expr.name)) { + tolerateError(Messages.StrictLHSPostfix); + } + + if (!isAssignmentTarget) { + tolerateError(Messages.InvalidLHSInAssignment); + } + + isAssignmentTarget = isBindingElement = false; + + token = lex(); + expr = new WrappingNode(startToken).finishPostfixExpression(token.value, expr); + } + } + + return expr; + } + + // 11.4 Unary Operators + + function parseUnaryExpression() { + var token, expr, startToken; + + if (lookahead.type !== Token.Punctuator && lookahead.type !== Token.Keyword) { + expr = parsePostfixExpression(); + } else if (match('++') || match('--')) { + startToken = lookahead; + token = lex(); + expr = inheritCoverGrammar(parseUnaryExpression); + // 11.4.4, 11.4.5 + if (strict && expr.type === Syntax.Identifier && isRestrictedWord(expr.name)) { + tolerateError(Messages.StrictLHSPrefix); + } + + if (!isAssignmentTarget) { + tolerateError(Messages.InvalidLHSInAssignment); + } + expr = new WrappingNode(startToken).finishUnaryExpression(token.value, expr); + isAssignmentTarget = isBindingElement = false; + } else if (match('+') || match('-') || match('~') || match('!')) { + startToken = lookahead; + token = lex(); + expr = inheritCoverGrammar(parseUnaryExpression); + expr = new WrappingNode(startToken).finishUnaryExpression(token.value, expr); + isAssignmentTarget = isBindingElement = false; + } else if (matchKeyword('delete') || matchKeyword('void') || matchKeyword('typeof')) { + startToken = lookahead; + token = lex(); + expr = inheritCoverGrammar(parseUnaryExpression); + expr = new WrappingNode(startToken).finishUnaryExpression(token.value, expr); + if (strict && expr.operator === 'delete' && expr.argument.type === Syntax.Identifier) { + tolerateError(Messages.StrictDelete); + } + isAssignmentTarget = isBindingElement = false; + } else { + expr = parsePostfixExpression(); + } + + return expr; + } + + function binaryPrecedence(token, allowIn) { + var prec = 0; + + if (token.type !== Token.Punctuator && token.type !== Token.Keyword) { + return 0; + } + + switch (token.value) { + case '||': + prec = 1; + break; + + case '&&': + prec = 2; + break; + + case '|': + prec = 3; + break; + + case '^': + prec = 4; + break; + + case '&': + prec = 5; + break; + + case '==': + case '!=': + case '===': + case '!==': + prec = 6; + break; + + case '<': + case '>': + case '<=': + case '>=': + case 'instanceof': + prec = 7; + break; + + case 'in': + prec = allowIn ? 7 : 0; + break; + + case '<<': + case '>>': + case '>>>': + prec = 8; + break; + + case '+': + case '-': + prec = 9; + break; + + case '*': + case '/': + case '%': + prec = 11; + break; + + default: + break; + } + + return prec; + } + + // 11.5 Multiplicative Operators + // 11.6 Additive Operators + // 11.7 Bitwise Shift Operators + // 11.8 Relational Operators + // 11.9 Equality Operators + // 11.10 Binary Bitwise Operators + // 11.11 Binary Logical Operators + + function parseBinaryExpression() { + var marker, markers, expr, token, prec, stack, right, operator, left, i; + + marker = lookahead; + left = inheritCoverGrammar(parseUnaryExpression); + + token = lookahead; + prec = binaryPrecedence(token, state.allowIn); + if (prec === 0) { + return left; + } + isAssignmentTarget = isBindingElement = false; + token.prec = prec; + lex(); + + markers = [marker, lookahead]; + right = isolateCoverGrammar(parseUnaryExpression); + + stack = [left, token, right]; + + while ((prec = binaryPrecedence(lookahead, state.allowIn)) > 0) { + + // Reduce: make a binary expression from the three topmost entries. + while ((stack.length > 2) && (prec <= stack[stack.length - 2].prec)) { + right = stack.pop(); + operator = stack.pop().value; + left = stack.pop(); + markers.pop(); + expr = new WrappingNode(markers[markers.length - 1]).finishBinaryExpression(operator, left, right); + stack.push(expr); + } + + // Shift. + token = lex(); + token.prec = prec; + stack.push(token); + markers.push(lookahead); + expr = isolateCoverGrammar(parseUnaryExpression); + stack.push(expr); + } + + // Final reduce to clean-up the stack. + i = stack.length - 1; + expr = stack[i]; + markers.pop(); + while (i > 1) { + expr = new WrappingNode(markers.pop()).finishBinaryExpression(stack[i - 1].value, stack[i - 2], expr); + i -= 2; + } + + return expr; + } + + + // 11.12 Conditional Operator + + function parseConditionalExpression() { + var expr, previousAllowIn, consequent, alternate, startToken; + + startToken = lookahead; + + expr = inheritCoverGrammar(parseBinaryExpression); + if (match('?')) { + lex(); + previousAllowIn = state.allowIn; + state.allowIn = true; + consequent = isolateCoverGrammar(parseAssignmentExpression); + state.allowIn = previousAllowIn; + expect(':'); + alternate = isolateCoverGrammar(parseAssignmentExpression); + + expr = new WrappingNode(startToken).finishConditionalExpression(expr, consequent, alternate); + isAssignmentTarget = isBindingElement = false; + } + + return expr; + } + + // [ES6] 14.2 Arrow Function + + function parseConciseBody() { + if (match('{')) { + return parseFunctionSourceElements(); + } + return isolateCoverGrammar(parseAssignmentExpression); + } + + function checkPatternParam(options, param) { + var i; + switch (param.type) { + case Syntax.Identifier: + validateParam(options, param, param.name); + break; + case Syntax.RestElement: + checkPatternParam(options, param.argument); + break; + case Syntax.AssignmentPattern: + checkPatternParam(options, param.left); + break; + case Syntax.ArrayPattern: + for (i = 0; i < param.elements.length; i++) { + if (param.elements[i] !== null) { + checkPatternParam(options, param.elements[i]); + } + } + break; + default: + assert(param.type === Syntax.ObjectPattern, 'Invalid type'); + for (i = 0; i < param.properties.length; i++) { + checkPatternParam(options, param.properties[i].value); + } + break; + } + } + function reinterpretAsCoverFormalsList(expr) { + var i, len, param, params, defaults, defaultCount, options, token; + + defaults = []; + defaultCount = 0; + params = [expr]; + + switch (expr.type) { + case Syntax.Identifier: + break; + case PlaceHolders.ArrowParameterPlaceHolder: + params = expr.params; + break; + default: + return null; + } + + options = { + paramSet: {} + }; + + for (i = 0, len = params.length; i < len; i += 1) { + param = params[i]; + switch (param.type) { + case Syntax.AssignmentPattern: + params[i] = param.left; + defaults.push(param.right); + ++defaultCount; + checkPatternParam(options, param.left); + break; + default: + checkPatternParam(options, param); + params[i] = param; + defaults.push(null); + break; + } + } + + if (options.message === Messages.StrictParamDupe) { + token = strict ? options.stricted : options.firstRestricted; + throwUnexpectedToken(token, options.message); + } + + if (defaultCount === 0) { + defaults = []; + } + + return { + params: params, + defaults: defaults, + stricted: options.stricted, + firstRestricted: options.firstRestricted, + message: options.message + }; + } + + function parseArrowFunctionExpression(options, node) { + var previousStrict, body; + + if (hasLineTerminator) { + tolerateUnexpectedToken(lookahead); + } + expect('=>'); + previousStrict = strict; + + body = parseConciseBody(); + + if (strict && options.firstRestricted) { + throwUnexpectedToken(options.firstRestricted, options.message); + } + if (strict && options.stricted) { + tolerateUnexpectedToken(options.stricted, options.message); + } + + strict = previousStrict; + + return node.finishArrowFunctionExpression(options.params, options.defaults, body, body.type !== Syntax.BlockStatement); + } + + // 11.13 Assignment Operators + + function parseAssignmentExpression() { + var token, expr, right, list, startToken; + + startToken = lookahead; + token = lookahead; + + expr = parseConditionalExpression(); + + if (expr.type === PlaceHolders.ArrowParameterPlaceHolder || match('=>')) { + isAssignmentTarget = isBindingElement = false; + list = reinterpretAsCoverFormalsList(expr); + + if (list) { + firstCoverInitializedNameError = null; + return parseArrowFunctionExpression(list, new WrappingNode(startToken)); + } + + return expr; + } + + if (matchAssign()) { + if (!isAssignmentTarget) { + tolerateError(Messages.InvalidLHSInAssignment); + } + + // 11.13.1 + if (strict && expr.type === Syntax.Identifier && isRestrictedWord(expr.name)) { + tolerateUnexpectedToken(token, Messages.StrictLHSAssignment); + } + + if (!match('=')) { + isAssignmentTarget = isBindingElement = false; + } else { + reinterpretExpressionAsPattern(expr); + } + + token = lex(); + right = isolateCoverGrammar(parseAssignmentExpression); + expr = new WrappingNode(startToken).finishAssignmentExpression(token.value, expr, right); + firstCoverInitializedNameError = null; + } + + return expr; + } + + // 11.14 Comma Operator + + function parseExpression() { + var expr, startToken = lookahead, expressions; + + expr = isolateCoverGrammar(parseAssignmentExpression); + + if (match(',')) { + expressions = [expr]; + + while (startIndex < length) { + if (!match(',')) { + break; + } + lex(); + expressions.push(isolateCoverGrammar(parseAssignmentExpression)); + } + + expr = new WrappingNode(startToken).finishSequenceExpression(expressions); + } + + return expr; + } + + // 12.1 Block + + function parseStatementListItem() { + if (lookahead.type === Token.Keyword) { + switch (lookahead.value) { + case 'export': + if (sourceType !== 'module') { + tolerateUnexpectedToken(lookahead, Messages.IllegalExportDeclaration); + } + return parseExportDeclaration(); + case 'import': + if (sourceType !== 'module') { + tolerateUnexpectedToken(lookahead, Messages.IllegalImportDeclaration); + } + return parseImportDeclaration(); + case 'const': + case 'let': + return parseLexicalDeclaration({inFor: false}); + case 'function': + return parseFunctionDeclaration(new Node()); + case 'class': + return parseClassDeclaration(); + } + } + + return parseStatement(); + } + + function parseStatementList() { + var list = []; + while (startIndex < length) { + if (match('}')) { + break; + } + list.push(parseStatementListItem()); + } + + return list; + } + + function parseBlock() { + var block, node = new Node(); + + expect('{'); + + block = parseStatementList(); + + expect('}'); + + return node.finishBlockStatement(block); + } + + // 12.2 Variable Statement + + function parseVariableIdentifier() { + var token, node = new Node(); + + token = lex(); + + if (token.type !== Token.Identifier) { + if (strict && token.type === Token.Keyword && isStrictModeReservedWord(token.value)) { + tolerateUnexpectedToken(token, Messages.StrictReservedWord); + } else { + throwUnexpectedToken(token); + } + } + + return node.finishIdentifier(token.value); + } + + function parseVariableDeclaration() { + var init = null, id, node = new Node(); + + id = parsePattern(); + + // 12.2.1 + if (strict && isRestrictedWord(id.name)) { + tolerateError(Messages.StrictVarName); + } + + if (match('=')) { + lex(); + init = isolateCoverGrammar(parseAssignmentExpression); + } else if (id.type !== Syntax.Identifier) { + expect('='); + } + + return node.finishVariableDeclarator(id, init); + } + + function parseVariableDeclarationList() { + var list = []; + + do { + list.push(parseVariableDeclaration()); + if (!match(',')) { + break; + } + lex(); + } while (startIndex < length); + + return list; + } + + function parseVariableStatement(node) { + var declarations; + + expectKeyword('var'); + + declarations = parseVariableDeclarationList(); + + consumeSemicolon(); + + return node.finishVariableDeclaration(declarations); + } + + function parseLexicalBinding(kind, options) { + var init = null, id, node = new Node(); + + id = parsePattern(); + + // 12.2.1 + if (strict && id.type === Syntax.Identifier && isRestrictedWord(id.name)) { + tolerateError(Messages.StrictVarName); + } + + if (kind === 'const') { + if (!matchKeyword('in')) { + expect('='); + init = isolateCoverGrammar(parseAssignmentExpression); + } + } else if ((!options.inFor && id.type !== Syntax.Identifier) || match('=')) { + expect('='); + init = isolateCoverGrammar(parseAssignmentExpression); + } + + return node.finishVariableDeclarator(id, init); + } + + function parseBindingList(kind, options) { + var list = []; + + do { + list.push(parseLexicalBinding(kind, options)); + if (!match(',')) { + break; + } + lex(); + } while (startIndex < length); + + return list; + } + + function parseLexicalDeclaration(options) { + var kind, declarations, node = new Node(); + + kind = lex().value; + assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const'); + + declarations = parseBindingList(kind, options); + + consumeSemicolon(); + + return node.finishLexicalDeclaration(declarations, kind); + } + + function parseRestElement() { + var param, node = new Node(); + + lex(); + + if (match('{')) { + throwError(Messages.ObjectPatternAsRestParameter); + } + + param = parseVariableIdentifier(); + + if (match('=')) { + throwError(Messages.DefaultRestParameter); + } + + if (!match(')')) { + throwError(Messages.ParameterAfterRestParameter); + } + + return node.finishRestElement(param); + } + + // 12.3 Empty Statement + + function parseEmptyStatement(node) { + expect(';'); + return node.finishEmptyStatement(); + } + + // 12.4 Expression Statement + + function parseExpressionStatement(node) { + var expr = parseExpression(); + consumeSemicolon(); + return node.finishExpressionStatement(expr); + } + + // 12.5 If statement + + function parseIfStatement(node) { + var test, consequent, alternate; + + expectKeyword('if'); + + expect('('); + + test = parseExpression(); + + expect(')'); + + consequent = parseStatement(); + + if (matchKeyword('else')) { + lex(); + alternate = parseStatement(); + } else { + alternate = null; + } + + return node.finishIfStatement(test, consequent, alternate); + } + + // 12.6 Iteration Statements + + function parseDoWhileStatement(node) { + var body, test, oldInIteration; + + expectKeyword('do'); + + oldInIteration = state.inIteration; + state.inIteration = true; + + body = parseStatement(); + + state.inIteration = oldInIteration; + + expectKeyword('while'); + + expect('('); + + test = parseExpression(); + + expect(')'); + + if (match(';')) { + lex(); + } + + return node.finishDoWhileStatement(body, test); + } + + function parseWhileStatement(node) { + var test, body, oldInIteration; + + expectKeyword('while'); + + expect('('); + + test = parseExpression(); + + expect(')'); + + oldInIteration = state.inIteration; + state.inIteration = true; + + body = parseStatement(); + + state.inIteration = oldInIteration; + + return node.finishWhileStatement(test, body); + } + + function parseForStatement(node) { + var init, initSeq, initStartToken, test, update, left, right, kind, declarations, + body, oldInIteration, previousAllowIn = state.allowIn; + + init = test = update = null; + + expectKeyword('for'); + + expect('('); + + if (match(';')) { + lex(); + } else { + if (matchKeyword('var')) { + init = new Node(); + lex(); + + state.allowIn = false; + init = init.finishVariableDeclaration(parseVariableDeclarationList()); + state.allowIn = previousAllowIn; + + if (init.declarations.length === 1 && matchKeyword('in')) { + lex(); + left = init; + right = parseExpression(); + init = null; + } else { + expect(';'); + } + } else if (matchKeyword('const') || matchKeyword('let')) { + init = new Node(); + kind = lex().value; + + state.allowIn = false; + declarations = parseBindingList(kind, {inFor: true}); + state.allowIn = previousAllowIn; + + if (declarations.length === 1 && declarations[0].init === null && matchKeyword('in')) { + init = init.finishLexicalDeclaration(declarations, kind); + lex(); + left = init; + right = parseExpression(); + init = null; + } else { + consumeSemicolon(); + init = init.finishLexicalDeclaration(declarations, kind); + } + } else { + initStartToken = lookahead; + state.allowIn = false; + init = inheritCoverGrammar(parseAssignmentExpression); + state.allowIn = previousAllowIn; + + if (matchKeyword('in')) { + if (!isAssignmentTarget) { + tolerateError(Messages.InvalidLHSInForIn); + } + + lex(); + reinterpretExpressionAsPattern(init); + left = init; + right = parseExpression(); + init = null; + } else { + if (match(',')) { + initSeq = [init]; + while (match(',')) { + lex(); + initSeq.push(isolateCoverGrammar(parseAssignmentExpression)); + } + init = new WrappingNode(initStartToken).finishSequenceExpression(initSeq); + } + expect(';'); + } + } + } + + if (typeof left === 'undefined') { + + if (!match(';')) { + test = parseExpression(); + } + expect(';'); + + if (!match(')')) { + update = parseExpression(); + } + } + + expect(')'); + + oldInIteration = state.inIteration; + state.inIteration = true; + + body = isolateCoverGrammar(parseStatement); + + state.inIteration = oldInIteration; + + return (typeof left === 'undefined') ? + node.finishForStatement(init, test, update, body) : + node.finishForInStatement(left, right, body); + } + + // 12.7 The continue statement + + function parseContinueStatement(node) { + var label = null, key; + + expectKeyword('continue'); + + // Optimize the most common form: 'continue;'. + if (source.charCodeAt(startIndex) === 0x3B) { + lex(); + + if (!state.inIteration) { + throwError(Messages.IllegalContinue); + } + + return node.finishContinueStatement(null); + } + + if (hasLineTerminator) { + if (!state.inIteration) { + throwError(Messages.IllegalContinue); + } + + return node.finishContinueStatement(null); + } + + if (lookahead.type === Token.Identifier) { + label = parseVariableIdentifier(); + + key = '$' + label.name; + if (!Object.prototype.hasOwnProperty.call(state.labelSet, key)) { + throwError(Messages.UnknownLabel, label.name); + } + } + + consumeSemicolon(); + + if (label === null && !state.inIteration) { + throwError(Messages.IllegalContinue); + } + + return node.finishContinueStatement(label); + } + + // 12.8 The break statement + + function parseBreakStatement(node) { + var label = null, key; + + expectKeyword('break'); + + // Catch the very common case first: immediately a semicolon (U+003B). + if (source.charCodeAt(lastIndex) === 0x3B) { + lex(); + + if (!(state.inIteration || state.inSwitch)) { + throwError(Messages.IllegalBreak); + } + + return node.finishBreakStatement(null); + } + + if (hasLineTerminator) { + if (!(state.inIteration || state.inSwitch)) { + throwError(Messages.IllegalBreak); + } + + return node.finishBreakStatement(null); + } + + if (lookahead.type === Token.Identifier) { + label = parseVariableIdentifier(); + + key = '$' + label.name; + if (!Object.prototype.hasOwnProperty.call(state.labelSet, key)) { + throwError(Messages.UnknownLabel, label.name); + } + } + + consumeSemicolon(); + + if (label === null && !(state.inIteration || state.inSwitch)) { + throwError(Messages.IllegalBreak); + } + + return node.finishBreakStatement(label); + } + + // 12.9 The return statement + + function parseReturnStatement(node) { + var argument = null; + + expectKeyword('return'); + + if (!state.inFunctionBody) { + tolerateError(Messages.IllegalReturn); + } + + // 'return' followed by a space and an identifier is very common. + if (source.charCodeAt(lastIndex) === 0x20) { + if (isIdentifierStart(source.charCodeAt(lastIndex + 1))) { + argument = parseExpression(); + consumeSemicolon(); + return node.finishReturnStatement(argument); + } + } + + if (hasLineTerminator) { + // HACK + return node.finishReturnStatement(null); + } + + if (!match(';')) { + if (!match('}') && lookahead.type !== Token.EOF) { + argument = parseExpression(); + } + } + + consumeSemicolon(); + + return node.finishReturnStatement(argument); + } + + // 12.10 The with statement + + function parseWithStatement(node) { + var object, body; + + if (strict) { + tolerateError(Messages.StrictModeWith); + } + + expectKeyword('with'); + + expect('('); + + object = parseExpression(); + + expect(')'); + + body = parseStatement(); + + return node.finishWithStatement(object, body); + } + + // 12.10 The swith statement + + function parseSwitchCase() { + var test, consequent = [], statement, node = new Node(); + + if (matchKeyword('default')) { + lex(); + test = null; + } else { + expectKeyword('case'); + test = parseExpression(); + } + expect(':'); + + while (startIndex < length) { + if (match('}') || matchKeyword('default') || matchKeyword('case')) { + break; + } + statement = parseStatementListItem(); + consequent.push(statement); + } + + return node.finishSwitchCase(test, consequent); + } + + function parseSwitchStatement(node) { + var discriminant, cases, clause, oldInSwitch, defaultFound; + + expectKeyword('switch'); + + expect('('); + + discriminant = parseExpression(); + + expect(')'); + + expect('{'); + + cases = []; + + if (match('}')) { + lex(); + return node.finishSwitchStatement(discriminant, cases); + } + + oldInSwitch = state.inSwitch; + state.inSwitch = true; + defaultFound = false; + + while (startIndex < length) { + if (match('}')) { + break; + } + clause = parseSwitchCase(); + if (clause.test === null) { + if (defaultFound) { + throwError(Messages.MultipleDefaultsInSwitch); + } + defaultFound = true; + } + cases.push(clause); + } + + state.inSwitch = oldInSwitch; + + expect('}'); + + return node.finishSwitchStatement(discriminant, cases); + } + + // 12.13 The throw statement + + function parseThrowStatement(node) { + var argument; + + expectKeyword('throw'); + + if (hasLineTerminator) { + throwError(Messages.NewlineAfterThrow); + } + + argument = parseExpression(); + + consumeSemicolon(); + + return node.finishThrowStatement(argument); + } + + // 12.14 The try statement + + function parseCatchClause() { + var param, body, node = new Node(); + + expectKeyword('catch'); + + expect('('); + if (match(')')) { + throwUnexpectedToken(lookahead); + } + + param = parsePattern(); + + // 12.14.1 + if (strict && isRestrictedWord(param.name)) { + tolerateError(Messages.StrictCatchVariable); + } + + expect(')'); + body = parseBlock(); + return node.finishCatchClause(param, body); + } + + function parseTryStatement(node) { + var block, handler = null, finalizer = null; + + expectKeyword('try'); + + block = parseBlock(); + + if (matchKeyword('catch')) { + handler = parseCatchClause(); + } + + if (matchKeyword('finally')) { + lex(); + finalizer = parseBlock(); + } + + if (!handler && !finalizer) { + throwError(Messages.NoCatchOrFinally); + } + + return node.finishTryStatement(block, handler, finalizer); + } + + // 12.15 The debugger statement + + function parseDebuggerStatement(node) { + expectKeyword('debugger'); + + consumeSemicolon(); + + return node.finishDebuggerStatement(); + } + + // 12 Statements + + function parseStatement() { + var type = lookahead.type, + expr, + labeledBody, + key, + node; + + if (type === Token.EOF) { + throwUnexpectedToken(lookahead); + } + + if (type === Token.Punctuator && lookahead.value === '{') { + return parseBlock(); + } + isAssignmentTarget = isBindingElement = true; + node = new Node(); + + if (type === Token.Punctuator) { + switch (lookahead.value) { + case ';': + return parseEmptyStatement(node); + case '(': + return parseExpressionStatement(node); + default: + break; + } + } else if (type === Token.Keyword) { + switch (lookahead.value) { + case 'break': + return parseBreakStatement(node); + case 'continue': + return parseContinueStatement(node); + case 'debugger': + return parseDebuggerStatement(node); + case 'do': + return parseDoWhileStatement(node); + case 'for': + return parseForStatement(node); + case 'function': + return parseFunctionDeclaration(node); + case 'if': + return parseIfStatement(node); + case 'return': + return parseReturnStatement(node); + case 'switch': + return parseSwitchStatement(node); + case 'throw': + return parseThrowStatement(node); + case 'try': + return parseTryStatement(node); + case 'var': + return parseVariableStatement(node); + case 'while': + return parseWhileStatement(node); + case 'with': + return parseWithStatement(node); + default: + break; + } + } + + expr = parseExpression(); + + // 12.12 Labelled Statements + if ((expr.type === Syntax.Identifier) && match(':')) { + lex(); + + key = '$' + expr.name; + if (Object.prototype.hasOwnProperty.call(state.labelSet, key)) { + throwError(Messages.Redeclaration, 'Label', expr.name); + } + + state.labelSet[key] = true; + labeledBody = parseStatement(); + delete state.labelSet[key]; + return node.finishLabeledStatement(expr, labeledBody); + } + + consumeSemicolon(); + + return node.finishExpressionStatement(expr); + } + + // 13 Function Definition + + function parseFunctionSourceElements() { + var statement, body = [], token, directive, firstRestricted, + oldLabelSet, oldInIteration, oldInSwitch, oldInFunctionBody, oldParenthesisCount, + node = new Node(); + + expect('{'); + + while (startIndex < length) { + if (lookahead.type !== Token.StringLiteral) { + break; + } + token = lookahead; + + statement = parseStatementListItem(); + body.push(statement); + if (statement.expression.type !== Syntax.Literal) { + // this is not directive + break; + } + directive = source.slice(token.start + 1, token.end - 1); + if (directive === 'use strict') { + strict = true; + if (firstRestricted) { + tolerateUnexpectedToken(firstRestricted, Messages.StrictOctalLiteral); + } + } else { + if (!firstRestricted && token.octal) { + firstRestricted = token; + } + } + } + + oldLabelSet = state.labelSet; + oldInIteration = state.inIteration; + oldInSwitch = state.inSwitch; + oldInFunctionBody = state.inFunctionBody; + oldParenthesisCount = state.parenthesizedCount; + + state.labelSet = {}; + state.inIteration = false; + state.inSwitch = false; + state.inFunctionBody = true; + state.parenthesizedCount = 0; + + while (startIndex < length) { + if (match('}')) { + break; + } + body.push(parseStatementListItem()); + } + + expect('}'); + + state.labelSet = oldLabelSet; + state.inIteration = oldInIteration; + state.inSwitch = oldInSwitch; + state.inFunctionBody = oldInFunctionBody; + state.parenthesizedCount = oldParenthesisCount; + + return node.finishBlockStatement(body); + } + + function validateParam(options, param, name) { + var key = '$' + name; + if (strict) { + if (isRestrictedWord(name)) { + options.stricted = param; + options.message = Messages.StrictParamName; + } + if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) { + options.stricted = param; + options.message = Messages.StrictParamDupe; + } + } else if (!options.firstRestricted) { + if (isRestrictedWord(name)) { + options.firstRestricted = param; + options.message = Messages.StrictParamName; + } else if (isStrictModeReservedWord(name)) { + options.firstRestricted = param; + options.message = Messages.StrictReservedWord; + } else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) { + options.firstRestricted = param; + options.message = Messages.StrictParamDupe; + } + } + options.paramSet[key] = true; + } + + function parseParam(options) { + var token, param, def; + + token = lookahead; + if (token.value === '...') { + param = parseRestElement(); + validateParam(options, param.argument, param.argument.name); + options.params.push(param); + options.defaults.push(null); + return false; + } + + param = parsePatternWithDefault(); + validateParam(options, token, token.value); + + if (param.type === Syntax.AssignmentPattern) { + def = param.right; + param = param.left; + ++options.defaultCount; + } + + options.params.push(param); + options.defaults.push(def); + + return !match(')'); + } + + function parseParams(firstRestricted) { + var options; + + options = { + params: [], + defaultCount: 0, + defaults: [], + firstRestricted: firstRestricted + }; + + expect('('); + + if (!match(')')) { + options.paramSet = {}; + while (startIndex < length) { + if (!parseParam(options)) { + break; + } + expect(','); + } + } + + expect(')'); + + if (options.defaultCount === 0) { + options.defaults = []; + } + + return { + params: options.params, + defaults: options.defaults, + stricted: options.stricted, + firstRestricted: options.firstRestricted, + message: options.message + }; + } + + function parseFunctionDeclaration(node, identifierIsOptional) { + var id = null, params = [], defaults = [], body, token, stricted, tmp, firstRestricted, message, previousStrict; + + expectKeyword('function'); + if (!identifierIsOptional || !match('(')) { + token = lookahead; + id = parseVariableIdentifier(); + if (strict) { + if (isRestrictedWord(token.value)) { + tolerateUnexpectedToken(token, Messages.StrictFunctionName); + } + } else { + if (isRestrictedWord(token.value)) { + firstRestricted = token; + message = Messages.StrictFunctionName; + } else if (isStrictModeReservedWord(token.value)) { + firstRestricted = token; + message = Messages.StrictReservedWord; + } + } + } + + tmp = parseParams(firstRestricted); + params = tmp.params; + defaults = tmp.defaults; + stricted = tmp.stricted; + firstRestricted = tmp.firstRestricted; + if (tmp.message) { + message = tmp.message; + } + + previousStrict = strict; + body = parseFunctionSourceElements(); + if (strict && firstRestricted) { + throwUnexpectedToken(firstRestricted, message); + } + if (strict && stricted) { + tolerateUnexpectedToken(stricted, message); + } + strict = previousStrict; + + return node.finishFunctionDeclaration(id, params, defaults, body); + } + + function parseFunctionExpression() { + var token, id = null, stricted, firstRestricted, message, tmp, + params = [], defaults = [], body, previousStrict, node = new Node(); + + expectKeyword('function'); + + if (!match('(')) { + token = lookahead; + id = parseVariableIdentifier(); + if (strict) { + if (isRestrictedWord(token.value)) { + tolerateUnexpectedToken(token, Messages.StrictFunctionName); + } + } else { + if (isRestrictedWord(token.value)) { + firstRestricted = token; + message = Messages.StrictFunctionName; + } else if (isStrictModeReservedWord(token.value)) { + firstRestricted = token; + message = Messages.StrictReservedWord; + } + } + } + + tmp = parseParams(firstRestricted); + params = tmp.params; + defaults = tmp.defaults; + stricted = tmp.stricted; + firstRestricted = tmp.firstRestricted; + if (tmp.message) { + message = tmp.message; + } + + previousStrict = strict; + body = parseFunctionSourceElements(); + if (strict && firstRestricted) { + throwUnexpectedToken(firstRestricted, message); + } + if (strict && stricted) { + tolerateUnexpectedToken(stricted, message); + } + strict = previousStrict; + + return node.finishFunctionExpression(id, params, defaults, body); + } + + + function parseClassBody() { + var classBody, token, isStatic, hasConstructor = false, body, method, computed, key; + + classBody = new Node(); + + expect('{'); + body = []; + while (!match('}')) { + if (match(';')) { + lex(); + } else { + method = new Node(); + token = lookahead; + isStatic = false; + computed = match('['); + key = parseObjectPropertyKey(); + if (key.name === 'static' && lookaheadPropertyName()) { + token = lookahead; + isStatic = true; + computed = match('['); + key = parseObjectPropertyKey(); + } + method = tryParseMethodDefinition(token, key, computed, method); + if (method) { + method['static'] = isStatic; + if (method.kind === 'init') { + method.kind = 'method'; + } + if (!isStatic) { + if (!method.computed && (method.key.name || method.key.value.toString()) === 'constructor') { + if (method.kind !== 'method' || !method.method || method.value.generator) { + throwUnexpectedToken(token, Messages.ConstructorSpecialMethod); + } + if (hasConstructor) { + throwUnexpectedToken(token, Messages.DuplicateConstructor); + } else { + hasConstructor = true; + } + method.kind = 'constructor'; + } + } else { + if (!method.computed && (method.key.name || method.key.value.toString()) === 'prototype') { + throwUnexpectedToken(token, Messages.StaticPrototype); + } + } + method.type = Syntax.MethodDefinition; + delete method.method; + delete method.shorthand; + body.push(method); + } else { + throwUnexpectedToken(lookahead); + } + } + } + lex(); + return classBody.finishClassBody(body); + } + + function parseClassDeclaration(identifierIsOptional) { + var id = null, superClass = null, classNode = new Node(), classBody, previousStrict = strict; + strict = true; + + expectKeyword('class'); + + if (!identifierIsOptional || lookahead.type === Token.Identifier) { + id = parseVariableIdentifier(); + } + + if (matchKeyword('extends')) { + lex(); + superClass = isolateCoverGrammar(parseLeftHandSideExpressionAllowCall); + } + classBody = parseClassBody(); + strict = previousStrict; + + return classNode.finishClassDeclaration(id, superClass, classBody); + } + + function parseClassExpression() { + var id = null, superClass = null, classNode = new Node(), classBody, previousStrict = strict; + strict = true; + + expectKeyword('class'); + + if (lookahead.type === Token.Identifier) { + id = parseVariableIdentifier(); + } + + if (matchKeyword('extends')) { + lex(); + superClass = isolateCoverGrammar(parseLeftHandSideExpressionAllowCall); + } + classBody = parseClassBody(); + strict = previousStrict; + + return classNode.finishClassExpression(id, superClass, classBody); + } + + // Modules grammar from: + // people.mozilla.org/~jorendorff/es6-draft.html + + function parseModuleSpecifier() { + var node = new Node(); + + if (lookahead.type !== Token.StringLiteral) { + throwError(Messages.InvalidModuleSpecifier); + } + return node.finishLiteral(lex()); + } + + function parseExportSpecifier() { + var exported, local, node = new Node(), def; + if (matchKeyword('default')) { + // export {default} from 'something'; + def = new Node(); + lex(); + local = def.finishIdentifier('default'); + } else { + local = parseVariableIdentifier(); + } + if (matchContextualKeyword('as')) { + lex(); + exported = parseNonComputedProperty(); + } + return node.finishExportSpecifier(local, exported); + } + + function parseExportNamedDeclaration(node) { + var declaration = null, + isExportFromIdentifier, + src = null, specifiers = []; + + // non-default export + if (lookahead.type === Token.Keyword) { + // covers: + // export var f = 1; + switch (lookahead.value) { + case 'let': + case 'const': + case 'var': + case 'class': + case 'function': + declaration = parseStatementListItem(); + return node.finishExportNamedDeclaration(declaration, specifiers, null); + } + } + + expect('{'); + if (!match('}')) { + do { + isExportFromIdentifier = isExportFromIdentifier || matchKeyword('default'); + specifiers.push(parseExportSpecifier()); + } while (match(',') && lex()); + } + expect('}'); + + if (matchContextualKeyword('from')) { + // covering: + // export {default} from 'foo'; + // export {foo} from 'foo'; + lex(); + src = parseModuleSpecifier(); + consumeSemicolon(); + } else if (isExportFromIdentifier) { + // covering: + // export {default}; // missing fromClause + throwError(lookahead.value ? + Messages.UnexpectedToken : Messages.MissingFromClause, lookahead.value); + } else { + // cover + // export {foo}; + consumeSemicolon(); + } + return node.finishExportNamedDeclaration(declaration, specifiers, src); + } + + function parseExportDefaultDeclaration(node) { + var declaration = null, + expression = null; + + // covers: + // export default ... + expectKeyword('default'); + + if (matchKeyword('function')) { + // covers: + // export default function foo () {} + // export default function () {} + declaration = parseFunctionDeclaration(new Node(), true); + return node.finishExportDefaultDeclaration(declaration); + } + if (matchKeyword('class')) { + declaration = parseClassDeclaration(true); + return node.finishExportDefaultDeclaration(declaration); + } + + if (matchContextualKeyword('from')) { + throwError(Messages.UnexpectedToken, lookahead.value); + } + + // covers: + // export default {}; + // export default []; + // export default (1 + 2); + if (match('{')) { + expression = parseObjectInitialiser(); + } else if (match('[')) { + expression = parseArrayInitialiser(); + } else { + expression = parseAssignmentExpression(); + } + consumeSemicolon(); + return node.finishExportDefaultDeclaration(expression); + } + + function parseExportAllDeclaration(node) { + var src; + + // covers: + // export * from 'foo'; + expect('*'); + if (!matchContextualKeyword('from')) { + throwError(lookahead.value ? + Messages.UnexpectedToken : Messages.MissingFromClause, lookahead.value); + } + lex(); + src = parseModuleSpecifier(); + consumeSemicolon(); + + return node.finishExportAllDeclaration(src); + } + + function parseExportDeclaration() { + var node = new Node(); + if (state.inFunctionBody) { + throwError(Messages.IllegalExportDeclaration); + } + + expectKeyword('export'); + + if (matchKeyword('default')) { + return parseExportDefaultDeclaration(node); + } + if (match('*')) { + return parseExportAllDeclaration(node); + } + return parseExportNamedDeclaration(node); + } + + function parseImportSpecifier() { + // import {<foo as bar>} ...; + var local, imported, node = new Node(); + + imported = parseNonComputedProperty(); + if (matchContextualKeyword('as')) { + lex(); + local = parseVariableIdentifier(); + } + + return node.finishImportSpecifier(local, imported); + } + + function parseNamedImports() { + var specifiers = []; + // {foo, bar as bas} + expect('{'); + if (!match('}')) { + do { + specifiers.push(parseImportSpecifier()); + } while (match(',') && lex()); + } + expect('}'); + return specifiers; + } + + function parseImportDefaultSpecifier() { + // import <foo> ...; + var local, node = new Node(); + + local = parseNonComputedProperty(); + + return node.finishImportDefaultSpecifier(local); + } + + function parseImportNamespaceSpecifier() { + // import <* as foo> ...; + var local, node = new Node(); + + expect('*'); + if (!matchContextualKeyword('as')) { + throwError(Messages.NoAsAfterImportNamespace); + } + lex(); + local = parseNonComputedProperty(); + + return node.finishImportNamespaceSpecifier(local); + } + + function parseImportDeclaration() { + var specifiers, src, node = new Node(); + + if (state.inFunctionBody) { + throwError(Messages.IllegalImportDeclaration); + } + + expectKeyword('import'); + specifiers = []; + + if (lookahead.type === Token.StringLiteral) { + // covers: + // import 'foo'; + src = parseModuleSpecifier(); + consumeSemicolon(); + return node.finishImportDeclaration(specifiers, src); + } + + if (!matchKeyword('default') && isIdentifierName(lookahead)) { + // covers: + // import foo + // import foo, ... + specifiers.push(parseImportDefaultSpecifier()); + if (match(',')) { + lex(); + } + } + if (match('*')) { + // covers: + // import foo, * as foo + // import * as foo + specifiers.push(parseImportNamespaceSpecifier()); + } else if (match('{')) { + // covers: + // import foo, {bar} + // import {bar} + specifiers = specifiers.concat(parseNamedImports()); + } + + if (!matchContextualKeyword('from')) { + throwError(lookahead.value ? + Messages.UnexpectedToken : Messages.MissingFromClause, lookahead.value); + } + lex(); + src = parseModuleSpecifier(); + consumeSemicolon(); + + return node.finishImportDeclaration(specifiers, src); + } + + // 14 Program + + function parseScriptBody() { + var statement, body = [], token, directive, firstRestricted; + + while (startIndex < length) { + token = lookahead; + if (token.type !== Token.StringLiteral) { + break; + } + + statement = parseStatementListItem(); + body.push(statement); + if (statement.expression.type !== Syntax.Literal) { + // this is not directive + break; + } + directive = source.slice(token.start + 1, token.end - 1); + if (directive === 'use strict') { + strict = true; + if (firstRestricted) { + tolerateUnexpectedToken(firstRestricted, Messages.StrictOctalLiteral); + } + } else { + if (!firstRestricted && token.octal) { + firstRestricted = token; + } + } + } + + while (startIndex < length) { + statement = parseStatementListItem(); + /* istanbul ignore if */ + if (typeof statement === 'undefined') { + break; + } + body.push(statement); + } + return body; + } + + function parseProgram() { + var body, node; + + peek(); + node = new Node(); + + body = parseScriptBody(); + return node.finishProgram(body); + } + + function filterTokenLocation() { + var i, entry, token, tokens = []; + + for (i = 0; i < extra.tokens.length; ++i) { + entry = extra.tokens[i]; + token = { + type: entry.type, + value: entry.value + }; + if (entry.regex) { + token.regex = { + pattern: entry.regex.pattern, + flags: entry.regex.flags + }; + } + if (extra.range) { + token.range = entry.range; + } + if (extra.loc) { + token.loc = entry.loc; + } + tokens.push(token); + } + + extra.tokens = tokens; + } + + function tokenize(code, options) { + var toString, + tokens; + + toString = String; + if (typeof code !== 'string' && !(code instanceof String)) { + code = toString(code); + } + + source = code; + index = 0; + lineNumber = (source.length > 0) ? 1 : 0; + lineStart = 0; + startIndex = index; + startLineNumber = lineNumber; + startLineStart = lineStart; + length = source.length; + lookahead = null; + state = { + allowIn: true, + labelSet: {}, + inFunctionBody: false, + inIteration: false, + inSwitch: false, + lastCommentStart: -1, + curlyStack: [] + }; + + extra = {}; + + // Options matching. + options = options || {}; + + // Of course we collect tokens here. + options.tokens = true; + extra.tokens = []; + extra.tokenize = true; + // The following two fields are necessary to compute the Regex tokens. + extra.openParenToken = -1; + extra.openCurlyToken = -1; + + extra.range = (typeof options.range === 'boolean') && options.range; + extra.loc = (typeof options.loc === 'boolean') && options.loc; + + if (typeof options.comment === 'boolean' && options.comment) { + extra.comments = []; + } + if (typeof options.tolerant === 'boolean' && options.tolerant) { + extra.errors = []; + } + + try { + peek(); + if (lookahead.type === Token.EOF) { + return extra.tokens; + } + + lex(); + while (lookahead.type !== Token.EOF) { + try { + lex(); + } catch (lexError) { + if (extra.errors) { + recordError(lexError); + // We have to break on the first error + // to avoid infinite loops. + break; + } else { + throw lexError; + } + } + } + + filterTokenLocation(); + tokens = extra.tokens; + if (typeof extra.comments !== 'undefined') { + tokens.comments = extra.comments; + } + if (typeof extra.errors !== 'undefined') { + tokens.errors = extra.errors; + } + } catch (e) { + throw e; + } finally { + extra = {}; + } + return tokens; + } + + function parse(code, options) { + var program, toString; + + toString = String; + if (typeof code !== 'string' && !(code instanceof String)) { + code = toString(code); + } + + source = code; + index = 0; + lineNumber = (source.length > 0) ? 1 : 0; + lineStart = 0; + startIndex = index; + startLineNumber = lineNumber; + startLineStart = lineStart; + length = source.length; + lookahead = null; + state = { + allowIn: true, + labelSet: {}, + inFunctionBody: false, + inIteration: false, + inSwitch: false, + lastCommentStart: -1, + curlyStack: [] + }; + sourceType = 'script'; + strict = false; + + extra = {}; + if (typeof options !== 'undefined') { + extra.range = (typeof options.range === 'boolean') && options.range; + extra.loc = (typeof options.loc === 'boolean') && options.loc; + extra.attachComment = (typeof options.attachComment === 'boolean') && options.attachComment; + + if (extra.loc && options.source !== null && options.source !== undefined) { + extra.source = toString(options.source); + } + + if (typeof options.tokens === 'boolean' && options.tokens) { + extra.tokens = []; + } + if (typeof options.comment === 'boolean' && options.comment) { + extra.comments = []; + } + if (typeof options.tolerant === 'boolean' && options.tolerant) { + extra.errors = []; + } + if (extra.attachComment) { + extra.range = true; + extra.comments = []; + extra.bottomRightStack = []; + extra.trailingComments = []; + extra.leadingComments = []; + } + if (options.sourceType === 'module') { + // very restrictive condition for now + sourceType = options.sourceType; + strict = true; + } + } + + try { + program = parseProgram(); + if (typeof extra.comments !== 'undefined') { + program.comments = extra.comments; + } + if (typeof extra.tokens !== 'undefined') { + filterTokenLocation(); + program.tokens = extra.tokens; + } + if (typeof extra.errors !== 'undefined') { + program.errors = extra.errors; + } + } catch (e) { + throw e; + } finally { + extra = {}; + } + + return program; + } + + // Sync with *.json manifests. + exports.version = '2.2.0'; + + exports.tokenize = tokenize; + + exports.parse = parse; + + // Deep copy. + /* istanbul ignore next */ + exports.Syntax = (function () { + var name, types = {}; + + if (typeof Object.create === 'function') { + types = Object.create(null); + } + + for (name in Syntax) { + if (Syntax.hasOwnProperty(name)) { + types[name] = Syntax[name]; + } + } + + if (typeof Object.freeze === 'function') { + Object.freeze(types); + } + + return types; + }()); + +})); +/* vim: set sw=4 ts=4 et tw=80 : */ + +},{}],52:[function(require,module,exports){ +var baseIndexOf = require('../internal/baseIndexOf'), + binaryIndex = require('../internal/binaryIndex'); + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Gets the index at which the first occurrence of `value` is found in `array` + * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) + * for equality comparisons. If `fromIndex` is negative, it is used as the offset + * from the end of `array`. If `array` is sorted providing `true` for `fromIndex` + * performs a faster binary search. + * + * @static + * @memberOf _ + * @category Array + * @param {Array} array The array to search. + * @param {*} value The value to search for. + * @param {boolean|number} [fromIndex=0] The index to search from or `true` + * to perform a binary search on a sorted array. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.indexOf([1, 2, 1, 2], 2); + * // => 1 + * + * // using `fromIndex` + * _.indexOf([1, 2, 1, 2], 2, 2); + * // => 3 + * + * // performing a binary search + * _.indexOf([1, 1, 2, 2], 2, true); + * // => 2 + */ +function indexOf(array, value, fromIndex) { + var length = array ? array.length : 0; + if (!length) { + return -1; + } + if (typeof fromIndex == 'number') { + fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : fromIndex; + } else if (fromIndex) { + var index = binaryIndex(array, value); + if (index < length && + (value === value ? (value === array[index]) : (array[index] !== array[index]))) { + return index; + } + return -1; + } + return baseIndexOf(array, value, fromIndex || 0); +} + +module.exports = indexOf; + +},{"../internal/baseIndexOf":81,"../internal/binaryIndex":95}],53:[function(require,module,exports){ +/** + * Gets the last element of `array`. + * + * @static + * @memberOf _ + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the last element of `array`. + * @example + * + * _.last([1, 2, 3]); + * // => 3 + */ +function last(array) { + var length = array ? array.length : 0; + return length ? array[length - 1] : undefined; +} + +module.exports = last; + +},{}],54:[function(require,module,exports){ +var LazyWrapper = require('../internal/LazyWrapper'), + LodashWrapper = require('../internal/LodashWrapper'), + baseLodash = require('../internal/baseLodash'), + isArray = require('../lang/isArray'), + isObjectLike = require('../internal/isObjectLike'), + wrapperClone = require('../internal/wrapperClone'); + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Creates a `lodash` object which wraps `value` to enable implicit chaining. + * Methods that operate on and return arrays, collections, and functions can + * be chained together. Methods that retrieve a single value or may return a + * primitive value will automatically end the chain returning the unwrapped + * value. Explicit chaining may be enabled using `_.chain`. The execution of + * chained methods is lazy, that is, execution is deferred until `_#value` + * is implicitly or explicitly called. + * + * Lazy evaluation allows several methods to support shortcut fusion. Shortcut + * fusion is an optimization strategy which merge iteratee calls; this can help + * to avoid the creation of intermediate data structures and greatly reduce the + * number of iteratee executions. + * + * Chaining is supported in custom builds as long as the `_#value` method is + * directly or indirectly included in the build. + * + * In addition to lodash methods, wrappers have `Array` and `String` methods. + * + * The wrapper `Array` methods are: + * `concat`, `join`, `pop`, `push`, `reverse`, `shift`, `slice`, `sort`, + * `splice`, and `unshift` + * + * The wrapper `String` methods are: + * `replace` and `split` + * + * The wrapper methods that support shortcut fusion are: + * `compact`, `drop`, `dropRight`, `dropRightWhile`, `dropWhile`, `filter`, + * `first`, `initial`, `last`, `map`, `pluck`, `reject`, `rest`, `reverse`, + * `slice`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, `toArray`, + * and `where` + * + * The chainable wrapper methods are: + * `after`, `ary`, `assign`, `at`, `before`, `bind`, `bindAll`, `bindKey`, + * `callback`, `chain`, `chunk`, `commit`, `compact`, `concat`, `constant`, + * `countBy`, `create`, `curry`, `debounce`, `defaults`, `defaultsDeep`, + * `defer`, `delay`, `difference`, `drop`, `dropRight`, `dropRightWhile`, + * `dropWhile`, `fill`, `filter`, `flatten`, `flattenDeep`, `flow`, `flowRight`, + * `forEach`, `forEachRight`, `forIn`, `forInRight`, `forOwn`, `forOwnRight`, + * `functions`, `groupBy`, `indexBy`, `initial`, `intersection`, `invert`, + * `invoke`, `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, + * `matchesProperty`, `memoize`, `merge`, `method`, `methodOf`, `mixin`, + * `modArgs`, `negate`, `omit`, `once`, `pairs`, `partial`, `partialRight`, + * `partition`, `pick`, `plant`, `pluck`, `property`, `propertyOf`, `pull`, + * `pullAt`, `push`, `range`, `rearg`, `reject`, `remove`, `rest`, `restParam`, + * `reverse`, `set`, `shuffle`, `slice`, `sort`, `sortBy`, `sortByAll`, + * `sortByOrder`, `splice`, `spread`, `take`, `takeRight`, `takeRightWhile`, + * `takeWhile`, `tap`, `throttle`, `thru`, `times`, `toArray`, `toPlainObject`, + * `transform`, `union`, `uniq`, `unshift`, `unzip`, `unzipWith`, `values`, + * `valuesIn`, `where`, `without`, `wrap`, `xor`, `zip`, `zipObject`, `zipWith` + * + * The wrapper methods that are **not** chainable by default are: + * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clone`, `cloneDeep`, + * `deburr`, `endsWith`, `escape`, `escapeRegExp`, `every`, `find`, `findIndex`, + * `findKey`, `findLast`, `findLastIndex`, `findLastKey`, `findWhere`, `first`, + * `floor`, `get`, `gt`, `gte`, `has`, `identity`, `includes`, `indexOf`, + * `inRange`, `isArguments`, `isArray`, `isBoolean`, `isDate`, `isElement`, + * `isEmpty`, `isEqual`, `isError`, `isFinite` `isFunction`, `isMatch`, + * `isNative`, `isNaN`, `isNull`, `isNumber`, `isObject`, `isPlainObject`, + * `isRegExp`, `isString`, `isUndefined`, `isTypedArray`, `join`, `kebabCase`, + * `last`, `lastIndexOf`, `lt`, `lte`, `max`, `min`, `noConflict`, `noop`, + * `now`, `pad`, `padLeft`, `padRight`, `parseInt`, `pop`, `random`, `reduce`, + * `reduceRight`, `repeat`, `result`, `round`, `runInContext`, `shift`, `size`, + * `snakeCase`, `some`, `sortedIndex`, `sortedLastIndex`, `startCase`, + * `startsWith`, `sum`, `template`, `trim`, `trimLeft`, `trimRight`, `trunc`, + * `unescape`, `uniqueId`, `value`, and `words` + * + * The wrapper method `sample` will return a wrapped value when `n` is provided, + * otherwise an unwrapped value is returned. + * + * @name _ + * @constructor + * @category Chain + * @param {*} value The value to wrap in a `lodash` instance. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var wrapped = _([1, 2, 3]); + * + * // returns an unwrapped value + * wrapped.reduce(function(total, n) { + * return total + n; + * }); + * // => 6 + * + * // returns a wrapped value + * var squares = wrapped.map(function(n) { + * return n * n; + * }); + * + * _.isArray(squares); + * // => false + * + * _.isArray(squares.value()); + * // => true + */ +function lodash(value) { + if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { + if (value instanceof LodashWrapper) { + return value; + } + if (hasOwnProperty.call(value, '__chain__') && hasOwnProperty.call(value, '__wrapped__')) { + return wrapperClone(value); + } + } + return new LodashWrapper(value); +} + +// Ensure wrappers are instances of `baseLodash`. +lodash.prototype = baseLodash.prototype; + +module.exports = lodash; + +},{"../internal/LazyWrapper":63,"../internal/LodashWrapper":64,"../internal/baseLodash":85,"../internal/isObjectLike":129,"../internal/wrapperClone":140,"../lang/isArray":143}],55:[function(require,module,exports){ +module.exports = require('./forEach'); + +},{"./forEach":57}],56:[function(require,module,exports){ +var baseEach = require('../internal/baseEach'), + createFind = require('../internal/createFind'); + +/** + * Iterates over elements of `collection`, returning the first element + * `predicate` returns truthy for. The predicate is bound to `thisArg` and + * invoked with three arguments: (value, index|key, collection). + * + * If a property name is provided for `predicate` the created `_.property` + * style callback returns the property value of the given element. + * + * If a value is also provided for `thisArg` the created `_.matchesProperty` + * style callback returns `true` for elements that have a matching property + * value, else `false`. + * + * If an object is provided for `predicate` the created `_.matches` style + * callback returns `true` for elements that have the properties of the given + * object, else `false`. + * + * @static + * @memberOf _ + * @alias detect + * @category Collection + * @param {Array|Object|string} collection The collection to search. + * @param {Function|Object|string} [predicate=_.identity] The function invoked + * per iteration. + * @param {*} [thisArg] The `this` binding of `predicate`. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false }, + * { 'user': 'pebbles', 'age': 1, 'active': true } + * ]; + * + * _.result(_.find(users, function(chr) { + * return chr.age < 40; + * }), 'user'); + * // => 'barney' + * + * // using the `_.matches` callback shorthand + * _.result(_.find(users, { 'age': 1, 'active': true }), 'user'); + * // => 'pebbles' + * + * // using the `_.matchesProperty` callback shorthand + * _.result(_.find(users, 'active', false), 'user'); + * // => 'fred' + * + * // using the `_.property` callback shorthand + * _.result(_.find(users, 'active'), 'user'); + * // => 'barney' + */ +var find = createFind(baseEach); + +module.exports = find; + +},{"../internal/baseEach":74,"../internal/createFind":105}],57:[function(require,module,exports){ +var arrayEach = require('../internal/arrayEach'), + baseEach = require('../internal/baseEach'), + createForEach = require('../internal/createForEach'); + +/** + * Iterates over elements of `collection` invoking `iteratee` for each element. + * The `iteratee` is bound to `thisArg` and invoked with three arguments: + * (value, index|key, collection). Iteratee functions may exit iteration early + * by explicitly returning `false`. + * + * **Note:** As with other "Collections" methods, objects with a "length" property + * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn` + * may be used for object iteration. + * + * @static + * @memberOf _ + * @alias each + * @category Collection + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [thisArg] The `this` binding of `iteratee`. + * @returns {Array|Object|string} Returns `collection`. + * @example + * + * _([1, 2]).forEach(function(n) { + * console.log(n); + * }).value(); + * // => logs each value from left to right and returns the array + * + * _.forEach({ 'a': 1, 'b': 2 }, function(n, key) { + * console.log(n, key); + * }); + * // => logs each value-key pair and returns the object (iteration order is not guaranteed) + */ +var forEach = createForEach(arrayEach, baseEach); + +module.exports = forEach; + +},{"../internal/arrayEach":66,"../internal/baseEach":74,"../internal/createForEach":106}],58:[function(require,module,exports){ +var baseIndexOf = require('../internal/baseIndexOf'), + getLength = require('../internal/getLength'), + isArray = require('../lang/isArray'), + isIterateeCall = require('../internal/isIterateeCall'), + isLength = require('../internal/isLength'), + isString = require('../lang/isString'), + values = require('../object/values'); + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Checks if `value` is in `collection` using + * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) + * for equality comparisons. If `fromIndex` is negative, it is used as the offset + * from the end of `collection`. + * + * @static + * @memberOf _ + * @alias contains, include + * @category Collection + * @param {Array|Object|string} collection The collection to search. + * @param {*} target The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @param- {Object} [guard] Enables use as a callback for functions like `_.reduce`. + * @returns {boolean} Returns `true` if a matching element is found, else `false`. + * @example + * + * _.includes([1, 2, 3], 1); + * // => true + * + * _.includes([1, 2, 3], 1, 2); + * // => false + * + * _.includes({ 'user': 'fred', 'age': 40 }, 'fred'); + * // => true + * + * _.includes('pebbles', 'eb'); + * // => true + */ +function includes(collection, target, fromIndex, guard) { + var length = collection ? getLength(collection) : 0; + if (!isLength(length)) { + collection = values(collection); + length = collection.length; + } + if (typeof fromIndex != 'number' || (guard && isIterateeCall(target, fromIndex, guard))) { + fromIndex = 0; + } else { + fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : (fromIndex || 0); + } + return (typeof collection == 'string' || !isArray(collection) && isString(collection)) + ? (fromIndex <= length && collection.indexOf(target, fromIndex) > -1) + : (!!length && baseIndexOf(collection, target, fromIndex) > -1); +} + +module.exports = includes; + +},{"../internal/baseIndexOf":81,"../internal/getLength":115,"../internal/isIterateeCall":125,"../internal/isLength":128,"../lang/isArray":143,"../lang/isString":149,"../object/values":155}],59:[function(require,module,exports){ +var arrayMap = require('../internal/arrayMap'), + baseCallback = require('../internal/baseCallback'), + baseMap = require('../internal/baseMap'), + isArray = require('../lang/isArray'); + +/** + * Creates an array of values by running each element in `collection` through + * `iteratee`. The `iteratee` is bound to `thisArg` and invoked with three + * arguments: (value, index|key, collection). + * + * If a property name is provided for `iteratee` the created `_.property` + * style callback returns the property value of the given element. + * + * If a value is also provided for `thisArg` the created `_.matchesProperty` + * style callback returns `true` for elements that have a matching property + * value, else `false`. + * + * If an object is provided for `iteratee` the created `_.matches` style + * callback returns `true` for elements that have the properties of the given + * object, else `false`. + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. + * + * The guarded methods are: + * `ary`, `callback`, `chunk`, `clone`, `create`, `curry`, `curryRight`, + * `drop`, `dropRight`, `every`, `fill`, `flatten`, `invert`, `max`, `min`, + * `parseInt`, `slice`, `sortBy`, `take`, `takeRight`, `template`, `trim`, + * `trimLeft`, `trimRight`, `trunc`, `random`, `range`, `sample`, `some`, + * `sum`, `uniq`, and `words` + * + * @static + * @memberOf _ + * @alias collect + * @category Collection + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function|Object|string} [iteratee=_.identity] The function invoked + * per iteration. + * @param {*} [thisArg] The `this` binding of `iteratee`. + * @returns {Array} Returns the new mapped array. + * @example + * + * function timesThree(n) { + * return n * 3; + * } + * + * _.map([1, 2], timesThree); + * // => [3, 6] + * + * _.map({ 'a': 1, 'b': 2 }, timesThree); + * // => [3, 6] (iteration order is not guaranteed) + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * // using the `_.property` callback shorthand + * _.map(users, 'user'); + * // => ['barney', 'fred'] + */ +function map(collection, iteratee, thisArg) { + var func = isArray(collection) ? arrayMap : baseMap; + iteratee = baseCallback(iteratee, thisArg, 3); + return func(collection, iteratee); +} + +module.exports = map; + +},{"../internal/arrayMap":67,"../internal/baseCallback":70,"../internal/baseMap":86,"../lang/isArray":143}],60:[function(require,module,exports){ +var getNative = require('../internal/getNative'); + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeNow = getNative(Date, 'now'); + +/** + * Gets the number of milliseconds that have elapsed since the Unix epoch + * (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @category Date + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => logs the number of milliseconds it took for the deferred function to be invoked + */ +var now = nativeNow || function() { + return new Date().getTime(); +}; + +module.exports = now; + +},{"../internal/getNative":117}],61:[function(require,module,exports){ +var createWrapper = require('../internal/createWrapper'), + replaceHolders = require('../internal/replaceHolders'), + restParam = require('./restParam'); + +/** Used to compose bitmasks for wrapper metadata. */ +var BIND_FLAG = 1, + PARTIAL_FLAG = 32; + +/** + * Creates a function that invokes `func` with the `this` binding of `thisArg` + * and prepends any additional `_.bind` arguments to those provided to the + * bound function. + * + * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, + * may be used as a placeholder for partially applied arguments. + * + * **Note:** Unlike native `Function#bind` this method does not set the "length" + * property of bound functions. + * + * @static + * @memberOf _ + * @category Function + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new bound function. + * @example + * + * var greet = function(greeting, punctuation) { + * return greeting + ' ' + this.user + punctuation; + * }; + * + * var object = { 'user': 'fred' }; + * + * var bound = _.bind(greet, object, 'hi'); + * bound('!'); + * // => 'hi fred!' + * + * // using placeholders + * var bound = _.bind(greet, object, _, '!'); + * bound('hi'); + * // => 'hi fred!' + */ +var bind = restParam(function(func, thisArg, partials) { + var bitmask = BIND_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, bind.placeholder); + bitmask |= PARTIAL_FLAG; + } + return createWrapper(func, bitmask, thisArg, partials, holders); +}); + +// Assign default placeholders. +bind.placeholder = {}; + +module.exports = bind; + +},{"../internal/createWrapper":109,"../internal/replaceHolders":135,"./restParam":62}],62:[function(require,module,exports){ +/** Used as the `TypeError` message for "Functions" methods. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Creates a function that invokes `func` with the `this` binding of the + * created function and arguments from `start` and beyond provided as an array. + * + * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters). + * + * @static + * @memberOf _ + * @category Function + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + * @example + * + * var say = _.restParam(function(what, names) { + * return what + ' ' + _.initial(names).join(', ') + + * (_.size(names) > 1 ? ', & ' : '') + _.last(names); + * }); + * + * say('hello', 'fred', 'barney', 'pebbles'); + * // => 'hello fred, barney, & pebbles' + */ +function restParam(func, start) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + rest = Array(length); + + while (++index < length) { + rest[index] = args[start + index]; + } + switch (start) { + case 0: return func.call(this, rest); + case 1: return func.call(this, args[0], rest); + case 2: return func.call(this, args[0], args[1], rest); + } + var otherArgs = Array(start + 1); + index = -1; + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = rest; + return func.apply(this, otherArgs); + }; +} + +module.exports = restParam; + +},{}],63:[function(require,module,exports){ +var baseCreate = require('./baseCreate'), + baseLodash = require('./baseLodash'); + +/** Used as references for `-Infinity` and `Infinity`. */ +var POSITIVE_INFINITY = Number.POSITIVE_INFINITY; + +/** + * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. + * + * @private + * @param {*} value The value to wrap. + */ +function LazyWrapper(value) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__dir__ = 1; + this.__filtered__ = false; + this.__iteratees__ = []; + this.__takeCount__ = POSITIVE_INFINITY; + this.__views__ = []; +} + +LazyWrapper.prototype = baseCreate(baseLodash.prototype); +LazyWrapper.prototype.constructor = LazyWrapper; + +module.exports = LazyWrapper; + +},{"./baseCreate":73,"./baseLodash":85}],64:[function(require,module,exports){ +var baseCreate = require('./baseCreate'), + baseLodash = require('./baseLodash'); + +/** + * The base constructor for creating `lodash` wrapper objects. + * + * @private + * @param {*} value The value to wrap. + * @param {boolean} [chainAll] Enable chaining for all wrapper methods. + * @param {Array} [actions=[]] Actions to peform to resolve the unwrapped value. + */ +function LodashWrapper(value, chainAll, actions) { + this.__wrapped__ = value; + this.__actions__ = actions || []; + this.__chain__ = !!chainAll; +} + +LodashWrapper.prototype = baseCreate(baseLodash.prototype); +LodashWrapper.prototype.constructor = LodashWrapper; + +module.exports = LodashWrapper; + +},{"./baseCreate":73,"./baseLodash":85}],65:[function(require,module,exports){ +/** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ +function arrayCopy(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; +} + +module.exports = arrayCopy; + +},{}],66:[function(require,module,exports){ +/** + * A specialized version of `_.forEach` for arrays without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ +function arrayEach(array, iteratee) { + var index = -1, + length = array.length; + + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; +} + +module.exports = arrayEach; + +},{}],67:[function(require,module,exports){ +/** + * A specialized version of `_.map` for arrays without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function arrayMap(array, iteratee) { + var index = -1, + length = array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; +} + +module.exports = arrayMap; + +},{}],68:[function(require,module,exports){ +/** + * A specialized version of `_.some` for arrays without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function arraySome(array, predicate) { + var index = -1, + length = array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; +} + +module.exports = arraySome; + +},{}],69:[function(require,module,exports){ +var baseCopy = require('./baseCopy'), + keys = require('../object/keys'); + +/** + * The base implementation of `_.assign` without support for argument juggling, + * multiple sources, and `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ +function baseAssign(object, source) { + return source == null + ? object + : baseCopy(source, keys(source), object); +} + +module.exports = baseAssign; + +},{"../object/keys":152,"./baseCopy":72}],70:[function(require,module,exports){ +var baseMatches = require('./baseMatches'), + baseMatchesProperty = require('./baseMatchesProperty'), + bindCallback = require('./bindCallback'), + identity = require('../utility/identity'), + property = require('../utility/property'); + +/** + * The base implementation of `_.callback` which supports specifying the + * number of arguments to provide to `func`. + * + * @private + * @param {*} [func=_.identity] The value to convert to a callback. + * @param {*} [thisArg] The `this` binding of `func`. + * @param {number} [argCount] The number of arguments to provide to `func`. + * @returns {Function} Returns the callback. + */ +function baseCallback(func, thisArg, argCount) { + var type = typeof func; + if (type == 'function') { + return thisArg === undefined + ? func + : bindCallback(func, thisArg, argCount); + } + if (func == null) { + return identity; + } + if (type == 'object') { + return baseMatches(func); + } + return thisArg === undefined + ? property(func) + : baseMatchesProperty(func, thisArg); +} + +module.exports = baseCallback; + +},{"../utility/identity":157,"../utility/property":159,"./baseMatches":87,"./baseMatchesProperty":88,"./bindCallback":97}],71:[function(require,module,exports){ +var arrayCopy = require('./arrayCopy'), + arrayEach = require('./arrayEach'), + baseAssign = require('./baseAssign'), + baseForOwn = require('./baseForOwn'), + initCloneArray = require('./initCloneArray'), + initCloneByTag = require('./initCloneByTag'), + initCloneObject = require('./initCloneObject'), + isArray = require('../lang/isArray'), + isHostObject = require('./isHostObject'), + isObject = require('../lang/isObject'); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to identify `toStringTag` values supported by `_.clone`. */ +var cloneableTags = {}; +cloneableTags[argsTag] = cloneableTags[arrayTag] = +cloneableTags[arrayBufferTag] = cloneableTags[boolTag] = +cloneableTags[dateTag] = cloneableTags[float32Tag] = +cloneableTags[float64Tag] = cloneableTags[int8Tag] = +cloneableTags[int16Tag] = cloneableTags[int32Tag] = +cloneableTags[numberTag] = cloneableTags[objectTag] = +cloneableTags[regexpTag] = cloneableTags[stringTag] = +cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = +cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; +cloneableTags[errorTag] = cloneableTags[funcTag] = +cloneableTags[mapTag] = cloneableTags[setTag] = +cloneableTags[weakMapTag] = false; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** + * The base implementation of `_.clone` without support for argument juggling + * and `this` binding `customizer` functions. + * + * @private + * @param {*} value The value to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @param {Function} [customizer] The function to customize cloning values. + * @param {string} [key] The key of `value`. + * @param {Object} [object] The object `value` belongs to. + * @param {Array} [stackA=[]] Tracks traversed source objects. + * @param {Array} [stackB=[]] Associates clones with source counterparts. + * @returns {*} Returns the cloned value. + */ +function baseClone(value, isDeep, customizer, key, object, stackA, stackB) { + var result; + if (customizer) { + result = object ? customizer(value, key, object) : customizer(value); + } + if (result !== undefined) { + return result; + } + if (!isObject(value)) { + return value; + } + var isArr = isArray(value); + if (isArr) { + result = initCloneArray(value); + if (!isDeep) { + return arrayCopy(value, result); + } + } else { + var tag = objToString.call(value), + isFunc = tag == funcTag; + + if (tag == objectTag || tag == argsTag || (isFunc && !object)) { + if (isHostObject(value)) { + return object ? value : {}; + } + result = initCloneObject(isFunc ? {} : value); + if (!isDeep) { + return baseAssign(result, value); + } + } else { + return cloneableTags[tag] + ? initCloneByTag(value, tag, isDeep) + : (object ? value : {}); + } + } + // Check for circular references and return its corresponding clone. + stackA || (stackA = []); + stackB || (stackB = []); + + var length = stackA.length; + while (length--) { + if (stackA[length] == value) { + return stackB[length]; + } + } + // Add the source value to the stack of traversed objects and associate it with its clone. + stackA.push(value); + stackB.push(result); + + // Recursively populate clone (susceptible to call stack limits). + (isArr ? arrayEach : baseForOwn)(value, function(subValue, key) { + result[key] = baseClone(subValue, isDeep, customizer, key, value, stackA, stackB); + }); + return result; +} + +module.exports = baseClone; + +},{"../lang/isArray":143,"../lang/isObject":147,"./arrayCopy":65,"./arrayEach":66,"./baseAssign":69,"./baseForOwn":79,"./initCloneArray":119,"./initCloneByTag":120,"./initCloneObject":121,"./isHostObject":123}],72:[function(require,module,exports){ +/** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property names to copy. + * @param {Object} [object={}] The object to copy properties to. + * @returns {Object} Returns `object`. + */ +function baseCopy(source, props, object) { + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + object[key] = source[key]; + } + return object; +} + +module.exports = baseCopy; + +},{}],73:[function(require,module,exports){ +var isObject = require('../lang/isObject'); + +/** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} prototype The object to inherit from. + * @returns {Object} Returns the new object. + */ +var baseCreate = (function() { + function object() {} + return function(prototype) { + if (isObject(prototype)) { + object.prototype = prototype; + var result = new object; + object.prototype = undefined; + } + return result || {}; + }; +}()); + +module.exports = baseCreate; + +},{"../lang/isObject":147}],74:[function(require,module,exports){ +var baseForOwn = require('./baseForOwn'), + createBaseEach = require('./createBaseEach'); + +/** + * The base implementation of `_.forEach` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object|string} Returns `collection`. + */ +var baseEach = createBaseEach(baseForOwn); + +module.exports = baseEach; + +},{"./baseForOwn":79,"./createBaseEach":101}],75:[function(require,module,exports){ +/** + * The base implementation of `_.find`, `_.findLast`, `_.findKey`, and `_.findLastKey`, + * without support for callback shorthands and `this` binding, which iterates + * over `collection` using the provided `eachFunc`. + * + * @private + * @param {Array|Object|string} collection The collection to search. + * @param {Function} predicate The function invoked per iteration. + * @param {Function} eachFunc The function to iterate over `collection`. + * @param {boolean} [retKey] Specify returning the key of the found element + * instead of the element itself. + * @returns {*} Returns the found element or its key, else `undefined`. + */ +function baseFind(collection, predicate, eachFunc, retKey) { + var result; + eachFunc(collection, function(value, key, collection) { + if (predicate(value, key, collection)) { + result = retKey ? key : value; + return false; + } + }); + return result; +} + +module.exports = baseFind; + +},{}],76:[function(require,module,exports){ +/** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for callback shorthands and `this` binding. + * + * @private + * @param {Array} array The array to search. + * @param {Function} predicate The function invoked per iteration. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseFindIndex(array, predicate, fromRight) { + var length = array.length, + index = fromRight ? length : -1; + + while ((fromRight ? index-- : ++index < length)) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; +} + +module.exports = baseFindIndex; + +},{}],77:[function(require,module,exports){ +var createBaseFor = require('./createBaseFor'); + +/** + * The base implementation of `baseForIn` and `baseForOwn` which iterates + * over `object` properties returned by `keysFunc` invoking `iteratee` for + * each property. Iteratee functions may exit iteration early by explicitly + * returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ +var baseFor = createBaseFor(); + +module.exports = baseFor; + +},{"./createBaseFor":102}],78:[function(require,module,exports){ +var baseFor = require('./baseFor'), + keysIn = require('../object/keysIn'); + +/** + * The base implementation of `_.forIn` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ +function baseForIn(object, iteratee) { + return baseFor(object, iteratee, keysIn); +} + +module.exports = baseForIn; + +},{"../object/keysIn":153,"./baseFor":77}],79:[function(require,module,exports){ +var baseFor = require('./baseFor'), + keys = require('../object/keys'); + +/** + * The base implementation of `_.forOwn` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ +function baseForOwn(object, iteratee) { + return baseFor(object, iteratee, keys); +} + +module.exports = baseForOwn; + +},{"../object/keys":152,"./baseFor":77}],80:[function(require,module,exports){ +var toObject = require('./toObject'); + +/** + * The base implementation of `get` without support for string paths + * and default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array} path The path of the property to get. + * @param {string} [pathKey] The key representation of path. + * @returns {*} Returns the resolved value. + */ +function baseGet(object, path, pathKey) { + if (object == null) { + return; + } + object = toObject(object); + if (pathKey !== undefined && pathKey in object) { + path = [pathKey]; + } + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = toObject(object)[path[index++]]; + } + return (index && index == length) ? object : undefined; +} + +module.exports = baseGet; + +},{"./toObject":138}],81:[function(require,module,exports){ +var indexOfNaN = require('./indexOfNaN'); + +/** + * The base implementation of `_.indexOf` without support for binary searches. + * + * @private + * @param {Array} array The array to search. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseIndexOf(array, value, fromIndex) { + if (value !== value) { + return indexOfNaN(array, fromIndex); + } + var index = fromIndex - 1, + length = array.length; + + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; +} + +module.exports = baseIndexOf; + +},{"./indexOfNaN":118}],82:[function(require,module,exports){ +var baseIsEqualDeep = require('./baseIsEqualDeep'), + isObject = require('../lang/isObject'), + isObjectLike = require('./isObjectLike'); + +/** + * The base implementation of `_.isEqual` without support for `this` binding + * `customizer` functions. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {Function} [customizer] The function to customize comparing values. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA] Tracks traversed `value` objects. + * @param {Array} [stackB] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ +function baseIsEqual(value, other, customizer, isLoose, stackA, stackB) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB); +} + +module.exports = baseIsEqual; + +},{"../lang/isObject":147,"./baseIsEqualDeep":83,"./isObjectLike":129}],83:[function(require,module,exports){ +var equalArrays = require('./equalArrays'), + equalByTag = require('./equalByTag'), + equalObjects = require('./equalObjects'), + isArray = require('../lang/isArray'), + isHostObject = require('./isHostObject'), + isTypedArray = require('../lang/isTypedArray'); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + objectTag = '[object Object]'; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Function} [customizer] The function to customize comparing objects. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA=[]] Tracks traversed `value` objects. + * @param {Array} [stackB=[]] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = arrayTag, + othTag = arrayTag; + + if (!objIsArr) { + objTag = objToString.call(object); + if (objTag == argsTag) { + objTag = objectTag; + } else if (objTag != objectTag) { + objIsArr = isTypedArray(object); + } + } + if (!othIsArr) { + othTag = objToString.call(other); + if (othTag == argsTag) { + othTag = objectTag; + } else if (othTag != objectTag) { + othIsArr = isTypedArray(other); + } + } + var objIsObj = objTag == objectTag && !isHostObject(object), + othIsObj = othTag == objectTag && !isHostObject(other), + isSameTag = objTag == othTag; + + if (isSameTag && !(objIsArr || objIsObj)) { + return equalByTag(object, other, objTag); + } + if (!isLoose) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, isLoose, stackA, stackB); + } + } + if (!isSameTag) { + return false; + } + // Assume cyclic values are equal. + // For more information on detecting circular references see https://es5.github.io/#JO. + stackA || (stackA = []); + stackB || (stackB = []); + + var length = stackA.length; + while (length--) { + if (stackA[length] == object) { + return stackB[length] == other; + } + } + // Add `object` and `other` to the stack of traversed objects. + stackA.push(object); + stackB.push(other); + + var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB); + + stackA.pop(); + stackB.pop(); + + return result; +} + +module.exports = baseIsEqualDeep; + +},{"../lang/isArray":143,"../lang/isTypedArray":150,"./equalArrays":110,"./equalByTag":111,"./equalObjects":112,"./isHostObject":123}],84:[function(require,module,exports){ +var baseIsEqual = require('./baseIsEqual'), + toObject = require('./toObject'); + +/** + * The base implementation of `_.isMatch` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Object} object The object to inspect. + * @param {Array} matchData The propery names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparing objects. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ +function baseIsMatch(object, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; + + if (object == null) { + return !length; + } + object = toObject(object); + while (index--) { + var data = matchData[index]; + if ((noCustomizer && data[2]) + ? data[1] !== object[data[0]] + : !(data[0] in object) + ) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; + + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var result = customizer ? customizer(objValue, srcValue, key) : undefined; + if (!(result === undefined ? baseIsEqual(srcValue, objValue, customizer, true) : result)) { + return false; + } + } + } + return true; +} + +module.exports = baseIsMatch; + +},{"./baseIsEqual":82,"./toObject":138}],85:[function(require,module,exports){ +/** + * The function whose prototype all chaining wrappers inherit from. + * + * @private + */ +function baseLodash() { + // No operation performed. +} + +module.exports = baseLodash; + +},{}],86:[function(require,module,exports){ +var baseEach = require('./baseEach'), + isArrayLike = require('./isArrayLike'); + +/** + * The base implementation of `_.map` without support for callback shorthands + * and `this` binding. + * + * @private + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function baseMap(collection, iteratee) { + var index = -1, + result = isArrayLike(collection) ? Array(collection.length) : []; + + baseEach(collection, function(value, key, collection) { + result[++index] = iteratee(value, key, collection); + }); + return result; +} + +module.exports = baseMap; + +},{"./baseEach":74,"./isArrayLike":122}],87:[function(require,module,exports){ +var baseIsMatch = require('./baseIsMatch'), + getMatchData = require('./getMatchData'), + toObject = require('./toObject'); + +/** + * The base implementation of `_.matches` which does not clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new function. + */ +function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + var key = matchData[0][0], + value = matchData[0][1]; + + return function(object) { + if (object == null) { + return false; + } + object = toObject(object); + return object[key] === value && (value !== undefined || (key in object)); + }; + } + return function(object) { + return baseIsMatch(object, matchData); + }; +} + +module.exports = baseMatches; + +},{"./baseIsMatch":84,"./getMatchData":116,"./toObject":138}],88:[function(require,module,exports){ +var baseGet = require('./baseGet'), + baseIsEqual = require('./baseIsEqual'), + baseSlice = require('./baseSlice'), + isArray = require('../lang/isArray'), + isKey = require('./isKey'), + isStrictComparable = require('./isStrictComparable'), + last = require('../array/last'), + toObject = require('./toObject'), + toPath = require('./toPath'); + +/** + * The base implementation of `_.matchesProperty` which does not clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to compare. + * @returns {Function} Returns the new function. + */ +function baseMatchesProperty(path, srcValue) { + var isArr = isArray(path), + isCommon = isKey(path) && isStrictComparable(srcValue), + pathKey = (path + ''); + + path = toPath(path); + return function(object) { + if (object == null) { + return false; + } + var key = pathKey; + object = toObject(object); + if ((isArr || !isCommon) && !(key in object)) { + object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1)); + if (object == null) { + return false; + } + key = last(path); + object = toObject(object); + } + return object[key] === srcValue + ? (srcValue !== undefined || (key in object)) + : baseIsEqual(srcValue, object[key], undefined, true); + }; +} + +module.exports = baseMatchesProperty; + +},{"../array/last":53,"../lang/isArray":143,"./baseGet":80,"./baseIsEqual":82,"./baseSlice":92,"./isKey":126,"./isStrictComparable":130,"./toObject":138,"./toPath":139}],89:[function(require,module,exports){ +var toObject = require('./toObject'); + +/** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new function. + */ +function baseProperty(key) { + return function(object) { + return object == null ? undefined : toObject(object)[key]; + }; +} + +module.exports = baseProperty; + +},{"./toObject":138}],90:[function(require,module,exports){ +var baseGet = require('./baseGet'), + toPath = require('./toPath'); + +/** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new function. + */ +function basePropertyDeep(path) { + var pathKey = (path + ''); + path = toPath(path); + return function(object) { + return baseGet(object, path, pathKey); + }; +} + +module.exports = basePropertyDeep; + +},{"./baseGet":80,"./toPath":139}],91:[function(require,module,exports){ +var identity = require('../utility/identity'), + metaMap = require('./metaMap'); + +/** + * The base implementation of `setData` without support for hot loop detection. + * + * @private + * @param {Function} func The function to associate metadata with. + * @param {*} data The metadata. + * @returns {Function} Returns `func`. + */ +var baseSetData = !metaMap ? identity : function(func, data) { + metaMap.set(func, data); + return func; +}; + +module.exports = baseSetData; + +},{"../utility/identity":157,"./metaMap":132}],92:[function(require,module,exports){ +/** + * The base implementation of `_.slice` without an iteratee call guard. + * + * @private + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ +function baseSlice(array, start, end) { + var index = -1, + length = array.length; + + start = start == null ? 0 : (+start || 0); + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = (end === undefined || end > length) ? length : (+end || 0); + if (end < 0) { + end += length; + } + length = start > end ? 0 : ((end - start) >>> 0); + start >>>= 0; + + var result = Array(length); + while (++index < length) { + result[index] = array[index + start]; + } + return result; +} + +module.exports = baseSlice; + +},{}],93:[function(require,module,exports){ +/** + * Converts `value` to a string if it's not one. An empty string is returned + * for `null` or `undefined` values. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ +function baseToString(value) { + return value == null ? '' : (value + ''); +} + +module.exports = baseToString; + +},{}],94:[function(require,module,exports){ +/** + * The base implementation of `_.values` and `_.valuesIn` which creates an + * array of `object` property values corresponding to the property names + * of `props`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} props The property names to get values for. + * @returns {Object} Returns the array of property values. + */ +function baseValues(object, props) { + var index = -1, + length = props.length, + result = Array(length); + + while (++index < length) { + result[index] = object[props[index]]; + } + return result; +} + +module.exports = baseValues; + +},{}],95:[function(require,module,exports){ +var binaryIndexBy = require('./binaryIndexBy'), + identity = require('../utility/identity'); + +/** Used as references for the maximum length and index of an array. */ +var MAX_ARRAY_LENGTH = 4294967295, + HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; + +/** + * Performs a binary search of `array` to determine the index at which `value` + * should be inserted into `array` in order to maintain its sort order. + * + * @private + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {boolean} [retHighest] Specify returning the highest qualified index. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + */ +function binaryIndex(array, value, retHighest) { + var low = 0, + high = array ? array.length : low; + + if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) { + while (low < high) { + var mid = (low + high) >>> 1, + computed = array[mid]; + + if ((retHighest ? (computed <= value) : (computed < value)) && computed !== null) { + low = mid + 1; + } else { + high = mid; + } + } + return high; + } + return binaryIndexBy(array, value, identity, retHighest); +} + +module.exports = binaryIndex; + +},{"../utility/identity":157,"./binaryIndexBy":96}],96:[function(require,module,exports){ +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeFloor = Math.floor, + nativeMin = Math.min; + +/** Used as references for the maximum length and index of an array. */ +var MAX_ARRAY_LENGTH = 4294967295, + MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1; + +/** + * This function is like `binaryIndex` except that it invokes `iteratee` for + * `value` and each element of `array` to compute their sort ranking. The + * iteratee is invoked with one argument; (value). + * + * @private + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {Function} iteratee The function invoked per iteration. + * @param {boolean} [retHighest] Specify returning the highest qualified index. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + */ +function binaryIndexBy(array, value, iteratee, retHighest) { + value = iteratee(value); + + var low = 0, + high = array ? array.length : 0, + valIsNaN = value !== value, + valIsNull = value === null, + valIsUndef = value === undefined; + + while (low < high) { + var mid = nativeFloor((low + high) / 2), + computed = iteratee(array[mid]), + isDef = computed !== undefined, + isReflexive = computed === computed; + + if (valIsNaN) { + var setLow = isReflexive || retHighest; + } else if (valIsNull) { + setLow = isReflexive && isDef && (retHighest || computed != null); + } else if (valIsUndef) { + setLow = isReflexive && (retHighest || isDef); + } else if (computed == null) { + setLow = false; + } else { + setLow = retHighest ? (computed <= value) : (computed < value); + } + if (setLow) { + low = mid + 1; + } else { + high = mid; + } + } + return nativeMin(high, MAX_ARRAY_INDEX); +} + +module.exports = binaryIndexBy; + +},{}],97:[function(require,module,exports){ +var identity = require('../utility/identity'); + +/** + * A specialized version of `baseCallback` which only supports `this` binding + * and specifying the number of arguments to provide to `func`. + * + * @private + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {number} [argCount] The number of arguments to provide to `func`. + * @returns {Function} Returns the callback. + */ +function bindCallback(func, thisArg, argCount) { + if (typeof func != 'function') { + return identity; + } + if (thisArg === undefined) { + return func; + } + switch (argCount) { + case 1: return function(value) { + return func.call(thisArg, value); + }; + case 3: return function(value, index, collection) { + return func.call(thisArg, value, index, collection); + }; + case 4: return function(accumulator, value, index, collection) { + return func.call(thisArg, accumulator, value, index, collection); + }; + case 5: return function(value, other, key, object, source) { + return func.call(thisArg, value, other, key, object, source); + }; + } + return function() { + return func.apply(thisArg, arguments); + }; +} + +module.exports = bindCallback; + +},{"../utility/identity":157}],98:[function(require,module,exports){ +(function (global){ +/** Native method references. */ +var ArrayBuffer = global.ArrayBuffer, + Uint8Array = global.Uint8Array; + +/** + * Creates a clone of the given array buffer. + * + * @private + * @param {ArrayBuffer} buffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ +function bufferClone(buffer) { + var result = new ArrayBuffer(buffer.byteLength), + view = new Uint8Array(result); + + view.set(new Uint8Array(buffer)); + return result; +} + +module.exports = bufferClone; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2J1ZmZlckNsb25lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgQXJyYXlCdWZmZXIgPSBnbG9iYWwuQXJyYXlCdWZmZXIsXG4gICAgVWludDhBcnJheSA9IGdsb2JhbC5VaW50OEFycmF5O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjbG9uZSBvZiB0aGUgZ2l2ZW4gYXJyYXkgYnVmZmVyLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5QnVmZmVyfSBidWZmZXIgVGhlIGFycmF5IGJ1ZmZlciB0byBjbG9uZS5cbiAqIEByZXR1cm5zIHtBcnJheUJ1ZmZlcn0gUmV0dXJucyB0aGUgY2xvbmVkIGFycmF5IGJ1ZmZlci5cbiAqL1xuZnVuY3Rpb24gYnVmZmVyQ2xvbmUoYnVmZmVyKSB7XG4gIHZhciByZXN1bHQgPSBuZXcgQXJyYXlCdWZmZXIoYnVmZmVyLmJ5dGVMZW5ndGgpLFxuICAgICAgdmlldyA9IG5ldyBVaW50OEFycmF5KHJlc3VsdCk7XG5cbiAgdmlldy5zZXQobmV3IFVpbnQ4QXJyYXkoYnVmZmVyKSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYnVmZmVyQ2xvbmU7XG4iXX0= +},{}],99:[function(require,module,exports){ +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Creates an array that is the composition of partially applied arguments, + * placeholders, and provided arguments into a single array of arguments. + * + * @private + * @param {Array|Object} args The provided arguments. + * @param {Array} partials The arguments to prepend to those provided. + * @param {Array} holders The `partials` placeholder indexes. + * @returns {Array} Returns the new array of composed arguments. + */ +function composeArgs(args, partials, holders) { + var holdersLength = holders.length, + argsIndex = -1, + argsLength = nativeMax(args.length - holdersLength, 0), + leftIndex = -1, + leftLength = partials.length, + result = Array(leftLength + argsLength); + + while (++leftIndex < leftLength) { + result[leftIndex] = partials[leftIndex]; + } + while (++argsIndex < holdersLength) { + result[holders[argsIndex]] = args[argsIndex]; + } + while (argsLength--) { + result[leftIndex++] = args[argsIndex++]; + } + return result; +} + +module.exports = composeArgs; + +},{}],100:[function(require,module,exports){ +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * This function is like `composeArgs` except that the arguments composition + * is tailored for `_.partialRight`. + * + * @private + * @param {Array|Object} args The provided arguments. + * @param {Array} partials The arguments to append to those provided. + * @param {Array} holders The `partials` placeholder indexes. + * @returns {Array} Returns the new array of composed arguments. + */ +function composeArgsRight(args, partials, holders) { + var holdersIndex = -1, + holdersLength = holders.length, + argsIndex = -1, + argsLength = nativeMax(args.length - holdersLength, 0), + rightIndex = -1, + rightLength = partials.length, + result = Array(argsLength + rightLength); + + while (++argsIndex < argsLength) { + result[argsIndex] = args[argsIndex]; + } + var offset = argsIndex; + while (++rightIndex < rightLength) { + result[offset + rightIndex] = partials[rightIndex]; + } + while (++holdersIndex < holdersLength) { + result[offset + holders[holdersIndex]] = args[argsIndex++]; + } + return result; +} + +module.exports = composeArgsRight; + +},{}],101:[function(require,module,exports){ +var getLength = require('./getLength'), + isLength = require('./isLength'), + toObject = require('./toObject'); + +/** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + var length = collection ? getLength(collection) : 0; + if (!isLength(length)) { + return eachFunc(collection, iteratee); + } + var index = fromRight ? length : -1, + iterable = toObject(collection); + + while ((fromRight ? index-- : ++index < length)) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; +} + +module.exports = createBaseEach; + +},{"./getLength":115,"./isLength":128,"./toObject":138}],102:[function(require,module,exports){ +var toObject = require('./toObject'); + +/** + * Creates a base function for `_.forIn` or `_.forInRight`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var iterable = toObject(object), + props = keysFunc(object), + length = props.length, + index = fromRight ? length : -1; + + while ((fromRight ? index-- : ++index < length)) { + var key = props[index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; +} + +module.exports = createBaseFor; + +},{"./toObject":138}],103:[function(require,module,exports){ +(function (global){ +var createCtorWrapper = require('./createCtorWrapper'); + +/** + * Creates a function that wraps `func` and invokes it with the `this` + * binding of `thisArg`. + * + * @private + * @param {Function} func The function to bind. + * @param {*} [thisArg] The `this` binding of `func`. + * @returns {Function} Returns the new bound function. + */ +function createBindWrapper(func, thisArg) { + var Ctor = createCtorWrapper(func); + + function wrapper() { + var fn = (this && this !== global && this instanceof wrapper) ? Ctor : func; + return fn.apply(thisArg, arguments); + } + return wrapper; +} + +module.exports = createBindWrapper; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2NyZWF0ZUJpbmRXcmFwcGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgY3JlYXRlQ3RvcldyYXBwZXIgPSByZXF1aXJlKCcuL2NyZWF0ZUN0b3JXcmFwcGVyJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIGFuZCBpbnZva2VzIGl0IHdpdGggdGhlIGB0aGlzYFxuICogYmluZGluZyBvZiBgdGhpc0FyZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGJpbmQuXG4gKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYm91bmQgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUJpbmRXcmFwcGVyKGZ1bmMsIHRoaXNBcmcpIHtcbiAgdmFyIEN0b3IgPSBjcmVhdGVDdG9yV3JhcHBlcihmdW5jKTtcblxuICBmdW5jdGlvbiB3cmFwcGVyKCkge1xuICAgIHZhciBmbiA9ICh0aGlzICYmIHRoaXMgIT09IGdsb2JhbCAmJiB0aGlzIGluc3RhbmNlb2Ygd3JhcHBlcikgPyBDdG9yIDogZnVuYztcbiAgICByZXR1cm4gZm4uYXBwbHkodGhpc0FyZywgYXJndW1lbnRzKTtcbiAgfVxuICByZXR1cm4gd3JhcHBlcjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVCaW5kV3JhcHBlcjtcbiJdfQ== +},{"./createCtorWrapper":104}],104:[function(require,module,exports){ +var baseCreate = require('./baseCreate'), + isObject = require('../lang/isObject'); + +/** + * Creates a function that produces an instance of `Ctor` regardless of + * whether it was invoked as part of a `new` expression or by `call` or `apply`. + * + * @private + * @param {Function} Ctor The constructor to wrap. + * @returns {Function} Returns the new wrapped function. + */ +function createCtorWrapper(Ctor) { + return function() { + // Use a `switch` statement to work with class constructors. + // See http://ecma-international.org/ecma-262/6.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist + // for more details. + var args = arguments; + switch (args.length) { + case 0: return new Ctor; + case 1: return new Ctor(args[0]); + case 2: return new Ctor(args[0], args[1]); + case 3: return new Ctor(args[0], args[1], args[2]); + case 4: return new Ctor(args[0], args[1], args[2], args[3]); + case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]); + case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); + case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); + } + var thisBinding = baseCreate(Ctor.prototype), + result = Ctor.apply(thisBinding, args); + + // Mimic the constructor's `return` behavior. + // See https://es5.github.io/#x13.2.2 for more details. + return isObject(result) ? result : thisBinding; + }; +} + +module.exports = createCtorWrapper; + +},{"../lang/isObject":147,"./baseCreate":73}],105:[function(require,module,exports){ +var baseCallback = require('./baseCallback'), + baseFind = require('./baseFind'), + baseFindIndex = require('./baseFindIndex'), + isArray = require('../lang/isArray'); + +/** + * Creates a `_.find` or `_.findLast` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new find function. + */ +function createFind(eachFunc, fromRight) { + return function(collection, predicate, thisArg) { + predicate = baseCallback(predicate, thisArg, 3); + if (isArray(collection)) { + var index = baseFindIndex(collection, predicate, fromRight); + return index > -1 ? collection[index] : undefined; + } + return baseFind(collection, predicate, eachFunc); + }; +} + +module.exports = createFind; + +},{"../lang/isArray":143,"./baseCallback":70,"./baseFind":75,"./baseFindIndex":76}],106:[function(require,module,exports){ +var bindCallback = require('./bindCallback'), + isArray = require('../lang/isArray'); + +/** + * Creates a function for `_.forEach` or `_.forEachRight`. + * + * @private + * @param {Function} arrayFunc The function to iterate over an array. + * @param {Function} eachFunc The function to iterate over a collection. + * @returns {Function} Returns the new each function. + */ +function createForEach(arrayFunc, eachFunc) { + return function(collection, iteratee, thisArg) { + return (typeof iteratee == 'function' && thisArg === undefined && isArray(collection)) + ? arrayFunc(collection, iteratee) + : eachFunc(collection, bindCallback(iteratee, thisArg, 3)); + }; +} + +module.exports = createForEach; + +},{"../lang/isArray":143,"./bindCallback":97}],107:[function(require,module,exports){ +(function (global){ +var arrayCopy = require('./arrayCopy'), + composeArgs = require('./composeArgs'), + composeArgsRight = require('./composeArgsRight'), + createCtorWrapper = require('./createCtorWrapper'), + isLaziable = require('./isLaziable'), + reorder = require('./reorder'), + replaceHolders = require('./replaceHolders'), + setData = require('./setData'); + +/** Used to compose bitmasks for wrapper metadata. */ +var BIND_FLAG = 1, + BIND_KEY_FLAG = 2, + CURRY_BOUND_FLAG = 4, + CURRY_FLAG = 8, + CURRY_RIGHT_FLAG = 16, + PARTIAL_FLAG = 32, + PARTIAL_RIGHT_FLAG = 64, + ARY_FLAG = 128; + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Creates a function that wraps `func` and invokes it with optional `this` + * binding of, partial application, and currying. + * + * @private + * @param {Function|string} func The function or method name to reference. + * @param {number} bitmask The bitmask of flags. See `createWrapper` for more details. + * @param {*} [thisArg] The `this` binding of `func`. + * @param {Array} [partials] The arguments to prepend to those provided to the new function. + * @param {Array} [holders] The `partials` placeholder indexes. + * @param {Array} [partialsRight] The arguments to append to those provided to the new function. + * @param {Array} [holdersRight] The `partialsRight` placeholder indexes. + * @param {Array} [argPos] The argument positions of the new function. + * @param {number} [ary] The arity cap of `func`. + * @param {number} [arity] The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ +function createHybridWrapper(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { + var isAry = bitmask & ARY_FLAG, + isBind = bitmask & BIND_FLAG, + isBindKey = bitmask & BIND_KEY_FLAG, + isCurry = bitmask & CURRY_FLAG, + isCurryBound = bitmask & CURRY_BOUND_FLAG, + isCurryRight = bitmask & CURRY_RIGHT_FLAG, + Ctor = isBindKey ? undefined : createCtorWrapper(func); + + function wrapper() { + // Avoid `arguments` object use disqualifying optimizations by + // converting it to an array before providing it to other functions. + var length = arguments.length, + index = length, + args = Array(length); + + while (index--) { + args[index] = arguments[index]; + } + if (partials) { + args = composeArgs(args, partials, holders); + } + if (partialsRight) { + args = composeArgsRight(args, partialsRight, holdersRight); + } + if (isCurry || isCurryRight) { + var placeholder = wrapper.placeholder, + argsHolders = replaceHolders(args, placeholder); + + length -= argsHolders.length; + if (length < arity) { + var newArgPos = argPos ? arrayCopy(argPos) : undefined, + newArity = nativeMax(arity - length, 0), + newsHolders = isCurry ? argsHolders : undefined, + newHoldersRight = isCurry ? undefined : argsHolders, + newPartials = isCurry ? args : undefined, + newPartialsRight = isCurry ? undefined : args; + + bitmask |= (isCurry ? PARTIAL_FLAG : PARTIAL_RIGHT_FLAG); + bitmask &= ~(isCurry ? PARTIAL_RIGHT_FLAG : PARTIAL_FLAG); + + if (!isCurryBound) { + bitmask &= ~(BIND_FLAG | BIND_KEY_FLAG); + } + var newData = [func, bitmask, thisArg, newPartials, newsHolders, newPartialsRight, newHoldersRight, newArgPos, ary, newArity], + result = createHybridWrapper.apply(undefined, newData); + + if (isLaziable(func)) { + setData(result, newData); + } + result.placeholder = placeholder; + return result; + } + } + var thisBinding = isBind ? thisArg : this, + fn = isBindKey ? thisBinding[func] : func; + + if (argPos) { + args = reorder(args, argPos); + } + if (isAry && ary < args.length) { + args.length = ary; + } + if (this && this !== global && this instanceof wrapper) { + fn = Ctor || createCtorWrapper(func); + } + return fn.apply(thisBinding, args); + } + return wrapper; +} + +module.exports = createHybridWrapper; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2NyZWF0ZUh5YnJpZFdyYXBwZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYXJyYXlDb3B5ID0gcmVxdWlyZSgnLi9hcnJheUNvcHknKSxcbiAgICBjb21wb3NlQXJncyA9IHJlcXVpcmUoJy4vY29tcG9zZUFyZ3MnKSxcbiAgICBjb21wb3NlQXJnc1JpZ2h0ID0gcmVxdWlyZSgnLi9jb21wb3NlQXJnc1JpZ2h0JyksXG4gICAgY3JlYXRlQ3RvcldyYXBwZXIgPSByZXF1aXJlKCcuL2NyZWF0ZUN0b3JXcmFwcGVyJyksXG4gICAgaXNMYXppYWJsZSA9IHJlcXVpcmUoJy4vaXNMYXppYWJsZScpLFxuICAgIHJlb3JkZXIgPSByZXF1aXJlKCcuL3Jlb3JkZXInKSxcbiAgICByZXBsYWNlSG9sZGVycyA9IHJlcXVpcmUoJy4vcmVwbGFjZUhvbGRlcnMnKSxcbiAgICBzZXREYXRhID0gcmVxdWlyZSgnLi9zZXREYXRhJyk7XG5cbi8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIHdyYXBwZXIgbWV0YWRhdGEuICovXG52YXIgQklORF9GTEFHID0gMSxcbiAgICBCSU5EX0tFWV9GTEFHID0gMixcbiAgICBDVVJSWV9CT1VORF9GTEFHID0gNCxcbiAgICBDVVJSWV9GTEFHID0gOCxcbiAgICBDVVJSWV9SSUdIVF9GTEFHID0gMTYsXG4gICAgUEFSVElBTF9GTEFHID0gMzIsXG4gICAgUEFSVElBTF9SSUdIVF9GTEFHID0gNjQsXG4gICAgQVJZX0ZMQUcgPSAxMjg7XG5cbi8qIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWF4ID0gTWF0aC5tYXg7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIGFuZCBpbnZva2VzIGl0IHdpdGggb3B0aW9uYWwgYHRoaXNgXG4gKiBiaW5kaW5nIG9mLCBwYXJ0aWFsIGFwcGxpY2F0aW9uLCBhbmQgY3VycnlpbmcuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb258c3RyaW5nfSBmdW5jIFRoZSBmdW5jdGlvbiBvciBtZXRob2QgbmFtZSB0byByZWZlcmVuY2UuXG4gKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBvZiBmbGFncy4gU2VlIGBjcmVhdGVXcmFwcGVyYCBmb3IgbW9yZSBkZXRhaWxzLlxuICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAqIEBwYXJhbSB7QXJyYXl9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBwcmVwZW5kIHRvIHRob3NlIHByb3ZpZGVkIHRvIHRoZSBuZXcgZnVuY3Rpb24uXG4gKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc10gVGhlIGBwYXJ0aWFsc2AgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAqIEBwYXJhbSB7QXJyYXl9IFtwYXJ0aWFsc1JpZ2h0XSBUaGUgYXJndW1lbnRzIHRvIGFwcGVuZCB0byB0aG9zZSBwcm92aWRlZCB0byB0aGUgbmV3IGZ1bmN0aW9uLlxuICogQHBhcmFtIHtBcnJheX0gW2hvbGRlcnNSaWdodF0gVGhlIGBwYXJ0aWFsc1JpZ2h0YCBwbGFjZWhvbGRlciBpbmRleGVzLlxuICogQHBhcmFtIHtBcnJheX0gW2FyZ1Bvc10gVGhlIGFyZ3VtZW50IHBvc2l0aW9ucyBvZiB0aGUgbmV3IGZ1bmN0aW9uLlxuICogQHBhcmFtIHtudW1iZXJ9IFthcnldIFRoZSBhcml0eSBjYXAgb2YgYGZ1bmNgLlxuICogQHBhcmFtIHtudW1iZXJ9IFthcml0eV0gVGhlIGFyaXR5IG9mIGBmdW5jYC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHdyYXBwZWQgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUh5YnJpZFdyYXBwZXIoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMsIHBhcnRpYWxzUmlnaHQsIGhvbGRlcnNSaWdodCwgYXJnUG9zLCBhcnksIGFyaXR5KSB7XG4gIHZhciBpc0FyeSA9IGJpdG1hc2sgJiBBUllfRkxBRyxcbiAgICAgIGlzQmluZCA9IGJpdG1hc2sgJiBCSU5EX0ZMQUcsXG4gICAgICBpc0JpbmRLZXkgPSBiaXRtYXNrICYgQklORF9LRVlfRkxBRyxcbiAgICAgIGlzQ3VycnkgPSBiaXRtYXNrICYgQ1VSUllfRkxBRyxcbiAgICAgIGlzQ3VycnlCb3VuZCA9IGJpdG1hc2sgJiBDVVJSWV9CT1VORF9GTEFHLFxuICAgICAgaXNDdXJyeVJpZ2h0ID0gYml0bWFzayAmIENVUlJZX1JJR0hUX0ZMQUcsXG4gICAgICBDdG9yID0gaXNCaW5kS2V5ID8gdW5kZWZpbmVkIDogY3JlYXRlQ3RvcldyYXBwZXIoZnVuYyk7XG5cbiAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAvLyBBdm9pZCBgYXJndW1lbnRzYCBvYmplY3QgdXNlIGRpc3F1YWxpZnlpbmcgb3B0aW1pemF0aW9ucyBieVxuICAgIC8vIGNvbnZlcnRpbmcgaXQgdG8gYW4gYXJyYXkgYmVmb3JlIHByb3ZpZGluZyBpdCB0byBvdGhlciBmdW5jdGlvbnMuXG4gICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXG4gICAgICAgIGluZGV4ID0gbGVuZ3RoLFxuICAgICAgICBhcmdzID0gQXJyYXkobGVuZ3RoKTtcblxuICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICBhcmdzW2luZGV4XSA9IGFyZ3VtZW50c1tpbmRleF07XG4gICAgfVxuICAgIGlmIChwYXJ0aWFscykge1xuICAgICAgYXJncyA9IGNvbXBvc2VBcmdzKGFyZ3MsIHBhcnRpYWxzLCBob2xkZXJzKTtcbiAgICB9XG4gICAgaWYgKHBhcnRpYWxzUmlnaHQpIHtcbiAgICAgIGFyZ3MgPSBjb21wb3NlQXJnc1JpZ2h0KGFyZ3MsIHBhcnRpYWxzUmlnaHQsIGhvbGRlcnNSaWdodCk7XG4gICAgfVxuICAgIGlmIChpc0N1cnJ5IHx8IGlzQ3VycnlSaWdodCkge1xuICAgICAgdmFyIHBsYWNlaG9sZGVyID0gd3JhcHBlci5wbGFjZWhvbGRlcixcbiAgICAgICAgICBhcmdzSG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKGFyZ3MsIHBsYWNlaG9sZGVyKTtcblxuICAgICAgbGVuZ3RoIC09IGFyZ3NIb2xkZXJzLmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGggPCBhcml0eSkge1xuICAgICAgICB2YXIgbmV3QXJnUG9zID0gYXJnUG9zID8gYXJyYXlDb3B5KGFyZ1BvcykgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuZXdBcml0eSA9IG5hdGl2ZU1heChhcml0eSAtIGxlbmd0aCwgMCksXG4gICAgICAgICAgICBuZXdzSG9sZGVycyA9IGlzQ3VycnkgPyBhcmdzSG9sZGVycyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG5ld0hvbGRlcnNSaWdodCA9IGlzQ3VycnkgPyB1bmRlZmluZWQgOiBhcmdzSG9sZGVycyxcbiAgICAgICAgICAgIG5ld1BhcnRpYWxzID0gaXNDdXJyeSA/IGFyZ3MgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuZXdQYXJ0aWFsc1JpZ2h0ID0gaXNDdXJyeSA/IHVuZGVmaW5lZCA6IGFyZ3M7XG5cbiAgICAgICAgYml0bWFzayB8PSAoaXNDdXJyeSA/IFBBUlRJQUxfRkxBRyA6IFBBUlRJQUxfUklHSFRfRkxBRyk7XG4gICAgICAgIGJpdG1hc2sgJj0gfihpc0N1cnJ5ID8gUEFSVElBTF9SSUdIVF9GTEFHIDogUEFSVElBTF9GTEFHKTtcblxuICAgICAgICBpZiAoIWlzQ3VycnlCb3VuZCkge1xuICAgICAgICAgIGJpdG1hc2sgJj0gfihCSU5EX0ZMQUcgfCBCSU5EX0tFWV9GTEFHKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbmV3RGF0YSA9IFtmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBuZXdQYXJ0aWFscywgbmV3c0hvbGRlcnMsIG5ld1BhcnRpYWxzUmlnaHQsIG5ld0hvbGRlcnNSaWdodCwgbmV3QXJnUG9zLCBhcnksIG5ld0FyaXR5XSxcbiAgICAgICAgICAgIHJlc3VsdCA9IGNyZWF0ZUh5YnJpZFdyYXBwZXIuYXBwbHkodW5kZWZpbmVkLCBuZXdEYXRhKTtcblxuICAgICAgICBpZiAoaXNMYXppYWJsZShmdW5jKSkge1xuICAgICAgICAgIHNldERhdGEocmVzdWx0LCBuZXdEYXRhKTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIHRoaXNCaW5kaW5nID0gaXNCaW5kID8gdGhpc0FyZyA6IHRoaXMsXG4gICAgICAgIGZuID0gaXNCaW5kS2V5ID8gdGhpc0JpbmRpbmdbZnVuY10gOiBmdW5jO1xuXG4gICAgaWYgKGFyZ1Bvcykge1xuICAgICAgYXJncyA9IHJlb3JkZXIoYXJncywgYXJnUG9zKTtcbiAgICB9XG4gICAgaWYgKGlzQXJ5ICYmIGFyeSA8IGFyZ3MubGVuZ3RoKSB7XG4gICAgICBhcmdzLmxlbmd0aCA9IGFyeTtcbiAgICB9XG4gICAgaWYgKHRoaXMgJiYgdGhpcyAhPT0gZ2xvYmFsICYmIHRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyKSB7XG4gICAgICBmbiA9IEN0b3IgfHwgY3JlYXRlQ3RvcldyYXBwZXIoZnVuYyk7XG4gICAgfVxuICAgIHJldHVybiBmbi5hcHBseSh0aGlzQmluZGluZywgYXJncyk7XG4gIH1cbiAgcmV0dXJuIHdyYXBwZXI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlSHlicmlkV3JhcHBlcjtcbiJdfQ== +},{"./arrayCopy":65,"./composeArgs":99,"./composeArgsRight":100,"./createCtorWrapper":104,"./isLaziable":127,"./reorder":134,"./replaceHolders":135,"./setData":136}],108:[function(require,module,exports){ +(function (global){ +var createCtorWrapper = require('./createCtorWrapper'); + +/** Used to compose bitmasks for wrapper metadata. */ +var BIND_FLAG = 1; + +/** + * Creates a function that wraps `func` and invokes it with the optional `this` + * binding of `thisArg` and the `partials` prepended to those provided to + * the wrapper. + * + * @private + * @param {Function} func The function to partially apply arguments to. + * @param {number} bitmask The bitmask of flags. See `createWrapper` for more details. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} partials The arguments to prepend to those provided to the new function. + * @returns {Function} Returns the new bound function. + */ +function createPartialWrapper(func, bitmask, thisArg, partials) { + var isBind = bitmask & BIND_FLAG, + Ctor = createCtorWrapper(func); + + function wrapper() { + // Avoid `arguments` object use disqualifying optimizations by + // converting it to an array before providing it `func`. + var argsIndex = -1, + argsLength = arguments.length, + leftIndex = -1, + leftLength = partials.length, + args = Array(leftLength + argsLength); + + while (++leftIndex < leftLength) { + args[leftIndex] = partials[leftIndex]; + } + while (argsLength--) { + args[leftIndex++] = arguments[++argsIndex]; + } + var fn = (this && this !== global && this instanceof wrapper) ? Ctor : func; + return fn.apply(isBind ? thisArg : this, args); + } + return wrapper; +} + +module.exports = createPartialWrapper; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2NyZWF0ZVBhcnRpYWxXcmFwcGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgY3JlYXRlQ3RvcldyYXBwZXIgPSByZXF1aXJlKCcuL2NyZWF0ZUN0b3JXcmFwcGVyJyk7XG5cbi8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIHdyYXBwZXIgbWV0YWRhdGEuICovXG52YXIgQklORF9GTEFHID0gMTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCB3cmFwcyBgZnVuY2AgYW5kIGludm9rZXMgaXQgd2l0aCB0aGUgb3B0aW9uYWwgYHRoaXNgXG4gKiBiaW5kaW5nIG9mIGB0aGlzQXJnYCBhbmQgdGhlIGBwYXJ0aWFsc2AgcHJlcGVuZGVkIHRvIHRob3NlIHByb3ZpZGVkIHRvXG4gKiB0aGUgd3JhcHBlci5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcGFydGlhbGx5IGFwcGx5IGFyZ3VtZW50cyB0by5cbiAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIG9mIGZsYWdzLiBTZWUgYGNyZWF0ZVdyYXBwZXJgIGZvciBtb3JlIGRldGFpbHMuXG4gKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAqIEBwYXJhbSB7QXJyYXl9IHBhcnRpYWxzIFRoZSBhcmd1bWVudHMgdG8gcHJlcGVuZCB0byB0aG9zZSBwcm92aWRlZCB0byB0aGUgbmV3IGZ1bmN0aW9uLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYm91bmQgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVBhcnRpYWxXcmFwcGVyKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzKSB7XG4gIHZhciBpc0JpbmQgPSBiaXRtYXNrICYgQklORF9GTEFHLFxuICAgICAgQ3RvciA9IGNyZWF0ZUN0b3JXcmFwcGVyKGZ1bmMpO1xuXG4gIGZ1bmN0aW9uIHdyYXBwZXIoKSB7XG4gICAgLy8gQXZvaWQgYGFyZ3VtZW50c2Agb2JqZWN0IHVzZSBkaXNxdWFsaWZ5aW5nIG9wdGltaXphdGlvbnMgYnlcbiAgICAvLyBjb252ZXJ0aW5nIGl0IHRvIGFuIGFycmF5IGJlZm9yZSBwcm92aWRpbmcgaXQgYGZ1bmNgLlxuICAgIHZhciBhcmdzSW5kZXggPSAtMSxcbiAgICAgICAgYXJnc0xlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXG4gICAgICAgIGxlZnRJbmRleCA9IC0xLFxuICAgICAgICBsZWZ0TGVuZ3RoID0gcGFydGlhbHMubGVuZ3RoLFxuICAgICAgICBhcmdzID0gQXJyYXkobGVmdExlbmd0aCArIGFyZ3NMZW5ndGgpO1xuXG4gICAgd2hpbGUgKCsrbGVmdEluZGV4IDwgbGVmdExlbmd0aCkge1xuICAgICAgYXJnc1tsZWZ0SW5kZXhdID0gcGFydGlhbHNbbGVmdEluZGV4XTtcbiAgICB9XG4gICAgd2hpbGUgKGFyZ3NMZW5ndGgtLSkge1xuICAgICAgYXJnc1tsZWZ0SW5kZXgrK10gPSBhcmd1bWVudHNbKythcmdzSW5kZXhdO1xuICAgIH1cbiAgICB2YXIgZm4gPSAodGhpcyAmJiB0aGlzICE9PSBnbG9iYWwgJiYgdGhpcyBpbnN0YW5jZW9mIHdyYXBwZXIpID8gQ3RvciA6IGZ1bmM7XG4gICAgcmV0dXJuIGZuLmFwcGx5KGlzQmluZCA/IHRoaXNBcmcgOiB0aGlzLCBhcmdzKTtcbiAgfVxuICByZXR1cm4gd3JhcHBlcjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVQYXJ0aWFsV3JhcHBlcjtcbiJdfQ== +},{"./createCtorWrapper":104}],109:[function(require,module,exports){ +var baseSetData = require('./baseSetData'), + createBindWrapper = require('./createBindWrapper'), + createHybridWrapper = require('./createHybridWrapper'), + createPartialWrapper = require('./createPartialWrapper'), + getData = require('./getData'), + mergeData = require('./mergeData'), + setData = require('./setData'); + +/** Used to compose bitmasks for wrapper metadata. */ +var BIND_FLAG = 1, + BIND_KEY_FLAG = 2, + PARTIAL_FLAG = 32, + PARTIAL_RIGHT_FLAG = 64; + +/** Used as the `TypeError` message for "Functions" methods. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Creates a function that either curries or invokes `func` with optional + * `this` binding and partially applied arguments. + * + * @private + * @param {Function|string} func The function or method name to reference. + * @param {number} bitmask The bitmask of flags. + * The bitmask may be composed of the following flags: + * 1 - `_.bind` + * 2 - `_.bindKey` + * 4 - `_.curry` or `_.curryRight` of a bound function + * 8 - `_.curry` + * 16 - `_.curryRight` + * 32 - `_.partial` + * 64 - `_.partialRight` + * 128 - `_.rearg` + * 256 - `_.ary` + * @param {*} [thisArg] The `this` binding of `func`. + * @param {Array} [partials] The arguments to be partially applied. + * @param {Array} [holders] The `partials` placeholder indexes. + * @param {Array} [argPos] The argument positions of the new function. + * @param {number} [ary] The arity cap of `func`. + * @param {number} [arity] The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ +function createWrapper(func, bitmask, thisArg, partials, holders, argPos, ary, arity) { + var isBindKey = bitmask & BIND_KEY_FLAG; + if (!isBindKey && typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + var length = partials ? partials.length : 0; + if (!length) { + bitmask &= ~(PARTIAL_FLAG | PARTIAL_RIGHT_FLAG); + partials = holders = undefined; + } + length -= (holders ? holders.length : 0); + if (bitmask & PARTIAL_RIGHT_FLAG) { + var partialsRight = partials, + holdersRight = holders; + + partials = holders = undefined; + } + var data = isBindKey ? undefined : getData(func), + newData = [func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity]; + + if (data) { + mergeData(newData, data); + bitmask = newData[1]; + arity = newData[9]; + } + newData[9] = arity == null + ? (isBindKey ? 0 : func.length) + : (nativeMax(arity - length, 0) || 0); + + if (bitmask == BIND_FLAG) { + var result = createBindWrapper(newData[0], newData[2]); + } else if ((bitmask == PARTIAL_FLAG || bitmask == (BIND_FLAG | PARTIAL_FLAG)) && !newData[4].length) { + result = createPartialWrapper.apply(undefined, newData); + } else { + result = createHybridWrapper.apply(undefined, newData); + } + var setter = data ? baseSetData : setData; + return setter(result, newData); +} + +module.exports = createWrapper; + +},{"./baseSetData":91,"./createBindWrapper":103,"./createHybridWrapper":107,"./createPartialWrapper":108,"./getData":113,"./mergeData":131,"./setData":136}],110:[function(require,module,exports){ +var arraySome = require('./arraySome'); + +/** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Function} [customizer] The function to customize comparing arrays. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA] Tracks traversed `value` objects. + * @param {Array} [stackB] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ +function equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) { + var index = -1, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isLoose && othLength > arrLength)) { + return false; + } + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index], + result = customizer ? customizer(isLoose ? othValue : arrValue, isLoose ? arrValue : othValue, index) : undefined; + + if (result !== undefined) { + if (result) { + continue; + } + return false; + } + // Recursively compare arrays (susceptible to call stack limits). + if (isLoose) { + if (!arraySome(other, function(othValue) { + return arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB); + })) { + return false; + } + } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB))) { + return false; + } + } + return true; +} + +module.exports = equalArrays; + +},{"./arraySome":68}],111:[function(require,module,exports){ +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + stringTag = '[object String]'; + +/** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalByTag(object, other, tag) { + switch (tag) { + case boolTag: + case dateTag: + // Coerce dates and booleans to numbers, dates to milliseconds and booleans + // to `1` or `0` treating invalid dates coerced to `NaN` as not equal. + return +object == +other; + + case errorTag: + return object.name == other.name && object.message == other.message; + + case numberTag: + // Treat `NaN` vs. `NaN` as equal. + return (object != +object) + ? other != +other + : object == +other; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings primitives and string + // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details. + return object == (other + ''); + } + return false; +} + +module.exports = equalByTag; + +},{}],112:[function(require,module,exports){ +var keys = require('../object/keys'); + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Function} [customizer] The function to customize comparing values. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA] Tracks traversed `value` objects. + * @param {Array} [stackB] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalObjects(object, other, equalFunc, customizer, isLoose, stackA, stackB) { + var objProps = keys(object), + objLength = objProps.length, + othProps = keys(other), + othLength = othProps.length; + + if (objLength != othLength && !isLoose) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isLoose ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + var skipCtor = isLoose; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key], + result = customizer ? customizer(isLoose ? othValue : objValue, isLoose? objValue : othValue, key) : undefined; + + // Recursively compare objects (susceptible to call stack limits). + if (!(result === undefined ? equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB) : result)) { + return false; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (!skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + return false; + } + } + return true; +} + +module.exports = equalObjects; + +},{"../object/keys":152}],113:[function(require,module,exports){ +var metaMap = require('./metaMap'), + noop = require('../utility/noop'); + +/** + * Gets metadata for `func`. + * + * @private + * @param {Function} func The function to query. + * @returns {*} Returns the metadata for `func`. + */ +var getData = !metaMap ? noop : function(func) { + return metaMap.get(func); +}; + +module.exports = getData; + +},{"../utility/noop":158,"./metaMap":132}],114:[function(require,module,exports){ +var realNames = require('./realNames'); + +/** + * Gets the name of `func`. + * + * @private + * @param {Function} func The function to query. + * @returns {string} Returns the function name. + */ +function getFuncName(func) { + var result = func.name, + array = realNames[result], + length = array ? array.length : 0; + + while (length--) { + var data = array[length], + otherFunc = data.func; + if (otherFunc == null || otherFunc == func) { + return data.name; + } + } + return result; +} + +module.exports = getFuncName; + +},{"./realNames":133}],115:[function(require,module,exports){ +var baseProperty = require('./baseProperty'); + +/** + * Gets the "length" property value of `object`. + * + * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) + * that affects Safari on at least iOS 8.1-8.3 ARM64. + * + * @private + * @param {Object} object The object to query. + * @returns {*} Returns the "length" value. + */ +var getLength = baseProperty('length'); + +module.exports = getLength; + +},{"./baseProperty":89}],116:[function(require,module,exports){ +var isStrictComparable = require('./isStrictComparable'), + pairs = require('../object/pairs'); + +/** + * Gets the propery names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ +function getMatchData(object) { + var result = pairs(object), + length = result.length; + + while (length--) { + result[length][2] = isStrictComparable(result[length][1]); + } + return result; +} + +module.exports = getMatchData; + +},{"../object/pairs":154,"./isStrictComparable":130}],117:[function(require,module,exports){ +var isNative = require('../lang/isNative'); + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = object == null ? undefined : object[key]; + return isNative(value) ? value : undefined; +} + +module.exports = getNative; + +},{"../lang/isNative":146}],118:[function(require,module,exports){ +/** + * Gets the index at which the first occurrence of `NaN` is found in `array`. + * + * @private + * @param {Array} array The array to search. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched `NaN`, else `-1`. + */ +function indexOfNaN(array, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 0 : -1); + + while ((fromRight ? index-- : ++index < length)) { + var other = array[index]; + if (other !== other) { + return index; + } + } + return -1; +} + +module.exports = indexOfNaN; + +},{}],119:[function(require,module,exports){ +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Initializes an array clone. + * + * @private + * @param {Array} array The array to clone. + * @returns {Array} Returns the initialized clone. + */ +function initCloneArray(array) { + var length = array.length, + result = new array.constructor(length); + + // Add array properties assigned by `RegExp#exec`. + if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { + result.index = array.index; + result.input = array.input; + } + return result; +} + +module.exports = initCloneArray; + +},{}],120:[function(require,module,exports){ +(function (global){ +var bufferClone = require('./bufferClone'); + +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + stringTag = '[object String]'; + +var arrayBufferTag = '[object ArrayBuffer]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to match `RegExp` flags from their coerced string values. */ +var reFlags = /\w*$/; + +/** Native method references. */ +var Uint8Array = global.Uint8Array; + +/** Used to lookup a type array constructors by `toStringTag`. */ +var ctorByTag = {}; +ctorByTag[float32Tag] = global.Float32Array; +ctorByTag[float64Tag] = global.Float64Array; +ctorByTag[int8Tag] = global.Int8Array; +ctorByTag[int16Tag] = global.Int16Array; +ctorByTag[int32Tag] = global.Int32Array; +ctorByTag[uint8Tag] = Uint8Array; +ctorByTag[uint8ClampedTag] = global.Uint8ClampedArray; +ctorByTag[uint16Tag] = global.Uint16Array; +ctorByTag[uint32Tag] = global.Uint32Array; + +/** + * Initializes an object clone based on its `toStringTag`. + * + * **Note:** This function only supports cloning values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to clone. + * @param {string} tag The `toStringTag` of the object to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the initialized clone. + */ +function initCloneByTag(object, tag, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag: + return bufferClone(object); + + case boolTag: + case dateTag: + return new Ctor(+object); + + case float32Tag: case float64Tag: + case int8Tag: case int16Tag: case int32Tag: + case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: + // Safari 5 mobile incorrectly has `Object` as the constructor of typed arrays. + if (Ctor instanceof Ctor) { + Ctor = ctorByTag[tag]; + } + var buffer = object.buffer; + return new Ctor(isDeep ? bufferClone(buffer) : buffer, object.byteOffset, object.length); + + case numberTag: + case stringTag: + return new Ctor(object); + + case regexpTag: + var result = new Ctor(object.source, reFlags.exec(object)); + result.lastIndex = object.lastIndex; + } + return result; +} + +module.exports = initCloneByTag; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2luaXRDbG9uZUJ5VGFnLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYnVmZmVyQ2xvbmUgPSByZXF1aXJlKCcuL2J1ZmZlckNsb25lJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXSc7XG5cbnZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgIGZsb2F0NjRUYWcgPSAnW29iamVjdCBGbG9hdDY0QXJyYXldJyxcbiAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgaW50MzJUYWcgPSAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICB1aW50MTZUYWcgPSAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgIGZsYWdzIGZyb20gdGhlaXIgY29lcmNlZCBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlRmxhZ3MgPSAvXFx3KiQvO1xuXG4vKiogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIFVpbnQ4QXJyYXkgPSBnbG9iYWwuVWludDhBcnJheTtcblxuLyoqIFVzZWQgdG8gbG9va3VwIGEgdHlwZSBhcnJheSBjb25zdHJ1Y3RvcnMgYnkgYHRvU3RyaW5nVGFnYC4gKi9cbnZhciBjdG9yQnlUYWcgPSB7fTtcbmN0b3JCeVRhZ1tmbG9hdDMyVGFnXSA9IGdsb2JhbC5GbG9hdDMyQXJyYXk7XG5jdG9yQnlUYWdbZmxvYXQ2NFRhZ10gPSBnbG9iYWwuRmxvYXQ2NEFycmF5O1xuY3RvckJ5VGFnW2ludDhUYWddID0gZ2xvYmFsLkludDhBcnJheTtcbmN0b3JCeVRhZ1tpbnQxNlRhZ10gPSBnbG9iYWwuSW50MTZBcnJheTtcbmN0b3JCeVRhZ1tpbnQzMlRhZ10gPSBnbG9iYWwuSW50MzJBcnJheTtcbmN0b3JCeVRhZ1t1aW50OFRhZ10gPSBVaW50OEFycmF5O1xuY3RvckJ5VGFnW3VpbnQ4Q2xhbXBlZFRhZ10gPSBnbG9iYWwuVWludDhDbGFtcGVkQXJyYXk7XG5jdG9yQnlUYWdbdWludDE2VGFnXSA9IGdsb2JhbC5VaW50MTZBcnJheTtcbmN0b3JCeVRhZ1t1aW50MzJUYWddID0gZ2xvYmFsLlVpbnQzMkFycmF5O1xuXG4vKipcbiAqIEluaXRpYWxpemVzIGFuIG9iamVjdCBjbG9uZSBiYXNlZCBvbiBpdHMgYHRvU3RyaW5nVGFnYC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBvbmx5IHN1cHBvcnRzIGNsb25pbmcgdmFsdWVzIHdpdGggdGFncyBvZlxuICogYEJvb2xlYW5gLCBgRGF0ZWAsIGBFcnJvcmAsIGBOdW1iZXJgLCBgUmVnRXhwYCwgb3IgYFN0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjbG9uZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIGB0b1N0cmluZ1RhZ2Agb2YgdGhlIG9iamVjdCB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAqL1xuZnVuY3Rpb24gaW5pdENsb25lQnlUYWcob2JqZWN0LCB0YWcsIGlzRGVlcCkge1xuICB2YXIgQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgc3dpdGNoICh0YWcpIHtcbiAgICBjYXNlIGFycmF5QnVmZmVyVGFnOlxuICAgICAgcmV0dXJuIGJ1ZmZlckNsb25lKG9iamVjdCk7XG5cbiAgICBjYXNlIGJvb2xUYWc6XG4gICAgY2FzZSBkYXRlVGFnOlxuICAgICAgcmV0dXJuIG5ldyBDdG9yKCtvYmplY3QpO1xuXG4gICAgY2FzZSBmbG9hdDMyVGFnOiBjYXNlIGZsb2F0NjRUYWc6XG4gICAgY2FzZSBpbnQ4VGFnOiBjYXNlIGludDE2VGFnOiBjYXNlIGludDMyVGFnOlxuICAgIGNhc2UgdWludDhUYWc6IGNhc2UgdWludDhDbGFtcGVkVGFnOiBjYXNlIHVpbnQxNlRhZzogY2FzZSB1aW50MzJUYWc6XG4gICAgICAvLyBTYWZhcmkgNSBtb2JpbGUgaW5jb3JyZWN0bHkgaGFzIGBPYmplY3RgIGFzIHRoZSBjb25zdHJ1Y3RvciBvZiB0eXBlZCBhcnJheXMuXG4gICAgICBpZiAoQ3RvciBpbnN0YW5jZW9mIEN0b3IpIHtcbiAgICAgICAgQ3RvciA9IGN0b3JCeVRhZ1t0YWddO1xuICAgICAgfVxuICAgICAgdmFyIGJ1ZmZlciA9IG9iamVjdC5idWZmZXI7XG4gICAgICByZXR1cm4gbmV3IEN0b3IoaXNEZWVwID8gYnVmZmVyQ2xvbmUoYnVmZmVyKSA6IGJ1ZmZlciwgb2JqZWN0LmJ5dGVPZmZzZXQsIG9iamVjdC5sZW5ndGgpO1xuXG4gICAgY2FzZSBudW1iZXJUYWc6XG4gICAgY2FzZSBzdHJpbmdUYWc6XG4gICAgICByZXR1cm4gbmV3IEN0b3Iob2JqZWN0KTtcblxuICAgIGNhc2UgcmVnZXhwVGFnOlxuICAgICAgdmFyIHJlc3VsdCA9IG5ldyBDdG9yKG9iamVjdC5zb3VyY2UsIHJlRmxhZ3MuZXhlYyhvYmplY3QpKTtcbiAgICAgIHJlc3VsdC5sYXN0SW5kZXggPSBvYmplY3QubGFzdEluZGV4O1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5pdENsb25lQnlUYWc7XG4iXX0= +},{"./bufferClone":98}],121:[function(require,module,exports){ +/** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ +function initCloneObject(object) { + var Ctor = object.constructor; + if (!(typeof Ctor == 'function' && Ctor instanceof Ctor)) { + Ctor = Object; + } + return new Ctor; +} + +module.exports = initCloneObject; + +},{}],122:[function(require,module,exports){ +var getLength = require('./getLength'), + isLength = require('./isLength'); + +/** + * Checks if `value` is array-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + */ +function isArrayLike(value) { + return value != null && isLength(getLength(value)); +} + +module.exports = isArrayLike; + +},{"./getLength":115,"./isLength":128}],123:[function(require,module,exports){ +/** + * Checks if `value` is a host object in IE < 9. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a host object, else `false`. + */ +var isHostObject = (function() { + try { + Object({ 'toString': 0 } + ''); + } catch(e) { + return function() { return false; }; + } + return function(value) { + // IE < 9 presents many host objects as `Object` objects that can coerce + // to strings despite having improperly defined `toString` methods. + return typeof value.toString != 'function' && typeof (value + '') == 'string'; + }; +}()); + +module.exports = isHostObject; + +},{}],124:[function(require,module,exports){ +/** Used to detect unsigned integer values. */ +var reIsUint = /^\d+$/; + +/** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; + length = length == null ? MAX_SAFE_INTEGER : length; + return value > -1 && value % 1 == 0 && value < length; +} + +module.exports = isIndex; + +},{}],125:[function(require,module,exports){ +var isArrayLike = require('./isArrayLike'), + isIndex = require('./isIndex'), + isObject = require('../lang/isObject'); + +/** + * Checks if the provided arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`. + */ +function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object)) { + var other = object[index]; + return value === value ? (value === other) : (other !== other); + } + return false; +} + +module.exports = isIterateeCall; + +},{"../lang/isObject":147,"./isArrayLike":122,"./isIndex":124}],126:[function(require,module,exports){ +var isArray = require('../lang/isArray'), + toObject = require('./toObject'); + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + +/** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ +function isKey(value, object) { + var type = typeof value; + if ((type == 'string' && reIsPlainProp.test(value)) || type == 'number') { + return true; + } + if (isArray(value)) { + return false; + } + var result = !reIsDeepProp.test(value); + return result || (object != null && value in toObject(object)); +} + +module.exports = isKey; + +},{"../lang/isArray":143,"./toObject":138}],127:[function(require,module,exports){ +var LazyWrapper = require('./LazyWrapper'), + getData = require('./getData'), + getFuncName = require('./getFuncName'), + lodash = require('../chain/lodash'); + +/** + * Checks if `func` has a lazy counterpart. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` has a lazy counterpart, else `false`. + */ +function isLaziable(func) { + var funcName = getFuncName(func); + if (!(funcName in LazyWrapper.prototype)) { + return false; + } + var other = lodash[funcName]; + if (func === other) { + return true; + } + var data = getData(other); + return !!data && func === data[0]; +} + +module.exports = isLaziable; + +},{"../chain/lodash":54,"./LazyWrapper":63,"./getData":113,"./getFuncName":114}],128:[function(require,module,exports){ +/** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ +function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +module.exports = isLength; + +},{}],129:[function(require,module,exports){ +/** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ +function isObjectLike(value) { + return !!value && typeof value == 'object'; +} + +module.exports = isObjectLike; + +},{}],130:[function(require,module,exports){ +var isObject = require('../lang/isObject'); + +/** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ +function isStrictComparable(value) { + return value === value && !isObject(value); +} + +module.exports = isStrictComparable; + +},{"../lang/isObject":147}],131:[function(require,module,exports){ +var arrayCopy = require('./arrayCopy'), + composeArgs = require('./composeArgs'), + composeArgsRight = require('./composeArgsRight'), + replaceHolders = require('./replaceHolders'); + +/** Used to compose bitmasks for wrapper metadata. */ +var BIND_FLAG = 1, + CURRY_BOUND_FLAG = 4, + CURRY_FLAG = 8, + ARY_FLAG = 128, + REARG_FLAG = 256; + +/** Used as the internal argument placeholder. */ +var PLACEHOLDER = '__lodash_placeholder__'; + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMin = Math.min; + +/** + * Merges the function metadata of `source` into `data`. + * + * Merging metadata reduces the number of wrappers required to invoke a function. + * This is possible because methods like `_.bind`, `_.curry`, and `_.partial` + * may be applied regardless of execution order. Methods like `_.ary` and `_.rearg` + * augment function arguments, making the order in which they are executed important, + * preventing the merging of metadata. However, we make an exception for a safe + * common case where curried functions have `_.ary` and or `_.rearg` applied. + * + * @private + * @param {Array} data The destination metadata. + * @param {Array} source The source metadata. + * @returns {Array} Returns `data`. + */ +function mergeData(data, source) { + var bitmask = data[1], + srcBitmask = source[1], + newBitmask = bitmask | srcBitmask, + isCommon = newBitmask < ARY_FLAG; + + var isCombo = + (srcBitmask == ARY_FLAG && bitmask == CURRY_FLAG) || + (srcBitmask == ARY_FLAG && bitmask == REARG_FLAG && data[7].length <= source[8]) || + (srcBitmask == (ARY_FLAG | REARG_FLAG) && bitmask == CURRY_FLAG); + + // Exit early if metadata can't be merged. + if (!(isCommon || isCombo)) { + return data; + } + // Use source `thisArg` if available. + if (srcBitmask & BIND_FLAG) { + data[2] = source[2]; + // Set when currying a bound function. + newBitmask |= (bitmask & BIND_FLAG) ? 0 : CURRY_BOUND_FLAG; + } + // Compose partial arguments. + var value = source[3]; + if (value) { + var partials = data[3]; + data[3] = partials ? composeArgs(partials, value, source[4]) : arrayCopy(value); + data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : arrayCopy(source[4]); + } + // Compose partial right arguments. + value = source[5]; + if (value) { + partials = data[5]; + data[5] = partials ? composeArgsRight(partials, value, source[6]) : arrayCopy(value); + data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : arrayCopy(source[6]); + } + // Use source `argPos` if available. + value = source[7]; + if (value) { + data[7] = arrayCopy(value); + } + // Use source `ary` if it's smaller. + if (srcBitmask & ARY_FLAG) { + data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); + } + // Use source `arity` if one is not provided. + if (data[9] == null) { + data[9] = source[9]; + } + // Use source `func` and merge bitmasks. + data[0] = source[0]; + data[1] = newBitmask; + + return data; +} + +module.exports = mergeData; + +},{"./arrayCopy":65,"./composeArgs":99,"./composeArgsRight":100,"./replaceHolders":135}],132:[function(require,module,exports){ +(function (global){ +var getNative = require('./getNative'); + +/** Native method references. */ +var WeakMap = getNative(global, 'WeakMap'); + +/** Used to store function metadata. */ +var metaMap = WeakMap && new WeakMap; + +module.exports = metaMap; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL21ldGFNYXAuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZ2V0TmF0aXZlID0gcmVxdWlyZSgnLi9nZXROYXRpdmUnKTtcblxuLyoqIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBXZWFrTWFwID0gZ2V0TmF0aXZlKGdsb2JhbCwgJ1dlYWtNYXAnKTtcblxuLyoqIFVzZWQgdG8gc3RvcmUgZnVuY3Rpb24gbWV0YWRhdGEuICovXG52YXIgbWV0YU1hcCA9IFdlYWtNYXAgJiYgbmV3IFdlYWtNYXA7XG5cbm1vZHVsZS5leHBvcnRzID0gbWV0YU1hcDtcbiJdfQ== +},{"./getNative":117}],133:[function(require,module,exports){ +/** Used to lookup unminified function names. */ +var realNames = {}; + +module.exports = realNames; + +},{}],134:[function(require,module,exports){ +var arrayCopy = require('./arrayCopy'), + isIndex = require('./isIndex'); + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMin = Math.min; + +/** + * Reorder `array` according to the specified indexes where the element at + * the first index is assigned as the first element, the element at + * the second index is assigned as the second element, and so on. + * + * @private + * @param {Array} array The array to reorder. + * @param {Array} indexes The arranged array indexes. + * @returns {Array} Returns `array`. + */ +function reorder(array, indexes) { + var arrLength = array.length, + length = nativeMin(indexes.length, arrLength), + oldArray = arrayCopy(array); + + while (length--) { + var index = indexes[length]; + array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined; + } + return array; +} + +module.exports = reorder; + +},{"./arrayCopy":65,"./isIndex":124}],135:[function(require,module,exports){ +/** Used as the internal argument placeholder. */ +var PLACEHOLDER = '__lodash_placeholder__'; + +/** + * Replaces all `placeholder` elements in `array` with an internal placeholder + * and returns an array of their indexes. + * + * @private + * @param {Array} array The array to modify. + * @param {*} placeholder The placeholder to replace. + * @returns {Array} Returns the new array of placeholder indexes. + */ +function replaceHolders(array, placeholder) { + var index = -1, + length = array.length, + resIndex = -1, + result = []; + + while (++index < length) { + if (array[index] === placeholder) { + array[index] = PLACEHOLDER; + result[++resIndex] = index; + } + } + return result; +} + +module.exports = replaceHolders; + +},{}],136:[function(require,module,exports){ +var baseSetData = require('./baseSetData'), + now = require('../date/now'); + +/** Used to detect when a function becomes hot. */ +var HOT_COUNT = 150, + HOT_SPAN = 16; + +/** + * Sets metadata for `func`. + * + * **Note:** If this function becomes hot, i.e. is invoked a lot in a short + * period of time, it will trip its breaker and transition to an identity function + * to avoid garbage collection pauses in V8. See [V8 issue 2070](https://code.google.com/p/v8/issues/detail?id=2070) + * for more details. + * + * @private + * @param {Function} func The function to associate metadata with. + * @param {*} data The metadata. + * @returns {Function} Returns `func`. + */ +var setData = (function() { + var count = 0, + lastCalled = 0; + + return function(key, value) { + var stamp = now(), + remaining = HOT_SPAN - (stamp - lastCalled); + + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return key; + } + } else { + count = 0; + } + return baseSetData(key, value); + }; +}()); + +module.exports = setData; + +},{"../date/now":60,"./baseSetData":91}],137:[function(require,module,exports){ +var isArguments = require('../lang/isArguments'), + isArray = require('../lang/isArray'), + isIndex = require('./isIndex'), + isLength = require('./isLength'), + isString = require('../lang/isString'), + keysIn = require('../object/keysIn'); + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * A fallback implementation of `Object.keys` which creates an array of the + * own enumerable property names of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function shimKeys(object) { + var props = keysIn(object), + propsLength = props.length, + length = propsLength && object.length; + + var allowIndexes = !!length && isLength(length) && + (isArray(object) || isArguments(object) || isString(object)); + + var index = -1, + result = []; + + while (++index < propsLength) { + var key = props[index]; + if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) { + result.push(key); + } + } + return result; +} + +module.exports = shimKeys; + +},{"../lang/isArguments":142,"../lang/isArray":143,"../lang/isString":149,"../object/keysIn":153,"./isIndex":124,"./isLength":128}],138:[function(require,module,exports){ +var isObject = require('../lang/isObject'), + isString = require('../lang/isString'), + support = require('../support'); + +/** + * Converts `value` to an object if it's not one. + * + * @private + * @param {*} value The value to process. + * @returns {Object} Returns the object. + */ +function toObject(value) { + if (support.unindexedChars && isString(value)) { + var index = -1, + length = value.length, + result = Object(value); + + while (++index < length) { + result[index] = value.charAt(index); + } + return result; + } + return isObject(value) ? value : Object(value); +} + +module.exports = toObject; + +},{"../lang/isObject":147,"../lang/isString":149,"../support":156}],139:[function(require,module,exports){ +var baseToString = require('./baseToString'), + isArray = require('../lang/isArray'); + +/** Used to match property names within property paths. */ +var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g; + +/** Used to match backslashes in property paths. */ +var reEscapeChar = /\\(\\)?/g; + +/** + * Converts `value` to property path array if it's not one. + * + * @private + * @param {*} value The value to process. + * @returns {Array} Returns the property path array. + */ +function toPath(value) { + if (isArray(value)) { + return value; + } + var result = []; + baseToString(value).replace(rePropName, function(match, number, quote, string) { + result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; +} + +module.exports = toPath; + +},{"../lang/isArray":143,"./baseToString":93}],140:[function(require,module,exports){ +var LazyWrapper = require('./LazyWrapper'), + LodashWrapper = require('./LodashWrapper'), + arrayCopy = require('./arrayCopy'); + +/** + * Creates a clone of `wrapper`. + * + * @private + * @param {Object} wrapper The wrapper to clone. + * @returns {Object} Returns the cloned wrapper. + */ +function wrapperClone(wrapper) { + return wrapper instanceof LazyWrapper + ? wrapper.clone() + : new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__, arrayCopy(wrapper.__actions__)); +} + +module.exports = wrapperClone; + +},{"./LazyWrapper":63,"./LodashWrapper":64,"./arrayCopy":65}],141:[function(require,module,exports){ +var baseClone = require('../internal/baseClone'), + bindCallback = require('../internal/bindCallback'); + +/** + * Creates a deep clone of `value`. If `customizer` is provided it is invoked + * to produce the cloned values. If `customizer` returns `undefined` cloning + * is handled by the method instead. The `customizer` is bound to `thisArg` + * and invoked with two argument; (value [, index|key, object]). + * + * **Note:** This method is loosely based on the + * [structured clone algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm). + * The enumerable properties of `arguments` objects and objects created by + * constructors other than `Object` are cloned to plain `Object` objects. An + * empty object is returned for uncloneable values such as functions, DOM nodes, + * Maps, Sets, and WeakMaps. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to deep clone. + * @param {Function} [customizer] The function to customize cloning values. + * @param {*} [thisArg] The `this` binding of `customizer`. + * @returns {*} Returns the deep cloned value. + * @example + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * var deep = _.cloneDeep(users); + * deep[0] === users[0]; + * // => false + * + * // using a customizer callback + * var el = _.cloneDeep(document.body, function(value) { + * if (_.isElement(value)) { + * return value.cloneNode(true); + * } + * }); + * + * el === document.body + * // => false + * el.nodeName + * // => BODY + * el.childNodes.length; + * // => 20 + */ +function cloneDeep(value, customizer, thisArg) { + return typeof customizer == 'function' + ? baseClone(value, true, bindCallback(customizer, thisArg, 1)) + : baseClone(value, true); +} + +module.exports = cloneDeep; + +},{"../internal/baseClone":71,"../internal/bindCallback":97}],142:[function(require,module,exports){ +var isArrayLike = require('../internal/isArrayLike'), + isObjectLike = require('../internal/isObjectLike'); + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Native method references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/** + * Checks if `value` is classified as an `arguments` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +function isArguments(value) { + return isObjectLike(value) && isArrayLike(value) && + hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); +} + +module.exports = isArguments; + +},{"../internal/isArrayLike":122,"../internal/isObjectLike":129}],143:[function(require,module,exports){ +var getNative = require('../internal/getNative'), + isLength = require('../internal/isLength'), + isObjectLike = require('../internal/isObjectLike'); + +/** `Object#toString` result references. */ +var arrayTag = '[object Array]'; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeIsArray = getNative(Array, 'isArray'); + +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(function() { return arguments; }()); + * // => false + */ +var isArray = nativeIsArray || function(value) { + return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag; +}; + +module.exports = isArray; + +},{"../internal/getNative":117,"../internal/isLength":128,"../internal/isObjectLike":129}],144:[function(require,module,exports){ +var isArguments = require('./isArguments'), + isArray = require('./isArray'), + isArrayLike = require('../internal/isArrayLike'), + isFunction = require('./isFunction'), + isObjectLike = require('../internal/isObjectLike'), + isString = require('./isString'), + keys = require('../object/keys'); + +/** + * Checks if `value` is empty. A value is considered empty unless it is an + * `arguments` object, array, string, or jQuery-like collection with a length + * greater than `0` or an object with own enumerable properties. + * + * @static + * @memberOf _ + * @category Lang + * @param {Array|Object|string} value The value to inspect. + * @returns {boolean} Returns `true` if `value` is empty, else `false`. + * @example + * + * _.isEmpty(null); + * // => true + * + * _.isEmpty(true); + * // => true + * + * _.isEmpty(1); + * // => true + * + * _.isEmpty([1, 2, 3]); + * // => false + * + * _.isEmpty({ 'a': 1 }); + * // => false + */ +function isEmpty(value) { + if (value == null) { + return true; + } + if (isArrayLike(value) && (isArray(value) || isString(value) || isArguments(value) || + (isObjectLike(value) && isFunction(value.splice)))) { + return !value.length; + } + return !keys(value).length; +} + +module.exports = isEmpty; + +},{"../internal/isArrayLike":122,"../internal/isObjectLike":129,"../object/keys":152,"./isArguments":142,"./isArray":143,"./isFunction":145,"./isString":149}],145:[function(require,module,exports){ +var isObject = require('./isObject'); + +/** `Object#toString` result references. */ +var funcTag = '[object Function]'; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in older versions of Chrome and Safari which return 'function' for regexes + // and Safari 8 equivalents which return 'object' for typed array constructors. + return isObject(value) && objToString.call(value) == funcTag; +} + +module.exports = isFunction; + +},{"./isObject":147}],146:[function(require,module,exports){ +var isFunction = require('./isFunction'), + isHostObject = require('../internal/isHostObject'), + isObjectLike = require('../internal/isObjectLike'); + +/** Used to detect host constructors (Safari > 5). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var fnToString = Function.prototype.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** + * Checks if `value` is a native function. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, else `false`. + * @example + * + * _.isNative(Array.prototype.push); + * // => true + * + * _.isNative(_); + * // => false + */ +function isNative(value) { + if (value == null) { + return false; + } + if (isFunction(value)) { + return reIsNative.test(fnToString.call(value)); + } + return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value); +} + +module.exports = isNative; + +},{"../internal/isHostObject":123,"../internal/isObjectLike":129,"./isFunction":145}],147:[function(require,module,exports){ +/** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +module.exports = isObject; + +},{}],148:[function(require,module,exports){ +var baseForIn = require('../internal/baseForIn'), + isArguments = require('./isArguments'), + isHostObject = require('../internal/isHostObject'), + isObjectLike = require('../internal/isObjectLike'), + support = require('../support'); + +/** `Object#toString` result references. */ +var objectTag = '[object Object]'; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * **Note:** This method assumes objects created by the `Object` constructor + * have no inherited enumerable properties. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ +function isPlainObject(value) { + var Ctor; + + // Exit early for non `Object` objects. + if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value) && !isArguments(value)) || + (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) { + return false; + } + // IE < 9 iterates inherited properties before own properties. If the first + // iterated property is an object's own property then there are no inherited + // enumerable properties. + var result; + if (support.ownLast) { + baseForIn(value, function(subValue, key, object) { + result = hasOwnProperty.call(object, key); + return false; + }); + return result !== false; + } + // In most environments an object's own properties are iterated before + // its inherited properties. If the last iterated property is an object's + // own property then there are no inherited enumerable properties. + baseForIn(value, function(subValue, key) { + result = key; + }); + return result === undefined || hasOwnProperty.call(value, result); +} + +module.exports = isPlainObject; + +},{"../internal/baseForIn":78,"../internal/isHostObject":123,"../internal/isObjectLike":129,"../support":156,"./isArguments":142}],149:[function(require,module,exports){ +var isObjectLike = require('../internal/isObjectLike'); + +/** `Object#toString` result references. */ +var stringTag = '[object String]'; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */ +function isString(value) { + return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag); +} + +module.exports = isString; + +},{"../internal/isObjectLike":129}],150:[function(require,module,exports){ +var isLength = require('../internal/isLength'), + isObjectLike = require('../internal/isObjectLike'); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to identify `toStringTag` values of typed arrays. */ +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = +typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = +typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = +typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = +typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag] = typedArrayTags[arrayTag] = +typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = +typedArrayTags[dateTag] = typedArrayTags[errorTag] = +typedArrayTags[funcTag] = typedArrayTags[mapTag] = +typedArrayTags[numberTag] = typedArrayTags[objectTag] = +typedArrayTags[regexpTag] = typedArrayTags[setTag] = +typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ +function isTypedArray(value) { + return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)]; +} + +module.exports = isTypedArray; + +},{"../internal/isLength":128,"../internal/isObjectLike":129}],151:[function(require,module,exports){ +/** + * Checks if `value` is `undefined`. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. + * @example + * + * _.isUndefined(void 0); + * // => true + * + * _.isUndefined(null); + * // => false + */ +function isUndefined(value) { + return value === undefined; +} + +module.exports = isUndefined; + +},{}],152:[function(require,module,exports){ +var getNative = require('../internal/getNative'), + isArrayLike = require('../internal/isArrayLike'), + isObject = require('../lang/isObject'), + shimKeys = require('../internal/shimKeys'), + support = require('../support'); + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeKeys = getNative(Object, 'keys'); + +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys) + * for more details. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ +var keys = !nativeKeys ? shimKeys : function(object) { + var Ctor = object == null ? undefined : object.constructor; + if ((typeof Ctor == 'function' && Ctor.prototype === object) || + (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) { + return shimKeys(object); + } + return isObject(object) ? nativeKeys(object) : []; +}; + +module.exports = keys; + +},{"../internal/getNative":117,"../internal/isArrayLike":122,"../internal/shimKeys":137,"../lang/isObject":147,"../support":156}],153:[function(require,module,exports){ +var arrayEach = require('../internal/arrayEach'), + isArguments = require('../lang/isArguments'), + isArray = require('../lang/isArray'), + isFunction = require('../lang/isFunction'), + isIndex = require('../internal/isIndex'), + isLength = require('../internal/isLength'), + isObject = require('../lang/isObject'), + isString = require('../lang/isString'), + support = require('../support'); + +/** `Object#toString` result references. */ +var arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + stringTag = '[object String]'; + +/** Used to fix the JScript `[[DontEnum]]` bug. */ +var shadowProps = [ + 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', + 'toLocaleString', 'toString', 'valueOf' +]; + +/** Used for native method references. */ +var errorProto = Error.prototype, + objectProto = Object.prototype, + stringProto = String.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** Used to avoid iterating over non-enumerable properties in IE < 9. */ +var nonEnumProps = {}; +nonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true }; +nonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true }; +nonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true }; +nonEnumProps[objectTag] = { 'constructor': true }; + +arrayEach(shadowProps, function(key) { + for (var tag in nonEnumProps) { + if (hasOwnProperty.call(nonEnumProps, tag)) { + var props = nonEnumProps[tag]; + props[key] = hasOwnProperty.call(props, key); + } + } +}); + +/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ +function keysIn(object) { + if (object == null) { + return []; + } + if (!isObject(object)) { + object = Object(object); + } + var length = object.length; + + length = (length && isLength(length) && + (isArray(object) || isArguments(object) || isString(object)) && length) || 0; + + var Ctor = object.constructor, + index = -1, + proto = (isFunction(Ctor) && Ctor.prototype) || objectProto, + isProto = proto === object, + result = Array(length), + skipIndexes = length > 0, + skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error), + skipProto = support.enumPrototypes && isFunction(object); + + while (++index < length) { + result[index] = (index + ''); + } + // lodash skips the `constructor` property when it infers it is iterating + // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]` + // attribute of an existing property and the `constructor` property of a + // prototype defaults to non-enumerable. + for (var key in object) { + if (!(skipProto && key == 'prototype') && + !(skipErrorProps && (key == 'message' || key == 'name')) && + !(skipIndexes && isIndex(key, length)) && + !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + if (support.nonEnumShadows && object !== objectProto) { + var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)), + nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag]; + + if (tag == objectTag) { + proto = objectProto; + } + length = shadowProps.length; + while (length--) { + key = shadowProps[length]; + var nonEnum = nonEnums[key]; + if (!(isProto && nonEnum) && + (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) { + result.push(key); + } + } + } + return result; +} + +module.exports = keysIn; + +},{"../internal/arrayEach":66,"../internal/isIndex":124,"../internal/isLength":128,"../lang/isArguments":142,"../lang/isArray":143,"../lang/isFunction":145,"../lang/isObject":147,"../lang/isString":149,"../support":156}],154:[function(require,module,exports){ +var keys = require('./keys'), + toObject = require('../internal/toObject'); + +/** + * Creates a two dimensional array of the key-value pairs for `object`, + * e.g. `[[key1, value1], [key2, value2]]`. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the new array of key-value pairs. + * @example + * + * _.pairs({ 'barney': 36, 'fred': 40 }); + * // => [['barney', 36], ['fred', 40]] (iteration order is not guaranteed) + */ +function pairs(object) { + object = toObject(object); + + var index = -1, + props = keys(object), + length = props.length, + result = Array(length); + + while (++index < length) { + var key = props[index]; + result[index] = [key, object[key]]; + } + return result; +} + +module.exports = pairs; + +},{"../internal/toObject":138,"./keys":152}],155:[function(require,module,exports){ +var baseValues = require('../internal/baseValues'), + keys = require('./keys'); + +/** + * Creates an array of the own enumerable property values of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property values. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.values(new Foo); + * // => [1, 2] (iteration order is not guaranteed) + * + * _.values('hi'); + * // => ['h', 'i'] + */ +function values(object) { + return baseValues(object, keys(object)); +} + +module.exports = values; + +},{"../internal/baseValues":94,"./keys":152}],156:[function(require,module,exports){ +/** Used for native method references. */ +var arrayProto = Array.prototype, + errorProto = Error.prototype, + objectProto = Object.prototype; + +/** Native method references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable, + splice = arrayProto.splice; + +/** + * An object environment feature flags. + * + * @static + * @memberOf _ + * @type Object + */ +var support = {}; + +(function(x) { + var Ctor = function() { this.x = x; }, + object = { '0': x, 'length': x }, + props = []; + + Ctor.prototype = { 'valueOf': x, 'y': x }; + for (var key in new Ctor) { props.push(key); } + + /** + * Detect if `name` or `message` properties of `Error.prototype` are + * enumerable by default (IE < 9, Safari < 5.1). + * + * @memberOf _.support + * @type boolean + */ + support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') || + propertyIsEnumerable.call(errorProto, 'name'); + + /** + * Detect if `prototype` properties are enumerable by default. + * + * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1 + * (if the prototype or a property on the prototype has been set) + * incorrectly set the `[[Enumerable]]` value of a function's `prototype` + * property to `true`. + * + * @memberOf _.support + * @type boolean + */ + support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype'); + + /** + * Detect if properties shadowing those on `Object.prototype` are non-enumerable. + * + * In IE < 9 an object's own properties, shadowing non-enumerable ones, + * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug). + * + * @memberOf _.support + * @type boolean + */ + support.nonEnumShadows = !/valueOf/.test(props); + + /** + * Detect if own properties are iterated after inherited properties (IE < 9). + * + * @memberOf _.support + * @type boolean + */ + support.ownLast = props[0] != 'x'; + + /** + * Detect if `Array#shift` and `Array#splice` augment array-like objects + * correctly. + * + * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array + * `shift()` and `splice()` functions that fail to remove the last element, + * `value[0]`, of array-like objects even though the "length" property is + * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8, + * while `splice()` is buggy regardless of mode in IE < 9. + * + * @memberOf _.support + * @type boolean + */ + support.spliceObjects = (splice.call(object, 0, 1), !object[0]); + + /** + * Detect lack of support for accessing string characters by index. + * + * IE < 8 can't access characters by index. IE 8 can only access characters + * by index on string literals, not string objects. + * + * @memberOf _.support + * @type boolean + */ + support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx'; +}(1, 0)); + +module.exports = support; + +},{}],157:[function(require,module,exports){ +/** + * This method returns the first argument provided to it. + * + * @static + * @memberOf _ + * @category Utility + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'user': 'fred' }; + * + * _.identity(object) === object; + * // => true + */ +function identity(value) { + return value; +} + +module.exports = identity; + +},{}],158:[function(require,module,exports){ +/** + * A no-operation function that returns `undefined` regardless of the + * arguments it receives. + * + * @static + * @memberOf _ + * @category Utility + * @example + * + * var object = { 'user': 'fred' }; + * + * _.noop(object) === undefined; + * // => true + */ +function noop() { + // No operation performed. +} + +module.exports = noop; + +},{}],159:[function(require,module,exports){ +var baseProperty = require('../internal/baseProperty'), + basePropertyDeep = require('../internal/basePropertyDeep'), + isKey = require('../internal/isKey'); + +/** + * Creates a function that returns the property value at `path` on a + * given object. + * + * @static + * @memberOf _ + * @category Utility + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new function. + * @example + * + * var objects = [ + * { 'a': { 'b': { 'c': 2 } } }, + * { 'a': { 'b': { 'c': 1 } } } + * ]; + * + * _.map(objects, _.property('a.b.c')); + * // => [2, 1] + * + * _.pluck(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c'); + * // => [1, 2] + */ +function property(path) { + return isKey(path) ? baseProperty(path) : basePropertyDeep(path); +} + +module.exports = property; + +},{"../internal/baseProperty":89,"../internal/basePropertyDeep":90,"../internal/isKey":126}],160:[function(require,module,exports){ +/** + * Module dependencies. + */ + +var Emitter = require('emitter'); +var reduce = require('reduce'); + +/** + * Root reference for iframes. + */ + +var root = 'undefined' == typeof window + ? (this || self) + : window; + +/** + * Noop. + */ + +function noop(){}; + +/** + * Check if `obj` is a host object, + * we don't want to serialize these :) + * + * TODO: future proof, move to compoent land + * + * @param {Object} obj + * @return {Boolean} + * @api private + */ + +function isHost(obj) { + var str = {}.toString.call(obj); + + switch (str) { + case '[object File]': + case '[object Blob]': + case '[object FormData]': + return true; + default: + return false; + } +} + +/** + * Determine XHR. + */ + +request.getXHR = function () { + if (root.XMLHttpRequest + && (!root.location || 'file:' != root.location.protocol + || !root.ActiveXObject)) { + return new XMLHttpRequest; + } else { + try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) {} + try { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch(e) {} + try { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch(e) {} + try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) {} + } + return false; +}; + +/** + * Removes leading and trailing whitespace, added to support IE. + * + * @param {String} s + * @return {String} + * @api private + */ + +var trim = ''.trim + ? function(s) { return s.trim(); } + : function(s) { return s.replace(/(^\s*|\s*$)/g, ''); }; + +/** + * Check if `obj` is an object. + * + * @param {Object} obj + * @return {Boolean} + * @api private + */ + +function isObject(obj) { + return obj === Object(obj); +} + +/** + * Serialize the given `obj`. + * + * @param {Object} obj + * @return {String} + * @api private + */ + +function serialize(obj) { + if (!isObject(obj)) return obj; + var pairs = []; + for (var key in obj) { + if (null != obj[key]) { + pairs.push(encodeURIComponent(key) + + '=' + encodeURIComponent(obj[key])); + } + } + return pairs.join('&'); +} + +/** + * Expose serialization method. + */ + + request.serializeObject = serialize; + + /** + * Parse the given x-www-form-urlencoded `str`. + * + * @param {String} str + * @return {Object} + * @api private + */ + +function parseString(str) { + var obj = {}; + var pairs = str.split('&'); + var parts; + var pair; + + for (var i = 0, len = pairs.length; i < len; ++i) { + pair = pairs[i]; + parts = pair.split('='); + obj[decodeURIComponent(parts[0])] = decodeURIComponent(parts[1]); + } + + return obj; +} + +/** + * Expose parser. + */ + +request.parseString = parseString; + +/** + * Default MIME type map. + * + * superagent.types.xml = 'application/xml'; + * + */ + +request.types = { + html: 'text/html', + json: 'application/json', + xml: 'application/xml', + urlencoded: 'application/x-www-form-urlencoded', + 'form': 'application/x-www-form-urlencoded', + 'form-data': 'application/x-www-form-urlencoded' +}; + +/** + * Default serialization map. + * + * superagent.serialize['application/xml'] = function(obj){ + * return 'generated xml here'; + * }; + * + */ + + request.serialize = { + 'application/x-www-form-urlencoded': serialize, + 'application/json': JSON.stringify + }; + + /** + * Default parsers. + * + * superagent.parse['application/xml'] = function(str){ + * return { object parsed from str }; + * }; + * + */ + +request.parse = { + 'application/x-www-form-urlencoded': parseString, + 'application/json': JSON.parse +}; + +/** + * Parse the given header `str` into + * an object containing the mapped fields. + * + * @param {String} str + * @return {Object} + * @api private + */ + +function parseHeader(str) { + var lines = str.split(/\r?\n/); + var fields = {}; + var index; + var line; + var field; + var val; + + lines.pop(); // trailing CRLF + + for (var i = 0, len = lines.length; i < len; ++i) { + line = lines[i]; + index = line.indexOf(':'); + field = line.slice(0, index).toLowerCase(); + val = trim(line.slice(index + 1)); + fields[field] = val; + } + + return fields; +} + +/** + * Return the mime type for the given `str`. + * + * @param {String} str + * @return {String} + * @api private + */ + +function type(str){ + return str.split(/ *; */).shift(); +}; + +/** + * Return header field parameters. + * + * @param {String} str + * @return {Object} + * @api private + */ + +function params(str){ + return reduce(str.split(/ *; */), function(obj, str){ + var parts = str.split(/ *= */) + , key = parts.shift() + , val = parts.shift(); + + if (key && val) obj[key] = val; + return obj; + }, {}); +}; + +/** + * Initialize a new `Response` with the given `xhr`. + * + * - set flags (.ok, .error, etc) + * - parse header + * + * Examples: + * + * Aliasing `superagent` as `request` is nice: + * + * request = superagent; + * + * We can use the promise-like API, or pass callbacks: + * + * request.get('/').end(function(res){}); + * request.get('/', function(res){}); + * + * Sending data can be chained: + * + * request + * .post('/user') + * .send({ name: 'tj' }) + * .end(function(res){}); + * + * Or passed to `.send()`: + * + * request + * .post('/user') + * .send({ name: 'tj' }, function(res){}); + * + * Or passed to `.post()`: + * + * request + * .post('/user', { name: 'tj' }) + * .end(function(res){}); + * + * Or further reduced to a single call for simple cases: + * + * request + * .post('/user', { name: 'tj' }, function(res){}); + * + * @param {XMLHTTPRequest} xhr + * @param {Object} options + * @api private + */ + +function Response(req, options) { + options = options || {}; + this.req = req; + this.xhr = this.req.xhr; + // responseText is accessible only if responseType is '' or 'text' and on older browsers + this.text = ((this.req.method !='HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text')) || typeof this.xhr.responseType === 'undefined') + ? this.xhr.responseText + : null; + this.statusText = this.req.xhr.statusText; + this.setStatusProperties(this.xhr.status); + this.header = this.headers = parseHeader(this.xhr.getAllResponseHeaders()); + // getAllResponseHeaders sometimes falsely returns "" for CORS requests, but + // getResponseHeader still works. so we get content-type even if getting + // other headers fails. + this.header['content-type'] = this.xhr.getResponseHeader('content-type'); + this.setHeaderProperties(this.header); + this.body = this.req.method != 'HEAD' + ? this.parseBody(this.text ? this.text : this.xhr.response) + : null; +} + +/** + * Get case-insensitive `field` value. + * + * @param {String} field + * @return {String} + * @api public + */ + +Response.prototype.get = function(field){ + return this.header[field.toLowerCase()]; +}; + +/** + * Set header related properties: + * + * - `.type` the content type without params + * + * A response of "Content-Type: text/plain; charset=utf-8" + * will provide you with a `.type` of "text/plain". + * + * @param {Object} header + * @api private + */ + +Response.prototype.setHeaderProperties = function(header){ + // content-type + var ct = this.header['content-type'] || ''; + this.type = type(ct); + + // params + var obj = params(ct); + for (var key in obj) this[key] = obj[key]; +}; + +/** + * Parse the given body `str`. + * + * Used for auto-parsing of bodies. Parsers + * are defined on the `superagent.parse` object. + * + * @param {String} str + * @return {Mixed} + * @api private + */ + +Response.prototype.parseBody = function(str){ + var parse = request.parse[this.type]; + return parse && str && (str.length || str instanceof Object) + ? parse(str) + : null; +}; + +/** + * Set flags such as `.ok` based on `status`. + * + * For example a 2xx response will give you a `.ok` of __true__ + * whereas 5xx will be __false__ and `.error` will be __true__. The + * `.clientError` and `.serverError` are also available to be more + * specific, and `.statusType` is the class of error ranging from 1..5 + * sometimes useful for mapping respond colors etc. + * + * "sugar" properties are also defined for common cases. Currently providing: + * + * - .noContent + * - .badRequest + * - .unauthorized + * - .notAcceptable + * - .notFound + * + * @param {Number} status + * @api private + */ + +Response.prototype.setStatusProperties = function(status){ + // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request + if (status === 1223) { + status = 204; + } + + var type = status / 100 | 0; + + // status / class + this.status = status; + this.statusType = type; + + // basics + this.info = 1 == type; + this.ok = 2 == type; + this.clientError = 4 == type; + this.serverError = 5 == type; + this.error = (4 == type || 5 == type) + ? this.toError() + : false; + + // sugar + this.accepted = 202 == status; + this.noContent = 204 == status; + this.badRequest = 400 == status; + this.unauthorized = 401 == status; + this.notAcceptable = 406 == status; + this.notFound = 404 == status; + this.forbidden = 403 == status; +}; + +/** + * Return an `Error` representative of this response. + * + * @return {Error} + * @api public + */ + +Response.prototype.toError = function(){ + var req = this.req; + var method = req.method; + var url = req.url; + + var msg = 'cannot ' + method + ' ' + url + ' (' + this.status + ')'; + var err = new Error(msg); + err.status = this.status; + err.method = method; + err.url = url; + + return err; +}; + +/** + * Expose `Response`. + */ + +request.Response = Response; + +/** + * Initialize a new `Request` with the given `method` and `url`. + * + * @param {String} method + * @param {String} url + * @api public + */ + +function Request(method, url) { + var self = this; + Emitter.call(this); + this._query = this._query || []; + this.method = method; + this.url = url; + this.header = {}; + this._header = {}; + this.on('end', function(){ + var err = null; + var res = null; + + try { + res = new Response(self); + } catch(e) { + err = new Error('Parser is unable to parse the response'); + err.parse = true; + err.original = e; + return self.callback(err); + } + + self.emit('response', res); + + if (err) { + return self.callback(err, res); + } + + if (res.status >= 200 && res.status < 300) { + return self.callback(err, res); + } + + var new_err = new Error(res.statusText || 'Unsuccessful HTTP response'); + new_err.original = err; + new_err.response = res; + new_err.status = res.status; + + self.callback(err || new_err, res); + }); +} + +/** + * Mixin `Emitter`. + */ + +Emitter(Request.prototype); + +/** + * Allow for extension + */ + +Request.prototype.use = function(fn) { + fn(this); + return this; +} + +/** + * Set timeout to `ms`. + * + * @param {Number} ms + * @return {Request} for chaining + * @api public + */ + +Request.prototype.timeout = function(ms){ + this._timeout = ms; + return this; +}; + +/** + * Clear previous timeout. + * + * @return {Request} for chaining + * @api public + */ + +Request.prototype.clearTimeout = function(){ + this._timeout = 0; + clearTimeout(this._timer); + return this; +}; + +/** + * Abort the request, and clear potential timeout. + * + * @return {Request} + * @api public + */ + +Request.prototype.abort = function(){ + if (this.aborted) return; + this.aborted = true; + this.xhr.abort(); + this.clearTimeout(); + this.emit('abort'); + return this; +}; + +/** + * Set header `field` to `val`, or multiple fields with one object. + * + * Examples: + * + * req.get('/') + * .set('Accept', 'application/json') + * .set('X-API-Key', 'foobar') + * .end(callback); + * + * req.get('/') + * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' }) + * .end(callback); + * + * @param {String|Object} field + * @param {String} val + * @return {Request} for chaining + * @api public + */ + +Request.prototype.set = function(field, val){ + if (isObject(field)) { + for (var key in field) { + this.set(key, field[key]); + } + return this; + } + this._header[field.toLowerCase()] = val; + this.header[field] = val; + return this; +}; + +/** + * Remove header `field`. + * + * Example: + * + * req.get('/') + * .unset('User-Agent') + * .end(callback); + * + * @param {String} field + * @return {Request} for chaining + * @api public + */ + +Request.prototype.unset = function(field){ + delete this._header[field.toLowerCase()]; + delete this.header[field]; + return this; +}; + +/** + * Get case-insensitive header `field` value. + * + * @param {String} field + * @return {String} + * @api private + */ + +Request.prototype.getHeader = function(field){ + return this._header[field.toLowerCase()]; +}; + +/** + * Set Content-Type to `type`, mapping values from `request.types`. + * + * Examples: + * + * superagent.types.xml = 'application/xml'; + * + * request.post('/') + * .type('xml') + * .send(xmlstring) + * .end(callback); + * + * request.post('/') + * .type('application/xml') + * .send(xmlstring) + * .end(callback); + * + * @param {String} type + * @return {Request} for chaining + * @api public + */ + +Request.prototype.type = function(type){ + this.set('Content-Type', request.types[type] || type); + return this; +}; + +/** + * Set Accept to `type`, mapping values from `request.types`. + * + * Examples: + * + * superagent.types.json = 'application/json'; + * + * request.get('/agent') + * .accept('json') + * .end(callback); + * + * request.get('/agent') + * .accept('application/json') + * .end(callback); + * + * @param {String} accept + * @return {Request} for chaining + * @api public + */ + +Request.prototype.accept = function(type){ + this.set('Accept', request.types[type] || type); + return this; +}; + +/** + * Set Authorization field value with `user` and `pass`. + * + * @param {String} user + * @param {String} pass + * @return {Request} for chaining + * @api public + */ + +Request.prototype.auth = function(user, pass){ + var str = btoa(user + ':' + pass); + this.set('Authorization', 'Basic ' + str); + return this; +}; + +/** +* Add query-string `val`. +* +* Examples: +* +* request.get('/shoes') +* .query('size=10') +* .query({ color: 'blue' }) +* +* @param {Object|String} val +* @return {Request} for chaining +* @api public +*/ + +Request.prototype.query = function(val){ + if ('string' != typeof val) val = serialize(val); + if (val) this._query.push(val); + return this; +}; + +/** + * Write the field `name` and `val` for "multipart/form-data" + * request bodies. + * + * ``` js + * request.post('/upload') + * .field('foo', 'bar') + * .end(callback); + * ``` + * + * @param {String} name + * @param {String|Blob|File} val + * @return {Request} for chaining + * @api public + */ + +Request.prototype.field = function(name, val){ + if (!this._formData) this._formData = new root.FormData(); + this._formData.append(name, val); + return this; +}; + +/** + * Queue the given `file` as an attachment to the specified `field`, + * with optional `filename`. + * + * ``` js + * request.post('/upload') + * .attach(new Blob(['<a id="a"><b id="b">hey!</b></a>'], { type: "text/html"})) + * .end(callback); + * ``` + * + * @param {String} field + * @param {Blob|File} file + * @param {String} filename + * @return {Request} for chaining + * @api public + */ + +Request.prototype.attach = function(field, file, filename){ + if (!this._formData) this._formData = new root.FormData(); + this._formData.append(field, file, filename); + return this; +}; + +/** + * Send `data`, defaulting the `.type()` to "json" when + * an object is given. + * + * Examples: + * + * // querystring + * request.get('/search') + * .end(callback) + * + * // multiple data "writes" + * request.get('/search') + * .send({ search: 'query' }) + * .send({ range: '1..5' }) + * .send({ order: 'desc' }) + * .end(callback) + * + * // manual json + * request.post('/user') + * .type('json') + * .send('{"name":"tj"}) + * .end(callback) + * + * // auto json + * request.post('/user') + * .send({ name: 'tj' }) + * .end(callback) + * + * // manual x-www-form-urlencoded + * request.post('/user') + * .type('form') + * .send('name=tj') + * .end(callback) + * + * // auto x-www-form-urlencoded + * request.post('/user') + * .type('form') + * .send({ name: 'tj' }) + * .end(callback) + * + * // defaults to x-www-form-urlencoded + * request.post('/user') + * .send('name=tobi') + * .send('species=ferret') + * .end(callback) + * + * @param {String|Object} data + * @return {Request} for chaining + * @api public + */ + +Request.prototype.send = function(data){ + var obj = isObject(data); + var type = this.getHeader('Content-Type'); + + // merge + if (obj && isObject(this._data)) { + for (var key in data) { + this._data[key] = data[key]; + } + } else if ('string' == typeof data) { + if (!type) this.type('form'); + type = this.getHeader('Content-Type'); + if ('application/x-www-form-urlencoded' == type) { + this._data = this._data + ? this._data + '&' + data + : data; + } else { + this._data = (this._data || '') + data; + } + } else { + this._data = data; + } + + if (!obj || isHost(data)) return this; + if (!type) this.type('json'); + return this; +}; + +/** + * Invoke the callback with `err` and `res` + * and handle arity check. + * + * @param {Error} err + * @param {Response} res + * @api private + */ + +Request.prototype.callback = function(err, res){ + var fn = this._callback; + this.clearTimeout(); + fn(err, res); +}; + +/** + * Invoke callback with x-domain error. + * + * @api private + */ + +Request.prototype.crossDomainError = function(){ + var err = new Error('Origin is not allowed by Access-Control-Allow-Origin'); + err.crossDomain = true; + this.callback(err); +}; + +/** + * Invoke callback with timeout error. + * + * @api private + */ + +Request.prototype.timeoutError = function(){ + var timeout = this._timeout; + var err = new Error('timeout of ' + timeout + 'ms exceeded'); + err.timeout = timeout; + this.callback(err); +}; + +/** + * Enable transmission of cookies with x-domain requests. + * + * Note that for this to work the origin must not be + * using "Access-Control-Allow-Origin" with a wildcard, + * and also must set "Access-Control-Allow-Credentials" + * to "true". + * + * @api public + */ + +Request.prototype.withCredentials = function(){ + this._withCredentials = true; + return this; +}; + +/** + * Initiate request, invoking callback `fn(res)` + * with an instanceof `Response`. + * + * @param {Function} fn + * @return {Request} for chaining + * @api public + */ + +Request.prototype.end = function(fn){ + var self = this; + var xhr = this.xhr = request.getXHR(); + var query = this._query.join('&'); + var timeout = this._timeout; + var data = this._formData || this._data; + + // store callback + this._callback = fn || noop; + + // state change + xhr.onreadystatechange = function(){ + if (4 != xhr.readyState) return; + + // In IE9, reads to any property (e.g. status) off of an aborted XHR will + // result in the error "Could not complete the operation due to error c00c023f" + var status; + try { status = xhr.status } catch(e) { status = 0; } + + if (0 == status) { + if (self.timedout) return self.timeoutError(); + if (self.aborted) return; + return self.crossDomainError(); + } + self.emit('end'); + }; + + // progress + var handleProgress = function(e){ + if (e.total > 0) { + e.percent = e.loaded / e.total * 100; + } + self.emit('progress', e); + }; + if (this.hasListeners('progress')) { + xhr.onprogress = handleProgress; + } + try { + if (xhr.upload && this.hasListeners('progress')) { + xhr.upload.onprogress = handleProgress; + } + } catch(e) { + // Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist. + // Reported here: + // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context + } + + // timeout + if (timeout && !this._timer) { + this._timer = setTimeout(function(){ + self.timedout = true; + self.abort(); + }, timeout); + } + + // querystring + if (query) { + query = request.serializeObject(query); + this.url += ~this.url.indexOf('?') + ? '&' + query + : '?' + query; + } + + // initiate request + xhr.open(this.method, this.url, true); + + // CORS + if (this._withCredentials) xhr.withCredentials = true; + + // body + if ('GET' != this.method && 'HEAD' != this.method && 'string' != typeof data && !isHost(data)) { + // serialize stuff + var serialize = request.serialize[this.getHeader('Content-Type')]; + if (serialize) data = serialize(data); + } + + // set header fields + for (var field in this.header) { + if (null == this.header[field]) continue; + xhr.setRequestHeader(field, this.header[field]); + } + + // send stuff + this.emit('request', this); + xhr.send(data); + return this; +}; + +/** + * Expose `Request`. + */ + +request.Request = Request; + +/** + * Issue a request: + * + * Examples: + * + * request('GET', '/users').end(callback) + * request('/users').end(callback) + * request('/users', callback) + * + * @param {String} method + * @param {String|Function} url or callback + * @return {Request} + * @api public + */ + +function request(method, url) { + // callback + if ('function' == typeof url) { + return new Request('GET', method).end(url); + } + + // url first + if (1 == arguments.length) { + return new Request('GET', method); + } + + return new Request(method, url); +} + +/** + * GET `url` with optional callback `fn(res)`. + * + * @param {String} url + * @param {Mixed|Function} data or fn + * @param {Function} fn + * @return {Request} + * @api public + */ + +request.get = function(url, data, fn){ + var req = request('GET', url); + if ('function' == typeof data) fn = data, data = null; + if (data) req.query(data); + if (fn) req.end(fn); + return req; +}; + +/** + * HEAD `url` with optional callback `fn(res)`. + * + * @param {String} url + * @param {Mixed|Function} data or fn + * @param {Function} fn + * @return {Request} + * @api public + */ + +request.head = function(url, data, fn){ + var req = request('HEAD', url); + if ('function' == typeof data) fn = data, data = null; + if (data) req.send(data); + if (fn) req.end(fn); + return req; +}; + +/** + * DELETE `url` with optional callback `fn(res)`. + * + * @param {String} url + * @param {Function} fn + * @return {Request} + * @api public + */ + +request.del = function(url, fn){ + var req = request('DELETE', url); + if (fn) req.end(fn); + return req; +}; + +/** + * PATCH `url` with optional `data` and callback `fn(res)`. + * + * @param {String} url + * @param {Mixed} data + * @param {Function} fn + * @return {Request} + * @api public + */ + +request.patch = function(url, data, fn){ + var req = request('PATCH', url); + if ('function' == typeof data) fn = data, data = null; + if (data) req.send(data); + if (fn) req.end(fn); + return req; +}; + +/** + * POST `url` with optional `data` and callback `fn(res)`. + * + * @param {String} url + * @param {Mixed} data + * @param {Function} fn + * @return {Request} + * @api public + */ + +request.post = function(url, data, fn){ + var req = request('POST', url); + if ('function' == typeof data) fn = data, data = null; + if (data) req.send(data); + if (fn) req.end(fn); + return req; +}; + +/** + * PUT `url` with optional `data` and callback `fn(res)`. + * + * @param {String} url + * @param {Mixed|Function} data or fn + * @param {Function} fn + * @return {Request} + * @api public + */ + +request.put = function(url, data, fn){ + var req = request('PUT', url); + if ('function' == typeof data) fn = data, data = null; + if (data) req.send(data); + if (fn) req.end(fn); + return req; +}; + +/** + * Expose `request`. + */ + +module.exports = request; + +},{"emitter":161,"reduce":162}],161:[function(require,module,exports){ + +/** + * Expose `Emitter`. + */ + +module.exports = Emitter; + +/** + * Initialize a new `Emitter`. + * + * @api public + */ + +function Emitter(obj) { + if (obj) return mixin(obj); +}; + +/** + * Mixin the emitter properties. + * + * @param {Object} obj + * @return {Object} + * @api private + */ + +function mixin(obj) { + for (var key in Emitter.prototype) { + obj[key] = Emitter.prototype[key]; + } + return obj; +} + +/** + * Listen on the given `event` with `fn`. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.on = +Emitter.prototype.addEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + (this._callbacks[event] = this._callbacks[event] || []) + .push(fn); + return this; +}; + +/** + * Adds an `event` listener that will be invoked a single + * time then automatically removed. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.once = function(event, fn){ + var self = this; + this._callbacks = this._callbacks || {}; + + function on() { + self.off(event, on); + fn.apply(this, arguments); + } + + on.fn = fn; + this.on(event, on); + return this; +}; + +/** + * Remove the given callback for `event` or all + * registered callbacks. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.off = +Emitter.prototype.removeListener = +Emitter.prototype.removeAllListeners = +Emitter.prototype.removeEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + + // all + if (0 == arguments.length) { + this._callbacks = {}; + return this; + } + + // specific event + var callbacks = this._callbacks[event]; + if (!callbacks) return this; + + // remove all handlers + if (1 == arguments.length) { + delete this._callbacks[event]; + return this; + } + + // remove specific handler + var cb; + for (var i = 0; i < callbacks.length; i++) { + cb = callbacks[i]; + if (cb === fn || cb.fn === fn) { + callbacks.splice(i, 1); + break; + } + } + return this; +}; + +/** + * Emit `event` with the given args. + * + * @param {String} event + * @param {Mixed} ... + * @return {Emitter} + */ + +Emitter.prototype.emit = function(event){ + this._callbacks = this._callbacks || {}; + var args = [].slice.call(arguments, 1) + , callbacks = this._callbacks[event]; + + if (callbacks) { + callbacks = callbacks.slice(0); + for (var i = 0, len = callbacks.length; i < len; ++i) { + callbacks[i].apply(this, args); + } + } + + return this; +}; + +/** + * Return array of callbacks for `event`. + * + * @param {String} event + * @return {Array} + * @api public + */ + +Emitter.prototype.listeners = function(event){ + this._callbacks = this._callbacks || {}; + return this._callbacks[event] || []; +}; + +/** + * Check if this emitter has `event` handlers. + * + * @param {String} event + * @return {Boolean} + * @api public + */ + +Emitter.prototype.hasListeners = function(event){ + return !! this.listeners(event).length; +}; + +},{}],162:[function(require,module,exports){ + +/** + * Reduce `arr` with `fn`. + * + * @param {Array} arr + * @param {Function} fn + * @param {Mixed} initial + * + * TODO: combatible error handling? + */ + +module.exports = function(arr, fn, initial){ + var idx = 0; + var len = arr.length; + var curr = arguments.length == 3 + ? initial + : arr[idx++]; + + while (idx < len) { + curr = fn.call(null, curr, arr[idx], ++idx, arr); + } + + return curr; +}; +},{}]},{},[1])(1) +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJpbmRleC5qcyIsImxpYi9hdXRoLmpzIiwibGliL2NsaWVudC5qcyIsImxpYi9oZWxwZXJzLmpzIiwibGliL2h0dHAuanMiLCJsaWIvcmVzb2x2ZXIuanMiLCJsaWIvc2NoZW1hLW1hcmt1cC5qcyIsImxpYi9zcGVjLWNvbnZlcnRlci5qcyIsImxpYi90eXBlcy9tb2RlbC5qcyIsImxpYi90eXBlcy9vcGVyYXRpb24uanMiLCJsaWIvdHlwZXMvb3BlcmF0aW9uR3JvdXAuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnJvd3Nlci1yZXNvbHZlL2VtcHR5LmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2J1ZmZlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9idWZmZXIvbm9kZV9tb2R1bGVzL2Jhc2U2NC1qcy9saWIvYjY0LmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2J1ZmZlci9ub2RlX21vZHVsZXMvaWVlZTc1NC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9idWZmZXIvbm9kZV9tb2R1bGVzL2lzLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL3Byb2Nlc3MvYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9idG9hL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2Nvb2tpZWphci9jb29raWVqYXIuanMiLCJub2RlX21vZHVsZXMvanF1ZXJ5L2Rpc3QvanF1ZXJ5LmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvaW5kZXguanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL2NvbW1vbi5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL2R1bXBlci5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL2V4Y2VwdGlvbi5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL2xvYWRlci5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL21hcmsuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9zY2hlbWEuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9zY2hlbWEvY29yZS5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3NjaGVtYS9kZWZhdWx0X2Z1bGwuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9zY2hlbWEvZGVmYXVsdF9zYWZlLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvc2NoZW1hL2ZhaWxzYWZlLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvc2NoZW1hL2pzb24uanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9iaW5hcnkuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL2Jvb2wuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL2Zsb2F0LmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9pbnQuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL2pzL2Z1bmN0aW9uLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9qcy9yZWdleHAuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL2pzL3VuZGVmaW5lZC5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvbWFwLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9tZXJnZS5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvbnVsbC5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvb21hcC5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvcGFpcnMuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL3NlcS5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvc2V0LmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9zdHIuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL3RpbWVzdGFtcC5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL25vZGVfbW9kdWxlcy9lc3ByaW1hL2VzcHJpbWEuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9hcnJheS9pbmRleE9mLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvYXJyYXkvbGFzdC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2NoYWluL2xvZGFzaC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2NvbGxlY3Rpb24vZWFjaC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2NvbGxlY3Rpb24vZmluZC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2NvbGxlY3Rpb24vZm9yRWFjaC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2NvbGxlY3Rpb24vaW5jbHVkZXMuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9jb2xsZWN0aW9uL21hcC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2RhdGUvbm93LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvZnVuY3Rpb24vYmluZC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2Z1bmN0aW9uL3Jlc3RQYXJhbS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL0xhenlXcmFwcGVyLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvTG9kYXNoV3JhcHBlci5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2FycmF5Q29weS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2FycmF5RWFjaC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2FycmF5TWFwLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYXJyYXlTb21lLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZUFzc2lnbi5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VDYWxsYmFjay5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VDbG9uZS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VDb3B5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZUNyZWF0ZS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VFYWNoLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZUZpbmQuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlRmluZEluZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZUZvci5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VGb3JJbi5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VGb3JPd24uanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlR2V0LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZUluZGV4T2YuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlSXNFcXVhbC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VJc0VxdWFsRGVlcC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VJc01hdGNoLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZUxvZGFzaC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VNYXAuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlTWF0Y2hlcy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VNYXRjaGVzUHJvcGVydHkuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlUHJvcGVydHkuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlUHJvcGVydHlEZWVwLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZVNldERhdGEuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlU2xpY2UuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlVG9TdHJpbmcuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlVmFsdWVzLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmluYXJ5SW5kZXguanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iaW5hcnlJbmRleEJ5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmluZENhbGxiYWNrLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYnVmZmVyQ2xvbmUuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9jb21wb3NlQXJncy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2NvbXBvc2VBcmdzUmlnaHQuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9jcmVhdGVCYXNlRWFjaC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2NyZWF0ZUJhc2VGb3IuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9jcmVhdGVCaW5kV3JhcHBlci5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2NyZWF0ZUN0b3JXcmFwcGVyLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvY3JlYXRlRmluZC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2NyZWF0ZUZvckVhY2guanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9jcmVhdGVIeWJyaWRXcmFwcGVyLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvY3JlYXRlUGFydGlhbFdyYXBwZXIuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9jcmVhdGVXcmFwcGVyLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvZXF1YWxBcnJheXMuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9lcXVhbEJ5VGFnLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvZXF1YWxPYmplY3RzLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvZ2V0RGF0YS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2dldEZ1bmNOYW1lLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvZ2V0TGVuZ3RoLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvZ2V0TWF0Y2hEYXRhLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvZ2V0TmF0aXZlLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvaW5kZXhPZk5hTi5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2luaXRDbG9uZUFycmF5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvaW5pdENsb25lQnlUYWcuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9pbml0Q2xvbmVPYmplY3QuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9pc0FycmF5TGlrZS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2lzSG9zdE9iamVjdC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2lzSW5kZXguanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9pc0l0ZXJhdGVlQ2FsbC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2lzS2V5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvaXNMYXppYWJsZS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2lzTGVuZ3RoLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvaXNPYmplY3RMaWtlLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvaXNTdHJpY3RDb21wYXJhYmxlLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvbWVyZ2VEYXRhLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvbWV0YU1hcC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL3JlYWxOYW1lcy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL3Jlb3JkZXIuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9yZXBsYWNlSG9sZGVycy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL3NldERhdGEuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9zaGltS2V5cy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL3RvT2JqZWN0LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvdG9QYXRoLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvd3JhcHBlckNsb25lLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvbGFuZy9jbG9uZURlZXAuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9sYW5nL2lzQXJndW1lbnRzLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvbGFuZy9pc0FycmF5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvbGFuZy9pc0VtcHR5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvbGFuZy9pc0Z1bmN0aW9uLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvbGFuZy9pc05hdGl2ZS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2xhbmcvaXNPYmplY3QuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9sYW5nL2lzUGxhaW5PYmplY3QuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9sYW5nL2lzU3RyaW5nLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvbGFuZy9pc1R5cGVkQXJyYXkuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9sYW5nL2lzVW5kZWZpbmVkLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvb2JqZWN0L2tleXMuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9vYmplY3Qva2V5c0luLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvb2JqZWN0L3BhaXJzLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvb2JqZWN0L3ZhbHVlcy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L3N1cHBvcnQuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC91dGlsaXR5L2lkZW50aXR5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvdXRpbGl0eS9ub29wLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvdXRpbGl0eS9wcm9wZXJ0eS5qcyIsIm5vZGVfbW9kdWxlcy9zdXBlcmFnZW50L2xpYi9jbGllbnQuanMiLCJub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9ub2RlX21vZHVsZXMvY29tcG9uZW50LWVtaXR0ZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9ub2RlX21vZHVsZXMvcmVkdWNlLWNvbXBvbmVudC9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuZ0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25EQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeFBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25uQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5Z0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvbUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcjZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hCQTs7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3NUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMS9SQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMTBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbGpEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pzS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0hBO0FBQ0E7O0FDREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNiQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNaQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbm1DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIGUodCxuLHIpe2Z1bmN0aW9uIHMobyx1KXtpZighbltvXSl7aWYoIXRbb10pe3ZhciBhPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7aWYoIXUmJmEpcmV0dXJuIGEobywhMCk7aWYoaSlyZXR1cm4gaShvLCEwKTt2YXIgZj1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK28rXCInXCIpO3Rocm93IGYuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixmfXZhciBsPW5bb109e2V4cG9ydHM6e319O3Rbb11bMF0uY2FsbChsLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIG49dFtvXVsxXVtlXTtyZXR1cm4gcyhuP246ZSl9LGwsbC5leHBvcnRzLGUsdCxuLHIpfXJldHVybiBuW29dLmV4cG9ydHN9dmFyIGk9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylzKHJbb10pO3JldHVybiBzfSkiLCIndXNlIHN0cmljdCc7XG5cbnZhciBhdXRoID0gcmVxdWlyZSgnLi9saWIvYXV0aCcpO1xudmFyIGhlbHBlcnMgPSByZXF1aXJlKCcuL2xpYi9oZWxwZXJzJyk7XG52YXIgU3dhZ2dlckNsaWVudCA9IHJlcXVpcmUoJy4vbGliL2NsaWVudCcpO1xudmFyIGRlcHJlY2F0aW9uV3JhcHBlciA9IGZ1bmN0aW9uICh1cmwsIG9wdGlvbnMpIHtcbiAgaGVscGVycy5sb2coJ1RoaXMgaXMgZGVwcmVjYXRlZCwgdXNlIFwibmV3IFN3YWdnZXJDbGllbnRcIiBpbnN0ZWFkLicpO1xuXG4gIHJldHVybiBuZXcgU3dhZ2dlckNsaWVudCh1cmwsIG9wdGlvbnMpO1xufTtcblxuLyogSGVyZSBmb3IgSUU4IFN1cHBvcnQgKi9cbmlmICghQXJyYXkucHJvdG90eXBlLmluZGV4T2YpIHtcbiAgQXJyYXkucHJvdG90eXBlLmluZGV4T2YgPSBmdW5jdGlvbihvYmosIHN0YXJ0KSB7XG4gICAgZm9yICh2YXIgaSA9IChzdGFydCB8fCAwKSwgaiA9IHRoaXMubGVuZ3RoOyBpIDwgajsgaSsrKSB7XG4gICAgICBpZiAodGhpc1tpXSA9PT0gb2JqKSB7IHJldHVybiBpOyB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbiAgfTtcbn1cblxuLyogSGVyZSBmb3IgSUU4IFN1cHBvcnQgKi9cbmlmICghU3RyaW5nLnByb3RvdHlwZS50cmltKSB7XG4gIFN0cmluZy5wcm90b3R5cGUudHJpbSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXBsYWNlKC9eXFxzK3xcXHMrJC9nLCAnJyk7XG4gIH07XG59XG5cbi8qIEhlcmUgZm9yIG5vZGUgMTAueCBzdXBwb3J0ICovXG5pZiAoIVN0cmluZy5wcm90b3R5cGUuZW5kc1dpdGgpIHtcbiAgU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aCA9IGZ1bmN0aW9uKHN1ZmZpeCkge1xuICAgIHJldHVybiB0aGlzLmluZGV4T2Yoc3VmZml4LCB0aGlzLmxlbmd0aCAtIHN1ZmZpeC5sZW5ndGgpICE9PSAtMTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBTd2FnZ2VyQ2xpZW50O1xuXG5Td2FnZ2VyQ2xpZW50LkFwaUtleUF1dGhvcml6YXRpb24gPSBhdXRoLkFwaUtleUF1dGhvcml6YXRpb247XG5Td2FnZ2VyQ2xpZW50LlBhc3N3b3JkQXV0aG9yaXphdGlvbiA9IGF1dGguUGFzc3dvcmRBdXRob3JpemF0aW9uO1xuU3dhZ2dlckNsaWVudC5Db29raWVBdXRob3JpemF0aW9uID0gYXV0aC5Db29raWVBdXRob3JpemF0aW9uO1xuU3dhZ2dlckNsaWVudC5Td2FnZ2VyQXBpID0gZGVwcmVjYXRpb25XcmFwcGVyO1xuU3dhZ2dlckNsaWVudC5Td2FnZ2VyQ2xpZW50ID0gZGVwcmVjYXRpb25XcmFwcGVyO1xuU3dhZ2dlckNsaWVudC5TY2hlbWFNYXJrdXAgPSByZXF1aXJlKCcuL2xpYi9zY2hlbWEtbWFya3VwJyk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBoZWxwZXJzID0gcmVxdWlyZSgnLi9oZWxwZXJzJyk7XG52YXIgYnRvYSA9IHJlcXVpcmUoJ2J0b2EnKTsgLy8ganNoaW50IGlnbm9yZTpsaW5lXG52YXIgQ29va2llSmFyID0gcmVxdWlyZSgnY29va2llamFyJyk7XG52YXIgXyA9IHtcbiAgZWFjaDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9jb2xsZWN0aW9uL2VhY2gnKSxcbiAgaW5jbHVkZXM6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvY29sbGVjdGlvbi9pbmNsdWRlcycpLFxuICBpc09iamVjdDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2lzT2JqZWN0JyksXG4gIGlzQXJyYXk6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9pc0FycmF5Jylcbn07XG5cbi8qKlxuICogU3dhZ2dlckF1dGhvcml6YXRpb25zIGFwcGx5cyB0aGUgY29ycmVjdCBhdXRob3JpemF0aW9uIHRvIGFuIG9wZXJhdGlvbiBiZWluZyBleGVjdXRlZFxuICovXG52YXIgU3dhZ2dlckF1dGhvcml6YXRpb25zID0gbW9kdWxlLmV4cG9ydHMuU3dhZ2dlckF1dGhvcml6YXRpb25zID0gZnVuY3Rpb24gKGF1dGh6KSB7XG4gIHRoaXMuYXV0aHogPSBhdXRoeiB8fCB7fTtcbn07XG5cbi8qKlxuICogQWRkIGF1dGhzIHRvIHRoZSBoYXNoXG4gKiBXaWxsIG92ZXJ3cml0ZSBhbnkgZXhpc3RpbmdcbiAqXG4gKi9cblN3YWdnZXJBdXRob3JpemF0aW9ucy5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gKG5hbWUsIGF1dGgpIHtcbiAgaWYoXy5pc09iamVjdChuYW1lKSkge1xuICAgIGZvciAodmFyIGtleSBpbiBuYW1lKSB7XG4gICAgICB0aGlzLmF1dGh6W2tleV0gPSBuYW1lW2tleV07XG4gICAgfVxuICB9IGVsc2UgaWYodHlwZW9mIG5hbWUgPT09ICdzdHJpbmcnICl7XG4gICAgdGhpcy5hdXRoeltuYW1lXSA9IGF1dGg7XG4gIH1cblxuICByZXR1cm4gYXV0aDtcbn07XG5cblN3YWdnZXJBdXRob3JpemF0aW9ucy5wcm90b3R5cGUucmVtb3ZlID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgcmV0dXJuIGRlbGV0ZSB0aGlzLmF1dGh6W25hbWVdO1xufTtcblxuU3dhZ2dlckF1dGhvcml6YXRpb25zLnByb3RvdHlwZS5hcHBseSA9IGZ1bmN0aW9uIChvYmosIHNlY3VyaXRpZXMpIHtcbiAgdmFyIHN0YXR1cyA9IHRydWU7XG4gIHZhciBhcHBseUFsbCA9ICFzZWN1cml0aWVzO1xuICB2YXIgZmxhdHRlbmVkU2VjdXJpdGllcyA9IFtdO1xuXG4gIC8vIFNlY3VyaXRpZXMgY291bGQgYmUgWyB7fSBdXG4gIF8uZWFjaChzZWN1cml0aWVzLCBmdW5jdGlvbiAob2JqLCBrZXkpIHtcblxuICAgIC8vIE1ha2Ugc3VyZSB3ZSBhY2NvdW50IGZvciBzZWN1cml0aWVzIGJlaW5nIFsgc3RyIF1cbiAgICBpZih0eXBlb2Yga2V5ID09PSAnc3RyaW5nJykge1xuICAgICAgZmxhdHRlbmVkU2VjdXJpdGllcy5wdXNoKGtleSk7XG4gICAgfVxuXG4gICAgLy8gRmxhdHRlbiBrZXlzIGluIHRvIG91ciBhcnJheVxuICAgIF8uZWFjaChvYmosIGZ1bmN0aW9uICh2YWwsIGtleSkge1xuICAgICAgZmxhdHRlbmVkU2VjdXJpdGllcy5wdXNoKGtleSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIF8uZWFjaCh0aGlzLmF1dGh6LCBmdW5jdGlvbiAoYXV0aCwgYXV0aE5hbWUpIHtcbiAgICBpZihhcHBseUFsbCB8fCBfLmluY2x1ZGVzKGZsYXR0ZW5lZFNlY3VyaXRpZXMsIGF1dGhOYW1lKSkge1xuICAgICAgdmFyIG5ld1N0YXR1cyA9IGF1dGguYXBwbHkob2JqKTtcbiAgICAgIHN0YXR1cyA9IHN0YXR1cyAmJiAhIW5ld1N0YXR1czsgLy8gbG9naWNhbCBPUnMgcmVnYXJkaW5nIHN0YXR1c1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHN0YXR1cztcbn07XG5cbi8qKlxuICogQXBpS2V5QXV0aG9yaXphdGlvbiBhbGxvd3MgYSBxdWVyeSBwYXJhbSBvciBoZWFkZXIgdG8gYmUgaW5qZWN0ZWRcbiAqL1xudmFyIEFwaUtleUF1dGhvcml6YXRpb24gPSBtb2R1bGUuZXhwb3J0cy5BcGlLZXlBdXRob3JpemF0aW9uID0gZnVuY3Rpb24gKG5hbWUsIHZhbHVlLCB0eXBlKSB7XG4gIHRoaXMubmFtZSA9IG5hbWU7XG4gIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgdGhpcy50eXBlID0gdHlwZTtcbn07XG5cbkFwaUtleUF1dGhvcml6YXRpb24ucHJvdG90eXBlLmFwcGx5ID0gZnVuY3Rpb24gKG9iaikge1xuICBpZiAodGhpcy50eXBlID09PSAncXVlcnknKSB7XG4gICAgaWYgKG9iai51cmwuaW5kZXhPZignPycpID4gMCkge1xuICAgICAgb2JqLnVybCA9IG9iai51cmwgKyAnJicgKyB0aGlzLm5hbWUgKyAnPScgKyB0aGlzLnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBvYmoudXJsID0gb2JqLnVybCArICc/JyArIHRoaXMubmFtZSArICc9JyArIHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnaGVhZGVyJykge1xuICAgIGlmKHR5cGVvZiBvYmouaGVhZGVyc1t0aGlzLm5hbWVdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgb2JqLmhlYWRlcnNbdGhpcy5uYW1lXSA9IHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG5cbnZhciBDb29raWVBdXRob3JpemF0aW9uID0gbW9kdWxlLmV4cG9ydHMuQ29va2llQXV0aG9yaXphdGlvbiA9IGZ1bmN0aW9uIChjb29raWUpIHtcbiAgdGhpcy5jb29raWUgPSBjb29raWU7XG59O1xuXG5Db29raWVBdXRob3JpemF0aW9uLnByb3RvdHlwZS5hcHBseSA9IGZ1bmN0aW9uIChvYmopIHtcbiAgb2JqLmNvb2tpZUphciA9IG9iai5jb29raWVKYXIgfHwgbmV3IENvb2tpZUphcigpO1xuICBvYmouY29va2llSmFyLnNldENvb2tpZSh0aGlzLmNvb2tpZSk7XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG4vKipcbiAqIFBhc3N3b3JkIEF1dGhvcml6YXRpb24gaXMgYSBiYXNpYyBhdXRoIGltcGxlbWVudGF0aW9uXG4gKi9cbnZhciBQYXNzd29yZEF1dGhvcml6YXRpb24gPSBtb2R1bGUuZXhwb3J0cy5QYXNzd29yZEF1dGhvcml6YXRpb24gPSBmdW5jdGlvbiAodXNlcm5hbWUsIHBhc3N3b3JkKSB7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAzKSB7XG4gICAgaGVscGVycy5sb2coJ1Bhc3N3b3JkQXV0aG9yaXphdGlvbjogdGhlIFxcJ25hbWVcXCcgYXJndW1lbnQgaGFzIGJlZW4gcmVtb3ZlZCwgcGFzcyBvbmx5IHVzZXJuYW1lIGFuZCBwYXNzd29yZCcpO1xuICAgIHVzZXJuYW1lID0gYXJndW1lbnRzWzFdO1xuICAgIHBhc3N3b3JkID0gYXJndW1lbnRzWzJdO1xuICB9XG4gIHRoaXMudXNlcm5hbWUgPSB1c2VybmFtZTtcbiAgdGhpcy5wYXNzd29yZCA9IHBhc3N3b3JkO1xufTtcblxuUGFzc3dvcmRBdXRob3JpemF0aW9uLnByb3RvdHlwZS5hcHBseSA9IGZ1bmN0aW9uIChvYmopIHtcbiAgaWYodHlwZW9mIG9iai5oZWFkZXJzLkF1dGhvcml6YXRpb24gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgb2JqLmhlYWRlcnMuQXV0aG9yaXphdGlvbiA9ICdCYXNpYyAnICsgYnRvYSh0aGlzLnVzZXJuYW1lICsgJzonICsgdGhpcy5wYXNzd29yZCk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBfID0ge1xuICBiaW5kOiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2Z1bmN0aW9uL2JpbmQnKSxcbiAgY2xvbmVEZWVwOiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvY2xvbmVEZWVwJyksXG4gIGZpbmQ6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvY29sbGVjdGlvbi9maW5kJyksXG4gIGZvckVhY2g6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvY29sbGVjdGlvbi9mb3JFYWNoJyksXG4gIGluZGV4T2Y6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvYXJyYXkvaW5kZXhPZicpLFxuICBpc0FycmF5OiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNBcnJheScpLFxuICBpc09iamVjdDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2lzT2JqZWN0JyksXG4gIGlzRnVuY3Rpb246IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9pc0Z1bmN0aW9uJyksXG4gIGlzUGxhaW5PYmplY3Q6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9pc1BsYWluT2JqZWN0JyksXG4gIGlzVW5kZWZpbmVkOiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNVbmRlZmluZWQnKVxufTtcbnZhciBhdXRoID0gcmVxdWlyZSgnLi9hdXRoJyk7XG52YXIgaGVscGVycyA9IHJlcXVpcmUoJy4vaGVscGVycycpO1xudmFyIE1vZGVsID0gcmVxdWlyZSgnLi90eXBlcy9tb2RlbCcpO1xudmFyIE9wZXJhdGlvbiA9IHJlcXVpcmUoJy4vdHlwZXMvb3BlcmF0aW9uJyk7XG52YXIgT3BlcmF0aW9uR3JvdXAgPSByZXF1aXJlKCcuL3R5cGVzL29wZXJhdGlvbkdyb3VwJyk7XG52YXIgUmVzb2x2ZXIgPSByZXF1aXJlKCcuL3Jlc29sdmVyJyk7XG52YXIgU3dhZ2dlckh0dHAgPSByZXF1aXJlKCcuL2h0dHAnKTtcbnZhciBTd2FnZ2VyU3BlY0NvbnZlcnRlciA9IHJlcXVpcmUoJy4vc3BlYy1jb252ZXJ0ZXInKTtcblxuLy8gV2UgaGF2ZSB0byBrZWVwIHRyYWNrIG9mIHRoZSBmdW5jdGlvbi9wcm9wZXJ0eSBuYW1lcyB0byBhdm9pZCBjb2xsaXNpb25zIGZvciB0YWcgbmFtZXMgd2hpY2ggYXJlIHVzZWQgdG8gYWxsb3cgdGhlXG4vLyBmb2xsb3dpbmcgdXNhZ2U6ICdjbGllbnQue3RhZ05hbWV9J1xudmFyIHJlc2VydmVkQ2xpZW50VGFncyA9IFtcbiAgJ2FwaXMnLFxuICAnYXV0aG9yaXphdGlvblNjaGVtZScsXG4gICdhdXRob3JpemF0aW9ucycsXG4gICdiYXNlUGF0aCcsXG4gICdidWlsZCcsXG4gICdidWlsZEZyb20xXzFTcGVjJyxcbiAgJ2J1aWxkRnJvbTFfMlNwZWMnLFxuICAnYnVpbGRGcm9tU3BlYycsXG4gICdjbGllbnRBdXRob3JpemF0aW9ucycsXG4gICdjb252ZXJ0SW5mbycsXG4gICdkZWJ1ZycsXG4gICdkZWZhdWx0RXJyb3JDYWxsYmFjaycsXG4gICdkZWZhdWx0U3VjY2Vzc0NhbGxiYWNrJyxcbiAgJ2ZhaWwnLFxuICAnZmFpbHVyZScsXG4gICdmaW5pc2gnLFxuICAnaGVscCcsXG4gICdpZEZyb21PcCcsXG4gICdpbmZvJyxcbiAgJ2luaXRpYWxpemUnLFxuICAnaXNCdWlsdCcsXG4gICdpc1ZhbGlkJyxcbiAgJ21vZGVsUHJvcGVydHlNYWNybycsXG4gICdtb2RlbHMnLFxuICAnbW9kZWxzQXJyYXknLFxuICAnb3B0aW9ucycsXG4gICdwYXJhbWV0ZXJNYWNybycsXG4gICdwYXJzZVVyaScsXG4gICdwcm9ncmVzcycsXG4gICdyZXNvdXJjZUNvdW50JyxcbiAgJ3NhbXBsZU1vZGVscycsXG4gICdzZWxmUmVmbGVjdCcsXG4gICdzZXRDb25zb2xpZGF0ZWRNb2RlbHMnLFxuICAnc3BlYycsXG4gICdzdXBwb3J0ZWRTdWJtaXRNZXRob2RzJyxcbiAgJ3N3YWdnZXJSZXF1ZXN0SGVhZGVycycsXG4gICd0YWdGcm9tTGFiZWwnLFxuICAndXJsJyxcbiAgJ3VzZUpRdWVyeSdcbl07XG4vLyBXZSBoYXZlIHRvIGtlZXAgdHJhY2sgb2YgdGhlIGZ1bmN0aW9uL3Byb3BlcnR5IG5hbWVzIHRvIGF2b2lkIGNvbGxpc2lvbnMgZm9yIHRhZyBuYW1lcyB3aGljaCBhcmUgdXNlZCB0byBhbGxvdyB0aGVcbi8vIGZvbGxvd2luZyB1c2FnZTogJ2NsaWVudC5hcGlzLnt0YWdOYW1lfSdcbnZhciByZXNlcnZlZEFwaVRhZ3MgPSBbXG4gICdhcGlzJyxcbiAgJ2FzQ3VybCcsXG4gICdkZXNjcmlwdGlvbicsXG4gICdleHRlcm5hbERvY3MnLFxuICAnaGVscCcsXG4gICdsYWJlbCcsXG4gICduYW1lJyxcbiAgJ29wZXJhdGlvbicsXG4gICdvcGVyYXRpb25zJyxcbiAgJ29wZXJhdGlvbnNBcnJheScsXG4gICdwYXRoJyxcbiAgJ3RhZydcbl07XG52YXIgc3VwcG9ydGVkT3BlcmF0aW9uTWV0aG9kcyA9IFsnZGVsZXRlJywgJ2dldCcsICdoZWFkJywgJ29wdGlvbnMnLCAncGF0Y2gnLCAncG9zdCcsICdwdXQnXTtcbnZhciBTd2FnZ2VyQ2xpZW50ID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodXJsLCBvcHRpb25zKSB7XG4gIHRoaXMuYXV0aG9yaXphdGlvbnMgPSBudWxsO1xuICB0aGlzLmF1dGhvcml6YXRpb25TY2hlbWUgPSBudWxsO1xuICB0aGlzLmJhc2VQYXRoID0gbnVsbDtcbiAgdGhpcy5kZWJ1ZyA9IGZhbHNlO1xuICB0aGlzLmluZm8gPSBudWxsO1xuICB0aGlzLmlzQnVpbHQgPSBmYWxzZTtcbiAgdGhpcy5pc1ZhbGlkID0gZmFsc2U7XG4gIHRoaXMubW9kZWxzQXJyYXkgPSBbXTtcbiAgdGhpcy5yZXNvdXJjZUNvdW50ID0gMDtcbiAgdGhpcy51cmwgPSBudWxsO1xuICB0aGlzLnVzZUpRdWVyeSA9IGZhbHNlO1xuICB0aGlzLnN3YWdnZXJPYmplY3QgPSB7fTtcblxuICB0aGlzLmNsaWVudEF1dGhvcml6YXRpb25zID0gbmV3IGF1dGguU3dhZ2dlckF1dGhvcml6YXRpb25zKCk7XG5cbiAgaWYgKHR5cGVvZiB1cmwgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZSh1cmwsIG9wdGlvbnMpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59O1xuXG5Td2FnZ2VyQ2xpZW50LnByb3RvdHlwZS5pbml0aWFsaXplID0gZnVuY3Rpb24gKHVybCwgb3B0aW9ucykge1xuICB0aGlzLm1vZGVscyA9IHt9O1xuICB0aGlzLnNhbXBsZU1vZGVscyA9IHt9O1xuXG4gIGlmICh0eXBlb2YgdXJsID09PSAnc3RyaW5nJykge1xuICAgIHRoaXMudXJsID0gdXJsO1xuICB9IGVsc2UgaWYgKF8uaXNPYmplY3QodXJsKSkge1xuICAgIG9wdGlvbnMgPSB1cmw7XG4gICAgdGhpcy51cmwgPSBvcHRpb25zLnVybDtcbiAgfVxuXG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICB0aGlzLmNsaWVudEF1dGhvcml6YXRpb25zLmFkZChvcHRpb25zLmF1dGhvcml6YXRpb25zKTtcbiAgdGhpcy5zd2FnZ2VyUmVxdWVzdEhlYWRlcnMgPSBvcHRpb25zLnN3YWdnZXJSZXF1ZXN0SGVhZGVycyB8fCAnYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04LCovKic7XG4gIHRoaXMuZGVmYXVsdFN1Y2Nlc3NDYWxsYmFjayA9IG9wdGlvbnMuZGVmYXVsdFN1Y2Nlc3NDYWxsYmFjayB8fCBudWxsO1xuICB0aGlzLmRlZmF1bHRFcnJvckNhbGxiYWNrID0gb3B0aW9ucy5kZWZhdWx0RXJyb3JDYWxsYmFjayB8fCBudWxsO1xuICB0aGlzLm1vZGVsUHJvcGVydHlNYWNybyA9IG9wdGlvbnMubW9kZWxQcm9wZXJ0eU1hY3JvIHx8IG51bGw7XG4gIHRoaXMucGFyYW1ldGVyTWFjcm8gPSBvcHRpb25zLnBhcmFtZXRlck1hY3JvIHx8IG51bGw7XG5cbiAgaWYgKHR5cGVvZiBvcHRpb25zLnN1Y2Nlc3MgPT09ICdmdW5jdGlvbicpIHtcbiAgICB0aGlzLnN1Y2Nlc3MgPSBvcHRpb25zLnN1Y2Nlc3M7XG4gIH1cblxuICBpZiAob3B0aW9ucy51c2VKUXVlcnkpIHtcbiAgICB0aGlzLnVzZUpRdWVyeSA9IG9wdGlvbnMudXNlSlF1ZXJ5O1xuICB9XG5cbiAgdGhpcy5vcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICB0aGlzLnN1cHBvcnRlZFN1Ym1pdE1ldGhvZHMgPSBvcHRpb25zLnN1cHBvcnRlZFN1Ym1pdE1ldGhvZHMgfHwgW107XG4gIHRoaXMuZmFpbHVyZSA9IG9wdGlvbnMuZmFpbHVyZSB8fCBmdW5jdGlvbiAoKSB7fTtcbiAgdGhpcy5wcm9ncmVzcyA9IG9wdGlvbnMucHJvZ3Jlc3MgfHwgZnVuY3Rpb24gKCkge307XG4gIHRoaXMuc3BlYyA9IF8uY2xvbmVEZWVwKG9wdGlvbnMuc3BlYyk7IC8vIENsb25lIHNvIHdlIGRvIG5vdCBhbHRlciB0aGUgcHJvdmlkZWQgZG9jdW1lbnRcblxuICBpZiAob3B0aW9ucy5zY2hlbWUpIHtcbiAgICB0aGlzLnNjaGVtZSA9IG9wdGlvbnMuc2NoZW1lO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBvcHRpb25zLnN1Y2Nlc3MgPT09ICdmdW5jdGlvbicpIHtcbiAgICB0aGlzLnJlYWR5ID0gdHJ1ZTtcbiAgICB0aGlzLmJ1aWxkKCk7XG4gIH1cbn07XG5cblN3YWdnZXJDbGllbnQucHJvdG90eXBlLmJ1aWxkID0gZnVuY3Rpb24gKG1vY2spIHtcbiAgaWYgKHRoaXMuaXNCdWlsdCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gIHRoaXMucHJvZ3Jlc3MoJ2ZldGNoaW5nIHJlc291cmNlIGxpc3Q6ICcgKyB0aGlzLnVybCk7XG5cbiAgdmFyIG9iaiA9IHtcbiAgICB1c2VKUXVlcnk6IHRoaXMudXNlSlF1ZXJ5LFxuICAgIHVybDogdGhpcy51cmwsXG4gICAgbWV0aG9kOiAnZ2V0JyxcbiAgICBoZWFkZXJzOiB7XG4gICAgICBhY2NlcHQ6IHRoaXMuc3dhZ2dlclJlcXVlc3RIZWFkZXJzXG4gICAgfSxcbiAgICBvbjoge1xuICAgICAgZXJyb3I6IGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICBpZiAoc2VsZi51cmwuc3Vic3RyaW5nKDAsIDQpICE9PSAnaHR0cCcpIHtcbiAgICAgICAgICByZXR1cm4gc2VsZi5mYWlsKCdQbGVhc2Ugc3BlY2lmeSB0aGUgcHJvdG9jb2wgZm9yICcgKyBzZWxmLnVybCk7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHNlbGYuZmFpbCgnQ2FuXFwndCByZWFkIGZyb20gc2VydmVyLiAgSXQgbWF5IG5vdCBoYXZlIHRoZSBhcHByb3ByaWF0ZSBhY2Nlc3MtY29udHJvbC1vcmlnaW4gc2V0dGluZ3MuJyk7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgICByZXR1cm4gc2VsZi5mYWlsKCdDYW5cXCd0IHJlYWQgc3dhZ2dlciBKU09OIGZyb20gJyArIHNlbGYudXJsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gc2VsZi5mYWlsKHJlc3BvbnNlLnN0YXR1cyArICcgOiAnICsgcmVzcG9uc2Uuc3RhdHVzVGV4dCArICcgJyArIHNlbGYudXJsKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHJlc3BvbnNlOiBmdW5jdGlvbiAocmVzcCkge1xuXG4gICAgICAgIHZhciByZXNwb25zZU9iaiA9IHJlc3Aub2JqO1xuICAgICAgICBpZighcmVzcG9uc2VPYmopIHtcbiAgICAgICAgICByZXR1cm4gc2VsZi5mYWlsKCdmYWlsZWQgdG8gcGFyc2UgSlNPTi9ZQU1MIHJlc3BvbnNlJyk7XG4gICAgICAgIH1cblxuICAgICAgICBzZWxmLnN3YWdnZXJWZXJzaW9uID0gcmVzcG9uc2VPYmouc3dhZ2dlclZlcnNpb247XG4gICAgICAgIHNlbGYuc3dhZ2dlck9iamVjdCA9IHJlc3BvbnNlT2JqO1xuXG4gICAgICAgIGlmIChyZXNwb25zZU9iai5zd2FnZ2VyICYmIHBhcnNlSW50KHJlc3BvbnNlT2JqLnN3YWdnZXIpID09PSAyKSB7XG4gICAgICAgICAgc2VsZi5zd2FnZ2VyVmVyc2lvbiA9IHJlc3BvbnNlT2JqLnN3YWdnZXI7XG5cbiAgICAgICAgICBuZXcgUmVzb2x2ZXIoKS5yZXNvbHZlKHJlc3BvbnNlT2JqLCBzZWxmLnVybCwgc2VsZi5idWlsZEZyb21TcGVjLCBzZWxmKTtcblxuICAgICAgICAgIHNlbGYuaXNWYWxpZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIGNvbnZlcnRlciA9IG5ldyBTd2FnZ2VyU3BlY0NvbnZlcnRlcigpO1xuICAgICAgICAgIHNlbGYub2xkU3dhZ2dlck9iamVjdCA9IHNlbGYuc3dhZ2dlck9iamVjdDtcblxuICAgICAgICAgIGNvbnZlcnRlci5zZXREb2N1bWVudGF0aW9uTG9jYXRpb24oc2VsZi51cmwpO1xuICAgICAgICAgIGNvbnZlcnRlci5jb252ZXJ0KHJlc3BvbnNlT2JqLCBzZWxmLmNsaWVudEF1dGhvcml6YXRpb25zLCBmdW5jdGlvbihzcGVjKSB7XG4gICAgICAgICAgICBzZWxmLnN3YWdnZXJPYmplY3QgPSBzcGVjO1xuICAgICAgICAgICAgbmV3IFJlc29sdmVyKCkucmVzb2x2ZShzcGVjLCBzZWxmLnVybCwgc2VsZi5idWlsZEZyb21TcGVjLCBzZWxmKTtcbiAgICAgICAgICAgIHNlbGYuaXNWYWxpZCA9IHRydWU7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgaWYgKHRoaXMuc3BlYykge1xuICAgIHNlbGYuc3dhZ2dlck9iamVjdCA9IHRoaXMuc3BlYztcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIG5ldyBSZXNvbHZlcigpLnJlc29sdmUoc2VsZi5zcGVjLCBzZWxmLmJ1aWxkRnJvbVNwZWMsIHNlbGYpO1xuICAgIH0sIDEwKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLmNsaWVudEF1dGhvcml6YXRpb25zLmFwcGx5KG9iaik7XG5cbiAgICBpZiAobW9jaykge1xuICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG5cbiAgICBuZXcgU3dhZ2dlckh0dHAoKS5leGVjdXRlKG9iaiwgdGhpcy5vcHRpb25zKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufTtcblxuU3dhZ2dlckNsaWVudC5wcm90b3R5cGUuYnVpbGRGcm9tU3BlYyA9IGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICBpZiAodGhpcy5pc0J1aWx0KSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB0aGlzLmFwaXMgPSB7fTtcbiAgdGhpcy5hcGlzQXJyYXkgPSBbXTtcbiAgdGhpcy5iYXNlUGF0aCA9IHJlc3BvbnNlLmJhc2VQYXRoIHx8ICcnO1xuICB0aGlzLmNvbnN1bWVzID0gcmVzcG9uc2UuY29uc3VtZXM7XG4gIHRoaXMuaG9zdCA9IHJlc3BvbnNlLmhvc3QgfHwgJyc7XG4gIHRoaXMuaW5mbyA9IHJlc3BvbnNlLmluZm8gfHwge307XG4gIHRoaXMucHJvZHVjZXMgPSByZXNwb25zZS5wcm9kdWNlcztcbiAgdGhpcy5zY2hlbWVzID0gcmVzcG9uc2Uuc2NoZW1lcyB8fCBbXTtcbiAgdGhpcy5zZWN1cml0eURlZmluaXRpb25zID0gcmVzcG9uc2Uuc2VjdXJpdHlEZWZpbml0aW9ucztcbiAgdGhpcy50aXRsZSA9IHJlc3BvbnNlLnRpdGxlIHx8ICcnO1xuXG4gIGlmIChyZXNwb25zZS5leHRlcm5hbERvY3MpIHtcbiAgICB0aGlzLmV4dGVybmFsRG9jcyA9IHJlc3BvbnNlLmV4dGVybmFsRG9jcztcbiAgfVxuXG4gIC8vIGxlZ2FjeSBzdXBwb3J0XG4gIHRoaXMuYXV0aFNjaGVtZXMgPSByZXNwb25zZS5zZWN1cml0eURlZmluaXRpb25zO1xuXG4gIHZhciBkZWZpbmVkVGFncyA9IHt9O1xuICB2YXIgaztcblxuICBpZiAoQXJyYXkuaXNBcnJheShyZXNwb25zZS50YWdzKSkge1xuICAgIGRlZmluZWRUYWdzID0ge307XG5cbiAgICBmb3IgKGsgPSAwOyBrIDwgcmVzcG9uc2UudGFncy5sZW5ndGg7IGsrKykge1xuICAgICAgdmFyIHQgPSByZXNwb25zZS50YWdzW2tdO1xuICAgICAgZGVmaW5lZFRhZ3NbdC5uYW1lXSA9IHQ7XG4gICAgfVxuICB9XG5cbiAgdmFyIGxvY2F0aW9uO1xuXG4gIGlmICh0eXBlb2YgdGhpcy51cmwgPT09ICdzdHJpbmcnKSB7XG4gICAgbG9jYXRpb24gPSB0aGlzLnBhcnNlVXJpKHRoaXMudXJsKTtcbiAgICBpZiAodHlwZW9mIHRoaXMuc2NoZW1lID09PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgdGhpcy5zY2hlbWVzID09PSAndW5kZWZpbmVkJyB8fCB0aGlzLnNjaGVtZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnNjaGVtZSA9IGxvY2F0aW9uLnNjaGVtZSB8fCAnaHR0cCc7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5zY2hlbWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLnNjaGVtZSA9IHRoaXMuc2NoZW1lc1swXTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMuaG9zdCA9PT0gJ3VuZGVmaW5lZCcgfHwgdGhpcy5ob3N0ID09PSAnJykge1xuICAgICAgdGhpcy5ob3N0ID0gbG9jYXRpb24uaG9zdDtcblxuICAgICAgaWYgKGxvY2F0aW9uLnBvcnQpIHtcbiAgICAgICAgdGhpcy5ob3N0ID0gdGhpcy5ob3N0ICsgJzonICsgbG9jYXRpb24ucG9ydDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZWxzZSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnNjaGVtZXMgPT09ICd1bmRlZmluZWQnIHx8IHRoaXMuc2NoZW1lcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuc2NoZW1lID0gJ2h0dHAnO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgdGhpcy5zY2hlbWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLnNjaGVtZSA9IHRoaXMuc2NoZW1lc1swXTtcbiAgICB9XG4gIH1cblxuICB0aGlzLmRlZmluaXRpb25zID0gcmVzcG9uc2UuZGVmaW5pdGlvbnM7XG5cbiAgdmFyIGtleTtcblxuICBmb3IgKGtleSBpbiB0aGlzLmRlZmluaXRpb25zKSB7XG4gICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKGtleSwgdGhpcy5kZWZpbml0aW9uc1trZXldLCB0aGlzLm1vZGVscywgdGhpcy5tb2RlbFByb3BlcnR5TWFjcm8pO1xuXG4gICAgaWYgKG1vZGVsKSB7XG4gICAgICB0aGlzLm1vZGVsc1trZXldID0gbW9kZWw7XG4gICAgfVxuICB9XG5cbiAgLy8gZ2V0IHBhdGhzLCBjcmVhdGUgZnVuY3Rpb25zIGZvciBlYWNoIG9wZXJhdGlvbklkXG4gIHZhciBzZWxmID0gdGhpcztcblxuICAvLyBCaW5kIGhlbHAgdG8gJ2NsaWVudC5hcGlzJ1xuICBzZWxmLmFwaXMuaGVscCA9IF8uYmluZChzZWxmLmhlbHAsIHNlbGYpO1xuXG4gIF8uZm9yRWFjaChyZXNwb25zZS5wYXRocywgZnVuY3Rpb24gKHBhdGhPYmosIHBhdGgpIHtcbiAgICAvLyBPbmx5IHByb2Nlc3MgYSBwYXRoIGlmIGl0J3MgYW4gb2JqZWN0XG4gICAgaWYgKCFfLmlzUGxhaW5PYmplY3QocGF0aE9iaikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBfLmZvckVhY2goc3VwcG9ydGVkT3BlcmF0aW9uTWV0aG9kcywgZnVuY3Rpb24gKG1ldGhvZCkge1xuICAgICAgdmFyIG9wZXJhdGlvbiA9IHBhdGhPYmpbbWV0aG9kXTtcblxuICAgICAgaWYgKF8uaXNVbmRlZmluZWQob3BlcmF0aW9uKSkge1xuICAgICAgICAvLyBPcGVyYXRpb24gZG9lcyBub3QgZXhpc3RcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIGlmICghXy5pc1BsYWluT2JqZWN0KG9wZXJhdGlvbikpIHtcbiAgICAgICAgLy8gT3BlcmF0aW9uIGV4aXN0cyBidXQgaXQgaXMgbm90IGFuIE9wZXJhdGlvbiBPYmplY3QuICBTaW5jZSB0aGlzIGlzIGludmFsaWQsIGxvZyBpdC5cbiAgICAgICAgaGVscGVycy5sb2coJ1RoZSBcXCcnICsgbWV0aG9kICsgJ1xcJyBvcGVyYXRpb24gZm9yIFxcJycgKyBwYXRoICsgJ1xcJyBwYXRoIGlzIG5vdCBhbiBPcGVyYXRpb24gT2JqZWN0Jyk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YXIgdGFncyA9IG9wZXJhdGlvbi50YWdzO1xuXG4gICAgICBpZiAoXy5pc1VuZGVmaW5lZCh0YWdzKSB8fCAhXy5pc0FycmF5KHRhZ3MpIHx8IHRhZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRhZ3MgPSBvcGVyYXRpb24udGFncyA9IFsgJ2RlZmF1bHQnIF07XG4gICAgICB9XG5cbiAgICAgIHZhciBvcGVyYXRpb25JZCA9IHNlbGYuaWRGcm9tT3AocGF0aCwgbWV0aG9kLCBvcGVyYXRpb24pO1xuICAgICAgdmFyIG9wZXJhdGlvbk9iamVjdCA9IG5ldyBPcGVyYXRpb24oc2VsZixcbiAgICAgICAgb3BlcmF0aW9uLnNjaGVtZSxcbiAgICAgICAgb3BlcmF0aW9uSWQsXG4gICAgICAgIG1ldGhvZCxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBzZWxmLmRlZmluaXRpb25zLFxuICAgICAgICBzZWxmLm1vZGVscyxcbiAgICAgICAgc2VsZi5jbGllbnRBdXRob3JpemF0aW9ucyk7XG5cbiAgICAgIC8vIGJpbmQgc2VsZiBvcGVyYXRpb24ncyBleGVjdXRlIGNvbW1hbmQgdG8gdGhlIGFwaVxuICAgICAgXy5mb3JFYWNoKHRhZ3MsIGZ1bmN0aW9uICh0YWcpIHtcbiAgICAgICAgdmFyIGNsaWVudFByb3BlcnR5ID0gXy5pbmRleE9mKHJlc2VydmVkQ2xpZW50VGFncywgdGFnKSA+IC0xID8gJ18nICsgdGFnIDogdGFnO1xuICAgICAgICB2YXIgYXBpUHJvcGVydHkgPSBfLmluZGV4T2YocmVzZXJ2ZWRBcGlUYWdzLCB0YWcpID4gLTEgPyAnXycgKyB0YWcgOiB0YWc7XG4gICAgICAgIHZhciBvcGVyYXRpb25Hcm91cCA9IHNlbGZbY2xpZW50UHJvcGVydHldO1xuXG4gICAgICAgIGlmIChjbGllbnRQcm9wZXJ0eSAhPT0gdGFnKSB7XG4gICAgICAgICAgaGVscGVycy5sb2coJ1RoZSBcXCcnICsgdGFnICsgJ1xcJyB0YWcgY29uZmxpY3RzIHdpdGggYSBTd2FnZ2VyQ2xpZW50IGZ1bmN0aW9uL3Byb3BlcnR5IG5hbWUuICBVc2UgXFwnY2xpZW50LicgK1xuICAgICAgICAgICAgICAgICAgICAgIGNsaWVudFByb3BlcnR5ICsgJ1xcJyBvciBcXCdjbGllbnQuYXBpcy4nICsgdGFnICsgJ1xcJyBpbnN0ZWFkIG9mIFxcJ2NsaWVudC4nICsgdGFnICsgJ1xcJy4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhcGlQcm9wZXJ0eSAhPT0gdGFnKSB7XG4gICAgICAgICAgaGVscGVycy5sb2coJ1RoZSBcXCcnICsgdGFnICsgJ1xcJyB0YWcgY29uZmxpY3RzIHdpdGggYSBTd2FnZ2VyQ2xpZW50IG9wZXJhdGlvbiBmdW5jdGlvbi9wcm9wZXJ0eSBuYW1lLiAgVXNlICcgK1xuICAgICAgICAgICAgICAgICAgICAgICdcXCdjbGllbnQuYXBpcy4nICsgYXBpUHJvcGVydHkgKyAnXFwnIGluc3RlYWQgb2YgXFwnY2xpZW50LmFwaXMuJyArIHRhZyArICdcXCcuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXy5pbmRleE9mKHJlc2VydmVkQXBpVGFncywgb3BlcmF0aW9uSWQpID4gLTEpIHtcbiAgICAgICAgICBoZWxwZXJzLmxvZygnVGhlIFxcJycgKyBvcGVyYXRpb25JZCArICdcXCcgb3BlcmF0aW9uSWQgY29uZmxpY3RzIHdpdGggYSBTd2FnZ2VyQ2xpZW50IG9wZXJhdGlvbiAnICtcbiAgICAgICAgICAgICAgICAgICAgICAnZnVuY3Rpb24vcHJvcGVydHkgbmFtZS4gIFVzZSBcXCdjbGllbnQuYXBpcy4nICsgYXBpUHJvcGVydHkgKyAnLl8nICsgb3BlcmF0aW9uSWQgK1xuICAgICAgICAgICAgICAgICAgICAgICdcXCcgaW5zdGVhZCBvZiBcXCdjbGllbnQuYXBpcy4nICsgYXBpUHJvcGVydHkgKyAnLicgKyBvcGVyYXRpb25JZCArICdcXCcuJyk7XG5cbiAgICAgICAgICBvcGVyYXRpb25JZCA9ICdfJyArIG9wZXJhdGlvbklkO1xuICAgICAgICAgIG9wZXJhdGlvbk9iamVjdC5uaWNrbmFtZSA9IG9wZXJhdGlvbklkOyAvLyBTbyAnY2xpZW50LmFwaXMuW3RhZ10ub3BlcmF0aW9uSWQuaGVscCgpIHdvcmtzIHByb3Blcmx5XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZChvcGVyYXRpb25Hcm91cCkpIHtcbiAgICAgICAgICBvcGVyYXRpb25Hcm91cCA9IHNlbGZbY2xpZW50UHJvcGVydHldID0gc2VsZi5hcGlzW2FwaVByb3BlcnR5XSA9IHt9O1xuXG4gICAgICAgICAgb3BlcmF0aW9uR3JvdXAub3BlcmF0aW9ucyA9IHt9O1xuICAgICAgICAgIG9wZXJhdGlvbkdyb3VwLmxhYmVsID0gYXBpUHJvcGVydHk7XG4gICAgICAgICAgb3BlcmF0aW9uR3JvdXAuYXBpcyA9IHt9O1xuXG4gICAgICAgICAgdmFyIHRhZ0RlZiA9IGRlZmluZWRUYWdzW3RhZ107XG5cbiAgICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQodGFnRGVmKSkge1xuICAgICAgICAgICAgb3BlcmF0aW9uR3JvdXAuZGVzY3JpcHRpb24gPSB0YWdEZWYuZGVzY3JpcHRpb247XG4gICAgICAgICAgICBvcGVyYXRpb25Hcm91cC5leHRlcm5hbERvY3MgPSB0YWdEZWYuZXh0ZXJuYWxEb2NzO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNlbGZbY2xpZW50UHJvcGVydHldLmhlbHAgPSBfLmJpbmQoc2VsZi5oZWxwLCBvcGVyYXRpb25Hcm91cCk7XG4gICAgICAgICAgc2VsZi5hcGlzQXJyYXkucHVzaChuZXcgT3BlcmF0aW9uR3JvdXAodGFnLCBvcGVyYXRpb25Hcm91cC5kZXNjcmlwdGlvbiwgb3BlcmF0aW9uR3JvdXAuZXh0ZXJuYWxEb2NzLCBvcGVyYXRpb25PYmplY3QpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJpbmQgdGFnIGhlbHBcbiAgICAgICAgaWYgKCFfLmlzRnVuY3Rpb24ob3BlcmF0aW9uR3JvdXAuaGVscCkpIHtcbiAgICAgICAgICBvcGVyYXRpb25Hcm91cC5oZWxwID0gXy5iaW5kKHNlbGYuaGVscCwgb3BlcmF0aW9uR3JvdXApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYmluZCB0byB0aGUgYXBpcyBvYmplY3RcbiAgICAgICAgc2VsZi5hcGlzW2FwaVByb3BlcnR5XVtvcGVyYXRpb25JZF0gPSBvcGVyYXRpb25Hcm91cFtvcGVyYXRpb25JZF0gPSBfLmJpbmQob3BlcmF0aW9uT2JqZWN0LmV4ZWN1dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uT2JqZWN0KTtcbiAgICAgICAgc2VsZi5hcGlzW2FwaVByb3BlcnR5XVtvcGVyYXRpb25JZF0uaGVscCA9IG9wZXJhdGlvbkdyb3VwW29wZXJhdGlvbklkXS5oZWxwID0gXy5iaW5kKG9wZXJhdGlvbk9iamVjdC5oZWxwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uT2JqZWN0KTtcbiAgICAgICAgc2VsZi5hcGlzW2FwaVByb3BlcnR5XVtvcGVyYXRpb25JZF0uYXNDdXJsID0gb3BlcmF0aW9uR3JvdXBbb3BlcmF0aW9uSWRdLmFzQ3VybCA9IF8uYmluZChvcGVyYXRpb25PYmplY3QuYXNDdXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbk9iamVjdCk7XG5cbiAgICAgICAgb3BlcmF0aW9uR3JvdXAuYXBpc1tvcGVyYXRpb25JZF0gPSBvcGVyYXRpb25Hcm91cC5vcGVyYXRpb25zW29wZXJhdGlvbklkXSA9IG9wZXJhdGlvbk9iamVjdDtcblxuICAgICAgICAvLyBsZWdhY3kgVUkgZmVhdHVyZVxuICAgICAgICB2YXIgYXBpID0gXy5maW5kKHNlbGYuYXBpc0FycmF5LCBmdW5jdGlvbiAoYXBpKSB7XG4gICAgICAgICAgcmV0dXJuIGFwaS50YWcgPT09IHRhZztcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGFwaSkge1xuICAgICAgICAgIGFwaS5vcGVyYXRpb25zQXJyYXkucHVzaChvcGVyYXRpb25PYmplY3QpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgdGhpcy5pc0J1aWx0ID0gdHJ1ZTtcblxuICBpZiAodGhpcy5zdWNjZXNzKSB7XG4gICAgdGhpcy5pc1ZhbGlkID0gdHJ1ZTtcbiAgICB0aGlzLmlzQnVpbHQgPSB0cnVlO1xuICAgIHRoaXMuc3VjY2VzcygpO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5Td2FnZ2VyQ2xpZW50LnByb3RvdHlwZS5wYXJzZVVyaSA9IGZ1bmN0aW9uICh1cmkpIHtcbiAgdmFyIHVybFBhcnNlUkUgPSAvXigoKChbXjpcXC8jXFw/XSs6KT8oPzooXFwvXFwvKSgoPzooKFteOkBcXC8jXFw/XSspKD86XFw6KFteOkBcXC8jXFw/XSspKT8pQCk/KChbXjpcXC8jXFw/XFxdXFxbXSt8XFxbW15cXC9cXF1AIz9dK1xcXSkoPzpcXDooWzAtOV0rKSk/KSk/KT8pPygoXFwvPyg/OlteXFwvXFw/I10rXFwvKykqKShbXlxcPyNdKikpKT8oXFw/W14jXSspPykoIy4qKT8vO1xuICB2YXIgcGFydHMgPSB1cmxQYXJzZVJFLmV4ZWModXJpKTtcblxuICByZXR1cm4ge1xuICAgIHNjaGVtZTogcGFydHNbNF0ucmVwbGFjZSgnOicsJycpLFxuICAgIGhvc3Q6IHBhcnRzWzExXSxcbiAgICBwb3J0OiBwYXJ0c1sxMl0sXG4gICAgcGF0aDogcGFydHNbMTVdXG4gIH07XG59O1xuXG5Td2FnZ2VyQ2xpZW50LnByb3RvdHlwZS5oZWxwID0gZnVuY3Rpb24gKGRvbnRQcmludCkge1xuICB2YXIgb3V0cHV0ID0gJyc7XG5cbiAgaWYgKHRoaXMgaW5zdGFuY2VvZiBTd2FnZ2VyQ2xpZW50KSB7XG4gICAgXy5mb3JFYWNoKHRoaXMuYXBpcywgZnVuY3Rpb24gKGFwaSwgbmFtZSkge1xuICAgICAgaWYgKF8uaXNQbGFpbk9iamVjdChhcGkpKSB7XG4gICAgICAgIG91dHB1dCArPSAnb3BlcmF0aW9ucyBmb3IgdGhlIFxcJycgKyBuYW1lICsgJ1xcJyB0YWdcXG4nO1xuXG4gICAgICAgIF8uZm9yRWFjaChhcGkub3BlcmF0aW9ucywgZnVuY3Rpb24gKG9wZXJhdGlvbiwgbmFtZSkge1xuICAgICAgICAgIG91dHB1dCArPSAnICAqICcgKyBuYW1lICsgJzogJyArIG9wZXJhdGlvbi5zdW1tYXJ5ICsgJ1xcbic7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9IGVsc2UgaWYgKHRoaXMgaW5zdGFuY2VvZiBPcGVyYXRpb25Hcm91cCB8fCBfLmlzUGxhaW5PYmplY3QodGhpcykpIHtcbiAgICBvdXRwdXQgKz0gJ29wZXJhdGlvbnMgZm9yIHRoZSBcXCcnICsgdGhpcy5sYWJlbCArICdcXCcgdGFnXFxuJztcblxuICAgIF8uZm9yRWFjaCh0aGlzLmFwaXMsIGZ1bmN0aW9uIChvcGVyYXRpb24sIG5hbWUpIHtcbiAgICAgIG91dHB1dCArPSAnICAqICcgKyBuYW1lICsgJzogJyArIG9wZXJhdGlvbi5zdW1tYXJ5ICsgJ1xcbic7XG4gICAgfSk7XG4gIH1cblxuICBpZiAoZG9udFByaW50KSB7XG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfSBlbHNlIHtcbiAgICBoZWxwZXJzLmxvZyhvdXRwdXQpO1xuXG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxufTtcblxuU3dhZ2dlckNsaWVudC5wcm90b3R5cGUudGFnRnJvbUxhYmVsID0gZnVuY3Rpb24gKGxhYmVsKSB7XG4gIHJldHVybiBsYWJlbDtcbn07XG5cblN3YWdnZXJDbGllbnQucHJvdG90eXBlLmlkRnJvbU9wID0gZnVuY3Rpb24gKHBhdGgsIGh0dHBNZXRob2QsIG9wKSB7XG4gIGlmKCFvcCB8fCAhb3Aub3BlcmF0aW9uSWQpIHtcbiAgICBvcCA9IG9wIHx8IHt9O1xuICAgIG9wLm9wZXJhdGlvbklkID0gaHR0cE1ldGhvZCArICdfJyArIHBhdGg7XG4gIH1cbiAgdmFyIG9wSWQgPSBvcC5vcGVyYXRpb25JZC5yZXBsYWNlKC9bXFxzIUAjJCVeJiooKV8rPVxcW3tcXF19Ozo8PnwuXFwvPyxcXFxcJ1wiXCItXS9nLCAnXycpIHx8IChwYXRoLnN1YnN0cmluZygxKSArICdfJyArIGh0dHBNZXRob2QpO1xuXG4gIG9wSWQgPSBvcElkLnJlcGxhY2UoLygoXyl7Mix9KS9nLCAnXycpO1xuICBvcElkID0gb3BJZC5yZXBsYWNlKC9eKF8pKi9nLCAnJyk7XG4gIG9wSWQgPSBvcElkLnJlcGxhY2UoLyhbX10pKiQvZywgJycpO1xuICByZXR1cm4gb3BJZDtcbn07XG5cblN3YWdnZXJDbGllbnQucHJvdG90eXBlLnNldEhvc3QgPSBmdW5jdGlvbiAoaG9zdCkge1xuICB0aGlzLmhvc3QgPSBob3N0O1xuXG4gIGlmKHRoaXMuYXBpcykge1xuICAgIF8uZm9yRWFjaCh0aGlzLmFwaXMsIGZ1bmN0aW9uKGFwaSkge1xuICAgICAgaWYoYXBpLm9wZXJhdGlvbnMpIHtcbiAgICAgICAgXy5mb3JFYWNoKGFwaS5vcGVyYXRpb25zLCBmdW5jdGlvbihvcGVyYXRpb24pIHtcbiAgICAgICAgICBvcGVyYXRpb24uaG9zdCA9IGhvc3Q7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59O1xuXG5Td2FnZ2VyQ2xpZW50LnByb3RvdHlwZS5zZXRCYXNlUGF0aCA9IGZ1bmN0aW9uIChiYXNlUGF0aCkge1xuICB0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGg7XG5cbiAgaWYodGhpcy5hcGlzKSB7XG4gICAgXy5mb3JFYWNoKHRoaXMuYXBpcywgZnVuY3Rpb24oYXBpKSB7XG4gICAgICBpZihhcGkub3BlcmF0aW9ucykge1xuICAgICAgICBfLmZvckVhY2goYXBpLm9wZXJhdGlvbnMsIGZ1bmN0aW9uKG9wZXJhdGlvbikge1xuICAgICAgICAgIG9wZXJhdGlvbi5iYXNlUGF0aCA9IGJhc2VQYXRoO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufTtcblxuU3dhZ2dlckNsaWVudC5wcm90b3R5cGUuZmFpbCA9IGZ1bmN0aW9uIChtZXNzYWdlKSB7XG4gIHRoaXMuZmFpbHVyZShtZXNzYWdlKTtcblxuICB0aHJvdyBtZXNzYWdlO1xufTsiLCIoZnVuY3Rpb24gKHByb2Nlc3Mpe1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgXyA9IHtcbiAgaXNQbGFpbk9iamVjdDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2lzUGxhaW5PYmplY3QnKSxcbiAgaW5kZXhPZjogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9hcnJheS9pbmRleE9mJylcbn07XG5cbm1vZHVsZS5leHBvcnRzLl9fYmluZCA9IGZ1bmN0aW9uIChmbiwgbWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCl7XG4gICAgcmV0dXJuIGZuLmFwcGx5KG1lLCBhcmd1bWVudHMpO1xuICB9O1xufTtcblxudmFyIGxvZyA9IG1vZHVsZS5leHBvcnRzLmxvZyA9IGZ1bmN0aW9uKCkge1xuICAvLyBPbmx5IGxvZyBpZiBhdmFpbGFibGUgYW5kIHdlJ3JlIG5vdCB0ZXN0aW5nXG4gIGlmIChjb25zb2xlICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAndGVzdCcpIHtcbiAgICBjb25zb2xlLmxvZyhBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpWzBdKTtcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMuZmFpbCA9IGZ1bmN0aW9uIChtZXNzYWdlKSB7XG4gIGxvZyhtZXNzYWdlKTtcbn07XG5cbnZhciBvcHRpb25IdG1sID0gbW9kdWxlLmV4cG9ydHMub3B0aW9uSHRtbCA9IGZ1bmN0aW9uIChsYWJlbCwgdmFsdWUpIHtcbiAgcmV0dXJuICc8dHI+PHRkIGNsYXNzPVwib3B0aW9uTmFtZVwiPicgKyBsYWJlbCArICc6PC90ZD48dGQ+JyArIHZhbHVlICsgJzwvdGQ+PC90cj4nO1xufTtcblxudmFyIHJlc29sdmVTY2hlbWEgPSBtb2R1bGUuZXhwb3J0cy5yZXNvbHZlU2NoZW1hID0gZnVuY3Rpb24gKHNjaGVtYSkge1xuICBpZiAoXy5pc1BsYWluT2JqZWN0KHNjaGVtYS5zY2hlbWEpKSB7XG4gICAgc2NoZW1hID0gcmVzb2x2ZVNjaGVtYShzY2hlbWEuc2NoZW1hKTtcbiAgfVxuXG4gIHJldHVybiBzY2hlbWE7XG59O1xuXG52YXIgc2ltcGxlUmVmID0gbW9kdWxlLmV4cG9ydHMuc2ltcGxlUmVmID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgaWYgKHR5cGVvZiBuYW1lID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKG5hbWUuaW5kZXhPZignIy9kZWZpbml0aW9ucy8nKSA9PT0gMCkge1xuICAgIHJldHVybiBuYW1lLnN1YnN0cmluZygnIy9kZWZpbml0aW9ucy8nLmxlbmd0aCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5hbWU7XG4gIH1cbn07XG5cblxufSkuY2FsbCh0aGlzLHJlcXVpcmUoJ19wcm9jZXNzJykpXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldDp1dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJbXhwWWk5b1pXeHdaWEp6TG1weklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJN1FVRkJRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTSXNJbVpwYkdVaU9pSm5aVzVsY21GMFpXUXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpSjNWelpTQnpkSEpwWTNRbk8xeHVYRzUyWVhJZ1h5QTlJSHRjYmlBZ2FYTlFiR0ZwYms5aWFtVmpkRG9nY21WeGRXbHlaU2duYkc5a1lYTm9MV052YlhCaGRDOXNZVzVuTDJselVHeGhhVzVQWW1wbFkzUW5LU3hjYmlBZ2FXNWtaWGhQWmpvZ2NtVnhkV2x5WlNnbmJHOWtZWE5vTFdOdmJYQmhkQzloY25KaGVTOXBibVJsZUU5bUp5bGNibjA3WEc1Y2JtMXZaSFZzWlM1bGVIQnZjblJ6TGw5ZlltbHVaQ0E5SUdaMWJtTjBhVzl1SUNobWJpd2diV1VwSUh0Y2JpQWdjbVYwZFhKdUlHWjFibU4wYVc5dUtDbDdYRzRnSUNBZ2NtVjBkWEp1SUdadUxtRndjR3g1S0cxbExDQmhjbWQxYldWdWRITXBPMXh1SUNCOU8xeHVmVHRjYmx4dWRtRnlJR3h2WnlBOUlHMXZaSFZzWlM1bGVIQnZjblJ6TG14dlp5QTlJR1oxYm1OMGFXOXVLQ2tnZTF4dUlDQXZMeUJQYm14NUlHeHZaeUJwWmlCaGRtRnBiR0ZpYkdVZ1lXNWtJSGRsSjNKbElHNXZkQ0IwWlhOMGFXNW5YRzRnSUdsbUlDaGpiMjV6YjJ4bElDWW1JSEJ5YjJObGMzTXVaVzUyTGs1UFJFVmZSVTVXSUNFOVBTQW5kR1Z6ZENjcElIdGNiaUFnSUNCamIyNXpiMnhsTG14dlp5aEJjbkpoZVM1d2NtOTBiM1I1Y0dVdWMyeHBZMlV1WTJGc2JDaGhjbWQxYldWdWRITXBXekJkS1R0Y2JpQWdmVnh1ZlR0Y2JseHViVzlrZFd4bExtVjRjRzl5ZEhNdVptRnBiQ0E5SUdaMWJtTjBhVzl1SUNodFpYTnpZV2RsS1NCN1hHNGdJR3h2WnlodFpYTnpZV2RsS1R0Y2JuMDdYRzVjYm5aaGNpQnZjSFJwYjI1SWRHMXNJRDBnYlc5a2RXeGxMbVY0Y0c5eWRITXViM0IwYVc5dVNIUnRiQ0E5SUdaMWJtTjBhVzl1SUNoc1lXSmxiQ3dnZG1Gc2RXVXBJSHRjYmlBZ2NtVjBkWEp1SUNjOGRISStQSFJrSUdOc1lYTnpQVndpYjNCMGFXOXVUbUZ0WlZ3aVBpY2dLeUJzWVdKbGJDQXJJQ2M2UEM5MFpENDhkR1ErSnlBcklIWmhiSFZsSUNzZ0p6d3ZkR1ErUEM5MGNqNG5PMXh1ZlR0Y2JseHVkbUZ5SUhKbGMyOXNkbVZUWTJobGJXRWdQU0J0YjJSMWJHVXVaWGh3YjNKMGN5NXlaWE52YkhabFUyTm9aVzFoSUQwZ1puVnVZM1JwYjI0Z0tITmphR1Z0WVNrZ2UxeHVJQ0JwWmlBb1h5NXBjMUJzWVdsdVQySnFaV04wS0hOamFHVnRZUzV6WTJobGJXRXBLU0I3WEc0Z0lDQWdjMk5vWlcxaElEMGdjbVZ6YjJ4MlpWTmphR1Z0WVNoelkyaGxiV0V1YzJOb1pXMWhLVHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUJ6WTJobGJXRTdYRzU5TzF4dVhHNTJZWElnYzJsdGNHeGxVbVZtSUQwZ2JXOWtkV3hsTG1WNGNHOXlkSE11YzJsdGNHeGxVbVZtSUQwZ1puVnVZM1JwYjI0Z0tHNWhiV1VwSUh0Y2JpQWdhV1lnS0hSNWNHVnZaaUJ1WVcxbElEMDlQU0FuZFc1a1pXWnBibVZrSnlrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0I5WEc1Y2JpQWdhV1lnS0c1aGJXVXVhVzVrWlhoUFppZ25JeTlrWldacGJtbDBhVzl1Y3k4bktTQTlQVDBnTUNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ1WVcxbExuTjFZbk4wY21sdVp5Z25JeTlrWldacGJtbDBhVzl1Y3k4bkxteGxibWQwYUNrN1hHNGdJSDBnWld4elpTQjdYRzRnSUNBZ2NtVjBkWEp1SUc1aGJXVTdYRzRnSUgxY2JuMDdYRzVjYmlKZGZRPT0iLCIndXNlIHN0cmljdCc7XG5cbnZhciBoZWxwZXJzID0gcmVxdWlyZSgnLi9oZWxwZXJzJyk7XG52YXIgalF1ZXJ5ID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XG52YXIgcmVxdWVzdCA9IHJlcXVpcmUoJ3N1cGVyYWdlbnQnKTtcbnZhciBqc3lhbWwgPSByZXF1aXJlKCdqcy15YW1sJyk7XG52YXIgXyA9IHtcbiAgaXNPYmplY3Q6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9pc09iamVjdCcpXG59O1xuXG4vKlxuICogSlF1ZXJ5SHR0cENsaWVudCBpcyBhIGxpZ2h0LXdlaWdodCwgbm9kZSBvciBicm93c2VyIEhUVFAgY2xpZW50XG4gKi9cbnZhciBKUXVlcnlIdHRwQ2xpZW50ID0gZnVuY3Rpb24gKCkge307XG5cbi8qXG4gKiBTdXBlcmFnZW50SHR0cENsaWVudCBpcyBhIGxpZ2h0LXdlaWdodCwgbm9kZSBvciBicm93c2VyIEhUVFAgY2xpZW50XG4gKi9cbnZhciBTdXBlcmFnZW50SHR0cENsaWVudCA9IGZ1bmN0aW9uICgpIHt9O1xuXG4vKipcbiAqIFN3YWdnZXJIdHRwIGlzIGEgd3JhcHBlciBmb3IgZXhlY3V0aW5nIHJlcXVlc3RzXG4gKi9cbnZhciBTd2FnZ2VySHR0cCA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge307XG5cblN3YWdnZXJIdHRwLnByb3RvdHlwZS5leGVjdXRlID0gZnVuY3Rpb24gKG9iaiwgb3B0cykge1xuICB2YXIgY2xpZW50O1xuXG4gIGlmKG9wdHMgJiYgb3B0cy5jbGllbnQpIHtcbiAgICBjbGllbnQgPSBvcHRzLmNsaWVudDtcbiAgfVxuICBlbHNlIHtcbiAgICBjbGllbnQgPSBuZXcgU3VwZXJhZ2VudEh0dHBDbGllbnQob3B0cyk7XG4gIH1cblxuICAvLyBsZWdhY3kgc3VwcG9ydFxuICBpZiAoKG9iaiAmJiBvYmoudXNlSlF1ZXJ5ID09PSB0cnVlKSB8fCB0aGlzLmlzSW50ZXJuZXRFeHBsb3JlcigpKSB7XG4gICAgY2xpZW50ID0gbmV3IEpRdWVyeUh0dHBDbGllbnQob3B0cyk7XG4gIH1cblxuICB2YXIgc3VjY2VzcyA9IG9iai5vbi5yZXNwb25zZTtcblxuICB2YXIgcmVzcG9uc2VJbnRlcmNlcHRvciA9IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICBpZihvcHRzICYmIG9wdHMucmVzcG9uc2VJbnRlcmNlcHRvcikge1xuICAgICAgZGF0YSA9IG9wdHMucmVzcG9uc2VJbnRlcmNlcHRvci5hcHBseShkYXRhKTtcbiAgICB9XG4gICAgc3VjY2VzcyhkYXRhKTtcbiAgfTtcblxuICBvYmoub24ucmVzcG9uc2UgPSBmdW5jdGlvbihkYXRhKSB7XG4gICAgcmVzcG9uc2VJbnRlcmNlcHRvcihkYXRhKTtcbiAgfTtcblxuXG4gIGlmIChfLmlzT2JqZWN0KG9iaikgJiYgXy5pc09iamVjdChvYmouYm9keSkpIHtcbiAgICAvLyBzcGVjaWFsIHByb2Nlc3NpbmcgZm9yIGZpbGUgdXBsb2FkcyB2aWEganF1ZXJ5XG4gICAgaWYgKG9iai5ib2R5LnR5cGUgJiYgb2JqLmJvZHkudHlwZSA9PT0gJ2Zvcm1EYXRhJyl7XG4gICAgICBvYmouY29udGVudFR5cGUgPSBmYWxzZTtcbiAgICAgIG9iai5wcm9jZXNzRGF0YSA9IGZhbHNlO1xuXG4gICAgICBkZWxldGUgb2JqLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddO1xuICAgIH0gZWxzZSB7XG4gICAgICBvYmouYm9keSA9IEpTT04uc3RyaW5naWZ5KG9iai5ib2R5KTtcbiAgICB9XG4gIH1cbiAgY2xpZW50LmV4ZWN1dGUob2JqKTtcbn07XG5cblN3YWdnZXJIdHRwLnByb3RvdHlwZS5pc0ludGVybmV0RXhwbG9yZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBkZXRlY3RlZElFID0gZmFsc2U7XG5cbiAgaWYgKHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIG5hdmlnYXRvci51c2VyQWdlbnQpIHtcbiAgICB2YXIgbmF2ID0gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKG5hdi5pbmRleE9mKCdtc2llJykgIT09IC0xKSB7XG4gICAgICB2YXIgdmVyc2lvbiA9IHBhcnNlSW50KG5hdi5zcGxpdCgnbXNpZScpWzFdKTtcblxuICAgICAgaWYgKHZlcnNpb24gPD0gOCkge1xuICAgICAgICBkZXRlY3RlZElFID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGV0ZWN0ZWRJRTtcbn07XG5cbkpRdWVyeUh0dHBDbGllbnQucHJvdG90eXBlLmV4ZWN1dGUgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHZhciBjYiA9IG9iai5vbjtcbiAgdmFyIHJlcXVlc3QgPSBvYmo7XG5cbiAgb2JqLnR5cGUgPSBvYmoubWV0aG9kO1xuICBvYmouY2FjaGUgPSBmYWxzZTtcbiAgZGVsZXRlIG9iai51c2VKUXVlcnk7XG5cbiAgLypcbiAgb2JqLmJlZm9yZVNlbmQgPSBmdW5jdGlvbiAoeGhyKSB7XG4gICAgdmFyIGtleSwgcmVzdWx0cztcbiAgICBpZiAob2JqLmhlYWRlcnMpIHtcbiAgICAgIHJlc3VsdHMgPSBbXTtcbiAgICAgIGZvciAoa2V5IGluIG9iai5oZWFkZXJzKSB7XG4gICAgICAgIGlmIChrZXkudG9Mb3dlckNhc2UoKSA9PT0gJ2NvbnRlbnQtdHlwZScpIHtcbiAgICAgICAgICByZXN1bHRzLnB1c2gob2JqLmNvbnRlbnRUeXBlID0gb2JqLmhlYWRlcnNba2V5XSk7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09ICdhY2NlcHQnKSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKG9iai5hY2NlcHRzID0gb2JqLmhlYWRlcnNba2V5XSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKHhoci5zZXRSZXF1ZXN0SGVhZGVyKGtleSwgb2JqLmhlYWRlcnNba2V5XSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG4gIH07Ki9cblxuICBvYmouZGF0YSA9IG9iai5ib2R5O1xuXG4gIGRlbGV0ZSBvYmouYm9keTtcblxuICBvYmouY29tcGxldGUgPSBmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICB2YXIgaGVhZGVycyA9IHt9O1xuICAgIHZhciBoZWFkZXJBcnJheSA9IHJlc3BvbnNlLmdldEFsbFJlc3BvbnNlSGVhZGVycygpLnNwbGl0KCdcXG4nKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaGVhZGVyQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciB0b1NwbGl0ID0gaGVhZGVyQXJyYXlbaV0udHJpbSgpO1xuXG4gICAgICBpZiAodG9TcGxpdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHZhciBzZXBhcmF0b3IgPSB0b1NwbGl0LmluZGV4T2YoJzonKTtcblxuICAgICAgaWYgKHNlcGFyYXRvciA9PT0gLTEpIHtcbiAgICAgICAgLy8gTmFtZSBidXQgbm8gdmFsdWUgaW4gdGhlIGhlYWRlclxuICAgICAgICBoZWFkZXJzW3RvU3BsaXRdID0gbnVsbDtcblxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIG5hbWUgPSB0b1NwbGl0LnN1YnN0cmluZygwLCBzZXBhcmF0b3IpLnRyaW0oKTtcbiAgICAgIHZhciB2YWx1ZSA9IHRvU3BsaXQuc3Vic3RyaW5nKHNlcGFyYXRvciArIDEpLnRyaW0oKTtcblxuICAgICAgaGVhZGVyc1tuYW1lXSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHZhciBvdXQgPSB7XG4gICAgICB1cmw6IHJlcXVlc3QudXJsLFxuICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcbiAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgc3RhdHVzVGV4dDogcmVzcG9uc2Uuc3RhdHVzVGV4dCxcbiAgICAgIGRhdGE6IHJlc3BvbnNlLnJlc3BvbnNlVGV4dCxcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnNcbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgIHZhciBwb3NzaWJsZU9iaiA9ICByZXNwb25zZS5yZXNwb25zZUpTT04gfHwganN5YW1sLnNhZmVMb2FkKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7XG4gICAgICBvdXQub2JqID0gKHR5cGVvZiBwb3NzaWJsZU9iaiA9PT0gJ3N0cmluZycpID8ge30gOiBwb3NzaWJsZU9iajtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgLy8gZG8gbm90IHNldCBvdXQub2JqXG4gICAgICBoZWxwZXJzLmxvZygndW5hYmxlIHRvIHBhcnNlIEpTT04vWUFNTCBjb250ZW50Jyk7XG4gICAgfVxuXG4gICAgLy8gSSBjYW4gdGhyb3csIG9yIHBhcnNlIG51bGw/XG4gICAgb3V0Lm9iaiA9IG91dC5vYmogfHwgbnVsbDtcblxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPj0gMjAwICYmIHJlc3BvbnNlLnN0YXR1cyA8IDMwMCkge1xuICAgICAgY2IucmVzcG9uc2Uob3V0KTtcbiAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMCB8fCAocmVzcG9uc2Uuc3RhdHVzID49IDQwMCAmJiByZXNwb25zZS5zdGF0dXMgPCA1OTkpKSB7XG4gICAgICBjYi5lcnJvcihvdXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY2IucmVzcG9uc2Uob3V0KTtcbiAgICB9XG4gIH07XG5cbiAgalF1ZXJ5LnN1cHBvcnQuY29ycyA9IHRydWU7XG5cbiAgcmV0dXJuIGpRdWVyeS5hamF4KG9iaik7XG59O1xuXG5TdXBlcmFnZW50SHR0cENsaWVudC5wcm90b3R5cGUuZXhlY3V0ZSA9IGZ1bmN0aW9uIChvYmopIHtcbiAgdmFyIG1ldGhvZCA9IG9iai5tZXRob2QudG9Mb3dlckNhc2UoKTtcblxuICBpZiAobWV0aG9kID09PSAnZGVsZXRlJykge1xuICAgIG1ldGhvZCA9ICdkZWwnO1xuICB9XG4gIHZhciBoZWFkZXJzID0gb2JqLmhlYWRlcnMgfHwge307XG4gIHZhciByID0gcmVxdWVzdFttZXRob2RdKG9iai51cmwpO1xuICB2YXIgbmFtZTtcbiAgZm9yIChuYW1lIGluIGhlYWRlcnMpIHtcbiAgICByLnNldChuYW1lLCBoZWFkZXJzW25hbWVdKTtcbiAgfVxuXG4gIGlmIChvYmouYm9keSkge1xuICAgIHIuc2VuZChvYmouYm9keSk7XG4gIH1cblxuICBpZih0eXBlb2Ygci5idWZmZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICByLmJ1ZmZlcigpOyAvLyBmb3JjZSBzdXBlcmFnZW50IHRvIHBvcHVsYXRlIHJlcy50ZXh0IHdpdGggdGhlIHJhdyByZXNwb25zZSBkYXRhXG4gIH1cblxuICByLmVuZChmdW5jdGlvbiAoZXJyLCByZXMpIHtcbiAgICByZXMgPSByZXMgfHwge1xuICAgICAgc3RhdHVzOiAwLFxuICAgICAgaGVhZGVyczoge2Vycm9yOiAnbm8gcmVzcG9uc2UgZnJvbSBzZXJ2ZXInfVxuICAgIH07XG4gICAgdmFyIHJlc3BvbnNlID0ge1xuICAgICAgdXJsOiBvYmoudXJsLFxuICAgICAgbWV0aG9kOiBvYmoubWV0aG9kLFxuICAgICAgaGVhZGVyczogcmVzLmhlYWRlcnNcbiAgICB9O1xuICAgIHZhciBjYjtcblxuICAgIGlmICghZXJyICYmIHJlcy5lcnJvcikge1xuICAgICAgZXJyID0gcmVzLmVycm9yO1xuICAgIH1cblxuICAgIGlmIChlcnIgJiYgb2JqLm9uICYmIG9iai5vbi5lcnJvcikge1xuICAgICAgcmVzcG9uc2Uub2JqID0gZXJyO1xuICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gcmVzID8gcmVzLnN0YXR1cyA6IDUwMDtcbiAgICAgIHJlc3BvbnNlLnN0YXR1c1RleHQgPSByZXMgPyByZXMudGV4dCA6IGVyci5tZXNzYWdlO1xuICAgICAgY2IgPSBvYmoub24uZXJyb3I7XG4gICAgfSBlbHNlIGlmIChyZXMgJiYgb2JqLm9uICYmIG9iai5vbi5yZXNwb25zZSkge1xuICAgICAgdmFyIHBvc3NpYmxlT2JqO1xuXG4gICAgICAvLyBBbHJlYWR5IHBhcnNlZCBieSBieSBzdXBlcmFnZW50P1xuICAgICAgaWYocmVzLmJvZHkgJiYgT2JqZWN0LmtleXMocmVzLmJvZHkpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcG9zc2libGVPYmogPSByZXMuYm9keTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBvc3NpYmxlT2JqID0ganN5YW1sLnNhZmVMb2FkKHJlcy50ZXh0KTtcbiAgICAgICAgICAgIC8vIGNhbiBwYXJzZSBpbnRvIGEgc3RyaW5nLi4uIHdoaWNoIHdlIGRvbid0IG5lZWQgcnVubmluZyBhcm91bmQgaW4gdGhlIHN5c3RlbVxuICAgICAgICAgICAgcG9zc2libGVPYmogPSAodHlwZW9mIHBvc3NpYmxlT2JqID09PSAnc3RyaW5nJykgPyBudWxsIDogcG9zc2libGVPYmo7XG4gICAgICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAgICBoZWxwZXJzLmxvZygnY2Fubm90IHBhcnNlIEpTT04vWUFNTCBjb250ZW50Jyk7XG4gICAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBudWxsIG1lYW5zIHdlIGNhbid0IHBhcnNlIGludG8gb2JqZWN0XG4gICAgICByZXNwb25zZS5vYmogPSBwb3NzaWJsZU9iaiB8fCBudWxsO1xuXG4gICAgICByZXNwb25zZS5zdGF0dXMgPSByZXMuc3RhdHVzO1xuICAgICAgcmVzcG9uc2Uuc3RhdHVzVGV4dCA9IHJlcy50ZXh0O1xuICAgICAgY2IgPSBvYmoub24ucmVzcG9uc2U7XG4gICAgfVxuICAgIHJlc3BvbnNlLmRhdGEgPSByZXNwb25zZS5zdGF0dXNUZXh0O1xuXG4gICAgaWYgKGNiKSB7XG4gICAgICBjYihyZXNwb25zZSk7XG4gICAgfVxuICB9KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBTd2FnZ2VySHR0cCA9IHJlcXVpcmUoJy4vaHR0cCcpO1xudmFyIF8gPSB7XG4gIGlzT2JqZWN0OiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNPYmplY3QnKSxcbiAgaXNBcnJheTogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2lzQXJyYXknKVxufTtcblxuXG4vKipcbiAqIFJlc29sdmVzIGEgc3BlYydzIHJlbW90ZSByZWZlcmVuY2VzXG4gKi9cbnZhciBSZXNvbHZlciA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge307XG5cblJlc29sdmVyLnByb3RvdHlwZS5wcm9jZXNzQWxsT2YgPSBmdW5jdGlvbihuYW1lLCBkZWZpbml0aW9uLCByZXNvbHV0aW9uVGFibGUsIHVucmVzb2x2ZWRSZWZzLCBzcGVjKSB7XG4gIHZhciBpLCBsb2NhdGlvbiwgcHJvcGVydHk7XG5cbiAgZGVmaW5pdGlvblsneC1yZXNvbHZlZC1mcm9tJ10gPSBbICcjL2RlZmluaXRpb25zLycgKyBuYW1lIF07XG4gIHZhciBhbGxPZiA9IGRlZmluaXRpb24uYWxsT2Y7XG4gIC8vIHRoZSByZWZzIGdvIGZpcnN0XG4gIGFsbE9mLnNvcnQoZnVuY3Rpb24oYSwgYikge1xuICAgIGlmKGEuJHJlZiAmJiBiLiRyZWYpIHsgcmV0dXJuIDA7IH1cbiAgICBlbHNlIGlmKGEuJHJlZikgeyByZXR1cm4gLTE7IH1cbiAgICBlbHNlIHsgcmV0dXJuIDE7IH1cbiAgfSk7XG4gIGZvciAoaSA9IDA7IGkgPCBhbGxPZi5sZW5ndGg7IGkrKykge1xuICAgIHByb3BlcnR5ID0gYWxsT2ZbaV07XG4gICAgbG9jYXRpb24gPSAnL2RlZmluaXRpb25zLycgKyBuYW1lICsgJy9hbGxPZic7XG4gICAgdGhpcy5yZXNvbHZlSW5saW5lKG51bGwsIHNwZWMsIHByb3BlcnR5LCByZXNvbHV0aW9uVGFibGUsIHVucmVzb2x2ZWRSZWZzLCBsb2NhdGlvbik7XG4gIH1cbn07XG5cblJlc29sdmVyLnByb3RvdHlwZS5yZXNvbHZlID0gZnVuY3Rpb24gKHNwZWMsIGFyZzEsIGFyZzIsIGFyZzMpIHtcbiAgdmFyIHJvb3QgPSBhcmcxLCBjYWxsYmFjayA9IGFyZzIsIHNjb3BlID0gYXJnMywgbG9jYXRpb24sIGk7XG4gIGlmKHR5cGVvZiBhcmcxID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcm9vdCA9IG51bGw7XG4gICAgY2FsbGJhY2sgPSBhcmcxO1xuICAgIHNjb3BlID0gYXJnMjtcbiAgfVxuICB2YXIgX3Jvb3QgPSByb290O1xuICB0aGlzLnNjb3BlID0gKHNjb3BlIHx8IHRoaXMpO1xuICB0aGlzLml0ZXJhdGlvbiA9IHRoaXMuaXRlcmF0aW9uIHx8IDA7XG5cbiAgdmFyIG5hbWUsIHBhdGgsIHByb3BlcnR5LCBwcm9wZXJ0eU5hbWU7XG4gIHZhciBwcm9jZXNzZWRDYWxscyA9IDAsIHJlc29sdmVkUmVmcyA9IHt9LCB1bnJlc29sdmVkUmVmcyA9IHt9O1xuICB2YXIgcmVzb2x1dGlvblRhYmxlID0gW107IC8vIHN0b3JlIG9iamVjdHMgZm9yIGRlcmVmZXJlbmNpbmdcblxuICAvLyBkZWZpbml0aW9uc1xuICBmb3IgKG5hbWUgaW4gc3BlYy5kZWZpbml0aW9ucykge1xuICAgIHZhciBkZWZpbml0aW9uID0gc3BlYy5kZWZpbml0aW9uc1tuYW1lXTtcbiAgICBmb3IgKHByb3BlcnR5TmFtZSBpbiBkZWZpbml0aW9uLnByb3BlcnRpZXMpIHtcbiAgICAgIHByb3BlcnR5ID0gZGVmaW5pdGlvbi5wcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV07XG4gICAgICBpZihfLmlzQXJyYXkocHJvcGVydHkuYWxsT2YpKSB7XG4gICAgICAgIHRoaXMucHJvY2Vzc0FsbE9mKG5hbWUsIHByb3BlcnR5LCByZXNvbHV0aW9uVGFibGUsIHVucmVzb2x2ZWRSZWZzLCBzcGVjKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnJlc29sdmVUbyhyb290LCBwcm9wZXJ0eSwgcmVzb2x1dGlvblRhYmxlLCAnL2RlZmluaXRpb25zJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYoZGVmaW5pdGlvbi5hbGxPZikge1xuICAgICAgdGhpcy5wcm9jZXNzQWxsT2YobmFtZSwgZGVmaW5pdGlvbiwgcmVzb2x1dGlvblRhYmxlLCB1bnJlc29sdmVkUmVmcywgc3BlYyk7XG4gICAgfVxuICB9XG5cbiAgLy8gb3BlcmF0aW9uc1xuICBmb3IgKG5hbWUgaW4gc3BlYy5wYXRocykge1xuICAgIHZhciBtZXRob2QsIG9wZXJhdGlvbiwgcmVzcG9uc2VDb2RlO1xuICAgIHBhdGggPSBzcGVjLnBhdGhzW25hbWVdO1xuXG4gICAgZm9yIChtZXRob2QgaW4gcGF0aCkge1xuICAgICAgLy8gb3BlcmF0aW9uIHJlZmVyZW5jZVxuICAgICAgaWYobWV0aG9kID09PSAnJHJlZicpIHtcbiAgICAgICAgLy8gbG9jYXRpb24gPSBwYXRoW21ldGhvZF07XG4gICAgICAgIGxvY2F0aW9uID0gJy9wYXRocycgKyBuYW1lO1xuICAgICAgICB0aGlzLnJlc29sdmVJbmxpbmUocm9vdCwgc3BlYywgcGF0aCwgcmVzb2x1dGlvblRhYmxlLCB1bnJlc29sdmVkUmVmcywgbG9jYXRpb24pO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIG9wZXJhdGlvbiA9IHBhdGhbbWV0aG9kXTtcblxuICAgICAgICB2YXIgcGFyYW1ldGVycyA9IG9wZXJhdGlvbi5wYXJhbWV0ZXJzO1xuICAgICAgICBmb3IgKGkgaW4gcGFyYW1ldGVycykge1xuICAgICAgICAgIHZhciBwYXJhbWV0ZXIgPSBwYXJhbWV0ZXJzW2ldO1xuICAgICAgICAgIGxvY2F0aW9uID0gJy9wYXRocycgKyBuYW1lICsgJy8nICsgbWV0aG9kICsgJy9wYXJhbWV0ZXJzJztcblxuICAgICAgICAgIGlmIChwYXJhbWV0ZXIuaW4gPT09ICdib2R5JyAmJiBwYXJhbWV0ZXIuc2NoZW1hKSB7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVUbyhyb290LCBwYXJhbWV0ZXIuc2NoZW1hLCByZXNvbHV0aW9uVGFibGUsIGxvY2F0aW9uKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFyYW1ldGVyLiRyZWYpIHtcbiAgICAgICAgICAgIC8vIHBhcmFtZXRlciByZWZlcmVuY2VcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZUlubGluZShyb290LCBzcGVjLCBwYXJhbWV0ZXIsIHJlc29sdXRpb25UYWJsZSwgdW5yZXNvbHZlZFJlZnMsIHBhcmFtZXRlci4kcmVmKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKHJlc3BvbnNlQ29kZSBpbiBvcGVyYXRpb24ucmVzcG9uc2VzKSB7XG4gICAgICAgICAgdmFyIHJlc3BvbnNlID0gb3BlcmF0aW9uLnJlc3BvbnNlc1tyZXNwb25zZUNvZGVdO1xuICAgICAgICAgIGxvY2F0aW9uID0gJy9wYXRocycgKyBuYW1lICsgJy8nICsgbWV0aG9kICsgJy9yZXNwb25zZXMvJyArIHJlc3BvbnNlQ29kZTtcblxuICAgICAgICAgIGlmKF8uaXNPYmplY3QocmVzcG9uc2UpKSB7XG4gICAgICAgICAgICBpZihyZXNwb25zZS4kcmVmKSB7XG4gICAgICAgICAgICAgIC8vIHJlc3BvbnNlIHJlZmVyZW5jZVxuICAgICAgICAgICAgICB0aGlzLnJlc29sdmVJbmxpbmUocm9vdCwgc3BlYywgcmVzcG9uc2UsIHJlc29sdXRpb25UYWJsZSwgdW5yZXNvbHZlZFJlZnMsIGxvY2F0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zY2hlbWEpIHtcbiAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlVG8ocm9vdCwgcmVzcG9uc2Uuc2NoZW1hLCByZXNvbHV0aW9uVGFibGUsIGxvY2F0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgZXhwZWN0ZWRDYWxscyA9IDAsIHRvUmVzb2x2ZSA9IFtdO1xuICAvLyBpZiB0aGUgcm9vdCBpcyBzYW1lIGFzIG9ialtpXS5yb290IHdlIGNhbiByZXNvbHZlIGxvY2FsbHlcbiAgdmFyIGFsbCA9IHJlc29sdXRpb25UYWJsZTtcblxuICB2YXIgcGFydHM7XG4gIGZvcihpID0gMDsgaSA8IGFsbC5sZW5ndGg7IGkrKykge1xuICAgIHZhciBhID0gYWxsW2ldO1xuICAgIGlmKHJvb3QgPT09IGEucm9vdCkge1xuICAgICAgaWYoYS5yZXNvbHZlQXMgPT09ICdyZWYnKSB7XG4gICAgICAgIC8vIHJlc29sdmUgYW55IHBhdGggd2Fsa2luZ1xuICAgICAgICB2YXIgam9pbmVkID0gKChhLnJvb3QgfHwgJycpICsgJy8nICsgYS5rZXkpLnNwbGl0KCcvJyk7XG4gICAgICAgIHZhciBub3JtYWxpemVkID0gW107XG4gICAgICAgIHZhciB1cmwgPSAnJztcbiAgICAgICAgdmFyIGs7XG5cbiAgICAgICAgaWYoYS5rZXkuaW5kZXhPZignLi4vJykgPj0gMCkge1xuICAgICAgICAgIGZvcih2YXIgaiA9IDA7IGogPCBqb2luZWQubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgIGlmKGpvaW5lZFtqXSA9PT0gJy4uJykge1xuICAgICAgICAgICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zbGljZSgwLCBub3JtYWxpemVkLmxlbmd0aC0xKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBub3JtYWxpemVkLnB1c2goam9pbmVkW2pdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZm9yKGsgPSAwOyBrIDwgbm9ybWFsaXplZC5sZW5ndGg7IGsgKyspIHtcbiAgICAgICAgICAgIGlmKGsgPiAwKSB7XG4gICAgICAgICAgICAgIHVybCArPSAnLyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1cmwgKz0gbm9ybWFsaXplZFtrXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gd2Ugbm93IGhhdmUgdG8gcmVtb3RlIHJlc29sdmUgdGhpcyBiZWNhdXNlIHRoZSBwYXRoIGhhcyBjaGFuZ2VkXG4gICAgICAgICAgYS5yb290ID0gdXJsO1xuICAgICAgICAgIHRvUmVzb2x2ZS5wdXNoKGEpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHBhcnRzID0gYS5rZXkuc3BsaXQoJyMnKTtcbiAgICAgICAgICBpZihwYXJ0cy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgIGlmKHBhcnRzWzBdLmluZGV4T2YoJ2h0dHA6Ly8nKSA9PT0gMCB8fCBwYXJ0c1swXS5pbmRleE9mKCdodHRwczovLycpID09PSAwKSB7XG4gICAgICAgICAgICAgIGEucm9vdCA9IHBhcnRzWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbG9jYXRpb24gPSBwYXJ0c1sxXS5zcGxpdCgnLycpO1xuICAgICAgICAgICAgdmFyIHI7XG4gICAgICAgICAgICB2YXIgcyA9IHNwZWM7XG4gICAgICAgICAgICBmb3IoayA9IDA7IGsgPCBsb2NhdGlvbi5sZW5ndGg7IGsrKykge1xuICAgICAgICAgICAgICB2YXIgcGFydCA9IGxvY2F0aW9uW2tdO1xuICAgICAgICAgICAgICBpZihwYXJ0ICE9PSAnJykge1xuICAgICAgICAgICAgICAgIHMgPSBzW3BhcnRdO1xuICAgICAgICAgICAgICAgIGlmKHR5cGVvZiBzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgciA9IHM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgciA9IG51bGw7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmKHIgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgLy8gbXVzdCByZXNvbHZlIHRoaXMgdG9vXG4gICAgICAgICAgICAgIHRvUmVzb2x2ZS5wdXNoKGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGlmIChhLnJlc29sdmVBcyA9PT0gJ2lubGluZScpIHtcbiAgICAgICAgICBpZihhLmtleSAmJiBhLmtleS5pbmRleE9mKCcjJykgPT09IC0xICYmIGEua2V5LmNoYXJBdCgwKSAhPT0gJy8nKSB7XG4gICAgICAgICAgICAvLyBoYW5kbGUgcmVsYXRpdmUgc2NoZW1hXG4gICAgICAgICAgICBwYXJ0cyA9IGEucm9vdC5zcGxpdCgnLycpO1xuICAgICAgICAgICAgbG9jYXRpb24gPSAnJztcbiAgICAgICAgICAgIGZvcihpID0gMDsgaSA8IHBhcnRzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICAgICAgICBsb2NhdGlvbiArPSBwYXJ0c1tpXSArICcvJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxvY2F0aW9uICs9IGEua2V5O1xuICAgICAgICAgICAgYS5yb290ID0gbG9jYXRpb247XG4gICAgICAgICAgICBhLmxvY2F0aW9uID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRvUmVzb2x2ZS5wdXNoKGEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdG9SZXNvbHZlLnB1c2goYSk7XG4gICAgfVxuICB9XG4gIGV4cGVjdGVkQ2FsbHMgPSB0b1Jlc29sdmUubGVuZ3RoO1xuXG4gIC8vIHJlc29sdmUgYW55dGhpbmcgdGhhdCBpcyBsb2NhbFxuICBmb3IodmFyIGlpID0gMDsgaWkgPCB0b1Jlc29sdmUubGVuZ3RoOyBpaSsrKSB7XG4gICAgKGZ1bmN0aW9uKGl0ZW0sIHNlbGYpIHtcbiAgICAgIGlmKGl0ZW0ucm9vdCA9PT0gbnVsbCB8fCBpdGVtLnJvb3QgPT09IHJvb3QpIHtcbiAgICAgICAgLy8gbG9jYWwgcmVzb2x2ZVxuICAgICAgICBzZWxmLnJlc29sdmVJdGVtKHNwZWMsIF9yb290LCByZXNvbHV0aW9uVGFibGUsIHJlc29sdmVkUmVmcywgdW5yZXNvbHZlZFJlZnMsIGl0ZW0pO1xuICAgICAgICBwcm9jZXNzZWRDYWxscyArPSAxO1xuXG4gICAgICAgIGlmKHByb2Nlc3NlZENhbGxzID09PSBleHBlY3RlZENhbGxzKSB7XG4gICAgICAgICAgc2VsZi5maW5pc2goc3BlYywgcm9vdCwgcmVzb2x1dGlvblRhYmxlLCByZXNvbHZlZFJlZnMsIHVucmVzb2x2ZWRSZWZzLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXIgb2JqID0ge1xuICAgICAgICAgIHVzZUpRdWVyeTogZmFsc2UsICAvLyBUT0RPXG4gICAgICAgICAgdXJsOiBpdGVtLnJvb3QsXG4gICAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBhY2NlcHQ6IHNlbGYuc2NvcGUuc3dhZ2dlclJlcXVlc3RIZWFkZXJzIHx8ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgb246IHtcbiAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHByb2Nlc3NlZENhbGxzICs9IDE7XG4gICAgICAgICAgICAgIHVucmVzb2x2ZWRSZWZzW2l0ZW0ua2V5XSA9IHtcbiAgICAgICAgICAgICAgICByb290OiBpdGVtLnJvb3QsXG4gICAgICAgICAgICAgICAgbG9jYXRpb246IGl0ZW0ubG9jYXRpb25cbiAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICBpZiAocHJvY2Vzc2VkQ2FsbHMgPT09IGV4cGVjdGVkQ2FsbHMpIHtcbiAgICAgICAgICAgICAgICBzZWxmLmZpbmlzaChzcGVjLCBfcm9vdCwgcmVzb2x1dGlvblRhYmxlLCByZXNvbHZlZFJlZnMsIHVucmVzb2x2ZWRSZWZzLCBjYWxsYmFjayk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sICAvLyBqc2hpbnQgaWdub3JlOmxpbmVcbiAgICAgICAgICAgIHJlc3BvbnNlOiBmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgdmFyIHN3YWdnZXIgPSByZXNwb25zZS5vYmo7XG4gICAgICAgICAgICAgIHNlbGYucmVzb2x2ZUl0ZW0oc3dhZ2dlciwgaXRlbS5yb290LCByZXNvbHV0aW9uVGFibGUsIHJlc29sdmVkUmVmcywgdW5yZXNvbHZlZFJlZnMsIGl0ZW0pO1xuICAgICAgICAgICAgICBwcm9jZXNzZWRDYWxscyArPSAxO1xuXG4gICAgICAgICAgICAgIGlmIChwcm9jZXNzZWRDYWxscyA9PT0gZXhwZWN0ZWRDYWxscykge1xuICAgICAgICAgICAgICAgIHNlbGYuZmluaXNoKHNwZWMsIF9yb290LCByZXNvbHV0aW9uVGFibGUsIHJlc29sdmVkUmVmcywgdW5yZXNvbHZlZFJlZnMsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gLy8ganNoaW50IGlnbm9yZTpsaW5lXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHNjb3BlICYmIHNjb3BlLmNsaWVudEF1dGhvcml6YXRpb25zKSB7XG4gICAgICAgICAgc2NvcGUuY2xpZW50QXV0aG9yaXphdGlvbnMuYXBwbHkob2JqKTtcbiAgICAgICAgfVxuICAgICAgICBuZXcgU3dhZ2dlckh0dHAoKS5leGVjdXRlKG9iaik7XG4gICAgICB9XG4gICAgfSh0b1Jlc29sdmVbaWldLCB0aGlzKSk7XG4gIH1cblxuICBpZiAoT2JqZWN0LmtleXModG9SZXNvbHZlKS5sZW5ndGggPT09IDApIHtcbiAgICB0aGlzLmZpbmlzaChzcGVjLCBfcm9vdCwgcmVzb2x1dGlvblRhYmxlLCByZXNvbHZlZFJlZnMsIHVucmVzb2x2ZWRSZWZzLCBjYWxsYmFjayk7XG4gIH1cbn07XG5cblJlc29sdmVyLnByb3RvdHlwZS5yZXNvbHZlSXRlbSA9IGZ1bmN0aW9uKHNwZWMsIHJvb3QsIHJlc29sdXRpb25UYWJsZSwgcmVzb2x2ZWRSZWZzLCB1bnJlc29sdmVkUmVmcywgaXRlbSkge1xuICB2YXIgcGF0aCA9IGl0ZW0ubG9jYXRpb247XG4gIHZhciBsb2NhdGlvbiA9IHNwZWMsIHBhcnRzID0gcGF0aC5zcGxpdCgnLycpO1xuICBpZihwYXRoICE9PSAnJykge1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwgcGFydHMubGVuZ3RoOyBqKyspIHtcbiAgICAgIHZhciBzZWdtZW50ID0gcGFydHNbal07XG4gICAgICBpZiAoc2VnbWVudC5pbmRleE9mKCd+MScpICE9PSAtMSkge1xuICAgICAgICBzZWdtZW50ID0gcGFydHNbal0ucmVwbGFjZSgvfjAvZywgJ34nKS5yZXBsYWNlKC9+MS9nLCAnLycpO1xuICAgICAgICBpZiAoc2VnbWVudC5jaGFyQXQoMCkgIT09ICcvJykge1xuICAgICAgICAgIHNlZ21lbnQgPSAnLycgKyBzZWdtZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGxvY2F0aW9uID09PSAndW5kZWZpbmVkJyB8fCBsb2NhdGlvbiA9PT0gbnVsbCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGlmIChzZWdtZW50ID09PSAnJyAmJiBqID09PSAocGFydHMubGVuZ3RoIC0gMSkgJiYgcGFydHMubGVuZ3RoID4gMSkge1xuICAgICAgICBsb2NhdGlvbiA9IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKHNlZ21lbnQubGVuZ3RoID4gMCkge1xuICAgICAgICBsb2NhdGlvbiA9IGxvY2F0aW9uW3NlZ21lbnRdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICB2YXIgcmVzb2x2ZWQgPSBpdGVtLmtleTtcbiAgcGFydHMgPSBpdGVtLmtleS5zcGxpdCgnLycpO1xuICB2YXIgcmVzb2x2ZWROYW1lID0gcGFydHNbcGFydHMubGVuZ3RoLTFdO1xuXG4gIGlmKHJlc29sdmVkTmFtZS5pbmRleE9mKCcjJykgPj0gMCkge1xuICAgIHJlc29sdmVkTmFtZSA9IHJlc29sdmVkTmFtZS5zcGxpdCgnIycpWzFdO1xuICB9XG5cbiAgaWYgKGxvY2F0aW9uICE9PSBudWxsICYmIHR5cGVvZiBsb2NhdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXNvbHZlZFJlZnNbcmVzb2x2ZWRdID0ge1xuICAgICAgbmFtZTogcmVzb2x2ZWROYW1lLFxuICAgICAgb2JqOiBsb2NhdGlvbixcbiAgICAgIGtleTogaXRlbS5rZXksXG4gICAgICByb290OiBpdGVtLnJvb3RcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHVucmVzb2x2ZWRSZWZzW3Jlc29sdmVkXSA9IHtcbiAgICAgIHJvb3Q6IGl0ZW0ucm9vdCxcbiAgICAgIGxvY2F0aW9uOiBpdGVtLmxvY2F0aW9uXG4gICAgfTtcbiAgfVxufTtcblxuUmVzb2x2ZXIucHJvdG90eXBlLmZpbmlzaCA9IGZ1bmN0aW9uIChzcGVjLCByb290LCByZXNvbHV0aW9uVGFibGUsIHJlc29sdmVkUmVmcywgdW5yZXNvbHZlZFJlZnMsIGNhbGxiYWNrKSB7XG4gIC8vIHdhbGsgcmVzb2x1dGlvbiB0YWJsZSBhbmQgcmVwbGFjZSB3aXRoIHJlc29sdmVkIHJlZnNcbiAgdmFyIHJlZjtcbiAgZm9yIChyZWYgaW4gcmVzb2x1dGlvblRhYmxlKSB7XG4gICAgdmFyIGl0ZW0gPSByZXNvbHV0aW9uVGFibGVbcmVmXTtcblxuICAgIHZhciBrZXkgPSBpdGVtLmtleTtcbiAgICB2YXIgcmVzb2x2ZWRUbyA9IHJlc29sdmVkUmVmc1trZXldO1xuICAgIGlmIChyZXNvbHZlZFRvKSB7XG4gICAgICBzcGVjLmRlZmluaXRpb25zID0gc3BlYy5kZWZpbml0aW9ucyB8fCB7fTtcbiAgICAgIGlmIChpdGVtLnJlc29sdmVBcyA9PT0gJ3JlZicpIHtcbiAgICAgICAgZm9yIChrZXkgaW4gcmVzb2x2ZWRUby5vYmopIHtcbiAgICAgICAgICB2YXIgYWJzID0gdGhpcy5yZXRhaW5Sb290KHJlc29sdmVkVG8ub2JqW2tleV0sIGl0ZW0ucm9vdCk7XG4gICAgICAgIH1cbiAgICAgICAgc3BlYy5kZWZpbml0aW9uc1tyZXNvbHZlZFRvLm5hbWVdID0gcmVzb2x2ZWRUby5vYmo7XG4gICAgICAgIGl0ZW0ub2JqLiRyZWYgPSAnIy9kZWZpbml0aW9ucy8nICsgcmVzb2x2ZWRUby5uYW1lO1xuICAgICAgfSBlbHNlIGlmIChpdGVtLnJlc29sdmVBcyA9PT0gJ2lubGluZScpIHtcbiAgICAgICAgdmFyIHRhcmdldE9iaiA9IGl0ZW0ub2JqO1xuICAgICAgICB0YXJnZXRPYmpbJ3gtcmVzb2x2ZWQtZnJvbSddID0gWyBpdGVtLmtleSBdO1xuICAgICAgICBkZWxldGUgdGFyZ2V0T2JqLiRyZWY7XG5cbiAgICAgICAgZm9yIChrZXkgaW4gcmVzb2x2ZWRUby5vYmopIHtcbiAgICAgICAgICB2YXIgYWJzID0gdGhpcy5yZXRhaW5Sb290KHJlc29sdmVkVG8ub2JqW2tleV0sIGl0ZW0ucm9vdCk7XG4gICAgICAgICAgdGFyZ2V0T2JqW2tleV0gPSBhYnM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgdmFyIGV4aXN0aW5nVW5yZXNvbHZlZCA9IHRoaXMuY291bnRVbnJlc29sdmVkUmVmcyhzcGVjKTtcblxuICBpZihleGlzdGluZ1VucmVzb2x2ZWQubGVuZ3RoID09PSAwIHx8IHRoaXMuaXRlcmF0aW9uID4gNSkge1xuICAgIHRoaXMucmVzb2x2ZUFsbE9mKHNwZWMuZGVmaW5pdGlvbnMpO1xuICAgIGNhbGxiYWNrLmNhbGwodGhpcy5zY29wZSwgc3BlYywgdW5yZXNvbHZlZFJlZnMpO1xuICB9XG4gIGVsc2Uge1xuICAgIHRoaXMuaXRlcmF0aW9uICs9IDE7XG4gICAgdGhpcy5yZXNvbHZlKHNwZWMsIHJvb3QsIGNhbGxiYWNrLCB0aGlzLnNjb3BlKTtcbiAgfVxufTtcblxuUmVzb2x2ZXIucHJvdG90eXBlLmNvdW50VW5yZXNvbHZlZFJlZnMgPSBmdW5jdGlvbihzcGVjKSB7XG4gIHZhciBpO1xuICB2YXIgcmVmcyA9IHRoaXMuZ2V0UmVmcyhzcGVjKTtcbiAgdmFyIGtleXMgPSBbXTtcbiAgdmFyIHVucmVzb2x2ZWRLZXlzID0gW107XG4gIGZvcihpIGluIHJlZnMpIHtcbiAgICBpZihpLmluZGV4T2YoJyMnKSA9PT0gMCkge1xuICAgICAga2V5cy5wdXNoKGkuc3Vic3RyaW5nKDEpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB1bnJlc29sdmVkS2V5cy5wdXNoKGkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHZlcmlmeSBwb3NzaWJsZSBrZXlzXG4gIGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHBhcnQgPSBrZXlzW2ldO1xuICAgIHZhciBwYXJ0cyA9IHBhcnQuc3BsaXQoJy8nKTtcbiAgICB2YXIgb2JqID0gc3BlYztcblxuICAgIGZvciAodmFyIGsgPSAwOyBrIDwgcGFydHMubGVuZ3RoOyBrKyspIHtcbiAgICAgIHZhciBrZXkgPSBwYXJ0c1trXTtcbiAgICAgIGlmKGtleSAhPT0gJycpIHtcbiAgICAgICAgb2JqID0gb2JqW2tleV07XG4gICAgICAgIGlmKHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgdW5yZXNvbHZlZEtleXMucHVzaChwYXJ0KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gdW5yZXNvbHZlZEtleXMubGVuZ3RoO1xufTtcblxuUmVzb2x2ZXIucHJvdG90eXBlLmdldFJlZnMgPSBmdW5jdGlvbihzcGVjLCBvYmopIHtcbiAgb2JqID0gb2JqIHx8IHNwZWM7XG4gIHZhciBvdXRwdXQgPSB7fTtcbiAgZm9yKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgaWYgKCFvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHZhciBpdGVtID0gb2JqW2tleV07XG4gICAgaWYoa2V5ID09PSAnJHJlZicgJiYgdHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnKSB7XG4gICAgICBvdXRwdXRbaXRlbV0gPSBudWxsO1xuICAgIH1cbiAgICBlbHNlIGlmKF8uaXNPYmplY3QoaXRlbSkpIHtcbiAgICAgIHZhciBvID0gdGhpcy5nZXRSZWZzKGl0ZW0pO1xuICAgICAgZm9yKHZhciBrIGluIG8pIHtcbiAgICAgICAgb3V0cHV0W2tdID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dHB1dDtcbn07XG5cblJlc29sdmVyLnByb3RvdHlwZS5yZXRhaW5Sb290ID0gZnVuY3Rpb24ob2JqLCByb290KSB7XG4gIC8vIHdhbGsgb2JqZWN0IGFuZCBsb29rIGZvciByZWxhdGl2ZSAkcmVmc1xuICBmb3IodmFyIGtleSBpbiBvYmopIHtcbiAgICB2YXIgaXRlbSA9IG9ialtrZXldO1xuICAgIGlmKGtleSA9PT0gJyRyZWYnICYmIHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gc3RvcCBhbmQgaW5zcGVjdFxuICAgICAgaWYoaXRlbS5pbmRleE9mKCdodHRwOi8vJykgIT09IDAgJiYgaXRlbS5pbmRleE9mKCdodHRwczovLycpICE9PSAwKSB7XG4gICAgICAgIGlmKGl0ZW0uaW5kZXhPZignIycpICE9PSAwKSB7XG4gICAgICAgICAgaXRlbSA9ICcjJyArIGl0ZW07XG4gICAgICAgIH1cbiAgICAgICAgaXRlbSA9IChyb290IHx8ICcnKSArIGl0ZW07XG4gICAgICAgIG9ialtrZXldID0gaXRlbTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZihfLmlzT2JqZWN0KGl0ZW0pKSB7XG4gICAgICB0aGlzLnJldGFpblJvb3QoaXRlbSwgcm9vdCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBvYmo7XG59O1xuXG4vKipcbiAqIGltbWVkaWF0ZWx5IGluLWxpbmVzIGxvY2FsIHJlZnMsIHF1ZXVlcyByZW1vdGUgcmVmc1xuICogZm9yIGlubGluZSByZXNvbHV0aW9uXG4gKi9cblJlc29sdmVyLnByb3RvdHlwZS5yZXNvbHZlSW5saW5lID0gZnVuY3Rpb24gKHJvb3QsIHNwZWMsIHByb3BlcnR5LCByZXNvbHV0aW9uVGFibGUsIHVucmVzb2x2ZWRSZWZzLCBsb2NhdGlvbikge1xuICB2YXIga2V5ID0gcHJvcGVydHkuJHJlZiwgcmVmID0gcHJvcGVydHkuJHJlZiwgaSwgcCwgcDIsIHJzO1xuICB2YXIgcm9vdFRyaW1tZWQgPSBmYWxzZTtcbiAgaWYgKHJlZikge1xuICAgIGlmKHJlZi5pbmRleE9mKCcuLi8nKSA9PT0gMCkge1xuICAgICAgLy8gcmVzZXQgcm9vdFxuICAgICAgcCA9IHJlZi5zcGxpdCgnLi4vJyk7XG4gICAgICBwMiA9IHJvb3Quc3BsaXQoJy8nKTtcbiAgICAgIHJlZiA9ICcnO1xuICAgICAgZm9yKGkgPSAwOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZihwW2ldID09PSAnJykge1xuICAgICAgICAgIHAyID0gcDIuc2xpY2UoMCwgcDIubGVuZ3RoLTEpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHJlZiArPSBwW2ldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByb290ID0gJyc7XG4gICAgICBmb3IoaSA9IDA7IGkgPCBwMi5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgaWYoaSA+IDApIHsgcm9vdCArPSAnLyc7IH1cbiAgICAgICAgcm9vdCArPSBwMltpXTtcbiAgICAgIH1cbiAgICAgIHJvb3RUcmltbWVkID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYocmVmLmluZGV4T2YoJyMnKSA+PSAwKSB7XG4gICAgICBpZihyZWYuaW5kZXhPZignLycpID09PSAwKSB7XG4gICAgICAgIHJzID0gcmVmLnNwbGl0KCcjJyk7XG4gICAgICAgIHAgID0gcm9vdC5zcGxpdCgnLy8nKTtcbiAgICAgICAgcDIgPSBwWzFdLnNwbGl0KCcvJyk7XG4gICAgICAgIHJvb3QgPSBwWzBdICsgJy8vJyArIHAyWzBdICsgcnNbMF07XG4gICAgICAgIGxvY2F0aW9uID0gcnNbMV07XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgcnMgPSByZWYuc3BsaXQoJyMnKTtcbiAgICAgICAgaWYocnNbMF0gIT09ICcnKSB7XG4gICAgICAgICAgcDIgPSByb290LnNwbGl0KCcvJyk7XG4gICAgICAgICAgcDIgPSBwMi5zbGljZSgwLCBwMi5sZW5ndGggLSAxKTtcbiAgICAgICAgICBpZighcm9vdFRyaW1tZWQpIHtcbiAgICAgICAgICAgIHJvb3QgPSAnJztcbiAgICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgcDIubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICAgICAgaWYoayA+IDApIHsgcm9vdCArPSAnLyc7IH1cbiAgICAgICAgICAgICAgcm9vdCArPSBwMltrXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcm9vdCArPSAnLycgKyByZWYuc3BsaXQoJyMnKVswXTtcbiAgICAgICAgfVxuICAgICAgICBsb2NhdGlvbiA9IHJzWzFdO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocmVmLmluZGV4T2YoJ2h0dHAnKSA9PT0gMCkge1xuICAgICAgaWYocmVmLmluZGV4T2YoJyMnKSA+PSAwKSB7XG4gICAgICAgIHJvb3QgPSByZWYuc3BsaXQoJyMnKVswXTtcbiAgICAgICAgbG9jYXRpb24gPSByZWYuc3BsaXQoJyMnKVsxXTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICByb290ID0gcmVmO1xuICAgICAgICBsb2NhdGlvbiA9ICcnO1xuICAgICAgfVxuICAgICAgcmVzb2x1dGlvblRhYmxlLnB1c2goe29iajogcHJvcGVydHksIHJlc29sdmVBczogJ2lubGluZScsIHJvb3Q6IHJvb3QsIGtleToga2V5LCBsb2NhdGlvbjogbG9jYXRpb259KTtcbiAgICB9IGVsc2UgaWYgKHJlZi5pbmRleE9mKCcjJykgPT09IDApIHtcbiAgICAgIGxvY2F0aW9uID0gcmVmLnNwbGl0KCcjJylbMV07XG4gICAgICByZXNvbHV0aW9uVGFibGUucHVzaCh7b2JqOiBwcm9wZXJ0eSwgcmVzb2x2ZUFzOiAnaW5saW5lJywgcm9vdDogcm9vdCwga2V5OiBrZXksIGxvY2F0aW9uOiBsb2NhdGlvbn0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJlc29sdXRpb25UYWJsZS5wdXNoKHtvYmo6IHByb3BlcnR5LCByZXNvbHZlQXM6ICdpbmxpbmUnLCByb290OiByb290LCBrZXk6IGtleSwgbG9jYXRpb246IGxvY2F0aW9ufSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHByb3BlcnR5LnR5cGUgPT09ICdhcnJheScpIHtcbiAgICB0aGlzLnJlc29sdmVUbyhyb290LCBwcm9wZXJ0eS5pdGVtcywgcmVzb2x1dGlvblRhYmxlLCBsb2NhdGlvbik7XG4gIH1cbn07XG5cblJlc29sdmVyLnByb3RvdHlwZS5yZXNvbHZlVG8gPSBmdW5jdGlvbiAocm9vdCwgcHJvcGVydHksIHJlc29sdXRpb25UYWJsZSwgbG9jYXRpb24pIHtcbiAgdmFyIHNwLCBpO1xuICB2YXIgcmVmID0gcHJvcGVydHkuJHJlZjtcbiAgdmFyIGxyb290ID0gcm9vdDtcbiAgaWYgKHR5cGVvZiByZWYgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgaWYocmVmLmluZGV4T2YoJyMnKSA+PSAwKSB7XG4gICAgICB2YXIgcGFydHMgPSByZWYuc3BsaXQoJyMnKTtcblxuICAgICAgLy8gIy9kZWZpbml0aW9ucy9mb29cbiAgICAgIC8vIGZvby5qc29uIy9iYXJcbiAgICAgIGlmKHBhcnRzWzBdICYmIHJlZi5pbmRleE9mKCcvJykgPT09IDApIHtcblxuICAgICAgfVxuICAgICAgZWxzZSBpZihwYXJ0c1swXSAmJiByZWYuaW5kZXhPZignaHR0cCcpID09PSAwKSB7XG5cbiAgICAgIH1cbiAgICAgIGVsc2UgaWYocGFydHNbMF0gJiYgcGFydHNbMF0ubGVuZ3RoID4gMCkge1xuICAgICAgICAvLyByZWxhdGl2ZSBmaWxlXG4gICAgICAgIHNwID0gcm9vdC5zcGxpdCgnLycpO1xuICAgICAgICBscm9vdCA9ICcnO1xuICAgICAgICBmb3IoaSA9IDA7IGkgPCBzcC5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgICBscm9vdCArPSBzcFtpXSArICcvJztcbiAgICAgICAgfVxuICAgICAgICBscm9vdCArPSBwYXJ0c1swXTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuXG4gICAgICB9XG5cbiAgICAgIGxvY2F0aW9uID0gcGFydHNbMV07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgLy8gcmVsYXRpdmUgZmlsZVxuICAgICAgc3AgPSByb290LnNwbGl0KCcvJyk7XG4gICAgICBscm9vdCA9ICcnO1xuICAgICAgZm9yKGkgPSAwOyBpIDwgc3AubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgIGxyb290ICs9IHNwW2ldICsgJy8nO1xuICAgICAgfVxuICAgICAgbHJvb3QgKz0gcmVmO1xuICAgICAgbG9jYXRpb24gPSAnJztcbiAgICB9XG4gICAgcmVzb2x1dGlvblRhYmxlLnB1c2goe1xuICAgICAgb2JqOiBwcm9wZXJ0eSwgcmVzb2x2ZUFzOiAncmVmJywgcm9vdDogbHJvb3QsIGtleTogcmVmLCBsb2NhdGlvbjogbG9jYXRpb25cbiAgICB9KTtcbiAgfSBlbHNlIGlmIChwcm9wZXJ0eS50eXBlID09PSAnYXJyYXknKSB7XG4gICAgdmFyIGl0ZW1zID0gcHJvcGVydHkuaXRlbXM7XG4gICAgdGhpcy5yZXNvbHZlVG8ocm9vdCwgaXRlbXMsIHJlc29sdXRpb25UYWJsZSwgbG9jYXRpb24pO1xuICB9XG59O1xuXG5SZXNvbHZlci5wcm90b3R5cGUucmVzb2x2ZUFsbE9mID0gZnVuY3Rpb24oc3BlYywgb2JqLCBkZXB0aCkge1xuICBkZXB0aCA9IGRlcHRoIHx8IDA7XG4gIG9iaiA9IG9iaiB8fCBzcGVjO1xuICB2YXIgbmFtZTtcbiAgZm9yKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgaWYgKCFvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHZhciBpdGVtID0gb2JqW2tleV07XG4gICAgaWYoaXRlbSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignU3dhZ2dlciAyLjAgZG9lcyBub3Qgc3VwcG9ydCBudWxsIHR5cGVzICgnICsgb2JqICsgJykuICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItc3BlYy9pc3N1ZXMvMjI5LicpO1xuICAgIH1cbiAgICBpZih0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHRoaXMucmVzb2x2ZUFsbE9mKHNwZWMsIGl0ZW0sIGRlcHRoICsgMSk7XG4gICAgfVxuICAgIGlmKGl0ZW0gJiYgdHlwZW9mIGl0ZW0uYWxsT2YgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB2YXIgYWxsT2YgPSBpdGVtLmFsbE9mO1xuICAgICAgaWYoXy5pc0FycmF5KGFsbE9mKSkge1xuICAgICAgICB2YXIgb3V0cHV0ID0ge307XG4gICAgICAgIG91dHB1dFsneC1jb21wb3NlZCddID0gdHJ1ZTtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtWyd4LXJlc29sdmVkLWZyb20nXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICBvdXRwdXRbJ3gtcmVzb2x2ZWQtZnJvbSddID0gaXRlbVsneC1yZXNvbHZlZC1mcm9tJ107XG4gICAgICAgIH1cbiAgICAgICAgb3V0cHV0LnByb3BlcnRpZXMgPSB7fTtcbiAgICAgICAgaWYgKCBpdGVtLmV4YW1wbGUgKXtcbiAgICAgICAgICBvdXRwdXQuZXhhbXBsZSA9IGl0ZW0uZXhhbXBsZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgYWxsT2YubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgY29tcG9uZW50ID0gYWxsT2ZbaV07XG4gICAgICAgICAgdmFyIHNvdXJjZSA9ICdzZWxmJztcbiAgICAgICAgICBpZih0eXBlb2YgY29tcG9uZW50Wyd4LXJlc29sdmVkLWZyb20nXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHNvdXJjZSA9IGNvbXBvbmVudFsneC1yZXNvbHZlZC1mcm9tJ11bMF07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZm9yKHZhciBwYXJ0IGluIGNvbXBvbmVudCkge1xuICAgICAgICAgICAgaWYoIW91dHB1dC5oYXNPd25Qcm9wZXJ0eShwYXJ0KSkge1xuICAgICAgICAgICAgICBvdXRwdXRbcGFydF0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbXBvbmVudFtwYXJ0XSkpO1xuICAgICAgICAgICAgICBpZihwYXJ0ID09PSAncHJvcGVydGllcycpIHtcbiAgICAgICAgICAgICAgICBmb3IobmFtZSBpbiBvdXRwdXRbcGFydF0pIHtcbiAgICAgICAgICAgICAgICAgIG91dHB1dFtwYXJ0XVtuYW1lXVsneC1yZXNvbHZlZC1mcm9tJ10gPSBzb3VyY2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgaWYocGFydCA9PT0gJ3Byb3BlcnRpZXMnKSB7XG4gICAgICAgICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSBjb21wb25lbnRbcGFydF07XG4gICAgICAgICAgICAgICAgZm9yKG5hbWUgaW4gcHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgb3V0cHV0LnByb3BlcnRpZXNbbmFtZV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHByb3BlcnRpZXNbbmFtZV0pKTtcbiAgICAgICAgICAgICAgICAgIHZhciByZXNvbHZlZEZyb20gPSBwcm9wZXJ0aWVzW25hbWVdWyd4LXJlc29sdmVkLWZyb20nXTtcbiAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzb2x2ZWRGcm9tID09PSAndW5kZWZpbmVkJyB8fCByZXNvbHZlZEZyb20gPT09ICdzZWxmJykge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlZEZyb20gPSBzb3VyY2U7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBvdXRwdXQucHJvcGVydGllc1tuYW1lXVsneC1yZXNvbHZlZC1mcm9tJ10gPSByZXNvbHZlZEZyb207XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGVsc2UgaWYocGFydCA9PT0gJ3JlcXVpcmVkJykge1xuICAgICAgICAgICAgICAgIC8vIG1lcmdlICYgZGVkdXAgdGhlIHJlcXVpcmVkIGFycmF5XG4gICAgICAgICAgICAgICAgdmFyIGEgPSBvdXRwdXQucmVxdWlyZWQuY29uY2F0KGNvbXBvbmVudFtwYXJ0XSk7XG4gICAgICAgICAgICAgICAgZm9yKHZhciBrID0gMDsgayA8IGEubGVuZ3RoOyArK2spIHtcbiAgICAgICAgICAgICAgICAgIGZvcih2YXIgaiA9IGsgKyAxOyBqIDwgYS5sZW5ndGg7ICsraikge1xuICAgICAgICAgICAgICAgICAgICBpZihhW2tdID09PSBhW2pdKSB7IGEuc3BsaWNlKGotLSwgMSk7IH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb3V0cHV0LnJlcXVpcmVkID0gYTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBlbHNlIGlmKHBhcnQgPT09ICd4LXJlc29sdmVkLWZyb20nKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0Wyd4LXJlc29sdmVkLWZyb20nXS5wdXNoKHNvdXJjZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogbmVlZCB0byBtZXJnZSB0aGlzIHByb3BlcnR5XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ3doYXQgdG8gZG8gd2l0aCAnICsgcGFydClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvYmpba2V5XSA9IG91dHB1dDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYoXy5pc09iamVjdChpdGVtKSkge1xuICAgICAgdGhpcy5yZXNvbHZlQWxsT2Yoc3BlYywgaXRlbSwgZGVwdGggKyAxKTtcbiAgICB9XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBIZWxwZXJzID0gcmVxdWlyZSgnLi9oZWxwZXJzJyk7XG5cbnZhciBfID0ge1xuICBpc1BsYWluT2JqZWN0OiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNQbGFpbk9iamVjdCcpLFxuICBpc1VuZGVmaW5lZDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2lzVW5kZWZpbmVkJyksXG4gIGlzQXJyYXk6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9pc0FycmF5JyksXG4gIGlzT2JqZWN0OiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNPYmplY3QnKSxcbiAgaXNFbXB0eTogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2lzRW1wdHknKSxcbiAgbWFwOiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2NvbGxlY3Rpb24vbWFwJyksXG4gIGluZGV4T2Y6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvYXJyYXkvaW5kZXhPZicpLFxuICBjbG9uZURlZXA6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9jbG9uZURlZXAnKSxcbiAga2V5czogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9vYmplY3Qva2V5cycpLFxuICBmb3JFYWNoOiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2NvbGxlY3Rpb24vZm9yRWFjaCcpXG59O1xuXG5tb2R1bGUuZXhwb3J0cy5vcHRpb25IdG1sID0gb3B0aW9uSHRtbDtcbm1vZHVsZS5leHBvcnRzLnR5cGVGcm9tSnNvblNjaGVtYSA9IHR5cGVGcm9tSnNvblNjaGVtYTtcbm1vZHVsZS5leHBvcnRzLmdldFN0cmluZ1NpZ25hdHVyZSA9IGdldFN0cmluZ1NpZ25hdHVyZTtcbm1vZHVsZS5leHBvcnRzLnNjaGVtYVRvSFRNTCA9IHNjaGVtYVRvSFRNTDtcbm1vZHVsZS5leHBvcnRzLnNjaGVtYVRvSlNPTiA9IHNjaGVtYVRvSlNPTjtcblxuZnVuY3Rpb24gb3B0aW9uSHRtbChsYWJlbCwgdmFsdWUpIHtcbiAgcmV0dXJuICc8dHI+PHRkIGNsYXNzPVwib3B0aW9uTmFtZVwiPicgKyBsYWJlbCArICc6PC90ZD48dGQ+JyArIHZhbHVlICsgJzwvdGQ+PC90cj4nO1xufVxuXG5mdW5jdGlvbiB0eXBlRnJvbUpzb25TY2hlbWEodHlwZSwgZm9ybWF0KSB7XG4gIHZhciBzdHI7XG5cbiAgaWYgKHR5cGUgPT09ICdpbnRlZ2VyJyAmJiBmb3JtYXQgPT09ICdpbnQzMicpIHtcbiAgICBzdHIgPSAnaW50ZWdlcic7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2ludGVnZXInICYmIGZvcm1hdCA9PT0gJ2ludDY0Jykge1xuICAgIHN0ciA9ICdsb25nJztcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnaW50ZWdlcicgJiYgdHlwZW9mIGZvcm1hdCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBzdHIgPSAnbG9uZyc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3N0cmluZycgJiYgZm9ybWF0ID09PSAnZGF0ZS10aW1lJykge1xuICAgIHN0ciA9ICdkYXRlLXRpbWUnO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdHJpbmcnICYmIGZvcm1hdCA9PT0gJ2RhdGUnKSB7XG4gICAgc3RyID0gJ2RhdGUnO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdudW1iZXInICYmIGZvcm1hdCA9PT0gJ2Zsb2F0Jykge1xuICAgIHN0ciA9ICdmbG9hdCc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ251bWJlcicgJiYgZm9ybWF0ID09PSAnZG91YmxlJykge1xuICAgIHN0ciA9ICdkb3VibGUnO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdudW1iZXInICYmIHR5cGVvZiBmb3JtYXQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgc3RyID0gJ2RvdWJsZSc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgc3RyID0gJ2Jvb2xlYW4nO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgc3RyID0gJ3N0cmluZyc7XG4gIH1cblxuICByZXR1cm4gc3RyO1xufVxuXG5mdW5jdGlvbiBnZXRTdHJpbmdTaWduYXR1cmUob2JqLCBiYXNlQ29tcG9uZW50KSB7XG4gIHZhciBzdHIgPSAnJztcblxuICBpZiAodHlwZW9mIG9iai4kcmVmICE9PSAndW5kZWZpbmVkJykge1xuICAgIHN0ciArPSBIZWxwZXJzLnNpbXBsZVJlZihvYmouJHJlZik7XG4gIH0gZWxzZSBpZiAodHlwZW9mIG9iai50eXBlID09PSAndW5kZWZpbmVkJykge1xuICAgIHN0ciArPSAnb2JqZWN0JztcbiAgfSBlbHNlIGlmIChvYmoudHlwZSA9PT0gJ2FycmF5Jykge1xuICAgIGlmIChiYXNlQ29tcG9uZW50KSB7XG4gICAgICBzdHIgKz0gZ2V0U3RyaW5nU2lnbmF0dXJlKChvYmouaXRlbXMgfHwgb2JqLiRyZWYgfHwge30pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyICs9ICdBcnJheVsnO1xuICAgICAgc3RyICs9IGdldFN0cmluZ1NpZ25hdHVyZSgob2JqLml0ZW1zIHx8IG9iai4kcmVmIHx8IHt9KSk7XG4gICAgICBzdHIgKz0gJ10nO1xuICAgIH1cbiAgfSBlbHNlIGlmIChvYmoudHlwZSA9PT0gJ2ludGVnZXInICYmIG9iai5mb3JtYXQgPT09ICdpbnQzMicpIHtcbiAgICBzdHIgKz0gJ2ludGVnZXInO1xuICB9IGVsc2UgaWYgKG9iai50eXBlID09PSAnaW50ZWdlcicgJiYgb2JqLmZvcm1hdCA9PT0gJ2ludDY0Jykge1xuICAgIHN0ciArPSAnbG9uZyc7XG4gIH0gZWxzZSBpZiAob2JqLnR5cGUgPT09ICdpbnRlZ2VyJyAmJiB0eXBlb2Ygb2JqLmZvcm1hdCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBzdHIgKz0gJ2xvbmcnO1xuICB9IGVsc2UgaWYgKG9iai50eXBlID09PSAnc3RyaW5nJyAmJiBvYmouZm9ybWF0ID09PSAnZGF0ZS10aW1lJykge1xuICAgIHN0ciArPSAnZGF0ZS10aW1lJztcbiAgfSBlbHNlIGlmIChvYmoudHlwZSA9PT0gJ3N0cmluZycgJiYgb2JqLmZvcm1hdCA9PT0gJ2RhdGUnKSB7XG4gICAgc3RyICs9ICdkYXRlJztcbiAgfSBlbHNlIGlmIChvYmoudHlwZSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIG9iai5mb3JtYXQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgc3RyICs9ICdzdHJpbmcnO1xuICB9IGVsc2UgaWYgKG9iai50eXBlID09PSAnbnVtYmVyJyAmJiBvYmouZm9ybWF0ID09PSAnZmxvYXQnKSB7XG4gICAgc3RyICs9ICdmbG9hdCc7XG4gIH0gZWxzZSBpZiAob2JqLnR5cGUgPT09ICdudW1iZXInICYmIG9iai5mb3JtYXQgPT09ICdkb3VibGUnKSB7XG4gICAgc3RyICs9ICdkb3VibGUnO1xuICB9IGVsc2UgaWYgKG9iai50eXBlID09PSAnbnVtYmVyJyAmJiB0eXBlb2Ygb2JqLmZvcm1hdCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBzdHIgKz0gJ2RvdWJsZSc7XG4gIH0gZWxzZSBpZiAob2JqLnR5cGUgPT09ICdib29sZWFuJykge1xuICAgIHN0ciArPSAnYm9vbGVhbic7XG4gIH0gZWxzZSBpZiAob2JqLiRyZWYpIHtcbiAgICBzdHIgKz0gSGVscGVycy5zaW1wbGVSZWYob2JqLiRyZWYpO1xuICB9IGVsc2Uge1xuICAgIHN0ciArPSBvYmoudHlwZTtcbiAgfVxuXG4gIHJldHVybiBzdHI7XG59XG5cbmZ1bmN0aW9uIHNjaGVtYVRvSlNPTihzY2hlbWEsIG1vZGVscywgbW9kZWxzVG9JZ25vcmUsIG1vZGVsUHJvcGVydHlNYWNybykge1xuICAvLyBSZXNvbHZlIHRoZSBzY2hlbWEgKEhhbmRsZSBuZXN0ZWQgc2NoZW1hcylcbiAgc2NoZW1hID0gSGVscGVycy5yZXNvbHZlU2NoZW1hKHNjaGVtYSk7XG5cbiAgaWYodHlwZW9mIG1vZGVsUHJvcGVydHlNYWNybyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIG1vZGVsUHJvcGVydHlNYWNybyA9IGZ1bmN0aW9uKHByb3Ape1xuICAgICAgcmV0dXJuIChwcm9wIHx8IHt9KS5kZWZhdWx0O1xuICAgIH07XG4gIH1cblxuICBtb2RlbHNUb0lnbm9yZT0gbW9kZWxzVG9JZ25vcmUgfHwge307XG5cbiAgdmFyIHR5cGUgPSBzY2hlbWEudHlwZSB8fCAnb2JqZWN0JztcbiAgdmFyIGZvcm1hdCA9IHNjaGVtYS5mb3JtYXQ7XG4gIHZhciBtb2RlbDtcbiAgdmFyIG91dHB1dDtcblxuICBpZiAoc2NoZW1hLmV4YW1wbGUpIHtcbiAgICBvdXRwdXQgPSBzY2hlbWEuZXhhbXBsZTtcbiAgfSBlbHNlIGlmIChfLmlzVW5kZWZpbmVkKHNjaGVtYS5pdGVtcykgJiYgXy5pc0FycmF5KHNjaGVtYS5lbnVtKSkge1xuICAgIG91dHB1dCA9IHNjaGVtYS5lbnVtWzBdO1xuICB9XG5cbiAgaWYgKF8uaXNVbmRlZmluZWQob3V0cHV0KSkge1xuICAgIGlmIChzY2hlbWEuJHJlZikge1xuICAgICAgbW9kZWwgPSBtb2RlbHNbSGVscGVycy5zaW1wbGVSZWYoc2NoZW1hLiRyZWYpXTtcblxuICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKG1vZGVsKSkge1xuICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZChtb2RlbHNUb0lnbm9yZVttb2RlbC5uYW1lXSkpIHtcbiAgICAgICAgICBtb2RlbHNUb0lnbm9yZVttb2RlbC5uYW1lXSA9IG1vZGVsO1xuICAgICAgICAgIG91dHB1dCA9IHNjaGVtYVRvSlNPTihtb2RlbC5kZWZpbml0aW9uLCBtb2RlbHMsIG1vZGVsc1RvSWdub3JlLCBtb2RlbFByb3BlcnR5TWFjcm8pO1xuICAgICAgICAgIGRlbGV0ZSBtb2RlbHNUb0lnbm9yZVttb2RlbC5uYW1lXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAobW9kZWwudHlwZSA9PT0gJ2FycmF5Jykge1xuICAgICAgICAgICAgb3V0cHV0ID0gW107XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dHB1dCA9IHt9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIV8uaXNVbmRlZmluZWQoc2NoZW1hLmRlZmF1bHQpKSB7XG4gICAgICBvdXRwdXQgPSBzY2hlbWEuZGVmYXVsdDtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoZm9ybWF0ID09PSAnZGF0ZS10aW1lJykge1xuICAgICAgICBvdXRwdXQgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJ2RhdGUnKSB7XG4gICAgICAgIG91dHB1dCA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0cHV0ID0gJ3N0cmluZyc7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnaW50ZWdlcicpIHtcbiAgICAgIG91dHB1dCA9IDA7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgb3V0cHV0ID0gMC4wO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICBvdXRwdXQgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIG91dHB1dCA9IHt9O1xuXG4gICAgICBfLmZvckVhY2goc2NoZW1hLnByb3BlcnRpZXMsIGZ1bmN0aW9uIChwcm9wZXJ0eSwgbmFtZSkge1xuICAgICAgICB2YXIgY1Byb3BlcnR5ID0gXy5jbG9uZURlZXAocHJvcGVydHkpO1xuXG4gICAgICAgIC8vIEFsbG93IG1hY3JvIHRvIHNldCB0aGUgZGVmYXVsdCB2YWx1ZVxuICAgICAgICBjUHJvcGVydHkuZGVmYXVsdCA9IG1vZGVsUHJvcGVydHlNYWNybyhwcm9wZXJ0eSk7XG5cbiAgICAgICAgb3V0cHV0W25hbWVdID0gc2NoZW1hVG9KU09OKGNQcm9wZXJ0eSwgbW9kZWxzLCBtb2RlbHNUb0lnbm9yZSwgbW9kZWxQcm9wZXJ0eU1hY3JvKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2FycmF5Jykge1xuICAgICAgb3V0cHV0ID0gW107XG5cbiAgICAgIGlmIChfLmlzQXJyYXkoc2NoZW1hLml0ZW1zKSkge1xuICAgICAgICBfLmZvckVhY2goc2NoZW1hLml0ZW1zLCBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgIG91dHB1dC5wdXNoKHNjaGVtYVRvSlNPTihpdGVtLCBtb2RlbHMsIG1vZGVsc1RvSWdub3JlLCBtb2RlbFByb3BlcnR5TWFjcm8pKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKF8uaXNQbGFpbk9iamVjdChzY2hlbWEuaXRlbXMpKSB7XG4gICAgICAgIG91dHB1dC5wdXNoKHNjaGVtYVRvSlNPTihzY2hlbWEuaXRlbXMsIG1vZGVscywgbW9kZWxzVG9JZ25vcmUsIG1vZGVsUHJvcGVydHlNYWNybykpO1xuICAgICAgfSBlbHNlIGlmIChfLmlzVW5kZWZpbmVkKHNjaGVtYS5pdGVtcykpIHtcbiAgICAgICAgb3V0cHV0LnB1c2goe30pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgSGVscGVycy5sb2coJ0FycmF5IHR5cGVcXCdzIFxcJ2l0ZW1zXFwnIHByb3BlcnR5IGlzIG5vdCBhbiBhcnJheSBvciBhbiBvYmplY3QsIGNhbm5vdCBwcm9jZXNzJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dHB1dDtcbn1cblxuZnVuY3Rpb24gc2NoZW1hVG9IVE1MKG5hbWUsIHNjaGVtYSwgbW9kZWxzLCBtb2RlbFByb3BlcnR5TWFjcm8pIHtcblxuICB2YXIgc3Ryb25nT3BlbiA9ICc8c3BhbiBjbGFzcz1cInN0cm9uZ1wiPic7XG4gIHZhciBzdHJvbmdDbG9zZSA9ICc8L3NwYW4+JztcblxuICAvLyBBbGxvdyBmb3IgaWdub3JpbmcgdGhlICduYW1lJyBhcmd1bWVudC4uLi4gc2hpZnRpbmcgdGhlIHJlc3RcbiAgaWYoXy5pc09iamVjdChhcmd1bWVudHNbMF0pKSB7XG4gICAgbmFtZSA9IHZvaWQgMDtcbiAgICBzY2hlbWEgPSBhcmd1bWVudHNbMF07XG4gICAgbW9kZWxzID0gYXJndW1lbnRzWzFdO1xuICAgIG1vZGVsUHJvcGVydHlNYWNybyA9IGFyZ3VtZW50c1syXTtcbiAgfVxuXG4gIG1vZGVscyA9IG1vZGVscyB8fCB7fTtcblxuICAvLyBSZXNvbHZlIHRoZSBzY2hlbWEgKEhhbmRsZSBuZXN0ZWQgc2NoZW1hcylcbiAgc2NoZW1hID0gSGVscGVycy5yZXNvbHZlU2NoZW1hKHNjaGVtYSk7XG5cbiAgLy8gUmV0dXJuIGZvciBlbXB0eSBvYmplY3RcbiAgaWYoXy5pc0VtcHR5KHNjaGVtYSkpIHtcbiAgICByZXR1cm4gc3Ryb25nT3BlbiArICdFbXB0eScgKyBzdHJvbmdDbG9zZTtcbiAgfVxuXG4gIC8vIERlcmVmZXJlbmNlICRyZWYgZnJvbSAnbW9kZWxzJ1xuICBpZih0eXBlb2Ygc2NoZW1hLiRyZWYgPT09ICdzdHJpbmcnKSB7XG4gICAgbmFtZSA9IEhlbHBlcnMuc2ltcGxlUmVmKHNjaGVtYS4kcmVmKTtcbiAgICBzY2hlbWEgPSBtb2RlbHNbbmFtZV07XG4gICAgaWYodHlwZW9mIHNjaGVtYSA9PT0gJ3VuZGVmaW5lZCcpXG4gICAge1xuICAgICAgcmV0dXJuIHN0cm9uZ09wZW4gKyBuYW1lICsgJyBpcyBub3QgZGVmaW5lZCEnICsgc3Ryb25nQ2xvc2U7XG4gICAgfVxuICB9XG5cbiAgaWYodHlwZW9mIG5hbWUgIT09ICdzdHJpbmcnKSB7XG4gICAgbmFtZSA9IHNjaGVtYS50aXRsZSB8fCAnSW5saW5lIE1vZGVsJztcbiAgfVxuXG4gIC8vIElmIHdlIGFyZSBhIE1vZGVsIG9iamVjdC4uLiBhZGp1c3QgYWNjb3JkaW5nbHlcbiAgaWYoc2NoZW1hLmRlZmluaXRpb24pIHtcbiAgICBzY2hlbWEgPSBzY2hlbWEuZGVmaW5pdGlvbjtcbiAgfVxuXG4gIGlmKHR5cGVvZiBtb2RlbFByb3BlcnR5TWFjcm8gIT09ICdmdW5jdGlvbicpIHtcbiAgICBtb2RlbFByb3BlcnR5TWFjcm8gPSBmdW5jdGlvbihwcm9wKXtcbiAgICAgIHJldHVybiAocHJvcCB8fCB7fSkuZGVmYXVsdDtcbiAgICB9O1xuICB9XG5cbiAgdmFyIHJlZmVyZW5jZXMgPSB7fTtcbiAgdmFyIHNlZW5Nb2RlbHMgPSBbXTtcbiAgdmFyIGlubGluZU1vZGVscyA9IDA7XG5cblxuXG4gIC8vIEdlbmVyYXRlIGN1cnJlbnQgSFRNTFxuICB2YXIgaHRtbCA9IHByb2Nlc3NNb2RlbChzY2hlbWEsIG5hbWUpO1xuXG4gIC8vIEdlbmVyYXRlIHJlZmVyZW5jZXMgSFRNTFxuICB3aGlsZSAoXy5rZXlzKHJlZmVyZW5jZXMpLmxlbmd0aCA+IDApIHtcbiAgICAvKiBqc2hpbnQgaWdub3JlOnN0YXJ0ICovXG4gICAgXy5mb3JFYWNoKHJlZmVyZW5jZXMsIGZ1bmN0aW9uIChzY2hlbWEsIG5hbWUpIHtcbiAgICAgIHZhciBzZWVuTW9kZWwgPSBfLmluZGV4T2Yoc2Vlbk1vZGVscywgbmFtZSkgPiAtMTtcblxuICAgICAgZGVsZXRlIHJlZmVyZW5jZXNbbmFtZV07XG5cbiAgICAgIGlmICghc2Vlbk1vZGVsKSB7XG4gICAgICAgIHNlZW5Nb2RlbHMucHVzaChuYW1lKTtcblxuICAgICAgICBodG1sICs9ICc8YnIgLz4nICsgcHJvY2Vzc01vZGVsKHNjaGVtYSwgbmFtZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLyoganNoaW50IGlnbm9yZTplbmQgKi9cbiAgfVxuXG4gIHJldHVybiBodG1sO1xuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGZ1bmN0aW9uIGFkZFJlZmVyZW5jZShzY2hlbWEsIG5hbWUsIHNraXBSZWYpIHtcbiAgICB2YXIgbW9kZWxOYW1lID0gbmFtZTtcbiAgICB2YXIgbW9kZWw7XG5cbiAgICBpZiAoc2NoZW1hLiRyZWYpIHtcbiAgICAgIG1vZGVsTmFtZSA9IHNjaGVtYS50aXRsZSB8fCBIZWxwZXJzLnNpbXBsZVJlZihzY2hlbWEuJHJlZik7XG4gICAgICBtb2RlbCA9IG1vZGVsc1ttb2RlbE5hbWVdO1xuICAgIH0gZWxzZSBpZiAoXy5pc1VuZGVmaW5lZChuYW1lKSkge1xuICAgICAgbW9kZWxOYW1lID0gc2NoZW1hLnRpdGxlIHx8ICdJbmxpbmUgTW9kZWwgJyArICgrK2lubGluZU1vZGVscyk7XG4gICAgICBtb2RlbCA9IHtkZWZpbml0aW9uOiBzY2hlbWF9O1xuICAgIH1cblxuICAgIGlmIChza2lwUmVmICE9PSB0cnVlKSB7XG4gICAgICByZWZlcmVuY2VzW21vZGVsTmFtZV0gPSBfLmlzVW5kZWZpbmVkKG1vZGVsKSA/IHt9IDogbW9kZWwuZGVmaW5pdGlvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gbW9kZWxOYW1lO1xuICB9XG5cbiAgZnVuY3Rpb24gcHJpbWl0aXZlVG9IVE1MKHNjaGVtYSkge1xuICAgIHZhciBodG1sID0gJzxzcGFuIGNsYXNzPVwicHJvcFR5cGVcIj4nO1xuICAgIHZhciB0eXBlID0gc2NoZW1hLnR5cGUgfHwgJ29iamVjdCc7XG5cbiAgICBpZiAoc2NoZW1hLiRyZWYpIHtcbiAgICAgIGh0bWwgKz0gYWRkUmVmZXJlbmNlKHNjaGVtYSwgSGVscGVycy5zaW1wbGVSZWYoc2NoZW1hLiRyZWYpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoIV8uaXNVbmRlZmluZWQoc2NoZW1hLnByb3BlcnRpZXMpKSB7XG4gICAgICAgIGh0bWwgKz0gYWRkUmVmZXJlbmNlKHNjaGVtYSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBodG1sICs9ICdvYmplY3QnO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2FycmF5Jykge1xuICAgICAgaHRtbCArPSAnQXJyYXlbJztcblxuICAgICAgaWYgKF8uaXNBcnJheShzY2hlbWEuaXRlbXMpKSB7XG4gICAgICAgIGh0bWwgKz0gXy5tYXAoc2NoZW1hLml0ZW1zLCBhZGRSZWZlcmVuY2UpLmpvaW4oJywnKTtcbiAgICAgIH0gZWxzZSBpZiAoXy5pc1BsYWluT2JqZWN0KHNjaGVtYS5pdGVtcykpIHtcbiAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQoc2NoZW1hLml0ZW1zLiRyZWYpKSB7XG4gICAgICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKHNjaGVtYS5pdGVtcy50eXBlKSAmJiBfLmluZGV4T2YoWydhcnJheScsICdvYmplY3QnXSwgc2NoZW1hLml0ZW1zLnR5cGUpID09PSAtMSkge1xuICAgICAgICAgICAgaHRtbCArPSBzY2hlbWEuaXRlbXMudHlwZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaHRtbCArPSBhZGRSZWZlcmVuY2Uoc2NoZW1hLml0ZW1zKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaHRtbCArPSBhZGRSZWZlcmVuY2Uoc2NoZW1hLml0ZW1zLCBIZWxwZXJzLnNpbXBsZVJlZihzY2hlbWEuaXRlbXMuJHJlZikpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBIZWxwZXJzLmxvZygnQXJyYXkgdHlwZVxcJ3MgXFwnaXRlbXNcXCcgc2NoZW1hIGlzIG5vdCBhbiBhcnJheSBvciBhbiBvYmplY3QsIGNhbm5vdCBwcm9jZXNzJyk7XG4gICAgICAgIGh0bWwgKz0gJ29iamVjdCc7XG4gICAgICB9XG5cbiAgICAgIGh0bWwgKz0gJ10nO1xuICAgIH0gZWxzZSB7XG4gICAgICBodG1sICs9IHNjaGVtYS50eXBlO1xuICAgIH1cblxuICAgIGh0bWwgKz0gJzwvc3Bhbj4nO1xuXG4gICAgcmV0dXJuIGh0bWw7XG4gIH1cblxuICBmdW5jdGlvbiBwcmltaXRpdmVUb09wdGlvbnNIVE1MKHNjaGVtYSwgaHRtbCkge1xuICAgIHZhciBvcHRpb25zID0gJyc7XG4gICAgdmFyIHR5cGUgPSBzY2hlbWEudHlwZSB8fCAnb2JqZWN0JztcbiAgICB2YXIgaXNBcnJheSA9IHR5cGUgPT09ICdhcnJheSc7XG5cbiAgICBpZiAoaXNBcnJheSkge1xuICAgICAgaWYgKF8uaXNQbGFpbk9iamVjdChzY2hlbWEuaXRlbXMpICYmICFfLmlzVW5kZWZpbmVkKHNjaGVtYS5pdGVtcy50eXBlKSkge1xuICAgICAgICB0eXBlID0gc2NoZW1hLml0ZW1zLnR5cGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0eXBlID0gJ29iamVjdCc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKHNjaGVtYS5kZWZhdWx0KSkge1xuICAgICAgb3B0aW9ucyArPSBvcHRpb25IdG1sKCdEZWZhdWx0Jywgc2NoZW1hLmRlZmF1bHQpO1xuICAgIH1cblxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICBpZiAoc2NoZW1hLm1pbkxlbmd0aCkge1xuICAgICAgICBvcHRpb25zICs9IG9wdGlvbkh0bWwoJ01pbi4gTGVuZ3RoJywgc2NoZW1hLm1pbkxlbmd0aCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzY2hlbWEubWF4TGVuZ3RoKSB7XG4gICAgICAgIG9wdGlvbnMgKz0gb3B0aW9uSHRtbCgnTWF4LiBMZW5ndGgnLCBzY2hlbWEubWF4TGVuZ3RoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNjaGVtYS5wYXR0ZXJuKSB7XG4gICAgICAgIG9wdGlvbnMgKz0gb3B0aW9uSHRtbCgnUmVnLiBFeHAuJywgc2NoZW1hLnBhdHRlcm4pO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnaW50ZWdlcic6XG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIGlmIChzY2hlbWEubWluaW11bSkge1xuICAgICAgICBvcHRpb25zICs9IG9wdGlvbkh0bWwoJ01pbi4gVmFsdWUnLCBzY2hlbWEubWluaW11bSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzY2hlbWEuZXhjbHVzaXZlTWluaW11bSkge1xuICAgICAgICBvcHRpb25zICs9IG9wdGlvbkh0bWwoJ0V4Y2x1c2l2ZSBNaW4uJywgJ3RydWUnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNjaGVtYS5tYXhpbXVtKSB7XG4gICAgICAgIG9wdGlvbnMgKz0gb3B0aW9uSHRtbCgnTWF4LiBWYWx1ZScsIHNjaGVtYS5tYXhpbXVtKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNjaGVtYS5leGNsdXNpdmVNYXhpbXVtKSB7XG4gICAgICAgIG9wdGlvbnMgKz0gb3B0aW9uSHRtbCgnRXhjbHVzaXZlIE1heC4nLCAndHJ1ZScpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc2NoZW1hLm11bHRpcGxlT2YpIHtcbiAgICAgICAgb3B0aW9ucyArPSBvcHRpb25IdG1sKCdNdWx0aXBsZSBPZicsIHNjaGVtYS5tdWx0aXBsZU9mKTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKGlzQXJyYXkpIHtcbiAgICAgIGlmIChzY2hlbWEubWluSXRlbXMpIHtcbiAgICAgICAgb3B0aW9ucyArPSBvcHRpb25IdG1sKCdNaW4uIEl0ZW1zJywgc2NoZW1hLm1pbkl0ZW1zKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNjaGVtYS5tYXhJdGVtcykge1xuICAgICAgICBvcHRpb25zICs9IG9wdGlvbkh0bWwoJ01heC4gSXRlbXMnLCBzY2hlbWEubWF4SXRlbXMpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc2NoZW1hLnVuaXF1ZUl0ZW1zKSB7XG4gICAgICAgIG9wdGlvbnMgKz0gb3B0aW9uSHRtbCgnVW5pcXVlIEl0ZW1zJywgJ3RydWUnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNjaGVtYS5jb2xsZWN0aW9uRm9ybWF0KSB7XG4gICAgICAgIG9wdGlvbnMgKz0gb3B0aW9uSHRtbCgnQ29sbC4gRm9ybWF0Jywgc2NoZW1hLmNvbGxlY3Rpb25Gb3JtYXQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChfLmlzVW5kZWZpbmVkKHNjaGVtYS5pdGVtcykpIHtcbiAgICAgIGlmIChfLmlzQXJyYXkoc2NoZW1hLmVudW0pKSB7XG4gICAgICAgIHZhciBlbnVtU3RyaW5nO1xuXG4gICAgICAgIGlmICh0eXBlID09PSAnbnVtYmVyJyB8fCB0eXBlID09PSAnaW50ZWdlcicpIHtcbiAgICAgICAgICBlbnVtU3RyaW5nID0gc2NoZW1hLmVudW0uam9pbignLCAnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlbnVtU3RyaW5nID0gJ1wiJyArIHNjaGVtYS5lbnVtLmpvaW4oJ1wiLCBcIicpICsgJ1wiJztcbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnMgKz0gb3B0aW9uSHRtbCgnRW51bScsIGVudW1TdHJpbmcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGh0bWwgPSAnPHNwYW4gY2xhc3M9XCJwcm9wV3JhcFwiPicgKyBodG1sICsgJzx0YWJsZSBjbGFzcz1cIm9wdGlvbnNXcmFwcGVyXCI+PHRyPjx0aCBjb2xzcGFuPVwiMlwiPicgKyB0eXBlICsgJzwvdGg+PC90cj4nICsgb3B0aW9ucyArICc8L3RhYmxlPjwvc3Bhbj4nO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sO1xuICB9XG5cbiAgZnVuY3Rpb24gcHJvY2Vzc01vZGVsKHNjaGVtYSwgbmFtZSkge1xuICAgIHZhciB0eXBlID0gc2NoZW1hLnR5cGUgfHwgJ29iamVjdCc7XG4gICAgdmFyIGlzQXJyYXkgPSBzY2hlbWEudHlwZSA9PT0gJ2FycmF5JztcbiAgICB2YXIgaHRtbCA9IHN0cm9uZ09wZW4gKyBuYW1lICsgJyAnICsgKGlzQXJyYXkgPyAnWycgOiAneycpICsgc3Ryb25nQ2xvc2U7XG5cbiAgICBpZiAobmFtZSkge1xuICAgICAgc2Vlbk1vZGVscy5wdXNoKG5hbWUpO1xuICAgIH1cblxuICAgIGlmIChpc0FycmF5KSB7XG4gICAgICBpZiAoXy5pc0FycmF5KHNjaGVtYS5pdGVtcykpIHtcbiAgICAgICAgaHRtbCArPSAnPGRpdj4nICsgXy5tYXAoc2NoZW1hLml0ZW1zLCBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgIHZhciB0eXBlID0gaXRlbS50eXBlIHx8ICdvYmplY3QnO1xuXG4gICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQoaXRlbS4kcmVmKSkge1xuICAgICAgICAgICAgaWYgKF8uaW5kZXhPZihbJ2FycmF5JywgJ29iamVjdCddLCB0eXBlKSA+IC0xKSB7XG4gICAgICAgICAgICAgIGlmICh0eXBlID09PSAnb2JqZWN0JyAmJiBfLmlzVW5kZWZpbmVkKGl0ZW0ucHJvcGVydGllcykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ29iamVjdCc7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFkZFJlZmVyZW5jZShpdGVtKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVRvT3B0aW9uc0hUTUwoaXRlbSwgdHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhZGRSZWZlcmVuY2UoaXRlbSwgSGVscGVycy5zaW1wbGVSZWYoaXRlbS4kcmVmKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KS5qb2luKCcsPC9kaXY+PGRpdj4nKTtcbiAgICAgIH0gZWxzZSBpZiAoXy5pc1BsYWluT2JqZWN0KHNjaGVtYS5pdGVtcykpIHtcbiAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQoc2NoZW1hLml0ZW1zLiRyZWYpKSB7XG4gICAgICAgICAgaWYgKF8uaW5kZXhPZihbJ2FycmF5JywgJ29iamVjdCddLCBzY2hlbWEuaXRlbXMudHlwZSB8fCAnb2JqZWN0JykgPiAtMSkge1xuICAgICAgICAgICAgaWYgKChfLmlzVW5kZWZpbmVkKHNjaGVtYS5pdGVtcy50eXBlKSB8fCBzY2hlbWEuaXRlbXMudHlwZSA9PT0gJ29iamVjdCcpICYmIF8uaXNVbmRlZmluZWQoc2NoZW1hLml0ZW1zLnByb3BlcnRpZXMpKSB7XG4gICAgICAgICAgICAgIGh0bWwgKz0gJzxkaXY+b2JqZWN0PC9kaXY+JztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGh0bWwgKz0gJzxkaXY+JyArIGFkZFJlZmVyZW5jZShzY2hlbWEuaXRlbXMpICsgJzwvZGl2Pic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGh0bWwgKz0gJzxkaXY+JyArIHByaW1pdGl2ZVRvT3B0aW9uc0hUTUwoc2NoZW1hLml0ZW1zLCBzY2hlbWEuaXRlbXMudHlwZSkgKyAnPC9kaXY+JztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaHRtbCArPSAnPGRpdj4nICsgYWRkUmVmZXJlbmNlKHNjaGVtYS5pdGVtcywgSGVscGVycy5zaW1wbGVSZWYoc2NoZW1hLml0ZW1zLiRyZWYpKSArICc8L2Rpdj4nO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBIZWxwZXJzLmxvZygnQXJyYXkgdHlwZVxcJ3MgXFwnaXRlbXNcXCcgcHJvcGVydHkgaXMgbm90IGFuIGFycmF5IG9yIGFuIG9iamVjdCwgY2Fubm90IHByb2Nlc3MnKTtcbiAgICAgICAgaHRtbCArPSAnPGRpdj5vYmplY3Q8L2Rpdj4nO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc2NoZW1hLiRyZWYpIHtcbiAgICAgICAgaHRtbCArPSAnPGRpdj4nICsgYWRkUmVmZXJlbmNlKHNjaGVtYSwgbmFtZSkgKyAnPC9kaXY+JztcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgaHRtbCArPSAnPGRpdj4nO1xuXG4gICAgICAgIGlmIChfLmlzUGxhaW5PYmplY3Qoc2NoZW1hLnByb3BlcnRpZXMpKSB7XG4gICAgICAgICAgaHRtbCArPSBfLm1hcChzY2hlbWEucHJvcGVydGllcywgZnVuY3Rpb24gKHByb3BlcnR5LCBuYW1lKSB7XG4gICAgICAgICAgICB2YXIgcHJvcGVydHlJc1JlcXVpcmVkID0gKF8uaW5kZXhPZihzY2hlbWEucmVxdWlyZWQsIG5hbWUpID49IDApO1xuICAgICAgICAgICAgdmFyIGNQcm9wZXJ0eSA9IF8uY2xvbmVEZWVwKHByb3BlcnR5KTtcblxuICAgICAgICAgICAgdmFyIHJlcXVpcmVkQ2xhc3MgPSBwcm9wZXJ0eUlzUmVxdWlyZWQgPyAncmVxdWlyZWQnIDogJyc7XG4gICAgICAgICAgICB2YXIgaHRtbCA9ICc8c3BhbiBjbGFzcz1cInByb3BOYW1lICcgKyByZXF1aXJlZENsYXNzICsgJ1wiPicgKyBuYW1lICsgJzwvc3Bhbj4gKCc7XG4gICAgICAgICAgICB2YXIgbW9kZWw7XG5cbiAgICAgICAgICAgIC8vIEFsbG93IG1hY3JvIHRvIHNldCB0aGUgZGVmYXVsdCB2YWx1ZVxuICAgICAgICAgICAgY1Byb3BlcnR5LmRlZmF1bHQgPSBtb2RlbFByb3BlcnR5TWFjcm8oY1Byb3BlcnR5KTtcblxuICAgICAgICAgICAgLy8gUmVzb2x2ZSB0aGUgc2NoZW1hIChIYW5kbGUgbmVzdGVkIHNjaGVtYXMpXG4gICAgICAgICAgICBjUHJvcGVydHkgPSBIZWxwZXJzLnJlc29sdmVTY2hlbWEoY1Byb3BlcnR5KTtcblxuICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBoYW5kbGUgcHJvcGVydHkgcmVmZXJlbmNlcyB0byBwcmltaXRpdmVzIChJc3N1ZSAzMzkpXG4gICAgICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQoY1Byb3BlcnR5LiRyZWYpKSB7XG4gICAgICAgICAgICAgIG1vZGVsID0gbW9kZWxzW0hlbHBlcnMuc2ltcGxlUmVmKGNQcm9wZXJ0eS4kcmVmKV07XG5cbiAgICAgICAgICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKG1vZGVsKSAmJiBfLmluZGV4T2YoW3VuZGVmaW5lZCwgJ2FycmF5JywgJ29iamVjdCddLCBtb2RlbC5kZWZpbml0aW9uLnR5cGUpID09PSAtMSkge1xuICAgICAgICAgICAgICAgIC8vIFVzZSByZWZlcmVuY2VkIHNjaGVtYVxuICAgICAgICAgICAgICAgIGNQcm9wZXJ0eSA9IEhlbHBlcnMucmVzb2x2ZVNjaGVtYShtb2RlbC5kZWZpbml0aW9uKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBodG1sICs9IHByaW1pdGl2ZVRvSFRNTChjUHJvcGVydHkpO1xuXG4gICAgICAgICAgICBpZighcHJvcGVydHlJc1JlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIGh0bWwgKz0gJywgPHNwYW4gY2xhc3M9XCJwcm9wT3B0S2V5XCI+b3B0aW9uYWw8L3NwYW4+JztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaHRtbCArPSAnKSc7XG5cbiAgICAgICAgICAgIGlmICghXy5pc1VuZGVmaW5lZChjUHJvcGVydHkuZGVzY3JpcHRpb24pKSB7XG4gICAgICAgICAgICAgIGh0bWwgKz0gJzogJyArICc8c3BhbiBjbGFzcz1cInByb3BEZXNjXCI+JyArIGNQcm9wZXJ0eS5kZXNjcmlwdGlvbiArICc8L3NwYW4+JztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNQcm9wZXJ0eS5lbnVtKSB7XG4gICAgICAgICAgICAgIGh0bWwgKz0gJyA9IDxzcGFuIGNsYXNzPVwicHJvcFZhbHNcIj5bXFwnJyArIGNQcm9wZXJ0eS5lbnVtLmpvaW4oJ1xcJywgXFwnJykgKyAnXFwnXTwvc3Bhbj4nO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcHJpbWl0aXZlVG9PcHRpb25zSFRNTChjUHJvcGVydHksIGh0bWwpO1xuICAgICAgICAgIH0pLmpvaW4oJyw8L2Rpdj48ZGl2PicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaHRtbCArPSAnPC9kaXY+JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGh0bWwgKz0gJzxkaXY+JyArIHByaW1pdGl2ZVRvT3B0aW9uc0hUTUwoc2NoZW1hLCB0eXBlKSArICc8L2Rpdj4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBodG1sICsgc3Ryb25nT3BlbiArIChpc0FycmF5ID8gJ10nIDogJ30nKSArIHN0cm9uZ0Nsb3NlO1xuICB9XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBTd2FnZ2VySHR0cCA9IHJlcXVpcmUoJy4vaHR0cCcpO1xudmFyIF8gPSB7XG4gIGlzT2JqZWN0OiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNPYmplY3QnKVxufTtcblxudmFyIFN3YWdnZXJTcGVjQ29udmVydGVyID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuZXJyb3JzID0gW107XG4gIHRoaXMud2FybmluZ3MgPSBbXTtcbiAgdGhpcy5tb2RlbE1hcCA9IHt9O1xufTtcblxuU3dhZ2dlclNwZWNDb252ZXJ0ZXIucHJvdG90eXBlLnNldERvY3VtZW50YXRpb25Mb2NhdGlvbiA9IGZ1bmN0aW9uIChsb2NhdGlvbikge1xuICB0aGlzLmRvY0xvY2F0aW9uID0gbG9jYXRpb247XG59O1xuXG4vKipcbiAqIGNvbnZlcnRzIGEgcmVzb3VyY2UgbGlzdGluZyBPUiBhcGkgZGVjbGFyYXRpb25cbiAqKi9cblN3YWdnZXJTcGVjQ29udmVydGVyLnByb3RvdHlwZS5jb252ZXJ0ID0gZnVuY3Rpb24gKG9iaiwgY2xpZW50QXV0aG9yaXphdGlvbnMsIGNhbGxiYWNrKSB7XG4gIC8vIG5vdCBhIHZhbGlkIHNwZWNcbiAgaWYoIW9iaiB8fCAhQXJyYXkuaXNBcnJheShvYmouYXBpcykpIHtcbiAgICByZXR1cm4gdGhpcy5maW5pc2goY2FsbGJhY2ssIG51bGwpO1xuICB9XG4gIHRoaXMuY2xpZW50QXV0aG9yaXphdGlvbnMgPSBjbGllbnRBdXRob3JpemF0aW9ucztcblxuICAvLyBjcmVhdGUgYSBuZXcgc3dhZ2dlciBvYmplY3QgdG8gcmV0dXJuXG4gIHZhciBzd2FnZ2VyID0geyBzd2FnZ2VyOiAnMi4wJyB9O1xuXG4gIHN3YWdnZXIub3JpZ2luYWxWZXJzaW9uID0gb2JqLnN3YWdnZXJWZXJzaW9uO1xuXG4gIC8vIGFkZCB0aGUgaW5mb1xuICB0aGlzLmFwaUluZm8ob2JqLCBzd2FnZ2VyKTtcblxuICAvLyBhZGQgc2VjdXJpdHkgZGVmaW5pdGlvbnNcbiAgdGhpcy5zZWN1cml0eURlZmluaXRpb25zKG9iaiwgc3dhZ2dlcik7XG5cbiAgLy8gdGFrZSBiYXNlUGF0aCBpbnRvIGFjY291bnRcbiAgaWYgKG9iai5iYXNlUGF0aCkge1xuICAgIHRoaXMuc2V0RG9jdW1lbnRhdGlvbkxvY2F0aW9uKG9iai5iYXNlUGF0aCk7XG4gIH1cblxuICAvLyBzZWUgaWYgdGhpcyBpcyBhIHNpbmdsZS1maWxlIHN3YWdnZXIgZGVmaW5pdGlvblxuICB2YXIgaXNTaW5nbGVGaWxlU3dhZ2dlciA9IGZhbHNlO1xuICB2YXIgaTtcbiAgZm9yKGkgPSAwOyBpIDwgb2JqLmFwaXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgYXBpID0gb2JqLmFwaXNbaV07XG4gICAgaWYoQXJyYXkuaXNBcnJheShhcGkub3BlcmF0aW9ucykpIHtcbiAgICAgIGlzU2luZ2xlRmlsZVN3YWdnZXIgPSB0cnVlO1xuICAgIH1cbiAgfVxuICBpZihpc1NpbmdsZUZpbGVTd2FnZ2VyKSB7XG4gICAgdGhpcy5kZWNsYXJhdGlvbihvYmosIHN3YWdnZXIpO1xuICAgIHRoaXMuZmluaXNoKGNhbGxiYWNrLCBzd2FnZ2VyKTtcbiAgfVxuICBlbHNlIHtcbiAgICB0aGlzLnJlc291cmNlTGlzdGluZyhvYmosIHN3YWdnZXIsIGNhbGxiYWNrKTtcbiAgfVxufTtcblxuU3dhZ2dlclNwZWNDb252ZXJ0ZXIucHJvdG90eXBlLmRlY2xhcmF0aW9uID0gZnVuY3Rpb24ob2JqLCBzd2FnZ2VyKSB7XG4gIHZhciBuYW1lLCBpLCBwLCBwb3M7XG4gIGlmKCFvYmouYXBpcykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChvYmouYmFzZVBhdGguaW5kZXhPZignaHR0cDovLycpID09PSAwKSB7XG4gICAgcCA9IG9iai5iYXNlUGF0aC5zdWJzdHJpbmcoJ2h0dHA6Ly8nLmxlbmd0aCk7XG4gICAgcG9zID0gcC5pbmRleE9mKCcvJyk7XG4gICAgaWYgKHBvcyA+IDApIHtcbiAgICAgIHN3YWdnZXIuaG9zdCA9IHAuc3Vic3RyaW5nKDAsIHBvcyk7XG4gICAgICBzd2FnZ2VyLmJhc2VQYXRoID0gcC5zdWJzdHJpbmcocG9zKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBzd2FnZ2VyLmhvc3QgPSBwO1xuICAgICAgc3dhZ2dlci5iYXNlUGF0aCA9ICcvJztcbiAgICB9XG4gIH0gZWxzZSBpZiAob2JqLmJhc2VQYXRoLmluZGV4T2YoJ2h0dHBzOi8vJykgPT09IDApIHtcbiAgICBwID0gb2JqLmJhc2VQYXRoLnN1YnN0cmluZygnaHR0cHM6Ly8nLmxlbmd0aCk7XG4gICAgcG9zID0gcC5pbmRleE9mKCcvJyk7XG4gICAgaWYgKHBvcyA+IDApIHtcbiAgICAgIHN3YWdnZXIuaG9zdCA9IHAuc3Vic3RyaW5nKDAsIHBvcyk7XG4gICAgICBzd2FnZ2VyLmJhc2VQYXRoID0gcC5zdWJzdHJpbmcocG9zKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBzd2FnZ2VyLmhvc3QgPSBwO1xuICAgICAgc3dhZ2dlci5iYXNlUGF0aCA9ICcvJztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc3dhZ2dlci5iYXNlUGF0aCA9IG9iai5iYXNlUGF0aDtcbiAgfVxuXG4gIHZhciByZXNvdXJjZUxldmVsQXV0aDtcbiAgaWYob2JqLmF1dGhvcml6YXRpb25zKSB7XG4gICAgcmVzb3VyY2VMZXZlbEF1dGggPSBvYmouYXV0aG9yaXphdGlvbnM7XG4gIH1cbiAgaWYob2JqLmNvbnN1bWVzKSB7XG4gICAgc3dhZ2dlci5jb25zdW1lcyA9IG9iai5jb25zdW1lcztcbiAgfVxuICBpZihvYmoucHJvZHVjZXMpIHtcbiAgICBzd2FnZ2VyLnByb2R1Y2VzID0gb2JqLnByb2R1Y2VzO1xuICB9XG5cbiAgLy8gYnVpbGQgYSBtYXBwaW5nIG9mIGlkIHRvIG5hbWUgZm9yIDEuMCBtb2RlbCByZXNvbHV0aW9uc1xuICBpZihfLmlzT2JqZWN0KG9iaikpIHtcbiAgICBmb3IobmFtZSBpbiBvYmoubW9kZWxzKSB7XG4gICAgICB2YXIgZXhpc3RpbmdNb2RlbCA9IG9iai5tb2RlbHNbbmFtZV07XG4gICAgICB2YXIga2V5ID0gKGV4aXN0aW5nTW9kZWwuaWQgfHwgbmFtZSk7XG4gICAgICB0aGlzLm1vZGVsTWFwW2tleV0gPSBuYW1lO1xuICAgIH1cbiAgfVxuXG4gIGZvcihpID0gMDsgaSA8IG9iai5hcGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGFwaSA9IG9iai5hcGlzW2ldO1xuICAgIHZhciBwYXRoID0gYXBpLnBhdGg7XG4gICAgdmFyIG9wZXJhdGlvbnMgPSBhcGkub3BlcmF0aW9ucztcbiAgICB0aGlzLm9wZXJhdGlvbnMocGF0aCwgb2JqLnJlc291cmNlUGF0aCwgb3BlcmF0aW9ucywgcmVzb3VyY2VMZXZlbEF1dGgsIHN3YWdnZXIpO1xuICB9XG5cbiAgdmFyIG1vZGVscyA9IG9iai5tb2RlbHMgfHwge307XG4gIHRoaXMubW9kZWxzKG1vZGVscywgc3dhZ2dlcik7XG59O1xuXG5Td2FnZ2VyU3BlY0NvbnZlcnRlci5wcm90b3R5cGUubW9kZWxzID0gZnVuY3Rpb24ob2JqLCBzd2FnZ2VyKSB7XG4gIGlmKCFfLmlzT2JqZWN0KG9iaikpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIG5hbWU7XG5cbiAgc3dhZ2dlci5kZWZpbml0aW9ucyA9IHN3YWdnZXIuZGVmaW5pdGlvbnMgfHwge307XG4gIGZvcihuYW1lIGluIG9iaikge1xuICAgIHZhciBleGlzdGluZ01vZGVsID0gb2JqW25hbWVdO1xuICAgIHZhciBfZW51bSA9IFtdO1xuICAgIHZhciBzY2hlbWEgPSB7IHByb3BlcnRpZXM6IHt9fTtcbiAgICB2YXIgcHJvcGVydHlOYW1lO1xuICAgIGZvcihwcm9wZXJ0eU5hbWUgaW4gZXhpc3RpbmdNb2RlbC5wcm9wZXJ0aWVzKSB7XG4gICAgICB2YXIgZXhpc3RpbmdQcm9wZXJ0eSA9IGV4aXN0aW5nTW9kZWwucHJvcGVydGllc1twcm9wZXJ0eU5hbWVdO1xuICAgICAgdmFyIHByb3BlcnR5ID0ge307XG4gICAgICB0aGlzLmRhdGFUeXBlKGV4aXN0aW5nUHJvcGVydHksIHByb3BlcnR5KTtcbiAgICAgIGlmKGV4aXN0aW5nUHJvcGVydHkuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgcHJvcGVydHkuZGVzY3JpcHRpb24gPSBleGlzdGluZ1Byb3BlcnR5LmRlc2NyaXB0aW9uO1xuICAgICAgfVxuICAgICAgaWYoZXhpc3RpbmdQcm9wZXJ0eVsnZW51bSddKSB7XG4gICAgICAgIHByb3BlcnR5WydlbnVtJ10gPSBleGlzdGluZ1Byb3BlcnR5WydlbnVtJ107XG4gICAgICB9XG4gICAgICBpZih0eXBlb2YgZXhpc3RpbmdQcm9wZXJ0eS5yZXF1aXJlZCA9PT0gJ2Jvb2xlYW4nICYmIGV4aXN0aW5nUHJvcGVydHkucmVxdWlyZWQgPT09IHRydWUpIHtcbiAgICAgICAgX2VudW0ucHVzaChwcm9wZXJ0eU5hbWUpO1xuICAgICAgfVxuICAgICAgaWYodHlwZW9mIGV4aXN0aW5nUHJvcGVydHkucmVxdWlyZWQgPT09ICdzdHJpbmcnICYmIGV4aXN0aW5nUHJvcGVydHkucmVxdWlyZWQgPT09ICd0cnVlJykge1xuICAgICAgICBfZW51bS5wdXNoKHByb3BlcnR5TmFtZSk7XG4gICAgICB9XG4gICAgICBzY2hlbWEucHJvcGVydGllc1twcm9wZXJ0eU5hbWVdID0gcHJvcGVydHk7XG4gICAgfVxuICAgIGlmKF9lbnVtLmxlbmd0aCA+IDApIHtcbiAgICAgIHNjaGVtYVsnZW51bSddID0gX2VudW07XG4gICAgfVxuXG4gICAgc2NoZW1hLnJlcXVpcmVkID0gZXhpc3RpbmdNb2RlbC5yZXF1aXJlZDtcbiAgICBzd2FnZ2VyLmRlZmluaXRpb25zW25hbWVdID0gc2NoZW1hO1xuICB9XG59O1xuXG5Td2FnZ2VyU3BlY0NvbnZlcnRlci5wcm90b3R5cGUuZXh0cmFjdFRhZyA9IGZ1bmN0aW9uKHJlc291cmNlUGF0aCkge1xuICB2YXIgcGF0aFN0cmluZyA9IHJlc291cmNlUGF0aCB8fCAnZGVmYXVsdCc7XG4gIGlmKHBhdGhTdHJpbmcuaW5kZXhPZignaHR0cDonKSA9PT0gMCB8fCBwYXRoU3RyaW5nLmluZGV4T2YoJ2h0dHBzOicpID09PSAwKSB7XG4gICAgcGF0aFN0cmluZyA9IHBhdGhTdHJpbmcuc3BsaXQoWycvJ10pO1xuICAgIHBhdGhTdHJpbmcgPSBwYXRoU3RyaW5nW3BhdGhTdHJpbmcubGVuZ3RoIC0xXS5zdWJzdHJpbmcoKTtcbiAgfVxuICBpZihwYXRoU3RyaW5nLmVuZHNXaXRoKCcuanNvbicpKSB7XG4gICAgcGF0aFN0cmluZyA9IHBhdGhTdHJpbmcuc3Vic3RyaW5nKDAsIHBhdGhTdHJpbmcubGVuZ3RoIC0gJy5qc29uJy5sZW5ndGgpO1xuICB9XG4gIHJldHVybiBwYXRoU3RyaW5nLnJlcGxhY2UoJy8nLCcnKTtcbn07XG5cblN3YWdnZXJTcGVjQ29udmVydGVyLnByb3RvdHlwZS5vcGVyYXRpb25zID0gZnVuY3Rpb24ocGF0aCwgcmVzb3VyY2VQYXRoLCBvYmosIHJlc291cmNlTGV2ZWxBdXRoLCBzd2FnZ2VyKSB7XG4gIGlmKCFBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIGk7XG5cbiAgaWYoIXN3YWdnZXIucGF0aHMpIHtcbiAgICBzd2FnZ2VyLnBhdGhzID0ge307XG4gIH1cblxuICB2YXIgcGF0aE9iaiA9IHN3YWdnZXIucGF0aHNbcGF0aF0gfHwge307XG4gIHZhciB0YWcgPSB0aGlzLmV4dHJhY3RUYWcocmVzb3VyY2VQYXRoKTtcbiAgc3dhZ2dlci50YWdzID0gc3dhZ2dlci50YWdzIHx8IFtdO1xuICB2YXIgbWF0Y2hlZCA9IGZhbHNlO1xuICBmb3IoaSA9IDA7IGkgPCBzd2FnZ2VyLnRhZ3MubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgdGFnT2JqZWN0ID0gc3dhZ2dlci50YWdzW2ldO1xuICAgIGlmKHRhZ09iamVjdC5uYW1lID09PSB0YWcpIHtcbiAgICAgIG1hdGNoZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuICBpZighbWF0Y2hlZCkge1xuICAgIHN3YWdnZXIudGFncy5wdXNoKHtuYW1lOiB0YWd9KTtcbiAgfVxuXG4gIGZvcihpID0gMDsgaSA8IG9iai5sZW5ndGg7IGkrKykge1xuICAgIHZhciBleGlzdGluZ09wZXJhdGlvbiA9IG9ialtpXTtcbiAgICB2YXIgbWV0aG9kID0gKGV4aXN0aW5nT3BlcmF0aW9uLm1ldGhvZCB8fCBleGlzdGluZ09wZXJhdGlvbi5odHRwTWV0aG9kKS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhciBvcGVyYXRpb24gPSB7dGFnczogW3RhZ119O1xuICAgIHZhciBleGlzdGluZ0F1dGhvcml6YXRpb25zID0gZXhpc3RpbmdPcGVyYXRpb24uYXV0aG9yaXphdGlvbnM7XG5cbiAgICBpZihleGlzdGluZ0F1dGhvcml6YXRpb25zICYmIE9iamVjdC5rZXlzKGV4aXN0aW5nQXV0aG9yaXphdGlvbnMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZXhpc3RpbmdBdXRob3JpemF0aW9ucyA9IHJlc291cmNlTGV2ZWxBdXRoO1xuICAgIH1cblxuICAgIGlmKHR5cGVvZiBleGlzdGluZ0F1dGhvcml6YXRpb25zICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdmFyIHNjb3Blc09iamVjdDtcbiAgICAgIGZvcih2YXIga2V5IGluIGV4aXN0aW5nQXV0aG9yaXphdGlvbnMpIHtcbiAgICAgICAgb3BlcmF0aW9uLnNlY3VyaXR5ID0gb3BlcmF0aW9uLnNlY3VyaXR5IHx8IFtdO1xuICAgICAgICB2YXIgc2NvcGVzID0gZXhpc3RpbmdBdXRob3JpemF0aW9uc1trZXldO1xuICAgICAgICBpZihzY29wZXMpIHtcbiAgICAgICAgICB2YXIgc2VjdXJpdHlTY29wZXMgPSBbXTtcbiAgICAgICAgICBmb3IodmFyIGogaW4gc2NvcGVzKSB7XG4gICAgICAgICAgICBzZWN1cml0eVNjb3Blcy5wdXNoKHNjb3Blc1tqXS5zY29wZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNjb3Blc09iamVjdCA9IHt9O1xuICAgICAgICAgIHNjb3Blc09iamVjdFtrZXldID0gc2VjdXJpdHlTY29wZXM7XG4gICAgICAgICAgb3BlcmF0aW9uLnNlY3VyaXR5LnB1c2goc2NvcGVzT2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBzY29wZXNPYmplY3QgPSB7fTtcbiAgICAgICAgICBzY29wZXNPYmplY3Rba2V5XSA9IFtdO1xuICAgICAgICAgIG9wZXJhdGlvbi5zZWN1cml0eS5wdXNoKHNjb3Blc09iamVjdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZihleGlzdGluZ09wZXJhdGlvbi5jb25zdW1lcykge1xuICAgICAgb3BlcmF0aW9uLmNvbnN1bWVzID0gZXhpc3RpbmdPcGVyYXRpb24uY29uc3VtZXM7XG4gICAgfVxuICAgIGVsc2UgaWYoc3dhZ2dlci5jb25zdW1lcykge1xuICAgICAgb3BlcmF0aW9uLmNvbnN1bWVzID0gc3dhZ2dlci5jb25zdW1lcztcbiAgICB9XG4gICAgaWYoZXhpc3RpbmdPcGVyYXRpb24ucHJvZHVjZXMpIHtcbiAgICAgIG9wZXJhdGlvbi5wcm9kdWNlcyA9IGV4aXN0aW5nT3BlcmF0aW9uLnByb2R1Y2VzO1xuICAgIH1cbiAgICBlbHNlIGlmKHN3YWdnZXIucHJvZHVjZXMpIHtcbiAgICAgIG9wZXJhdGlvbi5wcm9kdWNlcyA9IHN3YWdnZXIucHJvZHVjZXM7XG4gICAgfVxuICAgIGlmKGV4aXN0aW5nT3BlcmF0aW9uLnN1bW1hcnkpIHtcbiAgICAgIG9wZXJhdGlvbi5zdW1tYXJ5ID0gZXhpc3RpbmdPcGVyYXRpb24uc3VtbWFyeTtcbiAgICB9XG4gICAgaWYoZXhpc3RpbmdPcGVyYXRpb24ubm90ZXMpIHtcbiAgICAgIG9wZXJhdGlvbi5kZXNjcmlwdGlvbiA9IGV4aXN0aW5nT3BlcmF0aW9uLm5vdGVzO1xuICAgIH1cbiAgICBpZihleGlzdGluZ09wZXJhdGlvbi5uaWNrbmFtZSkge1xuICAgICAgb3BlcmF0aW9uLm9wZXJhdGlvbklkID0gZXhpc3RpbmdPcGVyYXRpb24ubmlja25hbWU7XG4gICAgfVxuICAgIGlmKGV4aXN0aW5nT3BlcmF0aW9uLmRlcHJlY2F0ZWQpIHtcbiAgICAgIG9wZXJhdGlvbi5kZXByZWNhdGVkID0gZXhpc3RpbmdPcGVyYXRpb24uZGVwcmVjYXRlZDtcbiAgICB9XG5cbiAgICB0aGlzLmF1dGhvcml6YXRpb25zKGV4aXN0aW5nQXV0aG9yaXphdGlvbnMsIHN3YWdnZXIpO1xuICAgIHRoaXMucGFyYW1ldGVycyhvcGVyYXRpb24sIGV4aXN0aW5nT3BlcmF0aW9uLnBhcmFtZXRlcnMsIHN3YWdnZXIpO1xuICAgIHRoaXMucmVzcG9uc2VNZXNzYWdlcyhvcGVyYXRpb24sIGV4aXN0aW5nT3BlcmF0aW9uLCBzd2FnZ2VyKTtcblxuICAgIHBhdGhPYmpbbWV0aG9kXSA9IG9wZXJhdGlvbjtcbiAgfVxuXG4gIHN3YWdnZXIucGF0aHNbcGF0aF0gPSBwYXRoT2JqO1xufTtcblxuU3dhZ2dlclNwZWNDb252ZXJ0ZXIucHJvdG90eXBlLnJlc3BvbnNlTWVzc2FnZXMgPSBmdW5jdGlvbihvcGVyYXRpb24sIGV4aXN0aW5nT3BlcmF0aW9uKSB7XG4gIGlmKCFfLmlzT2JqZWN0KGV4aXN0aW5nT3BlcmF0aW9uKSkge1xuICAgIHJldHVybjtcbiAgfVxuICAvLyBidWlsZCBkZWZhdWx0IHJlc3BvbnNlIGZyb20gdGhlIG9wZXJhdGlvbiAoMS54KVxuICB2YXIgZGVmYXVsdFJlc3BvbnNlID0ge307XG4gIHRoaXMuZGF0YVR5cGUoZXhpc3RpbmdPcGVyYXRpb24sIGRlZmF1bHRSZXNwb25zZSk7XG4gIC8vIFRPRE86IGxvb2sgaW50byB0aGUgcmVhbCBwcm9ibGVtIG9mIHJlbmRlcmluZyByZXNwb25zZXMgaW4gc3dhZ2dlci11aVxuICAvLyAuLi4uc2hvdWxkIHJlcG9uc2VUeXBlIGhhdmUgYW4gaW1wbGljaXQgc2NoZW1hP1xuICBpZighZGVmYXVsdFJlc3BvbnNlLnNjaGVtYSAmJiBkZWZhdWx0UmVzcG9uc2UudHlwZSkge1xuICAgIGRlZmF1bHRSZXNwb25zZSA9IHtzY2hlbWE6IGRlZmF1bHRSZXNwb25zZX07XG4gIH1cblxuICBvcGVyYXRpb24ucmVzcG9uc2VzID0gb3BlcmF0aW9uLnJlc3BvbnNlcyB8fCB7fTtcblxuICAvLyBncmFiIGZyb20gcmVzcG9uc2VNZXNzYWdlcyAoMS4yKVxuICB2YXIgaGFzMjAwID0gZmFsc2U7XG4gIGlmKEFycmF5LmlzQXJyYXkoZXhpc3RpbmdPcGVyYXRpb24ucmVzcG9uc2VNZXNzYWdlcykpIHtcbiAgICB2YXIgaTtcbiAgICB2YXIgZXhpc3RpbmdSZXNwb25zZXMgPSBleGlzdGluZ09wZXJhdGlvbi5yZXNwb25zZU1lc3NhZ2VzO1xuICAgIGZvcihpID0gMDsgaSA8IGV4aXN0aW5nUmVzcG9uc2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZXhpc3RpbmdSZXNwb25zZSA9IGV4aXN0aW5nUmVzcG9uc2VzW2ldO1xuICAgICAgdmFyIHJlc3BvbnNlID0geyBkZXNjcmlwdGlvbjogZXhpc3RpbmdSZXNwb25zZS5tZXNzYWdlIH07XG4gICAgICBpZihleGlzdGluZ1Jlc3BvbnNlLmNvZGUgPT09IDIwMCkge1xuICAgICAgICBoYXMyMDAgPSB0cnVlO1xuICAgICAgfVxuICAgICAgLy8gQ29udmVydCByZXNwb25zZU1vZGVsIC0+IHNjaGVtYXskcmVmOiByZXNwb25zZU1vZGVsfVxuICAgICAgaWYoZXhpc3RpbmdSZXNwb25zZS5yZXNwb25zZU1vZGVsKSB7XG4gICAgICAgIHJlc3BvbnNlLnNjaGVtYSA9IHsnJHJlZic6IGV4aXN0aW5nUmVzcG9uc2UucmVzcG9uc2VNb2RlbH07XG4gICAgICB9XG4gICAgICBvcGVyYXRpb24ucmVzcG9uc2VzWycnICsgZXhpc3RpbmdSZXNwb25zZS5jb2RlXSA9IHJlc3BvbnNlO1xuICAgIH1cbiAgfVxuXG4gIGlmKGhhczIwMCkge1xuICAgIG9wZXJhdGlvbi5yZXNwb25zZXNbJ2RlZmF1bHQnXSA9IGRlZmF1bHRSZXNwb25zZTtcbiAgfVxuICBlbHNlIHtcbiAgICBvcGVyYXRpb24ucmVzcG9uc2VzWycyMDAnXSA9IGRlZmF1bHRSZXNwb25zZTtcbiAgfVxufTtcblxuU3dhZ2dlclNwZWNDb252ZXJ0ZXIucHJvdG90eXBlLmF1dGhvcml6YXRpb25zID0gZnVuY3Rpb24ob2JqKSB7XG4gIC8vIFRPRE9cbiAgaWYoIV8uaXNPYmplY3Qob2JqKSkge1xuICAgIHJldHVybjtcbiAgfVxufTtcblxuU3dhZ2dlclNwZWNDb252ZXJ0ZXIucHJvdG90eXBlLnBhcmFtZXRlcnMgPSBmdW5jdGlvbihvcGVyYXRpb24sIG9iaikge1xuICBpZighQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBpO1xuICBmb3IoaSA9IDA7IGkgPCBvYmoubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZXhpc3RpbmdQYXJhbWV0ZXIgPSBvYmpbaV07XG4gICAgdmFyIHBhcmFtZXRlciA9IHt9O1xuICAgIHBhcmFtZXRlci5uYW1lID0gZXhpc3RpbmdQYXJhbWV0ZXIubmFtZTtcbiAgICBwYXJhbWV0ZXIuZGVzY3JpcHRpb24gPSBleGlzdGluZ1BhcmFtZXRlci5kZXNjcmlwdGlvbjtcbiAgICBwYXJhbWV0ZXIucmVxdWlyZWQgPSBleGlzdGluZ1BhcmFtZXRlci5yZXF1aXJlZDtcbiAgICBwYXJhbWV0ZXIuaW4gPSBleGlzdGluZ1BhcmFtZXRlci5wYXJhbVR5cGU7XG5cbiAgICAvLyBwZXIgIzE2OFxuICAgIGlmKHBhcmFtZXRlci5pbiA9PT0gJ2JvZHknKSB7XG4gICAgICBwYXJhbWV0ZXIubmFtZSA9ICdib2R5JztcbiAgICB9XG4gICAgaWYocGFyYW1ldGVyLmluID09PSAnZm9ybScpIHtcbiAgICAgIHBhcmFtZXRlci5pbiA9ICdmb3JtRGF0YSc7XG4gICAgfVxuXG4gICAgaWYoZXhpc3RpbmdQYXJhbWV0ZXIuZW51bSkge1xuICAgICAgcGFyYW1ldGVyLmVudW0gPSBleGlzdGluZ1BhcmFtZXRlci5lbnVtO1xuICAgIH1cblxuICAgIGlmKGV4aXN0aW5nUGFyYW1ldGVyLmFsbG93TXVsdGlwbGUgPT09IHRydWUgfHwgZXhpc3RpbmdQYXJhbWV0ZXIuYWxsb3dNdWx0aXBsZSA9PT0gJ3RydWUnKSB7XG4gICAgICB2YXIgaW5uZXJUeXBlID0ge307XG4gICAgICB0aGlzLmRhdGFUeXBlKGV4aXN0aW5nUGFyYW1ldGVyLCBpbm5lclR5cGUpO1xuICAgICAgcGFyYW1ldGVyLnR5cGUgPSAnYXJyYXknO1xuICAgICAgcGFyYW1ldGVyLml0ZW1zID0gaW5uZXJUeXBlO1xuXG4gICAgICBpZihleGlzdGluZ1BhcmFtZXRlci5hbGxvd2FibGVWYWx1ZXMpIHtcbiAgICAgICAgdmFyIGF2ID0gZXhpc3RpbmdQYXJhbWV0ZXIuYWxsb3dhYmxlVmFsdWVzO1xuICAgICAgICBpZihhdi52YWx1ZVR5cGUgPT09ICdMSVNUJykge1xuICAgICAgICAgIHBhcmFtZXRlclsnZW51bSddID0gYXYudmFsdWVzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5kYXRhVHlwZShleGlzdGluZ1BhcmFtZXRlciwgcGFyYW1ldGVyKTtcbiAgICB9XG5cbiAgICBvcGVyYXRpb24ucGFyYW1ldGVycyA9IG9wZXJhdGlvbi5wYXJhbWV0ZXJzIHx8IFtdO1xuICAgIG9wZXJhdGlvbi5wYXJhbWV0ZXJzLnB1c2gocGFyYW1ldGVyKTtcbiAgfVxufTtcblxuU3dhZ2dlclNwZWNDb252ZXJ0ZXIucHJvdG90eXBlLmRhdGFUeXBlID0gZnVuY3Rpb24oc291cmNlLCB0YXJnZXQpIHtcbiAgaWYoIV8uaXNPYmplY3Qoc291cmNlKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmKHNvdXJjZS5taW5pbXVtKSB7XG4gICAgdGFyZ2V0Lm1pbmltdW0gPSBzb3VyY2UubWluaW11bTtcbiAgfVxuICBpZihzb3VyY2UubWF4aW11bSkge1xuICAgIHRhcmdldC5tYXhpbXVtID0gc291cmNlLm1heGltdW07XG4gIH1cbiAgaWYgKHNvdXJjZS5mb3JtYXQpIHtcbiAgICB0YXJnZXQuZm9ybWF0ID0gc291cmNlLmZvcm1hdDtcbiAgfVxuXG4gIC8vIGRlZmF1bHQgY2FuIGJlICdmYWxzZSdcbiAgaWYodHlwZW9mIHNvdXJjZS5kZWZhdWx0VmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgdGFyZ2V0LmRlZmF1bHQgPSBzb3VyY2UuZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgdmFyIGpzb25TY2hlbWFUeXBlID0gdGhpcy50b0pzb25TY2hlbWEoc291cmNlKTtcbiAgaWYoanNvblNjaGVtYVR5cGUpIHtcbiAgICB0YXJnZXQgPSB0YXJnZXQgfHwge307XG4gICAgaWYoanNvblNjaGVtYVR5cGUudHlwZSkge1xuICAgICAgdGFyZ2V0LnR5cGUgPSBqc29uU2NoZW1hVHlwZS50eXBlO1xuICAgIH1cbiAgICBpZihqc29uU2NoZW1hVHlwZS5mb3JtYXQpIHtcbiAgICAgIHRhcmdldC5mb3JtYXQgPSBqc29uU2NoZW1hVHlwZS5mb3JtYXQ7XG4gICAgfVxuICAgIGlmKGpzb25TY2hlbWFUeXBlLiRyZWYpIHtcbiAgICAgIHRhcmdldC5zY2hlbWEgPSB7JHJlZjoganNvblNjaGVtYVR5cGUuJHJlZn07XG4gICAgfVxuICAgIGlmKGpzb25TY2hlbWFUeXBlLml0ZW1zKSB7XG4gICAgICB0YXJnZXQuaXRlbXMgPSBqc29uU2NoZW1hVHlwZS5pdGVtcztcbiAgICB9XG4gIH1cbn07XG5cblN3YWdnZXJTcGVjQ29udmVydGVyLnByb3RvdHlwZS50b0pzb25TY2hlbWEgPSBmdW5jdGlvbihzb3VyY2UpIHtcbiAgaWYoIXNvdXJjZSkge1xuICAgIHJldHVybiAnb2JqZWN0JztcbiAgfVxuICB2YXIgZGV0ZWN0ZWRUeXBlID0gKHNvdXJjZS50eXBlIHx8IHNvdXJjZS5kYXRhVHlwZSB8fCBzb3VyY2UucmVzcG9uc2VDbGFzcyB8fCAnJyk7XG4gIHZhciBsY1R5cGUgPSBkZXRlY3RlZFR5cGUudG9Mb3dlckNhc2UoKTtcbiAgdmFyIGZvcm1hdCA9IChzb3VyY2UuZm9ybWF0IHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuXG4gIGlmKGxjVHlwZS5pbmRleE9mKCdsaXN0WycpID09PSAwKSB7XG4gICAgdmFyIGlubmVyVHlwZSA9IGRldGVjdGVkVHlwZS5zdWJzdHJpbmcoNSwgZGV0ZWN0ZWRUeXBlLmxlbmd0aCAtIDEpO1xuICAgIHZhciBqc29uVHlwZSA9IHRoaXMudG9Kc29uU2NoZW1hKHt0eXBlOiBpbm5lclR5cGV9KTtcbiAgICByZXR1cm4ge3R5cGU6ICdhcnJheScsIGl0ZW1zOiBqc29uVHlwZX07XG4gIH1cbiAgZWxzZSBpZihsY1R5cGUgPT09ICdpbnQnIHx8IChsY1R5cGUgPT09ICdpbnRlZ2VyJyAmJiBmb3JtYXQgPT09ICdpbnQzMicpKVxuICAgIHtyZXR1cm4ge3R5cGU6ICdpbnRlZ2VyJywgZm9ybWF0OiAnaW50MzInfTt9XG4gIGVsc2UgaWYobGNUeXBlID09PSAnbG9uZycgfHwgKGxjVHlwZSA9PT0gJ2ludGVnZXInICYmIGZvcm1hdCA9PT0gJ2ludDY0JykpXG4gICAge3JldHVybiB7dHlwZTogJ2ludGVnZXInLCBmb3JtYXQ6ICdpbnQ2NCd9O31cbiAgZWxzZSBpZihsY1R5cGUgPT09ICdpbnRlZ2VyJylcbiAgICB7cmV0dXJuIHt0eXBlOiAnaW50ZWdlcicsIGZvcm1hdDogJ2ludDY0J307fVxuICBlbHNlIGlmKGxjVHlwZSA9PT0gJ2Zsb2F0JyB8fCAobGNUeXBlID09PSAnbnVtYmVyJyAmJiBmb3JtYXQgPT09ICdmbG9hdCcpKVxuICAgIHtyZXR1cm4ge3R5cGU6ICdudW1iZXInLCBmb3JtYXQ6ICdmbG9hdCd9O31cbiAgZWxzZSBpZihsY1R5cGUgPT09ICdkb3VibGUnIHx8IChsY1R5cGUgPT09ICdudW1iZXInICYmIGZvcm1hdCA9PT0gJ2RvdWJsZScpKVxuICAgIHtyZXR1cm4ge3R5cGU6ICdudW1iZXInLCBmb3JtYXQ6ICdkb3VibGUnfTt9XG4gIGVsc2UgaWYoKGxjVHlwZSA9PT0gJ3N0cmluZycgJiYgZm9ybWF0ID09PSAnZGF0ZS10aW1lJykgfHwgKGxjVHlwZSA9PT0gJ2RhdGUnKSlcbiAgICB7cmV0dXJuIHt0eXBlOiAnc3RyaW5nJywgZm9ybWF0OiAnZGF0ZS10aW1lJ307fVxuICBlbHNlIGlmKGxjVHlwZSA9PT0gJ3N0cmluZycpXG4gICAge3JldHVybiB7dHlwZTogJ3N0cmluZyd9O31cbiAgZWxzZSBpZihsY1R5cGUgPT09ICdmaWxlJylcbiAgICB7cmV0dXJuIHt0eXBlOiAnZmlsZSd9O31cbiAgZWxzZSBpZihsY1R5cGUgPT09ICdib29sZWFuJylcbiAgICB7cmV0dXJuIHt0eXBlOiAnYm9vbGVhbid9O31cbiAgZWxzZSBpZihsY1R5cGUgPT09ICdhcnJheScgfHwgbGNUeXBlID09PSAnbGlzdCcpIHtcbiAgICBpZihzb3VyY2UuaXRlbXMpIHtcbiAgICAgIHZhciBpdCA9IHRoaXMudG9Kc29uU2NoZW1hKHNvdXJjZS5pdGVtcyk7XG4gICAgICByZXR1cm4ge3R5cGU6ICdhcnJheScsIGl0ZW1zOiBpdH07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIHt0eXBlOiAnYXJyYXknLCBpdGVtczoge3R5cGU6ICdvYmplY3QnfX07XG4gICAgfVxuICB9XG4gIGVsc2UgaWYoc291cmNlLiRyZWYpIHtcbiAgICByZXR1cm4geyRyZWY6ICcjL2RlZmluaXRpb25zLycgKyB0aGlzLm1vZGVsTWFwW3NvdXJjZS4kcmVmXSB8fCBzb3VyY2UuJHJlZn07XG4gIH1cbiAgZWxzZSBpZihsY1R5cGUgPT09ICd2b2lkJyB8fCBsY1R5cGUgPT09ICcnKVxuICAgIHtyZXR1cm4ge307fVxuICBlbHNlIHtcbiAgICByZXR1cm4geyRyZWY6ICcjL2RlZmluaXRpb25zLycgKyB0aGlzLm1vZGVsTWFwW3NvdXJjZS50eXBlXSB8fCBzb3VyY2UudHlwZX07XG4gIH1cbn07XG5cblN3YWdnZXJTcGVjQ29udmVydGVyLnByb3RvdHlwZS5yZXNvdXJjZUxpc3RpbmcgPSBmdW5jdGlvbihvYmosIHN3YWdnZXIsIGNhbGxiYWNrKSB7XG4gIHZhciBpO1xuICB2YXIgcHJvY2Vzc2VkQ291bnQgPSAwOyAgIC8vIGpzaGludCBpZ25vcmU6bGluZVxuICB2YXIgc2VsZiA9IHRoaXM7ICAgICAgICAgIC8vIGpzaGludCBpZ25vcmU6bGluZVxuICB2YXIgZXhwZWN0ZWRDb3VudCA9IG9iai5hcGlzLmxlbmd0aDtcbiAgdmFyIF9zd2FnZ2VyID0gc3dhZ2dlcjsgICAvLyBqc2hpbnQgaWdub3JlOmxpbmVcblxuICBpZihleHBlY3RlZENvdW50ID09PSAwKSB7XG4gICAgdGhpcy5maW5pc2goY2FsbGJhY2ssIHN3YWdnZXIpO1xuICB9XG5cbiAgZm9yKGkgPSAwOyBpIDwgZXhwZWN0ZWRDb3VudDsgaSsrKSB7XG4gICAgdmFyIGFwaSA9IG9iai5hcGlzW2ldO1xuICAgIHZhciBwYXRoID0gYXBpLnBhdGg7XG4gICAgdmFyIGFic29sdXRlUGF0aCA9IHRoaXMuZ2V0QWJzb2x1dGVQYXRoKG9iai5zd2FnZ2VyVmVyc2lvbiwgdGhpcy5kb2NMb2NhdGlvbiwgcGF0aCk7XG5cbiAgICBpZihhcGkuZGVzY3JpcHRpb24pIHtcbiAgICAgIHN3YWdnZXIudGFncyA9IHN3YWdnZXIudGFncyB8fCBbXTtcbiAgICAgIHN3YWdnZXIudGFncy5wdXNoKHtcbiAgICAgICAgbmFtZSA6IHRoaXMuZXh0cmFjdFRhZyhhcGkucGF0aCksXG4gICAgICAgIGRlc2NyaXB0aW9uIDogYXBpLmRlc2NyaXB0aW9uIHx8ICcnXG4gICAgICB9KTtcbiAgICB9XG4gICAgdmFyIGh0dHAgPSB7XG4gICAgICB1cmw6IGFic29sdXRlUGF0aCxcbiAgICAgIGhlYWRlcnM6IHthY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJ30sXG4gICAgICBvbjoge30sXG4gICAgICBtZXRob2Q6ICdnZXQnXG4gICAgfTtcbiAgICAvKiBqc2hpbnQgaWdub3JlOnN0YXJ0ICovXG4gICAgaHR0cC5vbi5yZXNwb25zZSA9IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgIHByb2Nlc3NlZENvdW50ICs9IDE7XG4gICAgICB2YXIgb2JqID0gZGF0YS5vYmo7XG4gICAgICBpZihvYmopIHtcbiAgICAgICAgc2VsZi5kZWNsYXJhdGlvbihvYmosIF9zd2FnZ2VyKTtcbiAgICAgIH1cbiAgICAgIGlmKHByb2Nlc3NlZENvdW50ID09PSBleHBlY3RlZENvdW50KSB7XG4gICAgICAgIHNlbGYuZmluaXNoKGNhbGxiYWNrLCBfc3dhZ2dlcik7XG4gICAgICB9XG4gICAgfTtcbiAgICBodHRwLm9uLmVycm9yID0gZnVuY3Rpb24oZGF0YSkge1xuICAgICAgY29uc29sZS5lcnJvcihkYXRhKTtcbiAgICAgIHByb2Nlc3NlZENvdW50ICs9IDE7XG4gICAgICBpZihwcm9jZXNzZWRDb3VudCA9PT0gZXhwZWN0ZWRDb3VudCkge1xuICAgICAgICBzZWxmLmZpbmlzaChjYWxsYmFjaywgX3N3YWdnZXIpO1xuICAgICAgfVxuICAgIH07XG4gICAgLyoganNoaW50IGlnbm9yZTplbmQgKi9cblxuICAgIGlmKHRoaXMuY2xpZW50QXV0aG9yaXphdGlvbnMgJiYgdHlwZW9mIHRoaXMuY2xpZW50QXV0aG9yaXphdGlvbnMuYXBwbHkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuY2xpZW50QXV0aG9yaXphdGlvbnMuYXBwbHkoaHR0cCk7XG4gICAgfVxuXG4gICAgbmV3IFN3YWdnZXJIdHRwKCkuZXhlY3V0ZShodHRwKTtcbiAgfVxufTtcblxuU3dhZ2dlclNwZWNDb252ZXJ0ZXIucHJvdG90eXBlLmdldEFic29sdXRlUGF0aCA9IGZ1bmN0aW9uKHZlcnNpb24sIGRvY0xvY2F0aW9uLCBwYXRoKSAge1xuICBpZih2ZXJzaW9uID09PSAnMS4wJykge1xuICAgIGlmKGRvY0xvY2F0aW9uLmVuZHNXaXRoKCcuanNvbicpKSB7XG4gICAgICAvLyBnZXQgcm9vdCBwYXRoXG4gICAgICB2YXIgcG9zID0gZG9jTG9jYXRpb24ubGFzdEluZGV4T2YoJy8nKTtcbiAgICAgIGlmKHBvcyA+IDApIHtcbiAgICAgICAgZG9jTG9jYXRpb24gPSBkb2NMb2NhdGlvbi5zdWJzdHJpbmcoMCwgcG9zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgbG9jYXRpb24gPSBkb2NMb2NhdGlvbjtcbiAgaWYocGF0aC5pbmRleE9mKCdodHRwOi8vJykgPT09IDAgfHwgcGF0aC5pbmRleE9mKCdodHRwczovLycpID09PSAwKSB7XG4gICAgbG9jYXRpb24gPSBwYXRoO1xuICB9XG4gIGVsc2Uge1xuICAgIGlmKGRvY0xvY2F0aW9uLmVuZHNXaXRoKCcvJykpIHtcbiAgICAgIGxvY2F0aW9uID0gZG9jTG9jYXRpb24uc3Vic3RyaW5nKDAsIGRvY0xvY2F0aW9uLmxlbmd0aCAtIDEpO1xuICAgIH1cbiAgICBsb2NhdGlvbiArPSBwYXRoO1xuICB9XG4gIGxvY2F0aW9uID0gbG9jYXRpb24ucmVwbGFjZSgne2Zvcm1hdH0nLCAnanNvbicpO1xuICByZXR1cm4gbG9jYXRpb247XG59O1xuXG5Td2FnZ2VyU3BlY0NvbnZlcnRlci5wcm90b3R5cGUuc2VjdXJpdHlEZWZpbml0aW9ucyA9IGZ1bmN0aW9uKG9iaiwgc3dhZ2dlcikge1xuICBpZihvYmouYXV0aG9yaXphdGlvbnMpIHtcbiAgICB2YXIgbmFtZTtcbiAgICBmb3IobmFtZSBpbiBvYmouYXV0aG9yaXphdGlvbnMpIHtcbiAgICAgIHZhciBpc1ZhbGlkID0gZmFsc2U7XG4gICAgICB2YXIgc2VjdXJpdHlEZWZpbml0aW9uID0ge307XG4gICAgICB2YXIgZGVmaW5pdGlvbiA9IG9iai5hdXRob3JpemF0aW9uc1tuYW1lXTtcbiAgICAgIGlmKGRlZmluaXRpb24udHlwZSA9PT0gJ2FwaUtleScpIHtcbiAgICAgICAgc2VjdXJpdHlEZWZpbml0aW9uLnR5cGUgPSAnYXBpS2V5JztcbiAgICAgICAgc2VjdXJpdHlEZWZpbml0aW9uLmluID0gZGVmaW5pdGlvbi5wYXNzQXM7XG4gICAgICAgIHNlY3VyaXR5RGVmaW5pdGlvbi5uYW1lID0gZGVmaW5pdGlvbi5rZXluYW1lIHx8IG5hbWU7XG4gICAgICAgIGlzVmFsaWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgZWxzZSBpZihkZWZpbml0aW9uLnR5cGUgPT09ICdvYXV0aDInKSB7XG4gICAgICAgIHZhciBleGlzdGluZ1Njb3BlcyA9IGRlZmluaXRpb24uc2NvcGVzIHx8IFtdO1xuICAgICAgICB2YXIgc2NvcGVzID0ge307XG4gICAgICAgIHZhciBpO1xuICAgICAgICBmb3IoaSBpbiBleGlzdGluZ1Njb3Blcykge1xuICAgICAgICAgIHZhciBzY29wZSA9IGV4aXN0aW5nU2NvcGVzW2ldO1xuICAgICAgICAgIHNjb3Blc1tzY29wZS5zY29wZV0gPSBzY29wZS5kZXNjcmlwdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBzZWN1cml0eURlZmluaXRpb24udHlwZSA9ICdvYXV0aDInO1xuICAgICAgICBpZihpID4gMCkge1xuICAgICAgICAgIHNlY3VyaXR5RGVmaW5pdGlvbi5zY29wZXMgPSBzY29wZXM7XG4gICAgICAgIH1cbiAgICAgICAgaWYoZGVmaW5pdGlvbi5ncmFudFR5cGVzKSB7XG4gICAgICAgICAgaWYoZGVmaW5pdGlvbi5ncmFudFR5cGVzLmltcGxpY2l0KSB7XG4gICAgICAgICAgICB2YXIgaW1wbGljaXQgPSBkZWZpbml0aW9uLmdyYW50VHlwZXMuaW1wbGljaXQ7XG4gICAgICAgICAgICBzZWN1cml0eURlZmluaXRpb24uZmxvdyA9ICdpbXBsaWNpdCc7XG4gICAgICAgICAgICBzZWN1cml0eURlZmluaXRpb24uYXV0aG9yaXphdGlvblVybCA9IGltcGxpY2l0LmxvZ2luRW5kcG9pbnQ7XG4gICAgICAgICAgICBpc1ZhbGlkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLyoganNoaW50IGlnbm9yZTpzdGFydCAqL1xuICAgICAgICAgIGlmKGRlZmluaXRpb24uZ3JhbnRUeXBlc1snYXV0aG9yaXphdGlvbl9jb2RlJ10pIHtcbiAgICAgICAgICAgIGlmKCFzZWN1cml0eURlZmluaXRpb24uZmxvdykge1xuICAgICAgICAgICAgICAvLyBjYW5ub3Qgc2V0IGlmIGZsb3cgaXMgYWxyZWFkeSBkZWZpbmVkXG4gICAgICAgICAgICAgIHZhciBhdXRoQ29kZSA9IGRlZmluaXRpb24uZ3JhbnRUeXBlc1snYXV0aG9yaXphdGlvbl9jb2RlJ107XG4gICAgICAgICAgICAgIHNlY3VyaXR5RGVmaW5pdGlvbi5mbG93ID0gJ2FjY2Vzc0NvZGUnO1xuICAgICAgICAgICAgICBzZWN1cml0eURlZmluaXRpb24uYXV0aG9yaXphdGlvblVybCA9IGF1dGhDb2RlLnRva2VuUmVxdWVzdEVuZHBvaW50LnVybDtcbiAgICAgICAgICAgICAgc2VjdXJpdHlEZWZpbml0aW9uLnRva2VuVXJsID0gYXV0aENvZGUudG9rZW5FbmRwb2ludC51cmw7XG4gICAgICAgICAgICAgIGlzVmFsaWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvKiBqc2hpbnQgaWdub3JlOmVuZCAqL1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZihpc1ZhbGlkKSB7XG4gICAgICAgIHN3YWdnZXIuc2VjdXJpdHlEZWZpbml0aW9ucyA9IHN3YWdnZXIuc2VjdXJpdHlEZWZpbml0aW9ucyB8fCB7fTtcbiAgICAgICAgc3dhZ2dlci5zZWN1cml0eURlZmluaXRpb25zW25hbWVdID0gc2VjdXJpdHlEZWZpbml0aW9uO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuU3dhZ2dlclNwZWNDb252ZXJ0ZXIucHJvdG90eXBlLmFwaUluZm8gPSBmdW5jdGlvbihvYmosIHN3YWdnZXIpIHtcbiAgLy8gaW5mbyBzZWN0aW9uXG4gIGlmKG9iai5pbmZvKSB7XG4gICAgdmFyIGluZm8gPSBvYmouaW5mbztcbiAgICBzd2FnZ2VyLmluZm8gPSB7fTtcblxuICAgIGlmKGluZm8uY29udGFjdCkge1xuICAgICAgc3dhZ2dlci5pbmZvLmNvbnRhY3QgPSB7fTtcbiAgICAgIHN3YWdnZXIuaW5mby5jb250YWN0LmVtYWlsID0gaW5mby5jb250YWN0O1xuICAgIH1cbiAgICBpZihpbmZvLmRlc2NyaXB0aW9uKSB7XG4gICAgICBzd2FnZ2VyLmluZm8uZGVzY3JpcHRpb24gPSBpbmZvLmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgICBpZihpbmZvLnRpdGxlKSB7XG4gICAgICBzd2FnZ2VyLmluZm8udGl0bGUgPSBpbmZvLnRpdGxlO1xuICAgIH1cbiAgICBpZihpbmZvLnRlcm1zT2ZTZXJ2aWNlVXJsKSB7XG4gICAgICBzd2FnZ2VyLmluZm8udGVybXNPZlNlcnZpY2UgPSBpbmZvLnRlcm1zT2ZTZXJ2aWNlVXJsO1xuICAgIH1cbiAgICBpZihpbmZvLmxpY2Vuc2UgfHwgaW5mby5saWNlbnNlVXJsKSB7XG4gICAgICBzd2FnZ2VyLmxpY2Vuc2UgPSB7fTtcbiAgICAgIGlmKGluZm8ubGljZW5zZSkge1xuICAgICAgICBzd2FnZ2VyLmxpY2Vuc2UubmFtZSA9IGluZm8ubGljZW5zZTtcbiAgICAgIH1cbiAgICAgIGlmKGluZm8ubGljZW5zZVVybCkge1xuICAgICAgICBzd2FnZ2VyLmxpY2Vuc2UudXJsID0gaW5mby5saWNlbnNlVXJsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBlbHNlIHtcbiAgICB0aGlzLndhcm5pbmdzLnB1c2goJ21pc3NpbmcgaW5mbyBzZWN0aW9uJyk7XG4gIH1cbn07XG5cblN3YWdnZXJTcGVjQ29udmVydGVyLnByb3RvdHlwZS5maW5pc2ggPSBmdW5jdGlvbiAoY2FsbGJhY2ssIG9iaikge1xuICBjYWxsYmFjayhvYmopO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIF8gPSB7XG4gIGlzUGxhaW5PYmplY3Q6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9pc1BsYWluT2JqZWN0JyksXG4gIGlzU3RyaW5nOiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNTdHJpbmcnKSxcbn07XG5cbnZhciBTY2hlbWFNYXJrdXAgPSByZXF1aXJlKCcuLi9zY2hlbWEtbWFya3VwLmpzJyk7XG52YXIganN5YW1sID0gcmVxdWlyZSgnanMteWFtbCcpO1xuXG52YXIgTW9kZWwgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lLCBkZWZpbml0aW9uLCBtb2RlbHMsIG1vZGVsUHJvcGVydHlNYWNybykge1xuICB0aGlzLmRlZmluaXRpb24gPSBkZWZpbml0aW9uIHx8IHt9O1xuICB0aGlzLmlzQXJyYXkgPSBkZWZpbml0aW9uLnR5cGUgPT09ICdhcnJheSc7XG4gIHRoaXMubW9kZWxzID0gbW9kZWxzIHx8IHt9O1xuICB0aGlzLm5hbWUgPSBkZWZpbml0aW9uLnRpdGxlIHx8IG5hbWUgfHwgJ0lubGluZSBNb2RlbCc7XG4gIHRoaXMubW9kZWxQcm9wZXJ0eU1hY3JvID0gbW9kZWxQcm9wZXJ0eU1hY3JvIHx8IGZ1bmN0aW9uIChwcm9wZXJ0eSkge1xuICAgIHJldHVybiBwcm9wZXJ0eS5kZWZhdWx0O1xuICB9O1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuTW9kZWwucHJvdG90eXBlLmNyZWF0ZUpTT05TYW1wbGUgPSBNb2RlbC5wcm90b3R5cGUuZ2V0U2FtcGxlVmFsdWUgPSBmdW5jdGlvbiAobW9kZWxzVG9JZ25vcmUpIHtcbiAgbW9kZWxzVG9JZ25vcmUgPSBtb2RlbHNUb0lnbm9yZSB8fCB7fTtcblxuICBtb2RlbHNUb0lnbm9yZVt0aGlzLm5hbWVdID0gdGhpcztcblxuICAvLyBSZXNwb25zZSBzdXBwb3J0XG4gIGlmICh0aGlzLmV4YW1wbGVzICYmIF8uaXNQbGFpbk9iamVjdCh0aGlzLmV4YW1wbGVzKSAmJiB0aGlzLmV4YW1wbGVzWydhcHBsaWNhdGlvbi9qc29uJ10pIHtcbiAgICB0aGlzLmRlZmluaXRpb24uZXhhbXBsZSA9IHRoaXMuZXhhbXBsZXNbJ2FwcGxpY2F0aW9uL2pzb24nXTtcblxuICAgIGlmIChfLmlzU3RyaW5nKHRoaXMuZGVmaW5pdGlvbi5leGFtcGxlKSkge1xuICAgICAgdGhpcy5kZWZpbml0aW9uLmV4YW1wbGUgPSBqc3lhbWwuc2FmZUxvYWQodGhpcy5kZWZpbml0aW9uLmV4YW1wbGUpO1xuICAgIH1cbiAgfSBlbHNlIGlmICghdGhpcy5kZWZpbml0aW9uLmV4YW1wbGUpIHtcbiAgICB0aGlzLmRlZmluaXRpb24uZXhhbXBsZSA9IHRoaXMuZXhhbXBsZXM7XG4gIH1cblxuICByZXR1cm4gU2NoZW1hTWFya3VwLnNjaGVtYVRvSlNPTih0aGlzLmRlZmluaXRpb24sIHRoaXMubW9kZWxzLCBtb2RlbHNUb0lnbm9yZSwgdGhpcy5tb2RlbFByb3BlcnR5TWFjcm8pO1xufTtcblxuTW9kZWwucHJvdG90eXBlLmdldE1vY2tTaWduYXR1cmUgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBTY2hlbWFNYXJrdXAuc2NoZW1hVG9IVE1MKHRoaXMubmFtZSwgdGhpcy5kZWZpbml0aW9uLCB0aGlzLm1vZGVscywgdGhpcy5tb2RlbFByb3BlcnR5TWFjcm8pO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIF8gPSB7XG4gIGNsb25lRGVlcDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2Nsb25lRGVlcCcpLFxuICBpc1VuZGVmaW5lZDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2lzVW5kZWZpbmVkJyksXG4gIGlzRW1wdHk6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9pc0VtcHR5JyksXG4gIGlzT2JqZWN0OiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNPYmplY3QnKVxufTtcbnZhciBoZWxwZXJzID0gcmVxdWlyZSgnLi4vaGVscGVycycpO1xudmFyIE1vZGVsID0gcmVxdWlyZSgnLi9tb2RlbCcpO1xudmFyIFN3YWdnZXJIdHRwID0gcmVxdWlyZSgnLi4vaHR0cCcpO1xuXG52YXIgT3BlcmF0aW9uID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAocGFyZW50LCBzY2hlbWUsIG9wZXJhdGlvbklkLCBodHRwTWV0aG9kLCBwYXRoLCBhcmdzLCBkZWZpbml0aW9ucywgbW9kZWxzLCBjbGllbnRBdXRob3JpemF0aW9ucykge1xuICB2YXIgZXJyb3JzID0gW107XG5cbiAgcGFyZW50ID0gcGFyZW50IHx8IHt9O1xuICBhcmdzID0gYXJncyB8fCB7fTtcblxuICBpZihwYXJlbnQgJiYgcGFyZW50Lm9wdGlvbnMpIHtcbiAgICB0aGlzLmNsaWVudCA9IHBhcmVudC5vcHRpb25zLmNsaWVudCB8fCBudWxsO1xuICAgIHRoaXMucmVzcG9uc2VJbnRlcmNlcHRvciA9IHBhcmVudC5vcHRpb25zLnJlc3BvbnNlSW50ZXJjZXB0b3IgfHwgbnVsbDtcbiAgfVxuICB0aGlzLmF1dGhvcml6YXRpb25zID0gYXJncy5zZWN1cml0eTtcbiAgdGhpcy5iYXNlUGF0aCA9IHBhcmVudC5iYXNlUGF0aCB8fCAnLyc7XG4gIHRoaXMuY2xpZW50QXV0aG9yaXphdGlvbnMgPSBjbGllbnRBdXRob3JpemF0aW9ucztcbiAgdGhpcy5jb25zdW1lcyA9IGFyZ3MuY29uc3VtZXMgfHwgcGFyZW50LmNvbnN1bWVzIHx8IFsnYXBwbGljYXRpb24vanNvbiddO1xuICB0aGlzLnByb2R1Y2VzID0gYXJncy5wcm9kdWNlcyB8fCBwYXJlbnQucHJvZHVjZXMgfHwgWydhcHBsaWNhdGlvbi9qc29uJ107XG4gIHRoaXMuZGVwcmVjYXRlZCA9IGFyZ3MuZGVwcmVjYXRlZDtcbiAgdGhpcy5kZXNjcmlwdGlvbiA9IGFyZ3MuZGVzY3JpcHRpb247XG4gIHRoaXMuaG9zdCA9IHBhcmVudC5ob3N0IHx8ICdsb2NhbGhvc3QnO1xuICB0aGlzLm1ldGhvZCA9IChodHRwTWV0aG9kIHx8IGVycm9ycy5wdXNoKCdPcGVyYXRpb24gJyArIG9wZXJhdGlvbklkICsgJyBpcyBtaXNzaW5nIG1ldGhvZC4nKSk7XG4gIHRoaXMubW9kZWxzID0gbW9kZWxzIHx8IHt9O1xuICB0aGlzLm5pY2tuYW1lID0gKG9wZXJhdGlvbklkIHx8IGVycm9ycy5wdXNoKCdPcGVyYXRpb25zIG11c3QgaGF2ZSBhIG5pY2tuYW1lLicpKTtcbiAgdGhpcy5vcGVyYXRpb24gPSBhcmdzO1xuICB0aGlzLm9wZXJhdGlvbnMgPSB7fTtcbiAgdGhpcy5wYXJhbWV0ZXJzID0gYXJncyAhPT0gbnVsbCA/IChhcmdzLnBhcmFtZXRlcnMgfHwgW10pIDoge307XG4gIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICB0aGlzLnBhdGggPSAocGF0aCB8fCBlcnJvcnMucHVzaCgnT3BlcmF0aW9uICcgKyB0aGlzLm5pY2tuYW1lICsgJyBpcyBtaXNzaW5nIHBhdGguJykpO1xuICB0aGlzLnJlc3BvbnNlcyA9IChhcmdzLnJlc3BvbnNlcyB8fCB7fSk7XG4gIHRoaXMuc2NoZW1lID0gc2NoZW1lIHx8IHBhcmVudC5zY2hlbWUgfHwgJ2h0dHAnO1xuICB0aGlzLnNjaGVtZXMgPSBhcmdzLnNjaGVtZXMgfHwgcGFyZW50LnNjaGVtZXM7XG4gIHRoaXMuc2VjdXJpdHkgPSBhcmdzLnNlY3VyaXR5O1xuICB0aGlzLnN1bW1hcnkgPSBhcmdzLnN1bW1hcnkgfHwgJyc7XG4gIHRoaXMudHlwZSA9IG51bGw7XG4gIHRoaXMudXNlSlF1ZXJ5ID0gcGFyZW50LnVzZUpRdWVyeTtcbiAgdGhpcy5wYXJhbWV0ZXJNYWNybyA9IHBhcmVudC5wYXJhbWV0ZXJNYWNybyB8fCBmdW5jdGlvbiAob3BlcmF0aW9uLCBwYXJhbWV0ZXIpIHtcbiAgICByZXR1cm4gcGFyYW1ldGVyLmRlZmF1bHQ7XG4gIH07XG5cbiAgdGhpcy5pbmxpbmVNb2RlbHMgPSBbXTtcblxuICBpZiAodHlwZW9mIHRoaXMuZGVwcmVjYXRlZCA9PT0gJ3N0cmluZycpIHtcbiAgICBzd2l0Y2godGhpcy5kZXByZWNhdGVkLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGNhc2UgJ3RydWUnOiBjYXNlICd5ZXMnOiBjYXNlICcxJzoge1xuICAgICAgICB0aGlzLmRlcHJlY2F0ZWQgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSAnZmFsc2UnOiBjYXNlICdubyc6IGNhc2UgJzAnOiBjYXNlIG51bGw6IHtcbiAgICAgICAgdGhpcy5kZXByZWNhdGVkID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBkZWZhdWx0OiB0aGlzLmRlcHJlY2F0ZWQgPSBCb29sZWFuKHRoaXMuZGVwcmVjYXRlZCk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGksIG1vZGVsO1xuXG4gIGlmIChkZWZpbml0aW9ucykge1xuICAgIC8vIGFkZCB0byBnbG9iYWwgbW9kZWxzXG4gICAgdmFyIGtleTtcblxuICAgIGZvciAoa2V5IGluIGRlZmluaXRpb25zKSB7XG4gICAgICBtb2RlbCA9IG5ldyBNb2RlbChrZXksIGRlZmluaXRpb25zW2tleV0sIHRoaXMubW9kZWxzLCBwYXJlbnQubW9kZWxQcm9wZXJ0eU1hY3JvKTtcblxuICAgICAgaWYgKG1vZGVsKSB7XG4gICAgICAgIHRoaXMubW9kZWxzW2tleV0gPSBtb2RlbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZWxzZSB7XG4gICAgZGVmaW5pdGlvbnMgPSB7fTtcbiAgfVxuXG4gIGZvciAoaSA9IDA7IGkgPCB0aGlzLnBhcmFtZXRlcnMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcGFyYW0gPSB0aGlzLnBhcmFtZXRlcnNbaV07XG5cbiAgICAvLyBBbGxvdyBtYWNybyB0byBzZXQgdGhlIGRlZmF1bHQgdmFsdWVcbiAgICBwYXJhbS5kZWZhdWx0ID0gdGhpcy5wYXJhbWV0ZXJNYWNybyh0aGlzLCBwYXJhbSk7XG5cbiAgICBpZiAocGFyYW0udHlwZSA9PT0gJ2FycmF5Jykge1xuICAgICAgcGFyYW0uaXNMaXN0ID0gdHJ1ZTtcbiAgICAgIHBhcmFtLmFsbG93TXVsdGlwbGUgPSB0cnVlO1xuICAgICAgLy8gdGhlIGVudW0gY2FuIGJlIGRlZmluZWQgYXQgdGhlIGl0ZW1zIGxldmVsXG4gICAgICBpZiAocGFyYW0uaXRlbXMgJiYgcGFyYW0uaXRlbXMuZW51bSkge1xuICAgICAgICBwYXJhbVsnZW51bSddID0gcGFyYW0uaXRlbXMuZW51bTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgaW5uZXJUeXBlID0gdGhpcy5nZXRUeXBlKHBhcmFtKTtcblxuICAgIGlmIChpbm5lclR5cGUgJiYgaW5uZXJUeXBlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICBwYXJhbS5hbGxvd2FibGVWYWx1ZXMgPSB7fTtcbiAgICAgIHBhcmFtLmlzTGlzdCA9IHRydWU7XG4gICAgICBwYXJhbVsnZW51bSddID0gW3RydWUsIGZhbHNlXTsgLy8gdXNlIGFjdHVhbCBwcmltaXRpdmVzXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBwYXJhbVsnZW51bSddICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdmFyIGlkO1xuXG4gICAgICBwYXJhbS5hbGxvd2FibGVWYWx1ZXMgPSB7fTtcbiAgICAgIHBhcmFtLmFsbG93YWJsZVZhbHVlcy52YWx1ZXMgPSBbXTtcbiAgICAgIHBhcmFtLmFsbG93YWJsZVZhbHVlcy5kZXNjcmlwdGl2ZVZhbHVlcyA9IFtdO1xuXG4gICAgICBmb3IgKGlkID0gMDsgaWQgPCBwYXJhbVsnZW51bSddLmxlbmd0aDsgaWQrKykge1xuICAgICAgICB2YXIgdmFsdWUgPSBwYXJhbVsnZW51bSddW2lkXTtcbiAgICAgICAgdmFyIGlzRGVmYXVsdCA9ICh2YWx1ZSA9PT0gcGFyYW0uZGVmYXVsdCB8fCB2YWx1ZSsnJyA9PT0gcGFyYW0uZGVmYXVsdCk7XG5cbiAgICAgICAgcGFyYW0uYWxsb3dhYmxlVmFsdWVzLnZhbHVlcy5wdXNoKHZhbHVlKTtcbiAgICAgICAgLy8gQWx3YXlzIGhhdmUgc3RyaW5nIGZvciBkZXNjcmlwdGl2ZSB2YWx1ZXMuLi4uXG4gICAgICAgIHBhcmFtLmFsbG93YWJsZVZhbHVlcy5kZXNjcmlwdGl2ZVZhbHVlcy5wdXNoKHt2YWx1ZSA6IHZhbHVlKycnLCBpc0RlZmF1bHQ6IGlzRGVmYXVsdH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYXJhbS50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICBpbm5lclR5cGUgPSBbaW5uZXJUeXBlXTtcblxuICAgICAgaWYgKHR5cGVvZiBwYXJhbS5hbGxvd2FibGVWYWx1ZXMgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIC8vIGNhbid0IHNob3cgYXMgYSBsaXN0IGlmIG5vIHZhbHVlcyB0byBzZWxlY3QgZnJvbVxuICAgICAgICBkZWxldGUgcGFyYW0uaXNMaXN0O1xuICAgICAgICBkZWxldGUgcGFyYW0uYWxsb3dNdWx0aXBsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwYXJhbS5zaWduYXR1cmUgPSB0aGlzLmdldE1vZGVsU2lnbmF0dXJlKGlubmVyVHlwZSwgdGhpcy5tb2RlbHMpLnRvU3RyaW5nKCk7XG4gICAgcGFyYW0uc2FtcGxlSlNPTiA9IHRoaXMuZ2V0TW9kZWxTYW1wbGVKU09OKGlubmVyVHlwZSwgdGhpcy5tb2RlbHMpO1xuICAgIHBhcmFtLnJlc3BvbnNlQ2xhc3NTaWduYXR1cmUgPSBwYXJhbS5zaWduYXR1cmU7XG4gIH1cblxuICB2YXIgZGVmYXVsdFJlc3BvbnNlQ29kZSwgcmVzcG9uc2UsIHJlc3BvbnNlcyA9IHRoaXMucmVzcG9uc2VzO1xuXG4gIGlmIChyZXNwb25zZXNbJzIwMCddKSB7XG4gICAgcmVzcG9uc2UgPSByZXNwb25zZXNbJzIwMCddO1xuICAgIGRlZmF1bHRSZXNwb25zZUNvZGUgPSAnMjAwJztcbiAgfSBlbHNlIGlmIChyZXNwb25zZXNbJzIwMSddKSB7XG4gICAgcmVzcG9uc2UgPSByZXNwb25zZXNbJzIwMSddO1xuICAgIGRlZmF1bHRSZXNwb25zZUNvZGUgPSAnMjAxJztcbiAgfSBlbHNlIGlmIChyZXNwb25zZXNbJzIwMiddKSB7XG4gICAgcmVzcG9uc2UgPSByZXNwb25zZXNbJzIwMiddO1xuICAgIGRlZmF1bHRSZXNwb25zZUNvZGUgPSAnMjAyJztcbiAgfSBlbHNlIGlmIChyZXNwb25zZXNbJzIwMyddKSB7XG4gICAgcmVzcG9uc2UgPSByZXNwb25zZXNbJzIwMyddO1xuICAgIGRlZmF1bHRSZXNwb25zZUNvZGUgPSAnMjAzJztcbiAgfSBlbHNlIGlmIChyZXNwb25zZXNbJzIwNCddKSB7XG4gICAgcmVzcG9uc2UgPSByZXNwb25zZXNbJzIwNCddO1xuICAgIGRlZmF1bHRSZXNwb25zZUNvZGUgPSAnMjA0JztcbiAgfSBlbHNlIGlmIChyZXNwb25zZXNbJzIwNSddKSB7XG4gICAgcmVzcG9uc2UgPSByZXNwb25zZXNbJzIwNSddO1xuICAgIGRlZmF1bHRSZXNwb25zZUNvZGUgPSAnMjA1JztcbiAgfSBlbHNlIGlmIChyZXNwb25zZXNbJzIwNiddKSB7XG4gICAgcmVzcG9uc2UgPSByZXNwb25zZXNbJzIwNiddO1xuICAgIGRlZmF1bHRSZXNwb25zZUNvZGUgPSAnMjA2JztcbiAgfSBlbHNlIGlmIChyZXNwb25zZXNbJ2RlZmF1bHQnXSkge1xuICAgIHJlc3BvbnNlID0gcmVzcG9uc2VzWydkZWZhdWx0J107XG4gICAgZGVmYXVsdFJlc3BvbnNlQ29kZSA9ICdkZWZhdWx0JztcbiAgfVxuXG4gIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5zY2hlbWEpIHtcbiAgICB2YXIgcmVzb2x2ZWRNb2RlbCA9IHRoaXMucmVzb2x2ZU1vZGVsKHJlc3BvbnNlLnNjaGVtYSwgZGVmaW5pdGlvbnMpO1xuICAgIHZhciBzdWNjZXNzUmVzcG9uc2U7XG5cbiAgICBkZWxldGUgcmVzcG9uc2VzW2RlZmF1bHRSZXNwb25zZUNvZGVdO1xuXG4gICAgaWYgKHJlc29sdmVkTW9kZWwpIHtcbiAgICAgIHRoaXMuc3VjY2Vzc1Jlc3BvbnNlID0ge307XG4gICAgICBzdWNjZXNzUmVzcG9uc2UgPSB0aGlzLnN1Y2Nlc3NSZXNwb25zZVtkZWZhdWx0UmVzcG9uc2VDb2RlXSA9IHJlc29sdmVkTW9kZWw7XG4gICAgfSBlbHNlIGlmICghcmVzcG9uc2Uuc2NoZW1hLnR5cGUgfHwgcmVzcG9uc2Uuc2NoZW1hLnR5cGUgPT09ICdvYmplY3QnIHx8IHJlc3BvbnNlLnNjaGVtYS50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICAvLyBJbmxpbmUgbW9kZWxcbiAgICAgIHRoaXMuc3VjY2Vzc1Jlc3BvbnNlID0ge307XG4gICAgICBzdWNjZXNzUmVzcG9uc2UgPSB0aGlzLnN1Y2Nlc3NSZXNwb25zZVtkZWZhdWx0UmVzcG9uc2VDb2RlXSA9IG5ldyBNb2RlbCh1bmRlZmluZWQsIHJlc3BvbnNlLnNjaGVtYSB8fCB7fSwgdGhpcy5tb2RlbHMsIHBhcmVudC5tb2RlbFByb3BlcnR5TWFjcm8pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBQcmltaXRpdmVcbiAgICAgIHRoaXMuc3VjY2Vzc1Jlc3BvbnNlID0ge307XG4gICAgICBzdWNjZXNzUmVzcG9uc2UgPSB0aGlzLnN1Y2Nlc3NSZXNwb25zZVtkZWZhdWx0UmVzcG9uc2VDb2RlXSA9IHJlc3BvbnNlLnNjaGVtYTtcbiAgICB9XG5cbiAgICBpZiAoc3VjY2Vzc1Jlc3BvbnNlKSB7XG4gICAgICAvLyBBdHRhY2ggcmVzcG9uc2UgcHJvcGVydGllc1xuICAgICAgaWYgKHJlc3BvbnNlLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgIHN1Y2Nlc3NSZXNwb25zZS5kZXNjcmlwdGlvbiA9IHJlc3BvbnNlLmRlc2NyaXB0aW9uO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVzcG9uc2UuZXhhbXBsZXMpIHtcbiAgICAgICAgc3VjY2Vzc1Jlc3BvbnNlLmV4YW1wbGVzID0gcmVzcG9uc2UuZXhhbXBsZXM7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNwb25zZS5oZWFkZXJzKSB7XG4gICAgICAgIHN1Y2Nlc3NSZXNwb25zZS5oZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVycztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnR5cGUgPSByZXNwb25zZTtcbiAgfVxuXG4gIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIGlmICh0aGlzLnJlc291cmNlICYmIHRoaXMucmVzb3VyY2UuYXBpICYmIHRoaXMucmVzb3VyY2UuYXBpLmZhaWwpIHtcbiAgICAgIHRoaXMucmVzb3VyY2UuYXBpLmZhaWwoZXJyb3JzKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbk9wZXJhdGlvbi5wcm90b3R5cGUuaXNEZWZhdWx0QXJyYXlJdGVtVmFsdWUgPSBmdW5jdGlvbih2YWx1ZSwgcGFyYW0pIHtcbiAgaWYgKHBhcmFtLmRlZmF1bHQgJiYgQXJyYXkuaXNBcnJheShwYXJhbS5kZWZhdWx0KSkge1xuICAgIHJldHVybiBwYXJhbS5kZWZhdWx0LmluZGV4T2YodmFsdWUpICE9PSAtMTtcbiAgfVxuICByZXR1cm4gdmFsdWUgPT09IHBhcmFtLmRlZmF1bHQ7XG59O1xuXG5PcGVyYXRpb24ucHJvdG90eXBlLmdldFR5cGUgPSBmdW5jdGlvbiAocGFyYW0pIHtcbiAgdmFyIHR5cGUgPSBwYXJhbS50eXBlO1xuICB2YXIgZm9ybWF0ID0gcGFyYW0uZm9ybWF0O1xuICB2YXIgaXNBcnJheSA9IGZhbHNlO1xuICB2YXIgc3RyO1xuXG4gIGlmICh0eXBlID09PSAnaW50ZWdlcicgJiYgZm9ybWF0ID09PSAnaW50MzInKSB7XG4gICAgc3RyID0gJ2ludGVnZXInO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdpbnRlZ2VyJyAmJiBmb3JtYXQgPT09ICdpbnQ2NCcpIHtcbiAgICBzdHIgPSAnbG9uZyc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2ludGVnZXInKSB7XG4gICAgc3RyID0gJ2ludGVnZXInO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ2RhdGUtdGltZScpIHtcbiAgICAgIHN0ciA9ICdkYXRlLXRpbWUnO1xuICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnZGF0ZScpIHtcbiAgICAgIHN0ciA9ICdkYXRlJztcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyID0gJ3N0cmluZyc7XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdudW1iZXInICYmIGZvcm1hdCA9PT0gJ2Zsb2F0Jykge1xuICAgIHN0ciA9ICdmbG9hdCc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ251bWJlcicgJiYgZm9ybWF0ID09PSAnZG91YmxlJykge1xuICAgIHN0ciA9ICdkb3VibGUnO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgc3RyID0gJ2RvdWJsZSc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgc3RyID0gJ2Jvb2xlYW4nO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdhcnJheScpIHtcbiAgICBpc0FycmF5ID0gdHJ1ZTtcblxuICAgIGlmIChwYXJhbS5pdGVtcykge1xuICAgICAgc3RyID0gdGhpcy5nZXRUeXBlKHBhcmFtLml0ZW1zKTtcbiAgICB9XG4gIH1cblxuICBpZiAocGFyYW0uJHJlZikge1xuICAgIHN0ciA9IGhlbHBlcnMuc2ltcGxlUmVmKHBhcmFtLiRyZWYpO1xuICB9XG5cbiAgdmFyIHNjaGVtYSA9IHBhcmFtLnNjaGVtYTtcblxuICBpZiAoc2NoZW1hKSB7XG4gICAgdmFyIHJlZiA9IHNjaGVtYS4kcmVmO1xuXG4gICAgaWYgKHJlZikge1xuICAgICAgcmVmID0gaGVscGVycy5zaW1wbGVSZWYocmVmKTtcblxuICAgICAgaWYgKGlzQXJyYXkpIHtcbiAgICAgICAgcmV0dXJuIFsgcmVmIF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVmO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBpbmxpbmUgc2NoZW1hLCB3ZSBhZGQgaXQgb3VyIGludGVyYWwgaGFzaCAtPiB3aGljaCBnaXZlcyB1cyBpdCdzIElEIChpbnQpXG4gICAgICBpZihzY2hlbWEudHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkSW5saW5lTW9kZWwoc2NoZW1hKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmdldFR5cGUoc2NoZW1hKTtcbiAgICB9XG4gIH1cbiAgaWYgKGlzQXJyYXkpIHtcbiAgICByZXR1cm4gWyBzdHIgXTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG59O1xuXG4vKipcbiAqIGFkZHMgYW4gaW5saW5lIHNjaGVtYSAobW9kZWwpIHRvIGEgaGFzaCwgd2hlcmUgd2UgY2FuIHJlZiBpdCBsYXRlclxuICogQHBhcmFtIHtvYmplY3R9IHNjaGVtYSBhIHNjaGVtYVxuICogQHJldHVybiB7bnVtYmVyfSB0aGUgSUQgb2YgdGhlIHNjaGVtYSBiZWluZyBhZGRlZCwgb3IgbnVsbFxuICoqL1xuT3BlcmF0aW9uLnByb3RvdHlwZS5hZGRJbmxpbmVNb2RlbCA9IGZ1bmN0aW9uIChzY2hlbWEpIHtcbiAgdmFyIGxlbiA9IHRoaXMuaW5saW5lTW9kZWxzLmxlbmd0aDtcbiAgdmFyIG1vZGVsID0gdGhpcy5yZXNvbHZlTW9kZWwoc2NoZW1hLCB7fSk7XG4gIGlmKG1vZGVsKSB7XG4gICAgdGhpcy5pbmxpbmVNb2RlbHMucHVzaChtb2RlbCk7XG4gICAgcmV0dXJuICdJbmxpbmUgTW9kZWwgJytsZW47IC8vIHJldHVybiBzdHJpbmcgcmVmIG9mIHRoZSBpbmxpbmUgbW9kZWwgKHVzZWQgd2l0aCAjZ2V0SW5saW5lTW9kZWwpXG4gIH1cbiAgcmV0dXJuIG51bGw7IC8vIHJlcG9ydCBlcnJvcnM/XG59O1xuXG4vKipcbiAqIGdldHMgdGhlIGludGVybmFsIHJlZiB0byBhbiBpbmxpbmUgbW9kZWxcbiAqIEBwYXJhbSB7c3RyaW5nfSBpbmxpbmVfc3RyIGEgc3RyaW5nIHJlZmVyZW5jZSB0byBhbiBpbmxpbmUgbW9kZWxcbiAqIEByZXR1cm4ge01vZGVsfSB0aGUgbW9kZWwgYmVpbmcgcmVmZXJlbmNlZC4gT3IgbnVsbFxuICoqL1xuT3BlcmF0aW9uLnByb3RvdHlwZS5nZXRJbmxpbmVNb2RlbCA9IGZ1bmN0aW9uKGlubGluZVN0cikge1xuICBpZigvXklubGluZSBNb2RlbCBcXGQrJC8udGVzdChpbmxpbmVTdHIpKSB7XG4gICAgdmFyIGlkID0gcGFyc2VJbnQoaW5saW5lU3RyLnN1YnN0cignSW5saW5lIE1vZGVsJy5sZW5ndGgpLnRyaW0oKSwxMCk7IC8vXG4gICAgdmFyIG1vZGVsID0gdGhpcy5pbmxpbmVNb2RlbHNbaWRdO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfVxuICAvLyBJJ20gcmV0dXJuaW5nIG51bGwgaGVyZSwgc2hvdWxkIEkgcmF0aGVyIHRocm93IGFuIGVycm9yP1xuICByZXR1cm4gbnVsbDtcbn07XG5cbk9wZXJhdGlvbi5wcm90b3R5cGUucmVzb2x2ZU1vZGVsID0gZnVuY3Rpb24gKHNjaGVtYSwgZGVmaW5pdGlvbnMpIHtcbiAgaWYgKHR5cGVvZiBzY2hlbWEuJHJlZiAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB2YXIgcmVmID0gc2NoZW1hLiRyZWY7XG5cbiAgICBpZiAocmVmLmluZGV4T2YoJyMvZGVmaW5pdGlvbnMvJykgPT09IDApIHtcbiAgICAgIHJlZiA9IHJlZi5zdWJzdHJpbmcoJyMvZGVmaW5pdGlvbnMvJy5sZW5ndGgpO1xuICAgIH1cblxuICAgIGlmIChkZWZpbml0aW9uc1tyZWZdKSB7XG4gICAgICByZXR1cm4gbmV3IE1vZGVsKHJlZiwgZGVmaW5pdGlvbnNbcmVmXSwgdGhpcy5tb2RlbHMsIHRoaXMucGFyZW50Lm1vZGVsUHJvcGVydHlNYWNybyk7XG4gICAgfVxuICAvLyBzY2hlbWEgbXVzdCBhdCBsZWFzdCBiZSBhbiBvYmplY3QgdG8gZ2V0IHJlc29sdmVkIHRvIGFuIGlubGluZSBNb2RlbFxuICB9IGVsc2UgaWYgKHNjaGVtYSAmJiB0eXBlb2Ygc2NoZW1hID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgKHNjaGVtYS50eXBlID09PSAnb2JqZWN0JyB8fCBfLmlzVW5kZWZpbmVkKHNjaGVtYS50eXBlKSkpIHtcbiAgICByZXR1cm4gbmV3IE1vZGVsKHVuZGVmaW5lZCwgc2NoZW1hLCB0aGlzLm1vZGVscywgdGhpcy5wYXJlbnQubW9kZWxQcm9wZXJ0eU1hY3JvKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuT3BlcmF0aW9uLnByb3RvdHlwZS5oZWxwID0gZnVuY3Rpb24gKGRvbnRQcmludCkge1xuICB2YXIgb3V0ID0gdGhpcy5uaWNrbmFtZSArICc6ICcgKyB0aGlzLnN1bW1hcnkgKyAnXFxuJztcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucGFyYW1ldGVycy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBwYXJhbSA9IHRoaXMucGFyYW1ldGVyc1tpXTtcbiAgICB2YXIgdHlwZUluZm8gPSBwYXJhbS5zaWduYXR1cmU7XG5cbiAgICBvdXQgKz0gJ1xcbiAgKiAnICsgcGFyYW0ubmFtZSArICcgKCcgKyB0eXBlSW5mbyArICcpOiAnICsgcGFyYW0uZGVzY3JpcHRpb247XG4gIH1cblxuICBpZiAodHlwZW9mIGRvbnRQcmludCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBoZWxwZXJzLmxvZyhvdXQpO1xuICB9XG5cbiAgcmV0dXJuIG91dDtcbn07XG5cbk9wZXJhdGlvbi5wcm90b3R5cGUuZ2V0TW9kZWxTaWduYXR1cmUgPSBmdW5jdGlvbiAodHlwZSwgZGVmaW5pdGlvbnMpIHtcbiAgdmFyIGlzUHJpbWl0aXZlLCBsaXN0VHlwZTtcblxuICBpZiAodHlwZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgbGlzdFR5cGUgPSB0cnVlO1xuICAgIHR5cGUgPSB0eXBlWzBdO1xuICB9XG5cbiAgLy8gQ29udmVydCB1bmRlZmluZWQgdG8gc3RyaW5nIG9mICd1bmRlZmluZWQnXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB0eXBlID0gJ3VuZGVmaW5lZCc7XG4gICAgaXNQcmltaXRpdmUgPSB0cnVlO1xuXG4gIH0gZWxzZSBpZiAoZGVmaW5pdGlvbnNbdHlwZV0pe1xuICAgIC8vIGEgbW9kZWwgZGVmIGV4aXN0cz9cbiAgICB0eXBlID0gZGVmaW5pdGlvbnNbdHlwZV07IC8qIE1vZGVsICovXG4gICAgaXNQcmltaXRpdmUgPSBmYWxzZTtcblxuICB9IGVsc2UgaWYgKHRoaXMuZ2V0SW5saW5lTW9kZWwodHlwZSkpIHtcbiAgICB0eXBlID0gdGhpcy5nZXRJbmxpbmVNb2RlbCh0eXBlKTsgLyogTW9kZWwgKi9cbiAgICBpc1ByaW1pdGl2ZSA9IGZhbHNlO1xuXG4gIH0gZWxzZSB7XG4gICAgLy8gV2UgZGVmYXVsdCB0byBwcmltaXRpdmVcbiAgICBpc1ByaW1pdGl2ZSA9IHRydWU7XG4gIH1cblxuICBpZiAoaXNQcmltaXRpdmUpIHtcbiAgICBpZiAobGlzdFR5cGUpIHtcbiAgICAgIHJldHVybiAnQXJyYXlbJyArIHR5cGUgKyAnXSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0eXBlLnRvU3RyaW5nKCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChsaXN0VHlwZSkge1xuICAgICAgcmV0dXJuICdBcnJheVsnICsgdHlwZS5nZXRNb2NrU2lnbmF0dXJlKCkgKyAnXSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0eXBlLmdldE1vY2tTaWduYXR1cmUoKTtcbiAgICB9XG4gIH1cbn07XG5cbk9wZXJhdGlvbi5wcm90b3R5cGUuc3VwcG9ydEhlYWRlclBhcmFtcyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRydWU7XG59O1xuXG5PcGVyYXRpb24ucHJvdG90eXBlLnN1cHBvcnRlZFN1Ym1pdE1ldGhvZHMgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnBhcmVudC5zdXBwb3J0ZWRTdWJtaXRNZXRob2RzO1xufTtcblxuT3BlcmF0aW9uLnByb3RvdHlwZS5nZXRIZWFkZXJQYXJhbXMgPSBmdW5jdGlvbiAoYXJncykge1xuICB2YXIgaGVhZGVycyA9IHRoaXMuc2V0Q29udGVudFR5cGVzKGFyZ3MsIHt9KTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucGFyYW1ldGVycy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBwYXJhbSA9IHRoaXMucGFyYW1ldGVyc1tpXTtcblxuICAgIGlmICh0eXBlb2YgYXJnc1twYXJhbS5uYW1lXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGlmIChwYXJhbS5pbiA9PT0gJ2hlYWRlcicpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJnc1twYXJhbS5uYW1lXTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICBoZWFkZXJzW3BhcmFtLm5hbWVdID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGhlYWRlcnM7XG59O1xuXG5PcGVyYXRpb24ucHJvdG90eXBlLnVybGlmeSA9IGZ1bmN0aW9uIChhcmdzKSB7XG4gIHZhciBmb3JtUGFyYW1zID0ge307XG4gIHZhciByZXF1ZXN0VXJsID0gdGhpcy5wYXRoO1xuICB2YXIgcXVlcnlzdHJpbmcgPSAnJzsgLy8gZ3JhYiBwYXJhbXMgZnJvbSB0aGUgYXJncywgYnVpbGQgdGhlIHF1ZXJ5c3RyaW5nIGFsb25nIHRoZSB3YXlcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucGFyYW1ldGVycy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBwYXJhbSA9IHRoaXMucGFyYW1ldGVyc1tpXTtcblxuICAgIGlmICh0eXBlb2YgYXJnc1twYXJhbS5uYW1lXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGlmIChwYXJhbS5pbiA9PT0gJ3BhdGgnKSB7XG4gICAgICAgIHZhciByZWcgPSBuZXcgUmVnRXhwKCdcXHsnICsgcGFyYW0ubmFtZSArICdcXH0nLCAnZ2knKTtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJnc1twYXJhbS5uYW1lXTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICB2YWx1ZSA9IHRoaXMuZW5jb2RlUGF0aENvbGxlY3Rpb24ocGFyYW0uY29sbGVjdGlvbkZvcm1hdCwgcGFyYW0ubmFtZSwgdmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbHVlID0gdGhpcy5lbmNvZGVQYXRoUGFyYW0odmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVxdWVzdFVybCA9IHJlcXVlc3RVcmwucmVwbGFjZShyZWcsIHZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAocGFyYW0uaW4gPT09ICdxdWVyeScgJiYgdHlwZW9mIGFyZ3NbcGFyYW0ubmFtZV0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGlmIChxdWVyeXN0cmluZyA9PT0gJycpIHtcbiAgICAgICAgICBxdWVyeXN0cmluZyArPSAnPyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcXVlcnlzdHJpbmcgKz0gJyYnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBwYXJhbS5jb2xsZWN0aW9uRm9ybWF0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIHZhciBxcCA9IGFyZ3NbcGFyYW0ubmFtZV07XG5cbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShxcCkpIHtcbiAgICAgICAgICAgIHF1ZXJ5c3RyaW5nICs9IHRoaXMuZW5jb2RlUXVlcnlDb2xsZWN0aW9uKHBhcmFtLmNvbGxlY3Rpb25Gb3JtYXQsIHBhcmFtLm5hbWUsIHFwKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcXVlcnlzdHJpbmcgKz0gdGhpcy5lbmNvZGVRdWVyeVBhcmFtKHBhcmFtLm5hbWUpICsgJz0nICsgdGhpcy5lbmNvZGVRdWVyeVBhcmFtKGFyZ3NbcGFyYW0ubmFtZV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBxdWVyeXN0cmluZyArPSB0aGlzLmVuY29kZVF1ZXJ5UGFyYW0ocGFyYW0ubmFtZSkgKyAnPScgKyB0aGlzLmVuY29kZVF1ZXJ5UGFyYW0oYXJnc1twYXJhbS5uYW1lXSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocGFyYW0uaW4gPT09ICdmb3JtRGF0YScpIHtcbiAgICAgICAgZm9ybVBhcmFtc1twYXJhbS5uYW1lXSA9IGFyZ3NbcGFyYW0ubmFtZV07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHZhciB1cmwgPSB0aGlzLnNjaGVtZSArICc6Ly8nICsgdGhpcy5ob3N0O1xuXG4gIGlmICh0aGlzLmJhc2VQYXRoICE9PSAnLycpIHtcbiAgICB1cmwgKz0gdGhpcy5iYXNlUGF0aDtcbiAgfVxuICByZXR1cm4gdXJsICsgcmVxdWVzdFVybCArIHF1ZXJ5c3RyaW5nO1xufTtcblxuT3BlcmF0aW9uLnByb3RvdHlwZS5nZXRNaXNzaW5nUGFyYW1zID0gZnVuY3Rpb24gKGFyZ3MpIHtcbiAgdmFyIG1pc3NpbmdQYXJhbXMgPSBbXTsgLy8gY2hlY2sgcmVxdWlyZWQgcGFyYW1zLCB0cmFjayB0aGUgb25lcyB0aGF0IGFyZSBtaXNzaW5nXG4gIHZhciBpO1xuXG4gIGZvciAoaSA9IDA7IGkgPCB0aGlzLnBhcmFtZXRlcnMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcGFyYW0gPSB0aGlzLnBhcmFtZXRlcnNbaV07XG5cbiAgICBpZiAocGFyYW0ucmVxdWlyZWQgPT09IHRydWUpIHtcbiAgICAgIGlmICh0eXBlb2YgYXJnc1twYXJhbS5uYW1lXSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgbWlzc2luZ1BhcmFtcyA9IHBhcmFtLm5hbWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1pc3NpbmdQYXJhbXM7XG59O1xuXG5PcGVyYXRpb24ucHJvdG90eXBlLmdldEJvZHkgPSBmdW5jdGlvbiAoaGVhZGVycywgYXJncywgb3B0cykge1xuICB2YXIgZm9ybVBhcmFtcyA9IHt9LCBib2R5LCBrZXksIHZhbHVlLCBoYXNCb2R5ID0gZmFsc2U7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBhcmFtZXRlcnMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcGFyYW0gPSB0aGlzLnBhcmFtZXRlcnNbaV07XG5cbiAgICBpZiAodHlwZW9mIGFyZ3NbcGFyYW0ubmFtZV0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBpZiAocGFyYW0uaW4gPT09ICdib2R5Jykge1xuICAgICAgICBib2R5ID0gYXJnc1twYXJhbS5uYW1lXTtcbiAgICAgIH0gZWxzZSBpZiAocGFyYW0uaW4gPT09ICdmb3JtRGF0YScpIHtcbiAgICAgICAgZm9ybVBhcmFtc1twYXJhbS5uYW1lXSA9IGFyZ3NbcGFyYW0ubmFtZV07XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgaWYocGFyYW0uaW4gPT09ICdib2R5Jykge1xuICAgICAgICBoYXNCb2R5ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBpZiBib2R5IGlzIG51bGwgYW5kIGhhc0JvZHkgaXMgdHJ1ZSwgQU5EIGEgSlNPTiBib2R5IGlzIHJlcXVlc3RlZCwgc2VuZCBlbXB0eSB7fVxuICBpZihoYXNCb2R5ICYmIHR5cGVvZiBib2R5ID09PSAndW5kZWZpbmVkJykge1xuICAgIHZhciBjb250ZW50VHlwZSA9IGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddO1xuICAgIGlmKGNvbnRlbnRUeXBlICYmIGNvbnRlbnRUeXBlLmluZGV4T2YoJ2FwcGxpY2F0aW9uL2pzb24nKSA9PT0gMCkge1xuICAgICAgYm9keSA9ICd7fSc7XG4gICAgfVxuICB9XG5cbiAgLy8gaGFuZGxlIGZvcm0gcGFyYW1zXG4gIGlmIChoZWFkZXJzWydDb250ZW50LVR5cGUnXSA9PT0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpIHtcbiAgICB2YXIgZW5jb2RlZCA9ICcnO1xuXG4gICAgZm9yIChrZXkgaW4gZm9ybVBhcmFtcykge1xuICAgICAgdmFsdWUgPSBmb3JtUGFyYW1zW2tleV07XG5cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGlmIChlbmNvZGVkICE9PSAnJykge1xuICAgICAgICAgIGVuY29kZWQgKz0gJyYnO1xuICAgICAgICB9XG5cbiAgICAgICAgZW5jb2RlZCArPSBlbmNvZGVVUklDb21wb25lbnQoa2V5KSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYm9keSA9IGVuY29kZWQ7XG4gIH0gZWxzZSBpZiAoaGVhZGVyc1snQ29udGVudC1UeXBlJ10gJiYgaGVhZGVyc1snQ29udGVudC1UeXBlJ10uaW5kZXhPZignbXVsdGlwYXJ0L2Zvcm0tZGF0YScpID49IDApIHtcbiAgICBpZiAob3B0cy51c2VKUXVlcnkpIHtcbiAgICAgIHZhciBib2R5UGFyYW0gPSBuZXcgRm9ybURhdGEoKTtcblxuICAgICAgYm9keVBhcmFtLnR5cGUgPSAnZm9ybURhdGEnO1xuXG4gICAgICBmb3IgKGtleSBpbiBmb3JtUGFyYW1zKSB7XG4gICAgICAgIHZhbHVlID0gYXJnc1trZXldO1xuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgLy8gcmVxdWlyZWQgZm9yIGpxdWVyeSBmaWxlIHVwbG9hZFxuICAgICAgICAgIGlmICh2YWx1ZS50eXBlID09PSAnZmlsZScgJiYgdmFsdWUudmFsdWUpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBoZWFkZXJzWydDb250ZW50LVR5cGUnXTtcblxuICAgICAgICAgICAgYm9keVBhcmFtLmFwcGVuZChrZXksIHZhbHVlLnZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYm9keVBhcmFtLmFwcGVuZChrZXksIHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYm9keSA9IGJvZHlQYXJhbTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYm9keTtcbn07XG5cbi8qKlxuICogZ2V0cyBzYW1wbGUgcmVzcG9uc2UgZm9yIGEgc2luZ2xlIG9wZXJhdGlvblxuICoqL1xuT3BlcmF0aW9uLnByb3RvdHlwZS5nZXRNb2RlbFNhbXBsZUpTT04gPSBmdW5jdGlvbiAodHlwZSwgbW9kZWxzKSB7XG4gIHZhciBsaXN0VHlwZSwgc2FtcGxlSnNvbiwgaW5uZXJUeXBlO1xuICBtb2RlbHMgPSBtb2RlbHMgfHwge307XG5cbiAgbGlzdFR5cGUgPSAodHlwZSBpbnN0YW5jZW9mIEFycmF5KTtcbiAgaW5uZXJUeXBlID0gbGlzdFR5cGUgPyB0eXBlWzBdIDogdHlwZTtcblxuICBpZihtb2RlbHNbaW5uZXJUeXBlXSkge1xuICAgIHNhbXBsZUpzb24gPSBtb2RlbHNbaW5uZXJUeXBlXS5jcmVhdGVKU09OU2FtcGxlKCk7XG4gIH0gZWxzZSBpZiAodGhpcy5nZXRJbmxpbmVNb2RlbChpbm5lclR5cGUpKXtcbiAgICBzYW1wbGVKc29uID0gdGhpcy5nZXRJbmxpbmVNb2RlbChpbm5lclR5cGUpLmNyZWF0ZUpTT05TYW1wbGUoKTsgLy8gbWF5IHJldHVybiBudWxsLCBpZiB0eXBlIGlzbid0IGNvcnJlY3RcbiAgfVxuXG5cbiAgaWYgKHNhbXBsZUpzb24pIHtcbiAgICBzYW1wbGVKc29uID0gbGlzdFR5cGUgPyBbc2FtcGxlSnNvbl0gOiBzYW1wbGVKc29uO1xuXG4gICAgaWYgKHR5cGVvZiBzYW1wbGVKc29uID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHNhbXBsZUpzb247XG4gICAgfSBlbHNlIGlmIChfLmlzT2JqZWN0KHNhbXBsZUpzb24pKSB7XG4gICAgICB2YXIgdCA9IHNhbXBsZUpzb247XG5cbiAgICAgIGlmIChzYW1wbGVKc29uIGluc3RhbmNlb2YgQXJyYXkgJiYgc2FtcGxlSnNvbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIHQgPSBzYW1wbGVKc29uWzBdO1xuICAgICAgfVxuXG4gICAgICBpZiAodC5ub2RlTmFtZSkge1xuICAgICAgICB2YXIgeG1sU3RyaW5nID0gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyh0KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRYbWwoeG1sU3RyaW5nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShzYW1wbGVKc29uLCBudWxsLCAyKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHNhbXBsZUpzb247XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIGxlZ2FjeSBiaW5kaW5nXG4gKiovXG5PcGVyYXRpb24ucHJvdG90eXBlLmRvID0gZnVuY3Rpb24gKGFyZ3MsIG9wdHMsIGNhbGxiYWNrLCBlcnJvciwgcGFyZW50KSB7XG4gIHJldHVybiB0aGlzLmV4ZWN1dGUoYXJncywgb3B0cywgY2FsbGJhY2ssIGVycm9yLCBwYXJlbnQpO1xufTtcblxuLyoqXG4gKiBleGVjdXRlcyBhbiBvcGVyYXRpb25cbiAqKi9cbk9wZXJhdGlvbi5wcm90b3R5cGUuZXhlY3V0ZSA9IGZ1bmN0aW9uIChhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBwYXJlbnQpIHtcbiAgdmFyIGFyZ3MgPSBhcmcxIHx8IHt9O1xuICB2YXIgb3B0cyA9IHt9LCBzdWNjZXNzLCBlcnJvcjtcblxuICBpZiAoXy5pc09iamVjdChhcmcyKSkge1xuICAgIG9wdHMgPSBhcmcyO1xuICAgIHN1Y2Nlc3MgPSBhcmczO1xuICAgIGVycm9yID0gYXJnNDtcbiAgfVxuXG4gIGlmKHRoaXMuY2xpZW50KSB7XG4gICAgb3B0cy5jbGllbnQgPSB0aGlzLmNsaWVudDtcbiAgfVxuICBpZih0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3IpIHtcbiAgICBvcHRzLnJlc3BvbnNlSW50ZXJjZXB0b3IgPSB0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3I7XG4gIH1cblxuXG4gIGlmICh0eXBlb2YgYXJnMiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHN1Y2Nlc3MgPSBhcmcyO1xuICAgIGVycm9yID0gYXJnMztcbiAgfVxuXG4gIHN1Y2Nlc3MgPSAoc3VjY2VzcyB8fCB0aGlzLnBhcmVudC5kZWZhdWx0U3VjY2Vzc0NhbGxiYWNrIHx8IGhlbHBlcnMubG9nKTtcbiAgZXJyb3IgPSAoZXJyb3IgfHwgdGhpcy5wYXJlbnQuZGVmYXVsdEVycm9yQ2FsbGJhY2sgfHwgaGVscGVycy5sb2cpO1xuXG5cbiAgaWYgKHR5cGVvZiBvcHRzLnVzZUpRdWVyeSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBvcHRzLnVzZUpRdWVyeSA9IHRoaXMudXNlSlF1ZXJ5O1xuICB9XG4gIHZhciBtaXNzaW5nUGFyYW1zID0gdGhpcy5nZXRNaXNzaW5nUGFyYW1zKGFyZ3MpO1xuXG4gIGlmIChtaXNzaW5nUGFyYW1zLmxlbmd0aCA+IDApIHtcbiAgICB2YXIgbWVzc2FnZSA9ICdtaXNzaW5nIHJlcXVpcmVkIHBhcmFtczogJyArIG1pc3NpbmdQYXJhbXM7XG5cbiAgICBoZWxwZXJzLmZhaWwobWVzc2FnZSk7XG4gICAgZXJyb3IobWVzc2FnZSk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgYWxsSGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVyUGFyYW1zKGFyZ3MpO1xuICB2YXIgY29udGVudFR5cGVIZWFkZXJzID0gdGhpcy5zZXRDb250ZW50VHlwZXMoYXJncywgb3B0cyk7XG4gIHZhciBoZWFkZXJzID0ge30sIGF0dHJuYW1lO1xuXG4gIGZvciAoYXR0cm5hbWUgaW4gYWxsSGVhZGVycykgeyBoZWFkZXJzW2F0dHJuYW1lXSA9IGFsbEhlYWRlcnNbYXR0cm5hbWVdOyB9XG4gIGZvciAoYXR0cm5hbWUgaW4gY29udGVudFR5cGVIZWFkZXJzKSB7IGhlYWRlcnNbYXR0cm5hbWVdID0gY29udGVudFR5cGVIZWFkZXJzW2F0dHJuYW1lXTsgfVxuXG4gIHZhciBib2R5ID0gdGhpcy5nZXRCb2R5KGNvbnRlbnRUeXBlSGVhZGVycywgYXJncywgb3B0cyk7XG4gIHZhciB1cmwgPSB0aGlzLnVybGlmeShhcmdzKTtcblxuICBpZih1cmwuaW5kZXhPZignLntmb3JtYXR9JykgPiAwKSB7XG4gICAgaWYoaGVhZGVycykge1xuICAgICAgdmFyIGZvcm1hdCA9IGhlYWRlcnMuQWNjZXB0IHx8IGhlYWRlcnMuYWNjZXB0O1xuICAgICAgaWYoZm9ybWF0ICYmIGZvcm1hdC5pbmRleE9mKCdqc29uJykgPiAwKSB7XG4gICAgICAgIHVybCA9IHVybC5yZXBsYWNlKCcue2Zvcm1hdH0nLCAnLmpzb24nKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYoZm9ybWF0ICYmIGZvcm1hdC5pbmRleE9mKCd4bWwnKSA+IDApIHtcbiAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJy57Zm9ybWF0fScsICcueG1sJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIG9iaiA9IHtcbiAgICB1cmw6IHVybCxcbiAgICBtZXRob2Q6IHRoaXMubWV0aG9kLnRvVXBwZXJDYXNlKCksXG4gICAgYm9keTogYm9keSxcbiAgICB1c2VKUXVlcnk6IG9wdHMudXNlSlF1ZXJ5LFxuICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgb246IHtcbiAgICAgIHJlc3BvbnNlOiBmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3MocmVzcG9uc2UsIHBhcmVudCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICByZXR1cm4gZXJyb3IocmVzcG9uc2UsIHBhcmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHRoaXMuY2xpZW50QXV0aG9yaXphdGlvbnMuYXBwbHkob2JqLCB0aGlzLm9wZXJhdGlvbi5zZWN1cml0eSk7XG4gIGlmIChvcHRzLm1vY2sgPT09IHRydWUpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9IGVsc2Uge1xuICAgIG5ldyBTd2FnZ2VySHR0cCgpLmV4ZWN1dGUob2JqLCBvcHRzKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gaXRlbUJ5UHJpb3JpdHkoY29sLCBpdGVtUHJpb3JpdHkpIHtcblxuICAvLyBObyBwcmlvcml0aWVzPyByZXR1cm4gZmlyc3QuLi5cbiAgaWYoXy5pc0VtcHR5KGl0ZW1Qcmlvcml0eSkpIHtcbiAgICByZXR1cm4gY29sWzBdO1xuICB9XG5cbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGl0ZW1Qcmlvcml0eS5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGlmKGNvbC5pbmRleE9mKGl0ZW1Qcmlvcml0eVtpXSkgPiAtMSkge1xuICAgICAgcmV0dXJuIGl0ZW1Qcmlvcml0eVtpXTtcbiAgICB9XG4gIH1cblxuICAvLyBPdGhlcndpc2UgcmV0dXJuIGZpcnN0XG4gIHJldHVybiBjb2xbMF07XG59XG5cbk9wZXJhdGlvbi5wcm90b3R5cGUuc2V0Q29udGVudFR5cGVzID0gZnVuY3Rpb24gKGFyZ3MsIG9wdHMpIHtcbiAgLy8gZGVmYXVsdCB0eXBlXG4gIHZhciBhbGxEZWZpbmVkUGFyYW1zID0gdGhpcy5wYXJhbWV0ZXJzO1xuICB2YXIgYm9keTtcbiAgdmFyIGNvbnN1bWVzID0gYXJncy5wYXJhbWV0ZXJDb250ZW50VHlwZSB8fCBpdGVtQnlQcmlvcml0eSh0aGlzLmNvbnN1bWVzLCBbJ2FwcGxpY2F0aW9uL2pzb24nLCAnYXBwbGljYXRpb24veWFtbCddKTtcbiAgdmFyIGFjY2VwdHMgPSBvcHRzLnJlc3BvbnNlQ29udGVudFR5cGUgfHwgaXRlbUJ5UHJpb3JpdHkodGhpcy5wcm9kdWNlcywgWydhcHBsaWNhdGlvbi9qc29uJywgJ2FwcGxpY2F0aW9uL3lhbWwnXSk7XG4gIHZhciBkZWZpbmVkRmlsZVBhcmFtcyA9IFtdO1xuICB2YXIgZGVmaW5lZEZvcm1QYXJhbXMgPSBbXTtcbiAgdmFyIGhlYWRlcnMgPSB7fTtcbiAgdmFyIGk7XG5cbiAgLy8gZ2V0IHBhcmFtcyBmcm9tIHRoZSBvcGVyYXRpb24gYW5kIHNldCB0aGVtIGluIGRlZmluZWRGaWxlUGFyYW1zLCBkZWZpbmVkRm9ybVBhcmFtcywgaGVhZGVyc1xuICBmb3IgKGkgPSAwOyBpIDwgYWxsRGVmaW5lZFBhcmFtcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBwYXJhbSA9IGFsbERlZmluZWRQYXJhbXNbaV07XG5cbiAgICBpZiAocGFyYW0uaW4gPT09ICdmb3JtRGF0YScpIHtcbiAgICAgIGlmIChwYXJhbS50eXBlID09PSAnZmlsZScpIHtcbiAgICAgICAgZGVmaW5lZEZpbGVQYXJhbXMucHVzaChwYXJhbSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWZpbmVkRm9ybVBhcmFtcy5wdXNoKHBhcmFtKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHBhcmFtLmluID09PSAnaGVhZGVyJyAmJiBvcHRzKSB7XG4gICAgICB2YXIga2V5ID0gcGFyYW0ubmFtZTtcbiAgICAgIHZhciBoZWFkZXJWYWx1ZSA9IG9wdHNbcGFyYW0ubmFtZV07XG5cbiAgICAgIGlmICh0eXBlb2Ygb3B0c1twYXJhbS5uYW1lXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgaGVhZGVyc1trZXldID0gaGVhZGVyVmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwYXJhbS5pbiA9PT0gJ2JvZHknICYmIHR5cGVvZiBhcmdzW3BhcmFtLm5hbWVdICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgYm9keSA9IGFyZ3NbcGFyYW0ubmFtZV07XG4gICAgfVxuICB9XG5cbiAgLy8gaWYgdGhlcmUncyBhIGJvZHksIG5lZWQgdG8gc2V0IHRoZSBjb25zdW1lcyBoZWFkZXIgdmlhIHJlcXVlc3RDb250ZW50VHlwZVxuICBpZiAodGhpcy5tZXRob2QgPT09ICdwb3N0JyB8fCB0aGlzLm1ldGhvZCA9PT0gJ3B1dCcgfHwgdGhpcy5tZXRob2QgPT09ICdwYXRjaCcgfHxcbiAgICAgICh0aGlzLm1ldGhvZCA9PT0gJ2RlbGV0ZScgJiYgYm9keSkgKSB7XG4gICAgaWYgKG9wdHMucmVxdWVzdENvbnRlbnRUeXBlKSB7XG4gICAgICBjb25zdW1lcyA9IG9wdHMucmVxdWVzdENvbnRlbnRUeXBlO1xuICAgIH1cbiAgICAvLyBpZiBhbnkgZm9ybSBwYXJhbXMsIGNvbnRlbnQgdHlwZSBtdXN0IGJlIHNldFxuICAgIGlmIChkZWZpbmVkRm9ybVBhcmFtcy5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAob3B0cy5yZXF1ZXN0Q29udGVudFR5cGUpIHsgICAgICAgICAgICAgLy8gb3ZlcnJpZGUgaWYgc2V0XG4gICAgICAgIGNvbnN1bWVzID0gb3B0cy5yZXF1ZXN0Q29udGVudFR5cGU7XG4gICAgICB9IGVsc2UgaWYgKGRlZmluZWRGaWxlUGFyYW1zLmxlbmd0aCA+IDApIHsgLy8gaWYgYSBmaWxlLCBtdXN0IGJlIG11bHRpcGFydC9mb3JtLWRhdGFcbiAgICAgICAgY29uc3VtZXMgPSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YSc7XG4gICAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVmYXVsdCB0byB4LXd3dy1mcm9tLXVybGVuY29kZWRcbiAgICAgICAgY29uc3VtZXMgPSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZWxzZSB7XG4gICAgY29uc3VtZXMgPSBudWxsO1xuICB9XG5cbiAgaWYgKGNvbnN1bWVzICYmIHRoaXMuY29uc3VtZXMpIHtcbiAgICBpZiAodGhpcy5jb25zdW1lcy5pbmRleE9mKGNvbnN1bWVzKSA9PT0gLTEpIHtcbiAgICAgIGhlbHBlcnMubG9nKCdzZXJ2ZXIgZG9lc25cXCd0IGNvbnN1bWUgJyArIGNvbnN1bWVzICsgJywgdHJ5ICcgKyBKU09OLnN0cmluZ2lmeSh0aGlzLmNvbnN1bWVzKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCF0aGlzLm1hdGNoZXNBY2NlcHQoYWNjZXB0cykpIHtcbiAgICBoZWxwZXJzLmxvZygnc2VydmVyIGNhblxcJ3QgcHJvZHVjZSAnICsgYWNjZXB0cyk7XG4gIH1cblxuICBpZiAoKGNvbnN1bWVzICYmIGJvZHkgIT09ICcnKSB8fCAoY29uc3VtZXMgPT09ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKSkge1xuICAgIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gY29uc3VtZXM7XG4gIH1cblxuICBpZiAoYWNjZXB0cykge1xuICAgIGhlYWRlcnMuQWNjZXB0ID0gYWNjZXB0cztcbiAgfVxuXG4gIHJldHVybiBoZWFkZXJzO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIHJlcXVlc3QgYWNjZXB0cyBoZWFkZXIgbWF0Y2hlcyBhbnl0aGluZyBpbiB0aGlzLnByb2R1Y2VzLlxuICogIElmIHRoaXMucHJvZHVjZXMgY29udGFpbnMgKiAvICosIGlnbm9yZSB0aGUgYWNjZXB0IGhlYWRlci5cbiAqIEBwYXJhbSB7c3RyaW5nPX0gYWNjZXB0cyBUaGUgY2xpZW50IHJlcXVlc3QgYWNjZXB0IGhlYWRlci5cbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbk9wZXJhdGlvbi5wcm90b3R5cGUubWF0Y2hlc0FjY2VwdCA9IGZ1bmN0aW9uKGFjY2VwdHMpIHtcbiAgLy8gbm8gYWNjZXB0cyBvciBwcm9kdWNlcywgbm8gcHJvYmxlbSFcbiAgaWYgKCFhY2NlcHRzIHx8ICF0aGlzLnByb2R1Y2VzKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIHRoaXMucHJvZHVjZXMuaW5kZXhPZihhY2NlcHRzKSAhPT0gLTEgfHwgdGhpcy5wcm9kdWNlcy5pbmRleE9mKCcqLyonKSAhPT0gLTE7XG59O1xuXG5PcGVyYXRpb24ucHJvdG90eXBlLmFzQ3VybCA9IGZ1bmN0aW9uIChhcmdzMSwgYXJnczIpIHtcbiAgdmFyIG9wdHMgPSB7bW9jazogdHJ1ZX07XG4gIGlmICh0eXBlb2YgYXJnczIgPT09ICdvYmplY3QnKSB7XG4gICAgZm9yICh2YXIgYXJnS2V5IGluIGFyZ3MyKSB7XG4gICAgICBvcHRzW2FyZ0tleV0gPSBhcmdzMlthcmdLZXldO1xuICAgIH1cbiAgfVxuICB2YXIgb2JqID0gdGhpcy5leGVjdXRlKGFyZ3MxLCBvcHRzKTtcblxuICB0aGlzLmNsaWVudEF1dGhvcml6YXRpb25zLmFwcGx5KG9iaik7XG5cbiAgdmFyIHJlc3VsdHMgPSBbXTtcblxuICByZXN1bHRzLnB1c2goJy1YICcgKyB0aGlzLm1ldGhvZC50b1VwcGVyQ2FzZSgpKTtcblxuICBpZiAob2JqLmhlYWRlcnMpIHtcbiAgICB2YXIga2V5O1xuXG4gICAgZm9yIChrZXkgaW4gb2JqLmhlYWRlcnMpIHtcbiAgICAgIHJlc3VsdHMucHVzaCgnLS1oZWFkZXIgXCInICsga2V5ICsgJzogJyArIG9iai5oZWFkZXJzW2tleV0gKyAnXCInKTtcbiAgICB9XG4gIH1cblxuICBpZiAob2JqLmJvZHkpIHtcbiAgICB2YXIgYm9keTtcblxuICAgIGlmIChfLmlzT2JqZWN0KG9iai5ib2R5KSkge1xuICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KG9iai5ib2R5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgYm9keSA9IG9iai5ib2R5O1xuICAgIH1cblxuICAgIHJlc3VsdHMucHVzaCgnLWQgXCInICsgYm9keS5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJykgKyAnXCInKTtcbiAgfVxuXG4gIHJldHVybiAnY3VybCAnICsgKHJlc3VsdHMuam9pbignICcpKSArICcgXCInICsgb2JqLnVybCArICdcIic7XG59O1xuXG5PcGVyYXRpb24ucHJvdG90eXBlLmVuY29kZVBhdGhDb2xsZWN0aW9uID0gZnVuY3Rpb24gKHR5cGUsIG5hbWUsIHZhbHVlKSB7XG4gIHZhciBlbmNvZGVkID0gJyc7XG4gIHZhciBpO1xuICB2YXIgc2VwYXJhdG9yID0gJyc7XG5cbiAgaWYgKHR5cGUgPT09ICdzc3YnKSB7XG4gICAgc2VwYXJhdG9yID0gJyUyMCc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3RzdicpIHtcbiAgICBzZXBhcmF0b3IgPSAnXFxcXHQnO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdwaXBlcycpIHtcbiAgICBzZXBhcmF0b3IgPSAnfCc7XG4gIH0gZWxzZSB7XG4gICAgc2VwYXJhdG9yID0gJywnO1xuICB9XG5cbiAgZm9yIChpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGkgPT09IDApIHtcbiAgICAgIGVuY29kZWQgPSB0aGlzLmVuY29kZVF1ZXJ5UGFyYW0odmFsdWVbaV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbmNvZGVkICs9IHNlcGFyYXRvciArIHRoaXMuZW5jb2RlUXVlcnlQYXJhbSh2YWx1ZVtpXSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVuY29kZWQ7XG59O1xuXG5PcGVyYXRpb24ucHJvdG90eXBlLmVuY29kZVF1ZXJ5Q29sbGVjdGlvbiA9IGZ1bmN0aW9uICh0eXBlLCBuYW1lLCB2YWx1ZSkge1xuICB2YXIgZW5jb2RlZCA9ICcnO1xuICB2YXIgaTtcblxuICBpZiAodHlwZSA9PT0gJ2RlZmF1bHQnIHx8IHR5cGUgPT09ICdtdWx0aScpIHtcbiAgICBmb3IgKGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChpID4gMCkge2VuY29kZWQgKz0gJyYnO31cblxuICAgICAgZW5jb2RlZCArPSB0aGlzLmVuY29kZVF1ZXJ5UGFyYW0obmFtZSkgKyAnPScgKyB0aGlzLmVuY29kZVF1ZXJ5UGFyYW0odmFsdWVbaV0pO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgc2VwYXJhdG9yID0gJyc7XG5cbiAgICBpZiAodHlwZSA9PT0gJ2NzdicpIHtcbiAgICAgIHNlcGFyYXRvciA9ICcsJztcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzc3YnKSB7XG4gICAgICBzZXBhcmF0b3IgPSAnJTIwJztcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICd0c3YnKSB7XG4gICAgICBzZXBhcmF0b3IgPSAnXFxcXHQnO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3BpcGVzJykge1xuICAgICAgc2VwYXJhdG9yID0gJ3wnO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2JyYWNrZXRzJykge1xuICAgICAgZm9yIChpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChpICE9PSAwKSB7XG4gICAgICAgICAgZW5jb2RlZCArPSAnJic7XG4gICAgICAgIH1cblxuICAgICAgICBlbmNvZGVkICs9IHRoaXMuZW5jb2RlUXVlcnlQYXJhbShuYW1lKSArICdbXT0nICsgdGhpcy5lbmNvZGVRdWVyeVBhcmFtKHZhbHVlW2ldKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc2VwYXJhdG9yICE9PSAnJykge1xuICAgICAgZm9yIChpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgZW5jb2RlZCA9IHRoaXMuZW5jb2RlUXVlcnlQYXJhbShuYW1lKSArICc9JyArIHRoaXMuZW5jb2RlUXVlcnlQYXJhbSh2YWx1ZVtpXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZW5jb2RlZCArPSBzZXBhcmF0b3IgKyB0aGlzLmVuY29kZVF1ZXJ5UGFyYW0odmFsdWVbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVuY29kZWQ7XG59O1xuXG5PcGVyYXRpb24ucHJvdG90eXBlLmVuY29kZVF1ZXJ5UGFyYW0gPSBmdW5jdGlvbiAoYXJnKSB7XG4gIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoYXJnKTtcbn07XG5cbi8qKlxuICogVE9ETyByZXZpc2l0LCBtaWdodCBub3Qgd2FudCB0byBsZWF2ZSAnLydcbiAqKi9cbk9wZXJhdGlvbi5wcm90b3R5cGUuZW5jb2RlUGF0aFBhcmFtID0gZnVuY3Rpb24gKHBhdGhQYXJhbSkge1xuICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHBhdGhQYXJhbSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgT3BlcmF0aW9uR3JvdXAgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0YWcsIGRlc2NyaXB0aW9uLCBleHRlcm5hbERvY3MsIG9wZXJhdGlvbikge1xuICB0aGlzLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247XG4gIHRoaXMuZXh0ZXJuYWxEb2NzID0gZXh0ZXJuYWxEb2NzO1xuICB0aGlzLm5hbWUgPSB0YWc7XG4gIHRoaXMub3BlcmF0aW9uID0gb3BlcmF0aW9uO1xuICB0aGlzLm9wZXJhdGlvbnNBcnJheSA9IFtdO1xuICB0aGlzLnBhdGggPSB0YWc7XG4gIHRoaXMudGFnID0gdGFnO1xufTtcblxuT3BlcmF0aW9uR3JvdXAucHJvdG90eXBlLnNvcnQgPSBmdW5jdGlvbiAoKSB7XG5cbn07XG5cbiIsbnVsbCwiLyohXG4gKiBUaGUgYnVmZmVyIG1vZHVsZSBmcm9tIG5vZGUuanMsIGZvciB0aGUgYnJvd3Nlci5cbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8ZmVyb3NzQGZlcm9zcy5vcmc+IDxodHRwOi8vZmVyb3NzLm9yZz5cbiAqIEBsaWNlbnNlICBNSVRcbiAqL1xuXG52YXIgYmFzZTY0ID0gcmVxdWlyZSgnYmFzZTY0LWpzJylcbnZhciBpZWVlNzU0ID0gcmVxdWlyZSgnaWVlZTc1NCcpXG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJ2lzLWFycmF5JylcblxuZXhwb3J0cy5CdWZmZXIgPSBCdWZmZXJcbmV4cG9ydHMuU2xvd0J1ZmZlciA9IFNsb3dCdWZmZXJcbmV4cG9ydHMuSU5TUEVDVF9NQVhfQllURVMgPSA1MFxuQnVmZmVyLnBvb2xTaXplID0gODE5MiAvLyBub3QgdXNlZCBieSB0aGlzIGltcGxlbWVudGF0aW9uXG5cbnZhciByb290UGFyZW50ID0ge31cblxuLyoqXG4gKiBJZiBgQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlRgOlxuICogICA9PT0gdHJ1ZSAgICBVc2UgVWludDhBcnJheSBpbXBsZW1lbnRhdGlvbiAoZmFzdGVzdClcbiAqICAgPT09IGZhbHNlICAgVXNlIE9iamVjdCBpbXBsZW1lbnRhdGlvbiAobW9zdCBjb21wYXRpYmxlLCBldmVuIElFNilcbiAqXG4gKiBCcm93c2VycyB0aGF0IHN1cHBvcnQgdHlwZWQgYXJyYXlzIGFyZSBJRSAxMCssIEZpcmVmb3ggNCssIENocm9tZSA3KywgU2FmYXJpIDUuMSssXG4gKiBPcGVyYSAxMS42KywgaU9TIDQuMisuXG4gKlxuICogTm90ZTpcbiAqXG4gKiAtIEltcGxlbWVudGF0aW9uIG11c3Qgc3VwcG9ydCBhZGRpbmcgbmV3IHByb3BlcnRpZXMgdG8gYFVpbnQ4QXJyYXlgIGluc3RhbmNlcy5cbiAqICAgRmlyZWZveCA0LTI5IGxhY2tlZCBzdXBwb3J0LCBmaXhlZCBpbiBGaXJlZm94IDMwKy5cbiAqICAgU2VlOiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU0MzguXG4gKlxuICogIC0gQ2hyb21lIDktMTAgaXMgbWlzc2luZyB0aGUgYFR5cGVkQXJyYXkucHJvdG90eXBlLnN1YmFycmF5YCBmdW5jdGlvbi5cbiAqXG4gKiAgLSBJRTEwIGhhcyBhIGJyb2tlbiBgVHlwZWRBcnJheS5wcm90b3R5cGUuc3ViYXJyYXlgIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYXJyYXlzIG9mXG4gKiAgICBpbmNvcnJlY3QgbGVuZ3RoIGluIHNvbWUgc2l0dWF0aW9ucy5cbiAqXG4gKiBXZSBkZXRlY3QgdGhlc2UgYnVnZ3kgYnJvd3NlcnMgYW5kIHNldCBgQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlRgIHRvIGBmYWxzZWAgc28gdGhleSB3aWxsXG4gKiBnZXQgdGhlIE9iamVjdCBpbXBsZW1lbnRhdGlvbiwgd2hpY2ggaXMgc2xvd2VyIGJ1dCB3aWxsIHdvcmsgY29ycmVjdGx5LlxuICovXG5CdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCA9IChmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIEZvbyAoKSB7fVxuICB0cnkge1xuICAgIHZhciBidWYgPSBuZXcgQXJyYXlCdWZmZXIoMClcbiAgICB2YXIgYXJyID0gbmV3IFVpbnQ4QXJyYXkoYnVmKVxuICAgIGFyci5mb28gPSBmdW5jdGlvbiAoKSB7IHJldHVybiA0MiB9XG4gICAgYXJyLmNvbnN0cnVjdG9yID0gRm9vXG4gICAgcmV0dXJuIGFyci5mb28oKSA9PT0gNDIgJiYgLy8gdHlwZWQgYXJyYXkgaW5zdGFuY2VzIGNhbiBiZSBhdWdtZW50ZWRcbiAgICAgICAgYXJyLmNvbnN0cnVjdG9yID09PSBGb28gJiYgLy8gY29uc3RydWN0b3IgY2FuIGJlIHNldFxuICAgICAgICB0eXBlb2YgYXJyLnN1YmFycmF5ID09PSAnZnVuY3Rpb24nICYmIC8vIGNocm9tZSA5LTEwIGxhY2sgYHN1YmFycmF5YFxuICAgICAgICBuZXcgVWludDhBcnJheSgxKS5zdWJhcnJheSgxLCAxKS5ieXRlTGVuZ3RoID09PSAwIC8vIGllMTAgaGFzIGJyb2tlbiBgc3ViYXJyYXlgXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufSkoKVxuXG5mdW5jdGlvbiBrTWF4TGVuZ3RoICgpIHtcbiAgcmV0dXJuIEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUXG4gICAgPyAweDdmZmZmZmZmXG4gICAgOiAweDNmZmZmZmZmXG59XG5cbi8qKlxuICogQ2xhc3M6IEJ1ZmZlclxuICogPT09PT09PT09PT09PVxuICpcbiAqIFRoZSBCdWZmZXIgY29uc3RydWN0b3IgcmV0dXJucyBpbnN0YW5jZXMgb2YgYFVpbnQ4QXJyYXlgIHRoYXQgYXJlIGF1Z21lbnRlZFxuICogd2l0aCBmdW5jdGlvbiBwcm9wZXJ0aWVzIGZvciBhbGwgdGhlIG5vZGUgYEJ1ZmZlcmAgQVBJIGZ1bmN0aW9ucy4gV2UgdXNlXG4gKiBgVWludDhBcnJheWAgc28gdGhhdCBzcXVhcmUgYnJhY2tldCBub3RhdGlvbiB3b3JrcyBhcyBleHBlY3RlZCAtLSBpdCByZXR1cm5zXG4gKiBhIHNpbmdsZSBvY3RldC5cbiAqXG4gKiBCeSBhdWdtZW50aW5nIHRoZSBpbnN0YW5jZXMsIHdlIGNhbiBhdm9pZCBtb2RpZnlpbmcgdGhlIGBVaW50OEFycmF5YFxuICogcHJvdG90eXBlLlxuICovXG5mdW5jdGlvbiBCdWZmZXIgKGFyZykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgQnVmZmVyKSkge1xuICAgIC8vIEF2b2lkIGdvaW5nIHRocm91Z2ggYW4gQXJndW1lbnRzQWRhcHRvclRyYW1wb2xpbmUgaW4gdGhlIGNvbW1vbiBjYXNlLlxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkgcmV0dXJuIG5ldyBCdWZmZXIoYXJnLCBhcmd1bWVudHNbMV0pXG4gICAgcmV0dXJuIG5ldyBCdWZmZXIoYXJnKVxuICB9XG5cbiAgdGhpcy5sZW5ndGggPSAwXG4gIHRoaXMucGFyZW50ID0gdW5kZWZpbmVkXG5cbiAgLy8gQ29tbW9uIGNhc2UuXG4gIGlmICh0eXBlb2YgYXJnID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBmcm9tTnVtYmVyKHRoaXMsIGFyZylcbiAgfVxuXG4gIC8vIFNsaWdodGx5IGxlc3MgY29tbW9uIGNhc2UuXG4gIGlmICh0eXBlb2YgYXJnID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmcm9tU3RyaW5nKHRoaXMsIGFyZywgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiAndXRmOCcpXG4gIH1cblxuICAvLyBVbnVzdWFsLlxuICByZXR1cm4gZnJvbU9iamVjdCh0aGlzLCBhcmcpXG59XG5cbmZ1bmN0aW9uIGZyb21OdW1iZXIgKHRoYXQsIGxlbmd0aCkge1xuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoIDwgMCA/IDAgOiBjaGVja2VkKGxlbmd0aCkgfCAwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgdGhhdFtpXSA9IDBcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbVN0cmluZyAodGhhdCwgc3RyaW5nLCBlbmNvZGluZykge1xuICBpZiAodHlwZW9mIGVuY29kaW5nICE9PSAnc3RyaW5nJyB8fCBlbmNvZGluZyA9PT0gJycpIGVuY29kaW5nID0gJ3V0ZjgnXG5cbiAgLy8gQXNzdW1wdGlvbjogYnl0ZUxlbmd0aCgpIHJldHVybiB2YWx1ZSBpcyBhbHdheXMgPCBrTWF4TGVuZ3RoLlxuICB2YXIgbGVuZ3RoID0gYnl0ZUxlbmd0aChzdHJpbmcsIGVuY29kaW5nKSB8IDBcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcblxuICB0aGF0LndyaXRlKHN0cmluZywgZW5jb2RpbmcpXG4gIHJldHVybiB0aGF0XG59XG5cbmZ1bmN0aW9uIGZyb21PYmplY3QgKHRoYXQsIG9iamVjdCkge1xuICBpZiAoQnVmZmVyLmlzQnVmZmVyKG9iamVjdCkpIHJldHVybiBmcm9tQnVmZmVyKHRoYXQsIG9iamVjdClcblxuICBpZiAoaXNBcnJheShvYmplY3QpKSByZXR1cm4gZnJvbUFycmF5KHRoYXQsIG9iamVjdClcblxuICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtdXN0IHN0YXJ0IHdpdGggbnVtYmVyLCBidWZmZXIsIGFycmF5IG9yIHN0cmluZycpXG4gIH1cblxuICBpZiAodHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJiBvYmplY3QuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcbiAgICByZXR1cm4gZnJvbVR5cGVkQXJyYXkodGhhdCwgb2JqZWN0KVxuICB9XG5cbiAgaWYgKG9iamVjdC5sZW5ndGgpIHJldHVybiBmcm9tQXJyYXlMaWtlKHRoYXQsIG9iamVjdClcblxuICByZXR1cm4gZnJvbUpzb25PYmplY3QodGhhdCwgb2JqZWN0KVxufVxuXG5mdW5jdGlvbiBmcm9tQnVmZmVyICh0aGF0LCBidWZmZXIpIHtcbiAgdmFyIGxlbmd0aCA9IGNoZWNrZWQoYnVmZmVyLmxlbmd0aCkgfCAwXG4gIHRoYXQgPSBhbGxvY2F0ZSh0aGF0LCBsZW5ndGgpXG4gIGJ1ZmZlci5jb3B5KHRoYXQsIDAsIDAsIGxlbmd0aClcbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbUFycmF5ICh0aGF0LCBhcnJheSkge1xuICB2YXIgbGVuZ3RoID0gY2hlY2tlZChhcnJheS5sZW5ndGgpIHwgMFxuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoKVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7XG4gICAgdGhhdFtpXSA9IGFycmF5W2ldICYgMjU1XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuLy8gRHVwbGljYXRlIG9mIGZyb21BcnJheSgpIHRvIGtlZXAgZnJvbUFycmF5KCkgbW9ub21vcnBoaWMuXG5mdW5jdGlvbiBmcm9tVHlwZWRBcnJheSAodGhhdCwgYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcbiAgLy8gVHJ1bmNhdGluZyB0aGUgZWxlbWVudHMgaXMgcHJvYmFibHkgbm90IHdoYXQgcGVvcGxlIGV4cGVjdCBmcm9tIHR5cGVkXG4gIC8vIGFycmF5cyB3aXRoIEJZVEVTX1BFUl9FTEVNRU5UID4gMSBidXQgaXQncyBjb21wYXRpYmxlIHdpdGggdGhlIGJlaGF2aW9yXG4gIC8vIG9mIHRoZSBvbGQgQnVmZmVyIGNvbnN0cnVjdG9yLlxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7XG4gICAgdGhhdFtpXSA9IGFycmF5W2ldICYgMjU1XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbUFycmF5TGlrZSAodGhhdCwgYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKz0gMSkge1xuICAgIHRoYXRbaV0gPSBhcnJheVtpXSAmIDI1NVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbi8vIERlc2VyaWFsaXplIHsgdHlwZTogJ0J1ZmZlcicsIGRhdGE6IFsxLDIsMywuLi5dIH0gaW50byBhIEJ1ZmZlciBvYmplY3QuXG4vLyBSZXR1cm5zIGEgemVyby1sZW5ndGggYnVmZmVyIGZvciBpbnB1dHMgdGhhdCBkb24ndCBjb25mb3JtIHRvIHRoZSBzcGVjLlxuZnVuY3Rpb24gZnJvbUpzb25PYmplY3QgKHRoYXQsIG9iamVjdCkge1xuICB2YXIgYXJyYXlcbiAgdmFyIGxlbmd0aCA9IDBcblxuICBpZiAob2JqZWN0LnR5cGUgPT09ICdCdWZmZXInICYmIGlzQXJyYXkob2JqZWN0LmRhdGEpKSB7XG4gICAgYXJyYXkgPSBvYmplY3QuZGF0YVxuICAgIGxlbmd0aCA9IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgfVxuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpICs9IDEpIHtcbiAgICB0aGF0W2ldID0gYXJyYXlbaV0gJiAyNTVcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBhbGxvY2F0ZSAodGhhdCwgbGVuZ3RoKSB7XG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIC8vIFJldHVybiBhbiBhdWdtZW50ZWQgYFVpbnQ4QXJyYXlgIGluc3RhbmNlLCBmb3IgYmVzdCBwZXJmb3JtYW5jZVxuICAgIHRoYXQgPSBCdWZmZXIuX2F1Z21lbnQobmV3IFVpbnQ4QXJyYXkobGVuZ3RoKSlcbiAgfSBlbHNlIHtcbiAgICAvLyBGYWxsYmFjazogUmV0dXJuIGFuIG9iamVjdCBpbnN0YW5jZSBvZiB0aGUgQnVmZmVyIGNsYXNzXG4gICAgdGhhdC5sZW5ndGggPSBsZW5ndGhcbiAgICB0aGF0Ll9pc0J1ZmZlciA9IHRydWVcbiAgfVxuXG4gIHZhciBmcm9tUG9vbCA9IGxlbmd0aCAhPT0gMCAmJiBsZW5ndGggPD0gQnVmZmVyLnBvb2xTaXplID4+PiAxXG4gIGlmIChmcm9tUG9vbCkgdGhhdC5wYXJlbnQgPSByb290UGFyZW50XG5cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gY2hlY2tlZCAobGVuZ3RoKSB7XG4gIC8vIE5vdGU6IGNhbm5vdCB1c2UgYGxlbmd0aCA8IGtNYXhMZW5ndGhgIGhlcmUgYmVjYXVzZSB0aGF0IGZhaWxzIHdoZW5cbiAgLy8gbGVuZ3RoIGlzIE5hTiAod2hpY2ggaXMgb3RoZXJ3aXNlIGNvZXJjZWQgdG8gemVyby4pXG4gIGlmIChsZW5ndGggPj0ga01heExlbmd0aCgpKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0F0dGVtcHQgdG8gYWxsb2NhdGUgQnVmZmVyIGxhcmdlciB0aGFuIG1heGltdW0gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgJ3NpemU6IDB4JyArIGtNYXhMZW5ndGgoKS50b1N0cmluZygxNikgKyAnIGJ5dGVzJylcbiAgfVxuICByZXR1cm4gbGVuZ3RoIHwgMFxufVxuXG5mdW5jdGlvbiBTbG93QnVmZmVyIChzdWJqZWN0LCBlbmNvZGluZykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgU2xvd0J1ZmZlcikpIHJldHVybiBuZXcgU2xvd0J1ZmZlcihzdWJqZWN0LCBlbmNvZGluZylcblxuICB2YXIgYnVmID0gbmV3IEJ1ZmZlcihzdWJqZWN0LCBlbmNvZGluZylcbiAgZGVsZXRlIGJ1Zi5wYXJlbnRcbiAgcmV0dXJuIGJ1ZlxufVxuXG5CdWZmZXIuaXNCdWZmZXIgPSBmdW5jdGlvbiBpc0J1ZmZlciAoYikge1xuICByZXR1cm4gISEoYiAhPSBudWxsICYmIGIuX2lzQnVmZmVyKVxufVxuXG5CdWZmZXIuY29tcGFyZSA9IGZ1bmN0aW9uIGNvbXBhcmUgKGEsIGIpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYSkgfHwgIUJ1ZmZlci5pc0J1ZmZlcihiKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50cyBtdXN0IGJlIEJ1ZmZlcnMnKVxuICB9XG5cbiAgaWYgKGEgPT09IGIpIHJldHVybiAwXG5cbiAgdmFyIHggPSBhLmxlbmd0aFxuICB2YXIgeSA9IGIubGVuZ3RoXG5cbiAgdmFyIGkgPSAwXG4gIHZhciBsZW4gPSBNYXRoLm1pbih4LCB5KVxuICB3aGlsZSAoaSA8IGxlbikge1xuICAgIGlmIChhW2ldICE9PSBiW2ldKSBicmVha1xuXG4gICAgKytpXG4gIH1cblxuICBpZiAoaSAhPT0gbGVuKSB7XG4gICAgeCA9IGFbaV1cbiAgICB5ID0gYltpXVxuICB9XG5cbiAgaWYgKHggPCB5KSByZXR1cm4gLTFcbiAgaWYgKHkgPCB4KSByZXR1cm4gMVxuICByZXR1cm4gMFxufVxuXG5CdWZmZXIuaXNFbmNvZGluZyA9IGZ1bmN0aW9uIGlzRW5jb2RpbmcgKGVuY29kaW5nKSB7XG4gIHN3aXRjaCAoU3RyaW5nKGVuY29kaW5nKS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgY2FzZSAnaGV4JzpcbiAgICBjYXNlICd1dGY4JzpcbiAgICBjYXNlICd1dGYtOCc6XG4gICAgY2FzZSAnYXNjaWknOlxuICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgY2FzZSAnYmFzZTY0JzpcbiAgICBjYXNlICdyYXcnOlxuICAgIGNhc2UgJ3VjczInOlxuICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICBjYXNlICd1dGYxNmxlJzpcbiAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5CdWZmZXIuY29uY2F0ID0gZnVuY3Rpb24gY29uY2F0IChsaXN0LCBsZW5ndGgpIHtcbiAgaWYgKCFpc0FycmF5KGxpc3QpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdsaXN0IGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycy4nKVxuXG4gIGlmIChsaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBuZXcgQnVmZmVyKDApXG4gIH0gZWxzZSBpZiAobGlzdC5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gbGlzdFswXVxuICB9XG5cbiAgdmFyIGlcbiAgaWYgKGxlbmd0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgbGVuZ3RoID0gMFxuICAgIGZvciAoaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZW5ndGggKz0gbGlzdFtpXS5sZW5ndGhcbiAgICB9XG4gIH1cblxuICB2YXIgYnVmID0gbmV3IEJ1ZmZlcihsZW5ndGgpXG4gIHZhciBwb3MgPSAwXG4gIGZvciAoaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGl0ZW0gPSBsaXN0W2ldXG4gICAgaXRlbS5jb3B5KGJ1ZiwgcG9zKVxuICAgIHBvcyArPSBpdGVtLmxlbmd0aFxuICB9XG4gIHJldHVybiBidWZcbn1cblxuZnVuY3Rpb24gYnl0ZUxlbmd0aCAoc3RyaW5nLCBlbmNvZGluZykge1xuICBpZiAodHlwZW9mIHN0cmluZyAhPT0gJ3N0cmluZycpIHN0cmluZyA9ICcnICsgc3RyaW5nXG5cbiAgdmFyIGxlbiA9IHN0cmluZy5sZW5ndGhcbiAgaWYgKGxlbiA9PT0gMCkgcmV0dXJuIDBcblxuICAvLyBVc2UgYSBmb3IgbG9vcCB0byBhdm9pZCByZWN1cnNpb25cbiAgdmFyIGxvd2VyZWRDYXNlID0gZmFsc2VcbiAgZm9yICg7Oykge1xuICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgIGNhc2UgJ2FzY2lpJzpcbiAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAvLyBEZXByZWNhdGVkXG4gICAgICBjYXNlICdyYXcnOlxuICAgICAgY2FzZSAncmF3cyc6XG4gICAgICAgIHJldHVybiBsZW5cbiAgICAgIGNhc2UgJ3V0ZjgnOlxuICAgICAgY2FzZSAndXRmLTgnOlxuICAgICAgICByZXR1cm4gdXRmOFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGhcbiAgICAgIGNhc2UgJ3VjczInOlxuICAgICAgY2FzZSAndWNzLTInOlxuICAgICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICAgIHJldHVybiBsZW4gKiAyXG4gICAgICBjYXNlICdoZXgnOlxuICAgICAgICByZXR1cm4gbGVuID4+PiAxXG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgICByZXR1cm4gYmFzZTY0VG9CeXRlcyhzdHJpbmcpLmxlbmd0aFxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGxvd2VyZWRDYXNlKSByZXR1cm4gdXRmOFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGggLy8gYXNzdW1lIHV0ZjhcbiAgICAgICAgZW5jb2RpbmcgPSAoJycgKyBlbmNvZGluZykudG9Mb3dlckNhc2UoKVxuICAgICAgICBsb3dlcmVkQ2FzZSA9IHRydWVcbiAgICB9XG4gIH1cbn1cbkJ1ZmZlci5ieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aFxuXG4vLyBwcmUtc2V0IGZvciB2YWx1ZXMgdGhhdCBtYXkgZXhpc3QgaW4gdGhlIGZ1dHVyZVxuQnVmZmVyLnByb3RvdHlwZS5sZW5ndGggPSB1bmRlZmluZWRcbkJ1ZmZlci5wcm90b3R5cGUucGFyZW50ID0gdW5kZWZpbmVkXG5cbmZ1bmN0aW9uIHNsb3dUb1N0cmluZyAoZW5jb2RpbmcsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIGxvd2VyZWRDYXNlID0gZmFsc2VcblxuICBzdGFydCA9IHN0YXJ0IHwgMFxuICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZCB8fCBlbmQgPT09IEluZmluaXR5ID8gdGhpcy5sZW5ndGggOiBlbmQgfCAwXG5cbiAgaWYgKCFlbmNvZGluZykgZW5jb2RpbmcgPSAndXRmOCdcbiAgaWYgKHN0YXJ0IDwgMCkgc3RhcnQgPSAwXG4gIGlmIChlbmQgPiB0aGlzLmxlbmd0aCkgZW5kID0gdGhpcy5sZW5ndGhcbiAgaWYgKGVuZCA8PSBzdGFydCkgcmV0dXJuICcnXG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgICBjYXNlICdoZXgnOlxuICAgICAgICByZXR1cm4gaGV4U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAndXRmOCc6XG4gICAgICBjYXNlICd1dGYtOCc6XG4gICAgICAgIHJldHVybiB1dGY4U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAnYXNjaWknOlxuICAgICAgICByZXR1cm4gYXNjaWlTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgICByZXR1cm4gYmluYXJ5U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgICAgcmV0dXJuIGJhc2U2NFNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ3VjczInOlxuICAgICAgY2FzZSAndWNzLTInOlxuICAgICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICAgIHJldHVybiB1dGYxNmxlU2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGxvd2VyZWRDYXNlKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jb2RpbmcpXG4gICAgICAgIGVuY29kaW5nID0gKGVuY29kaW5nICsgJycpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgbG93ZXJlZENhc2UgPSB0cnVlXG4gICAgfVxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZyAoKSB7XG4gIHZhciBsZW5ndGggPSB0aGlzLmxlbmd0aCB8IDBcbiAgaWYgKGxlbmd0aCA9PT0gMCkgcmV0dXJuICcnXG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSByZXR1cm4gdXRmOFNsaWNlKHRoaXMsIDAsIGxlbmd0aClcbiAgcmV0dXJuIHNsb3dUb1N0cmluZy5hcHBseSh0aGlzLCBhcmd1bWVudHMpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuZXF1YWxzID0gZnVuY3Rpb24gZXF1YWxzIChiKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyJylcbiAgaWYgKHRoaXMgPT09IGIpIHJldHVybiB0cnVlXG4gIHJldHVybiBCdWZmZXIuY29tcGFyZSh0aGlzLCBiKSA9PT0gMFxufVxuXG5CdWZmZXIucHJvdG90eXBlLmluc3BlY3QgPSBmdW5jdGlvbiBpbnNwZWN0ICgpIHtcbiAgdmFyIHN0ciA9ICcnXG4gIHZhciBtYXggPSBleHBvcnRzLklOU1BFQ1RfTUFYX0JZVEVTXG4gIGlmICh0aGlzLmxlbmd0aCA+IDApIHtcbiAgICBzdHIgPSB0aGlzLnRvU3RyaW5nKCdoZXgnLCAwLCBtYXgpLm1hdGNoKC8uezJ9L2cpLmpvaW4oJyAnKVxuICAgIGlmICh0aGlzLmxlbmd0aCA+IG1heCkgc3RyICs9ICcgLi4uICdcbiAgfVxuICByZXR1cm4gJzxCdWZmZXIgJyArIHN0ciArICc+J1xufVxuXG5CdWZmZXIucHJvdG90eXBlLmNvbXBhcmUgPSBmdW5jdGlvbiBjb21wYXJlIChiKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyJylcbiAgaWYgKHRoaXMgPT09IGIpIHJldHVybiAwXG4gIHJldHVybiBCdWZmZXIuY29tcGFyZSh0aGlzLCBiKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLmluZGV4T2YgPSBmdW5jdGlvbiBpbmRleE9mICh2YWwsIGJ5dGVPZmZzZXQpIHtcbiAgaWYgKGJ5dGVPZmZzZXQgPiAweDdmZmZmZmZmKSBieXRlT2Zmc2V0ID0gMHg3ZmZmZmZmZlxuICBlbHNlIGlmIChieXRlT2Zmc2V0IDwgLTB4ODAwMDAwMDApIGJ5dGVPZmZzZXQgPSAtMHg4MDAwMDAwMFxuICBieXRlT2Zmc2V0ID4+PSAwXG5cbiAgaWYgKHRoaXMubGVuZ3RoID09PSAwKSByZXR1cm4gLTFcbiAgaWYgKGJ5dGVPZmZzZXQgPj0gdGhpcy5sZW5ndGgpIHJldHVybiAtMVxuXG4gIC8vIE5lZ2F0aXZlIG9mZnNldHMgc3RhcnQgZnJvbSB0aGUgZW5kIG9mIHRoZSBidWZmZXJcbiAgaWYgKGJ5dGVPZmZzZXQgPCAwKSBieXRlT2Zmc2V0ID0gTWF0aC5tYXgodGhpcy5sZW5ndGggKyBieXRlT2Zmc2V0LCAwKVxuXG4gIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgIGlmICh2YWwubGVuZ3RoID09PSAwKSByZXR1cm4gLTEgLy8gc3BlY2lhbCBjYXNlOiBsb29raW5nIGZvciBlbXB0eSBzdHJpbmcgYWx3YXlzIGZhaWxzXG4gICAgcmV0dXJuIFN0cmluZy5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHRoaXMsIHZhbCwgYnl0ZU9mZnNldClcbiAgfVxuICBpZiAoQnVmZmVyLmlzQnVmZmVyKHZhbCkpIHtcbiAgICByZXR1cm4gYXJyYXlJbmRleE9mKHRoaXMsIHZhbCwgYnl0ZU9mZnNldClcbiAgfVxuICBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQgJiYgVWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCh0aGlzLCB2YWwsIGJ5dGVPZmZzZXQpXG4gICAgfVxuICAgIHJldHVybiBhcnJheUluZGV4T2YodGhpcywgWyB2YWwgXSwgYnl0ZU9mZnNldClcbiAgfVxuXG4gIGZ1bmN0aW9uIGFycmF5SW5kZXhPZiAoYXJyLCB2YWwsIGJ5dGVPZmZzZXQpIHtcbiAgICB2YXIgZm91bmRJbmRleCA9IC0xXG4gICAgZm9yICh2YXIgaSA9IDA7IGJ5dGVPZmZzZXQgKyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoYXJyW2J5dGVPZmZzZXQgKyBpXSA9PT0gdmFsW2ZvdW5kSW5kZXggPT09IC0xID8gMCA6IGkgLSBmb3VuZEluZGV4XSkge1xuICAgICAgICBpZiAoZm91bmRJbmRleCA9PT0gLTEpIGZvdW5kSW5kZXggPSBpXG4gICAgICAgIGlmIChpIC0gZm91bmRJbmRleCArIDEgPT09IHZhbC5sZW5ndGgpIHJldHVybiBieXRlT2Zmc2V0ICsgZm91bmRJbmRleFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm91bmRJbmRleCA9IC0xXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMVxuICB9XG5cbiAgdGhyb3cgbmV3IFR5cGVFcnJvcigndmFsIG11c3QgYmUgc3RyaW5nLCBudW1iZXIgb3IgQnVmZmVyJylcbn1cblxuLy8gYGdldGAgd2lsbCBiZSByZW1vdmVkIGluIE5vZGUgMC4xMytcbkJ1ZmZlci5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gZ2V0IChvZmZzZXQpIHtcbiAgY29uc29sZS5sb2coJy5nZXQoKSBpcyBkZXByZWNhdGVkLiBBY2Nlc3MgdXNpbmcgYXJyYXkgaW5kZXhlcyBpbnN0ZWFkLicpXG4gIHJldHVybiB0aGlzLnJlYWRVSW50OChvZmZzZXQpXG59XG5cbi8vIGBzZXRgIHdpbGwgYmUgcmVtb3ZlZCBpbiBOb2RlIDAuMTMrXG5CdWZmZXIucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIHNldCAodiwgb2Zmc2V0KSB7XG4gIGNvbnNvbGUubG9nKCcuc2V0KCkgaXMgZGVwcmVjYXRlZC4gQWNjZXNzIHVzaW5nIGFycmF5IGluZGV4ZXMgaW5zdGVhZC4nKVxuICByZXR1cm4gdGhpcy53cml0ZVVJbnQ4KHYsIG9mZnNldClcbn1cblxuZnVuY3Rpb24gaGV4V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICBvZmZzZXQgPSBOdW1iZXIob2Zmc2V0KSB8fCAwXG4gIHZhciByZW1haW5pbmcgPSBidWYubGVuZ3RoIC0gb2Zmc2V0XG4gIGlmICghbGVuZ3RoKSB7XG4gICAgbGVuZ3RoID0gcmVtYWluaW5nXG4gIH0gZWxzZSB7XG4gICAgbGVuZ3RoID0gTnVtYmVyKGxlbmd0aClcbiAgICBpZiAobGVuZ3RoID4gcmVtYWluaW5nKSB7XG4gICAgICBsZW5ndGggPSByZW1haW5pbmdcbiAgICB9XG4gIH1cblxuICAvLyBtdXN0IGJlIGFuIGV2ZW4gbnVtYmVyIG9mIGRpZ2l0c1xuICB2YXIgc3RyTGVuID0gc3RyaW5nLmxlbmd0aFxuICBpZiAoc3RyTGVuICUgMiAhPT0gMCkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGhleCBzdHJpbmcnKVxuXG4gIGlmIChsZW5ndGggPiBzdHJMZW4gLyAyKSB7XG4gICAgbGVuZ3RoID0gc3RyTGVuIC8gMlxuICB9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcGFyc2VkID0gcGFyc2VJbnQoc3RyaW5nLnN1YnN0cihpICogMiwgMiksIDE2KVxuICAgIGlmIChpc05hTihwYXJzZWQpKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaGV4IHN0cmluZycpXG4gICAgYnVmW29mZnNldCArIGldID0gcGFyc2VkXG4gIH1cbiAgcmV0dXJuIGlcbn1cblxuZnVuY3Rpb24gdXRmOFdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIodXRmOFRvQnl0ZXMoc3RyaW5nLCBidWYubGVuZ3RoIC0gb2Zmc2V0KSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gYXNjaWlXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKGFzY2lpVG9CeXRlcyhzdHJpbmcpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBiaW5hcnlXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBhc2NpaVdyaXRlKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gYmFzZTY0V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcihiYXNlNjRUb0J5dGVzKHN0cmluZyksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIHVjczJXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKHV0ZjE2bGVUb0J5dGVzKHN0cmluZywgYnVmLmxlbmd0aCAtIG9mZnNldCksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiB3cml0ZSAoc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCwgZW5jb2RpbmcpIHtcbiAgLy8gQnVmZmVyI3dyaXRlKHN0cmluZylcbiAgaWYgKG9mZnNldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZW5jb2RpbmcgPSAndXRmOCdcbiAgICBsZW5ndGggPSB0aGlzLmxlbmd0aFxuICAgIG9mZnNldCA9IDBcbiAgLy8gQnVmZmVyI3dyaXRlKHN0cmluZywgZW5jb2RpbmcpXG4gIH0gZWxzZSBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQgJiYgdHlwZW9mIG9mZnNldCA9PT0gJ3N0cmluZycpIHtcbiAgICBlbmNvZGluZyA9IG9mZnNldFxuICAgIGxlbmd0aCA9IHRoaXMubGVuZ3RoXG4gICAgb2Zmc2V0ID0gMFxuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nLCBvZmZzZXRbLCBsZW5ndGhdWywgZW5jb2RpbmddKVxuICB9IGVsc2UgaWYgKGlzRmluaXRlKG9mZnNldCkpIHtcbiAgICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gICAgaWYgKGlzRmluaXRlKGxlbmd0aCkpIHtcbiAgICAgIGxlbmd0aCA9IGxlbmd0aCB8IDBcbiAgICAgIGlmIChlbmNvZGluZyA9PT0gdW5kZWZpbmVkKSBlbmNvZGluZyA9ICd1dGY4J1xuICAgIH0gZWxzZSB7XG4gICAgICBlbmNvZGluZyA9IGxlbmd0aFxuICAgICAgbGVuZ3RoID0gdW5kZWZpbmVkXG4gICAgfVxuICAvLyBsZWdhY3kgd3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0LCBsZW5ndGgpIC0gcmVtb3ZlIGluIHYwLjEzXG4gIH0gZWxzZSB7XG4gICAgdmFyIHN3YXAgPSBlbmNvZGluZ1xuICAgIGVuY29kaW5nID0gb2Zmc2V0XG4gICAgb2Zmc2V0ID0gbGVuZ3RoIHwgMFxuICAgIGxlbmd0aCA9IHN3YXBcbiAgfVxuXG4gIHZhciByZW1haW5pbmcgPSB0aGlzLmxlbmd0aCAtIG9mZnNldFxuICBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQgfHwgbGVuZ3RoID4gcmVtYWluaW5nKSBsZW5ndGggPSByZW1haW5pbmdcblxuICBpZiAoKHN0cmluZy5sZW5ndGggPiAwICYmIChsZW5ndGggPCAwIHx8IG9mZnNldCA8IDApKSB8fCBvZmZzZXQgPiB0aGlzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdhdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcycpXG4gIH1cblxuICBpZiAoIWVuY29kaW5nKSBlbmNvZGluZyA9ICd1dGY4J1xuXG4gIHZhciBsb3dlcmVkQ2FzZSA9IGZhbHNlXG4gIGZvciAoOzspIHtcbiAgICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgICBjYXNlICdoZXgnOlxuICAgICAgICByZXR1cm4gaGV4V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAndXRmOCc6XG4gICAgICBjYXNlICd1dGYtOCc6XG4gICAgICAgIHJldHVybiB1dGY4V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAnYXNjaWknOlxuICAgICAgICByZXR1cm4gYXNjaWlXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgICByZXR1cm4gYmluYXJ5V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgICAgLy8gV2FybmluZzogbWF4TGVuZ3RoIG5vdCB0YWtlbiBpbnRvIGFjY291bnQgaW4gYmFzZTY0V3JpdGVcbiAgICAgICAgcmV0dXJuIGJhc2U2NFdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ3VjczInOlxuICAgICAgY2FzZSAndWNzLTInOlxuICAgICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICAgIHJldHVybiB1Y3MyV3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGxvd2VyZWRDYXNlKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jb2RpbmcpXG4gICAgICAgIGVuY29kaW5nID0gKCcnICsgZW5jb2RpbmcpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgbG93ZXJlZENhc2UgPSB0cnVlXG4gICAgfVxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24gdG9KU09OICgpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQnVmZmVyJyxcbiAgICBkYXRhOiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnIgfHwgdGhpcywgMClcbiAgfVxufVxuXG5mdW5jdGlvbiBiYXNlNjRTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIGlmIChzdGFydCA9PT0gMCAmJiBlbmQgPT09IGJ1Zi5sZW5ndGgpIHtcbiAgICByZXR1cm4gYmFzZTY0LmZyb21CeXRlQXJyYXkoYnVmKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBiYXNlNjQuZnJvbUJ5dGVBcnJheShidWYuc2xpY2Uoc3RhcnQsIGVuZCkpXG4gIH1cbn1cblxuZnVuY3Rpb24gdXRmOFNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIHJlcyA9ICcnXG4gIHZhciB0bXAgPSAnJ1xuICBlbmQgPSBNYXRoLm1pbihidWYubGVuZ3RoLCBlbmQpXG5cbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICBpZiAoYnVmW2ldIDw9IDB4N0YpIHtcbiAgICAgIHJlcyArPSBkZWNvZGVVdGY4Q2hhcih0bXApICsgU3RyaW5nLmZyb21DaGFyQ29kZShidWZbaV0pXG4gICAgICB0bXAgPSAnJ1xuICAgIH0gZWxzZSB7XG4gICAgICB0bXAgKz0gJyUnICsgYnVmW2ldLnRvU3RyaW5nKDE2KVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXMgKyBkZWNvZGVVdGY4Q2hhcih0bXApXG59XG5cbmZ1bmN0aW9uIGFzY2lpU2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgcmV0ID0gJydcbiAgZW5kID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgZW5kKVxuXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgcmV0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldICYgMHg3RilcbiAgfVxuICByZXR1cm4gcmV0XG59XG5cbmZ1bmN0aW9uIGJpbmFyeVNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIHJldCA9ICcnXG4gIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZClcblxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIHJldCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ1ZltpXSlcbiAgfVxuICByZXR1cm4gcmV0XG59XG5cbmZ1bmN0aW9uIGhleFNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIGxlbiA9IGJ1Zi5sZW5ndGhcblxuICBpZiAoIXN0YXJ0IHx8IHN0YXJ0IDwgMCkgc3RhcnQgPSAwXG4gIGlmICghZW5kIHx8IGVuZCA8IDAgfHwgZW5kID4gbGVuKSBlbmQgPSBsZW5cblxuICB2YXIgb3V0ID0gJydcbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICBvdXQgKz0gdG9IZXgoYnVmW2ldKVxuICB9XG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gdXRmMTZsZVNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIGJ5dGVzID0gYnVmLnNsaWNlKHN0YXJ0LCBlbmQpXG4gIHZhciByZXMgPSAnJ1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgcmVzICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZXNbaV0gKyBieXRlc1tpICsgMV0gKiAyNTYpXG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5CdWZmZXIucHJvdG90eXBlLnNsaWNlID0gZnVuY3Rpb24gc2xpY2UgKHN0YXJ0LCBlbmQpIHtcbiAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoXG4gIHN0YXJ0ID0gfn5zdGFydFxuICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZCA/IGxlbiA6IH5+ZW5kXG5cbiAgaWYgKHN0YXJ0IDwgMCkge1xuICAgIHN0YXJ0ICs9IGxlblxuICAgIGlmIChzdGFydCA8IDApIHN0YXJ0ID0gMFxuICB9IGVsc2UgaWYgKHN0YXJ0ID4gbGVuKSB7XG4gICAgc3RhcnQgPSBsZW5cbiAgfVxuXG4gIGlmIChlbmQgPCAwKSB7XG4gICAgZW5kICs9IGxlblxuICAgIGlmIChlbmQgPCAwKSBlbmQgPSAwXG4gIH0gZWxzZSBpZiAoZW5kID4gbGVuKSB7XG4gICAgZW5kID0gbGVuXG4gIH1cblxuICBpZiAoZW5kIDwgc3RhcnQpIGVuZCA9IHN0YXJ0XG5cbiAgdmFyIG5ld0J1ZlxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICBuZXdCdWYgPSBCdWZmZXIuX2F1Z21lbnQodGhpcy5zdWJhcnJheShzdGFydCwgZW5kKSlcbiAgfSBlbHNlIHtcbiAgICB2YXIgc2xpY2VMZW4gPSBlbmQgLSBzdGFydFxuICAgIG5ld0J1ZiA9IG5ldyBCdWZmZXIoc2xpY2VMZW4sIHVuZGVmaW5lZClcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNsaWNlTGVuOyBpKyspIHtcbiAgICAgIG5ld0J1ZltpXSA9IHRoaXNbaSArIHN0YXJ0XVxuICAgIH1cbiAgfVxuXG4gIGlmIChuZXdCdWYubGVuZ3RoKSBuZXdCdWYucGFyZW50ID0gdGhpcy5wYXJlbnQgfHwgdGhpc1xuXG4gIHJldHVybiBuZXdCdWZcbn1cblxuLypcbiAqIE5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgYnVmZmVyIGlzbid0IHRyeWluZyB0byB3cml0ZSBvdXQgb2YgYm91bmRzLlxuICovXG5mdW5jdGlvbiBjaGVja09mZnNldCAob2Zmc2V0LCBleHQsIGxlbmd0aCkge1xuICBpZiAoKG9mZnNldCAlIDEpICE9PSAwIHx8IG9mZnNldCA8IDApIHRocm93IG5ldyBSYW5nZUVycm9yKCdvZmZzZXQgaXMgbm90IHVpbnQnKVxuICBpZiAob2Zmc2V0ICsgZXh0ID4gbGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVHJ5aW5nIHRvIGFjY2VzcyBiZXlvbmQgYnVmZmVyIGxlbmd0aCcpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnRMRSA9IGZ1bmN0aW9uIHJlYWRVSW50TEUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcblxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXRdXG4gIHZhciBtdWwgPSAxXG4gIHZhciBpID0gMFxuICB3aGlsZSAoKytpIDwgYnl0ZUxlbmd0aCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIGldICogbXVsXG4gIH1cblxuICByZXR1cm4gdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnRCRSA9IGZ1bmN0aW9uIHJlYWRVSW50QkUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG4gIH1cblxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXQgKyAtLWJ5dGVMZW5ndGhdXG4gIHZhciBtdWwgPSAxXG4gIHdoaWxlIChieXRlTGVuZ3RoID4gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIC0tYnl0ZUxlbmd0aF0gKiBtdWxcbiAgfVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDggPSBmdW5jdGlvbiByZWFkVUludDggKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAxLCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIHRoaXNbb2Zmc2V0XVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MTZMRSA9IGZ1bmN0aW9uIHJlYWRVSW50MTZMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gdGhpc1tvZmZzZXRdIHwgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDE2QkUgPSBmdW5jdGlvbiByZWFkVUludDE2QkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuICh0aGlzW29mZnNldF0gPDwgOCkgfCB0aGlzW29mZnNldCArIDFdXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQzMkxFID0gZnVuY3Rpb24gcmVhZFVJbnQzMkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICgodGhpc1tvZmZzZXRdKSB8XG4gICAgICAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KSB8XG4gICAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCAxNikpICtcbiAgICAgICh0aGlzW29mZnNldCArIDNdICogMHgxMDAwMDAwKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MzJCRSA9IGZ1bmN0aW9uIHJlYWRVSW50MzJCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAodGhpc1tvZmZzZXRdICogMHgxMDAwMDAwKSArXG4gICAgKCh0aGlzW29mZnNldCArIDFdIDw8IDE2KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgOCkgfFxuICAgIHRoaXNbb2Zmc2V0ICsgM10pXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludExFID0gZnVuY3Rpb24gcmVhZEludExFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG5cbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0XVxuICB2YXIgbXVsID0gMVxuICB2YXIgaSA9IDBcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyBpXSAqIG11bFxuICB9XG4gIG11bCAqPSAweDgwXG5cbiAgaWYgKHZhbCA+PSBtdWwpIHZhbCAtPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aClcblxuICByZXR1cm4gdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludEJFID0gZnVuY3Rpb24gcmVhZEludEJFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG5cbiAgdmFyIGkgPSBieXRlTGVuZ3RoXG4gIHZhciBtdWwgPSAxXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldCArIC0taV1cbiAgd2hpbGUgKGkgPiAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgLS1pXSAqIG11bFxuICB9XG4gIG11bCAqPSAweDgwXG5cbiAgaWYgKHZhbCA+PSBtdWwpIHZhbCAtPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aClcblxuICByZXR1cm4gdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDggPSBmdW5jdGlvbiByZWFkSW50OCAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDEsIHRoaXMubGVuZ3RoKVxuICBpZiAoISh0aGlzW29mZnNldF0gJiAweDgwKSkgcmV0dXJuICh0aGlzW29mZnNldF0pXG4gIHJldHVybiAoKDB4ZmYgLSB0aGlzW29mZnNldF0gKyAxKSAqIC0xKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQxNkxFID0gZnVuY3Rpb24gcmVhZEludDE2TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0XSB8ICh0aGlzW29mZnNldCArIDFdIDw8IDgpXG4gIHJldHVybiAodmFsICYgMHg4MDAwKSA/IHZhbCB8IDB4RkZGRjAwMDAgOiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MTZCRSA9IGZ1bmN0aW9uIHJlYWRJbnQxNkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldCArIDFdIHwgKHRoaXNbb2Zmc2V0XSA8PCA4KVxuICByZXR1cm4gKHZhbCAmIDB4ODAwMCkgPyB2YWwgfCAweEZGRkYwMDAwIDogdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDMyTEUgPSBmdW5jdGlvbiByZWFkSW50MzJMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAodGhpc1tvZmZzZXRdKSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOCkgfFxuICAgICh0aGlzW29mZnNldCArIDJdIDw8IDE2KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgM10gPDwgMjQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDMyQkUgPSBmdW5jdGlvbiByZWFkSW50MzJCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAodGhpc1tvZmZzZXRdIDw8IDI0KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgMTYpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCA4KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgM10pXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEZsb2F0TEUgPSBmdW5jdGlvbiByZWFkRmxvYXRMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgdHJ1ZSwgMjMsIDQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEZsb2F0QkUgPSBmdW5jdGlvbiByZWFkRmxvYXRCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgZmFsc2UsIDIzLCA0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWREb3VibGVMRSA9IGZ1bmN0aW9uIHJlYWREb3VibGVMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDgsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgdHJ1ZSwgNTIsIDgpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZERvdWJsZUJFID0gZnVuY3Rpb24gcmVhZERvdWJsZUJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgOCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCBmYWxzZSwgNTIsIDgpXG59XG5cbmZ1bmN0aW9uIGNoZWNrSW50IChidWYsIHZhbHVlLCBvZmZzZXQsIGV4dCwgbWF4LCBtaW4pIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYnVmKSkgdGhyb3cgbmV3IFR5cGVFcnJvcignYnVmZmVyIG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UnKVxuICBpZiAodmFsdWUgPiBtYXggfHwgdmFsdWUgPCBtaW4pIHRocm93IG5ldyBSYW5nZUVycm9yKCd2YWx1ZSBpcyBvdXQgb2YgYm91bmRzJylcbiAgaWYgKG9mZnNldCArIGV4dCA+IGJ1Zi5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdpbmRleCBvdXQgb2YgcmFuZ2UnKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludExFID0gZnVuY3Rpb24gd3JpdGVVSW50TEUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKSwgMClcblxuICB2YXIgbXVsID0gMVxuICB2YXIgaSA9IDBcbiAgdGhpc1tvZmZzZXRdID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICh2YWx1ZSAvIG11bCkgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludEJFID0gZnVuY3Rpb24gd3JpdGVVSW50QkUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKSwgMClcblxuICB2YXIgaSA9IGJ5dGVMZW5ndGggLSAxXG4gIHZhciBtdWwgPSAxXG4gIHRoaXNbb2Zmc2V0ICsgaV0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKC0taSA+PSAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICh2YWx1ZSAvIG11bCkgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDggPSBmdW5jdGlvbiB3cml0ZVVJbnQ4ICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDEsIDB4ZmYsIDApXG4gIGlmICghQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHZhbHVlID0gTWF0aC5mbG9vcih2YWx1ZSlcbiAgdGhpc1tvZmZzZXRdID0gdmFsdWVcbiAgcmV0dXJuIG9mZnNldCArIDFcbn1cblxuZnVuY3Rpb24gb2JqZWN0V3JpdGVVSW50MTYgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuKSB7XG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZmZmICsgdmFsdWUgKyAxXG4gIGZvciAodmFyIGkgPSAwLCBqID0gTWF0aC5taW4oYnVmLmxlbmd0aCAtIG9mZnNldCwgMik7IGkgPCBqOyBpKyspIHtcbiAgICBidWZbb2Zmc2V0ICsgaV0gPSAodmFsdWUgJiAoMHhmZiA8PCAoOCAqIChsaXR0bGVFbmRpYW4gPyBpIDogMSAtIGkpKSkpID4+PlxuICAgICAgKGxpdHRsZUVuZGlhbiA/IGkgOiAxIC0gaSkgKiA4XG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQxNkxFID0gZnVuY3Rpb24gd3JpdGVVSW50MTZMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweGZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9IHZhbHVlXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MTZCRSA9IGZ1bmN0aW9uIHdyaXRlVUludDE2QkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHhmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9IHZhbHVlXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuZnVuY3Rpb24gb2JqZWN0V3JpdGVVSW50MzIgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuKSB7XG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZmZmZmZmZiArIHZhbHVlICsgMVxuICBmb3IgKHZhciBpID0gMCwgaiA9IE1hdGgubWluKGJ1Zi5sZW5ndGggLSBvZmZzZXQsIDQpOyBpIDwgajsgaSsrKSB7XG4gICAgYnVmW29mZnNldCArIGldID0gKHZhbHVlID4+PiAobGl0dGxlRW5kaWFuID8gaSA6IDMgLSBpKSAqIDgpICYgMHhmZlxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MzJMRSA9IGZ1bmN0aW9uIHdyaXRlVUludDMyTEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHhmZmZmZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9ICh2YWx1ZSA+Pj4gMjQpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldF0gPSB2YWx1ZVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQzMkJFID0gZnVuY3Rpb24gd3JpdGVVSW50MzJCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweGZmZmZmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDI0KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDE2KVxuICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9IHZhbHVlXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludExFID0gZnVuY3Rpb24gd3JpdGVJbnRMRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgdmFyIGxpbWl0ID0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGggLSAxKVxuXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbGltaXQgLSAxLCAtbGltaXQpXG4gIH1cblxuICB2YXIgaSA9IDBcbiAgdmFyIG11bCA9IDFcbiAgdmFyIHN1YiA9IHZhbHVlIDwgMCA/IDEgOiAwXG4gIHRoaXNbb2Zmc2V0XSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoKytpIDwgYnl0ZUxlbmd0aCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAoKHZhbHVlIC8gbXVsKSA+PiAwKSAtIHN1YiAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnRCRSA9IGZ1bmN0aW9uIHdyaXRlSW50QkUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIHZhciBsaW1pdCA9IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoIC0gMSlcblxuICAgIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIGxpbWl0IC0gMSwgLWxpbWl0KVxuICB9XG5cbiAgdmFyIGkgPSBieXRlTGVuZ3RoIC0gMVxuICB2YXIgbXVsID0gMVxuICB2YXIgc3ViID0gdmFsdWUgPCAwID8gMSA6IDBcbiAgdGhpc1tvZmZzZXQgKyBpXSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoLS1pID49IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB0aGlzW29mZnNldCArIGldID0gKCh2YWx1ZSAvIG11bCkgPj4gMCkgLSBzdWIgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50OCA9IGZ1bmN0aW9uIHdyaXRlSW50OCAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAxLCAweDdmLCAtMHg4MClcbiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkgdmFsdWUgPSBNYXRoLmZsb29yKHZhbHVlKVxuICBpZiAodmFsdWUgPCAwKSB2YWx1ZSA9IDB4ZmYgKyB2YWx1ZSArIDFcbiAgdGhpc1tvZmZzZXRdID0gdmFsdWVcbiAgcmV0dXJuIG9mZnNldCArIDFcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDE2TEUgPSBmdW5jdGlvbiB3cml0ZUludDE2TEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHg3ZmZmLCAtMHg4MDAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSB2YWx1ZVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MTZCRSA9IGZ1bmN0aW9uIHdyaXRlSW50MTZCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweDdmZmYsIC0weDgwMDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDFdID0gdmFsdWVcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MzJMRSA9IGZ1bmN0aW9uIHdyaXRlSW50MzJMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweDdmZmZmZmZmLCAtMHg4MDAwMDAwMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gdmFsdWVcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDE2KVxuICAgIHRoaXNbb2Zmc2V0ICsgM10gPSAodmFsdWUgPj4+IDI0KVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDMyQkUgPSBmdW5jdGlvbiB3cml0ZUludDMyQkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHg3ZmZmZmZmZiwgLTB4ODAwMDAwMDApXG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZmZmZmZmZiArIHZhbHVlICsgMVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDI0KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDE2KVxuICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9IHZhbHVlXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuZnVuY3Rpb24gY2hlY2tJRUVFNzU0IChidWYsIHZhbHVlLCBvZmZzZXQsIGV4dCwgbWF4LCBtaW4pIHtcbiAgaWYgKHZhbHVlID4gbWF4IHx8IHZhbHVlIDwgbWluKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcigndmFsdWUgaXMgb3V0IG9mIGJvdW5kcycpXG4gIGlmIChvZmZzZXQgKyBleHQgPiBidWYubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignaW5kZXggb3V0IG9mIHJhbmdlJylcbiAgaWYgKG9mZnNldCA8IDApIHRocm93IG5ldyBSYW5nZUVycm9yKCdpbmRleCBvdXQgb2YgcmFuZ2UnKVxufVxuXG5mdW5jdGlvbiB3cml0ZUZsb2F0IChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIGNoZWNrSUVFRTc1NChidWYsIHZhbHVlLCBvZmZzZXQsIDQsIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzgsIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4KVxuICB9XG4gIGllZWU3NTQud3JpdGUoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIDIzLCA0KVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRmxvYXRMRSA9IGZ1bmN0aW9uIHdyaXRlRmxvYXRMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRmxvYXQodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSwgbm9Bc3NlcnQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVGbG9hdEJFID0gZnVuY3Rpb24gd3JpdGVGbG9hdEJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVGbG9hdCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSwgbm9Bc3NlcnQpXG59XG5cbmZ1bmN0aW9uIHdyaXRlRG91YmxlIChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIGNoZWNrSUVFRTc1NChidWYsIHZhbHVlLCBvZmZzZXQsIDgsIDEuNzk3NjkzMTM0ODYyMzE1N0UrMzA4LCAtMS43OTc2OTMxMzQ4NjIzMTU3RSszMDgpXG4gIH1cbiAgaWVlZTc1NC53cml0ZShidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgNTIsIDgpXG4gIHJldHVybiBvZmZzZXQgKyA4XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVEb3VibGVMRSA9IGZ1bmN0aW9uIHdyaXRlRG91YmxlTEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZURvdWJsZSh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlLCBub0Fzc2VydClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZURvdWJsZUJFID0gZnVuY3Rpb24gd3JpdGVEb3VibGVCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlLCBub0Fzc2VydClcbn1cblxuLy8gY29weSh0YXJnZXRCdWZmZXIsIHRhcmdldFN0YXJ0PTAsIHNvdXJjZVN0YXJ0PTAsIHNvdXJjZUVuZD1idWZmZXIubGVuZ3RoKVxuQnVmZmVyLnByb3RvdHlwZS5jb3B5ID0gZnVuY3Rpb24gY29weSAodGFyZ2V0LCB0YXJnZXRTdGFydCwgc3RhcnQsIGVuZCkge1xuICBpZiAoIXN0YXJ0KSBzdGFydCA9IDBcbiAgaWYgKCFlbmQgJiYgZW5kICE9PSAwKSBlbmQgPSB0aGlzLmxlbmd0aFxuICBpZiAodGFyZ2V0U3RhcnQgPj0gdGFyZ2V0Lmxlbmd0aCkgdGFyZ2V0U3RhcnQgPSB0YXJnZXQubGVuZ3RoXG4gIGlmICghdGFyZ2V0U3RhcnQpIHRhcmdldFN0YXJ0ID0gMFxuICBpZiAoZW5kID4gMCAmJiBlbmQgPCBzdGFydCkgZW5kID0gc3RhcnRcblxuICAvLyBDb3B5IDAgYnl0ZXM7IHdlJ3JlIGRvbmVcbiAgaWYgKGVuZCA9PT0gc3RhcnQpIHJldHVybiAwXG4gIGlmICh0YXJnZXQubGVuZ3RoID09PSAwIHx8IHRoaXMubGVuZ3RoID09PSAwKSByZXR1cm4gMFxuXG4gIC8vIEZhdGFsIGVycm9yIGNvbmRpdGlvbnNcbiAgaWYgKHRhcmdldFN0YXJ0IDwgMCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCd0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzJylcbiAgfVxuICBpZiAoc3RhcnQgPCAwIHx8IHN0YXJ0ID49IHRoaXMubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignc291cmNlU3RhcnQgb3V0IG9mIGJvdW5kcycpXG4gIGlmIChlbmQgPCAwKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignc291cmNlRW5kIG91dCBvZiBib3VuZHMnKVxuXG4gIC8vIEFyZSB3ZSBvb2I/XG4gIGlmIChlbmQgPiB0aGlzLmxlbmd0aCkgZW5kID0gdGhpcy5sZW5ndGhcbiAgaWYgKHRhcmdldC5sZW5ndGggLSB0YXJnZXRTdGFydCA8IGVuZCAtIHN0YXJ0KSB7XG4gICAgZW5kID0gdGFyZ2V0Lmxlbmd0aCAtIHRhcmdldFN0YXJ0ICsgc3RhcnRcbiAgfVxuXG4gIHZhciBsZW4gPSBlbmQgLSBzdGFydFxuXG4gIGlmIChsZW4gPCAxMDAwIHx8ICFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIHRhcmdldFtpICsgdGFyZ2V0U3RhcnRdID0gdGhpc1tpICsgc3RhcnRdXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHRhcmdldC5fc2V0KHRoaXMuc3ViYXJyYXkoc3RhcnQsIHN0YXJ0ICsgbGVuKSwgdGFyZ2V0U3RhcnQpXG4gIH1cblxuICByZXR1cm4gbGVuXG59XG5cbi8vIGZpbGwodmFsdWUsIHN0YXJ0PTAsIGVuZD1idWZmZXIubGVuZ3RoKVxuQnVmZmVyLnByb3RvdHlwZS5maWxsID0gZnVuY3Rpb24gZmlsbCAodmFsdWUsIHN0YXJ0LCBlbmQpIHtcbiAgaWYgKCF2YWx1ZSkgdmFsdWUgPSAwXG4gIGlmICghc3RhcnQpIHN0YXJ0ID0gMFxuICBpZiAoIWVuZCkgZW5kID0gdGhpcy5sZW5ndGhcblxuICBpZiAoZW5kIDwgc3RhcnQpIHRocm93IG5ldyBSYW5nZUVycm9yKCdlbmQgPCBzdGFydCcpXG5cbiAgLy8gRmlsbCAwIGJ5dGVzOyB3ZSdyZSBkb25lXG4gIGlmIChlbmQgPT09IHN0YXJ0KSByZXR1cm5cbiAgaWYgKHRoaXMubGVuZ3RoID09PSAwKSByZXR1cm5cblxuICBpZiAoc3RhcnQgPCAwIHx8IHN0YXJ0ID49IHRoaXMubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignc3RhcnQgb3V0IG9mIGJvdW5kcycpXG4gIGlmIChlbmQgPCAwIHx8IGVuZCA+IHRoaXMubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignZW5kIG91dCBvZiBib3VuZHMnKVxuXG4gIHZhciBpXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgICAgdGhpc1tpXSA9IHZhbHVlXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciBieXRlcyA9IHV0ZjhUb0J5dGVzKHZhbHVlLnRvU3RyaW5nKCkpXG4gICAgdmFyIGxlbiA9IGJ5dGVzLmxlbmd0aFxuICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICAgIHRoaXNbaV0gPSBieXRlc1tpICUgbGVuXVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0aGlzXG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBgQXJyYXlCdWZmZXJgIHdpdGggdGhlICpjb3BpZWQqIG1lbW9yeSBvZiB0aGUgYnVmZmVyIGluc3RhbmNlLlxuICogQWRkZWQgaW4gTm9kZSAwLjEyLiBPbmx5IGF2YWlsYWJsZSBpbiBicm93c2VycyB0aGF0IHN1cHBvcnQgQXJyYXlCdWZmZXIuXG4gKi9cbkJ1ZmZlci5wcm90b3R5cGUudG9BcnJheUJ1ZmZlciA9IGZ1bmN0aW9uIHRvQXJyYXlCdWZmZXIgKCkge1xuICBpZiAodHlwZW9mIFVpbnQ4QXJyYXkgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgICByZXR1cm4gKG5ldyBCdWZmZXIodGhpcykpLmJ1ZmZlclxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkodGhpcy5sZW5ndGgpXG4gICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gYnVmLmxlbmd0aDsgaSA8IGxlbjsgaSArPSAxKSB7XG4gICAgICAgIGJ1ZltpXSA9IHRoaXNbaV1cbiAgICAgIH1cbiAgICAgIHJldHVybiBidWYuYnVmZmVyXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0J1ZmZlci50b0FycmF5QnVmZmVyIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyJylcbiAgfVxufVxuXG4vLyBIRUxQRVIgRlVOQ1RJT05TXG4vLyA9PT09PT09PT09PT09PT09XG5cbnZhciBCUCA9IEJ1ZmZlci5wcm90b3R5cGVcblxuLyoqXG4gKiBBdWdtZW50IGEgVWludDhBcnJheSAqaW5zdGFuY2UqIChub3QgdGhlIFVpbnQ4QXJyYXkgY2xhc3MhKSB3aXRoIEJ1ZmZlciBtZXRob2RzXG4gKi9cbkJ1ZmZlci5fYXVnbWVudCA9IGZ1bmN0aW9uIF9hdWdtZW50IChhcnIpIHtcbiAgYXJyLmNvbnN0cnVjdG9yID0gQnVmZmVyXG4gIGFyci5faXNCdWZmZXIgPSB0cnVlXG5cbiAgLy8gc2F2ZSByZWZlcmVuY2UgdG8gb3JpZ2luYWwgVWludDhBcnJheSBzZXQgbWV0aG9kIGJlZm9yZSBvdmVyd3JpdGluZ1xuICBhcnIuX3NldCA9IGFyci5zZXRcblxuICAvLyBkZXByZWNhdGVkLCB3aWxsIGJlIHJlbW92ZWQgaW4gbm9kZSAwLjEzK1xuICBhcnIuZ2V0ID0gQlAuZ2V0XG4gIGFyci5zZXQgPSBCUC5zZXRcblxuICBhcnIud3JpdGUgPSBCUC53cml0ZVxuICBhcnIudG9TdHJpbmcgPSBCUC50b1N0cmluZ1xuICBhcnIudG9Mb2NhbGVTdHJpbmcgPSBCUC50b1N0cmluZ1xuICBhcnIudG9KU09OID0gQlAudG9KU09OXG4gIGFyci5lcXVhbHMgPSBCUC5lcXVhbHNcbiAgYXJyLmNvbXBhcmUgPSBCUC5jb21wYXJlXG4gIGFyci5pbmRleE9mID0gQlAuaW5kZXhPZlxuICBhcnIuY29weSA9IEJQLmNvcHlcbiAgYXJyLnNsaWNlID0gQlAuc2xpY2VcbiAgYXJyLnJlYWRVSW50TEUgPSBCUC5yZWFkVUludExFXG4gIGFyci5yZWFkVUludEJFID0gQlAucmVhZFVJbnRCRVxuICBhcnIucmVhZFVJbnQ4ID0gQlAucmVhZFVJbnQ4XG4gIGFyci5yZWFkVUludDE2TEUgPSBCUC5yZWFkVUludDE2TEVcbiAgYXJyLnJlYWRVSW50MTZCRSA9IEJQLnJlYWRVSW50MTZCRVxuICBhcnIucmVhZFVJbnQzMkxFID0gQlAucmVhZFVJbnQzMkxFXG4gIGFyci5yZWFkVUludDMyQkUgPSBCUC5yZWFkVUludDMyQkVcbiAgYXJyLnJlYWRJbnRMRSA9IEJQLnJlYWRJbnRMRVxuICBhcnIucmVhZEludEJFID0gQlAucmVhZEludEJFXG4gIGFyci5yZWFkSW50OCA9IEJQLnJlYWRJbnQ4XG4gIGFyci5yZWFkSW50MTZMRSA9IEJQLnJlYWRJbnQxNkxFXG4gIGFyci5yZWFkSW50MTZCRSA9IEJQLnJlYWRJbnQxNkJFXG4gIGFyci5yZWFkSW50MzJMRSA9IEJQLnJlYWRJbnQzMkxFXG4gIGFyci5yZWFkSW50MzJCRSA9IEJQLnJlYWRJbnQzMkJFXG4gIGFyci5yZWFkRmxvYXRMRSA9IEJQLnJlYWRGbG9hdExFXG4gIGFyci5yZWFkRmxvYXRCRSA9IEJQLnJlYWRGbG9hdEJFXG4gIGFyci5yZWFkRG91YmxlTEUgPSBCUC5yZWFkRG91YmxlTEVcbiAgYXJyLnJlYWREb3VibGVCRSA9IEJQLnJlYWREb3VibGVCRVxuICBhcnIud3JpdGVVSW50OCA9IEJQLndyaXRlVUludDhcbiAgYXJyLndyaXRlVUludExFID0gQlAud3JpdGVVSW50TEVcbiAgYXJyLndyaXRlVUludEJFID0gQlAud3JpdGVVSW50QkVcbiAgYXJyLndyaXRlVUludDE2TEUgPSBCUC53cml0ZVVJbnQxNkxFXG4gIGFyci53cml0ZVVJbnQxNkJFID0gQlAud3JpdGVVSW50MTZCRVxuICBhcnIud3JpdGVVSW50MzJMRSA9IEJQLndyaXRlVUludDMyTEVcbiAgYXJyLndyaXRlVUludDMyQkUgPSBCUC53cml0ZVVJbnQzMkJFXG4gIGFyci53cml0ZUludExFID0gQlAud3JpdGVJbnRMRVxuICBhcnIud3JpdGVJbnRCRSA9IEJQLndyaXRlSW50QkVcbiAgYXJyLndyaXRlSW50OCA9IEJQLndyaXRlSW50OFxuICBhcnIud3JpdGVJbnQxNkxFID0gQlAud3JpdGVJbnQxNkxFXG4gIGFyci53cml0ZUludDE2QkUgPSBCUC53cml0ZUludDE2QkVcbiAgYXJyLndyaXRlSW50MzJMRSA9IEJQLndyaXRlSW50MzJMRVxuICBhcnIud3JpdGVJbnQzMkJFID0gQlAud3JpdGVJbnQzMkJFXG4gIGFyci53cml0ZUZsb2F0TEUgPSBCUC53cml0ZUZsb2F0TEVcbiAgYXJyLndyaXRlRmxvYXRCRSA9IEJQLndyaXRlRmxvYXRCRVxuICBhcnIud3JpdGVEb3VibGVMRSA9IEJQLndyaXRlRG91YmxlTEVcbiAgYXJyLndyaXRlRG91YmxlQkUgPSBCUC53cml0ZURvdWJsZUJFXG4gIGFyci5maWxsID0gQlAuZmlsbFxuICBhcnIuaW5zcGVjdCA9IEJQLmluc3BlY3RcbiAgYXJyLnRvQXJyYXlCdWZmZXIgPSBCUC50b0FycmF5QnVmZmVyXG5cbiAgcmV0dXJuIGFyclxufVxuXG52YXIgSU5WQUxJRF9CQVNFNjRfUkUgPSAvW14rXFwvMC05QS16XFwtXS9nXG5cbmZ1bmN0aW9uIGJhc2U2NGNsZWFuIChzdHIpIHtcbiAgLy8gTm9kZSBzdHJpcHMgb3V0IGludmFsaWQgY2hhcmFjdGVycyBsaWtlIFxcbiBhbmQgXFx0IGZyb20gdGhlIHN0cmluZywgYmFzZTY0LWpzIGRvZXMgbm90XG4gIHN0ciA9IHN0cmluZ3RyaW0oc3RyKS5yZXBsYWNlKElOVkFMSURfQkFTRTY0X1JFLCAnJylcbiAgLy8gTm9kZSBjb252ZXJ0cyBzdHJpbmdzIHdpdGggbGVuZ3RoIDwgMiB0byAnJ1xuICBpZiAoc3RyLmxlbmd0aCA8IDIpIHJldHVybiAnJ1xuICAvLyBOb2RlIGFsbG93cyBmb3Igbm9uLXBhZGRlZCBiYXNlNjQgc3RyaW5ncyAobWlzc2luZyB0cmFpbGluZyA9PT0pLCBiYXNlNjQtanMgZG9lcyBub3RcbiAgd2hpbGUgKHN0ci5sZW5ndGggJSA0ICE9PSAwKSB7XG4gICAgc3RyID0gc3RyICsgJz0nXG4gIH1cbiAgcmV0dXJuIHN0clxufVxuXG5mdW5jdGlvbiBzdHJpbmd0cmltIChzdHIpIHtcbiAgaWYgKHN0ci50cmltKSByZXR1cm4gc3RyLnRyaW0oKVxuICByZXR1cm4gc3RyLnJlcGxhY2UoL15cXHMrfFxccyskL2csICcnKVxufVxuXG5mdW5jdGlvbiB0b0hleCAobikge1xuICBpZiAobiA8IDE2KSByZXR1cm4gJzAnICsgbi50b1N0cmluZygxNilcbiAgcmV0dXJuIG4udG9TdHJpbmcoMTYpXG59XG5cbmZ1bmN0aW9uIHV0ZjhUb0J5dGVzIChzdHJpbmcsIHVuaXRzKSB7XG4gIHVuaXRzID0gdW5pdHMgfHwgSW5maW5pdHlcbiAgdmFyIGNvZGVQb2ludFxuICB2YXIgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aFxuICB2YXIgbGVhZFN1cnJvZ2F0ZSA9IG51bGxcbiAgdmFyIGJ5dGVzID0gW11cbiAgdmFyIGkgPSAwXG5cbiAgZm9yICg7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgIGNvZGVQb2ludCA9IHN0cmluZy5jaGFyQ29kZUF0KGkpXG5cbiAgICAvLyBpcyBzdXJyb2dhdGUgY29tcG9uZW50XG4gICAgaWYgKGNvZGVQb2ludCA+IDB4RDdGRiAmJiBjb2RlUG9pbnQgPCAweEUwMDApIHtcbiAgICAgIC8vIGxhc3QgY2hhciB3YXMgYSBsZWFkXG4gICAgICBpZiAobGVhZFN1cnJvZ2F0ZSkge1xuICAgICAgICAvLyAyIGxlYWRzIGluIGEgcm93XG4gICAgICAgIGlmIChjb2RlUG9pbnQgPCAweERDMDApIHtcbiAgICAgICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICAgICAgICBsZWFkU3Vycm9nYXRlID0gY29kZVBvaW50XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyB2YWxpZCBzdXJyb2dhdGUgcGFpclxuICAgICAgICAgIGNvZGVQb2ludCA9IGxlYWRTdXJyb2dhdGUgLSAweEQ4MDAgPDwgMTAgfCBjb2RlUG9pbnQgLSAweERDMDAgfCAweDEwMDAwXG4gICAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IG51bGxcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gbm8gbGVhZCB5ZXRcblxuICAgICAgICBpZiAoY29kZVBvaW50ID4gMHhEQkZGKSB7XG4gICAgICAgICAgLy8gdW5leHBlY3RlZCB0cmFpbFxuICAgICAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH0gZWxzZSBpZiAoaSArIDEgPT09IGxlbmd0aCkge1xuICAgICAgICAgIC8vIHVucGFpcmVkIGxlYWRcbiAgICAgICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHZhbGlkIGxlYWRcbiAgICAgICAgICBsZWFkU3Vycm9nYXRlID0gY29kZVBvaW50XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobGVhZFN1cnJvZ2F0ZSkge1xuICAgICAgLy8gdmFsaWQgYm1wIGNoYXIsIGJ1dCBsYXN0IGNoYXIgd2FzIGEgbGVhZFxuICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICBsZWFkU3Vycm9nYXRlID0gbnVsbFxuICAgIH1cblxuICAgIC8vIGVuY29kZSB1dGY4XG4gICAgaWYgKGNvZGVQb2ludCA8IDB4ODApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gMSkgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChjb2RlUG9pbnQpXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPCAweDgwMCkge1xuICAgICAgaWYgKCh1bml0cyAtPSAyKSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHg2IHwgMHhDMCxcbiAgICAgICAgY29kZVBvaW50ICYgMHgzRiB8IDB4ODBcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA8IDB4MTAwMDApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gMykgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChcbiAgICAgICAgY29kZVBvaW50ID4+IDB4QyB8IDB4RTAsXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDYgJiAweDNGIHwgMHg4MCxcbiAgICAgICAgY29kZVBvaW50ICYgMHgzRiB8IDB4ODBcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA8IDB4MjAwMDAwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDQpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDEyIHwgMHhGMCxcbiAgICAgICAgY29kZVBvaW50ID4+IDB4QyAmIDB4M0YgfCAweDgwLFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHg2ICYgMHgzRiB8IDB4ODAsXG4gICAgICAgIGNvZGVQb2ludCAmIDB4M0YgfCAweDgwXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb2RlIHBvaW50JylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYnl0ZXNcbn1cblxuZnVuY3Rpb24gYXNjaWlUb0J5dGVzIChzdHIpIHtcbiAgdmFyIGJ5dGVBcnJheSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgLy8gTm9kZSdzIGNvZGUgc2VlbXMgdG8gYmUgZG9pbmcgdGhpcyBhbmQgbm90ICYgMHg3Ri4uXG4gICAgYnl0ZUFycmF5LnB1c2goc3RyLmNoYXJDb2RlQXQoaSkgJiAweEZGKVxuICB9XG4gIHJldHVybiBieXRlQXJyYXlcbn1cblxuZnVuY3Rpb24gdXRmMTZsZVRvQnl0ZXMgKHN0ciwgdW5pdHMpIHtcbiAgdmFyIGMsIGhpLCBsb1xuICB2YXIgYnl0ZUFycmF5ID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoKHVuaXRzIC09IDIpIDwgMCkgYnJlYWtcblxuICAgIGMgPSBzdHIuY2hhckNvZGVBdChpKVxuICAgIGhpID0gYyA+PiA4XG4gICAgbG8gPSBjICUgMjU2XG4gICAgYnl0ZUFycmF5LnB1c2gobG8pXG4gICAgYnl0ZUFycmF5LnB1c2goaGkpXG4gIH1cblxuICByZXR1cm4gYnl0ZUFycmF5XG59XG5cbmZ1bmN0aW9uIGJhc2U2NFRvQnl0ZXMgKHN0cikge1xuICByZXR1cm4gYmFzZTY0LnRvQnl0ZUFycmF5KGJhc2U2NGNsZWFuKHN0cikpXG59XG5cbmZ1bmN0aW9uIGJsaXRCdWZmZXIgKHNyYywgZHN0LCBvZmZzZXQsIGxlbmd0aCkge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKChpICsgb2Zmc2V0ID49IGRzdC5sZW5ndGgpIHx8IChpID49IHNyYy5sZW5ndGgpKSBicmVha1xuICAgIGRzdFtpICsgb2Zmc2V0XSA9IHNyY1tpXVxuICB9XG4gIHJldHVybiBpXG59XG5cbmZ1bmN0aW9uIGRlY29kZVV0ZjhDaGFyIChzdHIpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHN0cilcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoMHhGRkZEKSAvLyBVVEYgOCBpbnZhbGlkIGNoYXJcbiAgfVxufVxuIiwidmFyIGxvb2t1cCA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJztcblxuOyhmdW5jdGlvbiAoZXhwb3J0cykge1xuXHQndXNlIHN0cmljdCc7XG5cbiAgdmFyIEFyciA9ICh0eXBlb2YgVWludDhBcnJheSAhPT0gJ3VuZGVmaW5lZCcpXG4gICAgPyBVaW50OEFycmF5XG4gICAgOiBBcnJheVxuXG5cdHZhciBQTFVTICAgPSAnKycuY2hhckNvZGVBdCgwKVxuXHR2YXIgU0xBU0ggID0gJy8nLmNoYXJDb2RlQXQoMClcblx0dmFyIE5VTUJFUiA9ICcwJy5jaGFyQ29kZUF0KDApXG5cdHZhciBMT1dFUiAgPSAnYScuY2hhckNvZGVBdCgwKVxuXHR2YXIgVVBQRVIgID0gJ0EnLmNoYXJDb2RlQXQoMClcblx0dmFyIFBMVVNfVVJMX1NBRkUgPSAnLScuY2hhckNvZGVBdCgwKVxuXHR2YXIgU0xBU0hfVVJMX1NBRkUgPSAnXycuY2hhckNvZGVBdCgwKVxuXG5cdGZ1bmN0aW9uIGRlY29kZSAoZWx0KSB7XG5cdFx0dmFyIGNvZGUgPSBlbHQuY2hhckNvZGVBdCgwKVxuXHRcdGlmIChjb2RlID09PSBQTFVTIHx8XG5cdFx0ICAgIGNvZGUgPT09IFBMVVNfVVJMX1NBRkUpXG5cdFx0XHRyZXR1cm4gNjIgLy8gJysnXG5cdFx0aWYgKGNvZGUgPT09IFNMQVNIIHx8XG5cdFx0ICAgIGNvZGUgPT09IFNMQVNIX1VSTF9TQUZFKVxuXHRcdFx0cmV0dXJuIDYzIC8vICcvJ1xuXHRcdGlmIChjb2RlIDwgTlVNQkVSKVxuXHRcdFx0cmV0dXJuIC0xIC8vbm8gbWF0Y2hcblx0XHRpZiAoY29kZSA8IE5VTUJFUiArIDEwKVxuXHRcdFx0cmV0dXJuIGNvZGUgLSBOVU1CRVIgKyAyNiArIDI2XG5cdFx0aWYgKGNvZGUgPCBVUFBFUiArIDI2KVxuXHRcdFx0cmV0dXJuIGNvZGUgLSBVUFBFUlxuXHRcdGlmIChjb2RlIDwgTE9XRVIgKyAyNilcblx0XHRcdHJldHVybiBjb2RlIC0gTE9XRVIgKyAyNlxuXHR9XG5cblx0ZnVuY3Rpb24gYjY0VG9CeXRlQXJyYXkgKGI2NCkge1xuXHRcdHZhciBpLCBqLCBsLCB0bXAsIHBsYWNlSG9sZGVycywgYXJyXG5cblx0XHRpZiAoYjY0Lmxlbmd0aCAlIDQgPiAwKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQnKVxuXHRcdH1cblxuXHRcdC8vIHRoZSBudW1iZXIgb2YgZXF1YWwgc2lnbnMgKHBsYWNlIGhvbGRlcnMpXG5cdFx0Ly8gaWYgdGhlcmUgYXJlIHR3byBwbGFjZWhvbGRlcnMsIHRoYW4gdGhlIHR3byBjaGFyYWN0ZXJzIGJlZm9yZSBpdFxuXHRcdC8vIHJlcHJlc2VudCBvbmUgYnl0ZVxuXHRcdC8vIGlmIHRoZXJlIGlzIG9ubHkgb25lLCB0aGVuIHRoZSB0aHJlZSBjaGFyYWN0ZXJzIGJlZm9yZSBpdCByZXByZXNlbnQgMiBieXRlc1xuXHRcdC8vIHRoaXMgaXMganVzdCBhIGNoZWFwIGhhY2sgdG8gbm90IGRvIGluZGV4T2YgdHdpY2Vcblx0XHR2YXIgbGVuID0gYjY0Lmxlbmd0aFxuXHRcdHBsYWNlSG9sZGVycyA9ICc9JyA9PT0gYjY0LmNoYXJBdChsZW4gLSAyKSA/IDIgOiAnPScgPT09IGI2NC5jaGFyQXQobGVuIC0gMSkgPyAxIDogMFxuXG5cdFx0Ly8gYmFzZTY0IGlzIDQvMyArIHVwIHRvIHR3byBjaGFyYWN0ZXJzIG9mIHRoZSBvcmlnaW5hbCBkYXRhXG5cdFx0YXJyID0gbmV3IEFycihiNjQubGVuZ3RoICogMyAvIDQgLSBwbGFjZUhvbGRlcnMpXG5cblx0XHQvLyBpZiB0aGVyZSBhcmUgcGxhY2Vob2xkZXJzLCBvbmx5IGdldCB1cCB0byB0aGUgbGFzdCBjb21wbGV0ZSA0IGNoYXJzXG5cdFx0bCA9IHBsYWNlSG9sZGVycyA+IDAgPyBiNjQubGVuZ3RoIC0gNCA6IGI2NC5sZW5ndGhcblxuXHRcdHZhciBMID0gMFxuXG5cdFx0ZnVuY3Rpb24gcHVzaCAodikge1xuXHRcdFx0YXJyW0wrK10gPSB2XG5cdFx0fVxuXG5cdFx0Zm9yIChpID0gMCwgaiA9IDA7IGkgPCBsOyBpICs9IDQsIGogKz0gMykge1xuXHRcdFx0dG1wID0gKGRlY29kZShiNjQuY2hhckF0KGkpKSA8PCAxOCkgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDEpKSA8PCAxMikgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDIpKSA8PCA2KSB8IGRlY29kZShiNjQuY2hhckF0KGkgKyAzKSlcblx0XHRcdHB1c2goKHRtcCAmIDB4RkYwMDAwKSA+PiAxNilcblx0XHRcdHB1c2goKHRtcCAmIDB4RkYwMCkgPj4gOClcblx0XHRcdHB1c2godG1wICYgMHhGRilcblx0XHR9XG5cblx0XHRpZiAocGxhY2VIb2xkZXJzID09PSAyKSB7XG5cdFx0XHR0bXAgPSAoZGVjb2RlKGI2NC5jaGFyQXQoaSkpIDw8IDIpIHwgKGRlY29kZShiNjQuY2hhckF0KGkgKyAxKSkgPj4gNClcblx0XHRcdHB1c2godG1wICYgMHhGRilcblx0XHR9IGVsc2UgaWYgKHBsYWNlSG9sZGVycyA9PT0gMSkge1xuXHRcdFx0dG1wID0gKGRlY29kZShiNjQuY2hhckF0KGkpKSA8PCAxMCkgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDEpKSA8PCA0KSB8IChkZWNvZGUoYjY0LmNoYXJBdChpICsgMikpID4+IDIpXG5cdFx0XHRwdXNoKCh0bXAgPj4gOCkgJiAweEZGKVxuXHRcdFx0cHVzaCh0bXAgJiAweEZGKVxuXHRcdH1cblxuXHRcdHJldHVybiBhcnJcblx0fVxuXG5cdGZ1bmN0aW9uIHVpbnQ4VG9CYXNlNjQgKHVpbnQ4KSB7XG5cdFx0dmFyIGksXG5cdFx0XHRleHRyYUJ5dGVzID0gdWludDgubGVuZ3RoICUgMywgLy8gaWYgd2UgaGF2ZSAxIGJ5dGUgbGVmdCwgcGFkIDIgYnl0ZXNcblx0XHRcdG91dHB1dCA9IFwiXCIsXG5cdFx0XHR0ZW1wLCBsZW5ndGhcblxuXHRcdGZ1bmN0aW9uIGVuY29kZSAobnVtKSB7XG5cdFx0XHRyZXR1cm4gbG9va3VwLmNoYXJBdChudW0pXG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gdHJpcGxldFRvQmFzZTY0IChudW0pIHtcblx0XHRcdHJldHVybiBlbmNvZGUobnVtID4+IDE4ICYgMHgzRikgKyBlbmNvZGUobnVtID4+IDEyICYgMHgzRikgKyBlbmNvZGUobnVtID4+IDYgJiAweDNGKSArIGVuY29kZShudW0gJiAweDNGKVxuXHRcdH1cblxuXHRcdC8vIGdvIHRocm91Z2ggdGhlIGFycmF5IGV2ZXJ5IHRocmVlIGJ5dGVzLCB3ZSdsbCBkZWFsIHdpdGggdHJhaWxpbmcgc3R1ZmYgbGF0ZXJcblx0XHRmb3IgKGkgPSAwLCBsZW5ndGggPSB1aW50OC5sZW5ndGggLSBleHRyYUJ5dGVzOyBpIDwgbGVuZ3RoOyBpICs9IDMpIHtcblx0XHRcdHRlbXAgPSAodWludDhbaV0gPDwgMTYpICsgKHVpbnQ4W2kgKyAxXSA8PCA4KSArICh1aW50OFtpICsgMl0pXG5cdFx0XHRvdXRwdXQgKz0gdHJpcGxldFRvQmFzZTY0KHRlbXApXG5cdFx0fVxuXG5cdFx0Ly8gcGFkIHRoZSBlbmQgd2l0aCB6ZXJvcywgYnV0IG1ha2Ugc3VyZSB0byBub3QgZm9yZ2V0IHRoZSBleHRyYSBieXRlc1xuXHRcdHN3aXRjaCAoZXh0cmFCeXRlcykge1xuXHRcdFx0Y2FzZSAxOlxuXHRcdFx0XHR0ZW1wID0gdWludDhbdWludDgubGVuZ3RoIC0gMV1cblx0XHRcdFx0b3V0cHV0ICs9IGVuY29kZSh0ZW1wID4+IDIpXG5cdFx0XHRcdG91dHB1dCArPSBlbmNvZGUoKHRlbXAgPDwgNCkgJiAweDNGKVxuXHRcdFx0XHRvdXRwdXQgKz0gJz09J1xuXHRcdFx0XHRicmVha1xuXHRcdFx0Y2FzZSAyOlxuXHRcdFx0XHR0ZW1wID0gKHVpbnQ4W3VpbnQ4Lmxlbmd0aCAtIDJdIDw8IDgpICsgKHVpbnQ4W3VpbnQ4Lmxlbmd0aCAtIDFdKVxuXHRcdFx0XHRvdXRwdXQgKz0gZW5jb2RlKHRlbXAgPj4gMTApXG5cdFx0XHRcdG91dHB1dCArPSBlbmNvZGUoKHRlbXAgPj4gNCkgJiAweDNGKVxuXHRcdFx0XHRvdXRwdXQgKz0gZW5jb2RlKCh0ZW1wIDw8IDIpICYgMHgzRilcblx0XHRcdFx0b3V0cHV0ICs9ICc9J1xuXHRcdFx0XHRicmVha1xuXHRcdH1cblxuXHRcdHJldHVybiBvdXRwdXRcblx0fVxuXG5cdGV4cG9ydHMudG9CeXRlQXJyYXkgPSBiNjRUb0J5dGVBcnJheVxuXHRleHBvcnRzLmZyb21CeXRlQXJyYXkgPSB1aW50OFRvQmFzZTY0XG59KHR5cGVvZiBleHBvcnRzID09PSAndW5kZWZpbmVkJyA/ICh0aGlzLmJhc2U2NGpzID0ge30pIDogZXhwb3J0cykpXG4iLCJleHBvcnRzLnJlYWQgPSBmdW5jdGlvbiAoYnVmZmVyLCBvZmZzZXQsIGlzTEUsIG1MZW4sIG5CeXRlcykge1xuICB2YXIgZSwgbVxuICB2YXIgZUxlbiA9IG5CeXRlcyAqIDggLSBtTGVuIC0gMVxuICB2YXIgZU1heCA9ICgxIDw8IGVMZW4pIC0gMVxuICB2YXIgZUJpYXMgPSBlTWF4ID4+IDFcbiAgdmFyIG5CaXRzID0gLTdcbiAgdmFyIGkgPSBpc0xFID8gKG5CeXRlcyAtIDEpIDogMFxuICB2YXIgZCA9IGlzTEUgPyAtMSA6IDFcbiAgdmFyIHMgPSBidWZmZXJbb2Zmc2V0ICsgaV1cblxuICBpICs9IGRcblxuICBlID0gcyAmICgoMSA8PCAoLW5CaXRzKSkgLSAxKVxuICBzID4+PSAoLW5CaXRzKVxuICBuQml0cyArPSBlTGVuXG4gIGZvciAoOyBuQml0cyA+IDA7IGUgPSBlICogMjU2ICsgYnVmZmVyW29mZnNldCArIGldLCBpICs9IGQsIG5CaXRzIC09IDgpIHt9XG5cbiAgbSA9IGUgJiAoKDEgPDwgKC1uQml0cykpIC0gMSlcbiAgZSA+Pj0gKC1uQml0cylcbiAgbkJpdHMgKz0gbUxlblxuICBmb3IgKDsgbkJpdHMgPiAwOyBtID0gbSAqIDI1NiArIGJ1ZmZlcltvZmZzZXQgKyBpXSwgaSArPSBkLCBuQml0cyAtPSA4KSB7fVxuXG4gIGlmIChlID09PSAwKSB7XG4gICAgZSA9IDEgLSBlQmlhc1xuICB9IGVsc2UgaWYgKGUgPT09IGVNYXgpIHtcbiAgICByZXR1cm4gbSA/IE5hTiA6ICgocyA/IC0xIDogMSkgKiBJbmZpbml0eSlcbiAgfSBlbHNlIHtcbiAgICBtID0gbSArIE1hdGgucG93KDIsIG1MZW4pXG4gICAgZSA9IGUgLSBlQmlhc1xuICB9XG4gIHJldHVybiAocyA/IC0xIDogMSkgKiBtICogTWF0aC5wb3coMiwgZSAtIG1MZW4pXG59XG5cbmV4cG9ydHMud3JpdGUgPSBmdW5jdGlvbiAoYnVmZmVyLCB2YWx1ZSwgb2Zmc2V0LCBpc0xFLCBtTGVuLCBuQnl0ZXMpIHtcbiAgdmFyIGUsIG0sIGNcbiAgdmFyIGVMZW4gPSBuQnl0ZXMgKiA4IC0gbUxlbiAtIDFcbiAgdmFyIGVNYXggPSAoMSA8PCBlTGVuKSAtIDFcbiAgdmFyIGVCaWFzID0gZU1heCA+PiAxXG4gIHZhciBydCA9IChtTGVuID09PSAyMyA/IE1hdGgucG93KDIsIC0yNCkgLSBNYXRoLnBvdygyLCAtNzcpIDogMClcbiAgdmFyIGkgPSBpc0xFID8gMCA6IChuQnl0ZXMgLSAxKVxuICB2YXIgZCA9IGlzTEUgPyAxIDogLTFcbiAgdmFyIHMgPSB2YWx1ZSA8IDAgfHwgKHZhbHVlID09PSAwICYmIDEgLyB2YWx1ZSA8IDApID8gMSA6IDBcblxuICB2YWx1ZSA9IE1hdGguYWJzKHZhbHVlKVxuXG4gIGlmIChpc05hTih2YWx1ZSkgfHwgdmFsdWUgPT09IEluZmluaXR5KSB7XG4gICAgbSA9IGlzTmFOKHZhbHVlKSA/IDEgOiAwXG4gICAgZSA9IGVNYXhcbiAgfSBlbHNlIHtcbiAgICBlID0gTWF0aC5mbG9vcihNYXRoLmxvZyh2YWx1ZSkgLyBNYXRoLkxOMilcbiAgICBpZiAodmFsdWUgKiAoYyA9IE1hdGgucG93KDIsIC1lKSkgPCAxKSB7XG4gICAgICBlLS1cbiAgICAgIGMgKj0gMlxuICAgIH1cbiAgICBpZiAoZSArIGVCaWFzID49IDEpIHtcbiAgICAgIHZhbHVlICs9IHJ0IC8gY1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSArPSBydCAqIE1hdGgucG93KDIsIDEgLSBlQmlhcylcbiAgICB9XG4gICAgaWYgKHZhbHVlICogYyA+PSAyKSB7XG4gICAgICBlKytcbiAgICAgIGMgLz0gMlxuICAgIH1cblxuICAgIGlmIChlICsgZUJpYXMgPj0gZU1heCkge1xuICAgICAgbSA9IDBcbiAgICAgIGUgPSBlTWF4XG4gICAgfSBlbHNlIGlmIChlICsgZUJpYXMgPj0gMSkge1xuICAgICAgbSA9ICh2YWx1ZSAqIGMgLSAxKSAqIE1hdGgucG93KDIsIG1MZW4pXG4gICAgICBlID0gZSArIGVCaWFzXG4gICAgfSBlbHNlIHtcbiAgICAgIG0gPSB2YWx1ZSAqIE1hdGgucG93KDIsIGVCaWFzIC0gMSkgKiBNYXRoLnBvdygyLCBtTGVuKVxuICAgICAgZSA9IDBcbiAgICB9XG4gIH1cblxuICBmb3IgKDsgbUxlbiA+PSA4OyBidWZmZXJbb2Zmc2V0ICsgaV0gPSBtICYgMHhmZiwgaSArPSBkLCBtIC89IDI1NiwgbUxlbiAtPSA4KSB7fVxuXG4gIGUgPSAoZSA8PCBtTGVuKSB8IG1cbiAgZUxlbiArPSBtTGVuXG4gIGZvciAoOyBlTGVuID4gMDsgYnVmZmVyW29mZnNldCArIGldID0gZSAmIDB4ZmYsIGkgKz0gZCwgZSAvPSAyNTYsIGVMZW4gLT0gOCkge31cblxuICBidWZmZXJbb2Zmc2V0ICsgaSAtIGRdIHw9IHMgKiAxMjhcbn1cbiIsIlxuLyoqXG4gKiBpc0FycmF5XG4gKi9cblxudmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuXG4vKipcbiAqIHRvU3RyaW5nXG4gKi9cblxudmFyIHN0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cbi8qKlxuICogV2hldGhlciBvciBub3QgdGhlIGdpdmVuIGB2YWxgXG4gKiBpcyBhbiBhcnJheS5cbiAqXG4gKiBleGFtcGxlOlxuICpcbiAqICAgICAgICBpc0FycmF5KFtdKTtcbiAqICAgICAgICAvLyA+IHRydWVcbiAqICAgICAgICBpc0FycmF5KGFyZ3VtZW50cyk7XG4gKiAgICAgICAgLy8gPiBmYWxzZVxuICogICAgICAgIGlzQXJyYXkoJycpO1xuICogICAgICAgIC8vID4gZmFsc2VcbiAqXG4gKiBAcGFyYW0ge21peGVkfSB2YWxcbiAqIEByZXR1cm4ge2Jvb2x9XG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBpc0FycmF5IHx8IGZ1bmN0aW9uICh2YWwpIHtcbiAgcmV0dXJuICEhIHZhbCAmJiAnW29iamVjdCBBcnJheV0nID09IHN0ci5jYWxsKHZhbCk7XG59O1xuIiwiLy8gc2hpbSBmb3IgdXNpbmcgcHJvY2VzcyBpbiBicm93c2VyXG5cbnZhciBwcm9jZXNzID0gbW9kdWxlLmV4cG9ydHMgPSB7fTtcbnZhciBxdWV1ZSA9IFtdO1xudmFyIGRyYWluaW5nID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGRyYWluUXVldWUoKSB7XG4gICAgaWYgKGRyYWluaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZHJhaW5pbmcgPSB0cnVlO1xuICAgIHZhciBjdXJyZW50UXVldWU7XG4gICAgdmFyIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB3aGlsZShsZW4pIHtcbiAgICAgICAgY3VycmVudFF1ZXVlID0gcXVldWU7XG4gICAgICAgIHF1ZXVlID0gW107XG4gICAgICAgIHZhciBpID0gLTE7XG4gICAgICAgIHdoaWxlICgrK2kgPCBsZW4pIHtcbiAgICAgICAgICAgIGN1cnJlbnRRdWV1ZVtpXSgpO1xuICAgICAgICB9XG4gICAgICAgIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB9XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbn1cbnByb2Nlc3MubmV4dFRpY2sgPSBmdW5jdGlvbiAoZnVuKSB7XG4gICAgcXVldWUucHVzaChmdW4pO1xuICAgIGlmICghZHJhaW5pbmcpIHtcbiAgICAgICAgc2V0VGltZW91dChkcmFpblF1ZXVlLCAwKTtcbiAgICB9XG59O1xuXG5wcm9jZXNzLnRpdGxlID0gJ2Jyb3dzZXInO1xucHJvY2Vzcy5icm93c2VyID0gdHJ1ZTtcbnByb2Nlc3MuZW52ID0ge307XG5wcm9jZXNzLmFyZ3YgPSBbXTtcbnByb2Nlc3MudmVyc2lvbiA9ICcnOyAvLyBlbXB0eSBzdHJpbmcgdG8gYXZvaWQgcmVnZXhwIGlzc3Vlc1xucHJvY2Vzcy52ZXJzaW9ucyA9IHt9O1xuXG5mdW5jdGlvbiBub29wKCkge31cblxucHJvY2Vzcy5vbiA9IG5vb3A7XG5wcm9jZXNzLmFkZExpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3Mub25jZSA9IG5vb3A7XG5wcm9jZXNzLm9mZiA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUxpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3MucmVtb3ZlQWxsTGlzdGVuZXJzID0gbm9vcDtcbnByb2Nlc3MuZW1pdCA9IG5vb3A7XG5cbnByb2Nlc3MuYmluZGluZyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcblxuLy8gVE9ETyhzaHR5bG1hbilcbnByb2Nlc3MuY3dkID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gJy8nIH07XG5wcm9jZXNzLmNoZGlyID0gZnVuY3Rpb24gKGRpcikge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xucHJvY2Vzcy51bWFzayA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfTtcbiIsIihmdW5jdGlvbiAoQnVmZmVyKXtcbihmdW5jdGlvbiAoKSB7XG4gIFwidXNlIHN0cmljdFwiO1xuXG4gIGZ1bmN0aW9uIGJ0b2Eoc3RyKSB7XG4gICAgdmFyIGJ1ZmZlclxuICAgICAgO1xuXG4gICAgaWYgKHN0ciBpbnN0YW5jZW9mIEJ1ZmZlcikge1xuICAgICAgYnVmZmVyID0gc3RyO1xuICAgIH0gZWxzZSB7XG4gICAgICBidWZmZXIgPSBuZXcgQnVmZmVyKHN0ci50b1N0cmluZygpLCAnYmluYXJ5Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygnYmFzZTY0Jyk7XG4gIH1cblxuICBtb2R1bGUuZXhwb3J0cyA9IGJ0b2E7XG59KCkpO1xuXG59KS5jYWxsKHRoaXMscmVxdWlyZShcImJ1ZmZlclwiKS5CdWZmZXIpXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldDp1dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJbTV2WkdWZmJXOWtkV3hsY3k5aWRHOWhMMmx1WkdWNExtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdRVUZCUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVNJc0ltWnBiR1VpT2lKblpXNWxjbUYwWldRdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lLR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdYQ0oxYzJVZ2MzUnlhV04wWENJN1hHNWNiaUFnWm5WdVkzUnBiMjRnWW5SdllTaHpkSElwSUh0Y2JpQWdJQ0IyWVhJZ1luVm1abVZ5WEc0Z0lDQWdJQ0E3WEc1Y2JpQWdJQ0JwWmlBb2MzUnlJR2x1YzNSaGJtTmxiMllnUW5WbVptVnlLU0I3WEc0Z0lDQWdJQ0JpZFdabVpYSWdQU0J6ZEhJN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJR0oxWm1abGNpQTlJRzVsZHlCQ2RXWm1aWElvYzNSeUxuUnZVM1J5YVc1bktDa3NJQ2RpYVc1aGNua25LVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z1luVm1abVZ5TG5SdlUzUnlhVzVuS0NkaVlYTmxOalFuS1R0Y2JpQWdmVnh1WEc0Z0lHMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ1luUnZZVHRjYm4wb0tTazdYRzRpWFgwPSIsIi8qIGpzaGludCBub2RlOiB0cnVlICovXG4oZnVuY3Rpb24gKCkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuXG4gICAgZnVuY3Rpb24gQ29va2llQWNjZXNzSW5mbyhkb21haW4sIHBhdGgsIHNlY3VyZSwgc2NyaXB0KSB7XG4gICAgICAgIGlmICh0aGlzIGluc3RhbmNlb2YgQ29va2llQWNjZXNzSW5mbykge1xuICAgICAgICAgICAgdGhpcy5kb21haW4gPSBkb21haW4gfHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5wYXRoID0gcGF0aCB8fCBcIi9cIjtcbiAgICAgICAgICAgIHRoaXMuc2VjdXJlID0gISFzZWN1cmU7XG4gICAgICAgICAgICB0aGlzLnNjcmlwdCA9ICEhc2NyaXB0O1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBDb29raWVBY2Nlc3NJbmZvKGRvbWFpbiwgcGF0aCwgc2VjdXJlLCBzY3JpcHQpO1xuICAgIH1cbiAgICBleHBvcnRzLkNvb2tpZUFjY2Vzc0luZm8gPSBDb29raWVBY2Nlc3NJbmZvO1xuXG4gICAgZnVuY3Rpb24gQ29va2llKGNvb2tpZXN0ciwgcmVxdWVzdF9kb21haW4sIHJlcXVlc3RfcGF0aCkge1xuICAgICAgICBpZiAoY29va2llc3RyIGluc3RhbmNlb2YgQ29va2llKSB7XG4gICAgICAgICAgICByZXR1cm4gY29va2llc3RyO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzIGluc3RhbmNlb2YgQ29va2llKSB7XG4gICAgICAgICAgICB0aGlzLm5hbWUgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmV4cGlyYXRpb25fZGF0ZSA9IEluZmluaXR5O1xuICAgICAgICAgICAgdGhpcy5wYXRoID0gU3RyaW5nKHJlcXVlc3RfcGF0aCB8fCBcIi9cIik7XG4gICAgICAgICAgICB0aGlzLmV4cGxpY2l0X3BhdGggPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZG9tYWluID0gcmVxdWVzdF9kb21haW4gfHwgbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZXhwbGljaXRfZG9tYWluID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnNlY3VyZSA9IGZhbHNlOyAvL2hvdyB0byBkZWZpbmUgZGVmYXVsdD9cbiAgICAgICAgICAgIHRoaXMubm9zY3JpcHQgPSBmYWxzZTsgLy9odHRwb25seVxuICAgICAgICAgICAgaWYgKGNvb2tpZXN0cikge1xuICAgICAgICAgICAgICAgIHRoaXMucGFyc2UoY29va2llc3RyLCByZXF1ZXN0X2RvbWFpbiwgcmVxdWVzdF9wYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQ29va2llKGNvb2tpZXN0cik7XG4gICAgfVxuICAgIGV4cG9ydHMuQ29va2llID0gQ29va2llO1xuXG4gICAgQ29va2llLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgICAgICB2YXIgc3RyID0gW3RoaXMubmFtZSArIFwiPVwiICsgdGhpcy52YWx1ZV07XG4gICAgICAgIGlmICh0aGlzLmV4cGlyYXRpb25fZGF0ZSAhPT0gSW5maW5pdHkpIHtcbiAgICAgICAgICAgIHN0ci5wdXNoKFwiZXhwaXJlcz1cIiArIChuZXcgRGF0ZSh0aGlzLmV4cGlyYXRpb25fZGF0ZSkpLnRvR01UU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRvbWFpbikge1xuICAgICAgICAgICAgc3RyLnB1c2goXCJkb21haW49XCIgKyB0aGlzLmRvbWFpbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucGF0aCkge1xuICAgICAgICAgICAgc3RyLnB1c2goXCJwYXRoPVwiICsgdGhpcy5wYXRoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zZWN1cmUpIHtcbiAgICAgICAgICAgIHN0ci5wdXNoKFwic2VjdXJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm5vc2NyaXB0KSB7XG4gICAgICAgICAgICBzdHIucHVzaChcImh0dHBvbmx5XCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHIuam9pbihcIjsgXCIpO1xuICAgIH07XG5cbiAgICBDb29raWUucHJvdG90eXBlLnRvVmFsdWVTdHJpbmcgPSBmdW5jdGlvbiB0b1ZhbHVlU3RyaW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uYW1lICsgXCI9XCIgKyB0aGlzLnZhbHVlO1xuICAgIH07XG5cbiAgICB2YXIgY29va2llX3N0cl9zcGxpdHRlciA9IC9bOl0oPz1cXHMqW2EtekEtWjAtOV9cXC1dK1xccypbPV0pL2c7XG4gICAgQ29va2llLnByb3RvdHlwZS5wYXJzZSA9IGZ1bmN0aW9uIHBhcnNlKHN0ciwgcmVxdWVzdF9kb21haW4sIHJlcXVlc3RfcGF0aCkge1xuICAgICAgICBpZiAodGhpcyBpbnN0YW5jZW9mIENvb2tpZSkge1xuICAgICAgICAgICAgdmFyIHBhcnRzID0gc3RyLnNwbGl0KFwiO1wiKS5maWx0ZXIoZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhIXZhbHVlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHBhaXIgPSBwYXJ0c1swXS5tYXRjaCgvKFtePV0rKT0oW1xcc1xcU10qKS8pLFxuICAgICAgICAgICAgICAgIGtleSA9IHBhaXJbMV0sXG4gICAgICAgICAgICAgICAgdmFsdWUgPSBwYWlyWzJdLFxuICAgICAgICAgICAgICAgIGk7XG4gICAgICAgICAgICB0aGlzLm5hbWUgPSBrZXk7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgICAgIGZvciAoaSA9IDE7IGkgPCBwYXJ0cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgICAgICAgIHBhaXIgPSBwYXJ0c1tpXS5tYXRjaCgvKFtePV0rKSg/Oj0oW1xcc1xcU10qKSk/Lyk7XG4gICAgICAgICAgICAgICAga2V5ID0gcGFpclsxXS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhaXJbMl07XG4gICAgICAgICAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiaHR0cG9ubHlcIjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3NjcmlwdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJleHBpcmVzXCI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXhwaXJhdGlvbl9kYXRlID0gdmFsdWUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlcihEYXRlLnBhcnNlKHZhbHVlKSkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZmluaXR5O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwicGF0aFwiOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhdGggPSB2YWx1ZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUudHJpbSgpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlwiO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmV4cGxpY2l0X3BhdGggPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiZG9tYWluXCI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9tYWluID0gdmFsdWUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLnRyaW0oKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5leHBsaWNpdF9kb21haW4gPSAhIXRoaXMuZG9tYWluO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwic2VjdXJlXCI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VjdXJlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRoaXMuZXhwbGljaXRfcGF0aCkge1xuICAgICAgICAgICAgICAgdGhpcy5wYXRoID0gcmVxdWVzdF9wYXRoIHx8IFwiL1wiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLmV4cGxpY2l0X2RvbWFpbikge1xuICAgICAgICAgICAgICAgdGhpcy5kb21haW4gPSByZXF1ZXN0X2RvbWFpbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBDb29raWUoKS5wYXJzZShzdHIsIHJlcXVlc3RfZG9tYWluLCByZXF1ZXN0X3BhdGgpO1xuICAgIH07XG5cbiAgICBDb29raWUucHJvdG90eXBlLm1hdGNoZXMgPSBmdW5jdGlvbiBtYXRjaGVzKGFjY2Vzc19pbmZvKSB7XG4gICAgICAgIGlmICh0aGlzLm5vc2NyaXB0ICYmIGFjY2Vzc19pbmZvLnNjcmlwdCB8fFxuICAgICAgICAgICAgICAgIHRoaXMuc2VjdXJlICYmICFhY2Nlc3NfaW5mby5zZWN1cmUgfHxcbiAgICAgICAgICAgICAgICAhdGhpcy5jb2xsaWRlc1dpdGgoYWNjZXNzX2luZm8pKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcblxuICAgIENvb2tpZS5wcm90b3R5cGUuY29sbGlkZXNXaXRoID0gZnVuY3Rpb24gY29sbGlkZXNXaXRoKGFjY2Vzc19pbmZvKSB7XG4gICAgICAgIGlmICgodGhpcy5wYXRoICYmICFhY2Nlc3NfaW5mby5wYXRoKSB8fCAodGhpcy5kb21haW4gJiYgIWFjY2Vzc19pbmZvLmRvbWFpbikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wYXRoICYmIGFjY2Vzc19pbmZvLnBhdGguaW5kZXhPZih0aGlzLnBhdGgpICE9PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmV4cGxpY2l0X3BhdGgpIHtcbiAgICAgICAgICAgaWYgKHRoaXMucGF0aCAhPT0gYWNjZXNzX2luZm8ucGF0aCkge1xuICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGFjY2Vzc19kb21haW4gPSBhY2Nlc3NfaW5mby5kb21haW4gJiYgYWNjZXNzX2luZm8uZG9tYWluLnJlcGxhY2UoL15bXFwuXS8sJycpO1xuICAgICAgICB2YXIgY29va2llX2RvbWFpbiA9IHRoaXMuZG9tYWluICYmIHRoaXMuZG9tYWluLnJlcGxhY2UoL15bXFwuXS8sJycpO1xuICAgICAgICBpZiAoY29va2llX2RvbWFpbiA9PT0gYWNjZXNzX2RvbWFpbikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvb2tpZV9kb21haW4pIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5leHBsaWNpdF9kb21haW4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIHdlIGFscmVhZHkgY2hlY2tlZCBpZiB0aGUgZG9tYWlucyB3ZXJlIGV4YWN0bHkgdGhlIHNhbWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciB3aWxkY2FyZCA9IGFjY2Vzc19kb21haW4uaW5kZXhPZihjb29raWVfZG9tYWluKTtcbiAgICAgICAgICAgIGlmICh3aWxkY2FyZCA9PT0gLTEgfHwgd2lsZGNhcmQgIT09IGFjY2Vzc19kb21haW4ubGVuZ3RoIC0gY29va2llX2RvbWFpbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gQ29va2llSmFyKCkge1xuICAgICAgICB2YXIgY29va2llcywgY29va2llc19saXN0LCBjb2xsaWRhYmxlX2Nvb2tpZTtcbiAgICAgICAgaWYgKHRoaXMgaW5zdGFuY2VvZiBDb29raWVKYXIpIHtcbiAgICAgICAgICAgIGNvb2tpZXMgPSBPYmplY3QuY3JlYXRlKG51bGwpOyAvL25hbWU6IFtDb29raWVdXG5cbiAgICAgICAgICAgIHRoaXMuc2V0Q29va2llID0gZnVuY3Rpb24gc2V0Q29va2llKGNvb2tpZSwgcmVxdWVzdF9kb21haW4sIHJlcXVlc3RfcGF0aCkge1xuICAgICAgICAgICAgICAgIHZhciByZW1vdmUsIGk7XG4gICAgICAgICAgICAgICAgY29va2llID0gbmV3IENvb2tpZShjb29raWUsIHJlcXVlc3RfZG9tYWluLCByZXF1ZXN0X3BhdGgpO1xuICAgICAgICAgICAgICAgIC8vRGVsZXRlIHRoZSBjb29raWUgaWYgdGhlIHNldCBpcyBwYXN0IHRoZSBjdXJyZW50IHRpbWVcbiAgICAgICAgICAgICAgICByZW1vdmUgPSBjb29raWUuZXhwaXJhdGlvbl9kYXRlIDw9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgaWYgKGNvb2tpZXNbY29va2llLm5hbWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29va2llc19saXN0ID0gY29va2llc1tjb29raWUubmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjb29raWVzX2xpc3QubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxpZGFibGVfY29va2llID0gY29va2llc19saXN0W2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbGxpZGFibGVfY29va2llLmNvbGxpZGVzV2l0aChjb29raWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlbW92ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29raWVzX2xpc3Quc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29va2llc19saXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGNvb2tpZXNbY29va2llLm5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29va2llc19saXN0W2ldID0gY29va2llO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb29raWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlbW92ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvb2tpZXNfbGlzdC5wdXNoKGNvb2tpZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb29raWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyZW1vdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb29raWVzW2Nvb2tpZS5uYW1lXSA9IFtjb29raWVdO1xuICAgICAgICAgICAgICAgIHJldHVybiBjb29raWVzW2Nvb2tpZS5uYW1lXTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybnMgYSBjb29raWVcbiAgICAgICAgICAgIHRoaXMuZ2V0Q29va2llID0gZnVuY3Rpb24gZ2V0Q29va2llKGNvb2tpZV9uYW1lLCBhY2Nlc3NfaW5mbykge1xuICAgICAgICAgICAgICAgIHZhciBjb29raWUsIGk7XG4gICAgICAgICAgICAgICAgY29va2llc19saXN0ID0gY29va2llc1tjb29raWVfbmFtZV07XG4gICAgICAgICAgICAgICAgaWYgKCFjb29raWVzX2xpc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY29va2llc19saXN0Lmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvb2tpZSA9IGNvb2tpZXNfbGlzdFtpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvb2tpZS5leHBpcmF0aW9uX2RhdGUgPD0gRGF0ZS5ub3coKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvb2tpZXNfbGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgY29va2llc1tjb29raWUubmFtZV07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoY29va2llLm1hdGNoZXMoYWNjZXNzX2luZm8pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29va2llO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJucyBhIGxpc3Qgb2YgY29va2llc1xuICAgICAgICAgICAgdGhpcy5nZXRDb29raWVzID0gZnVuY3Rpb24gZ2V0Q29va2llcyhhY2Nlc3NfaW5mbykge1xuICAgICAgICAgICAgICAgIHZhciBtYXRjaGVzID0gW10sIGNvb2tpZV9uYW1lLCBjb29raWU7XG4gICAgICAgICAgICAgICAgZm9yIChjb29raWVfbmFtZSBpbiBjb29raWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvb2tpZSA9IHRoaXMuZ2V0Q29va2llKGNvb2tpZV9uYW1lLCBhY2Nlc3NfaW5mbyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb29raWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZXMucHVzaChjb29raWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG1hdGNoZXMudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXMuam9pbihcIjpcIik7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBtYXRjaGVzLnRvVmFsdWVTdHJpbmcgPSBmdW5jdGlvbiB0b1ZhbHVlU3RyaW5nKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlcy5tYXAoZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjLnRvVmFsdWVTdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgfSkuam9pbignOycpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXM7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IENvb2tpZUphcigpO1xuICAgIH1cbiAgICBleHBvcnRzLkNvb2tpZUphciA9IENvb2tpZUphcjtcblxuICAgIC8vcmV0dXJucyBsaXN0IG9mIGNvb2tpZXMgdGhhdCB3ZXJlIHNldCBjb3JyZWN0bHkuIENvb2tpZXMgdGhhdCBhcmUgZXhwaXJlZCBhbmQgcmVtb3ZlZCBhcmUgbm90IHJldHVybmVkLlxuICAgIENvb2tpZUphci5wcm90b3R5cGUuc2V0Q29va2llcyA9IGZ1bmN0aW9uIHNldENvb2tpZXMoY29va2llcywgcmVxdWVzdF9kb21haW4sIHJlcXVlc3RfcGF0aCkge1xuICAgICAgICBjb29raWVzID0gQXJyYXkuaXNBcnJheShjb29raWVzKSA/XG4gICAgICAgICAgICAgICAgY29va2llcyA6XG4gICAgICAgICAgICAgICAgY29va2llcy5zcGxpdChjb29raWVfc3RyX3NwbGl0dGVyKTtcbiAgICAgICAgdmFyIHN1Y2Nlc3NmdWwgPSBbXSxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBjb29raWU7XG4gICAgICAgIGNvb2tpZXMgPSBjb29raWVzLm1hcChDb29raWUpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY29va2llcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgICAgY29va2llID0gY29va2llc1tpXTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNldENvb2tpZShjb29raWUsIHJlcXVlc3RfZG9tYWluLCByZXF1ZXN0X3BhdGgpKSB7XG4gICAgICAgICAgICAgICAgc3VjY2Vzc2Z1bC5wdXNoKGNvb2tpZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3NmdWw7XG4gICAgfTtcbn0oKSk7XG4iLCIvKiFcbiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjIuMS40XG4gKiBodHRwOi8vanF1ZXJ5LmNvbS9cbiAqXG4gKiBJbmNsdWRlcyBTaXp6bGUuanNcbiAqIGh0dHA6Ly9zaXp6bGVqcy5jb20vXG4gKlxuICogQ29weXJpZ2h0IDIwMDUsIDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gYW5kIG90aGVyIGNvbnRyaWJ1dG9yc1xuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlXG4gKlxuICogRGF0ZTogMjAxNS0wNC0yOFQxNjowMVpcbiAqL1xuXG4oZnVuY3Rpb24oIGdsb2JhbCwgZmFjdG9yeSApIHtcblxuXHRpZiAoIHR5cGVvZiBtb2R1bGUgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG1vZHVsZS5leHBvcnRzID09PSBcIm9iamVjdFwiICkge1xuXHRcdC8vIEZvciBDb21tb25KUyBhbmQgQ29tbW9uSlMtbGlrZSBlbnZpcm9ubWVudHMgd2hlcmUgYSBwcm9wZXIgYHdpbmRvd2Bcblx0XHQvLyBpcyBwcmVzZW50LCBleGVjdXRlIHRoZSBmYWN0b3J5IGFuZCBnZXQgalF1ZXJ5LlxuXHRcdC8vIEZvciBlbnZpcm9ubWVudHMgdGhhdCBkbyBub3QgaGF2ZSBhIGB3aW5kb3dgIHdpdGggYSBgZG9jdW1lbnRgXG5cdFx0Ly8gKHN1Y2ggYXMgTm9kZS5qcyksIGV4cG9zZSBhIGZhY3RvcnkgYXMgbW9kdWxlLmV4cG9ydHMuXG5cdFx0Ly8gVGhpcyBhY2NlbnR1YXRlcyB0aGUgbmVlZCBmb3IgdGhlIGNyZWF0aW9uIG9mIGEgcmVhbCBgd2luZG93YC5cblx0XHQvLyBlLmcuIHZhciBqUXVlcnkgPSByZXF1aXJlKFwianF1ZXJ5XCIpKHdpbmRvdyk7XG5cdFx0Ly8gU2VlIHRpY2tldCAjMTQ1NDkgZm9yIG1vcmUgaW5mby5cblx0XHRtb2R1bGUuZXhwb3J0cyA9IGdsb2JhbC5kb2N1bWVudCA/XG5cdFx0XHRmYWN0b3J5KCBnbG9iYWwsIHRydWUgKSA6XG5cdFx0XHRmdW5jdGlvbiggdyApIHtcblx0XHRcdFx0aWYgKCAhdy5kb2N1bWVudCApIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoIFwialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudFwiICk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGZhY3RvcnkoIHcgKTtcblx0XHRcdH07XG5cdH0gZWxzZSB7XG5cdFx0ZmFjdG9yeSggZ2xvYmFsICk7XG5cdH1cblxuLy8gUGFzcyB0aGlzIGlmIHdpbmRvdyBpcyBub3QgZGVmaW5lZCB5ZXRcbn0odHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IHdpbmRvdyA6IHRoaXMsIGZ1bmN0aW9uKCB3aW5kb3csIG5vR2xvYmFsICkge1xuXG4vLyBTdXBwb3J0OiBGaXJlZm94IDE4K1xuLy8gQ2FuJ3QgYmUgaW4gc3RyaWN0IG1vZGUsIHNldmVyYWwgbGlicyBpbmNsdWRpbmcgQVNQLk5FVCB0cmFjZVxuLy8gdGhlIHN0YWNrIHZpYSBhcmd1bWVudHMuY2FsbGVyLmNhbGxlZSBhbmQgRmlyZWZveCBkaWVzIGlmXG4vLyB5b3UgdHJ5IHRvIHRyYWNlIHRocm91Z2ggXCJ1c2Ugc3RyaWN0XCIgY2FsbCBjaGFpbnMuICgjMTMzMzUpXG4vL1xuXG52YXIgYXJyID0gW107XG5cbnZhciBzbGljZSA9IGFyci5zbGljZTtcblxudmFyIGNvbmNhdCA9IGFyci5jb25jYXQ7XG5cbnZhciBwdXNoID0gYXJyLnB1c2g7XG5cbnZhciBpbmRleE9mID0gYXJyLmluZGV4T2Y7XG5cbnZhciBjbGFzczJ0eXBlID0ge307XG5cbnZhciB0b1N0cmluZyA9IGNsYXNzMnR5cGUudG9TdHJpbmc7XG5cbnZhciBoYXNPd24gPSBjbGFzczJ0eXBlLmhhc093blByb3BlcnR5O1xuXG52YXIgc3VwcG9ydCA9IHt9O1xuXG5cblxudmFyXG5cdC8vIFVzZSB0aGUgY29ycmVjdCBkb2N1bWVudCBhY2NvcmRpbmdseSB3aXRoIHdpbmRvdyBhcmd1bWVudCAoc2FuZGJveClcblx0ZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQsXG5cblx0dmVyc2lvbiA9IFwiMi4xLjRcIixcblxuXHQvLyBEZWZpbmUgYSBsb2NhbCBjb3B5IG9mIGpRdWVyeVxuXHRqUXVlcnkgPSBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQgKSB7XG5cdFx0Ly8gVGhlIGpRdWVyeSBvYmplY3QgaXMgYWN0dWFsbHkganVzdCB0aGUgaW5pdCBjb25zdHJ1Y3RvciAnZW5oYW5jZWQnXG5cdFx0Ly8gTmVlZCBpbml0IGlmIGpRdWVyeSBpcyBjYWxsZWQgKGp1c3QgYWxsb3cgZXJyb3IgdG8gYmUgdGhyb3duIGlmIG5vdCBpbmNsdWRlZClcblx0XHRyZXR1cm4gbmV3IGpRdWVyeS5mbi5pbml0KCBzZWxlY3RvciwgY29udGV4dCApO1xuXHR9LFxuXG5cdC8vIFN1cHBvcnQ6IEFuZHJvaWQ8NC4xXG5cdC8vIE1ha2Ugc3VyZSB3ZSB0cmltIEJPTSBhbmQgTkJTUFxuXHRydHJpbSA9IC9eW1xcc1xcdUZFRkZcXHhBMF0rfFtcXHNcXHVGRUZGXFx4QTBdKyQvZyxcblxuXHQvLyBNYXRjaGVzIGRhc2hlZCBzdHJpbmcgZm9yIGNhbWVsaXppbmdcblx0cm1zUHJlZml4ID0gL14tbXMtLyxcblx0cmRhc2hBbHBoYSA9IC8tKFtcXGRhLXpdKS9naSxcblxuXHQvLyBVc2VkIGJ5IGpRdWVyeS5jYW1lbENhc2UgYXMgY2FsbGJhY2sgdG8gcmVwbGFjZSgpXG5cdGZjYW1lbENhc2UgPSBmdW5jdGlvbiggYWxsLCBsZXR0ZXIgKSB7XG5cdFx0cmV0dXJuIGxldHRlci50b1VwcGVyQ2FzZSgpO1xuXHR9O1xuXG5qUXVlcnkuZm4gPSBqUXVlcnkucHJvdG90eXBlID0ge1xuXHQvLyBUaGUgY3VycmVudCB2ZXJzaW9uIG9mIGpRdWVyeSBiZWluZyB1c2VkXG5cdGpxdWVyeTogdmVyc2lvbixcblxuXHRjb25zdHJ1Y3RvcjogalF1ZXJ5LFxuXG5cdC8vIFN0YXJ0IHdpdGggYW4gZW1wdHkgc2VsZWN0b3Jcblx0c2VsZWN0b3I6IFwiXCIsXG5cblx0Ly8gVGhlIGRlZmF1bHQgbGVuZ3RoIG9mIGEgalF1ZXJ5IG9iamVjdCBpcyAwXG5cdGxlbmd0aDogMCxcblxuXHR0b0FycmF5OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gc2xpY2UuY2FsbCggdGhpcyApO1xuXHR9LFxuXG5cdC8vIEdldCB0aGUgTnRoIGVsZW1lbnQgaW4gdGhlIG1hdGNoZWQgZWxlbWVudCBzZXQgT1Jcblx0Ly8gR2V0IHRoZSB3aG9sZSBtYXRjaGVkIGVsZW1lbnQgc2V0IGFzIGEgY2xlYW4gYXJyYXlcblx0Z2V0OiBmdW5jdGlvbiggbnVtICkge1xuXHRcdHJldHVybiBudW0gIT0gbnVsbCA/XG5cblx0XHRcdC8vIFJldHVybiBqdXN0IHRoZSBvbmUgZWxlbWVudCBmcm9tIHRoZSBzZXRcblx0XHRcdCggbnVtIDwgMCA/IHRoaXNbIG51bSArIHRoaXMubGVuZ3RoIF0gOiB0aGlzWyBudW0gXSApIDpcblxuXHRcdFx0Ly8gUmV0dXJuIGFsbCB0aGUgZWxlbWVudHMgaW4gYSBjbGVhbiBhcnJheVxuXHRcdFx0c2xpY2UuY2FsbCggdGhpcyApO1xuXHR9LFxuXG5cdC8vIFRha2UgYW4gYXJyYXkgb2YgZWxlbWVudHMgYW5kIHB1c2ggaXQgb250byB0aGUgc3RhY2tcblx0Ly8gKHJldHVybmluZyB0aGUgbmV3IG1hdGNoZWQgZWxlbWVudCBzZXQpXG5cdHB1c2hTdGFjazogZnVuY3Rpb24oIGVsZW1zICkge1xuXG5cdFx0Ly8gQnVpbGQgYSBuZXcgalF1ZXJ5IG1hdGNoZWQgZWxlbWVudCBzZXRcblx0XHR2YXIgcmV0ID0galF1ZXJ5Lm1lcmdlKCB0aGlzLmNvbnN0cnVjdG9yKCksIGVsZW1zICk7XG5cblx0XHQvLyBBZGQgdGhlIG9sZCBvYmplY3Qgb250byB0aGUgc3RhY2sgKGFzIGEgcmVmZXJlbmNlKVxuXHRcdHJldC5wcmV2T2JqZWN0ID0gdGhpcztcblx0XHRyZXQuY29udGV4dCA9IHRoaXMuY29udGV4dDtcblxuXHRcdC8vIFJldHVybiB0aGUgbmV3bHktZm9ybWVkIGVsZW1lbnQgc2V0XG5cdFx0cmV0dXJuIHJldDtcblx0fSxcblxuXHQvLyBFeGVjdXRlIGEgY2FsbGJhY2sgZm9yIGV2ZXJ5IGVsZW1lbnQgaW4gdGhlIG1hdGNoZWQgc2V0LlxuXHQvLyAoWW91IGNhbiBzZWVkIHRoZSBhcmd1bWVudHMgd2l0aCBhbiBhcnJheSBvZiBhcmdzLCBidXQgdGhpcyBpc1xuXHQvLyBvbmx5IHVzZWQgaW50ZXJuYWxseS4pXG5cdGVhY2g6IGZ1bmN0aW9uKCBjYWxsYmFjaywgYXJncyApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmVhY2goIHRoaXMsIGNhbGxiYWNrLCBhcmdzICk7XG5cdH0sXG5cblx0bWFwOiBmdW5jdGlvbiggY2FsbGJhY2sgKSB7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqUXVlcnkubWFwKHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCBpICkge1xuXHRcdFx0cmV0dXJuIGNhbGxiYWNrLmNhbGwoIGVsZW0sIGksIGVsZW0gKTtcblx0XHR9KSk7XG5cdH0sXG5cblx0c2xpY2U6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggc2xpY2UuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApICk7XG5cdH0sXG5cblx0Zmlyc3Q6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLmVxKCAwICk7XG5cdH0sXG5cblx0bGFzdDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMuZXEoIC0xICk7XG5cdH0sXG5cblx0ZXE6IGZ1bmN0aW9uKCBpICkge1xuXHRcdHZhciBsZW4gPSB0aGlzLmxlbmd0aCxcblx0XHRcdGogPSAraSArICggaSA8IDAgPyBsZW4gOiAwICk7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqID49IDAgJiYgaiA8IGxlbiA/IFsgdGhpc1tqXSBdIDogW10gKTtcblx0fSxcblxuXHRlbmQ6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLnByZXZPYmplY3QgfHwgdGhpcy5jb25zdHJ1Y3RvcihudWxsKTtcblx0fSxcblxuXHQvLyBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuXG5cdC8vIEJlaGF2ZXMgbGlrZSBhbiBBcnJheSdzIG1ldGhvZCwgbm90IGxpa2UgYSBqUXVlcnkgbWV0aG9kLlxuXHRwdXNoOiBwdXNoLFxuXHRzb3J0OiBhcnIuc29ydCxcblx0c3BsaWNlOiBhcnIuc3BsaWNlXG59O1xuXG5qUXVlcnkuZXh0ZW5kID0galF1ZXJ5LmZuLmV4dGVuZCA9IGZ1bmN0aW9uKCkge1xuXHR2YXIgb3B0aW9ucywgbmFtZSwgc3JjLCBjb3B5LCBjb3B5SXNBcnJheSwgY2xvbmUsXG5cdFx0dGFyZ2V0ID0gYXJndW1lbnRzWzBdIHx8IHt9LFxuXHRcdGkgPSAxLFxuXHRcdGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXG5cdFx0ZGVlcCA9IGZhbHNlO1xuXG5cdC8vIEhhbmRsZSBhIGRlZXAgY29weSBzaXR1YXRpb25cblx0aWYgKCB0eXBlb2YgdGFyZ2V0ID09PSBcImJvb2xlYW5cIiApIHtcblx0XHRkZWVwID0gdGFyZ2V0O1xuXG5cdFx0Ly8gU2tpcCB0aGUgYm9vbGVhbiBhbmQgdGhlIHRhcmdldFxuXHRcdHRhcmdldCA9IGFyZ3VtZW50c1sgaSBdIHx8IHt9O1xuXHRcdGkrKztcblx0fVxuXG5cdC8vIEhhbmRsZSBjYXNlIHdoZW4gdGFyZ2V0IGlzIGEgc3RyaW5nIG9yIHNvbWV0aGluZyAocG9zc2libGUgaW4gZGVlcCBjb3B5KVxuXHRpZiAoIHR5cGVvZiB0YXJnZXQgIT09IFwib2JqZWN0XCIgJiYgIWpRdWVyeS5pc0Z1bmN0aW9uKHRhcmdldCkgKSB7XG5cdFx0dGFyZ2V0ID0ge307XG5cdH1cblxuXHQvLyBFeHRlbmQgalF1ZXJ5IGl0c2VsZiBpZiBvbmx5IG9uZSBhcmd1bWVudCBpcyBwYXNzZWRcblx0aWYgKCBpID09PSBsZW5ndGggKSB7XG5cdFx0dGFyZ2V0ID0gdGhpcztcblx0XHRpLS07XG5cdH1cblxuXHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApIHtcblx0XHQvLyBPbmx5IGRlYWwgd2l0aCBub24tbnVsbC91bmRlZmluZWQgdmFsdWVzXG5cdFx0aWYgKCAob3B0aW9ucyA9IGFyZ3VtZW50c1sgaSBdKSAhPSBudWxsICkge1xuXHRcdFx0Ly8gRXh0ZW5kIHRoZSBiYXNlIG9iamVjdFxuXHRcdFx0Zm9yICggbmFtZSBpbiBvcHRpb25zICkge1xuXHRcdFx0XHRzcmMgPSB0YXJnZXRbIG5hbWUgXTtcblx0XHRcdFx0Y29weSA9IG9wdGlvbnNbIG5hbWUgXTtcblxuXHRcdFx0XHQvLyBQcmV2ZW50IG5ldmVyLWVuZGluZyBsb29wXG5cdFx0XHRcdGlmICggdGFyZ2V0ID09PSBjb3B5ICkge1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gUmVjdXJzZSBpZiB3ZSdyZSBtZXJnaW5nIHBsYWluIG9iamVjdHMgb3IgYXJyYXlzXG5cdFx0XHRcdGlmICggZGVlcCAmJiBjb3B5ICYmICggalF1ZXJ5LmlzUGxhaW5PYmplY3QoY29weSkgfHwgKGNvcHlJc0FycmF5ID0galF1ZXJ5LmlzQXJyYXkoY29weSkpICkgKSB7XG5cdFx0XHRcdFx0aWYgKCBjb3B5SXNBcnJheSApIHtcblx0XHRcdFx0XHRcdGNvcHlJc0FycmF5ID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRjbG9uZSA9IHNyYyAmJiBqUXVlcnkuaXNBcnJheShzcmMpID8gc3JjIDogW107XG5cblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y2xvbmUgPSBzcmMgJiYgalF1ZXJ5LmlzUGxhaW5PYmplY3Qoc3JjKSA/IHNyYyA6IHt9O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIE5ldmVyIG1vdmUgb3JpZ2luYWwgb2JqZWN0cywgY2xvbmUgdGhlbVxuXHRcdFx0XHRcdHRhcmdldFsgbmFtZSBdID0galF1ZXJ5LmV4dGVuZCggZGVlcCwgY2xvbmUsIGNvcHkgKTtcblxuXHRcdFx0XHQvLyBEb24ndCBicmluZyBpbiB1bmRlZmluZWQgdmFsdWVzXG5cdFx0XHRcdH0gZWxzZSBpZiAoIGNvcHkgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHR0YXJnZXRbIG5hbWUgXSA9IGNvcHk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBSZXR1cm4gdGhlIG1vZGlmaWVkIG9iamVjdFxuXHRyZXR1cm4gdGFyZ2V0O1xufTtcblxualF1ZXJ5LmV4dGVuZCh7XG5cdC8vIFVuaXF1ZSBmb3IgZWFjaCBjb3B5IG9mIGpRdWVyeSBvbiB0aGUgcGFnZVxuXHRleHBhbmRvOiBcImpRdWVyeVwiICsgKCB2ZXJzaW9uICsgTWF0aC5yYW5kb20oKSApLnJlcGxhY2UoIC9cXEQvZywgXCJcIiApLFxuXG5cdC8vIEFzc3VtZSBqUXVlcnkgaXMgcmVhZHkgd2l0aG91dCB0aGUgcmVhZHkgbW9kdWxlXG5cdGlzUmVhZHk6IHRydWUsXG5cblx0ZXJyb3I6IGZ1bmN0aW9uKCBtc2cgKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCBtc2cgKTtcblx0fSxcblxuXHRub29wOiBmdW5jdGlvbigpIHt9LFxuXG5cdGlzRnVuY3Rpb246IGZ1bmN0aW9uKCBvYmogKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS50eXBlKG9iaikgPT09IFwiZnVuY3Rpb25cIjtcblx0fSxcblxuXHRpc0FycmF5OiBBcnJheS5pc0FycmF5LFxuXG5cdGlzV2luZG93OiBmdW5jdGlvbiggb2JqICkge1xuXHRcdHJldHVybiBvYmogIT0gbnVsbCAmJiBvYmogPT09IG9iai53aW5kb3c7XG5cdH0sXG5cblx0aXNOdW1lcmljOiBmdW5jdGlvbiggb2JqICkge1xuXHRcdC8vIHBhcnNlRmxvYXQgTmFOcyBudW1lcmljLWNhc3QgZmFsc2UgcG9zaXRpdmVzIChudWxsfHRydWV8ZmFsc2V8XCJcIilcblx0XHQvLyAuLi5idXQgbWlzaW50ZXJwcmV0cyBsZWFkaW5nLW51bWJlciBzdHJpbmdzLCBwYXJ0aWN1bGFybHkgaGV4IGxpdGVyYWxzIChcIjB4Li4uXCIpXG5cdFx0Ly8gc3VidHJhY3Rpb24gZm9yY2VzIGluZmluaXRpZXMgdG8gTmFOXG5cdFx0Ly8gYWRkaW5nIDEgY29ycmVjdHMgbG9zcyBvZiBwcmVjaXNpb24gZnJvbSBwYXJzZUZsb2F0ICgjMTUxMDApXG5cdFx0cmV0dXJuICFqUXVlcnkuaXNBcnJheSggb2JqICkgJiYgKG9iaiAtIHBhcnNlRmxvYXQoIG9iaiApICsgMSkgPj0gMDtcblx0fSxcblxuXHRpc1BsYWluT2JqZWN0OiBmdW5jdGlvbiggb2JqICkge1xuXHRcdC8vIE5vdCBwbGFpbiBvYmplY3RzOlxuXHRcdC8vIC0gQW55IG9iamVjdCBvciB2YWx1ZSB3aG9zZSBpbnRlcm5hbCBbW0NsYXNzXV0gcHJvcGVydHkgaXMgbm90IFwiW29iamVjdCBPYmplY3RdXCJcblx0XHQvLyAtIERPTSBub2Rlc1xuXHRcdC8vIC0gd2luZG93XG5cdFx0aWYgKCBqUXVlcnkudHlwZSggb2JqICkgIT09IFwib2JqZWN0XCIgfHwgb2JqLm5vZGVUeXBlIHx8IGpRdWVyeS5pc1dpbmRvdyggb2JqICkgKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0aWYgKCBvYmouY29uc3RydWN0b3IgJiZcblx0XHRcdFx0IWhhc093bi5jYWxsKCBvYmouY29uc3RydWN0b3IucHJvdG90eXBlLCBcImlzUHJvdG90eXBlT2ZcIiApICkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIElmIHRoZSBmdW5jdGlvbiBoYXNuJ3QgcmV0dXJuZWQgYWxyZWFkeSwgd2UncmUgY29uZmlkZW50IHRoYXRcblx0XHQvLyB8b2JqfCBpcyBhIHBsYWluIG9iamVjdCwgY3JlYXRlZCBieSB7fSBvciBjb25zdHJ1Y3RlZCB3aXRoIG5ldyBPYmplY3Rcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSxcblxuXHRpc0VtcHR5T2JqZWN0OiBmdW5jdGlvbiggb2JqICkge1xuXHRcdHZhciBuYW1lO1xuXHRcdGZvciAoIG5hbWUgaW4gb2JqICkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSxcblxuXHR0eXBlOiBmdW5jdGlvbiggb2JqICkge1xuXHRcdGlmICggb2JqID09IG51bGwgKSB7XG5cdFx0XHRyZXR1cm4gb2JqICsgXCJcIjtcblx0XHR9XG5cdFx0Ly8gU3VwcG9ydDogQW5kcm9pZDw0LjAsIGlPUzw2IChmdW5jdGlvbmlzaCBSZWdFeHApXG5cdFx0cmV0dXJuIHR5cGVvZiBvYmogPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIG9iaiA9PT0gXCJmdW5jdGlvblwiID9cblx0XHRcdGNsYXNzMnR5cGVbIHRvU3RyaW5nLmNhbGwob2JqKSBdIHx8IFwib2JqZWN0XCIgOlxuXHRcdFx0dHlwZW9mIG9iajtcblx0fSxcblxuXHQvLyBFdmFsdWF0ZXMgYSBzY3JpcHQgaW4gYSBnbG9iYWwgY29udGV4dFxuXHRnbG9iYWxFdmFsOiBmdW5jdGlvbiggY29kZSApIHtcblx0XHR2YXIgc2NyaXB0LFxuXHRcdFx0aW5kaXJlY3QgPSBldmFsO1xuXG5cdFx0Y29kZSA9IGpRdWVyeS50cmltKCBjb2RlICk7XG5cblx0XHRpZiAoIGNvZGUgKSB7XG5cdFx0XHQvLyBJZiB0aGUgY29kZSBpbmNsdWRlcyBhIHZhbGlkLCBwcm9sb2d1ZSBwb3NpdGlvblxuXHRcdFx0Ly8gc3RyaWN0IG1vZGUgcHJhZ21hLCBleGVjdXRlIGNvZGUgYnkgaW5qZWN0aW5nIGFcblx0XHRcdC8vIHNjcmlwdCB0YWcgaW50byB0aGUgZG9jdW1lbnQuXG5cdFx0XHRpZiAoIGNvZGUuaW5kZXhPZihcInVzZSBzdHJpY3RcIikgPT09IDEgKSB7XG5cdFx0XHRcdHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7XG5cdFx0XHRcdHNjcmlwdC50ZXh0ID0gY29kZTtcblx0XHRcdFx0ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCggc2NyaXB0ICkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggc2NyaXB0ICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gT3RoZXJ3aXNlLCBhdm9pZCB0aGUgRE9NIG5vZGUgY3JlYXRpb24sIGluc2VydGlvblxuXHRcdFx0Ly8gYW5kIHJlbW92YWwgYnkgdXNpbmcgYW4gaW5kaXJlY3QgZ2xvYmFsIGV2YWxcblx0XHRcdFx0aW5kaXJlY3QoIGNvZGUgKTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0Ly8gQ29udmVydCBkYXNoZWQgdG8gY2FtZWxDYXNlOyB1c2VkIGJ5IHRoZSBjc3MgYW5kIGRhdGEgbW9kdWxlc1xuXHQvLyBTdXBwb3J0OiBJRTktMTErXG5cdC8vIE1pY3Jvc29mdCBmb3Jnb3QgdG8gaHVtcCB0aGVpciB2ZW5kb3IgcHJlZml4ICgjOTU3Milcblx0Y2FtZWxDYXNlOiBmdW5jdGlvbiggc3RyaW5nICkge1xuXHRcdHJldHVybiBzdHJpbmcucmVwbGFjZSggcm1zUHJlZml4LCBcIm1zLVwiICkucmVwbGFjZSggcmRhc2hBbHBoYSwgZmNhbWVsQ2FzZSApO1xuXHR9LFxuXG5cdG5vZGVOYW1lOiBmdW5jdGlvbiggZWxlbSwgbmFtZSApIHtcblx0XHRyZXR1cm4gZWxlbS5ub2RlTmFtZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IG5hbWUudG9Mb3dlckNhc2UoKTtcblx0fSxcblxuXHQvLyBhcmdzIGlzIGZvciBpbnRlcm5hbCB1c2FnZSBvbmx5XG5cdGVhY2g6IGZ1bmN0aW9uKCBvYmosIGNhbGxiYWNrLCBhcmdzICkge1xuXHRcdHZhciB2YWx1ZSxcblx0XHRcdGkgPSAwLFxuXHRcdFx0bGVuZ3RoID0gb2JqLmxlbmd0aCxcblx0XHRcdGlzQXJyYXkgPSBpc0FycmF5bGlrZSggb2JqICk7XG5cblx0XHRpZiAoIGFyZ3MgKSB7XG5cdFx0XHRpZiAoIGlzQXJyYXkgKSB7XG5cdFx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkge1xuXHRcdFx0XHRcdHZhbHVlID0gY2FsbGJhY2suYXBwbHkoIG9ialsgaSBdLCBhcmdzICk7XG5cblx0XHRcdFx0XHRpZiAoIHZhbHVlID09PSBmYWxzZSApIHtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Zm9yICggaSBpbiBvYmogKSB7XG5cdFx0XHRcdFx0dmFsdWUgPSBjYWxsYmFjay5hcHBseSggb2JqWyBpIF0sIGFyZ3MgKTtcblxuXHRcdFx0XHRcdGlmICggdmFsdWUgPT09IGZhbHNlICkge1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHQvLyBBIHNwZWNpYWwsIGZhc3QsIGNhc2UgZm9yIHRoZSBtb3N0IGNvbW1vbiB1c2Ugb2YgZWFjaFxuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAoIGlzQXJyYXkgKSB7XG5cdFx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkge1xuXHRcdFx0XHRcdHZhbHVlID0gY2FsbGJhY2suY2FsbCggb2JqWyBpIF0sIGksIG9ialsgaSBdICk7XG5cblx0XHRcdFx0XHRpZiAoIHZhbHVlID09PSBmYWxzZSApIHtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Zm9yICggaSBpbiBvYmogKSB7XG5cdFx0XHRcdFx0dmFsdWUgPSBjYWxsYmFjay5jYWxsKCBvYmpbIGkgXSwgaSwgb2JqWyBpIF0gKTtcblxuXHRcdFx0XHRcdGlmICggdmFsdWUgPT09IGZhbHNlICkge1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG9iajtcblx0fSxcblxuXHQvLyBTdXBwb3J0OiBBbmRyb2lkPDQuMVxuXHR0cmltOiBmdW5jdGlvbiggdGV4dCApIHtcblx0XHRyZXR1cm4gdGV4dCA9PSBudWxsID9cblx0XHRcdFwiXCIgOlxuXHRcdFx0KCB0ZXh0ICsgXCJcIiApLnJlcGxhY2UoIHJ0cmltLCBcIlwiICk7XG5cdH0sXG5cblx0Ly8gcmVzdWx0cyBpcyBmb3IgaW50ZXJuYWwgdXNhZ2Ugb25seVxuXHRtYWtlQXJyYXk6IGZ1bmN0aW9uKCBhcnIsIHJlc3VsdHMgKSB7XG5cdFx0dmFyIHJldCA9IHJlc3VsdHMgfHwgW107XG5cblx0XHRpZiAoIGFyciAhPSBudWxsICkge1xuXHRcdFx0aWYgKCBpc0FycmF5bGlrZSggT2JqZWN0KGFycikgKSApIHtcblx0XHRcdFx0alF1ZXJ5Lm1lcmdlKCByZXQsXG5cdFx0XHRcdFx0dHlwZW9mIGFyciA9PT0gXCJzdHJpbmdcIiA/XG5cdFx0XHRcdFx0WyBhcnIgXSA6IGFyclxuXHRcdFx0XHQpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cHVzaC5jYWxsKCByZXQsIGFyciApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiByZXQ7XG5cdH0sXG5cblx0aW5BcnJheTogZnVuY3Rpb24oIGVsZW0sIGFyciwgaSApIHtcblx0XHRyZXR1cm4gYXJyID09IG51bGwgPyAtMSA6IGluZGV4T2YuY2FsbCggYXJyLCBlbGVtLCBpICk7XG5cdH0sXG5cblx0bWVyZ2U6IGZ1bmN0aW9uKCBmaXJzdCwgc2Vjb25kICkge1xuXHRcdHZhciBsZW4gPSArc2Vjb25kLmxlbmd0aCxcblx0XHRcdGogPSAwLFxuXHRcdFx0aSA9IGZpcnN0Lmxlbmd0aDtcblxuXHRcdGZvciAoIDsgaiA8IGxlbjsgaisrICkge1xuXHRcdFx0Zmlyc3RbIGkrKyBdID0gc2Vjb25kWyBqIF07XG5cdFx0fVxuXG5cdFx0Zmlyc3QubGVuZ3RoID0gaTtcblxuXHRcdHJldHVybiBmaXJzdDtcblx0fSxcblxuXHRncmVwOiBmdW5jdGlvbiggZWxlbXMsIGNhbGxiYWNrLCBpbnZlcnQgKSB7XG5cdFx0dmFyIGNhbGxiYWNrSW52ZXJzZSxcblx0XHRcdG1hdGNoZXMgPSBbXSxcblx0XHRcdGkgPSAwLFxuXHRcdFx0bGVuZ3RoID0gZWxlbXMubGVuZ3RoLFxuXHRcdFx0Y2FsbGJhY2tFeHBlY3QgPSAhaW52ZXJ0O1xuXG5cdFx0Ly8gR28gdGhyb3VnaCB0aGUgYXJyYXksIG9ubHkgc2F2aW5nIHRoZSBpdGVtc1xuXHRcdC8vIHRoYXQgcGFzcyB0aGUgdmFsaWRhdG9yIGZ1bmN0aW9uXG5cdFx0Zm9yICggOyBpIDwgbGVuZ3RoOyBpKysgKSB7XG5cdFx0XHRjYWxsYmFja0ludmVyc2UgPSAhY2FsbGJhY2soIGVsZW1zWyBpIF0sIGkgKTtcblx0XHRcdGlmICggY2FsbGJhY2tJbnZlcnNlICE9PSBjYWxsYmFja0V4cGVjdCApIHtcblx0XHRcdFx0bWF0Y2hlcy5wdXNoKCBlbGVtc1sgaSBdICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG1hdGNoZXM7XG5cdH0sXG5cblx0Ly8gYXJnIGlzIGZvciBpbnRlcm5hbCB1c2FnZSBvbmx5XG5cdG1hcDogZnVuY3Rpb24oIGVsZW1zLCBjYWxsYmFjaywgYXJnICkge1xuXHRcdHZhciB2YWx1ZSxcblx0XHRcdGkgPSAwLFxuXHRcdFx0bGVuZ3RoID0gZWxlbXMubGVuZ3RoLFxuXHRcdFx0aXNBcnJheSA9IGlzQXJyYXlsaWtlKCBlbGVtcyApLFxuXHRcdFx0cmV0ID0gW107XG5cblx0XHQvLyBHbyB0aHJvdWdoIHRoZSBhcnJheSwgdHJhbnNsYXRpbmcgZWFjaCBvZiB0aGUgaXRlbXMgdG8gdGhlaXIgbmV3IHZhbHVlc1xuXHRcdGlmICggaXNBcnJheSApIHtcblx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkge1xuXHRcdFx0XHR2YWx1ZSA9IGNhbGxiYWNrKCBlbGVtc1sgaSBdLCBpLCBhcmcgKTtcblxuXHRcdFx0XHRpZiAoIHZhbHVlICE9IG51bGwgKSB7XG5cdFx0XHRcdFx0cmV0LnB1c2goIHZhbHVlICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdC8vIEdvIHRocm91Z2ggZXZlcnkga2V5IG9uIHRoZSBvYmplY3QsXG5cdFx0fSBlbHNlIHtcblx0XHRcdGZvciAoIGkgaW4gZWxlbXMgKSB7XG5cdFx0XHRcdHZhbHVlID0gY2FsbGJhY2soIGVsZW1zWyBpIF0sIGksIGFyZyApO1xuXG5cdFx0XHRcdGlmICggdmFsdWUgIT0gbnVsbCApIHtcblx0XHRcdFx0XHRyZXQucHVzaCggdmFsdWUgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEZsYXR0ZW4gYW55IG5lc3RlZCBhcnJheXNcblx0XHRyZXR1cm4gY29uY2F0LmFwcGx5KCBbXSwgcmV0ICk7XG5cdH0sXG5cblx0Ly8gQSBnbG9iYWwgR1VJRCBjb3VudGVyIGZvciBvYmplY3RzXG5cdGd1aWQ6IDEsXG5cblx0Ly8gQmluZCBhIGZ1bmN0aW9uIHRvIGEgY29udGV4dCwgb3B0aW9uYWxseSBwYXJ0aWFsbHkgYXBwbHlpbmcgYW55XG5cdC8vIGFyZ3VtZW50cy5cblx0cHJveHk6IGZ1bmN0aW9uKCBmbiwgY29udGV4dCApIHtcblx0XHR2YXIgdG1wLCBhcmdzLCBwcm94eTtcblxuXHRcdGlmICggdHlwZW9mIGNvbnRleHQgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHR0bXAgPSBmblsgY29udGV4dCBdO1xuXHRcdFx0Y29udGV4dCA9IGZuO1xuXHRcdFx0Zm4gPSB0bXA7XG5cdFx0fVxuXG5cdFx0Ly8gUXVpY2sgY2hlY2sgdG8gZGV0ZXJtaW5lIGlmIHRhcmdldCBpcyBjYWxsYWJsZSwgaW4gdGhlIHNwZWNcblx0XHQvLyB0aGlzIHRocm93cyBhIFR5cGVFcnJvciwgYnV0IHdlIHdpbGwganVzdCByZXR1cm4gdW5kZWZpbmVkLlxuXHRcdGlmICggIWpRdWVyeS5pc0Z1bmN0aW9uKCBmbiApICkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHQvLyBTaW11bGF0ZWQgYmluZFxuXHRcdGFyZ3MgPSBzbGljZS5jYWxsKCBhcmd1bWVudHMsIDIgKTtcblx0XHRwcm94eSA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIGZuLmFwcGx5KCBjb250ZXh0IHx8IHRoaXMsIGFyZ3MuY29uY2F0KCBzbGljZS5jYWxsKCBhcmd1bWVudHMgKSApICk7XG5cdFx0fTtcblxuXHRcdC8vIFNldCB0aGUgZ3VpZCBvZiB1bmlxdWUgaGFuZGxlciB0byB0aGUgc2FtZSBvZiBvcmlnaW5hbCBoYW5kbGVyLCBzbyBpdCBjYW4gYmUgcmVtb3ZlZFxuXHRcdHByb3h5Lmd1aWQgPSBmbi5ndWlkID0gZm4uZ3VpZCB8fCBqUXVlcnkuZ3VpZCsrO1xuXG5cdFx0cmV0dXJuIHByb3h5O1xuXHR9LFxuXG5cdG5vdzogRGF0ZS5ub3csXG5cblx0Ly8galF1ZXJ5LnN1cHBvcnQgaXMgbm90IHVzZWQgaW4gQ29yZSBidXQgb3RoZXIgcHJvamVjdHMgYXR0YWNoIHRoZWlyXG5cdC8vIHByb3BlcnRpZXMgdG8gaXQgc28gaXQgbmVlZHMgdG8gZXhpc3QuXG5cdHN1cHBvcnQ6IHN1cHBvcnRcbn0pO1xuXG4vLyBQb3B1bGF0ZSB0aGUgY2xhc3MydHlwZSBtYXBcbmpRdWVyeS5lYWNoKFwiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvclwiLnNwbGl0KFwiIFwiKSwgZnVuY3Rpb24oaSwgbmFtZSkge1xuXHRjbGFzczJ0eXBlWyBcIltvYmplY3QgXCIgKyBuYW1lICsgXCJdXCIgXSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbn0pO1xuXG5mdW5jdGlvbiBpc0FycmF5bGlrZSggb2JqICkge1xuXG5cdC8vIFN1cHBvcnQ6IGlPUyA4LjIgKG5vdCByZXByb2R1Y2libGUgaW4gc2ltdWxhdG9yKVxuXHQvLyBgaW5gIGNoZWNrIHVzZWQgdG8gcHJldmVudCBKSVQgZXJyb3IgKGdoLTIxNDUpXG5cdC8vIGhhc093biBpc24ndCB1c2VkIGhlcmUgZHVlIHRvIGZhbHNlIG5lZ2F0aXZlc1xuXHQvLyByZWdhcmRpbmcgTm9kZWxpc3QgbGVuZ3RoIGluIElFXG5cdHZhciBsZW5ndGggPSBcImxlbmd0aFwiIGluIG9iaiAmJiBvYmoubGVuZ3RoLFxuXHRcdHR5cGUgPSBqUXVlcnkudHlwZSggb2JqICk7XG5cblx0aWYgKCB0eXBlID09PSBcImZ1bmN0aW9uXCIgfHwgalF1ZXJ5LmlzV2luZG93KCBvYmogKSApIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRpZiAoIG9iai5ub2RlVHlwZSA9PT0gMSAmJiBsZW5ndGggKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRyZXR1cm4gdHlwZSA9PT0gXCJhcnJheVwiIHx8IGxlbmd0aCA9PT0gMCB8fFxuXHRcdHR5cGVvZiBsZW5ndGggPT09IFwibnVtYmVyXCIgJiYgbGVuZ3RoID4gMCAmJiAoIGxlbmd0aCAtIDEgKSBpbiBvYmo7XG59XG52YXIgU2l6emxlID1cbi8qIVxuICogU2l6emxlIENTUyBTZWxlY3RvciBFbmdpbmUgdjIuMi4wLXByZVxuICogaHR0cDovL3NpenpsZWpzLmNvbS9cbiAqXG4gKiBDb3B5cmlnaHQgMjAwOCwgMjAxNCBqUXVlcnkgRm91bmRhdGlvbiwgSW5jLiBhbmQgb3RoZXIgY29udHJpYnV0b3JzXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2VcbiAqXG4gKiBEYXRlOiAyMDE0LTEyLTE2XG4gKi9cbihmdW5jdGlvbiggd2luZG93ICkge1xuXG52YXIgaSxcblx0c3VwcG9ydCxcblx0RXhwcixcblx0Z2V0VGV4dCxcblx0aXNYTUwsXG5cdHRva2VuaXplLFxuXHRjb21waWxlLFxuXHRzZWxlY3QsXG5cdG91dGVybW9zdENvbnRleHQsXG5cdHNvcnRJbnB1dCxcblx0aGFzRHVwbGljYXRlLFxuXG5cdC8vIExvY2FsIGRvY3VtZW50IHZhcnNcblx0c2V0RG9jdW1lbnQsXG5cdGRvY3VtZW50LFxuXHRkb2NFbGVtLFxuXHRkb2N1bWVudElzSFRNTCxcblx0cmJ1Z2d5UVNBLFxuXHRyYnVnZ3lNYXRjaGVzLFxuXHRtYXRjaGVzLFxuXHRjb250YWlucyxcblxuXHQvLyBJbnN0YW5jZS1zcGVjaWZpYyBkYXRhXG5cdGV4cGFuZG8gPSBcInNpenpsZVwiICsgMSAqIG5ldyBEYXRlKCksXG5cdHByZWZlcnJlZERvYyA9IHdpbmRvdy5kb2N1bWVudCxcblx0ZGlycnVucyA9IDAsXG5cdGRvbmUgPSAwLFxuXHRjbGFzc0NhY2hlID0gY3JlYXRlQ2FjaGUoKSxcblx0dG9rZW5DYWNoZSA9IGNyZWF0ZUNhY2hlKCksXG5cdGNvbXBpbGVyQ2FjaGUgPSBjcmVhdGVDYWNoZSgpLFxuXHRzb3J0T3JkZXIgPSBmdW5jdGlvbiggYSwgYiApIHtcblx0XHRpZiAoIGEgPT09IGIgKSB7XG5cdFx0XHRoYXNEdXBsaWNhdGUgPSB0cnVlO1xuXHRcdH1cblx0XHRyZXR1cm4gMDtcblx0fSxcblxuXHQvLyBHZW5lcmFsLXB1cnBvc2UgY29uc3RhbnRzXG5cdE1BWF9ORUdBVElWRSA9IDEgPDwgMzEsXG5cblx0Ly8gSW5zdGFuY2UgbWV0aG9kc1xuXHRoYXNPd24gPSAoe30pLmhhc093blByb3BlcnR5LFxuXHRhcnIgPSBbXSxcblx0cG9wID0gYXJyLnBvcCxcblx0cHVzaF9uYXRpdmUgPSBhcnIucHVzaCxcblx0cHVzaCA9IGFyci5wdXNoLFxuXHRzbGljZSA9IGFyci5zbGljZSxcblx0Ly8gVXNlIGEgc3RyaXBwZWQtZG93biBpbmRleE9mIGFzIGl0J3MgZmFzdGVyIHRoYW4gbmF0aXZlXG5cdC8vIGh0dHA6Ly9qc3BlcmYuY29tL3Rob3ItaW5kZXhvZi12cy1mb3IvNVxuXHRpbmRleE9mID0gZnVuY3Rpb24oIGxpc3QsIGVsZW0gKSB7XG5cdFx0dmFyIGkgPSAwLFxuXHRcdFx0bGVuID0gbGlzdC5sZW5ndGg7XG5cdFx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRpZiAoIGxpc3RbaV0gPT09IGVsZW0gKSB7XG5cdFx0XHRcdHJldHVybiBpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gLTE7XG5cdH0sXG5cblx0Ym9vbGVhbnMgPSBcImNoZWNrZWR8c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxpc21hcHxsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkXCIsXG5cblx0Ly8gUmVndWxhciBleHByZXNzaW9uc1xuXG5cdC8vIFdoaXRlc3BhY2UgY2hhcmFjdGVycyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXNlbGVjdG9ycy8jd2hpdGVzcGFjZVxuXHR3aGl0ZXNwYWNlID0gXCJbXFxcXHgyMFxcXFx0XFxcXHJcXFxcblxcXFxmXVwiLFxuXHQvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXN5bnRheC8jY2hhcmFjdGVyc1xuXHRjaGFyYWN0ZXJFbmNvZGluZyA9IFwiKD86XFxcXFxcXFwufFtcXFxcdy1dfFteXFxcXHgwMC1cXFxceGEwXSkrXCIsXG5cblx0Ly8gTG9vc2VseSBtb2RlbGVkIG9uIENTUyBpZGVudGlmaWVyIGNoYXJhY3RlcnNcblx0Ly8gQW4gdW5xdW90ZWQgdmFsdWUgc2hvdWxkIGJlIGEgQ1NTIGlkZW50aWZpZXIgaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1zZWxlY3RvcnMvI2F0dHJpYnV0ZS1zZWxlY3RvcnNcblx0Ly8gUHJvcGVyIHN5bnRheDogaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMjEvc3luZGF0YS5odG1sI3ZhbHVlLWRlZi1pZGVudGlmaWVyXG5cdGlkZW50aWZpZXIgPSBjaGFyYWN0ZXJFbmNvZGluZy5yZXBsYWNlKCBcIndcIiwgXCJ3I1wiICksXG5cblx0Ly8gQXR0cmlidXRlIHNlbGVjdG9yczogaHR0cDovL3d3dy53My5vcmcvVFIvc2VsZWN0b3JzLyNhdHRyaWJ1dGUtc2VsZWN0b3JzXG5cdGF0dHJpYnV0ZXMgPSBcIlxcXFxbXCIgKyB3aGl0ZXNwYWNlICsgXCIqKFwiICsgY2hhcmFjdGVyRW5jb2RpbmcgKyBcIikoPzpcIiArIHdoaXRlc3BhY2UgK1xuXHRcdC8vIE9wZXJhdG9yIChjYXB0dXJlIDIpXG5cdFx0XCIqKFsqXiR8IX5dPz0pXCIgKyB3aGl0ZXNwYWNlICtcblx0XHQvLyBcIkF0dHJpYnV0ZSB2YWx1ZXMgbXVzdCBiZSBDU1MgaWRlbnRpZmllcnMgW2NhcHR1cmUgNV0gb3Igc3RyaW5ncyBbY2FwdHVyZSAzIG9yIGNhcHR1cmUgNF1cIlxuXHRcdFwiKig/OicoKD86XFxcXFxcXFwufFteXFxcXFxcXFwnXSkqKSd8XFxcIigoPzpcXFxcXFxcXC58W15cXFxcXFxcXFxcXCJdKSopXFxcInwoXCIgKyBpZGVudGlmaWVyICsgXCIpKXwpXCIgKyB3aGl0ZXNwYWNlICtcblx0XHRcIipcXFxcXVwiLFxuXG5cdHBzZXVkb3MgPSBcIjooXCIgKyBjaGFyYWN0ZXJFbmNvZGluZyArIFwiKSg/OlxcXFwoKFwiICtcblx0XHQvLyBUbyByZWR1Y2UgdGhlIG51bWJlciBvZiBzZWxlY3RvcnMgbmVlZGluZyB0b2tlbml6ZSBpbiB0aGUgcHJlRmlsdGVyLCBwcmVmZXIgYXJndW1lbnRzOlxuXHRcdC8vIDEuIHF1b3RlZCAoY2FwdHVyZSAzOyBjYXB0dXJlIDQgb3IgY2FwdHVyZSA1KVxuXHRcdFwiKCcoKD86XFxcXFxcXFwufFteXFxcXFxcXFwnXSkqKSd8XFxcIigoPzpcXFxcXFxcXC58W15cXFxcXFxcXFxcXCJdKSopXFxcIil8XCIgK1xuXHRcdC8vIDIuIHNpbXBsZSAoY2FwdHVyZSA2KVxuXHRcdFwiKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcKClbXFxcXF1dfFwiICsgYXR0cmlidXRlcyArIFwiKSopfFwiICtcblx0XHQvLyAzLiBhbnl0aGluZyBlbHNlIChjYXB0dXJlIDIpXG5cdFx0XCIuKlwiICtcblx0XHRcIilcXFxcKXwpXCIsXG5cblx0Ly8gTGVhZGluZyBhbmQgbm9uLWVzY2FwZWQgdHJhaWxpbmcgd2hpdGVzcGFjZSwgY2FwdHVyaW5nIHNvbWUgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVycyBwcmVjZWRpbmcgdGhlIGxhdHRlclxuXHRyd2hpdGVzcGFjZSA9IG5ldyBSZWdFeHAoIHdoaXRlc3BhY2UgKyBcIitcIiwgXCJnXCIgKSxcblx0cnRyaW0gPSBuZXcgUmVnRXhwKCBcIl5cIiArIHdoaXRlc3BhY2UgKyBcIit8KCg/Ol58W15cXFxcXFxcXF0pKD86XFxcXFxcXFwuKSopXCIgKyB3aGl0ZXNwYWNlICsgXCIrJFwiLCBcImdcIiApLFxuXG5cdHJjb21tYSA9IG5ldyBSZWdFeHAoIFwiXlwiICsgd2hpdGVzcGFjZSArIFwiKixcIiArIHdoaXRlc3BhY2UgKyBcIipcIiApLFxuXHRyY29tYmluYXRvcnMgPSBuZXcgUmVnRXhwKCBcIl5cIiArIHdoaXRlc3BhY2UgKyBcIiooWz4rfl18XCIgKyB3aGl0ZXNwYWNlICsgXCIpXCIgKyB3aGl0ZXNwYWNlICsgXCIqXCIgKSxcblxuXHRyYXR0cmlidXRlUXVvdGVzID0gbmV3IFJlZ0V4cCggXCI9XCIgKyB3aGl0ZXNwYWNlICsgXCIqKFteXFxcXF0nXFxcIl0qPylcIiArIHdoaXRlc3BhY2UgKyBcIipcXFxcXVwiLCBcImdcIiApLFxuXG5cdHJwc2V1ZG8gPSBuZXcgUmVnRXhwKCBwc2V1ZG9zICksXG5cdHJpZGVudGlmaWVyID0gbmV3IFJlZ0V4cCggXCJeXCIgKyBpZGVudGlmaWVyICsgXCIkXCIgKSxcblxuXHRtYXRjaEV4cHIgPSB7XG5cdFx0XCJJRFwiOiBuZXcgUmVnRXhwKCBcIl4jKFwiICsgY2hhcmFjdGVyRW5jb2RpbmcgKyBcIilcIiApLFxuXHRcdFwiQ0xBU1NcIjogbmV3IFJlZ0V4cCggXCJeXFxcXC4oXCIgKyBjaGFyYWN0ZXJFbmNvZGluZyArIFwiKVwiICksXG5cdFx0XCJUQUdcIjogbmV3IFJlZ0V4cCggXCJeKFwiICsgY2hhcmFjdGVyRW5jb2RpbmcucmVwbGFjZSggXCJ3XCIsIFwidypcIiApICsgXCIpXCIgKSxcblx0XHRcIkFUVFJcIjogbmV3IFJlZ0V4cCggXCJeXCIgKyBhdHRyaWJ1dGVzICksXG5cdFx0XCJQU0VVRE9cIjogbmV3IFJlZ0V4cCggXCJeXCIgKyBwc2V1ZG9zICksXG5cdFx0XCJDSElMRFwiOiBuZXcgUmVnRXhwKCBcIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcXFwoXCIgKyB3aGl0ZXNwYWNlICtcblx0XHRcdFwiKihldmVufG9kZHwoKFsrLV18KShcXFxcZCopbnwpXCIgKyB3aGl0ZXNwYWNlICsgXCIqKD86KFsrLV18KVwiICsgd2hpdGVzcGFjZSArXG5cdFx0XHRcIiooXFxcXGQrKXwpKVwiICsgd2hpdGVzcGFjZSArIFwiKlxcXFwpfClcIiwgXCJpXCIgKSxcblx0XHRcImJvb2xcIjogbmV3IFJlZ0V4cCggXCJeKD86XCIgKyBib29sZWFucyArIFwiKSRcIiwgXCJpXCIgKSxcblx0XHQvLyBGb3IgdXNlIGluIGxpYnJhcmllcyBpbXBsZW1lbnRpbmcgLmlzKClcblx0XHQvLyBXZSB1c2UgdGhpcyBmb3IgUE9TIG1hdGNoaW5nIGluIGBzZWxlY3RgXG5cdFx0XCJuZWVkc0NvbnRleHRcIjogbmV3IFJlZ0V4cCggXCJeXCIgKyB3aGl0ZXNwYWNlICsgXCIqWz4rfl18OihldmVufG9kZHxlcXxndHxsdHxudGh8Zmlyc3R8bGFzdCkoPzpcXFxcKFwiICtcblx0XHRcdHdoaXRlc3BhY2UgKyBcIiooKD86LVxcXFxkKT9cXFxcZCopXCIgKyB3aGl0ZXNwYWNlICsgXCIqXFxcXCl8KSg/PVteLV18JClcIiwgXCJpXCIgKVxuXHR9LFxuXG5cdHJpbnB1dHMgPSAvXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLFxuXHRyaGVhZGVyID0gL15oXFxkJC9pLFxuXG5cdHJuYXRpdmUgPSAvXltee10rXFx7XFxzKlxcW25hdGl2ZSBcXHcvLFxuXG5cdC8vIEVhc2lseS1wYXJzZWFibGUvcmV0cmlldmFibGUgSUQgb3IgVEFHIG9yIENMQVNTIHNlbGVjdG9yc1xuXHRycXVpY2tFeHByID0gL14oPzojKFtcXHctXSspfChcXHcrKXxcXC4oW1xcdy1dKykpJC8sXG5cblx0cnNpYmxpbmcgPSAvWyt+XS8sXG5cdHJlc2NhcGUgPSAvJ3xcXFxcL2csXG5cblx0Ly8gQ1NTIGVzY2FwZXMgaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMjEvc3luZGF0YS5odG1sI2VzY2FwZWQtY2hhcmFjdGVyc1xuXHRydW5lc2NhcGUgPSBuZXcgUmVnRXhwKCBcIlxcXFxcXFxcKFtcXFxcZGEtZl17MSw2fVwiICsgd2hpdGVzcGFjZSArIFwiP3woXCIgKyB3aGl0ZXNwYWNlICsgXCIpfC4pXCIsIFwiaWdcIiApLFxuXHRmdW5lc2NhcGUgPSBmdW5jdGlvbiggXywgZXNjYXBlZCwgZXNjYXBlZFdoaXRlc3BhY2UgKSB7XG5cdFx0dmFyIGhpZ2ggPSBcIjB4XCIgKyBlc2NhcGVkIC0gMHgxMDAwMDtcblx0XHQvLyBOYU4gbWVhbnMgbm9uLWNvZGVwb2ludFxuXHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3g8MjRcblx0XHQvLyBXb3JrYXJvdW5kIGVycm9uZW91cyBudW1lcmljIGludGVycHJldGF0aW9uIG9mICtcIjB4XCJcblx0XHRyZXR1cm4gaGlnaCAhPT0gaGlnaCB8fCBlc2NhcGVkV2hpdGVzcGFjZSA/XG5cdFx0XHRlc2NhcGVkIDpcblx0XHRcdGhpZ2ggPCAwID9cblx0XHRcdFx0Ly8gQk1QIGNvZGVwb2ludFxuXHRcdFx0XHRTdHJpbmcuZnJvbUNoYXJDb2RlKCBoaWdoICsgMHgxMDAwMCApIDpcblx0XHRcdFx0Ly8gU3VwcGxlbWVudGFsIFBsYW5lIGNvZGVwb2ludCAoc3Vycm9nYXRlIHBhaXIpXG5cdFx0XHRcdFN0cmluZy5mcm9tQ2hhckNvZGUoIGhpZ2ggPj4gMTAgfCAweEQ4MDAsIGhpZ2ggJiAweDNGRiB8IDB4REMwMCApO1xuXHR9LFxuXG5cdC8vIFVzZWQgZm9yIGlmcmFtZXNcblx0Ly8gU2VlIHNldERvY3VtZW50KClcblx0Ly8gUmVtb3ZpbmcgdGhlIGZ1bmN0aW9uIHdyYXBwZXIgY2F1c2VzIGEgXCJQZXJtaXNzaW9uIERlbmllZFwiXG5cdC8vIGVycm9yIGluIElFXG5cdHVubG9hZEhhbmRsZXIgPSBmdW5jdGlvbigpIHtcblx0XHRzZXREb2N1bWVudCgpO1xuXHR9O1xuXG4vLyBPcHRpbWl6ZSBmb3IgcHVzaC5hcHBseSggXywgTm9kZUxpc3QgKVxudHJ5IHtcblx0cHVzaC5hcHBseShcblx0XHQoYXJyID0gc2xpY2UuY2FsbCggcHJlZmVycmVkRG9jLmNoaWxkTm9kZXMgKSksXG5cdFx0cHJlZmVycmVkRG9jLmNoaWxkTm9kZXNcblx0KTtcblx0Ly8gU3VwcG9ydDogQW5kcm9pZDw0LjBcblx0Ly8gRGV0ZWN0IHNpbGVudGx5IGZhaWxpbmcgcHVzaC5hcHBseVxuXHRhcnJbIHByZWZlcnJlZERvYy5jaGlsZE5vZGVzLmxlbmd0aCBdLm5vZGVUeXBlO1xufSBjYXRjaCAoIGUgKSB7XG5cdHB1c2ggPSB7IGFwcGx5OiBhcnIubGVuZ3RoID9cblxuXHRcdC8vIExldmVyYWdlIHNsaWNlIGlmIHBvc3NpYmxlXG5cdFx0ZnVuY3Rpb24oIHRhcmdldCwgZWxzICkge1xuXHRcdFx0cHVzaF9uYXRpdmUuYXBwbHkoIHRhcmdldCwgc2xpY2UuY2FsbChlbHMpICk7XG5cdFx0fSA6XG5cblx0XHQvLyBTdXBwb3J0OiBJRTw5XG5cdFx0Ly8gT3RoZXJ3aXNlIGFwcGVuZCBkaXJlY3RseVxuXHRcdGZ1bmN0aW9uKCB0YXJnZXQsIGVscyApIHtcblx0XHRcdHZhciBqID0gdGFyZ2V0Lmxlbmd0aCxcblx0XHRcdFx0aSA9IDA7XG5cdFx0XHQvLyBDYW4ndCB0cnVzdCBOb2RlTGlzdC5sZW5ndGhcblx0XHRcdHdoaWxlICggKHRhcmdldFtqKytdID0gZWxzW2krK10pICkge31cblx0XHRcdHRhcmdldC5sZW5ndGggPSBqIC0gMTtcblx0XHR9XG5cdH07XG59XG5cbmZ1bmN0aW9uIFNpenpsZSggc2VsZWN0b3IsIGNvbnRleHQsIHJlc3VsdHMsIHNlZWQgKSB7XG5cdHZhciBtYXRjaCwgZWxlbSwgbSwgbm9kZVR5cGUsXG5cdFx0Ly8gUVNBIHZhcnNcblx0XHRpLCBncm91cHMsIG9sZCwgbmlkLCBuZXdDb250ZXh0LCBuZXdTZWxlY3RvcjtcblxuXHRpZiAoICggY29udGV4dCA/IGNvbnRleHQub3duZXJEb2N1bWVudCB8fCBjb250ZXh0IDogcHJlZmVycmVkRG9jICkgIT09IGRvY3VtZW50ICkge1xuXHRcdHNldERvY3VtZW50KCBjb250ZXh0ICk7XG5cdH1cblxuXHRjb250ZXh0ID0gY29udGV4dCB8fCBkb2N1bWVudDtcblx0cmVzdWx0cyA9IHJlc3VsdHMgfHwgW107XG5cdG5vZGVUeXBlID0gY29udGV4dC5ub2RlVHlwZTtcblxuXHRpZiAoIHR5cGVvZiBzZWxlY3RvciAhPT0gXCJzdHJpbmdcIiB8fCAhc2VsZWN0b3IgfHxcblx0XHRub2RlVHlwZSAhPT0gMSAmJiBub2RlVHlwZSAhPT0gOSAmJiBub2RlVHlwZSAhPT0gMTEgKSB7XG5cblx0XHRyZXR1cm4gcmVzdWx0cztcblx0fVxuXG5cdGlmICggIXNlZWQgJiYgZG9jdW1lbnRJc0hUTUwgKSB7XG5cblx0XHQvLyBUcnkgdG8gc2hvcnRjdXQgZmluZCBvcGVyYXRpb25zIHdoZW4gcG9zc2libGUgKGUuZy4sIG5vdCB1bmRlciBEb2N1bWVudEZyYWdtZW50KVxuXHRcdGlmICggbm9kZVR5cGUgIT09IDExICYmIChtYXRjaCA9IHJxdWlja0V4cHIuZXhlYyggc2VsZWN0b3IgKSkgKSB7XG5cdFx0XHQvLyBTcGVlZC11cDogU2l6emxlKFwiI0lEXCIpXG5cdFx0XHRpZiAoIChtID0gbWF0Y2hbMV0pICkge1xuXHRcdFx0XHRpZiAoIG5vZGVUeXBlID09PSA5ICkge1xuXHRcdFx0XHRcdGVsZW0gPSBjb250ZXh0LmdldEVsZW1lbnRCeUlkKCBtICk7XG5cdFx0XHRcdFx0Ly8gQ2hlY2sgcGFyZW50Tm9kZSB0byBjYXRjaCB3aGVuIEJsYWNrYmVycnkgNC42IHJldHVybnNcblx0XHRcdFx0XHQvLyBub2RlcyB0aGF0IGFyZSBubyBsb25nZXIgaW4gdGhlIGRvY3VtZW50IChqUXVlcnkgIzY5NjMpXG5cdFx0XHRcdFx0aWYgKCBlbGVtICYmIGVsZW0ucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0XHRcdC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBJRSwgT3BlcmEsIGFuZCBXZWJraXQgcmV0dXJuIGl0ZW1zXG5cdFx0XHRcdFx0XHQvLyBieSBuYW1lIGluc3RlYWQgb2YgSURcblx0XHRcdFx0XHRcdGlmICggZWxlbS5pZCA9PT0gbSApIHtcblx0XHRcdFx0XHRcdFx0cmVzdWx0cy5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gQ29udGV4dCBpcyBub3QgYSBkb2N1bWVudFxuXHRcdFx0XHRcdGlmICggY29udGV4dC5vd25lckRvY3VtZW50ICYmIChlbGVtID0gY29udGV4dC5vd25lckRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCBtICkpICYmXG5cdFx0XHRcdFx0XHRjb250YWlucyggY29udGV4dCwgZWxlbSApICYmIGVsZW0uaWQgPT09IG0gKSB7XG5cdFx0XHRcdFx0XHRyZXN1bHRzLnB1c2goIGVsZW0gKTtcblx0XHRcdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHQvLyBTcGVlZC11cDogU2l6emxlKFwiVEFHXCIpXG5cdFx0XHR9IGVsc2UgaWYgKCBtYXRjaFsyXSApIHtcblx0XHRcdFx0cHVzaC5hcHBseSggcmVzdWx0cywgY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggc2VsZWN0b3IgKSApO1xuXHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblxuXHRcdFx0Ly8gU3BlZWQtdXA6IFNpenpsZShcIi5DTEFTU1wiKVxuXHRcdFx0fSBlbHNlIGlmICggKG0gPSBtYXRjaFszXSkgJiYgc3VwcG9ydC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICkge1xuXHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLCBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIG0gKSApO1xuXHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBRU0EgcGF0aFxuXHRcdGlmICggc3VwcG9ydC5xc2EgJiYgKCFyYnVnZ3lRU0EgfHwgIXJidWdneVFTQS50ZXN0KCBzZWxlY3RvciApKSApIHtcblx0XHRcdG5pZCA9IG9sZCA9IGV4cGFuZG87XG5cdFx0XHRuZXdDb250ZXh0ID0gY29udGV4dDtcblx0XHRcdG5ld1NlbGVjdG9yID0gbm9kZVR5cGUgIT09IDEgJiYgc2VsZWN0b3I7XG5cblx0XHRcdC8vIHFTQSB3b3JrcyBzdHJhbmdlbHkgb24gRWxlbWVudC1yb290ZWQgcXVlcmllc1xuXHRcdFx0Ly8gV2UgY2FuIHdvcmsgYXJvdW5kIHRoaXMgYnkgc3BlY2lmeWluZyBhbiBleHRyYSBJRCBvbiB0aGUgcm9vdFxuXHRcdFx0Ly8gYW5kIHdvcmtpbmcgdXAgZnJvbSB0aGVyZSAoVGhhbmtzIHRvIEFuZHJldyBEdXBvbnQgZm9yIHRoZSB0ZWNobmlxdWUpXG5cdFx0XHQvLyBJRSA4IGRvZXNuJ3Qgd29yayBvbiBvYmplY3QgZWxlbWVudHNcblx0XHRcdGlmICggbm9kZVR5cGUgPT09IDEgJiYgY29udGV4dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpICE9PSBcIm9iamVjdFwiICkge1xuXHRcdFx0XHRncm91cHMgPSB0b2tlbml6ZSggc2VsZWN0b3IgKTtcblxuXHRcdFx0XHRpZiAoIChvbGQgPSBjb250ZXh0LmdldEF0dHJpYnV0ZShcImlkXCIpKSApIHtcblx0XHRcdFx0XHRuaWQgPSBvbGQucmVwbGFjZSggcmVzY2FwZSwgXCJcXFxcJCZcIiApO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGNvbnRleHQuc2V0QXR0cmlidXRlKCBcImlkXCIsIG5pZCApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdG5pZCA9IFwiW2lkPSdcIiArIG5pZCArIFwiJ10gXCI7XG5cblx0XHRcdFx0aSA9IGdyb3Vwcy5sZW5ndGg7XG5cdFx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRcdGdyb3Vwc1tpXSA9IG5pZCArIHRvU2VsZWN0b3IoIGdyb3Vwc1tpXSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdG5ld0NvbnRleHQgPSByc2libGluZy50ZXN0KCBzZWxlY3RvciApICYmIHRlc3RDb250ZXh0KCBjb250ZXh0LnBhcmVudE5vZGUgKSB8fCBjb250ZXh0O1xuXHRcdFx0XHRuZXdTZWxlY3RvciA9IGdyb3Vwcy5qb2luKFwiLFwiKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBuZXdTZWxlY3RvciApIHtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLFxuXHRcdFx0XHRcdFx0bmV3Q29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKCBuZXdTZWxlY3RvciApXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdFx0fSBjYXRjaChxc2FFcnJvcikge1xuXHRcdFx0XHR9IGZpbmFsbHkge1xuXHRcdFx0XHRcdGlmICggIW9sZCApIHtcblx0XHRcdFx0XHRcdGNvbnRleHQucmVtb3ZlQXR0cmlidXRlKFwiaWRcIik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gQWxsIG90aGVyc1xuXHRyZXR1cm4gc2VsZWN0KCBzZWxlY3Rvci5yZXBsYWNlKCBydHJpbSwgXCIkMVwiICksIGNvbnRleHQsIHJlc3VsdHMsIHNlZWQgKTtcbn1cblxuLyoqXG4gKiBDcmVhdGUga2V5LXZhbHVlIGNhY2hlcyBvZiBsaW1pdGVkIHNpemVcbiAqIEByZXR1cm5zIHtGdW5jdGlvbihzdHJpbmcsIE9iamVjdCl9IFJldHVybnMgdGhlIE9iamVjdCBkYXRhIGFmdGVyIHN0b3JpbmcgaXQgb24gaXRzZWxmIHdpdGhcbiAqXHRwcm9wZXJ0eSBuYW1lIHRoZSAoc3BhY2Utc3VmZml4ZWQpIHN0cmluZyBhbmQgKGlmIHRoZSBjYWNoZSBpcyBsYXJnZXIgdGhhbiBFeHByLmNhY2hlTGVuZ3RoKVxuICpcdGRlbGV0aW5nIHRoZSBvbGRlc3QgZW50cnlcbiAqL1xuZnVuY3Rpb24gY3JlYXRlQ2FjaGUoKSB7XG5cdHZhciBrZXlzID0gW107XG5cblx0ZnVuY3Rpb24gY2FjaGUoIGtleSwgdmFsdWUgKSB7XG5cdFx0Ly8gVXNlIChrZXkgKyBcIiBcIikgdG8gYXZvaWQgY29sbGlzaW9uIHdpdGggbmF0aXZlIHByb3RvdHlwZSBwcm9wZXJ0aWVzIChzZWUgSXNzdWUgIzE1Nylcblx0XHRpZiAoIGtleXMucHVzaCgga2V5ICsgXCIgXCIgKSA+IEV4cHIuY2FjaGVMZW5ndGggKSB7XG5cdFx0XHQvLyBPbmx5IGtlZXAgdGhlIG1vc3QgcmVjZW50IGVudHJpZXNcblx0XHRcdGRlbGV0ZSBjYWNoZVsga2V5cy5zaGlmdCgpIF07XG5cdFx0fVxuXHRcdHJldHVybiAoY2FjaGVbIGtleSArIFwiIFwiIF0gPSB2YWx1ZSk7XG5cdH1cblx0cmV0dXJuIGNhY2hlO1xufVxuXG4vKipcbiAqIE1hcmsgYSBmdW5jdGlvbiBmb3Igc3BlY2lhbCB1c2UgYnkgU2l6emxlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBUaGUgZnVuY3Rpb24gdG8gbWFya1xuICovXG5mdW5jdGlvbiBtYXJrRnVuY3Rpb24oIGZuICkge1xuXHRmblsgZXhwYW5kbyBdID0gdHJ1ZTtcblx0cmV0dXJuIGZuO1xufVxuXG4vKipcbiAqIFN1cHBvcnQgdGVzdGluZyB1c2luZyBhbiBlbGVtZW50XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBQYXNzZWQgdGhlIGNyZWF0ZWQgZGl2IGFuZCBleHBlY3RzIGEgYm9vbGVhbiByZXN1bHRcbiAqL1xuZnVuY3Rpb24gYXNzZXJ0KCBmbiApIHtcblx0dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG5cblx0dHJ5IHtcblx0XHRyZXR1cm4gISFmbiggZGl2ICk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH0gZmluYWxseSB7XG5cdFx0Ly8gUmVtb3ZlIGZyb20gaXRzIHBhcmVudCBieSBkZWZhdWx0XG5cdFx0aWYgKCBkaXYucGFyZW50Tm9kZSApIHtcblx0XHRcdGRpdi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBkaXYgKTtcblx0XHR9XG5cdFx0Ly8gcmVsZWFzZSBtZW1vcnkgaW4gSUVcblx0XHRkaXYgPSBudWxsO1xuXHR9XG59XG5cbi8qKlxuICogQWRkcyB0aGUgc2FtZSBoYW5kbGVyIGZvciBhbGwgb2YgdGhlIHNwZWNpZmllZCBhdHRyc1xuICogQHBhcmFtIHtTdHJpbmd9IGF0dHJzIFBpcGUtc2VwYXJhdGVkIGxpc3Qgb2YgYXR0cmlidXRlc1xuICogQHBhcmFtIHtGdW5jdGlvbn0gaGFuZGxlciBUaGUgbWV0aG9kIHRoYXQgd2lsbCBiZSBhcHBsaWVkXG4gKi9cbmZ1bmN0aW9uIGFkZEhhbmRsZSggYXR0cnMsIGhhbmRsZXIgKSB7XG5cdHZhciBhcnIgPSBhdHRycy5zcGxpdChcInxcIiksXG5cdFx0aSA9IGF0dHJzLmxlbmd0aDtcblxuXHR3aGlsZSAoIGktLSApIHtcblx0XHRFeHByLmF0dHJIYW5kbGVbIGFycltpXSBdID0gaGFuZGxlcjtcblx0fVxufVxuXG4vKipcbiAqIENoZWNrcyBkb2N1bWVudCBvcmRlciBvZiB0d28gc2libGluZ3NcbiAqIEBwYXJhbSB7RWxlbWVudH0gYVxuICogQHBhcmFtIHtFbGVtZW50fSBiXG4gKiBAcmV0dXJucyB7TnVtYmVyfSBSZXR1cm5zIGxlc3MgdGhhbiAwIGlmIGEgcHJlY2VkZXMgYiwgZ3JlYXRlciB0aGFuIDAgaWYgYSBmb2xsb3dzIGJcbiAqL1xuZnVuY3Rpb24gc2libGluZ0NoZWNrKCBhLCBiICkge1xuXHR2YXIgY3VyID0gYiAmJiBhLFxuXHRcdGRpZmYgPSBjdXIgJiYgYS5ub2RlVHlwZSA9PT0gMSAmJiBiLm5vZGVUeXBlID09PSAxICYmXG5cdFx0XHQoIH5iLnNvdXJjZUluZGV4IHx8IE1BWF9ORUdBVElWRSApIC1cblx0XHRcdCggfmEuc291cmNlSW5kZXggfHwgTUFYX05FR0FUSVZFICk7XG5cblx0Ly8gVXNlIElFIHNvdXJjZUluZGV4IGlmIGF2YWlsYWJsZSBvbiBib3RoIG5vZGVzXG5cdGlmICggZGlmZiApIHtcblx0XHRyZXR1cm4gZGlmZjtcblx0fVxuXG5cdC8vIENoZWNrIGlmIGIgZm9sbG93cyBhXG5cdGlmICggY3VyICkge1xuXHRcdHdoaWxlICggKGN1ciA9IGN1ci5uZXh0U2libGluZykgKSB7XG5cdFx0XHRpZiAoIGN1ciA9PT0gYiApIHtcblx0XHRcdFx0cmV0dXJuIC0xO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBhID8gMSA6IC0xO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBmdW5jdGlvbiB0byB1c2UgaW4gcHNldWRvcyBmb3IgaW5wdXQgdHlwZXNcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUlucHV0UHNldWRvKCB0eXBlICkge1xuXHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0dmFyIG5hbWUgPSBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG5cdFx0cmV0dXJuIG5hbWUgPT09IFwiaW5wdXRcIiAmJiBlbGVtLnR5cGUgPT09IHR5cGU7XG5cdH07XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHRvIHVzZSBpbiBwc2V1ZG9zIGZvciBidXR0b25zXG4gKiBAcGFyYW0ge1N0cmluZ30gdHlwZVxuICovXG5mdW5jdGlvbiBjcmVhdGVCdXR0b25Qc2V1ZG8oIHR5cGUgKSB7XG5cdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHR2YXIgbmFtZSA9IGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblx0XHRyZXR1cm4gKG5hbWUgPT09IFwiaW5wdXRcIiB8fCBuYW1lID09PSBcImJ1dHRvblwiKSAmJiBlbGVtLnR5cGUgPT09IHR5cGU7XG5cdH07XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHRvIHVzZSBpbiBwc2V1ZG9zIGZvciBwb3NpdGlvbmFsc1xuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlUG9zaXRpb25hbFBzZXVkbyggZm4gKSB7XG5cdHJldHVybiBtYXJrRnVuY3Rpb24oZnVuY3Rpb24oIGFyZ3VtZW50ICkge1xuXHRcdGFyZ3VtZW50ID0gK2FyZ3VtZW50O1xuXHRcdHJldHVybiBtYXJrRnVuY3Rpb24oZnVuY3Rpb24oIHNlZWQsIG1hdGNoZXMgKSB7XG5cdFx0XHR2YXIgaixcblx0XHRcdFx0bWF0Y2hJbmRleGVzID0gZm4oIFtdLCBzZWVkLmxlbmd0aCwgYXJndW1lbnQgKSxcblx0XHRcdFx0aSA9IG1hdGNoSW5kZXhlcy5sZW5ndGg7XG5cblx0XHRcdC8vIE1hdGNoIGVsZW1lbnRzIGZvdW5kIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXhlc1xuXHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdGlmICggc2VlZFsgKGogPSBtYXRjaEluZGV4ZXNbaV0pIF0gKSB7XG5cdFx0XHRcdFx0c2VlZFtqXSA9ICEobWF0Y2hlc1tqXSA9IHNlZWRbal0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0pO1xufVxuXG4vKipcbiAqIENoZWNrcyBhIG5vZGUgZm9yIHZhbGlkaXR5IGFzIGEgU2l6emxlIGNvbnRleHRcbiAqIEBwYXJhbSB7RWxlbWVudHxPYmplY3Q9fSBjb250ZXh0XG4gKiBAcmV0dXJucyB7RWxlbWVudHxPYmplY3R8Qm9vbGVhbn0gVGhlIGlucHV0IG5vZGUgaWYgYWNjZXB0YWJsZSwgb3RoZXJ3aXNlIGEgZmFsc3kgdmFsdWVcbiAqL1xuZnVuY3Rpb24gdGVzdENvbnRleHQoIGNvbnRleHQgKSB7XG5cdHJldHVybiBjb250ZXh0ICYmIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSBcInVuZGVmaW5lZFwiICYmIGNvbnRleHQ7XG59XG5cbi8vIEV4cG9zZSBzdXBwb3J0IHZhcnMgZm9yIGNvbnZlbmllbmNlXG5zdXBwb3J0ID0gU2l6emxlLnN1cHBvcnQgPSB7fTtcblxuLyoqXG4gKiBEZXRlY3RzIFhNTCBub2Rlc1xuICogQHBhcmFtIHtFbGVtZW50fE9iamVjdH0gZWxlbSBBbiBlbGVtZW50IG9yIGEgZG9jdW1lbnRcbiAqIEByZXR1cm5zIHtCb29sZWFufSBUcnVlIGlmZiBlbGVtIGlzIGEgbm9uLUhUTUwgWE1MIG5vZGVcbiAqL1xuaXNYTUwgPSBTaXp6bGUuaXNYTUwgPSBmdW5jdGlvbiggZWxlbSApIHtcblx0Ly8gZG9jdW1lbnRFbGVtZW50IGlzIHZlcmlmaWVkIGZvciBjYXNlcyB3aGVyZSBpdCBkb2Vzbid0IHlldCBleGlzdFxuXHQvLyAoc3VjaCBhcyBsb2FkaW5nIGlmcmFtZXMgaW4gSUUgLSAjNDgzMylcblx0dmFyIGRvY3VtZW50RWxlbWVudCA9IGVsZW0gJiYgKGVsZW0ub3duZXJEb2N1bWVudCB8fCBlbGVtKS5kb2N1bWVudEVsZW1lbnQ7XG5cdHJldHVybiBkb2N1bWVudEVsZW1lbnQgPyBkb2N1bWVudEVsZW1lbnQubm9kZU5hbWUgIT09IFwiSFRNTFwiIDogZmFsc2U7XG59O1xuXG4vKipcbiAqIFNldHMgZG9jdW1lbnQtcmVsYXRlZCB2YXJpYWJsZXMgb25jZSBiYXNlZCBvbiB0aGUgY3VycmVudCBkb2N1bWVudFxuICogQHBhcmFtIHtFbGVtZW50fE9iamVjdH0gW2RvY10gQW4gZWxlbWVudCBvciBkb2N1bWVudCBvYmplY3QgdG8gdXNlIHRvIHNldCB0aGUgZG9jdW1lbnRcbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGN1cnJlbnQgZG9jdW1lbnRcbiAqL1xuc2V0RG9jdW1lbnQgPSBTaXp6bGUuc2V0RG9jdW1lbnQgPSBmdW5jdGlvbiggbm9kZSApIHtcblx0dmFyIGhhc0NvbXBhcmUsIHBhcmVudCxcblx0XHRkb2MgPSBub2RlID8gbm9kZS5vd25lckRvY3VtZW50IHx8IG5vZGUgOiBwcmVmZXJyZWREb2M7XG5cblx0Ly8gSWYgbm8gZG9jdW1lbnQgYW5kIGRvY3VtZW50RWxlbWVudCBpcyBhdmFpbGFibGUsIHJldHVyblxuXHRpZiAoIGRvYyA9PT0gZG9jdW1lbnQgfHwgZG9jLm5vZGVUeXBlICE9PSA5IHx8ICFkb2MuZG9jdW1lbnRFbGVtZW50ICkge1xuXHRcdHJldHVybiBkb2N1bWVudDtcblx0fVxuXG5cdC8vIFNldCBvdXIgZG9jdW1lbnRcblx0ZG9jdW1lbnQgPSBkb2M7XG5cdGRvY0VsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50O1xuXHRwYXJlbnQgPSBkb2MuZGVmYXVsdFZpZXc7XG5cblx0Ly8gU3VwcG9ydDogSUU+OFxuXHQvLyBJZiBpZnJhbWUgZG9jdW1lbnQgaXMgYXNzaWduZWQgdG8gXCJkb2N1bWVudFwiIHZhcmlhYmxlIGFuZCBpZiBpZnJhbWUgaGFzIGJlZW4gcmVsb2FkZWQsXG5cdC8vIElFIHdpbGwgdGhyb3cgXCJwZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gYWNjZXNzaW5nIFwiZG9jdW1lbnRcIiB2YXJpYWJsZSwgc2VlIGpRdWVyeSAjMTM5MzZcblx0Ly8gSUU2LTggZG8gbm90IHN1cHBvcnQgdGhlIGRlZmF1bHRWaWV3IHByb3BlcnR5IHNvIHBhcmVudCB3aWxsIGJlIHVuZGVmaW5lZFxuXHRpZiAoIHBhcmVudCAmJiBwYXJlbnQgIT09IHBhcmVudC50b3AgKSB7XG5cdFx0Ly8gSUUxMSBkb2VzIG5vdCBoYXZlIGF0dGFjaEV2ZW50LCBzbyBhbGwgbXVzdCBzdWZmZXJcblx0XHRpZiAoIHBhcmVudC5hZGRFdmVudExpc3RlbmVyICkge1xuXHRcdFx0cGFyZW50LmFkZEV2ZW50TGlzdGVuZXIoIFwidW5sb2FkXCIsIHVubG9hZEhhbmRsZXIsIGZhbHNlICk7XG5cdFx0fSBlbHNlIGlmICggcGFyZW50LmF0dGFjaEV2ZW50ICkge1xuXHRcdFx0cGFyZW50LmF0dGFjaEV2ZW50KCBcIm9udW5sb2FkXCIsIHVubG9hZEhhbmRsZXIgKTtcblx0XHR9XG5cdH1cblxuXHQvKiBTdXBwb3J0IHRlc3RzXG5cdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblx0ZG9jdW1lbnRJc0hUTUwgPSAhaXNYTUwoIGRvYyApO1xuXG5cdC8qIEF0dHJpYnV0ZXNcblx0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC8vIFN1cHBvcnQ6IElFPDhcblx0Ly8gVmVyaWZ5IHRoYXQgZ2V0QXR0cmlidXRlIHJlYWxseSByZXR1cm5zIGF0dHJpYnV0ZXMgYW5kIG5vdCBwcm9wZXJ0aWVzXG5cdC8vIChleGNlcHRpbmcgSUU4IGJvb2xlYW5zKVxuXHRzdXBwb3J0LmF0dHJpYnV0ZXMgPSBhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHtcblx0XHRkaXYuY2xhc3NOYW1lID0gXCJpXCI7XG5cdFx0cmV0dXJuICFkaXYuZ2V0QXR0cmlidXRlKFwiY2xhc3NOYW1lXCIpO1xuXHR9KTtcblxuXHQvKiBnZXRFbGVtZW50KHMpQnkqXG5cdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQvLyBDaGVjayBpZiBnZXRFbGVtZW50c0J5VGFnTmFtZShcIipcIikgcmV0dXJucyBvbmx5IGVsZW1lbnRzXG5cdHN1cHBvcnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUgPSBhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHtcblx0XHRkaXYuYXBwZW5kQ2hpbGQoIGRvYy5jcmVhdGVDb21tZW50KFwiXCIpICk7XG5cdFx0cmV0dXJuICFkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCIqXCIpLmxlbmd0aDtcblx0fSk7XG5cblx0Ly8gU3VwcG9ydDogSUU8OVxuXHRzdXBwb3J0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgPSBybmF0aXZlLnRlc3QoIGRvYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICk7XG5cblx0Ly8gU3VwcG9ydDogSUU8MTBcblx0Ly8gQ2hlY2sgaWYgZ2V0RWxlbWVudEJ5SWQgcmV0dXJucyBlbGVtZW50cyBieSBuYW1lXG5cdC8vIFRoZSBicm9rZW4gZ2V0RWxlbWVudEJ5SWQgbWV0aG9kcyBkb24ndCBwaWNrIHVwIHByb2dyYW1hdGljYWxseS1zZXQgbmFtZXMsXG5cdC8vIHNvIHVzZSBhIHJvdW5kYWJvdXQgZ2V0RWxlbWVudHNCeU5hbWUgdGVzdFxuXHRzdXBwb3J0LmdldEJ5SWQgPSBhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHtcblx0XHRkb2NFbGVtLmFwcGVuZENoaWxkKCBkaXYgKS5pZCA9IGV4cGFuZG87XG5cdFx0cmV0dXJuICFkb2MuZ2V0RWxlbWVudHNCeU5hbWUgfHwgIWRvYy5nZXRFbGVtZW50c0J5TmFtZSggZXhwYW5kbyApLmxlbmd0aDtcblx0fSk7XG5cblx0Ly8gSUQgZmluZCBhbmQgZmlsdGVyXG5cdGlmICggc3VwcG9ydC5nZXRCeUlkICkge1xuXHRcdEV4cHIuZmluZFtcIklEXCJdID0gZnVuY3Rpb24oIGlkLCBjb250ZXh0ICkge1xuXHRcdFx0aWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50QnlJZCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBkb2N1bWVudElzSFRNTCApIHtcblx0XHRcdFx0dmFyIG0gPSBjb250ZXh0LmdldEVsZW1lbnRCeUlkKCBpZCApO1xuXHRcdFx0XHQvLyBDaGVjayBwYXJlbnROb2RlIHRvIGNhdGNoIHdoZW4gQmxhY2tiZXJyeSA0LjYgcmV0dXJuc1xuXHRcdFx0XHQvLyBub2RlcyB0aGF0IGFyZSBubyBsb25nZXIgaW4gdGhlIGRvY3VtZW50ICM2OTYzXG5cdFx0XHRcdHJldHVybiBtICYmIG0ucGFyZW50Tm9kZSA/IFsgbSBdIDogW107XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRFeHByLmZpbHRlcltcIklEXCJdID0gZnVuY3Rpb24oIGlkICkge1xuXHRcdFx0dmFyIGF0dHJJZCA9IGlkLnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICk7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHJldHVybiBlbGVtLmdldEF0dHJpYnV0ZShcImlkXCIpID09PSBhdHRySWQ7XG5cdFx0XHR9O1xuXHRcdH07XG5cdH0gZWxzZSB7XG5cdFx0Ly8gU3VwcG9ydDogSUU2Lzdcblx0XHQvLyBnZXRFbGVtZW50QnlJZCBpcyBub3QgcmVsaWFibGUgYXMgYSBmaW5kIHNob3J0Y3V0XG5cdFx0ZGVsZXRlIEV4cHIuZmluZFtcIklEXCJdO1xuXG5cdFx0RXhwci5maWx0ZXJbXCJJRFwiXSA9ICBmdW5jdGlvbiggaWQgKSB7XG5cdFx0XHR2YXIgYXR0cklkID0gaWQucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKTtcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0dmFyIG5vZGUgPSB0eXBlb2YgZWxlbS5nZXRBdHRyaWJ1dGVOb2RlICE9PSBcInVuZGVmaW5lZFwiICYmIGVsZW0uZ2V0QXR0cmlidXRlTm9kZShcImlkXCIpO1xuXHRcdFx0XHRyZXR1cm4gbm9kZSAmJiBub2RlLnZhbHVlID09PSBhdHRySWQ7XG5cdFx0XHR9O1xuXHRcdH07XG5cdH1cblxuXHQvLyBUYWdcblx0RXhwci5maW5kW1wiVEFHXCJdID0gc3VwcG9ydC5nZXRFbGVtZW50c0J5VGFnTmFtZSA/XG5cdFx0ZnVuY3Rpb24oIHRhZywgY29udGV4dCApIHtcblx0XHRcdGlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUgIT09IFwidW5kZWZpbmVkXCIgKSB7XG5cdFx0XHRcdHJldHVybiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCB0YWcgKTtcblxuXHRcdFx0Ly8gRG9jdW1lbnRGcmFnbWVudCBub2RlcyBkb24ndCBoYXZlIGdFQlROXG5cdFx0XHR9IGVsc2UgaWYgKCBzdXBwb3J0LnFzYSApIHtcblx0XHRcdFx0cmV0dXJuIGNvbnRleHQucXVlcnlTZWxlY3RvckFsbCggdGFnICk7XG5cdFx0XHR9XG5cdFx0fSA6XG5cblx0XHRmdW5jdGlvbiggdGFnLCBjb250ZXh0ICkge1xuXHRcdFx0dmFyIGVsZW0sXG5cdFx0XHRcdHRtcCA9IFtdLFxuXHRcdFx0XHRpID0gMCxcblx0XHRcdFx0Ly8gQnkgaGFwcHkgY29pbmNpZGVuY2UsIGEgKGJyb2tlbikgZ0VCVE4gYXBwZWFycyBvbiBEb2N1bWVudEZyYWdtZW50IG5vZGVzIHRvb1xuXHRcdFx0XHRyZXN1bHRzID0gY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggdGFnICk7XG5cblx0XHRcdC8vIEZpbHRlciBvdXQgcG9zc2libGUgY29tbWVudHNcblx0XHRcdGlmICggdGFnID09PSBcIipcIiApIHtcblx0XHRcdFx0d2hpbGUgKCAoZWxlbSA9IHJlc3VsdHNbaSsrXSkgKSB7XG5cdFx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXHRcdFx0XHRcdFx0dG1wLnB1c2goIGVsZW0gKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gdG1wO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0fTtcblxuXHQvLyBDbGFzc1xuXHRFeHByLmZpbmRbXCJDTEFTU1wiXSA9IHN1cHBvcnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSAmJiBmdW5jdGlvbiggY2xhc3NOYW1lLCBjb250ZXh0ICkge1xuXHRcdGlmICggZG9jdW1lbnRJc0hUTUwgKSB7XG5cdFx0XHRyZXR1cm4gY29udGV4dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCBjbGFzc05hbWUgKTtcblx0XHR9XG5cdH07XG5cblx0LyogUVNBL21hdGNoZXNTZWxlY3RvclxuXHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0Ly8gUVNBIGFuZCBtYXRjaGVzU2VsZWN0b3Igc3VwcG9ydFxuXG5cdC8vIG1hdGNoZXNTZWxlY3Rvcig6YWN0aXZlKSByZXBvcnRzIGZhbHNlIHdoZW4gdHJ1ZSAoSUU5L09wZXJhIDExLjUpXG5cdHJidWdneU1hdGNoZXMgPSBbXTtcblxuXHQvLyBxU2EoOmZvY3VzKSByZXBvcnRzIGZhbHNlIHdoZW4gdHJ1ZSAoQ2hyb21lIDIxKVxuXHQvLyBXZSBhbGxvdyB0aGlzIGJlY2F1c2Ugb2YgYSBidWcgaW4gSUU4LzkgdGhhdCB0aHJvd3MgYW4gZXJyb3Jcblx0Ly8gd2hlbmV2ZXIgYGRvY3VtZW50LmFjdGl2ZUVsZW1lbnRgIGlzIGFjY2Vzc2VkIG9uIGFuIGlmcmFtZVxuXHQvLyBTbywgd2UgYWxsb3cgOmZvY3VzIHRvIHBhc3MgdGhyb3VnaCBRU0EgYWxsIHRoZSB0aW1lIHRvIGF2b2lkIHRoZSBJRSBlcnJvclxuXHQvLyBTZWUgaHR0cDovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvMTMzNzhcblx0cmJ1Z2d5UVNBID0gW107XG5cblx0aWYgKCAoc3VwcG9ydC5xc2EgPSBybmF0aXZlLnRlc3QoIGRvYy5xdWVyeVNlbGVjdG9yQWxsICkpICkge1xuXHRcdC8vIEJ1aWxkIFFTQSByZWdleFxuXHRcdC8vIFJlZ2V4IHN0cmF0ZWd5IGFkb3B0ZWQgZnJvbSBEaWVnbyBQZXJpbmlcblx0XHRhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHtcblx0XHRcdC8vIFNlbGVjdCBpcyBzZXQgdG8gZW1wdHkgc3RyaW5nIG9uIHB1cnBvc2Vcblx0XHRcdC8vIFRoaXMgaXMgdG8gdGVzdCBJRSdzIHRyZWF0bWVudCBvZiBub3QgZXhwbGljaXRseVxuXHRcdFx0Ly8gc2V0dGluZyBhIGJvb2xlYW4gY29udGVudCBhdHRyaWJ1dGUsXG5cdFx0XHQvLyBzaW5jZSBpdHMgcHJlc2VuY2Ugc2hvdWxkIGJlIGVub3VnaFxuXHRcdFx0Ly8gaHR0cDovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvMTIzNTlcblx0XHRcdGRvY0VsZW0uYXBwZW5kQ2hpbGQoIGRpdiApLmlubmVySFRNTCA9IFwiPGEgaWQ9J1wiICsgZXhwYW5kbyArIFwiJz48L2E+XCIgK1xuXHRcdFx0XHRcIjxzZWxlY3QgaWQ9J1wiICsgZXhwYW5kbyArIFwiLVxcZl0nIG1zYWxsb3djYXB0dXJlPScnPlwiICtcblx0XHRcdFx0XCI8b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PlwiO1xuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRTgsIE9wZXJhIDExLTEyLjE2XG5cdFx0XHQvLyBOb3RoaW5nIHNob3VsZCBiZSBzZWxlY3RlZCB3aGVuIGVtcHR5IHN0cmluZ3MgZm9sbG93IF49IG9yICQ9IG9yICo9XG5cdFx0XHQvLyBUaGUgdGVzdCBhdHRyaWJ1dGUgbXVzdCBiZSB1bmtub3duIGluIE9wZXJhIGJ1dCBcInNhZmVcIiBmb3IgV2luUlRcblx0XHRcdC8vIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9pZS9oaDQ2NTM4OC5hc3B4I2F0dHJpYnV0ZV9zZWN0aW9uXG5cdFx0XHRpZiAoIGRpdi5xdWVyeVNlbGVjdG9yQWxsKFwiW21zYWxsb3djYXB0dXJlXj0nJ11cIikubGVuZ3RoICkge1xuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaCggXCJbKl4kXT1cIiArIHdoaXRlc3BhY2UgKyBcIiooPzonJ3xcXFwiXFxcIilcIiApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRThcblx0XHRcdC8vIEJvb2xlYW4gYXR0cmlidXRlcyBhbmQgXCJ2YWx1ZVwiIGFyZSBub3QgdHJlYXRlZCBjb3JyZWN0bHlcblx0XHRcdGlmICggIWRpdi5xdWVyeVNlbGVjdG9yQWxsKFwiW3NlbGVjdGVkXVwiKS5sZW5ndGggKSB7XG5cdFx0XHRcdHJidWdneVFTQS5wdXNoKCBcIlxcXFxbXCIgKyB3aGl0ZXNwYWNlICsgXCIqKD86dmFsdWV8XCIgKyBib29sZWFucyArIFwiKVwiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN1cHBvcnQ6IENocm9tZTwyOSwgQW5kcm9pZDw0LjIrLCBTYWZhcmk8Ny4wKywgaU9TPDcuMCssIFBoYW50b21KUzwxLjkuNytcblx0XHRcdGlmICggIWRpdi5xdWVyeVNlbGVjdG9yQWxsKCBcIltpZH49XCIgKyBleHBhbmRvICsgXCItXVwiICkubGVuZ3RoICkge1xuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaChcIn49XCIpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBXZWJraXQvT3BlcmEgLSA6Y2hlY2tlZCBzaG91bGQgcmV0dXJuIHNlbGVjdGVkIG9wdGlvbiBlbGVtZW50c1xuXHRcdFx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMS9SRUMtY3NzMy1zZWxlY3RvcnMtMjAxMTA5MjkvI2NoZWNrZWRcblx0XHRcdC8vIElFOCB0aHJvd3MgZXJyb3IgaGVyZSBhbmQgd2lsbCBub3Qgc2VlIGxhdGVyIHRlc3RzXG5cdFx0XHRpZiAoICFkaXYucXVlcnlTZWxlY3RvckFsbChcIjpjaGVja2VkXCIpLmxlbmd0aCApIHtcblx0XHRcdFx0cmJ1Z2d5UVNBLnB1c2goXCI6Y2hlY2tlZFwiKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gU3VwcG9ydDogU2FmYXJpIDgrLCBpT1MgOCtcblx0XHRcdC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY4NTFcblx0XHRcdC8vIEluLXBhZ2UgYHNlbGVjdG9yI2lkIHNpYmluZy1jb21iaW5hdG9yIHNlbGVjdG9yYCBmYWlsc1xuXHRcdFx0aWYgKCAhZGl2LnF1ZXJ5U2VsZWN0b3JBbGwoIFwiYSNcIiArIGV4cGFuZG8gKyBcIisqXCIgKS5sZW5ndGggKSB7XG5cdFx0XHRcdHJidWdneVFTQS5wdXNoKFwiLiMuK1srfl1cIik7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHtcblx0XHRcdC8vIFN1cHBvcnQ6IFdpbmRvd3MgOCBOYXRpdmUgQXBwc1xuXHRcdFx0Ly8gVGhlIHR5cGUgYW5kIG5hbWUgYXR0cmlidXRlcyBhcmUgcmVzdHJpY3RlZCBkdXJpbmcgLmlubmVySFRNTCBhc3NpZ25tZW50XG5cdFx0XHR2YXIgaW5wdXQgPSBkb2MuY3JlYXRlRWxlbWVudChcImlucHV0XCIpO1xuXHRcdFx0aW5wdXQuc2V0QXR0cmlidXRlKCBcInR5cGVcIiwgXCJoaWRkZW5cIiApO1xuXHRcdFx0ZGl2LmFwcGVuZENoaWxkKCBpbnB1dCApLnNldEF0dHJpYnV0ZSggXCJuYW1lXCIsIFwiRFwiICk7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFOFxuXHRcdFx0Ly8gRW5mb3JjZSBjYXNlLXNlbnNpdGl2aXR5IG9mIG5hbWUgYXR0cmlidXRlXG5cdFx0XHRpZiAoIGRpdi5xdWVyeVNlbGVjdG9yQWxsKFwiW25hbWU9ZF1cIikubGVuZ3RoICkge1xuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaCggXCJuYW1lXCIgKyB3aGl0ZXNwYWNlICsgXCIqWypeJHwhfl0/PVwiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEZGIDMuNSAtIDplbmFibGVkLzpkaXNhYmxlZCBhbmQgaGlkZGVuIGVsZW1lbnRzIChoaWRkZW4gZWxlbWVudHMgYXJlIHN0aWxsIGVuYWJsZWQpXG5cdFx0XHQvLyBJRTggdGhyb3dzIGVycm9yIGhlcmUgYW5kIHdpbGwgbm90IHNlZSBsYXRlciB0ZXN0c1xuXHRcdFx0aWYgKCAhZGl2LnF1ZXJ5U2VsZWN0b3JBbGwoXCI6ZW5hYmxlZFwiKS5sZW5ndGggKSB7XG5cdFx0XHRcdHJidWdneVFTQS5wdXNoKCBcIjplbmFibGVkXCIsIFwiOmRpc2FibGVkXCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gT3BlcmEgMTAtMTEgZG9lcyBub3QgdGhyb3cgb24gcG9zdC1jb21tYSBpbnZhbGlkIHBzZXVkb3Ncblx0XHRcdGRpdi5xdWVyeVNlbGVjdG9yQWxsKFwiKiw6eFwiKTtcblx0XHRcdHJidWdneVFTQS5wdXNoKFwiLC4qOlwiKTtcblx0XHR9KTtcblx0fVxuXG5cdGlmICggKHN1cHBvcnQubWF0Y2hlc1NlbGVjdG9yID0gcm5hdGl2ZS50ZXN0KCAobWF0Y2hlcyA9IGRvY0VsZW0ubWF0Y2hlcyB8fFxuXHRcdGRvY0VsZW0ud2Via2l0TWF0Y2hlc1NlbGVjdG9yIHx8XG5cdFx0ZG9jRWxlbS5tb3pNYXRjaGVzU2VsZWN0b3IgfHxcblx0XHRkb2NFbGVtLm9NYXRjaGVzU2VsZWN0b3IgfHxcblx0XHRkb2NFbGVtLm1zTWF0Y2hlc1NlbGVjdG9yKSApKSApIHtcblxuXHRcdGFzc2VydChmdW5jdGlvbiggZGl2ICkge1xuXHRcdFx0Ly8gQ2hlY2sgdG8gc2VlIGlmIGl0J3MgcG9zc2libGUgdG8gZG8gbWF0Y2hlc1NlbGVjdG9yXG5cdFx0XHQvLyBvbiBhIGRpc2Nvbm5lY3RlZCBub2RlIChJRSA5KVxuXHRcdFx0c3VwcG9ydC5kaXNjb25uZWN0ZWRNYXRjaCA9IG1hdGNoZXMuY2FsbCggZGl2LCBcImRpdlwiICk7XG5cblx0XHRcdC8vIFRoaXMgc2hvdWxkIGZhaWwgd2l0aCBhbiBleGNlcHRpb25cblx0XHRcdC8vIEdlY2tvIGRvZXMgbm90IGVycm9yLCByZXR1cm5zIGZhbHNlIGluc3RlYWRcblx0XHRcdG1hdGNoZXMuY2FsbCggZGl2LCBcIltzIT0nJ106eFwiICk7XG5cdFx0XHRyYnVnZ3lNYXRjaGVzLnB1c2goIFwiIT1cIiwgcHNldWRvcyApO1xuXHRcdH0pO1xuXHR9XG5cblx0cmJ1Z2d5UVNBID0gcmJ1Z2d5UVNBLmxlbmd0aCAmJiBuZXcgUmVnRXhwKCByYnVnZ3lRU0Euam9pbihcInxcIikgKTtcblx0cmJ1Z2d5TWF0Y2hlcyA9IHJidWdneU1hdGNoZXMubGVuZ3RoICYmIG5ldyBSZWdFeHAoIHJidWdneU1hdGNoZXMuam9pbihcInxcIikgKTtcblxuXHQvKiBDb250YWluc1xuXHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cdGhhc0NvbXBhcmUgPSBybmF0aXZlLnRlc3QoIGRvY0VsZW0uY29tcGFyZURvY3VtZW50UG9zaXRpb24gKTtcblxuXHQvLyBFbGVtZW50IGNvbnRhaW5zIGFub3RoZXJcblx0Ly8gUHVycG9zZWZ1bGx5IGRvZXMgbm90IGltcGxlbWVudCBpbmNsdXNpdmUgZGVzY2VuZGVudFxuXHQvLyBBcyBpbiwgYW4gZWxlbWVudCBkb2VzIG5vdCBjb250YWluIGl0c2VsZlxuXHRjb250YWlucyA9IGhhc0NvbXBhcmUgfHwgcm5hdGl2ZS50ZXN0KCBkb2NFbGVtLmNvbnRhaW5zICkgP1xuXHRcdGZ1bmN0aW9uKCBhLCBiICkge1xuXHRcdFx0dmFyIGFkb3duID0gYS5ub2RlVHlwZSA9PT0gOSA/IGEuZG9jdW1lbnRFbGVtZW50IDogYSxcblx0XHRcdFx0YnVwID0gYiAmJiBiLnBhcmVudE5vZGU7XG5cdFx0XHRyZXR1cm4gYSA9PT0gYnVwIHx8ICEhKCBidXAgJiYgYnVwLm5vZGVUeXBlID09PSAxICYmIChcblx0XHRcdFx0YWRvd24uY29udGFpbnMgP1xuXHRcdFx0XHRcdGFkb3duLmNvbnRhaW5zKCBidXAgKSA6XG5cdFx0XHRcdFx0YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiAmJiBhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCBidXAgKSAmIDE2XG5cdFx0XHQpKTtcblx0XHR9IDpcblx0XHRmdW5jdGlvbiggYSwgYiApIHtcblx0XHRcdGlmICggYiApIHtcblx0XHRcdFx0d2hpbGUgKCAoYiA9IGIucGFyZW50Tm9kZSkgKSB7XG5cdFx0XHRcdFx0aWYgKCBiID09PSBhICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fTtcblxuXHQvKiBTb3J0aW5nXG5cdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQvLyBEb2N1bWVudCBvcmRlciBzb3J0aW5nXG5cdHNvcnRPcmRlciA9IGhhc0NvbXBhcmUgP1xuXHRmdW5jdGlvbiggYSwgYiApIHtcblxuXHRcdC8vIEZsYWcgZm9yIGR1cGxpY2F0ZSByZW1vdmFsXG5cdFx0aWYgKCBhID09PSBiICkge1xuXHRcdFx0aGFzRHVwbGljYXRlID0gdHJ1ZTtcblx0XHRcdHJldHVybiAwO1xuXHRcdH1cblxuXHRcdC8vIFNvcnQgb24gbWV0aG9kIGV4aXN0ZW5jZSBpZiBvbmx5IG9uZSBpbnB1dCBoYXMgY29tcGFyZURvY3VtZW50UG9zaXRpb25cblx0XHR2YXIgY29tcGFyZSA9ICFhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIC0gIWIuY29tcGFyZURvY3VtZW50UG9zaXRpb247XG5cdFx0aWYgKCBjb21wYXJlICkge1xuXHRcdFx0cmV0dXJuIGNvbXBhcmU7XG5cdFx0fVxuXG5cdFx0Ly8gQ2FsY3VsYXRlIHBvc2l0aW9uIGlmIGJvdGggaW5wdXRzIGJlbG9uZyB0byB0aGUgc2FtZSBkb2N1bWVudFxuXHRcdGNvbXBhcmUgPSAoIGEub3duZXJEb2N1bWVudCB8fCBhICkgPT09ICggYi5vd25lckRvY3VtZW50IHx8IGIgKSA/XG5cdFx0XHRhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCBiICkgOlxuXG5cdFx0XHQvLyBPdGhlcndpc2Ugd2Uga25vdyB0aGV5IGFyZSBkaXNjb25uZWN0ZWRcblx0XHRcdDE7XG5cblx0XHQvLyBEaXNjb25uZWN0ZWQgbm9kZXNcblx0XHRpZiAoIGNvbXBhcmUgJiAxIHx8XG5cdFx0XHQoIXN1cHBvcnQuc29ydERldGFjaGVkICYmIGIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oIGEgKSA9PT0gY29tcGFyZSkgKSB7XG5cblx0XHRcdC8vIENob29zZSB0aGUgZmlyc3QgZWxlbWVudCB0aGF0IGlzIHJlbGF0ZWQgdG8gb3VyIHByZWZlcnJlZCBkb2N1bWVudFxuXHRcdFx0aWYgKCBhID09PSBkb2MgfHwgYS5vd25lckRvY3VtZW50ID09PSBwcmVmZXJyZWREb2MgJiYgY29udGFpbnMocHJlZmVycmVkRG9jLCBhKSApIHtcblx0XHRcdFx0cmV0dXJuIC0xO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCBiID09PSBkb2MgfHwgYi5vd25lckRvY3VtZW50ID09PSBwcmVmZXJyZWREb2MgJiYgY29udGFpbnMocHJlZmVycmVkRG9jLCBiKSApIHtcblx0XHRcdFx0cmV0dXJuIDE7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE1haW50YWluIG9yaWdpbmFsIG9yZGVyXG5cdFx0XHRyZXR1cm4gc29ydElucHV0ID9cblx0XHRcdFx0KCBpbmRleE9mKCBzb3J0SW5wdXQsIGEgKSAtIGluZGV4T2YoIHNvcnRJbnB1dCwgYiApICkgOlxuXHRcdFx0XHQwO1xuXHRcdH1cblxuXHRcdHJldHVybiBjb21wYXJlICYgNCA/IC0xIDogMTtcblx0fSA6XG5cdGZ1bmN0aW9uKCBhLCBiICkge1xuXHRcdC8vIEV4aXQgZWFybHkgaWYgdGhlIG5vZGVzIGFyZSBpZGVudGljYWxcblx0XHRpZiAoIGEgPT09IGIgKSB7XG5cdFx0XHRoYXNEdXBsaWNhdGUgPSB0cnVlO1xuXHRcdFx0cmV0dXJuIDA7XG5cdFx0fVxuXG5cdFx0dmFyIGN1cixcblx0XHRcdGkgPSAwLFxuXHRcdFx0YXVwID0gYS5wYXJlbnROb2RlLFxuXHRcdFx0YnVwID0gYi5wYXJlbnROb2RlLFxuXHRcdFx0YXAgPSBbIGEgXSxcblx0XHRcdGJwID0gWyBiIF07XG5cblx0XHQvLyBQYXJlbnRsZXNzIG5vZGVzIGFyZSBlaXRoZXIgZG9jdW1lbnRzIG9yIGRpc2Nvbm5lY3RlZFxuXHRcdGlmICggIWF1cCB8fCAhYnVwICkge1xuXHRcdFx0cmV0dXJuIGEgPT09IGRvYyA/IC0xIDpcblx0XHRcdFx0YiA9PT0gZG9jID8gMSA6XG5cdFx0XHRcdGF1cCA/IC0xIDpcblx0XHRcdFx0YnVwID8gMSA6XG5cdFx0XHRcdHNvcnRJbnB1dCA/XG5cdFx0XHRcdCggaW5kZXhPZiggc29ydElucHV0LCBhICkgLSBpbmRleE9mKCBzb3J0SW5wdXQsIGIgKSApIDpcblx0XHRcdFx0MDtcblxuXHRcdC8vIElmIHRoZSBub2RlcyBhcmUgc2libGluZ3MsIHdlIGNhbiBkbyBhIHF1aWNrIGNoZWNrXG5cdFx0fSBlbHNlIGlmICggYXVwID09PSBidXAgKSB7XG5cdFx0XHRyZXR1cm4gc2libGluZ0NoZWNrKCBhLCBiICk7XG5cdFx0fVxuXG5cdFx0Ly8gT3RoZXJ3aXNlIHdlIG5lZWQgZnVsbCBsaXN0cyBvZiB0aGVpciBhbmNlc3RvcnMgZm9yIGNvbXBhcmlzb25cblx0XHRjdXIgPSBhO1xuXHRcdHdoaWxlICggKGN1ciA9IGN1ci5wYXJlbnROb2RlKSApIHtcblx0XHRcdGFwLnVuc2hpZnQoIGN1ciApO1xuXHRcdH1cblx0XHRjdXIgPSBiO1xuXHRcdHdoaWxlICggKGN1ciA9IGN1ci5wYXJlbnROb2RlKSApIHtcblx0XHRcdGJwLnVuc2hpZnQoIGN1ciApO1xuXHRcdH1cblxuXHRcdC8vIFdhbGsgZG93biB0aGUgdHJlZSBsb29raW5nIGZvciBhIGRpc2NyZXBhbmN5XG5cdFx0d2hpbGUgKCBhcFtpXSA9PT0gYnBbaV0gKSB7XG5cdFx0XHRpKys7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGkgP1xuXHRcdFx0Ly8gRG8gYSBzaWJsaW5nIGNoZWNrIGlmIHRoZSBub2RlcyBoYXZlIGEgY29tbW9uIGFuY2VzdG9yXG5cdFx0XHRzaWJsaW5nQ2hlY2soIGFwW2ldLCBicFtpXSApIDpcblxuXHRcdFx0Ly8gT3RoZXJ3aXNlIG5vZGVzIGluIG91ciBkb2N1bWVudCBzb3J0IGZpcnN0XG5cdFx0XHRhcFtpXSA9PT0gcHJlZmVycmVkRG9jID8gLTEgOlxuXHRcdFx0YnBbaV0gPT09IHByZWZlcnJlZERvYyA/IDEgOlxuXHRcdFx0MDtcblx0fTtcblxuXHRyZXR1cm4gZG9jO1xufTtcblxuU2l6emxlLm1hdGNoZXMgPSBmdW5jdGlvbiggZXhwciwgZWxlbWVudHMgKSB7XG5cdHJldHVybiBTaXp6bGUoIGV4cHIsIG51bGwsIG51bGwsIGVsZW1lbnRzICk7XG59O1xuXG5TaXp6bGUubWF0Y2hlc1NlbGVjdG9yID0gZnVuY3Rpb24oIGVsZW0sIGV4cHIgKSB7XG5cdC8vIFNldCBkb2N1bWVudCB2YXJzIGlmIG5lZWRlZFxuXHRpZiAoICggZWxlbS5vd25lckRvY3VtZW50IHx8IGVsZW0gKSAhPT0gZG9jdW1lbnQgKSB7XG5cdFx0c2V0RG9jdW1lbnQoIGVsZW0gKTtcblx0fVxuXG5cdC8vIE1ha2Ugc3VyZSB0aGF0IGF0dHJpYnV0ZSBzZWxlY3RvcnMgYXJlIHF1b3RlZFxuXHRleHByID0gZXhwci5yZXBsYWNlKCByYXR0cmlidXRlUXVvdGVzLCBcIj0nJDEnXVwiICk7XG5cblx0aWYgKCBzdXBwb3J0Lm1hdGNoZXNTZWxlY3RvciAmJiBkb2N1bWVudElzSFRNTCAmJlxuXHRcdCggIXJidWdneU1hdGNoZXMgfHwgIXJidWdneU1hdGNoZXMudGVzdCggZXhwciApICkgJiZcblx0XHQoICFyYnVnZ3lRU0EgICAgIHx8ICFyYnVnZ3lRU0EudGVzdCggZXhwciApICkgKSB7XG5cblx0XHR0cnkge1xuXHRcdFx0dmFyIHJldCA9IG1hdGNoZXMuY2FsbCggZWxlbSwgZXhwciApO1xuXG5cdFx0XHQvLyBJRSA5J3MgbWF0Y2hlc1NlbGVjdG9yIHJldHVybnMgZmFsc2Ugb24gZGlzY29ubmVjdGVkIG5vZGVzXG5cdFx0XHRpZiAoIHJldCB8fCBzdXBwb3J0LmRpc2Nvbm5lY3RlZE1hdGNoIHx8XG5cdFx0XHRcdFx0Ly8gQXMgd2VsbCwgZGlzY29ubmVjdGVkIG5vZGVzIGFyZSBzYWlkIHRvIGJlIGluIGEgZG9jdW1lbnRcblx0XHRcdFx0XHQvLyBmcmFnbWVudCBpbiBJRSA5XG5cdFx0XHRcdFx0ZWxlbS5kb2N1bWVudCAmJiBlbGVtLmRvY3VtZW50Lm5vZGVUeXBlICE9PSAxMSApIHtcblx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdH1cblx0XHR9IGNhdGNoIChlKSB7fVxuXHR9XG5cblx0cmV0dXJuIFNpenpsZSggZXhwciwgZG9jdW1lbnQsIG51bGwsIFsgZWxlbSBdICkubGVuZ3RoID4gMDtcbn07XG5cblNpenpsZS5jb250YWlucyA9IGZ1bmN0aW9uKCBjb250ZXh0LCBlbGVtICkge1xuXHQvLyBTZXQgZG9jdW1lbnQgdmFycyBpZiBuZWVkZWRcblx0aWYgKCAoIGNvbnRleHQub3duZXJEb2N1bWVudCB8fCBjb250ZXh0ICkgIT09IGRvY3VtZW50ICkge1xuXHRcdHNldERvY3VtZW50KCBjb250ZXh0ICk7XG5cdH1cblx0cmV0dXJuIGNvbnRhaW5zKCBjb250ZXh0LCBlbGVtICk7XG59O1xuXG5TaXp6bGUuYXR0ciA9IGZ1bmN0aW9uKCBlbGVtLCBuYW1lICkge1xuXHQvLyBTZXQgZG9jdW1lbnQgdmFycyBpZiBuZWVkZWRcblx0aWYgKCAoIGVsZW0ub3duZXJEb2N1bWVudCB8fCBlbGVtICkgIT09IGRvY3VtZW50ICkge1xuXHRcdHNldERvY3VtZW50KCBlbGVtICk7XG5cdH1cblxuXHR2YXIgZm4gPSBFeHByLmF0dHJIYW5kbGVbIG5hbWUudG9Mb3dlckNhc2UoKSBdLFxuXHRcdC8vIERvbid0IGdldCBmb29sZWQgYnkgT2JqZWN0LnByb3RvdHlwZSBwcm9wZXJ0aWVzIChqUXVlcnkgIzEzODA3KVxuXHRcdHZhbCA9IGZuICYmIGhhc093bi5jYWxsKCBFeHByLmF0dHJIYW5kbGUsIG5hbWUudG9Mb3dlckNhc2UoKSApID9cblx0XHRcdGZuKCBlbGVtLCBuYW1lLCAhZG9jdW1lbnRJc0hUTUwgKSA6XG5cdFx0XHR1bmRlZmluZWQ7XG5cblx0cmV0dXJuIHZhbCAhPT0gdW5kZWZpbmVkID9cblx0XHR2YWwgOlxuXHRcdHN1cHBvcnQuYXR0cmlidXRlcyB8fCAhZG9jdW1lbnRJc0hUTUwgP1xuXHRcdFx0ZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUgKSA6XG5cdFx0XHQodmFsID0gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKG5hbWUpKSAmJiB2YWwuc3BlY2lmaWVkID9cblx0XHRcdFx0dmFsLnZhbHVlIDpcblx0XHRcdFx0bnVsbDtcbn07XG5cblNpenpsZS5lcnJvciA9IGZ1bmN0aW9uKCBtc2cgKSB7XG5cdHRocm93IG5ldyBFcnJvciggXCJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiBcIiArIG1zZyApO1xufTtcblxuLyoqXG4gKiBEb2N1bWVudCBzb3J0aW5nIGFuZCByZW1vdmluZyBkdXBsaWNhdGVzXG4gKiBAcGFyYW0ge0FycmF5TGlrZX0gcmVzdWx0c1xuICovXG5TaXp6bGUudW5pcXVlU29ydCA9IGZ1bmN0aW9uKCByZXN1bHRzICkge1xuXHR2YXIgZWxlbSxcblx0XHRkdXBsaWNhdGVzID0gW10sXG5cdFx0aiA9IDAsXG5cdFx0aSA9IDA7XG5cblx0Ly8gVW5sZXNzIHdlICprbm93KiB3ZSBjYW4gZGV0ZWN0IGR1cGxpY2F0ZXMsIGFzc3VtZSB0aGVpciBwcmVzZW5jZVxuXHRoYXNEdXBsaWNhdGUgPSAhc3VwcG9ydC5kZXRlY3REdXBsaWNhdGVzO1xuXHRzb3J0SW5wdXQgPSAhc3VwcG9ydC5zb3J0U3RhYmxlICYmIHJlc3VsdHMuc2xpY2UoIDAgKTtcblx0cmVzdWx0cy5zb3J0KCBzb3J0T3JkZXIgKTtcblxuXHRpZiAoIGhhc0R1cGxpY2F0ZSApIHtcblx0XHR3aGlsZSAoIChlbGVtID0gcmVzdWx0c1tpKytdKSApIHtcblx0XHRcdGlmICggZWxlbSA9PT0gcmVzdWx0c1sgaSBdICkge1xuXHRcdFx0XHRqID0gZHVwbGljYXRlcy5wdXNoKCBpICk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHdoaWxlICggai0tICkge1xuXHRcdFx0cmVzdWx0cy5zcGxpY2UoIGR1cGxpY2F0ZXNbIGogXSwgMSApO1xuXHRcdH1cblx0fVxuXG5cdC8vIENsZWFyIGlucHV0IGFmdGVyIHNvcnRpbmcgdG8gcmVsZWFzZSBvYmplY3RzXG5cdC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L3NpenpsZS9wdWxsLzIyNVxuXHRzb3J0SW5wdXQgPSBudWxsO1xuXG5cdHJldHVybiByZXN1bHRzO1xufTtcblxuLyoqXG4gKiBVdGlsaXR5IGZ1bmN0aW9uIGZvciByZXRyaWV2aW5nIHRoZSB0ZXh0IHZhbHVlIG9mIGFuIGFycmF5IG9mIERPTSBub2Rlc1xuICogQHBhcmFtIHtBcnJheXxFbGVtZW50fSBlbGVtXG4gKi9cbmdldFRleHQgPSBTaXp6bGUuZ2V0VGV4dCA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHR2YXIgbm9kZSxcblx0XHRyZXQgPSBcIlwiLFxuXHRcdGkgPSAwLFxuXHRcdG5vZGVUeXBlID0gZWxlbS5ub2RlVHlwZTtcblxuXHRpZiAoICFub2RlVHlwZSApIHtcblx0XHQvLyBJZiBubyBub2RlVHlwZSwgdGhpcyBpcyBleHBlY3RlZCB0byBiZSBhbiBhcnJheVxuXHRcdHdoaWxlICggKG5vZGUgPSBlbGVtW2krK10pICkge1xuXHRcdFx0Ly8gRG8gbm90IHRyYXZlcnNlIGNvbW1lbnQgbm9kZXNcblx0XHRcdHJldCArPSBnZXRUZXh0KCBub2RlICk7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKCBub2RlVHlwZSA9PT0gMSB8fCBub2RlVHlwZSA9PT0gOSB8fCBub2RlVHlwZSA9PT0gMTEgKSB7XG5cdFx0Ly8gVXNlIHRleHRDb250ZW50IGZvciBlbGVtZW50c1xuXHRcdC8vIGlubmVyVGV4dCB1c2FnZSByZW1vdmVkIGZvciBjb25zaXN0ZW5jeSBvZiBuZXcgbGluZXMgKGpRdWVyeSAjMTExNTMpXG5cdFx0aWYgKCB0eXBlb2YgZWxlbS50ZXh0Q29udGVudCA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHJldHVybiBlbGVtLnRleHRDb250ZW50O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBUcmF2ZXJzZSBpdHMgY2hpbGRyZW5cblx0XHRcdGZvciAoIGVsZW0gPSBlbGVtLmZpcnN0Q2hpbGQ7IGVsZW07IGVsZW0gPSBlbGVtLm5leHRTaWJsaW5nICkge1xuXHRcdFx0XHRyZXQgKz0gZ2V0VGV4dCggZWxlbSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fSBlbHNlIGlmICggbm9kZVR5cGUgPT09IDMgfHwgbm9kZVR5cGUgPT09IDQgKSB7XG5cdFx0cmV0dXJuIGVsZW0ubm9kZVZhbHVlO1xuXHR9XG5cdC8vIERvIG5vdCBpbmNsdWRlIGNvbW1lbnQgb3IgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBub2Rlc1xuXG5cdHJldHVybiByZXQ7XG59O1xuXG5FeHByID0gU2l6emxlLnNlbGVjdG9ycyA9IHtcblxuXHQvLyBDYW4gYmUgYWRqdXN0ZWQgYnkgdGhlIHVzZXJcblx0Y2FjaGVMZW5ndGg6IDUwLFxuXG5cdGNyZWF0ZVBzZXVkbzogbWFya0Z1bmN0aW9uLFxuXG5cdG1hdGNoOiBtYXRjaEV4cHIsXG5cblx0YXR0ckhhbmRsZToge30sXG5cblx0ZmluZDoge30sXG5cblx0cmVsYXRpdmU6IHtcblx0XHRcIj5cIjogeyBkaXI6IFwicGFyZW50Tm9kZVwiLCBmaXJzdDogdHJ1ZSB9LFxuXHRcdFwiIFwiOiB7IGRpcjogXCJwYXJlbnROb2RlXCIgfSxcblx0XHRcIitcIjogeyBkaXI6IFwicHJldmlvdXNTaWJsaW5nXCIsIGZpcnN0OiB0cnVlIH0sXG5cdFx0XCJ+XCI6IHsgZGlyOiBcInByZXZpb3VzU2libGluZ1wiIH1cblx0fSxcblxuXHRwcmVGaWx0ZXI6IHtcblx0XHRcIkFUVFJcIjogZnVuY3Rpb24oIG1hdGNoICkge1xuXHRcdFx0bWF0Y2hbMV0gPSBtYXRjaFsxXS5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApO1xuXG5cdFx0XHQvLyBNb3ZlIHRoZSBnaXZlbiB2YWx1ZSB0byBtYXRjaFszXSB3aGV0aGVyIHF1b3RlZCBvciB1bnF1b3RlZFxuXHRcdFx0bWF0Y2hbM10gPSAoIG1hdGNoWzNdIHx8IG1hdGNoWzRdIHx8IG1hdGNoWzVdIHx8IFwiXCIgKS5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApO1xuXG5cdFx0XHRpZiAoIG1hdGNoWzJdID09PSBcIn49XCIgKSB7XG5cdFx0XHRcdG1hdGNoWzNdID0gXCIgXCIgKyBtYXRjaFszXSArIFwiIFwiO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbWF0Y2guc2xpY2UoIDAsIDQgKTtcblx0XHR9LFxuXG5cdFx0XCJDSElMRFwiOiBmdW5jdGlvbiggbWF0Y2ggKSB7XG5cdFx0XHQvKiBtYXRjaGVzIGZyb20gbWF0Y2hFeHByW1wiQ0hJTERcIl1cblx0XHRcdFx0MSB0eXBlIChvbmx5fG50aHwuLi4pXG5cdFx0XHRcdDIgd2hhdCAoY2hpbGR8b2YtdHlwZSlcblx0XHRcdFx0MyBhcmd1bWVudCAoZXZlbnxvZGR8XFxkKnxcXGQqbihbKy1dXFxkKyk/fC4uLilcblx0XHRcdFx0NCB4bi1jb21wb25lbnQgb2YgeG4reSBhcmd1bWVudCAoWystXT9cXGQqbnwpXG5cdFx0XHRcdDUgc2lnbiBvZiB4bi1jb21wb25lbnRcblx0XHRcdFx0NiB4IG9mIHhuLWNvbXBvbmVudFxuXHRcdFx0XHQ3IHNpZ24gb2YgeS1jb21wb25lbnRcblx0XHRcdFx0OCB5IG9mIHktY29tcG9uZW50XG5cdFx0XHQqL1xuXHRcdFx0bWF0Y2hbMV0gPSBtYXRjaFsxXS50b0xvd2VyQ2FzZSgpO1xuXG5cdFx0XHRpZiAoIG1hdGNoWzFdLnNsaWNlKCAwLCAzICkgPT09IFwibnRoXCIgKSB7XG5cdFx0XHRcdC8vIG50aC0qIHJlcXVpcmVzIGFyZ3VtZW50XG5cdFx0XHRcdGlmICggIW1hdGNoWzNdICkge1xuXHRcdFx0XHRcdFNpenpsZS5lcnJvciggbWF0Y2hbMF0gKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIG51bWVyaWMgeCBhbmQgeSBwYXJhbWV0ZXJzIGZvciBFeHByLmZpbHRlci5DSElMRFxuXHRcdFx0XHQvLyByZW1lbWJlciB0aGF0IGZhbHNlL3RydWUgY2FzdCByZXNwZWN0aXZlbHkgdG8gMC8xXG5cdFx0XHRcdG1hdGNoWzRdID0gKyggbWF0Y2hbNF0gPyBtYXRjaFs1XSArIChtYXRjaFs2XSB8fCAxKSA6IDIgKiAoIG1hdGNoWzNdID09PSBcImV2ZW5cIiB8fCBtYXRjaFszXSA9PT0gXCJvZGRcIiApICk7XG5cdFx0XHRcdG1hdGNoWzVdID0gKyggKCBtYXRjaFs3XSArIG1hdGNoWzhdICkgfHwgbWF0Y2hbM10gPT09IFwib2RkXCIgKTtcblxuXHRcdFx0Ly8gb3RoZXIgdHlwZXMgcHJvaGliaXQgYXJndW1lbnRzXG5cdFx0XHR9IGVsc2UgaWYgKCBtYXRjaFszXSApIHtcblx0XHRcdFx0U2l6emxlLmVycm9yKCBtYXRjaFswXSApO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbWF0Y2g7XG5cdFx0fSxcblxuXHRcdFwiUFNFVURPXCI6IGZ1bmN0aW9uKCBtYXRjaCApIHtcblx0XHRcdHZhciBleGNlc3MsXG5cdFx0XHRcdHVucXVvdGVkID0gIW1hdGNoWzZdICYmIG1hdGNoWzJdO1xuXG5cdFx0XHRpZiAoIG1hdGNoRXhwcltcIkNISUxEXCJdLnRlc3QoIG1hdGNoWzBdICkgKSB7XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBBY2NlcHQgcXVvdGVkIGFyZ3VtZW50cyBhcy1pc1xuXHRcdFx0aWYgKCBtYXRjaFszXSApIHtcblx0XHRcdFx0bWF0Y2hbMl0gPSBtYXRjaFs0XSB8fCBtYXRjaFs1XSB8fCBcIlwiO1xuXG5cdFx0XHQvLyBTdHJpcCBleGNlc3MgY2hhcmFjdGVycyBmcm9tIHVucXVvdGVkIGFyZ3VtZW50c1xuXHRcdFx0fSBlbHNlIGlmICggdW5xdW90ZWQgJiYgcnBzZXVkby50ZXN0KCB1bnF1b3RlZCApICYmXG5cdFx0XHRcdC8vIEdldCBleGNlc3MgZnJvbSB0b2tlbml6ZSAocmVjdXJzaXZlbHkpXG5cdFx0XHRcdChleGNlc3MgPSB0b2tlbml6ZSggdW5xdW90ZWQsIHRydWUgKSkgJiZcblx0XHRcdFx0Ly8gYWR2YW5jZSB0byB0aGUgbmV4dCBjbG9zaW5nIHBhcmVudGhlc2lzXG5cdFx0XHRcdChleGNlc3MgPSB1bnF1b3RlZC5pbmRleE9mKCBcIilcIiwgdW5xdW90ZWQubGVuZ3RoIC0gZXhjZXNzICkgLSB1bnF1b3RlZC5sZW5ndGgpICkge1xuXG5cdFx0XHRcdC8vIGV4Y2VzcyBpcyBhIG5lZ2F0aXZlIGluZGV4XG5cdFx0XHRcdG1hdGNoWzBdID0gbWF0Y2hbMF0uc2xpY2UoIDAsIGV4Y2VzcyApO1xuXHRcdFx0XHRtYXRjaFsyXSA9IHVucXVvdGVkLnNsaWNlKCAwLCBleGNlc3MgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUmV0dXJuIG9ubHkgY2FwdHVyZXMgbmVlZGVkIGJ5IHRoZSBwc2V1ZG8gZmlsdGVyIG1ldGhvZCAodHlwZSBhbmQgYXJndW1lbnQpXG5cdFx0XHRyZXR1cm4gbWF0Y2guc2xpY2UoIDAsIDMgKTtcblx0XHR9XG5cdH0sXG5cblx0ZmlsdGVyOiB7XG5cblx0XHRcIlRBR1wiOiBmdW5jdGlvbiggbm9kZU5hbWVTZWxlY3RvciApIHtcblx0XHRcdHZhciBub2RlTmFtZSA9IG5vZGVOYW1lU2VsZWN0b3IucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0cmV0dXJuIG5vZGVOYW1lU2VsZWN0b3IgPT09IFwiKlwiID9cblx0XHRcdFx0ZnVuY3Rpb24oKSB7IHJldHVybiB0cnVlOyB9IDpcblx0XHRcdFx0ZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGVsZW0ubm9kZU5hbWUgJiYgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBub2RlTmFtZTtcblx0XHRcdFx0fTtcblx0XHR9LFxuXG5cdFx0XCJDTEFTU1wiOiBmdW5jdGlvbiggY2xhc3NOYW1lICkge1xuXHRcdFx0dmFyIHBhdHRlcm4gPSBjbGFzc0NhY2hlWyBjbGFzc05hbWUgKyBcIiBcIiBdO1xuXG5cdFx0XHRyZXR1cm4gcGF0dGVybiB8fFxuXHRcdFx0XHQocGF0dGVybiA9IG5ldyBSZWdFeHAoIFwiKF58XCIgKyB3aGl0ZXNwYWNlICsgXCIpXCIgKyBjbGFzc05hbWUgKyBcIihcIiArIHdoaXRlc3BhY2UgKyBcInwkKVwiICkpICYmXG5cdFx0XHRcdGNsYXNzQ2FjaGUoIGNsYXNzTmFtZSwgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHBhdHRlcm4udGVzdCggdHlwZW9mIGVsZW0uY2xhc3NOYW1lID09PSBcInN0cmluZ1wiICYmIGVsZW0uY2xhc3NOYW1lIHx8IHR5cGVvZiBlbGVtLmdldEF0dHJpYnV0ZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBlbGVtLmdldEF0dHJpYnV0ZShcImNsYXNzXCIpIHx8IFwiXCIgKTtcblx0XHRcdFx0fSk7XG5cdFx0fSxcblxuXHRcdFwiQVRUUlwiOiBmdW5jdGlvbiggbmFtZSwgb3BlcmF0b3IsIGNoZWNrICkge1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHR2YXIgcmVzdWx0ID0gU2l6emxlLmF0dHIoIGVsZW0sIG5hbWUgKTtcblxuXHRcdFx0XHRpZiAoIHJlc3VsdCA9PSBudWxsICkge1xuXHRcdFx0XHRcdHJldHVybiBvcGVyYXRvciA9PT0gXCIhPVwiO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICggIW9wZXJhdG9yICkge1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmVzdWx0ICs9IFwiXCI7XG5cblx0XHRcdFx0cmV0dXJuIG9wZXJhdG9yID09PSBcIj1cIiA/IHJlc3VsdCA9PT0gY2hlY2sgOlxuXHRcdFx0XHRcdG9wZXJhdG9yID09PSBcIiE9XCIgPyByZXN1bHQgIT09IGNoZWNrIDpcblx0XHRcdFx0XHRvcGVyYXRvciA9PT0gXCJePVwiID8gY2hlY2sgJiYgcmVzdWx0LmluZGV4T2YoIGNoZWNrICkgPT09IDAgOlxuXHRcdFx0XHRcdG9wZXJhdG9yID09PSBcIio9XCIgPyBjaGVjayAmJiByZXN1bHQuaW5kZXhPZiggY2hlY2sgKSA+IC0xIDpcblx0XHRcdFx0XHRvcGVyYXRvciA9PT0gXCIkPVwiID8gY2hlY2sgJiYgcmVzdWx0LnNsaWNlKCAtY2hlY2subGVuZ3RoICkgPT09IGNoZWNrIDpcblx0XHRcdFx0XHRvcGVyYXRvciA9PT0gXCJ+PVwiID8gKCBcIiBcIiArIHJlc3VsdC5yZXBsYWNlKCByd2hpdGVzcGFjZSwgXCIgXCIgKSArIFwiIFwiICkuaW5kZXhPZiggY2hlY2sgKSA+IC0xIDpcblx0XHRcdFx0XHRvcGVyYXRvciA9PT0gXCJ8PVwiID8gcmVzdWx0ID09PSBjaGVjayB8fCByZXN1bHQuc2xpY2UoIDAsIGNoZWNrLmxlbmd0aCArIDEgKSA9PT0gY2hlY2sgKyBcIi1cIiA6XG5cdFx0XHRcdFx0ZmFsc2U7XG5cdFx0XHR9O1xuXHRcdH0sXG5cblx0XHRcIkNISUxEXCI6IGZ1bmN0aW9uKCB0eXBlLCB3aGF0LCBhcmd1bWVudCwgZmlyc3QsIGxhc3QgKSB7XG5cdFx0XHR2YXIgc2ltcGxlID0gdHlwZS5zbGljZSggMCwgMyApICE9PSBcIm50aFwiLFxuXHRcdFx0XHRmb3J3YXJkID0gdHlwZS5zbGljZSggLTQgKSAhPT0gXCJsYXN0XCIsXG5cdFx0XHRcdG9mVHlwZSA9IHdoYXQgPT09IFwib2YtdHlwZVwiO1xuXG5cdFx0XHRyZXR1cm4gZmlyc3QgPT09IDEgJiYgbGFzdCA9PT0gMCA/XG5cblx0XHRcdFx0Ly8gU2hvcnRjdXQgZm9yIDpudGgtKihuKVxuXHRcdFx0XHRmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0XHRyZXR1cm4gISFlbGVtLnBhcmVudE5vZGU7XG5cdFx0XHRcdH0gOlxuXG5cdFx0XHRcdGZ1bmN0aW9uKCBlbGVtLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0XHRcdFx0dmFyIGNhY2hlLCBvdXRlckNhY2hlLCBub2RlLCBkaWZmLCBub2RlSW5kZXgsIHN0YXJ0LFxuXHRcdFx0XHRcdFx0ZGlyID0gc2ltcGxlICE9PSBmb3J3YXJkID8gXCJuZXh0U2libGluZ1wiIDogXCJwcmV2aW91c1NpYmxpbmdcIixcblx0XHRcdFx0XHRcdHBhcmVudCA9IGVsZW0ucGFyZW50Tm9kZSxcblx0XHRcdFx0XHRcdG5hbWUgPSBvZlR5cGUgJiYgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLFxuXHRcdFx0XHRcdFx0dXNlQ2FjaGUgPSAheG1sICYmICFvZlR5cGU7XG5cblx0XHRcdFx0XHRpZiAoIHBhcmVudCApIHtcblxuXHRcdFx0XHRcdFx0Ly8gOihmaXJzdHxsYXN0fG9ubHkpLShjaGlsZHxvZi10eXBlKVxuXHRcdFx0XHRcdFx0aWYgKCBzaW1wbGUgKSB7XG5cdFx0XHRcdFx0XHRcdHdoaWxlICggZGlyICkge1xuXHRcdFx0XHRcdFx0XHRcdG5vZGUgPSBlbGVtO1xuXHRcdFx0XHRcdFx0XHRcdHdoaWxlICggKG5vZGUgPSBub2RlWyBkaXIgXSkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoIG9mVHlwZSA/IG5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gbmFtZSA6IG5vZGUubm9kZVR5cGUgPT09IDEgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0Ly8gUmV2ZXJzZSBkaXJlY3Rpb24gZm9yIDpvbmx5LSogKGlmIHdlIGhhdmVuJ3QgeWV0IGRvbmUgc28pXG5cdFx0XHRcdFx0XHRcdFx0c3RhcnQgPSBkaXIgPSB0eXBlID09PSBcIm9ubHlcIiAmJiAhc3RhcnQgJiYgXCJuZXh0U2libGluZ1wiO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRzdGFydCA9IFsgZm9yd2FyZCA/IHBhcmVudC5maXJzdENoaWxkIDogcGFyZW50Lmxhc3RDaGlsZCBdO1xuXG5cdFx0XHRcdFx0XHQvLyBub24teG1sIDpudGgtY2hpbGQoLi4uKSBzdG9yZXMgY2FjaGUgZGF0YSBvbiBgcGFyZW50YFxuXHRcdFx0XHRcdFx0aWYgKCBmb3J3YXJkICYmIHVzZUNhY2hlICkge1xuXHRcdFx0XHRcdFx0XHQvLyBTZWVrIGBlbGVtYCBmcm9tIGEgcHJldmlvdXNseS1jYWNoZWQgaW5kZXhcblx0XHRcdFx0XHRcdFx0b3V0ZXJDYWNoZSA9IHBhcmVudFsgZXhwYW5kbyBdIHx8IChwYXJlbnRbIGV4cGFuZG8gXSA9IHt9KTtcblx0XHRcdFx0XHRcdFx0Y2FjaGUgPSBvdXRlckNhY2hlWyB0eXBlIF0gfHwgW107XG5cdFx0XHRcdFx0XHRcdG5vZGVJbmRleCA9IGNhY2hlWzBdID09PSBkaXJydW5zICYmIGNhY2hlWzFdO1xuXHRcdFx0XHRcdFx0XHRkaWZmID0gY2FjaGVbMF0gPT09IGRpcnJ1bnMgJiYgY2FjaGVbMl07XG5cdFx0XHRcdFx0XHRcdG5vZGUgPSBub2RlSW5kZXggJiYgcGFyZW50LmNoaWxkTm9kZXNbIG5vZGVJbmRleCBdO1xuXG5cdFx0XHRcdFx0XHRcdHdoaWxlICggKG5vZGUgPSArK25vZGVJbmRleCAmJiBub2RlICYmIG5vZGVbIGRpciBdIHx8XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBGYWxsYmFjayB0byBzZWVraW5nIGBlbGVtYCBmcm9tIHRoZSBzdGFydFxuXHRcdFx0XHRcdFx0XHRcdChkaWZmID0gbm9kZUluZGV4ID0gMCkgfHwgc3RhcnQucG9wKCkpICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gV2hlbiBmb3VuZCwgY2FjaGUgaW5kZXhlcyBvbiBgcGFyZW50YCBhbmQgYnJlYWtcblx0XHRcdFx0XHRcdFx0XHRpZiAoIG5vZGUubm9kZVR5cGUgPT09IDEgJiYgKytkaWZmICYmIG5vZGUgPT09IGVsZW0gKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRvdXRlckNhY2hlWyB0eXBlIF0gPSBbIGRpcnJ1bnMsIG5vZGVJbmRleCwgZGlmZiBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC8vIFVzZSBwcmV2aW91c2x5LWNhY2hlZCBlbGVtZW50IGluZGV4IGlmIGF2YWlsYWJsZVxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmICggdXNlQ2FjaGUgJiYgKGNhY2hlID0gKGVsZW1bIGV4cGFuZG8gXSB8fCAoZWxlbVsgZXhwYW5kbyBdID0ge30pKVsgdHlwZSBdKSAmJiBjYWNoZVswXSA9PT0gZGlycnVucyApIHtcblx0XHRcdFx0XHRcdFx0ZGlmZiA9IGNhY2hlWzFdO1xuXG5cdFx0XHRcdFx0XHQvLyB4bWwgOm50aC1jaGlsZCguLi4pIG9yIDpudGgtbGFzdC1jaGlsZCguLi4pIG9yIDpudGgoLWxhc3QpPy1vZi10eXBlKC4uLilcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdC8vIFVzZSB0aGUgc2FtZSBsb29wIGFzIGFib3ZlIHRvIHNlZWsgYGVsZW1gIGZyb20gdGhlIHN0YXJ0XG5cdFx0XHRcdFx0XHRcdHdoaWxlICggKG5vZGUgPSArK25vZGVJbmRleCAmJiBub2RlICYmIG5vZGVbIGRpciBdIHx8XG5cdFx0XHRcdFx0XHRcdFx0KGRpZmYgPSBub2RlSW5kZXggPSAwKSB8fCBzdGFydC5wb3AoKSkgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHRpZiAoICggb2ZUeXBlID8gbm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBuYW1lIDogbm9kZS5ub2RlVHlwZSA9PT0gMSApICYmICsrZGlmZiApIHtcblx0XHRcdFx0XHRcdFx0XHRcdC8vIENhY2hlIHRoZSBpbmRleCBvZiBlYWNoIGVuY291bnRlcmVkIGVsZW1lbnRcblx0XHRcdFx0XHRcdFx0XHRcdGlmICggdXNlQ2FjaGUgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdChub2RlWyBleHBhbmRvIF0gfHwgKG5vZGVbIGV4cGFuZG8gXSA9IHt9KSlbIHR5cGUgXSA9IFsgZGlycnVucywgZGlmZiBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoIG5vZGUgPT09IGVsZW0gKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHQvLyBJbmNvcnBvcmF0ZSB0aGUgb2Zmc2V0LCB0aGVuIGNoZWNrIGFnYWluc3QgY3ljbGUgc2l6ZVxuXHRcdFx0XHRcdFx0ZGlmZiAtPSBsYXN0O1xuXHRcdFx0XHRcdFx0cmV0dXJuIGRpZmYgPT09IGZpcnN0IHx8ICggZGlmZiAlIGZpcnN0ID09PSAwICYmIGRpZmYgLyBmaXJzdCA+PSAwICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdH0sXG5cblx0XHRcIlBTRVVET1wiOiBmdW5jdGlvbiggcHNldWRvLCBhcmd1bWVudCApIHtcblx0XHRcdC8vIHBzZXVkby1jbGFzcyBuYW1lcyBhcmUgY2FzZS1pbnNlbnNpdGl2ZVxuXHRcdFx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvc2VsZWN0b3JzLyNwc2V1ZG8tY2xhc3Nlc1xuXHRcdFx0Ly8gUHJpb3JpdGl6ZSBieSBjYXNlIHNlbnNpdGl2aXR5IGluIGNhc2UgY3VzdG9tIHBzZXVkb3MgYXJlIGFkZGVkIHdpdGggdXBwZXJjYXNlIGxldHRlcnNcblx0XHRcdC8vIFJlbWVtYmVyIHRoYXQgc2V0RmlsdGVycyBpbmhlcml0cyBmcm9tIHBzZXVkb3Ncblx0XHRcdHZhciBhcmdzLFxuXHRcdFx0XHRmbiA9IEV4cHIucHNldWRvc1sgcHNldWRvIF0gfHwgRXhwci5zZXRGaWx0ZXJzWyBwc2V1ZG8udG9Mb3dlckNhc2UoKSBdIHx8XG5cdFx0XHRcdFx0U2l6emxlLmVycm9yKCBcInVuc3VwcG9ydGVkIHBzZXVkbzogXCIgKyBwc2V1ZG8gKTtcblxuXHRcdFx0Ly8gVGhlIHVzZXIgbWF5IHVzZSBjcmVhdGVQc2V1ZG8gdG8gaW5kaWNhdGUgdGhhdFxuXHRcdFx0Ly8gYXJndW1lbnRzIGFyZSBuZWVkZWQgdG8gY3JlYXRlIHRoZSBmaWx0ZXIgZnVuY3Rpb25cblx0XHRcdC8vIGp1c3QgYXMgU2l6emxlIGRvZXNcblx0XHRcdGlmICggZm5bIGV4cGFuZG8gXSApIHtcblx0XHRcdFx0cmV0dXJuIGZuKCBhcmd1bWVudCApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBCdXQgbWFpbnRhaW4gc3VwcG9ydCBmb3Igb2xkIHNpZ25hdHVyZXNcblx0XHRcdGlmICggZm4ubGVuZ3RoID4gMSApIHtcblx0XHRcdFx0YXJncyA9IFsgcHNldWRvLCBwc2V1ZG8sIFwiXCIsIGFyZ3VtZW50IF07XG5cdFx0XHRcdHJldHVybiBFeHByLnNldEZpbHRlcnMuaGFzT3duUHJvcGVydHkoIHBzZXVkby50b0xvd2VyQ2FzZSgpICkgP1xuXHRcdFx0XHRcdG1hcmtGdW5jdGlvbihmdW5jdGlvbiggc2VlZCwgbWF0Y2hlcyApIHtcblx0XHRcdFx0XHRcdHZhciBpZHgsXG5cdFx0XHRcdFx0XHRcdG1hdGNoZWQgPSBmbiggc2VlZCwgYXJndW1lbnQgKSxcblx0XHRcdFx0XHRcdFx0aSA9IG1hdGNoZWQubGVuZ3RoO1xuXHRcdFx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0XHRcdGlkeCA9IGluZGV4T2YoIHNlZWQsIG1hdGNoZWRbaV0gKTtcblx0XHRcdFx0XHRcdFx0c2VlZFsgaWR4IF0gPSAhKCBtYXRjaGVzWyBpZHggXSA9IG1hdGNoZWRbaV0gKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KSA6XG5cdFx0XHRcdFx0ZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZm4oIGVsZW0sIDAsIGFyZ3MgKTtcblx0XHRcdFx0XHR9O1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZm47XG5cdFx0fVxuXHR9LFxuXG5cdHBzZXVkb3M6IHtcblx0XHQvLyBQb3RlbnRpYWxseSBjb21wbGV4IHBzZXVkb3Ncblx0XHRcIm5vdFwiOiBtYXJrRnVuY3Rpb24oZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdFx0Ly8gVHJpbSB0aGUgc2VsZWN0b3IgcGFzc2VkIHRvIGNvbXBpbGVcblx0XHRcdC8vIHRvIGF2b2lkIHRyZWF0aW5nIGxlYWRpbmcgYW5kIHRyYWlsaW5nXG5cdFx0XHQvLyBzcGFjZXMgYXMgY29tYmluYXRvcnNcblx0XHRcdHZhciBpbnB1dCA9IFtdLFxuXHRcdFx0XHRyZXN1bHRzID0gW10sXG5cdFx0XHRcdG1hdGNoZXIgPSBjb21waWxlKCBzZWxlY3Rvci5yZXBsYWNlKCBydHJpbSwgXCIkMVwiICkgKTtcblxuXHRcdFx0cmV0dXJuIG1hdGNoZXJbIGV4cGFuZG8gXSA/XG5cdFx0XHRcdG1hcmtGdW5jdGlvbihmdW5jdGlvbiggc2VlZCwgbWF0Y2hlcywgY29udGV4dCwgeG1sICkge1xuXHRcdFx0XHRcdHZhciBlbGVtLFxuXHRcdFx0XHRcdFx0dW5tYXRjaGVkID0gbWF0Y2hlciggc2VlZCwgbnVsbCwgeG1sLCBbXSApLFxuXHRcdFx0XHRcdFx0aSA9IHNlZWQubGVuZ3RoO1xuXG5cdFx0XHRcdFx0Ly8gTWF0Y2ggZWxlbWVudHMgdW5tYXRjaGVkIGJ5IGBtYXRjaGVyYFxuXHRcdFx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRcdFx0aWYgKCAoZWxlbSA9IHVubWF0Y2hlZFtpXSkgKSB7XG5cdFx0XHRcdFx0XHRcdHNlZWRbaV0gPSAhKG1hdGNoZXNbaV0gPSBlbGVtKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pIDpcblx0XHRcdFx0ZnVuY3Rpb24oIGVsZW0sIGNvbnRleHQsIHhtbCApIHtcblx0XHRcdFx0XHRpbnB1dFswXSA9IGVsZW07XG5cdFx0XHRcdFx0bWF0Y2hlciggaW5wdXQsIG51bGwsIHhtbCwgcmVzdWx0cyApO1xuXHRcdFx0XHRcdC8vIERvbid0IGtlZXAgdGhlIGVsZW1lbnQgKGlzc3VlICMyOTkpXG5cdFx0XHRcdFx0aW5wdXRbMF0gPSBudWxsO1xuXHRcdFx0XHRcdHJldHVybiAhcmVzdWx0cy5wb3AoKTtcblx0XHRcdFx0fTtcblx0XHR9KSxcblxuXHRcdFwiaGFzXCI6IG1hcmtGdW5jdGlvbihmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHJldHVybiBTaXp6bGUoIHNlbGVjdG9yLCBlbGVtICkubGVuZ3RoID4gMDtcblx0XHRcdH07XG5cdFx0fSksXG5cblx0XHRcImNvbnRhaW5zXCI6IG1hcmtGdW5jdGlvbihmdW5jdGlvbiggdGV4dCApIHtcblx0XHRcdHRleHQgPSB0ZXh0LnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICk7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHJldHVybiAoIGVsZW0udGV4dENvbnRlbnQgfHwgZWxlbS5pbm5lclRleHQgfHwgZ2V0VGV4dCggZWxlbSApICkuaW5kZXhPZiggdGV4dCApID4gLTE7XG5cdFx0XHR9O1xuXHRcdH0pLFxuXG5cdFx0Ly8gXCJXaGV0aGVyIGFuIGVsZW1lbnQgaXMgcmVwcmVzZW50ZWQgYnkgYSA6bGFuZygpIHNlbGVjdG9yXG5cdFx0Ly8gaXMgYmFzZWQgc29sZWx5IG9uIHRoZSBlbGVtZW50J3MgbGFuZ3VhZ2UgdmFsdWVcblx0XHQvLyBiZWluZyBlcXVhbCB0byB0aGUgaWRlbnRpZmllciBDLFxuXHRcdC8vIG9yIGJlZ2lubmluZyB3aXRoIHRoZSBpZGVudGlmaWVyIEMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgXCItXCIuXG5cdFx0Ly8gVGhlIG1hdGNoaW5nIG9mIEMgYWdhaW5zdCB0aGUgZWxlbWVudCdzIGxhbmd1YWdlIHZhbHVlIGlzIHBlcmZvcm1lZCBjYXNlLWluc2Vuc2l0aXZlbHkuXG5cdFx0Ly8gVGhlIGlkZW50aWZpZXIgQyBkb2VzIG5vdCBoYXZlIHRvIGJlIGEgdmFsaWQgbGFuZ3VhZ2UgbmFtZS5cIlxuXHRcdC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL3NlbGVjdG9ycy8jbGFuZy1wc2V1ZG9cblx0XHRcImxhbmdcIjogbWFya0Z1bmN0aW9uKCBmdW5jdGlvbiggbGFuZyApIHtcblx0XHRcdC8vIGxhbmcgdmFsdWUgbXVzdCBiZSBhIHZhbGlkIGlkZW50aWZpZXJcblx0XHRcdGlmICggIXJpZGVudGlmaWVyLnRlc3QobGFuZyB8fCBcIlwiKSApIHtcblx0XHRcdFx0U2l6emxlLmVycm9yKCBcInVuc3VwcG9ydGVkIGxhbmc6IFwiICsgbGFuZyApO1xuXHRcdFx0fVxuXHRcdFx0bGFuZyA9IGxhbmcucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHR2YXIgZWxlbUxhbmc7XG5cdFx0XHRcdGRvIHtcblx0XHRcdFx0XHRpZiAoIChlbGVtTGFuZyA9IGRvY3VtZW50SXNIVE1MID9cblx0XHRcdFx0XHRcdGVsZW0ubGFuZyA6XG5cdFx0XHRcdFx0XHRlbGVtLmdldEF0dHJpYnV0ZShcInhtbDpsYW5nXCIpIHx8IGVsZW0uZ2V0QXR0cmlidXRlKFwibGFuZ1wiKSkgKSB7XG5cblx0XHRcdFx0XHRcdGVsZW1MYW5nID0gZWxlbUxhbmcudG9Mb3dlckNhc2UoKTtcblx0XHRcdFx0XHRcdHJldHVybiBlbGVtTGFuZyA9PT0gbGFuZyB8fCBlbGVtTGFuZy5pbmRleE9mKCBsYW5nICsgXCItXCIgKSA9PT0gMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gd2hpbGUgKCAoZWxlbSA9IGVsZW0ucGFyZW50Tm9kZSkgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApO1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9O1xuXHRcdH0pLFxuXG5cdFx0Ly8gTWlzY2VsbGFuZW91c1xuXHRcdFwidGFyZ2V0XCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0dmFyIGhhc2ggPSB3aW5kb3cubG9jYXRpb24gJiYgd2luZG93LmxvY2F0aW9uLmhhc2g7XG5cdFx0XHRyZXR1cm4gaGFzaCAmJiBoYXNoLnNsaWNlKCAxICkgPT09IGVsZW0uaWQ7XG5cdFx0fSxcblxuXHRcdFwicm9vdFwiOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiBlbGVtID09PSBkb2NFbGVtO1xuXHRcdH0sXG5cblx0XHRcImZvY3VzXCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGVsZW0gPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiYgKCFkb2N1bWVudC5oYXNGb2N1cyB8fCBkb2N1bWVudC5oYXNGb2N1cygpKSAmJiAhIShlbGVtLnR5cGUgfHwgZWxlbS5ocmVmIHx8IH5lbGVtLnRhYkluZGV4KTtcblx0XHR9LFxuXG5cdFx0Ly8gQm9vbGVhbiBwcm9wZXJ0aWVzXG5cdFx0XCJlbmFibGVkXCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGVsZW0uZGlzYWJsZWQgPT09IGZhbHNlO1xuXHRcdH0sXG5cblx0XHRcImRpc2FibGVkXCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGVsZW0uZGlzYWJsZWQgPT09IHRydWU7XG5cdFx0fSxcblxuXHRcdFwiY2hlY2tlZFwiOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdC8vIEluIENTUzMsIDpjaGVja2VkIHNob3VsZCByZXR1cm4gYm90aCBjaGVja2VkIGFuZCBzZWxlY3RlZCBlbGVtZW50c1xuXHRcdFx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMS9SRUMtY3NzMy1zZWxlY3RvcnMtMjAxMTA5MjkvI2NoZWNrZWRcblx0XHRcdHZhciBub2RlTmFtZSA9IGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblx0XHRcdHJldHVybiAobm9kZU5hbWUgPT09IFwiaW5wdXRcIiAmJiAhIWVsZW0uY2hlY2tlZCkgfHwgKG5vZGVOYW1lID09PSBcIm9wdGlvblwiICYmICEhZWxlbS5zZWxlY3RlZCk7XG5cdFx0fSxcblxuXHRcdFwic2VsZWN0ZWRcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHQvLyBBY2Nlc3NpbmcgdGhpcyBwcm9wZXJ0eSBtYWtlcyBzZWxlY3RlZC1ieS1kZWZhdWx0XG5cdFx0XHQvLyBvcHRpb25zIGluIFNhZmFyaSB3b3JrIHByb3Blcmx5XG5cdFx0XHRpZiAoIGVsZW0ucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0ZWxlbS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXg7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBlbGVtLnNlbGVjdGVkID09PSB0cnVlO1xuXHRcdH0sXG5cblx0XHQvLyBDb250ZW50c1xuXHRcdFwiZW1wdHlcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHQvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9zZWxlY3RvcnMvI2VtcHR5LXBzZXVkb1xuXHRcdFx0Ly8gOmVtcHR5IGlzIG5lZ2F0ZWQgYnkgZWxlbWVudCAoMSkgb3IgY29udGVudCBub2RlcyAodGV4dDogMzsgY2RhdGE6IDQ7IGVudGl0eSByZWY6IDUpLFxuXHRcdFx0Ly8gICBidXQgbm90IGJ5IG90aGVycyAoY29tbWVudDogODsgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbjogNzsgZXRjLilcblx0XHRcdC8vIG5vZGVUeXBlIDwgNiB3b3JrcyBiZWNhdXNlIGF0dHJpYnV0ZXMgKDIpIGRvIG5vdCBhcHBlYXIgYXMgY2hpbGRyZW5cblx0XHRcdGZvciAoIGVsZW0gPSBlbGVtLmZpcnN0Q2hpbGQ7IGVsZW07IGVsZW0gPSBlbGVtLm5leHRTaWJsaW5nICkge1xuXHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPCA2ICkge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSxcblxuXHRcdFwicGFyZW50XCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuICFFeHByLnBzZXVkb3NbXCJlbXB0eVwiXSggZWxlbSApO1xuXHRcdH0sXG5cblx0XHQvLyBFbGVtZW50L2lucHV0IHR5cGVzXG5cdFx0XCJoZWFkZXJcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gcmhlYWRlci50ZXN0KCBlbGVtLm5vZGVOYW1lICk7XG5cdFx0fSxcblxuXHRcdFwiaW5wdXRcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gcmlucHV0cy50ZXN0KCBlbGVtLm5vZGVOYW1lICk7XG5cdFx0fSxcblxuXHRcdFwiYnV0dG9uXCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0dmFyIG5hbWUgPSBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG5cdFx0XHRyZXR1cm4gbmFtZSA9PT0gXCJpbnB1dFwiICYmIGVsZW0udHlwZSA9PT0gXCJidXR0b25cIiB8fCBuYW1lID09PSBcImJ1dHRvblwiO1xuXHRcdH0sXG5cblx0XHRcInRleHRcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHR2YXIgYXR0cjtcblx0XHRcdHJldHVybiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IFwiaW5wdXRcIiAmJlxuXHRcdFx0XHRlbGVtLnR5cGUgPT09IFwidGV4dFwiICYmXG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogSUU8OFxuXHRcdFx0XHQvLyBOZXcgSFRNTDUgYXR0cmlidXRlIHZhbHVlcyAoZS5nLiwgXCJzZWFyY2hcIikgYXBwZWFyIHdpdGggZWxlbS50eXBlID09PSBcInRleHRcIlxuXHRcdFx0XHQoIChhdHRyID0gZWxlbS5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpKSA9PSBudWxsIHx8IGF0dHIudG9Mb3dlckNhc2UoKSA9PT0gXCJ0ZXh0XCIgKTtcblx0XHR9LFxuXG5cdFx0Ly8gUG9zaXRpb24taW4tY29sbGVjdGlvblxuXHRcdFwiZmlyc3RcIjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyhmdW5jdGlvbigpIHtcblx0XHRcdHJldHVybiBbIDAgXTtcblx0XHR9KSxcblxuXHRcdFwibGFzdFwiOiBjcmVhdGVQb3NpdGlvbmFsUHNldWRvKGZ1bmN0aW9uKCBtYXRjaEluZGV4ZXMsIGxlbmd0aCApIHtcblx0XHRcdHJldHVybiBbIGxlbmd0aCAtIDEgXTtcblx0XHR9KSxcblxuXHRcdFwiZXFcIjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyhmdW5jdGlvbiggbWF0Y2hJbmRleGVzLCBsZW5ndGgsIGFyZ3VtZW50ICkge1xuXHRcdFx0cmV0dXJuIFsgYXJndW1lbnQgPCAwID8gYXJndW1lbnQgKyBsZW5ndGggOiBhcmd1bWVudCBdO1xuXHRcdH0pLFxuXG5cdFx0XCJldmVuXCI6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oZnVuY3Rpb24oIG1hdGNoSW5kZXhlcywgbGVuZ3RoICkge1xuXHRcdFx0dmFyIGkgPSAwO1xuXHRcdFx0Zm9yICggOyBpIDwgbGVuZ3RoOyBpICs9IDIgKSB7XG5cdFx0XHRcdG1hdGNoSW5kZXhlcy5wdXNoKCBpICk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbWF0Y2hJbmRleGVzO1xuXHRcdH0pLFxuXG5cdFx0XCJvZGRcIjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyhmdW5jdGlvbiggbWF0Y2hJbmRleGVzLCBsZW5ndGggKSB7XG5cdFx0XHR2YXIgaSA9IDE7XG5cdFx0XHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkgKz0gMiApIHtcblx0XHRcdFx0bWF0Y2hJbmRleGVzLnB1c2goIGkgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBtYXRjaEluZGV4ZXM7XG5cdFx0fSksXG5cblx0XHRcImx0XCI6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oZnVuY3Rpb24oIG1hdGNoSW5kZXhlcywgbGVuZ3RoLCBhcmd1bWVudCApIHtcblx0XHRcdHZhciBpID0gYXJndW1lbnQgPCAwID8gYXJndW1lbnQgKyBsZW5ndGggOiBhcmd1bWVudDtcblx0XHRcdGZvciAoIDsgLS1pID49IDA7ICkge1xuXHRcdFx0XHRtYXRjaEluZGV4ZXMucHVzaCggaSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1hdGNoSW5kZXhlcztcblx0XHR9KSxcblxuXHRcdFwiZ3RcIjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyhmdW5jdGlvbiggbWF0Y2hJbmRleGVzLCBsZW5ndGgsIGFyZ3VtZW50ICkge1xuXHRcdFx0dmFyIGkgPSBhcmd1bWVudCA8IDAgPyBhcmd1bWVudCArIGxlbmd0aCA6IGFyZ3VtZW50O1xuXHRcdFx0Zm9yICggOyArK2kgPCBsZW5ndGg7ICkge1xuXHRcdFx0XHRtYXRjaEluZGV4ZXMucHVzaCggaSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1hdGNoSW5kZXhlcztcblx0XHR9KVxuXHR9XG59O1xuXG5FeHByLnBzZXVkb3NbXCJudGhcIl0gPSBFeHByLnBzZXVkb3NbXCJlcVwiXTtcblxuLy8gQWRkIGJ1dHRvbi9pbnB1dCB0eXBlIHBzZXVkb3NcbmZvciAoIGkgaW4geyByYWRpbzogdHJ1ZSwgY2hlY2tib3g6IHRydWUsIGZpbGU6IHRydWUsIHBhc3N3b3JkOiB0cnVlLCBpbWFnZTogdHJ1ZSB9ICkge1xuXHRFeHByLnBzZXVkb3NbIGkgXSA9IGNyZWF0ZUlucHV0UHNldWRvKCBpICk7XG59XG5mb3IgKCBpIGluIHsgc3VibWl0OiB0cnVlLCByZXNldDogdHJ1ZSB9ICkge1xuXHRFeHByLnBzZXVkb3NbIGkgXSA9IGNyZWF0ZUJ1dHRvblBzZXVkbyggaSApO1xufVxuXG4vLyBFYXN5IEFQSSBmb3IgY3JlYXRpbmcgbmV3IHNldEZpbHRlcnNcbmZ1bmN0aW9uIHNldEZpbHRlcnMoKSB7fVxuc2V0RmlsdGVycy5wcm90b3R5cGUgPSBFeHByLmZpbHRlcnMgPSBFeHByLnBzZXVkb3M7XG5FeHByLnNldEZpbHRlcnMgPSBuZXcgc2V0RmlsdGVycygpO1xuXG50b2tlbml6ZSA9IFNpenpsZS50b2tlbml6ZSA9IGZ1bmN0aW9uKCBzZWxlY3RvciwgcGFyc2VPbmx5ICkge1xuXHR2YXIgbWF0Y2hlZCwgbWF0Y2gsIHRva2VucywgdHlwZSxcblx0XHRzb0ZhciwgZ3JvdXBzLCBwcmVGaWx0ZXJzLFxuXHRcdGNhY2hlZCA9IHRva2VuQ2FjaGVbIHNlbGVjdG9yICsgXCIgXCIgXTtcblxuXHRpZiAoIGNhY2hlZCApIHtcblx0XHRyZXR1cm4gcGFyc2VPbmx5ID8gMCA6IGNhY2hlZC5zbGljZSggMCApO1xuXHR9XG5cblx0c29GYXIgPSBzZWxlY3Rvcjtcblx0Z3JvdXBzID0gW107XG5cdHByZUZpbHRlcnMgPSBFeHByLnByZUZpbHRlcjtcblxuXHR3aGlsZSAoIHNvRmFyICkge1xuXG5cdFx0Ly8gQ29tbWEgYW5kIGZpcnN0IHJ1blxuXHRcdGlmICggIW1hdGNoZWQgfHwgKG1hdGNoID0gcmNvbW1hLmV4ZWMoIHNvRmFyICkpICkge1xuXHRcdFx0aWYgKCBtYXRjaCApIHtcblx0XHRcdFx0Ly8gRG9uJ3QgY29uc3VtZSB0cmFpbGluZyBjb21tYXMgYXMgdmFsaWRcblx0XHRcdFx0c29GYXIgPSBzb0Zhci5zbGljZSggbWF0Y2hbMF0ubGVuZ3RoICkgfHwgc29GYXI7XG5cdFx0XHR9XG5cdFx0XHRncm91cHMucHVzaCggKHRva2VucyA9IFtdKSApO1xuXHRcdH1cblxuXHRcdG1hdGNoZWQgPSBmYWxzZTtcblxuXHRcdC8vIENvbWJpbmF0b3JzXG5cdFx0aWYgKCAobWF0Y2ggPSByY29tYmluYXRvcnMuZXhlYyggc29GYXIgKSkgKSB7XG5cdFx0XHRtYXRjaGVkID0gbWF0Y2guc2hpZnQoKTtcblx0XHRcdHRva2Vucy5wdXNoKHtcblx0XHRcdFx0dmFsdWU6IG1hdGNoZWQsXG5cdFx0XHRcdC8vIENhc3QgZGVzY2VuZGFudCBjb21iaW5hdG9ycyB0byBzcGFjZVxuXHRcdFx0XHR0eXBlOiBtYXRjaFswXS5yZXBsYWNlKCBydHJpbSwgXCIgXCIgKVxuXHRcdFx0fSk7XG5cdFx0XHRzb0ZhciA9IHNvRmFyLnNsaWNlKCBtYXRjaGVkLmxlbmd0aCApO1xuXHRcdH1cblxuXHRcdC8vIEZpbHRlcnNcblx0XHRmb3IgKCB0eXBlIGluIEV4cHIuZmlsdGVyICkge1xuXHRcdFx0aWYgKCAobWF0Y2ggPSBtYXRjaEV4cHJbIHR5cGUgXS5leGVjKCBzb0ZhciApKSAmJiAoIXByZUZpbHRlcnNbIHR5cGUgXSB8fFxuXHRcdFx0XHQobWF0Y2ggPSBwcmVGaWx0ZXJzWyB0eXBlIF0oIG1hdGNoICkpKSApIHtcblx0XHRcdFx0bWF0Y2hlZCA9IG1hdGNoLnNoaWZ0KCk7XG5cdFx0XHRcdHRva2Vucy5wdXNoKHtcblx0XHRcdFx0XHR2YWx1ZTogbWF0Y2hlZCxcblx0XHRcdFx0XHR0eXBlOiB0eXBlLFxuXHRcdFx0XHRcdG1hdGNoZXM6IG1hdGNoXG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzb0ZhciA9IHNvRmFyLnNsaWNlKCBtYXRjaGVkLmxlbmd0aCApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICggIW1hdGNoZWQgKSB7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblxuXHQvLyBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgaW52YWxpZCBleGNlc3Ncblx0Ly8gaWYgd2UncmUganVzdCBwYXJzaW5nXG5cdC8vIE90aGVyd2lzZSwgdGhyb3cgYW4gZXJyb3Igb3IgcmV0dXJuIHRva2Vuc1xuXHRyZXR1cm4gcGFyc2VPbmx5ID9cblx0XHRzb0Zhci5sZW5ndGggOlxuXHRcdHNvRmFyID9cblx0XHRcdFNpenpsZS5lcnJvciggc2VsZWN0b3IgKSA6XG5cdFx0XHQvLyBDYWNoZSB0aGUgdG9rZW5zXG5cdFx0XHR0b2tlbkNhY2hlKCBzZWxlY3RvciwgZ3JvdXBzICkuc2xpY2UoIDAgKTtcbn07XG5cbmZ1bmN0aW9uIHRvU2VsZWN0b3IoIHRva2VucyApIHtcblx0dmFyIGkgPSAwLFxuXHRcdGxlbiA9IHRva2Vucy5sZW5ndGgsXG5cdFx0c2VsZWN0b3IgPSBcIlwiO1xuXHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRzZWxlY3RvciArPSB0b2tlbnNbaV0udmFsdWU7XG5cdH1cblx0cmV0dXJuIHNlbGVjdG9yO1xufVxuXG5mdW5jdGlvbiBhZGRDb21iaW5hdG9yKCBtYXRjaGVyLCBjb21iaW5hdG9yLCBiYXNlICkge1xuXHR2YXIgZGlyID0gY29tYmluYXRvci5kaXIsXG5cdFx0Y2hlY2tOb25FbGVtZW50cyA9IGJhc2UgJiYgZGlyID09PSBcInBhcmVudE5vZGVcIixcblx0XHRkb25lTmFtZSA9IGRvbmUrKztcblxuXHRyZXR1cm4gY29tYmluYXRvci5maXJzdCA/XG5cdFx0Ly8gQ2hlY2sgYWdhaW5zdCBjbG9zZXN0IGFuY2VzdG9yL3ByZWNlZGluZyBlbGVtZW50XG5cdFx0ZnVuY3Rpb24oIGVsZW0sIGNvbnRleHQsIHhtbCApIHtcblx0XHRcdHdoaWxlICggKGVsZW0gPSBlbGVtWyBkaXIgXSkgKSB7XG5cdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSB8fCBjaGVja05vbkVsZW1lbnRzICkge1xuXHRcdFx0XHRcdHJldHVybiBtYXRjaGVyKCBlbGVtLCBjb250ZXh0LCB4bWwgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gOlxuXG5cdFx0Ly8gQ2hlY2sgYWdhaW5zdCBhbGwgYW5jZXN0b3IvcHJlY2VkaW5nIGVsZW1lbnRzXG5cdFx0ZnVuY3Rpb24oIGVsZW0sIGNvbnRleHQsIHhtbCApIHtcblx0XHRcdHZhciBvbGRDYWNoZSwgb3V0ZXJDYWNoZSxcblx0XHRcdFx0bmV3Q2FjaGUgPSBbIGRpcnJ1bnMsIGRvbmVOYW1lIF07XG5cblx0XHRcdC8vIFdlIGNhbid0IHNldCBhcmJpdHJhcnkgZGF0YSBvbiBYTUwgbm9kZXMsIHNvIHRoZXkgZG9uJ3QgYmVuZWZpdCBmcm9tIGRpciBjYWNoaW5nXG5cdFx0XHRpZiAoIHhtbCApIHtcblx0XHRcdFx0d2hpbGUgKCAoZWxlbSA9IGVsZW1bIGRpciBdKSApIHtcblx0XHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgfHwgY2hlY2tOb25FbGVtZW50cyApIHtcblx0XHRcdFx0XHRcdGlmICggbWF0Y2hlciggZWxlbSwgY29udGV4dCwgeG1sICkgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0d2hpbGUgKCAoZWxlbSA9IGVsZW1bIGRpciBdKSApIHtcblx0XHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgfHwgY2hlY2tOb25FbGVtZW50cyApIHtcblx0XHRcdFx0XHRcdG91dGVyQ2FjaGUgPSBlbGVtWyBleHBhbmRvIF0gfHwgKGVsZW1bIGV4cGFuZG8gXSA9IHt9KTtcblx0XHRcdFx0XHRcdGlmICggKG9sZENhY2hlID0gb3V0ZXJDYWNoZVsgZGlyIF0pICYmXG5cdFx0XHRcdFx0XHRcdG9sZENhY2hlWyAwIF0gPT09IGRpcnJ1bnMgJiYgb2xkQ2FjaGVbIDEgXSA9PT0gZG9uZU5hbWUgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gQXNzaWduIHRvIG5ld0NhY2hlIHNvIHJlc3VsdHMgYmFjay1wcm9wYWdhdGUgdG8gcHJldmlvdXMgZWxlbWVudHNcblx0XHRcdFx0XHRcdFx0cmV0dXJuIChuZXdDYWNoZVsgMiBdID0gb2xkQ2FjaGVbIDIgXSk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyBSZXVzZSBuZXdjYWNoZSBzbyByZXN1bHRzIGJhY2stcHJvcGFnYXRlIHRvIHByZXZpb3VzIGVsZW1lbnRzXG5cdFx0XHRcdFx0XHRcdG91dGVyQ2FjaGVbIGRpciBdID0gbmV3Q2FjaGU7XG5cblx0XHRcdFx0XHRcdFx0Ly8gQSBtYXRjaCBtZWFucyB3ZSdyZSBkb25lOyBhIGZhaWwgbWVhbnMgd2UgaGF2ZSB0byBrZWVwIGNoZWNraW5nXG5cdFx0XHRcdFx0XHRcdGlmICggKG5ld0NhY2hlWyAyIF0gPSBtYXRjaGVyKCBlbGVtLCBjb250ZXh0LCB4bWwgKSkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xufVxuXG5mdW5jdGlvbiBlbGVtZW50TWF0Y2hlciggbWF0Y2hlcnMgKSB7XG5cdHJldHVybiBtYXRjaGVycy5sZW5ndGggPiAxID9cblx0XHRmdW5jdGlvbiggZWxlbSwgY29udGV4dCwgeG1sICkge1xuXHRcdFx0dmFyIGkgPSBtYXRjaGVycy5sZW5ndGg7XG5cdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0aWYgKCAhbWF0Y2hlcnNbaV0oIGVsZW0sIGNvbnRleHQsIHhtbCApICkge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSA6XG5cdFx0bWF0Y2hlcnNbMF07XG59XG5cbmZ1bmN0aW9uIG11bHRpcGxlQ29udGV4dHMoIHNlbGVjdG9yLCBjb250ZXh0cywgcmVzdWx0cyApIHtcblx0dmFyIGkgPSAwLFxuXHRcdGxlbiA9IGNvbnRleHRzLmxlbmd0aDtcblx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0U2l6emxlKCBzZWxlY3RvciwgY29udGV4dHNbaV0sIHJlc3VsdHMgKTtcblx0fVxuXHRyZXR1cm4gcmVzdWx0cztcbn1cblxuZnVuY3Rpb24gY29uZGVuc2UoIHVubWF0Y2hlZCwgbWFwLCBmaWx0ZXIsIGNvbnRleHQsIHhtbCApIHtcblx0dmFyIGVsZW0sXG5cdFx0bmV3VW5tYXRjaGVkID0gW10sXG5cdFx0aSA9IDAsXG5cdFx0bGVuID0gdW5tYXRjaGVkLmxlbmd0aCxcblx0XHRtYXBwZWQgPSBtYXAgIT0gbnVsbDtcblxuXHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRpZiAoIChlbGVtID0gdW5tYXRjaGVkW2ldKSApIHtcblx0XHRcdGlmICggIWZpbHRlciB8fCBmaWx0ZXIoIGVsZW0sIGNvbnRleHQsIHhtbCApICkge1xuXHRcdFx0XHRuZXdVbm1hdGNoZWQucHVzaCggZWxlbSApO1xuXHRcdFx0XHRpZiAoIG1hcHBlZCApIHtcblx0XHRcdFx0XHRtYXAucHVzaCggaSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIG5ld1VubWF0Y2hlZDtcbn1cblxuZnVuY3Rpb24gc2V0TWF0Y2hlciggcHJlRmlsdGVyLCBzZWxlY3RvciwgbWF0Y2hlciwgcG9zdEZpbHRlciwgcG9zdEZpbmRlciwgcG9zdFNlbGVjdG9yICkge1xuXHRpZiAoIHBvc3RGaWx0ZXIgJiYgIXBvc3RGaWx0ZXJbIGV4cGFuZG8gXSApIHtcblx0XHRwb3N0RmlsdGVyID0gc2V0TWF0Y2hlciggcG9zdEZpbHRlciApO1xuXHR9XG5cdGlmICggcG9zdEZpbmRlciAmJiAhcG9zdEZpbmRlclsgZXhwYW5kbyBdICkge1xuXHRcdHBvc3RGaW5kZXIgPSBzZXRNYXRjaGVyKCBwb3N0RmluZGVyLCBwb3N0U2VsZWN0b3IgKTtcblx0fVxuXHRyZXR1cm4gbWFya0Z1bmN0aW9uKGZ1bmN0aW9uKCBzZWVkLCByZXN1bHRzLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0dmFyIHRlbXAsIGksIGVsZW0sXG5cdFx0XHRwcmVNYXAgPSBbXSxcblx0XHRcdHBvc3RNYXAgPSBbXSxcblx0XHRcdHByZWV4aXN0aW5nID0gcmVzdWx0cy5sZW5ndGgsXG5cblx0XHRcdC8vIEdldCBpbml0aWFsIGVsZW1lbnRzIGZyb20gc2VlZCBvciBjb250ZXh0XG5cdFx0XHRlbGVtcyA9IHNlZWQgfHwgbXVsdGlwbGVDb250ZXh0cyggc2VsZWN0b3IgfHwgXCIqXCIsIGNvbnRleHQubm9kZVR5cGUgPyBbIGNvbnRleHQgXSA6IGNvbnRleHQsIFtdICksXG5cblx0XHRcdC8vIFByZWZpbHRlciB0byBnZXQgbWF0Y2hlciBpbnB1dCwgcHJlc2VydmluZyBhIG1hcCBmb3Igc2VlZC1yZXN1bHRzIHN5bmNocm9uaXphdGlvblxuXHRcdFx0bWF0Y2hlckluID0gcHJlRmlsdGVyICYmICggc2VlZCB8fCAhc2VsZWN0b3IgKSA/XG5cdFx0XHRcdGNvbmRlbnNlKCBlbGVtcywgcHJlTWFwLCBwcmVGaWx0ZXIsIGNvbnRleHQsIHhtbCApIDpcblx0XHRcdFx0ZWxlbXMsXG5cblx0XHRcdG1hdGNoZXJPdXQgPSBtYXRjaGVyID9cblx0XHRcdFx0Ly8gSWYgd2UgaGF2ZSBhIHBvc3RGaW5kZXIsIG9yIGZpbHRlcmVkIHNlZWQsIG9yIG5vbi1zZWVkIHBvc3RGaWx0ZXIgb3IgcHJlZXhpc3RpbmcgcmVzdWx0cyxcblx0XHRcdFx0cG9zdEZpbmRlciB8fCAoIHNlZWQgPyBwcmVGaWx0ZXIgOiBwcmVleGlzdGluZyB8fCBwb3N0RmlsdGVyICkgP1xuXG5cdFx0XHRcdFx0Ly8gLi4uaW50ZXJtZWRpYXRlIHByb2Nlc3NpbmcgaXMgbmVjZXNzYXJ5XG5cdFx0XHRcdFx0W10gOlxuXG5cdFx0XHRcdFx0Ly8gLi4ub3RoZXJ3aXNlIHVzZSByZXN1bHRzIGRpcmVjdGx5XG5cdFx0XHRcdFx0cmVzdWx0cyA6XG5cdFx0XHRcdG1hdGNoZXJJbjtcblxuXHRcdC8vIEZpbmQgcHJpbWFyeSBtYXRjaGVzXG5cdFx0aWYgKCBtYXRjaGVyICkge1xuXHRcdFx0bWF0Y2hlciggbWF0Y2hlckluLCBtYXRjaGVyT3V0LCBjb250ZXh0LCB4bWwgKTtcblx0XHR9XG5cblx0XHQvLyBBcHBseSBwb3N0RmlsdGVyXG5cdFx0aWYgKCBwb3N0RmlsdGVyICkge1xuXHRcdFx0dGVtcCA9IGNvbmRlbnNlKCBtYXRjaGVyT3V0LCBwb3N0TWFwICk7XG5cdFx0XHRwb3N0RmlsdGVyKCB0ZW1wLCBbXSwgY29udGV4dCwgeG1sICk7XG5cblx0XHRcdC8vIFVuLW1hdGNoIGZhaWxpbmcgZWxlbWVudHMgYnkgbW92aW5nIHRoZW0gYmFjayB0byBtYXRjaGVySW5cblx0XHRcdGkgPSB0ZW1wLmxlbmd0aDtcblx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRpZiAoIChlbGVtID0gdGVtcFtpXSkgKSB7XG5cdFx0XHRcdFx0bWF0Y2hlck91dFsgcG9zdE1hcFtpXSBdID0gIShtYXRjaGVySW5bIHBvc3RNYXBbaV0gXSA9IGVsZW0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCBzZWVkICkge1xuXHRcdFx0aWYgKCBwb3N0RmluZGVyIHx8IHByZUZpbHRlciApIHtcblx0XHRcdFx0aWYgKCBwb3N0RmluZGVyICkge1xuXHRcdFx0XHRcdC8vIEdldCB0aGUgZmluYWwgbWF0Y2hlck91dCBieSBjb25kZW5zaW5nIHRoaXMgaW50ZXJtZWRpYXRlIGludG8gcG9zdEZpbmRlciBjb250ZXh0c1xuXHRcdFx0XHRcdHRlbXAgPSBbXTtcblx0XHRcdFx0XHRpID0gbWF0Y2hlck91dC5sZW5ndGg7XG5cdFx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0XHRpZiAoIChlbGVtID0gbWF0Y2hlck91dFtpXSkgKSB7XG5cdFx0XHRcdFx0XHRcdC8vIFJlc3RvcmUgbWF0Y2hlckluIHNpbmNlIGVsZW0gaXMgbm90IHlldCBhIGZpbmFsIG1hdGNoXG5cdFx0XHRcdFx0XHRcdHRlbXAucHVzaCggKG1hdGNoZXJJbltpXSA9IGVsZW0pICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHBvc3RGaW5kZXIoIG51bGwsIChtYXRjaGVyT3V0ID0gW10pLCB0ZW1wLCB4bWwgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIE1vdmUgbWF0Y2hlZCBlbGVtZW50cyBmcm9tIHNlZWQgdG8gcmVzdWx0cyB0byBrZWVwIHRoZW0gc3luY2hyb25pemVkXG5cdFx0XHRcdGkgPSBtYXRjaGVyT3V0Lmxlbmd0aDtcblx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0aWYgKCAoZWxlbSA9IG1hdGNoZXJPdXRbaV0pICYmXG5cdFx0XHRcdFx0XHQodGVtcCA9IHBvc3RGaW5kZXIgPyBpbmRleE9mKCBzZWVkLCBlbGVtICkgOiBwcmVNYXBbaV0pID4gLTEgKSB7XG5cblx0XHRcdFx0XHRcdHNlZWRbdGVtcF0gPSAhKHJlc3VsdHNbdGVtcF0gPSBlbGVtKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdC8vIEFkZCBlbGVtZW50cyB0byByZXN1bHRzLCB0aHJvdWdoIHBvc3RGaW5kZXIgaWYgZGVmaW5lZFxuXHRcdH0gZWxzZSB7XG5cdFx0XHRtYXRjaGVyT3V0ID0gY29uZGVuc2UoXG5cdFx0XHRcdG1hdGNoZXJPdXQgPT09IHJlc3VsdHMgP1xuXHRcdFx0XHRcdG1hdGNoZXJPdXQuc3BsaWNlKCBwcmVleGlzdGluZywgbWF0Y2hlck91dC5sZW5ndGggKSA6XG5cdFx0XHRcdFx0bWF0Y2hlck91dFxuXHRcdFx0KTtcblx0XHRcdGlmICggcG9zdEZpbmRlciApIHtcblx0XHRcdFx0cG9zdEZpbmRlciggbnVsbCwgcmVzdWx0cywgbWF0Y2hlck91dCwgeG1sICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLCBtYXRjaGVyT3V0ICk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9KTtcbn1cblxuZnVuY3Rpb24gbWF0Y2hlckZyb21Ub2tlbnMoIHRva2VucyApIHtcblx0dmFyIGNoZWNrQ29udGV4dCwgbWF0Y2hlciwgaixcblx0XHRsZW4gPSB0b2tlbnMubGVuZ3RoLFxuXHRcdGxlYWRpbmdSZWxhdGl2ZSA9IEV4cHIucmVsYXRpdmVbIHRva2Vuc1swXS50eXBlIF0sXG5cdFx0aW1wbGljaXRSZWxhdGl2ZSA9IGxlYWRpbmdSZWxhdGl2ZSB8fCBFeHByLnJlbGF0aXZlW1wiIFwiXSxcblx0XHRpID0gbGVhZGluZ1JlbGF0aXZlID8gMSA6IDAsXG5cblx0XHQvLyBUaGUgZm91bmRhdGlvbmFsIG1hdGNoZXIgZW5zdXJlcyB0aGF0IGVsZW1lbnRzIGFyZSByZWFjaGFibGUgZnJvbSB0b3AtbGV2ZWwgY29udGV4dChzKVxuXHRcdG1hdGNoQ29udGV4dCA9IGFkZENvbWJpbmF0b3IoIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGVsZW0gPT09IGNoZWNrQ29udGV4dDtcblx0XHR9LCBpbXBsaWNpdFJlbGF0aXZlLCB0cnVlICksXG5cdFx0bWF0Y2hBbnlDb250ZXh0ID0gYWRkQ29tYmluYXRvciggZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gaW5kZXhPZiggY2hlY2tDb250ZXh0LCBlbGVtICkgPiAtMTtcblx0XHR9LCBpbXBsaWNpdFJlbGF0aXZlLCB0cnVlICksXG5cdFx0bWF0Y2hlcnMgPSBbIGZ1bmN0aW9uKCBlbGVtLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0XHR2YXIgcmV0ID0gKCAhbGVhZGluZ1JlbGF0aXZlICYmICggeG1sIHx8IGNvbnRleHQgIT09IG91dGVybW9zdENvbnRleHQgKSApIHx8IChcblx0XHRcdFx0KGNoZWNrQ29udGV4dCA9IGNvbnRleHQpLm5vZGVUeXBlID9cblx0XHRcdFx0XHRtYXRjaENvbnRleHQoIGVsZW0sIGNvbnRleHQsIHhtbCApIDpcblx0XHRcdFx0XHRtYXRjaEFueUNvbnRleHQoIGVsZW0sIGNvbnRleHQsIHhtbCApICk7XG5cdFx0XHQvLyBBdm9pZCBoYW5naW5nIG9udG8gZWxlbWVudCAoaXNzdWUgIzI5OSlcblx0XHRcdGNoZWNrQ29udGV4dCA9IG51bGw7XG5cdFx0XHRyZXR1cm4gcmV0O1xuXHRcdH0gXTtcblxuXHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRpZiAoIChtYXRjaGVyID0gRXhwci5yZWxhdGl2ZVsgdG9rZW5zW2ldLnR5cGUgXSkgKSB7XG5cdFx0XHRtYXRjaGVycyA9IFsgYWRkQ29tYmluYXRvcihlbGVtZW50TWF0Y2hlciggbWF0Y2hlcnMgKSwgbWF0Y2hlcikgXTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bWF0Y2hlciA9IEV4cHIuZmlsdGVyWyB0b2tlbnNbaV0udHlwZSBdLmFwcGx5KCBudWxsLCB0b2tlbnNbaV0ubWF0Y2hlcyApO1xuXG5cdFx0XHQvLyBSZXR1cm4gc3BlY2lhbCB1cG9uIHNlZWluZyBhIHBvc2l0aW9uYWwgbWF0Y2hlclxuXHRcdFx0aWYgKCBtYXRjaGVyWyBleHBhbmRvIF0gKSB7XG5cdFx0XHRcdC8vIEZpbmQgdGhlIG5leHQgcmVsYXRpdmUgb3BlcmF0b3IgKGlmIGFueSkgZm9yIHByb3BlciBoYW5kbGluZ1xuXHRcdFx0XHRqID0gKytpO1xuXHRcdFx0XHRmb3IgKCA7IGogPCBsZW47IGorKyApIHtcblx0XHRcdFx0XHRpZiAoIEV4cHIucmVsYXRpdmVbIHRva2Vuc1tqXS50eXBlIF0gKSB7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHNldE1hdGNoZXIoXG5cdFx0XHRcdFx0aSA+IDEgJiYgZWxlbWVudE1hdGNoZXIoIG1hdGNoZXJzICksXG5cdFx0XHRcdFx0aSA+IDEgJiYgdG9TZWxlY3Rvcihcblx0XHRcdFx0XHRcdC8vIElmIHRoZSBwcmVjZWRpbmcgdG9rZW4gd2FzIGEgZGVzY2VuZGFudCBjb21iaW5hdG9yLCBpbnNlcnQgYW4gaW1wbGljaXQgYW55LWVsZW1lbnQgYCpgXG5cdFx0XHRcdFx0XHR0b2tlbnMuc2xpY2UoIDAsIGkgLSAxICkuY29uY2F0KHsgdmFsdWU6IHRva2Vuc1sgaSAtIDIgXS50eXBlID09PSBcIiBcIiA/IFwiKlwiIDogXCJcIiB9KVxuXHRcdFx0XHRcdCkucmVwbGFjZSggcnRyaW0sIFwiJDFcIiApLFxuXHRcdFx0XHRcdG1hdGNoZXIsXG5cdFx0XHRcdFx0aSA8IGogJiYgbWF0Y2hlckZyb21Ub2tlbnMoIHRva2Vucy5zbGljZSggaSwgaiApICksXG5cdFx0XHRcdFx0aiA8IGxlbiAmJiBtYXRjaGVyRnJvbVRva2VucyggKHRva2VucyA9IHRva2Vucy5zbGljZSggaiApKSApLFxuXHRcdFx0XHRcdGogPCBsZW4gJiYgdG9TZWxlY3RvciggdG9rZW5zIClcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdG1hdGNoZXJzLnB1c2goIG1hdGNoZXIgKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZWxlbWVudE1hdGNoZXIoIG1hdGNoZXJzICk7XG59XG5cbmZ1bmN0aW9uIG1hdGNoZXJGcm9tR3JvdXBNYXRjaGVycyggZWxlbWVudE1hdGNoZXJzLCBzZXRNYXRjaGVycyApIHtcblx0dmFyIGJ5U2V0ID0gc2V0TWF0Y2hlcnMubGVuZ3RoID4gMCxcblx0XHRieUVsZW1lbnQgPSBlbGVtZW50TWF0Y2hlcnMubGVuZ3RoID4gMCxcblx0XHRzdXBlck1hdGNoZXIgPSBmdW5jdGlvbiggc2VlZCwgY29udGV4dCwgeG1sLCByZXN1bHRzLCBvdXRlcm1vc3QgKSB7XG5cdFx0XHR2YXIgZWxlbSwgaiwgbWF0Y2hlcixcblx0XHRcdFx0bWF0Y2hlZENvdW50ID0gMCxcblx0XHRcdFx0aSA9IFwiMFwiLFxuXHRcdFx0XHR1bm1hdGNoZWQgPSBzZWVkICYmIFtdLFxuXHRcdFx0XHRzZXRNYXRjaGVkID0gW10sXG5cdFx0XHRcdGNvbnRleHRCYWNrdXAgPSBvdXRlcm1vc3RDb250ZXh0LFxuXHRcdFx0XHQvLyBXZSBtdXN0IGFsd2F5cyBoYXZlIGVpdGhlciBzZWVkIGVsZW1lbnRzIG9yIG91dGVybW9zdCBjb250ZXh0XG5cdFx0XHRcdGVsZW1zID0gc2VlZCB8fCBieUVsZW1lbnQgJiYgRXhwci5maW5kW1wiVEFHXCJdKCBcIipcIiwgb3V0ZXJtb3N0ICksXG5cdFx0XHRcdC8vIFVzZSBpbnRlZ2VyIGRpcnJ1bnMgaWZmIHRoaXMgaXMgdGhlIG91dGVybW9zdCBtYXRjaGVyXG5cdFx0XHRcdGRpcnJ1bnNVbmlxdWUgPSAoZGlycnVucyArPSBjb250ZXh0QmFja3VwID09IG51bGwgPyAxIDogTWF0aC5yYW5kb20oKSB8fCAwLjEpLFxuXHRcdFx0XHRsZW4gPSBlbGVtcy5sZW5ndGg7XG5cblx0XHRcdGlmICggb3V0ZXJtb3N0ICkge1xuXHRcdFx0XHRvdXRlcm1vc3RDb250ZXh0ID0gY29udGV4dCAhPT0gZG9jdW1lbnQgJiYgY29udGV4dDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQWRkIGVsZW1lbnRzIHBhc3NpbmcgZWxlbWVudE1hdGNoZXJzIGRpcmVjdGx5IHRvIHJlc3VsdHNcblx0XHRcdC8vIEtlZXAgYGlgIGEgc3RyaW5nIGlmIHRoZXJlIGFyZSBubyBlbGVtZW50cyBzbyBgbWF0Y2hlZENvdW50YCB3aWxsIGJlIFwiMDBcIiBiZWxvd1xuXHRcdFx0Ly8gU3VwcG9ydDogSUU8OSwgU2FmYXJpXG5cdFx0XHQvLyBUb2xlcmF0ZSBOb2RlTGlzdCBwcm9wZXJ0aWVzIChJRTogXCJsZW5ndGhcIjsgU2FmYXJpOiA8bnVtYmVyPikgbWF0Y2hpbmcgZWxlbWVudHMgYnkgaWRcblx0XHRcdGZvciAoIDsgaSAhPT0gbGVuICYmIChlbGVtID0gZWxlbXNbaV0pICE9IG51bGw7IGkrKyApIHtcblx0XHRcdFx0aWYgKCBieUVsZW1lbnQgJiYgZWxlbSApIHtcblx0XHRcdFx0XHRqID0gMDtcblx0XHRcdFx0XHR3aGlsZSAoIChtYXRjaGVyID0gZWxlbWVudE1hdGNoZXJzW2orK10pICkge1xuXHRcdFx0XHRcdFx0aWYgKCBtYXRjaGVyKCBlbGVtLCBjb250ZXh0LCB4bWwgKSApIHtcblx0XHRcdFx0XHRcdFx0cmVzdWx0cy5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIG91dGVybW9zdCApIHtcblx0XHRcdFx0XHRcdGRpcnJ1bnMgPSBkaXJydW5zVW5pcXVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFRyYWNrIHVubWF0Y2hlZCBlbGVtZW50cyBmb3Igc2V0IGZpbHRlcnNcblx0XHRcdFx0aWYgKCBieVNldCApIHtcblx0XHRcdFx0XHQvLyBUaGV5IHdpbGwgaGF2ZSBnb25lIHRocm91Z2ggYWxsIHBvc3NpYmxlIG1hdGNoZXJzXG5cdFx0XHRcdFx0aWYgKCAoZWxlbSA9ICFtYXRjaGVyICYmIGVsZW0pICkge1xuXHRcdFx0XHRcdFx0bWF0Y2hlZENvdW50LS07XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gTGVuZ3RoZW4gdGhlIGFycmF5IGZvciBldmVyeSBlbGVtZW50LCBtYXRjaGVkIG9yIG5vdFxuXHRcdFx0XHRcdGlmICggc2VlZCApIHtcblx0XHRcdFx0XHRcdHVubWF0Y2hlZC5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIEFwcGx5IHNldCBmaWx0ZXJzIHRvIHVubWF0Y2hlZCBlbGVtZW50c1xuXHRcdFx0bWF0Y2hlZENvdW50ICs9IGk7XG5cdFx0XHRpZiAoIGJ5U2V0ICYmIGkgIT09IG1hdGNoZWRDb3VudCApIHtcblx0XHRcdFx0aiA9IDA7XG5cdFx0XHRcdHdoaWxlICggKG1hdGNoZXIgPSBzZXRNYXRjaGVyc1tqKytdKSApIHtcblx0XHRcdFx0XHRtYXRjaGVyKCB1bm1hdGNoZWQsIHNldE1hdGNoZWQsIGNvbnRleHQsIHhtbCApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKCBzZWVkICkge1xuXHRcdFx0XHRcdC8vIFJlaW50ZWdyYXRlIGVsZW1lbnQgbWF0Y2hlcyB0byBlbGltaW5hdGUgdGhlIG5lZWQgZm9yIHNvcnRpbmdcblx0XHRcdFx0XHRpZiAoIG1hdGNoZWRDb3VudCA+IDAgKSB7XG5cdFx0XHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0XHRcdFx0aWYgKCAhKHVubWF0Y2hlZFtpXSB8fCBzZXRNYXRjaGVkW2ldKSApIHtcblx0XHRcdFx0XHRcdFx0XHRzZXRNYXRjaGVkW2ldID0gcG9wLmNhbGwoIHJlc3VsdHMgKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIERpc2NhcmQgaW5kZXggcGxhY2Vob2xkZXIgdmFsdWVzIHRvIGdldCBvbmx5IGFjdHVhbCBtYXRjaGVzXG5cdFx0XHRcdFx0c2V0TWF0Y2hlZCA9IGNvbmRlbnNlKCBzZXRNYXRjaGVkICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBBZGQgbWF0Y2hlcyB0byByZXN1bHRzXG5cdFx0XHRcdHB1c2guYXBwbHkoIHJlc3VsdHMsIHNldE1hdGNoZWQgKTtcblxuXHRcdFx0XHQvLyBTZWVkbGVzcyBzZXQgbWF0Y2hlcyBzdWNjZWVkaW5nIG11bHRpcGxlIHN1Y2Nlc3NmdWwgbWF0Y2hlcnMgc3RpcHVsYXRlIHNvcnRpbmdcblx0XHRcdFx0aWYgKCBvdXRlcm1vc3QgJiYgIXNlZWQgJiYgc2V0TWF0Y2hlZC5sZW5ndGggPiAwICYmXG5cdFx0XHRcdFx0KCBtYXRjaGVkQ291bnQgKyBzZXRNYXRjaGVycy5sZW5ndGggKSA+IDEgKSB7XG5cblx0XHRcdFx0XHRTaXp6bGUudW5pcXVlU29ydCggcmVzdWx0cyApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIE92ZXJyaWRlIG1hbmlwdWxhdGlvbiBvZiBnbG9iYWxzIGJ5IG5lc3RlZCBtYXRjaGVyc1xuXHRcdFx0aWYgKCBvdXRlcm1vc3QgKSB7XG5cdFx0XHRcdGRpcnJ1bnMgPSBkaXJydW5zVW5pcXVlO1xuXHRcdFx0XHRvdXRlcm1vc3RDb250ZXh0ID0gY29udGV4dEJhY2t1cDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHVubWF0Y2hlZDtcblx0XHR9O1xuXG5cdHJldHVybiBieVNldCA/XG5cdFx0bWFya0Z1bmN0aW9uKCBzdXBlck1hdGNoZXIgKSA6XG5cdFx0c3VwZXJNYXRjaGVyO1xufVxuXG5jb21waWxlID0gU2l6emxlLmNvbXBpbGUgPSBmdW5jdGlvbiggc2VsZWN0b3IsIG1hdGNoIC8qIEludGVybmFsIFVzZSBPbmx5ICovICkge1xuXHR2YXIgaSxcblx0XHRzZXRNYXRjaGVycyA9IFtdLFxuXHRcdGVsZW1lbnRNYXRjaGVycyA9IFtdLFxuXHRcdGNhY2hlZCA9IGNvbXBpbGVyQ2FjaGVbIHNlbGVjdG9yICsgXCIgXCIgXTtcblxuXHRpZiAoICFjYWNoZWQgKSB7XG5cdFx0Ly8gR2VuZXJhdGUgYSBmdW5jdGlvbiBvZiByZWN1cnNpdmUgZnVuY3Rpb25zIHRoYXQgY2FuIGJlIHVzZWQgdG8gY2hlY2sgZWFjaCBlbGVtZW50XG5cdFx0aWYgKCAhbWF0Y2ggKSB7XG5cdFx0XHRtYXRjaCA9IHRva2VuaXplKCBzZWxlY3RvciApO1xuXHRcdH1cblx0XHRpID0gbWF0Y2gubGVuZ3RoO1xuXHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0Y2FjaGVkID0gbWF0Y2hlckZyb21Ub2tlbnMoIG1hdGNoW2ldICk7XG5cdFx0XHRpZiAoIGNhY2hlZFsgZXhwYW5kbyBdICkge1xuXHRcdFx0XHRzZXRNYXRjaGVycy5wdXNoKCBjYWNoZWQgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGVsZW1lbnRNYXRjaGVycy5wdXNoKCBjYWNoZWQgKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBDYWNoZSB0aGUgY29tcGlsZWQgZnVuY3Rpb25cblx0XHRjYWNoZWQgPSBjb21waWxlckNhY2hlKCBzZWxlY3RvciwgbWF0Y2hlckZyb21Hcm91cE1hdGNoZXJzKCBlbGVtZW50TWF0Y2hlcnMsIHNldE1hdGNoZXJzICkgKTtcblxuXHRcdC8vIFNhdmUgc2VsZWN0b3IgYW5kIHRva2VuaXphdGlvblxuXHRcdGNhY2hlZC5zZWxlY3RvciA9IHNlbGVjdG9yO1xuXHR9XG5cdHJldHVybiBjYWNoZWQ7XG59O1xuXG4vKipcbiAqIEEgbG93LWxldmVsIHNlbGVjdGlvbiBmdW5jdGlvbiB0aGF0IHdvcmtzIHdpdGggU2l6emxlJ3MgY29tcGlsZWRcbiAqICBzZWxlY3RvciBmdW5jdGlvbnNcbiAqIEBwYXJhbSB7U3RyaW5nfEZ1bmN0aW9ufSBzZWxlY3RvciBBIHNlbGVjdG9yIG9yIGEgcHJlLWNvbXBpbGVkXG4gKiAgc2VsZWN0b3IgZnVuY3Rpb24gYnVpbHQgd2l0aCBTaXp6bGUuY29tcGlsZVxuICogQHBhcmFtIHtFbGVtZW50fSBjb250ZXh0XG4gKiBAcGFyYW0ge0FycmF5fSBbcmVzdWx0c11cbiAqIEBwYXJhbSB7QXJyYXl9IFtzZWVkXSBBIHNldCBvZiBlbGVtZW50cyB0byBtYXRjaCBhZ2FpbnN0XG4gKi9cbnNlbGVjdCA9IFNpenpsZS5zZWxlY3QgPSBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQsIHJlc3VsdHMsIHNlZWQgKSB7XG5cdHZhciBpLCB0b2tlbnMsIHRva2VuLCB0eXBlLCBmaW5kLFxuXHRcdGNvbXBpbGVkID0gdHlwZW9mIHNlbGVjdG9yID09PSBcImZ1bmN0aW9uXCIgJiYgc2VsZWN0b3IsXG5cdFx0bWF0Y2ggPSAhc2VlZCAmJiB0b2tlbml6ZSggKHNlbGVjdG9yID0gY29tcGlsZWQuc2VsZWN0b3IgfHwgc2VsZWN0b3IpICk7XG5cblx0cmVzdWx0cyA9IHJlc3VsdHMgfHwgW107XG5cblx0Ly8gVHJ5IHRvIG1pbmltaXplIG9wZXJhdGlvbnMgaWYgdGhlcmUgaXMgbm8gc2VlZCBhbmQgb25seSBvbmUgZ3JvdXBcblx0aWYgKCBtYXRjaC5sZW5ndGggPT09IDEgKSB7XG5cblx0XHQvLyBUYWtlIGEgc2hvcnRjdXQgYW5kIHNldCB0aGUgY29udGV4dCBpZiB0aGUgcm9vdCBzZWxlY3RvciBpcyBhbiBJRFxuXHRcdHRva2VucyA9IG1hdGNoWzBdID0gbWF0Y2hbMF0uc2xpY2UoIDAgKTtcblx0XHRpZiAoIHRva2Vucy5sZW5ndGggPiAyICYmICh0b2tlbiA9IHRva2Vuc1swXSkudHlwZSA9PT0gXCJJRFwiICYmXG5cdFx0XHRcdHN1cHBvcnQuZ2V0QnlJZCAmJiBjb250ZXh0Lm5vZGVUeXBlID09PSA5ICYmIGRvY3VtZW50SXNIVE1MICYmXG5cdFx0XHRcdEV4cHIucmVsYXRpdmVbIHRva2Vuc1sxXS50eXBlIF0gKSB7XG5cblx0XHRcdGNvbnRleHQgPSAoIEV4cHIuZmluZFtcIklEXCJdKCB0b2tlbi5tYXRjaGVzWzBdLnJlcGxhY2UocnVuZXNjYXBlLCBmdW5lc2NhcGUpLCBjb250ZXh0ICkgfHwgW10gKVswXTtcblx0XHRcdGlmICggIWNvbnRleHQgKSB7XG5cdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXG5cdFx0XHQvLyBQcmVjb21waWxlZCBtYXRjaGVycyB3aWxsIHN0aWxsIHZlcmlmeSBhbmNlc3RyeSwgc28gc3RlcCB1cCBhIGxldmVsXG5cdFx0XHR9IGVsc2UgaWYgKCBjb21waWxlZCApIHtcblx0XHRcdFx0Y29udGV4dCA9IGNvbnRleHQucGFyZW50Tm9kZTtcblx0XHRcdH1cblxuXHRcdFx0c2VsZWN0b3IgPSBzZWxlY3Rvci5zbGljZSggdG9rZW5zLnNoaWZ0KCkudmFsdWUubGVuZ3RoICk7XG5cdFx0fVxuXG5cdFx0Ly8gRmV0Y2ggYSBzZWVkIHNldCBmb3IgcmlnaHQtdG8tbGVmdCBtYXRjaGluZ1xuXHRcdGkgPSBtYXRjaEV4cHJbXCJuZWVkc0NvbnRleHRcIl0udGVzdCggc2VsZWN0b3IgKSA/IDAgOiB0b2tlbnMubGVuZ3RoO1xuXHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0dG9rZW4gPSB0b2tlbnNbaV07XG5cblx0XHRcdC8vIEFib3J0IGlmIHdlIGhpdCBhIGNvbWJpbmF0b3Jcblx0XHRcdGlmICggRXhwci5yZWxhdGl2ZVsgKHR5cGUgPSB0b2tlbi50eXBlKSBdICkge1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHRcdGlmICggKGZpbmQgPSBFeHByLmZpbmRbIHR5cGUgXSkgKSB7XG5cdFx0XHRcdC8vIFNlYXJjaCwgZXhwYW5kaW5nIGNvbnRleHQgZm9yIGxlYWRpbmcgc2libGluZyBjb21iaW5hdG9yc1xuXHRcdFx0XHRpZiAoIChzZWVkID0gZmluZChcblx0XHRcdFx0XHR0b2tlbi5tYXRjaGVzWzBdLnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICksXG5cdFx0XHRcdFx0cnNpYmxpbmcudGVzdCggdG9rZW5zWzBdLnR5cGUgKSAmJiB0ZXN0Q29udGV4dCggY29udGV4dC5wYXJlbnROb2RlICkgfHwgY29udGV4dFxuXHRcdFx0XHQpKSApIHtcblxuXHRcdFx0XHRcdC8vIElmIHNlZWQgaXMgZW1wdHkgb3Igbm8gdG9rZW5zIHJlbWFpbiwgd2UgY2FuIHJldHVybiBlYXJseVxuXHRcdFx0XHRcdHRva2Vucy5zcGxpY2UoIGksIDEgKTtcblx0XHRcdFx0XHRzZWxlY3RvciA9IHNlZWQubGVuZ3RoICYmIHRvU2VsZWN0b3IoIHRva2VucyApO1xuXHRcdFx0XHRcdGlmICggIXNlbGVjdG9yICkge1xuXHRcdFx0XHRcdFx0cHVzaC5hcHBseSggcmVzdWx0cywgc2VlZCApO1xuXHRcdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBDb21waWxlIGFuZCBleGVjdXRlIGEgZmlsdGVyaW5nIGZ1bmN0aW9uIGlmIG9uZSBpcyBub3QgcHJvdmlkZWRcblx0Ly8gUHJvdmlkZSBgbWF0Y2hgIHRvIGF2b2lkIHJldG9rZW5pemF0aW9uIGlmIHdlIG1vZGlmaWVkIHRoZSBzZWxlY3RvciBhYm92ZVxuXHQoIGNvbXBpbGVkIHx8IGNvbXBpbGUoIHNlbGVjdG9yLCBtYXRjaCApICkoXG5cdFx0c2VlZCxcblx0XHRjb250ZXh0LFxuXHRcdCFkb2N1bWVudElzSFRNTCxcblx0XHRyZXN1bHRzLFxuXHRcdHJzaWJsaW5nLnRlc3QoIHNlbGVjdG9yICkgJiYgdGVzdENvbnRleHQoIGNvbnRleHQucGFyZW50Tm9kZSApIHx8IGNvbnRleHRcblx0KTtcblx0cmV0dXJuIHJlc3VsdHM7XG59O1xuXG4vLyBPbmUtdGltZSBhc3NpZ25tZW50c1xuXG4vLyBTb3J0IHN0YWJpbGl0eVxuc3VwcG9ydC5zb3J0U3RhYmxlID0gZXhwYW5kby5zcGxpdChcIlwiKS5zb3J0KCBzb3J0T3JkZXIgKS5qb2luKFwiXCIpID09PSBleHBhbmRvO1xuXG4vLyBTdXBwb3J0OiBDaHJvbWUgMTQtMzUrXG4vLyBBbHdheXMgYXNzdW1lIGR1cGxpY2F0ZXMgaWYgdGhleSBhcmVuJ3QgcGFzc2VkIHRvIHRoZSBjb21wYXJpc29uIGZ1bmN0aW9uXG5zdXBwb3J0LmRldGVjdER1cGxpY2F0ZXMgPSAhIWhhc0R1cGxpY2F0ZTtcblxuLy8gSW5pdGlhbGl6ZSBhZ2FpbnN0IHRoZSBkZWZhdWx0IGRvY3VtZW50XG5zZXREb2N1bWVudCgpO1xuXG4vLyBTdXBwb3J0OiBXZWJraXQ8NTM3LjMyIC0gU2FmYXJpIDYuMC4zL0Nocm9tZSAyNSAoZml4ZWQgaW4gQ2hyb21lIDI3KVxuLy8gRGV0YWNoZWQgbm9kZXMgY29uZm91bmRpbmdseSBmb2xsb3cgKmVhY2ggb3RoZXIqXG5zdXBwb3J0LnNvcnREZXRhY2hlZCA9IGFzc2VydChmdW5jdGlvbiggZGl2MSApIHtcblx0Ly8gU2hvdWxkIHJldHVybiAxLCBidXQgcmV0dXJucyA0IChmb2xsb3dpbmcpXG5cdHJldHVybiBkaXYxLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpICkgJiAxO1xufSk7XG5cbi8vIFN1cHBvcnQ6IElFPDhcbi8vIFByZXZlbnQgYXR0cmlidXRlL3Byb3BlcnR5IFwiaW50ZXJwb2xhdGlvblwiXG4vLyBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvbXM1MzY0MjklMjhWUy44NSUyOS5hc3B4XG5pZiAoICFhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHtcblx0ZGl2LmlubmVySFRNTCA9IFwiPGEgaHJlZj0nIyc+PC9hPlwiO1xuXHRyZXR1cm4gZGl2LmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKSA9PT0gXCIjXCIgO1xufSkgKSB7XG5cdGFkZEhhbmRsZSggXCJ0eXBlfGhyZWZ8aGVpZ2h0fHdpZHRoXCIsIGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBpc1hNTCApIHtcblx0XHRpZiAoICFpc1hNTCApIHtcblx0XHRcdHJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSggbmFtZSwgbmFtZS50b0xvd2VyQ2FzZSgpID09PSBcInR5cGVcIiA/IDEgOiAyICk7XG5cdFx0fVxuXHR9KTtcbn1cblxuLy8gU3VwcG9ydDogSUU8OVxuLy8gVXNlIGRlZmF1bHRWYWx1ZSBpbiBwbGFjZSBvZiBnZXRBdHRyaWJ1dGUoXCJ2YWx1ZVwiKVxuaWYgKCAhc3VwcG9ydC5hdHRyaWJ1dGVzIHx8ICFhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHtcblx0ZGl2LmlubmVySFRNTCA9IFwiPGlucHV0Lz5cIjtcblx0ZGl2LmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCBcInZhbHVlXCIsIFwiXCIgKTtcblx0cmV0dXJuIGRpdi5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSggXCJ2YWx1ZVwiICkgPT09IFwiXCI7XG59KSApIHtcblx0YWRkSGFuZGxlKCBcInZhbHVlXCIsIGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBpc1hNTCApIHtcblx0XHRpZiAoICFpc1hNTCAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IFwiaW5wdXRcIiApIHtcblx0XHRcdHJldHVybiBlbGVtLmRlZmF1bHRWYWx1ZTtcblx0XHR9XG5cdH0pO1xufVxuXG4vLyBTdXBwb3J0OiBJRTw5XG4vLyBVc2UgZ2V0QXR0cmlidXRlTm9kZSB0byBmZXRjaCBib29sZWFucyB3aGVuIGdldEF0dHJpYnV0ZSBsaWVzXG5pZiAoICFhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHtcblx0cmV0dXJuIGRpdi5nZXRBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiKSA9PSBudWxsO1xufSkgKSB7XG5cdGFkZEhhbmRsZSggYm9vbGVhbnMsIGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBpc1hNTCApIHtcblx0XHR2YXIgdmFsO1xuXHRcdGlmICggIWlzWE1MICkge1xuXHRcdFx0cmV0dXJuIGVsZW1bIG5hbWUgXSA9PT0gdHJ1ZSA/IG5hbWUudG9Mb3dlckNhc2UoKSA6XG5cdFx0XHRcdFx0KHZhbCA9IGVsZW0uZ2V0QXR0cmlidXRlTm9kZSggbmFtZSApKSAmJiB2YWwuc3BlY2lmaWVkID9cblx0XHRcdFx0XHR2YWwudmFsdWUgOlxuXHRcdFx0XHRudWxsO1xuXHRcdH1cblx0fSk7XG59XG5cbnJldHVybiBTaXp6bGU7XG5cbn0pKCB3aW5kb3cgKTtcblxuXG5cbmpRdWVyeS5maW5kID0gU2l6emxlO1xualF1ZXJ5LmV4cHIgPSBTaXp6bGUuc2VsZWN0b3JzO1xualF1ZXJ5LmV4cHJbXCI6XCJdID0galF1ZXJ5LmV4cHIucHNldWRvcztcbmpRdWVyeS51bmlxdWUgPSBTaXp6bGUudW5pcXVlU29ydDtcbmpRdWVyeS50ZXh0ID0gU2l6emxlLmdldFRleHQ7XG5qUXVlcnkuaXNYTUxEb2MgPSBTaXp6bGUuaXNYTUw7XG5qUXVlcnkuY29udGFpbnMgPSBTaXp6bGUuY29udGFpbnM7XG5cblxuXG52YXIgcm5lZWRzQ29udGV4dCA9IGpRdWVyeS5leHByLm1hdGNoLm5lZWRzQ29udGV4dDtcblxudmFyIHJzaW5nbGVUYWcgPSAoL148KFxcdyspXFxzKlxcLz8+KD86PFxcL1xcMT58KSQvKTtcblxuXG5cbnZhciByaXNTaW1wbGUgPSAvXi5bXjojXFxbXFwuLF0qJC87XG5cbi8vIEltcGxlbWVudCB0aGUgaWRlbnRpY2FsIGZ1bmN0aW9uYWxpdHkgZm9yIGZpbHRlciBhbmQgbm90XG5mdW5jdGlvbiB3aW5ub3coIGVsZW1lbnRzLCBxdWFsaWZpZXIsIG5vdCApIHtcblx0aWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggcXVhbGlmaWVyICkgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5ncmVwKCBlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0sIGkgKSB7XG5cdFx0XHQvKiBqc2hpbnQgLVcwMTggKi9cblx0XHRcdHJldHVybiAhIXF1YWxpZmllci5jYWxsKCBlbGVtLCBpLCBlbGVtICkgIT09IG5vdDtcblx0XHR9KTtcblxuXHR9XG5cblx0aWYgKCBxdWFsaWZpZXIubm9kZVR5cGUgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5ncmVwKCBlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gKCBlbGVtID09PSBxdWFsaWZpZXIgKSAhPT0gbm90O1xuXHRcdH0pO1xuXG5cdH1cblxuXHRpZiAoIHR5cGVvZiBxdWFsaWZpZXIgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0aWYgKCByaXNTaW1wbGUudGVzdCggcXVhbGlmaWVyICkgKSB7XG5cdFx0XHRyZXR1cm4galF1ZXJ5LmZpbHRlciggcXVhbGlmaWVyLCBlbGVtZW50cywgbm90ICk7XG5cdFx0fVxuXG5cdFx0cXVhbGlmaWVyID0galF1ZXJ5LmZpbHRlciggcXVhbGlmaWVyLCBlbGVtZW50cyApO1xuXHR9XG5cblx0cmV0dXJuIGpRdWVyeS5ncmVwKCBlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuICggaW5kZXhPZi5jYWxsKCBxdWFsaWZpZXIsIGVsZW0gKSA+PSAwICkgIT09IG5vdDtcblx0fSk7XG59XG5cbmpRdWVyeS5maWx0ZXIgPSBmdW5jdGlvbiggZXhwciwgZWxlbXMsIG5vdCApIHtcblx0dmFyIGVsZW0gPSBlbGVtc1sgMCBdO1xuXG5cdGlmICggbm90ICkge1xuXHRcdGV4cHIgPSBcIjpub3QoXCIgKyBleHByICsgXCIpXCI7XG5cdH1cblxuXHRyZXR1cm4gZWxlbXMubGVuZ3RoID09PSAxICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgP1xuXHRcdGpRdWVyeS5maW5kLm1hdGNoZXNTZWxlY3RvciggZWxlbSwgZXhwciApID8gWyBlbGVtIF0gOiBbXSA6XG5cdFx0alF1ZXJ5LmZpbmQubWF0Y2hlcyggZXhwciwgalF1ZXJ5LmdyZXAoIGVsZW1zLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiBlbGVtLm5vZGVUeXBlID09PSAxO1xuXHRcdH0pKTtcbn07XG5cbmpRdWVyeS5mbi5leHRlbmQoe1xuXHRmaW5kOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0dmFyIGksXG5cdFx0XHRsZW4gPSB0aGlzLmxlbmd0aCxcblx0XHRcdHJldCA9IFtdLFxuXHRcdFx0c2VsZiA9IHRoaXM7XG5cblx0XHRpZiAoIHR5cGVvZiBzZWxlY3RvciAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggalF1ZXJ5KCBzZWxlY3RvciApLmZpbHRlcihmdW5jdGlvbigpIHtcblx0XHRcdFx0Zm9yICggaSA9IDA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdFx0XHRpZiAoIGpRdWVyeS5jb250YWlucyggc2VsZlsgaSBdLCB0aGlzICkgKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pICk7XG5cdFx0fVxuXG5cdFx0Zm9yICggaSA9IDA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdGpRdWVyeS5maW5kKCBzZWxlY3Rvciwgc2VsZlsgaSBdLCByZXQgKTtcblx0XHR9XG5cblx0XHQvLyBOZWVkZWQgYmVjYXVzZSAkKCBzZWxlY3RvciwgY29udGV4dCApIGJlY29tZXMgJCggY29udGV4dCApLmZpbmQoIHNlbGVjdG9yIClcblx0XHRyZXQgPSB0aGlzLnB1c2hTdGFjayggbGVuID4gMSA/IGpRdWVyeS51bmlxdWUoIHJldCApIDogcmV0ICk7XG5cdFx0cmV0LnNlbGVjdG9yID0gdGhpcy5zZWxlY3RvciA/IHRoaXMuc2VsZWN0b3IgKyBcIiBcIiArIHNlbGVjdG9yIDogc2VsZWN0b3I7XG5cdFx0cmV0dXJuIHJldDtcblx0fSxcblx0ZmlsdGVyOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCB3aW5ub3codGhpcywgc2VsZWN0b3IgfHwgW10sIGZhbHNlKSApO1xuXHR9LFxuXHRub3Q6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHdpbm5vdyh0aGlzLCBzZWxlY3RvciB8fCBbXSwgdHJ1ZSkgKTtcblx0fSxcblx0aXM6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRyZXR1cm4gISF3aW5ub3coXG5cdFx0XHR0aGlzLFxuXG5cdFx0XHQvLyBJZiB0aGlzIGlzIGEgcG9zaXRpb25hbC9yZWxhdGl2ZSBzZWxlY3RvciwgY2hlY2sgbWVtYmVyc2hpcCBpbiB0aGUgcmV0dXJuZWQgc2V0XG5cdFx0XHQvLyBzbyAkKFwicDpmaXJzdFwiKS5pcyhcInA6bGFzdFwiKSB3b24ndCByZXR1cm4gdHJ1ZSBmb3IgYSBkb2Mgd2l0aCB0d28gXCJwXCIuXG5cdFx0XHR0eXBlb2Ygc2VsZWN0b3IgPT09IFwic3RyaW5nXCIgJiYgcm5lZWRzQ29udGV4dC50ZXN0KCBzZWxlY3RvciApID9cblx0XHRcdFx0alF1ZXJ5KCBzZWxlY3RvciApIDpcblx0XHRcdFx0c2VsZWN0b3IgfHwgW10sXG5cdFx0XHRmYWxzZVxuXHRcdCkubGVuZ3RoO1xuXHR9XG59KTtcblxuXG4vLyBJbml0aWFsaXplIGEgalF1ZXJ5IG9iamVjdFxuXG5cbi8vIEEgY2VudHJhbCByZWZlcmVuY2UgdG8gdGhlIHJvb3QgalF1ZXJ5KGRvY3VtZW50KVxudmFyIHJvb3RqUXVlcnksXG5cblx0Ly8gQSBzaW1wbGUgd2F5IHRvIGNoZWNrIGZvciBIVE1MIHN0cmluZ3Ncblx0Ly8gUHJpb3JpdGl6ZSAjaWQgb3ZlciA8dGFnPiB0byBhdm9pZCBYU1MgdmlhIGxvY2F0aW9uLmhhc2ggKCM5NTIxKVxuXHQvLyBTdHJpY3QgSFRNTCByZWNvZ25pdGlvbiAoIzExMjkwOiBtdXN0IHN0YXJ0IHdpdGggPClcblx0cnF1aWNrRXhwciA9IC9eKD86XFxzKig8W1xcd1xcV10rPilbXj5dKnwjKFtcXHctXSopKSQvLFxuXG5cdGluaXQgPSBqUXVlcnkuZm4uaW5pdCA9IGZ1bmN0aW9uKCBzZWxlY3RvciwgY29udGV4dCApIHtcblx0XHR2YXIgbWF0Y2gsIGVsZW07XG5cblx0XHQvLyBIQU5ETEU6ICQoXCJcIiksICQobnVsbCksICQodW5kZWZpbmVkKSwgJChmYWxzZSlcblx0XHRpZiAoICFzZWxlY3RvciApIHtcblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblxuXHRcdC8vIEhhbmRsZSBIVE1MIHN0cmluZ3Ncblx0XHRpZiAoIHR5cGVvZiBzZWxlY3RvciA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdGlmICggc2VsZWN0b3JbMF0gPT09IFwiPFwiICYmIHNlbGVjdG9yWyBzZWxlY3Rvci5sZW5ndGggLSAxIF0gPT09IFwiPlwiICYmIHNlbGVjdG9yLmxlbmd0aCA+PSAzICkge1xuXHRcdFx0XHQvLyBBc3N1bWUgdGhhdCBzdHJpbmdzIHRoYXQgc3RhcnQgYW5kIGVuZCB3aXRoIDw+IGFyZSBIVE1MIGFuZCBza2lwIHRoZSByZWdleCBjaGVja1xuXHRcdFx0XHRtYXRjaCA9IFsgbnVsbCwgc2VsZWN0b3IsIG51bGwgXTtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bWF0Y2ggPSBycXVpY2tFeHByLmV4ZWMoIHNlbGVjdG9yICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE1hdGNoIGh0bWwgb3IgbWFrZSBzdXJlIG5vIGNvbnRleHQgaXMgc3BlY2lmaWVkIGZvciAjaWRcblx0XHRcdGlmICggbWF0Y2ggJiYgKG1hdGNoWzFdIHx8ICFjb250ZXh0KSApIHtcblxuXHRcdFx0XHQvLyBIQU5ETEU6ICQoaHRtbCkgLT4gJChhcnJheSlcblx0XHRcdFx0aWYgKCBtYXRjaFsxXSApIHtcblx0XHRcdFx0XHRjb250ZXh0ID0gY29udGV4dCBpbnN0YW5jZW9mIGpRdWVyeSA/IGNvbnRleHRbMF0gOiBjb250ZXh0O1xuXG5cdFx0XHRcdFx0Ly8gT3B0aW9uIHRvIHJ1biBzY3JpcHRzIGlzIHRydWUgZm9yIGJhY2stY29tcGF0XG5cdFx0XHRcdFx0Ly8gSW50ZW50aW9uYWxseSBsZXQgdGhlIGVycm9yIGJlIHRocm93biBpZiBwYXJzZUhUTUwgaXMgbm90IHByZXNlbnRcblx0XHRcdFx0XHRqUXVlcnkubWVyZ2UoIHRoaXMsIGpRdWVyeS5wYXJzZUhUTUwoXG5cdFx0XHRcdFx0XHRtYXRjaFsxXSxcblx0XHRcdFx0XHRcdGNvbnRleHQgJiYgY29udGV4dC5ub2RlVHlwZSA/IGNvbnRleHQub3duZXJEb2N1bWVudCB8fCBjb250ZXh0IDogZG9jdW1lbnQsXG5cdFx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdFx0KSApO1xuXG5cdFx0XHRcdFx0Ly8gSEFORExFOiAkKGh0bWwsIHByb3BzKVxuXHRcdFx0XHRcdGlmICggcnNpbmdsZVRhZy50ZXN0KCBtYXRjaFsxXSApICYmIGpRdWVyeS5pc1BsYWluT2JqZWN0KCBjb250ZXh0ICkgKSB7XG5cdFx0XHRcdFx0XHRmb3IgKCBtYXRjaCBpbiBjb250ZXh0ICkge1xuXHRcdFx0XHRcdFx0XHQvLyBQcm9wZXJ0aWVzIG9mIGNvbnRleHQgYXJlIGNhbGxlZCBhcyBtZXRob2RzIGlmIHBvc3NpYmxlXG5cdFx0XHRcdFx0XHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHRoaXNbIG1hdGNoIF0gKSApIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzWyBtYXRjaCBdKCBjb250ZXh0WyBtYXRjaCBdICk7XG5cblx0XHRcdFx0XHRcdFx0Ly8gLi4uYW5kIG90aGVyd2lzZSBzZXQgYXMgYXR0cmlidXRlc1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuYXR0ciggbWF0Y2gsIGNvbnRleHRbIG1hdGNoIF0gKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXG5cdFx0XHRcdC8vIEhBTkRMRTogJCgjaWQpXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0ZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCBtYXRjaFsyXSApO1xuXG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogQmxhY2tiZXJyeSA0LjZcblx0XHRcdFx0XHQvLyBnRUJJRCByZXR1cm5zIG5vZGVzIG5vIGxvbmdlciBpbiB0aGUgZG9jdW1lbnQgKCM2OTYzKVxuXHRcdFx0XHRcdGlmICggZWxlbSAmJiBlbGVtLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdFx0XHQvLyBJbmplY3QgdGhlIGVsZW1lbnQgZGlyZWN0bHkgaW50byB0aGUgalF1ZXJ5IG9iamVjdFxuXHRcdFx0XHRcdFx0dGhpcy5sZW5ndGggPSAxO1xuXHRcdFx0XHRcdFx0dGhpc1swXSA9IGVsZW07XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0dGhpcy5jb250ZXh0ID0gZG9jdW1lbnQ7XG5cdFx0XHRcdFx0dGhpcy5zZWxlY3RvciA9IHNlbGVjdG9yO1xuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9XG5cblx0XHRcdC8vIEhBTkRMRTogJChleHByLCAkKC4uLikpXG5cdFx0XHR9IGVsc2UgaWYgKCAhY29udGV4dCB8fCBjb250ZXh0LmpxdWVyeSApIHtcblx0XHRcdFx0cmV0dXJuICggY29udGV4dCB8fCByb290alF1ZXJ5ICkuZmluZCggc2VsZWN0b3IgKTtcblxuXHRcdFx0Ly8gSEFORExFOiAkKGV4cHIsIGNvbnRleHQpXG5cdFx0XHQvLyAod2hpY2ggaXMganVzdCBlcXVpdmFsZW50IHRvOiAkKGNvbnRleHQpLmZpbmQoZXhwcilcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLmNvbnN0cnVjdG9yKCBjb250ZXh0ICkuZmluZCggc2VsZWN0b3IgKTtcblx0XHRcdH1cblxuXHRcdC8vIEhBTkRMRTogJChET01FbGVtZW50KVxuXHRcdH0gZWxzZSBpZiAoIHNlbGVjdG9yLm5vZGVUeXBlICkge1xuXHRcdFx0dGhpcy5jb250ZXh0ID0gdGhpc1swXSA9IHNlbGVjdG9yO1xuXHRcdFx0dGhpcy5sZW5ndGggPSAxO1xuXHRcdFx0cmV0dXJuIHRoaXM7XG5cblx0XHQvLyBIQU5ETEU6ICQoZnVuY3Rpb24pXG5cdFx0Ly8gU2hvcnRjdXQgZm9yIGRvY3VtZW50IHJlYWR5XG5cdFx0fSBlbHNlIGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHNlbGVjdG9yICkgKSB7XG5cdFx0XHRyZXR1cm4gdHlwZW9mIHJvb3RqUXVlcnkucmVhZHkgIT09IFwidW5kZWZpbmVkXCIgP1xuXHRcdFx0XHRyb290alF1ZXJ5LnJlYWR5KCBzZWxlY3RvciApIDpcblx0XHRcdFx0Ly8gRXhlY3V0ZSBpbW1lZGlhdGVseSBpZiByZWFkeSBpcyBub3QgcHJlc2VudFxuXHRcdFx0XHRzZWxlY3RvciggalF1ZXJ5ICk7XG5cdFx0fVxuXG5cdFx0aWYgKCBzZWxlY3Rvci5zZWxlY3RvciAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0dGhpcy5zZWxlY3RvciA9IHNlbGVjdG9yLnNlbGVjdG9yO1xuXHRcdFx0dGhpcy5jb250ZXh0ID0gc2VsZWN0b3IuY29udGV4dDtcblx0XHR9XG5cblx0XHRyZXR1cm4galF1ZXJ5Lm1ha2VBcnJheSggc2VsZWN0b3IsIHRoaXMgKTtcblx0fTtcblxuLy8gR2l2ZSB0aGUgaW5pdCBmdW5jdGlvbiB0aGUgalF1ZXJ5IHByb3RvdHlwZSBmb3IgbGF0ZXIgaW5zdGFudGlhdGlvblxuaW5pdC5wcm90b3R5cGUgPSBqUXVlcnkuZm47XG5cbi8vIEluaXRpYWxpemUgY2VudHJhbCByZWZlcmVuY2VcbnJvb3RqUXVlcnkgPSBqUXVlcnkoIGRvY3VtZW50ICk7XG5cblxudmFyIHJwYXJlbnRzcHJldiA9IC9eKD86cGFyZW50c3xwcmV2KD86VW50aWx8QWxsKSkvLFxuXHQvLyBNZXRob2RzIGd1YXJhbnRlZWQgdG8gcHJvZHVjZSBhIHVuaXF1ZSBzZXQgd2hlbiBzdGFydGluZyBmcm9tIGEgdW5pcXVlIHNldFxuXHRndWFyYW50ZWVkVW5pcXVlID0ge1xuXHRcdGNoaWxkcmVuOiB0cnVlLFxuXHRcdGNvbnRlbnRzOiB0cnVlLFxuXHRcdG5leHQ6IHRydWUsXG5cdFx0cHJldjogdHJ1ZVxuXHR9O1xuXG5qUXVlcnkuZXh0ZW5kKHtcblx0ZGlyOiBmdW5jdGlvbiggZWxlbSwgZGlyLCB1bnRpbCApIHtcblx0XHR2YXIgbWF0Y2hlZCA9IFtdLFxuXHRcdFx0dHJ1bmNhdGUgPSB1bnRpbCAhPT0gdW5kZWZpbmVkO1xuXG5cdFx0d2hpbGUgKCAoZWxlbSA9IGVsZW1bIGRpciBdKSAmJiBlbGVtLm5vZGVUeXBlICE9PSA5ICkge1xuXHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXHRcdFx0XHRpZiAoIHRydW5jYXRlICYmIGpRdWVyeSggZWxlbSApLmlzKCB1bnRpbCApICkge1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHRcdG1hdGNoZWQucHVzaCggZWxlbSApO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gbWF0Y2hlZDtcblx0fSxcblxuXHRzaWJsaW5nOiBmdW5jdGlvbiggbiwgZWxlbSApIHtcblx0XHR2YXIgbWF0Y2hlZCA9IFtdO1xuXG5cdFx0Zm9yICggOyBuOyBuID0gbi5uZXh0U2libGluZyApIHtcblx0XHRcdGlmICggbi5ub2RlVHlwZSA9PT0gMSAmJiBuICE9PSBlbGVtICkge1xuXHRcdFx0XHRtYXRjaGVkLnB1c2goIG4gKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gbWF0Y2hlZDtcblx0fVxufSk7XG5cbmpRdWVyeS5mbi5leHRlbmQoe1xuXHRoYXM6IGZ1bmN0aW9uKCB0YXJnZXQgKSB7XG5cdFx0dmFyIHRhcmdldHMgPSBqUXVlcnkoIHRhcmdldCwgdGhpcyApLFxuXHRcdFx0bCA9IHRhcmdldHMubGVuZ3RoO1xuXG5cdFx0cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIGkgPSAwO1xuXHRcdFx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRpZiAoIGpRdWVyeS5jb250YWlucyggdGhpcywgdGFyZ2V0c1tpXSApICkge1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0sXG5cblx0Y2xvc2VzdDogZnVuY3Rpb24oIHNlbGVjdG9ycywgY29udGV4dCApIHtcblx0XHR2YXIgY3VyLFxuXHRcdFx0aSA9IDAsXG5cdFx0XHRsID0gdGhpcy5sZW5ndGgsXG5cdFx0XHRtYXRjaGVkID0gW10sXG5cdFx0XHRwb3MgPSBybmVlZHNDb250ZXh0LnRlc3QoIHNlbGVjdG9ycyApIHx8IHR5cGVvZiBzZWxlY3RvcnMgIT09IFwic3RyaW5nXCIgP1xuXHRcdFx0XHRqUXVlcnkoIHNlbGVjdG9ycywgY29udGV4dCB8fCB0aGlzLmNvbnRleHQgKSA6XG5cdFx0XHRcdDA7XG5cblx0XHRmb3IgKCA7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRmb3IgKCBjdXIgPSB0aGlzW2ldOyBjdXIgJiYgY3VyICE9PSBjb250ZXh0OyBjdXIgPSBjdXIucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0Ly8gQWx3YXlzIHNraXAgZG9jdW1lbnQgZnJhZ21lbnRzXG5cdFx0XHRcdGlmICggY3VyLm5vZGVUeXBlIDwgMTEgJiYgKHBvcyA/XG5cdFx0XHRcdFx0cG9zLmluZGV4KGN1cikgPiAtMSA6XG5cblx0XHRcdFx0XHQvLyBEb24ndCBwYXNzIG5vbi1lbGVtZW50cyB0byBTaXp6bGVcblx0XHRcdFx0XHRjdXIubm9kZVR5cGUgPT09IDEgJiZcblx0XHRcdFx0XHRcdGpRdWVyeS5maW5kLm1hdGNoZXNTZWxlY3RvcihjdXIsIHNlbGVjdG9ycykpICkge1xuXG5cdFx0XHRcdFx0bWF0Y2hlZC5wdXNoKCBjdXIgKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggbWF0Y2hlZC5sZW5ndGggPiAxID8galF1ZXJ5LnVuaXF1ZSggbWF0Y2hlZCApIDogbWF0Y2hlZCApO1xuXHR9LFxuXG5cdC8vIERldGVybWluZSB0aGUgcG9zaXRpb24gb2YgYW4gZWxlbWVudCB3aXRoaW4gdGhlIHNldFxuXHRpbmRleDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHQvLyBObyBhcmd1bWVudCwgcmV0dXJuIGluZGV4IGluIHBhcmVudFxuXHRcdGlmICggIWVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gKCB0aGlzWyAwIF0gJiYgdGhpc1sgMCBdLnBhcmVudE5vZGUgKSA/IHRoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoIDogLTE7XG5cdFx0fVxuXG5cdFx0Ly8gSW5kZXggaW4gc2VsZWN0b3Jcblx0XHRpZiAoIHR5cGVvZiBlbGVtID09PSBcInN0cmluZ1wiICkge1xuXHRcdFx0cmV0dXJuIGluZGV4T2YuY2FsbCggalF1ZXJ5KCBlbGVtICksIHRoaXNbIDAgXSApO1xuXHRcdH1cblxuXHRcdC8vIExvY2F0ZSB0aGUgcG9zaXRpb24gb2YgdGhlIGRlc2lyZWQgZWxlbWVudFxuXHRcdHJldHVybiBpbmRleE9mLmNhbGwoIHRoaXMsXG5cblx0XHRcdC8vIElmIGl0IHJlY2VpdmVzIGEgalF1ZXJ5IG9iamVjdCwgdGhlIGZpcnN0IGVsZW1lbnQgaXMgdXNlZFxuXHRcdFx0ZWxlbS5qcXVlcnkgPyBlbGVtWyAwIF0gOiBlbGVtXG5cdFx0KTtcblx0fSxcblxuXHRhZGQ6IGZ1bmN0aW9uKCBzZWxlY3RvciwgY29udGV4dCApIHtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soXG5cdFx0XHRqUXVlcnkudW5pcXVlKFxuXHRcdFx0XHRqUXVlcnkubWVyZ2UoIHRoaXMuZ2V0KCksIGpRdWVyeSggc2VsZWN0b3IsIGNvbnRleHQgKSApXG5cdFx0XHQpXG5cdFx0KTtcblx0fSxcblxuXHRhZGRCYWNrOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0cmV0dXJuIHRoaXMuYWRkKCBzZWxlY3RvciA9PSBudWxsID9cblx0XHRcdHRoaXMucHJldk9iamVjdCA6IHRoaXMucHJldk9iamVjdC5maWx0ZXIoc2VsZWN0b3IpXG5cdFx0KTtcblx0fVxufSk7XG5cbmZ1bmN0aW9uIHNpYmxpbmcoIGN1ciwgZGlyICkge1xuXHR3aGlsZSAoIChjdXIgPSBjdXJbZGlyXSkgJiYgY3VyLm5vZGVUeXBlICE9PSAxICkge31cblx0cmV0dXJuIGN1cjtcbn1cblxualF1ZXJ5LmVhY2goe1xuXHRwYXJlbnQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGU7XG5cdFx0cmV0dXJuIHBhcmVudCAmJiBwYXJlbnQubm9kZVR5cGUgIT09IDExID8gcGFyZW50IDogbnVsbDtcblx0fSxcblx0cGFyZW50czogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5kaXIoIGVsZW0sIFwicGFyZW50Tm9kZVwiICk7XG5cdH0sXG5cdHBhcmVudHNVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkge1xuXHRcdHJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCBcInBhcmVudE5vZGVcIiwgdW50aWwgKTtcblx0fSxcblx0bmV4dDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIHNpYmxpbmcoIGVsZW0sIFwibmV4dFNpYmxpbmdcIiApO1xuXHR9LFxuXHRwcmV2OiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gc2libGluZyggZWxlbSwgXCJwcmV2aW91c1NpYmxpbmdcIiApO1xuXHR9LFxuXHRuZXh0QWxsOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmRpciggZWxlbSwgXCJuZXh0U2libGluZ1wiICk7XG5cdH0sXG5cdHByZXZBbGw6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCBcInByZXZpb3VzU2libGluZ1wiICk7XG5cdH0sXG5cdG5leHRVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkge1xuXHRcdHJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCBcIm5leHRTaWJsaW5nXCIsIHVudGlsICk7XG5cdH0sXG5cdHByZXZVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkge1xuXHRcdHJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCBcInByZXZpb3VzU2libGluZ1wiLCB1bnRpbCApO1xuXHR9LFxuXHRzaWJsaW5nczogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5zaWJsaW5nKCAoIGVsZW0ucGFyZW50Tm9kZSB8fCB7fSApLmZpcnN0Q2hpbGQsIGVsZW0gKTtcblx0fSxcblx0Y2hpbGRyZW46IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBqUXVlcnkuc2libGluZyggZWxlbS5maXJzdENoaWxkICk7XG5cdH0sXG5cdGNvbnRlbnRzOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gZWxlbS5jb250ZW50RG9jdW1lbnQgfHwgalF1ZXJ5Lm1lcmdlKCBbXSwgZWxlbS5jaGlsZE5vZGVzICk7XG5cdH1cbn0sIGZ1bmN0aW9uKCBuYW1lLCBmbiApIHtcblx0alF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggdW50aWwsIHNlbGVjdG9yICkge1xuXHRcdHZhciBtYXRjaGVkID0galF1ZXJ5Lm1hcCggdGhpcywgZm4sIHVudGlsICk7XG5cblx0XHRpZiAoIG5hbWUuc2xpY2UoIC01ICkgIT09IFwiVW50aWxcIiApIHtcblx0XHRcdHNlbGVjdG9yID0gdW50aWw7XG5cdFx0fVxuXG5cdFx0aWYgKCBzZWxlY3RvciAmJiB0eXBlb2Ygc2VsZWN0b3IgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRtYXRjaGVkID0galF1ZXJ5LmZpbHRlciggc2VsZWN0b3IsIG1hdGNoZWQgKTtcblx0XHR9XG5cblx0XHRpZiAoIHRoaXMubGVuZ3RoID4gMSApIHtcblx0XHRcdC8vIFJlbW92ZSBkdXBsaWNhdGVzXG5cdFx0XHRpZiAoICFndWFyYW50ZWVkVW5pcXVlWyBuYW1lIF0gKSB7XG5cdFx0XHRcdGpRdWVyeS51bmlxdWUoIG1hdGNoZWQgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUmV2ZXJzZSBvcmRlciBmb3IgcGFyZW50cyogYW5kIHByZXYtZGVyaXZhdGl2ZXNcblx0XHRcdGlmICggcnBhcmVudHNwcmV2LnRlc3QoIG5hbWUgKSApIHtcblx0XHRcdFx0bWF0Y2hlZC5yZXZlcnNlKCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBtYXRjaGVkICk7XG5cdH07XG59KTtcbnZhciBybm90d2hpdGUgPSAoL1xcUysvZyk7XG5cblxuXG4vLyBTdHJpbmcgdG8gT2JqZWN0IG9wdGlvbnMgZm9ybWF0IGNhY2hlXG52YXIgb3B0aW9uc0NhY2hlID0ge307XG5cbi8vIENvbnZlcnQgU3RyaW5nLWZvcm1hdHRlZCBvcHRpb25zIGludG8gT2JqZWN0LWZvcm1hdHRlZCBvbmVzIGFuZCBzdG9yZSBpbiBjYWNoZVxuZnVuY3Rpb24gY3JlYXRlT3B0aW9ucyggb3B0aW9ucyApIHtcblx0dmFyIG9iamVjdCA9IG9wdGlvbnNDYWNoZVsgb3B0aW9ucyBdID0ge307XG5cdGpRdWVyeS5lYWNoKCBvcHRpb25zLm1hdGNoKCBybm90d2hpdGUgKSB8fCBbXSwgZnVuY3Rpb24oIF8sIGZsYWcgKSB7XG5cdFx0b2JqZWN0WyBmbGFnIF0gPSB0cnVlO1xuXHR9KTtcblx0cmV0dXJuIG9iamVjdDtcbn1cblxuLypcbiAqIENyZWF0ZSBhIGNhbGxiYWNrIGxpc3QgdXNpbmcgdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzOlxuICpcbiAqXHRvcHRpb25zOiBhbiBvcHRpb25hbCBsaXN0IG9mIHNwYWNlLXNlcGFyYXRlZCBvcHRpb25zIHRoYXQgd2lsbCBjaGFuZ2UgaG93XG4gKlx0XHRcdHRoZSBjYWxsYmFjayBsaXN0IGJlaGF2ZXMgb3IgYSBtb3JlIHRyYWRpdGlvbmFsIG9wdGlvbiBvYmplY3RcbiAqXG4gKiBCeSBkZWZhdWx0IGEgY2FsbGJhY2sgbGlzdCB3aWxsIGFjdCBsaWtlIGFuIGV2ZW50IGNhbGxiYWNrIGxpc3QgYW5kIGNhbiBiZVxuICogXCJmaXJlZFwiIG11bHRpcGxlIHRpbWVzLlxuICpcbiAqIFBvc3NpYmxlIG9wdGlvbnM6XG4gKlxuICpcdG9uY2U6XHRcdFx0d2lsbCBlbnN1cmUgdGhlIGNhbGxiYWNrIGxpc3QgY2FuIG9ubHkgYmUgZmlyZWQgb25jZSAobGlrZSBhIERlZmVycmVkKVxuICpcbiAqXHRtZW1vcnk6XHRcdFx0d2lsbCBrZWVwIHRyYWNrIG9mIHByZXZpb3VzIHZhbHVlcyBhbmQgd2lsbCBjYWxsIGFueSBjYWxsYmFjayBhZGRlZFxuICpcdFx0XHRcdFx0YWZ0ZXIgdGhlIGxpc3QgaGFzIGJlZW4gZmlyZWQgcmlnaHQgYXdheSB3aXRoIHRoZSBsYXRlc3QgXCJtZW1vcml6ZWRcIlxuICpcdFx0XHRcdFx0dmFsdWVzIChsaWtlIGEgRGVmZXJyZWQpXG4gKlxuICpcdHVuaXF1ZTpcdFx0XHR3aWxsIGVuc3VyZSBhIGNhbGxiYWNrIGNhbiBvbmx5IGJlIGFkZGVkIG9uY2UgKG5vIGR1cGxpY2F0ZSBpbiB0aGUgbGlzdClcbiAqXG4gKlx0c3RvcE9uRmFsc2U6XHRpbnRlcnJ1cHQgY2FsbGluZ3Mgd2hlbiBhIGNhbGxiYWNrIHJldHVybnMgZmFsc2VcbiAqXG4gKi9cbmpRdWVyeS5DYWxsYmFja3MgPSBmdW5jdGlvbiggb3B0aW9ucyApIHtcblxuXHQvLyBDb252ZXJ0IG9wdGlvbnMgZnJvbSBTdHJpbmctZm9ybWF0dGVkIHRvIE9iamVjdC1mb3JtYXR0ZWQgaWYgbmVlZGVkXG5cdC8vICh3ZSBjaGVjayBpbiBjYWNoZSBmaXJzdClcblx0b3B0aW9ucyA9IHR5cGVvZiBvcHRpb25zID09PSBcInN0cmluZ1wiID9cblx0XHQoIG9wdGlvbnNDYWNoZVsgb3B0aW9ucyBdIHx8IGNyZWF0ZU9wdGlvbnMoIG9wdGlvbnMgKSApIDpcblx0XHRqUXVlcnkuZXh0ZW5kKCB7fSwgb3B0aW9ucyApO1xuXG5cdHZhciAvLyBMYXN0IGZpcmUgdmFsdWUgKGZvciBub24tZm9yZ2V0dGFibGUgbGlzdHMpXG5cdFx0bWVtb3J5LFxuXHRcdC8vIEZsYWcgdG8ga25vdyBpZiBsaXN0IHdhcyBhbHJlYWR5IGZpcmVkXG5cdFx0ZmlyZWQsXG5cdFx0Ly8gRmxhZyB0byBrbm93IGlmIGxpc3QgaXMgY3VycmVudGx5IGZpcmluZ1xuXHRcdGZpcmluZyxcblx0XHQvLyBGaXJzdCBjYWxsYmFjayB0byBmaXJlICh1c2VkIGludGVybmFsbHkgYnkgYWRkIGFuZCBmaXJlV2l0aClcblx0XHRmaXJpbmdTdGFydCxcblx0XHQvLyBFbmQgb2YgdGhlIGxvb3Agd2hlbiBmaXJpbmdcblx0XHRmaXJpbmdMZW5ndGgsXG5cdFx0Ly8gSW5kZXggb2YgY3VycmVudGx5IGZpcmluZyBjYWxsYmFjayAobW9kaWZpZWQgYnkgcmVtb3ZlIGlmIG5lZWRlZClcblx0XHRmaXJpbmdJbmRleCxcblx0XHQvLyBBY3R1YWwgY2FsbGJhY2sgbGlzdFxuXHRcdGxpc3QgPSBbXSxcblx0XHQvLyBTdGFjayBvZiBmaXJlIGNhbGxzIGZvciByZXBlYXRhYmxlIGxpc3RzXG5cdFx0c3RhY2sgPSAhb3B0aW9ucy5vbmNlICYmIFtdLFxuXHRcdC8vIEZpcmUgY2FsbGJhY2tzXG5cdFx0ZmlyZSA9IGZ1bmN0aW9uKCBkYXRhICkge1xuXHRcdFx0bWVtb3J5ID0gb3B0aW9ucy5tZW1vcnkgJiYgZGF0YTtcblx0XHRcdGZpcmVkID0gdHJ1ZTtcblx0XHRcdGZpcmluZ0luZGV4ID0gZmlyaW5nU3RhcnQgfHwgMDtcblx0XHRcdGZpcmluZ1N0YXJ0ID0gMDtcblx0XHRcdGZpcmluZ0xlbmd0aCA9IGxpc3QubGVuZ3RoO1xuXHRcdFx0ZmlyaW5nID0gdHJ1ZTtcblx0XHRcdGZvciAoIDsgbGlzdCAmJiBmaXJpbmdJbmRleCA8IGZpcmluZ0xlbmd0aDsgZmlyaW5nSW5kZXgrKyApIHtcblx0XHRcdFx0aWYgKCBsaXN0WyBmaXJpbmdJbmRleCBdLmFwcGx5KCBkYXRhWyAwIF0sIGRhdGFbIDEgXSApID09PSBmYWxzZSAmJiBvcHRpb25zLnN0b3BPbkZhbHNlICkge1xuXHRcdFx0XHRcdG1lbW9yeSA9IGZhbHNlOyAvLyBUbyBwcmV2ZW50IGZ1cnRoZXIgY2FsbHMgdXNpbmcgYWRkXG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGZpcmluZyA9IGZhbHNlO1xuXHRcdFx0aWYgKCBsaXN0ICkge1xuXHRcdFx0XHRpZiAoIHN0YWNrICkge1xuXHRcdFx0XHRcdGlmICggc3RhY2subGVuZ3RoICkge1xuXHRcdFx0XHRcdFx0ZmlyZSggc3RhY2suc2hpZnQoKSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIGlmICggbWVtb3J5ICkge1xuXHRcdFx0XHRcdGxpc3QgPSBbXTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzZWxmLmRpc2FibGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0Ly8gQWN0dWFsIENhbGxiYWNrcyBvYmplY3Rcblx0XHRzZWxmID0ge1xuXHRcdFx0Ly8gQWRkIGEgY2FsbGJhY2sgb3IgYSBjb2xsZWN0aW9uIG9mIGNhbGxiYWNrcyB0byB0aGUgbGlzdFxuXHRcdFx0YWRkOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCBsaXN0ICkge1xuXHRcdFx0XHRcdC8vIEZpcnN0LCB3ZSBzYXZlIHRoZSBjdXJyZW50IGxlbmd0aFxuXHRcdFx0XHRcdHZhciBzdGFydCA9IGxpc3QubGVuZ3RoO1xuXHRcdFx0XHRcdChmdW5jdGlvbiBhZGQoIGFyZ3MgKSB7XG5cdFx0XHRcdFx0XHRqUXVlcnkuZWFjaCggYXJncywgZnVuY3Rpb24oIF8sIGFyZyApIHtcblx0XHRcdFx0XHRcdFx0dmFyIHR5cGUgPSBqUXVlcnkudHlwZSggYXJnICk7XG5cdFx0XHRcdFx0XHRcdGlmICggdHlwZSA9PT0gXCJmdW5jdGlvblwiICkge1xuXHRcdFx0XHRcdFx0XHRcdGlmICggIW9wdGlvbnMudW5pcXVlIHx8ICFzZWxmLmhhcyggYXJnICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRsaXN0LnB1c2goIGFyZyApO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICggYXJnICYmIGFyZy5sZW5ndGggJiYgdHlwZSAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdFx0XHRcdFx0XHQvLyBJbnNwZWN0IHJlY3Vyc2l2ZWx5XG5cdFx0XHRcdFx0XHRcdFx0YWRkKCBhcmcgKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fSkoIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRcdC8vIERvIHdlIG5lZWQgdG8gYWRkIHRoZSBjYWxsYmFja3MgdG8gdGhlXG5cdFx0XHRcdFx0Ly8gY3VycmVudCBmaXJpbmcgYmF0Y2g/XG5cdFx0XHRcdFx0aWYgKCBmaXJpbmcgKSB7XG5cdFx0XHRcdFx0XHRmaXJpbmdMZW5ndGggPSBsaXN0Lmxlbmd0aDtcblx0XHRcdFx0XHQvLyBXaXRoIG1lbW9yeSwgaWYgd2UncmUgbm90IGZpcmluZyB0aGVuXG5cdFx0XHRcdFx0Ly8gd2Ugc2hvdWxkIGNhbGwgcmlnaHQgYXdheVxuXHRcdFx0XHRcdH0gZWxzZSBpZiAoIG1lbW9yeSApIHtcblx0XHRcdFx0XHRcdGZpcmluZ1N0YXJ0ID0gc3RhcnQ7XG5cdFx0XHRcdFx0XHRmaXJlKCBtZW1vcnkgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9LFxuXHRcdFx0Ly8gUmVtb3ZlIGEgY2FsbGJhY2sgZnJvbSB0aGUgbGlzdFxuXHRcdFx0cmVtb3ZlOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCBsaXN0ICkge1xuXHRcdFx0XHRcdGpRdWVyeS5lYWNoKCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBfLCBhcmcgKSB7XG5cdFx0XHRcdFx0XHR2YXIgaW5kZXg7XG5cdFx0XHRcdFx0XHR3aGlsZSAoICggaW5kZXggPSBqUXVlcnkuaW5BcnJheSggYXJnLCBsaXN0LCBpbmRleCApICkgPiAtMSApIHtcblx0XHRcdFx0XHRcdFx0bGlzdC5zcGxpY2UoIGluZGV4LCAxICk7XG5cdFx0XHRcdFx0XHRcdC8vIEhhbmRsZSBmaXJpbmcgaW5kZXhlc1xuXHRcdFx0XHRcdFx0XHRpZiAoIGZpcmluZyApIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoIGluZGV4IDw9IGZpcmluZ0xlbmd0aCApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGZpcmluZ0xlbmd0aC0tO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRpZiAoIGluZGV4IDw9IGZpcmluZ0luZGV4ICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0ZmlyaW5nSW5kZXgtLTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH0sXG5cdFx0XHQvLyBDaGVjayBpZiBhIGdpdmVuIGNhbGxiYWNrIGlzIGluIHRoZSBsaXN0LlxuXHRcdFx0Ly8gSWYgbm8gYXJndW1lbnQgaXMgZ2l2ZW4sIHJldHVybiB3aGV0aGVyIG9yIG5vdCBsaXN0IGhhcyBjYWxsYmFja3MgYXR0YWNoZWQuXG5cdFx0XHRoYXM6IGZ1bmN0aW9uKCBmbiApIHtcblx0XHRcdFx0cmV0dXJuIGZuID8galF1ZXJ5LmluQXJyYXkoIGZuLCBsaXN0ICkgPiAtMSA6ICEhKCBsaXN0ICYmIGxpc3QubGVuZ3RoICk7XG5cdFx0XHR9LFxuXHRcdFx0Ly8gUmVtb3ZlIGFsbCBjYWxsYmFja3MgZnJvbSB0aGUgbGlzdFxuXHRcdFx0ZW1wdHk6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRsaXN0ID0gW107XG5cdFx0XHRcdGZpcmluZ0xlbmd0aCA9IDA7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblx0XHRcdC8vIEhhdmUgdGhlIGxpc3QgZG8gbm90aGluZyBhbnltb3JlXG5cdFx0XHRkaXNhYmxlOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0bGlzdCA9IHN0YWNrID0gbWVtb3J5ID0gdW5kZWZpbmVkO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH0sXG5cdFx0XHQvLyBJcyBpdCBkaXNhYmxlZD9cblx0XHRcdGRpc2FibGVkOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0cmV0dXJuICFsaXN0O1xuXHRcdFx0fSxcblx0XHRcdC8vIExvY2sgdGhlIGxpc3QgaW4gaXRzIGN1cnJlbnQgc3RhdGVcblx0XHRcdGxvY2s6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRzdGFjayA9IHVuZGVmaW5lZDtcblx0XHRcdFx0aWYgKCAhbWVtb3J5ICkge1xuXHRcdFx0XHRcdHNlbGYuZGlzYWJsZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblx0XHRcdC8vIElzIGl0IGxvY2tlZD9cblx0XHRcdGxvY2tlZDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiAhc3RhY2s7XG5cdFx0XHR9LFxuXHRcdFx0Ly8gQ2FsbCBhbGwgY2FsbGJhY2tzIHdpdGggdGhlIGdpdmVuIGNvbnRleHQgYW5kIGFyZ3VtZW50c1xuXHRcdFx0ZmlyZVdpdGg6IGZ1bmN0aW9uKCBjb250ZXh0LCBhcmdzICkge1xuXHRcdFx0XHRpZiAoIGxpc3QgJiYgKCAhZmlyZWQgfHwgc3RhY2sgKSApIHtcblx0XHRcdFx0XHRhcmdzID0gYXJncyB8fCBbXTtcblx0XHRcdFx0XHRhcmdzID0gWyBjb250ZXh0LCBhcmdzLnNsaWNlID8gYXJncy5zbGljZSgpIDogYXJncyBdO1xuXHRcdFx0XHRcdGlmICggZmlyaW5nICkge1xuXHRcdFx0XHRcdFx0c3RhY2sucHVzaCggYXJncyApO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRmaXJlKCBhcmdzICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblx0XHRcdC8vIENhbGwgYWxsIHRoZSBjYWxsYmFja3Mgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzXG5cdFx0XHRmaXJlOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0c2VsZi5maXJlV2l0aCggdGhpcywgYXJndW1lbnRzICk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblx0XHRcdC8vIFRvIGtub3cgaWYgdGhlIGNhbGxiYWNrcyBoYXZlIGFscmVhZHkgYmVlbiBjYWxsZWQgYXQgbGVhc3Qgb25jZVxuXHRcdFx0ZmlyZWQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gISFmaXJlZDtcblx0XHRcdH1cblx0XHR9O1xuXG5cdHJldHVybiBzZWxmO1xufTtcblxuXG5qUXVlcnkuZXh0ZW5kKHtcblxuXHREZWZlcnJlZDogZnVuY3Rpb24oIGZ1bmMgKSB7XG5cdFx0dmFyIHR1cGxlcyA9IFtcblx0XHRcdFx0Ly8gYWN0aW9uLCBhZGQgbGlzdGVuZXIsIGxpc3RlbmVyIGxpc3QsIGZpbmFsIHN0YXRlXG5cdFx0XHRcdFsgXCJyZXNvbHZlXCIsIFwiZG9uZVwiLCBqUXVlcnkuQ2FsbGJhY2tzKFwib25jZSBtZW1vcnlcIiksIFwicmVzb2x2ZWRcIiBdLFxuXHRcdFx0XHRbIFwicmVqZWN0XCIsIFwiZmFpbFwiLCBqUXVlcnkuQ2FsbGJhY2tzKFwib25jZSBtZW1vcnlcIiksIFwicmVqZWN0ZWRcIiBdLFxuXHRcdFx0XHRbIFwibm90aWZ5XCIsIFwicHJvZ3Jlc3NcIiwgalF1ZXJ5LkNhbGxiYWNrcyhcIm1lbW9yeVwiKSBdXG5cdFx0XHRdLFxuXHRcdFx0c3RhdGUgPSBcInBlbmRpbmdcIixcblx0XHRcdHByb21pc2UgPSB7XG5cdFx0XHRcdHN0YXRlOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gc3RhdGU7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGFsd2F5czogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0ZGVmZXJyZWQuZG9uZSggYXJndW1lbnRzICkuZmFpbCggYXJndW1lbnRzICk7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHRoZW46IGZ1bmN0aW9uKCAvKiBmbkRvbmUsIGZuRmFpbCwgZm5Qcm9ncmVzcyAqLyApIHtcblx0XHRcdFx0XHR2YXIgZm5zID0gYXJndW1lbnRzO1xuXHRcdFx0XHRcdHJldHVybiBqUXVlcnkuRGVmZXJyZWQoZnVuY3Rpb24oIG5ld0RlZmVyICkge1xuXHRcdFx0XHRcdFx0alF1ZXJ5LmVhY2goIHR1cGxlcywgZnVuY3Rpb24oIGksIHR1cGxlICkge1xuXHRcdFx0XHRcdFx0XHR2YXIgZm4gPSBqUXVlcnkuaXNGdW5jdGlvbiggZm5zWyBpIF0gKSAmJiBmbnNbIGkgXTtcblx0XHRcdFx0XHRcdFx0Ly8gZGVmZXJyZWRbIGRvbmUgfCBmYWlsIHwgcHJvZ3Jlc3MgXSBmb3IgZm9yd2FyZGluZyBhY3Rpb25zIHRvIG5ld0RlZmVyXG5cdFx0XHRcdFx0XHRcdGRlZmVycmVkWyB0dXBsZVsxXSBdKGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdHZhciByZXR1cm5lZCA9IGZuICYmIGZuLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTtcblx0XHRcdFx0XHRcdFx0XHRpZiAoIHJldHVybmVkICYmIGpRdWVyeS5pc0Z1bmN0aW9uKCByZXR1cm5lZC5wcm9taXNlICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm5lZC5wcm9taXNlKClcblx0XHRcdFx0XHRcdFx0XHRcdFx0LmRvbmUoIG5ld0RlZmVyLnJlc29sdmUgKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQuZmFpbCggbmV3RGVmZXIucmVqZWN0IClcblx0XHRcdFx0XHRcdFx0XHRcdFx0LnByb2dyZXNzKCBuZXdEZWZlci5ub3RpZnkgKTtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0bmV3RGVmZXJbIHR1cGxlWyAwIF0gKyBcIldpdGhcIiBdKCB0aGlzID09PSBwcm9taXNlID8gbmV3RGVmZXIucHJvbWlzZSgpIDogdGhpcywgZm4gPyBbIHJldHVybmVkIF0gOiBhcmd1bWVudHMgKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRmbnMgPSBudWxsO1xuXHRcdFx0XHRcdH0pLnByb21pc2UoKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0Ly8gR2V0IGEgcHJvbWlzZSBmb3IgdGhpcyBkZWZlcnJlZFxuXHRcdFx0XHQvLyBJZiBvYmogaXMgcHJvdmlkZWQsIHRoZSBwcm9taXNlIGFzcGVjdCBpcyBhZGRlZCB0byB0aGUgb2JqZWN0XG5cdFx0XHRcdHByb21pc2U6IGZ1bmN0aW9uKCBvYmogKSB7XG5cdFx0XHRcdFx0cmV0dXJuIG9iaiAhPSBudWxsID8galF1ZXJ5LmV4dGVuZCggb2JqLCBwcm9taXNlICkgOiBwcm9taXNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0ZGVmZXJyZWQgPSB7fTtcblxuXHRcdC8vIEtlZXAgcGlwZSBmb3IgYmFjay1jb21wYXRcblx0XHRwcm9taXNlLnBpcGUgPSBwcm9taXNlLnRoZW47XG5cblx0XHQvLyBBZGQgbGlzdC1zcGVjaWZpYyBtZXRob2RzXG5cdFx0alF1ZXJ5LmVhY2goIHR1cGxlcywgZnVuY3Rpb24oIGksIHR1cGxlICkge1xuXHRcdFx0dmFyIGxpc3QgPSB0dXBsZVsgMiBdLFxuXHRcdFx0XHRzdGF0ZVN0cmluZyA9IHR1cGxlWyAzIF07XG5cblx0XHRcdC8vIHByb21pc2VbIGRvbmUgfCBmYWlsIHwgcHJvZ3Jlc3MgXSA9IGxpc3QuYWRkXG5cdFx0XHRwcm9taXNlWyB0dXBsZVsxXSBdID0gbGlzdC5hZGQ7XG5cblx0XHRcdC8vIEhhbmRsZSBzdGF0ZVxuXHRcdFx0aWYgKCBzdGF0ZVN0cmluZyApIHtcblx0XHRcdFx0bGlzdC5hZGQoZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0Ly8gc3RhdGUgPSBbIHJlc29sdmVkIHwgcmVqZWN0ZWQgXVxuXHRcdFx0XHRcdHN0YXRlID0gc3RhdGVTdHJpbmc7XG5cblx0XHRcdFx0Ly8gWyByZWplY3RfbGlzdCB8IHJlc29sdmVfbGlzdCBdLmRpc2FibGU7IHByb2dyZXNzX2xpc3QubG9ja1xuXHRcdFx0XHR9LCB0dXBsZXNbIGkgXiAxIF1bIDIgXS5kaXNhYmxlLCB0dXBsZXNbIDIgXVsgMiBdLmxvY2sgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gZGVmZXJyZWRbIHJlc29sdmUgfCByZWplY3QgfCBub3RpZnkgXVxuXHRcdFx0ZGVmZXJyZWRbIHR1cGxlWzBdIF0gPSBmdW5jdGlvbigpIHtcblx0XHRcdFx0ZGVmZXJyZWRbIHR1cGxlWzBdICsgXCJXaXRoXCIgXSggdGhpcyA9PT0gZGVmZXJyZWQgPyBwcm9taXNlIDogdGhpcywgYXJndW1lbnRzICk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fTtcblx0XHRcdGRlZmVycmVkWyB0dXBsZVswXSArIFwiV2l0aFwiIF0gPSBsaXN0LmZpcmVXaXRoO1xuXHRcdH0pO1xuXG5cdFx0Ly8gTWFrZSB0aGUgZGVmZXJyZWQgYSBwcm9taXNlXG5cdFx0cHJvbWlzZS5wcm9taXNlKCBkZWZlcnJlZCApO1xuXG5cdFx0Ly8gQ2FsbCBnaXZlbiBmdW5jIGlmIGFueVxuXHRcdGlmICggZnVuYyApIHtcblx0XHRcdGZ1bmMuY2FsbCggZGVmZXJyZWQsIGRlZmVycmVkICk7XG5cdFx0fVxuXG5cdFx0Ly8gQWxsIGRvbmUhXG5cdFx0cmV0dXJuIGRlZmVycmVkO1xuXHR9LFxuXG5cdC8vIERlZmVycmVkIGhlbHBlclxuXHR3aGVuOiBmdW5jdGlvbiggc3Vib3JkaW5hdGUgLyogLCAuLi4sIHN1Ym9yZGluYXRlTiAqLyApIHtcblx0XHR2YXIgaSA9IDAsXG5cdFx0XHRyZXNvbHZlVmFsdWVzID0gc2xpY2UuY2FsbCggYXJndW1lbnRzICksXG5cdFx0XHRsZW5ndGggPSByZXNvbHZlVmFsdWVzLmxlbmd0aCxcblxuXHRcdFx0Ly8gdGhlIGNvdW50IG9mIHVuY29tcGxldGVkIHN1Ym9yZGluYXRlc1xuXHRcdFx0cmVtYWluaW5nID0gbGVuZ3RoICE9PSAxIHx8ICggc3Vib3JkaW5hdGUgJiYgalF1ZXJ5LmlzRnVuY3Rpb24oIHN1Ym9yZGluYXRlLnByb21pc2UgKSApID8gbGVuZ3RoIDogMCxcblxuXHRcdFx0Ly8gdGhlIG1hc3RlciBEZWZlcnJlZC4gSWYgcmVzb2x2ZVZhbHVlcyBjb25zaXN0IG9mIG9ubHkgYSBzaW5nbGUgRGVmZXJyZWQsIGp1c3QgdXNlIHRoYXQuXG5cdFx0XHRkZWZlcnJlZCA9IHJlbWFpbmluZyA9PT0gMSA/IHN1Ym9yZGluYXRlIDogalF1ZXJ5LkRlZmVycmVkKCksXG5cblx0XHRcdC8vIFVwZGF0ZSBmdW5jdGlvbiBmb3IgYm90aCByZXNvbHZlIGFuZCBwcm9ncmVzcyB2YWx1ZXNcblx0XHRcdHVwZGF0ZUZ1bmMgPSBmdW5jdGlvbiggaSwgY29udGV4dHMsIHZhbHVlcyApIHtcblx0XHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHRcdFx0XHRjb250ZXh0c1sgaSBdID0gdGhpcztcblx0XHRcdFx0XHR2YWx1ZXNbIGkgXSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gc2xpY2UuY2FsbCggYXJndW1lbnRzICkgOiB2YWx1ZTtcblx0XHRcdFx0XHRpZiAoIHZhbHVlcyA9PT0gcHJvZ3Jlc3NWYWx1ZXMgKSB7XG5cdFx0XHRcdFx0XHRkZWZlcnJlZC5ub3RpZnlXaXRoKCBjb250ZXh0cywgdmFsdWVzICk7XG5cdFx0XHRcdFx0fSBlbHNlIGlmICggISggLS1yZW1haW5pbmcgKSApIHtcblx0XHRcdFx0XHRcdGRlZmVycmVkLnJlc29sdmVXaXRoKCBjb250ZXh0cywgdmFsdWVzICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdFx0fSxcblxuXHRcdFx0cHJvZ3Jlc3NWYWx1ZXMsIHByb2dyZXNzQ29udGV4dHMsIHJlc29sdmVDb250ZXh0cztcblxuXHRcdC8vIEFkZCBsaXN0ZW5lcnMgdG8gRGVmZXJyZWQgc3Vib3JkaW5hdGVzOyB0cmVhdCBvdGhlcnMgYXMgcmVzb2x2ZWRcblx0XHRpZiAoIGxlbmd0aCA+IDEgKSB7XG5cdFx0XHRwcm9ncmVzc1ZhbHVlcyA9IG5ldyBBcnJheSggbGVuZ3RoICk7XG5cdFx0XHRwcm9ncmVzc0NvbnRleHRzID0gbmV3IEFycmF5KCBsZW5ndGggKTtcblx0XHRcdHJlc29sdmVDb250ZXh0cyA9IG5ldyBBcnJheSggbGVuZ3RoICk7XG5cdFx0XHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApIHtcblx0XHRcdFx0aWYgKCByZXNvbHZlVmFsdWVzWyBpIF0gJiYgalF1ZXJ5LmlzRnVuY3Rpb24oIHJlc29sdmVWYWx1ZXNbIGkgXS5wcm9taXNlICkgKSB7XG5cdFx0XHRcdFx0cmVzb2x2ZVZhbHVlc1sgaSBdLnByb21pc2UoKVxuXHRcdFx0XHRcdFx0LmRvbmUoIHVwZGF0ZUZ1bmMoIGksIHJlc29sdmVDb250ZXh0cywgcmVzb2x2ZVZhbHVlcyApIClcblx0XHRcdFx0XHRcdC5mYWlsKCBkZWZlcnJlZC5yZWplY3QgKVxuXHRcdFx0XHRcdFx0LnByb2dyZXNzKCB1cGRhdGVGdW5jKCBpLCBwcm9ncmVzc0NvbnRleHRzLCBwcm9ncmVzc1ZhbHVlcyApICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0LS1yZW1haW5pbmc7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBJZiB3ZSdyZSBub3Qgd2FpdGluZyBvbiBhbnl0aGluZywgcmVzb2x2ZSB0aGUgbWFzdGVyXG5cdFx0aWYgKCAhcmVtYWluaW5nICkge1xuXHRcdFx0ZGVmZXJyZWQucmVzb2x2ZVdpdGgoIHJlc29sdmVDb250ZXh0cywgcmVzb2x2ZVZhbHVlcyApO1xuXHRcdH1cblxuXHRcdHJldHVybiBkZWZlcnJlZC5wcm9taXNlKCk7XG5cdH1cbn0pO1xuXG5cbi8vIFRoZSBkZWZlcnJlZCB1c2VkIG9uIERPTSByZWFkeVxudmFyIHJlYWR5TGlzdDtcblxualF1ZXJ5LmZuLnJlYWR5ID0gZnVuY3Rpb24oIGZuICkge1xuXHQvLyBBZGQgdGhlIGNhbGxiYWNrXG5cdGpRdWVyeS5yZWFkeS5wcm9taXNlKCkuZG9uZSggZm4gKTtcblxuXHRyZXR1cm4gdGhpcztcbn07XG5cbmpRdWVyeS5leHRlbmQoe1xuXHQvLyBJcyB0aGUgRE9NIHJlYWR5IHRvIGJlIHVzZWQ/IFNldCB0byB0cnVlIG9uY2UgaXQgb2NjdXJzLlxuXHRpc1JlYWR5OiBmYWxzZSxcblxuXHQvLyBBIGNvdW50ZXIgdG8gdHJhY2sgaG93IG1hbnkgaXRlbXMgdG8gd2FpdCBmb3IgYmVmb3JlXG5cdC8vIHRoZSByZWFkeSBldmVudCBmaXJlcy4gU2VlICM2NzgxXG5cdHJlYWR5V2FpdDogMSxcblxuXHQvLyBIb2xkIChvciByZWxlYXNlKSB0aGUgcmVhZHkgZXZlbnRcblx0aG9sZFJlYWR5OiBmdW5jdGlvbiggaG9sZCApIHtcblx0XHRpZiAoIGhvbGQgKSB7XG5cdFx0XHRqUXVlcnkucmVhZHlXYWl0Kys7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGpRdWVyeS5yZWFkeSggdHJ1ZSApO1xuXHRcdH1cblx0fSxcblxuXHQvLyBIYW5kbGUgd2hlbiB0aGUgRE9NIGlzIHJlYWR5XG5cdHJlYWR5OiBmdW5jdGlvbiggd2FpdCApIHtcblxuXHRcdC8vIEFib3J0IGlmIHRoZXJlIGFyZSBwZW5kaW5nIGhvbGRzIG9yIHdlJ3JlIGFscmVhZHkgcmVhZHlcblx0XHRpZiAoIHdhaXQgPT09IHRydWUgPyAtLWpRdWVyeS5yZWFkeVdhaXQgOiBqUXVlcnkuaXNSZWFkeSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBSZW1lbWJlciB0aGF0IHRoZSBET00gaXMgcmVhZHlcblx0XHRqUXVlcnkuaXNSZWFkeSA9IHRydWU7XG5cblx0XHQvLyBJZiBhIG5vcm1hbCBET00gUmVhZHkgZXZlbnQgZmlyZWQsIGRlY3JlbWVudCwgYW5kIHdhaXQgaWYgbmVlZCBiZVxuXHRcdGlmICggd2FpdCAhPT0gdHJ1ZSAmJiAtLWpRdWVyeS5yZWFkeVdhaXQgPiAwICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIElmIHRoZXJlIGFyZSBmdW5jdGlvbnMgYm91bmQsIHRvIGV4ZWN1dGVcblx0XHRyZWFkeUxpc3QucmVzb2x2ZVdpdGgoIGRvY3VtZW50LCBbIGpRdWVyeSBdICk7XG5cblx0XHQvLyBUcmlnZ2VyIGFueSBib3VuZCByZWFkeSBldmVudHNcblx0XHRpZiAoIGpRdWVyeS5mbi50cmlnZ2VySGFuZGxlciApIHtcblx0XHRcdGpRdWVyeSggZG9jdW1lbnQgKS50cmlnZ2VySGFuZGxlciggXCJyZWFkeVwiICk7XG5cdFx0XHRqUXVlcnkoIGRvY3VtZW50ICkub2ZmKCBcInJlYWR5XCIgKTtcblx0XHR9XG5cdH1cbn0pO1xuXG4vKipcbiAqIFRoZSByZWFkeSBldmVudCBoYW5kbGVyIGFuZCBzZWxmIGNsZWFudXAgbWV0aG9kXG4gKi9cbmZ1bmN0aW9uIGNvbXBsZXRlZCgpIHtcblx0ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciggXCJET01Db250ZW50TG9hZGVkXCIsIGNvbXBsZXRlZCwgZmFsc2UgKTtcblx0d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIFwibG9hZFwiLCBjb21wbGV0ZWQsIGZhbHNlICk7XG5cdGpRdWVyeS5yZWFkeSgpO1xufVxuXG5qUXVlcnkucmVhZHkucHJvbWlzZSA9IGZ1bmN0aW9uKCBvYmogKSB7XG5cdGlmICggIXJlYWR5TGlzdCApIHtcblxuXHRcdHJlYWR5TGlzdCA9IGpRdWVyeS5EZWZlcnJlZCgpO1xuXG5cdFx0Ly8gQ2F0Y2ggY2FzZXMgd2hlcmUgJChkb2N1bWVudCkucmVhZHkoKSBpcyBjYWxsZWQgYWZ0ZXIgdGhlIGJyb3dzZXIgZXZlbnQgaGFzIGFscmVhZHkgb2NjdXJyZWQuXG5cdFx0Ly8gV2Ugb25jZSB0cmllZCB0byB1c2UgcmVhZHlTdGF0ZSBcImludGVyYWN0aXZlXCIgaGVyZSwgYnV0IGl0IGNhdXNlZCBpc3N1ZXMgbGlrZSB0aGUgb25lXG5cdFx0Ly8gZGlzY292ZXJlZCBieSBDaHJpc1MgaGVyZTogaHR0cDovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvMTIyODIjY29tbWVudDoxNVxuXHRcdGlmICggZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gXCJjb21wbGV0ZVwiICkge1xuXHRcdFx0Ly8gSGFuZGxlIGl0IGFzeW5jaHJvbm91c2x5IHRvIGFsbG93IHNjcmlwdHMgdGhlIG9wcG9ydHVuaXR5IHRvIGRlbGF5IHJlYWR5XG5cdFx0XHRzZXRUaW1lb3V0KCBqUXVlcnkucmVhZHkgKTtcblxuXHRcdH0gZWxzZSB7XG5cblx0XHRcdC8vIFVzZSB0aGUgaGFuZHkgZXZlbnQgY2FsbGJhY2tcblx0XHRcdGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIFwiRE9NQ29udGVudExvYWRlZFwiLCBjb21wbGV0ZWQsIGZhbHNlICk7XG5cblx0XHRcdC8vIEEgZmFsbGJhY2sgdG8gd2luZG93Lm9ubG9hZCwgdGhhdCB3aWxsIGFsd2F5cyB3b3JrXG5cdFx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggXCJsb2FkXCIsIGNvbXBsZXRlZCwgZmFsc2UgKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHJlYWR5TGlzdC5wcm9taXNlKCBvYmogKTtcbn07XG5cbi8vIEtpY2sgb2ZmIHRoZSBET00gcmVhZHkgY2hlY2sgZXZlbiBpZiB0aGUgdXNlciBkb2VzIG5vdFxualF1ZXJ5LnJlYWR5LnByb21pc2UoKTtcblxuXG5cblxuLy8gTXVsdGlmdW5jdGlvbmFsIG1ldGhvZCB0byBnZXQgYW5kIHNldCB2YWx1ZXMgb2YgYSBjb2xsZWN0aW9uXG4vLyBUaGUgdmFsdWUvcyBjYW4gb3B0aW9uYWxseSBiZSBleGVjdXRlZCBpZiBpdCdzIGEgZnVuY3Rpb25cbnZhciBhY2Nlc3MgPSBqUXVlcnkuYWNjZXNzID0gZnVuY3Rpb24oIGVsZW1zLCBmbiwga2V5LCB2YWx1ZSwgY2hhaW5hYmxlLCBlbXB0eUdldCwgcmF3ICkge1xuXHR2YXIgaSA9IDAsXG5cdFx0bGVuID0gZWxlbXMubGVuZ3RoLFxuXHRcdGJ1bGsgPSBrZXkgPT0gbnVsbDtcblxuXHQvLyBTZXRzIG1hbnkgdmFsdWVzXG5cdGlmICggalF1ZXJ5LnR5cGUoIGtleSApID09PSBcIm9iamVjdFwiICkge1xuXHRcdGNoYWluYWJsZSA9IHRydWU7XG5cdFx0Zm9yICggaSBpbiBrZXkgKSB7XG5cdFx0XHRqUXVlcnkuYWNjZXNzKCBlbGVtcywgZm4sIGksIGtleVtpXSwgdHJ1ZSwgZW1wdHlHZXQsIHJhdyApO1xuXHRcdH1cblxuXHQvLyBTZXRzIG9uZSB2YWx1ZVxuXHR9IGVsc2UgaWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdGNoYWluYWJsZSA9IHRydWU7XG5cblx0XHRpZiAoICFqUXVlcnkuaXNGdW5jdGlvbiggdmFsdWUgKSApIHtcblx0XHRcdHJhdyA9IHRydWU7XG5cdFx0fVxuXG5cdFx0aWYgKCBidWxrICkge1xuXHRcdFx0Ly8gQnVsayBvcGVyYXRpb25zIHJ1biBhZ2FpbnN0IHRoZSBlbnRpcmUgc2V0XG5cdFx0XHRpZiAoIHJhdyApIHtcblx0XHRcdFx0Zm4uY2FsbCggZWxlbXMsIHZhbHVlICk7XG5cdFx0XHRcdGZuID0gbnVsbDtcblxuXHRcdFx0Ly8gLi4uZXhjZXB0IHdoZW4gZXhlY3V0aW5nIGZ1bmN0aW9uIHZhbHVlc1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YnVsayA9IGZuO1xuXHRcdFx0XHRmbiA9IGZ1bmN0aW9uKCBlbGVtLCBrZXksIHZhbHVlICkge1xuXHRcdFx0XHRcdHJldHVybiBidWxrLmNhbGwoIGpRdWVyeSggZWxlbSApLCB2YWx1ZSApO1xuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICggZm4gKSB7XG5cdFx0XHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdFx0Zm4oIGVsZW1zW2ldLCBrZXksIHJhdyA/IHZhbHVlIDogdmFsdWUuY2FsbCggZWxlbXNbaV0sIGksIGZuKCBlbGVtc1tpXSwga2V5ICkgKSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBjaGFpbmFibGUgP1xuXHRcdGVsZW1zIDpcblxuXHRcdC8vIEdldHNcblx0XHRidWxrID9cblx0XHRcdGZuLmNhbGwoIGVsZW1zICkgOlxuXHRcdFx0bGVuID8gZm4oIGVsZW1zWzBdLCBrZXkgKSA6IGVtcHR5R2V0O1xufTtcblxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhbiBvYmplY3QgY2FuIGhhdmUgZGF0YVxuICovXG5qUXVlcnkuYWNjZXB0RGF0YSA9IGZ1bmN0aW9uKCBvd25lciApIHtcblx0Ly8gQWNjZXB0cyBvbmx5OlxuXHQvLyAgLSBOb2RlXG5cdC8vICAgIC0gTm9kZS5FTEVNRU5UX05PREVcblx0Ly8gICAgLSBOb2RlLkRPQ1VNRU5UX05PREVcblx0Ly8gIC0gT2JqZWN0XG5cdC8vICAgIC0gQW55XG5cdC8qIGpzaGludCAtVzAxOCAqL1xuXHRyZXR1cm4gb3duZXIubm9kZVR5cGUgPT09IDEgfHwgb3duZXIubm9kZVR5cGUgPT09IDkgfHwgISggK293bmVyLm5vZGVUeXBlICk7XG59O1xuXG5cbmZ1bmN0aW9uIERhdGEoKSB7XG5cdC8vIFN1cHBvcnQ6IEFuZHJvaWQ8NCxcblx0Ly8gT2xkIFdlYktpdCBkb2VzIG5vdCBoYXZlIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucy9mcmVlemUgbWV0aG9kLFxuXHQvLyByZXR1cm4gbmV3IGVtcHR5IG9iamVjdCBpbnN0ZWFkIHdpdGggbm8gW1tzZXRdXSBhY2Nlc3NvclxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoIHRoaXMuY2FjaGUgPSB7fSwgMCwge1xuXHRcdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0XHRyZXR1cm4ge307XG5cdFx0fVxuXHR9KTtcblxuXHR0aGlzLmV4cGFuZG8gPSBqUXVlcnkuZXhwYW5kbyArIERhdGEudWlkKys7XG59XG5cbkRhdGEudWlkID0gMTtcbkRhdGEuYWNjZXB0cyA9IGpRdWVyeS5hY2NlcHREYXRhO1xuXG5EYXRhLnByb3RvdHlwZSA9IHtcblx0a2V5OiBmdW5jdGlvbiggb3duZXIgKSB7XG5cdFx0Ly8gV2UgY2FuIGFjY2VwdCBkYXRhIGZvciBub24tZWxlbWVudCBub2RlcyBpbiBtb2Rlcm4gYnJvd3NlcnMsXG5cdFx0Ly8gYnV0IHdlIHNob3VsZCBub3QsIHNlZSAjODMzNS5cblx0XHQvLyBBbHdheXMgcmV0dXJuIHRoZSBrZXkgZm9yIGEgZnJvemVuIG9iamVjdC5cblx0XHRpZiAoICFEYXRhLmFjY2VwdHMoIG93bmVyICkgKSB7XG5cdFx0XHRyZXR1cm4gMDtcblx0XHR9XG5cblx0XHR2YXIgZGVzY3JpcHRvciA9IHt9LFxuXHRcdFx0Ly8gQ2hlY2sgaWYgdGhlIG93bmVyIG9iamVjdCBhbHJlYWR5IGhhcyBhIGNhY2hlIGtleVxuXHRcdFx0dW5sb2NrID0gb3duZXJbIHRoaXMuZXhwYW5kbyBdO1xuXG5cdFx0Ly8gSWYgbm90LCBjcmVhdGUgb25lXG5cdFx0aWYgKCAhdW5sb2NrICkge1xuXHRcdFx0dW5sb2NrID0gRGF0YS51aWQrKztcblxuXHRcdFx0Ly8gU2VjdXJlIGl0IGluIGEgbm9uLWVudW1lcmFibGUsIG5vbi13cml0YWJsZSBwcm9wZXJ0eVxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0ZGVzY3JpcHRvclsgdGhpcy5leHBhbmRvIF0gPSB7IHZhbHVlOiB1bmxvY2sgfTtcblx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoIG93bmVyLCBkZXNjcmlwdG9yICk7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQ8NFxuXHRcdFx0Ly8gRmFsbGJhY2sgdG8gYSBsZXNzIHNlY3VyZSBkZWZpbml0aW9uXG5cdFx0XHR9IGNhdGNoICggZSApIHtcblx0XHRcdFx0ZGVzY3JpcHRvclsgdGhpcy5leHBhbmRvIF0gPSB1bmxvY2s7XG5cdFx0XHRcdGpRdWVyeS5leHRlbmQoIG93bmVyLCBkZXNjcmlwdG9yICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gRW5zdXJlIHRoZSBjYWNoZSBvYmplY3Rcblx0XHRpZiAoICF0aGlzLmNhY2hlWyB1bmxvY2sgXSApIHtcblx0XHRcdHRoaXMuY2FjaGVbIHVubG9jayBdID0ge307XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHVubG9jaztcblx0fSxcblx0c2V0OiBmdW5jdGlvbiggb3duZXIsIGRhdGEsIHZhbHVlICkge1xuXHRcdHZhciBwcm9wLFxuXHRcdFx0Ly8gVGhlcmUgbWF5IGJlIGFuIHVubG9jayBhc3NpZ25lZCB0byB0aGlzIG5vZGUsXG5cdFx0XHQvLyBpZiB0aGVyZSBpcyBubyBlbnRyeSBmb3IgdGhpcyBcIm93bmVyXCIsIGNyZWF0ZSBvbmUgaW5saW5lXG5cdFx0XHQvLyBhbmQgc2V0IHRoZSB1bmxvY2sgYXMgdGhvdWdoIGFuIG93bmVyIGVudHJ5IGhhZCBhbHdheXMgZXhpc3RlZFxuXHRcdFx0dW5sb2NrID0gdGhpcy5rZXkoIG93bmVyICksXG5cdFx0XHRjYWNoZSA9IHRoaXMuY2FjaGVbIHVubG9jayBdO1xuXG5cdFx0Ly8gSGFuZGxlOiBbIG93bmVyLCBrZXksIHZhbHVlIF0gYXJnc1xuXHRcdGlmICggdHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRjYWNoZVsgZGF0YSBdID0gdmFsdWU7XG5cblx0XHQvLyBIYW5kbGU6IFsgb3duZXIsIHsgcHJvcGVydGllcyB9IF0gYXJnc1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBGcmVzaCBhc3NpZ25tZW50cyBieSBvYmplY3QgYXJlIHNoYWxsb3cgY29waWVkXG5cdFx0XHRpZiAoIGpRdWVyeS5pc0VtcHR5T2JqZWN0KCBjYWNoZSApICkge1xuXHRcdFx0XHRqUXVlcnkuZXh0ZW5kKCB0aGlzLmNhY2hlWyB1bmxvY2sgXSwgZGF0YSApO1xuXHRcdFx0Ly8gT3RoZXJ3aXNlLCBjb3B5IHRoZSBwcm9wZXJ0aWVzIG9uZS1ieS1vbmUgdG8gdGhlIGNhY2hlIG9iamVjdFxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Zm9yICggcHJvcCBpbiBkYXRhICkge1xuXHRcdFx0XHRcdGNhY2hlWyBwcm9wIF0gPSBkYXRhWyBwcm9wIF07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGNhY2hlO1xuXHR9LFxuXHRnZXQ6IGZ1bmN0aW9uKCBvd25lciwga2V5ICkge1xuXHRcdC8vIEVpdGhlciBhIHZhbGlkIGNhY2hlIGlzIGZvdW5kLCBvciB3aWxsIGJlIGNyZWF0ZWQuXG5cdFx0Ly8gTmV3IGNhY2hlcyB3aWxsIGJlIGNyZWF0ZWQgYW5kIHRoZSB1bmxvY2sgcmV0dXJuZWQsXG5cdFx0Ly8gYWxsb3dpbmcgZGlyZWN0IGFjY2VzcyB0byB0aGUgbmV3bHkgY3JlYXRlZFxuXHRcdC8vIGVtcHR5IGRhdGEgb2JqZWN0LiBBIHZhbGlkIG93bmVyIG9iamVjdCBtdXN0IGJlIHByb3ZpZGVkLlxuXHRcdHZhciBjYWNoZSA9IHRoaXMuY2FjaGVbIHRoaXMua2V5KCBvd25lciApIF07XG5cblx0XHRyZXR1cm4ga2V5ID09PSB1bmRlZmluZWQgP1xuXHRcdFx0Y2FjaGUgOiBjYWNoZVsga2V5IF07XG5cdH0sXG5cdGFjY2VzczogZnVuY3Rpb24oIG93bmVyLCBrZXksIHZhbHVlICkge1xuXHRcdHZhciBzdG9yZWQ7XG5cdFx0Ly8gSW4gY2FzZXMgd2hlcmUgZWl0aGVyOlxuXHRcdC8vXG5cdFx0Ly8gICAxLiBObyBrZXkgd2FzIHNwZWNpZmllZFxuXHRcdC8vICAgMi4gQSBzdHJpbmcga2V5IHdhcyBzcGVjaWZpZWQsIGJ1dCBubyB2YWx1ZSBwcm92aWRlZFxuXHRcdC8vXG5cdFx0Ly8gVGFrZSB0aGUgXCJyZWFkXCIgcGF0aCBhbmQgYWxsb3cgdGhlIGdldCBtZXRob2QgdG8gZGV0ZXJtaW5lXG5cdFx0Ly8gd2hpY2ggdmFsdWUgdG8gcmV0dXJuLCByZXNwZWN0aXZlbHkgZWl0aGVyOlxuXHRcdC8vXG5cdFx0Ly8gICAxLiBUaGUgZW50aXJlIGNhY2hlIG9iamVjdFxuXHRcdC8vICAgMi4gVGhlIGRhdGEgc3RvcmVkIGF0IHRoZSBrZXlcblx0XHQvL1xuXHRcdGlmICgga2V5ID09PSB1bmRlZmluZWQgfHxcblx0XHRcdFx0KChrZXkgJiYgdHlwZW9mIGtleSA9PT0gXCJzdHJpbmdcIikgJiYgdmFsdWUgPT09IHVuZGVmaW5lZCkgKSB7XG5cblx0XHRcdHN0b3JlZCA9IHRoaXMuZ2V0KCBvd25lciwga2V5ICk7XG5cblx0XHRcdHJldHVybiBzdG9yZWQgIT09IHVuZGVmaW5lZCA/XG5cdFx0XHRcdHN0b3JlZCA6IHRoaXMuZ2V0KCBvd25lciwgalF1ZXJ5LmNhbWVsQ2FzZShrZXkpICk7XG5cdFx0fVxuXG5cdFx0Ly8gWypdV2hlbiB0aGUga2V5IGlzIG5vdCBhIHN0cmluZywgb3IgYm90aCBhIGtleSBhbmQgdmFsdWVcblx0XHQvLyBhcmUgc3BlY2lmaWVkLCBzZXQgb3IgZXh0ZW5kIChleGlzdGluZyBvYmplY3RzKSB3aXRoIGVpdGhlcjpcblx0XHQvL1xuXHRcdC8vICAgMS4gQW4gb2JqZWN0IG9mIHByb3BlcnRpZXNcblx0XHQvLyAgIDIuIEEga2V5IGFuZCB2YWx1ZVxuXHRcdC8vXG5cdFx0dGhpcy5zZXQoIG93bmVyLCBrZXksIHZhbHVlICk7XG5cblx0XHQvLyBTaW5jZSB0aGUgXCJzZXRcIiBwYXRoIGNhbiBoYXZlIHR3byBwb3NzaWJsZSBlbnRyeSBwb2ludHNcblx0XHQvLyByZXR1cm4gdGhlIGV4cGVjdGVkIGRhdGEgYmFzZWQgb24gd2hpY2ggcGF0aCB3YXMgdGFrZW5bKl1cblx0XHRyZXR1cm4gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDoga2V5O1xuXHR9LFxuXHRyZW1vdmU6IGZ1bmN0aW9uKCBvd25lciwga2V5ICkge1xuXHRcdHZhciBpLCBuYW1lLCBjYW1lbCxcblx0XHRcdHVubG9jayA9IHRoaXMua2V5KCBvd25lciApLFxuXHRcdFx0Y2FjaGUgPSB0aGlzLmNhY2hlWyB1bmxvY2sgXTtcblxuXHRcdGlmICgga2V5ID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHR0aGlzLmNhY2hlWyB1bmxvY2sgXSA9IHt9O1xuXG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIFN1cHBvcnQgYXJyYXkgb3Igc3BhY2Ugc2VwYXJhdGVkIHN0cmluZyBvZiBrZXlzXG5cdFx0XHRpZiAoIGpRdWVyeS5pc0FycmF5KCBrZXkgKSApIHtcblx0XHRcdFx0Ly8gSWYgXCJuYW1lXCIgaXMgYW4gYXJyYXkgb2Yga2V5cy4uLlxuXHRcdFx0XHQvLyBXaGVuIGRhdGEgaXMgaW5pdGlhbGx5IGNyZWF0ZWQsIHZpYSAoXCJrZXlcIiwgXCJ2YWxcIikgc2lnbmF0dXJlLFxuXHRcdFx0XHQvLyBrZXlzIHdpbGwgYmUgY29udmVydGVkIHRvIGNhbWVsQ2FzZS5cblx0XHRcdFx0Ly8gU2luY2UgdGhlcmUgaXMgbm8gd2F5IHRvIHRlbGwgX2hvd18gYSBrZXkgd2FzIGFkZGVkLCByZW1vdmVcblx0XHRcdFx0Ly8gYm90aCBwbGFpbiBrZXkgYW5kIGNhbWVsQ2FzZSBrZXkuICMxMjc4NlxuXHRcdFx0XHQvLyBUaGlzIHdpbGwgb25seSBwZW5hbGl6ZSB0aGUgYXJyYXkgYXJndW1lbnQgcGF0aC5cblx0XHRcdFx0bmFtZSA9IGtleS5jb25jYXQoIGtleS5tYXAoIGpRdWVyeS5jYW1lbENhc2UgKSApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y2FtZWwgPSBqUXVlcnkuY2FtZWxDYXNlKCBrZXkgKTtcblx0XHRcdFx0Ly8gVHJ5IHRoZSBzdHJpbmcgYXMgYSBrZXkgYmVmb3JlIGFueSBtYW5pcHVsYXRpb25cblx0XHRcdFx0aWYgKCBrZXkgaW4gY2FjaGUgKSB7XG5cdFx0XHRcdFx0bmFtZSA9IFsga2V5LCBjYW1lbCBdO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIElmIGEga2V5IHdpdGggdGhlIHNwYWNlcyBleGlzdHMsIHVzZSBpdC5cblx0XHRcdFx0XHQvLyBPdGhlcndpc2UsIGNyZWF0ZSBhbiBhcnJheSBieSBtYXRjaGluZyBub24td2hpdGVzcGFjZVxuXHRcdFx0XHRcdG5hbWUgPSBjYW1lbDtcblx0XHRcdFx0XHRuYW1lID0gbmFtZSBpbiBjYWNoZSA/XG5cdFx0XHRcdFx0XHRbIG5hbWUgXSA6ICggbmFtZS5tYXRjaCggcm5vdHdoaXRlICkgfHwgW10gKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpID0gbmFtZS5sZW5ndGg7XG5cdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0ZGVsZXRlIGNhY2hlWyBuYW1lWyBpIF0gXTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGhhc0RhdGE6IGZ1bmN0aW9uKCBvd25lciApIHtcblx0XHRyZXR1cm4gIWpRdWVyeS5pc0VtcHR5T2JqZWN0KFxuXHRcdFx0dGhpcy5jYWNoZVsgb3duZXJbIHRoaXMuZXhwYW5kbyBdIF0gfHwge31cblx0XHQpO1xuXHR9LFxuXHRkaXNjYXJkOiBmdW5jdGlvbiggb3duZXIgKSB7XG5cdFx0aWYgKCBvd25lclsgdGhpcy5leHBhbmRvIF0gKSB7XG5cdFx0XHRkZWxldGUgdGhpcy5jYWNoZVsgb3duZXJbIHRoaXMuZXhwYW5kbyBdIF07XG5cdFx0fVxuXHR9XG59O1xudmFyIGRhdGFfcHJpdiA9IG5ldyBEYXRhKCk7XG5cbnZhciBkYXRhX3VzZXIgPSBuZXcgRGF0YSgpO1xuXG5cblxuLy9cdEltcGxlbWVudGF0aW9uIFN1bW1hcnlcbi8vXG4vL1x0MS4gRW5mb3JjZSBBUEkgc3VyZmFjZSBhbmQgc2VtYW50aWMgY29tcGF0aWJpbGl0eSB3aXRoIDEuOS54IGJyYW5jaFxuLy9cdDIuIEltcHJvdmUgdGhlIG1vZHVsZSdzIG1haW50YWluYWJpbGl0eSBieSByZWR1Y2luZyB0aGUgc3RvcmFnZVxuLy9cdFx0cGF0aHMgdG8gYSBzaW5nbGUgbWVjaGFuaXNtLlxuLy9cdDMuIFVzZSB0aGUgc2FtZSBzaW5nbGUgbWVjaGFuaXNtIHRvIHN1cHBvcnQgXCJwcml2YXRlXCIgYW5kIFwidXNlclwiIGRhdGEuXG4vL1x0NC4gX05ldmVyXyBleHBvc2UgXCJwcml2YXRlXCIgZGF0YSB0byB1c2VyIGNvZGUgKFRPRE86IERyb3AgX2RhdGEsIF9yZW1vdmVEYXRhKVxuLy9cdDUuIEF2b2lkIGV4cG9zaW5nIGltcGxlbWVudGF0aW9uIGRldGFpbHMgb24gdXNlciBvYmplY3RzIChlZy4gZXhwYW5kbyBwcm9wZXJ0aWVzKVxuLy9cdDYuIFByb3ZpZGUgYSBjbGVhciBwYXRoIGZvciBpbXBsZW1lbnRhdGlvbiB1cGdyYWRlIHRvIFdlYWtNYXAgaW4gMjAxNFxuXG52YXIgcmJyYWNlID0gL14oPzpcXHtbXFx3XFxXXSpcXH18XFxbW1xcd1xcV10qXFxdKSQvLFxuXHRybXVsdGlEYXNoID0gLyhbQS1aXSkvZztcblxuZnVuY3Rpb24gZGF0YUF0dHIoIGVsZW0sIGtleSwgZGF0YSApIHtcblx0dmFyIG5hbWU7XG5cblx0Ly8gSWYgbm90aGluZyB3YXMgZm91bmQgaW50ZXJuYWxseSwgdHJ5IHRvIGZldGNoIGFueVxuXHQvLyBkYXRhIGZyb20gdGhlIEhUTUw1IGRhdGEtKiBhdHRyaWJ1dGVcblx0aWYgKCBkYXRhID09PSB1bmRlZmluZWQgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRuYW1lID0gXCJkYXRhLVwiICsga2V5LnJlcGxhY2UoIHJtdWx0aURhc2gsIFwiLSQxXCIgKS50b0xvd2VyQ2FzZSgpO1xuXHRcdGRhdGEgPSBlbGVtLmdldEF0dHJpYnV0ZSggbmFtZSApO1xuXG5cdFx0aWYgKCB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGRhdGEgPSBkYXRhID09PSBcInRydWVcIiA/IHRydWUgOlxuXHRcdFx0XHRcdGRhdGEgPT09IFwiZmFsc2VcIiA/IGZhbHNlIDpcblx0XHRcdFx0XHRkYXRhID09PSBcIm51bGxcIiA/IG51bGwgOlxuXHRcdFx0XHRcdC8vIE9ubHkgY29udmVydCB0byBhIG51bWJlciBpZiBpdCBkb2Vzbid0IGNoYW5nZSB0aGUgc3RyaW5nXG5cdFx0XHRcdFx0K2RhdGEgKyBcIlwiID09PSBkYXRhID8gK2RhdGEgOlxuXHRcdFx0XHRcdHJicmFjZS50ZXN0KCBkYXRhICkgPyBqUXVlcnkucGFyc2VKU09OKCBkYXRhICkgOlxuXHRcdFx0XHRcdGRhdGE7XG5cdFx0XHR9IGNhdGNoKCBlICkge31cblxuXHRcdFx0Ly8gTWFrZSBzdXJlIHdlIHNldCB0aGUgZGF0YSBzbyBpdCBpc24ndCBjaGFuZ2VkIGxhdGVyXG5cdFx0XHRkYXRhX3VzZXIuc2V0KCBlbGVtLCBrZXksIGRhdGEgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGF0YSA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGRhdGE7XG59XG5cbmpRdWVyeS5leHRlbmQoe1xuXHRoYXNEYXRhOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gZGF0YV91c2VyLmhhc0RhdGEoIGVsZW0gKSB8fCBkYXRhX3ByaXYuaGFzRGF0YSggZWxlbSApO1xuXHR9LFxuXG5cdGRhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBkYXRhICkge1xuXHRcdHJldHVybiBkYXRhX3VzZXIuYWNjZXNzKCBlbGVtLCBuYW1lLCBkYXRhICk7XG5cdH0sXG5cblx0cmVtb3ZlRGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUgKSB7XG5cdFx0ZGF0YV91c2VyLnJlbW92ZSggZWxlbSwgbmFtZSApO1xuXHR9LFxuXG5cdC8vIFRPRE86IE5vdyB0aGF0IGFsbCBjYWxscyB0byBfZGF0YSBhbmQgX3JlbW92ZURhdGEgaGF2ZSBiZWVuIHJlcGxhY2VkXG5cdC8vIHdpdGggZGlyZWN0IGNhbGxzIHRvIGRhdGFfcHJpdiBtZXRob2RzLCB0aGVzZSBjYW4gYmUgZGVwcmVjYXRlZC5cblx0X2RhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBkYXRhICkge1xuXHRcdHJldHVybiBkYXRhX3ByaXYuYWNjZXNzKCBlbGVtLCBuYW1lLCBkYXRhICk7XG5cdH0sXG5cblx0X3JlbW92ZURhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lICkge1xuXHRcdGRhdGFfcHJpdi5yZW1vdmUoIGVsZW0sIG5hbWUgKTtcblx0fVxufSk7XG5cbmpRdWVyeS5mbi5leHRlbmQoe1xuXHRkYXRhOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHtcblx0XHR2YXIgaSwgbmFtZSwgZGF0YSxcblx0XHRcdGVsZW0gPSB0aGlzWyAwIF0sXG5cdFx0XHRhdHRycyA9IGVsZW0gJiYgZWxlbS5hdHRyaWJ1dGVzO1xuXG5cdFx0Ly8gR2V0cyBhbGwgdmFsdWVzXG5cdFx0aWYgKCBrZXkgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdGlmICggdGhpcy5sZW5ndGggKSB7XG5cdFx0XHRcdGRhdGEgPSBkYXRhX3VzZXIuZ2V0KCBlbGVtICk7XG5cblx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICYmICFkYXRhX3ByaXYuZ2V0KCBlbGVtLCBcImhhc0RhdGFBdHRyc1wiICkgKSB7XG5cdFx0XHRcdFx0aSA9IGF0dHJzLmxlbmd0aDtcblx0XHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblxuXHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUxMStcblx0XHRcdFx0XHRcdC8vIFRoZSBhdHRycyBlbGVtZW50cyBjYW4gYmUgbnVsbCAoIzE0ODk0KVxuXHRcdFx0XHRcdFx0aWYgKCBhdHRyc1sgaSBdICkge1xuXHRcdFx0XHRcdFx0XHRuYW1lID0gYXR0cnNbIGkgXS5uYW1lO1xuXHRcdFx0XHRcdFx0XHRpZiAoIG5hbWUuaW5kZXhPZiggXCJkYXRhLVwiICkgPT09IDAgKSB7XG5cdFx0XHRcdFx0XHRcdFx0bmFtZSA9IGpRdWVyeS5jYW1lbENhc2UoIG5hbWUuc2xpY2UoNSkgKTtcblx0XHRcdFx0XHRcdFx0XHRkYXRhQXR0ciggZWxlbSwgbmFtZSwgZGF0YVsgbmFtZSBdICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZGF0YV9wcml2LnNldCggZWxlbSwgXCJoYXNEYXRhQXR0cnNcIiwgdHJ1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBkYXRhO1xuXHRcdH1cblxuXHRcdC8vIFNldHMgbXVsdGlwbGUgdmFsdWVzXG5cdFx0aWYgKCB0eXBlb2Yga2V5ID09PSBcIm9iamVjdFwiICkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcblx0XHRcdFx0ZGF0YV91c2VyLnNldCggdGhpcywga2V5ICk7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHR2YXIgZGF0YSxcblx0XHRcdFx0Y2FtZWxLZXkgPSBqUXVlcnkuY2FtZWxDYXNlKCBrZXkgKTtcblxuXHRcdFx0Ly8gVGhlIGNhbGxpbmcgalF1ZXJ5IG9iamVjdCAoZWxlbWVudCBtYXRjaGVzKSBpcyBub3QgZW1wdHlcblx0XHRcdC8vIChhbmQgdGhlcmVmb3JlIGhhcyBhbiBlbGVtZW50IGFwcGVhcnMgYXQgdGhpc1sgMCBdKSBhbmQgdGhlXG5cdFx0XHQvLyBgdmFsdWVgIHBhcmFtZXRlciB3YXMgbm90IHVuZGVmaW5lZC4gQW4gZW1wdHkgalF1ZXJ5IG9iamVjdFxuXHRcdFx0Ly8gd2lsbCByZXN1bHQgaW4gYHVuZGVmaW5lZGAgZm9yIGVsZW0gPSB0aGlzWyAwIF0gd2hpY2ggd2lsbFxuXHRcdFx0Ly8gdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGFuIGF0dGVtcHQgdG8gcmVhZCBhIGRhdGEgY2FjaGUgaXMgbWFkZS5cblx0XHRcdGlmICggZWxlbSAmJiB2YWx1ZSA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHQvLyBBdHRlbXB0IHRvIGdldCBkYXRhIGZyb20gdGhlIGNhY2hlXG5cdFx0XHRcdC8vIHdpdGggdGhlIGtleSBhcy1pc1xuXHRcdFx0XHRkYXRhID0gZGF0YV91c2VyLmdldCggZWxlbSwga2V5ICk7XG5cdFx0XHRcdGlmICggZGF0YSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdHJldHVybiBkYXRhO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gQXR0ZW1wdCB0byBnZXQgZGF0YSBmcm9tIHRoZSBjYWNoZVxuXHRcdFx0XHQvLyB3aXRoIHRoZSBrZXkgY2FtZWxpemVkXG5cdFx0XHRcdGRhdGEgPSBkYXRhX3VzZXIuZ2V0KCBlbGVtLCBjYW1lbEtleSApO1xuXHRcdFx0XHRpZiAoIGRhdGEgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRyZXR1cm4gZGF0YTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEF0dGVtcHQgdG8gXCJkaXNjb3ZlclwiIHRoZSBkYXRhIGluXG5cdFx0XHRcdC8vIEhUTUw1IGN1c3RvbSBkYXRhLSogYXR0cnNcblx0XHRcdFx0ZGF0YSA9IGRhdGFBdHRyKCBlbGVtLCBjYW1lbEtleSwgdW5kZWZpbmVkICk7XG5cdFx0XHRcdGlmICggZGF0YSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdHJldHVybiBkYXRhO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gV2UgdHJpZWQgcmVhbGx5IGhhcmQsIGJ1dCB0aGUgZGF0YSBkb2Vzbid0IGV4aXN0LlxuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNldCB0aGUgZGF0YS4uLlxuXHRcdFx0dGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xuXHRcdFx0XHQvLyBGaXJzdCwgYXR0ZW1wdCB0byBzdG9yZSBhIGNvcHkgb3IgcmVmZXJlbmNlIG9mIGFueVxuXHRcdFx0XHQvLyBkYXRhIHRoYXQgbWlnaHQndmUgYmVlbiBzdG9yZSB3aXRoIGEgY2FtZWxDYXNlZCBrZXkuXG5cdFx0XHRcdHZhciBkYXRhID0gZGF0YV91c2VyLmdldCggdGhpcywgY2FtZWxLZXkgKTtcblxuXHRcdFx0XHQvLyBGb3IgSFRNTDUgZGF0YS0qIGF0dHJpYnV0ZSBpbnRlcm9wLCB3ZSBoYXZlIHRvXG5cdFx0XHRcdC8vIHN0b3JlIHByb3BlcnR5IG5hbWVzIHdpdGggZGFzaGVzIGluIGEgY2FtZWxDYXNlIGZvcm0uXG5cdFx0XHRcdC8vIFRoaXMgbWlnaHQgbm90IGFwcGx5IHRvIGFsbCBwcm9wZXJ0aWVzLi4uKlxuXHRcdFx0XHRkYXRhX3VzZXIuc2V0KCB0aGlzLCBjYW1lbEtleSwgdmFsdWUgKTtcblxuXHRcdFx0XHQvLyAqLi4uIEluIHRoZSBjYXNlIG9mIHByb3BlcnRpZXMgdGhhdCBtaWdodCBfYWN0dWFsbHlfXG5cdFx0XHRcdC8vIGhhdmUgZGFzaGVzLCB3ZSBuZWVkIHRvIGFsc28gc3RvcmUgYSBjb3B5IG9mIHRoYXRcblx0XHRcdFx0Ly8gdW5jaGFuZ2VkIHByb3BlcnR5LlxuXHRcdFx0XHRpZiAoIGtleS5pbmRleE9mKFwiLVwiKSAhPT0gLTEgJiYgZGF0YSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdGRhdGFfdXNlci5zZXQoIHRoaXMsIGtleSwgdmFsdWUgKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fSwgbnVsbCwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxLCBudWxsLCB0cnVlICk7XG5cdH0sXG5cblx0cmVtb3ZlRGF0YTogZnVuY3Rpb24oIGtleSApIHtcblx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xuXHRcdFx0ZGF0YV91c2VyLnJlbW92ZSggdGhpcywga2V5ICk7XG5cdFx0fSk7XG5cdH1cbn0pO1xuXG5cbmpRdWVyeS5leHRlbmQoe1xuXHRxdWV1ZTogZnVuY3Rpb24oIGVsZW0sIHR5cGUsIGRhdGEgKSB7XG5cdFx0dmFyIHF1ZXVlO1xuXG5cdFx0aWYgKCBlbGVtICkge1xuXHRcdFx0dHlwZSA9ICggdHlwZSB8fCBcImZ4XCIgKSArIFwicXVldWVcIjtcblx0XHRcdHF1ZXVlID0gZGF0YV9wcml2LmdldCggZWxlbSwgdHlwZSApO1xuXG5cdFx0XHQvLyBTcGVlZCB1cCBkZXF1ZXVlIGJ5IGdldHRpbmcgb3V0IHF1aWNrbHkgaWYgdGhpcyBpcyBqdXN0IGEgbG9va3VwXG5cdFx0XHRpZiAoIGRhdGEgKSB7XG5cdFx0XHRcdGlmICggIXF1ZXVlIHx8IGpRdWVyeS5pc0FycmF5KCBkYXRhICkgKSB7XG5cdFx0XHRcdFx0cXVldWUgPSBkYXRhX3ByaXYuYWNjZXNzKCBlbGVtLCB0eXBlLCBqUXVlcnkubWFrZUFycmF5KGRhdGEpICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cXVldWUucHVzaCggZGF0YSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcXVldWUgfHwgW107XG5cdFx0fVxuXHR9LFxuXG5cdGRlcXVldWU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlICkge1xuXHRcdHR5cGUgPSB0eXBlIHx8IFwiZnhcIjtcblxuXHRcdHZhciBxdWV1ZSA9IGpRdWVyeS5xdWV1ZSggZWxlbSwgdHlwZSApLFxuXHRcdFx0c3RhcnRMZW5ndGggPSBxdWV1ZS5sZW5ndGgsXG5cdFx0XHRmbiA9IHF1ZXVlLnNoaWZ0KCksXG5cdFx0XHRob29rcyA9IGpRdWVyeS5fcXVldWVIb29rcyggZWxlbSwgdHlwZSApLFxuXHRcdFx0bmV4dCA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRqUXVlcnkuZGVxdWV1ZSggZWxlbSwgdHlwZSApO1xuXHRcdFx0fTtcblxuXHRcdC8vIElmIHRoZSBmeCBxdWV1ZSBpcyBkZXF1ZXVlZCwgYWx3YXlzIHJlbW92ZSB0aGUgcHJvZ3Jlc3Mgc2VudGluZWxcblx0XHRpZiAoIGZuID09PSBcImlucHJvZ3Jlc3NcIiApIHtcblx0XHRcdGZuID0gcXVldWUuc2hpZnQoKTtcblx0XHRcdHN0YXJ0TGVuZ3RoLS07XG5cdFx0fVxuXG5cdFx0aWYgKCBmbiApIHtcblxuXHRcdFx0Ly8gQWRkIGEgcHJvZ3Jlc3Mgc2VudGluZWwgdG8gcHJldmVudCB0aGUgZnggcXVldWUgZnJvbSBiZWluZ1xuXHRcdFx0Ly8gYXV0b21hdGljYWxseSBkZXF1ZXVlZFxuXHRcdFx0aWYgKCB0eXBlID09PSBcImZ4XCIgKSB7XG5cdFx0XHRcdHF1ZXVlLnVuc2hpZnQoIFwiaW5wcm9ncmVzc1wiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENsZWFyIHVwIHRoZSBsYXN0IHF1ZXVlIHN0b3AgZnVuY3Rpb25cblx0XHRcdGRlbGV0ZSBob29rcy5zdG9wO1xuXHRcdFx0Zm4uY2FsbCggZWxlbSwgbmV4dCwgaG9va3MgKTtcblx0XHR9XG5cblx0XHRpZiAoICFzdGFydExlbmd0aCAmJiBob29rcyApIHtcblx0XHRcdGhvb2tzLmVtcHR5LmZpcmUoKTtcblx0XHR9XG5cdH0sXG5cblx0Ly8gTm90IHB1YmxpYyAtIGdlbmVyYXRlIGEgcXVldWVIb29rcyBvYmplY3QsIG9yIHJldHVybiB0aGUgY3VycmVudCBvbmVcblx0X3F1ZXVlSG9va3M6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlICkge1xuXHRcdHZhciBrZXkgPSB0eXBlICsgXCJxdWV1ZUhvb2tzXCI7XG5cdFx0cmV0dXJuIGRhdGFfcHJpdi5nZXQoIGVsZW0sIGtleSApIHx8IGRhdGFfcHJpdi5hY2Nlc3MoIGVsZW0sIGtleSwge1xuXHRcdFx0ZW1wdHk6IGpRdWVyeS5DYWxsYmFja3MoXCJvbmNlIG1lbW9yeVwiKS5hZGQoZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGRhdGFfcHJpdi5yZW1vdmUoIGVsZW0sIFsgdHlwZSArIFwicXVldWVcIiwga2V5IF0gKTtcblx0XHRcdH0pXG5cdFx0fSk7XG5cdH1cbn0pO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKHtcblx0cXVldWU6IGZ1bmN0aW9uKCB0eXBlLCBkYXRhICkge1xuXHRcdHZhciBzZXR0ZXIgPSAyO1xuXG5cdFx0aWYgKCB0eXBlb2YgdHlwZSAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdGRhdGEgPSB0eXBlO1xuXHRcdFx0dHlwZSA9IFwiZnhcIjtcblx0XHRcdHNldHRlci0tO1xuXHRcdH1cblxuXHRcdGlmICggYXJndW1lbnRzLmxlbmd0aCA8IHNldHRlciApIHtcblx0XHRcdHJldHVybiBqUXVlcnkucXVldWUoIHRoaXNbMF0sIHR5cGUgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gZGF0YSA9PT0gdW5kZWZpbmVkID9cblx0XHRcdHRoaXMgOlxuXHRcdFx0dGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xuXHRcdFx0XHR2YXIgcXVldWUgPSBqUXVlcnkucXVldWUoIHRoaXMsIHR5cGUsIGRhdGEgKTtcblxuXHRcdFx0XHQvLyBFbnN1cmUgYSBob29rcyBmb3IgdGhpcyBxdWV1ZVxuXHRcdFx0XHRqUXVlcnkuX3F1ZXVlSG9va3MoIHRoaXMsIHR5cGUgKTtcblxuXHRcdFx0XHRpZiAoIHR5cGUgPT09IFwiZnhcIiAmJiBxdWV1ZVswXSAhPT0gXCJpbnByb2dyZXNzXCIgKSB7XG5cdFx0XHRcdFx0alF1ZXJ5LmRlcXVldWUoIHRoaXMsIHR5cGUgKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdH0sXG5cdGRlcXVldWU6IGZ1bmN0aW9uKCB0eXBlICkge1xuXHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkuZGVxdWV1ZSggdGhpcywgdHlwZSApO1xuXHRcdH0pO1xuXHR9LFxuXHRjbGVhclF1ZXVlOiBmdW5jdGlvbiggdHlwZSApIHtcblx0XHRyZXR1cm4gdGhpcy5xdWV1ZSggdHlwZSB8fCBcImZ4XCIsIFtdICk7XG5cdH0sXG5cdC8vIEdldCBhIHByb21pc2UgcmVzb2x2ZWQgd2hlbiBxdWV1ZXMgb2YgYSBjZXJ0YWluIHR5cGVcblx0Ly8gYXJlIGVtcHRpZWQgKGZ4IGlzIHRoZSB0eXBlIGJ5IGRlZmF1bHQpXG5cdHByb21pc2U6IGZ1bmN0aW9uKCB0eXBlLCBvYmogKSB7XG5cdFx0dmFyIHRtcCxcblx0XHRcdGNvdW50ID0gMSxcblx0XHRcdGRlZmVyID0galF1ZXJ5LkRlZmVycmVkKCksXG5cdFx0XHRlbGVtZW50cyA9IHRoaXMsXG5cdFx0XHRpID0gdGhpcy5sZW5ndGgsXG5cdFx0XHRyZXNvbHZlID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggISggLS1jb3VudCApICkge1xuXHRcdFx0XHRcdGRlZmVyLnJlc29sdmVXaXRoKCBlbGVtZW50cywgWyBlbGVtZW50cyBdICk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cblx0XHRpZiAoIHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0b2JqID0gdHlwZTtcblx0XHRcdHR5cGUgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdHR5cGUgPSB0eXBlIHx8IFwiZnhcIjtcblxuXHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0dG1wID0gZGF0YV9wcml2LmdldCggZWxlbWVudHNbIGkgXSwgdHlwZSArIFwicXVldWVIb29rc1wiICk7XG5cdFx0XHRpZiAoIHRtcCAmJiB0bXAuZW1wdHkgKSB7XG5cdFx0XHRcdGNvdW50Kys7XG5cdFx0XHRcdHRtcC5lbXB0eS5hZGQoIHJlc29sdmUgKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmVzb2x2ZSgpO1xuXHRcdHJldHVybiBkZWZlci5wcm9taXNlKCBvYmogKTtcblx0fVxufSk7XG52YXIgcG51bSA9ICgvWystXT8oPzpcXGQqXFwufClcXGQrKD86W2VFXVsrLV0/XFxkK3wpLykuc291cmNlO1xuXG52YXIgY3NzRXhwYW5kID0gWyBcIlRvcFwiLCBcIlJpZ2h0XCIsIFwiQm90dG9tXCIsIFwiTGVmdFwiIF07XG5cbnZhciBpc0hpZGRlbiA9IGZ1bmN0aW9uKCBlbGVtLCBlbCApIHtcblx0XHQvLyBpc0hpZGRlbiBtaWdodCBiZSBjYWxsZWQgZnJvbSBqUXVlcnkjZmlsdGVyIGZ1bmN0aW9uO1xuXHRcdC8vIGluIHRoYXQgY2FzZSwgZWxlbWVudCB3aWxsIGJlIHNlY29uZCBhcmd1bWVudFxuXHRcdGVsZW0gPSBlbCB8fCBlbGVtO1xuXHRcdHJldHVybiBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiApID09PSBcIm5vbmVcIiB8fCAhalF1ZXJ5LmNvbnRhaW5zKCBlbGVtLm93bmVyRG9jdW1lbnQsIGVsZW0gKTtcblx0fTtcblxudmFyIHJjaGVja2FibGVUeXBlID0gKC9eKD86Y2hlY2tib3h8cmFkaW8pJC9pKTtcblxuXG5cbihmdW5jdGlvbigpIHtcblx0dmFyIGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLFxuXHRcdGRpdiA9IGZyYWdtZW50LmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICkgKSxcblx0XHRpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiaW5wdXRcIiApO1xuXG5cdC8vIFN1cHBvcnQ6IFNhZmFyaTw9NS4xXG5cdC8vIENoZWNrIHN0YXRlIGxvc3QgaWYgdGhlIG5hbWUgaXMgc2V0ICgjMTEyMTcpXG5cdC8vIFN1cHBvcnQ6IFdpbmRvd3MgV2ViIEFwcHMgKFdXQSlcblx0Ly8gYG5hbWVgIGFuZCBgdHlwZWAgbXVzdCB1c2UgLnNldEF0dHJpYnV0ZSBmb3IgV1dBICgjMTQ5MDEpXG5cdGlucHV0LnNldEF0dHJpYnV0ZSggXCJ0eXBlXCIsIFwicmFkaW9cIiApO1xuXHRpbnB1dC5zZXRBdHRyaWJ1dGUoIFwiY2hlY2tlZFwiLCBcImNoZWNrZWRcIiApO1xuXHRpbnB1dC5zZXRBdHRyaWJ1dGUoIFwibmFtZVwiLCBcInRcIiApO1xuXG5cdGRpdi5hcHBlbmRDaGlsZCggaW5wdXQgKTtcblxuXHQvLyBTdXBwb3J0OiBTYWZhcmk8PTUuMSwgQW5kcm9pZDw0LjJcblx0Ly8gT2xkZXIgV2ViS2l0IGRvZXNuJ3QgY2xvbmUgY2hlY2tlZCBzdGF0ZSBjb3JyZWN0bHkgaW4gZnJhZ21lbnRzXG5cdHN1cHBvcnQuY2hlY2tDbG9uZSA9IGRpdi5jbG9uZU5vZGUoIHRydWUgKS5jbG9uZU5vZGUoIHRydWUgKS5sYXN0Q2hpbGQuY2hlY2tlZDtcblxuXHQvLyBTdXBwb3J0OiBJRTw9MTErXG5cdC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSAoYW5kIGNoZWNrYm94KSBkZWZhdWx0VmFsdWUgaXMgcHJvcGVybHkgY2xvbmVkXG5cdGRpdi5pbm5lckhUTUwgPSBcIjx0ZXh0YXJlYT54PC90ZXh0YXJlYT5cIjtcblx0c3VwcG9ydC5ub0Nsb25lQ2hlY2tlZCA9ICEhZGl2LmNsb25lTm9kZSggdHJ1ZSApLmxhc3RDaGlsZC5kZWZhdWx0VmFsdWU7XG59KSgpO1xudmFyIHN0cnVuZGVmaW5lZCA9IHR5cGVvZiB1bmRlZmluZWQ7XG5cblxuXG5zdXBwb3J0LmZvY3VzaW5CdWJibGVzID0gXCJvbmZvY3VzaW5cIiBpbiB3aW5kb3c7XG5cblxudmFyXG5cdHJrZXlFdmVudCA9IC9ea2V5Lyxcblx0cm1vdXNlRXZlbnQgPSAvXig/Om1vdXNlfHBvaW50ZXJ8Y29udGV4dG1lbnUpfGNsaWNrLyxcblx0cmZvY3VzTW9ycGggPSAvXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sXG5cdHJ0eXBlbmFtZXNwYWNlID0gL14oW14uXSopKD86XFwuKC4rKXwpJC87XG5cbmZ1bmN0aW9uIHJldHVyblRydWUoKSB7XG5cdHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiByZXR1cm5GYWxzZSgpIHtcblx0cmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBzYWZlQWN0aXZlRWxlbWVudCgpIHtcblx0dHJ5IHtcblx0XHRyZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblx0fSBjYXRjaCAoIGVyciApIHsgfVxufVxuXG4vKlxuICogSGVscGVyIGZ1bmN0aW9ucyBmb3IgbWFuYWdpbmcgZXZlbnRzIC0tIG5vdCBwYXJ0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLlxuICogUHJvcHMgdG8gRGVhbiBFZHdhcmRzJyBhZGRFdmVudCBsaWJyYXJ5IGZvciBtYW55IG9mIHRoZSBpZGVhcy5cbiAqL1xualF1ZXJ5LmV2ZW50ID0ge1xuXG5cdGdsb2JhbDoge30sXG5cblx0YWRkOiBmdW5jdGlvbiggZWxlbSwgdHlwZXMsIGhhbmRsZXIsIGRhdGEsIHNlbGVjdG9yICkge1xuXG5cdFx0dmFyIGhhbmRsZU9iakluLCBldmVudEhhbmRsZSwgdG1wLFxuXHRcdFx0ZXZlbnRzLCB0LCBoYW5kbGVPYmosXG5cdFx0XHRzcGVjaWFsLCBoYW5kbGVycywgdHlwZSwgbmFtZXNwYWNlcywgb3JpZ1R5cGUsXG5cdFx0XHRlbGVtRGF0YSA9IGRhdGFfcHJpdi5nZXQoIGVsZW0gKTtcblxuXHRcdC8vIERvbid0IGF0dGFjaCBldmVudHMgdG8gbm9EYXRhIG9yIHRleHQvY29tbWVudCBub2RlcyAoYnV0IGFsbG93IHBsYWluIG9iamVjdHMpXG5cdFx0aWYgKCAhZWxlbURhdGEgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gQ2FsbGVyIGNhbiBwYXNzIGluIGFuIG9iamVjdCBvZiBjdXN0b20gZGF0YSBpbiBsaWV1IG9mIHRoZSBoYW5kbGVyXG5cdFx0aWYgKCBoYW5kbGVyLmhhbmRsZXIgKSB7XG5cdFx0XHRoYW5kbGVPYmpJbiA9IGhhbmRsZXI7XG5cdFx0XHRoYW5kbGVyID0gaGFuZGxlT2JqSW4uaGFuZGxlcjtcblx0XHRcdHNlbGVjdG9yID0gaGFuZGxlT2JqSW4uc2VsZWN0b3I7XG5cdFx0fVxuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgdGhlIGhhbmRsZXIgaGFzIGEgdW5pcXVlIElELCB1c2VkIHRvIGZpbmQvcmVtb3ZlIGl0IGxhdGVyXG5cdFx0aWYgKCAhaGFuZGxlci5ndWlkICkge1xuXHRcdFx0aGFuZGxlci5ndWlkID0galF1ZXJ5Lmd1aWQrKztcblx0XHR9XG5cblx0XHQvLyBJbml0IHRoZSBlbGVtZW50J3MgZXZlbnQgc3RydWN0dXJlIGFuZCBtYWluIGhhbmRsZXIsIGlmIHRoaXMgaXMgdGhlIGZpcnN0XG5cdFx0aWYgKCAhKGV2ZW50cyA9IGVsZW1EYXRhLmV2ZW50cykgKSB7XG5cdFx0XHRldmVudHMgPSBlbGVtRGF0YS5ldmVudHMgPSB7fTtcblx0XHR9XG5cdFx0aWYgKCAhKGV2ZW50SGFuZGxlID0gZWxlbURhdGEuaGFuZGxlKSApIHtcblx0XHRcdGV2ZW50SGFuZGxlID0gZWxlbURhdGEuaGFuZGxlID0gZnVuY3Rpb24oIGUgKSB7XG5cdFx0XHRcdC8vIERpc2NhcmQgdGhlIHNlY29uZCBldmVudCBvZiBhIGpRdWVyeS5ldmVudC50cmlnZ2VyKCkgYW5kXG5cdFx0XHRcdC8vIHdoZW4gYW4gZXZlbnQgaXMgY2FsbGVkIGFmdGVyIGEgcGFnZSBoYXMgdW5sb2FkZWRcblx0XHRcdFx0cmV0dXJuIHR5cGVvZiBqUXVlcnkgIT09IHN0cnVuZGVmaW5lZCAmJiBqUXVlcnkuZXZlbnQudHJpZ2dlcmVkICE9PSBlLnR5cGUgP1xuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC5kaXNwYXRjaC5hcHBseSggZWxlbSwgYXJndW1lbnRzICkgOiB1bmRlZmluZWQ7XG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdC8vIEhhbmRsZSBtdWx0aXBsZSBldmVudHMgc2VwYXJhdGVkIGJ5IGEgc3BhY2Vcblx0XHR0eXBlcyA9ICggdHlwZXMgfHwgXCJcIiApLm1hdGNoKCBybm90d2hpdGUgKSB8fCBbIFwiXCIgXTtcblx0XHR0ID0gdHlwZXMubGVuZ3RoO1xuXHRcdHdoaWxlICggdC0tICkge1xuXHRcdFx0dG1wID0gcnR5cGVuYW1lc3BhY2UuZXhlYyggdHlwZXNbdF0gKSB8fCBbXTtcblx0XHRcdHR5cGUgPSBvcmlnVHlwZSA9IHRtcFsxXTtcblx0XHRcdG5hbWVzcGFjZXMgPSAoIHRtcFsyXSB8fCBcIlwiICkuc3BsaXQoIFwiLlwiICkuc29ydCgpO1xuXG5cdFx0XHQvLyBUaGVyZSAqbXVzdCogYmUgYSB0eXBlLCBubyBhdHRhY2hpbmcgbmFtZXNwYWNlLW9ubHkgaGFuZGxlcnNcblx0XHRcdGlmICggIXR5cGUgKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBJZiBldmVudCBjaGFuZ2VzIGl0cyB0eXBlLCB1c2UgdGhlIHNwZWNpYWwgZXZlbnQgaGFuZGxlcnMgZm9yIHRoZSBjaGFuZ2VkIHR5cGVcblx0XHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdIHx8IHt9O1xuXG5cdFx0XHQvLyBJZiBzZWxlY3RvciBkZWZpbmVkLCBkZXRlcm1pbmUgc3BlY2lhbCBldmVudCBhcGkgdHlwZSwgb3RoZXJ3aXNlIGdpdmVuIHR5cGVcblx0XHRcdHR5cGUgPSAoIHNlbGVjdG9yID8gc3BlY2lhbC5kZWxlZ2F0ZVR5cGUgOiBzcGVjaWFsLmJpbmRUeXBlICkgfHwgdHlwZTtcblxuXHRcdFx0Ly8gVXBkYXRlIHNwZWNpYWwgYmFzZWQgb24gbmV3bHkgcmVzZXQgdHlwZVxuXHRcdFx0c3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge307XG5cblx0XHRcdC8vIGhhbmRsZU9iaiBpcyBwYXNzZWQgdG8gYWxsIGV2ZW50IGhhbmRsZXJzXG5cdFx0XHRoYW5kbGVPYmogPSBqUXVlcnkuZXh0ZW5kKHtcblx0XHRcdFx0dHlwZTogdHlwZSxcblx0XHRcdFx0b3JpZ1R5cGU6IG9yaWdUeXBlLFxuXHRcdFx0XHRkYXRhOiBkYXRhLFxuXHRcdFx0XHRoYW5kbGVyOiBoYW5kbGVyLFxuXHRcdFx0XHRndWlkOiBoYW5kbGVyLmd1aWQsXG5cdFx0XHRcdHNlbGVjdG9yOiBzZWxlY3Rvcixcblx0XHRcdFx0bmVlZHNDb250ZXh0OiBzZWxlY3RvciAmJiBqUXVlcnkuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdCggc2VsZWN0b3IgKSxcblx0XHRcdFx0bmFtZXNwYWNlOiBuYW1lc3BhY2VzLmpvaW4oXCIuXCIpXG5cdFx0XHR9LCBoYW5kbGVPYmpJbiApO1xuXG5cdFx0XHQvLyBJbml0IHRoZSBldmVudCBoYW5kbGVyIHF1ZXVlIGlmIHdlJ3JlIHRoZSBmaXJzdFxuXHRcdFx0aWYgKCAhKGhhbmRsZXJzID0gZXZlbnRzWyB0eXBlIF0pICkge1xuXHRcdFx0XHRoYW5kbGVycyA9IGV2ZW50c1sgdHlwZSBdID0gW107XG5cdFx0XHRcdGhhbmRsZXJzLmRlbGVnYXRlQ291bnQgPSAwO1xuXG5cdFx0XHRcdC8vIE9ubHkgdXNlIGFkZEV2ZW50TGlzdGVuZXIgaWYgdGhlIHNwZWNpYWwgZXZlbnRzIGhhbmRsZXIgcmV0dXJucyBmYWxzZVxuXHRcdFx0XHRpZiAoICFzcGVjaWFsLnNldHVwIHx8IHNwZWNpYWwuc2V0dXAuY2FsbCggZWxlbSwgZGF0YSwgbmFtZXNwYWNlcywgZXZlbnRIYW5kbGUgKSA9PT0gZmFsc2UgKSB7XG5cdFx0XHRcdFx0aWYgKCBlbGVtLmFkZEV2ZW50TGlzdGVuZXIgKSB7XG5cdFx0XHRcdFx0XHRlbGVtLmFkZEV2ZW50TGlzdGVuZXIoIHR5cGUsIGV2ZW50SGFuZGxlLCBmYWxzZSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIHNwZWNpYWwuYWRkICkge1xuXHRcdFx0XHRzcGVjaWFsLmFkZC5jYWxsKCBlbGVtLCBoYW5kbGVPYmogKTtcblxuXHRcdFx0XHRpZiAoICFoYW5kbGVPYmouaGFuZGxlci5ndWlkICkge1xuXHRcdFx0XHRcdGhhbmRsZU9iai5oYW5kbGVyLmd1aWQgPSBoYW5kbGVyLmd1aWQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gQWRkIHRvIHRoZSBlbGVtZW50J3MgaGFuZGxlciBsaXN0LCBkZWxlZ2F0ZXMgaW4gZnJvbnRcblx0XHRcdGlmICggc2VsZWN0b3IgKSB7XG5cdFx0XHRcdGhhbmRsZXJzLnNwbGljZSggaGFuZGxlcnMuZGVsZWdhdGVDb3VudCsrLCAwLCBoYW5kbGVPYmogKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGhhbmRsZXJzLnB1c2goIGhhbmRsZU9iaiApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBLZWVwIHRyYWNrIG9mIHdoaWNoIGV2ZW50cyBoYXZlIGV2ZXIgYmVlbiB1c2VkLCBmb3IgZXZlbnQgb3B0aW1pemF0aW9uXG5cdFx0XHRqUXVlcnkuZXZlbnQuZ2xvYmFsWyB0eXBlIF0gPSB0cnVlO1xuXHRcdH1cblxuXHR9LFxuXG5cdC8vIERldGFjaCBhbiBldmVudCBvciBzZXQgb2YgZXZlbnRzIGZyb20gYW4gZWxlbWVudFxuXHRyZW1vdmU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlcywgaGFuZGxlciwgc2VsZWN0b3IsIG1hcHBlZFR5cGVzICkge1xuXG5cdFx0dmFyIGosIG9yaWdDb3VudCwgdG1wLFxuXHRcdFx0ZXZlbnRzLCB0LCBoYW5kbGVPYmosXG5cdFx0XHRzcGVjaWFsLCBoYW5kbGVycywgdHlwZSwgbmFtZXNwYWNlcywgb3JpZ1R5cGUsXG5cdFx0XHRlbGVtRGF0YSA9IGRhdGFfcHJpdi5oYXNEYXRhKCBlbGVtICkgJiYgZGF0YV9wcml2LmdldCggZWxlbSApO1xuXG5cdFx0aWYgKCAhZWxlbURhdGEgfHwgIShldmVudHMgPSBlbGVtRGF0YS5ldmVudHMpICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIE9uY2UgZm9yIGVhY2ggdHlwZS5uYW1lc3BhY2UgaW4gdHlwZXM7IHR5cGUgbWF5IGJlIG9taXR0ZWRcblx0XHR0eXBlcyA9ICggdHlwZXMgfHwgXCJcIiApLm1hdGNoKCBybm90d2hpdGUgKSB8fCBbIFwiXCIgXTtcblx0XHR0ID0gdHlwZXMubGVuZ3RoO1xuXHRcdHdoaWxlICggdC0tICkge1xuXHRcdFx0dG1wID0gcnR5cGVuYW1lc3BhY2UuZXhlYyggdHlwZXNbdF0gKSB8fCBbXTtcblx0XHRcdHR5cGUgPSBvcmlnVHlwZSA9IHRtcFsxXTtcblx0XHRcdG5hbWVzcGFjZXMgPSAoIHRtcFsyXSB8fCBcIlwiICkuc3BsaXQoIFwiLlwiICkuc29ydCgpO1xuXG5cdFx0XHQvLyBVbmJpbmQgYWxsIGV2ZW50cyAob24gdGhpcyBuYW1lc3BhY2UsIGlmIHByb3ZpZGVkKSBmb3IgdGhlIGVsZW1lbnRcblx0XHRcdGlmICggIXR5cGUgKSB7XG5cdFx0XHRcdGZvciAoIHR5cGUgaW4gZXZlbnRzICkge1xuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC5yZW1vdmUoIGVsZW0sIHR5cGUgKyB0eXBlc1sgdCBdLCBoYW5kbGVyLCBzZWxlY3RvciwgdHJ1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTtcblx0XHRcdHR5cGUgPSAoIHNlbGVjdG9yID8gc3BlY2lhbC5kZWxlZ2F0ZVR5cGUgOiBzcGVjaWFsLmJpbmRUeXBlICkgfHwgdHlwZTtcblx0XHRcdGhhbmRsZXJzID0gZXZlbnRzWyB0eXBlIF0gfHwgW107XG5cdFx0XHR0bXAgPSB0bXBbMl0gJiYgbmV3IFJlZ0V4cCggXCIoXnxcXFxcLilcIiArIG5hbWVzcGFjZXMuam9pbihcIlxcXFwuKD86LipcXFxcLnwpXCIpICsgXCIoXFxcXC58JClcIiApO1xuXG5cdFx0XHQvLyBSZW1vdmUgbWF0Y2hpbmcgZXZlbnRzXG5cdFx0XHRvcmlnQ291bnQgPSBqID0gaGFuZGxlcnMubGVuZ3RoO1xuXHRcdFx0d2hpbGUgKCBqLS0gKSB7XG5cdFx0XHRcdGhhbmRsZU9iaiA9IGhhbmRsZXJzWyBqIF07XG5cblx0XHRcdFx0aWYgKCAoIG1hcHBlZFR5cGVzIHx8IG9yaWdUeXBlID09PSBoYW5kbGVPYmoub3JpZ1R5cGUgKSAmJlxuXHRcdFx0XHRcdCggIWhhbmRsZXIgfHwgaGFuZGxlci5ndWlkID09PSBoYW5kbGVPYmouZ3VpZCApICYmXG5cdFx0XHRcdFx0KCAhdG1wIHx8IHRtcC50ZXN0KCBoYW5kbGVPYmoubmFtZXNwYWNlICkgKSAmJlxuXHRcdFx0XHRcdCggIXNlbGVjdG9yIHx8IHNlbGVjdG9yID09PSBoYW5kbGVPYmouc2VsZWN0b3IgfHwgc2VsZWN0b3IgPT09IFwiKipcIiAmJiBoYW5kbGVPYmouc2VsZWN0b3IgKSApIHtcblx0XHRcdFx0XHRoYW5kbGVycy5zcGxpY2UoIGosIDEgKTtcblxuXHRcdFx0XHRcdGlmICggaGFuZGxlT2JqLnNlbGVjdG9yICkge1xuXHRcdFx0XHRcdFx0aGFuZGxlcnMuZGVsZWdhdGVDb3VudC0tO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIHNwZWNpYWwucmVtb3ZlICkge1xuXHRcdFx0XHRcdFx0c3BlY2lhbC5yZW1vdmUuY2FsbCggZWxlbSwgaGFuZGxlT2JqICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIFJlbW92ZSBnZW5lcmljIGV2ZW50IGhhbmRsZXIgaWYgd2UgcmVtb3ZlZCBzb21ldGhpbmcgYW5kIG5vIG1vcmUgaGFuZGxlcnMgZXhpc3Rcblx0XHRcdC8vIChhdm9pZHMgcG90ZW50aWFsIGZvciBlbmRsZXNzIHJlY3Vyc2lvbiBkdXJpbmcgcmVtb3ZhbCBvZiBzcGVjaWFsIGV2ZW50IGhhbmRsZXJzKVxuXHRcdFx0aWYgKCBvcmlnQ291bnQgJiYgIWhhbmRsZXJzLmxlbmd0aCApIHtcblx0XHRcdFx0aWYgKCAhc3BlY2lhbC50ZWFyZG93biB8fCBzcGVjaWFsLnRlYXJkb3duLmNhbGwoIGVsZW0sIG5hbWVzcGFjZXMsIGVsZW1EYXRhLmhhbmRsZSApID09PSBmYWxzZSApIHtcblx0XHRcdFx0XHRqUXVlcnkucmVtb3ZlRXZlbnQoIGVsZW0sIHR5cGUsIGVsZW1EYXRhLmhhbmRsZSApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0ZGVsZXRlIGV2ZW50c1sgdHlwZSBdO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFJlbW92ZSB0aGUgZXhwYW5kbyBpZiBpdCdzIG5vIGxvbmdlciB1c2VkXG5cdFx0aWYgKCBqUXVlcnkuaXNFbXB0eU9iamVjdCggZXZlbnRzICkgKSB7XG5cdFx0XHRkZWxldGUgZWxlbURhdGEuaGFuZGxlO1xuXHRcdFx0ZGF0YV9wcml2LnJlbW92ZSggZWxlbSwgXCJldmVudHNcIiApO1xuXHRcdH1cblx0fSxcblxuXHR0cmlnZ2VyOiBmdW5jdGlvbiggZXZlbnQsIGRhdGEsIGVsZW0sIG9ubHlIYW5kbGVycyApIHtcblxuXHRcdHZhciBpLCBjdXIsIHRtcCwgYnViYmxlVHlwZSwgb250eXBlLCBoYW5kbGUsIHNwZWNpYWwsXG5cdFx0XHRldmVudFBhdGggPSBbIGVsZW0gfHwgZG9jdW1lbnQgXSxcblx0XHRcdHR5cGUgPSBoYXNPd24uY2FsbCggZXZlbnQsIFwidHlwZVwiICkgPyBldmVudC50eXBlIDogZXZlbnQsXG5cdFx0XHRuYW1lc3BhY2VzID0gaGFzT3duLmNhbGwoIGV2ZW50LCBcIm5hbWVzcGFjZVwiICkgPyBldmVudC5uYW1lc3BhY2Uuc3BsaXQoXCIuXCIpIDogW107XG5cblx0XHRjdXIgPSB0bXAgPSBlbGVtID0gZWxlbSB8fCBkb2N1bWVudDtcblxuXHRcdC8vIERvbid0IGRvIGV2ZW50cyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzXG5cdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDggKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gZm9jdXMvYmx1ciBtb3JwaHMgdG8gZm9jdXNpbi9vdXQ7IGVuc3VyZSB3ZSdyZSBub3QgZmlyaW5nIHRoZW0gcmlnaHQgbm93XG5cdFx0aWYgKCByZm9jdXNNb3JwaC50ZXN0KCB0eXBlICsgalF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCApICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICggdHlwZS5pbmRleE9mKFwiLlwiKSA+PSAwICkge1xuXHRcdFx0Ly8gTmFtZXNwYWNlZCB0cmlnZ2VyOyBjcmVhdGUgYSByZWdleHAgdG8gbWF0Y2ggZXZlbnQgdHlwZSBpbiBoYW5kbGUoKVxuXHRcdFx0bmFtZXNwYWNlcyA9IHR5cGUuc3BsaXQoXCIuXCIpO1xuXHRcdFx0dHlwZSA9IG5hbWVzcGFjZXMuc2hpZnQoKTtcblx0XHRcdG5hbWVzcGFjZXMuc29ydCgpO1xuXHRcdH1cblx0XHRvbnR5cGUgPSB0eXBlLmluZGV4T2YoXCI6XCIpIDwgMCAmJiBcIm9uXCIgKyB0eXBlO1xuXG5cdFx0Ly8gQ2FsbGVyIGNhbiBwYXNzIGluIGEgalF1ZXJ5LkV2ZW50IG9iamVjdCwgT2JqZWN0LCBvciBqdXN0IGFuIGV2ZW50IHR5cGUgc3RyaW5nXG5cdFx0ZXZlbnQgPSBldmVudFsgalF1ZXJ5LmV4cGFuZG8gXSA/XG5cdFx0XHRldmVudCA6XG5cdFx0XHRuZXcgalF1ZXJ5LkV2ZW50KCB0eXBlLCB0eXBlb2YgZXZlbnQgPT09IFwib2JqZWN0XCIgJiYgZXZlbnQgKTtcblxuXHRcdC8vIFRyaWdnZXIgYml0bWFzazogJiAxIGZvciBuYXRpdmUgaGFuZGxlcnM7ICYgMiBmb3IgalF1ZXJ5IChhbHdheXMgdHJ1ZSlcblx0XHRldmVudC5pc1RyaWdnZXIgPSBvbmx5SGFuZGxlcnMgPyAyIDogMztcblx0XHRldmVudC5uYW1lc3BhY2UgPSBuYW1lc3BhY2VzLmpvaW4oXCIuXCIpO1xuXHRcdGV2ZW50Lm5hbWVzcGFjZV9yZSA9IGV2ZW50Lm5hbWVzcGFjZSA/XG5cdFx0XHRuZXcgUmVnRXhwKCBcIihefFxcXFwuKVwiICsgbmFtZXNwYWNlcy5qb2luKFwiXFxcXC4oPzouKlxcXFwufClcIikgKyBcIihcXFxcLnwkKVwiICkgOlxuXHRcdFx0bnVsbDtcblxuXHRcdC8vIENsZWFuIHVwIHRoZSBldmVudCBpbiBjYXNlIGl0IGlzIGJlaW5nIHJldXNlZFxuXHRcdGV2ZW50LnJlc3VsdCA9IHVuZGVmaW5lZDtcblx0XHRpZiAoICFldmVudC50YXJnZXQgKSB7XG5cdFx0XHRldmVudC50YXJnZXQgPSBlbGVtO1xuXHRcdH1cblxuXHRcdC8vIENsb25lIGFueSBpbmNvbWluZyBkYXRhIGFuZCBwcmVwZW5kIHRoZSBldmVudCwgY3JlYXRpbmcgdGhlIGhhbmRsZXIgYXJnIGxpc3Rcblx0XHRkYXRhID0gZGF0YSA9PSBudWxsID9cblx0XHRcdFsgZXZlbnQgXSA6XG5cdFx0XHRqUXVlcnkubWFrZUFycmF5KCBkYXRhLCBbIGV2ZW50IF0gKTtcblxuXHRcdC8vIEFsbG93IHNwZWNpYWwgZXZlbnRzIHRvIGRyYXcgb3V0c2lkZSB0aGUgbGluZXNcblx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTtcblx0XHRpZiAoICFvbmx5SGFuZGxlcnMgJiYgc3BlY2lhbC50cmlnZ2VyICYmIHNwZWNpYWwudHJpZ2dlci5hcHBseSggZWxlbSwgZGF0YSApID09PSBmYWxzZSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBEZXRlcm1pbmUgZXZlbnQgcHJvcGFnYXRpb24gcGF0aCBpbiBhZHZhbmNlLCBwZXIgVzNDIGV2ZW50cyBzcGVjICgjOTk1MSlcblx0XHQvLyBCdWJibGUgdXAgdG8gZG9jdW1lbnQsIHRoZW4gdG8gd2luZG93OyB3YXRjaCBmb3IgYSBnbG9iYWwgb3duZXJEb2N1bWVudCB2YXIgKCM5NzI0KVxuXHRcdGlmICggIW9ubHlIYW5kbGVycyAmJiAhc3BlY2lhbC5ub0J1YmJsZSAmJiAhalF1ZXJ5LmlzV2luZG93KCBlbGVtICkgKSB7XG5cblx0XHRcdGJ1YmJsZVR5cGUgPSBzcGVjaWFsLmRlbGVnYXRlVHlwZSB8fCB0eXBlO1xuXHRcdFx0aWYgKCAhcmZvY3VzTW9ycGgudGVzdCggYnViYmxlVHlwZSArIHR5cGUgKSApIHtcblx0XHRcdFx0Y3VyID0gY3VyLnBhcmVudE5vZGU7XG5cdFx0XHR9XG5cdFx0XHRmb3IgKCA7IGN1cjsgY3VyID0gY3VyLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdGV2ZW50UGF0aC5wdXNoKCBjdXIgKTtcblx0XHRcdFx0dG1wID0gY3VyO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBPbmx5IGFkZCB3aW5kb3cgaWYgd2UgZ290IHRvIGRvY3VtZW50IChlLmcuLCBub3QgcGxhaW4gb2JqIG9yIGRldGFjaGVkIERPTSlcblx0XHRcdGlmICggdG1wID09PSAoZWxlbS5vd25lckRvY3VtZW50IHx8IGRvY3VtZW50KSApIHtcblx0XHRcdFx0ZXZlbnRQYXRoLnB1c2goIHRtcC5kZWZhdWx0VmlldyB8fCB0bXAucGFyZW50V2luZG93IHx8IHdpbmRvdyApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEZpcmUgaGFuZGxlcnMgb24gdGhlIGV2ZW50IHBhdGhcblx0XHRpID0gMDtcblx0XHR3aGlsZSAoIChjdXIgPSBldmVudFBhdGhbaSsrXSkgJiYgIWV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7XG5cblx0XHRcdGV2ZW50LnR5cGUgPSBpID4gMSA/XG5cdFx0XHRcdGJ1YmJsZVR5cGUgOlxuXHRcdFx0XHRzcGVjaWFsLmJpbmRUeXBlIHx8IHR5cGU7XG5cblx0XHRcdC8vIGpRdWVyeSBoYW5kbGVyXG5cdFx0XHRoYW5kbGUgPSAoIGRhdGFfcHJpdi5nZXQoIGN1ciwgXCJldmVudHNcIiApIHx8IHt9IClbIGV2ZW50LnR5cGUgXSAmJiBkYXRhX3ByaXYuZ2V0KCBjdXIsIFwiaGFuZGxlXCIgKTtcblx0XHRcdGlmICggaGFuZGxlICkge1xuXHRcdFx0XHRoYW5kbGUuYXBwbHkoIGN1ciwgZGF0YSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBOYXRpdmUgaGFuZGxlclxuXHRcdFx0aGFuZGxlID0gb250eXBlICYmIGN1clsgb250eXBlIF07XG5cdFx0XHRpZiAoIGhhbmRsZSAmJiBoYW5kbGUuYXBwbHkgJiYgalF1ZXJ5LmFjY2VwdERhdGEoIGN1ciApICkge1xuXHRcdFx0XHRldmVudC5yZXN1bHQgPSBoYW5kbGUuYXBwbHkoIGN1ciwgZGF0YSApO1xuXHRcdFx0XHRpZiAoIGV2ZW50LnJlc3VsdCA9PT0gZmFsc2UgKSB7XG5cdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRldmVudC50eXBlID0gdHlwZTtcblxuXHRcdC8vIElmIG5vYm9keSBwcmV2ZW50ZWQgdGhlIGRlZmF1bHQgYWN0aW9uLCBkbyBpdCBub3dcblx0XHRpZiAoICFvbmx5SGFuZGxlcnMgJiYgIWV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpICkge1xuXG5cdFx0XHRpZiAoICghc3BlY2lhbC5fZGVmYXVsdCB8fCBzcGVjaWFsLl9kZWZhdWx0LmFwcGx5KCBldmVudFBhdGgucG9wKCksIGRhdGEgKSA9PT0gZmFsc2UpICYmXG5cdFx0XHRcdGpRdWVyeS5hY2NlcHREYXRhKCBlbGVtICkgKSB7XG5cblx0XHRcdFx0Ly8gQ2FsbCBhIG5hdGl2ZSBET00gbWV0aG9kIG9uIHRoZSB0YXJnZXQgd2l0aCB0aGUgc2FtZSBuYW1lIG5hbWUgYXMgdGhlIGV2ZW50LlxuXHRcdFx0XHQvLyBEb24ndCBkbyBkZWZhdWx0IGFjdGlvbnMgb24gd2luZG93LCB0aGF0J3Mgd2hlcmUgZ2xvYmFsIHZhcmlhYmxlcyBiZSAoIzYxNzApXG5cdFx0XHRcdGlmICggb250eXBlICYmIGpRdWVyeS5pc0Z1bmN0aW9uKCBlbGVtWyB0eXBlIF0gKSAmJiAhalF1ZXJ5LmlzV2luZG93KCBlbGVtICkgKSB7XG5cblx0XHRcdFx0XHQvLyBEb24ndCByZS10cmlnZ2VyIGFuIG9uRk9PIGV2ZW50IHdoZW4gd2UgY2FsbCBpdHMgRk9PKCkgbWV0aG9kXG5cdFx0XHRcdFx0dG1wID0gZWxlbVsgb250eXBlIF07XG5cblx0XHRcdFx0XHRpZiAoIHRtcCApIHtcblx0XHRcdFx0XHRcdGVsZW1bIG9udHlwZSBdID0gbnVsbDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBQcmV2ZW50IHJlLXRyaWdnZXJpbmcgb2YgdGhlIHNhbWUgZXZlbnQsIHNpbmNlIHdlIGFscmVhZHkgYnViYmxlZCBpdCBhYm92ZVxuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC50cmlnZ2VyZWQgPSB0eXBlO1xuXHRcdFx0XHRcdGVsZW1bIHR5cGUgXSgpO1xuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC50cmlnZ2VyZWQgPSB1bmRlZmluZWQ7XG5cblx0XHRcdFx0XHRpZiAoIHRtcCApIHtcblx0XHRcdFx0XHRcdGVsZW1bIG9udHlwZSBdID0gdG1wO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBldmVudC5yZXN1bHQ7XG5cdH0sXG5cblx0ZGlzcGF0Y2g6IGZ1bmN0aW9uKCBldmVudCApIHtcblxuXHRcdC8vIE1ha2UgYSB3cml0YWJsZSBqUXVlcnkuRXZlbnQgZnJvbSB0aGUgbmF0aXZlIGV2ZW50IG9iamVjdFxuXHRcdGV2ZW50ID0galF1ZXJ5LmV2ZW50LmZpeCggZXZlbnQgKTtcblxuXHRcdHZhciBpLCBqLCByZXQsIG1hdGNoZWQsIGhhbmRsZU9iaixcblx0XHRcdGhhbmRsZXJRdWV1ZSA9IFtdLFxuXHRcdFx0YXJncyA9IHNsaWNlLmNhbGwoIGFyZ3VtZW50cyApLFxuXHRcdFx0aGFuZGxlcnMgPSAoIGRhdGFfcHJpdi5nZXQoIHRoaXMsIFwiZXZlbnRzXCIgKSB8fCB7fSApWyBldmVudC50eXBlIF0gfHwgW10sXG5cdFx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIGV2ZW50LnR5cGUgXSB8fCB7fTtcblxuXHRcdC8vIFVzZSB0aGUgZml4LWVkIGpRdWVyeS5FdmVudCByYXRoZXIgdGhhbiB0aGUgKHJlYWQtb25seSkgbmF0aXZlIGV2ZW50XG5cdFx0YXJnc1swXSA9IGV2ZW50O1xuXHRcdGV2ZW50LmRlbGVnYXRlVGFyZ2V0ID0gdGhpcztcblxuXHRcdC8vIENhbGwgdGhlIHByZURpc3BhdGNoIGhvb2sgZm9yIHRoZSBtYXBwZWQgdHlwZSwgYW5kIGxldCBpdCBiYWlsIGlmIGRlc2lyZWRcblx0XHRpZiAoIHNwZWNpYWwucHJlRGlzcGF0Y2ggJiYgc3BlY2lhbC5wcmVEaXNwYXRjaC5jYWxsKCB0aGlzLCBldmVudCApID09PSBmYWxzZSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBEZXRlcm1pbmUgaGFuZGxlcnNcblx0XHRoYW5kbGVyUXVldWUgPSBqUXVlcnkuZXZlbnQuaGFuZGxlcnMuY2FsbCggdGhpcywgZXZlbnQsIGhhbmRsZXJzICk7XG5cblx0XHQvLyBSdW4gZGVsZWdhdGVzIGZpcnN0OyB0aGV5IG1heSB3YW50IHRvIHN0b3AgcHJvcGFnYXRpb24gYmVuZWF0aCB1c1xuXHRcdGkgPSAwO1xuXHRcdHdoaWxlICggKG1hdGNoZWQgPSBoYW5kbGVyUXVldWVbIGkrKyBdKSAmJiAhZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSApIHtcblx0XHRcdGV2ZW50LmN1cnJlbnRUYXJnZXQgPSBtYXRjaGVkLmVsZW07XG5cblx0XHRcdGogPSAwO1xuXHRcdFx0d2hpbGUgKCAoaGFuZGxlT2JqID0gbWF0Y2hlZC5oYW5kbGVyc1sgaisrIF0pICYmICFldmVudC5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpICkge1xuXG5cdFx0XHRcdC8vIFRyaWdnZXJlZCBldmVudCBtdXN0IGVpdGhlciAxKSBoYXZlIG5vIG5hbWVzcGFjZSwgb3IgMikgaGF2ZSBuYW1lc3BhY2Uocylcblx0XHRcdFx0Ly8gYSBzdWJzZXQgb3IgZXF1YWwgdG8gdGhvc2UgaW4gdGhlIGJvdW5kIGV2ZW50IChib3RoIGNhbiBoYXZlIG5vIG5hbWVzcGFjZSkuXG5cdFx0XHRcdGlmICggIWV2ZW50Lm5hbWVzcGFjZV9yZSB8fCBldmVudC5uYW1lc3BhY2VfcmUudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApICkge1xuXG5cdFx0XHRcdFx0ZXZlbnQuaGFuZGxlT2JqID0gaGFuZGxlT2JqO1xuXHRcdFx0XHRcdGV2ZW50LmRhdGEgPSBoYW5kbGVPYmouZGF0YTtcblxuXHRcdFx0XHRcdHJldCA9ICggKGpRdWVyeS5ldmVudC5zcGVjaWFsWyBoYW5kbGVPYmoub3JpZ1R5cGUgXSB8fCB7fSkuaGFuZGxlIHx8IGhhbmRsZU9iai5oYW5kbGVyIClcblx0XHRcdFx0XHRcdFx0LmFwcGx5KCBtYXRjaGVkLmVsZW0sIGFyZ3MgKTtcblxuXHRcdFx0XHRcdGlmICggcmV0ICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdFx0XHRpZiAoIChldmVudC5yZXN1bHQgPSByZXQpID09PSBmYWxzZSApIHtcblx0XHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0XHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQ2FsbCB0aGUgcG9zdERpc3BhdGNoIGhvb2sgZm9yIHRoZSBtYXBwZWQgdHlwZVxuXHRcdGlmICggc3BlY2lhbC5wb3N0RGlzcGF0Y2ggKSB7XG5cdFx0XHRzcGVjaWFsLnBvc3REaXNwYXRjaC5jYWxsKCB0aGlzLCBldmVudCApO1xuXHRcdH1cblxuXHRcdHJldHVybiBldmVudC5yZXN1bHQ7XG5cdH0sXG5cblx0aGFuZGxlcnM6IGZ1bmN0aW9uKCBldmVudCwgaGFuZGxlcnMgKSB7XG5cdFx0dmFyIGksIG1hdGNoZXMsIHNlbCwgaGFuZGxlT2JqLFxuXHRcdFx0aGFuZGxlclF1ZXVlID0gW10sXG5cdFx0XHRkZWxlZ2F0ZUNvdW50ID0gaGFuZGxlcnMuZGVsZWdhdGVDb3VudCxcblx0XHRcdGN1ciA9IGV2ZW50LnRhcmdldDtcblxuXHRcdC8vIEZpbmQgZGVsZWdhdGUgaGFuZGxlcnNcblx0XHQvLyBCbGFjay1ob2xlIFNWRyA8dXNlPiBpbnN0YW5jZSB0cmVlcyAoIzEzMTgwKVxuXHRcdC8vIEF2b2lkIG5vbi1sZWZ0LWNsaWNrIGJ1YmJsaW5nIGluIEZpcmVmb3ggKCMzODYxKVxuXHRcdGlmICggZGVsZWdhdGVDb3VudCAmJiBjdXIubm9kZVR5cGUgJiYgKCFldmVudC5idXR0b24gfHwgZXZlbnQudHlwZSAhPT0gXCJjbGlja1wiKSApIHtcblxuXHRcdFx0Zm9yICggOyBjdXIgIT09IHRoaXM7IGN1ciA9IGN1ci5wYXJlbnROb2RlIHx8IHRoaXMgKSB7XG5cblx0XHRcdFx0Ly8gRG9uJ3QgcHJvY2VzcyBjbGlja3Mgb24gZGlzYWJsZWQgZWxlbWVudHMgKCM2OTExLCAjODE2NSwgIzExMzgyLCAjMTE3NjQpXG5cdFx0XHRcdGlmICggY3VyLmRpc2FibGVkICE9PSB0cnVlIHx8IGV2ZW50LnR5cGUgIT09IFwiY2xpY2tcIiApIHtcblx0XHRcdFx0XHRtYXRjaGVzID0gW107XG5cdFx0XHRcdFx0Zm9yICggaSA9IDA7IGkgPCBkZWxlZ2F0ZUNvdW50OyBpKysgKSB7XG5cdFx0XHRcdFx0XHRoYW5kbGVPYmogPSBoYW5kbGVyc1sgaSBdO1xuXG5cdFx0XHRcdFx0XHQvLyBEb24ndCBjb25mbGljdCB3aXRoIE9iamVjdC5wcm90b3R5cGUgcHJvcGVydGllcyAoIzEzMjAzKVxuXHRcdFx0XHRcdFx0c2VsID0gaGFuZGxlT2JqLnNlbGVjdG9yICsgXCIgXCI7XG5cblx0XHRcdFx0XHRcdGlmICggbWF0Y2hlc1sgc2VsIF0gPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRcdFx0bWF0Y2hlc1sgc2VsIF0gPSBoYW5kbGVPYmoubmVlZHNDb250ZXh0ID9cblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkoIHNlbCwgdGhpcyApLmluZGV4KCBjdXIgKSA+PSAwIDpcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkuZmluZCggc2VsLCB0aGlzLCBudWxsLCBbIGN1ciBdICkubGVuZ3RoO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0aWYgKCBtYXRjaGVzWyBzZWwgXSApIHtcblx0XHRcdFx0XHRcdFx0bWF0Y2hlcy5wdXNoKCBoYW5kbGVPYmogKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKCBtYXRjaGVzLmxlbmd0aCApIHtcblx0XHRcdFx0XHRcdGhhbmRsZXJRdWV1ZS5wdXNoKHsgZWxlbTogY3VyLCBoYW5kbGVyczogbWF0Y2hlcyB9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBBZGQgdGhlIHJlbWFpbmluZyAoZGlyZWN0bHktYm91bmQpIGhhbmRsZXJzXG5cdFx0aWYgKCBkZWxlZ2F0ZUNvdW50IDwgaGFuZGxlcnMubGVuZ3RoICkge1xuXHRcdFx0aGFuZGxlclF1ZXVlLnB1c2goeyBlbGVtOiB0aGlzLCBoYW5kbGVyczogaGFuZGxlcnMuc2xpY2UoIGRlbGVnYXRlQ291bnQgKSB9KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gaGFuZGxlclF1ZXVlO1xuXHR9LFxuXG5cdC8vIEluY2x1ZGVzIHNvbWUgZXZlbnQgcHJvcHMgc2hhcmVkIGJ5IEtleUV2ZW50IGFuZCBNb3VzZUV2ZW50XG5cdHByb3BzOiBcImFsdEtleSBidWJibGVzIGNhbmNlbGFibGUgY3RybEtleSBjdXJyZW50VGFyZ2V0IGV2ZW50UGhhc2UgbWV0YUtleSByZWxhdGVkVGFyZ2V0IHNoaWZ0S2V5IHRhcmdldCB0aW1lU3RhbXAgdmlldyB3aGljaFwiLnNwbGl0KFwiIFwiKSxcblxuXHRmaXhIb29rczoge30sXG5cblx0a2V5SG9va3M6IHtcblx0XHRwcm9wczogXCJjaGFyIGNoYXJDb2RlIGtleSBrZXlDb2RlXCIuc3BsaXQoXCIgXCIpLFxuXHRcdGZpbHRlcjogZnVuY3Rpb24oIGV2ZW50LCBvcmlnaW5hbCApIHtcblxuXHRcdFx0Ly8gQWRkIHdoaWNoIGZvciBrZXkgZXZlbnRzXG5cdFx0XHRpZiAoIGV2ZW50LndoaWNoID09IG51bGwgKSB7XG5cdFx0XHRcdGV2ZW50LndoaWNoID0gb3JpZ2luYWwuY2hhckNvZGUgIT0gbnVsbCA/IG9yaWdpbmFsLmNoYXJDb2RlIDogb3JpZ2luYWwua2V5Q29kZTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGV2ZW50O1xuXHRcdH1cblx0fSxcblxuXHRtb3VzZUhvb2tzOiB7XG5cdFx0cHJvcHM6IFwiYnV0dG9uIGJ1dHRvbnMgY2xpZW50WCBjbGllbnRZIG9mZnNldFggb2Zmc2V0WSBwYWdlWCBwYWdlWSBzY3JlZW5YIHNjcmVlblkgdG9FbGVtZW50XCIuc3BsaXQoXCIgXCIpLFxuXHRcdGZpbHRlcjogZnVuY3Rpb24oIGV2ZW50LCBvcmlnaW5hbCApIHtcblx0XHRcdHZhciBldmVudERvYywgZG9jLCBib2R5LFxuXHRcdFx0XHRidXR0b24gPSBvcmlnaW5hbC5idXR0b247XG5cblx0XHRcdC8vIENhbGN1bGF0ZSBwYWdlWC9ZIGlmIG1pc3NpbmcgYW5kIGNsaWVudFgvWSBhdmFpbGFibGVcblx0XHRcdGlmICggZXZlbnQucGFnZVggPT0gbnVsbCAmJiBvcmlnaW5hbC5jbGllbnRYICE9IG51bGwgKSB7XG5cdFx0XHRcdGV2ZW50RG9jID0gZXZlbnQudGFyZ2V0Lm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7XG5cdFx0XHRcdGRvYyA9IGV2ZW50RG9jLmRvY3VtZW50RWxlbWVudDtcblx0XHRcdFx0Ym9keSA9IGV2ZW50RG9jLmJvZHk7XG5cblx0XHRcdFx0ZXZlbnQucGFnZVggPSBvcmlnaW5hbC5jbGllbnRYICsgKCBkb2MgJiYgZG9jLnNjcm9sbExlZnQgfHwgYm9keSAmJiBib2R5LnNjcm9sbExlZnQgfHwgMCApIC0gKCBkb2MgJiYgZG9jLmNsaWVudExlZnQgfHwgYm9keSAmJiBib2R5LmNsaWVudExlZnQgfHwgMCApO1xuXHRcdFx0XHRldmVudC5wYWdlWSA9IG9yaWdpbmFsLmNsaWVudFkgKyAoIGRvYyAmJiBkb2Muc2Nyb2xsVG9wICB8fCBib2R5ICYmIGJvZHkuc2Nyb2xsVG9wICB8fCAwICkgLSAoIGRvYyAmJiBkb2MuY2xpZW50VG9wICB8fCBib2R5ICYmIGJvZHkuY2xpZW50VG9wICB8fCAwICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEFkZCB3aGljaCBmb3IgY2xpY2s6IDEgPT09IGxlZnQ7IDIgPT09IG1pZGRsZTsgMyA9PT0gcmlnaHRcblx0XHRcdC8vIE5vdGU6IGJ1dHRvbiBpcyBub3Qgbm9ybWFsaXplZCwgc28gZG9uJ3QgdXNlIGl0XG5cdFx0XHRpZiAoICFldmVudC53aGljaCAmJiBidXR0b24gIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0ZXZlbnQud2hpY2ggPSAoIGJ1dHRvbiAmIDEgPyAxIDogKCBidXR0b24gJiAyID8gMyA6ICggYnV0dG9uICYgNCA/IDIgOiAwICkgKSApO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZXZlbnQ7XG5cdFx0fVxuXHR9LFxuXG5cdGZpeDogZnVuY3Rpb24oIGV2ZW50ICkge1xuXHRcdGlmICggZXZlbnRbIGpRdWVyeS5leHBhbmRvIF0gKSB7XG5cdFx0XHRyZXR1cm4gZXZlbnQ7XG5cdFx0fVxuXG5cdFx0Ly8gQ3JlYXRlIGEgd3JpdGFibGUgY29weSBvZiB0aGUgZXZlbnQgb2JqZWN0IGFuZCBub3JtYWxpemUgc29tZSBwcm9wZXJ0aWVzXG5cdFx0dmFyIGksIHByb3AsIGNvcHksXG5cdFx0XHR0eXBlID0gZXZlbnQudHlwZSxcblx0XHRcdG9yaWdpbmFsRXZlbnQgPSBldmVudCxcblx0XHRcdGZpeEhvb2sgPSB0aGlzLmZpeEhvb2tzWyB0eXBlIF07XG5cblx0XHRpZiAoICFmaXhIb29rICkge1xuXHRcdFx0dGhpcy5maXhIb29rc1sgdHlwZSBdID0gZml4SG9vayA9XG5cdFx0XHRcdHJtb3VzZUV2ZW50LnRlc3QoIHR5cGUgKSA/IHRoaXMubW91c2VIb29rcyA6XG5cdFx0XHRcdHJrZXlFdmVudC50ZXN0KCB0eXBlICkgPyB0aGlzLmtleUhvb2tzIDpcblx0XHRcdFx0e307XG5cdFx0fVxuXHRcdGNvcHkgPSBmaXhIb29rLnByb3BzID8gdGhpcy5wcm9wcy5jb25jYXQoIGZpeEhvb2sucHJvcHMgKSA6IHRoaXMucHJvcHM7XG5cblx0XHRldmVudCA9IG5ldyBqUXVlcnkuRXZlbnQoIG9yaWdpbmFsRXZlbnQgKTtcblxuXHRcdGkgPSBjb3B5Lmxlbmd0aDtcblx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdHByb3AgPSBjb3B5WyBpIF07XG5cdFx0XHRldmVudFsgcHJvcCBdID0gb3JpZ2luYWxFdmVudFsgcHJvcCBdO1xuXHRcdH1cblxuXHRcdC8vIFN1cHBvcnQ6IENvcmRvdmEgMi41IChXZWJLaXQpICgjMTMyNTUpXG5cdFx0Ly8gQWxsIGV2ZW50cyBzaG91bGQgaGF2ZSBhIHRhcmdldDsgQ29yZG92YSBkZXZpY2VyZWFkeSBkb2Vzbid0XG5cdFx0aWYgKCAhZXZlbnQudGFyZ2V0ICkge1xuXHRcdFx0ZXZlbnQudGFyZ2V0ID0gZG9jdW1lbnQ7XG5cdFx0fVxuXG5cdFx0Ly8gU3VwcG9ydDogU2FmYXJpIDYuMCssIENocm9tZTwyOFxuXHRcdC8vIFRhcmdldCBzaG91bGQgbm90IGJlIGEgdGV4dCBub2RlICgjNTA0LCAjMTMxNDMpXG5cdFx0aWYgKCBldmVudC50YXJnZXQubm9kZVR5cGUgPT09IDMgKSB7XG5cdFx0XHRldmVudC50YXJnZXQgPSBldmVudC50YXJnZXQucGFyZW50Tm9kZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gZml4SG9vay5maWx0ZXIgPyBmaXhIb29rLmZpbHRlciggZXZlbnQsIG9yaWdpbmFsRXZlbnQgKSA6IGV2ZW50O1xuXHR9LFxuXG5cdHNwZWNpYWw6IHtcblx0XHRsb2FkOiB7XG5cdFx0XHQvLyBQcmV2ZW50IHRyaWdnZXJlZCBpbWFnZS5sb2FkIGV2ZW50cyBmcm9tIGJ1YmJsaW5nIHRvIHdpbmRvdy5sb2FkXG5cdFx0XHRub0J1YmJsZTogdHJ1ZVxuXHRcdH0sXG5cdFx0Zm9jdXM6IHtcblx0XHRcdC8vIEZpcmUgbmF0aXZlIGV2ZW50IGlmIHBvc3NpYmxlIHNvIGJsdXIvZm9jdXMgc2VxdWVuY2UgaXMgY29ycmVjdFxuXHRcdFx0dHJpZ2dlcjogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggdGhpcyAhPT0gc2FmZUFjdGl2ZUVsZW1lbnQoKSAmJiB0aGlzLmZvY3VzICkge1xuXHRcdFx0XHRcdHRoaXMuZm9jdXMoKTtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRkZWxlZ2F0ZVR5cGU6IFwiZm9jdXNpblwiXG5cdFx0fSxcblx0XHRibHVyOiB7XG5cdFx0XHR0cmlnZ2VyOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCB0aGlzID09PSBzYWZlQWN0aXZlRWxlbWVudCgpICYmIHRoaXMuYmx1ciApIHtcblx0XHRcdFx0XHR0aGlzLmJsdXIoKTtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRkZWxlZ2F0ZVR5cGU6IFwiZm9jdXNvdXRcIlxuXHRcdH0sXG5cdFx0Y2xpY2s6IHtcblx0XHRcdC8vIEZvciBjaGVja2JveCwgZmlyZSBuYXRpdmUgZXZlbnQgc28gY2hlY2tlZCBzdGF0ZSB3aWxsIGJlIHJpZ2h0XG5cdFx0XHR0cmlnZ2VyOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCB0aGlzLnR5cGUgPT09IFwiY2hlY2tib3hcIiAmJiB0aGlzLmNsaWNrICYmIGpRdWVyeS5ub2RlTmFtZSggdGhpcywgXCJpbnB1dFwiICkgKSB7XG5cdFx0XHRcdFx0dGhpcy5jbGljaygpO1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblxuXHRcdFx0Ly8gRm9yIGNyb3NzLWJyb3dzZXIgY29uc2lzdGVuY3ksIGRvbid0IGZpcmUgbmF0aXZlIC5jbGljaygpIG9uIGxpbmtzXG5cdFx0XHRfZGVmYXVsdDogZnVuY3Rpb24oIGV2ZW50ICkge1xuXHRcdFx0XHRyZXR1cm4galF1ZXJ5Lm5vZGVOYW1lKCBldmVudC50YXJnZXQsIFwiYVwiICk7XG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdGJlZm9yZXVubG9hZDoge1xuXHRcdFx0cG9zdERpc3BhdGNoOiBmdW5jdGlvbiggZXZlbnQgKSB7XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogRmlyZWZveCAyMCtcblx0XHRcdFx0Ly8gRmlyZWZveCBkb2Vzbid0IGFsZXJ0IGlmIHRoZSByZXR1cm5WYWx1ZSBmaWVsZCBpcyBub3Qgc2V0LlxuXHRcdFx0XHRpZiAoIGV2ZW50LnJlc3VsdCAhPT0gdW5kZWZpbmVkICYmIGV2ZW50Lm9yaWdpbmFsRXZlbnQgKSB7XG5cdFx0XHRcdFx0ZXZlbnQub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZSA9IGV2ZW50LnJlc3VsdDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHRzaW11bGF0ZTogZnVuY3Rpb24oIHR5cGUsIGVsZW0sIGV2ZW50LCBidWJibGUgKSB7XG5cdFx0Ly8gUGlnZ3liYWNrIG9uIGEgZG9ub3IgZXZlbnQgdG8gc2ltdWxhdGUgYSBkaWZmZXJlbnQgb25lLlxuXHRcdC8vIEZha2Ugb3JpZ2luYWxFdmVudCB0byBhdm9pZCBkb25vcidzIHN0b3BQcm9wYWdhdGlvbiwgYnV0IGlmIHRoZVxuXHRcdC8vIHNpbXVsYXRlZCBldmVudCBwcmV2ZW50cyBkZWZhdWx0IHRoZW4gd2UgZG8gdGhlIHNhbWUgb24gdGhlIGRvbm9yLlxuXHRcdHZhciBlID0galF1ZXJ5LmV4dGVuZChcblx0XHRcdG5ldyBqUXVlcnkuRXZlbnQoKSxcblx0XHRcdGV2ZW50LFxuXHRcdFx0e1xuXHRcdFx0XHR0eXBlOiB0eXBlLFxuXHRcdFx0XHRpc1NpbXVsYXRlZDogdHJ1ZSxcblx0XHRcdFx0b3JpZ2luYWxFdmVudDoge31cblx0XHRcdH1cblx0XHQpO1xuXHRcdGlmICggYnViYmxlICkge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXIoIGUsIG51bGwsIGVsZW0gKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LmRpc3BhdGNoLmNhbGwoIGVsZW0sIGUgKTtcblx0XHR9XG5cdFx0aWYgKCBlLmlzRGVmYXVsdFByZXZlbnRlZCgpICkge1xuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHR9XG5cdH1cbn07XG5cbmpRdWVyeS5yZW1vdmVFdmVudCA9IGZ1bmN0aW9uKCBlbGVtLCB0eXBlLCBoYW5kbGUgKSB7XG5cdGlmICggZWxlbS5yZW1vdmVFdmVudExpc3RlbmVyICkge1xuXHRcdGVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lciggdHlwZSwgaGFuZGxlLCBmYWxzZSApO1xuXHR9XG59O1xuXG5qUXVlcnkuRXZlbnQgPSBmdW5jdGlvbiggc3JjLCBwcm9wcyApIHtcblx0Ly8gQWxsb3cgaW5zdGFudGlhdGlvbiB3aXRob3V0IHRoZSAnbmV3JyBrZXl3b3JkXG5cdGlmICggISh0aGlzIGluc3RhbmNlb2YgalF1ZXJ5LkV2ZW50KSApIHtcblx0XHRyZXR1cm4gbmV3IGpRdWVyeS5FdmVudCggc3JjLCBwcm9wcyApO1xuXHR9XG5cblx0Ly8gRXZlbnQgb2JqZWN0XG5cdGlmICggc3JjICYmIHNyYy50eXBlICkge1xuXHRcdHRoaXMub3JpZ2luYWxFdmVudCA9IHNyYztcblx0XHR0aGlzLnR5cGUgPSBzcmMudHlwZTtcblxuXHRcdC8vIEV2ZW50cyBidWJibGluZyB1cCB0aGUgZG9jdW1lbnQgbWF5IGhhdmUgYmVlbiBtYXJrZWQgYXMgcHJldmVudGVkXG5cdFx0Ly8gYnkgYSBoYW5kbGVyIGxvd2VyIGRvd24gdGhlIHRyZWU7IHJlZmxlY3QgdGhlIGNvcnJlY3QgdmFsdWUuXG5cdFx0dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQgPSBzcmMuZGVmYXVsdFByZXZlbnRlZCB8fFxuXHRcdFx0XHRzcmMuZGVmYXVsdFByZXZlbnRlZCA9PT0gdW5kZWZpbmVkICYmXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQ8NC4wXG5cdFx0XHRcdHNyYy5yZXR1cm5WYWx1ZSA9PT0gZmFsc2UgP1xuXHRcdFx0cmV0dXJuVHJ1ZSA6XG5cdFx0XHRyZXR1cm5GYWxzZTtcblxuXHQvLyBFdmVudCB0eXBlXG5cdH0gZWxzZSB7XG5cdFx0dGhpcy50eXBlID0gc3JjO1xuXHR9XG5cblx0Ly8gUHV0IGV4cGxpY2l0bHkgcHJvdmlkZWQgcHJvcGVydGllcyBvbnRvIHRoZSBldmVudCBvYmplY3Rcblx0aWYgKCBwcm9wcyApIHtcblx0XHRqUXVlcnkuZXh0ZW5kKCB0aGlzLCBwcm9wcyApO1xuXHR9XG5cblx0Ly8gQ3JlYXRlIGEgdGltZXN0YW1wIGlmIGluY29taW5nIGV2ZW50IGRvZXNuJ3QgaGF2ZSBvbmVcblx0dGhpcy50aW1lU3RhbXAgPSBzcmMgJiYgc3JjLnRpbWVTdGFtcCB8fCBqUXVlcnkubm93KCk7XG5cblx0Ly8gTWFyayBpdCBhcyBmaXhlZFxuXHR0aGlzWyBqUXVlcnkuZXhwYW5kbyBdID0gdHJ1ZTtcbn07XG5cbi8vIGpRdWVyeS5FdmVudCBpcyBiYXNlZCBvbiBET00zIEV2ZW50cyBhcyBzcGVjaWZpZWQgYnkgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgQmluZGluZ1xuLy8gaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMy9XRC1ET00tTGV2ZWwtMy1FdmVudHMtMjAwMzAzMzEvZWNtYS1zY3JpcHQtYmluZGluZy5odG1sXG5qUXVlcnkuRXZlbnQucHJvdG90eXBlID0ge1xuXHRpc0RlZmF1bHRQcmV2ZW50ZWQ6IHJldHVybkZhbHNlLFxuXHRpc1Byb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UsXG5cdGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOiByZXR1cm5GYWxzZSxcblxuXHRwcmV2ZW50RGVmYXVsdDogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGUgPSB0aGlzLm9yaWdpbmFsRXZlbnQ7XG5cblx0XHR0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IHJldHVyblRydWU7XG5cblx0XHRpZiAoIGUgJiYgZS5wcmV2ZW50RGVmYXVsdCApIHtcblx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHR9XG5cdH0sXG5cdHN0b3BQcm9wYWdhdGlvbjogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGUgPSB0aGlzLm9yaWdpbmFsRXZlbnQ7XG5cblx0XHR0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkID0gcmV0dXJuVHJ1ZTtcblxuXHRcdGlmICggZSAmJiBlLnN0b3BQcm9wYWdhdGlvbiApIHtcblx0XHRcdGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0fVxuXHR9LFxuXHRzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBlID0gdGhpcy5vcmlnaW5hbEV2ZW50O1xuXG5cdFx0dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCA9IHJldHVyblRydWU7XG5cblx0XHRpZiAoIGUgJiYgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24gKSB7XG5cdFx0XHRlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXHRcdH1cblxuXHRcdHRoaXMuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdH1cbn07XG5cbi8vIENyZWF0ZSBtb3VzZWVudGVyL2xlYXZlIGV2ZW50cyB1c2luZyBtb3VzZW92ZXIvb3V0IGFuZCBldmVudC10aW1lIGNoZWNrc1xuLy8gU3VwcG9ydDogQ2hyb21lIDE1K1xualF1ZXJ5LmVhY2goe1xuXHRtb3VzZWVudGVyOiBcIm1vdXNlb3ZlclwiLFxuXHRtb3VzZWxlYXZlOiBcIm1vdXNlb3V0XCIsXG5cdHBvaW50ZXJlbnRlcjogXCJwb2ludGVyb3ZlclwiLFxuXHRwb2ludGVybGVhdmU6IFwicG9pbnRlcm91dFwiXG59LCBmdW5jdGlvbiggb3JpZywgZml4ICkge1xuXHRqUXVlcnkuZXZlbnQuc3BlY2lhbFsgb3JpZyBdID0ge1xuXHRcdGRlbGVnYXRlVHlwZTogZml4LFxuXHRcdGJpbmRUeXBlOiBmaXgsXG5cblx0XHRoYW5kbGU6IGZ1bmN0aW9uKCBldmVudCApIHtcblx0XHRcdHZhciByZXQsXG5cdFx0XHRcdHRhcmdldCA9IHRoaXMsXG5cdFx0XHRcdHJlbGF0ZWQgPSBldmVudC5yZWxhdGVkVGFyZ2V0LFxuXHRcdFx0XHRoYW5kbGVPYmogPSBldmVudC5oYW5kbGVPYmo7XG5cblx0XHRcdC8vIEZvciBtb3VzZW50ZXIvbGVhdmUgY2FsbCB0aGUgaGFuZGxlciBpZiByZWxhdGVkIGlzIG91dHNpZGUgdGhlIHRhcmdldC5cblx0XHRcdC8vIE5COiBObyByZWxhdGVkVGFyZ2V0IGlmIHRoZSBtb3VzZSBsZWZ0L2VudGVyZWQgdGhlIGJyb3dzZXIgd2luZG93XG5cdFx0XHRpZiAoICFyZWxhdGVkIHx8IChyZWxhdGVkICE9PSB0YXJnZXQgJiYgIWpRdWVyeS5jb250YWlucyggdGFyZ2V0LCByZWxhdGVkICkpICkge1xuXHRcdFx0XHRldmVudC50eXBlID0gaGFuZGxlT2JqLm9yaWdUeXBlO1xuXHRcdFx0XHRyZXQgPSBoYW5kbGVPYmouaGFuZGxlci5hcHBseSggdGhpcywgYXJndW1lbnRzICk7XG5cdFx0XHRcdGV2ZW50LnR5cGUgPSBmaXg7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmV0O1xuXHRcdH1cblx0fTtcbn0pO1xuXG4vLyBTdXBwb3J0OiBGaXJlZm94LCBDaHJvbWUsIFNhZmFyaVxuLy8gQ3JlYXRlIFwiYnViYmxpbmdcIiBmb2N1cyBhbmQgYmx1ciBldmVudHNcbmlmICggIXN1cHBvcnQuZm9jdXNpbkJ1YmJsZXMgKSB7XG5cdGpRdWVyeS5lYWNoKHsgZm9jdXM6IFwiZm9jdXNpblwiLCBibHVyOiBcImZvY3Vzb3V0XCIgfSwgZnVuY3Rpb24oIG9yaWcsIGZpeCApIHtcblxuXHRcdC8vIEF0dGFjaCBhIHNpbmdsZSBjYXB0dXJpbmcgaGFuZGxlciBvbiB0aGUgZG9jdW1lbnQgd2hpbGUgc29tZW9uZSB3YW50cyBmb2N1c2luL2ZvY3Vzb3V0XG5cdFx0dmFyIGhhbmRsZXIgPSBmdW5jdGlvbiggZXZlbnQgKSB7XG5cdFx0XHRcdGpRdWVyeS5ldmVudC5zaW11bGF0ZSggZml4LCBldmVudC50YXJnZXQsIGpRdWVyeS5ldmVudC5maXgoIGV2ZW50ICksIHRydWUgKTtcblx0XHRcdH07XG5cblx0XHRqUXVlcnkuZXZlbnQuc3BlY2lhbFsgZml4IF0gPSB7XG5cdFx0XHRzZXR1cDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHZhciBkb2MgPSB0aGlzLm93bmVyRG9jdW1lbnQgfHwgdGhpcyxcblx0XHRcdFx0XHRhdHRhY2hlcyA9IGRhdGFfcHJpdi5hY2Nlc3MoIGRvYywgZml4ICk7XG5cblx0XHRcdFx0aWYgKCAhYXR0YWNoZXMgKSB7XG5cdFx0XHRcdFx0ZG9jLmFkZEV2ZW50TGlzdGVuZXIoIG9yaWcsIGhhbmRsZXIsIHRydWUgKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRkYXRhX3ByaXYuYWNjZXNzKCBkb2MsIGZpeCwgKCBhdHRhY2hlcyB8fCAwICkgKyAxICk7XG5cdFx0XHR9LFxuXHRcdFx0dGVhcmRvd246IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHR2YXIgZG9jID0gdGhpcy5vd25lckRvY3VtZW50IHx8IHRoaXMsXG5cdFx0XHRcdFx0YXR0YWNoZXMgPSBkYXRhX3ByaXYuYWNjZXNzKCBkb2MsIGZpeCApIC0gMTtcblxuXHRcdFx0XHRpZiAoICFhdHRhY2hlcyApIHtcblx0XHRcdFx0XHRkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lciggb3JpZywgaGFuZGxlciwgdHJ1ZSApO1xuXHRcdFx0XHRcdGRhdGFfcHJpdi5yZW1vdmUoIGRvYywgZml4ICk7XG5cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRkYXRhX3ByaXYuYWNjZXNzKCBkb2MsIGZpeCwgYXR0YWNoZXMgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cdH0pO1xufVxuXG5qUXVlcnkuZm4uZXh0ZW5kKHtcblxuXHRvbjogZnVuY3Rpb24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4sIC8qSU5URVJOQUwqLyBvbmUgKSB7XG5cdFx0dmFyIG9yaWdGbiwgdHlwZTtcblxuXHRcdC8vIFR5cGVzIGNhbiBiZSBhIG1hcCBvZiB0eXBlcy9oYW5kbGVyc1xuXHRcdGlmICggdHlwZW9mIHR5cGVzID09PSBcIm9iamVjdFwiICkge1xuXHRcdFx0Ly8gKCB0eXBlcy1PYmplY3QsIHNlbGVjdG9yLCBkYXRhIClcblx0XHRcdGlmICggdHlwZW9mIHNlbGVjdG9yICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0XHQvLyAoIHR5cGVzLU9iamVjdCwgZGF0YSApXG5cdFx0XHRcdGRhdGEgPSBkYXRhIHx8IHNlbGVjdG9yO1xuXHRcdFx0XHRzZWxlY3RvciA9IHVuZGVmaW5lZDtcblx0XHRcdH1cblx0XHRcdGZvciAoIHR5cGUgaW4gdHlwZXMgKSB7XG5cdFx0XHRcdHRoaXMub24oIHR5cGUsIHNlbGVjdG9yLCBkYXRhLCB0eXBlc1sgdHlwZSBdLCBvbmUgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblxuXHRcdGlmICggZGF0YSA9PSBudWxsICYmIGZuID09IG51bGwgKSB7XG5cdFx0XHQvLyAoIHR5cGVzLCBmbiApXG5cdFx0XHRmbiA9IHNlbGVjdG9yO1xuXHRcdFx0ZGF0YSA9IHNlbGVjdG9yID0gdW5kZWZpbmVkO1xuXHRcdH0gZWxzZSBpZiAoIGZuID09IG51bGwgKSB7XG5cdFx0XHRpZiAoIHR5cGVvZiBzZWxlY3RvciA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdFx0Ly8gKCB0eXBlcywgc2VsZWN0b3IsIGZuIClcblx0XHRcdFx0Zm4gPSBkYXRhO1xuXHRcdFx0XHRkYXRhID0gdW5kZWZpbmVkO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gKCB0eXBlcywgZGF0YSwgZm4gKVxuXHRcdFx0XHRmbiA9IGRhdGE7XG5cdFx0XHRcdGRhdGEgPSBzZWxlY3Rvcjtcblx0XHRcdFx0c2VsZWN0b3IgPSB1bmRlZmluZWQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmICggZm4gPT09IGZhbHNlICkge1xuXHRcdFx0Zm4gPSByZXR1cm5GYWxzZTtcblx0XHR9IGVsc2UgaWYgKCAhZm4gKSB7XG5cdFx0XHRyZXR1cm4gdGhpcztcblx0XHR9XG5cblx0XHRpZiAoIG9uZSA9PT0gMSApIHtcblx0XHRcdG9yaWdGbiA9IGZuO1xuXHRcdFx0Zm4gPSBmdW5jdGlvbiggZXZlbnQgKSB7XG5cdFx0XHRcdC8vIENhbiB1c2UgYW4gZW1wdHkgc2V0LCBzaW5jZSBldmVudCBjb250YWlucyB0aGUgaW5mb1xuXHRcdFx0XHRqUXVlcnkoKS5vZmYoIGV2ZW50ICk7XG5cdFx0XHRcdHJldHVybiBvcmlnRm4uYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApO1xuXHRcdFx0fTtcblx0XHRcdC8vIFVzZSBzYW1lIGd1aWQgc28gY2FsbGVyIGNhbiByZW1vdmUgdXNpbmcgb3JpZ0ZuXG5cdFx0XHRmbi5ndWlkID0gb3JpZ0ZuLmd1aWQgfHwgKCBvcmlnRm4uZ3VpZCA9IGpRdWVyeS5ndWlkKysgKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkuZXZlbnQuYWRkKCB0aGlzLCB0eXBlcywgZm4sIGRhdGEsIHNlbGVjdG9yICk7XG5cdFx0fSk7XG5cdH0sXG5cdG9uZTogZnVuY3Rpb24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4sIDEgKTtcblx0fSxcblx0b2ZmOiBmdW5jdGlvbiggdHlwZXMsIHNlbGVjdG9yLCBmbiApIHtcblx0XHR2YXIgaGFuZGxlT2JqLCB0eXBlO1xuXHRcdGlmICggdHlwZXMgJiYgdHlwZXMucHJldmVudERlZmF1bHQgJiYgdHlwZXMuaGFuZGxlT2JqICkge1xuXHRcdFx0Ly8gKCBldmVudCApICBkaXNwYXRjaGVkIGpRdWVyeS5FdmVudFxuXHRcdFx0aGFuZGxlT2JqID0gdHlwZXMuaGFuZGxlT2JqO1xuXHRcdFx0alF1ZXJ5KCB0eXBlcy5kZWxlZ2F0ZVRhcmdldCApLm9mZihcblx0XHRcdFx0aGFuZGxlT2JqLm5hbWVzcGFjZSA/IGhhbmRsZU9iai5vcmlnVHlwZSArIFwiLlwiICsgaGFuZGxlT2JqLm5hbWVzcGFjZSA6IGhhbmRsZU9iai5vcmlnVHlwZSxcblx0XHRcdFx0aGFuZGxlT2JqLnNlbGVjdG9yLFxuXHRcdFx0XHRoYW5kbGVPYmouaGFuZGxlclxuXHRcdFx0KTtcblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblx0XHRpZiAoIHR5cGVvZiB0eXBlcyA9PT0gXCJvYmplY3RcIiApIHtcblx0XHRcdC8vICggdHlwZXMtb2JqZWN0IFssIHNlbGVjdG9yXSApXG5cdFx0XHRmb3IgKCB0eXBlIGluIHR5cGVzICkge1xuXHRcdFx0XHR0aGlzLm9mZiggdHlwZSwgc2VsZWN0b3IsIHR5cGVzWyB0eXBlIF0gKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblx0XHRpZiAoIHNlbGVjdG9yID09PSBmYWxzZSB8fCB0eXBlb2Ygc2VsZWN0b3IgPT09IFwiZnVuY3Rpb25cIiApIHtcblx0XHRcdC8vICggdHlwZXMgWywgZm5dIClcblx0XHRcdGZuID0gc2VsZWN0b3I7XG5cdFx0XHRzZWxlY3RvciA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0aWYgKCBmbiA9PT0gZmFsc2UgKSB7XG5cdFx0XHRmbiA9IHJldHVybkZhbHNlO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LnJlbW92ZSggdGhpcywgdHlwZXMsIGZuLCBzZWxlY3RvciApO1xuXHRcdH0pO1xuXHR9LFxuXG5cdHRyaWdnZXI6IGZ1bmN0aW9uKCB0eXBlLCBkYXRhICkge1xuXHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkuZXZlbnQudHJpZ2dlciggdHlwZSwgZGF0YSwgdGhpcyApO1xuXHRcdH0pO1xuXHR9LFxuXHR0cmlnZ2VySGFuZGxlcjogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7XG5cdFx0dmFyIGVsZW0gPSB0aGlzWzBdO1xuXHRcdGlmICggZWxlbSApIHtcblx0XHRcdHJldHVybiBqUXVlcnkuZXZlbnQudHJpZ2dlciggdHlwZSwgZGF0YSwgZWxlbSwgdHJ1ZSApO1xuXHRcdH1cblx0fVxufSk7XG5cblxudmFyXG5cdHJ4aHRtbFRhZyA9IC88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFtcXHc6XSspW14+XSopXFwvPi9naSxcblx0cnRhZ05hbWUgPSAvPChbXFx3Ol0rKS8sXG5cdHJodG1sID0gLzx8JiM/XFx3KzsvLFxuXHRybm9Jbm5lcmh0bWwgPSAvPCg/OnNjcmlwdHxzdHlsZXxsaW5rKS9pLFxuXHQvLyBjaGVja2VkPVwiY2hlY2tlZFwiIG9yIGNoZWNrZWRcblx0cmNoZWNrZWQgPSAvY2hlY2tlZFxccyooPzpbXj1dfD1cXHMqLmNoZWNrZWQuKS9pLFxuXHRyc2NyaXB0VHlwZSA9IC9eJHxcXC8oPzpqYXZhfGVjbWEpc2NyaXB0L2ksXG5cdHJzY3JpcHRUeXBlTWFza2VkID0gL150cnVlXFwvKC4qKS8sXG5cdHJjbGVhblNjcmlwdCA9IC9eXFxzKjwhKD86XFxbQ0RBVEFcXFt8LS0pfCg/OlxcXVxcXXwtLSk+XFxzKiQvZyxcblxuXHQvLyBXZSBoYXZlIHRvIGNsb3NlIHRoZXNlIHRhZ3MgdG8gc3VwcG9ydCBYSFRNTCAoIzEzMjAwKVxuXHR3cmFwTWFwID0ge1xuXG5cdFx0Ly8gU3VwcG9ydDogSUU5XG5cdFx0b3B0aW9uOiBbIDEsIFwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPlwiLCBcIjwvc2VsZWN0PlwiIF0sXG5cblx0XHR0aGVhZDogWyAxLCBcIjx0YWJsZT5cIiwgXCI8L3RhYmxlPlwiIF0sXG5cdFx0Y29sOiBbIDIsIFwiPHRhYmxlPjxjb2xncm91cD5cIiwgXCI8L2NvbGdyb3VwPjwvdGFibGU+XCIgXSxcblx0XHR0cjogWyAyLCBcIjx0YWJsZT48dGJvZHk+XCIsIFwiPC90Ym9keT48L3RhYmxlPlwiIF0sXG5cdFx0dGQ6IFsgMywgXCI8dGFibGU+PHRib2R5Pjx0cj5cIiwgXCI8L3RyPjwvdGJvZHk+PC90YWJsZT5cIiBdLFxuXG5cdFx0X2RlZmF1bHQ6IFsgMCwgXCJcIiwgXCJcIiBdXG5cdH07XG5cbi8vIFN1cHBvcnQ6IElFOVxud3JhcE1hcC5vcHRncm91cCA9IHdyYXBNYXAub3B0aW9uO1xuXG53cmFwTWFwLnRib2R5ID0gd3JhcE1hcC50Zm9vdCA9IHdyYXBNYXAuY29sZ3JvdXAgPSB3cmFwTWFwLmNhcHRpb24gPSB3cmFwTWFwLnRoZWFkO1xud3JhcE1hcC50aCA9IHdyYXBNYXAudGQ7XG5cbi8vIFN1cHBvcnQ6IDEueCBjb21wYXRpYmlsaXR5XG4vLyBNYW5pcHVsYXRpbmcgdGFibGVzIHJlcXVpcmVzIGEgdGJvZHlcbmZ1bmN0aW9uIG1hbmlwdWxhdGlvblRhcmdldCggZWxlbSwgY29udGVudCApIHtcblx0cmV0dXJuIGpRdWVyeS5ub2RlTmFtZSggZWxlbSwgXCJ0YWJsZVwiICkgJiZcblx0XHRqUXVlcnkubm9kZU5hbWUoIGNvbnRlbnQubm9kZVR5cGUgIT09IDExID8gY29udGVudCA6IGNvbnRlbnQuZmlyc3RDaGlsZCwgXCJ0clwiICkgP1xuXG5cdFx0ZWxlbS5nZXRFbGVtZW50c0J5VGFnTmFtZShcInRib2R5XCIpWzBdIHx8XG5cdFx0XHRlbGVtLmFwcGVuZENoaWxkKCBlbGVtLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRib2R5XCIpICkgOlxuXHRcdGVsZW07XG59XG5cbi8vIFJlcGxhY2UvcmVzdG9yZSB0aGUgdHlwZSBhdHRyaWJ1dGUgb2Ygc2NyaXB0IGVsZW1lbnRzIGZvciBzYWZlIERPTSBtYW5pcHVsYXRpb25cbmZ1bmN0aW9uIGRpc2FibGVTY3JpcHQoIGVsZW0gKSB7XG5cdGVsZW0udHlwZSA9IChlbGVtLmdldEF0dHJpYnV0ZShcInR5cGVcIikgIT09IG51bGwpICsgXCIvXCIgKyBlbGVtLnR5cGU7XG5cdHJldHVybiBlbGVtO1xufVxuZnVuY3Rpb24gcmVzdG9yZVNjcmlwdCggZWxlbSApIHtcblx0dmFyIG1hdGNoID0gcnNjcmlwdFR5cGVNYXNrZWQuZXhlYyggZWxlbS50eXBlICk7XG5cblx0aWYgKCBtYXRjaCApIHtcblx0XHRlbGVtLnR5cGUgPSBtYXRjaFsgMSBdO1xuXHR9IGVsc2Uge1xuXHRcdGVsZW0ucmVtb3ZlQXR0cmlidXRlKFwidHlwZVwiKTtcblx0fVxuXG5cdHJldHVybiBlbGVtO1xufVxuXG4vLyBNYXJrIHNjcmlwdHMgYXMgaGF2aW5nIGFscmVhZHkgYmVlbiBldmFsdWF0ZWRcbmZ1bmN0aW9uIHNldEdsb2JhbEV2YWwoIGVsZW1zLCByZWZFbGVtZW50cyApIHtcblx0dmFyIGkgPSAwLFxuXHRcdGwgPSBlbGVtcy5sZW5ndGg7XG5cblx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdGRhdGFfcHJpdi5zZXQoXG5cdFx0XHRlbGVtc1sgaSBdLCBcImdsb2JhbEV2YWxcIiwgIXJlZkVsZW1lbnRzIHx8IGRhdGFfcHJpdi5nZXQoIHJlZkVsZW1lbnRzWyBpIF0sIFwiZ2xvYmFsRXZhbFwiIClcblx0XHQpO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGNsb25lQ29weUV2ZW50KCBzcmMsIGRlc3QgKSB7XG5cdHZhciBpLCBsLCB0eXBlLCBwZGF0YU9sZCwgcGRhdGFDdXIsIHVkYXRhT2xkLCB1ZGF0YUN1ciwgZXZlbnRzO1xuXG5cdGlmICggZGVzdC5ub2RlVHlwZSAhPT0gMSApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyAxLiBDb3B5IHByaXZhdGUgZGF0YTogZXZlbnRzLCBoYW5kbGVycywgZXRjLlxuXHRpZiAoIGRhdGFfcHJpdi5oYXNEYXRhKCBzcmMgKSApIHtcblx0XHRwZGF0YU9sZCA9IGRhdGFfcHJpdi5hY2Nlc3MoIHNyYyApO1xuXHRcdHBkYXRhQ3VyID0gZGF0YV9wcml2LnNldCggZGVzdCwgcGRhdGFPbGQgKTtcblx0XHRldmVudHMgPSBwZGF0YU9sZC5ldmVudHM7XG5cblx0XHRpZiAoIGV2ZW50cyApIHtcblx0XHRcdGRlbGV0ZSBwZGF0YUN1ci5oYW5kbGU7XG5cdFx0XHRwZGF0YUN1ci5ldmVudHMgPSB7fTtcblxuXHRcdFx0Zm9yICggdHlwZSBpbiBldmVudHMgKSB7XG5cdFx0XHRcdGZvciAoIGkgPSAwLCBsID0gZXZlbnRzWyB0eXBlIF0ubGVuZ3RoOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC5hZGQoIGRlc3QsIHR5cGUsIGV2ZW50c1sgdHlwZSBdWyBpIF0gKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIDIuIENvcHkgdXNlciBkYXRhXG5cdGlmICggZGF0YV91c2VyLmhhc0RhdGEoIHNyYyApICkge1xuXHRcdHVkYXRhT2xkID0gZGF0YV91c2VyLmFjY2Vzcyggc3JjICk7XG5cdFx0dWRhdGFDdXIgPSBqUXVlcnkuZXh0ZW5kKCB7fSwgdWRhdGFPbGQgKTtcblxuXHRcdGRhdGFfdXNlci5zZXQoIGRlc3QsIHVkYXRhQ3VyICk7XG5cdH1cbn1cblxuZnVuY3Rpb24gZ2V0QWxsKCBjb250ZXh0LCB0YWcgKSB7XG5cdHZhciByZXQgPSBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lID8gY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggdGFnIHx8IFwiKlwiICkgOlxuXHRcdFx0Y29udGV4dC5xdWVyeVNlbGVjdG9yQWxsID8gY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKCB0YWcgfHwgXCIqXCIgKSA6XG5cdFx0XHRbXTtcblxuXHRyZXR1cm4gdGFnID09PSB1bmRlZmluZWQgfHwgdGFnICYmIGpRdWVyeS5ub2RlTmFtZSggY29udGV4dCwgdGFnICkgP1xuXHRcdGpRdWVyeS5tZXJnZSggWyBjb250ZXh0IF0sIHJldCApIDpcblx0XHRyZXQ7XG59XG5cbi8vIEZpeCBJRSBidWdzLCBzZWUgc3VwcG9ydCB0ZXN0c1xuZnVuY3Rpb24gZml4SW5wdXQoIHNyYywgZGVzdCApIHtcblx0dmFyIG5vZGVOYW1lID0gZGVzdC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuXG5cdC8vIEZhaWxzIHRvIHBlcnNpc3QgdGhlIGNoZWNrZWQgc3RhdGUgb2YgYSBjbG9uZWQgY2hlY2tib3ggb3IgcmFkaW8gYnV0dG9uLlxuXHRpZiAoIG5vZGVOYW1lID09PSBcImlucHV0XCIgJiYgcmNoZWNrYWJsZVR5cGUudGVzdCggc3JjLnR5cGUgKSApIHtcblx0XHRkZXN0LmNoZWNrZWQgPSBzcmMuY2hlY2tlZDtcblxuXHQvLyBGYWlscyB0byByZXR1cm4gdGhlIHNlbGVjdGVkIG9wdGlvbiB0byB0aGUgZGVmYXVsdCBzZWxlY3RlZCBzdGF0ZSB3aGVuIGNsb25pbmcgb3B0aW9uc1xuXHR9IGVsc2UgaWYgKCBub2RlTmFtZSA9PT0gXCJpbnB1dFwiIHx8IG5vZGVOYW1lID09PSBcInRleHRhcmVhXCIgKSB7XG5cdFx0ZGVzdC5kZWZhdWx0VmFsdWUgPSBzcmMuZGVmYXVsdFZhbHVlO1xuXHR9XG59XG5cbmpRdWVyeS5leHRlbmQoe1xuXHRjbG9uZTogZnVuY3Rpb24oIGVsZW0sIGRhdGFBbmRFdmVudHMsIGRlZXBEYXRhQW5kRXZlbnRzICkge1xuXHRcdHZhciBpLCBsLCBzcmNFbGVtZW50cywgZGVzdEVsZW1lbnRzLFxuXHRcdFx0Y2xvbmUgPSBlbGVtLmNsb25lTm9kZSggdHJ1ZSApLFxuXHRcdFx0aW5QYWdlID0galF1ZXJ5LmNvbnRhaW5zKCBlbGVtLm93bmVyRG9jdW1lbnQsIGVsZW0gKTtcblxuXHRcdC8vIEZpeCBJRSBjbG9uaW5nIGlzc3Vlc1xuXHRcdGlmICggIXN1cHBvcnQubm9DbG9uZUNoZWNrZWQgJiYgKCBlbGVtLm5vZGVUeXBlID09PSAxIHx8IGVsZW0ubm9kZVR5cGUgPT09IDExICkgJiZcblx0XHRcdFx0IWpRdWVyeS5pc1hNTERvYyggZWxlbSApICkge1xuXG5cdFx0XHQvLyBXZSBlc2NoZXcgU2l6emxlIGhlcmUgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnM6IGh0dHA6Ly9qc3BlcmYuY29tL2dldGFsbC12cy1zaXp6bGUvMlxuXHRcdFx0ZGVzdEVsZW1lbnRzID0gZ2V0QWxsKCBjbG9uZSApO1xuXHRcdFx0c3JjRWxlbWVudHMgPSBnZXRBbGwoIGVsZW0gKTtcblxuXHRcdFx0Zm9yICggaSA9IDAsIGwgPSBzcmNFbGVtZW50cy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRcdGZpeElucHV0KCBzcmNFbGVtZW50c1sgaSBdLCBkZXN0RWxlbWVudHNbIGkgXSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENvcHkgdGhlIGV2ZW50cyBmcm9tIHRoZSBvcmlnaW5hbCB0byB0aGUgY2xvbmVcblx0XHRpZiAoIGRhdGFBbmRFdmVudHMgKSB7XG5cdFx0XHRpZiAoIGRlZXBEYXRhQW5kRXZlbnRzICkge1xuXHRcdFx0XHRzcmNFbGVtZW50cyA9IHNyY0VsZW1lbnRzIHx8IGdldEFsbCggZWxlbSApO1xuXHRcdFx0XHRkZXN0RWxlbWVudHMgPSBkZXN0RWxlbWVudHMgfHwgZ2V0QWxsKCBjbG9uZSApO1xuXG5cdFx0XHRcdGZvciAoIGkgPSAwLCBsID0gc3JjRWxlbWVudHMubGVuZ3RoOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRcdGNsb25lQ29weUV2ZW50KCBzcmNFbGVtZW50c1sgaSBdLCBkZXN0RWxlbWVudHNbIGkgXSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjbG9uZUNvcHlFdmVudCggZWxlbSwgY2xvbmUgKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBQcmVzZXJ2ZSBzY3JpcHQgZXZhbHVhdGlvbiBoaXN0b3J5XG5cdFx0ZGVzdEVsZW1lbnRzID0gZ2V0QWxsKCBjbG9uZSwgXCJzY3JpcHRcIiApO1xuXHRcdGlmICggZGVzdEVsZW1lbnRzLmxlbmd0aCA+IDAgKSB7XG5cdFx0XHRzZXRHbG9iYWxFdmFsKCBkZXN0RWxlbWVudHMsICFpblBhZ2UgJiYgZ2V0QWxsKCBlbGVtLCBcInNjcmlwdFwiICkgKTtcblx0XHR9XG5cblx0XHQvLyBSZXR1cm4gdGhlIGNsb25lZCBzZXRcblx0XHRyZXR1cm4gY2xvbmU7XG5cdH0sXG5cblx0YnVpbGRGcmFnbWVudDogZnVuY3Rpb24oIGVsZW1zLCBjb250ZXh0LCBzY3JpcHRzLCBzZWxlY3Rpb24gKSB7XG5cdFx0dmFyIGVsZW0sIHRtcCwgdGFnLCB3cmFwLCBjb250YWlucywgaixcblx0XHRcdGZyYWdtZW50ID0gY29udGV4dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksXG5cdFx0XHRub2RlcyA9IFtdLFxuXHRcdFx0aSA9IDAsXG5cdFx0XHRsID0gZWxlbXMubGVuZ3RoO1xuXG5cdFx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0ZWxlbSA9IGVsZW1zWyBpIF07XG5cblx0XHRcdGlmICggZWxlbSB8fCBlbGVtID09PSAwICkge1xuXG5cdFx0XHRcdC8vIEFkZCBub2RlcyBkaXJlY3RseVxuXHRcdFx0XHRpZiAoIGpRdWVyeS50eXBlKCBlbGVtICkgPT09IFwib2JqZWN0XCIgKSB7XG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogUXRXZWJLaXQsIFBoYW50b21KU1xuXHRcdFx0XHRcdC8vIHB1c2guYXBwbHkoXywgYXJyYXlsaWtlKSB0aHJvd3Mgb24gYW5jaWVudCBXZWJLaXRcblx0XHRcdFx0XHRqUXVlcnkubWVyZ2UoIG5vZGVzLCBlbGVtLm5vZGVUeXBlID8gWyBlbGVtIF0gOiBlbGVtICk7XG5cblx0XHRcdFx0Ly8gQ29udmVydCBub24taHRtbCBpbnRvIGEgdGV4dCBub2RlXG5cdFx0XHRcdH0gZWxzZSBpZiAoICFyaHRtbC50ZXN0KCBlbGVtICkgKSB7XG5cdFx0XHRcdFx0bm9kZXMucHVzaCggY29udGV4dC5jcmVhdGVUZXh0Tm9kZSggZWxlbSApICk7XG5cblx0XHRcdFx0Ly8gQ29udmVydCBodG1sIGludG8gRE9NIG5vZGVzXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dG1wID0gdG1wIHx8IGZyYWdtZW50LmFwcGVuZENoaWxkKCBjb250ZXh0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikgKTtcblxuXHRcdFx0XHRcdC8vIERlc2VyaWFsaXplIGEgc3RhbmRhcmQgcmVwcmVzZW50YXRpb25cblx0XHRcdFx0XHR0YWcgPSAoIHJ0YWdOYW1lLmV4ZWMoIGVsZW0gKSB8fCBbIFwiXCIsIFwiXCIgXSApWyAxIF0udG9Mb3dlckNhc2UoKTtcblx0XHRcdFx0XHR3cmFwID0gd3JhcE1hcFsgdGFnIF0gfHwgd3JhcE1hcC5fZGVmYXVsdDtcblx0XHRcdFx0XHR0bXAuaW5uZXJIVE1MID0gd3JhcFsgMSBdICsgZWxlbS5yZXBsYWNlKCByeGh0bWxUYWcsIFwiPCQxPjwvJDI+XCIgKSArIHdyYXBbIDIgXTtcblxuXHRcdFx0XHRcdC8vIERlc2NlbmQgdGhyb3VnaCB3cmFwcGVycyB0byB0aGUgcmlnaHQgY29udGVudFxuXHRcdFx0XHRcdGogPSB3cmFwWyAwIF07XG5cdFx0XHRcdFx0d2hpbGUgKCBqLS0gKSB7XG5cdFx0XHRcdFx0XHR0bXAgPSB0bXAubGFzdENoaWxkO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIFN1cHBvcnQ6IFF0V2ViS2l0LCBQaGFudG9tSlNcblx0XHRcdFx0XHQvLyBwdXNoLmFwcGx5KF8sIGFycmF5bGlrZSkgdGhyb3dzIG9uIGFuY2llbnQgV2ViS2l0XG5cdFx0XHRcdFx0alF1ZXJ5Lm1lcmdlKCBub2RlcywgdG1wLmNoaWxkTm9kZXMgKTtcblxuXHRcdFx0XHRcdC8vIFJlbWVtYmVyIHRoZSB0b3AtbGV2ZWwgY29udGFpbmVyXG5cdFx0XHRcdFx0dG1wID0gZnJhZ21lbnQuZmlyc3RDaGlsZDtcblxuXHRcdFx0XHRcdC8vIEVuc3VyZSB0aGUgY3JlYXRlZCBub2RlcyBhcmUgb3JwaGFuZWQgKCMxMjM5Milcblx0XHRcdFx0XHR0bXAudGV4dENvbnRlbnQgPSBcIlwiO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gUmVtb3ZlIHdyYXBwZXIgZnJvbSBmcmFnbWVudFxuXHRcdGZyYWdtZW50LnRleHRDb250ZW50ID0gXCJcIjtcblxuXHRcdGkgPSAwO1xuXHRcdHdoaWxlICggKGVsZW0gPSBub2Rlc1sgaSsrIF0pICkge1xuXG5cdFx0XHQvLyAjNDA4NyAtIElmIG9yaWdpbiBhbmQgZGVzdGluYXRpb24gZWxlbWVudHMgYXJlIHRoZSBzYW1lLCBhbmQgdGhpcyBpc1xuXHRcdFx0Ly8gdGhhdCBlbGVtZW50LCBkbyBub3QgZG8gYW55dGhpbmdcblx0XHRcdGlmICggc2VsZWN0aW9uICYmIGpRdWVyeS5pbkFycmF5KCBlbGVtLCBzZWxlY3Rpb24gKSAhPT0gLTEgKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRjb250YWlucyA9IGpRdWVyeS5jb250YWlucyggZWxlbS5vd25lckRvY3VtZW50LCBlbGVtICk7XG5cblx0XHRcdC8vIEFwcGVuZCB0byBmcmFnbWVudFxuXHRcdFx0dG1wID0gZ2V0QWxsKCBmcmFnbWVudC5hcHBlbmRDaGlsZCggZWxlbSApLCBcInNjcmlwdFwiICk7XG5cblx0XHRcdC8vIFByZXNlcnZlIHNjcmlwdCBldmFsdWF0aW9uIGhpc3Rvcnlcblx0XHRcdGlmICggY29udGFpbnMgKSB7XG5cdFx0XHRcdHNldEdsb2JhbEV2YWwoIHRtcCApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDYXB0dXJlIGV4ZWN1dGFibGVzXG5cdFx0XHRpZiAoIHNjcmlwdHMgKSB7XG5cdFx0XHRcdGogPSAwO1xuXHRcdFx0XHR3aGlsZSAoIChlbGVtID0gdG1wWyBqKysgXSkgKSB7XG5cdFx0XHRcdFx0aWYgKCByc2NyaXB0VHlwZS50ZXN0KCBlbGVtLnR5cGUgfHwgXCJcIiApICkge1xuXHRcdFx0XHRcdFx0c2NyaXB0cy5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZyYWdtZW50O1xuXHR9LFxuXG5cdGNsZWFuRGF0YTogZnVuY3Rpb24oIGVsZW1zICkge1xuXHRcdHZhciBkYXRhLCBlbGVtLCB0eXBlLCBrZXksXG5cdFx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWwsXG5cdFx0XHRpID0gMDtcblxuXHRcdGZvciAoIDsgKGVsZW0gPSBlbGVtc1sgaSBdKSAhPT0gdW5kZWZpbmVkOyBpKysgKSB7XG5cdFx0XHRpZiAoIGpRdWVyeS5hY2NlcHREYXRhKCBlbGVtICkgKSB7XG5cdFx0XHRcdGtleSA9IGVsZW1bIGRhdGFfcHJpdi5leHBhbmRvIF07XG5cblx0XHRcdFx0aWYgKCBrZXkgJiYgKGRhdGEgPSBkYXRhX3ByaXYuY2FjaGVbIGtleSBdKSApIHtcblx0XHRcdFx0XHRpZiAoIGRhdGEuZXZlbnRzICkge1xuXHRcdFx0XHRcdFx0Zm9yICggdHlwZSBpbiBkYXRhLmV2ZW50cyApIHtcblx0XHRcdFx0XHRcdFx0aWYgKCBzcGVjaWFsWyB0eXBlIF0gKSB7XG5cdFx0XHRcdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LnJlbW92ZSggZWxlbSwgdHlwZSApO1xuXG5cdFx0XHRcdFx0XHRcdC8vIFRoaXMgaXMgYSBzaG9ydGN1dCB0byBhdm9pZCBqUXVlcnkuZXZlbnQucmVtb3ZlJ3Mgb3ZlcmhlYWRcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkucmVtb3ZlRXZlbnQoIGVsZW0sIHR5cGUsIGRhdGEuaGFuZGxlICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKCBkYXRhX3ByaXYuY2FjaGVbIGtleSBdICkge1xuXHRcdFx0XHRcdFx0Ly8gRGlzY2FyZCBhbnkgcmVtYWluaW5nIGBwcml2YXRlYCBkYXRhXG5cdFx0XHRcdFx0XHRkZWxldGUgZGF0YV9wcml2LmNhY2hlWyBrZXkgXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC8vIERpc2NhcmQgYW55IHJlbWFpbmluZyBgdXNlcmAgZGF0YVxuXHRcdFx0ZGVsZXRlIGRhdGFfdXNlci5jYWNoZVsgZWxlbVsgZGF0YV91c2VyLmV4cGFuZG8gXSBdO1xuXHRcdH1cblx0fVxufSk7XG5cbmpRdWVyeS5mbi5leHRlbmQoe1xuXHR0ZXh0OiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdFx0cmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgP1xuXHRcdFx0XHRqUXVlcnkudGV4dCggdGhpcyApIDpcblx0XHRcdFx0dGhpcy5lbXB0eSgpLmVhY2goZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0aWYgKCB0aGlzLm5vZGVUeXBlID09PSAxIHx8IHRoaXMubm9kZVR5cGUgPT09IDExIHx8IHRoaXMubm9kZVR5cGUgPT09IDkgKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnRleHRDb250ZW50ID0gdmFsdWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHR9LCBudWxsLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCApO1xuXHR9LFxuXG5cdGFwcGVuZDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMuZG9tTWFuaXAoIGFyZ3VtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRpZiAoIHRoaXMubm9kZVR5cGUgPT09IDEgfHwgdGhpcy5ub2RlVHlwZSA9PT0gMTEgfHwgdGhpcy5ub2RlVHlwZSA9PT0gOSApIHtcblx0XHRcdFx0dmFyIHRhcmdldCA9IG1hbmlwdWxhdGlvblRhcmdldCggdGhpcywgZWxlbSApO1xuXHRcdFx0XHR0YXJnZXQuYXBwZW5kQ2hpbGQoIGVsZW0gKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fSxcblxuXHRwcmVwZW5kOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5kb21NYW5pcCggYXJndW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdGlmICggdGhpcy5ub2RlVHlwZSA9PT0gMSB8fCB0aGlzLm5vZGVUeXBlID09PSAxMSB8fCB0aGlzLm5vZGVUeXBlID09PSA5ICkge1xuXHRcdFx0XHR2YXIgdGFyZ2V0ID0gbWFuaXB1bGF0aW9uVGFyZ2V0KCB0aGlzLCBlbGVtICk7XG5cdFx0XHRcdHRhcmdldC5pbnNlcnRCZWZvcmUoIGVsZW0sIHRhcmdldC5maXJzdENoaWxkICk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0sXG5cblx0YmVmb3JlOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5kb21NYW5pcCggYXJndW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdGlmICggdGhpcy5wYXJlbnROb2RlICkge1xuXHRcdFx0XHR0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKCBlbGVtLCB0aGlzICk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0sXG5cblx0YWZ0ZXI6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLmRvbU1hbmlwKCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0aWYgKCB0aGlzLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdHRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoIGVsZW0sIHRoaXMubmV4dFNpYmxpbmcgKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fSxcblxuXHRyZW1vdmU6IGZ1bmN0aW9uKCBzZWxlY3Rvciwga2VlcERhdGEgLyogSW50ZXJuYWwgVXNlIE9ubHkgKi8gKSB7XG5cdFx0dmFyIGVsZW0sXG5cdFx0XHRlbGVtcyA9IHNlbGVjdG9yID8galF1ZXJ5LmZpbHRlciggc2VsZWN0b3IsIHRoaXMgKSA6IHRoaXMsXG5cdFx0XHRpID0gMDtcblxuXHRcdGZvciAoIDsgKGVsZW0gPSBlbGVtc1tpXSkgIT0gbnVsbDsgaSsrICkge1xuXHRcdFx0aWYgKCAha2VlcERhdGEgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRcdFx0alF1ZXJ5LmNsZWFuRGF0YSggZ2V0QWxsKCBlbGVtICkgKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBlbGVtLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdGlmICgga2VlcERhdGEgJiYgalF1ZXJ5LmNvbnRhaW5zKCBlbGVtLm93bmVyRG9jdW1lbnQsIGVsZW0gKSApIHtcblx0XHRcdFx0XHRzZXRHbG9iYWxFdmFsKCBnZXRBbGwoIGVsZW0sIFwic2NyaXB0XCIgKSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsZW0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggZWxlbSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzO1xuXHR9LFxuXG5cdGVtcHR5OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgZWxlbSxcblx0XHRcdGkgPSAwO1xuXG5cdFx0Zm9yICggOyAoZWxlbSA9IHRoaXNbaV0pICE9IG51bGw7IGkrKyApIHtcblx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblxuXHRcdFx0XHQvLyBQcmV2ZW50IG1lbW9yeSBsZWFrc1xuXHRcdFx0XHRqUXVlcnkuY2xlYW5EYXRhKCBnZXRBbGwoIGVsZW0sIGZhbHNlICkgKTtcblxuXHRcdFx0XHQvLyBSZW1vdmUgYW55IHJlbWFpbmluZyBub2Rlc1xuXHRcdFx0XHRlbGVtLnRleHRDb250ZW50ID0gXCJcIjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcztcblx0fSxcblxuXHRjbG9uZTogZnVuY3Rpb24oIGRhdGFBbmRFdmVudHMsIGRlZXBEYXRhQW5kRXZlbnRzICkge1xuXHRcdGRhdGFBbmRFdmVudHMgPSBkYXRhQW5kRXZlbnRzID09IG51bGwgPyBmYWxzZSA6IGRhdGFBbmRFdmVudHM7XG5cdFx0ZGVlcERhdGFBbmRFdmVudHMgPSBkZWVwRGF0YUFuZEV2ZW50cyA9PSBudWxsID8gZGF0YUFuZEV2ZW50cyA6IGRlZXBEYXRhQW5kRXZlbnRzO1xuXG5cdFx0cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5jbG9uZSggdGhpcywgZGF0YUFuZEV2ZW50cywgZGVlcERhdGFBbmRFdmVudHMgKTtcblx0XHR9KTtcblx0fSxcblxuXHRodG1sOiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdFx0dmFyIGVsZW0gPSB0aGlzWyAwIF0gfHwge30sXG5cdFx0XHRcdGkgPSAwLFxuXHRcdFx0XHRsID0gdGhpcy5sZW5ndGg7XG5cblx0XHRcdGlmICggdmFsdWUgPT09IHVuZGVmaW5lZCAmJiBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXHRcdFx0XHRyZXR1cm4gZWxlbS5pbm5lckhUTUw7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNlZSBpZiB3ZSBjYW4gdGFrZSBhIHNob3J0Y3V0IGFuZCBqdXN0IHVzZSBpbm5lckhUTUxcblx0XHRcdGlmICggdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmICFybm9Jbm5lcmh0bWwudGVzdCggdmFsdWUgKSAmJlxuXHRcdFx0XHQhd3JhcE1hcFsgKCBydGFnTmFtZS5leGVjKCB2YWx1ZSApIHx8IFsgXCJcIiwgXCJcIiBdIClbIDEgXS50b0xvd2VyQ2FzZSgpIF0gKSB7XG5cblx0XHRcdFx0dmFsdWUgPSB2YWx1ZS5yZXBsYWNlKCByeGh0bWxUYWcsIFwiPCQxPjwvJDI+XCIgKTtcblxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGZvciAoIDsgaSA8IGw7IGkrKyApIHtcblx0XHRcdFx0XHRcdGVsZW0gPSB0aGlzWyBpIF0gfHwge307XG5cblx0XHRcdFx0XHRcdC8vIFJlbW92ZSBlbGVtZW50IG5vZGVzIGFuZCBwcmV2ZW50IG1lbW9yeSBsZWFrc1xuXHRcdFx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXHRcdFx0XHRcdFx0XHRqUXVlcnkuY2xlYW5EYXRhKCBnZXRBbGwoIGVsZW0sIGZhbHNlICkgKTtcblx0XHRcdFx0XHRcdFx0ZWxlbS5pbm5lckhUTUwgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRlbGVtID0gMDtcblxuXHRcdFx0XHQvLyBJZiB1c2luZyBpbm5lckhUTUwgdGhyb3dzIGFuIGV4Y2VwdGlvbiwgdXNlIHRoZSBmYWxsYmFjayBtZXRob2Rcblx0XHRcdFx0fSBjYXRjaCggZSApIHt9XG5cdFx0XHR9XG5cblx0XHRcdGlmICggZWxlbSApIHtcblx0XHRcdFx0dGhpcy5lbXB0eSgpLmFwcGVuZCggdmFsdWUgKTtcblx0XHRcdH1cblx0XHR9LCBudWxsLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCApO1xuXHR9LFxuXG5cdHJlcGxhY2VXaXRoOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgYXJnID0gYXJndW1lbnRzWyAwIF07XG5cblx0XHQvLyBNYWtlIHRoZSBjaGFuZ2VzLCByZXBsYWNpbmcgZWFjaCBjb250ZXh0IGVsZW1lbnQgd2l0aCB0aGUgbmV3IGNvbnRlbnRcblx0XHR0aGlzLmRvbU1hbmlwKCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0YXJnID0gdGhpcy5wYXJlbnROb2RlO1xuXG5cdFx0XHRqUXVlcnkuY2xlYW5EYXRhKCBnZXRBbGwoIHRoaXMgKSApO1xuXG5cdFx0XHRpZiAoIGFyZyApIHtcblx0XHRcdFx0YXJnLnJlcGxhY2VDaGlsZCggZWxlbSwgdGhpcyApO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0Ly8gRm9yY2UgcmVtb3ZhbCBpZiB0aGVyZSB3YXMgbm8gbmV3IGNvbnRlbnQgKGUuZy4sIGZyb20gZW1wdHkgYXJndW1lbnRzKVxuXHRcdHJldHVybiBhcmcgJiYgKGFyZy5sZW5ndGggfHwgYXJnLm5vZGVUeXBlKSA/IHRoaXMgOiB0aGlzLnJlbW92ZSgpO1xuXHR9LFxuXG5cdGRldGFjaDogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHJldHVybiB0aGlzLnJlbW92ZSggc2VsZWN0b3IsIHRydWUgKTtcblx0fSxcblxuXHRkb21NYW5pcDogZnVuY3Rpb24oIGFyZ3MsIGNhbGxiYWNrICkge1xuXG5cdFx0Ly8gRmxhdHRlbiBhbnkgbmVzdGVkIGFycmF5c1xuXHRcdGFyZ3MgPSBjb25jYXQuYXBwbHkoIFtdLCBhcmdzICk7XG5cblx0XHR2YXIgZnJhZ21lbnQsIGZpcnN0LCBzY3JpcHRzLCBoYXNTY3JpcHRzLCBub2RlLCBkb2MsXG5cdFx0XHRpID0gMCxcblx0XHRcdGwgPSB0aGlzLmxlbmd0aCxcblx0XHRcdHNldCA9IHRoaXMsXG5cdFx0XHRpTm9DbG9uZSA9IGwgLSAxLFxuXHRcdFx0dmFsdWUgPSBhcmdzWyAwIF0sXG5cdFx0XHRpc0Z1bmN0aW9uID0galF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICk7XG5cblx0XHQvLyBXZSBjYW4ndCBjbG9uZU5vZGUgZnJhZ21lbnRzIHRoYXQgY29udGFpbiBjaGVja2VkLCBpbiBXZWJLaXRcblx0XHRpZiAoIGlzRnVuY3Rpb24gfHxcblx0XHRcdFx0KCBsID4gMSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiZcblx0XHRcdFx0XHQhc3VwcG9ydC5jaGVja0Nsb25lICYmIHJjaGVja2VkLnRlc3QoIHZhbHVlICkgKSApIHtcblx0XHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGluZGV4ICkge1xuXHRcdFx0XHR2YXIgc2VsZiA9IHNldC5lcSggaW5kZXggKTtcblx0XHRcdFx0aWYgKCBpc0Z1bmN0aW9uICkge1xuXHRcdFx0XHRcdGFyZ3NbIDAgXSA9IHZhbHVlLmNhbGwoIHRoaXMsIGluZGV4LCBzZWxmLmh0bWwoKSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHNlbGYuZG9tTWFuaXAoIGFyZ3MsIGNhbGxiYWNrICk7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRpZiAoIGwgKSB7XG5cdFx0XHRmcmFnbWVudCA9IGpRdWVyeS5idWlsZEZyYWdtZW50KCBhcmdzLCB0aGlzWyAwIF0ub3duZXJEb2N1bWVudCwgZmFsc2UsIHRoaXMgKTtcblx0XHRcdGZpcnN0ID0gZnJhZ21lbnQuZmlyc3RDaGlsZDtcblxuXHRcdFx0aWYgKCBmcmFnbWVudC5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMSApIHtcblx0XHRcdFx0ZnJhZ21lbnQgPSBmaXJzdDtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBmaXJzdCApIHtcblx0XHRcdFx0c2NyaXB0cyA9IGpRdWVyeS5tYXAoIGdldEFsbCggZnJhZ21lbnQsIFwic2NyaXB0XCIgKSwgZGlzYWJsZVNjcmlwdCApO1xuXHRcdFx0XHRoYXNTY3JpcHRzID0gc2NyaXB0cy5sZW5ndGg7XG5cblx0XHRcdFx0Ly8gVXNlIHRoZSBvcmlnaW5hbCBmcmFnbWVudCBmb3IgdGhlIGxhc3QgaXRlbSBpbnN0ZWFkIG9mIHRoZSBmaXJzdCBiZWNhdXNlIGl0IGNhbiBlbmQgdXBcblx0XHRcdFx0Ly8gYmVpbmcgZW1wdGllZCBpbmNvcnJlY3RseSBpbiBjZXJ0YWluIHNpdHVhdGlvbnMgKCM4MDcwKS5cblx0XHRcdFx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRcdG5vZGUgPSBmcmFnbWVudDtcblxuXHRcdFx0XHRcdGlmICggaSAhPT0gaU5vQ2xvbmUgKSB7XG5cdFx0XHRcdFx0XHRub2RlID0galF1ZXJ5LmNsb25lKCBub2RlLCB0cnVlLCB0cnVlICk7XG5cblx0XHRcdFx0XHRcdC8vIEtlZXAgcmVmZXJlbmNlcyB0byBjbG9uZWQgc2NyaXB0cyBmb3IgbGF0ZXIgcmVzdG9yYXRpb25cblx0XHRcdFx0XHRcdGlmICggaGFzU2NyaXB0cyApIHtcblx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogUXRXZWJLaXRcblx0XHRcdFx0XHRcdFx0Ly8galF1ZXJ5Lm1lcmdlIGJlY2F1c2UgcHVzaC5hcHBseShfLCBhcnJheWxpa2UpIHRocm93c1xuXHRcdFx0XHRcdFx0XHRqUXVlcnkubWVyZ2UoIHNjcmlwdHMsIGdldEFsbCggbm9kZSwgXCJzY3JpcHRcIiApICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Y2FsbGJhY2suY2FsbCggdGhpc1sgaSBdLCBub2RlLCBpICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoIGhhc1NjcmlwdHMgKSB7XG5cdFx0XHRcdFx0ZG9jID0gc2NyaXB0c1sgc2NyaXB0cy5sZW5ndGggLSAxIF0ub3duZXJEb2N1bWVudDtcblxuXHRcdFx0XHRcdC8vIFJlZW5hYmxlIHNjcmlwdHNcblx0XHRcdFx0XHRqUXVlcnkubWFwKCBzY3JpcHRzLCByZXN0b3JlU2NyaXB0ICk7XG5cblx0XHRcdFx0XHQvLyBFdmFsdWF0ZSBleGVjdXRhYmxlIHNjcmlwdHMgb24gZmlyc3QgZG9jdW1lbnQgaW5zZXJ0aW9uXG5cdFx0XHRcdFx0Zm9yICggaSA9IDA7IGkgPCBoYXNTY3JpcHRzOyBpKysgKSB7XG5cdFx0XHRcdFx0XHRub2RlID0gc2NyaXB0c1sgaSBdO1xuXHRcdFx0XHRcdFx0aWYgKCByc2NyaXB0VHlwZS50ZXN0KCBub2RlLnR5cGUgfHwgXCJcIiApICYmXG5cdFx0XHRcdFx0XHRcdCFkYXRhX3ByaXYuYWNjZXNzKCBub2RlLCBcImdsb2JhbEV2YWxcIiApICYmIGpRdWVyeS5jb250YWlucyggZG9jLCBub2RlICkgKSB7XG5cblx0XHRcdFx0XHRcdFx0aWYgKCBub2RlLnNyYyApIHtcblx0XHRcdFx0XHRcdFx0XHQvLyBPcHRpb25hbCBBSkFYIGRlcGVuZGVuY3ksIGJ1dCB3b24ndCBydW4gc2NyaXB0cyBpZiBub3QgcHJlc2VudFxuXHRcdFx0XHRcdFx0XHRcdGlmICggalF1ZXJ5Ll9ldmFsVXJsICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0alF1ZXJ5Ll9ldmFsVXJsKCBub2RlLnNyYyApO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkuZ2xvYmFsRXZhbCggbm9kZS50ZXh0Q29udGVudC5yZXBsYWNlKCByY2xlYW5TY3JpcHQsIFwiXCIgKSApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cbn0pO1xuXG5qUXVlcnkuZWFjaCh7XG5cdGFwcGVuZFRvOiBcImFwcGVuZFwiLFxuXHRwcmVwZW5kVG86IFwicHJlcGVuZFwiLFxuXHRpbnNlcnRCZWZvcmU6IFwiYmVmb3JlXCIsXG5cdGluc2VydEFmdGVyOiBcImFmdGVyXCIsXG5cdHJlcGxhY2VBbGw6IFwicmVwbGFjZVdpdGhcIlxufSwgZnVuY3Rpb24oIG5hbWUsIG9yaWdpbmFsICkge1xuXHRqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHR2YXIgZWxlbXMsXG5cdFx0XHRyZXQgPSBbXSxcblx0XHRcdGluc2VydCA9IGpRdWVyeSggc2VsZWN0b3IgKSxcblx0XHRcdGxhc3QgPSBpbnNlcnQubGVuZ3RoIC0gMSxcblx0XHRcdGkgPSAwO1xuXG5cdFx0Zm9yICggOyBpIDw9IGxhc3Q7IGkrKyApIHtcblx0XHRcdGVsZW1zID0gaSA9PT0gbGFzdCA/IHRoaXMgOiB0aGlzLmNsb25lKCB0cnVlICk7XG5cdFx0XHRqUXVlcnkoIGluc2VydFsgaSBdIClbIG9yaWdpbmFsIF0oIGVsZW1zICk7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IFF0V2ViS2l0XG5cdFx0XHQvLyAuZ2V0KCkgYmVjYXVzZSBwdXNoLmFwcGx5KF8sIGFycmF5bGlrZSkgdGhyb3dzXG5cdFx0XHRwdXNoLmFwcGx5KCByZXQsIGVsZW1zLmdldCgpICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCByZXQgKTtcblx0fTtcbn0pO1xuXG5cbnZhciBpZnJhbWUsXG5cdGVsZW1kaXNwbGF5ID0ge307XG5cbi8qKlxuICogUmV0cmlldmUgdGhlIGFjdHVhbCBkaXNwbGF5IG9mIGEgZWxlbWVudFxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgbm9kZU5hbWUgb2YgdGhlIGVsZW1lbnRcbiAqIEBwYXJhbSB7T2JqZWN0fSBkb2MgRG9jdW1lbnQgb2JqZWN0XG4gKi9cbi8vIENhbGxlZCBvbmx5IGZyb20gd2l0aGluIGRlZmF1bHREaXNwbGF5XG5mdW5jdGlvbiBhY3R1YWxEaXNwbGF5KCBuYW1lLCBkb2MgKSB7XG5cdHZhciBzdHlsZSxcblx0XHRlbGVtID0galF1ZXJ5KCBkb2MuY3JlYXRlRWxlbWVudCggbmFtZSApICkuYXBwZW5kVG8oIGRvYy5ib2R5ICksXG5cblx0XHQvLyBnZXREZWZhdWx0Q29tcHV0ZWRTdHlsZSBtaWdodCBiZSByZWxpYWJseSB1c2VkIG9ubHkgb24gYXR0YWNoZWQgZWxlbWVudFxuXHRcdGRpc3BsYXkgPSB3aW5kb3cuZ2V0RGVmYXVsdENvbXB1dGVkU3R5bGUgJiYgKCBzdHlsZSA9IHdpbmRvdy5nZXREZWZhdWx0Q29tcHV0ZWRTdHlsZSggZWxlbVsgMCBdICkgKSA/XG5cblx0XHRcdC8vIFVzZSBvZiB0aGlzIG1ldGhvZCBpcyBhIHRlbXBvcmFyeSBmaXggKG1vcmUgbGlrZSBvcHRpbWl6YXRpb24pIHVudGlsIHNvbWV0aGluZyBiZXR0ZXIgY29tZXMgYWxvbmcsXG5cdFx0XHQvLyBzaW5jZSBpdCB3YXMgcmVtb3ZlZCBmcm9tIHNwZWNpZmljYXRpb24gYW5kIHN1cHBvcnRlZCBvbmx5IGluIEZGXG5cdFx0XHRzdHlsZS5kaXNwbGF5IDogalF1ZXJ5LmNzcyggZWxlbVsgMCBdLCBcImRpc3BsYXlcIiApO1xuXG5cdC8vIFdlIGRvbid0IGhhdmUgYW55IGRhdGEgc3RvcmVkIG9uIHRoZSBlbGVtZW50LFxuXHQvLyBzbyB1c2UgXCJkZXRhY2hcIiBtZXRob2QgYXMgZmFzdCB3YXkgdG8gZ2V0IHJpZCBvZiB0aGUgZWxlbWVudFxuXHRlbGVtLmRldGFjaCgpO1xuXG5cdHJldHVybiBkaXNwbGF5O1xufVxuXG4vKipcbiAqIFRyeSB0byBkZXRlcm1pbmUgdGhlIGRlZmF1bHQgZGlzcGxheSB2YWx1ZSBvZiBhbiBlbGVtZW50XG4gKiBAcGFyYW0ge1N0cmluZ30gbm9kZU5hbWVcbiAqL1xuZnVuY3Rpb24gZGVmYXVsdERpc3BsYXkoIG5vZGVOYW1lICkge1xuXHR2YXIgZG9jID0gZG9jdW1lbnQsXG5cdFx0ZGlzcGxheSA9IGVsZW1kaXNwbGF5WyBub2RlTmFtZSBdO1xuXG5cdGlmICggIWRpc3BsYXkgKSB7XG5cdFx0ZGlzcGxheSA9IGFjdHVhbERpc3BsYXkoIG5vZGVOYW1lLCBkb2MgKTtcblxuXHRcdC8vIElmIHRoZSBzaW1wbGUgd2F5IGZhaWxzLCByZWFkIGZyb20gaW5zaWRlIGFuIGlmcmFtZVxuXHRcdGlmICggZGlzcGxheSA9PT0gXCJub25lXCIgfHwgIWRpc3BsYXkgKSB7XG5cblx0XHRcdC8vIFVzZSB0aGUgYWxyZWFkeS1jcmVhdGVkIGlmcmFtZSBpZiBwb3NzaWJsZVxuXHRcdFx0aWZyYW1lID0gKGlmcmFtZSB8fCBqUXVlcnkoIFwiPGlmcmFtZSBmcmFtZWJvcmRlcj0nMCcgd2lkdGg9JzAnIGhlaWdodD0nMCcvPlwiICkpLmFwcGVuZFRvKCBkb2MuZG9jdW1lbnRFbGVtZW50ICk7XG5cblx0XHRcdC8vIEFsd2F5cyB3cml0ZSBhIG5ldyBIVE1MIHNrZWxldG9uIHNvIFdlYmtpdCBhbmQgRmlyZWZveCBkb24ndCBjaG9rZSBvbiByZXVzZVxuXHRcdFx0ZG9jID0gaWZyYW1lWyAwIF0uY29udGVudERvY3VtZW50O1xuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRVxuXHRcdFx0ZG9jLndyaXRlKCk7XG5cdFx0XHRkb2MuY2xvc2UoKTtcblxuXHRcdFx0ZGlzcGxheSA9IGFjdHVhbERpc3BsYXkoIG5vZGVOYW1lLCBkb2MgKTtcblx0XHRcdGlmcmFtZS5kZXRhY2goKTtcblx0XHR9XG5cblx0XHQvLyBTdG9yZSB0aGUgY29ycmVjdCBkZWZhdWx0IGRpc3BsYXlcblx0XHRlbGVtZGlzcGxheVsgbm9kZU5hbWUgXSA9IGRpc3BsYXk7XG5cdH1cblxuXHRyZXR1cm4gZGlzcGxheTtcbn1cbnZhciBybWFyZ2luID0gKC9ebWFyZ2luLyk7XG5cbnZhciBybnVtbm9ucHggPSBuZXcgUmVnRXhwKCBcIl4oXCIgKyBwbnVtICsgXCIpKD8hcHgpW2EteiVdKyRcIiwgXCJpXCIgKTtcblxudmFyIGdldFN0eWxlcyA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdC8vIFN1cHBvcnQ6IElFPD0xMSssIEZpcmVmb3g8PTMwKyAoIzE1MDk4LCAjMTQxNTApXG5cdFx0Ly8gSUUgdGhyb3dzIG9uIGVsZW1lbnRzIGNyZWF0ZWQgaW4gcG9wdXBzXG5cdFx0Ly8gRkYgbWVhbndoaWxlIHRocm93cyBvbiBmcmFtZSBlbGVtZW50cyB0aHJvdWdoIFwiZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZVwiXG5cdFx0aWYgKCBlbGVtLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcub3BlbmVyICkge1xuXHRcdFx0cmV0dXJuIGVsZW0ub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKCBlbGVtLCBudWxsICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKCBlbGVtLCBudWxsICk7XG5cdH07XG5cblxuXG5mdW5jdGlvbiBjdXJDU1MoIGVsZW0sIG5hbWUsIGNvbXB1dGVkICkge1xuXHR2YXIgd2lkdGgsIG1pbldpZHRoLCBtYXhXaWR0aCwgcmV0LFxuXHRcdHN0eWxlID0gZWxlbS5zdHlsZTtcblxuXHRjb21wdXRlZCA9IGNvbXB1dGVkIHx8IGdldFN0eWxlcyggZWxlbSApO1xuXG5cdC8vIFN1cHBvcnQ6IElFOVxuXHQvLyBnZXRQcm9wZXJ0eVZhbHVlIGlzIG9ubHkgbmVlZGVkIGZvciAuY3NzKCdmaWx0ZXInKSAoIzEyNTM3KVxuXHRpZiAoIGNvbXB1dGVkICkge1xuXHRcdHJldCA9IGNvbXB1dGVkLmdldFByb3BlcnR5VmFsdWUoIG5hbWUgKSB8fCBjb21wdXRlZFsgbmFtZSBdO1xuXHR9XG5cblx0aWYgKCBjb21wdXRlZCApIHtcblxuXHRcdGlmICggcmV0ID09PSBcIlwiICYmICFqUXVlcnkuY29udGFpbnMoIGVsZW0ub3duZXJEb2N1bWVudCwgZWxlbSApICkge1xuXHRcdFx0cmV0ID0galF1ZXJ5LnN0eWxlKCBlbGVtLCBuYW1lICk7XG5cdFx0fVxuXG5cdFx0Ly8gU3VwcG9ydDogaU9TIDwgNlxuXHRcdC8vIEEgdHJpYnV0ZSB0byB0aGUgXCJhd2Vzb21lIGhhY2sgYnkgRGVhbiBFZHdhcmRzXCJcblx0XHQvLyBpT1MgPCA2IChhdCBsZWFzdCkgcmV0dXJucyBwZXJjZW50YWdlIGZvciBhIGxhcmdlciBzZXQgb2YgdmFsdWVzLCBidXQgd2lkdGggc2VlbXMgdG8gYmUgcmVsaWFibHkgcGl4ZWxzXG5cdFx0Ly8gdGhpcyBpcyBhZ2FpbnN0IHRoZSBDU1NPTSBkcmFmdCBzcGVjOiBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS8jcmVzb2x2ZWQtdmFsdWVzXG5cdFx0aWYgKCBybnVtbm9ucHgudGVzdCggcmV0ICkgJiYgcm1hcmdpbi50ZXN0KCBuYW1lICkgKSB7XG5cblx0XHRcdC8vIFJlbWVtYmVyIHRoZSBvcmlnaW5hbCB2YWx1ZXNcblx0XHRcdHdpZHRoID0gc3R5bGUud2lkdGg7XG5cdFx0XHRtaW5XaWR0aCA9IHN0eWxlLm1pbldpZHRoO1xuXHRcdFx0bWF4V2lkdGggPSBzdHlsZS5tYXhXaWR0aDtcblxuXHRcdFx0Ly8gUHV0IGluIHRoZSBuZXcgdmFsdWVzIHRvIGdldCBhIGNvbXB1dGVkIHZhbHVlIG91dFxuXHRcdFx0c3R5bGUubWluV2lkdGggPSBzdHlsZS5tYXhXaWR0aCA9IHN0eWxlLndpZHRoID0gcmV0O1xuXHRcdFx0cmV0ID0gY29tcHV0ZWQud2lkdGg7XG5cblx0XHRcdC8vIFJldmVydCB0aGUgY2hhbmdlZCB2YWx1ZXNcblx0XHRcdHN0eWxlLndpZHRoID0gd2lkdGg7XG5cdFx0XHRzdHlsZS5taW5XaWR0aCA9IG1pbldpZHRoO1xuXHRcdFx0c3R5bGUubWF4V2lkdGggPSBtYXhXaWR0aDtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gcmV0ICE9PSB1bmRlZmluZWQgP1xuXHRcdC8vIFN1cHBvcnQ6IElFXG5cdFx0Ly8gSUUgcmV0dXJucyB6SW5kZXggdmFsdWUgYXMgYW4gaW50ZWdlci5cblx0XHRyZXQgKyBcIlwiIDpcblx0XHRyZXQ7XG59XG5cblxuZnVuY3Rpb24gYWRkR2V0SG9va0lmKCBjb25kaXRpb25GbiwgaG9va0ZuICkge1xuXHQvLyBEZWZpbmUgdGhlIGhvb2ssIHdlJ2xsIGNoZWNrIG9uIHRoZSBmaXJzdCBydW4gaWYgaXQncyByZWFsbHkgbmVlZGVkLlxuXHRyZXR1cm4ge1xuXHRcdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0XHRpZiAoIGNvbmRpdGlvbkZuKCkgKSB7XG5cdFx0XHRcdC8vIEhvb2sgbm90IG5lZWRlZCAob3IgaXQncyBub3QgcG9zc2libGUgdG8gdXNlIGl0IGR1ZVxuXHRcdFx0XHQvLyB0byBtaXNzaW5nIGRlcGVuZGVuY3kpLCByZW1vdmUgaXQuXG5cdFx0XHRcdGRlbGV0ZSB0aGlzLmdldDtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBIb29rIG5lZWRlZDsgcmVkZWZpbmUgaXQgc28gdGhhdCB0aGUgc3VwcG9ydCB0ZXN0IGlzIG5vdCBleGVjdXRlZCBhZ2Fpbi5cblx0XHRcdHJldHVybiAodGhpcy5nZXQgPSBob29rRm4pLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTtcblx0XHR9XG5cdH07XG59XG5cblxuKGZ1bmN0aW9uKCkge1xuXHR2YXIgcGl4ZWxQb3NpdGlvblZhbCwgYm94U2l6aW5nUmVsaWFibGVWYWwsXG5cdFx0ZG9jRWxlbSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxcblx0XHRjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICksXG5cdFx0ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJkaXZcIiApO1xuXG5cdGlmICggIWRpdi5zdHlsZSApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyBTdXBwb3J0OiBJRTktMTErXG5cdC8vIFN0eWxlIG9mIGNsb25lZCBlbGVtZW50IGFmZmVjdHMgc291cmNlIGVsZW1lbnQgY2xvbmVkICgjODkwOClcblx0ZGl2LnN0eWxlLmJhY2tncm91bmRDbGlwID0gXCJjb250ZW50LWJveFwiO1xuXHRkaXYuY2xvbmVOb2RlKCB0cnVlICkuc3R5bGUuYmFja2dyb3VuZENsaXAgPSBcIlwiO1xuXHRzdXBwb3J0LmNsZWFyQ2xvbmVTdHlsZSA9IGRpdi5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCA9PT0gXCJjb250ZW50LWJveFwiO1xuXG5cdGNvbnRhaW5lci5zdHlsZS5jc3NUZXh0ID0gXCJib3JkZXI6MDt3aWR0aDowO2hlaWdodDowO3RvcDowO2xlZnQ6LTk5OTlweDttYXJnaW4tdG9wOjFweDtcIiArXG5cdFx0XCJwb3NpdGlvbjphYnNvbHV0ZVwiO1xuXHRjb250YWluZXIuYXBwZW5kQ2hpbGQoIGRpdiApO1xuXG5cdC8vIEV4ZWN1dGluZyBib3RoIHBpeGVsUG9zaXRpb24gJiBib3hTaXppbmdSZWxpYWJsZSB0ZXN0cyByZXF1aXJlIG9ubHkgb25lIGxheW91dFxuXHQvLyBzbyB0aGV5J3JlIGV4ZWN1dGVkIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSB0aGUgc2Vjb25kIGNvbXB1dGF0aW9uLlxuXHRmdW5jdGlvbiBjb21wdXRlUGl4ZWxQb3NpdGlvbkFuZEJveFNpemluZ1JlbGlhYmxlKCkge1xuXHRcdGRpdi5zdHlsZS5jc3NUZXh0ID1cblx0XHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3g8MjksIEFuZHJvaWQgMi4zXG5cdFx0XHQvLyBWZW5kb3ItcHJlZml4IGJveC1zaXppbmdcblx0XHRcdFwiLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7XCIgK1xuXHRcdFx0XCJib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjElO3RvcDoxJTtcIiArXG5cdFx0XHRcImJvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NHB4O3Bvc2l0aW9uOmFic29sdXRlXCI7XG5cdFx0ZGl2LmlubmVySFRNTCA9IFwiXCI7XG5cdFx0ZG9jRWxlbS5hcHBlbmRDaGlsZCggY29udGFpbmVyICk7XG5cblx0XHR2YXIgZGl2U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSggZGl2LCBudWxsICk7XG5cdFx0cGl4ZWxQb3NpdGlvblZhbCA9IGRpdlN0eWxlLnRvcCAhPT0gXCIxJVwiO1xuXHRcdGJveFNpemluZ1JlbGlhYmxlVmFsID0gZGl2U3R5bGUud2lkdGggPT09IFwiNHB4XCI7XG5cblx0XHRkb2NFbGVtLnJlbW92ZUNoaWxkKCBjb250YWluZXIgKTtcblx0fVxuXG5cdC8vIFN1cHBvcnQ6IG5vZGUuanMganNkb21cblx0Ly8gRG9uJ3QgYXNzdW1lIHRoYXQgZ2V0Q29tcHV0ZWRTdHlsZSBpcyBhIHByb3BlcnR5IG9mIHRoZSBnbG9iYWwgb2JqZWN0XG5cdGlmICggd2luZG93LmdldENvbXB1dGVkU3R5bGUgKSB7XG5cdFx0alF1ZXJ5LmV4dGVuZCggc3VwcG9ydCwge1xuXHRcdFx0cGl4ZWxQb3NpdGlvbjogZnVuY3Rpb24oKSB7XG5cblx0XHRcdFx0Ly8gVGhpcyB0ZXN0IGlzIGV4ZWN1dGVkIG9ubHkgb25jZSBidXQgd2Ugc3RpbGwgZG8gbWVtb2l6aW5nXG5cdFx0XHRcdC8vIHNpbmNlIHdlIGNhbiB1c2UgdGhlIGJveFNpemluZ1JlbGlhYmxlIHByZS1jb21wdXRpbmcuXG5cdFx0XHRcdC8vIE5vIG5lZWQgdG8gY2hlY2sgaWYgdGhlIHRlc3Qgd2FzIGFscmVhZHkgcGVyZm9ybWVkLCB0aG91Z2guXG5cdFx0XHRcdGNvbXB1dGVQaXhlbFBvc2l0aW9uQW5kQm94U2l6aW5nUmVsaWFibGUoKTtcblx0XHRcdFx0cmV0dXJuIHBpeGVsUG9zaXRpb25WYWw7XG5cdFx0XHR9LFxuXHRcdFx0Ym94U2l6aW5nUmVsaWFibGU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoIGJveFNpemluZ1JlbGlhYmxlVmFsID09IG51bGwgKSB7XG5cdFx0XHRcdFx0Y29tcHV0ZVBpeGVsUG9zaXRpb25BbmRCb3hTaXppbmdSZWxpYWJsZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBib3hTaXppbmdSZWxpYWJsZVZhbDtcblx0XHRcdH0sXG5cdFx0XHRyZWxpYWJsZU1hcmdpblJpZ2h0OiBmdW5jdGlvbigpIHtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDIuM1xuXHRcdFx0XHQvLyBDaGVjayBpZiBkaXYgd2l0aCBleHBsaWNpdCB3aWR0aCBhbmQgbm8gbWFyZ2luLXJpZ2h0IGluY29ycmVjdGx5XG5cdFx0XHRcdC8vIGdldHMgY29tcHV0ZWQgbWFyZ2luLXJpZ2h0IGJhc2VkIG9uIHdpZHRoIG9mIGNvbnRhaW5lci4gKCMzMzMzKVxuXHRcdFx0XHQvLyBXZWJLaXQgQnVnIDEzMzQzIC0gZ2V0Q29tcHV0ZWRTdHlsZSByZXR1cm5zIHdyb25nIHZhbHVlIGZvciBtYXJnaW4tcmlnaHRcblx0XHRcdFx0Ly8gVGhpcyBzdXBwb3J0IGZ1bmN0aW9uIGlzIG9ubHkgZXhlY3V0ZWQgb25jZSBzbyBubyBtZW1vaXppbmcgaXMgbmVlZGVkLlxuXHRcdFx0XHR2YXIgcmV0LFxuXHRcdFx0XHRcdG1hcmdpbkRpdiA9IGRpdi5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJkaXZcIiApICk7XG5cblx0XHRcdFx0Ly8gUmVzZXQgQ1NTOiBib3gtc2l6aW5nOyBkaXNwbGF5OyBtYXJnaW47IGJvcmRlcjsgcGFkZGluZ1xuXHRcdFx0XHRtYXJnaW5EaXYuc3R5bGUuY3NzVGV4dCA9IGRpdi5zdHlsZS5jc3NUZXh0ID1cblx0XHRcdFx0XHQvLyBTdXBwb3J0OiBGaXJlZm94PDI5LCBBbmRyb2lkIDIuM1xuXHRcdFx0XHRcdC8vIFZlbmRvci1wcmVmaXggYm94LXNpemluZ1xuXHRcdFx0XHRcdFwiLXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtcIiArXG5cdFx0XHRcdFx0XCJib3gtc2l6aW5nOmNvbnRlbnQtYm94O2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzowXCI7XG5cdFx0XHRcdG1hcmdpbkRpdi5zdHlsZS5tYXJnaW5SaWdodCA9IG1hcmdpbkRpdi5zdHlsZS53aWR0aCA9IFwiMFwiO1xuXHRcdFx0XHRkaXYuc3R5bGUud2lkdGggPSBcIjFweFwiO1xuXHRcdFx0XHRkb2NFbGVtLmFwcGVuZENoaWxkKCBjb250YWluZXIgKTtcblxuXHRcdFx0XHRyZXQgPSAhcGFyc2VGbG9hdCggd2luZG93LmdldENvbXB1dGVkU3R5bGUoIG1hcmdpbkRpdiwgbnVsbCApLm1hcmdpblJpZ2h0ICk7XG5cblx0XHRcdFx0ZG9jRWxlbS5yZW1vdmVDaGlsZCggY29udGFpbmVyICk7XG5cdFx0XHRcdGRpdi5yZW1vdmVDaGlsZCggbWFyZ2luRGl2ICk7XG5cblx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxufSkoKTtcblxuXG4vLyBBIG1ldGhvZCBmb3IgcXVpY2tseSBzd2FwcGluZyBpbi9vdXQgQ1NTIHByb3BlcnRpZXMgdG8gZ2V0IGNvcnJlY3QgY2FsY3VsYXRpb25zLlxualF1ZXJ5LnN3YXAgPSBmdW5jdGlvbiggZWxlbSwgb3B0aW9ucywgY2FsbGJhY2ssIGFyZ3MgKSB7XG5cdHZhciByZXQsIG5hbWUsXG5cdFx0b2xkID0ge307XG5cblx0Ly8gUmVtZW1iZXIgdGhlIG9sZCB2YWx1ZXMsIGFuZCBpbnNlcnQgdGhlIG5ldyBvbmVzXG5cdGZvciAoIG5hbWUgaW4gb3B0aW9ucyApIHtcblx0XHRvbGRbIG5hbWUgXSA9IGVsZW0uc3R5bGVbIG5hbWUgXTtcblx0XHRlbGVtLnN0eWxlWyBuYW1lIF0gPSBvcHRpb25zWyBuYW1lIF07XG5cdH1cblxuXHRyZXQgPSBjYWxsYmFjay5hcHBseSggZWxlbSwgYXJncyB8fCBbXSApO1xuXG5cdC8vIFJldmVydCB0aGUgb2xkIHZhbHVlc1xuXHRmb3IgKCBuYW1lIGluIG9wdGlvbnMgKSB7XG5cdFx0ZWxlbS5zdHlsZVsgbmFtZSBdID0gb2xkWyBuYW1lIF07XG5cdH1cblxuXHRyZXR1cm4gcmV0O1xufTtcblxuXG52YXJcblx0Ly8gU3dhcHBhYmxlIGlmIGRpc3BsYXkgaXMgbm9uZSBvciBzdGFydHMgd2l0aCB0YWJsZSBleGNlcHQgXCJ0YWJsZVwiLCBcInRhYmxlLWNlbGxcIiwgb3IgXCJ0YWJsZS1jYXB0aW9uXCJcblx0Ly8gU2VlIGhlcmUgZm9yIGRpc3BsYXkgdmFsdWVzOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL0NTUy9kaXNwbGF5XG5cdHJkaXNwbGF5c3dhcCA9IC9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxcblx0cm51bXNwbGl0ID0gbmV3IFJlZ0V4cCggXCJeKFwiICsgcG51bSArIFwiKSguKikkXCIsIFwiaVwiICksXG5cdHJyZWxOdW0gPSBuZXcgUmVnRXhwKCBcIl4oWystXSk9KFwiICsgcG51bSArIFwiKVwiLCBcImlcIiApLFxuXG5cdGNzc1Nob3cgPSB7IHBvc2l0aW9uOiBcImFic29sdXRlXCIsIHZpc2liaWxpdHk6IFwiaGlkZGVuXCIsIGRpc3BsYXk6IFwiYmxvY2tcIiB9LFxuXHRjc3NOb3JtYWxUcmFuc2Zvcm0gPSB7XG5cdFx0bGV0dGVyU3BhY2luZzogXCIwXCIsXG5cdFx0Zm9udFdlaWdodDogXCI0MDBcIlxuXHR9LFxuXG5cdGNzc1ByZWZpeGVzID0gWyBcIldlYmtpdFwiLCBcIk9cIiwgXCJNb3pcIiwgXCJtc1wiIF07XG5cbi8vIFJldHVybiBhIGNzcyBwcm9wZXJ0eSBtYXBwZWQgdG8gYSBwb3RlbnRpYWxseSB2ZW5kb3IgcHJlZml4ZWQgcHJvcGVydHlcbmZ1bmN0aW9uIHZlbmRvclByb3BOYW1lKCBzdHlsZSwgbmFtZSApIHtcblxuXHQvLyBTaG9ydGN1dCBmb3IgbmFtZXMgdGhhdCBhcmUgbm90IHZlbmRvciBwcmVmaXhlZFxuXHRpZiAoIG5hbWUgaW4gc3R5bGUgKSB7XG5cdFx0cmV0dXJuIG5hbWU7XG5cdH1cblxuXHQvLyBDaGVjayBmb3IgdmVuZG9yIHByZWZpeGVkIG5hbWVzXG5cdHZhciBjYXBOYW1lID0gbmFtZVswXS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKSxcblx0XHRvcmlnTmFtZSA9IG5hbWUsXG5cdFx0aSA9IGNzc1ByZWZpeGVzLmxlbmd0aDtcblxuXHR3aGlsZSAoIGktLSApIHtcblx0XHRuYW1lID0gY3NzUHJlZml4ZXNbIGkgXSArIGNhcE5hbWU7XG5cdFx0aWYgKCBuYW1lIGluIHN0eWxlICkge1xuXHRcdFx0cmV0dXJuIG5hbWU7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIG9yaWdOYW1lO1xufVxuXG5mdW5jdGlvbiBzZXRQb3NpdGl2ZU51bWJlciggZWxlbSwgdmFsdWUsIHN1YnRyYWN0ICkge1xuXHR2YXIgbWF0Y2hlcyA9IHJudW1zcGxpdC5leGVjKCB2YWx1ZSApO1xuXHRyZXR1cm4gbWF0Y2hlcyA/XG5cdFx0Ly8gR3VhcmQgYWdhaW5zdCB1bmRlZmluZWQgXCJzdWJ0cmFjdFwiLCBlLmcuLCB3aGVuIHVzZWQgYXMgaW4gY3NzSG9va3Ncblx0XHRNYXRoLm1heCggMCwgbWF0Y2hlc1sgMSBdIC0gKCBzdWJ0cmFjdCB8fCAwICkgKSArICggbWF0Y2hlc1sgMiBdIHx8IFwicHhcIiApIDpcblx0XHR2YWx1ZTtcbn1cblxuZnVuY3Rpb24gYXVnbWVudFdpZHRoT3JIZWlnaHQoIGVsZW0sIG5hbWUsIGV4dHJhLCBpc0JvcmRlckJveCwgc3R5bGVzICkge1xuXHR2YXIgaSA9IGV4dHJhID09PSAoIGlzQm9yZGVyQm94ID8gXCJib3JkZXJcIiA6IFwiY29udGVudFwiICkgP1xuXHRcdC8vIElmIHdlIGFscmVhZHkgaGF2ZSB0aGUgcmlnaHQgbWVhc3VyZW1lbnQsIGF2b2lkIGF1Z21lbnRhdGlvblxuXHRcdDQgOlxuXHRcdC8vIE90aGVyd2lzZSBpbml0aWFsaXplIGZvciBob3Jpem9udGFsIG9yIHZlcnRpY2FsIHByb3BlcnRpZXNcblx0XHRuYW1lID09PSBcIndpZHRoXCIgPyAxIDogMCxcblxuXHRcdHZhbCA9IDA7XG5cblx0Zm9yICggOyBpIDwgNDsgaSArPSAyICkge1xuXHRcdC8vIEJvdGggYm94IG1vZGVscyBleGNsdWRlIG1hcmdpbiwgc28gYWRkIGl0IGlmIHdlIHdhbnQgaXRcblx0XHRpZiAoIGV4dHJhID09PSBcIm1hcmdpblwiICkge1xuXHRcdFx0dmFsICs9IGpRdWVyeS5jc3MoIGVsZW0sIGV4dHJhICsgY3NzRXhwYW5kWyBpIF0sIHRydWUsIHN0eWxlcyApO1xuXHRcdH1cblxuXHRcdGlmICggaXNCb3JkZXJCb3ggKSB7XG5cdFx0XHQvLyBib3JkZXItYm94IGluY2x1ZGVzIHBhZGRpbmcsIHNvIHJlbW92ZSBpdCBpZiB3ZSB3YW50IGNvbnRlbnRcblx0XHRcdGlmICggZXh0cmEgPT09IFwiY29udGVudFwiICkge1xuXHRcdFx0XHR2YWwgLT0galF1ZXJ5LmNzcyggZWxlbSwgXCJwYWRkaW5nXCIgKyBjc3NFeHBhbmRbIGkgXSwgdHJ1ZSwgc3R5bGVzICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEF0IHRoaXMgcG9pbnQsIGV4dHJhIGlzbid0IGJvcmRlciBub3IgbWFyZ2luLCBzbyByZW1vdmUgYm9yZGVyXG5cdFx0XHRpZiAoIGV4dHJhICE9PSBcIm1hcmdpblwiICkge1xuXHRcdFx0XHR2YWwgLT0galF1ZXJ5LmNzcyggZWxlbSwgXCJib3JkZXJcIiArIGNzc0V4cGFuZFsgaSBdICsgXCJXaWR0aFwiLCB0cnVlLCBzdHlsZXMgKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gQXQgdGhpcyBwb2ludCwgZXh0cmEgaXNuJ3QgY29udGVudCwgc28gYWRkIHBhZGRpbmdcblx0XHRcdHZhbCArPSBqUXVlcnkuY3NzKCBlbGVtLCBcInBhZGRpbmdcIiArIGNzc0V4cGFuZFsgaSBdLCB0cnVlLCBzdHlsZXMgKTtcblxuXHRcdFx0Ly8gQXQgdGhpcyBwb2ludCwgZXh0cmEgaXNuJ3QgY29udGVudCBub3IgcGFkZGluZywgc28gYWRkIGJvcmRlclxuXHRcdFx0aWYgKCBleHRyYSAhPT0gXCJwYWRkaW5nXCIgKSB7XG5cdFx0XHRcdHZhbCArPSBqUXVlcnkuY3NzKCBlbGVtLCBcImJvcmRlclwiICsgY3NzRXhwYW5kWyBpIF0gKyBcIldpZHRoXCIsIHRydWUsIHN0eWxlcyApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB2YWw7XG59XG5cbmZ1bmN0aW9uIGdldFdpZHRoT3JIZWlnaHQoIGVsZW0sIG5hbWUsIGV4dHJhICkge1xuXG5cdC8vIFN0YXJ0IHdpdGggb2Zmc2V0IHByb3BlcnR5LCB3aGljaCBpcyBlcXVpdmFsZW50IHRvIHRoZSBib3JkZXItYm94IHZhbHVlXG5cdHZhciB2YWx1ZUlzQm9yZGVyQm94ID0gdHJ1ZSxcblx0XHR2YWwgPSBuYW1lID09PSBcIndpZHRoXCIgPyBlbGVtLm9mZnNldFdpZHRoIDogZWxlbS5vZmZzZXRIZWlnaHQsXG5cdFx0c3R5bGVzID0gZ2V0U3R5bGVzKCBlbGVtICksXG5cdFx0aXNCb3JkZXJCb3ggPSBqUXVlcnkuY3NzKCBlbGVtLCBcImJveFNpemluZ1wiLCBmYWxzZSwgc3R5bGVzICkgPT09IFwiYm9yZGVyLWJveFwiO1xuXG5cdC8vIFNvbWUgbm9uLWh0bWwgZWxlbWVudHMgcmV0dXJuIHVuZGVmaW5lZCBmb3Igb2Zmc2V0V2lkdGgsIHNvIGNoZWNrIGZvciBudWxsL3VuZGVmaW5lZFxuXHQvLyBzdmcgLSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02NDkyODVcblx0Ly8gTWF0aE1MIC0gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkxNjY4XG5cdGlmICggdmFsIDw9IDAgfHwgdmFsID09IG51bGwgKSB7XG5cdFx0Ly8gRmFsbCBiYWNrIHRvIGNvbXB1dGVkIHRoZW4gdW5jb21wdXRlZCBjc3MgaWYgbmVjZXNzYXJ5XG5cdFx0dmFsID0gY3VyQ1NTKCBlbGVtLCBuYW1lLCBzdHlsZXMgKTtcblx0XHRpZiAoIHZhbCA8IDAgfHwgdmFsID09IG51bGwgKSB7XG5cdFx0XHR2YWwgPSBlbGVtLnN0eWxlWyBuYW1lIF07XG5cdFx0fVxuXG5cdFx0Ly8gQ29tcHV0ZWQgdW5pdCBpcyBub3QgcGl4ZWxzLiBTdG9wIGhlcmUgYW5kIHJldHVybi5cblx0XHRpZiAoIHJudW1ub25weC50ZXN0KHZhbCkgKSB7XG5cdFx0XHRyZXR1cm4gdmFsO1xuXHRcdH1cblxuXHRcdC8vIENoZWNrIGZvciBzdHlsZSBpbiBjYXNlIGEgYnJvd3NlciB3aGljaCByZXR1cm5zIHVucmVsaWFibGUgdmFsdWVzXG5cdFx0Ly8gZm9yIGdldENvbXB1dGVkU3R5bGUgc2lsZW50bHkgZmFsbHMgYmFjayB0byB0aGUgcmVsaWFibGUgZWxlbS5zdHlsZVxuXHRcdHZhbHVlSXNCb3JkZXJCb3ggPSBpc0JvcmRlckJveCAmJlxuXHRcdFx0KCBzdXBwb3J0LmJveFNpemluZ1JlbGlhYmxlKCkgfHwgdmFsID09PSBlbGVtLnN0eWxlWyBuYW1lIF0gKTtcblxuXHRcdC8vIE5vcm1hbGl6ZSBcIlwiLCBhdXRvLCBhbmQgcHJlcGFyZSBmb3IgZXh0cmFcblx0XHR2YWwgPSBwYXJzZUZsb2F0KCB2YWwgKSB8fCAwO1xuXHR9XG5cblx0Ly8gVXNlIHRoZSBhY3RpdmUgYm94LXNpemluZyBtb2RlbCB0byBhZGQvc3VidHJhY3QgaXJyZWxldmFudCBzdHlsZXNcblx0cmV0dXJuICggdmFsICtcblx0XHRhdWdtZW50V2lkdGhPckhlaWdodChcblx0XHRcdGVsZW0sXG5cdFx0XHRuYW1lLFxuXHRcdFx0ZXh0cmEgfHwgKCBpc0JvcmRlckJveCA/IFwiYm9yZGVyXCIgOiBcImNvbnRlbnRcIiApLFxuXHRcdFx0dmFsdWVJc0JvcmRlckJveCxcblx0XHRcdHN0eWxlc1xuXHRcdClcblx0KSArIFwicHhcIjtcbn1cblxuZnVuY3Rpb24gc2hvd0hpZGUoIGVsZW1lbnRzLCBzaG93ICkge1xuXHR2YXIgZGlzcGxheSwgZWxlbSwgaGlkZGVuLFxuXHRcdHZhbHVlcyA9IFtdLFxuXHRcdGluZGV4ID0gMCxcblx0XHRsZW5ndGggPSBlbGVtZW50cy5sZW5ndGg7XG5cblx0Zm9yICggOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKyApIHtcblx0XHRlbGVtID0gZWxlbWVudHNbIGluZGV4IF07XG5cdFx0aWYgKCAhZWxlbS5zdHlsZSApIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdHZhbHVlc1sgaW5kZXggXSA9IGRhdGFfcHJpdi5nZXQoIGVsZW0sIFwib2xkZGlzcGxheVwiICk7XG5cdFx0ZGlzcGxheSA9IGVsZW0uc3R5bGUuZGlzcGxheTtcblx0XHRpZiAoIHNob3cgKSB7XG5cdFx0XHQvLyBSZXNldCB0aGUgaW5saW5lIGRpc3BsYXkgb2YgdGhpcyBlbGVtZW50IHRvIGxlYXJuIGlmIGl0IGlzXG5cdFx0XHQvLyBiZWluZyBoaWRkZW4gYnkgY2FzY2FkZWQgcnVsZXMgb3Igbm90XG5cdFx0XHRpZiAoICF2YWx1ZXNbIGluZGV4IF0gJiYgZGlzcGxheSA9PT0gXCJub25lXCIgKSB7XG5cdFx0XHRcdGVsZW0uc3R5bGUuZGlzcGxheSA9IFwiXCI7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNldCBlbGVtZW50cyB3aGljaCBoYXZlIGJlZW4gb3ZlcnJpZGRlbiB3aXRoIGRpc3BsYXk6IG5vbmVcblx0XHRcdC8vIGluIGEgc3R5bGVzaGVldCB0byB3aGF0ZXZlciB0aGUgZGVmYXVsdCBicm93c2VyIHN0eWxlIGlzXG5cdFx0XHQvLyBmb3Igc3VjaCBhbiBlbGVtZW50XG5cdFx0XHRpZiAoIGVsZW0uc3R5bGUuZGlzcGxheSA9PT0gXCJcIiAmJiBpc0hpZGRlbiggZWxlbSApICkge1xuXHRcdFx0XHR2YWx1ZXNbIGluZGV4IF0gPSBkYXRhX3ByaXYuYWNjZXNzKCBlbGVtLCBcIm9sZGRpc3BsYXlcIiwgZGVmYXVsdERpc3BsYXkoZWxlbS5ub2RlTmFtZSkgKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0aGlkZGVuID0gaXNIaWRkZW4oIGVsZW0gKTtcblxuXHRcdFx0aWYgKCBkaXNwbGF5ICE9PSBcIm5vbmVcIiB8fCAhaGlkZGVuICkge1xuXHRcdFx0XHRkYXRhX3ByaXYuc2V0KCBlbGVtLCBcIm9sZGRpc3BsYXlcIiwgaGlkZGVuID8gZGlzcGxheSA6IGpRdWVyeS5jc3MoIGVsZW0sIFwiZGlzcGxheVwiICkgKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBTZXQgdGhlIGRpc3BsYXkgb2YgbW9zdCBvZiB0aGUgZWxlbWVudHMgaW4gYSBzZWNvbmQgbG9vcFxuXHQvLyB0byBhdm9pZCB0aGUgY29uc3RhbnQgcmVmbG93XG5cdGZvciAoIGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0ZWxlbSA9IGVsZW1lbnRzWyBpbmRleCBdO1xuXHRcdGlmICggIWVsZW0uc3R5bGUgKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cdFx0aWYgKCAhc2hvdyB8fCBlbGVtLnN0eWxlLmRpc3BsYXkgPT09IFwibm9uZVwiIHx8IGVsZW0uc3R5bGUuZGlzcGxheSA9PT0gXCJcIiApIHtcblx0XHRcdGVsZW0uc3R5bGUuZGlzcGxheSA9IHNob3cgPyB2YWx1ZXNbIGluZGV4IF0gfHwgXCJcIiA6IFwibm9uZVwiO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBlbGVtZW50cztcbn1cblxualF1ZXJ5LmV4dGVuZCh7XG5cblx0Ly8gQWRkIGluIHN0eWxlIHByb3BlcnR5IGhvb2tzIGZvciBvdmVycmlkaW5nIHRoZSBkZWZhdWx0XG5cdC8vIGJlaGF2aW9yIG9mIGdldHRpbmcgYW5kIHNldHRpbmcgYSBzdHlsZSBwcm9wZXJ0eVxuXHRjc3NIb29rczoge1xuXHRcdG9wYWNpdHk6IHtcblx0XHRcdGdldDogZnVuY3Rpb24oIGVsZW0sIGNvbXB1dGVkICkge1xuXHRcdFx0XHRpZiAoIGNvbXB1dGVkICkge1xuXG5cdFx0XHRcdFx0Ly8gV2Ugc2hvdWxkIGFsd2F5cyBnZXQgYSBudW1iZXIgYmFjayBmcm9tIG9wYWNpdHlcblx0XHRcdFx0XHR2YXIgcmV0ID0gY3VyQ1NTKCBlbGVtLCBcIm9wYWNpdHlcIiApO1xuXHRcdFx0XHRcdHJldHVybiByZXQgPT09IFwiXCIgPyBcIjFcIiA6IHJldDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHQvLyBEb24ndCBhdXRvbWF0aWNhbGx5IGFkZCBcInB4XCIgdG8gdGhlc2UgcG9zc2libHktdW5pdGxlc3MgcHJvcGVydGllc1xuXHRjc3NOdW1iZXI6IHtcblx0XHRcImNvbHVtbkNvdW50XCI6IHRydWUsXG5cdFx0XCJmaWxsT3BhY2l0eVwiOiB0cnVlLFxuXHRcdFwiZmxleEdyb3dcIjogdHJ1ZSxcblx0XHRcImZsZXhTaHJpbmtcIjogdHJ1ZSxcblx0XHRcImZvbnRXZWlnaHRcIjogdHJ1ZSxcblx0XHRcImxpbmVIZWlnaHRcIjogdHJ1ZSxcblx0XHRcIm9wYWNpdHlcIjogdHJ1ZSxcblx0XHRcIm9yZGVyXCI6IHRydWUsXG5cdFx0XCJvcnBoYW5zXCI6IHRydWUsXG5cdFx0XCJ3aWRvd3NcIjogdHJ1ZSxcblx0XHRcInpJbmRleFwiOiB0cnVlLFxuXHRcdFwiem9vbVwiOiB0cnVlXG5cdH0sXG5cblx0Ly8gQWRkIGluIHByb3BlcnRpZXMgd2hvc2UgbmFtZXMgeW91IHdpc2ggdG8gZml4IGJlZm9yZVxuXHQvLyBzZXR0aW5nIG9yIGdldHRpbmcgdGhlIHZhbHVlXG5cdGNzc1Byb3BzOiB7XG5cdFx0XCJmbG9hdFwiOiBcImNzc0Zsb2F0XCJcblx0fSxcblxuXHQvLyBHZXQgYW5kIHNldCB0aGUgc3R5bGUgcHJvcGVydHkgb24gYSBET00gTm9kZVxuXHRzdHlsZTogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlLCBleHRyYSApIHtcblxuXHRcdC8vIERvbid0IHNldCBzdHlsZXMgb24gdGV4dCBhbmQgY29tbWVudCBub2Rlc1xuXHRcdGlmICggIWVsZW0gfHwgZWxlbS5ub2RlVHlwZSA9PT0gMyB8fCBlbGVtLm5vZGVUeXBlID09PSA4IHx8ICFlbGVtLnN0eWxlICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIE1ha2Ugc3VyZSB0aGF0IHdlJ3JlIHdvcmtpbmcgd2l0aCB0aGUgcmlnaHQgbmFtZVxuXHRcdHZhciByZXQsIHR5cGUsIGhvb2tzLFxuXHRcdFx0b3JpZ05hbWUgPSBqUXVlcnkuY2FtZWxDYXNlKCBuYW1lICksXG5cdFx0XHRzdHlsZSA9IGVsZW0uc3R5bGU7XG5cblx0XHRuYW1lID0galF1ZXJ5LmNzc1Byb3BzWyBvcmlnTmFtZSBdIHx8ICggalF1ZXJ5LmNzc1Byb3BzWyBvcmlnTmFtZSBdID0gdmVuZG9yUHJvcE5hbWUoIHN0eWxlLCBvcmlnTmFtZSApICk7XG5cblx0XHQvLyBHZXRzIGhvb2sgZm9yIHRoZSBwcmVmaXhlZCB2ZXJzaW9uLCB0aGVuIHVucHJlZml4ZWQgdmVyc2lvblxuXHRcdGhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF0gfHwgalF1ZXJ5LmNzc0hvb2tzWyBvcmlnTmFtZSBdO1xuXG5cdFx0Ly8gQ2hlY2sgaWYgd2UncmUgc2V0dGluZyBhIHZhbHVlXG5cdFx0aWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0dHlwZSA9IHR5cGVvZiB2YWx1ZTtcblxuXHRcdFx0Ly8gQ29udmVydCBcIis9XCIgb3IgXCItPVwiIHRvIHJlbGF0aXZlIG51bWJlcnMgKCM3MzQ1KVxuXHRcdFx0aWYgKCB0eXBlID09PSBcInN0cmluZ1wiICYmIChyZXQgPSBycmVsTnVtLmV4ZWMoIHZhbHVlICkpICkge1xuXHRcdFx0XHR2YWx1ZSA9ICggcmV0WzFdICsgMSApICogcmV0WzJdICsgcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyggZWxlbSwgbmFtZSApICk7XG5cdFx0XHRcdC8vIEZpeGVzIGJ1ZyAjOTIzN1xuXHRcdFx0XHR0eXBlID0gXCJudW1iZXJcIjtcblx0XHRcdH1cblxuXHRcdFx0Ly8gTWFrZSBzdXJlIHRoYXQgbnVsbCBhbmQgTmFOIHZhbHVlcyBhcmVuJ3Qgc2V0ICgjNzExNilcblx0XHRcdGlmICggdmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSAhPT0gdmFsdWUgKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Ly8gSWYgYSBudW1iZXIsIGFkZCAncHgnIHRvIHRoZSAoZXhjZXB0IGZvciBjZXJ0YWluIENTUyBwcm9wZXJ0aWVzKVxuXHRcdFx0aWYgKCB0eXBlID09PSBcIm51bWJlclwiICYmICFqUXVlcnkuY3NzTnVtYmVyWyBvcmlnTmFtZSBdICkge1xuXHRcdFx0XHR2YWx1ZSArPSBcInB4XCI7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFOS0xMStcblx0XHRcdC8vIGJhY2tncm91bmQtKiBwcm9wcyBhZmZlY3Qgb3JpZ2luYWwgY2xvbmUncyB2YWx1ZXNcblx0XHRcdGlmICggIXN1cHBvcnQuY2xlYXJDbG9uZVN0eWxlICYmIHZhbHVlID09PSBcIlwiICYmIG5hbWUuaW5kZXhPZiggXCJiYWNrZ3JvdW5kXCIgKSA9PT0gMCApIHtcblx0XHRcdFx0c3R5bGVbIG5hbWUgXSA9IFwiaW5oZXJpdFwiO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkLCB1c2UgdGhhdCB2YWx1ZSwgb3RoZXJ3aXNlIGp1c3Qgc2V0IHRoZSBzcGVjaWZpZWQgdmFsdWVcblx0XHRcdGlmICggIWhvb2tzIHx8ICEoXCJzZXRcIiBpbiBob29rcykgfHwgKHZhbHVlID0gaG9va3Muc2V0KCBlbGVtLCB2YWx1ZSwgZXh0cmEgKSkgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0c3R5bGVbIG5hbWUgXSA9IHZhbHVlO1xuXHRcdFx0fVxuXG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIElmIGEgaG9vayB3YXMgcHJvdmlkZWQgZ2V0IHRoZSBub24tY29tcHV0ZWQgdmFsdWUgZnJvbSB0aGVyZVxuXHRcdFx0aWYgKCBob29rcyAmJiBcImdldFwiIGluIGhvb2tzICYmIChyZXQgPSBob29rcy5nZXQoIGVsZW0sIGZhbHNlLCBleHRyYSApKSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRyZXR1cm4gcmV0O1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBPdGhlcndpc2UganVzdCBnZXQgdGhlIHZhbHVlIGZyb20gdGhlIHN0eWxlIG9iamVjdFxuXHRcdFx0cmV0dXJuIHN0eWxlWyBuYW1lIF07XG5cdFx0fVxuXHR9LFxuXG5cdGNzczogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIGV4dHJhLCBzdHlsZXMgKSB7XG5cdFx0dmFyIHZhbCwgbnVtLCBob29rcyxcblx0XHRcdG9yaWdOYW1lID0galF1ZXJ5LmNhbWVsQ2FzZSggbmFtZSApO1xuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIHRoZSByaWdodCBuYW1lXG5cdFx0bmFtZSA9IGpRdWVyeS5jc3NQcm9wc1sgb3JpZ05hbWUgXSB8fCAoIGpRdWVyeS5jc3NQcm9wc1sgb3JpZ05hbWUgXSA9IHZlbmRvclByb3BOYW1lKCBlbGVtLnN0eWxlLCBvcmlnTmFtZSApICk7XG5cblx0XHQvLyBUcnkgcHJlZml4ZWQgbmFtZSBmb2xsb3dlZCBieSB0aGUgdW5wcmVmaXhlZCBuYW1lXG5cdFx0aG9va3MgPSBqUXVlcnkuY3NzSG9va3NbIG5hbWUgXSB8fCBqUXVlcnkuY3NzSG9va3NbIG9yaWdOYW1lIF07XG5cblx0XHQvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkIGdldCB0aGUgY29tcHV0ZWQgdmFsdWUgZnJvbSB0aGVyZVxuXHRcdGlmICggaG9va3MgJiYgXCJnZXRcIiBpbiBob29rcyApIHtcblx0XHRcdHZhbCA9IGhvb2tzLmdldCggZWxlbSwgdHJ1ZSwgZXh0cmEgKTtcblx0XHR9XG5cblx0XHQvLyBPdGhlcndpc2UsIGlmIGEgd2F5IHRvIGdldCB0aGUgY29tcHV0ZWQgdmFsdWUgZXhpc3RzLCB1c2UgdGhhdFxuXHRcdGlmICggdmFsID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHR2YWwgPSBjdXJDU1MoIGVsZW0sIG5hbWUsIHN0eWxlcyApO1xuXHRcdH1cblxuXHRcdC8vIENvbnZlcnQgXCJub3JtYWxcIiB0byBjb21wdXRlZCB2YWx1ZVxuXHRcdGlmICggdmFsID09PSBcIm5vcm1hbFwiICYmIG5hbWUgaW4gY3NzTm9ybWFsVHJhbnNmb3JtICkge1xuXHRcdFx0dmFsID0gY3NzTm9ybWFsVHJhbnNmb3JtWyBuYW1lIF07XG5cdFx0fVxuXG5cdFx0Ly8gTWFrZSBudW1lcmljIGlmIGZvcmNlZCBvciBhIHF1YWxpZmllciB3YXMgcHJvdmlkZWQgYW5kIHZhbCBsb29rcyBudW1lcmljXG5cdFx0aWYgKCBleHRyYSA9PT0gXCJcIiB8fCBleHRyYSApIHtcblx0XHRcdG51bSA9IHBhcnNlRmxvYXQoIHZhbCApO1xuXHRcdFx0cmV0dXJuIGV4dHJhID09PSB0cnVlIHx8IGpRdWVyeS5pc051bWVyaWMoIG51bSApID8gbnVtIHx8IDAgOiB2YWw7XG5cdFx0fVxuXHRcdHJldHVybiB2YWw7XG5cdH1cbn0pO1xuXG5qUXVlcnkuZWFjaChbIFwiaGVpZ2h0XCIsIFwid2lkdGhcIiBdLCBmdW5jdGlvbiggaSwgbmFtZSApIHtcblx0alF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF0gPSB7XG5cdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQsIGV4dHJhICkge1xuXHRcdFx0aWYgKCBjb21wdXRlZCApIHtcblxuXHRcdFx0XHQvLyBDZXJ0YWluIGVsZW1lbnRzIGNhbiBoYXZlIGRpbWVuc2lvbiBpbmZvIGlmIHdlIGludmlzaWJseSBzaG93IHRoZW1cblx0XHRcdFx0Ly8gYnV0IGl0IG11c3QgaGF2ZSBhIGN1cnJlbnQgZGlzcGxheSBzdHlsZSB0aGF0IHdvdWxkIGJlbmVmaXRcblx0XHRcdFx0cmV0dXJuIHJkaXNwbGF5c3dhcC50ZXN0KCBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiApICkgJiYgZWxlbS5vZmZzZXRXaWR0aCA9PT0gMCA/XG5cdFx0XHRcdFx0alF1ZXJ5LnN3YXAoIGVsZW0sIGNzc1Nob3csIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGdldFdpZHRoT3JIZWlnaHQoIGVsZW0sIG5hbWUsIGV4dHJhICk7XG5cdFx0XHRcdFx0fSkgOlxuXHRcdFx0XHRcdGdldFdpZHRoT3JIZWlnaHQoIGVsZW0sIG5hbWUsIGV4dHJhICk7XG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlLCBleHRyYSApIHtcblx0XHRcdHZhciBzdHlsZXMgPSBleHRyYSAmJiBnZXRTdHlsZXMoIGVsZW0gKTtcblx0XHRcdHJldHVybiBzZXRQb3NpdGl2ZU51bWJlciggZWxlbSwgdmFsdWUsIGV4dHJhID9cblx0XHRcdFx0YXVnbWVudFdpZHRoT3JIZWlnaHQoXG5cdFx0XHRcdFx0ZWxlbSxcblx0XHRcdFx0XHRuYW1lLFxuXHRcdFx0XHRcdGV4dHJhLFxuXHRcdFx0XHRcdGpRdWVyeS5jc3MoIGVsZW0sIFwiYm94U2l6aW5nXCIsIGZhbHNlLCBzdHlsZXMgKSA9PT0gXCJib3JkZXItYm94XCIsXG5cdFx0XHRcdFx0c3R5bGVzXG5cdFx0XHRcdCkgOiAwXG5cdFx0XHQpO1xuXHRcdH1cblx0fTtcbn0pO1xuXG4vLyBTdXBwb3J0OiBBbmRyb2lkIDIuM1xualF1ZXJ5LmNzc0hvb2tzLm1hcmdpblJpZ2h0ID0gYWRkR2V0SG9va0lmKCBzdXBwb3J0LnJlbGlhYmxlTWFyZ2luUmlnaHQsXG5cdGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCApIHtcblx0XHRpZiAoIGNvbXB1dGVkICkge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5zd2FwKCBlbGVtLCB7IFwiZGlzcGxheVwiOiBcImlubGluZS1ibG9ja1wiIH0sXG5cdFx0XHRcdGN1ckNTUywgWyBlbGVtLCBcIm1hcmdpblJpZ2h0XCIgXSApO1xuXHRcdH1cblx0fVxuKTtcblxuLy8gVGhlc2UgaG9va3MgYXJlIHVzZWQgYnkgYW5pbWF0ZSB0byBleHBhbmQgcHJvcGVydGllc1xualF1ZXJ5LmVhY2goe1xuXHRtYXJnaW46IFwiXCIsXG5cdHBhZGRpbmc6IFwiXCIsXG5cdGJvcmRlcjogXCJXaWR0aFwiXG59LCBmdW5jdGlvbiggcHJlZml4LCBzdWZmaXggKSB7XG5cdGpRdWVyeS5jc3NIb29rc1sgcHJlZml4ICsgc3VmZml4IF0gPSB7XG5cdFx0ZXhwYW5kOiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHR2YXIgaSA9IDAsXG5cdFx0XHRcdGV4cGFuZGVkID0ge30sXG5cblx0XHRcdFx0Ly8gQXNzdW1lcyBhIHNpbmdsZSBudW1iZXIgaWYgbm90IGEgc3RyaW5nXG5cdFx0XHRcdHBhcnRzID0gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gdmFsdWUuc3BsaXQoXCIgXCIpIDogWyB2YWx1ZSBdO1xuXG5cdFx0XHRmb3IgKCA7IGkgPCA0OyBpKysgKSB7XG5cdFx0XHRcdGV4cGFuZGVkWyBwcmVmaXggKyBjc3NFeHBhbmRbIGkgXSArIHN1ZmZpeCBdID1cblx0XHRcdFx0XHRwYXJ0c1sgaSBdIHx8IHBhcnRzWyBpIC0gMiBdIHx8IHBhcnRzWyAwIF07XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBleHBhbmRlZDtcblx0XHR9XG5cdH07XG5cblx0aWYgKCAhcm1hcmdpbi50ZXN0KCBwcmVmaXggKSApIHtcblx0XHRqUXVlcnkuY3NzSG9va3NbIHByZWZpeCArIHN1ZmZpeCBdLnNldCA9IHNldFBvc2l0aXZlTnVtYmVyO1xuXHR9XG59KTtcblxualF1ZXJ5LmZuLmV4dGVuZCh7XG5cdGNzczogZnVuY3Rpb24oIG5hbWUsIHZhbHVlICkge1xuXHRcdHJldHVybiBhY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCB2YWx1ZSApIHtcblx0XHRcdHZhciBzdHlsZXMsIGxlbixcblx0XHRcdFx0bWFwID0ge30sXG5cdFx0XHRcdGkgPSAwO1xuXG5cdFx0XHRpZiAoIGpRdWVyeS5pc0FycmF5KCBuYW1lICkgKSB7XG5cdFx0XHRcdHN0eWxlcyA9IGdldFN0eWxlcyggZWxlbSApO1xuXHRcdFx0XHRsZW4gPSBuYW1lLmxlbmd0aDtcblxuXHRcdFx0XHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdFx0XHRtYXBbIG5hbWVbIGkgXSBdID0galF1ZXJ5LmNzcyggZWxlbSwgbmFtZVsgaSBdLCBmYWxzZSwgc3R5bGVzICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gbWFwO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gdmFsdWUgIT09IHVuZGVmaW5lZCA/XG5cdFx0XHRcdGpRdWVyeS5zdHlsZSggZWxlbSwgbmFtZSwgdmFsdWUgKSA6XG5cdFx0XHRcdGpRdWVyeS5jc3MoIGVsZW0sIG5hbWUgKTtcblx0XHR9LCBuYW1lLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDEgKTtcblx0fSxcblx0c2hvdzogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHNob3dIaWRlKCB0aGlzLCB0cnVlICk7XG5cdH0sXG5cdGhpZGU6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBzaG93SGlkZSggdGhpcyApO1xuXHR9LFxuXHR0b2dnbGU6IGZ1bmN0aW9uKCBzdGF0ZSApIHtcblx0XHRpZiAoIHR5cGVvZiBzdGF0ZSA9PT0gXCJib29sZWFuXCIgKSB7XG5cdFx0XHRyZXR1cm4gc3RhdGUgPyB0aGlzLnNob3coKSA6IHRoaXMuaGlkZSgpO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XG5cdFx0XHRpZiAoIGlzSGlkZGVuKCB0aGlzICkgKSB7XG5cdFx0XHRcdGpRdWVyeSggdGhpcyApLnNob3coKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGpRdWVyeSggdGhpcyApLmhpZGUoKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxufSk7XG5cblxuZnVuY3Rpb24gVHdlZW4oIGVsZW0sIG9wdGlvbnMsIHByb3AsIGVuZCwgZWFzaW5nICkge1xuXHRyZXR1cm4gbmV3IFR3ZWVuLnByb3RvdHlwZS5pbml0KCBlbGVtLCBvcHRpb25zLCBwcm9wLCBlbmQsIGVhc2luZyApO1xufVxualF1ZXJ5LlR3ZWVuID0gVHdlZW47XG5cblR3ZWVuLnByb3RvdHlwZSA9IHtcblx0Y29uc3RydWN0b3I6IFR3ZWVuLFxuXHRpbml0OiBmdW5jdGlvbiggZWxlbSwgb3B0aW9ucywgcHJvcCwgZW5kLCBlYXNpbmcsIHVuaXQgKSB7XG5cdFx0dGhpcy5lbGVtID0gZWxlbTtcblx0XHR0aGlzLnByb3AgPSBwcm9wO1xuXHRcdHRoaXMuZWFzaW5nID0gZWFzaW5nIHx8IFwic3dpbmdcIjtcblx0XHR0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuXHRcdHRoaXMuc3RhcnQgPSB0aGlzLm5vdyA9IHRoaXMuY3VyKCk7XG5cdFx0dGhpcy5lbmQgPSBlbmQ7XG5cdFx0dGhpcy51bml0ID0gdW5pdCB8fCAoIGpRdWVyeS5jc3NOdW1iZXJbIHByb3AgXSA/IFwiXCIgOiBcInB4XCIgKTtcblx0fSxcblx0Y3VyOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgaG9va3MgPSBUd2Vlbi5wcm9wSG9va3NbIHRoaXMucHJvcCBdO1xuXG5cdFx0cmV0dXJuIGhvb2tzICYmIGhvb2tzLmdldCA/XG5cdFx0XHRob29rcy5nZXQoIHRoaXMgKSA6XG5cdFx0XHRUd2Vlbi5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KCB0aGlzICk7XG5cdH0sXG5cdHJ1bjogZnVuY3Rpb24oIHBlcmNlbnQgKSB7XG5cdFx0dmFyIGVhc2VkLFxuXHRcdFx0aG9va3MgPSBUd2Vlbi5wcm9wSG9va3NbIHRoaXMucHJvcCBdO1xuXG5cdFx0aWYgKCB0aGlzLm9wdGlvbnMuZHVyYXRpb24gKSB7XG5cdFx0XHR0aGlzLnBvcyA9IGVhc2VkID0galF1ZXJ5LmVhc2luZ1sgdGhpcy5lYXNpbmcgXShcblx0XHRcdFx0cGVyY2VudCwgdGhpcy5vcHRpb25zLmR1cmF0aW9uICogcGVyY2VudCwgMCwgMSwgdGhpcy5vcHRpb25zLmR1cmF0aW9uXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnBvcyA9IGVhc2VkID0gcGVyY2VudDtcblx0XHR9XG5cdFx0dGhpcy5ub3cgPSAoIHRoaXMuZW5kIC0gdGhpcy5zdGFydCApICogZWFzZWQgKyB0aGlzLnN0YXJ0O1xuXG5cdFx0aWYgKCB0aGlzLm9wdGlvbnMuc3RlcCApIHtcblx0XHRcdHRoaXMub3B0aW9ucy5zdGVwLmNhbGwoIHRoaXMuZWxlbSwgdGhpcy5ub3csIHRoaXMgKTtcblx0XHR9XG5cblx0XHRpZiAoIGhvb2tzICYmIGhvb2tzLnNldCApIHtcblx0XHRcdGhvb2tzLnNldCggdGhpcyApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRUd2Vlbi5wcm9wSG9va3MuX2RlZmF1bHQuc2V0KCB0aGlzICk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG59O1xuXG5Ud2Vlbi5wcm90b3R5cGUuaW5pdC5wcm90b3R5cGUgPSBUd2Vlbi5wcm90b3R5cGU7XG5cblR3ZWVuLnByb3BIb29rcyA9IHtcblx0X2RlZmF1bHQ6IHtcblx0XHRnZXQ6IGZ1bmN0aW9uKCB0d2VlbiApIHtcblx0XHRcdHZhciByZXN1bHQ7XG5cblx0XHRcdGlmICggdHdlZW4uZWxlbVsgdHdlZW4ucHJvcCBdICE9IG51bGwgJiZcblx0XHRcdFx0KCF0d2Vlbi5lbGVtLnN0eWxlIHx8IHR3ZWVuLmVsZW0uc3R5bGVbIHR3ZWVuLnByb3AgXSA9PSBudWxsKSApIHtcblx0XHRcdFx0cmV0dXJuIHR3ZWVuLmVsZW1bIHR3ZWVuLnByb3AgXTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUGFzc2luZyBhbiBlbXB0eSBzdHJpbmcgYXMgYSAzcmQgcGFyYW1ldGVyIHRvIC5jc3Mgd2lsbCBhdXRvbWF0aWNhbGx5XG5cdFx0XHQvLyBhdHRlbXB0IGEgcGFyc2VGbG9hdCBhbmQgZmFsbGJhY2sgdG8gYSBzdHJpbmcgaWYgdGhlIHBhcnNlIGZhaWxzLlxuXHRcdFx0Ly8gU2ltcGxlIHZhbHVlcyBzdWNoIGFzIFwiMTBweFwiIGFyZSBwYXJzZWQgdG8gRmxvYXQ7XG5cdFx0XHQvLyBjb21wbGV4IHZhbHVlcyBzdWNoIGFzIFwicm90YXRlKDFyYWQpXCIgYXJlIHJldHVybmVkIGFzLWlzLlxuXHRcdFx0cmVzdWx0ID0galF1ZXJ5LmNzcyggdHdlZW4uZWxlbSwgdHdlZW4ucHJvcCwgXCJcIiApO1xuXHRcdFx0Ly8gRW1wdHkgc3RyaW5ncywgbnVsbCwgdW5kZWZpbmVkIGFuZCBcImF1dG9cIiBhcmUgY29udmVydGVkIHRvIDAuXG5cdFx0XHRyZXR1cm4gIXJlc3VsdCB8fCByZXN1bHQgPT09IFwiYXV0b1wiID8gMCA6IHJlc3VsdDtcblx0XHR9LFxuXHRcdHNldDogZnVuY3Rpb24oIHR3ZWVuICkge1xuXHRcdFx0Ly8gVXNlIHN0ZXAgaG9vayBmb3IgYmFjayBjb21wYXQuXG5cdFx0XHQvLyBVc2UgY3NzSG9vayBpZiBpdHMgdGhlcmUuXG5cdFx0XHQvLyBVc2UgLnN0eWxlIGlmIGF2YWlsYWJsZSBhbmQgdXNlIHBsYWluIHByb3BlcnRpZXMgd2hlcmUgYXZhaWxhYmxlLlxuXHRcdFx0aWYgKCBqUXVlcnkuZnguc3RlcFsgdHdlZW4ucHJvcCBdICkge1xuXHRcdFx0XHRqUXVlcnkuZnguc3RlcFsgdHdlZW4ucHJvcCBdKCB0d2VlbiApO1xuXHRcdFx0fSBlbHNlIGlmICggdHdlZW4uZWxlbS5zdHlsZSAmJiAoIHR3ZWVuLmVsZW0uc3R5bGVbIGpRdWVyeS5jc3NQcm9wc1sgdHdlZW4ucHJvcCBdIF0gIT0gbnVsbCB8fCBqUXVlcnkuY3NzSG9va3NbIHR3ZWVuLnByb3AgXSApICkge1xuXHRcdFx0XHRqUXVlcnkuc3R5bGUoIHR3ZWVuLmVsZW0sIHR3ZWVuLnByb3AsIHR3ZWVuLm5vdyArIHR3ZWVuLnVuaXQgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHR3ZWVuLmVsZW1bIHR3ZWVuLnByb3AgXSA9IHR3ZWVuLm5vdztcblx0XHRcdH1cblx0XHR9XG5cdH1cbn07XG5cbi8vIFN1cHBvcnQ6IElFOVxuLy8gUGFuaWMgYmFzZWQgYXBwcm9hY2ggdG8gc2V0dGluZyB0aGluZ3Mgb24gZGlzY29ubmVjdGVkIG5vZGVzXG5Ud2Vlbi5wcm9wSG9va3Muc2Nyb2xsVG9wID0gVHdlZW4ucHJvcEhvb2tzLnNjcm9sbExlZnQgPSB7XG5cdHNldDogZnVuY3Rpb24oIHR3ZWVuICkge1xuXHRcdGlmICggdHdlZW4uZWxlbS5ub2RlVHlwZSAmJiB0d2Vlbi5lbGVtLnBhcmVudE5vZGUgKSB7XG5cdFx0XHR0d2Vlbi5lbGVtWyB0d2Vlbi5wcm9wIF0gPSB0d2Vlbi5ub3c7XG5cdFx0fVxuXHR9XG59O1xuXG5qUXVlcnkuZWFzaW5nID0ge1xuXHRsaW5lYXI6IGZ1bmN0aW9uKCBwICkge1xuXHRcdHJldHVybiBwO1xuXHR9LFxuXHRzd2luZzogZnVuY3Rpb24oIHAgKSB7XG5cdFx0cmV0dXJuIDAuNSAtIE1hdGguY29zKCBwICogTWF0aC5QSSApIC8gMjtcblx0fVxufTtcblxualF1ZXJ5LmZ4ID0gVHdlZW4ucHJvdG90eXBlLmluaXQ7XG5cbi8vIEJhY2sgQ29tcGF0IDwxLjggZXh0ZW5zaW9uIHBvaW50XG5qUXVlcnkuZnguc3RlcCA9IHt9O1xuXG5cblxuXG52YXJcblx0ZnhOb3csIHRpbWVySWQsXG5cdHJmeHR5cGVzID0gL14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLFxuXHRyZnhudW0gPSBuZXcgUmVnRXhwKCBcIl4oPzooWystXSk9fCkoXCIgKyBwbnVtICsgXCIpKFthLXolXSopJFwiLCBcImlcIiApLFxuXHRycnVuID0gL3F1ZXVlSG9va3MkLyxcblx0YW5pbWF0aW9uUHJlZmlsdGVycyA9IFsgZGVmYXVsdFByZWZpbHRlciBdLFxuXHR0d2VlbmVycyA9IHtcblx0XHRcIipcIjogWyBmdW5jdGlvbiggcHJvcCwgdmFsdWUgKSB7XG5cdFx0XHR2YXIgdHdlZW4gPSB0aGlzLmNyZWF0ZVR3ZWVuKCBwcm9wLCB2YWx1ZSApLFxuXHRcdFx0XHR0YXJnZXQgPSB0d2Vlbi5jdXIoKSxcblx0XHRcdFx0cGFydHMgPSByZnhudW0uZXhlYyggdmFsdWUgKSxcblx0XHRcdFx0dW5pdCA9IHBhcnRzICYmIHBhcnRzWyAzIF0gfHwgKCBqUXVlcnkuY3NzTnVtYmVyWyBwcm9wIF0gPyBcIlwiIDogXCJweFwiICksXG5cblx0XHRcdFx0Ly8gU3RhcnRpbmcgdmFsdWUgY29tcHV0YXRpb24gaXMgcmVxdWlyZWQgZm9yIHBvdGVudGlhbCB1bml0IG1pc21hdGNoZXNcblx0XHRcdFx0c3RhcnQgPSAoIGpRdWVyeS5jc3NOdW1iZXJbIHByb3AgXSB8fCB1bml0ICE9PSBcInB4XCIgJiYgK3RhcmdldCApICYmXG5cdFx0XHRcdFx0cmZ4bnVtLmV4ZWMoIGpRdWVyeS5jc3MoIHR3ZWVuLmVsZW0sIHByb3AgKSApLFxuXHRcdFx0XHRzY2FsZSA9IDEsXG5cdFx0XHRcdG1heEl0ZXJhdGlvbnMgPSAyMDtcblxuXHRcdFx0aWYgKCBzdGFydCAmJiBzdGFydFsgMyBdICE9PSB1bml0ICkge1xuXHRcdFx0XHQvLyBUcnVzdCB1bml0cyByZXBvcnRlZCBieSBqUXVlcnkuY3NzXG5cdFx0XHRcdHVuaXQgPSB1bml0IHx8IHN0YXJ0WyAzIF07XG5cblx0XHRcdFx0Ly8gTWFrZSBzdXJlIHdlIHVwZGF0ZSB0aGUgdHdlZW4gcHJvcGVydGllcyBsYXRlciBvblxuXHRcdFx0XHRwYXJ0cyA9IHBhcnRzIHx8IFtdO1xuXG5cdFx0XHRcdC8vIEl0ZXJhdGl2ZWx5IGFwcHJveGltYXRlIGZyb20gYSBub256ZXJvIHN0YXJ0aW5nIHBvaW50XG5cdFx0XHRcdHN0YXJ0ID0gK3RhcmdldCB8fCAxO1xuXG5cdFx0XHRcdGRvIHtcblx0XHRcdFx0XHQvLyBJZiBwcmV2aW91cyBpdGVyYXRpb24gemVyb2VkIG91dCwgZG91YmxlIHVudGlsIHdlIGdldCAqc29tZXRoaW5nKi5cblx0XHRcdFx0XHQvLyBVc2Ugc3RyaW5nIGZvciBkb3VibGluZyBzbyB3ZSBkb24ndCBhY2NpZGVudGFsbHkgc2VlIHNjYWxlIGFzIHVuY2hhbmdlZCBiZWxvd1xuXHRcdFx0XHRcdHNjYWxlID0gc2NhbGUgfHwgXCIuNVwiO1xuXG5cdFx0XHRcdFx0Ly8gQWRqdXN0IGFuZCBhcHBseVxuXHRcdFx0XHRcdHN0YXJ0ID0gc3RhcnQgLyBzY2FsZTtcblx0XHRcdFx0XHRqUXVlcnkuc3R5bGUoIHR3ZWVuLmVsZW0sIHByb3AsIHN0YXJ0ICsgdW5pdCApO1xuXG5cdFx0XHRcdC8vIFVwZGF0ZSBzY2FsZSwgdG9sZXJhdGluZyB6ZXJvIG9yIE5hTiBmcm9tIHR3ZWVuLmN1cigpLFxuXHRcdFx0XHQvLyBicmVhayB0aGUgbG9vcCBpZiBzY2FsZSBpcyB1bmNoYW5nZWQgb3IgcGVyZmVjdCwgb3IgaWYgd2UndmUganVzdCBoYWQgZW5vdWdoXG5cdFx0XHRcdH0gd2hpbGUgKCBzY2FsZSAhPT0gKHNjYWxlID0gdHdlZW4uY3VyKCkgLyB0YXJnZXQpICYmIHNjYWxlICE9PSAxICYmIC0tbWF4SXRlcmF0aW9ucyApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBVcGRhdGUgdHdlZW4gcHJvcGVydGllc1xuXHRcdFx0aWYgKCBwYXJ0cyApIHtcblx0XHRcdFx0c3RhcnQgPSB0d2Vlbi5zdGFydCA9ICtzdGFydCB8fCArdGFyZ2V0IHx8IDA7XG5cdFx0XHRcdHR3ZWVuLnVuaXQgPSB1bml0O1xuXHRcdFx0XHQvLyBJZiBhICs9Ly09IHRva2VuIHdhcyBwcm92aWRlZCwgd2UncmUgZG9pbmcgYSByZWxhdGl2ZSBhbmltYXRpb25cblx0XHRcdFx0dHdlZW4uZW5kID0gcGFydHNbIDEgXSA/XG5cdFx0XHRcdFx0c3RhcnQgKyAoIHBhcnRzWyAxIF0gKyAxICkgKiBwYXJ0c1sgMiBdIDpcblx0XHRcdFx0XHQrcGFydHNbIDIgXTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHR3ZWVuO1xuXHRcdH0gXVxuXHR9O1xuXG4vLyBBbmltYXRpb25zIGNyZWF0ZWQgc3luY2hyb25vdXNseSB3aWxsIHJ1biBzeW5jaHJvbm91c2x5XG5mdW5jdGlvbiBjcmVhdGVGeE5vdygpIHtcblx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcblx0XHRmeE5vdyA9IHVuZGVmaW5lZDtcblx0fSk7XG5cdHJldHVybiAoIGZ4Tm93ID0galF1ZXJ5Lm5vdygpICk7XG59XG5cbi8vIEdlbmVyYXRlIHBhcmFtZXRlcnMgdG8gY3JlYXRlIGEgc3RhbmRhcmQgYW5pbWF0aW9uXG5mdW5jdGlvbiBnZW5GeCggdHlwZSwgaW5jbHVkZVdpZHRoICkge1xuXHR2YXIgd2hpY2gsXG5cdFx0aSA9IDAsXG5cdFx0YXR0cnMgPSB7IGhlaWdodDogdHlwZSB9O1xuXG5cdC8vIElmIHdlIGluY2x1ZGUgd2lkdGgsIHN0ZXAgdmFsdWUgaXMgMSB0byBkbyBhbGwgY3NzRXhwYW5kIHZhbHVlcyxcblx0Ly8gb3RoZXJ3aXNlIHN0ZXAgdmFsdWUgaXMgMiB0byBza2lwIG92ZXIgTGVmdCBhbmQgUmlnaHRcblx0aW5jbHVkZVdpZHRoID0gaW5jbHVkZVdpZHRoID8gMSA6IDA7XG5cdGZvciAoIDsgaSA8IDQgOyBpICs9IDIgLSBpbmNsdWRlV2lkdGggKSB7XG5cdFx0d2hpY2ggPSBjc3NFeHBhbmRbIGkgXTtcblx0XHRhdHRyc1sgXCJtYXJnaW5cIiArIHdoaWNoIF0gPSBhdHRyc1sgXCJwYWRkaW5nXCIgKyB3aGljaCBdID0gdHlwZTtcblx0fVxuXG5cdGlmICggaW5jbHVkZVdpZHRoICkge1xuXHRcdGF0dHJzLm9wYWNpdHkgPSBhdHRycy53aWR0aCA9IHR5cGU7XG5cdH1cblxuXHRyZXR1cm4gYXR0cnM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVR3ZWVuKCB2YWx1ZSwgcHJvcCwgYW5pbWF0aW9uICkge1xuXHR2YXIgdHdlZW4sXG5cdFx0Y29sbGVjdGlvbiA9ICggdHdlZW5lcnNbIHByb3AgXSB8fCBbXSApLmNvbmNhdCggdHdlZW5lcnNbIFwiKlwiIF0gKSxcblx0XHRpbmRleCA9IDAsXG5cdFx0bGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGg7XG5cdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0aWYgKCAodHdlZW4gPSBjb2xsZWN0aW9uWyBpbmRleCBdLmNhbGwoIGFuaW1hdGlvbiwgcHJvcCwgdmFsdWUgKSkgKSB7XG5cblx0XHRcdC8vIFdlJ3JlIGRvbmUgd2l0aCB0aGlzIHByb3BlcnR5XG5cdFx0XHRyZXR1cm4gdHdlZW47XG5cdFx0fVxuXHR9XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRQcmVmaWx0ZXIoIGVsZW0sIHByb3BzLCBvcHRzICkge1xuXHQvKiBqc2hpbnQgdmFsaWR0aGlzOiB0cnVlICovXG5cdHZhciBwcm9wLCB2YWx1ZSwgdG9nZ2xlLCB0d2VlbiwgaG9va3MsIG9sZGZpcmUsIGRpc3BsYXksIGNoZWNrRGlzcGxheSxcblx0XHRhbmltID0gdGhpcyxcblx0XHRvcmlnID0ge30sXG5cdFx0c3R5bGUgPSBlbGVtLnN0eWxlLFxuXHRcdGhpZGRlbiA9IGVsZW0ubm9kZVR5cGUgJiYgaXNIaWRkZW4oIGVsZW0gKSxcblx0XHRkYXRhU2hvdyA9IGRhdGFfcHJpdi5nZXQoIGVsZW0sIFwiZnhzaG93XCIgKTtcblxuXHQvLyBIYW5kbGUgcXVldWU6IGZhbHNlIHByb21pc2VzXG5cdGlmICggIW9wdHMucXVldWUgKSB7XG5cdFx0aG9va3MgPSBqUXVlcnkuX3F1ZXVlSG9va3MoIGVsZW0sIFwiZnhcIiApO1xuXHRcdGlmICggaG9va3MudW5xdWV1ZWQgPT0gbnVsbCApIHtcblx0XHRcdGhvb2tzLnVucXVldWVkID0gMDtcblx0XHRcdG9sZGZpcmUgPSBob29rcy5lbXB0eS5maXJlO1xuXHRcdFx0aG9va3MuZW1wdHkuZmlyZSA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoICFob29rcy51bnF1ZXVlZCApIHtcblx0XHRcdFx0XHRvbGRmaXJlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0fVxuXHRcdGhvb2tzLnVucXVldWVkKys7XG5cblx0XHRhbmltLmFsd2F5cyhmdW5jdGlvbigpIHtcblx0XHRcdC8vIEVuc3VyZSB0aGUgY29tcGxldGUgaGFuZGxlciBpcyBjYWxsZWQgYmVmb3JlIHRoaXMgY29tcGxldGVzXG5cdFx0XHRhbmltLmFsd2F5cyhmdW5jdGlvbigpIHtcblx0XHRcdFx0aG9va3MudW5xdWV1ZWQtLTtcblx0XHRcdFx0aWYgKCAhalF1ZXJ5LnF1ZXVlKCBlbGVtLCBcImZ4XCIgKS5sZW5ndGggKSB7XG5cdFx0XHRcdFx0aG9va3MuZW1wdHkuZmlyZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdC8vIEhlaWdodC93aWR0aCBvdmVyZmxvdyBwYXNzXG5cdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSAmJiAoIFwiaGVpZ2h0XCIgaW4gcHJvcHMgfHwgXCJ3aWR0aFwiIGluIHByb3BzICkgKSB7XG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgbm90aGluZyBzbmVha3Mgb3V0XG5cdFx0Ly8gUmVjb3JkIGFsbCAzIG92ZXJmbG93IGF0dHJpYnV0ZXMgYmVjYXVzZSBJRTktMTAgZG8gbm90XG5cdFx0Ly8gY2hhbmdlIHRoZSBvdmVyZmxvdyBhdHRyaWJ1dGUgd2hlbiBvdmVyZmxvd1ggYW5kXG5cdFx0Ly8gb3ZlcmZsb3dZIGFyZSBzZXQgdG8gdGhlIHNhbWUgdmFsdWVcblx0XHRvcHRzLm92ZXJmbG93ID0gWyBzdHlsZS5vdmVyZmxvdywgc3R5bGUub3ZlcmZsb3dYLCBzdHlsZS5vdmVyZmxvd1kgXTtcblxuXHRcdC8vIFNldCBkaXNwbGF5IHByb3BlcnR5IHRvIGlubGluZS1ibG9jayBmb3IgaGVpZ2h0L3dpZHRoXG5cdFx0Ly8gYW5pbWF0aW9ucyBvbiBpbmxpbmUgZWxlbWVudHMgdGhhdCBhcmUgaGF2aW5nIHdpZHRoL2hlaWdodCBhbmltYXRlZFxuXHRcdGRpc3BsYXkgPSBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiApO1xuXG5cdFx0Ly8gVGVzdCBkZWZhdWx0IGRpc3BsYXkgaWYgZGlzcGxheSBpcyBjdXJyZW50bHkgXCJub25lXCJcblx0XHRjaGVja0Rpc3BsYXkgPSBkaXNwbGF5ID09PSBcIm5vbmVcIiA/XG5cdFx0XHRkYXRhX3ByaXYuZ2V0KCBlbGVtLCBcIm9sZGRpc3BsYXlcIiApIHx8IGRlZmF1bHREaXNwbGF5KCBlbGVtLm5vZGVOYW1lICkgOiBkaXNwbGF5O1xuXG5cdFx0aWYgKCBjaGVja0Rpc3BsYXkgPT09IFwiaW5saW5lXCIgJiYgalF1ZXJ5LmNzcyggZWxlbSwgXCJmbG9hdFwiICkgPT09IFwibm9uZVwiICkge1xuXHRcdFx0c3R5bGUuZGlzcGxheSA9IFwiaW5saW5lLWJsb2NrXCI7XG5cdFx0fVxuXHR9XG5cblx0aWYgKCBvcHRzLm92ZXJmbG93ICkge1xuXHRcdHN0eWxlLm92ZXJmbG93ID0gXCJoaWRkZW5cIjtcblx0XHRhbmltLmFsd2F5cyhmdW5jdGlvbigpIHtcblx0XHRcdHN0eWxlLm92ZXJmbG93ID0gb3B0cy5vdmVyZmxvd1sgMCBdO1xuXHRcdFx0c3R5bGUub3ZlcmZsb3dYID0gb3B0cy5vdmVyZmxvd1sgMSBdO1xuXHRcdFx0c3R5bGUub3ZlcmZsb3dZID0gb3B0cy5vdmVyZmxvd1sgMiBdO1xuXHRcdH0pO1xuXHR9XG5cblx0Ly8gc2hvdy9oaWRlIHBhc3Ncblx0Zm9yICggcHJvcCBpbiBwcm9wcyApIHtcblx0XHR2YWx1ZSA9IHByb3BzWyBwcm9wIF07XG5cdFx0aWYgKCByZnh0eXBlcy5leGVjKCB2YWx1ZSApICkge1xuXHRcdFx0ZGVsZXRlIHByb3BzWyBwcm9wIF07XG5cdFx0XHR0b2dnbGUgPSB0b2dnbGUgfHwgdmFsdWUgPT09IFwidG9nZ2xlXCI7XG5cdFx0XHRpZiAoIHZhbHVlID09PSAoIGhpZGRlbiA/IFwiaGlkZVwiIDogXCJzaG93XCIgKSApIHtcblxuXHRcdFx0XHQvLyBJZiB0aGVyZSBpcyBkYXRhU2hvdyBsZWZ0IG92ZXIgZnJvbSBhIHN0b3BwZWQgaGlkZSBvciBzaG93IGFuZCB3ZSBhcmUgZ29pbmcgdG8gcHJvY2VlZCB3aXRoIHNob3csIHdlIHNob3VsZCBwcmV0ZW5kIHRvIGJlIGhpZGRlblxuXHRcdFx0XHRpZiAoIHZhbHVlID09PSBcInNob3dcIiAmJiBkYXRhU2hvdyAmJiBkYXRhU2hvd1sgcHJvcCBdICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdFx0aGlkZGVuID0gdHJ1ZTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0b3JpZ1sgcHJvcCBdID0gZGF0YVNob3cgJiYgZGF0YVNob3dbIHByb3AgXSB8fCBqUXVlcnkuc3R5bGUoIGVsZW0sIHByb3AgKTtcblxuXHRcdC8vIEFueSBub24tZnggdmFsdWUgc3RvcHMgdXMgZnJvbSByZXN0b3JpbmcgdGhlIG9yaWdpbmFsIGRpc3BsYXkgdmFsdWVcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGlzcGxheSA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRpZiAoICFqUXVlcnkuaXNFbXB0eU9iamVjdCggb3JpZyApICkge1xuXHRcdGlmICggZGF0YVNob3cgKSB7XG5cdFx0XHRpZiAoIFwiaGlkZGVuXCIgaW4gZGF0YVNob3cgKSB7XG5cdFx0XHRcdGhpZGRlbiA9IGRhdGFTaG93LmhpZGRlbjtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGF0YVNob3cgPSBkYXRhX3ByaXYuYWNjZXNzKCBlbGVtLCBcImZ4c2hvd1wiLCB7fSApO1xuXHRcdH1cblxuXHRcdC8vIFN0b3JlIHN0YXRlIGlmIGl0cyB0b2dnbGUgLSBlbmFibGVzIC5zdG9wKCkudG9nZ2xlKCkgdG8gXCJyZXZlcnNlXCJcblx0XHRpZiAoIHRvZ2dsZSApIHtcblx0XHRcdGRhdGFTaG93LmhpZGRlbiA9ICFoaWRkZW47XG5cdFx0fVxuXHRcdGlmICggaGlkZGVuICkge1xuXHRcdFx0alF1ZXJ5KCBlbGVtICkuc2hvdygpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRhbmltLmRvbmUoZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGpRdWVyeSggZWxlbSApLmhpZGUoKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRhbmltLmRvbmUoZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgcHJvcDtcblxuXHRcdFx0ZGF0YV9wcml2LnJlbW92ZSggZWxlbSwgXCJmeHNob3dcIiApO1xuXHRcdFx0Zm9yICggcHJvcCBpbiBvcmlnICkge1xuXHRcdFx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIHByb3AsIG9yaWdbIHByb3AgXSApO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdGZvciAoIHByb3AgaW4gb3JpZyApIHtcblx0XHRcdHR3ZWVuID0gY3JlYXRlVHdlZW4oIGhpZGRlbiA/IGRhdGFTaG93WyBwcm9wIF0gOiAwLCBwcm9wLCBhbmltICk7XG5cblx0XHRcdGlmICggISggcHJvcCBpbiBkYXRhU2hvdyApICkge1xuXHRcdFx0XHRkYXRhU2hvd1sgcHJvcCBdID0gdHdlZW4uc3RhcnQ7XG5cdFx0XHRcdGlmICggaGlkZGVuICkge1xuXHRcdFx0XHRcdHR3ZWVuLmVuZCA9IHR3ZWVuLnN0YXJ0O1xuXHRcdFx0XHRcdHR3ZWVuLnN0YXJ0ID0gcHJvcCA9PT0gXCJ3aWR0aFwiIHx8IHByb3AgPT09IFwiaGVpZ2h0XCIgPyAxIDogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHQvLyBJZiB0aGlzIGlzIGEgbm9vcCBsaWtlIC5oaWRlKCkuaGlkZSgpLCByZXN0b3JlIGFuIG92ZXJ3cml0dGVuIGRpc3BsYXkgdmFsdWVcblx0fSBlbHNlIGlmICggKGRpc3BsYXkgPT09IFwibm9uZVwiID8gZGVmYXVsdERpc3BsYXkoIGVsZW0ubm9kZU5hbWUgKSA6IGRpc3BsYXkpID09PSBcImlubGluZVwiICkge1xuXHRcdHN0eWxlLmRpc3BsYXkgPSBkaXNwbGF5O1xuXHR9XG59XG5cbmZ1bmN0aW9uIHByb3BGaWx0ZXIoIHByb3BzLCBzcGVjaWFsRWFzaW5nICkge1xuXHR2YXIgaW5kZXgsIG5hbWUsIGVhc2luZywgdmFsdWUsIGhvb2tzO1xuXG5cdC8vIGNhbWVsQ2FzZSwgc3BlY2lhbEVhc2luZyBhbmQgZXhwYW5kIGNzc0hvb2sgcGFzc1xuXHRmb3IgKCBpbmRleCBpbiBwcm9wcyApIHtcblx0XHRuYW1lID0galF1ZXJ5LmNhbWVsQ2FzZSggaW5kZXggKTtcblx0XHRlYXNpbmcgPSBzcGVjaWFsRWFzaW5nWyBuYW1lIF07XG5cdFx0dmFsdWUgPSBwcm9wc1sgaW5kZXggXTtcblx0XHRpZiAoIGpRdWVyeS5pc0FycmF5KCB2YWx1ZSApICkge1xuXHRcdFx0ZWFzaW5nID0gdmFsdWVbIDEgXTtcblx0XHRcdHZhbHVlID0gcHJvcHNbIGluZGV4IF0gPSB2YWx1ZVsgMCBdO1xuXHRcdH1cblxuXHRcdGlmICggaW5kZXggIT09IG5hbWUgKSB7XG5cdFx0XHRwcm9wc1sgbmFtZSBdID0gdmFsdWU7XG5cdFx0XHRkZWxldGUgcHJvcHNbIGluZGV4IF07XG5cdFx0fVxuXG5cdFx0aG9va3MgPSBqUXVlcnkuY3NzSG9va3NbIG5hbWUgXTtcblx0XHRpZiAoIGhvb2tzICYmIFwiZXhwYW5kXCIgaW4gaG9va3MgKSB7XG5cdFx0XHR2YWx1ZSA9IGhvb2tzLmV4cGFuZCggdmFsdWUgKTtcblx0XHRcdGRlbGV0ZSBwcm9wc1sgbmFtZSBdO1xuXG5cdFx0XHQvLyBOb3QgcXVpdGUgJC5leHRlbmQsIHRoaXMgd29uJ3Qgb3ZlcndyaXRlIGV4aXN0aW5nIGtleXMuXG5cdFx0XHQvLyBSZXVzaW5nICdpbmRleCcgYmVjYXVzZSB3ZSBoYXZlIHRoZSBjb3JyZWN0IFwibmFtZVwiXG5cdFx0XHRmb3IgKCBpbmRleCBpbiB2YWx1ZSApIHtcblx0XHRcdFx0aWYgKCAhKCBpbmRleCBpbiBwcm9wcyApICkge1xuXHRcdFx0XHRcdHByb3BzWyBpbmRleCBdID0gdmFsdWVbIGluZGV4IF07XG5cdFx0XHRcdFx0c3BlY2lhbEVhc2luZ1sgaW5kZXggXSA9IGVhc2luZztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRzcGVjaWFsRWFzaW5nWyBuYW1lIF0gPSBlYXNpbmc7XG5cdFx0fVxuXHR9XG59XG5cbmZ1bmN0aW9uIEFuaW1hdGlvbiggZWxlbSwgcHJvcGVydGllcywgb3B0aW9ucyApIHtcblx0dmFyIHJlc3VsdCxcblx0XHRzdG9wcGVkLFxuXHRcdGluZGV4ID0gMCxcblx0XHRsZW5ndGggPSBhbmltYXRpb25QcmVmaWx0ZXJzLmxlbmd0aCxcblx0XHRkZWZlcnJlZCA9IGpRdWVyeS5EZWZlcnJlZCgpLmFsd2F5cyggZnVuY3Rpb24oKSB7XG5cdFx0XHQvLyBEb24ndCBtYXRjaCBlbGVtIGluIHRoZSA6YW5pbWF0ZWQgc2VsZWN0b3Jcblx0XHRcdGRlbGV0ZSB0aWNrLmVsZW07XG5cdFx0fSksXG5cdFx0dGljayA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0aWYgKCBzdG9wcGVkICkge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0XHR2YXIgY3VycmVudFRpbWUgPSBmeE5vdyB8fCBjcmVhdGVGeE5vdygpLFxuXHRcdFx0XHRyZW1haW5pbmcgPSBNYXRoLm1heCggMCwgYW5pbWF0aW9uLnN0YXJ0VGltZSArIGFuaW1hdGlvbi5kdXJhdGlvbiAtIGN1cnJlbnRUaW1lICksXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgMi4zXG5cdFx0XHRcdC8vIEFyY2hhaWMgY3Jhc2ggYnVnIHdvbid0IGFsbG93IHVzIHRvIHVzZSBgMSAtICggMC41IHx8IDAgKWAgKCMxMjQ5Nylcblx0XHRcdFx0dGVtcCA9IHJlbWFpbmluZyAvIGFuaW1hdGlvbi5kdXJhdGlvbiB8fCAwLFxuXHRcdFx0XHRwZXJjZW50ID0gMSAtIHRlbXAsXG5cdFx0XHRcdGluZGV4ID0gMCxcblx0XHRcdFx0bGVuZ3RoID0gYW5pbWF0aW9uLnR3ZWVucy5sZW5ndGg7XG5cblx0XHRcdGZvciAoIDsgaW5kZXggPCBsZW5ndGggOyBpbmRleCsrICkge1xuXHRcdFx0XHRhbmltYXRpb24udHdlZW5zWyBpbmRleCBdLnJ1biggcGVyY2VudCApO1xuXHRcdFx0fVxuXG5cdFx0XHRkZWZlcnJlZC5ub3RpZnlXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiwgcGVyY2VudCwgcmVtYWluaW5nIF0pO1xuXG5cdFx0XHRpZiAoIHBlcmNlbnQgPCAxICYmIGxlbmd0aCApIHtcblx0XHRcdFx0cmV0dXJuIHJlbWFpbmluZztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGRlZmVycmVkLnJlc29sdmVXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiBdICk7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdGFuaW1hdGlvbiA9IGRlZmVycmVkLnByb21pc2Uoe1xuXHRcdFx0ZWxlbTogZWxlbSxcblx0XHRcdHByb3BzOiBqUXVlcnkuZXh0ZW5kKCB7fSwgcHJvcGVydGllcyApLFxuXHRcdFx0b3B0czogalF1ZXJ5LmV4dGVuZCggdHJ1ZSwgeyBzcGVjaWFsRWFzaW5nOiB7fSB9LCBvcHRpb25zICksXG5cdFx0XHRvcmlnaW5hbFByb3BlcnRpZXM6IHByb3BlcnRpZXMsXG5cdFx0XHRvcmlnaW5hbE9wdGlvbnM6IG9wdGlvbnMsXG5cdFx0XHRzdGFydFRpbWU6IGZ4Tm93IHx8IGNyZWF0ZUZ4Tm93KCksXG5cdFx0XHRkdXJhdGlvbjogb3B0aW9ucy5kdXJhdGlvbixcblx0XHRcdHR3ZWVuczogW10sXG5cdFx0XHRjcmVhdGVUd2VlbjogZnVuY3Rpb24oIHByb3AsIGVuZCApIHtcblx0XHRcdFx0dmFyIHR3ZWVuID0galF1ZXJ5LlR3ZWVuKCBlbGVtLCBhbmltYXRpb24ub3B0cywgcHJvcCwgZW5kLFxuXHRcdFx0XHRcdFx0YW5pbWF0aW9uLm9wdHMuc3BlY2lhbEVhc2luZ1sgcHJvcCBdIHx8IGFuaW1hdGlvbi5vcHRzLmVhc2luZyApO1xuXHRcdFx0XHRhbmltYXRpb24udHdlZW5zLnB1c2goIHR3ZWVuICk7XG5cdFx0XHRcdHJldHVybiB0d2Vlbjtcblx0XHRcdH0sXG5cdFx0XHRzdG9wOiBmdW5jdGlvbiggZ290b0VuZCApIHtcblx0XHRcdFx0dmFyIGluZGV4ID0gMCxcblx0XHRcdFx0XHQvLyBJZiB3ZSBhcmUgZ29pbmcgdG8gdGhlIGVuZCwgd2Ugd2FudCB0byBydW4gYWxsIHRoZSB0d2VlbnNcblx0XHRcdFx0XHQvLyBvdGhlcndpc2Ugd2Ugc2tpcCB0aGlzIHBhcnRcblx0XHRcdFx0XHRsZW5ndGggPSBnb3RvRW5kID8gYW5pbWF0aW9uLnR3ZWVucy5sZW5ndGggOiAwO1xuXHRcdFx0XHRpZiAoIHN0b3BwZWQgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHRcdH1cblx0XHRcdFx0c3RvcHBlZCA9IHRydWU7XG5cdFx0XHRcdGZvciAoIDsgaW5kZXggPCBsZW5ndGggOyBpbmRleCsrICkge1xuXHRcdFx0XHRcdGFuaW1hdGlvbi50d2VlbnNbIGluZGV4IF0ucnVuKCAxICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBSZXNvbHZlIHdoZW4gd2UgcGxheWVkIHRoZSBsYXN0IGZyYW1lOyBvdGhlcndpc2UsIHJlamVjdFxuXHRcdFx0XHRpZiAoIGdvdG9FbmQgKSB7XG5cdFx0XHRcdFx0ZGVmZXJyZWQucmVzb2x2ZVdpdGgoIGVsZW0sIFsgYW5pbWF0aW9uLCBnb3RvRW5kIF0gKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRkZWZlcnJlZC5yZWplY3RXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiwgZ290b0VuZCBdICk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSksXG5cdFx0cHJvcHMgPSBhbmltYXRpb24ucHJvcHM7XG5cblx0cHJvcEZpbHRlciggcHJvcHMsIGFuaW1hdGlvbi5vcHRzLnNwZWNpYWxFYXNpbmcgKTtcblxuXHRmb3IgKCA7IGluZGV4IDwgbGVuZ3RoIDsgaW5kZXgrKyApIHtcblx0XHRyZXN1bHQgPSBhbmltYXRpb25QcmVmaWx0ZXJzWyBpbmRleCBdLmNhbGwoIGFuaW1hdGlvbiwgZWxlbSwgcHJvcHMsIGFuaW1hdGlvbi5vcHRzICk7XG5cdFx0aWYgKCByZXN1bHQgKSB7XG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH1cblx0fVxuXG5cdGpRdWVyeS5tYXAoIHByb3BzLCBjcmVhdGVUd2VlbiwgYW5pbWF0aW9uICk7XG5cblx0aWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggYW5pbWF0aW9uLm9wdHMuc3RhcnQgKSApIHtcblx0XHRhbmltYXRpb24ub3B0cy5zdGFydC5jYWxsKCBlbGVtLCBhbmltYXRpb24gKTtcblx0fVxuXG5cdGpRdWVyeS5meC50aW1lcihcblx0XHRqUXVlcnkuZXh0ZW5kKCB0aWNrLCB7XG5cdFx0XHRlbGVtOiBlbGVtLFxuXHRcdFx0YW5pbTogYW5pbWF0aW9uLFxuXHRcdFx0cXVldWU6IGFuaW1hdGlvbi5vcHRzLnF1ZXVlXG5cdFx0fSlcblx0KTtcblxuXHQvLyBhdHRhY2ggY2FsbGJhY2tzIGZyb20gb3B0aW9uc1xuXHRyZXR1cm4gYW5pbWF0aW9uLnByb2dyZXNzKCBhbmltYXRpb24ub3B0cy5wcm9ncmVzcyApXG5cdFx0LmRvbmUoIGFuaW1hdGlvbi5vcHRzLmRvbmUsIGFuaW1hdGlvbi5vcHRzLmNvbXBsZXRlIClcblx0XHQuZmFpbCggYW5pbWF0aW9uLm9wdHMuZmFpbCApXG5cdFx0LmFsd2F5cyggYW5pbWF0aW9uLm9wdHMuYWx3YXlzICk7XG59XG5cbmpRdWVyeS5BbmltYXRpb24gPSBqUXVlcnkuZXh0ZW5kKCBBbmltYXRpb24sIHtcblxuXHR0d2VlbmVyOiBmdW5jdGlvbiggcHJvcHMsIGNhbGxiYWNrICkge1xuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHByb3BzICkgKSB7XG5cdFx0XHRjYWxsYmFjayA9IHByb3BzO1xuXHRcdFx0cHJvcHMgPSBbIFwiKlwiIF07XG5cdFx0fSBlbHNlIHtcblx0XHRcdHByb3BzID0gcHJvcHMuc3BsaXQoXCIgXCIpO1xuXHRcdH1cblxuXHRcdHZhciBwcm9wLFxuXHRcdFx0aW5kZXggPSAwLFxuXHRcdFx0bGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG5cdFx0Zm9yICggOyBpbmRleCA8IGxlbmd0aCA7IGluZGV4KysgKSB7XG5cdFx0XHRwcm9wID0gcHJvcHNbIGluZGV4IF07XG5cdFx0XHR0d2VlbmVyc1sgcHJvcCBdID0gdHdlZW5lcnNbIHByb3AgXSB8fCBbXTtcblx0XHRcdHR3ZWVuZXJzWyBwcm9wIF0udW5zaGlmdCggY2FsbGJhY2sgKTtcblx0XHR9XG5cdH0sXG5cblx0cHJlZmlsdGVyOiBmdW5jdGlvbiggY2FsbGJhY2ssIHByZXBlbmQgKSB7XG5cdFx0aWYgKCBwcmVwZW5kICkge1xuXHRcdFx0YW5pbWF0aW9uUHJlZmlsdGVycy51bnNoaWZ0KCBjYWxsYmFjayApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRhbmltYXRpb25QcmVmaWx0ZXJzLnB1c2goIGNhbGxiYWNrICk7XG5cdFx0fVxuXHR9XG59KTtcblxualF1ZXJ5LnNwZWVkID0gZnVuY3Rpb24oIHNwZWVkLCBlYXNpbmcsIGZuICkge1xuXHR2YXIgb3B0ID0gc3BlZWQgJiYgdHlwZW9mIHNwZWVkID09PSBcIm9iamVjdFwiID8galF1ZXJ5LmV4dGVuZCgge30sIHNwZWVkICkgOiB7XG5cdFx0Y29tcGxldGU6IGZuIHx8ICFmbiAmJiBlYXNpbmcgfHxcblx0XHRcdGpRdWVyeS5pc0Z1bmN0aW9uKCBzcGVlZCApICYmIHNwZWVkLFxuXHRcdGR1cmF0aW9uOiBzcGVlZCxcblx0XHRlYXNpbmc6IGZuICYmIGVhc2luZyB8fCBlYXNpbmcgJiYgIWpRdWVyeS5pc0Z1bmN0aW9uKCBlYXNpbmcgKSAmJiBlYXNpbmdcblx0fTtcblxuXHRvcHQuZHVyYXRpb24gPSBqUXVlcnkuZngub2ZmID8gMCA6IHR5cGVvZiBvcHQuZHVyYXRpb24gPT09IFwibnVtYmVyXCIgPyBvcHQuZHVyYXRpb24gOlxuXHRcdG9wdC5kdXJhdGlvbiBpbiBqUXVlcnkuZnguc3BlZWRzID8galF1ZXJ5LmZ4LnNwZWVkc1sgb3B0LmR1cmF0aW9uIF0gOiBqUXVlcnkuZnguc3BlZWRzLl9kZWZhdWx0O1xuXG5cdC8vIE5vcm1hbGl6ZSBvcHQucXVldWUgLSB0cnVlL3VuZGVmaW5lZC9udWxsIC0+IFwiZnhcIlxuXHRpZiAoIG9wdC5xdWV1ZSA9PSBudWxsIHx8IG9wdC5xdWV1ZSA9PT0gdHJ1ZSApIHtcblx0XHRvcHQucXVldWUgPSBcImZ4XCI7XG5cdH1cblxuXHQvLyBRdWV1ZWluZ1xuXHRvcHQub2xkID0gb3B0LmNvbXBsZXRlO1xuXG5cdG9wdC5jb21wbGV0ZSA9IGZ1bmN0aW9uKCkge1xuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIG9wdC5vbGQgKSApIHtcblx0XHRcdG9wdC5vbGQuY2FsbCggdGhpcyApO1xuXHRcdH1cblxuXHRcdGlmICggb3B0LnF1ZXVlICkge1xuXHRcdFx0alF1ZXJ5LmRlcXVldWUoIHRoaXMsIG9wdC5xdWV1ZSApO1xuXHRcdH1cblx0fTtcblxuXHRyZXR1cm4gb3B0O1xufTtcblxualF1ZXJ5LmZuLmV4dGVuZCh7XG5cdGZhZGVUbzogZnVuY3Rpb24oIHNwZWVkLCB0bywgZWFzaW5nLCBjYWxsYmFjayApIHtcblxuXHRcdC8vIFNob3cgYW55IGhpZGRlbiBlbGVtZW50cyBhZnRlciBzZXR0aW5nIG9wYWNpdHkgdG8gMFxuXHRcdHJldHVybiB0aGlzLmZpbHRlciggaXNIaWRkZW4gKS5jc3MoIFwib3BhY2l0eVwiLCAwICkuc2hvdygpXG5cblx0XHRcdC8vIEFuaW1hdGUgdG8gdGhlIHZhbHVlIHNwZWNpZmllZFxuXHRcdFx0LmVuZCgpLmFuaW1hdGUoeyBvcGFjaXR5OiB0byB9LCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApO1xuXHR9LFxuXHRhbmltYXRlOiBmdW5jdGlvbiggcHJvcCwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7XG5cdFx0dmFyIGVtcHR5ID0galF1ZXJ5LmlzRW1wdHlPYmplY3QoIHByb3AgKSxcblx0XHRcdG9wdGFsbCA9IGpRdWVyeS5zcGVlZCggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSxcblx0XHRcdGRvQW5pbWF0aW9uID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdC8vIE9wZXJhdGUgb24gYSBjb3B5IG9mIHByb3Agc28gcGVyLXByb3BlcnR5IGVhc2luZyB3b24ndCBiZSBsb3N0XG5cdFx0XHRcdHZhciBhbmltID0gQW5pbWF0aW9uKCB0aGlzLCBqUXVlcnkuZXh0ZW5kKCB7fSwgcHJvcCApLCBvcHRhbGwgKTtcblxuXHRcdFx0XHQvLyBFbXB0eSBhbmltYXRpb25zLCBvciBmaW5pc2hpbmcgcmVzb2x2ZXMgaW1tZWRpYXRlbHlcblx0XHRcdFx0aWYgKCBlbXB0eSB8fCBkYXRhX3ByaXYuZ2V0KCB0aGlzLCBcImZpbmlzaFwiICkgKSB7XG5cdFx0XHRcdFx0YW5pbS5zdG9wKCB0cnVlICk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRkb0FuaW1hdGlvbi5maW5pc2ggPSBkb0FuaW1hdGlvbjtcblxuXHRcdHJldHVybiBlbXB0eSB8fCBvcHRhbGwucXVldWUgPT09IGZhbHNlID9cblx0XHRcdHRoaXMuZWFjaCggZG9BbmltYXRpb24gKSA6XG5cdFx0XHR0aGlzLnF1ZXVlKCBvcHRhbGwucXVldWUsIGRvQW5pbWF0aW9uICk7XG5cdH0sXG5cdHN0b3A6IGZ1bmN0aW9uKCB0eXBlLCBjbGVhclF1ZXVlLCBnb3RvRW5kICkge1xuXHRcdHZhciBzdG9wUXVldWUgPSBmdW5jdGlvbiggaG9va3MgKSB7XG5cdFx0XHR2YXIgc3RvcCA9IGhvb2tzLnN0b3A7XG5cdFx0XHRkZWxldGUgaG9va3Muc3RvcDtcblx0XHRcdHN0b3AoIGdvdG9FbmQgKTtcblx0XHR9O1xuXG5cdFx0aWYgKCB0eXBlb2YgdHlwZSAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdGdvdG9FbmQgPSBjbGVhclF1ZXVlO1xuXHRcdFx0Y2xlYXJRdWV1ZSA9IHR5cGU7XG5cdFx0XHR0eXBlID0gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRpZiAoIGNsZWFyUXVldWUgJiYgdHlwZSAhPT0gZmFsc2UgKSB7XG5cdFx0XHR0aGlzLnF1ZXVlKCB0eXBlIHx8IFwiZnhcIiwgW10gKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIGRlcXVldWUgPSB0cnVlLFxuXHRcdFx0XHRpbmRleCA9IHR5cGUgIT0gbnVsbCAmJiB0eXBlICsgXCJxdWV1ZUhvb2tzXCIsXG5cdFx0XHRcdHRpbWVycyA9IGpRdWVyeS50aW1lcnMsXG5cdFx0XHRcdGRhdGEgPSBkYXRhX3ByaXYuZ2V0KCB0aGlzICk7XG5cblx0XHRcdGlmICggaW5kZXggKSB7XG5cdFx0XHRcdGlmICggZGF0YVsgaW5kZXggXSAmJiBkYXRhWyBpbmRleCBdLnN0b3AgKSB7XG5cdFx0XHRcdFx0c3RvcFF1ZXVlKCBkYXRhWyBpbmRleCBdICk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGZvciAoIGluZGV4IGluIGRhdGEgKSB7XG5cdFx0XHRcdFx0aWYgKCBkYXRhWyBpbmRleCBdICYmIGRhdGFbIGluZGV4IF0uc3RvcCAmJiBycnVuLnRlc3QoIGluZGV4ICkgKSB7XG5cdFx0XHRcdFx0XHRzdG9wUXVldWUoIGRhdGFbIGluZGV4IF0gKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Zm9yICggaW5kZXggPSB0aW1lcnMubGVuZ3RoOyBpbmRleC0tOyApIHtcblx0XHRcdFx0aWYgKCB0aW1lcnNbIGluZGV4IF0uZWxlbSA9PT0gdGhpcyAmJiAodHlwZSA9PSBudWxsIHx8IHRpbWVyc1sgaW5kZXggXS5xdWV1ZSA9PT0gdHlwZSkgKSB7XG5cdFx0XHRcdFx0dGltZXJzWyBpbmRleCBdLmFuaW0uc3RvcCggZ290b0VuZCApO1xuXHRcdFx0XHRcdGRlcXVldWUgPSBmYWxzZTtcblx0XHRcdFx0XHR0aW1lcnMuc3BsaWNlKCBpbmRleCwgMSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN0YXJ0IHRoZSBuZXh0IGluIHRoZSBxdWV1ZSBpZiB0aGUgbGFzdCBzdGVwIHdhc24ndCBmb3JjZWQuXG5cdFx0XHQvLyBUaW1lcnMgY3VycmVudGx5IHdpbGwgY2FsbCB0aGVpciBjb21wbGV0ZSBjYWxsYmFja3MsIHdoaWNoXG5cdFx0XHQvLyB3aWxsIGRlcXVldWUgYnV0IG9ubHkgaWYgdGhleSB3ZXJlIGdvdG9FbmQuXG5cdFx0XHRpZiAoIGRlcXVldWUgfHwgIWdvdG9FbmQgKSB7XG5cdFx0XHRcdGpRdWVyeS5kZXF1ZXVlKCB0aGlzLCB0eXBlICk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0sXG5cdGZpbmlzaDogZnVuY3Rpb24oIHR5cGUgKSB7XG5cdFx0aWYgKCB0eXBlICE9PSBmYWxzZSApIHtcblx0XHRcdHR5cGUgPSB0eXBlIHx8IFwiZnhcIjtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcblx0XHRcdHZhciBpbmRleCxcblx0XHRcdFx0ZGF0YSA9IGRhdGFfcHJpdi5nZXQoIHRoaXMgKSxcblx0XHRcdFx0cXVldWUgPSBkYXRhWyB0eXBlICsgXCJxdWV1ZVwiIF0sXG5cdFx0XHRcdGhvb2tzID0gZGF0YVsgdHlwZSArIFwicXVldWVIb29rc1wiIF0sXG5cdFx0XHRcdHRpbWVycyA9IGpRdWVyeS50aW1lcnMsXG5cdFx0XHRcdGxlbmd0aCA9IHF1ZXVlID8gcXVldWUubGVuZ3RoIDogMDtcblxuXHRcdFx0Ly8gRW5hYmxlIGZpbmlzaGluZyBmbGFnIG9uIHByaXZhdGUgZGF0YVxuXHRcdFx0ZGF0YS5maW5pc2ggPSB0cnVlO1xuXG5cdFx0XHQvLyBFbXB0eSB0aGUgcXVldWUgZmlyc3Rcblx0XHRcdGpRdWVyeS5xdWV1ZSggdGhpcywgdHlwZSwgW10gKTtcblxuXHRcdFx0aWYgKCBob29rcyAmJiBob29rcy5zdG9wICkge1xuXHRcdFx0XHRob29rcy5zdG9wLmNhbGwoIHRoaXMsIHRydWUgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gTG9vayBmb3IgYW55IGFjdGl2ZSBhbmltYXRpb25zLCBhbmQgZmluaXNoIHRoZW1cblx0XHRcdGZvciAoIGluZGV4ID0gdGltZXJzLmxlbmd0aDsgaW5kZXgtLTsgKSB7XG5cdFx0XHRcdGlmICggdGltZXJzWyBpbmRleCBdLmVsZW0gPT09IHRoaXMgJiYgdGltZXJzWyBpbmRleCBdLnF1ZXVlID09PSB0eXBlICkge1xuXHRcdFx0XHRcdHRpbWVyc1sgaW5kZXggXS5hbmltLnN0b3AoIHRydWUgKTtcblx0XHRcdFx0XHR0aW1lcnMuc3BsaWNlKCBpbmRleCwgMSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIExvb2sgZm9yIGFueSBhbmltYXRpb25zIGluIHRoZSBvbGQgcXVldWUgYW5kIGZpbmlzaCB0aGVtXG5cdFx0XHRmb3IgKCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdFx0XHRpZiAoIHF1ZXVlWyBpbmRleCBdICYmIHF1ZXVlWyBpbmRleCBdLmZpbmlzaCApIHtcblx0XHRcdFx0XHRxdWV1ZVsgaW5kZXggXS5maW5pc2guY2FsbCggdGhpcyApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIFR1cm4gb2ZmIGZpbmlzaGluZyBmbGFnXG5cdFx0XHRkZWxldGUgZGF0YS5maW5pc2g7XG5cdFx0fSk7XG5cdH1cbn0pO1xuXG5qUXVlcnkuZWFjaChbIFwidG9nZ2xlXCIsIFwic2hvd1wiLCBcImhpZGVcIiBdLCBmdW5jdGlvbiggaSwgbmFtZSApIHtcblx0dmFyIGNzc0ZuID0galF1ZXJ5LmZuWyBuYW1lIF07XG5cdGpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICkge1xuXHRcdHJldHVybiBzcGVlZCA9PSBudWxsIHx8IHR5cGVvZiBzcGVlZCA9PT0gXCJib29sZWFuXCIgP1xuXHRcdFx0Y3NzRm4uYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApIDpcblx0XHRcdHRoaXMuYW5pbWF0ZSggZ2VuRngoIG5hbWUsIHRydWUgKSwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKTtcblx0fTtcbn0pO1xuXG4vLyBHZW5lcmF0ZSBzaG9ydGN1dHMgZm9yIGN1c3RvbSBhbmltYXRpb25zXG5qUXVlcnkuZWFjaCh7XG5cdHNsaWRlRG93bjogZ2VuRngoXCJzaG93XCIpLFxuXHRzbGlkZVVwOiBnZW5GeChcImhpZGVcIiksXG5cdHNsaWRlVG9nZ2xlOiBnZW5GeChcInRvZ2dsZVwiKSxcblx0ZmFkZUluOiB7IG9wYWNpdHk6IFwic2hvd1wiIH0sXG5cdGZhZGVPdXQ6IHsgb3BhY2l0eTogXCJoaWRlXCIgfSxcblx0ZmFkZVRvZ2dsZTogeyBvcGFjaXR5OiBcInRvZ2dsZVwiIH1cbn0sIGZ1bmN0aW9uKCBuYW1lLCBwcm9wcyApIHtcblx0alF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7XG5cdFx0cmV0dXJuIHRoaXMuYW5pbWF0ZSggcHJvcHMsIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICk7XG5cdH07XG59KTtcblxualF1ZXJ5LnRpbWVycyA9IFtdO1xualF1ZXJ5LmZ4LnRpY2sgPSBmdW5jdGlvbigpIHtcblx0dmFyIHRpbWVyLFxuXHRcdGkgPSAwLFxuXHRcdHRpbWVycyA9IGpRdWVyeS50aW1lcnM7XG5cblx0ZnhOb3cgPSBqUXVlcnkubm93KCk7XG5cblx0Zm9yICggOyBpIDwgdGltZXJzLmxlbmd0aDsgaSsrICkge1xuXHRcdHRpbWVyID0gdGltZXJzWyBpIF07XG5cdFx0Ly8gQ2hlY2tzIHRoZSB0aW1lciBoYXMgbm90IGFscmVhZHkgYmVlbiByZW1vdmVkXG5cdFx0aWYgKCAhdGltZXIoKSAmJiB0aW1lcnNbIGkgXSA9PT0gdGltZXIgKSB7XG5cdFx0XHR0aW1lcnMuc3BsaWNlKCBpLS0sIDEgKTtcblx0XHR9XG5cdH1cblxuXHRpZiAoICF0aW1lcnMubGVuZ3RoICkge1xuXHRcdGpRdWVyeS5meC5zdG9wKCk7XG5cdH1cblx0ZnhOb3cgPSB1bmRlZmluZWQ7XG59O1xuXG5qUXVlcnkuZngudGltZXIgPSBmdW5jdGlvbiggdGltZXIgKSB7XG5cdGpRdWVyeS50aW1lcnMucHVzaCggdGltZXIgKTtcblx0aWYgKCB0aW1lcigpICkge1xuXHRcdGpRdWVyeS5meC5zdGFydCgpO1xuXHR9IGVsc2Uge1xuXHRcdGpRdWVyeS50aW1lcnMucG9wKCk7XG5cdH1cbn07XG5cbmpRdWVyeS5meC5pbnRlcnZhbCA9IDEzO1xuXG5qUXVlcnkuZnguc3RhcnQgPSBmdW5jdGlvbigpIHtcblx0aWYgKCAhdGltZXJJZCApIHtcblx0XHR0aW1lcklkID0gc2V0SW50ZXJ2YWwoIGpRdWVyeS5meC50aWNrLCBqUXVlcnkuZnguaW50ZXJ2YWwgKTtcblx0fVxufTtcblxualF1ZXJ5LmZ4LnN0b3AgPSBmdW5jdGlvbigpIHtcblx0Y2xlYXJJbnRlcnZhbCggdGltZXJJZCApO1xuXHR0aW1lcklkID0gbnVsbDtcbn07XG5cbmpRdWVyeS5meC5zcGVlZHMgPSB7XG5cdHNsb3c6IDYwMCxcblx0ZmFzdDogMjAwLFxuXHQvLyBEZWZhdWx0IHNwZWVkXG5cdF9kZWZhdWx0OiA0MDBcbn07XG5cblxuLy8gQmFzZWQgb2ZmIG9mIHRoZSBwbHVnaW4gYnkgQ2xpbnQgSGVsZmVycywgd2l0aCBwZXJtaXNzaW9uLlxuLy8gaHR0cDovL2JsaW5kc2lnbmFscy5jb20vaW5kZXgucGhwLzIwMDkvMDcvanF1ZXJ5LWRlbGF5L1xualF1ZXJ5LmZuLmRlbGF5ID0gZnVuY3Rpb24oIHRpbWUsIHR5cGUgKSB7XG5cdHRpbWUgPSBqUXVlcnkuZnggPyBqUXVlcnkuZnguc3BlZWRzWyB0aW1lIF0gfHwgdGltZSA6IHRpbWU7XG5cdHR5cGUgPSB0eXBlIHx8IFwiZnhcIjtcblxuXHRyZXR1cm4gdGhpcy5xdWV1ZSggdHlwZSwgZnVuY3Rpb24oIG5leHQsIGhvb2tzICkge1xuXHRcdHZhciB0aW1lb3V0ID0gc2V0VGltZW91dCggbmV4dCwgdGltZSApO1xuXHRcdGhvb2tzLnN0b3AgPSBmdW5jdGlvbigpIHtcblx0XHRcdGNsZWFyVGltZW91dCggdGltZW91dCApO1xuXHRcdH07XG5cdH0pO1xufTtcblxuXG4oZnVuY3Rpb24oKSB7XG5cdHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiaW5wdXRcIiApLFxuXHRcdHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwic2VsZWN0XCIgKSxcblx0XHRvcHQgPSBzZWxlY3QuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwib3B0aW9uXCIgKSApO1xuXG5cdGlucHV0LnR5cGUgPSBcImNoZWNrYm94XCI7XG5cblx0Ly8gU3VwcG9ydDogaU9TPD01LjEsIEFuZHJvaWQ8PTQuMitcblx0Ly8gRGVmYXVsdCB2YWx1ZSBmb3IgYSBjaGVja2JveCBzaG91bGQgYmUgXCJvblwiXG5cdHN1cHBvcnQuY2hlY2tPbiA9IGlucHV0LnZhbHVlICE9PSBcIlwiO1xuXG5cdC8vIFN1cHBvcnQ6IElFPD0xMStcblx0Ly8gTXVzdCBhY2Nlc3Mgc2VsZWN0ZWRJbmRleCB0byBtYWtlIGRlZmF1bHQgb3B0aW9ucyBzZWxlY3Rcblx0c3VwcG9ydC5vcHRTZWxlY3RlZCA9IG9wdC5zZWxlY3RlZDtcblxuXHQvLyBTdXBwb3J0OiBBbmRyb2lkPD0yLjNcblx0Ly8gT3B0aW9ucyBpbnNpZGUgZGlzYWJsZWQgc2VsZWN0cyBhcmUgaW5jb3JyZWN0bHkgbWFya2VkIGFzIGRpc2FibGVkXG5cdHNlbGVjdC5kaXNhYmxlZCA9IHRydWU7XG5cdHN1cHBvcnQub3B0RGlzYWJsZWQgPSAhb3B0LmRpc2FibGVkO1xuXG5cdC8vIFN1cHBvcnQ6IElFPD0xMStcblx0Ly8gQW4gaW5wdXQgbG9zZXMgaXRzIHZhbHVlIGFmdGVyIGJlY29taW5nIGEgcmFkaW9cblx0aW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImlucHV0XCIgKTtcblx0aW5wdXQudmFsdWUgPSBcInRcIjtcblx0aW5wdXQudHlwZSA9IFwicmFkaW9cIjtcblx0c3VwcG9ydC5yYWRpb1ZhbHVlID0gaW5wdXQudmFsdWUgPT09IFwidFwiO1xufSkoKTtcblxuXG52YXIgbm9kZUhvb2ssIGJvb2xIb29rLFxuXHRhdHRySGFuZGxlID0galF1ZXJ5LmV4cHIuYXR0ckhhbmRsZTtcblxualF1ZXJ5LmZuLmV4dGVuZCh7XG5cdGF0dHI6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHtcblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBqUXVlcnkuYXR0ciwgbmFtZSwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxICk7XG5cdH0sXG5cblx0cmVtb3ZlQXR0cjogZnVuY3Rpb24oIG5hbWUgKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcblx0XHRcdGpRdWVyeS5yZW1vdmVBdHRyKCB0aGlzLCBuYW1lICk7XG5cdFx0fSk7XG5cdH1cbn0pO1xuXG5qUXVlcnkuZXh0ZW5kKHtcblx0YXR0cjogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlICkge1xuXHRcdHZhciBob29rcywgcmV0LFxuXHRcdFx0blR5cGUgPSBlbGVtLm5vZGVUeXBlO1xuXG5cdFx0Ly8gZG9uJ3QgZ2V0L3NldCBhdHRyaWJ1dGVzIG9uIHRleHQsIGNvbW1lbnQgYW5kIGF0dHJpYnV0ZSBub2Rlc1xuXHRcdGlmICggIWVsZW0gfHwgblR5cGUgPT09IDMgfHwgblR5cGUgPT09IDggfHwgblR5cGUgPT09IDIgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gRmFsbGJhY2sgdG8gcHJvcCB3aGVuIGF0dHJpYnV0ZXMgYXJlIG5vdCBzdXBwb3J0ZWRcblx0XHRpZiAoIHR5cGVvZiBlbGVtLmdldEF0dHJpYnV0ZSA9PT0gc3RydW5kZWZpbmVkICkge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5wcm9wKCBlbGVtLCBuYW1lLCB2YWx1ZSApO1xuXHRcdH1cblxuXHRcdC8vIEFsbCBhdHRyaWJ1dGVzIGFyZSBsb3dlcmNhc2Vcblx0XHQvLyBHcmFiIG5lY2Vzc2FyeSBob29rIGlmIG9uZSBpcyBkZWZpbmVkXG5cdFx0aWYgKCBuVHlwZSAhPT0gMSB8fCAhalF1ZXJ5LmlzWE1MRG9jKCBlbGVtICkgKSB7XG5cdFx0XHRuYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0aG9va3MgPSBqUXVlcnkuYXR0ckhvb2tzWyBuYW1lIF0gfHxcblx0XHRcdFx0KCBqUXVlcnkuZXhwci5tYXRjaC5ib29sLnRlc3QoIG5hbWUgKSA/IGJvb2xIb29rIDogbm9kZUhvb2sgKTtcblx0XHR9XG5cblx0XHRpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7XG5cblx0XHRcdGlmICggdmFsdWUgPT09IG51bGwgKSB7XG5cdFx0XHRcdGpRdWVyeS5yZW1vdmVBdHRyKCBlbGVtLCBuYW1lICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGhvb2tzICYmIFwic2V0XCIgaW4gaG9va3MgJiYgKHJldCA9IGhvb2tzLnNldCggZWxlbSwgdmFsdWUsIG5hbWUgKSkgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0cmV0dXJuIHJldDtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGUoIG5hbWUsIHZhbHVlICsgXCJcIiApO1xuXHRcdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0XHR9XG5cblx0XHR9IGVsc2UgaWYgKCBob29rcyAmJiBcImdldFwiIGluIGhvb2tzICYmIChyZXQgPSBob29rcy5nZXQoIGVsZW0sIG5hbWUgKSkgIT09IG51bGwgKSB7XG5cdFx0XHRyZXR1cm4gcmV0O1xuXG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldCA9IGpRdWVyeS5maW5kLmF0dHIoIGVsZW0sIG5hbWUgKTtcblxuXHRcdFx0Ly8gTm9uLWV4aXN0ZW50IGF0dHJpYnV0ZXMgcmV0dXJuIG51bGwsIHdlIG5vcm1hbGl6ZSB0byB1bmRlZmluZWRcblx0XHRcdHJldHVybiByZXQgPT0gbnVsbCA/XG5cdFx0XHRcdHVuZGVmaW5lZCA6XG5cdFx0XHRcdHJldDtcblx0XHR9XG5cdH0sXG5cblx0cmVtb3ZlQXR0cjogZnVuY3Rpb24oIGVsZW0sIHZhbHVlICkge1xuXHRcdHZhciBuYW1lLCBwcm9wTmFtZSxcblx0XHRcdGkgPSAwLFxuXHRcdFx0YXR0ck5hbWVzID0gdmFsdWUgJiYgdmFsdWUubWF0Y2goIHJub3R3aGl0ZSApO1xuXG5cdFx0aWYgKCBhdHRyTmFtZXMgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRcdHdoaWxlICggKG5hbWUgPSBhdHRyTmFtZXNbaSsrXSkgKSB7XG5cdFx0XHRcdHByb3BOYW1lID0galF1ZXJ5LnByb3BGaXhbIG5hbWUgXSB8fCBuYW1lO1xuXG5cdFx0XHRcdC8vIEJvb2xlYW4gYXR0cmlidXRlcyBnZXQgc3BlY2lhbCB0cmVhdG1lbnQgKCMxMDg3MClcblx0XHRcdFx0aWYgKCBqUXVlcnkuZXhwci5tYXRjaC5ib29sLnRlc3QoIG5hbWUgKSApIHtcblx0XHRcdFx0XHQvLyBTZXQgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSB0byBmYWxzZVxuXHRcdFx0XHRcdGVsZW1bIHByb3BOYW1lIF0gPSBmYWxzZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGVsZW0ucmVtb3ZlQXR0cmlidXRlKCBuYW1lICk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cdGF0dHJIb29rczoge1xuXHRcdHR5cGU6IHtcblx0XHRcdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlICkge1xuXHRcdFx0XHRpZiAoICFzdXBwb3J0LnJhZGlvVmFsdWUgJiYgdmFsdWUgPT09IFwicmFkaW9cIiAmJlxuXHRcdFx0XHRcdGpRdWVyeS5ub2RlTmFtZSggZWxlbSwgXCJpbnB1dFwiICkgKSB7XG5cdFx0XHRcdFx0dmFyIHZhbCA9IGVsZW0udmFsdWU7XG5cdFx0XHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGUoIFwidHlwZVwiLCB2YWx1ZSApO1xuXHRcdFx0XHRcdGlmICggdmFsICkge1xuXHRcdFx0XHRcdFx0ZWxlbS52YWx1ZSA9IHZhbDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59KTtcblxuLy8gSG9va3MgZm9yIGJvb2xlYW4gYXR0cmlidXRlc1xuYm9vbEhvb2sgPSB7XG5cdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlLCBuYW1lICkge1xuXHRcdGlmICggdmFsdWUgPT09IGZhbHNlICkge1xuXHRcdFx0Ly8gUmVtb3ZlIGJvb2xlYW4gYXR0cmlidXRlcyB3aGVuIHNldCB0byBmYWxzZVxuXHRcdFx0alF1ZXJ5LnJlbW92ZUF0dHIoIGVsZW0sIG5hbWUgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGUoIG5hbWUsIG5hbWUgKTtcblx0XHR9XG5cdFx0cmV0dXJuIG5hbWU7XG5cdH1cbn07XG5qUXVlcnkuZWFjaCggalF1ZXJ5LmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goIC9cXHcrL2cgKSwgZnVuY3Rpb24oIGksIG5hbWUgKSB7XG5cdHZhciBnZXR0ZXIgPSBhdHRySGFuZGxlWyBuYW1lIF0gfHwgalF1ZXJ5LmZpbmQuYXR0cjtcblxuXHRhdHRySGFuZGxlWyBuYW1lIF0gPSBmdW5jdGlvbiggZWxlbSwgbmFtZSwgaXNYTUwgKSB7XG5cdFx0dmFyIHJldCwgaGFuZGxlO1xuXHRcdGlmICggIWlzWE1MICkge1xuXHRcdFx0Ly8gQXZvaWQgYW4gaW5maW5pdGUgbG9vcCBieSB0ZW1wb3JhcmlseSByZW1vdmluZyB0aGlzIGZ1bmN0aW9uIGZyb20gdGhlIGdldHRlclxuXHRcdFx0aGFuZGxlID0gYXR0ckhhbmRsZVsgbmFtZSBdO1xuXHRcdFx0YXR0ckhhbmRsZVsgbmFtZSBdID0gcmV0O1xuXHRcdFx0cmV0ID0gZ2V0dGVyKCBlbGVtLCBuYW1lLCBpc1hNTCApICE9IG51bGwgP1xuXHRcdFx0XHRuYW1lLnRvTG93ZXJDYXNlKCkgOlxuXHRcdFx0XHRudWxsO1xuXHRcdFx0YXR0ckhhbmRsZVsgbmFtZSBdID0gaGFuZGxlO1xuXHRcdH1cblx0XHRyZXR1cm4gcmV0O1xuXHR9O1xufSk7XG5cblxuXG5cbnZhciByZm9jdXNhYmxlID0gL14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaTtcblxualF1ZXJ5LmZuLmV4dGVuZCh7XG5cdHByb3A6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHtcblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBqUXVlcnkucHJvcCwgbmFtZSwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxICk7XG5cdH0sXG5cblx0cmVtb3ZlUHJvcDogZnVuY3Rpb24oIG5hbWUgKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcblx0XHRcdGRlbGV0ZSB0aGlzWyBqUXVlcnkucHJvcEZpeFsgbmFtZSBdIHx8IG5hbWUgXTtcblx0XHR9KTtcblx0fVxufSk7XG5cbmpRdWVyeS5leHRlbmQoe1xuXHRwcm9wRml4OiB7XG5cdFx0XCJmb3JcIjogXCJodG1sRm9yXCIsXG5cdFx0XCJjbGFzc1wiOiBcImNsYXNzTmFtZVwiXG5cdH0sXG5cblx0cHJvcDogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlICkge1xuXHRcdHZhciByZXQsIGhvb2tzLCBub3R4bWwsXG5cdFx0XHRuVHlwZSA9IGVsZW0ubm9kZVR5cGU7XG5cblx0XHQvLyBEb24ndCBnZXQvc2V0IHByb3BlcnRpZXMgb24gdGV4dCwgY29tbWVudCBhbmQgYXR0cmlidXRlIG5vZGVzXG5cdFx0aWYgKCAhZWxlbSB8fCBuVHlwZSA9PT0gMyB8fCBuVHlwZSA9PT0gOCB8fCBuVHlwZSA9PT0gMiApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRub3R4bWwgPSBuVHlwZSAhPT0gMSB8fCAhalF1ZXJ5LmlzWE1MRG9jKCBlbGVtICk7XG5cblx0XHRpZiAoIG5vdHhtbCApIHtcblx0XHRcdC8vIEZpeCBuYW1lIGFuZCBhdHRhY2ggaG9va3Ncblx0XHRcdG5hbWUgPSBqUXVlcnkucHJvcEZpeFsgbmFtZSBdIHx8IG5hbWU7XG5cdFx0XHRob29rcyA9IGpRdWVyeS5wcm9wSG9va3NbIG5hbWUgXTtcblx0XHR9XG5cblx0XHRpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRyZXR1cm4gaG9va3MgJiYgXCJzZXRcIiBpbiBob29rcyAmJiAocmV0ID0gaG9va3Muc2V0KCBlbGVtLCB2YWx1ZSwgbmFtZSApKSAhPT0gdW5kZWZpbmVkID9cblx0XHRcdFx0cmV0IDpcblx0XHRcdFx0KCBlbGVtWyBuYW1lIF0gPSB2YWx1ZSApO1xuXG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBob29rcyAmJiBcImdldFwiIGluIGhvb2tzICYmIChyZXQgPSBob29rcy5nZXQoIGVsZW0sIG5hbWUgKSkgIT09IG51bGwgP1xuXHRcdFx0XHRyZXQgOlxuXHRcdFx0XHRlbGVtWyBuYW1lIF07XG5cdFx0fVxuXHR9LFxuXG5cdHByb3BIb29rczoge1xuXHRcdHRhYkluZGV4OiB7XG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHRyZXR1cm4gZWxlbS5oYXNBdHRyaWJ1dGUoIFwidGFiaW5kZXhcIiApIHx8IHJmb2N1c2FibGUudGVzdCggZWxlbS5ub2RlTmFtZSApIHx8IGVsZW0uaHJlZiA/XG5cdFx0XHRcdFx0ZWxlbS50YWJJbmRleCA6XG5cdFx0XHRcdFx0LTE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59KTtcblxuaWYgKCAhc3VwcG9ydC5vcHRTZWxlY3RlZCApIHtcblx0alF1ZXJ5LnByb3BIb29rcy5zZWxlY3RlZCA9IHtcblx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0dmFyIHBhcmVudCA9IGVsZW0ucGFyZW50Tm9kZTtcblx0XHRcdGlmICggcGFyZW50ICYmIHBhcmVudC5wYXJlbnROb2RlICkge1xuXHRcdFx0XHRwYXJlbnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXHR9O1xufVxuXG5qUXVlcnkuZWFjaChbXG5cdFwidGFiSW5kZXhcIixcblx0XCJyZWFkT25seVwiLFxuXHRcIm1heExlbmd0aFwiLFxuXHRcImNlbGxTcGFjaW5nXCIsXG5cdFwiY2VsbFBhZGRpbmdcIixcblx0XCJyb3dTcGFuXCIsXG5cdFwiY29sU3BhblwiLFxuXHRcInVzZU1hcFwiLFxuXHRcImZyYW1lQm9yZGVyXCIsXG5cdFwiY29udGVudEVkaXRhYmxlXCJcbl0sIGZ1bmN0aW9uKCkge1xuXHRqUXVlcnkucHJvcEZpeFsgdGhpcy50b0xvd2VyQ2FzZSgpIF0gPSB0aGlzO1xufSk7XG5cblxuXG5cbnZhciByY2xhc3MgPSAvW1xcdFxcclxcblxcZl0vZztcblxualF1ZXJ5LmZuLmV4dGVuZCh7XG5cdGFkZENsYXNzOiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0dmFyIGNsYXNzZXMsIGVsZW0sIGN1ciwgY2xhenosIGosIGZpbmFsVmFsdWUsXG5cdFx0XHRwcm9jZWVkID0gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIHZhbHVlLFxuXHRcdFx0aSA9IDAsXG5cdFx0XHRsZW4gPSB0aGlzLmxlbmd0aDtcblxuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCBqICkge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS5hZGRDbGFzcyggdmFsdWUuY2FsbCggdGhpcywgaiwgdGhpcy5jbGFzc05hbWUgKSApO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0aWYgKCBwcm9jZWVkICkge1xuXHRcdFx0Ly8gVGhlIGRpc2p1bmN0aW9uIGhlcmUgaXMgZm9yIGJldHRlciBjb21wcmVzc2liaWxpdHkgKHNlZSByZW1vdmVDbGFzcylcblx0XHRcdGNsYXNzZXMgPSAoIHZhbHVlIHx8IFwiXCIgKS5tYXRjaCggcm5vdHdoaXRlICkgfHwgW107XG5cblx0XHRcdGZvciAoIDsgaSA8IGxlbjsgaSsrICkge1xuXHRcdFx0XHRlbGVtID0gdGhpc1sgaSBdO1xuXHRcdFx0XHRjdXIgPSBlbGVtLm5vZGVUeXBlID09PSAxICYmICggZWxlbS5jbGFzc05hbWUgP1xuXHRcdFx0XHRcdCggXCIgXCIgKyBlbGVtLmNsYXNzTmFtZSArIFwiIFwiICkucmVwbGFjZSggcmNsYXNzLCBcIiBcIiApIDpcblx0XHRcdFx0XHRcIiBcIlxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdGlmICggY3VyICkge1xuXHRcdFx0XHRcdGogPSAwO1xuXHRcdFx0XHRcdHdoaWxlICggKGNsYXp6ID0gY2xhc3Nlc1tqKytdKSApIHtcblx0XHRcdFx0XHRcdGlmICggY3VyLmluZGV4T2YoIFwiIFwiICsgY2xhenogKyBcIiBcIiApIDwgMCApIHtcblx0XHRcdFx0XHRcdFx0Y3VyICs9IGNsYXp6ICsgXCIgXCI7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gb25seSBhc3NpZ24gaWYgZGlmZmVyZW50IHRvIGF2b2lkIHVubmVlZGVkIHJlbmRlcmluZy5cblx0XHRcdFx0XHRmaW5hbFZhbHVlID0galF1ZXJ5LnRyaW0oIGN1ciApO1xuXHRcdFx0XHRcdGlmICggZWxlbS5jbGFzc05hbWUgIT09IGZpbmFsVmFsdWUgKSB7XG5cdFx0XHRcdFx0XHRlbGVtLmNsYXNzTmFtZSA9IGZpbmFsVmFsdWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH0sXG5cblx0cmVtb3ZlQ2xhc3M6IGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHR2YXIgY2xhc3NlcywgZWxlbSwgY3VyLCBjbGF6eiwgaiwgZmluYWxWYWx1ZSxcblx0XHRcdHByb2NlZWQgPSBhcmd1bWVudHMubGVuZ3RoID09PSAwIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWx1ZSxcblx0XHRcdGkgPSAwLFxuXHRcdFx0bGVuID0gdGhpcy5sZW5ndGg7XG5cblx0XHRpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCB2YWx1ZSApICkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiggaiApIHtcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkucmVtb3ZlQ2xhc3MoIHZhbHVlLmNhbGwoIHRoaXMsIGosIHRoaXMuY2xhc3NOYW1lICkgKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRpZiAoIHByb2NlZWQgKSB7XG5cdFx0XHRjbGFzc2VzID0gKCB2YWx1ZSB8fCBcIlwiICkubWF0Y2goIHJub3R3aGl0ZSApIHx8IFtdO1xuXG5cdFx0XHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdFx0ZWxlbSA9IHRoaXNbIGkgXTtcblx0XHRcdFx0Ly8gVGhpcyBleHByZXNzaW9uIGlzIGhlcmUgZm9yIGJldHRlciBjb21wcmVzc2liaWxpdHkgKHNlZSBhZGRDbGFzcylcblx0XHRcdFx0Y3VyID0gZWxlbS5ub2RlVHlwZSA9PT0gMSAmJiAoIGVsZW0uY2xhc3NOYW1lID9cblx0XHRcdFx0XHQoIFwiIFwiICsgZWxlbS5jbGFzc05hbWUgKyBcIiBcIiApLnJlcGxhY2UoIHJjbGFzcywgXCIgXCIgKSA6XG5cdFx0XHRcdFx0XCJcIlxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdGlmICggY3VyICkge1xuXHRcdFx0XHRcdGogPSAwO1xuXHRcdFx0XHRcdHdoaWxlICggKGNsYXp6ID0gY2xhc3Nlc1tqKytdKSApIHtcblx0XHRcdFx0XHRcdC8vIFJlbW92ZSAqYWxsKiBpbnN0YW5jZXNcblx0XHRcdFx0XHRcdHdoaWxlICggY3VyLmluZGV4T2YoIFwiIFwiICsgY2xhenogKyBcIiBcIiApID49IDAgKSB7XG5cdFx0XHRcdFx0XHRcdGN1ciA9IGN1ci5yZXBsYWNlKCBcIiBcIiArIGNsYXp6ICsgXCIgXCIsIFwiIFwiICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gT25seSBhc3NpZ24gaWYgZGlmZmVyZW50IHRvIGF2b2lkIHVubmVlZGVkIHJlbmRlcmluZy5cblx0XHRcdFx0XHRmaW5hbFZhbHVlID0gdmFsdWUgPyBqUXVlcnkudHJpbSggY3VyICkgOiBcIlwiO1xuXHRcdFx0XHRcdGlmICggZWxlbS5jbGFzc05hbWUgIT09IGZpbmFsVmFsdWUgKSB7XG5cdFx0XHRcdFx0XHRlbGVtLmNsYXNzTmFtZSA9IGZpbmFsVmFsdWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH0sXG5cblx0dG9nZ2xlQ2xhc3M6IGZ1bmN0aW9uKCB2YWx1ZSwgc3RhdGVWYWwgKSB7XG5cdFx0dmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG5cblx0XHRpZiAoIHR5cGVvZiBzdGF0ZVZhbCA9PT0gXCJib29sZWFuXCIgJiYgdHlwZSA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHJldHVybiBzdGF0ZVZhbCA/IHRoaXMuYWRkQ2xhc3MoIHZhbHVlICkgOiB0aGlzLnJlbW92ZUNsYXNzKCB2YWx1ZSApO1xuXHRcdH1cblxuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCBpICkge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS50b2dnbGVDbGFzcyggdmFsdWUuY2FsbCh0aGlzLCBpLCB0aGlzLmNsYXNzTmFtZSwgc3RhdGVWYWwpLCBzdGF0ZVZhbCApO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcblx0XHRcdGlmICggdHlwZSA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdFx0Ly8gVG9nZ2xlIGluZGl2aWR1YWwgY2xhc3MgbmFtZXNcblx0XHRcdFx0dmFyIGNsYXNzTmFtZSxcblx0XHRcdFx0XHRpID0gMCxcblx0XHRcdFx0XHRzZWxmID0galF1ZXJ5KCB0aGlzICksXG5cdFx0XHRcdFx0Y2xhc3NOYW1lcyA9IHZhbHVlLm1hdGNoKCBybm90d2hpdGUgKSB8fCBbXTtcblxuXHRcdFx0XHR3aGlsZSAoIChjbGFzc05hbWUgPSBjbGFzc05hbWVzWyBpKysgXSkgKSB7XG5cdFx0XHRcdFx0Ly8gQ2hlY2sgZWFjaCBjbGFzc05hbWUgZ2l2ZW4sIHNwYWNlIHNlcGFyYXRlZCBsaXN0XG5cdFx0XHRcdFx0aWYgKCBzZWxmLmhhc0NsYXNzKCBjbGFzc05hbWUgKSApIHtcblx0XHRcdFx0XHRcdHNlbGYucmVtb3ZlQ2xhc3MoIGNsYXNzTmFtZSApO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRzZWxmLmFkZENsYXNzKCBjbGFzc05hbWUgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0Ly8gVG9nZ2xlIHdob2xlIGNsYXNzIG5hbWVcblx0XHRcdH0gZWxzZSBpZiAoIHR5cGUgPT09IHN0cnVuZGVmaW5lZCB8fCB0eXBlID09PSBcImJvb2xlYW5cIiApIHtcblx0XHRcdFx0aWYgKCB0aGlzLmNsYXNzTmFtZSApIHtcblx0XHRcdFx0XHQvLyBzdG9yZSBjbGFzc05hbWUgaWYgc2V0XG5cdFx0XHRcdFx0ZGF0YV9wcml2LnNldCggdGhpcywgXCJfX2NsYXNzTmFtZV9fXCIsIHRoaXMuY2xhc3NOYW1lICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBJZiB0aGUgZWxlbWVudCBoYXMgYSBjbGFzcyBuYW1lIG9yIGlmIHdlJ3JlIHBhc3NlZCBgZmFsc2VgLFxuXHRcdFx0XHQvLyB0aGVuIHJlbW92ZSB0aGUgd2hvbGUgY2xhc3NuYW1lIChpZiB0aGVyZSB3YXMgb25lLCB0aGUgYWJvdmUgc2F2ZWQgaXQpLlxuXHRcdFx0XHQvLyBPdGhlcndpc2UgYnJpbmcgYmFjayB3aGF0ZXZlciB3YXMgcHJldmlvdXNseSBzYXZlZCAoaWYgYW55dGhpbmcpLFxuXHRcdFx0XHQvLyBmYWxsaW5nIGJhY2sgdG8gdGhlIGVtcHR5IHN0cmluZyBpZiBub3RoaW5nIHdhcyBzdG9yZWQuXG5cdFx0XHRcdHRoaXMuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWUgfHwgdmFsdWUgPT09IGZhbHNlID8gXCJcIiA6IGRhdGFfcHJpdi5nZXQoIHRoaXMsIFwiX19jbGFzc05hbWVfX1wiICkgfHwgXCJcIjtcblx0XHRcdH1cblx0XHR9KTtcblx0fSxcblxuXHRoYXNDbGFzczogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHZhciBjbGFzc05hbWUgPSBcIiBcIiArIHNlbGVjdG9yICsgXCIgXCIsXG5cdFx0XHRpID0gMCxcblx0XHRcdGwgPSB0aGlzLmxlbmd0aDtcblx0XHRmb3IgKCA7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRpZiAoIHRoaXNbaV0ubm9kZVR5cGUgPT09IDEgJiYgKFwiIFwiICsgdGhpc1tpXS5jbGFzc05hbWUgKyBcIiBcIikucmVwbGFjZShyY2xhc3MsIFwiIFwiKS5pbmRleE9mKCBjbGFzc05hbWUgKSA+PSAwICkge1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn0pO1xuXG5cblxuXG52YXIgcnJldHVybiA9IC9cXHIvZztcblxualF1ZXJ5LmZuLmV4dGVuZCh7XG5cdHZhbDogZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdHZhciBob29rcywgcmV0LCBpc0Z1bmN0aW9uLFxuXHRcdFx0ZWxlbSA9IHRoaXNbMF07XG5cblx0XHRpZiAoICFhcmd1bWVudHMubGVuZ3RoICkge1xuXHRcdFx0aWYgKCBlbGVtICkge1xuXHRcdFx0XHRob29rcyA9IGpRdWVyeS52YWxIb29rc1sgZWxlbS50eXBlIF0gfHwgalF1ZXJ5LnZhbEhvb2tzWyBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgXTtcblxuXHRcdFx0XHRpZiAoIGhvb2tzICYmIFwiZ2V0XCIgaW4gaG9va3MgJiYgKHJldCA9IGhvb2tzLmdldCggZWxlbSwgXCJ2YWx1ZVwiICkpICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldCA9IGVsZW0udmFsdWU7XG5cblx0XHRcdFx0cmV0dXJuIHR5cGVvZiByZXQgPT09IFwic3RyaW5nXCIgP1xuXHRcdFx0XHRcdC8vIEhhbmRsZSBtb3N0IGNvbW1vbiBzdHJpbmcgY2FzZXNcblx0XHRcdFx0XHRyZXQucmVwbGFjZShycmV0dXJuLCBcIlwiKSA6XG5cdFx0XHRcdFx0Ly8gSGFuZGxlIGNhc2VzIHdoZXJlIHZhbHVlIGlzIG51bGwvdW5kZWYgb3IgbnVtYmVyXG5cdFx0XHRcdFx0cmV0ID09IG51bGwgPyBcIlwiIDogcmV0O1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aXNGdW5jdGlvbiA9IGpRdWVyeS5pc0Z1bmN0aW9uKCB2YWx1ZSApO1xuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiggaSApIHtcblx0XHRcdHZhciB2YWw7XG5cblx0XHRcdGlmICggdGhpcy5ub2RlVHlwZSAhPT0gMSApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIGlzRnVuY3Rpb24gKSB7XG5cdFx0XHRcdHZhbCA9IHZhbHVlLmNhbGwoIHRoaXMsIGksIGpRdWVyeSggdGhpcyApLnZhbCgpICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR2YWwgPSB2YWx1ZTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gVHJlYXQgbnVsbC91bmRlZmluZWQgYXMgXCJcIjsgY29udmVydCBudW1iZXJzIHRvIHN0cmluZ1xuXHRcdFx0aWYgKCB2YWwgPT0gbnVsbCApIHtcblx0XHRcdFx0dmFsID0gXCJcIjtcblxuXHRcdFx0fSBlbHNlIGlmICggdHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIiApIHtcblx0XHRcdFx0dmFsICs9IFwiXCI7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGpRdWVyeS5pc0FycmF5KCB2YWwgKSApIHtcblx0XHRcdFx0dmFsID0galF1ZXJ5Lm1hcCggdmFsLCBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHZhbHVlID09IG51bGwgPyBcIlwiIDogdmFsdWUgKyBcIlwiO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblxuXHRcdFx0aG9va3MgPSBqUXVlcnkudmFsSG9va3NbIHRoaXMudHlwZSBdIHx8IGpRdWVyeS52YWxIb29rc1sgdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIF07XG5cblx0XHRcdC8vIElmIHNldCByZXR1cm5zIHVuZGVmaW5lZCwgZmFsbCBiYWNrIHRvIG5vcm1hbCBzZXR0aW5nXG5cdFx0XHRpZiAoICFob29rcyB8fCAhKFwic2V0XCIgaW4gaG9va3MpIHx8IGhvb2tzLnNldCggdGhpcywgdmFsLCBcInZhbHVlXCIgKSA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHR0aGlzLnZhbHVlID0gdmFsO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59KTtcblxualF1ZXJ5LmV4dGVuZCh7XG5cdHZhbEhvb2tzOiB7XG5cdFx0b3B0aW9uOiB7XG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHR2YXIgdmFsID0galF1ZXJ5LmZpbmQuYXR0ciggZWxlbSwgXCJ2YWx1ZVwiICk7XG5cdFx0XHRcdHJldHVybiB2YWwgIT0gbnVsbCA/XG5cdFx0XHRcdFx0dmFsIDpcblx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRTEwLTExK1xuXHRcdFx0XHRcdC8vIG9wdGlvbi50ZXh0IHRocm93cyBleGNlcHRpb25zICgjMTQ2ODYsICMxNDg1OClcblx0XHRcdFx0XHRqUXVlcnkudHJpbSggalF1ZXJ5LnRleHQoIGVsZW0gKSApO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0c2VsZWN0OiB7XG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHR2YXIgdmFsdWUsIG9wdGlvbixcblx0XHRcdFx0XHRvcHRpb25zID0gZWxlbS5vcHRpb25zLFxuXHRcdFx0XHRcdGluZGV4ID0gZWxlbS5zZWxlY3RlZEluZGV4LFxuXHRcdFx0XHRcdG9uZSA9IGVsZW0udHlwZSA9PT0gXCJzZWxlY3Qtb25lXCIgfHwgaW5kZXggPCAwLFxuXHRcdFx0XHRcdHZhbHVlcyA9IG9uZSA/IG51bGwgOiBbXSxcblx0XHRcdFx0XHRtYXggPSBvbmUgPyBpbmRleCArIDEgOiBvcHRpb25zLmxlbmd0aCxcblx0XHRcdFx0XHRpID0gaW5kZXggPCAwID9cblx0XHRcdFx0XHRcdG1heCA6XG5cdFx0XHRcdFx0XHRvbmUgPyBpbmRleCA6IDA7XG5cblx0XHRcdFx0Ly8gTG9vcCB0aHJvdWdoIGFsbCB0aGUgc2VsZWN0ZWQgb3B0aW9uc1xuXHRcdFx0XHRmb3IgKCA7IGkgPCBtYXg7IGkrKyApIHtcblx0XHRcdFx0XHRvcHRpb24gPSBvcHRpb25zWyBpIF07XG5cblx0XHRcdFx0XHQvLyBJRTYtOSBkb2Vzbid0IHVwZGF0ZSBzZWxlY3RlZCBhZnRlciBmb3JtIHJlc2V0ICgjMjU1MSlcblx0XHRcdFx0XHRpZiAoICggb3B0aW9uLnNlbGVjdGVkIHx8IGkgPT09IGluZGV4ICkgJiZcblx0XHRcdFx0XHRcdFx0Ly8gRG9uJ3QgcmV0dXJuIG9wdGlvbnMgdGhhdCBhcmUgZGlzYWJsZWQgb3IgaW4gYSBkaXNhYmxlZCBvcHRncm91cFxuXHRcdFx0XHRcdFx0XHQoIHN1cHBvcnQub3B0RGlzYWJsZWQgPyAhb3B0aW9uLmRpc2FibGVkIDogb3B0aW9uLmdldEF0dHJpYnV0ZSggXCJkaXNhYmxlZFwiICkgPT09IG51bGwgKSAmJlxuXHRcdFx0XHRcdFx0XHQoICFvcHRpb24ucGFyZW50Tm9kZS5kaXNhYmxlZCB8fCAhalF1ZXJ5Lm5vZGVOYW1lKCBvcHRpb24ucGFyZW50Tm9kZSwgXCJvcHRncm91cFwiICkgKSApIHtcblxuXHRcdFx0XHRcdFx0Ly8gR2V0IHRoZSBzcGVjaWZpYyB2YWx1ZSBmb3IgdGhlIG9wdGlvblxuXHRcdFx0XHRcdFx0dmFsdWUgPSBqUXVlcnkoIG9wdGlvbiApLnZhbCgpO1xuXG5cdFx0XHRcdFx0XHQvLyBXZSBkb24ndCBuZWVkIGFuIGFycmF5IGZvciBvbmUgc2VsZWN0c1xuXHRcdFx0XHRcdFx0aWYgKCBvbmUgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gTXVsdGktU2VsZWN0cyByZXR1cm4gYW4gYXJyYXlcblx0XHRcdFx0XHRcdHZhbHVlcy5wdXNoKCB2YWx1ZSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiB2YWx1ZXM7XG5cdFx0XHR9LFxuXG5cdFx0XHRzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHtcblx0XHRcdFx0dmFyIG9wdGlvblNldCwgb3B0aW9uLFxuXHRcdFx0XHRcdG9wdGlvbnMgPSBlbGVtLm9wdGlvbnMsXG5cdFx0XHRcdFx0dmFsdWVzID0galF1ZXJ5Lm1ha2VBcnJheSggdmFsdWUgKSxcblx0XHRcdFx0XHRpID0gb3B0aW9ucy5sZW5ndGg7XG5cblx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0b3B0aW9uID0gb3B0aW9uc1sgaSBdO1xuXHRcdFx0XHRcdGlmICggKG9wdGlvbi5zZWxlY3RlZCA9IGpRdWVyeS5pbkFycmF5KCBvcHRpb24udmFsdWUsIHZhbHVlcyApID49IDApICkge1xuXHRcdFx0XHRcdFx0b3B0aW9uU2V0ID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBGb3JjZSBicm93c2VycyB0byBiZWhhdmUgY29uc2lzdGVudGx5IHdoZW4gbm9uLW1hdGNoaW5nIHZhbHVlIGlzIHNldFxuXHRcdFx0XHRpZiAoICFvcHRpb25TZXQgKSB7XG5cdFx0XHRcdFx0ZWxlbS5zZWxlY3RlZEluZGV4ID0gLTE7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHZhbHVlcztcblx0XHRcdH1cblx0XHR9XG5cdH1cbn0pO1xuXG4vLyBSYWRpb3MgYW5kIGNoZWNrYm94ZXMgZ2V0dGVyL3NldHRlclxualF1ZXJ5LmVhY2goWyBcInJhZGlvXCIsIFwiY2hlY2tib3hcIiBdLCBmdW5jdGlvbigpIHtcblx0alF1ZXJ5LnZhbEhvb2tzWyB0aGlzIF0gPSB7XG5cdFx0c2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7XG5cdFx0XHRpZiAoIGpRdWVyeS5pc0FycmF5KCB2YWx1ZSApICkge1xuXHRcdFx0XHRyZXR1cm4gKCBlbGVtLmNoZWNrZWQgPSBqUXVlcnkuaW5BcnJheSggalF1ZXJ5KGVsZW0pLnZhbCgpLCB2YWx1ZSApID49IDAgKTtcblx0XHRcdH1cblx0XHR9XG5cdH07XG5cdGlmICggIXN1cHBvcnQuY2hlY2tPbiApIHtcblx0XHRqUXVlcnkudmFsSG9va3NbIHRoaXMgXS5nZXQgPSBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiBlbGVtLmdldEF0dHJpYnV0ZShcInZhbHVlXCIpID09PSBudWxsID8gXCJvblwiIDogZWxlbS52YWx1ZTtcblx0XHR9O1xuXHR9XG59KTtcblxuXG5cblxuLy8gUmV0dXJuIGpRdWVyeSBmb3IgYXR0cmlidXRlcy1vbmx5IGluY2x1c2lvblxuXG5cbmpRdWVyeS5lYWNoKCAoXCJibHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgbG9hZCByZXNpemUgc2Nyb2xsIHVubG9hZCBjbGljayBkYmxjbGljayBcIiArXG5cdFwibW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgXCIgK1xuXHRcImNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IgY29udGV4dG1lbnVcIikuc3BsaXQoXCIgXCIpLCBmdW5jdGlvbiggaSwgbmFtZSApIHtcblxuXHQvLyBIYW5kbGUgZXZlbnQgYmluZGluZ1xuXHRqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCBkYXRhLCBmbiApIHtcblx0XHRyZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA+IDAgP1xuXHRcdFx0dGhpcy5vbiggbmFtZSwgbnVsbCwgZGF0YSwgZm4gKSA6XG5cdFx0XHR0aGlzLnRyaWdnZXIoIG5hbWUgKTtcblx0fTtcbn0pO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKHtcblx0aG92ZXI6IGZ1bmN0aW9uKCBmbk92ZXIsIGZuT3V0ICkge1xuXHRcdHJldHVybiB0aGlzLm1vdXNlZW50ZXIoIGZuT3ZlciApLm1vdXNlbGVhdmUoIGZuT3V0IHx8IGZuT3ZlciApO1xuXHR9LFxuXG5cdGJpbmQ6IGZ1bmN0aW9uKCB0eXBlcywgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub24oIHR5cGVzLCBudWxsLCBkYXRhLCBmbiApO1xuXHR9LFxuXHR1bmJpbmQ6IGZ1bmN0aW9uKCB0eXBlcywgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub2ZmKCB0eXBlcywgbnVsbCwgZm4gKTtcblx0fSxcblxuXHRkZWxlZ2F0ZTogZnVuY3Rpb24oIHNlbGVjdG9yLCB0eXBlcywgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKTtcblx0fSxcblx0dW5kZWxlZ2F0ZTogZnVuY3Rpb24oIHNlbGVjdG9yLCB0eXBlcywgZm4gKSB7XG5cdFx0Ly8gKCBuYW1lc3BhY2UgKSBvciAoIHNlbGVjdG9yLCB0eXBlcyBbLCBmbl0gKVxuXHRcdHJldHVybiBhcmd1bWVudHMubGVuZ3RoID09PSAxID8gdGhpcy5vZmYoIHNlbGVjdG9yLCBcIioqXCIgKSA6IHRoaXMub2ZmKCB0eXBlcywgc2VsZWN0b3IgfHwgXCIqKlwiLCBmbiApO1xuXHR9XG59KTtcblxuXG52YXIgbm9uY2UgPSBqUXVlcnkubm93KCk7XG5cbnZhciBycXVlcnkgPSAoL1xcPy8pO1xuXG5cblxuLy8gU3VwcG9ydDogQW5kcm9pZCAyLjNcbi8vIFdvcmthcm91bmQgZmFpbHVyZSB0byBzdHJpbmctY2FzdCBudWxsIGlucHV0XG5qUXVlcnkucGFyc2VKU09OID0gZnVuY3Rpb24oIGRhdGEgKSB7XG5cdHJldHVybiBKU09OLnBhcnNlKCBkYXRhICsgXCJcIiApO1xufTtcblxuXG4vLyBDcm9zcy1icm93c2VyIHhtbCBwYXJzaW5nXG5qUXVlcnkucGFyc2VYTUwgPSBmdW5jdGlvbiggZGF0YSApIHtcblx0dmFyIHhtbCwgdG1wO1xuXHRpZiAoICFkYXRhIHx8IHR5cGVvZiBkYXRhICE9PSBcInN0cmluZ1wiICkge1xuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cblx0Ly8gU3VwcG9ydDogSUU5XG5cdHRyeSB7XG5cdFx0dG1wID0gbmV3IERPTVBhcnNlcigpO1xuXHRcdHhtbCA9IHRtcC5wYXJzZUZyb21TdHJpbmcoIGRhdGEsIFwidGV4dC94bWxcIiApO1xuXHR9IGNhdGNoICggZSApIHtcblx0XHR4bWwgPSB1bmRlZmluZWQ7XG5cdH1cblxuXHRpZiAoICF4bWwgfHwgeG1sLmdldEVsZW1lbnRzQnlUYWdOYW1lKCBcInBhcnNlcmVycm9yXCIgKS5sZW5ndGggKSB7XG5cdFx0alF1ZXJ5LmVycm9yKCBcIkludmFsaWQgWE1MOiBcIiArIGRhdGEgKTtcblx0fVxuXHRyZXR1cm4geG1sO1xufTtcblxuXG52YXJcblx0cmhhc2ggPSAvIy4qJC8sXG5cdHJ0cyA9IC8oWz8mXSlfPVteJl0qLyxcblx0cmhlYWRlcnMgPSAvXiguKj8pOlsgXFx0XSooW15cXHJcXG5dKikkL21nLFxuXHQvLyAjNzY1MywgIzgxMjUsICM4MTUyOiBsb2NhbCBwcm90b2NvbCBkZXRlY3Rpb25cblx0cmxvY2FsUHJvdG9jb2wgPSAvXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxcblx0cm5vQ29udGVudCA9IC9eKD86R0VUfEhFQUQpJC8sXG5cdHJwcm90b2NvbCA9IC9eXFwvXFwvLyxcblx0cnVybCA9IC9eKFtcXHcuKy1dKzopKD86XFwvXFwvKD86W15cXC8/I10qQHwpKFteXFwvPyM6XSopKD86OihcXGQrKXwpfCkvLFxuXG5cdC8qIFByZWZpbHRlcnNcblx0ICogMSkgVGhleSBhcmUgdXNlZnVsIHRvIGludHJvZHVjZSBjdXN0b20gZGF0YVR5cGVzIChzZWUgYWpheC9qc29ucC5qcyBmb3IgYW4gZXhhbXBsZSlcblx0ICogMikgVGhlc2UgYXJlIGNhbGxlZDpcblx0ICogICAgLSBCRUZPUkUgYXNraW5nIGZvciBhIHRyYW5zcG9ydFxuXHQgKiAgICAtIEFGVEVSIHBhcmFtIHNlcmlhbGl6YXRpb24gKHMuZGF0YSBpcyBhIHN0cmluZyBpZiBzLnByb2Nlc3NEYXRhIGlzIHRydWUpXG5cdCAqIDMpIGtleSBpcyB0aGUgZGF0YVR5cGVcblx0ICogNCkgdGhlIGNhdGNoYWxsIHN5bWJvbCBcIipcIiBjYW4gYmUgdXNlZFxuXHQgKiA1KSBleGVjdXRpb24gd2lsbCBzdGFydCB3aXRoIHRyYW5zcG9ydCBkYXRhVHlwZSBhbmQgVEhFTiBjb250aW51ZSBkb3duIHRvIFwiKlwiIGlmIG5lZWRlZFxuXHQgKi9cblx0cHJlZmlsdGVycyA9IHt9LFxuXG5cdC8qIFRyYW5zcG9ydHMgYmluZGluZ3Ncblx0ICogMSkga2V5IGlzIHRoZSBkYXRhVHlwZVxuXHQgKiAyKSB0aGUgY2F0Y2hhbGwgc3ltYm9sIFwiKlwiIGNhbiBiZSB1c2VkXG5cdCAqIDMpIHNlbGVjdGlvbiB3aWxsIHN0YXJ0IHdpdGggdHJhbnNwb3J0IGRhdGFUeXBlIGFuZCBUSEVOIGdvIHRvIFwiKlwiIGlmIG5lZWRlZFxuXHQgKi9cblx0dHJhbnNwb3J0cyA9IHt9LFxuXG5cdC8vIEF2b2lkIGNvbW1lbnQtcHJvbG9nIGNoYXIgc2VxdWVuY2UgKCMxMDA5OCk7IG11c3QgYXBwZWFzZSBsaW50IGFuZCBldmFkZSBjb21wcmVzc2lvblxuXHRhbGxUeXBlcyA9IFwiKi9cIi5jb25jYXQoIFwiKlwiICksXG5cblx0Ly8gRG9jdW1lbnQgbG9jYXRpb25cblx0YWpheExvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLmhyZWYsXG5cblx0Ly8gU2VnbWVudCBsb2NhdGlvbiBpbnRvIHBhcnRzXG5cdGFqYXhMb2NQYXJ0cyA9IHJ1cmwuZXhlYyggYWpheExvY2F0aW9uLnRvTG93ZXJDYXNlKCkgKSB8fCBbXTtcblxuLy8gQmFzZSBcImNvbnN0cnVjdG9yXCIgZm9yIGpRdWVyeS5hamF4UHJlZmlsdGVyIGFuZCBqUXVlcnkuYWpheFRyYW5zcG9ydFxuZnVuY3Rpb24gYWRkVG9QcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBzdHJ1Y3R1cmUgKSB7XG5cblx0Ly8gZGF0YVR5cGVFeHByZXNzaW9uIGlzIG9wdGlvbmFsIGFuZCBkZWZhdWx0cyB0byBcIipcIlxuXHRyZXR1cm4gZnVuY3Rpb24oIGRhdGFUeXBlRXhwcmVzc2lvbiwgZnVuYyApIHtcblxuXHRcdGlmICggdHlwZW9mIGRhdGFUeXBlRXhwcmVzc2lvbiAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdGZ1bmMgPSBkYXRhVHlwZUV4cHJlc3Npb247XG5cdFx0XHRkYXRhVHlwZUV4cHJlc3Npb24gPSBcIipcIjtcblx0XHR9XG5cblx0XHR2YXIgZGF0YVR5cGUsXG5cdFx0XHRpID0gMCxcblx0XHRcdGRhdGFUeXBlcyA9IGRhdGFUeXBlRXhwcmVzc2lvbi50b0xvd2VyQ2FzZSgpLm1hdGNoKCBybm90d2hpdGUgKSB8fCBbXTtcblxuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIGZ1bmMgKSApIHtcblx0XHRcdC8vIEZvciBlYWNoIGRhdGFUeXBlIGluIHRoZSBkYXRhVHlwZUV4cHJlc3Npb25cblx0XHRcdHdoaWxlICggKGRhdGFUeXBlID0gZGF0YVR5cGVzW2krK10pICkge1xuXHRcdFx0XHQvLyBQcmVwZW5kIGlmIHJlcXVlc3RlZFxuXHRcdFx0XHRpZiAoIGRhdGFUeXBlWzBdID09PSBcIitcIiApIHtcblx0XHRcdFx0XHRkYXRhVHlwZSA9IGRhdGFUeXBlLnNsaWNlKCAxICkgfHwgXCIqXCI7XG5cdFx0XHRcdFx0KHN0cnVjdHVyZVsgZGF0YVR5cGUgXSA9IHN0cnVjdHVyZVsgZGF0YVR5cGUgXSB8fCBbXSkudW5zaGlmdCggZnVuYyApO1xuXG5cdFx0XHRcdC8vIE90aGVyd2lzZSBhcHBlbmRcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQoc3RydWN0dXJlWyBkYXRhVHlwZSBdID0gc3RydWN0dXJlWyBkYXRhVHlwZSBdIHx8IFtdKS5wdXNoKCBmdW5jICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH07XG59XG5cbi8vIEJhc2UgaW5zcGVjdGlvbiBmdW5jdGlvbiBmb3IgcHJlZmlsdGVycyBhbmQgdHJhbnNwb3J0c1xuZnVuY3Rpb24gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHN0cnVjdHVyZSwgb3B0aW9ucywgb3JpZ2luYWxPcHRpb25zLCBqcVhIUiApIHtcblxuXHR2YXIgaW5zcGVjdGVkID0ge30sXG5cdFx0c2Vla2luZ1RyYW5zcG9ydCA9ICggc3RydWN0dXJlID09PSB0cmFuc3BvcnRzICk7XG5cblx0ZnVuY3Rpb24gaW5zcGVjdCggZGF0YVR5cGUgKSB7XG5cdFx0dmFyIHNlbGVjdGVkO1xuXHRcdGluc3BlY3RlZFsgZGF0YVR5cGUgXSA9IHRydWU7XG5cdFx0alF1ZXJ5LmVhY2goIHN0cnVjdHVyZVsgZGF0YVR5cGUgXSB8fCBbXSwgZnVuY3Rpb24oIF8sIHByZWZpbHRlck9yRmFjdG9yeSApIHtcblx0XHRcdHZhciBkYXRhVHlwZU9yVHJhbnNwb3J0ID0gcHJlZmlsdGVyT3JGYWN0b3J5KCBvcHRpb25zLCBvcmlnaW5hbE9wdGlvbnMsIGpxWEhSICk7XG5cdFx0XHRpZiAoIHR5cGVvZiBkYXRhVHlwZU9yVHJhbnNwb3J0ID09PSBcInN0cmluZ1wiICYmICFzZWVraW5nVHJhbnNwb3J0ICYmICFpbnNwZWN0ZWRbIGRhdGFUeXBlT3JUcmFuc3BvcnQgXSApIHtcblx0XHRcdFx0b3B0aW9ucy5kYXRhVHlwZXMudW5zaGlmdCggZGF0YVR5cGVPclRyYW5zcG9ydCApO1xuXHRcdFx0XHRpbnNwZWN0KCBkYXRhVHlwZU9yVHJhbnNwb3J0ICk7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH0gZWxzZSBpZiAoIHNlZWtpbmdUcmFuc3BvcnQgKSB7XG5cdFx0XHRcdHJldHVybiAhKCBzZWxlY3RlZCA9IGRhdGFUeXBlT3JUcmFuc3BvcnQgKTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRyZXR1cm4gc2VsZWN0ZWQ7XG5cdH1cblxuXHRyZXR1cm4gaW5zcGVjdCggb3B0aW9ucy5kYXRhVHlwZXNbIDAgXSApIHx8ICFpbnNwZWN0ZWRbIFwiKlwiIF0gJiYgaW5zcGVjdCggXCIqXCIgKTtcbn1cblxuLy8gQSBzcGVjaWFsIGV4dGVuZCBmb3IgYWpheCBvcHRpb25zXG4vLyB0aGF0IHRha2VzIFwiZmxhdFwiIG9wdGlvbnMgKG5vdCB0byBiZSBkZWVwIGV4dGVuZGVkKVxuLy8gRml4ZXMgIzk4ODdcbmZ1bmN0aW9uIGFqYXhFeHRlbmQoIHRhcmdldCwgc3JjICkge1xuXHR2YXIga2V5LCBkZWVwLFxuXHRcdGZsYXRPcHRpb25zID0galF1ZXJ5LmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9ucyB8fCB7fTtcblxuXHRmb3IgKCBrZXkgaW4gc3JjICkge1xuXHRcdGlmICggc3JjWyBrZXkgXSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0KCBmbGF0T3B0aW9uc1sga2V5IF0gPyB0YXJnZXQgOiAoIGRlZXAgfHwgKGRlZXAgPSB7fSkgKSApWyBrZXkgXSA9IHNyY1sga2V5IF07XG5cdFx0fVxuXHR9XG5cdGlmICggZGVlcCApIHtcblx0XHRqUXVlcnkuZXh0ZW5kKCB0cnVlLCB0YXJnZXQsIGRlZXAgKTtcblx0fVxuXG5cdHJldHVybiB0YXJnZXQ7XG59XG5cbi8qIEhhbmRsZXMgcmVzcG9uc2VzIHRvIGFuIGFqYXggcmVxdWVzdDpcbiAqIC0gZmluZHMgdGhlIHJpZ2h0IGRhdGFUeXBlIChtZWRpYXRlcyBiZXR3ZWVuIGNvbnRlbnQtdHlwZSBhbmQgZXhwZWN0ZWQgZGF0YVR5cGUpXG4gKiAtIHJldHVybnMgdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2VcbiAqL1xuZnVuY3Rpb24gYWpheEhhbmRsZVJlc3BvbnNlcyggcywganFYSFIsIHJlc3BvbnNlcyApIHtcblxuXHR2YXIgY3QsIHR5cGUsIGZpbmFsRGF0YVR5cGUsIGZpcnN0RGF0YVR5cGUsXG5cdFx0Y29udGVudHMgPSBzLmNvbnRlbnRzLFxuXHRcdGRhdGFUeXBlcyA9IHMuZGF0YVR5cGVzO1xuXG5cdC8vIFJlbW92ZSBhdXRvIGRhdGFUeXBlIGFuZCBnZXQgY29udGVudC10eXBlIGluIHRoZSBwcm9jZXNzXG5cdHdoaWxlICggZGF0YVR5cGVzWyAwIF0gPT09IFwiKlwiICkge1xuXHRcdGRhdGFUeXBlcy5zaGlmdCgpO1xuXHRcdGlmICggY3QgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdGN0ID0gcy5taW1lVHlwZSB8fCBqcVhIUi5nZXRSZXNwb25zZUhlYWRlcihcIkNvbnRlbnQtVHlwZVwiKTtcblx0XHR9XG5cdH1cblxuXHQvLyBDaGVjayBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBrbm93biBjb250ZW50LXR5cGVcblx0aWYgKCBjdCApIHtcblx0XHRmb3IgKCB0eXBlIGluIGNvbnRlbnRzICkge1xuXHRcdFx0aWYgKCBjb250ZW50c1sgdHlwZSBdICYmIGNvbnRlbnRzWyB0eXBlIF0udGVzdCggY3QgKSApIHtcblx0XHRcdFx0ZGF0YVR5cGVzLnVuc2hpZnQoIHR5cGUgKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gQ2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUgYSByZXNwb25zZSBmb3IgdGhlIGV4cGVjdGVkIGRhdGFUeXBlXG5cdGlmICggZGF0YVR5cGVzWyAwIF0gaW4gcmVzcG9uc2VzICkge1xuXHRcdGZpbmFsRGF0YVR5cGUgPSBkYXRhVHlwZXNbIDAgXTtcblx0fSBlbHNlIHtcblx0XHQvLyBUcnkgY29udmVydGlibGUgZGF0YVR5cGVzXG5cdFx0Zm9yICggdHlwZSBpbiByZXNwb25zZXMgKSB7XG5cdFx0XHRpZiAoICFkYXRhVHlwZXNbIDAgXSB8fCBzLmNvbnZlcnRlcnNbIHR5cGUgKyBcIiBcIiArIGRhdGFUeXBlc1swXSBdICkge1xuXHRcdFx0XHRmaW5hbERhdGFUeXBlID0gdHlwZTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0XHRpZiAoICFmaXJzdERhdGFUeXBlICkge1xuXHRcdFx0XHRmaXJzdERhdGFUeXBlID0gdHlwZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Ly8gT3IganVzdCB1c2UgZmlyc3Qgb25lXG5cdFx0ZmluYWxEYXRhVHlwZSA9IGZpbmFsRGF0YVR5cGUgfHwgZmlyc3REYXRhVHlwZTtcblx0fVxuXG5cdC8vIElmIHdlIGZvdW5kIGEgZGF0YVR5cGVcblx0Ly8gV2UgYWRkIHRoZSBkYXRhVHlwZSB0byB0aGUgbGlzdCBpZiBuZWVkZWRcblx0Ly8gYW5kIHJldHVybiB0aGUgY29ycmVzcG9uZGluZyByZXNwb25zZVxuXHRpZiAoIGZpbmFsRGF0YVR5cGUgKSB7XG5cdFx0aWYgKCBmaW5hbERhdGFUeXBlICE9PSBkYXRhVHlwZXNbIDAgXSApIHtcblx0XHRcdGRhdGFUeXBlcy51bnNoaWZ0KCBmaW5hbERhdGFUeXBlICk7XG5cdFx0fVxuXHRcdHJldHVybiByZXNwb25zZXNbIGZpbmFsRGF0YVR5cGUgXTtcblx0fVxufVxuXG4vKiBDaGFpbiBjb252ZXJzaW9ucyBnaXZlbiB0aGUgcmVxdWVzdCBhbmQgdGhlIG9yaWdpbmFsIHJlc3BvbnNlXG4gKiBBbHNvIHNldHMgdGhlIHJlc3BvbnNlWFhYIGZpZWxkcyBvbiB0aGUganFYSFIgaW5zdGFuY2VcbiAqL1xuZnVuY3Rpb24gYWpheENvbnZlcnQoIHMsIHJlc3BvbnNlLCBqcVhIUiwgaXNTdWNjZXNzICkge1xuXHR2YXIgY29udjIsIGN1cnJlbnQsIGNvbnYsIHRtcCwgcHJldixcblx0XHRjb252ZXJ0ZXJzID0ge30sXG5cdFx0Ly8gV29yayB3aXRoIGEgY29weSBvZiBkYXRhVHlwZXMgaW4gY2FzZSB3ZSBuZWVkIHRvIG1vZGlmeSBpdCBmb3IgY29udmVyc2lvblxuXHRcdGRhdGFUeXBlcyA9IHMuZGF0YVR5cGVzLnNsaWNlKCk7XG5cblx0Ly8gQ3JlYXRlIGNvbnZlcnRlcnMgbWFwIHdpdGggbG93ZXJjYXNlZCBrZXlzXG5cdGlmICggZGF0YVR5cGVzWyAxIF0gKSB7XG5cdFx0Zm9yICggY29udiBpbiBzLmNvbnZlcnRlcnMgKSB7XG5cdFx0XHRjb252ZXJ0ZXJzWyBjb252LnRvTG93ZXJDYXNlKCkgXSA9IHMuY29udmVydGVyc1sgY29udiBdO1xuXHRcdH1cblx0fVxuXG5cdGN1cnJlbnQgPSBkYXRhVHlwZXMuc2hpZnQoKTtcblxuXHQvLyBDb252ZXJ0IHRvIGVhY2ggc2VxdWVudGlhbCBkYXRhVHlwZVxuXHR3aGlsZSAoIGN1cnJlbnQgKSB7XG5cblx0XHRpZiAoIHMucmVzcG9uc2VGaWVsZHNbIGN1cnJlbnQgXSApIHtcblx0XHRcdGpxWEhSWyBzLnJlc3BvbnNlRmllbGRzWyBjdXJyZW50IF0gXSA9IHJlc3BvbnNlO1xuXHRcdH1cblxuXHRcdC8vIEFwcGx5IHRoZSBkYXRhRmlsdGVyIGlmIHByb3ZpZGVkXG5cdFx0aWYgKCAhcHJldiAmJiBpc1N1Y2Nlc3MgJiYgcy5kYXRhRmlsdGVyICkge1xuXHRcdFx0cmVzcG9uc2UgPSBzLmRhdGFGaWx0ZXIoIHJlc3BvbnNlLCBzLmRhdGFUeXBlICk7XG5cdFx0fVxuXG5cdFx0cHJldiA9IGN1cnJlbnQ7XG5cdFx0Y3VycmVudCA9IGRhdGFUeXBlcy5zaGlmdCgpO1xuXG5cdFx0aWYgKCBjdXJyZW50ICkge1xuXG5cdFx0Ly8gVGhlcmUncyBvbmx5IHdvcmsgdG8gZG8gaWYgY3VycmVudCBkYXRhVHlwZSBpcyBub24tYXV0b1xuXHRcdFx0aWYgKCBjdXJyZW50ID09PSBcIipcIiApIHtcblxuXHRcdFx0XHRjdXJyZW50ID0gcHJldjtcblxuXHRcdFx0Ly8gQ29udmVydCByZXNwb25zZSBpZiBwcmV2IGRhdGFUeXBlIGlzIG5vbi1hdXRvIGFuZCBkaWZmZXJzIGZyb20gY3VycmVudFxuXHRcdFx0fSBlbHNlIGlmICggcHJldiAhPT0gXCIqXCIgJiYgcHJldiAhPT0gY3VycmVudCApIHtcblxuXHRcdFx0XHQvLyBTZWVrIGEgZGlyZWN0IGNvbnZlcnRlclxuXHRcdFx0XHRjb252ID0gY29udmVydGVyc1sgcHJldiArIFwiIFwiICsgY3VycmVudCBdIHx8IGNvbnZlcnRlcnNbIFwiKiBcIiArIGN1cnJlbnQgXTtcblxuXHRcdFx0XHQvLyBJZiBub25lIGZvdW5kLCBzZWVrIGEgcGFpclxuXHRcdFx0XHRpZiAoICFjb252ICkge1xuXHRcdFx0XHRcdGZvciAoIGNvbnYyIGluIGNvbnZlcnRlcnMgKSB7XG5cblx0XHRcdFx0XHRcdC8vIElmIGNvbnYyIG91dHB1dHMgY3VycmVudFxuXHRcdFx0XHRcdFx0dG1wID0gY29udjIuc3BsaXQoIFwiIFwiICk7XG5cdFx0XHRcdFx0XHRpZiAoIHRtcFsgMSBdID09PSBjdXJyZW50ICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIElmIHByZXYgY2FuIGJlIGNvbnZlcnRlZCB0byBhY2NlcHRlZCBpbnB1dFxuXHRcdFx0XHRcdFx0XHRjb252ID0gY29udmVydGVyc1sgcHJldiArIFwiIFwiICsgdG1wWyAwIF0gXSB8fFxuXHRcdFx0XHRcdFx0XHRcdGNvbnZlcnRlcnNbIFwiKiBcIiArIHRtcFsgMCBdIF07XG5cdFx0XHRcdFx0XHRcdGlmICggY29udiApIHtcblx0XHRcdFx0XHRcdFx0XHQvLyBDb25kZW5zZSBlcXVpdmFsZW5jZSBjb252ZXJ0ZXJzXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCBjb252ID09PSB0cnVlICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29udiA9IGNvbnZlcnRlcnNbIGNvbnYyIF07XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBPdGhlcndpc2UsIGluc2VydCB0aGUgaW50ZXJtZWRpYXRlIGRhdGFUeXBlXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICggY29udmVydGVyc1sgY29udjIgXSAhPT0gdHJ1ZSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGN1cnJlbnQgPSB0bXBbIDAgXTtcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFUeXBlcy51bnNoaWZ0KCB0bXBbIDEgXSApO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEFwcGx5IGNvbnZlcnRlciAoaWYgbm90IGFuIGVxdWl2YWxlbmNlKVxuXHRcdFx0XHRpZiAoIGNvbnYgIT09IHRydWUgKSB7XG5cblx0XHRcdFx0XHQvLyBVbmxlc3MgZXJyb3JzIGFyZSBhbGxvd2VkIHRvIGJ1YmJsZSwgY2F0Y2ggYW5kIHJldHVybiB0aGVtXG5cdFx0XHRcdFx0aWYgKCBjb252ICYmIHNbIFwidGhyb3dzXCIgXSApIHtcblx0XHRcdFx0XHRcdHJlc3BvbnNlID0gY29udiggcmVzcG9uc2UgKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0cmVzcG9uc2UgPSBjb252KCByZXNwb25zZSApO1xuXHRcdFx0XHRcdFx0fSBjYXRjaCAoIGUgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB7IHN0YXRlOiBcInBhcnNlcmVycm9yXCIsIGVycm9yOiBjb252ID8gZSA6IFwiTm8gY29udmVyc2lvbiBmcm9tIFwiICsgcHJldiArIFwiIHRvIFwiICsgY3VycmVudCB9O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB7IHN0YXRlOiBcInN1Y2Nlc3NcIiwgZGF0YTogcmVzcG9uc2UgfTtcbn1cblxualF1ZXJ5LmV4dGVuZCh7XG5cblx0Ly8gQ291bnRlciBmb3IgaG9sZGluZyB0aGUgbnVtYmVyIG9mIGFjdGl2ZSBxdWVyaWVzXG5cdGFjdGl2ZTogMCxcblxuXHQvLyBMYXN0LU1vZGlmaWVkIGhlYWRlciBjYWNoZSBmb3IgbmV4dCByZXF1ZXN0XG5cdGxhc3RNb2RpZmllZDoge30sXG5cdGV0YWc6IHt9LFxuXG5cdGFqYXhTZXR0aW5nczoge1xuXHRcdHVybDogYWpheExvY2F0aW9uLFxuXHRcdHR5cGU6IFwiR0VUXCIsXG5cdFx0aXNMb2NhbDogcmxvY2FsUHJvdG9jb2wudGVzdCggYWpheExvY1BhcnRzWyAxIF0gKSxcblx0XHRnbG9iYWw6IHRydWUsXG5cdFx0cHJvY2Vzc0RhdGE6IHRydWUsXG5cdFx0YXN5bmM6IHRydWUsXG5cdFx0Y29udGVudFR5cGU6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04XCIsXG5cdFx0Lypcblx0XHR0aW1lb3V0OiAwLFxuXHRcdGRhdGE6IG51bGwsXG5cdFx0ZGF0YVR5cGU6IG51bGwsXG5cdFx0dXNlcm5hbWU6IG51bGwsXG5cdFx0cGFzc3dvcmQ6IG51bGwsXG5cdFx0Y2FjaGU6IG51bGwsXG5cdFx0dGhyb3dzOiBmYWxzZSxcblx0XHR0cmFkaXRpb25hbDogZmFsc2UsXG5cdFx0aGVhZGVyczoge30sXG5cdFx0Ki9cblxuXHRcdGFjY2VwdHM6IHtcblx0XHRcdFwiKlwiOiBhbGxUeXBlcyxcblx0XHRcdHRleHQ6IFwidGV4dC9wbGFpblwiLFxuXHRcdFx0aHRtbDogXCJ0ZXh0L2h0bWxcIixcblx0XHRcdHhtbDogXCJhcHBsaWNhdGlvbi94bWwsIHRleHQveG1sXCIsXG5cdFx0XHRqc29uOiBcImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdFwiXG5cdFx0fSxcblxuXHRcdGNvbnRlbnRzOiB7XG5cdFx0XHR4bWw6IC94bWwvLFxuXHRcdFx0aHRtbDogL2h0bWwvLFxuXHRcdFx0anNvbjogL2pzb24vXG5cdFx0fSxcblxuXHRcdHJlc3BvbnNlRmllbGRzOiB7XG5cdFx0XHR4bWw6IFwicmVzcG9uc2VYTUxcIixcblx0XHRcdHRleHQ6IFwicmVzcG9uc2VUZXh0XCIsXG5cdFx0XHRqc29uOiBcInJlc3BvbnNlSlNPTlwiXG5cdFx0fSxcblxuXHRcdC8vIERhdGEgY29udmVydGVyc1xuXHRcdC8vIEtleXMgc2VwYXJhdGUgc291cmNlIChvciBjYXRjaGFsbCBcIipcIikgYW5kIGRlc3RpbmF0aW9uIHR5cGVzIHdpdGggYSBzaW5nbGUgc3BhY2Vcblx0XHRjb252ZXJ0ZXJzOiB7XG5cblx0XHRcdC8vIENvbnZlcnQgYW55dGhpbmcgdG8gdGV4dFxuXHRcdFx0XCIqIHRleHRcIjogU3RyaW5nLFxuXG5cdFx0XHQvLyBUZXh0IHRvIGh0bWwgKHRydWUgPSBubyB0cmFuc2Zvcm1hdGlvbilcblx0XHRcdFwidGV4dCBodG1sXCI6IHRydWUsXG5cblx0XHRcdC8vIEV2YWx1YXRlIHRleHQgYXMgYSBqc29uIGV4cHJlc3Npb25cblx0XHRcdFwidGV4dCBqc29uXCI6IGpRdWVyeS5wYXJzZUpTT04sXG5cblx0XHRcdC8vIFBhcnNlIHRleHQgYXMgeG1sXG5cdFx0XHRcInRleHQgeG1sXCI6IGpRdWVyeS5wYXJzZVhNTFxuXHRcdH0sXG5cblx0XHQvLyBGb3Igb3B0aW9ucyB0aGF0IHNob3VsZG4ndCBiZSBkZWVwIGV4dGVuZGVkOlxuXHRcdC8vIHlvdSBjYW4gYWRkIHlvdXIgb3duIGN1c3RvbSBvcHRpb25zIGhlcmUgaWZcblx0XHQvLyBhbmQgd2hlbiB5b3UgY3JlYXRlIG9uZSB0aGF0IHNob3VsZG4ndCBiZVxuXHRcdC8vIGRlZXAgZXh0ZW5kZWQgKHNlZSBhamF4RXh0ZW5kKVxuXHRcdGZsYXRPcHRpb25zOiB7XG5cdFx0XHR1cmw6IHRydWUsXG5cdFx0XHRjb250ZXh0OiB0cnVlXG5cdFx0fVxuXHR9LFxuXG5cdC8vIENyZWF0ZXMgYSBmdWxsIGZsZWRnZWQgc2V0dGluZ3Mgb2JqZWN0IGludG8gdGFyZ2V0XG5cdC8vIHdpdGggYm90aCBhamF4U2V0dGluZ3MgYW5kIHNldHRpbmdzIGZpZWxkcy5cblx0Ly8gSWYgdGFyZ2V0IGlzIG9taXR0ZWQsIHdyaXRlcyBpbnRvIGFqYXhTZXR0aW5ncy5cblx0YWpheFNldHVwOiBmdW5jdGlvbiggdGFyZ2V0LCBzZXR0aW5ncyApIHtcblx0XHRyZXR1cm4gc2V0dGluZ3MgP1xuXG5cdFx0XHQvLyBCdWlsZGluZyBhIHNldHRpbmdzIG9iamVjdFxuXHRcdFx0YWpheEV4dGVuZCggYWpheEV4dGVuZCggdGFyZ2V0LCBqUXVlcnkuYWpheFNldHRpbmdzICksIHNldHRpbmdzICkgOlxuXG5cdFx0XHQvLyBFeHRlbmRpbmcgYWpheFNldHRpbmdzXG5cdFx0XHRhamF4RXh0ZW5kKCBqUXVlcnkuYWpheFNldHRpbmdzLCB0YXJnZXQgKTtcblx0fSxcblxuXHRhamF4UHJlZmlsdGVyOiBhZGRUb1ByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHByZWZpbHRlcnMgKSxcblx0YWpheFRyYW5zcG9ydDogYWRkVG9QcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCB0cmFuc3BvcnRzICksXG5cblx0Ly8gTWFpbiBtZXRob2Rcblx0YWpheDogZnVuY3Rpb24oIHVybCwgb3B0aW9ucyApIHtcblxuXHRcdC8vIElmIHVybCBpcyBhbiBvYmplY3QsIHNpbXVsYXRlIHByZS0xLjUgc2lnbmF0dXJlXG5cdFx0aWYgKCB0eXBlb2YgdXJsID09PSBcIm9iamVjdFwiICkge1xuXHRcdFx0b3B0aW9ucyA9IHVybDtcblx0XHRcdHVybCA9IHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHQvLyBGb3JjZSBvcHRpb25zIHRvIGJlIGFuIG9iamVjdFxuXHRcdG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG5cdFx0dmFyIHRyYW5zcG9ydCxcblx0XHRcdC8vIFVSTCB3aXRob3V0IGFudGktY2FjaGUgcGFyYW1cblx0XHRcdGNhY2hlVVJMLFxuXHRcdFx0Ly8gUmVzcG9uc2UgaGVhZGVyc1xuXHRcdFx0cmVzcG9uc2VIZWFkZXJzU3RyaW5nLFxuXHRcdFx0cmVzcG9uc2VIZWFkZXJzLFxuXHRcdFx0Ly8gdGltZW91dCBoYW5kbGVcblx0XHRcdHRpbWVvdXRUaW1lcixcblx0XHRcdC8vIENyb3NzLWRvbWFpbiBkZXRlY3Rpb24gdmFyc1xuXHRcdFx0cGFydHMsXG5cdFx0XHQvLyBUbyBrbm93IGlmIGdsb2JhbCBldmVudHMgYXJlIHRvIGJlIGRpc3BhdGNoZWRcblx0XHRcdGZpcmVHbG9iYWxzLFxuXHRcdFx0Ly8gTG9vcCB2YXJpYWJsZVxuXHRcdFx0aSxcblx0XHRcdC8vIENyZWF0ZSB0aGUgZmluYWwgb3B0aW9ucyBvYmplY3Rcblx0XHRcdHMgPSBqUXVlcnkuYWpheFNldHVwKCB7fSwgb3B0aW9ucyApLFxuXHRcdFx0Ly8gQ2FsbGJhY2tzIGNvbnRleHRcblx0XHRcdGNhbGxiYWNrQ29udGV4dCA9IHMuY29udGV4dCB8fCBzLFxuXHRcdFx0Ly8gQ29udGV4dCBmb3IgZ2xvYmFsIGV2ZW50cyBpcyBjYWxsYmFja0NvbnRleHQgaWYgaXQgaXMgYSBET00gbm9kZSBvciBqUXVlcnkgY29sbGVjdGlvblxuXHRcdFx0Z2xvYmFsRXZlbnRDb250ZXh0ID0gcy5jb250ZXh0ICYmICggY2FsbGJhY2tDb250ZXh0Lm5vZGVUeXBlIHx8IGNhbGxiYWNrQ29udGV4dC5qcXVlcnkgKSA/XG5cdFx0XHRcdGpRdWVyeSggY2FsbGJhY2tDb250ZXh0ICkgOlxuXHRcdFx0XHRqUXVlcnkuZXZlbnQsXG5cdFx0XHQvLyBEZWZlcnJlZHNcblx0XHRcdGRlZmVycmVkID0galF1ZXJ5LkRlZmVycmVkKCksXG5cdFx0XHRjb21wbGV0ZURlZmVycmVkID0galF1ZXJ5LkNhbGxiYWNrcyhcIm9uY2UgbWVtb3J5XCIpLFxuXHRcdFx0Ly8gU3RhdHVzLWRlcGVuZGVudCBjYWxsYmFja3Ncblx0XHRcdHN0YXR1c0NvZGUgPSBzLnN0YXR1c0NvZGUgfHwge30sXG5cdFx0XHQvLyBIZWFkZXJzICh0aGV5IGFyZSBzZW50IGFsbCBhdCBvbmNlKVxuXHRcdFx0cmVxdWVzdEhlYWRlcnMgPSB7fSxcblx0XHRcdHJlcXVlc3RIZWFkZXJzTmFtZXMgPSB7fSxcblx0XHRcdC8vIFRoZSBqcVhIUiBzdGF0ZVxuXHRcdFx0c3RhdGUgPSAwLFxuXHRcdFx0Ly8gRGVmYXVsdCBhYm9ydCBtZXNzYWdlXG5cdFx0XHRzdHJBYm9ydCA9IFwiY2FuY2VsZWRcIixcblx0XHRcdC8vIEZha2UgeGhyXG5cdFx0XHRqcVhIUiA9IHtcblx0XHRcdFx0cmVhZHlTdGF0ZTogMCxcblxuXHRcdFx0XHQvLyBCdWlsZHMgaGVhZGVycyBoYXNodGFibGUgaWYgbmVlZGVkXG5cdFx0XHRcdGdldFJlc3BvbnNlSGVhZGVyOiBmdW5jdGlvbigga2V5ICkge1xuXHRcdFx0XHRcdHZhciBtYXRjaDtcblx0XHRcdFx0XHRpZiAoIHN0YXRlID09PSAyICkge1xuXHRcdFx0XHRcdFx0aWYgKCAhcmVzcG9uc2VIZWFkZXJzICkge1xuXHRcdFx0XHRcdFx0XHRyZXNwb25zZUhlYWRlcnMgPSB7fTtcblx0XHRcdFx0XHRcdFx0d2hpbGUgKCAobWF0Y2ggPSByaGVhZGVycy5leGVjKCByZXNwb25zZUhlYWRlcnNTdHJpbmcgKSkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzcG9uc2VIZWFkZXJzWyBtYXRjaFsxXS50b0xvd2VyQ2FzZSgpIF0gPSBtYXRjaFsgMiBdO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRtYXRjaCA9IHJlc3BvbnNlSGVhZGVyc1sga2V5LnRvTG93ZXJDYXNlKCkgXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIG1hdGNoID09IG51bGwgPyBudWxsIDogbWF0Y2g7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0Ly8gUmF3IHN0cmluZ1xuXHRcdFx0XHRnZXRBbGxSZXNwb25zZUhlYWRlcnM6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHJldHVybiBzdGF0ZSA9PT0gMiA/IHJlc3BvbnNlSGVhZGVyc1N0cmluZyA6IG51bGw7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0Ly8gQ2FjaGVzIHRoZSBoZWFkZXJcblx0XHRcdFx0c2V0UmVxdWVzdEhlYWRlcjogZnVuY3Rpb24oIG5hbWUsIHZhbHVlICkge1xuXHRcdFx0XHRcdHZhciBsbmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcblx0XHRcdFx0XHRpZiAoICFzdGF0ZSApIHtcblx0XHRcdFx0XHRcdG5hbWUgPSByZXF1ZXN0SGVhZGVyc05hbWVzWyBsbmFtZSBdID0gcmVxdWVzdEhlYWRlcnNOYW1lc1sgbG5hbWUgXSB8fCBuYW1lO1xuXHRcdFx0XHRcdFx0cmVxdWVzdEhlYWRlcnNbIG5hbWUgXSA9IHZhbHVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBPdmVycmlkZXMgcmVzcG9uc2UgY29udGVudC10eXBlIGhlYWRlclxuXHRcdFx0XHRvdmVycmlkZU1pbWVUeXBlOiBmdW5jdGlvbiggdHlwZSApIHtcblx0XHRcdFx0XHRpZiAoICFzdGF0ZSApIHtcblx0XHRcdFx0XHRcdHMubWltZVR5cGUgPSB0eXBlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBTdGF0dXMtZGVwZW5kZW50IGNhbGxiYWNrc1xuXHRcdFx0XHRzdGF0dXNDb2RlOiBmdW5jdGlvbiggbWFwICkge1xuXHRcdFx0XHRcdHZhciBjb2RlO1xuXHRcdFx0XHRcdGlmICggbWFwICkge1xuXHRcdFx0XHRcdFx0aWYgKCBzdGF0ZSA8IDIgKSB7XG5cdFx0XHRcdFx0XHRcdGZvciAoIGNvZGUgaW4gbWFwICkge1xuXHRcdFx0XHRcdFx0XHRcdC8vIExhenktYWRkIHRoZSBuZXcgY2FsbGJhY2sgaW4gYSB3YXkgdGhhdCBwcmVzZXJ2ZXMgb2xkIG9uZXNcblx0XHRcdFx0XHRcdFx0XHRzdGF0dXNDb2RlWyBjb2RlIF0gPSBbIHN0YXR1c0NvZGVbIGNvZGUgXSwgbWFwWyBjb2RlIF0gXTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Ly8gRXhlY3V0ZSB0aGUgYXBwcm9wcmlhdGUgY2FsbGJhY2tzXG5cdFx0XHRcdFx0XHRcdGpxWEhSLmFsd2F5cyggbWFwWyBqcVhIUi5zdGF0dXMgXSApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBDYW5jZWwgdGhlIHJlcXVlc3Rcblx0XHRcdFx0YWJvcnQ6IGZ1bmN0aW9uKCBzdGF0dXNUZXh0ICkge1xuXHRcdFx0XHRcdHZhciBmaW5hbFRleHQgPSBzdGF0dXNUZXh0IHx8IHN0ckFib3J0O1xuXHRcdFx0XHRcdGlmICggdHJhbnNwb3J0ICkge1xuXHRcdFx0XHRcdFx0dHJhbnNwb3J0LmFib3J0KCBmaW5hbFRleHQgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZG9uZSggMCwgZmluYWxUZXh0ICk7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cblx0XHQvLyBBdHRhY2ggZGVmZXJyZWRzXG5cdFx0ZGVmZXJyZWQucHJvbWlzZSgganFYSFIgKS5jb21wbGV0ZSA9IGNvbXBsZXRlRGVmZXJyZWQuYWRkO1xuXHRcdGpxWEhSLnN1Y2Nlc3MgPSBqcVhIUi5kb25lO1xuXHRcdGpxWEhSLmVycm9yID0ganFYSFIuZmFpbDtcblxuXHRcdC8vIFJlbW92ZSBoYXNoIGNoYXJhY3RlciAoIzc1MzE6IGFuZCBzdHJpbmcgcHJvbW90aW9uKVxuXHRcdC8vIEFkZCBwcm90b2NvbCBpZiBub3QgcHJvdmlkZWQgKHByZWZpbHRlcnMgbWlnaHQgZXhwZWN0IGl0KVxuXHRcdC8vIEhhbmRsZSBmYWxzeSB1cmwgaW4gdGhlIHNldHRpbmdzIG9iamVjdCAoIzEwMDkzOiBjb25zaXN0ZW5jeSB3aXRoIG9sZCBzaWduYXR1cmUpXG5cdFx0Ly8gV2UgYWxzbyB1c2UgdGhlIHVybCBwYXJhbWV0ZXIgaWYgYXZhaWxhYmxlXG5cdFx0cy51cmwgPSAoICggdXJsIHx8IHMudXJsIHx8IGFqYXhMb2NhdGlvbiApICsgXCJcIiApLnJlcGxhY2UoIHJoYXNoLCBcIlwiIClcblx0XHRcdC5yZXBsYWNlKCBycHJvdG9jb2wsIGFqYXhMb2NQYXJ0c1sgMSBdICsgXCIvL1wiICk7XG5cblx0XHQvLyBBbGlhcyBtZXRob2Qgb3B0aW9uIHRvIHR5cGUgYXMgcGVyIHRpY2tldCAjMTIwMDRcblx0XHRzLnR5cGUgPSBvcHRpb25zLm1ldGhvZCB8fCBvcHRpb25zLnR5cGUgfHwgcy5tZXRob2QgfHwgcy50eXBlO1xuXG5cdFx0Ly8gRXh0cmFjdCBkYXRhVHlwZXMgbGlzdFxuXHRcdHMuZGF0YVR5cGVzID0galF1ZXJ5LnRyaW0oIHMuZGF0YVR5cGUgfHwgXCIqXCIgKS50b0xvd2VyQ2FzZSgpLm1hdGNoKCBybm90d2hpdGUgKSB8fCBbIFwiXCIgXTtcblxuXHRcdC8vIEEgY3Jvc3MtZG9tYWluIHJlcXVlc3QgaXMgaW4gb3JkZXIgd2hlbiB3ZSBoYXZlIGEgcHJvdG9jb2w6aG9zdDpwb3J0IG1pc21hdGNoXG5cdFx0aWYgKCBzLmNyb3NzRG9tYWluID09IG51bGwgKSB7XG5cdFx0XHRwYXJ0cyA9IHJ1cmwuZXhlYyggcy51cmwudG9Mb3dlckNhc2UoKSApO1xuXHRcdFx0cy5jcm9zc0RvbWFpbiA9ICEhKCBwYXJ0cyAmJlxuXHRcdFx0XHQoIHBhcnRzWyAxIF0gIT09IGFqYXhMb2NQYXJ0c1sgMSBdIHx8IHBhcnRzWyAyIF0gIT09IGFqYXhMb2NQYXJ0c1sgMiBdIHx8XG5cdFx0XHRcdFx0KCBwYXJ0c1sgMyBdIHx8ICggcGFydHNbIDEgXSA9PT0gXCJodHRwOlwiID8gXCI4MFwiIDogXCI0NDNcIiApICkgIT09XG5cdFx0XHRcdFx0XHQoIGFqYXhMb2NQYXJ0c1sgMyBdIHx8ICggYWpheExvY1BhcnRzWyAxIF0gPT09IFwiaHR0cDpcIiA/IFwiODBcIiA6IFwiNDQzXCIgKSApIClcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0Ly8gQ29udmVydCBkYXRhIGlmIG5vdCBhbHJlYWR5IGEgc3RyaW5nXG5cdFx0aWYgKCBzLmRhdGEgJiYgcy5wcm9jZXNzRGF0YSAmJiB0eXBlb2Ygcy5kYXRhICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0cy5kYXRhID0galF1ZXJ5LnBhcmFtKCBzLmRhdGEsIHMudHJhZGl0aW9uYWwgKTtcblx0XHR9XG5cblx0XHQvLyBBcHBseSBwcmVmaWx0ZXJzXG5cdFx0aW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHByZWZpbHRlcnMsIHMsIG9wdGlvbnMsIGpxWEhSICk7XG5cblx0XHQvLyBJZiByZXF1ZXN0IHdhcyBhYm9ydGVkIGluc2lkZSBhIHByZWZpbHRlciwgc3RvcCB0aGVyZVxuXHRcdGlmICggc3RhdGUgPT09IDIgKSB7XG5cdFx0XHRyZXR1cm4ganFYSFI7XG5cdFx0fVxuXG5cdFx0Ly8gV2UgY2FuIGZpcmUgZ2xvYmFsIGV2ZW50cyBhcyBvZiBub3cgaWYgYXNrZWQgdG9cblx0XHQvLyBEb24ndCBmaXJlIGV2ZW50cyBpZiBqUXVlcnkuZXZlbnQgaXMgdW5kZWZpbmVkIGluIGFuIEFNRC11c2FnZSBzY2VuYXJpbyAoIzE1MTE4KVxuXHRcdGZpcmVHbG9iYWxzID0galF1ZXJ5LmV2ZW50ICYmIHMuZ2xvYmFsO1xuXG5cdFx0Ly8gV2F0Y2ggZm9yIGEgbmV3IHNldCBvZiByZXF1ZXN0c1xuXHRcdGlmICggZmlyZUdsb2JhbHMgJiYgalF1ZXJ5LmFjdGl2ZSsrID09PSAwICkge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXIoXCJhamF4U3RhcnRcIik7XG5cdFx0fVxuXG5cdFx0Ly8gVXBwZXJjYXNlIHRoZSB0eXBlXG5cdFx0cy50eXBlID0gcy50eXBlLnRvVXBwZXJDYXNlKCk7XG5cblx0XHQvLyBEZXRlcm1pbmUgaWYgcmVxdWVzdCBoYXMgY29udGVudFxuXHRcdHMuaGFzQ29udGVudCA9ICFybm9Db250ZW50LnRlc3QoIHMudHlwZSApO1xuXG5cdFx0Ly8gU2F2ZSB0aGUgVVJMIGluIGNhc2Ugd2UncmUgdG95aW5nIHdpdGggdGhlIElmLU1vZGlmaWVkLVNpbmNlXG5cdFx0Ly8gYW5kL29yIElmLU5vbmUtTWF0Y2ggaGVhZGVyIGxhdGVyIG9uXG5cdFx0Y2FjaGVVUkwgPSBzLnVybDtcblxuXHRcdC8vIE1vcmUgb3B0aW9ucyBoYW5kbGluZyBmb3IgcmVxdWVzdHMgd2l0aCBubyBjb250ZW50XG5cdFx0aWYgKCAhcy5oYXNDb250ZW50ICkge1xuXG5cdFx0XHQvLyBJZiBkYXRhIGlzIGF2YWlsYWJsZSwgYXBwZW5kIGRhdGEgdG8gdXJsXG5cdFx0XHRpZiAoIHMuZGF0YSApIHtcblx0XHRcdFx0Y2FjaGVVUkwgPSAoIHMudXJsICs9ICggcnF1ZXJ5LnRlc3QoIGNhY2hlVVJMICkgPyBcIiZcIiA6IFwiP1wiICkgKyBzLmRhdGEgKTtcblx0XHRcdFx0Ly8gIzk2ODI6IHJlbW92ZSBkYXRhIHNvIHRoYXQgaXQncyBub3QgdXNlZCBpbiBhbiBldmVudHVhbCByZXRyeVxuXHRcdFx0XHRkZWxldGUgcy5kYXRhO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBBZGQgYW50aS1jYWNoZSBpbiB1cmwgaWYgbmVlZGVkXG5cdFx0XHRpZiAoIHMuY2FjaGUgPT09IGZhbHNlICkge1xuXHRcdFx0XHRzLnVybCA9IHJ0cy50ZXN0KCBjYWNoZVVSTCApID9cblxuXHRcdFx0XHRcdC8vIElmIHRoZXJlIGlzIGFscmVhZHkgYSAnXycgcGFyYW1ldGVyLCBzZXQgaXRzIHZhbHVlXG5cdFx0XHRcdFx0Y2FjaGVVUkwucmVwbGFjZSggcnRzLCBcIiQxXz1cIiArIG5vbmNlKysgKSA6XG5cblx0XHRcdFx0XHQvLyBPdGhlcndpc2UgYWRkIG9uZSB0byB0aGUgZW5kXG5cdFx0XHRcdFx0Y2FjaGVVUkwgKyAoIHJxdWVyeS50ZXN0KCBjYWNoZVVSTCApID8gXCImXCIgOiBcIj9cIiApICsgXCJfPVwiICsgbm9uY2UrKztcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBTZXQgdGhlIElmLU1vZGlmaWVkLVNpbmNlIGFuZC9vciBJZi1Ob25lLU1hdGNoIGhlYWRlciwgaWYgaW4gaWZNb2RpZmllZCBtb2RlLlxuXHRcdGlmICggcy5pZk1vZGlmaWVkICkge1xuXHRcdFx0aWYgKCBqUXVlcnkubGFzdE1vZGlmaWVkWyBjYWNoZVVSTCBdICkge1xuXHRcdFx0XHRqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKCBcIklmLU1vZGlmaWVkLVNpbmNlXCIsIGpRdWVyeS5sYXN0TW9kaWZpZWRbIGNhY2hlVVJMIF0gKTtcblx0XHRcdH1cblx0XHRcdGlmICggalF1ZXJ5LmV0YWdbIGNhY2hlVVJMIF0gKSB7XG5cdFx0XHRcdGpxWEhSLnNldFJlcXVlc3RIZWFkZXIoIFwiSWYtTm9uZS1NYXRjaFwiLCBqUXVlcnkuZXRhZ1sgY2FjaGVVUkwgXSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFNldCB0aGUgY29ycmVjdCBoZWFkZXIsIGlmIGRhdGEgaXMgYmVpbmcgc2VudFxuXHRcdGlmICggcy5kYXRhICYmIHMuaGFzQ29udGVudCAmJiBzLmNvbnRlbnRUeXBlICE9PSBmYWxzZSB8fCBvcHRpb25zLmNvbnRlbnRUeXBlICkge1xuXHRcdFx0anFYSFIuc2V0UmVxdWVzdEhlYWRlciggXCJDb250ZW50LVR5cGVcIiwgcy5jb250ZW50VHlwZSApO1xuXHRcdH1cblxuXHRcdC8vIFNldCB0aGUgQWNjZXB0cyBoZWFkZXIgZm9yIHRoZSBzZXJ2ZXIsIGRlcGVuZGluZyBvbiB0aGUgZGF0YVR5cGVcblx0XHRqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKFxuXHRcdFx0XCJBY2NlcHRcIixcblx0XHRcdHMuZGF0YVR5cGVzWyAwIF0gJiYgcy5hY2NlcHRzWyBzLmRhdGFUeXBlc1swXSBdID9cblx0XHRcdFx0cy5hY2NlcHRzWyBzLmRhdGFUeXBlc1swXSBdICsgKCBzLmRhdGFUeXBlc1sgMCBdICE9PSBcIipcIiA/IFwiLCBcIiArIGFsbFR5cGVzICsgXCI7IHE9MC4wMVwiIDogXCJcIiApIDpcblx0XHRcdFx0cy5hY2NlcHRzWyBcIipcIiBdXG5cdFx0KTtcblxuXHRcdC8vIENoZWNrIGZvciBoZWFkZXJzIG9wdGlvblxuXHRcdGZvciAoIGkgaW4gcy5oZWFkZXJzICkge1xuXHRcdFx0anFYSFIuc2V0UmVxdWVzdEhlYWRlciggaSwgcy5oZWFkZXJzWyBpIF0gKTtcblx0XHR9XG5cblx0XHQvLyBBbGxvdyBjdXN0b20gaGVhZGVycy9taW1ldHlwZXMgYW5kIGVhcmx5IGFib3J0XG5cdFx0aWYgKCBzLmJlZm9yZVNlbmQgJiYgKCBzLmJlZm9yZVNlbmQuY2FsbCggY2FsbGJhY2tDb250ZXh0LCBqcVhIUiwgcyApID09PSBmYWxzZSB8fCBzdGF0ZSA9PT0gMiApICkge1xuXHRcdFx0Ly8gQWJvcnQgaWYgbm90IGRvbmUgYWxyZWFkeSBhbmQgcmV0dXJuXG5cdFx0XHRyZXR1cm4ganFYSFIuYWJvcnQoKTtcblx0XHR9XG5cblx0XHQvLyBBYm9ydGluZyBpcyBubyBsb25nZXIgYSBjYW5jZWxsYXRpb25cblx0XHRzdHJBYm9ydCA9IFwiYWJvcnRcIjtcblxuXHRcdC8vIEluc3RhbGwgY2FsbGJhY2tzIG9uIGRlZmVycmVkc1xuXHRcdGZvciAoIGkgaW4geyBzdWNjZXNzOiAxLCBlcnJvcjogMSwgY29tcGxldGU6IDEgfSApIHtcblx0XHRcdGpxWEhSWyBpIF0oIHNbIGkgXSApO1xuXHRcdH1cblxuXHRcdC8vIEdldCB0cmFuc3BvcnRcblx0XHR0cmFuc3BvcnQgPSBpbnNwZWN0UHJlZmlsdGVyc09yVHJhbnNwb3J0cyggdHJhbnNwb3J0cywgcywgb3B0aW9ucywganFYSFIgKTtcblxuXHRcdC8vIElmIG5vIHRyYW5zcG9ydCwgd2UgYXV0by1hYm9ydFxuXHRcdGlmICggIXRyYW5zcG9ydCApIHtcblx0XHRcdGRvbmUoIC0xLCBcIk5vIFRyYW5zcG9ydFwiICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGpxWEhSLnJlYWR5U3RhdGUgPSAxO1xuXG5cdFx0XHQvLyBTZW5kIGdsb2JhbCBldmVudFxuXHRcdFx0aWYgKCBmaXJlR2xvYmFscyApIHtcblx0XHRcdFx0Z2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoIFwiYWpheFNlbmRcIiwgWyBqcVhIUiwgcyBdICk7XG5cdFx0XHR9XG5cdFx0XHQvLyBUaW1lb3V0XG5cdFx0XHRpZiAoIHMuYXN5bmMgJiYgcy50aW1lb3V0ID4gMCApIHtcblx0XHRcdFx0dGltZW91dFRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRqcVhIUi5hYm9ydChcInRpbWVvdXRcIik7XG5cdFx0XHRcdH0sIHMudGltZW91dCApO1xuXHRcdFx0fVxuXG5cdFx0XHR0cnkge1xuXHRcdFx0XHRzdGF0ZSA9IDE7XG5cdFx0XHRcdHRyYW5zcG9ydC5zZW5kKCByZXF1ZXN0SGVhZGVycywgZG9uZSApO1xuXHRcdFx0fSBjYXRjaCAoIGUgKSB7XG5cdFx0XHRcdC8vIFByb3BhZ2F0ZSBleGNlcHRpb24gYXMgZXJyb3IgaWYgbm90IGRvbmVcblx0XHRcdFx0aWYgKCBzdGF0ZSA8IDIgKSB7XG5cdFx0XHRcdFx0ZG9uZSggLTEsIGUgKTtcblx0XHRcdFx0Ly8gU2ltcGx5IHJldGhyb3cgb3RoZXJ3aXNlXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhyb3cgZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENhbGxiYWNrIGZvciB3aGVuIGV2ZXJ5dGhpbmcgaXMgZG9uZVxuXHRcdGZ1bmN0aW9uIGRvbmUoIHN0YXR1cywgbmF0aXZlU3RhdHVzVGV4dCwgcmVzcG9uc2VzLCBoZWFkZXJzICkge1xuXHRcdFx0dmFyIGlzU3VjY2Vzcywgc3VjY2VzcywgZXJyb3IsIHJlc3BvbnNlLCBtb2RpZmllZCxcblx0XHRcdFx0c3RhdHVzVGV4dCA9IG5hdGl2ZVN0YXR1c1RleHQ7XG5cblx0XHRcdC8vIENhbGxlZCBvbmNlXG5cdFx0XHRpZiAoIHN0YXRlID09PSAyICkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN0YXRlIGlzIFwiZG9uZVwiIG5vd1xuXHRcdFx0c3RhdGUgPSAyO1xuXG5cdFx0XHQvLyBDbGVhciB0aW1lb3V0IGlmIGl0IGV4aXN0c1xuXHRcdFx0aWYgKCB0aW1lb3V0VGltZXIgKSB7XG5cdFx0XHRcdGNsZWFyVGltZW91dCggdGltZW91dFRpbWVyICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIERlcmVmZXJlbmNlIHRyYW5zcG9ydCBmb3IgZWFybHkgZ2FyYmFnZSBjb2xsZWN0aW9uXG5cdFx0XHQvLyAobm8gbWF0dGVyIGhvdyBsb25nIHRoZSBqcVhIUiBvYmplY3Qgd2lsbCBiZSB1c2VkKVxuXHRcdFx0dHJhbnNwb3J0ID0gdW5kZWZpbmVkO1xuXG5cdFx0XHQvLyBDYWNoZSByZXNwb25zZSBoZWFkZXJzXG5cdFx0XHRyZXNwb25zZUhlYWRlcnNTdHJpbmcgPSBoZWFkZXJzIHx8IFwiXCI7XG5cblx0XHRcdC8vIFNldCByZWFkeVN0YXRlXG5cdFx0XHRqcVhIUi5yZWFkeVN0YXRlID0gc3RhdHVzID4gMCA/IDQgOiAwO1xuXG5cdFx0XHQvLyBEZXRlcm1pbmUgaWYgc3VjY2Vzc2Z1bFxuXHRcdFx0aXNTdWNjZXNzID0gc3RhdHVzID49IDIwMCAmJiBzdGF0dXMgPCAzMDAgfHwgc3RhdHVzID09PSAzMDQ7XG5cblx0XHRcdC8vIEdldCByZXNwb25zZSBkYXRhXG5cdFx0XHRpZiAoIHJlc3BvbnNlcyApIHtcblx0XHRcdFx0cmVzcG9uc2UgPSBhamF4SGFuZGxlUmVzcG9uc2VzKCBzLCBqcVhIUiwgcmVzcG9uc2VzICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENvbnZlcnQgbm8gbWF0dGVyIHdoYXQgKHRoYXQgd2F5IHJlc3BvbnNlWFhYIGZpZWxkcyBhcmUgYWx3YXlzIHNldClcblx0XHRcdHJlc3BvbnNlID0gYWpheENvbnZlcnQoIHMsIHJlc3BvbnNlLCBqcVhIUiwgaXNTdWNjZXNzICk7XG5cblx0XHRcdC8vIElmIHN1Y2Nlc3NmdWwsIGhhbmRsZSB0eXBlIGNoYWluaW5nXG5cdFx0XHRpZiAoIGlzU3VjY2VzcyApIHtcblxuXHRcdFx0XHQvLyBTZXQgdGhlIElmLU1vZGlmaWVkLVNpbmNlIGFuZC9vciBJZi1Ob25lLU1hdGNoIGhlYWRlciwgaWYgaW4gaWZNb2RpZmllZCBtb2RlLlxuXHRcdFx0XHRpZiAoIHMuaWZNb2RpZmllZCApIHtcblx0XHRcdFx0XHRtb2RpZmllZCA9IGpxWEhSLmdldFJlc3BvbnNlSGVhZGVyKFwiTGFzdC1Nb2RpZmllZFwiKTtcblx0XHRcdFx0XHRpZiAoIG1vZGlmaWVkICkge1xuXHRcdFx0XHRcdFx0alF1ZXJ5Lmxhc3RNb2RpZmllZFsgY2FjaGVVUkwgXSA9IG1vZGlmaWVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRtb2RpZmllZCA9IGpxWEhSLmdldFJlc3BvbnNlSGVhZGVyKFwiZXRhZ1wiKTtcblx0XHRcdFx0XHRpZiAoIG1vZGlmaWVkICkge1xuXHRcdFx0XHRcdFx0alF1ZXJ5LmV0YWdbIGNhY2hlVVJMIF0gPSBtb2RpZmllZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBpZiBubyBjb250ZW50XG5cdFx0XHRcdGlmICggc3RhdHVzID09PSAyMDQgfHwgcy50eXBlID09PSBcIkhFQURcIiApIHtcblx0XHRcdFx0XHRzdGF0dXNUZXh0ID0gXCJub2NvbnRlbnRcIjtcblxuXHRcdFx0XHQvLyBpZiBub3QgbW9kaWZpZWRcblx0XHRcdFx0fSBlbHNlIGlmICggc3RhdHVzID09PSAzMDQgKSB7XG5cdFx0XHRcdFx0c3RhdHVzVGV4dCA9IFwibm90bW9kaWZpZWRcIjtcblxuXHRcdFx0XHQvLyBJZiB3ZSBoYXZlIGRhdGEsIGxldCdzIGNvbnZlcnQgaXRcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzdGF0dXNUZXh0ID0gcmVzcG9uc2Uuc3RhdGU7XG5cdFx0XHRcdFx0c3VjY2VzcyA9IHJlc3BvbnNlLmRhdGE7XG5cdFx0XHRcdFx0ZXJyb3IgPSByZXNwb25zZS5lcnJvcjtcblx0XHRcdFx0XHRpc1N1Y2Nlc3MgPSAhZXJyb3I7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIEV4dHJhY3QgZXJyb3IgZnJvbSBzdGF0dXNUZXh0IGFuZCBub3JtYWxpemUgZm9yIG5vbi1hYm9ydHNcblx0XHRcdFx0ZXJyb3IgPSBzdGF0dXNUZXh0O1xuXHRcdFx0XHRpZiAoIHN0YXR1cyB8fCAhc3RhdHVzVGV4dCApIHtcblx0XHRcdFx0XHRzdGF0dXNUZXh0ID0gXCJlcnJvclwiO1xuXHRcdFx0XHRcdGlmICggc3RhdHVzIDwgMCApIHtcblx0XHRcdFx0XHRcdHN0YXR1cyA9IDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNldCBkYXRhIGZvciB0aGUgZmFrZSB4aHIgb2JqZWN0XG5cdFx0XHRqcVhIUi5zdGF0dXMgPSBzdGF0dXM7XG5cdFx0XHRqcVhIUi5zdGF0dXNUZXh0ID0gKCBuYXRpdmVTdGF0dXNUZXh0IHx8IHN0YXR1c1RleHQgKSArIFwiXCI7XG5cblx0XHRcdC8vIFN1Y2Nlc3MvRXJyb3Jcblx0XHRcdGlmICggaXNTdWNjZXNzICkge1xuXHRcdFx0XHRkZWZlcnJlZC5yZXNvbHZlV2l0aCggY2FsbGJhY2tDb250ZXh0LCBbIHN1Y2Nlc3MsIHN0YXR1c1RleHQsIGpxWEhSIF0gKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGRlZmVycmVkLnJlamVjdFdpdGgoIGNhbGxiYWNrQ29udGV4dCwgWyBqcVhIUiwgc3RhdHVzVGV4dCwgZXJyb3IgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdGF0dXMtZGVwZW5kZW50IGNhbGxiYWNrc1xuXHRcdFx0anFYSFIuc3RhdHVzQ29kZSggc3RhdHVzQ29kZSApO1xuXHRcdFx0c3RhdHVzQ29kZSA9IHVuZGVmaW5lZDtcblxuXHRcdFx0aWYgKCBmaXJlR2xvYmFscyApIHtcblx0XHRcdFx0Z2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoIGlzU3VjY2VzcyA/IFwiYWpheFN1Y2Nlc3NcIiA6IFwiYWpheEVycm9yXCIsXG5cdFx0XHRcdFx0WyBqcVhIUiwgcywgaXNTdWNjZXNzID8gc3VjY2VzcyA6IGVycm9yIF0gKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQ29tcGxldGVcblx0XHRcdGNvbXBsZXRlRGVmZXJyZWQuZmlyZVdpdGgoIGNhbGxiYWNrQ29udGV4dCwgWyBqcVhIUiwgc3RhdHVzVGV4dCBdICk7XG5cblx0XHRcdGlmICggZmlyZUdsb2JhbHMgKSB7XG5cdFx0XHRcdGdsb2JhbEV2ZW50Q29udGV4dC50cmlnZ2VyKCBcImFqYXhDb21wbGV0ZVwiLCBbIGpxWEhSLCBzIF0gKTtcblx0XHRcdFx0Ly8gSGFuZGxlIHRoZSBnbG9iYWwgQUpBWCBjb3VudGVyXG5cdFx0XHRcdGlmICggISggLS1qUXVlcnkuYWN0aXZlICkgKSB7XG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXIoXCJhamF4U3RvcFwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBqcVhIUjtcblx0fSxcblxuXHRnZXRKU09OOiBmdW5jdGlvbiggdXJsLCBkYXRhLCBjYWxsYmFjayApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmdldCggdXJsLCBkYXRhLCBjYWxsYmFjaywgXCJqc29uXCIgKTtcblx0fSxcblxuXHRnZXRTY3JpcHQ6IGZ1bmN0aW9uKCB1cmwsIGNhbGxiYWNrICkge1xuXHRcdHJldHVybiBqUXVlcnkuZ2V0KCB1cmwsIHVuZGVmaW5lZCwgY2FsbGJhY2ssIFwic2NyaXB0XCIgKTtcblx0fVxufSk7XG5cbmpRdWVyeS5lYWNoKCBbIFwiZ2V0XCIsIFwicG9zdFwiIF0sIGZ1bmN0aW9uKCBpLCBtZXRob2QgKSB7XG5cdGpRdWVyeVsgbWV0aG9kIF0gPSBmdW5jdGlvbiggdXJsLCBkYXRhLCBjYWxsYmFjaywgdHlwZSApIHtcblx0XHQvLyBTaGlmdCBhcmd1bWVudHMgaWYgZGF0YSBhcmd1bWVudCB3YXMgb21pdHRlZFxuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIGRhdGEgKSApIHtcblx0XHRcdHR5cGUgPSB0eXBlIHx8IGNhbGxiYWNrO1xuXHRcdFx0Y2FsbGJhY2sgPSBkYXRhO1xuXHRcdFx0ZGF0YSA9IHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHRyZXR1cm4galF1ZXJ5LmFqYXgoe1xuXHRcdFx0dXJsOiB1cmwsXG5cdFx0XHR0eXBlOiBtZXRob2QsXG5cdFx0XHRkYXRhVHlwZTogdHlwZSxcblx0XHRcdGRhdGE6IGRhdGEsXG5cdFx0XHRzdWNjZXNzOiBjYWxsYmFja1xuXHRcdH0pO1xuXHR9O1xufSk7XG5cblxualF1ZXJ5Ll9ldmFsVXJsID0gZnVuY3Rpb24oIHVybCApIHtcblx0cmV0dXJuIGpRdWVyeS5hamF4KHtcblx0XHR1cmw6IHVybCxcblx0XHR0eXBlOiBcIkdFVFwiLFxuXHRcdGRhdGFUeXBlOiBcInNjcmlwdFwiLFxuXHRcdGFzeW5jOiBmYWxzZSxcblx0XHRnbG9iYWw6IGZhbHNlLFxuXHRcdFwidGhyb3dzXCI6IHRydWVcblx0fSk7XG59O1xuXG5cbmpRdWVyeS5mbi5leHRlbmQoe1xuXHR3cmFwQWxsOiBmdW5jdGlvbiggaHRtbCApIHtcblx0XHR2YXIgd3JhcDtcblxuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIGh0bWwgKSApIHtcblx0XHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHRcdGpRdWVyeSggdGhpcyApLndyYXBBbGwoIGh0bWwuY2FsbCh0aGlzLCBpKSApO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0aWYgKCB0aGlzWyAwIF0gKSB7XG5cblx0XHRcdC8vIFRoZSBlbGVtZW50cyB0byB3cmFwIHRoZSB0YXJnZXQgYXJvdW5kXG5cdFx0XHR3cmFwID0galF1ZXJ5KCBodG1sLCB0aGlzWyAwIF0ub3duZXJEb2N1bWVudCApLmVxKCAwICkuY2xvbmUoIHRydWUgKTtcblxuXHRcdFx0aWYgKCB0aGlzWyAwIF0ucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0d3JhcC5pbnNlcnRCZWZvcmUoIHRoaXNbIDAgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHR3cmFwLm1hcChmdW5jdGlvbigpIHtcblx0XHRcdFx0dmFyIGVsZW0gPSB0aGlzO1xuXG5cdFx0XHRcdHdoaWxlICggZWxlbS5maXJzdEVsZW1lbnRDaGlsZCApIHtcblx0XHRcdFx0XHRlbGVtID0gZWxlbS5maXJzdEVsZW1lbnRDaGlsZDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiBlbGVtO1xuXHRcdFx0fSkuYXBwZW5kKCB0aGlzICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH0sXG5cblx0d3JhcElubmVyOiBmdW5jdGlvbiggaHRtbCApIHtcblx0XHRpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBodG1sICkgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCBpICkge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS53cmFwSW5uZXIoIGh0bWwuY2FsbCh0aGlzLCBpKSApO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcblx0XHRcdHZhciBzZWxmID0galF1ZXJ5KCB0aGlzICksXG5cdFx0XHRcdGNvbnRlbnRzID0gc2VsZi5jb250ZW50cygpO1xuXG5cdFx0XHRpZiAoIGNvbnRlbnRzLmxlbmd0aCApIHtcblx0XHRcdFx0Y29udGVudHMud3JhcEFsbCggaHRtbCApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRzZWxmLmFwcGVuZCggaHRtbCApO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9LFxuXG5cdHdyYXA6IGZ1bmN0aW9uKCBodG1sICkge1xuXHRcdHZhciBpc0Z1bmN0aW9uID0galF1ZXJ5LmlzRnVuY3Rpb24oIGh0bWwgKTtcblxuXHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHRqUXVlcnkoIHRoaXMgKS53cmFwQWxsKCBpc0Z1bmN0aW9uID8gaHRtbC5jYWxsKHRoaXMsIGkpIDogaHRtbCApO1xuXHRcdH0pO1xuXHR9LFxuXG5cdHVud3JhcDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMucGFyZW50KCkuZWFjaChmdW5jdGlvbigpIHtcblx0XHRcdGlmICggIWpRdWVyeS5ub2RlTmFtZSggdGhpcywgXCJib2R5XCIgKSApIHtcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkucmVwbGFjZVdpdGgoIHRoaXMuY2hpbGROb2RlcyApO1xuXHRcdFx0fVxuXHRcdH0pLmVuZCgpO1xuXHR9XG59KTtcblxuXG5qUXVlcnkuZXhwci5maWx0ZXJzLmhpZGRlbiA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHQvLyBTdXBwb3J0OiBPcGVyYSA8PSAxMi4xMlxuXHQvLyBPcGVyYSByZXBvcnRzIG9mZnNldFdpZHRocyBhbmQgb2Zmc2V0SGVpZ2h0cyBsZXNzIHRoYW4gemVybyBvbiBzb21lIGVsZW1lbnRzXG5cdHJldHVybiBlbGVtLm9mZnNldFdpZHRoIDw9IDAgJiYgZWxlbS5vZmZzZXRIZWlnaHQgPD0gMDtcbn07XG5qUXVlcnkuZXhwci5maWx0ZXJzLnZpc2libGUgPSBmdW5jdGlvbiggZWxlbSApIHtcblx0cmV0dXJuICFqUXVlcnkuZXhwci5maWx0ZXJzLmhpZGRlbiggZWxlbSApO1xufTtcblxuXG5cblxudmFyIHIyMCA9IC8lMjAvZyxcblx0cmJyYWNrZXQgPSAvXFxbXFxdJC8sXG5cdHJDUkxGID0gL1xccj9cXG4vZyxcblx0cnN1Ym1pdHRlclR5cGVzID0gL14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLFxuXHRyc3VibWl0dGFibGUgPSAvXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxrZXlnZW4pL2k7XG5cbmZ1bmN0aW9uIGJ1aWxkUGFyYW1zKCBwcmVmaXgsIG9iaiwgdHJhZGl0aW9uYWwsIGFkZCApIHtcblx0dmFyIG5hbWU7XG5cblx0aWYgKCBqUXVlcnkuaXNBcnJheSggb2JqICkgKSB7XG5cdFx0Ly8gU2VyaWFsaXplIGFycmF5IGl0ZW0uXG5cdFx0alF1ZXJ5LmVhY2goIG9iaiwgZnVuY3Rpb24oIGksIHYgKSB7XG5cdFx0XHRpZiAoIHRyYWRpdGlvbmFsIHx8IHJicmFja2V0LnRlc3QoIHByZWZpeCApICkge1xuXHRcdFx0XHQvLyBUcmVhdCBlYWNoIGFycmF5IGl0ZW0gYXMgYSBzY2FsYXIuXG5cdFx0XHRcdGFkZCggcHJlZml4LCB2ICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIEl0ZW0gaXMgbm9uLXNjYWxhciAoYXJyYXkgb3Igb2JqZWN0KSwgZW5jb2RlIGl0cyBudW1lcmljIGluZGV4LlxuXHRcdFx0XHRidWlsZFBhcmFtcyggcHJlZml4ICsgXCJbXCIgKyAoIHR5cGVvZiB2ID09PSBcIm9iamVjdFwiID8gaSA6IFwiXCIgKSArIFwiXVwiLCB2LCB0cmFkaXRpb25hbCwgYWRkICk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0fSBlbHNlIGlmICggIXRyYWRpdGlvbmFsICYmIGpRdWVyeS50eXBlKCBvYmogKSA9PT0gXCJvYmplY3RcIiApIHtcblx0XHQvLyBTZXJpYWxpemUgb2JqZWN0IGl0ZW0uXG5cdFx0Zm9yICggbmFtZSBpbiBvYmogKSB7XG5cdFx0XHRidWlsZFBhcmFtcyggcHJlZml4ICsgXCJbXCIgKyBuYW1lICsgXCJdXCIsIG9ialsgbmFtZSBdLCB0cmFkaXRpb25hbCwgYWRkICk7XG5cdFx0fVxuXG5cdH0gZWxzZSB7XG5cdFx0Ly8gU2VyaWFsaXplIHNjYWxhciBpdGVtLlxuXHRcdGFkZCggcHJlZml4LCBvYmogKTtcblx0fVxufVxuXG4vLyBTZXJpYWxpemUgYW4gYXJyYXkgb2YgZm9ybSBlbGVtZW50cyBvciBhIHNldCBvZlxuLy8ga2V5L3ZhbHVlcyBpbnRvIGEgcXVlcnkgc3RyaW5nXG5qUXVlcnkucGFyYW0gPSBmdW5jdGlvbiggYSwgdHJhZGl0aW9uYWwgKSB7XG5cdHZhciBwcmVmaXgsXG5cdFx0cyA9IFtdLFxuXHRcdGFkZCA9IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkge1xuXHRcdFx0Ly8gSWYgdmFsdWUgaXMgYSBmdW5jdGlvbiwgaW52b2tlIGl0IGFuZCByZXR1cm4gaXRzIHZhbHVlXG5cdFx0XHR2YWx1ZSA9IGpRdWVyeS5pc0Z1bmN0aW9uKCB2YWx1ZSApID8gdmFsdWUoKSA6ICggdmFsdWUgPT0gbnVsbCA/IFwiXCIgOiB2YWx1ZSApO1xuXHRcdFx0c1sgcy5sZW5ndGggXSA9IGVuY29kZVVSSUNvbXBvbmVudCgga2V5ICkgKyBcIj1cIiArIGVuY29kZVVSSUNvbXBvbmVudCggdmFsdWUgKTtcblx0XHR9O1xuXG5cdC8vIFNldCB0cmFkaXRpb25hbCB0byB0cnVlIGZvciBqUXVlcnkgPD0gMS4zLjIgYmVoYXZpb3IuXG5cdGlmICggdHJhZGl0aW9uYWwgPT09IHVuZGVmaW5lZCApIHtcblx0XHR0cmFkaXRpb25hbCA9IGpRdWVyeS5hamF4U2V0dGluZ3MgJiYgalF1ZXJ5LmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbDtcblx0fVxuXG5cdC8vIElmIGFuIGFycmF5IHdhcyBwYXNzZWQgaW4sIGFzc3VtZSB0aGF0IGl0IGlzIGFuIGFycmF5IG9mIGZvcm0gZWxlbWVudHMuXG5cdGlmICggalF1ZXJ5LmlzQXJyYXkoIGEgKSB8fCAoIGEuanF1ZXJ5ICYmICFqUXVlcnkuaXNQbGFpbk9iamVjdCggYSApICkgKSB7XG5cdFx0Ly8gU2VyaWFsaXplIHRoZSBmb3JtIGVsZW1lbnRzXG5cdFx0alF1ZXJ5LmVhY2goIGEsIGZ1bmN0aW9uKCkge1xuXHRcdFx0YWRkKCB0aGlzLm5hbWUsIHRoaXMudmFsdWUgKTtcblx0XHR9KTtcblxuXHR9IGVsc2Uge1xuXHRcdC8vIElmIHRyYWRpdGlvbmFsLCBlbmNvZGUgdGhlIFwib2xkXCIgd2F5ICh0aGUgd2F5IDEuMy4yIG9yIG9sZGVyXG5cdFx0Ly8gZGlkIGl0KSwgb3RoZXJ3aXNlIGVuY29kZSBwYXJhbXMgcmVjdXJzaXZlbHkuXG5cdFx0Zm9yICggcHJlZml4IGluIGEgKSB7XG5cdFx0XHRidWlsZFBhcmFtcyggcHJlZml4LCBhWyBwcmVmaXggXSwgdHJhZGl0aW9uYWwsIGFkZCApO1xuXHRcdH1cblx0fVxuXG5cdC8vIFJldHVybiB0aGUgcmVzdWx0aW5nIHNlcmlhbGl6YXRpb25cblx0cmV0dXJuIHMuam9pbiggXCImXCIgKS5yZXBsYWNlKCByMjAsIFwiK1wiICk7XG59O1xuXG5qUXVlcnkuZm4uZXh0ZW5kKHtcblx0c2VyaWFsaXplOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4galF1ZXJ5LnBhcmFtKCB0aGlzLnNlcmlhbGl6ZUFycmF5KCkgKTtcblx0fSxcblx0c2VyaWFsaXplQXJyYXk6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLm1hcChmdW5jdGlvbigpIHtcblx0XHRcdC8vIENhbiBhZGQgcHJvcEhvb2sgZm9yIFwiZWxlbWVudHNcIiB0byBmaWx0ZXIgb3IgYWRkIGZvcm0gZWxlbWVudHNcblx0XHRcdHZhciBlbGVtZW50cyA9IGpRdWVyeS5wcm9wKCB0aGlzLCBcImVsZW1lbnRzXCIgKTtcblx0XHRcdHJldHVybiBlbGVtZW50cyA/IGpRdWVyeS5tYWtlQXJyYXkoIGVsZW1lbnRzICkgOiB0aGlzO1xuXHRcdH0pXG5cdFx0LmZpbHRlcihmdW5jdGlvbigpIHtcblx0XHRcdHZhciB0eXBlID0gdGhpcy50eXBlO1xuXG5cdFx0XHQvLyBVc2UgLmlzKCBcIjpkaXNhYmxlZFwiICkgc28gdGhhdCBmaWVsZHNldFtkaXNhYmxlZF0gd29ya3Ncblx0XHRcdHJldHVybiB0aGlzLm5hbWUgJiYgIWpRdWVyeSggdGhpcyApLmlzKCBcIjpkaXNhYmxlZFwiICkgJiZcblx0XHRcdFx0cnN1Ym1pdHRhYmxlLnRlc3QoIHRoaXMubm9kZU5hbWUgKSAmJiAhcnN1Ym1pdHRlclR5cGVzLnRlc3QoIHR5cGUgKSAmJlxuXHRcdFx0XHQoIHRoaXMuY2hlY2tlZCB8fCAhcmNoZWNrYWJsZVR5cGUudGVzdCggdHlwZSApICk7XG5cdFx0fSlcblx0XHQubWFwKGZ1bmN0aW9uKCBpLCBlbGVtICkge1xuXHRcdFx0dmFyIHZhbCA9IGpRdWVyeSggdGhpcyApLnZhbCgpO1xuXG5cdFx0XHRyZXR1cm4gdmFsID09IG51bGwgP1xuXHRcdFx0XHRudWxsIDpcblx0XHRcdFx0alF1ZXJ5LmlzQXJyYXkoIHZhbCApID9cblx0XHRcdFx0XHRqUXVlcnkubWFwKCB2YWwsIGZ1bmN0aW9uKCB2YWwgKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4geyBuYW1lOiBlbGVtLm5hbWUsIHZhbHVlOiB2YWwucmVwbGFjZSggckNSTEYsIFwiXFxyXFxuXCIgKSB9O1xuXHRcdFx0XHRcdH0pIDpcblx0XHRcdFx0XHR7IG5hbWU6IGVsZW0ubmFtZSwgdmFsdWU6IHZhbC5yZXBsYWNlKCByQ1JMRiwgXCJcXHJcXG5cIiApIH07XG5cdFx0fSkuZ2V0KCk7XG5cdH1cbn0pO1xuXG5cbmpRdWVyeS5hamF4U2V0dGluZ3MueGhyID0gZnVuY3Rpb24oKSB7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuXHR9IGNhdGNoKCBlICkge31cbn07XG5cbnZhciB4aHJJZCA9IDAsXG5cdHhockNhbGxiYWNrcyA9IHt9LFxuXHR4aHJTdWNjZXNzU3RhdHVzID0ge1xuXHRcdC8vIGZpbGUgcHJvdG9jb2wgYWx3YXlzIHlpZWxkcyBzdGF0dXMgY29kZSAwLCBhc3N1bWUgMjAwXG5cdFx0MDogMjAwLFxuXHRcdC8vIFN1cHBvcnQ6IElFOVxuXHRcdC8vICMxNDUwOiBzb21ldGltZXMgSUUgcmV0dXJucyAxMjIzIHdoZW4gaXQgc2hvdWxkIGJlIDIwNFxuXHRcdDEyMjM6IDIwNFxuXHR9LFxuXHR4aHJTdXBwb3J0ZWQgPSBqUXVlcnkuYWpheFNldHRpbmdzLnhocigpO1xuXG4vLyBTdXBwb3J0OiBJRTlcbi8vIE9wZW4gcmVxdWVzdHMgbXVzdCBiZSBtYW51YWxseSBhYm9ydGVkIG9uIHVubG9hZCAoIzUyODApXG4vLyBTZWUgaHR0cHM6Ly9zdXBwb3J0Lm1pY3Jvc29mdC5jb20va2IvMjg1Njc0NiBmb3IgbW9yZSBpbmZvXG5pZiAoIHdpbmRvdy5hdHRhY2hFdmVudCApIHtcblx0d2luZG93LmF0dGFjaEV2ZW50KCBcIm9udW5sb2FkXCIsIGZ1bmN0aW9uKCkge1xuXHRcdGZvciAoIHZhciBrZXkgaW4geGhyQ2FsbGJhY2tzICkge1xuXHRcdFx0eGhyQ2FsbGJhY2tzWyBrZXkgXSgpO1xuXHRcdH1cblx0fSk7XG59XG5cbnN1cHBvcnQuY29ycyA9ICEheGhyU3VwcG9ydGVkICYmICggXCJ3aXRoQ3JlZGVudGlhbHNcIiBpbiB4aHJTdXBwb3J0ZWQgKTtcbnN1cHBvcnQuYWpheCA9IHhoclN1cHBvcnRlZCA9ICEheGhyU3VwcG9ydGVkO1xuXG5qUXVlcnkuYWpheFRyYW5zcG9ydChmdW5jdGlvbiggb3B0aW9ucyApIHtcblx0dmFyIGNhbGxiYWNrO1xuXG5cdC8vIENyb3NzIGRvbWFpbiBvbmx5IGFsbG93ZWQgaWYgc3VwcG9ydGVkIHRocm91Z2ggWE1MSHR0cFJlcXVlc3Rcblx0aWYgKCBzdXBwb3J0LmNvcnMgfHwgeGhyU3VwcG9ydGVkICYmICFvcHRpb25zLmNyb3NzRG9tYWluICkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRzZW5kOiBmdW5jdGlvbiggaGVhZGVycywgY29tcGxldGUgKSB7XG5cdFx0XHRcdHZhciBpLFxuXHRcdFx0XHRcdHhociA9IG9wdGlvbnMueGhyKCksXG5cdFx0XHRcdFx0aWQgPSArK3hocklkO1xuXG5cdFx0XHRcdHhoci5vcGVuKCBvcHRpb25zLnR5cGUsIG9wdGlvbnMudXJsLCBvcHRpb25zLmFzeW5jLCBvcHRpb25zLnVzZXJuYW1lLCBvcHRpb25zLnBhc3N3b3JkICk7XG5cblx0XHRcdFx0Ly8gQXBwbHkgY3VzdG9tIGZpZWxkcyBpZiBwcm92aWRlZFxuXHRcdFx0XHRpZiAoIG9wdGlvbnMueGhyRmllbGRzICkge1xuXHRcdFx0XHRcdGZvciAoIGkgaW4gb3B0aW9ucy54aHJGaWVsZHMgKSB7XG5cdFx0XHRcdFx0XHR4aHJbIGkgXSA9IG9wdGlvbnMueGhyRmllbGRzWyBpIF07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gT3ZlcnJpZGUgbWltZSB0eXBlIGlmIG5lZWRlZFxuXHRcdFx0XHRpZiAoIG9wdGlvbnMubWltZVR5cGUgJiYgeGhyLm92ZXJyaWRlTWltZVR5cGUgKSB7XG5cdFx0XHRcdFx0eGhyLm92ZXJyaWRlTWltZVR5cGUoIG9wdGlvbnMubWltZVR5cGUgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFgtUmVxdWVzdGVkLVdpdGggaGVhZGVyXG5cdFx0XHRcdC8vIEZvciBjcm9zcy1kb21haW4gcmVxdWVzdHMsIHNlZWluZyBhcyBjb25kaXRpb25zIGZvciBhIHByZWZsaWdodCBhcmVcblx0XHRcdFx0Ly8gYWtpbiB0byBhIGppZ3NhdyBwdXp6bGUsIHdlIHNpbXBseSBuZXZlciBzZXQgaXQgdG8gYmUgc3VyZS5cblx0XHRcdFx0Ly8gKGl0IGNhbiBhbHdheXMgYmUgc2V0IG9uIGEgcGVyLXJlcXVlc3QgYmFzaXMgb3IgZXZlbiB1c2luZyBhamF4U2V0dXApXG5cdFx0XHRcdC8vIEZvciBzYW1lLWRvbWFpbiByZXF1ZXN0cywgd29uJ3QgY2hhbmdlIGhlYWRlciBpZiBhbHJlYWR5IHByb3ZpZGVkLlxuXHRcdFx0XHRpZiAoICFvcHRpb25zLmNyb3NzRG9tYWluICYmICFoZWFkZXJzW1wiWC1SZXF1ZXN0ZWQtV2l0aFwiXSApIHtcblx0XHRcdFx0XHRoZWFkZXJzW1wiWC1SZXF1ZXN0ZWQtV2l0aFwiXSA9IFwiWE1MSHR0cFJlcXVlc3RcIjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFNldCBoZWFkZXJzXG5cdFx0XHRcdGZvciAoIGkgaW4gaGVhZGVycyApIHtcblx0XHRcdFx0XHR4aHIuc2V0UmVxdWVzdEhlYWRlciggaSwgaGVhZGVyc1sgaSBdICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBDYWxsYmFja1xuXHRcdFx0XHRjYWxsYmFjayA9IGZ1bmN0aW9uKCB0eXBlICkge1xuXHRcdFx0XHRcdHJldHVybiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdGlmICggY2FsbGJhY2sgKSB7XG5cdFx0XHRcdFx0XHRcdGRlbGV0ZSB4aHJDYWxsYmFja3NbIGlkIF07XG5cdFx0XHRcdFx0XHRcdGNhbGxiYWNrID0geGhyLm9ubG9hZCA9IHhoci5vbmVycm9yID0gbnVsbDtcblxuXHRcdFx0XHRcdFx0XHRpZiAoIHR5cGUgPT09IFwiYWJvcnRcIiApIHtcblx0XHRcdFx0XHRcdFx0XHR4aHIuYWJvcnQoKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICggdHlwZSA9PT0gXCJlcnJvclwiICkge1xuXHRcdFx0XHRcdFx0XHRcdGNvbXBsZXRlKFxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gZmlsZTogcHJvdG9jb2wgYWx3YXlzIHlpZWxkcyBzdGF0dXMgMDsgc2VlICM4NjA1LCAjMTQyMDdcblx0XHRcdFx0XHRcdFx0XHRcdHhoci5zdGF0dXMsXG5cdFx0XHRcdFx0XHRcdFx0XHR4aHIuc3RhdHVzVGV4dFxuXHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29tcGxldGUoXG5cdFx0XHRcdFx0XHRcdFx0XHR4aHJTdWNjZXNzU3RhdHVzWyB4aHIuc3RhdHVzIF0gfHwgeGhyLnN0YXR1cyxcblx0XHRcdFx0XHRcdFx0XHRcdHhoci5zdGF0dXNUZXh0LFxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUU5XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBBY2Nlc3NpbmcgYmluYXJ5LWRhdGEgcmVzcG9uc2VUZXh0IHRocm93cyBhbiBleGNlcHRpb25cblx0XHRcdFx0XHRcdFx0XHRcdC8vICgjMTE0MjYpXG5cdFx0XHRcdFx0XHRcdFx0XHR0eXBlb2YgeGhyLnJlc3BvbnNlVGV4dCA9PT0gXCJzdHJpbmdcIiA/IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGV4dDogeGhyLnJlc3BvbnNlVGV4dFxuXHRcdFx0XHRcdFx0XHRcdFx0fSA6IHVuZGVmaW5lZCxcblx0XHRcdFx0XHRcdFx0XHRcdHhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKVxuXHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9O1xuXG5cdFx0XHRcdC8vIExpc3RlbiB0byBldmVudHNcblx0XHRcdFx0eGhyLm9ubG9hZCA9IGNhbGxiYWNrKCk7XG5cdFx0XHRcdHhoci5vbmVycm9yID0gY2FsbGJhY2soXCJlcnJvclwiKTtcblxuXHRcdFx0XHQvLyBDcmVhdGUgdGhlIGFib3J0IGNhbGxiYWNrXG5cdFx0XHRcdGNhbGxiYWNrID0geGhyQ2FsbGJhY2tzWyBpZCBdID0gY2FsbGJhY2soXCJhYm9ydFwiKTtcblxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdC8vIERvIHNlbmQgdGhlIHJlcXVlc3QgKHRoaXMgbWF5IHJhaXNlIGFuIGV4Y2VwdGlvbilcblx0XHRcdFx0XHR4aHIuc2VuZCggb3B0aW9ucy5oYXNDb250ZW50ICYmIG9wdGlvbnMuZGF0YSB8fCBudWxsICk7XG5cdFx0XHRcdH0gY2F0Y2ggKCBlICkge1xuXHRcdFx0XHRcdC8vICMxNDY4MzogT25seSByZXRocm93IGlmIHRoaXMgaGFzbid0IGJlZW4gbm90aWZpZWQgYXMgYW4gZXJyb3IgeWV0XG5cdFx0XHRcdFx0aWYgKCBjYWxsYmFjayApIHtcblx0XHRcdFx0XHRcdHRocm93IGU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXG5cdFx0XHRhYm9ydDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggY2FsbGJhY2sgKSB7XG5cdFx0XHRcdFx0Y2FsbGJhY2soKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cdH1cbn0pO1xuXG5cblxuXG4vLyBJbnN0YWxsIHNjcmlwdCBkYXRhVHlwZVxualF1ZXJ5LmFqYXhTZXR1cCh7XG5cdGFjY2VwdHM6IHtcblx0XHRzY3JpcHQ6IFwidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9lY21hc2NyaXB0LCBhcHBsaWNhdGlvbi94LWVjbWFzY3JpcHRcIlxuXHR9LFxuXHRjb250ZW50czoge1xuXHRcdHNjcmlwdDogLyg/OmphdmF8ZWNtYSlzY3JpcHQvXG5cdH0sXG5cdGNvbnZlcnRlcnM6IHtcblx0XHRcInRleHQgc2NyaXB0XCI6IGZ1bmN0aW9uKCB0ZXh0ICkge1xuXHRcdFx0alF1ZXJ5Lmdsb2JhbEV2YWwoIHRleHQgKTtcblx0XHRcdHJldHVybiB0ZXh0O1xuXHRcdH1cblx0fVxufSk7XG5cbi8vIEhhbmRsZSBjYWNoZSdzIHNwZWNpYWwgY2FzZSBhbmQgY3Jvc3NEb21haW5cbmpRdWVyeS5hamF4UHJlZmlsdGVyKCBcInNjcmlwdFwiLCBmdW5jdGlvbiggcyApIHtcblx0aWYgKCBzLmNhY2hlID09PSB1bmRlZmluZWQgKSB7XG5cdFx0cy5jYWNoZSA9IGZhbHNlO1xuXHR9XG5cdGlmICggcy5jcm9zc0RvbWFpbiApIHtcblx0XHRzLnR5cGUgPSBcIkdFVFwiO1xuXHR9XG59KTtcblxuLy8gQmluZCBzY3JpcHQgdGFnIGhhY2sgdHJhbnNwb3J0XG5qUXVlcnkuYWpheFRyYW5zcG9ydCggXCJzY3JpcHRcIiwgZnVuY3Rpb24oIHMgKSB7XG5cdC8vIFRoaXMgdHJhbnNwb3J0IG9ubHkgZGVhbHMgd2l0aCBjcm9zcyBkb21haW4gcmVxdWVzdHNcblx0aWYgKCBzLmNyb3NzRG9tYWluICkge1xuXHRcdHZhciBzY3JpcHQsIGNhbGxiYWNrO1xuXHRcdHJldHVybiB7XG5cdFx0XHRzZW5kOiBmdW5jdGlvbiggXywgY29tcGxldGUgKSB7XG5cdFx0XHRcdHNjcmlwdCA9IGpRdWVyeShcIjxzY3JpcHQ+XCIpLnByb3Aoe1xuXHRcdFx0XHRcdGFzeW5jOiB0cnVlLFxuXHRcdFx0XHRcdGNoYXJzZXQ6IHMuc2NyaXB0Q2hhcnNldCxcblx0XHRcdFx0XHRzcmM6IHMudXJsXG5cdFx0XHRcdH0pLm9uKFxuXHRcdFx0XHRcdFwibG9hZCBlcnJvclwiLFxuXHRcdFx0XHRcdGNhbGxiYWNrID0gZnVuY3Rpb24oIGV2dCApIHtcblx0XHRcdFx0XHRcdHNjcmlwdC5yZW1vdmUoKTtcblx0XHRcdFx0XHRcdGNhbGxiYWNrID0gbnVsbDtcblx0XHRcdFx0XHRcdGlmICggZXZ0ICkge1xuXHRcdFx0XHRcdFx0XHRjb21wbGV0ZSggZXZ0LnR5cGUgPT09IFwiZXJyb3JcIiA/IDQwNCA6IDIwMCwgZXZ0LnR5cGUgKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdCk7XG5cdFx0XHRcdGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoIHNjcmlwdFsgMCBdICk7XG5cdFx0XHR9LFxuXHRcdFx0YWJvcnQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoIGNhbGxiYWNrICkge1xuXHRcdFx0XHRcdGNhbGxiYWNrKCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXHR9XG59KTtcblxuXG5cblxudmFyIG9sZENhbGxiYWNrcyA9IFtdLFxuXHRyanNvbnAgPSAvKD0pXFw/KD89JnwkKXxcXD9cXD8vO1xuXG4vLyBEZWZhdWx0IGpzb25wIHNldHRpbmdzXG5qUXVlcnkuYWpheFNldHVwKHtcblx0anNvbnA6IFwiY2FsbGJhY2tcIixcblx0anNvbnBDYWxsYmFjazogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGNhbGxiYWNrID0gb2xkQ2FsbGJhY2tzLnBvcCgpIHx8ICggalF1ZXJ5LmV4cGFuZG8gKyBcIl9cIiArICggbm9uY2UrKyApICk7XG5cdFx0dGhpc1sgY2FsbGJhY2sgXSA9IHRydWU7XG5cdFx0cmV0dXJuIGNhbGxiYWNrO1xuXHR9XG59KTtcblxuLy8gRGV0ZWN0LCBub3JtYWxpemUgb3B0aW9ucyBhbmQgaW5zdGFsbCBjYWxsYmFja3MgZm9yIGpzb25wIHJlcXVlc3RzXG5qUXVlcnkuYWpheFByZWZpbHRlciggXCJqc29uIGpzb25wXCIsIGZ1bmN0aW9uKCBzLCBvcmlnaW5hbFNldHRpbmdzLCBqcVhIUiApIHtcblxuXHR2YXIgY2FsbGJhY2tOYW1lLCBvdmVyd3JpdHRlbiwgcmVzcG9uc2VDb250YWluZXIsXG5cdFx0anNvblByb3AgPSBzLmpzb25wICE9PSBmYWxzZSAmJiAoIHJqc29ucC50ZXN0KCBzLnVybCApID9cblx0XHRcdFwidXJsXCIgOlxuXHRcdFx0dHlwZW9mIHMuZGF0YSA9PT0gXCJzdHJpbmdcIiAmJiAhKCBzLmNvbnRlbnRUeXBlIHx8IFwiXCIgKS5pbmRleE9mKFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIpICYmIHJqc29ucC50ZXN0KCBzLmRhdGEgKSAmJiBcImRhdGFcIlxuXHRcdCk7XG5cblx0Ly8gSGFuZGxlIGlmZiB0aGUgZXhwZWN0ZWQgZGF0YSB0eXBlIGlzIFwianNvbnBcIiBvciB3ZSBoYXZlIGEgcGFyYW1ldGVyIHRvIHNldFxuXHRpZiAoIGpzb25Qcm9wIHx8IHMuZGF0YVR5cGVzWyAwIF0gPT09IFwianNvbnBcIiApIHtcblxuXHRcdC8vIEdldCBjYWxsYmFjayBuYW1lLCByZW1lbWJlcmluZyBwcmVleGlzdGluZyB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggaXRcblx0XHRjYWxsYmFja05hbWUgPSBzLmpzb25wQ2FsbGJhY2sgPSBqUXVlcnkuaXNGdW5jdGlvbiggcy5qc29ucENhbGxiYWNrICkgP1xuXHRcdFx0cy5qc29ucENhbGxiYWNrKCkgOlxuXHRcdFx0cy5qc29ucENhbGxiYWNrO1xuXG5cdFx0Ly8gSW5zZXJ0IGNhbGxiYWNrIGludG8gdXJsIG9yIGZvcm0gZGF0YVxuXHRcdGlmICgganNvblByb3AgKSB7XG5cdFx0XHRzWyBqc29uUHJvcCBdID0gc1sganNvblByb3AgXS5yZXBsYWNlKCByanNvbnAsIFwiJDFcIiArIGNhbGxiYWNrTmFtZSApO1xuXHRcdH0gZWxzZSBpZiAoIHMuanNvbnAgIT09IGZhbHNlICkge1xuXHRcdFx0cy51cmwgKz0gKCBycXVlcnkudGVzdCggcy51cmwgKSA/IFwiJlwiIDogXCI/XCIgKSArIHMuanNvbnAgKyBcIj1cIiArIGNhbGxiYWNrTmFtZTtcblx0XHR9XG5cblx0XHQvLyBVc2UgZGF0YSBjb252ZXJ0ZXIgdG8gcmV0cmlldmUganNvbiBhZnRlciBzY3JpcHQgZXhlY3V0aW9uXG5cdFx0cy5jb252ZXJ0ZXJzW1wic2NyaXB0IGpzb25cIl0gPSBmdW5jdGlvbigpIHtcblx0XHRcdGlmICggIXJlc3BvbnNlQ29udGFpbmVyICkge1xuXHRcdFx0XHRqUXVlcnkuZXJyb3IoIGNhbGxiYWNrTmFtZSArIFwiIHdhcyBub3QgY2FsbGVkXCIgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZXNwb25zZUNvbnRhaW5lclsgMCBdO1xuXHRcdH07XG5cblx0XHQvLyBmb3JjZSBqc29uIGRhdGFUeXBlXG5cdFx0cy5kYXRhVHlwZXNbIDAgXSA9IFwianNvblwiO1xuXG5cdFx0Ly8gSW5zdGFsbCBjYWxsYmFja1xuXHRcdG92ZXJ3cml0dGVuID0gd2luZG93WyBjYWxsYmFja05hbWUgXTtcblx0XHR3aW5kb3dbIGNhbGxiYWNrTmFtZSBdID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRyZXNwb25zZUNvbnRhaW5lciA9IGFyZ3VtZW50cztcblx0XHR9O1xuXG5cdFx0Ly8gQ2xlYW4tdXAgZnVuY3Rpb24gKGZpcmVzIGFmdGVyIGNvbnZlcnRlcnMpXG5cdFx0anFYSFIuYWx3YXlzKGZ1bmN0aW9uKCkge1xuXHRcdFx0Ly8gUmVzdG9yZSBwcmVleGlzdGluZyB2YWx1ZVxuXHRcdFx0d2luZG93WyBjYWxsYmFja05hbWUgXSA9IG92ZXJ3cml0dGVuO1xuXG5cdFx0XHQvLyBTYXZlIGJhY2sgYXMgZnJlZVxuXHRcdFx0aWYgKCBzWyBjYWxsYmFja05hbWUgXSApIHtcblx0XHRcdFx0Ly8gbWFrZSBzdXJlIHRoYXQgcmUtdXNpbmcgdGhlIG9wdGlvbnMgZG9lc24ndCBzY3JldyB0aGluZ3MgYXJvdW5kXG5cdFx0XHRcdHMuanNvbnBDYWxsYmFjayA9IG9yaWdpbmFsU2V0dGluZ3MuanNvbnBDYWxsYmFjaztcblxuXHRcdFx0XHQvLyBzYXZlIHRoZSBjYWxsYmFjayBuYW1lIGZvciBmdXR1cmUgdXNlXG5cdFx0XHRcdG9sZENhbGxiYWNrcy5wdXNoKCBjYWxsYmFja05hbWUgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQ2FsbCBpZiBpdCB3YXMgYSBmdW5jdGlvbiBhbmQgd2UgaGF2ZSBhIHJlc3BvbnNlXG5cdFx0XHRpZiAoIHJlc3BvbnNlQ29udGFpbmVyICYmIGpRdWVyeS5pc0Z1bmN0aW9uKCBvdmVyd3JpdHRlbiApICkge1xuXHRcdFx0XHRvdmVyd3JpdHRlbiggcmVzcG9uc2VDb250YWluZXJbIDAgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXNwb25zZUNvbnRhaW5lciA9IG92ZXJ3cml0dGVuID0gdW5kZWZpbmVkO1xuXHRcdH0pO1xuXG5cdFx0Ly8gRGVsZWdhdGUgdG8gc2NyaXB0XG5cdFx0cmV0dXJuIFwic2NyaXB0XCI7XG5cdH1cbn0pO1xuXG5cblxuXG4vLyBkYXRhOiBzdHJpbmcgb2YgaHRtbFxuLy8gY29udGV4dCAob3B0aW9uYWwpOiBJZiBzcGVjaWZpZWQsIHRoZSBmcmFnbWVudCB3aWxsIGJlIGNyZWF0ZWQgaW4gdGhpcyBjb250ZXh0LCBkZWZhdWx0cyB0byBkb2N1bWVudFxuLy8ga2VlcFNjcmlwdHMgKG9wdGlvbmFsKTogSWYgdHJ1ZSwgd2lsbCBpbmNsdWRlIHNjcmlwdHMgcGFzc2VkIGluIHRoZSBodG1sIHN0cmluZ1xualF1ZXJ5LnBhcnNlSFRNTCA9IGZ1bmN0aW9uKCBkYXRhLCBjb250ZXh0LCBrZWVwU2NyaXB0cyApIHtcblx0aWYgKCAhZGF0YSB8fCB0eXBlb2YgZGF0YSAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXHRpZiAoIHR5cGVvZiBjb250ZXh0ID09PSBcImJvb2xlYW5cIiApIHtcblx0XHRrZWVwU2NyaXB0cyA9IGNvbnRleHQ7XG5cdFx0Y29udGV4dCA9IGZhbHNlO1xuXHR9XG5cdGNvbnRleHQgPSBjb250ZXh0IHx8IGRvY3VtZW50O1xuXG5cdHZhciBwYXJzZWQgPSByc2luZ2xlVGFnLmV4ZWMoIGRhdGEgKSxcblx0XHRzY3JpcHRzID0gIWtlZXBTY3JpcHRzICYmIFtdO1xuXG5cdC8vIFNpbmdsZSB0YWdcblx0aWYgKCBwYXJzZWQgKSB7XG5cdFx0cmV0dXJuIFsgY29udGV4dC5jcmVhdGVFbGVtZW50KCBwYXJzZWRbMV0gKSBdO1xuXHR9XG5cblx0cGFyc2VkID0galF1ZXJ5LmJ1aWxkRnJhZ21lbnQoIFsgZGF0YSBdLCBjb250ZXh0LCBzY3JpcHRzICk7XG5cblx0aWYgKCBzY3JpcHRzICYmIHNjcmlwdHMubGVuZ3RoICkge1xuXHRcdGpRdWVyeSggc2NyaXB0cyApLnJlbW92ZSgpO1xuXHR9XG5cblx0cmV0dXJuIGpRdWVyeS5tZXJnZSggW10sIHBhcnNlZC5jaGlsZE5vZGVzICk7XG59O1xuXG5cbi8vIEtlZXAgYSBjb3B5IG9mIHRoZSBvbGQgbG9hZCBtZXRob2RcbnZhciBfbG9hZCA9IGpRdWVyeS5mbi5sb2FkO1xuXG4vKipcbiAqIExvYWQgYSB1cmwgaW50byBhIHBhZ2VcbiAqL1xualF1ZXJ5LmZuLmxvYWQgPSBmdW5jdGlvbiggdXJsLCBwYXJhbXMsIGNhbGxiYWNrICkge1xuXHRpZiAoIHR5cGVvZiB1cmwgIT09IFwic3RyaW5nXCIgJiYgX2xvYWQgKSB7XG5cdFx0cmV0dXJuIF9sb2FkLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTtcblx0fVxuXG5cdHZhciBzZWxlY3RvciwgdHlwZSwgcmVzcG9uc2UsXG5cdFx0c2VsZiA9IHRoaXMsXG5cdFx0b2ZmID0gdXJsLmluZGV4T2YoXCIgXCIpO1xuXG5cdGlmICggb2ZmID49IDAgKSB7XG5cdFx0c2VsZWN0b3IgPSBqUXVlcnkudHJpbSggdXJsLnNsaWNlKCBvZmYgKSApO1xuXHRcdHVybCA9IHVybC5zbGljZSggMCwgb2ZmICk7XG5cdH1cblxuXHQvLyBJZiBpdCdzIGEgZnVuY3Rpb25cblx0aWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggcGFyYW1zICkgKSB7XG5cblx0XHQvLyBXZSBhc3N1bWUgdGhhdCBpdCdzIHRoZSBjYWxsYmFja1xuXHRcdGNhbGxiYWNrID0gcGFyYW1zO1xuXHRcdHBhcmFtcyA9IHVuZGVmaW5lZDtcblxuXHQvLyBPdGhlcndpc2UsIGJ1aWxkIGEgcGFyYW0gc3RyaW5nXG5cdH0gZWxzZSBpZiAoIHBhcmFtcyAmJiB0eXBlb2YgcGFyYW1zID09PSBcIm9iamVjdFwiICkge1xuXHRcdHR5cGUgPSBcIlBPU1RcIjtcblx0fVxuXG5cdC8vIElmIHdlIGhhdmUgZWxlbWVudHMgdG8gbW9kaWZ5LCBtYWtlIHRoZSByZXF1ZXN0XG5cdGlmICggc2VsZi5sZW5ndGggPiAwICkge1xuXHRcdGpRdWVyeS5hamF4KHtcblx0XHRcdHVybDogdXJsLFxuXG5cdFx0XHQvLyBpZiBcInR5cGVcIiB2YXJpYWJsZSBpcyB1bmRlZmluZWQsIHRoZW4gXCJHRVRcIiBtZXRob2Qgd2lsbCBiZSB1c2VkXG5cdFx0XHR0eXBlOiB0eXBlLFxuXHRcdFx0ZGF0YVR5cGU6IFwiaHRtbFwiLFxuXHRcdFx0ZGF0YTogcGFyYW1zXG5cdFx0fSkuZG9uZShmdW5jdGlvbiggcmVzcG9uc2VUZXh0ICkge1xuXG5cdFx0XHQvLyBTYXZlIHJlc3BvbnNlIGZvciB1c2UgaW4gY29tcGxldGUgY2FsbGJhY2tcblx0XHRcdHJlc3BvbnNlID0gYXJndW1lbnRzO1xuXG5cdFx0XHRzZWxmLmh0bWwoIHNlbGVjdG9yID9cblxuXHRcdFx0XHQvLyBJZiBhIHNlbGVjdG9yIHdhcyBzcGVjaWZpZWQsIGxvY2F0ZSB0aGUgcmlnaHQgZWxlbWVudHMgaW4gYSBkdW1teSBkaXZcblx0XHRcdFx0Ly8gRXhjbHVkZSBzY3JpcHRzIHRvIGF2b2lkIElFICdQZXJtaXNzaW9uIERlbmllZCcgZXJyb3JzXG5cdFx0XHRcdGpRdWVyeShcIjxkaXY+XCIpLmFwcGVuZCggalF1ZXJ5LnBhcnNlSFRNTCggcmVzcG9uc2VUZXh0ICkgKS5maW5kKCBzZWxlY3RvciApIDpcblxuXHRcdFx0XHQvLyBPdGhlcndpc2UgdXNlIHRoZSBmdWxsIHJlc3VsdFxuXHRcdFx0XHRyZXNwb25zZVRleHQgKTtcblxuXHRcdH0pLmNvbXBsZXRlKCBjYWxsYmFjayAmJiBmdW5jdGlvbigganFYSFIsIHN0YXR1cyApIHtcblx0XHRcdHNlbGYuZWFjaCggY2FsbGJhY2ssIHJlc3BvbnNlIHx8IFsganFYSFIucmVzcG9uc2VUZXh0LCBzdGF0dXMsIGpxWEhSIF0gKTtcblx0XHR9KTtcblx0fVxuXG5cdHJldHVybiB0aGlzO1xufTtcblxuXG5cblxuLy8gQXR0YWNoIGEgYnVuY2ggb2YgZnVuY3Rpb25zIGZvciBoYW5kbGluZyBjb21tb24gQUpBWCBldmVudHNcbmpRdWVyeS5lYWNoKCBbIFwiYWpheFN0YXJ0XCIsIFwiYWpheFN0b3BcIiwgXCJhamF4Q29tcGxldGVcIiwgXCJhamF4RXJyb3JcIiwgXCJhamF4U3VjY2Vzc1wiLCBcImFqYXhTZW5kXCIgXSwgZnVuY3Rpb24oIGksIHR5cGUgKSB7XG5cdGpRdWVyeS5mblsgdHlwZSBdID0gZnVuY3Rpb24oIGZuICkge1xuXHRcdHJldHVybiB0aGlzLm9uKCB0eXBlLCBmbiApO1xuXHR9O1xufSk7XG5cblxuXG5cbmpRdWVyeS5leHByLmZpbHRlcnMuYW5pbWF0ZWQgPSBmdW5jdGlvbiggZWxlbSApIHtcblx0cmV0dXJuIGpRdWVyeS5ncmVwKGpRdWVyeS50aW1lcnMsIGZ1bmN0aW9uKCBmbiApIHtcblx0XHRyZXR1cm4gZWxlbSA9PT0gZm4uZWxlbTtcblx0fSkubGVuZ3RoO1xufTtcblxuXG5cblxudmFyIGRvY0VsZW0gPSB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG4vKipcbiAqIEdldHMgYSB3aW5kb3cgZnJvbSBhbiBlbGVtZW50XG4gKi9cbmZ1bmN0aW9uIGdldFdpbmRvdyggZWxlbSApIHtcblx0cmV0dXJuIGpRdWVyeS5pc1dpbmRvdyggZWxlbSApID8gZWxlbSA6IGVsZW0ubm9kZVR5cGUgPT09IDkgJiYgZWxlbS5kZWZhdWx0Vmlldztcbn1cblxualF1ZXJ5Lm9mZnNldCA9IHtcblx0c2V0T2Zmc2V0OiBmdW5jdGlvbiggZWxlbSwgb3B0aW9ucywgaSApIHtcblx0XHR2YXIgY3VyUG9zaXRpb24sIGN1ckxlZnQsIGN1ckNTU1RvcCwgY3VyVG9wLCBjdXJPZmZzZXQsIGN1ckNTU0xlZnQsIGNhbGN1bGF0ZVBvc2l0aW9uLFxuXHRcdFx0cG9zaXRpb24gPSBqUXVlcnkuY3NzKCBlbGVtLCBcInBvc2l0aW9uXCIgKSxcblx0XHRcdGN1ckVsZW0gPSBqUXVlcnkoIGVsZW0gKSxcblx0XHRcdHByb3BzID0ge307XG5cblx0XHQvLyBTZXQgcG9zaXRpb24gZmlyc3QsIGluLWNhc2UgdG9wL2xlZnQgYXJlIHNldCBldmVuIG9uIHN0YXRpYyBlbGVtXG5cdFx0aWYgKCBwb3NpdGlvbiA9PT0gXCJzdGF0aWNcIiApIHtcblx0XHRcdGVsZW0uc3R5bGUucG9zaXRpb24gPSBcInJlbGF0aXZlXCI7XG5cdFx0fVxuXG5cdFx0Y3VyT2Zmc2V0ID0gY3VyRWxlbS5vZmZzZXQoKTtcblx0XHRjdXJDU1NUb3AgPSBqUXVlcnkuY3NzKCBlbGVtLCBcInRvcFwiICk7XG5cdFx0Y3VyQ1NTTGVmdCA9IGpRdWVyeS5jc3MoIGVsZW0sIFwibGVmdFwiICk7XG5cdFx0Y2FsY3VsYXRlUG9zaXRpb24gPSAoIHBvc2l0aW9uID09PSBcImFic29sdXRlXCIgfHwgcG9zaXRpb24gPT09IFwiZml4ZWRcIiApICYmXG5cdFx0XHQoIGN1ckNTU1RvcCArIGN1ckNTU0xlZnQgKS5pbmRleE9mKFwiYXV0b1wiKSA+IC0xO1xuXG5cdFx0Ly8gTmVlZCB0byBiZSBhYmxlIHRvIGNhbGN1bGF0ZSBwb3NpdGlvbiBpZiBlaXRoZXJcblx0XHQvLyB0b3Agb3IgbGVmdCBpcyBhdXRvIGFuZCBwb3NpdGlvbiBpcyBlaXRoZXIgYWJzb2x1dGUgb3IgZml4ZWRcblx0XHRpZiAoIGNhbGN1bGF0ZVBvc2l0aW9uICkge1xuXHRcdFx0Y3VyUG9zaXRpb24gPSBjdXJFbGVtLnBvc2l0aW9uKCk7XG5cdFx0XHRjdXJUb3AgPSBjdXJQb3NpdGlvbi50b3A7XG5cdFx0XHRjdXJMZWZ0ID0gY3VyUG9zaXRpb24ubGVmdDtcblxuXHRcdH0gZWxzZSB7XG5cdFx0XHRjdXJUb3AgPSBwYXJzZUZsb2F0KCBjdXJDU1NUb3AgKSB8fCAwO1xuXHRcdFx0Y3VyTGVmdCA9IHBhcnNlRmxvYXQoIGN1ckNTU0xlZnQgKSB8fCAwO1xuXHRcdH1cblxuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIG9wdGlvbnMgKSApIHtcblx0XHRcdG9wdGlvbnMgPSBvcHRpb25zLmNhbGwoIGVsZW0sIGksIGN1ck9mZnNldCApO1xuXHRcdH1cblxuXHRcdGlmICggb3B0aW9ucy50b3AgIT0gbnVsbCApIHtcblx0XHRcdHByb3BzLnRvcCA9ICggb3B0aW9ucy50b3AgLSBjdXJPZmZzZXQudG9wICkgKyBjdXJUb3A7XG5cdFx0fVxuXHRcdGlmICggb3B0aW9ucy5sZWZ0ICE9IG51bGwgKSB7XG5cdFx0XHRwcm9wcy5sZWZ0ID0gKCBvcHRpb25zLmxlZnQgLSBjdXJPZmZzZXQubGVmdCApICsgY3VyTGVmdDtcblx0XHR9XG5cblx0XHRpZiAoIFwidXNpbmdcIiBpbiBvcHRpb25zICkge1xuXHRcdFx0b3B0aW9ucy51c2luZy5jYWxsKCBlbGVtLCBwcm9wcyApO1xuXG5cdFx0fSBlbHNlIHtcblx0XHRcdGN1ckVsZW0uY3NzKCBwcm9wcyApO1xuXHRcdH1cblx0fVxufTtcblxualF1ZXJ5LmZuLmV4dGVuZCh7XG5cdG9mZnNldDogZnVuY3Rpb24oIG9wdGlvbnMgKSB7XG5cdFx0aWYgKCBhcmd1bWVudHMubGVuZ3RoICkge1xuXHRcdFx0cmV0dXJuIG9wdGlvbnMgPT09IHVuZGVmaW5lZCA/XG5cdFx0XHRcdHRoaXMgOlxuXHRcdFx0XHR0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHRcdFx0alF1ZXJ5Lm9mZnNldC5zZXRPZmZzZXQoIHRoaXMsIG9wdGlvbnMsIGkgKTtcblx0XHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0dmFyIGRvY0VsZW0sIHdpbixcblx0XHRcdGVsZW0gPSB0aGlzWyAwIF0sXG5cdFx0XHRib3ggPSB7IHRvcDogMCwgbGVmdDogMCB9LFxuXHRcdFx0ZG9jID0gZWxlbSAmJiBlbGVtLm93bmVyRG9jdW1lbnQ7XG5cblx0XHRpZiAoICFkb2MgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0ZG9jRWxlbSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7XG5cblx0XHQvLyBNYWtlIHN1cmUgaXQncyBub3QgYSBkaXNjb25uZWN0ZWQgRE9NIG5vZGVcblx0XHRpZiAoICFqUXVlcnkuY29udGFpbnMoIGRvY0VsZW0sIGVsZW0gKSApIHtcblx0XHRcdHJldHVybiBib3g7XG5cdFx0fVxuXG5cdFx0Ly8gU3VwcG9ydDogQmxhY2tCZXJyeSA1LCBpT1MgMyAob3JpZ2luYWwgaVBob25lKVxuXHRcdC8vIElmIHdlIGRvbid0IGhhdmUgZ0JDUiwganVzdCB1c2UgMCwwIHJhdGhlciB0aGFuIGVycm9yXG5cdFx0aWYgKCB0eXBlb2YgZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QgIT09IHN0cnVuZGVmaW5lZCApIHtcblx0XHRcdGJveCA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cdFx0fVxuXHRcdHdpbiA9IGdldFdpbmRvdyggZG9jICk7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHRvcDogYm94LnRvcCArIHdpbi5wYWdlWU9mZnNldCAtIGRvY0VsZW0uY2xpZW50VG9wLFxuXHRcdFx0bGVmdDogYm94LmxlZnQgKyB3aW4ucGFnZVhPZmZzZXQgLSBkb2NFbGVtLmNsaWVudExlZnRcblx0XHR9O1xuXHR9LFxuXG5cdHBvc2l0aW9uOiBmdW5jdGlvbigpIHtcblx0XHRpZiAoICF0aGlzWyAwIF0gKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dmFyIG9mZnNldFBhcmVudCwgb2Zmc2V0LFxuXHRcdFx0ZWxlbSA9IHRoaXNbIDAgXSxcblx0XHRcdHBhcmVudE9mZnNldCA9IHsgdG9wOiAwLCBsZWZ0OiAwIH07XG5cblx0XHQvLyBGaXhlZCBlbGVtZW50cyBhcmUgb2Zmc2V0IGZyb20gd2luZG93IChwYXJlbnRPZmZzZXQgPSB7dG9wOjAsIGxlZnQ6IDB9LCBiZWNhdXNlIGl0IGlzIGl0cyBvbmx5IG9mZnNldCBwYXJlbnRcblx0XHRpZiAoIGpRdWVyeS5jc3MoIGVsZW0sIFwicG9zaXRpb25cIiApID09PSBcImZpeGVkXCIgKSB7XG5cdFx0XHQvLyBBc3N1bWUgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGlzIHRoZXJlIHdoZW4gY29tcHV0ZWQgcG9zaXRpb24gaXMgZml4ZWRcblx0XHRcdG9mZnNldCA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gR2V0ICpyZWFsKiBvZmZzZXRQYXJlbnRcblx0XHRcdG9mZnNldFBhcmVudCA9IHRoaXMub2Zmc2V0UGFyZW50KCk7XG5cblx0XHRcdC8vIEdldCBjb3JyZWN0IG9mZnNldHNcblx0XHRcdG9mZnNldCA9IHRoaXMub2Zmc2V0KCk7XG5cdFx0XHRpZiAoICFqUXVlcnkubm9kZU5hbWUoIG9mZnNldFBhcmVudFsgMCBdLCBcImh0bWxcIiApICkge1xuXHRcdFx0XHRwYXJlbnRPZmZzZXQgPSBvZmZzZXRQYXJlbnQub2Zmc2V0KCk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEFkZCBvZmZzZXRQYXJlbnQgYm9yZGVyc1xuXHRcdFx0cGFyZW50T2Zmc2V0LnRvcCArPSBqUXVlcnkuY3NzKCBvZmZzZXRQYXJlbnRbIDAgXSwgXCJib3JkZXJUb3BXaWR0aFwiLCB0cnVlICk7XG5cdFx0XHRwYXJlbnRPZmZzZXQubGVmdCArPSBqUXVlcnkuY3NzKCBvZmZzZXRQYXJlbnRbIDAgXSwgXCJib3JkZXJMZWZ0V2lkdGhcIiwgdHJ1ZSApO1xuXHRcdH1cblxuXHRcdC8vIFN1YnRyYWN0IHBhcmVudCBvZmZzZXRzIGFuZCBlbGVtZW50IG1hcmdpbnNcblx0XHRyZXR1cm4ge1xuXHRcdFx0dG9wOiBvZmZzZXQudG9wIC0gcGFyZW50T2Zmc2V0LnRvcCAtIGpRdWVyeS5jc3MoIGVsZW0sIFwibWFyZ2luVG9wXCIsIHRydWUgKSxcblx0XHRcdGxlZnQ6IG9mZnNldC5sZWZ0IC0gcGFyZW50T2Zmc2V0LmxlZnQgLSBqUXVlcnkuY3NzKCBlbGVtLCBcIm1hcmdpbkxlZnRcIiwgdHJ1ZSApXG5cdFx0fTtcblx0fSxcblxuXHRvZmZzZXRQYXJlbnQ6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLm1hcChmdW5jdGlvbigpIHtcblx0XHRcdHZhciBvZmZzZXRQYXJlbnQgPSB0aGlzLm9mZnNldFBhcmVudCB8fCBkb2NFbGVtO1xuXG5cdFx0XHR3aGlsZSAoIG9mZnNldFBhcmVudCAmJiAoICFqUXVlcnkubm9kZU5hbWUoIG9mZnNldFBhcmVudCwgXCJodG1sXCIgKSAmJiBqUXVlcnkuY3NzKCBvZmZzZXRQYXJlbnQsIFwicG9zaXRpb25cIiApID09PSBcInN0YXRpY1wiICkgKSB7XG5cdFx0XHRcdG9mZnNldFBhcmVudCA9IG9mZnNldFBhcmVudC5vZmZzZXRQYXJlbnQ7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBvZmZzZXRQYXJlbnQgfHwgZG9jRWxlbTtcblx0XHR9KTtcblx0fVxufSk7XG5cbi8vIENyZWF0ZSBzY3JvbGxMZWZ0IGFuZCBzY3JvbGxUb3AgbWV0aG9kc1xualF1ZXJ5LmVhY2goIHsgc2Nyb2xsTGVmdDogXCJwYWdlWE9mZnNldFwiLCBzY3JvbGxUb3A6IFwicGFnZVlPZmZzZXRcIiB9LCBmdW5jdGlvbiggbWV0aG9kLCBwcm9wICkge1xuXHR2YXIgdG9wID0gXCJwYWdlWU9mZnNldFwiID09PSBwcm9wO1xuXG5cdGpRdWVyeS5mblsgbWV0aG9kIF0gPSBmdW5jdGlvbiggdmFsICkge1xuXHRcdHJldHVybiBhY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCBtZXRob2QsIHZhbCApIHtcblx0XHRcdHZhciB3aW4gPSBnZXRXaW5kb3coIGVsZW0gKTtcblxuXHRcdFx0aWYgKCB2YWwgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0cmV0dXJuIHdpbiA/IHdpblsgcHJvcCBdIDogZWxlbVsgbWV0aG9kIF07XG5cdFx0XHR9XG5cblx0XHRcdGlmICggd2luICkge1xuXHRcdFx0XHR3aW4uc2Nyb2xsVG8oXG5cdFx0XHRcdFx0IXRvcCA/IHZhbCA6IHdpbmRvdy5wYWdlWE9mZnNldCxcblx0XHRcdFx0XHR0b3AgPyB2YWwgOiB3aW5kb3cucGFnZVlPZmZzZXRcblx0XHRcdFx0KTtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZWxlbVsgbWV0aG9kIF0gPSB2YWw7XG5cdFx0XHR9XG5cdFx0fSwgbWV0aG9kLCB2YWwsIGFyZ3VtZW50cy5sZW5ndGgsIG51bGwgKTtcblx0fTtcbn0pO1xuXG4vLyBTdXBwb3J0OiBTYWZhcmk8NyssIENocm9tZTwzNytcbi8vIEFkZCB0aGUgdG9wL2xlZnQgY3NzSG9va3MgdXNpbmcgalF1ZXJ5LmZuLnBvc2l0aW9uXG4vLyBXZWJraXQgYnVnOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwODRcbi8vIEJsaW5rIGJ1ZzogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTIyOTI4MFxuLy8gZ2V0Q29tcHV0ZWRTdHlsZSByZXR1cm5zIHBlcmNlbnQgd2hlbiBzcGVjaWZpZWQgZm9yIHRvcC9sZWZ0L2JvdHRvbS9yaWdodDtcbi8vIHJhdGhlciB0aGFuIG1ha2UgdGhlIGNzcyBtb2R1bGUgZGVwZW5kIG9uIHRoZSBvZmZzZXQgbW9kdWxlLCBqdXN0IGNoZWNrIGZvciBpdCBoZXJlXG5qUXVlcnkuZWFjaCggWyBcInRvcFwiLCBcImxlZnRcIiBdLCBmdW5jdGlvbiggaSwgcHJvcCApIHtcblx0alF1ZXJ5LmNzc0hvb2tzWyBwcm9wIF0gPSBhZGRHZXRIb29rSWYoIHN1cHBvcnQucGl4ZWxQb3NpdGlvbixcblx0XHRmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQgKSB7XG5cdFx0XHRpZiAoIGNvbXB1dGVkICkge1xuXHRcdFx0XHRjb21wdXRlZCA9IGN1ckNTUyggZWxlbSwgcHJvcCApO1xuXHRcdFx0XHQvLyBJZiBjdXJDU1MgcmV0dXJucyBwZXJjZW50YWdlLCBmYWxsYmFjayB0byBvZmZzZXRcblx0XHRcdFx0cmV0dXJuIHJudW1ub25weC50ZXN0KCBjb21wdXRlZCApID9cblx0XHRcdFx0XHRqUXVlcnkoIGVsZW0gKS5wb3NpdGlvbigpWyBwcm9wIF0gKyBcInB4XCIgOlxuXHRcdFx0XHRcdGNvbXB1dGVkO1xuXHRcdFx0fVxuXHRcdH1cblx0KTtcbn0pO1xuXG5cbi8vIENyZWF0ZSBpbm5lckhlaWdodCwgaW5uZXJXaWR0aCwgaGVpZ2h0LCB3aWR0aCwgb3V0ZXJIZWlnaHQgYW5kIG91dGVyV2lkdGggbWV0aG9kc1xualF1ZXJ5LmVhY2goIHsgSGVpZ2h0OiBcImhlaWdodFwiLCBXaWR0aDogXCJ3aWR0aFwiIH0sIGZ1bmN0aW9uKCBuYW1lLCB0eXBlICkge1xuXHRqUXVlcnkuZWFjaCggeyBwYWRkaW5nOiBcImlubmVyXCIgKyBuYW1lLCBjb250ZW50OiB0eXBlLCBcIlwiOiBcIm91dGVyXCIgKyBuYW1lIH0sIGZ1bmN0aW9uKCBkZWZhdWx0RXh0cmEsIGZ1bmNOYW1lICkge1xuXHRcdC8vIE1hcmdpbiBpcyBvbmx5IGZvciBvdXRlckhlaWdodCwgb3V0ZXJXaWR0aFxuXHRcdGpRdWVyeS5mblsgZnVuY05hbWUgXSA9IGZ1bmN0aW9uKCBtYXJnaW4sIHZhbHVlICkge1xuXHRcdFx0dmFyIGNoYWluYWJsZSA9IGFyZ3VtZW50cy5sZW5ndGggJiYgKCBkZWZhdWx0RXh0cmEgfHwgdHlwZW9mIG1hcmdpbiAhPT0gXCJib29sZWFuXCIgKSxcblx0XHRcdFx0ZXh0cmEgPSBkZWZhdWx0RXh0cmEgfHwgKCBtYXJnaW4gPT09IHRydWUgfHwgdmFsdWUgPT09IHRydWUgPyBcIm1hcmdpblwiIDogXCJib3JkZXJcIiApO1xuXG5cdFx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggZWxlbSwgdHlwZSwgdmFsdWUgKSB7XG5cdFx0XHRcdHZhciBkb2M7XG5cblx0XHRcdFx0aWYgKCBqUXVlcnkuaXNXaW5kb3coIGVsZW0gKSApIHtcblx0XHRcdFx0XHQvLyBBcyBvZiA1LzgvMjAxMiB0aGlzIHdpbGwgeWllbGQgaW5jb3JyZWN0IHJlc3VsdHMgZm9yIE1vYmlsZSBTYWZhcmksIGJ1dCB0aGVyZVxuXHRcdFx0XHRcdC8vIGlzbid0IGEgd2hvbGUgbG90IHdlIGNhbiBkby4gU2VlIHB1bGwgcmVxdWVzdCBhdCB0aGlzIFVSTCBmb3IgZGlzY3Vzc2lvbjpcblx0XHRcdFx0XHQvLyBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L2pxdWVyeS9wdWxsLzc2NFxuXHRcdFx0XHRcdHJldHVybiBlbGVtLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsgXCJjbGllbnRcIiArIG5hbWUgXTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEdldCBkb2N1bWVudCB3aWR0aCBvciBoZWlnaHRcblx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSA5ICkge1xuXHRcdFx0XHRcdGRvYyA9IGVsZW0uZG9jdW1lbnRFbGVtZW50O1xuXG5cdFx0XHRcdFx0Ly8gRWl0aGVyIHNjcm9sbFtXaWR0aC9IZWlnaHRdIG9yIG9mZnNldFtXaWR0aC9IZWlnaHRdIG9yIGNsaWVudFtXaWR0aC9IZWlnaHRdLFxuXHRcdFx0XHRcdC8vIHdoaWNoZXZlciBpcyBncmVhdGVzdFxuXHRcdFx0XHRcdHJldHVybiBNYXRoLm1heChcblx0XHRcdFx0XHRcdGVsZW0uYm9keVsgXCJzY3JvbGxcIiArIG5hbWUgXSwgZG9jWyBcInNjcm9sbFwiICsgbmFtZSBdLFxuXHRcdFx0XHRcdFx0ZWxlbS5ib2R5WyBcIm9mZnNldFwiICsgbmFtZSBdLCBkb2NbIFwib2Zmc2V0XCIgKyBuYW1lIF0sXG5cdFx0XHRcdFx0XHRkb2NbIFwiY2xpZW50XCIgKyBuYW1lIF1cblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgP1xuXHRcdFx0XHRcdC8vIEdldCB3aWR0aCBvciBoZWlnaHQgb24gdGhlIGVsZW1lbnQsIHJlcXVlc3RpbmcgYnV0IG5vdCBmb3JjaW5nIHBhcnNlRmxvYXRcblx0XHRcdFx0XHRqUXVlcnkuY3NzKCBlbGVtLCB0eXBlLCBleHRyYSApIDpcblxuXHRcdFx0XHRcdC8vIFNldCB3aWR0aCBvciBoZWlnaHQgb24gdGhlIGVsZW1lbnRcblx0XHRcdFx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIHR5cGUsIHZhbHVlLCBleHRyYSApO1xuXHRcdFx0fSwgdHlwZSwgY2hhaW5hYmxlID8gbWFyZ2luIDogdW5kZWZpbmVkLCBjaGFpbmFibGUsIG51bGwgKTtcblx0XHR9O1xuXHR9KTtcbn0pO1xuXG5cbi8vIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgY29udGFpbmVkIGluIHRoZSBtYXRjaGVkIGVsZW1lbnQgc2V0XG5qUXVlcnkuZm4uc2l6ZSA9IGZ1bmN0aW9uKCkge1xuXHRyZXR1cm4gdGhpcy5sZW5ndGg7XG59O1xuXG5qUXVlcnkuZm4uYW5kU2VsZiA9IGpRdWVyeS5mbi5hZGRCYWNrO1xuXG5cblxuXG4vLyBSZWdpc3RlciBhcyBhIG5hbWVkIEFNRCBtb2R1bGUsIHNpbmNlIGpRdWVyeSBjYW4gYmUgY29uY2F0ZW5hdGVkIHdpdGggb3RoZXJcbi8vIGZpbGVzIHRoYXQgbWF5IHVzZSBkZWZpbmUsIGJ1dCBub3QgdmlhIGEgcHJvcGVyIGNvbmNhdGVuYXRpb24gc2NyaXB0IHRoYXRcbi8vIHVuZGVyc3RhbmRzIGFub255bW91cyBBTUQgbW9kdWxlcy4gQSBuYW1lZCBBTUQgaXMgc2FmZXN0IGFuZCBtb3N0IHJvYnVzdFxuLy8gd2F5IHRvIHJlZ2lzdGVyLiBMb3dlcmNhc2UganF1ZXJ5IGlzIHVzZWQgYmVjYXVzZSBBTUQgbW9kdWxlIG5hbWVzIGFyZVxuLy8gZGVyaXZlZCBmcm9tIGZpbGUgbmFtZXMsIGFuZCBqUXVlcnkgaXMgbm9ybWFsbHkgZGVsaXZlcmVkIGluIGEgbG93ZXJjYXNlXG4vLyBmaWxlIG5hbWUuIERvIHRoaXMgYWZ0ZXIgY3JlYXRpbmcgdGhlIGdsb2JhbCBzbyB0aGF0IGlmIGFuIEFNRCBtb2R1bGUgd2FudHNcbi8vIHRvIGNhbGwgbm9Db25mbGljdCB0byBoaWRlIHRoaXMgdmVyc2lvbiBvZiBqUXVlcnksIGl0IHdpbGwgd29yay5cblxuLy8gTm90ZSB0aGF0IGZvciBtYXhpbXVtIHBvcnRhYmlsaXR5LCBsaWJyYXJpZXMgdGhhdCBhcmUgbm90IGpRdWVyeSBzaG91bGRcbi8vIGRlY2xhcmUgdGhlbXNlbHZlcyBhcyBhbm9ueW1vdXMgbW9kdWxlcywgYW5kIGF2b2lkIHNldHRpbmcgYSBnbG9iYWwgaWYgYW5cbi8vIEFNRCBsb2FkZXIgaXMgcHJlc2VudC4galF1ZXJ5IGlzIGEgc3BlY2lhbCBjYXNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlXG4vLyBodHRwczovL2dpdGh1Yi5jb20vanJidXJrZS9yZXF1aXJlanMvd2lraS9VcGRhdGluZy1leGlzdGluZy1saWJyYXJpZXMjd2lraS1hbm9uXG5cbmlmICggdHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQgKSB7XG5cdGRlZmluZSggXCJqcXVlcnlcIiwgW10sIGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBqUXVlcnk7XG5cdH0pO1xufVxuXG5cblxuXG52YXJcblx0Ly8gTWFwIG92ZXIgalF1ZXJ5IGluIGNhc2Ugb2Ygb3ZlcndyaXRlXG5cdF9qUXVlcnkgPSB3aW5kb3cualF1ZXJ5LFxuXG5cdC8vIE1hcCBvdmVyIHRoZSAkIGluIGNhc2Ugb2Ygb3ZlcndyaXRlXG5cdF8kID0gd2luZG93LiQ7XG5cbmpRdWVyeS5ub0NvbmZsaWN0ID0gZnVuY3Rpb24oIGRlZXAgKSB7XG5cdGlmICggd2luZG93LiQgPT09IGpRdWVyeSApIHtcblx0XHR3aW5kb3cuJCA9IF8kO1xuXHR9XG5cblx0aWYgKCBkZWVwICYmIHdpbmRvdy5qUXVlcnkgPT09IGpRdWVyeSApIHtcblx0XHR3aW5kb3cualF1ZXJ5ID0gX2pRdWVyeTtcblx0fVxuXG5cdHJldHVybiBqUXVlcnk7XG59O1xuXG4vLyBFeHBvc2UgalF1ZXJ5IGFuZCAkIGlkZW50aWZpZXJzLCBldmVuIGluIEFNRFxuLy8gKCM3MTAyI2NvbW1lbnQ6MTAsIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvanF1ZXJ5L3B1bGwvNTU3KVxuLy8gYW5kIENvbW1vbkpTIGZvciBicm93c2VyIGVtdWxhdG9ycyAoIzEzNTY2KVxuaWYgKCB0eXBlb2Ygbm9HbG9iYWwgPT09IHN0cnVuZGVmaW5lZCApIHtcblx0d2luZG93LmpRdWVyeSA9IHdpbmRvdy4kID0galF1ZXJ5O1xufVxuXG5cblxuXG5yZXR1cm4galF1ZXJ5O1xuXG59KSk7XG4iLCIndXNlIHN0cmljdCc7XG5cblxudmFyIHlhbWwgPSByZXF1aXJlKCcuL2xpYi9qcy15YW1sLmpzJyk7XG5cblxubW9kdWxlLmV4cG9ydHMgPSB5YW1sO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5cbnZhciBsb2FkZXIgPSByZXF1aXJlKCcuL2pzLXlhbWwvbG9hZGVyJyk7XG52YXIgZHVtcGVyID0gcmVxdWlyZSgnLi9qcy15YW1sL2R1bXBlcicpO1xuXG5cbmZ1bmN0aW9uIGRlcHJlY2F0ZWQobmFtZSkge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRnVuY3Rpb24gJyArIG5hbWUgKyAnIGlzIGRlcHJlY2F0ZWQgYW5kIGNhbm5vdCBiZSB1c2VkLicpO1xuICB9O1xufVxuXG5cbm1vZHVsZS5leHBvcnRzLlR5cGUgICAgICAgICAgICAgICAgPSByZXF1aXJlKCcuL2pzLXlhbWwvdHlwZScpO1xubW9kdWxlLmV4cG9ydHMuU2NoZW1hICAgICAgICAgICAgICA9IHJlcXVpcmUoJy4vanMteWFtbC9zY2hlbWEnKTtcbm1vZHVsZS5leHBvcnRzLkZBSUxTQUZFX1NDSEVNQSAgICAgPSByZXF1aXJlKCcuL2pzLXlhbWwvc2NoZW1hL2ZhaWxzYWZlJyk7XG5tb2R1bGUuZXhwb3J0cy5KU09OX1NDSEVNQSAgICAgICAgID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYS9qc29uJyk7XG5tb2R1bGUuZXhwb3J0cy5DT1JFX1NDSEVNQSAgICAgICAgID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYS9jb3JlJyk7XG5tb2R1bGUuZXhwb3J0cy5ERUZBVUxUX1NBRkVfU0NIRU1BID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYS9kZWZhdWx0X3NhZmUnKTtcbm1vZHVsZS5leHBvcnRzLkRFRkFVTFRfRlVMTF9TQ0hFTUEgPSByZXF1aXJlKCcuL2pzLXlhbWwvc2NoZW1hL2RlZmF1bHRfZnVsbCcpO1xubW9kdWxlLmV4cG9ydHMubG9hZCAgICAgICAgICAgICAgICA9IGxvYWRlci5sb2FkO1xubW9kdWxlLmV4cG9ydHMubG9hZEFsbCAgICAgICAgICAgICA9IGxvYWRlci5sb2FkQWxsO1xubW9kdWxlLmV4cG9ydHMuc2FmZUxvYWQgICAgICAgICAgICA9IGxvYWRlci5zYWZlTG9hZDtcbm1vZHVsZS5leHBvcnRzLnNhZmVMb2FkQWxsICAgICAgICAgPSBsb2FkZXIuc2FmZUxvYWRBbGw7XG5tb2R1bGUuZXhwb3J0cy5kdW1wICAgICAgICAgICAgICAgID0gZHVtcGVyLmR1bXA7XG5tb2R1bGUuZXhwb3J0cy5zYWZlRHVtcCAgICAgICAgICAgID0gZHVtcGVyLnNhZmVEdW1wO1xubW9kdWxlLmV4cG9ydHMuWUFNTEV4Y2VwdGlvbiAgICAgICA9IHJlcXVpcmUoJy4vanMteWFtbC9leGNlcHRpb24nKTtcblxuLy8gRGVwcmVjYXJlZCBzY2hlbWEgbmFtZXMgZnJvbSBKUy1ZQU1MIDIuMC54XG5tb2R1bGUuZXhwb3J0cy5NSU5JTUFMX1NDSEVNQSA9IHJlcXVpcmUoJy4vanMteWFtbC9zY2hlbWEvZmFpbHNhZmUnKTtcbm1vZHVsZS5leHBvcnRzLlNBRkVfU0NIRU1BICAgID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYS9kZWZhdWx0X3NhZmUnKTtcbm1vZHVsZS5leHBvcnRzLkRFRkFVTFRfU0NIRU1BID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYS9kZWZhdWx0X2Z1bGwnKTtcblxuLy8gRGVwcmVjYXRlZCBmdW5jdGlvbnMgZnJvbSBKUy1ZQU1MIDEueC54XG5tb2R1bGUuZXhwb3J0cy5zY2FuICAgICAgICAgICA9IGRlcHJlY2F0ZWQoJ3NjYW4nKTtcbm1vZHVsZS5leHBvcnRzLnBhcnNlICAgICAgICAgID0gZGVwcmVjYXRlZCgncGFyc2UnKTtcbm1vZHVsZS5leHBvcnRzLmNvbXBvc2UgICAgICAgID0gZGVwcmVjYXRlZCgnY29tcG9zZScpO1xubW9kdWxlLmV4cG9ydHMuYWRkQ29uc3RydWN0b3IgPSBkZXByZWNhdGVkKCdhZGRDb25zdHJ1Y3RvcicpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5cbmZ1bmN0aW9uIGlzTm90aGluZyhzdWJqZWN0KSB7XG4gIHJldHVybiAodHlwZW9mIHN1YmplY3QgPT09ICd1bmRlZmluZWQnKSB8fCAobnVsbCA9PT0gc3ViamVjdCk7XG59XG5cblxuZnVuY3Rpb24gaXNPYmplY3Qoc3ViamVjdCkge1xuICByZXR1cm4gKHR5cGVvZiBzdWJqZWN0ID09PSAnb2JqZWN0JykgJiYgKG51bGwgIT09IHN1YmplY3QpO1xufVxuXG5cbmZ1bmN0aW9uIHRvQXJyYXkoc2VxdWVuY2UpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoc2VxdWVuY2UpKSB7XG4gICAgcmV0dXJuIHNlcXVlbmNlO1xuICB9IGVsc2UgaWYgKGlzTm90aGluZyhzZXF1ZW5jZSkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIFsgc2VxdWVuY2UgXTtcbn1cblxuXG5mdW5jdGlvbiBleHRlbmQodGFyZ2V0LCBzb3VyY2UpIHtcbiAgdmFyIGluZGV4LCBsZW5ndGgsIGtleSwgc291cmNlS2V5cztcblxuICBpZiAoc291cmNlKSB7XG4gICAgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG5cbiAgICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gc291cmNlS2V5cy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICBrZXkgPSBzb3VyY2VLZXlzW2luZGV4XTtcbiAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuXG5mdW5jdGlvbiByZXBlYXQoc3RyaW5nLCBjb3VudCkge1xuICB2YXIgcmVzdWx0ID0gJycsIGN5Y2xlO1xuXG4gIGZvciAoY3ljbGUgPSAwOyBjeWNsZSA8IGNvdW50OyBjeWNsZSArPSAxKSB7XG4gICAgcmVzdWx0ICs9IHN0cmluZztcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cblxuZnVuY3Rpb24gaXNOZWdhdGl2ZVplcm8obnVtYmVyKSB7XG4gIHJldHVybiAoMCA9PT0gbnVtYmVyKSAmJiAoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZID09PSAxIC8gbnVtYmVyKTtcbn1cblxuXG5tb2R1bGUuZXhwb3J0cy5pc05vdGhpbmcgICAgICA9IGlzTm90aGluZztcbm1vZHVsZS5leHBvcnRzLmlzT2JqZWN0ICAgICAgID0gaXNPYmplY3Q7XG5tb2R1bGUuZXhwb3J0cy50b0FycmF5ICAgICAgICA9IHRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0cy5yZXBlYXQgICAgICAgICA9IHJlcGVhdDtcbm1vZHVsZS5leHBvcnRzLmlzTmVnYXRpdmVaZXJvID0gaXNOZWdhdGl2ZVplcm87XG5tb2R1bGUuZXhwb3J0cy5leHRlbmQgICAgICAgICA9IGV4dGVuZDtcbiIsIid1c2Ugc3RyaWN0JztcblxuLyplc2xpbnQtZGlzYWJsZSBuby11c2UtYmVmb3JlLWRlZmluZSovXG5cbnZhciBjb21tb24gICAgICAgICAgICAgID0gcmVxdWlyZSgnLi9jb21tb24nKTtcbnZhciBZQU1MRXhjZXB0aW9uICAgICAgID0gcmVxdWlyZSgnLi9leGNlcHRpb24nKTtcbnZhciBERUZBVUxUX0ZVTExfU0NIRU1BID0gcmVxdWlyZSgnLi9zY2hlbWEvZGVmYXVsdF9mdWxsJyk7XG52YXIgREVGQVVMVF9TQUZFX1NDSEVNQSA9IHJlcXVpcmUoJy4vc2NoZW1hL2RlZmF1bHRfc2FmZScpO1xuXG52YXIgX3RvU3RyaW5nICAgICAgID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcbnZhciBfaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG52YXIgQ0hBUl9UQUIgICAgICAgICAgICAgICAgICA9IDB4MDk7IC8qIFRhYiAqL1xudmFyIENIQVJfTElORV9GRUVEICAgICAgICAgICAgPSAweDBBOyAvKiBMRiAqL1xudmFyIENIQVJfQ0FSUklBR0VfUkVUVVJOICAgICAgPSAweDBEOyAvKiBDUiAqL1xudmFyIENIQVJfU1BBQ0UgICAgICAgICAgICAgICAgPSAweDIwOyAvKiBTcGFjZSAqL1xudmFyIENIQVJfRVhDTEFNQVRJT04gICAgICAgICAgPSAweDIxOyAvKiAhICovXG52YXIgQ0hBUl9ET1VCTEVfUVVPVEUgICAgICAgICA9IDB4MjI7IC8qIFwiICovXG52YXIgQ0hBUl9TSEFSUCAgICAgICAgICAgICAgICA9IDB4MjM7IC8qICMgKi9cbnZhciBDSEFSX1BFUkNFTlQgICAgICAgICAgICAgID0gMHgyNTsgLyogJSAqL1xudmFyIENIQVJfQU1QRVJTQU5EICAgICAgICAgICAgPSAweDI2OyAvKiAmICovXG52YXIgQ0hBUl9TSU5HTEVfUVVPVEUgICAgICAgICA9IDB4Mjc7IC8qICcgKi9cbnZhciBDSEFSX0FTVEVSSVNLICAgICAgICAgICAgID0gMHgyQTsgLyogKiAqL1xudmFyIENIQVJfQ09NTUEgICAgICAgICAgICAgICAgPSAweDJDOyAvKiAsICovXG52YXIgQ0hBUl9NSU5VUyAgICAgICAgICAgICAgICA9IDB4MkQ7IC8qIC0gKi9cbnZhciBDSEFSX0NPTE9OICAgICAgICAgICAgICAgID0gMHgzQTsgLyogOiAqL1xudmFyIENIQVJfR1JFQVRFUl9USEFOICAgICAgICAgPSAweDNFOyAvKiA+ICovXG52YXIgQ0hBUl9RVUVTVElPTiAgICAgICAgICAgICA9IDB4M0Y7IC8qID8gKi9cbnZhciBDSEFSX0NPTU1FUkNJQUxfQVQgICAgICAgID0gMHg0MDsgLyogQCAqL1xudmFyIENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVCAgPSAweDVCOyAvKiBbICovXG52YXIgQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCA9IDB4NUQ7IC8qIF0gKi9cbnZhciBDSEFSX0dSQVZFX0FDQ0VOVCAgICAgICAgID0gMHg2MDsgLyogYCAqL1xudmFyIENIQVJfTEVGVF9DVVJMWV9CUkFDS0VUICAgPSAweDdCOyAvKiB7ICovXG52YXIgQ0hBUl9WRVJUSUNBTF9MSU5FICAgICAgICA9IDB4N0M7IC8qIHwgKi9cbnZhciBDSEFSX1JJR0hUX0NVUkxZX0JSQUNLRVQgID0gMHg3RDsgLyogfSAqL1xuXG52YXIgRVNDQVBFX1NFUVVFTkNFUyA9IHt9O1xuXG5FU0NBUEVfU0VRVUVOQ0VTWzB4MDBdICAgPSAnXFxcXDAnO1xuRVNDQVBFX1NFUVVFTkNFU1sweDA3XSAgID0gJ1xcXFxhJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgwOF0gICA9ICdcXFxcYic7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MDldICAgPSAnXFxcXHQnO1xuRVNDQVBFX1NFUVVFTkNFU1sweDBBXSAgID0gJ1xcXFxuJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgwQl0gICA9ICdcXFxcdic7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MENdICAgPSAnXFxcXGYnO1xuRVNDQVBFX1NFUVVFTkNFU1sweDBEXSAgID0gJ1xcXFxyJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgxQl0gICA9ICdcXFxcZSc7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MjJdICAgPSAnXFxcXFwiJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHg1Q10gICA9ICdcXFxcXFxcXCc7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4ODVdICAgPSAnXFxcXE4nO1xuRVNDQVBFX1NFUVVFTkNFU1sweEEwXSAgID0gJ1xcXFxfJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgyMDI4XSA9ICdcXFxcTCc7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MjAyOV0gPSAnXFxcXFAnO1xuXG52YXIgREVQUkVDQVRFRF9CT09MRUFOU19TWU5UQVggPSBbXG4gICd5JywgJ1knLCAneWVzJywgJ1llcycsICdZRVMnLCAnb24nLCAnT24nLCAnT04nLFxuICAnbicsICdOJywgJ25vJywgJ05vJywgJ05PJywgJ29mZicsICdPZmYnLCAnT0ZGJ1xuXTtcblxuZnVuY3Rpb24gY29tcGlsZVN0eWxlTWFwKHNjaGVtYSwgbWFwKSB7XG4gIHZhciByZXN1bHQsIGtleXMsIGluZGV4LCBsZW5ndGgsIHRhZywgc3R5bGUsIHR5cGU7XG5cbiAgaWYgKG51bGwgPT09IG1hcCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHJlc3VsdCA9IHt9O1xuICBrZXlzID0gT2JqZWN0LmtleXMobWFwKTtcblxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0ga2V5cy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgdGFnID0ga2V5c1tpbmRleF07XG4gICAgc3R5bGUgPSBTdHJpbmcobWFwW3RhZ10pO1xuXG4gICAgaWYgKCchIScgPT09IHRhZy5zbGljZSgwLCAyKSkge1xuICAgICAgdGFnID0gJ3RhZzp5YW1sLm9yZywyMDAyOicgKyB0YWcuc2xpY2UoMik7XG4gICAgfVxuXG4gICAgdHlwZSA9IHNjaGVtYS5jb21waWxlZFR5cGVNYXBbdGFnXTtcblxuICAgIGlmICh0eXBlICYmIF9oYXNPd25Qcm9wZXJ0eS5jYWxsKHR5cGUuc3R5bGVBbGlhc2VzLCBzdHlsZSkpIHtcbiAgICAgIHN0eWxlID0gdHlwZS5zdHlsZUFsaWFzZXNbc3R5bGVdO1xuICAgIH1cblxuICAgIHJlc3VsdFt0YWddID0gc3R5bGU7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBlbmNvZGVIZXgoY2hhcmFjdGVyKSB7XG4gIHZhciBzdHJpbmcsIGhhbmRsZSwgbGVuZ3RoO1xuXG4gIHN0cmluZyA9IGNoYXJhY3Rlci50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtcblxuICBpZiAoY2hhcmFjdGVyIDw9IDB4RkYpIHtcbiAgICBoYW5kbGUgPSAneCc7XG4gICAgbGVuZ3RoID0gMjtcbiAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPD0gMHhGRkZGKSB7XG4gICAgaGFuZGxlID0gJ3UnO1xuICAgIGxlbmd0aCA9IDQ7XG4gIH0gZWxzZSBpZiAoY2hhcmFjdGVyIDw9IDB4RkZGRkZGRkYpIHtcbiAgICBoYW5kbGUgPSAnVSc7XG4gICAgbGVuZ3RoID0gODtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignY29kZSBwb2ludCB3aXRoaW4gYSBzdHJpbmcgbWF5IG5vdCBiZSBncmVhdGVyIHRoYW4gMHhGRkZGRkZGRicpO1xuICB9XG5cbiAgcmV0dXJuICdcXFxcJyArIGhhbmRsZSArIGNvbW1vbi5yZXBlYXQoJzAnLCBsZW5ndGggLSBzdHJpbmcubGVuZ3RoKSArIHN0cmluZztcbn1cblxuZnVuY3Rpb24gU3RhdGUob3B0aW9ucykge1xuICB0aGlzLnNjaGVtYSAgICAgID0gb3B0aW9uc1snc2NoZW1hJ10gfHwgREVGQVVMVF9GVUxMX1NDSEVNQTtcbiAgdGhpcy5pbmRlbnQgICAgICA9IE1hdGgubWF4KDEsIChvcHRpb25zWydpbmRlbnQnXSB8fCAyKSk7XG4gIHRoaXMuc2tpcEludmFsaWQgPSBvcHRpb25zWydza2lwSW52YWxpZCddIHx8IGZhbHNlO1xuICB0aGlzLmZsb3dMZXZlbCAgID0gKGNvbW1vbi5pc05vdGhpbmcob3B0aW9uc1snZmxvd0xldmVsJ10pID8gLTEgOiBvcHRpb25zWydmbG93TGV2ZWwnXSk7XG4gIHRoaXMuc3R5bGVNYXAgICAgPSBjb21waWxlU3R5bGVNYXAodGhpcy5zY2hlbWEsIG9wdGlvbnNbJ3N0eWxlcyddIHx8IG51bGwpO1xuICB0aGlzLnNvcnRLZXlzICAgID0gb3B0aW9uc1snc29ydEtleXMnXSB8fCBmYWxzZTtcblxuICB0aGlzLmltcGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0O1xuICB0aGlzLmV4cGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEV4cGxpY2l0O1xuXG4gIHRoaXMudGFnID0gbnVsbDtcbiAgdGhpcy5yZXN1bHQgPSAnJztcblxuICB0aGlzLmR1cGxpY2F0ZXMgPSBbXTtcbiAgdGhpcy51c2VkRHVwbGljYXRlcyA9IG51bGw7XG59XG5cbmZ1bmN0aW9uIGluZGVudFN0cmluZyhzdHJpbmcsIHNwYWNlcykge1xuICB2YXIgaW5kID0gY29tbW9uLnJlcGVhdCgnICcsIHNwYWNlcyksXG4gICAgICBwb3NpdGlvbiA9IDAsXG4gICAgICBuZXh0ID0gLTEsXG4gICAgICByZXN1bHQgPSAnJyxcbiAgICAgIGxpbmUsXG4gICAgICBsZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuXG4gIHdoaWxlIChwb3NpdGlvbiA8IGxlbmd0aCkge1xuICAgIG5leHQgPSBzdHJpbmcuaW5kZXhPZignXFxuJywgcG9zaXRpb24pO1xuICAgIGlmIChuZXh0ID09PSAtMSkge1xuICAgICAgbGluZSA9IHN0cmluZy5zbGljZShwb3NpdGlvbik7XG4gICAgICBwb3NpdGlvbiA9IGxlbmd0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgbGluZSA9IHN0cmluZy5zbGljZShwb3NpdGlvbiwgbmV4dCArIDEpO1xuICAgICAgcG9zaXRpb24gPSBuZXh0ICsgMTtcbiAgICB9XG4gICAgaWYgKGxpbmUubGVuZ3RoICYmIGxpbmUgIT09ICdcXG4nKSB7XG4gICAgICByZXN1bHQgKz0gaW5kO1xuICAgIH1cbiAgICByZXN1bHQgKz0gbGluZTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlTmV4dExpbmUoc3RhdGUsIGxldmVsKSB7XG4gIHJldHVybiAnXFxuJyArIGNvbW1vbi5yZXBlYXQoJyAnLCBzdGF0ZS5pbmRlbnQgKiBsZXZlbCk7XG59XG5cbmZ1bmN0aW9uIHRlc3RJbXBsaWNpdFJlc29sdmluZyhzdGF0ZSwgc3RyKSB7XG4gIHZhciBpbmRleCwgbGVuZ3RoLCB0eXBlO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBzdGF0ZS5pbXBsaWNpdFR5cGVzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICB0eXBlID0gc3RhdGUuaW1wbGljaXRUeXBlc1tpbmRleF07XG5cbiAgICBpZiAodHlwZS5yZXNvbHZlKHN0cikpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gU3RyaW5nQnVpbGRlcihzb3VyY2UpIHtcbiAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XG4gIHRoaXMucmVzdWx0ID0gJyc7XG4gIHRoaXMuY2hlY2twb2ludCA9IDA7XG59XG5cblN0cmluZ0J1aWxkZXIucHJvdG90eXBlLnRha2VVcFRvID0gZnVuY3Rpb24gKHBvc2l0aW9uKSB7XG4gIHZhciBlcjtcblxuICBpZiAocG9zaXRpb24gPCB0aGlzLmNoZWNrcG9pbnQpIHtcbiAgICBlciA9IG5ldyBFcnJvcigncG9zaXRpb24gc2hvdWxkIGJlID4gY2hlY2twb2ludCcpO1xuICAgIGVyLnBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgZXIuY2hlY2twb2ludCA9IHRoaXMuY2hlY2twb2ludDtcbiAgICB0aHJvdyBlcjtcbiAgfVxuXG4gIHRoaXMucmVzdWx0ICs9IHRoaXMuc291cmNlLnNsaWNlKHRoaXMuY2hlY2twb2ludCwgcG9zaXRpb24pO1xuICB0aGlzLmNoZWNrcG9pbnQgPSBwb3NpdGlvbjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5TdHJpbmdCdWlsZGVyLnByb3RvdHlwZS5lc2NhcGVDaGFyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgY2hhcmFjdGVyLCBlc2M7XG5cbiAgY2hhcmFjdGVyID0gdGhpcy5zb3VyY2UuY2hhckNvZGVBdCh0aGlzLmNoZWNrcG9pbnQpO1xuICBlc2MgPSBFU0NBUEVfU0VRVUVOQ0VTW2NoYXJhY3Rlcl0gfHwgZW5jb2RlSGV4KGNoYXJhY3Rlcik7XG4gIHRoaXMucmVzdWx0ICs9IGVzYztcbiAgdGhpcy5jaGVja3BvaW50ICs9IDE7XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5TdHJpbmdCdWlsZGVyLnByb3RvdHlwZS5maW5pc2ggPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLnNvdXJjZS5sZW5ndGggPiB0aGlzLmNoZWNrcG9pbnQpIHtcbiAgICB0aGlzLnRha2VVcFRvKHRoaXMuc291cmNlLmxlbmd0aCk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHdyaXRlU2NhbGFyKHN0YXRlLCBvYmplY3QsIGxldmVsKSB7XG4gIHZhciBzaW1wbGUsIGZpcnN0LCBzcGFjZVdyYXAsIGZvbGRlZCwgbGl0ZXJhbCwgc2luZ2xlLCBkb3VibGUsXG4gICAgICBzYXdMaW5lRmVlZCwgbGluZVBvc2l0aW9uLCBsb25nZXN0TGluZSwgaW5kZW50LCBtYXgsIGNoYXJhY3RlcixcbiAgICAgIHBvc2l0aW9uLCBlc2NhcGVTZXEsIGhleEVzYywgcHJldmlvdXMsIGxpbmVMZW5ndGgsIG1vZGlmaWVyLFxuICAgICAgdHJhaWxpbmdMaW5lQnJlYWtzLCByZXN1bHQ7XG5cbiAgaWYgKDAgPT09IG9iamVjdC5sZW5ndGgpIHtcbiAgICBzdGF0ZS5kdW1wID0gXCInJ1wiO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICgtMSAhPT0gREVQUkVDQVRFRF9CT09MRUFOU19TWU5UQVguaW5kZXhPZihvYmplY3QpKSB7XG4gICAgc3RhdGUuZHVtcCA9IFwiJ1wiICsgb2JqZWN0ICsgXCInXCI7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc2ltcGxlID0gdHJ1ZTtcbiAgZmlyc3QgPSBvYmplY3QubGVuZ3RoID8gb2JqZWN0LmNoYXJDb2RlQXQoMCkgOiAwO1xuICBzcGFjZVdyYXAgPSAoQ0hBUl9TUEFDRSA9PT0gZmlyc3QgfHxcbiAgICAgICAgICAgICAgIENIQVJfU1BBQ0UgPT09IG9iamVjdC5jaGFyQ29kZUF0KG9iamVjdC5sZW5ndGggLSAxKSk7XG5cbiAgLy8gU2ltcGxpZmllZCBjaGVjayBmb3IgcmVzdHJpY3RlZCBmaXJzdCBjaGFyYWN0ZXJzXG4gIC8vIGh0dHA6Ly93d3cueWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI25zLXBsYWluLWZpcnN0JTI4YyUyOVxuICBpZiAoQ0hBUl9NSU5VUyAgICAgICAgID09PSBmaXJzdCB8fFxuICAgICAgQ0hBUl9RVUVTVElPTiAgICAgID09PSBmaXJzdCB8fFxuICAgICAgQ0hBUl9DT01NRVJDSUFMX0FUID09PSBmaXJzdCB8fFxuICAgICAgQ0hBUl9HUkFWRV9BQ0NFTlQgID09PSBmaXJzdCkge1xuICAgIHNpbXBsZSA9IGZhbHNlO1xuICB9XG5cbiAgLy8gY2FuIG9ubHkgdXNlID4gYW5kIHwgaWYgbm90IHdyYXBwZWQgaW4gc3BhY2VzLlxuICBpZiAoc3BhY2VXcmFwKSB7XG4gICAgc2ltcGxlID0gZmFsc2U7XG4gICAgZm9sZGVkID0gZmFsc2U7XG4gICAgbGl0ZXJhbCA9IGZhbHNlO1xuICB9IGVsc2Uge1xuICAgIGZvbGRlZCA9IHRydWU7XG4gICAgbGl0ZXJhbCA9IHRydWU7XG4gIH1cblxuICBzaW5nbGUgPSB0cnVlO1xuICBkb3VibGUgPSBuZXcgU3RyaW5nQnVpbGRlcihvYmplY3QpO1xuXG4gIHNhd0xpbmVGZWVkID0gZmFsc2U7XG4gIGxpbmVQb3NpdGlvbiA9IDA7XG4gIGxvbmdlc3RMaW5lID0gMDtcblxuICBpbmRlbnQgPSBzdGF0ZS5pbmRlbnQgKiBsZXZlbDtcbiAgbWF4ID0gODA7XG4gIGlmIChpbmRlbnQgPCA0MCkge1xuICAgIG1heCAtPSBpbmRlbnQ7XG4gIH0gZWxzZSB7XG4gICAgbWF4ID0gNDA7XG4gIH1cblxuICBmb3IgKHBvc2l0aW9uID0gMDsgcG9zaXRpb24gPCBvYmplY3QubGVuZ3RoOyBwb3NpdGlvbisrKSB7XG4gICAgY2hhcmFjdGVyID0gb2JqZWN0LmNoYXJDb2RlQXQocG9zaXRpb24pO1xuICAgIGlmIChzaW1wbGUpIHtcbiAgICAgIC8vIENoYXJhY3RlcnMgdGhhdCBjYW4gbmV2ZXIgYXBwZWFyIGluIHRoZSBzaW1wbGUgc2NhbGFyXG4gICAgICBpZiAoIXNpbXBsZUNoYXIoY2hhcmFjdGVyKSkge1xuICAgICAgICBzaW1wbGUgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFN0aWxsIHNpbXBsZS4gIElmIHdlIG1ha2UgaXQgYWxsIHRoZSB3YXkgdGhyb3VnaCBsaWtlXG4gICAgICAgIC8vIHRoaXMsIHRoZW4gd2UgY2FuIGp1c3QgZHVtcCB0aGUgc3RyaW5nIGFzLWlzLlxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc2luZ2xlICYmIGNoYXJhY3RlciA9PT0gQ0hBUl9TSU5HTEVfUVVPVEUpIHtcbiAgICAgIHNpbmdsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIGVzY2FwZVNlcSA9IEVTQ0FQRV9TRVFVRU5DRVNbY2hhcmFjdGVyXTtcbiAgICBoZXhFc2MgPSBuZWVkc0hleEVzY2FwZShjaGFyYWN0ZXIpO1xuXG4gICAgaWYgKCFlc2NhcGVTZXEgJiYgIWhleEVzYykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKGNoYXJhY3RlciAhPT0gQ0hBUl9MSU5FX0ZFRUQgJiZcbiAgICAgICAgY2hhcmFjdGVyICE9PSBDSEFSX0RPVUJMRV9RVU9URSAmJlxuICAgICAgICBjaGFyYWN0ZXIgIT09IENIQVJfU0lOR0xFX1FVT1RFKSB7XG4gICAgICBmb2xkZWQgPSBmYWxzZTtcbiAgICAgIGxpdGVyYWwgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PT0gQ0hBUl9MSU5FX0ZFRUQpIHtcbiAgICAgIHNhd0xpbmVGZWVkID0gdHJ1ZTtcbiAgICAgIHNpbmdsZSA9IGZhbHNlO1xuICAgICAgaWYgKHBvc2l0aW9uID4gMCkge1xuICAgICAgICBwcmV2aW91cyA9IG9iamVjdC5jaGFyQ29kZUF0KHBvc2l0aW9uIC0gMSk7XG4gICAgICAgIGlmIChwcmV2aW91cyA9PT0gQ0hBUl9TUEFDRSkge1xuICAgICAgICAgIGxpdGVyYWwgPSBmYWxzZTtcbiAgICAgICAgICBmb2xkZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGZvbGRlZCkge1xuICAgICAgICBsaW5lTGVuZ3RoID0gcG9zaXRpb24gLSBsaW5lUG9zaXRpb247XG4gICAgICAgIGxpbmVQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgICAgICBpZiAobGluZUxlbmd0aCA+IGxvbmdlc3RMaW5lKSB7XG4gICAgICAgICAgbG9uZ2VzdExpbmUgPSBsaW5lTGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYXJhY3RlciAhPT0gQ0hBUl9ET1VCTEVfUVVPVEUpIHtcbiAgICAgIHNpbmdsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIGRvdWJsZS50YWtlVXBUbyhwb3NpdGlvbik7XG4gICAgZG91YmxlLmVzY2FwZUNoYXIoKTtcbiAgfVxuXG4gIGlmIChzaW1wbGUgJiYgdGVzdEltcGxpY2l0UmVzb2x2aW5nKHN0YXRlLCBvYmplY3QpKSB7XG4gICAgc2ltcGxlID0gZmFsc2U7XG4gIH1cblxuICBtb2RpZmllciA9ICcnO1xuICBpZiAoZm9sZGVkIHx8IGxpdGVyYWwpIHtcbiAgICB0cmFpbGluZ0xpbmVCcmVha3MgPSAwO1xuICAgIGlmIChvYmplY3QuY2hhckNvZGVBdChvYmplY3QubGVuZ3RoIC0gMSkgPT09IENIQVJfTElORV9GRUVEKSB7XG4gICAgICB0cmFpbGluZ0xpbmVCcmVha3MgKz0gMTtcbiAgICAgIGlmIChvYmplY3QuY2hhckNvZGVBdChvYmplY3QubGVuZ3RoIC0gMikgPT09IENIQVJfTElORV9GRUVEKSB7XG4gICAgICAgIHRyYWlsaW5nTGluZUJyZWFrcyArPSAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0cmFpbGluZ0xpbmVCcmVha3MgPT09IDApIHtcbiAgICAgIG1vZGlmaWVyID0gJy0nO1xuICAgIH0gZWxzZSBpZiAodHJhaWxpbmdMaW5lQnJlYWtzID09PSAyKSB7XG4gICAgICBtb2RpZmllciA9ICcrJztcbiAgICB9XG4gIH1cblxuICBpZiAobGl0ZXJhbCAmJiBsb25nZXN0TGluZSA8IG1heCkge1xuICAgIGZvbGRlZCA9IGZhbHNlO1xuICB9XG5cbiAgLy8gSWYgaXQncyBsaXRlcmFsbHkgb25lIGxpbmUsIHRoZW4gZG9uJ3QgYm90aGVyIHdpdGggdGhlIGxpdGVyYWwuXG4gIC8vIFdlIG1heSBzdGlsbCB3YW50IHRvIGRvIGEgZm9sZCwgdGhvdWdoLCBpZiBpdCdzIGEgc3VwZXIgbG9uZyBsaW5lLlxuICBpZiAoIXNhd0xpbmVGZWVkKSB7XG4gICAgbGl0ZXJhbCA9IGZhbHNlO1xuICB9XG5cbiAgaWYgKHNpbXBsZSkge1xuICAgIHN0YXRlLmR1bXAgPSBvYmplY3Q7XG4gIH0gZWxzZSBpZiAoc2luZ2xlKSB7XG4gICAgc3RhdGUuZHVtcCA9ICdcXCcnICsgb2JqZWN0ICsgJ1xcJyc7XG4gIH0gZWxzZSBpZiAoZm9sZGVkKSB7XG4gICAgcmVzdWx0ID0gZm9sZChvYmplY3QsIG1heCk7XG4gICAgc3RhdGUuZHVtcCA9ICc+JyArIG1vZGlmaWVyICsgJ1xcbicgKyBpbmRlbnRTdHJpbmcocmVzdWx0LCBpbmRlbnQpO1xuICB9IGVsc2UgaWYgKGxpdGVyYWwpIHtcbiAgICBpZiAoIW1vZGlmaWVyKSB7XG4gICAgICBvYmplY3QgPSBvYmplY3QucmVwbGFjZSgvXFxuJC8sICcnKTtcbiAgICB9XG4gICAgc3RhdGUuZHVtcCA9ICd8JyArIG1vZGlmaWVyICsgJ1xcbicgKyBpbmRlbnRTdHJpbmcob2JqZWN0LCBpbmRlbnQpO1xuICB9IGVsc2UgaWYgKGRvdWJsZSkge1xuICAgIGRvdWJsZS5maW5pc2goKTtcbiAgICBzdGF0ZS5kdW1wID0gJ1wiJyArIGRvdWJsZS5yZXN1bHQgKyAnXCInO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGR1bXAgc2NhbGFyIHZhbHVlJyk7XG4gIH1cblxuICByZXR1cm47XG59XG5cbi8vIFRoZSBgdHJhaWxpbmdgIHZhciBpcyBhIHJlZ2V4cCBtYXRjaCBvZiBhbnkgdHJhaWxpbmcgYFxcbmAgY2hhcmFjdGVycy5cbi8vXG4vLyBUaGVyZSBhcmUgdGhyZWUgY2FzZXMgd2UgY2FyZSBhYm91dDpcbi8vXG4vLyAxLiBPbmUgdHJhaWxpbmcgYFxcbmAgb24gdGhlIHN0cmluZy4gIEp1c3QgdXNlIGB8YCBvciBgPmAuXG4vLyAgICBUaGlzIGlzIHRoZSBhc3N1bWVkIGRlZmF1bHQuICh0cmFpbGluZyA9IG51bGwpXG4vLyAyLiBObyB0cmFpbGluZyBgXFxuYCBvbiB0aGUgc3RyaW5nLiAgVXNlIGB8LWAgb3IgYD4tYCB0byBcImNob21wXCIgdGhlIGVuZC5cbi8vIDMuIE1vcmUgdGhhbiBvbmUgdHJhaWxpbmcgYFxcbmAgb24gdGhlIHN0cmluZy4gIFVzZSBgfCtgIG9yIGA+K2AuXG4vL1xuLy8gSW4gdGhlIGNhc2Ugb2YgYD4rYCwgdGhlc2UgbGluZSBicmVha3MgYXJlICpub3QqIGRvdWJsZWQgKGxpa2UgdGhlIGxpbmVcbi8vIGJyZWFrcyB3aXRoaW4gdGhlIHN0cmluZyksIHNvIGl0J3MgaW1wb3J0YW50IHRvIG9ubHkgZW5kIHdpdGggdGhlIGV4YWN0XG4vLyBzYW1lIG51bWJlciBhcyB3ZSBzdGFydGVkLlxuZnVuY3Rpb24gZm9sZChvYmplY3QsIG1heCkge1xuICB2YXIgcmVzdWx0ID0gJycsXG4gICAgICBwb3NpdGlvbiA9IDAsXG4gICAgICBsZW5ndGggPSBvYmplY3QubGVuZ3RoLFxuICAgICAgdHJhaWxpbmcgPSAvXFxuKyQvLmV4ZWMob2JqZWN0KSxcbiAgICAgIG5ld0xpbmU7XG5cbiAgaWYgKHRyYWlsaW5nKSB7XG4gICAgbGVuZ3RoID0gdHJhaWxpbmcuaW5kZXggKyAxO1xuICB9XG5cbiAgd2hpbGUgKHBvc2l0aW9uIDwgbGVuZ3RoKSB7XG4gICAgbmV3TGluZSA9IG9iamVjdC5pbmRleE9mKCdcXG4nLCBwb3NpdGlvbik7XG4gICAgaWYgKG5ld0xpbmUgPiBsZW5ndGggfHwgbmV3TGluZSA9PT0gLTEpIHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcmVzdWx0ICs9ICdcXG5cXG4nO1xuICAgICAgfVxuICAgICAgcmVzdWx0ICs9IGZvbGRMaW5lKG9iamVjdC5zbGljZShwb3NpdGlvbiwgbGVuZ3RoKSwgbWF4KTtcbiAgICAgIHBvc2l0aW9uID0gbGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHJlc3VsdCArPSAnXFxuXFxuJztcbiAgICAgIH1cbiAgICAgIHJlc3VsdCArPSBmb2xkTGluZShvYmplY3Quc2xpY2UocG9zaXRpb24sIG5ld0xpbmUpLCBtYXgpO1xuICAgICAgcG9zaXRpb24gPSBuZXdMaW5lICsgMTtcbiAgICB9XG4gIH1cbiAgaWYgKHRyYWlsaW5nICYmIHRyYWlsaW5nWzBdICE9PSAnXFxuJykge1xuICAgIHJlc3VsdCArPSB0cmFpbGluZ1swXTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGZvbGRMaW5lKGxpbmUsIG1heCkge1xuICBpZiAobGluZSA9PT0gJycpIHtcbiAgICByZXR1cm4gbGluZTtcbiAgfVxuXG4gIHZhciBmb2xkUmUgPSAvW15cXHNdIFteXFxzXS9nLFxuICAgICAgcmVzdWx0ID0gJycsXG4gICAgICBwcmV2TWF0Y2ggPSAwLFxuICAgICAgZm9sZFN0YXJ0ID0gMCxcbiAgICAgIG1hdGNoID0gZm9sZFJlLmV4ZWMobGluZSksXG4gICAgICBpbmRleCxcbiAgICAgIGZvbGRFbmQsXG4gICAgICBmb2xkZWQ7XG5cbiAgd2hpbGUgKG1hdGNoKSB7XG4gICAgaW5kZXggPSBtYXRjaC5pbmRleDtcblxuICAgIC8vIHdoZW4gd2UgY3Jvc3MgdGhlIG1heCBsZW4sIGlmIHRoZSBwcmV2aW91cyBtYXRjaCB3b3VsZCd2ZVxuICAgIC8vIGJlZW4gb2ssIHVzZSB0aGF0IG9uZSwgYW5kIGNhcnJ5IG9uLiAgSWYgdGhlcmUgd2FzIG5vIHByZXZpb3VzXG4gICAgLy8gbWF0Y2ggb24gdGhpcyBmb2xkIHNlY3Rpb24sIHRoZW4ganVzdCBoYXZlIGEgbG9uZyBsaW5lLlxuICAgIGlmIChpbmRleCAtIGZvbGRTdGFydCA+IG1heCkge1xuICAgICAgaWYgKHByZXZNYXRjaCAhPT0gZm9sZFN0YXJ0KSB7XG4gICAgICAgIGZvbGRFbmQgPSBwcmV2TWF0Y2g7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb2xkRW5kID0gaW5kZXg7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcmVzdWx0ICs9ICdcXG4nO1xuICAgICAgfVxuICAgICAgZm9sZGVkID0gbGluZS5zbGljZShmb2xkU3RhcnQsIGZvbGRFbmQpO1xuICAgICAgcmVzdWx0ICs9IGZvbGRlZDtcbiAgICAgIGZvbGRTdGFydCA9IGZvbGRFbmQgKyAxO1xuICAgIH1cbiAgICBwcmV2TWF0Y2ggPSBpbmRleCArIDE7XG4gICAgbWF0Y2ggPSBmb2xkUmUuZXhlYyhsaW5lKTtcbiAgfVxuXG4gIGlmIChyZXN1bHQpIHtcbiAgICByZXN1bHQgKz0gJ1xcbic7XG4gIH1cblxuICAvLyBpZiB3ZSBlbmQgdXAgd2l0aCBvbmUgbGFzdCB3b3JkIGF0IHRoZSBlbmQsIHRoZW4gdGhlIGxhc3QgYml0IG1pZ2h0XG4gIC8vIGJlIHNsaWdodGx5IGJpZ2dlciB0aGFuIHdlIHdhbnRlZCwgYmVjYXVzZSB3ZSBleGl0ZWQgb3V0IG9mIHRoZSBsb29wLlxuICBpZiAoZm9sZFN0YXJ0ICE9PSBwcmV2TWF0Y2ggJiYgbGluZS5sZW5ndGggLSBmb2xkU3RhcnQgPiBtYXgpIHtcbiAgICByZXN1bHQgKz0gbGluZS5zbGljZShmb2xkU3RhcnQsIHByZXZNYXRjaCkgKyAnXFxuJyArXG4gICAgICAgICAgICAgIGxpbmUuc2xpY2UocHJldk1hdGNoICsgMSk7XG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0ICs9IGxpbmUuc2xpY2UoZm9sZFN0YXJ0KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIFJldHVybnMgdHJ1ZSBpZiBjaGFyYWN0ZXIgY2FuIGJlIGZvdW5kIGluIGEgc2ltcGxlIHNjYWxhclxuZnVuY3Rpb24gc2ltcGxlQ2hhcihjaGFyYWN0ZXIpIHtcbiAgcmV0dXJuIENIQVJfVEFCICAgICAgICAgICAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9MSU5FX0ZFRUQgICAgICAgICAgICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX0NBUlJJQUdFX1JFVFVSTiAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfQ09NTUEgICAgICAgICAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9MRUZUX1NRVUFSRV9CUkFDS0VUICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfTEVGVF9DVVJMWV9CUkFDS0VUICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9SSUdIVF9DVVJMWV9CUkFDS0VUICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX1NIQVJQICAgICAgICAgICAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfQU1QRVJTQU5EICAgICAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9BU1RFUklTSyAgICAgICAgICAgICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX0VYQ0xBTUFUSU9OICAgICAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfVkVSVElDQUxfTElORSAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9HUkVBVEVSX1RIQU4gICAgICAgICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX1NJTkdMRV9RVU9URSAgICAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfRE9VQkxFX1FVT1RFICAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9QRVJDRU5UICAgICAgICAgICAgICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX0NPTE9OICAgICAgICAgICAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgICFFU0NBUEVfU0VRVUVOQ0VTW2NoYXJhY3Rlcl0gICAgICAgICAgICAmJlxuICAgICAgICAgIW5lZWRzSGV4RXNjYXBlKGNoYXJhY3Rlcik7XG59XG5cbi8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGNvZGUgbmVlZHMgdG8gYmUgZXNjYXBlZC5cbmZ1bmN0aW9uIG5lZWRzSGV4RXNjYXBlKGNoYXJhY3Rlcikge1xuICByZXR1cm4gISgoMHgwMDAyMCA8PSBjaGFyYWN0ZXIgJiYgY2hhcmFjdGVyIDw9IDB4MDAwMDdFKSB8fFxuICAgICAgICAgICAoMHgwMDA4NSA9PT0gY2hhcmFjdGVyKSAgICAgICAgICAgICAgICAgICAgICAgICB8fFxuICAgICAgICAgICAoMHgwMDBBMCA8PSBjaGFyYWN0ZXIgJiYgY2hhcmFjdGVyIDw9IDB4MDBEN0ZGKSB8fFxuICAgICAgICAgICAoMHgwRTAwMCA8PSBjaGFyYWN0ZXIgJiYgY2hhcmFjdGVyIDw9IDB4MDBGRkZEKSB8fFxuICAgICAgICAgICAoMHgxMDAwMCA8PSBjaGFyYWN0ZXIgJiYgY2hhcmFjdGVyIDw9IDB4MTBGRkZGKSk7XG59XG5cbmZ1bmN0aW9uIHdyaXRlRmxvd1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgb2JqZWN0KSB7XG4gIHZhciBfcmVzdWx0ID0gJycsXG4gICAgICBfdGFnICAgID0gc3RhdGUudGFnLFxuICAgICAgaW5kZXgsXG4gICAgICBsZW5ndGg7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgLy8gV3JpdGUgb25seSB2YWxpZCBlbGVtZW50cy5cbiAgICBpZiAod3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgb2JqZWN0W2luZGV4XSwgZmFsc2UsIGZhbHNlKSkge1xuICAgICAgaWYgKDAgIT09IGluZGV4KSB7XG4gICAgICAgIF9yZXN1bHQgKz0gJywgJztcbiAgICAgIH1cbiAgICAgIF9yZXN1bHQgKz0gc3RhdGUuZHVtcDtcbiAgICB9XG4gIH1cblxuICBzdGF0ZS50YWcgPSBfdGFnO1xuICBzdGF0ZS5kdW1wID0gJ1snICsgX3Jlc3VsdCArICddJztcbn1cblxuZnVuY3Rpb24gd3JpdGVCbG9ja1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBjb21wYWN0KSB7XG4gIHZhciBfcmVzdWx0ID0gJycsXG4gICAgICBfdGFnICAgID0gc3RhdGUudGFnLFxuICAgICAgaW5kZXgsXG4gICAgICBsZW5ndGg7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgLy8gV3JpdGUgb25seSB2YWxpZCBlbGVtZW50cy5cbiAgICBpZiAod3JpdGVOb2RlKHN0YXRlLCBsZXZlbCArIDEsIG9iamVjdFtpbmRleF0sIHRydWUsIHRydWUpKSB7XG4gICAgICBpZiAoIWNvbXBhY3QgfHwgMCAhPT0gaW5kZXgpIHtcbiAgICAgICAgX3Jlc3VsdCArPSBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCk7XG4gICAgICB9XG4gICAgICBfcmVzdWx0ICs9ICctICcgKyBzdGF0ZS5kdW1wO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRlLnRhZyA9IF90YWc7XG4gIHN0YXRlLmR1bXAgPSBfcmVzdWx0IHx8ICdbXSc7IC8vIEVtcHR5IHNlcXVlbmNlIGlmIG5vIHZhbGlkIHZhbHVlcy5cbn1cblxuZnVuY3Rpb24gd3JpdGVGbG93TWFwcGluZyhzdGF0ZSwgbGV2ZWwsIG9iamVjdCkge1xuICB2YXIgX3Jlc3VsdCAgICAgICA9ICcnLFxuICAgICAgX3RhZyAgICAgICAgICA9IHN0YXRlLnRhZyxcbiAgICAgIG9iamVjdEtleUxpc3QgPSBPYmplY3Qua2V5cyhvYmplY3QpLFxuICAgICAgaW5kZXgsXG4gICAgICBsZW5ndGgsXG4gICAgICBvYmplY3RLZXksXG4gICAgICBvYmplY3RWYWx1ZSxcbiAgICAgIHBhaXJCdWZmZXI7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdEtleUxpc3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHBhaXJCdWZmZXIgPSAnJztcblxuICAgIGlmICgwICE9PSBpbmRleCkge1xuICAgICAgcGFpckJ1ZmZlciArPSAnLCAnO1xuICAgIH1cblxuICAgIG9iamVjdEtleSA9IG9iamVjdEtleUxpc3RbaW5kZXhdO1xuICAgIG9iamVjdFZhbHVlID0gb2JqZWN0W29iamVjdEtleV07XG5cbiAgICBpZiAoIXdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwsIG9iamVjdEtleSwgZmFsc2UsIGZhbHNlKSkge1xuICAgICAgY29udGludWU7IC8vIFNraXAgdGhpcyBwYWlyIGJlY2F1c2Ugb2YgaW52YWxpZCBrZXk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLmR1bXAubGVuZ3RoID4gMTAyNCkge1xuICAgICAgcGFpckJ1ZmZlciArPSAnPyAnO1xuICAgIH1cblxuICAgIHBhaXJCdWZmZXIgKz0gc3RhdGUuZHVtcCArICc6ICc7XG5cbiAgICBpZiAoIXdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwsIG9iamVjdFZhbHVlLCBmYWxzZSwgZmFsc2UpKSB7XG4gICAgICBjb250aW51ZTsgLy8gU2tpcCB0aGlzIHBhaXIgYmVjYXVzZSBvZiBpbnZhbGlkIHZhbHVlLlxuICAgIH1cblxuICAgIHBhaXJCdWZmZXIgKz0gc3RhdGUuZHVtcDtcblxuICAgIC8vIEJvdGgga2V5IGFuZCB2YWx1ZSBhcmUgdmFsaWQuXG4gICAgX3Jlc3VsdCArPSBwYWlyQnVmZmVyO1xuICB9XG5cbiAgc3RhdGUudGFnID0gX3RhZztcbiAgc3RhdGUuZHVtcCA9ICd7JyArIF9yZXN1bHQgKyAnfSc7XG59XG5cbmZ1bmN0aW9uIHdyaXRlQmxvY2tNYXBwaW5nKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBjb21wYWN0KSB7XG4gIHZhciBfcmVzdWx0ICAgICAgID0gJycsXG4gICAgICBfdGFnICAgICAgICAgID0gc3RhdGUudGFnLFxuICAgICAgb2JqZWN0S2V5TGlzdCA9IE9iamVjdC5rZXlzKG9iamVjdCksXG4gICAgICBpbmRleCxcbiAgICAgIGxlbmd0aCxcbiAgICAgIG9iamVjdEtleSxcbiAgICAgIG9iamVjdFZhbHVlLFxuICAgICAgZXhwbGljaXRQYWlyLFxuICAgICAgcGFpckJ1ZmZlcjtcblxuICAvLyBBbGxvdyBzb3J0aW5nIGtleXMgc28gdGhhdCB0aGUgb3V0cHV0IGZpbGUgaXMgZGV0ZXJtaW5pc3RpY1xuICBpZiAoc3RhdGUuc29ydEtleXMgPT09IHRydWUpIHtcbiAgICAvLyBEZWZhdWx0IHNvcnRpbmdcbiAgICBvYmplY3RLZXlMaXN0LnNvcnQoKTtcbiAgfSBlbHNlIGlmICh0eXBlb2Ygc3RhdGUuc29ydEtleXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBDdXN0b20gc29ydCBmdW5jdGlvblxuICAgIG9iamVjdEtleUxpc3Quc29ydChzdGF0ZS5zb3J0S2V5cyk7XG4gIH0gZWxzZSBpZiAoc3RhdGUuc29ydEtleXMpIHtcbiAgICAvLyBTb21ldGhpbmcgaXMgd3JvbmdcbiAgICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignc29ydEtleXMgbXVzdCBiZSBhIGJvb2xlYW4gb3IgYSBmdW5jdGlvbicpO1xuICB9XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdEtleUxpc3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHBhaXJCdWZmZXIgPSAnJztcblxuICAgIGlmICghY29tcGFjdCB8fCAwICE9PSBpbmRleCkge1xuICAgICAgcGFpckJ1ZmZlciArPSBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCk7XG4gICAgfVxuXG4gICAgb2JqZWN0S2V5ID0gb2JqZWN0S2V5TGlzdFtpbmRleF07XG4gICAgb2JqZWN0VmFsdWUgPSBvYmplY3Rbb2JqZWN0S2V5XTtcblxuICAgIGlmICghd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCArIDEsIG9iamVjdEtleSwgdHJ1ZSwgdHJ1ZSkpIHtcbiAgICAgIGNvbnRpbnVlOyAvLyBTa2lwIHRoaXMgcGFpciBiZWNhdXNlIG9mIGludmFsaWQga2V5LlxuICAgIH1cblxuICAgIGV4cGxpY2l0UGFpciA9IChudWxsICE9PSBzdGF0ZS50YWcgJiYgJz8nICE9PSBzdGF0ZS50YWcpIHx8XG4gICAgICAgICAgICAgICAgICAgKHN0YXRlLmR1bXAgJiYgc3RhdGUuZHVtcC5sZW5ndGggPiAxMDI0KTtcblxuICAgIGlmIChleHBsaWNpdFBhaXIpIHtcbiAgICAgIGlmIChzdGF0ZS5kdW1wICYmIENIQVJfTElORV9GRUVEID09PSBzdGF0ZS5kdW1wLmNoYXJDb2RlQXQoMCkpIHtcbiAgICAgICAgcGFpckJ1ZmZlciArPSAnPyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYWlyQnVmZmVyICs9ICc/ICc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcGFpckJ1ZmZlciArPSBzdGF0ZS5kdW1wO1xuXG4gICAgaWYgKGV4cGxpY2l0UGFpcikge1xuICAgICAgcGFpckJ1ZmZlciArPSBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCk7XG4gICAgfVxuXG4gICAgaWYgKCF3cml0ZU5vZGUoc3RhdGUsIGxldmVsICsgMSwgb2JqZWN0VmFsdWUsIHRydWUsIGV4cGxpY2l0UGFpcikpIHtcbiAgICAgIGNvbnRpbnVlOyAvLyBTa2lwIHRoaXMgcGFpciBiZWNhdXNlIG9mIGludmFsaWQgdmFsdWUuXG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLmR1bXAgJiYgQ0hBUl9MSU5FX0ZFRUQgPT09IHN0YXRlLmR1bXAuY2hhckNvZGVBdCgwKSkge1xuICAgICAgcGFpckJ1ZmZlciArPSAnOic7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhaXJCdWZmZXIgKz0gJzogJztcbiAgICB9XG5cbiAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXA7XG5cbiAgICAvLyBCb3RoIGtleSBhbmQgdmFsdWUgYXJlIHZhbGlkLlxuICAgIF9yZXN1bHQgKz0gcGFpckJ1ZmZlcjtcbiAgfVxuXG4gIHN0YXRlLnRhZyA9IF90YWc7XG4gIHN0YXRlLmR1bXAgPSBfcmVzdWx0IHx8ICd7fSc7IC8vIEVtcHR5IG1hcHBpbmcgaWYgbm8gdmFsaWQgcGFpcnMuXG59XG5cbmZ1bmN0aW9uIGRldGVjdFR5cGUoc3RhdGUsIG9iamVjdCwgZXhwbGljaXQpIHtcbiAgdmFyIF9yZXN1bHQsIHR5cGVMaXN0LCBpbmRleCwgbGVuZ3RoLCB0eXBlLCBzdHlsZTtcblxuICB0eXBlTGlzdCA9IGV4cGxpY2l0ID8gc3RhdGUuZXhwbGljaXRUeXBlcyA6IHN0YXRlLmltcGxpY2l0VHlwZXM7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IHR5cGVMaXN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICB0eXBlID0gdHlwZUxpc3RbaW5kZXhdO1xuXG4gICAgaWYgKCh0eXBlLmluc3RhbmNlT2YgIHx8IHR5cGUucHJlZGljYXRlKSAmJlxuICAgICAgICAoIXR5cGUuaW5zdGFuY2VPZiB8fCAoKCdvYmplY3QnID09PSB0eXBlb2Ygb2JqZWN0KSAmJiAob2JqZWN0IGluc3RhbmNlb2YgdHlwZS5pbnN0YW5jZU9mKSkpICYmXG4gICAgICAgICghdHlwZS5wcmVkaWNhdGUgIHx8IHR5cGUucHJlZGljYXRlKG9iamVjdCkpKSB7XG5cbiAgICAgIHN0YXRlLnRhZyA9IGV4cGxpY2l0ID8gdHlwZS50YWcgOiAnPyc7XG5cbiAgICAgIGlmICh0eXBlLnJlcHJlc2VudCkge1xuICAgICAgICBzdHlsZSA9IHN0YXRlLnN0eWxlTWFwW3R5cGUudGFnXSB8fCB0eXBlLmRlZmF1bHRTdHlsZTtcblxuICAgICAgICBpZiAoJ1tvYmplY3QgRnVuY3Rpb25dJyA9PT0gX3RvU3RyaW5nLmNhbGwodHlwZS5yZXByZXNlbnQpKSB7XG4gICAgICAgICAgX3Jlc3VsdCA9IHR5cGUucmVwcmVzZW50KG9iamVjdCwgc3R5bGUpO1xuICAgICAgICB9IGVsc2UgaWYgKF9oYXNPd25Qcm9wZXJ0eS5jYWxsKHR5cGUucmVwcmVzZW50LCBzdHlsZSkpIHtcbiAgICAgICAgICBfcmVzdWx0ID0gdHlwZS5yZXByZXNlbnRbc3R5bGVdKG9iamVjdCwgc3R5bGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCchPCcgKyB0eXBlLnRhZyArICc+IHRhZyByZXNvbHZlciBhY2NlcHRzIG5vdCBcIicgKyBzdHlsZSArICdcIiBzdHlsZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhdGUuZHVtcCA9IF9yZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLy8gU2VyaWFsaXplcyBgb2JqZWN0YCBhbmQgd3JpdGVzIGl0IHRvIGdsb2JhbCBgcmVzdWx0YC5cbi8vIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLCBvciBmYWxzZSBvbiBpbnZhbGlkIG9iamVjdC5cbi8vXG5mdW5jdGlvbiB3cml0ZU5vZGUoc3RhdGUsIGxldmVsLCBvYmplY3QsIGJsb2NrLCBjb21wYWN0KSB7XG4gIHN0YXRlLnRhZyA9IG51bGw7XG4gIHN0YXRlLmR1bXAgPSBvYmplY3Q7XG5cbiAgaWYgKCFkZXRlY3RUeXBlKHN0YXRlLCBvYmplY3QsIGZhbHNlKSkge1xuICAgIGRldGVjdFR5cGUoc3RhdGUsIG9iamVjdCwgdHJ1ZSk7XG4gIH1cblxuICB2YXIgdHlwZSA9IF90b1N0cmluZy5jYWxsKHN0YXRlLmR1bXApO1xuXG4gIGlmIChibG9jaykge1xuICAgIGJsb2NrID0gKDAgPiBzdGF0ZS5mbG93TGV2ZWwgfHwgc3RhdGUuZmxvd0xldmVsID4gbGV2ZWwpO1xuICB9XG5cbiAgaWYgKChudWxsICE9PSBzdGF0ZS50YWcgJiYgJz8nICE9PSBzdGF0ZS50YWcpIHx8ICgyICE9PSBzdGF0ZS5pbmRlbnQgJiYgbGV2ZWwgPiAwKSkge1xuICAgIGNvbXBhY3QgPSBmYWxzZTtcbiAgfVxuXG4gIHZhciBvYmplY3RPckFycmF5ID0gJ1tvYmplY3QgT2JqZWN0XScgPT09IHR5cGUgfHwgJ1tvYmplY3QgQXJyYXldJyA9PT0gdHlwZSxcbiAgICAgIGR1cGxpY2F0ZUluZGV4LFxuICAgICAgZHVwbGljYXRlO1xuXG4gIGlmIChvYmplY3RPckFycmF5KSB7XG4gICAgZHVwbGljYXRlSW5kZXggPSBzdGF0ZS5kdXBsaWNhdGVzLmluZGV4T2Yob2JqZWN0KTtcbiAgICBkdXBsaWNhdGUgPSBkdXBsaWNhdGVJbmRleCAhPT0gLTE7XG4gIH1cblxuICBpZiAoZHVwbGljYXRlICYmIHN0YXRlLnVzZWREdXBsaWNhdGVzW2R1cGxpY2F0ZUluZGV4XSkge1xuICAgIHN0YXRlLmR1bXAgPSAnKnJlZl8nICsgZHVwbGljYXRlSW5kZXg7XG4gIH0gZWxzZSB7XG4gICAgaWYgKG9iamVjdE9yQXJyYXkgJiYgZHVwbGljYXRlICYmICFzdGF0ZS51c2VkRHVwbGljYXRlc1tkdXBsaWNhdGVJbmRleF0pIHtcbiAgICAgIHN0YXRlLnVzZWREdXBsaWNhdGVzW2R1cGxpY2F0ZUluZGV4XSA9IHRydWU7XG4gICAgfVxuICAgIGlmICgnW29iamVjdCBPYmplY3RdJyA9PT0gdHlwZSkge1xuICAgICAgaWYgKGJsb2NrICYmICgwICE9PSBPYmplY3Qua2V5cyhzdGF0ZS5kdW1wKS5sZW5ndGgpKSB7XG4gICAgICAgIHdyaXRlQmxvY2tNYXBwaW5nKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCwgY29tcGFjdCk7XG4gICAgICAgIGlmIChkdXBsaWNhdGUpIHtcbiAgICAgICAgICBzdGF0ZS5kdW1wID0gJyZyZWZfJyArIGR1cGxpY2F0ZUluZGV4ICsgKDAgPT09IGxldmVsID8gJ1xcbicgOiAnJykgKyBzdGF0ZS5kdW1wO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3cml0ZUZsb3dNYXBwaW5nKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCk7XG4gICAgICAgIGlmIChkdXBsaWNhdGUpIHtcbiAgICAgICAgICBzdGF0ZS5kdW1wID0gJyZyZWZfJyArIGR1cGxpY2F0ZUluZGV4ICsgJyAnICsgc3RhdGUuZHVtcDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoJ1tvYmplY3QgQXJyYXldJyA9PT0gdHlwZSkge1xuICAgICAgaWYgKGJsb2NrICYmICgwICE9PSBzdGF0ZS5kdW1wLmxlbmd0aCkpIHtcbiAgICAgICAgd3JpdGVCbG9ja1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCwgY29tcGFjdCk7XG4gICAgICAgIGlmIChkdXBsaWNhdGUpIHtcbiAgICAgICAgICBzdGF0ZS5kdW1wID0gJyZyZWZfJyArIGR1cGxpY2F0ZUluZGV4ICsgKDAgPT09IGxldmVsID8gJ1xcbicgOiAnJykgKyBzdGF0ZS5kdW1wO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3cml0ZUZsb3dTZXF1ZW5jZShzdGF0ZSwgbGV2ZWwsIHN0YXRlLmR1bXApO1xuICAgICAgICBpZiAoZHVwbGljYXRlKSB7XG4gICAgICAgICAgc3RhdGUuZHVtcCA9ICcmcmVmXycgKyBkdXBsaWNhdGVJbmRleCArICcgJyArIHN0YXRlLmR1bXA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCdbb2JqZWN0IFN0cmluZ10nID09PSB0eXBlKSB7XG4gICAgICBpZiAoJz8nICE9PSBzdGF0ZS50YWcpIHtcbiAgICAgICAgd3JpdGVTY2FsYXIoc3RhdGUsIHN0YXRlLmR1bXAsIGxldmVsKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHN0YXRlLnNraXBJbnZhbGlkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCd1bmFjY2VwdGFibGUga2luZCBvZiBhbiBvYmplY3QgdG8gZHVtcCAnICsgdHlwZSk7XG4gICAgfVxuXG4gICAgaWYgKG51bGwgIT09IHN0YXRlLnRhZyAmJiAnPycgIT09IHN0YXRlLnRhZykge1xuICAgICAgc3RhdGUuZHVtcCA9ICchPCcgKyBzdGF0ZS50YWcgKyAnPiAnICsgc3RhdGUuZHVtcDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gZ2V0RHVwbGljYXRlUmVmZXJlbmNlcyhvYmplY3QsIHN0YXRlKSB7XG4gIHZhciBvYmplY3RzID0gW10sXG4gICAgICBkdXBsaWNhdGVzSW5kZXhlcyA9IFtdLFxuICAgICAgaW5kZXgsXG4gICAgICBsZW5ndGg7XG5cbiAgaW5zcGVjdE5vZGUob2JqZWN0LCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IGR1cGxpY2F0ZXNJbmRleGVzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBzdGF0ZS5kdXBsaWNhdGVzLnB1c2gob2JqZWN0c1tkdXBsaWNhdGVzSW5kZXhlc1tpbmRleF1dKTtcbiAgfVxuICBzdGF0ZS51c2VkRHVwbGljYXRlcyA9IG5ldyBBcnJheShsZW5ndGgpO1xufVxuXG5mdW5jdGlvbiBpbnNwZWN0Tm9kZShvYmplY3QsIG9iamVjdHMsIGR1cGxpY2F0ZXNJbmRleGVzKSB7XG4gIHZhciB0eXBlID0gX3RvU3RyaW5nLmNhbGwob2JqZWN0KSxcbiAgICAgIG9iamVjdEtleUxpc3QsXG4gICAgICBpbmRleCxcbiAgICAgIGxlbmd0aDtcblxuICBpZiAobnVsbCAhPT0gb2JqZWN0ICYmICdvYmplY3QnID09PSB0eXBlb2Ygb2JqZWN0KSB7XG4gICAgaW5kZXggPSBvYmplY3RzLmluZGV4T2Yob2JqZWN0KTtcbiAgICBpZiAoLTEgIT09IGluZGV4KSB7XG4gICAgICBpZiAoLTEgPT09IGR1cGxpY2F0ZXNJbmRleGVzLmluZGV4T2YoaW5kZXgpKSB7XG4gICAgICAgIGR1cGxpY2F0ZXNJbmRleGVzLnB1c2goaW5kZXgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvYmplY3RzLnB1c2gob2JqZWN0KTtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqZWN0KSkge1xuICAgICAgICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgICBpbnNwZWN0Tm9kZShvYmplY3RbaW5kZXhdLCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9iamVjdEtleUxpc3QgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuXG4gICAgICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3RLZXlMaXN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgICBpbnNwZWN0Tm9kZShvYmplY3Rbb2JqZWN0S2V5TGlzdFtpbmRleF1dLCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZHVtcChpbnB1dCwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICB2YXIgc3RhdGUgPSBuZXcgU3RhdGUob3B0aW9ucyk7XG5cbiAgZ2V0RHVwbGljYXRlUmVmZXJlbmNlcyhpbnB1dCwgc3RhdGUpO1xuXG4gIGlmICh3cml0ZU5vZGUoc3RhdGUsIDAsIGlucHV0LCB0cnVlLCB0cnVlKSkge1xuICAgIHJldHVybiBzdGF0ZS5kdW1wICsgJ1xcbic7XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBzYWZlRHVtcChpbnB1dCwgb3B0aW9ucykge1xuICByZXR1cm4gZHVtcChpbnB1dCwgY29tbW9uLmV4dGVuZCh7IHNjaGVtYTogREVGQVVMVF9TQUZFX1NDSEVNQSB9LCBvcHRpb25zKSk7XG59XG5cbm1vZHVsZS5leHBvcnRzLmR1bXAgICAgID0gZHVtcDtcbm1vZHVsZS5leHBvcnRzLnNhZmVEdW1wID0gc2FmZUR1bXA7XG4iLCIndXNlIHN0cmljdCc7XG5cblxuZnVuY3Rpb24gWUFNTEV4Y2VwdGlvbihyZWFzb24sIG1hcmspIHtcbiAgdGhpcy5uYW1lICAgID0gJ1lBTUxFeGNlcHRpb24nO1xuICB0aGlzLnJlYXNvbiAgPSByZWFzb247XG4gIHRoaXMubWFyayAgICA9IG1hcms7XG4gIHRoaXMubWVzc2FnZSA9IHRoaXMudG9TdHJpbmcoZmFsc2UpO1xufVxuXG5cbllBTUxFeGNlcHRpb24ucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoY29tcGFjdCkge1xuICB2YXIgcmVzdWx0O1xuXG4gIHJlc3VsdCA9ICdKUy1ZQU1MOiAnICsgKHRoaXMucmVhc29uIHx8ICcodW5rbm93biByZWFzb24pJyk7XG5cbiAgaWYgKCFjb21wYWN0ICYmIHRoaXMubWFyaykge1xuICAgIHJlc3VsdCArPSAnICcgKyB0aGlzLm1hcmsudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5cbm1vZHVsZS5leHBvcnRzID0gWUFNTEV4Y2VwdGlvbjtcbiIsIid1c2Ugc3RyaWN0JztcblxuLyplc2xpbnQtZGlzYWJsZSBtYXgtbGVuLG5vLXVzZS1iZWZvcmUtZGVmaW5lKi9cblxudmFyIGNvbW1vbiAgICAgICAgICAgICAgPSByZXF1aXJlKCcuL2NvbW1vbicpO1xudmFyIFlBTUxFeGNlcHRpb24gICAgICAgPSByZXF1aXJlKCcuL2V4Y2VwdGlvbicpO1xudmFyIE1hcmsgICAgICAgICAgICAgICAgPSByZXF1aXJlKCcuL21hcmsnKTtcbnZhciBERUZBVUxUX1NBRkVfU0NIRU1BID0gcmVxdWlyZSgnLi9zY2hlbWEvZGVmYXVsdF9zYWZlJyk7XG52YXIgREVGQVVMVF9GVUxMX1NDSEVNQSA9IHJlcXVpcmUoJy4vc2NoZW1hL2RlZmF1bHRfZnVsbCcpO1xuXG5cbnZhciBfaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG5cbnZhciBDT05URVhUX0ZMT1dfSU4gICA9IDE7XG52YXIgQ09OVEVYVF9GTE9XX09VVCAgPSAyO1xudmFyIENPTlRFWFRfQkxPQ0tfSU4gID0gMztcbnZhciBDT05URVhUX0JMT0NLX09VVCA9IDQ7XG5cblxudmFyIENIT01QSU5HX0NMSVAgID0gMTtcbnZhciBDSE9NUElOR19TVFJJUCA9IDI7XG52YXIgQ0hPTVBJTkdfS0VFUCAgPSAzO1xuXG5cbnZhciBQQVRURVJOX05PTl9QUklOVEFCTEUgICAgICAgICA9IC9bXFx4MDAtXFx4MDhcXHgwQlxceDBDXFx4MEUtXFx4MUZcXHg3Ri1cXHg4NFxceDg2LVxceDlGXFx1RkZGRVxcdUZGRkZdfFtcXHVEODAwLVxcdURCRkZdKD8hW1xcdURDMDAtXFx1REZGRl0pfCg/OlteXFx1RDgwMC1cXHVEQkZGXXxeKVtcXHVEQzAwLVxcdURGRkZdLztcbnZhciBQQVRURVJOX05PTl9BU0NJSV9MSU5FX0JSRUFLUyA9IC9bXFx4ODVcXHUyMDI4XFx1MjAyOV0vO1xudmFyIFBBVFRFUk5fRkxPV19JTkRJQ0FUT1JTICAgICAgID0gL1ssXFxbXFxdXFx7XFx9XS87XG52YXIgUEFUVEVSTl9UQUdfSEFORExFICAgICAgICAgICAgPSAvXig/OiF8ISF8IVthLXpcXC1dKyEpJC9pO1xudmFyIFBBVFRFUk5fVEFHX1VSSSAgICAgICAgICAgICAgID0gL14oPzohfFteLFxcW1xcXVxce1xcfV0pKD86JVswLTlhLWZdezJ9fFswLTlhLXpcXC0jO1xcL1xcPzpAJj1cXCtcXCQsX1xcLiF+XFwqJ1xcKFxcKVxcW1xcXV0pKiQvaTtcblxuXG5mdW5jdGlvbiBpc19FT0woYykge1xuICByZXR1cm4gKGMgPT09IDB4MEEvKiBMRiAqLykgfHwgKGMgPT09IDB4MEQvKiBDUiAqLyk7XG59XG5cbmZ1bmN0aW9uIGlzX1dISVRFX1NQQUNFKGMpIHtcbiAgcmV0dXJuIChjID09PSAweDA5LyogVGFiICovKSB8fCAoYyA9PT0gMHgyMC8qIFNwYWNlICovKTtcbn1cblxuZnVuY3Rpb24gaXNfV1NfT1JfRU9MKGMpIHtcbiAgcmV0dXJuIChjID09PSAweDA5LyogVGFiICovKSB8fFxuICAgICAgICAgKGMgPT09IDB4MjAvKiBTcGFjZSAqLykgfHxcbiAgICAgICAgIChjID09PSAweDBBLyogTEYgKi8pIHx8XG4gICAgICAgICAoYyA9PT0gMHgwRC8qIENSICovKTtcbn1cblxuZnVuY3Rpb24gaXNfRkxPV19JTkRJQ0FUT1IoYykge1xuICByZXR1cm4gMHgyQy8qICwgKi8gPT09IGMgfHxcbiAgICAgICAgIDB4NUIvKiBbICovID09PSBjIHx8XG4gICAgICAgICAweDVELyogXSAqLyA9PT0gYyB8fFxuICAgICAgICAgMHg3Qi8qIHsgKi8gPT09IGMgfHxcbiAgICAgICAgIDB4N0QvKiB9ICovID09PSBjO1xufVxuXG5mdW5jdGlvbiBmcm9tSGV4Q29kZShjKSB7XG4gIHZhciBsYztcblxuICBpZiAoKDB4MzAvKiAwICovIDw9IGMpICYmIChjIDw9IDB4MzkvKiA5ICovKSkge1xuICAgIHJldHVybiBjIC0gMHgzMDtcbiAgfVxuXG4gIC8qZXNsaW50LWRpc2FibGUgbm8tYml0d2lzZSovXG4gIGxjID0gYyB8IDB4MjA7XG5cbiAgaWYgKCgweDYxLyogYSAqLyA8PSBsYykgJiYgKGxjIDw9IDB4NjYvKiBmICovKSkge1xuICAgIHJldHVybiBsYyAtIDB4NjEgKyAxMDtcbiAgfVxuXG4gIHJldHVybiAtMTtcbn1cblxuZnVuY3Rpb24gZXNjYXBlZEhleExlbihjKSB7XG4gIGlmIChjID09PSAweDc4LyogeCAqLykgeyByZXR1cm4gMjsgfVxuICBpZiAoYyA9PT0gMHg3NS8qIHUgKi8pIHsgcmV0dXJuIDQ7IH1cbiAgaWYgKGMgPT09IDB4NTUvKiBVICovKSB7IHJldHVybiA4OyB9XG4gIHJldHVybiAwO1xufVxuXG5mdW5jdGlvbiBmcm9tRGVjaW1hbENvZGUoYykge1xuICBpZiAoKDB4MzAvKiAwICovIDw9IGMpICYmIChjIDw9IDB4MzkvKiA5ICovKSkge1xuICAgIHJldHVybiBjIC0gMHgzMDtcbiAgfVxuXG4gIHJldHVybiAtMTtcbn1cblxuZnVuY3Rpb24gc2ltcGxlRXNjYXBlU2VxdWVuY2UoYykge1xuICByZXR1cm4gKGMgPT09IDB4MzAvKiAwICovKSA/ICdcXHgwMCcgOlxuICAgICAgICAoYyA9PT0gMHg2MS8qIGEgKi8pID8gJ1xceDA3JyA6XG4gICAgICAgIChjID09PSAweDYyLyogYiAqLykgPyAnXFx4MDgnIDpcbiAgICAgICAgKGMgPT09IDB4NzQvKiB0ICovKSA/ICdcXHgwOScgOlxuICAgICAgICAoYyA9PT0gMHgwOS8qIFRhYiAqLykgPyAnXFx4MDknIDpcbiAgICAgICAgKGMgPT09IDB4NkUvKiBuICovKSA/ICdcXHgwQScgOlxuICAgICAgICAoYyA9PT0gMHg3Ni8qIHYgKi8pID8gJ1xceDBCJyA6XG4gICAgICAgIChjID09PSAweDY2LyogZiAqLykgPyAnXFx4MEMnIDpcbiAgICAgICAgKGMgPT09IDB4NzIvKiByICovKSA/ICdcXHgwRCcgOlxuICAgICAgICAoYyA9PT0gMHg2NS8qIGUgKi8pID8gJ1xceDFCJyA6XG4gICAgICAgIChjID09PSAweDIwLyogU3BhY2UgKi8pID8gJyAnIDpcbiAgICAgICAgKGMgPT09IDB4MjIvKiBcIiAqLykgPyAnXFx4MjInIDpcbiAgICAgICAgKGMgPT09IDB4MkYvKiAvICovKSA/ICcvJyA6XG4gICAgICAgIChjID09PSAweDVDLyogXFwgKi8pID8gJ1xceDVDJyA6XG4gICAgICAgIChjID09PSAweDRFLyogTiAqLykgPyAnXFx4ODUnIDpcbiAgICAgICAgKGMgPT09IDB4NUYvKiBfICovKSA/ICdcXHhBMCcgOlxuICAgICAgICAoYyA9PT0gMHg0Qy8qIEwgKi8pID8gJ1xcdTIwMjgnIDpcbiAgICAgICAgKGMgPT09IDB4NTAvKiBQICovKSA/ICdcXHUyMDI5JyA6ICcnO1xufVxuXG5mdW5jdGlvbiBjaGFyRnJvbUNvZGVwb2ludChjKSB7XG4gIGlmIChjIDw9IDB4RkZGRikge1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpO1xuICB9XG4gIC8vIEVuY29kZSBVVEYtMTYgc3Vycm9nYXRlIHBhaXJcbiAgLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVVRGLTE2I0NvZGVfcG9pbnRzX1UuMkIwMTAwMDBfdG9fVS4yQjEwRkZGRlxuICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMgLSAweDAxMDAwMCkgPj4gMTApICsgMHhEODAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGMgLSAweDAxMDAwMCkgJiAweDAzRkYpICsgMHhEQzAwKTtcbn1cblxudmFyIHNpbXBsZUVzY2FwZUNoZWNrID0gbmV3IEFycmF5KDI1Nik7IC8vIGludGVnZXIsIGZvciBmYXN0IGFjY2Vzc1xudmFyIHNpbXBsZUVzY2FwZU1hcCA9IG5ldyBBcnJheSgyNTYpO1xuZm9yICh2YXIgaSA9IDA7IGkgPCAyNTY7IGkrKykge1xuICBzaW1wbGVFc2NhcGVDaGVja1tpXSA9IHNpbXBsZUVzY2FwZVNlcXVlbmNlKGkpID8gMSA6IDA7XG4gIHNpbXBsZUVzY2FwZU1hcFtpXSA9IHNpbXBsZUVzY2FwZVNlcXVlbmNlKGkpO1xufVxuXG5cbmZ1bmN0aW9uIFN0YXRlKGlucHV0LCBvcHRpb25zKSB7XG4gIHRoaXMuaW5wdXQgPSBpbnB1dDtcblxuICB0aGlzLmZpbGVuYW1lICA9IG9wdGlvbnNbJ2ZpbGVuYW1lJ10gIHx8IG51bGw7XG4gIHRoaXMuc2NoZW1hICAgID0gb3B0aW9uc1snc2NoZW1hJ10gICAgfHwgREVGQVVMVF9GVUxMX1NDSEVNQTtcbiAgdGhpcy5vbldhcm5pbmcgPSBvcHRpb25zWydvbldhcm5pbmcnXSB8fCBudWxsO1xuICB0aGlzLmxlZ2FjeSAgICA9IG9wdGlvbnNbJ2xlZ2FjeSddICAgIHx8IGZhbHNlO1xuXG4gIHRoaXMuaW1wbGljaXRUeXBlcyA9IHRoaXMuc2NoZW1hLmNvbXBpbGVkSW1wbGljaXQ7XG4gIHRoaXMudHlwZU1hcCAgICAgICA9IHRoaXMuc2NoZW1hLmNvbXBpbGVkVHlwZU1hcDtcblxuICB0aGlzLmxlbmd0aCAgICAgPSBpbnB1dC5sZW5ndGg7XG4gIHRoaXMucG9zaXRpb24gICA9IDA7XG4gIHRoaXMubGluZSAgICAgICA9IDA7XG4gIHRoaXMubGluZVN0YXJ0ICA9IDA7XG4gIHRoaXMubGluZUluZGVudCA9IDA7XG5cbiAgdGhpcy5kb2N1bWVudHMgPSBbXTtcblxuICAvKlxuICB0aGlzLnZlcnNpb247XG4gIHRoaXMuY2hlY2tMaW5lQnJlYWtzO1xuICB0aGlzLnRhZ01hcDtcbiAgdGhpcy5hbmNob3JNYXA7XG4gIHRoaXMudGFnO1xuICB0aGlzLmFuY2hvcjtcbiAgdGhpcy5raW5kO1xuICB0aGlzLnJlc3VsdDsqL1xuXG59XG5cblxuZnVuY3Rpb24gZ2VuZXJhdGVFcnJvcihzdGF0ZSwgbWVzc2FnZSkge1xuICByZXR1cm4gbmV3IFlBTUxFeGNlcHRpb24oXG4gICAgbWVzc2FnZSxcbiAgICBuZXcgTWFyayhzdGF0ZS5maWxlbmFtZSwgc3RhdGUuaW5wdXQsIHN0YXRlLnBvc2l0aW9uLCBzdGF0ZS5saW5lLCAoc3RhdGUucG9zaXRpb24gLSBzdGF0ZS5saW5lU3RhcnQpKSk7XG59XG5cbmZ1bmN0aW9uIHRocm93RXJyb3Ioc3RhdGUsIG1lc3NhZ2UpIHtcbiAgdGhyb3cgZ2VuZXJhdGVFcnJvcihzdGF0ZSwgbWVzc2FnZSk7XG59XG5cbmZ1bmN0aW9uIHRocm93V2FybmluZyhzdGF0ZSwgbWVzc2FnZSkge1xuICB2YXIgZXJyb3IgPSBnZW5lcmF0ZUVycm9yKHN0YXRlLCBtZXNzYWdlKTtcblxuICBpZiAoc3RhdGUub25XYXJuaW5nKSB7XG4gICAgc3RhdGUub25XYXJuaW5nLmNhbGwobnVsbCwgZXJyb3IpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cblxudmFyIGRpcmVjdGl2ZUhhbmRsZXJzID0ge1xuXG4gIFlBTUw6IGZ1bmN0aW9uIGhhbmRsZVlhbWxEaXJlY3RpdmUoc3RhdGUsIG5hbWUsIGFyZ3MpIHtcblxuICAgICAgdmFyIG1hdGNoLCBtYWpvciwgbWlub3I7XG5cbiAgICAgIGlmIChudWxsICE9PSBzdGF0ZS52ZXJzaW9uKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdkdXBsaWNhdGlvbiBvZiAlWUFNTCBkaXJlY3RpdmUnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKDEgIT09IGFyZ3MubGVuZ3RoKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdZQU1MIGRpcmVjdGl2ZSBhY2NlcHRzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgICB9XG5cbiAgICAgIG1hdGNoID0gL14oWzAtOV0rKVxcLihbMC05XSspJC8uZXhlYyhhcmdzWzBdKTtcblxuICAgICAgaWYgKG51bGwgPT09IG1hdGNoKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdpbGwtZm9ybWVkIGFyZ3VtZW50IG9mIHRoZSBZQU1MIGRpcmVjdGl2ZScpO1xuICAgICAgfVxuXG4gICAgICBtYWpvciA9IHBhcnNlSW50KG1hdGNoWzFdLCAxMCk7XG4gICAgICBtaW5vciA9IHBhcnNlSW50KG1hdGNoWzJdLCAxMCk7XG5cbiAgICAgIGlmICgxICE9PSBtYWpvcikge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5hY2NlcHRhYmxlIFlBTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQnKTtcbiAgICAgIH1cblxuICAgICAgc3RhdGUudmVyc2lvbiA9IGFyZ3NbMF07XG4gICAgICBzdGF0ZS5jaGVja0xpbmVCcmVha3MgPSAobWlub3IgPCAyKTtcblxuICAgICAgaWYgKDEgIT09IG1pbm9yICYmIDIgIT09IG1pbm9yKSB7XG4gICAgICAgIHRocm93V2FybmluZyhzdGF0ZSwgJ3Vuc3VwcG9ydGVkIFlBTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQnKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gIFRBRzogZnVuY3Rpb24gaGFuZGxlVGFnRGlyZWN0aXZlKHN0YXRlLCBuYW1lLCBhcmdzKSB7XG5cbiAgICAgIHZhciBoYW5kbGUsIHByZWZpeDtcblxuICAgICAgaWYgKDIgIT09IGFyZ3MubGVuZ3RoKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdUQUcgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSB0d28gYXJndW1lbnRzJyk7XG4gICAgICB9XG5cbiAgICAgIGhhbmRsZSA9IGFyZ3NbMF07XG4gICAgICBwcmVmaXggPSBhcmdzWzFdO1xuXG4gICAgICBpZiAoIVBBVFRFUk5fVEFHX0hBTkRMRS50ZXN0KGhhbmRsZSkpIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2lsbC1mb3JtZWQgdGFnIGhhbmRsZSAoZmlyc3QgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlJyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChfaGFzT3duUHJvcGVydHkuY2FsbChzdGF0ZS50YWdNYXAsIGhhbmRsZSkpIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3RoZXJlIGlzIGEgcHJldmlvdXNseSBkZWNsYXJlZCBzdWZmaXggZm9yIFwiJyArIGhhbmRsZSArICdcIiB0YWcgaGFuZGxlJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICghUEFUVEVSTl9UQUdfVVJJLnRlc3QocHJlZml4KSkge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnaWxsLWZvcm1lZCB0YWcgcHJlZml4IChzZWNvbmQgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlJyk7XG4gICAgICB9XG5cbiAgICAgIHN0YXRlLnRhZ01hcFtoYW5kbGVdID0gcHJlZml4O1xuICAgIH1cbn07XG5cblxuZnVuY3Rpb24gY2FwdHVyZVNlZ21lbnQoc3RhdGUsIHN0YXJ0LCBlbmQsIGNoZWNrSnNvbikge1xuICB2YXIgX3Bvc2l0aW9uLCBfbGVuZ3RoLCBfY2hhcmFjdGVyLCBfcmVzdWx0O1xuXG4gIGlmIChzdGFydCA8IGVuZCkge1xuICAgIF9yZXN1bHQgPSBzdGF0ZS5pbnB1dC5zbGljZShzdGFydCwgZW5kKTtcblxuICAgIGlmIChjaGVja0pzb24pIHtcbiAgICAgIGZvciAoX3Bvc2l0aW9uID0gMCwgX2xlbmd0aCA9IF9yZXN1bHQubGVuZ3RoO1xuICAgICAgICAgICBfcG9zaXRpb24gPCBfbGVuZ3RoO1xuICAgICAgICAgICBfcG9zaXRpb24gKz0gMSkge1xuICAgICAgICBfY2hhcmFjdGVyID0gX3Jlc3VsdC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7XG4gICAgICAgIGlmICghKDB4MDkgPT09IF9jaGFyYWN0ZXIgfHxcbiAgICAgICAgICAgICAgMHgyMCA8PSBfY2hhcmFjdGVyICYmIF9jaGFyYWN0ZXIgPD0gMHgxMEZGRkYpKSB7XG4gICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2V4cGVjdGVkIHZhbGlkIEpTT04gY2hhcmFjdGVyJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0ZS5yZXN1bHQgKz0gX3Jlc3VsdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBtZXJnZU1hcHBpbmdzKHN0YXRlLCBkZXN0aW5hdGlvbiwgc291cmNlKSB7XG4gIHZhciBzb3VyY2VLZXlzLCBrZXksIGluZGV4LCBxdWFudGl0eTtcblxuICBpZiAoIWNvbW1vbi5pc09iamVjdChzb3VyY2UpKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2Nhbm5vdCBtZXJnZSBtYXBwaW5nczsgdGhlIHByb3ZpZGVkIHNvdXJjZSBvYmplY3QgaXMgdW5hY2NlcHRhYmxlJyk7XG4gIH1cblxuICBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTtcblxuICBmb3IgKGluZGV4ID0gMCwgcXVhbnRpdHkgPSBzb3VyY2VLZXlzLmxlbmd0aDsgaW5kZXggPCBxdWFudGl0eTsgaW5kZXggKz0gMSkge1xuICAgIGtleSA9IHNvdXJjZUtleXNbaW5kZXhdO1xuXG4gICAgaWYgKCFfaGFzT3duUHJvcGVydHkuY2FsbChkZXN0aW5hdGlvbiwga2V5KSkge1xuICAgICAgZGVzdGluYXRpb25ba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBfcmVzdWx0LCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSkge1xuICB2YXIgaW5kZXgsIHF1YW50aXR5O1xuXG4gIGtleU5vZGUgPSBTdHJpbmcoa2V5Tm9kZSk7XG5cbiAgaWYgKG51bGwgPT09IF9yZXN1bHQpIHtcbiAgICBfcmVzdWx0ID0ge307XG4gIH1cblxuICBpZiAoJ3RhZzp5YW1sLm9yZywyMDAyOm1lcmdlJyA9PT0ga2V5VGFnKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVOb2RlKSkge1xuICAgICAgZm9yIChpbmRleCA9IDAsIHF1YW50aXR5ID0gdmFsdWVOb2RlLmxlbmd0aDsgaW5kZXggPCBxdWFudGl0eTsgaW5kZXggKz0gMSkge1xuICAgICAgICBtZXJnZU1hcHBpbmdzKHN0YXRlLCBfcmVzdWx0LCB2YWx1ZU5vZGVbaW5kZXhdKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbWVyZ2VNYXBwaW5ncyhzdGF0ZSwgX3Jlc3VsdCwgdmFsdWVOb2RlKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgX3Jlc3VsdFtrZXlOb2RlXSA9IHZhbHVlTm9kZTtcbiAgfVxuXG4gIHJldHVybiBfcmVzdWx0O1xufVxuXG5mdW5jdGlvbiByZWFkTGluZUJyZWFrKHN0YXRlKSB7XG4gIHZhciBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmICgweDBBLyogTEYgKi8gPT09IGNoKSB7XG4gICAgc3RhdGUucG9zaXRpb24rKztcbiAgfSBlbHNlIGlmICgweDBELyogQ1IgKi8gPT09IGNoKSB7XG4gICAgc3RhdGUucG9zaXRpb24rKztcbiAgICBpZiAoMHgwQS8qIExGICovID09PSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkge1xuICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2EgbGluZSBicmVhayBpcyBleHBlY3RlZCcpO1xuICB9XG5cbiAgc3RhdGUubGluZSArPSAxO1xuICBzdGF0ZS5saW5lU3RhcnQgPSBzdGF0ZS5wb3NpdGlvbjtcbn1cblxuZnVuY3Rpb24gc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgYWxsb3dDb21tZW50cywgY2hlY2tJbmRlbnQpIHtcbiAgdmFyIGxpbmVCcmVha3MgPSAwLFxuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICB3aGlsZSAoMCAhPT0gY2gpIHtcbiAgICB3aGlsZSAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKGFsbG93Q29tbWVudHMgJiYgMHgyMy8qICMgKi8gPT09IGNoKSB7XG4gICAgICBkbyB7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgIH0gd2hpbGUgKGNoICE9PSAweDBBLyogTEYgKi8gJiYgY2ggIT09IDB4MEQvKiBDUiAqLyAmJiAwICE9PSBjaCk7XG4gICAgfVxuXG4gICAgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgIHJlYWRMaW5lQnJlYWsoc3RhdGUpO1xuXG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuICAgICAgbGluZUJyZWFrcysrO1xuICAgICAgc3RhdGUubGluZUluZGVudCA9IDA7XG5cbiAgICAgIHdoaWxlICgweDIwLyogU3BhY2UgKi8gPT09IGNoKSB7XG4gICAgICAgIHN0YXRlLmxpbmVJbmRlbnQrKztcbiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAoLTEgIT09IGNoZWNrSW5kZW50ICYmIDAgIT09IGxpbmVCcmVha3MgJiYgc3RhdGUubGluZUluZGVudCA8IGNoZWNrSW5kZW50KSB7XG4gICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAnZGVmaWNpZW50IGluZGVudGF0aW9uJyk7XG4gIH1cblxuICByZXR1cm4gbGluZUJyZWFrcztcbn1cblxuZnVuY3Rpb24gdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSB7XG4gIHZhciBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbixcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChfcG9zaXRpb24pO1xuXG4gIC8vIENvbmRpdGlvbiBzdGF0ZS5wb3NpdGlvbiA9PT0gc3RhdGUubGluZVN0YXJ0IGlzIHRlc3RlZFxuICAvLyBpbiBwYXJlbnQgb24gZWFjaCBjYWxsLCBmb3IgZWZmaWNpZW5jeS4gTm8gbmVlZHMgdG8gdGVzdCBoZXJlIGFnYWluLlxuICBpZiAoKDB4MkQvKiAtICovID09PSBjaCB8fCAweDJFLyogLiAqLyA9PT0gY2gpICYmXG4gICAgICBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KF9wb3NpdGlvbiArIDEpID09PSBjaCAmJlxuICAgICAgc3RhdGUuaW5wdXQuY2hhckNvZGVBdChfcG9zaXRpb24gKyAyKSA9PT0gY2gpIHtcblxuICAgIF9wb3NpdGlvbiArPSAzO1xuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7XG5cbiAgICBpZiAoY2ggPT09IDAgfHwgaXNfV1NfT1JfRU9MKGNoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiB3cml0ZUZvbGRlZExpbmVzKHN0YXRlLCBjb3VudCkge1xuICBpZiAoMSA9PT0gY291bnQpIHtcbiAgICBzdGF0ZS5yZXN1bHQgKz0gJyAnO1xuICB9IGVsc2UgaWYgKGNvdW50ID4gMSkge1xuICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCdcXG4nLCBjb3VudCAtIDEpO1xuICB9XG59XG5cblxuZnVuY3Rpb24gcmVhZFBsYWluU2NhbGFyKHN0YXRlLCBub2RlSW5kZW50LCB3aXRoaW5GbG93Q29sbGVjdGlvbikge1xuICB2YXIgcHJlY2VkaW5nLFxuICAgICAgZm9sbG93aW5nLFxuICAgICAgY2FwdHVyZVN0YXJ0LFxuICAgICAgY2FwdHVyZUVuZCxcbiAgICAgIGhhc1BlbmRpbmdDb250ZW50LFxuICAgICAgX2xpbmUsXG4gICAgICBfbGluZVN0YXJ0LFxuICAgICAgX2xpbmVJbmRlbnQsXG4gICAgICBfa2luZCA9IHN0YXRlLmtpbmQsXG4gICAgICBfcmVzdWx0ID0gc3RhdGUucmVzdWx0LFxuICAgICAgY2g7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoaXNfV1NfT1JfRU9MKGNoKSAgICAgICAgICAgICB8fFxuICAgICAgaXNfRkxPV19JTkRJQ0FUT1IoY2gpICAgICAgICB8fFxuICAgICAgMHgyMy8qICMgKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgyNi8qICYgKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgyQS8qICogKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgyMS8qICEgKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHg3Qy8qIHwgKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgzRS8qID4gKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgyNy8qICcgKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgyMi8qIFwiICovICAgICAgICAgICA9PT0gY2ggfHxcbiAgICAgIDB4MjUvKiAlICovICAgICAgICAgICA9PT0gY2ggfHxcbiAgICAgIDB4NDAvKiBAICovICAgICAgICAgICA9PT0gY2ggfHxcbiAgICAgIDB4NjAvKiBgICovICAgICAgICAgICA9PT0gY2gpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoMHgzRi8qID8gKi8gPT09IGNoIHx8IDB4MkQvKiAtICovID09PSBjaCkge1xuICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTtcblxuICAgIGlmIChpc19XU19PUl9FT0woZm9sbG93aW5nKSB8fFxuICAgICAgICB3aXRoaW5GbG93Q29sbGVjdGlvbiAmJiBpc19GTE9XX0lORElDQVRPUihmb2xsb3dpbmcpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgc3RhdGUua2luZCA9ICdzY2FsYXInO1xuICBzdGF0ZS5yZXN1bHQgPSAnJztcbiAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuICBoYXNQZW5kaW5nQ29udGVudCA9IGZhbHNlO1xuXG4gIHdoaWxlICgwICE9PSBjaCkge1xuICAgIGlmICgweDNBLyogOiAqLyA9PT0gY2gpIHtcbiAgICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTtcblxuICAgICAgaWYgKGlzX1dTX09SX0VPTChmb2xsb3dpbmcpIHx8XG4gICAgICAgICAgd2l0aGluRmxvd0NvbGxlY3Rpb24gJiYgaXNfRkxPV19JTkRJQ0FUT1IoZm9sbG93aW5nKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIH0gZWxzZSBpZiAoMHgyMy8qICMgKi8gPT09IGNoKSB7XG4gICAgICBwcmVjZWRpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uIC0gMSk7XG5cbiAgICAgIGlmIChpc19XU19PUl9FT0wocHJlY2VkaW5nKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIH0gZWxzZSBpZiAoKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkgfHxcbiAgICAgICAgICAgICAgIHdpdGhpbkZsb3dDb2xsZWN0aW9uICYmIGlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkge1xuICAgICAgYnJlYWs7XG5cbiAgICB9IGVsc2UgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgIF9saW5lID0gc3RhdGUubGluZTtcbiAgICAgIF9saW5lU3RhcnQgPSBzdGF0ZS5saW5lU3RhcnQ7XG4gICAgICBfbGluZUluZGVudCA9IHN0YXRlLmxpbmVJbmRlbnQ7XG4gICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCBmYWxzZSwgLTEpO1xuXG4gICAgICBpZiAoc3RhdGUubGluZUluZGVudCA+PSBub2RlSW5kZW50KSB7XG4gICAgICAgIGhhc1BlbmRpbmdDb250ZW50ID0gdHJ1ZTtcbiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZS5wb3NpdGlvbiA9IGNhcHR1cmVFbmQ7XG4gICAgICAgIHN0YXRlLmxpbmUgPSBfbGluZTtcbiAgICAgICAgc3RhdGUubGluZVN0YXJ0ID0gX2xpbmVTdGFydDtcbiAgICAgICAgc3RhdGUubGluZUluZGVudCA9IF9saW5lSW5kZW50O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaGFzUGVuZGluZ0NvbnRlbnQpIHtcbiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGZhbHNlKTtcbiAgICAgIHdyaXRlRm9sZGVkTGluZXMoc3RhdGUsIHN0YXRlLmxpbmUgLSBfbGluZSk7XG4gICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG4gICAgICBoYXNQZW5kaW5nQ29udGVudCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghaXNfV0hJVEVfU1BBQ0UoY2gpKSB7XG4gICAgICBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb24gKyAxO1xuICAgIH1cblxuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgfVxuXG4gIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGZhbHNlKTtcblxuICBpZiAoc3RhdGUucmVzdWx0KSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzdGF0ZS5raW5kID0gX2tpbmQ7XG4gIHN0YXRlLnJlc3VsdCA9IF9yZXN1bHQ7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gcmVhZFNpbmdsZVF1b3RlZFNjYWxhcihzdGF0ZSwgbm9kZUluZGVudCkge1xuICB2YXIgY2gsXG4gICAgICBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQ7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoMHgyNy8qICcgKi8gIT09IGNoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc3RhdGUua2luZCA9ICdzY2FsYXInO1xuICBzdGF0ZS5yZXN1bHQgPSAnJztcbiAgc3RhdGUucG9zaXRpb24rKztcbiAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gIHdoaWxlICgwICE9PSAoY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkpIHtcbiAgICBpZiAoMHgyNy8qICcgKi8gPT09IGNoKSB7XG4gICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgdHJ1ZSk7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICAgIGlmICgweDI3LyogJyAqLyA9PT0gY2gpIHtcbiAgICAgICAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuICAgICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICB9IGVsc2UgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIHRydWUpO1xuICAgICAgd3JpdGVGb2xkZWRMaW5lcyhzdGF0ZSwgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgZmFsc2UsIG5vZGVJbmRlbnQpKTtcbiAgICAgIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcblxuICAgIH0gZWxzZSBpZiAoc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyJyk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICB9XG4gIH1cblxuICB0aHJvd0Vycm9yKHN0YXRlLCAndW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBzaW5nbGUgcXVvdGVkIHNjYWxhcicpO1xufVxuXG5mdW5jdGlvbiByZWFkRG91YmxlUXVvdGVkU2NhbGFyKHN0YXRlLCBub2RlSW5kZW50KSB7XG4gIHZhciBjYXB0dXJlU3RhcnQsXG4gICAgICBjYXB0dXJlRW5kLFxuICAgICAgaGV4TGVuZ3RoLFxuICAgICAgaGV4UmVzdWx0LFxuICAgICAgdG1wLCB0bXBFc2MsXG4gICAgICBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmICgweDIyLyogXCIgKi8gIT09IGNoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc3RhdGUua2luZCA9ICdzY2FsYXInO1xuICBzdGF0ZS5yZXN1bHQgPSAnJztcbiAgc3RhdGUucG9zaXRpb24rKztcbiAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gIHdoaWxlICgwICE9PSAoY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkpIHtcbiAgICBpZiAoMHgyMi8qIFwiICovID09PSBjaCkge1xuICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgc3RhdGUucG9zaXRpb24sIHRydWUpO1xuICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgfSBlbHNlIGlmICgweDVDLyogXFwgKi8gPT09IGNoKSB7XG4gICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgdHJ1ZSk7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICAgIGlmIChpc19FT0woY2gpKSB7XG4gICAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIGZhbHNlLCBub2RlSW5kZW50KTtcblxuICAgICAgICAvLyBUT0RPOiByZXdvcmsgdG8gaW5saW5lIGZuIHdpdGggbm8gdHlwZSBjYXN0P1xuICAgICAgfSBlbHNlIGlmIChjaCA8IDI1NiAmJiBzaW1wbGVFc2NhcGVDaGVja1tjaF0pIHtcbiAgICAgICAgc3RhdGUucmVzdWx0ICs9IHNpbXBsZUVzY2FwZU1hcFtjaF07XG4gICAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG5cbiAgICAgIH0gZWxzZSBpZiAoKHRtcCA9IGVzY2FwZWRIZXhMZW4oY2gpKSA+IDApIHtcbiAgICAgICAgaGV4TGVuZ3RoID0gdG1wO1xuICAgICAgICBoZXhSZXN1bHQgPSAwO1xuXG4gICAgICAgIGZvciAoOyBoZXhMZW5ndGggPiAwOyBoZXhMZW5ndGgtLSkge1xuICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcblxuICAgICAgICAgIGlmICgodG1wID0gZnJvbUhleENvZGUoY2gpKSA+PSAwKSB7XG4gICAgICAgICAgICBoZXhSZXN1bHQgPSAoaGV4UmVzdWx0IDw8IDQpICsgdG1wO1xuXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdleHBlY3RlZCBoZXhhZGVjaW1hbCBjaGFyYWN0ZXInKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gY2hhckZyb21Db2RlcG9pbnQoaGV4UmVzdWx0KTtcblxuICAgICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5rbm93biBlc2NhcGUgc2VxdWVuY2UnKTtcbiAgICAgIH1cblxuICAgICAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gICAgfSBlbHNlIGlmIChpc19FT0woY2gpKSB7XG4gICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBjYXB0dXJlRW5kLCB0cnVlKTtcbiAgICAgIHdyaXRlRm9sZGVkTGluZXMoc3RhdGUsIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIGZhbHNlLCBub2RlSW5kZW50KSk7XG4gICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG5cbiAgICB9IGVsc2UgaWYgKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuZXhwZWN0ZWQgZW5kIG9mIHRoZSBkb2N1bWVudCB3aXRoaW4gYSBkb3VibGUgcXVvdGVkIHNjYWxhcicpO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG4gICAgICBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG4gICAgfVxuICB9XG5cbiAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgZG91YmxlIHF1b3RlZCBzY2FsYXInKTtcbn1cblxuZnVuY3Rpb24gcmVhZEZsb3dDb2xsZWN0aW9uKHN0YXRlLCBub2RlSW5kZW50KSB7XG4gIHZhciByZWFkTmV4dCA9IHRydWUsXG4gICAgICBfbGluZSxcbiAgICAgIF90YWcgICAgID0gc3RhdGUudGFnLFxuICAgICAgX3Jlc3VsdCxcbiAgICAgIF9hbmNob3IgID0gc3RhdGUuYW5jaG9yLFxuICAgICAgZm9sbG93aW5nLFxuICAgICAgdGVybWluYXRvcixcbiAgICAgIGlzUGFpcixcbiAgICAgIGlzRXhwbGljaXRQYWlyLFxuICAgICAgaXNNYXBwaW5nLFxuICAgICAga2V5Tm9kZSxcbiAgICAgIGtleVRhZyxcbiAgICAgIHZhbHVlTm9kZSxcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKGNoID09PSAweDVCLyogWyAqLykge1xuICAgIHRlcm1pbmF0b3IgPSAweDVEOy8qIF0gKi9cbiAgICBpc01hcHBpbmcgPSBmYWxzZTtcbiAgICBfcmVzdWx0ID0gW107XG4gIH0gZWxzZSBpZiAoY2ggPT09IDB4N0IvKiB7ICovKSB7XG4gICAgdGVybWluYXRvciA9IDB4N0Q7LyogfSAqL1xuICAgIGlzTWFwcGluZyA9IHRydWU7XG4gICAgX3Jlc3VsdCA9IHt9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChudWxsICE9PSBzdGF0ZS5hbmNob3IpIHtcbiAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IF9yZXN1bHQ7XG4gIH1cblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgd2hpbGUgKDAgIT09IGNoKSB7XG4gICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7XG5cbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gICAgaWYgKGNoID09PSB0ZXJtaW5hdG9yKSB7XG4gICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuICAgICAgc3RhdGUudGFnID0gX3RhZztcbiAgICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7XG4gICAgICBzdGF0ZS5raW5kID0gaXNNYXBwaW5nID8gJ21hcHBpbmcnIDogJ3NlcXVlbmNlJztcbiAgICAgIHN0YXRlLnJlc3VsdCA9IF9yZXN1bHQ7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKCFyZWFkTmV4dCkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ21pc3NlZCBjb21tYSBiZXR3ZWVuIGZsb3cgY29sbGVjdGlvbiBlbnRyaWVzJyk7XG4gICAgfVxuXG4gICAga2V5VGFnID0ga2V5Tm9kZSA9IHZhbHVlTm9kZSA9IG51bGw7XG4gICAgaXNQYWlyID0gaXNFeHBsaWNpdFBhaXIgPSBmYWxzZTtcblxuICAgIGlmICgweDNGLyogPyAqLyA9PT0gY2gpIHtcbiAgICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTtcblxuICAgICAgaWYgKGlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7XG4gICAgICAgIGlzUGFpciA9IGlzRXhwbGljaXRQYWlyID0gdHJ1ZTtcbiAgICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX2xpbmUgPSBzdGF0ZS5saW5lO1xuICAgIGNvbXBvc2VOb2RlKHN0YXRlLCBub2RlSW5kZW50LCBDT05URVhUX0ZMT1dfSU4sIGZhbHNlLCB0cnVlKTtcbiAgICBrZXlUYWcgPSBzdGF0ZS50YWc7XG4gICAga2V5Tm9kZSA9IHN0YXRlLnJlc3VsdDtcbiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCBub2RlSW5kZW50KTtcblxuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICBpZiAoKGlzRXhwbGljaXRQYWlyIHx8IHN0YXRlLmxpbmUgPT09IF9saW5lKSAmJiAweDNBLyogOiAqLyA9PT0gY2gpIHtcbiAgICAgIGlzUGFpciA9IHRydWU7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCBub2RlSW5kZW50KTtcbiAgICAgIGNvbXBvc2VOb2RlKHN0YXRlLCBub2RlSW5kZW50LCBDT05URVhUX0ZMT1dfSU4sIGZhbHNlLCB0cnVlKTtcbiAgICAgIHZhbHVlTm9kZSA9IHN0YXRlLnJlc3VsdDtcbiAgICB9XG5cbiAgICBpZiAoaXNNYXBwaW5nKSB7XG4gICAgICBzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBfcmVzdWx0LCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSk7XG4gICAgfSBlbHNlIGlmIChpc1BhaXIpIHtcbiAgICAgIF9yZXN1bHQucHVzaChzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBudWxsLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBfcmVzdWx0LnB1c2goa2V5Tm9kZSk7XG4gICAgfVxuXG4gICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7XG5cbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gICAgaWYgKDB4MkMvKiAsICovID09PSBjaCkge1xuICAgICAgcmVhZE5leHQgPSB0cnVlO1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZWFkTmV4dCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHRocm93RXJyb3Ioc3RhdGUsICd1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIGZsb3cgY29sbGVjdGlvbicpO1xufVxuXG5mdW5jdGlvbiByZWFkQmxvY2tTY2FsYXIoc3RhdGUsIG5vZGVJbmRlbnQpIHtcbiAgdmFyIGNhcHR1cmVTdGFydCxcbiAgICAgIGZvbGRpbmcsXG4gICAgICBjaG9tcGluZyAgICAgICA9IENIT01QSU5HX0NMSVAsXG4gICAgICBkZXRlY3RlZEluZGVudCA9IGZhbHNlLFxuICAgICAgdGV4dEluZGVudCAgICAgPSBub2RlSW5kZW50LFxuICAgICAgZW1wdHlMaW5lcyAgICAgPSAwLFxuICAgICAgYXRNb3JlSW5kZW50ZWQgPSBmYWxzZSxcbiAgICAgIHRtcCxcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKGNoID09PSAweDdDLyogfCAqLykge1xuICAgIGZvbGRpbmcgPSBmYWxzZTtcbiAgfSBlbHNlIGlmIChjaCA9PT0gMHgzRS8qID4gKi8pIHtcbiAgICBmb2xkaW5nID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdGF0ZS5raW5kID0gJ3NjYWxhcic7XG4gIHN0YXRlLnJlc3VsdCA9ICcnO1xuXG4gIHdoaWxlICgwICE9PSBjaCkge1xuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcblxuICAgIGlmICgweDJCLyogKyAqLyA9PT0gY2ggfHwgMHgyRC8qIC0gKi8gPT09IGNoKSB7XG4gICAgICBpZiAoQ0hPTVBJTkdfQ0xJUCA9PT0gY2hvbXBpbmcpIHtcbiAgICAgICAgY2hvbXBpbmcgPSAoMHgyQi8qICsgKi8gPT09IGNoKSA/IENIT01QSU5HX0tFRVAgOiBDSE9NUElOR19TVFJJUDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdyZXBlYXQgb2YgYSBjaG9tcGluZyBtb2RlIGlkZW50aWZpZXInKTtcbiAgICAgIH1cblxuICAgIH0gZWxzZSBpZiAoKHRtcCA9IGZyb21EZWNpbWFsQ29kZShjaCkpID49IDApIHtcbiAgICAgIGlmICh0bXAgPT09IDApIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2JhZCBleHBsaWNpdCBpbmRlbnRhdGlvbiB3aWR0aCBvZiBhIGJsb2NrIHNjYWxhcjsgaXQgY2Fubm90IGJlIGxlc3MgdGhhbiBvbmUnKTtcbiAgICAgIH0gZWxzZSBpZiAoIWRldGVjdGVkSW5kZW50KSB7XG4gICAgICAgIHRleHRJbmRlbnQgPSBub2RlSW5kZW50ICsgdG1wIC0gMTtcbiAgICAgICAgZGV0ZWN0ZWRJbmRlbnQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3JlcGVhdCBvZiBhbiBpbmRlbnRhdGlvbiB3aWR0aCBpZGVudGlmaWVyJyk7XG4gICAgICB9XG5cbiAgICB9IGVsc2Uge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaWYgKGlzX1dISVRFX1NQQUNFKGNoKSkge1xuICAgIGRvIHsgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOyB9XG4gICAgd2hpbGUgKGlzX1dISVRFX1NQQUNFKGNoKSk7XG5cbiAgICBpZiAoMHgyMy8qICMgKi8gPT09IGNoKSB7XG4gICAgICBkbyB7IGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsgfVxuICAgICAgd2hpbGUgKCFpc19FT0woY2gpICYmICgwICE9PSBjaCkpO1xuICAgIH1cbiAgfVxuXG4gIHdoaWxlICgwICE9PSBjaCkge1xuICAgIHJlYWRMaW5lQnJlYWsoc3RhdGUpO1xuICAgIHN0YXRlLmxpbmVJbmRlbnQgPSAwO1xuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICAgIHdoaWxlICgoIWRldGVjdGVkSW5kZW50IHx8IHN0YXRlLmxpbmVJbmRlbnQgPCB0ZXh0SW5kZW50KSAmJlxuICAgICAgICAgICAoMHgyMC8qIFNwYWNlICovID09PSBjaCkpIHtcbiAgICAgIHN0YXRlLmxpbmVJbmRlbnQrKztcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoIWRldGVjdGVkSW5kZW50ICYmIHN0YXRlLmxpbmVJbmRlbnQgPiB0ZXh0SW5kZW50KSB7XG4gICAgICB0ZXh0SW5kZW50ID0gc3RhdGUubGluZUluZGVudDtcbiAgICB9XG5cbiAgICBpZiAoaXNfRU9MKGNoKSkge1xuICAgICAgZW1wdHlMaW5lcysrO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLy8gRW5kIG9mIHRoZSBzY2FsYXIuXG4gICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCB0ZXh0SW5kZW50KSB7XG5cbiAgICAgIC8vIFBlcmZvcm0gdGhlIGNob21waW5nLlxuICAgICAgaWYgKGNob21waW5nID09PSBDSE9NUElOR19LRUVQKSB7XG4gICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCdcXG4nLCBlbXB0eUxpbmVzKTtcbiAgICAgIH0gZWxzZSBpZiAoY2hvbXBpbmcgPT09IENIT01QSU5HX0NMSVApIHtcbiAgICAgICAgaWYgKGRldGVjdGVkSW5kZW50KSB7IC8vIGkuZS4gb25seSBpZiB0aGUgc2NhbGFyIGlzIG5vdCBlbXB0eS5cbiAgICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gJ1xcbic7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQnJlYWsgdGhpcyBgd2hpbGVgIGN5Y2xlIGFuZCBnbyB0byB0aGUgZnVuY2l0b24ncyBlcGlsb2d1ZS5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIEZvbGRlZCBzdHlsZTogdXNlIGZhbmN5IHJ1bGVzIHRvIGhhbmRsZSBsaW5lIGJyZWFrcy5cbiAgICBpZiAoZm9sZGluZykge1xuXG4gICAgICAvLyBMaW5lcyBzdGFydGluZyB3aXRoIHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMgKG1vcmUtaW5kZW50ZWQgbGluZXMpIGFyZSBub3QgZm9sZGVkLlxuICAgICAgaWYgKGlzX1dISVRFX1NQQUNFKGNoKSkge1xuICAgICAgICBhdE1vcmVJbmRlbnRlZCA9IHRydWU7XG4gICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCdcXG4nLCBlbXB0eUxpbmVzICsgMSk7XG5cbiAgICAgIC8vIEVuZCBvZiBtb3JlLWluZGVudGVkIGJsb2NrLlxuICAgICAgfSBlbHNlIGlmIChhdE1vcmVJbmRlbnRlZCkge1xuICAgICAgICBhdE1vcmVJbmRlbnRlZCA9IGZhbHNlO1xuICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgnXFxuJywgZW1wdHlMaW5lcyArIDEpO1xuXG4gICAgICAvLyBKdXN0IG9uZSBsaW5lIGJyZWFrIC0gcGVyY2VpdmUgYXMgdGhlIHNhbWUgbGluZS5cbiAgICAgIH0gZWxzZSBpZiAoMCA9PT0gZW1wdHlMaW5lcykge1xuICAgICAgICBpZiAoZGV0ZWN0ZWRJbmRlbnQpIHsgLy8gaS5lLiBvbmx5IGlmIHdlIGhhdmUgYWxyZWFkeSByZWFkIHNvbWUgc2NhbGFyIGNvbnRlbnQuXG4gICAgICAgICAgc3RhdGUucmVzdWx0ICs9ICcgJztcbiAgICAgICAgfVxuXG4gICAgICAvLyBTZXZlcmFsIGxpbmUgYnJlYWtzIC0gcGVyY2VpdmUgYXMgZGlmZmVyZW50IGxpbmVzLlxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoJ1xcbicsIGVtcHR5TGluZXMpO1xuICAgICAgfVxuXG4gICAgLy8gTGl0ZXJhbCBzdHlsZToganVzdCBhZGQgZXhhY3QgbnVtYmVyIG9mIGxpbmUgYnJlYWtzIGJldHdlZW4gY29udGVudCBsaW5lcy5cbiAgICB9IGVsc2UgaWYgKGRldGVjdGVkSW5kZW50KSB7XG4gICAgICAvLyBJZiBjdXJyZW50IGxpbmUgaXNuJ3QgdGhlIGZpcnN0IG9uZSAtIGNvdW50IGxpbmUgYnJlYWsgZnJvbSB0aGUgbGFzdCBjb250ZW50IGxpbmUuXG4gICAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgnXFxuJywgZW1wdHlMaW5lcyArIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJbiBjYXNlIG9mIHRoZSBmaXJzdCBjb250ZW50IGxpbmUgLSBjb3VudCBvbmx5IGVtcHR5IGxpbmVzLlxuICAgIH1cblxuICAgIGRldGVjdGVkSW5kZW50ID0gdHJ1ZTtcbiAgICBlbXB0eUxpbmVzID0gMDtcbiAgICBjYXB0dXJlU3RhcnQgPSBzdGF0ZS5wb3NpdGlvbjtcblxuICAgIHdoaWxlICghaXNfRU9MKGNoKSAmJiAoMCAhPT0gY2gpKSB7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgfVxuXG4gICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgc3RhdGUucG9zaXRpb24sIGZhbHNlKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiByZWFkQmxvY2tTZXF1ZW5jZShzdGF0ZSwgbm9kZUluZGVudCkge1xuICB2YXIgX2xpbmUsXG4gICAgICBfdGFnICAgICAgPSBzdGF0ZS50YWcsXG4gICAgICBfYW5jaG9yICAgPSBzdGF0ZS5hbmNob3IsXG4gICAgICBfcmVzdWx0ICAgPSBbXSxcbiAgICAgIGZvbGxvd2luZyxcbiAgICAgIGRldGVjdGVkICA9IGZhbHNlLFxuICAgICAgY2g7XG5cbiAgaWYgKG51bGwgIT09IHN0YXRlLmFuY2hvcikge1xuICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gX3Jlc3VsdDtcbiAgfVxuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgd2hpbGUgKDAgIT09IGNoKSB7XG5cbiAgICBpZiAoMHgyRC8qIC0gKi8gIT09IGNoKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7XG5cbiAgICBpZiAoIWlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBkZXRlY3RlZCA9IHRydWU7XG4gICAgc3RhdGUucG9zaXRpb24rKztcblxuICAgIGlmIChza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSkpIHtcbiAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50IDw9IG5vZGVJbmRlbnQpIHtcbiAgICAgICAgX3Jlc3VsdC5wdXNoKG51bGwpO1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfbGluZSA9IHN0YXRlLmxpbmU7XG4gICAgY29tcG9zZU5vZGUoc3RhdGUsIG5vZGVJbmRlbnQsIENPTlRFWFRfQkxPQ0tfSU4sIGZhbHNlLCB0cnVlKTtcbiAgICBfcmVzdWx0LnB1c2goc3RhdGUucmVzdWx0KTtcbiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7XG5cbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gICAgaWYgKChzdGF0ZS5saW5lID09PSBfbGluZSB8fCBzdGF0ZS5saW5lSW5kZW50ID4gbm9kZUluZGVudCkgJiYgKDAgIT09IGNoKSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2JhZCBpbmRlbnRhdGlvbiBvZiBhIHNlcXVlbmNlIGVudHJ5Jyk7XG4gICAgfSBlbHNlIGlmIChzdGF0ZS5saW5lSW5kZW50IDwgbm9kZUluZGVudCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaWYgKGRldGVjdGVkKSB7XG4gICAgc3RhdGUudGFnID0gX3RhZztcbiAgICBzdGF0ZS5hbmNob3IgPSBfYW5jaG9yO1xuICAgIHN0YXRlLmtpbmQgPSAnc2VxdWVuY2UnO1xuICAgIHN0YXRlLnJlc3VsdCA9IF9yZXN1bHQ7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiByZWFkQmxvY2tNYXBwaW5nKHN0YXRlLCBub2RlSW5kZW50LCBmbG93SW5kZW50KSB7XG4gIHZhciBmb2xsb3dpbmcsXG4gICAgICBhbGxvd0NvbXBhY3QsXG4gICAgICBfbGluZSxcbiAgICAgIF90YWcgICAgICAgICAgPSBzdGF0ZS50YWcsXG4gICAgICBfYW5jaG9yICAgICAgID0gc3RhdGUuYW5jaG9yLFxuICAgICAgX3Jlc3VsdCAgICAgICA9IHt9LFxuICAgICAga2V5VGFnICAgICAgICA9IG51bGwsXG4gICAgICBrZXlOb2RlICAgICAgID0gbnVsbCxcbiAgICAgIHZhbHVlTm9kZSAgICAgPSBudWxsLFxuICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlLFxuICAgICAgZGV0ZWN0ZWQgICAgICA9IGZhbHNlLFxuICAgICAgY2g7XG5cbiAgaWYgKG51bGwgIT09IHN0YXRlLmFuY2hvcikge1xuICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gX3Jlc3VsdDtcbiAgfVxuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgd2hpbGUgKDAgIT09IGNoKSB7XG4gICAgZm9sbG93aW5nID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbiArIDEpO1xuICAgIF9saW5lID0gc3RhdGUubGluZTsgLy8gU2F2ZSB0aGUgY3VycmVudCBsaW5lLlxuXG4gICAgLy9cbiAgICAvLyBFeHBsaWNpdCBub3RhdGlvbiBjYXNlLiBUaGVyZSBhcmUgdHdvIHNlcGFyYXRlIGJsb2NrczpcbiAgICAvLyBmaXJzdCBmb3IgdGhlIGtleSAoZGVub3RlZCBieSBcIj9cIikgYW5kIHNlY29uZCBmb3IgdGhlIHZhbHVlIChkZW5vdGVkIGJ5IFwiOlwiKVxuICAgIC8vXG4gICAgaWYgKCgweDNGLyogPyAqLyA9PT0gY2ggfHwgMHgzQS8qIDogKi8gID09PSBjaCkgJiYgaXNfV1NfT1JfRU9MKGZvbGxvd2luZykpIHtcblxuICAgICAgaWYgKDB4M0YvKiA/ICovID09PSBjaCkge1xuICAgICAgICBpZiAoYXRFeHBsaWNpdEtleSkge1xuICAgICAgICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIGtleVRhZywga2V5Tm9kZSwgbnVsbCk7XG4gICAgICAgICAga2V5VGFnID0ga2V5Tm9kZSA9IHZhbHVlTm9kZSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBkZXRlY3RlZCA9IHRydWU7XG4gICAgICAgIGF0RXhwbGljaXRLZXkgPSB0cnVlO1xuICAgICAgICBhbGxvd0NvbXBhY3QgPSB0cnVlO1xuXG4gICAgICB9IGVsc2UgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgLy8gaS5lLiAweDNBLyogOiAqLyA9PT0gY2hhcmFjdGVyIGFmdGVyIHRoZSBleHBsaWNpdCBrZXkuXG4gICAgICAgIGF0RXhwbGljaXRLZXkgPSBmYWxzZTtcbiAgICAgICAgYWxsb3dDb21wYWN0ID0gdHJ1ZTtcblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2luY29tcGxldGUgZXhwbGljaXQgbWFwcGluZyBwYWlyOyBhIGtleSBub2RlIGlzIG1pc3NlZCcpO1xuICAgICAgfVxuXG4gICAgICBzdGF0ZS5wb3NpdGlvbiArPSAxO1xuICAgICAgY2ggPSBmb2xsb3dpbmc7XG5cbiAgICAvL1xuICAgIC8vIEltcGxpY2l0IG5vdGF0aW9uIGNhc2UuIEZsb3ctc3R5bGUgbm9kZSBhcyB0aGUga2V5IGZpcnN0LCB0aGVuIFwiOlwiLCBhbmQgdGhlIHZhbHVlLlxuICAgIC8vXG4gICAgfSBlbHNlIGlmIChjb21wb3NlTm9kZShzdGF0ZSwgZmxvd0luZGVudCwgQ09OVEVYVF9GTE9XX09VVCwgZmFsc2UsIHRydWUpKSB7XG5cbiAgICAgIGlmIChzdGF0ZS5saW5lID09PSBfbGluZSkge1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gICAgICAgIHdoaWxlIChpc19XSElURV9TUEFDRShjaCkpIHtcbiAgICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoMHgzQS8qIDogKi8gPT09IGNoKSB7XG4gICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuXG4gICAgICAgICAgaWYgKCFpc19XU19PUl9FT0woY2gpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciBpcyBleHBlY3RlZCBhZnRlciB0aGUga2V5LXZhbHVlIHNlcGFyYXRvciB3aXRoaW4gYSBibG9jayBtYXBwaW5nJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIGtleVRhZywga2V5Tm9kZSwgbnVsbCk7XG4gICAgICAgICAgICBrZXlUYWcgPSBrZXlOb2RlID0gdmFsdWVOb2RlID0gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkZXRlY3RlZCA9IHRydWU7XG4gICAgICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlO1xuICAgICAgICAgIGFsbG93Q29tcGFjdCA9IGZhbHNlO1xuICAgICAgICAgIGtleVRhZyA9IHN0YXRlLnRhZztcbiAgICAgICAgICBrZXlOb2RlID0gc3RhdGUucmVzdWx0O1xuXG4gICAgICAgIH0gZWxzZSBpZiAoZGV0ZWN0ZWQpIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnY2FuIG5vdCByZWFkIGFuIGltcGxpY2l0IG1hcHBpbmcgcGFpcjsgYSBjb2xvbiBpcyBtaXNzZWQnKTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlLnRhZyA9IF90YWc7XG4gICAgICAgICAgc3RhdGUuYW5jaG9yID0gX2FuY2hvcjtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gS2VlcCB0aGUgcmVzdWx0IG9mIGBjb21wb3NlTm9kZWAuXG4gICAgICAgIH1cblxuICAgICAgfSBlbHNlIGlmIChkZXRlY3RlZCkge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnY2FuIG5vdCByZWFkIGEgYmxvY2sgbWFwcGluZyBlbnRyeTsgYSBtdWx0aWxpbmUga2V5IG1heSBub3QgYmUgYW4gaW1wbGljaXQga2V5Jyk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXRlLnRhZyA9IF90YWc7XG4gICAgICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7XG4gICAgICAgIHJldHVybiB0cnVlOyAvLyBLZWVwIHRoZSByZXN1bHQgb2YgYGNvbXBvc2VOb2RlYC5cbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICBicmVhazsgLy8gUmVhZGluZyBpcyBkb25lLiBHbyB0byB0aGUgZXBpbG9ndWUuXG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBDb21tb24gcmVhZGluZyBjb2RlIGZvciBib3RoIGV4cGxpY2l0IGFuZCBpbXBsaWNpdCBub3RhdGlvbnMuXG4gICAgLy9cbiAgICBpZiAoc3RhdGUubGluZSA9PT0gX2xpbmUgfHwgc3RhdGUubGluZUluZGVudCA+IG5vZGVJbmRlbnQpIHtcbiAgICAgIGlmIChjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9CTE9DS19PVVQsIHRydWUsIGFsbG93Q29tcGFjdCkpIHtcbiAgICAgICAgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgICBrZXlOb2RlID0gc3RhdGUucmVzdWx0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbHVlTm9kZSA9IHN0YXRlLnJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwga2V5VGFnLCBrZXlOb2RlLCB2YWx1ZU5vZGUpO1xuICAgICAgICBrZXlUYWcgPSBrZXlOb2RlID0gdmFsdWVOb2RlID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoc3RhdGUubGluZUluZGVudCA+IG5vZGVJbmRlbnQgJiYgKDAgIT09IGNoKSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2JhZCBpbmRlbnRhdGlvbiBvZiBhIG1hcHBpbmcgZW50cnknKTtcbiAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCBub2RlSW5kZW50KSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvL1xuICAvLyBFcGlsb2d1ZS5cbiAgLy9cblxuICAvLyBTcGVjaWFsIGNhc2U6IGxhc3QgbWFwcGluZydzIG5vZGUgY29udGFpbnMgb25seSB0aGUga2V5IGluIGV4cGxpY2l0IG5vdGF0aW9uLlxuICBpZiAoYXRFeHBsaWNpdEtleSkge1xuICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIGtleVRhZywga2V5Tm9kZSwgbnVsbCk7XG4gIH1cblxuICAvLyBFeHBvc2UgdGhlIHJlc3VsdGluZyBtYXBwaW5nLlxuICBpZiAoZGV0ZWN0ZWQpIHtcbiAgICBzdGF0ZS50YWcgPSBfdGFnO1xuICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7XG4gICAgc3RhdGUua2luZCA9ICdtYXBwaW5nJztcbiAgICBzdGF0ZS5yZXN1bHQgPSBfcmVzdWx0O1xuICB9XG5cbiAgcmV0dXJuIGRldGVjdGVkO1xufVxuXG5mdW5jdGlvbiByZWFkVGFnUHJvcGVydHkoc3RhdGUpIHtcbiAgdmFyIF9wb3NpdGlvbixcbiAgICAgIGlzVmVyYmF0aW0gPSBmYWxzZSxcbiAgICAgIGlzTmFtZWQgICAgPSBmYWxzZSxcbiAgICAgIHRhZ0hhbmRsZSxcbiAgICAgIHRhZ05hbWUsXG4gICAgICBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmICgweDIxLyogISAqLyAhPT0gY2gpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAobnVsbCAhPT0gc3RhdGUudGFnKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2R1cGxpY2F0aW9uIG9mIGEgdGFnIHByb3BlcnR5Jyk7XG4gIH1cblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKDB4M0MvKiA8ICovID09PSBjaCkge1xuICAgIGlzVmVyYmF0aW0gPSB0cnVlO1xuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcblxuICB9IGVsc2UgaWYgKDB4MjEvKiAhICovID09PSBjaCkge1xuICAgIGlzTmFtZWQgPSB0cnVlO1xuICAgIHRhZ0hhbmRsZSA9ICchISc7XG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuXG4gIH0gZWxzZSB7XG4gICAgdGFnSGFuZGxlID0gJyEnO1xuICB9XG5cbiAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247XG5cbiAgaWYgKGlzVmVyYmF0aW0pIHtcbiAgICBkbyB7IGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsgfVxuICAgIHdoaWxlICgwICE9PSBjaCAmJiAweDNFLyogPiAqLyAhPT0gY2gpO1xuXG4gICAgaWYgKHN0YXRlLnBvc2l0aW9uIDwgc3RhdGUubGVuZ3RoKSB7XG4gICAgICB0YWdOYW1lID0gc3RhdGUuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZS5wb3NpdGlvbik7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIHZlcmJhdGltIHRhZycpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB3aGlsZSAoMCAhPT0gY2ggJiYgIWlzX1dTX09SX0VPTChjaCkpIHtcblxuICAgICAgaWYgKDB4MjEvKiAhICovID09PSBjaCkge1xuICAgICAgICBpZiAoIWlzTmFtZWQpIHtcbiAgICAgICAgICB0YWdIYW5kbGUgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24gLSAxLCBzdGF0ZS5wb3NpdGlvbiArIDEpO1xuXG4gICAgICAgICAgaWYgKCFQQVRURVJOX1RBR19IQU5ETEUudGVzdCh0YWdIYW5kbGUpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnbmFtZWQgdGFnIGhhbmRsZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnMnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpc05hbWVkID0gdHJ1ZTtcbiAgICAgICAgICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbiArIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3RhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZXhjbGFtYXRpb24gbWFya3MnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgfVxuXG4gICAgdGFnTmFtZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pO1xuXG4gICAgaWYgKFBBVFRFUk5fRkxPV19JTkRJQ0FUT1JTLnRlc3QodGFnTmFtZSkpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd0YWcgc3VmZml4IGNhbm5vdCBjb250YWluIGZsb3cgaW5kaWNhdG9yIGNoYXJhY3RlcnMnKTtcbiAgICB9XG4gIH1cblxuICBpZiAodGFnTmFtZSAmJiAhUEFUVEVSTl9UQUdfVVJJLnRlc3QodGFnTmFtZSkpIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAndGFnIG5hbWUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzOiAnICsgdGFnTmFtZSk7XG4gIH1cblxuICBpZiAoaXNWZXJiYXRpbSkge1xuICAgIHN0YXRlLnRhZyA9IHRhZ05hbWU7XG5cbiAgfSBlbHNlIGlmIChfaGFzT3duUHJvcGVydHkuY2FsbChzdGF0ZS50YWdNYXAsIHRhZ0hhbmRsZSkpIHtcbiAgICBzdGF0ZS50YWcgPSBzdGF0ZS50YWdNYXBbdGFnSGFuZGxlXSArIHRhZ05hbWU7XG5cbiAgfSBlbHNlIGlmICgnIScgPT09IHRhZ0hhbmRsZSkge1xuICAgIHN0YXRlLnRhZyA9ICchJyArIHRhZ05hbWU7XG5cbiAgfSBlbHNlIGlmICgnISEnID09PSB0YWdIYW5kbGUpIHtcbiAgICBzdGF0ZS50YWcgPSAndGFnOnlhbWwub3JnLDIwMDI6JyArIHRhZ05hbWU7XG5cbiAgfSBlbHNlIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5kZWNsYXJlZCB0YWcgaGFuZGxlIFwiJyArIHRhZ0hhbmRsZSArICdcIicpO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHJlYWRBbmNob3JQcm9wZXJ0eShzdGF0ZSkge1xuICB2YXIgX3Bvc2l0aW9uLFxuICAgICAgY2g7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoMHgyNi8qICYgKi8gIT09IGNoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKG51bGwgIT09IHN0YXRlLmFuY2hvcikge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICdkdXBsaWNhdGlvbiBvZiBhbiBhbmNob3IgcHJvcGVydHknKTtcbiAgfVxuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247XG5cbiAgd2hpbGUgKDAgIT09IGNoICYmICFpc19XU19PUl9FT0woY2gpICYmICFpc19GTE9XX0lORElDQVRPUihjaCkpIHtcbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gIH1cblxuICBpZiAoc3RhdGUucG9zaXRpb24gPT09IF9wb3NpdGlvbikge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICduYW1lIG9mIGFuIGFuY2hvciBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyJyk7XG4gIH1cblxuICBzdGF0ZS5hbmNob3IgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlLnBvc2l0aW9uKTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHJlYWRBbGlhcyhzdGF0ZSkge1xuICB2YXIgX3Bvc2l0aW9uLCBhbGlhcyxcbiAgICAgIGxlbiA9IHN0YXRlLmxlbmd0aCxcbiAgICAgIGlucHV0ID0gc3RhdGUuaW5wdXQsXG4gICAgICBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmICgweDJBLyogKiAqLyAhPT0gY2gpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gIHdoaWxlICgwICE9PSBjaCAmJiAhaXNfV1NfT1JfRU9MKGNoKSAmJiAhaXNfRkxPV19JTkRJQ0FUT1IoY2gpKSB7XG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICB9XG5cbiAgaWYgKHN0YXRlLnBvc2l0aW9uID09PSBfcG9zaXRpb24pIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAnbmFtZSBvZiBhbiBhbGlhcyBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyJyk7XG4gIH1cblxuICBhbGlhcyA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmICghc3RhdGUuYW5jaG9yTWFwLmhhc093blByb3BlcnR5KGFsaWFzKSkge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmlkZW50aWZpZWQgYWxpYXMgXCInICsgYWxpYXMgKyAnXCInKTtcbiAgfVxuXG4gIHN0YXRlLnJlc3VsdCA9IHN0YXRlLmFuY2hvck1hcFthbGlhc107XG4gIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNvbXBvc2VOb2RlKHN0YXRlLCBwYXJlbnRJbmRlbnQsIG5vZGVDb250ZXh0LCBhbGxvd1RvU2VlaywgYWxsb3dDb21wYWN0KSB7XG4gIHZhciBhbGxvd0Jsb2NrU3R5bGVzLFxuICAgICAgYWxsb3dCbG9ja1NjYWxhcnMsXG4gICAgICBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMsXG4gICAgICBpbmRlbnRTdGF0dXMgPSAxLCAvLyAxOiB0aGlzPnBhcmVudCwgMDogdGhpcz1wYXJlbnQsIC0xOiB0aGlzPHBhcmVudFxuICAgICAgYXROZXdMaW5lICA9IGZhbHNlLFxuICAgICAgaGFzQ29udGVudCA9IGZhbHNlLFxuICAgICAgdHlwZUluZGV4LFxuICAgICAgdHlwZVF1YW50aXR5LFxuICAgICAgdHlwZSxcbiAgICAgIGZsb3dJbmRlbnQsXG4gICAgICBibG9ja0luZGVudCxcbiAgICAgIF9yZXN1bHQ7XG5cbiAgc3RhdGUudGFnICAgID0gbnVsbDtcbiAgc3RhdGUuYW5jaG9yID0gbnVsbDtcbiAgc3RhdGUua2luZCAgID0gbnVsbDtcbiAgc3RhdGUucmVzdWx0ID0gbnVsbDtcblxuICBhbGxvd0Jsb2NrU3R5bGVzID0gYWxsb3dCbG9ja1NjYWxhcnMgPSBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgPVxuICAgIENPTlRFWFRfQkxPQ0tfT1VUID09PSBub2RlQ29udGV4dCB8fFxuICAgIENPTlRFWFRfQkxPQ0tfSU4gID09PSBub2RlQ29udGV4dDtcblxuICBpZiAoYWxsb3dUb1NlZWspIHtcbiAgICBpZiAoc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpKSB7XG4gICAgICBhdE5ld0xpbmUgPSB0cnVlO1xuXG4gICAgICBpZiAoc3RhdGUubGluZUluZGVudCA+IHBhcmVudEluZGVudCkge1xuICAgICAgICBpbmRlbnRTdGF0dXMgPSAxO1xuICAgICAgfSBlbHNlIGlmIChzdGF0ZS5saW5lSW5kZW50ID09PSBwYXJlbnRJbmRlbnQpIHtcbiAgICAgICAgaW5kZW50U3RhdHVzID0gMDtcbiAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA8IHBhcmVudEluZGVudCkge1xuICAgICAgICBpbmRlbnRTdGF0dXMgPSAtMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoMSA9PT0gaW5kZW50U3RhdHVzKSB7XG4gICAgd2hpbGUgKHJlYWRUYWdQcm9wZXJ0eShzdGF0ZSkgfHwgcmVhZEFuY2hvclByb3BlcnR5KHN0YXRlKSkge1xuICAgICAgaWYgKHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKSkge1xuICAgICAgICBhdE5ld0xpbmUgPSB0cnVlO1xuICAgICAgICBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgPSBhbGxvd0Jsb2NrU3R5bGVzO1xuXG4gICAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID4gcGFyZW50SW5kZW50KSB7XG4gICAgICAgICAgaW5kZW50U3RhdHVzID0gMTtcbiAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS5saW5lSW5kZW50ID09PSBwYXJlbnRJbmRlbnQpIHtcbiAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAwO1xuICAgICAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCBwYXJlbnRJbmRlbnQpIHtcbiAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAtMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWxsb3dCbG9ja0NvbGxlY3Rpb25zID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGFsbG93QmxvY2tDb2xsZWN0aW9ucykge1xuICAgIGFsbG93QmxvY2tDb2xsZWN0aW9ucyA9IGF0TmV3TGluZSB8fCBhbGxvd0NvbXBhY3Q7XG4gIH1cblxuICBpZiAoMSA9PT0gaW5kZW50U3RhdHVzIHx8IENPTlRFWFRfQkxPQ0tfT1VUID09PSBub2RlQ29udGV4dCkge1xuICAgIGlmIChDT05URVhUX0ZMT1dfSU4gPT09IG5vZGVDb250ZXh0IHx8IENPTlRFWFRfRkxPV19PVVQgPT09IG5vZGVDb250ZXh0KSB7XG4gICAgICBmbG93SW5kZW50ID0gcGFyZW50SW5kZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBmbG93SW5kZW50ID0gcGFyZW50SW5kZW50ICsgMTtcbiAgICB9XG5cbiAgICBibG9ja0luZGVudCA9IHN0YXRlLnBvc2l0aW9uIC0gc3RhdGUubGluZVN0YXJ0O1xuXG4gICAgaWYgKDEgPT09IGluZGVudFN0YXR1cykge1xuICAgICAgaWYgKGFsbG93QmxvY2tDb2xsZWN0aW9ucyAmJlxuICAgICAgICAgIChyZWFkQmxvY2tTZXF1ZW5jZShzdGF0ZSwgYmxvY2tJbmRlbnQpIHx8XG4gICAgICAgICAgIHJlYWRCbG9ja01hcHBpbmcoc3RhdGUsIGJsb2NrSW5kZW50LCBmbG93SW5kZW50KSkgfHxcbiAgICAgICAgICByZWFkRmxvd0NvbGxlY3Rpb24oc3RhdGUsIGZsb3dJbmRlbnQpKSB7XG4gICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKChhbGxvd0Jsb2NrU2NhbGFycyAmJiByZWFkQmxvY2tTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpKSB8fFxuICAgICAgICAgICAgcmVhZFNpbmdsZVF1b3RlZFNjYWxhcihzdGF0ZSwgZmxvd0luZGVudCkgfHxcbiAgICAgICAgICAgIHJlYWREb3VibGVRdW90ZWRTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpKSB7XG4gICAgICAgICAgaGFzQ29udGVudCA9IHRydWU7XG5cbiAgICAgICAgfSBlbHNlIGlmIChyZWFkQWxpYXMoc3RhdGUpKSB7XG4gICAgICAgICAgaGFzQ29udGVudCA9IHRydWU7XG5cbiAgICAgICAgICBpZiAobnVsbCAhPT0gc3RhdGUudGFnIHx8IG51bGwgIT09IHN0YXRlLmFuY2hvcikge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2FsaWFzIG5vZGUgc2hvdWxkIG5vdCBoYXZlIGFueSBwcm9wZXJ0aWVzJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH0gZWxzZSBpZiAocmVhZFBsYWluU2NhbGFyKHN0YXRlLCBmbG93SW5kZW50LCBDT05URVhUX0ZMT1dfSU4gPT09IG5vZGVDb250ZXh0KSkge1xuICAgICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlO1xuXG4gICAgICAgICAgaWYgKG51bGwgPT09IHN0YXRlLnRhZykge1xuICAgICAgICAgICAgc3RhdGUudGFnID0gJz8nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChudWxsICE9PSBzdGF0ZS5hbmNob3IpIHtcbiAgICAgICAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IHN0YXRlLnJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoMCA9PT0gaW5kZW50U3RhdHVzKSB7XG4gICAgICAvLyBTcGVjaWFsIGNhc2U6IGJsb2NrIHNlcXVlbmNlcyBhcmUgYWxsb3dlZCB0byBoYXZlIHNhbWUgaW5kZW50YXRpb24gbGV2ZWwgYXMgdGhlIHBhcmVudC5cbiAgICAgIC8vIGh0dHA6Ly93d3cueWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI2lkMjc5OTc4NFxuICAgICAgaGFzQ29udGVudCA9IGFsbG93QmxvY2tDb2xsZWN0aW9ucyAmJiByZWFkQmxvY2tTZXF1ZW5jZShzdGF0ZSwgYmxvY2tJbmRlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChudWxsICE9PSBzdGF0ZS50YWcgJiYgJyEnICE9PSBzdGF0ZS50YWcpIHtcbiAgICBpZiAoJz8nID09PSBzdGF0ZS50YWcpIHtcbiAgICAgIGZvciAodHlwZUluZGV4ID0gMCwgdHlwZVF1YW50aXR5ID0gc3RhdGUuaW1wbGljaXRUeXBlcy5sZW5ndGg7XG4gICAgICAgICAgIHR5cGVJbmRleCA8IHR5cGVRdWFudGl0eTtcbiAgICAgICAgICAgdHlwZUluZGV4ICs9IDEpIHtcbiAgICAgICAgdHlwZSA9IHN0YXRlLmltcGxpY2l0VHlwZXNbdHlwZUluZGV4XTtcblxuICAgICAgICAvLyBJbXBsaWNpdCByZXNvbHZpbmcgaXMgbm90IGFsbG93ZWQgZm9yIG5vbi1zY2FsYXIgdHlwZXMsIGFuZCAnPydcbiAgICAgICAgLy8gbm9uLXNwZWNpZmljIHRhZyBpcyBvbmx5IGFzc2lnbmVkIHRvIHBsYWluIHNjYWxhcnMuIFNvLCBpdCBpc24ndFxuICAgICAgICAvLyBuZWVkZWQgdG8gY2hlY2sgZm9yICdraW5kJyBjb25mb3JtaXR5LlxuXG4gICAgICAgIGlmICh0eXBlLnJlc29sdmUoc3RhdGUucmVzdWx0KSkgeyAvLyBgc3RhdGUucmVzdWx0YCB1cGRhdGVkIGluIHJlc29sdmVyIGlmIG1hdGNoZWRcbiAgICAgICAgICBzdGF0ZS5yZXN1bHQgPSB0eXBlLmNvbnN0cnVjdChzdGF0ZS5yZXN1bHQpO1xuICAgICAgICAgIHN0YXRlLnRhZyA9IHR5cGUudGFnO1xuICAgICAgICAgIGlmIChudWxsICE9PSBzdGF0ZS5hbmNob3IpIHtcbiAgICAgICAgICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gc3RhdGUucmVzdWx0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoX2hhc093blByb3BlcnR5LmNhbGwoc3RhdGUudHlwZU1hcCwgc3RhdGUudGFnKSkge1xuICAgICAgdHlwZSA9IHN0YXRlLnR5cGVNYXBbc3RhdGUudGFnXTtcblxuICAgICAgaWYgKG51bGwgIT09IHN0YXRlLnJlc3VsdCAmJiB0eXBlLmtpbmQgIT09IHN0YXRlLmtpbmQpIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuYWNjZXB0YWJsZSBub2RlIGtpbmQgZm9yICE8JyArIHN0YXRlLnRhZyArICc+IHRhZzsgaXQgc2hvdWxkIGJlIFwiJyArIHR5cGUua2luZCArICdcIiwgbm90IFwiJyArIHN0YXRlLmtpbmQgKyAnXCInKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0eXBlLnJlc29sdmUoc3RhdGUucmVzdWx0KSkgeyAvLyBgc3RhdGUucmVzdWx0YCB1cGRhdGVkIGluIHJlc29sdmVyIGlmIG1hdGNoZWRcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2Nhbm5vdCByZXNvbHZlIGEgbm9kZSB3aXRoICE8JyArIHN0YXRlLnRhZyArICc+IGV4cGxpY2l0IHRhZycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdGUucmVzdWx0ID0gdHlwZS5jb25zdHJ1Y3Qoc3RhdGUucmVzdWx0KTtcbiAgICAgICAgaWYgKG51bGwgIT09IHN0YXRlLmFuY2hvcikge1xuICAgICAgICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gc3RhdGUucmVzdWx0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93V2FybmluZyhzdGF0ZSwgJ3Vua25vd24gdGFnICE8JyArIHN0YXRlLnRhZyArICc+Jyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGwgIT09IHN0YXRlLnRhZyB8fCBudWxsICE9PSBzdGF0ZS5hbmNob3IgfHwgaGFzQ29udGVudDtcbn1cblxuZnVuY3Rpb24gcmVhZERvY3VtZW50KHN0YXRlKSB7XG4gIHZhciBkb2N1bWVudFN0YXJ0ID0gc3RhdGUucG9zaXRpb24sXG4gICAgICBfcG9zaXRpb24sXG4gICAgICBkaXJlY3RpdmVOYW1lLFxuICAgICAgZGlyZWN0aXZlQXJncyxcbiAgICAgIGhhc0RpcmVjdGl2ZXMgPSBmYWxzZSxcbiAgICAgIGNoO1xuXG4gIHN0YXRlLnZlcnNpb24gPSBudWxsO1xuICBzdGF0ZS5jaGVja0xpbmVCcmVha3MgPSBzdGF0ZS5sZWdhY3k7XG4gIHN0YXRlLnRhZ01hcCA9IHt9O1xuICBzdGF0ZS5hbmNob3JNYXAgPSB7fTtcblxuICB3aGlsZSAoMCAhPT0gKGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikpKSB7XG4gICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID4gMCB8fCAweDI1LyogJSAqLyAhPT0gY2gpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGhhc0RpcmVjdGl2ZXMgPSB0cnVlO1xuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjtcblxuICAgIHdoaWxlICgwICE9PSBjaCAmJiAhaXNfV1NfT1JfRU9MKGNoKSkge1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgIH1cblxuICAgIGRpcmVjdGl2ZU5hbWUgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlLnBvc2l0aW9uKTtcbiAgICBkaXJlY3RpdmVBcmdzID0gW107XG5cbiAgICBpZiAoZGlyZWN0aXZlTmFtZS5sZW5ndGggPCAxKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnZGlyZWN0aXZlIG5hbWUgbXVzdCBub3QgYmUgbGVzcyB0aGFuIG9uZSBjaGFyYWN0ZXIgaW4gbGVuZ3RoJyk7XG4gICAgfVxuXG4gICAgd2hpbGUgKDAgIT09IGNoKSB7XG4gICAgICB3aGlsZSAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgIH1cblxuICAgICAgaWYgKDB4MjMvKiAjICovID09PSBjaCkge1xuICAgICAgICBkbyB7IGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsgfVxuICAgICAgICB3aGlsZSAoMCAhPT0gY2ggJiYgIWlzX0VPTChjaCkpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gICAgICB3aGlsZSAoMCAhPT0gY2ggJiYgIWlzX1dTX09SX0VPTChjaCkpIHtcbiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgfVxuXG4gICAgICBkaXJlY3RpdmVBcmdzLnB1c2goc3RhdGUuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZS5wb3NpdGlvbikpO1xuICAgIH1cblxuICAgIGlmICgwICE9PSBjaCkge1xuICAgICAgcmVhZExpbmVCcmVhayhzdGF0ZSk7XG4gICAgfVxuXG4gICAgaWYgKF9oYXNPd25Qcm9wZXJ0eS5jYWxsKGRpcmVjdGl2ZUhhbmRsZXJzLCBkaXJlY3RpdmVOYW1lKSkge1xuICAgICAgZGlyZWN0aXZlSGFuZGxlcnNbZGlyZWN0aXZlTmFtZV0oc3RhdGUsIGRpcmVjdGl2ZU5hbWUsIGRpcmVjdGl2ZUFyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvd1dhcm5pbmcoc3RhdGUsICd1bmtub3duIGRvY3VtZW50IGRpcmVjdGl2ZSBcIicgKyBkaXJlY3RpdmVOYW1lICsgJ1wiJyk7XG4gICAgfVxuICB9XG5cbiAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuXG4gIGlmICgwID09PSBzdGF0ZS5saW5lSW5kZW50ICYmXG4gICAgICAweDJELyogLSAqLyA9PT0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikgJiZcbiAgICAgIDB4MkQvKiAtICovID09PSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSkgJiZcbiAgICAgIDB4MkQvKiAtICovID09PSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMikpIHtcbiAgICBzdGF0ZS5wb3NpdGlvbiArPSAzO1xuICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcblxuICB9IGVsc2UgaWYgKGhhc0RpcmVjdGl2ZXMpIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAnZGlyZWN0aXZlcyBlbmQgbWFyayBpcyBleHBlY3RlZCcpO1xuICB9XG5cbiAgY29tcG9zZU5vZGUoc3RhdGUsIHN0YXRlLmxpbmVJbmRlbnQgLSAxLCBDT05URVhUX0JMT0NLX09VVCwgZmFsc2UsIHRydWUpO1xuICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7XG5cbiAgaWYgKHN0YXRlLmNoZWNrTGluZUJyZWFrcyAmJlxuICAgICAgUEFUVEVSTl9OT05fQVNDSUlfTElORV9CUkVBS1MudGVzdChzdGF0ZS5pbnB1dC5zbGljZShkb2N1bWVudFN0YXJ0LCBzdGF0ZS5wb3NpdGlvbikpKSB7XG4gICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAnbm9uLUFTQ0lJIGxpbmUgYnJlYWtzIGFyZSBpbnRlcnByZXRlZCBhcyBjb250ZW50Jyk7XG4gIH1cblxuICBzdGF0ZS5kb2N1bWVudHMucHVzaChzdGF0ZS5yZXN1bHQpO1xuXG4gIGlmIChzdGF0ZS5wb3NpdGlvbiA9PT0gc3RhdGUubGluZVN0YXJ0ICYmIHRlc3REb2N1bWVudFNlcGFyYXRvcihzdGF0ZSkpIHtcblxuICAgIGlmICgweDJFLyogLiAqLyA9PT0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikpIHtcbiAgICAgIHN0YXRlLnBvc2l0aW9uICs9IDM7XG4gICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChzdGF0ZS5wb3NpdGlvbiA8IChzdGF0ZS5sZW5ndGggLSAxKSkge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICdlbmQgb2YgdGhlIHN0cmVhbSBvciBhIGRvY3VtZW50IHNlcGFyYXRvciBpcyBleHBlY3RlZCcpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybjtcbiAgfVxufVxuXG5cbmZ1bmN0aW9uIGxvYWREb2N1bWVudHMoaW5wdXQsIG9wdGlvbnMpIHtcbiAgaW5wdXQgPSBTdHJpbmcoaW5wdXQpO1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICBpZiAoaW5wdXQubGVuZ3RoICE9PSAwKSB7XG5cbiAgICAvLyBBZGQgdGFpbGluZyBgXFxuYCBpZiBub3QgZXhpc3RzXG4gICAgaWYgKDB4MEEvKiBMRiAqLyAhPT0gaW5wdXQuY2hhckNvZGVBdChpbnB1dC5sZW5ndGggLSAxKSAmJlxuICAgICAgICAweDBELyogQ1IgKi8gIT09IGlucHV0LmNoYXJDb2RlQXQoaW5wdXQubGVuZ3RoIC0gMSkpIHtcbiAgICAgIGlucHV0ICs9ICdcXG4nO1xuICAgIH1cblxuICAgIC8vIFN0cmlwIEJPTVxuICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KDApID09PSAweEZFRkYpIHtcbiAgICAgIGlucHV0ID0gaW5wdXQuc2xpY2UoMSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHN0YXRlID0gbmV3IFN0YXRlKGlucHV0LCBvcHRpb25zKTtcblxuICBpZiAoUEFUVEVSTl9OT05fUFJJTlRBQkxFLnRlc3Qoc3RhdGUuaW5wdXQpKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3RoZSBzdHJlYW0gY29udGFpbnMgbm9uLXByaW50YWJsZSBjaGFyYWN0ZXJzJyk7XG4gIH1cblxuICAvLyBVc2UgMCBhcyBzdHJpbmcgdGVybWluYXRvci4gVGhhdCBzaWduaWZpY2FudGx5IHNpbXBsaWZpZXMgYm91bmRzIGNoZWNrLlxuICBzdGF0ZS5pbnB1dCArPSAnXFwwJztcblxuICB3aGlsZSAoMHgyMC8qIFNwYWNlICovID09PSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkge1xuICAgIHN0YXRlLmxpbmVJbmRlbnQgKz0gMTtcbiAgICBzdGF0ZS5wb3NpdGlvbiArPSAxO1xuICB9XG5cbiAgd2hpbGUgKHN0YXRlLnBvc2l0aW9uIDwgKHN0YXRlLmxlbmd0aCAtIDEpKSB7XG4gICAgcmVhZERvY3VtZW50KHN0YXRlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZS5kb2N1bWVudHM7XG59XG5cblxuZnVuY3Rpb24gbG9hZEFsbChpbnB1dCwgaXRlcmF0b3IsIG9wdGlvbnMpIHtcbiAgdmFyIGRvY3VtZW50cyA9IGxvYWREb2N1bWVudHMoaW5wdXQsIG9wdGlvbnMpLCBpbmRleCwgbGVuZ3RoO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBkb2N1bWVudHMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIGl0ZXJhdG9yKGRvY3VtZW50c1tpbmRleF0pO1xuICB9XG59XG5cblxuZnVuY3Rpb24gbG9hZChpbnB1dCwgb3B0aW9ucykge1xuICB2YXIgZG9jdW1lbnRzID0gbG9hZERvY3VtZW50cyhpbnB1dCwgb3B0aW9ucyksIGluZGV4LCBsZW5ndGg7XG5cbiAgaWYgKDAgPT09IGRvY3VtZW50cy5sZW5ndGgpIHtcbiAgICAvKmVzbGludC1kaXNhYmxlIG5vLXVuZGVmaW5lZCovXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSBlbHNlIGlmICgxID09PSBkb2N1bWVudHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50c1swXTtcbiAgfVxuICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignZXhwZWN0ZWQgYSBzaW5nbGUgZG9jdW1lbnQgaW4gdGhlIHN0cmVhbSwgYnV0IGZvdW5kIG1vcmUnKTtcbn1cblxuXG5mdW5jdGlvbiBzYWZlTG9hZEFsbChpbnB1dCwgb3V0cHV0LCBvcHRpb25zKSB7XG4gIGxvYWRBbGwoaW5wdXQsIG91dHB1dCwgY29tbW9uLmV4dGVuZCh7IHNjaGVtYTogREVGQVVMVF9TQUZFX1NDSEVNQSB9LCBvcHRpb25zKSk7XG59XG5cblxuZnVuY3Rpb24gc2FmZUxvYWQoaW5wdXQsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGxvYWQoaW5wdXQsIGNvbW1vbi5leHRlbmQoeyBzY2hlbWE6IERFRkFVTFRfU0FGRV9TQ0hFTUEgfSwgb3B0aW9ucykpO1xufVxuXG5cbm1vZHVsZS5leHBvcnRzLmxvYWRBbGwgICAgID0gbG9hZEFsbDtcbm1vZHVsZS5leHBvcnRzLmxvYWQgICAgICAgID0gbG9hZDtcbm1vZHVsZS5leHBvcnRzLnNhZmVMb2FkQWxsID0gc2FmZUxvYWRBbGw7XG5tb2R1bGUuZXhwb3J0cy5zYWZlTG9hZCAgICA9IHNhZmVMb2FkO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5cbnZhciBjb21tb24gPSByZXF1aXJlKCcuL2NvbW1vbicpO1xuXG5cbmZ1bmN0aW9uIE1hcmsobmFtZSwgYnVmZmVyLCBwb3NpdGlvbiwgbGluZSwgY29sdW1uKSB7XG4gIHRoaXMubmFtZSAgICAgPSBuYW1lO1xuICB0aGlzLmJ1ZmZlciAgID0gYnVmZmVyO1xuICB0aGlzLnBvc2l0aW9uID0gcG9zaXRpb247XG4gIHRoaXMubGluZSAgICAgPSBsaW5lO1xuICB0aGlzLmNvbHVtbiAgID0gY29sdW1uO1xufVxuXG5cbk1hcmsucHJvdG90eXBlLmdldFNuaXBwZXQgPSBmdW5jdGlvbiBnZXRTbmlwcGV0KGluZGVudCwgbWF4TGVuZ3RoKSB7XG4gIHZhciBoZWFkLCBzdGFydCwgdGFpbCwgZW5kLCBzbmlwcGV0O1xuXG4gIGlmICghdGhpcy5idWZmZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGluZGVudCA9IGluZGVudCB8fCA0O1xuICBtYXhMZW5ndGggPSBtYXhMZW5ndGggfHwgNzU7XG5cbiAgaGVhZCA9ICcnO1xuICBzdGFydCA9IHRoaXMucG9zaXRpb247XG5cbiAgd2hpbGUgKHN0YXJ0ID4gMCAmJiAtMSA9PT0gJ1xceDAwXFxyXFxuXFx4ODVcXHUyMDI4XFx1MjAyOScuaW5kZXhPZih0aGlzLmJ1ZmZlci5jaGFyQXQoc3RhcnQgLSAxKSkpIHtcbiAgICBzdGFydCAtPSAxO1xuICAgIGlmICh0aGlzLnBvc2l0aW9uIC0gc3RhcnQgPiAobWF4TGVuZ3RoIC8gMiAtIDEpKSB7XG4gICAgICBoZWFkID0gJyAuLi4gJztcbiAgICAgIHN0YXJ0ICs9IDU7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICB0YWlsID0gJyc7XG4gIGVuZCA9IHRoaXMucG9zaXRpb247XG5cbiAgd2hpbGUgKGVuZCA8IHRoaXMuYnVmZmVyLmxlbmd0aCAmJiAtMSA9PT0gJ1xceDAwXFxyXFxuXFx4ODVcXHUyMDI4XFx1MjAyOScuaW5kZXhPZih0aGlzLmJ1ZmZlci5jaGFyQXQoZW5kKSkpIHtcbiAgICBlbmQgKz0gMTtcbiAgICBpZiAoZW5kIC0gdGhpcy5wb3NpdGlvbiA+IChtYXhMZW5ndGggLyAyIC0gMSkpIHtcbiAgICAgIHRhaWwgPSAnIC4uLiAnO1xuICAgICAgZW5kIC09IDU7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBzbmlwcGV0ID0gdGhpcy5idWZmZXIuc2xpY2Uoc3RhcnQsIGVuZCk7XG5cbiAgcmV0dXJuIGNvbW1vbi5yZXBlYXQoJyAnLCBpbmRlbnQpICsgaGVhZCArIHNuaXBwZXQgKyB0YWlsICsgJ1xcbicgK1xuICAgICAgICAgY29tbW9uLnJlcGVhdCgnICcsIGluZGVudCArIHRoaXMucG9zaXRpb24gLSBzdGFydCArIGhlYWQubGVuZ3RoKSArICdeJztcbn07XG5cblxuTWFyay5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZyhjb21wYWN0KSB7XG4gIHZhciBzbmlwcGV0LCB3aGVyZSA9ICcnO1xuXG4gIGlmICh0aGlzLm5hbWUpIHtcbiAgICB3aGVyZSArPSAnaW4gXCInICsgdGhpcy5uYW1lICsgJ1wiICc7XG4gIH1cblxuICB3aGVyZSArPSAnYXQgbGluZSAnICsgKHRoaXMubGluZSArIDEpICsgJywgY29sdW1uICcgKyAodGhpcy5jb2x1bW4gKyAxKTtcblxuICBpZiAoIWNvbXBhY3QpIHtcbiAgICBzbmlwcGV0ID0gdGhpcy5nZXRTbmlwcGV0KCk7XG5cbiAgICBpZiAoc25pcHBldCkge1xuICAgICAgd2hlcmUgKz0gJzpcXG4nICsgc25pcHBldDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gd2hlcmU7XG59O1xuXG5cbm1vZHVsZS5leHBvcnRzID0gTWFyaztcbiIsIid1c2Ugc3RyaWN0JztcblxuLyplc2xpbnQtZGlzYWJsZSBtYXgtbGVuKi9cblxudmFyIGNvbW1vbiAgICAgICAgPSByZXF1aXJlKCcuL2NvbW1vbicpO1xudmFyIFlBTUxFeGNlcHRpb24gPSByZXF1aXJlKCcuL2V4Y2VwdGlvbicpO1xudmFyIFR5cGUgICAgICAgICAgPSByZXF1aXJlKCcuL3R5cGUnKTtcblxuXG5mdW5jdGlvbiBjb21waWxlTGlzdChzY2hlbWEsIG5hbWUsIHJlc3VsdCkge1xuICB2YXIgZXhjbHVkZSA9IFtdO1xuXG4gIHNjaGVtYS5pbmNsdWRlLmZvckVhY2goZnVuY3Rpb24gKGluY2x1ZGVkU2NoZW1hKSB7XG4gICAgcmVzdWx0ID0gY29tcGlsZUxpc3QoaW5jbHVkZWRTY2hlbWEsIG5hbWUsIHJlc3VsdCk7XG4gIH0pO1xuXG4gIHNjaGVtYVtuYW1lXS5mb3JFYWNoKGZ1bmN0aW9uIChjdXJyZW50VHlwZSkge1xuICAgIHJlc3VsdC5mb3JFYWNoKGZ1bmN0aW9uIChwcmV2aW91c1R5cGUsIHByZXZpb3VzSW5kZXgpIHtcbiAgICAgIGlmIChwcmV2aW91c1R5cGUudGFnID09PSBjdXJyZW50VHlwZS50YWcpIHtcbiAgICAgICAgZXhjbHVkZS5wdXNoKHByZXZpb3VzSW5kZXgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmVzdWx0LnB1c2goY3VycmVudFR5cGUpO1xuICB9KTtcblxuICByZXR1cm4gcmVzdWx0LmZpbHRlcihmdW5jdGlvbiAodHlwZSwgaW5kZXgpIHtcbiAgICByZXR1cm4gLTEgPT09IGV4Y2x1ZGUuaW5kZXhPZihpbmRleCk7XG4gIH0pO1xufVxuXG5cbmZ1bmN0aW9uIGNvbXBpbGVNYXAoLyogbGlzdHMuLi4gKi8pIHtcbiAgdmFyIHJlc3VsdCA9IHt9LCBpbmRleCwgbGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIGNvbGxlY3RUeXBlKHR5cGUpIHtcbiAgICByZXN1bHRbdHlwZS50YWddID0gdHlwZTtcbiAgfVxuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIGFyZ3VtZW50c1tpbmRleF0uZm9yRWFjaChjb2xsZWN0VHlwZSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5cbmZ1bmN0aW9uIFNjaGVtYShkZWZpbml0aW9uKSB7XG4gIHRoaXMuaW5jbHVkZSAgPSBkZWZpbml0aW9uLmluY2x1ZGUgIHx8IFtdO1xuICB0aGlzLmltcGxpY2l0ID0gZGVmaW5pdGlvbi5pbXBsaWNpdCB8fCBbXTtcbiAgdGhpcy5leHBsaWNpdCA9IGRlZmluaXRpb24uZXhwbGljaXQgfHwgW107XG5cbiAgdGhpcy5pbXBsaWNpdC5mb3JFYWNoKGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgaWYgKHR5cGUubG9hZEtpbmQgJiYgJ3NjYWxhcicgIT09IHR5cGUubG9hZEtpbmQpIHtcbiAgICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCdUaGVyZSBpcyBhIG5vbi1zY2FsYXIgdHlwZSBpbiB0aGUgaW1wbGljaXQgbGlzdCBvZiBhIHNjaGVtYS4gSW1wbGljaXQgcmVzb2x2aW5nIG9mIHN1Y2ggdHlwZXMgaXMgbm90IHN1cHBvcnRlZC4nKTtcbiAgICB9XG4gIH0pO1xuXG4gIHRoaXMuY29tcGlsZWRJbXBsaWNpdCA9IGNvbXBpbGVMaXN0KHRoaXMsICdpbXBsaWNpdCcsIFtdKTtcbiAgdGhpcy5jb21waWxlZEV4cGxpY2l0ID0gY29tcGlsZUxpc3QodGhpcywgJ2V4cGxpY2l0JywgW10pO1xuICB0aGlzLmNvbXBpbGVkVHlwZU1hcCAgPSBjb21waWxlTWFwKHRoaXMuY29tcGlsZWRJbXBsaWNpdCwgdGhpcy5jb21waWxlZEV4cGxpY2l0KTtcbn1cblxuXG5TY2hlbWEuREVGQVVMVCA9IG51bGw7XG5cblxuU2NoZW1hLmNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZVNjaGVtYSgpIHtcbiAgdmFyIHNjaGVtYXMsIHR5cGVzO1xuXG4gIHN3aXRjaCAoYXJndW1lbnRzLmxlbmd0aCkge1xuICBjYXNlIDE6XG4gICAgc2NoZW1hcyA9IFNjaGVtYS5ERUZBVUxUO1xuICAgIHR5cGVzID0gYXJndW1lbnRzWzBdO1xuICAgIGJyZWFrO1xuXG4gIGNhc2UgMjpcbiAgICBzY2hlbWFzID0gYXJndW1lbnRzWzBdO1xuICAgIHR5cGVzID0gYXJndW1lbnRzWzFdO1xuICAgIGJyZWFrO1xuXG4gIGRlZmF1bHQ6XG4gICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oJ1dyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIFNjaGVtYS5jcmVhdGUgZnVuY3Rpb24nKTtcbiAgfVxuXG4gIHNjaGVtYXMgPSBjb21tb24udG9BcnJheShzY2hlbWFzKTtcbiAgdHlwZXMgPSBjb21tb24udG9BcnJheSh0eXBlcyk7XG5cbiAgaWYgKCFzY2hlbWFzLmV2ZXJ5KGZ1bmN0aW9uIChzY2hlbWEpIHsgcmV0dXJuIHNjaGVtYSBpbnN0YW5jZW9mIFNjaGVtYTsgfSkpIHtcbiAgICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignU3BlY2lmaWVkIGxpc3Qgb2Ygc3VwZXIgc2NoZW1hcyAob3IgYSBzaW5nbGUgU2NoZW1hIG9iamVjdCkgY29udGFpbnMgYSBub24tU2NoZW1hIG9iamVjdC4nKTtcbiAgfVxuXG4gIGlmICghdHlwZXMuZXZlcnkoZnVuY3Rpb24gKHR5cGUpIHsgcmV0dXJuIHR5cGUgaW5zdGFuY2VvZiBUeXBlOyB9KSkge1xuICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCdTcGVjaWZpZWQgbGlzdCBvZiBZQU1MIHR5cGVzIChvciBhIHNpbmdsZSBUeXBlIG9iamVjdCkgY29udGFpbnMgYSBub24tVHlwZSBvYmplY3QuJyk7XG4gIH1cblxuICByZXR1cm4gbmV3IFNjaGVtYSh7XG4gICAgaW5jbHVkZTogc2NoZW1hcyxcbiAgICBleHBsaWNpdDogdHlwZXNcbiAgfSk7XG59O1xuXG5cbm1vZHVsZS5leHBvcnRzID0gU2NoZW1hO1xuIiwiLy8gU3RhbmRhcmQgWUFNTCdzIENvcmUgc2NoZW1hLlxuLy8gaHR0cDovL3d3dy55YW1sLm9yZy9zcGVjLzEuMi9zcGVjLmh0bWwjaWQyODA0OTIzXG4vL1xuLy8gTk9URTogSlMtWUFNTCBkb2VzIG5vdCBzdXBwb3J0IHNjaGVtYS1zcGVjaWZpYyB0YWcgcmVzb2x1dGlvbiByZXN0cmljdGlvbnMuXG4vLyBTbywgQ29yZSBzY2hlbWEgaGFzIG5vIGRpc3RpbmN0aW9ucyBmcm9tIEpTT04gc2NoZW1hIGlzIEpTLVlBTUwuXG5cblxuJ3VzZSBzdHJpY3QnO1xuXG5cbnZhciBTY2hlbWEgPSByZXF1aXJlKCcuLi9zY2hlbWEnKTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBTY2hlbWEoe1xuICBpbmNsdWRlOiBbXG4gICAgcmVxdWlyZSgnLi9qc29uJylcbiAgXVxufSk7XG4iLCIvLyBKUy1ZQU1MJ3MgZGVmYXVsdCBzY2hlbWEgZm9yIGBsb2FkYCBmdW5jdGlvbi5cbi8vIEl0IGlzIG5vdCBkZXNjcmliZWQgaW4gdGhlIFlBTUwgc3BlY2lmaWNhdGlvbi5cbi8vXG4vLyBUaGlzIHNjaGVtYSBpcyBiYXNlZCBvbiBKUy1ZQU1MJ3MgZGVmYXVsdCBzYWZlIHNjaGVtYSBhbmQgaW5jbHVkZXNcbi8vIEphdmFTY3JpcHQtc3BlY2lmaWMgdHlwZXM6ICEhanMvdW5kZWZpbmVkLCAhIWpzL3JlZ2V4cCBhbmQgISFqcy9mdW5jdGlvbi5cbi8vXG4vLyBBbHNvIHRoaXMgc2NoZW1hIGlzIHVzZWQgYXMgZGVmYXVsdCBiYXNlIHNjaGVtYSBhdCBgU2NoZW1hLmNyZWF0ZWAgZnVuY3Rpb24uXG5cblxuJ3VzZSBzdHJpY3QnO1xuXG5cbnZhciBTY2hlbWEgPSByZXF1aXJlKCcuLi9zY2hlbWEnKTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IFNjaGVtYS5ERUZBVUxUID0gbmV3IFNjaGVtYSh7XG4gIGluY2x1ZGU6IFtcbiAgICByZXF1aXJlKCcuL2RlZmF1bHRfc2FmZScpXG4gIF0sXG4gIGV4cGxpY2l0OiBbXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9qcy91bmRlZmluZWQnKSxcbiAgICByZXF1aXJlKCcuLi90eXBlL2pzL3JlZ2V4cCcpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvanMvZnVuY3Rpb24nKVxuICBdXG59KTtcbiIsIi8vIEpTLVlBTUwncyBkZWZhdWx0IHNjaGVtYSBmb3IgYHNhZmVMb2FkYCBmdW5jdGlvbi5cbi8vIEl0IGlzIG5vdCBkZXNjcmliZWQgaW4gdGhlIFlBTUwgc3BlY2lmaWNhdGlvbi5cbi8vXG4vLyBUaGlzIHNjaGVtYSBpcyBiYXNlZCBvbiBzdGFuZGFyZCBZQU1MJ3MgQ29yZSBzY2hlbWEgYW5kIGluY2x1ZGVzIG1vc3Qgb2Zcbi8vIGV4dHJhIHR5cGVzIGRlc2NyaWJlZCBhdCBZQU1MIHRhZyByZXBvc2l0b3J5LiAoaHR0cDovL3lhbWwub3JnL3R5cGUvKVxuXG5cbid1c2Ugc3RyaWN0JztcblxuXG52YXIgU2NoZW1hID0gcmVxdWlyZSgnLi4vc2NoZW1hJyk7XG5cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgU2NoZW1hKHtcbiAgaW5jbHVkZTogW1xuICAgIHJlcXVpcmUoJy4vY29yZScpXG4gIF0sXG4gIGltcGxpY2l0OiBbXG4gICAgcmVxdWlyZSgnLi4vdHlwZS90aW1lc3RhbXAnKSxcbiAgICByZXF1aXJlKCcuLi90eXBlL21lcmdlJylcbiAgXSxcbiAgZXhwbGljaXQ6IFtcbiAgICByZXF1aXJlKCcuLi90eXBlL2JpbmFyeScpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvb21hcCcpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvcGFpcnMnKSxcbiAgICByZXF1aXJlKCcuLi90eXBlL3NldCcpXG4gIF1cbn0pO1xuIiwiLy8gU3RhbmRhcmQgWUFNTCdzIEZhaWxzYWZlIHNjaGVtYS5cbi8vIGh0dHA6Ly93d3cueWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI2lkMjgwMjM0NlxuXG5cbid1c2Ugc3RyaWN0JztcblxuXG52YXIgU2NoZW1hID0gcmVxdWlyZSgnLi4vc2NoZW1hJyk7XG5cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgU2NoZW1hKHtcbiAgZXhwbGljaXQ6IFtcbiAgICByZXF1aXJlKCcuLi90eXBlL3N0cicpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvc2VxJyksXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9tYXAnKVxuICBdXG59KTtcbiIsIi8vIFN0YW5kYXJkIFlBTUwncyBKU09OIHNjaGVtYS5cbi8vIGh0dHA6Ly93d3cueWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI2lkMjgwMzIzMVxuLy9cbi8vIE5PVEU6IEpTLVlBTUwgZG9lcyBub3Qgc3VwcG9ydCBzY2hlbWEtc3BlY2lmaWMgdGFnIHJlc29sdXRpb24gcmVzdHJpY3Rpb25zLlxuLy8gU28sIHRoaXMgc2NoZW1hIGlzIG5vdCBzdWNoIHN0cmljdCBhcyBkZWZpbmVkIGluIHRoZSBZQU1MIHNwZWNpZmljYXRpb24uXG4vLyBJdCBhbGxvd3MgbnVtYmVycyBpbiBiaW5hcnkgbm90YWlvbiwgdXNlIGBOdWxsYCBhbmQgYE5VTExgIGFzIGBudWxsYCwgZXRjLlxuXG5cbid1c2Ugc3RyaWN0JztcblxuXG52YXIgU2NoZW1hID0gcmVxdWlyZSgnLi4vc2NoZW1hJyk7XG5cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgU2NoZW1hKHtcbiAgaW5jbHVkZTogW1xuICAgIHJlcXVpcmUoJy4vZmFpbHNhZmUnKVxuICBdLFxuICBpbXBsaWNpdDogW1xuICAgIHJlcXVpcmUoJy4uL3R5cGUvbnVsbCcpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvYm9vbCcpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvaW50JyksXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9mbG9hdCcpXG4gIF1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgWUFNTEV4Y2VwdGlvbiA9IHJlcXVpcmUoJy4vZXhjZXB0aW9uJyk7XG5cbnZhciBUWVBFX0NPTlNUUlVDVE9SX09QVElPTlMgPSBbXG4gICdraW5kJyxcbiAgJ3Jlc29sdmUnLFxuICAnY29uc3RydWN0JyxcbiAgJ2luc3RhbmNlT2YnLFxuICAncHJlZGljYXRlJyxcbiAgJ3JlcHJlc2VudCcsXG4gICdkZWZhdWx0U3R5bGUnLFxuICAnc3R5bGVBbGlhc2VzJ1xuXTtcblxudmFyIFlBTUxfTk9ERV9LSU5EUyA9IFtcbiAgJ3NjYWxhcicsXG4gICdzZXF1ZW5jZScsXG4gICdtYXBwaW5nJ1xuXTtcblxuZnVuY3Rpb24gY29tcGlsZVN0eWxlQWxpYXNlcyhtYXApIHtcbiAgdmFyIHJlc3VsdCA9IHt9O1xuXG4gIGlmIChudWxsICE9PSBtYXApIHtcbiAgICBPYmplY3Qua2V5cyhtYXApLmZvckVhY2goZnVuY3Rpb24gKHN0eWxlKSB7XG4gICAgICBtYXBbc3R5bGVdLmZvckVhY2goZnVuY3Rpb24gKGFsaWFzKSB7XG4gICAgICAgIHJlc3VsdFtTdHJpbmcoYWxpYXMpXSA9IHN0eWxlO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBUeXBlKHRhZywgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICBPYmplY3Qua2V5cyhvcHRpb25zKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgaWYgKC0xID09PSBUWVBFX0NPTlNUUlVDVE9SX09QVElPTlMuaW5kZXhPZihuYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oJ1Vua25vd24gb3B0aW9uIFwiJyArIG5hbWUgKyAnXCIgaXMgbWV0IGluIGRlZmluaXRpb24gb2YgXCInICsgdGFnICsgJ1wiIFlBTUwgdHlwZS4nKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIFRPRE86IEFkZCB0YWcgZm9ybWF0IGNoZWNrLlxuICB0aGlzLnRhZyAgICAgICAgICA9IHRhZztcbiAgdGhpcy5raW5kICAgICAgICAgPSBvcHRpb25zWydraW5kJ10gICAgICAgICB8fCBudWxsO1xuICB0aGlzLnJlc29sdmUgICAgICA9IG9wdGlvbnNbJ3Jlc29sdmUnXSAgICAgIHx8IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRydWU7IH07XG4gIHRoaXMuY29uc3RydWN0ICAgID0gb3B0aW9uc1snY29uc3RydWN0J10gICAgfHwgZnVuY3Rpb24gKGRhdGEpIHsgcmV0dXJuIGRhdGE7IH07XG4gIHRoaXMuaW5zdGFuY2VPZiAgID0gb3B0aW9uc1snaW5zdGFuY2VPZiddICAgfHwgbnVsbDtcbiAgdGhpcy5wcmVkaWNhdGUgICAgPSBvcHRpb25zWydwcmVkaWNhdGUnXSAgICB8fCBudWxsO1xuICB0aGlzLnJlcHJlc2VudCAgICA9IG9wdGlvbnNbJ3JlcHJlc2VudCddICAgIHx8IG51bGw7XG4gIHRoaXMuZGVmYXVsdFN0eWxlID0gb3B0aW9uc1snZGVmYXVsdFN0eWxlJ10gfHwgbnVsbDtcbiAgdGhpcy5zdHlsZUFsaWFzZXMgPSBjb21waWxlU3R5bGVBbGlhc2VzKG9wdGlvbnNbJ3N0eWxlQWxpYXNlcyddIHx8IG51bGwpO1xuXG4gIGlmICgtMSA9PT0gWUFNTF9OT0RFX0tJTkRTLmluZGV4T2YodGhpcy5raW5kKSkge1xuICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCdVbmtub3duIGtpbmQgXCInICsgdGhpcy5raW5kICsgJ1wiIGlzIHNwZWNpZmllZCBmb3IgXCInICsgdGFnICsgJ1wiIFlBTUwgdHlwZS4nKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFR5cGU7XG4iLCIndXNlIHN0cmljdCc7XG5cbi8qZXNsaW50LWRpc2FibGUgbm8tYml0d2lzZSovXG5cbi8vIEEgdHJpY2sgZm9yIGJyb3dzZXJpZmllZCB2ZXJzaW9uLlxuLy8gU2luY2Ugd2UgbWFrZSBicm93c2VyaWZpZXIgdG8gaWdub3JlIGBidWZmZXJgIG1vZHVsZSwgTm9kZUJ1ZmZlciB3aWxsIGJlIHVuZGVmaW5lZFxudmFyIE5vZGVCdWZmZXIgPSByZXF1aXJlKCdidWZmZXInKS5CdWZmZXI7XG52YXIgVHlwZSAgICAgICA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxuXG4vLyBbIDY0LCA2NSwgNjYgXSAtPiBbIHBhZGRpbmcsIENSLCBMRiBdXG52YXIgQkFTRTY0X01BUCA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVxcblxccic7XG5cblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxCaW5hcnkoZGF0YSkge1xuICBpZiAobnVsbCA9PT0gZGF0YSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBjb2RlLCBpZHgsIGJpdGxlbiA9IDAsIGxlbiA9IDAsIG1heCA9IGRhdGEubGVuZ3RoLCBtYXAgPSBCQVNFNjRfTUFQO1xuXG4gIC8vIENvbnZlcnQgb25lIGJ5IG9uZS5cbiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7XG4gICAgY29kZSA9IG1hcC5pbmRleE9mKGRhdGEuY2hhckF0KGlkeCkpO1xuXG4gICAgLy8gU2tpcCBDUi9MRlxuICAgIGlmIChjb2RlID4gNjQpIHsgY29udGludWU7IH1cblxuICAgIC8vIEZhaWwgb24gaWxsZWdhbCBjaGFyYWN0ZXJzXG4gICAgaWYgKGNvZGUgPCAwKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gICAgYml0bGVuICs9IDY7XG4gIH1cblxuICAvLyBJZiB0aGVyZSBhcmUgYW55IGJpdHMgbGVmdCwgc291cmNlIHdhcyBjb3JydXB0ZWRcbiAgcmV0dXJuIChiaXRsZW4gJSA4KSA9PT0gMDtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0WWFtbEJpbmFyeShkYXRhKSB7XG4gIHZhciBjb2RlLCBpZHgsIHRhaWxiaXRzLFxuICAgICAgaW5wdXQgPSBkYXRhLnJlcGxhY2UoL1tcXHJcXG49XS9nLCAnJyksIC8vIHJlbW92ZSBDUi9MRiAmIHBhZGRpbmcgdG8gc2ltcGxpZnkgc2NhblxuICAgICAgbWF4ID0gaW5wdXQubGVuZ3RoLFxuICAgICAgbWFwID0gQkFTRTY0X01BUCxcbiAgICAgIGJpdHMgPSAwLFxuICAgICAgcmVzdWx0ID0gW107XG5cbiAgLy8gQ29sbGVjdCBieSA2KjQgYml0cyAoMyBieXRlcylcblxuICBmb3IgKGlkeCA9IDA7IGlkeCA8IG1heDsgaWR4KyspIHtcbiAgICBpZiAoKGlkeCAlIDQgPT09IDApICYmIGlkeCkge1xuICAgICAgcmVzdWx0LnB1c2goKGJpdHMgPj4gMTYpICYgMHhGRik7XG4gICAgICByZXN1bHQucHVzaCgoYml0cyA+PiA4KSAmIDB4RkYpO1xuICAgICAgcmVzdWx0LnB1c2goYml0cyAmIDB4RkYpO1xuICAgIH1cblxuICAgIGJpdHMgPSAoYml0cyA8PCA2KSB8IG1hcC5pbmRleE9mKGlucHV0LmNoYXJBdChpZHgpKTtcbiAgfVxuXG4gIC8vIER1bXAgdGFpbFxuXG4gIHRhaWxiaXRzID0gKG1heCAlIDQpICogNjtcblxuICBpZiAodGFpbGJpdHMgPT09IDApIHtcbiAgICByZXN1bHQucHVzaCgoYml0cyA+PiAxNikgJiAweEZGKTtcbiAgICByZXN1bHQucHVzaCgoYml0cyA+PiA4KSAmIDB4RkYpO1xuICAgIHJlc3VsdC5wdXNoKGJpdHMgJiAweEZGKTtcbiAgfSBlbHNlIGlmICh0YWlsYml0cyA9PT0gMTgpIHtcbiAgICByZXN1bHQucHVzaCgoYml0cyA+PiAxMCkgJiAweEZGKTtcbiAgICByZXN1bHQucHVzaCgoYml0cyA+PiAyKSAmIDB4RkYpO1xuICB9IGVsc2UgaWYgKHRhaWxiaXRzID09PSAxMikge1xuICAgIHJlc3VsdC5wdXNoKChiaXRzID4+IDQpICYgMHhGRik7XG4gIH1cblxuICAvLyBXcmFwIGludG8gQnVmZmVyIGZvciBOb2RlSlMgYW5kIGxlYXZlIEFycmF5IGZvciBicm93c2VyXG4gIGlmIChOb2RlQnVmZmVyKSB7XG4gICAgcmV0dXJuIG5ldyBOb2RlQnVmZmVyKHJlc3VsdCk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiByZXByZXNlbnRZYW1sQmluYXJ5KG9iamVjdCAvKiwgc3R5bGUqLykge1xuICB2YXIgcmVzdWx0ID0gJycsIGJpdHMgPSAwLCBpZHgsIHRhaWwsXG4gICAgICBtYXggPSBvYmplY3QubGVuZ3RoLFxuICAgICAgbWFwID0gQkFTRTY0X01BUDtcblxuICAvLyBDb252ZXJ0IGV2ZXJ5IHRocmVlIGJ5dGVzIHRvIDQgQVNDSUkgY2hhcmFjdGVycy5cblxuICBmb3IgKGlkeCA9IDA7IGlkeCA8IG1heDsgaWR4KyspIHtcbiAgICBpZiAoKGlkeCAlIDMgPT09IDApICYmIGlkeCkge1xuICAgICAgcmVzdWx0ICs9IG1hcFsoYml0cyA+PiAxOCkgJiAweDNGXTtcbiAgICAgIHJlc3VsdCArPSBtYXBbKGJpdHMgPj4gMTIpICYgMHgzRl07XG4gICAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDYpICYgMHgzRl07XG4gICAgICByZXN1bHQgKz0gbWFwW2JpdHMgJiAweDNGXTtcbiAgICB9XG5cbiAgICBiaXRzID0gKGJpdHMgPDwgOCkgKyBvYmplY3RbaWR4XTtcbiAgfVxuXG4gIC8vIER1bXAgdGFpbFxuXG4gIHRhaWwgPSBtYXggJSAzO1xuXG4gIGlmICh0YWlsID09PSAwKSB7XG4gICAgcmVzdWx0ICs9IG1hcFsoYml0cyA+PiAxOCkgJiAweDNGXTtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDEyKSAmIDB4M0ZdO1xuICAgIHJlc3VsdCArPSBtYXBbKGJpdHMgPj4gNikgJiAweDNGXTtcbiAgICByZXN1bHQgKz0gbWFwW2JpdHMgJiAweDNGXTtcbiAgfSBlbHNlIGlmICh0YWlsID09PSAyKSB7XG4gICAgcmVzdWx0ICs9IG1hcFsoYml0cyA+PiAxMCkgJiAweDNGXTtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDQpICYgMHgzRl07XG4gICAgcmVzdWx0ICs9IG1hcFsoYml0cyA8PCAyKSAmIDB4M0ZdO1xuICAgIHJlc3VsdCArPSBtYXBbNjRdO1xuICB9IGVsc2UgaWYgKHRhaWwgPT09IDEpIHtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDIpICYgMHgzRl07XG4gICAgcmVzdWx0ICs9IG1hcFsoYml0cyA8PCA0KSAmIDB4M0ZdO1xuICAgIHJlc3VsdCArPSBtYXBbNjRdO1xuICAgIHJlc3VsdCArPSBtYXBbNjRdO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gaXNCaW5hcnkob2JqZWN0KSB7XG4gIHJldHVybiBOb2RlQnVmZmVyICYmIE5vZGVCdWZmZXIuaXNCdWZmZXIob2JqZWN0KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5Jywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxCaW5hcnksXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEJpbmFyeSxcbiAgcHJlZGljYXRlOiBpc0JpbmFyeSxcbiAgcmVwcmVzZW50OiByZXByZXNlbnRZYW1sQmluYXJ5XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbmZ1bmN0aW9uIHJlc29sdmVZYW1sQm9vbGVhbihkYXRhKSB7XG4gIGlmIChudWxsID09PSBkYXRhKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIG1heCA9IGRhdGEubGVuZ3RoO1xuXG4gIHJldHVybiAobWF4ID09PSA0ICYmIChkYXRhID09PSAndHJ1ZScgfHwgZGF0YSA9PT0gJ1RydWUnIHx8IGRhdGEgPT09ICdUUlVFJykpIHx8XG4gICAgICAgICAobWF4ID09PSA1ICYmIChkYXRhID09PSAnZmFsc2UnIHx8IGRhdGEgPT09ICdGYWxzZScgfHwgZGF0YSA9PT0gJ0ZBTFNFJykpO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sQm9vbGVhbihkYXRhKSB7XG4gIHJldHVybiBkYXRhID09PSAndHJ1ZScgfHxcbiAgICAgICAgIGRhdGEgPT09ICdUcnVlJyB8fFxuICAgICAgICAgZGF0YSA9PT0gJ1RSVUUnO1xufVxuXG5mdW5jdGlvbiBpc0Jvb2xlYW4ob2JqZWN0KSB7XG4gIHJldHVybiAnW29iamVjdCBCb29sZWFuXScgPT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpib29sJywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxCb29sZWFuLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxCb29sZWFuLFxuICBwcmVkaWNhdGU6IGlzQm9vbGVhbixcbiAgcmVwcmVzZW50OiB7XG4gICAgbG93ZXJjYXNlOiBmdW5jdGlvbiAob2JqZWN0KSB7IHJldHVybiBvYmplY3QgPyAndHJ1ZScgOiAnZmFsc2UnOyB9LFxuICAgIHVwcGVyY2FzZTogZnVuY3Rpb24gKG9iamVjdCkgeyByZXR1cm4gb2JqZWN0ID8gJ1RSVUUnIDogJ0ZBTFNFJzsgfSxcbiAgICBjYW1lbGNhc2U6IGZ1bmN0aW9uIChvYmplY3QpIHsgcmV0dXJuIG9iamVjdCA/ICdUcnVlJyA6ICdGYWxzZSc7IH1cbiAgfSxcbiAgZGVmYXVsdFN0eWxlOiAnbG93ZXJjYXNlJ1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjb21tb24gPSByZXF1aXJlKCcuLi9jb21tb24nKTtcbnZhciBUeXBlICAgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbnZhciBZQU1MX0ZMT0FUX1BBVFRFUk4gPSBuZXcgUmVnRXhwKFxuICAnXig/OlstK10/KD86WzAtOV1bMC05X10qKVxcXFwuWzAtOV9dKig/OltlRV1bLStdWzAtOV0rKT8nICtcbiAgJ3xcXFxcLlswLTlfXSsoPzpbZUVdWy0rXVswLTldKyk/JyArXG4gICd8Wy0rXT9bMC05XVswLTlfXSooPzo6WzAtNV0/WzAtOV0pK1xcXFwuWzAtOV9dKicgK1xuICAnfFstK10/XFxcXC4oPzppbmZ8SW5mfElORiknICtcbiAgJ3xcXFxcLig/Om5hbnxOYU58TkFOKSkkJyk7XG5cbmZ1bmN0aW9uIHJlc29sdmVZYW1sRmxvYXQoZGF0YSkge1xuICBpZiAobnVsbCA9PT0gZGF0YSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciB2YWx1ZSwgc2lnbiwgYmFzZSwgZGlnaXRzO1xuXG4gIGlmICghWUFNTF9GTE9BVF9QQVRURVJOLnRlc3QoZGF0YSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxGbG9hdChkYXRhKSB7XG4gIHZhciB2YWx1ZSwgc2lnbiwgYmFzZSwgZGlnaXRzO1xuXG4gIHZhbHVlICA9IGRhdGEucmVwbGFjZSgvXy9nLCAnJykudG9Mb3dlckNhc2UoKTtcbiAgc2lnbiAgID0gJy0nID09PSB2YWx1ZVswXSA/IC0xIDogMTtcbiAgZGlnaXRzID0gW107XG5cbiAgaWYgKDAgPD0gJystJy5pbmRleE9mKHZhbHVlWzBdKSkge1xuICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMSk7XG4gIH1cblxuICBpZiAoJy5pbmYnID09PSB2YWx1ZSkge1xuICAgIHJldHVybiAoMSA9PT0gc2lnbikgPyBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkgOiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7XG5cbiAgfSBlbHNlIGlmICgnLm5hbicgPT09IHZhbHVlKSB7XG4gICAgcmV0dXJuIE5hTjtcblxuICB9IGVsc2UgaWYgKDAgPD0gdmFsdWUuaW5kZXhPZignOicpKSB7XG4gICAgdmFsdWUuc3BsaXQoJzonKS5mb3JFYWNoKGZ1bmN0aW9uICh2KSB7XG4gICAgICBkaWdpdHMudW5zaGlmdChwYXJzZUZsb2F0KHYsIDEwKSk7XG4gICAgfSk7XG5cbiAgICB2YWx1ZSA9IDAuMDtcbiAgICBiYXNlID0gMTtcblxuICAgIGRpZ2l0cy5mb3JFYWNoKGZ1bmN0aW9uIChkKSB7XG4gICAgICB2YWx1ZSArPSBkICogYmFzZTtcbiAgICAgIGJhc2UgKj0gNjA7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2lnbiAqIHZhbHVlO1xuXG4gIH1cbiAgcmV0dXJuIHNpZ24gKiBwYXJzZUZsb2F0KHZhbHVlLCAxMCk7XG59XG5cbmZ1bmN0aW9uIHJlcHJlc2VudFlhbWxGbG9hdChvYmplY3QsIHN0eWxlKSB7XG4gIGlmIChpc05hTihvYmplY3QpKSB7XG4gICAgc3dpdGNoIChzdHlsZSkge1xuICAgIGNhc2UgJ2xvd2VyY2FzZSc6XG4gICAgICByZXR1cm4gJy5uYW4nO1xuICAgIGNhc2UgJ3VwcGVyY2FzZSc6XG4gICAgICByZXR1cm4gJy5OQU4nO1xuICAgIGNhc2UgJ2NhbWVsY2FzZSc6XG4gICAgICByZXR1cm4gJy5OYU4nO1xuICAgIH1cbiAgfSBlbHNlIGlmIChOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkgPT09IG9iamVjdCkge1xuICAgIHN3aXRjaCAoc3R5bGUpIHtcbiAgICBjYXNlICdsb3dlcmNhc2UnOlxuICAgICAgcmV0dXJuICcuaW5mJztcbiAgICBjYXNlICd1cHBlcmNhc2UnOlxuICAgICAgcmV0dXJuICcuSU5GJztcbiAgICBjYXNlICdjYW1lbGNhc2UnOlxuICAgICAgcmV0dXJuICcuSW5mJztcbiAgICB9XG4gIH0gZWxzZSBpZiAoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZID09PSBvYmplY3QpIHtcbiAgICBzd2l0Y2ggKHN0eWxlKSB7XG4gICAgY2FzZSAnbG93ZXJjYXNlJzpcbiAgICAgIHJldHVybiAnLS5pbmYnO1xuICAgIGNhc2UgJ3VwcGVyY2FzZSc6XG4gICAgICByZXR1cm4gJy0uSU5GJztcbiAgICBjYXNlICdjYW1lbGNhc2UnOlxuICAgICAgcmV0dXJuICctLkluZic7XG4gICAgfVxuICB9IGVsc2UgaWYgKGNvbW1vbi5pc05lZ2F0aXZlWmVybyhvYmplY3QpKSB7XG4gICAgcmV0dXJuICctMC4wJztcbiAgfVxuICByZXR1cm4gb2JqZWN0LnRvU3RyaW5nKDEwKTtcbn1cblxuZnVuY3Rpb24gaXNGbG9hdChvYmplY3QpIHtcbiAgcmV0dXJuICgnW29iamVjdCBOdW1iZXJdJyA9PT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCkpICYmXG4gICAgICAgICAoMCAhPT0gb2JqZWN0ICUgMSB8fCBjb21tb24uaXNOZWdhdGl2ZVplcm8ob2JqZWN0KSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbmV3IFR5cGUoJ3RhZzp5YW1sLm9yZywyMDAyOmZsb2F0Jywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxGbG9hdCxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sRmxvYXQsXG4gIHByZWRpY2F0ZTogaXNGbG9hdCxcbiAgcmVwcmVzZW50OiByZXByZXNlbnRZYW1sRmxvYXQsXG4gIGRlZmF1bHRTdHlsZTogJ2xvd2VyY2FzZSdcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY29tbW9uID0gcmVxdWlyZSgnLi4vY29tbW9uJyk7XG52YXIgVHlwZSAgID0gcmVxdWlyZSgnLi4vdHlwZScpO1xuXG5mdW5jdGlvbiBpc0hleENvZGUoYykge1xuICByZXR1cm4gKCgweDMwLyogMCAqLyA8PSBjKSAmJiAoYyA8PSAweDM5LyogOSAqLykpIHx8XG4gICAgICAgICAoKDB4NDEvKiBBICovIDw9IGMpICYmIChjIDw9IDB4NDYvKiBGICovKSkgfHxcbiAgICAgICAgICgoMHg2MS8qIGEgKi8gPD0gYykgJiYgKGMgPD0gMHg2Ni8qIGYgKi8pKTtcbn1cblxuZnVuY3Rpb24gaXNPY3RDb2RlKGMpIHtcbiAgcmV0dXJuICgoMHgzMC8qIDAgKi8gPD0gYykgJiYgKGMgPD0gMHgzNy8qIDcgKi8pKTtcbn1cblxuZnVuY3Rpb24gaXNEZWNDb2RlKGMpIHtcbiAgcmV0dXJuICgoMHgzMC8qIDAgKi8gPD0gYykgJiYgKGMgPD0gMHgzOS8qIDkgKi8pKTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxJbnRlZ2VyKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgbWF4ID0gZGF0YS5sZW5ndGgsXG4gICAgICBpbmRleCA9IDAsXG4gICAgICBoYXNEaWdpdHMgPSBmYWxzZSxcbiAgICAgIGNoO1xuXG4gIGlmICghbWF4KSB7IHJldHVybiBmYWxzZTsgfVxuXG4gIGNoID0gZGF0YVtpbmRleF07XG5cbiAgLy8gc2lnblxuICBpZiAoY2ggPT09ICctJyB8fCBjaCA9PT0gJysnKSB7XG4gICAgY2ggPSBkYXRhWysraW5kZXhdO1xuICB9XG5cbiAgaWYgKGNoID09PSAnMCcpIHtcbiAgICAvLyAwXG4gICAgaWYgKGluZGV4ICsgMSA9PT0gbWF4KSB7IHJldHVybiB0cnVlOyB9XG4gICAgY2ggPSBkYXRhWysraW5kZXhdO1xuXG4gICAgLy8gYmFzZSAyLCBiYXNlIDgsIGJhc2UgMTZcblxuICAgIGlmIChjaCA9PT0gJ2InKSB7XG4gICAgICAvLyBiYXNlIDJcbiAgICAgIGluZGV4Kys7XG5cbiAgICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykge1xuICAgICAgICBjaCA9IGRhdGFbaW5kZXhdO1xuICAgICAgICBpZiAoY2ggPT09ICdfJykgeyBjb250aW51ZTsgfVxuICAgICAgICBpZiAoY2ggIT09ICcwJyAmJiBjaCAhPT0gJzEnKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGhhc0RpZ2l0cyA9IHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFzRGlnaXRzO1xuICAgIH1cblxuXG4gICAgaWYgKGNoID09PSAneCcpIHtcbiAgICAgIC8vIGJhc2UgMTZcbiAgICAgIGluZGV4Kys7XG5cbiAgICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykge1xuICAgICAgICBjaCA9IGRhdGFbaW5kZXhdO1xuICAgICAgICBpZiAoY2ggPT09ICdfJykgeyBjb250aW51ZTsgfVxuICAgICAgICBpZiAoIWlzSGV4Q29kZShkYXRhLmNoYXJDb2RlQXQoaW5kZXgpKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBoYXNEaWdpdHMgPSB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGhhc0RpZ2l0cztcbiAgICB9XG5cbiAgICAvLyBiYXNlIDhcbiAgICBmb3IgKDsgaW5kZXggPCBtYXg7IGluZGV4KyspIHtcbiAgICAgIGNoID0gZGF0YVtpbmRleF07XG4gICAgICBpZiAoY2ggPT09ICdfJykgeyBjb250aW51ZTsgfVxuICAgICAgaWYgKCFpc09jdENvZGUoZGF0YS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaGFzRGlnaXRzID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGhhc0RpZ2l0cztcbiAgfVxuXG4gIC8vIGJhc2UgMTAgKGV4Y2VwdCAwKSBvciBiYXNlIDYwXG5cbiAgZm9yICg7IGluZGV4IDwgbWF4OyBpbmRleCsrKSB7XG4gICAgY2ggPSBkYXRhW2luZGV4XTtcbiAgICBpZiAoY2ggPT09ICdfJykgeyBjb250aW51ZTsgfVxuICAgIGlmIChjaCA9PT0gJzonKSB7IGJyZWFrOyB9XG4gICAgaWYgKCFpc0RlY0NvZGUoZGF0YS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaGFzRGlnaXRzID0gdHJ1ZTtcbiAgfVxuXG4gIGlmICghaGFzRGlnaXRzKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gIC8vIGlmICFiYXNlNjAgLSBkb25lO1xuICBpZiAoY2ggIT09ICc6JykgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gIC8vIGJhc2U2MCBhbG1vc3Qgbm90IHVzZWQsIG5vIG5lZWRzIHRvIG9wdGltaXplXG4gIHJldHVybiAvXig6WzAtNV0/WzAtOV0pKyQvLnRlc3QoZGF0YS5zbGljZShpbmRleCkpO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sSW50ZWdlcihkYXRhKSB7XG4gIHZhciB2YWx1ZSA9IGRhdGEsIHNpZ24gPSAxLCBjaCwgYmFzZSwgZGlnaXRzID0gW107XG5cbiAgaWYgKHZhbHVlLmluZGV4T2YoJ18nKSAhPT0gLTEpIHtcbiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL18vZywgJycpO1xuICB9XG5cbiAgY2ggPSB2YWx1ZVswXTtcblxuICBpZiAoY2ggPT09ICctJyB8fCBjaCA9PT0gJysnKSB7XG4gICAgaWYgKGNoID09PSAnLScpIHsgc2lnbiA9IC0xOyB9XG4gICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgxKTtcbiAgICBjaCA9IHZhbHVlWzBdO1xuICB9XG5cbiAgaWYgKCcwJyA9PT0gdmFsdWUpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGlmIChjaCA9PT0gJzAnKSB7XG4gICAgaWYgKHZhbHVlWzFdID09PSAnYicpIHtcbiAgICAgIHJldHVybiBzaWduICogcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDIpO1xuICAgIH1cbiAgICBpZiAodmFsdWVbMV0gPT09ICd4Jykge1xuICAgICAgcmV0dXJuIHNpZ24gKiBwYXJzZUludCh2YWx1ZSwgMTYpO1xuICAgIH1cbiAgICByZXR1cm4gc2lnbiAqIHBhcnNlSW50KHZhbHVlLCA4KTtcblxuICB9XG5cbiAgaWYgKHZhbHVlLmluZGV4T2YoJzonKSAhPT0gLTEpIHtcbiAgICB2YWx1ZS5zcGxpdCgnOicpLmZvckVhY2goZnVuY3Rpb24gKHYpIHtcbiAgICAgIGRpZ2l0cy51bnNoaWZ0KHBhcnNlSW50KHYsIDEwKSk7XG4gICAgfSk7XG5cbiAgICB2YWx1ZSA9IDA7XG4gICAgYmFzZSA9IDE7XG5cbiAgICBkaWdpdHMuZm9yRWFjaChmdW5jdGlvbiAoZCkge1xuICAgICAgdmFsdWUgKz0gKGQgKiBiYXNlKTtcbiAgICAgIGJhc2UgKj0gNjA7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2lnbiAqIHZhbHVlO1xuXG4gIH1cblxuICByZXR1cm4gc2lnbiAqIHBhcnNlSW50KHZhbHVlLCAxMCk7XG59XG5cbmZ1bmN0aW9uIGlzSW50ZWdlcihvYmplY3QpIHtcbiAgcmV0dXJuICgnW29iamVjdCBOdW1iZXJdJyA9PT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCkpICYmXG4gICAgICAgICAoMCA9PT0gb2JqZWN0ICUgMSAmJiAhY29tbW9uLmlzTmVnYXRpdmVaZXJvKG9iamVjdCkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjppbnQnLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlWWFtbEludGVnZXIsXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEludGVnZXIsXG4gIHByZWRpY2F0ZTogaXNJbnRlZ2VyLFxuICByZXByZXNlbnQ6IHtcbiAgICBiaW5hcnk6ICAgICAgZnVuY3Rpb24gKG9iamVjdCkgeyByZXR1cm4gJzBiJyArIG9iamVjdC50b1N0cmluZygyKTsgfSxcbiAgICBvY3RhbDogICAgICAgZnVuY3Rpb24gKG9iamVjdCkgeyByZXR1cm4gJzAnICArIG9iamVjdC50b1N0cmluZyg4KTsgfSxcbiAgICBkZWNpbWFsOiAgICAgZnVuY3Rpb24gKG9iamVjdCkgeyByZXR1cm4gICAgICAgIG9iamVjdC50b1N0cmluZygxMCk7IH0sXG4gICAgaGV4YWRlY2ltYWw6IGZ1bmN0aW9uIChvYmplY3QpIHsgcmV0dXJuICcweCcgKyBvYmplY3QudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7IH1cbiAgfSxcbiAgZGVmYXVsdFN0eWxlOiAnZGVjaW1hbCcsXG4gIHN0eWxlQWxpYXNlczoge1xuICAgIGJpbmFyeTogICAgICBbIDIsICAnYmluJyBdLFxuICAgIG9jdGFsOiAgICAgICBbIDgsICAnb2N0JyBdLFxuICAgIGRlY2ltYWw6ICAgICBbIDEwLCAnZGVjJyBdLFxuICAgIGhleGFkZWNpbWFsOiBbIDE2LCAnaGV4JyBdXG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZXNwcmltYTtcblxuLy8gQnJvd3NlcmlmaWVkIHZlcnNpb24gZG9lcyBub3QgaGF2ZSBlc3ByaW1hXG4vL1xuLy8gMS4gRm9yIG5vZGUuanMganVzdCByZXF1aXJlIG1vZHVsZSBhcyBkZXBzXG4vLyAyLiBGb3IgYnJvd3NlciB0cnkgdG8gcmVxdWlyZSBtdWR1bGUgdmlhIGV4dGVybmFsIEFNRCBzeXN0ZW0uXG4vLyAgICBJZiBub3QgZm91bmQgLSB0cnkgdG8gZmFsbGJhY2sgdG8gd2luZG93LmVzcHJpbWEuIElmIG5vdFxuLy8gICAgZm91bmQgdG9vIC0gdGhlbiBmYWlsIHRvIHBhcnNlLlxuLy9cbnRyeSB7XG4gIGVzcHJpbWEgPSByZXF1aXJlKCdlc3ByaW1hJyk7XG59IGNhdGNoIChfKSB7XG4gIC8qZ2xvYmFsIHdpbmRvdyAqL1xuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHsgZXNwcmltYSA9IHdpbmRvdy5lc3ByaW1hOyB9XG59XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vLi4vdHlwZScpO1xuXG5mdW5jdGlvbiByZXNvbHZlSmF2YXNjcmlwdEZ1bmN0aW9uKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0cnkge1xuICAgIHZhciBzb3VyY2UgPSAnKCcgKyBkYXRhICsgJyknLFxuICAgICAgICBhc3QgICAgPSBlc3ByaW1hLnBhcnNlKHNvdXJjZSwgeyByYW5nZTogdHJ1ZSB9KSxcbiAgICAgICAgcGFyYW1zID0gW10sXG4gICAgICAgIGJvZHk7XG5cbiAgICBpZiAoJ1Byb2dyYW0nICAgICAgICAgICAgICE9PSBhc3QudHlwZSAgICAgICAgIHx8XG4gICAgICAgIDEgICAgICAgICAgICAgICAgICAgICAhPT0gYXN0LmJvZHkubGVuZ3RoICB8fFxuICAgICAgICAnRXhwcmVzc2lvblN0YXRlbWVudCcgIT09IGFzdC5ib2R5WzBdLnR5cGUgfHxcbiAgICAgICAgJ0Z1bmN0aW9uRXhwcmVzc2lvbicgICE9PSBhc3QuYm9keVswXS5leHByZXNzaW9uLnR5cGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdEphdmFzY3JpcHRGdW5jdGlvbihkYXRhKSB7XG4gIC8qanNsaW50IGV2aWw6dHJ1ZSovXG5cbiAgdmFyIHNvdXJjZSA9ICcoJyArIGRhdGEgKyAnKScsXG4gICAgICBhc3QgICAgPSBlc3ByaW1hLnBhcnNlKHNvdXJjZSwgeyByYW5nZTogdHJ1ZSB9KSxcbiAgICAgIHBhcmFtcyA9IFtdLFxuICAgICAgYm9keTtcblxuICBpZiAoJ1Byb2dyYW0nICAgICAgICAgICAgICE9PSBhc3QudHlwZSAgICAgICAgIHx8XG4gICAgICAxICAgICAgICAgICAgICAgICAgICAgIT09IGFzdC5ib2R5Lmxlbmd0aCAgfHxcbiAgICAgICdFeHByZXNzaW9uU3RhdGVtZW50JyAhPT0gYXN0LmJvZHlbMF0udHlwZSB8fFxuICAgICAgJ0Z1bmN0aW9uRXhwcmVzc2lvbicgICE9PSBhc3QuYm9keVswXS5leHByZXNzaW9uLnR5cGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byByZXNvbHZlIGZ1bmN0aW9uJyk7XG4gIH1cblxuICBhc3QuYm9keVswXS5leHByZXNzaW9uLnBhcmFtcy5mb3JFYWNoKGZ1bmN0aW9uIChwYXJhbSkge1xuICAgIHBhcmFtcy5wdXNoKHBhcmFtLm5hbWUpO1xuICB9KTtcblxuICBib2R5ID0gYXN0LmJvZHlbMF0uZXhwcmVzc2lvbi5ib2R5LnJhbmdlO1xuXG4gIC8vIEVzcHJpbWEncyByYW5nZXMgaW5jbHVkZSB0aGUgZmlyc3QgJ3snIGFuZCB0aGUgbGFzdCAnfScgY2hhcmFjdGVycyBvblxuICAvLyBmdW5jdGlvbiBleHByZXNzaW9ucy4gU28gY3V0IHRoZW0gb3V0LlxuICAvKmVzbGludC1kaXNhYmxlIG5vLW5ldy1mdW5jKi9cbiAgcmV0dXJuIG5ldyBGdW5jdGlvbihwYXJhbXMsIHNvdXJjZS5zbGljZShib2R5WzBdICsgMSwgYm9keVsxXSAtIDEpKTtcbn1cblxuZnVuY3Rpb24gcmVwcmVzZW50SmF2YXNjcmlwdEZ1bmN0aW9uKG9iamVjdCAvKiwgc3R5bGUqLykge1xuICByZXR1cm4gb2JqZWN0LnRvU3RyaW5nKCk7XG59XG5cbmZ1bmN0aW9uIGlzRnVuY3Rpb24ob2JqZWN0KSB7XG4gIHJldHVybiAnW29iamVjdCBGdW5jdGlvbl0nID09PSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6anMvZnVuY3Rpb24nLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlSmF2YXNjcmlwdEZ1bmN0aW9uLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdEphdmFzY3JpcHRGdW5jdGlvbixcbiAgcHJlZGljYXRlOiBpc0Z1bmN0aW9uLFxuICByZXByZXNlbnQ6IHJlcHJlc2VudEphdmFzY3JpcHRGdW5jdGlvblxufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vLi4vdHlwZScpO1xuXG5mdW5jdGlvbiByZXNvbHZlSmF2YXNjcmlwdFJlZ0V4cChkYXRhKSB7XG4gIGlmIChudWxsID09PSBkYXRhKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKDAgPT09IGRhdGEubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIHJlZ2V4cCA9IGRhdGEsXG4gICAgICB0YWlsICAgPSAvXFwvKFtnaW1dKikkLy5leGVjKGRhdGEpLFxuICAgICAgbW9kaWZpZXJzID0gJyc7XG5cbiAgLy8gaWYgcmVnZXhwIHN0YXJ0cyB3aXRoICcvJyBpdCBjYW4gaGF2ZSBtb2RpZmllcnMgYW5kIG11c3QgYmUgcHJvcGVybHkgY2xvc2VkXG4gIC8vIGAvZm9vL2dpbWAgLSBtb2RpZmllcnMgdGFpbCBjYW4gYmUgbWF4aW11bSAzIGNoYXJzXG4gIGlmICgnLycgPT09IHJlZ2V4cFswXSkge1xuICAgIGlmICh0YWlsKSB7XG4gICAgICBtb2RpZmllcnMgPSB0YWlsWzFdO1xuICAgIH1cblxuICAgIGlmIChtb2RpZmllcnMubGVuZ3RoID4gMykgeyByZXR1cm4gZmFsc2U7IH1cbiAgICAvLyBpZiBleHByZXNzaW9uIHN0YXJ0cyB3aXRoIC8sIGlzIHNob3VsZCBiZSBwcm9wZXJseSB0ZXJtaW5hdGVkXG4gICAgaWYgKHJlZ2V4cFtyZWdleHAubGVuZ3RoIC0gbW9kaWZpZXJzLmxlbmd0aCAtIDFdICE9PSAnLycpIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgICByZWdleHAgPSByZWdleHAuc2xpY2UoMSwgcmVnZXhwLmxlbmd0aCAtIG1vZGlmaWVycy5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgdmFyIGR1bW15ID0gbmV3IFJlZ0V4cChyZWdleHAsIG1vZGlmaWVycyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdEphdmFzY3JpcHRSZWdFeHAoZGF0YSkge1xuICB2YXIgcmVnZXhwID0gZGF0YSxcbiAgICAgIHRhaWwgICA9IC9cXC8oW2dpbV0qKSQvLmV4ZWMoZGF0YSksXG4gICAgICBtb2RpZmllcnMgPSAnJztcblxuICAvLyBgL2Zvby9naW1gIC0gdGFpbCBjYW4gYmUgbWF4aW11bSA0IGNoYXJzXG4gIGlmICgnLycgPT09IHJlZ2V4cFswXSkge1xuICAgIGlmICh0YWlsKSB7XG4gICAgICBtb2RpZmllcnMgPSB0YWlsWzFdO1xuICAgIH1cbiAgICByZWdleHAgPSByZWdleHAuc2xpY2UoMSwgcmVnZXhwLmxlbmd0aCAtIG1vZGlmaWVycy5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUmVnRXhwKHJlZ2V4cCwgbW9kaWZpZXJzKTtcbn1cblxuZnVuY3Rpb24gcmVwcmVzZW50SmF2YXNjcmlwdFJlZ0V4cChvYmplY3QgLyosIHN0eWxlKi8pIHtcbiAgdmFyIHJlc3VsdCA9ICcvJyArIG9iamVjdC5zb3VyY2UgKyAnLyc7XG5cbiAgaWYgKG9iamVjdC5nbG9iYWwpIHtcbiAgICByZXN1bHQgKz0gJ2cnO1xuICB9XG5cbiAgaWYgKG9iamVjdC5tdWx0aWxpbmUpIHtcbiAgICByZXN1bHQgKz0gJ20nO1xuICB9XG5cbiAgaWYgKG9iamVjdC5pZ25vcmVDYXNlKSB7XG4gICAgcmVzdWx0ICs9ICdpJztcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGlzUmVnRXhwKG9iamVjdCkge1xuICByZXR1cm4gJ1tvYmplY3QgUmVnRXhwXScgPT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpqcy9yZWdleHAnLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlSmF2YXNjcmlwdFJlZ0V4cCxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RKYXZhc2NyaXB0UmVnRXhwLFxuICBwcmVkaWNhdGU6IGlzUmVnRXhwLFxuICByZXByZXNlbnQ6IHJlcHJlc2VudEphdmFzY3JpcHRSZWdFeHBcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uLy4uL3R5cGUnKTtcblxuZnVuY3Rpb24gcmVzb2x2ZUphdmFzY3JpcHRVbmRlZmluZWQoKSB7XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RKYXZhc2NyaXB0VW5kZWZpbmVkKCkge1xuICAvKmVzbGludC1kaXNhYmxlIG5vLXVuZGVmaW5lZCovXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIHJlcHJlc2VudEphdmFzY3JpcHRVbmRlZmluZWQoKSB7XG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gaXNVbmRlZmluZWQob2JqZWN0KSB7XG4gIHJldHVybiAndW5kZWZpbmVkJyA9PT0gdHlwZW9mIG9iamVjdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6anMvdW5kZWZpbmVkJywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZUphdmFzY3JpcHRVbmRlZmluZWQsXG4gIGNvbnN0cnVjdDogY29uc3RydWN0SmF2YXNjcmlwdFVuZGVmaW5lZCxcbiAgcHJlZGljYXRlOiBpc1VuZGVmaW5lZCxcbiAgcmVwcmVzZW50OiByZXByZXNlbnRKYXZhc2NyaXB0VW5kZWZpbmVkXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gbmV3IFR5cGUoJ3RhZzp5YW1sLm9yZywyMDAyOm1hcCcsIHtcbiAga2luZDogJ21hcHBpbmcnLFxuICBjb25zdHJ1Y3Q6IGZ1bmN0aW9uIChkYXRhKSB7IHJldHVybiBudWxsICE9PSBkYXRhID8gZGF0YSA6IHt9OyB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbmZ1bmN0aW9uIHJlc29sdmVZYW1sTWVyZ2UoZGF0YSkge1xuICByZXR1cm4gJzw8JyA9PT0gZGF0YSB8fCBudWxsID09PSBkYXRhO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjptZXJnZScsIHtcbiAga2luZDogJ3NjYWxhcicsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sTWVyZ2Vcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxOdWxsKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHZhciBtYXggPSBkYXRhLmxlbmd0aDtcblxuICByZXR1cm4gKG1heCA9PT0gMSAmJiBkYXRhID09PSAnficpIHx8XG4gICAgICAgICAobWF4ID09PSA0ICYmIChkYXRhID09PSAnbnVsbCcgfHwgZGF0YSA9PT0gJ051bGwnIHx8IGRhdGEgPT09ICdOVUxMJykpO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sTnVsbCgpIHtcbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGlzTnVsbChvYmplY3QpIHtcbiAgcmV0dXJuIG51bGwgPT09IG9iamVjdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6bnVsbCcsIHtcbiAga2luZDogJ3NjYWxhcicsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sTnVsbCxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sTnVsbCxcbiAgcHJlZGljYXRlOiBpc051bGwsXG4gIHJlcHJlc2VudDoge1xuICAgIGNhbm9uaWNhbDogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ34nOyAgICB9LFxuICAgIGxvd2VyY2FzZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ251bGwnOyB9LFxuICAgIHVwcGVyY2FzZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ05VTEwnOyB9LFxuICAgIGNhbWVsY2FzZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ051bGwnOyB9XG4gIH0sXG4gIGRlZmF1bHRTdHlsZTogJ2xvd2VyY2FzZSdcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxudmFyIF9oYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX3RvU3RyaW5nICAgICAgID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxPbWFwKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHZhciBvYmplY3RLZXlzID0gW10sIGluZGV4LCBsZW5ndGgsIHBhaXIsIHBhaXJLZXksIHBhaXJIYXNLZXksXG4gICAgICBvYmplY3QgPSBkYXRhO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHBhaXIgPSBvYmplY3RbaW5kZXhdO1xuICAgIHBhaXJIYXNLZXkgPSBmYWxzZTtcblxuICAgIGlmICgnW29iamVjdCBPYmplY3RdJyAhPT0gX3RvU3RyaW5nLmNhbGwocGFpcikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmb3IgKHBhaXJLZXkgaW4gcGFpcikge1xuICAgICAgaWYgKF9oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhaXIsIHBhaXJLZXkpKSB7XG4gICAgICAgIGlmICghcGFpckhhc0tleSkge1xuICAgICAgICAgIHBhaXJIYXNLZXkgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghcGFpckhhc0tleSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICgtMSA9PT0gb2JqZWN0S2V5cy5pbmRleE9mKHBhaXJLZXkpKSB7XG4gICAgICBvYmplY3RLZXlzLnB1c2gocGFpcktleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0WWFtbE9tYXAoZGF0YSkge1xuICByZXR1cm4gbnVsbCAhPT0gZGF0YSA/IGRhdGEgOiBbXTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6b21hcCcsIHtcbiAga2luZDogJ3NlcXVlbmNlJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxPbWFwLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxPbWFwXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbnZhciBfdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG5mdW5jdGlvbiByZXNvbHZlWWFtbFBhaXJzKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHZhciBpbmRleCwgbGVuZ3RoLCBwYWlyLCBrZXlzLCByZXN1bHQsXG4gICAgICBvYmplY3QgPSBkYXRhO1xuXG4gIHJlc3VsdCA9IG5ldyBBcnJheShvYmplY3QubGVuZ3RoKTtcblxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBwYWlyID0gb2JqZWN0W2luZGV4XTtcblxuICAgIGlmICgnW29iamVjdCBPYmplY3RdJyAhPT0gX3RvU3RyaW5nLmNhbGwocGFpcikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBrZXlzID0gT2JqZWN0LmtleXMocGFpcik7XG5cbiAgICBpZiAoMSAhPT0ga2V5cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXN1bHRbaW5kZXhdID0gWyBrZXlzWzBdLCBwYWlyW2tleXNbMF1dIF07XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0WWFtbFBhaXJzKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICB2YXIgaW5kZXgsIGxlbmd0aCwgcGFpciwga2V5cywgcmVzdWx0LFxuICAgICAgb2JqZWN0ID0gZGF0YTtcblxuICByZXN1bHQgPSBuZXcgQXJyYXkob2JqZWN0Lmxlbmd0aCk7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgcGFpciA9IG9iamVjdFtpbmRleF07XG5cbiAgICBrZXlzID0gT2JqZWN0LmtleXMocGFpcik7XG5cbiAgICByZXN1bHRbaW5kZXhdID0gWyBrZXlzWzBdLCBwYWlyW2tleXNbMF1dIF07XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpwYWlycycsIHtcbiAga2luZDogJ3NlcXVlbmNlJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxQYWlycyxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sUGFpcnNcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6c2VxJywge1xuICBraW5kOiAnc2VxdWVuY2UnLFxuICBjb25zdHJ1Y3Q6IGZ1bmN0aW9uIChkYXRhKSB7IHJldHVybiBudWxsICE9PSBkYXRhID8gZGF0YSA6IFtdOyB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbnZhciBfaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG5mdW5jdGlvbiByZXNvbHZlWWFtbFNldChkYXRhKSB7XG4gIGlmIChudWxsID09PSBkYXRhKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YXIga2V5LCBvYmplY3QgPSBkYXRhO1xuXG4gIGZvciAoa2V5IGluIG9iamVjdCkge1xuICAgIGlmIChfaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpIHtcbiAgICAgIGlmIChudWxsICE9PSBvYmplY3Rba2V5XSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxTZXQoZGF0YSkge1xuICByZXR1cm4gbnVsbCAhPT0gZGF0YSA/IGRhdGEgOiB7fTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6c2V0Jywge1xuICBraW5kOiAnbWFwcGluZycsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sU2V0LFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxTZXRcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6c3RyJywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgY29uc3RydWN0OiBmdW5jdGlvbiAoZGF0YSkgeyByZXR1cm4gbnVsbCAhPT0gZGF0YSA/IGRhdGEgOiAnJzsgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vdHlwZScpO1xuXG52YXIgWUFNTF9USU1FU1RBTVBfUkVHRVhQID0gbmV3IFJlZ0V4cChcbiAgJ14oWzAtOV1bMC05XVswLTldWzAtOV0pJyAgICAgICAgICArIC8vIFsxXSB5ZWFyXG4gICctKFswLTldWzAtOV0/KScgICAgICAgICAgICAgICAgICAgKyAvLyBbMl0gbW9udGhcbiAgJy0oWzAtOV1bMC05XT8pJyAgICAgICAgICAgICAgICAgICArIC8vIFszXSBkYXlcbiAgJyg/Oig/OltUdF18WyBcXFxcdF0rKScgICAgICAgICAgICAgICsgLy8gLi4uXG4gICcoWzAtOV1bMC05XT8pJyAgICAgICAgICAgICAgICAgICAgKyAvLyBbNF0gaG91clxuICAnOihbMC05XVswLTldKScgICAgICAgICAgICAgICAgICAgICsgLy8gWzVdIG1pbnV0ZVxuICAnOihbMC05XVswLTldKScgICAgICAgICAgICAgICAgICAgICsgLy8gWzZdIHNlY29uZFxuICAnKD86XFxcXC4oWzAtOV0qKSk/JyAgICAgICAgICAgICAgICAgKyAvLyBbN10gZnJhY3Rpb25cbiAgJyg/OlsgXFxcXHRdKihafChbLStdKShbMC05XVswLTldPyknICsgLy8gWzhdIHR6IFs5XSB0el9zaWduIFsxMF0gdHpfaG91clxuICAnKD86OihbMC05XVswLTldKSk/KSk/KT8kJyk7ICAgICAgICAgLy8gWzExXSB0el9taW51dGVcblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxUaW1lc3RhbXAoZGF0YSkge1xuICBpZiAobnVsbCA9PT0gZGF0YSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBtYXRjaCwgeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIGZyYWN0aW9uID0gMCxcbiAgICAgIGRlbHRhID0gbnVsbCwgdHpfaG91ciwgdHpfbWludXRlLCBkYXRlO1xuXG4gIG1hdGNoID0gWUFNTF9USU1FU1RBTVBfUkVHRVhQLmV4ZWMoZGF0YSk7XG5cbiAgaWYgKG51bGwgPT09IG1hdGNoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxUaW1lc3RhbXAoZGF0YSkge1xuICB2YXIgbWF0Y2gsIHllYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBmcmFjdGlvbiA9IDAsXG4gICAgICBkZWx0YSA9IG51bGwsIHR6X2hvdXIsIHR6X21pbnV0ZSwgZGF0ZTtcblxuICBtYXRjaCA9IFlBTUxfVElNRVNUQU1QX1JFR0VYUC5leGVjKGRhdGEpO1xuXG4gIGlmIChudWxsID09PSBtYXRjaCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRGF0ZSByZXNvbHZlIGVycm9yJyk7XG4gIH1cblxuICAvLyBtYXRjaDogWzFdIHllYXIgWzJdIG1vbnRoIFszXSBkYXlcblxuICB5ZWFyID0gKyhtYXRjaFsxXSk7XG4gIG1vbnRoID0gKyhtYXRjaFsyXSkgLSAxOyAvLyBKUyBtb250aCBzdGFydHMgd2l0aCAwXG4gIGRheSA9ICsobWF0Y2hbM10pO1xuXG4gIGlmICghbWF0Y2hbNF0pIHsgLy8gbm8gaG91clxuICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLCBtb250aCwgZGF5KSk7XG4gIH1cblxuICAvLyBtYXRjaDogWzRdIGhvdXIgWzVdIG1pbnV0ZSBbNl0gc2Vjb25kIFs3XSBmcmFjdGlvblxuXG4gIGhvdXIgPSArKG1hdGNoWzRdKTtcbiAgbWludXRlID0gKyhtYXRjaFs1XSk7XG4gIHNlY29uZCA9ICsobWF0Y2hbNl0pO1xuXG4gIGlmIChtYXRjaFs3XSkge1xuICAgIGZyYWN0aW9uID0gbWF0Y2hbN10uc2xpY2UoMCwgMyk7XG4gICAgd2hpbGUgKGZyYWN0aW9uLmxlbmd0aCA8IDMpIHsgLy8gbWlsbGktc2Vjb25kc1xuICAgICAgZnJhY3Rpb24gKz0gJzAnO1xuICAgIH1cbiAgICBmcmFjdGlvbiA9ICtmcmFjdGlvbjtcbiAgfVxuXG4gIC8vIG1hdGNoOiBbOF0gdHogWzldIHR6X3NpZ24gWzEwXSB0el9ob3VyIFsxMV0gdHpfbWludXRlXG5cbiAgaWYgKG1hdGNoWzldKSB7XG4gICAgdHpfaG91ciA9ICsobWF0Y2hbMTBdKTtcbiAgICB0el9taW51dGUgPSArKG1hdGNoWzExXSB8fCAwKTtcbiAgICBkZWx0YSA9ICh0el9ob3VyICogNjAgKyB0el9taW51dGUpICogNjAwMDA7IC8vIGRlbHRhIGluIG1pbGktc2Vjb25kc1xuICAgIGlmICgnLScgPT09IG1hdGNoWzldKSB7XG4gICAgICBkZWx0YSA9IC1kZWx0YTtcbiAgICB9XG4gIH1cblxuICBkYXRlID0gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIGZyYWN0aW9uKSk7XG5cbiAgaWYgKGRlbHRhKSB7XG4gICAgZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpIC0gZGVsdGEpO1xuICB9XG5cbiAgcmV0dXJuIGRhdGU7XG59XG5cbmZ1bmN0aW9uIHJlcHJlc2VudFlhbWxUaW1lc3RhbXAob2JqZWN0IC8qLCBzdHlsZSovKSB7XG4gIHJldHVybiBvYmplY3QudG9JU09TdHJpbmcoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6dGltZXN0YW1wJywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxUaW1lc3RhbXAsXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbFRpbWVzdGFtcCxcbiAgaW5zdGFuY2VPZjogRGF0ZSxcbiAgcmVwcmVzZW50OiByZXByZXNlbnRZYW1sVGltZXN0YW1wXG59KTtcbiIsIi8qXG4gIENvcHlyaWdodCAoQykgMjAxMyBBcml5YSBIaWRheWF0IDxhcml5YS5oaWRheWF0QGdtYWlsLmNvbT5cbiAgQ29weXJpZ2h0IChDKSAyMDEzIFRoYWRkZWUgVHlsIDx0aGFkZGVlLnR5bEBnbWFpbC5jb20+XG4gIENvcHlyaWdodCAoQykgMjAxMyBNYXRoaWFzIEJ5bmVucyA8bWF0aGlhc0BxaXdpLmJlPlxuICBDb3B5cmlnaHQgKEMpIDIwMTIgQXJpeWEgSGlkYXlhdCA8YXJpeWEuaGlkYXlhdEBnbWFpbC5jb20+XG4gIENvcHlyaWdodCAoQykgMjAxMiBNYXRoaWFzIEJ5bmVucyA8bWF0aGlhc0BxaXdpLmJlPlxuICBDb3B5cmlnaHQgKEMpIDIwMTIgSm9vc3QtV2ltIEJvZWtlc3RlaWpuIDxqb29zdC13aW1AYm9la2VzdGVpam4ubmw+XG4gIENvcHlyaWdodCAoQykgMjAxMiBLcmlzIEtvd2FsIDxrcmlzLmtvd2FsQGNpeGFyLmNvbT5cbiAgQ29weXJpZ2h0IChDKSAyMDEyIFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT5cbiAgQ29weXJpZ2h0IChDKSAyMDEyIEFycGFkIEJvcnNvcyA8YXJwYWQuYm9yc29zQGdvb2dsZW1haWwuY29tPlxuICBDb3B5cmlnaHQgKEMpIDIwMTEgQXJpeWEgSGlkYXlhdCA8YXJpeWEuaGlkYXlhdEBnbWFpbC5jb20+XG5cbiAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0XG4gIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OlxuXG4gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodFxuICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLlxuICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHRcbiAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGVcbiAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG5cbiAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyBcIkFTIElTXCJcbiAgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRVxuICBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRVxuICBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgPENPUFlSSUdIVCBIT0xERVI+IEJFIExJQUJMRSBGT1IgQU5ZXG4gIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTXG4gIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUztcbiAgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EXG4gIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUXG4gIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRlxuICBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuKi9cblxuKGZ1bmN0aW9uIChyb290LCBmYWN0b3J5KSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8gVW5pdmVyc2FsIE1vZHVsZSBEZWZpbml0aW9uIChVTUQpIHRvIHN1cHBvcnQgQU1ELCBDb21tb25KUy9Ob2RlLmpzLFxuICAgIC8vIFJoaW5vLCBhbmQgcGxhaW4gYnJvd3NlciBsb2FkaW5nLlxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XG4gICAgICAgIGRlZmluZShbJ2V4cG9ydHMnXSwgZmFjdG9yeSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgZmFjdG9yeShleHBvcnRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBmYWN0b3J5KChyb290LmVzcHJpbWEgPSB7fSkpO1xuICAgIH1cbn0odGhpcywgZnVuY3Rpb24gKGV4cG9ydHMpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICB2YXIgVG9rZW4sXG4gICAgICAgIFRva2VuTmFtZSxcbiAgICAgICAgRm5FeHByVG9rZW5zLFxuICAgICAgICBTeW50YXgsXG4gICAgICAgIFBsYWNlSG9sZGVycyxcbiAgICAgICAgTWVzc2FnZXMsXG4gICAgICAgIFJlZ2V4LFxuICAgICAgICBzb3VyY2UsXG4gICAgICAgIHN0cmljdCxcbiAgICAgICAgc291cmNlVHlwZSxcbiAgICAgICAgaW5kZXgsXG4gICAgICAgIGxpbmVOdW1iZXIsXG4gICAgICAgIGxpbmVTdGFydCxcbiAgICAgICAgaGFzTGluZVRlcm1pbmF0b3IsXG4gICAgICAgIGxhc3RJbmRleCxcbiAgICAgICAgbGFzdExpbmVOdW1iZXIsXG4gICAgICAgIGxhc3RMaW5lU3RhcnQsXG4gICAgICAgIHN0YXJ0SW5kZXgsXG4gICAgICAgIHN0YXJ0TGluZU51bWJlcixcbiAgICAgICAgc3RhcnRMaW5lU3RhcnQsXG4gICAgICAgIHNjYW5uaW5nLFxuICAgICAgICBsZW5ndGgsXG4gICAgICAgIGxvb2thaGVhZCxcbiAgICAgICAgc3RhdGUsXG4gICAgICAgIGV4dHJhLFxuICAgICAgICBpc0JpbmRpbmdFbGVtZW50LFxuICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQsXG4gICAgICAgIGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvcjtcblxuICAgIFRva2VuID0ge1xuICAgICAgICBCb29sZWFuTGl0ZXJhbDogMSxcbiAgICAgICAgRU9GOiAyLFxuICAgICAgICBJZGVudGlmaWVyOiAzLFxuICAgICAgICBLZXl3b3JkOiA0LFxuICAgICAgICBOdWxsTGl0ZXJhbDogNSxcbiAgICAgICAgTnVtZXJpY0xpdGVyYWw6IDYsXG4gICAgICAgIFB1bmN0dWF0b3I6IDcsXG4gICAgICAgIFN0cmluZ0xpdGVyYWw6IDgsXG4gICAgICAgIFJlZ3VsYXJFeHByZXNzaW9uOiA5LFxuICAgICAgICBUZW1wbGF0ZTogMTBcbiAgICB9O1xuXG4gICAgVG9rZW5OYW1lID0ge307XG4gICAgVG9rZW5OYW1lW1Rva2VuLkJvb2xlYW5MaXRlcmFsXSA9ICdCb29sZWFuJztcbiAgICBUb2tlbk5hbWVbVG9rZW4uRU9GXSA9ICc8ZW5kPic7XG4gICAgVG9rZW5OYW1lW1Rva2VuLklkZW50aWZpZXJdID0gJ0lkZW50aWZpZXInO1xuICAgIFRva2VuTmFtZVtUb2tlbi5LZXl3b3JkXSA9ICdLZXl3b3JkJztcbiAgICBUb2tlbk5hbWVbVG9rZW4uTnVsbExpdGVyYWxdID0gJ051bGwnO1xuICAgIFRva2VuTmFtZVtUb2tlbi5OdW1lcmljTGl0ZXJhbF0gPSAnTnVtZXJpYyc7XG4gICAgVG9rZW5OYW1lW1Rva2VuLlB1bmN0dWF0b3JdID0gJ1B1bmN0dWF0b3InO1xuICAgIFRva2VuTmFtZVtUb2tlbi5TdHJpbmdMaXRlcmFsXSA9ICdTdHJpbmcnO1xuICAgIFRva2VuTmFtZVtUb2tlbi5SZWd1bGFyRXhwcmVzc2lvbl0gPSAnUmVndWxhckV4cHJlc3Npb24nO1xuICAgIFRva2VuTmFtZVtUb2tlbi5UZW1wbGF0ZV0gPSAnVGVtcGxhdGUnO1xuXG4gICAgLy8gQSBmdW5jdGlvbiBmb2xsb3dpbmcgb25lIG9mIHRob3NlIHRva2VucyBpcyBhbiBleHByZXNzaW9uLlxuICAgIEZuRXhwclRva2VucyA9IFsnKCcsICd7JywgJ1snLCAnaW4nLCAndHlwZW9mJywgJ2luc3RhbmNlb2YnLCAnbmV3JyxcbiAgICAgICAgICAgICAgICAgICAgJ3JldHVybicsICdjYXNlJywgJ2RlbGV0ZScsICd0aHJvdycsICd2b2lkJyxcbiAgICAgICAgICAgICAgICAgICAgLy8gYXNzaWdubWVudCBvcGVyYXRvcnNcbiAgICAgICAgICAgICAgICAgICAgJz0nLCAnKz0nLCAnLT0nLCAnKj0nLCAnLz0nLCAnJT0nLCAnPDw9JywgJz4+PScsICc+Pj49JyxcbiAgICAgICAgICAgICAgICAgICAgJyY9JywgJ3w9JywgJ149JywgJywnLFxuICAgICAgICAgICAgICAgICAgICAvLyBiaW5hcnkvdW5hcnkgb3BlcmF0b3JzXG4gICAgICAgICAgICAgICAgICAgICcrJywgJy0nLCAnKicsICcvJywgJyUnLCAnKysnLCAnLS0nLCAnPDwnLCAnPj4nLCAnPj4+JywgJyYnLFxuICAgICAgICAgICAgICAgICAgICAnfCcsICdeJywgJyEnLCAnficsICcmJicsICd8fCcsICc/JywgJzonLCAnPT09JywgJz09JywgJz49JyxcbiAgICAgICAgICAgICAgICAgICAgJzw9JywgJzwnLCAnPicsICchPScsICchPT0nXTtcblxuICAgIFN5bnRheCA9IHtcbiAgICAgICAgQXNzaWdubWVudEV4cHJlc3Npb246ICdBc3NpZ25tZW50RXhwcmVzc2lvbicsXG4gICAgICAgIEFzc2lnbm1lbnRQYXR0ZXJuOiAnQXNzaWdubWVudFBhdHRlcm4nLFxuICAgICAgICBBcnJheUV4cHJlc3Npb246ICdBcnJheUV4cHJlc3Npb24nLFxuICAgICAgICBBcnJheVBhdHRlcm46ICdBcnJheVBhdHRlcm4nLFxuICAgICAgICBBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbjogJ0Fycm93RnVuY3Rpb25FeHByZXNzaW9uJyxcbiAgICAgICAgQmxvY2tTdGF0ZW1lbnQ6ICdCbG9ja1N0YXRlbWVudCcsXG4gICAgICAgIEJpbmFyeUV4cHJlc3Npb246ICdCaW5hcnlFeHByZXNzaW9uJyxcbiAgICAgICAgQnJlYWtTdGF0ZW1lbnQ6ICdCcmVha1N0YXRlbWVudCcsXG4gICAgICAgIENhbGxFeHByZXNzaW9uOiAnQ2FsbEV4cHJlc3Npb24nLFxuICAgICAgICBDYXRjaENsYXVzZTogJ0NhdGNoQ2xhdXNlJyxcbiAgICAgICAgQ2xhc3NCb2R5OiAnQ2xhc3NCb2R5JyxcbiAgICAgICAgQ2xhc3NEZWNsYXJhdGlvbjogJ0NsYXNzRGVjbGFyYXRpb24nLFxuICAgICAgICBDbGFzc0V4cHJlc3Npb246ICdDbGFzc0V4cHJlc3Npb24nLFxuICAgICAgICBDb25kaXRpb25hbEV4cHJlc3Npb246ICdDb25kaXRpb25hbEV4cHJlc3Npb24nLFxuICAgICAgICBDb250aW51ZVN0YXRlbWVudDogJ0NvbnRpbnVlU3RhdGVtZW50JyxcbiAgICAgICAgRG9XaGlsZVN0YXRlbWVudDogJ0RvV2hpbGVTdGF0ZW1lbnQnLFxuICAgICAgICBEZWJ1Z2dlclN0YXRlbWVudDogJ0RlYnVnZ2VyU3RhdGVtZW50JyxcbiAgICAgICAgRW1wdHlTdGF0ZW1lbnQ6ICdFbXB0eVN0YXRlbWVudCcsXG4gICAgICAgIEV4cG9ydEFsbERlY2xhcmF0aW9uOiAnRXhwb3J0QWxsRGVjbGFyYXRpb24nLFxuICAgICAgICBFeHBvcnREZWZhdWx0RGVjbGFyYXRpb246ICdFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24nLFxuICAgICAgICBFeHBvcnROYW1lZERlY2xhcmF0aW9uOiAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbicsXG4gICAgICAgIEV4cG9ydFNwZWNpZmllcjogJ0V4cG9ydFNwZWNpZmllcicsXG4gICAgICAgIEV4cHJlc3Npb25TdGF0ZW1lbnQ6ICdFeHByZXNzaW9uU3RhdGVtZW50JyxcbiAgICAgICAgRm9yU3RhdGVtZW50OiAnRm9yU3RhdGVtZW50JyxcbiAgICAgICAgRm9ySW5TdGF0ZW1lbnQ6ICdGb3JJblN0YXRlbWVudCcsXG4gICAgICAgIEZ1bmN0aW9uRGVjbGFyYXRpb246ICdGdW5jdGlvbkRlY2xhcmF0aW9uJyxcbiAgICAgICAgRnVuY3Rpb25FeHByZXNzaW9uOiAnRnVuY3Rpb25FeHByZXNzaW9uJyxcbiAgICAgICAgSWRlbnRpZmllcjogJ0lkZW50aWZpZXInLFxuICAgICAgICBJZlN0YXRlbWVudDogJ0lmU3RhdGVtZW50JyxcbiAgICAgICAgSW1wb3J0RGVjbGFyYXRpb246ICdJbXBvcnREZWNsYXJhdGlvbicsXG4gICAgICAgIEltcG9ydERlZmF1bHRTcGVjaWZpZXI6ICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJyxcbiAgICAgICAgSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyOiAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJyxcbiAgICAgICAgSW1wb3J0U3BlY2lmaWVyOiAnSW1wb3J0U3BlY2lmaWVyJyxcbiAgICAgICAgTGl0ZXJhbDogJ0xpdGVyYWwnLFxuICAgICAgICBMYWJlbGVkU3RhdGVtZW50OiAnTGFiZWxlZFN0YXRlbWVudCcsXG4gICAgICAgIExvZ2ljYWxFeHByZXNzaW9uOiAnTG9naWNhbEV4cHJlc3Npb24nLFxuICAgICAgICBNZW1iZXJFeHByZXNzaW9uOiAnTWVtYmVyRXhwcmVzc2lvbicsXG4gICAgICAgIE1ldGhvZERlZmluaXRpb246ICdNZXRob2REZWZpbml0aW9uJyxcbiAgICAgICAgTmV3RXhwcmVzc2lvbjogJ05ld0V4cHJlc3Npb24nLFxuICAgICAgICBPYmplY3RFeHByZXNzaW9uOiAnT2JqZWN0RXhwcmVzc2lvbicsXG4gICAgICAgIE9iamVjdFBhdHRlcm46ICdPYmplY3RQYXR0ZXJuJyxcbiAgICAgICAgUHJvZ3JhbTogJ1Byb2dyYW0nLFxuICAgICAgICBQcm9wZXJ0eTogJ1Byb3BlcnR5JyxcbiAgICAgICAgUmVzdEVsZW1lbnQ6ICdSZXN0RWxlbWVudCcsXG4gICAgICAgIFJldHVyblN0YXRlbWVudDogJ1JldHVyblN0YXRlbWVudCcsXG4gICAgICAgIFNlcXVlbmNlRXhwcmVzc2lvbjogJ1NlcXVlbmNlRXhwcmVzc2lvbicsXG4gICAgICAgIFNwcmVhZEVsZW1lbnQ6ICdTcHJlYWRFbGVtZW50JyxcbiAgICAgICAgU3VwZXI6ICdTdXBlcicsXG4gICAgICAgIFN3aXRjaENhc2U6ICdTd2l0Y2hDYXNlJyxcbiAgICAgICAgU3dpdGNoU3RhdGVtZW50OiAnU3dpdGNoU3RhdGVtZW50JyxcbiAgICAgICAgVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uOiAnVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uJyxcbiAgICAgICAgVGVtcGxhdGVFbGVtZW50OiAnVGVtcGxhdGVFbGVtZW50JyxcbiAgICAgICAgVGVtcGxhdGVMaXRlcmFsOiAnVGVtcGxhdGVMaXRlcmFsJyxcbiAgICAgICAgVGhpc0V4cHJlc3Npb246ICdUaGlzRXhwcmVzc2lvbicsXG4gICAgICAgIFRocm93U3RhdGVtZW50OiAnVGhyb3dTdGF0ZW1lbnQnLFxuICAgICAgICBUcnlTdGF0ZW1lbnQ6ICdUcnlTdGF0ZW1lbnQnLFxuICAgICAgICBVbmFyeUV4cHJlc3Npb246ICdVbmFyeUV4cHJlc3Npb24nLFxuICAgICAgICBVcGRhdGVFeHByZXNzaW9uOiAnVXBkYXRlRXhwcmVzc2lvbicsXG4gICAgICAgIFZhcmlhYmxlRGVjbGFyYXRpb246ICdWYXJpYWJsZURlY2xhcmF0aW9uJyxcbiAgICAgICAgVmFyaWFibGVEZWNsYXJhdG9yOiAnVmFyaWFibGVEZWNsYXJhdG9yJyxcbiAgICAgICAgV2hpbGVTdGF0ZW1lbnQ6ICdXaGlsZVN0YXRlbWVudCcsXG4gICAgICAgIFdpdGhTdGF0ZW1lbnQ6ICdXaXRoU3RhdGVtZW50J1xuICAgIH07XG5cbiAgICBQbGFjZUhvbGRlcnMgPSB7XG4gICAgICAgIEFycm93UGFyYW1ldGVyUGxhY2VIb2xkZXI6ICdBcnJvd1BhcmFtZXRlclBsYWNlSG9sZGVyJ1xuICAgIH07XG5cbiAgICAvLyBFcnJvciBtZXNzYWdlcyBzaG91bGQgYmUgaWRlbnRpY2FsIHRvIFY4LlxuICAgIE1lc3NhZ2VzID0ge1xuICAgICAgICBVbmV4cGVjdGVkVG9rZW46ICdVbmV4cGVjdGVkIHRva2VuICUwJyxcbiAgICAgICAgVW5leHBlY3RlZE51bWJlcjogJ1VuZXhwZWN0ZWQgbnVtYmVyJyxcbiAgICAgICAgVW5leHBlY3RlZFN0cmluZzogJ1VuZXhwZWN0ZWQgc3RyaW5nJyxcbiAgICAgICAgVW5leHBlY3RlZElkZW50aWZpZXI6ICdVbmV4cGVjdGVkIGlkZW50aWZpZXInLFxuICAgICAgICBVbmV4cGVjdGVkUmVzZXJ2ZWQ6ICdVbmV4cGVjdGVkIHJlc2VydmVkIHdvcmQnLFxuICAgICAgICBVbmV4cGVjdGVkVGVtcGxhdGU6ICdVbmV4cGVjdGVkIHF1YXNpICUwJyxcbiAgICAgICAgVW5leHBlY3RlZEVPUzogJ1VuZXhwZWN0ZWQgZW5kIG9mIGlucHV0JyxcbiAgICAgICAgTmV3bGluZUFmdGVyVGhyb3c6ICdJbGxlZ2FsIG5ld2xpbmUgYWZ0ZXIgdGhyb3cnLFxuICAgICAgICBJbnZhbGlkUmVnRXhwOiAnSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb24nLFxuICAgICAgICBVbnRlcm1pbmF0ZWRSZWdFeHA6ICdJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogbWlzc2luZyAvJyxcbiAgICAgICAgSW52YWxpZExIU0luQXNzaWdubWVudDogJ0ludmFsaWQgbGVmdC1oYW5kIHNpZGUgaW4gYXNzaWdubWVudCcsXG4gICAgICAgIEludmFsaWRMSFNJbkZvckluOiAnSW52YWxpZCBsZWZ0LWhhbmQgc2lkZSBpbiBmb3ItaW4nLFxuICAgICAgICBNdWx0aXBsZURlZmF1bHRzSW5Td2l0Y2g6ICdNb3JlIHRoYW4gb25lIGRlZmF1bHQgY2xhdXNlIGluIHN3aXRjaCBzdGF0ZW1lbnQnLFxuICAgICAgICBOb0NhdGNoT3JGaW5hbGx5OiAnTWlzc2luZyBjYXRjaCBvciBmaW5hbGx5IGFmdGVyIHRyeScsXG4gICAgICAgIFVua25vd25MYWJlbDogJ1VuZGVmaW5lZCBsYWJlbCBcXCclMFxcJycsXG4gICAgICAgIFJlZGVjbGFyYXRpb246ICclMCBcXCclMVxcJyBoYXMgYWxyZWFkeSBiZWVuIGRlY2xhcmVkJyxcbiAgICAgICAgSWxsZWdhbENvbnRpbnVlOiAnSWxsZWdhbCBjb250aW51ZSBzdGF0ZW1lbnQnLFxuICAgICAgICBJbGxlZ2FsQnJlYWs6ICdJbGxlZ2FsIGJyZWFrIHN0YXRlbWVudCcsXG4gICAgICAgIElsbGVnYWxSZXR1cm46ICdJbGxlZ2FsIHJldHVybiBzdGF0ZW1lbnQnLFxuICAgICAgICBTdHJpY3RNb2RlV2l0aDogJ1N0cmljdCBtb2RlIGNvZGUgbWF5IG5vdCBpbmNsdWRlIGEgd2l0aCBzdGF0ZW1lbnQnLFxuICAgICAgICBTdHJpY3RDYXRjaFZhcmlhYmxlOiAnQ2F0Y2ggdmFyaWFibGUgbWF5IG5vdCBiZSBldmFsIG9yIGFyZ3VtZW50cyBpbiBzdHJpY3QgbW9kZScsXG4gICAgICAgIFN0cmljdFZhck5hbWU6ICdWYXJpYWJsZSBuYW1lIG1heSBub3QgYmUgZXZhbCBvciBhcmd1bWVudHMgaW4gc3RyaWN0IG1vZGUnLFxuICAgICAgICBTdHJpY3RQYXJhbU5hbWU6ICdQYXJhbWV0ZXIgbmFtZSBldmFsIG9yIGFyZ3VtZW50cyBpcyBub3QgYWxsb3dlZCBpbiBzdHJpY3QgbW9kZScsXG4gICAgICAgIFN0cmljdFBhcmFtRHVwZTogJ1N0cmljdCBtb2RlIGZ1bmN0aW9uIG1heSBub3QgaGF2ZSBkdXBsaWNhdGUgcGFyYW1ldGVyIG5hbWVzJyxcbiAgICAgICAgU3RyaWN0RnVuY3Rpb25OYW1lOiAnRnVuY3Rpb24gbmFtZSBtYXkgbm90IGJlIGV2YWwgb3IgYXJndW1lbnRzIGluIHN0cmljdCBtb2RlJyxcbiAgICAgICAgU3RyaWN0T2N0YWxMaXRlcmFsOiAnT2N0YWwgbGl0ZXJhbHMgYXJlIG5vdCBhbGxvd2VkIGluIHN0cmljdCBtb2RlLicsXG4gICAgICAgIFN0cmljdERlbGV0ZTogJ0RlbGV0ZSBvZiBhbiB1bnF1YWxpZmllZCBpZGVudGlmaWVyIGluIHN0cmljdCBtb2RlLicsXG4gICAgICAgIFN0cmljdExIU0Fzc2lnbm1lbnQ6ICdBc3NpZ25tZW50IHRvIGV2YWwgb3IgYXJndW1lbnRzIGlzIG5vdCBhbGxvd2VkIGluIHN0cmljdCBtb2RlJyxcbiAgICAgICAgU3RyaWN0TEhTUG9zdGZpeDogJ1Bvc3RmaXggaW5jcmVtZW50L2RlY3JlbWVudCBtYXkgbm90IGhhdmUgZXZhbCBvciBhcmd1bWVudHMgb3BlcmFuZCBpbiBzdHJpY3QgbW9kZScsXG4gICAgICAgIFN0cmljdExIU1ByZWZpeDogJ1ByZWZpeCBpbmNyZW1lbnQvZGVjcmVtZW50IG1heSBub3QgaGF2ZSBldmFsIG9yIGFyZ3VtZW50cyBvcGVyYW5kIGluIHN0cmljdCBtb2RlJyxcbiAgICAgICAgU3RyaWN0UmVzZXJ2ZWRXb3JkOiAnVXNlIG9mIGZ1dHVyZSByZXNlcnZlZCB3b3JkIGluIHN0cmljdCBtb2RlJyxcbiAgICAgICAgVGVtcGxhdGVPY3RhbExpdGVyYWw6ICdPY3RhbCBsaXRlcmFscyBhcmUgbm90IGFsbG93ZWQgaW4gdGVtcGxhdGUgc3RyaW5ncy4nLFxuICAgICAgICBQYXJhbWV0ZXJBZnRlclJlc3RQYXJhbWV0ZXI6ICdSZXN0IHBhcmFtZXRlciBtdXN0IGJlIGxhc3QgZm9ybWFsIHBhcmFtZXRlcicsXG4gICAgICAgIERlZmF1bHRSZXN0UGFyYW1ldGVyOiAnVW5leHBlY3RlZCB0b2tlbiA9JyxcbiAgICAgICAgT2JqZWN0UGF0dGVybkFzUmVzdFBhcmFtZXRlcjogJ1VuZXhwZWN0ZWQgdG9rZW4geycsXG4gICAgICAgIER1cGxpY2F0ZVByb3RvUHJvcGVydHk6ICdEdXBsaWNhdGUgX19wcm90b19fIGZpZWxkcyBhcmUgbm90IGFsbG93ZWQgaW4gb2JqZWN0IGxpdGVyYWxzJyxcbiAgICAgICAgQ29uc3RydWN0b3JTcGVjaWFsTWV0aG9kOiAnQ2xhc3MgY29uc3RydWN0b3IgbWF5IG5vdCBiZSBhbiBhY2Nlc3NvcicsXG4gICAgICAgIER1cGxpY2F0ZUNvbnN0cnVjdG9yOiAnQSBjbGFzcyBtYXkgb25seSBoYXZlIG9uZSBjb25zdHJ1Y3RvcicsXG4gICAgICAgIFN0YXRpY1Byb3RvdHlwZTogJ0NsYXNzZXMgbWF5IG5vdCBoYXZlIHN0YXRpYyBwcm9wZXJ0eSBuYW1lZCBwcm90b3R5cGUnLFxuICAgICAgICBNaXNzaW5nRnJvbUNsYXVzZTogJ1VuZXhwZWN0ZWQgdG9rZW4nLFxuICAgICAgICBOb0FzQWZ0ZXJJbXBvcnROYW1lc3BhY2U6ICdVbmV4cGVjdGVkIHRva2VuJyxcbiAgICAgICAgSW52YWxpZE1vZHVsZVNwZWNpZmllcjogJ1VuZXhwZWN0ZWQgdG9rZW4nLFxuICAgICAgICBJbGxlZ2FsSW1wb3J0RGVjbGFyYXRpb246ICdVbmV4cGVjdGVkIHRva2VuJyxcbiAgICAgICAgSWxsZWdhbEV4cG9ydERlY2xhcmF0aW9uOiAnVW5leHBlY3RlZCB0b2tlbidcbiAgICB9O1xuXG4gICAgLy8gU2VlIGFsc28gdG9vbHMvZ2VuZXJhdGUtdW5pY29kZS1yZWdleC5weS5cbiAgICBSZWdleCA9IHtcbiAgICAgICAgTm9uQXNjaWlJZGVudGlmaWVyU3RhcnQ6IG5ldyBSZWdFeHAoJ1tcXHhBQVxceEI1XFx4QkFcXHhDMC1cXHhENlxceEQ4LVxceEY2XFx4RjgtXFx1MDJDMVxcdTAyQzYtXFx1MDJEMVxcdTAyRTAtXFx1MDJFNFxcdTAyRUNcXHUwMkVFXFx1MDM3MC1cXHUwMzc0XFx1MDM3NlxcdTAzNzdcXHUwMzdBLVxcdTAzN0RcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVcXHUwM0Y3LVxcdTA0ODFcXHUwNDhBLVxcdTA1MkZcXHUwNTMxLVxcdTA1NTZcXHUwNTU5XFx1MDU2MS1cXHUwNTg3XFx1MDVEMC1cXHUwNUVBXFx1MDVGMC1cXHUwNUYyXFx1MDYyMC1cXHUwNjRBXFx1MDY2RVxcdTA2NkZcXHUwNjcxLVxcdTA2RDNcXHUwNkQ1XFx1MDZFNVxcdTA2RTZcXHUwNkVFXFx1MDZFRlxcdTA2RkEtXFx1MDZGQ1xcdTA2RkZcXHUwNzEwXFx1MDcxMi1cXHUwNzJGXFx1MDc0RC1cXHUwN0E1XFx1MDdCMVxcdTA3Q0EtXFx1MDdFQVxcdTA3RjRcXHUwN0Y1XFx1MDdGQVxcdTA4MDAtXFx1MDgxNVxcdTA4MUFcXHUwODI0XFx1MDgyOFxcdTA4NDAtXFx1MDg1OFxcdTA4QTAtXFx1MDhCMlxcdTA5MDQtXFx1MDkzOVxcdTA5M0RcXHUwOTUwXFx1MDk1OC1cXHUwOTYxXFx1MDk3MS1cXHUwOTgwXFx1MDk4NS1cXHUwOThDXFx1MDk4RlxcdTA5OTBcXHUwOTkzLVxcdTA5QThcXHUwOUFBLVxcdTA5QjBcXHUwOUIyXFx1MDlCNi1cXHUwOUI5XFx1MDlCRFxcdTA5Q0VcXHUwOURDXFx1MDlERFxcdTA5REYtXFx1MDlFMVxcdTA5RjBcXHUwOUYxXFx1MEEwNS1cXHUwQTBBXFx1MEEwRlxcdTBBMTBcXHUwQTEzLVxcdTBBMjhcXHUwQTJBLVxcdTBBMzBcXHUwQTMyXFx1MEEzM1xcdTBBMzVcXHUwQTM2XFx1MEEzOFxcdTBBMzlcXHUwQTU5LVxcdTBBNUNcXHUwQTVFXFx1MEE3Mi1cXHUwQTc0XFx1MEE4NS1cXHUwQThEXFx1MEE4Ri1cXHUwQTkxXFx1MEE5My1cXHUwQUE4XFx1MEFBQS1cXHUwQUIwXFx1MEFCMlxcdTBBQjNcXHUwQUI1LVxcdTBBQjlcXHUwQUJEXFx1MEFEMFxcdTBBRTBcXHUwQUUxXFx1MEIwNS1cXHUwQjBDXFx1MEIwRlxcdTBCMTBcXHUwQjEzLVxcdTBCMjhcXHUwQjJBLVxcdTBCMzBcXHUwQjMyXFx1MEIzM1xcdTBCMzUtXFx1MEIzOVxcdTBCM0RcXHUwQjVDXFx1MEI1RFxcdTBCNUYtXFx1MEI2MVxcdTBCNzFcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCRDBcXHUwQzA1LVxcdTBDMENcXHUwQzBFLVxcdTBDMTBcXHUwQzEyLVxcdTBDMjhcXHUwQzJBLVxcdTBDMzlcXHUwQzNEXFx1MEM1OFxcdTBDNTlcXHUwQzYwXFx1MEM2MVxcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkRcXHUwQ0RFXFx1MENFMFxcdTBDRTFcXHUwQ0YxXFx1MENGMlxcdTBEMDUtXFx1MEQwQ1xcdTBEMEUtXFx1MEQxMFxcdTBEMTItXFx1MEQzQVxcdTBEM0RcXHUwRDRFXFx1MEQ2MFxcdTBENjFcXHUwRDdBLVxcdTBEN0ZcXHUwRDg1LVxcdTBEOTZcXHUwRDlBLVxcdTBEQjFcXHUwREIzLVxcdTBEQkJcXHUwREJEXFx1MERDMC1cXHUwREM2XFx1MEUwMS1cXHUwRTMwXFx1MEUzMlxcdTBFMzNcXHUwRTQwLVxcdTBFNDZcXHUwRTgxXFx1MEU4MlxcdTBFODRcXHUwRTg3XFx1MEU4OFxcdTBFOEFcXHUwRThEXFx1MEU5NC1cXHUwRTk3XFx1MEU5OS1cXHUwRTlGXFx1MEVBMS1cXHUwRUEzXFx1MEVBNVxcdTBFQTdcXHUwRUFBXFx1MEVBQlxcdTBFQUQtXFx1MEVCMFxcdTBFQjJcXHUwRUIzXFx1MEVCRFxcdTBFQzAtXFx1MEVDNFxcdTBFQzZcXHUwRURDLVxcdTBFREZcXHUwRjAwXFx1MEY0MC1cXHUwRjQ3XFx1MEY0OS1cXHUwRjZDXFx1MEY4OC1cXHUwRjhDXFx1MTAwMC1cXHUxMDJBXFx1MTAzRlxcdTEwNTAtXFx1MTA1NVxcdTEwNUEtXFx1MTA1RFxcdTEwNjFcXHUxMDY1XFx1MTA2NlxcdTEwNkUtXFx1MTA3MFxcdTEwNzUtXFx1MTA4MVxcdTEwOEVcXHUxMEEwLVxcdTEwQzVcXHUxMEM3XFx1MTBDRFxcdTEwRDAtXFx1MTBGQVxcdTEwRkMtXFx1MTI0OFxcdTEyNEEtXFx1MTI0RFxcdTEyNTAtXFx1MTI1NlxcdTEyNThcXHUxMjVBLVxcdTEyNURcXHUxMjYwLVxcdTEyODhcXHUxMjhBLVxcdTEyOERcXHUxMjkwLVxcdTEyQjBcXHUxMkIyLVxcdTEyQjVcXHUxMkI4LVxcdTEyQkVcXHUxMkMwXFx1MTJDMi1cXHUxMkM1XFx1MTJDOC1cXHUxMkQ2XFx1MTJEOC1cXHUxMzEwXFx1MTMxMi1cXHUxMzE1XFx1MTMxOC1cXHUxMzVBXFx1MTM4MC1cXHUxMzhGXFx1MTNBMC1cXHUxM0Y0XFx1MTQwMS1cXHUxNjZDXFx1MTY2Ri1cXHUxNjdGXFx1MTY4MS1cXHUxNjlBXFx1MTZBMC1cXHUxNkVBXFx1MTZFRS1cXHUxNkY4XFx1MTcwMC1cXHUxNzBDXFx1MTcwRS1cXHUxNzExXFx1MTcyMC1cXHUxNzMxXFx1MTc0MC1cXHUxNzUxXFx1MTc2MC1cXHUxNzZDXFx1MTc2RS1cXHUxNzcwXFx1MTc4MC1cXHUxN0IzXFx1MTdEN1xcdTE3RENcXHUxODIwLVxcdTE4NzdcXHUxODgwLVxcdTE4QThcXHUxOEFBXFx1MThCMC1cXHUxOEY1XFx1MTkwMC1cXHUxOTFFXFx1MTk1MC1cXHUxOTZEXFx1MTk3MC1cXHUxOTc0XFx1MTk4MC1cXHUxOUFCXFx1MTlDMS1cXHUxOUM3XFx1MUEwMC1cXHUxQTE2XFx1MUEyMC1cXHUxQTU0XFx1MUFBN1xcdTFCMDUtXFx1MUIzM1xcdTFCNDUtXFx1MUI0QlxcdTFCODMtXFx1MUJBMFxcdTFCQUVcXHUxQkFGXFx1MUJCQS1cXHUxQkU1XFx1MUMwMC1cXHUxQzIzXFx1MUM0RC1cXHUxQzRGXFx1MUM1QS1cXHUxQzdEXFx1MUNFOS1cXHUxQ0VDXFx1MUNFRS1cXHUxQ0YxXFx1MUNGNVxcdTFDRjZcXHUxRDAwLVxcdTFEQkZcXHUxRTAwLVxcdTFGMTVcXHUxRjE4LVxcdTFGMURcXHUxRjIwLVxcdTFGNDVcXHUxRjQ4LVxcdTFGNERcXHUxRjUwLVxcdTFGNTdcXHUxRjU5XFx1MUY1QlxcdTFGNURcXHUxRjVGLVxcdTFGN0RcXHUxRjgwLVxcdTFGQjRcXHUxRkI2LVxcdTFGQkNcXHUxRkJFXFx1MUZDMi1cXHUxRkM0XFx1MUZDNi1cXHUxRkNDXFx1MUZEMC1cXHUxRkQzXFx1MUZENi1cXHUxRkRCXFx1MUZFMC1cXHUxRkVDXFx1MUZGMi1cXHUxRkY0XFx1MUZGNi1cXHUxRkZDXFx1MjA3MVxcdTIwN0ZcXHUyMDkwLVxcdTIwOUNcXHUyMTAyXFx1MjEwN1xcdTIxMEEtXFx1MjExM1xcdTIxMTVcXHUyMTE5LVxcdTIxMURcXHUyMTI0XFx1MjEyNlxcdTIxMjhcXHUyMTJBLVxcdTIxMkRcXHUyMTJGLVxcdTIxMzlcXHUyMTNDLVxcdTIxM0ZcXHUyMTQ1LVxcdTIxNDlcXHUyMTRFXFx1MjE2MC1cXHUyMTg4XFx1MkMwMC1cXHUyQzJFXFx1MkMzMC1cXHUyQzVFXFx1MkM2MC1cXHUyQ0U0XFx1MkNFQi1cXHUyQ0VFXFx1MkNGMlxcdTJDRjNcXHUyRDAwLVxcdTJEMjVcXHUyRDI3XFx1MkQyRFxcdTJEMzAtXFx1MkQ2N1xcdTJENkZcXHUyRDgwLVxcdTJEOTZcXHUyREEwLVxcdTJEQTZcXHUyREE4LVxcdTJEQUVcXHUyREIwLVxcdTJEQjZcXHUyREI4LVxcdTJEQkVcXHUyREMwLVxcdTJEQzZcXHUyREM4LVxcdTJEQ0VcXHUyREQwLVxcdTJERDZcXHUyREQ4LVxcdTJEREVcXHUyRTJGXFx1MzAwNS1cXHUzMDA3XFx1MzAyMS1cXHUzMDI5XFx1MzAzMS1cXHUzMDM1XFx1MzAzOC1cXHUzMDNDXFx1MzA0MS1cXHUzMDk2XFx1MzA5RC1cXHUzMDlGXFx1MzBBMS1cXHUzMEZBXFx1MzBGQy1cXHUzMEZGXFx1MzEwNS1cXHUzMTJEXFx1MzEzMS1cXHUzMThFXFx1MzFBMC1cXHUzMUJBXFx1MzFGMC1cXHUzMUZGXFx1MzQwMC1cXHU0REI1XFx1NEUwMC1cXHU5RkNDXFx1QTAwMC1cXHVBNDhDXFx1QTREMC1cXHVBNEZEXFx1QTUwMC1cXHVBNjBDXFx1QTYxMC1cXHVBNjFGXFx1QTYyQVxcdUE2MkJcXHVBNjQwLVxcdUE2NkVcXHVBNjdGLVxcdUE2OURcXHVBNkEwLVxcdUE2RUZcXHVBNzE3LVxcdUE3MUZcXHVBNzIyLVxcdUE3ODhcXHVBNzhCLVxcdUE3OEVcXHVBNzkwLVxcdUE3QURcXHVBN0IwXFx1QTdCMVxcdUE3RjctXFx1QTgwMVxcdUE4MDMtXFx1QTgwNVxcdUE4MDctXFx1QTgwQVxcdUE4MEMtXFx1QTgyMlxcdUE4NDAtXFx1QTg3M1xcdUE4ODItXFx1QThCM1xcdUE4RjItXFx1QThGN1xcdUE4RkJcXHVBOTBBLVxcdUE5MjVcXHVBOTMwLVxcdUE5NDZcXHVBOTYwLVxcdUE5N0NcXHVBOTg0LVxcdUE5QjJcXHVBOUNGXFx1QTlFMC1cXHVBOUU0XFx1QTlFNi1cXHVBOUVGXFx1QTlGQS1cXHVBOUZFXFx1QUEwMC1cXHVBQTI4XFx1QUE0MC1cXHVBQTQyXFx1QUE0NC1cXHVBQTRCXFx1QUE2MC1cXHVBQTc2XFx1QUE3QVxcdUFBN0UtXFx1QUFBRlxcdUFBQjFcXHVBQUI1XFx1QUFCNlxcdUFBQjktXFx1QUFCRFxcdUFBQzBcXHVBQUMyXFx1QUFEQi1cXHVBQUREXFx1QUFFMC1cXHVBQUVBXFx1QUFGMi1cXHVBQUY0XFx1QUIwMS1cXHVBQjA2XFx1QUIwOS1cXHVBQjBFXFx1QUIxMS1cXHVBQjE2XFx1QUIyMC1cXHVBQjI2XFx1QUIyOC1cXHVBQjJFXFx1QUIzMC1cXHVBQjVBXFx1QUI1Qy1cXHVBQjVGXFx1QUI2NFxcdUFCNjVcXHVBQkMwLVxcdUFCRTJcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFEXFx1RkIxRi1cXHVGQjI4XFx1RkIyQS1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkJcXHVGRTcwLVxcdUZFNzRcXHVGRTc2LVxcdUZFRkNcXHVGRjIxLVxcdUZGM0FcXHVGRjQxLVxcdUZGNUFcXHVGRjY2LVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENdJyksXG4gICAgICAgIE5vbkFzY2lpSWRlbnRpZmllclBhcnQ6IG5ldyBSZWdFeHAoJ1tcXHhBQVxceEI1XFx4QkFcXHhDMC1cXHhENlxceEQ4LVxceEY2XFx4RjgtXFx1MDJDMVxcdTAyQzYtXFx1MDJEMVxcdTAyRTAtXFx1MDJFNFxcdTAyRUNcXHUwMkVFXFx1MDMwMC1cXHUwMzc0XFx1MDM3NlxcdTAzNzdcXHUwMzdBLVxcdTAzN0RcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVcXHUwM0Y3LVxcdTA0ODFcXHUwNDgzLVxcdTA0ODdcXHUwNDhBLVxcdTA1MkZcXHUwNTMxLVxcdTA1NTZcXHUwNTU5XFx1MDU2MS1cXHUwNTg3XFx1MDU5MS1cXHUwNUJEXFx1MDVCRlxcdTA1QzFcXHUwNUMyXFx1MDVDNFxcdTA1QzVcXHUwNUM3XFx1MDVEMC1cXHUwNUVBXFx1MDVGMC1cXHUwNUYyXFx1MDYxMC1cXHUwNjFBXFx1MDYyMC1cXHUwNjY5XFx1MDY2RS1cXHUwNkQzXFx1MDZENS1cXHUwNkRDXFx1MDZERi1cXHUwNkU4XFx1MDZFQS1cXHUwNkZDXFx1MDZGRlxcdTA3MTAtXFx1MDc0QVxcdTA3NEQtXFx1MDdCMVxcdTA3QzAtXFx1MDdGNVxcdTA3RkFcXHUwODAwLVxcdTA4MkRcXHUwODQwLVxcdTA4NUJcXHUwOEEwLVxcdTA4QjJcXHUwOEU0LVxcdTA5NjNcXHUwOTY2LVxcdTA5NkZcXHUwOTcxLVxcdTA5ODNcXHUwOTg1LVxcdTA5OENcXHUwOThGXFx1MDk5MFxcdTA5OTMtXFx1MDlBOFxcdTA5QUEtXFx1MDlCMFxcdTA5QjJcXHUwOUI2LVxcdTA5QjlcXHUwOUJDLVxcdTA5QzRcXHUwOUM3XFx1MDlDOFxcdTA5Q0ItXFx1MDlDRVxcdTA5RDdcXHUwOURDXFx1MDlERFxcdTA5REYtXFx1MDlFM1xcdTA5RTYtXFx1MDlGMVxcdTBBMDEtXFx1MEEwM1xcdTBBMDUtXFx1MEEwQVxcdTBBMEZcXHUwQTEwXFx1MEExMy1cXHUwQTI4XFx1MEEyQS1cXHUwQTMwXFx1MEEzMlxcdTBBMzNcXHUwQTM1XFx1MEEzNlxcdTBBMzhcXHUwQTM5XFx1MEEzQ1xcdTBBM0UtXFx1MEE0MlxcdTBBNDdcXHUwQTQ4XFx1MEE0Qi1cXHUwQTREXFx1MEE1MVxcdTBBNTktXFx1MEE1Q1xcdTBBNUVcXHUwQTY2LVxcdTBBNzVcXHUwQTgxLVxcdTBBODNcXHUwQTg1LVxcdTBBOERcXHUwQThGLVxcdTBBOTFcXHUwQTkzLVxcdTBBQThcXHUwQUFBLVxcdTBBQjBcXHUwQUIyXFx1MEFCM1xcdTBBQjUtXFx1MEFCOVxcdTBBQkMtXFx1MEFDNVxcdTBBQzctXFx1MEFDOVxcdTBBQ0ItXFx1MEFDRFxcdTBBRDBcXHUwQUUwLVxcdTBBRTNcXHUwQUU2LVxcdTBBRUZcXHUwQjAxLVxcdTBCMDNcXHUwQjA1LVxcdTBCMENcXHUwQjBGXFx1MEIxMFxcdTBCMTMtXFx1MEIyOFxcdTBCMkEtXFx1MEIzMFxcdTBCMzJcXHUwQjMzXFx1MEIzNS1cXHUwQjM5XFx1MEIzQy1cXHUwQjQ0XFx1MEI0N1xcdTBCNDhcXHUwQjRCLVxcdTBCNERcXHUwQjU2XFx1MEI1N1xcdTBCNUNcXHUwQjVEXFx1MEI1Ri1cXHUwQjYzXFx1MEI2Ni1cXHUwQjZGXFx1MEI3MVxcdTBCODJcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCQkUtXFx1MEJDMlxcdTBCQzYtXFx1MEJDOFxcdTBCQ0EtXFx1MEJDRFxcdTBCRDBcXHUwQkQ3XFx1MEJFNi1cXHUwQkVGXFx1MEMwMC1cXHUwQzAzXFx1MEMwNS1cXHUwQzBDXFx1MEMwRS1cXHUwQzEwXFx1MEMxMi1cXHUwQzI4XFx1MEMyQS1cXHUwQzM5XFx1MEMzRC1cXHUwQzQ0XFx1MEM0Ni1cXHUwQzQ4XFx1MEM0QS1cXHUwQzREXFx1MEM1NVxcdTBDNTZcXHUwQzU4XFx1MEM1OVxcdTBDNjAtXFx1MEM2M1xcdTBDNjYtXFx1MEM2RlxcdTBDODEtXFx1MEM4M1xcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkMtXFx1MENDNFxcdTBDQzYtXFx1MENDOFxcdTBDQ0EtXFx1MENDRFxcdTBDRDVcXHUwQ0Q2XFx1MENERVxcdTBDRTAtXFx1MENFM1xcdTBDRTYtXFx1MENFRlxcdTBDRjFcXHUwQ0YyXFx1MEQwMS1cXHUwRDAzXFx1MEQwNS1cXHUwRDBDXFx1MEQwRS1cXHUwRDEwXFx1MEQxMi1cXHUwRDNBXFx1MEQzRC1cXHUwRDQ0XFx1MEQ0Ni1cXHUwRDQ4XFx1MEQ0QS1cXHUwRDRFXFx1MEQ1N1xcdTBENjAtXFx1MEQ2M1xcdTBENjYtXFx1MEQ2RlxcdTBEN0EtXFx1MEQ3RlxcdTBEODJcXHUwRDgzXFx1MEQ4NS1cXHUwRDk2XFx1MEQ5QS1cXHUwREIxXFx1MERCMy1cXHUwREJCXFx1MERCRFxcdTBEQzAtXFx1MERDNlxcdTBEQ0FcXHUwRENGLVxcdTBERDRcXHUwREQ2XFx1MEREOC1cXHUwRERGXFx1MERFNi1cXHUwREVGXFx1MERGMlxcdTBERjNcXHUwRTAxLVxcdTBFM0FcXHUwRTQwLVxcdTBFNEVcXHUwRTUwLVxcdTBFNTlcXHUwRTgxXFx1MEU4MlxcdTBFODRcXHUwRTg3XFx1MEU4OFxcdTBFOEFcXHUwRThEXFx1MEU5NC1cXHUwRTk3XFx1MEU5OS1cXHUwRTlGXFx1MEVBMS1cXHUwRUEzXFx1MEVBNVxcdTBFQTdcXHUwRUFBXFx1MEVBQlxcdTBFQUQtXFx1MEVCOVxcdTBFQkItXFx1MEVCRFxcdTBFQzAtXFx1MEVDNFxcdTBFQzZcXHUwRUM4LVxcdTBFQ0RcXHUwRUQwLVxcdTBFRDlcXHUwRURDLVxcdTBFREZcXHUwRjAwXFx1MEYxOFxcdTBGMTlcXHUwRjIwLVxcdTBGMjlcXHUwRjM1XFx1MEYzN1xcdTBGMzlcXHUwRjNFLVxcdTBGNDdcXHUwRjQ5LVxcdTBGNkNcXHUwRjcxLVxcdTBGODRcXHUwRjg2LVxcdTBGOTdcXHUwRjk5LVxcdTBGQkNcXHUwRkM2XFx1MTAwMC1cXHUxMDQ5XFx1MTA1MC1cXHUxMDlEXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMFxcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzNUQtXFx1MTM1RlxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNFxcdTE0MDEtXFx1MTY2Q1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE2RUUtXFx1MTZGOFxcdTE3MDAtXFx1MTcwQ1xcdTE3MEUtXFx1MTcxNFxcdTE3MjAtXFx1MTczNFxcdTE3NDAtXFx1MTc1M1xcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3NzJcXHUxNzczXFx1MTc4MC1cXHUxN0QzXFx1MTdEN1xcdTE3RENcXHUxN0REXFx1MTdFMC1cXHUxN0U5XFx1MTgwQi1cXHUxODBEXFx1MTgxMC1cXHUxODE5XFx1MTgyMC1cXHUxODc3XFx1MTg4MC1cXHUxOEFBXFx1MThCMC1cXHUxOEY1XFx1MTkwMC1cXHUxOTFFXFx1MTkyMC1cXHUxOTJCXFx1MTkzMC1cXHUxOTNCXFx1MTk0Ni1cXHUxOTZEXFx1MTk3MC1cXHUxOTc0XFx1MTk4MC1cXHUxOUFCXFx1MTlCMC1cXHUxOUM5XFx1MTlEMC1cXHUxOUQ5XFx1MUEwMC1cXHUxQTFCXFx1MUEyMC1cXHUxQTVFXFx1MUE2MC1cXHUxQTdDXFx1MUE3Ri1cXHUxQTg5XFx1MUE5MC1cXHUxQTk5XFx1MUFBN1xcdTFBQjAtXFx1MUFCRFxcdTFCMDAtXFx1MUI0QlxcdTFCNTAtXFx1MUI1OVxcdTFCNkItXFx1MUI3M1xcdTFCODAtXFx1MUJGM1xcdTFDMDAtXFx1MUMzN1xcdTFDNDAtXFx1MUM0OVxcdTFDNEQtXFx1MUM3RFxcdTFDRDAtXFx1MUNEMlxcdTFDRDQtXFx1MUNGNlxcdTFDRjhcXHUxQ0Y5XFx1MUQwMC1cXHUxREY1XFx1MURGQy1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC1cXHUxRjU3XFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzYtXFx1MUZDQ1xcdTFGRDAtXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGRTAtXFx1MUZFQ1xcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGQ1xcdTIwMENcXHUyMDBEXFx1MjAzRlxcdTIwNDBcXHUyMDU0XFx1MjA3MVxcdTIwN0ZcXHUyMDkwLVxcdTIwOUNcXHUyMEQwLVxcdTIwRENcXHUyMEUxXFx1MjBFNS1cXHUyMEYwXFx1MjEwMlxcdTIxMDdcXHUyMTBBLVxcdTIxMTNcXHUyMTE1XFx1MjExOS1cXHUyMTFEXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTM5XFx1MjEzQy1cXHUyMTNGXFx1MjE0NS1cXHUyMTQ5XFx1MjE0RVxcdTIxNjAtXFx1MjE4OFxcdTJDMDAtXFx1MkMyRVxcdTJDMzAtXFx1MkM1RVxcdTJDNjAtXFx1MkNFNFxcdTJDRUItXFx1MkNGM1xcdTJEMDAtXFx1MkQyNVxcdTJEMjdcXHUyRDJEXFx1MkQzMC1cXHUyRDY3XFx1MkQ2RlxcdTJEN0YtXFx1MkQ5NlxcdTJEQTAtXFx1MkRBNlxcdTJEQTgtXFx1MkRBRVxcdTJEQjAtXFx1MkRCNlxcdTJEQjgtXFx1MkRCRVxcdTJEQzAtXFx1MkRDNlxcdTJEQzgtXFx1MkRDRVxcdTJERDAtXFx1MkRENlxcdTJERDgtXFx1MkRERVxcdTJERTAtXFx1MkRGRlxcdTJFMkZcXHUzMDA1LVxcdTMwMDdcXHUzMDIxLVxcdTMwMkZcXHUzMDMxLVxcdTMwMzVcXHUzMDM4LVxcdTMwM0NcXHUzMDQxLVxcdTMwOTZcXHUzMDk5XFx1MzA5QVxcdTMwOUQtXFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkMtXFx1MzBGRlxcdTMxMDUtXFx1MzEyRFxcdTMxMzEtXFx1MzE4RVxcdTMxQTAtXFx1MzFCQVxcdTMxRjAtXFx1MzFGRlxcdTM0MDAtXFx1NERCNVxcdTRFMDAtXFx1OUZDQ1xcdUEwMDAtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGRFxcdUE1MDAtXFx1QTYwQ1xcdUE2MTAtXFx1QTYyQlxcdUE2NDAtXFx1QTY2RlxcdUE2NzQtXFx1QTY3RFxcdUE2N0YtXFx1QTY5RFxcdUE2OUYtXFx1QTZGMVxcdUE3MTctXFx1QTcxRlxcdUE3MjItXFx1QTc4OFxcdUE3OEItXFx1QTc4RVxcdUE3OTAtXFx1QTdBRFxcdUE3QjBcXHVBN0IxXFx1QTdGNy1cXHVBODI3XFx1QTg0MC1cXHVBODczXFx1QTg4MC1cXHVBOEM0XFx1QThEMC1cXHVBOEQ5XFx1QThFMC1cXHVBOEY3XFx1QThGQlxcdUE5MDAtXFx1QTkyRFxcdUE5MzAtXFx1QTk1M1xcdUE5NjAtXFx1QTk3Q1xcdUE5ODAtXFx1QTlDMFxcdUE5Q0YtXFx1QTlEOVxcdUE5RTAtXFx1QTlGRVxcdUFBMDAtXFx1QUEzNlxcdUFBNDAtXFx1QUE0RFxcdUFBNTAtXFx1QUE1OVxcdUFBNjAtXFx1QUE3NlxcdUFBN0EtXFx1QUFDMlxcdUFBREItXFx1QUFERFxcdUFBRTAtXFx1QUFFRlxcdUFBRjItXFx1QUFGNlxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCMzAtXFx1QUI1QVxcdUFCNUMtXFx1QUI1RlxcdUFCNjRcXHVBQjY1XFx1QUJDMC1cXHVBQkVBXFx1QUJFQ1xcdUFCRURcXHVBQkYwLVxcdUFCRjlcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFELVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFMDAtXFx1RkUwRlxcdUZFMjAtXFx1RkUyRFxcdUZFMzNcXHVGRTM0XFx1RkU0RC1cXHVGRTRGXFx1RkU3MC1cXHVGRTc0XFx1RkU3Ni1cXHVGRUZDXFx1RkYxMC1cXHVGRjE5XFx1RkYyMS1cXHVGRjNBXFx1RkYzRlxcdUZGNDEtXFx1RkY1QVxcdUZGNjYtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ10nKVxuICAgIH07XG5cbiAgICAvLyBFbnN1cmUgdGhlIGNvbmRpdGlvbiBpcyB0cnVlLCBvdGhlcndpc2UgdGhyb3cgYW4gZXJyb3IuXG4gICAgLy8gVGhpcyBpcyBvbmx5IHRvIGhhdmUgYSBiZXR0ZXIgY29udHJhY3Qgc2VtYW50aWMsIGkuZS4gYW5vdGhlciBzYWZldHkgbmV0XG4gICAgLy8gdG8gY2F0Y2ggYSBsb2dpYyBlcnJvci4gVGhlIGNvbmRpdGlvbiBzaGFsbCBiZSBmdWxmaWxsZWQgaW4gbm9ybWFsIGNhc2UuXG4gICAgLy8gRG8gTk9UIHVzZSB0aGlzIHRvIGVuZm9yY2UgYSBjZXJ0YWluIGNvbmRpdGlvbiBvbiBhbnkgdXNlciBpbnB1dC5cblxuICAgIGZ1bmN0aW9uIGFzc2VydChjb25kaXRpb24sIG1lc3NhZ2UpIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgIGlmICghY29uZGl0aW9uKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FTU0VSVDogJyArIG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNEZWNpbWFsRGlnaXQoY2gpIHtcbiAgICAgICAgcmV0dXJuIChjaCA+PSAweDMwICYmIGNoIDw9IDB4MzkpOyAgIC8vIDAuLjlcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0hleERpZ2l0KGNoKSB7XG4gICAgICAgIHJldHVybiAnMDEyMzQ1Njc4OWFiY2RlZkFCQ0RFRicuaW5kZXhPZihjaCkgPj0gMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc09jdGFsRGlnaXQoY2gpIHtcbiAgICAgICAgcmV0dXJuICcwMTIzNDU2NycuaW5kZXhPZihjaCkgPj0gMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBvY3RhbFRvRGVjaW1hbChjaCkge1xuICAgICAgICAvLyBcXDAgaXMgbm90IG9jdGFsIGVzY2FwZSBzZXF1ZW5jZVxuICAgICAgICB2YXIgb2N0YWwgPSAoY2ggIT09ICcwJyksIGNvZGUgPSAnMDEyMzQ1NjcnLmluZGV4T2YoY2gpO1xuXG4gICAgICAgIGlmIChpbmRleCA8IGxlbmd0aCAmJiBpc09jdGFsRGlnaXQoc291cmNlW2luZGV4XSkpIHtcbiAgICAgICAgICAgIG9jdGFsID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvZGUgPSBjb2RlICogOCArICcwMTIzNDU2NycuaW5kZXhPZihzb3VyY2VbaW5kZXgrK10pO1xuXG4gICAgICAgICAgICAvLyAzIGRpZ2l0cyBhcmUgb25seSBhbGxvd2VkIHdoZW4gc3RyaW5nIHN0YXJ0c1xuICAgICAgICAgICAgLy8gd2l0aCAwLCAxLCAyLCAzXG4gICAgICAgICAgICBpZiAoJzAxMjMnLmluZGV4T2YoY2gpID49IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgaW5kZXggPCBsZW5ndGggJiZcbiAgICAgICAgICAgICAgICAgICAgaXNPY3RhbERpZ2l0KHNvdXJjZVtpbmRleF0pKSB7XG4gICAgICAgICAgICAgICAgY29kZSA9IGNvZGUgKiA4ICsgJzAxMjM0NTY3Jy5pbmRleE9mKHNvdXJjZVtpbmRleCsrXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29kZTogY29kZSxcbiAgICAgICAgICAgIG9jdGFsOiBvY3RhbFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIDcuMiBXaGl0ZSBTcGFjZVxuXG4gICAgZnVuY3Rpb24gaXNXaGl0ZVNwYWNlKGNoKSB7XG4gICAgICAgIHJldHVybiAoY2ggPT09IDB4MjApIHx8IChjaCA9PT0gMHgwOSkgfHwgKGNoID09PSAweDBCKSB8fCAoY2ggPT09IDB4MEMpIHx8IChjaCA9PT0gMHhBMCkgfHxcbiAgICAgICAgICAgIChjaCA+PSAweDE2ODAgJiYgWzB4MTY4MCwgMHgxODBFLCAweDIwMDAsIDB4MjAwMSwgMHgyMDAyLCAweDIwMDMsIDB4MjAwNCwgMHgyMDA1LCAweDIwMDYsIDB4MjAwNywgMHgyMDA4LCAweDIwMDksIDB4MjAwQSwgMHgyMDJGLCAweDIwNUYsIDB4MzAwMCwgMHhGRUZGXS5pbmRleE9mKGNoKSA+PSAwKTtcbiAgICB9XG5cbiAgICAvLyA3LjMgTGluZSBUZXJtaW5hdG9yc1xuXG4gICAgZnVuY3Rpb24gaXNMaW5lVGVybWluYXRvcihjaCkge1xuICAgICAgICByZXR1cm4gKGNoID09PSAweDBBKSB8fCAoY2ggPT09IDB4MEQpIHx8IChjaCA9PT0gMHgyMDI4KSB8fCAoY2ggPT09IDB4MjAyOSk7XG4gICAgfVxuXG4gICAgLy8gNy42IElkZW50aWZpZXIgTmFtZXMgYW5kIElkZW50aWZpZXJzXG5cbiAgICBmdW5jdGlvbiBpc0lkZW50aWZpZXJTdGFydChjaCkge1xuICAgICAgICByZXR1cm4gKGNoID09PSAweDI0KSB8fCAoY2ggPT09IDB4NUYpIHx8ICAvLyAkIChkb2xsYXIpIGFuZCBfICh1bmRlcnNjb3JlKVxuICAgICAgICAgICAgKGNoID49IDB4NDEgJiYgY2ggPD0gMHg1QSkgfHwgICAgICAgICAvLyBBLi5aXG4gICAgICAgICAgICAoY2ggPj0gMHg2MSAmJiBjaCA8PSAweDdBKSB8fCAgICAgICAgIC8vIGEuLnpcbiAgICAgICAgICAgIChjaCA9PT0gMHg1QykgfHwgICAgICAgICAgICAgICAgICAgICAgLy8gXFwgKGJhY2tzbGFzaClcbiAgICAgICAgICAgICgoY2ggPj0gMHg4MCkgJiYgUmVnZXguTm9uQXNjaWlJZGVudGlmaWVyU3RhcnQudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGNoKSkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzSWRlbnRpZmllclBhcnQoY2gpIHtcbiAgICAgICAgcmV0dXJuIChjaCA9PT0gMHgyNCkgfHwgKGNoID09PSAweDVGKSB8fCAgLy8gJCAoZG9sbGFyKSBhbmQgXyAodW5kZXJzY29yZSlcbiAgICAgICAgICAgIChjaCA+PSAweDQxICYmIGNoIDw9IDB4NUEpIHx8ICAgICAgICAgLy8gQS4uWlxuICAgICAgICAgICAgKGNoID49IDB4NjEgJiYgY2ggPD0gMHg3QSkgfHwgICAgICAgICAvLyBhLi56XG4gICAgICAgICAgICAoY2ggPj0gMHgzMCAmJiBjaCA8PSAweDM5KSB8fCAgICAgICAgIC8vIDAuLjlcbiAgICAgICAgICAgIChjaCA9PT0gMHg1QykgfHwgICAgICAgICAgICAgICAgICAgICAgLy8gXFwgKGJhY2tzbGFzaClcbiAgICAgICAgICAgICgoY2ggPj0gMHg4MCkgJiYgUmVnZXguTm9uQXNjaWlJZGVudGlmaWVyUGFydC50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoY2gpKSk7XG4gICAgfVxuXG4gICAgLy8gNy42LjEuMiBGdXR1cmUgUmVzZXJ2ZWQgV29yZHNcblxuICAgIGZ1bmN0aW9uIGlzRnV0dXJlUmVzZXJ2ZWRXb3JkKGlkKSB7XG4gICAgICAgIHN3aXRjaCAoaWQpIHtcbiAgICAgICAgY2FzZSAnZW51bSc6XG4gICAgICAgIGNhc2UgJ2V4cG9ydCc6XG4gICAgICAgIGNhc2UgJ2ltcG9ydCc6XG4gICAgICAgIGNhc2UgJ3N1cGVyJzpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gMTEuNi4yLjIgRnV0dXJlIFJlc2VydmVkIFdvcmRzXG5cbiAgICBmdW5jdGlvbiBpc1N0cmljdE1vZGVSZXNlcnZlZFdvcmQoaWQpIHtcbiAgICAgICAgc3dpdGNoIChpZCkge1xuICAgICAgICBjYXNlICdpbXBsZW1lbnRzJzpcbiAgICAgICAgY2FzZSAnaW50ZXJmYWNlJzpcbiAgICAgICAgY2FzZSAncGFja2FnZSc6XG4gICAgICAgIGNhc2UgJ3ByaXZhdGUnOlxuICAgICAgICBjYXNlICdwcm90ZWN0ZWQnOlxuICAgICAgICBjYXNlICdwdWJsaWMnOlxuICAgICAgICBjYXNlICdzdGF0aWMnOlxuICAgICAgICBjYXNlICd5aWVsZCc6XG4gICAgICAgIGNhc2UgJ2xldCc6XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzUmVzdHJpY3RlZFdvcmQoaWQpIHtcbiAgICAgICAgcmV0dXJuIGlkID09PSAnZXZhbCcgfHwgaWQgPT09ICdhcmd1bWVudHMnO1xuICAgIH1cblxuICAgIC8vIDcuNi4xLjEgS2V5d29yZHNcblxuICAgIGZ1bmN0aW9uIGlzS2V5d29yZChpZCkge1xuXG4gICAgICAgIC8vICdjb25zdCcgaXMgc3BlY2lhbGl6ZWQgYXMgS2V5d29yZCBpbiBWOC5cbiAgICAgICAgLy8gJ3lpZWxkJyBhbmQgJ2xldCcgYXJlIGZvciBjb21wYXRpYmlsaXR5IHdpdGggU3BpZGVyTW9ua2V5IGFuZCBFUy5uZXh0LlxuICAgICAgICAvLyBTb21lIG90aGVycyBhcmUgZnJvbSBmdXR1cmUgcmVzZXJ2ZWQgd29yZHMuXG5cbiAgICAgICAgc3dpdGNoIChpZC5sZW5ndGgpIHtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIChpZCA9PT0gJ2lmJykgfHwgKGlkID09PSAnaW4nKSB8fCAoaWQgPT09ICdkbycpO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gKGlkID09PSAndmFyJykgfHwgKGlkID09PSAnZm9yJykgfHwgKGlkID09PSAnbmV3JykgfHxcbiAgICAgICAgICAgICAgICAoaWQgPT09ICd0cnknKSB8fCAoaWQgPT09ICdsZXQnKTtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgcmV0dXJuIChpZCA9PT0gJ3RoaXMnKSB8fCAoaWQgPT09ICdlbHNlJykgfHwgKGlkID09PSAnY2FzZScpIHx8XG4gICAgICAgICAgICAgICAgKGlkID09PSAndm9pZCcpIHx8IChpZCA9PT0gJ3dpdGgnKSB8fCAoaWQgPT09ICdlbnVtJyk7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIHJldHVybiAoaWQgPT09ICd3aGlsZScpIHx8IChpZCA9PT0gJ2JyZWFrJykgfHwgKGlkID09PSAnY2F0Y2gnKSB8fFxuICAgICAgICAgICAgICAgIChpZCA9PT0gJ3Rocm93JykgfHwgKGlkID09PSAnY29uc3QnKSB8fCAoaWQgPT09ICd5aWVsZCcpIHx8XG4gICAgICAgICAgICAgICAgKGlkID09PSAnY2xhc3MnKSB8fCAoaWQgPT09ICdzdXBlcicpO1xuICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICByZXR1cm4gKGlkID09PSAncmV0dXJuJykgfHwgKGlkID09PSAndHlwZW9mJykgfHwgKGlkID09PSAnZGVsZXRlJykgfHxcbiAgICAgICAgICAgICAgICAoaWQgPT09ICdzd2l0Y2gnKSB8fCAoaWQgPT09ICdleHBvcnQnKSB8fCAoaWQgPT09ICdpbXBvcnQnKTtcbiAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgcmV0dXJuIChpZCA9PT0gJ2RlZmF1bHQnKSB8fCAoaWQgPT09ICdmaW5hbGx5JykgfHwgKGlkID09PSAnZXh0ZW5kcycpO1xuICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICByZXR1cm4gKGlkID09PSAnZnVuY3Rpb24nKSB8fCAoaWQgPT09ICdjb250aW51ZScpIHx8IChpZCA9PT0gJ2RlYnVnZ2VyJyk7XG4gICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgICByZXR1cm4gKGlkID09PSAnaW5zdGFuY2VvZicpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gNy40IENvbW1lbnRzXG5cbiAgICBmdW5jdGlvbiBhZGRDb21tZW50KHR5cGUsIHZhbHVlLCBzdGFydCwgZW5kLCBsb2MpIHtcbiAgICAgICAgdmFyIGNvbW1lbnQ7XG5cbiAgICAgICAgYXNzZXJ0KHR5cGVvZiBzdGFydCA9PT0gJ251bWJlcicsICdDb21tZW50IG11c3QgaGF2ZSB2YWxpZCBwb3NpdGlvbicpO1xuXG4gICAgICAgIHN0YXRlLmxhc3RDb21tZW50U3RhcnQgPSBzdGFydDtcblxuICAgICAgICBjb21tZW50ID0ge1xuICAgICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICB9O1xuICAgICAgICBpZiAoZXh0cmEucmFuZ2UpIHtcbiAgICAgICAgICAgIGNvbW1lbnQucmFuZ2UgPSBbc3RhcnQsIGVuZF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV4dHJhLmxvYykge1xuICAgICAgICAgICAgY29tbWVudC5sb2MgPSBsb2M7XG4gICAgICAgIH1cbiAgICAgICAgZXh0cmEuY29tbWVudHMucHVzaChjb21tZW50KTtcbiAgICAgICAgaWYgKGV4dHJhLmF0dGFjaENvbW1lbnQpIHtcbiAgICAgICAgICAgIGV4dHJhLmxlYWRpbmdDb21tZW50cy5wdXNoKGNvbW1lbnQpO1xuICAgICAgICAgICAgZXh0cmEudHJhaWxpbmdDb21tZW50cy5wdXNoKGNvbW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2tpcFNpbmdsZUxpbmVDb21tZW50KG9mZnNldCkge1xuICAgICAgICB2YXIgc3RhcnQsIGxvYywgY2gsIGNvbW1lbnQ7XG5cbiAgICAgICAgc3RhcnQgPSBpbmRleCAtIG9mZnNldDtcbiAgICAgICAgbG9jID0ge1xuICAgICAgICAgICAgc3RhcnQ6IHtcbiAgICAgICAgICAgICAgICBsaW5lOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgICAgIGNvbHVtbjogaW5kZXggLSBsaW5lU3RhcnQgLSBvZmZzZXRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpO1xuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIGlmIChpc0xpbmVUZXJtaW5hdG9yKGNoKSkge1xuICAgICAgICAgICAgICAgIGhhc0xpbmVUZXJtaW5hdG9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoZXh0cmEuY29tbWVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tbWVudCA9IHNvdXJjZS5zbGljZShzdGFydCArIG9mZnNldCwgaW5kZXggLSAxKTtcbiAgICAgICAgICAgICAgICAgICAgbG9jLmVuZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmU6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGluZGV4IC0gbGluZVN0YXJ0IC0gMVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBhZGRDb21tZW50KCdMaW5lJywgY29tbWVudCwgc3RhcnQsIGluZGV4IC0gMSwgbG9jKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAxMyAmJiBzb3VyY2UuY2hhckNvZGVBdChpbmRleCkgPT09IDEwKSB7XG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICsrbGluZU51bWJlcjtcbiAgICAgICAgICAgICAgICBsaW5lU3RhcnQgPSBpbmRleDtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXh0cmEuY29tbWVudHMpIHtcbiAgICAgICAgICAgIGNvbW1lbnQgPSBzb3VyY2Uuc2xpY2Uoc3RhcnQgKyBvZmZzZXQsIGluZGV4KTtcbiAgICAgICAgICAgIGxvYy5lbmQgPSB7XG4gICAgICAgICAgICAgICAgbGluZTogbGluZU51bWJlcixcbiAgICAgICAgICAgICAgICBjb2x1bW46IGluZGV4IC0gbGluZVN0YXJ0XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYWRkQ29tbWVudCgnTGluZScsIGNvbW1lbnQsIHN0YXJ0LCBpbmRleCwgbG9jKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNraXBNdWx0aUxpbmVDb21tZW50KCkge1xuICAgICAgICB2YXIgc3RhcnQsIGxvYywgY2gsIGNvbW1lbnQ7XG5cbiAgICAgICAgaWYgKGV4dHJhLmNvbW1lbnRzKSB7XG4gICAgICAgICAgICBzdGFydCA9IGluZGV4IC0gMjtcbiAgICAgICAgICAgIGxvYyA9IHtcbiAgICAgICAgICAgICAgICBzdGFydDoge1xuICAgICAgICAgICAgICAgICAgICBsaW5lOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGluZGV4IC0gbGluZVN0YXJ0IC0gMlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpO1xuICAgICAgICAgICAgaWYgKGlzTGluZVRlcm1pbmF0b3IoY2gpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAweDBEICYmIHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4ICsgMSkgPT09IDB4MEEpIHtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaGFzTGluZVRlcm1pbmF0b3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICsrbGluZU51bWJlcjtcbiAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgIGxpbmVTdGFydCA9IGluZGV4O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gMHgyQSkge1xuICAgICAgICAgICAgICAgIC8vIEJsb2NrIGNvbW1lbnQgZW5kcyB3aXRoICcqLycuXG4gICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4ICsgMSkgPT09IDB4MkYpIHtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV4dHJhLmNvbW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50ID0gc291cmNlLnNsaWNlKHN0YXJ0ICsgMiwgaW5kZXggLSAyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYy5lbmQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZTogbGluZU51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGluZGV4IC0gbGluZVN0YXJ0XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgYWRkQ29tbWVudCgnQmxvY2snLCBjb21tZW50LCBzdGFydCwgaW5kZXgsIGxvYyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmFuIG9mZiB0aGUgZW5kIG9mIHRoZSBmaWxlIC0gdGhlIHdob2xlIHRoaW5nIGlzIGEgY29tbWVudFxuICAgICAgICBpZiAoZXh0cmEuY29tbWVudHMpIHtcbiAgICAgICAgICAgIGxvYy5lbmQgPSB7XG4gICAgICAgICAgICAgICAgbGluZTogbGluZU51bWJlcixcbiAgICAgICAgICAgICAgICBjb2x1bW46IGluZGV4IC0gbGluZVN0YXJ0XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29tbWVudCA9IHNvdXJjZS5zbGljZShzdGFydCArIDIsIGluZGV4KTtcbiAgICAgICAgICAgIGFkZENvbW1lbnQoJ0Jsb2NrJywgY29tbWVudCwgc3RhcnQsIGluZGV4LCBsb2MpO1xuICAgICAgICB9XG4gICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2tpcENvbW1lbnQoKSB7XG4gICAgICAgIHZhciBjaCwgc3RhcnQ7XG4gICAgICAgIGhhc0xpbmVUZXJtaW5hdG9yID0gZmFsc2U7XG5cbiAgICAgICAgc3RhcnQgPSAoaW5kZXggPT09IDApO1xuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpO1xuXG4gICAgICAgICAgICBpZiAoaXNXaGl0ZVNwYWNlKGNoKSkge1xuICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzTGluZVRlcm1pbmF0b3IoY2gpKSB7XG4gICAgICAgICAgICAgICAgaGFzTGluZVRlcm1pbmF0b3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAweDBEICYmIHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSA9PT0gMHgwQSkge1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICArK2xpbmVOdW1iZXI7XG4gICAgICAgICAgICAgICAgbGluZVN0YXJ0ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgc3RhcnQgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gMHgyRikgeyAvLyBVKzAwMkYgaXMgJy8nXG4gICAgICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckNvZGVBdChpbmRleCArIDEpO1xuICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gMHgyRikge1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICBza2lwU2luZ2xlTGluZUNvbW1lbnQoMik7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09PSAweDJBKSB7ICAvLyBVKzAwMkEgaXMgJyonXG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHNraXBNdWx0aUxpbmVDb21tZW50KCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChzdGFydCAmJiBjaCA9PT0gMHgyRCkgeyAvLyBVKzAwMkQgaXMgJy0nXG4gICAgICAgICAgICAgICAgLy8gVSswMDNFIGlzICc+J1xuICAgICAgICAgICAgICAgIGlmICgoc291cmNlLmNoYXJDb2RlQXQoaW5kZXggKyAxKSA9PT0gMHgyRCkgJiYgKHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4ICsgMikgPT09IDB4M0UpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vICctLT4nIGlzIGEgc2luZ2xlLWxpbmUgY29tbWVudFxuICAgICAgICAgICAgICAgICAgICBpbmRleCArPSAzO1xuICAgICAgICAgICAgICAgICAgICBza2lwU2luZ2xlTGluZUNvbW1lbnQoMyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gMHgzQykgeyAvLyBVKzAwM0MgaXMgJzwnXG4gICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5zbGljZShpbmRleCArIDEsIGluZGV4ICsgNCkgPT09ICchLS0nKSB7XG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7IC8vIGA8YFxuICAgICAgICAgICAgICAgICAgICArK2luZGV4OyAvLyBgIWBcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDsgLy8gYC1gXG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7IC8vIGAtYFxuICAgICAgICAgICAgICAgICAgICBza2lwU2luZ2xlTGluZUNvbW1lbnQoNCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjYW5IZXhFc2NhcGUocHJlZml4KSB7XG4gICAgICAgIHZhciBpLCBsZW4sIGNoLCBjb2RlID0gMDtcblxuICAgICAgICBsZW4gPSAocHJlZml4ID09PSAndScpID8gNCA6IDI7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47ICsraSkge1xuICAgICAgICAgICAgaWYgKGluZGV4IDwgbGVuZ3RoICYmIGlzSGV4RGlnaXQoc291cmNlW2luZGV4XSkpIHtcbiAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgICAgICBjb2RlID0gY29kZSAqIDE2ICsgJzAxMjM0NTY3ODlhYmNkZWYnLmluZGV4T2YoY2gudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzY2FuVW5pY29kZUNvZGVQb2ludEVzY2FwZSgpIHtcbiAgICAgICAgdmFyIGNoLCBjb2RlLCBjdTEsIGN1MjtcblxuICAgICAgICBjaCA9IHNvdXJjZVtpbmRleF07XG4gICAgICAgIGNvZGUgPSAwO1xuXG4gICAgICAgIC8vIEF0IGxlYXN0LCBvbmUgaGV4IGRpZ2l0IGlzIHJlcXVpcmVkLlxuICAgICAgICBpZiAoY2ggPT09ICd9Jykge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgICAgICBpZiAoIWlzSGV4RGlnaXQoY2gpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb2RlID0gY29kZSAqIDE2ICsgJzAxMjM0NTY3ODlhYmNkZWYnLmluZGV4T2YoY2gudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29kZSA+IDB4MTBGRkZGIHx8IGNoICE9PSAnfScpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVVEYtMTYgRW5jb2RpbmdcbiAgICAgICAgaWYgKGNvZGUgPD0gMHhGRkZGKSB7XG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKTtcbiAgICAgICAgfVxuICAgICAgICBjdTEgPSAoKGNvZGUgLSAweDEwMDAwKSA+PiAxMCkgKyAweEQ4MDA7XG4gICAgICAgIGN1MiA9ICgoY29kZSAtIDB4MTAwMDApICYgMTAyMykgKyAweERDMDA7XG4gICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGN1MSwgY3UyKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRFc2NhcGVkSWRlbnRpZmllcigpIHtcbiAgICAgICAgdmFyIGNoLCBpZDtcblxuICAgICAgICBjaCA9IHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KyspO1xuICAgICAgICBpZCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY2gpO1xuXG4gICAgICAgIC8vICdcXHUnIChVKzAwNUMsIFUrMDA3NSkgZGVub3RlcyBhbiBlc2NhcGVkIGNoYXJhY3Rlci5cbiAgICAgICAgaWYgKGNoID09PSAweDVDKSB7XG4gICAgICAgICAgICBpZiAoc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpICE9PSAweDc1KSB7XG4gICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICBjaCA9IHNjYW5IZXhFc2NhcGUoJ3UnKTtcbiAgICAgICAgICAgIGlmICghY2ggfHwgY2ggPT09ICdcXFxcJyB8fCAhaXNJZGVudGlmaWVyU3RhcnQoY2guY2hhckNvZGVBdCgwKSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWQgPSBjaDtcbiAgICAgICAgfVxuXG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckNvZGVBdChpbmRleCk7XG4gICAgICAgICAgICBpZiAoIWlzSWRlbnRpZmllclBhcnQoY2gpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgaWQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjaCk7XG5cbiAgICAgICAgICAgIC8vICdcXHUnIChVKzAwNUMsIFUrMDA3NSkgZGVub3RlcyBhbiBlc2NhcGVkIGNoYXJhY3Rlci5cbiAgICAgICAgICAgIGlmIChjaCA9PT0gMHg1Qykge1xuICAgICAgICAgICAgICAgIGlkID0gaWQuc3Vic3RyKDAsIGlkLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuY2hhckNvZGVBdChpbmRleCkgIT09IDB4NzUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICBjaCA9IHNjYW5IZXhFc2NhcGUoJ3UnKTtcbiAgICAgICAgICAgICAgICBpZiAoIWNoIHx8IGNoID09PSAnXFxcXCcgfHwgIWlzSWRlbnRpZmllclBhcnQoY2guY2hhckNvZGVBdCgwKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWQgKz0gY2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0SWRlbnRpZmllcigpIHtcbiAgICAgICAgdmFyIHN0YXJ0LCBjaDtcblxuICAgICAgICBzdGFydCA9IGluZGV4Kys7XG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckNvZGVBdChpbmRleCk7XG4gICAgICAgICAgICBpZiAoY2ggPT09IDB4NUMpIHtcbiAgICAgICAgICAgICAgICAvLyBCbGFja3NsYXNoIChVKzAwNUMpIG1hcmtzIFVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlLlxuICAgICAgICAgICAgICAgIGluZGV4ID0gc3RhcnQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldEVzY2FwZWRJZGVudGlmaWVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNJZGVudGlmaWVyUGFydChjaCkpIHtcbiAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzb3VyY2Uuc2xpY2Uoc3RhcnQsIGluZGV4KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzY2FuSWRlbnRpZmllcigpIHtcbiAgICAgICAgdmFyIHN0YXJ0LCBpZCwgdHlwZTtcblxuICAgICAgICBzdGFydCA9IGluZGV4O1xuXG4gICAgICAgIC8vIEJhY2tzbGFzaCAoVSswMDVDKSBzdGFydHMgYW4gZXNjYXBlZCBjaGFyYWN0ZXIuXG4gICAgICAgIGlkID0gKHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSA9PT0gMHg1QykgPyBnZXRFc2NhcGVkSWRlbnRpZmllcigpIDogZ2V0SWRlbnRpZmllcigpO1xuXG4gICAgICAgIC8vIFRoZXJlIGlzIG5vIGtleXdvcmQgb3IgbGl0ZXJhbCB3aXRoIG9ubHkgb25lIGNoYXJhY3Rlci5cbiAgICAgICAgLy8gVGh1cywgaXQgbXVzdCBiZSBhbiBpZGVudGlmaWVyLlxuICAgICAgICBpZiAoaWQubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0eXBlID0gVG9rZW4uSWRlbnRpZmllcjtcbiAgICAgICAgfSBlbHNlIGlmIChpc0tleXdvcmQoaWQpKSB7XG4gICAgICAgICAgICB0eXBlID0gVG9rZW4uS2V5d29yZDtcbiAgICAgICAgfSBlbHNlIGlmIChpZCA9PT0gJ251bGwnKSB7XG4gICAgICAgICAgICB0eXBlID0gVG9rZW4uTnVsbExpdGVyYWw7XG4gICAgICAgIH0gZWxzZSBpZiAoaWQgPT09ICd0cnVlJyB8fCBpZCA9PT0gJ2ZhbHNlJykge1xuICAgICAgICAgICAgdHlwZSA9IFRva2VuLkJvb2xlYW5MaXRlcmFsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHlwZSA9IFRva2VuLklkZW50aWZpZXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICAgIHZhbHVlOiBpZCxcbiAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICBsaW5lU3RhcnQ6IGxpbmVTdGFydCxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgfTtcbiAgICB9XG5cblxuICAgIC8vIDcuNyBQdW5jdHVhdG9yc1xuXG4gICAgZnVuY3Rpb24gc2NhblB1bmN0dWF0b3IoKSB7XG4gICAgICAgIHZhciB0b2tlbiwgc3RyO1xuXG4gICAgICAgIHRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uUHVuY3R1YXRvcixcbiAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICBsaW5lU3RhcnQ6IGxpbmVTdGFydCxcbiAgICAgICAgICAgIHN0YXJ0OiBpbmRleCxcbiAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBDaGVjayBmb3IgbW9zdCBjb21tb24gc2luZ2xlLWNoYXJhY3RlciBwdW5jdHVhdG9ycy5cbiAgICAgICAgc3RyID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgc3dpdGNoIChzdHIpIHtcblxuICAgICAgICBjYXNlICcoJzpcbiAgICAgICAgICAgIGlmIChleHRyYS50b2tlbml6ZSkge1xuICAgICAgICAgICAgICAgIGV4dHJhLm9wZW5QYXJlblRva2VuID0gZXh0cmEudG9rZW5zLmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICd7JzpcbiAgICAgICAgICAgIGlmIChleHRyYS50b2tlbml6ZSkge1xuICAgICAgICAgICAgICAgIGV4dHJhLm9wZW5DdXJseVRva2VuID0gZXh0cmEudG9rZW5zLmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YXRlLmN1cmx5U3RhY2sucHVzaCgneycpO1xuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJy4nOlxuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIGlmIChzb3VyY2VbaW5kZXhdID09PSAnLicgJiYgc291cmNlW2luZGV4ICsgMV0gPT09ICcuJykge1xuICAgICAgICAgICAgICAgIC8vIFNwcmVhZCBvcGVyYXRvcjogLi4uXG4gICAgICAgICAgICAgICAgaW5kZXggKz0gMjtcbiAgICAgICAgICAgICAgICBzdHIgPSAnLi4uJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ30nOlxuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIHN0YXRlLmN1cmx5U3RhY2sucG9wKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnKSc6XG4gICAgICAgIGNhc2UgJzsnOlxuICAgICAgICBjYXNlICcsJzpcbiAgICAgICAgY2FzZSAnWyc6XG4gICAgICAgIGNhc2UgJ10nOlxuICAgICAgICBjYXNlICc6JzpcbiAgICAgICAgY2FzZSAnPyc6XG4gICAgICAgIGNhc2UgJ34nOlxuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyA0LWNoYXJhY3RlciBwdW5jdHVhdG9yLlxuICAgICAgICAgICAgc3RyID0gc291cmNlLnN1YnN0cihpbmRleCwgNCk7XG4gICAgICAgICAgICBpZiAoc3RyID09PSAnPj4+PScpIHtcbiAgICAgICAgICAgICAgICBpbmRleCArPSA0O1xuICAgICAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgICAgIC8vIDMtY2hhcmFjdGVyIHB1bmN0dWF0b3JzLlxuICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHIoMCwgMyk7XG4gICAgICAgICAgICAgICAgaWYgKHN0ciA9PT0gJz09PScgfHwgc3RyID09PSAnIT09JyB8fCBzdHIgPT09ICc+Pj4nIHx8XG4gICAgICAgICAgICAgICAgICAgIHN0ciA9PT0gJzw8PScgfHwgc3RyID09PSAnPj49Jykge1xuICAgICAgICAgICAgICAgICAgICBpbmRleCArPSAzO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gMi1jaGFyYWN0ZXIgcHVuY3R1YXRvcnMuXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHIoMCwgMik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdHIgPT09ICcmJicgfHwgc3RyID09PSAnfHwnIHx8IHN0ciA9PT0gJz09JyB8fCBzdHIgPT09ICchPScgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9PT0gJys9JyB8fCBzdHIgPT09ICctPScgfHwgc3RyID09PSAnKj0nIHx8IHN0ciA9PT0gJy89JyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyID09PSAnKysnIHx8IHN0ciA9PT0gJy0tJyB8fCBzdHIgPT09ICc8PCcgfHwgc3RyID09PSAnPj4nIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgPT09ICcmPScgfHwgc3RyID09PSAnfD0nIHx8IHN0ciA9PT0gJ149JyB8fCBzdHIgPT09ICclPScgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9PT0gJzw9JyB8fCBzdHIgPT09ICc+PScgfHwgc3RyID09PSAnPT4nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCArPSAyO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAxLWNoYXJhY3RlciBwdW5jdHVhdG9ycy5cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9IHNvdXJjZVtpbmRleF07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJzw+PSErLSolJnxeLycuaW5kZXhPZihzdHIpID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGluZGV4ID09PSB0b2tlbi5zdGFydCkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRva2VuLmVuZCA9IGluZGV4O1xuICAgICAgICB0b2tlbi52YWx1ZSA9IHN0cjtcbiAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgIH1cblxuICAgIC8vIDcuOC4zIE51bWVyaWMgTGl0ZXJhbHNcblxuICAgIGZ1bmN0aW9uIHNjYW5IZXhMaXRlcmFsKHN0YXJ0KSB7XG4gICAgICAgIHZhciBudW1iZXIgPSAnJztcblxuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICghaXNIZXhEaWdpdChzb3VyY2VbaW5kZXhdKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbnVtYmVyICs9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChudW1iZXIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzSWRlbnRpZmllclN0YXJ0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uTnVtZXJpY0xpdGVyYWwsXG4gICAgICAgICAgICB2YWx1ZTogcGFyc2VJbnQoJzB4JyArIG51bWJlciwgMTYpLFxuICAgICAgICAgICAgbGluZU51bWJlcjogbGluZU51bWJlcixcbiAgICAgICAgICAgIGxpbmVTdGFydDogbGluZVN0YXJ0LFxuICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICAgICAgZW5kOiBpbmRleFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjYW5CaW5hcnlMaXRlcmFsKHN0YXJ0KSB7XG4gICAgICAgIHZhciBjaCwgbnVtYmVyO1xuXG4gICAgICAgIG51bWJlciA9ICcnO1xuXG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKGNoICE9PSAnMCcgJiYgY2ggIT09ICcxJykge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbnVtYmVyICs9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChudW1iZXIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAvLyBvbmx5IDBiIG9yIDBCXG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBjaCA9IHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KTtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAoaXNJZGVudGlmaWVyU3RhcnQoY2gpIHx8IGlzRGVjaW1hbERpZ2l0KGNoKSkge1xuICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uTnVtZXJpY0xpdGVyYWwsXG4gICAgICAgICAgICB2YWx1ZTogcGFyc2VJbnQobnVtYmVyLCAyKSxcbiAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICBsaW5lU3RhcnQ6IGxpbmVTdGFydCxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzY2FuT2N0YWxMaXRlcmFsKHByZWZpeCwgc3RhcnQpIHtcbiAgICAgICAgdmFyIG51bWJlciwgb2N0YWw7XG5cbiAgICAgICAgaWYgKGlzT2N0YWxEaWdpdChwcmVmaXgpKSB7XG4gICAgICAgICAgICBvY3RhbCA9IHRydWU7XG4gICAgICAgICAgICBudW1iZXIgPSAnMCcgKyBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvY3RhbCA9IGZhbHNlO1xuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIG51bWJlciA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoIWlzT2N0YWxEaWdpdChzb3VyY2VbaW5kZXhdKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbnVtYmVyICs9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghb2N0YWwgJiYgbnVtYmVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgLy8gb25seSAwbyBvciAwT1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0lkZW50aWZpZXJTdGFydChzb3VyY2UuY2hhckNvZGVBdChpbmRleCkpIHx8IGlzRGVjaW1hbERpZ2l0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uTnVtZXJpY0xpdGVyYWwsXG4gICAgICAgICAgICB2YWx1ZTogcGFyc2VJbnQobnVtYmVyLCA4KSxcbiAgICAgICAgICAgIG9jdGFsOiBvY3RhbCxcbiAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICBsaW5lU3RhcnQ6IGxpbmVTdGFydCxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0ltcGxpY2l0T2N0YWxMaXRlcmFsKCkge1xuICAgICAgICB2YXIgaSwgY2g7XG5cbiAgICAgICAgLy8gSW1wbGljaXQgb2N0YWwsIHVubGVzcyB0aGVyZSBpcyBhIG5vbi1vY3RhbCBkaWdpdC5cbiAgICAgICAgLy8gKEFubmV4IEIuMS4xIG9uIE51bWVyaWMgTGl0ZXJhbHMpXG4gICAgICAgIGZvciAoaSA9IGluZGV4ICsgMTsgaSA8IGxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBjaCA9IHNvdXJjZVtpXTtcbiAgICAgICAgICAgIGlmIChjaCA9PT0gJzgnIHx8IGNoID09PSAnOScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzT2N0YWxEaWdpdChjaCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjYW5OdW1lcmljTGl0ZXJhbCgpIHtcbiAgICAgICAgdmFyIG51bWJlciwgc3RhcnQsIGNoO1xuXG4gICAgICAgIGNoID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgYXNzZXJ0KGlzRGVjaW1hbERpZ2l0KGNoLmNoYXJDb2RlQXQoMCkpIHx8IChjaCA9PT0gJy4nKSxcbiAgICAgICAgICAgICdOdW1lcmljIGxpdGVyYWwgbXVzdCBzdGFydCB3aXRoIGEgZGVjaW1hbCBkaWdpdCBvciBhIGRlY2ltYWwgcG9pbnQnKTtcblxuICAgICAgICBzdGFydCA9IGluZGV4O1xuICAgICAgICBudW1iZXIgPSAnJztcbiAgICAgICAgaWYgKGNoICE9PSAnLicpIHtcbiAgICAgICAgICAgIG51bWJlciA9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgIGNoID0gc291cmNlW2luZGV4XTtcblxuICAgICAgICAgICAgLy8gSGV4IG51bWJlciBzdGFydHMgd2l0aCAnMHgnLlxuICAgICAgICAgICAgLy8gT2N0YWwgbnVtYmVyIHN0YXJ0cyB3aXRoICcwJy5cbiAgICAgICAgICAgIC8vIE9jdGFsIG51bWJlciBpbiBFUzYgc3RhcnRzIHdpdGggJzBvJy5cbiAgICAgICAgICAgIC8vIEJpbmFyeSBudW1iZXIgaW4gRVM2IHN0YXJ0cyB3aXRoICcwYicuXG4gICAgICAgICAgICBpZiAobnVtYmVyID09PSAnMCcpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICd4JyB8fCBjaCA9PT0gJ1gnKSB7XG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzY2FuSGV4TGl0ZXJhbChzdGFydCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJ2InIHx8IGNoID09PSAnQicpIHtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNjYW5CaW5hcnlMaXRlcmFsKHN0YXJ0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAnbycgfHwgY2ggPT09ICdPJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2Nhbk9jdGFsTGl0ZXJhbChjaCwgc3RhcnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpc09jdGFsRGlnaXQoY2gpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0ltcGxpY2l0T2N0YWxMaXRlcmFsKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzY2FuT2N0YWxMaXRlcmFsKGNoLCBzdGFydCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHdoaWxlIChpc0RlY2ltYWxEaWdpdChzb3VyY2UuY2hhckNvZGVBdChpbmRleCkpKSB7XG4gICAgICAgICAgICAgICAgbnVtYmVyICs9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNoID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaCA9PT0gJy4nKSB7XG4gICAgICAgICAgICBudW1iZXIgKz0gc291cmNlW2luZGV4KytdO1xuICAgICAgICAgICAgd2hpbGUgKGlzRGVjaW1hbERpZ2l0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgICAgICAgICAgICBudW1iZXIgKz0gc291cmNlW2luZGV4KytdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXhdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoID09PSAnZScgfHwgY2ggPT09ICdFJykge1xuICAgICAgICAgICAgbnVtYmVyICs9IHNvdXJjZVtpbmRleCsrXTtcblxuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKGNoID09PSAnKycgfHwgY2ggPT09ICctJykge1xuICAgICAgICAgICAgICAgIG51bWJlciArPSBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNEZWNpbWFsRGlnaXQoc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpKSkge1xuICAgICAgICAgICAgICAgIHdoaWxlIChpc0RlY2ltYWxEaWdpdChzb3VyY2UuY2hhckNvZGVBdChpbmRleCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIG51bWJlciArPSBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzSWRlbnRpZmllclN0YXJ0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uTnVtZXJpY0xpdGVyYWwsXG4gICAgICAgICAgICB2YWx1ZTogcGFyc2VGbG9hdChudW1iZXIpLFxuICAgICAgICAgICAgbGluZU51bWJlcjogbGluZU51bWJlcixcbiAgICAgICAgICAgIGxpbmVTdGFydDogbGluZVN0YXJ0LFxuICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICAgICAgZW5kOiBpbmRleFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIDcuOC40IFN0cmluZyBMaXRlcmFsc1xuXG4gICAgZnVuY3Rpb24gc2NhblN0cmluZ0xpdGVyYWwoKSB7XG4gICAgICAgIHZhciBzdHIgPSAnJywgcXVvdGUsIHN0YXJ0LCBjaCwgdW5lc2NhcGVkLCBvY3RUb0RlYywgb2N0YWwgPSBmYWxzZTtcblxuICAgICAgICBxdW90ZSA9IHNvdXJjZVtpbmRleF07XG4gICAgICAgIGFzc2VydCgocXVvdGUgPT09ICdcXCcnIHx8IHF1b3RlID09PSAnXCInKSxcbiAgICAgICAgICAgICdTdHJpbmcgbGl0ZXJhbCBtdXN0IHN0YXJ0cyB3aXRoIGEgcXVvdGUnKTtcblxuICAgICAgICBzdGFydCA9IGluZGV4O1xuICAgICAgICArK2luZGV4O1xuXG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXgrK107XG5cbiAgICAgICAgICAgIGlmIChjaCA9PT0gcXVvdGUpIHtcbiAgICAgICAgICAgICAgICBxdW90ZSA9ICcnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gJ1xcXFwnKSB7XG4gICAgICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgICAgICAgICAgaWYgKCFjaCB8fCAhaXNMaW5lVGVybWluYXRvcihjaC5jaGFyQ29kZUF0KDApKSkge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3UnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICd4JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VbaW5kZXhdID09PSAneycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSBzY2FuVW5pY29kZUNvZGVQb2ludEVzY2FwZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmVzY2FwZWQgPSBzY2FuSGV4RXNjYXBlKGNoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXVuZXNjYXBlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gdW5lc2NhcGVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ24nOlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXG4nO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3InOlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXHInO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3QnOlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXHQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2InOlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXGInO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2YnOlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXGYnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3YnOlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXHgwQic7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnOCc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJzknOlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcblxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzT2N0YWxEaWdpdChjaCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvY3RUb0RlYyA9IG9jdGFsVG9EZWNpbWFsKGNoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9jdGFsID0gb2N0VG9EZWMub2N0YWwgfHwgb2N0YWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9IFN0cmluZy5mcm9tQ2hhckNvZGUob2N0VG9EZWMuY29kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSBjaDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgKytsaW5lTnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICdcXHInICYmIHNvdXJjZVtpbmRleF0gPT09ICdcXG4nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxpbmVTdGFydCA9IGluZGV4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNMaW5lVGVybWluYXRvcihjaC5jaGFyQ29kZUF0KDApKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdHIgKz0gY2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocXVvdGUgIT09ICcnKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFRva2VuLlN0cmluZ0xpdGVyYWwsXG4gICAgICAgICAgICB2YWx1ZTogc3RyLFxuICAgICAgICAgICAgb2N0YWw6IG9jdGFsLFxuICAgICAgICAgICAgbGluZU51bWJlcjogc3RhcnRMaW5lTnVtYmVyLFxuICAgICAgICAgICAgbGluZVN0YXJ0OiBzdGFydExpbmVTdGFydCxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzY2FuVGVtcGxhdGUoKSB7XG4gICAgICAgIHZhciBjb29rZWQgPSAnJywgY2gsIHN0YXJ0LCByYXdPZmZzZXQsIHRlcm1pbmF0ZWQsIGhlYWQsIHRhaWwsIHJlc3RvcmUsIHVuZXNjYXBlZDtcblxuICAgICAgICB0ZXJtaW5hdGVkID0gZmFsc2U7XG4gICAgICAgIHRhaWwgPSBmYWxzZTtcbiAgICAgICAgc3RhcnQgPSBpbmRleDtcbiAgICAgICAgaGVhZCA9IChzb3VyY2VbaW5kZXhdID09PSAnYCcpO1xuICAgICAgICByYXdPZmZzZXQgPSAyO1xuXG4gICAgICAgICsraW5kZXg7XG5cbiAgICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBjaCA9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgIGlmIChjaCA9PT0gJ2AnKSB7XG4gICAgICAgICAgICAgICAgcmF3T2Zmc2V0ID0gMTtcbiAgICAgICAgICAgICAgICB0YWlsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0ZXJtaW5hdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT09ICckJykge1xuICAgICAgICAgICAgICAgIGlmIChzb3VyY2VbaW5kZXhdID09PSAneycpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuY3VybHlTdGFjay5wdXNoKCckeycpO1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICB0ZXJtaW5hdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvb2tlZCArPSBjaDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT09ICdcXFxcJykge1xuICAgICAgICAgICAgICAgIGNoID0gc291cmNlW2luZGV4KytdO1xuICAgICAgICAgICAgICAgIGlmICghaXNMaW5lVGVybWluYXRvcihjaC5jaGFyQ29kZUF0KDApKSkge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ24nOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9ICdcXG4nO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3InOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9ICdcXHInO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3QnOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9ICdcXHQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3UnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICd4JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VbaW5kZXhdID09PSAneycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tlZCArPSBzY2FuVW5pY29kZUNvZGVQb2ludEVzY2FwZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0b3JlID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5lc2NhcGVkID0gc2NhbkhleEVzY2FwZShjaCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVuZXNjYXBlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29rZWQgKz0gdW5lc2NhcGVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gcmVzdG9yZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9IGNoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdiJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tlZCArPSAnXFxiJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdmJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tlZCArPSAnXFxmJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICd2JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tlZCArPSAnXFx2JztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICcwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0RlY2ltYWxEaWdpdChzb3VyY2UuY2hhckNvZGVBdChpbmRleCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElsbGVnYWw6IFxcMDEgXFwwMiBhbmQgc28gb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5UZW1wbGF0ZU9jdGFsTGl0ZXJhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tlZCArPSAnXFwwJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNPY3RhbERpZ2l0KGNoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElsbGVnYWw6IFxcMSBcXDJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLlRlbXBsYXRlT2N0YWxMaXRlcmFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9IGNoO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICArK2xpbmVOdW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJ1xccicgJiYgc291cmNlW2luZGV4XSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbGluZVN0YXJ0ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0xpbmVUZXJtaW5hdG9yKGNoLmNoYXJDb2RlQXQoMCkpKSB7XG4gICAgICAgICAgICAgICAgKytsaW5lTnVtYmVyO1xuICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJ1xccicgJiYgc291cmNlW2luZGV4XSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGluZVN0YXJ0ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgY29va2VkICs9ICdcXG4nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb29rZWQgKz0gY2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRlcm1pbmF0ZWQpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWhlYWQpIHtcbiAgICAgICAgICAgIHN0YXRlLmN1cmx5U3RhY2sucG9wKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uVGVtcGxhdGUsXG4gICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIGNvb2tlZDogY29va2VkLFxuICAgICAgICAgICAgICAgIHJhdzogc291cmNlLnNsaWNlKHN0YXJ0ICsgMSwgaW5kZXggLSByYXdPZmZzZXQpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGVhZDogaGVhZCxcbiAgICAgICAgICAgIHRhaWw6IHRhaWwsXG4gICAgICAgICAgICBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgbGluZVN0YXJ0OiBsaW5lU3RhcnQsXG4gICAgICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgICAgICBlbmQ6IGluZGV4XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdGVzdFJlZ0V4cChwYXR0ZXJuLCBmbGFncykge1xuICAgICAgICB2YXIgdG1wID0gcGF0dGVybjtcblxuICAgICAgICBpZiAoZmxhZ3MuaW5kZXhPZigndScpID49IDApIHtcbiAgICAgICAgICAgIC8vIFJlcGxhY2UgZWFjaCBhc3RyYWwgc3ltYm9sIGFuZCBldmVyeSBVbmljb2RlIGVzY2FwZSBzZXF1ZW5jZVxuICAgICAgICAgICAgLy8gdGhhdCBwb3NzaWJseSByZXByZXNlbnRzIGFuIGFzdHJhbCBzeW1ib2wgb3IgYSBwYWlyZWQgc3Vycm9nYXRlXG4gICAgICAgICAgICAvLyB3aXRoIGEgc2luZ2xlIEFTQ0lJIHN5bWJvbCB0byBhdm9pZCB0aHJvd2luZyBvbiByZWd1bGFyXG4gICAgICAgICAgICAvLyBleHByZXNzaW9ucyB0aGF0IGFyZSBvbmx5IHZhbGlkIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIGAvdWBcbiAgICAgICAgICAgIC8vIGZsYWcuXG4gICAgICAgICAgICAvLyBOb3RlOiByZXBsYWNpbmcgd2l0aCB0aGUgQVNDSUkgc3ltYm9sIGB4YCBtaWdodCBjYXVzZSBmYWxzZVxuICAgICAgICAgICAgLy8gbmVnYXRpdmVzIGluIHVubGlrZWx5IHNjZW5hcmlvcy4gRm9yIGV4YW1wbGUsIGBbXFx1ezYxfS1iXWAgaXMgYVxuICAgICAgICAgICAgLy8gcGVyZmVjdGx5IHZhbGlkIHBhdHRlcm4gdGhhdCBpcyBlcXVpdmFsZW50IHRvIGBbYS1iXWAsIGJ1dCBpdFxuICAgICAgICAgICAgLy8gd291bGQgYmUgcmVwbGFjZWQgYnkgYFt4LWJdYCB3aGljaCB0aHJvd3MgYW4gZXJyb3IuXG4gICAgICAgICAgICB0bXAgPSB0bXBcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxcXHVcXHsoWzAtOWEtZkEtRl0rKVxcfS9nLCBmdW5jdGlvbiAoJDAsICQxKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJzZUludCgkMSwgMTYpIDw9IDB4MTBGRkZGKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3gnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKG51bGwsIE1lc3NhZ2VzLkludmFsaWRSZWdFeHApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgICAgIC9cXFxcdShbYS1mQS1GMC05XXs0fSl8W1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXS9nLFxuICAgICAgICAgICAgICAgICAgICAneCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmlyc3QsIGRldGVjdCBpbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbnMuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBSZWdFeHAodG1wKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obnVsbCwgTWVzc2FnZXMuSW52YWxpZFJlZ0V4cCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXR1cm4gYSByZWd1bGFyIGV4cHJlc3Npb24gb2JqZWN0IGZvciB0aGlzIHBhdHRlcm4tZmxhZyBwYWlyLCBvclxuICAgICAgICAvLyBgbnVsbGAgaW4gY2FzZSB0aGUgY3VycmVudCBlbnZpcm9ubWVudCBkb2Vzbid0IHN1cHBvcnQgdGhlIGZsYWdzIGl0XG4gICAgICAgIC8vIHVzZXMuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cChwYXR0ZXJuLCBmbGFncyk7XG4gICAgICAgIH0gY2F0Y2ggKGV4Y2VwdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzY2FuUmVnRXhwQm9keSgpIHtcbiAgICAgICAgdmFyIGNoLCBzdHIsIGNsYXNzTWFya2VyLCB0ZXJtaW5hdGVkLCBib2R5O1xuXG4gICAgICAgIGNoID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgYXNzZXJ0KGNoID09PSAnLycsICdSZWd1bGFyIGV4cHJlc3Npb24gbGl0ZXJhbCBtdXN0IHN0YXJ0IHdpdGggYSBzbGFzaCcpO1xuICAgICAgICBzdHIgPSBzb3VyY2VbaW5kZXgrK107XG5cbiAgICAgICAgY2xhc3NNYXJrZXIgPSBmYWxzZTtcbiAgICAgICAgdGVybWluYXRlZCA9IGZhbHNlO1xuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGNoID0gc291cmNlW2luZGV4KytdO1xuICAgICAgICAgICAgc3RyICs9IGNoO1xuICAgICAgICAgICAgaWYgKGNoID09PSAnXFxcXCcpIHtcbiAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgICAgICAvLyBFQ01BLTI2MiA3LjguNVxuICAgICAgICAgICAgICAgIGlmIChpc0xpbmVUZXJtaW5hdG9yKGNoLmNoYXJDb2RlQXQoMCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKG51bGwsIE1lc3NhZ2VzLlVudGVybWluYXRlZFJlZ0V4cCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN0ciArPSBjaDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNMaW5lVGVybWluYXRvcihjaC5jaGFyQ29kZUF0KDApKSkge1xuICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKG51bGwsIE1lc3NhZ2VzLlVudGVybWluYXRlZFJlZ0V4cCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNsYXNzTWFya2VyKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAnXScpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NNYXJrZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJy8nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRlcm1pbmF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09PSAnWycpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NNYXJrZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGVybWluYXRlZCkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obnVsbCwgTWVzc2FnZXMuVW50ZXJtaW5hdGVkUmVnRXhwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEV4Y2x1ZGUgbGVhZGluZyBhbmQgdHJhaWxpbmcgc2xhc2guXG4gICAgICAgIGJvZHkgPSBzdHIuc3Vic3RyKDEsIHN0ci5sZW5ndGggLSAyKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbHVlOiBib2R5LFxuICAgICAgICAgICAgbGl0ZXJhbDogc3RyXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2NhblJlZ0V4cEZsYWdzKCkge1xuICAgICAgICB2YXIgY2gsIHN0ciwgZmxhZ3MsIHJlc3RvcmU7XG5cbiAgICAgICAgc3RyID0gJyc7XG4gICAgICAgIGZsYWdzID0gJyc7XG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKCFpc0lkZW50aWZpZXJQYXJ0KGNoLmNoYXJDb2RlQXQoMCkpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICBpZiAoY2ggPT09ICdcXFxcJyAmJiBpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNoID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICd1Jykge1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICByZXN0b3JlID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIGNoID0gc2NhbkhleEVzY2FwZSgndScpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzICs9IGNoO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChzdHIgKz0gJ1xcXFx1JzsgcmVzdG9yZSA8IGluZGV4OyArK3Jlc3RvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gc291cmNlW3Jlc3RvcmVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSByZXN0b3JlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MgKz0gJ3UnO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXFxcdSc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcXFwnO1xuICAgICAgICAgICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZmxhZ3MgKz0gY2g7XG4gICAgICAgICAgICAgICAgc3RyICs9IGNoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbHVlOiBmbGFncyxcbiAgICAgICAgICAgIGxpdGVyYWw6IHN0clxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjYW5SZWdFeHAoKSB7XG4gICAgICAgIHNjYW5uaW5nID0gdHJ1ZTtcbiAgICAgICAgdmFyIHN0YXJ0LCBib2R5LCBmbGFncywgdmFsdWU7XG5cbiAgICAgICAgbG9va2FoZWFkID0gbnVsbDtcbiAgICAgICAgc2tpcENvbW1lbnQoKTtcbiAgICAgICAgc3RhcnQgPSBpbmRleDtcblxuICAgICAgICBib2R5ID0gc2NhblJlZ0V4cEJvZHkoKTtcbiAgICAgICAgZmxhZ3MgPSBzY2FuUmVnRXhwRmxhZ3MoKTtcbiAgICAgICAgdmFsdWUgPSB0ZXN0UmVnRXhwKGJvZHkudmFsdWUsIGZsYWdzLnZhbHVlKTtcbiAgICAgICAgc2Nhbm5pbmcgPSBmYWxzZTtcbiAgICAgICAgaWYgKGV4dHJhLnRva2VuaXplKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFRva2VuLlJlZ3VsYXJFeHByZXNzaW9uLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICByZWdleDoge1xuICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuOiBib2R5LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBmbGFnczogZmxhZ3MudmFsdWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICAgICAgbGluZVN0YXJ0OiBsaW5lU3RhcnQsXG4gICAgICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGl0ZXJhbDogYm9keS5saXRlcmFsICsgZmxhZ3MubGl0ZXJhbCxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIHJlZ2V4OiB7XG4gICAgICAgICAgICAgICAgcGF0dGVybjogYm9keS52YWx1ZSxcbiAgICAgICAgICAgICAgICBmbGFnczogZmxhZ3MudmFsdWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgICAgICBlbmQ6IGluZGV4XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29sbGVjdFJlZ2V4KCkge1xuICAgICAgICB2YXIgcG9zLCBsb2MsIHJlZ2V4LCB0b2tlbjtcblxuICAgICAgICBza2lwQ29tbWVudCgpO1xuXG4gICAgICAgIHBvcyA9IGluZGV4O1xuICAgICAgICBsb2MgPSB7XG4gICAgICAgICAgICBzdGFydDoge1xuICAgICAgICAgICAgICAgIGxpbmU6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICAgICAgY29sdW1uOiBpbmRleCAtIGxpbmVTdGFydFxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHJlZ2V4ID0gc2NhblJlZ0V4cCgpO1xuXG4gICAgICAgIGxvYy5lbmQgPSB7XG4gICAgICAgICAgICBsaW5lOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgY29sdW1uOiBpbmRleCAtIGxpbmVTdGFydFxuICAgICAgICB9O1xuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIGlmICghZXh0cmEudG9rZW5pemUpIHtcbiAgICAgICAgICAgIC8vIFBvcCB0aGUgcHJldmlvdXMgdG9rZW4sIHdoaWNoIGlzIGxpa2VseSAnLycgb3IgJy89J1xuICAgICAgICAgICAgaWYgKGV4dHJhLnRva2Vucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdG9rZW4gPSBleHRyYS50b2tlbnNbZXh0cmEudG9rZW5zLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgICAgIGlmICh0b2tlbi5yYW5nZVswXSA9PT0gcG9zICYmIHRva2VuLnR5cGUgPT09ICdQdW5jdHVhdG9yJykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodG9rZW4udmFsdWUgPT09ICcvJyB8fCB0b2tlbi52YWx1ZSA9PT0gJy89Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmEudG9rZW5zLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBleHRyYS50b2tlbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgdHlwZTogJ1JlZ3VsYXJFeHByZXNzaW9uJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogcmVnZXgubGl0ZXJhbCxcbiAgICAgICAgICAgICAgICByZWdleDogcmVnZXgucmVnZXgsXG4gICAgICAgICAgICAgICAgcmFuZ2U6IFtwb3MsIGluZGV4XSxcbiAgICAgICAgICAgICAgICBsb2M6IGxvY1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVnZXg7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNJZGVudGlmaWVyTmFtZSh0b2tlbikge1xuICAgICAgICByZXR1cm4gdG9rZW4udHlwZSA9PT0gVG9rZW4uSWRlbnRpZmllciB8fFxuICAgICAgICAgICAgdG9rZW4udHlwZSA9PT0gVG9rZW4uS2V5d29yZCB8fFxuICAgICAgICAgICAgdG9rZW4udHlwZSA9PT0gVG9rZW4uQm9vbGVhbkxpdGVyYWwgfHxcbiAgICAgICAgICAgIHRva2VuLnR5cGUgPT09IFRva2VuLk51bGxMaXRlcmFsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkdmFuY2VTbGFzaCgpIHtcbiAgICAgICAgdmFyIHByZXZUb2tlbixcbiAgICAgICAgICAgIGNoZWNrVG9rZW47XG4gICAgICAgIC8vIFVzaW5nIHRoZSBmb2xsb3dpbmcgYWxnb3JpdGhtOlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zd2VldC5qcy93aWtpL2Rlc2lnblxuICAgICAgICBwcmV2VG9rZW4gPSBleHRyYS50b2tlbnNbZXh0cmEudG9rZW5zLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAoIXByZXZUb2tlbikge1xuICAgICAgICAgICAgLy8gTm90aGluZyBiZWZvcmUgdGhhdDogaXQgY2Fubm90IGJlIGEgZGl2aXNpb24uXG4gICAgICAgICAgICByZXR1cm4gY29sbGVjdFJlZ2V4KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByZXZUb2tlbi50eXBlID09PSAnUHVuY3R1YXRvcicpIHtcbiAgICAgICAgICAgIGlmIChwcmV2VG9rZW4udmFsdWUgPT09ICddJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBzY2FuUHVuY3R1YXRvcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHByZXZUb2tlbi52YWx1ZSA9PT0gJyknKSB7XG4gICAgICAgICAgICAgICAgY2hlY2tUb2tlbiA9IGV4dHJhLnRva2Vuc1tleHRyYS5vcGVuUGFyZW5Ub2tlbiAtIDFdO1xuICAgICAgICAgICAgICAgIGlmIChjaGVja1Rva2VuICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Rva2VuLnR5cGUgPT09ICdLZXl3b3JkJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoZWNrVG9rZW4udmFsdWUgPT09ICdpZicgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Rva2VuLnZhbHVlID09PSAnd2hpbGUnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUb2tlbi52YWx1ZSA9PT0gJ2ZvcicgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Rva2VuLnZhbHVlID09PSAnd2l0aCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xsZWN0UmVnZXgoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNjYW5QdW5jdHVhdG9yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocHJldlRva2VuLnZhbHVlID09PSAnfScpIHtcbiAgICAgICAgICAgICAgICAvLyBEaXZpZGluZyBhIGZ1bmN0aW9uIGJ5IGFueXRoaW5nIG1ha2VzIGxpdHRsZSBzZW5zZSxcbiAgICAgICAgICAgICAgICAvLyBidXQgd2UgaGF2ZSB0byBjaGVjayBmb3IgdGhhdC5cbiAgICAgICAgICAgICAgICBpZiAoZXh0cmEudG9rZW5zW2V4dHJhLm9wZW5DdXJseVRva2VuIC0gM10gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhLnRva2Vuc1tleHRyYS5vcGVuQ3VybHlUb2tlbiAtIDNdLnR5cGUgPT09ICdLZXl3b3JkJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBBbm9ueW1vdXMgZnVuY3Rpb24uXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrVG9rZW4gPSBleHRyYS50b2tlbnNbZXh0cmEub3BlbkN1cmx5VG9rZW4gLSA0XTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGVja1Rva2VuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2NhblB1bmN0dWF0b3IoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXh0cmEudG9rZW5zW2V4dHJhLm9wZW5DdXJseVRva2VuIC0gNF0gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhLnRva2Vuc1tleHRyYS5vcGVuQ3VybHlUb2tlbiAtIDRdLnR5cGUgPT09ICdLZXl3b3JkJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBOYW1lZCBmdW5jdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgY2hlY2tUb2tlbiA9IGV4dHJhLnRva2Vuc1tleHRyYS5vcGVuQ3VybHlUb2tlbiAtIDVdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNoZWNrVG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xsZWN0UmVnZXgoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzY2FuUHVuY3R1YXRvcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBjaGVja1Rva2VuIGRldGVybWluZXMgd2hldGhlciB0aGUgZnVuY3Rpb24gaXNcbiAgICAgICAgICAgICAgICAvLyBhIGRlY2xhcmF0aW9uIG9yIGFuIGV4cHJlc3Npb24uXG4gICAgICAgICAgICAgICAgaWYgKEZuRXhwclRva2Vucy5pbmRleE9mKGNoZWNrVG9rZW4udmFsdWUpID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSXQgaXMgYW4gZXhwcmVzc2lvbi5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNjYW5QdW5jdHVhdG9yKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIEl0IGlzIGEgZGVjbGFyYXRpb24uXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3RSZWdleCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3RSZWdleCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcmV2VG9rZW4udHlwZSA9PT0gJ0tleXdvcmQnICYmIHByZXZUb2tlbi52YWx1ZSAhPT0gJ3RoaXMnKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sbGVjdFJlZ2V4KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNjYW5QdW5jdHVhdG9yKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWR2YW5jZSgpIHtcbiAgICAgICAgdmFyIGNoLCB0b2tlbjtcblxuICAgICAgICBpZiAoaW5kZXggPj0gbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFRva2VuLkVPRixcbiAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgICAgIGxpbmVTdGFydDogbGluZVN0YXJ0LFxuICAgICAgICAgICAgICAgIHN0YXJ0OiBpbmRleCxcbiAgICAgICAgICAgICAgICBlbmQ6IGluZGV4XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY2ggPSBzb3VyY2UuY2hhckNvZGVBdChpbmRleCk7XG5cbiAgICAgICAgaWYgKGlzSWRlbnRpZmllclN0YXJ0KGNoKSkge1xuICAgICAgICAgICAgdG9rZW4gPSBzY2FuSWRlbnRpZmllcigpO1xuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiBpc1N0cmljdE1vZGVSZXNlcnZlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdG9rZW4udHlwZSA9IFRva2VuLktleXdvcmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWZXJ5IGNvbW1vbjogKCBhbmQgKSBhbmQgO1xuICAgICAgICBpZiAoY2ggPT09IDB4MjggfHwgY2ggPT09IDB4MjkgfHwgY2ggPT09IDB4M0IpIHtcbiAgICAgICAgICAgIHJldHVybiBzY2FuUHVuY3R1YXRvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3RyaW5nIGxpdGVyYWwgc3RhcnRzIHdpdGggc2luZ2xlIHF1b3RlIChVKzAwMjcpIG9yIGRvdWJsZSBxdW90ZSAoVSswMDIyKS5cbiAgICAgICAgaWYgKGNoID09PSAweDI3IHx8IGNoID09PSAweDIyKSB7XG4gICAgICAgICAgICByZXR1cm4gc2NhblN0cmluZ0xpdGVyYWwoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERvdCAoLikgVSswMDJFIGNhbiBhbHNvIHN0YXJ0IGEgZmxvYXRpbmctcG9pbnQgbnVtYmVyLCBoZW5jZSB0aGUgbmVlZFxuICAgICAgICAvLyB0byBjaGVjayB0aGUgbmV4dCBjaGFyYWN0ZXIuXG4gICAgICAgIGlmIChjaCA9PT0gMHgyRSkge1xuICAgICAgICAgICAgaWYgKGlzRGVjaW1hbERpZ2l0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4ICsgMSkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNjYW5OdW1lcmljTGl0ZXJhbCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHNjYW5QdW5jdHVhdG9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNEZWNpbWFsRGlnaXQoY2gpKSB7XG4gICAgICAgICAgICByZXR1cm4gc2Nhbk51bWVyaWNMaXRlcmFsKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTbGFzaCAoLykgVSswMDJGIGNhbiBhbHNvIHN0YXJ0IGEgcmVnZXguXG4gICAgICAgIGlmIChleHRyYS50b2tlbml6ZSAmJiBjaCA9PT0gMHgyRikge1xuICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VTbGFzaCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGVtcGxhdGUgbGl0ZXJhbHMgc3RhcnQgd2l0aCBgIChVKzAwNjApIGZvciB0ZW1wbGF0ZSBoZWFkXG4gICAgICAgIC8vIG9yIH0gKFUrMDA3RCkgZm9yIHRlbXBsYXRlIG1pZGRsZSBvciB0ZW1wbGF0ZSB0YWlsLlxuICAgICAgICBpZiAoY2ggPT09IDB4NjAgfHwgKGNoID09PSAweDdEICYmIHN0YXRlLmN1cmx5U3RhY2tbc3RhdGUuY3VybHlTdGFjay5sZW5ndGggLSAxXSA9PT0gJyR7JykpIHtcbiAgICAgICAgICAgIHJldHVybiBzY2FuVGVtcGxhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzY2FuUHVuY3R1YXRvcigpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbGxlY3RUb2tlbigpIHtcbiAgICAgICAgdmFyIGxvYywgdG9rZW4sIHZhbHVlLCBlbnRyeTtcblxuICAgICAgICBsb2MgPSB7XG4gICAgICAgICAgICBzdGFydDoge1xuICAgICAgICAgICAgICAgIGxpbmU6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICAgICAgY29sdW1uOiBpbmRleCAtIGxpbmVTdGFydFxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHRva2VuID0gYWR2YW5jZSgpO1xuICAgICAgICBsb2MuZW5kID0ge1xuICAgICAgICAgICAgbGluZTogbGluZU51bWJlcixcbiAgICAgICAgICAgIGNvbHVtbjogaW5kZXggLSBsaW5lU3RhcnRcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodG9rZW4udHlwZSAhPT0gVG9rZW4uRU9GKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHNvdXJjZS5zbGljZSh0b2tlbi5zdGFydCwgdG9rZW4uZW5kKTtcbiAgICAgICAgICAgIGVudHJ5ID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFRva2VuTmFtZVt0b2tlbi50eXBlXSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgICAgICAgcmFuZ2U6IFt0b2tlbi5zdGFydCwgdG9rZW4uZW5kXSxcbiAgICAgICAgICAgICAgICBsb2M6IGxvY1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0b2tlbi5yZWdleCkge1xuICAgICAgICAgICAgICAgIGVudHJ5LnJlZ2V4ID0ge1xuICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuOiB0b2tlbi5yZWdleC5wYXR0ZXJuLFxuICAgICAgICAgICAgICAgICAgICBmbGFnczogdG9rZW4ucmVnZXguZmxhZ3NcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXh0cmEudG9rZW5zLnB1c2goZW50cnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxleCgpIHtcbiAgICAgICAgdmFyIHRva2VuO1xuICAgICAgICBzY2FubmluZyA9IHRydWU7XG5cbiAgICAgICAgbGFzdEluZGV4ID0gaW5kZXg7XG4gICAgICAgIGxhc3RMaW5lTnVtYmVyID0gbGluZU51bWJlcjtcbiAgICAgICAgbGFzdExpbmVTdGFydCA9IGxpbmVTdGFydDtcblxuICAgICAgICBza2lwQ29tbWVudCgpO1xuXG4gICAgICAgIHRva2VuID0gbG9va2FoZWFkO1xuXG4gICAgICAgIHN0YXJ0SW5kZXggPSBpbmRleDtcbiAgICAgICAgc3RhcnRMaW5lTnVtYmVyID0gbGluZU51bWJlcjtcbiAgICAgICAgc3RhcnRMaW5lU3RhcnQgPSBsaW5lU3RhcnQ7XG5cbiAgICAgICAgbG9va2FoZWFkID0gKHR5cGVvZiBleHRyYS50b2tlbnMgIT09ICd1bmRlZmluZWQnKSA/IGNvbGxlY3RUb2tlbigpIDogYWR2YW5jZSgpO1xuICAgICAgICBzY2FubmluZyA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGVlaygpIHtcbiAgICAgICAgc2Nhbm5pbmcgPSB0cnVlO1xuXG4gICAgICAgIHNraXBDb21tZW50KCk7XG5cbiAgICAgICAgbGFzdEluZGV4ID0gaW5kZXg7XG4gICAgICAgIGxhc3RMaW5lTnVtYmVyID0gbGluZU51bWJlcjtcbiAgICAgICAgbGFzdExpbmVTdGFydCA9IGxpbmVTdGFydDtcblxuICAgICAgICBzdGFydEluZGV4ID0gaW5kZXg7XG4gICAgICAgIHN0YXJ0TGluZU51bWJlciA9IGxpbmVOdW1iZXI7XG4gICAgICAgIHN0YXJ0TGluZVN0YXJ0ID0gbGluZVN0YXJ0O1xuXG4gICAgICAgIGxvb2thaGVhZCA9ICh0eXBlb2YgZXh0cmEudG9rZW5zICE9PSAndW5kZWZpbmVkJykgPyBjb2xsZWN0VG9rZW4oKSA6IGFkdmFuY2UoKTtcbiAgICAgICAgc2Nhbm5pbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBQb3NpdGlvbigpIHtcbiAgICAgICAgdGhpcy5saW5lID0gc3RhcnRMaW5lTnVtYmVyO1xuICAgICAgICB0aGlzLmNvbHVtbiA9IHN0YXJ0SW5kZXggLSBzdGFydExpbmVTdGFydDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBTb3VyY2VMb2NhdGlvbigpIHtcbiAgICAgICAgdGhpcy5zdGFydCA9IG5ldyBQb3NpdGlvbigpO1xuICAgICAgICB0aGlzLmVuZCA9IG51bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gV3JhcHBpbmdTb3VyY2VMb2NhdGlvbihzdGFydFRva2VuKSB7XG4gICAgICAgIHRoaXMuc3RhcnQgPSB7XG4gICAgICAgICAgICBsaW5lOiBzdGFydFRva2VuLmxpbmVOdW1iZXIsXG4gICAgICAgICAgICBjb2x1bW46IHN0YXJ0VG9rZW4uc3RhcnQgLSBzdGFydFRva2VuLmxpbmVTdGFydFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmVuZCA9IG51bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gTm9kZSgpIHtcbiAgICAgICAgaWYgKGV4dHJhLnJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnJhbmdlID0gW3N0YXJ0SW5kZXgsIDBdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChleHRyYS5sb2MpIHtcbiAgICAgICAgICAgIHRoaXMubG9jID0gbmV3IFNvdXJjZUxvY2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikge1xuICAgICAgICBpZiAoZXh0cmEucmFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMucmFuZ2UgPSBbc3RhcnRUb2tlbi5zdGFydCwgMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV4dHJhLmxvYykge1xuICAgICAgICAgICAgdGhpcy5sb2MgPSBuZXcgV3JhcHBpbmdTb3VyY2VMb2NhdGlvbihzdGFydFRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIFdyYXBwaW5nTm9kZS5wcm90b3R5cGUgPSBOb2RlLnByb3RvdHlwZSA9IHtcblxuICAgICAgICBwcm9jZXNzQ29tbWVudDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGxhc3RDaGlsZCxcbiAgICAgICAgICAgICAgICBsZWFkaW5nQ29tbWVudHMsXG4gICAgICAgICAgICAgICAgdHJhaWxpbmdDb21tZW50cyxcbiAgICAgICAgICAgICAgICBib3R0b21SaWdodCA9IGV4dHJhLmJvdHRvbVJpZ2h0U3RhY2ssXG4gICAgICAgICAgICAgICAgaSxcbiAgICAgICAgICAgICAgICBjb21tZW50LFxuICAgICAgICAgICAgICAgIGxhc3QgPSBib3R0b21SaWdodFtib3R0b21SaWdodC5sZW5ndGggLSAxXTtcblxuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gU3ludGF4LlByb2dyYW0pIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5ib2R5Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGV4dHJhLnRyYWlsaW5nQ29tbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRyYWlsaW5nQ29tbWVudHMgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGkgPSBleHRyYS50cmFpbGluZ0NvbW1lbnRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgPSBleHRyYS50cmFpbGluZ0NvbW1lbnRzW2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29tbWVudC5yYW5nZVswXSA+PSB0aGlzLnJhbmdlWzFdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFpbGluZ0NvbW1lbnRzLnVuc2hpZnQoY29tbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBleHRyYS50cmFpbGluZ0NvbW1lbnRzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBleHRyYS50cmFpbGluZ0NvbW1lbnRzID0gW107XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChsYXN0ICYmIGxhc3QudHJhaWxpbmdDb21tZW50cyAmJiBsYXN0LnRyYWlsaW5nQ29tbWVudHNbMF0ucmFuZ2VbMF0gPj0gdGhpcy5yYW5nZVsxXSkge1xuICAgICAgICAgICAgICAgICAgICB0cmFpbGluZ0NvbW1lbnRzID0gbGFzdC50cmFpbGluZ0NvbW1lbnRzO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgbGFzdC50cmFpbGluZ0NvbW1lbnRzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRWF0aW5nIHRoZSBzdGFjay5cbiAgICAgICAgICAgIGlmIChsYXN0KSB7XG4gICAgICAgICAgICAgICAgd2hpbGUgKGxhc3QgJiYgbGFzdC5yYW5nZVswXSA+PSB0aGlzLnJhbmdlWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RDaGlsZCA9IGxhc3Q7XG4gICAgICAgICAgICAgICAgICAgIGxhc3QgPSBib3R0b21SaWdodC5wb3AoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChsYXN0Q2hpbGQpIHtcbiAgICAgICAgICAgICAgICBpZiAobGFzdENoaWxkLmxlYWRpbmdDb21tZW50cyAmJiBsYXN0Q2hpbGQubGVhZGluZ0NvbW1lbnRzW2xhc3RDaGlsZC5sZWFkaW5nQ29tbWVudHMubGVuZ3RoIC0gMV0ucmFuZ2VbMV0gPD0gdGhpcy5yYW5nZVswXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxlYWRpbmdDb21tZW50cyA9IGxhc3RDaGlsZC5sZWFkaW5nQ29tbWVudHM7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RDaGlsZC5sZWFkaW5nQ29tbWVudHMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChleHRyYS5sZWFkaW5nQ29tbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGxlYWRpbmdDb21tZW50cyA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAoaSA9IGV4dHJhLmxlYWRpbmdDb21tZW50cy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICAgICAgICAgICAgICBjb21tZW50ID0gZXh0cmEubGVhZGluZ0NvbW1lbnRzW2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29tbWVudC5yYW5nZVsxXSA8PSB0aGlzLnJhbmdlWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWFkaW5nQ29tbWVudHMudW5zaGlmdChjb21tZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhLmxlYWRpbmdDb21tZW50cy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgaWYgKGxlYWRpbmdDb21tZW50cyAmJiBsZWFkaW5nQ29tbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGVhZGluZ0NvbW1lbnRzID0gbGVhZGluZ0NvbW1lbnRzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRyYWlsaW5nQ29tbWVudHMgJiYgdHJhaWxpbmdDb21tZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFpbGluZ0NvbW1lbnRzID0gdHJhaWxpbmdDb21tZW50cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYm90dG9tUmlnaHQucHVzaCh0aGlzKTtcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2g6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChleHRyYS5yYW5nZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmFuZ2VbMV0gPSBsYXN0SW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXh0cmEubG9jKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2MuZW5kID0ge1xuICAgICAgICAgICAgICAgICAgICBsaW5lOiBsYXN0TGluZU51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uOiBsYXN0SW5kZXggLSBsYXN0TGluZVN0YXJ0XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAoZXh0cmEuc291cmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9jLnNvdXJjZSA9IGV4dHJhLnNvdXJjZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChleHRyYS5hdHRhY2hDb21tZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzQ29tbWVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEFycmF5RXhwcmVzc2lvbjogZnVuY3Rpb24gKGVsZW1lbnRzKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQXJyYXlFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50cyA9IGVsZW1lbnRzO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEFycmF5UGF0dGVybjogZnVuY3Rpb24gKGVsZW1lbnRzKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQXJyYXlQYXR0ZXJuO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50cyA9IGVsZW1lbnRzO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEFycm93RnVuY3Rpb25FeHByZXNzaW9uOiBmdW5jdGlvbiAocGFyYW1zLCBkZWZhdWx0cywgYm9keSwgZXhwcmVzc2lvbikge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkFycm93RnVuY3Rpb25FeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5pZCA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdHMgPSBkZWZhdWx0cztcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRvciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uID0gZXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hBc3NpZ25tZW50RXhwcmVzc2lvbjogZnVuY3Rpb24gKG9wZXJhdG9yLCBsZWZ0LCByaWdodCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkFzc2lnbm1lbnRFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvciA9IG9wZXJhdG9yO1xuICAgICAgICAgICAgdGhpcy5sZWZ0ID0gbGVmdDtcbiAgICAgICAgICAgIHRoaXMucmlnaHQgPSByaWdodDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hBc3NpZ25tZW50UGF0dGVybjogZnVuY3Rpb24gKGxlZnQsIHJpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQXNzaWdubWVudFBhdHRlcm47XG4gICAgICAgICAgICB0aGlzLmxlZnQgPSBsZWZ0O1xuICAgICAgICAgICAgdGhpcy5yaWdodCA9IHJpZ2h0O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEJpbmFyeUV4cHJlc3Npb246IGZ1bmN0aW9uIChvcGVyYXRvciwgbGVmdCwgcmlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IChvcGVyYXRvciA9PT0gJ3x8JyB8fCBvcGVyYXRvciA9PT0gJyYmJykgPyBTeW50YXguTG9naWNhbEV4cHJlc3Npb24gOiBTeW50YXguQmluYXJ5RXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3IgPSBvcGVyYXRvcjtcbiAgICAgICAgICAgIHRoaXMubGVmdCA9IGxlZnQ7XG4gICAgICAgICAgICB0aGlzLnJpZ2h0ID0gcmlnaHQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoQmxvY2tTdGF0ZW1lbnQ6IGZ1bmN0aW9uIChib2R5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQmxvY2tTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmJvZHkgPSBib2R5O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEJyZWFrU3RhdGVtZW50OiBmdW5jdGlvbiAobGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5CcmVha1N0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMubGFiZWwgPSBsYWJlbDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hDYWxsRXhwcmVzc2lvbjogZnVuY3Rpb24gKGNhbGxlZSwgYXJncykge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkNhbGxFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5jYWxsZWUgPSBjYWxsZWU7XG4gICAgICAgICAgICB0aGlzLmFyZ3VtZW50cyA9IGFyZ3M7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoQ2F0Y2hDbGF1c2U6IGZ1bmN0aW9uIChwYXJhbSwgYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkNhdGNoQ2xhdXNlO1xuICAgICAgICAgICAgdGhpcy5wYXJhbSA9IHBhcmFtO1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hDbGFzc0JvZHk6IGZ1bmN0aW9uIChib2R5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQ2xhc3NCb2R5O1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hDbGFzc0RlY2xhcmF0aW9uOiBmdW5jdGlvbiAoaWQsIHN1cGVyQ2xhc3MsIGJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5DbGFzc0RlY2xhcmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgICAgICAgdGhpcy5zdXBlckNsYXNzID0gc3VwZXJDbGFzcztcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoQ2xhc3NFeHByZXNzaW9uOiBmdW5jdGlvbiAoaWQsIHN1cGVyQ2xhc3MsIGJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5DbGFzc0V4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgICAgICB0aGlzLnN1cGVyQ2xhc3MgPSBzdXBlckNsYXNzO1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hDb25kaXRpb25hbEV4cHJlc3Npb246IGZ1bmN0aW9uICh0ZXN0LCBjb25zZXF1ZW50LCBhbHRlcm5hdGUpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5Db25kaXRpb25hbEV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLnRlc3QgPSB0ZXN0O1xuICAgICAgICAgICAgdGhpcy5jb25zZXF1ZW50ID0gY29uc2VxdWVudDtcbiAgICAgICAgICAgIHRoaXMuYWx0ZXJuYXRlID0gYWx0ZXJuYXRlO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaENvbnRpbnVlU3RhdGVtZW50OiBmdW5jdGlvbiAobGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5Db250aW51ZVN0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMubGFiZWwgPSBsYWJlbDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hEZWJ1Z2dlclN0YXRlbWVudDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkRlYnVnZ2VyU3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaERvV2hpbGVTdGF0ZW1lbnQ6IGZ1bmN0aW9uIChib2R5LCB0ZXN0KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRG9XaGlsZVN0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLnRlc3QgPSB0ZXN0O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEVtcHR5U3RhdGVtZW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRW1wdHlTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoRXhwcmVzc2lvblN0YXRlbWVudDogZnVuY3Rpb24gKGV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5FeHByZXNzaW9uU3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uID0gZXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hGb3JTdGF0ZW1lbnQ6IGZ1bmN0aW9uIChpbml0LCB0ZXN0LCB1cGRhdGUsIGJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5Gb3JTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmluaXQgPSBpbml0O1xuICAgICAgICAgICAgdGhpcy50ZXN0ID0gdGVzdDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlID0gdXBkYXRlO1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hGb3JJblN0YXRlbWVudDogZnVuY3Rpb24gKGxlZnQsIHJpZ2h0LCBib2R5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRm9ySW5TdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmxlZnQgPSBsZWZ0O1xuICAgICAgICAgICAgdGhpcy5yaWdodCA9IHJpZ2h0O1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZWFjaCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEZ1bmN0aW9uRGVjbGFyYXRpb246IGZ1bmN0aW9uIChpZCwgcGFyYW1zLCBkZWZhdWx0cywgYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkZ1bmN0aW9uRGVjbGFyYXRpb247XG4gICAgICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgICAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdHMgPSBkZWZhdWx0cztcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRvciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoRnVuY3Rpb25FeHByZXNzaW9uOiBmdW5jdGlvbiAoaWQsIHBhcmFtcywgZGVmYXVsdHMsIGJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5GdW5jdGlvbkV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgICAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdHMgPSBkZWZhdWx0cztcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRvciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoSWRlbnRpZmllcjogZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5JZGVudGlmaWVyO1xuICAgICAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hJZlN0YXRlbWVudDogZnVuY3Rpb24gKHRlc3QsIGNvbnNlcXVlbnQsIGFsdGVybmF0ZSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LklmU3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy50ZXN0ID0gdGVzdDtcbiAgICAgICAgICAgIHRoaXMuY29uc2VxdWVudCA9IGNvbnNlcXVlbnQ7XG4gICAgICAgICAgICB0aGlzLmFsdGVybmF0ZSA9IGFsdGVybmF0ZTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hMYWJlbGVkU3RhdGVtZW50OiBmdW5jdGlvbiAobGFiZWwsIGJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5MYWJlbGVkU3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy5sYWJlbCA9IGxhYmVsO1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hMaXRlcmFsOiBmdW5jdGlvbiAodG9rZW4pIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5MaXRlcmFsO1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRva2VuLnZhbHVlO1xuICAgICAgICAgICAgdGhpcy5yYXcgPSBzb3VyY2Uuc2xpY2UodG9rZW4uc3RhcnQsIHRva2VuLmVuZCk7XG4gICAgICAgICAgICBpZiAodG9rZW4ucmVnZXgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZ2V4ID0gdG9rZW4ucmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoTWVtYmVyRXhwcmVzc2lvbjogZnVuY3Rpb24gKGFjY2Vzc29yLCBvYmplY3QsIHByb3BlcnR5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguTWVtYmVyRXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMuY29tcHV0ZWQgPSBhY2Nlc3NvciA9PT0gJ1snO1xuICAgICAgICAgICAgdGhpcy5vYmplY3QgPSBvYmplY3Q7XG4gICAgICAgICAgICB0aGlzLnByb3BlcnR5ID0gcHJvcGVydHk7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoTmV3RXhwcmVzc2lvbjogZnVuY3Rpb24gKGNhbGxlZSwgYXJncykge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4Lk5ld0V4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLmNhbGxlZSA9IGNhbGxlZTtcbiAgICAgICAgICAgIHRoaXMuYXJndW1lbnRzID0gYXJncztcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hPYmplY3RFeHByZXNzaW9uOiBmdW5jdGlvbiAocHJvcGVydGllcykge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4Lk9iamVjdEV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaE9iamVjdFBhdHRlcm46IGZ1bmN0aW9uIChwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguT2JqZWN0UGF0dGVybjtcbiAgICAgICAgICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoUG9zdGZpeEV4cHJlc3Npb246IGZ1bmN0aW9uIChvcGVyYXRvciwgYXJndW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5VcGRhdGVFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvciA9IG9wZXJhdG9yO1xuICAgICAgICAgICAgdGhpcy5hcmd1bWVudCA9IGFyZ3VtZW50O1xuICAgICAgICAgICAgdGhpcy5wcmVmaXggPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hQcm9ncmFtOiBmdW5jdGlvbiAoYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlByb2dyYW07XG4gICAgICAgICAgICB0aGlzLmJvZHkgPSBib2R5O1xuICAgICAgICAgICAgaWYgKHNvdXJjZVR5cGUgPT09ICdtb2R1bGUnKSB7XG4gICAgICAgICAgICAgICAgLy8gdmVyeSByZXN0cmljdGl2ZSBmb3Igbm93XG4gICAgICAgICAgICAgICAgdGhpcy5zb3VyY2VUeXBlID0gc291cmNlVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hQcm9wZXJ0eTogZnVuY3Rpb24gKGtpbmQsIGtleSwgY29tcHV0ZWQsIHZhbHVlLCBtZXRob2QsIHNob3J0aGFuZCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlByb3BlcnR5O1xuICAgICAgICAgICAgdGhpcy5rZXkgPSBrZXk7XG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkID0gY29tcHV0ZWQ7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmtpbmQgPSBraW5kO1xuICAgICAgICAgICAgdGhpcy5tZXRob2QgPSBtZXRob2Q7XG4gICAgICAgICAgICB0aGlzLnNob3J0aGFuZCA9IHNob3J0aGFuZDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hSZXN0RWxlbWVudDogZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguUmVzdEVsZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmFyZ3VtZW50ID0gYXJndW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoUmV0dXJuU3RhdGVtZW50OiBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5SZXR1cm5TdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmFyZ3VtZW50ID0gYXJndW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoU2VxdWVuY2VFeHByZXNzaW9uOiBmdW5jdGlvbiAoZXhwcmVzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5TZXF1ZW5jZUV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25zID0gZXhwcmVzc2lvbnM7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoU3ByZWFkRWxlbWVudDogZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguU3ByZWFkRWxlbWVudDtcbiAgICAgICAgICAgIHRoaXMuYXJndW1lbnQgPSBhcmd1bWVudDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hTd2l0Y2hDYXNlOiBmdW5jdGlvbiAodGVzdCwgY29uc2VxdWVudCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlN3aXRjaENhc2U7XG4gICAgICAgICAgICB0aGlzLnRlc3QgPSB0ZXN0O1xuICAgICAgICAgICAgdGhpcy5jb25zZXF1ZW50ID0gY29uc2VxdWVudDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hTdXBlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlN1cGVyO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFN3aXRjaFN0YXRlbWVudDogZnVuY3Rpb24gKGRpc2NyaW1pbmFudCwgY2FzZXMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5Td2l0Y2hTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmRpc2NyaW1pbmFudCA9IGRpc2NyaW1pbmFudDtcbiAgICAgICAgICAgIHRoaXMuY2FzZXMgPSBjYXNlcztcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb246IGZ1bmN0aW9uICh0YWcsIHF1YXNpKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy50YWcgPSB0YWc7XG4gICAgICAgICAgICB0aGlzLnF1YXNpID0gcXVhc2k7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoVGVtcGxhdGVFbGVtZW50OiBmdW5jdGlvbiAodmFsdWUsIHRhaWwpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5UZW1wbGF0ZUVsZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLnRhaWwgPSB0YWlsO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFRlbXBsYXRlTGl0ZXJhbDogZnVuY3Rpb24gKHF1YXNpcywgZXhwcmVzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5UZW1wbGF0ZUxpdGVyYWw7XG4gICAgICAgICAgICB0aGlzLnF1YXNpcyA9IHF1YXNpcztcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnMgPSBleHByZXNzaW9ucztcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hUaGlzRXhwcmVzc2lvbjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlRoaXNFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFRocm93U3RhdGVtZW50OiBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5UaHJvd1N0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMuYXJndW1lbnQgPSBhcmd1bWVudDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hUcnlTdGF0ZW1lbnQ6IGZ1bmN0aW9uIChibG9jaywgaGFuZGxlciwgZmluYWxpemVyKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguVHJ5U3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy5ibG9jayA9IGJsb2NrO1xuICAgICAgICAgICAgdGhpcy5ndWFyZGVkSGFuZGxlcnMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlcnMgPSBoYW5kbGVyID8gWyBoYW5kbGVyIF0gOiBbXTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICAgICAgICB0aGlzLmZpbmFsaXplciA9IGZpbmFsaXplcjtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hVbmFyeUV4cHJlc3Npb246IGZ1bmN0aW9uIChvcGVyYXRvciwgYXJndW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IChvcGVyYXRvciA9PT0gJysrJyB8fCBvcGVyYXRvciA9PT0gJy0tJykgPyBTeW50YXguVXBkYXRlRXhwcmVzc2lvbiA6IFN5bnRheC5VbmFyeUV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yID0gb3BlcmF0b3I7XG4gICAgICAgICAgICB0aGlzLmFyZ3VtZW50ID0gYXJndW1lbnQ7XG4gICAgICAgICAgICB0aGlzLnByZWZpeCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoVmFyaWFibGVEZWNsYXJhdGlvbjogZnVuY3Rpb24gKGRlY2xhcmF0aW9ucykge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlZhcmlhYmxlRGVjbGFyYXRpb247XG4gICAgICAgICAgICB0aGlzLmRlY2xhcmF0aW9ucyA9IGRlY2xhcmF0aW9ucztcbiAgICAgICAgICAgIHRoaXMua2luZCA9ICd2YXInO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaExleGljYWxEZWNsYXJhdGlvbjogZnVuY3Rpb24gKGRlY2xhcmF0aW9ucywga2luZCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlZhcmlhYmxlRGVjbGFyYXRpb247XG4gICAgICAgICAgICB0aGlzLmRlY2xhcmF0aW9ucyA9IGRlY2xhcmF0aW9ucztcbiAgICAgICAgICAgIHRoaXMua2luZCA9IGtpbmQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoVmFyaWFibGVEZWNsYXJhdG9yOiBmdW5jdGlvbiAoaWQsIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5WYXJpYWJsZURlY2xhcmF0b3I7XG4gICAgICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgICAgICB0aGlzLmluaXQgPSBpbml0O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFdoaWxlU3RhdGVtZW50OiBmdW5jdGlvbiAodGVzdCwgYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LldoaWxlU3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy50ZXN0ID0gdGVzdDtcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoV2l0aFN0YXRlbWVudDogZnVuY3Rpb24gKG9iamVjdCwgYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LldpdGhTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLm9iamVjdCA9IG9iamVjdDtcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoRXhwb3J0U3BlY2lmaWVyOiBmdW5jdGlvbiAobG9jYWwsIGV4cG9ydGVkKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRXhwb3J0U3BlY2lmaWVyO1xuICAgICAgICAgICAgdGhpcy5leHBvcnRlZCA9IGV4cG9ydGVkIHx8IGxvY2FsO1xuICAgICAgICAgICAgdGhpcy5sb2NhbCA9IGxvY2FsO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEltcG9ydERlZmF1bHRTcGVjaWZpZXI6IGZ1bmN0aW9uIChsb2NhbCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkltcG9ydERlZmF1bHRTcGVjaWZpZXI7XG4gICAgICAgICAgICB0aGlzLmxvY2FsID0gbG9jYWw7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyOiBmdW5jdGlvbiAobG9jYWwpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5JbXBvcnROYW1lc3BhY2VTcGVjaWZpZXI7XG4gICAgICAgICAgICB0aGlzLmxvY2FsID0gbG9jYWw7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoRXhwb3J0TmFtZWREZWNsYXJhdGlvbjogZnVuY3Rpb24gKGRlY2xhcmF0aW9uLCBzcGVjaWZpZXJzLCBzcmMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5FeHBvcnROYW1lZERlY2xhcmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5kZWNsYXJhdGlvbiA9IGRlY2xhcmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5zcGVjaWZpZXJzID0gc3BlY2lmaWVycztcbiAgICAgICAgICAgIHRoaXMuc291cmNlID0gc3JjO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEV4cG9ydERlZmF1bHREZWNsYXJhdGlvbjogZnVuY3Rpb24gKGRlY2xhcmF0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5kZWNsYXJhdGlvbiA9IGRlY2xhcmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEV4cG9ydEFsbERlY2xhcmF0aW9uOiBmdW5jdGlvbiAoc3JjKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRXhwb3J0QWxsRGVjbGFyYXRpb247XG4gICAgICAgICAgICB0aGlzLnNvdXJjZSA9IHNyYztcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hJbXBvcnRTcGVjaWZpZXI6IGZ1bmN0aW9uIChsb2NhbCwgaW1wb3J0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5JbXBvcnRTcGVjaWZpZXI7XG4gICAgICAgICAgICB0aGlzLmxvY2FsID0gbG9jYWwgfHwgaW1wb3J0ZWQ7XG4gICAgICAgICAgICB0aGlzLmltcG9ydGVkID0gaW1wb3J0ZWQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoSW1wb3J0RGVjbGFyYXRpb246IGZ1bmN0aW9uIChzcGVjaWZpZXJzLCBzcmMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5JbXBvcnREZWNsYXJhdGlvbjtcbiAgICAgICAgICAgIHRoaXMuc3BlY2lmaWVycyA9IHNwZWNpZmllcnM7XG4gICAgICAgICAgICB0aGlzLnNvdXJjZSA9IHNyYztcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgIH07XG5cblxuICAgIGZ1bmN0aW9uIHJlY29yZEVycm9yKGVycm9yKSB7XG4gICAgICAgIHZhciBlLCBleGlzdGluZztcblxuICAgICAgICBmb3IgKGUgPSAwOyBlIDwgZXh0cmEuZXJyb3JzLmxlbmd0aDsgZSsrKSB7XG4gICAgICAgICAgICBleGlzdGluZyA9IGV4dHJhLmVycm9yc1tlXTtcbiAgICAgICAgICAgIC8vIFByZXZlbnQgZHVwbGljYXRlZCBlcnJvci5cbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICBpZiAoZXhpc3RpbmcuaW5kZXggPT09IGVycm9yLmluZGV4ICYmIGV4aXN0aW5nLm1lc3NhZ2UgPT09IGVycm9yLm1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBleHRyYS5lcnJvcnMucHVzaChlcnJvcik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlRXJyb3IobGluZSwgcG9zLCBkZXNjcmlwdGlvbikge1xuICAgICAgICB2YXIgZXJyb3IgPSBuZXcgRXJyb3IoJ0xpbmUgJyArIGxpbmUgKyAnOiAnICsgZGVzY3JpcHRpb24pO1xuICAgICAgICBlcnJvci5pbmRleCA9IHBvcztcbiAgICAgICAgZXJyb3IubGluZU51bWJlciA9IGxpbmU7XG4gICAgICAgIGVycm9yLmNvbHVtbiA9IHBvcyAtIChzY2FubmluZyA/IGxpbmVTdGFydCA6IGxhc3RMaW5lU3RhcnQpICsgMTtcbiAgICAgICAgZXJyb3IuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8vIFRocm93IGFuIGV4Y2VwdGlvblxuXG4gICAgZnVuY3Rpb24gdGhyb3dFcnJvcihtZXNzYWdlRm9ybWF0KSB7XG4gICAgICAgIHZhciBhcmdzLCBtc2c7XG5cbiAgICAgICAgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICAgIG1zZyA9IG1lc3NhZ2VGb3JtYXQucmVwbGFjZSgvJShcXGQpL2csXG4gICAgICAgICAgICBmdW5jdGlvbiAod2hvbGUsIGlkeCkge1xuICAgICAgICAgICAgICAgIGFzc2VydChpZHggPCBhcmdzLmxlbmd0aCwgJ01lc3NhZ2UgcmVmZXJlbmNlIG11c3QgYmUgaW4gcmFuZ2UnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXJnc1tpZHhdO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIHRocm93IGNyZWF0ZUVycm9yKGxhc3RMaW5lTnVtYmVyLCBsYXN0SW5kZXgsIG1zZyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9sZXJhdGVFcnJvcihtZXNzYWdlRm9ybWF0KSB7XG4gICAgICAgIHZhciBhcmdzLCBtc2csIGVycm9yO1xuXG4gICAgICAgIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICBtc2cgPSBtZXNzYWdlRm9ybWF0LnJlcGxhY2UoLyUoXFxkKS9nLFxuICAgICAgICAgICAgZnVuY3Rpb24gKHdob2xlLCBpZHgpIHtcbiAgICAgICAgICAgICAgICBhc3NlcnQoaWR4IDwgYXJncy5sZW5ndGgsICdNZXNzYWdlIHJlZmVyZW5jZSBtdXN0IGJlIGluIHJhbmdlJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFyZ3NbaWR4XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBlcnJvciA9IGNyZWF0ZUVycm9yKGxpbmVOdW1iZXIsIGxhc3RJbmRleCwgbXNnKTtcbiAgICAgICAgaWYgKGV4dHJhLmVycm9ycykge1xuICAgICAgICAgICAgcmVjb3JkRXJyb3IoZXJyb3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaHJvdyBhbiBleGNlcHRpb24gYmVjYXVzZSBvZiB0aGUgdG9rZW4uXG5cbiAgICBmdW5jdGlvbiB1bmV4cGVjdGVkVG9rZW5FcnJvcih0b2tlbiwgbWVzc2FnZSkge1xuICAgICAgICB2YXIgdmFsdWUsIG1zZyA9IG1lc3NhZ2UgfHwgTWVzc2FnZXMuVW5leHBlY3RlZFRva2VuO1xuXG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgICAgaWYgKCFtZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgbXNnID0gKHRva2VuLnR5cGUgPT09IFRva2VuLkVPRikgPyBNZXNzYWdlcy5VbmV4cGVjdGVkRU9TIDpcbiAgICAgICAgICAgICAgICAgICAgKHRva2VuLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIpID8gTWVzc2FnZXMuVW5leHBlY3RlZElkZW50aWZpZXIgOlxuICAgICAgICAgICAgICAgICAgICAodG9rZW4udHlwZSA9PT0gVG9rZW4uTnVtZXJpY0xpdGVyYWwpID8gTWVzc2FnZXMuVW5leHBlY3RlZE51bWJlciA6XG4gICAgICAgICAgICAgICAgICAgICh0b2tlbi50eXBlID09PSBUb2tlbi5TdHJpbmdMaXRlcmFsKSA/IE1lc3NhZ2VzLlVuZXhwZWN0ZWRTdHJpbmcgOlxuICAgICAgICAgICAgICAgICAgICAodG9rZW4udHlwZSA9PT0gVG9rZW4uVGVtcGxhdGUpID8gTWVzc2FnZXMuVW5leHBlY3RlZFRlbXBsYXRlIDpcbiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZXMuVW5leHBlY3RlZFRva2VuO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuLktleXdvcmQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzRnV0dXJlUmVzZXJ2ZWRXb3JkKHRva2VuLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gTWVzc2FnZXMuVW5leHBlY3RlZFJlc2VydmVkO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmljdCAmJiBpc1N0cmljdE1vZGVSZXNlcnZlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBNZXNzYWdlcy5TdHJpY3RSZXNlcnZlZFdvcmQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhbHVlID0gKHRva2VuLnR5cGUgPT09IFRva2VuLlRlbXBsYXRlKSA/IHRva2VuLnZhbHVlLnJhdyA6IHRva2VuLnZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgPSAnSUxMRUdBTCc7XG4gICAgICAgIH1cblxuICAgICAgICBtc2cgPSBtc2cucmVwbGFjZSgnJTAnLCB2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuICh0b2tlbiAmJiB0eXBlb2YgdG9rZW4ubGluZU51bWJlciA9PT0gJ251bWJlcicpID9cbiAgICAgICAgICAgIGNyZWF0ZUVycm9yKHRva2VuLmxpbmVOdW1iZXIsIHRva2VuLnN0YXJ0LCBtc2cpIDpcbiAgICAgICAgICAgIGNyZWF0ZUVycm9yKHNjYW5uaW5nID8gbGluZU51bWJlciA6IGxhc3RMaW5lTnVtYmVyLCBzY2FubmluZyA/IGluZGV4IDogbGFzdEluZGV4LCBtc2cpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRocm93VW5leHBlY3RlZFRva2VuKHRva2VuLCBtZXNzYWdlKSB7XG4gICAgICAgIHRocm93IHVuZXhwZWN0ZWRUb2tlbkVycm9yKHRva2VuLCBtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbih0b2tlbiwgbWVzc2FnZSkge1xuICAgICAgICB2YXIgZXJyb3IgPSB1bmV4cGVjdGVkVG9rZW5FcnJvcih0b2tlbiwgbWVzc2FnZSk7XG4gICAgICAgIGlmIChleHRyYS5lcnJvcnMpIHtcbiAgICAgICAgICAgIHJlY29yZEVycm9yKGVycm9yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhwZWN0IHRoZSBuZXh0IHRva2VuIHRvIG1hdGNoIHRoZSBzcGVjaWZpZWQgcHVuY3R1YXRvci5cbiAgICAvLyBJZiBub3QsIGFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93bi5cblxuICAgIGZ1bmN0aW9uIGV4cGVjdCh2YWx1ZSkge1xuICAgICAgICB2YXIgdG9rZW4gPSBsZXgoKTtcbiAgICAgICAgaWYgKHRva2VuLnR5cGUgIT09IFRva2VuLlB1bmN0dWF0b3IgfHwgdG9rZW4udmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbih0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAbmFtZSBleHBlY3RDb21tYVNlcGFyYXRvclxuICAgICAqIEBkZXNjcmlwdGlvbiBRdWlldGx5IGV4cGVjdCBhIGNvbW1hIHdoZW4gaW4gdG9sZXJhbnQgbW9kZSwgb3RoZXJ3aXNlIGRlbGVnYXRlc1xuICAgICAqIHRvIDxjb2RlPmV4cGVjdCh2YWx1ZSk8L2NvZGU+XG4gICAgICogQHNpbmNlIDIuMFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGV4cGVjdENvbW1hU2VwYXJhdG9yKCkge1xuICAgICAgICB2YXIgdG9rZW47XG5cbiAgICAgICAgaWYgKGV4dHJhLmVycm9ycykge1xuICAgICAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW4uUHVuY3R1YXRvciAmJiB0b2tlbi52YWx1ZSA9PT0gJywnKSB7XG4gICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuLlB1bmN0dWF0b3IgJiYgdG9rZW4udmFsdWUgPT09ICc7Jykge1xuICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKHRva2VuKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4odG9rZW4sIE1lc3NhZ2VzLlVuZXhwZWN0ZWRUb2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBleHBlY3QoJywnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cGVjdCB0aGUgbmV4dCB0b2tlbiB0byBtYXRjaCB0aGUgc3BlY2lmaWVkIGtleXdvcmQuXG4gICAgLy8gSWYgbm90LCBhbiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24uXG5cbiAgICBmdW5jdGlvbiBleHBlY3RLZXl3b3JkKGtleXdvcmQpIHtcbiAgICAgICAgdmFyIHRva2VuID0gbGV4KCk7XG4gICAgICAgIGlmICh0b2tlbi50eXBlICE9PSBUb2tlbi5LZXl3b3JkIHx8IHRva2VuLnZhbHVlICE9PSBrZXl3b3JkKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbih0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgbmV4dCB0b2tlbiBtYXRjaGVzIHRoZSBzcGVjaWZpZWQgcHVuY3R1YXRvci5cblxuICAgIGZ1bmN0aW9uIG1hdGNoKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBsb29rYWhlYWQudHlwZSA9PT0gVG9rZW4uUHVuY3R1YXRvciAmJiBsb29rYWhlYWQudmFsdWUgPT09IHZhbHVlO1xuICAgIH1cblxuICAgIC8vIFJldHVybiB0cnVlIGlmIHRoZSBuZXh0IHRva2VuIG1hdGNoZXMgdGhlIHNwZWNpZmllZCBrZXl3b3JkXG5cbiAgICBmdW5jdGlvbiBtYXRjaEtleXdvcmQoa2V5d29yZCkge1xuICAgICAgICByZXR1cm4gbG9va2FoZWFkLnR5cGUgPT09IFRva2VuLktleXdvcmQgJiYgbG9va2FoZWFkLnZhbHVlID09PSBrZXl3b3JkO1xuICAgIH1cblxuICAgIC8vIFJldHVybiB0cnVlIGlmIHRoZSBuZXh0IHRva2VuIG1hdGNoZXMgdGhlIHNwZWNpZmllZCBjb250ZXh0dWFsIGtleXdvcmRcbiAgICAvLyAod2hlcmUgYW4gaWRlbnRpZmllciBpcyBzb21ldGltZXMgYSBrZXl3b3JkIGRlcGVuZGluZyBvbiB0aGUgY29udGV4dClcblxuICAgIGZ1bmN0aW9uIG1hdGNoQ29udGV4dHVhbEtleXdvcmQoa2V5d29yZCkge1xuICAgICAgICByZXR1cm4gbG9va2FoZWFkLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIgJiYgbG9va2FoZWFkLnZhbHVlID09PSBrZXl3b3JkO1xuICAgIH1cblxuICAgIC8vIFJldHVybiB0cnVlIGlmIHRoZSBuZXh0IHRva2VuIGlzIGFuIGFzc2lnbm1lbnQgb3BlcmF0b3JcblxuICAgIGZ1bmN0aW9uIG1hdGNoQXNzaWduKCkge1xuICAgICAgICB2YXIgb3A7XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5QdW5jdHVhdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgb3AgPSBsb29rYWhlYWQudmFsdWU7XG4gICAgICAgIHJldHVybiBvcCA9PT0gJz0nIHx8XG4gICAgICAgICAgICBvcCA9PT0gJyo9JyB8fFxuICAgICAgICAgICAgb3AgPT09ICcvPScgfHxcbiAgICAgICAgICAgIG9wID09PSAnJT0nIHx8XG4gICAgICAgICAgICBvcCA9PT0gJys9JyB8fFxuICAgICAgICAgICAgb3AgPT09ICctPScgfHxcbiAgICAgICAgICAgIG9wID09PSAnPDw9JyB8fFxuICAgICAgICAgICAgb3AgPT09ICc+Pj0nIHx8XG4gICAgICAgICAgICBvcCA9PT0gJz4+Pj0nIHx8XG4gICAgICAgICAgICBvcCA9PT0gJyY9JyB8fFxuICAgICAgICAgICAgb3AgPT09ICdePScgfHxcbiAgICAgICAgICAgIG9wID09PSAnfD0nO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbnN1bWVTZW1pY29sb24oKSB7XG4gICAgICAgIC8vIENhdGNoIHRoZSB2ZXJ5IGNvbW1vbiBjYXNlIGZpcnN0OiBpbW1lZGlhdGVseSBhIHNlbWljb2xvbiAoVSswMDNCKS5cbiAgICAgICAgaWYgKHNvdXJjZS5jaGFyQ29kZUF0KHN0YXJ0SW5kZXgpID09PSAweDNCIHx8IG1hdGNoKCc7JykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc0xpbmVUZXJtaW5hdG9yKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGSVhNRShpa2FyaWVuYXRvcik6IHRoaXMgaXMgc2VlbWluZ2x5IGFuIGlzc3VlIGluIHRoZSBwcmV2aW91cyBsb2NhdGlvbiBpbmZvIGNvbnZlbnRpb24uXG4gICAgICAgIGxhc3RJbmRleCA9IHN0YXJ0SW5kZXg7XG4gICAgICAgIGxhc3RMaW5lTnVtYmVyID0gc3RhcnRMaW5lTnVtYmVyO1xuICAgICAgICBsYXN0TGluZVN0YXJ0ID0gc3RhcnRMaW5lU3RhcnQ7XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5FT0YgJiYgIW1hdGNoKCd9JykpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDb3ZlciBncmFtbWFyIHN1cHBvcnQuXG4gICAgLy9cbiAgICAvLyBXaGVuIGFuIGFzc2lnbm1lbnQgZXhwcmVzc2lvbiBwb3NpdGlvbiBzdGFydHMgd2l0aCBhbiBsZWZ0IHBhcmVudGhlc2lzLCB0aGUgZGV0ZXJtaW5hdGlvbiBvZiB0aGUgdHlwZVxuICAgIC8vIG9mIHRoZSBzeW50YXggaXMgdG8gYmUgZGVmZXJyZWQgYXJiaXRyYXJpbHkgbG9uZyB1bnRpbCB0aGUgZW5kIG9mIHRoZSBwYXJlbnRoZXNlcyBwYWlyIChwbHVzIGEgbG9va2FoZWFkKVxuICAgIC8vIG9yIHRoZSBmaXJzdCBjb21tYS4gVGhpcyBzaXR1YXRpb24gYWxzbyBkZWZlcnMgdGhlIGRldGVybWluYXRpb24gb2YgYWxsIHRoZSBleHByZXNzaW9ucyBuZXN0ZWQgaW4gdGhlIHBhaXIuXG4gICAgLy9cbiAgICAvLyBUaGVyZSBhcmUgdGhyZWUgcHJvZHVjdGlvbnMgdGhhdCBjYW4gYmUgcGFyc2VkIGluIGEgcGFyZW50aGVzZXMgcGFpciB0aGF0IG5lZWRzIHRvIGJlIGRldGVybWluZWRcbiAgICAvLyBhZnRlciB0aGUgb3V0ZXJtb3N0IHBhaXIgaXMgY2xvc2VkLiBUaGV5IGFyZTpcbiAgICAvL1xuICAgIC8vICAgMS4gQXNzaWdubWVudEV4cHJlc3Npb25cbiAgICAvLyAgIDIuIEJpbmRpbmdFbGVtZW50c1xuICAgIC8vICAgMy4gQXNzaWdubWVudFRhcmdldHNcbiAgICAvL1xuICAgIC8vIEluIG9yZGVyIHRvIGF2b2lkIGV4cG9uZW50aWFsIGJhY2t0cmFja2luZywgd2UgdXNlIHR3byBmbGFncyB0byBkZW5vdGUgaWYgdGhlIHByb2R1Y3Rpb24gY2FuIGJlXG4gICAgLy8gYmluZGluZyBlbGVtZW50IG9yIGFzc2lnbm1lbnQgdGFyZ2V0LlxuICAgIC8vXG4gICAgLy8gVGhlIHRocmVlIHByb2R1Y3Rpb25zIGhhdmUgdGhlIHJlbGF0aW9uc2hpcDpcbiAgICAvL1xuICAgIC8vICAgQmluZGluZ0VsZW1lbnRzIOKKhiBBc3NpZ25tZW50VGFyZ2V0cyDiioYgQXNzaWdubWVudEV4cHJlc3Npb25cbiAgICAvL1xuICAgIC8vIHdpdGggYSBzaW5nbGUgZXhjZXB0aW9uIHRoYXQgQ292ZXJJbml0aWFsaXplZE5hbWUgd2hlbiB1c2VkIGRpcmVjdGx5IGluIGFuIEV4cHJlc3Npb24sIGdlbmVyYXRlc1xuICAgIC8vIGFuIGVhcmx5IGVycm9yLiBUaGVyZWZvcmUsIHdlIG5lZWQgdGhlIHRoaXJkIHN0YXRlLCBmaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IsIHRvIHRyYWNrIHRoZVxuICAgIC8vIGZpcnN0IHVzYWdlIG9mIENvdmVySW5pdGlhbGl6ZWROYW1lIGFuZCByZXBvcnQgaXQgd2hlbiB3ZSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIHBhcmVudGhlc2VzIHBhaXIuXG4gICAgLy9cbiAgICAvLyBpc29sYXRlQ292ZXJHcmFtbWFyIGZ1bmN0aW9uIHJ1bnMgdGhlIGdpdmVuIHBhcnNlciBmdW5jdGlvbiB3aXRoIGEgbmV3IGNvdmVyIGdyYW1tYXIgY29udGV4dCwgYW5kIGl0IGRvZXMgbm90XG4gICAgLy8gZWZmZWN0IHRoZSBjdXJyZW50IGZsYWdzLiBUaGlzIG1lYW5zIHRoZSBwcm9kdWN0aW9uIHRoZSBwYXJzZXIgcGFyc2VzIGlzIG9ubHkgdXNlZCBhcyBhbiBleHByZXNzaW9uLiBUaGVyZWZvcmVcbiAgICAvLyB0aGUgQ292ZXJJbml0aWFsaXplZE5hbWUgY2hlY2sgaXMgY29uZHVjdGVkLlxuICAgIC8vXG4gICAgLy8gaW5oZXJpdENvdmVyR3JhbW1hciBmdW5jdGlvbiBydW5zIHRoZSBnaXZlbiBwYXJzZSBmdW5jdGlvbiB3aXRoIGEgbmV3IGNvdmVyIGdyYW1tYXIgY29udGV4dCwgYW5kIGl0IHByb3BhZ2F0ZXNcbiAgICAvLyB0aGUgZmxhZ3Mgb3V0c2lkZSBvZiB0aGUgcGFyc2VyLiBUaGlzIG1lYW5zIHRoZSBwcm9kdWN0aW9uIHRoZSBwYXJzZXIgcGFyc2VzIGlzIHVzZWQgYXMgYSBwYXJ0IG9mIGEgcG90ZW50aWFsXG4gICAgLy8gcGF0dGVybi4gVGhlIENvdmVySW5pdGlhbGl6ZWROYW1lIGNoZWNrIGlzIGRlZmVycmVkLlxuICAgIGZ1bmN0aW9uIGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VyKSB7XG4gICAgICAgIHZhciBvbGRJc0JpbmRpbmdFbGVtZW50ID0gaXNCaW5kaW5nRWxlbWVudCxcbiAgICAgICAgICAgIG9sZElzQXNzaWdubWVudFRhcmdldCA9IGlzQXNzaWdubWVudFRhcmdldCxcbiAgICAgICAgICAgIG9sZEZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvciA9IGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvcixcbiAgICAgICAgICAgIHJlc3VsdDtcbiAgICAgICAgaXNCaW5kaW5nRWxlbWVudCA9IHRydWU7XG4gICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IHRydWU7XG4gICAgICAgIGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvciA9IG51bGw7XG4gICAgICAgIHJlc3VsdCA9IHBhcnNlcigpO1xuICAgICAgICBpZiAoZmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihmaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSBvbGRJc0JpbmRpbmdFbGVtZW50O1xuICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBvbGRJc0Fzc2lnbm1lbnRUYXJnZXQ7XG4gICAgICAgIGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvciA9IG9sZEZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvcjtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlcikge1xuICAgICAgICB2YXIgb2xkSXNCaW5kaW5nRWxlbWVudCA9IGlzQmluZGluZ0VsZW1lbnQsXG4gICAgICAgICAgICBvbGRJc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0Fzc2lnbm1lbnRUYXJnZXQsXG4gICAgICAgICAgICBvbGRGaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IgPSBmaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IsXG4gICAgICAgICAgICByZXN1bHQ7XG4gICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSB0cnVlO1xuICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSB0cnVlO1xuICAgICAgICBmaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IgPSBudWxsO1xuICAgICAgICByZXN1bHQgPSBwYXJzZXIoKTtcbiAgICAgICAgaXNCaW5kaW5nRWxlbWVudCA9IGlzQmluZGluZ0VsZW1lbnQgJiYgb2xkSXNCaW5kaW5nRWxlbWVudDtcbiAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNBc3NpZ25tZW50VGFyZ2V0ICYmIG9sZElzQXNzaWdubWVudFRhcmdldDtcbiAgICAgICAgZmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yID0gb2xkRmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yIHx8IGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvcjtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUFycmF5UGF0dGVybigpIHtcbiAgICAgICAgdmFyIG5vZGUgPSBuZXcgTm9kZSgpLCBlbGVtZW50cyA9IFtdLCByZXN0LCByZXN0Tm9kZTtcbiAgICAgICAgZXhwZWN0KCdbJyk7XG5cbiAgICAgICAgd2hpbGUgKCFtYXRjaCgnXScpKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2goJywnKSkge1xuICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2gobnVsbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChtYXRjaCgnLi4uJykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdE5vZGUgPSBuZXcgTm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzdCA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2gocmVzdE5vZGUuZmluaXNoUmVzdEVsZW1lbnQocmVzdCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKHBhcnNlUGF0dGVybldpdGhEZWZhdWx0KCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIW1hdGNoKCddJykpIHtcbiAgICAgICAgICAgICAgICAgICAgZXhwZWN0KCcsJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICBleHBlY3QoJ10nKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hBcnJheVBhdHRlcm4oZWxlbWVudHMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlUHJvcGVydHlQYXR0ZXJuKCkge1xuICAgICAgICB2YXIgbm9kZSA9IG5ldyBOb2RlKCksIGtleSwgY29tcHV0ZWQgPSBtYXRjaCgnWycpLCBpbml0O1xuICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGtleSA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG4gICAgICAgICAgICBpZiAobWF0Y2goJz0nKSkge1xuICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgIGluaXQgPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoUHJvcGVydHkoXG4gICAgICAgICAgICAgICAgICAgICdpbml0Jywga2V5LCBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbmV3IFdyYXBwaW5nTm9kZShrZXkpLmZpbmlzaEFzc2lnbm1lbnRQYXR0ZXJuKGtleSwgaW5pdCksIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFtYXRjaCgnOicpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoUHJvcGVydHkoJ2luaXQnLCBrZXksIGZhbHNlLCBrZXksIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGtleSA9IHBhcnNlT2JqZWN0UHJvcGVydHlLZXkoKTtcbiAgICAgICAgfVxuICAgICAgICBleHBlY3QoJzonKTtcbiAgICAgICAgaW5pdCA9IHBhcnNlUGF0dGVybldpdGhEZWZhdWx0KCk7XG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaFByb3BlcnR5KCdpbml0Jywga2V5LCBjb21wdXRlZCwgaW5pdCwgZmFsc2UsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU9iamVjdFBhdHRlcm4oKSB7XG4gICAgICAgIHZhciBub2RlID0gbmV3IE5vZGUoKSwgcHJvcGVydGllcyA9IFtdO1xuXG4gICAgICAgIGV4cGVjdCgneycpO1xuXG4gICAgICAgIHdoaWxlICghbWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKHBhcnNlUHJvcGVydHlQYXR0ZXJuKCkpO1xuICAgICAgICAgICAgaWYgKCFtYXRjaCgnfScpKSB7XG4gICAgICAgICAgICAgICAgZXhwZWN0KCcsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXgoKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hPYmplY3RQYXR0ZXJuKHByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlUGF0dGVybigpIHtcbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcbiAgICAgICAgfSBlbHNlIGlmIChtYXRjaCgnWycpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VBcnJheVBhdHRlcm4oKTtcbiAgICAgICAgfSBlbHNlIGlmIChtYXRjaCgneycpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VPYmplY3RQYXR0ZXJuKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZVBhdHRlcm5XaXRoRGVmYXVsdCgpIHtcbiAgICAgICAgdmFyIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQsIHBhdHRlcm4sIHJpZ2h0O1xuICAgICAgICBwYXR0ZXJuID0gcGFyc2VQYXR0ZXJuKCk7XG4gICAgICAgIGlmIChtYXRjaCgnPScpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIHJpZ2h0ID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcbiAgICAgICAgICAgIHBhdHRlcm4gPSBuZXcgV3JhcHBpbmdOb2RlKHN0YXJ0VG9rZW4pLmZpbmlzaEFzc2lnbm1lbnRQYXR0ZXJuKHBhdHRlcm4sIHJpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGF0dGVybjtcbiAgICB9XG5cbiAgICAvLyAxMS4xLjQgQXJyYXkgSW5pdGlhbGlzZXJcblxuICAgIGZ1bmN0aW9uIHBhcnNlQXJyYXlJbml0aWFsaXNlcigpIHtcbiAgICAgICAgdmFyIGVsZW1lbnRzID0gW10sIG5vZGUgPSBuZXcgTm9kZSgpLCByZXN0U3ByZWFkO1xuXG4gICAgICAgIGV4cGVjdCgnWycpO1xuXG4gICAgICAgIHdoaWxlICghbWF0Y2goJ10nKSkge1xuICAgICAgICAgICAgaWYgKG1hdGNoKCcsJykpIHtcbiAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKG51bGwpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtYXRjaCgnLi4uJykpIHtcbiAgICAgICAgICAgICAgICByZXN0U3ByZWFkID0gbmV3IE5vZGUoKTtcbiAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICByZXN0U3ByZWFkLmZpbmlzaFNwcmVhZEVsZW1lbnQoaW5oZXJpdENvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIW1hdGNoKCddJykpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBleHBlY3QoJywnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaChyZXN0U3ByZWFkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaChpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pKTtcblxuICAgICAgICAgICAgICAgIGlmICghbWF0Y2goJ10nKSkge1xuICAgICAgICAgICAgICAgICAgICBleHBlY3QoJywnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXgoKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hBcnJheUV4cHJlc3Npb24oZWxlbWVudHMpO1xuICAgIH1cblxuICAgIC8vIDExLjEuNSBPYmplY3QgSW5pdGlhbGlzZXJcblxuICAgIGZ1bmN0aW9uIHBhcnNlUHJvcGVydHlGdW5jdGlvbihub2RlLCBwYXJhbUluZm8pIHtcbiAgICAgICAgdmFyIHByZXZpb3VzU3RyaWN0LCBib2R5O1xuXG4gICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcblxuICAgICAgICBwcmV2aW91c1N0cmljdCA9IHN0cmljdDtcbiAgICAgICAgYm9keSA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VGdW5jdGlvblNvdXJjZUVsZW1lbnRzKTtcblxuICAgICAgICBpZiAoc3RyaWN0ICYmIHBhcmFtSW5mby5maXJzdFJlc3RyaWN0ZWQpIHtcbiAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKHBhcmFtSW5mby5maXJzdFJlc3RyaWN0ZWQsIHBhcmFtSW5mby5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RyaWN0ICYmIHBhcmFtSW5mby5zdHJpY3RlZCkge1xuICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4ocGFyYW1JbmZvLnN0cmljdGVkLCBwYXJhbUluZm8ubWVzc2FnZSk7XG4gICAgICAgIH1cblxuICAgICAgICBzdHJpY3QgPSBwcmV2aW91c1N0cmljdDtcbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRnVuY3Rpb25FeHByZXNzaW9uKG51bGwsIHBhcmFtSW5mby5wYXJhbXMsIHBhcmFtSW5mby5kZWZhdWx0cywgYm9keSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VQcm9wZXJ0eU1ldGhvZEZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcGFyYW1zLCBtZXRob2QsIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIHBhcmFtcyA9IHBhcnNlUGFyYW1zKCk7XG4gICAgICAgIG1ldGhvZCA9IHBhcnNlUHJvcGVydHlGdW5jdGlvbihub2RlLCBwYXJhbXMpO1xuXG4gICAgICAgIHJldHVybiBtZXRob2Q7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VPYmplY3RQcm9wZXJ0eUtleSgpIHtcbiAgICAgICAgdmFyIHRva2VuLCBub2RlID0gbmV3IE5vZGUoKSwgZXhwcjtcblxuICAgICAgICB0b2tlbiA9IGxleCgpO1xuXG4gICAgICAgIC8vIE5vdGU6IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIG9ubHkgZnJvbSBwYXJzZU9iamVjdFByb3BlcnR5KCksIHdoZXJlXG4gICAgICAgIC8vIEVPRiBhbmQgUHVuY3R1YXRvciB0b2tlbnMgYXJlIGFscmVhZHkgZmlsdGVyZWQgb3V0LlxuXG4gICAgICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuICAgICAgICBjYXNlIFRva2VuLlN0cmluZ0xpdGVyYWw6XG4gICAgICAgIGNhc2UgVG9rZW4uTnVtZXJpY0xpdGVyYWw6XG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmIHRva2VuLm9jdGFsKSB7XG4gICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4odG9rZW4sIE1lc3NhZ2VzLlN0cmljdE9jdGFsTGl0ZXJhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hMaXRlcmFsKHRva2VuKTtcbiAgICAgICAgY2FzZSBUb2tlbi5JZGVudGlmaWVyOlxuICAgICAgICBjYXNlIFRva2VuLkJvb2xlYW5MaXRlcmFsOlxuICAgICAgICBjYXNlIFRva2VuLk51bGxMaXRlcmFsOlxuICAgICAgICBjYXNlIFRva2VuLktleXdvcmQ6XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hJZGVudGlmaWVyKHRva2VuLnZhbHVlKTtcbiAgICAgICAgY2FzZSBUb2tlbi5QdW5jdHVhdG9yOlxuICAgICAgICAgICAgaWYgKHRva2VuLnZhbHVlID09PSAnWycpIHtcbiAgICAgICAgICAgICAgICBleHByID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICBleHBlY3QoJ10nKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXhwcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKHRva2VuKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb29rYWhlYWRQcm9wZXJ0eU5hbWUoKSB7XG4gICAgICAgIHN3aXRjaCAobG9va2FoZWFkLnR5cGUpIHtcbiAgICAgICAgY2FzZSBUb2tlbi5JZGVudGlmaWVyOlxuICAgICAgICBjYXNlIFRva2VuLlN0cmluZ0xpdGVyYWw6XG4gICAgICAgIGNhc2UgVG9rZW4uQm9vbGVhbkxpdGVyYWw6XG4gICAgICAgIGNhc2UgVG9rZW4uTnVsbExpdGVyYWw6XG4gICAgICAgIGNhc2UgVG9rZW4uTnVtZXJpY0xpdGVyYWw6XG4gICAgICAgIGNhc2UgVG9rZW4uS2V5d29yZDpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBjYXNlIFRva2VuLlB1bmN0dWF0b3I6XG4gICAgICAgICAgICByZXR1cm4gbG9va2FoZWFkLnZhbHVlID09PSAnWyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgdG8gdHJ5IHRvIHBhcnNlIGEgTWV0aG9kRGVmaW5pdGlvbiBhcyBkZWZpbmVkIGluIDE0LjMuIEJ1dCBpbiB0aGUgY2FzZSBvZiBvYmplY3QgbGl0ZXJhbHMsXG4gICAgLy8gaXQgbWlnaHQgYmUgY2FsbGVkIGF0IGEgcG9zaXRpb24gd2hlcmUgdGhlcmUgaXMgaW4gZmFjdCBhIHNob3J0IGhhbmQgaWRlbnRpZmllciBwYXR0ZXJuIG9yIGEgZGF0YSBwcm9wZXJ0eS5cbiAgICAvLyBUaGlzIGNhbiBvbmx5IGJlIGRldGVybWluZWQgYWZ0ZXIgd2UgY29uc3VtZWQgdXAgdG8gdGhlIGxlZnQgcGFyZW50aGVzZXMuXG4gICAgLy9cbiAgICAvLyBJbiBvcmRlciB0byBhdm9pZCBiYWNrIHRyYWNraW5nLCBpdCByZXR1cm5zIGBudWxsYCBpZiB0aGUgcG9zaXRpb24gaXMgbm90IGEgTWV0aG9kRGVmaW5pdGlvbiBhbmQgdGhlIGNhbGxlclxuICAgIC8vIGlzIHJlc3BvbnNpYmxlIHRvIHZpc2l0IG90aGVyIG9wdGlvbnMuXG4gICAgZnVuY3Rpb24gdHJ5UGFyc2VNZXRob2REZWZpbml0aW9uKHRva2VuLCBrZXksIGNvbXB1dGVkLCBub2RlKSB7XG4gICAgICAgIHZhciB2YWx1ZSwgb3B0aW9ucywgbWV0aG9kTm9kZTtcblxuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW4uSWRlbnRpZmllcikge1xuICAgICAgICAgICAgLy8gY2hlY2sgZm9yIGBnZXRgIGFuZCBgc2V0YDtcblxuICAgICAgICAgICAgaWYgKHRva2VuLnZhbHVlID09PSAnZ2V0JyAmJiBsb29rYWhlYWRQcm9wZXJ0eU5hbWUoKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVkID0gbWF0Y2goJ1snKTtcbiAgICAgICAgICAgICAgICBrZXkgPSBwYXJzZU9iamVjdFByb3BlcnR5S2V5KCk7XG4gICAgICAgICAgICAgICAgbWV0aG9kTm9kZSA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICAgICAgZXhwZWN0KCcoJyk7XG4gICAgICAgICAgICAgICAgZXhwZWN0KCcpJyk7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZVByb3BlcnR5RnVuY3Rpb24obWV0aG9kTm9kZSwge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0czogW10sXG4gICAgICAgICAgICAgICAgICAgIHN0cmljdGVkOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBmaXJzdFJlc3RyaWN0ZWQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG51bGxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hQcm9wZXJ0eSgnZ2V0Jywga2V5LCBjb21wdXRlZCwgdmFsdWUsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRva2VuLnZhbHVlID09PSAnc2V0JyAmJiBsb29rYWhlYWRQcm9wZXJ0eU5hbWUoKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVkID0gbWF0Y2goJ1snKTtcbiAgICAgICAgICAgICAgICBrZXkgPSBwYXJzZU9iamVjdFByb3BlcnR5S2V5KCk7XG4gICAgICAgICAgICAgICAgbWV0aG9kTm9kZSA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICAgICAgZXhwZWN0KCcoJyk7XG5cbiAgICAgICAgICAgICAgICBvcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Q291bnQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RSZXN0cmljdGVkOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBwYXJhbVNldDoge31cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmIChtYXRjaCgnKScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VQYXJhbShvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuZGVmYXVsdENvdW50ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmRlZmF1bHRzID0gW107XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZXhwZWN0KCcpJyk7XG5cbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlUHJvcGVydHlGdW5jdGlvbihtZXRob2ROb2RlLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hQcm9wZXJ0eSgnc2V0Jywga2V5LCBjb21wdXRlZCwgdmFsdWUsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2goJygnKSkge1xuICAgICAgICAgICAgdmFsdWUgPSBwYXJzZVByb3BlcnR5TWV0aG9kRnVuY3Rpb24oKTtcbiAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaFByb3BlcnR5KCdpbml0Jywga2V5LCBjb21wdXRlZCwgdmFsdWUsIHRydWUsIGZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5vdCBhIE1ldGhvZERlZmluaXRpb24uXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNoZWNrUHJvdG8oa2V5LCBjb21wdXRlZCwgaGFzUHJvdG8pIHtcbiAgICAgICAgaWYgKGNvbXB1dGVkID09PSBmYWxzZSAmJiAoa2V5LnR5cGUgPT09IFN5bnRheC5JZGVudGlmaWVyICYmIGtleS5uYW1lID09PSAnX19wcm90b19fJyB8fFxuICAgICAgICAgICAga2V5LnR5cGUgPT09IFN5bnRheC5MaXRlcmFsICYmIGtleS52YWx1ZSA9PT0gJ19fcHJvdG9fXycpKSB7XG4gICAgICAgICAgICBpZiAoaGFzUHJvdG8udmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLkR1cGxpY2F0ZVByb3RvUHJvcGVydHkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBoYXNQcm90by52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU9iamVjdFByb3BlcnR5KGhhc1Byb3RvKSB7XG4gICAgICAgIHZhciB0b2tlbiA9IGxvb2thaGVhZCwgbm9kZSA9IG5ldyBOb2RlKCksIGNvbXB1dGVkLCBrZXksIG1heWJlTWV0aG9kLCB2YWx1ZTtcblxuICAgICAgICBjb21wdXRlZCA9IG1hdGNoKCdbJyk7XG4gICAgICAgIGtleSA9IHBhcnNlT2JqZWN0UHJvcGVydHlLZXkoKTtcbiAgICAgICAgbWF5YmVNZXRob2QgPSB0cnlQYXJzZU1ldGhvZERlZmluaXRpb24odG9rZW4sIGtleSwgY29tcHV0ZWQsIG5vZGUpO1xuXG4gICAgICAgIGlmIChtYXliZU1ldGhvZCkge1xuICAgICAgICAgICAgY2hlY2tQcm90byhtYXliZU1ldGhvZC5rZXksIG1heWJlTWV0aG9kLmNvbXB1dGVkLCBoYXNQcm90byk7XG4gICAgICAgICAgICAvLyBmaW5pc2hlZFxuICAgICAgICAgICAgcmV0dXJuIG1heWJlTWV0aG9kO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW5pdCBwcm9wZXJ0eSBvciBzaG9ydCBoYW5kIHByb3BlcnR5LlxuICAgICAgICBjaGVja1Byb3RvKGtleSwgY29tcHV0ZWQsIGhhc1Byb3RvKTtcblxuICAgICAgICBpZiAobWF0Y2goJzonKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICB2YWx1ZSA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbik7XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hQcm9wZXJ0eSgnaW5pdCcsIGtleSwgY29tcHV0ZWQsIHZhbHVlLCBmYWxzZSwgZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGlmIChtYXRjaCgnPScpKSB7XG4gICAgICAgICAgICAgICAgZmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yID0gbG9va2FoZWFkO1xuICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgIHZhbHVlID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hQcm9wZXJ0eSgnaW5pdCcsIGtleSwgY29tcHV0ZWQsXG4gICAgICAgICAgICAgICAgICAgIG5ldyBXcmFwcGluZ05vZGUodG9rZW4pLmZpbmlzaEFzc2lnbm1lbnRQYXR0ZXJuKGtleSwgdmFsdWUpLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hQcm9wZXJ0eSgnaW5pdCcsIGtleSwgY29tcHV0ZWQsIGtleSwgZmFsc2UsIHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU9iamVjdEluaXRpYWxpc2VyKCkge1xuICAgICAgICB2YXIgcHJvcGVydGllcyA9IFtdLCBoYXNQcm90byA9IHt2YWx1ZTogZmFsc2V9LCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBleHBlY3QoJ3snKTtcblxuICAgICAgICB3aGlsZSAoIW1hdGNoKCd9JykpIHtcbiAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChwYXJzZU9iamVjdFByb3BlcnR5KGhhc1Byb3RvKSk7XG5cbiAgICAgICAgICAgIGlmICghbWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgICAgIGV4cGVjdENvbW1hU2VwYXJhdG9yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBleHBlY3QoJ30nKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hPYmplY3RFeHByZXNzaW9uKHByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlaW50ZXJwcmV0RXhwcmVzc2lvbkFzUGF0dGVybihleHByKSB7XG4gICAgICAgIHZhciBpO1xuICAgICAgICBzd2l0Y2ggKGV4cHIudHlwZSkge1xuICAgICAgICBjYXNlIFN5bnRheC5JZGVudGlmaWVyOlxuICAgICAgICBjYXNlIFN5bnRheC5NZW1iZXJFeHByZXNzaW9uOlxuICAgICAgICBjYXNlIFN5bnRheC5SZXN0RWxlbWVudDpcbiAgICAgICAgY2FzZSBTeW50YXguQXNzaWdubWVudFBhdHRlcm46XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTeW50YXguU3ByZWFkRWxlbWVudDpcbiAgICAgICAgICAgIGV4cHIudHlwZSA9IFN5bnRheC5SZXN0RWxlbWVudDtcbiAgICAgICAgICAgIHJlaW50ZXJwcmV0RXhwcmVzc2lvbkFzUGF0dGVybihleHByLmFyZ3VtZW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFN5bnRheC5BcnJheUV4cHJlc3Npb246XG4gICAgICAgICAgICBleHByLnR5cGUgPSBTeW50YXguQXJyYXlQYXR0ZXJuO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGV4cHIuZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoZXhwci5lbGVtZW50c1tpXSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZWludGVycHJldEV4cHJlc3Npb25Bc1BhdHRlcm4oZXhwci5lbGVtZW50c1tpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU3ludGF4Lk9iamVjdEV4cHJlc3Npb246XG4gICAgICAgICAgICBleHByLnR5cGUgPSBTeW50YXguT2JqZWN0UGF0dGVybjtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBleHByLnByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICByZWludGVycHJldEV4cHJlc3Npb25Bc1BhdHRlcm4oZXhwci5wcm9wZXJ0aWVzW2ldLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFN5bnRheC5Bc3NpZ25tZW50RXhwcmVzc2lvbjpcbiAgICAgICAgICAgIGV4cHIudHlwZSA9IFN5bnRheC5Bc3NpZ25tZW50UGF0dGVybjtcbiAgICAgICAgICAgIHJlaW50ZXJwcmV0RXhwcmVzc2lvbkFzUGF0dGVybihleHByLmxlZnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBBbGxvdyBvdGhlciBub2RlIHR5cGUgZm9yIHRvbGVyYW50IHBhcnNpbmcuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlVGVtcGxhdGVFbGVtZW50KG9wdGlvbikge1xuICAgICAgICB2YXIgbm9kZSwgdG9rZW47XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5UZW1wbGF0ZSB8fCAob3B0aW9uLmhlYWQgJiYgIWxvb2thaGVhZC5oZWFkKSkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUgPSBuZXcgTm9kZSgpO1xuICAgICAgICB0b2tlbiA9IGxleCgpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaFRlbXBsYXRlRWxlbWVudCh7IHJhdzogdG9rZW4udmFsdWUucmF3LCBjb29rZWQ6IHRva2VuLnZhbHVlLmNvb2tlZCB9LCB0b2tlbi50YWlsKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZVRlbXBsYXRlTGl0ZXJhbCgpIHtcbiAgICAgICAgdmFyIHF1YXNpLCBxdWFzaXMsIGV4cHJlc3Npb25zLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBxdWFzaSA9IHBhcnNlVGVtcGxhdGVFbGVtZW50KHsgaGVhZDogdHJ1ZSB9KTtcbiAgICAgICAgcXVhc2lzID0gWyBxdWFzaSBdO1xuICAgICAgICBleHByZXNzaW9ucyA9IFtdO1xuXG4gICAgICAgIHdoaWxlICghcXVhc2kudGFpbCkge1xuICAgICAgICAgICAgZXhwcmVzc2lvbnMucHVzaChwYXJzZUV4cHJlc3Npb24oKSk7XG4gICAgICAgICAgICBxdWFzaSA9IHBhcnNlVGVtcGxhdGVFbGVtZW50KHsgaGVhZDogZmFsc2UgfSk7XG4gICAgICAgICAgICBxdWFzaXMucHVzaChxdWFzaSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hUZW1wbGF0ZUxpdGVyYWwocXVhc2lzLCBleHByZXNzaW9ucyk7XG4gICAgfVxuXG4gICAgLy8gMTEuMS42IFRoZSBHcm91cGluZyBPcGVyYXRvclxuXG4gICAgZnVuY3Rpb24gcGFyc2VHcm91cEV4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciBleHByLCBleHByZXNzaW9ucywgc3RhcnRUb2tlbiwgaTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICBpZiAobWF0Y2goJyknKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICBpZiAoIW1hdGNoKCc9PicpKSB7XG4gICAgICAgICAgICAgICAgZXhwZWN0KCc9PicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0eXBlOiBQbGFjZUhvbGRlcnMuQXJyb3dQYXJhbWV0ZXJQbGFjZUhvbGRlcixcbiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhcnRUb2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgaWYgKG1hdGNoKCcuLi4nKSkge1xuICAgICAgICAgICAgZXhwciA9IHBhcnNlUmVzdEVsZW1lbnQoKTtcbiAgICAgICAgICAgIGV4cGVjdCgnKScpO1xuICAgICAgICAgICAgaWYgKCFtYXRjaCgnPT4nKSkge1xuICAgICAgICAgICAgICAgIGV4cGVjdCgnPT4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogUGxhY2VIb2xkZXJzLkFycm93UGFyYW1ldGVyUGxhY2VIb2xkZXIsXG4gICAgICAgICAgICAgICAgcGFyYW1zOiBbZXhwcl1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpc0JpbmRpbmdFbGVtZW50ID0gdHJ1ZTtcbiAgICAgICAgZXhwciA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbik7XG5cbiAgICAgICAgaWYgKG1hdGNoKCcsJykpIHtcbiAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGZhbHNlO1xuICAgICAgICAgICAgZXhwcmVzc2lvbnMgPSBbZXhwcl07XG5cbiAgICAgICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFtYXRjaCgnLCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXgoKTtcblxuICAgICAgICAgICAgICAgIGlmIChtYXRjaCgnLi4uJykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0JpbmRpbmdFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihsb29rYWhlYWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zLnB1c2gocGFyc2VSZXN0RWxlbWVudCgpKTtcbiAgICAgICAgICAgICAgICAgICAgZXhwZWN0KCcpJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbWF0Y2goJz0+JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdCgnPT4nKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBleHByZXNzaW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRFeHByZXNzaW9uQXNQYXR0ZXJuKGV4cHJlc3Npb25zW2ldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogUGxhY2VIb2xkZXJzLkFycm93UGFyYW1ldGVyUGxhY2VIb2xkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IGV4cHJlc3Npb25zXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbnMucHVzaChpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoU2VxdWVuY2VFeHByZXNzaW9uKGV4cHJlc3Npb25zKTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgZXhwZWN0KCcpJyk7XG5cbiAgICAgICAgaWYgKG1hdGNoKCc9PicpKSB7XG4gICAgICAgICAgICBpZiAoIWlzQmluZGluZ0VsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihsb29rYWhlYWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZXhwci50eXBlID09PSBTeW50YXguU2VxdWVuY2VFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGV4cHIuZXhwcmVzc2lvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRFeHByZXNzaW9uQXNQYXR0ZXJuKGV4cHIuZXhwcmVzc2lvbnNbaV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVpbnRlcnByZXRFeHByZXNzaW9uQXNQYXR0ZXJuKGV4cHIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBleHByID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFBsYWNlSG9sZGVycy5BcnJvd1BhcmFtZXRlclBsYWNlSG9sZGVyLFxuICAgICAgICAgICAgICAgIHBhcmFtczogZXhwci50eXBlID09PSBTeW50YXguU2VxdWVuY2VFeHByZXNzaW9uID8gZXhwci5leHByZXNzaW9ucyA6IFtleHByXVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBleHByO1xuICAgIH1cblxuXG4gICAgLy8gMTEuMSBQcmltYXJ5IEV4cHJlc3Npb25zXG5cbiAgICBmdW5jdGlvbiBwYXJzZVByaW1hcnlFeHByZXNzaW9uKCkge1xuICAgICAgICB2YXIgdHlwZSwgdG9rZW4sIGV4cHIsIG5vZGU7XG5cbiAgICAgICAgaWYgKG1hdGNoKCcoJykpIHtcbiAgICAgICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlR3JvdXBFeHByZXNzaW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtYXRjaCgnWycpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5oZXJpdENvdmVyR3JhbW1hcihwYXJzZUFycmF5SW5pdGlhbGlzZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1hdGNoKCd7JykpIHtcbiAgICAgICAgICAgIHJldHVybiBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlT2JqZWN0SW5pdGlhbGlzZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdHlwZSA9IGxvb2thaGVhZC50eXBlO1xuICAgICAgICBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBpZiAodHlwZSA9PT0gVG9rZW4uSWRlbnRpZmllcikge1xuICAgICAgICAgICAgZXhwciA9IG5vZGUuZmluaXNoSWRlbnRpZmllcihsZXgoKS52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVG9rZW4uU3RyaW5nTGl0ZXJhbCB8fCB0eXBlID09PSBUb2tlbi5OdW1lcmljTGl0ZXJhbCkge1xuICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiBsb29rYWhlYWQub2N0YWwpIHtcbiAgICAgICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbihsb29rYWhlYWQsIE1lc3NhZ2VzLlN0cmljdE9jdGFsTGl0ZXJhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBleHByID0gbm9kZS5maW5pc2hMaXRlcmFsKGxleCgpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBUb2tlbi5LZXl3b3JkKSB7XG4gICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdmdW5jdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlRnVuY3Rpb25FeHByZXNzaW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCd0aGlzJykpIHtcbiAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hUaGlzRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1hdGNoS2V5d29yZCgnY2xhc3MnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUNsYXNzRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obGV4KCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFRva2VuLkJvb2xlYW5MaXRlcmFsKSB7XG4gICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgICAgICB0b2tlbiA9IGxleCgpO1xuICAgICAgICAgICAgdG9rZW4udmFsdWUgPSAodG9rZW4udmFsdWUgPT09ICd0cnVlJyk7XG4gICAgICAgICAgICBleHByID0gbm9kZS5maW5pc2hMaXRlcmFsKHRva2VuKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBUb2tlbi5OdWxsTGl0ZXJhbCkge1xuICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgdG9rZW4gPSBsZXgoKTtcbiAgICAgICAgICAgIHRva2VuLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgIGV4cHIgPSBub2RlLmZpbmlzaExpdGVyYWwodG9rZW4pO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCcvJykgfHwgbWF0Y2goJy89JykpIHtcbiAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIGluZGV4ID0gc3RhcnRJbmRleDtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBleHRyYS50b2tlbnMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgdG9rZW4gPSBjb2xsZWN0UmVnZXgoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdG9rZW4gPSBzY2FuUmVnRXhwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIGV4cHIgPSBub2RlLmZpbmlzaExpdGVyYWwodG9rZW4pO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFRva2VuLlRlbXBsYXRlKSB7XG4gICAgICAgICAgICBleHByID0gcGFyc2VUZW1wbGF0ZUxpdGVyYWwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGxleCgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBleHByO1xuICAgIH1cblxuICAgIC8vIDExLjIgTGVmdC1IYW5kLVNpZGUgRXhwcmVzc2lvbnNcblxuICAgIGZ1bmN0aW9uIHBhcnNlQXJndW1lbnRzKCkge1xuICAgICAgICB2YXIgYXJncyA9IFtdO1xuXG4gICAgICAgIGV4cGVjdCgnKCcpO1xuXG4gICAgICAgIGlmICghbWF0Y2goJyknKSkge1xuICAgICAgICAgICAgd2hpbGUgKHN0YXJ0SW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBhcmdzLnB1c2goaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKSk7XG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoKCcpJykpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGV4cGVjdENvbW1hU2VwYXJhdG9yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBleHBlY3QoJyknKTtcblxuICAgICAgICByZXR1cm4gYXJncztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU5vbkNvbXB1dGVkUHJvcGVydHkoKSB7XG4gICAgICAgIHZhciB0b2tlbiwgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgdG9rZW4gPSBsZXgoKTtcblxuICAgICAgICBpZiAoIWlzSWRlbnRpZmllck5hbWUodG9rZW4pKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbih0b2tlbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hJZGVudGlmaWVyKHRva2VuLnZhbHVlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU5vbkNvbXB1dGVkTWVtYmVyKCkge1xuICAgICAgICBleHBlY3QoJy4nKTtcblxuICAgICAgICByZXR1cm4gcGFyc2VOb25Db21wdXRlZFByb3BlcnR5KCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VDb21wdXRlZE1lbWJlcigpIHtcbiAgICAgICAgdmFyIGV4cHI7XG5cbiAgICAgICAgZXhwZWN0KCdbJyk7XG5cbiAgICAgICAgZXhwciA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VFeHByZXNzaW9uKTtcblxuICAgICAgICBleHBlY3QoJ10nKTtcblxuICAgICAgICByZXR1cm4gZXhwcjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU5ld0V4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciBjYWxsZWUsIGFyZ3MsIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ25ldycpO1xuICAgICAgICBjYWxsZWUgPSBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlTGVmdEhhbmRTaWRlRXhwcmVzc2lvbik7XG4gICAgICAgIGFyZ3MgPSBtYXRjaCgnKCcpID8gcGFyc2VBcmd1bWVudHMoKSA6IFtdO1xuXG4gICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hOZXdFeHByZXNzaW9uKGNhbGxlZSwgYXJncyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VMZWZ0SGFuZFNpZGVFeHByZXNzaW9uQWxsb3dDYWxsKCkge1xuICAgICAgICB2YXIgcXVhc2ksIGV4cHIsIGFyZ3MsIHByb3BlcnR5LCBzdGFydFRva2VuLCBwcmV2aW91c0FsbG93SW4gPSBzdGF0ZS5hbGxvd0luO1xuXG4gICAgICAgIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgIHN0YXRlLmFsbG93SW4gPSB0cnVlO1xuXG4gICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ3N1cGVyJykgJiYgc3RhdGUuaW5GdW5jdGlvbkJvZHkpIHtcbiAgICAgICAgICAgIGV4cHIgPSBuZXcgTm9kZSgpO1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICBleHByID0gZXhwci5maW5pc2hTdXBlcigpO1xuICAgICAgICAgICAgaWYgKCFtYXRjaCgnKCcpICYmICFtYXRjaCgnLicpICYmICFtYXRjaCgnWycpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cHIgPSBpbmhlcml0Q292ZXJHcmFtbWFyKG1hdGNoS2V5d29yZCgnbmV3JykgPyBwYXJzZU5ld0V4cHJlc3Npb24gOiBwYXJzZVByaW1hcnlFeHByZXNzaW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoOzspIHtcbiAgICAgICAgICAgIGlmIChtYXRjaCgnLicpKSB7XG4gICAgICAgICAgICAgICAgaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcHJvcGVydHkgPSBwYXJzZU5vbkNvbXB1dGVkTWVtYmVyKCk7XG4gICAgICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoTWVtYmVyRXhwcmVzc2lvbignLicsIGV4cHIsIHByb3BlcnR5KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWF0Y2goJygnKSkge1xuICAgICAgICAgICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBhcmdzID0gcGFyc2VBcmd1bWVudHMoKTtcbiAgICAgICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hDYWxsRXhwcmVzc2lvbihleHByLCBhcmdzKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWF0Y2goJ1snKSkge1xuICAgICAgICAgICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHByb3BlcnR5ID0gcGFyc2VDb21wdXRlZE1lbWJlcigpO1xuICAgICAgICAgICAgICAgIGV4cHIgPSBuZXcgV3JhcHBpbmdOb2RlKHN0YXJ0VG9rZW4pLmZpbmlzaE1lbWJlckV4cHJlc3Npb24oJ1snLCBleHByLCBwcm9wZXJ0eSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5UZW1wbGF0ZSAmJiBsb29rYWhlYWQuaGVhZCkge1xuICAgICAgICAgICAgICAgIHF1YXNpID0gcGFyc2VUZW1wbGF0ZUxpdGVyYWwoKTtcbiAgICAgICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24oZXhwciwgcXVhc2kpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdGF0ZS5hbGxvd0luID0gcHJldmlvdXNBbGxvd0luO1xuXG4gICAgICAgIHJldHVybiBleHByO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlTGVmdEhhbmRTaWRlRXhwcmVzc2lvbigpIHtcbiAgICAgICAgdmFyIHF1YXNpLCBleHByLCBwcm9wZXJ0eSwgc3RhcnRUb2tlbjtcbiAgICAgICAgYXNzZXJ0KHN0YXRlLmFsbG93SW4sICdjYWxsZWUgb2YgbmV3IGV4cHJlc3Npb24gYWx3YXlzIGFsbG93IGluIGtleXdvcmQuJyk7XG5cbiAgICAgICAgc3RhcnRUb2tlbiA9IGxvb2thaGVhZDtcblxuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdzdXBlcicpICYmIHN0YXRlLmluRnVuY3Rpb25Cb2R5KSB7XG4gICAgICAgICAgICBleHByID0gbmV3IE5vZGUoKTtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgZXhwciA9IGV4cHIuZmluaXNoU3VwZXIoKTtcbiAgICAgICAgICAgIGlmICghbWF0Y2goJ1snKSAmJiAhbWF0Y2goJy4nKSkge1xuICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBleHByID0gaW5oZXJpdENvdmVyR3JhbW1hcihtYXRjaEtleXdvcmQoJ25ldycpID8gcGFyc2VOZXdFeHByZXNzaW9uIDogcGFyc2VQcmltYXJ5RXhwcmVzc2lvbik7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKDs7KSB7XG4gICAgICAgICAgICBpZiAobWF0Y2goJ1snKSkge1xuICAgICAgICAgICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHByb3BlcnR5ID0gcGFyc2VDb21wdXRlZE1lbWJlcigpO1xuICAgICAgICAgICAgICAgIGV4cHIgPSBuZXcgV3JhcHBpbmdOb2RlKHN0YXJ0VG9rZW4pLmZpbmlzaE1lbWJlckV4cHJlc3Npb24oJ1snLCBleHByLCBwcm9wZXJ0eSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCcuJykpIHtcbiAgICAgICAgICAgICAgICBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eSA9IHBhcnNlTm9uQ29tcHV0ZWRNZW1iZXIoKTtcbiAgICAgICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hNZW1iZXJFeHByZXNzaW9uKCcuJywgZXhwciwgcHJvcGVydHkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsb29rYWhlYWQudHlwZSA9PT0gVG9rZW4uVGVtcGxhdGUgJiYgbG9va2FoZWFkLmhlYWQpIHtcbiAgICAgICAgICAgICAgICBxdWFzaSA9IHBhcnNlVGVtcGxhdGVMaXRlcmFsKCk7XG4gICAgICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uKGV4cHIsIHF1YXNpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgfVxuXG4gICAgLy8gMTEuMyBQb3N0Zml4IEV4cHJlc3Npb25zXG5cbiAgICBmdW5jdGlvbiBwYXJzZVBvc3RmaXhFeHByZXNzaW9uKCkge1xuICAgICAgICB2YXIgZXhwciwgdG9rZW4sIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQ7XG5cbiAgICAgICAgZXhwciA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VMZWZ0SGFuZFNpZGVFeHByZXNzaW9uQWxsb3dDYWxsKTtcblxuICAgICAgICBpZiAoIWhhc0xpbmVUZXJtaW5hdG9yICYmIGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5QdW5jdHVhdG9yKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2goJysrJykgfHwgbWF0Y2goJy0tJykpIHtcbiAgICAgICAgICAgICAgICAvLyAxMS4zLjEsIDExLjMuMlxuICAgICAgICAgICAgICAgIGlmIChzdHJpY3QgJiYgZXhwci50eXBlID09PSBTeW50YXguSWRlbnRpZmllciAmJiBpc1Jlc3RyaWN0ZWRXb3JkKGV4cHIubmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9sZXJhdGVFcnJvcihNZXNzYWdlcy5TdHJpY3RMSFNQb3N0Zml4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIWlzQXNzaWdubWVudFRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLkludmFsaWRMSFNJbkFzc2lnbm1lbnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIHRva2VuID0gbGV4KCk7XG4gICAgICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoUG9zdGZpeEV4cHJlc3Npb24odG9rZW4udmFsdWUsIGV4cHIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgfVxuXG4gICAgLy8gMTEuNCBVbmFyeSBPcGVyYXRvcnNcblxuICAgIGZ1bmN0aW9uIHBhcnNlVW5hcnlFeHByZXNzaW9uKCkge1xuICAgICAgICB2YXIgdG9rZW4sIGV4cHIsIHN0YXJ0VG9rZW47XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5QdW5jdHVhdG9yICYmIGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5LZXl3b3JkKSB7XG4gICAgICAgICAgICBleHByID0gcGFyc2VQb3N0Zml4RXhwcmVzc2lvbigpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCcrKycpIHx8IG1hdGNoKCctLScpKSB7XG4gICAgICAgICAgICBzdGFydFRva2VuID0gbG9va2FoZWFkO1xuICAgICAgICAgICAgdG9rZW4gPSBsZXgoKTtcbiAgICAgICAgICAgIGV4cHIgPSBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlVW5hcnlFeHByZXNzaW9uKTtcbiAgICAgICAgICAgIC8vIDExLjQuNCwgMTEuNC41XG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmIGV4cHIudHlwZSA9PT0gU3ludGF4LklkZW50aWZpZXIgJiYgaXNSZXN0cmljdGVkV29yZChleHByLm5hbWUpKSB7XG4gICAgICAgICAgICAgICAgdG9sZXJhdGVFcnJvcihNZXNzYWdlcy5TdHJpY3RMSFNQcmVmaXgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWlzQXNzaWdubWVudFRhcmdldCkge1xuICAgICAgICAgICAgICAgIHRvbGVyYXRlRXJyb3IoTWVzc2FnZXMuSW52YWxpZExIU0luQXNzaWdubWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hVbmFyeUV4cHJlc3Npb24odG9rZW4udmFsdWUsIGV4cHIpO1xuICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCcrJykgfHwgbWF0Y2goJy0nKSB8fCBtYXRjaCgnficpIHx8IG1hdGNoKCchJykpIHtcbiAgICAgICAgICAgIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICB0b2tlbiA9IGxleCgpO1xuICAgICAgICAgICAgZXhwciA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VVbmFyeUV4cHJlc3Npb24pO1xuICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoVW5hcnlFeHByZXNzaW9uKHRva2VuLnZhbHVlLCBleHByKTtcbiAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChtYXRjaEtleXdvcmQoJ2RlbGV0ZScpIHx8IG1hdGNoS2V5d29yZCgndm9pZCcpIHx8IG1hdGNoS2V5d29yZCgndHlwZW9mJykpIHtcbiAgICAgICAgICAgIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICB0b2tlbiA9IGxleCgpO1xuICAgICAgICAgICAgZXhwciA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VVbmFyeUV4cHJlc3Npb24pO1xuICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoVW5hcnlFeHByZXNzaW9uKHRva2VuLnZhbHVlLCBleHByKTtcbiAgICAgICAgICAgIGlmIChzdHJpY3QgJiYgZXhwci5vcGVyYXRvciA9PT0gJ2RlbGV0ZScgJiYgZXhwci5hcmd1bWVudC50eXBlID09PSBTeW50YXguSWRlbnRpZmllcikge1xuICAgICAgICAgICAgICAgIHRvbGVyYXRlRXJyb3IoTWVzc2FnZXMuU3RyaWN0RGVsZXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cHIgPSBwYXJzZVBvc3RmaXhFeHByZXNzaW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXhwcjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBiaW5hcnlQcmVjZWRlbmNlKHRva2VuLCBhbGxvd0luKSB7XG4gICAgICAgIHZhciBwcmVjID0gMDtcblxuICAgICAgICBpZiAodG9rZW4udHlwZSAhPT0gVG9rZW4uUHVuY3R1YXRvciAmJiB0b2tlbi50eXBlICE9PSBUb2tlbi5LZXl3b3JkKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodG9rZW4udmFsdWUpIHtcbiAgICAgICAgY2FzZSAnfHwnOlxuICAgICAgICAgICAgcHJlYyA9IDE7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICcmJic6XG4gICAgICAgICAgICBwcmVjID0gMjtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3wnOlxuICAgICAgICAgICAgcHJlYyA9IDM7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdeJzpcbiAgICAgICAgICAgIHByZWMgPSA0O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnJic6XG4gICAgICAgICAgICBwcmVjID0gNTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJz09JzpcbiAgICAgICAgY2FzZSAnIT0nOlxuICAgICAgICBjYXNlICc9PT0nOlxuICAgICAgICBjYXNlICchPT0nOlxuICAgICAgICAgICAgcHJlYyA9IDY7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICc8JzpcbiAgICAgICAgY2FzZSAnPic6XG4gICAgICAgIGNhc2UgJzw9JzpcbiAgICAgICAgY2FzZSAnPj0nOlxuICAgICAgICBjYXNlICdpbnN0YW5jZW9mJzpcbiAgICAgICAgICAgIHByZWMgPSA3O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnaW4nOlxuICAgICAgICAgICAgcHJlYyA9IGFsbG93SW4gPyA3IDogMDtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJzw8JzpcbiAgICAgICAgY2FzZSAnPj4nOlxuICAgICAgICBjYXNlICc+Pj4nOlxuICAgICAgICAgICAgcHJlYyA9IDg7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICcrJzpcbiAgICAgICAgY2FzZSAnLSc6XG4gICAgICAgICAgICBwcmVjID0gOTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJyonOlxuICAgICAgICBjYXNlICcvJzpcbiAgICAgICAgY2FzZSAnJSc6XG4gICAgICAgICAgICBwcmVjID0gMTE7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcHJlYztcbiAgICB9XG5cbiAgICAvLyAxMS41IE11bHRpcGxpY2F0aXZlIE9wZXJhdG9yc1xuICAgIC8vIDExLjYgQWRkaXRpdmUgT3BlcmF0b3JzXG4gICAgLy8gMTEuNyBCaXR3aXNlIFNoaWZ0IE9wZXJhdG9yc1xuICAgIC8vIDExLjggUmVsYXRpb25hbCBPcGVyYXRvcnNcbiAgICAvLyAxMS45IEVxdWFsaXR5IE9wZXJhdG9yc1xuICAgIC8vIDExLjEwIEJpbmFyeSBCaXR3aXNlIE9wZXJhdG9yc1xuICAgIC8vIDExLjExIEJpbmFyeSBMb2dpY2FsIE9wZXJhdG9yc1xuXG4gICAgZnVuY3Rpb24gcGFyc2VCaW5hcnlFeHByZXNzaW9uKCkge1xuICAgICAgICB2YXIgbWFya2VyLCBtYXJrZXJzLCBleHByLCB0b2tlbiwgcHJlYywgc3RhY2ssIHJpZ2h0LCBvcGVyYXRvciwgbGVmdCwgaTtcblxuICAgICAgICBtYXJrZXIgPSBsb29rYWhlYWQ7XG4gICAgICAgIGxlZnQgPSBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlVW5hcnlFeHByZXNzaW9uKTtcblxuICAgICAgICB0b2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgcHJlYyA9IGJpbmFyeVByZWNlZGVuY2UodG9rZW4sIHN0YXRlLmFsbG93SW4pO1xuICAgICAgICBpZiAocHJlYyA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGxlZnQ7XG4gICAgICAgIH1cbiAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICB0b2tlbi5wcmVjID0gcHJlYztcbiAgICAgICAgbGV4KCk7XG5cbiAgICAgICAgbWFya2VycyA9IFttYXJrZXIsIGxvb2thaGVhZF07XG4gICAgICAgIHJpZ2h0ID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZVVuYXJ5RXhwcmVzc2lvbik7XG5cbiAgICAgICAgc3RhY2sgPSBbbGVmdCwgdG9rZW4sIHJpZ2h0XTtcblxuICAgICAgICB3aGlsZSAoKHByZWMgPSBiaW5hcnlQcmVjZWRlbmNlKGxvb2thaGVhZCwgc3RhdGUuYWxsb3dJbikpID4gMCkge1xuXG4gICAgICAgICAgICAvLyBSZWR1Y2U6IG1ha2UgYSBiaW5hcnkgZXhwcmVzc2lvbiBmcm9tIHRoZSB0aHJlZSB0b3Btb3N0IGVudHJpZXMuXG4gICAgICAgICAgICB3aGlsZSAoKHN0YWNrLmxlbmd0aCA+IDIpICYmIChwcmVjIDw9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDJdLnByZWMpKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQgPSBzdGFjay5wb3AoKTtcbiAgICAgICAgICAgICAgICBvcGVyYXRvciA9IHN0YWNrLnBvcCgpLnZhbHVlO1xuICAgICAgICAgICAgICAgIGxlZnQgPSBzdGFjay5wb3AoKTtcbiAgICAgICAgICAgICAgICBtYXJrZXJzLnBvcCgpO1xuICAgICAgICAgICAgICAgIGV4cHIgPSBuZXcgV3JhcHBpbmdOb2RlKG1hcmtlcnNbbWFya2Vycy5sZW5ndGggLSAxXSkuZmluaXNoQmluYXJ5RXhwcmVzc2lvbihvcGVyYXRvciwgbGVmdCwgcmlnaHQpO1xuICAgICAgICAgICAgICAgIHN0YWNrLnB1c2goZXhwcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNoaWZ0LlxuICAgICAgICAgICAgdG9rZW4gPSBsZXgoKTtcbiAgICAgICAgICAgIHRva2VuLnByZWMgPSBwcmVjO1xuICAgICAgICAgICAgc3RhY2sucHVzaCh0b2tlbik7XG4gICAgICAgICAgICBtYXJrZXJzLnB1c2gobG9va2FoZWFkKTtcbiAgICAgICAgICAgIGV4cHIgPSBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlVW5hcnlFeHByZXNzaW9uKTtcbiAgICAgICAgICAgIHN0YWNrLnB1c2goZXhwcik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaW5hbCByZWR1Y2UgdG8gY2xlYW4tdXAgdGhlIHN0YWNrLlxuICAgICAgICBpID0gc3RhY2subGVuZ3RoIC0gMTtcbiAgICAgICAgZXhwciA9IHN0YWNrW2ldO1xuICAgICAgICBtYXJrZXJzLnBvcCgpO1xuICAgICAgICB3aGlsZSAoaSA+IDEpIHtcbiAgICAgICAgICAgIGV4cHIgPSBuZXcgV3JhcHBpbmdOb2RlKG1hcmtlcnMucG9wKCkpLmZpbmlzaEJpbmFyeUV4cHJlc3Npb24oc3RhY2tbaSAtIDFdLnZhbHVlLCBzdGFja1tpIC0gMl0sIGV4cHIpO1xuICAgICAgICAgICAgaSAtPSAyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgfVxuXG5cbiAgICAvLyAxMS4xMiBDb25kaXRpb25hbCBPcGVyYXRvclxuXG4gICAgZnVuY3Rpb24gcGFyc2VDb25kaXRpb25hbEV4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciBleHByLCBwcmV2aW91c0FsbG93SW4sIGNvbnNlcXVlbnQsIGFsdGVybmF0ZSwgc3RhcnRUb2tlbjtcblxuICAgICAgICBzdGFydFRva2VuID0gbG9va2FoZWFkO1xuXG4gICAgICAgIGV4cHIgPSBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlQmluYXJ5RXhwcmVzc2lvbik7XG4gICAgICAgIGlmIChtYXRjaCgnPycpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIHByZXZpb3VzQWxsb3dJbiA9IHN0YXRlLmFsbG93SW47XG4gICAgICAgICAgICBzdGF0ZS5hbGxvd0luID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnNlcXVlbnQgPSBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pO1xuICAgICAgICAgICAgc3RhdGUuYWxsb3dJbiA9IHByZXZpb3VzQWxsb3dJbjtcbiAgICAgICAgICAgIGV4cGVjdCgnOicpO1xuICAgICAgICAgICAgYWx0ZXJuYXRlID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcblxuICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoQ29uZGl0aW9uYWxFeHByZXNzaW9uKGV4cHIsIGNvbnNlcXVlbnQsIGFsdGVybmF0ZSk7XG4gICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXhwcjtcbiAgICB9XG5cbiAgICAvLyBbRVM2XSAxNC4yIEFycm93IEZ1bmN0aW9uXG5cbiAgICBmdW5jdGlvbiBwYXJzZUNvbmNpc2VCb2R5KCkge1xuICAgICAgICBpZiAobWF0Y2goJ3snKSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlRnVuY3Rpb25Tb3VyY2VFbGVtZW50cygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNoZWNrUGF0dGVyblBhcmFtKG9wdGlvbnMsIHBhcmFtKSB7XG4gICAgICAgIHZhciBpO1xuICAgICAgICBzd2l0Y2ggKHBhcmFtLnR5cGUpIHtcbiAgICAgICAgY2FzZSBTeW50YXguSWRlbnRpZmllcjpcbiAgICAgICAgICAgIHZhbGlkYXRlUGFyYW0ob3B0aW9ucywgcGFyYW0sIHBhcmFtLm5hbWUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU3ludGF4LlJlc3RFbGVtZW50OlxuICAgICAgICAgICAgY2hlY2tQYXR0ZXJuUGFyYW0ob3B0aW9ucywgcGFyYW0uYXJndW1lbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU3ludGF4LkFzc2lnbm1lbnRQYXR0ZXJuOlxuICAgICAgICAgICAgY2hlY2tQYXR0ZXJuUGFyYW0ob3B0aW9ucywgcGFyYW0ubGVmdCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTeW50YXguQXJyYXlQYXR0ZXJuOlxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHBhcmFtLmVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtLmVsZW1lbnRzW2ldICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrUGF0dGVyblBhcmFtKG9wdGlvbnMsIHBhcmFtLmVsZW1lbnRzW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGFzc2VydChwYXJhbS50eXBlID09PSBTeW50YXguT2JqZWN0UGF0dGVybiwgJ0ludmFsaWQgdHlwZScpO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHBhcmFtLnByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjaGVja1BhdHRlcm5QYXJhbShvcHRpb25zLCBwYXJhbS5wcm9wZXJ0aWVzW2ldLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlaW50ZXJwcmV0QXNDb3ZlckZvcm1hbHNMaXN0KGV4cHIpIHtcbiAgICAgICAgdmFyIGksIGxlbiwgcGFyYW0sIHBhcmFtcywgZGVmYXVsdHMsIGRlZmF1bHRDb3VudCwgb3B0aW9ucywgdG9rZW47XG5cbiAgICAgICAgZGVmYXVsdHMgPSBbXTtcbiAgICAgICAgZGVmYXVsdENvdW50ID0gMDtcbiAgICAgICAgcGFyYW1zID0gW2V4cHJdO1xuXG4gICAgICAgIHN3aXRjaCAoZXhwci50eXBlKSB7XG4gICAgICAgIGNhc2UgU3ludGF4LklkZW50aWZpZXI6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQbGFjZUhvbGRlcnMuQXJyb3dQYXJhbWV0ZXJQbGFjZUhvbGRlcjpcbiAgICAgICAgICAgIHBhcmFtcyA9IGV4cHIucGFyYW1zO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBwYXJhbVNldDoge31cbiAgICAgICAgfTtcblxuICAgICAgICBmb3IgKGkgPSAwLCBsZW4gPSBwYXJhbXMubGVuZ3RoOyBpIDwgbGVuOyBpICs9IDEpIHtcbiAgICAgICAgICAgIHBhcmFtID0gcGFyYW1zW2ldO1xuICAgICAgICAgICAgc3dpdGNoIChwYXJhbS50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFN5bnRheC5Bc3NpZ25tZW50UGF0dGVybjpcbiAgICAgICAgICAgICAgICBwYXJhbXNbaV0gPSBwYXJhbS5sZWZ0O1xuICAgICAgICAgICAgICAgIGRlZmF1bHRzLnB1c2gocGFyYW0ucmlnaHQpO1xuICAgICAgICAgICAgICAgICsrZGVmYXVsdENvdW50O1xuICAgICAgICAgICAgICAgIGNoZWNrUGF0dGVyblBhcmFtKG9wdGlvbnMsIHBhcmFtLmxlZnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjaGVja1BhdHRlcm5QYXJhbShvcHRpb25zLCBwYXJhbSk7XG4gICAgICAgICAgICAgICAgcGFyYW1zW2ldID0gcGFyYW07XG4gICAgICAgICAgICAgICAgZGVmYXVsdHMucHVzaChudWxsKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLm1lc3NhZ2UgPT09IE1lc3NhZ2VzLlN0cmljdFBhcmFtRHVwZSkge1xuICAgICAgICAgICAgdG9rZW4gPSBzdHJpY3QgPyBvcHRpb25zLnN0cmljdGVkIDogb3B0aW9ucy5maXJzdFJlc3RyaWN0ZWQ7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbih0b2tlbiwgb3B0aW9ucy5tZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZWZhdWx0Q291bnQgPT09IDApIHtcbiAgICAgICAgICAgIGRlZmF1bHRzID0gW107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICAgICAgICBkZWZhdWx0czogZGVmYXVsdHMsXG4gICAgICAgICAgICBzdHJpY3RlZDogb3B0aW9ucy5zdHJpY3RlZCxcbiAgICAgICAgICAgIGZpcnN0UmVzdHJpY3RlZDogb3B0aW9ucy5maXJzdFJlc3RyaWN0ZWQsXG4gICAgICAgICAgICBtZXNzYWdlOiBvcHRpb25zLm1lc3NhZ2VcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUFycm93RnVuY3Rpb25FeHByZXNzaW9uKG9wdGlvbnMsIG5vZGUpIHtcbiAgICAgICAgdmFyIHByZXZpb3VzU3RyaWN0LCBib2R5O1xuXG4gICAgICAgIGlmIChoYXNMaW5lVGVybWluYXRvcikge1xuICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkKTtcbiAgICAgICAgfVxuICAgICAgICBleHBlY3QoJz0+Jyk7XG4gICAgICAgIHByZXZpb3VzU3RyaWN0ID0gc3RyaWN0O1xuXG4gICAgICAgIGJvZHkgPSBwYXJzZUNvbmNpc2VCb2R5KCk7XG5cbiAgICAgICAgaWYgKHN0cmljdCAmJiBvcHRpb25zLmZpcnN0UmVzdHJpY3RlZCkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4ob3B0aW9ucy5maXJzdFJlc3RyaWN0ZWQsIG9wdGlvbnMubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0cmljdCAmJiBvcHRpb25zLnN0cmljdGVkKSB7XG4gICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbihvcHRpb25zLnN0cmljdGVkLCBvcHRpb25zLm1lc3NhZ2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RyaWN0ID0gcHJldmlvdXNTdHJpY3Q7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24ob3B0aW9ucy5wYXJhbXMsIG9wdGlvbnMuZGVmYXVsdHMsIGJvZHksIGJvZHkudHlwZSAhPT0gU3ludGF4LkJsb2NrU3RhdGVtZW50KTtcbiAgICB9XG5cbiAgICAvLyAxMS4xMyBBc3NpZ25tZW50IE9wZXJhdG9yc1xuXG4gICAgZnVuY3Rpb24gcGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbigpIHtcbiAgICAgICAgdmFyIHRva2VuLCBleHByLCByaWdodCwgbGlzdCwgc3RhcnRUb2tlbjtcblxuICAgICAgICBzdGFydFRva2VuID0gbG9va2FoZWFkO1xuICAgICAgICB0b2tlbiA9IGxvb2thaGVhZDtcblxuICAgICAgICBleHByID0gcGFyc2VDb25kaXRpb25hbEV4cHJlc3Npb24oKTtcblxuICAgICAgICBpZiAoZXhwci50eXBlID09PSBQbGFjZUhvbGRlcnMuQXJyb3dQYXJhbWV0ZXJQbGFjZUhvbGRlciB8fCBtYXRjaCgnPT4nKSkge1xuICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgbGlzdCA9IHJlaW50ZXJwcmV0QXNDb3ZlckZvcm1hbHNMaXN0KGV4cHIpO1xuXG4gICAgICAgICAgICBpZiAobGlzdCkge1xuICAgICAgICAgICAgICAgIGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvciA9IG51bGw7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24obGlzdCwgbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBleHByO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1hdGNoQXNzaWduKCkpIHtcbiAgICAgICAgICAgIGlmICghaXNBc3NpZ25tZW50VGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgdG9sZXJhdGVFcnJvcihNZXNzYWdlcy5JbnZhbGlkTEhTSW5Bc3NpZ25tZW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gMTEuMTMuMVxuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiBleHByLnR5cGUgPT09IFN5bnRheC5JZGVudGlmaWVyICYmIGlzUmVzdHJpY3RlZFdvcmQoZXhwci5uYW1lKSkge1xuICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKHRva2VuLCBNZXNzYWdlcy5TdHJpY3RMSFNBc3NpZ25tZW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFtYXRjaCgnPScpKSB7XG4gICAgICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZWludGVycHJldEV4cHJlc3Npb25Bc1BhdHRlcm4oZXhwcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRva2VuID0gbGV4KCk7XG4gICAgICAgICAgICByaWdodCA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbik7XG4gICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hBc3NpZ25tZW50RXhwcmVzc2lvbih0b2tlbi52YWx1ZSwgZXhwciwgcmlnaHQpO1xuICAgICAgICAgICAgZmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBleHByO1xuICAgIH1cblxuICAgIC8vIDExLjE0IENvbW1hIE9wZXJhdG9yXG5cbiAgICBmdW5jdGlvbiBwYXJzZUV4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciBleHByLCBzdGFydFRva2VuID0gbG9va2FoZWFkLCBleHByZXNzaW9ucztcblxuICAgICAgICBleHByID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcblxuICAgICAgICBpZiAobWF0Y2goJywnKSkge1xuICAgICAgICAgICAgZXhwcmVzc2lvbnMgPSBbZXhwcl07XG5cbiAgICAgICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFtYXRjaCgnLCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICBleHByZXNzaW9ucy5wdXNoKGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbikpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hTZXF1ZW5jZUV4cHJlc3Npb24oZXhwcmVzc2lvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgfVxuXG4gICAgLy8gMTIuMSBCbG9ja1xuXG4gICAgZnVuY3Rpb24gcGFyc2VTdGF0ZW1lbnRMaXN0SXRlbSgpIHtcbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5LZXl3b3JkKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGxvb2thaGVhZC52YWx1ZSkge1xuICAgICAgICAgICAgY2FzZSAnZXhwb3J0JzpcbiAgICAgICAgICAgICAgICBpZiAoc291cmNlVHlwZSAhPT0gJ21vZHVsZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkLCBNZXNzYWdlcy5JbGxlZ2FsRXhwb3J0RGVjbGFyYXRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VFeHBvcnREZWNsYXJhdGlvbigpO1xuICAgICAgICAgICAgY2FzZSAnaW1wb3J0JzpcbiAgICAgICAgICAgICAgICBpZiAoc291cmNlVHlwZSAhPT0gJ21vZHVsZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkLCBNZXNzYWdlcy5JbGxlZ2FsSW1wb3J0RGVjbGFyYXRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VJbXBvcnREZWNsYXJhdGlvbigpO1xuICAgICAgICAgICAgY2FzZSAnY29uc3QnOlxuICAgICAgICAgICAgY2FzZSAnbGV0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VMZXhpY2FsRGVjbGFyYXRpb24oe2luRm9yOiBmYWxzZX0pO1xuICAgICAgICAgICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUZ1bmN0aW9uRGVjbGFyYXRpb24obmV3IE5vZGUoKSk7XG4gICAgICAgICAgICBjYXNlICdjbGFzcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ2xhc3NEZWNsYXJhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcnNlU3RhdGVtZW50KCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VTdGF0ZW1lbnRMaXN0KCkge1xuICAgICAgICB2YXIgbGlzdCA9IFtdO1xuICAgICAgICB3aGlsZSAoc3RhcnRJbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKG1hdGNoKCd9JykpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpc3QucHVzaChwYXJzZVN0YXRlbWVudExpc3RJdGVtKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VCbG9jaygpIHtcbiAgICAgICAgdmFyIGJsb2NrLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBleHBlY3QoJ3snKTtcblxuICAgICAgICBibG9jayA9IHBhcnNlU3RhdGVtZW50TGlzdCgpO1xuXG4gICAgICAgIGV4cGVjdCgnfScpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEJsb2NrU3RhdGVtZW50KGJsb2NrKTtcbiAgICB9XG5cbiAgICAvLyAxMi4yIFZhcmlhYmxlIFN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKSB7XG4gICAgICAgIHZhciB0b2tlbiwgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgdG9rZW4gPSBsZXgoKTtcblxuICAgICAgICBpZiAodG9rZW4udHlwZSAhPT0gVG9rZW4uSWRlbnRpZmllcikge1xuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiB0b2tlbi50eXBlID09PSBUb2tlbi5LZXl3b3JkICYmIGlzU3RyaWN0TW9kZVJlc2VydmVkV29yZCh0b2tlbi52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbih0b2tlbiwgTWVzc2FnZXMuU3RyaWN0UmVzZXJ2ZWRXb3JkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4odG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoSWRlbnRpZmllcih0b2tlbi52YWx1ZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VWYXJpYWJsZURlY2xhcmF0aW9uKCkge1xuICAgICAgICB2YXIgaW5pdCA9IG51bGwsIGlkLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBpZCA9IHBhcnNlUGF0dGVybigpO1xuXG4gICAgICAgIC8vIDEyLjIuMVxuICAgICAgICBpZiAoc3RyaWN0ICYmIGlzUmVzdHJpY3RlZFdvcmQoaWQubmFtZSkpIHtcbiAgICAgICAgICAgIHRvbGVyYXRlRXJyb3IoTWVzc2FnZXMuU3RyaWN0VmFyTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2goJz0nKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICBpbml0ID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcbiAgICAgICAgfSBlbHNlIGlmIChpZC50eXBlICE9PSBTeW50YXguSWRlbnRpZmllcikge1xuICAgICAgICAgICAgZXhwZWN0KCc9Jyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hWYXJpYWJsZURlY2xhcmF0b3IoaWQsIGluaXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlVmFyaWFibGVEZWNsYXJhdGlvbkxpc3QoKSB7XG4gICAgICAgIHZhciBsaXN0ID0gW107XG5cbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgbGlzdC5wdXNoKHBhcnNlVmFyaWFibGVEZWNsYXJhdGlvbigpKTtcbiAgICAgICAgICAgIGlmICghbWF0Y2goJywnKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgIH0gd2hpbGUgKHN0YXJ0SW5kZXggPCBsZW5ndGgpO1xuXG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlVmFyaWFibGVTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgZGVjbGFyYXRpb25zO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ3ZhcicpO1xuXG4gICAgICAgIGRlY2xhcmF0aW9ucyA9IHBhcnNlVmFyaWFibGVEZWNsYXJhdGlvbkxpc3QoKTtcblxuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoVmFyaWFibGVEZWNsYXJhdGlvbihkZWNsYXJhdGlvbnMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlTGV4aWNhbEJpbmRpbmcoa2luZCwgb3B0aW9ucykge1xuICAgICAgICB2YXIgaW5pdCA9IG51bGwsIGlkLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBpZCA9IHBhcnNlUGF0dGVybigpO1xuXG4gICAgICAgIC8vIDEyLjIuMVxuICAgICAgICBpZiAoc3RyaWN0ICYmIGlkLnR5cGUgPT09IFN5bnRheC5JZGVudGlmaWVyICYmIGlzUmVzdHJpY3RlZFdvcmQoaWQubmFtZSkpIHtcbiAgICAgICAgICAgIHRvbGVyYXRlRXJyb3IoTWVzc2FnZXMuU3RyaWN0VmFyTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoa2luZCA9PT0gJ2NvbnN0Jykge1xuICAgICAgICAgICAgaWYgKCFtYXRjaEtleXdvcmQoJ2luJykpIHtcbiAgICAgICAgICAgICAgICBleHBlY3QoJz0nKTtcbiAgICAgICAgICAgICAgICBpbml0ID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICgoIW9wdGlvbnMuaW5Gb3IgJiYgaWQudHlwZSAhPT0gU3ludGF4LklkZW50aWZpZXIpIHx8IG1hdGNoKCc9JykpIHtcbiAgICAgICAgICAgIGV4cGVjdCgnPScpO1xuICAgICAgICAgICAgaW5pdCA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hWYXJpYWJsZURlY2xhcmF0b3IoaWQsIGluaXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlQmluZGluZ0xpc3Qoa2luZCwgb3B0aW9ucykge1xuICAgICAgICB2YXIgbGlzdCA9IFtdO1xuXG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIGxpc3QucHVzaChwYXJzZUxleGljYWxCaW5kaW5nKGtpbmQsIG9wdGlvbnMpKTtcbiAgICAgICAgICAgIGlmICghbWF0Y2goJywnKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgIH0gd2hpbGUgKHN0YXJ0SW5kZXggPCBsZW5ndGgpO1xuXG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlTGV4aWNhbERlY2xhcmF0aW9uKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIGtpbmQsIGRlY2xhcmF0aW9ucywgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAga2luZCA9IGxleCgpLnZhbHVlO1xuICAgICAgICBhc3NlcnQoa2luZCA9PT0gJ2xldCcgfHwga2luZCA9PT0gJ2NvbnN0JywgJ0xleGljYWwgZGVjbGFyYXRpb24gbXVzdCBiZSBlaXRoZXIgbGV0IG9yIGNvbnN0Jyk7XG5cbiAgICAgICAgZGVjbGFyYXRpb25zID0gcGFyc2VCaW5kaW5nTGlzdChraW5kLCBvcHRpb25zKTtcblxuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoTGV4aWNhbERlY2xhcmF0aW9uKGRlY2xhcmF0aW9ucywga2luZCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VSZXN0RWxlbWVudCgpIHtcbiAgICAgICAgdmFyIHBhcmFtLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBsZXgoKTtcblxuICAgICAgICBpZiAobWF0Y2goJ3snKSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5PYmplY3RQYXR0ZXJuQXNSZXN0UGFyYW1ldGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcmFtID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcblxuICAgICAgICBpZiAobWF0Y2goJz0nKSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5EZWZhdWx0UmVzdFBhcmFtZXRlcik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW1hdGNoKCcpJykpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuUGFyYW1ldGVyQWZ0ZXJSZXN0UGFyYW1ldGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaFJlc3RFbGVtZW50KHBhcmFtKTtcbiAgICB9XG5cbiAgICAvLyAxMi4zIEVtcHR5IFN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VFbXB0eVN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIGV4cGVjdCgnOycpO1xuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hFbXB0eVN0YXRlbWVudCgpO1xuICAgIH1cblxuICAgIC8vIDEyLjQgRXhwcmVzc2lvbiBTdGF0ZW1lbnRcblxuICAgIGZ1bmN0aW9uIHBhcnNlRXhwcmVzc2lvblN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIHZhciBleHByID0gcGFyc2VFeHByZXNzaW9uKCk7XG4gICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwcmVzc2lvblN0YXRlbWVudChleHByKTtcbiAgICB9XG5cbiAgICAvLyAxMi41IElmIHN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VJZlN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIHZhciB0ZXN0LCBjb25zZXF1ZW50LCBhbHRlcm5hdGU7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnaWYnKTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICB0ZXN0ID0gcGFyc2VFeHByZXNzaW9uKCk7XG5cbiAgICAgICAgZXhwZWN0KCcpJyk7XG5cbiAgICAgICAgY29uc2VxdWVudCA9IHBhcnNlU3RhdGVtZW50KCk7XG5cbiAgICAgICAgaWYgKG1hdGNoS2V5d29yZCgnZWxzZScpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIGFsdGVybmF0ZSA9IHBhcnNlU3RhdGVtZW50KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbHRlcm5hdGUgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoSWZTdGF0ZW1lbnQodGVzdCwgY29uc2VxdWVudCwgYWx0ZXJuYXRlKTtcbiAgICB9XG5cbiAgICAvLyAxMi42IEl0ZXJhdGlvbiBTdGF0ZW1lbnRzXG5cbiAgICBmdW5jdGlvbiBwYXJzZURvV2hpbGVTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgYm9keSwgdGVzdCwgb2xkSW5JdGVyYXRpb247XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnZG8nKTtcblxuICAgICAgICBvbGRJbkl0ZXJhdGlvbiA9IHN0YXRlLmluSXRlcmF0aW9uO1xuICAgICAgICBzdGF0ZS5pbkl0ZXJhdGlvbiA9IHRydWU7XG5cbiAgICAgICAgYm9keSA9IHBhcnNlU3RhdGVtZW50KCk7XG5cbiAgICAgICAgc3RhdGUuaW5JdGVyYXRpb24gPSBvbGRJbkl0ZXJhdGlvbjtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCd3aGlsZScpO1xuXG4gICAgICAgIGV4cGVjdCgnKCcpO1xuXG4gICAgICAgIHRlc3QgPSBwYXJzZUV4cHJlc3Npb24oKTtcblxuICAgICAgICBleHBlY3QoJyknKTtcblxuICAgICAgICBpZiAobWF0Y2goJzsnKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hEb1doaWxlU3RhdGVtZW50KGJvZHksIHRlc3QpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlV2hpbGVTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgdGVzdCwgYm9keSwgb2xkSW5JdGVyYXRpb247XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnd2hpbGUnKTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICB0ZXN0ID0gcGFyc2VFeHByZXNzaW9uKCk7XG5cbiAgICAgICAgZXhwZWN0KCcpJyk7XG5cbiAgICAgICAgb2xkSW5JdGVyYXRpb24gPSBzdGF0ZS5pbkl0ZXJhdGlvbjtcbiAgICAgICAgc3RhdGUuaW5JdGVyYXRpb24gPSB0cnVlO1xuXG4gICAgICAgIGJvZHkgPSBwYXJzZVN0YXRlbWVudCgpO1xuXG4gICAgICAgIHN0YXRlLmluSXRlcmF0aW9uID0gb2xkSW5JdGVyYXRpb247XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoV2hpbGVTdGF0ZW1lbnQodGVzdCwgYm9keSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VGb3JTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgaW5pdCwgaW5pdFNlcSwgaW5pdFN0YXJ0VG9rZW4sIHRlc3QsIHVwZGF0ZSwgbGVmdCwgcmlnaHQsIGtpbmQsIGRlY2xhcmF0aW9ucyxcbiAgICAgICAgICAgIGJvZHksIG9sZEluSXRlcmF0aW9uLCBwcmV2aW91c0FsbG93SW4gPSBzdGF0ZS5hbGxvd0luO1xuXG4gICAgICAgIGluaXQgPSB0ZXN0ID0gdXBkYXRlID0gbnVsbDtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdmb3InKTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICBpZiAobWF0Y2goJzsnKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCd2YXInKSkge1xuICAgICAgICAgICAgICAgIGluaXQgPSBuZXcgTm9kZSgpO1xuICAgICAgICAgICAgICAgIGxleCgpO1xuXG4gICAgICAgICAgICAgICAgc3RhdGUuYWxsb3dJbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGluaXQgPSBpbml0LmZpbmlzaFZhcmlhYmxlRGVjbGFyYXRpb24ocGFyc2VWYXJpYWJsZURlY2xhcmF0aW9uTGlzdCgpKTtcbiAgICAgICAgICAgICAgICBzdGF0ZS5hbGxvd0luID0gcHJldmlvdXNBbGxvd0luO1xuXG4gICAgICAgICAgICAgICAgaWYgKGluaXQuZGVjbGFyYXRpb25zLmxlbmd0aCA9PT0gMSAmJiBtYXRjaEtleXdvcmQoJ2luJykpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSBpbml0O1xuICAgICAgICAgICAgICAgICAgICByaWdodCA9IHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgICAgICAgICBpbml0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBleHBlY3QoJzsnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1hdGNoS2V5d29yZCgnY29uc3QnKSB8fCBtYXRjaEtleXdvcmQoJ2xldCcpKSB7XG4gICAgICAgICAgICAgICAgaW5pdCA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICAgICAga2luZCA9IGxleCgpLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgc3RhdGUuYWxsb3dJbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGRlY2xhcmF0aW9ucyA9IHBhcnNlQmluZGluZ0xpc3Qoa2luZCwge2luRm9yOiB0cnVlfSk7XG4gICAgICAgICAgICAgICAgc3RhdGUuYWxsb3dJbiA9IHByZXZpb3VzQWxsb3dJbjtcblxuICAgICAgICAgICAgICAgIGlmIChkZWNsYXJhdGlvbnMubGVuZ3RoID09PSAxICYmIGRlY2xhcmF0aW9uc1swXS5pbml0ID09PSBudWxsICYmIG1hdGNoS2V5d29yZCgnaW4nKSkge1xuICAgICAgICAgICAgICAgICAgICBpbml0ID0gaW5pdC5maW5pc2hMZXhpY2FsRGVjbGFyYXRpb24oZGVjbGFyYXRpb25zLCBraW5kKTtcbiAgICAgICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSBpbml0O1xuICAgICAgICAgICAgICAgICAgICByaWdodCA9IHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgICAgICAgICBpbml0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGluaXQgPSBpbml0LmZpbmlzaExleGljYWxEZWNsYXJhdGlvbihkZWNsYXJhdGlvbnMsIGtpbmQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaW5pdFN0YXJ0VG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICAgICAgc3RhdGUuYWxsb3dJbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGluaXQgPSBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIHN0YXRlLmFsbG93SW4gPSBwcmV2aW91c0FsbG93SW47XG5cbiAgICAgICAgICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdpbicpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNBc3NpZ25tZW50VGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLkludmFsaWRMSFNJbkZvckluKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgICAgICByZWludGVycHJldEV4cHJlc3Npb25Bc1BhdHRlcm4oaW5pdCk7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSBpbml0O1xuICAgICAgICAgICAgICAgICAgICByaWdodCA9IHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgICAgICAgICBpbml0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2goJywnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdFNlcSA9IFtpbml0XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChtYXRjaCgnLCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdFNlcS5wdXNoKGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdCA9IG5ldyBXcmFwcGluZ05vZGUoaW5pdFN0YXJ0VG9rZW4pLmZpbmlzaFNlcXVlbmNlRXhwcmVzc2lvbihpbml0U2VxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBleHBlY3QoJzsnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGxlZnQgPT09ICd1bmRlZmluZWQnKSB7XG5cbiAgICAgICAgICAgIGlmICghbWF0Y2goJzsnKSkge1xuICAgICAgICAgICAgICAgIHRlc3QgPSBwYXJzZUV4cHJlc3Npb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV4cGVjdCgnOycpO1xuXG4gICAgICAgICAgICBpZiAoIW1hdGNoKCcpJykpIHtcbiAgICAgICAgICAgICAgICB1cGRhdGUgPSBwYXJzZUV4cHJlc3Npb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGV4cGVjdCgnKScpO1xuXG4gICAgICAgIG9sZEluSXRlcmF0aW9uID0gc3RhdGUuaW5JdGVyYXRpb247XG4gICAgICAgIHN0YXRlLmluSXRlcmF0aW9uID0gdHJ1ZTtcblxuICAgICAgICBib2R5ID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZVN0YXRlbWVudCk7XG5cbiAgICAgICAgc3RhdGUuaW5JdGVyYXRpb24gPSBvbGRJbkl0ZXJhdGlvbjtcblxuICAgICAgICByZXR1cm4gKHR5cGVvZiBsZWZ0ID09PSAndW5kZWZpbmVkJykgP1xuICAgICAgICAgICAgICAgIG5vZGUuZmluaXNoRm9yU3RhdGVtZW50KGluaXQsIHRlc3QsIHVwZGF0ZSwgYm9keSkgOlxuICAgICAgICAgICAgICAgIG5vZGUuZmluaXNoRm9ySW5TdGF0ZW1lbnQobGVmdCwgcmlnaHQsIGJvZHkpO1xuICAgIH1cblxuICAgIC8vIDEyLjcgVGhlIGNvbnRpbnVlIHN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VDb250aW51ZVN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIHZhciBsYWJlbCA9IG51bGwsIGtleTtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdjb250aW51ZScpO1xuXG4gICAgICAgIC8vIE9wdGltaXplIHRoZSBtb3N0IGNvbW1vbiBmb3JtOiAnY29udGludWU7Jy5cbiAgICAgICAgaWYgKHNvdXJjZS5jaGFyQ29kZUF0KHN0YXJ0SW5kZXgpID09PSAweDNCKSB7XG4gICAgICAgICAgICBsZXgoKTtcblxuICAgICAgICAgICAgaWYgKCFzdGF0ZS5pbkl0ZXJhdGlvbikge1xuICAgICAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuSWxsZWdhbENvbnRpbnVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoQ29udGludWVTdGF0ZW1lbnQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFzTGluZVRlcm1pbmF0b3IpIHtcbiAgICAgICAgICAgIGlmICghc3RhdGUuaW5JdGVyYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLklsbGVnYWxDb250aW51ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaENvbnRpbnVlU3RhdGVtZW50KG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBsYWJlbCA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG5cbiAgICAgICAgICAgIGtleSA9ICckJyArIGxhYmVsLm5hbWU7XG4gICAgICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdGF0ZS5sYWJlbFNldCwga2V5KSkge1xuICAgICAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuVW5rbm93bkxhYmVsLCBsYWJlbC5uYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcblxuICAgICAgICBpZiAobGFiZWwgPT09IG51bGwgJiYgIXN0YXRlLmluSXRlcmF0aW9uKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLklsbGVnYWxDb250aW51ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hDb250aW51ZVN0YXRlbWVudChsYWJlbCk7XG4gICAgfVxuXG4gICAgLy8gMTIuOCBUaGUgYnJlYWsgc3RhdGVtZW50XG5cbiAgICBmdW5jdGlvbiBwYXJzZUJyZWFrU3RhdGVtZW50KG5vZGUpIHtcbiAgICAgICAgdmFyIGxhYmVsID0gbnVsbCwga2V5O1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ2JyZWFrJyk7XG5cbiAgICAgICAgLy8gQ2F0Y2ggdGhlIHZlcnkgY29tbW9uIGNhc2UgZmlyc3Q6IGltbWVkaWF0ZWx5IGEgc2VtaWNvbG9uIChVKzAwM0IpLlxuICAgICAgICBpZiAoc291cmNlLmNoYXJDb2RlQXQobGFzdEluZGV4KSA9PT0gMHgzQikge1xuICAgICAgICAgICAgbGV4KCk7XG5cbiAgICAgICAgICAgIGlmICghKHN0YXRlLmluSXRlcmF0aW9uIHx8IHN0YXRlLmluU3dpdGNoKSkge1xuICAgICAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuSWxsZWdhbEJyZWFrKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoQnJlYWtTdGF0ZW1lbnQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFzTGluZVRlcm1pbmF0b3IpIHtcbiAgICAgICAgICAgIGlmICghKHN0YXRlLmluSXRlcmF0aW9uIHx8IHN0YXRlLmluU3dpdGNoKSkge1xuICAgICAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuSWxsZWdhbEJyZWFrKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoQnJlYWtTdGF0ZW1lbnQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGxhYmVsID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcblxuICAgICAgICAgICAga2V5ID0gJyQnICsgbGFiZWwubmFtZTtcbiAgICAgICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHN0YXRlLmxhYmVsU2V0LCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5Vbmtub3duTGFiZWwsIGxhYmVsLm5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3VtZVNlbWljb2xvbigpO1xuXG4gICAgICAgIGlmIChsYWJlbCA9PT0gbnVsbCAmJiAhKHN0YXRlLmluSXRlcmF0aW9uIHx8IHN0YXRlLmluU3dpdGNoKSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5JbGxlZ2FsQnJlYWspO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoQnJlYWtTdGF0ZW1lbnQobGFiZWwpO1xuICAgIH1cblxuICAgIC8vIDEyLjkgVGhlIHJldHVybiBzdGF0ZW1lbnRcblxuICAgIGZ1bmN0aW9uIHBhcnNlUmV0dXJuU3RhdGVtZW50KG5vZGUpIHtcbiAgICAgICAgdmFyIGFyZ3VtZW50ID0gbnVsbDtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdyZXR1cm4nKTtcblxuICAgICAgICBpZiAoIXN0YXRlLmluRnVuY3Rpb25Cb2R5KSB7XG4gICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLklsbGVnYWxSZXR1cm4pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gJ3JldHVybicgZm9sbG93ZWQgYnkgYSBzcGFjZSBhbmQgYW4gaWRlbnRpZmllciBpcyB2ZXJ5IGNvbW1vbi5cbiAgICAgICAgaWYgKHNvdXJjZS5jaGFyQ29kZUF0KGxhc3RJbmRleCkgPT09IDB4MjApIHtcbiAgICAgICAgICAgIGlmIChpc0lkZW50aWZpZXJTdGFydChzb3VyY2UuY2hhckNvZGVBdChsYXN0SW5kZXggKyAxKSkpIHtcbiAgICAgICAgICAgICAgICBhcmd1bWVudCA9IHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hSZXR1cm5TdGF0ZW1lbnQoYXJndW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc0xpbmVUZXJtaW5hdG9yKSB7XG4gICAgICAgICAgICAvLyBIQUNLXG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hSZXR1cm5TdGF0ZW1lbnQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW1hdGNoKCc7JykpIHtcbiAgICAgICAgICAgIGlmICghbWF0Y2goJ30nKSAmJiBsb29rYWhlYWQudHlwZSAhPT0gVG9rZW4uRU9GKSB7XG4gICAgICAgICAgICAgICAgYXJndW1lbnQgPSBwYXJzZUV4cHJlc3Npb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hSZXR1cm5TdGF0ZW1lbnQoYXJndW1lbnQpO1xuICAgIH1cblxuICAgIC8vIDEyLjEwIFRoZSB3aXRoIHN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VXaXRoU3RhdGVtZW50KG5vZGUpIHtcbiAgICAgICAgdmFyIG9iamVjdCwgYm9keTtcblxuICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLlN0cmljdE1vZGVXaXRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ3dpdGgnKTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICBvYmplY3QgPSBwYXJzZUV4cHJlc3Npb24oKTtcblxuICAgICAgICBleHBlY3QoJyknKTtcblxuICAgICAgICBib2R5ID0gcGFyc2VTdGF0ZW1lbnQoKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hXaXRoU3RhdGVtZW50KG9iamVjdCwgYm9keSk7XG4gICAgfVxuXG4gICAgLy8gMTIuMTAgVGhlIHN3aXRoIHN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VTd2l0Y2hDYXNlKCkge1xuICAgICAgICB2YXIgdGVzdCwgY29uc2VxdWVudCA9IFtdLCBzdGF0ZW1lbnQsIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ2RlZmF1bHQnKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICB0ZXN0ID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cGVjdEtleXdvcmQoJ2Nhc2UnKTtcbiAgICAgICAgICAgIHRlc3QgPSBwYXJzZUV4cHJlc3Npb24oKTtcbiAgICAgICAgfVxuICAgICAgICBleHBlY3QoJzonKTtcblxuICAgICAgICB3aGlsZSAoc3RhcnRJbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKG1hdGNoKCd9JykgfHwgbWF0Y2hLZXl3b3JkKCdkZWZhdWx0JykgfHwgbWF0Y2hLZXl3b3JkKCdjYXNlJykpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YXRlbWVudCA9IHBhcnNlU3RhdGVtZW50TGlzdEl0ZW0oKTtcbiAgICAgICAgICAgIGNvbnNlcXVlbnQucHVzaChzdGF0ZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoU3dpdGNoQ2FzZSh0ZXN0LCBjb25zZXF1ZW50KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZVN3aXRjaFN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIHZhciBkaXNjcmltaW5hbnQsIGNhc2VzLCBjbGF1c2UsIG9sZEluU3dpdGNoLCBkZWZhdWx0Rm91bmQ7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnc3dpdGNoJyk7XG5cbiAgICAgICAgZXhwZWN0KCcoJyk7XG5cbiAgICAgICAgZGlzY3JpbWluYW50ID0gcGFyc2VFeHByZXNzaW9uKCk7XG5cbiAgICAgICAgZXhwZWN0KCcpJyk7XG5cbiAgICAgICAgZXhwZWN0KCd7Jyk7XG5cbiAgICAgICAgY2FzZXMgPSBbXTtcblxuICAgICAgICBpZiAobWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hTd2l0Y2hTdGF0ZW1lbnQoZGlzY3JpbWluYW50LCBjYXNlcyk7XG4gICAgICAgIH1cblxuICAgICAgICBvbGRJblN3aXRjaCA9IHN0YXRlLmluU3dpdGNoO1xuICAgICAgICBzdGF0ZS5pblN3aXRjaCA9IHRydWU7XG4gICAgICAgIGRlZmF1bHRGb3VuZCA9IGZhbHNlO1xuXG4gICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2xhdXNlID0gcGFyc2VTd2l0Y2hDYXNlKCk7XG4gICAgICAgICAgICBpZiAoY2xhdXNlLnRlc3QgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGVmYXVsdEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuTXVsdGlwbGVEZWZhdWx0c0luU3dpdGNoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdEZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2VzLnB1c2goY2xhdXNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRlLmluU3dpdGNoID0gb2xkSW5Td2l0Y2g7XG5cbiAgICAgICAgZXhwZWN0KCd9Jyk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoU3dpdGNoU3RhdGVtZW50KGRpc2NyaW1pbmFudCwgY2FzZXMpO1xuICAgIH1cblxuICAgIC8vIDEyLjEzIFRoZSB0aHJvdyBzdGF0ZW1lbnRcblxuICAgIGZ1bmN0aW9uIHBhcnNlVGhyb3dTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgYXJndW1lbnQ7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgndGhyb3cnKTtcblxuICAgICAgICBpZiAoaGFzTGluZVRlcm1pbmF0b3IpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuTmV3bGluZUFmdGVyVGhyb3cpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXJndW1lbnQgPSBwYXJzZUV4cHJlc3Npb24oKTtcblxuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoVGhyb3dTdGF0ZW1lbnQoYXJndW1lbnQpO1xuICAgIH1cblxuICAgIC8vIDEyLjE0IFRoZSB0cnkgc3RhdGVtZW50XG5cbiAgICBmdW5jdGlvbiBwYXJzZUNhdGNoQ2xhdXNlKCkge1xuICAgICAgICB2YXIgcGFyYW0sIGJvZHksIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ2NhdGNoJyk7XG5cbiAgICAgICAgZXhwZWN0KCcoJyk7XG4gICAgICAgIGlmIChtYXRjaCgnKScpKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihsb29rYWhlYWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcGFyYW0gPSBwYXJzZVBhdHRlcm4oKTtcblxuICAgICAgICAvLyAxMi4xNC4xXG4gICAgICAgIGlmIChzdHJpY3QgJiYgaXNSZXN0cmljdGVkV29yZChwYXJhbS5uYW1lKSkge1xuICAgICAgICAgICAgdG9sZXJhdGVFcnJvcihNZXNzYWdlcy5TdHJpY3RDYXRjaFZhcmlhYmxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV4cGVjdCgnKScpO1xuICAgICAgICBib2R5ID0gcGFyc2VCbG9jaygpO1xuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hDYXRjaENsYXVzZShwYXJhbSwgYm9keSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VUcnlTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgYmxvY2ssIGhhbmRsZXIgPSBudWxsLCBmaW5hbGl6ZXIgPSBudWxsO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ3RyeScpO1xuXG4gICAgICAgIGJsb2NrID0gcGFyc2VCbG9jaygpO1xuXG4gICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ2NhdGNoJykpIHtcbiAgICAgICAgICAgIGhhbmRsZXIgPSBwYXJzZUNhdGNoQ2xhdXNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdmaW5hbGx5JykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgZmluYWxpemVyID0gcGFyc2VCbG9jaygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFoYW5kbGVyICYmICFmaW5hbGl6ZXIpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuTm9DYXRjaE9yRmluYWxseSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hUcnlTdGF0ZW1lbnQoYmxvY2ssIGhhbmRsZXIsIGZpbmFsaXplcik7XG4gICAgfVxuXG4gICAgLy8gMTIuMTUgVGhlIGRlYnVnZ2VyIHN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VEZWJ1Z2dlclN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ2RlYnVnZ2VyJyk7XG5cbiAgICAgICAgY29uc3VtZVNlbWljb2xvbigpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaERlYnVnZ2VyU3RhdGVtZW50KCk7XG4gICAgfVxuXG4gICAgLy8gMTIgU3RhdGVtZW50c1xuXG4gICAgZnVuY3Rpb24gcGFyc2VTdGF0ZW1lbnQoKSB7XG4gICAgICAgIHZhciB0eXBlID0gbG9va2FoZWFkLnR5cGUsXG4gICAgICAgICAgICBleHByLFxuICAgICAgICAgICAgbGFiZWxlZEJvZHksXG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICBub2RlO1xuXG4gICAgICAgIGlmICh0eXBlID09PSBUb2tlbi5FT0YpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZSA9PT0gVG9rZW4uUHVuY3R1YXRvciAmJiBsb29rYWhlYWQudmFsdWUgPT09ICd7Jykge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlQmxvY2soKTtcbiAgICAgICAgfVxuICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gdHJ1ZTtcbiAgICAgICAgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgaWYgKHR5cGUgPT09IFRva2VuLlB1bmN0dWF0b3IpIHtcbiAgICAgICAgICAgIHN3aXRjaCAobG9va2FoZWFkLnZhbHVlKSB7XG4gICAgICAgICAgICBjYXNlICc7JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VFbXB0eVN0YXRlbWVudChub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJygnOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUV4cHJlc3Npb25TdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFRva2VuLktleXdvcmQpIHtcbiAgICAgICAgICAgIHN3aXRjaCAobG9va2FoZWFkLnZhbHVlKSB7XG4gICAgICAgICAgICBjYXNlICdicmVhayc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlQnJlYWtTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdjb250aW51ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ29udGludWVTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdkZWJ1Z2dlcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlRGVidWdnZXJTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdkbyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlRG9XaGlsZVN0YXRlbWVudChub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ2Zvcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlRm9yU3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUZ1bmN0aW9uRGVjbGFyYXRpb24obm9kZSk7XG4gICAgICAgICAgICBjYXNlICdpZic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSWZTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdyZXR1cm4nOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVJldHVyblN0YXRlbWVudChub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ3N3aXRjaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlU3dpdGNoU3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAndGhyb3cnOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVRocm93U3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAndHJ5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VUcnlTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICd2YXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVZhcmlhYmxlU3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnd2hpbGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVdoaWxlU3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnd2l0aCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlV2l0aFN0YXRlbWVudChub2RlKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBleHByID0gcGFyc2VFeHByZXNzaW9uKCk7XG5cbiAgICAgICAgLy8gMTIuMTIgTGFiZWxsZWQgU3RhdGVtZW50c1xuICAgICAgICBpZiAoKGV4cHIudHlwZSA9PT0gU3ludGF4LklkZW50aWZpZXIpICYmIG1hdGNoKCc6JykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuXG4gICAgICAgICAgICBrZXkgPSAnJCcgKyBleHByLm5hbWU7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHN0YXRlLmxhYmVsU2V0LCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5SZWRlY2xhcmF0aW9uLCAnTGFiZWwnLCBleHByLm5hbWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdGF0ZS5sYWJlbFNldFtrZXldID0gdHJ1ZTtcbiAgICAgICAgICAgIGxhYmVsZWRCb2R5ID0gcGFyc2VTdGF0ZW1lbnQoKTtcbiAgICAgICAgICAgIGRlbGV0ZSBzdGF0ZS5sYWJlbFNldFtrZXldO1xuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoTGFiZWxlZFN0YXRlbWVudChleHByLCBsYWJlbGVkQm9keSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwcmVzc2lvblN0YXRlbWVudChleHByKTtcbiAgICB9XG5cbiAgICAvLyAxMyBGdW5jdGlvbiBEZWZpbml0aW9uXG5cbiAgICBmdW5jdGlvbiBwYXJzZUZ1bmN0aW9uU291cmNlRWxlbWVudHMoKSB7XG4gICAgICAgIHZhciBzdGF0ZW1lbnQsIGJvZHkgPSBbXSwgdG9rZW4sIGRpcmVjdGl2ZSwgZmlyc3RSZXN0cmljdGVkLFxuICAgICAgICAgICAgb2xkTGFiZWxTZXQsIG9sZEluSXRlcmF0aW9uLCBvbGRJblN3aXRjaCwgb2xkSW5GdW5jdGlvbkJvZHksIG9sZFBhcmVudGhlc2lzQ291bnQsXG4gICAgICAgICAgICBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBleHBlY3QoJ3snKTtcblxuICAgICAgICB3aGlsZSAoc3RhcnRJbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5TdHJpbmdMaXRlcmFsKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0b2tlbiA9IGxvb2thaGVhZDtcblxuICAgICAgICAgICAgc3RhdGVtZW50ID0gcGFyc2VTdGF0ZW1lbnRMaXN0SXRlbSgpO1xuICAgICAgICAgICAgYm9keS5wdXNoKHN0YXRlbWVudCk7XG4gICAgICAgICAgICBpZiAoc3RhdGVtZW50LmV4cHJlc3Npb24udHlwZSAhPT0gU3ludGF4LkxpdGVyYWwpIHtcbiAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIG5vdCBkaXJlY3RpdmVcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRpcmVjdGl2ZSA9IHNvdXJjZS5zbGljZSh0b2tlbi5zdGFydCArIDEsIHRva2VuLmVuZCAtIDEpO1xuICAgICAgICAgICAgaWYgKGRpcmVjdGl2ZSA9PT0gJ3VzZSBzdHJpY3QnKSB7XG4gICAgICAgICAgICAgICAgc3RyaWN0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoZmlyc3RSZXN0cmljdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKGZpcnN0UmVzdHJpY3RlZCwgTWVzc2FnZXMuU3RyaWN0T2N0YWxMaXRlcmFsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghZmlyc3RSZXN0cmljdGVkICYmIHRva2VuLm9jdGFsKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0UmVzdHJpY3RlZCA9IHRva2VuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG9sZExhYmVsU2V0ID0gc3RhdGUubGFiZWxTZXQ7XG4gICAgICAgIG9sZEluSXRlcmF0aW9uID0gc3RhdGUuaW5JdGVyYXRpb247XG4gICAgICAgIG9sZEluU3dpdGNoID0gc3RhdGUuaW5Td2l0Y2g7XG4gICAgICAgIG9sZEluRnVuY3Rpb25Cb2R5ID0gc3RhdGUuaW5GdW5jdGlvbkJvZHk7XG4gICAgICAgIG9sZFBhcmVudGhlc2lzQ291bnQgPSBzdGF0ZS5wYXJlbnRoZXNpemVkQ291bnQ7XG5cbiAgICAgICAgc3RhdGUubGFiZWxTZXQgPSB7fTtcbiAgICAgICAgc3RhdGUuaW5JdGVyYXRpb24gPSBmYWxzZTtcbiAgICAgICAgc3RhdGUuaW5Td2l0Y2ggPSBmYWxzZTtcbiAgICAgICAgc3RhdGUuaW5GdW5jdGlvbkJvZHkgPSB0cnVlO1xuICAgICAgICBzdGF0ZS5wYXJlbnRoZXNpemVkQ291bnQgPSAwO1xuXG4gICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYm9keS5wdXNoKHBhcnNlU3RhdGVtZW50TGlzdEl0ZW0oKSk7XG4gICAgICAgIH1cblxuICAgICAgICBleHBlY3QoJ30nKTtcblxuICAgICAgICBzdGF0ZS5sYWJlbFNldCA9IG9sZExhYmVsU2V0O1xuICAgICAgICBzdGF0ZS5pbkl0ZXJhdGlvbiA9IG9sZEluSXRlcmF0aW9uO1xuICAgICAgICBzdGF0ZS5pblN3aXRjaCA9IG9sZEluU3dpdGNoO1xuICAgICAgICBzdGF0ZS5pbkZ1bmN0aW9uQm9keSA9IG9sZEluRnVuY3Rpb25Cb2R5O1xuICAgICAgICBzdGF0ZS5wYXJlbnRoZXNpemVkQ291bnQgPSBvbGRQYXJlbnRoZXNpc0NvdW50O1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEJsb2NrU3RhdGVtZW50KGJvZHkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlUGFyYW0ob3B0aW9ucywgcGFyYW0sIG5hbWUpIHtcbiAgICAgICAgdmFyIGtleSA9ICckJyArIG5hbWU7XG4gICAgICAgIGlmIChzdHJpY3QpIHtcbiAgICAgICAgICAgIGlmIChpc1Jlc3RyaWN0ZWRXb3JkKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5zdHJpY3RlZCA9IHBhcmFtO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubWVzc2FnZSA9IE1lc3NhZ2VzLlN0cmljdFBhcmFtTmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucy5wYXJhbVNldCwga2V5KSkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuc3RyaWN0ZWQgPSBwYXJhbTtcbiAgICAgICAgICAgICAgICBvcHRpb25zLm1lc3NhZ2UgPSBNZXNzYWdlcy5TdHJpY3RQYXJhbUR1cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMuZmlyc3RSZXN0cmljdGVkKSB7XG4gICAgICAgICAgICBpZiAoaXNSZXN0cmljdGVkV29yZChuYW1lKSkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuZmlyc3RSZXN0cmljdGVkID0gcGFyYW07XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5tZXNzYWdlID0gTWVzc2FnZXMuU3RyaWN0UGFyYW1OYW1lO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc1N0cmljdE1vZGVSZXNlcnZlZFdvcmQobmFtZSkpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmZpcnN0UmVzdHJpY3RlZCA9IHBhcmFtO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubWVzc2FnZSA9IE1lc3NhZ2VzLlN0cmljdFJlc2VydmVkV29yZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9wdGlvbnMucGFyYW1TZXQsIGtleSkpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmZpcnN0UmVzdHJpY3RlZCA9IHBhcmFtO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubWVzc2FnZSA9IE1lc3NhZ2VzLlN0cmljdFBhcmFtRHVwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvcHRpb25zLnBhcmFtU2V0W2tleV0gPSB0cnVlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlUGFyYW0ob3B0aW9ucykge1xuICAgICAgICB2YXIgdG9rZW4sIHBhcmFtLCBkZWY7XG5cbiAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgIGlmICh0b2tlbi52YWx1ZSA9PT0gJy4uLicpIHtcbiAgICAgICAgICAgIHBhcmFtID0gcGFyc2VSZXN0RWxlbWVudCgpO1xuICAgICAgICAgICAgdmFsaWRhdGVQYXJhbShvcHRpb25zLCBwYXJhbS5hcmd1bWVudCwgcGFyYW0uYXJndW1lbnQubmFtZSk7XG4gICAgICAgICAgICBvcHRpb25zLnBhcmFtcy5wdXNoKHBhcmFtKTtcbiAgICAgICAgICAgIG9wdGlvbnMuZGVmYXVsdHMucHVzaChudWxsKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcmFtID0gcGFyc2VQYXR0ZXJuV2l0aERlZmF1bHQoKTtcbiAgICAgICAgdmFsaWRhdGVQYXJhbShvcHRpb25zLCB0b2tlbiwgdG9rZW4udmFsdWUpO1xuXG4gICAgICAgIGlmIChwYXJhbS50eXBlID09PSBTeW50YXguQXNzaWdubWVudFBhdHRlcm4pIHtcbiAgICAgICAgICAgIGRlZiA9IHBhcmFtLnJpZ2h0O1xuICAgICAgICAgICAgcGFyYW0gPSBwYXJhbS5sZWZ0O1xuICAgICAgICAgICAgKytvcHRpb25zLmRlZmF1bHRDb3VudDtcbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnMucGFyYW1zLnB1c2gocGFyYW0pO1xuICAgICAgICBvcHRpb25zLmRlZmF1bHRzLnB1c2goZGVmKTtcblxuICAgICAgICByZXR1cm4gIW1hdGNoKCcpJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VQYXJhbXMoZmlyc3RSZXN0cmljdGVkKSB7XG4gICAgICAgIHZhciBvcHRpb25zO1xuXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBwYXJhbXM6IFtdLFxuICAgICAgICAgICAgZGVmYXVsdENvdW50OiAwLFxuICAgICAgICAgICAgZGVmYXVsdHM6IFtdLFxuICAgICAgICAgICAgZmlyc3RSZXN0cmljdGVkOiBmaXJzdFJlc3RyaWN0ZWRcbiAgICAgICAgfTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICBpZiAoIW1hdGNoKCcpJykpIHtcbiAgICAgICAgICAgIG9wdGlvbnMucGFyYW1TZXQgPSB7fTtcbiAgICAgICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXJzZVBhcmFtKG9wdGlvbnMpKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBleHBlY3QoJywnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGV4cGVjdCgnKScpO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmRlZmF1bHRDb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgb3B0aW9ucy5kZWZhdWx0cyA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhcmFtczogb3B0aW9ucy5wYXJhbXMsXG4gICAgICAgICAgICBkZWZhdWx0czogb3B0aW9ucy5kZWZhdWx0cyxcbiAgICAgICAgICAgIHN0cmljdGVkOiBvcHRpb25zLnN0cmljdGVkLFxuICAgICAgICAgICAgZmlyc3RSZXN0cmljdGVkOiBvcHRpb25zLmZpcnN0UmVzdHJpY3RlZCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IG9wdGlvbnMubWVzc2FnZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlRnVuY3Rpb25EZWNsYXJhdGlvbihub2RlLCBpZGVudGlmaWVySXNPcHRpb25hbCkge1xuICAgICAgICB2YXIgaWQgPSBudWxsLCBwYXJhbXMgPSBbXSwgZGVmYXVsdHMgPSBbXSwgYm9keSwgdG9rZW4sIHN0cmljdGVkLCB0bXAsIGZpcnN0UmVzdHJpY3RlZCwgbWVzc2FnZSwgcHJldmlvdXNTdHJpY3Q7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnZnVuY3Rpb24nKTtcbiAgICAgICAgaWYgKCFpZGVudGlmaWVySXNPcHRpb25hbCB8fCAhbWF0Y2goJygnKSkge1xuICAgICAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICBpZCA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG4gICAgICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzUmVzdHJpY3RlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKHRva2VuLCBNZXNzYWdlcy5TdHJpY3RGdW5jdGlvbk5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzUmVzdHJpY3RlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0UmVzdHJpY3RlZCA9IHRva2VuO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gTWVzc2FnZXMuU3RyaWN0RnVuY3Rpb25OYW1lO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNTdHJpY3RNb2RlUmVzZXJ2ZWRXb3JkKHRva2VuLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBmaXJzdFJlc3RyaWN0ZWQgPSB0b2tlbjtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IE1lc3NhZ2VzLlN0cmljdFJlc2VydmVkV29yZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0bXAgPSBwYXJzZVBhcmFtcyhmaXJzdFJlc3RyaWN0ZWQpO1xuICAgICAgICBwYXJhbXMgPSB0bXAucGFyYW1zO1xuICAgICAgICBkZWZhdWx0cyA9IHRtcC5kZWZhdWx0cztcbiAgICAgICAgc3RyaWN0ZWQgPSB0bXAuc3RyaWN0ZWQ7XG4gICAgICAgIGZpcnN0UmVzdHJpY3RlZCA9IHRtcC5maXJzdFJlc3RyaWN0ZWQ7XG4gICAgICAgIGlmICh0bXAubWVzc2FnZSkge1xuICAgICAgICAgICAgbWVzc2FnZSA9IHRtcC5tZXNzYWdlO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJldmlvdXNTdHJpY3QgPSBzdHJpY3Q7XG4gICAgICAgIGJvZHkgPSBwYXJzZUZ1bmN0aW9uU291cmNlRWxlbWVudHMoKTtcbiAgICAgICAgaWYgKHN0cmljdCAmJiBmaXJzdFJlc3RyaWN0ZWQpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGZpcnN0UmVzdHJpY3RlZCwgbWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0cmljdCAmJiBzdHJpY3RlZCkge1xuICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4oc3RyaWN0ZWQsIG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIHN0cmljdCA9IHByZXZpb3VzU3RyaWN0O1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEZ1bmN0aW9uRGVjbGFyYXRpb24oaWQsIHBhcmFtcywgZGVmYXVsdHMsIGJvZHkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlRnVuY3Rpb25FeHByZXNzaW9uKCkge1xuICAgICAgICB2YXIgdG9rZW4sIGlkID0gbnVsbCwgc3RyaWN0ZWQsIGZpcnN0UmVzdHJpY3RlZCwgbWVzc2FnZSwgdG1wLFxuICAgICAgICAgICAgcGFyYW1zID0gW10sIGRlZmF1bHRzID0gW10sIGJvZHksIHByZXZpb3VzU3RyaWN0LCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdmdW5jdGlvbicpO1xuXG4gICAgICAgIGlmICghbWF0Y2goJygnKSkge1xuICAgICAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICBpZCA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG4gICAgICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzUmVzdHJpY3RlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKHRva2VuLCBNZXNzYWdlcy5TdHJpY3RGdW5jdGlvbk5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzUmVzdHJpY3RlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0UmVzdHJpY3RlZCA9IHRva2VuO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gTWVzc2FnZXMuU3RyaWN0RnVuY3Rpb25OYW1lO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNTdHJpY3RNb2RlUmVzZXJ2ZWRXb3JkKHRva2VuLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBmaXJzdFJlc3RyaWN0ZWQgPSB0b2tlbjtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IE1lc3NhZ2VzLlN0cmljdFJlc2VydmVkV29yZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0bXAgPSBwYXJzZVBhcmFtcyhmaXJzdFJlc3RyaWN0ZWQpO1xuICAgICAgICBwYXJhbXMgPSB0bXAucGFyYW1zO1xuICAgICAgICBkZWZhdWx0cyA9IHRtcC5kZWZhdWx0cztcbiAgICAgICAgc3RyaWN0ZWQgPSB0bXAuc3RyaWN0ZWQ7XG4gICAgICAgIGZpcnN0UmVzdHJpY3RlZCA9IHRtcC5maXJzdFJlc3RyaWN0ZWQ7XG4gICAgICAgIGlmICh0bXAubWVzc2FnZSkge1xuICAgICAgICAgICAgbWVzc2FnZSA9IHRtcC5tZXNzYWdlO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJldmlvdXNTdHJpY3QgPSBzdHJpY3Q7XG4gICAgICAgIGJvZHkgPSBwYXJzZUZ1bmN0aW9uU291cmNlRWxlbWVudHMoKTtcbiAgICAgICAgaWYgKHN0cmljdCAmJiBmaXJzdFJlc3RyaWN0ZWQpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGZpcnN0UmVzdHJpY3RlZCwgbWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0cmljdCAmJiBzdHJpY3RlZCkge1xuICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4oc3RyaWN0ZWQsIG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIHN0cmljdCA9IHByZXZpb3VzU3RyaWN0O1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEZ1bmN0aW9uRXhwcmVzc2lvbihpZCwgcGFyYW1zLCBkZWZhdWx0cywgYm9keSk7XG4gICAgfVxuXG5cbiAgICBmdW5jdGlvbiBwYXJzZUNsYXNzQm9keSgpIHtcbiAgICAgICAgdmFyIGNsYXNzQm9keSwgdG9rZW4sIGlzU3RhdGljLCBoYXNDb25zdHJ1Y3RvciA9IGZhbHNlLCBib2R5LCBtZXRob2QsIGNvbXB1dGVkLCBrZXk7XG5cbiAgICAgICAgY2xhc3NCb2R5ID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBleHBlY3QoJ3snKTtcbiAgICAgICAgYm9keSA9IFtdO1xuICAgICAgICB3aGlsZSAoIW1hdGNoKCd9JykpIHtcbiAgICAgICAgICAgIGlmIChtYXRjaCgnOycpKSB7XG4gICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1ldGhvZCA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICAgICAgaXNTdGF0aWMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb21wdXRlZCA9IG1hdGNoKCdbJyk7XG4gICAgICAgICAgICAgICAga2V5ID0gcGFyc2VPYmplY3RQcm9wZXJ0eUtleSgpO1xuICAgICAgICAgICAgICAgIGlmIChrZXkubmFtZSA9PT0gJ3N0YXRpYycgJiYgbG9va2FoZWFkUHJvcGVydHlOYW1lKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICAgICAgICAgIGlzU3RhdGljID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgY29tcHV0ZWQgPSBtYXRjaCgnWycpO1xuICAgICAgICAgICAgICAgICAgICBrZXkgPSBwYXJzZU9iamVjdFByb3BlcnR5S2V5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG1ldGhvZCA9IHRyeVBhcnNlTWV0aG9kRGVmaW5pdGlvbih0b2tlbiwga2V5LCBjb21wdXRlZCwgbWV0aG9kKTtcbiAgICAgICAgICAgICAgICBpZiAobWV0aG9kKSB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZFsnc3RhdGljJ10gPSBpc1N0YXRpYztcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGhvZC5raW5kID09PSAnaW5pdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC5raW5kID0gJ21ldGhvZCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1N0YXRpYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtZXRob2QuY29tcHV0ZWQgJiYgKG1ldGhvZC5rZXkubmFtZSB8fCBtZXRob2Qua2V5LnZhbHVlLnRvU3RyaW5nKCkpID09PSAnY29uc3RydWN0b3InKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGhvZC5raW5kICE9PSAnbWV0aG9kJyB8fCAhbWV0aG9kLm1ldGhvZCB8fCBtZXRob2QudmFsdWUuZ2VuZXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKHRva2VuLCBNZXNzYWdlcy5Db25zdHJ1Y3RvclNwZWNpYWxNZXRob2QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzQ29uc3RydWN0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4odG9rZW4sIE1lc3NhZ2VzLkR1cGxpY2F0ZUNvbnN0cnVjdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNDb25zdHJ1Y3RvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC5raW5kID0gJ2NvbnN0cnVjdG9yJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbWV0aG9kLmNvbXB1dGVkICYmIChtZXRob2Qua2V5Lm5hbWUgfHwgbWV0aG9kLmtleS52YWx1ZS50b1N0cmluZygpKSA9PT0gJ3Byb3RvdHlwZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbih0b2tlbiwgTWVzc2FnZXMuU3RhdGljUHJvdG90eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBtZXRob2QudHlwZSA9IFN5bnRheC5NZXRob2REZWZpbml0aW9uO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgbWV0aG9kLm1ldGhvZDtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG1ldGhvZC5zaG9ydGhhbmQ7XG4gICAgICAgICAgICAgICAgICAgIGJvZHkucHVzaChtZXRob2QpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxleCgpO1xuICAgICAgICByZXR1cm4gY2xhc3NCb2R5LmZpbmlzaENsYXNzQm9keShib2R5KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUNsYXNzRGVjbGFyYXRpb24oaWRlbnRpZmllcklzT3B0aW9uYWwpIHtcbiAgICAgICAgdmFyIGlkID0gbnVsbCwgc3VwZXJDbGFzcyA9IG51bGwsIGNsYXNzTm9kZSA9IG5ldyBOb2RlKCksIGNsYXNzQm9keSwgcHJldmlvdXNTdHJpY3QgPSBzdHJpY3Q7XG4gICAgICAgIHN0cmljdCA9IHRydWU7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnY2xhc3MnKTtcblxuICAgICAgICBpZiAoIWlkZW50aWZpZXJJc09wdGlvbmFsIHx8IGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBpZCA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdleHRlbmRzJykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgc3VwZXJDbGFzcyA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VMZWZ0SGFuZFNpZGVFeHByZXNzaW9uQWxsb3dDYWxsKTtcbiAgICAgICAgfVxuICAgICAgICBjbGFzc0JvZHkgPSBwYXJzZUNsYXNzQm9keSgpO1xuICAgICAgICBzdHJpY3QgPSBwcmV2aW91c1N0cmljdDtcblxuICAgICAgICByZXR1cm4gY2xhc3NOb2RlLmZpbmlzaENsYXNzRGVjbGFyYXRpb24oaWQsIHN1cGVyQ2xhc3MsIGNsYXNzQm9keSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VDbGFzc0V4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciBpZCA9IG51bGwsIHN1cGVyQ2xhc3MgPSBudWxsLCBjbGFzc05vZGUgPSBuZXcgTm9kZSgpLCBjbGFzc0JvZHksIHByZXZpb3VzU3RyaWN0ID0gc3RyaWN0O1xuICAgICAgICBzdHJpY3QgPSB0cnVlO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ2NsYXNzJyk7XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBpZCA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdleHRlbmRzJykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgc3VwZXJDbGFzcyA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VMZWZ0SGFuZFNpZGVFeHByZXNzaW9uQWxsb3dDYWxsKTtcbiAgICAgICAgfVxuICAgICAgICBjbGFzc0JvZHkgPSBwYXJzZUNsYXNzQm9keSgpO1xuICAgICAgICBzdHJpY3QgPSBwcmV2aW91c1N0cmljdDtcblxuICAgICAgICByZXR1cm4gY2xhc3NOb2RlLmZpbmlzaENsYXNzRXhwcmVzc2lvbihpZCwgc3VwZXJDbGFzcywgY2xhc3NCb2R5KTtcbiAgICB9XG5cbiAgICAvLyBNb2R1bGVzIGdyYW1tYXIgZnJvbTpcbiAgICAvLyBwZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWxcblxuICAgIGZ1bmN0aW9uIHBhcnNlTW9kdWxlU3BlY2lmaWVyKCkge1xuICAgICAgICB2YXIgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5TdHJpbmdMaXRlcmFsKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLkludmFsaWRNb2R1bGVTcGVjaWZpZXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaExpdGVyYWwobGV4KCkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlRXhwb3J0U3BlY2lmaWVyKCkge1xuICAgICAgICB2YXIgZXhwb3J0ZWQsIGxvY2FsLCBub2RlID0gbmV3IE5vZGUoKSwgZGVmO1xuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdkZWZhdWx0JykpIHtcbiAgICAgICAgICAgIC8vIGV4cG9ydCB7ZGVmYXVsdH0gZnJvbSAnc29tZXRoaW5nJztcbiAgICAgICAgICAgIGRlZiA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIGxvY2FsID0gZGVmLmZpbmlzaElkZW50aWZpZXIoJ2RlZmF1bHQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxvY2FsID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0Y2hDb250ZXh0dWFsS2V5d29yZCgnYXMnKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICBleHBvcnRlZCA9IHBhcnNlTm9uQ29tcHV0ZWRQcm9wZXJ0eSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEV4cG9ydFNwZWNpZmllcihsb2NhbCwgZXhwb3J0ZWQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlRXhwb3J0TmFtZWREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIHZhciBkZWNsYXJhdGlvbiA9IG51bGwsXG4gICAgICAgICAgICBpc0V4cG9ydEZyb21JZGVudGlmaWVyLFxuICAgICAgICAgICAgc3JjID0gbnVsbCwgc3BlY2lmaWVycyA9IFtdO1xuXG4gICAgICAgIC8vIG5vbi1kZWZhdWx0IGV4cG9ydFxuICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgPT09IFRva2VuLktleXdvcmQpIHtcbiAgICAgICAgICAgIC8vIGNvdmVyczpcbiAgICAgICAgICAgIC8vIGV4cG9ydCB2YXIgZiA9IDE7XG4gICAgICAgICAgICBzd2l0Y2ggKGxvb2thaGVhZC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2xldCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnY29uc3QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3Zhcic6XG4gICAgICAgICAgICAgICAgY2FzZSAnY2xhc3MnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICAgICAgICAgICAgICAgICAgZGVjbGFyYXRpb24gPSBwYXJzZVN0YXRlbWVudExpc3RJdGVtKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaEV4cG9ydE5hbWVkRGVjbGFyYXRpb24oZGVjbGFyYXRpb24sIHNwZWNpZmllcnMsIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZXhwZWN0KCd7Jyk7XG4gICAgICAgIGlmICghbWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIGlzRXhwb3J0RnJvbUlkZW50aWZpZXIgPSBpc0V4cG9ydEZyb21JZGVudGlmaWVyIHx8IG1hdGNoS2V5d29yZCgnZGVmYXVsdCcpO1xuICAgICAgICAgICAgICAgIHNwZWNpZmllcnMucHVzaChwYXJzZUV4cG9ydFNwZWNpZmllcigpKTtcbiAgICAgICAgICAgIH0gd2hpbGUgKG1hdGNoKCcsJykgJiYgbGV4KCkpO1xuICAgICAgICB9XG4gICAgICAgIGV4cGVjdCgnfScpO1xuXG4gICAgICAgIGlmIChtYXRjaENvbnRleHR1YWxLZXl3b3JkKCdmcm9tJykpIHtcbiAgICAgICAgICAgIC8vIGNvdmVyaW5nOlxuICAgICAgICAgICAgLy8gZXhwb3J0IHtkZWZhdWx0fSBmcm9tICdmb28nO1xuICAgICAgICAgICAgLy8gZXhwb3J0IHtmb299IGZyb20gJ2Zvbyc7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIHNyYyA9IHBhcnNlTW9kdWxlU3BlY2lmaWVyKCk7XG4gICAgICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNFeHBvcnRGcm9tSWRlbnRpZmllcikge1xuICAgICAgICAgICAgLy8gY292ZXJpbmc6XG4gICAgICAgICAgICAvLyBleHBvcnQge2RlZmF1bHR9OyAvLyBtaXNzaW5nIGZyb21DbGF1c2VcbiAgICAgICAgICAgIHRocm93RXJyb3IobG9va2FoZWFkLnZhbHVlID9cbiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZXMuVW5leHBlY3RlZFRva2VuIDogTWVzc2FnZXMuTWlzc2luZ0Zyb21DbGF1c2UsIGxvb2thaGVhZC52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBjb3ZlclxuICAgICAgICAgICAgLy8gZXhwb3J0IHtmb299O1xuICAgICAgICAgICAgY29uc3VtZVNlbWljb2xvbigpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEV4cG9ydE5hbWVkRGVjbGFyYXRpb24oZGVjbGFyYXRpb24sIHNwZWNpZmllcnMsIHNyYyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgICB2YXIgZGVjbGFyYXRpb24gPSBudWxsLFxuICAgICAgICAgICAgZXhwcmVzc2lvbiA9IG51bGw7XG5cbiAgICAgICAgLy8gY292ZXJzOlxuICAgICAgICAvLyBleHBvcnQgZGVmYXVsdCAuLi5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnZGVmYXVsdCcpO1xuXG4gICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ2Z1bmN0aW9uJykpIHtcbiAgICAgICAgICAgIC8vIGNvdmVyczpcbiAgICAgICAgICAgIC8vIGV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZvbyAoKSB7fVxuICAgICAgICAgICAgLy8gZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKCkge31cbiAgICAgICAgICAgIGRlY2xhcmF0aW9uID0gcGFyc2VGdW5jdGlvbkRlY2xhcmF0aW9uKG5ldyBOb2RlKCksIHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uKGRlY2xhcmF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdjbGFzcycpKSB7XG4gICAgICAgICAgICBkZWNsYXJhdGlvbiA9IHBhcnNlQ2xhc3NEZWNsYXJhdGlvbih0cnVlKTtcbiAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaEV4cG9ydERlZmF1bHREZWNsYXJhdGlvbihkZWNsYXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2hDb250ZXh0dWFsS2V5d29yZCgnZnJvbScpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLlVuZXhwZWN0ZWRUb2tlbiwgbG9va2FoZWFkLnZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNvdmVyczpcbiAgICAgICAgLy8gZXhwb3J0IGRlZmF1bHQge307XG4gICAgICAgIC8vIGV4cG9ydCBkZWZhdWx0IFtdO1xuICAgICAgICAvLyBleHBvcnQgZGVmYXVsdCAoMSArIDIpO1xuICAgICAgICBpZiAobWF0Y2goJ3snKSkge1xuICAgICAgICAgICAgZXhwcmVzc2lvbiA9IHBhcnNlT2JqZWN0SW5pdGlhbGlzZXIoKTtcbiAgICAgICAgfSBlbHNlIGlmIChtYXRjaCgnWycpKSB7XG4gICAgICAgICAgICBleHByZXNzaW9uID0gcGFyc2VBcnJheUluaXRpYWxpc2VyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBleHByZXNzaW9uID0gcGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uKGV4cHJlc3Npb24pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlRXhwb3J0QWxsRGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgICB2YXIgc3JjO1xuXG4gICAgICAgIC8vIGNvdmVyczpcbiAgICAgICAgLy8gZXhwb3J0ICogZnJvbSAnZm9vJztcbiAgICAgICAgZXhwZWN0KCcqJyk7XG4gICAgICAgIGlmICghbWF0Y2hDb250ZXh0dWFsS2V5d29yZCgnZnJvbScpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKGxvb2thaGVhZC52YWx1ZSA/XG4gICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VzLlVuZXhwZWN0ZWRUb2tlbiA6IE1lc3NhZ2VzLk1pc3NpbmdGcm9tQ2xhdXNlLCBsb29rYWhlYWQudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGxleCgpO1xuICAgICAgICBzcmMgPSBwYXJzZU1vZHVsZVNwZWNpZmllcigpO1xuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwb3J0QWxsRGVjbGFyYXRpb24oc3JjKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUV4cG9ydERlY2xhcmF0aW9uKCkge1xuICAgICAgICB2YXIgbm9kZSA9IG5ldyBOb2RlKCk7XG4gICAgICAgIGlmIChzdGF0ZS5pbkZ1bmN0aW9uQm9keSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5JbGxlZ2FsRXhwb3J0RGVjbGFyYXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnZXhwb3J0Jyk7XG5cbiAgICAgICAgaWYgKG1hdGNoS2V5d29yZCgnZGVmYXVsdCcpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24obm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1hdGNoKCcqJykpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUV4cG9ydEFsbERlY2xhcmF0aW9uKG5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJzZUV4cG9ydE5hbWVkRGVjbGFyYXRpb24obm9kZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VJbXBvcnRTcGVjaWZpZXIoKSB7XG4gICAgICAgIC8vIGltcG9ydCB7PGZvbyBhcyBiYXI+fSAuLi47XG4gICAgICAgIHZhciBsb2NhbCwgaW1wb3J0ZWQsIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGltcG9ydGVkID0gcGFyc2VOb25Db21wdXRlZFByb3BlcnR5KCk7XG4gICAgICAgIGlmIChtYXRjaENvbnRleHR1YWxLZXl3b3JkKCdhcycpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIGxvY2FsID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEltcG9ydFNwZWNpZmllcihsb2NhbCwgaW1wb3J0ZWQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlTmFtZWRJbXBvcnRzKCkge1xuICAgICAgICB2YXIgc3BlY2lmaWVycyA9IFtdO1xuICAgICAgICAvLyB7Zm9vLCBiYXIgYXMgYmFzfVxuICAgICAgICBleHBlY3QoJ3snKTtcbiAgICAgICAgaWYgKCFtYXRjaCgnfScpKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgc3BlY2lmaWVycy5wdXNoKHBhcnNlSW1wb3J0U3BlY2lmaWVyKCkpO1xuICAgICAgICAgICAgfSB3aGlsZSAobWF0Y2goJywnKSAmJiBsZXgoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwZWN0KCd9Jyk7XG4gICAgICAgIHJldHVybiBzcGVjaWZpZXJzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlSW1wb3J0RGVmYXVsdFNwZWNpZmllcigpIHtcbiAgICAgICAgLy8gaW1wb3J0IDxmb28+IC4uLjtcbiAgICAgICAgdmFyIGxvY2FsLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBsb2NhbCA9IHBhcnNlTm9uQ29tcHV0ZWRQcm9wZXJ0eSgpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEltcG9ydERlZmF1bHRTcGVjaWZpZXIobG9jYWwpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyKCkge1xuICAgICAgICAvLyBpbXBvcnQgPCogYXMgZm9vPiAuLi47XG4gICAgICAgIHZhciBsb2NhbCwgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgZXhwZWN0KCcqJyk7XG4gICAgICAgIGlmICghbWF0Y2hDb250ZXh0dWFsS2V5d29yZCgnYXMnKSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5Ob0FzQWZ0ZXJJbXBvcnROYW1lc3BhY2UpO1xuICAgICAgICB9XG4gICAgICAgIGxleCgpO1xuICAgICAgICBsb2NhbCA9IHBhcnNlTm9uQ29tcHV0ZWRQcm9wZXJ0eSgpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEltcG9ydE5hbWVzcGFjZVNwZWNpZmllcihsb2NhbCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VJbXBvcnREZWNsYXJhdGlvbigpIHtcbiAgICAgICAgdmFyIHNwZWNpZmllcnMsIHNyYywgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgaWYgKHN0YXRlLmluRnVuY3Rpb25Cb2R5KSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLklsbGVnYWxJbXBvcnREZWNsYXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdpbXBvcnQnKTtcbiAgICAgICAgc3BlY2lmaWVycyA9IFtdO1xuXG4gICAgICAgIGlmIChsb29rYWhlYWQudHlwZSA9PT0gVG9rZW4uU3RyaW5nTGl0ZXJhbCkge1xuICAgICAgICAgICAgLy8gY292ZXJzOlxuICAgICAgICAgICAgLy8gaW1wb3J0ICdmb28nO1xuICAgICAgICAgICAgc3JjID0gcGFyc2VNb2R1bGVTcGVjaWZpZXIoKTtcbiAgICAgICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcbiAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaEltcG9ydERlY2xhcmF0aW9uKHNwZWNpZmllcnMsIHNyYyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW1hdGNoS2V5d29yZCgnZGVmYXVsdCcpICYmIGlzSWRlbnRpZmllck5hbWUobG9va2FoZWFkKSkge1xuICAgICAgICAgICAgLy8gY292ZXJzOlxuICAgICAgICAgICAgLy8gaW1wb3J0IGZvb1xuICAgICAgICAgICAgLy8gaW1wb3J0IGZvbywgLi4uXG4gICAgICAgICAgICBzcGVjaWZpZXJzLnB1c2gocGFyc2VJbXBvcnREZWZhdWx0U3BlY2lmaWVyKCkpO1xuICAgICAgICAgICAgaWYgKG1hdGNoKCcsJykpIHtcbiAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0Y2goJyonKSkge1xuICAgICAgICAgICAgLy8gY292ZXJzOlxuICAgICAgICAgICAgLy8gaW1wb3J0IGZvbywgKiBhcyBmb29cbiAgICAgICAgICAgIC8vIGltcG9ydCAqIGFzIGZvb1xuICAgICAgICAgICAgc3BlY2lmaWVycy5wdXNoKHBhcnNlSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCd7JykpIHtcbiAgICAgICAgICAgIC8vIGNvdmVyczpcbiAgICAgICAgICAgIC8vIGltcG9ydCBmb28sIHtiYXJ9XG4gICAgICAgICAgICAvLyBpbXBvcnQge2Jhcn1cbiAgICAgICAgICAgIHNwZWNpZmllcnMgPSBzcGVjaWZpZXJzLmNvbmNhdChwYXJzZU5hbWVkSW1wb3J0cygpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbWF0Y2hDb250ZXh0dWFsS2V5d29yZCgnZnJvbScpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKGxvb2thaGVhZC52YWx1ZSA/XG4gICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VzLlVuZXhwZWN0ZWRUb2tlbiA6IE1lc3NhZ2VzLk1pc3NpbmdGcm9tQ2xhdXNlLCBsb29rYWhlYWQudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGxleCgpO1xuICAgICAgICBzcmMgPSBwYXJzZU1vZHVsZVNwZWNpZmllcigpO1xuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoSW1wb3J0RGVjbGFyYXRpb24oc3BlY2lmaWVycywgc3JjKTtcbiAgICB9XG5cbiAgICAvLyAxNCBQcm9ncmFtXG5cbiAgICBmdW5jdGlvbiBwYXJzZVNjcmlwdEJvZHkoKSB7XG4gICAgICAgIHZhciBzdGF0ZW1lbnQsIGJvZHkgPSBbXSwgdG9rZW4sIGRpcmVjdGl2ZSwgZmlyc3RSZXN0cmljdGVkO1xuXG4gICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICB0b2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgICAgIGlmICh0b2tlbi50eXBlICE9PSBUb2tlbi5TdHJpbmdMaXRlcmFsKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0YXRlbWVudCA9IHBhcnNlU3RhdGVtZW50TGlzdEl0ZW0oKTtcbiAgICAgICAgICAgIGJvZHkucHVzaChzdGF0ZW1lbnQpO1xuICAgICAgICAgICAgaWYgKHN0YXRlbWVudC5leHByZXNzaW9uLnR5cGUgIT09IFN5bnRheC5MaXRlcmFsKSB7XG4gICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBub3QgZGlyZWN0aXZlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkaXJlY3RpdmUgPSBzb3VyY2Uuc2xpY2UodG9rZW4uc3RhcnQgKyAxLCB0b2tlbi5lbmQgLSAxKTtcbiAgICAgICAgICAgIGlmIChkaXJlY3RpdmUgPT09ICd1c2Ugc3RyaWN0Jykge1xuICAgICAgICAgICAgICAgIHN0cmljdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKGZpcnN0UmVzdHJpY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbihmaXJzdFJlc3RyaWN0ZWQsIE1lc3NhZ2VzLlN0cmljdE9jdGFsTGl0ZXJhbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIWZpcnN0UmVzdHJpY3RlZCAmJiB0b2tlbi5vY3RhbCkge1xuICAgICAgICAgICAgICAgICAgICBmaXJzdFJlc3RyaWN0ZWQgPSB0b2tlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB3aGlsZSAoc3RhcnRJbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgc3RhdGVtZW50ID0gcGFyc2VTdGF0ZW1lbnRMaXN0SXRlbSgpO1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgICAgICBpZiAodHlwZW9mIHN0YXRlbWVudCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJvZHkucHVzaChzdGF0ZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBib2R5O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlUHJvZ3JhbSgpIHtcbiAgICAgICAgdmFyIGJvZHksIG5vZGU7XG5cbiAgICAgICAgcGVlaygpO1xuICAgICAgICBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBib2R5ID0gcGFyc2VTY3JpcHRCb2R5KCk7XG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaFByb2dyYW0oYm9keSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZmlsdGVyVG9rZW5Mb2NhdGlvbigpIHtcbiAgICAgICAgdmFyIGksIGVudHJ5LCB0b2tlbiwgdG9rZW5zID0gW107XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGV4dHJhLnRva2Vucy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgZW50cnkgPSBleHRyYS50b2tlbnNbaV07XG4gICAgICAgICAgICB0b2tlbiA9IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBlbnRyeS50eXBlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBlbnRyeS52YWx1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChlbnRyeS5yZWdleCkge1xuICAgICAgICAgICAgICAgIHRva2VuLnJlZ2V4ID0ge1xuICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuOiBlbnRyeS5yZWdleC5wYXR0ZXJuLFxuICAgICAgICAgICAgICAgICAgICBmbGFnczogZW50cnkucmVnZXguZmxhZ3NcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGV4dHJhLnJhbmdlKSB7XG4gICAgICAgICAgICAgICAgdG9rZW4ucmFuZ2UgPSBlbnRyeS5yYW5nZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChleHRyYS5sb2MpIHtcbiAgICAgICAgICAgICAgICB0b2tlbi5sb2MgPSBlbnRyeS5sb2M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0b2tlbnMucHVzaCh0b2tlbik7XG4gICAgICAgIH1cblxuICAgICAgICBleHRyYS50b2tlbnMgPSB0b2tlbnM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9rZW5pemUoY29kZSwgb3B0aW9ucykge1xuICAgICAgICB2YXIgdG9TdHJpbmcsXG4gICAgICAgICAgICB0b2tlbnM7XG5cbiAgICAgICAgdG9TdHJpbmcgPSBTdHJpbmc7XG4gICAgICAgIGlmICh0eXBlb2YgY29kZSAhPT0gJ3N0cmluZycgJiYgIShjb2RlIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgY29kZSA9IHRvU3RyaW5nKGNvZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgc291cmNlID0gY29kZTtcbiAgICAgICAgaW5kZXggPSAwO1xuICAgICAgICBsaW5lTnVtYmVyID0gKHNvdXJjZS5sZW5ndGggPiAwKSA/IDEgOiAwO1xuICAgICAgICBsaW5lU3RhcnQgPSAwO1xuICAgICAgICBzdGFydEluZGV4ID0gaW5kZXg7XG4gICAgICAgIHN0YXJ0TGluZU51bWJlciA9IGxpbmVOdW1iZXI7XG4gICAgICAgIHN0YXJ0TGluZVN0YXJ0ID0gbGluZVN0YXJ0O1xuICAgICAgICBsZW5ndGggPSBzb3VyY2UubGVuZ3RoO1xuICAgICAgICBsb29rYWhlYWQgPSBudWxsO1xuICAgICAgICBzdGF0ZSA9IHtcbiAgICAgICAgICAgIGFsbG93SW46IHRydWUsXG4gICAgICAgICAgICBsYWJlbFNldDoge30sXG4gICAgICAgICAgICBpbkZ1bmN0aW9uQm9keTogZmFsc2UsXG4gICAgICAgICAgICBpbkl0ZXJhdGlvbjogZmFsc2UsXG4gICAgICAgICAgICBpblN3aXRjaDogZmFsc2UsXG4gICAgICAgICAgICBsYXN0Q29tbWVudFN0YXJ0OiAtMSxcbiAgICAgICAgICAgIGN1cmx5U3RhY2s6IFtdXG4gICAgICAgIH07XG5cbiAgICAgICAgZXh0cmEgPSB7fTtcblxuICAgICAgICAvLyBPcHRpb25zIG1hdGNoaW5nLlxuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAgICAgICAvLyBPZiBjb3Vyc2Ugd2UgY29sbGVjdCB0b2tlbnMgaGVyZS5cbiAgICAgICAgb3B0aW9ucy50b2tlbnMgPSB0cnVlO1xuICAgICAgICBleHRyYS50b2tlbnMgPSBbXTtcbiAgICAgICAgZXh0cmEudG9rZW5pemUgPSB0cnVlO1xuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIHR3byBmaWVsZHMgYXJlIG5lY2Vzc2FyeSB0byBjb21wdXRlIHRoZSBSZWdleCB0b2tlbnMuXG4gICAgICAgIGV4dHJhLm9wZW5QYXJlblRva2VuID0gLTE7XG4gICAgICAgIGV4dHJhLm9wZW5DdXJseVRva2VuID0gLTE7XG5cbiAgICAgICAgZXh0cmEucmFuZ2UgPSAodHlwZW9mIG9wdGlvbnMucmFuZ2UgPT09ICdib29sZWFuJykgJiYgb3B0aW9ucy5yYW5nZTtcbiAgICAgICAgZXh0cmEubG9jID0gKHR5cGVvZiBvcHRpb25zLmxvYyA9PT0gJ2Jvb2xlYW4nKSAmJiBvcHRpb25zLmxvYztcblxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuY29tbWVudCA9PT0gJ2Jvb2xlYW4nICYmIG9wdGlvbnMuY29tbWVudCkge1xuICAgICAgICAgICAgZXh0cmEuY29tbWVudHMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMudG9sZXJhbnQgPT09ICdib29sZWFuJyAmJiBvcHRpb25zLnRvbGVyYW50KSB7XG4gICAgICAgICAgICBleHRyYS5lcnJvcnMgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBwZWVrKCk7XG4gICAgICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgPT09IFRva2VuLkVPRikge1xuICAgICAgICAgICAgICAgIHJldHVybiBleHRyYS50b2tlbnM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgd2hpbGUgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5FT0YpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChsZXhFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXh0cmEuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWNvcmRFcnJvcihsZXhFcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGJyZWFrIG9uIHRoZSBmaXJzdCBlcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gYXZvaWQgaW5maW5pdGUgbG9vcHMuXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGxleEVycm9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmaWx0ZXJUb2tlbkxvY2F0aW9uKCk7XG4gICAgICAgICAgICB0b2tlbnMgPSBleHRyYS50b2tlbnM7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhLmNvbW1lbnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHRva2Vucy5jb21tZW50cyA9IGV4dHJhLmNvbW1lbnRzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBleHRyYS5lcnJvcnMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgdG9rZW5zLmVycm9ycyA9IGV4dHJhLmVycm9ycztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGV4dHJhID0ge307XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRva2VucztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZShjb2RlLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBwcm9ncmFtLCB0b1N0cmluZztcblxuICAgICAgICB0b1N0cmluZyA9IFN0cmluZztcbiAgICAgICAgaWYgKHR5cGVvZiBjb2RlICE9PSAnc3RyaW5nJyAmJiAhKGNvZGUgaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICAgICAgICBjb2RlID0gdG9TdHJpbmcoY29kZSk7XG4gICAgICAgIH1cblxuICAgICAgICBzb3VyY2UgPSBjb2RlO1xuICAgICAgICBpbmRleCA9IDA7XG4gICAgICAgIGxpbmVOdW1iZXIgPSAoc291cmNlLmxlbmd0aCA+IDApID8gMSA6IDA7XG4gICAgICAgIGxpbmVTdGFydCA9IDA7XG4gICAgICAgIHN0YXJ0SW5kZXggPSBpbmRleDtcbiAgICAgICAgc3RhcnRMaW5lTnVtYmVyID0gbGluZU51bWJlcjtcbiAgICAgICAgc3RhcnRMaW5lU3RhcnQgPSBsaW5lU3RhcnQ7XG4gICAgICAgIGxlbmd0aCA9IHNvdXJjZS5sZW5ndGg7XG4gICAgICAgIGxvb2thaGVhZCA9IG51bGw7XG4gICAgICAgIHN0YXRlID0ge1xuICAgICAgICAgICAgYWxsb3dJbjogdHJ1ZSxcbiAgICAgICAgICAgIGxhYmVsU2V0OiB7fSxcbiAgICAgICAgICAgIGluRnVuY3Rpb25Cb2R5OiBmYWxzZSxcbiAgICAgICAgICAgIGluSXRlcmF0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgIGluU3dpdGNoOiBmYWxzZSxcbiAgICAgICAgICAgIGxhc3RDb21tZW50U3RhcnQ6IC0xLFxuICAgICAgICAgICAgY3VybHlTdGFjazogW11cbiAgICAgICAgfTtcbiAgICAgICAgc291cmNlVHlwZSA9ICdzY3JpcHQnO1xuICAgICAgICBzdHJpY3QgPSBmYWxzZTtcblxuICAgICAgICBleHRyYSA9IHt9O1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBleHRyYS5yYW5nZSA9ICh0eXBlb2Ygb3B0aW9ucy5yYW5nZSA9PT0gJ2Jvb2xlYW4nKSAmJiBvcHRpb25zLnJhbmdlO1xuICAgICAgICAgICAgZXh0cmEubG9jID0gKHR5cGVvZiBvcHRpb25zLmxvYyA9PT0gJ2Jvb2xlYW4nKSAmJiBvcHRpb25zLmxvYztcbiAgICAgICAgICAgIGV4dHJhLmF0dGFjaENvbW1lbnQgPSAodHlwZW9mIG9wdGlvbnMuYXR0YWNoQ29tbWVudCA9PT0gJ2Jvb2xlYW4nKSAmJiBvcHRpb25zLmF0dGFjaENvbW1lbnQ7XG5cbiAgICAgICAgICAgIGlmIChleHRyYS5sb2MgJiYgb3B0aW9ucy5zb3VyY2UgIT09IG51bGwgJiYgb3B0aW9ucy5zb3VyY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGV4dHJhLnNvdXJjZSA9IHRvU3RyaW5nKG9wdGlvbnMuc291cmNlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnRva2VucyA9PT0gJ2Jvb2xlYW4nICYmIG9wdGlvbnMudG9rZW5zKSB7XG4gICAgICAgICAgICAgICAgZXh0cmEudG9rZW5zID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuY29tbWVudCA9PT0gJ2Jvb2xlYW4nICYmIG9wdGlvbnMuY29tbWVudCkge1xuICAgICAgICAgICAgICAgIGV4dHJhLmNvbW1lbnRzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMudG9sZXJhbnQgPT09ICdib29sZWFuJyAmJiBvcHRpb25zLnRvbGVyYW50KSB7XG4gICAgICAgICAgICAgICAgZXh0cmEuZXJyb3JzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXh0cmEuYXR0YWNoQ29tbWVudCkge1xuICAgICAgICAgICAgICAgIGV4dHJhLnJhbmdlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBleHRyYS5jb21tZW50cyA9IFtdO1xuICAgICAgICAgICAgICAgIGV4dHJhLmJvdHRvbVJpZ2h0U3RhY2sgPSBbXTtcbiAgICAgICAgICAgICAgICBleHRyYS50cmFpbGluZ0NvbW1lbnRzID0gW107XG4gICAgICAgICAgICAgICAgZXh0cmEubGVhZGluZ0NvbW1lbnRzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5zb3VyY2VUeXBlID09PSAnbW9kdWxlJykge1xuICAgICAgICAgICAgICAgIC8vIHZlcnkgcmVzdHJpY3RpdmUgY29uZGl0aW9uIGZvciBub3dcbiAgICAgICAgICAgICAgICBzb3VyY2VUeXBlID0gb3B0aW9ucy5zb3VyY2VUeXBlO1xuICAgICAgICAgICAgICAgIHN0cmljdCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcHJvZ3JhbSA9IHBhcnNlUHJvZ3JhbSgpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBleHRyYS5jb21tZW50cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBwcm9ncmFtLmNvbW1lbnRzID0gZXh0cmEuY29tbWVudHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhLnRva2VucyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJUb2tlbkxvY2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgcHJvZ3JhbS50b2tlbnMgPSBleHRyYS50b2tlbnM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhLmVycm9ycyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBwcm9ncmFtLmVycm9ycyA9IGV4dHJhLmVycm9ycztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGV4dHJhID0ge307XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcHJvZ3JhbTtcbiAgICB9XG5cbiAgICAvLyBTeW5jIHdpdGggKi5qc29uIG1hbmlmZXN0cy5cbiAgICBleHBvcnRzLnZlcnNpb24gPSAnMi4yLjAnO1xuXG4gICAgZXhwb3J0cy50b2tlbml6ZSA9IHRva2VuaXplO1xuXG4gICAgZXhwb3J0cy5wYXJzZSA9IHBhcnNlO1xuXG4gICAgLy8gRGVlcCBjb3B5LlxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgZXhwb3J0cy5TeW50YXggPSAoZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbmFtZSwgdHlwZXMgPSB7fTtcblxuICAgICAgICBpZiAodHlwZW9mIE9iamVjdC5jcmVhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHR5cGVzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobmFtZSBpbiBTeW50YXgpIHtcbiAgICAgICAgICAgIGlmIChTeW50YXguaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgICAgICAgICB0eXBlc1tuYW1lXSA9IFN5bnRheFtuYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgT2JqZWN0LmZyZWV6ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgT2JqZWN0LmZyZWV6ZSh0eXBlcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHlwZXM7XG4gICAgfSgpKTtcblxufSkpO1xuLyogdmltOiBzZXQgc3c9NCB0cz00IGV0IHR3PTgwIDogKi9cbiIsInZhciBiYXNlSW5kZXhPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2Jhc2VJbmRleE9mJyksXG4gICAgYmluYXJ5SW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9iaW5hcnlJbmRleCcpO1xuXG4vKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1heCA9IE1hdGgubWF4O1xuXG4vKipcbiAqIEdldHMgdGhlIGluZGV4IGF0IHdoaWNoIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGB2YWx1ZWAgaXMgZm91bmQgaW4gYGFycmF5YFxuICogdXNpbmcgW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy4gSWYgYGZyb21JbmRleGAgaXMgbmVnYXRpdmUsIGl0IGlzIHVzZWQgYXMgdGhlIG9mZnNldFxuICogZnJvbSB0aGUgZW5kIG9mIGBhcnJheWAuIElmIGBhcnJheWAgaXMgc29ydGVkIHByb3ZpZGluZyBgdHJ1ZWAgZm9yIGBmcm9tSW5kZXhgXG4gKiBwZXJmb3JtcyBhIGZhc3RlciBiaW5hcnkgc2VhcmNoLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgQXJyYXlcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzZWFyY2guXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICogQHBhcmFtIHtib29sZWFufG51bWJlcn0gW2Zyb21JbmRleD0wXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20gb3IgYHRydWVgXG4gKiAgdG8gcGVyZm9ybSBhIGJpbmFyeSBzZWFyY2ggb24gYSBzb3J0ZWQgYXJyYXkuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmluZGV4T2YoWzEsIDIsIDEsIDJdLCAyKTtcbiAqIC8vID0+IDFcbiAqXG4gKiAvLyB1c2luZyBgZnJvbUluZGV4YFxuICogXy5pbmRleE9mKFsxLCAyLCAxLCAyXSwgMiwgMik7XG4gKiAvLyA9PiAzXG4gKlxuICogLy8gcGVyZm9ybWluZyBhIGJpbmFyeSBzZWFyY2hcbiAqIF8uaW5kZXhPZihbMSwgMSwgMiwgMl0sIDIsIHRydWUpO1xuICogLy8gPT4gMlxuICovXG5mdW5jdGlvbiBpbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDA7XG4gIGlmICghbGVuZ3RoKSB7XG4gICAgcmV0dXJuIC0xO1xuICB9XG4gIGlmICh0eXBlb2YgZnJvbUluZGV4ID09ICdudW1iZXInKSB7XG4gICAgZnJvbUluZGV4ID0gZnJvbUluZGV4IDwgMCA/IG5hdGl2ZU1heChsZW5ndGggKyBmcm9tSW5kZXgsIDApIDogZnJvbUluZGV4O1xuICB9IGVsc2UgaWYgKGZyb21JbmRleCkge1xuICAgIHZhciBpbmRleCA9IGJpbmFyeUluZGV4KGFycmF5LCB2YWx1ZSk7XG4gICAgaWYgKGluZGV4IDwgbGVuZ3RoICYmXG4gICAgICAgICh2YWx1ZSA9PT0gdmFsdWUgPyAodmFsdWUgPT09IGFycmF5W2luZGV4XSkgOiAoYXJyYXlbaW5kZXhdICE9PSBhcnJheVtpbmRleF0pKSkge1xuICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH1cbiAgcmV0dXJuIGJhc2VJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4IHx8IDApO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluZGV4T2Y7XG4iLCIvKipcbiAqIEdldHMgdGhlIGxhc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgQXJyYXlcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBsYXN0IGVsZW1lbnQgb2YgYGFycmF5YC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5sYXN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiAzXG4gKi9cbmZ1bmN0aW9uIGxhc3QoYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMDtcbiAgcmV0dXJuIGxlbmd0aCA/IGFycmF5W2xlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGxhc3Q7XG4iLCJ2YXIgTGF6eVdyYXBwZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9MYXp5V3JhcHBlcicpLFxuICAgIExvZGFzaFdyYXBwZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9Mb2Rhc2hXcmFwcGVyJyksXG4gICAgYmFzZUxvZGFzaCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2Jhc2VMb2Rhc2gnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FycmF5JyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNPYmplY3RMaWtlJyksXG4gICAgd3JhcHBlckNsb25lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvd3JhcHBlckNsb25lJyk7XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBgbG9kYXNoYCBvYmplY3Qgd2hpY2ggd3JhcHMgYHZhbHVlYCB0byBlbmFibGUgaW1wbGljaXQgY2hhaW5pbmcuXG4gKiBNZXRob2RzIHRoYXQgb3BlcmF0ZSBvbiBhbmQgcmV0dXJuIGFycmF5cywgY29sbGVjdGlvbnMsIGFuZCBmdW5jdGlvbnMgY2FuXG4gKiBiZSBjaGFpbmVkIHRvZ2V0aGVyLiBNZXRob2RzIHRoYXQgcmV0cmlldmUgYSBzaW5nbGUgdmFsdWUgb3IgbWF5IHJldHVybiBhXG4gKiBwcmltaXRpdmUgdmFsdWUgd2lsbCBhdXRvbWF0aWNhbGx5IGVuZCB0aGUgY2hhaW4gcmV0dXJuaW5nIHRoZSB1bndyYXBwZWRcbiAqIHZhbHVlLiBFeHBsaWNpdCBjaGFpbmluZyBtYXkgYmUgZW5hYmxlZCB1c2luZyBgXy5jaGFpbmAuIFRoZSBleGVjdXRpb24gb2ZcbiAqIGNoYWluZWQgbWV0aG9kcyBpcyBsYXp5LCB0aGF0IGlzLCBleGVjdXRpb24gaXMgZGVmZXJyZWQgdW50aWwgYF8jdmFsdWVgXG4gKiBpcyBpbXBsaWNpdGx5IG9yIGV4cGxpY2l0bHkgY2FsbGVkLlxuICpcbiAqIExhenkgZXZhbHVhdGlvbiBhbGxvd3Mgc2V2ZXJhbCBtZXRob2RzIHRvIHN1cHBvcnQgc2hvcnRjdXQgZnVzaW9uLiBTaG9ydGN1dFxuICogZnVzaW9uIGlzIGFuIG9wdGltaXphdGlvbiBzdHJhdGVneSB3aGljaCBtZXJnZSBpdGVyYXRlZSBjYWxsczsgdGhpcyBjYW4gaGVscFxuICogdG8gYXZvaWQgdGhlIGNyZWF0aW9uIG9mIGludGVybWVkaWF0ZSBkYXRhIHN0cnVjdHVyZXMgYW5kIGdyZWF0bHkgcmVkdWNlIHRoZVxuICogbnVtYmVyIG9mIGl0ZXJhdGVlIGV4ZWN1dGlvbnMuXG4gKlxuICogQ2hhaW5pbmcgaXMgc3VwcG9ydGVkIGluIGN1c3RvbSBidWlsZHMgYXMgbG9uZyBhcyB0aGUgYF8jdmFsdWVgIG1ldGhvZCBpc1xuICogZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBpbmNsdWRlZCBpbiB0aGUgYnVpbGQuXG4gKlxuICogSW4gYWRkaXRpb24gdG8gbG9kYXNoIG1ldGhvZHMsIHdyYXBwZXJzIGhhdmUgYEFycmF5YCBhbmQgYFN0cmluZ2AgbWV0aG9kcy5cbiAqXG4gKiBUaGUgd3JhcHBlciBgQXJyYXlgIG1ldGhvZHMgYXJlOlxuICogYGNvbmNhdGAsIGBqb2luYCwgYHBvcGAsIGBwdXNoYCwgYHJldmVyc2VgLCBgc2hpZnRgLCBgc2xpY2VgLCBgc29ydGAsXG4gKiBgc3BsaWNlYCwgYW5kIGB1bnNoaWZ0YFxuICpcbiAqIFRoZSB3cmFwcGVyIGBTdHJpbmdgIG1ldGhvZHMgYXJlOlxuICogYHJlcGxhY2VgIGFuZCBgc3BsaXRgXG4gKlxuICogVGhlIHdyYXBwZXIgbWV0aG9kcyB0aGF0IHN1cHBvcnQgc2hvcnRjdXQgZnVzaW9uIGFyZTpcbiAqIGBjb21wYWN0YCwgYGRyb3BgLCBgZHJvcFJpZ2h0YCwgYGRyb3BSaWdodFdoaWxlYCwgYGRyb3BXaGlsZWAsIGBmaWx0ZXJgLFxuICogYGZpcnN0YCwgYGluaXRpYWxgLCBgbGFzdGAsIGBtYXBgLCBgcGx1Y2tgLCBgcmVqZWN0YCwgYHJlc3RgLCBgcmV2ZXJzZWAsXG4gKiBgc2xpY2VgLCBgdGFrZWAsIGB0YWtlUmlnaHRgLCBgdGFrZVJpZ2h0V2hpbGVgLCBgdGFrZVdoaWxlYCwgYHRvQXJyYXlgLFxuICogYW5kIGB3aGVyZWBcbiAqXG4gKiBUaGUgY2hhaW5hYmxlIHdyYXBwZXIgbWV0aG9kcyBhcmU6XG4gKiBgYWZ0ZXJgLCBgYXJ5YCwgYGFzc2lnbmAsIGBhdGAsIGBiZWZvcmVgLCBgYmluZGAsIGBiaW5kQWxsYCwgYGJpbmRLZXlgLFxuICogYGNhbGxiYWNrYCwgYGNoYWluYCwgYGNodW5rYCwgYGNvbW1pdGAsIGBjb21wYWN0YCwgYGNvbmNhdGAsIGBjb25zdGFudGAsXG4gKiBgY291bnRCeWAsIGBjcmVhdGVgLCBgY3VycnlgLCBgZGVib3VuY2VgLCBgZGVmYXVsdHNgLCBgZGVmYXVsdHNEZWVwYCxcbiAqIGBkZWZlcmAsIGBkZWxheWAsIGBkaWZmZXJlbmNlYCwgYGRyb3BgLCBgZHJvcFJpZ2h0YCwgYGRyb3BSaWdodFdoaWxlYCxcbiAqIGBkcm9wV2hpbGVgLCBgZmlsbGAsIGBmaWx0ZXJgLCBgZmxhdHRlbmAsIGBmbGF0dGVuRGVlcGAsIGBmbG93YCwgYGZsb3dSaWdodGAsXG4gKiBgZm9yRWFjaGAsIGBmb3JFYWNoUmlnaHRgLCBgZm9ySW5gLCBgZm9ySW5SaWdodGAsIGBmb3JPd25gLCBgZm9yT3duUmlnaHRgLFxuICogYGZ1bmN0aW9uc2AsIGBncm91cEJ5YCwgYGluZGV4QnlgLCBgaW5pdGlhbGAsIGBpbnRlcnNlY3Rpb25gLCBgaW52ZXJ0YCxcbiAqIGBpbnZva2VgLCBga2V5c2AsIGBrZXlzSW5gLCBgbWFwYCwgYG1hcEtleXNgLCBgbWFwVmFsdWVzYCwgYG1hdGNoZXNgLFxuICogYG1hdGNoZXNQcm9wZXJ0eWAsIGBtZW1vaXplYCwgYG1lcmdlYCwgYG1ldGhvZGAsIGBtZXRob2RPZmAsIGBtaXhpbmAsXG4gKiBgbW9kQXJnc2AsIGBuZWdhdGVgLCBgb21pdGAsIGBvbmNlYCwgYHBhaXJzYCwgYHBhcnRpYWxgLCBgcGFydGlhbFJpZ2h0YCxcbiAqIGBwYXJ0aXRpb25gLCBgcGlja2AsIGBwbGFudGAsIGBwbHVja2AsIGBwcm9wZXJ0eWAsIGBwcm9wZXJ0eU9mYCwgYHB1bGxgLFxuICogYHB1bGxBdGAsIGBwdXNoYCwgYHJhbmdlYCwgYHJlYXJnYCwgYHJlamVjdGAsIGByZW1vdmVgLCBgcmVzdGAsIGByZXN0UGFyYW1gLFxuICogYHJldmVyc2VgLCBgc2V0YCwgYHNodWZmbGVgLCBgc2xpY2VgLCBgc29ydGAsIGBzb3J0QnlgLCBgc29ydEJ5QWxsYCxcbiAqIGBzb3J0QnlPcmRlcmAsIGBzcGxpY2VgLCBgc3ByZWFkYCwgYHRha2VgLCBgdGFrZVJpZ2h0YCwgYHRha2VSaWdodFdoaWxlYCxcbiAqIGB0YWtlV2hpbGVgLCBgdGFwYCwgYHRocm90dGxlYCwgYHRocnVgLCBgdGltZXNgLCBgdG9BcnJheWAsIGB0b1BsYWluT2JqZWN0YCxcbiAqIGB0cmFuc2Zvcm1gLCBgdW5pb25gLCBgdW5pcWAsIGB1bnNoaWZ0YCwgYHVuemlwYCwgYHVuemlwV2l0aGAsIGB2YWx1ZXNgLFxuICogYHZhbHVlc0luYCwgYHdoZXJlYCwgYHdpdGhvdXRgLCBgd3JhcGAsIGB4b3JgLCBgemlwYCwgYHppcE9iamVjdGAsIGB6aXBXaXRoYFxuICpcbiAqIFRoZSB3cmFwcGVyIG1ldGhvZHMgdGhhdCBhcmUgKipub3QqKiBjaGFpbmFibGUgYnkgZGVmYXVsdCBhcmU6XG4gKiBgYWRkYCwgYGF0dGVtcHRgLCBgY2FtZWxDYXNlYCwgYGNhcGl0YWxpemVgLCBgY2VpbGAsIGBjbG9uZWAsIGBjbG9uZURlZXBgLFxuICogYGRlYnVycmAsIGBlbmRzV2l0aGAsIGBlc2NhcGVgLCBgZXNjYXBlUmVnRXhwYCwgYGV2ZXJ5YCwgYGZpbmRgLCBgZmluZEluZGV4YCxcbiAqIGBmaW5kS2V5YCwgYGZpbmRMYXN0YCwgYGZpbmRMYXN0SW5kZXhgLCBgZmluZExhc3RLZXlgLCBgZmluZFdoZXJlYCwgYGZpcnN0YCxcbiAqIGBmbG9vcmAsIGBnZXRgLCBgZ3RgLCBgZ3RlYCwgYGhhc2AsIGBpZGVudGl0eWAsIGBpbmNsdWRlc2AsIGBpbmRleE9mYCxcbiAqIGBpblJhbmdlYCwgYGlzQXJndW1lbnRzYCwgYGlzQXJyYXlgLCBgaXNCb29sZWFuYCwgYGlzRGF0ZWAsIGBpc0VsZW1lbnRgLFxuICogYGlzRW1wdHlgLCBgaXNFcXVhbGAsIGBpc0Vycm9yYCwgYGlzRmluaXRlYCBgaXNGdW5jdGlvbmAsIGBpc01hdGNoYCxcbiAqIGBpc05hdGl2ZWAsIGBpc05hTmAsIGBpc051bGxgLCBgaXNOdW1iZXJgLCBgaXNPYmplY3RgLCBgaXNQbGFpbk9iamVjdGAsXG4gKiBgaXNSZWdFeHBgLCBgaXNTdHJpbmdgLCBgaXNVbmRlZmluZWRgLCBgaXNUeXBlZEFycmF5YCwgYGpvaW5gLCBga2ViYWJDYXNlYCxcbiAqIGBsYXN0YCwgYGxhc3RJbmRleE9mYCwgYGx0YCwgYGx0ZWAsIGBtYXhgLCBgbWluYCwgYG5vQ29uZmxpY3RgLCBgbm9vcGAsXG4gKiBgbm93YCwgYHBhZGAsIGBwYWRMZWZ0YCwgYHBhZFJpZ2h0YCwgYHBhcnNlSW50YCwgYHBvcGAsIGByYW5kb21gLCBgcmVkdWNlYCxcbiAqIGByZWR1Y2VSaWdodGAsIGByZXBlYXRgLCBgcmVzdWx0YCwgYHJvdW5kYCwgYHJ1bkluQ29udGV4dGAsIGBzaGlmdGAsIGBzaXplYCxcbiAqIGBzbmFrZUNhc2VgLCBgc29tZWAsIGBzb3J0ZWRJbmRleGAsIGBzb3J0ZWRMYXN0SW5kZXhgLCBgc3RhcnRDYXNlYCxcbiAqIGBzdGFydHNXaXRoYCwgYHN1bWAsIGB0ZW1wbGF0ZWAsIGB0cmltYCwgYHRyaW1MZWZ0YCwgYHRyaW1SaWdodGAsIGB0cnVuY2AsXG4gKiBgdW5lc2NhcGVgLCBgdW5pcXVlSWRgLCBgdmFsdWVgLCBhbmQgYHdvcmRzYFxuICpcbiAqIFRoZSB3cmFwcGVyIG1ldGhvZCBgc2FtcGxlYCB3aWxsIHJldHVybiBhIHdyYXBwZWQgdmFsdWUgd2hlbiBgbmAgaXMgcHJvdmlkZWQsXG4gKiBvdGhlcndpc2UgYW4gdW53cmFwcGVkIHZhbHVlIGlzIHJldHVybmVkLlxuICpcbiAqIEBuYW1lIF9cbiAqIEBjb25zdHJ1Y3RvclxuICogQGNhdGVnb3J5IENoYWluXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byB3cmFwIGluIGEgYGxvZGFzaGAgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZS5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIHdyYXBwZWQgPSBfKFsxLCAyLCAzXSk7XG4gKlxuICogLy8gcmV0dXJucyBhbiB1bndyYXBwZWQgdmFsdWVcbiAqIHdyYXBwZWQucmVkdWNlKGZ1bmN0aW9uKHRvdGFsLCBuKSB7XG4gKiAgIHJldHVybiB0b3RhbCArIG47XG4gKiB9KTtcbiAqIC8vID0+IDZcbiAqXG4gKiAvLyByZXR1cm5zIGEgd3JhcHBlZCB2YWx1ZVxuICogdmFyIHNxdWFyZXMgPSB3cmFwcGVkLm1hcChmdW5jdGlvbihuKSB7XG4gKiAgIHJldHVybiBuICogbjtcbiAqIH0pO1xuICpcbiAqIF8uaXNBcnJheShzcXVhcmVzKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0FycmF5KHNxdWFyZXMudmFsdWUoKSk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGxvZGFzaCh2YWx1ZSkge1xuICBpZiAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiAhaXNBcnJheSh2YWx1ZSkgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIExhenlXcmFwcGVyKSkge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIExvZGFzaFdyYXBwZXIpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdfX2NoYWluX18nKSAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnX193cmFwcGVkX18nKSkge1xuICAgICAgcmV0dXJuIHdyYXBwZXJDbG9uZSh2YWx1ZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXcgTG9kYXNoV3JhcHBlcih2YWx1ZSk7XG59XG5cbi8vIEVuc3VyZSB3cmFwcGVycyBhcmUgaW5zdGFuY2VzIG9mIGBiYXNlTG9kYXNoYC5cbmxvZGFzaC5wcm90b3R5cGUgPSBiYXNlTG9kYXNoLnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBsb2Rhc2g7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZm9yRWFjaCcpO1xuIiwidmFyIGJhc2VFYWNoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYmFzZUVhY2gnKSxcbiAgICBjcmVhdGVGaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvY3JlYXRlRmluZCcpO1xuXG4vKipcbiAqIEl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2YgYGNvbGxlY3Rpb25gLCByZXR1cm5pbmcgdGhlIGZpcnN0IGVsZW1lbnRcbiAqIGBwcmVkaWNhdGVgIHJldHVybnMgdHJ1dGh5IGZvci4gVGhlIHByZWRpY2F0ZSBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kXG4gKiBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gKlxuICogSWYgYSBwcm9wZXJ0eSBuYW1lIGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICpcbiAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBwcm9wZXJ0eVxuICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAqXG4gKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBhbGlhcyBkZXRlY3RcbiAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2VhcmNoLlxuICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R8c3RyaW5nfSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkXG4gKiAgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgcHJlZGljYXRlYC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtYXRjaGVkIGVsZW1lbnQsIGVsc2UgYHVuZGVmaW5lZGAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciB1c2VycyA9IFtcbiAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9LFxuICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWdlJzogNDAsICdhY3RpdmUnOiBmYWxzZSB9LFxuICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWdlJzogMSwgICdhY3RpdmUnOiB0cnVlIH1cbiAqIF07XG4gKlxuICogXy5yZXN1bHQoXy5maW5kKHVzZXJzLCBmdW5jdGlvbihjaHIpIHtcbiAqICAgcmV0dXJuIGNoci5hZ2UgPCA0MDtcbiAqIH0pLCAndXNlcicpO1xuICogLy8gPT4gJ2Jhcm5leSdcbiAqXG4gKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc2AgY2FsbGJhY2sgc2hvcnRoYW5kXG4gKiBfLnJlc3VsdChfLmZpbmQodXNlcnMsIHsgJ2FnZSc6IDEsICdhY3RpdmUnOiB0cnVlIH0pLCAndXNlcicpO1xuICogLy8gPT4gJ3BlYmJsZXMnXG4gKlxuICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gKiBfLnJlc3VsdChfLmZpbmQodXNlcnMsICdhY3RpdmUnLCBmYWxzZSksICd1c2VyJyk7XG4gKiAvLyA9PiAnZnJlZCdcbiAqXG4gKiAvLyB1c2luZyB0aGUgYF8ucHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICogXy5yZXN1bHQoXy5maW5kKHVzZXJzLCAnYWN0aXZlJyksICd1c2VyJyk7XG4gKiAvLyA9PiAnYmFybmV5J1xuICovXG52YXIgZmluZCA9IGNyZWF0ZUZpbmQoYmFzZUVhY2gpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZpbmQ7XG4iLCJ2YXIgYXJyYXlFYWNoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYXJyYXlFYWNoJyksXG4gICAgYmFzZUVhY2ggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9iYXNlRWFjaCcpLFxuICAgIGNyZWF0ZUZvckVhY2ggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9jcmVhdGVGb3JFYWNoJyk7XG5cbi8qKlxuICogSXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmAgaW52b2tpbmcgYGl0ZXJhdGVlYCBmb3IgZWFjaCBlbGVtZW50LlxuICogVGhlIGBpdGVyYXRlZWAgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOlxuICogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLiBJdGVyYXRlZSBmdW5jdGlvbnMgbWF5IGV4aXQgaXRlcmF0aW9uIGVhcmx5XG4gKiBieSBleHBsaWNpdGx5IHJldHVybmluZyBgZmFsc2VgLlxuICpcbiAqICoqTm90ZToqKiBBcyB3aXRoIG90aGVyIFwiQ29sbGVjdGlvbnNcIiBtZXRob2RzLCBvYmplY3RzIHdpdGggYSBcImxlbmd0aFwiIHByb3BlcnR5XG4gKiBhcmUgaXRlcmF0ZWQgbGlrZSBhcnJheXMuIFRvIGF2b2lkIHRoaXMgYmVoYXZpb3IgYF8uZm9ySW5gIG9yIGBfLmZvck93bmBcbiAqIG1heSBiZSB1c2VkIGZvciBvYmplY3QgaXRlcmF0aW9uLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAYWxpYXMgZWFjaFxuICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICogQHJldHVybnMge0FycmF5fE9iamVjdHxzdHJpbmd9IFJldHVybnMgYGNvbGxlY3Rpb25gLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfKFsxLCAyXSkuZm9yRWFjaChmdW5jdGlvbihuKSB7XG4gKiAgIGNvbnNvbGUubG9nKG4pO1xuICogfSkudmFsdWUoKTtcbiAqIC8vID0+IGxvZ3MgZWFjaCB2YWx1ZSBmcm9tIGxlZnQgdG8gcmlnaHQgYW5kIHJldHVybnMgdGhlIGFycmF5XG4gKlxuICogXy5mb3JFYWNoKHsgJ2EnOiAxLCAnYic6IDIgfSwgZnVuY3Rpb24obiwga2V5KSB7XG4gKiAgIGNvbnNvbGUubG9nKG4sIGtleSk7XG4gKiB9KTtcbiAqIC8vID0+IGxvZ3MgZWFjaCB2YWx1ZS1rZXkgcGFpciBhbmQgcmV0dXJucyB0aGUgb2JqZWN0IChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKi9cbnZhciBmb3JFYWNoID0gY3JlYXRlRm9yRWFjaChhcnJheUVhY2gsIGJhc2VFYWNoKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmb3JFYWNoO1xuIiwidmFyIGJhc2VJbmRleE9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYmFzZUluZGV4T2YnKSxcbiAgICBnZXRMZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9nZXRMZW5ndGgnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FycmF5JyksXG4gICAgaXNJdGVyYXRlZUNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc0l0ZXJhdGVlQ2FsbCcpLFxuICAgIGlzTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNMZW5ndGgnKSxcbiAgICBpc1N0cmluZyA9IHJlcXVpcmUoJy4uL2xhbmcvaXNTdHJpbmcnKSxcbiAgICB2YWx1ZXMgPSByZXF1aXJlKCcuLi9vYmplY3QvdmFsdWVzJyk7XG5cbi8qIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWF4ID0gTWF0aC5tYXg7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgaW4gYGNvbGxlY3Rpb25gIHVzaW5nXG4gKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi82LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLiBJZiBgZnJvbUluZGV4YCBpcyBuZWdhdGl2ZSwgaXQgaXMgdXNlZCBhcyB0aGUgb2Zmc2V0XG4gKiBmcm9tIHRoZSBlbmQgb2YgYGNvbGxlY3Rpb25gLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAYWxpYXMgY29udGFpbnMsIGluY2x1ZGVcbiAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2VhcmNoLlxuICogQHBhcmFtIHsqfSB0YXJnZXQgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD0wXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYSBjYWxsYmFjayBmb3IgZnVuY3Rpb25zIGxpa2UgYF8ucmVkdWNlYC5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhIG1hdGNoaW5nIGVsZW1lbnQgaXMgZm91bmQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pbmNsdWRlcyhbMSwgMiwgM10sIDEpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaW5jbHVkZXMoWzEsIDIsIDNdLCAxLCAyKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pbmNsdWRlcyh7ICd1c2VyJzogJ2ZyZWQnLCAnYWdlJzogNDAgfSwgJ2ZyZWQnKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmluY2x1ZGVzKCdwZWJibGVzJywgJ2ViJyk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGluY2x1ZGVzKGNvbGxlY3Rpb24sIHRhcmdldCwgZnJvbUluZGV4LCBndWFyZCkge1xuICB2YXIgbGVuZ3RoID0gY29sbGVjdGlvbiA/IGdldExlbmd0aChjb2xsZWN0aW9uKSA6IDA7XG4gIGlmICghaXNMZW5ndGgobGVuZ3RoKSkge1xuICAgIGNvbGxlY3Rpb24gPSB2YWx1ZXMoY29sbGVjdGlvbik7XG4gICAgbGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGg7XG4gIH1cbiAgaWYgKHR5cGVvZiBmcm9tSW5kZXggIT0gJ251bWJlcicgfHwgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHRhcmdldCwgZnJvbUluZGV4LCBndWFyZCkpKSB7XG4gICAgZnJvbUluZGV4ID0gMDtcbiAgfSBlbHNlIHtcbiAgICBmcm9tSW5kZXggPSBmcm9tSW5kZXggPCAwID8gbmF0aXZlTWF4KGxlbmd0aCArIGZyb21JbmRleCwgMCkgOiAoZnJvbUluZGV4IHx8IDApO1xuICB9XG4gIHJldHVybiAodHlwZW9mIGNvbGxlY3Rpb24gPT0gJ3N0cmluZycgfHwgIWlzQXJyYXkoY29sbGVjdGlvbikgJiYgaXNTdHJpbmcoY29sbGVjdGlvbikpXG4gICAgPyAoZnJvbUluZGV4IDw9IGxlbmd0aCAmJiBjb2xsZWN0aW9uLmluZGV4T2YodGFyZ2V0LCBmcm9tSW5kZXgpID4gLTEpXG4gICAgOiAoISFsZW5ndGggJiYgYmFzZUluZGV4T2YoY29sbGVjdGlvbiwgdGFyZ2V0LCBmcm9tSW5kZXgpID4gLTEpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluY2x1ZGVzO1xuIiwidmFyIGFycmF5TWFwID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYXJyYXlNYXAnKSxcbiAgICBiYXNlQ2FsbGJhY2sgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9iYXNlQ2FsbGJhY2snKSxcbiAgICBiYXNlTWFwID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYmFzZU1hcCcpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuLi9sYW5nL2lzQXJyYXknKTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHZhbHVlcyBieSBydW5uaW5nIGVhY2ggZWxlbWVudCBpbiBgY29sbGVjdGlvbmAgdGhyb3VnaFxuICogYGl0ZXJhdGVlYC4gVGhlIGBpdGVyYXRlZWAgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggdGhyZWVcbiAqIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICpcbiAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYGl0ZXJhdGVlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICpcbiAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBwcm9wZXJ0eVxuICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAqXG4gKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGBpdGVyYXRlZWAgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc2Agc3R5bGVcbiAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqXG4gKiBNYW55IGxvZGFzaCBtZXRob2RzIGFyZSBndWFyZGVkIHRvIHdvcmsgYXMgaXRlcmF0ZWVzIGZvciBtZXRob2RzIGxpa2VcbiAqIGBfLmV2ZXJ5YCwgYF8uZmlsdGVyYCwgYF8ubWFwYCwgYF8ubWFwVmFsdWVzYCwgYF8ucmVqZWN0YCwgYW5kIGBfLnNvbWVgLlxuICpcbiAqIFRoZSBndWFyZGVkIG1ldGhvZHMgYXJlOlxuICogYGFyeWAsIGBjYWxsYmFja2AsIGBjaHVua2AsIGBjbG9uZWAsIGBjcmVhdGVgLCBgY3VycnlgLCBgY3VycnlSaWdodGAsXG4gKiBgZHJvcGAsIGBkcm9wUmlnaHRgLCBgZXZlcnlgLCBgZmlsbGAsIGBmbGF0dGVuYCwgYGludmVydGAsIGBtYXhgLCBgbWluYCxcbiAqIGBwYXJzZUludGAsIGBzbGljZWAsIGBzb3J0QnlgLCBgdGFrZWAsIGB0YWtlUmlnaHRgLCBgdGVtcGxhdGVgLCBgdHJpbWAsXG4gKiBgdHJpbUxlZnRgLCBgdHJpbVJpZ2h0YCwgYHRydW5jYCwgYHJhbmRvbWAsIGByYW5nZWAsIGBzYW1wbGVgLCBgc29tZWAsXG4gKiBgc3VtYCwgYHVuaXFgLCBhbmQgYHdvcmRzYFxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAYWxpYXMgY29sbGVjdFxuICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICogIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gdGltZXNUaHJlZShuKSB7XG4gKiAgIHJldHVybiBuICogMztcbiAqIH1cbiAqXG4gKiBfLm1hcChbMSwgMl0sIHRpbWVzVGhyZWUpO1xuICogLy8gPT4gWzMsIDZdXG4gKlxuICogXy5tYXAoeyAnYSc6IDEsICdiJzogMiB9LCB0aW1lc1RocmVlKTtcbiAqIC8vID0+IFszLCA2XSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICpcbiAqIHZhciB1c2VycyA9IFtcbiAqICAgeyAndXNlcic6ICdiYXJuZXknIH0sXG4gKiAgIHsgJ3VzZXInOiAnZnJlZCcgfVxuICogXTtcbiAqXG4gKiAvLyB1c2luZyB0aGUgYF8ucHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICogXy5tYXAodXNlcnMsICd1c2VyJyk7XG4gKiAvLyA9PiBbJ2Jhcm5leScsICdmcmVkJ11cbiAqL1xuZnVuY3Rpb24gbWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCB0aGlzQXJnKSB7XG4gIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5TWFwIDogYmFzZU1hcDtcbiAgaXRlcmF0ZWUgPSBiYXNlQ2FsbGJhY2soaXRlcmF0ZWUsIHRoaXNBcmcsIDMpO1xuICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBpdGVyYXRlZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWFwO1xuIiwidmFyIGdldE5hdGl2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2dldE5hdGl2ZScpO1xuXG4vKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU5vdyA9IGdldE5hdGl2ZShEYXRlLCAnbm93Jyk7XG5cbi8qKlxuICogR2V0cyB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0aGF0IGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgVW5peCBlcG9jaFxuICogKDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBEYXRlXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uZGVmZXIoZnVuY3Rpb24oc3RhbXApIHtcbiAqICAgY29uc29sZS5sb2coXy5ub3coKSAtIHN0YW1wKTtcbiAqIH0sIF8ubm93KCkpO1xuICogLy8gPT4gbG9ncyB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpdCB0b29rIGZvciB0aGUgZGVmZXJyZWQgZnVuY3Rpb24gdG8gYmUgaW52b2tlZFxuICovXG52YXIgbm93ID0gbmF0aXZlTm93IHx8IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IG5vdztcbiIsInZhciBjcmVhdGVXcmFwcGVyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvY3JlYXRlV3JhcHBlcicpLFxuICAgIHJlcGxhY2VIb2xkZXJzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvcmVwbGFjZUhvbGRlcnMnKSxcbiAgICByZXN0UGFyYW0gPSByZXF1aXJlKCcuL3Jlc3RQYXJhbScpO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciB3cmFwcGVyIG1ldGFkYXRhLiAqL1xudmFyIEJJTkRfRkxBRyA9IDEsXG4gICAgUEFSVElBTF9GTEFHID0gMzI7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgYHRoaXNBcmdgXG4gKiBhbmQgcHJlcGVuZHMgYW55IGFkZGl0aW9uYWwgYF8uYmluZGAgYXJndW1lbnRzIHRvIHRob3NlIHByb3ZpZGVkIHRvIHRoZVxuICogYm91bmQgZnVuY3Rpb24uXG4gKlxuICogVGhlIGBfLmJpbmQucGxhY2Vob2xkZXJgIHZhbHVlLCB3aGljaCBkZWZhdWx0cyB0byBgX2AgaW4gbW9ub2xpdGhpYyBidWlsZHMsXG4gKiBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMuXG4gKlxuICogKipOb3RlOioqIFVubGlrZSBuYXRpdmUgYEZ1bmN0aW9uI2JpbmRgIHRoaXMgbWV0aG9kIGRvZXMgbm90IHNldCB0aGUgXCJsZW5ndGhcIlxuICogcHJvcGVydHkgb2YgYm91bmQgZnVuY3Rpb25zLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGJpbmQuXG4gKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAqIEBwYXJhbSB7Li4uKn0gW3BhcnRpYWxzXSBUaGUgYXJndW1lbnRzIHRvIGJlIHBhcnRpYWxseSBhcHBsaWVkLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYm91bmQgZnVuY3Rpb24uXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBncmVldCA9IGZ1bmN0aW9uKGdyZWV0aW5nLCBwdW5jdHVhdGlvbikge1xuICogICByZXR1cm4gZ3JlZXRpbmcgKyAnICcgKyB0aGlzLnVzZXIgKyBwdW5jdHVhdGlvbjtcbiAqIH07XG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ3VzZXInOiAnZnJlZCcgfTtcbiAqXG4gKiB2YXIgYm91bmQgPSBfLmJpbmQoZ3JlZXQsIG9iamVjdCwgJ2hpJyk7XG4gKiBib3VuZCgnIScpO1xuICogLy8gPT4gJ2hpIGZyZWQhJ1xuICpcbiAqIC8vIHVzaW5nIHBsYWNlaG9sZGVyc1xuICogdmFyIGJvdW5kID0gXy5iaW5kKGdyZWV0LCBvYmplY3QsIF8sICchJyk7XG4gKiBib3VuZCgnaGknKTtcbiAqIC8vID0+ICdoaSBmcmVkISdcbiAqL1xudmFyIGJpbmQgPSByZXN0UGFyYW0oZnVuY3Rpb24oZnVuYywgdGhpc0FyZywgcGFydGlhbHMpIHtcbiAgdmFyIGJpdG1hc2sgPSBCSU5EX0ZMQUc7XG4gIGlmIChwYXJ0aWFscy5sZW5ndGgpIHtcbiAgICB2YXIgaG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKHBhcnRpYWxzLCBiaW5kLnBsYWNlaG9sZGVyKTtcbiAgICBiaXRtYXNrIHw9IFBBUlRJQUxfRkxBRztcbiAgfVxuICByZXR1cm4gY3JlYXRlV3JhcHBlcihmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBwYXJ0aWFscywgaG9sZGVycyk7XG59KTtcblxuLy8gQXNzaWduIGRlZmF1bHQgcGxhY2Vob2xkZXJzLlxuYmluZC5wbGFjZWhvbGRlciA9IHt9O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGJpbmQ7XG4iLCIvKiogVXNlZCBhcyB0aGUgYFR5cGVFcnJvcmAgbWVzc2FnZSBmb3IgXCJGdW5jdGlvbnNcIiBtZXRob2RzLiAqL1xudmFyIEZVTkNfRVJST1JfVEVYVCA9ICdFeHBlY3RlZCBhIGZ1bmN0aW9uJztcblxuLyogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVNYXggPSBNYXRoLm1heDtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiB0aGVcbiAqIGNyZWF0ZWQgZnVuY3Rpb24gYW5kIGFyZ3VtZW50cyBmcm9tIGBzdGFydGAgYW5kIGJleW9uZCBwcm92aWRlZCBhcyBhbiBhcnJheS5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb24gdGhlIFtyZXN0IHBhcmFtZXRlcl0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvRnVuY3Rpb25zL3Jlc3RfcGFyYW1ldGVycykuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9ZnVuYy5sZW5ndGgtMV0gVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSByZXN0IHBhcmFtZXRlci5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgc2F5ID0gXy5yZXN0UGFyYW0oZnVuY3Rpb24od2hhdCwgbmFtZXMpIHtcbiAqICAgcmV0dXJuIHdoYXQgKyAnICcgKyBfLmluaXRpYWwobmFtZXMpLmpvaW4oJywgJykgK1xuICogICAgIChfLnNpemUobmFtZXMpID4gMSA/ICcsICYgJyA6ICcnKSArIF8ubGFzdChuYW1lcyk7XG4gKiB9KTtcbiAqXG4gKiBzYXkoJ2hlbGxvJywgJ2ZyZWQnLCAnYmFybmV5JywgJ3BlYmJsZXMnKTtcbiAqIC8vID0+ICdoZWxsbyBmcmVkLCBiYXJuZXksICYgcGViYmxlcydcbiAqL1xuZnVuY3Rpb24gcmVzdFBhcmFtKGZ1bmMsIHN0YXJ0KSB7XG4gIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICB9XG4gIHN0YXJ0ID0gbmF0aXZlTWF4KHN0YXJ0ID09PSB1bmRlZmluZWQgPyAoZnVuYy5sZW5ndGggLSAxKSA6ICgrc3RhcnQgfHwgMCksIDApO1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1heChhcmdzLmxlbmd0aCAtIHN0YXJ0LCAwKSxcbiAgICAgICAgcmVzdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgcmVzdFtpbmRleF0gPSBhcmdzW3N0YXJ0ICsgaW5kZXhdO1xuICAgIH1cbiAgICBzd2l0Y2ggKHN0YXJ0KSB7XG4gICAgICBjYXNlIDA6IHJldHVybiBmdW5jLmNhbGwodGhpcywgcmVzdCk7XG4gICAgICBjYXNlIDE6IHJldHVybiBmdW5jLmNhbGwodGhpcywgYXJnc1swXSwgcmVzdCk7XG4gICAgICBjYXNlIDI6IHJldHVybiBmdW5jLmNhbGwodGhpcywgYXJnc1swXSwgYXJnc1sxXSwgcmVzdCk7XG4gICAgfVxuICAgIHZhciBvdGhlckFyZ3MgPSBBcnJheShzdGFydCArIDEpO1xuICAgIGluZGV4ID0gLTE7XG4gICAgd2hpbGUgKCsraW5kZXggPCBzdGFydCkge1xuICAgICAgb3RoZXJBcmdzW2luZGV4XSA9IGFyZ3NbaW5kZXhdO1xuICAgIH1cbiAgICBvdGhlckFyZ3Nbc3RhcnRdID0gcmVzdDtcbiAgICByZXR1cm4gZnVuYy5hcHBseSh0aGlzLCBvdGhlckFyZ3MpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJlc3RQYXJhbTtcbiIsInZhciBiYXNlQ3JlYXRlID0gcmVxdWlyZSgnLi9iYXNlQ3JlYXRlJyksXG4gICAgYmFzZUxvZGFzaCA9IHJlcXVpcmUoJy4vYmFzZUxvZGFzaCcpO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciBgLUluZmluaXR5YCBhbmQgYEluZmluaXR5YC4gKi9cbnZhciBQT1NJVElWRV9JTkZJTklUWSA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbGF6eSB3cmFwcGVyIG9iamVjdCB3aGljaCB3cmFwcyBgdmFsdWVgIHRvIGVuYWJsZSBsYXp5IGV2YWx1YXRpb24uXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyYXAuXG4gKi9cbmZ1bmN0aW9uIExhenlXcmFwcGVyKHZhbHVlKSB7XG4gIHRoaXMuX193cmFwcGVkX18gPSB2YWx1ZTtcbiAgdGhpcy5fX2FjdGlvbnNfXyA9IFtdO1xuICB0aGlzLl9fZGlyX18gPSAxO1xuICB0aGlzLl9fZmlsdGVyZWRfXyA9IGZhbHNlO1xuICB0aGlzLl9faXRlcmF0ZWVzX18gPSBbXTtcbiAgdGhpcy5fX3Rha2VDb3VudF9fID0gUE9TSVRJVkVfSU5GSU5JVFk7XG4gIHRoaXMuX192aWV3c19fID0gW107XG59XG5cbkxhenlXcmFwcGVyLnByb3RvdHlwZSA9IGJhc2VDcmVhdGUoYmFzZUxvZGFzaC5wcm90b3R5cGUpO1xuTGF6eVdyYXBwZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTGF6eVdyYXBwZXI7XG5cbm1vZHVsZS5leHBvcnRzID0gTGF6eVdyYXBwZXI7XG4iLCJ2YXIgYmFzZUNyZWF0ZSA9IHJlcXVpcmUoJy4vYmFzZUNyZWF0ZScpLFxuICAgIGJhc2VMb2Rhc2ggPSByZXF1aXJlKCcuL2Jhc2VMb2Rhc2gnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBjb25zdHJ1Y3RvciBmb3IgY3JlYXRpbmcgYGxvZGFzaGAgd3JhcHBlciBvYmplY3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byB3cmFwLlxuICogQHBhcmFtIHtib29sZWFufSBbY2hhaW5BbGxdIEVuYWJsZSBjaGFpbmluZyBmb3IgYWxsIHdyYXBwZXIgbWV0aG9kcy5cbiAqIEBwYXJhbSB7QXJyYXl9IFthY3Rpb25zPVtdXSBBY3Rpb25zIHRvIHBlZm9ybSB0byByZXNvbHZlIHRoZSB1bndyYXBwZWQgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIExvZGFzaFdyYXBwZXIodmFsdWUsIGNoYWluQWxsLCBhY3Rpb25zKSB7XG4gIHRoaXMuX193cmFwcGVkX18gPSB2YWx1ZTtcbiAgdGhpcy5fX2FjdGlvbnNfXyA9IGFjdGlvbnMgfHwgW107XG4gIHRoaXMuX19jaGFpbl9fID0gISFjaGFpbkFsbDtcbn1cblxuTG9kYXNoV3JhcHBlci5wcm90b3R5cGUgPSBiYXNlQ3JlYXRlKGJhc2VMb2Rhc2gucHJvdG90eXBlKTtcbkxvZGFzaFdyYXBwZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTG9kYXNoV3JhcHBlcjtcblxubW9kdWxlLmV4cG9ydHMgPSBMb2Rhc2hXcmFwcGVyO1xuIiwiLyoqXG4gKiBDb3BpZXMgdGhlIHZhbHVlcyBvZiBgc291cmNlYCB0byBgYXJyYXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBzb3VyY2UgVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIGZyb20uXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXk9W11dIFRoZSBhcnJheSB0byBjb3B5IHZhbHVlcyB0by5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICovXG5mdW5jdGlvbiBhcnJheUNvcHkoc291cmNlLCBhcnJheSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHNvdXJjZS5sZW5ndGg7XG5cbiAgYXJyYXkgfHwgKGFycmF5ID0gQXJyYXkobGVuZ3RoKSk7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgYXJyYXlbaW5kZXhdID0gc291cmNlW2luZGV4XTtcbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlDb3B5O1xuIiwiLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uZm9yRWFjaGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYXJyYXlFYWNoKGFycmF5LCBpdGVyYXRlZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGlmIChpdGVyYXRlZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkgPT09IGZhbHNlKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFycmF5O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFycmF5RWFjaDtcbiIsIi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLm1hcGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgYXJyYXkuXG4gKi9cbmZ1bmN0aW9uIGFycmF5TWFwKGFycmF5LCBpdGVyYXRlZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICByZXN1bHRbaW5kZXhdID0gaXRlcmF0ZWUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlNYXA7XG4iLCIvKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5zb21lYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2tcbiAqIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW55IGVsZW1lbnQgcGFzc2VzIHRoZSBwcmVkaWNhdGUgY2hlY2ssXG4gKiAgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBhcnJheVNvbWUoYXJyYXksIHByZWRpY2F0ZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGlmIChwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFycmF5U29tZTtcbiIsInZhciBiYXNlQ29weSA9IHJlcXVpcmUoJy4vYmFzZUNvcHknKSxcbiAgICBrZXlzID0gcmVxdWlyZSgnLi4vb2JqZWN0L2tleXMnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5hc3NpZ25gIHdpdGhvdXQgc3VwcG9ydCBmb3IgYXJndW1lbnQganVnZ2xpbmcsXG4gKiBtdWx0aXBsZSBzb3VyY2VzLCBhbmQgYGN1c3RvbWl6ZXJgIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VBc3NpZ24ob2JqZWN0LCBzb3VyY2UpIHtcbiAgcmV0dXJuIHNvdXJjZSA9PSBudWxsXG4gICAgPyBvYmplY3RcbiAgICA6IGJhc2VDb3B5KHNvdXJjZSwga2V5cyhzb3VyY2UpLCBvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VBc3NpZ247XG4iLCJ2YXIgYmFzZU1hdGNoZXMgPSByZXF1aXJlKCcuL2Jhc2VNYXRjaGVzJyksXG4gICAgYmFzZU1hdGNoZXNQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vYmFzZU1hdGNoZXNQcm9wZXJ0eScpLFxuICAgIGJpbmRDYWxsYmFjayA9IHJlcXVpcmUoJy4vYmluZENhbGxiYWNrJyksXG4gICAgaWRlbnRpdHkgPSByZXF1aXJlKCcuLi91dGlsaXR5L2lkZW50aXR5JyksXG4gICAgcHJvcGVydHkgPSByZXF1aXJlKCcuLi91dGlsaXR5L3Byb3BlcnR5Jyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY2FsbGJhY2tgIHdoaWNoIHN1cHBvcnRzIHNwZWNpZnlpbmcgdGhlXG4gKiBudW1iZXIgb2YgYXJndW1lbnRzIHRvIHByb3ZpZGUgdG8gYGZ1bmNgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IFtmdW5jPV8uaWRlbnRpdHldIFRoZSB2YWx1ZSB0byBjb252ZXJ0IHRvIGEgY2FsbGJhY2suXG4gKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICogQHBhcmFtIHtudW1iZXJ9IFthcmdDb3VudF0gVGhlIG51bWJlciBvZiBhcmd1bWVudHMgdG8gcHJvdmlkZSB0byBgZnVuY2AuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIGNhbGxiYWNrLlxuICovXG5mdW5jdGlvbiBiYXNlQ2FsbGJhY2soZnVuYywgdGhpc0FyZywgYXJnQ291bnQpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgZnVuYztcbiAgaWYgKHR5cGUgPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0aGlzQXJnID09PSB1bmRlZmluZWRcbiAgICAgID8gZnVuY1xuICAgICAgOiBiaW5kQ2FsbGJhY2soZnVuYywgdGhpc0FyZywgYXJnQ291bnQpO1xuICB9XG4gIGlmIChmdW5jID09IG51bGwpIHtcbiAgICByZXR1cm4gaWRlbnRpdHk7XG4gIH1cbiAgaWYgKHR5cGUgPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gYmFzZU1hdGNoZXMoZnVuYyk7XG4gIH1cbiAgcmV0dXJuIHRoaXNBcmcgPT09IHVuZGVmaW5lZFxuICAgID8gcHJvcGVydHkoZnVuYylcbiAgICA6IGJhc2VNYXRjaGVzUHJvcGVydHkoZnVuYywgdGhpc0FyZyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUNhbGxiYWNrO1xuIiwidmFyIGFycmF5Q29weSA9IHJlcXVpcmUoJy4vYXJyYXlDb3B5JyksXG4gICAgYXJyYXlFYWNoID0gcmVxdWlyZSgnLi9hcnJheUVhY2gnKSxcbiAgICBiYXNlQXNzaWduID0gcmVxdWlyZSgnLi9iYXNlQXNzaWduJyksXG4gICAgYmFzZUZvck93biA9IHJlcXVpcmUoJy4vYmFzZUZvck93bicpLFxuICAgIGluaXRDbG9uZUFycmF5ID0gcmVxdWlyZSgnLi9pbml0Q2xvbmVBcnJheScpLFxuICAgIGluaXRDbG9uZUJ5VGFnID0gcmVxdWlyZSgnLi9pbml0Q2xvbmVCeVRhZycpLFxuICAgIGluaXRDbG9uZU9iamVjdCA9IHJlcXVpcmUoJy4vaW5pdENsb25lT2JqZWN0JyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcnJheScpLFxuICAgIGlzSG9zdE9iamVjdCA9IHJlcXVpcmUoJy4vaXNIb3N0T2JqZWN0JyksXG4gICAgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9sYW5nL2lzT2JqZWN0Jyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhcmdzVGFnID0gJ1tvYmplY3QgQXJndW1lbnRzXScsXG4gICAgYXJyYXlUYWcgPSAnW29iamVjdCBBcnJheV0nLFxuICAgIGJvb2xUYWcgPSAnW29iamVjdCBCb29sZWFuXScsXG4gICAgZGF0ZVRhZyA9ICdbb2JqZWN0IERhdGVdJyxcbiAgICBlcnJvclRhZyA9ICdbb2JqZWN0IEVycm9yXScsXG4gICAgZnVuY1RhZyA9ICdbb2JqZWN0IEZ1bmN0aW9uXScsXG4gICAgbWFwVGFnID0gJ1tvYmplY3QgTWFwXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXScsXG4gICAgd2Vha01hcFRhZyA9ICdbb2JqZWN0IFdlYWtNYXBdJztcblxudmFyIGFycmF5QnVmZmVyVGFnID0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyxcbiAgICBmbG9hdDMyVGFnID0gJ1tvYmplY3QgRmxvYXQzMkFycmF5XScsXG4gICAgZmxvYXQ2NFRhZyA9ICdbb2JqZWN0IEZsb2F0NjRBcnJheV0nLFxuICAgIGludDhUYWcgPSAnW29iamVjdCBJbnQ4QXJyYXldJyxcbiAgICBpbnQxNlRhZyA9ICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICBpbnQzMlRhZyA9ICdbb2JqZWN0IEludDMyQXJyYXldJyxcbiAgICB1aW50OFRhZyA9ICdbb2JqZWN0IFVpbnQ4QXJyYXldJyxcbiAgICB1aW50OENsYW1wZWRUYWcgPSAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nLFxuICAgIHVpbnQxNlRhZyA9ICdbb2JqZWN0IFVpbnQxNkFycmF5XScsXG4gICAgdWludDMyVGFnID0gJ1tvYmplY3QgVWludDMyQXJyYXldJztcblxuLyoqIFVzZWQgdG8gaWRlbnRpZnkgYHRvU3RyaW5nVGFnYCB2YWx1ZXMgc3VwcG9ydGVkIGJ5IGBfLmNsb25lYC4gKi9cbnZhciBjbG9uZWFibGVUYWdzID0ge307XG5jbG9uZWFibGVUYWdzW2FyZ3NUYWddID0gY2xvbmVhYmxlVGFnc1thcnJheVRhZ10gPVxuY2xvbmVhYmxlVGFnc1thcnJheUJ1ZmZlclRhZ10gPSBjbG9uZWFibGVUYWdzW2Jvb2xUYWddID1cbmNsb25lYWJsZVRhZ3NbZGF0ZVRhZ10gPSBjbG9uZWFibGVUYWdzW2Zsb2F0MzJUYWddID1cbmNsb25lYWJsZVRhZ3NbZmxvYXQ2NFRhZ10gPSBjbG9uZWFibGVUYWdzW2ludDhUYWddID1cbmNsb25lYWJsZVRhZ3NbaW50MTZUYWddID0gY2xvbmVhYmxlVGFnc1tpbnQzMlRhZ10gPVxuY2xvbmVhYmxlVGFnc1tudW1iZXJUYWddID0gY2xvbmVhYmxlVGFnc1tvYmplY3RUYWddID1cbmNsb25lYWJsZVRhZ3NbcmVnZXhwVGFnXSA9IGNsb25lYWJsZVRhZ3Nbc3RyaW5nVGFnXSA9XG5jbG9uZWFibGVUYWdzW3VpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9XG5jbG9uZWFibGVUYWdzW3VpbnQxNlRhZ10gPSBjbG9uZWFibGVUYWdzW3VpbnQzMlRhZ10gPSB0cnVlO1xuY2xvbmVhYmxlVGFnc1tlcnJvclRhZ10gPSBjbG9uZWFibGVUYWdzW2Z1bmNUYWddID1cbmNsb25lYWJsZVRhZ3NbbWFwVGFnXSA9IGNsb25lYWJsZVRhZ3Nbc2V0VGFnXSA9XG5jbG9uZWFibGVUYWdzW3dlYWtNYXBUYWddID0gZmFsc2U7XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzYuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNsb25lYCB3aXRob3V0IHN1cHBvcnQgZm9yIGFyZ3VtZW50IGp1Z2dsaW5nXG4gKiBhbmQgYHRoaXNgIGJpbmRpbmcgYGN1c3RvbWl6ZXJgIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY2xvbmluZyB2YWx1ZXMuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2tleV0gVGhlIGtleSBvZiBgdmFsdWVgLlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgYHZhbHVlYCBiZWxvbmdzIHRvLlxuICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQT1bXV0gVHJhY2tzIHRyYXZlcnNlZCBzb3VyY2Ugb2JqZWN0cy5cbiAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0I9W11dIEFzc29jaWF0ZXMgY2xvbmVzIHdpdGggc291cmNlIGNvdW50ZXJwYXJ0cy5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBjbG9uZWQgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGJhc2VDbG9uZSh2YWx1ZSwgaXNEZWVwLCBjdXN0b21pemVyLCBrZXksIG9iamVjdCwgc3RhY2tBLCBzdGFja0IpIHtcbiAgdmFyIHJlc3VsdDtcbiAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICByZXN1bHQgPSBvYmplY3QgPyBjdXN0b21pemVyKHZhbHVlLCBrZXksIG9iamVjdCkgOiBjdXN0b21pemVyKHZhbHVlKTtcbiAgfVxuICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHZhciBpc0FyciA9IGlzQXJyYXkodmFsdWUpO1xuICBpZiAoaXNBcnIpIHtcbiAgICByZXN1bHQgPSBpbml0Q2xvbmVBcnJheSh2YWx1ZSk7XG4gICAgaWYgKCFpc0RlZXApIHtcbiAgICAgIHJldHVybiBhcnJheUNvcHkodmFsdWUsIHJlc3VsdCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciB0YWcgPSBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSxcbiAgICAgICAgaXNGdW5jID0gdGFnID09IGZ1bmNUYWc7XG5cbiAgICBpZiAodGFnID09IG9iamVjdFRhZyB8fCB0YWcgPT0gYXJnc1RhZyB8fCAoaXNGdW5jICYmICFvYmplY3QpKSB7XG4gICAgICBpZiAoaXNIb3N0T2JqZWN0KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0ID8gdmFsdWUgOiB7fTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdCA9IGluaXRDbG9uZU9iamVjdChpc0Z1bmMgPyB7fSA6IHZhbHVlKTtcbiAgICAgIGlmICghaXNEZWVwKSB7XG4gICAgICAgIHJldHVybiBiYXNlQXNzaWduKHJlc3VsdCwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY2xvbmVhYmxlVGFnc1t0YWddXG4gICAgICAgID8gaW5pdENsb25lQnlUYWcodmFsdWUsIHRhZywgaXNEZWVwKVxuICAgICAgICA6IChvYmplY3QgPyB2YWx1ZSA6IHt9KTtcbiAgICB9XG4gIH1cbiAgLy8gQ2hlY2sgZm9yIGNpcmN1bGFyIHJlZmVyZW5jZXMgYW5kIHJldHVybiBpdHMgY29ycmVzcG9uZGluZyBjbG9uZS5cbiAgc3RhY2tBIHx8IChzdGFja0EgPSBbXSk7XG4gIHN0YWNrQiB8fCAoc3RhY2tCID0gW10pO1xuXG4gIHZhciBsZW5ndGggPSBzdGFja0EubGVuZ3RoO1xuICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICBpZiAoc3RhY2tBW2xlbmd0aF0gPT0gdmFsdWUpIHtcbiAgICAgIHJldHVybiBzdGFja0JbbGVuZ3RoXTtcbiAgICB9XG4gIH1cbiAgLy8gQWRkIHRoZSBzb3VyY2UgdmFsdWUgdG8gdGhlIHN0YWNrIG9mIHRyYXZlcnNlZCBvYmplY3RzIGFuZCBhc3NvY2lhdGUgaXQgd2l0aCBpdHMgY2xvbmUuXG4gIHN0YWNrQS5wdXNoKHZhbHVlKTtcbiAgc3RhY2tCLnB1c2gocmVzdWx0KTtcblxuICAvLyBSZWN1cnNpdmVseSBwb3B1bGF0ZSBjbG9uZSAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAoaXNBcnIgPyBhcnJheUVhY2ggOiBiYXNlRm9yT3duKSh2YWx1ZSwgZnVuY3Rpb24oc3ViVmFsdWUsIGtleSkge1xuICAgIHJlc3VsdFtrZXldID0gYmFzZUNsb25lKHN1YlZhbHVlLCBpc0RlZXAsIGN1c3RvbWl6ZXIsIGtleSwgdmFsdWUsIHN0YWNrQSwgc3RhY2tCKTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUNsb25lO1xuIiwiLyoqXG4gKiBDb3BpZXMgcHJvcGVydGllcyBvZiBgc291cmNlYCB0byBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyBmcm9tLlxuICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IG5hbWVzIHRvIGNvcHkuXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgdG8uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBiYXNlQ29weShzb3VyY2UsIHByb3BzLCBvYmplY3QpIHtcbiAgb2JqZWN0IHx8IChvYmplY3QgPSB7fSk7XG5cbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuICAgIG9iamVjdFtrZXldID0gc291cmNlW2tleV07XG4gIH1cbiAgcmV0dXJuIG9iamVjdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlQ29weTtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2xhbmcvaXNPYmplY3QnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5jcmVhdGVgIHdpdGhvdXQgc3VwcG9ydCBmb3IgYXNzaWduaW5nXG4gKiBwcm9wZXJ0aWVzIHRvIHRoZSBjcmVhdGVkIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHByb3RvdHlwZSBUaGUgb2JqZWN0IHRvIGluaGVyaXQgZnJvbS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gKi9cbnZhciBiYXNlQ3JlYXRlID0gKGZ1bmN0aW9uKCkge1xuICBmdW5jdGlvbiBvYmplY3QoKSB7fVxuICByZXR1cm4gZnVuY3Rpb24ocHJvdG90eXBlKSB7XG4gICAgaWYgKGlzT2JqZWN0KHByb3RvdHlwZSkpIHtcbiAgICAgIG9iamVjdC5wcm90b3R5cGUgPSBwcm90b3R5cGU7XG4gICAgICB2YXIgcmVzdWx0ID0gbmV3IG9iamVjdDtcbiAgICAgIG9iamVjdC5wcm90b3R5cGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQgfHwge307XG4gIH07XG59KCkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VDcmVhdGU7XG4iLCJ2YXIgYmFzZUZvck93biA9IHJlcXVpcmUoJy4vYmFzZUZvck93bicpLFxuICAgIGNyZWF0ZUJhc2VFYWNoID0gcmVxdWlyZSgnLi9jcmVhdGVCYXNlRWFjaCcpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZvckVhY2hgIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2tcbiAqIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R8c3RyaW5nfSBSZXR1cm5zIGBjb2xsZWN0aW9uYC5cbiAqL1xudmFyIGJhc2VFYWNoID0gY3JlYXRlQmFzZUVhY2goYmFzZUZvck93bik7XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUVhY2g7XG4iLCIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZpbmRgLCBgXy5maW5kTGFzdGAsIGBfLmZpbmRLZXlgLCBhbmQgYF8uZmluZExhc3RLZXlgLFxuICogd2l0aG91dCBzdXBwb3J0IGZvciBjYWxsYmFjayBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZywgd2hpY2ggaXRlcmF0ZXNcbiAqIG92ZXIgYGNvbGxlY3Rpb25gIHVzaW5nIHRoZSBwcm92aWRlZCBgZWFjaEZ1bmNgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2VhcmNoLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGBjb2xsZWN0aW9uYC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3JldEtleV0gU3BlY2lmeSByZXR1cm5pbmcgdGhlIGtleSBvZiB0aGUgZm91bmQgZWxlbWVudFxuICogIGluc3RlYWQgb2YgdGhlIGVsZW1lbnQgaXRzZWxmLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGZvdW5kIGVsZW1lbnQgb3IgaXRzIGtleSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUZpbmQoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBlYWNoRnVuYywgcmV0S2V5KSB7XG4gIHZhciByZXN1bHQ7XG4gIGVhY2hGdW5jKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pIHtcbiAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pKSB7XG4gICAgICByZXN1bHQgPSByZXRLZXkgPyBrZXkgOiB2YWx1ZTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VGaW5kO1xuIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5maW5kSW5kZXhgIGFuZCBgXy5maW5kTGFzdEluZGV4YCB3aXRob3V0XG4gKiBzdXBwb3J0IGZvciBjYWxsYmFjayBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNlYXJjaC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICovXG5mdW5jdGlvbiBiYXNlRmluZEluZGV4KGFycmF5LCBwcmVkaWNhdGUsIGZyb21SaWdodCkge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgaW5kZXggPSBmcm9tUmlnaHQgPyBsZW5ndGggOiAtMTtcblxuICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xuICAgIGlmIChwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlRmluZEluZGV4O1xuIiwidmFyIGNyZWF0ZUJhc2VGb3IgPSByZXF1aXJlKCcuL2NyZWF0ZUJhc2VGb3InKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgYmFzZUZvckluYCBhbmQgYGJhc2VGb3JPd25gIHdoaWNoIGl0ZXJhdGVzXG4gKiBvdmVyIGBvYmplY3RgIHByb3BlcnRpZXMgcmV0dXJuZWQgYnkgYGtleXNGdW5jYCBpbnZva2luZyBgaXRlcmF0ZWVgIGZvclxuICogZWFjaCBwcm9wZXJ0eS4gSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5XG4gKiByZXR1cm5pbmcgYGZhbHNlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBrZXlzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBrZXlzIG9mIGBvYmplY3RgLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xudmFyIGJhc2VGb3IgPSBjcmVhdGVCYXNlRm9yKCk7XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUZvcjtcbiIsInZhciBiYXNlRm9yID0gcmVxdWlyZSgnLi9iYXNlRm9yJyksXG4gICAga2V5c0luID0gcmVxdWlyZSgnLi4vb2JqZWN0L2tleXNJbicpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZvckluYCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBiYXNlRm9ySW4ob2JqZWN0LCBpdGVyYXRlZSkge1xuICByZXR1cm4gYmFzZUZvcihvYmplY3QsIGl0ZXJhdGVlLCBrZXlzSW4pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VGb3JJbjtcbiIsInZhciBiYXNlRm9yID0gcmVxdWlyZSgnLi9iYXNlRm9yJyksXG4gICAga2V5cyA9IHJlcXVpcmUoJy4uL29iamVjdC9rZXlzJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZm9yT3duYCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBiYXNlRm9yT3duKG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgcmV0dXJuIGJhc2VGb3Iob2JqZWN0LCBpdGVyYXRlZSwga2V5cyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUZvck93bjtcbiIsInZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vdG9PYmplY3QnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2V0YCB3aXRob3V0IHN1cHBvcnQgZm9yIHN0cmluZyBwYXRoc1xuICogYW5kIGRlZmF1bHQgdmFsdWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge0FycmF5fSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcGFyYW0ge3N0cmluZ30gW3BhdGhLZXldIFRoZSBrZXkgcmVwcmVzZW50YXRpb24gb2YgcGF0aC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXNvbHZlZCB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gYmFzZUdldChvYmplY3QsIHBhdGgsIHBhdGhLZXkpIHtcbiAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIG9iamVjdCA9IHRvT2JqZWN0KG9iamVjdCk7XG4gIGlmIChwYXRoS2V5ICE9PSB1bmRlZmluZWQgJiYgcGF0aEtleSBpbiBvYmplY3QpIHtcbiAgICBwYXRoID0gW3BhdGhLZXldO1xuICB9XG4gIHZhciBpbmRleCA9IDAsXG4gICAgICBsZW5ndGggPSBwYXRoLmxlbmd0aDtcblxuICB3aGlsZSAob2JqZWN0ICE9IG51bGwgJiYgaW5kZXggPCBsZW5ndGgpIHtcbiAgICBvYmplY3QgPSB0b09iamVjdChvYmplY3QpW3BhdGhbaW5kZXgrK11dO1xuICB9XG4gIHJldHVybiAoaW5kZXggJiYgaW5kZXggPT0gbGVuZ3RoKSA/IG9iamVjdCA6IHVuZGVmaW5lZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlR2V0O1xuIiwidmFyIGluZGV4T2ZOYU4gPSByZXF1aXJlKCcuL2luZGV4T2ZOYU4nKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pbmRleE9mYCB3aXRob3V0IHN1cHBvcnQgZm9yIGJpbmFyeSBzZWFyY2hlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNlYXJjaC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gKiBAcGFyYW0ge251bWJlcn0gZnJvbUluZGV4IFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gIGlmICh2YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICByZXR1cm4gaW5kZXhPZk5hTihhcnJheSwgZnJvbUluZGV4KTtcbiAgfVxuICB2YXIgaW5kZXggPSBmcm9tSW5kZXggLSAxLFxuICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgaWYgKGFycmF5W2luZGV4XSA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJbmRleE9mO1xuIiwidmFyIGJhc2VJc0VxdWFsRGVlcCA9IHJlcXVpcmUoJy4vYmFzZUlzRXF1YWxEZWVwJyksXG4gICAgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9sYW5nL2lzT2JqZWN0JyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc0VxdWFsYCB3aXRob3V0IHN1cHBvcnQgZm9yIGB0aGlzYCBiaW5kaW5nXG4gKiBgY3VzdG9taXplcmAgZnVuY3Rpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmluZyB2YWx1ZXMuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0xvb3NlXSBTcGVjaWZ5IHBlcmZvcm1pbmcgcGFydGlhbCBjb21wYXJpc29ucy5cbiAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0FdIFRyYWNrcyB0cmF2ZXJzZWQgYHZhbHVlYCBvYmplY3RzLlxuICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQl0gVHJhY2tzIHRyYXZlcnNlZCBgb3RoZXJgIG9iamVjdHMuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSXNFcXVhbCh2YWx1ZSwgb3RoZXIsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKSB7XG4gIGlmICh2YWx1ZSA9PT0gb3RoZXIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodmFsdWUgPT0gbnVsbCB8fCBvdGhlciA9PSBudWxsIHx8ICghaXNPYmplY3QodmFsdWUpICYmICFpc09iamVjdExpa2Uob3RoZXIpKSkge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gdmFsdWUgJiYgb3RoZXIgIT09IG90aGVyO1xuICB9XG4gIHJldHVybiBiYXNlSXNFcXVhbERlZXAodmFsdWUsIG90aGVyLCBiYXNlSXNFcXVhbCwgY3VzdG9taXplciwgaXNMb29zZSwgc3RhY2tBLCBzdGFja0IpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJc0VxdWFsO1xuIiwidmFyIGVxdWFsQXJyYXlzID0gcmVxdWlyZSgnLi9lcXVhbEFycmF5cycpLFxuICAgIGVxdWFsQnlUYWcgPSByZXF1aXJlKCcuL2VxdWFsQnlUYWcnKSxcbiAgICBlcXVhbE9iamVjdHMgPSByZXF1aXJlKCcuL2VxdWFsT2JqZWN0cycpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuLi9sYW5nL2lzQXJyYXknKSxcbiAgICBpc0hvc3RPYmplY3QgPSByZXF1aXJlKCcuL2lzSG9zdE9iamVjdCcpLFxuICAgIGlzVHlwZWRBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNUeXBlZEFycmF5Jyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhcmdzVGFnID0gJ1tvYmplY3QgQXJndW1lbnRzXScsXG4gICAgYXJyYXlUYWcgPSAnW29iamVjdCBBcnJheV0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG4vKiogVXNlZCBmb3IgbmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi82LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgb2JqVG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsYCBmb3IgYXJyYXlzIGFuZCBvYmplY3RzIHdoaWNoIHBlcmZvcm1zXG4gKiBkZWVwIGNvbXBhcmlzb25zIGFuZCB0cmFja3MgdHJhdmVyc2VkIG9iamVjdHMgZW5hYmxpbmcgb2JqZWN0cyB3aXRoIGNpcmN1bGFyXG4gKiByZWZlcmVuY2VzIHRvIGJlIGNvbXBhcmVkLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBvdGhlciBUaGUgb3RoZXIgb2JqZWN0IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpbmcgb2JqZWN0cy5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzTG9vc2VdIFNwZWNpZnkgcGVyZm9ybWluZyBwYXJ0aWFsIGNvbXBhcmlzb25zLlxuICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQT1bXV0gVHJhY2tzIHRyYXZlcnNlZCBgdmFsdWVgIG9iamVjdHMuXG4gKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tCPVtdXSBUcmFja3MgdHJhdmVyc2VkIGBvdGhlcmAgb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSXNFcXVhbERlZXAob2JqZWN0LCBvdGhlciwgZXF1YWxGdW5jLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQikge1xuICB2YXIgb2JqSXNBcnIgPSBpc0FycmF5KG9iamVjdCksXG4gICAgICBvdGhJc0FyciA9IGlzQXJyYXkob3RoZXIpLFxuICAgICAgb2JqVGFnID0gYXJyYXlUYWcsXG4gICAgICBvdGhUYWcgPSBhcnJheVRhZztcblxuICBpZiAoIW9iaklzQXJyKSB7XG4gICAgb2JqVGFnID0gb2JqVG9TdHJpbmcuY2FsbChvYmplY3QpO1xuICAgIGlmIChvYmpUYWcgPT0gYXJnc1RhZykge1xuICAgICAgb2JqVGFnID0gb2JqZWN0VGFnO1xuICAgIH0gZWxzZSBpZiAob2JqVGFnICE9IG9iamVjdFRhZykge1xuICAgICAgb2JqSXNBcnIgPSBpc1R5cGVkQXJyYXkob2JqZWN0KTtcbiAgICB9XG4gIH1cbiAgaWYgKCFvdGhJc0Fycikge1xuICAgIG90aFRhZyA9IG9ialRvU3RyaW5nLmNhbGwob3RoZXIpO1xuICAgIGlmIChvdGhUYWcgPT0gYXJnc1RhZykge1xuICAgICAgb3RoVGFnID0gb2JqZWN0VGFnO1xuICAgIH0gZWxzZSBpZiAob3RoVGFnICE9IG9iamVjdFRhZykge1xuICAgICAgb3RoSXNBcnIgPSBpc1R5cGVkQXJyYXkob3RoZXIpO1xuICAgIH1cbiAgfVxuICB2YXIgb2JqSXNPYmogPSBvYmpUYWcgPT0gb2JqZWN0VGFnICYmICFpc0hvc3RPYmplY3Qob2JqZWN0KSxcbiAgICAgIG90aElzT2JqID0gb3RoVGFnID09IG9iamVjdFRhZyAmJiAhaXNIb3N0T2JqZWN0KG90aGVyKSxcbiAgICAgIGlzU2FtZVRhZyA9IG9ialRhZyA9PSBvdGhUYWc7XG5cbiAgaWYgKGlzU2FtZVRhZyAmJiAhKG9iaklzQXJyIHx8IG9iaklzT2JqKSkge1xuICAgIHJldHVybiBlcXVhbEJ5VGFnKG9iamVjdCwgb3RoZXIsIG9ialRhZyk7XG4gIH1cbiAgaWYgKCFpc0xvb3NlKSB7XG4gICAgdmFyIG9iaklzV3JhcHBlZCA9IG9iaklzT2JqICYmIGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCAnX193cmFwcGVkX18nKSxcbiAgICAgICAgb3RoSXNXcmFwcGVkID0gb3RoSXNPYmogJiYgaGFzT3duUHJvcGVydHkuY2FsbChvdGhlciwgJ19fd3JhcHBlZF9fJyk7XG5cbiAgICBpZiAob2JqSXNXcmFwcGVkIHx8IG90aElzV3JhcHBlZCkge1xuICAgICAgcmV0dXJuIGVxdWFsRnVuYyhvYmpJc1dyYXBwZWQgPyBvYmplY3QudmFsdWUoKSA6IG9iamVjdCwgb3RoSXNXcmFwcGVkID8gb3RoZXIudmFsdWUoKSA6IG90aGVyLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQik7XG4gICAgfVxuICB9XG4gIGlmICghaXNTYW1lVGFnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIEFzc3VtZSBjeWNsaWMgdmFsdWVzIGFyZSBlcXVhbC5cbiAgLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gZGV0ZWN0aW5nIGNpcmN1bGFyIHJlZmVyZW5jZXMgc2VlIGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jSk8uXG4gIHN0YWNrQSB8fCAoc3RhY2tBID0gW10pO1xuICBzdGFja0IgfHwgKHN0YWNrQiA9IFtdKTtcblxuICB2YXIgbGVuZ3RoID0gc3RhY2tBLmxlbmd0aDtcbiAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgaWYgKHN0YWNrQVtsZW5ndGhdID09IG9iamVjdCkge1xuICAgICAgcmV0dXJuIHN0YWNrQltsZW5ndGhdID09IG90aGVyO1xuICAgIH1cbiAgfVxuICAvLyBBZGQgYG9iamVjdGAgYW5kIGBvdGhlcmAgdG8gdGhlIHN0YWNrIG9mIHRyYXZlcnNlZCBvYmplY3RzLlxuICBzdGFja0EucHVzaChvYmplY3QpO1xuICBzdGFja0IucHVzaChvdGhlcik7XG5cbiAgdmFyIHJlc3VsdCA9IChvYmpJc0FyciA/IGVxdWFsQXJyYXlzIDogZXF1YWxPYmplY3RzKShvYmplY3QsIG90aGVyLCBlcXVhbEZ1bmMsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKTtcblxuICBzdGFja0EucG9wKCk7XG4gIHN0YWNrQi5wb3AoKTtcblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJc0VxdWFsRGVlcDtcbiIsInZhciBiYXNlSXNFcXVhbCA9IHJlcXVpcmUoJy4vYmFzZUlzRXF1YWwnKSxcbiAgICB0b09iamVjdCA9IHJlcXVpcmUoJy4vdG9PYmplY3QnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc01hdGNoYCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0ge0FycmF5fSBtYXRjaERhdGEgVGhlIHByb3BlcnkgbmFtZXMsIHZhbHVlcywgYW5kIGNvbXBhcmUgZmxhZ3MgdG8gbWF0Y2guXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpbmcgb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgb2JqZWN0YCBpcyBhIG1hdGNoLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc01hdGNoKG9iamVjdCwgbWF0Y2hEYXRhLCBjdXN0b21pemVyKSB7XG4gIHZhciBpbmRleCA9IG1hdGNoRGF0YS5sZW5ndGgsXG4gICAgICBsZW5ndGggPSBpbmRleCxcbiAgICAgIG5vQ3VzdG9taXplciA9ICFjdXN0b21pemVyO1xuXG4gIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgIHJldHVybiAhbGVuZ3RoO1xuICB9XG4gIG9iamVjdCA9IHRvT2JqZWN0KG9iamVjdCk7XG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgdmFyIGRhdGEgPSBtYXRjaERhdGFbaW5kZXhdO1xuICAgIGlmICgobm9DdXN0b21pemVyICYmIGRhdGFbMl0pXG4gICAgICAgICAgPyBkYXRhWzFdICE9PSBvYmplY3RbZGF0YVswXV1cbiAgICAgICAgICA6ICEoZGF0YVswXSBpbiBvYmplY3QpXG4gICAgICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGRhdGEgPSBtYXRjaERhdGFbaW5kZXhdO1xuICAgIHZhciBrZXkgPSBkYXRhWzBdLFxuICAgICAgICBvYmpWYWx1ZSA9IG9iamVjdFtrZXldLFxuICAgICAgICBzcmNWYWx1ZSA9IGRhdGFbMV07XG5cbiAgICBpZiAobm9DdXN0b21pemVyICYmIGRhdGFbMl0pIHtcbiAgICAgIGlmIChvYmpWYWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgcmVzdWx0ID0gY3VzdG9taXplciA/IGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXkpIDogdW5kZWZpbmVkO1xuICAgICAgaWYgKCEocmVzdWx0ID09PSB1bmRlZmluZWQgPyBiYXNlSXNFcXVhbChzcmNWYWx1ZSwgb2JqVmFsdWUsIGN1c3RvbWl6ZXIsIHRydWUpIDogcmVzdWx0KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJc01hdGNoO1xuIiwiLyoqXG4gKiBUaGUgZnVuY3Rpb24gd2hvc2UgcHJvdG90eXBlIGFsbCBjaGFpbmluZyB3cmFwcGVycyBpbmhlcml0IGZyb20uXG4gKlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gYmFzZUxvZGFzaCgpIHtcbiAgLy8gTm8gb3BlcmF0aW9uIHBlcmZvcm1lZC5cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlTG9kYXNoO1xuIiwidmFyIGJhc2VFYWNoID0gcmVxdWlyZSgnLi9iYXNlRWFjaCcpLFxuICAgIGlzQXJyYXlMaWtlID0gcmVxdWlyZSgnLi9pc0FycmF5TGlrZScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1hcGAgd2l0aG91dCBzdXBwb3J0IGZvciBjYWxsYmFjayBzaG9ydGhhbmRzXG4gKiBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBiYXNlTWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgcmVzdWx0ID0gaXNBcnJheUxpa2UoY29sbGVjdGlvbikgPyBBcnJheShjb2xsZWN0aW9uLmxlbmd0aCkgOiBbXTtcblxuICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwga2V5LCBjb2xsZWN0aW9uKSB7XG4gICAgcmVzdWx0WysraW5kZXhdID0gaXRlcmF0ZWUodmFsdWUsIGtleSwgY29sbGVjdGlvbik7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VNYXA7XG4iLCJ2YXIgYmFzZUlzTWF0Y2ggPSByZXF1aXJlKCcuL2Jhc2VJc01hdGNoJyksXG4gICAgZ2V0TWF0Y2hEYXRhID0gcmVxdWlyZSgnLi9nZXRNYXRjaERhdGEnKSxcbiAgICB0b09iamVjdCA9IHJlcXVpcmUoJy4vdG9PYmplY3QnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5tYXRjaGVzYCB3aGljaCBkb2VzIG5vdCBjbG9uZSBgc291cmNlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlTWF0Y2hlcyhzb3VyY2UpIHtcbiAgdmFyIG1hdGNoRGF0YSA9IGdldE1hdGNoRGF0YShzb3VyY2UpO1xuICBpZiAobWF0Y2hEYXRhLmxlbmd0aCA9PSAxICYmIG1hdGNoRGF0YVswXVsyXSkge1xuICAgIHZhciBrZXkgPSBtYXRjaERhdGFbMF1bMF0sXG4gICAgICAgIHZhbHVlID0gbWF0Y2hEYXRhWzBdWzFdO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIG9iamVjdCA9IHRvT2JqZWN0KG9iamVjdCk7XG4gICAgICByZXR1cm4gb2JqZWN0W2tleV0gPT09IHZhbHVlICYmICh2YWx1ZSAhPT0gdW5kZWZpbmVkIHx8IChrZXkgaW4gb2JqZWN0KSk7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgcmV0dXJuIGJhc2VJc01hdGNoKG9iamVjdCwgbWF0Y2hEYXRhKTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlTWF0Y2hlcztcbiIsInZhciBiYXNlR2V0ID0gcmVxdWlyZSgnLi9iYXNlR2V0JyksXG4gICAgYmFzZUlzRXF1YWwgPSByZXF1aXJlKCcuL2Jhc2VJc0VxdWFsJyksXG4gICAgYmFzZVNsaWNlID0gcmVxdWlyZSgnLi9iYXNlU2xpY2UnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FycmF5JyksXG4gICAgaXNLZXkgPSByZXF1aXJlKCcuL2lzS2V5JyksXG4gICAgaXNTdHJpY3RDb21wYXJhYmxlID0gcmVxdWlyZSgnLi9pc1N0cmljdENvbXBhcmFibGUnKSxcbiAgICBsYXN0ID0gcmVxdWlyZSgnLi4vYXJyYXkvbGFzdCcpLFxuICAgIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi90b09iamVjdCcpLFxuICAgIHRvUGF0aCA9IHJlcXVpcmUoJy4vdG9QYXRoJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWF0Y2hlc1Byb3BlcnR5YCB3aGljaCBkb2VzIG5vdCBjbG9uZSBgc3JjVmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHBhcmFtIHsqfSBzcmNWYWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlTWF0Y2hlc1Byb3BlcnR5KHBhdGgsIHNyY1ZhbHVlKSB7XG4gIHZhciBpc0FyciA9IGlzQXJyYXkocGF0aCksXG4gICAgICBpc0NvbW1vbiA9IGlzS2V5KHBhdGgpICYmIGlzU3RyaWN0Q29tcGFyYWJsZShzcmNWYWx1ZSksXG4gICAgICBwYXRoS2V5ID0gKHBhdGggKyAnJyk7XG5cbiAgcGF0aCA9IHRvUGF0aChwYXRoKTtcbiAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB2YXIga2V5ID0gcGF0aEtleTtcbiAgICBvYmplY3QgPSB0b09iamVjdChvYmplY3QpO1xuICAgIGlmICgoaXNBcnIgfHwgIWlzQ29tbW9uKSAmJiAhKGtleSBpbiBvYmplY3QpKSB7XG4gICAgICBvYmplY3QgPSBwYXRoLmxlbmd0aCA9PSAxID8gb2JqZWN0IDogYmFzZUdldChvYmplY3QsIGJhc2VTbGljZShwYXRoLCAwLCAtMSkpO1xuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGtleSA9IGxhc3QocGF0aCk7XG4gICAgICBvYmplY3QgPSB0b09iamVjdChvYmplY3QpO1xuICAgIH1cbiAgICByZXR1cm4gb2JqZWN0W2tleV0gPT09IHNyY1ZhbHVlXG4gICAgICA/IChzcmNWYWx1ZSAhPT0gdW5kZWZpbmVkIHx8IChrZXkgaW4gb2JqZWN0KSlcbiAgICAgIDogYmFzZUlzRXF1YWwoc3JjVmFsdWUsIG9iamVjdFtrZXldLCB1bmRlZmluZWQsIHRydWUpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VNYXRjaGVzUHJvcGVydHk7XG4iLCJ2YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL3RvT2JqZWN0Jyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHJvcGVydHlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYmFzZVByb3BlcnR5KGtleSkge1xuICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogdG9PYmplY3Qob2JqZWN0KVtrZXldO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VQcm9wZXJ0eTtcbiIsInZhciBiYXNlR2V0ID0gcmVxdWlyZSgnLi9iYXNlR2V0JyksXG4gICAgdG9QYXRoID0gcmVxdWlyZSgnLi90b1BhdGgnKTtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VQcm9wZXJ0eWAgd2hpY2ggc3VwcG9ydHMgZGVlcCBwYXRocy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlUHJvcGVydHlEZWVwKHBhdGgpIHtcbiAgdmFyIHBhdGhLZXkgPSAocGF0aCArICcnKTtcbiAgcGF0aCA9IHRvUGF0aChwYXRoKTtcbiAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgIHJldHVybiBiYXNlR2V0KG9iamVjdCwgcGF0aCwgcGF0aEtleSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVByb3BlcnR5RGVlcDtcbiIsInZhciBpZGVudGl0eSA9IHJlcXVpcmUoJy4uL3V0aWxpdHkvaWRlbnRpdHknKSxcbiAgICBtZXRhTWFwID0gcmVxdWlyZSgnLi9tZXRhTWFwJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYHNldERhdGFgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaG90IGxvb3AgZGV0ZWN0aW9uLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhc3NvY2lhdGUgbWV0YWRhdGEgd2l0aC5cbiAqIEBwYXJhbSB7Kn0gZGF0YSBUaGUgbWV0YWRhdGEuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGZ1bmNgLlxuICovXG52YXIgYmFzZVNldERhdGEgPSAhbWV0YU1hcCA/IGlkZW50aXR5IDogZnVuY3Rpb24oZnVuYywgZGF0YSkge1xuICBtZXRhTWFwLnNldChmdW5jLCBkYXRhKTtcbiAgcmV0dXJuIGZ1bmM7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VTZXREYXRhO1xuIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zbGljZWAgd2l0aG91dCBhbiBpdGVyYXRlZSBjYWxsIGd1YXJkLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2xpY2UuXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBwb3NpdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbZW5kPWFycmF5Lmxlbmd0aF0gVGhlIGVuZCBwb3NpdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYmFzZVNsaWNlKGFycmF5LCBzdGFydCwgZW5kKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIHN0YXJ0ID0gc3RhcnQgPT0gbnVsbCA/IDAgOiAoK3N0YXJ0IHx8IDApO1xuICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgc3RhcnQgPSAtc3RhcnQgPiBsZW5ndGggPyAwIDogKGxlbmd0aCArIHN0YXJ0KTtcbiAgfVxuICBlbmQgPSAoZW5kID09PSB1bmRlZmluZWQgfHwgZW5kID4gbGVuZ3RoKSA/IGxlbmd0aCA6ICgrZW5kIHx8IDApO1xuICBpZiAoZW5kIDwgMCkge1xuICAgIGVuZCArPSBsZW5ndGg7XG4gIH1cbiAgbGVuZ3RoID0gc3RhcnQgPiBlbmQgPyAwIDogKChlbmQgLSBzdGFydCkgPj4+IDApO1xuICBzdGFydCA+Pj49IDA7XG5cbiAgdmFyIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgcmVzdWx0W2luZGV4XSA9IGFycmF5W2luZGV4ICsgc3RhcnRdO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVNsaWNlO1xuIiwiLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nIGlmIGl0J3Mgbm90IG9uZS4gQW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkXG4gKiBmb3IgYG51bGxgIG9yIGB1bmRlZmluZWRgIHZhbHVlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gYmFzZVRvU3RyaW5nKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PSBudWxsID8gJycgOiAodmFsdWUgKyAnJyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVRvU3RyaW5nO1xuIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy52YWx1ZXNgIGFuZCBgXy52YWx1ZXNJbmAgd2hpY2ggY3JlYXRlcyBhblxuICogYXJyYXkgb2YgYG9iamVjdGAgcHJvcGVydHkgdmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHByb3BlcnR5IG5hbWVzXG4gKiBvZiBgcHJvcHNgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgbmFtZXMgdG8gZ2V0IHZhbHVlcyBmb3IuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VWYWx1ZXMob2JqZWN0LCBwcm9wcykge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICByZXN1bHRbaW5kZXhdID0gb2JqZWN0W3Byb3BzW2luZGV4XV07XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlVmFsdWVzO1xuIiwidmFyIGJpbmFyeUluZGV4QnkgPSByZXF1aXJlKCcuL2JpbmFyeUluZGV4QnknKSxcbiAgICBpZGVudGl0eSA9IHJlcXVpcmUoJy4uL3V0aWxpdHkvaWRlbnRpdHknKTtcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdGhlIG1heGltdW0gbGVuZ3RoIGFuZCBpbmRleCBvZiBhbiBhcnJheS4gKi9cbnZhciBNQVhfQVJSQVlfTEVOR1RIID0gNDI5NDk2NzI5NSxcbiAgICBIQUxGX01BWF9BUlJBWV9MRU5HVEggPSBNQVhfQVJSQVlfTEVOR1RIID4+PiAxO1xuXG4vKipcbiAqIFBlcmZvcm1zIGEgYmluYXJ5IHNlYXJjaCBvZiBgYXJyYXlgIHRvIGRldGVybWluZSB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYFxuICogc2hvdWxkIGJlIGluc2VydGVkIGludG8gYGFycmF5YCBpbiBvcmRlciB0byBtYWludGFpbiBpdHMgc29ydCBvcmRlci5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIHNvcnRlZCBhcnJheSB0byBpbnNwZWN0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZXZhbHVhdGUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtyZXRIaWdoZXN0XSBTcGVjaWZ5IHJldHVybmluZyB0aGUgaGlnaGVzdCBxdWFsaWZpZWQgaW5kZXguXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBhdCB3aGljaCBgdmFsdWVgIHNob3VsZCBiZSBpbnNlcnRlZFxuICogIGludG8gYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYmluYXJ5SW5kZXgoYXJyYXksIHZhbHVlLCByZXRIaWdoZXN0KSB7XG4gIHZhciBsb3cgPSAwLFxuICAgICAgaGlnaCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogbG93O1xuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiYgdmFsdWUgPT09IHZhbHVlICYmIGhpZ2ggPD0gSEFMRl9NQVhfQVJSQVlfTEVOR1RIKSB7XG4gICAgd2hpbGUgKGxvdyA8IGhpZ2gpIHtcbiAgICAgIHZhciBtaWQgPSAobG93ICsgaGlnaCkgPj4+IDEsXG4gICAgICAgICAgY29tcHV0ZWQgPSBhcnJheVttaWRdO1xuXG4gICAgICBpZiAoKHJldEhpZ2hlc3QgPyAoY29tcHV0ZWQgPD0gdmFsdWUpIDogKGNvbXB1dGVkIDwgdmFsdWUpKSAmJiBjb21wdXRlZCAhPT0gbnVsbCkge1xuICAgICAgICBsb3cgPSBtaWQgKyAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaGlnaCA9IG1pZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGhpZ2g7XG4gIH1cbiAgcmV0dXJuIGJpbmFyeUluZGV4QnkoYXJyYXksIHZhbHVlLCBpZGVudGl0eSwgcmV0SGlnaGVzdCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmluYXJ5SW5kZXg7XG4iLCIvKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZUZsb29yID0gTWF0aC5mbG9vcixcbiAgICBuYXRpdmVNaW4gPSBNYXRoLm1pbjtcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdGhlIG1heGltdW0gbGVuZ3RoIGFuZCBpbmRleCBvZiBhbiBhcnJheS4gKi9cbnZhciBNQVhfQVJSQVlfTEVOR1RIID0gNDI5NDk2NzI5NSxcbiAgICBNQVhfQVJSQVlfSU5ERVggPSBNQVhfQVJSQVlfTEVOR1RIIC0gMTtcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2UgYGJpbmFyeUluZGV4YCBleGNlcHQgdGhhdCBpdCBpbnZva2VzIGBpdGVyYXRlZWAgZm9yXG4gKiBgdmFsdWVgIGFuZCBlYWNoIGVsZW1lbnQgb2YgYGFycmF5YCB0byBjb21wdXRlIHRoZWlyIHNvcnQgcmFua2luZy4gVGhlXG4gKiBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OyAodmFsdWUpLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgc29ydGVkIGFycmF5IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBldmFsdWF0ZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtyZXRIaWdoZXN0XSBTcGVjaWZ5IHJldHVybmluZyB0aGUgaGlnaGVzdCBxdWFsaWZpZWQgaW5kZXguXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBhdCB3aGljaCBgdmFsdWVgIHNob3VsZCBiZSBpbnNlcnRlZFxuICogIGludG8gYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYmluYXJ5SW5kZXhCeShhcnJheSwgdmFsdWUsIGl0ZXJhdGVlLCByZXRIaWdoZXN0KSB7XG4gIHZhbHVlID0gaXRlcmF0ZWUodmFsdWUpO1xuXG4gIHZhciBsb3cgPSAwLFxuICAgICAgaGlnaCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMCxcbiAgICAgIHZhbElzTmFOID0gdmFsdWUgIT09IHZhbHVlLFxuICAgICAgdmFsSXNOdWxsID0gdmFsdWUgPT09IG51bGwsXG4gICAgICB2YWxJc1VuZGVmID0gdmFsdWUgPT09IHVuZGVmaW5lZDtcblxuICB3aGlsZSAobG93IDwgaGlnaCkge1xuICAgIHZhciBtaWQgPSBuYXRpdmVGbG9vcigobG93ICsgaGlnaCkgLyAyKSxcbiAgICAgICAgY29tcHV0ZWQgPSBpdGVyYXRlZShhcnJheVttaWRdKSxcbiAgICAgICAgaXNEZWYgPSBjb21wdXRlZCAhPT0gdW5kZWZpbmVkLFxuICAgICAgICBpc1JlZmxleGl2ZSA9IGNvbXB1dGVkID09PSBjb21wdXRlZDtcblxuICAgIGlmICh2YWxJc05hTikge1xuICAgICAgdmFyIHNldExvdyA9IGlzUmVmbGV4aXZlIHx8IHJldEhpZ2hlc3Q7XG4gICAgfSBlbHNlIGlmICh2YWxJc051bGwpIHtcbiAgICAgIHNldExvdyA9IGlzUmVmbGV4aXZlICYmIGlzRGVmICYmIChyZXRIaWdoZXN0IHx8IGNvbXB1dGVkICE9IG51bGwpO1xuICAgIH0gZWxzZSBpZiAodmFsSXNVbmRlZikge1xuICAgICAgc2V0TG93ID0gaXNSZWZsZXhpdmUgJiYgKHJldEhpZ2hlc3QgfHwgaXNEZWYpO1xuICAgIH0gZWxzZSBpZiAoY29tcHV0ZWQgPT0gbnVsbCkge1xuICAgICAgc2V0TG93ID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldExvdyA9IHJldEhpZ2hlc3QgPyAoY29tcHV0ZWQgPD0gdmFsdWUpIDogKGNvbXB1dGVkIDwgdmFsdWUpO1xuICAgIH1cbiAgICBpZiAoc2V0TG93KSB7XG4gICAgICBsb3cgPSBtaWQgKyAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBoaWdoID0gbWlkO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbmF0aXZlTWluKGhpZ2gsIE1BWF9BUlJBWV9JTkRFWCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmluYXJ5SW5kZXhCeTtcbiIsInZhciBpZGVudGl0eSA9IHJlcXVpcmUoJy4uL3V0aWxpdHkvaWRlbnRpdHknKTtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VDYWxsYmFja2Agd2hpY2ggb25seSBzdXBwb3J0cyBgdGhpc2AgYmluZGluZ1xuICogYW5kIHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBhcmd1bWVudHMgdG8gcHJvdmlkZSB0byBgZnVuY2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGJpbmQuXG4gKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbYXJnQ291bnRdIFRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIHByb3ZpZGUgdG8gYGZ1bmNgLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBjYWxsYmFjay5cbiAqL1xuZnVuY3Rpb24gYmluZENhbGxiYWNrKGZ1bmMsIHRoaXNBcmcsIGFyZ0NvdW50KSB7XG4gIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGlkZW50aXR5O1xuICB9XG4gIGlmICh0aGlzQXJnID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZnVuYztcbiAgfVxuICBzd2l0Y2ggKGFyZ0NvdW50KSB7XG4gICAgY2FzZSAxOiByZXR1cm4gZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgdmFsdWUpO1xuICAgIH07XG4gICAgY2FzZSAzOiByZXR1cm4gZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgICByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbik7XG4gICAgfTtcbiAgICBjYXNlIDQ6IHJldHVybiBmdW5jdGlvbihhY2N1bXVsYXRvciwgdmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgICByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFjY3VtdWxhdG9yLCB2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pO1xuICAgIH07XG4gICAgY2FzZSA1OiByZXR1cm4gZnVuY3Rpb24odmFsdWUsIG90aGVyLCBrZXksIG9iamVjdCwgc291cmNlKSB7XG4gICAgICByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIHZhbHVlLCBvdGhlciwga2V5LCBvYmplY3QsIHNvdXJjZSk7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpc0FyZywgYXJndW1lbnRzKTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiaW5kQ2FsbGJhY2s7XG4iLCIoZnVuY3Rpb24gKGdsb2JhbCl7XG4vKiogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIEFycmF5QnVmZmVyID0gZ2xvYmFsLkFycmF5QnVmZmVyLFxuICAgIFVpbnQ4QXJyYXkgPSBnbG9iYWwuVWludDhBcnJheTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgdGhlIGdpdmVuIGFycmF5IGJ1ZmZlci5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheUJ1ZmZlcn0gYnVmZmVyIFRoZSBhcnJheSBidWZmZXIgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7QXJyYXlCdWZmZXJ9IFJldHVybnMgdGhlIGNsb25lZCBhcnJheSBidWZmZXIuXG4gKi9cbmZ1bmN0aW9uIGJ1ZmZlckNsb25lKGJ1ZmZlcikge1xuICB2YXIgcmVzdWx0ID0gbmV3IEFycmF5QnVmZmVyKGJ1ZmZlci5ieXRlTGVuZ3RoKSxcbiAgICAgIHZpZXcgPSBuZXcgVWludDhBcnJheShyZXN1bHQpO1xuXG4gIHZpZXcuc2V0KG5ldyBVaW50OEFycmF5KGJ1ZmZlcikpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJ1ZmZlckNsb25lO1xuXG59KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbCA6IHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiID8gc2VsZiA6IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiB7fSlcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0OnV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYkltNXZaR1ZmYlc5a2RXeGxjeTlzYjJSaGMyZ3RZMjl0Y0dGMEwybHVkR1Z5Ym1Gc0wySjFabVpsY2tOc2IyNWxMbXB6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUk3UVVGQlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRWlMQ0ptYVd4bElqb2laMlZ1WlhKaGRHVmtMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtpQk9ZWFJwZG1VZ2JXVjBhRzlrSUhKbFptVnlaVzVqWlhNdUlDb3ZYRzUyWVhJZ1FYSnlZWGxDZFdabVpYSWdQU0JuYkc5aVlXd3VRWEp5WVhsQ2RXWm1aWElzWEc0Z0lDQWdWV2x1ZERoQmNuSmhlU0E5SUdkc2IySmhiQzVWYVc1ME9FRnljbUY1TzF4dVhHNHZLaXBjYmlBcUlFTnlaV0YwWlhNZ1lTQmpiRzl1WlNCdlppQjBhR1VnWjJsMlpXNGdZWEp5WVhrZ1luVm1abVZ5TGx4dUlDcGNiaUFxSUVCd2NtbDJZWFJsWEc0Z0tpQkFjR0Z5WVcwZ2UwRnljbUY1UW5WbVptVnlmU0JpZFdabVpYSWdWR2hsSUdGeWNtRjVJR0oxWm1abGNpQjBieUJqYkc5dVpTNWNiaUFxSUVCeVpYUjFjbTV6SUh0QmNuSmhlVUoxWm1abGNuMGdVbVYwZFhKdWN5QjBhR1VnWTJ4dmJtVmtJR0Z5Y21GNUlHSjFabVpsY2k1Y2JpQXFMMXh1Wm5WdVkzUnBiMjRnWW5WbVptVnlRMnh2Ym1Vb1luVm1abVZ5S1NCN1hHNGdJSFpoY2lCeVpYTjFiSFFnUFNCdVpYY2dRWEp5WVhsQ2RXWm1aWElvWW5WbVptVnlMbUo1ZEdWTVpXNW5kR2dwTEZ4dUlDQWdJQ0FnZG1sbGR5QTlJRzVsZHlCVmFXNTBPRUZ5Y21GNUtISmxjM1ZzZENrN1hHNWNiaUFnZG1sbGR5NXpaWFFvYm1WM0lGVnBiblE0UVhKeVlYa29ZblZtWm1WeUtTazdYRzRnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzU5WEc1Y2JtMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ1luVm1abVZ5UTJ4dmJtVTdYRzRpWFgwPSIsIi8qIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWF4ID0gTWF0aC5tYXg7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSB0aGF0IGlzIHRoZSBjb21wb3NpdGlvbiBvZiBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMsXG4gKiBwbGFjZWhvbGRlcnMsIGFuZCBwcm92aWRlZCBhcmd1bWVudHMgaW50byBhIHNpbmdsZSBhcnJheSBvZiBhcmd1bWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBhcmdzIFRoZSBwcm92aWRlZCBhcmd1bWVudHMuXG4gKiBAcGFyYW0ge0FycmF5fSBwYXJ0aWFscyBUaGUgYXJndW1lbnRzIHRvIHByZXBlbmQgdG8gdGhvc2UgcHJvdmlkZWQuXG4gKiBAcGFyYW0ge0FycmF5fSBob2xkZXJzIFRoZSBgcGFydGlhbHNgIHBsYWNlaG9sZGVyIGluZGV4ZXMuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBjb21wb3NlZCBhcmd1bWVudHMuXG4gKi9cbmZ1bmN0aW9uIGNvbXBvc2VBcmdzKGFyZ3MsIHBhcnRpYWxzLCBob2xkZXJzKSB7XG4gIHZhciBob2xkZXJzTGVuZ3RoID0gaG9sZGVycy5sZW5ndGgsXG4gICAgICBhcmdzSW5kZXggPSAtMSxcbiAgICAgIGFyZ3NMZW5ndGggPSBuYXRpdmVNYXgoYXJncy5sZW5ndGggLSBob2xkZXJzTGVuZ3RoLCAwKSxcbiAgICAgIGxlZnRJbmRleCA9IC0xLFxuICAgICAgbGVmdExlbmd0aCA9IHBhcnRpYWxzLmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IEFycmF5KGxlZnRMZW5ndGggKyBhcmdzTGVuZ3RoKTtcblxuICB3aGlsZSAoKytsZWZ0SW5kZXggPCBsZWZ0TGVuZ3RoKSB7XG4gICAgcmVzdWx0W2xlZnRJbmRleF0gPSBwYXJ0aWFsc1tsZWZ0SW5kZXhdO1xuICB9XG4gIHdoaWxlICgrK2FyZ3NJbmRleCA8IGhvbGRlcnNMZW5ndGgpIHtcbiAgICByZXN1bHRbaG9sZGVyc1thcmdzSW5kZXhdXSA9IGFyZ3NbYXJnc0luZGV4XTtcbiAgfVxuICB3aGlsZSAoYXJnc0xlbmd0aC0tKSB7XG4gICAgcmVzdWx0W2xlZnRJbmRleCsrXSA9IGFyZ3NbYXJnc0luZGV4KytdO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29tcG9zZUFyZ3M7XG4iLCIvKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1heCA9IE1hdGgubWF4O1xuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZSBgY29tcG9zZUFyZ3NgIGV4Y2VwdCB0aGF0IHRoZSBhcmd1bWVudHMgY29tcG9zaXRpb25cbiAqIGlzIHRhaWxvcmVkIGZvciBgXy5wYXJ0aWFsUmlnaHRgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gYXJncyBUaGUgcHJvdmlkZWQgYXJndW1lbnRzLlxuICogQHBhcmFtIHtBcnJheX0gcGFydGlhbHMgVGhlIGFyZ3VtZW50cyB0byBhcHBlbmQgdG8gdGhvc2UgcHJvdmlkZWQuXG4gKiBAcGFyYW0ge0FycmF5fSBob2xkZXJzIFRoZSBgcGFydGlhbHNgIHBsYWNlaG9sZGVyIGluZGV4ZXMuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBjb21wb3NlZCBhcmd1bWVudHMuXG4gKi9cbmZ1bmN0aW9uIGNvbXBvc2VBcmdzUmlnaHQoYXJncywgcGFydGlhbHMsIGhvbGRlcnMpIHtcbiAgdmFyIGhvbGRlcnNJbmRleCA9IC0xLFxuICAgICAgaG9sZGVyc0xlbmd0aCA9IGhvbGRlcnMubGVuZ3RoLFxuICAgICAgYXJnc0luZGV4ID0gLTEsXG4gICAgICBhcmdzTGVuZ3RoID0gbmF0aXZlTWF4KGFyZ3MubGVuZ3RoIC0gaG9sZGVyc0xlbmd0aCwgMCksXG4gICAgICByaWdodEluZGV4ID0gLTEsXG4gICAgICByaWdodExlbmd0aCA9IHBhcnRpYWxzLmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IEFycmF5KGFyZ3NMZW5ndGggKyByaWdodExlbmd0aCk7XG5cbiAgd2hpbGUgKCsrYXJnc0luZGV4IDwgYXJnc0xlbmd0aCkge1xuICAgIHJlc3VsdFthcmdzSW5kZXhdID0gYXJnc1thcmdzSW5kZXhdO1xuICB9XG4gIHZhciBvZmZzZXQgPSBhcmdzSW5kZXg7XG4gIHdoaWxlICgrK3JpZ2h0SW5kZXggPCByaWdodExlbmd0aCkge1xuICAgIHJlc3VsdFtvZmZzZXQgKyByaWdodEluZGV4XSA9IHBhcnRpYWxzW3JpZ2h0SW5kZXhdO1xuICB9XG4gIHdoaWxlICgrK2hvbGRlcnNJbmRleCA8IGhvbGRlcnNMZW5ndGgpIHtcbiAgICByZXN1bHRbb2Zmc2V0ICsgaG9sZGVyc1tob2xkZXJzSW5kZXhdXSA9IGFyZ3NbYXJnc0luZGV4KytdO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29tcG9zZUFyZ3NSaWdodDtcbiIsInZhciBnZXRMZW5ndGggPSByZXF1aXJlKCcuL2dldExlbmd0aCcpLFxuICAgIGlzTGVuZ3RoID0gcmVxdWlyZSgnLi9pc0xlbmd0aCcpLFxuICAgIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi90b09iamVjdCcpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBgYmFzZUVhY2hgIG9yIGBiYXNlRWFjaFJpZ2h0YCBmdW5jdGlvbi5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZWFjaEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBhIGNvbGxlY3Rpb24uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGJhc2UgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VFYWNoKGVhY2hGdW5jLCBmcm9tUmlnaHQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSB7XG4gICAgdmFyIGxlbmd0aCA9IGNvbGxlY3Rpb24gPyBnZXRMZW5ndGgoY29sbGVjdGlvbikgOiAwO1xuICAgIGlmICghaXNMZW5ndGgobGVuZ3RoKSkge1xuICAgICAgcmV0dXJuIGVhY2hGdW5jKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKTtcbiAgICB9XG4gICAgdmFyIGluZGV4ID0gZnJvbVJpZ2h0ID8gbGVuZ3RoIDogLTEsXG4gICAgICAgIGl0ZXJhYmxlID0gdG9PYmplY3QoY29sbGVjdGlvbik7XG5cbiAgICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xuICAgICAgaWYgKGl0ZXJhdGVlKGl0ZXJhYmxlW2luZGV4XSwgaW5kZXgsIGl0ZXJhYmxlKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZUJhc2VFYWNoO1xuIiwidmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi90b09iamVjdCcpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBiYXNlIGZ1bmN0aW9uIGZvciBgXy5mb3JJbmAgb3IgYF8uZm9ySW5SaWdodGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYmFzZSBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQmFzZUZvcihmcm9tUmlnaHQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCwgaXRlcmF0ZWUsIGtleXNGdW5jKSB7XG4gICAgdmFyIGl0ZXJhYmxlID0gdG9PYmplY3Qob2JqZWN0KSxcbiAgICAgICAgcHJvcHMgPSBrZXlzRnVuYyhvYmplY3QpLFxuICAgICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGgsXG4gICAgICAgIGluZGV4ID0gZnJvbVJpZ2h0ID8gbGVuZ3RoIDogLTE7XG5cbiAgICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xuICAgICAgdmFyIGtleSA9IHByb3BzW2luZGV4XTtcbiAgICAgIGlmIChpdGVyYXRlZShpdGVyYWJsZVtrZXldLCBrZXksIGl0ZXJhYmxlKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvYmplY3Q7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlQmFzZUZvcjtcbiIsIihmdW5jdGlvbiAoZ2xvYmFsKXtcbnZhciBjcmVhdGVDdG9yV3JhcHBlciA9IHJlcXVpcmUoJy4vY3JlYXRlQ3RvcldyYXBwZXInKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCB3cmFwcyBgZnVuY2AgYW5kIGludm9rZXMgaXQgd2l0aCB0aGUgYHRoaXNgXG4gKiBiaW5kaW5nIG9mIGB0aGlzQXJnYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYmluZC5cbiAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBib3VuZCBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQmluZFdyYXBwZXIoZnVuYywgdGhpc0FyZykge1xuICB2YXIgQ3RvciA9IGNyZWF0ZUN0b3JXcmFwcGVyKGZ1bmMpO1xuXG4gIGZ1bmN0aW9uIHdyYXBwZXIoKSB7XG4gICAgdmFyIGZuID0gKHRoaXMgJiYgdGhpcyAhPT0gZ2xvYmFsICYmIHRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyKSA/IEN0b3IgOiBmdW5jO1xuICAgIHJldHVybiBmbi5hcHBseSh0aGlzQXJnLCBhcmd1bWVudHMpO1xuICB9XG4gIHJldHVybiB3cmFwcGVyO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZUJpbmRXcmFwcGVyO1xuXG59KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbCA6IHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiID8gc2VsZiA6IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiB7fSlcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0OnV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYkltNXZaR1ZmYlc5a2RXeGxjeTlzYjJSaGMyZ3RZMjl0Y0dGMEwybHVkR1Z5Ym1Gc0wyTnlaV0YwWlVKcGJtUlhjbUZ3Y0dWeUxtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdRVUZCUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQklpd2labWxzWlNJNkltZGxibVZ5WVhSbFpDNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUoyWVhJZ1kzSmxZWFJsUTNSdmNsZHlZWEJ3WlhJZ1BTQnlaWEYxYVhKbEtDY3VMMk55WldGMFpVTjBiM0pYY21Gd2NHVnlKeWs3WEc1Y2JpOHFLbHh1SUNvZ1EzSmxZWFJsY3lCaElHWjFibU4wYVc5dUlIUm9ZWFFnZDNKaGNITWdZR1oxYm1OZ0lHRnVaQ0JwYm5admEyVnpJR2wwSUhkcGRHZ2dkR2hsSUdCMGFHbHpZRnh1SUNvZ1ltbHVaR2x1WnlCdlppQmdkR2hwYzBGeVoyQXVYRzRnS2x4dUlDb2dRSEJ5YVhaaGRHVmNiaUFxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUdaMWJtTWdWR2hsSUdaMWJtTjBhVzl1SUhSdklHSnBibVF1WEc0Z0tpQkFjR0Z5WVcwZ2V5cDlJRnQwYUdselFYSm5YU0JVYUdVZ1lIUm9hWE5nSUdKcGJtUnBibWNnYjJZZ1lHWjFibU5nTGx4dUlDb2dRSEpsZEhWeWJuTWdlMFoxYm1OMGFXOXVmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2dZbTkxYm1RZ1puVnVZM1JwYjI0dVhHNGdLaTljYm1aMWJtTjBhVzl1SUdOeVpXRjBaVUpwYm1SWGNtRndjR1Z5S0daMWJtTXNJSFJvYVhOQmNtY3BJSHRjYmlBZ2RtRnlJRU4wYjNJZ1BTQmpjbVZoZEdWRGRHOXlWM0poY0hCbGNpaG1kVzVqS1R0Y2JseHVJQ0JtZFc1amRHbHZiaUIzY21Gd2NHVnlLQ2tnZTF4dUlDQWdJSFpoY2lCbWJpQTlJQ2gwYUdseklDWW1JSFJvYVhNZ0lUMDlJR2RzYjJKaGJDQW1KaUIwYUdseklHbHVjM1JoYm1ObGIyWWdkM0poY0hCbGNpa2dQeUJEZEc5eUlEb2dablZ1WXp0Y2JpQWdJQ0J5WlhSMWNtNGdabTR1WVhCd2JIa29kR2hwYzBGeVp5d2dZWEpuZFcxbGJuUnpLVHRjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdkM0poY0hCbGNqdGNibjFjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCamNtVmhkR1ZDYVc1a1YzSmhjSEJsY2p0Y2JpSmRmUT09IiwidmFyIGJhc2VDcmVhdGUgPSByZXF1aXJlKCcuL2Jhc2VDcmVhdGUnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2xhbmcvaXNPYmplY3QnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBwcm9kdWNlcyBhbiBpbnN0YW5jZSBvZiBgQ3RvcmAgcmVnYXJkbGVzcyBvZlxuICogd2hldGhlciBpdCB3YXMgaW52b2tlZCBhcyBwYXJ0IG9mIGEgYG5ld2AgZXhwcmVzc2lvbiBvciBieSBgY2FsbGAgb3IgYGFwcGx5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gQ3RvciBUaGUgY29uc3RydWN0b3IgdG8gd3JhcC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHdyYXBwZWQgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUN0b3JXcmFwcGVyKEN0b3IpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIC8vIFVzZSBhIGBzd2l0Y2hgIHN0YXRlbWVudCB0byB3b3JrIHdpdGggY2xhc3MgY29uc3RydWN0b3JzLlxuICAgIC8vIFNlZSBodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi82LjAvI3NlYy1lY21hc2NyaXB0LWZ1bmN0aW9uLW9iamVjdHMtY2FsbC10aGlzYXJndW1lbnQtYXJndW1lbnRzbGlzdFxuICAgIC8vIGZvciBtb3JlIGRldGFpbHMuXG4gICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xuICAgICAgY2FzZSAwOiByZXR1cm4gbmV3IEN0b3I7XG4gICAgICBjYXNlIDE6IHJldHVybiBuZXcgQ3RvcihhcmdzWzBdKTtcbiAgICAgIGNhc2UgMjogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0sIGFyZ3NbMV0pO1xuICAgICAgY2FzZSAzOiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSk7XG4gICAgICBjYXNlIDQ6IHJldHVybiBuZXcgQ3RvcihhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdLCBhcmdzWzNdKTtcbiAgICAgIGNhc2UgNTogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0sIGFyZ3NbM10sIGFyZ3NbNF0pO1xuICAgICAgY2FzZSA2OiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSwgYXJnc1s0XSwgYXJnc1s1XSk7XG4gICAgICBjYXNlIDc6IHJldHVybiBuZXcgQ3RvcihhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdLCBhcmdzWzNdLCBhcmdzWzRdLCBhcmdzWzVdLCBhcmdzWzZdKTtcbiAgICB9XG4gICAgdmFyIHRoaXNCaW5kaW5nID0gYmFzZUNyZWF0ZShDdG9yLnByb3RvdHlwZSksXG4gICAgICAgIHJlc3VsdCA9IEN0b3IuYXBwbHkodGhpc0JpbmRpbmcsIGFyZ3MpO1xuXG4gICAgLy8gTWltaWMgdGhlIGNvbnN0cnVjdG9yJ3MgYHJldHVybmAgYmVoYXZpb3IuXG4gICAgLy8gU2VlIGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jeDEzLjIuMiBmb3IgbW9yZSBkZXRhaWxzLlxuICAgIHJldHVybiBpc09iamVjdChyZXN1bHQpID8gcmVzdWx0IDogdGhpc0JpbmRpbmc7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlQ3RvcldyYXBwZXI7XG4iLCJ2YXIgYmFzZUNhbGxiYWNrID0gcmVxdWlyZSgnLi9iYXNlQ2FsbGJhY2snKSxcbiAgICBiYXNlRmluZCA9IHJlcXVpcmUoJy4vYmFzZUZpbmQnKSxcbiAgICBiYXNlRmluZEluZGV4ID0gcmVxdWlyZSgnLi9iYXNlRmluZEluZGV4JyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcnJheScpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBgXy5maW5kYCBvciBgXy5maW5kTGFzdGAgZnVuY3Rpb24uXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGVhY2hGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYSBjb2xsZWN0aW9uLlxuICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmaW5kIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBjcmVhdGVGaW5kKGVhY2hGdW5jLCBmcm9tUmlnaHQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgdGhpc0FyZykge1xuICAgIHByZWRpY2F0ZSA9IGJhc2VDYWxsYmFjayhwcmVkaWNhdGUsIHRoaXNBcmcsIDMpO1xuICAgIGlmIChpc0FycmF5KGNvbGxlY3Rpb24pKSB7XG4gICAgICB2YXIgaW5kZXggPSBiYXNlRmluZEluZGV4KGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZnJvbVJpZ2h0KTtcbiAgICAgIHJldHVybiBpbmRleCA+IC0xID8gY29sbGVjdGlvbltpbmRleF0gOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiBiYXNlRmluZChjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIGVhY2hGdW5jKTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVGaW5kO1xuIiwidmFyIGJpbmRDYWxsYmFjayA9IHJlcXVpcmUoJy4vYmluZENhbGxiYWNrJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcnJheScpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiBmb3IgYF8uZm9yRWFjaGAgb3IgYF8uZm9yRWFjaFJpZ2h0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gYXJyYXlGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYW4gYXJyYXkuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGEgY29sbGVjdGlvbi5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGVhY2ggZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUZvckVhY2goYXJyYXlGdW5jLCBlYWNoRnVuYykge1xuICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWUsIHRoaXNBcmcpIHtcbiAgICByZXR1cm4gKHR5cGVvZiBpdGVyYXRlZSA9PSAnZnVuY3Rpb24nICYmIHRoaXNBcmcgPT09IHVuZGVmaW5lZCAmJiBpc0FycmF5KGNvbGxlY3Rpb24pKVxuICAgICAgPyBhcnJheUZ1bmMoY29sbGVjdGlvbiwgaXRlcmF0ZWUpXG4gICAgICA6IGVhY2hGdW5jKGNvbGxlY3Rpb24sIGJpbmRDYWxsYmFjayhpdGVyYXRlZSwgdGhpc0FyZywgMykpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZUZvckVhY2g7XG4iLCIoZnVuY3Rpb24gKGdsb2JhbCl7XG52YXIgYXJyYXlDb3B5ID0gcmVxdWlyZSgnLi9hcnJheUNvcHknKSxcbiAgICBjb21wb3NlQXJncyA9IHJlcXVpcmUoJy4vY29tcG9zZUFyZ3MnKSxcbiAgICBjb21wb3NlQXJnc1JpZ2h0ID0gcmVxdWlyZSgnLi9jb21wb3NlQXJnc1JpZ2h0JyksXG4gICAgY3JlYXRlQ3RvcldyYXBwZXIgPSByZXF1aXJlKCcuL2NyZWF0ZUN0b3JXcmFwcGVyJyksXG4gICAgaXNMYXppYWJsZSA9IHJlcXVpcmUoJy4vaXNMYXppYWJsZScpLFxuICAgIHJlb3JkZXIgPSByZXF1aXJlKCcuL3Jlb3JkZXInKSxcbiAgICByZXBsYWNlSG9sZGVycyA9IHJlcXVpcmUoJy4vcmVwbGFjZUhvbGRlcnMnKSxcbiAgICBzZXREYXRhID0gcmVxdWlyZSgnLi9zZXREYXRhJyk7XG5cbi8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIHdyYXBwZXIgbWV0YWRhdGEuICovXG52YXIgQklORF9GTEFHID0gMSxcbiAgICBCSU5EX0tFWV9GTEFHID0gMixcbiAgICBDVVJSWV9CT1VORF9GTEFHID0gNCxcbiAgICBDVVJSWV9GTEFHID0gOCxcbiAgICBDVVJSWV9SSUdIVF9GTEFHID0gMTYsXG4gICAgUEFSVElBTF9GTEFHID0gMzIsXG4gICAgUEFSVElBTF9SSUdIVF9GTEFHID0gNjQsXG4gICAgQVJZX0ZMQUcgPSAxMjg7XG5cbi8qIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWF4ID0gTWF0aC5tYXg7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIGFuZCBpbnZva2VzIGl0IHdpdGggb3B0aW9uYWwgYHRoaXNgXG4gKiBiaW5kaW5nIG9mLCBwYXJ0aWFsIGFwcGxpY2F0aW9uLCBhbmQgY3VycnlpbmcuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb258c3RyaW5nfSBmdW5jIFRoZSBmdW5jdGlvbiBvciBtZXRob2QgbmFtZSB0byByZWZlcmVuY2UuXG4gKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBvZiBmbGFncy4gU2VlIGBjcmVhdGVXcmFwcGVyYCBmb3IgbW9yZSBkZXRhaWxzLlxuICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAqIEBwYXJhbSB7QXJyYXl9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBwcmVwZW5kIHRvIHRob3NlIHByb3ZpZGVkIHRvIHRoZSBuZXcgZnVuY3Rpb24uXG4gKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc10gVGhlIGBwYXJ0aWFsc2AgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAqIEBwYXJhbSB7QXJyYXl9IFtwYXJ0aWFsc1JpZ2h0XSBUaGUgYXJndW1lbnRzIHRvIGFwcGVuZCB0byB0aG9zZSBwcm92aWRlZCB0byB0aGUgbmV3IGZ1bmN0aW9uLlxuICogQHBhcmFtIHtBcnJheX0gW2hvbGRlcnNSaWdodF0gVGhlIGBwYXJ0aWFsc1JpZ2h0YCBwbGFjZWhvbGRlciBpbmRleGVzLlxuICogQHBhcmFtIHtBcnJheX0gW2FyZ1Bvc10gVGhlIGFyZ3VtZW50IHBvc2l0aW9ucyBvZiB0aGUgbmV3IGZ1bmN0aW9uLlxuICogQHBhcmFtIHtudW1iZXJ9IFthcnldIFRoZSBhcml0eSBjYXAgb2YgYGZ1bmNgLlxuICogQHBhcmFtIHtudW1iZXJ9IFthcml0eV0gVGhlIGFyaXR5IG9mIGBmdW5jYC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHdyYXBwZWQgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUh5YnJpZFdyYXBwZXIoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMsIHBhcnRpYWxzUmlnaHQsIGhvbGRlcnNSaWdodCwgYXJnUG9zLCBhcnksIGFyaXR5KSB7XG4gIHZhciBpc0FyeSA9IGJpdG1hc2sgJiBBUllfRkxBRyxcbiAgICAgIGlzQmluZCA9IGJpdG1hc2sgJiBCSU5EX0ZMQUcsXG4gICAgICBpc0JpbmRLZXkgPSBiaXRtYXNrICYgQklORF9LRVlfRkxBRyxcbiAgICAgIGlzQ3VycnkgPSBiaXRtYXNrICYgQ1VSUllfRkxBRyxcbiAgICAgIGlzQ3VycnlCb3VuZCA9IGJpdG1hc2sgJiBDVVJSWV9CT1VORF9GTEFHLFxuICAgICAgaXNDdXJyeVJpZ2h0ID0gYml0bWFzayAmIENVUlJZX1JJR0hUX0ZMQUcsXG4gICAgICBDdG9yID0gaXNCaW5kS2V5ID8gdW5kZWZpbmVkIDogY3JlYXRlQ3RvcldyYXBwZXIoZnVuYyk7XG5cbiAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAvLyBBdm9pZCBgYXJndW1lbnRzYCBvYmplY3QgdXNlIGRpc3F1YWxpZnlpbmcgb3B0aW1pemF0aW9ucyBieVxuICAgIC8vIGNvbnZlcnRpbmcgaXQgdG8gYW4gYXJyYXkgYmVmb3JlIHByb3ZpZGluZyBpdCB0byBvdGhlciBmdW5jdGlvbnMuXG4gICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXG4gICAgICAgIGluZGV4ID0gbGVuZ3RoLFxuICAgICAgICBhcmdzID0gQXJyYXkobGVuZ3RoKTtcblxuICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICBhcmdzW2luZGV4XSA9IGFyZ3VtZW50c1tpbmRleF07XG4gICAgfVxuICAgIGlmIChwYXJ0aWFscykge1xuICAgICAgYXJncyA9IGNvbXBvc2VBcmdzKGFyZ3MsIHBhcnRpYWxzLCBob2xkZXJzKTtcbiAgICB9XG4gICAgaWYgKHBhcnRpYWxzUmlnaHQpIHtcbiAgICAgIGFyZ3MgPSBjb21wb3NlQXJnc1JpZ2h0KGFyZ3MsIHBhcnRpYWxzUmlnaHQsIGhvbGRlcnNSaWdodCk7XG4gICAgfVxuICAgIGlmIChpc0N1cnJ5IHx8IGlzQ3VycnlSaWdodCkge1xuICAgICAgdmFyIHBsYWNlaG9sZGVyID0gd3JhcHBlci5wbGFjZWhvbGRlcixcbiAgICAgICAgICBhcmdzSG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKGFyZ3MsIHBsYWNlaG9sZGVyKTtcblxuICAgICAgbGVuZ3RoIC09IGFyZ3NIb2xkZXJzLmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGggPCBhcml0eSkge1xuICAgICAgICB2YXIgbmV3QXJnUG9zID0gYXJnUG9zID8gYXJyYXlDb3B5KGFyZ1BvcykgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuZXdBcml0eSA9IG5hdGl2ZU1heChhcml0eSAtIGxlbmd0aCwgMCksXG4gICAgICAgICAgICBuZXdzSG9sZGVycyA9IGlzQ3VycnkgPyBhcmdzSG9sZGVycyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG5ld0hvbGRlcnNSaWdodCA9IGlzQ3VycnkgPyB1bmRlZmluZWQgOiBhcmdzSG9sZGVycyxcbiAgICAgICAgICAgIG5ld1BhcnRpYWxzID0gaXNDdXJyeSA/IGFyZ3MgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuZXdQYXJ0aWFsc1JpZ2h0ID0gaXNDdXJyeSA/IHVuZGVmaW5lZCA6IGFyZ3M7XG5cbiAgICAgICAgYml0bWFzayB8PSAoaXNDdXJyeSA/IFBBUlRJQUxfRkxBRyA6IFBBUlRJQUxfUklHSFRfRkxBRyk7XG4gICAgICAgIGJpdG1hc2sgJj0gfihpc0N1cnJ5ID8gUEFSVElBTF9SSUdIVF9GTEFHIDogUEFSVElBTF9GTEFHKTtcblxuICAgICAgICBpZiAoIWlzQ3VycnlCb3VuZCkge1xuICAgICAgICAgIGJpdG1hc2sgJj0gfihCSU5EX0ZMQUcgfCBCSU5EX0tFWV9GTEFHKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbmV3RGF0YSA9IFtmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBuZXdQYXJ0aWFscywgbmV3c0hvbGRlcnMsIG5ld1BhcnRpYWxzUmlnaHQsIG5ld0hvbGRlcnNSaWdodCwgbmV3QXJnUG9zLCBhcnksIG5ld0FyaXR5XSxcbiAgICAgICAgICAgIHJlc3VsdCA9IGNyZWF0ZUh5YnJpZFdyYXBwZXIuYXBwbHkodW5kZWZpbmVkLCBuZXdEYXRhKTtcblxuICAgICAgICBpZiAoaXNMYXppYWJsZShmdW5jKSkge1xuICAgICAgICAgIHNldERhdGEocmVzdWx0LCBuZXdEYXRhKTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIHRoaXNCaW5kaW5nID0gaXNCaW5kID8gdGhpc0FyZyA6IHRoaXMsXG4gICAgICAgIGZuID0gaXNCaW5kS2V5ID8gdGhpc0JpbmRpbmdbZnVuY10gOiBmdW5jO1xuXG4gICAgaWYgKGFyZ1Bvcykge1xuICAgICAgYXJncyA9IHJlb3JkZXIoYXJncywgYXJnUG9zKTtcbiAgICB9XG4gICAgaWYgKGlzQXJ5ICYmIGFyeSA8IGFyZ3MubGVuZ3RoKSB7XG4gICAgICBhcmdzLmxlbmd0aCA9IGFyeTtcbiAgICB9XG4gICAgaWYgKHRoaXMgJiYgdGhpcyAhPT0gZ2xvYmFsICYmIHRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyKSB7XG4gICAgICBmbiA9IEN0b3IgfHwgY3JlYXRlQ3RvcldyYXBwZXIoZnVuYyk7XG4gICAgfVxuICAgIHJldHVybiBmbi5hcHBseSh0aGlzQmluZGluZywgYXJncyk7XG4gIH1cbiAgcmV0dXJuIHdyYXBwZXI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlSHlicmlkV3JhcHBlcjtcblxufSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWwgIT09IFwidW5kZWZpbmVkXCIgPyBnbG9iYWwgOiB0eXBlb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIiA/IHNlbGYgOiB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93IDoge30pXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldDp1dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJbTV2WkdWZmJXOWtkV3hsY3k5c2IyUmhjMmd0WTI5dGNHRjBMMmx1ZEdWeWJtRnNMMk55WldGMFpVaDVZbkpwWkZkeVlYQndaWEl1YW5NaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWp0QlFVRkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQklpd2labWxzWlNJNkltZGxibVZ5WVhSbFpDNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUoyWVhJZ1lYSnlZWGxEYjNCNUlEMGdjbVZ4ZFdseVpTZ25MaTloY25KaGVVTnZjSGtuS1N4Y2JpQWdJQ0JqYjIxd2IzTmxRWEpuY3lBOUlISmxjWFZwY21Vb0p5NHZZMjl0Y0c5elpVRnlaM01uS1N4Y2JpQWdJQ0JqYjIxd2IzTmxRWEpuYzFKcFoyaDBJRDBnY21WeGRXbHlaU2duTGk5amIyMXdiM05sUVhKbmMxSnBaMmgwSnlrc1hHNGdJQ0FnWTNKbFlYUmxRM1J2Y2xkeVlYQndaWElnUFNCeVpYRjFhWEpsS0NjdUwyTnlaV0YwWlVOMGIzSlhjbUZ3Y0dWeUp5a3NYRzRnSUNBZ2FYTk1ZWHBwWVdKc1pTQTlJSEpsY1hWcGNtVW9KeTR2YVhOTVlYcHBZV0pzWlNjcExGeHVJQ0FnSUhKbGIzSmtaWElnUFNCeVpYRjFhWEpsS0NjdUwzSmxiM0prWlhJbktTeGNiaUFnSUNCeVpYQnNZV05sU0c5c1pHVnljeUE5SUhKbGNYVnBjbVVvSnk0dmNtVndiR0ZqWlVodmJHUmxjbk1uS1N4Y2JpQWdJQ0J6WlhSRVlYUmhJRDBnY21WeGRXbHlaU2duTGk5elpYUkVZWFJoSnlrN1hHNWNiaThxS2lCVmMyVmtJSFJ2SUdOdmJYQnZjMlVnWW1sMGJXRnphM01nWm05eUlIZHlZWEJ3WlhJZ2JXVjBZV1JoZEdFdUlDb3ZYRzUyWVhJZ1FrbE9SRjlHVEVGSElEMGdNU3hjYmlBZ0lDQkNTVTVFWDB0RldWOUdURUZISUQwZ01peGNiaUFnSUNCRFZWSlNXVjlDVDFWT1JGOUdURUZISUQwZ05DeGNiaUFnSUNCRFZWSlNXVjlHVEVGSElEMGdPQ3hjYmlBZ0lDQkRWVkpTV1Y5U1NVZElWRjlHVEVGSElEMGdNVFlzWEc0Z0lDQWdVRUZTVkVsQlRGOUdURUZISUQwZ016SXNYRzRnSUNBZ1VFRlNWRWxCVEY5U1NVZElWRjlHVEVGSElEMGdOalFzWEc0Z0lDQWdRVkpaWDBaTVFVY2dQU0F4TWpnN1hHNWNiaThxSUU1aGRHbDJaU0J0WlhSb2IyUWdjbVZtWlhKbGJtTmxjeUJtYjNJZ2RHaHZjMlVnZDJsMGFDQjBhR1VnYzJGdFpTQnVZVzFsSUdGeklHOTBhR1Z5SUdCc2IyUmhjMmhnSUcxbGRHaHZaSE11SUNvdlhHNTJZWElnYm1GMGFYWmxUV0Y0SUQwZ1RXRjBhQzV0WVhnN1hHNWNiaThxS2x4dUlDb2dRM0psWVhSbGN5QmhJR1oxYm1OMGFXOXVJSFJvWVhRZ2QzSmhjSE1nWUdaMWJtTmdJR0Z1WkNCcGJuWnZhMlZ6SUdsMElIZHBkR2dnYjNCMGFXOXVZV3dnWUhSb2FYTmdYRzRnS2lCaWFXNWthVzVuSUc5bUxDQndZWEowYVdGc0lHRndjR3hwWTJGMGFXOXVMQ0JoYm1RZ1kzVnljbmxwYm1jdVhHNGdLbHh1SUNvZ1FIQnlhWFpoZEdWY2JpQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNThjM1J5YVc1bmZTQm1kVzVqSUZSb1pTQm1kVzVqZEdsdmJpQnZjaUJ0WlhSb2IyUWdibUZ0WlNCMGJ5QnlaV1psY21WdVkyVXVYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnWW1sMGJXRnpheUJVYUdVZ1ltbDBiV0Z6YXlCdlppQm1iR0ZuY3k0Z1UyVmxJR0JqY21WaGRHVlhjbUZ3Y0dWeVlDQm1iM0lnYlc5eVpTQmtaWFJoYVd4ekxseHVJQ29nUUhCaGNtRnRJSHNxZlNCYmRHaHBjMEZ5WjEwZ1ZHaGxJR0IwYUdsellDQmlhVzVrYVc1bklHOW1JR0JtZFc1allDNWNiaUFxSUVCd1lYSmhiU0I3UVhKeVlYbDlJRnR3WVhKMGFXRnNjMTBnVkdobElHRnlaM1Z0Wlc1MGN5QjBieUJ3Y21Wd1pXNWtJSFJ2SUhSb2IzTmxJSEJ5YjNacFpHVmtJSFJ2SUhSb1pTQnVaWGNnWm5WdVkzUnBiMjR1WEc0Z0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCYmFHOXNaR1Z5YzEwZ1ZHaGxJR0J3WVhKMGFXRnNjMkFnY0d4aFkyVm9iMnhrWlhJZ2FXNWtaWGhsY3k1Y2JpQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlGdHdZWEowYVdGc2MxSnBaMmgwWFNCVWFHVWdZWEpuZFcxbGJuUnpJSFJ2SUdGd2NHVnVaQ0IwYnlCMGFHOXpaU0J3Y205MmFXUmxaQ0IwYnlCMGFHVWdibVYzSUdaMWJtTjBhVzl1TGx4dUlDb2dRSEJoY21GdElIdEJjbkpoZVgwZ1cyaHZiR1JsY25OU2FXZG9kRjBnVkdobElHQndZWEowYVdGc2MxSnBaMmgwWUNCd2JHRmpaV2h2YkdSbGNpQnBibVJsZUdWekxseHVJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdXMkZ5WjFCdmMxMGdWR2hsSUdGeVozVnRaVzUwSUhCdmMybDBhVzl1Y3lCdlppQjBhR1VnYm1WM0lHWjFibU4wYVc5dUxseHVJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnRoY25sZElGUm9aU0JoY21sMGVTQmpZWEFnYjJZZ1lHWjFibU5nTGx4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlGdGhjbWwwZVYwZ1ZHaGxJR0Z5YVhSNUlHOW1JR0JtZFc1allDNWNiaUFxSUVCeVpYUjFjbTV6SUh0R2RXNWpkR2x2Ym4wZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUhkeVlYQndaV1FnWm5WdVkzUnBiMjR1WEc0Z0tpOWNibVoxYm1OMGFXOXVJR055WldGMFpVaDVZbkpwWkZkeVlYQndaWElvWm5WdVl5d2dZbWwwYldGemF5d2dkR2hwYzBGeVp5d2djR0Z5ZEdsaGJITXNJR2h2YkdSbGNuTXNJSEJoY25ScFlXeHpVbWxuYUhRc0lHaHZiR1JsY25OU2FXZG9kQ3dnWVhKblVHOXpMQ0JoY25rc0lHRnlhWFI1S1NCN1hHNGdJSFpoY2lCcGMwRnllU0E5SUdKcGRHMWhjMnNnSmlCQlVsbGZSa3hCUnl4Y2JpQWdJQ0FnSUdselFtbHVaQ0E5SUdKcGRHMWhjMnNnSmlCQ1NVNUVYMFpNUVVjc1hHNGdJQ0FnSUNCcGMwSnBibVJMWlhrZ1BTQmlhWFJ0WVhOcklDWWdRa2xPUkY5TFJWbGZSa3hCUnl4Y2JpQWdJQ0FnSUdselEzVnljbmtnUFNCaWFYUnRZWE5ySUNZZ1ExVlNVbGxmUmt4QlJ5eGNiaUFnSUNBZ0lHbHpRM1Z5Y25sQ2IzVnVaQ0E5SUdKcGRHMWhjMnNnSmlCRFZWSlNXVjlDVDFWT1JGOUdURUZITEZ4dUlDQWdJQ0FnYVhORGRYSnllVkpwWjJoMElEMGdZbWwwYldGemF5QW1JRU5WVWxKWlgxSkpSMGhVWDBaTVFVY3NYRzRnSUNBZ0lDQkRkRzl5SUQwZ2FYTkNhVzVrUzJWNUlEOGdkVzVrWldacGJtVmtJRG9nWTNKbFlYUmxRM1J2Y2xkeVlYQndaWElvWm5WdVl5azdYRzVjYmlBZ1puVnVZM1JwYjI0Z2QzSmhjSEJsY2lncElIdGNiaUFnSUNBdkx5QkJkbTlwWkNCZ1lYSm5kVzFsYm5SellDQnZZbXBsWTNRZ2RYTmxJR1JwYzNGMVlXeHBabmxwYm1jZ2IzQjBhVzFwZW1GMGFXOXVjeUJpZVZ4dUlDQWdJQzh2SUdOdmJuWmxjblJwYm1jZ2FYUWdkRzhnWVc0Z1lYSnlZWGtnWW1WbWIzSmxJSEJ5YjNacFpHbHVaeUJwZENCMGJ5QnZkR2hsY2lCbWRXNWpkR2x2Ym5NdVhHNGdJQ0FnZG1GeUlHeGxibWQwYUNBOUlHRnlaM1Z0Wlc1MGN5NXNaVzVuZEdnc1hHNGdJQ0FnSUNBZ0lHbHVaR1Y0SUQwZ2JHVnVaM1JvTEZ4dUlDQWdJQ0FnSUNCaGNtZHpJRDBnUVhKeVlYa29iR1Z1WjNSb0tUdGNibHh1SUNBZ0lIZG9hV3hsSUNocGJtUmxlQzB0S1NCN1hHNGdJQ0FnSUNCaGNtZHpXMmx1WkdWNFhTQTlJR0Z5WjNWdFpXNTBjMXRwYm1SbGVGMDdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHdZWEowYVdGc2N5a2dlMXh1SUNBZ0lDQWdZWEpuY3lBOUlHTnZiWEJ2YzJWQmNtZHpLR0Z5WjNNc0lIQmhjblJwWVd4ekxDQm9iMnhrWlhKektUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tIQmhjblJwWVd4elVtbG5hSFFwSUh0Y2JpQWdJQ0FnSUdGeVozTWdQU0JqYjIxd2IzTmxRWEpuYzFKcFoyaDBLR0Z5WjNNc0lIQmhjblJwWVd4elVtbG5hSFFzSUdodmJHUmxjbk5TYVdkb2RDazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHBjME4xY25KNUlIeDhJR2x6UTNWeWNubFNhV2RvZENrZ2UxeHVJQ0FnSUNBZ2RtRnlJSEJzWVdObGFHOXNaR1Z5SUQwZ2QzSmhjSEJsY2k1d2JHRmpaV2h2YkdSbGNpeGNiaUFnSUNBZ0lDQWdJQ0JoY21kelNHOXNaR1Z5Y3lBOUlISmxjR3hoWTJWSWIyeGtaWEp6S0dGeVozTXNJSEJzWVdObGFHOXNaR1Z5S1R0Y2JseHVJQ0FnSUNBZ2JHVnVaM1JvSUMwOUlHRnlaM05JYjJ4a1pYSnpMbXhsYm1kMGFEdGNiaUFnSUNBZ0lHbG1JQ2hzWlc1bmRHZ2dQQ0JoY21sMGVTa2dlMXh1SUNBZ0lDQWdJQ0IyWVhJZ2JtVjNRWEpuVUc5eklEMGdZWEpuVUc5eklEOGdZWEp5WVhsRGIzQjVLR0Z5WjFCdmN5a2dPaUIxYm1SbFptbHVaV1FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnVaWGRCY21sMGVTQTlJRzVoZEdsMlpVMWhlQ2hoY21sMGVTQXRJR3hsYm1kMGFDd2dNQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnVaWGR6U0c5c1pHVnljeUE5SUdselEzVnljbmtnUHlCaGNtZHpTRzlzWkdWeWN5QTZJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHNWxkMGh2YkdSbGNuTlNhV2RvZENBOUlHbHpRM1Z5Y25rZ1B5QjFibVJsWm1sdVpXUWdPaUJoY21kelNHOXNaR1Z5Y3l4Y2JpQWdJQ0FnSUNBZ0lDQWdJRzVsZDFCaGNuUnBZV3h6SUQwZ2FYTkRkWEp5ZVNBL0lHRnlaM01nT2lCMWJtUmxabWx1WldRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J1WlhkUVlYSjBhV0ZzYzFKcFoyaDBJRDBnYVhORGRYSnllU0EvSUhWdVpHVm1hVzVsWkNBNklHRnlaM003WEc1Y2JpQWdJQ0FnSUNBZ1ltbDBiV0Z6YXlCOFBTQW9hWE5EZFhKeWVTQS9JRkJCVWxSSlFVeGZSa3hCUnlBNklGQkJVbFJKUVV4ZlVrbEhTRlJmUmt4QlJ5azdYRzRnSUNBZ0lDQWdJR0pwZEcxaGMyc2dKajBnZmlocGMwTjFjbko1SUQ4Z1VFRlNWRWxCVEY5U1NVZElWRjlHVEVGSElEb2dVRUZTVkVsQlRGOUdURUZIS1R0Y2JseHVJQ0FnSUNBZ0lDQnBaaUFvSVdselEzVnljbmxDYjNWdVpDa2dlMXh1SUNBZ0lDQWdJQ0FnSUdKcGRHMWhjMnNnSmowZ2ZpaENTVTVFWDBaTVFVY2dmQ0JDU1U1RVgwdEZXVjlHVEVGSEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0IyWVhJZ2JtVjNSR0YwWVNBOUlGdG1kVzVqTENCaWFYUnRZWE5yTENCMGFHbHpRWEpuTENCdVpYZFFZWEowYVdGc2N5d2dibVYzYzBodmJHUmxjbk1zSUc1bGQxQmhjblJwWVd4elVtbG5hSFFzSUc1bGQwaHZiR1JsY25OU2FXZG9kQ3dnYm1WM1FYSm5VRzl6TENCaGNua3NJRzVsZDBGeWFYUjVYU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxjM1ZzZENBOUlHTnlaV0YwWlVoNVluSnBaRmR5WVhCd1pYSXVZWEJ3Ykhrb2RXNWtaV1pwYm1Wa0xDQnVaWGRFWVhSaEtUdGNibHh1SUNBZ0lDQWdJQ0JwWmlBb2FYTk1ZWHBwWVdKc1pTaG1kVzVqS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJSE5sZEVSaGRHRW9jbVZ6ZFd4MExDQnVaWGRFWVhSaEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhOMWJIUXVjR3hoWTJWb2IyeGtaWElnUFNCd2JHRmpaV2h2YkdSbGNqdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdkbUZ5SUhSb2FYTkNhVzVrYVc1bklEMGdhWE5DYVc1a0lEOGdkR2hwYzBGeVp5QTZJSFJvYVhNc1hHNGdJQ0FnSUNBZ0lHWnVJRDBnYVhOQ2FXNWtTMlY1SUQ4Z2RHaHBjMEpwYm1ScGJtZGJablZ1WTEwZ09pQm1kVzVqTzF4dVhHNGdJQ0FnYVdZZ0tHRnlaMUJ2Y3lrZ2UxeHVJQ0FnSUNBZ1lYSm5jeUE5SUhKbGIzSmtaWElvWVhKbmN5d2dZWEpuVUc5ektUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tHbHpRWEo1SUNZbUlHRnllU0E4SUdGeVozTXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQmhjbWR6TG14bGJtZDBhQ0E5SUdGeWVUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tIUm9hWE1nSmlZZ2RHaHBjeUFoUFQwZ1oyeHZZbUZzSUNZbUlIUm9hWE1nYVc1emRHRnVZMlZ2WmlCM2NtRndjR1Z5S1NCN1hHNGdJQ0FnSUNCbWJpQTlJRU4wYjNJZ2ZId2dZM0psWVhSbFEzUnZjbGR5WVhCd1pYSW9ablZ1WXlrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQm1iaTVoY0hCc2VTaDBhR2x6UW1sdVpHbHVaeXdnWVhKbmN5azdYRzRnSUgxY2JpQWdjbVYwZFhKdUlIZHlZWEJ3WlhJN1hHNTlYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnWTNKbFlYUmxTSGxpY21sa1YzSmhjSEJsY2p0Y2JpSmRmUT09IiwiKGZ1bmN0aW9uIChnbG9iYWwpe1xudmFyIGNyZWF0ZUN0b3JXcmFwcGVyID0gcmVxdWlyZSgnLi9jcmVhdGVDdG9yV3JhcHBlcicpO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciB3cmFwcGVyIG1ldGFkYXRhLiAqL1xudmFyIEJJTkRfRkxBRyA9IDE7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIGFuZCBpbnZva2VzIGl0IHdpdGggdGhlIG9wdGlvbmFsIGB0aGlzYFxuICogYmluZGluZyBvZiBgdGhpc0FyZ2AgYW5kIHRoZSBgcGFydGlhbHNgIHByZXBlbmRlZCB0byB0aG9zZSBwcm92aWRlZCB0b1xuICogdGhlIHdyYXBwZXIuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHBhcnRpYWxseSBhcHBseSBhcmd1bWVudHMgdG8uXG4gKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBvZiBmbGFncy4gU2VlIGBjcmVhdGVXcmFwcGVyYCBmb3IgbW9yZSBkZXRhaWxzLlxuICogQHBhcmFtIHsqfSB0aGlzQXJnIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gKiBAcGFyYW0ge0FycmF5fSBwYXJ0aWFscyBUaGUgYXJndW1lbnRzIHRvIHByZXBlbmQgdG8gdGhvc2UgcHJvdmlkZWQgdG8gdGhlIG5ldyBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGJvdW5kIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBjcmVhdGVQYXJ0aWFsV3JhcHBlcihmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBwYXJ0aWFscykge1xuICB2YXIgaXNCaW5kID0gYml0bWFzayAmIEJJTkRfRkxBRyxcbiAgICAgIEN0b3IgPSBjcmVhdGVDdG9yV3JhcHBlcihmdW5jKTtcblxuICBmdW5jdGlvbiB3cmFwcGVyKCkge1xuICAgIC8vIEF2b2lkIGBhcmd1bWVudHNgIG9iamVjdCB1c2UgZGlzcXVhbGlmeWluZyBvcHRpbWl6YXRpb25zIGJ5XG4gICAgLy8gY29udmVydGluZyBpdCB0byBhbiBhcnJheSBiZWZvcmUgcHJvdmlkaW5nIGl0IGBmdW5jYC5cbiAgICB2YXIgYXJnc0luZGV4ID0gLTEsXG4gICAgICAgIGFyZ3NMZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoLFxuICAgICAgICBsZWZ0SW5kZXggPSAtMSxcbiAgICAgICAgbGVmdExlbmd0aCA9IHBhcnRpYWxzLmxlbmd0aCxcbiAgICAgICAgYXJncyA9IEFycmF5KGxlZnRMZW5ndGggKyBhcmdzTGVuZ3RoKTtcblxuICAgIHdoaWxlICgrK2xlZnRJbmRleCA8IGxlZnRMZW5ndGgpIHtcbiAgICAgIGFyZ3NbbGVmdEluZGV4XSA9IHBhcnRpYWxzW2xlZnRJbmRleF07XG4gICAgfVxuICAgIHdoaWxlIChhcmdzTGVuZ3RoLS0pIHtcbiAgICAgIGFyZ3NbbGVmdEluZGV4KytdID0gYXJndW1lbnRzWysrYXJnc0luZGV4XTtcbiAgICB9XG4gICAgdmFyIGZuID0gKHRoaXMgJiYgdGhpcyAhPT0gZ2xvYmFsICYmIHRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyKSA/IEN0b3IgOiBmdW5jO1xuICAgIHJldHVybiBmbi5hcHBseShpc0JpbmQgPyB0aGlzQXJnIDogdGhpcywgYXJncyk7XG4gIH1cbiAgcmV0dXJuIHdyYXBwZXI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlUGFydGlhbFdyYXBwZXI7XG5cbn0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsICE9PSBcInVuZGVmaW5lZFwiID8gZ2xvYmFsIDogdHlwZW9mIHNlbGYgIT09IFwidW5kZWZpbmVkXCIgPyBzZWxmIDogdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IHdpbmRvdyA6IHt9KVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ6dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSW01dlpHVmZiVzlrZFd4bGN5OXNiMlJoYzJndFkyOXRjR0YwTDJsdWRHVnlibUZzTDJOeVpXRjBaVkJoY25ScFlXeFhjbUZ3Y0dWeUxtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdRVUZCUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CSWl3aVptbHNaU0k2SW1kbGJtVnlZWFJsWkM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SjJZWElnWTNKbFlYUmxRM1J2Y2xkeVlYQndaWElnUFNCeVpYRjFhWEpsS0NjdUwyTnlaV0YwWlVOMGIzSlhjbUZ3Y0dWeUp5azdYRzVjYmk4cUtpQlZjMlZrSUhSdklHTnZiWEJ2YzJVZ1ltbDBiV0Z6YTNNZ1ptOXlJSGR5WVhCd1pYSWdiV1YwWVdSaGRHRXVJQ292WEc1MllYSWdRa2xPUkY5R1RFRkhJRDBnTVR0Y2JseHVMeW9xWEc0Z0tpQkRjbVZoZEdWeklHRWdablZ1WTNScGIyNGdkR2hoZENCM2NtRndjeUJnWm5WdVkyQWdZVzVrSUdsdWRtOXJaWE1nYVhRZ2QybDBhQ0IwYUdVZ2IzQjBhVzl1WVd3Z1lIUm9hWE5nWEc0Z0tpQmlhVzVrYVc1bklHOW1JR0IwYUdselFYSm5ZQ0JoYm1RZ2RHaGxJR0J3WVhKMGFXRnNjMkFnY0hKbGNHVnVaR1ZrSUhSdklIUm9iM05sSUhCeWIzWnBaR1ZrSUhSdlhHNGdLaUIwYUdVZ2QzSmhjSEJsY2k1Y2JpQXFYRzRnS2lCQWNISnBkbUYwWlZ4dUlDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdablZ1WXlCVWFHVWdablZ1WTNScGIyNGdkRzhnY0dGeWRHbGhiR3g1SUdGd2NHeDVJR0Z5WjNWdFpXNTBjeUIwYnk1Y2JpQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmlhWFJ0WVhOcklGUm9aU0JpYVhSdFlYTnJJRzltSUdac1lXZHpMaUJUWldVZ1lHTnlaV0YwWlZkeVlYQndaWEpnSUdadmNpQnRiM0psSUdSbGRHRnBiSE11WEc0Z0tpQkFjR0Z5WVcwZ2V5cDlJSFJvYVhOQmNtY2dWR2hsSUdCMGFHbHpZQ0JpYVc1a2FXNW5JRzltSUdCbWRXNWpZQzVjYmlBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUhCaGNuUnBZV3h6SUZSb1pTQmhjbWQxYldWdWRITWdkRzhnY0hKbGNHVnVaQ0IwYnlCMGFHOXpaU0J3Y205MmFXUmxaQ0IwYnlCMGFHVWdibVYzSUdaMWJtTjBhVzl1TGx4dUlDb2dRSEpsZEhWeWJuTWdlMFoxYm1OMGFXOXVmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2dZbTkxYm1RZ1puVnVZM1JwYjI0dVhHNGdLaTljYm1aMWJtTjBhVzl1SUdOeVpXRjBaVkJoY25ScFlXeFhjbUZ3Y0dWeUtHWjFibU1zSUdKcGRHMWhjMnNzSUhSb2FYTkJjbWNzSUhCaGNuUnBZV3h6S1NCN1hHNGdJSFpoY2lCcGMwSnBibVFnUFNCaWFYUnRZWE5ySUNZZ1FrbE9SRjlHVEVGSExGeHVJQ0FnSUNBZ1EzUnZjaUE5SUdOeVpXRjBaVU4wYjNKWGNtRndjR1Z5S0daMWJtTXBPMXh1WEc0Z0lHWjFibU4wYVc5dUlIZHlZWEJ3WlhJb0tTQjdYRzRnSUNBZ0x5OGdRWFp2YVdRZ1lHRnlaM1Z0Wlc1MGMyQWdiMkpxWldOMElIVnpaU0JrYVhOeGRXRnNhV1o1YVc1bklHOXdkR2x0YVhwaGRHbHZibk1nWW5sY2JpQWdJQ0F2THlCamIyNTJaWEowYVc1bklHbDBJSFJ2SUdGdUlHRnljbUY1SUdKbFptOXlaU0J3Y205MmFXUnBibWNnYVhRZ1lHWjFibU5nTGx4dUlDQWdJSFpoY2lCaGNtZHpTVzVrWlhnZ1BTQXRNU3hjYmlBZ0lDQWdJQ0FnWVhKbmMweGxibWQwYUNBOUlHRnlaM1Z0Wlc1MGN5NXNaVzVuZEdnc1hHNGdJQ0FnSUNBZ0lHeGxablJKYm1SbGVDQTlJQzB4TEZ4dUlDQWdJQ0FnSUNCc1pXWjBUR1Z1WjNSb0lEMGdjR0Z5ZEdsaGJITXViR1Z1WjNSb0xGeHVJQ0FnSUNBZ0lDQmhjbWR6SUQwZ1FYSnlZWGtvYkdWbWRFeGxibWQwYUNBcklHRnlaM05NWlc1bmRHZ3BPMXh1WEc0Z0lDQWdkMmhwYkdVZ0tDc3JiR1ZtZEVsdVpHVjRJRHdnYkdWbWRFeGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ1lYSm5jMXRzWldaMFNXNWtaWGhkSUQwZ2NHRnlkR2xoYkhOYmJHVm1kRWx1WkdWNFhUdGNiaUFnSUNCOVhHNGdJQ0FnZDJocGJHVWdLR0Z5WjNOTVpXNW5kR2d0TFNrZ2UxeHVJQ0FnSUNBZ1lYSm5jMXRzWldaMFNXNWtaWGdySzEwZ1BTQmhjbWQxYldWdWRITmJLeXRoY21kelNXNWtaWGhkTzF4dUlDQWdJSDFjYmlBZ0lDQjJZWElnWm00Z1BTQW9kR2hwY3lBbUppQjBhR2x6SUNFOVBTQm5iRzlpWVd3Z0ppWWdkR2hwY3lCcGJuTjBZVzVqWlc5bUlIZHlZWEJ3WlhJcElEOGdRM1J2Y2lBNklHWjFibU03WEc0Z0lDQWdjbVYwZFhKdUlHWnVMbUZ3Y0d4NUtHbHpRbWx1WkNBL0lIUm9hWE5CY21jZ09pQjBhR2x6TENCaGNtZHpLVHRjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdkM0poY0hCbGNqdGNibjFjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCamNtVmhkR1ZRWVhKMGFXRnNWM0poY0hCbGNqdGNiaUpkZlE9PSIsInZhciBiYXNlU2V0RGF0YSA9IHJlcXVpcmUoJy4vYmFzZVNldERhdGEnKSxcbiAgICBjcmVhdGVCaW5kV3JhcHBlciA9IHJlcXVpcmUoJy4vY3JlYXRlQmluZFdyYXBwZXInKSxcbiAgICBjcmVhdGVIeWJyaWRXcmFwcGVyID0gcmVxdWlyZSgnLi9jcmVhdGVIeWJyaWRXcmFwcGVyJyksXG4gICAgY3JlYXRlUGFydGlhbFdyYXBwZXIgPSByZXF1aXJlKCcuL2NyZWF0ZVBhcnRpYWxXcmFwcGVyJyksXG4gICAgZ2V0RGF0YSA9IHJlcXVpcmUoJy4vZ2V0RGF0YScpLFxuICAgIG1lcmdlRGF0YSA9IHJlcXVpcmUoJy4vbWVyZ2VEYXRhJyksXG4gICAgc2V0RGF0YSA9IHJlcXVpcmUoJy4vc2V0RGF0YScpO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciB3cmFwcGVyIG1ldGFkYXRhLiAqL1xudmFyIEJJTkRfRkxBRyA9IDEsXG4gICAgQklORF9LRVlfRkxBRyA9IDIsXG4gICAgUEFSVElBTF9GTEFHID0gMzIsXG4gICAgUEFSVElBTF9SSUdIVF9GTEFHID0gNjQ7XG5cbi8qKiBVc2VkIGFzIHRoZSBgVHlwZUVycm9yYCBtZXNzYWdlIGZvciBcIkZ1bmN0aW9uc1wiIG1ldGhvZHMuICovXG52YXIgRlVOQ19FUlJPUl9URVhUID0gJ0V4cGVjdGVkIGEgZnVuY3Rpb24nO1xuXG4vKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1heCA9IE1hdGgubWF4O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGVpdGhlciBjdXJyaWVzIG9yIGludm9rZXMgYGZ1bmNgIHdpdGggb3B0aW9uYWxcbiAqIGB0aGlzYCBiaW5kaW5nIGFuZCBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb258c3RyaW5nfSBmdW5jIFRoZSBmdW5jdGlvbiBvciBtZXRob2QgbmFtZSB0byByZWZlcmVuY2UuXG4gKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBvZiBmbGFncy5cbiAqICBUaGUgYml0bWFzayBtYXkgYmUgY29tcG9zZWQgb2YgdGhlIGZvbGxvd2luZyBmbGFnczpcbiAqICAgICAxIC0gYF8uYmluZGBcbiAqICAgICAyIC0gYF8uYmluZEtleWBcbiAqICAgICA0IC0gYF8uY3VycnlgIG9yIGBfLmN1cnJ5UmlnaHRgIG9mIGEgYm91bmQgZnVuY3Rpb25cbiAqICAgICA4IC0gYF8uY3VycnlgXG4gKiAgICAxNiAtIGBfLmN1cnJ5UmlnaHRgXG4gKiAgICAzMiAtIGBfLnBhcnRpYWxgXG4gKiAgICA2NCAtIGBfLnBhcnRpYWxSaWdodGBcbiAqICAgMTI4IC0gYF8ucmVhcmdgXG4gKiAgIDI1NiAtIGBfLmFyeWBcbiAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gKiBAcGFyYW0ge0FycmF5fSBbcGFydGlhbHNdIFRoZSBhcmd1bWVudHMgdG8gYmUgcGFydGlhbGx5IGFwcGxpZWQuXG4gKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc10gVGhlIGBwYXJ0aWFsc2AgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAqIEBwYXJhbSB7QXJyYXl9IFthcmdQb3NdIFRoZSBhcmd1bWVudCBwb3NpdGlvbnMgb2YgdGhlIG5ldyBmdW5jdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbYXJ5XSBUaGUgYXJpdHkgY2FwIG9mIGBmdW5jYC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbYXJpdHldIFRoZSBhcml0eSBvZiBgZnVuY2AuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB3cmFwcGVkIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBjcmVhdGVXcmFwcGVyKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzLCBhcmdQb3MsIGFyeSwgYXJpdHkpIHtcbiAgdmFyIGlzQmluZEtleSA9IGJpdG1hc2sgJiBCSU5EX0tFWV9GTEFHO1xuICBpZiAoIWlzQmluZEtleSAmJiB0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICB9XG4gIHZhciBsZW5ndGggPSBwYXJ0aWFscyA/IHBhcnRpYWxzLmxlbmd0aCA6IDA7XG4gIGlmICghbGVuZ3RoKSB7XG4gICAgYml0bWFzayAmPSB+KFBBUlRJQUxfRkxBRyB8IFBBUlRJQUxfUklHSFRfRkxBRyk7XG4gICAgcGFydGlhbHMgPSBob2xkZXJzID0gdW5kZWZpbmVkO1xuICB9XG4gIGxlbmd0aCAtPSAoaG9sZGVycyA/IGhvbGRlcnMubGVuZ3RoIDogMCk7XG4gIGlmIChiaXRtYXNrICYgUEFSVElBTF9SSUdIVF9GTEFHKSB7XG4gICAgdmFyIHBhcnRpYWxzUmlnaHQgPSBwYXJ0aWFscyxcbiAgICAgICAgaG9sZGVyc1JpZ2h0ID0gaG9sZGVycztcblxuICAgIHBhcnRpYWxzID0gaG9sZGVycyA9IHVuZGVmaW5lZDtcbiAgfVxuICB2YXIgZGF0YSA9IGlzQmluZEtleSA/IHVuZGVmaW5lZCA6IGdldERhdGEoZnVuYyksXG4gICAgICBuZXdEYXRhID0gW2Z1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzLCBwYXJ0aWFsc1JpZ2h0LCBob2xkZXJzUmlnaHQsIGFyZ1BvcywgYXJ5LCBhcml0eV07XG5cbiAgaWYgKGRhdGEpIHtcbiAgICBtZXJnZURhdGEobmV3RGF0YSwgZGF0YSk7XG4gICAgYml0bWFzayA9IG5ld0RhdGFbMV07XG4gICAgYXJpdHkgPSBuZXdEYXRhWzldO1xuICB9XG4gIG5ld0RhdGFbOV0gPSBhcml0eSA9PSBudWxsXG4gICAgPyAoaXNCaW5kS2V5ID8gMCA6IGZ1bmMubGVuZ3RoKVxuICAgIDogKG5hdGl2ZU1heChhcml0eSAtIGxlbmd0aCwgMCkgfHwgMCk7XG5cbiAgaWYgKGJpdG1hc2sgPT0gQklORF9GTEFHKSB7XG4gICAgdmFyIHJlc3VsdCA9IGNyZWF0ZUJpbmRXcmFwcGVyKG5ld0RhdGFbMF0sIG5ld0RhdGFbMl0pO1xuICB9IGVsc2UgaWYgKChiaXRtYXNrID09IFBBUlRJQUxfRkxBRyB8fCBiaXRtYXNrID09IChCSU5EX0ZMQUcgfCBQQVJUSUFMX0ZMQUcpKSAmJiAhbmV3RGF0YVs0XS5sZW5ndGgpIHtcbiAgICByZXN1bHQgPSBjcmVhdGVQYXJ0aWFsV3JhcHBlci5hcHBseSh1bmRlZmluZWQsIG5ld0RhdGEpO1xuICB9IGVsc2Uge1xuICAgIHJlc3VsdCA9IGNyZWF0ZUh5YnJpZFdyYXBwZXIuYXBwbHkodW5kZWZpbmVkLCBuZXdEYXRhKTtcbiAgfVxuICB2YXIgc2V0dGVyID0gZGF0YSA/IGJhc2VTZXREYXRhIDogc2V0RGF0YTtcbiAgcmV0dXJuIHNldHRlcihyZXN1bHQsIG5ld0RhdGEpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZVdyYXBwZXI7XG4iLCJ2YXIgYXJyYXlTb21lID0gcmVxdWlyZSgnLi9hcnJheVNvbWUnKTtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsRGVlcGAgZm9yIGFycmF5cyB3aXRoIHN1cHBvcnQgZm9yXG4gKiBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBjb21wYXJlLlxuICogQHBhcmFtIHtBcnJheX0gb3RoZXIgVGhlIG90aGVyIGFycmF5IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpbmcgYXJyYXlzLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNMb29zZV0gU3BlY2lmeSBwZXJmb3JtaW5nIHBhcnRpYWwgY29tcGFyaXNvbnMuXG4gKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tBXSBUcmFja3MgdHJhdmVyc2VkIGB2YWx1ZWAgb2JqZWN0cy5cbiAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0JdIFRyYWNrcyB0cmF2ZXJzZWQgYG90aGVyYCBvYmplY3RzLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBhcnJheXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gZXF1YWxBcnJheXMoYXJyYXksIG90aGVyLCBlcXVhbEZ1bmMsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgYXJyTGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgb3RoTGVuZ3RoID0gb3RoZXIubGVuZ3RoO1xuXG4gIGlmIChhcnJMZW5ndGggIT0gb3RoTGVuZ3RoICYmICEoaXNMb29zZSAmJiBvdGhMZW5ndGggPiBhcnJMZW5ndGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIElnbm9yZSBub24taW5kZXggcHJvcGVydGllcy5cbiAgd2hpbGUgKCsraW5kZXggPCBhcnJMZW5ndGgpIHtcbiAgICB2YXIgYXJyVmFsdWUgPSBhcnJheVtpbmRleF0sXG4gICAgICAgIG90aFZhbHVlID0gb3RoZXJbaW5kZXhdLFxuICAgICAgICByZXN1bHQgPSBjdXN0b21pemVyID8gY3VzdG9taXplcihpc0xvb3NlID8gb3RoVmFsdWUgOiBhcnJWYWx1ZSwgaXNMb29zZSA/IGFyclZhbHVlIDogb3RoVmFsdWUsIGluZGV4KSA6IHVuZGVmaW5lZDtcblxuICAgIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy8gUmVjdXJzaXZlbHkgY29tcGFyZSBhcnJheXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICBpZiAoaXNMb29zZSkge1xuICAgICAgaWYgKCFhcnJheVNvbWUob3RoZXIsIGZ1bmN0aW9uKG90aFZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJyVmFsdWUgPT09IG90aFZhbHVlIHx8IGVxdWFsRnVuYyhhcnJWYWx1ZSwgb3RoVmFsdWUsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKTtcbiAgICAgICAgICB9KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghKGFyclZhbHVlID09PSBvdGhWYWx1ZSB8fCBlcXVhbEZ1bmMoYXJyVmFsdWUsIG90aFZhbHVlLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQikpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVxdWFsQXJyYXlzO1xuIiwiLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGJvb2xUYWcgPSAnW29iamVjdCBCb29sZWFuXScsXG4gICAgZGF0ZVRhZyA9ICdbb2JqZWN0IERhdGVdJyxcbiAgICBlcnJvclRhZyA9ICdbb2JqZWN0IEVycm9yXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXSc7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbERlZXBgIGZvciBjb21wYXJpbmcgb2JqZWN0cyBvZlxuICogdGhlIHNhbWUgYHRvU3RyaW5nVGFnYC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBvbmx5IHN1cHBvcnRzIGNvbXBhcmluZyB2YWx1ZXMgd2l0aCB0YWdzIG9mXG4gKiBgQm9vbGVhbmAsIGBEYXRlYCwgYEVycm9yYCwgYE51bWJlcmAsIGBSZWdFeHBgLCBvciBgU3RyaW5nYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG90aGVyIG9iamVjdCB0byBjb21wYXJlLlxuICogQHBhcmFtIHtzdHJpbmd9IHRhZyBUaGUgYHRvU3RyaW5nVGFnYCBvZiB0aGUgb2JqZWN0cyB0byBjb21wYXJlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGVxdWFsQnlUYWcob2JqZWN0LCBvdGhlciwgdGFnKSB7XG4gIHN3aXRjaCAodGFnKSB7XG4gICAgY2FzZSBib29sVGFnOlxuICAgIGNhc2UgZGF0ZVRhZzpcbiAgICAgIC8vIENvZXJjZSBkYXRlcyBhbmQgYm9vbGVhbnMgdG8gbnVtYmVycywgZGF0ZXMgdG8gbWlsbGlzZWNvbmRzIGFuZCBib29sZWFuc1xuICAgICAgLy8gdG8gYDFgIG9yIGAwYCB0cmVhdGluZyBpbnZhbGlkIGRhdGVzIGNvZXJjZWQgdG8gYE5hTmAgYXMgbm90IGVxdWFsLlxuICAgICAgcmV0dXJuICtvYmplY3QgPT0gK290aGVyO1xuXG4gICAgY2FzZSBlcnJvclRhZzpcbiAgICAgIHJldHVybiBvYmplY3QubmFtZSA9PSBvdGhlci5uYW1lICYmIG9iamVjdC5tZXNzYWdlID09IG90aGVyLm1lc3NhZ2U7XG5cbiAgICBjYXNlIG51bWJlclRhZzpcbiAgICAgIC8vIFRyZWF0IGBOYU5gIHZzLiBgTmFOYCBhcyBlcXVhbC5cbiAgICAgIHJldHVybiAob2JqZWN0ICE9ICtvYmplY3QpXG4gICAgICAgID8gb3RoZXIgIT0gK290aGVyXG4gICAgICAgIDogb2JqZWN0ID09ICtvdGhlcjtcblxuICAgIGNhc2UgcmVnZXhwVGFnOlxuICAgIGNhc2Ugc3RyaW5nVGFnOlxuICAgICAgLy8gQ29lcmNlIHJlZ2V4ZXMgdG8gc3RyaW5ncyBhbmQgdHJlYXQgc3RyaW5ncyBwcmltaXRpdmVzIGFuZCBzdHJpbmdcbiAgICAgIC8vIG9iamVjdHMgYXMgZXF1YWwuIFNlZSBodHRwczovL2VzNS5naXRodWIuaW8vI3gxNS4xMC42LjQgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgIHJldHVybiBvYmplY3QgPT0gKG90aGVyICsgJycpO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBlcXVhbEJ5VGFnO1xuIiwidmFyIGtleXMgPSByZXF1aXJlKCcuLi9vYmplY3Qva2V5cycpO1xuXG4vKiogVXNlZCBmb3IgbmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsRGVlcGAgZm9yIG9iamVjdHMgd2l0aCBzdXBwb3J0IGZvclxuICogcGFydGlhbCBkZWVwIGNvbXBhcmlzb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBvdGhlciBUaGUgb3RoZXIgb2JqZWN0IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpbmcgdmFsdWVzLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNMb29zZV0gU3BlY2lmeSBwZXJmb3JtaW5nIHBhcnRpYWwgY29tcGFyaXNvbnMuXG4gKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tBXSBUcmFja3MgdHJhdmVyc2VkIGB2YWx1ZWAgb2JqZWN0cy5cbiAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0JdIFRyYWNrcyB0cmF2ZXJzZWQgYG90aGVyYCBvYmplY3RzLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGVxdWFsT2JqZWN0cyhvYmplY3QsIG90aGVyLCBlcXVhbEZ1bmMsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKSB7XG4gIHZhciBvYmpQcm9wcyA9IGtleXMob2JqZWN0KSxcbiAgICAgIG9iakxlbmd0aCA9IG9ialByb3BzLmxlbmd0aCxcbiAgICAgIG90aFByb3BzID0ga2V5cyhvdGhlciksXG4gICAgICBvdGhMZW5ndGggPSBvdGhQcm9wcy5sZW5ndGg7XG5cbiAgaWYgKG9iakxlbmd0aCAhPSBvdGhMZW5ndGggJiYgIWlzTG9vc2UpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIGluZGV4ID0gb2JqTGVuZ3RoO1xuICB3aGlsZSAoaW5kZXgtLSkge1xuICAgIHZhciBrZXkgPSBvYmpQcm9wc1tpbmRleF07XG4gICAgaWYgKCEoaXNMb29zZSA/IGtleSBpbiBvdGhlciA6IGhhc093blByb3BlcnR5LmNhbGwob3RoZXIsIGtleSkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHZhciBza2lwQ3RvciA9IGlzTG9vc2U7XG4gIHdoaWxlICgrK2luZGV4IDwgb2JqTGVuZ3RoKSB7XG4gICAga2V5ID0gb2JqUHJvcHNbaW5kZXhdO1xuICAgIHZhciBvYmpWYWx1ZSA9IG9iamVjdFtrZXldLFxuICAgICAgICBvdGhWYWx1ZSA9IG90aGVyW2tleV0sXG4gICAgICAgIHJlc3VsdCA9IGN1c3RvbWl6ZXIgPyBjdXN0b21pemVyKGlzTG9vc2UgPyBvdGhWYWx1ZSA6IG9ialZhbHVlLCBpc0xvb3NlPyBvYmpWYWx1ZSA6IG90aFZhbHVlLCBrZXkpIDogdW5kZWZpbmVkO1xuXG4gICAgLy8gUmVjdXJzaXZlbHkgY29tcGFyZSBvYmplY3RzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgaWYgKCEocmVzdWx0ID09PSB1bmRlZmluZWQgPyBlcXVhbEZ1bmMob2JqVmFsdWUsIG90aFZhbHVlLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQikgOiByZXN1bHQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHNraXBDdG9yIHx8IChza2lwQ3RvciA9IGtleSA9PSAnY29uc3RydWN0b3InKTtcbiAgfVxuICBpZiAoIXNraXBDdG9yKSB7XG4gICAgdmFyIG9iakN0b3IgPSBvYmplY3QuY29uc3RydWN0b3IsXG4gICAgICAgIG90aEN0b3IgPSBvdGhlci5jb25zdHJ1Y3RvcjtcblxuICAgIC8vIE5vbiBgT2JqZWN0YCBvYmplY3QgaW5zdGFuY2VzIHdpdGggZGlmZmVyZW50IGNvbnN0cnVjdG9ycyBhcmUgbm90IGVxdWFsLlxuICAgIGlmIChvYmpDdG9yICE9IG90aEN0b3IgJiZcbiAgICAgICAgKCdjb25zdHJ1Y3RvcicgaW4gb2JqZWN0ICYmICdjb25zdHJ1Y3RvcicgaW4gb3RoZXIpICYmXG4gICAgICAgICEodHlwZW9mIG9iakN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBvYmpDdG9yIGluc3RhbmNlb2Ygb2JqQ3RvciAmJlxuICAgICAgICAgIHR5cGVvZiBvdGhDdG9yID09ICdmdW5jdGlvbicgJiYgb3RoQ3RvciBpbnN0YW5jZW9mIG90aEN0b3IpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVxdWFsT2JqZWN0cztcbiIsInZhciBtZXRhTWFwID0gcmVxdWlyZSgnLi9tZXRhTWFwJyksXG4gICAgbm9vcCA9IHJlcXVpcmUoJy4uL3V0aWxpdHkvbm9vcCcpO1xuXG4vKipcbiAqIEdldHMgbWV0YWRhdGEgZm9yIGBmdW5jYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWV0YWRhdGEgZm9yIGBmdW5jYC5cbiAqL1xudmFyIGdldERhdGEgPSAhbWV0YU1hcCA/IG5vb3AgOiBmdW5jdGlvbihmdW5jKSB7XG4gIHJldHVybiBtZXRhTWFwLmdldChmdW5jKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0RGF0YTtcbiIsInZhciByZWFsTmFtZXMgPSByZXF1aXJlKCcuL3JlYWxOYW1lcycpO1xuXG4vKipcbiAqIEdldHMgdGhlIG5hbWUgb2YgYGZ1bmNgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGZ1bmN0aW9uIG5hbWUuXG4gKi9cbmZ1bmN0aW9uIGdldEZ1bmNOYW1lKGZ1bmMpIHtcbiAgdmFyIHJlc3VsdCA9IGZ1bmMubmFtZSxcbiAgICAgIGFycmF5ID0gcmVhbE5hbWVzW3Jlc3VsdF0sXG4gICAgICBsZW5ndGggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDA7XG5cbiAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgdmFyIGRhdGEgPSBhcnJheVtsZW5ndGhdLFxuICAgICAgICBvdGhlckZ1bmMgPSBkYXRhLmZ1bmM7XG4gICAgaWYgKG90aGVyRnVuYyA9PSBudWxsIHx8IG90aGVyRnVuYyA9PSBmdW5jKSB7XG4gICAgICByZXR1cm4gZGF0YS5uYW1lO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEZ1bmNOYW1lO1xuIiwidmFyIGJhc2VQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vYmFzZVByb3BlcnR5Jyk7XG5cbi8qKlxuICogR2V0cyB0aGUgXCJsZW5ndGhcIiBwcm9wZXJ0eSB2YWx1ZSBvZiBgb2JqZWN0YC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGF2b2lkIGEgW0pJVCBidWddKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3OTIpXG4gKiB0aGF0IGFmZmVjdHMgU2FmYXJpIG9uIGF0IGxlYXN0IGlPUyA4LjEtOC4zIEFSTTY0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgXCJsZW5ndGhcIiB2YWx1ZS5cbiAqL1xudmFyIGdldExlbmd0aCA9IGJhc2VQcm9wZXJ0eSgnbGVuZ3RoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0TGVuZ3RoO1xuIiwidmFyIGlzU3RyaWN0Q29tcGFyYWJsZSA9IHJlcXVpcmUoJy4vaXNTdHJpY3RDb21wYXJhYmxlJyksXG4gICAgcGFpcnMgPSByZXF1aXJlKCcuLi9vYmplY3QvcGFpcnMnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBwcm9wZXJ5IG5hbWVzLCB2YWx1ZXMsIGFuZCBjb21wYXJlIGZsYWdzIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG1hdGNoIGRhdGEgb2YgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGdldE1hdGNoRGF0YShvYmplY3QpIHtcbiAgdmFyIHJlc3VsdCA9IHBhaXJzKG9iamVjdCksXG4gICAgICBsZW5ndGggPSByZXN1bHQubGVuZ3RoO1xuXG4gIHdoaWxlIChsZW5ndGgtLSkge1xuICAgIHJlc3VsdFtsZW5ndGhdWzJdID0gaXNTdHJpY3RDb21wYXJhYmxlKHJlc3VsdFtsZW5ndGhdWzFdKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldE1hdGNoRGF0YTtcbiIsInZhciBpc05hdGl2ZSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNOYXRpdmUnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBuYXRpdmUgZnVuY3Rpb24gYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgbWV0aG9kIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBmdW5jdGlvbiBpZiBpdCdzIG5hdGl2ZSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAqL1xuZnVuY3Rpb24gZ2V0TmF0aXZlKG9iamVjdCwga2V5KSB7XG4gIHZhciB2YWx1ZSA9IG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogb2JqZWN0W2tleV07XG4gIHJldHVybiBpc05hdGl2ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXROYXRpdmU7XG4iLCIvKipcbiAqIEdldHMgdGhlIGluZGV4IGF0IHdoaWNoIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGBOYU5gIGlzIGZvdW5kIGluIGBhcnJheWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzZWFyY2guXG4gKiBAcGFyYW0ge251bWJlcn0gZnJvbUluZGV4IFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgYE5hTmAsIGVsc2UgYC0xYC5cbiAqL1xuZnVuY3Rpb24gaW5kZXhPZk5hTihhcnJheSwgZnJvbUluZGV4LCBmcm9tUmlnaHQpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgIGluZGV4ID0gZnJvbUluZGV4ICsgKGZyb21SaWdodCA/IDAgOiAtMSk7XG5cbiAgd2hpbGUgKChmcm9tUmlnaHQgPyBpbmRleC0tIDogKytpbmRleCA8IGxlbmd0aCkpIHtcbiAgICB2YXIgb3RoZXIgPSBhcnJheVtpbmRleF07XG4gICAgaWYgKG90aGVyICE9PSBvdGhlcikge1xuICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5kZXhPZk5hTjtcbiIsIi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEluaXRpYWxpemVzIGFuIGFycmF5IGNsb25lLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGluaXRpYWxpemVkIGNsb25lLlxuICovXG5mdW5jdGlvbiBpbml0Q2xvbmVBcnJheShhcnJheSkge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgcmVzdWx0ID0gbmV3IGFycmF5LmNvbnN0cnVjdG9yKGxlbmd0aCk7XG5cbiAgLy8gQWRkIGFycmF5IHByb3BlcnRpZXMgYXNzaWduZWQgYnkgYFJlZ0V4cCNleGVjYC5cbiAgaWYgKGxlbmd0aCAmJiB0eXBlb2YgYXJyYXlbMF0gPT0gJ3N0cmluZycgJiYgaGFzT3duUHJvcGVydHkuY2FsbChhcnJheSwgJ2luZGV4JykpIHtcbiAgICByZXN1bHQuaW5kZXggPSBhcnJheS5pbmRleDtcbiAgICByZXN1bHQuaW5wdXQgPSBhcnJheS5pbnB1dDtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluaXRDbG9uZUFycmF5O1xuIiwiKGZ1bmN0aW9uIChnbG9iYWwpe1xudmFyIGJ1ZmZlckNsb25lID0gcmVxdWlyZSgnLi9idWZmZXJDbG9uZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYm9vbFRhZyA9ICdbb2JqZWN0IEJvb2xlYW5dJyxcbiAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nO1xuXG52YXIgYXJyYXlCdWZmZXJUYWcgPSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nLFxuICAgIGZsb2F0MzJUYWcgPSAnW29iamVjdCBGbG9hdDMyQXJyYXldJyxcbiAgICBmbG9hdDY0VGFnID0gJ1tvYmplY3QgRmxvYXQ2NEFycmF5XScsXG4gICAgaW50OFRhZyA9ICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgIGludDE2VGFnID0gJ1tvYmplY3QgSW50MTZBcnJheV0nLFxuICAgIGludDMyVGFnID0gJ1tvYmplY3QgSW50MzJBcnJheV0nLFxuICAgIHVpbnQ4VGFnID0gJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgIHVpbnQ4Q2xhbXBlZFRhZyA9ICdbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XScsXG4gICAgdWludDE2VGFnID0gJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICB1aW50MzJUYWcgPSAnW29iamVjdCBVaW50MzJBcnJheV0nO1xuXG4vKiogVXNlZCB0byBtYXRjaCBgUmVnRXhwYCBmbGFncyBmcm9tIHRoZWlyIGNvZXJjZWQgc3RyaW5nIHZhbHVlcy4gKi9cbnZhciByZUZsYWdzID0gL1xcdyokLztcblxuLyoqIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBVaW50OEFycmF5ID0gZ2xvYmFsLlVpbnQ4QXJyYXk7XG5cbi8qKiBVc2VkIHRvIGxvb2t1cCBhIHR5cGUgYXJyYXkgY29uc3RydWN0b3JzIGJ5IGB0b1N0cmluZ1RhZ2AuICovXG52YXIgY3RvckJ5VGFnID0ge307XG5jdG9yQnlUYWdbZmxvYXQzMlRhZ10gPSBnbG9iYWwuRmxvYXQzMkFycmF5O1xuY3RvckJ5VGFnW2Zsb2F0NjRUYWddID0gZ2xvYmFsLkZsb2F0NjRBcnJheTtcbmN0b3JCeVRhZ1tpbnQ4VGFnXSA9IGdsb2JhbC5JbnQ4QXJyYXk7XG5jdG9yQnlUYWdbaW50MTZUYWddID0gZ2xvYmFsLkludDE2QXJyYXk7XG5jdG9yQnlUYWdbaW50MzJUYWddID0gZ2xvYmFsLkludDMyQXJyYXk7XG5jdG9yQnlUYWdbdWludDhUYWddID0gVWludDhBcnJheTtcbmN0b3JCeVRhZ1t1aW50OENsYW1wZWRUYWddID0gZ2xvYmFsLlVpbnQ4Q2xhbXBlZEFycmF5O1xuY3RvckJ5VGFnW3VpbnQxNlRhZ10gPSBnbG9iYWwuVWludDE2QXJyYXk7XG5jdG9yQnlUYWdbdWludDMyVGFnXSA9IGdsb2JhbC5VaW50MzJBcnJheTtcblxuLyoqXG4gKiBJbml0aWFsaXplcyBhbiBvYmplY3QgY2xvbmUgYmFzZWQgb24gaXRzIGB0b1N0cmluZ1RhZ2AuXG4gKlxuICogKipOb3RlOioqIFRoaXMgZnVuY3Rpb24gb25seSBzdXBwb3J0cyBjbG9uaW5nIHZhbHVlcyB3aXRoIHRhZ3Mgb2ZcbiAqIGBCb29sZWFuYCwgYERhdGVgLCBgRXJyb3JgLCBgTnVtYmVyYCwgYFJlZ0V4cGAsIG9yIGBTdHJpbmdgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge3N0cmluZ30gdGFnIFRoZSBgdG9TdHJpbmdUYWdgIG9mIHRoZSBvYmplY3QgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaW5pdGlhbGl6ZWQgY2xvbmUuXG4gKi9cbmZ1bmN0aW9uIGluaXRDbG9uZUJ5VGFnKG9iamVjdCwgdGFnLCBpc0RlZXApIHtcbiAgdmFyIEN0b3IgPSBvYmplY3QuY29uc3RydWN0b3I7XG4gIHN3aXRjaCAodGFnKSB7XG4gICAgY2FzZSBhcnJheUJ1ZmZlclRhZzpcbiAgICAgIHJldHVybiBidWZmZXJDbG9uZShvYmplY3QpO1xuXG4gICAgY2FzZSBib29sVGFnOlxuICAgIGNhc2UgZGF0ZVRhZzpcbiAgICAgIHJldHVybiBuZXcgQ3Rvcigrb2JqZWN0KTtcblxuICAgIGNhc2UgZmxvYXQzMlRhZzogY2FzZSBmbG9hdDY0VGFnOlxuICAgIGNhc2UgaW50OFRhZzogY2FzZSBpbnQxNlRhZzogY2FzZSBpbnQzMlRhZzpcbiAgICBjYXNlIHVpbnQ4VGFnOiBjYXNlIHVpbnQ4Q2xhbXBlZFRhZzogY2FzZSB1aW50MTZUYWc6IGNhc2UgdWludDMyVGFnOlxuICAgICAgLy8gU2FmYXJpIDUgbW9iaWxlIGluY29ycmVjdGx5IGhhcyBgT2JqZWN0YCBhcyB0aGUgY29uc3RydWN0b3Igb2YgdHlwZWQgYXJyYXlzLlxuICAgICAgaWYgKEN0b3IgaW5zdGFuY2VvZiBDdG9yKSB7XG4gICAgICAgIEN0b3IgPSBjdG9yQnlUYWdbdGFnXTtcbiAgICAgIH1cbiAgICAgIHZhciBidWZmZXIgPSBvYmplY3QuYnVmZmVyO1xuICAgICAgcmV0dXJuIG5ldyBDdG9yKGlzRGVlcCA/IGJ1ZmZlckNsb25lKGJ1ZmZlcikgOiBidWZmZXIsIG9iamVjdC5ieXRlT2Zmc2V0LCBvYmplY3QubGVuZ3RoKTtcblxuICAgIGNhc2UgbnVtYmVyVGFnOlxuICAgIGNhc2Ugc3RyaW5nVGFnOlxuICAgICAgcmV0dXJuIG5ldyBDdG9yKG9iamVjdCk7XG5cbiAgICBjYXNlIHJlZ2V4cFRhZzpcbiAgICAgIHZhciByZXN1bHQgPSBuZXcgQ3RvcihvYmplY3Quc291cmNlLCByZUZsYWdzLmV4ZWMob2JqZWN0KSk7XG4gICAgICByZXN1bHQubGFzdEluZGV4ID0gb2JqZWN0Lmxhc3RJbmRleDtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluaXRDbG9uZUJ5VGFnO1xuXG59KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbCA6IHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiID8gc2VsZiA6IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiB7fSlcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0OnV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYkltNXZaR1ZmYlc5a2RXeGxjeTlzYjJSaGMyZ3RZMjl0Y0dGMEwybHVkR1Z5Ym1Gc0wybHVhWFJEYkc5dVpVSjVWR0ZuTG1weklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJN1FVRkJRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQklpd2labWxzWlNJNkltZGxibVZ5WVhSbFpDNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUoyWVhJZ1luVm1abVZ5UTJ4dmJtVWdQU0J5WlhGMWFYSmxLQ2N1TDJKMVptWmxja05zYjI1bEp5azdYRzVjYmk4cUtpQmdUMkpxWldOMEkzUnZVM1J5YVc1bllDQnlaWE4xYkhRZ2NtVm1aWEpsYm1ObGN5NGdLaTljYm5aaGNpQmliMjlzVkdGbklEMGdKMXR2WW1wbFkzUWdRbTl2YkdWaGJsMG5MRnh1SUNBZ0lHUmhkR1ZVWVdjZ1BTQW5XMjlpYW1WamRDQkVZWFJsWFNjc1hHNGdJQ0FnYm5WdFltVnlWR0ZuSUQwZ0oxdHZZbXBsWTNRZ1RuVnRZbVZ5WFNjc1hHNGdJQ0FnY21WblpYaHdWR0ZuSUQwZ0oxdHZZbXBsWTNRZ1VtVm5SWGh3WFNjc1hHNGdJQ0FnYzNSeWFXNW5WR0ZuSUQwZ0oxdHZZbXBsWTNRZ1UzUnlhVzVuWFNjN1hHNWNiblpoY2lCaGNuSmhlVUoxWm1abGNsUmhaeUE5SUNkYmIySnFaV04wSUVGeWNtRjVRblZtWm1WeVhTY3NYRzRnSUNBZ1pteHZZWFF6TWxSaFp5QTlJQ2RiYjJKcVpXTjBJRVpzYjJGME16SkJjbkpoZVYwbkxGeHVJQ0FnSUdac2IyRjBOalJVWVdjZ1BTQW5XMjlpYW1WamRDQkdiRzloZERZMFFYSnlZWGxkSnl4Y2JpQWdJQ0JwYm5RNFZHRm5JRDBnSjF0dlltcGxZM1FnU1c1ME9FRnljbUY1WFNjc1hHNGdJQ0FnYVc1ME1UWlVZV2NnUFNBblcyOWlhbVZqZENCSmJuUXhOa0Z5Y21GNVhTY3NYRzRnSUNBZ2FXNTBNekpVWVdjZ1BTQW5XMjlpYW1WamRDQkpiblF6TWtGeWNtRjVYU2NzWEc0Z0lDQWdkV2x1ZERoVVlXY2dQU0FuVzI5aWFtVmpkQ0JWYVc1ME9FRnljbUY1WFNjc1hHNGdJQ0FnZFdsdWREaERiR0Z0Y0dWa1ZHRm5JRDBnSjF0dlltcGxZM1FnVldsdWREaERiR0Z0Y0dWa1FYSnlZWGxkSnl4Y2JpQWdJQ0IxYVc1ME1UWlVZV2NnUFNBblcyOWlhbVZqZENCVmFXNTBNVFpCY25KaGVWMG5MRnh1SUNBZ0lIVnBiblF6TWxSaFp5QTlJQ2RiYjJKcVpXTjBJRlZwYm5Rek1rRnljbUY1WFNjN1hHNWNiaThxS2lCVmMyVmtJSFJ2SUcxaGRHTm9JR0JTWldkRmVIQmdJR1pzWVdkeklHWnliMjBnZEdobGFYSWdZMjlsY21ObFpDQnpkSEpwYm1jZ2RtRnNkV1Z6TGlBcUwxeHVkbUZ5SUhKbFJteGhaM01nUFNBdlhGeDNLaVF2TzF4dVhHNHZLaW9nVG1GMGFYWmxJRzFsZEdodlpDQnlaV1psY21WdVkyVnpMaUFxTDF4dWRtRnlJRlZwYm5RNFFYSnlZWGtnUFNCbmJHOWlZV3d1VldsdWREaEJjbkpoZVR0Y2JseHVMeW9xSUZWelpXUWdkRzhnYkc5dmEzVndJR0VnZEhsd1pTQmhjbkpoZVNCamIyNXpkSEoxWTNSdmNuTWdZbmtnWUhSdlUzUnlhVzVuVkdGbllDNGdLaTljYm5aaGNpQmpkRzl5UW5sVVlXY2dQU0I3ZlR0Y2JtTjBiM0pDZVZSaFoxdG1iRzloZERNeVZHRm5YU0E5SUdkc2IySmhiQzVHYkc5aGRETXlRWEp5WVhrN1hHNWpkRzl5UW5sVVlXZGJabXh2WVhRMk5GUmhaMTBnUFNCbmJHOWlZV3d1Um14dllYUTJORUZ5Y21GNU8xeHVZM1J2Y2tKNVZHRm5XMmx1ZERoVVlXZGRJRDBnWjJ4dlltRnNMa2x1ZERoQmNuSmhlVHRjYm1OMGIzSkNlVlJoWjF0cGJuUXhObFJoWjEwZ1BTQm5iRzlpWVd3dVNXNTBNVFpCY25KaGVUdGNibU4wYjNKQ2VWUmhaMXRwYm5Rek1sUmhaMTBnUFNCbmJHOWlZV3d1U1c1ME16SkJjbkpoZVR0Y2JtTjBiM0pDZVZSaFoxdDFhVzUwT0ZSaFoxMGdQU0JWYVc1ME9FRnljbUY1TzF4dVkzUnZja0o1VkdGblczVnBiblE0UTJ4aGJYQmxaRlJoWjEwZ1BTQm5iRzlpWVd3dVZXbHVkRGhEYkdGdGNHVmtRWEp5WVhrN1hHNWpkRzl5UW5sVVlXZGJkV2x1ZERFMlZHRm5YU0E5SUdkc2IySmhiQzVWYVc1ME1UWkJjbkpoZVR0Y2JtTjBiM0pDZVZSaFoxdDFhVzUwTXpKVVlXZGRJRDBnWjJ4dlltRnNMbFZwYm5Rek1rRnljbUY1TzF4dVhHNHZLaXBjYmlBcUlFbHVhWFJwWVd4cGVtVnpJR0Z1SUc5aWFtVmpkQ0JqYkc5dVpTQmlZWE5sWkNCdmJpQnBkSE1nWUhSdlUzUnlhVzVuVkdGbllDNWNiaUFxWEc0Z0tpQXFLazV2ZEdVNktpb2dWR2hwY3lCbWRXNWpkR2x2YmlCdmJteDVJSE4xY0hCdmNuUnpJR05zYjI1cGJtY2dkbUZzZFdWeklIZHBkR2dnZEdGbmN5QnZabHh1SUNvZ1lFSnZiMnhsWVc1Z0xDQmdSR0YwWldBc0lHQkZjbkp2Y21Bc0lHQk9kVzFpWlhKZ0xDQmdVbVZuUlhod1lDd2diM0lnWUZOMGNtbHVaMkF1WEc0Z0tseHVJQ29nUUhCeWFYWmhkR1ZjYmlBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdlltcGxZM1FnVkdobElHOWlhbVZqZENCMGJ5QmpiRzl1WlM1Y2JpQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQjBZV2NnVkdobElHQjBiMU4wY21sdVoxUmhaMkFnYjJZZ2RHaGxJRzlpYW1WamRDQjBieUJqYkc5dVpTNWNiaUFxSUVCd1lYSmhiU0I3WW05dmJHVmhibjBnVzJselJHVmxjRjBnVTNCbFkybG1lU0JoSUdSbFpYQWdZMnh2Ym1VdVhHNGdLaUJBY21WMGRYSnVjeUI3VDJKcVpXTjBmU0JTWlhSMWNtNXpJSFJvWlNCcGJtbDBhV0ZzYVhwbFpDQmpiRzl1WlM1Y2JpQXFMMXh1Wm5WdVkzUnBiMjRnYVc1cGRFTnNiMjVsUW5sVVlXY29iMkpxWldOMExDQjBZV2NzSUdselJHVmxjQ2tnZTF4dUlDQjJZWElnUTNSdmNpQTlJRzlpYW1WamRDNWpiMjV6ZEhKMVkzUnZjanRjYmlBZ2MzZHBkR05vSUNoMFlXY3BJSHRjYmlBZ0lDQmpZWE5sSUdGeWNtRjVRblZtWm1WeVZHRm5PbHh1SUNBZ0lDQWdjbVYwZFhKdUlHSjFabVpsY2tOc2IyNWxLRzlpYW1WamRDazdYRzVjYmlBZ0lDQmpZWE5sSUdKdmIyeFVZV2M2WEc0Z0lDQWdZMkZ6WlNCa1lYUmxWR0ZuT2x4dUlDQWdJQ0FnY21WMGRYSnVJRzVsZHlCRGRHOXlLQ3R2WW1wbFkzUXBPMXh1WEc0Z0lDQWdZMkZ6WlNCbWJHOWhkRE15VkdGbk9pQmpZWE5sSUdac2IyRjBOalJVWVdjNlhHNGdJQ0FnWTJGelpTQnBiblE0VkdGbk9pQmpZWE5sSUdsdWRERTJWR0ZuT2lCallYTmxJR2x1ZERNeVZHRm5PbHh1SUNBZ0lHTmhjMlVnZFdsdWREaFVZV2M2SUdOaGMyVWdkV2x1ZERoRGJHRnRjR1ZrVkdGbk9pQmpZWE5sSUhWcGJuUXhObFJoWnpvZ1kyRnpaU0IxYVc1ME16SlVZV2M2WEc0Z0lDQWdJQ0F2THlCVFlXWmhjbWtnTlNCdGIySnBiR1VnYVc1amIzSnlaV04wYkhrZ2FHRnpJR0JQWW1wbFkzUmdJR0Z6SUhSb1pTQmpiMjV6ZEhKMVkzUnZjaUJ2WmlCMGVYQmxaQ0JoY25KaGVYTXVYRzRnSUNBZ0lDQnBaaUFvUTNSdmNpQnBibk4wWVc1alpXOW1JRU4wYjNJcElIdGNiaUFnSUNBZ0lDQWdRM1J2Y2lBOUlHTjBiM0pDZVZSaFoxdDBZV2RkTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnZG1GeUlHSjFabVpsY2lBOUlHOWlhbVZqZEM1aWRXWm1aWEk3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdibVYzSUVOMGIzSW9hWE5FWldWd0lEOGdZblZtWm1WeVEyeHZibVVvWW5WbVptVnlLU0E2SUdKMVptWmxjaXdnYjJKcVpXTjBMbUo1ZEdWUFptWnpaWFFzSUc5aWFtVmpkQzVzWlc1bmRHZ3BPMXh1WEc0Z0lDQWdZMkZ6WlNCdWRXMWlaWEpVWVdjNlhHNGdJQ0FnWTJGelpTQnpkSEpwYm1kVVlXYzZYRzRnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRU4wYjNJb2IySnFaV04wS1R0Y2JseHVJQ0FnSUdOaGMyVWdjbVZuWlhod1ZHRm5PbHh1SUNBZ0lDQWdkbUZ5SUhKbGMzVnNkQ0E5SUc1bGR5QkRkRzl5S0c5aWFtVmpkQzV6YjNWeVkyVXNJSEpsUm14aFozTXVaWGhsWXlodlltcGxZM1FwS1R0Y2JpQWdJQ0FnSUhKbGMzVnNkQzVzWVhOMFNXNWtaWGdnUFNCdlltcGxZM1F1YkdGemRFbHVaR1Y0TzF4dUlDQjlYRzRnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzU5WEc1Y2JtMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ2FXNXBkRU5zYjI1bFFubFVZV2M3WEc0aVhYMD0iLCIvKipcbiAqIEluaXRpYWxpemVzIGFuIG9iamVjdCBjbG9uZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaW5pdGlhbGl6ZWQgY2xvbmUuXG4gKi9cbmZ1bmN0aW9uIGluaXRDbG9uZU9iamVjdChvYmplY3QpIHtcbiAgdmFyIEN0b3IgPSBvYmplY3QuY29uc3RydWN0b3I7XG4gIGlmICghKHR5cGVvZiBDdG9yID09ICdmdW5jdGlvbicgJiYgQ3RvciBpbnN0YW5jZW9mIEN0b3IpKSB7XG4gICAgQ3RvciA9IE9iamVjdDtcbiAgfVxuICByZXR1cm4gbmV3IEN0b3I7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5pdENsb25lT2JqZWN0O1xuIiwidmFyIGdldExlbmd0aCA9IHJlcXVpcmUoJy4vZ2V0TGVuZ3RoJyksXG4gICAgaXNMZW5ndGggPSByZXF1aXJlKCcuL2lzTGVuZ3RoJyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYXJyYXktbGlrZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXlMaWtlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIGlzTGVuZ3RoKGdldExlbmd0aCh2YWx1ZSkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzQXJyYXlMaWtlO1xuIiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIGhvc3Qgb2JqZWN0IGluIElFIDwgOS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGhvc3Qgb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKi9cbnZhciBpc0hvc3RPYmplY3QgPSAoZnVuY3Rpb24oKSB7XG4gIHRyeSB7XG4gICAgT2JqZWN0KHsgJ3RvU3RyaW5nJzogMCB9ICsgJycpO1xuICB9IGNhdGNoKGUpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiBmYWxzZTsgfTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24odmFsdWUpIHtcbiAgICAvLyBJRSA8IDkgcHJlc2VudHMgbWFueSBob3N0IG9iamVjdHMgYXMgYE9iamVjdGAgb2JqZWN0cyB0aGF0IGNhbiBjb2VyY2VcbiAgICAvLyB0byBzdHJpbmdzIGRlc3BpdGUgaGF2aW5nIGltcHJvcGVybHkgZGVmaW5lZCBgdG9TdHJpbmdgIG1ldGhvZHMuXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZS50b1N0cmluZyAhPSAnZnVuY3Rpb24nICYmIHR5cGVvZiAodmFsdWUgKyAnJykgPT0gJ3N0cmluZyc7XG4gIH07XG59KCkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzSG9zdE9iamVjdDtcbiIsIi8qKiBVc2VkIHRvIGRldGVjdCB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlcy4gKi9cbnZhciByZUlzVWludCA9IC9eXFxkKyQvO1xuXG4vKipcbiAqIFVzZWQgYXMgdGhlIFttYXhpbXVtIGxlbmd0aF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtbnVtYmVyLm1heF9zYWZlX2ludGVnZXIpXG4gKiBvZiBhbiBhcnJheS1saWtlIHZhbHVlLlxuICovXG52YXIgTUFYX1NBRkVfSU5URUdFUiA9IDkwMDcxOTkyNTQ3NDA5OTE7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBhcnJheS1saWtlIGluZGV4LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPU1BWF9TQUZFX0lOVEVHRVJdIFRoZSB1cHBlciBib3VuZHMgb2YgYSB2YWxpZCBpbmRleC5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgaW5kZXgsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNJbmRleCh2YWx1ZSwgbGVuZ3RoKSB7XG4gIHZhbHVlID0gKHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyB8fCByZUlzVWludC50ZXN0KHZhbHVlKSkgPyArdmFsdWUgOiAtMTtcbiAgbGVuZ3RoID0gbGVuZ3RoID09IG51bGwgPyBNQVhfU0FGRV9JTlRFR0VSIDogbGVuZ3RoO1xuICByZXR1cm4gdmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8IGxlbmd0aDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0luZGV4O1xuIiwidmFyIGlzQXJyYXlMaWtlID0gcmVxdWlyZSgnLi9pc0FycmF5TGlrZScpLFxuICAgIGlzSW5kZXggPSByZXF1aXJlKCcuL2lzSW5kZXgnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2xhbmcvaXNPYmplY3QnKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIHByb3ZpZGVkIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgdmFsdWUgYXJndW1lbnQuXG4gKiBAcGFyYW0geyp9IGluZGV4IFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgaW5kZXggb3Iga2V5IGFyZ3VtZW50LlxuICogQHBhcmFtIHsqfSBvYmplY3QgVGhlIHBvdGVudGlhbCBpdGVyYXRlZSBvYmplY3QgYXJndW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzSXRlcmF0ZWVDYWxsKHZhbHVlLCBpbmRleCwgb2JqZWN0KSB7XG4gIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgdHlwZSA9IHR5cGVvZiBpbmRleDtcbiAgaWYgKHR5cGUgPT0gJ251bWJlcidcbiAgICAgID8gKGlzQXJyYXlMaWtlKG9iamVjdCkgJiYgaXNJbmRleChpbmRleCwgb2JqZWN0Lmxlbmd0aCkpXG4gICAgICA6ICh0eXBlID09ICdzdHJpbmcnICYmIGluZGV4IGluIG9iamVjdCkpIHtcbiAgICB2YXIgb3RoZXIgPSBvYmplY3RbaW5kZXhdO1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdmFsdWUgPyAodmFsdWUgPT09IG90aGVyKSA6IChvdGhlciAhPT0gb3RoZXIpO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0l0ZXJhdGVlQ2FsbDtcbiIsInZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FycmF5JyksXG4gICAgdG9PYmplY3QgPSByZXF1aXJlKCcuL3RvT2JqZWN0Jyk7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIHByb3BlcnR5IG5hbWVzIHdpdGhpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbnZhciByZUlzRGVlcFByb3AgPSAvXFwufFxcWyg/OlteW1xcXV0qfChbXCInXSkoPzooPyFcXDEpW15cXG5cXFxcXXxcXFxcLikqP1xcMSlcXF0vLFxuICAgIHJlSXNQbGFpblByb3AgPSAvXlxcdyokLztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHByb3BlcnR5IG5hbWUgYW5kIG5vdCBhIHByb3BlcnR5IHBhdGguXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkga2V5cyBvbi5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcHJvcGVydHkgbmFtZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0tleSh2YWx1ZSwgb2JqZWN0KSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICBpZiAoKHR5cGUgPT0gJ3N0cmluZycgJiYgcmVJc1BsYWluUHJvcC50ZXN0KHZhbHVlKSkgfHwgdHlwZSA9PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgcmVzdWx0ID0gIXJlSXNEZWVwUHJvcC50ZXN0KHZhbHVlKTtcbiAgcmV0dXJuIHJlc3VsdCB8fCAob2JqZWN0ICE9IG51bGwgJiYgdmFsdWUgaW4gdG9PYmplY3Qob2JqZWN0KSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNLZXk7XG4iLCJ2YXIgTGF6eVdyYXBwZXIgPSByZXF1aXJlKCcuL0xhenlXcmFwcGVyJyksXG4gICAgZ2V0RGF0YSA9IHJlcXVpcmUoJy4vZ2V0RGF0YScpLFxuICAgIGdldEZ1bmNOYW1lID0gcmVxdWlyZSgnLi9nZXRGdW5jTmFtZScpLFxuICAgIGxvZGFzaCA9IHJlcXVpcmUoJy4uL2NoYWluL2xvZGFzaCcpO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgZnVuY2AgaGFzIGEgbGF6eSBjb3VudGVycGFydC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGZ1bmNgIGhhcyBhIGxhenkgY291bnRlcnBhcnQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNMYXppYWJsZShmdW5jKSB7XG4gIHZhciBmdW5jTmFtZSA9IGdldEZ1bmNOYW1lKGZ1bmMpO1xuICBpZiAoIShmdW5jTmFtZSBpbiBMYXp5V3JhcHBlci5wcm90b3R5cGUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBvdGhlciA9IGxvZGFzaFtmdW5jTmFtZV07XG4gIGlmIChmdW5jID09PSBvdGhlcikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHZhciBkYXRhID0gZ2V0RGF0YShvdGhlcik7XG4gIHJldHVybiAhIWRhdGEgJiYgZnVuYyA9PT0gZGF0YVswXTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0xhemlhYmxlO1xuIiwiLyoqXG4gKiBVc2VkIGFzIHRoZSBbbWF4aW11bSBsZW5ndGhdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzYuMC8jc2VjLW51bWJlci5tYXhfc2FmZV9pbnRlZ2VyKVxuICogb2YgYW4gYXJyYXktbGlrZSB2YWx1ZS5cbiAqL1xudmFyIE1BWF9TQUZFX0lOVEVHRVIgPSA5MDA3MTk5MjU0NzQwOTkxO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgYXJyYXktbGlrZSBsZW5ndGguXG4gKlxuICogKipOb3RlOioqIFRoaXMgZnVuY3Rpb24gaXMgYmFzZWQgb24gW2BUb0xlbmd0aGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzYuMC8jc2VjLXRvbGVuZ3RoKS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGxlbmd0aCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0xlbmd0aCh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdudW1iZXInICYmIHZhbHVlID4gLTEgJiYgdmFsdWUgJSAxID09IDAgJiYgdmFsdWUgPD0gTUFYX1NBRkVfSU5URUdFUjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0xlbmd0aDtcbiIsIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNPYmplY3RMaWtlKHZhbHVlKSB7XG4gIHJldHVybiAhIXZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PSAnb2JqZWN0Jztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc09iamVjdExpa2U7XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9sYW5nL2lzT2JqZWN0Jyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUgZm9yIHN0cmljdCBlcXVhbGl0eSBjb21wYXJpc29ucywgaS5lLiBgPT09YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpZiBzdWl0YWJsZSBmb3Igc3RyaWN0XG4gKiAgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNTdHJpY3RDb21wYXJhYmxlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gdmFsdWUgJiYgIWlzT2JqZWN0KHZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc1N0cmljdENvbXBhcmFibGU7XG4iLCJ2YXIgYXJyYXlDb3B5ID0gcmVxdWlyZSgnLi9hcnJheUNvcHknKSxcbiAgICBjb21wb3NlQXJncyA9IHJlcXVpcmUoJy4vY29tcG9zZUFyZ3MnKSxcbiAgICBjb21wb3NlQXJnc1JpZ2h0ID0gcmVxdWlyZSgnLi9jb21wb3NlQXJnc1JpZ2h0JyksXG4gICAgcmVwbGFjZUhvbGRlcnMgPSByZXF1aXJlKCcuL3JlcGxhY2VIb2xkZXJzJyk7XG5cbi8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIHdyYXBwZXIgbWV0YWRhdGEuICovXG52YXIgQklORF9GTEFHID0gMSxcbiAgICBDVVJSWV9CT1VORF9GTEFHID0gNCxcbiAgICBDVVJSWV9GTEFHID0gOCxcbiAgICBBUllfRkxBRyA9IDEyOCxcbiAgICBSRUFSR19GTEFHID0gMjU2O1xuXG4vKiogVXNlZCBhcyB0aGUgaW50ZXJuYWwgYXJndW1lbnQgcGxhY2Vob2xkZXIuICovXG52YXIgUExBQ0VIT0xERVIgPSAnX19sb2Rhc2hfcGxhY2Vob2xkZXJfXyc7XG5cbi8qIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWluID0gTWF0aC5taW47XG5cbi8qKlxuICogTWVyZ2VzIHRoZSBmdW5jdGlvbiBtZXRhZGF0YSBvZiBgc291cmNlYCBpbnRvIGBkYXRhYC5cbiAqXG4gKiBNZXJnaW5nIG1ldGFkYXRhIHJlZHVjZXMgdGhlIG51bWJlciBvZiB3cmFwcGVycyByZXF1aXJlZCB0byBpbnZva2UgYSBmdW5jdGlvbi5cbiAqIFRoaXMgaXMgcG9zc2libGUgYmVjYXVzZSBtZXRob2RzIGxpa2UgYF8uYmluZGAsIGBfLmN1cnJ5YCwgYW5kIGBfLnBhcnRpYWxgXG4gKiBtYXkgYmUgYXBwbGllZCByZWdhcmRsZXNzIG9mIGV4ZWN1dGlvbiBvcmRlci4gTWV0aG9kcyBsaWtlIGBfLmFyeWAgYW5kIGBfLnJlYXJnYFxuICogYXVnbWVudCBmdW5jdGlvbiBhcmd1bWVudHMsIG1ha2luZyB0aGUgb3JkZXIgaW4gd2hpY2ggdGhleSBhcmUgZXhlY3V0ZWQgaW1wb3J0YW50LFxuICogcHJldmVudGluZyB0aGUgbWVyZ2luZyBvZiBtZXRhZGF0YS4gSG93ZXZlciwgd2UgbWFrZSBhbiBleGNlcHRpb24gZm9yIGEgc2FmZVxuICogY29tbW9uIGNhc2Ugd2hlcmUgY3VycmllZCBmdW5jdGlvbnMgaGF2ZSBgXy5hcnlgIGFuZCBvciBgXy5yZWFyZ2AgYXBwbGllZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gZGF0YSBUaGUgZGVzdGluYXRpb24gbWV0YWRhdGEuXG4gKiBAcGFyYW0ge0FycmF5fSBzb3VyY2UgVGhlIHNvdXJjZSBtZXRhZGF0YS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgZGF0YWAuXG4gKi9cbmZ1bmN0aW9uIG1lcmdlRGF0YShkYXRhLCBzb3VyY2UpIHtcbiAgdmFyIGJpdG1hc2sgPSBkYXRhWzFdLFxuICAgICAgc3JjQml0bWFzayA9IHNvdXJjZVsxXSxcbiAgICAgIG5ld0JpdG1hc2sgPSBiaXRtYXNrIHwgc3JjQml0bWFzayxcbiAgICAgIGlzQ29tbW9uID0gbmV3Qml0bWFzayA8IEFSWV9GTEFHO1xuXG4gIHZhciBpc0NvbWJvID1cbiAgICAoc3JjQml0bWFzayA9PSBBUllfRkxBRyAmJiBiaXRtYXNrID09IENVUlJZX0ZMQUcpIHx8XG4gICAgKHNyY0JpdG1hc2sgPT0gQVJZX0ZMQUcgJiYgYml0bWFzayA9PSBSRUFSR19GTEFHICYmIGRhdGFbN10ubGVuZ3RoIDw9IHNvdXJjZVs4XSkgfHxcbiAgICAoc3JjQml0bWFzayA9PSAoQVJZX0ZMQUcgfCBSRUFSR19GTEFHKSAmJiBiaXRtYXNrID09IENVUlJZX0ZMQUcpO1xuXG4gIC8vIEV4aXQgZWFybHkgaWYgbWV0YWRhdGEgY2FuJ3QgYmUgbWVyZ2VkLlxuICBpZiAoIShpc0NvbW1vbiB8fCBpc0NvbWJvKSkge1xuICAgIHJldHVybiBkYXRhO1xuICB9XG4gIC8vIFVzZSBzb3VyY2UgYHRoaXNBcmdgIGlmIGF2YWlsYWJsZS5cbiAgaWYgKHNyY0JpdG1hc2sgJiBCSU5EX0ZMQUcpIHtcbiAgICBkYXRhWzJdID0gc291cmNlWzJdO1xuICAgIC8vIFNldCB3aGVuIGN1cnJ5aW5nIGEgYm91bmQgZnVuY3Rpb24uXG4gICAgbmV3Qml0bWFzayB8PSAoYml0bWFzayAmIEJJTkRfRkxBRykgPyAwIDogQ1VSUllfQk9VTkRfRkxBRztcbiAgfVxuICAvLyBDb21wb3NlIHBhcnRpYWwgYXJndW1lbnRzLlxuICB2YXIgdmFsdWUgPSBzb3VyY2VbM107XG4gIGlmICh2YWx1ZSkge1xuICAgIHZhciBwYXJ0aWFscyA9IGRhdGFbM107XG4gICAgZGF0YVszXSA9IHBhcnRpYWxzID8gY29tcG9zZUFyZ3MocGFydGlhbHMsIHZhbHVlLCBzb3VyY2VbNF0pIDogYXJyYXlDb3B5KHZhbHVlKTtcbiAgICBkYXRhWzRdID0gcGFydGlhbHMgPyByZXBsYWNlSG9sZGVycyhkYXRhWzNdLCBQTEFDRUhPTERFUikgOiBhcnJheUNvcHkoc291cmNlWzRdKTtcbiAgfVxuICAvLyBDb21wb3NlIHBhcnRpYWwgcmlnaHQgYXJndW1lbnRzLlxuICB2YWx1ZSA9IHNvdXJjZVs1XTtcbiAgaWYgKHZhbHVlKSB7XG4gICAgcGFydGlhbHMgPSBkYXRhWzVdO1xuICAgIGRhdGFbNV0gPSBwYXJ0aWFscyA/IGNvbXBvc2VBcmdzUmlnaHQocGFydGlhbHMsIHZhbHVlLCBzb3VyY2VbNl0pIDogYXJyYXlDb3B5KHZhbHVlKTtcbiAgICBkYXRhWzZdID0gcGFydGlhbHMgPyByZXBsYWNlSG9sZGVycyhkYXRhWzVdLCBQTEFDRUhPTERFUikgOiBhcnJheUNvcHkoc291cmNlWzZdKTtcbiAgfVxuICAvLyBVc2Ugc291cmNlIGBhcmdQb3NgIGlmIGF2YWlsYWJsZS5cbiAgdmFsdWUgPSBzb3VyY2VbN107XG4gIGlmICh2YWx1ZSkge1xuICAgIGRhdGFbN10gPSBhcnJheUNvcHkodmFsdWUpO1xuICB9XG4gIC8vIFVzZSBzb3VyY2UgYGFyeWAgaWYgaXQncyBzbWFsbGVyLlxuICBpZiAoc3JjQml0bWFzayAmIEFSWV9GTEFHKSB7XG4gICAgZGF0YVs4XSA9IGRhdGFbOF0gPT0gbnVsbCA/IHNvdXJjZVs4XSA6IG5hdGl2ZU1pbihkYXRhWzhdLCBzb3VyY2VbOF0pO1xuICB9XG4gIC8vIFVzZSBzb3VyY2UgYGFyaXR5YCBpZiBvbmUgaXMgbm90IHByb3ZpZGVkLlxuICBpZiAoZGF0YVs5XSA9PSBudWxsKSB7XG4gICAgZGF0YVs5XSA9IHNvdXJjZVs5XTtcbiAgfVxuICAvLyBVc2Ugc291cmNlIGBmdW5jYCBhbmQgbWVyZ2UgYml0bWFza3MuXG4gIGRhdGFbMF0gPSBzb3VyY2VbMF07XG4gIGRhdGFbMV0gPSBuZXdCaXRtYXNrO1xuXG4gIHJldHVybiBkYXRhO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1lcmdlRGF0YTtcbiIsIihmdW5jdGlvbiAoZ2xvYmFsKXtcbnZhciBnZXROYXRpdmUgPSByZXF1aXJlKCcuL2dldE5hdGl2ZScpO1xuXG4vKiogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIFdlYWtNYXAgPSBnZXROYXRpdmUoZ2xvYmFsLCAnV2Vha01hcCcpO1xuXG4vKiogVXNlZCB0byBzdG9yZSBmdW5jdGlvbiBtZXRhZGF0YS4gKi9cbnZhciBtZXRhTWFwID0gV2Vha01hcCAmJiBuZXcgV2Vha01hcDtcblxubW9kdWxlLmV4cG9ydHMgPSBtZXRhTWFwO1xuXG59KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbCA6IHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiID8gc2VsZiA6IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiB7fSlcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0OnV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYkltNXZaR1ZmYlc5a2RXeGxjeTlzYjJSaGMyZ3RZMjl0Y0dGMEwybHVkR1Z5Ym1Gc0wyMWxkR0ZOWVhBdWFuTWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqdEJRVUZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CSWl3aVptbHNaU0k2SW1kbGJtVnlZWFJsWkM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SjJZWElnWjJWMFRtRjBhWFpsSUQwZ2NtVnhkV2x5WlNnbkxpOW5aWFJPWVhScGRtVW5LVHRjYmx4dUx5b3FJRTVoZEdsMlpTQnRaWFJvYjJRZ2NtVm1aWEpsYm1ObGN5NGdLaTljYm5aaGNpQlhaV0ZyVFdGd0lEMGdaMlYwVG1GMGFYWmxLR2RzYjJKaGJDd2dKMWRsWVd0TllYQW5LVHRjYmx4dUx5b3FJRlZ6WldRZ2RHOGdjM1J2Y21VZ1puVnVZM1JwYjI0Z2JXVjBZV1JoZEdFdUlDb3ZYRzUyWVhJZ2JXVjBZVTFoY0NBOUlGZGxZV3ROWVhBZ0ppWWdibVYzSUZkbFlXdE5ZWEE3WEc1Y2JtMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ2JXVjBZVTFoY0R0Y2JpSmRmUT09IiwiLyoqIFVzZWQgdG8gbG9va3VwIHVubWluaWZpZWQgZnVuY3Rpb24gbmFtZXMuICovXG52YXIgcmVhbE5hbWVzID0ge307XG5cbm1vZHVsZS5leHBvcnRzID0gcmVhbE5hbWVzO1xuIiwidmFyIGFycmF5Q29weSA9IHJlcXVpcmUoJy4vYXJyYXlDb3B5JyksXG4gICAgaXNJbmRleCA9IHJlcXVpcmUoJy4vaXNJbmRleCcpO1xuXG4vKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1pbiA9IE1hdGgubWluO1xuXG4vKipcbiAqIFJlb3JkZXIgYGFycmF5YCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBpbmRleGVzIHdoZXJlIHRoZSBlbGVtZW50IGF0XG4gKiB0aGUgZmlyc3QgaW5kZXggaXMgYXNzaWduZWQgYXMgdGhlIGZpcnN0IGVsZW1lbnQsIHRoZSBlbGVtZW50IGF0XG4gKiB0aGUgc2Vjb25kIGluZGV4IGlzIGFzc2lnbmVkIGFzIHRoZSBzZWNvbmQgZWxlbWVudCwgYW5kIHNvIG9uLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcmVvcmRlci5cbiAqIEBwYXJhbSB7QXJyYXl9IGluZGV4ZXMgVGhlIGFycmFuZ2VkIGFycmF5IGluZGV4ZXMuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gcmVvcmRlcihhcnJheSwgaW5kZXhlcykge1xuICB2YXIgYXJyTGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgbGVuZ3RoID0gbmF0aXZlTWluKGluZGV4ZXMubGVuZ3RoLCBhcnJMZW5ndGgpLFxuICAgICAgb2xkQXJyYXkgPSBhcnJheUNvcHkoYXJyYXkpO1xuXG4gIHdoaWxlIChsZW5ndGgtLSkge1xuICAgIHZhciBpbmRleCA9IGluZGV4ZXNbbGVuZ3RoXTtcbiAgICBhcnJheVtsZW5ndGhdID0gaXNJbmRleChpbmRleCwgYXJyTGVuZ3RoKSA/IG9sZEFycmF5W2luZGV4XSA6IHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcmVvcmRlcjtcbiIsIi8qKiBVc2VkIGFzIHRoZSBpbnRlcm5hbCBhcmd1bWVudCBwbGFjZWhvbGRlci4gKi9cbnZhciBQTEFDRUhPTERFUiA9ICdfX2xvZGFzaF9wbGFjZWhvbGRlcl9fJztcblxuLyoqXG4gKiBSZXBsYWNlcyBhbGwgYHBsYWNlaG9sZGVyYCBlbGVtZW50cyBpbiBgYXJyYXlgIHdpdGggYW4gaW50ZXJuYWwgcGxhY2Vob2xkZXJcbiAqIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIHRoZWlyIGluZGV4ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gKiBAcGFyYW0geyp9IHBsYWNlaG9sZGVyIFRoZSBwbGFjZWhvbGRlciB0byByZXBsYWNlLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAqL1xuZnVuY3Rpb24gcmVwbGFjZUhvbGRlcnMoYXJyYXksIHBsYWNlaG9sZGVyKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgcmVzSW5kZXggPSAtMSxcbiAgICAgIHJlc3VsdCA9IFtdO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgaWYgKGFycmF5W2luZGV4XSA9PT0gcGxhY2Vob2xkZXIpIHtcbiAgICAgIGFycmF5W2luZGV4XSA9IFBMQUNFSE9MREVSO1xuICAgICAgcmVzdWx0WysrcmVzSW5kZXhdID0gaW5kZXg7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcmVwbGFjZUhvbGRlcnM7XG4iLCJ2YXIgYmFzZVNldERhdGEgPSByZXF1aXJlKCcuL2Jhc2VTZXREYXRhJyksXG4gICAgbm93ID0gcmVxdWlyZSgnLi4vZGF0ZS9ub3cnKTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IHdoZW4gYSBmdW5jdGlvbiBiZWNvbWVzIGhvdC4gKi9cbnZhciBIT1RfQ09VTlQgPSAxNTAsXG4gICAgSE9UX1NQQU4gPSAxNjtcblxuLyoqXG4gKiBTZXRzIG1ldGFkYXRhIGZvciBgZnVuY2AuXG4gKlxuICogKipOb3RlOioqIElmIHRoaXMgZnVuY3Rpb24gYmVjb21lcyBob3QsIGkuZS4gaXMgaW52b2tlZCBhIGxvdCBpbiBhIHNob3J0XG4gKiBwZXJpb2Qgb2YgdGltZSwgaXQgd2lsbCB0cmlwIGl0cyBicmVha2VyIGFuZCB0cmFuc2l0aW9uIHRvIGFuIGlkZW50aXR5IGZ1bmN0aW9uXG4gKiB0byBhdm9pZCBnYXJiYWdlIGNvbGxlY3Rpb24gcGF1c2VzIGluIFY4LiBTZWUgW1Y4IGlzc3VlIDIwNzBdKGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0yMDcwKVxuICogZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXNzb2NpYXRlIG1ldGFkYXRhIHdpdGguXG4gKiBAcGFyYW0geyp9IGRhdGEgVGhlIG1ldGFkYXRhLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBmdW5jYC5cbiAqL1xudmFyIHNldERhdGEgPSAoZnVuY3Rpb24oKSB7XG4gIHZhciBjb3VudCA9IDAsXG4gICAgICBsYXN0Q2FsbGVkID0gMDtcblxuICByZXR1cm4gZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuICAgIHZhciBzdGFtcCA9IG5vdygpLFxuICAgICAgICByZW1haW5pbmcgPSBIT1RfU1BBTiAtIChzdGFtcCAtIGxhc3RDYWxsZWQpO1xuXG4gICAgbGFzdENhbGxlZCA9IHN0YW1wO1xuICAgIGlmIChyZW1haW5pbmcgPiAwKSB7XG4gICAgICBpZiAoKytjb3VudCA+PSBIT1RfQ09VTlQpIHtcbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY291bnQgPSAwO1xuICAgIH1cbiAgICByZXR1cm4gYmFzZVNldERhdGEoa2V5LCB2YWx1ZSk7XG4gIH07XG59KCkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHNldERhdGE7XG4iLCJ2YXIgaXNBcmd1bWVudHMgPSByZXF1aXJlKCcuLi9sYW5nL2lzQXJndW1lbnRzJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcnJheScpLFxuICAgIGlzSW5kZXggPSByZXF1aXJlKCcuL2lzSW5kZXgnKSxcbiAgICBpc0xlbmd0aCA9IHJlcXVpcmUoJy4vaXNMZW5ndGgnKSxcbiAgICBpc1N0cmluZyA9IHJlcXVpcmUoJy4uL2xhbmcvaXNTdHJpbmcnKSxcbiAgICBrZXlzSW4gPSByZXF1aXJlKCcuLi9vYmplY3Qva2V5c0luJyk7XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEEgZmFsbGJhY2sgaW1wbGVtZW50YXRpb24gb2YgYE9iamVjdC5rZXlzYCB3aGljaCBjcmVhdGVzIGFuIGFycmF5IG9mIHRoZVxuICogb3duIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIHNoaW1LZXlzKG9iamVjdCkge1xuICB2YXIgcHJvcHMgPSBrZXlzSW4ob2JqZWN0KSxcbiAgICAgIHByb3BzTGVuZ3RoID0gcHJvcHMubGVuZ3RoLFxuICAgICAgbGVuZ3RoID0gcHJvcHNMZW5ndGggJiYgb2JqZWN0Lmxlbmd0aDtcblxuICB2YXIgYWxsb3dJbmRleGVzID0gISFsZW5ndGggJiYgaXNMZW5ndGgobGVuZ3RoKSAmJlxuICAgIChpc0FycmF5KG9iamVjdCkgfHwgaXNBcmd1bWVudHMob2JqZWN0KSB8fCBpc1N0cmluZyhvYmplY3QpKTtcblxuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIHJlc3VsdCA9IFtdO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgcHJvcHNMZW5ndGgpIHtcbiAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuICAgIGlmICgoYWxsb3dJbmRleGVzICYmIGlzSW5kZXgoa2V5LCBsZW5ndGgpKSB8fCBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaGltS2V5cztcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2xhbmcvaXNPYmplY3QnKSxcbiAgICBpc1N0cmluZyA9IHJlcXVpcmUoJy4uL2xhbmcvaXNTdHJpbmcnKSxcbiAgICBzdXBwb3J0ID0gcmVxdWlyZSgnLi4vc3VwcG9ydCcpO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYW4gb2JqZWN0IGlmIGl0J3Mgbm90IG9uZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gdG9PYmplY3QodmFsdWUpIHtcbiAgaWYgKHN1cHBvcnQudW5pbmRleGVkQ2hhcnMgJiYgaXNTdHJpbmcodmFsdWUpKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IHZhbHVlLmxlbmd0aCxcbiAgICAgICAgcmVzdWx0ID0gT2JqZWN0KHZhbHVlKTtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICByZXN1bHRbaW5kZXhdID0gdmFsdWUuY2hhckF0KGluZGV4KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICByZXR1cm4gaXNPYmplY3QodmFsdWUpID8gdmFsdWUgOiBPYmplY3QodmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRvT2JqZWN0O1xuIiwidmFyIGJhc2VUb1N0cmluZyA9IHJlcXVpcmUoJy4vYmFzZVRvU3RyaW5nJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcnJheScpO1xuXG4vKiogVXNlZCB0byBtYXRjaCBwcm9wZXJ0eSBuYW1lcyB3aXRoaW4gcHJvcGVydHkgcGF0aHMuICovXG52YXIgcmVQcm9wTmFtZSA9IC9bXi5bXFxdXSt8XFxbKD86KC0/XFxkKyg/OlxcLlxcZCspPyl8KFtcIiddKSgoPzooPyFcXDIpW15cXG5cXFxcXXxcXFxcLikqPylcXDIpXFxdL2c7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGJhY2tzbGFzaGVzIGluIHByb3BlcnR5IHBhdGhzLiAqL1xudmFyIHJlRXNjYXBlQ2hhciA9IC9cXFxcKFxcXFwpPy9nO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gcHJvcGVydHkgcGF0aCBhcnJheSBpZiBpdCdzIG5vdCBvbmUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gKi9cbmZ1bmN0aW9uIHRvUGF0aCh2YWx1ZSkge1xuICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBiYXNlVG9TdHJpbmcodmFsdWUpLnJlcGxhY2UocmVQcm9wTmFtZSwgZnVuY3Rpb24obWF0Y2gsIG51bWJlciwgcXVvdGUsIHN0cmluZykge1xuICAgIHJlc3VsdC5wdXNoKHF1b3RlID8gc3RyaW5nLnJlcGxhY2UocmVFc2NhcGVDaGFyLCAnJDEnKSA6IChudW1iZXIgfHwgbWF0Y2gpKTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdG9QYXRoO1xuIiwidmFyIExhenlXcmFwcGVyID0gcmVxdWlyZSgnLi9MYXp5V3JhcHBlcicpLFxuICAgIExvZGFzaFdyYXBwZXIgPSByZXF1aXJlKCcuL0xvZGFzaFdyYXBwZXInKSxcbiAgICBhcnJheUNvcHkgPSByZXF1aXJlKCcuL2FycmF5Q29weScpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgd3JhcHBlcmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSB3cmFwcGVyIFRoZSB3cmFwcGVyIHRvIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIHdyYXBwZXIuXG4gKi9cbmZ1bmN0aW9uIHdyYXBwZXJDbG9uZSh3cmFwcGVyKSB7XG4gIHJldHVybiB3cmFwcGVyIGluc3RhbmNlb2YgTGF6eVdyYXBwZXJcbiAgICA/IHdyYXBwZXIuY2xvbmUoKVxuICAgIDogbmV3IExvZGFzaFdyYXBwZXIod3JhcHBlci5fX3dyYXBwZWRfXywgd3JhcHBlci5fX2NoYWluX18sIGFycmF5Q29weSh3cmFwcGVyLl9fYWN0aW9uc19fKSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gd3JhcHBlckNsb25lO1xuIiwidmFyIGJhc2VDbG9uZSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2Jhc2VDbG9uZScpLFxuICAgIGJpbmRDYWxsYmFjayA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2JpbmRDYWxsYmFjaycpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBkZWVwIGNsb25lIG9mIGB2YWx1ZWAuIElmIGBjdXN0b21pemVyYCBpcyBwcm92aWRlZCBpdCBpcyBpbnZva2VkXG4gKiB0byBwcm9kdWNlIHRoZSBjbG9uZWQgdmFsdWVzLiBJZiBgY3VzdG9taXplcmAgcmV0dXJucyBgdW5kZWZpbmVkYCBjbG9uaW5nXG4gKiBpcyBoYW5kbGVkIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYCBpcyBib3VuZCB0byBgdGhpc0FyZ2BcbiAqIGFuZCBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50OyAodmFsdWUgWywgaW5kZXh8a2V5LCBvYmplY3RdKS5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgbG9vc2VseSBiYXNlZCBvbiB0aGVcbiAqIFtzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobV0oaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvaW5mcmFzdHJ1Y3R1cmUuaHRtbCNpbnRlcm5hbC1zdHJ1Y3R1cmVkLWNsb25pbmctYWxnb3JpdGhtKS5cbiAqIFRoZSBlbnVtZXJhYmxlIHByb3BlcnRpZXMgb2YgYGFyZ3VtZW50c2Agb2JqZWN0cyBhbmQgb2JqZWN0cyBjcmVhdGVkIGJ5XG4gKiBjb25zdHJ1Y3RvcnMgb3RoZXIgdGhhbiBgT2JqZWN0YCBhcmUgY2xvbmVkIHRvIHBsYWluIGBPYmplY3RgIG9iamVjdHMuIEFuXG4gKiBlbXB0eSBvYmplY3QgaXMgcmV0dXJuZWQgZm9yIHVuY2xvbmVhYmxlIHZhbHVlcyBzdWNoIGFzIGZ1bmN0aW9ucywgRE9NIG5vZGVzLFxuICogTWFwcywgU2V0cywgYW5kIFdlYWtNYXBzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZGVlcCBjbG9uZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNsb25pbmcgdmFsdWVzLlxuICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBjdXN0b21pemVyYC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBkZWVwIGNsb25lZCB2YWx1ZS5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIHVzZXJzID0gW1xuICogICB7ICd1c2VyJzogJ2Jhcm5leScgfSxcbiAqICAgeyAndXNlcic6ICdmcmVkJyB9XG4gKiBdO1xuICpcbiAqIHZhciBkZWVwID0gXy5jbG9uZURlZXAodXNlcnMpO1xuICogZGVlcFswXSA9PT0gdXNlcnNbMF07XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIC8vIHVzaW5nIGEgY3VzdG9taXplciBjYWxsYmFja1xuICogdmFyIGVsID0gXy5jbG9uZURlZXAoZG9jdW1lbnQuYm9keSwgZnVuY3Rpb24odmFsdWUpIHtcbiAqICAgaWYgKF8uaXNFbGVtZW50KHZhbHVlKSkge1xuICogICAgIHJldHVybiB2YWx1ZS5jbG9uZU5vZGUodHJ1ZSk7XG4gKiAgIH1cbiAqIH0pO1xuICpcbiAqIGVsID09PSBkb2N1bWVudC5ib2R5XG4gKiAvLyA9PiBmYWxzZVxuICogZWwubm9kZU5hbWVcbiAqIC8vID0+IEJPRFlcbiAqIGVsLmNoaWxkTm9kZXMubGVuZ3RoO1xuICogLy8gPT4gMjBcbiAqL1xuZnVuY3Rpb24gY2xvbmVEZWVwKHZhbHVlLCBjdXN0b21pemVyLCB0aGlzQXJnKSB7XG4gIHJldHVybiB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nXG4gICAgPyBiYXNlQ2xvbmUodmFsdWUsIHRydWUsIGJpbmRDYWxsYmFjayhjdXN0b21pemVyLCB0aGlzQXJnLCAxKSlcbiAgICA6IGJhc2VDbG9uZSh2YWx1ZSwgdHJ1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2xvbmVEZWVwO1xuIiwidmFyIGlzQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNBcnJheUxpa2UnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc09iamVjdExpa2UnKTtcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgcHJvcGVydHlJc0VudW1lcmFibGUgPSBvYmplY3RQcm90by5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGFuIGBhcmd1bWVudHNgIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgY29ycmVjdGx5IGNsYXNzaWZpZWQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FyZ3VtZW50cyhmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJndW1lbnRzKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0FyZ3VtZW50cyh2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBpc0FycmF5TGlrZSh2YWx1ZSkgJiZcbiAgICBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnY2FsbGVlJykgJiYgIXByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodmFsdWUsICdjYWxsZWUnKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0FyZ3VtZW50cztcbiIsInZhciBnZXROYXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9nZXROYXRpdmUnKSxcbiAgICBpc0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzTGVuZ3RoJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNPYmplY3RMaWtlJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhcnJheVRhZyA9ICdbb2JqZWN0IEFycmF5XSc7XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzYuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZUlzQXJyYXkgPSBnZXROYXRpdmUoQXJyYXksICdpc0FycmF5Jyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhbiBgQXJyYXlgIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgY29ycmVjdGx5IGNsYXNzaWZpZWQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FycmF5KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5KGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzQXJyYXkgPSBuYXRpdmVJc0FycmF5IHx8IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgb2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gYXJyYXlUYWc7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzQXJyYXk7XG4iLCJ2YXIgaXNBcmd1bWVudHMgPSByZXF1aXJlKCcuL2lzQXJndW1lbnRzJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpLFxuICAgIGlzQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNBcnJheUxpa2UnKSxcbiAgICBpc0Z1bmN0aW9uID0gcmVxdWlyZSgnLi9pc0Z1bmN0aW9uJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNPYmplY3RMaWtlJyksXG4gICAgaXNTdHJpbmcgPSByZXF1aXJlKCcuL2lzU3RyaW5nJyksXG4gICAga2V5cyA9IHJlcXVpcmUoJy4uL29iamVjdC9rZXlzJyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgZW1wdHkuIEEgdmFsdWUgaXMgY29uc2lkZXJlZCBlbXB0eSB1bmxlc3MgaXQgaXMgYW5cbiAqIGBhcmd1bWVudHNgIG9iamVjdCwgYXJyYXksIHN0cmluZywgb3IgalF1ZXJ5LWxpa2UgY29sbGVjdGlvbiB3aXRoIGEgbGVuZ3RoXG4gKiBncmVhdGVyIHRoYW4gYDBgIG9yIGFuIG9iamVjdCB3aXRoIG93biBlbnVtZXJhYmxlIHByb3BlcnRpZXMuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IHZhbHVlIFRoZSB2YWx1ZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZW1wdHksIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0VtcHR5KG51bGwpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNFbXB0eSh0cnVlKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzRW1wdHkoMSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0VtcHR5KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNFbXB0eSh7ICdhJzogMSB9KTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAoaXNBcnJheUxpa2UodmFsdWUpICYmIChpc0FycmF5KHZhbHVlKSB8fCBpc1N0cmluZyh2YWx1ZSkgfHwgaXNBcmd1bWVudHModmFsdWUpIHx8XG4gICAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBpc0Z1bmN0aW9uKHZhbHVlLnNwbGljZSkpKSkge1xuICAgIHJldHVybiAhdmFsdWUubGVuZ3RoO1xuICB9XG4gIHJldHVybiAha2V5cyh2YWx1ZSkubGVuZ3RoO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzRW1wdHk7XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzT2JqZWN0Jyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jVGFnID0gJ1tvYmplY3QgRnVuY3Rpb25dJztcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZSBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG9ialRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBGdW5jdGlvbmAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBjb3JyZWN0bHkgY2xhc3NpZmllZCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzRnVuY3Rpb24oXyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0Z1bmN0aW9uKC9hYmMvKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWUpIHtcbiAgLy8gVGhlIHVzZSBvZiBgT2JqZWN0I3RvU3RyaW5nYCBhdm9pZHMgaXNzdWVzIHdpdGggdGhlIGB0eXBlb2ZgIG9wZXJhdG9yXG4gIC8vIGluIG9sZGVyIHZlcnNpb25zIG9mIENocm9tZSBhbmQgU2FmYXJpIHdoaWNoIHJldHVybiAnZnVuY3Rpb24nIGZvciByZWdleGVzXG4gIC8vIGFuZCBTYWZhcmkgOCBlcXVpdmFsZW50cyB3aGljaCByZXR1cm4gJ29iamVjdCcgZm9yIHR5cGVkIGFycmF5IGNvbnN0cnVjdG9ycy5cbiAgcmV0dXJuIGlzT2JqZWN0KHZhbHVlKSAmJiBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBmdW5jVGFnO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzRnVuY3Rpb247XG4iLCJ2YXIgaXNGdW5jdGlvbiA9IHJlcXVpcmUoJy4vaXNGdW5jdGlvbicpLFxuICAgIGlzSG9zdE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzSG9zdE9iamVjdCcpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgaG9zdCBjb25zdHJ1Y3RvcnMgKFNhZmFyaSA+IDUpLiAqL1xudmFyIHJlSXNIb3N0Q3RvciA9IC9eXFxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXFxdJC87XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZm5Ub1N0cmluZyA9IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZztcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGlmIGEgbWV0aG9kIGlzIG5hdGl2ZS4gKi9cbnZhciByZUlzTmF0aXZlID0gUmVnRXhwKCdeJyArXG4gIGZuVG9TdHJpbmcuY2FsbChoYXNPd25Qcm9wZXJ0eSkucmVwbGFjZSgvW1xcXFxeJC4qKz8oKVtcXF17fXxdL2csICdcXFxcJCYnKVxuICAucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXFxcXCgpfCBmb3IgLis/KD89XFxcXFxcXSkvZywgJyQxLio/JykgKyAnJCdcbik7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBuYXRpdmUgZnVuY3Rpb24uXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbmF0aXZlIGZ1bmN0aW9uLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNOYXRpdmUoQXJyYXkucHJvdG90eXBlLnB1c2gpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNOYXRpdmUoXyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc05hdGl2ZSh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoaXNGdW5jdGlvbih2YWx1ZSkpIHtcbiAgICByZXR1cm4gcmVJc05hdGl2ZS50ZXN0KGZuVG9TdHJpbmcuY2FsbCh2YWx1ZSkpO1xuICB9XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIChpc0hvc3RPYmplY3QodmFsdWUpID8gcmVJc05hdGl2ZSA6IHJlSXNIb3N0Q3RvcikudGVzdCh2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNOYXRpdmU7XG4iLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHRoZSBbbGFuZ3VhZ2UgdHlwZV0oaHR0cHM6Ly9lczUuZ2l0aHViLmlvLyN4OCkgb2YgYE9iamVjdGAuXG4gKiAoZS5nLiBhcnJheXMsIGZ1bmN0aW9ucywgb2JqZWN0cywgcmVnZXhlcywgYG5ldyBOdW1iZXIoMClgLCBhbmQgYG5ldyBTdHJpbmcoJycpYClcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNPYmplY3Qoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KDEpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgLy8gQXZvaWQgYSBWOCBKSVQgYnVnIGluIENocm9tZSAxOS0yMC5cbiAgLy8gU2VlIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0yMjkxIGZvciBtb3JlIGRldGFpbHMuXG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICByZXR1cm4gISF2YWx1ZSAmJiAodHlwZSA9PSAnb2JqZWN0JyB8fCB0eXBlID09ICdmdW5jdGlvbicpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzT2JqZWN0O1xuIiwidmFyIGJhc2VGb3JJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2Jhc2VGb3JJbicpLFxuICAgIGlzQXJndW1lbnRzID0gcmVxdWlyZSgnLi9pc0FyZ3VtZW50cycpLFxuICAgIGlzSG9zdE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzSG9zdE9iamVjdCcpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzT2JqZWN0TGlrZScpLFxuICAgIHN1cHBvcnQgPSByZXF1aXJlKCcuLi9zdXBwb3J0Jyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJztcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZSBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG9ialRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIHRoYXQgaXMsIGFuIG9iamVjdCBjcmVhdGVkIGJ5IHRoZVxuICogYE9iamVjdGAgY29uc3RydWN0b3Igb3Igb25lIHdpdGggYSBgW1tQcm90b3R5cGVdXWAgb2YgYG51bGxgLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBhc3N1bWVzIG9iamVjdHMgY3JlYXRlZCBieSB0aGUgYE9iamVjdGAgY29uc3RydWN0b3JcbiAqIGhhdmUgbm8gaW5oZXJpdGVkIGVudW1lcmFibGUgcHJvcGVydGllcy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gRm9vKCkge1xuICogICB0aGlzLmEgPSAxO1xuICogfVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChuZXcgRm9vKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc1BsYWluT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdCh7ICd4JzogMCwgJ3knOiAwIH0pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChPYmplY3QuY3JlYXRlKG51bGwpKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZSkge1xuICB2YXIgQ3RvcjtcblxuICAvLyBFeGl0IGVhcmx5IGZvciBub24gYE9iamVjdGAgb2JqZWN0cy5cbiAgaWYgKCEoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBvYmplY3RUYWcgJiYgIWlzSG9zdE9iamVjdCh2YWx1ZSkgJiYgIWlzQXJndW1lbnRzKHZhbHVlKSkgfHxcbiAgICAgICghaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgJ2NvbnN0cnVjdG9yJykgJiYgKEN0b3IgPSB2YWx1ZS5jb25zdHJ1Y3RvciwgdHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiAhKEN0b3IgaW5zdGFuY2VvZiBDdG9yKSkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIElFIDwgOSBpdGVyYXRlcyBpbmhlcml0ZWQgcHJvcGVydGllcyBiZWZvcmUgb3duIHByb3BlcnRpZXMuIElmIHRoZSBmaXJzdFxuICAvLyBpdGVyYXRlZCBwcm9wZXJ0eSBpcyBhbiBvYmplY3QncyBvd24gcHJvcGVydHkgdGhlbiB0aGVyZSBhcmUgbm8gaW5oZXJpdGVkXG4gIC8vIGVudW1lcmFibGUgcHJvcGVydGllcy5cbiAgdmFyIHJlc3VsdDtcbiAgaWYgKHN1cHBvcnQub3duTGFzdCkge1xuICAgIGJhc2VGb3JJbih2YWx1ZSwgZnVuY3Rpb24oc3ViVmFsdWUsIGtleSwgb2JqZWN0KSB7XG4gICAgICByZXN1bHQgPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0ICE9PSBmYWxzZTtcbiAgfVxuICAvLyBJbiBtb3N0IGVudmlyb25tZW50cyBhbiBvYmplY3QncyBvd24gcHJvcGVydGllcyBhcmUgaXRlcmF0ZWQgYmVmb3JlXG4gIC8vIGl0cyBpbmhlcml0ZWQgcHJvcGVydGllcy4gSWYgdGhlIGxhc3QgaXRlcmF0ZWQgcHJvcGVydHkgaXMgYW4gb2JqZWN0J3NcbiAgLy8gb3duIHByb3BlcnR5IHRoZW4gdGhlcmUgYXJlIG5vIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnRpZXMuXG4gIGJhc2VGb3JJbih2YWx1ZSwgZnVuY3Rpb24oc3ViVmFsdWUsIGtleSkge1xuICAgIHJlc3VsdCA9IGtleTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQgPT09IHVuZGVmaW5lZCB8fCBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCByZXN1bHQpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzUGxhaW5PYmplY3Q7XG4iLCJ2YXIgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNPYmplY3RMaWtlJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBzdHJpbmdUYWcgPSAnW29iamVjdCBTdHJpbmddJztcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZSBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG9ialRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTdHJpbmdgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGNvcnJlY3RseSBjbGFzc2lmaWVkLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTdHJpbmcoJ2FiYycpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNTdHJpbmcoMSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8IChpc09iamVjdExpa2UodmFsdWUpICYmIG9ialRvU3RyaW5nLmNhbGwodmFsdWUpID09IHN0cmluZ1RhZyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNTdHJpbmc7XG4iLCJ2YXIgaXNMZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc0xlbmd0aCcpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHdlYWtNYXBUYWcgPSAnW29iamVjdCBXZWFrTWFwXSc7XG5cbnZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgIGZsb2F0NjRUYWcgPSAnW29iamVjdCBGbG9hdDY0QXJyYXldJyxcbiAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgaW50MzJUYWcgPSAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICB1aW50MTZUYWcgPSAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbi8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIG9mIHR5cGVkIGFycmF5cy4gKi9cbnZhciB0eXBlZEFycmF5VGFncyA9IHt9O1xudHlwZWRBcnJheVRhZ3NbZmxvYXQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1tmbG9hdDY0VGFnXSA9XG50eXBlZEFycmF5VGFnc1tpbnQ4VGFnXSA9IHR5cGVkQXJyYXlUYWdzW2ludDE2VGFnXSA9XG50eXBlZEFycmF5VGFnc1tpbnQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50OFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3VpbnQxNlRhZ10gPVxudHlwZWRBcnJheVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XG50eXBlZEFycmF5VGFnc1thcmdzVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2FycmF5VGFnXSA9XG50eXBlZEFycmF5VGFnc1thcnJheUJ1ZmZlclRhZ10gPSB0eXBlZEFycmF5VGFnc1tib29sVGFnXSA9XG50eXBlZEFycmF5VGFnc1tkYXRlVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2Vycm9yVGFnXSA9XG50eXBlZEFycmF5VGFnc1tmdW5jVGFnXSA9IHR5cGVkQXJyYXlUYWdzW21hcFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbbnVtYmVyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW29iamVjdFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbcmVnZXhwVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3NldFRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbc3RyaW5nVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3dlYWtNYXBUYWddID0gZmFsc2U7XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzYuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSB0eXBlZCBhcnJheS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgY29ycmVjdGx5IGNsYXNzaWZpZWQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1R5cGVkQXJyYXkobmV3IFVpbnQ4QXJyYXkpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNUeXBlZEFycmF5KFtdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzVHlwZWRBcnJheSh2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBpc0xlbmd0aCh2YWx1ZS5sZW5ndGgpICYmICEhdHlwZWRBcnJheVRhZ3Nbb2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSldO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzVHlwZWRBcnJheTtcbiIsIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYHVuZGVmaW5lZGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGB1bmRlZmluZWRgLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNVbmRlZmluZWQodm9pZCAwKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzVW5kZWZpbmVkKG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNVbmRlZmluZWQodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNVbmRlZmluZWQ7XG4iLCJ2YXIgZ2V0TmF0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvZ2V0TmF0aXZlJyksXG4gICAgaXNBcnJheUxpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc0FycmF5TGlrZScpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vbGFuZy9pc09iamVjdCcpLFxuICAgIHNoaW1LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvc2hpbUtleXMnKSxcbiAgICBzdXBwb3J0ID0gcmVxdWlyZSgnLi4vc3VwcG9ydCcpO1xuXG4vKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZUtleXMgPSBnZXROYXRpdmUoT2JqZWN0LCAna2V5cycpO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICpcbiAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLiBTZWUgdGhlXG4gKiBbRVMgc3BlY10oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtb2JqZWN0LmtleXMpXG4gKiBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXMobmV3IEZvbyk7XG4gKiAvLyA9PiBbJ2EnLCAnYiddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKlxuICogXy5rZXlzKCdoaScpO1xuICogLy8gPT4gWycwJywgJzEnXVxuICovXG52YXIga2V5cyA9ICFuYXRpdmVLZXlzID8gc2hpbUtleXMgOiBmdW5jdGlvbihvYmplY3QpIHtcbiAgdmFyIEN0b3IgPSBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgaWYgKCh0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmIEN0b3IucHJvdG90eXBlID09PSBvYmplY3QpIHx8XG4gICAgICAodHlwZW9mIG9iamVjdCA9PSAnZnVuY3Rpb24nID8gc3VwcG9ydC5lbnVtUHJvdG90eXBlcyA6IGlzQXJyYXlMaWtlKG9iamVjdCkpKSB7XG4gICAgcmV0dXJuIHNoaW1LZXlzKG9iamVjdCk7XG4gIH1cbiAgcmV0dXJuIGlzT2JqZWN0KG9iamVjdCkgPyBuYXRpdmVLZXlzKG9iamVjdCkgOiBbXTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ga2V5cztcbiIsInZhciBhcnJheUVhY2ggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9hcnJheUVhY2gnKSxcbiAgICBpc0FyZ3VtZW50cyA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcmd1bWVudHMnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FycmF5JyksXG4gICAgaXNGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2xhbmcvaXNGdW5jdGlvbicpLFxuICAgIGlzSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc0luZGV4JyksXG4gICAgaXNMZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc0xlbmd0aCcpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vbGFuZy9pc09iamVjdCcpLFxuICAgIGlzU3RyaW5nID0gcmVxdWlyZSgnLi4vbGFuZy9pc1N0cmluZycpLFxuICAgIHN1cHBvcnQgPSByZXF1aXJlKCcuLi9zdXBwb3J0Jyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhcnJheVRhZyA9ICdbb2JqZWN0IEFycmF5XScsXG4gICAgYm9vbFRhZyA9ICdbb2JqZWN0IEJvb2xlYW5dJyxcbiAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxuICAgIGVycm9yVGFnID0gJ1tvYmplY3QgRXJyb3JdJyxcbiAgICBmdW5jVGFnID0gJ1tvYmplY3QgRnVuY3Rpb25dJyxcbiAgICBudW1iZXJUYWcgPSAnW29iamVjdCBOdW1iZXJdJyxcbiAgICBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJyxcbiAgICByZWdleHBUYWcgPSAnW29iamVjdCBSZWdFeHBdJyxcbiAgICBzdHJpbmdUYWcgPSAnW29iamVjdCBTdHJpbmddJztcblxuLyoqIFVzZWQgdG8gZml4IHRoZSBKU2NyaXB0IGBbW0RvbnRFbnVtXV1gIGJ1Zy4gKi9cbnZhciBzaGFkb3dQcm9wcyA9IFtcbiAgJ2NvbnN0cnVjdG9yJywgJ2hhc093blByb3BlcnR5JywgJ2lzUHJvdG90eXBlT2YnLCAncHJvcGVydHlJc0VudW1lcmFibGUnLFxuICAndG9Mb2NhbGVTdHJpbmcnLCAndG9TdHJpbmcnLCAndmFsdWVPZidcbl07XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgZXJyb3JQcm90byA9IEVycm9yLnByb3RvdHlwZSxcbiAgICBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGUsXG4gICAgc3RyaW5nUHJvdG8gPSBTdHJpbmcucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzYuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBhdm9pZCBpdGVyYXRpbmcgb3ZlciBub24tZW51bWVyYWJsZSBwcm9wZXJ0aWVzIGluIElFIDwgOS4gKi9cbnZhciBub25FbnVtUHJvcHMgPSB7fTtcbm5vbkVudW1Qcm9wc1thcnJheVRhZ10gPSBub25FbnVtUHJvcHNbZGF0ZVRhZ10gPSBub25FbnVtUHJvcHNbbnVtYmVyVGFnXSA9IHsgJ2NvbnN0cnVjdG9yJzogdHJ1ZSwgJ3RvTG9jYWxlU3RyaW5nJzogdHJ1ZSwgJ3RvU3RyaW5nJzogdHJ1ZSwgJ3ZhbHVlT2YnOiB0cnVlIH07XG5ub25FbnVtUHJvcHNbYm9vbFRhZ10gPSBub25FbnVtUHJvcHNbc3RyaW5nVGFnXSA9IHsgJ2NvbnN0cnVjdG9yJzogdHJ1ZSwgJ3RvU3RyaW5nJzogdHJ1ZSwgJ3ZhbHVlT2YnOiB0cnVlIH07XG5ub25FbnVtUHJvcHNbZXJyb3JUYWddID0gbm9uRW51bVByb3BzW2Z1bmNUYWddID0gbm9uRW51bVByb3BzW3JlZ2V4cFRhZ10gPSB7ICdjb25zdHJ1Y3Rvcic6IHRydWUsICd0b1N0cmluZyc6IHRydWUgfTtcbm5vbkVudW1Qcm9wc1tvYmplY3RUYWddID0geyAnY29uc3RydWN0b3InOiB0cnVlIH07XG5cbmFycmF5RWFjaChzaGFkb3dQcm9wcywgZnVuY3Rpb24oa2V5KSB7XG4gIGZvciAodmFyIHRhZyBpbiBub25FbnVtUHJvcHMpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChub25FbnVtUHJvcHMsIHRhZykpIHtcbiAgICAgIHZhciBwcm9wcyA9IG5vbkVudW1Qcm9wc1t0YWddO1xuICAgICAgcHJvcHNba2V5XSA9IGhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIGtleSk7XG4gICAgfVxuICB9XG59KTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICpcbiAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXNJbihuZXcgRm9vKTtcbiAqIC8vID0+IFsnYScsICdiJywgJ2MnXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICovXG5mdW5jdGlvbiBrZXlzSW4ob2JqZWN0KSB7XG4gIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBpZiAoIWlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcbiAgfVxuICB2YXIgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDtcblxuICBsZW5ndGggPSAobGVuZ3RoICYmIGlzTGVuZ3RoKGxlbmd0aCkgJiZcbiAgICAoaXNBcnJheShvYmplY3QpIHx8IGlzQXJndW1lbnRzKG9iamVjdCkgfHwgaXNTdHJpbmcob2JqZWN0KSkgJiYgbGVuZ3RoKSB8fCAwO1xuXG4gIHZhciBDdG9yID0gb2JqZWN0LmNvbnN0cnVjdG9yLFxuICAgICAgaW5kZXggPSAtMSxcbiAgICAgIHByb3RvID0gKGlzRnVuY3Rpb24oQ3RvcikgJiYgQ3Rvci5wcm90b3R5cGUpIHx8IG9iamVjdFByb3RvLFxuICAgICAgaXNQcm90byA9IHByb3RvID09PSBvYmplY3QsXG4gICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpLFxuICAgICAgc2tpcEluZGV4ZXMgPSBsZW5ndGggPiAwLFxuICAgICAgc2tpcEVycm9yUHJvcHMgPSBzdXBwb3J0LmVudW1FcnJvclByb3BzICYmIChvYmplY3QgPT09IGVycm9yUHJvdG8gfHwgb2JqZWN0IGluc3RhbmNlb2YgRXJyb3IpLFxuICAgICAgc2tpcFByb3RvID0gc3VwcG9ydC5lbnVtUHJvdG90eXBlcyAmJiBpc0Z1bmN0aW9uKG9iamVjdCk7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICByZXN1bHRbaW5kZXhdID0gKGluZGV4ICsgJycpO1xuICB9XG4gIC8vIGxvZGFzaCBza2lwcyB0aGUgYGNvbnN0cnVjdG9yYCBwcm9wZXJ0eSB3aGVuIGl0IGluZmVycyBpdCBpcyBpdGVyYXRpbmdcbiAgLy8gb3ZlciBhIGBwcm90b3R5cGVgIG9iamVjdCBiZWNhdXNlIElFIDwgOSBjYW4ndCBzZXQgdGhlIGBbW0VudW1lcmFibGVdXWBcbiAgLy8gYXR0cmlidXRlIG9mIGFuIGV4aXN0aW5nIHByb3BlcnR5IGFuZCB0aGUgYGNvbnN0cnVjdG9yYCBwcm9wZXJ0eSBvZiBhXG4gIC8vIHByb3RvdHlwZSBkZWZhdWx0cyB0byBub24tZW51bWVyYWJsZS5cbiAgZm9yICh2YXIga2V5IGluIG9iamVjdCkge1xuICAgIGlmICghKHNraXBQcm90byAmJiBrZXkgPT0gJ3Byb3RvdHlwZScpICYmXG4gICAgICAgICEoc2tpcEVycm9yUHJvcHMgJiYgKGtleSA9PSAnbWVzc2FnZScgfHwga2V5ID09ICduYW1lJykpICYmXG4gICAgICAgICEoc2tpcEluZGV4ZXMgJiYgaXNJbmRleChrZXksIGxlbmd0aCkpICYmXG4gICAgICAgICEoa2V5ID09ICdjb25zdHJ1Y3RvcicgJiYgKGlzUHJvdG8gfHwgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIGlmIChzdXBwb3J0Lm5vbkVudW1TaGFkb3dzICYmIG9iamVjdCAhPT0gb2JqZWN0UHJvdG8pIHtcbiAgICB2YXIgdGFnID0gb2JqZWN0ID09PSBzdHJpbmdQcm90byA/IHN0cmluZ1RhZyA6IChvYmplY3QgPT09IGVycm9yUHJvdG8gPyBlcnJvclRhZyA6IG9ialRvU3RyaW5nLmNhbGwob2JqZWN0KSksXG4gICAgICAgIG5vbkVudW1zID0gbm9uRW51bVByb3BzW3RhZ10gfHwgbm9uRW51bVByb3BzW29iamVjdFRhZ107XG5cbiAgICBpZiAodGFnID09IG9iamVjdFRhZykge1xuICAgICAgcHJvdG8gPSBvYmplY3RQcm90bztcbiAgICB9XG4gICAgbGVuZ3RoID0gc2hhZG93UHJvcHMubGVuZ3RoO1xuICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAga2V5ID0gc2hhZG93UHJvcHNbbGVuZ3RoXTtcbiAgICAgIHZhciBub25FbnVtID0gbm9uRW51bXNba2V5XTtcbiAgICAgIGlmICghKGlzUHJvdG8gJiYgbm9uRW51bSkgJiZcbiAgICAgICAgICAobm9uRW51bSA/IGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpIDogb2JqZWN0W2tleV0gIT09IHByb3RvW2tleV0pKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ga2V5c0luO1xuIiwidmFyIGtleXMgPSByZXF1aXJlKCcuL2tleXMnKSxcbiAgICB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL3RvT2JqZWN0Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHR3byBkaW1lbnNpb25hbCBhcnJheSBvZiB0aGUga2V5LXZhbHVlIHBhaXJzIGZvciBgb2JqZWN0YCxcbiAqIGUuZy4gYFtba2V5MSwgdmFsdWUxXSwgW2tleTIsIHZhbHVlMl1dYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2Yga2V5LXZhbHVlIHBhaXJzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnBhaXJzKHsgJ2Jhcm5leSc6IDM2LCAnZnJlZCc6IDQwIH0pO1xuICogLy8gPT4gW1snYmFybmV5JywgMzZdLCBbJ2ZyZWQnLCA0MF1dIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKi9cbmZ1bmN0aW9uIHBhaXJzKG9iamVjdCkge1xuICBvYmplY3QgPSB0b09iamVjdChvYmplY3QpO1xuXG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgcHJvcHMgPSBrZXlzKG9iamVjdCksXG4gICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGgsXG4gICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGtleSA9IHByb3BzW2luZGV4XTtcbiAgICByZXN1bHRbaW5kZXhdID0gW2tleSwgb2JqZWN0W2tleV1dO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcGFpcnM7XG4iLCJ2YXIgYmFzZVZhbHVlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2Jhc2VWYWx1ZXMnKSxcbiAgICBrZXlzID0gcmVxdWlyZSgnLi9rZXlzJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGVudW1lcmFibGUgcHJvcGVydHkgdmFsdWVzIG9mIGBvYmplY3RgLlxuICpcbiAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IHZhbHVlcy5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gRm9vKCkge1xuICogICB0aGlzLmEgPSAxO1xuICogICB0aGlzLmIgPSAyO1xuICogfVxuICpcbiAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gKlxuICogXy52YWx1ZXMobmV3IEZvbyk7XG4gKiAvLyA9PiBbMSwgMl0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAqXG4gKiBfLnZhbHVlcygnaGknKTtcbiAqIC8vID0+IFsnaCcsICdpJ11cbiAqL1xuZnVuY3Rpb24gdmFsdWVzKG9iamVjdCkge1xuICByZXR1cm4gYmFzZVZhbHVlcyhvYmplY3QsIGtleXMob2JqZWN0KSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmFsdWVzO1xuIiwiLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBhcnJheVByb3RvID0gQXJyYXkucHJvdG90eXBlLFxuICAgIGVycm9yUHJvdG8gPSBFcnJvci5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIHByb3BlcnR5SXNFbnVtZXJhYmxlID0gb2JqZWN0UHJvdG8ucHJvcGVydHlJc0VudW1lcmFibGUsXG4gICAgc3BsaWNlID0gYXJyYXlQcm90by5zcGxpY2U7XG5cbi8qKlxuICogQW4gb2JqZWN0IGVudmlyb25tZW50IGZlYXR1cmUgZmxhZ3MuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEB0eXBlIE9iamVjdFxuICovXG52YXIgc3VwcG9ydCA9IHt9O1xuXG4oZnVuY3Rpb24oeCkge1xuICB2YXIgQ3RvciA9IGZ1bmN0aW9uKCkgeyB0aGlzLnggPSB4OyB9LFxuICAgICAgb2JqZWN0ID0geyAnMCc6IHgsICdsZW5ndGgnOiB4IH0sXG4gICAgICBwcm9wcyA9IFtdO1xuXG4gIEN0b3IucHJvdG90eXBlID0geyAndmFsdWVPZic6IHgsICd5JzogeCB9O1xuICBmb3IgKHZhciBrZXkgaW4gbmV3IEN0b3IpIHsgcHJvcHMucHVzaChrZXkpOyB9XG5cbiAgLyoqXG4gICAqIERldGVjdCBpZiBgbmFtZWAgb3IgYG1lc3NhZ2VgIHByb3BlcnRpZXMgb2YgYEVycm9yLnByb3RvdHlwZWAgYXJlXG4gICAqIGVudW1lcmFibGUgYnkgZGVmYXVsdCAoSUUgPCA5LCBTYWZhcmkgPCA1LjEpLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIHN1cHBvcnQuZW51bUVycm9yUHJvcHMgPSBwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGVycm9yUHJvdG8sICdtZXNzYWdlJykgfHxcbiAgICBwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGVycm9yUHJvdG8sICduYW1lJyk7XG5cbiAgLyoqXG4gICAqIERldGVjdCBpZiBgcHJvdG90eXBlYCBwcm9wZXJ0aWVzIGFyZSBlbnVtZXJhYmxlIGJ5IGRlZmF1bHQuXG4gICAqXG4gICAqIEZpcmVmb3ggPCAzLjYsIE9wZXJhID4gOS41MCAtIE9wZXJhIDwgMTEuNjAsIGFuZCBTYWZhcmkgPCA1LjFcbiAgICogKGlmIHRoZSBwcm90b3R5cGUgb3IgYSBwcm9wZXJ0eSBvbiB0aGUgcHJvdG90eXBlIGhhcyBiZWVuIHNldClcbiAgICogaW5jb3JyZWN0bHkgc2V0IHRoZSBgW1tFbnVtZXJhYmxlXV1gIHZhbHVlIG9mIGEgZnVuY3Rpb24ncyBgcHJvdG90eXBlYFxuICAgKiBwcm9wZXJ0eSB0byBgdHJ1ZWAuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgc3VwcG9ydC5lbnVtUHJvdG90eXBlcyA9IHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoQ3RvciwgJ3Byb3RvdHlwZScpO1xuXG4gIC8qKlxuICAgKiBEZXRlY3QgaWYgcHJvcGVydGllcyBzaGFkb3dpbmcgdGhvc2Ugb24gYE9iamVjdC5wcm90b3R5cGVgIGFyZSBub24tZW51bWVyYWJsZS5cbiAgICpcbiAgICogSW4gSUUgPCA5IGFuIG9iamVjdCdzIG93biBwcm9wZXJ0aWVzLCBzaGFkb3dpbmcgbm9uLWVudW1lcmFibGUgb25lcyxcbiAgICogYXJlIG1hZGUgbm9uLWVudW1lcmFibGUgYXMgd2VsbCAoYS5rLmEgdGhlIEpTY3JpcHQgYFtbRG9udEVudW1dXWAgYnVnKS5cbiAgICpcbiAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBzdXBwb3J0Lm5vbkVudW1TaGFkb3dzID0gIS92YWx1ZU9mLy50ZXN0KHByb3BzKTtcblxuICAvKipcbiAgICogRGV0ZWN0IGlmIG93biBwcm9wZXJ0aWVzIGFyZSBpdGVyYXRlZCBhZnRlciBpbmhlcml0ZWQgcHJvcGVydGllcyAoSUUgPCA5KS5cbiAgICpcbiAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBzdXBwb3J0Lm93bkxhc3QgPSBwcm9wc1swXSAhPSAneCc7XG5cbiAgLyoqXG4gICAqIERldGVjdCBpZiBgQXJyYXkjc2hpZnRgIGFuZCBgQXJyYXkjc3BsaWNlYCBhdWdtZW50IGFycmF5LWxpa2Ugb2JqZWN0c1xuICAgKiBjb3JyZWN0bHkuXG4gICAqXG4gICAqIEZpcmVmb3ggPCAxMCwgY29tcGF0aWJpbGl0eSBtb2RlcyBvZiBJRSA4LCBhbmQgSUUgPCA5IGhhdmUgYnVnZ3kgQXJyYXlcbiAgICogYHNoaWZ0KClgIGFuZCBgc3BsaWNlKClgIGZ1bmN0aW9ucyB0aGF0IGZhaWwgdG8gcmVtb3ZlIHRoZSBsYXN0IGVsZW1lbnQsXG4gICAqIGB2YWx1ZVswXWAsIG9mIGFycmF5LWxpa2Ugb2JqZWN0cyBldmVuIHRob3VnaCB0aGUgXCJsZW5ndGhcIiBwcm9wZXJ0eSBpc1xuICAgKiBzZXQgdG8gYDBgLiBUaGUgYHNoaWZ0KClgIG1ldGhvZCBpcyBidWdneSBpbiBjb21wYXRpYmlsaXR5IG1vZGVzIG9mIElFIDgsXG4gICAqIHdoaWxlIGBzcGxpY2UoKWAgaXMgYnVnZ3kgcmVnYXJkbGVzcyBvZiBtb2RlIGluIElFIDwgOS5cbiAgICpcbiAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBzdXBwb3J0LnNwbGljZU9iamVjdHMgPSAoc3BsaWNlLmNhbGwob2JqZWN0LCAwLCAxKSwgIW9iamVjdFswXSk7XG5cbiAgLyoqXG4gICAqIERldGVjdCBsYWNrIG9mIHN1cHBvcnQgZm9yIGFjY2Vzc2luZyBzdHJpbmcgY2hhcmFjdGVycyBieSBpbmRleC5cbiAgICpcbiAgICogSUUgPCA4IGNhbid0IGFjY2VzcyBjaGFyYWN0ZXJzIGJ5IGluZGV4LiBJRSA4IGNhbiBvbmx5IGFjY2VzcyBjaGFyYWN0ZXJzXG4gICAqIGJ5IGluZGV4IG9uIHN0cmluZyBsaXRlcmFscywgbm90IHN0cmluZyBvYmplY3RzLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIHN1cHBvcnQudW5pbmRleGVkQ2hhcnMgPSAoJ3gnWzBdICsgT2JqZWN0KCd4JylbMF0pICE9ICd4eCc7XG59KDEsIDApKTtcblxubW9kdWxlLmV4cG9ydHMgPSBzdXBwb3J0O1xuIiwiLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBmaXJzdCBhcmd1bWVudCBwcm92aWRlZCB0byBpdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IFV0aWxpdHlcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgQW55IHZhbHVlLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgYHZhbHVlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ3VzZXInOiAnZnJlZCcgfTtcbiAqXG4gKiBfLmlkZW50aXR5KG9iamVjdCkgPT09IG9iamVjdDtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gaWRlbnRpdHkodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlkZW50aXR5O1xuIiwiLyoqXG4gKiBBIG5vLW9wZXJhdGlvbiBmdW5jdGlvbiB0aGF0IHJldHVybnMgYHVuZGVmaW5lZGAgcmVnYXJkbGVzcyBvZiB0aGVcbiAqIGFyZ3VtZW50cyBpdCByZWNlaXZlcy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IFV0aWxpdHlcbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ3VzZXInOiAnZnJlZCcgfTtcbiAqXG4gKiBfLm5vb3Aob2JqZWN0KSA9PT0gdW5kZWZpbmVkO1xuICogLy8gPT4gdHJ1ZVxuICovXG5mdW5jdGlvbiBub29wKCkge1xuICAvLyBObyBvcGVyYXRpb24gcGVyZm9ybWVkLlxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5vb3A7XG4iLCJ2YXIgYmFzZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYmFzZVByb3BlcnR5JyksXG4gICAgYmFzZVByb3BlcnR5RGVlcCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2Jhc2VQcm9wZXJ0eURlZXAnKSxcbiAgICBpc0tleSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzS2V5Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgYXQgYHBhdGhgIG9uIGFcbiAqIGdpdmVuIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IFV0aWxpdHlcbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdHMgPSBbXG4gKiAgIHsgJ2EnOiB7ICdiJzogeyAnYyc6IDIgfSB9IH0sXG4gKiAgIHsgJ2EnOiB7ICdiJzogeyAnYyc6IDEgfSB9IH1cbiAqIF07XG4gKlxuICogXy5tYXAob2JqZWN0cywgXy5wcm9wZXJ0eSgnYS5iLmMnKSk7XG4gKiAvLyA9PiBbMiwgMV1cbiAqXG4gKiBfLnBsdWNrKF8uc29ydEJ5KG9iamVjdHMsIF8ucHJvcGVydHkoWydhJywgJ2InLCAnYyddKSksICdhLmIuYycpO1xuICogLy8gPT4gWzEsIDJdXG4gKi9cbmZ1bmN0aW9uIHByb3BlcnR5KHBhdGgpIHtcbiAgcmV0dXJuIGlzS2V5KHBhdGgpID8gYmFzZVByb3BlcnR5KHBhdGgpIDogYmFzZVByb3BlcnR5RGVlcChwYXRoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwcm9wZXJ0eTtcbiIsIi8qKlxuICogTW9kdWxlIGRlcGVuZGVuY2llcy5cbiAqL1xuXG52YXIgRW1pdHRlciA9IHJlcXVpcmUoJ2VtaXR0ZXInKTtcbnZhciByZWR1Y2UgPSByZXF1aXJlKCdyZWR1Y2UnKTtcblxuLyoqXG4gKiBSb290IHJlZmVyZW5jZSBmb3IgaWZyYW1lcy5cbiAqL1xuXG52YXIgcm9vdCA9ICd1bmRlZmluZWQnID09IHR5cGVvZiB3aW5kb3dcbiAgPyAodGhpcyB8fCBzZWxmKVxuICA6IHdpbmRvdztcblxuLyoqXG4gKiBOb29wLlxuICovXG5cbmZ1bmN0aW9uIG5vb3AoKXt9O1xuXG4vKipcbiAqIENoZWNrIGlmIGBvYmpgIGlzIGEgaG9zdCBvYmplY3QsXG4gKiB3ZSBkb24ndCB3YW50IHRvIHNlcmlhbGl6ZSB0aGVzZSA6KVxuICpcbiAqIFRPRE86IGZ1dHVyZSBwcm9vZiwgbW92ZSB0byBjb21wb2VudCBsYW5kXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGlzSG9zdChvYmopIHtcbiAgdmFyIHN0ciA9IHt9LnRvU3RyaW5nLmNhbGwob2JqKTtcblxuICBzd2l0Y2ggKHN0cikge1xuICAgIGNhc2UgJ1tvYmplY3QgRmlsZV0nOlxuICAgIGNhc2UgJ1tvYmplY3QgQmxvYl0nOlxuICAgIGNhc2UgJ1tvYmplY3QgRm9ybURhdGFdJzpcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgWEhSLlxuICovXG5cbnJlcXVlc3QuZ2V0WEhSID0gZnVuY3Rpb24gKCkge1xuICBpZiAocm9vdC5YTUxIdHRwUmVxdWVzdFxuICAgICAgJiYgKCFyb290LmxvY2F0aW9uIHx8ICdmaWxlOicgIT0gcm9vdC5sb2NhdGlvbi5wcm90b2NvbFxuICAgICAgICAgIHx8ICFyb290LkFjdGl2ZVhPYmplY3QpKSB7XG4gICAgcmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdDtcbiAgfSBlbHNlIHtcbiAgICB0cnkgeyByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01pY3Jvc29mdC5YTUxIVFRQJyk7IH0gY2F0Y2goZSkge31cbiAgICB0cnkgeyByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01zeG1sMi5YTUxIVFRQLjYuMCcpOyB9IGNhdGNoKGUpIHt9XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCdNc3htbDIuWE1MSFRUUC4zLjAnKTsgfSBjYXRjaChlKSB7fVxuICAgIHRyeSB7IHJldHVybiBuZXcgQWN0aXZlWE9iamVjdCgnTXN4bWwyLlhNTEhUVFAnKTsgfSBjYXRjaChlKSB7fVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbi8qKlxuICogUmVtb3ZlcyBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlLCBhZGRlZCB0byBzdXBwb3J0IElFLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG52YXIgdHJpbSA9ICcnLnRyaW1cbiAgPyBmdW5jdGlvbihzKSB7IHJldHVybiBzLnRyaW0oKTsgfVxuICA6IGZ1bmN0aW9uKHMpIHsgcmV0dXJuIHMucmVwbGFjZSgvKF5cXHMqfFxccyokKS9nLCAnJyk7IH07XG5cbi8qKlxuICogQ2hlY2sgaWYgYG9iamAgaXMgYW4gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBpc09iamVjdChvYmopIHtcbiAgcmV0dXJuIG9iaiA9PT0gT2JqZWN0KG9iaik7XG59XG5cbi8qKlxuICogU2VyaWFsaXplIHRoZSBnaXZlbiBgb2JqYC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBzZXJpYWxpemUob2JqKSB7XG4gIGlmICghaXNPYmplY3Qob2JqKSkgcmV0dXJuIG9iajtcbiAgdmFyIHBhaXJzID0gW107XG4gIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICBpZiAobnVsbCAhPSBvYmpba2V5XSkge1xuICAgICAgcGFpcnMucHVzaChlbmNvZGVVUklDb21wb25lbnQoa2V5KVxuICAgICAgICArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudChvYmpba2V5XSkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcGFpcnMuam9pbignJicpO1xufVxuXG4vKipcbiAqIEV4cG9zZSBzZXJpYWxpemF0aW9uIG1ldGhvZC5cbiAqL1xuXG4gcmVxdWVzdC5zZXJpYWxpemVPYmplY3QgPSBzZXJpYWxpemU7XG5cbiAvKipcbiAgKiBQYXJzZSB0aGUgZ2l2ZW4geC13d3ctZm9ybS11cmxlbmNvZGVkIGBzdHJgLlxuICAqXG4gICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICAqIEByZXR1cm4ge09iamVjdH1cbiAgKiBAYXBpIHByaXZhdGVcbiAgKi9cblxuZnVuY3Rpb24gcGFyc2VTdHJpbmcoc3RyKSB7XG4gIHZhciBvYmogPSB7fTtcbiAgdmFyIHBhaXJzID0gc3RyLnNwbGl0KCcmJyk7XG4gIHZhciBwYXJ0cztcbiAgdmFyIHBhaXI7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHBhaXJzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XG4gICAgcGFpciA9IHBhaXJzW2ldO1xuICAgIHBhcnRzID0gcGFpci5zcGxpdCgnPScpO1xuICAgIG9ialtkZWNvZGVVUklDb21wb25lbnQocGFydHNbMF0pXSA9IGRlY29kZVVSSUNvbXBvbmVudChwYXJ0c1sxXSk7XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG4vKipcbiAqIEV4cG9zZSBwYXJzZXIuXG4gKi9cblxucmVxdWVzdC5wYXJzZVN0cmluZyA9IHBhcnNlU3RyaW5nO1xuXG4vKipcbiAqIERlZmF1bHQgTUlNRSB0eXBlIG1hcC5cbiAqXG4gKiAgICAgc3VwZXJhZ2VudC50eXBlcy54bWwgPSAnYXBwbGljYXRpb24veG1sJztcbiAqXG4gKi9cblxucmVxdWVzdC50eXBlcyA9IHtcbiAgaHRtbDogJ3RleHQvaHRtbCcsXG4gIGpzb246ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgeG1sOiAnYXBwbGljYXRpb24veG1sJyxcbiAgdXJsZW5jb2RlZDogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gICdmb3JtJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gICdmb3JtLWRhdGEnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xufTtcblxuLyoqXG4gKiBEZWZhdWx0IHNlcmlhbGl6YXRpb24gbWFwLlxuICpcbiAqICAgICBzdXBlcmFnZW50LnNlcmlhbGl6ZVsnYXBwbGljYXRpb24veG1sJ10gPSBmdW5jdGlvbihvYmope1xuICogICAgICAgcmV0dXJuICdnZW5lcmF0ZWQgeG1sIGhlcmUnO1xuICogICAgIH07XG4gKlxuICovXG5cbiByZXF1ZXN0LnNlcmlhbGl6ZSA9IHtcbiAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnOiBzZXJpYWxpemUsXG4gICAnYXBwbGljYXRpb24vanNvbic6IEpTT04uc3RyaW5naWZ5XG4gfTtcblxuIC8qKlxuICAqIERlZmF1bHQgcGFyc2Vycy5cbiAgKlxuICAqICAgICBzdXBlcmFnZW50LnBhcnNlWydhcHBsaWNhdGlvbi94bWwnXSA9IGZ1bmN0aW9uKHN0cil7XG4gICogICAgICAgcmV0dXJuIHsgb2JqZWN0IHBhcnNlZCBmcm9tIHN0ciB9O1xuICAqICAgICB9O1xuICAqXG4gICovXG5cbnJlcXVlc3QucGFyc2UgPSB7XG4gICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnOiBwYXJzZVN0cmluZyxcbiAgJ2FwcGxpY2F0aW9uL2pzb24nOiBKU09OLnBhcnNlXG59O1xuXG4vKipcbiAqIFBhcnNlIHRoZSBnaXZlbiBoZWFkZXIgYHN0cmAgaW50b1xuICogYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG1hcHBlZCBmaWVsZHMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7T2JqZWN0fVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcGFyc2VIZWFkZXIoc3RyKSB7XG4gIHZhciBsaW5lcyA9IHN0ci5zcGxpdCgvXFxyP1xcbi8pO1xuICB2YXIgZmllbGRzID0ge307XG4gIHZhciBpbmRleDtcbiAgdmFyIGxpbmU7XG4gIHZhciBmaWVsZDtcbiAgdmFyIHZhbDtcblxuICBsaW5lcy5wb3AoKTsgLy8gdHJhaWxpbmcgQ1JMRlxuXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBsaW5lcy5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgIGxpbmUgPSBsaW5lc1tpXTtcbiAgICBpbmRleCA9IGxpbmUuaW5kZXhPZignOicpO1xuICAgIGZpZWxkID0gbGluZS5zbGljZSgwLCBpbmRleCkudG9Mb3dlckNhc2UoKTtcbiAgICB2YWwgPSB0cmltKGxpbmUuc2xpY2UoaW5kZXggKyAxKSk7XG4gICAgZmllbGRzW2ZpZWxkXSA9IHZhbDtcbiAgfVxuXG4gIHJldHVybiBmaWVsZHM7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBtaW1lIHR5cGUgZm9yIHRoZSBnaXZlbiBgc3RyYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiB0eXBlKHN0cil7XG4gIHJldHVybiBzdHIuc3BsaXQoLyAqOyAqLykuc2hpZnQoKTtcbn07XG5cbi8qKlxuICogUmV0dXJuIGhlYWRlciBmaWVsZCBwYXJhbWV0ZXJzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHBhcmFtcyhzdHIpe1xuICByZXR1cm4gcmVkdWNlKHN0ci5zcGxpdCgvICo7ICovKSwgZnVuY3Rpb24ob2JqLCBzdHIpe1xuICAgIHZhciBwYXJ0cyA9IHN0ci5zcGxpdCgvICo9ICovKVxuICAgICAgLCBrZXkgPSBwYXJ0cy5zaGlmdCgpXG4gICAgICAsIHZhbCA9IHBhcnRzLnNoaWZ0KCk7XG5cbiAgICBpZiAoa2V5ICYmIHZhbCkgb2JqW2tleV0gPSB2YWw7XG4gICAgcmV0dXJuIG9iajtcbiAgfSwge30pO1xufTtcblxuLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IGBSZXNwb25zZWAgd2l0aCB0aGUgZ2l2ZW4gYHhocmAuXG4gKlxuICogIC0gc2V0IGZsYWdzICgub2ssIC5lcnJvciwgZXRjKVxuICogIC0gcGFyc2UgaGVhZGVyXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogIEFsaWFzaW5nIGBzdXBlcmFnZW50YCBhcyBgcmVxdWVzdGAgaXMgbmljZTpcbiAqXG4gKiAgICAgIHJlcXVlc3QgPSBzdXBlcmFnZW50O1xuICpcbiAqICBXZSBjYW4gdXNlIHRoZSBwcm9taXNlLWxpa2UgQVBJLCBvciBwYXNzIGNhbGxiYWNrczpcbiAqXG4gKiAgICAgIHJlcXVlc3QuZ2V0KCcvJykuZW5kKGZ1bmN0aW9uKHJlcyl7fSk7XG4gKiAgICAgIHJlcXVlc3QuZ2V0KCcvJywgZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiAgU2VuZGluZyBkYXRhIGNhbiBiZSBjaGFpbmVkOlxuICpcbiAqICAgICAgcmVxdWVzdFxuICogICAgICAgIC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgLnNlbmQoeyBuYW1lOiAndGonIH0pXG4gKiAgICAgICAgLmVuZChmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqICBPciBwYXNzZWQgdG8gYC5zZW5kKClgOlxuICpcbiAqICAgICAgcmVxdWVzdFxuICogICAgICAgIC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgLnNlbmQoeyBuYW1lOiAndGonIH0sIGZ1bmN0aW9uKHJlcyl7fSk7XG4gKlxuICogIE9yIHBhc3NlZCB0byBgLnBvc3QoKWA6XG4gKlxuICogICAgICByZXF1ZXN0XG4gKiAgICAgICAgLnBvc3QoJy91c2VyJywgeyBuYW1lOiAndGonIH0pXG4gKiAgICAgICAgLmVuZChmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqIE9yIGZ1cnRoZXIgcmVkdWNlZCB0byBhIHNpbmdsZSBjYWxsIGZvciBzaW1wbGUgY2FzZXM6XG4gKlxuICogICAgICByZXF1ZXN0XG4gKiAgICAgICAgLnBvc3QoJy91c2VyJywgeyBuYW1lOiAndGonIH0sIGZ1bmN0aW9uKHJlcyl7fSk7XG4gKlxuICogQHBhcmFtIHtYTUxIVFRQUmVxdWVzdH0geGhyXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gUmVzcG9uc2UocmVxLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICB0aGlzLnJlcSA9IHJlcTtcbiAgdGhpcy54aHIgPSB0aGlzLnJlcS54aHI7XG4gIC8vIHJlc3BvbnNlVGV4dCBpcyBhY2Nlc3NpYmxlIG9ubHkgaWYgcmVzcG9uc2VUeXBlIGlzICcnIG9yICd0ZXh0JyBhbmQgb24gb2xkZXIgYnJvd3NlcnNcbiAgdGhpcy50ZXh0ID0gKCh0aGlzLnJlcS5tZXRob2QgIT0nSEVBRCcgJiYgKHRoaXMueGhyLnJlc3BvbnNlVHlwZSA9PT0gJycgfHwgdGhpcy54aHIucmVzcG9uc2VUeXBlID09PSAndGV4dCcpKSB8fCB0eXBlb2YgdGhpcy54aHIucmVzcG9uc2VUeXBlID09PSAndW5kZWZpbmVkJylcbiAgICAgPyB0aGlzLnhoci5yZXNwb25zZVRleHRcbiAgICAgOiBudWxsO1xuICB0aGlzLnN0YXR1c1RleHQgPSB0aGlzLnJlcS54aHIuc3RhdHVzVGV4dDtcbiAgdGhpcy5zZXRTdGF0dXNQcm9wZXJ0aWVzKHRoaXMueGhyLnN0YXR1cyk7XG4gIHRoaXMuaGVhZGVyID0gdGhpcy5oZWFkZXJzID0gcGFyc2VIZWFkZXIodGhpcy54aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpO1xuICAvLyBnZXRBbGxSZXNwb25zZUhlYWRlcnMgc29tZXRpbWVzIGZhbHNlbHkgcmV0dXJucyBcIlwiIGZvciBDT1JTIHJlcXVlc3RzLCBidXRcbiAgLy8gZ2V0UmVzcG9uc2VIZWFkZXIgc3RpbGwgd29ya3MuIHNvIHdlIGdldCBjb250ZW50LXR5cGUgZXZlbiBpZiBnZXR0aW5nXG4gIC8vIG90aGVyIGhlYWRlcnMgZmFpbHMuXG4gIHRoaXMuaGVhZGVyWydjb250ZW50LXR5cGUnXSA9IHRoaXMueGhyLmdldFJlc3BvbnNlSGVhZGVyKCdjb250ZW50LXR5cGUnKTtcbiAgdGhpcy5zZXRIZWFkZXJQcm9wZXJ0aWVzKHRoaXMuaGVhZGVyKTtcbiAgdGhpcy5ib2R5ID0gdGhpcy5yZXEubWV0aG9kICE9ICdIRUFEJ1xuICAgID8gdGhpcy5wYXJzZUJvZHkodGhpcy50ZXh0ID8gdGhpcy50ZXh0IDogdGhpcy54aHIucmVzcG9uc2UpXG4gICAgOiBudWxsO1xufVxuXG4vKipcbiAqIEdldCBjYXNlLWluc2Vuc2l0aXZlIGBmaWVsZGAgdmFsdWUuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGZpZWxkXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlc3BvbnNlLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbihmaWVsZCl7XG4gIHJldHVybiB0aGlzLmhlYWRlcltmaWVsZC50b0xvd2VyQ2FzZSgpXTtcbn07XG5cbi8qKlxuICogU2V0IGhlYWRlciByZWxhdGVkIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGAudHlwZWAgdGhlIGNvbnRlbnQgdHlwZSB3aXRob3V0IHBhcmFtc1xuICpcbiAqIEEgcmVzcG9uc2Ugb2YgXCJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLThcIlxuICogd2lsbCBwcm92aWRlIHlvdSB3aXRoIGEgYC50eXBlYCBvZiBcInRleHQvcGxhaW5cIi5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gaGVhZGVyXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUuc2V0SGVhZGVyUHJvcGVydGllcyA9IGZ1bmN0aW9uKGhlYWRlcil7XG4gIC8vIGNvbnRlbnQtdHlwZVxuICB2YXIgY3QgPSB0aGlzLmhlYWRlclsnY29udGVudC10eXBlJ10gfHwgJyc7XG4gIHRoaXMudHlwZSA9IHR5cGUoY3QpO1xuXG4gIC8vIHBhcmFtc1xuICB2YXIgb2JqID0gcGFyYW1zKGN0KTtcbiAgZm9yICh2YXIga2V5IGluIG9iaikgdGhpc1trZXldID0gb2JqW2tleV07XG59O1xuXG4vKipcbiAqIFBhcnNlIHRoZSBnaXZlbiBib2R5IGBzdHJgLlxuICpcbiAqIFVzZWQgZm9yIGF1dG8tcGFyc2luZyBvZiBib2RpZXMuIFBhcnNlcnNcbiAqIGFyZSBkZWZpbmVkIG9uIHRoZSBgc3VwZXJhZ2VudC5wYXJzZWAgb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge01peGVkfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVzcG9uc2UucHJvdG90eXBlLnBhcnNlQm9keSA9IGZ1bmN0aW9uKHN0cil7XG4gIHZhciBwYXJzZSA9IHJlcXVlc3QucGFyc2VbdGhpcy50eXBlXTtcbiAgcmV0dXJuIHBhcnNlICYmIHN0ciAmJiAoc3RyLmxlbmd0aCB8fCBzdHIgaW5zdGFuY2VvZiBPYmplY3QpXG4gICAgPyBwYXJzZShzdHIpXG4gICAgOiBudWxsO1xufTtcblxuLyoqXG4gKiBTZXQgZmxhZ3Mgc3VjaCBhcyBgLm9rYCBiYXNlZCBvbiBgc3RhdHVzYC5cbiAqXG4gKiBGb3IgZXhhbXBsZSBhIDJ4eCByZXNwb25zZSB3aWxsIGdpdmUgeW91IGEgYC5va2Agb2YgX190cnVlX19cbiAqIHdoZXJlYXMgNXh4IHdpbGwgYmUgX19mYWxzZV9fIGFuZCBgLmVycm9yYCB3aWxsIGJlIF9fdHJ1ZV9fLiBUaGVcbiAqIGAuY2xpZW50RXJyb3JgIGFuZCBgLnNlcnZlckVycm9yYCBhcmUgYWxzbyBhdmFpbGFibGUgdG8gYmUgbW9yZVxuICogc3BlY2lmaWMsIGFuZCBgLnN0YXR1c1R5cGVgIGlzIHRoZSBjbGFzcyBvZiBlcnJvciByYW5naW5nIGZyb20gMS4uNVxuICogc29tZXRpbWVzIHVzZWZ1bCBmb3IgbWFwcGluZyByZXNwb25kIGNvbG9ycyBldGMuXG4gKlxuICogXCJzdWdhclwiIHByb3BlcnRpZXMgYXJlIGFsc28gZGVmaW5lZCBmb3IgY29tbW9uIGNhc2VzLiBDdXJyZW50bHkgcHJvdmlkaW5nOlxuICpcbiAqICAgLSAubm9Db250ZW50XG4gKiAgIC0gLmJhZFJlcXVlc3RcbiAqICAgLSAudW5hdXRob3JpemVkXG4gKiAgIC0gLm5vdEFjY2VwdGFibGVcbiAqICAgLSAubm90Rm91bmRcbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gc3RhdHVzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUuc2V0U3RhdHVzUHJvcGVydGllcyA9IGZ1bmN0aW9uKHN0YXR1cyl7XG4gIC8vIGhhbmRsZSBJRTkgYnVnOiBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzEwMDQ2OTcyL21zaWUtcmV0dXJucy1zdGF0dXMtY29kZS1vZi0xMjIzLWZvci1hamF4LXJlcXVlc3RcbiAgaWYgKHN0YXR1cyA9PT0gMTIyMykge1xuICAgIHN0YXR1cyA9IDIwNDtcbiAgfVxuXG4gIHZhciB0eXBlID0gc3RhdHVzIC8gMTAwIHwgMDtcblxuICAvLyBzdGF0dXMgLyBjbGFzc1xuICB0aGlzLnN0YXR1cyA9IHN0YXR1cztcbiAgdGhpcy5zdGF0dXNUeXBlID0gdHlwZTtcblxuICAvLyBiYXNpY3NcbiAgdGhpcy5pbmZvID0gMSA9PSB0eXBlO1xuICB0aGlzLm9rID0gMiA9PSB0eXBlO1xuICB0aGlzLmNsaWVudEVycm9yID0gNCA9PSB0eXBlO1xuICB0aGlzLnNlcnZlckVycm9yID0gNSA9PSB0eXBlO1xuICB0aGlzLmVycm9yID0gKDQgPT0gdHlwZSB8fCA1ID09IHR5cGUpXG4gICAgPyB0aGlzLnRvRXJyb3IoKVxuICAgIDogZmFsc2U7XG5cbiAgLy8gc3VnYXJcbiAgdGhpcy5hY2NlcHRlZCA9IDIwMiA9PSBzdGF0dXM7XG4gIHRoaXMubm9Db250ZW50ID0gMjA0ID09IHN0YXR1cztcbiAgdGhpcy5iYWRSZXF1ZXN0ID0gNDAwID09IHN0YXR1cztcbiAgdGhpcy51bmF1dGhvcml6ZWQgPSA0MDEgPT0gc3RhdHVzO1xuICB0aGlzLm5vdEFjY2VwdGFibGUgPSA0MDYgPT0gc3RhdHVzO1xuICB0aGlzLm5vdEZvdW5kID0gNDA0ID09IHN0YXR1cztcbiAgdGhpcy5mb3JiaWRkZW4gPSA0MDMgPT0gc3RhdHVzO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gYW4gYEVycm9yYCByZXByZXNlbnRhdGl2ZSBvZiB0aGlzIHJlc3BvbnNlLlxuICpcbiAqIEByZXR1cm4ge0Vycm9yfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUudG9FcnJvciA9IGZ1bmN0aW9uKCl7XG4gIHZhciByZXEgPSB0aGlzLnJlcTtcbiAgdmFyIG1ldGhvZCA9IHJlcS5tZXRob2Q7XG4gIHZhciB1cmwgPSByZXEudXJsO1xuXG4gIHZhciBtc2cgPSAnY2Fubm90ICcgKyBtZXRob2QgKyAnICcgKyB1cmwgKyAnICgnICsgdGhpcy5zdGF0dXMgKyAnKSc7XG4gIHZhciBlcnIgPSBuZXcgRXJyb3IobXNnKTtcbiAgZXJyLnN0YXR1cyA9IHRoaXMuc3RhdHVzO1xuICBlcnIubWV0aG9kID0gbWV0aG9kO1xuICBlcnIudXJsID0gdXJsO1xuXG4gIHJldHVybiBlcnI7XG59O1xuXG4vKipcbiAqIEV4cG9zZSBgUmVzcG9uc2VgLlxuICovXG5cbnJlcXVlc3QuUmVzcG9uc2UgPSBSZXNwb25zZTtcblxuLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IGBSZXF1ZXN0YCB3aXRoIHRoZSBnaXZlbiBgbWV0aG9kYCBhbmQgYHVybGAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG1ldGhvZFxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBSZXF1ZXN0KG1ldGhvZCwgdXJsKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgRW1pdHRlci5jYWxsKHRoaXMpO1xuICB0aGlzLl9xdWVyeSA9IHRoaXMuX3F1ZXJ5IHx8IFtdO1xuICB0aGlzLm1ldGhvZCA9IG1ldGhvZDtcbiAgdGhpcy51cmwgPSB1cmw7XG4gIHRoaXMuaGVhZGVyID0ge307XG4gIHRoaXMuX2hlYWRlciA9IHt9O1xuICB0aGlzLm9uKCdlbmQnLCBmdW5jdGlvbigpe1xuICAgIHZhciBlcnIgPSBudWxsO1xuICAgIHZhciByZXMgPSBudWxsO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJlcyA9IG5ldyBSZXNwb25zZShzZWxmKTtcbiAgICB9IGNhdGNoKGUpIHtcbiAgICAgIGVyciA9IG5ldyBFcnJvcignUGFyc2VyIGlzIHVuYWJsZSB0byBwYXJzZSB0aGUgcmVzcG9uc2UnKTtcbiAgICAgIGVyci5wYXJzZSA9IHRydWU7XG4gICAgICBlcnIub3JpZ2luYWwgPSBlO1xuICAgICAgcmV0dXJuIHNlbGYuY2FsbGJhY2soZXJyKTtcbiAgICB9XG5cbiAgICBzZWxmLmVtaXQoJ3Jlc3BvbnNlJywgcmVzKTtcblxuICAgIGlmIChlcnIpIHtcbiAgICAgIHJldHVybiBzZWxmLmNhbGxiYWNrKGVyciwgcmVzKTtcbiAgICB9XG5cbiAgICBpZiAocmVzLnN0YXR1cyA+PSAyMDAgJiYgcmVzLnN0YXR1cyA8IDMwMCkge1xuICAgICAgcmV0dXJuIHNlbGYuY2FsbGJhY2soZXJyLCByZXMpO1xuICAgIH1cblxuICAgIHZhciBuZXdfZXJyID0gbmV3IEVycm9yKHJlcy5zdGF0dXNUZXh0IHx8ICdVbnN1Y2Nlc3NmdWwgSFRUUCByZXNwb25zZScpO1xuICAgIG5ld19lcnIub3JpZ2luYWwgPSBlcnI7XG4gICAgbmV3X2Vyci5yZXNwb25zZSA9IHJlcztcbiAgICBuZXdfZXJyLnN0YXR1cyA9IHJlcy5zdGF0dXM7XG5cbiAgICBzZWxmLmNhbGxiYWNrKGVyciB8fCBuZXdfZXJyLCByZXMpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBNaXhpbiBgRW1pdHRlcmAuXG4gKi9cblxuRW1pdHRlcihSZXF1ZXN0LnByb3RvdHlwZSk7XG5cbi8qKlxuICogQWxsb3cgZm9yIGV4dGVuc2lvblxuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnVzZSA9IGZ1bmN0aW9uKGZuKSB7XG4gIGZuKHRoaXMpO1xuICByZXR1cm4gdGhpcztcbn1cblxuLyoqXG4gKiBTZXQgdGltZW91dCB0byBgbXNgLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBtc1xuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnRpbWVvdXQgPSBmdW5jdGlvbihtcyl7XG4gIHRoaXMuX3RpbWVvdXQgPSBtcztcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIENsZWFyIHByZXZpb3VzIHRpbWVvdXQuXG4gKlxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmNsZWFyVGltZW91dCA9IGZ1bmN0aW9uKCl7XG4gIHRoaXMuX3RpbWVvdXQgPSAwO1xuICBjbGVhclRpbWVvdXQodGhpcy5fdGltZXIpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQWJvcnQgdGhlIHJlcXVlc3QsIGFuZCBjbGVhciBwb3RlbnRpYWwgdGltZW91dC5cbiAqXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5hYm9ydCA9IGZ1bmN0aW9uKCl7XG4gIGlmICh0aGlzLmFib3J0ZWQpIHJldHVybjtcbiAgdGhpcy5hYm9ydGVkID0gdHJ1ZTtcbiAgdGhpcy54aHIuYWJvcnQoKTtcbiAgdGhpcy5jbGVhclRpbWVvdXQoKTtcbiAgdGhpcy5lbWl0KCdhYm9ydCcpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2V0IGhlYWRlciBgZmllbGRgIHRvIGB2YWxgLCBvciBtdWx0aXBsZSBmaWVsZHMgd2l0aCBvbmUgb2JqZWN0LlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICAgcmVxLmdldCgnLycpXG4gKiAgICAgICAgLnNldCgnQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb24nKVxuICogICAgICAgIC5zZXQoJ1gtQVBJLUtleScsICdmb29iYXInKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqICAgICAgcmVxLmdldCgnLycpXG4gKiAgICAgICAgLnNldCh7IEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLCAnWC1BUEktS2V5JzogJ2Zvb2JhcicgfSlcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGZpZWxkXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24oZmllbGQsIHZhbCl7XG4gIGlmIChpc09iamVjdChmaWVsZCkpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gZmllbGQpIHtcbiAgICAgIHRoaXMuc2V0KGtleSwgZmllbGRba2V5XSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHRoaXMuX2hlYWRlcltmaWVsZC50b0xvd2VyQ2FzZSgpXSA9IHZhbDtcbiAgdGhpcy5oZWFkZXJbZmllbGRdID0gdmFsO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogUmVtb3ZlIGhlYWRlciBgZmllbGRgLlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogICAgICByZXEuZ2V0KCcvJylcbiAqICAgICAgICAudW5zZXQoJ1VzZXItQWdlbnQnKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWVsZFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnVuc2V0ID0gZnVuY3Rpb24oZmllbGQpe1xuICBkZWxldGUgdGhpcy5faGVhZGVyW2ZpZWxkLnRvTG93ZXJDYXNlKCldO1xuICBkZWxldGUgdGhpcy5oZWFkZXJbZmllbGRdO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogR2V0IGNhc2UtaW5zZW5zaXRpdmUgaGVhZGVyIGBmaWVsZGAgdmFsdWUuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGZpZWxkXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5nZXRIZWFkZXIgPSBmdW5jdGlvbihmaWVsZCl7XG4gIHJldHVybiB0aGlzLl9oZWFkZXJbZmllbGQudG9Mb3dlckNhc2UoKV07XG59O1xuXG4vKipcbiAqIFNldCBDb250ZW50LVR5cGUgdG8gYHR5cGVgLCBtYXBwaW5nIHZhbHVlcyBmcm9tIGByZXF1ZXN0LnR5cGVzYC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgIHN1cGVyYWdlbnQudHlwZXMueG1sID0gJ2FwcGxpY2F0aW9uL3htbCc7XG4gKlxuICogICAgICByZXF1ZXN0LnBvc3QoJy8nKVxuICogICAgICAgIC50eXBlKCd4bWwnKVxuICogICAgICAgIC5zZW5kKHhtbHN0cmluZylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiAgICAgIHJlcXVlc3QucG9zdCgnLycpXG4gKiAgICAgICAgLnR5cGUoJ2FwcGxpY2F0aW9uL3htbCcpXG4gKiAgICAgICAgLnNlbmQoeG1sc3RyaW5nKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUudHlwZSA9IGZ1bmN0aW9uKHR5cGUpe1xuICB0aGlzLnNldCgnQ29udGVudC1UeXBlJywgcmVxdWVzdC50eXBlc1t0eXBlXSB8fCB0eXBlKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCBBY2NlcHQgdG8gYHR5cGVgLCBtYXBwaW5nIHZhbHVlcyBmcm9tIGByZXF1ZXN0LnR5cGVzYC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgIHN1cGVyYWdlbnQudHlwZXMuanNvbiA9ICdhcHBsaWNhdGlvbi9qc29uJztcbiAqXG4gKiAgICAgIHJlcXVlc3QuZ2V0KCcvYWdlbnQnKVxuICogICAgICAgIC5hY2NlcHQoJ2pzb24nKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqICAgICAgcmVxdWVzdC5nZXQoJy9hZ2VudCcpXG4gKiAgICAgICAgLmFjY2VwdCgnYXBwbGljYXRpb24vanNvbicpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGFjY2VwdFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmFjY2VwdCA9IGZ1bmN0aW9uKHR5cGUpe1xuICB0aGlzLnNldCgnQWNjZXB0JywgcmVxdWVzdC50eXBlc1t0eXBlXSB8fCB0eXBlKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCBBdXRob3JpemF0aW9uIGZpZWxkIHZhbHVlIHdpdGggYHVzZXJgIGFuZCBgcGFzc2AuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVzZXJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXNzXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuYXV0aCA9IGZ1bmN0aW9uKHVzZXIsIHBhc3Mpe1xuICB2YXIgc3RyID0gYnRvYSh1c2VyICsgJzonICsgcGFzcyk7XG4gIHRoaXMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0Jhc2ljICcgKyBzdHIpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuKiBBZGQgcXVlcnktc3RyaW5nIGB2YWxgLlxuKlxuKiBFeGFtcGxlczpcbipcbiogICByZXF1ZXN0LmdldCgnL3Nob2VzJylcbiogICAgIC5xdWVyeSgnc2l6ZT0xMCcpXG4qICAgICAucXVlcnkoeyBjb2xvcjogJ2JsdWUnIH0pXG4qXG4qIEBwYXJhbSB7T2JqZWN0fFN0cmluZ30gdmFsXG4qIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuKiBAYXBpIHB1YmxpY1xuKi9cblxuUmVxdWVzdC5wcm90b3R5cGUucXVlcnkgPSBmdW5jdGlvbih2YWwpe1xuICBpZiAoJ3N0cmluZycgIT0gdHlwZW9mIHZhbCkgdmFsID0gc2VyaWFsaXplKHZhbCk7XG4gIGlmICh2YWwpIHRoaXMuX3F1ZXJ5LnB1c2godmFsKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFdyaXRlIHRoZSBmaWVsZCBgbmFtZWAgYW5kIGB2YWxgIGZvciBcIm11bHRpcGFydC9mb3JtLWRhdGFcIlxuICogcmVxdWVzdCBib2RpZXMuXG4gKlxuICogYGBgIGpzXG4gKiByZXF1ZXN0LnBvc3QoJy91cGxvYWQnKVxuICogICAuZmllbGQoJ2ZvbycsICdiYXInKVxuICogICAuZW5kKGNhbGxiYWNrKTtcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcGFyYW0ge1N0cmluZ3xCbG9ifEZpbGV9IHZhbFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmZpZWxkID0gZnVuY3Rpb24obmFtZSwgdmFsKXtcbiAgaWYgKCF0aGlzLl9mb3JtRGF0YSkgdGhpcy5fZm9ybURhdGEgPSBuZXcgcm9vdC5Gb3JtRGF0YSgpO1xuICB0aGlzLl9mb3JtRGF0YS5hcHBlbmQobmFtZSwgdmFsKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFF1ZXVlIHRoZSBnaXZlbiBgZmlsZWAgYXMgYW4gYXR0YWNobWVudCB0byB0aGUgc3BlY2lmaWVkIGBmaWVsZGAsXG4gKiB3aXRoIG9wdGlvbmFsIGBmaWxlbmFtZWAuXG4gKlxuICogYGBgIGpzXG4gKiByZXF1ZXN0LnBvc3QoJy91cGxvYWQnKVxuICogICAuYXR0YWNoKG5ldyBCbG9iKFsnPGEgaWQ9XCJhXCI+PGIgaWQ9XCJiXCI+aGV5ITwvYj48L2E+J10sIHsgdHlwZTogXCJ0ZXh0L2h0bWxcIn0pKVxuICogICAuZW5kKGNhbGxiYWNrKTtcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWVsZFxuICogQHBhcmFtIHtCbG9ifEZpbGV9IGZpbGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWxlbmFtZVxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmF0dGFjaCA9IGZ1bmN0aW9uKGZpZWxkLCBmaWxlLCBmaWxlbmFtZSl7XG4gIGlmICghdGhpcy5fZm9ybURhdGEpIHRoaXMuX2Zvcm1EYXRhID0gbmV3IHJvb3QuRm9ybURhdGEoKTtcbiAgdGhpcy5fZm9ybURhdGEuYXBwZW5kKGZpZWxkLCBmaWxlLCBmaWxlbmFtZSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZW5kIGBkYXRhYCwgZGVmYXVsdGluZyB0aGUgYC50eXBlKClgIHRvIFwianNvblwiIHdoZW5cbiAqIGFuIG9iamVjdCBpcyBnaXZlbi5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgICAvLyBxdWVyeXN0cmluZ1xuICogICAgICAgcmVxdWVzdC5nZXQoJy9zZWFyY2gnKVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIG11bHRpcGxlIGRhdGEgXCJ3cml0ZXNcIlxuICogICAgICAgcmVxdWVzdC5nZXQoJy9zZWFyY2gnKVxuICogICAgICAgICAuc2VuZCh7IHNlYXJjaDogJ3F1ZXJ5JyB9KVxuICogICAgICAgICAuc2VuZCh7IHJhbmdlOiAnMS4uNScgfSlcbiAqICAgICAgICAgLnNlbmQoeyBvcmRlcjogJ2Rlc2MnIH0pXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogICAgICAgLy8gbWFudWFsIGpzb25cbiAqICAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICogICAgICAgICAudHlwZSgnanNvbicpXG4gKiAgICAgICAgIC5zZW5kKCd7XCJuYW1lXCI6XCJ0alwifSlcbiAqICAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiAgICAgICAvLyBhdXRvIGpzb25cbiAqICAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICogICAgICAgICAuc2VuZCh7IG5hbWU6ICd0aicgfSlcbiAqICAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiAgICAgICAvLyBtYW51YWwgeC13d3ctZm9ybS11cmxlbmNvZGVkXG4gKiAgICAgICByZXF1ZXN0LnBvc3QoJy91c2VyJylcbiAqICAgICAgICAgLnR5cGUoJ2Zvcm0nKVxuICogICAgICAgICAuc2VuZCgnbmFtZT10aicpXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogICAgICAgLy8gYXV0byB4LXd3dy1mb3JtLXVybGVuY29kZWRcbiAqICAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICogICAgICAgICAudHlwZSgnZm9ybScpXG4gKiAgICAgICAgIC5zZW5kKHsgbmFtZTogJ3RqJyB9KVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIGRlZmF1bHRzIHRvIHgtd3d3LWZvcm0tdXJsZW5jb2RlZFxuICAqICAgICAgcmVxdWVzdC5wb3N0KCcvdXNlcicpXG4gICogICAgICAgIC5zZW5kKCduYW1lPXRvYmknKVxuICAqICAgICAgICAuc2VuZCgnc3BlY2llcz1mZXJyZXQnKVxuICAqICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gZGF0YVxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnNlbmQgPSBmdW5jdGlvbihkYXRhKXtcbiAgdmFyIG9iaiA9IGlzT2JqZWN0KGRhdGEpO1xuICB2YXIgdHlwZSA9IHRoaXMuZ2V0SGVhZGVyKCdDb250ZW50LVR5cGUnKTtcblxuICAvLyBtZXJnZVxuICBpZiAob2JqICYmIGlzT2JqZWN0KHRoaXMuX2RhdGEpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIGRhdGEpIHtcbiAgICAgIHRoaXMuX2RhdGFba2V5XSA9IGRhdGFba2V5XTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoJ3N0cmluZycgPT0gdHlwZW9mIGRhdGEpIHtcbiAgICBpZiAoIXR5cGUpIHRoaXMudHlwZSgnZm9ybScpO1xuICAgIHR5cGUgPSB0aGlzLmdldEhlYWRlcignQ29udGVudC1UeXBlJyk7XG4gICAgaWYgKCdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnID09IHR5cGUpIHtcbiAgICAgIHRoaXMuX2RhdGEgPSB0aGlzLl9kYXRhXG4gICAgICAgID8gdGhpcy5fZGF0YSArICcmJyArIGRhdGFcbiAgICAgICAgOiBkYXRhO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kYXRhID0gKHRoaXMuX2RhdGEgfHwgJycpICsgZGF0YTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5fZGF0YSA9IGRhdGE7XG4gIH1cblxuICBpZiAoIW9iaiB8fCBpc0hvc3QoZGF0YSkpIHJldHVybiB0aGlzO1xuICBpZiAoIXR5cGUpIHRoaXMudHlwZSgnanNvbicpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogSW52b2tlIHRoZSBjYWxsYmFjayB3aXRoIGBlcnJgIGFuZCBgcmVzYFxuICogYW5kIGhhbmRsZSBhcml0eSBjaGVjay5cbiAqXG4gKiBAcGFyYW0ge0Vycm9yfSBlcnJcbiAqIEBwYXJhbSB7UmVzcG9uc2V9IHJlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuY2FsbGJhY2sgPSBmdW5jdGlvbihlcnIsIHJlcyl7XG4gIHZhciBmbiA9IHRoaXMuX2NhbGxiYWNrO1xuICB0aGlzLmNsZWFyVGltZW91dCgpO1xuICBmbihlcnIsIHJlcyk7XG59O1xuXG4vKipcbiAqIEludm9rZSBjYWxsYmFjayB3aXRoIHgtZG9tYWluIGVycm9yLlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmNyb3NzRG9tYWluRXJyb3IgPSBmdW5jdGlvbigpe1xuICB2YXIgZXJyID0gbmV3IEVycm9yKCdPcmlnaW4gaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJyk7XG4gIGVyci5jcm9zc0RvbWFpbiA9IHRydWU7XG4gIHRoaXMuY2FsbGJhY2soZXJyKTtcbn07XG5cbi8qKlxuICogSW52b2tlIGNhbGxiYWNrIHdpdGggdGltZW91dCBlcnJvci5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS50aW1lb3V0RXJyb3IgPSBmdW5jdGlvbigpe1xuICB2YXIgdGltZW91dCA9IHRoaXMuX3RpbWVvdXQ7XG4gIHZhciBlcnIgPSBuZXcgRXJyb3IoJ3RpbWVvdXQgb2YgJyArIHRpbWVvdXQgKyAnbXMgZXhjZWVkZWQnKTtcbiAgZXJyLnRpbWVvdXQgPSB0aW1lb3V0O1xuICB0aGlzLmNhbGxiYWNrKGVycik7XG59O1xuXG4vKipcbiAqIEVuYWJsZSB0cmFuc21pc3Npb24gb2YgY29va2llcyB3aXRoIHgtZG9tYWluIHJlcXVlc3RzLlxuICpcbiAqIE5vdGUgdGhhdCBmb3IgdGhpcyB0byB3b3JrIHRoZSBvcmlnaW4gbXVzdCBub3QgYmVcbiAqIHVzaW5nIFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luXCIgd2l0aCBhIHdpbGRjYXJkLFxuICogYW5kIGFsc28gbXVzdCBzZXQgXCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFsc1wiXG4gKiB0byBcInRydWVcIi5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLndpdGhDcmVkZW50aWFscyA9IGZ1bmN0aW9uKCl7XG4gIHRoaXMuX3dpdGhDcmVkZW50aWFscyA9IHRydWU7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBJbml0aWF0ZSByZXF1ZXN0LCBpbnZva2luZyBjYWxsYmFjayBgZm4ocmVzKWBcbiAqIHdpdGggYW4gaW5zdGFuY2VvZiBgUmVzcG9uc2VgLlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oZm4pe1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciB4aHIgPSB0aGlzLnhociA9IHJlcXVlc3QuZ2V0WEhSKCk7XG4gIHZhciBxdWVyeSA9IHRoaXMuX3F1ZXJ5LmpvaW4oJyYnKTtcbiAgdmFyIHRpbWVvdXQgPSB0aGlzLl90aW1lb3V0O1xuICB2YXIgZGF0YSA9IHRoaXMuX2Zvcm1EYXRhIHx8IHRoaXMuX2RhdGE7XG5cbiAgLy8gc3RvcmUgY2FsbGJhY2tcbiAgdGhpcy5fY2FsbGJhY2sgPSBmbiB8fCBub29wO1xuXG4gIC8vIHN0YXRlIGNoYW5nZVxuICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKXtcbiAgICBpZiAoNCAhPSB4aHIucmVhZHlTdGF0ZSkgcmV0dXJuO1xuXG4gICAgLy8gSW4gSUU5LCByZWFkcyB0byBhbnkgcHJvcGVydHkgKGUuZy4gc3RhdHVzKSBvZmYgb2YgYW4gYWJvcnRlZCBYSFIgd2lsbFxuICAgIC8vIHJlc3VsdCBpbiB0aGUgZXJyb3IgXCJDb3VsZCBub3QgY29tcGxldGUgdGhlIG9wZXJhdGlvbiBkdWUgdG8gZXJyb3IgYzAwYzAyM2ZcIlxuICAgIHZhciBzdGF0dXM7XG4gICAgdHJ5IHsgc3RhdHVzID0geGhyLnN0YXR1cyB9IGNhdGNoKGUpIHsgc3RhdHVzID0gMDsgfVxuXG4gICAgaWYgKDAgPT0gc3RhdHVzKSB7XG4gICAgICBpZiAoc2VsZi50aW1lZG91dCkgcmV0dXJuIHNlbGYudGltZW91dEVycm9yKCk7XG4gICAgICBpZiAoc2VsZi5hYm9ydGVkKSByZXR1cm47XG4gICAgICByZXR1cm4gc2VsZi5jcm9zc0RvbWFpbkVycm9yKCk7XG4gICAgfVxuICAgIHNlbGYuZW1pdCgnZW5kJyk7XG4gIH07XG5cbiAgLy8gcHJvZ3Jlc3NcbiAgdmFyIGhhbmRsZVByb2dyZXNzID0gZnVuY3Rpb24oZSl7XG4gICAgaWYgKGUudG90YWwgPiAwKSB7XG4gICAgICBlLnBlcmNlbnQgPSBlLmxvYWRlZCAvIGUudG90YWwgKiAxMDA7XG4gICAgfVxuICAgIHNlbGYuZW1pdCgncHJvZ3Jlc3MnLCBlKTtcbiAgfTtcbiAgaWYgKHRoaXMuaGFzTGlzdGVuZXJzKCdwcm9ncmVzcycpKSB7XG4gICAgeGhyLm9ucHJvZ3Jlc3MgPSBoYW5kbGVQcm9ncmVzcztcbiAgfVxuICB0cnkge1xuICAgIGlmICh4aHIudXBsb2FkICYmIHRoaXMuaGFzTGlzdGVuZXJzKCdwcm9ncmVzcycpKSB7XG4gICAgICB4aHIudXBsb2FkLm9ucHJvZ3Jlc3MgPSBoYW5kbGVQcm9ncmVzcztcbiAgICB9XG4gIH0gY2F0Y2goZSkge1xuICAgIC8vIEFjY2Vzc2luZyB4aHIudXBsb2FkIGZhaWxzIGluIElFIGZyb20gYSB3ZWIgd29ya2VyLCBzbyBqdXN0IHByZXRlbmQgaXQgZG9lc24ndCBleGlzdC5cbiAgICAvLyBSZXBvcnRlZCBoZXJlOlxuICAgIC8vIGh0dHBzOi8vY29ubmVjdC5taWNyb3NvZnQuY29tL0lFL2ZlZWRiYWNrL2RldGFpbHMvODM3MjQ1L3htbGh0dHByZXF1ZXN0LXVwbG9hZC10aHJvd3MtaW52YWxpZC1hcmd1bWVudC13aGVuLXVzZWQtZnJvbS13ZWItd29ya2VyLWNvbnRleHRcbiAgfVxuXG4gIC8vIHRpbWVvdXRcbiAgaWYgKHRpbWVvdXQgJiYgIXRoaXMuX3RpbWVyKSB7XG4gICAgdGhpcy5fdGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG4gICAgICBzZWxmLnRpbWVkb3V0ID0gdHJ1ZTtcbiAgICAgIHNlbGYuYWJvcnQoKTtcbiAgICB9LCB0aW1lb3V0KTtcbiAgfVxuXG4gIC8vIHF1ZXJ5c3RyaW5nXG4gIGlmIChxdWVyeSkge1xuICAgIHF1ZXJ5ID0gcmVxdWVzdC5zZXJpYWxpemVPYmplY3QocXVlcnkpO1xuICAgIHRoaXMudXJsICs9IH50aGlzLnVybC5pbmRleE9mKCc/JylcbiAgICAgID8gJyYnICsgcXVlcnlcbiAgICAgIDogJz8nICsgcXVlcnk7XG4gIH1cblxuICAvLyBpbml0aWF0ZSByZXF1ZXN0XG4gIHhoci5vcGVuKHRoaXMubWV0aG9kLCB0aGlzLnVybCwgdHJ1ZSk7XG5cbiAgLy8gQ09SU1xuICBpZiAodGhpcy5fd2l0aENyZWRlbnRpYWxzKSB4aHIud2l0aENyZWRlbnRpYWxzID0gdHJ1ZTtcblxuICAvLyBib2R5XG4gIGlmICgnR0VUJyAhPSB0aGlzLm1ldGhvZCAmJiAnSEVBRCcgIT0gdGhpcy5tZXRob2QgJiYgJ3N0cmluZycgIT0gdHlwZW9mIGRhdGEgJiYgIWlzSG9zdChkYXRhKSkge1xuICAgIC8vIHNlcmlhbGl6ZSBzdHVmZlxuICAgIHZhciBzZXJpYWxpemUgPSByZXF1ZXN0LnNlcmlhbGl6ZVt0aGlzLmdldEhlYWRlcignQ29udGVudC1UeXBlJyldO1xuICAgIGlmIChzZXJpYWxpemUpIGRhdGEgPSBzZXJpYWxpemUoZGF0YSk7XG4gIH1cblxuICAvLyBzZXQgaGVhZGVyIGZpZWxkc1xuICBmb3IgKHZhciBmaWVsZCBpbiB0aGlzLmhlYWRlcikge1xuICAgIGlmIChudWxsID09IHRoaXMuaGVhZGVyW2ZpZWxkXSkgY29udGludWU7XG4gICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoZmllbGQsIHRoaXMuaGVhZGVyW2ZpZWxkXSk7XG4gIH1cblxuICAvLyBzZW5kIHN0dWZmXG4gIHRoaXMuZW1pdCgncmVxdWVzdCcsIHRoaXMpO1xuICB4aHIuc2VuZChkYXRhKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIEV4cG9zZSBgUmVxdWVzdGAuXG4gKi9cblxucmVxdWVzdC5SZXF1ZXN0ID0gUmVxdWVzdDtcblxuLyoqXG4gKiBJc3N1ZSBhIHJlcXVlc3Q6XG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgcmVxdWVzdCgnR0VUJywgJy91c2VycycpLmVuZChjYWxsYmFjaylcbiAqICAgIHJlcXVlc3QoJy91c2VycycpLmVuZChjYWxsYmFjaylcbiAqICAgIHJlcXVlc3QoJy91c2VycycsIGNhbGxiYWNrKVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBtZXRob2RcbiAqIEBwYXJhbSB7U3RyaW5nfEZ1bmN0aW9ufSB1cmwgb3IgY2FsbGJhY2tcbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIHJlcXVlc3QobWV0aG9kLCB1cmwpIHtcbiAgLy8gY2FsbGJhY2tcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIHVybCkge1xuICAgIHJldHVybiBuZXcgUmVxdWVzdCgnR0VUJywgbWV0aG9kKS5lbmQodXJsKTtcbiAgfVxuXG4gIC8vIHVybCBmaXJzdFxuICBpZiAoMSA9PSBhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG5ldyBSZXF1ZXN0KCdHRVQnLCBtZXRob2QpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXF1ZXN0KG1ldGhvZCwgdXJsKTtcbn1cblxuLyoqXG4gKiBHRVQgYHVybGAgd2l0aCBvcHRpb25hbCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZHxGdW5jdGlvbn0gZGF0YSBvciBmblxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QuZ2V0ID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbil7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdHRVQnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgZm4gPSBkYXRhLCBkYXRhID0gbnVsbDtcbiAgaWYgKGRhdGEpIHJlcS5xdWVyeShkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogSEVBRCBgdXJsYCB3aXRoIG9wdGlvbmFsIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfEZ1bmN0aW9ufSBkYXRhIG9yIGZuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5oZWFkID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbil7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdIRUFEJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIGZuID0gZGF0YSwgZGF0YSA9IG51bGw7XG4gIGlmIChkYXRhKSByZXEuc2VuZChkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogREVMRVRFIGB1cmxgIHdpdGggb3B0aW9uYWwgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0LmRlbCA9IGZ1bmN0aW9uKHVybCwgZm4pe1xuICB2YXIgcmVxID0gcmVxdWVzdCgnREVMRVRFJywgdXJsKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogUEFUQ0ggYHVybGAgd2l0aCBvcHRpb25hbCBgZGF0YWAgYW5kIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfSBkYXRhXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5wYXRjaCA9IGZ1bmN0aW9uKHVybCwgZGF0YSwgZm4pe1xuICB2YXIgcmVxID0gcmVxdWVzdCgnUEFUQ0gnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgZm4gPSBkYXRhLCBkYXRhID0gbnVsbDtcbiAgaWYgKGRhdGEpIHJlcS5zZW5kKGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBQT1NUIGB1cmxgIHdpdGggb3B0aW9uYWwgYGRhdGFgIGFuZCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZH0gZGF0YVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QucG9zdCA9IGZ1bmN0aW9uKHVybCwgZGF0YSwgZm4pe1xuICB2YXIgcmVxID0gcmVxdWVzdCgnUE9TVCcsIHVybCk7XG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiBkYXRhKSBmbiA9IGRhdGEsIGRhdGEgPSBudWxsO1xuICBpZiAoZGF0YSkgcmVxLnNlbmQoZGF0YSk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59O1xuXG4vKipcbiAqIFBVVCBgdXJsYCB3aXRoIG9wdGlvbmFsIGBkYXRhYCBhbmQgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR8RnVuY3Rpb259IGRhdGEgb3IgZm5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0LnB1dCA9IGZ1bmN0aW9uKHVybCwgZGF0YSwgZm4pe1xuICB2YXIgcmVxID0gcmVxdWVzdCgnUFVUJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIGZuID0gZGF0YSwgZGF0YSA9IG51bGw7XG4gIGlmIChkYXRhKSByZXEuc2VuZChkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogRXhwb3NlIGByZXF1ZXN0YC5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVlc3Q7XG4iLCJcbi8qKlxuICogRXhwb3NlIGBFbWl0dGVyYC5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IEVtaXR0ZXI7XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhIG5ldyBgRW1pdHRlcmAuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBFbWl0dGVyKG9iaikge1xuICBpZiAob2JqKSByZXR1cm4gbWl4aW4ob2JqKTtcbn07XG5cbi8qKlxuICogTWl4aW4gdGhlIGVtaXR0ZXIgcHJvcGVydGllcy5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBtaXhpbihvYmopIHtcbiAgZm9yICh2YXIga2V5IGluIEVtaXR0ZXIucHJvdG90eXBlKSB7XG4gICAgb2JqW2tleV0gPSBFbWl0dGVyLnByb3RvdHlwZVtrZXldO1xuICB9XG4gIHJldHVybiBvYmo7XG59XG5cbi8qKlxuICogTGlzdGVuIG9uIHRoZSBnaXZlbiBgZXZlbnRgIHdpdGggYGZuYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtFbWl0dGVyfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5FbWl0dGVyLnByb3RvdHlwZS5vbiA9XG5FbWl0dGVyLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24oZXZlbnQsIGZuKXtcbiAgdGhpcy5fY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzIHx8IHt9O1xuICAodGhpcy5fY2FsbGJhY2tzW2V2ZW50XSA9IHRoaXMuX2NhbGxiYWNrc1tldmVudF0gfHwgW10pXG4gICAgLnB1c2goZm4pO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQWRkcyBhbiBgZXZlbnRgIGxpc3RlbmVyIHRoYXQgd2lsbCBiZSBpbnZva2VkIGEgc2luZ2xlXG4gKiB0aW1lIHRoZW4gYXV0b21hdGljYWxseSByZW1vdmVkLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge0VtaXR0ZXJ9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkVtaXR0ZXIucHJvdG90eXBlLm9uY2UgPSBmdW5jdGlvbihldmVudCwgZm4pe1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHRoaXMuX2NhbGxiYWNrcyA9IHRoaXMuX2NhbGxiYWNrcyB8fCB7fTtcblxuICBmdW5jdGlvbiBvbigpIHtcbiAgICBzZWxmLm9mZihldmVudCwgb24pO1xuICAgIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cblxuICBvbi5mbiA9IGZuO1xuICB0aGlzLm9uKGV2ZW50LCBvbik7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdpdmVuIGNhbGxiYWNrIGZvciBgZXZlbnRgIG9yIGFsbFxuICogcmVnaXN0ZXJlZCBjYWxsYmFja3MuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7RW1pdHRlcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuRW1pdHRlci5wcm90b3R5cGUub2ZmID1cbkVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyID1cbkVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycyA9XG5FbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyID0gZnVuY3Rpb24oZXZlbnQsIGZuKXtcbiAgdGhpcy5fY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzIHx8IHt9O1xuXG4gIC8vIGFsbFxuICBpZiAoMCA9PSBhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgdGhpcy5fY2FsbGJhY2tzID0ge307XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyBzcGVjaWZpYyBldmVudFxuICB2YXIgY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzW2V2ZW50XTtcbiAgaWYgKCFjYWxsYmFja3MpIHJldHVybiB0aGlzO1xuXG4gIC8vIHJlbW92ZSBhbGwgaGFuZGxlcnNcbiAgaWYgKDEgPT0gYXJndW1lbnRzLmxlbmd0aCkge1xuICAgIGRlbGV0ZSB0aGlzLl9jYWxsYmFja3NbZXZlbnRdO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gcmVtb3ZlIHNwZWNpZmljIGhhbmRsZXJcbiAgdmFyIGNiO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGNhbGxiYWNrcy5sZW5ndGg7IGkrKykge1xuICAgIGNiID0gY2FsbGJhY2tzW2ldO1xuICAgIGlmIChjYiA9PT0gZm4gfHwgY2IuZm4gPT09IGZuKSB7XG4gICAgICBjYWxsYmFja3Muc3BsaWNlKGksIDEpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBFbWl0IGBldmVudGAgd2l0aCB0aGUgZ2l2ZW4gYXJncy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcbiAqIEBwYXJhbSB7TWl4ZWR9IC4uLlxuICogQHJldHVybiB7RW1pdHRlcn1cbiAqL1xuXG5FbWl0dGVyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24oZXZlbnQpe1xuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XG4gIHZhciBhcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpXG4gICAgLCBjYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3NbZXZlbnRdO1xuXG4gIGlmIChjYWxsYmFja3MpIHtcbiAgICBjYWxsYmFja3MgPSBjYWxsYmFja3Muc2xpY2UoMCk7XG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGNhbGxiYWNrcy5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgICAgY2FsbGJhY2tzW2ldLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gYXJyYXkgb2YgY2FsbGJhY2tzIGZvciBgZXZlbnRgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxuICogQHJldHVybiB7QXJyYXl9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uKGV2ZW50KXtcbiAgdGhpcy5fY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzIHx8IHt9O1xuICByZXR1cm4gdGhpcy5fY2FsbGJhY2tzW2V2ZW50XSB8fCBbXTtcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhpcyBlbWl0dGVyIGhhcyBgZXZlbnRgIGhhbmRsZXJzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuRW1pdHRlci5wcm90b3R5cGUuaGFzTGlzdGVuZXJzID0gZnVuY3Rpb24oZXZlbnQpe1xuICByZXR1cm4gISEgdGhpcy5saXN0ZW5lcnMoZXZlbnQpLmxlbmd0aDtcbn07XG4iLCJcbi8qKlxuICogUmVkdWNlIGBhcnJgIHdpdGggYGZuYC5cbiAqXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcGFyYW0ge01peGVkfSBpbml0aWFsXG4gKlxuICogVE9ETzogY29tYmF0aWJsZSBlcnJvciBoYW5kbGluZz9cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGFyciwgZm4sIGluaXRpYWwpeyAgXG4gIHZhciBpZHggPSAwO1xuICB2YXIgbGVuID0gYXJyLmxlbmd0aDtcbiAgdmFyIGN1cnIgPSBhcmd1bWVudHMubGVuZ3RoID09IDNcbiAgICA/IGluaXRpYWxcbiAgICA6IGFycltpZHgrK107XG5cbiAgd2hpbGUgKGlkeCA8IGxlbikge1xuICAgIGN1cnIgPSBmbi5jYWxsKG51bGwsIGN1cnIsIGFycltpZHhdLCArK2lkeCwgYXJyKTtcbiAgfVxuICBcbiAgcmV0dXJuIGN1cnI7XG59OyJdfQ== + +'use strict'; + +SwaggerUi.Views.ApiKeyButton = Backbone.View.extend({ // TODO: append this to global SwaggerUi + + events:{ + 'click #apikey_button' : 'toggleApiKeyContainer', + 'click #apply_api_key' : 'applyApiKey' + }, + + initialize: function(opts){ + this.options = opts || {}; + this.router = this.options.router; + }, + + render: function(){ + var template = this.template(); + $(this.el).html(template(this.model)); + + return this; + }, + + + applyApiKey: function(){ + var keyAuth = new SwaggerClient.ApiKeyAuthorization( + this.model.name, + $('#input_apiKey_entry').val(), + this.model.in + ); + this.router.api.clientAuthorizations.add(this.model.name, keyAuth); + this.router.load(); + $('#apikey_container').show(); + }, + + toggleApiKeyContainer: function(){ + if ($('#apikey_container').length) { + + var elem = $('#apikey_container').first(); + + if (elem.is(':visible')){ + elem.hide(); + } else { + + // hide others + $('.auth_container').hide(); + elem.show(); + } + } + }, + + template: function(){ + return Handlebars.templates.apikey_button_view; + } + +}); +'use strict'; + +SwaggerUi.Views.BasicAuthButton = Backbone.View.extend({ + + + initialize: function (opts) { + this.options = opts || {}; + this.router = this.options.router; + }, + + render: function(){ + var template = this.template(); + $(this.el).html(template(this.model)); + + return this; + }, + + events: { + 'click #basic_auth_button' : 'togglePasswordContainer', + 'click #apply_basic_auth' : 'applyPassword' + }, + + applyPassword: function(){ + var username = $('.input_username').val(); + var password = $('.input_password').val(); + var basicAuth = new SwaggerClient.PasswordAuthorization('basic', username, password); + this.router.api.clientAuthorizations.add(this.model.type, basicAuth); + this.router.load(); + $('#basic_auth_container').hide(); + }, + + togglePasswordContainer: function(){ + if ($('#basic_auth_container').length) { + var elem = $('#basic_auth_container').show(); + if (elem.is(':visible')){ + elem.slideUp(); + } else { + // hide others + $('.auth_container').hide(); + elem.show(); + } + } + }, + + template: function(){ + return Handlebars.templates.basic_auth_button_view; + } + +}); +'use strict'; + +SwaggerUi.Views.ContentTypeView = Backbone.View.extend({ + initialize: function() {}, + + render: function(){ + this.model.contentTypeId = 'ct' + Math.random(); + $(this.el).html(Handlebars.templates.content_type(this.model)); + return this; + } +}); +'use strict'; + +SwaggerUi.Views.HeaderView = Backbone.View.extend({ + events: { + 'click #show-pet-store-icon' : 'showPetStore', + 'click #explore' : 'showCustom', + 'keyup #input_baseUrl' : 'showCustomOnKeyup', + 'keyup #input_apiKey' : 'showCustomOnKeyup' + }, + + initialize: function(){}, + + showPetStore: function(){ + this.trigger('update-swagger-ui', { + url:'http://petstore.swagger.io/v2/swagger.json' + }); + }, + + showCustomOnKeyup: function(e){ + if (e.keyCode === 13) { + this.showCustom(); + } + }, + + showCustom: function(e){ + if (e) { + e.preventDefault(); + } + + this.trigger('update-swagger-ui', { + url: $('#input_baseUrl').val(), + apiKey: $('#input_apiKey').val() + }); + }, + + update: function(url, apiKey, trigger){ + if (trigger === undefined) { + trigger = false; + } + + $('#input_baseUrl').val(url); + + //$('#input_apiKey').val(apiKey); + if (trigger) { + this.trigger('update-swagger-ui', {url:url}); + } + } +}); + +'use strict'; + +SwaggerUi.Views.MainView = Backbone.View.extend({ + apisSorter : { + alpha : function(a,b){ return a.name.localeCompare(b.name); } + }, + operationsSorters : { + alpha : function(a,b){ return a.path.localeCompare(b.path); }, + method : function(a,b){ return a.method.localeCompare(b.method); } + }, + initialize: function(opts){ + var sorterOption, sorterFn, key, value; + opts = opts || {}; + + this.router = opts.router; + + // Sort APIs + if (opts.swaggerOptions.apisSorter) { + sorterOption = opts.swaggerOptions.apisSorter; + if (_.isFunction(sorterOption)) { + sorterFn = sorterOption; + } else { + sorterFn = this.apisSorter[sorterOption]; + } + if (_.isFunction(sorterFn)) { + this.model.apisArray.sort(sorterFn); + } + } + // Sort operations of each API + if (opts.swaggerOptions.operationsSorter) { + sorterOption = opts.swaggerOptions.operationsSorter; + if (_.isFunction(sorterOption)) { + sorterFn = sorterOption; + } else { + sorterFn = this.operationsSorters[sorterOption]; + } + if (_.isFunction(sorterFn)) { + for (key in this.model.apisArray) { + this.model.apisArray[key].operationsArray.sort(sorterFn); + } + } + } + + // set up the UI for input + this.model.auths = []; + + for (key in this.model.securityDefinitions) { + value = this.model.securityDefinitions[key]; + + this.model.auths.push({ + name: key, + type: value.type, + value: value + }); + } + + if ('validatorUrl' in opts.swaggerOptions) { + // Validator URL specified explicitly + this.model.validatorUrl = opts.swaggerOptions.validatorUrl; + } else if (this.model.url.indexOf('localhost') > 0) { + // Localhost override + this.model.validatorUrl = null; + } else { + // Default validator + if(window.location.protocol === 'https:') { + this.model.validatorUrl = 'https://online.swagger.io/validator'; + } + else { + this.model.validatorUrl = 'http://online.swagger.io/validator'; + } + } + }, + + render: function(){ + if (this.model.securityDefinitions) { + for (var name in this.model.securityDefinitions) { + var auth = this.model.securityDefinitions[name]; + var button; + + if (auth.type === 'apiKey' && $('#apikey_button').length === 0) { + button = new SwaggerUi.Views.ApiKeyButton({model: auth, router: this.router}).render().el; + $('.auth_main_container').append(button); + } + + if (auth.type === 'basicAuth' && $('#basic_auth_button').length === 0) { + button = new SwaggerUi.Views.BasicAuthButton({model: auth, router: this.router}).render().el; + $('.auth_main_container').append(button); + } + } + } + + // Render the outer container for resources + $(this.el).html(Handlebars.templates.main(this.model)); + + // Render each resource + + var resources = {}; + var counter = 0; + for (var i = 0; i < this.model.apisArray.length; i++) { + var resource = this.model.apisArray[i]; + var id = resource.name; + while (typeof resources[id] !== 'undefined') { + id = id + '_' + counter; + counter += 1; + } + resource.id = id; + resources[id] = resource; + this.addResource(resource, this.model.auths); + } + + $('.propWrap').hover(function onHover(){ + $('.optionsWrapper', $(this)).show(); + }, function offhover(){ + $('.optionsWrapper', $(this)).hide(); + }); + return this; + }, + + addResource: function(resource, auths){ + // Render a resource and add it to resources li + resource.id = resource.id.replace(/\s/g, '_'); + var resourceView = new SwaggerUi.Views.ResourceView({ + model: resource, + router: this.router, + tagName: 'li', + id: 'resource_' + resource.id, + className: 'resource', + auths: auths, + swaggerOptions: this.options.swaggerOptions + }); + $('#resources', this.el).append(resourceView.render().el); + }, + + clear: function(){ + $(this.el).html(''); + } +}); + +'use strict'; + +SwaggerUi.Views.OperationView = Backbone.View.extend({ + invocationUrl: null, + + events: { + 'submit .sandbox' : 'submitOperation', + 'click .submit' : 'submitOperation', + 'click .response_hider' : 'hideResponse', + 'click .toggleOperation' : 'toggleOperationContent', + 'mouseenter .api-ic' : 'mouseEnter', + 'dblclick .curl' : 'selectText', + }, + + initialize: function(opts) { + opts = opts || {}; + this.router = opts.router; + this.auths = opts.auths; + this.parentId = this.model.parentId; + this.nickname = this.model.nickname; + this.model.encodedParentId = encodeURIComponent(this.parentId); + return this; + }, + + selectText: function(event) { + var doc = document, + text = event.target.firstChild, + range, + selection; + if (doc.body.createTextRange) { + range = document.body.createTextRange(); + range.moveToElementText(text); + range.select(); + } else if (window.getSelection) { + selection = window.getSelection(); + range = document.createRange(); + range.selectNodeContents(text); + selection.removeAllRanges(); + selection.addRange(range); + } + }, + + mouseEnter: function(e) { + var elem = $(this.el).find('.content'); + var x = e.pageX; + var y = e.pageY; + var scX = $(window).scrollLeft(); + var scY = $(window).scrollTop(); + var scMaxX = scX + $(window).width(); + var scMaxY = scY + $(window).height(); + var wd = elem.width(); + var hgh = elem.height(); + + if (x + wd > scMaxX) { + x = scMaxX - wd; + } + + if (x < scX) { + x = scX; + } + + if (y + hgh > scMaxY) { + y = scMaxY - hgh; + } + + if (y < scY) { + y = scY; + } + + var pos = {}; + pos.top = y; + pos.left = x; + elem.css(pos); + }, + + // Note: copied from CoffeeScript compiled file + // TODO: redactor + render: function() { + var a, auth, auths, code, contentTypeModel, isMethodSubmissionSupported, k, key, l, len, len1, len2, len3, len4, m, modelAuths, n, o, p, param, q, ref, ref1, ref2, ref3, ref4, ref5, responseContentTypeView, responseSignatureView, schema, schemaObj, scopeIndex, signatureModel, statusCode, successResponse, type, v, value; + isMethodSubmissionSupported = jQuery.inArray(this.model.method, this.model.supportedSubmitMethods()) >= 0; + if (!isMethodSubmissionSupported) { + this.model.isReadOnly = true; + } + this.model.description = this.model.description || this.model.notes; + this.model.oauth = null; + modelAuths = this.model.authorizations || this.model.security; + if (modelAuths) { + if (Array.isArray(modelAuths)) { + for (l = 0, len = modelAuths.length; l < len; l++) { + auths = modelAuths[l]; + for (key in auths) { + for (a in this.auths) { + auth = this.auths[a]; + if (key === auth.name) { + if (auth.type === 'oauth2') { + this.model.oauth = {}; + this.model.oauth.scopes = []; + ref1 = auth.value.scopes; + for (k in ref1) { + v = ref1[k]; + scopeIndex = auths[key].indexOf(k); + if (scopeIndex >= 0) { + o = { + scope: k, + description: v + }; + this.model.oauth.scopes.push(o); + } + } + } + } + } + } + } + } else { + for (k in modelAuths) { + v = modelAuths[k]; + if (k === 'oauth2') { + if (this.model.oauth === null) { + this.model.oauth = {}; + } + if (this.model.oauth.scopes === void 0) { + this.model.oauth.scopes = []; + } + for (m = 0, len1 = v.length; m < len1; m++) { + o = v[m]; + this.model.oauth.scopes.push(o); + } + } + } + } + } + if (typeof this.model.responses !== 'undefined') { + this.model.responseMessages = []; + ref2 = this.model.responses; + for (code in ref2) { + value = ref2[code]; + schema = null; + schemaObj = this.model.responses[code].schema; + if (schemaObj && schemaObj.$ref) { + schema = schemaObj.$ref; + if (schema.indexOf('#/definitions/') !== -1) { + schema = schema.replace(/^.*#\/definitions\//, ''); + } + } + this.model.responseMessages.push({ + code: code, + message: value.description, + responseModel: schema + }); + } + } + if (typeof this.model.responseMessages === 'undefined') { + this.model.responseMessages = []; + } + signatureModel = null; + if (this.model.successResponse) { + successResponse = this.model.successResponse; + for (key in successResponse) { + value = successResponse[key]; + this.model.successCode = key; + if (typeof value === 'object' && typeof value.createJSONSample === 'function') { + signatureModel = { + sampleJSON: JSON.stringify(value.createJSONSample(), void 0, 2), + isParam: false, + signature: value.getMockSignature() + }; + } + } + } else if (this.model.responseClassSignature && this.model.responseClassSignature !== 'string') { + signatureModel = { + sampleJSON: this.model.responseSampleJSON, + isParam: false, + signature: this.model.responseClassSignature + }; + } + var opts = this.options.swaggerOptions; + if (opts.showRequestHeaders) { + this.model.showRequestHeaders = true; + } + $(this.el).html(Handlebars.templates.operation(this.model)); + if (signatureModel) { + responseSignatureView = new SwaggerUi.Views.SignatureView({ + model: signatureModel, + router: this.router, + tagName: 'div' + }); + $('.model-signature', $(this.el)).append(responseSignatureView.render().el); + } else { + this.model.responseClassSignature = 'string'; + $('.model-signature', $(this.el)).html(this.model.type); + } + contentTypeModel = { + isParam: false + }; + contentTypeModel.consumes = this.model.consumes; + contentTypeModel.produces = this.model.produces; + ref3 = this.model.parameters; + for (n = 0, len2 = ref3.length; n < len2; n++) { + param = ref3[n]; + type = param.type || param.dataType || ''; + if (typeof type === 'undefined') { + schema = param.schema; + if (schema && schema.$ref) { + ref = schema.$ref; + if (ref.indexOf('#/definitions/') === 0) { + type = ref.substring('#/definitions/'.length); + } else { + type = ref; + } + } + } + if (type && type.toLowerCase() === 'file') { + if (!contentTypeModel.consumes) { + contentTypeModel.consumes = 'multipart/form-data'; + } + } + param.type = type; + } + responseContentTypeView = new SwaggerUi.Views.ResponseContentTypeView({ + model: contentTypeModel, + router: this.router + }); + $('.response-content-type', $(this.el)).append(responseContentTypeView.render().el); + ref4 = this.model.parameters; + for (p = 0, len3 = ref4.length; p < len3; p++) { + param = ref4[p]; + this.addParameter(param, contentTypeModel.consumes); + } + ref5 = this.model.responseMessages; + for (q = 0, len4 = ref5.length; q < len4; q++) { + statusCode = ref5[q]; + this.addStatusCode(statusCode); + } + return this; + }, + + addParameter: function(param, consumes) { + // Render a parameter + param.consumes = consumes; + var paramView = new SwaggerUi.Views.ParameterView({ + model: param, + tagName: 'tr', + readOnly: this.model.isReadOnly + }); + $('.operation-params', $(this.el)).append(paramView.render().el); + }, + + addStatusCode: function(statusCode) { + // Render status codes + var statusCodeView = new SwaggerUi.Views.StatusCodeView({ + model: statusCode, + tagName: 'tr', + router: this.router + }); + $('.operation-status', $(this.el)).append(statusCodeView.render().el); + }, + + // Note: copied from CoffeeScript compiled file + // TODO: redactor + submitOperation: function(e) { + var error_free, form, isFileUpload, map, opts; + if (e !== null) { + e.preventDefault(); + } + form = $('.sandbox', $(this.el)); + error_free = true; + form.find('input.required').each(function() { + $(this).removeClass('error'); + if (jQuery.trim($(this).val()) === '') { + $(this).addClass('error'); + $(this).wiggle({ + callback: (function(_this) { + return function() { + $(_this).focus(); + }; + })(this) + }); + error_free = false; + } + }); + form.find('textarea.required').each(function() { + $(this).removeClass('error'); + if (jQuery.trim($(this).val()) === '') { + $(this).addClass('error'); + $(this).wiggle({ + callback: (function(_this) { + return function() { + return $(_this).focus(); + }; + })(this) + }); + error_free = false; + } + }); + form.find('select.required').each(function() { + $(this).removeClass('error'); + if (this.selectedIndex === -1) { + $(this).addClass('error'); + $(this).wiggle({ + callback: (function(_this) { + return function() { + $(_this).focus(); + }; + })(this) + }); + error_free = false; + } + }); + if (error_free) { + map = this.getInputMap(form); + isFileUpload = this.isFileUpload(form); + opts = { + parent: this + }; + if (this.options.swaggerOptions) { + for(var key in this.options.swaggerOptions) { + opts[key] = this.options.swaggerOptions[key]; + } + } + opts.responseContentType = $('div select[name=responseContentType]', $(this.el)).val(); + opts.requestContentType = $('div select[name=parameterContentType]', $(this.el)).val(); + $('.response_throbber', $(this.el)).show(); + if (isFileUpload) { + $('.request_url', $(this.el)).html('<pre></pre>'); + $('.request_url pre', $(this.el)).text(this.invocationUrl); + + opts.useJQuery = true; + map.parameterContentType = 'multipart/form-data'; + + return this.model.execute(map, opts, this.showCompleteStatus, this.showErrorStatus, this); + } else { + this.map = map; + return this.model.execute(map, opts, this.showCompleteStatus, this.showErrorStatus, this); + } + } + }, + + getInputMap: function (form) { + var map, ref1, l, len, o, ref2, m, len1, val, ref3, n, len2; + map = {}; + ref1 = form.find('input'); + for (l = 0, len = ref1.length; l < len; l++) { + o = ref1[l]; + if ((o.value !== null) && jQuery.trim(o.value).length > 0) { + map[o.name] = o.value; + } + if (o.type === 'file') { + map[o.name] = o.files[0]; + } + } + ref2 = form.find('textarea'); + for (m = 0, len1 = ref2.length; m < len1; m++) { + o = ref2[m]; + val = this.getTextAreaValue(o); + if ((val !== null) && jQuery.trim(val).length > 0) { + map[o.name] = val; + } + } + ref3 = form.find('select'); + for (n = 0, len2 = ref3.length; n < len2; n++) { + o = ref3[n]; + val = this.getSelectedValue(o); + if ((val !== null) && jQuery.trim(val).length > 0) { + map[o.name] = val; + } + } + return map; + }, + + isFileUpload: function (form) { + var ref1, l, len, o; + var isFileUpload = false; + ref1 = form.find('input'); + for (l = 0, len = ref1.length; l < len; l++) { + o = ref1[l]; + if (o.type === 'file') { + isFileUpload = true; + } + } + return isFileUpload; + }, + + success: function(response, parent) { + parent.showCompleteStatus(response); + }, + + // wraps a jquery response as a shred response + wrap: function(data) { + var h, headerArray, headers, i, l, len, o; + headers = {}; + headerArray = data.getAllResponseHeaders().split('\r'); + for (l = 0, len = headerArray.length; l < len; l++) { + i = headerArray[l]; + h = i.match(/^([^:]*?):(.*)$/); + if (!h) { + h = []; + } + h.shift(); + if (h[0] !== void 0 && h[1] !== void 0) { + headers[h[0].trim()] = h[1].trim(); + } + } + o = {}; + o.content = {}; + o.content.data = data.responseText; + o.headers = headers; + o.request = {}; + o.request.url = this.invocationUrl; + o.status = data.status; + return o; + }, + + getSelectedValue: function(select) { + if (!select.multiple) { + return select.value; + } else { + var options = []; + for (var l = 0, len = select.options.length; l < len; l++) { + var opt = select.options[l]; + if (opt.selected) { + options.push(opt.value); + } + } + if (options.length > 0) { + return options; + } else { + return null; + } + } + }, + + // handler for hide response link + hideResponse: function(e) { + if (e) { e.preventDefault(); } + $('.response', $(this.el)).slideUp(); + $('.response_hider', $(this.el)).fadeOut(); + }, + + // Show response from server + showResponse: function(response) { + var prettyJson = JSON.stringify(response, null, '\t').replace(/\n/g, '<br>'); + $('.response_body', $(this.el)).html(_.escape(prettyJson)); + }, + + // Show error from server + showErrorStatus: function(data, parent) { + parent.showStatus(data); + }, + + // show the status codes + showCompleteStatus: function(data, parent){ + parent.showStatus(data); + }, + + // Adapted from http://stackoverflow.com/a/2893259/454004 + // Note: directly ported from CoffeeScript + // TODO: Cleanup CoffeeScript artifacts + formatXml: function(xml) { + var contexp, fn, formatted, indent, l, lastType, len, lines, ln, pad, reg, transitions, wsexp; + reg = /(>)(<)(\/*)/g; + wsexp = /[ ]*(.*)[ ]+\n/g; + contexp = /(<.+>)(.+\n)/g; + xml = xml.replace(reg, '$1\n$2$3').replace(wsexp, '$1\n').replace(contexp, '$1\n$2'); + pad = 0; + formatted = ''; + lines = xml.split('\n'); + indent = 0; + lastType = 'other'; + transitions = { + 'single->single': 0, + 'single->closing': -1, + 'single->opening': 0, + 'single->other': 0, + 'closing->single': 0, + 'closing->closing': -1, + 'closing->opening': 0, + 'closing->other': 0, + 'opening->single': 1, + 'opening->closing': 0, + 'opening->opening': 1, + 'opening->other': 1, + 'other->single': 0, + 'other->closing': -1, + 'other->opening': 0, + 'other->other': 0 + }; + fn = function(ln) { + var fromTo, j, key, padding, type, types, value; + types = { + single: Boolean(ln.match(/<.+\/>/)), + closing: Boolean(ln.match(/<\/.+>/)), + opening: Boolean(ln.match(/<[^!?].*>/)) + }; + type = ((function() { + var results; + results = []; + for (key in types) { + value = types[key]; + if (value) { + results.push(key); + } + } + return results; + })())[0]; + type = type === void 0 ? 'other' : type; + fromTo = lastType + '->' + type; + lastType = type; + padding = ''; + indent += transitions[fromTo]; + padding = ((function() { + var m, ref1, results; + results = []; + for (j = m = 0, ref1 = indent; 0 <= ref1 ? m < ref1 : m > ref1; j = 0 <= ref1 ? ++m : --m) { + results.push(' '); + } + return results; + })()).join(''); + if (fromTo === 'opening->closing') { + formatted = formatted.substr(0, formatted.length - 1) + ln + '\n'; + } else { + formatted += padding + ln + '\n'; + } + }; + for (l = 0, len = lines.length; l < len; l++) { + ln = lines[l]; + fn(ln); + } + return formatted; + }, + + // puts the response data in UI + showStatus: function(response) { + var url, content; + if (response.content === undefined) { + content = response.data; + url = response.url; + } else { + content = response.content.data; + url = response.request.url; + } + var headers = response.headers; + content = jQuery.trim(content); + + // if server is nice, and sends content-type back, we can use it + var contentType = null; + if (headers) { + contentType = headers['Content-Type'] || headers['content-type']; + if (contentType) { + contentType = contentType.split(';')[0].trim(); + } + } + $('.response_body', $(this.el)).removeClass('json'); + $('.response_body', $(this.el)).removeClass('xml'); + + var supportsAudioPlayback = function(contentType){ + var audioElement = document.createElement('audio'); + return !!(audioElement.canPlayType && audioElement.canPlayType(contentType).replace(/no/, '')); + }; + + var pre; + var code; + if (!content) { + code = $('<code />').text('no content'); + pre = $('<pre class="json" />').append(code); + + // JSON + } else if (contentType === 'application/json' || /\+json$/.test(contentType)) { + var json = null; + try { + json = JSON.stringify(JSON.parse(content), null, ' '); + } catch (_error) { + json = 'can\'t parse JSON. Raw result:\n\n' + content; + } + code = $('<code />').text(json); + pre = $('<pre class="json" />').append(code); + + // XML + } else if (contentType === 'application/xml' || /\+xml$/.test(contentType)) { + code = $('<code />').text(this.formatXml(content)); + pre = $('<pre class="xml" />').append(code); + + // HTML + } else if (contentType === 'text/html') { + code = $('<code />').html(_.escape(content)); + pre = $('<pre class="xml" />').append(code); + + // Plain Text + } else if (/text\/plain/.test(contentType)) { + code = $('<code />').text(content); + pre = $('<pre class="plain" />').append(code); + + + // Image + } else if (/^image\//.test(contentType)) { + pre = $('<img>').attr('src', url); + + // Audio + } else if (/^audio\//.test(contentType) && supportsAudioPlayback(contentType)) { + pre = $('<audio controls>').append($('<source>').attr('src', url).attr('type', contentType)); + + // Download + } else if (headers['Content-Disposition'] && (/attachment/).test(headers['Content-Disposition']) || + headers['content-disposition'] && (/attachment/).test(headers['content-disposition']) || + headers['Content-Description'] && (/File Transfer/).test(headers['Content-Description']) || + headers['content-description'] && (/File Transfer/).test(headers['content-description'])) { + + if ('Blob' in window) { + var type = contentType || 'text/html'; + var blob = new Blob([content], {type: type}); + var a = document.createElement('a'); + var href = window.URL.createObjectURL(blob); + var fileName = response.url.substr(response.url.lastIndexOf('/') + 1); + var download = [type, fileName, href].join(':'); + + a.setAttribute('href', href); + a.setAttribute('download', download); + a.innerText = 'Download ' + fileName; + + pre = $('<div/>').append(a); + } else { + pre = $('<pre class="json" />').append('Download headers detected but your browser does not support downloading binary via XHR (Blob).'); + } + + // Location header based redirect download + } else if(headers.location || headers.Location) { + window.location = response.url; + + // Anything else (CORS) + } else { + code = $('<code />').text(content); + pre = $('<pre class="json" />').append(code); + } + var response_body = pre; + $('.request_url', $(this.el)).html('<pre></pre>'); + $('.request_url pre', $(this.el)).text(url); + $('.response_code', $(this.el)).html('<pre>' + response.status + '</pre>'); + $('.response_body', $(this.el)).html(response_body); + $('.response_headers', $(this.el)).html('<pre>' + _.escape(JSON.stringify(response.headers, null, ' ')).replace(/\n/g, '<br>') + '</pre>'); + $('.response', $(this.el)).slideDown(); + $('.response_hider', $(this.el)).show(); + $('.response_throbber', $(this.el)).hide(); + + + //adds curl output + var curlCommand = this.model.asCurl(this.map); + curlCommand = curlCommand.replace('!', '&#33;'); + $( '.curl', $(this.el)).html('<pre>' + curlCommand + '</pre>'); + + // only highlight the response if response is less than threshold, default state is highlight response + var opts = this.options.swaggerOptions; + + if (opts.showRequestHeaders) { + var form = $('.sandbox', $(this.el)), + map = this.getInputMap(form), + requestHeaders = this.model.getHeaderParams(map); + delete requestHeaders['Content-Type']; + $('.request_headers', $(this.el)).html('<pre>' + _.escape(JSON.stringify(requestHeaders, null, ' ')).replace(/\n/g, '<br>') + '</pre>'); + } + + var response_body_el = $('.response_body', $(this.el))[0]; + // only highlight the response if response is less than threshold, default state is highlight response + if (opts.highlightSizeThreshold && typeof response.data !== 'undefined' && response.data.length > opts.highlightSizeThreshold) { + return response_body_el; + } else { + return hljs.highlightBlock(response_body_el); + } + }, + + toggleOperationContent: function (event) { + var elem = $('#' + Docs.escapeResourceName(this.parentId + '_' + this.nickname + '_content')); + if (elem.is(':visible')){ + event.preventDefault(); + $.bbq.pushState('#/', 2); + Docs.collapseOperation(elem); + } else { + Docs.expandOperation(elem); + } + }, + + getTextAreaValue: function(textArea) { + var param, parsed, result, i; + if (textArea.value === null || jQuery.trim(textArea.value).length === 0) { + return null; + } + param = this.getParamByName(textArea.name); + if (param && param.type && param.type.toLowerCase() === 'array') { + parsed = textArea.value.split('\n'); + result = []; + for (i = 0; i < parsed.length; i++) { + if (parsed[i] !== null && jQuery.trim(parsed[i]).length > 0) { + result.push(parsed[i]); + } + } + return result.length > 0 ? result : null; + } else { + return textArea.value; + } + }, + + getParamByName: function(name) { + var i; + if (this.model.parameters) { + for(i = 0; i < this.model.parameters.length; i++) { + if (this.model.parameters[i].name === name) { + return this.model.parameters[i]; + } + } + } + return null; + } + +}); + +'use strict'; + +SwaggerUi.Views.ParameterContentTypeView = Backbone.View.extend({ + initialize: function () {}, + + render: function(){ + this.model.parameterContentTypeId = 'pct' + Math.random(); + $(this.el).html(Handlebars.templates.parameter_content_type(this.model)); + return this; + } + +}); +'use strict'; + +SwaggerUi.Views.ParameterView = Backbone.View.extend({ + initialize: function(){ + Handlebars.registerHelper('isArray', function(param, opts) { + if (param.type.toLowerCase() === 'array' || param.allowMultiple) { + return opts.fn(this); + } else { + return opts.inverse(this); + } + }); + }, + + render: function() { + var type = this.model.type || this.model.dataType; + + if (typeof type === 'undefined') { + var schema = this.model.schema; + if (schema && schema.$ref) { + var ref = schema.$ref; + if (ref.indexOf('#/definitions/') === 0) { + type = ref.substring('#/definitions/'.length); + } else { + type = ref; + } + } + } + + this.model.type = type; + this.model.paramType = this.model.in || this.model.paramType; + this.model.isBody = this.model.paramType === 'body' || this.model.in === 'body'; + this.model.isFile = type && type.toLowerCase() === 'file'; + + // Allow for default === false + if(typeof this.model.default === 'undefined') { + this.model.default = this.model.defaultValue; + } + + this.model.hasDefault = (typeof this.model.default !== 'undefined'); + this.model.valueId = 'm' + this.model.name + Math.random(); + + if (this.model.allowableValues) { + this.model.isList = true; + } + + var template = this.template(); + $(this.el).html(template(this.model)); + + var signatureModel = { + sampleJSON: this.model.sampleJSON, + isParam: true, + signature: this.model.signature + }; + + if (this.model.sampleJSON) { + var signatureView = new SwaggerUi.Views.SignatureView({model: signatureModel, tagName: 'div'}); + $('.model-signature', $(this.el)).append(signatureView.render().el); + } + else { + $('.model-signature', $(this.el)).html(this.model.signature); + } + + var isParam = false; + + if (this.model.isBody) { + isParam = true; + } + + var contentTypeModel = { + isParam: isParam + }; + + contentTypeModel.consumes = this.model.consumes; + + if (isParam) { + var parameterContentTypeView = new SwaggerUi.Views.ParameterContentTypeView({model: contentTypeModel}); + $('.parameter-content-type', $(this.el)).append(parameterContentTypeView.render().el); + } + + else { + var responseContentTypeView = new SwaggerUi.Views.ResponseContentTypeView({model: contentTypeModel}); + $('.response-content-type', $(this.el)).append(responseContentTypeView.render().el); + } + + return this; + }, + + // Return an appropriate template based on if the parameter is a list, readonly, required + template: function(){ + if (this.model.isList) { + return Handlebars.templates.param_list; + } else { + if (this.options.readOnly) { + if (this.model.required) { + return Handlebars.templates.param_readonly_required; + } else { + return Handlebars.templates.param_readonly; + } + } else { + if (this.model.required) { + return Handlebars.templates.param_required; + } else { + return Handlebars.templates.param; + } + } + } + } +}); + +'use strict'; + +SwaggerUi.Views.ResourceView = Backbone.View.extend({ + initialize: function(opts) { + opts = opts || {}; + this.router = opts.router; + this.auths = opts.auths; + if ('' === this.model.description) { + this.model.description = null; + } + if (this.model.description) { + this.model.summary = this.model.description; + } + }, + + render: function(){ + var methods = {}; + + + $(this.el).html(Handlebars.templates.resource(this.model)); + + // Render each operation + for (var i = 0; i < this.model.operationsArray.length; i++) { + var operation = this.model.operationsArray[i]; + var counter = 0; + var id = operation.nickname; + + while (typeof methods[id] !== 'undefined') { + id = id + '_' + counter; + counter += 1; + } + + methods[id] = operation; + + operation.nickname = id; + operation.parentId = this.model.id; + this.addOperation(operation); + } + + $('.toggleEndpointList', this.el).click(this.callDocs.bind(this, 'toggleEndpointListForResource')); + $('.collapseResource', this.el).click(this.callDocs.bind(this, 'collapseOperationsForResource')); + $('.expandResource', this.el).click(this.callDocs.bind(this, 'expandOperationsForResource')); + + return this; + }, + + addOperation: function(operation) { + + operation.number = this.number; + + // Render an operation and add it to operations li + var operationView = new SwaggerUi.Views.OperationView({ + model: operation, + router: this.router, + tagName: 'li', + className: 'endpoint', + swaggerOptions: this.options.swaggerOptions, + auths: this.auths + }); + + $('.endpoints', $(this.el)).append(operationView.render().el); + + this.number++; + + }, + // Generic Event handler (`Docs` is global) + + + callDocs: function(fnName, e) { + e.preventDefault(); + Docs[fnName](e.currentTarget.getAttribute('data-id')); + } +}); +'use strict'; + +SwaggerUi.Views.ResponseContentTypeView = Backbone.View.extend({ + initialize: function(){}, + + render: function(){ + this.model.responseContentTypeId = 'rct' + Math.random(); + $(this.el).html(Handlebars.templates.response_content_type(this.model)); + return this; + } +}); +'use strict'; + +SwaggerUi.Views.SignatureView = Backbone.View.extend({ + events: { + 'click a.description-link' : 'switchToDescription', + 'click a.snippet-link' : 'switchToSnippet', + 'mousedown .snippet' : 'snippetToTextArea' + }, + + initialize: function () { + + }, + + render: function(){ + + $(this.el).html(Handlebars.templates.signature(this.model)); + + this.switchToSnippet(); + + this.isParam = this.model.isParam; + + if (this.isParam) { + $('.notice', $(this.el)).text('Click to set as parameter value'); + } + + return this; + }, + + // handler for show signature + switchToDescription: function(e){ + if (e) { e.preventDefault(); } + + $('.snippet', $(this.el)).hide(); + $('.description', $(this.el)).show(); + $('.description-link', $(this.el)).addClass('selected'); + $('.snippet-link', $(this.el)).removeClass('selected'); + }, + + // handler for show sample + switchToSnippet: function(e){ + if (e) { e.preventDefault(); } + + $('.description', $(this.el)).hide(); + $('.snippet', $(this.el)).show(); + $('.snippet-link', $(this.el)).addClass('selected'); + $('.description-link', $(this.el)).removeClass('selected'); + }, + + // handler for snippet to text area + snippetToTextArea: function(e) { + if (this.isParam) { + if (e) { e.preventDefault(); } + + var textArea = $('textarea', $(this.el.parentNode.parentNode.parentNode)); + + // Fix for bug in IE 10/11 which causes placeholder text to be copied to "value" + if ($.trim(textArea.val()) === '' || textArea.prop('placeholder') === textArea.val()) { + textArea.val(this.model.sampleJSON); + } + } + } +}); +'use strict'; + +SwaggerUi.Views.StatusCodeView = Backbone.View.extend({ + initialize: function (opts) { + this.options = opts || {}; + this.router = this.options.router; + }, + + render: function(){ + $(this.el).html(Handlebars.templates.status_code(this.model)); + + if (this.router.api.models.hasOwnProperty(this.model.responseModel)) { + var responseModel = { + sampleJSON: JSON.stringify(this.router.api.models[this.model.responseModel].createJSONSample(), null, 2), + isParam: false, + signature: this.router.api.models[this.model.responseModel].getMockSignature(), + }; + + var responseModelView = new SwaggerUi.Views.SignatureView({model: responseModel, tagName: 'div'}); + $('.model-signature', this.$el).append(responseModelView.render().el); + } else { + $('.model-signature', this.$el).html(''); + } + return this; + } +});}).call(this); \ No newline at end of file diff --git a/reference/ucp/3.1/api/swagger-ui.js.original b/reference/ucp/3.1/api/swagger-ui.js.original new file mode 100644 index 0000000000..207714d300 --- /dev/null +++ b/reference/ucp/3.1/api/swagger-ui.js.original @@ -0,0 +1,32269 @@ +/** + * swagger-ui - Swagger UI is a dependency-free collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API + * @version v2.1.3 + * @link http://swagger.io + * @license Apache-2.0 + */ +(function(){'use strict'; + +window.SwaggerUi = Backbone.Router.extend({ + + dom_id: 'swagger_ui', + + // Attributes + options: null, + api: null, + headerView: null, + mainView: null, + + // SwaggerUi accepts all the same options as SwaggerApi + initialize: function(options) { + options = options || {}; + if(!options.highlightSizeThreshold) { + options.highlightSizeThreshold = 100000; + } + + // Allow dom_id to be overridden + if (options.dom_id) { + this.dom_id = options.dom_id; + delete options.dom_id; + } + + if (!options.supportedSubmitMethods){ + options.supportedSubmitMethods = [ + 'get', + 'put', + 'post', + 'delete', + 'head', + 'options', + 'patch' + ]; + } + + if (typeof options.oauth2RedirectUrl === 'string') { + window.oAuthRedirectUrl = options.redirectUrl; + } + + // Create an empty div which contains the dom_id + if (! $('#' + this.dom_id).length){ + $('body').append('<div id="' + this.dom_id + '"></div>') ; + } + + this.options = options; + + // set marked options + marked.setOptions({gfm: true}); + + // Set the callbacks + var that = this; + this.options.success = function() { return that.render(); }; + this.options.progress = function(d) { return that.showMessage(d); }; + this.options.failure = function(d) { return that.onLoadFailure(d); }; + + // Create view to handle the header inputs + this.headerView = new SwaggerUi.Views.HeaderView({el: $('#header')}); + + // Event handler for when the baseUrl/apiKey is entered by user + this.headerView.on('update-swagger-ui', function(data) { + return that.updateSwaggerUi(data); + }); + }, + + // Set an option after initializing + setOption: function(option, value) { + this.options[option] = value; + }, + + // Get the value of a previously set option + getOption: function(option) { + return this.options[option]; + }, + + // Event handler for when url/key is received from user + updateSwaggerUi: function(data){ + this.options.url = data.url; + this.load(); + }, + + // Create an api and render + load: function(){ + // Initialize the API object + if (this.mainView) { + this.mainView.clear(); + } + var url = this.options.url; + if (url && url.indexOf('http') !== 0) { + url = this.buildUrl(window.location.href.toString(), url); + } + if(this.api) { + this.options.authorizations = this.api.clientAuthorizations.authz; + } + this.options.url = url; + this.headerView.update(url); + + this.api = new SwaggerClient(this.options); + }, + + // collapse all sections + collapseAll: function(){ + Docs.collapseEndpointListForResource(''); + }, + + // list operations for all sections + listAll: function(){ + Docs.collapseOperationsForResource(''); + }, + + // expand operations for all sections + expandAll: function(){ + Docs.expandOperationsForResource(''); + }, + + // This is bound to success handler for SwaggerApi + // so it gets called when SwaggerApi completes loading + render: function(){ + this.showMessage('Finished Loading Resource Information. Rendering Swagger UI...'); + this.mainView = new SwaggerUi.Views.MainView({ + model: this.api, + el: $('#' + this.dom_id), + swaggerOptions: this.options, + router: this + }).render(); + this.showMessage(); + switch (this.options.docExpansion) { + case 'full': + this.expandAll(); break; + case 'list': + this.listAll(); break; + default: + break; + } + this.renderGFM(); + + if (this.options.onComplete){ + this.options.onComplete(this.api, this); + } + + setTimeout(Docs.shebang.bind(this), 100); + }, + + buildUrl: function(base, url){ + if (url.indexOf('/') === 0) { + var parts = base.split('/'); + base = parts[0] + '//' + parts[2]; + return base + url; + } else { + var endOfPath = base.length; + + if (base.indexOf('?') > -1){ + endOfPath = Math.min(endOfPath, base.indexOf('?')); + } + + if (base.indexOf('#') > -1){ + endOfPath = Math.min(endOfPath, base.indexOf('#')); + } + + base = base.substring(0, endOfPath); + + if (base.indexOf('/', base.length - 1 ) !== -1){ + return base + url; + } + + return base + '/' + url; + } + }, + + // Shows message on topbar of the ui + showMessage: function(data){ + if (data === undefined) { + data = ''; + } + var $msgbar = $('#message-bar'); + $msgbar.removeClass('message-fail'); + $msgbar.addClass('message-success'); + $msgbar.html(data); + if(window.SwaggerTranslator) { + window.SwaggerTranslator.translate($msgbar); + } + }, + + // shows message in red + onLoadFailure: function(data){ + if (data === undefined) { + data = ''; + } + $('#message-bar').removeClass('message-success'); + $('#message-bar').addClass('message-fail'); + + var val = $('#message-bar').text(data); + + if (this.options.onFailure) { + this.options.onFailure(data); + } + + return val; + }, + + // Renders GFM for elements with 'markdown' class + renderGFM: function(){ + $('.markdown').each(function(){ + $(this).html(marked($(this).html())); + }); + + $('.propDesc', '.model-signature .description').each(function () { + $(this).html(marked($(this).html())).addClass('markdown'); + }); + } + +}); + +window.SwaggerUi.Views = {}; + +// don't break backward compatibility with previous versions and warn users to upgrade their code +(function(){ + window.authorizations = { + add: function() { + warn('Using window.authorizations is deprecated. Please use SwaggerUi.api.clientAuthorizations.add().'); + + if (typeof window.swaggerUi === 'undefined') { + throw new TypeError('window.swaggerUi is not defined'); + } + + if (window.swaggerUi instanceof SwaggerUi) { + window.swaggerUi.api.clientAuthorizations.add.apply(window.swaggerUi.api.clientAuthorizations, arguments); + } + } + }; + + window.ApiKeyAuthorization = function() { + warn('window.ApiKeyAuthorization is deprecated. Please use SwaggerClient.ApiKeyAuthorization.'); + SwaggerClient.ApiKeyAuthorization.apply(window, arguments); + }; + + window.PasswordAuthorization = function() { + warn('window.PasswordAuthorization is deprecated. Please use SwaggerClient.PasswordAuthorization.'); + SwaggerClient.PasswordAuthorization.apply(window, arguments); + }; + + function warn(message) { + if ('console' in window && typeof window.console.warn === 'function') { + console.warn(message); + } + } +})(); + + +// UMD +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['b'], function (b) { + return (root.SwaggerUi = factory(b)); + }); + } else if (typeof exports === 'object') { + // Node. Does not work with strict CommonJS, but + // only CommonJS-like environments that support module.exports, + // like Node. + module.exports = factory(require('b')); + } else { + // Browser globals + root.SwaggerUi = factory(root.b); + } +}(this, function () { + return SwaggerUi; +})); + +this["Handlebars"] = this["Handlebars"] || {}; +this["Handlebars"]["templates"] = this["Handlebars"]["templates"] || {}; +this["Handlebars"]["templates"]["apikey_button_view"] = Handlebars.template({"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return "<!--div class='auth_button' id='apikey_button'><img class='auth_icon' alt='apply api key' src='images/apikey.jpeg'></div-->\n<div class='auth_container' id='apikey_container'>\n <div class='key_input_container'>\n <div class='auth_label'><label for='input_apiKey_entry'>" + + escapeExpression(((helper = (helper = helpers.keyName || (depth0 != null ? depth0.keyName : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"keyName","hash":{},"data":data}) : helper))) + + "</label></div>\n <input placeholder='api_key' class='auth_input' id='input_apiKey_entry' name='apiKey' type='text'/>\n <div class='auth_submit'><a class='auth_submit_button' id='apply_api_key' href='#' data-sw-translate>apply</a></div>\n </div>\n</div>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["basic_auth_button_view"] = Handlebars.template({"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + return "<div class='auth_button' id='basic_auth_button'><img class='auth_icon' src='images/password.jpeg'></div>\n<div class='auth_container' id='basic_auth_container'>\n <div class='key_input_container'>\n <div class=\"auth_label\"><label for=\"input_username\" data-sw-translate>Username</label></div>\n <input placeholder=\"username\" class=\"auth_input\" id=\"input_username\" name=\"username\" type=\"text\"/>\n <div class=\"auth_label\"><label for=\"password\" data-sw-translate>Password</label></div>\n <input placeholder=\"password\" class=\"auth_input\" id=\"input_password\" name=\"password\" type=\"password\"/>\n <div class='auth_submit'><a class='auth_submit_button' id=\"apply_basic_auth\" href=\"#\">apply</a></div>\n </div>\n</div>\n\n"; + },"useData":true}); +this["Handlebars"]["templates"]["content_type"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers.each.call(depth0, (depth0 != null ? depth0.produces : depth0), {"name":"each","hash":{},"fn":this.program(2, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"2":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, buffer = " <option value=\""; + stack1 = lambda(depth0, depth0); + if (stack1 != null) { buffer += stack1; } + buffer += "\">"; + stack1 = lambda(depth0, depth0); + if (stack1 != null) { buffer += stack1; } + return buffer + "</option>\n"; +},"4":function(depth0,helpers,partials,data) { + return " <option value=\"application/json\">application/json</option>\n"; + },"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<label data-sw-translate for=\"" + + escapeExpression(((helper = (helper = helpers.contentTypeId || (depth0 != null ? depth0.contentTypeId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"contentTypeId","hash":{},"data":data}) : helper))) + + "\">Response Content Type</label>\n<select name=\"contentType\" id=\"" + + escapeExpression(((helper = (helper = helpers.contentTypeId || (depth0 != null ? depth0.contentTypeId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"contentTypeId","hash":{},"data":data}) : helper))) + + "\">\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.produces : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(4, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + "</select>\n"; +},"useData":true}); +'use strict'; + + +$(function() { + + // Helper function for vertically aligning DOM elements + // http://www.seodenver.com/simple-vertical-align-plugin-for-jquery/ + $.fn.vAlign = function() { + return this.each(function(){ + var ah = $(this).height(); + var ph = $(this).parent().height(); + var mh = (ph - ah) / 2; + $(this).css('margin-top', mh); + }); + }; + + $.fn.stretchFormtasticInputWidthToParent = function() { + return this.each(function(){ + var p_width = $(this).closest("form").innerWidth(); + var p_padding = parseInt($(this).closest("form").css('padding-left') ,10) + parseInt($(this).closest('form').css('padding-right'), 10); + var this_padding = parseInt($(this).css('padding-left'), 10) + parseInt($(this).css('padding-right'), 10); + $(this).css('width', p_width - p_padding - this_padding); + }); + }; + + $('form.formtastic li.string input, form.formtastic textarea').stretchFormtasticInputWidthToParent(); + + // Vertically center these paragraphs + // Parent may need a min-height for this to work.. + $('ul.downplayed li div.content p').vAlign(); + + // When a sandbox form is submitted.. + $("form.sandbox").submit(function(){ + + var error_free = true; + + // Cycle through the forms required inputs + $(this).find("input.required").each(function() { + + // Remove any existing error styles from the input + $(this).removeClass('error'); + + // Tack the error style on if the input is empty.. + if ($(this).val() === '') { + $(this).addClass('error'); + $(this).wiggle(); + error_free = false; + } + + }); + + return error_free; + }); + +}); + +function clippyCopiedCallback() { + $('#api_key_copied').fadeIn().delay(1000).fadeOut(); + + // var b = $("#clippy_tooltip_" + a); + // b.length != 0 && (b.attr("title", "copied!").trigger("tipsy.reload"), setTimeout(function() { + // b.attr("title", "copy to clipboard") + // }, + // 500)) +} + +// Logging function that accounts for browsers that don't have window.console +function log(){ + log.history = log.history || []; + log.history.push(arguments); + if(this.console){ + console.log( Array.prototype.slice.call(arguments)[0] ); + } +} + +// Handle browsers that do console incorrectly (IE9 and below, see http://stackoverflow.com/a/5539378/7913) +if (Function.prototype.bind && console && typeof console.log === "object") { + [ + "log","info","warn","error","assert","dir","clear","profile","profileEnd" + ].forEach(function (method) { + console[method] = this.bind(console[method], console); + }, Function.prototype.call); +} + +window.Docs = { + + shebang: function() { + + // If shebang has an operation nickname in it.. + // e.g. /docs/#!/words/get_search + var fragments = $.param.fragment().split('/'); + fragments.shift(); // get rid of the bang + + switch (fragments.length) { + case 1: + if (fragments[0].length > 0) { // prevent matching "#/" + // Expand all operations for the resource and scroll to it + var dom_id = 'resource_' + fragments[0]; + + Docs.expandEndpointListForResource(fragments[0]); + $("#"+dom_id).slideto({highlight: false}); + } + break; + case 2: + // Refer to the endpoint DOM element, e.g. #words_get_search + + // Expand Resource + Docs.expandEndpointListForResource(fragments[0]); + $("#"+dom_id).slideto({highlight: false}); + + // Expand operation + var li_dom_id = fragments.join('_'); + var li_content_dom_id = li_dom_id + "_content"; + + + Docs.expandOperation($('#'+li_content_dom_id)); + $('#'+li_dom_id).slideto({highlight: false}); + break; + } + + }, + + toggleEndpointListForResource: function(resource) { + var elem = $('li#resource_' + Docs.escapeResourceName(resource) + ' ul.endpoints'); + if (elem.is(':visible')) { + Docs.collapseEndpointListForResource(resource); + } else { + Docs.expandEndpointListForResource(resource); + } + }, + + // Expand resource + expandEndpointListForResource: function(resource) { + var resource = Docs.escapeResourceName(resource); + if (resource == '') { + $('.resource ul.endpoints').slideDown(); + return; + } + + $('li#resource_' + resource).addClass('active'); + + var elem = $('li#resource_' + resource + ' ul.endpoints'); + elem.slideDown(); + }, + + // Collapse resource and mark as explicitly closed + collapseEndpointListForResource: function(resource) { + var resource = Docs.escapeResourceName(resource); + if (resource == '') { + $('.resource ul.endpoints').slideUp(); + return; + } + + $('li#resource_' + resource).removeClass('active'); + + var elem = $('li#resource_' + resource + ' ul.endpoints'); + elem.slideUp(); + }, + + expandOperationsForResource: function(resource) { + // Make sure the resource container is open.. + Docs.expandEndpointListForResource(resource); + + if (resource == '') { + $('.resource ul.endpoints li.operation div.content').slideDown(); + return; + } + + $('li#resource_' + Docs.escapeResourceName(resource) + ' li.operation div.content').each(function() { + Docs.expandOperation($(this)); + }); + }, + + collapseOperationsForResource: function(resource) { + // Make sure the resource container is open.. + Docs.expandEndpointListForResource(resource); + + if (resource == '') { + $('.resource ul.endpoints li.operation div.content').slideUp(); + return; + } + + $('li#resource_' + Docs.escapeResourceName(resource) + ' li.operation div.content').each(function() { + Docs.collapseOperation($(this)); + }); + }, + + escapeResourceName: function(resource) { + return resource.replace(/[!"#$%&'()*+,.\/:;<=>?@\[\\\]\^`{|}~]/g, "\\$&"); + }, + + expandOperation: function(elem) { + elem.slideDown(); + }, + + collapseOperation: function(elem) { + elem.slideUp(); + } +}; + +'use strict'; + +Handlebars.registerHelper('sanitize', function(html) { + // Strip the script tags from the html, and return it as a Handlebars.SafeString + html = html.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, ''); + return new Handlebars.SafeString(html); +}); + +Handlebars.registerHelper('renderTextParam', function(param) { + var result, type = 'text', idAtt = ''; + var isArray = param.type.toLowerCase() === 'array' || param.allowMultiple; + var defaultValue = isArray && Array.isArray(param.default) ? param.default.join('\n') : param.default; + + var dataVendorExtensions = Object.keys(param).filter(function(property) { + // filter X-data- properties + return property.match(/^X-data-/i) !== null; + }).reduce(function(result, property) { + // remove X- from property name, so it results in html attributes like data-foo='bar' + return result += ' ' + property.substring(2, property.length) + '=\'' + param[property] + '\''; + }, ''); + + if (typeof defaultValue === 'undefined') { + defaultValue = ''; + } + + if(param.format && param.format === 'password') { + type = 'password'; + } + + if(param.valueId) { + idAtt = ' id=\'' + param.valueId + '\''; + } + + if(isArray) { + result = '<textarea class=\'body-textarea' + (param.required ? ' required' : '') + '\' name=\'' + param.name + '\'' + idAtt + dataVendorExtensions; + result += ' placeholder=\'Provide multiple values in new lines' + (param.required ? ' (at least one required).' : '.') + '\'>'; + result += defaultValue + '</textarea>'; + } else { + var parameterClass = 'parameter'; + if(param.required) { + parameterClass += ' required'; + } + result = '<input class=\'' + parameterClass + '\' minlength=\'' + (param.required ? 1 : 0) + '\''; + result += ' name=\'' + param.name +'\' placeholder=\'' + (param.required ? '(required)' : '') + '\'' + idAtt + dataVendorExtensions; + result += ' type=\'' + type + '\' value=\'' + defaultValue + '\'/>'; + } + return new Handlebars.SafeString(result); +}); + +this["Handlebars"]["templates"]["main"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression, buffer = " <div class=\"info_title\">" + + escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.title : stack1), depth0)) + + "</div>\n <div class=\"info_description markdown\">"; + stack1 = lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.description : stack1), depth0); + if (stack1 != null) { buffer += stack1; } + buffer += "</div>\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.externalDocs : depth0), {"name":"if","hash":{},"fn":this.program(2, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += " "; + stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.termsOfServiceUrl : stack1), {"name":"if","hash":{},"fn":this.program(4, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "\n "; + stack1 = helpers['if'].call(depth0, ((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.name : stack1), {"name":"if","hash":{},"fn":this.program(6, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "\n "; + stack1 = helpers['if'].call(depth0, ((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.url : stack1), {"name":"if","hash":{},"fn":this.program(8, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "\n "; + stack1 = helpers['if'].call(depth0, ((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.email : stack1), {"name":"if","hash":{},"fn":this.program(10, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "\n "; + stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.license : stack1), {"name":"if","hash":{},"fn":this.program(12, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + "\n"; +},"2":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression; + return " <p>" + + escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.externalDocs : depth0)) != null ? stack1.description : stack1), depth0)) + + "</p>\n <a href=\"" + + escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.externalDocs : depth0)) != null ? stack1.url : stack1), depth0)) + + "\" target=\"_blank\">" + + escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.externalDocs : depth0)) != null ? stack1.url : stack1), depth0)) + + "</a>\n"; +},"4":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression; + return "<div class=\"info_tos\"><a href=\"" + + escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.termsOfServiceUrl : stack1), depth0)) + + "\" data-sw-translate>Terms of service</a></div>"; +},"6":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression; + return "<div class='info_name' data-sw-translate>Created by " + + escapeExpression(lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.name : stack1), depth0)) + + "</div>"; +},"8":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression; + return "<div class='info_url' data-sw-translate>See more at <a href=\"" + + escapeExpression(lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.url : stack1), depth0)) + + "\">" + + escapeExpression(lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.url : stack1), depth0)) + + "</a></div>"; +},"10":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression; + return "<div class='info_email'><a href=\"mailto:" + + escapeExpression(lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.email : stack1), depth0)) + + "?subject=" + + escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.title : stack1), depth0)) + + "\" data-sw-translate>Contact the developer</a></div>"; +},"12":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression; + return "<div class='info_license'><a href='" + + escapeExpression(lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.license : stack1)) != null ? stack1.url : stack1), depth0)) + + "'>" + + escapeExpression(lambda(((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.license : stack1)) != null ? stack1.name : stack1), depth0)) + + "</a></div>"; +},"14":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression; + return " , <span style=\"font-variant: small-caps\" data-sw-translate>api version</span>: " + + escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.version : stack1), depth0)) + + "\n "; +},"16":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <span style=\"float:right\"><a href=\"" + + escapeExpression(((helper = (helper = helpers.validatorUrl || (depth0 != null ? depth0.validatorUrl : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"validatorUrl","hash":{},"data":data}) : helper))) + + "/debug?url=" + + escapeExpression(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"url","hash":{},"data":data}) : helper))) + + "\"><img id=\"validator\" src=\"" + + escapeExpression(((helper = (helper = helpers.validatorUrl || (depth0 != null ? depth0.validatorUrl : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"validatorUrl","hash":{},"data":data}) : helper))) + + "?url=" + + escapeExpression(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"url","hash":{},"data":data}) : helper))) + + "\"></a>\n </span>\n"; +},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<div class='info' id='api_info'>\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.info : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "</div>\n<div class='container' id='resources_container'>\n <ul id='resources'></ul>\n\n <div class=\"footer\">\n <h4 style=\"color: #999\">[ <span style=\"font-variant: small-caps\">base url</span>: " + + escapeExpression(((helper = (helper = helpers.basePath || (depth0 != null ? depth0.basePath : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"basePath","hash":{},"data":data}) : helper))) + + "\n"; + stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.version : stack1), {"name":"if","hash":{},"fn":this.program(14, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "]\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.validatorUrl : depth0), {"name":"if","hash":{},"fn":this.program(16, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + " </h4>\n </div>\n</div>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["operation"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + return "deprecated"; + },"3":function(depth0,helpers,partials,data) { + return " <h4>Warning: Deprecated</h4>\n"; + },"5":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, buffer = " <h4>Implementation Notes</h4>\n <div class=\"markdown\">"; + stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"description","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + return buffer + "</div>\n"; +},"7":function(depth0,helpers,partials,data) { + return " <div class=\"auth\">\n <span class=\"api-ic ic-error\">"; + },"9":function(depth0,helpers,partials,data) { + var stack1, buffer = " <div class=\"api_information_panel\">\n"; + stack1 = helpers.each.call(depth0, depth0, {"name":"each","hash":{},"fn":this.program(10, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + " </div>\n"; +},"10":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression, buffer = " <div title='"; + stack1 = lambda((depth0 != null ? depth0.description : depth0), depth0); + if (stack1 != null) { buffer += stack1; } + return buffer + "'>" + + escapeExpression(lambda((depth0 != null ? depth0.scope : depth0), depth0)) + + "</div>\n"; +},"12":function(depth0,helpers,partials,data) { + return "</span></div>"; + },"14":function(depth0,helpers,partials,data) { + return " <div class='access'>\n <span class=\"api-ic ic-off\" title=\"click to authenticate\"></span>\n </div>\n"; + },"16":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <h4><span data-sw-translate>Response Class</span> (<span data-sw-translate>Status</span> " + + escapeExpression(((helper = (helper = helpers.successCode || (depth0 != null ? depth0.successCode : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"successCode","hash":{},"data":data}) : helper))) + + ")</h4>\n <p><span class=\"model-signature\" /></p>\n <br/>\n <div class=\"response-content-type\" />\n"; +},"18":function(depth0,helpers,partials,data) { + return " <h4 data-sw-translate>Parameters</h4>\n <table class='fullwidth'>\n <thead>\n <tr>\n <th style=\"width: 100px; max-width: 100px\" data-sw-translate>Parameter</th>\n <th style=\"width: 310px; max-width: 310px\" data-sw-translate>Value</th>\n <th style=\"width: 200px; max-width: 200px\" data-sw-translate>Description</th>\n <th style=\"width: 100px; max-width: 100px\" data-sw-translate>Parameter Type</th>\n <th style=\"width: 220px; max-width: 230px\" data-sw-translate>Data Type</th>\n </tr>\n </thead>\n <tbody class=\"operation-params\">\n\n </tbody>\n </table>\n"; + },"20":function(depth0,helpers,partials,data) { + return " <div style='margin:0;padding:0;display:inline'></div>\n <h4 data-sw-translate>Response Messages</h4>\n <table class='fullwidth'>\n <thead>\n <tr>\n <th data-sw-translate>HTTP Status Code</th>\n <th data-sw-translate>Reason</th>\n <th data-sw-translate>Response Model</th>\n <th data-sw-translate>Headers</th>\n </tr>\n </thead>\n <tbody class=\"operation-status\">\n\n </tbody>\n </table>\n"; + },"22":function(depth0,helpers,partials,data) { + return ""; +},"24":function(depth0,helpers,partials,data) { + return " <div class='sandbox_header'>\n <input class='submit' type='button' value='Try it out!' data-sw-translate/>\n <a href='#' class='response_hider' style='display:none' data-sw-translate>Hide Response</a>\n <span class='response_throbber' style='display:none'></span>\n </div>\n"; + },"26":function(depth0,helpers,partials,data) { + return " <h4 data-sw-translate>Request Headers</h4>\n <div class='block request_headers'></div>\n"; + },"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, options, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, blockHelperMissing=helpers.blockHelperMissing, buffer = "\n <ul class='operations' >\n <li class='" + + escapeExpression(((helper = (helper = helpers.method || (depth0 != null ? depth0.method : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"method","hash":{},"data":data}) : helper))) + + " operation' id='" + + escapeExpression(((helper = (helper = helpers.parentId || (depth0 != null ? depth0.parentId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"parentId","hash":{},"data":data}) : helper))) + + "_" + + escapeExpression(((helper = (helper = helpers.nickname || (depth0 != null ? depth0.nickname : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"nickname","hash":{},"data":data}) : helper))) + + "'>\n <div class='heading'>\n <h3>\n <span class='http_method'>\n <a href='#!/" + + escapeExpression(((helper = (helper = helpers.encodedParentId || (depth0 != null ? depth0.encodedParentId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"encodedParentId","hash":{},"data":data}) : helper))) + + "/" + + escapeExpression(((helper = (helper = helpers.nickname || (depth0 != null ? depth0.nickname : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"nickname","hash":{},"data":data}) : helper))) + + "' class=\"toggleOperation\">" + + escapeExpression(((helper = (helper = helpers.method || (depth0 != null ? depth0.method : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"method","hash":{},"data":data}) : helper))) + + "</a>\n </span>\n <span class='path'>\n <a href='#!/" + + escapeExpression(((helper = (helper = helpers.encodedParentId || (depth0 != null ? depth0.encodedParentId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"encodedParentId","hash":{},"data":data}) : helper))) + + "/" + + escapeExpression(((helper = (helper = helpers.nickname || (depth0 != null ? depth0.nickname : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"nickname","hash":{},"data":data}) : helper))) + + "' class=\"toggleOperation "; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.deprecated : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "\">" + + escapeExpression(((helper = (helper = helpers.path || (depth0 != null ? depth0.path : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"path","hash":{},"data":data}) : helper))) + + "</a>\n </span>\n </h3>\n <ul class='options'>\n <li>\n <a href='#!/" + + escapeExpression(((helper = (helper = helpers.encodedParentId || (depth0 != null ? depth0.encodedParentId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"encodedParentId","hash":{},"data":data}) : helper))) + + "/" + + escapeExpression(((helper = (helper = helpers.nickname || (depth0 != null ? depth0.nickname : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"nickname","hash":{},"data":data}) : helper))) + + "' class=\"toggleOperation\">"; + stack1 = ((helper = (helper = helpers.summary || (depth0 != null ? depth0.summary : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"summary","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + buffer += "</a>\n </li>\n </ul>\n </div>\n <div class='content' id='" + + escapeExpression(((helper = (helper = helpers.parentId || (depth0 != null ? depth0.parentId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"parentId","hash":{},"data":data}) : helper))) + + "_" + + escapeExpression(((helper = (helper = helpers.nickname || (depth0 != null ? depth0.nickname : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"nickname","hash":{},"data":data}) : helper))) + + "_content' style='display:none'>\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.deprecated : depth0), {"name":"if","hash":{},"fn":this.program(3, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.description : depth0), {"name":"if","hash":{},"fn":this.program(5, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + stack1 = ((helper = (helper = helpers.oauth || (depth0 != null ? depth0.oauth : depth0)) != null ? helper : helperMissing),(options={"name":"oauth","hash":{},"fn":this.program(7, data),"inverse":this.noop,"data":data}),(typeof helper === functionType ? helper.call(depth0, options) : helper)); + if (!helpers.oauth) { stack1 = blockHelperMissing.call(depth0, stack1, options); } + if (stack1 != null) { buffer += stack1; } + buffer += "\n"; + stack1 = helpers.each.call(depth0, (depth0 != null ? depth0.oauth : depth0), {"name":"each","hash":{},"fn":this.program(9, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += " "; + stack1 = ((helper = (helper = helpers.oauth || (depth0 != null ? depth0.oauth : depth0)) != null ? helper : helperMissing),(options={"name":"oauth","hash":{},"fn":this.program(12, data),"inverse":this.noop,"data":data}),(typeof helper === functionType ? helper.call(depth0, options) : helper)); + if (!helpers.oauth) { stack1 = blockHelperMissing.call(depth0, stack1, options); } + if (stack1 != null) { buffer += stack1; } + buffer += "\n"; + stack1 = ((helper = (helper = helpers.oauth || (depth0 != null ? depth0.oauth : depth0)) != null ? helper : helperMissing),(options={"name":"oauth","hash":{},"fn":this.program(14, data),"inverse":this.noop,"data":data}),(typeof helper === functionType ? helper.call(depth0, options) : helper)); + if (!helpers.oauth) { stack1 = blockHelperMissing.call(depth0, stack1, options); } + if (stack1 != null) { buffer += stack1; } + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.type : depth0), {"name":"if","hash":{},"fn":this.program(16, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += " <form accept-charset='UTF-8' class='sandbox'>\n <div style='margin:0;padding:0;display:inline'></div>\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.parameters : depth0), {"name":"if","hash":{},"fn":this.program(18, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.responseMessages : depth0), {"name":"if","hash":{},"fn":this.program(20, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isReadOnly : depth0), {"name":"if","hash":{},"fn":this.program(22, data),"inverse":this.program(24, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += " </form>\n <div class='response' style='display:none'>\n <h4>Curl</h4>\n <div class='block curl'></div>\n <h4 data-sw-translate>Request URL</h4>\n <div class='block request_url'></div>\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.showRequestHeaders : depth0), {"name":"if","hash":{},"fn":this.program(26, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + " <h4 data-sw-translate>Response Body</h4>\n <div class='block response_body'></div>\n <h4 data-sw-translate>Response Code</h4>\n <div class='block response_code'></div>\n <h4 data-sw-translate>Response Headers</h4>\n <div class='block response_headers'></div>\n </div>\n </div>\n </li>\n </ul>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["param"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isFile : depth0), {"name":"if","hash":{},"fn":this.program(2, data),"inverse":this.program(4, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"2":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <input type=\"file\" name='" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "' id='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'/>\n <div class=\"parameter-content-type\" />\n"; +},"4":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0['default'] : depth0), {"name":"if","hash":{},"fn":this.program(5, data),"inverse":this.program(7, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"5":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <textarea class='body-textarea' name='" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "' id='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'>" + + escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper))) + + "</textarea>\n <br />\n <div class=\"parameter-content-type\" />\n"; +},"7":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <textarea class='body-textarea' name='" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "' id='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'></textarea>\n <br />\n <div class=\"parameter-content-type\" />\n"; +},"9":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isFile : depth0), {"name":"if","hash":{},"fn":this.program(2, data),"inverse":this.program(10, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"10":function(depth0,helpers,partials,data) { + var stack1, helperMissing=helpers.helperMissing, buffer = ""; + stack1 = ((helpers.renderTextParam || (depth0 && depth0.renderTextParam) || helperMissing).call(depth0, depth0, {"name":"renderTextParam","hash":{},"fn":this.program(11, data),"inverse":this.noop,"data":data})); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"11":function(depth0,helpers,partials,data) { + return ""; +},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<td class='code'><label for='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'>" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "</label></td>\n<td>\n\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isBody : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(9, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "\n</td>\n<td class=\"markdown\">"; + stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"description","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + buffer += "</td>\n<td>"; + stack1 = ((helper = (helper = helpers.paramType || (depth0 != null ? depth0.paramType : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"paramType","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + return buffer + "</td>\n<td>\n <span class=\"model-signature\"></span>\n</td>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["param_list"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + return " required"; + },"3":function(depth0,helpers,partials,data) { + return " multiple=\"multiple\""; + },"5":function(depth0,helpers,partials,data) { + return " required "; + },"7":function(depth0,helpers,partials,data) { + var stack1, buffer = " <option "; + stack1 = helpers.unless.call(depth0, (depth0 != null ? depth0.hasDefault : depth0), {"name":"unless","hash":{},"fn":this.program(8, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + " value=''></option>\n"; +},"8":function(depth0,helpers,partials,data) { + return " selected=\"\" "; + },"10":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "\n <option "; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isDefault : depth0), {"name":"if","hash":{},"fn":this.program(11, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += " value='" + + escapeExpression(((helper = (helper = helpers.value || (depth0 != null ? depth0.value : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"value","hash":{},"data":data}) : helper))) + + "'> " + + escapeExpression(((helper = (helper = helpers.value || (depth0 != null ? depth0.value : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"value","hash":{},"data":data}) : helper))) + + " "; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isDefault : depth0), {"name":"if","hash":{},"fn":this.program(13, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + " </option>\n\n"; +},"11":function(depth0,helpers,partials,data) { + return " selected=\"\" "; + },"13":function(depth0,helpers,partials,data) { + return " (default) "; + },"15":function(depth0,helpers,partials,data) { + return "<strong>"; + },"17":function(depth0,helpers,partials,data) { + return "</strong>"; + },"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<td class='code"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.required : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "'><label for='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'>" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "</label></td>\n<td>\n <select "; + stack1 = ((helpers.isArray || (depth0 && depth0.isArray) || helperMissing).call(depth0, depth0, {"name":"isArray","hash":{},"fn":this.program(3, data),"inverse":this.noop,"data":data})); + if (stack1 != null) { buffer += stack1; } + buffer += " class=\"parameter "; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.required : depth0), {"name":"if","hash":{},"fn":this.program(5, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "\" name=\"" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "\" id=\"" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "\">\n\n"; + stack1 = helpers.unless.call(depth0, (depth0 != null ? depth0.required : depth0), {"name":"unless","hash":{},"fn":this.program(7, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "\n"; + stack1 = helpers.each.call(depth0, ((stack1 = (depth0 != null ? depth0.allowableValues : depth0)) != null ? stack1.descriptiveValues : stack1), {"name":"each","hash":{},"fn":this.program(10, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "\n </select>\n</td>\n<td class=\"markdown\">"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.required : depth0), {"name":"if","hash":{},"fn":this.program(15, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"description","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.required : depth0), {"name":"if","hash":{},"fn":this.program(17, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "</td>\n<td>"; + stack1 = ((helper = (helper = helpers.paramType || (depth0 != null ? depth0.paramType : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"paramType","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + return buffer + "</td>\n<td><span class=\"model-signature\"></span></td>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["param_readonly"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <textarea class='body-textarea' readonly='readonly' name='" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "' id='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'>" + + escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper))) + + "</textarea>\n"; +},"3":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0['default'] : depth0), {"name":"if","hash":{},"fn":this.program(4, data),"inverse":this.program(6, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"4":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " " + + escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper))) + + "\n"; +},"6":function(depth0,helpers,partials,data) { + return " (empty)\n"; + },"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<td class='code'><label for='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'>" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "</label></td>\n<td>\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isBody : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(3, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "</td>\n<td class=\"markdown\">"; + stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"description","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + buffer += "</td>\n<td>"; + stack1 = ((helper = (helper = helpers.paramType || (depth0 != null ? depth0.paramType : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"paramType","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + return buffer + "</td>\n<td><span class=\"model-signature\"></span></td>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["param_readonly_required"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <textarea class='body-textarea' readonly='readonly' placeholder='(required)' name='" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "' id='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'>" + + escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper))) + + "</textarea>\n"; +},"3":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0['default'] : depth0), {"name":"if","hash":{},"fn":this.program(4, data),"inverse":this.program(6, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"4":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " " + + escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper))) + + "\n"; +},"6":function(depth0,helpers,partials,data) { + return " (empty)\n"; + },"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<td class='code required'><label for='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'>" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "</label></td>\n<td>\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isBody : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(3, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "</td>\n<td class=\"markdown\">"; + stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"description","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + buffer += "</td>\n<td>"; + stack1 = ((helper = (helper = helpers.paramType || (depth0 != null ? depth0.paramType : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"paramType","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + return buffer + "</td>\n<td><span class=\"model-signature\"></span></td>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["param_required"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isFile : depth0), {"name":"if","hash":{},"fn":this.program(2, data),"inverse":this.program(4, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"2":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <input type=\"file\" name='" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "' id='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'/>\n"; +},"4":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0['default'] : depth0), {"name":"if","hash":{},"fn":this.program(5, data),"inverse":this.program(7, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"5":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <textarea class='body-textarea required' placeholder='(required)' name='" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "' id=\"" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "\">" + + escapeExpression(((helper = (helper = helpers['default'] || (depth0 != null ? depth0['default'] : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"default","hash":{},"data":data}) : helper))) + + "</textarea>\n <br />\n <div class=\"parameter-content-type\" />\n"; +},"7":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <textarea class='body-textarea required' placeholder='(required)' name='" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "' id='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'></textarea>\n <br />\n <div class=\"parameter-content-type\" />\n"; +},"9":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isFile : depth0), {"name":"if","hash":{},"fn":this.program(10, data),"inverse":this.program(12, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"10":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <input class='parameter' class='required' type='file' name='" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "' id='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'/>\n"; +},"12":function(depth0,helpers,partials,data) { + var stack1, helperMissing=helpers.helperMissing, buffer = ""; + stack1 = ((helpers.renderTextParam || (depth0 && depth0.renderTextParam) || helperMissing).call(depth0, depth0, {"name":"renderTextParam","hash":{},"fn":this.program(13, data),"inverse":this.noop,"data":data})); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"13":function(depth0,helpers,partials,data) { + return ""; +},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<td class='code required'><label for='" + + escapeExpression(((helper = (helper = helpers.valueId || (depth0 != null ? depth0.valueId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"valueId","hash":{},"data":data}) : helper))) + + "'>" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "</label></td>\n<td>\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.isBody : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(9, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + buffer += "</td>\n<td>\n <strong><span class=\"markdown\">"; + stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"description","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + buffer += "</span></strong>\n</td>\n<td>"; + stack1 = ((helper = (helper = helpers.paramType || (depth0 != null ? depth0.paramType : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"paramType","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + return buffer + "</td>\n<td><span class=\"model-signature\"></span></td>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["parameter_content_type"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers.each.call(depth0, (depth0 != null ? depth0.consumes : depth0), {"name":"each","hash":{},"fn":this.program(2, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"2":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, buffer = " <option value=\""; + stack1 = lambda(depth0, depth0); + if (stack1 != null) { buffer += stack1; } + buffer += "\">"; + stack1 = lambda(depth0, depth0); + if (stack1 != null) { buffer += stack1; } + return buffer + "</option>\n"; +},"4":function(depth0,helpers,partials,data) { + return " <option value=\"application/json\">application/json</option>\n"; + },"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<label for=\"" + + escapeExpression(((helper = (helper = helpers.parameterContentTypeId || (depth0 != null ? depth0.parameterContentTypeId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"parameterContentTypeId","hash":{},"data":data}) : helper))) + + "\">Parameter content type:</label>\n<select name=\"parameterContentType\" id=\"" + + escapeExpression(((helper = (helper = helpers.parameterContentTypeId || (depth0 != null ? depth0.parameterContentTypeId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"parameterContentTypeId","hash":{},"data":data}) : helper))) + + "\">\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.consumes : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(4, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + "</select>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["resource"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + return " : "; + },"3":function(depth0,helpers,partials,data) { + var helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression; + return " <li>\n <a href='" + + escapeExpression(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"url","hash":{},"data":data}) : helper))) + + "' data-sw-translate>Raw</a>\n </li>\n"; +},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, options, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, blockHelperMissing=helpers.blockHelperMissing, buffer = "<div class='heading'>\n <h2>\n <a href='#!/" + + escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper))) + + "' class=\"toggleEndpointList\" data-id=\"" + + escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper))) + + "\">" + + escapeExpression(((helper = (helper = helpers.name || (depth0 != null ? depth0.name : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"name","hash":{},"data":data}) : helper))) + + "</a> "; + stack1 = ((helper = (helper = helpers.summary || (depth0 != null ? depth0.summary : depth0)) != null ? helper : helperMissing),(options={"name":"summary","hash":{},"fn":this.program(1, data),"inverse":this.noop,"data":data}),(typeof helper === functionType ? helper.call(depth0, options) : helper)); + if (!helpers.summary) { stack1 = blockHelperMissing.call(depth0, stack1, options); } + if (stack1 != null) { buffer += stack1; } + stack1 = ((helper = (helper = helpers.summary || (depth0 != null ? depth0.summary : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"summary","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + buffer += "\n </h2>\n <ul class='options'>\n <li>\n <a href='#!/" + + escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper))) + + "' id='endpointListTogger_" + + escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper))) + + "' class=\"toggleEndpointList\" data-id=\"" + + escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper))) + + "\" data-sw-translate>Show/Hide</a>\n </li>\n <li>\n <a href='#' class=\"collapseResource\" data-id=\"" + + escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper))) + + "\" data-sw-translate>\n List Operations\n </a>\n </li>\n <li>\n <a href='#' class=\"expandResource\" data-id=\"" + + escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper))) + + "\" data-sw-translate>\n Expand Operations\n </a>\n </li>\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.url : depth0), {"name":"if","hash":{},"fn":this.program(3, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + " </ul>\n</div>\n<ul class='endpoints' id='" + + escapeExpression(((helper = (helper = helpers.id || (depth0 != null ? depth0.id : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"id","hash":{},"data":data}) : helper))) + + "_endpoint_list' style='display:none'>\n\n</ul>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["response_content_type"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + var stack1, buffer = ""; + stack1 = helpers.each.call(depth0, (depth0 != null ? depth0.produces : depth0), {"name":"each","hash":{},"fn":this.program(2, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer; +},"2":function(depth0,helpers,partials,data) { + var stack1, lambda=this.lambda, buffer = " <option value=\""; + stack1 = lambda(depth0, depth0); + if (stack1 != null) { buffer += stack1; } + buffer += "\">"; + stack1 = lambda(depth0, depth0); + if (stack1 != null) { buffer += stack1; } + return buffer + "</option>\n"; +},"4":function(depth0,helpers,partials,data) { + return " <option value=\"application/json\">application/json</option>\n"; + },"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<label data-sw-translate for=\"" + + escapeExpression(((helper = (helper = helpers.responseContentTypeId || (depth0 != null ? depth0.responseContentTypeId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"responseContentTypeId","hash":{},"data":data}) : helper))) + + "\">Response Content Type</label>\n<select name=\"responseContentType\" id=\"" + + escapeExpression(((helper = (helper = helpers.responseContentTypeId || (depth0 != null ? depth0.responseContentTypeId : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"responseContentTypeId","hash":{},"data":data}) : helper))) + + "\">\n"; + stack1 = helpers['if'].call(depth0, (depth0 != null ? depth0.produces : depth0), {"name":"if","hash":{},"fn":this.program(1, data),"inverse":this.program(4, data),"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + "</select>\n"; +},"useData":true}); +this["Handlebars"]["templates"]["signature"] = Handlebars.template({"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<div>\n<ul class=\"signature-nav\">\n <li><a class=\"description-link\" href=\"#\" data-sw-translate>Model</a></li>\n <li><a class=\"snippet-link\" href=\"#\" data-sw-translate>Model Schema</a></li>\n</ul>\n<div>\n\n<div class=\"signature-container\">\n <div class=\"description\">\n "; + stack1 = ((helper = (helper = helpers.signature || (depth0 != null ? depth0.signature : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"signature","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + return buffer + "\n </div>\n\n <div class=\"snippet\">\n <pre><code>" + + escapeExpression(((helper = (helper = helpers.sampleJSON || (depth0 != null ? depth0.sampleJSON : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"sampleJSON","hash":{},"data":data}) : helper))) + + "</code></pre>\n <small class=\"notice\"></small>\n </div>\n</div>\n\n"; +},"useData":true}); +this["Handlebars"]["templates"]["status_code"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { + var lambda=this.lambda, escapeExpression=this.escapeExpression; + return " <tr>\n <td>" + + escapeExpression(lambda((data && data.key), depth0)) + + "</td>\n <td>" + + escapeExpression(lambda((depth0 != null ? depth0.description : depth0), depth0)) + + "</td>\n <td>" + + escapeExpression(lambda((depth0 != null ? depth0.type : depth0), depth0)) + + "</td>\n </tr>\n"; +},"compiler":[6,">= 2.0.0-beta.1"],"main":function(depth0,helpers,partials,data) { + var stack1, helper, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, buffer = "<td width='15%' class='code'>" + + escapeExpression(((helper = (helper = helpers.code || (depth0 != null ? depth0.code : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"code","hash":{},"data":data}) : helper))) + + "</td>\n<td class=\"markdown\">"; + stack1 = ((helper = (helper = helpers.message || (depth0 != null ? depth0.message : depth0)) != null ? helper : helperMissing),(typeof helper === functionType ? helper.call(depth0, {"name":"message","hash":{},"data":data}) : helper)); + if (stack1 != null) { buffer += stack1; } + buffer += "</td>\n<td width='50%'><span class=\"model-signature\" /></td>\n<td class=\"headers\">\n <table>\n <tbody>\n"; + stack1 = helpers.each.call(depth0, (depth0 != null ? depth0.headers : depth0), {"name":"each","hash":{},"fn":this.program(1, data),"inverse":this.noop,"data":data}); + if (stack1 != null) { buffer += stack1; } + return buffer + " </tbody>\n </table>\n</td>"; +},"useData":true}); +/** + * swagger-client - swagger-client is a javascript client for use with swaggering APIs. + * @version v2.1.4 + * @link http://swagger.io + * @license Apache-2.0 + */ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.SwaggerClient = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ +'use strict'; + +var auth = require('./lib/auth'); +var helpers = require('./lib/helpers'); +var SwaggerClient = require('./lib/client'); +var deprecationWrapper = function (url, options) { + helpers.log('This is deprecated, use "new SwaggerClient" instead.'); + + return new SwaggerClient(url, options); +}; + +/* Here for IE8 Support */ +if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function(obj, start) { + for (var i = (start || 0), j = this.length; i < j; i++) { + if (this[i] === obj) { return i; } + } + return -1; + }; +} + +/* Here for IE8 Support */ +if (!String.prototype.trim) { + String.prototype.trim = function () { + return this.replace(/^\s+|\s+$/g, ''); + }; +} + +/* Here for node 10.x support */ +if (!String.prototype.endsWith) { + String.prototype.endsWith = function(suffix) { + return this.indexOf(suffix, this.length - suffix.length) !== -1; + }; +} + +module.exports = SwaggerClient; + +SwaggerClient.ApiKeyAuthorization = auth.ApiKeyAuthorization; +SwaggerClient.PasswordAuthorization = auth.PasswordAuthorization; +SwaggerClient.CookieAuthorization = auth.CookieAuthorization; +SwaggerClient.SwaggerApi = deprecationWrapper; +SwaggerClient.SwaggerClient = deprecationWrapper; +SwaggerClient.SchemaMarkup = require('./lib/schema-markup'); + +},{"./lib/auth":2,"./lib/client":3,"./lib/helpers":4,"./lib/schema-markup":7}],2:[function(require,module,exports){ +'use strict'; + +var helpers = require('./helpers'); +var btoa = require('btoa'); // jshint ignore:line +var CookieJar = require('cookiejar'); +var _ = { + each: require('lodash-compat/collection/each'), + includes: require('lodash-compat/collection/includes'), + isObject: require('lodash-compat/lang/isObject'), + isArray: require('lodash-compat/lang/isArray') +}; + +/** + * SwaggerAuthorizations applys the correct authorization to an operation being executed + */ +var SwaggerAuthorizations = module.exports.SwaggerAuthorizations = function (authz) { + this.authz = authz || {}; +}; + +/** + * Add auths to the hash + * Will overwrite any existing + * + */ +SwaggerAuthorizations.prototype.add = function (name, auth) { + if(_.isObject(name)) { + for (var key in name) { + this.authz[key] = name[key]; + } + } else if(typeof name === 'string' ){ + this.authz[name] = auth; + } + + return auth; +}; + +SwaggerAuthorizations.prototype.remove = function (name) { + return delete this.authz[name]; +}; + +SwaggerAuthorizations.prototype.apply = function (obj, securities) { + var status = true; + var applyAll = !securities; + var flattenedSecurities = []; + + // Securities could be [ {} ] + _.each(securities, function (obj, key) { + + // Make sure we account for securities being [ str ] + if(typeof key === 'string') { + flattenedSecurities.push(key); + } + + // Flatten keys in to our array + _.each(obj, function (val, key) { + flattenedSecurities.push(key); + }); + }); + + _.each(this.authz, function (auth, authName) { + if(applyAll || _.includes(flattenedSecurities, authName)) { + var newStatus = auth.apply(obj); + status = status && !!newStatus; // logical ORs regarding status + } + }); + + return status; +}; + +/** + * ApiKeyAuthorization allows a query param or header to be injected + */ +var ApiKeyAuthorization = module.exports.ApiKeyAuthorization = function (name, value, type) { + this.name = name; + this.value = value; + this.type = type; +}; + +ApiKeyAuthorization.prototype.apply = function (obj) { + if (this.type === 'query') { + if (obj.url.indexOf('?') > 0) { + obj.url = obj.url + '&' + this.name + '=' + this.value; + } else { + obj.url = obj.url + '?' + this.name + '=' + this.value; + } + + return true; + } else if (this.type === 'header') { + if(typeof obj.headers[this.name] === 'undefined') { + obj.headers[this.name] = this.value; + } + + return true; + } +}; + +var CookieAuthorization = module.exports.CookieAuthorization = function (cookie) { + this.cookie = cookie; +}; + +CookieAuthorization.prototype.apply = function (obj) { + obj.cookieJar = obj.cookieJar || new CookieJar(); + obj.cookieJar.setCookie(this.cookie); + + return true; +}; + +/** + * Password Authorization is a basic auth implementation + */ +var PasswordAuthorization = module.exports.PasswordAuthorization = function (username, password) { + if (arguments.length === 3) { + helpers.log('PasswordAuthorization: the \'name\' argument has been removed, pass only username and password'); + username = arguments[1]; + password = arguments[2]; + } + this.username = username; + this.password = password; +}; + +PasswordAuthorization.prototype.apply = function (obj) { + if(typeof obj.headers.Authorization === 'undefined') { + obj.headers.Authorization = 'Basic ' + btoa(this.username + ':' + this.password); + } + + return true; +}; + +},{"./helpers":4,"btoa":18,"cookiejar":19,"lodash-compat/collection/each":55,"lodash-compat/collection/includes":58,"lodash-compat/lang/isArray":143,"lodash-compat/lang/isObject":147}],3:[function(require,module,exports){ +'use strict'; + +var _ = { + bind: require('lodash-compat/function/bind'), + cloneDeep: require('lodash-compat/lang/cloneDeep'), + find: require('lodash-compat/collection/find'), + forEach: require('lodash-compat/collection/forEach'), + indexOf: require('lodash-compat/array/indexOf'), + isArray: require('lodash-compat/lang/isArray'), + isObject: require('lodash-compat/lang/isObject'), + isFunction: require('lodash-compat/lang/isFunction'), + isPlainObject: require('lodash-compat/lang/isPlainObject'), + isUndefined: require('lodash-compat/lang/isUndefined') +}; +var auth = require('./auth'); +var helpers = require('./helpers'); +var Model = require('./types/model'); +var Operation = require('./types/operation'); +var OperationGroup = require('./types/operationGroup'); +var Resolver = require('./resolver'); +var SwaggerHttp = require('./http'); +var SwaggerSpecConverter = require('./spec-converter'); + +// We have to keep track of the function/property names to avoid collisions for tag names which are used to allow the +// following usage: 'client.{tagName}' +var reservedClientTags = [ + 'apis', + 'authorizationScheme', + 'authorizations', + 'basePath', + 'build', + 'buildFrom1_1Spec', + 'buildFrom1_2Spec', + 'buildFromSpec', + 'clientAuthorizations', + 'convertInfo', + 'debug', + 'defaultErrorCallback', + 'defaultSuccessCallback', + 'fail', + 'failure', + 'finish', + 'help', + 'idFromOp', + 'info', + 'initialize', + 'isBuilt', + 'isValid', + 'modelPropertyMacro', + 'models', + 'modelsArray', + 'options', + 'parameterMacro', + 'parseUri', + 'progress', + 'resourceCount', + 'sampleModels', + 'selfReflect', + 'setConsolidatedModels', + 'spec', + 'supportedSubmitMethods', + 'swaggerRequestHeaders', + 'tagFromLabel', + 'url', + 'useJQuery' +]; +// We have to keep track of the function/property names to avoid collisions for tag names which are used to allow the +// following usage: 'client.apis.{tagName}' +var reservedApiTags = [ + 'apis', + 'asCurl', + 'description', + 'externalDocs', + 'help', + 'label', + 'name', + 'operation', + 'operations', + 'operationsArray', + 'path', + 'tag' +]; +var supportedOperationMethods = ['delete', 'get', 'head', 'options', 'patch', 'post', 'put']; +var SwaggerClient = module.exports = function (url, options) { + this.authorizations = null; + this.authorizationScheme = null; + this.basePath = null; + this.debug = false; + this.info = null; + this.isBuilt = false; + this.isValid = false; + this.modelsArray = []; + this.resourceCount = 0; + this.url = null; + this.useJQuery = false; + this.swaggerObject = {}; + + this.clientAuthorizations = new auth.SwaggerAuthorizations(); + + if (typeof url !== 'undefined') { + return this.initialize(url, options); + } else { + return this; + } +}; + +SwaggerClient.prototype.initialize = function (url, options) { + this.models = {}; + this.sampleModels = {}; + + if (typeof url === 'string') { + this.url = url; + } else if (_.isObject(url)) { + options = url; + this.url = options.url; + } + + options = options || {}; + this.clientAuthorizations.add(options.authorizations); + this.swaggerRequestHeaders = options.swaggerRequestHeaders || 'application/json;charset=utf-8,*/*'; + this.defaultSuccessCallback = options.defaultSuccessCallback || null; + this.defaultErrorCallback = options.defaultErrorCallback || null; + this.modelPropertyMacro = options.modelPropertyMacro || null; + this.parameterMacro = options.parameterMacro || null; + + if (typeof options.success === 'function') { + this.success = options.success; + } + + if (options.useJQuery) { + this.useJQuery = options.useJQuery; + } + + this.options = options || {}; + + this.supportedSubmitMethods = options.supportedSubmitMethods || []; + this.failure = options.failure || function () {}; + this.progress = options.progress || function () {}; + this.spec = _.cloneDeep(options.spec); // Clone so we do not alter the provided document + + if (options.scheme) { + this.scheme = options.scheme; + } + + if (typeof options.success === 'function') { + this.ready = true; + this.build(); + } +}; + +SwaggerClient.prototype.build = function (mock) { + if (this.isBuilt) { + return this; + } + + var self = this; + + this.progress('fetching resource list: ' + this.url); + + var obj = { + useJQuery: this.useJQuery, + url: this.url, + method: 'get', + headers: { + accept: this.swaggerRequestHeaders + }, + on: { + error: function (response) { + if (self.url.substring(0, 4) !== 'http') { + return self.fail('Please specify the protocol for ' + self.url); + } else if (response.status === 0) { + return self.fail('Can\'t read from server. It may not have the appropriate access-control-origin settings.'); + } else if (response.status === 404) { + return self.fail('Can\'t read swagger JSON from ' + self.url); + } else { + return self.fail(response.status + ' : ' + response.statusText + ' ' + self.url); + } + }, + response: function (resp) { + + var responseObj = resp.obj; + if(!responseObj) { + return self.fail('failed to parse JSON/YAML response'); + } + + self.swaggerVersion = responseObj.swaggerVersion; + self.swaggerObject = responseObj; + + if (responseObj.swagger && parseInt(responseObj.swagger) === 2) { + self.swaggerVersion = responseObj.swagger; + + new Resolver().resolve(responseObj, self.url, self.buildFromSpec, self); + + self.isValid = true; + } else { + var converter = new SwaggerSpecConverter(); + self.oldSwaggerObject = self.swaggerObject; + + converter.setDocumentationLocation(self.url); + converter.convert(responseObj, self.clientAuthorizations, function(spec) { + self.swaggerObject = spec; + new Resolver().resolve(spec, self.url, self.buildFromSpec, self); + self.isValid = true; + }); + } + } + } + }; + + if (this.spec) { + self.swaggerObject = this.spec; + setTimeout(function () { + new Resolver().resolve(self.spec, self.buildFromSpec, self); + }, 10); + } else { + this.clientAuthorizations.apply(obj); + + if (mock) { + return obj; + } + + new SwaggerHttp().execute(obj, this.options); + } + + return this; +}; + +SwaggerClient.prototype.buildFromSpec = function (response) { + if (this.isBuilt) { + return this; + } + + this.apis = {}; + this.apisArray = []; + this.basePath = response.basePath || ''; + this.consumes = response.consumes; + this.host = response.host || ''; + this.info = response.info || {}; + this.produces = response.produces; + this.schemes = response.schemes || []; + this.securityDefinitions = response.securityDefinitions; + this.title = response.title || ''; + + if (response.externalDocs) { + this.externalDocs = response.externalDocs; + } + + // legacy support + this.authSchemes = response.securityDefinitions; + + var definedTags = {}; + var k; + + if (Array.isArray(response.tags)) { + definedTags = {}; + + for (k = 0; k < response.tags.length; k++) { + var t = response.tags[k]; + definedTags[t.name] = t; + } + } + + var location; + + if (typeof this.url === 'string') { + location = this.parseUri(this.url); + if (typeof this.scheme === 'undefined' && typeof this.schemes === 'undefined' || this.schemes.length === 0) { + this.scheme = location.scheme || 'http'; + } else if (typeof this.scheme === 'undefined') { + this.scheme = this.schemes[0]; + } + + if (typeof this.host === 'undefined' || this.host === '') { + this.host = location.host; + + if (location.port) { + this.host = this.host + ':' + location.port; + } + } + } + else { + if (typeof this.schemes === 'undefined' || this.schemes.length === 0) { + this.scheme = 'http'; + } + else if (typeof this.scheme === 'undefined') { + this.scheme = this.schemes[0]; + } + } + + this.definitions = response.definitions; + + var key; + + for (key in this.definitions) { + var model = new Model(key, this.definitions[key], this.models, this.modelPropertyMacro); + + if (model) { + this.models[key] = model; + } + } + + // get paths, create functions for each operationId + var self = this; + + // Bind help to 'client.apis' + self.apis.help = _.bind(self.help, self); + + _.forEach(response.paths, function (pathObj, path) { + // Only process a path if it's an object + if (!_.isPlainObject(pathObj)) { + return; + } + + _.forEach(supportedOperationMethods, function (method) { + var operation = pathObj[method]; + + if (_.isUndefined(operation)) { + // Operation does not exist + return; + } else if (!_.isPlainObject(operation)) { + // Operation exists but it is not an Operation Object. Since this is invalid, log it. + helpers.log('The \'' + method + '\' operation for \'' + path + '\' path is not an Operation Object'); + + return; + } + + var tags = operation.tags; + + if (_.isUndefined(tags) || !_.isArray(tags) || tags.length === 0) { + tags = operation.tags = [ 'default' ]; + } + + var operationId = self.idFromOp(path, method, operation); + var operationObject = new Operation(self, + operation.scheme, + operationId, + method, + path, + operation, + self.definitions, + self.models, + self.clientAuthorizations); + + // bind self operation's execute command to the api + _.forEach(tags, function (tag) { + var clientProperty = _.indexOf(reservedClientTags, tag) > -1 ? '_' + tag : tag; + var apiProperty = _.indexOf(reservedApiTags, tag) > -1 ? '_' + tag : tag; + var operationGroup = self[clientProperty]; + + if (clientProperty !== tag) { + helpers.log('The \'' + tag + '\' tag conflicts with a SwaggerClient function/property name. Use \'client.' + + clientProperty + '\' or \'client.apis.' + tag + '\' instead of \'client.' + tag + '\'.'); + } + + if (apiProperty !== tag) { + helpers.log('The \'' + tag + '\' tag conflicts with a SwaggerClient operation function/property name. Use ' + + '\'client.apis.' + apiProperty + '\' instead of \'client.apis.' + tag + '\'.'); + } + + if (_.indexOf(reservedApiTags, operationId) > -1) { + helpers.log('The \'' + operationId + '\' operationId conflicts with a SwaggerClient operation ' + + 'function/property name. Use \'client.apis.' + apiProperty + '._' + operationId + + '\' instead of \'client.apis.' + apiProperty + '.' + operationId + '\'.'); + + operationId = '_' + operationId; + operationObject.nickname = operationId; // So 'client.apis.[tag].operationId.help() works properly + } + + if (_.isUndefined(operationGroup)) { + operationGroup = self[clientProperty] = self.apis[apiProperty] = {}; + + operationGroup.operations = {}; + operationGroup.label = apiProperty; + operationGroup.apis = {}; + + var tagDef = definedTags[tag]; + + if (!_.isUndefined(tagDef)) { + operationGroup.description = tagDef.description; + operationGroup.externalDocs = tagDef.externalDocs; + } + + self[clientProperty].help = _.bind(self.help, operationGroup); + self.apisArray.push(new OperationGroup(tag, operationGroup.description, operationGroup.externalDocs, operationObject)); + } + + // Bind tag help + if (!_.isFunction(operationGroup.help)) { + operationGroup.help = _.bind(self.help, operationGroup); + } + + // bind to the apis object + self.apis[apiProperty][operationId] = operationGroup[operationId] = _.bind(operationObject.execute, + operationObject); + self.apis[apiProperty][operationId].help = operationGroup[operationId].help = _.bind(operationObject.help, + operationObject); + self.apis[apiProperty][operationId].asCurl = operationGroup[operationId].asCurl = _.bind(operationObject.asCurl, + operationObject); + + operationGroup.apis[operationId] = operationGroup.operations[operationId] = operationObject; + + // legacy UI feature + var api = _.find(self.apisArray, function (api) { + return api.tag === tag; + }); + + if (api) { + api.operationsArray.push(operationObject); + } + }); + }); + }); + + this.isBuilt = true; + + if (this.success) { + this.isValid = true; + this.isBuilt = true; + this.success(); + } + + return this; +}; + +SwaggerClient.prototype.parseUri = function (uri) { + var urlParseRE = /^(((([^:\/#\?]+:)?(?:(\/\/)((?:(([^:@\/#\?]+)(?:\:([^:@\/#\?]+))?)@)?(([^:\/#\?\]\[]+|\[[^\/\]@#?]+\])(?:\:([0-9]+))?))?)?)?((\/?(?:[^\/\?#]+\/+)*)([^\?#]*)))?(\?[^#]+)?)(#.*)?/; + var parts = urlParseRE.exec(uri); + + return { + scheme: parts[4].replace(':',''), + host: parts[11], + port: parts[12], + path: parts[15] + }; +}; + +SwaggerClient.prototype.help = function (dontPrint) { + var output = ''; + + if (this instanceof SwaggerClient) { + _.forEach(this.apis, function (api, name) { + if (_.isPlainObject(api)) { + output += 'operations for the \'' + name + '\' tag\n'; + + _.forEach(api.operations, function (operation, name) { + output += ' * ' + name + ': ' + operation.summary + '\n'; + }); + } + }); + } else if (this instanceof OperationGroup || _.isPlainObject(this)) { + output += 'operations for the \'' + this.label + '\' tag\n'; + + _.forEach(this.apis, function (operation, name) { + output += ' * ' + name + ': ' + operation.summary + '\n'; + }); + } + + if (dontPrint) { + return output; + } else { + helpers.log(output); + + return output; + } +}; + +SwaggerClient.prototype.tagFromLabel = function (label) { + return label; +}; + +SwaggerClient.prototype.idFromOp = function (path, httpMethod, op) { + if(!op || !op.operationId) { + op = op || {}; + op.operationId = httpMethod + '_' + path; + } + var opId = op.operationId.replace(/[\s!@#$%^&*()_+=\[{\]};:<>|.\/?,\\'""-]/g, '_') || (path.substring(1) + '_' + httpMethod); + + opId = opId.replace(/((_){2,})/g, '_'); + opId = opId.replace(/^(_)*/g, ''); + opId = opId.replace(/([_])*$/g, ''); + return opId; +}; + +SwaggerClient.prototype.setHost = function (host) { + this.host = host; + + if(this.apis) { + _.forEach(this.apis, function(api) { + if(api.operations) { + _.forEach(api.operations, function(operation) { + operation.host = host; + }); + } + }); + } +}; + +SwaggerClient.prototype.setBasePath = function (basePath) { + this.basePath = basePath; + + if(this.apis) { + _.forEach(this.apis, function(api) { + if(api.operations) { + _.forEach(api.operations, function(operation) { + operation.basePath = basePath; + }); + } + }); + } +}; + +SwaggerClient.prototype.fail = function (message) { + this.failure(message); + + throw message; +}; +},{"./auth":2,"./helpers":4,"./http":5,"./resolver":6,"./spec-converter":8,"./types/model":9,"./types/operation":10,"./types/operationGroup":11,"lodash-compat/array/indexOf":52,"lodash-compat/collection/find":56,"lodash-compat/collection/forEach":57,"lodash-compat/function/bind":61,"lodash-compat/lang/cloneDeep":141,"lodash-compat/lang/isArray":143,"lodash-compat/lang/isFunction":145,"lodash-compat/lang/isObject":147,"lodash-compat/lang/isPlainObject":148,"lodash-compat/lang/isUndefined":151}],4:[function(require,module,exports){ +(function (process){ +'use strict'; + +var _ = { + isPlainObject: require('lodash-compat/lang/isPlainObject'), + indexOf: require('lodash-compat/array/indexOf') +}; + +module.exports.__bind = function (fn, me) { + return function(){ + return fn.apply(me, arguments); + }; +}; + +var log = module.exports.log = function() { + // Only log if available and we're not testing + if (console && process.env.NODE_ENV !== 'test') { + console.log(Array.prototype.slice.call(arguments)[0]); + } +}; + +module.exports.fail = function (message) { + log(message); +}; + +var optionHtml = module.exports.optionHtml = function (label, value) { + return '<tr><td class="optionName">' + label + ':</td><td>' + value + '</td></tr>'; +}; + +var resolveSchema = module.exports.resolveSchema = function (schema) { + if (_.isPlainObject(schema.schema)) { + schema = resolveSchema(schema.schema); + } + + return schema; +}; + +var simpleRef = module.exports.simpleRef = function (name) { + if (typeof name === 'undefined') { + return null; + } + + if (name.indexOf('#/definitions/') === 0) { + return name.substring('#/definitions/'.length); + } else { + return name; + } +}; + + +}).call(this,require('_process')) +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9oZWxwZXJzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgXyA9IHtcbiAgaXNQbGFpbk9iamVjdDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2lzUGxhaW5PYmplY3QnKSxcbiAgaW5kZXhPZjogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9hcnJheS9pbmRleE9mJylcbn07XG5cbm1vZHVsZS5leHBvcnRzLl9fYmluZCA9IGZ1bmN0aW9uIChmbiwgbWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCl7XG4gICAgcmV0dXJuIGZuLmFwcGx5KG1lLCBhcmd1bWVudHMpO1xuICB9O1xufTtcblxudmFyIGxvZyA9IG1vZHVsZS5leHBvcnRzLmxvZyA9IGZ1bmN0aW9uKCkge1xuICAvLyBPbmx5IGxvZyBpZiBhdmFpbGFibGUgYW5kIHdlJ3JlIG5vdCB0ZXN0aW5nXG4gIGlmIChjb25zb2xlICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAndGVzdCcpIHtcbiAgICBjb25zb2xlLmxvZyhBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpWzBdKTtcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMuZmFpbCA9IGZ1bmN0aW9uIChtZXNzYWdlKSB7XG4gIGxvZyhtZXNzYWdlKTtcbn07XG5cbnZhciBvcHRpb25IdG1sID0gbW9kdWxlLmV4cG9ydHMub3B0aW9uSHRtbCA9IGZ1bmN0aW9uIChsYWJlbCwgdmFsdWUpIHtcbiAgcmV0dXJuICc8dHI+PHRkIGNsYXNzPVwib3B0aW9uTmFtZVwiPicgKyBsYWJlbCArICc6PC90ZD48dGQ+JyArIHZhbHVlICsgJzwvdGQ+PC90cj4nO1xufTtcblxudmFyIHJlc29sdmVTY2hlbWEgPSBtb2R1bGUuZXhwb3J0cy5yZXNvbHZlU2NoZW1hID0gZnVuY3Rpb24gKHNjaGVtYSkge1xuICBpZiAoXy5pc1BsYWluT2JqZWN0KHNjaGVtYS5zY2hlbWEpKSB7XG4gICAgc2NoZW1hID0gcmVzb2x2ZVNjaGVtYShzY2hlbWEuc2NoZW1hKTtcbiAgfVxuXG4gIHJldHVybiBzY2hlbWE7XG59O1xuXG52YXIgc2ltcGxlUmVmID0gbW9kdWxlLmV4cG9ydHMuc2ltcGxlUmVmID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgaWYgKHR5cGVvZiBuYW1lID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKG5hbWUuaW5kZXhPZignIy9kZWZpbml0aW9ucy8nKSA9PT0gMCkge1xuICAgIHJldHVybiBuYW1lLnN1YnN0cmluZygnIy9kZWZpbml0aW9ucy8nLmxlbmd0aCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5hbWU7XG4gIH1cbn07XG5cbiJdfQ== +},{"_process":17,"lodash-compat/array/indexOf":52,"lodash-compat/lang/isPlainObject":148}],5:[function(require,module,exports){ +'use strict'; + +var helpers = require('./helpers'); +var jQuery = require('jquery'); +var request = require('superagent'); +var jsyaml = require('js-yaml'); +var _ = { + isObject: require('lodash-compat/lang/isObject') +}; + +/* + * JQueryHttpClient is a light-weight, node or browser HTTP client + */ +var JQueryHttpClient = function () {}; + +/* + * SuperagentHttpClient is a light-weight, node or browser HTTP client + */ +var SuperagentHttpClient = function () {}; + +/** + * SwaggerHttp is a wrapper for executing requests + */ +var SwaggerHttp = module.exports = function () {}; + +SwaggerHttp.prototype.execute = function (obj, opts) { + var client; + + if(opts && opts.client) { + client = opts.client; + } + else { + client = new SuperagentHttpClient(opts); + } + + // legacy support + if ((obj && obj.useJQuery === true) || this.isInternetExplorer()) { + client = new JQueryHttpClient(opts); + } + + var success = obj.on.response; + + var responseInterceptor = function(data) { + if(opts && opts.responseInterceptor) { + data = opts.responseInterceptor.apply(data); + } + success(data); + }; + + obj.on.response = function(data) { + responseInterceptor(data); + }; + + + if (_.isObject(obj) && _.isObject(obj.body)) { + // special processing for file uploads via jquery + if (obj.body.type && obj.body.type === 'formData'){ + obj.contentType = false; + obj.processData = false; + + delete obj.headers['Content-Type']; + } else { + obj.body = JSON.stringify(obj.body); + } + } + client.execute(obj); +}; + +SwaggerHttp.prototype.isInternetExplorer = function () { + var detectedIE = false; + + if (typeof navigator !== 'undefined' && navigator.userAgent) { + var nav = navigator.userAgent.toLowerCase(); + + if (nav.indexOf('msie') !== -1) { + var version = parseInt(nav.split('msie')[1]); + + if (version <= 8) { + detectedIE = true; + } + } + } + + return detectedIE; +}; + +JQueryHttpClient.prototype.execute = function (obj) { + var cb = obj.on; + var request = obj; + + obj.type = obj.method; + obj.cache = false; + delete obj.useJQuery; + + /* + obj.beforeSend = function (xhr) { + var key, results; + if (obj.headers) { + results = []; + for (key in obj.headers) { + if (key.toLowerCase() === 'content-type') { + results.push(obj.contentType = obj.headers[key]); + } else if (key.toLowerCase() === 'accept') { + results.push(obj.accepts = obj.headers[key]); + } else { + results.push(xhr.setRequestHeader(key, obj.headers[key])); + } + } + return results; + } + };*/ + + obj.data = obj.body; + + delete obj.body; + + obj.complete = function (response) { + var headers = {}; + var headerArray = response.getAllResponseHeaders().split('\n'); + + for (var i = 0; i < headerArray.length; i++) { + var toSplit = headerArray[i].trim(); + + if (toSplit.length === 0) { + continue; + } + + var separator = toSplit.indexOf(':'); + + if (separator === -1) { + // Name but no value in the header + headers[toSplit] = null; + + continue; + } + + var name = toSplit.substring(0, separator).trim(); + var value = toSplit.substring(separator + 1).trim(); + + headers[name] = value; + } + + var out = { + url: request.url, + method: request.method, + status: response.status, + statusText: response.statusText, + data: response.responseText, + headers: headers + }; + + try { + var possibleObj = response.responseJSON || jsyaml.safeLoad(response.responseText); + out.obj = (typeof possibleObj === 'string') ? {} : possibleObj; + } catch (ex) { + // do not set out.obj + helpers.log('unable to parse JSON/YAML content'); + } + + // I can throw, or parse null? + out.obj = out.obj || null; + + if (response.status >= 200 && response.status < 300) { + cb.response(out); + } else if (response.status === 0 || (response.status >= 400 && response.status < 599)) { + cb.error(out); + } else { + return cb.response(out); + } + }; + + jQuery.support.cors = true; + + return jQuery.ajax(obj); +}; + +SuperagentHttpClient.prototype.execute = function (obj) { + var method = obj.method.toLowerCase(); + + if (method === 'delete') { + method = 'del'; + } + var headers = obj.headers || {}; + var r = request[method](obj.url); + var name; + for (name in headers) { + r.set(name, headers[name]); + } + + if (obj.body) { + r.send(obj.body); + } + + if(typeof r.buffer === 'function') { + r.buffer(); // force superagent to populate res.text with the raw response data + } + + r.end(function (err, res) { + res = res || { + status: 0, + headers: {error: 'no response from server'} + }; + var response = { + url: obj.url, + method: obj.method, + headers: res.headers + }; + var cb; + + if (!err && res.error) { + err = res.error; + } + + if (err && obj.on && obj.on.error) { + response.obj = err; + response.status = res ? res.status : 500; + response.statusText = res ? res.text : err.message; + cb = obj.on.error; + } else if (res && obj.on && obj.on.response) { + var possibleObj; + + // Already parsed by by superagent? + if(res.body && Object.keys(res.body).length > 0) { + possibleObj = res.body; + } else { + try { + possibleObj = jsyaml.safeLoad(res.text); + // can parse into a string... which we don't need running around in the system + possibleObj = (typeof possibleObj === 'string') ? null : possibleObj; + } catch(e) { + helpers.log('cannot parse JSON/YAML content'); + } + } + + // null means we can't parse into object + response.obj = possibleObj || null; + + response.status = res.status; + response.statusText = res.text; + cb = obj.on.response; + } + response.data = response.statusText; + + if (cb) { + cb(response); + } + }); +}; + +},{"./helpers":4,"jquery":20,"js-yaml":21,"lodash-compat/lang/isObject":147,"superagent":160}],6:[function(require,module,exports){ +'use strict'; + +var SwaggerHttp = require('./http'); +var _ = { + isObject: require('lodash-compat/lang/isObject'), + isArray: require('lodash-compat/lang/isArray') +}; + + +/** + * Resolves a spec's remote references + */ +var Resolver = module.exports = function () {}; + +Resolver.prototype.processAllOf = function(name, definition, resolutionTable, unresolvedRefs, spec) { + var i, location, property; + + definition['x-resolved-from'] = [ '#/definitions/' + name ]; + var allOf = definition.allOf; + // the refs go first + allOf.sort(function(a, b) { + if(a.$ref && b.$ref) { return 0; } + else if(a.$ref) { return -1; } + else { return 1; } + }); + for (i = 0; i < allOf.length; i++) { + property = allOf[i]; + location = '/definitions/' + name + '/allOf'; + this.resolveInline(null, spec, property, resolutionTable, unresolvedRefs, location); + } +}; + +Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) { + var root = arg1, callback = arg2, scope = arg3, location, i; + if(typeof arg1 === 'function') { + root = null; + callback = arg1; + scope = arg2; + } + var _root = root; + this.scope = (scope || this); + this.iteration = this.iteration || 0; + + var name, path, property, propertyName; + var processedCalls = 0, resolvedRefs = {}, unresolvedRefs = {}; + var resolutionTable = []; // store objects for dereferencing + + // definitions + for (name in spec.definitions) { + var definition = spec.definitions[name]; + for (propertyName in definition.properties) { + property = definition.properties[propertyName]; + if(_.isArray(property.allOf)) { + this.processAllOf(name, property, resolutionTable, unresolvedRefs, spec); + } + else { + this.resolveTo(root, property, resolutionTable, '/definitions'); + } + } + + if(definition.allOf) { + this.processAllOf(name, definition, resolutionTable, unresolvedRefs, spec); + } + } + + // operations + for (name in spec.paths) { + var method, operation, responseCode; + path = spec.paths[name]; + + for (method in path) { + // operation reference + if(method === '$ref') { + // location = path[method]; + location = '/paths' + name; + this.resolveInline(root, spec, path, resolutionTable, unresolvedRefs, location); + } + else { + operation = path[method]; + + var parameters = operation.parameters; + for (i in parameters) { + var parameter = parameters[i]; + location = '/paths' + name + '/' + method + '/parameters'; + + if (parameter.in === 'body' && parameter.schema) { + this.resolveTo(root, parameter.schema, resolutionTable, location); + } + + if (parameter.$ref) { + // parameter reference + this.resolveInline(root, spec, parameter, resolutionTable, unresolvedRefs, parameter.$ref); + } + } + + for (responseCode in operation.responses) { + var response = operation.responses[responseCode]; + location = '/paths' + name + '/' + method + '/responses/' + responseCode; + + if(_.isObject(response)) { + if(response.$ref) { + // response reference + this.resolveInline(root, spec, response, resolutionTable, unresolvedRefs, location); + } + if (response.schema) { + this.resolveTo(root, response.schema, resolutionTable, location); + } + } + } + } + } + } + + var expectedCalls = 0, toResolve = []; + // if the root is same as obj[i].root we can resolve locally + var all = resolutionTable; + + var parts; + for(i = 0; i < all.length; i++) { + var a = all[i]; + if(root === a.root) { + if(a.resolveAs === 'ref') { + // resolve any path walking + var joined = ((a.root || '') + '/' + a.key).split('/'); + var normalized = []; + var url = ''; + var k; + + if(a.key.indexOf('../') >= 0) { + for(var j = 0; j < joined.length; j++) { + if(joined[j] === '..') { + normalized = normalized.slice(0, normalized.length-1); + } + else { + normalized.push(joined[j]); + } + } + for(k = 0; k < normalized.length; k ++) { + if(k > 0) { + url += '/'; + } + url += normalized[k]; + } + // we now have to remote resolve this because the path has changed + a.root = url; + toResolve.push(a); + } + else { + parts = a.key.split('#'); + if(parts.length === 2) { + if(parts[0].indexOf('http://') === 0 || parts[0].indexOf('https://') === 0) { + a.root = parts[0]; + } + location = parts[1].split('/'); + var r; + var s = spec; + for(k = 0; k < location.length; k++) { + var part = location[k]; + if(part !== '') { + s = s[part]; + if(typeof s !== 'undefined') { + r = s; + } + else { + r = null; + break; + } + } + } + if(r === null) { + // must resolve this too + toResolve.push(a); + } + } + } + } + else { + if (a.resolveAs === 'inline') { + if(a.key && a.key.indexOf('#') === -1 && a.key.charAt(0) !== '/') { + // handle relative schema + parts = a.root.split('/'); + location = ''; + for(i = 0; i < parts.length - 1; i++) { + location += parts[i] + '/'; + } + location += a.key; + a.root = location; + a.location = ''; + } + toResolve.push(a); + } + } + } + else { + toResolve.push(a); + } + } + expectedCalls = toResolve.length; + + // resolve anything that is local + for(var ii = 0; ii < toResolve.length; ii++) { + (function(item, self) { + if(item.root === null || item.root === root) { + // local resolve + self.resolveItem(spec, _root, resolutionTable, resolvedRefs, unresolvedRefs, item); + processedCalls += 1; + + if(processedCalls === expectedCalls) { + self.finish(spec, root, resolutionTable, resolvedRefs, unresolvedRefs, callback); + } + } + else { + var obj = { + useJQuery: false, // TODO + url: item.root, + method: 'get', + headers: { + accept: self.scope.swaggerRequestHeaders || 'application/json' + }, + on: { + error: function () { + processedCalls += 1; + unresolvedRefs[item.key] = { + root: item.root, + location: item.location + }; + + if (processedCalls === expectedCalls) { + self.finish(spec, _root, resolutionTable, resolvedRefs, unresolvedRefs, callback); + } + }, // jshint ignore:line + response: function (response) { + var swagger = response.obj; + self.resolveItem(swagger, item.root, resolutionTable, resolvedRefs, unresolvedRefs, item); + processedCalls += 1; + + if (processedCalls === expectedCalls) { + self.finish(spec, _root, resolutionTable, resolvedRefs, unresolvedRefs, callback); + } + } + } // jshint ignore:line + }; + + if (scope && scope.clientAuthorizations) { + scope.clientAuthorizations.apply(obj); + } + new SwaggerHttp().execute(obj); + } + }(toResolve[ii], this)); + } + + if (Object.keys(toResolve).length === 0) { + this.finish(spec, _root, resolutionTable, resolvedRefs, unresolvedRefs, callback); + } +}; + +Resolver.prototype.resolveItem = function(spec, root, resolutionTable, resolvedRefs, unresolvedRefs, item) { + var path = item.location; + var location = spec, parts = path.split('/'); + if(path !== '') { + for (var j = 0; j < parts.length; j++) { + var segment = parts[j]; + if (segment.indexOf('~1') !== -1) { + segment = parts[j].replace(/~0/g, '~').replace(/~1/g, '/'); + if (segment.charAt(0) !== '/') { + segment = '/' + segment; + } + } + if (typeof location === 'undefined' || location === null) { + break; + } + if (segment === '' && j === (parts.length - 1) && parts.length > 1) { + location = null; + break; + } + if (segment.length > 0) { + location = location[segment]; + } + } + } + var resolved = item.key; + parts = item.key.split('/'); + var resolvedName = parts[parts.length-1]; + + if(resolvedName.indexOf('#') >= 0) { + resolvedName = resolvedName.split('#')[1]; + } + + if (location !== null && typeof location !== 'undefined') { + resolvedRefs[resolved] = { + name: resolvedName, + obj: location, + key: item.key, + root: item.root + }; + } else { + unresolvedRefs[resolved] = { + root: item.root, + location: item.location + }; + } +}; + +Resolver.prototype.finish = function (spec, root, resolutionTable, resolvedRefs, unresolvedRefs, callback) { + // walk resolution table and replace with resolved refs + var ref; + for (ref in resolutionTable) { + var item = resolutionTable[ref]; + + var key = item.key; + var resolvedTo = resolvedRefs[key]; + if (resolvedTo) { + spec.definitions = spec.definitions || {}; + if (item.resolveAs === 'ref') { + for (key in resolvedTo.obj) { + var abs = this.retainRoot(resolvedTo.obj[key], item.root); + } + spec.definitions[resolvedTo.name] = resolvedTo.obj; + item.obj.$ref = '#/definitions/' + resolvedTo.name; + } else if (item.resolveAs === 'inline') { + var targetObj = item.obj; + targetObj['x-resolved-from'] = [ item.key ]; + delete targetObj.$ref; + + for (key in resolvedTo.obj) { + var abs = this.retainRoot(resolvedTo.obj[key], item.root); + targetObj[key] = abs; + } + } + } + } + var existingUnresolved = this.countUnresolvedRefs(spec); + + if(existingUnresolved.length === 0 || this.iteration > 5) { + this.resolveAllOf(spec.definitions); + callback.call(this.scope, spec, unresolvedRefs); + } + else { + this.iteration += 1; + this.resolve(spec, root, callback, this.scope); + } +}; + +Resolver.prototype.countUnresolvedRefs = function(spec) { + var i; + var refs = this.getRefs(spec); + var keys = []; + var unresolvedKeys = []; + for(i in refs) { + if(i.indexOf('#') === 0) { + keys.push(i.substring(1)); + } + else { + unresolvedKeys.push(i); + } + } + + // verify possible keys + for (i = 0; i < keys.length; i++) { + var part = keys[i]; + var parts = part.split('/'); + var obj = spec; + + for (var k = 0; k < parts.length; k++) { + var key = parts[k]; + if(key !== '') { + obj = obj[key]; + if(typeof obj === 'undefined') { + unresolvedKeys.push(part); + break; + } + } + } + } + return unresolvedKeys.length; +}; + +Resolver.prototype.getRefs = function(spec, obj) { + obj = obj || spec; + var output = {}; + for(var key in obj) { + if (!obj.hasOwnProperty(key)) { + continue; + } + var item = obj[key]; + if(key === '$ref' && typeof item === 'string') { + output[item] = null; + } + else if(_.isObject(item)) { + var o = this.getRefs(item); + for(var k in o) { + output[k] = null; + } + } + } + return output; +}; + +Resolver.prototype.retainRoot = function(obj, root) { + // walk object and look for relative $refs + for(var key in obj) { + var item = obj[key]; + if(key === '$ref' && typeof item === 'string') { + // stop and inspect + if(item.indexOf('http://') !== 0 && item.indexOf('https://') !== 0) { + if(item.indexOf('#') !== 0) { + item = '#' + item; + } + item = (root || '') + item; + obj[key] = item; + } + } + else if(_.isObject(item)) { + this.retainRoot(item, root); + } + } + return obj; +}; + +/** + * immediately in-lines local refs, queues remote refs + * for inline resolution + */ +Resolver.prototype.resolveInline = function (root, spec, property, resolutionTable, unresolvedRefs, location) { + var key = property.$ref, ref = property.$ref, i, p, p2, rs; + var rootTrimmed = false; + if (ref) { + if(ref.indexOf('../') === 0) { + // reset root + p = ref.split('../'); + p2 = root.split('/'); + ref = ''; + for(i = 0; i < p.length; i++) { + if(p[i] === '') { + p2 = p2.slice(0, p2.length-1); + } + else { + ref += p[i]; + } + } + root = ''; + for(i = 0; i < p2.length - 1; i++) { + if(i > 0) { root += '/'; } + root += p2[i]; + } + rootTrimmed = true; + } + if(ref.indexOf('#') >= 0) { + if(ref.indexOf('/') === 0) { + rs = ref.split('#'); + p = root.split('//'); + p2 = p[1].split('/'); + root = p[0] + '//' + p2[0] + rs[0]; + location = rs[1]; + } + else { + rs = ref.split('#'); + if(rs[0] !== '') { + p2 = root.split('/'); + p2 = p2.slice(0, p2.length - 1); + if(!rootTrimmed) { + root = ''; + for (var k = 0; k < p2.length; k++) { + if(k > 0) { root += '/'; } + root += p2[k]; + } + } + root += '/' + ref.split('#')[0]; + } + location = rs[1]; + } + } + if (ref.indexOf('http') === 0) { + if(ref.indexOf('#') >= 0) { + root = ref.split('#')[0]; + location = ref.split('#')[1]; + } + else { + root = ref; + location = ''; + } + resolutionTable.push({obj: property, resolveAs: 'inline', root: root, key: key, location: location}); + } else if (ref.indexOf('#') === 0) { + location = ref.split('#')[1]; + resolutionTable.push({obj: property, resolveAs: 'inline', root: root, key: key, location: location}); + } + else { + resolutionTable.push({obj: property, resolveAs: 'inline', root: root, key: key, location: location}); + } + } else if (property.type === 'array') { + this.resolveTo(root, property.items, resolutionTable, location); + } +}; + +Resolver.prototype.resolveTo = function (root, property, resolutionTable, location) { + var sp, i; + var ref = property.$ref; + var lroot = root; + if (typeof ref !== 'undefined') { + if(ref.indexOf('#') >= 0) { + var parts = ref.split('#'); + + // #/definitions/foo + // foo.json#/bar + if(parts[0] && ref.indexOf('/') === 0) { + + } + else if(parts[0] && ref.indexOf('http') === 0) { + + } + else if(parts[0] && parts[0].length > 0) { + // relative file + sp = root.split('/'); + lroot = ''; + for(i = 0; i < sp.length - 1; i++) { + lroot += sp[i] + '/'; + } + lroot += parts[0]; + } + else { + + } + + location = parts[1]; + } + else { + // relative file + sp = root.split('/'); + lroot = ''; + for(i = 0; i < sp.length - 1; i++) { + lroot += sp[i] + '/'; + } + lroot += ref; + location = ''; + } + resolutionTable.push({ + obj: property, resolveAs: 'ref', root: lroot, key: ref, location: location + }); + } else if (property.type === 'array') { + var items = property.items; + this.resolveTo(root, items, resolutionTable, location); + } +}; + +Resolver.prototype.resolveAllOf = function(spec, obj, depth) { + depth = depth || 0; + obj = obj || spec; + var name; + for(var key in obj) { + if (!obj.hasOwnProperty(key)) { + continue; + } + var item = obj[key]; + if(item === null) { + throw new TypeError('Swagger 2.0 does not support null types (' + obj + '). See https://github.com/swagger-api/swagger-spec/issues/229.'); + } + if(typeof item === 'object') { + this.resolveAllOf(spec, item, depth + 1); + } + if(item && typeof item.allOf !== 'undefined') { + var allOf = item.allOf; + if(_.isArray(allOf)) { + var output = {}; + output['x-composed'] = true; + if (typeof item['x-resolved-from'] !== 'undefined') { + output['x-resolved-from'] = item['x-resolved-from']; + } + output.properties = {}; + if ( item.example ){ + output.example = item.example; + } + for(var i = 0; i < allOf.length; i++) { + var component = allOf[i]; + var source = 'self'; + if(typeof component['x-resolved-from'] !== 'undefined') { + source = component['x-resolved-from'][0]; + } + + for(var part in component) { + if(!output.hasOwnProperty(part)) { + output[part] = JSON.parse(JSON.stringify(component[part])); + if(part === 'properties') { + for(name in output[part]) { + output[part][name]['x-resolved-from'] = source; + } + } + } + else { + if(part === 'properties') { + var properties = component[part]; + for(name in properties) { + output.properties[name] = JSON.parse(JSON.stringify(properties[name])); + var resolvedFrom = properties[name]['x-resolved-from']; + if (typeof resolvedFrom === 'undefined' || resolvedFrom === 'self') { + resolvedFrom = source; + } + output.properties[name]['x-resolved-from'] = resolvedFrom; + } + } + else if(part === 'required') { + // merge & dedup the required array + var a = output.required.concat(component[part]); + for(var k = 0; k < a.length; ++k) { + for(var j = k + 1; j < a.length; ++j) { + if(a[k] === a[j]) { a.splice(j--, 1); } + } + } + output.required = a; + } + else if(part === 'x-resolved-from') { + output['x-resolved-from'].push(source); + } + else { + // TODO: need to merge this property + // console.log('what to do with ' + part) + } + } + } + } + obj[key] = output; + } + } + if(_.isObject(item)) { + this.resolveAllOf(spec, item, depth + 1); + } + } +}; + +},{"./http":5,"lodash-compat/lang/isArray":143,"lodash-compat/lang/isObject":147}],7:[function(require,module,exports){ +'use strict'; + +var Helpers = require('./helpers'); + +var _ = { + isPlainObject: require('lodash-compat/lang/isPlainObject'), + isUndefined: require('lodash-compat/lang/isUndefined'), + isArray: require('lodash-compat/lang/isArray'), + isObject: require('lodash-compat/lang/isObject'), + isEmpty: require('lodash-compat/lang/isEmpty'), + map: require('lodash-compat/collection/map'), + indexOf: require('lodash-compat/array/indexOf'), + cloneDeep: require('lodash-compat/lang/cloneDeep'), + keys: require('lodash-compat/object/keys'), + forEach: require('lodash-compat/collection/forEach') +}; + +module.exports.optionHtml = optionHtml; +module.exports.typeFromJsonSchema = typeFromJsonSchema; +module.exports.getStringSignature = getStringSignature; +module.exports.schemaToHTML = schemaToHTML; +module.exports.schemaToJSON = schemaToJSON; + +function optionHtml(label, value) { + return '<tr><td class="optionName">' + label + ':</td><td>' + value + '</td></tr>'; +} + +function typeFromJsonSchema(type, format) { + var str; + + if (type === 'integer' && format === 'int32') { + str = 'integer'; + } else if (type === 'integer' && format === 'int64') { + str = 'long'; + } else if (type === 'integer' && typeof format === 'undefined') { + str = 'long'; + } else if (type === 'string' && format === 'date-time') { + str = 'date-time'; + } else if (type === 'string' && format === 'date') { + str = 'date'; + } else if (type === 'number' && format === 'float') { + str = 'float'; + } else if (type === 'number' && format === 'double') { + str = 'double'; + } else if (type === 'number' && typeof format === 'undefined') { + str = 'double'; + } else if (type === 'boolean') { + str = 'boolean'; + } else if (type === 'string') { + str = 'string'; + } + + return str; +} + +function getStringSignature(obj, baseComponent) { + var str = ''; + + if (typeof obj.$ref !== 'undefined') { + str += Helpers.simpleRef(obj.$ref); + } else if (typeof obj.type === 'undefined') { + str += 'object'; + } else if (obj.type === 'array') { + if (baseComponent) { + str += getStringSignature((obj.items || obj.$ref || {})); + } else { + str += 'Array['; + str += getStringSignature((obj.items || obj.$ref || {})); + str += ']'; + } + } else if (obj.type === 'integer' && obj.format === 'int32') { + str += 'integer'; + } else if (obj.type === 'integer' && obj.format === 'int64') { + str += 'long'; + } else if (obj.type === 'integer' && typeof obj.format === 'undefined') { + str += 'long'; + } else if (obj.type === 'string' && obj.format === 'date-time') { + str += 'date-time'; + } else if (obj.type === 'string' && obj.format === 'date') { + str += 'date'; + } else if (obj.type === 'string' && typeof obj.format === 'undefined') { + str += 'string'; + } else if (obj.type === 'number' && obj.format === 'float') { + str += 'float'; + } else if (obj.type === 'number' && obj.format === 'double') { + str += 'double'; + } else if (obj.type === 'number' && typeof obj.format === 'undefined') { + str += 'double'; + } else if (obj.type === 'boolean') { + str += 'boolean'; + } else if (obj.$ref) { + str += Helpers.simpleRef(obj.$ref); + } else { + str += obj.type; + } + + return str; +} + +function schemaToJSON(schema, models, modelsToIgnore, modelPropertyMacro) { + // Resolve the schema (Handle nested schemas) + schema = Helpers.resolveSchema(schema); + + if(typeof modelPropertyMacro !== 'function') { + modelPropertyMacro = function(prop){ + return (prop || {}).default; + }; + } + + modelsToIgnore= modelsToIgnore || {}; + + var type = schema.type || 'object'; + var format = schema.format; + var model; + var output; + + if (schema.example) { + output = schema.example; + } else if (_.isUndefined(schema.items) && _.isArray(schema.enum)) { + output = schema.enum[0]; + } + + if (_.isUndefined(output)) { + if (schema.$ref) { + model = models[Helpers.simpleRef(schema.$ref)]; + + if (!_.isUndefined(model)) { + if (_.isUndefined(modelsToIgnore[model.name])) { + modelsToIgnore[model.name] = model; + output = schemaToJSON(model.definition, models, modelsToIgnore, modelPropertyMacro); + delete modelsToIgnore[model.name]; + } else { + if (model.type === 'array') { + output = []; + } else { + output = {}; + } + } + } + } else if (!_.isUndefined(schema.default)) { + output = schema.default; + } else if (type === 'string') { + if (format === 'date-time') { + output = new Date().toISOString(); + } else if (format === 'date') { + output = new Date().toISOString().split('T')[0]; + } else { + output = 'string'; + } + } else if (type === 'integer') { + output = 0; + } else if (type === 'number') { + output = 0.0; + } else if (type === 'boolean') { + output = true; + } else if (type === 'object') { + output = {}; + + _.forEach(schema.properties, function (property, name) { + var cProperty = _.cloneDeep(property); + + // Allow macro to set the default value + cProperty.default = modelPropertyMacro(property); + + output[name] = schemaToJSON(cProperty, models, modelsToIgnore, modelPropertyMacro); + }); + } else if (type === 'array') { + output = []; + + if (_.isArray(schema.items)) { + _.forEach(schema.items, function (item) { + output.push(schemaToJSON(item, models, modelsToIgnore, modelPropertyMacro)); + }); + } else if (_.isPlainObject(schema.items)) { + output.push(schemaToJSON(schema.items, models, modelsToIgnore, modelPropertyMacro)); + } else if (_.isUndefined(schema.items)) { + output.push({}); + } else { + Helpers.log('Array type\'s \'items\' property is not an array or an object, cannot process'); + } + } + } + + return output; +} + +function schemaToHTML(name, schema, models, modelPropertyMacro) { + + var strongOpen = '<span class="strong">'; + var strongClose = '</span>'; + + // Allow for ignoring the 'name' argument.... shifting the rest + if(_.isObject(arguments[0])) { + name = void 0; + schema = arguments[0]; + models = arguments[1]; + modelPropertyMacro = arguments[2]; + } + + models = models || {}; + + // Resolve the schema (Handle nested schemas) + schema = Helpers.resolveSchema(schema); + + // Return for empty object + if(_.isEmpty(schema)) { + return strongOpen + 'Empty' + strongClose; + } + + // Dereference $ref from 'models' + if(typeof schema.$ref === 'string') { + name = Helpers.simpleRef(schema.$ref); + schema = models[name]; + if(typeof schema === 'undefined') + { + return strongOpen + name + ' is not defined!' + strongClose; + } + } + + if(typeof name !== 'string') { + name = schema.title || 'Inline Model'; + } + + // If we are a Model object... adjust accordingly + if(schema.definition) { + schema = schema.definition; + } + + if(typeof modelPropertyMacro !== 'function') { + modelPropertyMacro = function(prop){ + return (prop || {}).default; + }; + } + + var references = {}; + var seenModels = []; + var inlineModels = 0; + + + + // Generate current HTML + var html = processModel(schema, name); + + // Generate references HTML + while (_.keys(references).length > 0) { + /* jshint ignore:start */ + _.forEach(references, function (schema, name) { + var seenModel = _.indexOf(seenModels, name) > -1; + + delete references[name]; + + if (!seenModel) { + seenModels.push(name); + + html += '<br />' + processModel(schema, name); + } + }); + /* jshint ignore:end */ + } + + return html; + + ///////////////////////////////// + + function addReference(schema, name, skipRef) { + var modelName = name; + var model; + + if (schema.$ref) { + modelName = schema.title || Helpers.simpleRef(schema.$ref); + model = models[modelName]; + } else if (_.isUndefined(name)) { + modelName = schema.title || 'Inline Model ' + (++inlineModels); + model = {definition: schema}; + } + + if (skipRef !== true) { + references[modelName] = _.isUndefined(model) ? {} : model.definition; + } + + return modelName; + } + + function primitiveToHTML(schema) { + var html = '<span class="propType">'; + var type = schema.type || 'object'; + + if (schema.$ref) { + html += addReference(schema, Helpers.simpleRef(schema.$ref)); + } else if (type === 'object') { + if (!_.isUndefined(schema.properties)) { + html += addReference(schema); + } else { + html += 'object'; + } + } else if (type === 'array') { + html += 'Array['; + + if (_.isArray(schema.items)) { + html += _.map(schema.items, addReference).join(','); + } else if (_.isPlainObject(schema.items)) { + if (_.isUndefined(schema.items.$ref)) { + if (!_.isUndefined(schema.items.type) && _.indexOf(['array', 'object'], schema.items.type) === -1) { + html += schema.items.type; + } else { + html += addReference(schema.items); + } + } else { + html += addReference(schema.items, Helpers.simpleRef(schema.items.$ref)); + } + } else { + Helpers.log('Array type\'s \'items\' schema is not an array or an object, cannot process'); + html += 'object'; + } + + html += ']'; + } else { + html += schema.type; + } + + html += '</span>'; + + return html; + } + + function primitiveToOptionsHTML(schema, html) { + var options = ''; + var type = schema.type || 'object'; + var isArray = type === 'array'; + + if (isArray) { + if (_.isPlainObject(schema.items) && !_.isUndefined(schema.items.type)) { + type = schema.items.type; + } else { + type = 'object'; + } + } + + if (!_.isUndefined(schema.default)) { + options += optionHtml('Default', schema.default); + } + + switch (type) { + case 'string': + if (schema.minLength) { + options += optionHtml('Min. Length', schema.minLength); + } + + if (schema.maxLength) { + options += optionHtml('Max. Length', schema.maxLength); + } + + if (schema.pattern) { + options += optionHtml('Reg. Exp.', schema.pattern); + } + break; + case 'integer': + case 'number': + if (schema.minimum) { + options += optionHtml('Min. Value', schema.minimum); + } + + if (schema.exclusiveMinimum) { + options += optionHtml('Exclusive Min.', 'true'); + } + + if (schema.maximum) { + options += optionHtml('Max. Value', schema.maximum); + } + + if (schema.exclusiveMaximum) { + options += optionHtml('Exclusive Max.', 'true'); + } + + if (schema.multipleOf) { + options += optionHtml('Multiple Of', schema.multipleOf); + } + + break; + } + + if (isArray) { + if (schema.minItems) { + options += optionHtml('Min. Items', schema.minItems); + } + + if (schema.maxItems) { + options += optionHtml('Max. Items', schema.maxItems); + } + + if (schema.uniqueItems) { + options += optionHtml('Unique Items', 'true'); + } + + if (schema.collectionFormat) { + options += optionHtml('Coll. Format', schema.collectionFormat); + } + } + + if (_.isUndefined(schema.items)) { + if (_.isArray(schema.enum)) { + var enumString; + + if (type === 'number' || type === 'integer') { + enumString = schema.enum.join(', '); + } else { + enumString = '"' + schema.enum.join('", "') + '"'; + } + + options += optionHtml('Enum', enumString); + } + } + + if (options.length > 0) { + html = '<span class="propWrap">' + html + '<table class="optionsWrapper"><tr><th colspan="2">' + type + '</th></tr>' + options + '</table></span>'; + } + + return html; + } + + function processModel(schema, name) { + var type = schema.type || 'object'; + var isArray = schema.type === 'array'; + var html = strongOpen + name + ' ' + (isArray ? '[' : '{') + strongClose; + + if (name) { + seenModels.push(name); + } + + if (isArray) { + if (_.isArray(schema.items)) { + html += '<div>' + _.map(schema.items, function (item) { + var type = item.type || 'object'; + + if (_.isUndefined(item.$ref)) { + if (_.indexOf(['array', 'object'], type) > -1) { + if (type === 'object' && _.isUndefined(item.properties)) { + return 'object'; + } else { + return addReference(item); + } + } else { + return primitiveToOptionsHTML(item, type); + } + } else { + return addReference(item, Helpers.simpleRef(item.$ref)); + } + }).join(',</div><div>'); + } else if (_.isPlainObject(schema.items)) { + if (_.isUndefined(schema.items.$ref)) { + if (_.indexOf(['array', 'object'], schema.items.type || 'object') > -1) { + if ((_.isUndefined(schema.items.type) || schema.items.type === 'object') && _.isUndefined(schema.items.properties)) { + html += '<div>object</div>'; + } else { + html += '<div>' + addReference(schema.items) + '</div>'; + } + } else { + html += '<div>' + primitiveToOptionsHTML(schema.items, schema.items.type) + '</div>'; + } + } else { + html += '<div>' + addReference(schema.items, Helpers.simpleRef(schema.items.$ref)) + '</div>'; + } + } else { + Helpers.log('Array type\'s \'items\' property is not an array or an object, cannot process'); + html += '<div>object</div>'; + } + } else { + if (schema.$ref) { + html += '<div>' + addReference(schema, name) + '</div>'; + } else if (type === 'object') { + html += '<div>'; + + if (_.isPlainObject(schema.properties)) { + html += _.map(schema.properties, function (property, name) { + var propertyIsRequired = (_.indexOf(schema.required, name) >= 0); + var cProperty = _.cloneDeep(property); + + var requiredClass = propertyIsRequired ? 'required' : ''; + var html = '<span class="propName ' + requiredClass + '">' + name + '</span> ('; + var model; + + // Allow macro to set the default value + cProperty.default = modelPropertyMacro(cProperty); + + // Resolve the schema (Handle nested schemas) + cProperty = Helpers.resolveSchema(cProperty); + + // We need to handle property references to primitives (Issue 339) + if (!_.isUndefined(cProperty.$ref)) { + model = models[Helpers.simpleRef(cProperty.$ref)]; + + if (!_.isUndefined(model) && _.indexOf([undefined, 'array', 'object'], model.definition.type) === -1) { + // Use referenced schema + cProperty = Helpers.resolveSchema(model.definition); + } + } + + html += primitiveToHTML(cProperty); + + if(!propertyIsRequired) { + html += ', <span class="propOptKey">optional</span>'; + } + + html += ')'; + + if (!_.isUndefined(cProperty.description)) { + html += ': ' + '<span class="propDesc">' + cProperty.description + '</span>'; + } + + if (cProperty.enum) { + html += ' = <span class="propVals">[\'' + cProperty.enum.join('\', \'') + '\']</span>'; + } + + return primitiveToOptionsHTML(cProperty, html); + }).join(',</div><div>'); + } + + html += '</div>'; + } else { + html += '<div>' + primitiveToOptionsHTML(schema, type) + '</div>'; + } + } + + return html + strongOpen + (isArray ? ']' : '}') + strongClose; + } +} + +},{"./helpers":4,"lodash-compat/array/indexOf":52,"lodash-compat/collection/forEach":57,"lodash-compat/collection/map":59,"lodash-compat/lang/cloneDeep":141,"lodash-compat/lang/isArray":143,"lodash-compat/lang/isEmpty":144,"lodash-compat/lang/isObject":147,"lodash-compat/lang/isPlainObject":148,"lodash-compat/lang/isUndefined":151,"lodash-compat/object/keys":152}],8:[function(require,module,exports){ +'use strict'; + +var SwaggerHttp = require('./http'); +var _ = { + isObject: require('lodash-compat/lang/isObject') +}; + +var SwaggerSpecConverter = module.exports = function () { + this.errors = []; + this.warnings = []; + this.modelMap = {}; +}; + +SwaggerSpecConverter.prototype.setDocumentationLocation = function (location) { + this.docLocation = location; +}; + +/** + * converts a resource listing OR api declaration + **/ +SwaggerSpecConverter.prototype.convert = function (obj, clientAuthorizations, callback) { + // not a valid spec + if(!obj || !Array.isArray(obj.apis)) { + return this.finish(callback, null); + } + this.clientAuthorizations = clientAuthorizations; + + // create a new swagger object to return + var swagger = { swagger: '2.0' }; + + swagger.originalVersion = obj.swaggerVersion; + + // add the info + this.apiInfo(obj, swagger); + + // add security definitions + this.securityDefinitions(obj, swagger); + + // take basePath into account + if (obj.basePath) { + this.setDocumentationLocation(obj.basePath); + } + + // see if this is a single-file swagger definition + var isSingleFileSwagger = false; + var i; + for(i = 0; i < obj.apis.length; i++) { + var api = obj.apis[i]; + if(Array.isArray(api.operations)) { + isSingleFileSwagger = true; + } + } + if(isSingleFileSwagger) { + this.declaration(obj, swagger); + this.finish(callback, swagger); + } + else { + this.resourceListing(obj, swagger, callback); + } +}; + +SwaggerSpecConverter.prototype.declaration = function(obj, swagger) { + var name, i, p, pos; + if(!obj.apis) { + return; + } + + if (obj.basePath.indexOf('http://') === 0) { + p = obj.basePath.substring('http://'.length); + pos = p.indexOf('/'); + if (pos > 0) { + swagger.host = p.substring(0, pos); + swagger.basePath = p.substring(pos); + } + else { + swagger.host = p; + swagger.basePath = '/'; + } + } else if (obj.basePath.indexOf('https://') === 0) { + p = obj.basePath.substring('https://'.length); + pos = p.indexOf('/'); + if (pos > 0) { + swagger.host = p.substring(0, pos); + swagger.basePath = p.substring(pos); + } + else { + swagger.host = p; + swagger.basePath = '/'; + } + } else { + swagger.basePath = obj.basePath; + } + + var resourceLevelAuth; + if(obj.authorizations) { + resourceLevelAuth = obj.authorizations; + } + if(obj.consumes) { + swagger.consumes = obj.consumes; + } + if(obj.produces) { + swagger.produces = obj.produces; + } + + // build a mapping of id to name for 1.0 model resolutions + if(_.isObject(obj)) { + for(name in obj.models) { + var existingModel = obj.models[name]; + var key = (existingModel.id || name); + this.modelMap[key] = name; + } + } + + for(i = 0; i < obj.apis.length; i++) { + var api = obj.apis[i]; + var path = api.path; + var operations = api.operations; + this.operations(path, obj.resourcePath, operations, resourceLevelAuth, swagger); + } + + var models = obj.models || {}; + this.models(models, swagger); +}; + +SwaggerSpecConverter.prototype.models = function(obj, swagger) { + if(!_.isObject(obj)) { + return; + } + var name; + + swagger.definitions = swagger.definitions || {}; + for(name in obj) { + var existingModel = obj[name]; + var _enum = []; + var schema = { properties: {}}; + var propertyName; + for(propertyName in existingModel.properties) { + var existingProperty = existingModel.properties[propertyName]; + var property = {}; + this.dataType(existingProperty, property); + if(existingProperty.description) { + property.description = existingProperty.description; + } + if(existingProperty['enum']) { + property['enum'] = existingProperty['enum']; + } + if(typeof existingProperty.required === 'boolean' && existingProperty.required === true) { + _enum.push(propertyName); + } + if(typeof existingProperty.required === 'string' && existingProperty.required === 'true') { + _enum.push(propertyName); + } + schema.properties[propertyName] = property; + } + if(_enum.length > 0) { + schema['enum'] = _enum; + } + + schema.required = existingModel.required; + swagger.definitions[name] = schema; + } +}; + +SwaggerSpecConverter.prototype.extractTag = function(resourcePath) { + var pathString = resourcePath || 'default'; + if(pathString.indexOf('http:') === 0 || pathString.indexOf('https:') === 0) { + pathString = pathString.split(['/']); + pathString = pathString[pathString.length -1].substring(); + } + if(pathString.endsWith('.json')) { + pathString = pathString.substring(0, pathString.length - '.json'.length); + } + return pathString.replace('/',''); +}; + +SwaggerSpecConverter.prototype.operations = function(path, resourcePath, obj, resourceLevelAuth, swagger) { + if(!Array.isArray(obj)) { + return; + } + var i; + + if(!swagger.paths) { + swagger.paths = {}; + } + + var pathObj = swagger.paths[path] || {}; + var tag = this.extractTag(resourcePath); + swagger.tags = swagger.tags || []; + var matched = false; + for(i = 0; i < swagger.tags.length; i++) { + var tagObject = swagger.tags[i]; + if(tagObject.name === tag) { + matched = true; + } + } + if(!matched) { + swagger.tags.push({name: tag}); + } + + for(i = 0; i < obj.length; i++) { + var existingOperation = obj[i]; + var method = (existingOperation.method || existingOperation.httpMethod).toLowerCase(); + var operation = {tags: [tag]}; + var existingAuthorizations = existingOperation.authorizations; + + if(existingAuthorizations && Object.keys(existingAuthorizations).length === 0) { + existingAuthorizations = resourceLevelAuth; + } + + if(typeof existingAuthorizations !== 'undefined') { + var scopesObject; + for(var key in existingAuthorizations) { + operation.security = operation.security || []; + var scopes = existingAuthorizations[key]; + if(scopes) { + var securityScopes = []; + for(var j in scopes) { + securityScopes.push(scopes[j].scope); + } + scopesObject = {}; + scopesObject[key] = securityScopes; + operation.security.push(scopesObject); + } + else { + scopesObject = {}; + scopesObject[key] = []; + operation.security.push(scopesObject); + } + } + } + + if(existingOperation.consumes) { + operation.consumes = existingOperation.consumes; + } + else if(swagger.consumes) { + operation.consumes = swagger.consumes; + } + if(existingOperation.produces) { + operation.produces = existingOperation.produces; + } + else if(swagger.produces) { + operation.produces = swagger.produces; + } + if(existingOperation.summary) { + operation.summary = existingOperation.summary; + } + if(existingOperation.notes) { + operation.description = existingOperation.notes; + } + if(existingOperation.nickname) { + operation.operationId = existingOperation.nickname; + } + if(existingOperation.deprecated) { + operation.deprecated = existingOperation.deprecated; + } + + this.authorizations(existingAuthorizations, swagger); + this.parameters(operation, existingOperation.parameters, swagger); + this.responseMessages(operation, existingOperation, swagger); + + pathObj[method] = operation; + } + + swagger.paths[path] = pathObj; +}; + +SwaggerSpecConverter.prototype.responseMessages = function(operation, existingOperation) { + if(!_.isObject(existingOperation)) { + return; + } + // build default response from the operation (1.x) + var defaultResponse = {}; + this.dataType(existingOperation, defaultResponse); + // TODO: look into the real problem of rendering responses in swagger-ui + // ....should reponseType have an implicit schema? + if(!defaultResponse.schema && defaultResponse.type) { + defaultResponse = {schema: defaultResponse}; + } + + operation.responses = operation.responses || {}; + + // grab from responseMessages (1.2) + var has200 = false; + if(Array.isArray(existingOperation.responseMessages)) { + var i; + var existingResponses = existingOperation.responseMessages; + for(i = 0; i < existingResponses.length; i++) { + var existingResponse = existingResponses[i]; + var response = { description: existingResponse.message }; + if(existingResponse.code === 200) { + has200 = true; + } + // Convert responseModel -> schema{$ref: responseModel} + if(existingResponse.responseModel) { + response.schema = {'$ref': existingResponse.responseModel}; + } + operation.responses['' + existingResponse.code] = response; + } + } + + if(has200) { + operation.responses['default'] = defaultResponse; + } + else { + operation.responses['200'] = defaultResponse; + } +}; + +SwaggerSpecConverter.prototype.authorizations = function(obj) { + // TODO + if(!_.isObject(obj)) { + return; + } +}; + +SwaggerSpecConverter.prototype.parameters = function(operation, obj) { + if(!Array.isArray(obj)) { + return; + } + var i; + for(i = 0; i < obj.length; i++) { + var existingParameter = obj[i]; + var parameter = {}; + parameter.name = existingParameter.name; + parameter.description = existingParameter.description; + parameter.required = existingParameter.required; + parameter.in = existingParameter.paramType; + + // per #168 + if(parameter.in === 'body') { + parameter.name = 'body'; + } + if(parameter.in === 'form') { + parameter.in = 'formData'; + } + + if(existingParameter.enum) { + parameter.enum = existingParameter.enum; + } + + if(existingParameter.allowMultiple === true || existingParameter.allowMultiple === 'true') { + var innerType = {}; + this.dataType(existingParameter, innerType); + parameter.type = 'array'; + parameter.items = innerType; + + if(existingParameter.allowableValues) { + var av = existingParameter.allowableValues; + if(av.valueType === 'LIST') { + parameter['enum'] = av.values; + } + } + } + else { + this.dataType(existingParameter, parameter); + } + + operation.parameters = operation.parameters || []; + operation.parameters.push(parameter); + } +}; + +SwaggerSpecConverter.prototype.dataType = function(source, target) { + if(!_.isObject(source)) { + return; + } + + if(source.minimum) { + target.minimum = source.minimum; + } + if(source.maximum) { + target.maximum = source.maximum; + } + if (source.format) { + target.format = source.format; + } + + // default can be 'false' + if(typeof source.defaultValue !== 'undefined') { + target.default = source.defaultValue; + } + + var jsonSchemaType = this.toJsonSchema(source); + if(jsonSchemaType) { + target = target || {}; + if(jsonSchemaType.type) { + target.type = jsonSchemaType.type; + } + if(jsonSchemaType.format) { + target.format = jsonSchemaType.format; + } + if(jsonSchemaType.$ref) { + target.schema = {$ref: jsonSchemaType.$ref}; + } + if(jsonSchemaType.items) { + target.items = jsonSchemaType.items; + } + } +}; + +SwaggerSpecConverter.prototype.toJsonSchema = function(source) { + if(!source) { + return 'object'; + } + var detectedType = (source.type || source.dataType || source.responseClass || ''); + var lcType = detectedType.toLowerCase(); + var format = (source.format || '').toLowerCase(); + + if(lcType.indexOf('list[') === 0) { + var innerType = detectedType.substring(5, detectedType.length - 1); + var jsonType = this.toJsonSchema({type: innerType}); + return {type: 'array', items: jsonType}; + } + else if(lcType === 'int' || (lcType === 'integer' && format === 'int32')) + {return {type: 'integer', format: 'int32'};} + else if(lcType === 'long' || (lcType === 'integer' && format === 'int64')) + {return {type: 'integer', format: 'int64'};} + else if(lcType === 'integer') + {return {type: 'integer', format: 'int64'};} + else if(lcType === 'float' || (lcType === 'number' && format === 'float')) + {return {type: 'number', format: 'float'};} + else if(lcType === 'double' || (lcType === 'number' && format === 'double')) + {return {type: 'number', format: 'double'};} + else if((lcType === 'string' && format === 'date-time') || (lcType === 'date')) + {return {type: 'string', format: 'date-time'};} + else if(lcType === 'string') + {return {type: 'string'};} + else if(lcType === 'file') + {return {type: 'file'};} + else if(lcType === 'boolean') + {return {type: 'boolean'};} + else if(lcType === 'array' || lcType === 'list') { + if(source.items) { + var it = this.toJsonSchema(source.items); + return {type: 'array', items: it}; + } + else { + return {type: 'array', items: {type: 'object'}}; + } + } + else if(source.$ref) { + return {$ref: '#/definitions/' + this.modelMap[source.$ref] || source.$ref}; + } + else if(lcType === 'void' || lcType === '') + {return {};} + else { + return {$ref: '#/definitions/' + this.modelMap[source.type] || source.type}; + } +}; + +SwaggerSpecConverter.prototype.resourceListing = function(obj, swagger, callback) { + var i; + var processedCount = 0; // jshint ignore:line + var self = this; // jshint ignore:line + var expectedCount = obj.apis.length; + var _swagger = swagger; // jshint ignore:line + + if(expectedCount === 0) { + this.finish(callback, swagger); + } + + for(i = 0; i < expectedCount; i++) { + var api = obj.apis[i]; + var path = api.path; + var absolutePath = this.getAbsolutePath(obj.swaggerVersion, this.docLocation, path); + + if(api.description) { + swagger.tags = swagger.tags || []; + swagger.tags.push({ + name : this.extractTag(api.path), + description : api.description || '' + }); + } + var http = { + url: absolutePath, + headers: {accept: 'application/json'}, + on: {}, + method: 'get' + }; + /* jshint ignore:start */ + http.on.response = function(data) { + processedCount += 1; + var obj = data.obj; + if(obj) { + self.declaration(obj, _swagger); + } + if(processedCount === expectedCount) { + self.finish(callback, _swagger); + } + }; + http.on.error = function(data) { + console.error(data); + processedCount += 1; + if(processedCount === expectedCount) { + self.finish(callback, _swagger); + } + }; + /* jshint ignore:end */ + + if(this.clientAuthorizations && typeof this.clientAuthorizations.apply === 'function') { + this.clientAuthorizations.apply(http); + } + + new SwaggerHttp().execute(http); + } +}; + +SwaggerSpecConverter.prototype.getAbsolutePath = function(version, docLocation, path) { + if(version === '1.0') { + if(docLocation.endsWith('.json')) { + // get root path + var pos = docLocation.lastIndexOf('/'); + if(pos > 0) { + docLocation = docLocation.substring(0, pos); + } + } + } + + var location = docLocation; + if(path.indexOf('http://') === 0 || path.indexOf('https://') === 0) { + location = path; + } + else { + if(docLocation.endsWith('/')) { + location = docLocation.substring(0, docLocation.length - 1); + } + location += path; + } + location = location.replace('{format}', 'json'); + return location; +}; + +SwaggerSpecConverter.prototype.securityDefinitions = function(obj, swagger) { + if(obj.authorizations) { + var name; + for(name in obj.authorizations) { + var isValid = false; + var securityDefinition = {}; + var definition = obj.authorizations[name]; + if(definition.type === 'apiKey') { + securityDefinition.type = 'apiKey'; + securityDefinition.in = definition.passAs; + securityDefinition.name = definition.keyname || name; + isValid = true; + } + else if(definition.type === 'oauth2') { + var existingScopes = definition.scopes || []; + var scopes = {}; + var i; + for(i in existingScopes) { + var scope = existingScopes[i]; + scopes[scope.scope] = scope.description; + } + securityDefinition.type = 'oauth2'; + if(i > 0) { + securityDefinition.scopes = scopes; + } + if(definition.grantTypes) { + if(definition.grantTypes.implicit) { + var implicit = definition.grantTypes.implicit; + securityDefinition.flow = 'implicit'; + securityDefinition.authorizationUrl = implicit.loginEndpoint; + isValid = true; + } + /* jshint ignore:start */ + if(definition.grantTypes['authorization_code']) { + if(!securityDefinition.flow) { + // cannot set if flow is already defined + var authCode = definition.grantTypes['authorization_code']; + securityDefinition.flow = 'accessCode'; + securityDefinition.authorizationUrl = authCode.tokenRequestEndpoint.url; + securityDefinition.tokenUrl = authCode.tokenEndpoint.url; + isValid = true; + } + } + /* jshint ignore:end */ + } + } + if(isValid) { + swagger.securityDefinitions = swagger.securityDefinitions || {}; + swagger.securityDefinitions[name] = securityDefinition; + } + } + } +}; + +SwaggerSpecConverter.prototype.apiInfo = function(obj, swagger) { + // info section + if(obj.info) { + var info = obj.info; + swagger.info = {}; + + if(info.contact) { + swagger.info.contact = {}; + swagger.info.contact.email = info.contact; + } + if(info.description) { + swagger.info.description = info.description; + } + if(info.title) { + swagger.info.title = info.title; + } + if(info.termsOfServiceUrl) { + swagger.info.termsOfService = info.termsOfServiceUrl; + } + if(info.license || info.licenseUrl) { + swagger.license = {}; + if(info.license) { + swagger.license.name = info.license; + } + if(info.licenseUrl) { + swagger.license.url = info.licenseUrl; + } + } + } + else { + this.warnings.push('missing info section'); + } +}; + +SwaggerSpecConverter.prototype.finish = function (callback, obj) { + callback(obj); +}; + +},{"./http":5,"lodash-compat/lang/isObject":147}],9:[function(require,module,exports){ +'use strict'; + +var _ = { + isPlainObject: require('lodash-compat/lang/isPlainObject'), + isString: require('lodash-compat/lang/isString'), +}; + +var SchemaMarkup = require('../schema-markup.js'); +var jsyaml = require('js-yaml'); + +var Model = module.exports = function (name, definition, models, modelPropertyMacro) { + this.definition = definition || {}; + this.isArray = definition.type === 'array'; + this.models = models || {}; + this.name = definition.title || name || 'Inline Model'; + this.modelPropertyMacro = modelPropertyMacro || function (property) { + return property.default; + }; + + return this; +}; + +Model.prototype.createJSONSample = Model.prototype.getSampleValue = function (modelsToIgnore) { + modelsToIgnore = modelsToIgnore || {}; + + modelsToIgnore[this.name] = this; + + // Response support + if (this.examples && _.isPlainObject(this.examples) && this.examples['application/json']) { + this.definition.example = this.examples['application/json']; + + if (_.isString(this.definition.example)) { + this.definition.example = jsyaml.safeLoad(this.definition.example); + } + } else if (!this.definition.example) { + this.definition.example = this.examples; + } + + return SchemaMarkup.schemaToJSON(this.definition, this.models, modelsToIgnore, this.modelPropertyMacro); +}; + +Model.prototype.getMockSignature = function () { + return SchemaMarkup.schemaToHTML(this.name, this.definition, this.models, this.modelPropertyMacro); +}; + +},{"../schema-markup.js":7,"js-yaml":21,"lodash-compat/lang/isPlainObject":148,"lodash-compat/lang/isString":149}],10:[function(require,module,exports){ +'use strict'; + +var _ = { + cloneDeep: require('lodash-compat/lang/cloneDeep'), + isUndefined: require('lodash-compat/lang/isUndefined'), + isEmpty: require('lodash-compat/lang/isEmpty'), + isObject: require('lodash-compat/lang/isObject') +}; +var helpers = require('../helpers'); +var Model = require('./model'); +var SwaggerHttp = require('../http'); + +var Operation = module.exports = function (parent, scheme, operationId, httpMethod, path, args, definitions, models, clientAuthorizations) { + var errors = []; + + parent = parent || {}; + args = args || {}; + + if(parent && parent.options) { + this.client = parent.options.client || null; + this.responseInterceptor = parent.options.responseInterceptor || null; + } + this.authorizations = args.security; + this.basePath = parent.basePath || '/'; + this.clientAuthorizations = clientAuthorizations; + this.consumes = args.consumes || parent.consumes || ['application/json']; + this.produces = args.produces || parent.produces || ['application/json']; + this.deprecated = args.deprecated; + this.description = args.description; + this.host = parent.host || 'localhost'; + this.method = (httpMethod || errors.push('Operation ' + operationId + ' is missing method.')); + this.models = models || {}; + this.nickname = (operationId || errors.push('Operations must have a nickname.')); + this.operation = args; + this.operations = {}; + this.parameters = args !== null ? (args.parameters || []) : {}; + this.parent = parent; + this.path = (path || errors.push('Operation ' + this.nickname + ' is missing path.')); + this.responses = (args.responses || {}); + this.scheme = scheme || parent.scheme || 'http'; + this.schemes = args.schemes || parent.schemes; + this.security = args.security; + this.summary = args.summary || ''; + this.type = null; + this.useJQuery = parent.useJQuery; + this.parameterMacro = parent.parameterMacro || function (operation, parameter) { + return parameter.default; + }; + + this.inlineModels = []; + + if (typeof this.deprecated === 'string') { + switch(this.deprecated.toLowerCase()) { + case 'true': case 'yes': case '1': { + this.deprecated = true; + break; + } + + case 'false': case 'no': case '0': case null: { + this.deprecated = false; + break; + } + + default: this.deprecated = Boolean(this.deprecated); + } + } + + var i, model; + + if (definitions) { + // add to global models + var key; + + for (key in definitions) { + model = new Model(key, definitions[key], this.models, parent.modelPropertyMacro); + + if (model) { + this.models[key] = model; + } + } + } + else { + definitions = {}; + } + + for (i = 0; i < this.parameters.length; i++) { + var param = this.parameters[i]; + + // Allow macro to set the default value + param.default = this.parameterMacro(this, param); + + if (param.type === 'array') { + param.isList = true; + param.allowMultiple = true; + // the enum can be defined at the items level + if (param.items && param.items.enum) { + param['enum'] = param.items.enum; + } + } + + var innerType = this.getType(param); + + if (innerType && innerType.toString().toLowerCase() === 'boolean') { + param.allowableValues = {}; + param.isList = true; + param['enum'] = [true, false]; // use actual primitives + } + + if (typeof param['enum'] !== 'undefined') { + var id; + + param.allowableValues = {}; + param.allowableValues.values = []; + param.allowableValues.descriptiveValues = []; + + for (id = 0; id < param['enum'].length; id++) { + var value = param['enum'][id]; + var isDefault = (value === param.default || value+'' === param.default); + + param.allowableValues.values.push(value); + // Always have string for descriptive values.... + param.allowableValues.descriptiveValues.push({value : value+'', isDefault: isDefault}); + } + } + + if (param.type === 'array') { + innerType = [innerType]; + + if (typeof param.allowableValues === 'undefined') { + // can't show as a list if no values to select from + delete param.isList; + delete param.allowMultiple; + } + } + + param.signature = this.getModelSignature(innerType, this.models).toString(); + param.sampleJSON = this.getModelSampleJSON(innerType, this.models); + param.responseClassSignature = param.signature; + } + + var defaultResponseCode, response, responses = this.responses; + + if (responses['200']) { + response = responses['200']; + defaultResponseCode = '200'; + } else if (responses['201']) { + response = responses['201']; + defaultResponseCode = '201'; + } else if (responses['202']) { + response = responses['202']; + defaultResponseCode = '202'; + } else if (responses['203']) { + response = responses['203']; + defaultResponseCode = '203'; + } else if (responses['204']) { + response = responses['204']; + defaultResponseCode = '204'; + } else if (responses['205']) { + response = responses['205']; + defaultResponseCode = '205'; + } else if (responses['206']) { + response = responses['206']; + defaultResponseCode = '206'; + } else if (responses['default']) { + response = responses['default']; + defaultResponseCode = 'default'; + } + + if (response && response.schema) { + var resolvedModel = this.resolveModel(response.schema, definitions); + var successResponse; + + delete responses[defaultResponseCode]; + + if (resolvedModel) { + this.successResponse = {}; + successResponse = this.successResponse[defaultResponseCode] = resolvedModel; + } else if (!response.schema.type || response.schema.type === 'object' || response.schema.type === 'array') { + // Inline model + this.successResponse = {}; + successResponse = this.successResponse[defaultResponseCode] = new Model(undefined, response.schema || {}, this.models, parent.modelPropertyMacro); + } else { + // Primitive + this.successResponse = {}; + successResponse = this.successResponse[defaultResponseCode] = response.schema; + } + + if (successResponse) { + // Attach response properties + if (response.description) { + successResponse.description = response.description; + } + + if (response.examples) { + successResponse.examples = response.examples; + } + + if (response.headers) { + successResponse.headers = response.headers; + } + } + + this.type = response; + } + + if (errors.length > 0) { + if (this.resource && this.resource.api && this.resource.api.fail) { + this.resource.api.fail(errors); + } + } + + return this; +}; + +Operation.prototype.isDefaultArrayItemValue = function(value, param) { + if (param.default && Array.isArray(param.default)) { + return param.default.indexOf(value) !== -1; + } + return value === param.default; +}; + +Operation.prototype.getType = function (param) { + var type = param.type; + var format = param.format; + var isArray = false; + var str; + + if (type === 'integer' && format === 'int32') { + str = 'integer'; + } else if (type === 'integer' && format === 'int64') { + str = 'long'; + } else if (type === 'integer') { + str = 'integer'; + } else if (type === 'string') { + if (format === 'date-time') { + str = 'date-time'; + } else if (format === 'date') { + str = 'date'; + } else { + str = 'string'; + } + } else if (type === 'number' && format === 'float') { + str = 'float'; + } else if (type === 'number' && format === 'double') { + str = 'double'; + } else if (type === 'number') { + str = 'double'; + } else if (type === 'boolean') { + str = 'boolean'; + } else if (type === 'array') { + isArray = true; + + if (param.items) { + str = this.getType(param.items); + } + } + + if (param.$ref) { + str = helpers.simpleRef(param.$ref); + } + + var schema = param.schema; + + if (schema) { + var ref = schema.$ref; + + if (ref) { + ref = helpers.simpleRef(ref); + + if (isArray) { + return [ ref ]; + } else { + return ref; + } + } else { + // If inline schema, we add it our interal hash -> which gives us it's ID (int) + if(schema.type === 'object') { + return this.addInlineModel(schema); + } + return this.getType(schema); + } + } + if (isArray) { + return [ str ]; + } else { + return str; + } +}; + +/** + * adds an inline schema (model) to a hash, where we can ref it later + * @param {object} schema a schema + * @return {number} the ID of the schema being added, or null + **/ +Operation.prototype.addInlineModel = function (schema) { + var len = this.inlineModels.length; + var model = this.resolveModel(schema, {}); + if(model) { + this.inlineModels.push(model); + return 'Inline Model '+len; // return string ref of the inline model (used with #getInlineModel) + } + return null; // report errors? +}; + +/** + * gets the internal ref to an inline model + * @param {string} inline_str a string reference to an inline model + * @return {Model} the model being referenced. Or null + **/ +Operation.prototype.getInlineModel = function(inlineStr) { + if(/^Inline Model \d+$/.test(inlineStr)) { + var id = parseInt(inlineStr.substr('Inline Model'.length).trim(),10); // + var model = this.inlineModels[id]; + return model; + } + // I'm returning null here, should I rather throw an error? + return null; +}; + +Operation.prototype.resolveModel = function (schema, definitions) { + if (typeof schema.$ref !== 'undefined') { + var ref = schema.$ref; + + if (ref.indexOf('#/definitions/') === 0) { + ref = ref.substring('#/definitions/'.length); + } + + if (definitions[ref]) { + return new Model(ref, definitions[ref], this.models, this.parent.modelPropertyMacro); + } + // schema must at least be an object to get resolved to an inline Model + } else if (schema && typeof schema === 'object' && + (schema.type === 'object' || _.isUndefined(schema.type))) { + return new Model(undefined, schema, this.models, this.parent.modelPropertyMacro); + } + + return null; +}; + +Operation.prototype.help = function (dontPrint) { + var out = this.nickname + ': ' + this.summary + '\n'; + + for (var i = 0; i < this.parameters.length; i++) { + var param = this.parameters[i]; + var typeInfo = param.signature; + + out += '\n * ' + param.name + ' (' + typeInfo + '): ' + param.description; + } + + if (typeof dontPrint === 'undefined') { + helpers.log(out); + } + + return out; +}; + +Operation.prototype.getModelSignature = function (type, definitions) { + var isPrimitive, listType; + + if (type instanceof Array) { + listType = true; + type = type[0]; + } + + // Convert undefined to string of 'undefined' + if (typeof type === 'undefined') { + type = 'undefined'; + isPrimitive = true; + + } else if (definitions[type]){ + // a model def exists? + type = definitions[type]; /* Model */ + isPrimitive = false; + + } else if (this.getInlineModel(type)) { + type = this.getInlineModel(type); /* Model */ + isPrimitive = false; + + } else { + // We default to primitive + isPrimitive = true; + } + + if (isPrimitive) { + if (listType) { + return 'Array[' + type + ']'; + } else { + return type.toString(); + } + } else { + if (listType) { + return 'Array[' + type.getMockSignature() + ']'; + } else { + return type.getMockSignature(); + } + } +}; + +Operation.prototype.supportHeaderParams = function () { + return true; +}; + +Operation.prototype.supportedSubmitMethods = function () { + return this.parent.supportedSubmitMethods; +}; + +Operation.prototype.getHeaderParams = function (args) { + var headers = this.setContentTypes(args, {}); + + for (var i = 0; i < this.parameters.length; i++) { + var param = this.parameters[i]; + + if (typeof args[param.name] !== 'undefined') { + if (param.in === 'header') { + var value = args[param.name]; + + if (Array.isArray(value)) { + value = value.toString(); + } + + headers[param.name] = value; + } + } + } + + return headers; +}; + +Operation.prototype.urlify = function (args) { + var formParams = {}; + var requestUrl = this.path; + var querystring = ''; // grab params from the args, build the querystring along the way + + for (var i = 0; i < this.parameters.length; i++) { + var param = this.parameters[i]; + + if (typeof args[param.name] !== 'undefined') { + if (param.in === 'path') { + var reg = new RegExp('\{' + param.name + '\}', 'gi'); + var value = args[param.name]; + + if (Array.isArray(value)) { + value = this.encodePathCollection(param.collectionFormat, param.name, value); + } else { + value = this.encodePathParam(value); + } + + requestUrl = requestUrl.replace(reg, value); + } else if (param.in === 'query' && typeof args[param.name] !== 'undefined') { + if (querystring === '') { + querystring += '?'; + } else { + querystring += '&'; + } + + if (typeof param.collectionFormat !== 'undefined') { + var qp = args[param.name]; + + if (Array.isArray(qp)) { + querystring += this.encodeQueryCollection(param.collectionFormat, param.name, qp); + } else { + querystring += this.encodeQueryParam(param.name) + '=' + this.encodeQueryParam(args[param.name]); + } + } else { + querystring += this.encodeQueryParam(param.name) + '=' + this.encodeQueryParam(args[param.name]); + } + } else if (param.in === 'formData') { + formParams[param.name] = args[param.name]; + } + } + } + var url = this.scheme + '://' + this.host; + + if (this.basePath !== '/') { + url += this.basePath; + } + return url + requestUrl + querystring; +}; + +Operation.prototype.getMissingParams = function (args) { + var missingParams = []; // check required params, track the ones that are missing + var i; + + for (i = 0; i < this.parameters.length; i++) { + var param = this.parameters[i]; + + if (param.required === true) { + if (typeof args[param.name] === 'undefined') { + missingParams = param.name; + } + } + } + + return missingParams; +}; + +Operation.prototype.getBody = function (headers, args, opts) { + var formParams = {}, body, key, value, hasBody = false; + + for (var i = 0; i < this.parameters.length; i++) { + var param = this.parameters[i]; + + if (typeof args[param.name] !== 'undefined') { + if (param.in === 'body') { + body = args[param.name]; + } else if (param.in === 'formData') { + formParams[param.name] = args[param.name]; + } + } + else { + if(param.in === 'body') { + hasBody = true; + } + } + } + + // if body is null and hasBody is true, AND a JSON body is requested, send empty {} + if(hasBody && typeof body === 'undefined') { + var contentType = headers['Content-Type']; + if(contentType && contentType.indexOf('application/json') === 0) { + body = '{}'; + } + } + + // handle form params + if (headers['Content-Type'] === 'application/x-www-form-urlencoded') { + var encoded = ''; + + for (key in formParams) { + value = formParams[key]; + + if (typeof value !== 'undefined') { + if (encoded !== '') { + encoded += '&'; + } + + encoded += encodeURIComponent(key) + '=' + encodeURIComponent(value); + } + } + + body = encoded; + } else if (headers['Content-Type'] && headers['Content-Type'].indexOf('multipart/form-data') >= 0) { + if (opts.useJQuery) { + var bodyParam = new FormData(); + + bodyParam.type = 'formData'; + + for (key in formParams) { + value = args[key]; + + if (typeof value !== 'undefined') { + // required for jquery file upload + if (value.type === 'file' && value.value) { + delete headers['Content-Type']; + + bodyParam.append(key, value.value); + } else { + bodyParam.append(key, value); + } + } + } + + body = bodyParam; + } + } + + return body; +}; + +/** + * gets sample response for a single operation + **/ +Operation.prototype.getModelSampleJSON = function (type, models) { + var listType, sampleJson, innerType; + models = models || {}; + + listType = (type instanceof Array); + innerType = listType ? type[0] : type; + + if(models[innerType]) { + sampleJson = models[innerType].createJSONSample(); + } else if (this.getInlineModel(innerType)){ + sampleJson = this.getInlineModel(innerType).createJSONSample(); // may return null, if type isn't correct + } + + + if (sampleJson) { + sampleJson = listType ? [sampleJson] : sampleJson; + + if (typeof sampleJson === 'string') { + return sampleJson; + } else if (_.isObject(sampleJson)) { + var t = sampleJson; + + if (sampleJson instanceof Array && sampleJson.length > 0) { + t = sampleJson[0]; + } + + if (t.nodeName) { + var xmlString = new XMLSerializer().serializeToString(t); + + return this.formatXml(xmlString); + } else { + return JSON.stringify(sampleJson, null, 2); + } + } else { + return sampleJson; + } + } +}; + +/** + * legacy binding + **/ +Operation.prototype.do = function (args, opts, callback, error, parent) { + return this.execute(args, opts, callback, error, parent); +}; + +/** + * executes an operation + **/ +Operation.prototype.execute = function (arg1, arg2, arg3, arg4, parent) { + var args = arg1 || {}; + var opts = {}, success, error; + + if (_.isObject(arg2)) { + opts = arg2; + success = arg3; + error = arg4; + } + + if(this.client) { + opts.client = this.client; + } + if(this.responseInterceptor) { + opts.responseInterceptor = this.responseInterceptor; + } + + + if (typeof arg2 === 'function') { + success = arg2; + error = arg3; + } + + success = (success || this.parent.defaultSuccessCallback || helpers.log); + error = (error || this.parent.defaultErrorCallback || helpers.log); + + + if (typeof opts.useJQuery === 'undefined') { + opts.useJQuery = this.useJQuery; + } + var missingParams = this.getMissingParams(args); + + if (missingParams.length > 0) { + var message = 'missing required params: ' + missingParams; + + helpers.fail(message); + error(message); + + return; + } + + var allHeaders = this.getHeaderParams(args); + var contentTypeHeaders = this.setContentTypes(args, opts); + var headers = {}, attrname; + + for (attrname in allHeaders) { headers[attrname] = allHeaders[attrname]; } + for (attrname in contentTypeHeaders) { headers[attrname] = contentTypeHeaders[attrname]; } + + var body = this.getBody(contentTypeHeaders, args, opts); + var url = this.urlify(args); + + if(url.indexOf('.{format}') > 0) { + if(headers) { + var format = headers.Accept || headers.accept; + if(format && format.indexOf('json') > 0) { + url = url.replace('.{format}', '.json'); + } + else if(format && format.indexOf('xml') > 0) { + url = url.replace('.{format}', '.xml'); + } + } + } + + var obj = { + url: url, + method: this.method.toUpperCase(), + body: body, + useJQuery: opts.useJQuery, + headers: headers, + on: { + response: function (response) { + return success(response, parent); + }, + error: function (response) { + return error(response, parent); + } + } + }; + + this.clientAuthorizations.apply(obj, this.operation.security); + if (opts.mock === true) { + return obj; + } else { + new SwaggerHttp().execute(obj, opts); + } +}; + +function itemByPriority(col, itemPriority) { + + // No priorities? return first... + if(_.isEmpty(itemPriority)) { + return col[0]; + } + + for (var i = 0, len = itemPriority.length; i < len; i++) { + if(col.indexOf(itemPriority[i]) > -1) { + return itemPriority[i]; + } + } + + // Otherwise return first + return col[0]; +} + +Operation.prototype.setContentTypes = function (args, opts) { + // default type + var allDefinedParams = this.parameters; + var body; + var consumes = args.parameterContentType || itemByPriority(this.consumes, ['application/json', 'application/yaml']); + var accepts = opts.responseContentType || itemByPriority(this.produces, ['application/json', 'application/yaml']); + var definedFileParams = []; + var definedFormParams = []; + var headers = {}; + var i; + + // get params from the operation and set them in definedFileParams, definedFormParams, headers + for (i = 0; i < allDefinedParams.length; i++) { + var param = allDefinedParams[i]; + + if (param.in === 'formData') { + if (param.type === 'file') { + definedFileParams.push(param); + } else { + definedFormParams.push(param); + } + } else if (param.in === 'header' && opts) { + var key = param.name; + var headerValue = opts[param.name]; + + if (typeof opts[param.name] !== 'undefined') { + headers[key] = headerValue; + } + } else if (param.in === 'body' && typeof args[param.name] !== 'undefined') { + body = args[param.name]; + } + } + + // if there's a body, need to set the consumes header via requestContentType + if (this.method === 'post' || this.method === 'put' || this.method === 'patch' || + (this.method === 'delete' && body) ) { + if (opts.requestContentType) { + consumes = opts.requestContentType; + } + // if any form params, content type must be set + if (definedFormParams.length > 0) { + if (opts.requestContentType) { // override if set + consumes = opts.requestContentType; + } else if (definedFileParams.length > 0) { // if a file, must be multipart/form-data + consumes = 'multipart/form-data'; + } else { // default to x-www-from-urlencoded + consumes = 'application/x-www-form-urlencoded'; + } + } + } + else { + consumes = null; + } + + if (consumes && this.consumes) { + if (this.consumes.indexOf(consumes) === -1) { + helpers.log('server doesn\'t consume ' + consumes + ', try ' + JSON.stringify(this.consumes)); + } + } + + if (!this.matchesAccept(accepts)) { + helpers.log('server can\'t produce ' + accepts); + } + + if ((consumes && body !== '') || (consumes === 'application/x-www-form-urlencoded')) { + headers['Content-Type'] = consumes; + } + + if (accepts) { + headers.Accept = accepts; + } + + return headers; +}; + +/** + * Returns true if the request accepts header matches anything in this.produces. + * If this.produces contains * / *, ignore the accept header. + * @param {string=} accepts The client request accept header. + * @return {boolean} + */ +Operation.prototype.matchesAccept = function(accepts) { + // no accepts or produces, no problem! + if (!accepts || !this.produces) { + return true; + } + return this.produces.indexOf(accepts) !== -1 || this.produces.indexOf('*/*') !== -1; +}; + +Operation.prototype.asCurl = function (args1, args2) { + var opts = {mock: true}; + if (typeof args2 === 'object') { + for (var argKey in args2) { + opts[argKey] = args2[argKey]; + } + } + var obj = this.execute(args1, opts); + + this.clientAuthorizations.apply(obj); + + var results = []; + + results.push('-X ' + this.method.toUpperCase()); + + if (obj.headers) { + var key; + + for (key in obj.headers) { + results.push('--header "' + key + ': ' + obj.headers[key] + '"'); + } + } + + if (obj.body) { + var body; + + if (_.isObject(obj.body)) { + body = JSON.stringify(obj.body); + } else { + body = obj.body; + } + + results.push('-d "' + body.replace(/"/g, '\\"') + '"'); + } + + return 'curl ' + (results.join(' ')) + ' "' + obj.url + '"'; +}; + +Operation.prototype.encodePathCollection = function (type, name, value) { + var encoded = ''; + var i; + var separator = ''; + + if (type === 'ssv') { + separator = '%20'; + } else if (type === 'tsv') { + separator = '\\t'; + } else if (type === 'pipes') { + separator = '|'; + } else { + separator = ','; + } + + for (i = 0; i < value.length; i++) { + if (i === 0) { + encoded = this.encodeQueryParam(value[i]); + } else { + encoded += separator + this.encodeQueryParam(value[i]); + } + } + + return encoded; +}; + +Operation.prototype.encodeQueryCollection = function (type, name, value) { + var encoded = ''; + var i; + + if (type === 'default' || type === 'multi') { + for (i = 0; i < value.length; i++) { + if (i > 0) {encoded += '&';} + + encoded += this.encodeQueryParam(name) + '=' + this.encodeQueryParam(value[i]); + } + } else { + var separator = ''; + + if (type === 'csv') { + separator = ','; + } else if (type === 'ssv') { + separator = '%20'; + } else if (type === 'tsv') { + separator = '\\t'; + } else if (type === 'pipes') { + separator = '|'; + } else if (type === 'brackets') { + for (i = 0; i < value.length; i++) { + if (i !== 0) { + encoded += '&'; + } + + encoded += this.encodeQueryParam(name) + '[]=' + this.encodeQueryParam(value[i]); + } + } + + if (separator !== '') { + for (i = 0; i < value.length; i++) { + if (i === 0) { + encoded = this.encodeQueryParam(name) + '=' + this.encodeQueryParam(value[i]); + } else { + encoded += separator + this.encodeQueryParam(value[i]); + } + } + } + } + + return encoded; +}; + +Operation.prototype.encodeQueryParam = function (arg) { + return encodeURIComponent(arg); +}; + +/** + * TODO revisit, might not want to leave '/' + **/ +Operation.prototype.encodePathParam = function (pathParam) { + return encodeURIComponent(pathParam); +}; + +},{"../helpers":4,"../http":5,"./model":9,"lodash-compat/lang/cloneDeep":141,"lodash-compat/lang/isEmpty":144,"lodash-compat/lang/isObject":147,"lodash-compat/lang/isUndefined":151}],11:[function(require,module,exports){ +'use strict'; + +var OperationGroup = module.exports = function (tag, description, externalDocs, operation) { + this.description = description; + this.externalDocs = externalDocs; + this.name = tag; + this.operation = operation; + this.operationsArray = []; + this.path = tag; + this.tag = tag; +}; + +OperationGroup.prototype.sort = function () { + +}; + + +},{}],12:[function(require,module,exports){ + +},{}],13:[function(require,module,exports){ +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org> + * @license MIT + */ + +var base64 = require('base64-js') +var ieee754 = require('ieee754') +var isArray = require('is-array') + +exports.Buffer = Buffer +exports.SlowBuffer = SlowBuffer +exports.INSPECT_MAX_BYTES = 50 +Buffer.poolSize = 8192 // not used by this implementation + +var rootParent = {} + +/** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Use Object implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * Note: + * + * - Implementation must support adding new properties to `Uint8Array` instances. + * Firefox 4-29 lacked support, fixed in Firefox 30+. + * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. + * + * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. + * + * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of + * incorrect length in some situations. + * + * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they will + * get the Object implementation, which is slower but will work correctly. + */ +Buffer.TYPED_ARRAY_SUPPORT = (function () { + function Foo () {} + try { + var buf = new ArrayBuffer(0) + var arr = new Uint8Array(buf) + arr.foo = function () { return 42 } + arr.constructor = Foo + return arr.foo() === 42 && // typed array instances can be augmented + arr.constructor === Foo && // constructor can be set + typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` + new Uint8Array(1).subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` + } catch (e) { + return false + } +})() + +function kMaxLength () { + return Buffer.TYPED_ARRAY_SUPPORT + ? 0x7fffffff + : 0x3fffffff +} + +/** + * Class: Buffer + * ============= + * + * The Buffer constructor returns instances of `Uint8Array` that are augmented + * with function properties for all the node `Buffer` API functions. We use + * `Uint8Array` so that square bracket notation works as expected -- it returns + * a single octet. + * + * By augmenting the instances, we can avoid modifying the `Uint8Array` + * prototype. + */ +function Buffer (arg) { + if (!(this instanceof Buffer)) { + // Avoid going through an ArgumentsAdaptorTrampoline in the common case. + if (arguments.length > 1) return new Buffer(arg, arguments[1]) + return new Buffer(arg) + } + + this.length = 0 + this.parent = undefined + + // Common case. + if (typeof arg === 'number') { + return fromNumber(this, arg) + } + + // Slightly less common case. + if (typeof arg === 'string') { + return fromString(this, arg, arguments.length > 1 ? arguments[1] : 'utf8') + } + + // Unusual. + return fromObject(this, arg) +} + +function fromNumber (that, length) { + that = allocate(that, length < 0 ? 0 : checked(length) | 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < length; i++) { + that[i] = 0 + } + } + return that +} + +function fromString (that, string, encoding) { + if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8' + + // Assumption: byteLength() return value is always < kMaxLength. + var length = byteLength(string, encoding) | 0 + that = allocate(that, length) + + that.write(string, encoding) + return that +} + +function fromObject (that, object) { + if (Buffer.isBuffer(object)) return fromBuffer(that, object) + + if (isArray(object)) return fromArray(that, object) + + if (object == null) { + throw new TypeError('must start with number, buffer, array or string') + } + + if (typeof ArrayBuffer !== 'undefined' && object.buffer instanceof ArrayBuffer) { + return fromTypedArray(that, object) + } + + if (object.length) return fromArrayLike(that, object) + + return fromJsonObject(that, object) +} + +function fromBuffer (that, buffer) { + var length = checked(buffer.length) | 0 + that = allocate(that, length) + buffer.copy(that, 0, 0, length) + return that +} + +function fromArray (that, array) { + var length = checked(array.length) | 0 + that = allocate(that, length) + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +// Duplicate of fromArray() to keep fromArray() monomorphic. +function fromTypedArray (that, array) { + var length = checked(array.length) | 0 + that = allocate(that, length) + // Truncating the elements is probably not what people expect from typed + // arrays with BYTES_PER_ELEMENT > 1 but it's compatible with the behavior + // of the old Buffer constructor. + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +function fromArrayLike (that, array) { + var length = checked(array.length) | 0 + that = allocate(that, length) + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +// Deserialize { type: 'Buffer', data: [1,2,3,...] } into a Buffer object. +// Returns a zero-length buffer for inputs that don't conform to the spec. +function fromJsonObject (that, object) { + var array + var length = 0 + + if (object.type === 'Buffer' && isArray(object.data)) { + array = object.data + length = checked(array.length) | 0 + } + that = allocate(that, length) + + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} + +function allocate (that, length) { + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = Buffer._augment(new Uint8Array(length)) + } else { + // Fallback: Return an object instance of the Buffer class + that.length = length + that._isBuffer = true + } + + var fromPool = length !== 0 && length <= Buffer.poolSize >>> 1 + if (fromPool) that.parent = rootParent + + return that +} + +function checked (length) { + // Note: cannot use `length < kMaxLength` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= kMaxLength()) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + kMaxLength().toString(16) + ' bytes') + } + return length | 0 +} + +function SlowBuffer (subject, encoding) { + if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding) + + var buf = new Buffer(subject, encoding) + delete buf.parent + return buf +} + +Buffer.isBuffer = function isBuffer (b) { + return !!(b != null && b._isBuffer) +} + +Buffer.compare = function compare (a, b) { + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError('Arguments must be Buffers') + } + + if (a === b) return 0 + + var x = a.length + var y = b.length + + var i = 0 + var len = Math.min(x, y) + while (i < len) { + if (a[i] !== b[i]) break + + ++i + } + + if (i !== len) { + x = a[i] + y = b[i] + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +Buffer.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'binary': + case 'base64': + case 'raw': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } +} + +Buffer.concat = function concat (list, length) { + if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.') + + if (list.length === 0) { + return new Buffer(0) + } else if (list.length === 1) { + return list[0] + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; i++) { + length += list[i].length + } + } + + var buf = new Buffer(length) + var pos = 0 + for (i = 0; i < list.length; i++) { + var item = list[i] + item.copy(buf, pos) + pos += item.length + } + return buf +} + +function byteLength (string, encoding) { + if (typeof string !== 'string') string = '' + string + + var len = string.length + if (len === 0) return 0 + + // Use a for loop to avoid recursion + var loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'binary': + // Deprecated + case 'raw': + case 'raws': + return len + case 'utf8': + case 'utf-8': + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) return utf8ToBytes(string).length // assume utf8 + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} +Buffer.byteLength = byteLength + +// pre-set for values that may exist in the future +Buffer.prototype.length = undefined +Buffer.prototype.parent = undefined + +function slowToString (encoding, start, end) { + var loweredCase = false + + start = start | 0 + end = end === undefined || end === Infinity ? this.length : end | 0 + + if (!encoding) encoding = 'utf8' + if (start < 0) start = 0 + if (end > this.length) end = this.length + if (end <= start) return '' + + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) + + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) + + case 'ascii': + return asciiSlice(this, start, end) + + case 'binary': + return binarySlice(this, start, end) + + case 'base64': + return base64Slice(this, start, end) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } +} + +Buffer.prototype.toString = function toString () { + var length = this.length | 0 + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) +} + +Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 +} + +Buffer.prototype.inspect = function inspect () { + var str = '' + var max = exports.INSPECT_MAX_BYTES + if (this.length > 0) { + str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') + if (this.length > max) str += ' ... ' + } + return '<Buffer ' + str + '>' +} + +Buffer.prototype.compare = function compare (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return 0 + return Buffer.compare(this, b) +} + +Buffer.prototype.indexOf = function indexOf (val, byteOffset) { + if (byteOffset > 0x7fffffff) byteOffset = 0x7fffffff + else if (byteOffset < -0x80000000) byteOffset = -0x80000000 + byteOffset >>= 0 + + if (this.length === 0) return -1 + if (byteOffset >= this.length) return -1 + + // Negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = Math.max(this.length + byteOffset, 0) + + if (typeof val === 'string') { + if (val.length === 0) return -1 // special case: looking for empty string always fails + return String.prototype.indexOf.call(this, val, byteOffset) + } + if (Buffer.isBuffer(val)) { + return arrayIndexOf(this, val, byteOffset) + } + if (typeof val === 'number') { + if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') { + return Uint8Array.prototype.indexOf.call(this, val, byteOffset) + } + return arrayIndexOf(this, [ val ], byteOffset) + } + + function arrayIndexOf (arr, val, byteOffset) { + var foundIndex = -1 + for (var i = 0; byteOffset + i < arr.length; i++) { + if (arr[byteOffset + i] === val[foundIndex === -1 ? 0 : i - foundIndex]) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === val.length) return byteOffset + foundIndex + } else { + foundIndex = -1 + } + } + return -1 + } + + throw new TypeError('val must be string, number or Buffer') +} + +// `get` will be removed in Node 0.13+ +Buffer.prototype.get = function get (offset) { + console.log('.get() is deprecated. Access using array indexes instead.') + return this.readUInt8(offset) +} + +// `set` will be removed in Node 0.13+ +Buffer.prototype.set = function set (v, offset) { + console.log('.set() is deprecated. Access using array indexes instead.') + return this.writeUInt8(v, offset) +} + +function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0 + var remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } + + // must be an even number of digits + var strLen = string.length + if (strLen % 2 !== 0) throw new Error('Invalid hex string') + + if (length > strLen / 2) { + length = strLen / 2 + } + for (var i = 0; i < length; i++) { + var parsed = parseInt(string.substr(i * 2, 2), 16) + if (isNaN(parsed)) throw new Error('Invalid hex string') + buf[offset + i] = parsed + } + return i +} + +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +} + +function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) +} + +function binaryWrite (buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) +} + +function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) +} + +function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) +} + +Buffer.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset | 0 + if (isFinite(length)) { + length = length | 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + // legacy write(string, encoding, offset, length) - remove in v0.13 + } else { + var swap = encoding + encoding = offset + offset = length | 0 + length = swap + } + + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('attempt to write outside buffer bounds') + } + + if (!encoding) encoding = 'utf8' + + var loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) + + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + + case 'ascii': + return asciiWrite(this, string, offset, length) + + case 'binary': + return binaryWrite(this, string, offset, length) + + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} + +Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } +} + +function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } +} + +function utf8Slice (buf, start, end) { + var res = '' + var tmp = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; i++) { + if (buf[i] <= 0x7F) { + res += decodeUtf8Char(tmp) + String.fromCharCode(buf[i]) + tmp = '' + } else { + tmp += '%' + buf[i].toString(16) + } + } + + return res + decodeUtf8Char(tmp) +} + +function asciiSlice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; i++) { + ret += String.fromCharCode(buf[i] & 0x7F) + } + return ret +} + +function binarySlice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; i++) { + ret += String.fromCharCode(buf[i]) + } + return ret +} + +function hexSlice (buf, start, end) { + var len = buf.length + + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len + + var out = '' + for (var i = start; i < end; i++) { + out += toHex(buf[i]) + } + return out +} + +function utf16leSlice (buf, start, end) { + var bytes = buf.slice(start, end) + var res = '' + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) + } + return res +} + +Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) end = start + + var newBuf + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = Buffer._augment(this.subarray(start, end)) + } else { + var sliceLen = end - start + newBuf = new Buffer(sliceLen, undefined) + for (var i = 0; i < sliceLen; i++) { + newBuf[i] = this[i + start] + } + } + + if (newBuf.length) newBuf.parent = this.parent || this + + return newBuf +} + +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') +} + +Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + + return val +} + +Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } + + var val = this[offset + --byteLength] + var mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul + } + + return val +} + +Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] +} + +Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) +} + +Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] +} + +Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) +} + +Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) +} + +Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var i = byteLength + var mul = 1 + var val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) +} + +Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset] | (this[offset + 1] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset + 1] | (this[offset] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) +} + +Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) +} + +Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) +} + +Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) +} + +Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) +} + +Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) +} + +function checkInt (buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance') + if (value > max || value < min) throw new RangeError('value is out of bounds') + if (offset + ext > buf.length) throw new RangeError('index out of range') +} + +Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0) + + var mul = 1 + var i = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0) + + var i = byteLength - 1 + var mul = 1 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + this[offset] = value + return offset + 1 +} + +function objectWriteUInt16 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; i++) { + buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> + (littleEndian ? i : 1 - i) * 8 + } +} + +Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = value + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +function objectWriteUInt32 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffffffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; i++) { + buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff + } +} + +Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset + 3] = (value >>> 24) + this[offset + 2] = (value >>> 16) + this[offset + 1] = (value >>> 8) + this[offset] = value + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = value + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = 0 + var mul = 1 + var sub = value < 0 ? 1 : 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = byteLength - 1 + var mul = 1 + var sub = value < 0 ? 1 : 0 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + if (value < 0) value = 0xff + value + 1 + this[offset] = value + return offset + 1 +} + +Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} + +Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = value + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = value + this[offset + 1] = (value >>> 8) + this[offset + 2] = (value >>> 16) + this[offset + 3] = (value >>> 24) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = value + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} + +function checkIEEE754 (buf, value, offset, ext, max, min) { + if (value > max || value < min) throw new RangeError('value is out of bounds') + if (offset + ext > buf.length) throw new RangeError('index out of range') + if (offset < 0) throw new RangeError('index out of range') +} + +function writeFloat (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) + } + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 +} + +Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) +} + +function writeDouble (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) + } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 +} + +Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) +} + +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + + if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < len; i++) { + target[i + targetStart] = this[i + start] + } + } else { + target._set(this.subarray(start, start + len), targetStart) + } + + return len +} + +// fill(value, start=0, end=buffer.length) +Buffer.prototype.fill = function fill (value, start, end) { + if (!value) value = 0 + if (!start) start = 0 + if (!end) end = this.length + + if (end < start) throw new RangeError('end < start') + + // Fill 0 bytes; we're done + if (end === start) return + if (this.length === 0) return + + if (start < 0 || start >= this.length) throw new RangeError('start out of bounds') + if (end < 0 || end > this.length) throw new RangeError('end out of bounds') + + var i + if (typeof value === 'number') { + for (i = start; i < end; i++) { + this[i] = value + } + } else { + var bytes = utf8ToBytes(value.toString()) + var len = bytes.length + for (i = start; i < end; i++) { + this[i] = bytes[i % len] + } + } + + return this +} + +/** + * Creates a new `ArrayBuffer` with the *copied* memory of the buffer instance. + * Added in Node 0.12. Only available in browsers that support ArrayBuffer. + */ +Buffer.prototype.toArrayBuffer = function toArrayBuffer () { + if (typeof Uint8Array !== 'undefined') { + if (Buffer.TYPED_ARRAY_SUPPORT) { + return (new Buffer(this)).buffer + } else { + var buf = new Uint8Array(this.length) + for (var i = 0, len = buf.length; i < len; i += 1) { + buf[i] = this[i] + } + return buf.buffer + } + } else { + throw new TypeError('Buffer.toArrayBuffer not supported in this browser') + } +} + +// HELPER FUNCTIONS +// ================ + +var BP = Buffer.prototype + +/** + * Augment a Uint8Array *instance* (not the Uint8Array class!) with Buffer methods + */ +Buffer._augment = function _augment (arr) { + arr.constructor = Buffer + arr._isBuffer = true + + // save reference to original Uint8Array set method before overwriting + arr._set = arr.set + + // deprecated, will be removed in node 0.13+ + arr.get = BP.get + arr.set = BP.set + + arr.write = BP.write + arr.toString = BP.toString + arr.toLocaleString = BP.toString + arr.toJSON = BP.toJSON + arr.equals = BP.equals + arr.compare = BP.compare + arr.indexOf = BP.indexOf + arr.copy = BP.copy + arr.slice = BP.slice + arr.readUIntLE = BP.readUIntLE + arr.readUIntBE = BP.readUIntBE + arr.readUInt8 = BP.readUInt8 + arr.readUInt16LE = BP.readUInt16LE + arr.readUInt16BE = BP.readUInt16BE + arr.readUInt32LE = BP.readUInt32LE + arr.readUInt32BE = BP.readUInt32BE + arr.readIntLE = BP.readIntLE + arr.readIntBE = BP.readIntBE + arr.readInt8 = BP.readInt8 + arr.readInt16LE = BP.readInt16LE + arr.readInt16BE = BP.readInt16BE + arr.readInt32LE = BP.readInt32LE + arr.readInt32BE = BP.readInt32BE + arr.readFloatLE = BP.readFloatLE + arr.readFloatBE = BP.readFloatBE + arr.readDoubleLE = BP.readDoubleLE + arr.readDoubleBE = BP.readDoubleBE + arr.writeUInt8 = BP.writeUInt8 + arr.writeUIntLE = BP.writeUIntLE + arr.writeUIntBE = BP.writeUIntBE + arr.writeUInt16LE = BP.writeUInt16LE + arr.writeUInt16BE = BP.writeUInt16BE + arr.writeUInt32LE = BP.writeUInt32LE + arr.writeUInt32BE = BP.writeUInt32BE + arr.writeIntLE = BP.writeIntLE + arr.writeIntBE = BP.writeIntBE + arr.writeInt8 = BP.writeInt8 + arr.writeInt16LE = BP.writeInt16LE + arr.writeInt16BE = BP.writeInt16BE + arr.writeInt32LE = BP.writeInt32LE + arr.writeInt32BE = BP.writeInt32BE + arr.writeFloatLE = BP.writeFloatLE + arr.writeFloatBE = BP.writeFloatBE + arr.writeDoubleLE = BP.writeDoubleLE + arr.writeDoubleBE = BP.writeDoubleBE + arr.fill = BP.fill + arr.inspect = BP.inspect + arr.toArrayBuffer = BP.toArrayBuffer + + return arr +} + +var INVALID_BASE64_RE = /[^+\/0-9A-z\-]/g + +function base64clean (str) { + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = stringtrim(str).replace(INVALID_BASE64_RE, '') + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '=' + } + return str +} + +function stringtrim (str) { + if (str.trim) return str.trim() + return str.replace(/^\s+|\s+$/g, '') +} + +function toHex (n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) +} + +function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + var i = 0 + + for (; i < length; i++) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (leadSurrogate) { + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } else { + // valid surrogate pair + codePoint = leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00 | 0x10000 + leadSurrogate = null + } + } else { + // no lead yet + + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else { + // valid lead + leadSurrogate = codePoint + continue + } + } + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = null + } + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x200000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function asciiToBytes (str) { + var byteArray = [] + for (var i = 0; i < str.length; i++) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF) + } + return byteArray +} + +function utf16leToBytes (str, units) { + var c, hi, lo + var byteArray = [] + for (var i = 0; i < str.length; i++) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) + } + + return byteArray +} + +function base64ToBytes (str) { + return base64.toByteArray(base64clean(str)) +} + +function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; i++) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i +} + +function decodeUtf8Char (str) { + try { + return decodeURIComponent(str) + } catch (err) { + return String.fromCharCode(0xFFFD) // UTF 8 invalid char + } +} + +},{"base64-js":14,"ieee754":15,"is-array":16}],14:[function(require,module,exports){ +var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + +;(function (exports) { + 'use strict'; + + var Arr = (typeof Uint8Array !== 'undefined') + ? Uint8Array + : Array + + var PLUS = '+'.charCodeAt(0) + var SLASH = '/'.charCodeAt(0) + var NUMBER = '0'.charCodeAt(0) + var LOWER = 'a'.charCodeAt(0) + var UPPER = 'A'.charCodeAt(0) + var PLUS_URL_SAFE = '-'.charCodeAt(0) + var SLASH_URL_SAFE = '_'.charCodeAt(0) + + function decode (elt) { + var code = elt.charCodeAt(0) + if (code === PLUS || + code === PLUS_URL_SAFE) + return 62 // '+' + if (code === SLASH || + code === SLASH_URL_SAFE) + return 63 // '/' + if (code < NUMBER) + return -1 //no match + if (code < NUMBER + 10) + return code - NUMBER + 26 + 26 + if (code < UPPER + 26) + return code - UPPER + if (code < LOWER + 26) + return code - LOWER + 26 + } + + function b64ToByteArray (b64) { + var i, j, l, tmp, placeHolders, arr + + if (b64.length % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + + // the number of equal signs (place holders) + // if there are two placeholders, than the two characters before it + // represent one byte + // if there is only one, then the three characters before it represent 2 bytes + // this is just a cheap hack to not do indexOf twice + var len = b64.length + placeHolders = '=' === b64.charAt(len - 2) ? 2 : '=' === b64.charAt(len - 1) ? 1 : 0 + + // base64 is 4/3 + up to two characters of the original data + arr = new Arr(b64.length * 3 / 4 - placeHolders) + + // if there are placeholders, only get up to the last complete 4 chars + l = placeHolders > 0 ? b64.length - 4 : b64.length + + var L = 0 + + function push (v) { + arr[L++] = v + } + + for (i = 0, j = 0; i < l; i += 4, j += 3) { + tmp = (decode(b64.charAt(i)) << 18) | (decode(b64.charAt(i + 1)) << 12) | (decode(b64.charAt(i + 2)) << 6) | decode(b64.charAt(i + 3)) + push((tmp & 0xFF0000) >> 16) + push((tmp & 0xFF00) >> 8) + push(tmp & 0xFF) + } + + if (placeHolders === 2) { + tmp = (decode(b64.charAt(i)) << 2) | (decode(b64.charAt(i + 1)) >> 4) + push(tmp & 0xFF) + } else if (placeHolders === 1) { + tmp = (decode(b64.charAt(i)) << 10) | (decode(b64.charAt(i + 1)) << 4) | (decode(b64.charAt(i + 2)) >> 2) + push((tmp >> 8) & 0xFF) + push(tmp & 0xFF) + } + + return arr + } + + function uint8ToBase64 (uint8) { + var i, + extraBytes = uint8.length % 3, // if we have 1 byte left, pad 2 bytes + output = "", + temp, length + + function encode (num) { + return lookup.charAt(num) + } + + function tripletToBase64 (num) { + return encode(num >> 18 & 0x3F) + encode(num >> 12 & 0x3F) + encode(num >> 6 & 0x3F) + encode(num & 0x3F) + } + + // go through the array every three bytes, we'll deal with trailing stuff later + for (i = 0, length = uint8.length - extraBytes; i < length; i += 3) { + temp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]) + output += tripletToBase64(temp) + } + + // pad the end with zeros, but make sure to not forget the extra bytes + switch (extraBytes) { + case 1: + temp = uint8[uint8.length - 1] + output += encode(temp >> 2) + output += encode((temp << 4) & 0x3F) + output += '==' + break + case 2: + temp = (uint8[uint8.length - 2] << 8) + (uint8[uint8.length - 1]) + output += encode(temp >> 10) + output += encode((temp >> 4) & 0x3F) + output += encode((temp << 2) & 0x3F) + output += '=' + break + } + + return output + } + + exports.toByteArray = b64ToByteArray + exports.fromByteArray = uint8ToBase64 +}(typeof exports === 'undefined' ? (this.base64js = {}) : exports)) + +},{}],15:[function(require,module,exports){ +exports.read = function (buffer, offset, isLE, mLen, nBytes) { + var e, m + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var nBits = -7 + var i = isLE ? (nBytes - 1) : 0 + var d = isLE ? -1 : 1 + var s = buffer[offset + i] + + i += d + + e = s & ((1 << (-nBits)) - 1) + s >>= (-nBits) + nBits += eLen + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & ((1 << (-nBits)) - 1) + e >>= (-nBits) + nBits += mLen + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity) + } else { + m = m + Math.pow(2, mLen) + e = e - eBias + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen) +} + +exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c + var eLen = nBytes * 8 - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) + var i = isLE ? 0 : (nBytes - 1) + var d = isLE ? 1 : -1 + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 + + value = Math.abs(value) + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0 + e = eMax + } else { + e = Math.floor(Math.log(value) / Math.LN2) + if (value * (c = Math.pow(2, -e)) < 1) { + e-- + c *= 2 + } + if (e + eBias >= 1) { + value += rt / c + } else { + value += rt * Math.pow(2, 1 - eBias) + } + if (value * c >= 2) { + e++ + c /= 2 + } + + if (e + eBias >= eMax) { + m = 0 + e = eMax + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen) + e = e + eBias + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) + e = 0 + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} + + e = (e << mLen) | m + eLen += mLen + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} + + buffer[offset + i - d] |= s * 128 +} + +},{}],16:[function(require,module,exports){ + +/** + * isArray + */ + +var isArray = Array.isArray; + +/** + * toString + */ + +var str = Object.prototype.toString; + +/** + * Whether or not the given `val` + * is an array. + * + * example: + * + * isArray([]); + * // > true + * isArray(arguments); + * // > false + * isArray(''); + * // > false + * + * @param {mixed} val + * @return {bool} + */ + +module.exports = isArray || function (val) { + return !! val && '[object Array]' == str.call(val); +}; + +},{}],17:[function(require,module,exports){ +// shim for using process in browser + +var process = module.exports = {}; +var queue = []; +var draining = false; + +function drainQueue() { + if (draining) { + return; + } + draining = true; + var currentQueue; + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + var i = -1; + while (++i < len) { + currentQueue[i](); + } + len = queue.length; + } + draining = false; +} +process.nextTick = function (fun) { + queue.push(fun); + if (!draining) { + setTimeout(drainQueue, 0); + } +}; + +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; + +// TODO(shtylman) +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; + +},{}],18:[function(require,module,exports){ +(function (Buffer){ +(function () { + "use strict"; + + function btoa(str) { + var buffer + ; + + if (str instanceof Buffer) { + buffer = str; + } else { + buffer = new Buffer(str.toString(), 'binary'); + } + + return buffer.toString('base64'); + } + + module.exports = btoa; +}()); + +}).call(this,require("buffer").Buffer) +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9idG9hL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgXCJ1c2Ugc3RyaWN0XCI7XG5cbiAgZnVuY3Rpb24gYnRvYShzdHIpIHtcbiAgICB2YXIgYnVmZmVyXG4gICAgICA7XG5cbiAgICBpZiAoc3RyIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICBidWZmZXIgPSBzdHI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJ1ZmZlciA9IG5ldyBCdWZmZXIoc3RyLnRvU3RyaW5nKCksICdiaW5hcnknKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgfVxuXG4gIG1vZHVsZS5leHBvcnRzID0gYnRvYTtcbn0oKSk7XG4iXX0= +},{"buffer":13}],19:[function(require,module,exports){ +/* jshint node: true */ +(function () { + "use strict"; + + function CookieAccessInfo(domain, path, secure, script) { + if (this instanceof CookieAccessInfo) { + this.domain = domain || undefined; + this.path = path || "/"; + this.secure = !!secure; + this.script = !!script; + return this; + } + return new CookieAccessInfo(domain, path, secure, script); + } + exports.CookieAccessInfo = CookieAccessInfo; + + function Cookie(cookiestr, request_domain, request_path) { + if (cookiestr instanceof Cookie) { + return cookiestr; + } + if (this instanceof Cookie) { + this.name = null; + this.value = null; + this.expiration_date = Infinity; + this.path = String(request_path || "/"); + this.explicit_path = false; + this.domain = request_domain || null; + this.explicit_domain = false; + this.secure = false; //how to define default? + this.noscript = false; //httponly + if (cookiestr) { + this.parse(cookiestr, request_domain, request_path); + } + return this; + } + return new Cookie(cookiestr); + } + exports.Cookie = Cookie; + + Cookie.prototype.toString = function toString() { + var str = [this.name + "=" + this.value]; + if (this.expiration_date !== Infinity) { + str.push("expires=" + (new Date(this.expiration_date)).toGMTString()); + } + if (this.domain) { + str.push("domain=" + this.domain); + } + if (this.path) { + str.push("path=" + this.path); + } + if (this.secure) { + str.push("secure"); + } + if (this.noscript) { + str.push("httponly"); + } + return str.join("; "); + }; + + Cookie.prototype.toValueString = function toValueString() { + return this.name + "=" + this.value; + }; + + var cookie_str_splitter = /[:](?=\s*[a-zA-Z0-9_\-]+\s*[=])/g; + Cookie.prototype.parse = function parse(str, request_domain, request_path) { + if (this instanceof Cookie) { + var parts = str.split(";").filter(function (value) { + return !!value; + }), + pair = parts[0].match(/([^=]+)=([\s\S]*)/), + key = pair[1], + value = pair[2], + i; + this.name = key; + this.value = value; + + for (i = 1; i < parts.length; i += 1) { + pair = parts[i].match(/([^=]+)(?:=([\s\S]*))?/); + key = pair[1].trim().toLowerCase(); + value = pair[2]; + switch (key) { + case "httponly": + this.noscript = true; + break; + case "expires": + this.expiration_date = value ? + Number(Date.parse(value)) : + Infinity; + break; + case "path": + this.path = value ? + value.trim() : + ""; + this.explicit_path = true; + break; + case "domain": + this.domain = value ? + value.trim() : + ""; + this.explicit_domain = !!this.domain; + break; + case "secure": + this.secure = true; + break; + } + } + + if (!this.explicit_path) { + this.path = request_path || "/"; + } + if (!this.explicit_domain) { + this.domain = request_domain; + } + + return this; + } + return new Cookie().parse(str, request_domain, request_path); + }; + + Cookie.prototype.matches = function matches(access_info) { + if (this.noscript && access_info.script || + this.secure && !access_info.secure || + !this.collidesWith(access_info)) { + return false; + } + return true; + }; + + Cookie.prototype.collidesWith = function collidesWith(access_info) { + if ((this.path && !access_info.path) || (this.domain && !access_info.domain)) { + return false; + } + if (this.path && access_info.path.indexOf(this.path) !== 0) { + return false; + } + if (!this.explicit_path) { + if (this.path !== access_info.path) { + return false; + } + } + var access_domain = access_info.domain && access_info.domain.replace(/^[\.]/,''); + var cookie_domain = this.domain && this.domain.replace(/^[\.]/,''); + if (cookie_domain === access_domain) { + return true; + } + if (cookie_domain) { + if (!this.explicit_domain) { + return false; // we already checked if the domains were exactly the same + } + var wildcard = access_domain.indexOf(cookie_domain); + if (wildcard === -1 || wildcard !== access_domain.length - cookie_domain.length) { + return false; + } + return true; + } + return true; + }; + + function CookieJar() { + var cookies, cookies_list, collidable_cookie; + if (this instanceof CookieJar) { + cookies = Object.create(null); //name: [Cookie] + + this.setCookie = function setCookie(cookie, request_domain, request_path) { + var remove, i; + cookie = new Cookie(cookie, request_domain, request_path); + //Delete the cookie if the set is past the current time + remove = cookie.expiration_date <= Date.now(); + if (cookies[cookie.name] !== undefined) { + cookies_list = cookies[cookie.name]; + for (i = 0; i < cookies_list.length; i += 1) { + collidable_cookie = cookies_list[i]; + if (collidable_cookie.collidesWith(cookie)) { + if (remove) { + cookies_list.splice(i, 1); + if (cookies_list.length === 0) { + delete cookies[cookie.name]; + } + return false; + } + cookies_list[i] = cookie; + return cookie; + } + } + if (remove) { + return false; + } + cookies_list.push(cookie); + return cookie; + } + if (remove) { + return false; + } + cookies[cookie.name] = [cookie]; + return cookies[cookie.name]; + }; + //returns a cookie + this.getCookie = function getCookie(cookie_name, access_info) { + var cookie, i; + cookies_list = cookies[cookie_name]; + if (!cookies_list) { + return; + } + for (i = 0; i < cookies_list.length; i += 1) { + cookie = cookies_list[i]; + if (cookie.expiration_date <= Date.now()) { + if (cookies_list.length === 0) { + delete cookies[cookie.name]; + } + continue; + } + if (cookie.matches(access_info)) { + return cookie; + } + } + }; + //returns a list of cookies + this.getCookies = function getCookies(access_info) { + var matches = [], cookie_name, cookie; + for (cookie_name in cookies) { + cookie = this.getCookie(cookie_name, access_info); + if (cookie) { + matches.push(cookie); + } + } + matches.toString = function toString() { + return matches.join(":"); + }; + matches.toValueString = function toValueString() { + return matches.map(function (c) { + return c.toValueString(); + }).join(';'); + }; + return matches; + }; + + return this; + } + return new CookieJar(); + } + exports.CookieJar = CookieJar; + + //returns list of cookies that were set correctly. Cookies that are expired and removed are not returned. + CookieJar.prototype.setCookies = function setCookies(cookies, request_domain, request_path) { + cookies = Array.isArray(cookies) ? + cookies : + cookies.split(cookie_str_splitter); + var successful = [], + i, + cookie; + cookies = cookies.map(Cookie); + for (i = 0; i < cookies.length; i += 1) { + cookie = cookies[i]; + if (this.setCookie(cookie, request_domain, request_path)) { + successful.push(cookie); + } + } + return successful; + }; +}()); + +},{}],20:[function(require,module,exports){ +/*! + * jQuery JavaScript Library v2.1.4 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2015-04-28T16:01Z + */ + +(function( global, factory ) { + + if ( typeof module === "object" && typeof module.exports === "object" ) { + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Support: Firefox 18+ +// Can't be in strict mode, several libs including ASP.NET trace +// the stack via arguments.caller.callee and Firefox dies if +// you try to trace through "use strict" call chains. (#13335) +// + +var arr = []; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var support = {}; + + + +var + // Use the correct document accordingly with window argument (sandbox) + document = window.document, + + version = "2.1.4", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android<4.1 + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // Start with an empty selector + selector: "", + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num != null ? + + // Return just the one element from the set + ( num < 0 ? this[ num + this.length ] : this[ num ] ) : + + // Return all the elements in a clean array + slice.call( this ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + // parseFloat NaNs numeric-cast false positives (null|true|false|"") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + // adding 1 corrects loss of precision from parseFloat (#15100) + return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0; + }, + + isPlainObject: function( obj ) { + // Not plain objects: + // - Any object or value whose internal [[Class]] property is not "[object Object]" + // - DOM nodes + // - window + if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.constructor && + !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) { + return false; + } + + // If the function hasn't returned already, we're confident that + // |obj| is a plain object, created by {} or constructed with new Object + return true; + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + // Support: Android<4.0, iOS<6 (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call(obj) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + var script, + indirect = eval; + + code = jQuery.trim( code ); + + if ( code ) { + // If the code includes a valid, prologue position + // strict mode pragma, execute code by injecting a + // script tag into the document. + if ( code.indexOf("use strict") === 1 ) { + script = document.createElement("script"); + script.text = code; + document.head.appendChild( script ).parentNode.removeChild( script ); + } else { + // Otherwise, avoid the DOM node creation, insertion + // and removal by using an indirect global eval + indirect( code ); + } + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE9-11+ + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } + } + + return obj; + }, + + // Support: Android<4.1 + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, + i = 0, + length = elems.length, + isArray = isArraylike( elems ), + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +}); + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +function isArraylike( obj ) { + + // Support: iOS 8.2 (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = "length" in obj && obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.nodeType === 1 && length ) { + return true; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.2.0-pre + * http://sizzlejs.com/ + * + * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2014-12-16 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // General-purpose constants + MAX_NEGATIVE = 1 << 31, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // http://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + characterEncoding + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + rescape = /'|\\/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }; + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + nodeType = context.nodeType; + + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + if ( !seed && documentIsHTML ) { + + // Try to shortcut find operations when possible (e.g., not under DocumentFragment) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document (jQuery #6963) + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // QSA path + if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + nid = old = expando; + newContext = context; + newSelector = nodeType !== 1 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( div.parentNode ) { + div.parentNode.removeChild( div ); + } + // release memory in IE + div = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = attrs.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + ( ~b.sourceIndex || MAX_NEGATIVE ) - + ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, parent, + doc = node ? node.ownerDocument || node : preferredDoc; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + parent = doc.defaultView; + + // Support: IE>8 + // If iframe document is assigned to "document" variable and if iframe has been reloaded, + // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 + // IE6-8 do not support the defaultView property so parent will be undefined + if ( parent && parent !== parent.top ) { + // IE11 does not have attachEvent, so all must suffer + if ( parent.addEventListener ) { + parent.addEventListener( "unload", unloadHandler, false ); + } else if ( parent.attachEvent ) { + parent.attachEvent( "onunload", unloadHandler ); + } + } + + /* Support tests + ---------------------------------------------------------------------- */ + documentIsHTML = !isXML( doc ); + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( div ) { + div.className = "i"; + return !div.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( doc.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( div ) { + docElem.appendChild( div ).id = expando; + return !doc.getElementsByName || !doc.getElementsByName( expando ).length; + }); + + // ID find and filter + if ( support.getById ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [ m ] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + // Support: IE6/7 + // getElementById is not reliable as a find shortcut + delete Expr.find["ID"]; + + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See http://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + docElem.appendChild( div ).innerHTML = "<a id='" + expando + "'></a>" + + "<select id='" + expando + "-\f]' msallowcapture=''>" + + "<option selected=''></option></select>"; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( div.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+ + if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibing-combinator selector` fails + if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( div ) { + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = doc.createElement("input"); + input.setAttribute( "type", "hidden" ); + div.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( div.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return doc; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (oldCache = outerCache[ dir ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + outerCache[ dir ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context !== document && context; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is no seed and only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( div1 ) { + // Should return 1, but returns 4 (following) + return div1.compareDocumentPosition( document.createElement("div") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( div ) { + div.innerHTML = "<a href='#'></a>"; + return div.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( div ) { + div.innerHTML = "<input/>"; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( div ) { + return div.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + + +var rneedsContext = jQuery.expr.match.needsContext; + +var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); + + + +var risSimple = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + /* jshint -W018 */ + return !!qualifier.call( elem, i, elem ) !== not; + }); + + } + + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + }); + + } + + if ( typeof qualifier === "string" ) { + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + qualifier = jQuery.filter( qualifier, elements ); + } + + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) >= 0 ) !== not; + }); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + })); +}; + +jQuery.fn.extend({ + find: function( selector ) { + var i, + len = this.length, + ret = [], + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = this.selector ? this.selector + " " + selector : selector; + return ret; + }, + filter: function( selector ) { + return this.pushStack( winnow(this, selector || [], false) ); + }, + not: function( selector ) { + return this.pushStack( winnow(this, selector || [], true) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +}); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + init = jQuery.fn.init = function( selector, context ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Support: Blackberry 4.6 + // gEBID returns nodes no longer in the document (#6963) + if ( elem && elem.parentNode ) { + // Inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return typeof rootjQuery.ready !== "undefined" ? + rootjQuery.ready( selector ) : + // Execute immediately if ready is not present + selector( jQuery ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.extend({ + dir: function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; + }, + + sibling: function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; + } +}); + +jQuery.fn.extend({ + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter(function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { + // Always skip document fragments + if ( cur.nodeType < 11 && (pos ? + pos.index(cur) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector(cur, selectors)) ) { + + matched.push( cur ); + break; + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.unique( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +function sibling( cur, dir ) { + while ( (cur = cur[dir]) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return elem.contentDocument || jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.unique( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +}); +var rnotwhite = (/\S+/g); + + + +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // Flag to know if list is currently firing + firing, + // First callback to fire (used internally by add and fireWith) + firingStart, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + firingLength = 0; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( list && ( !fired || stack ) ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // Add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // If we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); + + +// The deferred used on DOM ready +var readyList; + +jQuery.fn.ready = function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; +}; + +jQuery.extend({ + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.triggerHandler ) { + jQuery( document ).triggerHandler( "ready" ); + jQuery( document ).off( "ready" ); + } + } +}); + +/** + * The ready event handler and self cleanup method + */ +function completed() { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + jQuery.ready(); +} + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // We once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + } else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + } + } + return readyList.promise( obj ); +}; + +// Kick off the DOM ready check even if the user does not +jQuery.ready.promise(); + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + len ? fn( elems[0], key ) : emptyGet; +}; + + +/** + * Determines whether an object can have data + */ +jQuery.acceptData = function( owner ) { + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + /* jshint -W018 */ + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + +function Data() { + // Support: Android<4, + // Old WebKit does not have Object.preventExtensions/freeze method, + // return new empty object instead with no [[set]] accessor + Object.defineProperty( this.cache = {}, 0, { + get: function() { + return {}; + } + }); + + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; +Data.accepts = jQuery.acceptData; + +Data.prototype = { + key: function( owner ) { + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return the key for a frozen object. + if ( !Data.accepts( owner ) ) { + return 0; + } + + var descriptor = {}, + // Check if the owner object already has a cache key + unlock = owner[ this.expando ]; + + // If not, create one + if ( !unlock ) { + unlock = Data.uid++; + + // Secure it in a non-enumerable, non-writable property + try { + descriptor[ this.expando ] = { value: unlock }; + Object.defineProperties( owner, descriptor ); + + // Support: Android<4 + // Fallback to a less secure definition + } catch ( e ) { + descriptor[ this.expando ] = unlock; + jQuery.extend( owner, descriptor ); + } + } + + // Ensure the cache object + if ( !this.cache[ unlock ] ) { + this.cache[ unlock ] = {}; + } + + return unlock; + }, + set: function( owner, data, value ) { + var prop, + // There may be an unlock assigned to this node, + // if there is no entry for this "owner", create one inline + // and set the unlock as though an owner entry had always existed + unlock = this.key( owner ), + cache = this.cache[ unlock ]; + + // Handle: [ owner, key, value ] args + if ( typeof data === "string" ) { + cache[ data ] = value; + + // Handle: [ owner, { properties } ] args + } else { + // Fresh assignments by object are shallow copied + if ( jQuery.isEmptyObject( cache ) ) { + jQuery.extend( this.cache[ unlock ], data ); + // Otherwise, copy the properties one-by-one to the cache object + } else { + for ( prop in data ) { + cache[ prop ] = data[ prop ]; + } + } + } + return cache; + }, + get: function( owner, key ) { + // Either a valid cache is found, or will be created. + // New caches will be created and the unlock returned, + // allowing direct access to the newly created + // empty data object. A valid owner object must be provided. + var cache = this.cache[ this.key( owner ) ]; + + return key === undefined ? + cache : cache[ key ]; + }, + access: function( owner, key, value ) { + var stored; + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ((key && typeof key === "string") && value === undefined) ) { + + stored = this.get( owner, key ); + + return stored !== undefined ? + stored : this.get( owner, jQuery.camelCase(key) ); + } + + // [*]When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, name, camel, + unlock = this.key( owner ), + cache = this.cache[ unlock ]; + + if ( key === undefined ) { + this.cache[ unlock ] = {}; + + } else { + // Support array or space separated string of keys + if ( jQuery.isArray( key ) ) { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = key.concat( key.map( jQuery.camelCase ) ); + } else { + camel = jQuery.camelCase( key ); + // Try the string as a key before any manipulation + if ( key in cache ) { + name = [ key, camel ]; + } else { + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + name = camel; + name = name in cache ? + [ name ] : ( name.match( rnotwhite ) || [] ); + } + } + + i = name.length; + while ( i-- ) { + delete cache[ name[ i ] ]; + } + } + }, + hasData: function( owner ) { + return !jQuery.isEmptyObject( + this.cache[ owner[ this.expando ] ] || {} + ); + }, + discard: function( owner ) { + if ( owner[ this.expando ] ) { + delete this.cache[ owner[ this.expando ] ]; + } + } +}; +var data_priv = new Data(); + +var data_user = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /([A-Z])/g; + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + data_user.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend({ + hasData: function( elem ) { + return data_user.hasData( elem ) || data_priv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return data_user.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + data_user.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to data_priv methods, these can be deprecated. + _data: function( elem, name, data ) { + return data_priv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + data_priv.remove( elem, name ); + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = data_user.get( elem ); + + if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE11+ + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.slice(5) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + data_priv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + data_user.set( this, key ); + }); + } + + return access( this, function( value ) { + var data, + camelKey = jQuery.camelCase( key ); + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + // Attempt to get data from the cache + // with the key as-is + data = data_user.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to get data from the cache + // with the key camelized + data = data_user.get( elem, camelKey ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, camelKey, undefined ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each(function() { + // First, attempt to store a copy or reference of any + // data that might've been store with a camelCased key. + var data = data_user.get( this, camelKey ); + + // For HTML5 data-* attribute interop, we have to + // store property names with dashes in a camelCase form. + // This might not apply to all properties...* + data_user.set( this, camelKey, value ); + + // *... In the case of properties that might _actually_ + // have dashes, we need to also store a copy of that + // unchanged property. + if ( key.indexOf("-") !== -1 && data !== undefined ) { + data_user.set( this, key, value ); + } + }); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each(function() { + data_user.remove( this, key ); + }); + } +}); + + +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = data_priv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray( data ) ) { + queue = data_priv.access( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return data_priv.get( elem, key ) || data_priv.access( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + data_priv.remove( elem, [ type + "queue", key ] ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = data_priv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHidden = function( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); + }; + +var rcheckableType = (/^(?:checkbox|radio)$/i); + + + +(function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Safari<=5.1 + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Safari<=5.1, Android<4.2 + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<=11+ + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = "<textarea>x</textarea>"; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +})(); +var strundefined = typeof undefined; + + + +support.focusinBubbles = "onfocusin" in window; + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = data_priv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = data_priv.hasData( elem ) && data_priv.get( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + data_priv.remove( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && jQuery.acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && + jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + elem[ type ](); + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, j, ret, matched, handleObj, + handlerQueue = [], + args = slice.call( arguments ), + handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, matches, sel, handleObj, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG <use> instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.disabled !== true || event.type !== "click" ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var eventDoc, doc, body, + button = original.button; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: Cordova 2.5 (WebKit) (#13255) + // All events should have a target; Cordova deviceready doesn't + if ( !event.target ) { + event.target = document; + } + + // Support: Safari 6.0+, Chrome<28 + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return jQuery.nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } +}; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + // Support: Android<4.0 + src.returnValue === false ? + returnTrue : + returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && e.preventDefault ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && e.stopPropagation ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && e.stopImmediatePropagation ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +// Support: Chrome 15+ +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// Support: Firefox, Chrome, Safari +// Create "bubbling" focus and blur events +if ( !support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = data_priv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + data_priv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = data_priv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + data_priv.remove( doc, fix ); + + } else { + data_priv.access( doc, fix, attaches ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +}); + + +var + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rhtml = /<|&#?\w+;/, + rnoInnerhtml = /<(?:script|style|link)/i, + // checked="checked" or checked + rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, + rscriptType = /^$|\/(?:java|ecma)script/i, + rscriptTypeMasked = /^true\/(.*)/, + rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + + // Support: IE9 + option: [ 1, "<select multiple='multiple'>", "</select>" ], + + thead: [ 1, "<table>", "</table>" ], + col: [ 2, "<table><colgroup>", "</colgroup></table>" ], + tr: [ 2, "<table><tbody>", "</tbody></table>" ], + td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], + + _default: [ 0, "", "" ] + }; + +// Support: IE9 +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: 1.x compatibility +// Manipulating tables requires a tbody +function manipulationTarget( elem, content ) { + return jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? + + elem.getElementsByTagName("tbody")[0] || + elem.appendChild( elem.ownerDocument.createElement("tbody") ) : + elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + + if ( match ) { + elem.type = match[ 1 ]; + } else { + elem.removeAttribute("type"); + } + + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + data_priv.set( + elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" ) + ); + } +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( data_priv.hasData( src ) ) { + pdataOld = data_priv.access( src ); + pdataCur = data_priv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( data_user.hasData( src ) ) { + udataOld = data_user.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + data_user.set( dest, udataCur ); + } +} + +function getAll( context, tag ) { + var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) : + context.querySelectorAll ? context.querySelectorAll( tag || "*" ) : + []; + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], ret ) : + ret; +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var elem, tmp, tag, wrap, contains, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + // Support: QtWebKit, PhantomJS + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: QtWebKit, PhantomJS + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; + }, + + cleanData: function( elems ) { + var data, elem, type, key, + special = jQuery.event.special, + i = 0; + + for ( ; (elem = elems[ i ]) !== undefined; i++ ) { + if ( jQuery.acceptData( elem ) ) { + key = elem[ data_priv.expando ]; + + if ( key && (data = data_priv.cache[ key ]) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + if ( data_priv.cache[ key ] ) { + // Discard any remaining `private` data + delete data_priv.cache[ key ]; + } + } + } + // Discard any remaining `user` data + delete data_user.cache[ elem[ data_user.expando ] ]; + } + } +}); + +jQuery.fn.extend({ + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each(function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + }); + }, null, value, arguments.length ); + }, + + append: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + remove: function( selector, keepData /* Internal Use Only */ ) { + var elem, + elems = selector ? jQuery.filter( selector, this ) : this, + i = 0; + + for ( ; (elem = elems[i]) != null; i++ ) { + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map(function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1></$2>" ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var arg = arguments[ 0 ]; + + // Make the changes, replacing each context element with the new content + this.domManip( arguments, function( elem ) { + arg = this.parentNode; + + jQuery.cleanData( getAll( this ) ); + + if ( arg ) { + arg.replaceChild( elem, this ); + } + }); + + // Force removal if there was no new content (e.g., from empty arguments) + return arg && (arg.length || arg.nodeType) ? this : this.remove(); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, callback ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[ 0 ], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + self.domManip( args, callback ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + // Support: QtWebKit + // jQuery.merge because push.apply(_, arraylike) throws + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( this[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) ); + } + } + } + } + } + } + + return this; + } +}); + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: QtWebKit + // .get() because push.apply(_, arraylike) throws + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +}); + + +var iframe, + elemdisplay = {}; + +/** + * Retrieve the actual display of a element + * @param {String} name nodeName of the element + * @param {Object} doc Document object + */ +// Called only from within defaultDisplay +function actualDisplay( name, doc ) { + var style, + elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), + + // getDefaultComputedStyle might be reliably used only on attached element + display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? + + // Use of this method is a temporary fix (more like optimization) until something better comes along, + // since it was removed from specification and supported only in FF + style.display : jQuery.css( elem[ 0 ], "display" ); + + // We don't have any data stored on the element, + // so use "detach" method as fast way to get rid of the element + elem.detach(); + + return display; +} + +/** + * Try to determine the default display value of an element + * @param {String} nodeName + */ +function defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + + // Use the already-created iframe if possible + iframe = (iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" )).appendTo( doc.documentElement ); + + // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse + doc = iframe[ 0 ].contentDocument; + + // Support: IE + doc.write(); + doc.close(); + + display = actualDisplay( nodeName, doc ); + iframe.detach(); + } + + // Store the correct default display + elemdisplay[ nodeName ] = display; + } + + return display; +} +var rmargin = (/^margin/); + +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + // Support: IE<=11+, Firefox<=30+ (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + if ( elem.ownerDocument.defaultView.opener ) { + return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); + } + + return window.getComputedStyle( elem, null ); + }; + + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + style = elem.style; + + computed = computed || getStyles( elem ); + + // Support: IE9 + // getPropertyValue is only needed for .css('filter') (#12537) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + } + + if ( computed ) { + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // Support: iOS < 6 + // A tribute to the "awesome hack by Dean Edwards" + // iOS < 6 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + // Support: IE + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return (this.get = hookFn).apply( this, arguments ); + } + }; +} + + +(function() { + var pixelPositionVal, boxSizingReliableVal, + docElem = document.documentElement, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + if ( !div.style ) { + return; + } + + // Support: IE9-11+ + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + container.style.cssText = "border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;" + + "position:absolute"; + container.appendChild( div ); + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computePixelPositionAndBoxSizingReliable() { + div.style.cssText = + // Support: Firefox<29, Android 2.3 + // Vendor-prefix box-sizing + "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;" + + "box-sizing:border-box;display:block;margin-top:1%;top:1%;" + + "border:1px;padding:1px;width:4px;position:absolute"; + div.innerHTML = ""; + docElem.appendChild( container ); + + var divStyle = window.getComputedStyle( div, null ); + pixelPositionVal = divStyle.top !== "1%"; + boxSizingReliableVal = divStyle.width === "4px"; + + docElem.removeChild( container ); + } + + // Support: node.js jsdom + // Don't assume that getComputedStyle is a property of the global object + if ( window.getComputedStyle ) { + jQuery.extend( support, { + pixelPosition: function() { + + // This test is executed only once but we still do memoizing + // since we can use the boxSizingReliable pre-computing. + // No need to check if the test was already performed, though. + computePixelPositionAndBoxSizingReliable(); + return pixelPositionVal; + }, + boxSizingReliable: function() { + if ( boxSizingReliableVal == null ) { + computePixelPositionAndBoxSizingReliable(); + } + return boxSizingReliableVal; + }, + reliableMarginRight: function() { + + // Support: Android 2.3 + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. (#3333) + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + // This support function is only executed once so no memoizing is needed. + var ret, + marginDiv = div.appendChild( document.createElement( "div" ) ); + + // Reset CSS: box-sizing; display; margin; border; padding + marginDiv.style.cssText = div.style.cssText = + // Support: Firefox<29, Android 2.3 + // Vendor-prefix box-sizing + "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" + + "box-sizing:content-box;display:block;margin:0;border:0;padding:0"; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; + docElem.appendChild( container ); + + ret = !parseFloat( window.getComputedStyle( marginDiv, null ).marginRight ); + + docElem.removeChild( container ); + div.removeChild( marginDiv ); + + return ret; + } + }); + } +})(); + + +// A method for quickly swapping in/out CSS properties to get correct calculations. +jQuery.swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + +var + // Swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ), + rrelNum = new RegExp( "^([+-])=(" + pnum + ")", "i" ), + + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; + +// Return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { + + // Shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; + } + + // Check for vendor prefixed names + var capName = name[0].toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; + } + } + + return origName; +} + +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + // Both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // At this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + // At this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // At this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var valueIsBorderBox = true, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + styles = getStyles( elem ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } + + // Check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && + ( support.boxSizingReliable() || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // Use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +function showHide( elements, show ) { + var display, elem, hidden, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + values[ index ] = data_priv.get( elem, "olddisplay" ); + display = elem.style.display; + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = data_priv.access( elem, "olddisplay", defaultDisplay(elem.nodeName) ); + } + } else { + hidden = isHidden( elem ); + + if ( display !== "none" || !hidden ) { + data_priv.set( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; +} + +jQuery.extend({ + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + "float": "cssFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // Support: IE9-11+ + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { + style[ name ] = value; + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + } +}); + +jQuery.each([ "height", "width" ], function( i, name ) { + jQuery.cssHooks[ name ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && elem.offsetWidth === 0 ? + jQuery.swap( elem, cssShow, function() { + return getWidthOrHeight( elem, name, extra ); + }) : + getWidthOrHeight( elem, name, extra ); + } + }, + + set: function( elem, value, extra ) { + var styles = extra && getStyles( elem ); + return setPositiveNumber( elem, value, extra ? + augmentWidthOrHeight( + elem, + name, + extra, + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + styles + ) : 0 + ); + } + }; +}); + +// Support: Android 2.3 +jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight, + function( elem, computed ) { + if ( computed ) { + return jQuery.swap( elem, { "display": "inline-block" }, + curCSS, [ elem, "marginRight" ] ); + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each({ + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split(" ") : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( !rmargin.test( prefix ) ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +}); + +jQuery.fn.extend({ + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( jQuery.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each(function() { + if ( isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); + } +}); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || "swing"; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + if ( tween.elem[ tween.prop ] != null && + (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE9 +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + } +}; + +jQuery.fx = Tween.prototype.init; + +// Back Compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, timerId, + rfxtypes = /^(?:toggle|show|hide)$/, + rfxnum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ), + rrun = /queueHooks$/, + animationPrefilters = [ defaultPrefilter ], + tweeners = { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ), + target = tween.cur(), + parts = rfxnum.exec( value ), + unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) && + rfxnum.exec( jQuery.css( tween.elem, prop ) ), + scale = 1, + maxIterations = 20; + + if ( start && start[ 3 ] !== unit ) { + // Trust units reported by jQuery.css + unit = unit || start[ 3 ]; + + // Make sure we update the tween properties later on + parts = parts || []; + + // Iteratively approximate from a nonzero starting point + start = +target || 1; + + do { + // If previous iteration zeroed out, double until we get *something*. + // Use string for doubling so we don't accidentally see scale as unchanged below + scale = scale || ".5"; + + // Adjust and apply + start = start / scale; + jQuery.style( tween.elem, prop, start + unit ); + + // Update scale, tolerating zero or NaN from tween.cur(), + // break the loop if scale is unchanged or perfect, or if we've just had enough + } while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations ); + } + + // Update tween properties + if ( parts ) { + start = tween.start = +start || +target || 0; + tween.unit = unit; + // If a +=/-= token was provided, we're doing a relative animation + tween.end = parts[ 1 ] ? + start + ( parts[ 1 ] + 1 ) * parts[ 2 ] : + +parts[ 2 ]; + } + + return tween; + } ] + }; + +// Animations created synchronously will run synchronously +function createFxNow() { + setTimeout(function() { + fxNow = undefined; + }); + return ( fxNow = jQuery.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4 ; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( (tween = collection[ index ].call( animation, prop, value )) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + /* jshint validthis: true */ + var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHidden( elem ), + dataShow = data_priv.get( elem, "fxshow" ); + + // Handle queue: false promises + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always(function() { + // Ensure the complete handler is called before this completes + anim.always(function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + }); + }); + } + + // Height/width overflow pass + if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) { + // Make sure that nothing sneaks out + // Record all 3 overflow attributes because IE9-10 do not + // change the overflow attribute when overflowX and + // overflowY are set to the same value + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Set display property to inline-block for height/width + // animations on inline elements that are having width/height animated + display = jQuery.css( elem, "display" ); + + // Test default display if display is currently "none" + checkDisplay = display === "none" ? + data_priv.get( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display; + + if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) { + style.display = "inline-block"; + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always(function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + }); + } + + // show/hide pass + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.exec( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + + // Any non-fx value stops us from restoring the original display value + } else { + display = undefined; + } + } + + if ( !jQuery.isEmptyObject( orig ) ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = data_priv.access( elem, "fxshow", {} ); + } + + // Store state if its toggle - enables .stop().toggle() to "reverse" + if ( toggle ) { + dataShow.hidden = !hidden; + } + if ( hidden ) { + jQuery( elem ).show(); + } else { + anim.done(function() { + jQuery( elem ).hide(); + }); + } + anim.done(function() { + var prop; + + data_priv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + }); + for ( prop in orig ) { + tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = tween.start; + if ( hidden ) { + tween.end = tween.start; + tween.start = prop === "width" || prop === "height" ? 1 : 0; + } + } + } + + // If this is a noop like .hide().hide(), restore an overwritten display value + } else if ( (display === "none" ? defaultDisplay( elem.nodeName ) : display) === "inline" ) { + style.display = display; + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = jQuery.camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( jQuery.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = animationPrefilters.length, + deferred = jQuery.Deferred().always( function() { + // Don't match elem in the :animated selector + delete tick.elem; + }), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + // Support: Android 2.3 + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ]); + + if ( percent < 1 && length ) { + return remaining; + } else { + deferred.resolveWith( elem, [ animation ] ); + return false; + } + }, + animation = deferred.promise({ + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { specialEasing: {} }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length ; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + }), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length ; index++ ) { + result = animationPrefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( jQuery.isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + }) + ); + + // attach callbacks from options + return animation.progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweener: function( props, callback ) { + if ( jQuery.isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.split(" "); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length ; index++ ) { + prop = props[ index ]; + tweeners[ prop ] = tweeners[ prop ] || []; + tweeners[ prop ].unshift( callback ); + } + }, + + prefilter: function( callback, prepend ) { + if ( prepend ) { + animationPrefilters.unshift( callback ); + } else { + animationPrefilters.push( callback ); + } + } +}); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + jQuery.isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing + }; + + opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : + opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default; + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( jQuery.isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend({ + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHidden ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate({ opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || data_priv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each(function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = data_priv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) { + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + }); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each(function() { + var index, + data = data_priv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + }); + } +}); + +jQuery.each([ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +}); + +// Generate shortcuts for custom animations +jQuery.each({ + slideDown: genFx("show"), + slideUp: genFx("hide"), + slideToggle: genFx("toggle"), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +}); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = jQuery.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + // Checks the timer has not already been removed + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + if ( timer() ) { + jQuery.fx.start(); + } else { + jQuery.timers.pop(); + } +}; + +jQuery.fx.interval = 13; + +jQuery.fx.start = function() { + if ( !timerId ) { + timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval ); + } +}; + +jQuery.fx.stop = function() { + clearInterval( timerId ); + timerId = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); +}; + + +(function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: iOS<=5.1, Android<=4.2+ + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE<=11+ + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: Android<=2.3 + // Options inside disabled selects are incorrectly marked as disabled + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Support: IE<=11+ + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +})(); + + +var nodeHook, boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend({ + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + } +}); + +jQuery.extend({ + attr: function( elem, name, value ) { + var hooks, ret, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === strundefined ) { + return jQuery.prop( elem, name, value ); + } + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + + } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, value + "" ); + return value; + } + + } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, value ) { + var name, propName, + i = 0, + attrNames = value && value.match( rnotwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( (name = attrNames[i++]) ) { + propName = jQuery.propFix[ name ] || name; + + // Boolean attributes get special treatment (#10870) + if ( jQuery.expr.match.bool.test( name ) ) { + // Set corresponding property to false + elem[ propName ] = false; + } + + elem.removeAttribute( name ); + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + jQuery.nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + } +}); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle; + if ( !isXML ) { + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ name ]; + attrHandle[ name ] = ret; + ret = getter( elem, name, isXML ) != null ? + name.toLowerCase() : + null; + attrHandle[ name ] = handle; + } + return ret; + }; +}); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i; + +jQuery.fn.extend({ + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each(function() { + delete this[ jQuery.propFix[ name ] || name ]; + }); + } +}); + +jQuery.extend({ + propFix: { + "for": "htmlFor", + "class": "className" + }, + + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ? + ret : + ( elem[ name ] = value ); + + } else { + return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ? + ret : + elem[ name ]; + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + return elem.hasAttribute( "tabindex" ) || rfocusable.test( elem.nodeName ) || elem.href ? + elem.tabIndex : + -1; + } + } + } +}); + +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + } + }; +} + +jQuery.each([ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +}); + + + + +var rclass = /[\t\r\n\f]/g; + +jQuery.fn.extend({ + addClass: function( value ) { + var classes, elem, cur, clazz, j, finalValue, + proceed = typeof value === "string" && value, + i = 0, + len = this.length; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call( this, j, this.className ) ); + }); + } + + if ( proceed ) { + // The disjunction here is for better compressibility (see removeClass) + classes = ( value || "" ).match( rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + " " + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // only assign if different to avoid unneeded rendering. + finalValue = jQuery.trim( cur ); + if ( elem.className !== finalValue ) { + elem.className = finalValue; + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, clazz, j, finalValue, + proceed = arguments.length === 0 || typeof value === "string" && value, + i = 0, + len = this.length; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call( this, j, this.className ) ); + }); + } + if ( proceed ) { + classes = ( value || "" ).match( rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + "" + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = value ? jQuery.trim( cur ) : ""; + if ( elem.className !== finalValue ) { + elem.className = finalValue; + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // Toggle individual class names + var className, + i = 0, + self = jQuery( this ), + classNames = value.match( rnotwhite ) || []; + + while ( (className = classNames[ i++ ]) ) { + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( type === strundefined || type === "boolean" ) { + if ( this.className ) { + // store className if set + data_priv.set( this, "__className__", this.className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + this.className = this.className || value === false ? "" : data_priv.get( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { + return true; + } + } + + return false; + } +}); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend({ + val: function( value ) { + var hooks, ret, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // Handle most common string cases + ret.replace(rreturn, "") : + // Handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + // Support: IE10-11+ + // option.text throws exceptions (#14686, #14858) + jQuery.trim( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // IE6-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + // Don't return options that are disabled or in a disabled optgroup + ( support.optDisabled ? !option.disabled : option.getAttribute( "disabled" ) === null ) && + ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + if ( (option.selected = jQuery.inArray( option.value, values ) >= 0) ) { + optionSet = true; + } + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +}); + +// Radios and checkboxes getter/setter +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute("value") === null ? "on" : elem.value; + }; + } +}); + + + + +// Return jQuery for attributes-only inclusion + + +jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); + }; +}); + +jQuery.fn.extend({ + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + }, + + bind: function( types, data, fn ) { + return this.on( types, null, data, fn ); + }, + unbind: function( types, fn ) { + return this.off( types, null, fn ); + }, + + delegate: function( selector, types, data, fn ) { + return this.on( types, selector, data, fn ); + }, + undelegate: function( selector, types, fn ) { + // ( namespace ) or ( selector, types [, fn] ) + return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); + } +}); + + +var nonce = jQuery.now(); + +var rquery = (/\?/); + + + +// Support: Android 2.3 +// Workaround failure to string-cast null input +jQuery.parseJSON = function( data ) { + return JSON.parse( data + "" ); +}; + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE9 + try { + tmp = new DOMParser(); + xml = tmp.parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rhash = /#.*$/, + rts = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Document location + ajaxLocation = window.location.href, + + // Segment location into parts + ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || []; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || []; + + if ( jQuery.isFunction( func ) ) { + // For each dataType in the dataTypeExpression + while ( (dataType = dataTypes[i++]) ) { + // Prepend if requested + if ( dataType[0] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + (structure[ dataType ] = structure[ dataType ] || []).unshift( func ); + + // Otherwise append + } else { + (structure[ dataType ] = structure[ dataType ] || []).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + }); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader("Content-Type"); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s[ "throws" ] ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend({ + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: ajaxLocation, + type: "GET", + isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /xml/, + html: /html/, + json: /json/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": jQuery.parseJSON, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + // URL without anti-cache param + cacheURL, + // Response headers + responseHeadersString, + responseHeaders, + // timeout handle + timeoutTimer, + // Cross-domain detection vars + parts, + // To know if global events are to be dispatched + fireGlobals, + // Loop variable + i, + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + // Callbacks context + callbackContext = s.context || s, + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks("once memory"), + // Status-dependent callbacks + statusCode = s.statusCode || {}, + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + // The jqXHR state + state = 0, + // Default abort message + strAbort = "canceled", + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( state === 2 ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( (match = rheaders.exec( responseHeadersString )) ) { + responseHeaders[ match[1].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function() { + return state === 2 ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + var lname = name.toLowerCase(); + if ( !state ) { + name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( !state ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( state < 2 ) { + for ( code in map ) { + // Lazy-add the new callback in a way that preserves old ones + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } else { + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ).complete = completeDeferred.add; + jqXHR.success = jqXHR.done; + jqXHR.error = jqXHR.fail; + + // Remove hash character (#7531: and string promotion) + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" ) + .replace( rprotocol, ajaxLocParts[ 1 ] + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( rnotwhite ) || [ "" ]; + + // A cross-domain request is in order when we have a protocol:host:port mismatch + if ( s.crossDomain == null ) { + parts = rurl.exec( s.url.toLowerCase() ); + s.crossDomain = !!( parts && + ( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] || + ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !== + ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) ) + ); + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( state === 2 ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger("ajaxStart"); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + cacheURL = s.url; + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // If data is available, append data to url + if ( s.data ) { + cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data ); + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add anti-cache in url if needed + if ( s.cache === false ) { + s.url = rts.test( cacheURL ) ? + + // If there is already a '_' parameter, set its value + cacheURL.replace( rts, "$1_=" + nonce++ ) : + + // Otherwise add one to the end + cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++; + } + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ? + s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) { + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + for ( i in { success: 1, error: 1, complete: 1 } ) { + jqXHR[ i ]( s[ i ] ); + } + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = setTimeout(function() { + jqXHR.abort("timeout"); + }, s.timeout ); + } + + try { + state = 1; + transport.send( requestHeaders, done ); + } catch ( e ) { + // Propagate exception as error if not done + if ( state < 2 ) { + done( -1, e ); + // Simply rethrow otherwise + } else { + throw e; + } + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Called once + if ( state === 2 ) { + return; + } + + // State is "done" now + state = 2; + + // Clear timeout if it exists + if ( timeoutTimer ) { + clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader("Last-Modified"); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader("etag"); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger("ajaxStop"); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +}); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + // Shift arguments if data argument was omitted + if ( jQuery.isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + return jQuery.ajax({ + url: url, + type: method, + dataType: type, + data: data, + success: callback + }); + }; +}); + + +jQuery._evalUrl = function( url ) { + return jQuery.ajax({ + url: url, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); +}; + + +jQuery.fn.extend({ + wrapAll: function( html ) { + var wrap; + + if ( jQuery.isFunction( html ) ) { + return this.each(function( i ) { + jQuery( this ).wrapAll( html.call(this, i) ); + }); + } + + if ( this[ 0 ] ) { + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + }).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function( i ) { + jQuery( this ).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each(function( i ) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); + }, + + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + } +}); + + +jQuery.expr.filters.hidden = function( elem ) { + // Support: Opera <= 12.12 + // Opera reports offsetWidths and offsetHeights less than zero on some elements + return elem.offsetWidth <= 0 && elem.offsetHeight <= 0; +}; +jQuery.expr.filters.visible = function( elem ) { + return !jQuery.expr.filters.hidden( elem ); +}; + + + + +var r20 = /%20/g, + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( jQuery.isArray( obj ) ) { + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + // Item is non-scalar (array or object), encode its numeric index. + buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add ); + } + }); + + } else if ( !traditional && jQuery.type( obj ) === "object" ) { + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, value ) { + // If value is a function, invoke it and return its value + value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value ); + s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value ); + }; + + // Set traditional to true for jQuery <= 1.3.2 behavior. + if ( traditional === undefined ) { + traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + }); + + } else { + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ).replace( r20, "+" ); +}; + +jQuery.fn.extend({ + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map(function() { + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + }) + .filter(function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + }) + .map(function( i, elem ) { + var val = jQuery( this ).val(); + + return val == null ? + null : + jQuery.isArray( val ) ? + jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }) : + { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + }).get(); + } +}); + + +jQuery.ajaxSettings.xhr = function() { + try { + return new XMLHttpRequest(); + } catch( e ) {} +}; + +var xhrId = 0, + xhrCallbacks = {}, + xhrSuccessStatus = { + // file protocol always yields status code 0, assume 200 + 0: 200, + // Support: IE9 + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +// Support: IE9 +// Open requests must be manually aborted on unload (#5280) +// See https://support.microsoft.com/kb/2856746 for more info +if ( window.attachEvent ) { + window.attachEvent( "onunload", function() { + for ( var key in xhrCallbacks ) { + xhrCallbacks[ key ](); + } + }); +} + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport(function( options ) { + var callback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(), + id = ++xhrId; + + xhr.open( options.type, options.url, options.async, options.username, options.password ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers["X-Requested-With"] ) { + headers["X-Requested-With"] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + delete xhrCallbacks[ id ]; + callback = xhr.onload = xhr.onerror = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + complete( + // file: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + // Support: IE9 + // Accessing binary-data responseText throws an exception + // (#11426) + typeof xhr.responseText === "string" ? { + text: xhr.responseText + } : undefined, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + xhr.onerror = callback("error"); + + // Create the abort callback + callback = xhrCallbacks[ id ] = callback("abort"); + + try { + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +}); + + + + +// Install script dataType +jQuery.ajaxSetup({ + accepts: { + script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /(?:java|ecma)script/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +}); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +}); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery("<script>").prop({ + async: true, + charset: s.scriptCharset, + src: s.url + }).on( + "load error", + callback = function( evt ) { + script.remove(); + callback = null; + if ( evt ) { + complete( evt.type === "error" ? 404 : 200, evt.type ); + } + } + ); + document.head.appendChild( script[ 0 ] ); + }, + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +}); + + + + +var oldCallbacks = [], + rjsonp = /(=)\?(?=&|$)|\?\?/; + +// Default jsonp settings +jQuery.ajaxSetup({ + jsonp: "callback", + jsonpCallback: function() { + var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); + this[ callback ] = true; + return callback; + } +}); + +// Detect, normalize options and install callbacks for jsonp requests +jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { + + var callbackName, overwritten, responseContainer, + jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? + "url" : + typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data" + ); + + // Handle iff the expected data type is "jsonp" or we have a parameter to set + if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { + + // Get callback name, remembering preexisting value associated with it + callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ? + s.jsonpCallback() : + s.jsonpCallback; + + // Insert callback into url or form data + if ( jsonProp ) { + s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); + } else if ( s.jsonp !== false ) { + s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; + } + + // Use data converter to retrieve json after script execution + s.converters["script json"] = function() { + if ( !responseContainer ) { + jQuery.error( callbackName + " was not called" ); + } + return responseContainer[ 0 ]; + }; + + // force json dataType + s.dataTypes[ 0 ] = "json"; + + // Install callback + overwritten = window[ callbackName ]; + window[ callbackName ] = function() { + responseContainer = arguments; + }; + + // Clean-up function (fires after converters) + jqXHR.always(function() { + // Restore preexisting value + window[ callbackName ] = overwritten; + + // Save back as free + if ( s[ callbackName ] ) { + // make sure that re-using the options doesn't screw things around + s.jsonpCallback = originalSettings.jsonpCallback; + + // save the callback name for future use + oldCallbacks.push( callbackName ); + } + + // Call if it was a function and we have a response + if ( responseContainer && jQuery.isFunction( overwritten ) ) { + overwritten( responseContainer[ 0 ] ); + } + + responseContainer = overwritten = undefined; + }); + + // Delegate to script + return "script"; + } +}); + + + + +// data: string of html +// context (optional): If specified, the fragment will be created in this context, defaults to document +// keepScripts (optional): If true, will include scripts passed in the html string +jQuery.parseHTML = function( data, context, keepScripts ) { + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + keepScripts = context; + context = false; + } + context = context || document; + + var parsed = rsingleTag.exec( data ), + scripts = !keepScripts && []; + + // Single tag + if ( parsed ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ); + + if ( scripts && scripts.length ) { + jQuery( scripts ).remove(); + } + + return jQuery.merge( [], parsed.childNodes ); +}; + + +// Keep a copy of the old load method +var _load = jQuery.fn.load; + +/** + * Load a url into a page + */ +jQuery.fn.load = function( url, params, callback ) { + if ( typeof url !== "string" && _load ) { + return _load.apply( this, arguments ); + } + + var selector, type, response, + self = this, + off = url.indexOf(" "); + + if ( off >= 0 ) { + selector = jQuery.trim( url.slice( off ) ); + url = url.slice( 0, off ); + } + + // If it's a function + if ( jQuery.isFunction( params ) ) { + + // We assume that it's the callback + callback = params; + params = undefined; + + // Otherwise, build a param string + } else if ( params && typeof params === "object" ) { + type = "POST"; + } + + // If we have elements to modify, make the request + if ( self.length > 0 ) { + jQuery.ajax({ + url: url, + + // if "type" variable is undefined, then "GET" method will be used + type: type, + dataType: "html", + data: params + }).done(function( responseText ) { + + // Save response for use in complete callback + response = arguments; + + self.html( selector ? + + // If a selector was specified, locate the right elements in a dummy div + // Exclude scripts to avoid IE 'Permission Denied' errors + jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) : + + // Otherwise use the full result + responseText ); + + }).complete( callback && function( jqXHR, status ) { + self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] ); + }); + } + + return this; +}; + + + + +// Attach a bunch of functions for handling common AJAX events +jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { + jQuery.fn[ type ] = function( fn ) { + return this.on( type, fn ); + }; +}); + + + + +jQuery.expr.filters.animated = function( elem ) { + return jQuery.grep(jQuery.timers, function( fn ) { + return elem === fn.elem; + }).length; +}; + + + + +var docElem = window.document.documentElement; + +/** + * Gets a window from an element + */ +function getWindow( elem ) { + return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView; +} + +jQuery.offset = { + setOffset: function( elem, options, i ) { + var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, + position = jQuery.css( elem, "position" ), + curElem = jQuery( elem ), + props = {}; + + // Set position first, in-case top/left are set even on static elem + if ( position === "static" ) { + elem.style.position = "relative"; + } + + curOffset = curElem.offset(); + curCSSTop = jQuery.css( elem, "top" ); + curCSSLeft = jQuery.css( elem, "left" ); + calculatePosition = ( position === "absolute" || position === "fixed" ) && + ( curCSSTop + curCSSLeft ).indexOf("auto") > -1; + + // Need to be able to calculate position if either + // top or left is auto and position is either absolute or fixed + if ( calculatePosition ) { + curPosition = curElem.position(); + curTop = curPosition.top; + curLeft = curPosition.left; + + } else { + curTop = parseFloat( curCSSTop ) || 0; + curLeft = parseFloat( curCSSLeft ) || 0; + } + + if ( jQuery.isFunction( options ) ) { + options = options.call( elem, i, curOffset ); + } + + if ( options.top != null ) { + props.top = ( options.top - curOffset.top ) + curTop; + } + if ( options.left != null ) { + props.left = ( options.left - curOffset.left ) + curLeft; + } + + if ( "using" in options ) { + options.using.call( elem, props ); + + } else { + curElem.css( props ); + } + } +}; + +jQuery.fn.extend({ + offset: function( options ) { + if ( arguments.length ) { + return options === undefined ? + this : + this.each(function( i ) { + jQuery.offset.setOffset( this, options, i ); + }); + } + + var docElem, win, + elem = this[ 0 ], + box = { top: 0, left: 0 }, + doc = elem && elem.ownerDocument; + + if ( !doc ) { + return; + } + + docElem = doc.documentElement; + + // Make sure it's not a disconnected DOM node + if ( !jQuery.contains( docElem, elem ) ) { + return box; + } + + // Support: BlackBerry 5, iOS 3 (original iPhone) + // If we don't have gBCR, just use 0,0 rather than error + if ( typeof elem.getBoundingClientRect !== strundefined ) { + box = elem.getBoundingClientRect(); + } + win = getWindow( doc ); + return { + top: box.top + win.pageYOffset - docElem.clientTop, + left: box.left + win.pageXOffset - docElem.clientLeft + }; + }, + + position: function() { + if ( !this[ 0 ] ) { + return; + } + + var offsetParent, offset, + elem = this[ 0 ], + parentOffset = { top: 0, left: 0 }; + + // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent + if ( jQuery.css( elem, "position" ) === "fixed" ) { + // Assume getBoundingClientRect is there when computed position is fixed + offset = elem.getBoundingClientRect(); + + } else { + // Get *real* offsetParent + offsetParent = this.offsetParent(); + + // Get correct offsets + offset = this.offset(); + if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) { + parentOffset = offsetParent.offset(); + } + + // Add offsetParent borders + parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ); + parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true ); + } + + // Subtract parent offsets and element margins + return { + top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ), + left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true ) + }; + }, + + offsetParent: function() { + return this.map(function() { + var offsetParent = this.offsetParent || docElem; + + while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position" ) === "static" ) ) { + offsetParent = offsetParent.offsetParent; + } + + return offsetParent || docElem; + }); + } +}); + +// Create scrollLeft and scrollTop methods +jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { + var top = "pageYOffset" === prop; + + jQuery.fn[ method ] = function( val ) { + return access( this, function( elem, method, val ) { + var win = getWindow( elem ); + + if ( val === undefined ) { + return win ? win[ prop ] : elem[ method ]; + } + + if ( win ) { + win.scrollTo( + !top ? val : window.pageXOffset, + top ? val : window.pageYOffset + ); + + } else { + elem[ method ] = val; + } + }, method, val, arguments.length, null ); + }; +}); + +// Support: Safari<7+, Chrome<37+ +// Add the top/left cssHooks using jQuery.fn.position +// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 +// Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280 +// getComputedStyle returns percent when specified for top/left/bottom/right; +// rather than make the css module depend on the offset module, just check for it here +jQuery.each( [ "top", "left" ], function( i, prop ) { + jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, + function( elem, computed ) { + if ( computed ) { + computed = curCSS( elem, prop ); + // If curCSS returns percentage, fallback to offset + return rnumnonpx.test( computed ) ? + jQuery( elem ).position()[ prop ] + "px" : + computed; + } + } + ); +}); + + +// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods +jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { + jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) { + // Margin is only for outerHeight, outerWidth + jQuery.fn[ funcName ] = function( margin, value ) { + var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), + extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); + + return access( this, function( elem, type, value ) { + var doc; + + if ( jQuery.isWindow( elem ) ) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement[ "client" + name ]; + } + + // Get document width or height + if ( elem.nodeType === 9 ) { + doc = elem.documentElement; + + // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], + // whichever is greatest + return Math.max( + elem.body[ "scroll" + name ], doc[ "scroll" + name ], + elem.body[ "offset" + name ], doc[ "offset" + name ], + doc[ "client" + name ] + ); + } + + return value === undefined ? + // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css( elem, type, extra ) : + + // Set width or height on the element + jQuery.style( elem, type, value, extra ); + }, type, chainable ? margin : undefined, chainable, null ); + }; + }); +}); + + +// The number of elements contained in the matched element set +jQuery.fn.size = function() { + return this.length; +}; + +jQuery.fn.andSelf = jQuery.fn.addBack; + + + + +// Register as a named AMD module, since jQuery can be concatenated with other +// files that may use define, but not via a proper concatenation script that +// understands anonymous AMD modules. A named AMD is safest and most robust +// way to register. Lowercase jquery is used because AMD module names are +// derived from file names, and jQuery is normally delivered in a lowercase +// file name. Do this after creating the global so that if an AMD module wants +// to call noConflict to hide this version of jQuery, it will work. + +// Note that for maximum portability, libraries that are not jQuery should +// declare themselves as anonymous modules, and avoid setting a global if an +// AMD loader is present. jQuery is a special case. For more information, see +// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon + +if ( typeof define === "function" && define.amd ) { + define( "jquery", [], function() { + return jQuery; + }); +} + + + + +var + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$; + +jQuery.noConflict = function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; +}; + +// Expose jQuery and $ identifiers, even in AMD +// (#7102#comment:10, https://github.com/jquery/jquery/pull/557) +// and CommonJS for browser emulators (#13566) +if ( typeof noGlobal === strundefined ) { + window.jQuery = window.$ = jQuery; +} + + + + +return jQuery; + +})); + +},{}],21:[function(require,module,exports){ +'use strict'; + + +var yaml = require('./lib/js-yaml.js'); + + +module.exports = yaml; + +},{"./lib/js-yaml.js":22}],22:[function(require,module,exports){ +'use strict'; + + +var loader = require('./js-yaml/loader'); +var dumper = require('./js-yaml/dumper'); + + +function deprecated(name) { + return function () { + throw new Error('Function ' + name + ' is deprecated and cannot be used.'); + }; +} + + +module.exports.Type = require('./js-yaml/type'); +module.exports.Schema = require('./js-yaml/schema'); +module.exports.FAILSAFE_SCHEMA = require('./js-yaml/schema/failsafe'); +module.exports.JSON_SCHEMA = require('./js-yaml/schema/json'); +module.exports.CORE_SCHEMA = require('./js-yaml/schema/core'); +module.exports.DEFAULT_SAFE_SCHEMA = require('./js-yaml/schema/default_safe'); +module.exports.DEFAULT_FULL_SCHEMA = require('./js-yaml/schema/default_full'); +module.exports.load = loader.load; +module.exports.loadAll = loader.loadAll; +module.exports.safeLoad = loader.safeLoad; +module.exports.safeLoadAll = loader.safeLoadAll; +module.exports.dump = dumper.dump; +module.exports.safeDump = dumper.safeDump; +module.exports.YAMLException = require('./js-yaml/exception'); + +// Deprecared schema names from JS-YAML 2.0.x +module.exports.MINIMAL_SCHEMA = require('./js-yaml/schema/failsafe'); +module.exports.SAFE_SCHEMA = require('./js-yaml/schema/default_safe'); +module.exports.DEFAULT_SCHEMA = require('./js-yaml/schema/default_full'); + +// Deprecated functions from JS-YAML 1.x.x +module.exports.scan = deprecated('scan'); +module.exports.parse = deprecated('parse'); +module.exports.compose = deprecated('compose'); +module.exports.addConstructor = deprecated('addConstructor'); + +},{"./js-yaml/dumper":24,"./js-yaml/exception":25,"./js-yaml/loader":26,"./js-yaml/schema":28,"./js-yaml/schema/core":29,"./js-yaml/schema/default_full":30,"./js-yaml/schema/default_safe":31,"./js-yaml/schema/failsafe":32,"./js-yaml/schema/json":33,"./js-yaml/type":34}],23:[function(require,module,exports){ +'use strict'; + + +function isNothing(subject) { + return (typeof subject === 'undefined') || (null === subject); +} + + +function isObject(subject) { + return (typeof subject === 'object') && (null !== subject); +} + + +function toArray(sequence) { + if (Array.isArray(sequence)) { + return sequence; + } else if (isNothing(sequence)) { + return []; + } + return [ sequence ]; +} + + +function extend(target, source) { + var index, length, key, sourceKeys; + + if (source) { + sourceKeys = Object.keys(source); + + for (index = 0, length = sourceKeys.length; index < length; index += 1) { + key = sourceKeys[index]; + target[key] = source[key]; + } + } + + return target; +} + + +function repeat(string, count) { + var result = '', cycle; + + for (cycle = 0; cycle < count; cycle += 1) { + result += string; + } + + return result; +} + + +function isNegativeZero(number) { + return (0 === number) && (Number.NEGATIVE_INFINITY === 1 / number); +} + + +module.exports.isNothing = isNothing; +module.exports.isObject = isObject; +module.exports.toArray = toArray; +module.exports.repeat = repeat; +module.exports.isNegativeZero = isNegativeZero; +module.exports.extend = extend; + +},{}],24:[function(require,module,exports){ +'use strict'; + +/*eslint-disable no-use-before-define*/ + +var common = require('./common'); +var YAMLException = require('./exception'); +var DEFAULT_FULL_SCHEMA = require('./schema/default_full'); +var DEFAULT_SAFE_SCHEMA = require('./schema/default_safe'); + +var _toString = Object.prototype.toString; +var _hasOwnProperty = Object.prototype.hasOwnProperty; + +var CHAR_TAB = 0x09; /* Tab */ +var CHAR_LINE_FEED = 0x0A; /* LF */ +var CHAR_CARRIAGE_RETURN = 0x0D; /* CR */ +var CHAR_SPACE = 0x20; /* Space */ +var CHAR_EXCLAMATION = 0x21; /* ! */ +var CHAR_DOUBLE_QUOTE = 0x22; /* " */ +var CHAR_SHARP = 0x23; /* # */ +var CHAR_PERCENT = 0x25; /* % */ +var CHAR_AMPERSAND = 0x26; /* & */ +var CHAR_SINGLE_QUOTE = 0x27; /* ' */ +var CHAR_ASTERISK = 0x2A; /* * */ +var CHAR_COMMA = 0x2C; /* , */ +var CHAR_MINUS = 0x2D; /* - */ +var CHAR_COLON = 0x3A; /* : */ +var CHAR_GREATER_THAN = 0x3E; /* > */ +var CHAR_QUESTION = 0x3F; /* ? */ +var CHAR_COMMERCIAL_AT = 0x40; /* @ */ +var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ +var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ +var CHAR_GRAVE_ACCENT = 0x60; /* ` */ +var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ +var CHAR_VERTICAL_LINE = 0x7C; /* | */ +var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ + +var ESCAPE_SEQUENCES = {}; + +ESCAPE_SEQUENCES[0x00] = '\\0'; +ESCAPE_SEQUENCES[0x07] = '\\a'; +ESCAPE_SEQUENCES[0x08] = '\\b'; +ESCAPE_SEQUENCES[0x09] = '\\t'; +ESCAPE_SEQUENCES[0x0A] = '\\n'; +ESCAPE_SEQUENCES[0x0B] = '\\v'; +ESCAPE_SEQUENCES[0x0C] = '\\f'; +ESCAPE_SEQUENCES[0x0D] = '\\r'; +ESCAPE_SEQUENCES[0x1B] = '\\e'; +ESCAPE_SEQUENCES[0x22] = '\\"'; +ESCAPE_SEQUENCES[0x5C] = '\\\\'; +ESCAPE_SEQUENCES[0x85] = '\\N'; +ESCAPE_SEQUENCES[0xA0] = '\\_'; +ESCAPE_SEQUENCES[0x2028] = '\\L'; +ESCAPE_SEQUENCES[0x2029] = '\\P'; + +var DEPRECATED_BOOLEANS_SYNTAX = [ + 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', + 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' +]; + +function compileStyleMap(schema, map) { + var result, keys, index, length, tag, style, type; + + if (null === map) { + return {}; + } + + result = {}; + keys = Object.keys(map); + + for (index = 0, length = keys.length; index < length; index += 1) { + tag = keys[index]; + style = String(map[tag]); + + if ('!!' === tag.slice(0, 2)) { + tag = 'tag:yaml.org,2002:' + tag.slice(2); + } + + type = schema.compiledTypeMap[tag]; + + if (type && _hasOwnProperty.call(type.styleAliases, style)) { + style = type.styleAliases[style]; + } + + result[tag] = style; + } + + return result; +} + +function encodeHex(character) { + var string, handle, length; + + string = character.toString(16).toUpperCase(); + + if (character <= 0xFF) { + handle = 'x'; + length = 2; + } else if (character <= 0xFFFF) { + handle = 'u'; + length = 4; + } else if (character <= 0xFFFFFFFF) { + handle = 'U'; + length = 8; + } else { + throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF'); + } + + return '\\' + handle + common.repeat('0', length - string.length) + string; +} + +function State(options) { + this.schema = options['schema'] || DEFAULT_FULL_SCHEMA; + this.indent = Math.max(1, (options['indent'] || 2)); + this.skipInvalid = options['skipInvalid'] || false; + this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']); + this.styleMap = compileStyleMap(this.schema, options['styles'] || null); + this.sortKeys = options['sortKeys'] || false; + + this.implicitTypes = this.schema.compiledImplicit; + this.explicitTypes = this.schema.compiledExplicit; + + this.tag = null; + this.result = ''; + + this.duplicates = []; + this.usedDuplicates = null; +} + +function indentString(string, spaces) { + var ind = common.repeat(' ', spaces), + position = 0, + next = -1, + result = '', + line, + length = string.length; + + while (position < length) { + next = string.indexOf('\n', position); + if (next === -1) { + line = string.slice(position); + position = length; + } else { + line = string.slice(position, next + 1); + position = next + 1; + } + if (line.length && line !== '\n') { + result += ind; + } + result += line; + } + + return result; +} + +function generateNextLine(state, level) { + return '\n' + common.repeat(' ', state.indent * level); +} + +function testImplicitResolving(state, str) { + var index, length, type; + + for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { + type = state.implicitTypes[index]; + + if (type.resolve(str)) { + return true; + } + } + + return false; +} + +function StringBuilder(source) { + this.source = source; + this.result = ''; + this.checkpoint = 0; +} + +StringBuilder.prototype.takeUpTo = function (position) { + var er; + + if (position < this.checkpoint) { + er = new Error('position should be > checkpoint'); + er.position = position; + er.checkpoint = this.checkpoint; + throw er; + } + + this.result += this.source.slice(this.checkpoint, position); + this.checkpoint = position; + return this; +}; + +StringBuilder.prototype.escapeChar = function () { + var character, esc; + + character = this.source.charCodeAt(this.checkpoint); + esc = ESCAPE_SEQUENCES[character] || encodeHex(character); + this.result += esc; + this.checkpoint += 1; + + return this; +}; + +StringBuilder.prototype.finish = function () { + if (this.source.length > this.checkpoint) { + this.takeUpTo(this.source.length); + } +}; + +function writeScalar(state, object, level) { + var simple, first, spaceWrap, folded, literal, single, double, + sawLineFeed, linePosition, longestLine, indent, max, character, + position, escapeSeq, hexEsc, previous, lineLength, modifier, + trailingLineBreaks, result; + + if (0 === object.length) { + state.dump = "''"; + return; + } + + if (-1 !== DEPRECATED_BOOLEANS_SYNTAX.indexOf(object)) { + state.dump = "'" + object + "'"; + return; + } + + simple = true; + first = object.length ? object.charCodeAt(0) : 0; + spaceWrap = (CHAR_SPACE === first || + CHAR_SPACE === object.charCodeAt(object.length - 1)); + + // Simplified check for restricted first characters + // http://www.yaml.org/spec/1.2/spec.html#ns-plain-first%28c%29 + if (CHAR_MINUS === first || + CHAR_QUESTION === first || + CHAR_COMMERCIAL_AT === first || + CHAR_GRAVE_ACCENT === first) { + simple = false; + } + + // can only use > and | if not wrapped in spaces. + if (spaceWrap) { + simple = false; + folded = false; + literal = false; + } else { + folded = true; + literal = true; + } + + single = true; + double = new StringBuilder(object); + + sawLineFeed = false; + linePosition = 0; + longestLine = 0; + + indent = state.indent * level; + max = 80; + if (indent < 40) { + max -= indent; + } else { + max = 40; + } + + for (position = 0; position < object.length; position++) { + character = object.charCodeAt(position); + if (simple) { + // Characters that can never appear in the simple scalar + if (!simpleChar(character)) { + simple = false; + } else { + // Still simple. If we make it all the way through like + // this, then we can just dump the string as-is. + continue; + } + } + + if (single && character === CHAR_SINGLE_QUOTE) { + single = false; + } + + escapeSeq = ESCAPE_SEQUENCES[character]; + hexEsc = needsHexEscape(character); + + if (!escapeSeq && !hexEsc) { + continue; + } + + if (character !== CHAR_LINE_FEED && + character !== CHAR_DOUBLE_QUOTE && + character !== CHAR_SINGLE_QUOTE) { + folded = false; + literal = false; + } else if (character === CHAR_LINE_FEED) { + sawLineFeed = true; + single = false; + if (position > 0) { + previous = object.charCodeAt(position - 1); + if (previous === CHAR_SPACE) { + literal = false; + folded = false; + } + } + if (folded) { + lineLength = position - linePosition; + linePosition = position; + if (lineLength > longestLine) { + longestLine = lineLength; + } + } + } + + if (character !== CHAR_DOUBLE_QUOTE) { + single = false; + } + + double.takeUpTo(position); + double.escapeChar(); + } + + if (simple && testImplicitResolving(state, object)) { + simple = false; + } + + modifier = ''; + if (folded || literal) { + trailingLineBreaks = 0; + if (object.charCodeAt(object.length - 1) === CHAR_LINE_FEED) { + trailingLineBreaks += 1; + if (object.charCodeAt(object.length - 2) === CHAR_LINE_FEED) { + trailingLineBreaks += 1; + } + } + + if (trailingLineBreaks === 0) { + modifier = '-'; + } else if (trailingLineBreaks === 2) { + modifier = '+'; + } + } + + if (literal && longestLine < max) { + folded = false; + } + + // If it's literally one line, then don't bother with the literal. + // We may still want to do a fold, though, if it's a super long line. + if (!sawLineFeed) { + literal = false; + } + + if (simple) { + state.dump = object; + } else if (single) { + state.dump = '\'' + object + '\''; + } else if (folded) { + result = fold(object, max); + state.dump = '>' + modifier + '\n' + indentString(result, indent); + } else if (literal) { + if (!modifier) { + object = object.replace(/\n$/, ''); + } + state.dump = '|' + modifier + '\n' + indentString(object, indent); + } else if (double) { + double.finish(); + state.dump = '"' + double.result + '"'; + } else { + throw new Error('Failed to dump scalar value'); + } + + return; +} + +// The `trailing` var is a regexp match of any trailing `\n` characters. +// +// There are three cases we care about: +// +// 1. One trailing `\n` on the string. Just use `|` or `>`. +// This is the assumed default. (trailing = null) +// 2. No trailing `\n` on the string. Use `|-` or `>-` to "chomp" the end. +// 3. More than one trailing `\n` on the string. Use `|+` or `>+`. +// +// In the case of `>+`, these line breaks are *not* doubled (like the line +// breaks within the string), so it's important to only end with the exact +// same number as we started. +function fold(object, max) { + var result = '', + position = 0, + length = object.length, + trailing = /\n+$/.exec(object), + newLine; + + if (trailing) { + length = trailing.index + 1; + } + + while (position < length) { + newLine = object.indexOf('\n', position); + if (newLine > length || newLine === -1) { + if (result) { + result += '\n\n'; + } + result += foldLine(object.slice(position, length), max); + position = length; + } else { + if (result) { + result += '\n\n'; + } + result += foldLine(object.slice(position, newLine), max); + position = newLine + 1; + } + } + if (trailing && trailing[0] !== '\n') { + result += trailing[0]; + } + + return result; +} + +function foldLine(line, max) { + if (line === '') { + return line; + } + + var foldRe = /[^\s] [^\s]/g, + result = '', + prevMatch = 0, + foldStart = 0, + match = foldRe.exec(line), + index, + foldEnd, + folded; + + while (match) { + index = match.index; + + // when we cross the max len, if the previous match would've + // been ok, use that one, and carry on. If there was no previous + // match on this fold section, then just have a long line. + if (index - foldStart > max) { + if (prevMatch !== foldStart) { + foldEnd = prevMatch; + } else { + foldEnd = index; + } + + if (result) { + result += '\n'; + } + folded = line.slice(foldStart, foldEnd); + result += folded; + foldStart = foldEnd + 1; + } + prevMatch = index + 1; + match = foldRe.exec(line); + } + + if (result) { + result += '\n'; + } + + // if we end up with one last word at the end, then the last bit might + // be slightly bigger than we wanted, because we exited out of the loop. + if (foldStart !== prevMatch && line.length - foldStart > max) { + result += line.slice(foldStart, prevMatch) + '\n' + + line.slice(prevMatch + 1); + } else { + result += line.slice(foldStart); + } + + return result; +} + +// Returns true if character can be found in a simple scalar +function simpleChar(character) { + return CHAR_TAB !== character && + CHAR_LINE_FEED !== character && + CHAR_CARRIAGE_RETURN !== character && + CHAR_COMMA !== character && + CHAR_LEFT_SQUARE_BRACKET !== character && + CHAR_RIGHT_SQUARE_BRACKET !== character && + CHAR_LEFT_CURLY_BRACKET !== character && + CHAR_RIGHT_CURLY_BRACKET !== character && + CHAR_SHARP !== character && + CHAR_AMPERSAND !== character && + CHAR_ASTERISK !== character && + CHAR_EXCLAMATION !== character && + CHAR_VERTICAL_LINE !== character && + CHAR_GREATER_THAN !== character && + CHAR_SINGLE_QUOTE !== character && + CHAR_DOUBLE_QUOTE !== character && + CHAR_PERCENT !== character && + CHAR_COLON !== character && + !ESCAPE_SEQUENCES[character] && + !needsHexEscape(character); +} + +// Returns true if the character code needs to be escaped. +function needsHexEscape(character) { + return !((0x00020 <= character && character <= 0x00007E) || + (0x00085 === character) || + (0x000A0 <= character && character <= 0x00D7FF) || + (0x0E000 <= character && character <= 0x00FFFD) || + (0x10000 <= character && character <= 0x10FFFF)); +} + +function writeFlowSequence(state, level, object) { + var _result = '', + _tag = state.tag, + index, + length; + + for (index = 0, length = object.length; index < length; index += 1) { + // Write only valid elements. + if (writeNode(state, level, object[index], false, false)) { + if (0 !== index) { + _result += ', '; + } + _result += state.dump; + } + } + + state.tag = _tag; + state.dump = '[' + _result + ']'; +} + +function writeBlockSequence(state, level, object, compact) { + var _result = '', + _tag = state.tag, + index, + length; + + for (index = 0, length = object.length; index < length; index += 1) { + // Write only valid elements. + if (writeNode(state, level + 1, object[index], true, true)) { + if (!compact || 0 !== index) { + _result += generateNextLine(state, level); + } + _result += '- ' + state.dump; + } + } + + state.tag = _tag; + state.dump = _result || '[]'; // Empty sequence if no valid values. +} + +function writeFlowMapping(state, level, object) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + pairBuffer; + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + pairBuffer = ''; + + if (0 !== index) { + pairBuffer += ', '; + } + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (!writeNode(state, level, objectKey, false, false)) { + continue; // Skip this pair because of invalid key; + } + + if (state.dump.length > 1024) { + pairBuffer += '? '; + } + + pairBuffer += state.dump + ': '; + + if (!writeNode(state, level, objectValue, false, false)) { + continue; // Skip this pair because of invalid value. + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = '{' + _result + '}'; +} + +function writeBlockMapping(state, level, object, compact) { + var _result = '', + _tag = state.tag, + objectKeyList = Object.keys(object), + index, + length, + objectKey, + objectValue, + explicitPair, + pairBuffer; + + // Allow sorting keys so that the output file is deterministic + if (state.sortKeys === true) { + // Default sorting + objectKeyList.sort(); + } else if (typeof state.sortKeys === 'function') { + // Custom sort function + objectKeyList.sort(state.sortKeys); + } else if (state.sortKeys) { + // Something is wrong + throw new YAMLException('sortKeys must be a boolean or a function'); + } + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + pairBuffer = ''; + + if (!compact || 0 !== index) { + pairBuffer += generateNextLine(state, level); + } + + objectKey = objectKeyList[index]; + objectValue = object[objectKey]; + + if (!writeNode(state, level + 1, objectKey, true, true)) { + continue; // Skip this pair because of invalid key. + } + + explicitPair = (null !== state.tag && '?' !== state.tag) || + (state.dump && state.dump.length > 1024); + + if (explicitPair) { + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += '?'; + } else { + pairBuffer += '? '; + } + } + + pairBuffer += state.dump; + + if (explicitPair) { + pairBuffer += generateNextLine(state, level); + } + + if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { + continue; // Skip this pair because of invalid value. + } + + if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { + pairBuffer += ':'; + } else { + pairBuffer += ': '; + } + + pairBuffer += state.dump; + + // Both key and value are valid. + _result += pairBuffer; + } + + state.tag = _tag; + state.dump = _result || '{}'; // Empty mapping if no valid pairs. +} + +function detectType(state, object, explicit) { + var _result, typeList, index, length, type, style; + + typeList = explicit ? state.explicitTypes : state.implicitTypes; + + for (index = 0, length = typeList.length; index < length; index += 1) { + type = typeList[index]; + + if ((type.instanceOf || type.predicate) && + (!type.instanceOf || (('object' === typeof object) && (object instanceof type.instanceOf))) && + (!type.predicate || type.predicate(object))) { + + state.tag = explicit ? type.tag : '?'; + + if (type.represent) { + style = state.styleMap[type.tag] || type.defaultStyle; + + if ('[object Function]' === _toString.call(type.represent)) { + _result = type.represent(object, style); + } else if (_hasOwnProperty.call(type.represent, style)) { + _result = type.represent[style](object, style); + } else { + throw new YAMLException('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); + } + + state.dump = _result; + } + + return true; + } + } + + return false; +} + +// Serializes `object` and writes it to global `result`. +// Returns true on success, or false on invalid object. +// +function writeNode(state, level, object, block, compact) { + state.tag = null; + state.dump = object; + + if (!detectType(state, object, false)) { + detectType(state, object, true); + } + + var type = _toString.call(state.dump); + + if (block) { + block = (0 > state.flowLevel || state.flowLevel > level); + } + + if ((null !== state.tag && '?' !== state.tag) || (2 !== state.indent && level > 0)) { + compact = false; + } + + var objectOrArray = '[object Object]' === type || '[object Array]' === type, + duplicateIndex, + duplicate; + + if (objectOrArray) { + duplicateIndex = state.duplicates.indexOf(object); + duplicate = duplicateIndex !== -1; + } + + if (duplicate && state.usedDuplicates[duplicateIndex]) { + state.dump = '*ref_' + duplicateIndex; + } else { + if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) { + state.usedDuplicates[duplicateIndex] = true; + } + if ('[object Object]' === type) { + if (block && (0 !== Object.keys(state.dump).length)) { + writeBlockMapping(state, level, state.dump, compact); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + (0 === level ? '\n' : '') + state.dump; + } + } else { + writeFlowMapping(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if ('[object Array]' === type) { + if (block && (0 !== state.dump.length)) { + writeBlockSequence(state, level, state.dump, compact); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + (0 === level ? '\n' : '') + state.dump; + } + } else { + writeFlowSequence(state, level, state.dump); + if (duplicate) { + state.dump = '&ref_' + duplicateIndex + ' ' + state.dump; + } + } + } else if ('[object String]' === type) { + if ('?' !== state.tag) { + writeScalar(state, state.dump, level); + } + } else { + if (state.skipInvalid) { + return false; + } + throw new YAMLException('unacceptable kind of an object to dump ' + type); + } + + if (null !== state.tag && '?' !== state.tag) { + state.dump = '!<' + state.tag + '> ' + state.dump; + } + } + + return true; +} + +function getDuplicateReferences(object, state) { + var objects = [], + duplicatesIndexes = [], + index, + length; + + inspectNode(object, objects, duplicatesIndexes); + + for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { + state.duplicates.push(objects[duplicatesIndexes[index]]); + } + state.usedDuplicates = new Array(length); +} + +function inspectNode(object, objects, duplicatesIndexes) { + var type = _toString.call(object), + objectKeyList, + index, + length; + + if (null !== object && 'object' === typeof object) { + index = objects.indexOf(object); + if (-1 !== index) { + if (-1 === duplicatesIndexes.indexOf(index)) { + duplicatesIndexes.push(index); + } + } else { + objects.push(object); + + if (Array.isArray(object)) { + for (index = 0, length = object.length; index < length; index += 1) { + inspectNode(object[index], objects, duplicatesIndexes); + } + } else { + objectKeyList = Object.keys(object); + + for (index = 0, length = objectKeyList.length; index < length; index += 1) { + inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); + } + } + } + } +} + +function dump(input, options) { + options = options || {}; + + var state = new State(options); + + getDuplicateReferences(input, state); + + if (writeNode(state, 0, input, true, true)) { + return state.dump + '\n'; + } + return ''; +} + +function safeDump(input, options) { + return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); +} + +module.exports.dump = dump; +module.exports.safeDump = safeDump; + +},{"./common":23,"./exception":25,"./schema/default_full":30,"./schema/default_safe":31}],25:[function(require,module,exports){ +'use strict'; + + +function YAMLException(reason, mark) { + this.name = 'YAMLException'; + this.reason = reason; + this.mark = mark; + this.message = this.toString(false); +} + + +YAMLException.prototype.toString = function toString(compact) { + var result; + + result = 'JS-YAML: ' + (this.reason || '(unknown reason)'); + + if (!compact && this.mark) { + result += ' ' + this.mark.toString(); + } + + return result; +}; + + +module.exports = YAMLException; + +},{}],26:[function(require,module,exports){ +'use strict'; + +/*eslint-disable max-len,no-use-before-define*/ + +var common = require('./common'); +var YAMLException = require('./exception'); +var Mark = require('./mark'); +var DEFAULT_SAFE_SCHEMA = require('./schema/default_safe'); +var DEFAULT_FULL_SCHEMA = require('./schema/default_full'); + + +var _hasOwnProperty = Object.prototype.hasOwnProperty; + + +var CONTEXT_FLOW_IN = 1; +var CONTEXT_FLOW_OUT = 2; +var CONTEXT_BLOCK_IN = 3; +var CONTEXT_BLOCK_OUT = 4; + + +var CHOMPING_CLIP = 1; +var CHOMPING_STRIP = 2; +var CHOMPING_KEEP = 3; + + +var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; +var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; +var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; +var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; +var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; + + +function is_EOL(c) { + return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); +} + +function is_WHITE_SPACE(c) { + return (c === 0x09/* Tab */) || (c === 0x20/* Space */); +} + +function is_WS_OR_EOL(c) { + return (c === 0x09/* Tab */) || + (c === 0x20/* Space */) || + (c === 0x0A/* LF */) || + (c === 0x0D/* CR */); +} + +function is_FLOW_INDICATOR(c) { + return 0x2C/* , */ === c || + 0x5B/* [ */ === c || + 0x5D/* ] */ === c || + 0x7B/* { */ === c || + 0x7D/* } */ === c; +} + +function fromHexCode(c) { + var lc; + + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + /*eslint-disable no-bitwise*/ + lc = c | 0x20; + + if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) { + return lc - 0x61 + 10; + } + + return -1; +} + +function escapedHexLen(c) { + if (c === 0x78/* x */) { return 2; } + if (c === 0x75/* u */) { return 4; } + if (c === 0x55/* U */) { return 8; } + return 0; +} + +function fromDecimalCode(c) { + if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + return c - 0x30; + } + + return -1; +} + +function simpleEscapeSequence(c) { + return (c === 0x30/* 0 */) ? '\x00' : + (c === 0x61/* a */) ? '\x07' : + (c === 0x62/* b */) ? '\x08' : + (c === 0x74/* t */) ? '\x09' : + (c === 0x09/* Tab */) ? '\x09' : + (c === 0x6E/* n */) ? '\x0A' : + (c === 0x76/* v */) ? '\x0B' : + (c === 0x66/* f */) ? '\x0C' : + (c === 0x72/* r */) ? '\x0D' : + (c === 0x65/* e */) ? '\x1B' : + (c === 0x20/* Space */) ? ' ' : + (c === 0x22/* " */) ? '\x22' : + (c === 0x2F/* / */) ? '/' : + (c === 0x5C/* \ */) ? '\x5C' : + (c === 0x4E/* N */) ? '\x85' : + (c === 0x5F/* _ */) ? '\xA0' : + (c === 0x4C/* L */) ? '\u2028' : + (c === 0x50/* P */) ? '\u2029' : ''; +} + +function charFromCodepoint(c) { + if (c <= 0xFFFF) { + return String.fromCharCode(c); + } + // Encode UTF-16 surrogate pair + // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF + return String.fromCharCode(((c - 0x010000) >> 10) + 0xD800, + ((c - 0x010000) & 0x03FF) + 0xDC00); +} + +var simpleEscapeCheck = new Array(256); // integer, for fast access +var simpleEscapeMap = new Array(256); +for (var i = 0; i < 256; i++) { + simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; + simpleEscapeMap[i] = simpleEscapeSequence(i); +} + + +function State(input, options) { + this.input = input; + + this.filename = options['filename'] || null; + this.schema = options['schema'] || DEFAULT_FULL_SCHEMA; + this.onWarning = options['onWarning'] || null; + this.legacy = options['legacy'] || false; + + this.implicitTypes = this.schema.compiledImplicit; + this.typeMap = this.schema.compiledTypeMap; + + this.length = input.length; + this.position = 0; + this.line = 0; + this.lineStart = 0; + this.lineIndent = 0; + + this.documents = []; + + /* + this.version; + this.checkLineBreaks; + this.tagMap; + this.anchorMap; + this.tag; + this.anchor; + this.kind; + this.result;*/ + +} + + +function generateError(state, message) { + return new YAMLException( + message, + new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart))); +} + +function throwError(state, message) { + throw generateError(state, message); +} + +function throwWarning(state, message) { + var error = generateError(state, message); + + if (state.onWarning) { + state.onWarning.call(null, error); + } else { + throw error; + } +} + + +var directiveHandlers = { + + YAML: function handleYamlDirective(state, name, args) { + + var match, major, minor; + + if (null !== state.version) { + throwError(state, 'duplication of %YAML directive'); + } + + if (1 !== args.length) { + throwError(state, 'YAML directive accepts exactly one argument'); + } + + match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); + + if (null === match) { + throwError(state, 'ill-formed argument of the YAML directive'); + } + + major = parseInt(match[1], 10); + minor = parseInt(match[2], 10); + + if (1 !== major) { + throwError(state, 'unacceptable YAML version of the document'); + } + + state.version = args[0]; + state.checkLineBreaks = (minor < 2); + + if (1 !== minor && 2 !== minor) { + throwWarning(state, 'unsupported YAML version of the document'); + } + }, + + TAG: function handleTagDirective(state, name, args) { + + var handle, prefix; + + if (2 !== args.length) { + throwError(state, 'TAG directive accepts exactly two arguments'); + } + + handle = args[0]; + prefix = args[1]; + + if (!PATTERN_TAG_HANDLE.test(handle)) { + throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); + } + + if (_hasOwnProperty.call(state.tagMap, handle)) { + throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); + } + + if (!PATTERN_TAG_URI.test(prefix)) { + throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); + } + + state.tagMap[handle] = prefix; + } +}; + + +function captureSegment(state, start, end, checkJson) { + var _position, _length, _character, _result; + + if (start < end) { + _result = state.input.slice(start, end); + + if (checkJson) { + for (_position = 0, _length = _result.length; + _position < _length; + _position += 1) { + _character = _result.charCodeAt(_position); + if (!(0x09 === _character || + 0x20 <= _character && _character <= 0x10FFFF)) { + throwError(state, 'expected valid JSON character'); + } + } + } + + state.result += _result; + } +} + +function mergeMappings(state, destination, source) { + var sourceKeys, key, index, quantity; + + if (!common.isObject(source)) { + throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); + } + + sourceKeys = Object.keys(source); + + for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { + key = sourceKeys[index]; + + if (!_hasOwnProperty.call(destination, key)) { + destination[key] = source[key]; + } + } +} + +function storeMappingPair(state, _result, keyTag, keyNode, valueNode) { + var index, quantity; + + keyNode = String(keyNode); + + if (null === _result) { + _result = {}; + } + + if ('tag:yaml.org,2002:merge' === keyTag) { + if (Array.isArray(valueNode)) { + for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { + mergeMappings(state, _result, valueNode[index]); + } + } else { + mergeMappings(state, _result, valueNode); + } + } else { + _result[keyNode] = valueNode; + } + + return _result; +} + +function readLineBreak(state) { + var ch; + + ch = state.input.charCodeAt(state.position); + + if (0x0A/* LF */ === ch) { + state.position++; + } else if (0x0D/* CR */ === ch) { + state.position++; + if (0x0A/* LF */ === state.input.charCodeAt(state.position)) { + state.position++; + } + } else { + throwError(state, 'a line break is expected'); + } + + state.line += 1; + state.lineStart = state.position; +} + +function skipSeparationSpace(state, allowComments, checkIndent) { + var lineBreaks = 0, + ch = state.input.charCodeAt(state.position); + + while (0 !== ch) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (allowComments && 0x23/* # */ === ch) { + do { + ch = state.input.charCodeAt(++state.position); + } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && 0 !== ch); + } + + if (is_EOL(ch)) { + readLineBreak(state); + + ch = state.input.charCodeAt(state.position); + lineBreaks++; + state.lineIndent = 0; + + while (0x20/* Space */ === ch) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + } else { + break; + } + } + + if (-1 !== checkIndent && 0 !== lineBreaks && state.lineIndent < checkIndent) { + throwWarning(state, 'deficient indentation'); + } + + return lineBreaks; +} + +function testDocumentSeparator(state) { + var _position = state.position, + ch; + + ch = state.input.charCodeAt(_position); + + // Condition state.position === state.lineStart is tested + // in parent on each call, for efficiency. No needs to test here again. + if ((0x2D/* - */ === ch || 0x2E/* . */ === ch) && + state.input.charCodeAt(_position + 1) === ch && + state.input.charCodeAt(_position + 2) === ch) { + + _position += 3; + + ch = state.input.charCodeAt(_position); + + if (ch === 0 || is_WS_OR_EOL(ch)) { + return true; + } + } + + return false; +} + +function writeFoldedLines(state, count) { + if (1 === count) { + state.result += ' '; + } else if (count > 1) { + state.result += common.repeat('\n', count - 1); + } +} + + +function readPlainScalar(state, nodeIndent, withinFlowCollection) { + var preceding, + following, + captureStart, + captureEnd, + hasPendingContent, + _line, + _lineStart, + _lineIndent, + _kind = state.kind, + _result = state.result, + ch; + + ch = state.input.charCodeAt(state.position); + + if (is_WS_OR_EOL(ch) || + is_FLOW_INDICATOR(ch) || + 0x23/* # */ === ch || + 0x26/* & */ === ch || + 0x2A/* * */ === ch || + 0x21/* ! */ === ch || + 0x7C/* | */ === ch || + 0x3E/* > */ === ch || + 0x27/* ' */ === ch || + 0x22/* " */ === ch || + 0x25/* % */ === ch || + 0x40/* @ */ === ch || + 0x60/* ` */ === ch) { + return false; + } + + if (0x3F/* ? */ === ch || 0x2D/* - */ === ch) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + return false; + } + } + + state.kind = 'scalar'; + state.result = ''; + captureStart = captureEnd = state.position; + hasPendingContent = false; + + while (0 !== ch) { + if (0x3A/* : */ === ch) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following) || + withinFlowCollection && is_FLOW_INDICATOR(following)) { + break; + } + + } else if (0x23/* # */ === ch) { + preceding = state.input.charCodeAt(state.position - 1); + + if (is_WS_OR_EOL(preceding)) { + break; + } + + } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || + withinFlowCollection && is_FLOW_INDICATOR(ch)) { + break; + + } else if (is_EOL(ch)) { + _line = state.line; + _lineStart = state.lineStart; + _lineIndent = state.lineIndent; + skipSeparationSpace(state, false, -1); + + if (state.lineIndent >= nodeIndent) { + hasPendingContent = true; + ch = state.input.charCodeAt(state.position); + continue; + } else { + state.position = captureEnd; + state.line = _line; + state.lineStart = _lineStart; + state.lineIndent = _lineIndent; + break; + } + } + + if (hasPendingContent) { + captureSegment(state, captureStart, captureEnd, false); + writeFoldedLines(state, state.line - _line); + captureStart = captureEnd = state.position; + hasPendingContent = false; + } + + if (!is_WHITE_SPACE(ch)) { + captureEnd = state.position + 1; + } + + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, captureEnd, false); + + if (state.result) { + return true; + } + + state.kind = _kind; + state.result = _result; + return false; +} + +function readSingleQuotedScalar(state, nodeIndent) { + var ch, + captureStart, captureEnd; + + ch = state.input.charCodeAt(state.position); + + if (0x27/* ' */ !== ch) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while (0 !== (ch = state.input.charCodeAt(state.position))) { + if (0x27/* ' */ === ch) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (0x27/* ' */ === ch) { + captureStart = captureEnd = state.position; + state.position++; + } else { + return true; + } + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a single quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; + } + } + + throwError(state, 'unexpected end of the stream within a single quoted scalar'); +} + +function readDoubleQuotedScalar(state, nodeIndent) { + var captureStart, + captureEnd, + hexLength, + hexResult, + tmp, tmpEsc, + ch; + + ch = state.input.charCodeAt(state.position); + + if (0x22/* " */ !== ch) { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + state.position++; + captureStart = captureEnd = state.position; + + while (0 !== (ch = state.input.charCodeAt(state.position))) { + if (0x22/* " */ === ch) { + captureSegment(state, captureStart, state.position, true); + state.position++; + return true; + + } else if (0x5C/* \ */ === ch) { + captureSegment(state, captureStart, state.position, true); + ch = state.input.charCodeAt(++state.position); + + if (is_EOL(ch)) { + skipSeparationSpace(state, false, nodeIndent); + + // TODO: rework to inline fn with no type cast? + } else if (ch < 256 && simpleEscapeCheck[ch]) { + state.result += simpleEscapeMap[ch]; + state.position++; + + } else if ((tmp = escapedHexLen(ch)) > 0) { + hexLength = tmp; + hexResult = 0; + + for (; hexLength > 0; hexLength--) { + ch = state.input.charCodeAt(++state.position); + + if ((tmp = fromHexCode(ch)) >= 0) { + hexResult = (hexResult << 4) + tmp; + + } else { + throwError(state, 'expected hexadecimal character'); + } + } + + state.result += charFromCodepoint(hexResult); + + state.position++; + + } else { + throwError(state, 'unknown escape sequence'); + } + + captureStart = captureEnd = state.position; + + } else if (is_EOL(ch)) { + captureSegment(state, captureStart, captureEnd, true); + writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); + captureStart = captureEnd = state.position; + + } else if (state.position === state.lineStart && testDocumentSeparator(state)) { + throwError(state, 'unexpected end of the document within a double quoted scalar'); + + } else { + state.position++; + captureEnd = state.position; + } + } + + throwError(state, 'unexpected end of the stream within a double quoted scalar'); +} + +function readFlowCollection(state, nodeIndent) { + var readNext = true, + _line, + _tag = state.tag, + _result, + _anchor = state.anchor, + following, + terminator, + isPair, + isExplicitPair, + isMapping, + keyNode, + keyTag, + valueNode, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x5B/* [ */) { + terminator = 0x5D;/* ] */ + isMapping = false; + _result = []; + } else if (ch === 0x7B/* { */) { + terminator = 0x7D;/* } */ + isMapping = true; + _result = {}; + } else { + return false; + } + + if (null !== state.anchor) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(++state.position); + + while (0 !== ch) { + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (ch === terminator) { + state.position++; + state.tag = _tag; + state.anchor = _anchor; + state.kind = isMapping ? 'mapping' : 'sequence'; + state.result = _result; + return true; + } else if (!readNext) { + throwError(state, 'missed comma between flow collection entries'); + } + + keyTag = keyNode = valueNode = null; + isPair = isExplicitPair = false; + + if (0x3F/* ? */ === ch) { + following = state.input.charCodeAt(state.position + 1); + + if (is_WS_OR_EOL(following)) { + isPair = isExplicitPair = true; + state.position++; + skipSeparationSpace(state, true, nodeIndent); + } + } + + _line = state.line; + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + keyTag = state.tag; + keyNode = state.result; + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if ((isExplicitPair || state.line === _line) && 0x3A/* : */ === ch) { + isPair = true; + ch = state.input.charCodeAt(++state.position); + skipSeparationSpace(state, true, nodeIndent); + composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); + valueNode = state.result; + } + + if (isMapping) { + storeMappingPair(state, _result, keyTag, keyNode, valueNode); + } else if (isPair) { + _result.push(storeMappingPair(state, null, keyTag, keyNode, valueNode)); + } else { + _result.push(keyNode); + } + + skipSeparationSpace(state, true, nodeIndent); + + ch = state.input.charCodeAt(state.position); + + if (0x2C/* , */ === ch) { + readNext = true; + ch = state.input.charCodeAt(++state.position); + } else { + readNext = false; + } + } + + throwError(state, 'unexpected end of the stream within a flow collection'); +} + +function readBlockScalar(state, nodeIndent) { + var captureStart, + folding, + chomping = CHOMPING_CLIP, + detectedIndent = false, + textIndent = nodeIndent, + emptyLines = 0, + atMoreIndented = false, + tmp, + ch; + + ch = state.input.charCodeAt(state.position); + + if (ch === 0x7C/* | */) { + folding = false; + } else if (ch === 0x3E/* > */) { + folding = true; + } else { + return false; + } + + state.kind = 'scalar'; + state.result = ''; + + while (0 !== ch) { + ch = state.input.charCodeAt(++state.position); + + if (0x2B/* + */ === ch || 0x2D/* - */ === ch) { + if (CHOMPING_CLIP === chomping) { + chomping = (0x2B/* + */ === ch) ? CHOMPING_KEEP : CHOMPING_STRIP; + } else { + throwError(state, 'repeat of a chomping mode identifier'); + } + + } else if ((tmp = fromDecimalCode(ch)) >= 0) { + if (tmp === 0) { + throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); + } else if (!detectedIndent) { + textIndent = nodeIndent + tmp - 1; + detectedIndent = true; + } else { + throwError(state, 'repeat of an indentation width identifier'); + } + + } else { + break; + } + } + + if (is_WHITE_SPACE(ch)) { + do { ch = state.input.charCodeAt(++state.position); } + while (is_WHITE_SPACE(ch)); + + if (0x23/* # */ === ch) { + do { ch = state.input.charCodeAt(++state.position); } + while (!is_EOL(ch) && (0 !== ch)); + } + } + + while (0 !== ch) { + readLineBreak(state); + state.lineIndent = 0; + + ch = state.input.charCodeAt(state.position); + + while ((!detectedIndent || state.lineIndent < textIndent) && + (0x20/* Space */ === ch)) { + state.lineIndent++; + ch = state.input.charCodeAt(++state.position); + } + + if (!detectedIndent && state.lineIndent > textIndent) { + textIndent = state.lineIndent; + } + + if (is_EOL(ch)) { + emptyLines++; + continue; + } + + // End of the scalar. + if (state.lineIndent < textIndent) { + + // Perform the chomping. + if (chomping === CHOMPING_KEEP) { + state.result += common.repeat('\n', emptyLines); + } else if (chomping === CHOMPING_CLIP) { + if (detectedIndent) { // i.e. only if the scalar is not empty. + state.result += '\n'; + } + } + + // Break this `while` cycle and go to the funciton's epilogue. + break; + } + + // Folded style: use fancy rules to handle line breaks. + if (folding) { + + // Lines starting with white space characters (more-indented lines) are not folded. + if (is_WHITE_SPACE(ch)) { + atMoreIndented = true; + state.result += common.repeat('\n', emptyLines + 1); + + // End of more-indented block. + } else if (atMoreIndented) { + atMoreIndented = false; + state.result += common.repeat('\n', emptyLines + 1); + + // Just one line break - perceive as the same line. + } else if (0 === emptyLines) { + if (detectedIndent) { // i.e. only if we have already read some scalar content. + state.result += ' '; + } + + // Several line breaks - perceive as different lines. + } else { + state.result += common.repeat('\n', emptyLines); + } + + // Literal style: just add exact number of line breaks between content lines. + } else if (detectedIndent) { + // If current line isn't the first one - count line break from the last content line. + state.result += common.repeat('\n', emptyLines + 1); + } else { + // In case of the first content line - count only empty lines. + } + + detectedIndent = true; + emptyLines = 0; + captureStart = state.position; + + while (!is_EOL(ch) && (0 !== ch)) { + ch = state.input.charCodeAt(++state.position); + } + + captureSegment(state, captureStart, state.position, false); + } + + return true; +} + +function readBlockSequence(state, nodeIndent) { + var _line, + _tag = state.tag, + _anchor = state.anchor, + _result = [], + following, + detected = false, + ch; + + if (null !== state.anchor) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (0 !== ch) { + + if (0x2D/* - */ !== ch) { + break; + } + + following = state.input.charCodeAt(state.position + 1); + + if (!is_WS_OR_EOL(following)) { + break; + } + + detected = true; + state.position++; + + if (skipSeparationSpace(state, true, -1)) { + if (state.lineIndent <= nodeIndent) { + _result.push(null); + ch = state.input.charCodeAt(state.position); + continue; + } + } + + _line = state.line; + composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); + _result.push(state.result); + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if ((state.line === _line || state.lineIndent > nodeIndent) && (0 !== ch)) { + throwError(state, 'bad indentation of a sequence entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'sequence'; + state.result = _result; + return true; + } + return false; +} + +function readBlockMapping(state, nodeIndent, flowIndent) { + var following, + allowCompact, + _line, + _tag = state.tag, + _anchor = state.anchor, + _result = {}, + keyTag = null, + keyNode = null, + valueNode = null, + atExplicitKey = false, + detected = false, + ch; + + if (null !== state.anchor) { + state.anchorMap[state.anchor] = _result; + } + + ch = state.input.charCodeAt(state.position); + + while (0 !== ch) { + following = state.input.charCodeAt(state.position + 1); + _line = state.line; // Save the current line. + + // + // Explicit notation case. There are two separate blocks: + // first for the key (denoted by "?") and second for the value (denoted by ":") + // + if ((0x3F/* ? */ === ch || 0x3A/* : */ === ch) && is_WS_OR_EOL(following)) { + + if (0x3F/* ? */ === ch) { + if (atExplicitKey) { + storeMappingPair(state, _result, keyTag, keyNode, null); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = true; + allowCompact = true; + + } else if (atExplicitKey) { + // i.e. 0x3A/* : */ === character after the explicit key. + atExplicitKey = false; + allowCompact = true; + + } else { + throwError(state, 'incomplete explicit mapping pair; a key node is missed'); + } + + state.position += 1; + ch = following; + + // + // Implicit notation case. Flow-style node as the key first, then ":", and the value. + // + } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { + + if (state.line === _line) { + ch = state.input.charCodeAt(state.position); + + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (0x3A/* : */ === ch) { + ch = state.input.charCodeAt(++state.position); + + if (!is_WS_OR_EOL(ch)) { + throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); + } + + if (atExplicitKey) { + storeMappingPair(state, _result, keyTag, keyNode, null); + keyTag = keyNode = valueNode = null; + } + + detected = true; + atExplicitKey = false; + allowCompact = false; + keyTag = state.tag; + keyNode = state.result; + + } else if (detected) { + throwError(state, 'can not read an implicit mapping pair; a colon is missed'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + + } else if (detected) { + throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); + + } else { + state.tag = _tag; + state.anchor = _anchor; + return true; // Keep the result of `composeNode`. + } + + } else { + break; // Reading is done. Go to the epilogue. + } + + // + // Common reading code for both explicit and implicit notations. + // + if (state.line === _line || state.lineIndent > nodeIndent) { + if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { + if (atExplicitKey) { + keyNode = state.result; + } else { + valueNode = state.result; + } + } + + if (!atExplicitKey) { + storeMappingPair(state, _result, keyTag, keyNode, valueNode); + keyTag = keyNode = valueNode = null; + } + + skipSeparationSpace(state, true, -1); + ch = state.input.charCodeAt(state.position); + } + + if (state.lineIndent > nodeIndent && (0 !== ch)) { + throwError(state, 'bad indentation of a mapping entry'); + } else if (state.lineIndent < nodeIndent) { + break; + } + } + + // + // Epilogue. + // + + // Special case: last mapping's node contains only the key in explicit notation. + if (atExplicitKey) { + storeMappingPair(state, _result, keyTag, keyNode, null); + } + + // Expose the resulting mapping. + if (detected) { + state.tag = _tag; + state.anchor = _anchor; + state.kind = 'mapping'; + state.result = _result; + } + + return detected; +} + +function readTagProperty(state) { + var _position, + isVerbatim = false, + isNamed = false, + tagHandle, + tagName, + ch; + + ch = state.input.charCodeAt(state.position); + + if (0x21/* ! */ !== ch) { + return false; + } + + if (null !== state.tag) { + throwError(state, 'duplication of a tag property'); + } + + ch = state.input.charCodeAt(++state.position); + + if (0x3C/* < */ === ch) { + isVerbatim = true; + ch = state.input.charCodeAt(++state.position); + + } else if (0x21/* ! */ === ch) { + isNamed = true; + tagHandle = '!!'; + ch = state.input.charCodeAt(++state.position); + + } else { + tagHandle = '!'; + } + + _position = state.position; + + if (isVerbatim) { + do { ch = state.input.charCodeAt(++state.position); } + while (0 !== ch && 0x3E/* > */ !== ch); + + if (state.position < state.length) { + tagName = state.input.slice(_position, state.position); + ch = state.input.charCodeAt(++state.position); + } else { + throwError(state, 'unexpected end of the stream within a verbatim tag'); + } + } else { + while (0 !== ch && !is_WS_OR_EOL(ch)) { + + if (0x21/* ! */ === ch) { + if (!isNamed) { + tagHandle = state.input.slice(_position - 1, state.position + 1); + + if (!PATTERN_TAG_HANDLE.test(tagHandle)) { + throwError(state, 'named tag handle cannot contain such characters'); + } + + isNamed = true; + _position = state.position + 1; + } else { + throwError(state, 'tag suffix cannot contain exclamation marks'); + } + } + + ch = state.input.charCodeAt(++state.position); + } + + tagName = state.input.slice(_position, state.position); + + if (PATTERN_FLOW_INDICATORS.test(tagName)) { + throwError(state, 'tag suffix cannot contain flow indicator characters'); + } + } + + if (tagName && !PATTERN_TAG_URI.test(tagName)) { + throwError(state, 'tag name cannot contain such characters: ' + tagName); + } + + if (isVerbatim) { + state.tag = tagName; + + } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) { + state.tag = state.tagMap[tagHandle] + tagName; + + } else if ('!' === tagHandle) { + state.tag = '!' + tagName; + + } else if ('!!' === tagHandle) { + state.tag = 'tag:yaml.org,2002:' + tagName; + + } else { + throwError(state, 'undeclared tag handle "' + tagHandle + '"'); + } + + return true; +} + +function readAnchorProperty(state) { + var _position, + ch; + + ch = state.input.charCodeAt(state.position); + + if (0x26/* & */ !== ch) { + return false; + } + + if (null !== state.anchor) { + throwError(state, 'duplication of an anchor property'); + } + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (0 !== ch && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an anchor node must contain at least one character'); + } + + state.anchor = state.input.slice(_position, state.position); + return true; +} + +function readAlias(state) { + var _position, alias, + len = state.length, + input = state.input, + ch; + + ch = state.input.charCodeAt(state.position); + + if (0x2A/* * */ !== ch) { + return false; + } + + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (0 !== ch && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (state.position === _position) { + throwError(state, 'name of an alias node must contain at least one character'); + } + + alias = state.input.slice(_position, state.position); + + if (!state.anchorMap.hasOwnProperty(alias)) { + throwError(state, 'unidentified alias "' + alias + '"'); + } + + state.result = state.anchorMap[alias]; + skipSeparationSpace(state, true, -1); + return true; +} + +function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { + var allowBlockStyles, + allowBlockScalars, + allowBlockCollections, + indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this<parent + atNewLine = false, + hasContent = false, + typeIndex, + typeQuantity, + type, + flowIndent, + blockIndent, + _result; + + state.tag = null; + state.anchor = null; + state.kind = null; + state.result = null; + + allowBlockStyles = allowBlockScalars = allowBlockCollections = + CONTEXT_BLOCK_OUT === nodeContext || + CONTEXT_BLOCK_IN === nodeContext; + + if (allowToSeek) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true; + + if (state.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } + } + + if (1 === indentStatus) { + while (readTagProperty(state) || readAnchorProperty(state)) { + if (skipSeparationSpace(state, true, -1)) { + atNewLine = true; + allowBlockCollections = allowBlockStyles; + + if (state.lineIndent > parentIndent) { + indentStatus = 1; + } else if (state.lineIndent === parentIndent) { + indentStatus = 0; + } else if (state.lineIndent < parentIndent) { + indentStatus = -1; + } + } else { + allowBlockCollections = false; + } + } + } + + if (allowBlockCollections) { + allowBlockCollections = atNewLine || allowCompact; + } + + if (1 === indentStatus || CONTEXT_BLOCK_OUT === nodeContext) { + if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { + flowIndent = parentIndent; + } else { + flowIndent = parentIndent + 1; + } + + blockIndent = state.position - state.lineStart; + + if (1 === indentStatus) { + if (allowBlockCollections && + (readBlockSequence(state, blockIndent) || + readBlockMapping(state, blockIndent, flowIndent)) || + readFlowCollection(state, flowIndent)) { + hasContent = true; + } else { + if ((allowBlockScalars && readBlockScalar(state, flowIndent)) || + readSingleQuotedScalar(state, flowIndent) || + readDoubleQuotedScalar(state, flowIndent)) { + hasContent = true; + + } else if (readAlias(state)) { + hasContent = true; + + if (null !== state.tag || null !== state.anchor) { + throwError(state, 'alias node should not have any properties'); + } + + } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { + hasContent = true; + + if (null === state.tag) { + state.tag = '?'; + } + } + + if (null !== state.anchor) { + state.anchorMap[state.anchor] = state.result; + } + } + } else if (0 === indentStatus) { + // Special case: block sequences are allowed to have same indentation level as the parent. + // http://www.yaml.org/spec/1.2/spec.html#id2799784 + hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); + } + } + + if (null !== state.tag && '!' !== state.tag) { + if ('?' === state.tag) { + for (typeIndex = 0, typeQuantity = state.implicitTypes.length; + typeIndex < typeQuantity; + typeIndex += 1) { + type = state.implicitTypes[typeIndex]; + + // Implicit resolving is not allowed for non-scalar types, and '?' + // non-specific tag is only assigned to plain scalars. So, it isn't + // needed to check for 'kind' conformity. + + if (type.resolve(state.result)) { // `state.result` updated in resolver if matched + state.result = type.construct(state.result); + state.tag = type.tag; + if (null !== state.anchor) { + state.anchorMap[state.anchor] = state.result; + } + break; + } + } + } else if (_hasOwnProperty.call(state.typeMap, state.tag)) { + type = state.typeMap[state.tag]; + + if (null !== state.result && type.kind !== state.kind) { + throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); + } + + if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched + throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); + } else { + state.result = type.construct(state.result); + if (null !== state.anchor) { + state.anchorMap[state.anchor] = state.result; + } + } + } else { + throwWarning(state, 'unknown tag !<' + state.tag + '>'); + } + } + + return null !== state.tag || null !== state.anchor || hasContent; +} + +function readDocument(state) { + var documentStart = state.position, + _position, + directiveName, + directiveArgs, + hasDirectives = false, + ch; + + state.version = null; + state.checkLineBreaks = state.legacy; + state.tagMap = {}; + state.anchorMap = {}; + + while (0 !== (ch = state.input.charCodeAt(state.position))) { + skipSeparationSpace(state, true, -1); + + ch = state.input.charCodeAt(state.position); + + if (state.lineIndent > 0 || 0x25/* % */ !== ch) { + break; + } + + hasDirectives = true; + ch = state.input.charCodeAt(++state.position); + _position = state.position; + + while (0 !== ch && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveName = state.input.slice(_position, state.position); + directiveArgs = []; + + if (directiveName.length < 1) { + throwError(state, 'directive name must not be less than one character in length'); + } + + while (0 !== ch) { + while (is_WHITE_SPACE(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + if (0x23/* # */ === ch) { + do { ch = state.input.charCodeAt(++state.position); } + while (0 !== ch && !is_EOL(ch)); + break; + } + + if (is_EOL(ch)) { + break; + } + + _position = state.position; + + while (0 !== ch && !is_WS_OR_EOL(ch)) { + ch = state.input.charCodeAt(++state.position); + } + + directiveArgs.push(state.input.slice(_position, state.position)); + } + + if (0 !== ch) { + readLineBreak(state); + } + + if (_hasOwnProperty.call(directiveHandlers, directiveName)) { + directiveHandlers[directiveName](state, directiveName, directiveArgs); + } else { + throwWarning(state, 'unknown document directive "' + directiveName + '"'); + } + } + + skipSeparationSpace(state, true, -1); + + if (0 === state.lineIndent && + 0x2D/* - */ === state.input.charCodeAt(state.position) && + 0x2D/* - */ === state.input.charCodeAt(state.position + 1) && + 0x2D/* - */ === state.input.charCodeAt(state.position + 2)) { + state.position += 3; + skipSeparationSpace(state, true, -1); + + } else if (hasDirectives) { + throwError(state, 'directives end mark is expected'); + } + + composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); + skipSeparationSpace(state, true, -1); + + if (state.checkLineBreaks && + PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { + throwWarning(state, 'non-ASCII line breaks are interpreted as content'); + } + + state.documents.push(state.result); + + if (state.position === state.lineStart && testDocumentSeparator(state)) { + + if (0x2E/* . */ === state.input.charCodeAt(state.position)) { + state.position += 3; + skipSeparationSpace(state, true, -1); + } + return; + } + + if (state.position < (state.length - 1)) { + throwError(state, 'end of the stream or a document separator is expected'); + } else { + return; + } +} + + +function loadDocuments(input, options) { + input = String(input); + options = options || {}; + + if (input.length !== 0) { + + // Add tailing `\n` if not exists + if (0x0A/* LF */ !== input.charCodeAt(input.length - 1) && + 0x0D/* CR */ !== input.charCodeAt(input.length - 1)) { + input += '\n'; + } + + // Strip BOM + if (input.charCodeAt(0) === 0xFEFF) { + input = input.slice(1); + } + } + + var state = new State(input, options); + + if (PATTERN_NON_PRINTABLE.test(state.input)) { + throwError(state, 'the stream contains non-printable characters'); + } + + // Use 0 as string terminator. That significantly simplifies bounds check. + state.input += '\0'; + + while (0x20/* Space */ === state.input.charCodeAt(state.position)) { + state.lineIndent += 1; + state.position += 1; + } + + while (state.position < (state.length - 1)) { + readDocument(state); + } + + return state.documents; +} + + +function loadAll(input, iterator, options) { + var documents = loadDocuments(input, options), index, length; + + for (index = 0, length = documents.length; index < length; index += 1) { + iterator(documents[index]); + } +} + + +function load(input, options) { + var documents = loadDocuments(input, options), index, length; + + if (0 === documents.length) { + /*eslint-disable no-undefined*/ + return undefined; + } else if (1 === documents.length) { + return documents[0]; + } + throw new YAMLException('expected a single document in the stream, but found more'); +} + + +function safeLoadAll(input, output, options) { + loadAll(input, output, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); +} + + +function safeLoad(input, options) { + return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options)); +} + + +module.exports.loadAll = loadAll; +module.exports.load = load; +module.exports.safeLoadAll = safeLoadAll; +module.exports.safeLoad = safeLoad; + +},{"./common":23,"./exception":25,"./mark":27,"./schema/default_full":30,"./schema/default_safe":31}],27:[function(require,module,exports){ +'use strict'; + + +var common = require('./common'); + + +function Mark(name, buffer, position, line, column) { + this.name = name; + this.buffer = buffer; + this.position = position; + this.line = line; + this.column = column; +} + + +Mark.prototype.getSnippet = function getSnippet(indent, maxLength) { + var head, start, tail, end, snippet; + + if (!this.buffer) { + return null; + } + + indent = indent || 4; + maxLength = maxLength || 75; + + head = ''; + start = this.position; + + while (start > 0 && -1 === '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(start - 1))) { + start -= 1; + if (this.position - start > (maxLength / 2 - 1)) { + head = ' ... '; + start += 5; + break; + } + } + + tail = ''; + end = this.position; + + while (end < this.buffer.length && -1 === '\x00\r\n\x85\u2028\u2029'.indexOf(this.buffer.charAt(end))) { + end += 1; + if (end - this.position > (maxLength / 2 - 1)) { + tail = ' ... '; + end -= 5; + break; + } + } + + snippet = this.buffer.slice(start, end); + + return common.repeat(' ', indent) + head + snippet + tail + '\n' + + common.repeat(' ', indent + this.position - start + head.length) + '^'; +}; + + +Mark.prototype.toString = function toString(compact) { + var snippet, where = ''; + + if (this.name) { + where += 'in "' + this.name + '" '; + } + + where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1); + + if (!compact) { + snippet = this.getSnippet(); + + if (snippet) { + where += ':\n' + snippet; + } + } + + return where; +}; + + +module.exports = Mark; + +},{"./common":23}],28:[function(require,module,exports){ +'use strict'; + +/*eslint-disable max-len*/ + +var common = require('./common'); +var YAMLException = require('./exception'); +var Type = require('./type'); + + +function compileList(schema, name, result) { + var exclude = []; + + schema.include.forEach(function (includedSchema) { + result = compileList(includedSchema, name, result); + }); + + schema[name].forEach(function (currentType) { + result.forEach(function (previousType, previousIndex) { + if (previousType.tag === currentType.tag) { + exclude.push(previousIndex); + } + }); + + result.push(currentType); + }); + + return result.filter(function (type, index) { + return -1 === exclude.indexOf(index); + }); +} + + +function compileMap(/* lists... */) { + var result = {}, index, length; + + function collectType(type) { + result[type.tag] = type; + } + + for (index = 0, length = arguments.length; index < length; index += 1) { + arguments[index].forEach(collectType); + } + + return result; +} + + +function Schema(definition) { + this.include = definition.include || []; + this.implicit = definition.implicit || []; + this.explicit = definition.explicit || []; + + this.implicit.forEach(function (type) { + if (type.loadKind && 'scalar' !== type.loadKind) { + throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); + } + }); + + this.compiledImplicit = compileList(this, 'implicit', []); + this.compiledExplicit = compileList(this, 'explicit', []); + this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit); +} + + +Schema.DEFAULT = null; + + +Schema.create = function createSchema() { + var schemas, types; + + switch (arguments.length) { + case 1: + schemas = Schema.DEFAULT; + types = arguments[0]; + break; + + case 2: + schemas = arguments[0]; + types = arguments[1]; + break; + + default: + throw new YAMLException('Wrong number of arguments for Schema.create function'); + } + + schemas = common.toArray(schemas); + types = common.toArray(types); + + if (!schemas.every(function (schema) { return schema instanceof Schema; })) { + throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.'); + } + + if (!types.every(function (type) { return type instanceof Type; })) { + throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.'); + } + + return new Schema({ + include: schemas, + explicit: types + }); +}; + + +module.exports = Schema; + +},{"./common":23,"./exception":25,"./type":34}],29:[function(require,module,exports){ +// Standard YAML's Core schema. +// http://www.yaml.org/spec/1.2/spec.html#id2804923 +// +// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. +// So, Core schema has no distinctions from JSON schema is JS-YAML. + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = new Schema({ + include: [ + require('./json') + ] +}); + +},{"../schema":28,"./json":33}],30:[function(require,module,exports){ +// JS-YAML's default schema for `load` function. +// It is not described in the YAML specification. +// +// This schema is based on JS-YAML's default safe schema and includes +// JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function. +// +// Also this schema is used as default base schema at `Schema.create` function. + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = Schema.DEFAULT = new Schema({ + include: [ + require('./default_safe') + ], + explicit: [ + require('../type/js/undefined'), + require('../type/js/regexp'), + require('../type/js/function') + ] +}); + +},{"../schema":28,"../type/js/function":39,"../type/js/regexp":40,"../type/js/undefined":41,"./default_safe":31}],31:[function(require,module,exports){ +// JS-YAML's default schema for `safeLoad` function. +// It is not described in the YAML specification. +// +// This schema is based on standard YAML's Core schema and includes most of +// extra types described at YAML tag repository. (http://yaml.org/type/) + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = new Schema({ + include: [ + require('./core') + ], + implicit: [ + require('../type/timestamp'), + require('../type/merge') + ], + explicit: [ + require('../type/binary'), + require('../type/omap'), + require('../type/pairs'), + require('../type/set') + ] +}); + +},{"../schema":28,"../type/binary":35,"../type/merge":43,"../type/omap":45,"../type/pairs":46,"../type/set":48,"../type/timestamp":50,"./core":29}],32:[function(require,module,exports){ +// Standard YAML's Failsafe schema. +// http://www.yaml.org/spec/1.2/spec.html#id2802346 + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = new Schema({ + explicit: [ + require('../type/str'), + require('../type/seq'), + require('../type/map') + ] +}); + +},{"../schema":28,"../type/map":42,"../type/seq":47,"../type/str":49}],33:[function(require,module,exports){ +// Standard YAML's JSON schema. +// http://www.yaml.org/spec/1.2/spec.html#id2803231 +// +// NOTE: JS-YAML does not support schema-specific tag resolution restrictions. +// So, this schema is not such strict as defined in the YAML specification. +// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc. + + +'use strict'; + + +var Schema = require('../schema'); + + +module.exports = new Schema({ + include: [ + require('./failsafe') + ], + implicit: [ + require('../type/null'), + require('../type/bool'), + require('../type/int'), + require('../type/float') + ] +}); + +},{"../schema":28,"../type/bool":36,"../type/float":37,"../type/int":38,"../type/null":44,"./failsafe":32}],34:[function(require,module,exports){ +'use strict'; + +var YAMLException = require('./exception'); + +var TYPE_CONSTRUCTOR_OPTIONS = [ + 'kind', + 'resolve', + 'construct', + 'instanceOf', + 'predicate', + 'represent', + 'defaultStyle', + 'styleAliases' +]; + +var YAML_NODE_KINDS = [ + 'scalar', + 'sequence', + 'mapping' +]; + +function compileStyleAliases(map) { + var result = {}; + + if (null !== map) { + Object.keys(map).forEach(function (style) { + map[style].forEach(function (alias) { + result[String(alias)] = style; + }); + }); + } + + return result; +} + +function Type(tag, options) { + options = options || {}; + + Object.keys(options).forEach(function (name) { + if (-1 === TYPE_CONSTRUCTOR_OPTIONS.indexOf(name)) { + throw new YAMLException('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); + } + }); + + // TODO: Add tag format check. + this.tag = tag; + this.kind = options['kind'] || null; + this.resolve = options['resolve'] || function () { return true; }; + this.construct = options['construct'] || function (data) { return data; }; + this.instanceOf = options['instanceOf'] || null; + this.predicate = options['predicate'] || null; + this.represent = options['represent'] || null; + this.defaultStyle = options['defaultStyle'] || null; + this.styleAliases = compileStyleAliases(options['styleAliases'] || null); + + if (-1 === YAML_NODE_KINDS.indexOf(this.kind)) { + throw new YAMLException('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); + } +} + +module.exports = Type; + +},{"./exception":25}],35:[function(require,module,exports){ +'use strict'; + +/*eslint-disable no-bitwise*/ + +// A trick for browserified version. +// Since we make browserifier to ignore `buffer` module, NodeBuffer will be undefined +var NodeBuffer = require('buffer').Buffer; +var Type = require('../type'); + + +// [ 64, 65, 66 ] -> [ padding, CR, LF ] +var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; + + +function resolveYamlBinary(data) { + if (null === data) { + return false; + } + + var code, idx, bitlen = 0, len = 0, max = data.length, map = BASE64_MAP; + + // Convert one by one. + for (idx = 0; idx < max; idx++) { + code = map.indexOf(data.charAt(idx)); + + // Skip CR/LF + if (code > 64) { continue; } + + // Fail on illegal characters + if (code < 0) { return false; } + + bitlen += 6; + } + + // If there are any bits left, source was corrupted + return (bitlen % 8) === 0; +} + +function constructYamlBinary(data) { + var code, idx, tailbits, + input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan + max = input.length, + map = BASE64_MAP, + bits = 0, + result = []; + + // Collect by 6*4 bits (3 bytes) + + for (idx = 0; idx < max; idx++) { + if ((idx % 4 === 0) && idx) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } + + bits = (bits << 6) | map.indexOf(input.charAt(idx)); + } + + // Dump tail + + tailbits = (max % 4) * 6; + + if (tailbits === 0) { + result.push((bits >> 16) & 0xFF); + result.push((bits >> 8) & 0xFF); + result.push(bits & 0xFF); + } else if (tailbits === 18) { + result.push((bits >> 10) & 0xFF); + result.push((bits >> 2) & 0xFF); + } else if (tailbits === 12) { + result.push((bits >> 4) & 0xFF); + } + + // Wrap into Buffer for NodeJS and leave Array for browser + if (NodeBuffer) { + return new NodeBuffer(result); + } + + return result; +} + +function representYamlBinary(object /*, style*/) { + var result = '', bits = 0, idx, tail, + max = object.length, + map = BASE64_MAP; + + // Convert every three bytes to 4 ASCII characters. + + for (idx = 0; idx < max; idx++) { + if ((idx % 3 === 0) && idx) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } + + bits = (bits << 8) + object[idx]; + } + + // Dump tail + + tail = max % 3; + + if (tail === 0) { + result += map[(bits >> 18) & 0x3F]; + result += map[(bits >> 12) & 0x3F]; + result += map[(bits >> 6) & 0x3F]; + result += map[bits & 0x3F]; + } else if (tail === 2) { + result += map[(bits >> 10) & 0x3F]; + result += map[(bits >> 4) & 0x3F]; + result += map[(bits << 2) & 0x3F]; + result += map[64]; + } else if (tail === 1) { + result += map[(bits >> 2) & 0x3F]; + result += map[(bits << 4) & 0x3F]; + result += map[64]; + result += map[64]; + } + + return result; +} + +function isBinary(object) { + return NodeBuffer && NodeBuffer.isBuffer(object); +} + +module.exports = new Type('tag:yaml.org,2002:binary', { + kind: 'scalar', + resolve: resolveYamlBinary, + construct: constructYamlBinary, + predicate: isBinary, + represent: representYamlBinary +}); + +},{"../type":34,"buffer":12}],36:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +function resolveYamlBoolean(data) { + if (null === data) { + return false; + } + + var max = data.length; + + return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || + (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); +} + +function constructYamlBoolean(data) { + return data === 'true' || + data === 'True' || + data === 'TRUE'; +} + +function isBoolean(object) { + return '[object Boolean]' === Object.prototype.toString.call(object); +} + +module.exports = new Type('tag:yaml.org,2002:bool', { + kind: 'scalar', + resolve: resolveYamlBoolean, + construct: constructYamlBoolean, + predicate: isBoolean, + represent: { + lowercase: function (object) { return object ? 'true' : 'false'; }, + uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; }, + camelcase: function (object) { return object ? 'True' : 'False'; } + }, + defaultStyle: 'lowercase' +}); + +},{"../type":34}],37:[function(require,module,exports){ +'use strict'; + +var common = require('../common'); +var Type = require('../type'); + +var YAML_FLOAT_PATTERN = new RegExp( + '^(?:[-+]?(?:[0-9][0-9_]*)\\.[0-9_]*(?:[eE][-+][0-9]+)?' + + '|\\.[0-9_]+(?:[eE][-+][0-9]+)?' + + '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*' + + '|[-+]?\\.(?:inf|Inf|INF)' + + '|\\.(?:nan|NaN|NAN))$'); + +function resolveYamlFloat(data) { + if (null === data) { + return false; + } + + var value, sign, base, digits; + + if (!YAML_FLOAT_PATTERN.test(data)) { + return false; + } + return true; +} + +function constructYamlFloat(data) { + var value, sign, base, digits; + + value = data.replace(/_/g, '').toLowerCase(); + sign = '-' === value[0] ? -1 : 1; + digits = []; + + if (0 <= '+-'.indexOf(value[0])) { + value = value.slice(1); + } + + if ('.inf' === value) { + return (1 === sign) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; + + } else if ('.nan' === value) { + return NaN; + + } else if (0 <= value.indexOf(':')) { + value.split(':').forEach(function (v) { + digits.unshift(parseFloat(v, 10)); + }); + + value = 0.0; + base = 1; + + digits.forEach(function (d) { + value += d * base; + base *= 60; + }); + + return sign * value; + + } + return sign * parseFloat(value, 10); +} + +function representYamlFloat(object, style) { + if (isNaN(object)) { + switch (style) { + case 'lowercase': + return '.nan'; + case 'uppercase': + return '.NAN'; + case 'camelcase': + return '.NaN'; + } + } else if (Number.POSITIVE_INFINITY === object) { + switch (style) { + case 'lowercase': + return '.inf'; + case 'uppercase': + return '.INF'; + case 'camelcase': + return '.Inf'; + } + } else if (Number.NEGATIVE_INFINITY === object) { + switch (style) { + case 'lowercase': + return '-.inf'; + case 'uppercase': + return '-.INF'; + case 'camelcase': + return '-.Inf'; + } + } else if (common.isNegativeZero(object)) { + return '-0.0'; + } + return object.toString(10); +} + +function isFloat(object) { + return ('[object Number]' === Object.prototype.toString.call(object)) && + (0 !== object % 1 || common.isNegativeZero(object)); +} + +module.exports = new Type('tag:yaml.org,2002:float', { + kind: 'scalar', + resolve: resolveYamlFloat, + construct: constructYamlFloat, + predicate: isFloat, + represent: representYamlFloat, + defaultStyle: 'lowercase' +}); + +},{"../common":23,"../type":34}],38:[function(require,module,exports){ +'use strict'; + +var common = require('../common'); +var Type = require('../type'); + +function isHexCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || + ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || + ((0x61/* a */ <= c) && (c <= 0x66/* f */)); +} + +function isOctCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); +} + +function isDecCode(c) { + return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); +} + +function resolveYamlInteger(data) { + if (null === data) { + return false; + } + + var max = data.length, + index = 0, + hasDigits = false, + ch; + + if (!max) { return false; } + + ch = data[index]; + + // sign + if (ch === '-' || ch === '+') { + ch = data[++index]; + } + + if (ch === '0') { + // 0 + if (index + 1 === max) { return true; } + ch = data[++index]; + + // base 2, base 8, base 16 + + if (ch === 'b') { + // base 2 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') { continue; } + if (ch !== '0' && ch !== '1') { + return false; + } + hasDigits = true; + } + return hasDigits; + } + + + if (ch === 'x') { + // base 16 + index++; + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') { continue; } + if (!isHexCode(data.charCodeAt(index))) { + return false; + } + hasDigits = true; + } + return hasDigits; + } + + // base 8 + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') { continue; } + if (!isOctCode(data.charCodeAt(index))) { + return false; + } + hasDigits = true; + } + return hasDigits; + } + + // base 10 (except 0) or base 60 + + for (; index < max; index++) { + ch = data[index]; + if (ch === '_') { continue; } + if (ch === ':') { break; } + if (!isDecCode(data.charCodeAt(index))) { + return false; + } + hasDigits = true; + } + + if (!hasDigits) { return false; } + + // if !base60 - done; + if (ch !== ':') { return true; } + + // base60 almost not used, no needs to optimize + return /^(:[0-5]?[0-9])+$/.test(data.slice(index)); +} + +function constructYamlInteger(data) { + var value = data, sign = 1, ch, base, digits = []; + + if (value.indexOf('_') !== -1) { + value = value.replace(/_/g, ''); + } + + ch = value[0]; + + if (ch === '-' || ch === '+') { + if (ch === '-') { sign = -1; } + value = value.slice(1); + ch = value[0]; + } + + if ('0' === value) { + return 0; + } + + if (ch === '0') { + if (value[1] === 'b') { + return sign * parseInt(value.slice(2), 2); + } + if (value[1] === 'x') { + return sign * parseInt(value, 16); + } + return sign * parseInt(value, 8); + + } + + if (value.indexOf(':') !== -1) { + value.split(':').forEach(function (v) { + digits.unshift(parseInt(v, 10)); + }); + + value = 0; + base = 1; + + digits.forEach(function (d) { + value += (d * base); + base *= 60; + }); + + return sign * value; + + } + + return sign * parseInt(value, 10); +} + +function isInteger(object) { + return ('[object Number]' === Object.prototype.toString.call(object)) && + (0 === object % 1 && !common.isNegativeZero(object)); +} + +module.exports = new Type('tag:yaml.org,2002:int', { + kind: 'scalar', + resolve: resolveYamlInteger, + construct: constructYamlInteger, + predicate: isInteger, + represent: { + binary: function (object) { return '0b' + object.toString(2); }, + octal: function (object) { return '0' + object.toString(8); }, + decimal: function (object) { return object.toString(10); }, + hexadecimal: function (object) { return '0x' + object.toString(16).toUpperCase(); } + }, + defaultStyle: 'decimal', + styleAliases: { + binary: [ 2, 'bin' ], + octal: [ 8, 'oct' ], + decimal: [ 10, 'dec' ], + hexadecimal: [ 16, 'hex' ] + } +}); + +},{"../common":23,"../type":34}],39:[function(require,module,exports){ +'use strict'; + +var esprima; + +// Browserified version does not have esprima +// +// 1. For node.js just require module as deps +// 2. For browser try to require mudule via external AMD system. +// If not found - try to fallback to window.esprima. If not +// found too - then fail to parse. +// +try { + esprima = require('esprima'); +} catch (_) { + /*global window */ + if (typeof window !== 'undefined') { esprima = window.esprima; } +} + +var Type = require('../../type'); + +function resolveJavascriptFunction(data) { + if (null === data) { + return false; + } + + try { + var source = '(' + data + ')', + ast = esprima.parse(source, { range: true }), + params = [], + body; + + if ('Program' !== ast.type || + 1 !== ast.body.length || + 'ExpressionStatement' !== ast.body[0].type || + 'FunctionExpression' !== ast.body[0].expression.type) { + return false; + } + + return true; + } catch (err) { + return false; + } +} + +function constructJavascriptFunction(data) { + /*jslint evil:true*/ + + var source = '(' + data + ')', + ast = esprima.parse(source, { range: true }), + params = [], + body; + + if ('Program' !== ast.type || + 1 !== ast.body.length || + 'ExpressionStatement' !== ast.body[0].type || + 'FunctionExpression' !== ast.body[0].expression.type) { + throw new Error('Failed to resolve function'); + } + + ast.body[0].expression.params.forEach(function (param) { + params.push(param.name); + }); + + body = ast.body[0].expression.body.range; + + // Esprima's ranges include the first '{' and the last '}' characters on + // function expressions. So cut them out. + /*eslint-disable no-new-func*/ + return new Function(params, source.slice(body[0] + 1, body[1] - 1)); +} + +function representJavascriptFunction(object /*, style*/) { + return object.toString(); +} + +function isFunction(object) { + return '[object Function]' === Object.prototype.toString.call(object); +} + +module.exports = new Type('tag:yaml.org,2002:js/function', { + kind: 'scalar', + resolve: resolveJavascriptFunction, + construct: constructJavascriptFunction, + predicate: isFunction, + represent: representJavascriptFunction +}); + +},{"../../type":34,"esprima":51}],40:[function(require,module,exports){ +'use strict'; + +var Type = require('../../type'); + +function resolveJavascriptRegExp(data) { + if (null === data) { + return false; + } + + if (0 === data.length) { + return false; + } + + var regexp = data, + tail = /\/([gim]*)$/.exec(data), + modifiers = ''; + + // if regexp starts with '/' it can have modifiers and must be properly closed + // `/foo/gim` - modifiers tail can be maximum 3 chars + if ('/' === regexp[0]) { + if (tail) { + modifiers = tail[1]; + } + + if (modifiers.length > 3) { return false; } + // if expression starts with /, is should be properly terminated + if (regexp[regexp.length - modifiers.length - 1] !== '/') { return false; } + + regexp = regexp.slice(1, regexp.length - modifiers.length - 1); + } + + try { + var dummy = new RegExp(regexp, modifiers); + return true; + } catch (error) { + return false; + } +} + +function constructJavascriptRegExp(data) { + var regexp = data, + tail = /\/([gim]*)$/.exec(data), + modifiers = ''; + + // `/foo/gim` - tail can be maximum 4 chars + if ('/' === regexp[0]) { + if (tail) { + modifiers = tail[1]; + } + regexp = regexp.slice(1, regexp.length - modifiers.length - 1); + } + + return new RegExp(regexp, modifiers); +} + +function representJavascriptRegExp(object /*, style*/) { + var result = '/' + object.source + '/'; + + if (object.global) { + result += 'g'; + } + + if (object.multiline) { + result += 'm'; + } + + if (object.ignoreCase) { + result += 'i'; + } + + return result; +} + +function isRegExp(object) { + return '[object RegExp]' === Object.prototype.toString.call(object); +} + +module.exports = new Type('tag:yaml.org,2002:js/regexp', { + kind: 'scalar', + resolve: resolveJavascriptRegExp, + construct: constructJavascriptRegExp, + predicate: isRegExp, + represent: representJavascriptRegExp +}); + +},{"../../type":34}],41:[function(require,module,exports){ +'use strict'; + +var Type = require('../../type'); + +function resolveJavascriptUndefined() { + return true; +} + +function constructJavascriptUndefined() { + /*eslint-disable no-undefined*/ + return undefined; +} + +function representJavascriptUndefined() { + return ''; +} + +function isUndefined(object) { + return 'undefined' === typeof object; +} + +module.exports = new Type('tag:yaml.org,2002:js/undefined', { + kind: 'scalar', + resolve: resolveJavascriptUndefined, + construct: constructJavascriptUndefined, + predicate: isUndefined, + represent: representJavascriptUndefined +}); + +},{"../../type":34}],42:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +module.exports = new Type('tag:yaml.org,2002:map', { + kind: 'mapping', + construct: function (data) { return null !== data ? data : {}; } +}); + +},{"../type":34}],43:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +function resolveYamlMerge(data) { + return '<<' === data || null === data; +} + +module.exports = new Type('tag:yaml.org,2002:merge', { + kind: 'scalar', + resolve: resolveYamlMerge +}); + +},{"../type":34}],44:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +function resolveYamlNull(data) { + if (null === data) { + return true; + } + + var max = data.length; + + return (max === 1 && data === '~') || + (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); +} + +function constructYamlNull() { + return null; +} + +function isNull(object) { + return null === object; +} + +module.exports = new Type('tag:yaml.org,2002:null', { + kind: 'scalar', + resolve: resolveYamlNull, + construct: constructYamlNull, + predicate: isNull, + represent: { + canonical: function () { return '~'; }, + lowercase: function () { return 'null'; }, + uppercase: function () { return 'NULL'; }, + camelcase: function () { return 'Null'; } + }, + defaultStyle: 'lowercase' +}); + +},{"../type":34}],45:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +var _hasOwnProperty = Object.prototype.hasOwnProperty; +var _toString = Object.prototype.toString; + +function resolveYamlOmap(data) { + if (null === data) { + return true; + } + + var objectKeys = [], index, length, pair, pairKey, pairHasKey, + object = data; + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + pairHasKey = false; + + if ('[object Object]' !== _toString.call(pair)) { + return false; + } + + for (pairKey in pair) { + if (_hasOwnProperty.call(pair, pairKey)) { + if (!pairHasKey) { + pairHasKey = true; + } else { + return false; + } + } + } + + if (!pairHasKey) { + return false; + } + + if (-1 === objectKeys.indexOf(pairKey)) { + objectKeys.push(pairKey); + } else { + return false; + } + } + + return true; +} + +function constructYamlOmap(data) { + return null !== data ? data : []; +} + +module.exports = new Type('tag:yaml.org,2002:omap', { + kind: 'sequence', + resolve: resolveYamlOmap, + construct: constructYamlOmap +}); + +},{"../type":34}],46:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +var _toString = Object.prototype.toString; + +function resolveYamlPairs(data) { + if (null === data) { + return true; + } + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + if ('[object Object]' !== _toString.call(pair)) { + return false; + } + + keys = Object.keys(pair); + + if (1 !== keys.length) { + return false; + } + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return true; +} + +function constructYamlPairs(data) { + if (null === data) { + return []; + } + + var index, length, pair, keys, result, + object = data; + + result = new Array(object.length); + + for (index = 0, length = object.length; index < length; index += 1) { + pair = object[index]; + + keys = Object.keys(pair); + + result[index] = [ keys[0], pair[keys[0]] ]; + } + + return result; +} + +module.exports = new Type('tag:yaml.org,2002:pairs', { + kind: 'sequence', + resolve: resolveYamlPairs, + construct: constructYamlPairs +}); + +},{"../type":34}],47:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +module.exports = new Type('tag:yaml.org,2002:seq', { + kind: 'sequence', + construct: function (data) { return null !== data ? data : []; } +}); + +},{"../type":34}],48:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +var _hasOwnProperty = Object.prototype.hasOwnProperty; + +function resolveYamlSet(data) { + if (null === data) { + return true; + } + + var key, object = data; + + for (key in object) { + if (_hasOwnProperty.call(object, key)) { + if (null !== object[key]) { + return false; + } + } + } + + return true; +} + +function constructYamlSet(data) { + return null !== data ? data : {}; +} + +module.exports = new Type('tag:yaml.org,2002:set', { + kind: 'mapping', + resolve: resolveYamlSet, + construct: constructYamlSet +}); + +},{"../type":34}],49:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +module.exports = new Type('tag:yaml.org,2002:str', { + kind: 'scalar', + construct: function (data) { return null !== data ? data : ''; } +}); + +},{"../type":34}],50:[function(require,module,exports){ +'use strict'; + +var Type = require('../type'); + +var YAML_TIMESTAMP_REGEXP = new RegExp( + '^([0-9][0-9][0-9][0-9])' + // [1] year + '-([0-9][0-9]?)' + // [2] month + '-([0-9][0-9]?)' + // [3] day + '(?:(?:[Tt]|[ \\t]+)' + // ... + '([0-9][0-9]?)' + // [4] hour + ':([0-9][0-9])' + // [5] minute + ':([0-9][0-9])' + // [6] second + '(?:\\.([0-9]*))?' + // [7] fraction + '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour + '(?::([0-9][0-9]))?))?)?$'); // [11] tz_minute + +function resolveYamlTimestamp(data) { + if (null === data) { + return false; + } + + var match, year, month, day, hour, minute, second, fraction = 0, + delta = null, tz_hour, tz_minute, date; + + match = YAML_TIMESTAMP_REGEXP.exec(data); + + if (null === match) { + return false; + } + + return true; +} + +function constructYamlTimestamp(data) { + var match, year, month, day, hour, minute, second, fraction = 0, + delta = null, tz_hour, tz_minute, date; + + match = YAML_TIMESTAMP_REGEXP.exec(data); + + if (null === match) { + throw new Error('Date resolve error'); + } + + // match: [1] year [2] month [3] day + + year = +(match[1]); + month = +(match[2]) - 1; // JS month starts with 0 + day = +(match[3]); + + if (!match[4]) { // no hour + return new Date(Date.UTC(year, month, day)); + } + + // match: [4] hour [5] minute [6] second [7] fraction + + hour = +(match[4]); + minute = +(match[5]); + second = +(match[6]); + + if (match[7]) { + fraction = match[7].slice(0, 3); + while (fraction.length < 3) { // milli-seconds + fraction += '0'; + } + fraction = +fraction; + } + + // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute + + if (match[9]) { + tz_hour = +(match[10]); + tz_minute = +(match[11] || 0); + delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds + if ('-' === match[9]) { + delta = -delta; + } + } + + date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); + + if (delta) { + date.setTime(date.getTime() - delta); + } + + return date; +} + +function representYamlTimestamp(object /*, style*/) { + return object.toISOString(); +} + +module.exports = new Type('tag:yaml.org,2002:timestamp', { + kind: 'scalar', + resolve: resolveYamlTimestamp, + construct: constructYamlTimestamp, + instanceOf: Date, + represent: representYamlTimestamp +}); + +},{"../type":34}],51:[function(require,module,exports){ +/* + Copyright (C) 2013 Ariya Hidayat <ariya.hidayat@gmail.com> + Copyright (C) 2013 Thaddee Tyl <thaddee.tyl@gmail.com> + Copyright (C) 2013 Mathias Bynens <mathias@qiwi.be> + Copyright (C) 2012 Ariya Hidayat <ariya.hidayat@gmail.com> + Copyright (C) 2012 Mathias Bynens <mathias@qiwi.be> + Copyright (C) 2012 Joost-Wim Boekesteijn <joost-wim@boekesteijn.nl> + Copyright (C) 2012 Kris Kowal <kris.kowal@cixar.com> + Copyright (C) 2012 Yusuke Suzuki <utatane.tea@gmail.com> + Copyright (C) 2012 Arpad Borsos <arpad.borsos@googlemail.com> + Copyright (C) 2011 Ariya Hidayat <ariya.hidayat@gmail.com> + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +(function (root, factory) { + 'use strict'; + + // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, + // Rhino, and plain browser loading. + + /* istanbul ignore next */ + if (typeof define === 'function' && define.amd) { + define(['exports'], factory); + } else if (typeof exports !== 'undefined') { + factory(exports); + } else { + factory((root.esprima = {})); + } +}(this, function (exports) { + 'use strict'; + + var Token, + TokenName, + FnExprTokens, + Syntax, + PlaceHolders, + Messages, + Regex, + source, + strict, + sourceType, + index, + lineNumber, + lineStart, + hasLineTerminator, + lastIndex, + lastLineNumber, + lastLineStart, + startIndex, + startLineNumber, + startLineStart, + scanning, + length, + lookahead, + state, + extra, + isBindingElement, + isAssignmentTarget, + firstCoverInitializedNameError; + + Token = { + BooleanLiteral: 1, + EOF: 2, + Identifier: 3, + Keyword: 4, + NullLiteral: 5, + NumericLiteral: 6, + Punctuator: 7, + StringLiteral: 8, + RegularExpression: 9, + Template: 10 + }; + + TokenName = {}; + TokenName[Token.BooleanLiteral] = 'Boolean'; + TokenName[Token.EOF] = '<end>'; + TokenName[Token.Identifier] = 'Identifier'; + TokenName[Token.Keyword] = 'Keyword'; + TokenName[Token.NullLiteral] = 'Null'; + TokenName[Token.NumericLiteral] = 'Numeric'; + TokenName[Token.Punctuator] = 'Punctuator'; + TokenName[Token.StringLiteral] = 'String'; + TokenName[Token.RegularExpression] = 'RegularExpression'; + TokenName[Token.Template] = 'Template'; + + // A function following one of those tokens is an expression. + FnExprTokens = ['(', '{', '[', 'in', 'typeof', 'instanceof', 'new', + 'return', 'case', 'delete', 'throw', 'void', + // assignment operators + '=', '+=', '-=', '*=', '/=', '%=', '<<=', '>>=', '>>>=', + '&=', '|=', '^=', ',', + // binary/unary operators + '+', '-', '*', '/', '%', '++', '--', '<<', '>>', '>>>', '&', + '|', '^', '!', '~', '&&', '||', '?', ':', '===', '==', '>=', + '<=', '<', '>', '!=', '!==']; + + Syntax = { + AssignmentExpression: 'AssignmentExpression', + AssignmentPattern: 'AssignmentPattern', + ArrayExpression: 'ArrayExpression', + ArrayPattern: 'ArrayPattern', + ArrowFunctionExpression: 'ArrowFunctionExpression', + BlockStatement: 'BlockStatement', + BinaryExpression: 'BinaryExpression', + BreakStatement: 'BreakStatement', + CallExpression: 'CallExpression', + CatchClause: 'CatchClause', + ClassBody: 'ClassBody', + ClassDeclaration: 'ClassDeclaration', + ClassExpression: 'ClassExpression', + ConditionalExpression: 'ConditionalExpression', + ContinueStatement: 'ContinueStatement', + DoWhileStatement: 'DoWhileStatement', + DebuggerStatement: 'DebuggerStatement', + EmptyStatement: 'EmptyStatement', + ExportAllDeclaration: 'ExportAllDeclaration', + ExportDefaultDeclaration: 'ExportDefaultDeclaration', + ExportNamedDeclaration: 'ExportNamedDeclaration', + ExportSpecifier: 'ExportSpecifier', + ExpressionStatement: 'ExpressionStatement', + ForStatement: 'ForStatement', + ForInStatement: 'ForInStatement', + FunctionDeclaration: 'FunctionDeclaration', + FunctionExpression: 'FunctionExpression', + Identifier: 'Identifier', + IfStatement: 'IfStatement', + ImportDeclaration: 'ImportDeclaration', + ImportDefaultSpecifier: 'ImportDefaultSpecifier', + ImportNamespaceSpecifier: 'ImportNamespaceSpecifier', + ImportSpecifier: 'ImportSpecifier', + Literal: 'Literal', + LabeledStatement: 'LabeledStatement', + LogicalExpression: 'LogicalExpression', + MemberExpression: 'MemberExpression', + MethodDefinition: 'MethodDefinition', + NewExpression: 'NewExpression', + ObjectExpression: 'ObjectExpression', + ObjectPattern: 'ObjectPattern', + Program: 'Program', + Property: 'Property', + RestElement: 'RestElement', + ReturnStatement: 'ReturnStatement', + SequenceExpression: 'SequenceExpression', + SpreadElement: 'SpreadElement', + Super: 'Super', + SwitchCase: 'SwitchCase', + SwitchStatement: 'SwitchStatement', + TaggedTemplateExpression: 'TaggedTemplateExpression', + TemplateElement: 'TemplateElement', + TemplateLiteral: 'TemplateLiteral', + ThisExpression: 'ThisExpression', + ThrowStatement: 'ThrowStatement', + TryStatement: 'TryStatement', + UnaryExpression: 'UnaryExpression', + UpdateExpression: 'UpdateExpression', + VariableDeclaration: 'VariableDeclaration', + VariableDeclarator: 'VariableDeclarator', + WhileStatement: 'WhileStatement', + WithStatement: 'WithStatement' + }; + + PlaceHolders = { + ArrowParameterPlaceHolder: 'ArrowParameterPlaceHolder' + }; + + // Error messages should be identical to V8. + Messages = { + UnexpectedToken: 'Unexpected token %0', + UnexpectedNumber: 'Unexpected number', + UnexpectedString: 'Unexpected string', + UnexpectedIdentifier: 'Unexpected identifier', + UnexpectedReserved: 'Unexpected reserved word', + UnexpectedTemplate: 'Unexpected quasi %0', + UnexpectedEOS: 'Unexpected end of input', + NewlineAfterThrow: 'Illegal newline after throw', + InvalidRegExp: 'Invalid regular expression', + UnterminatedRegExp: 'Invalid regular expression: missing /', + InvalidLHSInAssignment: 'Invalid left-hand side in assignment', + InvalidLHSInForIn: 'Invalid left-hand side in for-in', + MultipleDefaultsInSwitch: 'More than one default clause in switch statement', + NoCatchOrFinally: 'Missing catch or finally after try', + UnknownLabel: 'Undefined label \'%0\'', + Redeclaration: '%0 \'%1\' has already been declared', + IllegalContinue: 'Illegal continue statement', + IllegalBreak: 'Illegal break statement', + IllegalReturn: 'Illegal return statement', + StrictModeWith: 'Strict mode code may not include a with statement', + StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode', + StrictVarName: 'Variable name may not be eval or arguments in strict mode', + StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode', + StrictParamDupe: 'Strict mode function may not have duplicate parameter names', + StrictFunctionName: 'Function name may not be eval or arguments in strict mode', + StrictOctalLiteral: 'Octal literals are not allowed in strict mode.', + StrictDelete: 'Delete of an unqualified identifier in strict mode.', + StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode', + StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode', + StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode', + StrictReservedWord: 'Use of future reserved word in strict mode', + TemplateOctalLiteral: 'Octal literals are not allowed in template strings.', + ParameterAfterRestParameter: 'Rest parameter must be last formal parameter', + DefaultRestParameter: 'Unexpected token =', + ObjectPatternAsRestParameter: 'Unexpected token {', + DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals', + ConstructorSpecialMethod: 'Class constructor may not be an accessor', + DuplicateConstructor: 'A class may only have one constructor', + StaticPrototype: 'Classes may not have static property named prototype', + MissingFromClause: 'Unexpected token', + NoAsAfterImportNamespace: 'Unexpected token', + InvalidModuleSpecifier: 'Unexpected token', + IllegalImportDeclaration: 'Unexpected token', + IllegalExportDeclaration: 'Unexpected token' + }; + + // See also tools/generate-unicode-regex.py. + Regex = { + NonAsciiIdentifierStart: new RegExp('[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]'), + NonAsciiIdentifierPart: new RegExp('[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]') + }; + + // Ensure the condition is true, otherwise throw an error. + // This is only to have a better contract semantic, i.e. another safety net + // to catch a logic error. The condition shall be fulfilled in normal case. + // Do NOT use this to enforce a certain condition on any user input. + + function assert(condition, message) { + /* istanbul ignore if */ + if (!condition) { + throw new Error('ASSERT: ' + message); + } + } + + function isDecimalDigit(ch) { + return (ch >= 0x30 && ch <= 0x39); // 0..9 + } + + function isHexDigit(ch) { + return '0123456789abcdefABCDEF'.indexOf(ch) >= 0; + } + + function isOctalDigit(ch) { + return '01234567'.indexOf(ch) >= 0; + } + + function octalToDecimal(ch) { + // \0 is not octal escape sequence + var octal = (ch !== '0'), code = '01234567'.indexOf(ch); + + if (index < length && isOctalDigit(source[index])) { + octal = true; + code = code * 8 + '01234567'.indexOf(source[index++]); + + // 3 digits are only allowed when string starts + // with 0, 1, 2, 3 + if ('0123'.indexOf(ch) >= 0 && + index < length && + isOctalDigit(source[index])) { + code = code * 8 + '01234567'.indexOf(source[index++]); + } + } + + return { + code: code, + octal: octal + }; + } + + // 7.2 White Space + + function isWhiteSpace(ch) { + return (ch === 0x20) || (ch === 0x09) || (ch === 0x0B) || (ch === 0x0C) || (ch === 0xA0) || + (ch >= 0x1680 && [0x1680, 0x180E, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(ch) >= 0); + } + + // 7.3 Line Terminators + + function isLineTerminator(ch) { + return (ch === 0x0A) || (ch === 0x0D) || (ch === 0x2028) || (ch === 0x2029); + } + + // 7.6 Identifier Names and Identifiers + + function isIdentifierStart(ch) { + return (ch === 0x24) || (ch === 0x5F) || // $ (dollar) and _ (underscore) + (ch >= 0x41 && ch <= 0x5A) || // A..Z + (ch >= 0x61 && ch <= 0x7A) || // a..z + (ch === 0x5C) || // \ (backslash) + ((ch >= 0x80) && Regex.NonAsciiIdentifierStart.test(String.fromCharCode(ch))); + } + + function isIdentifierPart(ch) { + return (ch === 0x24) || (ch === 0x5F) || // $ (dollar) and _ (underscore) + (ch >= 0x41 && ch <= 0x5A) || // A..Z + (ch >= 0x61 && ch <= 0x7A) || // a..z + (ch >= 0x30 && ch <= 0x39) || // 0..9 + (ch === 0x5C) || // \ (backslash) + ((ch >= 0x80) && Regex.NonAsciiIdentifierPart.test(String.fromCharCode(ch))); + } + + // 7.6.1.2 Future Reserved Words + + function isFutureReservedWord(id) { + switch (id) { + case 'enum': + case 'export': + case 'import': + case 'super': + return true; + default: + return false; + } + } + + // 11.6.2.2 Future Reserved Words + + function isStrictModeReservedWord(id) { + switch (id) { + case 'implements': + case 'interface': + case 'package': + case 'private': + case 'protected': + case 'public': + case 'static': + case 'yield': + case 'let': + return true; + default: + return false; + } + } + + function isRestrictedWord(id) { + return id === 'eval' || id === 'arguments'; + } + + // 7.6.1.1 Keywords + + function isKeyword(id) { + + // 'const' is specialized as Keyword in V8. + // 'yield' and 'let' are for compatibility with SpiderMonkey and ES.next. + // Some others are from future reserved words. + + switch (id.length) { + case 2: + return (id === 'if') || (id === 'in') || (id === 'do'); + case 3: + return (id === 'var') || (id === 'for') || (id === 'new') || + (id === 'try') || (id === 'let'); + case 4: + return (id === 'this') || (id === 'else') || (id === 'case') || + (id === 'void') || (id === 'with') || (id === 'enum'); + case 5: + return (id === 'while') || (id === 'break') || (id === 'catch') || + (id === 'throw') || (id === 'const') || (id === 'yield') || + (id === 'class') || (id === 'super'); + case 6: + return (id === 'return') || (id === 'typeof') || (id === 'delete') || + (id === 'switch') || (id === 'export') || (id === 'import'); + case 7: + return (id === 'default') || (id === 'finally') || (id === 'extends'); + case 8: + return (id === 'function') || (id === 'continue') || (id === 'debugger'); + case 10: + return (id === 'instanceof'); + default: + return false; + } + } + + // 7.4 Comments + + function addComment(type, value, start, end, loc) { + var comment; + + assert(typeof start === 'number', 'Comment must have valid position'); + + state.lastCommentStart = start; + + comment = { + type: type, + value: value + }; + if (extra.range) { + comment.range = [start, end]; + } + if (extra.loc) { + comment.loc = loc; + } + extra.comments.push(comment); + if (extra.attachComment) { + extra.leadingComments.push(comment); + extra.trailingComments.push(comment); + } + } + + function skipSingleLineComment(offset) { + var start, loc, ch, comment; + + start = index - offset; + loc = { + start: { + line: lineNumber, + column: index - lineStart - offset + } + }; + + while (index < length) { + ch = source.charCodeAt(index); + ++index; + if (isLineTerminator(ch)) { + hasLineTerminator = true; + if (extra.comments) { + comment = source.slice(start + offset, index - 1); + loc.end = { + line: lineNumber, + column: index - lineStart - 1 + }; + addComment('Line', comment, start, index - 1, loc); + } + if (ch === 13 && source.charCodeAt(index) === 10) { + ++index; + } + ++lineNumber; + lineStart = index; + return; + } + } + + if (extra.comments) { + comment = source.slice(start + offset, index); + loc.end = { + line: lineNumber, + column: index - lineStart + }; + addComment('Line', comment, start, index, loc); + } + } + + function skipMultiLineComment() { + var start, loc, ch, comment; + + if (extra.comments) { + start = index - 2; + loc = { + start: { + line: lineNumber, + column: index - lineStart - 2 + } + }; + } + + while (index < length) { + ch = source.charCodeAt(index); + if (isLineTerminator(ch)) { + if (ch === 0x0D && source.charCodeAt(index + 1) === 0x0A) { + ++index; + } + hasLineTerminator = true; + ++lineNumber; + ++index; + lineStart = index; + } else if (ch === 0x2A) { + // Block comment ends with '*/'. + if (source.charCodeAt(index + 1) === 0x2F) { + ++index; + ++index; + if (extra.comments) { + comment = source.slice(start + 2, index - 2); + loc.end = { + line: lineNumber, + column: index - lineStart + }; + addComment('Block', comment, start, index, loc); + } + return; + } + ++index; + } else { + ++index; + } + } + + // Ran off the end of the file - the whole thing is a comment + if (extra.comments) { + loc.end = { + line: lineNumber, + column: index - lineStart + }; + comment = source.slice(start + 2, index); + addComment('Block', comment, start, index, loc); + } + tolerateUnexpectedToken(); + } + + function skipComment() { + var ch, start; + hasLineTerminator = false; + + start = (index === 0); + while (index < length) { + ch = source.charCodeAt(index); + + if (isWhiteSpace(ch)) { + ++index; + } else if (isLineTerminator(ch)) { + hasLineTerminator = true; + ++index; + if (ch === 0x0D && source.charCodeAt(index) === 0x0A) { + ++index; + } + ++lineNumber; + lineStart = index; + start = true; + } else if (ch === 0x2F) { // U+002F is '/' + ch = source.charCodeAt(index + 1); + if (ch === 0x2F) { + ++index; + ++index; + skipSingleLineComment(2); + start = true; + } else if (ch === 0x2A) { // U+002A is '*' + ++index; + ++index; + skipMultiLineComment(); + } else { + break; + } + } else if (start && ch === 0x2D) { // U+002D is '-' + // U+003E is '>' + if ((source.charCodeAt(index + 1) === 0x2D) && (source.charCodeAt(index + 2) === 0x3E)) { + // '-->' is a single-line comment + index += 3; + skipSingleLineComment(3); + } else { + break; + } + } else if (ch === 0x3C) { // U+003C is '<' + if (source.slice(index + 1, index + 4) === '!--') { + ++index; // `<` + ++index; // `!` + ++index; // `-` + ++index; // `-` + skipSingleLineComment(4); + } else { + break; + } + } else { + break; + } + } + } + + function scanHexEscape(prefix) { + var i, len, ch, code = 0; + + len = (prefix === 'u') ? 4 : 2; + for (i = 0; i < len; ++i) { + if (index < length && isHexDigit(source[index])) { + ch = source[index++]; + code = code * 16 + '0123456789abcdef'.indexOf(ch.toLowerCase()); + } else { + return ''; + } + } + return String.fromCharCode(code); + } + + function scanUnicodeCodePointEscape() { + var ch, code, cu1, cu2; + + ch = source[index]; + code = 0; + + // At least, one hex digit is required. + if (ch === '}') { + throwUnexpectedToken(); + } + + while (index < length) { + ch = source[index++]; + if (!isHexDigit(ch)) { + break; + } + code = code * 16 + '0123456789abcdef'.indexOf(ch.toLowerCase()); + } + + if (code > 0x10FFFF || ch !== '}') { + throwUnexpectedToken(); + } + + // UTF-16 Encoding + if (code <= 0xFFFF) { + return String.fromCharCode(code); + } + cu1 = ((code - 0x10000) >> 10) + 0xD800; + cu2 = ((code - 0x10000) & 1023) + 0xDC00; + return String.fromCharCode(cu1, cu2); + } + + function getEscapedIdentifier() { + var ch, id; + + ch = source.charCodeAt(index++); + id = String.fromCharCode(ch); + + // '\u' (U+005C, U+0075) denotes an escaped character. + if (ch === 0x5C) { + if (source.charCodeAt(index) !== 0x75) { + throwUnexpectedToken(); + } + ++index; + ch = scanHexEscape('u'); + if (!ch || ch === '\\' || !isIdentifierStart(ch.charCodeAt(0))) { + throwUnexpectedToken(); + } + id = ch; + } + + while (index < length) { + ch = source.charCodeAt(index); + if (!isIdentifierPart(ch)) { + break; + } + ++index; + id += String.fromCharCode(ch); + + // '\u' (U+005C, U+0075) denotes an escaped character. + if (ch === 0x5C) { + id = id.substr(0, id.length - 1); + if (source.charCodeAt(index) !== 0x75) { + throwUnexpectedToken(); + } + ++index; + ch = scanHexEscape('u'); + if (!ch || ch === '\\' || !isIdentifierPart(ch.charCodeAt(0))) { + throwUnexpectedToken(); + } + id += ch; + } + } + + return id; + } + + function getIdentifier() { + var start, ch; + + start = index++; + while (index < length) { + ch = source.charCodeAt(index); + if (ch === 0x5C) { + // Blackslash (U+005C) marks Unicode escape sequence. + index = start; + return getEscapedIdentifier(); + } + if (isIdentifierPart(ch)) { + ++index; + } else { + break; + } + } + + return source.slice(start, index); + } + + function scanIdentifier() { + var start, id, type; + + start = index; + + // Backslash (U+005C) starts an escaped character. + id = (source.charCodeAt(index) === 0x5C) ? getEscapedIdentifier() : getIdentifier(); + + // There is no keyword or literal with only one character. + // Thus, it must be an identifier. + if (id.length === 1) { + type = Token.Identifier; + } else if (isKeyword(id)) { + type = Token.Keyword; + } else if (id === 'null') { + type = Token.NullLiteral; + } else if (id === 'true' || id === 'false') { + type = Token.BooleanLiteral; + } else { + type = Token.Identifier; + } + + return { + type: type, + value: id, + lineNumber: lineNumber, + lineStart: lineStart, + start: start, + end: index + }; + } + + + // 7.7 Punctuators + + function scanPunctuator() { + var token, str; + + token = { + type: Token.Punctuator, + value: '', + lineNumber: lineNumber, + lineStart: lineStart, + start: index, + end: index + }; + + // Check for most common single-character punctuators. + str = source[index]; + switch (str) { + + case '(': + if (extra.tokenize) { + extra.openParenToken = extra.tokens.length; + } + ++index; + break; + + case '{': + if (extra.tokenize) { + extra.openCurlyToken = extra.tokens.length; + } + state.curlyStack.push('{'); + ++index; + break; + + case '.': + ++index; + if (source[index] === '.' && source[index + 1] === '.') { + // Spread operator: ... + index += 2; + str = '...'; + } + break; + + case '}': + ++index; + state.curlyStack.pop(); + break; + case ')': + case ';': + case ',': + case '[': + case ']': + case ':': + case '?': + case '~': + ++index; + break; + + default: + // 4-character punctuator. + str = source.substr(index, 4); + if (str === '>>>=') { + index += 4; + } else { + + // 3-character punctuators. + str = str.substr(0, 3); + if (str === '===' || str === '!==' || str === '>>>' || + str === '<<=' || str === '>>=') { + index += 3; + } else { + + // 2-character punctuators. + str = str.substr(0, 2); + if (str === '&&' || str === '||' || str === '==' || str === '!=' || + str === '+=' || str === '-=' || str === '*=' || str === '/=' || + str === '++' || str === '--' || str === '<<' || str === '>>' || + str === '&=' || str === '|=' || str === '^=' || str === '%=' || + str === '<=' || str === '>=' || str === '=>') { + index += 2; + } else { + + // 1-character punctuators. + str = source[index]; + if ('<>=!+-*%&|^/'.indexOf(str) >= 0) { + ++index; + } + } + } + } + } + + if (index === token.start) { + throwUnexpectedToken(); + } + + token.end = index; + token.value = str; + return token; + } + + // 7.8.3 Numeric Literals + + function scanHexLiteral(start) { + var number = ''; + + while (index < length) { + if (!isHexDigit(source[index])) { + break; + } + number += source[index++]; + } + + if (number.length === 0) { + throwUnexpectedToken(); + } + + if (isIdentifierStart(source.charCodeAt(index))) { + throwUnexpectedToken(); + } + + return { + type: Token.NumericLiteral, + value: parseInt('0x' + number, 16), + lineNumber: lineNumber, + lineStart: lineStart, + start: start, + end: index + }; + } + + function scanBinaryLiteral(start) { + var ch, number; + + number = ''; + + while (index < length) { + ch = source[index]; + if (ch !== '0' && ch !== '1') { + break; + } + number += source[index++]; + } + + if (number.length === 0) { + // only 0b or 0B + throwUnexpectedToken(); + } + + if (index < length) { + ch = source.charCodeAt(index); + /* istanbul ignore else */ + if (isIdentifierStart(ch) || isDecimalDigit(ch)) { + throwUnexpectedToken(); + } + } + + return { + type: Token.NumericLiteral, + value: parseInt(number, 2), + lineNumber: lineNumber, + lineStart: lineStart, + start: start, + end: index + }; + } + + function scanOctalLiteral(prefix, start) { + var number, octal; + + if (isOctalDigit(prefix)) { + octal = true; + number = '0' + source[index++]; + } else { + octal = false; + ++index; + number = ''; + } + + while (index < length) { + if (!isOctalDigit(source[index])) { + break; + } + number += source[index++]; + } + + if (!octal && number.length === 0) { + // only 0o or 0O + throwUnexpectedToken(); + } + + if (isIdentifierStart(source.charCodeAt(index)) || isDecimalDigit(source.charCodeAt(index))) { + throwUnexpectedToken(); + } + + return { + type: Token.NumericLiteral, + value: parseInt(number, 8), + octal: octal, + lineNumber: lineNumber, + lineStart: lineStart, + start: start, + end: index + }; + } + + function isImplicitOctalLiteral() { + var i, ch; + + // Implicit octal, unless there is a non-octal digit. + // (Annex B.1.1 on Numeric Literals) + for (i = index + 1; i < length; ++i) { + ch = source[i]; + if (ch === '8' || ch === '9') { + return false; + } + if (!isOctalDigit(ch)) { + return true; + } + } + + return true; + } + + function scanNumericLiteral() { + var number, start, ch; + + ch = source[index]; + assert(isDecimalDigit(ch.charCodeAt(0)) || (ch === '.'), + 'Numeric literal must start with a decimal digit or a decimal point'); + + start = index; + number = ''; + if (ch !== '.') { + number = source[index++]; + ch = source[index]; + + // Hex number starts with '0x'. + // Octal number starts with '0'. + // Octal number in ES6 starts with '0o'. + // Binary number in ES6 starts with '0b'. + if (number === '0') { + if (ch === 'x' || ch === 'X') { + ++index; + return scanHexLiteral(start); + } + if (ch === 'b' || ch === 'B') { + ++index; + return scanBinaryLiteral(start); + } + if (ch === 'o' || ch === 'O') { + return scanOctalLiteral(ch, start); + } + + if (isOctalDigit(ch)) { + if (isImplicitOctalLiteral()) { + return scanOctalLiteral(ch, start); + } + } + } + + while (isDecimalDigit(source.charCodeAt(index))) { + number += source[index++]; + } + ch = source[index]; + } + + if (ch === '.') { + number += source[index++]; + while (isDecimalDigit(source.charCodeAt(index))) { + number += source[index++]; + } + ch = source[index]; + } + + if (ch === 'e' || ch === 'E') { + number += source[index++]; + + ch = source[index]; + if (ch === '+' || ch === '-') { + number += source[index++]; + } + if (isDecimalDigit(source.charCodeAt(index))) { + while (isDecimalDigit(source.charCodeAt(index))) { + number += source[index++]; + } + } else { + throwUnexpectedToken(); + } + } + + if (isIdentifierStart(source.charCodeAt(index))) { + throwUnexpectedToken(); + } + + return { + type: Token.NumericLiteral, + value: parseFloat(number), + lineNumber: lineNumber, + lineStart: lineStart, + start: start, + end: index + }; + } + + // 7.8.4 String Literals + + function scanStringLiteral() { + var str = '', quote, start, ch, unescaped, octToDec, octal = false; + + quote = source[index]; + assert((quote === '\'' || quote === '"'), + 'String literal must starts with a quote'); + + start = index; + ++index; + + while (index < length) { + ch = source[index++]; + + if (ch === quote) { + quote = ''; + break; + } else if (ch === '\\') { + ch = source[index++]; + if (!ch || !isLineTerminator(ch.charCodeAt(0))) { + switch (ch) { + case 'u': + case 'x': + if (source[index] === '{') { + ++index; + str += scanUnicodeCodePointEscape(); + } else { + unescaped = scanHexEscape(ch); + if (!unescaped) { + throw throwUnexpectedToken(); + } + str += unescaped; + } + break; + case 'n': + str += '\n'; + break; + case 'r': + str += '\r'; + break; + case 't': + str += '\t'; + break; + case 'b': + str += '\b'; + break; + case 'f': + str += '\f'; + break; + case 'v': + str += '\x0B'; + break; + case '8': + case '9': + throw throwUnexpectedToken(); + + default: + if (isOctalDigit(ch)) { + octToDec = octalToDecimal(ch); + + octal = octToDec.octal || octal; + str += String.fromCharCode(octToDec.code); + } else { + str += ch; + } + break; + } + } else { + ++lineNumber; + if (ch === '\r' && source[index] === '\n') { + ++index; + } + lineStart = index; + } + } else if (isLineTerminator(ch.charCodeAt(0))) { + break; + } else { + str += ch; + } + } + + if (quote !== '') { + throwUnexpectedToken(); + } + + return { + type: Token.StringLiteral, + value: str, + octal: octal, + lineNumber: startLineNumber, + lineStart: startLineStart, + start: start, + end: index + }; + } + + function scanTemplate() { + var cooked = '', ch, start, rawOffset, terminated, head, tail, restore, unescaped; + + terminated = false; + tail = false; + start = index; + head = (source[index] === '`'); + rawOffset = 2; + + ++index; + + while (index < length) { + ch = source[index++]; + if (ch === '`') { + rawOffset = 1; + tail = true; + terminated = true; + break; + } else if (ch === '$') { + if (source[index] === '{') { + state.curlyStack.push('${'); + ++index; + terminated = true; + break; + } + cooked += ch; + } else if (ch === '\\') { + ch = source[index++]; + if (!isLineTerminator(ch.charCodeAt(0))) { + switch (ch) { + case 'n': + cooked += '\n'; + break; + case 'r': + cooked += '\r'; + break; + case 't': + cooked += '\t'; + break; + case 'u': + case 'x': + if (source[index] === '{') { + ++index; + cooked += scanUnicodeCodePointEscape(); + } else { + restore = index; + unescaped = scanHexEscape(ch); + if (unescaped) { + cooked += unescaped; + } else { + index = restore; + cooked += ch; + } + } + break; + case 'b': + cooked += '\b'; + break; + case 'f': + cooked += '\f'; + break; + case 'v': + cooked += '\v'; + break; + + default: + if (ch === '0') { + if (isDecimalDigit(source.charCodeAt(index))) { + // Illegal: \01 \02 and so on + throwError(Messages.TemplateOctalLiteral); + } + cooked += '\0'; + } else if (isOctalDigit(ch)) { + // Illegal: \1 \2 + throwError(Messages.TemplateOctalLiteral); + } else { + cooked += ch; + } + break; + } + } else { + ++lineNumber; + if (ch === '\r' && source[index] === '\n') { + ++index; + } + lineStart = index; + } + } else if (isLineTerminator(ch.charCodeAt(0))) { + ++lineNumber; + if (ch === '\r' && source[index] === '\n') { + ++index; + } + lineStart = index; + cooked += '\n'; + } else { + cooked += ch; + } + } + + if (!terminated) { + throwUnexpectedToken(); + } + + if (!head) { + state.curlyStack.pop(); + } + + return { + type: Token.Template, + value: { + cooked: cooked, + raw: source.slice(start + 1, index - rawOffset) + }, + head: head, + tail: tail, + lineNumber: lineNumber, + lineStart: lineStart, + start: start, + end: index + }; + } + + function testRegExp(pattern, flags) { + var tmp = pattern; + + if (flags.indexOf('u') >= 0) { + // Replace each astral symbol and every Unicode escape sequence + // that possibly represents an astral symbol or a paired surrogate + // with a single ASCII symbol to avoid throwing on regular + // expressions that are only valid in combination with the `/u` + // flag. + // Note: replacing with the ASCII symbol `x` might cause false + // negatives in unlikely scenarios. For example, `[\u{61}-b]` is a + // perfectly valid pattern that is equivalent to `[a-b]`, but it + // would be replaced by `[x-b]` which throws an error. + tmp = tmp + .replace(/\\u\{([0-9a-fA-F]+)\}/g, function ($0, $1) { + if (parseInt($1, 16) <= 0x10FFFF) { + return 'x'; + } + throwUnexpectedToken(null, Messages.InvalidRegExp); + }) + .replace( + /\\u([a-fA-F0-9]{4})|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, + 'x' + ); + } + + // First, detect invalid regular expressions. + try { + RegExp(tmp); + } catch (e) { + throwUnexpectedToken(null, Messages.InvalidRegExp); + } + + // Return a regular expression object for this pattern-flag pair, or + // `null` in case the current environment doesn't support the flags it + // uses. + try { + return new RegExp(pattern, flags); + } catch (exception) { + return null; + } + } + + function scanRegExpBody() { + var ch, str, classMarker, terminated, body; + + ch = source[index]; + assert(ch === '/', 'Regular expression literal must start with a slash'); + str = source[index++]; + + classMarker = false; + terminated = false; + while (index < length) { + ch = source[index++]; + str += ch; + if (ch === '\\') { + ch = source[index++]; + // ECMA-262 7.8.5 + if (isLineTerminator(ch.charCodeAt(0))) { + throwUnexpectedToken(null, Messages.UnterminatedRegExp); + } + str += ch; + } else if (isLineTerminator(ch.charCodeAt(0))) { + throwUnexpectedToken(null, Messages.UnterminatedRegExp); + } else if (classMarker) { + if (ch === ']') { + classMarker = false; + } + } else { + if (ch === '/') { + terminated = true; + break; + } else if (ch === '[') { + classMarker = true; + } + } + } + + if (!terminated) { + throwUnexpectedToken(null, Messages.UnterminatedRegExp); + } + + // Exclude leading and trailing slash. + body = str.substr(1, str.length - 2); + return { + value: body, + literal: str + }; + } + + function scanRegExpFlags() { + var ch, str, flags, restore; + + str = ''; + flags = ''; + while (index < length) { + ch = source[index]; + if (!isIdentifierPart(ch.charCodeAt(0))) { + break; + } + + ++index; + if (ch === '\\' && index < length) { + ch = source[index]; + if (ch === 'u') { + ++index; + restore = index; + ch = scanHexEscape('u'); + if (ch) { + flags += ch; + for (str += '\\u'; restore < index; ++restore) { + str += source[restore]; + } + } else { + index = restore; + flags += 'u'; + str += '\\u'; + } + tolerateUnexpectedToken(); + } else { + str += '\\'; + tolerateUnexpectedToken(); + } + } else { + flags += ch; + str += ch; + } + } + + return { + value: flags, + literal: str + }; + } + + function scanRegExp() { + scanning = true; + var start, body, flags, value; + + lookahead = null; + skipComment(); + start = index; + + body = scanRegExpBody(); + flags = scanRegExpFlags(); + value = testRegExp(body.value, flags.value); + scanning = false; + if (extra.tokenize) { + return { + type: Token.RegularExpression, + value: value, + regex: { + pattern: body.value, + flags: flags.value + }, + lineNumber: lineNumber, + lineStart: lineStart, + start: start, + end: index + }; + } + + return { + literal: body.literal + flags.literal, + value: value, + regex: { + pattern: body.value, + flags: flags.value + }, + start: start, + end: index + }; + } + + function collectRegex() { + var pos, loc, regex, token; + + skipComment(); + + pos = index; + loc = { + start: { + line: lineNumber, + column: index - lineStart + } + }; + + regex = scanRegExp(); + + loc.end = { + line: lineNumber, + column: index - lineStart + }; + + /* istanbul ignore next */ + if (!extra.tokenize) { + // Pop the previous token, which is likely '/' or '/=' + if (extra.tokens.length > 0) { + token = extra.tokens[extra.tokens.length - 1]; + if (token.range[0] === pos && token.type === 'Punctuator') { + if (token.value === '/' || token.value === '/=') { + extra.tokens.pop(); + } + } + } + + extra.tokens.push({ + type: 'RegularExpression', + value: regex.literal, + regex: regex.regex, + range: [pos, index], + loc: loc + }); + } + + return regex; + } + + function isIdentifierName(token) { + return token.type === Token.Identifier || + token.type === Token.Keyword || + token.type === Token.BooleanLiteral || + token.type === Token.NullLiteral; + } + + function advanceSlash() { + var prevToken, + checkToken; + // Using the following algorithm: + // https://github.com/mozilla/sweet.js/wiki/design + prevToken = extra.tokens[extra.tokens.length - 1]; + if (!prevToken) { + // Nothing before that: it cannot be a division. + return collectRegex(); + } + if (prevToken.type === 'Punctuator') { + if (prevToken.value === ']') { + return scanPunctuator(); + } + if (prevToken.value === ')') { + checkToken = extra.tokens[extra.openParenToken - 1]; + if (checkToken && + checkToken.type === 'Keyword' && + (checkToken.value === 'if' || + checkToken.value === 'while' || + checkToken.value === 'for' || + checkToken.value === 'with')) { + return collectRegex(); + } + return scanPunctuator(); + } + if (prevToken.value === '}') { + // Dividing a function by anything makes little sense, + // but we have to check for that. + if (extra.tokens[extra.openCurlyToken - 3] && + extra.tokens[extra.openCurlyToken - 3].type === 'Keyword') { + // Anonymous function. + checkToken = extra.tokens[extra.openCurlyToken - 4]; + if (!checkToken) { + return scanPunctuator(); + } + } else if (extra.tokens[extra.openCurlyToken - 4] && + extra.tokens[extra.openCurlyToken - 4].type === 'Keyword') { + // Named function. + checkToken = extra.tokens[extra.openCurlyToken - 5]; + if (!checkToken) { + return collectRegex(); + } + } else { + return scanPunctuator(); + } + // checkToken determines whether the function is + // a declaration or an expression. + if (FnExprTokens.indexOf(checkToken.value) >= 0) { + // It is an expression. + return scanPunctuator(); + } + // It is a declaration. + return collectRegex(); + } + return collectRegex(); + } + if (prevToken.type === 'Keyword' && prevToken.value !== 'this') { + return collectRegex(); + } + return scanPunctuator(); + } + + function advance() { + var ch, token; + + if (index >= length) { + return { + type: Token.EOF, + lineNumber: lineNumber, + lineStart: lineStart, + start: index, + end: index + }; + } + + ch = source.charCodeAt(index); + + if (isIdentifierStart(ch)) { + token = scanIdentifier(); + if (strict && isStrictModeReservedWord(token.value)) { + token.type = Token.Keyword; + } + return token; + } + + // Very common: ( and ) and ; + if (ch === 0x28 || ch === 0x29 || ch === 0x3B) { + return scanPunctuator(); + } + + // String literal starts with single quote (U+0027) or double quote (U+0022). + if (ch === 0x27 || ch === 0x22) { + return scanStringLiteral(); + } + + // Dot (.) U+002E can also start a floating-point number, hence the need + // to check the next character. + if (ch === 0x2E) { + if (isDecimalDigit(source.charCodeAt(index + 1))) { + return scanNumericLiteral(); + } + return scanPunctuator(); + } + + if (isDecimalDigit(ch)) { + return scanNumericLiteral(); + } + + // Slash (/) U+002F can also start a regex. + if (extra.tokenize && ch === 0x2F) { + return advanceSlash(); + } + + // Template literals start with ` (U+0060) for template head + // or } (U+007D) for template middle or template tail. + if (ch === 0x60 || (ch === 0x7D && state.curlyStack[state.curlyStack.length - 1] === '${')) { + return scanTemplate(); + } + + return scanPunctuator(); + } + + function collectToken() { + var loc, token, value, entry; + + loc = { + start: { + line: lineNumber, + column: index - lineStart + } + }; + + token = advance(); + loc.end = { + line: lineNumber, + column: index - lineStart + }; + + if (token.type !== Token.EOF) { + value = source.slice(token.start, token.end); + entry = { + type: TokenName[token.type], + value: value, + range: [token.start, token.end], + loc: loc + }; + if (token.regex) { + entry.regex = { + pattern: token.regex.pattern, + flags: token.regex.flags + }; + } + extra.tokens.push(entry); + } + + return token; + } + + function lex() { + var token; + scanning = true; + + lastIndex = index; + lastLineNumber = lineNumber; + lastLineStart = lineStart; + + skipComment(); + + token = lookahead; + + startIndex = index; + startLineNumber = lineNumber; + startLineStart = lineStart; + + lookahead = (typeof extra.tokens !== 'undefined') ? collectToken() : advance(); + scanning = false; + return token; + } + + function peek() { + scanning = true; + + skipComment(); + + lastIndex = index; + lastLineNumber = lineNumber; + lastLineStart = lineStart; + + startIndex = index; + startLineNumber = lineNumber; + startLineStart = lineStart; + + lookahead = (typeof extra.tokens !== 'undefined') ? collectToken() : advance(); + scanning = false; + } + + function Position() { + this.line = startLineNumber; + this.column = startIndex - startLineStart; + } + + function SourceLocation() { + this.start = new Position(); + this.end = null; + } + + function WrappingSourceLocation(startToken) { + this.start = { + line: startToken.lineNumber, + column: startToken.start - startToken.lineStart + }; + this.end = null; + } + + function Node() { + if (extra.range) { + this.range = [startIndex, 0]; + } + if (extra.loc) { + this.loc = new SourceLocation(); + } + } + + function WrappingNode(startToken) { + if (extra.range) { + this.range = [startToken.start, 0]; + } + if (extra.loc) { + this.loc = new WrappingSourceLocation(startToken); + } + } + + WrappingNode.prototype = Node.prototype = { + + processComment: function () { + var lastChild, + leadingComments, + trailingComments, + bottomRight = extra.bottomRightStack, + i, + comment, + last = bottomRight[bottomRight.length - 1]; + + if (this.type === Syntax.Program) { + if (this.body.length > 0) { + return; + } + } + + if (extra.trailingComments.length > 0) { + trailingComments = []; + for (i = extra.trailingComments.length - 1; i >= 0; --i) { + comment = extra.trailingComments[i]; + if (comment.range[0] >= this.range[1]) { + trailingComments.unshift(comment); + extra.trailingComments.splice(i, 1); + } + } + extra.trailingComments = []; + } else { + if (last && last.trailingComments && last.trailingComments[0].range[0] >= this.range[1]) { + trailingComments = last.trailingComments; + delete last.trailingComments; + } + } + + // Eating the stack. + if (last) { + while (last && last.range[0] >= this.range[0]) { + lastChild = last; + last = bottomRight.pop(); + } + } + + if (lastChild) { + if (lastChild.leadingComments && lastChild.leadingComments[lastChild.leadingComments.length - 1].range[1] <= this.range[0]) { + this.leadingComments = lastChild.leadingComments; + lastChild.leadingComments = undefined; + } + } else if (extra.leadingComments.length > 0) { + leadingComments = []; + for (i = extra.leadingComments.length - 1; i >= 0; --i) { + comment = extra.leadingComments[i]; + if (comment.range[1] <= this.range[0]) { + leadingComments.unshift(comment); + extra.leadingComments.splice(i, 1); + } + } + } + + + if (leadingComments && leadingComments.length > 0) { + this.leadingComments = leadingComments; + } + if (trailingComments && trailingComments.length > 0) { + this.trailingComments = trailingComments; + } + + bottomRight.push(this); + }, + + finish: function () { + if (extra.range) { + this.range[1] = lastIndex; + } + if (extra.loc) { + this.loc.end = { + line: lastLineNumber, + column: lastIndex - lastLineStart + }; + if (extra.source) { + this.loc.source = extra.source; + } + } + + if (extra.attachComment) { + this.processComment(); + } + }, + + finishArrayExpression: function (elements) { + this.type = Syntax.ArrayExpression; + this.elements = elements; + this.finish(); + return this; + }, + + finishArrayPattern: function (elements) { + this.type = Syntax.ArrayPattern; + this.elements = elements; + this.finish(); + return this; + }, + + finishArrowFunctionExpression: function (params, defaults, body, expression) { + this.type = Syntax.ArrowFunctionExpression; + this.id = null; + this.params = params; + this.defaults = defaults; + this.body = body; + this.generator = false; + this.expression = expression; + this.finish(); + return this; + }, + + finishAssignmentExpression: function (operator, left, right) { + this.type = Syntax.AssignmentExpression; + this.operator = operator; + this.left = left; + this.right = right; + this.finish(); + return this; + }, + + finishAssignmentPattern: function (left, right) { + this.type = Syntax.AssignmentPattern; + this.left = left; + this.right = right; + this.finish(); + return this; + }, + + finishBinaryExpression: function (operator, left, right) { + this.type = (operator === '||' || operator === '&&') ? Syntax.LogicalExpression : Syntax.BinaryExpression; + this.operator = operator; + this.left = left; + this.right = right; + this.finish(); + return this; + }, + + finishBlockStatement: function (body) { + this.type = Syntax.BlockStatement; + this.body = body; + this.finish(); + return this; + }, + + finishBreakStatement: function (label) { + this.type = Syntax.BreakStatement; + this.label = label; + this.finish(); + return this; + }, + + finishCallExpression: function (callee, args) { + this.type = Syntax.CallExpression; + this.callee = callee; + this.arguments = args; + this.finish(); + return this; + }, + + finishCatchClause: function (param, body) { + this.type = Syntax.CatchClause; + this.param = param; + this.body = body; + this.finish(); + return this; + }, + + finishClassBody: function (body) { + this.type = Syntax.ClassBody; + this.body = body; + this.finish(); + return this; + }, + + finishClassDeclaration: function (id, superClass, body) { + this.type = Syntax.ClassDeclaration; + this.id = id; + this.superClass = superClass; + this.body = body; + this.finish(); + return this; + }, + + finishClassExpression: function (id, superClass, body) { + this.type = Syntax.ClassExpression; + this.id = id; + this.superClass = superClass; + this.body = body; + this.finish(); + return this; + }, + + finishConditionalExpression: function (test, consequent, alternate) { + this.type = Syntax.ConditionalExpression; + this.test = test; + this.consequent = consequent; + this.alternate = alternate; + this.finish(); + return this; + }, + + finishContinueStatement: function (label) { + this.type = Syntax.ContinueStatement; + this.label = label; + this.finish(); + return this; + }, + + finishDebuggerStatement: function () { + this.type = Syntax.DebuggerStatement; + this.finish(); + return this; + }, + + finishDoWhileStatement: function (body, test) { + this.type = Syntax.DoWhileStatement; + this.body = body; + this.test = test; + this.finish(); + return this; + }, + + finishEmptyStatement: function () { + this.type = Syntax.EmptyStatement; + this.finish(); + return this; + }, + + finishExpressionStatement: function (expression) { + this.type = Syntax.ExpressionStatement; + this.expression = expression; + this.finish(); + return this; + }, + + finishForStatement: function (init, test, update, body) { + this.type = Syntax.ForStatement; + this.init = init; + this.test = test; + this.update = update; + this.body = body; + this.finish(); + return this; + }, + + finishForInStatement: function (left, right, body) { + this.type = Syntax.ForInStatement; + this.left = left; + this.right = right; + this.body = body; + this.each = false; + this.finish(); + return this; + }, + + finishFunctionDeclaration: function (id, params, defaults, body) { + this.type = Syntax.FunctionDeclaration; + this.id = id; + this.params = params; + this.defaults = defaults; + this.body = body; + this.generator = false; + this.expression = false; + this.finish(); + return this; + }, + + finishFunctionExpression: function (id, params, defaults, body) { + this.type = Syntax.FunctionExpression; + this.id = id; + this.params = params; + this.defaults = defaults; + this.body = body; + this.generator = false; + this.expression = false; + this.finish(); + return this; + }, + + finishIdentifier: function (name) { + this.type = Syntax.Identifier; + this.name = name; + this.finish(); + return this; + }, + + finishIfStatement: function (test, consequent, alternate) { + this.type = Syntax.IfStatement; + this.test = test; + this.consequent = consequent; + this.alternate = alternate; + this.finish(); + return this; + }, + + finishLabeledStatement: function (label, body) { + this.type = Syntax.LabeledStatement; + this.label = label; + this.body = body; + this.finish(); + return this; + }, + + finishLiteral: function (token) { + this.type = Syntax.Literal; + this.value = token.value; + this.raw = source.slice(token.start, token.end); + if (token.regex) { + this.regex = token.regex; + } + this.finish(); + return this; + }, + + finishMemberExpression: function (accessor, object, property) { + this.type = Syntax.MemberExpression; + this.computed = accessor === '['; + this.object = object; + this.property = property; + this.finish(); + return this; + }, + + finishNewExpression: function (callee, args) { + this.type = Syntax.NewExpression; + this.callee = callee; + this.arguments = args; + this.finish(); + return this; + }, + + finishObjectExpression: function (properties) { + this.type = Syntax.ObjectExpression; + this.properties = properties; + this.finish(); + return this; + }, + + finishObjectPattern: function (properties) { + this.type = Syntax.ObjectPattern; + this.properties = properties; + this.finish(); + return this; + }, + + finishPostfixExpression: function (operator, argument) { + this.type = Syntax.UpdateExpression; + this.operator = operator; + this.argument = argument; + this.prefix = false; + this.finish(); + return this; + }, + + finishProgram: function (body) { + this.type = Syntax.Program; + this.body = body; + if (sourceType === 'module') { + // very restrictive for now + this.sourceType = sourceType; + } + this.finish(); + return this; + }, + + finishProperty: function (kind, key, computed, value, method, shorthand) { + this.type = Syntax.Property; + this.key = key; + this.computed = computed; + this.value = value; + this.kind = kind; + this.method = method; + this.shorthand = shorthand; + this.finish(); + return this; + }, + + finishRestElement: function (argument) { + this.type = Syntax.RestElement; + this.argument = argument; + this.finish(); + return this; + }, + + finishReturnStatement: function (argument) { + this.type = Syntax.ReturnStatement; + this.argument = argument; + this.finish(); + return this; + }, + + finishSequenceExpression: function (expressions) { + this.type = Syntax.SequenceExpression; + this.expressions = expressions; + this.finish(); + return this; + }, + + finishSpreadElement: function (argument) { + this.type = Syntax.SpreadElement; + this.argument = argument; + this.finish(); + return this; + }, + + finishSwitchCase: function (test, consequent) { + this.type = Syntax.SwitchCase; + this.test = test; + this.consequent = consequent; + this.finish(); + return this; + }, + + finishSuper: function () { + this.type = Syntax.Super; + this.finish(); + return this; + }, + + finishSwitchStatement: function (discriminant, cases) { + this.type = Syntax.SwitchStatement; + this.discriminant = discriminant; + this.cases = cases; + this.finish(); + return this; + }, + + finishTaggedTemplateExpression: function (tag, quasi) { + this.type = Syntax.TaggedTemplateExpression; + this.tag = tag; + this.quasi = quasi; + this.finish(); + return this; + }, + + finishTemplateElement: function (value, tail) { + this.type = Syntax.TemplateElement; + this.value = value; + this.tail = tail; + this.finish(); + return this; + }, + + finishTemplateLiteral: function (quasis, expressions) { + this.type = Syntax.TemplateLiteral; + this.quasis = quasis; + this.expressions = expressions; + this.finish(); + return this; + }, + + finishThisExpression: function () { + this.type = Syntax.ThisExpression; + this.finish(); + return this; + }, + + finishThrowStatement: function (argument) { + this.type = Syntax.ThrowStatement; + this.argument = argument; + this.finish(); + return this; + }, + + finishTryStatement: function (block, handler, finalizer) { + this.type = Syntax.TryStatement; + this.block = block; + this.guardedHandlers = []; + this.handlers = handler ? [ handler ] : []; + this.handler = handler; + this.finalizer = finalizer; + this.finish(); + return this; + }, + + finishUnaryExpression: function (operator, argument) { + this.type = (operator === '++' || operator === '--') ? Syntax.UpdateExpression : Syntax.UnaryExpression; + this.operator = operator; + this.argument = argument; + this.prefix = true; + this.finish(); + return this; + }, + + finishVariableDeclaration: function (declarations) { + this.type = Syntax.VariableDeclaration; + this.declarations = declarations; + this.kind = 'var'; + this.finish(); + return this; + }, + + finishLexicalDeclaration: function (declarations, kind) { + this.type = Syntax.VariableDeclaration; + this.declarations = declarations; + this.kind = kind; + this.finish(); + return this; + }, + + finishVariableDeclarator: function (id, init) { + this.type = Syntax.VariableDeclarator; + this.id = id; + this.init = init; + this.finish(); + return this; + }, + + finishWhileStatement: function (test, body) { + this.type = Syntax.WhileStatement; + this.test = test; + this.body = body; + this.finish(); + return this; + }, + + finishWithStatement: function (object, body) { + this.type = Syntax.WithStatement; + this.object = object; + this.body = body; + this.finish(); + return this; + }, + + finishExportSpecifier: function (local, exported) { + this.type = Syntax.ExportSpecifier; + this.exported = exported || local; + this.local = local; + this.finish(); + return this; + }, + + finishImportDefaultSpecifier: function (local) { + this.type = Syntax.ImportDefaultSpecifier; + this.local = local; + this.finish(); + return this; + }, + + finishImportNamespaceSpecifier: function (local) { + this.type = Syntax.ImportNamespaceSpecifier; + this.local = local; + this.finish(); + return this; + }, + + finishExportNamedDeclaration: function (declaration, specifiers, src) { + this.type = Syntax.ExportNamedDeclaration; + this.declaration = declaration; + this.specifiers = specifiers; + this.source = src; + this.finish(); + return this; + }, + + finishExportDefaultDeclaration: function (declaration) { + this.type = Syntax.ExportDefaultDeclaration; + this.declaration = declaration; + this.finish(); + return this; + }, + + finishExportAllDeclaration: function (src) { + this.type = Syntax.ExportAllDeclaration; + this.source = src; + this.finish(); + return this; + }, + + finishImportSpecifier: function (local, imported) { + this.type = Syntax.ImportSpecifier; + this.local = local || imported; + this.imported = imported; + this.finish(); + return this; + }, + + finishImportDeclaration: function (specifiers, src) { + this.type = Syntax.ImportDeclaration; + this.specifiers = specifiers; + this.source = src; + this.finish(); + return this; + } + }; + + + function recordError(error) { + var e, existing; + + for (e = 0; e < extra.errors.length; e++) { + existing = extra.errors[e]; + // Prevent duplicated error. + /* istanbul ignore next */ + if (existing.index === error.index && existing.message === error.message) { + return; + } + } + + extra.errors.push(error); + } + + function createError(line, pos, description) { + var error = new Error('Line ' + line + ': ' + description); + error.index = pos; + error.lineNumber = line; + error.column = pos - (scanning ? lineStart : lastLineStart) + 1; + error.description = description; + return error; + } + + // Throw an exception + + function throwError(messageFormat) { + var args, msg; + + args = Array.prototype.slice.call(arguments, 1); + msg = messageFormat.replace(/%(\d)/g, + function (whole, idx) { + assert(idx < args.length, 'Message reference must be in range'); + return args[idx]; + } + ); + + throw createError(lastLineNumber, lastIndex, msg); + } + + function tolerateError(messageFormat) { + var args, msg, error; + + args = Array.prototype.slice.call(arguments, 1); + /* istanbul ignore next */ + msg = messageFormat.replace(/%(\d)/g, + function (whole, idx) { + assert(idx < args.length, 'Message reference must be in range'); + return args[idx]; + } + ); + + error = createError(lineNumber, lastIndex, msg); + if (extra.errors) { + recordError(error); + } else { + throw error; + } + } + + // Throw an exception because of the token. + + function unexpectedTokenError(token, message) { + var value, msg = message || Messages.UnexpectedToken; + + if (token) { + if (!message) { + msg = (token.type === Token.EOF) ? Messages.UnexpectedEOS : + (token.type === Token.Identifier) ? Messages.UnexpectedIdentifier : + (token.type === Token.NumericLiteral) ? Messages.UnexpectedNumber : + (token.type === Token.StringLiteral) ? Messages.UnexpectedString : + (token.type === Token.Template) ? Messages.UnexpectedTemplate : + Messages.UnexpectedToken; + + if (token.type === Token.Keyword) { + if (isFutureReservedWord(token.value)) { + msg = Messages.UnexpectedReserved; + } else if (strict && isStrictModeReservedWord(token.value)) { + msg = Messages.StrictReservedWord; + } + } + } + + value = (token.type === Token.Template) ? token.value.raw : token.value; + } else { + value = 'ILLEGAL'; + } + + msg = msg.replace('%0', value); + + return (token && typeof token.lineNumber === 'number') ? + createError(token.lineNumber, token.start, msg) : + createError(scanning ? lineNumber : lastLineNumber, scanning ? index : lastIndex, msg); + } + + function throwUnexpectedToken(token, message) { + throw unexpectedTokenError(token, message); + } + + function tolerateUnexpectedToken(token, message) { + var error = unexpectedTokenError(token, message); + if (extra.errors) { + recordError(error); + } else { + throw error; + } + } + + // Expect the next token to match the specified punctuator. + // If not, an exception will be thrown. + + function expect(value) { + var token = lex(); + if (token.type !== Token.Punctuator || token.value !== value) { + throwUnexpectedToken(token); + } + } + + /** + * @name expectCommaSeparator + * @description Quietly expect a comma when in tolerant mode, otherwise delegates + * to <code>expect(value)</code> + * @since 2.0 + */ + function expectCommaSeparator() { + var token; + + if (extra.errors) { + token = lookahead; + if (token.type === Token.Punctuator && token.value === ',') { + lex(); + } else if (token.type === Token.Punctuator && token.value === ';') { + lex(); + tolerateUnexpectedToken(token); + } else { + tolerateUnexpectedToken(token, Messages.UnexpectedToken); + } + } else { + expect(','); + } + } + + // Expect the next token to match the specified keyword. + // If not, an exception will be thrown. + + function expectKeyword(keyword) { + var token = lex(); + if (token.type !== Token.Keyword || token.value !== keyword) { + throwUnexpectedToken(token); + } + } + + // Return true if the next token matches the specified punctuator. + + function match(value) { + return lookahead.type === Token.Punctuator && lookahead.value === value; + } + + // Return true if the next token matches the specified keyword + + function matchKeyword(keyword) { + return lookahead.type === Token.Keyword && lookahead.value === keyword; + } + + // Return true if the next token matches the specified contextual keyword + // (where an identifier is sometimes a keyword depending on the context) + + function matchContextualKeyword(keyword) { + return lookahead.type === Token.Identifier && lookahead.value === keyword; + } + + // Return true if the next token is an assignment operator + + function matchAssign() { + var op; + + if (lookahead.type !== Token.Punctuator) { + return false; + } + op = lookahead.value; + return op === '=' || + op === '*=' || + op === '/=' || + op === '%=' || + op === '+=' || + op === '-=' || + op === '<<=' || + op === '>>=' || + op === '>>>=' || + op === '&=' || + op === '^=' || + op === '|='; + } + + function consumeSemicolon() { + // Catch the very common case first: immediately a semicolon (U+003B). + if (source.charCodeAt(startIndex) === 0x3B || match(';')) { + lex(); + return; + } + + if (hasLineTerminator) { + return; + } + + // FIXME(ikarienator): this is seemingly an issue in the previous location info convention. + lastIndex = startIndex; + lastLineNumber = startLineNumber; + lastLineStart = startLineStart; + + if (lookahead.type !== Token.EOF && !match('}')) { + throwUnexpectedToken(lookahead); + } + } + + // Cover grammar support. + // + // When an assignment expression position starts with an left parenthesis, the determination of the type + // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead) + // or the first comma. This situation also defers the determination of all the expressions nested in the pair. + // + // There are three productions that can be parsed in a parentheses pair that needs to be determined + // after the outermost pair is closed. They are: + // + // 1. AssignmentExpression + // 2. BindingElements + // 3. AssignmentTargets + // + // In order to avoid exponential backtracking, we use two flags to denote if the production can be + // binding element or assignment target. + // + // The three productions have the relationship: + // + // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression + // + // with a single exception that CoverInitializedName when used directly in an Expression, generates + // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the + // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair. + // + // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not + // effect the current flags. This means the production the parser parses is only used as an expression. Therefore + // the CoverInitializedName check is conducted. + // + // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates + // the flags outside of the parser. This means the production the parser parses is used as a part of a potential + // pattern. The CoverInitializedName check is deferred. + function isolateCoverGrammar(parser) { + var oldIsBindingElement = isBindingElement, + oldIsAssignmentTarget = isAssignmentTarget, + oldFirstCoverInitializedNameError = firstCoverInitializedNameError, + result; + isBindingElement = true; + isAssignmentTarget = true; + firstCoverInitializedNameError = null; + result = parser(); + if (firstCoverInitializedNameError !== null) { + throwUnexpectedToken(firstCoverInitializedNameError); + } + isBindingElement = oldIsBindingElement; + isAssignmentTarget = oldIsAssignmentTarget; + firstCoverInitializedNameError = oldFirstCoverInitializedNameError; + return result; + } + + function inheritCoverGrammar(parser) { + var oldIsBindingElement = isBindingElement, + oldIsAssignmentTarget = isAssignmentTarget, + oldFirstCoverInitializedNameError = firstCoverInitializedNameError, + result; + isBindingElement = true; + isAssignmentTarget = true; + firstCoverInitializedNameError = null; + result = parser(); + isBindingElement = isBindingElement && oldIsBindingElement; + isAssignmentTarget = isAssignmentTarget && oldIsAssignmentTarget; + firstCoverInitializedNameError = oldFirstCoverInitializedNameError || firstCoverInitializedNameError; + return result; + } + + function parseArrayPattern() { + var node = new Node(), elements = [], rest, restNode; + expect('['); + + while (!match(']')) { + if (match(',')) { + lex(); + elements.push(null); + } else { + if (match('...')) { + restNode = new Node(); + lex(); + rest = parseVariableIdentifier(); + elements.push(restNode.finishRestElement(rest)); + break; + } else { + elements.push(parsePatternWithDefault()); + } + if (!match(']')) { + expect(','); + } + } + + } + + expect(']'); + + return node.finishArrayPattern(elements); + } + + function parsePropertyPattern() { + var node = new Node(), key, computed = match('['), init; + if (lookahead.type === Token.Identifier) { + key = parseVariableIdentifier(); + if (match('=')) { + lex(); + init = parseAssignmentExpression(); + return node.finishProperty( + 'init', key, false, + new WrappingNode(key).finishAssignmentPattern(key, init), false, false); + } else if (!match(':')) { + return node.finishProperty('init', key, false, key, false, true); + } + } else { + key = parseObjectPropertyKey(); + } + expect(':'); + init = parsePatternWithDefault(); + return node.finishProperty('init', key, computed, init, false, false); + } + + function parseObjectPattern() { + var node = new Node(), properties = []; + + expect('{'); + + while (!match('}')) { + properties.push(parsePropertyPattern()); + if (!match('}')) { + expect(','); + } + } + + lex(); + + return node.finishObjectPattern(properties); + } + + function parsePattern() { + if (lookahead.type === Token.Identifier) { + return parseVariableIdentifier(); + } else if (match('[')) { + return parseArrayPattern(); + } else if (match('{')) { + return parseObjectPattern(); + } + throwUnexpectedToken(lookahead); + } + + function parsePatternWithDefault() { + var startToken = lookahead, pattern, right; + pattern = parsePattern(); + if (match('=')) { + lex(); + right = isolateCoverGrammar(parseAssignmentExpression); + pattern = new WrappingNode(startToken).finishAssignmentPattern(pattern, right); + } + return pattern; + } + + // 11.1.4 Array Initialiser + + function parseArrayInitialiser() { + var elements = [], node = new Node(), restSpread; + + expect('['); + + while (!match(']')) { + if (match(',')) { + lex(); + elements.push(null); + } else if (match('...')) { + restSpread = new Node(); + lex(); + restSpread.finishSpreadElement(inheritCoverGrammar(parseAssignmentExpression)); + + if (!match(']')) { + isAssignmentTarget = isBindingElement = false; + expect(','); + } + elements.push(restSpread); + } else { + elements.push(inheritCoverGrammar(parseAssignmentExpression)); + + if (!match(']')) { + expect(','); + } + } + } + + lex(); + + return node.finishArrayExpression(elements); + } + + // 11.1.5 Object Initialiser + + function parsePropertyFunction(node, paramInfo) { + var previousStrict, body; + + isAssignmentTarget = isBindingElement = false; + + previousStrict = strict; + body = isolateCoverGrammar(parseFunctionSourceElements); + + if (strict && paramInfo.firstRestricted) { + tolerateUnexpectedToken(paramInfo.firstRestricted, paramInfo.message); + } + if (strict && paramInfo.stricted) { + tolerateUnexpectedToken(paramInfo.stricted, paramInfo.message); + } + + strict = previousStrict; + return node.finishFunctionExpression(null, paramInfo.params, paramInfo.defaults, body); + } + + function parsePropertyMethodFunction() { + var params, method, node = new Node(); + + params = parseParams(); + method = parsePropertyFunction(node, params); + + return method; + } + + function parseObjectPropertyKey() { + var token, node = new Node(), expr; + + token = lex(); + + // Note: This function is called only from parseObjectProperty(), where + // EOF and Punctuator tokens are already filtered out. + + switch (token.type) { + case Token.StringLiteral: + case Token.NumericLiteral: + if (strict && token.octal) { + tolerateUnexpectedToken(token, Messages.StrictOctalLiteral); + } + return node.finishLiteral(token); + case Token.Identifier: + case Token.BooleanLiteral: + case Token.NullLiteral: + case Token.Keyword: + return node.finishIdentifier(token.value); + case Token.Punctuator: + if (token.value === '[') { + expr = isolateCoverGrammar(parseAssignmentExpression); + expect(']'); + return expr; + } + break; + } + throwUnexpectedToken(token); + } + + function lookaheadPropertyName() { + switch (lookahead.type) { + case Token.Identifier: + case Token.StringLiteral: + case Token.BooleanLiteral: + case Token.NullLiteral: + case Token.NumericLiteral: + case Token.Keyword: + return true; + case Token.Punctuator: + return lookahead.value === '['; + } + return false; + } + + // This function is to try to parse a MethodDefinition as defined in 14.3. But in the case of object literals, + // it might be called at a position where there is in fact a short hand identifier pattern or a data property. + // This can only be determined after we consumed up to the left parentheses. + // + // In order to avoid back tracking, it returns `null` if the position is not a MethodDefinition and the caller + // is responsible to visit other options. + function tryParseMethodDefinition(token, key, computed, node) { + var value, options, methodNode; + + if (token.type === Token.Identifier) { + // check for `get` and `set`; + + if (token.value === 'get' && lookaheadPropertyName()) { + computed = match('['); + key = parseObjectPropertyKey(); + methodNode = new Node(); + expect('('); + expect(')'); + value = parsePropertyFunction(methodNode, { + params: [], + defaults: [], + stricted: null, + firstRestricted: null, + message: null + }); + return node.finishProperty('get', key, computed, value, false, false); + } else if (token.value === 'set' && lookaheadPropertyName()) { + computed = match('['); + key = parseObjectPropertyKey(); + methodNode = new Node(); + expect('('); + + options = { + params: [], + defaultCount: 0, + defaults: [], + firstRestricted: null, + paramSet: {} + }; + if (match(')')) { + tolerateUnexpectedToken(lookahead); + } else { + parseParam(options); + if (options.defaultCount === 0) { + options.defaults = []; + } + } + expect(')'); + + value = parsePropertyFunction(methodNode, options); + return node.finishProperty('set', key, computed, value, false, false); + } + } + + if (match('(')) { + value = parsePropertyMethodFunction(); + return node.finishProperty('init', key, computed, value, true, false); + } + + // Not a MethodDefinition. + return null; + } + + function checkProto(key, computed, hasProto) { + if (computed === false && (key.type === Syntax.Identifier && key.name === '__proto__' || + key.type === Syntax.Literal && key.value === '__proto__')) { + if (hasProto.value) { + tolerateError(Messages.DuplicateProtoProperty); + } else { + hasProto.value = true; + } + } + } + + function parseObjectProperty(hasProto) { + var token = lookahead, node = new Node(), computed, key, maybeMethod, value; + + computed = match('['); + key = parseObjectPropertyKey(); + maybeMethod = tryParseMethodDefinition(token, key, computed, node); + + if (maybeMethod) { + checkProto(maybeMethod.key, maybeMethod.computed, hasProto); + // finished + return maybeMethod; + } + + // init property or short hand property. + checkProto(key, computed, hasProto); + + if (match(':')) { + lex(); + value = inheritCoverGrammar(parseAssignmentExpression); + return node.finishProperty('init', key, computed, value, false, false); + } + + if (token.type === Token.Identifier) { + if (match('=')) { + firstCoverInitializedNameError = lookahead; + lex(); + value = isolateCoverGrammar(parseAssignmentExpression); + return node.finishProperty('init', key, computed, + new WrappingNode(token).finishAssignmentPattern(key, value), false, true); + } + return node.finishProperty('init', key, computed, key, false, true); + } + + throwUnexpectedToken(lookahead); + } + + function parseObjectInitialiser() { + var properties = [], hasProto = {value: false}, node = new Node(); + + expect('{'); + + while (!match('}')) { + properties.push(parseObjectProperty(hasProto)); + + if (!match('}')) { + expectCommaSeparator(); + } + } + + expect('}'); + + return node.finishObjectExpression(properties); + } + + function reinterpretExpressionAsPattern(expr) { + var i; + switch (expr.type) { + case Syntax.Identifier: + case Syntax.MemberExpression: + case Syntax.RestElement: + case Syntax.AssignmentPattern: + break; + case Syntax.SpreadElement: + expr.type = Syntax.RestElement; + reinterpretExpressionAsPattern(expr.argument); + break; + case Syntax.ArrayExpression: + expr.type = Syntax.ArrayPattern; + for (i = 0; i < expr.elements.length; i++) { + if (expr.elements[i] !== null) { + reinterpretExpressionAsPattern(expr.elements[i]); + } + } + break; + case Syntax.ObjectExpression: + expr.type = Syntax.ObjectPattern; + for (i = 0; i < expr.properties.length; i++) { + reinterpretExpressionAsPattern(expr.properties[i].value); + } + break; + case Syntax.AssignmentExpression: + expr.type = Syntax.AssignmentPattern; + reinterpretExpressionAsPattern(expr.left); + break; + default: + // Allow other node type for tolerant parsing. + break; + } + } + + function parseTemplateElement(option) { + var node, token; + + if (lookahead.type !== Token.Template || (option.head && !lookahead.head)) { + throwUnexpectedToken(); + } + + node = new Node(); + token = lex(); + + return node.finishTemplateElement({ raw: token.value.raw, cooked: token.value.cooked }, token.tail); + } + + function parseTemplateLiteral() { + var quasi, quasis, expressions, node = new Node(); + + quasi = parseTemplateElement({ head: true }); + quasis = [ quasi ]; + expressions = []; + + while (!quasi.tail) { + expressions.push(parseExpression()); + quasi = parseTemplateElement({ head: false }); + quasis.push(quasi); + } + + return node.finishTemplateLiteral(quasis, expressions); + } + + // 11.1.6 The Grouping Operator + + function parseGroupExpression() { + var expr, expressions, startToken, i; + + expect('('); + + if (match(')')) { + lex(); + if (!match('=>')) { + expect('=>'); + } + return { + type: PlaceHolders.ArrowParameterPlaceHolder, + params: [] + }; + } + + startToken = lookahead; + if (match('...')) { + expr = parseRestElement(); + expect(')'); + if (!match('=>')) { + expect('=>'); + } + return { + type: PlaceHolders.ArrowParameterPlaceHolder, + params: [expr] + }; + } + + isBindingElement = true; + expr = inheritCoverGrammar(parseAssignmentExpression); + + if (match(',')) { + isAssignmentTarget = false; + expressions = [expr]; + + while (startIndex < length) { + if (!match(',')) { + break; + } + lex(); + + if (match('...')) { + if (!isBindingElement) { + throwUnexpectedToken(lookahead); + } + expressions.push(parseRestElement()); + expect(')'); + if (!match('=>')) { + expect('=>'); + } + isBindingElement = false; + for (i = 0; i < expressions.length; i++) { + reinterpretExpressionAsPattern(expressions[i]); + } + return { + type: PlaceHolders.ArrowParameterPlaceHolder, + params: expressions + }; + } + + expressions.push(inheritCoverGrammar(parseAssignmentExpression)); + } + + expr = new WrappingNode(startToken).finishSequenceExpression(expressions); + } + + + expect(')'); + + if (match('=>')) { + if (!isBindingElement) { + throwUnexpectedToken(lookahead); + } + + if (expr.type === Syntax.SequenceExpression) { + for (i = 0; i < expr.expressions.length; i++) { + reinterpretExpressionAsPattern(expr.expressions[i]); + } + } else { + reinterpretExpressionAsPattern(expr); + } + + expr = { + type: PlaceHolders.ArrowParameterPlaceHolder, + params: expr.type === Syntax.SequenceExpression ? expr.expressions : [expr] + }; + } + isBindingElement = false; + return expr; + } + + + // 11.1 Primary Expressions + + function parsePrimaryExpression() { + var type, token, expr, node; + + if (match('(')) { + isBindingElement = false; + return inheritCoverGrammar(parseGroupExpression); + } + + if (match('[')) { + return inheritCoverGrammar(parseArrayInitialiser); + } + + if (match('{')) { + return inheritCoverGrammar(parseObjectInitialiser); + } + + type = lookahead.type; + node = new Node(); + + if (type === Token.Identifier) { + expr = node.finishIdentifier(lex().value); + } else if (type === Token.StringLiteral || type === Token.NumericLiteral) { + isAssignmentTarget = isBindingElement = false; + if (strict && lookahead.octal) { + tolerateUnexpectedToken(lookahead, Messages.StrictOctalLiteral); + } + expr = node.finishLiteral(lex()); + } else if (type === Token.Keyword) { + isAssignmentTarget = isBindingElement = false; + if (matchKeyword('function')) { + return parseFunctionExpression(); + } + if (matchKeyword('this')) { + lex(); + return node.finishThisExpression(); + } + if (matchKeyword('class')) { + return parseClassExpression(); + } + throwUnexpectedToken(lex()); + } else if (type === Token.BooleanLiteral) { + isAssignmentTarget = isBindingElement = false; + token = lex(); + token.value = (token.value === 'true'); + expr = node.finishLiteral(token); + } else if (type === Token.NullLiteral) { + isAssignmentTarget = isBindingElement = false; + token = lex(); + token.value = null; + expr = node.finishLiteral(token); + } else if (match('/') || match('/=')) { + isAssignmentTarget = isBindingElement = false; + index = startIndex; + + if (typeof extra.tokens !== 'undefined') { + token = collectRegex(); + } else { + token = scanRegExp(); + } + lex(); + expr = node.finishLiteral(token); + } else if (type === Token.Template) { + expr = parseTemplateLiteral(); + } else { + throwUnexpectedToken(lex()); + } + + return expr; + } + + // 11.2 Left-Hand-Side Expressions + + function parseArguments() { + var args = []; + + expect('('); + + if (!match(')')) { + while (startIndex < length) { + args.push(isolateCoverGrammar(parseAssignmentExpression)); + if (match(')')) { + break; + } + expectCommaSeparator(); + } + } + + expect(')'); + + return args; + } + + function parseNonComputedProperty() { + var token, node = new Node(); + + token = lex(); + + if (!isIdentifierName(token)) { + throwUnexpectedToken(token); + } + + return node.finishIdentifier(token.value); + } + + function parseNonComputedMember() { + expect('.'); + + return parseNonComputedProperty(); + } + + function parseComputedMember() { + var expr; + + expect('['); + + expr = isolateCoverGrammar(parseExpression); + + expect(']'); + + return expr; + } + + function parseNewExpression() { + var callee, args, node = new Node(); + + expectKeyword('new'); + callee = isolateCoverGrammar(parseLeftHandSideExpression); + args = match('(') ? parseArguments() : []; + + isAssignmentTarget = isBindingElement = false; + + return node.finishNewExpression(callee, args); + } + + function parseLeftHandSideExpressionAllowCall() { + var quasi, expr, args, property, startToken, previousAllowIn = state.allowIn; + + startToken = lookahead; + state.allowIn = true; + + if (matchKeyword('super') && state.inFunctionBody) { + expr = new Node(); + lex(); + expr = expr.finishSuper(); + if (!match('(') && !match('.') && !match('[')) { + throwUnexpectedToken(lookahead); + } + } else { + expr = inheritCoverGrammar(matchKeyword('new') ? parseNewExpression : parsePrimaryExpression); + } + + for (;;) { + if (match('.')) { + isBindingElement = false; + isAssignmentTarget = true; + property = parseNonComputedMember(); + expr = new WrappingNode(startToken).finishMemberExpression('.', expr, property); + } else if (match('(')) { + isBindingElement = false; + isAssignmentTarget = false; + args = parseArguments(); + expr = new WrappingNode(startToken).finishCallExpression(expr, args); + } else if (match('[')) { + isBindingElement = false; + isAssignmentTarget = true; + property = parseComputedMember(); + expr = new WrappingNode(startToken).finishMemberExpression('[', expr, property); + } else if (lookahead.type === Token.Template && lookahead.head) { + quasi = parseTemplateLiteral(); + expr = new WrappingNode(startToken).finishTaggedTemplateExpression(expr, quasi); + } else { + break; + } + } + state.allowIn = previousAllowIn; + + return expr; + } + + function parseLeftHandSideExpression() { + var quasi, expr, property, startToken; + assert(state.allowIn, 'callee of new expression always allow in keyword.'); + + startToken = lookahead; + + if (matchKeyword('super') && state.inFunctionBody) { + expr = new Node(); + lex(); + expr = expr.finishSuper(); + if (!match('[') && !match('.')) { + throwUnexpectedToken(lookahead); + } + } else { + expr = inheritCoverGrammar(matchKeyword('new') ? parseNewExpression : parsePrimaryExpression); + } + + for (;;) { + if (match('[')) { + isBindingElement = false; + isAssignmentTarget = true; + property = parseComputedMember(); + expr = new WrappingNode(startToken).finishMemberExpression('[', expr, property); + } else if (match('.')) { + isBindingElement = false; + isAssignmentTarget = true; + property = parseNonComputedMember(); + expr = new WrappingNode(startToken).finishMemberExpression('.', expr, property); + } else if (lookahead.type === Token.Template && lookahead.head) { + quasi = parseTemplateLiteral(); + expr = new WrappingNode(startToken).finishTaggedTemplateExpression(expr, quasi); + } else { + break; + } + } + return expr; + } + + // 11.3 Postfix Expressions + + function parsePostfixExpression() { + var expr, token, startToken = lookahead; + + expr = inheritCoverGrammar(parseLeftHandSideExpressionAllowCall); + + if (!hasLineTerminator && lookahead.type === Token.Punctuator) { + if (match('++') || match('--')) { + // 11.3.1, 11.3.2 + if (strict && expr.type === Syntax.Identifier && isRestrictedWord(expr.name)) { + tolerateError(Messages.StrictLHSPostfix); + } + + if (!isAssignmentTarget) { + tolerateError(Messages.InvalidLHSInAssignment); + } + + isAssignmentTarget = isBindingElement = false; + + token = lex(); + expr = new WrappingNode(startToken).finishPostfixExpression(token.value, expr); + } + } + + return expr; + } + + // 11.4 Unary Operators + + function parseUnaryExpression() { + var token, expr, startToken; + + if (lookahead.type !== Token.Punctuator && lookahead.type !== Token.Keyword) { + expr = parsePostfixExpression(); + } else if (match('++') || match('--')) { + startToken = lookahead; + token = lex(); + expr = inheritCoverGrammar(parseUnaryExpression); + // 11.4.4, 11.4.5 + if (strict && expr.type === Syntax.Identifier && isRestrictedWord(expr.name)) { + tolerateError(Messages.StrictLHSPrefix); + } + + if (!isAssignmentTarget) { + tolerateError(Messages.InvalidLHSInAssignment); + } + expr = new WrappingNode(startToken).finishUnaryExpression(token.value, expr); + isAssignmentTarget = isBindingElement = false; + } else if (match('+') || match('-') || match('~') || match('!')) { + startToken = lookahead; + token = lex(); + expr = inheritCoverGrammar(parseUnaryExpression); + expr = new WrappingNode(startToken).finishUnaryExpression(token.value, expr); + isAssignmentTarget = isBindingElement = false; + } else if (matchKeyword('delete') || matchKeyword('void') || matchKeyword('typeof')) { + startToken = lookahead; + token = lex(); + expr = inheritCoverGrammar(parseUnaryExpression); + expr = new WrappingNode(startToken).finishUnaryExpression(token.value, expr); + if (strict && expr.operator === 'delete' && expr.argument.type === Syntax.Identifier) { + tolerateError(Messages.StrictDelete); + } + isAssignmentTarget = isBindingElement = false; + } else { + expr = parsePostfixExpression(); + } + + return expr; + } + + function binaryPrecedence(token, allowIn) { + var prec = 0; + + if (token.type !== Token.Punctuator && token.type !== Token.Keyword) { + return 0; + } + + switch (token.value) { + case '||': + prec = 1; + break; + + case '&&': + prec = 2; + break; + + case '|': + prec = 3; + break; + + case '^': + prec = 4; + break; + + case '&': + prec = 5; + break; + + case '==': + case '!=': + case '===': + case '!==': + prec = 6; + break; + + case '<': + case '>': + case '<=': + case '>=': + case 'instanceof': + prec = 7; + break; + + case 'in': + prec = allowIn ? 7 : 0; + break; + + case '<<': + case '>>': + case '>>>': + prec = 8; + break; + + case '+': + case '-': + prec = 9; + break; + + case '*': + case '/': + case '%': + prec = 11; + break; + + default: + break; + } + + return prec; + } + + // 11.5 Multiplicative Operators + // 11.6 Additive Operators + // 11.7 Bitwise Shift Operators + // 11.8 Relational Operators + // 11.9 Equality Operators + // 11.10 Binary Bitwise Operators + // 11.11 Binary Logical Operators + + function parseBinaryExpression() { + var marker, markers, expr, token, prec, stack, right, operator, left, i; + + marker = lookahead; + left = inheritCoverGrammar(parseUnaryExpression); + + token = lookahead; + prec = binaryPrecedence(token, state.allowIn); + if (prec === 0) { + return left; + } + isAssignmentTarget = isBindingElement = false; + token.prec = prec; + lex(); + + markers = [marker, lookahead]; + right = isolateCoverGrammar(parseUnaryExpression); + + stack = [left, token, right]; + + while ((prec = binaryPrecedence(lookahead, state.allowIn)) > 0) { + + // Reduce: make a binary expression from the three topmost entries. + while ((stack.length > 2) && (prec <= stack[stack.length - 2].prec)) { + right = stack.pop(); + operator = stack.pop().value; + left = stack.pop(); + markers.pop(); + expr = new WrappingNode(markers[markers.length - 1]).finishBinaryExpression(operator, left, right); + stack.push(expr); + } + + // Shift. + token = lex(); + token.prec = prec; + stack.push(token); + markers.push(lookahead); + expr = isolateCoverGrammar(parseUnaryExpression); + stack.push(expr); + } + + // Final reduce to clean-up the stack. + i = stack.length - 1; + expr = stack[i]; + markers.pop(); + while (i > 1) { + expr = new WrappingNode(markers.pop()).finishBinaryExpression(stack[i - 1].value, stack[i - 2], expr); + i -= 2; + } + + return expr; + } + + + // 11.12 Conditional Operator + + function parseConditionalExpression() { + var expr, previousAllowIn, consequent, alternate, startToken; + + startToken = lookahead; + + expr = inheritCoverGrammar(parseBinaryExpression); + if (match('?')) { + lex(); + previousAllowIn = state.allowIn; + state.allowIn = true; + consequent = isolateCoverGrammar(parseAssignmentExpression); + state.allowIn = previousAllowIn; + expect(':'); + alternate = isolateCoverGrammar(parseAssignmentExpression); + + expr = new WrappingNode(startToken).finishConditionalExpression(expr, consequent, alternate); + isAssignmentTarget = isBindingElement = false; + } + + return expr; + } + + // [ES6] 14.2 Arrow Function + + function parseConciseBody() { + if (match('{')) { + return parseFunctionSourceElements(); + } + return isolateCoverGrammar(parseAssignmentExpression); + } + + function checkPatternParam(options, param) { + var i; + switch (param.type) { + case Syntax.Identifier: + validateParam(options, param, param.name); + break; + case Syntax.RestElement: + checkPatternParam(options, param.argument); + break; + case Syntax.AssignmentPattern: + checkPatternParam(options, param.left); + break; + case Syntax.ArrayPattern: + for (i = 0; i < param.elements.length; i++) { + if (param.elements[i] !== null) { + checkPatternParam(options, param.elements[i]); + } + } + break; + default: + assert(param.type === Syntax.ObjectPattern, 'Invalid type'); + for (i = 0; i < param.properties.length; i++) { + checkPatternParam(options, param.properties[i].value); + } + break; + } + } + function reinterpretAsCoverFormalsList(expr) { + var i, len, param, params, defaults, defaultCount, options, token; + + defaults = []; + defaultCount = 0; + params = [expr]; + + switch (expr.type) { + case Syntax.Identifier: + break; + case PlaceHolders.ArrowParameterPlaceHolder: + params = expr.params; + break; + default: + return null; + } + + options = { + paramSet: {} + }; + + for (i = 0, len = params.length; i < len; i += 1) { + param = params[i]; + switch (param.type) { + case Syntax.AssignmentPattern: + params[i] = param.left; + defaults.push(param.right); + ++defaultCount; + checkPatternParam(options, param.left); + break; + default: + checkPatternParam(options, param); + params[i] = param; + defaults.push(null); + break; + } + } + + if (options.message === Messages.StrictParamDupe) { + token = strict ? options.stricted : options.firstRestricted; + throwUnexpectedToken(token, options.message); + } + + if (defaultCount === 0) { + defaults = []; + } + + return { + params: params, + defaults: defaults, + stricted: options.stricted, + firstRestricted: options.firstRestricted, + message: options.message + }; + } + + function parseArrowFunctionExpression(options, node) { + var previousStrict, body; + + if (hasLineTerminator) { + tolerateUnexpectedToken(lookahead); + } + expect('=>'); + previousStrict = strict; + + body = parseConciseBody(); + + if (strict && options.firstRestricted) { + throwUnexpectedToken(options.firstRestricted, options.message); + } + if (strict && options.stricted) { + tolerateUnexpectedToken(options.stricted, options.message); + } + + strict = previousStrict; + + return node.finishArrowFunctionExpression(options.params, options.defaults, body, body.type !== Syntax.BlockStatement); + } + + // 11.13 Assignment Operators + + function parseAssignmentExpression() { + var token, expr, right, list, startToken; + + startToken = lookahead; + token = lookahead; + + expr = parseConditionalExpression(); + + if (expr.type === PlaceHolders.ArrowParameterPlaceHolder || match('=>')) { + isAssignmentTarget = isBindingElement = false; + list = reinterpretAsCoverFormalsList(expr); + + if (list) { + firstCoverInitializedNameError = null; + return parseArrowFunctionExpression(list, new WrappingNode(startToken)); + } + + return expr; + } + + if (matchAssign()) { + if (!isAssignmentTarget) { + tolerateError(Messages.InvalidLHSInAssignment); + } + + // 11.13.1 + if (strict && expr.type === Syntax.Identifier && isRestrictedWord(expr.name)) { + tolerateUnexpectedToken(token, Messages.StrictLHSAssignment); + } + + if (!match('=')) { + isAssignmentTarget = isBindingElement = false; + } else { + reinterpretExpressionAsPattern(expr); + } + + token = lex(); + right = isolateCoverGrammar(parseAssignmentExpression); + expr = new WrappingNode(startToken).finishAssignmentExpression(token.value, expr, right); + firstCoverInitializedNameError = null; + } + + return expr; + } + + // 11.14 Comma Operator + + function parseExpression() { + var expr, startToken = lookahead, expressions; + + expr = isolateCoverGrammar(parseAssignmentExpression); + + if (match(',')) { + expressions = [expr]; + + while (startIndex < length) { + if (!match(',')) { + break; + } + lex(); + expressions.push(isolateCoverGrammar(parseAssignmentExpression)); + } + + expr = new WrappingNode(startToken).finishSequenceExpression(expressions); + } + + return expr; + } + + // 12.1 Block + + function parseStatementListItem() { + if (lookahead.type === Token.Keyword) { + switch (lookahead.value) { + case 'export': + if (sourceType !== 'module') { + tolerateUnexpectedToken(lookahead, Messages.IllegalExportDeclaration); + } + return parseExportDeclaration(); + case 'import': + if (sourceType !== 'module') { + tolerateUnexpectedToken(lookahead, Messages.IllegalImportDeclaration); + } + return parseImportDeclaration(); + case 'const': + case 'let': + return parseLexicalDeclaration({inFor: false}); + case 'function': + return parseFunctionDeclaration(new Node()); + case 'class': + return parseClassDeclaration(); + } + } + + return parseStatement(); + } + + function parseStatementList() { + var list = []; + while (startIndex < length) { + if (match('}')) { + break; + } + list.push(parseStatementListItem()); + } + + return list; + } + + function parseBlock() { + var block, node = new Node(); + + expect('{'); + + block = parseStatementList(); + + expect('}'); + + return node.finishBlockStatement(block); + } + + // 12.2 Variable Statement + + function parseVariableIdentifier() { + var token, node = new Node(); + + token = lex(); + + if (token.type !== Token.Identifier) { + if (strict && token.type === Token.Keyword && isStrictModeReservedWord(token.value)) { + tolerateUnexpectedToken(token, Messages.StrictReservedWord); + } else { + throwUnexpectedToken(token); + } + } + + return node.finishIdentifier(token.value); + } + + function parseVariableDeclaration() { + var init = null, id, node = new Node(); + + id = parsePattern(); + + // 12.2.1 + if (strict && isRestrictedWord(id.name)) { + tolerateError(Messages.StrictVarName); + } + + if (match('=')) { + lex(); + init = isolateCoverGrammar(parseAssignmentExpression); + } else if (id.type !== Syntax.Identifier) { + expect('='); + } + + return node.finishVariableDeclarator(id, init); + } + + function parseVariableDeclarationList() { + var list = []; + + do { + list.push(parseVariableDeclaration()); + if (!match(',')) { + break; + } + lex(); + } while (startIndex < length); + + return list; + } + + function parseVariableStatement(node) { + var declarations; + + expectKeyword('var'); + + declarations = parseVariableDeclarationList(); + + consumeSemicolon(); + + return node.finishVariableDeclaration(declarations); + } + + function parseLexicalBinding(kind, options) { + var init = null, id, node = new Node(); + + id = parsePattern(); + + // 12.2.1 + if (strict && id.type === Syntax.Identifier && isRestrictedWord(id.name)) { + tolerateError(Messages.StrictVarName); + } + + if (kind === 'const') { + if (!matchKeyword('in')) { + expect('='); + init = isolateCoverGrammar(parseAssignmentExpression); + } + } else if ((!options.inFor && id.type !== Syntax.Identifier) || match('=')) { + expect('='); + init = isolateCoverGrammar(parseAssignmentExpression); + } + + return node.finishVariableDeclarator(id, init); + } + + function parseBindingList(kind, options) { + var list = []; + + do { + list.push(parseLexicalBinding(kind, options)); + if (!match(',')) { + break; + } + lex(); + } while (startIndex < length); + + return list; + } + + function parseLexicalDeclaration(options) { + var kind, declarations, node = new Node(); + + kind = lex().value; + assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const'); + + declarations = parseBindingList(kind, options); + + consumeSemicolon(); + + return node.finishLexicalDeclaration(declarations, kind); + } + + function parseRestElement() { + var param, node = new Node(); + + lex(); + + if (match('{')) { + throwError(Messages.ObjectPatternAsRestParameter); + } + + param = parseVariableIdentifier(); + + if (match('=')) { + throwError(Messages.DefaultRestParameter); + } + + if (!match(')')) { + throwError(Messages.ParameterAfterRestParameter); + } + + return node.finishRestElement(param); + } + + // 12.3 Empty Statement + + function parseEmptyStatement(node) { + expect(';'); + return node.finishEmptyStatement(); + } + + // 12.4 Expression Statement + + function parseExpressionStatement(node) { + var expr = parseExpression(); + consumeSemicolon(); + return node.finishExpressionStatement(expr); + } + + // 12.5 If statement + + function parseIfStatement(node) { + var test, consequent, alternate; + + expectKeyword('if'); + + expect('('); + + test = parseExpression(); + + expect(')'); + + consequent = parseStatement(); + + if (matchKeyword('else')) { + lex(); + alternate = parseStatement(); + } else { + alternate = null; + } + + return node.finishIfStatement(test, consequent, alternate); + } + + // 12.6 Iteration Statements + + function parseDoWhileStatement(node) { + var body, test, oldInIteration; + + expectKeyword('do'); + + oldInIteration = state.inIteration; + state.inIteration = true; + + body = parseStatement(); + + state.inIteration = oldInIteration; + + expectKeyword('while'); + + expect('('); + + test = parseExpression(); + + expect(')'); + + if (match(';')) { + lex(); + } + + return node.finishDoWhileStatement(body, test); + } + + function parseWhileStatement(node) { + var test, body, oldInIteration; + + expectKeyword('while'); + + expect('('); + + test = parseExpression(); + + expect(')'); + + oldInIteration = state.inIteration; + state.inIteration = true; + + body = parseStatement(); + + state.inIteration = oldInIteration; + + return node.finishWhileStatement(test, body); + } + + function parseForStatement(node) { + var init, initSeq, initStartToken, test, update, left, right, kind, declarations, + body, oldInIteration, previousAllowIn = state.allowIn; + + init = test = update = null; + + expectKeyword('for'); + + expect('('); + + if (match(';')) { + lex(); + } else { + if (matchKeyword('var')) { + init = new Node(); + lex(); + + state.allowIn = false; + init = init.finishVariableDeclaration(parseVariableDeclarationList()); + state.allowIn = previousAllowIn; + + if (init.declarations.length === 1 && matchKeyword('in')) { + lex(); + left = init; + right = parseExpression(); + init = null; + } else { + expect(';'); + } + } else if (matchKeyword('const') || matchKeyword('let')) { + init = new Node(); + kind = lex().value; + + state.allowIn = false; + declarations = parseBindingList(kind, {inFor: true}); + state.allowIn = previousAllowIn; + + if (declarations.length === 1 && declarations[0].init === null && matchKeyword('in')) { + init = init.finishLexicalDeclaration(declarations, kind); + lex(); + left = init; + right = parseExpression(); + init = null; + } else { + consumeSemicolon(); + init = init.finishLexicalDeclaration(declarations, kind); + } + } else { + initStartToken = lookahead; + state.allowIn = false; + init = inheritCoverGrammar(parseAssignmentExpression); + state.allowIn = previousAllowIn; + + if (matchKeyword('in')) { + if (!isAssignmentTarget) { + tolerateError(Messages.InvalidLHSInForIn); + } + + lex(); + reinterpretExpressionAsPattern(init); + left = init; + right = parseExpression(); + init = null; + } else { + if (match(',')) { + initSeq = [init]; + while (match(',')) { + lex(); + initSeq.push(isolateCoverGrammar(parseAssignmentExpression)); + } + init = new WrappingNode(initStartToken).finishSequenceExpression(initSeq); + } + expect(';'); + } + } + } + + if (typeof left === 'undefined') { + + if (!match(';')) { + test = parseExpression(); + } + expect(';'); + + if (!match(')')) { + update = parseExpression(); + } + } + + expect(')'); + + oldInIteration = state.inIteration; + state.inIteration = true; + + body = isolateCoverGrammar(parseStatement); + + state.inIteration = oldInIteration; + + return (typeof left === 'undefined') ? + node.finishForStatement(init, test, update, body) : + node.finishForInStatement(left, right, body); + } + + // 12.7 The continue statement + + function parseContinueStatement(node) { + var label = null, key; + + expectKeyword('continue'); + + // Optimize the most common form: 'continue;'. + if (source.charCodeAt(startIndex) === 0x3B) { + lex(); + + if (!state.inIteration) { + throwError(Messages.IllegalContinue); + } + + return node.finishContinueStatement(null); + } + + if (hasLineTerminator) { + if (!state.inIteration) { + throwError(Messages.IllegalContinue); + } + + return node.finishContinueStatement(null); + } + + if (lookahead.type === Token.Identifier) { + label = parseVariableIdentifier(); + + key = '$' + label.name; + if (!Object.prototype.hasOwnProperty.call(state.labelSet, key)) { + throwError(Messages.UnknownLabel, label.name); + } + } + + consumeSemicolon(); + + if (label === null && !state.inIteration) { + throwError(Messages.IllegalContinue); + } + + return node.finishContinueStatement(label); + } + + // 12.8 The break statement + + function parseBreakStatement(node) { + var label = null, key; + + expectKeyword('break'); + + // Catch the very common case first: immediately a semicolon (U+003B). + if (source.charCodeAt(lastIndex) === 0x3B) { + lex(); + + if (!(state.inIteration || state.inSwitch)) { + throwError(Messages.IllegalBreak); + } + + return node.finishBreakStatement(null); + } + + if (hasLineTerminator) { + if (!(state.inIteration || state.inSwitch)) { + throwError(Messages.IllegalBreak); + } + + return node.finishBreakStatement(null); + } + + if (lookahead.type === Token.Identifier) { + label = parseVariableIdentifier(); + + key = '$' + label.name; + if (!Object.prototype.hasOwnProperty.call(state.labelSet, key)) { + throwError(Messages.UnknownLabel, label.name); + } + } + + consumeSemicolon(); + + if (label === null && !(state.inIteration || state.inSwitch)) { + throwError(Messages.IllegalBreak); + } + + return node.finishBreakStatement(label); + } + + // 12.9 The return statement + + function parseReturnStatement(node) { + var argument = null; + + expectKeyword('return'); + + if (!state.inFunctionBody) { + tolerateError(Messages.IllegalReturn); + } + + // 'return' followed by a space and an identifier is very common. + if (source.charCodeAt(lastIndex) === 0x20) { + if (isIdentifierStart(source.charCodeAt(lastIndex + 1))) { + argument = parseExpression(); + consumeSemicolon(); + return node.finishReturnStatement(argument); + } + } + + if (hasLineTerminator) { + // HACK + return node.finishReturnStatement(null); + } + + if (!match(';')) { + if (!match('}') && lookahead.type !== Token.EOF) { + argument = parseExpression(); + } + } + + consumeSemicolon(); + + return node.finishReturnStatement(argument); + } + + // 12.10 The with statement + + function parseWithStatement(node) { + var object, body; + + if (strict) { + tolerateError(Messages.StrictModeWith); + } + + expectKeyword('with'); + + expect('('); + + object = parseExpression(); + + expect(')'); + + body = parseStatement(); + + return node.finishWithStatement(object, body); + } + + // 12.10 The swith statement + + function parseSwitchCase() { + var test, consequent = [], statement, node = new Node(); + + if (matchKeyword('default')) { + lex(); + test = null; + } else { + expectKeyword('case'); + test = parseExpression(); + } + expect(':'); + + while (startIndex < length) { + if (match('}') || matchKeyword('default') || matchKeyword('case')) { + break; + } + statement = parseStatementListItem(); + consequent.push(statement); + } + + return node.finishSwitchCase(test, consequent); + } + + function parseSwitchStatement(node) { + var discriminant, cases, clause, oldInSwitch, defaultFound; + + expectKeyword('switch'); + + expect('('); + + discriminant = parseExpression(); + + expect(')'); + + expect('{'); + + cases = []; + + if (match('}')) { + lex(); + return node.finishSwitchStatement(discriminant, cases); + } + + oldInSwitch = state.inSwitch; + state.inSwitch = true; + defaultFound = false; + + while (startIndex < length) { + if (match('}')) { + break; + } + clause = parseSwitchCase(); + if (clause.test === null) { + if (defaultFound) { + throwError(Messages.MultipleDefaultsInSwitch); + } + defaultFound = true; + } + cases.push(clause); + } + + state.inSwitch = oldInSwitch; + + expect('}'); + + return node.finishSwitchStatement(discriminant, cases); + } + + // 12.13 The throw statement + + function parseThrowStatement(node) { + var argument; + + expectKeyword('throw'); + + if (hasLineTerminator) { + throwError(Messages.NewlineAfterThrow); + } + + argument = parseExpression(); + + consumeSemicolon(); + + return node.finishThrowStatement(argument); + } + + // 12.14 The try statement + + function parseCatchClause() { + var param, body, node = new Node(); + + expectKeyword('catch'); + + expect('('); + if (match(')')) { + throwUnexpectedToken(lookahead); + } + + param = parsePattern(); + + // 12.14.1 + if (strict && isRestrictedWord(param.name)) { + tolerateError(Messages.StrictCatchVariable); + } + + expect(')'); + body = parseBlock(); + return node.finishCatchClause(param, body); + } + + function parseTryStatement(node) { + var block, handler = null, finalizer = null; + + expectKeyword('try'); + + block = parseBlock(); + + if (matchKeyword('catch')) { + handler = parseCatchClause(); + } + + if (matchKeyword('finally')) { + lex(); + finalizer = parseBlock(); + } + + if (!handler && !finalizer) { + throwError(Messages.NoCatchOrFinally); + } + + return node.finishTryStatement(block, handler, finalizer); + } + + // 12.15 The debugger statement + + function parseDebuggerStatement(node) { + expectKeyword('debugger'); + + consumeSemicolon(); + + return node.finishDebuggerStatement(); + } + + // 12 Statements + + function parseStatement() { + var type = lookahead.type, + expr, + labeledBody, + key, + node; + + if (type === Token.EOF) { + throwUnexpectedToken(lookahead); + } + + if (type === Token.Punctuator && lookahead.value === '{') { + return parseBlock(); + } + isAssignmentTarget = isBindingElement = true; + node = new Node(); + + if (type === Token.Punctuator) { + switch (lookahead.value) { + case ';': + return parseEmptyStatement(node); + case '(': + return parseExpressionStatement(node); + default: + break; + } + } else if (type === Token.Keyword) { + switch (lookahead.value) { + case 'break': + return parseBreakStatement(node); + case 'continue': + return parseContinueStatement(node); + case 'debugger': + return parseDebuggerStatement(node); + case 'do': + return parseDoWhileStatement(node); + case 'for': + return parseForStatement(node); + case 'function': + return parseFunctionDeclaration(node); + case 'if': + return parseIfStatement(node); + case 'return': + return parseReturnStatement(node); + case 'switch': + return parseSwitchStatement(node); + case 'throw': + return parseThrowStatement(node); + case 'try': + return parseTryStatement(node); + case 'var': + return parseVariableStatement(node); + case 'while': + return parseWhileStatement(node); + case 'with': + return parseWithStatement(node); + default: + break; + } + } + + expr = parseExpression(); + + // 12.12 Labelled Statements + if ((expr.type === Syntax.Identifier) && match(':')) { + lex(); + + key = '$' + expr.name; + if (Object.prototype.hasOwnProperty.call(state.labelSet, key)) { + throwError(Messages.Redeclaration, 'Label', expr.name); + } + + state.labelSet[key] = true; + labeledBody = parseStatement(); + delete state.labelSet[key]; + return node.finishLabeledStatement(expr, labeledBody); + } + + consumeSemicolon(); + + return node.finishExpressionStatement(expr); + } + + // 13 Function Definition + + function parseFunctionSourceElements() { + var statement, body = [], token, directive, firstRestricted, + oldLabelSet, oldInIteration, oldInSwitch, oldInFunctionBody, oldParenthesisCount, + node = new Node(); + + expect('{'); + + while (startIndex < length) { + if (lookahead.type !== Token.StringLiteral) { + break; + } + token = lookahead; + + statement = parseStatementListItem(); + body.push(statement); + if (statement.expression.type !== Syntax.Literal) { + // this is not directive + break; + } + directive = source.slice(token.start + 1, token.end - 1); + if (directive === 'use strict') { + strict = true; + if (firstRestricted) { + tolerateUnexpectedToken(firstRestricted, Messages.StrictOctalLiteral); + } + } else { + if (!firstRestricted && token.octal) { + firstRestricted = token; + } + } + } + + oldLabelSet = state.labelSet; + oldInIteration = state.inIteration; + oldInSwitch = state.inSwitch; + oldInFunctionBody = state.inFunctionBody; + oldParenthesisCount = state.parenthesizedCount; + + state.labelSet = {}; + state.inIteration = false; + state.inSwitch = false; + state.inFunctionBody = true; + state.parenthesizedCount = 0; + + while (startIndex < length) { + if (match('}')) { + break; + } + body.push(parseStatementListItem()); + } + + expect('}'); + + state.labelSet = oldLabelSet; + state.inIteration = oldInIteration; + state.inSwitch = oldInSwitch; + state.inFunctionBody = oldInFunctionBody; + state.parenthesizedCount = oldParenthesisCount; + + return node.finishBlockStatement(body); + } + + function validateParam(options, param, name) { + var key = '$' + name; + if (strict) { + if (isRestrictedWord(name)) { + options.stricted = param; + options.message = Messages.StrictParamName; + } + if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) { + options.stricted = param; + options.message = Messages.StrictParamDupe; + } + } else if (!options.firstRestricted) { + if (isRestrictedWord(name)) { + options.firstRestricted = param; + options.message = Messages.StrictParamName; + } else if (isStrictModeReservedWord(name)) { + options.firstRestricted = param; + options.message = Messages.StrictReservedWord; + } else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) { + options.firstRestricted = param; + options.message = Messages.StrictParamDupe; + } + } + options.paramSet[key] = true; + } + + function parseParam(options) { + var token, param, def; + + token = lookahead; + if (token.value === '...') { + param = parseRestElement(); + validateParam(options, param.argument, param.argument.name); + options.params.push(param); + options.defaults.push(null); + return false; + } + + param = parsePatternWithDefault(); + validateParam(options, token, token.value); + + if (param.type === Syntax.AssignmentPattern) { + def = param.right; + param = param.left; + ++options.defaultCount; + } + + options.params.push(param); + options.defaults.push(def); + + return !match(')'); + } + + function parseParams(firstRestricted) { + var options; + + options = { + params: [], + defaultCount: 0, + defaults: [], + firstRestricted: firstRestricted + }; + + expect('('); + + if (!match(')')) { + options.paramSet = {}; + while (startIndex < length) { + if (!parseParam(options)) { + break; + } + expect(','); + } + } + + expect(')'); + + if (options.defaultCount === 0) { + options.defaults = []; + } + + return { + params: options.params, + defaults: options.defaults, + stricted: options.stricted, + firstRestricted: options.firstRestricted, + message: options.message + }; + } + + function parseFunctionDeclaration(node, identifierIsOptional) { + var id = null, params = [], defaults = [], body, token, stricted, tmp, firstRestricted, message, previousStrict; + + expectKeyword('function'); + if (!identifierIsOptional || !match('(')) { + token = lookahead; + id = parseVariableIdentifier(); + if (strict) { + if (isRestrictedWord(token.value)) { + tolerateUnexpectedToken(token, Messages.StrictFunctionName); + } + } else { + if (isRestrictedWord(token.value)) { + firstRestricted = token; + message = Messages.StrictFunctionName; + } else if (isStrictModeReservedWord(token.value)) { + firstRestricted = token; + message = Messages.StrictReservedWord; + } + } + } + + tmp = parseParams(firstRestricted); + params = tmp.params; + defaults = tmp.defaults; + stricted = tmp.stricted; + firstRestricted = tmp.firstRestricted; + if (tmp.message) { + message = tmp.message; + } + + previousStrict = strict; + body = parseFunctionSourceElements(); + if (strict && firstRestricted) { + throwUnexpectedToken(firstRestricted, message); + } + if (strict && stricted) { + tolerateUnexpectedToken(stricted, message); + } + strict = previousStrict; + + return node.finishFunctionDeclaration(id, params, defaults, body); + } + + function parseFunctionExpression() { + var token, id = null, stricted, firstRestricted, message, tmp, + params = [], defaults = [], body, previousStrict, node = new Node(); + + expectKeyword('function'); + + if (!match('(')) { + token = lookahead; + id = parseVariableIdentifier(); + if (strict) { + if (isRestrictedWord(token.value)) { + tolerateUnexpectedToken(token, Messages.StrictFunctionName); + } + } else { + if (isRestrictedWord(token.value)) { + firstRestricted = token; + message = Messages.StrictFunctionName; + } else if (isStrictModeReservedWord(token.value)) { + firstRestricted = token; + message = Messages.StrictReservedWord; + } + } + } + + tmp = parseParams(firstRestricted); + params = tmp.params; + defaults = tmp.defaults; + stricted = tmp.stricted; + firstRestricted = tmp.firstRestricted; + if (tmp.message) { + message = tmp.message; + } + + previousStrict = strict; + body = parseFunctionSourceElements(); + if (strict && firstRestricted) { + throwUnexpectedToken(firstRestricted, message); + } + if (strict && stricted) { + tolerateUnexpectedToken(stricted, message); + } + strict = previousStrict; + + return node.finishFunctionExpression(id, params, defaults, body); + } + + + function parseClassBody() { + var classBody, token, isStatic, hasConstructor = false, body, method, computed, key; + + classBody = new Node(); + + expect('{'); + body = []; + while (!match('}')) { + if (match(';')) { + lex(); + } else { + method = new Node(); + token = lookahead; + isStatic = false; + computed = match('['); + key = parseObjectPropertyKey(); + if (key.name === 'static' && lookaheadPropertyName()) { + token = lookahead; + isStatic = true; + computed = match('['); + key = parseObjectPropertyKey(); + } + method = tryParseMethodDefinition(token, key, computed, method); + if (method) { + method['static'] = isStatic; + if (method.kind === 'init') { + method.kind = 'method'; + } + if (!isStatic) { + if (!method.computed && (method.key.name || method.key.value.toString()) === 'constructor') { + if (method.kind !== 'method' || !method.method || method.value.generator) { + throwUnexpectedToken(token, Messages.ConstructorSpecialMethod); + } + if (hasConstructor) { + throwUnexpectedToken(token, Messages.DuplicateConstructor); + } else { + hasConstructor = true; + } + method.kind = 'constructor'; + } + } else { + if (!method.computed && (method.key.name || method.key.value.toString()) === 'prototype') { + throwUnexpectedToken(token, Messages.StaticPrototype); + } + } + method.type = Syntax.MethodDefinition; + delete method.method; + delete method.shorthand; + body.push(method); + } else { + throwUnexpectedToken(lookahead); + } + } + } + lex(); + return classBody.finishClassBody(body); + } + + function parseClassDeclaration(identifierIsOptional) { + var id = null, superClass = null, classNode = new Node(), classBody, previousStrict = strict; + strict = true; + + expectKeyword('class'); + + if (!identifierIsOptional || lookahead.type === Token.Identifier) { + id = parseVariableIdentifier(); + } + + if (matchKeyword('extends')) { + lex(); + superClass = isolateCoverGrammar(parseLeftHandSideExpressionAllowCall); + } + classBody = parseClassBody(); + strict = previousStrict; + + return classNode.finishClassDeclaration(id, superClass, classBody); + } + + function parseClassExpression() { + var id = null, superClass = null, classNode = new Node(), classBody, previousStrict = strict; + strict = true; + + expectKeyword('class'); + + if (lookahead.type === Token.Identifier) { + id = parseVariableIdentifier(); + } + + if (matchKeyword('extends')) { + lex(); + superClass = isolateCoverGrammar(parseLeftHandSideExpressionAllowCall); + } + classBody = parseClassBody(); + strict = previousStrict; + + return classNode.finishClassExpression(id, superClass, classBody); + } + + // Modules grammar from: + // people.mozilla.org/~jorendorff/es6-draft.html + + function parseModuleSpecifier() { + var node = new Node(); + + if (lookahead.type !== Token.StringLiteral) { + throwError(Messages.InvalidModuleSpecifier); + } + return node.finishLiteral(lex()); + } + + function parseExportSpecifier() { + var exported, local, node = new Node(), def; + if (matchKeyword('default')) { + // export {default} from 'something'; + def = new Node(); + lex(); + local = def.finishIdentifier('default'); + } else { + local = parseVariableIdentifier(); + } + if (matchContextualKeyword('as')) { + lex(); + exported = parseNonComputedProperty(); + } + return node.finishExportSpecifier(local, exported); + } + + function parseExportNamedDeclaration(node) { + var declaration = null, + isExportFromIdentifier, + src = null, specifiers = []; + + // non-default export + if (lookahead.type === Token.Keyword) { + // covers: + // export var f = 1; + switch (lookahead.value) { + case 'let': + case 'const': + case 'var': + case 'class': + case 'function': + declaration = parseStatementListItem(); + return node.finishExportNamedDeclaration(declaration, specifiers, null); + } + } + + expect('{'); + if (!match('}')) { + do { + isExportFromIdentifier = isExportFromIdentifier || matchKeyword('default'); + specifiers.push(parseExportSpecifier()); + } while (match(',') && lex()); + } + expect('}'); + + if (matchContextualKeyword('from')) { + // covering: + // export {default} from 'foo'; + // export {foo} from 'foo'; + lex(); + src = parseModuleSpecifier(); + consumeSemicolon(); + } else if (isExportFromIdentifier) { + // covering: + // export {default}; // missing fromClause + throwError(lookahead.value ? + Messages.UnexpectedToken : Messages.MissingFromClause, lookahead.value); + } else { + // cover + // export {foo}; + consumeSemicolon(); + } + return node.finishExportNamedDeclaration(declaration, specifiers, src); + } + + function parseExportDefaultDeclaration(node) { + var declaration = null, + expression = null; + + // covers: + // export default ... + expectKeyword('default'); + + if (matchKeyword('function')) { + // covers: + // export default function foo () {} + // export default function () {} + declaration = parseFunctionDeclaration(new Node(), true); + return node.finishExportDefaultDeclaration(declaration); + } + if (matchKeyword('class')) { + declaration = parseClassDeclaration(true); + return node.finishExportDefaultDeclaration(declaration); + } + + if (matchContextualKeyword('from')) { + throwError(Messages.UnexpectedToken, lookahead.value); + } + + // covers: + // export default {}; + // export default []; + // export default (1 + 2); + if (match('{')) { + expression = parseObjectInitialiser(); + } else if (match('[')) { + expression = parseArrayInitialiser(); + } else { + expression = parseAssignmentExpression(); + } + consumeSemicolon(); + return node.finishExportDefaultDeclaration(expression); + } + + function parseExportAllDeclaration(node) { + var src; + + // covers: + // export * from 'foo'; + expect('*'); + if (!matchContextualKeyword('from')) { + throwError(lookahead.value ? + Messages.UnexpectedToken : Messages.MissingFromClause, lookahead.value); + } + lex(); + src = parseModuleSpecifier(); + consumeSemicolon(); + + return node.finishExportAllDeclaration(src); + } + + function parseExportDeclaration() { + var node = new Node(); + if (state.inFunctionBody) { + throwError(Messages.IllegalExportDeclaration); + } + + expectKeyword('export'); + + if (matchKeyword('default')) { + return parseExportDefaultDeclaration(node); + } + if (match('*')) { + return parseExportAllDeclaration(node); + } + return parseExportNamedDeclaration(node); + } + + function parseImportSpecifier() { + // import {<foo as bar>} ...; + var local, imported, node = new Node(); + + imported = parseNonComputedProperty(); + if (matchContextualKeyword('as')) { + lex(); + local = parseVariableIdentifier(); + } + + return node.finishImportSpecifier(local, imported); + } + + function parseNamedImports() { + var specifiers = []; + // {foo, bar as bas} + expect('{'); + if (!match('}')) { + do { + specifiers.push(parseImportSpecifier()); + } while (match(',') && lex()); + } + expect('}'); + return specifiers; + } + + function parseImportDefaultSpecifier() { + // import <foo> ...; + var local, node = new Node(); + + local = parseNonComputedProperty(); + + return node.finishImportDefaultSpecifier(local); + } + + function parseImportNamespaceSpecifier() { + // import <* as foo> ...; + var local, node = new Node(); + + expect('*'); + if (!matchContextualKeyword('as')) { + throwError(Messages.NoAsAfterImportNamespace); + } + lex(); + local = parseNonComputedProperty(); + + return node.finishImportNamespaceSpecifier(local); + } + + function parseImportDeclaration() { + var specifiers, src, node = new Node(); + + if (state.inFunctionBody) { + throwError(Messages.IllegalImportDeclaration); + } + + expectKeyword('import'); + specifiers = []; + + if (lookahead.type === Token.StringLiteral) { + // covers: + // import 'foo'; + src = parseModuleSpecifier(); + consumeSemicolon(); + return node.finishImportDeclaration(specifiers, src); + } + + if (!matchKeyword('default') && isIdentifierName(lookahead)) { + // covers: + // import foo + // import foo, ... + specifiers.push(parseImportDefaultSpecifier()); + if (match(',')) { + lex(); + } + } + if (match('*')) { + // covers: + // import foo, * as foo + // import * as foo + specifiers.push(parseImportNamespaceSpecifier()); + } else if (match('{')) { + // covers: + // import foo, {bar} + // import {bar} + specifiers = specifiers.concat(parseNamedImports()); + } + + if (!matchContextualKeyword('from')) { + throwError(lookahead.value ? + Messages.UnexpectedToken : Messages.MissingFromClause, lookahead.value); + } + lex(); + src = parseModuleSpecifier(); + consumeSemicolon(); + + return node.finishImportDeclaration(specifiers, src); + } + + // 14 Program + + function parseScriptBody() { + var statement, body = [], token, directive, firstRestricted; + + while (startIndex < length) { + token = lookahead; + if (token.type !== Token.StringLiteral) { + break; + } + + statement = parseStatementListItem(); + body.push(statement); + if (statement.expression.type !== Syntax.Literal) { + // this is not directive + break; + } + directive = source.slice(token.start + 1, token.end - 1); + if (directive === 'use strict') { + strict = true; + if (firstRestricted) { + tolerateUnexpectedToken(firstRestricted, Messages.StrictOctalLiteral); + } + } else { + if (!firstRestricted && token.octal) { + firstRestricted = token; + } + } + } + + while (startIndex < length) { + statement = parseStatementListItem(); + /* istanbul ignore if */ + if (typeof statement === 'undefined') { + break; + } + body.push(statement); + } + return body; + } + + function parseProgram() { + var body, node; + + peek(); + node = new Node(); + + body = parseScriptBody(); + return node.finishProgram(body); + } + + function filterTokenLocation() { + var i, entry, token, tokens = []; + + for (i = 0; i < extra.tokens.length; ++i) { + entry = extra.tokens[i]; + token = { + type: entry.type, + value: entry.value + }; + if (entry.regex) { + token.regex = { + pattern: entry.regex.pattern, + flags: entry.regex.flags + }; + } + if (extra.range) { + token.range = entry.range; + } + if (extra.loc) { + token.loc = entry.loc; + } + tokens.push(token); + } + + extra.tokens = tokens; + } + + function tokenize(code, options) { + var toString, + tokens; + + toString = String; + if (typeof code !== 'string' && !(code instanceof String)) { + code = toString(code); + } + + source = code; + index = 0; + lineNumber = (source.length > 0) ? 1 : 0; + lineStart = 0; + startIndex = index; + startLineNumber = lineNumber; + startLineStart = lineStart; + length = source.length; + lookahead = null; + state = { + allowIn: true, + labelSet: {}, + inFunctionBody: false, + inIteration: false, + inSwitch: false, + lastCommentStart: -1, + curlyStack: [] + }; + + extra = {}; + + // Options matching. + options = options || {}; + + // Of course we collect tokens here. + options.tokens = true; + extra.tokens = []; + extra.tokenize = true; + // The following two fields are necessary to compute the Regex tokens. + extra.openParenToken = -1; + extra.openCurlyToken = -1; + + extra.range = (typeof options.range === 'boolean') && options.range; + extra.loc = (typeof options.loc === 'boolean') && options.loc; + + if (typeof options.comment === 'boolean' && options.comment) { + extra.comments = []; + } + if (typeof options.tolerant === 'boolean' && options.tolerant) { + extra.errors = []; + } + + try { + peek(); + if (lookahead.type === Token.EOF) { + return extra.tokens; + } + + lex(); + while (lookahead.type !== Token.EOF) { + try { + lex(); + } catch (lexError) { + if (extra.errors) { + recordError(lexError); + // We have to break on the first error + // to avoid infinite loops. + break; + } else { + throw lexError; + } + } + } + + filterTokenLocation(); + tokens = extra.tokens; + if (typeof extra.comments !== 'undefined') { + tokens.comments = extra.comments; + } + if (typeof extra.errors !== 'undefined') { + tokens.errors = extra.errors; + } + } catch (e) { + throw e; + } finally { + extra = {}; + } + return tokens; + } + + function parse(code, options) { + var program, toString; + + toString = String; + if (typeof code !== 'string' && !(code instanceof String)) { + code = toString(code); + } + + source = code; + index = 0; + lineNumber = (source.length > 0) ? 1 : 0; + lineStart = 0; + startIndex = index; + startLineNumber = lineNumber; + startLineStart = lineStart; + length = source.length; + lookahead = null; + state = { + allowIn: true, + labelSet: {}, + inFunctionBody: false, + inIteration: false, + inSwitch: false, + lastCommentStart: -1, + curlyStack: [] + }; + sourceType = 'script'; + strict = false; + + extra = {}; + if (typeof options !== 'undefined') { + extra.range = (typeof options.range === 'boolean') && options.range; + extra.loc = (typeof options.loc === 'boolean') && options.loc; + extra.attachComment = (typeof options.attachComment === 'boolean') && options.attachComment; + + if (extra.loc && options.source !== null && options.source !== undefined) { + extra.source = toString(options.source); + } + + if (typeof options.tokens === 'boolean' && options.tokens) { + extra.tokens = []; + } + if (typeof options.comment === 'boolean' && options.comment) { + extra.comments = []; + } + if (typeof options.tolerant === 'boolean' && options.tolerant) { + extra.errors = []; + } + if (extra.attachComment) { + extra.range = true; + extra.comments = []; + extra.bottomRightStack = []; + extra.trailingComments = []; + extra.leadingComments = []; + } + if (options.sourceType === 'module') { + // very restrictive condition for now + sourceType = options.sourceType; + strict = true; + } + } + + try { + program = parseProgram(); + if (typeof extra.comments !== 'undefined') { + program.comments = extra.comments; + } + if (typeof extra.tokens !== 'undefined') { + filterTokenLocation(); + program.tokens = extra.tokens; + } + if (typeof extra.errors !== 'undefined') { + program.errors = extra.errors; + } + } catch (e) { + throw e; + } finally { + extra = {}; + } + + return program; + } + + // Sync with *.json manifests. + exports.version = '2.2.0'; + + exports.tokenize = tokenize; + + exports.parse = parse; + + // Deep copy. + /* istanbul ignore next */ + exports.Syntax = (function () { + var name, types = {}; + + if (typeof Object.create === 'function') { + types = Object.create(null); + } + + for (name in Syntax) { + if (Syntax.hasOwnProperty(name)) { + types[name] = Syntax[name]; + } + } + + if (typeof Object.freeze === 'function') { + Object.freeze(types); + } + + return types; + }()); + +})); +/* vim: set sw=4 ts=4 et tw=80 : */ + +},{}],52:[function(require,module,exports){ +var baseIndexOf = require('../internal/baseIndexOf'), + binaryIndex = require('../internal/binaryIndex'); + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Gets the index at which the first occurrence of `value` is found in `array` + * using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) + * for equality comparisons. If `fromIndex` is negative, it is used as the offset + * from the end of `array`. If `array` is sorted providing `true` for `fromIndex` + * performs a faster binary search. + * + * @static + * @memberOf _ + * @category Array + * @param {Array} array The array to search. + * @param {*} value The value to search for. + * @param {boolean|number} [fromIndex=0] The index to search from or `true` + * to perform a binary search on a sorted array. + * @returns {number} Returns the index of the matched value, else `-1`. + * @example + * + * _.indexOf([1, 2, 1, 2], 2); + * // => 1 + * + * // using `fromIndex` + * _.indexOf([1, 2, 1, 2], 2, 2); + * // => 3 + * + * // performing a binary search + * _.indexOf([1, 1, 2, 2], 2, true); + * // => 2 + */ +function indexOf(array, value, fromIndex) { + var length = array ? array.length : 0; + if (!length) { + return -1; + } + if (typeof fromIndex == 'number') { + fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : fromIndex; + } else if (fromIndex) { + var index = binaryIndex(array, value); + if (index < length && + (value === value ? (value === array[index]) : (array[index] !== array[index]))) { + return index; + } + return -1; + } + return baseIndexOf(array, value, fromIndex || 0); +} + +module.exports = indexOf; + +},{"../internal/baseIndexOf":81,"../internal/binaryIndex":95}],53:[function(require,module,exports){ +/** + * Gets the last element of `array`. + * + * @static + * @memberOf _ + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the last element of `array`. + * @example + * + * _.last([1, 2, 3]); + * // => 3 + */ +function last(array) { + var length = array ? array.length : 0; + return length ? array[length - 1] : undefined; +} + +module.exports = last; + +},{}],54:[function(require,module,exports){ +var LazyWrapper = require('../internal/LazyWrapper'), + LodashWrapper = require('../internal/LodashWrapper'), + baseLodash = require('../internal/baseLodash'), + isArray = require('../lang/isArray'), + isObjectLike = require('../internal/isObjectLike'), + wrapperClone = require('../internal/wrapperClone'); + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Creates a `lodash` object which wraps `value` to enable implicit chaining. + * Methods that operate on and return arrays, collections, and functions can + * be chained together. Methods that retrieve a single value or may return a + * primitive value will automatically end the chain returning the unwrapped + * value. Explicit chaining may be enabled using `_.chain`. The execution of + * chained methods is lazy, that is, execution is deferred until `_#value` + * is implicitly or explicitly called. + * + * Lazy evaluation allows several methods to support shortcut fusion. Shortcut + * fusion is an optimization strategy which merge iteratee calls; this can help + * to avoid the creation of intermediate data structures and greatly reduce the + * number of iteratee executions. + * + * Chaining is supported in custom builds as long as the `_#value` method is + * directly or indirectly included in the build. + * + * In addition to lodash methods, wrappers have `Array` and `String` methods. + * + * The wrapper `Array` methods are: + * `concat`, `join`, `pop`, `push`, `reverse`, `shift`, `slice`, `sort`, + * `splice`, and `unshift` + * + * The wrapper `String` methods are: + * `replace` and `split` + * + * The wrapper methods that support shortcut fusion are: + * `compact`, `drop`, `dropRight`, `dropRightWhile`, `dropWhile`, `filter`, + * `first`, `initial`, `last`, `map`, `pluck`, `reject`, `rest`, `reverse`, + * `slice`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, `toArray`, + * and `where` + * + * The chainable wrapper methods are: + * `after`, `ary`, `assign`, `at`, `before`, `bind`, `bindAll`, `bindKey`, + * `callback`, `chain`, `chunk`, `commit`, `compact`, `concat`, `constant`, + * `countBy`, `create`, `curry`, `debounce`, `defaults`, `defaultsDeep`, + * `defer`, `delay`, `difference`, `drop`, `dropRight`, `dropRightWhile`, + * `dropWhile`, `fill`, `filter`, `flatten`, `flattenDeep`, `flow`, `flowRight`, + * `forEach`, `forEachRight`, `forIn`, `forInRight`, `forOwn`, `forOwnRight`, + * `functions`, `groupBy`, `indexBy`, `initial`, `intersection`, `invert`, + * `invoke`, `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, + * `matchesProperty`, `memoize`, `merge`, `method`, `methodOf`, `mixin`, + * `modArgs`, `negate`, `omit`, `once`, `pairs`, `partial`, `partialRight`, + * `partition`, `pick`, `plant`, `pluck`, `property`, `propertyOf`, `pull`, + * `pullAt`, `push`, `range`, `rearg`, `reject`, `remove`, `rest`, `restParam`, + * `reverse`, `set`, `shuffle`, `slice`, `sort`, `sortBy`, `sortByAll`, + * `sortByOrder`, `splice`, `spread`, `take`, `takeRight`, `takeRightWhile`, + * `takeWhile`, `tap`, `throttle`, `thru`, `times`, `toArray`, `toPlainObject`, + * `transform`, `union`, `uniq`, `unshift`, `unzip`, `unzipWith`, `values`, + * `valuesIn`, `where`, `without`, `wrap`, `xor`, `zip`, `zipObject`, `zipWith` + * + * The wrapper methods that are **not** chainable by default are: + * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clone`, `cloneDeep`, + * `deburr`, `endsWith`, `escape`, `escapeRegExp`, `every`, `find`, `findIndex`, + * `findKey`, `findLast`, `findLastIndex`, `findLastKey`, `findWhere`, `first`, + * `floor`, `get`, `gt`, `gte`, `has`, `identity`, `includes`, `indexOf`, + * `inRange`, `isArguments`, `isArray`, `isBoolean`, `isDate`, `isElement`, + * `isEmpty`, `isEqual`, `isError`, `isFinite` `isFunction`, `isMatch`, + * `isNative`, `isNaN`, `isNull`, `isNumber`, `isObject`, `isPlainObject`, + * `isRegExp`, `isString`, `isUndefined`, `isTypedArray`, `join`, `kebabCase`, + * `last`, `lastIndexOf`, `lt`, `lte`, `max`, `min`, `noConflict`, `noop`, + * `now`, `pad`, `padLeft`, `padRight`, `parseInt`, `pop`, `random`, `reduce`, + * `reduceRight`, `repeat`, `result`, `round`, `runInContext`, `shift`, `size`, + * `snakeCase`, `some`, `sortedIndex`, `sortedLastIndex`, `startCase`, + * `startsWith`, `sum`, `template`, `trim`, `trimLeft`, `trimRight`, `trunc`, + * `unescape`, `uniqueId`, `value`, and `words` + * + * The wrapper method `sample` will return a wrapped value when `n` is provided, + * otherwise an unwrapped value is returned. + * + * @name _ + * @constructor + * @category Chain + * @param {*} value The value to wrap in a `lodash` instance. + * @returns {Object} Returns the new `lodash` wrapper instance. + * @example + * + * var wrapped = _([1, 2, 3]); + * + * // returns an unwrapped value + * wrapped.reduce(function(total, n) { + * return total + n; + * }); + * // => 6 + * + * // returns a wrapped value + * var squares = wrapped.map(function(n) { + * return n * n; + * }); + * + * _.isArray(squares); + * // => false + * + * _.isArray(squares.value()); + * // => true + */ +function lodash(value) { + if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { + if (value instanceof LodashWrapper) { + return value; + } + if (hasOwnProperty.call(value, '__chain__') && hasOwnProperty.call(value, '__wrapped__')) { + return wrapperClone(value); + } + } + return new LodashWrapper(value); +} + +// Ensure wrappers are instances of `baseLodash`. +lodash.prototype = baseLodash.prototype; + +module.exports = lodash; + +},{"../internal/LazyWrapper":63,"../internal/LodashWrapper":64,"../internal/baseLodash":85,"../internal/isObjectLike":129,"../internal/wrapperClone":140,"../lang/isArray":143}],55:[function(require,module,exports){ +module.exports = require('./forEach'); + +},{"./forEach":57}],56:[function(require,module,exports){ +var baseEach = require('../internal/baseEach'), + createFind = require('../internal/createFind'); + +/** + * Iterates over elements of `collection`, returning the first element + * `predicate` returns truthy for. The predicate is bound to `thisArg` and + * invoked with three arguments: (value, index|key, collection). + * + * If a property name is provided for `predicate` the created `_.property` + * style callback returns the property value of the given element. + * + * If a value is also provided for `thisArg` the created `_.matchesProperty` + * style callback returns `true` for elements that have a matching property + * value, else `false`. + * + * If an object is provided for `predicate` the created `_.matches` style + * callback returns `true` for elements that have the properties of the given + * object, else `false`. + * + * @static + * @memberOf _ + * @alias detect + * @category Collection + * @param {Array|Object|string} collection The collection to search. + * @param {Function|Object|string} [predicate=_.identity] The function invoked + * per iteration. + * @param {*} [thisArg] The `this` binding of `predicate`. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false }, + * { 'user': 'pebbles', 'age': 1, 'active': true } + * ]; + * + * _.result(_.find(users, function(chr) { + * return chr.age < 40; + * }), 'user'); + * // => 'barney' + * + * // using the `_.matches` callback shorthand + * _.result(_.find(users, { 'age': 1, 'active': true }), 'user'); + * // => 'pebbles' + * + * // using the `_.matchesProperty` callback shorthand + * _.result(_.find(users, 'active', false), 'user'); + * // => 'fred' + * + * // using the `_.property` callback shorthand + * _.result(_.find(users, 'active'), 'user'); + * // => 'barney' + */ +var find = createFind(baseEach); + +module.exports = find; + +},{"../internal/baseEach":74,"../internal/createFind":105}],57:[function(require,module,exports){ +var arrayEach = require('../internal/arrayEach'), + baseEach = require('../internal/baseEach'), + createForEach = require('../internal/createForEach'); + +/** + * Iterates over elements of `collection` invoking `iteratee` for each element. + * The `iteratee` is bound to `thisArg` and invoked with three arguments: + * (value, index|key, collection). Iteratee functions may exit iteration early + * by explicitly returning `false`. + * + * **Note:** As with other "Collections" methods, objects with a "length" property + * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn` + * may be used for object iteration. + * + * @static + * @memberOf _ + * @alias each + * @category Collection + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [thisArg] The `this` binding of `iteratee`. + * @returns {Array|Object|string} Returns `collection`. + * @example + * + * _([1, 2]).forEach(function(n) { + * console.log(n); + * }).value(); + * // => logs each value from left to right and returns the array + * + * _.forEach({ 'a': 1, 'b': 2 }, function(n, key) { + * console.log(n, key); + * }); + * // => logs each value-key pair and returns the object (iteration order is not guaranteed) + */ +var forEach = createForEach(arrayEach, baseEach); + +module.exports = forEach; + +},{"../internal/arrayEach":66,"../internal/baseEach":74,"../internal/createForEach":106}],58:[function(require,module,exports){ +var baseIndexOf = require('../internal/baseIndexOf'), + getLength = require('../internal/getLength'), + isArray = require('../lang/isArray'), + isIterateeCall = require('../internal/isIterateeCall'), + isLength = require('../internal/isLength'), + isString = require('../lang/isString'), + values = require('../object/values'); + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Checks if `value` is in `collection` using + * [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero) + * for equality comparisons. If `fromIndex` is negative, it is used as the offset + * from the end of `collection`. + * + * @static + * @memberOf _ + * @alias contains, include + * @category Collection + * @param {Array|Object|string} collection The collection to search. + * @param {*} target The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @param- {Object} [guard] Enables use as a callback for functions like `_.reduce`. + * @returns {boolean} Returns `true` if a matching element is found, else `false`. + * @example + * + * _.includes([1, 2, 3], 1); + * // => true + * + * _.includes([1, 2, 3], 1, 2); + * // => false + * + * _.includes({ 'user': 'fred', 'age': 40 }, 'fred'); + * // => true + * + * _.includes('pebbles', 'eb'); + * // => true + */ +function includes(collection, target, fromIndex, guard) { + var length = collection ? getLength(collection) : 0; + if (!isLength(length)) { + collection = values(collection); + length = collection.length; + } + if (typeof fromIndex != 'number' || (guard && isIterateeCall(target, fromIndex, guard))) { + fromIndex = 0; + } else { + fromIndex = fromIndex < 0 ? nativeMax(length + fromIndex, 0) : (fromIndex || 0); + } + return (typeof collection == 'string' || !isArray(collection) && isString(collection)) + ? (fromIndex <= length && collection.indexOf(target, fromIndex) > -1) + : (!!length && baseIndexOf(collection, target, fromIndex) > -1); +} + +module.exports = includes; + +},{"../internal/baseIndexOf":81,"../internal/getLength":115,"../internal/isIterateeCall":125,"../internal/isLength":128,"../lang/isArray":143,"../lang/isString":149,"../object/values":155}],59:[function(require,module,exports){ +var arrayMap = require('../internal/arrayMap'), + baseCallback = require('../internal/baseCallback'), + baseMap = require('../internal/baseMap'), + isArray = require('../lang/isArray'); + +/** + * Creates an array of values by running each element in `collection` through + * `iteratee`. The `iteratee` is bound to `thisArg` and invoked with three + * arguments: (value, index|key, collection). + * + * If a property name is provided for `iteratee` the created `_.property` + * style callback returns the property value of the given element. + * + * If a value is also provided for `thisArg` the created `_.matchesProperty` + * style callback returns `true` for elements that have a matching property + * value, else `false`. + * + * If an object is provided for `iteratee` the created `_.matches` style + * callback returns `true` for elements that have the properties of the given + * object, else `false`. + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. + * + * The guarded methods are: + * `ary`, `callback`, `chunk`, `clone`, `create`, `curry`, `curryRight`, + * `drop`, `dropRight`, `every`, `fill`, `flatten`, `invert`, `max`, `min`, + * `parseInt`, `slice`, `sortBy`, `take`, `takeRight`, `template`, `trim`, + * `trimLeft`, `trimRight`, `trunc`, `random`, `range`, `sample`, `some`, + * `sum`, `uniq`, and `words` + * + * @static + * @memberOf _ + * @alias collect + * @category Collection + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function|Object|string} [iteratee=_.identity] The function invoked + * per iteration. + * @param {*} [thisArg] The `this` binding of `iteratee`. + * @returns {Array} Returns the new mapped array. + * @example + * + * function timesThree(n) { + * return n * 3; + * } + * + * _.map([1, 2], timesThree); + * // => [3, 6] + * + * _.map({ 'a': 1, 'b': 2 }, timesThree); + * // => [3, 6] (iteration order is not guaranteed) + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * // using the `_.property` callback shorthand + * _.map(users, 'user'); + * // => ['barney', 'fred'] + */ +function map(collection, iteratee, thisArg) { + var func = isArray(collection) ? arrayMap : baseMap; + iteratee = baseCallback(iteratee, thisArg, 3); + return func(collection, iteratee); +} + +module.exports = map; + +},{"../internal/arrayMap":67,"../internal/baseCallback":70,"../internal/baseMap":86,"../lang/isArray":143}],60:[function(require,module,exports){ +var getNative = require('../internal/getNative'); + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeNow = getNative(Date, 'now'); + +/** + * Gets the number of milliseconds that have elapsed since the Unix epoch + * (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @category Date + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => logs the number of milliseconds it took for the deferred function to be invoked + */ +var now = nativeNow || function() { + return new Date().getTime(); +}; + +module.exports = now; + +},{"../internal/getNative":117}],61:[function(require,module,exports){ +var createWrapper = require('../internal/createWrapper'), + replaceHolders = require('../internal/replaceHolders'), + restParam = require('./restParam'); + +/** Used to compose bitmasks for wrapper metadata. */ +var BIND_FLAG = 1, + PARTIAL_FLAG = 32; + +/** + * Creates a function that invokes `func` with the `this` binding of `thisArg` + * and prepends any additional `_.bind` arguments to those provided to the + * bound function. + * + * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, + * may be used as a placeholder for partially applied arguments. + * + * **Note:** Unlike native `Function#bind` this method does not set the "length" + * property of bound functions. + * + * @static + * @memberOf _ + * @category Function + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {...*} [partials] The arguments to be partially applied. + * @returns {Function} Returns the new bound function. + * @example + * + * var greet = function(greeting, punctuation) { + * return greeting + ' ' + this.user + punctuation; + * }; + * + * var object = { 'user': 'fred' }; + * + * var bound = _.bind(greet, object, 'hi'); + * bound('!'); + * // => 'hi fred!' + * + * // using placeholders + * var bound = _.bind(greet, object, _, '!'); + * bound('hi'); + * // => 'hi fred!' + */ +var bind = restParam(function(func, thisArg, partials) { + var bitmask = BIND_FLAG; + if (partials.length) { + var holders = replaceHolders(partials, bind.placeholder); + bitmask |= PARTIAL_FLAG; + } + return createWrapper(func, bitmask, thisArg, partials, holders); +}); + +// Assign default placeholders. +bind.placeholder = {}; + +module.exports = bind; + +},{"../internal/createWrapper":109,"../internal/replaceHolders":135,"./restParam":62}],62:[function(require,module,exports){ +/** Used as the `TypeError` message for "Functions" methods. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Creates a function that invokes `func` with the `this` binding of the + * created function and arguments from `start` and beyond provided as an array. + * + * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters). + * + * @static + * @memberOf _ + * @category Function + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + * @example + * + * var say = _.restParam(function(what, names) { + * return what + ' ' + _.initial(names).join(', ') + + * (_.size(names) > 1 ? ', & ' : '') + _.last(names); + * }); + * + * say('hello', 'fred', 'barney', 'pebbles'); + * // => 'hello fred, barney, & pebbles' + */ +function restParam(func, start) { + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + rest = Array(length); + + while (++index < length) { + rest[index] = args[start + index]; + } + switch (start) { + case 0: return func.call(this, rest); + case 1: return func.call(this, args[0], rest); + case 2: return func.call(this, args[0], args[1], rest); + } + var otherArgs = Array(start + 1); + index = -1; + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = rest; + return func.apply(this, otherArgs); + }; +} + +module.exports = restParam; + +},{}],63:[function(require,module,exports){ +var baseCreate = require('./baseCreate'), + baseLodash = require('./baseLodash'); + +/** Used as references for `-Infinity` and `Infinity`. */ +var POSITIVE_INFINITY = Number.POSITIVE_INFINITY; + +/** + * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. + * + * @private + * @param {*} value The value to wrap. + */ +function LazyWrapper(value) { + this.__wrapped__ = value; + this.__actions__ = []; + this.__dir__ = 1; + this.__filtered__ = false; + this.__iteratees__ = []; + this.__takeCount__ = POSITIVE_INFINITY; + this.__views__ = []; +} + +LazyWrapper.prototype = baseCreate(baseLodash.prototype); +LazyWrapper.prototype.constructor = LazyWrapper; + +module.exports = LazyWrapper; + +},{"./baseCreate":73,"./baseLodash":85}],64:[function(require,module,exports){ +var baseCreate = require('./baseCreate'), + baseLodash = require('./baseLodash'); + +/** + * The base constructor for creating `lodash` wrapper objects. + * + * @private + * @param {*} value The value to wrap. + * @param {boolean} [chainAll] Enable chaining for all wrapper methods. + * @param {Array} [actions=[]] Actions to peform to resolve the unwrapped value. + */ +function LodashWrapper(value, chainAll, actions) { + this.__wrapped__ = value; + this.__actions__ = actions || []; + this.__chain__ = !!chainAll; +} + +LodashWrapper.prototype = baseCreate(baseLodash.prototype); +LodashWrapper.prototype.constructor = LodashWrapper; + +module.exports = LodashWrapper; + +},{"./baseCreate":73,"./baseLodash":85}],65:[function(require,module,exports){ +/** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ +function arrayCopy(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; +} + +module.exports = arrayCopy; + +},{}],66:[function(require,module,exports){ +/** + * A specialized version of `_.forEach` for arrays without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ +function arrayEach(array, iteratee) { + var index = -1, + length = array.length; + + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; +} + +module.exports = arrayEach; + +},{}],67:[function(require,module,exports){ +/** + * A specialized version of `_.map` for arrays without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function arrayMap(array, iteratee) { + var index = -1, + length = array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; +} + +module.exports = arrayMap; + +},{}],68:[function(require,module,exports){ +/** + * A specialized version of `_.some` for arrays without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array} array The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function arraySome(array, predicate) { + var index = -1, + length = array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; +} + +module.exports = arraySome; + +},{}],69:[function(require,module,exports){ +var baseCopy = require('./baseCopy'), + keys = require('../object/keys'); + +/** + * The base implementation of `_.assign` without support for argument juggling, + * multiple sources, and `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ +function baseAssign(object, source) { + return source == null + ? object + : baseCopy(source, keys(source), object); +} + +module.exports = baseAssign; + +},{"../object/keys":152,"./baseCopy":72}],70:[function(require,module,exports){ +var baseMatches = require('./baseMatches'), + baseMatchesProperty = require('./baseMatchesProperty'), + bindCallback = require('./bindCallback'), + identity = require('../utility/identity'), + property = require('../utility/property'); + +/** + * The base implementation of `_.callback` which supports specifying the + * number of arguments to provide to `func`. + * + * @private + * @param {*} [func=_.identity] The value to convert to a callback. + * @param {*} [thisArg] The `this` binding of `func`. + * @param {number} [argCount] The number of arguments to provide to `func`. + * @returns {Function} Returns the callback. + */ +function baseCallback(func, thisArg, argCount) { + var type = typeof func; + if (type == 'function') { + return thisArg === undefined + ? func + : bindCallback(func, thisArg, argCount); + } + if (func == null) { + return identity; + } + if (type == 'object') { + return baseMatches(func); + } + return thisArg === undefined + ? property(func) + : baseMatchesProperty(func, thisArg); +} + +module.exports = baseCallback; + +},{"../utility/identity":157,"../utility/property":159,"./baseMatches":87,"./baseMatchesProperty":88,"./bindCallback":97}],71:[function(require,module,exports){ +var arrayCopy = require('./arrayCopy'), + arrayEach = require('./arrayEach'), + baseAssign = require('./baseAssign'), + baseForOwn = require('./baseForOwn'), + initCloneArray = require('./initCloneArray'), + initCloneByTag = require('./initCloneByTag'), + initCloneObject = require('./initCloneObject'), + isArray = require('../lang/isArray'), + isHostObject = require('./isHostObject'), + isObject = require('../lang/isObject'); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to identify `toStringTag` values supported by `_.clone`. */ +var cloneableTags = {}; +cloneableTags[argsTag] = cloneableTags[arrayTag] = +cloneableTags[arrayBufferTag] = cloneableTags[boolTag] = +cloneableTags[dateTag] = cloneableTags[float32Tag] = +cloneableTags[float64Tag] = cloneableTags[int8Tag] = +cloneableTags[int16Tag] = cloneableTags[int32Tag] = +cloneableTags[numberTag] = cloneableTags[objectTag] = +cloneableTags[regexpTag] = cloneableTags[stringTag] = +cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = +cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; +cloneableTags[errorTag] = cloneableTags[funcTag] = +cloneableTags[mapTag] = cloneableTags[setTag] = +cloneableTags[weakMapTag] = false; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** + * The base implementation of `_.clone` without support for argument juggling + * and `this` binding `customizer` functions. + * + * @private + * @param {*} value The value to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @param {Function} [customizer] The function to customize cloning values. + * @param {string} [key] The key of `value`. + * @param {Object} [object] The object `value` belongs to. + * @param {Array} [stackA=[]] Tracks traversed source objects. + * @param {Array} [stackB=[]] Associates clones with source counterparts. + * @returns {*} Returns the cloned value. + */ +function baseClone(value, isDeep, customizer, key, object, stackA, stackB) { + var result; + if (customizer) { + result = object ? customizer(value, key, object) : customizer(value); + } + if (result !== undefined) { + return result; + } + if (!isObject(value)) { + return value; + } + var isArr = isArray(value); + if (isArr) { + result = initCloneArray(value); + if (!isDeep) { + return arrayCopy(value, result); + } + } else { + var tag = objToString.call(value), + isFunc = tag == funcTag; + + if (tag == objectTag || tag == argsTag || (isFunc && !object)) { + if (isHostObject(value)) { + return object ? value : {}; + } + result = initCloneObject(isFunc ? {} : value); + if (!isDeep) { + return baseAssign(result, value); + } + } else { + return cloneableTags[tag] + ? initCloneByTag(value, tag, isDeep) + : (object ? value : {}); + } + } + // Check for circular references and return its corresponding clone. + stackA || (stackA = []); + stackB || (stackB = []); + + var length = stackA.length; + while (length--) { + if (stackA[length] == value) { + return stackB[length]; + } + } + // Add the source value to the stack of traversed objects and associate it with its clone. + stackA.push(value); + stackB.push(result); + + // Recursively populate clone (susceptible to call stack limits). + (isArr ? arrayEach : baseForOwn)(value, function(subValue, key) { + result[key] = baseClone(subValue, isDeep, customizer, key, value, stackA, stackB); + }); + return result; +} + +module.exports = baseClone; + +},{"../lang/isArray":143,"../lang/isObject":147,"./arrayCopy":65,"./arrayEach":66,"./baseAssign":69,"./baseForOwn":79,"./initCloneArray":119,"./initCloneByTag":120,"./initCloneObject":121,"./isHostObject":123}],72:[function(require,module,exports){ +/** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property names to copy. + * @param {Object} [object={}] The object to copy properties to. + * @returns {Object} Returns `object`. + */ +function baseCopy(source, props, object) { + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + object[key] = source[key]; + } + return object; +} + +module.exports = baseCopy; + +},{}],73:[function(require,module,exports){ +var isObject = require('../lang/isObject'); + +/** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} prototype The object to inherit from. + * @returns {Object} Returns the new object. + */ +var baseCreate = (function() { + function object() {} + return function(prototype) { + if (isObject(prototype)) { + object.prototype = prototype; + var result = new object; + object.prototype = undefined; + } + return result || {}; + }; +}()); + +module.exports = baseCreate; + +},{"../lang/isObject":147}],74:[function(require,module,exports){ +var baseForOwn = require('./baseForOwn'), + createBaseEach = require('./createBaseEach'); + +/** + * The base implementation of `_.forEach` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object|string} Returns `collection`. + */ +var baseEach = createBaseEach(baseForOwn); + +module.exports = baseEach; + +},{"./baseForOwn":79,"./createBaseEach":101}],75:[function(require,module,exports){ +/** + * The base implementation of `_.find`, `_.findLast`, `_.findKey`, and `_.findLastKey`, + * without support for callback shorthands and `this` binding, which iterates + * over `collection` using the provided `eachFunc`. + * + * @private + * @param {Array|Object|string} collection The collection to search. + * @param {Function} predicate The function invoked per iteration. + * @param {Function} eachFunc The function to iterate over `collection`. + * @param {boolean} [retKey] Specify returning the key of the found element + * instead of the element itself. + * @returns {*} Returns the found element or its key, else `undefined`. + */ +function baseFind(collection, predicate, eachFunc, retKey) { + var result; + eachFunc(collection, function(value, key, collection) { + if (predicate(value, key, collection)) { + result = retKey ? key : value; + return false; + } + }); + return result; +} + +module.exports = baseFind; + +},{}],76:[function(require,module,exports){ +/** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for callback shorthands and `this` binding. + * + * @private + * @param {Array} array The array to search. + * @param {Function} predicate The function invoked per iteration. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseFindIndex(array, predicate, fromRight) { + var length = array.length, + index = fromRight ? length : -1; + + while ((fromRight ? index-- : ++index < length)) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; +} + +module.exports = baseFindIndex; + +},{}],77:[function(require,module,exports){ +var createBaseFor = require('./createBaseFor'); + +/** + * The base implementation of `baseForIn` and `baseForOwn` which iterates + * over `object` properties returned by `keysFunc` invoking `iteratee` for + * each property. Iteratee functions may exit iteration early by explicitly + * returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ +var baseFor = createBaseFor(); + +module.exports = baseFor; + +},{"./createBaseFor":102}],78:[function(require,module,exports){ +var baseFor = require('./baseFor'), + keysIn = require('../object/keysIn'); + +/** + * The base implementation of `_.forIn` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ +function baseForIn(object, iteratee) { + return baseFor(object, iteratee, keysIn); +} + +module.exports = baseForIn; + +},{"../object/keysIn":153,"./baseFor":77}],79:[function(require,module,exports){ +var baseFor = require('./baseFor'), + keys = require('../object/keys'); + +/** + * The base implementation of `_.forOwn` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ +function baseForOwn(object, iteratee) { + return baseFor(object, iteratee, keys); +} + +module.exports = baseForOwn; + +},{"../object/keys":152,"./baseFor":77}],80:[function(require,module,exports){ +var toObject = require('./toObject'); + +/** + * The base implementation of `get` without support for string paths + * and default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array} path The path of the property to get. + * @param {string} [pathKey] The key representation of path. + * @returns {*} Returns the resolved value. + */ +function baseGet(object, path, pathKey) { + if (object == null) { + return; + } + object = toObject(object); + if (pathKey !== undefined && pathKey in object) { + path = [pathKey]; + } + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = toObject(object)[path[index++]]; + } + return (index && index == length) ? object : undefined; +} + +module.exports = baseGet; + +},{"./toObject":138}],81:[function(require,module,exports){ +var indexOfNaN = require('./indexOfNaN'); + +/** + * The base implementation of `_.indexOf` without support for binary searches. + * + * @private + * @param {Array} array The array to search. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseIndexOf(array, value, fromIndex) { + if (value !== value) { + return indexOfNaN(array, fromIndex); + } + var index = fromIndex - 1, + length = array.length; + + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; +} + +module.exports = baseIndexOf; + +},{"./indexOfNaN":118}],82:[function(require,module,exports){ +var baseIsEqualDeep = require('./baseIsEqualDeep'), + isObject = require('../lang/isObject'), + isObjectLike = require('./isObjectLike'); + +/** + * The base implementation of `_.isEqual` without support for `this` binding + * `customizer` functions. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {Function} [customizer] The function to customize comparing values. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA] Tracks traversed `value` objects. + * @param {Array} [stackB] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ +function baseIsEqual(value, other, customizer, isLoose, stackA, stackB) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB); +} + +module.exports = baseIsEqual; + +},{"../lang/isObject":147,"./baseIsEqualDeep":83,"./isObjectLike":129}],83:[function(require,module,exports){ +var equalArrays = require('./equalArrays'), + equalByTag = require('./equalByTag'), + equalObjects = require('./equalObjects'), + isArray = require('../lang/isArray'), + isHostObject = require('./isHostObject'), + isTypedArray = require('../lang/isTypedArray'); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + objectTag = '[object Object]'; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Function} [customizer] The function to customize comparing objects. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA=[]] Tracks traversed `value` objects. + * @param {Array} [stackB=[]] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = arrayTag, + othTag = arrayTag; + + if (!objIsArr) { + objTag = objToString.call(object); + if (objTag == argsTag) { + objTag = objectTag; + } else if (objTag != objectTag) { + objIsArr = isTypedArray(object); + } + } + if (!othIsArr) { + othTag = objToString.call(other); + if (othTag == argsTag) { + othTag = objectTag; + } else if (othTag != objectTag) { + othIsArr = isTypedArray(other); + } + } + var objIsObj = objTag == objectTag && !isHostObject(object), + othIsObj = othTag == objectTag && !isHostObject(other), + isSameTag = objTag == othTag; + + if (isSameTag && !(objIsArr || objIsObj)) { + return equalByTag(object, other, objTag); + } + if (!isLoose) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, isLoose, stackA, stackB); + } + } + if (!isSameTag) { + return false; + } + // Assume cyclic values are equal. + // For more information on detecting circular references see https://es5.github.io/#JO. + stackA || (stackA = []); + stackB || (stackB = []); + + var length = stackA.length; + while (length--) { + if (stackA[length] == object) { + return stackB[length] == other; + } + } + // Add `object` and `other` to the stack of traversed objects. + stackA.push(object); + stackB.push(other); + + var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB); + + stackA.pop(); + stackB.pop(); + + return result; +} + +module.exports = baseIsEqualDeep; + +},{"../lang/isArray":143,"../lang/isTypedArray":150,"./equalArrays":110,"./equalByTag":111,"./equalObjects":112,"./isHostObject":123}],84:[function(require,module,exports){ +var baseIsEqual = require('./baseIsEqual'), + toObject = require('./toObject'); + +/** + * The base implementation of `_.isMatch` without support for callback + * shorthands and `this` binding. + * + * @private + * @param {Object} object The object to inspect. + * @param {Array} matchData The propery names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparing objects. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ +function baseIsMatch(object, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; + + if (object == null) { + return !length; + } + object = toObject(object); + while (index--) { + var data = matchData[index]; + if ((noCustomizer && data[2]) + ? data[1] !== object[data[0]] + : !(data[0] in object) + ) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; + + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var result = customizer ? customizer(objValue, srcValue, key) : undefined; + if (!(result === undefined ? baseIsEqual(srcValue, objValue, customizer, true) : result)) { + return false; + } + } + } + return true; +} + +module.exports = baseIsMatch; + +},{"./baseIsEqual":82,"./toObject":138}],85:[function(require,module,exports){ +/** + * The function whose prototype all chaining wrappers inherit from. + * + * @private + */ +function baseLodash() { + // No operation performed. +} + +module.exports = baseLodash; + +},{}],86:[function(require,module,exports){ +var baseEach = require('./baseEach'), + isArrayLike = require('./isArrayLike'); + +/** + * The base implementation of `_.map` without support for callback shorthands + * and `this` binding. + * + * @private + * @param {Array|Object|string} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function baseMap(collection, iteratee) { + var index = -1, + result = isArrayLike(collection) ? Array(collection.length) : []; + + baseEach(collection, function(value, key, collection) { + result[++index] = iteratee(value, key, collection); + }); + return result; +} + +module.exports = baseMap; + +},{"./baseEach":74,"./isArrayLike":122}],87:[function(require,module,exports){ +var baseIsMatch = require('./baseIsMatch'), + getMatchData = require('./getMatchData'), + toObject = require('./toObject'); + +/** + * The base implementation of `_.matches` which does not clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new function. + */ +function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + var key = matchData[0][0], + value = matchData[0][1]; + + return function(object) { + if (object == null) { + return false; + } + object = toObject(object); + return object[key] === value && (value !== undefined || (key in object)); + }; + } + return function(object) { + return baseIsMatch(object, matchData); + }; +} + +module.exports = baseMatches; + +},{"./baseIsMatch":84,"./getMatchData":116,"./toObject":138}],88:[function(require,module,exports){ +var baseGet = require('./baseGet'), + baseIsEqual = require('./baseIsEqual'), + baseSlice = require('./baseSlice'), + isArray = require('../lang/isArray'), + isKey = require('./isKey'), + isStrictComparable = require('./isStrictComparable'), + last = require('../array/last'), + toObject = require('./toObject'), + toPath = require('./toPath'); + +/** + * The base implementation of `_.matchesProperty` which does not clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to compare. + * @returns {Function} Returns the new function. + */ +function baseMatchesProperty(path, srcValue) { + var isArr = isArray(path), + isCommon = isKey(path) && isStrictComparable(srcValue), + pathKey = (path + ''); + + path = toPath(path); + return function(object) { + if (object == null) { + return false; + } + var key = pathKey; + object = toObject(object); + if ((isArr || !isCommon) && !(key in object)) { + object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1)); + if (object == null) { + return false; + } + key = last(path); + object = toObject(object); + } + return object[key] === srcValue + ? (srcValue !== undefined || (key in object)) + : baseIsEqual(srcValue, object[key], undefined, true); + }; +} + +module.exports = baseMatchesProperty; + +},{"../array/last":53,"../lang/isArray":143,"./baseGet":80,"./baseIsEqual":82,"./baseSlice":92,"./isKey":126,"./isStrictComparable":130,"./toObject":138,"./toPath":139}],89:[function(require,module,exports){ +var toObject = require('./toObject'); + +/** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new function. + */ +function baseProperty(key) { + return function(object) { + return object == null ? undefined : toObject(object)[key]; + }; +} + +module.exports = baseProperty; + +},{"./toObject":138}],90:[function(require,module,exports){ +var baseGet = require('./baseGet'), + toPath = require('./toPath'); + +/** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new function. + */ +function basePropertyDeep(path) { + var pathKey = (path + ''); + path = toPath(path); + return function(object) { + return baseGet(object, path, pathKey); + }; +} + +module.exports = basePropertyDeep; + +},{"./baseGet":80,"./toPath":139}],91:[function(require,module,exports){ +var identity = require('../utility/identity'), + metaMap = require('./metaMap'); + +/** + * The base implementation of `setData` without support for hot loop detection. + * + * @private + * @param {Function} func The function to associate metadata with. + * @param {*} data The metadata. + * @returns {Function} Returns `func`. + */ +var baseSetData = !metaMap ? identity : function(func, data) { + metaMap.set(func, data); + return func; +}; + +module.exports = baseSetData; + +},{"../utility/identity":157,"./metaMap":132}],92:[function(require,module,exports){ +/** + * The base implementation of `_.slice` without an iteratee call guard. + * + * @private + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ +function baseSlice(array, start, end) { + var index = -1, + length = array.length; + + start = start == null ? 0 : (+start || 0); + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = (end === undefined || end > length) ? length : (+end || 0); + if (end < 0) { + end += length; + } + length = start > end ? 0 : ((end - start) >>> 0); + start >>>= 0; + + var result = Array(length); + while (++index < length) { + result[index] = array[index + start]; + } + return result; +} + +module.exports = baseSlice; + +},{}],93:[function(require,module,exports){ +/** + * Converts `value` to a string if it's not one. An empty string is returned + * for `null` or `undefined` values. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ +function baseToString(value) { + return value == null ? '' : (value + ''); +} + +module.exports = baseToString; + +},{}],94:[function(require,module,exports){ +/** + * The base implementation of `_.values` and `_.valuesIn` which creates an + * array of `object` property values corresponding to the property names + * of `props`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} props The property names to get values for. + * @returns {Object} Returns the array of property values. + */ +function baseValues(object, props) { + var index = -1, + length = props.length, + result = Array(length); + + while (++index < length) { + result[index] = object[props[index]]; + } + return result; +} + +module.exports = baseValues; + +},{}],95:[function(require,module,exports){ +var binaryIndexBy = require('./binaryIndexBy'), + identity = require('../utility/identity'); + +/** Used as references for the maximum length and index of an array. */ +var MAX_ARRAY_LENGTH = 4294967295, + HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; + +/** + * Performs a binary search of `array` to determine the index at which `value` + * should be inserted into `array` in order to maintain its sort order. + * + * @private + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {boolean} [retHighest] Specify returning the highest qualified index. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + */ +function binaryIndex(array, value, retHighest) { + var low = 0, + high = array ? array.length : low; + + if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) { + while (low < high) { + var mid = (low + high) >>> 1, + computed = array[mid]; + + if ((retHighest ? (computed <= value) : (computed < value)) && computed !== null) { + low = mid + 1; + } else { + high = mid; + } + } + return high; + } + return binaryIndexBy(array, value, identity, retHighest); +} + +module.exports = binaryIndex; + +},{"../utility/identity":157,"./binaryIndexBy":96}],96:[function(require,module,exports){ +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeFloor = Math.floor, + nativeMin = Math.min; + +/** Used as references for the maximum length and index of an array. */ +var MAX_ARRAY_LENGTH = 4294967295, + MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1; + +/** + * This function is like `binaryIndex` except that it invokes `iteratee` for + * `value` and each element of `array` to compute their sort ranking. The + * iteratee is invoked with one argument; (value). + * + * @private + * @param {Array} array The sorted array to inspect. + * @param {*} value The value to evaluate. + * @param {Function} iteratee The function invoked per iteration. + * @param {boolean} [retHighest] Specify returning the highest qualified index. + * @returns {number} Returns the index at which `value` should be inserted + * into `array`. + */ +function binaryIndexBy(array, value, iteratee, retHighest) { + value = iteratee(value); + + var low = 0, + high = array ? array.length : 0, + valIsNaN = value !== value, + valIsNull = value === null, + valIsUndef = value === undefined; + + while (low < high) { + var mid = nativeFloor((low + high) / 2), + computed = iteratee(array[mid]), + isDef = computed !== undefined, + isReflexive = computed === computed; + + if (valIsNaN) { + var setLow = isReflexive || retHighest; + } else if (valIsNull) { + setLow = isReflexive && isDef && (retHighest || computed != null); + } else if (valIsUndef) { + setLow = isReflexive && (retHighest || isDef); + } else if (computed == null) { + setLow = false; + } else { + setLow = retHighest ? (computed <= value) : (computed < value); + } + if (setLow) { + low = mid + 1; + } else { + high = mid; + } + } + return nativeMin(high, MAX_ARRAY_INDEX); +} + +module.exports = binaryIndexBy; + +},{}],97:[function(require,module,exports){ +var identity = require('../utility/identity'); + +/** + * A specialized version of `baseCallback` which only supports `this` binding + * and specifying the number of arguments to provide to `func`. + * + * @private + * @param {Function} func The function to bind. + * @param {*} thisArg The `this` binding of `func`. + * @param {number} [argCount] The number of arguments to provide to `func`. + * @returns {Function} Returns the callback. + */ +function bindCallback(func, thisArg, argCount) { + if (typeof func != 'function') { + return identity; + } + if (thisArg === undefined) { + return func; + } + switch (argCount) { + case 1: return function(value) { + return func.call(thisArg, value); + }; + case 3: return function(value, index, collection) { + return func.call(thisArg, value, index, collection); + }; + case 4: return function(accumulator, value, index, collection) { + return func.call(thisArg, accumulator, value, index, collection); + }; + case 5: return function(value, other, key, object, source) { + return func.call(thisArg, value, other, key, object, source); + }; + } + return function() { + return func.apply(thisArg, arguments); + }; +} + +module.exports = bindCallback; + +},{"../utility/identity":157}],98:[function(require,module,exports){ +(function (global){ +/** Native method references. */ +var ArrayBuffer = global.ArrayBuffer, + Uint8Array = global.Uint8Array; + +/** + * Creates a clone of the given array buffer. + * + * @private + * @param {ArrayBuffer} buffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ +function bufferClone(buffer) { + var result = new ArrayBuffer(buffer.byteLength), + view = new Uint8Array(result); + + view.set(new Uint8Array(buffer)); + return result; +} + +module.exports = bufferClone; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2J1ZmZlckNsb25lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgQXJyYXlCdWZmZXIgPSBnbG9iYWwuQXJyYXlCdWZmZXIsXG4gICAgVWludDhBcnJheSA9IGdsb2JhbC5VaW50OEFycmF5O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjbG9uZSBvZiB0aGUgZ2l2ZW4gYXJyYXkgYnVmZmVyLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5QnVmZmVyfSBidWZmZXIgVGhlIGFycmF5IGJ1ZmZlciB0byBjbG9uZS5cbiAqIEByZXR1cm5zIHtBcnJheUJ1ZmZlcn0gUmV0dXJucyB0aGUgY2xvbmVkIGFycmF5IGJ1ZmZlci5cbiAqL1xuZnVuY3Rpb24gYnVmZmVyQ2xvbmUoYnVmZmVyKSB7XG4gIHZhciByZXN1bHQgPSBuZXcgQXJyYXlCdWZmZXIoYnVmZmVyLmJ5dGVMZW5ndGgpLFxuICAgICAgdmlldyA9IG5ldyBVaW50OEFycmF5KHJlc3VsdCk7XG5cbiAgdmlldy5zZXQobmV3IFVpbnQ4QXJyYXkoYnVmZmVyKSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYnVmZmVyQ2xvbmU7XG4iXX0= +},{}],99:[function(require,module,exports){ +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Creates an array that is the composition of partially applied arguments, + * placeholders, and provided arguments into a single array of arguments. + * + * @private + * @param {Array|Object} args The provided arguments. + * @param {Array} partials The arguments to prepend to those provided. + * @param {Array} holders The `partials` placeholder indexes. + * @returns {Array} Returns the new array of composed arguments. + */ +function composeArgs(args, partials, holders) { + var holdersLength = holders.length, + argsIndex = -1, + argsLength = nativeMax(args.length - holdersLength, 0), + leftIndex = -1, + leftLength = partials.length, + result = Array(leftLength + argsLength); + + while (++leftIndex < leftLength) { + result[leftIndex] = partials[leftIndex]; + } + while (++argsIndex < holdersLength) { + result[holders[argsIndex]] = args[argsIndex]; + } + while (argsLength--) { + result[leftIndex++] = args[argsIndex++]; + } + return result; +} + +module.exports = composeArgs; + +},{}],100:[function(require,module,exports){ +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * This function is like `composeArgs` except that the arguments composition + * is tailored for `_.partialRight`. + * + * @private + * @param {Array|Object} args The provided arguments. + * @param {Array} partials The arguments to append to those provided. + * @param {Array} holders The `partials` placeholder indexes. + * @returns {Array} Returns the new array of composed arguments. + */ +function composeArgsRight(args, partials, holders) { + var holdersIndex = -1, + holdersLength = holders.length, + argsIndex = -1, + argsLength = nativeMax(args.length - holdersLength, 0), + rightIndex = -1, + rightLength = partials.length, + result = Array(argsLength + rightLength); + + while (++argsIndex < argsLength) { + result[argsIndex] = args[argsIndex]; + } + var offset = argsIndex; + while (++rightIndex < rightLength) { + result[offset + rightIndex] = partials[rightIndex]; + } + while (++holdersIndex < holdersLength) { + result[offset + holders[holdersIndex]] = args[argsIndex++]; + } + return result; +} + +module.exports = composeArgsRight; + +},{}],101:[function(require,module,exports){ +var getLength = require('./getLength'), + isLength = require('./isLength'), + toObject = require('./toObject'); + +/** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + var length = collection ? getLength(collection) : 0; + if (!isLength(length)) { + return eachFunc(collection, iteratee); + } + var index = fromRight ? length : -1, + iterable = toObject(collection); + + while ((fromRight ? index-- : ++index < length)) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; +} + +module.exports = createBaseEach; + +},{"./getLength":115,"./isLength":128,"./toObject":138}],102:[function(require,module,exports){ +var toObject = require('./toObject'); + +/** + * Creates a base function for `_.forIn` or `_.forInRight`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var iterable = toObject(object), + props = keysFunc(object), + length = props.length, + index = fromRight ? length : -1; + + while ((fromRight ? index-- : ++index < length)) { + var key = props[index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; +} + +module.exports = createBaseFor; + +},{"./toObject":138}],103:[function(require,module,exports){ +(function (global){ +var createCtorWrapper = require('./createCtorWrapper'); + +/** + * Creates a function that wraps `func` and invokes it with the `this` + * binding of `thisArg`. + * + * @private + * @param {Function} func The function to bind. + * @param {*} [thisArg] The `this` binding of `func`. + * @returns {Function} Returns the new bound function. + */ +function createBindWrapper(func, thisArg) { + var Ctor = createCtorWrapper(func); + + function wrapper() { + var fn = (this && this !== global && this instanceof wrapper) ? Ctor : func; + return fn.apply(thisArg, arguments); + } + return wrapper; +} + +module.exports = createBindWrapper; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2NyZWF0ZUJpbmRXcmFwcGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgY3JlYXRlQ3RvcldyYXBwZXIgPSByZXF1aXJlKCcuL2NyZWF0ZUN0b3JXcmFwcGVyJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIGFuZCBpbnZva2VzIGl0IHdpdGggdGhlIGB0aGlzYFxuICogYmluZGluZyBvZiBgdGhpc0FyZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGJpbmQuXG4gKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYm91bmQgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUJpbmRXcmFwcGVyKGZ1bmMsIHRoaXNBcmcpIHtcbiAgdmFyIEN0b3IgPSBjcmVhdGVDdG9yV3JhcHBlcihmdW5jKTtcblxuICBmdW5jdGlvbiB3cmFwcGVyKCkge1xuICAgIHZhciBmbiA9ICh0aGlzICYmIHRoaXMgIT09IGdsb2JhbCAmJiB0aGlzIGluc3RhbmNlb2Ygd3JhcHBlcikgPyBDdG9yIDogZnVuYztcbiAgICByZXR1cm4gZm4uYXBwbHkodGhpc0FyZywgYXJndW1lbnRzKTtcbiAgfVxuICByZXR1cm4gd3JhcHBlcjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVCaW5kV3JhcHBlcjtcbiJdfQ== +},{"./createCtorWrapper":104}],104:[function(require,module,exports){ +var baseCreate = require('./baseCreate'), + isObject = require('../lang/isObject'); + +/** + * Creates a function that produces an instance of `Ctor` regardless of + * whether it was invoked as part of a `new` expression or by `call` or `apply`. + * + * @private + * @param {Function} Ctor The constructor to wrap. + * @returns {Function} Returns the new wrapped function. + */ +function createCtorWrapper(Ctor) { + return function() { + // Use a `switch` statement to work with class constructors. + // See http://ecma-international.org/ecma-262/6.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist + // for more details. + var args = arguments; + switch (args.length) { + case 0: return new Ctor; + case 1: return new Ctor(args[0]); + case 2: return new Ctor(args[0], args[1]); + case 3: return new Ctor(args[0], args[1], args[2]); + case 4: return new Ctor(args[0], args[1], args[2], args[3]); + case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]); + case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); + case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); + } + var thisBinding = baseCreate(Ctor.prototype), + result = Ctor.apply(thisBinding, args); + + // Mimic the constructor's `return` behavior. + // See https://es5.github.io/#x13.2.2 for more details. + return isObject(result) ? result : thisBinding; + }; +} + +module.exports = createCtorWrapper; + +},{"../lang/isObject":147,"./baseCreate":73}],105:[function(require,module,exports){ +var baseCallback = require('./baseCallback'), + baseFind = require('./baseFind'), + baseFindIndex = require('./baseFindIndex'), + isArray = require('../lang/isArray'); + +/** + * Creates a `_.find` or `_.findLast` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new find function. + */ +function createFind(eachFunc, fromRight) { + return function(collection, predicate, thisArg) { + predicate = baseCallback(predicate, thisArg, 3); + if (isArray(collection)) { + var index = baseFindIndex(collection, predicate, fromRight); + return index > -1 ? collection[index] : undefined; + } + return baseFind(collection, predicate, eachFunc); + }; +} + +module.exports = createFind; + +},{"../lang/isArray":143,"./baseCallback":70,"./baseFind":75,"./baseFindIndex":76}],106:[function(require,module,exports){ +var bindCallback = require('./bindCallback'), + isArray = require('../lang/isArray'); + +/** + * Creates a function for `_.forEach` or `_.forEachRight`. + * + * @private + * @param {Function} arrayFunc The function to iterate over an array. + * @param {Function} eachFunc The function to iterate over a collection. + * @returns {Function} Returns the new each function. + */ +function createForEach(arrayFunc, eachFunc) { + return function(collection, iteratee, thisArg) { + return (typeof iteratee == 'function' && thisArg === undefined && isArray(collection)) + ? arrayFunc(collection, iteratee) + : eachFunc(collection, bindCallback(iteratee, thisArg, 3)); + }; +} + +module.exports = createForEach; + +},{"../lang/isArray":143,"./bindCallback":97}],107:[function(require,module,exports){ +(function (global){ +var arrayCopy = require('./arrayCopy'), + composeArgs = require('./composeArgs'), + composeArgsRight = require('./composeArgsRight'), + createCtorWrapper = require('./createCtorWrapper'), + isLaziable = require('./isLaziable'), + reorder = require('./reorder'), + replaceHolders = require('./replaceHolders'), + setData = require('./setData'); + +/** Used to compose bitmasks for wrapper metadata. */ +var BIND_FLAG = 1, + BIND_KEY_FLAG = 2, + CURRY_BOUND_FLAG = 4, + CURRY_FLAG = 8, + CURRY_RIGHT_FLAG = 16, + PARTIAL_FLAG = 32, + PARTIAL_RIGHT_FLAG = 64, + ARY_FLAG = 128; + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Creates a function that wraps `func` and invokes it with optional `this` + * binding of, partial application, and currying. + * + * @private + * @param {Function|string} func The function or method name to reference. + * @param {number} bitmask The bitmask of flags. See `createWrapper` for more details. + * @param {*} [thisArg] The `this` binding of `func`. + * @param {Array} [partials] The arguments to prepend to those provided to the new function. + * @param {Array} [holders] The `partials` placeholder indexes. + * @param {Array} [partialsRight] The arguments to append to those provided to the new function. + * @param {Array} [holdersRight] The `partialsRight` placeholder indexes. + * @param {Array} [argPos] The argument positions of the new function. + * @param {number} [ary] The arity cap of `func`. + * @param {number} [arity] The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ +function createHybridWrapper(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { + var isAry = bitmask & ARY_FLAG, + isBind = bitmask & BIND_FLAG, + isBindKey = bitmask & BIND_KEY_FLAG, + isCurry = bitmask & CURRY_FLAG, + isCurryBound = bitmask & CURRY_BOUND_FLAG, + isCurryRight = bitmask & CURRY_RIGHT_FLAG, + Ctor = isBindKey ? undefined : createCtorWrapper(func); + + function wrapper() { + // Avoid `arguments` object use disqualifying optimizations by + // converting it to an array before providing it to other functions. + var length = arguments.length, + index = length, + args = Array(length); + + while (index--) { + args[index] = arguments[index]; + } + if (partials) { + args = composeArgs(args, partials, holders); + } + if (partialsRight) { + args = composeArgsRight(args, partialsRight, holdersRight); + } + if (isCurry || isCurryRight) { + var placeholder = wrapper.placeholder, + argsHolders = replaceHolders(args, placeholder); + + length -= argsHolders.length; + if (length < arity) { + var newArgPos = argPos ? arrayCopy(argPos) : undefined, + newArity = nativeMax(arity - length, 0), + newsHolders = isCurry ? argsHolders : undefined, + newHoldersRight = isCurry ? undefined : argsHolders, + newPartials = isCurry ? args : undefined, + newPartialsRight = isCurry ? undefined : args; + + bitmask |= (isCurry ? PARTIAL_FLAG : PARTIAL_RIGHT_FLAG); + bitmask &= ~(isCurry ? PARTIAL_RIGHT_FLAG : PARTIAL_FLAG); + + if (!isCurryBound) { + bitmask &= ~(BIND_FLAG | BIND_KEY_FLAG); + } + var newData = [func, bitmask, thisArg, newPartials, newsHolders, newPartialsRight, newHoldersRight, newArgPos, ary, newArity], + result = createHybridWrapper.apply(undefined, newData); + + if (isLaziable(func)) { + setData(result, newData); + } + result.placeholder = placeholder; + return result; + } + } + var thisBinding = isBind ? thisArg : this, + fn = isBindKey ? thisBinding[func] : func; + + if (argPos) { + args = reorder(args, argPos); + } + if (isAry && ary < args.length) { + args.length = ary; + } + if (this && this !== global && this instanceof wrapper) { + fn = Ctor || createCtorWrapper(func); + } + return fn.apply(thisBinding, args); + } + return wrapper; +} + +module.exports = createHybridWrapper; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2NyZWF0ZUh5YnJpZFdyYXBwZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYXJyYXlDb3B5ID0gcmVxdWlyZSgnLi9hcnJheUNvcHknKSxcbiAgICBjb21wb3NlQXJncyA9IHJlcXVpcmUoJy4vY29tcG9zZUFyZ3MnKSxcbiAgICBjb21wb3NlQXJnc1JpZ2h0ID0gcmVxdWlyZSgnLi9jb21wb3NlQXJnc1JpZ2h0JyksXG4gICAgY3JlYXRlQ3RvcldyYXBwZXIgPSByZXF1aXJlKCcuL2NyZWF0ZUN0b3JXcmFwcGVyJyksXG4gICAgaXNMYXppYWJsZSA9IHJlcXVpcmUoJy4vaXNMYXppYWJsZScpLFxuICAgIHJlb3JkZXIgPSByZXF1aXJlKCcuL3Jlb3JkZXInKSxcbiAgICByZXBsYWNlSG9sZGVycyA9IHJlcXVpcmUoJy4vcmVwbGFjZUhvbGRlcnMnKSxcbiAgICBzZXREYXRhID0gcmVxdWlyZSgnLi9zZXREYXRhJyk7XG5cbi8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIHdyYXBwZXIgbWV0YWRhdGEuICovXG52YXIgQklORF9GTEFHID0gMSxcbiAgICBCSU5EX0tFWV9GTEFHID0gMixcbiAgICBDVVJSWV9CT1VORF9GTEFHID0gNCxcbiAgICBDVVJSWV9GTEFHID0gOCxcbiAgICBDVVJSWV9SSUdIVF9GTEFHID0gMTYsXG4gICAgUEFSVElBTF9GTEFHID0gMzIsXG4gICAgUEFSVElBTF9SSUdIVF9GTEFHID0gNjQsXG4gICAgQVJZX0ZMQUcgPSAxMjg7XG5cbi8qIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWF4ID0gTWF0aC5tYXg7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIGFuZCBpbnZva2VzIGl0IHdpdGggb3B0aW9uYWwgYHRoaXNgXG4gKiBiaW5kaW5nIG9mLCBwYXJ0aWFsIGFwcGxpY2F0aW9uLCBhbmQgY3VycnlpbmcuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb258c3RyaW5nfSBmdW5jIFRoZSBmdW5jdGlvbiBvciBtZXRob2QgbmFtZSB0byByZWZlcmVuY2UuXG4gKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBvZiBmbGFncy4gU2VlIGBjcmVhdGVXcmFwcGVyYCBmb3IgbW9yZSBkZXRhaWxzLlxuICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAqIEBwYXJhbSB7QXJyYXl9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBwcmVwZW5kIHRvIHRob3NlIHByb3ZpZGVkIHRvIHRoZSBuZXcgZnVuY3Rpb24uXG4gKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc10gVGhlIGBwYXJ0aWFsc2AgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAqIEBwYXJhbSB7QXJyYXl9IFtwYXJ0aWFsc1JpZ2h0XSBUaGUgYXJndW1lbnRzIHRvIGFwcGVuZCB0byB0aG9zZSBwcm92aWRlZCB0byB0aGUgbmV3IGZ1bmN0aW9uLlxuICogQHBhcmFtIHtBcnJheX0gW2hvbGRlcnNSaWdodF0gVGhlIGBwYXJ0aWFsc1JpZ2h0YCBwbGFjZWhvbGRlciBpbmRleGVzLlxuICogQHBhcmFtIHtBcnJheX0gW2FyZ1Bvc10gVGhlIGFyZ3VtZW50IHBvc2l0aW9ucyBvZiB0aGUgbmV3IGZ1bmN0aW9uLlxuICogQHBhcmFtIHtudW1iZXJ9IFthcnldIFRoZSBhcml0eSBjYXAgb2YgYGZ1bmNgLlxuICogQHBhcmFtIHtudW1iZXJ9IFthcml0eV0gVGhlIGFyaXR5IG9mIGBmdW5jYC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHdyYXBwZWQgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUh5YnJpZFdyYXBwZXIoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMsIHBhcnRpYWxzUmlnaHQsIGhvbGRlcnNSaWdodCwgYXJnUG9zLCBhcnksIGFyaXR5KSB7XG4gIHZhciBpc0FyeSA9IGJpdG1hc2sgJiBBUllfRkxBRyxcbiAgICAgIGlzQmluZCA9IGJpdG1hc2sgJiBCSU5EX0ZMQUcsXG4gICAgICBpc0JpbmRLZXkgPSBiaXRtYXNrICYgQklORF9LRVlfRkxBRyxcbiAgICAgIGlzQ3VycnkgPSBiaXRtYXNrICYgQ1VSUllfRkxBRyxcbiAgICAgIGlzQ3VycnlCb3VuZCA9IGJpdG1hc2sgJiBDVVJSWV9CT1VORF9GTEFHLFxuICAgICAgaXNDdXJyeVJpZ2h0ID0gYml0bWFzayAmIENVUlJZX1JJR0hUX0ZMQUcsXG4gICAgICBDdG9yID0gaXNCaW5kS2V5ID8gdW5kZWZpbmVkIDogY3JlYXRlQ3RvcldyYXBwZXIoZnVuYyk7XG5cbiAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAvLyBBdm9pZCBgYXJndW1lbnRzYCBvYmplY3QgdXNlIGRpc3F1YWxpZnlpbmcgb3B0aW1pemF0aW9ucyBieVxuICAgIC8vIGNvbnZlcnRpbmcgaXQgdG8gYW4gYXJyYXkgYmVmb3JlIHByb3ZpZGluZyBpdCB0byBvdGhlciBmdW5jdGlvbnMuXG4gICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXG4gICAgICAgIGluZGV4ID0gbGVuZ3RoLFxuICAgICAgICBhcmdzID0gQXJyYXkobGVuZ3RoKTtcblxuICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICBhcmdzW2luZGV4XSA9IGFyZ3VtZW50c1tpbmRleF07XG4gICAgfVxuICAgIGlmIChwYXJ0aWFscykge1xuICAgICAgYXJncyA9IGNvbXBvc2VBcmdzKGFyZ3MsIHBhcnRpYWxzLCBob2xkZXJzKTtcbiAgICB9XG4gICAgaWYgKHBhcnRpYWxzUmlnaHQpIHtcbiAgICAgIGFyZ3MgPSBjb21wb3NlQXJnc1JpZ2h0KGFyZ3MsIHBhcnRpYWxzUmlnaHQsIGhvbGRlcnNSaWdodCk7XG4gICAgfVxuICAgIGlmIChpc0N1cnJ5IHx8IGlzQ3VycnlSaWdodCkge1xuICAgICAgdmFyIHBsYWNlaG9sZGVyID0gd3JhcHBlci5wbGFjZWhvbGRlcixcbiAgICAgICAgICBhcmdzSG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKGFyZ3MsIHBsYWNlaG9sZGVyKTtcblxuICAgICAgbGVuZ3RoIC09IGFyZ3NIb2xkZXJzLmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGggPCBhcml0eSkge1xuICAgICAgICB2YXIgbmV3QXJnUG9zID0gYXJnUG9zID8gYXJyYXlDb3B5KGFyZ1BvcykgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuZXdBcml0eSA9IG5hdGl2ZU1heChhcml0eSAtIGxlbmd0aCwgMCksXG4gICAgICAgICAgICBuZXdzSG9sZGVycyA9IGlzQ3VycnkgPyBhcmdzSG9sZGVycyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG5ld0hvbGRlcnNSaWdodCA9IGlzQ3VycnkgPyB1bmRlZmluZWQgOiBhcmdzSG9sZGVycyxcbiAgICAgICAgICAgIG5ld1BhcnRpYWxzID0gaXNDdXJyeSA/IGFyZ3MgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuZXdQYXJ0aWFsc1JpZ2h0ID0gaXNDdXJyeSA/IHVuZGVmaW5lZCA6IGFyZ3M7XG5cbiAgICAgICAgYml0bWFzayB8PSAoaXNDdXJyeSA/IFBBUlRJQUxfRkxBRyA6IFBBUlRJQUxfUklHSFRfRkxBRyk7XG4gICAgICAgIGJpdG1hc2sgJj0gfihpc0N1cnJ5ID8gUEFSVElBTF9SSUdIVF9GTEFHIDogUEFSVElBTF9GTEFHKTtcblxuICAgICAgICBpZiAoIWlzQ3VycnlCb3VuZCkge1xuICAgICAgICAgIGJpdG1hc2sgJj0gfihCSU5EX0ZMQUcgfCBCSU5EX0tFWV9GTEFHKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbmV3RGF0YSA9IFtmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBuZXdQYXJ0aWFscywgbmV3c0hvbGRlcnMsIG5ld1BhcnRpYWxzUmlnaHQsIG5ld0hvbGRlcnNSaWdodCwgbmV3QXJnUG9zLCBhcnksIG5ld0FyaXR5XSxcbiAgICAgICAgICAgIHJlc3VsdCA9IGNyZWF0ZUh5YnJpZFdyYXBwZXIuYXBwbHkodW5kZWZpbmVkLCBuZXdEYXRhKTtcblxuICAgICAgICBpZiAoaXNMYXppYWJsZShmdW5jKSkge1xuICAgICAgICAgIHNldERhdGEocmVzdWx0LCBuZXdEYXRhKTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIHRoaXNCaW5kaW5nID0gaXNCaW5kID8gdGhpc0FyZyA6IHRoaXMsXG4gICAgICAgIGZuID0gaXNCaW5kS2V5ID8gdGhpc0JpbmRpbmdbZnVuY10gOiBmdW5jO1xuXG4gICAgaWYgKGFyZ1Bvcykge1xuICAgICAgYXJncyA9IHJlb3JkZXIoYXJncywgYXJnUG9zKTtcbiAgICB9XG4gICAgaWYgKGlzQXJ5ICYmIGFyeSA8IGFyZ3MubGVuZ3RoKSB7XG4gICAgICBhcmdzLmxlbmd0aCA9IGFyeTtcbiAgICB9XG4gICAgaWYgKHRoaXMgJiYgdGhpcyAhPT0gZ2xvYmFsICYmIHRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyKSB7XG4gICAgICBmbiA9IEN0b3IgfHwgY3JlYXRlQ3RvcldyYXBwZXIoZnVuYyk7XG4gICAgfVxuICAgIHJldHVybiBmbi5hcHBseSh0aGlzQmluZGluZywgYXJncyk7XG4gIH1cbiAgcmV0dXJuIHdyYXBwZXI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlSHlicmlkV3JhcHBlcjtcbiJdfQ== +},{"./arrayCopy":65,"./composeArgs":99,"./composeArgsRight":100,"./createCtorWrapper":104,"./isLaziable":127,"./reorder":134,"./replaceHolders":135,"./setData":136}],108:[function(require,module,exports){ +(function (global){ +var createCtorWrapper = require('./createCtorWrapper'); + +/** Used to compose bitmasks for wrapper metadata. */ +var BIND_FLAG = 1; + +/** + * Creates a function that wraps `func` and invokes it with the optional `this` + * binding of `thisArg` and the `partials` prepended to those provided to + * the wrapper. + * + * @private + * @param {Function} func The function to partially apply arguments to. + * @param {number} bitmask The bitmask of flags. See `createWrapper` for more details. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} partials The arguments to prepend to those provided to the new function. + * @returns {Function} Returns the new bound function. + */ +function createPartialWrapper(func, bitmask, thisArg, partials) { + var isBind = bitmask & BIND_FLAG, + Ctor = createCtorWrapper(func); + + function wrapper() { + // Avoid `arguments` object use disqualifying optimizations by + // converting it to an array before providing it `func`. + var argsIndex = -1, + argsLength = arguments.length, + leftIndex = -1, + leftLength = partials.length, + args = Array(leftLength + argsLength); + + while (++leftIndex < leftLength) { + args[leftIndex] = partials[leftIndex]; + } + while (argsLength--) { + args[leftIndex++] = arguments[++argsIndex]; + } + var fn = (this && this !== global && this instanceof wrapper) ? Ctor : func; + return fn.apply(isBind ? thisArg : this, args); + } + return wrapper; +} + +module.exports = createPartialWrapper; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2NyZWF0ZVBhcnRpYWxXcmFwcGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgY3JlYXRlQ3RvcldyYXBwZXIgPSByZXF1aXJlKCcuL2NyZWF0ZUN0b3JXcmFwcGVyJyk7XG5cbi8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIHdyYXBwZXIgbWV0YWRhdGEuICovXG52YXIgQklORF9GTEFHID0gMTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCB3cmFwcyBgZnVuY2AgYW5kIGludm9rZXMgaXQgd2l0aCB0aGUgb3B0aW9uYWwgYHRoaXNgXG4gKiBiaW5kaW5nIG9mIGB0aGlzQXJnYCBhbmQgdGhlIGBwYXJ0aWFsc2AgcHJlcGVuZGVkIHRvIHRob3NlIHByb3ZpZGVkIHRvXG4gKiB0aGUgd3JhcHBlci5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcGFydGlhbGx5IGFwcGx5IGFyZ3VtZW50cyB0by5cbiAqIEBwYXJhbSB7bnVtYmVyfSBiaXRtYXNrIFRoZSBiaXRtYXNrIG9mIGZsYWdzLiBTZWUgYGNyZWF0ZVdyYXBwZXJgIGZvciBtb3JlIGRldGFpbHMuXG4gKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAqIEBwYXJhbSB7QXJyYXl9IHBhcnRpYWxzIFRoZSBhcmd1bWVudHMgdG8gcHJlcGVuZCB0byB0aG9zZSBwcm92aWRlZCB0byB0aGUgbmV3IGZ1bmN0aW9uLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYm91bmQgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVBhcnRpYWxXcmFwcGVyKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzKSB7XG4gIHZhciBpc0JpbmQgPSBiaXRtYXNrICYgQklORF9GTEFHLFxuICAgICAgQ3RvciA9IGNyZWF0ZUN0b3JXcmFwcGVyKGZ1bmMpO1xuXG4gIGZ1bmN0aW9uIHdyYXBwZXIoKSB7XG4gICAgLy8gQXZvaWQgYGFyZ3VtZW50c2Agb2JqZWN0IHVzZSBkaXNxdWFsaWZ5aW5nIG9wdGltaXphdGlvbnMgYnlcbiAgICAvLyBjb252ZXJ0aW5nIGl0IHRvIGFuIGFycmF5IGJlZm9yZSBwcm92aWRpbmcgaXQgYGZ1bmNgLlxuICAgIHZhciBhcmdzSW5kZXggPSAtMSxcbiAgICAgICAgYXJnc0xlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXG4gICAgICAgIGxlZnRJbmRleCA9IC0xLFxuICAgICAgICBsZWZ0TGVuZ3RoID0gcGFydGlhbHMubGVuZ3RoLFxuICAgICAgICBhcmdzID0gQXJyYXkobGVmdExlbmd0aCArIGFyZ3NMZW5ndGgpO1xuXG4gICAgd2hpbGUgKCsrbGVmdEluZGV4IDwgbGVmdExlbmd0aCkge1xuICAgICAgYXJnc1tsZWZ0SW5kZXhdID0gcGFydGlhbHNbbGVmdEluZGV4XTtcbiAgICB9XG4gICAgd2hpbGUgKGFyZ3NMZW5ndGgtLSkge1xuICAgICAgYXJnc1tsZWZ0SW5kZXgrK10gPSBhcmd1bWVudHNbKythcmdzSW5kZXhdO1xuICAgIH1cbiAgICB2YXIgZm4gPSAodGhpcyAmJiB0aGlzICE9PSBnbG9iYWwgJiYgdGhpcyBpbnN0YW5jZW9mIHdyYXBwZXIpID8gQ3RvciA6IGZ1bmM7XG4gICAgcmV0dXJuIGZuLmFwcGx5KGlzQmluZCA/IHRoaXNBcmcgOiB0aGlzLCBhcmdzKTtcbiAgfVxuICByZXR1cm4gd3JhcHBlcjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVQYXJ0aWFsV3JhcHBlcjtcbiJdfQ== +},{"./createCtorWrapper":104}],109:[function(require,module,exports){ +var baseSetData = require('./baseSetData'), + createBindWrapper = require('./createBindWrapper'), + createHybridWrapper = require('./createHybridWrapper'), + createPartialWrapper = require('./createPartialWrapper'), + getData = require('./getData'), + mergeData = require('./mergeData'), + setData = require('./setData'); + +/** Used to compose bitmasks for wrapper metadata. */ +var BIND_FLAG = 1, + BIND_KEY_FLAG = 2, + PARTIAL_FLAG = 32, + PARTIAL_RIGHT_FLAG = 64; + +/** Used as the `TypeError` message for "Functions" methods. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Creates a function that either curries or invokes `func` with optional + * `this` binding and partially applied arguments. + * + * @private + * @param {Function|string} func The function or method name to reference. + * @param {number} bitmask The bitmask of flags. + * The bitmask may be composed of the following flags: + * 1 - `_.bind` + * 2 - `_.bindKey` + * 4 - `_.curry` or `_.curryRight` of a bound function + * 8 - `_.curry` + * 16 - `_.curryRight` + * 32 - `_.partial` + * 64 - `_.partialRight` + * 128 - `_.rearg` + * 256 - `_.ary` + * @param {*} [thisArg] The `this` binding of `func`. + * @param {Array} [partials] The arguments to be partially applied. + * @param {Array} [holders] The `partials` placeholder indexes. + * @param {Array} [argPos] The argument positions of the new function. + * @param {number} [ary] The arity cap of `func`. + * @param {number} [arity] The arity of `func`. + * @returns {Function} Returns the new wrapped function. + */ +function createWrapper(func, bitmask, thisArg, partials, holders, argPos, ary, arity) { + var isBindKey = bitmask & BIND_KEY_FLAG; + if (!isBindKey && typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + var length = partials ? partials.length : 0; + if (!length) { + bitmask &= ~(PARTIAL_FLAG | PARTIAL_RIGHT_FLAG); + partials = holders = undefined; + } + length -= (holders ? holders.length : 0); + if (bitmask & PARTIAL_RIGHT_FLAG) { + var partialsRight = partials, + holdersRight = holders; + + partials = holders = undefined; + } + var data = isBindKey ? undefined : getData(func), + newData = [func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity]; + + if (data) { + mergeData(newData, data); + bitmask = newData[1]; + arity = newData[9]; + } + newData[9] = arity == null + ? (isBindKey ? 0 : func.length) + : (nativeMax(arity - length, 0) || 0); + + if (bitmask == BIND_FLAG) { + var result = createBindWrapper(newData[0], newData[2]); + } else if ((bitmask == PARTIAL_FLAG || bitmask == (BIND_FLAG | PARTIAL_FLAG)) && !newData[4].length) { + result = createPartialWrapper.apply(undefined, newData); + } else { + result = createHybridWrapper.apply(undefined, newData); + } + var setter = data ? baseSetData : setData; + return setter(result, newData); +} + +module.exports = createWrapper; + +},{"./baseSetData":91,"./createBindWrapper":103,"./createHybridWrapper":107,"./createPartialWrapper":108,"./getData":113,"./mergeData":131,"./setData":136}],110:[function(require,module,exports){ +var arraySome = require('./arraySome'); + +/** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Function} [customizer] The function to customize comparing arrays. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA] Tracks traversed `value` objects. + * @param {Array} [stackB] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ +function equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) { + var index = -1, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isLoose && othLength > arrLength)) { + return false; + } + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index], + result = customizer ? customizer(isLoose ? othValue : arrValue, isLoose ? arrValue : othValue, index) : undefined; + + if (result !== undefined) { + if (result) { + continue; + } + return false; + } + // Recursively compare arrays (susceptible to call stack limits). + if (isLoose) { + if (!arraySome(other, function(othValue) { + return arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB); + })) { + return false; + } + } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB))) { + return false; + } + } + return true; +} + +module.exports = equalArrays; + +},{"./arraySome":68}],111:[function(require,module,exports){ +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + stringTag = '[object String]'; + +/** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalByTag(object, other, tag) { + switch (tag) { + case boolTag: + case dateTag: + // Coerce dates and booleans to numbers, dates to milliseconds and booleans + // to `1` or `0` treating invalid dates coerced to `NaN` as not equal. + return +object == +other; + + case errorTag: + return object.name == other.name && object.message == other.message; + + case numberTag: + // Treat `NaN` vs. `NaN` as equal. + return (object != +object) + ? other != +other + : object == +other; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings primitives and string + // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details. + return object == (other + ''); + } + return false; +} + +module.exports = equalByTag; + +},{}],112:[function(require,module,exports){ +var keys = require('../object/keys'); + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Function} [customizer] The function to customize comparing values. + * @param {boolean} [isLoose] Specify performing partial comparisons. + * @param {Array} [stackA] Tracks traversed `value` objects. + * @param {Array} [stackB] Tracks traversed `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalObjects(object, other, equalFunc, customizer, isLoose, stackA, stackB) { + var objProps = keys(object), + objLength = objProps.length, + othProps = keys(other), + othLength = othProps.length; + + if (objLength != othLength && !isLoose) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isLoose ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + var skipCtor = isLoose; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key], + result = customizer ? customizer(isLoose ? othValue : objValue, isLoose? objValue : othValue, key) : undefined; + + // Recursively compare objects (susceptible to call stack limits). + if (!(result === undefined ? equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB) : result)) { + return false; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (!skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + return false; + } + } + return true; +} + +module.exports = equalObjects; + +},{"../object/keys":152}],113:[function(require,module,exports){ +var metaMap = require('./metaMap'), + noop = require('../utility/noop'); + +/** + * Gets metadata for `func`. + * + * @private + * @param {Function} func The function to query. + * @returns {*} Returns the metadata for `func`. + */ +var getData = !metaMap ? noop : function(func) { + return metaMap.get(func); +}; + +module.exports = getData; + +},{"../utility/noop":158,"./metaMap":132}],114:[function(require,module,exports){ +var realNames = require('./realNames'); + +/** + * Gets the name of `func`. + * + * @private + * @param {Function} func The function to query. + * @returns {string} Returns the function name. + */ +function getFuncName(func) { + var result = func.name, + array = realNames[result], + length = array ? array.length : 0; + + while (length--) { + var data = array[length], + otherFunc = data.func; + if (otherFunc == null || otherFunc == func) { + return data.name; + } + } + return result; +} + +module.exports = getFuncName; + +},{"./realNames":133}],115:[function(require,module,exports){ +var baseProperty = require('./baseProperty'); + +/** + * Gets the "length" property value of `object`. + * + * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792) + * that affects Safari on at least iOS 8.1-8.3 ARM64. + * + * @private + * @param {Object} object The object to query. + * @returns {*} Returns the "length" value. + */ +var getLength = baseProperty('length'); + +module.exports = getLength; + +},{"./baseProperty":89}],116:[function(require,module,exports){ +var isStrictComparable = require('./isStrictComparable'), + pairs = require('../object/pairs'); + +/** + * Gets the propery names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ +function getMatchData(object) { + var result = pairs(object), + length = result.length; + + while (length--) { + result[length][2] = isStrictComparable(result[length][1]); + } + return result; +} + +module.exports = getMatchData; + +},{"../object/pairs":154,"./isStrictComparable":130}],117:[function(require,module,exports){ +var isNative = require('../lang/isNative'); + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = object == null ? undefined : object[key]; + return isNative(value) ? value : undefined; +} + +module.exports = getNative; + +},{"../lang/isNative":146}],118:[function(require,module,exports){ +/** + * Gets the index at which the first occurrence of `NaN` is found in `array`. + * + * @private + * @param {Array} array The array to search. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched `NaN`, else `-1`. + */ +function indexOfNaN(array, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 0 : -1); + + while ((fromRight ? index-- : ++index < length)) { + var other = array[index]; + if (other !== other) { + return index; + } + } + return -1; +} + +module.exports = indexOfNaN; + +},{}],119:[function(require,module,exports){ +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Initializes an array clone. + * + * @private + * @param {Array} array The array to clone. + * @returns {Array} Returns the initialized clone. + */ +function initCloneArray(array) { + var length = array.length, + result = new array.constructor(length); + + // Add array properties assigned by `RegExp#exec`. + if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { + result.index = array.index; + result.input = array.input; + } + return result; +} + +module.exports = initCloneArray; + +},{}],120:[function(require,module,exports){ +(function (global){ +var bufferClone = require('./bufferClone'); + +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + stringTag = '[object String]'; + +var arrayBufferTag = '[object ArrayBuffer]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to match `RegExp` flags from their coerced string values. */ +var reFlags = /\w*$/; + +/** Native method references. */ +var Uint8Array = global.Uint8Array; + +/** Used to lookup a type array constructors by `toStringTag`. */ +var ctorByTag = {}; +ctorByTag[float32Tag] = global.Float32Array; +ctorByTag[float64Tag] = global.Float64Array; +ctorByTag[int8Tag] = global.Int8Array; +ctorByTag[int16Tag] = global.Int16Array; +ctorByTag[int32Tag] = global.Int32Array; +ctorByTag[uint8Tag] = Uint8Array; +ctorByTag[uint8ClampedTag] = global.Uint8ClampedArray; +ctorByTag[uint16Tag] = global.Uint16Array; +ctorByTag[uint32Tag] = global.Uint32Array; + +/** + * Initializes an object clone based on its `toStringTag`. + * + * **Note:** This function only supports cloning values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to clone. + * @param {string} tag The `toStringTag` of the object to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the initialized clone. + */ +function initCloneByTag(object, tag, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag: + return bufferClone(object); + + case boolTag: + case dateTag: + return new Ctor(+object); + + case float32Tag: case float64Tag: + case int8Tag: case int16Tag: case int32Tag: + case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: + // Safari 5 mobile incorrectly has `Object` as the constructor of typed arrays. + if (Ctor instanceof Ctor) { + Ctor = ctorByTag[tag]; + } + var buffer = object.buffer; + return new Ctor(isDeep ? bufferClone(buffer) : buffer, object.byteOffset, object.length); + + case numberTag: + case stringTag: + return new Ctor(object); + + case regexpTag: + var result = new Ctor(object.source, reFlags.exec(object)); + result.lastIndex = object.lastIndex; + } + return result; +} + +module.exports = initCloneByTag; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2luaXRDbG9uZUJ5VGFnLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgYnVmZmVyQ2xvbmUgPSByZXF1aXJlKCcuL2J1ZmZlckNsb25lJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXSc7XG5cbnZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgIGZsb2F0NjRUYWcgPSAnW29iamVjdCBGbG9hdDY0QXJyYXldJyxcbiAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgaW50MzJUYWcgPSAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICB1aW50MTZUYWcgPSAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGBSZWdFeHBgIGZsYWdzIGZyb20gdGhlaXIgY29lcmNlZCBzdHJpbmcgdmFsdWVzLiAqL1xudmFyIHJlRmxhZ3MgPSAvXFx3KiQvO1xuXG4vKiogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIFVpbnQ4QXJyYXkgPSBnbG9iYWwuVWludDhBcnJheTtcblxuLyoqIFVzZWQgdG8gbG9va3VwIGEgdHlwZSBhcnJheSBjb25zdHJ1Y3RvcnMgYnkgYHRvU3RyaW5nVGFnYC4gKi9cbnZhciBjdG9yQnlUYWcgPSB7fTtcbmN0b3JCeVRhZ1tmbG9hdDMyVGFnXSA9IGdsb2JhbC5GbG9hdDMyQXJyYXk7XG5jdG9yQnlUYWdbZmxvYXQ2NFRhZ10gPSBnbG9iYWwuRmxvYXQ2NEFycmF5O1xuY3RvckJ5VGFnW2ludDhUYWddID0gZ2xvYmFsLkludDhBcnJheTtcbmN0b3JCeVRhZ1tpbnQxNlRhZ10gPSBnbG9iYWwuSW50MTZBcnJheTtcbmN0b3JCeVRhZ1tpbnQzMlRhZ10gPSBnbG9iYWwuSW50MzJBcnJheTtcbmN0b3JCeVRhZ1t1aW50OFRhZ10gPSBVaW50OEFycmF5O1xuY3RvckJ5VGFnW3VpbnQ4Q2xhbXBlZFRhZ10gPSBnbG9iYWwuVWludDhDbGFtcGVkQXJyYXk7XG5jdG9yQnlUYWdbdWludDE2VGFnXSA9IGdsb2JhbC5VaW50MTZBcnJheTtcbmN0b3JCeVRhZ1t1aW50MzJUYWddID0gZ2xvYmFsLlVpbnQzMkFycmF5O1xuXG4vKipcbiAqIEluaXRpYWxpemVzIGFuIG9iamVjdCBjbG9uZSBiYXNlZCBvbiBpdHMgYHRvU3RyaW5nVGFnYC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBvbmx5IHN1cHBvcnRzIGNsb25pbmcgdmFsdWVzIHdpdGggdGFncyBvZlxuICogYEJvb2xlYW5gLCBgRGF0ZWAsIGBFcnJvcmAsIGBOdW1iZXJgLCBgUmVnRXhwYCwgb3IgYFN0cmluZ2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBjbG9uZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWcgVGhlIGB0b1N0cmluZ1RhZ2Agb2YgdGhlIG9iamVjdCB0byBjbG9uZS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRGVlcF0gU3BlY2lmeSBhIGRlZXAgY2xvbmUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBpbml0aWFsaXplZCBjbG9uZS5cbiAqL1xuZnVuY3Rpb24gaW5pdENsb25lQnlUYWcob2JqZWN0LCB0YWcsIGlzRGVlcCkge1xuICB2YXIgQ3RvciA9IG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgc3dpdGNoICh0YWcpIHtcbiAgICBjYXNlIGFycmF5QnVmZmVyVGFnOlxuICAgICAgcmV0dXJuIGJ1ZmZlckNsb25lKG9iamVjdCk7XG5cbiAgICBjYXNlIGJvb2xUYWc6XG4gICAgY2FzZSBkYXRlVGFnOlxuICAgICAgcmV0dXJuIG5ldyBDdG9yKCtvYmplY3QpO1xuXG4gICAgY2FzZSBmbG9hdDMyVGFnOiBjYXNlIGZsb2F0NjRUYWc6XG4gICAgY2FzZSBpbnQ4VGFnOiBjYXNlIGludDE2VGFnOiBjYXNlIGludDMyVGFnOlxuICAgIGNhc2UgdWludDhUYWc6IGNhc2UgdWludDhDbGFtcGVkVGFnOiBjYXNlIHVpbnQxNlRhZzogY2FzZSB1aW50MzJUYWc6XG4gICAgICAvLyBTYWZhcmkgNSBtb2JpbGUgaW5jb3JyZWN0bHkgaGFzIGBPYmplY3RgIGFzIHRoZSBjb25zdHJ1Y3RvciBvZiB0eXBlZCBhcnJheXMuXG4gICAgICBpZiAoQ3RvciBpbnN0YW5jZW9mIEN0b3IpIHtcbiAgICAgICAgQ3RvciA9IGN0b3JCeVRhZ1t0YWddO1xuICAgICAgfVxuICAgICAgdmFyIGJ1ZmZlciA9IG9iamVjdC5idWZmZXI7XG4gICAgICByZXR1cm4gbmV3IEN0b3IoaXNEZWVwID8gYnVmZmVyQ2xvbmUoYnVmZmVyKSA6IGJ1ZmZlciwgb2JqZWN0LmJ5dGVPZmZzZXQsIG9iamVjdC5sZW5ndGgpO1xuXG4gICAgY2FzZSBudW1iZXJUYWc6XG4gICAgY2FzZSBzdHJpbmdUYWc6XG4gICAgICByZXR1cm4gbmV3IEN0b3Iob2JqZWN0KTtcblxuICAgIGNhc2UgcmVnZXhwVGFnOlxuICAgICAgdmFyIHJlc3VsdCA9IG5ldyBDdG9yKG9iamVjdC5zb3VyY2UsIHJlRmxhZ3MuZXhlYyhvYmplY3QpKTtcbiAgICAgIHJlc3VsdC5sYXN0SW5kZXggPSBvYmplY3QubGFzdEluZGV4O1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5pdENsb25lQnlUYWc7XG4iXX0= +},{"./bufferClone":98}],121:[function(require,module,exports){ +/** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ +function initCloneObject(object) { + var Ctor = object.constructor; + if (!(typeof Ctor == 'function' && Ctor instanceof Ctor)) { + Ctor = Object; + } + return new Ctor; +} + +module.exports = initCloneObject; + +},{}],122:[function(require,module,exports){ +var getLength = require('./getLength'), + isLength = require('./isLength'); + +/** + * Checks if `value` is array-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + */ +function isArrayLike(value) { + return value != null && isLength(getLength(value)); +} + +module.exports = isArrayLike; + +},{"./getLength":115,"./isLength":128}],123:[function(require,module,exports){ +/** + * Checks if `value` is a host object in IE < 9. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a host object, else `false`. + */ +var isHostObject = (function() { + try { + Object({ 'toString': 0 } + ''); + } catch(e) { + return function() { return false; }; + } + return function(value) { + // IE < 9 presents many host objects as `Object` objects that can coerce + // to strings despite having improperly defined `toString` methods. + return typeof value.toString != 'function' && typeof (value + '') == 'string'; + }; +}()); + +module.exports = isHostObject; + +},{}],124:[function(require,module,exports){ +/** Used to detect unsigned integer values. */ +var reIsUint = /^\d+$/; + +/** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1; + length = length == null ? MAX_SAFE_INTEGER : length; + return value > -1 && value % 1 == 0 && value < length; +} + +module.exports = isIndex; + +},{}],125:[function(require,module,exports){ +var isArrayLike = require('./isArrayLike'), + isIndex = require('./isIndex'), + isObject = require('../lang/isObject'); + +/** + * Checks if the provided arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`. + */ +function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object)) { + var other = object[index]; + return value === value ? (value === other) : (other !== other); + } + return false; +} + +module.exports = isIterateeCall; + +},{"../lang/isObject":147,"./isArrayLike":122,"./isIndex":124}],126:[function(require,module,exports){ +var isArray = require('../lang/isArray'), + toObject = require('./toObject'); + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + +/** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ +function isKey(value, object) { + var type = typeof value; + if ((type == 'string' && reIsPlainProp.test(value)) || type == 'number') { + return true; + } + if (isArray(value)) { + return false; + } + var result = !reIsDeepProp.test(value); + return result || (object != null && value in toObject(object)); +} + +module.exports = isKey; + +},{"../lang/isArray":143,"./toObject":138}],127:[function(require,module,exports){ +var LazyWrapper = require('./LazyWrapper'), + getData = require('./getData'), + getFuncName = require('./getFuncName'), + lodash = require('../chain/lodash'); + +/** + * Checks if `func` has a lazy counterpart. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` has a lazy counterpart, else `false`. + */ +function isLaziable(func) { + var funcName = getFuncName(func); + if (!(funcName in LazyWrapper.prototype)) { + return false; + } + var other = lodash[funcName]; + if (func === other) { + return true; + } + var data = getData(other); + return !!data && func === data[0]; +} + +module.exports = isLaziable; + +},{"../chain/lodash":54,"./LazyWrapper":63,"./getData":113,"./getFuncName":114}],128:[function(require,module,exports){ +/** + * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer) + * of an array-like value. + */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength). + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + */ +function isLength(value) { + return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +module.exports = isLength; + +},{}],129:[function(require,module,exports){ +/** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ +function isObjectLike(value) { + return !!value && typeof value == 'object'; +} + +module.exports = isObjectLike; + +},{}],130:[function(require,module,exports){ +var isObject = require('../lang/isObject'); + +/** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ +function isStrictComparable(value) { + return value === value && !isObject(value); +} + +module.exports = isStrictComparable; + +},{"../lang/isObject":147}],131:[function(require,module,exports){ +var arrayCopy = require('./arrayCopy'), + composeArgs = require('./composeArgs'), + composeArgsRight = require('./composeArgsRight'), + replaceHolders = require('./replaceHolders'); + +/** Used to compose bitmasks for wrapper metadata. */ +var BIND_FLAG = 1, + CURRY_BOUND_FLAG = 4, + CURRY_FLAG = 8, + ARY_FLAG = 128, + REARG_FLAG = 256; + +/** Used as the internal argument placeholder. */ +var PLACEHOLDER = '__lodash_placeholder__'; + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMin = Math.min; + +/** + * Merges the function metadata of `source` into `data`. + * + * Merging metadata reduces the number of wrappers required to invoke a function. + * This is possible because methods like `_.bind`, `_.curry`, and `_.partial` + * may be applied regardless of execution order. Methods like `_.ary` and `_.rearg` + * augment function arguments, making the order in which they are executed important, + * preventing the merging of metadata. However, we make an exception for a safe + * common case where curried functions have `_.ary` and or `_.rearg` applied. + * + * @private + * @param {Array} data The destination metadata. + * @param {Array} source The source metadata. + * @returns {Array} Returns `data`. + */ +function mergeData(data, source) { + var bitmask = data[1], + srcBitmask = source[1], + newBitmask = bitmask | srcBitmask, + isCommon = newBitmask < ARY_FLAG; + + var isCombo = + (srcBitmask == ARY_FLAG && bitmask == CURRY_FLAG) || + (srcBitmask == ARY_FLAG && bitmask == REARG_FLAG && data[7].length <= source[8]) || + (srcBitmask == (ARY_FLAG | REARG_FLAG) && bitmask == CURRY_FLAG); + + // Exit early if metadata can't be merged. + if (!(isCommon || isCombo)) { + return data; + } + // Use source `thisArg` if available. + if (srcBitmask & BIND_FLAG) { + data[2] = source[2]; + // Set when currying a bound function. + newBitmask |= (bitmask & BIND_FLAG) ? 0 : CURRY_BOUND_FLAG; + } + // Compose partial arguments. + var value = source[3]; + if (value) { + var partials = data[3]; + data[3] = partials ? composeArgs(partials, value, source[4]) : arrayCopy(value); + data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : arrayCopy(source[4]); + } + // Compose partial right arguments. + value = source[5]; + if (value) { + partials = data[5]; + data[5] = partials ? composeArgsRight(partials, value, source[6]) : arrayCopy(value); + data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : arrayCopy(source[6]); + } + // Use source `argPos` if available. + value = source[7]; + if (value) { + data[7] = arrayCopy(value); + } + // Use source `ary` if it's smaller. + if (srcBitmask & ARY_FLAG) { + data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); + } + // Use source `arity` if one is not provided. + if (data[9] == null) { + data[9] = source[9]; + } + // Use source `func` and merge bitmasks. + data[0] = source[0]; + data[1] = newBitmask; + + return data; +} + +module.exports = mergeData; + +},{"./arrayCopy":65,"./composeArgs":99,"./composeArgsRight":100,"./replaceHolders":135}],132:[function(require,module,exports){ +(function (global){ +var getNative = require('./getNative'); + +/** Native method references. */ +var WeakMap = getNative(global, 'WeakMap'); + +/** Used to store function metadata. */ +var metaMap = WeakMap && new WeakMap; + +module.exports = metaMap; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL21ldGFNYXAuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZ2V0TmF0aXZlID0gcmVxdWlyZSgnLi9nZXROYXRpdmUnKTtcblxuLyoqIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBXZWFrTWFwID0gZ2V0TmF0aXZlKGdsb2JhbCwgJ1dlYWtNYXAnKTtcblxuLyoqIFVzZWQgdG8gc3RvcmUgZnVuY3Rpb24gbWV0YWRhdGEuICovXG52YXIgbWV0YU1hcCA9IFdlYWtNYXAgJiYgbmV3IFdlYWtNYXA7XG5cbm1vZHVsZS5leHBvcnRzID0gbWV0YU1hcDtcbiJdfQ== +},{"./getNative":117}],133:[function(require,module,exports){ +/** Used to lookup unminified function names. */ +var realNames = {}; + +module.exports = realNames; + +},{}],134:[function(require,module,exports){ +var arrayCopy = require('./arrayCopy'), + isIndex = require('./isIndex'); + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeMin = Math.min; + +/** + * Reorder `array` according to the specified indexes where the element at + * the first index is assigned as the first element, the element at + * the second index is assigned as the second element, and so on. + * + * @private + * @param {Array} array The array to reorder. + * @param {Array} indexes The arranged array indexes. + * @returns {Array} Returns `array`. + */ +function reorder(array, indexes) { + var arrLength = array.length, + length = nativeMin(indexes.length, arrLength), + oldArray = arrayCopy(array); + + while (length--) { + var index = indexes[length]; + array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined; + } + return array; +} + +module.exports = reorder; + +},{"./arrayCopy":65,"./isIndex":124}],135:[function(require,module,exports){ +/** Used as the internal argument placeholder. */ +var PLACEHOLDER = '__lodash_placeholder__'; + +/** + * Replaces all `placeholder` elements in `array` with an internal placeholder + * and returns an array of their indexes. + * + * @private + * @param {Array} array The array to modify. + * @param {*} placeholder The placeholder to replace. + * @returns {Array} Returns the new array of placeholder indexes. + */ +function replaceHolders(array, placeholder) { + var index = -1, + length = array.length, + resIndex = -1, + result = []; + + while (++index < length) { + if (array[index] === placeholder) { + array[index] = PLACEHOLDER; + result[++resIndex] = index; + } + } + return result; +} + +module.exports = replaceHolders; + +},{}],136:[function(require,module,exports){ +var baseSetData = require('./baseSetData'), + now = require('../date/now'); + +/** Used to detect when a function becomes hot. */ +var HOT_COUNT = 150, + HOT_SPAN = 16; + +/** + * Sets metadata for `func`. + * + * **Note:** If this function becomes hot, i.e. is invoked a lot in a short + * period of time, it will trip its breaker and transition to an identity function + * to avoid garbage collection pauses in V8. See [V8 issue 2070](https://code.google.com/p/v8/issues/detail?id=2070) + * for more details. + * + * @private + * @param {Function} func The function to associate metadata with. + * @param {*} data The metadata. + * @returns {Function} Returns `func`. + */ +var setData = (function() { + var count = 0, + lastCalled = 0; + + return function(key, value) { + var stamp = now(), + remaining = HOT_SPAN - (stamp - lastCalled); + + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return key; + } + } else { + count = 0; + } + return baseSetData(key, value); + }; +}()); + +module.exports = setData; + +},{"../date/now":60,"./baseSetData":91}],137:[function(require,module,exports){ +var isArguments = require('../lang/isArguments'), + isArray = require('../lang/isArray'), + isIndex = require('./isIndex'), + isLength = require('./isLength'), + isString = require('../lang/isString'), + keysIn = require('../object/keysIn'); + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * A fallback implementation of `Object.keys` which creates an array of the + * own enumerable property names of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function shimKeys(object) { + var props = keysIn(object), + propsLength = props.length, + length = propsLength && object.length; + + var allowIndexes = !!length && isLength(length) && + (isArray(object) || isArguments(object) || isString(object)); + + var index = -1, + result = []; + + while (++index < propsLength) { + var key = props[index]; + if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) { + result.push(key); + } + } + return result; +} + +module.exports = shimKeys; + +},{"../lang/isArguments":142,"../lang/isArray":143,"../lang/isString":149,"../object/keysIn":153,"./isIndex":124,"./isLength":128}],138:[function(require,module,exports){ +var isObject = require('../lang/isObject'), + isString = require('../lang/isString'), + support = require('../support'); + +/** + * Converts `value` to an object if it's not one. + * + * @private + * @param {*} value The value to process. + * @returns {Object} Returns the object. + */ +function toObject(value) { + if (support.unindexedChars && isString(value)) { + var index = -1, + length = value.length, + result = Object(value); + + while (++index < length) { + result[index] = value.charAt(index); + } + return result; + } + return isObject(value) ? value : Object(value); +} + +module.exports = toObject; + +},{"../lang/isObject":147,"../lang/isString":149,"../support":156}],139:[function(require,module,exports){ +var baseToString = require('./baseToString'), + isArray = require('../lang/isArray'); + +/** Used to match property names within property paths. */ +var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g; + +/** Used to match backslashes in property paths. */ +var reEscapeChar = /\\(\\)?/g; + +/** + * Converts `value` to property path array if it's not one. + * + * @private + * @param {*} value The value to process. + * @returns {Array} Returns the property path array. + */ +function toPath(value) { + if (isArray(value)) { + return value; + } + var result = []; + baseToString(value).replace(rePropName, function(match, number, quote, string) { + result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; +} + +module.exports = toPath; + +},{"../lang/isArray":143,"./baseToString":93}],140:[function(require,module,exports){ +var LazyWrapper = require('./LazyWrapper'), + LodashWrapper = require('./LodashWrapper'), + arrayCopy = require('./arrayCopy'); + +/** + * Creates a clone of `wrapper`. + * + * @private + * @param {Object} wrapper The wrapper to clone. + * @returns {Object} Returns the cloned wrapper. + */ +function wrapperClone(wrapper) { + return wrapper instanceof LazyWrapper + ? wrapper.clone() + : new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__, arrayCopy(wrapper.__actions__)); +} + +module.exports = wrapperClone; + +},{"./LazyWrapper":63,"./LodashWrapper":64,"./arrayCopy":65}],141:[function(require,module,exports){ +var baseClone = require('../internal/baseClone'), + bindCallback = require('../internal/bindCallback'); + +/** + * Creates a deep clone of `value`. If `customizer` is provided it is invoked + * to produce the cloned values. If `customizer` returns `undefined` cloning + * is handled by the method instead. The `customizer` is bound to `thisArg` + * and invoked with two argument; (value [, index|key, object]). + * + * **Note:** This method is loosely based on the + * [structured clone algorithm](http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm). + * The enumerable properties of `arguments` objects and objects created by + * constructors other than `Object` are cloned to plain `Object` objects. An + * empty object is returned for uncloneable values such as functions, DOM nodes, + * Maps, Sets, and WeakMaps. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to deep clone. + * @param {Function} [customizer] The function to customize cloning values. + * @param {*} [thisArg] The `this` binding of `customizer`. + * @returns {*} Returns the deep cloned value. + * @example + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * var deep = _.cloneDeep(users); + * deep[0] === users[0]; + * // => false + * + * // using a customizer callback + * var el = _.cloneDeep(document.body, function(value) { + * if (_.isElement(value)) { + * return value.cloneNode(true); + * } + * }); + * + * el === document.body + * // => false + * el.nodeName + * // => BODY + * el.childNodes.length; + * // => 20 + */ +function cloneDeep(value, customizer, thisArg) { + return typeof customizer == 'function' + ? baseClone(value, true, bindCallback(customizer, thisArg, 1)) + : baseClone(value, true); +} + +module.exports = cloneDeep; + +},{"../internal/baseClone":71,"../internal/bindCallback":97}],142:[function(require,module,exports){ +var isArrayLike = require('../internal/isArrayLike'), + isObjectLike = require('../internal/isObjectLike'); + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Native method references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/** + * Checks if `value` is classified as an `arguments` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +function isArguments(value) { + return isObjectLike(value) && isArrayLike(value) && + hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); +} + +module.exports = isArguments; + +},{"../internal/isArrayLike":122,"../internal/isObjectLike":129}],143:[function(require,module,exports){ +var getNative = require('../internal/getNative'), + isLength = require('../internal/isLength'), + isObjectLike = require('../internal/isObjectLike'); + +/** `Object#toString` result references. */ +var arrayTag = '[object Array]'; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeIsArray = getNative(Array, 'isArray'); + +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(function() { return arguments; }()); + * // => false + */ +var isArray = nativeIsArray || function(value) { + return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag; +}; + +module.exports = isArray; + +},{"../internal/getNative":117,"../internal/isLength":128,"../internal/isObjectLike":129}],144:[function(require,module,exports){ +var isArguments = require('./isArguments'), + isArray = require('./isArray'), + isArrayLike = require('../internal/isArrayLike'), + isFunction = require('./isFunction'), + isObjectLike = require('../internal/isObjectLike'), + isString = require('./isString'), + keys = require('../object/keys'); + +/** + * Checks if `value` is empty. A value is considered empty unless it is an + * `arguments` object, array, string, or jQuery-like collection with a length + * greater than `0` or an object with own enumerable properties. + * + * @static + * @memberOf _ + * @category Lang + * @param {Array|Object|string} value The value to inspect. + * @returns {boolean} Returns `true` if `value` is empty, else `false`. + * @example + * + * _.isEmpty(null); + * // => true + * + * _.isEmpty(true); + * // => true + * + * _.isEmpty(1); + * // => true + * + * _.isEmpty([1, 2, 3]); + * // => false + * + * _.isEmpty({ 'a': 1 }); + * // => false + */ +function isEmpty(value) { + if (value == null) { + return true; + } + if (isArrayLike(value) && (isArray(value) || isString(value) || isArguments(value) || + (isObjectLike(value) && isFunction(value.splice)))) { + return !value.length; + } + return !keys(value).length; +} + +module.exports = isEmpty; + +},{"../internal/isArrayLike":122,"../internal/isObjectLike":129,"../object/keys":152,"./isArguments":142,"./isArray":143,"./isFunction":145,"./isString":149}],145:[function(require,module,exports){ +var isObject = require('./isObject'); + +/** `Object#toString` result references. */ +var funcTag = '[object Function]'; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in older versions of Chrome and Safari which return 'function' for regexes + // and Safari 8 equivalents which return 'object' for typed array constructors. + return isObject(value) && objToString.call(value) == funcTag; +} + +module.exports = isFunction; + +},{"./isObject":147}],146:[function(require,module,exports){ +var isFunction = require('./isFunction'), + isHostObject = require('../internal/isHostObject'), + isObjectLike = require('../internal/isObjectLike'); + +/** Used to detect host constructors (Safari > 5). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var fnToString = Function.prototype.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** + * Checks if `value` is a native function. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, else `false`. + * @example + * + * _.isNative(Array.prototype.push); + * // => true + * + * _.isNative(_); + * // => false + */ +function isNative(value) { + if (value == null) { + return false; + } + if (isFunction(value)) { + return reIsNative.test(fnToString.call(value)); + } + return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value); +} + +module.exports = isNative; + +},{"../internal/isHostObject":123,"../internal/isObjectLike":129,"./isFunction":145}],147:[function(require,module,exports){ +/** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(1); + * // => false + */ +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); +} + +module.exports = isObject; + +},{}],148:[function(require,module,exports){ +var baseForIn = require('../internal/baseForIn'), + isArguments = require('./isArguments'), + isHostObject = require('../internal/isHostObject'), + isObjectLike = require('../internal/isObjectLike'), + support = require('../support'); + +/** `Object#toString` result references. */ +var objectTag = '[object Object]'; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * **Note:** This method assumes objects created by the `Object` constructor + * have no inherited enumerable properties. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ +function isPlainObject(value) { + var Ctor; + + // Exit early for non `Object` objects. + if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value) && !isArguments(value)) || + (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) { + return false; + } + // IE < 9 iterates inherited properties before own properties. If the first + // iterated property is an object's own property then there are no inherited + // enumerable properties. + var result; + if (support.ownLast) { + baseForIn(value, function(subValue, key, object) { + result = hasOwnProperty.call(object, key); + return false; + }); + return result !== false; + } + // In most environments an object's own properties are iterated before + // its inherited properties. If the last iterated property is an object's + // own property then there are no inherited enumerable properties. + baseForIn(value, function(subValue, key) { + result = key; + }); + return result === undefined || hasOwnProperty.call(value, result); +} + +module.exports = isPlainObject; + +},{"../internal/baseForIn":78,"../internal/isHostObject":123,"../internal/isObjectLike":129,"../support":156,"./isArguments":142}],149:[function(require,module,exports){ +var isObjectLike = require('../internal/isObjectLike'); + +/** `Object#toString` result references. */ +var stringTag = '[object String]'; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */ +function isString(value) { + return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag); +} + +module.exports = isString; + +},{"../internal/isObjectLike":129}],150:[function(require,module,exports){ +var isLength = require('../internal/isLength'), + isObjectLike = require('../internal/isObjectLike'); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to identify `toStringTag` values of typed arrays. */ +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = +typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = +typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = +typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = +typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag] = typedArrayTags[arrayTag] = +typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = +typedArrayTags[dateTag] = typedArrayTags[errorTag] = +typedArrayTags[funcTag] = typedArrayTags[mapTag] = +typedArrayTags[numberTag] = typedArrayTags[objectTag] = +typedArrayTags[regexpTag] = typedArrayTags[setTag] = +typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; + +/** Used for native method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ +function isTypedArray(value) { + return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)]; +} + +module.exports = isTypedArray; + +},{"../internal/isLength":128,"../internal/isObjectLike":129}],151:[function(require,module,exports){ +/** + * Checks if `value` is `undefined`. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. + * @example + * + * _.isUndefined(void 0); + * // => true + * + * _.isUndefined(null); + * // => false + */ +function isUndefined(value) { + return value === undefined; +} + +module.exports = isUndefined; + +},{}],152:[function(require,module,exports){ +var getNative = require('../internal/getNative'), + isArrayLike = require('../internal/isArrayLike'), + isObject = require('../lang/isObject'), + shimKeys = require('../internal/shimKeys'), + support = require('../support'); + +/* Native method references for those with the same name as other `lodash` methods. */ +var nativeKeys = getNative(Object, 'keys'); + +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys) + * for more details. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ +var keys = !nativeKeys ? shimKeys : function(object) { + var Ctor = object == null ? undefined : object.constructor; + if ((typeof Ctor == 'function' && Ctor.prototype === object) || + (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) { + return shimKeys(object); + } + return isObject(object) ? nativeKeys(object) : []; +}; + +module.exports = keys; + +},{"../internal/getNative":117,"../internal/isArrayLike":122,"../internal/shimKeys":137,"../lang/isObject":147,"../support":156}],153:[function(require,module,exports){ +var arrayEach = require('../internal/arrayEach'), + isArguments = require('../lang/isArguments'), + isArray = require('../lang/isArray'), + isFunction = require('../lang/isFunction'), + isIndex = require('../internal/isIndex'), + isLength = require('../internal/isLength'), + isObject = require('../lang/isObject'), + isString = require('../lang/isString'), + support = require('../support'); + +/** `Object#toString` result references. */ +var arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + stringTag = '[object String]'; + +/** Used to fix the JScript `[[DontEnum]]` bug. */ +var shadowProps = [ + 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', + 'toLocaleString', 'toString', 'valueOf' +]; + +/** Used for native method references. */ +var errorProto = Error.prototype, + objectProto = Object.prototype, + stringProto = String.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ +var objToString = objectProto.toString; + +/** Used to avoid iterating over non-enumerable properties in IE < 9. */ +var nonEnumProps = {}; +nonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true }; +nonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true }; +nonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true }; +nonEnumProps[objectTag] = { 'constructor': true }; + +arrayEach(shadowProps, function(key) { + for (var tag in nonEnumProps) { + if (hasOwnProperty.call(nonEnumProps, tag)) { + var props = nonEnumProps[tag]; + props[key] = hasOwnProperty.call(props, key); + } + } +}); + +/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ +function keysIn(object) { + if (object == null) { + return []; + } + if (!isObject(object)) { + object = Object(object); + } + var length = object.length; + + length = (length && isLength(length) && + (isArray(object) || isArguments(object) || isString(object)) && length) || 0; + + var Ctor = object.constructor, + index = -1, + proto = (isFunction(Ctor) && Ctor.prototype) || objectProto, + isProto = proto === object, + result = Array(length), + skipIndexes = length > 0, + skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error), + skipProto = support.enumPrototypes && isFunction(object); + + while (++index < length) { + result[index] = (index + ''); + } + // lodash skips the `constructor` property when it infers it is iterating + // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]` + // attribute of an existing property and the `constructor` property of a + // prototype defaults to non-enumerable. + for (var key in object) { + if (!(skipProto && key == 'prototype') && + !(skipErrorProps && (key == 'message' || key == 'name')) && + !(skipIndexes && isIndex(key, length)) && + !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + if (support.nonEnumShadows && object !== objectProto) { + var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)), + nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag]; + + if (tag == objectTag) { + proto = objectProto; + } + length = shadowProps.length; + while (length--) { + key = shadowProps[length]; + var nonEnum = nonEnums[key]; + if (!(isProto && nonEnum) && + (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) { + result.push(key); + } + } + } + return result; +} + +module.exports = keysIn; + +},{"../internal/arrayEach":66,"../internal/isIndex":124,"../internal/isLength":128,"../lang/isArguments":142,"../lang/isArray":143,"../lang/isFunction":145,"../lang/isObject":147,"../lang/isString":149,"../support":156}],154:[function(require,module,exports){ +var keys = require('./keys'), + toObject = require('../internal/toObject'); + +/** + * Creates a two dimensional array of the key-value pairs for `object`, + * e.g. `[[key1, value1], [key2, value2]]`. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the new array of key-value pairs. + * @example + * + * _.pairs({ 'barney': 36, 'fred': 40 }); + * // => [['barney', 36], ['fred', 40]] (iteration order is not guaranteed) + */ +function pairs(object) { + object = toObject(object); + + var index = -1, + props = keys(object), + length = props.length, + result = Array(length); + + while (++index < length) { + var key = props[index]; + result[index] = [key, object[key]]; + } + return result; +} + +module.exports = pairs; + +},{"../internal/toObject":138,"./keys":152}],155:[function(require,module,exports){ +var baseValues = require('../internal/baseValues'), + keys = require('./keys'); + +/** + * Creates an array of the own enumerable property values of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property values. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.values(new Foo); + * // => [1, 2] (iteration order is not guaranteed) + * + * _.values('hi'); + * // => ['h', 'i'] + */ +function values(object) { + return baseValues(object, keys(object)); +} + +module.exports = values; + +},{"../internal/baseValues":94,"./keys":152}],156:[function(require,module,exports){ +/** Used for native method references. */ +var arrayProto = Array.prototype, + errorProto = Error.prototype, + objectProto = Object.prototype; + +/** Native method references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable, + splice = arrayProto.splice; + +/** + * An object environment feature flags. + * + * @static + * @memberOf _ + * @type Object + */ +var support = {}; + +(function(x) { + var Ctor = function() { this.x = x; }, + object = { '0': x, 'length': x }, + props = []; + + Ctor.prototype = { 'valueOf': x, 'y': x }; + for (var key in new Ctor) { props.push(key); } + + /** + * Detect if `name` or `message` properties of `Error.prototype` are + * enumerable by default (IE < 9, Safari < 5.1). + * + * @memberOf _.support + * @type boolean + */ + support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') || + propertyIsEnumerable.call(errorProto, 'name'); + + /** + * Detect if `prototype` properties are enumerable by default. + * + * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1 + * (if the prototype or a property on the prototype has been set) + * incorrectly set the `[[Enumerable]]` value of a function's `prototype` + * property to `true`. + * + * @memberOf _.support + * @type boolean + */ + support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype'); + + /** + * Detect if properties shadowing those on `Object.prototype` are non-enumerable. + * + * In IE < 9 an object's own properties, shadowing non-enumerable ones, + * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug). + * + * @memberOf _.support + * @type boolean + */ + support.nonEnumShadows = !/valueOf/.test(props); + + /** + * Detect if own properties are iterated after inherited properties (IE < 9). + * + * @memberOf _.support + * @type boolean + */ + support.ownLast = props[0] != 'x'; + + /** + * Detect if `Array#shift` and `Array#splice` augment array-like objects + * correctly. + * + * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array + * `shift()` and `splice()` functions that fail to remove the last element, + * `value[0]`, of array-like objects even though the "length" property is + * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8, + * while `splice()` is buggy regardless of mode in IE < 9. + * + * @memberOf _.support + * @type boolean + */ + support.spliceObjects = (splice.call(object, 0, 1), !object[0]); + + /** + * Detect lack of support for accessing string characters by index. + * + * IE < 8 can't access characters by index. IE 8 can only access characters + * by index on string literals, not string objects. + * + * @memberOf _.support + * @type boolean + */ + support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx'; +}(1, 0)); + +module.exports = support; + +},{}],157:[function(require,module,exports){ +/** + * This method returns the first argument provided to it. + * + * @static + * @memberOf _ + * @category Utility + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'user': 'fred' }; + * + * _.identity(object) === object; + * // => true + */ +function identity(value) { + return value; +} + +module.exports = identity; + +},{}],158:[function(require,module,exports){ +/** + * A no-operation function that returns `undefined` regardless of the + * arguments it receives. + * + * @static + * @memberOf _ + * @category Utility + * @example + * + * var object = { 'user': 'fred' }; + * + * _.noop(object) === undefined; + * // => true + */ +function noop() { + // No operation performed. +} + +module.exports = noop; + +},{}],159:[function(require,module,exports){ +var baseProperty = require('../internal/baseProperty'), + basePropertyDeep = require('../internal/basePropertyDeep'), + isKey = require('../internal/isKey'); + +/** + * Creates a function that returns the property value at `path` on a + * given object. + * + * @static + * @memberOf _ + * @category Utility + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new function. + * @example + * + * var objects = [ + * { 'a': { 'b': { 'c': 2 } } }, + * { 'a': { 'b': { 'c': 1 } } } + * ]; + * + * _.map(objects, _.property('a.b.c')); + * // => [2, 1] + * + * _.pluck(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c'); + * // => [1, 2] + */ +function property(path) { + return isKey(path) ? baseProperty(path) : basePropertyDeep(path); +} + +module.exports = property; + +},{"../internal/baseProperty":89,"../internal/basePropertyDeep":90,"../internal/isKey":126}],160:[function(require,module,exports){ +/** + * Module dependencies. + */ + +var Emitter = require('emitter'); +var reduce = require('reduce'); + +/** + * Root reference for iframes. + */ + +var root = 'undefined' == typeof window + ? (this || self) + : window; + +/** + * Noop. + */ + +function noop(){}; + +/** + * Check if `obj` is a host object, + * we don't want to serialize these :) + * + * TODO: future proof, move to compoent land + * + * @param {Object} obj + * @return {Boolean} + * @api private + */ + +function isHost(obj) { + var str = {}.toString.call(obj); + + switch (str) { + case '[object File]': + case '[object Blob]': + case '[object FormData]': + return true; + default: + return false; + } +} + +/** + * Determine XHR. + */ + +request.getXHR = function () { + if (root.XMLHttpRequest + && (!root.location || 'file:' != root.location.protocol + || !root.ActiveXObject)) { + return new XMLHttpRequest; + } else { + try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) {} + try { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch(e) {} + try { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch(e) {} + try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) {} + } + return false; +}; + +/** + * Removes leading and trailing whitespace, added to support IE. + * + * @param {String} s + * @return {String} + * @api private + */ + +var trim = ''.trim + ? function(s) { return s.trim(); } + : function(s) { return s.replace(/(^\s*|\s*$)/g, ''); }; + +/** + * Check if `obj` is an object. + * + * @param {Object} obj + * @return {Boolean} + * @api private + */ + +function isObject(obj) { + return obj === Object(obj); +} + +/** + * Serialize the given `obj`. + * + * @param {Object} obj + * @return {String} + * @api private + */ + +function serialize(obj) { + if (!isObject(obj)) return obj; + var pairs = []; + for (var key in obj) { + if (null != obj[key]) { + pairs.push(encodeURIComponent(key) + + '=' + encodeURIComponent(obj[key])); + } + } + return pairs.join('&'); +} + +/** + * Expose serialization method. + */ + + request.serializeObject = serialize; + + /** + * Parse the given x-www-form-urlencoded `str`. + * + * @param {String} str + * @return {Object} + * @api private + */ + +function parseString(str) { + var obj = {}; + var pairs = str.split('&'); + var parts; + var pair; + + for (var i = 0, len = pairs.length; i < len; ++i) { + pair = pairs[i]; + parts = pair.split('='); + obj[decodeURIComponent(parts[0])] = decodeURIComponent(parts[1]); + } + + return obj; +} + +/** + * Expose parser. + */ + +request.parseString = parseString; + +/** + * Default MIME type map. + * + * superagent.types.xml = 'application/xml'; + * + */ + +request.types = { + html: 'text/html', + json: 'application/json', + xml: 'application/xml', + urlencoded: 'application/x-www-form-urlencoded', + 'form': 'application/x-www-form-urlencoded', + 'form-data': 'application/x-www-form-urlencoded' +}; + +/** + * Default serialization map. + * + * superagent.serialize['application/xml'] = function(obj){ + * return 'generated xml here'; + * }; + * + */ + + request.serialize = { + 'application/x-www-form-urlencoded': serialize, + 'application/json': JSON.stringify + }; + + /** + * Default parsers. + * + * superagent.parse['application/xml'] = function(str){ + * return { object parsed from str }; + * }; + * + */ + +request.parse = { + 'application/x-www-form-urlencoded': parseString, + 'application/json': JSON.parse +}; + +/** + * Parse the given header `str` into + * an object containing the mapped fields. + * + * @param {String} str + * @return {Object} + * @api private + */ + +function parseHeader(str) { + var lines = str.split(/\r?\n/); + var fields = {}; + var index; + var line; + var field; + var val; + + lines.pop(); // trailing CRLF + + for (var i = 0, len = lines.length; i < len; ++i) { + line = lines[i]; + index = line.indexOf(':'); + field = line.slice(0, index).toLowerCase(); + val = trim(line.slice(index + 1)); + fields[field] = val; + } + + return fields; +} + +/** + * Return the mime type for the given `str`. + * + * @param {String} str + * @return {String} + * @api private + */ + +function type(str){ + return str.split(/ *; */).shift(); +}; + +/** + * Return header field parameters. + * + * @param {String} str + * @return {Object} + * @api private + */ + +function params(str){ + return reduce(str.split(/ *; */), function(obj, str){ + var parts = str.split(/ *= */) + , key = parts.shift() + , val = parts.shift(); + + if (key && val) obj[key] = val; + return obj; + }, {}); +}; + +/** + * Initialize a new `Response` with the given `xhr`. + * + * - set flags (.ok, .error, etc) + * - parse header + * + * Examples: + * + * Aliasing `superagent` as `request` is nice: + * + * request = superagent; + * + * We can use the promise-like API, or pass callbacks: + * + * request.get('/').end(function(res){}); + * request.get('/', function(res){}); + * + * Sending data can be chained: + * + * request + * .post('/user') + * .send({ name: 'tj' }) + * .end(function(res){}); + * + * Or passed to `.send()`: + * + * request + * .post('/user') + * .send({ name: 'tj' }, function(res){}); + * + * Or passed to `.post()`: + * + * request + * .post('/user', { name: 'tj' }) + * .end(function(res){}); + * + * Or further reduced to a single call for simple cases: + * + * request + * .post('/user', { name: 'tj' }, function(res){}); + * + * @param {XMLHTTPRequest} xhr + * @param {Object} options + * @api private + */ + +function Response(req, options) { + options = options || {}; + this.req = req; + this.xhr = this.req.xhr; + // responseText is accessible only if responseType is '' or 'text' and on older browsers + this.text = ((this.req.method !='HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text')) || typeof this.xhr.responseType === 'undefined') + ? this.xhr.responseText + : null; + this.statusText = this.req.xhr.statusText; + this.setStatusProperties(this.xhr.status); + this.header = this.headers = parseHeader(this.xhr.getAllResponseHeaders()); + // getAllResponseHeaders sometimes falsely returns "" for CORS requests, but + // getResponseHeader still works. so we get content-type even if getting + // other headers fails. + this.header['content-type'] = this.xhr.getResponseHeader('content-type'); + this.setHeaderProperties(this.header); + this.body = this.req.method != 'HEAD' + ? this.parseBody(this.text ? this.text : this.xhr.response) + : null; +} + +/** + * Get case-insensitive `field` value. + * + * @param {String} field + * @return {String} + * @api public + */ + +Response.prototype.get = function(field){ + return this.header[field.toLowerCase()]; +}; + +/** + * Set header related properties: + * + * - `.type` the content type without params + * + * A response of "Content-Type: text/plain; charset=utf-8" + * will provide you with a `.type` of "text/plain". + * + * @param {Object} header + * @api private + */ + +Response.prototype.setHeaderProperties = function(header){ + // content-type + var ct = this.header['content-type'] || ''; + this.type = type(ct); + + // params + var obj = params(ct); + for (var key in obj) this[key] = obj[key]; +}; + +/** + * Parse the given body `str`. + * + * Used for auto-parsing of bodies. Parsers + * are defined on the `superagent.parse` object. + * + * @param {String} str + * @return {Mixed} + * @api private + */ + +Response.prototype.parseBody = function(str){ + var parse = request.parse[this.type]; + return parse && str && (str.length || str instanceof Object) + ? parse(str) + : null; +}; + +/** + * Set flags such as `.ok` based on `status`. + * + * For example a 2xx response will give you a `.ok` of __true__ + * whereas 5xx will be __false__ and `.error` will be __true__. The + * `.clientError` and `.serverError` are also available to be more + * specific, and `.statusType` is the class of error ranging from 1..5 + * sometimes useful for mapping respond colors etc. + * + * "sugar" properties are also defined for common cases. Currently providing: + * + * - .noContent + * - .badRequest + * - .unauthorized + * - .notAcceptable + * - .notFound + * + * @param {Number} status + * @api private + */ + +Response.prototype.setStatusProperties = function(status){ + // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request + if (status === 1223) { + status = 204; + } + + var type = status / 100 | 0; + + // status / class + this.status = status; + this.statusType = type; + + // basics + this.info = 1 == type; + this.ok = 2 == type; + this.clientError = 4 == type; + this.serverError = 5 == type; + this.error = (4 == type || 5 == type) + ? this.toError() + : false; + + // sugar + this.accepted = 202 == status; + this.noContent = 204 == status; + this.badRequest = 400 == status; + this.unauthorized = 401 == status; + this.notAcceptable = 406 == status; + this.notFound = 404 == status; + this.forbidden = 403 == status; +}; + +/** + * Return an `Error` representative of this response. + * + * @return {Error} + * @api public + */ + +Response.prototype.toError = function(){ + var req = this.req; + var method = req.method; + var url = req.url; + + var msg = 'cannot ' + method + ' ' + url + ' (' + this.status + ')'; + var err = new Error(msg); + err.status = this.status; + err.method = method; + err.url = url; + + return err; +}; + +/** + * Expose `Response`. + */ + +request.Response = Response; + +/** + * Initialize a new `Request` with the given `method` and `url`. + * + * @param {String} method + * @param {String} url + * @api public + */ + +function Request(method, url) { + var self = this; + Emitter.call(this); + this._query = this._query || []; + this.method = method; + this.url = url; + this.header = {}; + this._header = {}; + this.on('end', function(){ + var err = null; + var res = null; + + try { + res = new Response(self); + } catch(e) { + err = new Error('Parser is unable to parse the response'); + err.parse = true; + err.original = e; + return self.callback(err); + } + + self.emit('response', res); + + if (err) { + return self.callback(err, res); + } + + if (res.status >= 200 && res.status < 300) { + return self.callback(err, res); + } + + var new_err = new Error(res.statusText || 'Unsuccessful HTTP response'); + new_err.original = err; + new_err.response = res; + new_err.status = res.status; + + self.callback(err || new_err, res); + }); +} + +/** + * Mixin `Emitter`. + */ + +Emitter(Request.prototype); + +/** + * Allow for extension + */ + +Request.prototype.use = function(fn) { + fn(this); + return this; +} + +/** + * Set timeout to `ms`. + * + * @param {Number} ms + * @return {Request} for chaining + * @api public + */ + +Request.prototype.timeout = function(ms){ + this._timeout = ms; + return this; +}; + +/** + * Clear previous timeout. + * + * @return {Request} for chaining + * @api public + */ + +Request.prototype.clearTimeout = function(){ + this._timeout = 0; + clearTimeout(this._timer); + return this; +}; + +/** + * Abort the request, and clear potential timeout. + * + * @return {Request} + * @api public + */ + +Request.prototype.abort = function(){ + if (this.aborted) return; + this.aborted = true; + this.xhr.abort(); + this.clearTimeout(); + this.emit('abort'); + return this; +}; + +/** + * Set header `field` to `val`, or multiple fields with one object. + * + * Examples: + * + * req.get('/') + * .set('Accept', 'application/json') + * .set('X-API-Key', 'foobar') + * .end(callback); + * + * req.get('/') + * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' }) + * .end(callback); + * + * @param {String|Object} field + * @param {String} val + * @return {Request} for chaining + * @api public + */ + +Request.prototype.set = function(field, val){ + if (isObject(field)) { + for (var key in field) { + this.set(key, field[key]); + } + return this; + } + this._header[field.toLowerCase()] = val; + this.header[field] = val; + return this; +}; + +/** + * Remove header `field`. + * + * Example: + * + * req.get('/') + * .unset('User-Agent') + * .end(callback); + * + * @param {String} field + * @return {Request} for chaining + * @api public + */ + +Request.prototype.unset = function(field){ + delete this._header[field.toLowerCase()]; + delete this.header[field]; + return this; +}; + +/** + * Get case-insensitive header `field` value. + * + * @param {String} field + * @return {String} + * @api private + */ + +Request.prototype.getHeader = function(field){ + return this._header[field.toLowerCase()]; +}; + +/** + * Set Content-Type to `type`, mapping values from `request.types`. + * + * Examples: + * + * superagent.types.xml = 'application/xml'; + * + * request.post('/') + * .type('xml') + * .send(xmlstring) + * .end(callback); + * + * request.post('/') + * .type('application/xml') + * .send(xmlstring) + * .end(callback); + * + * @param {String} type + * @return {Request} for chaining + * @api public + */ + +Request.prototype.type = function(type){ + this.set('Content-Type', request.types[type] || type); + return this; +}; + +/** + * Set Accept to `type`, mapping values from `request.types`. + * + * Examples: + * + * superagent.types.json = 'application/json'; + * + * request.get('/agent') + * .accept('json') + * .end(callback); + * + * request.get('/agent') + * .accept('application/json') + * .end(callback); + * + * @param {String} accept + * @return {Request} for chaining + * @api public + */ + +Request.prototype.accept = function(type){ + this.set('Accept', request.types[type] || type); + return this; +}; + +/** + * Set Authorization field value with `user` and `pass`. + * + * @param {String} user + * @param {String} pass + * @return {Request} for chaining + * @api public + */ + +Request.prototype.auth = function(user, pass){ + var str = btoa(user + ':' + pass); + this.set('Authorization', 'Basic ' + str); + return this; +}; + +/** +* Add query-string `val`. +* +* Examples: +* +* request.get('/shoes') +* .query('size=10') +* .query({ color: 'blue' }) +* +* @param {Object|String} val +* @return {Request} for chaining +* @api public +*/ + +Request.prototype.query = function(val){ + if ('string' != typeof val) val = serialize(val); + if (val) this._query.push(val); + return this; +}; + +/** + * Write the field `name` and `val` for "multipart/form-data" + * request bodies. + * + * ``` js + * request.post('/upload') + * .field('foo', 'bar') + * .end(callback); + * ``` + * + * @param {String} name + * @param {String|Blob|File} val + * @return {Request} for chaining + * @api public + */ + +Request.prototype.field = function(name, val){ + if (!this._formData) this._formData = new root.FormData(); + this._formData.append(name, val); + return this; +}; + +/** + * Queue the given `file` as an attachment to the specified `field`, + * with optional `filename`. + * + * ``` js + * request.post('/upload') + * .attach(new Blob(['<a id="a"><b id="b">hey!</b></a>'], { type: "text/html"})) + * .end(callback); + * ``` + * + * @param {String} field + * @param {Blob|File} file + * @param {String} filename + * @return {Request} for chaining + * @api public + */ + +Request.prototype.attach = function(field, file, filename){ + if (!this._formData) this._formData = new root.FormData(); + this._formData.append(field, file, filename); + return this; +}; + +/** + * Send `data`, defaulting the `.type()` to "json" when + * an object is given. + * + * Examples: + * + * // querystring + * request.get('/search') + * .end(callback) + * + * // multiple data "writes" + * request.get('/search') + * .send({ search: 'query' }) + * .send({ range: '1..5' }) + * .send({ order: 'desc' }) + * .end(callback) + * + * // manual json + * request.post('/user') + * .type('json') + * .send('{"name":"tj"}) + * .end(callback) + * + * // auto json + * request.post('/user') + * .send({ name: 'tj' }) + * .end(callback) + * + * // manual x-www-form-urlencoded + * request.post('/user') + * .type('form') + * .send('name=tj') + * .end(callback) + * + * // auto x-www-form-urlencoded + * request.post('/user') + * .type('form') + * .send({ name: 'tj' }) + * .end(callback) + * + * // defaults to x-www-form-urlencoded + * request.post('/user') + * .send('name=tobi') + * .send('species=ferret') + * .end(callback) + * + * @param {String|Object} data + * @return {Request} for chaining + * @api public + */ + +Request.prototype.send = function(data){ + var obj = isObject(data); + var type = this.getHeader('Content-Type'); + + // merge + if (obj && isObject(this._data)) { + for (var key in data) { + this._data[key] = data[key]; + } + } else if ('string' == typeof data) { + if (!type) this.type('form'); + type = this.getHeader('Content-Type'); + if ('application/x-www-form-urlencoded' == type) { + this._data = this._data + ? this._data + '&' + data + : data; + } else { + this._data = (this._data || '') + data; + } + } else { + this._data = data; + } + + if (!obj || isHost(data)) return this; + if (!type) this.type('json'); + return this; +}; + +/** + * Invoke the callback with `err` and `res` + * and handle arity check. + * + * @param {Error} err + * @param {Response} res + * @api private + */ + +Request.prototype.callback = function(err, res){ + var fn = this._callback; + this.clearTimeout(); + fn(err, res); +}; + +/** + * Invoke callback with x-domain error. + * + * @api private + */ + +Request.prototype.crossDomainError = function(){ + var err = new Error('Origin is not allowed by Access-Control-Allow-Origin'); + err.crossDomain = true; + this.callback(err); +}; + +/** + * Invoke callback with timeout error. + * + * @api private + */ + +Request.prototype.timeoutError = function(){ + var timeout = this._timeout; + var err = new Error('timeout of ' + timeout + 'ms exceeded'); + err.timeout = timeout; + this.callback(err); +}; + +/** + * Enable transmission of cookies with x-domain requests. + * + * Note that for this to work the origin must not be + * using "Access-Control-Allow-Origin" with a wildcard, + * and also must set "Access-Control-Allow-Credentials" + * to "true". + * + * @api public + */ + +Request.prototype.withCredentials = function(){ + this._withCredentials = true; + return this; +}; + +/** + * Initiate request, invoking callback `fn(res)` + * with an instanceof `Response`. + * + * @param {Function} fn + * @return {Request} for chaining + * @api public + */ + +Request.prototype.end = function(fn){ + var self = this; + var xhr = this.xhr = request.getXHR(); + var query = this._query.join('&'); + var timeout = this._timeout; + var data = this._formData || this._data; + + // store callback + this._callback = fn || noop; + + // state change + xhr.onreadystatechange = function(){ + if (4 != xhr.readyState) return; + + // In IE9, reads to any property (e.g. status) off of an aborted XHR will + // result in the error "Could not complete the operation due to error c00c023f" + var status; + try { status = xhr.status } catch(e) { status = 0; } + + if (0 == status) { + if (self.timedout) return self.timeoutError(); + if (self.aborted) return; + return self.crossDomainError(); + } + self.emit('end'); + }; + + // progress + var handleProgress = function(e){ + if (e.total > 0) { + e.percent = e.loaded / e.total * 100; + } + self.emit('progress', e); + }; + if (this.hasListeners('progress')) { + xhr.onprogress = handleProgress; + } + try { + if (xhr.upload && this.hasListeners('progress')) { + xhr.upload.onprogress = handleProgress; + } + } catch(e) { + // Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist. + // Reported here: + // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context + } + + // timeout + if (timeout && !this._timer) { + this._timer = setTimeout(function(){ + self.timedout = true; + self.abort(); + }, timeout); + } + + // querystring + if (query) { + query = request.serializeObject(query); + this.url += ~this.url.indexOf('?') + ? '&' + query + : '?' + query; + } + + // initiate request + xhr.open(this.method, this.url, true); + + // CORS + if (this._withCredentials) xhr.withCredentials = true; + + // body + if ('GET' != this.method && 'HEAD' != this.method && 'string' != typeof data && !isHost(data)) { + // serialize stuff + var serialize = request.serialize[this.getHeader('Content-Type')]; + if (serialize) data = serialize(data); + } + + // set header fields + for (var field in this.header) { + if (null == this.header[field]) continue; + xhr.setRequestHeader(field, this.header[field]); + } + + // send stuff + this.emit('request', this); + xhr.send(data); + return this; +}; + +/** + * Expose `Request`. + */ + +request.Request = Request; + +/** + * Issue a request: + * + * Examples: + * + * request('GET', '/users').end(callback) + * request('/users').end(callback) + * request('/users', callback) + * + * @param {String} method + * @param {String|Function} url or callback + * @return {Request} + * @api public + */ + +function request(method, url) { + // callback + if ('function' == typeof url) { + return new Request('GET', method).end(url); + } + + // url first + if (1 == arguments.length) { + return new Request('GET', method); + } + + return new Request(method, url); +} + +/** + * GET `url` with optional callback `fn(res)`. + * + * @param {String} url + * @param {Mixed|Function} data or fn + * @param {Function} fn + * @return {Request} + * @api public + */ + +request.get = function(url, data, fn){ + var req = request('GET', url); + if ('function' == typeof data) fn = data, data = null; + if (data) req.query(data); + if (fn) req.end(fn); + return req; +}; + +/** + * HEAD `url` with optional callback `fn(res)`. + * + * @param {String} url + * @param {Mixed|Function} data or fn + * @param {Function} fn + * @return {Request} + * @api public + */ + +request.head = function(url, data, fn){ + var req = request('HEAD', url); + if ('function' == typeof data) fn = data, data = null; + if (data) req.send(data); + if (fn) req.end(fn); + return req; +}; + +/** + * DELETE `url` with optional callback `fn(res)`. + * + * @param {String} url + * @param {Function} fn + * @return {Request} + * @api public + */ + +request.del = function(url, fn){ + var req = request('DELETE', url); + if (fn) req.end(fn); + return req; +}; + +/** + * PATCH `url` with optional `data` and callback `fn(res)`. + * + * @param {String} url + * @param {Mixed} data + * @param {Function} fn + * @return {Request} + * @api public + */ + +request.patch = function(url, data, fn){ + var req = request('PATCH', url); + if ('function' == typeof data) fn = data, data = null; + if (data) req.send(data); + if (fn) req.end(fn); + return req; +}; + +/** + * POST `url` with optional `data` and callback `fn(res)`. + * + * @param {String} url + * @param {Mixed} data + * @param {Function} fn + * @return {Request} + * @api public + */ + +request.post = function(url, data, fn){ + var req = request('POST', url); + if ('function' == typeof data) fn = data, data = null; + if (data) req.send(data); + if (fn) req.end(fn); + return req; +}; + +/** + * PUT `url` with optional `data` and callback `fn(res)`. + * + * @param {String} url + * @param {Mixed|Function} data or fn + * @param {Function} fn + * @return {Request} + * @api public + */ + +request.put = function(url, data, fn){ + var req = request('PUT', url); + if ('function' == typeof data) fn = data, data = null; + if (data) req.send(data); + if (fn) req.end(fn); + return req; +}; + +/** + * Expose `request`. + */ + +module.exports = request; + +},{"emitter":161,"reduce":162}],161:[function(require,module,exports){ + +/** + * Expose `Emitter`. + */ + +module.exports = Emitter; + +/** + * Initialize a new `Emitter`. + * + * @api public + */ + +function Emitter(obj) { + if (obj) return mixin(obj); +}; + +/** + * Mixin the emitter properties. + * + * @param {Object} obj + * @return {Object} + * @api private + */ + +function mixin(obj) { + for (var key in Emitter.prototype) { + obj[key] = Emitter.prototype[key]; + } + return obj; +} + +/** + * Listen on the given `event` with `fn`. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.on = +Emitter.prototype.addEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + (this._callbacks[event] = this._callbacks[event] || []) + .push(fn); + return this; +}; + +/** + * Adds an `event` listener that will be invoked a single + * time then automatically removed. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.once = function(event, fn){ + var self = this; + this._callbacks = this._callbacks || {}; + + function on() { + self.off(event, on); + fn.apply(this, arguments); + } + + on.fn = fn; + this.on(event, on); + return this; +}; + +/** + * Remove the given callback for `event` or all + * registered callbacks. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.off = +Emitter.prototype.removeListener = +Emitter.prototype.removeAllListeners = +Emitter.prototype.removeEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + + // all + if (0 == arguments.length) { + this._callbacks = {}; + return this; + } + + // specific event + var callbacks = this._callbacks[event]; + if (!callbacks) return this; + + // remove all handlers + if (1 == arguments.length) { + delete this._callbacks[event]; + return this; + } + + // remove specific handler + var cb; + for (var i = 0; i < callbacks.length; i++) { + cb = callbacks[i]; + if (cb === fn || cb.fn === fn) { + callbacks.splice(i, 1); + break; + } + } + return this; +}; + +/** + * Emit `event` with the given args. + * + * @param {String} event + * @param {Mixed} ... + * @return {Emitter} + */ + +Emitter.prototype.emit = function(event){ + this._callbacks = this._callbacks || {}; + var args = [].slice.call(arguments, 1) + , callbacks = this._callbacks[event]; + + if (callbacks) { + callbacks = callbacks.slice(0); + for (var i = 0, len = callbacks.length; i < len; ++i) { + callbacks[i].apply(this, args); + } + } + + return this; +}; + +/** + * Return array of callbacks for `event`. + * + * @param {String} event + * @return {Array} + * @api public + */ + +Emitter.prototype.listeners = function(event){ + this._callbacks = this._callbacks || {}; + return this._callbacks[event] || []; +}; + +/** + * Check if this emitter has `event` handlers. + * + * @param {String} event + * @return {Boolean} + * @api public + */ + +Emitter.prototype.hasListeners = function(event){ + return !! this.listeners(event).length; +}; + +},{}],162:[function(require,module,exports){ + +/** + * Reduce `arr` with `fn`. + * + * @param {Array} arr + * @param {Function} fn + * @param {Mixed} initial + * + * TODO: combatible error handling? + */ + +module.exports = function(arr, fn, initial){ + var idx = 0; + var len = arr.length; + var curr = arguments.length == 3 + ? initial + : arr[idx++]; + + while (idx < len) { + curr = fn.call(null, curr, arr[idx], ++idx, arr); + } + + return curr; +}; +},{}]},{},[1])(1) +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJpbmRleC5qcyIsImxpYi9hdXRoLmpzIiwibGliL2NsaWVudC5qcyIsImxpYi9oZWxwZXJzLmpzIiwibGliL2h0dHAuanMiLCJsaWIvcmVzb2x2ZXIuanMiLCJsaWIvc2NoZW1hLW1hcmt1cC5qcyIsImxpYi9zcGVjLWNvbnZlcnRlci5qcyIsImxpYi90eXBlcy9tb2RlbC5qcyIsImxpYi90eXBlcy9vcGVyYXRpb24uanMiLCJsaWIvdHlwZXMvb3BlcmF0aW9uR3JvdXAuanMiLCJub2RlX21vZHVsZXMvYnJvd3NlcmlmeS9ub2RlX21vZHVsZXMvYnJvd3Nlci1yZXNvbHZlL2VtcHR5LmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2J1ZmZlci9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9idWZmZXIvbm9kZV9tb2R1bGVzL2Jhc2U2NC1qcy9saWIvYjY0LmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL2J1ZmZlci9ub2RlX21vZHVsZXMvaWVlZTc1NC9pbmRleC5qcyIsIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9idWZmZXIvbm9kZV9tb2R1bGVzL2lzLWFycmF5L2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2Jyb3dzZXJpZnkvbm9kZV9tb2R1bGVzL3Byb2Nlc3MvYnJvd3Nlci5qcyIsIm5vZGVfbW9kdWxlcy9idG9hL2luZGV4LmpzIiwibm9kZV9tb2R1bGVzL2Nvb2tpZWphci9jb29raWVqYXIuanMiLCJub2RlX21vZHVsZXMvanF1ZXJ5L2Rpc3QvanF1ZXJ5LmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvaW5kZXguanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL2NvbW1vbi5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL2R1bXBlci5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL2V4Y2VwdGlvbi5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL2xvYWRlci5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL21hcmsuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9zY2hlbWEuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9zY2hlbWEvY29yZS5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3NjaGVtYS9kZWZhdWx0X2Z1bGwuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC9zY2hlbWEvZGVmYXVsdF9zYWZlLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvc2NoZW1hL2ZhaWxzYWZlLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvc2NoZW1hL2pzb24uanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9iaW5hcnkuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL2Jvb2wuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL2Zsb2F0LmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9pbnQuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL2pzL2Z1bmN0aW9uLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9qcy9yZWdleHAuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL2pzL3VuZGVmaW5lZC5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvbWFwLmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9tZXJnZS5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvbnVsbC5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvb21hcC5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvcGFpcnMuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL3NlcS5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL2xpYi9qcy15YW1sL3R5cGUvc2V0LmpzIiwibm9kZV9tb2R1bGVzL2pzLXlhbWwvbGliL2pzLXlhbWwvdHlwZS9zdHIuanMiLCJub2RlX21vZHVsZXMvanMteWFtbC9saWIvanMteWFtbC90eXBlL3RpbWVzdGFtcC5qcyIsIm5vZGVfbW9kdWxlcy9qcy15YW1sL25vZGVfbW9kdWxlcy9lc3ByaW1hL2VzcHJpbWEuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9hcnJheS9pbmRleE9mLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvYXJyYXkvbGFzdC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2NoYWluL2xvZGFzaC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2NvbGxlY3Rpb24vZWFjaC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2NvbGxlY3Rpb24vZmluZC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2NvbGxlY3Rpb24vZm9yRWFjaC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2NvbGxlY3Rpb24vaW5jbHVkZXMuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9jb2xsZWN0aW9uL21hcC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2RhdGUvbm93LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvZnVuY3Rpb24vYmluZC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2Z1bmN0aW9uL3Jlc3RQYXJhbS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL0xhenlXcmFwcGVyLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvTG9kYXNoV3JhcHBlci5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2FycmF5Q29weS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2FycmF5RWFjaC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2FycmF5TWFwLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYXJyYXlTb21lLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZUFzc2lnbi5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VDYWxsYmFjay5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VDbG9uZS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VDb3B5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZUNyZWF0ZS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VFYWNoLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZUZpbmQuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlRmluZEluZGV4LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZUZvci5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VGb3JJbi5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VGb3JPd24uanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlR2V0LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZUluZGV4T2YuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlSXNFcXVhbC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VJc0VxdWFsRGVlcC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VJc01hdGNoLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZUxvZGFzaC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VNYXAuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlTWF0Y2hlcy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2Jhc2VNYXRjaGVzUHJvcGVydHkuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlUHJvcGVydHkuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlUHJvcGVydHlEZWVwLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmFzZVNldERhdGEuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlU2xpY2UuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlVG9TdHJpbmcuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iYXNlVmFsdWVzLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmluYXJ5SW5kZXguanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9iaW5hcnlJbmRleEJ5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYmluZENhbGxiYWNrLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvYnVmZmVyQ2xvbmUuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9jb21wb3NlQXJncy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2NvbXBvc2VBcmdzUmlnaHQuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9jcmVhdGVCYXNlRWFjaC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2NyZWF0ZUJhc2VGb3IuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9jcmVhdGVCaW5kV3JhcHBlci5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2NyZWF0ZUN0b3JXcmFwcGVyLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvY3JlYXRlRmluZC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2NyZWF0ZUZvckVhY2guanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9jcmVhdGVIeWJyaWRXcmFwcGVyLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvY3JlYXRlUGFydGlhbFdyYXBwZXIuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9jcmVhdGVXcmFwcGVyLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvZXF1YWxBcnJheXMuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9lcXVhbEJ5VGFnLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvZXF1YWxPYmplY3RzLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvZ2V0RGF0YS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2dldEZ1bmNOYW1lLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvZ2V0TGVuZ3RoLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvZ2V0TWF0Y2hEYXRhLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvZ2V0TmF0aXZlLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvaW5kZXhPZk5hTi5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2luaXRDbG9uZUFycmF5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvaW5pdENsb25lQnlUYWcuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9pbml0Q2xvbmVPYmplY3QuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9pc0FycmF5TGlrZS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2lzSG9zdE9iamVjdC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2lzSW5kZXguanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9pc0l0ZXJhdGVlQ2FsbC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2lzS2V5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvaXNMYXppYWJsZS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL2lzTGVuZ3RoLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvaXNPYmplY3RMaWtlLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvaXNTdHJpY3RDb21wYXJhYmxlLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvbWVyZ2VEYXRhLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvbWV0YU1hcC5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL3JlYWxOYW1lcy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL3Jlb3JkZXIuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9yZXBsYWNlSG9sZGVycy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL3NldERhdGEuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9pbnRlcm5hbC9zaGltS2V5cy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2ludGVybmFsL3RvT2JqZWN0LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvdG9QYXRoLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvaW50ZXJuYWwvd3JhcHBlckNsb25lLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvbGFuZy9jbG9uZURlZXAuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9sYW5nL2lzQXJndW1lbnRzLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvbGFuZy9pc0FycmF5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvbGFuZy9pc0VtcHR5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvbGFuZy9pc0Z1bmN0aW9uLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvbGFuZy9pc05hdGl2ZS5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L2xhbmcvaXNPYmplY3QuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9sYW5nL2lzUGxhaW5PYmplY3QuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9sYW5nL2lzU3RyaW5nLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvbGFuZy9pc1R5cGVkQXJyYXkuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9sYW5nL2lzVW5kZWZpbmVkLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvb2JqZWN0L2tleXMuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC9vYmplY3Qva2V5c0luLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvb2JqZWN0L3BhaXJzLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvb2JqZWN0L3ZhbHVlcy5qcyIsIm5vZGVfbW9kdWxlcy9sb2Rhc2gtY29tcGF0L3N1cHBvcnQuanMiLCJub2RlX21vZHVsZXMvbG9kYXNoLWNvbXBhdC91dGlsaXR5L2lkZW50aXR5LmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvdXRpbGl0eS9ub29wLmpzIiwibm9kZV9tb2R1bGVzL2xvZGFzaC1jb21wYXQvdXRpbGl0eS9wcm9wZXJ0eS5qcyIsIm5vZGVfbW9kdWxlcy9zdXBlcmFnZW50L2xpYi9jbGllbnQuanMiLCJub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9ub2RlX21vZHVsZXMvY29tcG9uZW50LWVtaXR0ZXIvaW5kZXguanMiLCJub2RlX21vZHVsZXMvc3VwZXJhZ2VudC9ub2RlX21vZHVsZXMvcmVkdWNlLWNvbXBvbmVudC9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDM0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuZ0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25EQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeFBBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25uQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5Z0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMvbUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcjZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hCQTs7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3NUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMS9SQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMTBCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbGpEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2TEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDeERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pzS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0hBO0FBQ0E7O0FDREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzdDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNiQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3ZDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3BCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM5Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3RGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNuREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDaERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDekJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNyRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDckJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDWkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDZkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNaQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ0pBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM3QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3pDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUMxQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN2REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNsQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUN4Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQy9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDNUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNoRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ25DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDMUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3JCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzlDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNqQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDakNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2hHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDL0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDbm1DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDcEtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIGUodCxuLHIpe2Z1bmN0aW9uIHMobyx1KXtpZighbltvXSl7aWYoIXRbb10pe3ZhciBhPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7aWYoIXUmJmEpcmV0dXJuIGEobywhMCk7aWYoaSlyZXR1cm4gaShvLCEwKTt2YXIgZj1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK28rXCInXCIpO3Rocm93IGYuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixmfXZhciBsPW5bb109e2V4cG9ydHM6e319O3Rbb11bMF0uY2FsbChsLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIG49dFtvXVsxXVtlXTtyZXR1cm4gcyhuP246ZSl9LGwsbC5leHBvcnRzLGUsdCxuLHIpfXJldHVybiBuW29dLmV4cG9ydHN9dmFyIGk9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylzKHJbb10pO3JldHVybiBzfSkiLCIndXNlIHN0cmljdCc7XG5cbnZhciBhdXRoID0gcmVxdWlyZSgnLi9saWIvYXV0aCcpO1xudmFyIGhlbHBlcnMgPSByZXF1aXJlKCcuL2xpYi9oZWxwZXJzJyk7XG52YXIgU3dhZ2dlckNsaWVudCA9IHJlcXVpcmUoJy4vbGliL2NsaWVudCcpO1xudmFyIGRlcHJlY2F0aW9uV3JhcHBlciA9IGZ1bmN0aW9uICh1cmwsIG9wdGlvbnMpIHtcbiAgaGVscGVycy5sb2coJ1RoaXMgaXMgZGVwcmVjYXRlZCwgdXNlIFwibmV3IFN3YWdnZXJDbGllbnRcIiBpbnN0ZWFkLicpO1xuXG4gIHJldHVybiBuZXcgU3dhZ2dlckNsaWVudCh1cmwsIG9wdGlvbnMpO1xufTtcblxuLyogSGVyZSBmb3IgSUU4IFN1cHBvcnQgKi9cbmlmICghQXJyYXkucHJvdG90eXBlLmluZGV4T2YpIHtcbiAgQXJyYXkucHJvdG90eXBlLmluZGV4T2YgPSBmdW5jdGlvbihvYmosIHN0YXJ0KSB7XG4gICAgZm9yICh2YXIgaSA9IChzdGFydCB8fCAwKSwgaiA9IHRoaXMubGVuZ3RoOyBpIDwgajsgaSsrKSB7XG4gICAgICBpZiAodGhpc1tpXSA9PT0gb2JqKSB7IHJldHVybiBpOyB9XG4gICAgfVxuICAgIHJldHVybiAtMTtcbiAgfTtcbn1cblxuLyogSGVyZSBmb3IgSUU4IFN1cHBvcnQgKi9cbmlmICghU3RyaW5nLnByb3RvdHlwZS50cmltKSB7XG4gIFN0cmluZy5wcm90b3R5cGUudHJpbSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXBsYWNlKC9eXFxzK3xcXHMrJC9nLCAnJyk7XG4gIH07XG59XG5cbi8qIEhlcmUgZm9yIG5vZGUgMTAueCBzdXBwb3J0ICovXG5pZiAoIVN0cmluZy5wcm90b3R5cGUuZW5kc1dpdGgpIHtcbiAgU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aCA9IGZ1bmN0aW9uKHN1ZmZpeCkge1xuICAgIHJldHVybiB0aGlzLmluZGV4T2Yoc3VmZml4LCB0aGlzLmxlbmd0aCAtIHN1ZmZpeC5sZW5ndGgpICE9PSAtMTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBTd2FnZ2VyQ2xpZW50O1xuXG5Td2FnZ2VyQ2xpZW50LkFwaUtleUF1dGhvcml6YXRpb24gPSBhdXRoLkFwaUtleUF1dGhvcml6YXRpb247XG5Td2FnZ2VyQ2xpZW50LlBhc3N3b3JkQXV0aG9yaXphdGlvbiA9IGF1dGguUGFzc3dvcmRBdXRob3JpemF0aW9uO1xuU3dhZ2dlckNsaWVudC5Db29raWVBdXRob3JpemF0aW9uID0gYXV0aC5Db29raWVBdXRob3JpemF0aW9uO1xuU3dhZ2dlckNsaWVudC5Td2FnZ2VyQXBpID0gZGVwcmVjYXRpb25XcmFwcGVyO1xuU3dhZ2dlckNsaWVudC5Td2FnZ2VyQ2xpZW50ID0gZGVwcmVjYXRpb25XcmFwcGVyO1xuU3dhZ2dlckNsaWVudC5TY2hlbWFNYXJrdXAgPSByZXF1aXJlKCcuL2xpYi9zY2hlbWEtbWFya3VwJyk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBoZWxwZXJzID0gcmVxdWlyZSgnLi9oZWxwZXJzJyk7XG52YXIgYnRvYSA9IHJlcXVpcmUoJ2J0b2EnKTsgLy8ganNoaW50IGlnbm9yZTpsaW5lXG52YXIgQ29va2llSmFyID0gcmVxdWlyZSgnY29va2llamFyJyk7XG52YXIgXyA9IHtcbiAgZWFjaDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9jb2xsZWN0aW9uL2VhY2gnKSxcbiAgaW5jbHVkZXM6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvY29sbGVjdGlvbi9pbmNsdWRlcycpLFxuICBpc09iamVjdDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2lzT2JqZWN0JyksXG4gIGlzQXJyYXk6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9pc0FycmF5Jylcbn07XG5cbi8qKlxuICogU3dhZ2dlckF1dGhvcml6YXRpb25zIGFwcGx5cyB0aGUgY29ycmVjdCBhdXRob3JpemF0aW9uIHRvIGFuIG9wZXJhdGlvbiBiZWluZyBleGVjdXRlZFxuICovXG52YXIgU3dhZ2dlckF1dGhvcml6YXRpb25zID0gbW9kdWxlLmV4cG9ydHMuU3dhZ2dlckF1dGhvcml6YXRpb25zID0gZnVuY3Rpb24gKGF1dGh6KSB7XG4gIHRoaXMuYXV0aHogPSBhdXRoeiB8fCB7fTtcbn07XG5cbi8qKlxuICogQWRkIGF1dGhzIHRvIHRoZSBoYXNoXG4gKiBXaWxsIG92ZXJ3cml0ZSBhbnkgZXhpc3RpbmdcbiAqXG4gKi9cblN3YWdnZXJBdXRob3JpemF0aW9ucy5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gKG5hbWUsIGF1dGgpIHtcbiAgaWYoXy5pc09iamVjdChuYW1lKSkge1xuICAgIGZvciAodmFyIGtleSBpbiBuYW1lKSB7XG4gICAgICB0aGlzLmF1dGh6W2tleV0gPSBuYW1lW2tleV07XG4gICAgfVxuICB9IGVsc2UgaWYodHlwZW9mIG5hbWUgPT09ICdzdHJpbmcnICl7XG4gICAgdGhpcy5hdXRoeltuYW1lXSA9IGF1dGg7XG4gIH1cblxuICByZXR1cm4gYXV0aDtcbn07XG5cblN3YWdnZXJBdXRob3JpemF0aW9ucy5wcm90b3R5cGUucmVtb3ZlID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgcmV0dXJuIGRlbGV0ZSB0aGlzLmF1dGh6W25hbWVdO1xufTtcblxuU3dhZ2dlckF1dGhvcml6YXRpb25zLnByb3RvdHlwZS5hcHBseSA9IGZ1bmN0aW9uIChvYmosIHNlY3VyaXRpZXMpIHtcbiAgdmFyIHN0YXR1cyA9IHRydWU7XG4gIHZhciBhcHBseUFsbCA9ICFzZWN1cml0aWVzO1xuICB2YXIgZmxhdHRlbmVkU2VjdXJpdGllcyA9IFtdO1xuXG4gIC8vIFNlY3VyaXRpZXMgY291bGQgYmUgWyB7fSBdXG4gIF8uZWFjaChzZWN1cml0aWVzLCBmdW5jdGlvbiAob2JqLCBrZXkpIHtcblxuICAgIC8vIE1ha2Ugc3VyZSB3ZSBhY2NvdW50IGZvciBzZWN1cml0aWVzIGJlaW5nIFsgc3RyIF1cbiAgICBpZih0eXBlb2Yga2V5ID09PSAnc3RyaW5nJykge1xuICAgICAgZmxhdHRlbmVkU2VjdXJpdGllcy5wdXNoKGtleSk7XG4gICAgfVxuXG4gICAgLy8gRmxhdHRlbiBrZXlzIGluIHRvIG91ciBhcnJheVxuICAgIF8uZWFjaChvYmosIGZ1bmN0aW9uICh2YWwsIGtleSkge1xuICAgICAgZmxhdHRlbmVkU2VjdXJpdGllcy5wdXNoKGtleSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIF8uZWFjaCh0aGlzLmF1dGh6LCBmdW5jdGlvbiAoYXV0aCwgYXV0aE5hbWUpIHtcbiAgICBpZihhcHBseUFsbCB8fCBfLmluY2x1ZGVzKGZsYXR0ZW5lZFNlY3VyaXRpZXMsIGF1dGhOYW1lKSkge1xuICAgICAgdmFyIG5ld1N0YXR1cyA9IGF1dGguYXBwbHkob2JqKTtcbiAgICAgIHN0YXR1cyA9IHN0YXR1cyAmJiAhIW5ld1N0YXR1czsgLy8gbG9naWNhbCBPUnMgcmVnYXJkaW5nIHN0YXR1c1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHN0YXR1cztcbn07XG5cbi8qKlxuICogQXBpS2V5QXV0aG9yaXphdGlvbiBhbGxvd3MgYSBxdWVyeSBwYXJhbSBvciBoZWFkZXIgdG8gYmUgaW5qZWN0ZWRcbiAqL1xudmFyIEFwaUtleUF1dGhvcml6YXRpb24gPSBtb2R1bGUuZXhwb3J0cy5BcGlLZXlBdXRob3JpemF0aW9uID0gZnVuY3Rpb24gKG5hbWUsIHZhbHVlLCB0eXBlKSB7XG4gIHRoaXMubmFtZSA9IG5hbWU7XG4gIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgdGhpcy50eXBlID0gdHlwZTtcbn07XG5cbkFwaUtleUF1dGhvcml6YXRpb24ucHJvdG90eXBlLmFwcGx5ID0gZnVuY3Rpb24gKG9iaikge1xuICBpZiAodGhpcy50eXBlID09PSAncXVlcnknKSB7XG4gICAgaWYgKG9iai51cmwuaW5kZXhPZignPycpID4gMCkge1xuICAgICAgb2JqLnVybCA9IG9iai51cmwgKyAnJicgKyB0aGlzLm5hbWUgKyAnPScgKyB0aGlzLnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBvYmoudXJsID0gb2JqLnVybCArICc/JyArIHRoaXMubmFtZSArICc9JyArIHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnaGVhZGVyJykge1xuICAgIGlmKHR5cGVvZiBvYmouaGVhZGVyc1t0aGlzLm5hbWVdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgb2JqLmhlYWRlcnNbdGhpcy5uYW1lXSA9IHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG5cbnZhciBDb29raWVBdXRob3JpemF0aW9uID0gbW9kdWxlLmV4cG9ydHMuQ29va2llQXV0aG9yaXphdGlvbiA9IGZ1bmN0aW9uIChjb29raWUpIHtcbiAgdGhpcy5jb29raWUgPSBjb29raWU7XG59O1xuXG5Db29raWVBdXRob3JpemF0aW9uLnByb3RvdHlwZS5hcHBseSA9IGZ1bmN0aW9uIChvYmopIHtcbiAgb2JqLmNvb2tpZUphciA9IG9iai5jb29raWVKYXIgfHwgbmV3IENvb2tpZUphcigpO1xuICBvYmouY29va2llSmFyLnNldENvb2tpZSh0aGlzLmNvb2tpZSk7XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG4vKipcbiAqIFBhc3N3b3JkIEF1dGhvcml6YXRpb24gaXMgYSBiYXNpYyBhdXRoIGltcGxlbWVudGF0aW9uXG4gKi9cbnZhciBQYXNzd29yZEF1dGhvcml6YXRpb24gPSBtb2R1bGUuZXhwb3J0cy5QYXNzd29yZEF1dGhvcml6YXRpb24gPSBmdW5jdGlvbiAodXNlcm5hbWUsIHBhc3N3b3JkKSB7XG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAzKSB7XG4gICAgaGVscGVycy5sb2coJ1Bhc3N3b3JkQXV0aG9yaXphdGlvbjogdGhlIFxcJ25hbWVcXCcgYXJndW1lbnQgaGFzIGJlZW4gcmVtb3ZlZCwgcGFzcyBvbmx5IHVzZXJuYW1lIGFuZCBwYXNzd29yZCcpO1xuICAgIHVzZXJuYW1lID0gYXJndW1lbnRzWzFdO1xuICAgIHBhc3N3b3JkID0gYXJndW1lbnRzWzJdO1xuICB9XG4gIHRoaXMudXNlcm5hbWUgPSB1c2VybmFtZTtcbiAgdGhpcy5wYXNzd29yZCA9IHBhc3N3b3JkO1xufTtcblxuUGFzc3dvcmRBdXRob3JpemF0aW9uLnByb3RvdHlwZS5hcHBseSA9IGZ1bmN0aW9uIChvYmopIHtcbiAgaWYodHlwZW9mIG9iai5oZWFkZXJzLkF1dGhvcml6YXRpb24gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgb2JqLmhlYWRlcnMuQXV0aG9yaXphdGlvbiA9ICdCYXNpYyAnICsgYnRvYSh0aGlzLnVzZXJuYW1lICsgJzonICsgdGhpcy5wYXNzd29yZCk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBfID0ge1xuICBiaW5kOiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2Z1bmN0aW9uL2JpbmQnKSxcbiAgY2xvbmVEZWVwOiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvY2xvbmVEZWVwJyksXG4gIGZpbmQ6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvY29sbGVjdGlvbi9maW5kJyksXG4gIGZvckVhY2g6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvY29sbGVjdGlvbi9mb3JFYWNoJyksXG4gIGluZGV4T2Y6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvYXJyYXkvaW5kZXhPZicpLFxuICBpc0FycmF5OiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNBcnJheScpLFxuICBpc09iamVjdDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2lzT2JqZWN0JyksXG4gIGlzRnVuY3Rpb246IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9pc0Z1bmN0aW9uJyksXG4gIGlzUGxhaW5PYmplY3Q6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9pc1BsYWluT2JqZWN0JyksXG4gIGlzVW5kZWZpbmVkOiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNVbmRlZmluZWQnKVxufTtcbnZhciBhdXRoID0gcmVxdWlyZSgnLi9hdXRoJyk7XG52YXIgaGVscGVycyA9IHJlcXVpcmUoJy4vaGVscGVycycpO1xudmFyIE1vZGVsID0gcmVxdWlyZSgnLi90eXBlcy9tb2RlbCcpO1xudmFyIE9wZXJhdGlvbiA9IHJlcXVpcmUoJy4vdHlwZXMvb3BlcmF0aW9uJyk7XG52YXIgT3BlcmF0aW9uR3JvdXAgPSByZXF1aXJlKCcuL3R5cGVzL29wZXJhdGlvbkdyb3VwJyk7XG52YXIgUmVzb2x2ZXIgPSByZXF1aXJlKCcuL3Jlc29sdmVyJyk7XG52YXIgU3dhZ2dlckh0dHAgPSByZXF1aXJlKCcuL2h0dHAnKTtcbnZhciBTd2FnZ2VyU3BlY0NvbnZlcnRlciA9IHJlcXVpcmUoJy4vc3BlYy1jb252ZXJ0ZXInKTtcblxuLy8gV2UgaGF2ZSB0byBrZWVwIHRyYWNrIG9mIHRoZSBmdW5jdGlvbi9wcm9wZXJ0eSBuYW1lcyB0byBhdm9pZCBjb2xsaXNpb25zIGZvciB0YWcgbmFtZXMgd2hpY2ggYXJlIHVzZWQgdG8gYWxsb3cgdGhlXG4vLyBmb2xsb3dpbmcgdXNhZ2U6ICdjbGllbnQue3RhZ05hbWV9J1xudmFyIHJlc2VydmVkQ2xpZW50VGFncyA9IFtcbiAgJ2FwaXMnLFxuICAnYXV0aG9yaXphdGlvblNjaGVtZScsXG4gICdhdXRob3JpemF0aW9ucycsXG4gICdiYXNlUGF0aCcsXG4gICdidWlsZCcsXG4gICdidWlsZEZyb20xXzFTcGVjJyxcbiAgJ2J1aWxkRnJvbTFfMlNwZWMnLFxuICAnYnVpbGRGcm9tU3BlYycsXG4gICdjbGllbnRBdXRob3JpemF0aW9ucycsXG4gICdjb252ZXJ0SW5mbycsXG4gICdkZWJ1ZycsXG4gICdkZWZhdWx0RXJyb3JDYWxsYmFjaycsXG4gICdkZWZhdWx0U3VjY2Vzc0NhbGxiYWNrJyxcbiAgJ2ZhaWwnLFxuICAnZmFpbHVyZScsXG4gICdmaW5pc2gnLFxuICAnaGVscCcsXG4gICdpZEZyb21PcCcsXG4gICdpbmZvJyxcbiAgJ2luaXRpYWxpemUnLFxuICAnaXNCdWlsdCcsXG4gICdpc1ZhbGlkJyxcbiAgJ21vZGVsUHJvcGVydHlNYWNybycsXG4gICdtb2RlbHMnLFxuICAnbW9kZWxzQXJyYXknLFxuICAnb3B0aW9ucycsXG4gICdwYXJhbWV0ZXJNYWNybycsXG4gICdwYXJzZVVyaScsXG4gICdwcm9ncmVzcycsXG4gICdyZXNvdXJjZUNvdW50JyxcbiAgJ3NhbXBsZU1vZGVscycsXG4gICdzZWxmUmVmbGVjdCcsXG4gICdzZXRDb25zb2xpZGF0ZWRNb2RlbHMnLFxuICAnc3BlYycsXG4gICdzdXBwb3J0ZWRTdWJtaXRNZXRob2RzJyxcbiAgJ3N3YWdnZXJSZXF1ZXN0SGVhZGVycycsXG4gICd0YWdGcm9tTGFiZWwnLFxuICAndXJsJyxcbiAgJ3VzZUpRdWVyeSdcbl07XG4vLyBXZSBoYXZlIHRvIGtlZXAgdHJhY2sgb2YgdGhlIGZ1bmN0aW9uL3Byb3BlcnR5IG5hbWVzIHRvIGF2b2lkIGNvbGxpc2lvbnMgZm9yIHRhZyBuYW1lcyB3aGljaCBhcmUgdXNlZCB0byBhbGxvdyB0aGVcbi8vIGZvbGxvd2luZyB1c2FnZTogJ2NsaWVudC5hcGlzLnt0YWdOYW1lfSdcbnZhciByZXNlcnZlZEFwaVRhZ3MgPSBbXG4gICdhcGlzJyxcbiAgJ2FzQ3VybCcsXG4gICdkZXNjcmlwdGlvbicsXG4gICdleHRlcm5hbERvY3MnLFxuICAnaGVscCcsXG4gICdsYWJlbCcsXG4gICduYW1lJyxcbiAgJ29wZXJhdGlvbicsXG4gICdvcGVyYXRpb25zJyxcbiAgJ29wZXJhdGlvbnNBcnJheScsXG4gICdwYXRoJyxcbiAgJ3RhZydcbl07XG52YXIgc3VwcG9ydGVkT3BlcmF0aW9uTWV0aG9kcyA9IFsnZGVsZXRlJywgJ2dldCcsICdoZWFkJywgJ29wdGlvbnMnLCAncGF0Y2gnLCAncG9zdCcsICdwdXQnXTtcbnZhciBTd2FnZ2VyQ2xpZW50ID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodXJsLCBvcHRpb25zKSB7XG4gIHRoaXMuYXV0aG9yaXphdGlvbnMgPSBudWxsO1xuICB0aGlzLmF1dGhvcml6YXRpb25TY2hlbWUgPSBudWxsO1xuICB0aGlzLmJhc2VQYXRoID0gbnVsbDtcbiAgdGhpcy5kZWJ1ZyA9IGZhbHNlO1xuICB0aGlzLmluZm8gPSBudWxsO1xuICB0aGlzLmlzQnVpbHQgPSBmYWxzZTtcbiAgdGhpcy5pc1ZhbGlkID0gZmFsc2U7XG4gIHRoaXMubW9kZWxzQXJyYXkgPSBbXTtcbiAgdGhpcy5yZXNvdXJjZUNvdW50ID0gMDtcbiAgdGhpcy51cmwgPSBudWxsO1xuICB0aGlzLnVzZUpRdWVyeSA9IGZhbHNlO1xuICB0aGlzLnN3YWdnZXJPYmplY3QgPSB7fTtcblxuICB0aGlzLmNsaWVudEF1dGhvcml6YXRpb25zID0gbmV3IGF1dGguU3dhZ2dlckF1dGhvcml6YXRpb25zKCk7XG5cbiAgaWYgKHR5cGVvZiB1cmwgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZSh1cmwsIG9wdGlvbnMpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59O1xuXG5Td2FnZ2VyQ2xpZW50LnByb3RvdHlwZS5pbml0aWFsaXplID0gZnVuY3Rpb24gKHVybCwgb3B0aW9ucykge1xuICB0aGlzLm1vZGVscyA9IHt9O1xuICB0aGlzLnNhbXBsZU1vZGVscyA9IHt9O1xuXG4gIGlmICh0eXBlb2YgdXJsID09PSAnc3RyaW5nJykge1xuICAgIHRoaXMudXJsID0gdXJsO1xuICB9IGVsc2UgaWYgKF8uaXNPYmplY3QodXJsKSkge1xuICAgIG9wdGlvbnMgPSB1cmw7XG4gICAgdGhpcy51cmwgPSBvcHRpb25zLnVybDtcbiAgfVxuXG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICB0aGlzLmNsaWVudEF1dGhvcml6YXRpb25zLmFkZChvcHRpb25zLmF1dGhvcml6YXRpb25zKTtcbiAgdGhpcy5zd2FnZ2VyUmVxdWVzdEhlYWRlcnMgPSBvcHRpb25zLnN3YWdnZXJSZXF1ZXN0SGVhZGVycyB8fCAnYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04LCovKic7XG4gIHRoaXMuZGVmYXVsdFN1Y2Nlc3NDYWxsYmFjayA9IG9wdGlvbnMuZGVmYXVsdFN1Y2Nlc3NDYWxsYmFjayB8fCBudWxsO1xuICB0aGlzLmRlZmF1bHRFcnJvckNhbGxiYWNrID0gb3B0aW9ucy5kZWZhdWx0RXJyb3JDYWxsYmFjayB8fCBudWxsO1xuICB0aGlzLm1vZGVsUHJvcGVydHlNYWNybyA9IG9wdGlvbnMubW9kZWxQcm9wZXJ0eU1hY3JvIHx8IG51bGw7XG4gIHRoaXMucGFyYW1ldGVyTWFjcm8gPSBvcHRpb25zLnBhcmFtZXRlck1hY3JvIHx8IG51bGw7XG5cbiAgaWYgKHR5cGVvZiBvcHRpb25zLnN1Y2Nlc3MgPT09ICdmdW5jdGlvbicpIHtcbiAgICB0aGlzLnN1Y2Nlc3MgPSBvcHRpb25zLnN1Y2Nlc3M7XG4gIH1cblxuICBpZiAob3B0aW9ucy51c2VKUXVlcnkpIHtcbiAgICB0aGlzLnVzZUpRdWVyeSA9IG9wdGlvbnMudXNlSlF1ZXJ5O1xuICB9XG5cbiAgdGhpcy5vcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICB0aGlzLnN1cHBvcnRlZFN1Ym1pdE1ldGhvZHMgPSBvcHRpb25zLnN1cHBvcnRlZFN1Ym1pdE1ldGhvZHMgfHwgW107XG4gIHRoaXMuZmFpbHVyZSA9IG9wdGlvbnMuZmFpbHVyZSB8fCBmdW5jdGlvbiAoKSB7fTtcbiAgdGhpcy5wcm9ncmVzcyA9IG9wdGlvbnMucHJvZ3Jlc3MgfHwgZnVuY3Rpb24gKCkge307XG4gIHRoaXMuc3BlYyA9IF8uY2xvbmVEZWVwKG9wdGlvbnMuc3BlYyk7IC8vIENsb25lIHNvIHdlIGRvIG5vdCBhbHRlciB0aGUgcHJvdmlkZWQgZG9jdW1lbnRcblxuICBpZiAob3B0aW9ucy5zY2hlbWUpIHtcbiAgICB0aGlzLnNjaGVtZSA9IG9wdGlvbnMuc2NoZW1lO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBvcHRpb25zLnN1Y2Nlc3MgPT09ICdmdW5jdGlvbicpIHtcbiAgICB0aGlzLnJlYWR5ID0gdHJ1ZTtcbiAgICB0aGlzLmJ1aWxkKCk7XG4gIH1cbn07XG5cblN3YWdnZXJDbGllbnQucHJvdG90eXBlLmJ1aWxkID0gZnVuY3Rpb24gKG1vY2spIHtcbiAgaWYgKHRoaXMuaXNCdWlsdCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gIHRoaXMucHJvZ3Jlc3MoJ2ZldGNoaW5nIHJlc291cmNlIGxpc3Q6ICcgKyB0aGlzLnVybCk7XG5cbiAgdmFyIG9iaiA9IHtcbiAgICB1c2VKUXVlcnk6IHRoaXMudXNlSlF1ZXJ5LFxuICAgIHVybDogdGhpcy51cmwsXG4gICAgbWV0aG9kOiAnZ2V0JyxcbiAgICBoZWFkZXJzOiB7XG4gICAgICBhY2NlcHQ6IHRoaXMuc3dhZ2dlclJlcXVlc3RIZWFkZXJzXG4gICAgfSxcbiAgICBvbjoge1xuICAgICAgZXJyb3I6IGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICBpZiAoc2VsZi51cmwuc3Vic3RyaW5nKDAsIDQpICE9PSAnaHR0cCcpIHtcbiAgICAgICAgICByZXR1cm4gc2VsZi5mYWlsKCdQbGVhc2Ugc3BlY2lmeSB0aGUgcHJvdG9jb2wgZm9yICcgKyBzZWxmLnVybCk7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHNlbGYuZmFpbCgnQ2FuXFwndCByZWFkIGZyb20gc2VydmVyLiAgSXQgbWF5IG5vdCBoYXZlIHRoZSBhcHByb3ByaWF0ZSBhY2Nlc3MtY29udHJvbC1vcmlnaW4gc2V0dGluZ3MuJyk7XG4gICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgICByZXR1cm4gc2VsZi5mYWlsKCdDYW5cXCd0IHJlYWQgc3dhZ2dlciBKU09OIGZyb20gJyArIHNlbGYudXJsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gc2VsZi5mYWlsKHJlc3BvbnNlLnN0YXR1cyArICcgOiAnICsgcmVzcG9uc2Uuc3RhdHVzVGV4dCArICcgJyArIHNlbGYudXJsKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHJlc3BvbnNlOiBmdW5jdGlvbiAocmVzcCkge1xuXG4gICAgICAgIHZhciByZXNwb25zZU9iaiA9IHJlc3Aub2JqO1xuICAgICAgICBpZighcmVzcG9uc2VPYmopIHtcbiAgICAgICAgICByZXR1cm4gc2VsZi5mYWlsKCdmYWlsZWQgdG8gcGFyc2UgSlNPTi9ZQU1MIHJlc3BvbnNlJyk7XG4gICAgICAgIH1cblxuICAgICAgICBzZWxmLnN3YWdnZXJWZXJzaW9uID0gcmVzcG9uc2VPYmouc3dhZ2dlclZlcnNpb247XG4gICAgICAgIHNlbGYuc3dhZ2dlck9iamVjdCA9IHJlc3BvbnNlT2JqO1xuXG4gICAgICAgIGlmIChyZXNwb25zZU9iai5zd2FnZ2VyICYmIHBhcnNlSW50KHJlc3BvbnNlT2JqLnN3YWdnZXIpID09PSAyKSB7XG4gICAgICAgICAgc2VsZi5zd2FnZ2VyVmVyc2lvbiA9IHJlc3BvbnNlT2JqLnN3YWdnZXI7XG5cbiAgICAgICAgICBuZXcgUmVzb2x2ZXIoKS5yZXNvbHZlKHJlc3BvbnNlT2JqLCBzZWxmLnVybCwgc2VsZi5idWlsZEZyb21TcGVjLCBzZWxmKTtcblxuICAgICAgICAgIHNlbGYuaXNWYWxpZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIGNvbnZlcnRlciA9IG5ldyBTd2FnZ2VyU3BlY0NvbnZlcnRlcigpO1xuICAgICAgICAgIHNlbGYub2xkU3dhZ2dlck9iamVjdCA9IHNlbGYuc3dhZ2dlck9iamVjdDtcblxuICAgICAgICAgIGNvbnZlcnRlci5zZXREb2N1bWVudGF0aW9uTG9jYXRpb24oc2VsZi51cmwpO1xuICAgICAgICAgIGNvbnZlcnRlci5jb252ZXJ0KHJlc3BvbnNlT2JqLCBzZWxmLmNsaWVudEF1dGhvcml6YXRpb25zLCBmdW5jdGlvbihzcGVjKSB7XG4gICAgICAgICAgICBzZWxmLnN3YWdnZXJPYmplY3QgPSBzcGVjO1xuICAgICAgICAgICAgbmV3IFJlc29sdmVyKCkucmVzb2x2ZShzcGVjLCBzZWxmLnVybCwgc2VsZi5idWlsZEZyb21TcGVjLCBzZWxmKTtcbiAgICAgICAgICAgIHNlbGYuaXNWYWxpZCA9IHRydWU7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgaWYgKHRoaXMuc3BlYykge1xuICAgIHNlbGYuc3dhZ2dlck9iamVjdCA9IHRoaXMuc3BlYztcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIG5ldyBSZXNvbHZlcigpLnJlc29sdmUoc2VsZi5zcGVjLCBzZWxmLmJ1aWxkRnJvbVNwZWMsIHNlbGYpO1xuICAgIH0sIDEwKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLmNsaWVudEF1dGhvcml6YXRpb25zLmFwcGx5KG9iaik7XG5cbiAgICBpZiAobW9jaykge1xuICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG5cbiAgICBuZXcgU3dhZ2dlckh0dHAoKS5leGVjdXRlKG9iaiwgdGhpcy5vcHRpb25zKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufTtcblxuU3dhZ2dlckNsaWVudC5wcm90b3R5cGUuYnVpbGRGcm9tU3BlYyA9IGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICBpZiAodGhpcy5pc0J1aWx0KSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB0aGlzLmFwaXMgPSB7fTtcbiAgdGhpcy5hcGlzQXJyYXkgPSBbXTtcbiAgdGhpcy5iYXNlUGF0aCA9IHJlc3BvbnNlLmJhc2VQYXRoIHx8ICcnO1xuICB0aGlzLmNvbnN1bWVzID0gcmVzcG9uc2UuY29uc3VtZXM7XG4gIHRoaXMuaG9zdCA9IHJlc3BvbnNlLmhvc3QgfHwgJyc7XG4gIHRoaXMuaW5mbyA9IHJlc3BvbnNlLmluZm8gfHwge307XG4gIHRoaXMucHJvZHVjZXMgPSByZXNwb25zZS5wcm9kdWNlcztcbiAgdGhpcy5zY2hlbWVzID0gcmVzcG9uc2Uuc2NoZW1lcyB8fCBbXTtcbiAgdGhpcy5zZWN1cml0eURlZmluaXRpb25zID0gcmVzcG9uc2Uuc2VjdXJpdHlEZWZpbml0aW9ucztcbiAgdGhpcy50aXRsZSA9IHJlc3BvbnNlLnRpdGxlIHx8ICcnO1xuXG4gIGlmIChyZXNwb25zZS5leHRlcm5hbERvY3MpIHtcbiAgICB0aGlzLmV4dGVybmFsRG9jcyA9IHJlc3BvbnNlLmV4dGVybmFsRG9jcztcbiAgfVxuXG4gIC8vIGxlZ2FjeSBzdXBwb3J0XG4gIHRoaXMuYXV0aFNjaGVtZXMgPSByZXNwb25zZS5zZWN1cml0eURlZmluaXRpb25zO1xuXG4gIHZhciBkZWZpbmVkVGFncyA9IHt9O1xuICB2YXIgaztcblxuICBpZiAoQXJyYXkuaXNBcnJheShyZXNwb25zZS50YWdzKSkge1xuICAgIGRlZmluZWRUYWdzID0ge307XG5cbiAgICBmb3IgKGsgPSAwOyBrIDwgcmVzcG9uc2UudGFncy5sZW5ndGg7IGsrKykge1xuICAgICAgdmFyIHQgPSByZXNwb25zZS50YWdzW2tdO1xuICAgICAgZGVmaW5lZFRhZ3NbdC5uYW1lXSA9IHQ7XG4gICAgfVxuICB9XG5cbiAgdmFyIGxvY2F0aW9uO1xuXG4gIGlmICh0eXBlb2YgdGhpcy51cmwgPT09ICdzdHJpbmcnKSB7XG4gICAgbG9jYXRpb24gPSB0aGlzLnBhcnNlVXJpKHRoaXMudXJsKTtcbiAgICBpZiAodHlwZW9mIHRoaXMuc2NoZW1lID09PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgdGhpcy5zY2hlbWVzID09PSAndW5kZWZpbmVkJyB8fCB0aGlzLnNjaGVtZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnNjaGVtZSA9IGxvY2F0aW9uLnNjaGVtZSB8fCAnaHR0cCc7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5zY2hlbWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLnNjaGVtZSA9IHRoaXMuc2NoZW1lc1swXTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHRoaXMuaG9zdCA9PT0gJ3VuZGVmaW5lZCcgfHwgdGhpcy5ob3N0ID09PSAnJykge1xuICAgICAgdGhpcy5ob3N0ID0gbG9jYXRpb24uaG9zdDtcblxuICAgICAgaWYgKGxvY2F0aW9uLnBvcnQpIHtcbiAgICAgICAgdGhpcy5ob3N0ID0gdGhpcy5ob3N0ICsgJzonICsgbG9jYXRpb24ucG9ydDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZWxzZSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnNjaGVtZXMgPT09ICd1bmRlZmluZWQnIHx8IHRoaXMuc2NoZW1lcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuc2NoZW1lID0gJ2h0dHAnO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgdGhpcy5zY2hlbWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB0aGlzLnNjaGVtZSA9IHRoaXMuc2NoZW1lc1swXTtcbiAgICB9XG4gIH1cblxuICB0aGlzLmRlZmluaXRpb25zID0gcmVzcG9uc2UuZGVmaW5pdGlvbnM7XG5cbiAgdmFyIGtleTtcblxuICBmb3IgKGtleSBpbiB0aGlzLmRlZmluaXRpb25zKSB7XG4gICAgdmFyIG1vZGVsID0gbmV3IE1vZGVsKGtleSwgdGhpcy5kZWZpbml0aW9uc1trZXldLCB0aGlzLm1vZGVscywgdGhpcy5tb2RlbFByb3BlcnR5TWFjcm8pO1xuXG4gICAgaWYgKG1vZGVsKSB7XG4gICAgICB0aGlzLm1vZGVsc1trZXldID0gbW9kZWw7XG4gICAgfVxuICB9XG5cbiAgLy8gZ2V0IHBhdGhzLCBjcmVhdGUgZnVuY3Rpb25zIGZvciBlYWNoIG9wZXJhdGlvbklkXG4gIHZhciBzZWxmID0gdGhpcztcblxuICAvLyBCaW5kIGhlbHAgdG8gJ2NsaWVudC5hcGlzJ1xuICBzZWxmLmFwaXMuaGVscCA9IF8uYmluZChzZWxmLmhlbHAsIHNlbGYpO1xuXG4gIF8uZm9yRWFjaChyZXNwb25zZS5wYXRocywgZnVuY3Rpb24gKHBhdGhPYmosIHBhdGgpIHtcbiAgICAvLyBPbmx5IHByb2Nlc3MgYSBwYXRoIGlmIGl0J3MgYW4gb2JqZWN0XG4gICAgaWYgKCFfLmlzUGxhaW5PYmplY3QocGF0aE9iaikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBfLmZvckVhY2goc3VwcG9ydGVkT3BlcmF0aW9uTWV0aG9kcywgZnVuY3Rpb24gKG1ldGhvZCkge1xuICAgICAgdmFyIG9wZXJhdGlvbiA9IHBhdGhPYmpbbWV0aG9kXTtcblxuICAgICAgaWYgKF8uaXNVbmRlZmluZWQob3BlcmF0aW9uKSkge1xuICAgICAgICAvLyBPcGVyYXRpb24gZG9lcyBub3QgZXhpc3RcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIGlmICghXy5pc1BsYWluT2JqZWN0KG9wZXJhdGlvbikpIHtcbiAgICAgICAgLy8gT3BlcmF0aW9uIGV4aXN0cyBidXQgaXQgaXMgbm90IGFuIE9wZXJhdGlvbiBPYmplY3QuICBTaW5jZSB0aGlzIGlzIGludmFsaWQsIGxvZyBpdC5cbiAgICAgICAgaGVscGVycy5sb2coJ1RoZSBcXCcnICsgbWV0aG9kICsgJ1xcJyBvcGVyYXRpb24gZm9yIFxcJycgKyBwYXRoICsgJ1xcJyBwYXRoIGlzIG5vdCBhbiBPcGVyYXRpb24gT2JqZWN0Jyk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YXIgdGFncyA9IG9wZXJhdGlvbi50YWdzO1xuXG4gICAgICBpZiAoXy5pc1VuZGVmaW5lZCh0YWdzKSB8fCAhXy5pc0FycmF5KHRhZ3MpIHx8IHRhZ3MubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRhZ3MgPSBvcGVyYXRpb24udGFncyA9IFsgJ2RlZmF1bHQnIF07XG4gICAgICB9XG5cbiAgICAgIHZhciBvcGVyYXRpb25JZCA9IHNlbGYuaWRGcm9tT3AocGF0aCwgbWV0aG9kLCBvcGVyYXRpb24pO1xuICAgICAgdmFyIG9wZXJhdGlvbk9iamVjdCA9IG5ldyBPcGVyYXRpb24oc2VsZixcbiAgICAgICAgb3BlcmF0aW9uLnNjaGVtZSxcbiAgICAgICAgb3BlcmF0aW9uSWQsXG4gICAgICAgIG1ldGhvZCxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBzZWxmLmRlZmluaXRpb25zLFxuICAgICAgICBzZWxmLm1vZGVscyxcbiAgICAgICAgc2VsZi5jbGllbnRBdXRob3JpemF0aW9ucyk7XG5cbiAgICAgIC8vIGJpbmQgc2VsZiBvcGVyYXRpb24ncyBleGVjdXRlIGNvbW1hbmQgdG8gdGhlIGFwaVxuICAgICAgXy5mb3JFYWNoKHRhZ3MsIGZ1bmN0aW9uICh0YWcpIHtcbiAgICAgICAgdmFyIGNsaWVudFByb3BlcnR5ID0gXy5pbmRleE9mKHJlc2VydmVkQ2xpZW50VGFncywgdGFnKSA+IC0xID8gJ18nICsgdGFnIDogdGFnO1xuICAgICAgICB2YXIgYXBpUHJvcGVydHkgPSBfLmluZGV4T2YocmVzZXJ2ZWRBcGlUYWdzLCB0YWcpID4gLTEgPyAnXycgKyB0YWcgOiB0YWc7XG4gICAgICAgIHZhciBvcGVyYXRpb25Hcm91cCA9IHNlbGZbY2xpZW50UHJvcGVydHldO1xuXG4gICAgICAgIGlmIChjbGllbnRQcm9wZXJ0eSAhPT0gdGFnKSB7XG4gICAgICAgICAgaGVscGVycy5sb2coJ1RoZSBcXCcnICsgdGFnICsgJ1xcJyB0YWcgY29uZmxpY3RzIHdpdGggYSBTd2FnZ2VyQ2xpZW50IGZ1bmN0aW9uL3Byb3BlcnR5IG5hbWUuICBVc2UgXFwnY2xpZW50LicgK1xuICAgICAgICAgICAgICAgICAgICAgIGNsaWVudFByb3BlcnR5ICsgJ1xcJyBvciBcXCdjbGllbnQuYXBpcy4nICsgdGFnICsgJ1xcJyBpbnN0ZWFkIG9mIFxcJ2NsaWVudC4nICsgdGFnICsgJ1xcJy4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhcGlQcm9wZXJ0eSAhPT0gdGFnKSB7XG4gICAgICAgICAgaGVscGVycy5sb2coJ1RoZSBcXCcnICsgdGFnICsgJ1xcJyB0YWcgY29uZmxpY3RzIHdpdGggYSBTd2FnZ2VyQ2xpZW50IG9wZXJhdGlvbiBmdW5jdGlvbi9wcm9wZXJ0eSBuYW1lLiAgVXNlICcgK1xuICAgICAgICAgICAgICAgICAgICAgICdcXCdjbGllbnQuYXBpcy4nICsgYXBpUHJvcGVydHkgKyAnXFwnIGluc3RlYWQgb2YgXFwnY2xpZW50LmFwaXMuJyArIHRhZyArICdcXCcuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXy5pbmRleE9mKHJlc2VydmVkQXBpVGFncywgb3BlcmF0aW9uSWQpID4gLTEpIHtcbiAgICAgICAgICBoZWxwZXJzLmxvZygnVGhlIFxcJycgKyBvcGVyYXRpb25JZCArICdcXCcgb3BlcmF0aW9uSWQgY29uZmxpY3RzIHdpdGggYSBTd2FnZ2VyQ2xpZW50IG9wZXJhdGlvbiAnICtcbiAgICAgICAgICAgICAgICAgICAgICAnZnVuY3Rpb24vcHJvcGVydHkgbmFtZS4gIFVzZSBcXCdjbGllbnQuYXBpcy4nICsgYXBpUHJvcGVydHkgKyAnLl8nICsgb3BlcmF0aW9uSWQgK1xuICAgICAgICAgICAgICAgICAgICAgICdcXCcgaW5zdGVhZCBvZiBcXCdjbGllbnQuYXBpcy4nICsgYXBpUHJvcGVydHkgKyAnLicgKyBvcGVyYXRpb25JZCArICdcXCcuJyk7XG5cbiAgICAgICAgICBvcGVyYXRpb25JZCA9ICdfJyArIG9wZXJhdGlvbklkO1xuICAgICAgICAgIG9wZXJhdGlvbk9iamVjdC5uaWNrbmFtZSA9IG9wZXJhdGlvbklkOyAvLyBTbyAnY2xpZW50LmFwaXMuW3RhZ10ub3BlcmF0aW9uSWQuaGVscCgpIHdvcmtzIHByb3Blcmx5XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZChvcGVyYXRpb25Hcm91cCkpIHtcbiAgICAgICAgICBvcGVyYXRpb25Hcm91cCA9IHNlbGZbY2xpZW50UHJvcGVydHldID0gc2VsZi5hcGlzW2FwaVByb3BlcnR5XSA9IHt9O1xuXG4gICAgICAgICAgb3BlcmF0aW9uR3JvdXAub3BlcmF0aW9ucyA9IHt9O1xuICAgICAgICAgIG9wZXJhdGlvbkdyb3VwLmxhYmVsID0gYXBpUHJvcGVydHk7XG4gICAgICAgICAgb3BlcmF0aW9uR3JvdXAuYXBpcyA9IHt9O1xuXG4gICAgICAgICAgdmFyIHRhZ0RlZiA9IGRlZmluZWRUYWdzW3RhZ107XG5cbiAgICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQodGFnRGVmKSkge1xuICAgICAgICAgICAgb3BlcmF0aW9uR3JvdXAuZGVzY3JpcHRpb24gPSB0YWdEZWYuZGVzY3JpcHRpb247XG4gICAgICAgICAgICBvcGVyYXRpb25Hcm91cC5leHRlcm5hbERvY3MgPSB0YWdEZWYuZXh0ZXJuYWxEb2NzO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNlbGZbY2xpZW50UHJvcGVydHldLmhlbHAgPSBfLmJpbmQoc2VsZi5oZWxwLCBvcGVyYXRpb25Hcm91cCk7XG4gICAgICAgICAgc2VsZi5hcGlzQXJyYXkucHVzaChuZXcgT3BlcmF0aW9uR3JvdXAodGFnLCBvcGVyYXRpb25Hcm91cC5kZXNjcmlwdGlvbiwgb3BlcmF0aW9uR3JvdXAuZXh0ZXJuYWxEb2NzLCBvcGVyYXRpb25PYmplY3QpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJpbmQgdGFnIGhlbHBcbiAgICAgICAgaWYgKCFfLmlzRnVuY3Rpb24ob3BlcmF0aW9uR3JvdXAuaGVscCkpIHtcbiAgICAgICAgICBvcGVyYXRpb25Hcm91cC5oZWxwID0gXy5iaW5kKHNlbGYuaGVscCwgb3BlcmF0aW9uR3JvdXApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYmluZCB0byB0aGUgYXBpcyBvYmplY3RcbiAgICAgICAgc2VsZi5hcGlzW2FwaVByb3BlcnR5XVtvcGVyYXRpb25JZF0gPSBvcGVyYXRpb25Hcm91cFtvcGVyYXRpb25JZF0gPSBfLmJpbmQob3BlcmF0aW9uT2JqZWN0LmV4ZWN1dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uT2JqZWN0KTtcbiAgICAgICAgc2VsZi5hcGlzW2FwaVByb3BlcnR5XVtvcGVyYXRpb25JZF0uaGVscCA9IG9wZXJhdGlvbkdyb3VwW29wZXJhdGlvbklkXS5oZWxwID0gXy5iaW5kKG9wZXJhdGlvbk9iamVjdC5oZWxwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uT2JqZWN0KTtcbiAgICAgICAgc2VsZi5hcGlzW2FwaVByb3BlcnR5XVtvcGVyYXRpb25JZF0uYXNDdXJsID0gb3BlcmF0aW9uR3JvdXBbb3BlcmF0aW9uSWRdLmFzQ3VybCA9IF8uYmluZChvcGVyYXRpb25PYmplY3QuYXNDdXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbk9iamVjdCk7XG5cbiAgICAgICAgb3BlcmF0aW9uR3JvdXAuYXBpc1tvcGVyYXRpb25JZF0gPSBvcGVyYXRpb25Hcm91cC5vcGVyYXRpb25zW29wZXJhdGlvbklkXSA9IG9wZXJhdGlvbk9iamVjdDtcblxuICAgICAgICAvLyBsZWdhY3kgVUkgZmVhdHVyZVxuICAgICAgICB2YXIgYXBpID0gXy5maW5kKHNlbGYuYXBpc0FycmF5LCBmdW5jdGlvbiAoYXBpKSB7XG4gICAgICAgICAgcmV0dXJuIGFwaS50YWcgPT09IHRhZztcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGFwaSkge1xuICAgICAgICAgIGFwaS5vcGVyYXRpb25zQXJyYXkucHVzaChvcGVyYXRpb25PYmplY3QpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgdGhpcy5pc0J1aWx0ID0gdHJ1ZTtcblxuICBpZiAodGhpcy5zdWNjZXNzKSB7XG4gICAgdGhpcy5pc1ZhbGlkID0gdHJ1ZTtcbiAgICB0aGlzLmlzQnVpbHQgPSB0cnVlO1xuICAgIHRoaXMuc3VjY2VzcygpO1xuICB9XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5Td2FnZ2VyQ2xpZW50LnByb3RvdHlwZS5wYXJzZVVyaSA9IGZ1bmN0aW9uICh1cmkpIHtcbiAgdmFyIHVybFBhcnNlUkUgPSAvXigoKChbXjpcXC8jXFw/XSs6KT8oPzooXFwvXFwvKSgoPzooKFteOkBcXC8jXFw/XSspKD86XFw6KFteOkBcXC8jXFw/XSspKT8pQCk/KChbXjpcXC8jXFw/XFxdXFxbXSt8XFxbW15cXC9cXF1AIz9dK1xcXSkoPzpcXDooWzAtOV0rKSk/KSk/KT8pPygoXFwvPyg/OlteXFwvXFw/I10rXFwvKykqKShbXlxcPyNdKikpKT8oXFw/W14jXSspPykoIy4qKT8vO1xuICB2YXIgcGFydHMgPSB1cmxQYXJzZVJFLmV4ZWModXJpKTtcblxuICByZXR1cm4ge1xuICAgIHNjaGVtZTogcGFydHNbNF0ucmVwbGFjZSgnOicsJycpLFxuICAgIGhvc3Q6IHBhcnRzWzExXSxcbiAgICBwb3J0OiBwYXJ0c1sxMl0sXG4gICAgcGF0aDogcGFydHNbMTVdXG4gIH07XG59O1xuXG5Td2FnZ2VyQ2xpZW50LnByb3RvdHlwZS5oZWxwID0gZnVuY3Rpb24gKGRvbnRQcmludCkge1xuICB2YXIgb3V0cHV0ID0gJyc7XG5cbiAgaWYgKHRoaXMgaW5zdGFuY2VvZiBTd2FnZ2VyQ2xpZW50KSB7XG4gICAgXy5mb3JFYWNoKHRoaXMuYXBpcywgZnVuY3Rpb24gKGFwaSwgbmFtZSkge1xuICAgICAgaWYgKF8uaXNQbGFpbk9iamVjdChhcGkpKSB7XG4gICAgICAgIG91dHB1dCArPSAnb3BlcmF0aW9ucyBmb3IgdGhlIFxcJycgKyBuYW1lICsgJ1xcJyB0YWdcXG4nO1xuXG4gICAgICAgIF8uZm9yRWFjaChhcGkub3BlcmF0aW9ucywgZnVuY3Rpb24gKG9wZXJhdGlvbiwgbmFtZSkge1xuICAgICAgICAgIG91dHB1dCArPSAnICAqICcgKyBuYW1lICsgJzogJyArIG9wZXJhdGlvbi5zdW1tYXJ5ICsgJ1xcbic7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9IGVsc2UgaWYgKHRoaXMgaW5zdGFuY2VvZiBPcGVyYXRpb25Hcm91cCB8fCBfLmlzUGxhaW5PYmplY3QodGhpcykpIHtcbiAgICBvdXRwdXQgKz0gJ29wZXJhdGlvbnMgZm9yIHRoZSBcXCcnICsgdGhpcy5sYWJlbCArICdcXCcgdGFnXFxuJztcblxuICAgIF8uZm9yRWFjaCh0aGlzLmFwaXMsIGZ1bmN0aW9uIChvcGVyYXRpb24sIG5hbWUpIHtcbiAgICAgIG91dHB1dCArPSAnICAqICcgKyBuYW1lICsgJzogJyArIG9wZXJhdGlvbi5zdW1tYXJ5ICsgJ1xcbic7XG4gICAgfSk7XG4gIH1cblxuICBpZiAoZG9udFByaW50KSB7XG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfSBlbHNlIHtcbiAgICBoZWxwZXJzLmxvZyhvdXRwdXQpO1xuXG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxufTtcblxuU3dhZ2dlckNsaWVudC5wcm90b3R5cGUudGFnRnJvbUxhYmVsID0gZnVuY3Rpb24gKGxhYmVsKSB7XG4gIHJldHVybiBsYWJlbDtcbn07XG5cblN3YWdnZXJDbGllbnQucHJvdG90eXBlLmlkRnJvbU9wID0gZnVuY3Rpb24gKHBhdGgsIGh0dHBNZXRob2QsIG9wKSB7XG4gIGlmKCFvcCB8fCAhb3Aub3BlcmF0aW9uSWQpIHtcbiAgICBvcCA9IG9wIHx8IHt9O1xuICAgIG9wLm9wZXJhdGlvbklkID0gaHR0cE1ldGhvZCArICdfJyArIHBhdGg7XG4gIH1cbiAgdmFyIG9wSWQgPSBvcC5vcGVyYXRpb25JZC5yZXBsYWNlKC9bXFxzIUAjJCVeJiooKV8rPVxcW3tcXF19Ozo8PnwuXFwvPyxcXFxcJ1wiXCItXS9nLCAnXycpIHx8IChwYXRoLnN1YnN0cmluZygxKSArICdfJyArIGh0dHBNZXRob2QpO1xuXG4gIG9wSWQgPSBvcElkLnJlcGxhY2UoLygoXyl7Mix9KS9nLCAnXycpO1xuICBvcElkID0gb3BJZC5yZXBsYWNlKC9eKF8pKi9nLCAnJyk7XG4gIG9wSWQgPSBvcElkLnJlcGxhY2UoLyhbX10pKiQvZywgJycpO1xuICByZXR1cm4gb3BJZDtcbn07XG5cblN3YWdnZXJDbGllbnQucHJvdG90eXBlLnNldEhvc3QgPSBmdW5jdGlvbiAoaG9zdCkge1xuICB0aGlzLmhvc3QgPSBob3N0O1xuXG4gIGlmKHRoaXMuYXBpcykge1xuICAgIF8uZm9yRWFjaCh0aGlzLmFwaXMsIGZ1bmN0aW9uKGFwaSkge1xuICAgICAgaWYoYXBpLm9wZXJhdGlvbnMpIHtcbiAgICAgICAgXy5mb3JFYWNoKGFwaS5vcGVyYXRpb25zLCBmdW5jdGlvbihvcGVyYXRpb24pIHtcbiAgICAgICAgICBvcGVyYXRpb24uaG9zdCA9IGhvc3Q7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59O1xuXG5Td2FnZ2VyQ2xpZW50LnByb3RvdHlwZS5zZXRCYXNlUGF0aCA9IGZ1bmN0aW9uIChiYXNlUGF0aCkge1xuICB0aGlzLmJhc2VQYXRoID0gYmFzZVBhdGg7XG5cbiAgaWYodGhpcy5hcGlzKSB7XG4gICAgXy5mb3JFYWNoKHRoaXMuYXBpcywgZnVuY3Rpb24oYXBpKSB7XG4gICAgICBpZihhcGkub3BlcmF0aW9ucykge1xuICAgICAgICBfLmZvckVhY2goYXBpLm9wZXJhdGlvbnMsIGZ1bmN0aW9uKG9wZXJhdGlvbikge1xuICAgICAgICAgIG9wZXJhdGlvbi5iYXNlUGF0aCA9IGJhc2VQYXRoO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufTtcblxuU3dhZ2dlckNsaWVudC5wcm90b3R5cGUuZmFpbCA9IGZ1bmN0aW9uIChtZXNzYWdlKSB7XG4gIHRoaXMuZmFpbHVyZShtZXNzYWdlKTtcblxuICB0aHJvdyBtZXNzYWdlO1xufTsiLCIoZnVuY3Rpb24gKHByb2Nlc3Mpe1xuJ3VzZSBzdHJpY3QnO1xuXG52YXIgXyA9IHtcbiAgaXNQbGFpbk9iamVjdDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2lzUGxhaW5PYmplY3QnKSxcbiAgaW5kZXhPZjogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9hcnJheS9pbmRleE9mJylcbn07XG5cbm1vZHVsZS5leHBvcnRzLl9fYmluZCA9IGZ1bmN0aW9uIChmbiwgbWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCl7XG4gICAgcmV0dXJuIGZuLmFwcGx5KG1lLCBhcmd1bWVudHMpO1xuICB9O1xufTtcblxudmFyIGxvZyA9IG1vZHVsZS5leHBvcnRzLmxvZyA9IGZ1bmN0aW9uKCkge1xuICAvLyBPbmx5IGxvZyBpZiBhdmFpbGFibGUgYW5kIHdlJ3JlIG5vdCB0ZXN0aW5nXG4gIGlmIChjb25zb2xlICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAndGVzdCcpIHtcbiAgICBjb25zb2xlLmxvZyhBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpWzBdKTtcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMuZmFpbCA9IGZ1bmN0aW9uIChtZXNzYWdlKSB7XG4gIGxvZyhtZXNzYWdlKTtcbn07XG5cbnZhciBvcHRpb25IdG1sID0gbW9kdWxlLmV4cG9ydHMub3B0aW9uSHRtbCA9IGZ1bmN0aW9uIChsYWJlbCwgdmFsdWUpIHtcbiAgcmV0dXJuICc8dHI+PHRkIGNsYXNzPVwib3B0aW9uTmFtZVwiPicgKyBsYWJlbCArICc6PC90ZD48dGQ+JyArIHZhbHVlICsgJzwvdGQ+PC90cj4nO1xufTtcblxudmFyIHJlc29sdmVTY2hlbWEgPSBtb2R1bGUuZXhwb3J0cy5yZXNvbHZlU2NoZW1hID0gZnVuY3Rpb24gKHNjaGVtYSkge1xuICBpZiAoXy5pc1BsYWluT2JqZWN0KHNjaGVtYS5zY2hlbWEpKSB7XG4gICAgc2NoZW1hID0gcmVzb2x2ZVNjaGVtYShzY2hlbWEuc2NoZW1hKTtcbiAgfVxuXG4gIHJldHVybiBzY2hlbWE7XG59O1xuXG52YXIgc2ltcGxlUmVmID0gbW9kdWxlLmV4cG9ydHMuc2ltcGxlUmVmID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgaWYgKHR5cGVvZiBuYW1lID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKG5hbWUuaW5kZXhPZignIy9kZWZpbml0aW9ucy8nKSA9PT0gMCkge1xuICAgIHJldHVybiBuYW1lLnN1YnN0cmluZygnIy9kZWZpbml0aW9ucy8nLmxlbmd0aCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5hbWU7XG4gIH1cbn07XG5cblxufSkuY2FsbCh0aGlzLHJlcXVpcmUoJ19wcm9jZXNzJykpXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldDp1dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJbXhwWWk5b1pXeHdaWEp6TG1weklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJN1FVRkJRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFTSXNJbVpwYkdVaU9pSm5aVzVsY21GMFpXUXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpSjNWelpTQnpkSEpwWTNRbk8xeHVYRzUyWVhJZ1h5QTlJSHRjYmlBZ2FYTlFiR0ZwYms5aWFtVmpkRG9nY21WeGRXbHlaU2duYkc5a1lYTm9MV052YlhCaGRDOXNZVzVuTDJselVHeGhhVzVQWW1wbFkzUW5LU3hjYmlBZ2FXNWtaWGhQWmpvZ2NtVnhkV2x5WlNnbmJHOWtZWE5vTFdOdmJYQmhkQzloY25KaGVTOXBibVJsZUU5bUp5bGNibjA3WEc1Y2JtMXZaSFZzWlM1bGVIQnZjblJ6TGw5ZlltbHVaQ0E5SUdaMWJtTjBhVzl1SUNobWJpd2diV1VwSUh0Y2JpQWdjbVYwZFhKdUlHWjFibU4wYVc5dUtDbDdYRzRnSUNBZ2NtVjBkWEp1SUdadUxtRndjR3g1S0cxbExDQmhjbWQxYldWdWRITXBPMXh1SUNCOU8xeHVmVHRjYmx4dWRtRnlJR3h2WnlBOUlHMXZaSFZzWlM1bGVIQnZjblJ6TG14dlp5QTlJR1oxYm1OMGFXOXVLQ2tnZTF4dUlDQXZMeUJQYm14NUlHeHZaeUJwWmlCaGRtRnBiR0ZpYkdVZ1lXNWtJSGRsSjNKbElHNXZkQ0IwWlhOMGFXNW5YRzRnSUdsbUlDaGpiMjV6YjJ4bElDWW1JSEJ5YjJObGMzTXVaVzUyTGs1UFJFVmZSVTVXSUNFOVBTQW5kR1Z6ZENjcElIdGNiaUFnSUNCamIyNXpiMnhsTG14dlp5aEJjbkpoZVM1d2NtOTBiM1I1Y0dVdWMyeHBZMlV1WTJGc2JDaGhjbWQxYldWdWRITXBXekJkS1R0Y2JpQWdmVnh1ZlR0Y2JseHViVzlrZFd4bExtVjRjRzl5ZEhNdVptRnBiQ0E5SUdaMWJtTjBhVzl1SUNodFpYTnpZV2RsS1NCN1hHNGdJR3h2WnlodFpYTnpZV2RsS1R0Y2JuMDdYRzVjYm5aaGNpQnZjSFJwYjI1SWRHMXNJRDBnYlc5a2RXeGxMbVY0Y0c5eWRITXViM0IwYVc5dVNIUnRiQ0E5SUdaMWJtTjBhVzl1SUNoc1lXSmxiQ3dnZG1Gc2RXVXBJSHRjYmlBZ2NtVjBkWEp1SUNjOGRISStQSFJrSUdOc1lYTnpQVndpYjNCMGFXOXVUbUZ0WlZ3aVBpY2dLeUJzWVdKbGJDQXJJQ2M2UEM5MFpENDhkR1ErSnlBcklIWmhiSFZsSUNzZ0p6d3ZkR1ErUEM5MGNqNG5PMXh1ZlR0Y2JseHVkbUZ5SUhKbGMyOXNkbVZUWTJobGJXRWdQU0J0YjJSMWJHVXVaWGh3YjNKMGN5NXlaWE52YkhabFUyTm9aVzFoSUQwZ1puVnVZM1JwYjI0Z0tITmphR1Z0WVNrZ2UxeHVJQ0JwWmlBb1h5NXBjMUJzWVdsdVQySnFaV04wS0hOamFHVnRZUzV6WTJobGJXRXBLU0I3WEc0Z0lDQWdjMk5vWlcxaElEMGdjbVZ6YjJ4MlpWTmphR1Z0WVNoelkyaGxiV0V1YzJOb1pXMWhLVHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUJ6WTJobGJXRTdYRzU5TzF4dVhHNTJZWElnYzJsdGNHeGxVbVZtSUQwZ2JXOWtkV3hsTG1WNGNHOXlkSE11YzJsdGNHeGxVbVZtSUQwZ1puVnVZM1JwYjI0Z0tHNWhiV1VwSUh0Y2JpQWdhV1lnS0hSNWNHVnZaaUJ1WVcxbElEMDlQU0FuZFc1a1pXWnBibVZrSnlrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ1ZFd4c08xeHVJQ0I5WEc1Y2JpQWdhV1lnS0c1aGJXVXVhVzVrWlhoUFppZ25JeTlrWldacGJtbDBhVzl1Y3k4bktTQTlQVDBnTUNrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ1WVcxbExuTjFZbk4wY21sdVp5Z25JeTlrWldacGJtbDBhVzl1Y3k4bkxteGxibWQwYUNrN1hHNGdJSDBnWld4elpTQjdYRzRnSUNBZ2NtVjBkWEp1SUc1aGJXVTdYRzRnSUgxY2JuMDdYRzVjYmlKZGZRPT0iLCIndXNlIHN0cmljdCc7XG5cbnZhciBoZWxwZXJzID0gcmVxdWlyZSgnLi9oZWxwZXJzJyk7XG52YXIgalF1ZXJ5ID0gcmVxdWlyZSgnanF1ZXJ5Jyk7XG52YXIgcmVxdWVzdCA9IHJlcXVpcmUoJ3N1cGVyYWdlbnQnKTtcbnZhciBqc3lhbWwgPSByZXF1aXJlKCdqcy15YW1sJyk7XG52YXIgXyA9IHtcbiAgaXNPYmplY3Q6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9pc09iamVjdCcpXG59O1xuXG4vKlxuICogSlF1ZXJ5SHR0cENsaWVudCBpcyBhIGxpZ2h0LXdlaWdodCwgbm9kZSBvciBicm93c2VyIEhUVFAgY2xpZW50XG4gKi9cbnZhciBKUXVlcnlIdHRwQ2xpZW50ID0gZnVuY3Rpb24gKCkge307XG5cbi8qXG4gKiBTdXBlcmFnZW50SHR0cENsaWVudCBpcyBhIGxpZ2h0LXdlaWdodCwgbm9kZSBvciBicm93c2VyIEhUVFAgY2xpZW50XG4gKi9cbnZhciBTdXBlcmFnZW50SHR0cENsaWVudCA9IGZ1bmN0aW9uICgpIHt9O1xuXG4vKipcbiAqIFN3YWdnZXJIdHRwIGlzIGEgd3JhcHBlciBmb3IgZXhlY3V0aW5nIHJlcXVlc3RzXG4gKi9cbnZhciBTd2FnZ2VySHR0cCA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge307XG5cblN3YWdnZXJIdHRwLnByb3RvdHlwZS5leGVjdXRlID0gZnVuY3Rpb24gKG9iaiwgb3B0cykge1xuICB2YXIgY2xpZW50O1xuXG4gIGlmKG9wdHMgJiYgb3B0cy5jbGllbnQpIHtcbiAgICBjbGllbnQgPSBvcHRzLmNsaWVudDtcbiAgfVxuICBlbHNlIHtcbiAgICBjbGllbnQgPSBuZXcgU3VwZXJhZ2VudEh0dHBDbGllbnQob3B0cyk7XG4gIH1cblxuICAvLyBsZWdhY3kgc3VwcG9ydFxuICBpZiAoKG9iaiAmJiBvYmoudXNlSlF1ZXJ5ID09PSB0cnVlKSB8fCB0aGlzLmlzSW50ZXJuZXRFeHBsb3JlcigpKSB7XG4gICAgY2xpZW50ID0gbmV3IEpRdWVyeUh0dHBDbGllbnQob3B0cyk7XG4gIH1cblxuICB2YXIgc3VjY2VzcyA9IG9iai5vbi5yZXNwb25zZTtcblxuICB2YXIgcmVzcG9uc2VJbnRlcmNlcHRvciA9IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICBpZihvcHRzICYmIG9wdHMucmVzcG9uc2VJbnRlcmNlcHRvcikge1xuICAgICAgZGF0YSA9IG9wdHMucmVzcG9uc2VJbnRlcmNlcHRvci5hcHBseShkYXRhKTtcbiAgICB9XG4gICAgc3VjY2VzcyhkYXRhKTtcbiAgfTtcblxuICBvYmoub24ucmVzcG9uc2UgPSBmdW5jdGlvbihkYXRhKSB7XG4gICAgcmVzcG9uc2VJbnRlcmNlcHRvcihkYXRhKTtcbiAgfTtcblxuXG4gIGlmIChfLmlzT2JqZWN0KG9iaikgJiYgXy5pc09iamVjdChvYmouYm9keSkpIHtcbiAgICAvLyBzcGVjaWFsIHByb2Nlc3NpbmcgZm9yIGZpbGUgdXBsb2FkcyB2aWEganF1ZXJ5XG4gICAgaWYgKG9iai5ib2R5LnR5cGUgJiYgb2JqLmJvZHkudHlwZSA9PT0gJ2Zvcm1EYXRhJyl7XG4gICAgICBvYmouY29udGVudFR5cGUgPSBmYWxzZTtcbiAgICAgIG9iai5wcm9jZXNzRGF0YSA9IGZhbHNlO1xuXG4gICAgICBkZWxldGUgb2JqLmhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddO1xuICAgIH0gZWxzZSB7XG4gICAgICBvYmouYm9keSA9IEpTT04uc3RyaW5naWZ5KG9iai5ib2R5KTtcbiAgICB9XG4gIH1cbiAgY2xpZW50LmV4ZWN1dGUob2JqKTtcbn07XG5cblN3YWdnZXJIdHRwLnByb3RvdHlwZS5pc0ludGVybmV0RXhwbG9yZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBkZXRlY3RlZElFID0gZmFsc2U7XG5cbiAgaWYgKHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIG5hdmlnYXRvci51c2VyQWdlbnQpIHtcbiAgICB2YXIgbmF2ID0gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKG5hdi5pbmRleE9mKCdtc2llJykgIT09IC0xKSB7XG4gICAgICB2YXIgdmVyc2lvbiA9IHBhcnNlSW50KG5hdi5zcGxpdCgnbXNpZScpWzFdKTtcblxuICAgICAgaWYgKHZlcnNpb24gPD0gOCkge1xuICAgICAgICBkZXRlY3RlZElFID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGV0ZWN0ZWRJRTtcbn07XG5cbkpRdWVyeUh0dHBDbGllbnQucHJvdG90eXBlLmV4ZWN1dGUgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHZhciBjYiA9IG9iai5vbjtcbiAgdmFyIHJlcXVlc3QgPSBvYmo7XG5cbiAgb2JqLnR5cGUgPSBvYmoubWV0aG9kO1xuICBvYmouY2FjaGUgPSBmYWxzZTtcbiAgZGVsZXRlIG9iai51c2VKUXVlcnk7XG5cbiAgLypcbiAgb2JqLmJlZm9yZVNlbmQgPSBmdW5jdGlvbiAoeGhyKSB7XG4gICAgdmFyIGtleSwgcmVzdWx0cztcbiAgICBpZiAob2JqLmhlYWRlcnMpIHtcbiAgICAgIHJlc3VsdHMgPSBbXTtcbiAgICAgIGZvciAoa2V5IGluIG9iai5oZWFkZXJzKSB7XG4gICAgICAgIGlmIChrZXkudG9Mb3dlckNhc2UoKSA9PT0gJ2NvbnRlbnQtdHlwZScpIHtcbiAgICAgICAgICByZXN1bHRzLnB1c2gob2JqLmNvbnRlbnRUeXBlID0gb2JqLmhlYWRlcnNba2V5XSk7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5LnRvTG93ZXJDYXNlKCkgPT09ICdhY2NlcHQnKSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKG9iai5hY2NlcHRzID0gb2JqLmhlYWRlcnNba2V5XSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKHhoci5zZXRSZXF1ZXN0SGVhZGVyKGtleSwgb2JqLmhlYWRlcnNba2V5XSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG4gIH07Ki9cblxuICBvYmouZGF0YSA9IG9iai5ib2R5O1xuXG4gIGRlbGV0ZSBvYmouYm9keTtcblxuICBvYmouY29tcGxldGUgPSBmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICB2YXIgaGVhZGVycyA9IHt9O1xuICAgIHZhciBoZWFkZXJBcnJheSA9IHJlc3BvbnNlLmdldEFsbFJlc3BvbnNlSGVhZGVycygpLnNwbGl0KCdcXG4nKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaGVhZGVyQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciB0b1NwbGl0ID0gaGVhZGVyQXJyYXlbaV0udHJpbSgpO1xuXG4gICAgICBpZiAodG9TcGxpdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHZhciBzZXBhcmF0b3IgPSB0b1NwbGl0LmluZGV4T2YoJzonKTtcblxuICAgICAgaWYgKHNlcGFyYXRvciA9PT0gLTEpIHtcbiAgICAgICAgLy8gTmFtZSBidXQgbm8gdmFsdWUgaW4gdGhlIGhlYWRlclxuICAgICAgICBoZWFkZXJzW3RvU3BsaXRdID0gbnVsbDtcblxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgdmFyIG5hbWUgPSB0b1NwbGl0LnN1YnN0cmluZygwLCBzZXBhcmF0b3IpLnRyaW0oKTtcbiAgICAgIHZhciB2YWx1ZSA9IHRvU3BsaXQuc3Vic3RyaW5nKHNlcGFyYXRvciArIDEpLnRyaW0oKTtcblxuICAgICAgaGVhZGVyc1tuYW1lXSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHZhciBvdXQgPSB7XG4gICAgICB1cmw6IHJlcXVlc3QudXJsLFxuICAgICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcbiAgICAgIHN0YXR1czogcmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgc3RhdHVzVGV4dDogcmVzcG9uc2Uuc3RhdHVzVGV4dCxcbiAgICAgIGRhdGE6IHJlc3BvbnNlLnJlc3BvbnNlVGV4dCxcbiAgICAgIGhlYWRlcnM6IGhlYWRlcnNcbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgIHZhciBwb3NzaWJsZU9iaiA9ICByZXNwb25zZS5yZXNwb25zZUpTT04gfHwganN5YW1sLnNhZmVMb2FkKHJlc3BvbnNlLnJlc3BvbnNlVGV4dCk7XG4gICAgICBvdXQub2JqID0gKHR5cGVvZiBwb3NzaWJsZU9iaiA9PT0gJ3N0cmluZycpID8ge30gOiBwb3NzaWJsZU9iajtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgLy8gZG8gbm90IHNldCBvdXQub2JqXG4gICAgICBoZWxwZXJzLmxvZygndW5hYmxlIHRvIHBhcnNlIEpTT04vWUFNTCBjb250ZW50Jyk7XG4gICAgfVxuXG4gICAgLy8gSSBjYW4gdGhyb3csIG9yIHBhcnNlIG51bGw/XG4gICAgb3V0Lm9iaiA9IG91dC5vYmogfHwgbnVsbDtcblxuICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPj0gMjAwICYmIHJlc3BvbnNlLnN0YXR1cyA8IDMwMCkge1xuICAgICAgY2IucmVzcG9uc2Uob3V0KTtcbiAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMCB8fCAocmVzcG9uc2Uuc3RhdHVzID49IDQwMCAmJiByZXNwb25zZS5zdGF0dXMgPCA1OTkpKSB7XG4gICAgICBjYi5lcnJvcihvdXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY2IucmVzcG9uc2Uob3V0KTtcbiAgICB9XG4gIH07XG5cbiAgalF1ZXJ5LnN1cHBvcnQuY29ycyA9IHRydWU7XG5cbiAgcmV0dXJuIGpRdWVyeS5hamF4KG9iaik7XG59O1xuXG5TdXBlcmFnZW50SHR0cENsaWVudC5wcm90b3R5cGUuZXhlY3V0ZSA9IGZ1bmN0aW9uIChvYmopIHtcbiAgdmFyIG1ldGhvZCA9IG9iai5tZXRob2QudG9Mb3dlckNhc2UoKTtcblxuICBpZiAobWV0aG9kID09PSAnZGVsZXRlJykge1xuICAgIG1ldGhvZCA9ICdkZWwnO1xuICB9XG4gIHZhciBoZWFkZXJzID0gb2JqLmhlYWRlcnMgfHwge307XG4gIHZhciByID0gcmVxdWVzdFttZXRob2RdKG9iai51cmwpO1xuICB2YXIgbmFtZTtcbiAgZm9yIChuYW1lIGluIGhlYWRlcnMpIHtcbiAgICByLnNldChuYW1lLCBoZWFkZXJzW25hbWVdKTtcbiAgfVxuXG4gIGlmIChvYmouYm9keSkge1xuICAgIHIuc2VuZChvYmouYm9keSk7XG4gIH1cblxuICBpZih0eXBlb2Ygci5idWZmZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICByLmJ1ZmZlcigpOyAvLyBmb3JjZSBzdXBlcmFnZW50IHRvIHBvcHVsYXRlIHJlcy50ZXh0IHdpdGggdGhlIHJhdyByZXNwb25zZSBkYXRhXG4gIH1cblxuICByLmVuZChmdW5jdGlvbiAoZXJyLCByZXMpIHtcbiAgICByZXMgPSByZXMgfHwge1xuICAgICAgc3RhdHVzOiAwLFxuICAgICAgaGVhZGVyczoge2Vycm9yOiAnbm8gcmVzcG9uc2UgZnJvbSBzZXJ2ZXInfVxuICAgIH07XG4gICAgdmFyIHJlc3BvbnNlID0ge1xuICAgICAgdXJsOiBvYmoudXJsLFxuICAgICAgbWV0aG9kOiBvYmoubWV0aG9kLFxuICAgICAgaGVhZGVyczogcmVzLmhlYWRlcnNcbiAgICB9O1xuICAgIHZhciBjYjtcblxuICAgIGlmICghZXJyICYmIHJlcy5lcnJvcikge1xuICAgICAgZXJyID0gcmVzLmVycm9yO1xuICAgIH1cblxuICAgIGlmIChlcnIgJiYgb2JqLm9uICYmIG9iai5vbi5lcnJvcikge1xuICAgICAgcmVzcG9uc2Uub2JqID0gZXJyO1xuICAgICAgcmVzcG9uc2Uuc3RhdHVzID0gcmVzID8gcmVzLnN0YXR1cyA6IDUwMDtcbiAgICAgIHJlc3BvbnNlLnN0YXR1c1RleHQgPSByZXMgPyByZXMudGV4dCA6IGVyci5tZXNzYWdlO1xuICAgICAgY2IgPSBvYmoub24uZXJyb3I7XG4gICAgfSBlbHNlIGlmIChyZXMgJiYgb2JqLm9uICYmIG9iai5vbi5yZXNwb25zZSkge1xuICAgICAgdmFyIHBvc3NpYmxlT2JqO1xuXG4gICAgICAvLyBBbHJlYWR5IHBhcnNlZCBieSBieSBzdXBlcmFnZW50P1xuICAgICAgaWYocmVzLmJvZHkgJiYgT2JqZWN0LmtleXMocmVzLmJvZHkpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcG9zc2libGVPYmogPSByZXMuYm9keTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHBvc3NpYmxlT2JqID0ganN5YW1sLnNhZmVMb2FkKHJlcy50ZXh0KTtcbiAgICAgICAgICAgIC8vIGNhbiBwYXJzZSBpbnRvIGEgc3RyaW5nLi4uIHdoaWNoIHdlIGRvbid0IG5lZWQgcnVubmluZyBhcm91bmQgaW4gdGhlIHN5c3RlbVxuICAgICAgICAgICAgcG9zc2libGVPYmogPSAodHlwZW9mIHBvc3NpYmxlT2JqID09PSAnc3RyaW5nJykgPyBudWxsIDogcG9zc2libGVPYmo7XG4gICAgICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAgICBoZWxwZXJzLmxvZygnY2Fubm90IHBhcnNlIEpTT04vWUFNTCBjb250ZW50Jyk7XG4gICAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBudWxsIG1lYW5zIHdlIGNhbid0IHBhcnNlIGludG8gb2JqZWN0XG4gICAgICByZXNwb25zZS5vYmogPSBwb3NzaWJsZU9iaiB8fCBudWxsO1xuXG4gICAgICByZXNwb25zZS5zdGF0dXMgPSByZXMuc3RhdHVzO1xuICAgICAgcmVzcG9uc2Uuc3RhdHVzVGV4dCA9IHJlcy50ZXh0O1xuICAgICAgY2IgPSBvYmoub24ucmVzcG9uc2U7XG4gICAgfVxuICAgIHJlc3BvbnNlLmRhdGEgPSByZXNwb25zZS5zdGF0dXNUZXh0O1xuXG4gICAgaWYgKGNiKSB7XG4gICAgICBjYihyZXNwb25zZSk7XG4gICAgfVxuICB9KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBTd2FnZ2VySHR0cCA9IHJlcXVpcmUoJy4vaHR0cCcpO1xudmFyIF8gPSB7XG4gIGlzT2JqZWN0OiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNPYmplY3QnKSxcbiAgaXNBcnJheTogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2lzQXJyYXknKVxufTtcblxuXG4vKipcbiAqIFJlc29sdmVzIGEgc3BlYydzIHJlbW90ZSByZWZlcmVuY2VzXG4gKi9cbnZhciBSZXNvbHZlciA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKCkge307XG5cblJlc29sdmVyLnByb3RvdHlwZS5wcm9jZXNzQWxsT2YgPSBmdW5jdGlvbihuYW1lLCBkZWZpbml0aW9uLCByZXNvbHV0aW9uVGFibGUsIHVucmVzb2x2ZWRSZWZzLCBzcGVjKSB7XG4gIHZhciBpLCBsb2NhdGlvbiwgcHJvcGVydHk7XG5cbiAgZGVmaW5pdGlvblsneC1yZXNvbHZlZC1mcm9tJ10gPSBbICcjL2RlZmluaXRpb25zLycgKyBuYW1lIF07XG4gIHZhciBhbGxPZiA9IGRlZmluaXRpb24uYWxsT2Y7XG4gIC8vIHRoZSByZWZzIGdvIGZpcnN0XG4gIGFsbE9mLnNvcnQoZnVuY3Rpb24oYSwgYikge1xuICAgIGlmKGEuJHJlZiAmJiBiLiRyZWYpIHsgcmV0dXJuIDA7IH1cbiAgICBlbHNlIGlmKGEuJHJlZikgeyByZXR1cm4gLTE7IH1cbiAgICBlbHNlIHsgcmV0dXJuIDE7IH1cbiAgfSk7XG4gIGZvciAoaSA9IDA7IGkgPCBhbGxPZi5sZW5ndGg7IGkrKykge1xuICAgIHByb3BlcnR5ID0gYWxsT2ZbaV07XG4gICAgbG9jYXRpb24gPSAnL2RlZmluaXRpb25zLycgKyBuYW1lICsgJy9hbGxPZic7XG4gICAgdGhpcy5yZXNvbHZlSW5saW5lKG51bGwsIHNwZWMsIHByb3BlcnR5LCByZXNvbHV0aW9uVGFibGUsIHVucmVzb2x2ZWRSZWZzLCBsb2NhdGlvbik7XG4gIH1cbn07XG5cblJlc29sdmVyLnByb3RvdHlwZS5yZXNvbHZlID0gZnVuY3Rpb24gKHNwZWMsIGFyZzEsIGFyZzIsIGFyZzMpIHtcbiAgdmFyIHJvb3QgPSBhcmcxLCBjYWxsYmFjayA9IGFyZzIsIHNjb3BlID0gYXJnMywgbG9jYXRpb24sIGk7XG4gIGlmKHR5cGVvZiBhcmcxID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcm9vdCA9IG51bGw7XG4gICAgY2FsbGJhY2sgPSBhcmcxO1xuICAgIHNjb3BlID0gYXJnMjtcbiAgfVxuICB2YXIgX3Jvb3QgPSByb290O1xuICB0aGlzLnNjb3BlID0gKHNjb3BlIHx8IHRoaXMpO1xuICB0aGlzLml0ZXJhdGlvbiA9IHRoaXMuaXRlcmF0aW9uIHx8IDA7XG5cbiAgdmFyIG5hbWUsIHBhdGgsIHByb3BlcnR5LCBwcm9wZXJ0eU5hbWU7XG4gIHZhciBwcm9jZXNzZWRDYWxscyA9IDAsIHJlc29sdmVkUmVmcyA9IHt9LCB1bnJlc29sdmVkUmVmcyA9IHt9O1xuICB2YXIgcmVzb2x1dGlvblRhYmxlID0gW107IC8vIHN0b3JlIG9iamVjdHMgZm9yIGRlcmVmZXJlbmNpbmdcblxuICAvLyBkZWZpbml0aW9uc1xuICBmb3IgKG5hbWUgaW4gc3BlYy5kZWZpbml0aW9ucykge1xuICAgIHZhciBkZWZpbml0aW9uID0gc3BlYy5kZWZpbml0aW9uc1tuYW1lXTtcbiAgICBmb3IgKHByb3BlcnR5TmFtZSBpbiBkZWZpbml0aW9uLnByb3BlcnRpZXMpIHtcbiAgICAgIHByb3BlcnR5ID0gZGVmaW5pdGlvbi5wcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV07XG4gICAgICBpZihfLmlzQXJyYXkocHJvcGVydHkuYWxsT2YpKSB7XG4gICAgICAgIHRoaXMucHJvY2Vzc0FsbE9mKG5hbWUsIHByb3BlcnR5LCByZXNvbHV0aW9uVGFibGUsIHVucmVzb2x2ZWRSZWZzLCBzcGVjKTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnJlc29sdmVUbyhyb290LCBwcm9wZXJ0eSwgcmVzb2x1dGlvblRhYmxlLCAnL2RlZmluaXRpb25zJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYoZGVmaW5pdGlvbi5hbGxPZikge1xuICAgICAgdGhpcy5wcm9jZXNzQWxsT2YobmFtZSwgZGVmaW5pdGlvbiwgcmVzb2x1dGlvblRhYmxlLCB1bnJlc29sdmVkUmVmcywgc3BlYyk7XG4gICAgfVxuICB9XG5cbiAgLy8gb3BlcmF0aW9uc1xuICBmb3IgKG5hbWUgaW4gc3BlYy5wYXRocykge1xuICAgIHZhciBtZXRob2QsIG9wZXJhdGlvbiwgcmVzcG9uc2VDb2RlO1xuICAgIHBhdGggPSBzcGVjLnBhdGhzW25hbWVdO1xuXG4gICAgZm9yIChtZXRob2QgaW4gcGF0aCkge1xuICAgICAgLy8gb3BlcmF0aW9uIHJlZmVyZW5jZVxuICAgICAgaWYobWV0aG9kID09PSAnJHJlZicpIHtcbiAgICAgICAgLy8gbG9jYXRpb24gPSBwYXRoW21ldGhvZF07XG4gICAgICAgIGxvY2F0aW9uID0gJy9wYXRocycgKyBuYW1lO1xuICAgICAgICB0aGlzLnJlc29sdmVJbmxpbmUocm9vdCwgc3BlYywgcGF0aCwgcmVzb2x1dGlvblRhYmxlLCB1bnJlc29sdmVkUmVmcywgbG9jYXRpb24pO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIG9wZXJhdGlvbiA9IHBhdGhbbWV0aG9kXTtcblxuICAgICAgICB2YXIgcGFyYW1ldGVycyA9IG9wZXJhdGlvbi5wYXJhbWV0ZXJzO1xuICAgICAgICBmb3IgKGkgaW4gcGFyYW1ldGVycykge1xuICAgICAgICAgIHZhciBwYXJhbWV0ZXIgPSBwYXJhbWV0ZXJzW2ldO1xuICAgICAgICAgIGxvY2F0aW9uID0gJy9wYXRocycgKyBuYW1lICsgJy8nICsgbWV0aG9kICsgJy9wYXJhbWV0ZXJzJztcblxuICAgICAgICAgIGlmIChwYXJhbWV0ZXIuaW4gPT09ICdib2R5JyAmJiBwYXJhbWV0ZXIuc2NoZW1hKSB7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVUbyhyb290LCBwYXJhbWV0ZXIuc2NoZW1hLCByZXNvbHV0aW9uVGFibGUsIGxvY2F0aW9uKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGFyYW1ldGVyLiRyZWYpIHtcbiAgICAgICAgICAgIC8vIHBhcmFtZXRlciByZWZlcmVuY2VcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZUlubGluZShyb290LCBzcGVjLCBwYXJhbWV0ZXIsIHJlc29sdXRpb25UYWJsZSwgdW5yZXNvbHZlZFJlZnMsIHBhcmFtZXRlci4kcmVmKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKHJlc3BvbnNlQ29kZSBpbiBvcGVyYXRpb24ucmVzcG9uc2VzKSB7XG4gICAgICAgICAgdmFyIHJlc3BvbnNlID0gb3BlcmF0aW9uLnJlc3BvbnNlc1tyZXNwb25zZUNvZGVdO1xuICAgICAgICAgIGxvY2F0aW9uID0gJy9wYXRocycgKyBuYW1lICsgJy8nICsgbWV0aG9kICsgJy9yZXNwb25zZXMvJyArIHJlc3BvbnNlQ29kZTtcblxuICAgICAgICAgIGlmKF8uaXNPYmplY3QocmVzcG9uc2UpKSB7XG4gICAgICAgICAgICBpZihyZXNwb25zZS4kcmVmKSB7XG4gICAgICAgICAgICAgIC8vIHJlc3BvbnNlIHJlZmVyZW5jZVxuICAgICAgICAgICAgICB0aGlzLnJlc29sdmVJbmxpbmUocm9vdCwgc3BlYywgcmVzcG9uc2UsIHJlc29sdXRpb25UYWJsZSwgdW5yZXNvbHZlZFJlZnMsIGxvY2F0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zY2hlbWEpIHtcbiAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlVG8ocm9vdCwgcmVzcG9uc2Uuc2NoZW1hLCByZXNvbHV0aW9uVGFibGUsIGxvY2F0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgZXhwZWN0ZWRDYWxscyA9IDAsIHRvUmVzb2x2ZSA9IFtdO1xuICAvLyBpZiB0aGUgcm9vdCBpcyBzYW1lIGFzIG9ialtpXS5yb290IHdlIGNhbiByZXNvbHZlIGxvY2FsbHlcbiAgdmFyIGFsbCA9IHJlc29sdXRpb25UYWJsZTtcblxuICB2YXIgcGFydHM7XG4gIGZvcihpID0gMDsgaSA8IGFsbC5sZW5ndGg7IGkrKykge1xuICAgIHZhciBhID0gYWxsW2ldO1xuICAgIGlmKHJvb3QgPT09IGEucm9vdCkge1xuICAgICAgaWYoYS5yZXNvbHZlQXMgPT09ICdyZWYnKSB7XG4gICAgICAgIC8vIHJlc29sdmUgYW55IHBhdGggd2Fsa2luZ1xuICAgICAgICB2YXIgam9pbmVkID0gKChhLnJvb3QgfHwgJycpICsgJy8nICsgYS5rZXkpLnNwbGl0KCcvJyk7XG4gICAgICAgIHZhciBub3JtYWxpemVkID0gW107XG4gICAgICAgIHZhciB1cmwgPSAnJztcbiAgICAgICAgdmFyIGs7XG5cbiAgICAgICAgaWYoYS5rZXkuaW5kZXhPZignLi4vJykgPj0gMCkge1xuICAgICAgICAgIGZvcih2YXIgaiA9IDA7IGogPCBqb2luZWQubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgIGlmKGpvaW5lZFtqXSA9PT0gJy4uJykge1xuICAgICAgICAgICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zbGljZSgwLCBub3JtYWxpemVkLmxlbmd0aC0xKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBub3JtYWxpemVkLnB1c2goam9pbmVkW2pdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZm9yKGsgPSAwOyBrIDwgbm9ybWFsaXplZC5sZW5ndGg7IGsgKyspIHtcbiAgICAgICAgICAgIGlmKGsgPiAwKSB7XG4gICAgICAgICAgICAgIHVybCArPSAnLyc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1cmwgKz0gbm9ybWFsaXplZFtrXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gd2Ugbm93IGhhdmUgdG8gcmVtb3RlIHJlc29sdmUgdGhpcyBiZWNhdXNlIHRoZSBwYXRoIGhhcyBjaGFuZ2VkXG4gICAgICAgICAgYS5yb290ID0gdXJsO1xuICAgICAgICAgIHRvUmVzb2x2ZS5wdXNoKGEpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHBhcnRzID0gYS5rZXkuc3BsaXQoJyMnKTtcbiAgICAgICAgICBpZihwYXJ0cy5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgIGlmKHBhcnRzWzBdLmluZGV4T2YoJ2h0dHA6Ly8nKSA9PT0gMCB8fCBwYXJ0c1swXS5pbmRleE9mKCdodHRwczovLycpID09PSAwKSB7XG4gICAgICAgICAgICAgIGEucm9vdCA9IHBhcnRzWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbG9jYXRpb24gPSBwYXJ0c1sxXS5zcGxpdCgnLycpO1xuICAgICAgICAgICAgdmFyIHI7XG4gICAgICAgICAgICB2YXIgcyA9IHNwZWM7XG4gICAgICAgICAgICBmb3IoayA9IDA7IGsgPCBsb2NhdGlvbi5sZW5ndGg7IGsrKykge1xuICAgICAgICAgICAgICB2YXIgcGFydCA9IGxvY2F0aW9uW2tdO1xuICAgICAgICAgICAgICBpZihwYXJ0ICE9PSAnJykge1xuICAgICAgICAgICAgICAgIHMgPSBzW3BhcnRdO1xuICAgICAgICAgICAgICAgIGlmKHR5cGVvZiBzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgciA9IHM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgciA9IG51bGw7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmKHIgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgLy8gbXVzdCByZXNvbHZlIHRoaXMgdG9vXG4gICAgICAgICAgICAgIHRvUmVzb2x2ZS5wdXNoKGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGlmIChhLnJlc29sdmVBcyA9PT0gJ2lubGluZScpIHtcbiAgICAgICAgICBpZihhLmtleSAmJiBhLmtleS5pbmRleE9mKCcjJykgPT09IC0xICYmIGEua2V5LmNoYXJBdCgwKSAhPT0gJy8nKSB7XG4gICAgICAgICAgICAvLyBoYW5kbGUgcmVsYXRpdmUgc2NoZW1hXG4gICAgICAgICAgICBwYXJ0cyA9IGEucm9vdC5zcGxpdCgnLycpO1xuICAgICAgICAgICAgbG9jYXRpb24gPSAnJztcbiAgICAgICAgICAgIGZvcihpID0gMDsgaSA8IHBhcnRzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICAgICAgICBsb2NhdGlvbiArPSBwYXJ0c1tpXSArICcvJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxvY2F0aW9uICs9IGEua2V5O1xuICAgICAgICAgICAgYS5yb290ID0gbG9jYXRpb247XG4gICAgICAgICAgICBhLmxvY2F0aW9uID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRvUmVzb2x2ZS5wdXNoKGEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdG9SZXNvbHZlLnB1c2goYSk7XG4gICAgfVxuICB9XG4gIGV4cGVjdGVkQ2FsbHMgPSB0b1Jlc29sdmUubGVuZ3RoO1xuXG4gIC8vIHJlc29sdmUgYW55dGhpbmcgdGhhdCBpcyBsb2NhbFxuICBmb3IodmFyIGlpID0gMDsgaWkgPCB0b1Jlc29sdmUubGVuZ3RoOyBpaSsrKSB7XG4gICAgKGZ1bmN0aW9uKGl0ZW0sIHNlbGYpIHtcbiAgICAgIGlmKGl0ZW0ucm9vdCA9PT0gbnVsbCB8fCBpdGVtLnJvb3QgPT09IHJvb3QpIHtcbiAgICAgICAgLy8gbG9jYWwgcmVzb2x2ZVxuICAgICAgICBzZWxmLnJlc29sdmVJdGVtKHNwZWMsIF9yb290LCByZXNvbHV0aW9uVGFibGUsIHJlc29sdmVkUmVmcywgdW5yZXNvbHZlZFJlZnMsIGl0ZW0pO1xuICAgICAgICBwcm9jZXNzZWRDYWxscyArPSAxO1xuXG4gICAgICAgIGlmKHByb2Nlc3NlZENhbGxzID09PSBleHBlY3RlZENhbGxzKSB7XG4gICAgICAgICAgc2VsZi5maW5pc2goc3BlYywgcm9vdCwgcmVzb2x1dGlvblRhYmxlLCByZXNvbHZlZFJlZnMsIHVucmVzb2x2ZWRSZWZzLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXIgb2JqID0ge1xuICAgICAgICAgIHVzZUpRdWVyeTogZmFsc2UsICAvLyBUT0RPXG4gICAgICAgICAgdXJsOiBpdGVtLnJvb3QsXG4gICAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBhY2NlcHQ6IHNlbGYuc2NvcGUuc3dhZ2dlclJlcXVlc3RIZWFkZXJzIHx8ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgb246IHtcbiAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHByb2Nlc3NlZENhbGxzICs9IDE7XG4gICAgICAgICAgICAgIHVucmVzb2x2ZWRSZWZzW2l0ZW0ua2V5XSA9IHtcbiAgICAgICAgICAgICAgICByb290OiBpdGVtLnJvb3QsXG4gICAgICAgICAgICAgICAgbG9jYXRpb246IGl0ZW0ubG9jYXRpb25cbiAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICBpZiAocHJvY2Vzc2VkQ2FsbHMgPT09IGV4cGVjdGVkQ2FsbHMpIHtcbiAgICAgICAgICAgICAgICBzZWxmLmZpbmlzaChzcGVjLCBfcm9vdCwgcmVzb2x1dGlvblRhYmxlLCByZXNvbHZlZFJlZnMsIHVucmVzb2x2ZWRSZWZzLCBjYWxsYmFjayk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sICAvLyBqc2hpbnQgaWdub3JlOmxpbmVcbiAgICAgICAgICAgIHJlc3BvbnNlOiBmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgdmFyIHN3YWdnZXIgPSByZXNwb25zZS5vYmo7XG4gICAgICAgICAgICAgIHNlbGYucmVzb2x2ZUl0ZW0oc3dhZ2dlciwgaXRlbS5yb290LCByZXNvbHV0aW9uVGFibGUsIHJlc29sdmVkUmVmcywgdW5yZXNvbHZlZFJlZnMsIGl0ZW0pO1xuICAgICAgICAgICAgICBwcm9jZXNzZWRDYWxscyArPSAxO1xuXG4gICAgICAgICAgICAgIGlmIChwcm9jZXNzZWRDYWxscyA9PT0gZXhwZWN0ZWRDYWxscykge1xuICAgICAgICAgICAgICAgIHNlbGYuZmluaXNoKHNwZWMsIF9yb290LCByZXNvbHV0aW9uVGFibGUsIHJlc29sdmVkUmVmcywgdW5yZXNvbHZlZFJlZnMsIGNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gLy8ganNoaW50IGlnbm9yZTpsaW5lXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHNjb3BlICYmIHNjb3BlLmNsaWVudEF1dGhvcml6YXRpb25zKSB7XG4gICAgICAgICAgc2NvcGUuY2xpZW50QXV0aG9yaXphdGlvbnMuYXBwbHkob2JqKTtcbiAgICAgICAgfVxuICAgICAgICBuZXcgU3dhZ2dlckh0dHAoKS5leGVjdXRlKG9iaik7XG4gICAgICB9XG4gICAgfSh0b1Jlc29sdmVbaWldLCB0aGlzKSk7XG4gIH1cblxuICBpZiAoT2JqZWN0LmtleXModG9SZXNvbHZlKS5sZW5ndGggPT09IDApIHtcbiAgICB0aGlzLmZpbmlzaChzcGVjLCBfcm9vdCwgcmVzb2x1dGlvblRhYmxlLCByZXNvbHZlZFJlZnMsIHVucmVzb2x2ZWRSZWZzLCBjYWxsYmFjayk7XG4gIH1cbn07XG5cblJlc29sdmVyLnByb3RvdHlwZS5yZXNvbHZlSXRlbSA9IGZ1bmN0aW9uKHNwZWMsIHJvb3QsIHJlc29sdXRpb25UYWJsZSwgcmVzb2x2ZWRSZWZzLCB1bnJlc29sdmVkUmVmcywgaXRlbSkge1xuICB2YXIgcGF0aCA9IGl0ZW0ubG9jYXRpb247XG4gIHZhciBsb2NhdGlvbiA9IHNwZWMsIHBhcnRzID0gcGF0aC5zcGxpdCgnLycpO1xuICBpZihwYXRoICE9PSAnJykge1xuICAgIGZvciAodmFyIGogPSAwOyBqIDwgcGFydHMubGVuZ3RoOyBqKyspIHtcbiAgICAgIHZhciBzZWdtZW50ID0gcGFydHNbal07XG4gICAgICBpZiAoc2VnbWVudC5pbmRleE9mKCd+MScpICE9PSAtMSkge1xuICAgICAgICBzZWdtZW50ID0gcGFydHNbal0ucmVwbGFjZSgvfjAvZywgJ34nKS5yZXBsYWNlKC9+MS9nLCAnLycpO1xuICAgICAgICBpZiAoc2VnbWVudC5jaGFyQXQoMCkgIT09ICcvJykge1xuICAgICAgICAgIHNlZ21lbnQgPSAnLycgKyBzZWdtZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGxvY2F0aW9uID09PSAndW5kZWZpbmVkJyB8fCBsb2NhdGlvbiA9PT0gbnVsbCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGlmIChzZWdtZW50ID09PSAnJyAmJiBqID09PSAocGFydHMubGVuZ3RoIC0gMSkgJiYgcGFydHMubGVuZ3RoID4gMSkge1xuICAgICAgICBsb2NhdGlvbiA9IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKHNlZ21lbnQubGVuZ3RoID4gMCkge1xuICAgICAgICBsb2NhdGlvbiA9IGxvY2F0aW9uW3NlZ21lbnRdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICB2YXIgcmVzb2x2ZWQgPSBpdGVtLmtleTtcbiAgcGFydHMgPSBpdGVtLmtleS5zcGxpdCgnLycpO1xuICB2YXIgcmVzb2x2ZWROYW1lID0gcGFydHNbcGFydHMubGVuZ3RoLTFdO1xuXG4gIGlmKHJlc29sdmVkTmFtZS5pbmRleE9mKCcjJykgPj0gMCkge1xuICAgIHJlc29sdmVkTmFtZSA9IHJlc29sdmVkTmFtZS5zcGxpdCgnIycpWzFdO1xuICB9XG5cbiAgaWYgKGxvY2F0aW9uICE9PSBudWxsICYmIHR5cGVvZiBsb2NhdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXNvbHZlZFJlZnNbcmVzb2x2ZWRdID0ge1xuICAgICAgbmFtZTogcmVzb2x2ZWROYW1lLFxuICAgICAgb2JqOiBsb2NhdGlvbixcbiAgICAgIGtleTogaXRlbS5rZXksXG4gICAgICByb290OiBpdGVtLnJvb3RcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHVucmVzb2x2ZWRSZWZzW3Jlc29sdmVkXSA9IHtcbiAgICAgIHJvb3Q6IGl0ZW0ucm9vdCxcbiAgICAgIGxvY2F0aW9uOiBpdGVtLmxvY2F0aW9uXG4gICAgfTtcbiAgfVxufTtcblxuUmVzb2x2ZXIucHJvdG90eXBlLmZpbmlzaCA9IGZ1bmN0aW9uIChzcGVjLCByb290LCByZXNvbHV0aW9uVGFibGUsIHJlc29sdmVkUmVmcywgdW5yZXNvbHZlZFJlZnMsIGNhbGxiYWNrKSB7XG4gIC8vIHdhbGsgcmVzb2x1dGlvbiB0YWJsZSBhbmQgcmVwbGFjZSB3aXRoIHJlc29sdmVkIHJlZnNcbiAgdmFyIHJlZjtcbiAgZm9yIChyZWYgaW4gcmVzb2x1dGlvblRhYmxlKSB7XG4gICAgdmFyIGl0ZW0gPSByZXNvbHV0aW9uVGFibGVbcmVmXTtcblxuICAgIHZhciBrZXkgPSBpdGVtLmtleTtcbiAgICB2YXIgcmVzb2x2ZWRUbyA9IHJlc29sdmVkUmVmc1trZXldO1xuICAgIGlmIChyZXNvbHZlZFRvKSB7XG4gICAgICBzcGVjLmRlZmluaXRpb25zID0gc3BlYy5kZWZpbml0aW9ucyB8fCB7fTtcbiAgICAgIGlmIChpdGVtLnJlc29sdmVBcyA9PT0gJ3JlZicpIHtcbiAgICAgICAgZm9yIChrZXkgaW4gcmVzb2x2ZWRUby5vYmopIHtcbiAgICAgICAgICB2YXIgYWJzID0gdGhpcy5yZXRhaW5Sb290KHJlc29sdmVkVG8ub2JqW2tleV0sIGl0ZW0ucm9vdCk7XG4gICAgICAgIH1cbiAgICAgICAgc3BlYy5kZWZpbml0aW9uc1tyZXNvbHZlZFRvLm5hbWVdID0gcmVzb2x2ZWRUby5vYmo7XG4gICAgICAgIGl0ZW0ub2JqLiRyZWYgPSAnIy9kZWZpbml0aW9ucy8nICsgcmVzb2x2ZWRUby5uYW1lO1xuICAgICAgfSBlbHNlIGlmIChpdGVtLnJlc29sdmVBcyA9PT0gJ2lubGluZScpIHtcbiAgICAgICAgdmFyIHRhcmdldE9iaiA9IGl0ZW0ub2JqO1xuICAgICAgICB0YXJnZXRPYmpbJ3gtcmVzb2x2ZWQtZnJvbSddID0gWyBpdGVtLmtleSBdO1xuICAgICAgICBkZWxldGUgdGFyZ2V0T2JqLiRyZWY7XG5cbiAgICAgICAgZm9yIChrZXkgaW4gcmVzb2x2ZWRUby5vYmopIHtcbiAgICAgICAgICB2YXIgYWJzID0gdGhpcy5yZXRhaW5Sb290KHJlc29sdmVkVG8ub2JqW2tleV0sIGl0ZW0ucm9vdCk7XG4gICAgICAgICAgdGFyZ2V0T2JqW2tleV0gPSBhYnM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgdmFyIGV4aXN0aW5nVW5yZXNvbHZlZCA9IHRoaXMuY291bnRVbnJlc29sdmVkUmVmcyhzcGVjKTtcblxuICBpZihleGlzdGluZ1VucmVzb2x2ZWQubGVuZ3RoID09PSAwIHx8IHRoaXMuaXRlcmF0aW9uID4gNSkge1xuICAgIHRoaXMucmVzb2x2ZUFsbE9mKHNwZWMuZGVmaW5pdGlvbnMpO1xuICAgIGNhbGxiYWNrLmNhbGwodGhpcy5zY29wZSwgc3BlYywgdW5yZXNvbHZlZFJlZnMpO1xuICB9XG4gIGVsc2Uge1xuICAgIHRoaXMuaXRlcmF0aW9uICs9IDE7XG4gICAgdGhpcy5yZXNvbHZlKHNwZWMsIHJvb3QsIGNhbGxiYWNrLCB0aGlzLnNjb3BlKTtcbiAgfVxufTtcblxuUmVzb2x2ZXIucHJvdG90eXBlLmNvdW50VW5yZXNvbHZlZFJlZnMgPSBmdW5jdGlvbihzcGVjKSB7XG4gIHZhciBpO1xuICB2YXIgcmVmcyA9IHRoaXMuZ2V0UmVmcyhzcGVjKTtcbiAgdmFyIGtleXMgPSBbXTtcbiAgdmFyIHVucmVzb2x2ZWRLZXlzID0gW107XG4gIGZvcihpIGluIHJlZnMpIHtcbiAgICBpZihpLmluZGV4T2YoJyMnKSA9PT0gMCkge1xuICAgICAga2V5cy5wdXNoKGkuc3Vic3RyaW5nKDEpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB1bnJlc29sdmVkS2V5cy5wdXNoKGkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHZlcmlmeSBwb3NzaWJsZSBrZXlzXG4gIGZvciAoaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHBhcnQgPSBrZXlzW2ldO1xuICAgIHZhciBwYXJ0cyA9IHBhcnQuc3BsaXQoJy8nKTtcbiAgICB2YXIgb2JqID0gc3BlYztcblxuICAgIGZvciAodmFyIGsgPSAwOyBrIDwgcGFydHMubGVuZ3RoOyBrKyspIHtcbiAgICAgIHZhciBrZXkgPSBwYXJ0c1trXTtcbiAgICAgIGlmKGtleSAhPT0gJycpIHtcbiAgICAgICAgb2JqID0gb2JqW2tleV07XG4gICAgICAgIGlmKHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgdW5yZXNvbHZlZEtleXMucHVzaChwYXJ0KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gdW5yZXNvbHZlZEtleXMubGVuZ3RoO1xufTtcblxuUmVzb2x2ZXIucHJvdG90eXBlLmdldFJlZnMgPSBmdW5jdGlvbihzcGVjLCBvYmopIHtcbiAgb2JqID0gb2JqIHx8IHNwZWM7XG4gIHZhciBvdXRwdXQgPSB7fTtcbiAgZm9yKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgaWYgKCFvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHZhciBpdGVtID0gb2JqW2tleV07XG4gICAgaWYoa2V5ID09PSAnJHJlZicgJiYgdHlwZW9mIGl0ZW0gPT09ICdzdHJpbmcnKSB7XG4gICAgICBvdXRwdXRbaXRlbV0gPSBudWxsO1xuICAgIH1cbiAgICBlbHNlIGlmKF8uaXNPYmplY3QoaXRlbSkpIHtcbiAgICAgIHZhciBvID0gdGhpcy5nZXRSZWZzKGl0ZW0pO1xuICAgICAgZm9yKHZhciBrIGluIG8pIHtcbiAgICAgICAgb3V0cHV0W2tdID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG91dHB1dDtcbn07XG5cblJlc29sdmVyLnByb3RvdHlwZS5yZXRhaW5Sb290ID0gZnVuY3Rpb24ob2JqLCByb290KSB7XG4gIC8vIHdhbGsgb2JqZWN0IGFuZCBsb29rIGZvciByZWxhdGl2ZSAkcmVmc1xuICBmb3IodmFyIGtleSBpbiBvYmopIHtcbiAgICB2YXIgaXRlbSA9IG9ialtrZXldO1xuICAgIGlmKGtleSA9PT0gJyRyZWYnICYmIHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gc3RvcCBhbmQgaW5zcGVjdFxuICAgICAgaWYoaXRlbS5pbmRleE9mKCdodHRwOi8vJykgIT09IDAgJiYgaXRlbS5pbmRleE9mKCdodHRwczovLycpICE9PSAwKSB7XG4gICAgICAgIGlmKGl0ZW0uaW5kZXhPZignIycpICE9PSAwKSB7XG4gICAgICAgICAgaXRlbSA9ICcjJyArIGl0ZW07XG4gICAgICAgIH1cbiAgICAgICAgaXRlbSA9IChyb290IHx8ICcnKSArIGl0ZW07XG4gICAgICAgIG9ialtrZXldID0gaXRlbTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZihfLmlzT2JqZWN0KGl0ZW0pKSB7XG4gICAgICB0aGlzLnJldGFpblJvb3QoaXRlbSwgcm9vdCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBvYmo7XG59O1xuXG4vKipcbiAqIGltbWVkaWF0ZWx5IGluLWxpbmVzIGxvY2FsIHJlZnMsIHF1ZXVlcyByZW1vdGUgcmVmc1xuICogZm9yIGlubGluZSByZXNvbHV0aW9uXG4gKi9cblJlc29sdmVyLnByb3RvdHlwZS5yZXNvbHZlSW5saW5lID0gZnVuY3Rpb24gKHJvb3QsIHNwZWMsIHByb3BlcnR5LCByZXNvbHV0aW9uVGFibGUsIHVucmVzb2x2ZWRSZWZzLCBsb2NhdGlvbikge1xuICB2YXIga2V5ID0gcHJvcGVydHkuJHJlZiwgcmVmID0gcHJvcGVydHkuJHJlZiwgaSwgcCwgcDIsIHJzO1xuICB2YXIgcm9vdFRyaW1tZWQgPSBmYWxzZTtcbiAgaWYgKHJlZikge1xuICAgIGlmKHJlZi5pbmRleE9mKCcuLi8nKSA9PT0gMCkge1xuICAgICAgLy8gcmVzZXQgcm9vdFxuICAgICAgcCA9IHJlZi5zcGxpdCgnLi4vJyk7XG4gICAgICBwMiA9IHJvb3Quc3BsaXQoJy8nKTtcbiAgICAgIHJlZiA9ICcnO1xuICAgICAgZm9yKGkgPSAwOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZihwW2ldID09PSAnJykge1xuICAgICAgICAgIHAyID0gcDIuc2xpY2UoMCwgcDIubGVuZ3RoLTEpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHJlZiArPSBwW2ldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByb290ID0gJyc7XG4gICAgICBmb3IoaSA9IDA7IGkgPCBwMi5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgaWYoaSA+IDApIHsgcm9vdCArPSAnLyc7IH1cbiAgICAgICAgcm9vdCArPSBwMltpXTtcbiAgICAgIH1cbiAgICAgIHJvb3RUcmltbWVkID0gdHJ1ZTtcbiAgICB9XG4gICAgaWYocmVmLmluZGV4T2YoJyMnKSA+PSAwKSB7XG4gICAgICBpZihyZWYuaW5kZXhPZignLycpID09PSAwKSB7XG4gICAgICAgIHJzID0gcmVmLnNwbGl0KCcjJyk7XG4gICAgICAgIHAgID0gcm9vdC5zcGxpdCgnLy8nKTtcbiAgICAgICAgcDIgPSBwWzFdLnNwbGl0KCcvJyk7XG4gICAgICAgIHJvb3QgPSBwWzBdICsgJy8vJyArIHAyWzBdICsgcnNbMF07XG4gICAgICAgIGxvY2F0aW9uID0gcnNbMV07XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgcnMgPSByZWYuc3BsaXQoJyMnKTtcbiAgICAgICAgaWYocnNbMF0gIT09ICcnKSB7XG4gICAgICAgICAgcDIgPSByb290LnNwbGl0KCcvJyk7XG4gICAgICAgICAgcDIgPSBwMi5zbGljZSgwLCBwMi5sZW5ndGggLSAxKTtcbiAgICAgICAgICBpZighcm9vdFRyaW1tZWQpIHtcbiAgICAgICAgICAgIHJvb3QgPSAnJztcbiAgICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgcDIubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICAgICAgaWYoayA+IDApIHsgcm9vdCArPSAnLyc7IH1cbiAgICAgICAgICAgICAgcm9vdCArPSBwMltrXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcm9vdCArPSAnLycgKyByZWYuc3BsaXQoJyMnKVswXTtcbiAgICAgICAgfVxuICAgICAgICBsb2NhdGlvbiA9IHJzWzFdO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocmVmLmluZGV4T2YoJ2h0dHAnKSA9PT0gMCkge1xuICAgICAgaWYocmVmLmluZGV4T2YoJyMnKSA+PSAwKSB7XG4gICAgICAgIHJvb3QgPSByZWYuc3BsaXQoJyMnKVswXTtcbiAgICAgICAgbG9jYXRpb24gPSByZWYuc3BsaXQoJyMnKVsxXTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICByb290ID0gcmVmO1xuICAgICAgICBsb2NhdGlvbiA9ICcnO1xuICAgICAgfVxuICAgICAgcmVzb2x1dGlvblRhYmxlLnB1c2goe29iajogcHJvcGVydHksIHJlc29sdmVBczogJ2lubGluZScsIHJvb3Q6IHJvb3QsIGtleToga2V5LCBsb2NhdGlvbjogbG9jYXRpb259KTtcbiAgICB9IGVsc2UgaWYgKHJlZi5pbmRleE9mKCcjJykgPT09IDApIHtcbiAgICAgIGxvY2F0aW9uID0gcmVmLnNwbGl0KCcjJylbMV07XG4gICAgICByZXNvbHV0aW9uVGFibGUucHVzaCh7b2JqOiBwcm9wZXJ0eSwgcmVzb2x2ZUFzOiAnaW5saW5lJywgcm9vdDogcm9vdCwga2V5OiBrZXksIGxvY2F0aW9uOiBsb2NhdGlvbn0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJlc29sdXRpb25UYWJsZS5wdXNoKHtvYmo6IHByb3BlcnR5LCByZXNvbHZlQXM6ICdpbmxpbmUnLCByb290OiByb290LCBrZXk6IGtleSwgbG9jYXRpb246IGxvY2F0aW9ufSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHByb3BlcnR5LnR5cGUgPT09ICdhcnJheScpIHtcbiAgICB0aGlzLnJlc29sdmVUbyhyb290LCBwcm9wZXJ0eS5pdGVtcywgcmVzb2x1dGlvblRhYmxlLCBsb2NhdGlvbik7XG4gIH1cbn07XG5cblJlc29sdmVyLnByb3RvdHlwZS5yZXNvbHZlVG8gPSBmdW5jdGlvbiAocm9vdCwgcHJvcGVydHksIHJlc29sdXRpb25UYWJsZSwgbG9jYXRpb24pIHtcbiAgdmFyIHNwLCBpO1xuICB2YXIgcmVmID0gcHJvcGVydHkuJHJlZjtcbiAgdmFyIGxyb290ID0gcm9vdDtcbiAgaWYgKHR5cGVvZiByZWYgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgaWYocmVmLmluZGV4T2YoJyMnKSA+PSAwKSB7XG4gICAgICB2YXIgcGFydHMgPSByZWYuc3BsaXQoJyMnKTtcblxuICAgICAgLy8gIy9kZWZpbml0aW9ucy9mb29cbiAgICAgIC8vIGZvby5qc29uIy9iYXJcbiAgICAgIGlmKHBhcnRzWzBdICYmIHJlZi5pbmRleE9mKCcvJykgPT09IDApIHtcblxuICAgICAgfVxuICAgICAgZWxzZSBpZihwYXJ0c1swXSAmJiByZWYuaW5kZXhPZignaHR0cCcpID09PSAwKSB7XG5cbiAgICAgIH1cbiAgICAgIGVsc2UgaWYocGFydHNbMF0gJiYgcGFydHNbMF0ubGVuZ3RoID4gMCkge1xuICAgICAgICAvLyByZWxhdGl2ZSBmaWxlXG4gICAgICAgIHNwID0gcm9vdC5zcGxpdCgnLycpO1xuICAgICAgICBscm9vdCA9ICcnO1xuICAgICAgICBmb3IoaSA9IDA7IGkgPCBzcC5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgICBscm9vdCArPSBzcFtpXSArICcvJztcbiAgICAgICAgfVxuICAgICAgICBscm9vdCArPSBwYXJ0c1swXTtcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuXG4gICAgICB9XG5cbiAgICAgIGxvY2F0aW9uID0gcGFydHNbMV07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgLy8gcmVsYXRpdmUgZmlsZVxuICAgICAgc3AgPSByb290LnNwbGl0KCcvJyk7XG4gICAgICBscm9vdCA9ICcnO1xuICAgICAgZm9yKGkgPSAwOyBpIDwgc3AubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgIGxyb290ICs9IHNwW2ldICsgJy8nO1xuICAgICAgfVxuICAgICAgbHJvb3QgKz0gcmVmO1xuICAgICAgbG9jYXRpb24gPSAnJztcbiAgICB9XG4gICAgcmVzb2x1dGlvblRhYmxlLnB1c2goe1xuICAgICAgb2JqOiBwcm9wZXJ0eSwgcmVzb2x2ZUFzOiAncmVmJywgcm9vdDogbHJvb3QsIGtleTogcmVmLCBsb2NhdGlvbjogbG9jYXRpb25cbiAgICB9KTtcbiAgfSBlbHNlIGlmIChwcm9wZXJ0eS50eXBlID09PSAnYXJyYXknKSB7XG4gICAgdmFyIGl0ZW1zID0gcHJvcGVydHkuaXRlbXM7XG4gICAgdGhpcy5yZXNvbHZlVG8ocm9vdCwgaXRlbXMsIHJlc29sdXRpb25UYWJsZSwgbG9jYXRpb24pO1xuICB9XG59O1xuXG5SZXNvbHZlci5wcm90b3R5cGUucmVzb2x2ZUFsbE9mID0gZnVuY3Rpb24oc3BlYywgb2JqLCBkZXB0aCkge1xuICBkZXB0aCA9IGRlcHRoIHx8IDA7XG4gIG9iaiA9IG9iaiB8fCBzcGVjO1xuICB2YXIgbmFtZTtcbiAgZm9yKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgaWYgKCFvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHZhciBpdGVtID0gb2JqW2tleV07XG4gICAgaWYoaXRlbSA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignU3dhZ2dlciAyLjAgZG9lcyBub3Qgc3VwcG9ydCBudWxsIHR5cGVzICgnICsgb2JqICsgJykuICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3N3YWdnZXItYXBpL3N3YWdnZXItc3BlYy9pc3N1ZXMvMjI5LicpO1xuICAgIH1cbiAgICBpZih0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHRoaXMucmVzb2x2ZUFsbE9mKHNwZWMsIGl0ZW0sIGRlcHRoICsgMSk7XG4gICAgfVxuICAgIGlmKGl0ZW0gJiYgdHlwZW9mIGl0ZW0uYWxsT2YgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB2YXIgYWxsT2YgPSBpdGVtLmFsbE9mO1xuICAgICAgaWYoXy5pc0FycmF5KGFsbE9mKSkge1xuICAgICAgICB2YXIgb3V0cHV0ID0ge307XG4gICAgICAgIG91dHB1dFsneC1jb21wb3NlZCddID0gdHJ1ZTtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtWyd4LXJlc29sdmVkLWZyb20nXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICBvdXRwdXRbJ3gtcmVzb2x2ZWQtZnJvbSddID0gaXRlbVsneC1yZXNvbHZlZC1mcm9tJ107XG4gICAgICAgIH1cbiAgICAgICAgb3V0cHV0LnByb3BlcnRpZXMgPSB7fTtcbiAgICAgICAgaWYgKCBpdGVtLmV4YW1wbGUgKXtcbiAgICAgICAgICBvdXRwdXQuZXhhbXBsZSA9IGl0ZW0uZXhhbXBsZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgYWxsT2YubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB2YXIgY29tcG9uZW50ID0gYWxsT2ZbaV07XG4gICAgICAgICAgdmFyIHNvdXJjZSA9ICdzZWxmJztcbiAgICAgICAgICBpZih0eXBlb2YgY29tcG9uZW50Wyd4LXJlc29sdmVkLWZyb20nXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHNvdXJjZSA9IGNvbXBvbmVudFsneC1yZXNvbHZlZC1mcm9tJ11bMF07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZm9yKHZhciBwYXJ0IGluIGNvbXBvbmVudCkge1xuICAgICAgICAgICAgaWYoIW91dHB1dC5oYXNPd25Qcm9wZXJ0eShwYXJ0KSkge1xuICAgICAgICAgICAgICBvdXRwdXRbcGFydF0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbXBvbmVudFtwYXJ0XSkpO1xuICAgICAgICAgICAgICBpZihwYXJ0ID09PSAncHJvcGVydGllcycpIHtcbiAgICAgICAgICAgICAgICBmb3IobmFtZSBpbiBvdXRwdXRbcGFydF0pIHtcbiAgICAgICAgICAgICAgICAgIG91dHB1dFtwYXJ0XVtuYW1lXVsneC1yZXNvbHZlZC1mcm9tJ10gPSBzb3VyY2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgaWYocGFydCA9PT0gJ3Byb3BlcnRpZXMnKSB7XG4gICAgICAgICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSBjb21wb25lbnRbcGFydF07XG4gICAgICAgICAgICAgICAgZm9yKG5hbWUgaW4gcHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgb3V0cHV0LnByb3BlcnRpZXNbbmFtZV0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHByb3BlcnRpZXNbbmFtZV0pKTtcbiAgICAgICAgICAgICAgICAgIHZhciByZXNvbHZlZEZyb20gPSBwcm9wZXJ0aWVzW25hbWVdWyd4LXJlc29sdmVkLWZyb20nXTtcbiAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzb2x2ZWRGcm9tID09PSAndW5kZWZpbmVkJyB8fCByZXNvbHZlZEZyb20gPT09ICdzZWxmJykge1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlZEZyb20gPSBzb3VyY2U7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBvdXRwdXQucHJvcGVydGllc1tuYW1lXVsneC1yZXNvbHZlZC1mcm9tJ10gPSByZXNvbHZlZEZyb207XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGVsc2UgaWYocGFydCA9PT0gJ3JlcXVpcmVkJykge1xuICAgICAgICAgICAgICAgIC8vIG1lcmdlICYgZGVkdXAgdGhlIHJlcXVpcmVkIGFycmF5XG4gICAgICAgICAgICAgICAgdmFyIGEgPSBvdXRwdXQucmVxdWlyZWQuY29uY2F0KGNvbXBvbmVudFtwYXJ0XSk7XG4gICAgICAgICAgICAgICAgZm9yKHZhciBrID0gMDsgayA8IGEubGVuZ3RoOyArK2spIHtcbiAgICAgICAgICAgICAgICAgIGZvcih2YXIgaiA9IGsgKyAxOyBqIDwgYS5sZW5ndGg7ICsraikge1xuICAgICAgICAgICAgICAgICAgICBpZihhW2tdID09PSBhW2pdKSB7IGEuc3BsaWNlKGotLSwgMSk7IH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb3V0cHV0LnJlcXVpcmVkID0gYTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBlbHNlIGlmKHBhcnQgPT09ICd4LXJlc29sdmVkLWZyb20nKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0Wyd4LXJlc29sdmVkLWZyb20nXS5wdXNoKHNvdXJjZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogbmVlZCB0byBtZXJnZSB0aGlzIHByb3BlcnR5XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ3doYXQgdG8gZG8gd2l0aCAnICsgcGFydClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvYmpba2V5XSA9IG91dHB1dDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYoXy5pc09iamVjdChpdGVtKSkge1xuICAgICAgdGhpcy5yZXNvbHZlQWxsT2Yoc3BlYywgaXRlbSwgZGVwdGggKyAxKTtcbiAgICB9XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBIZWxwZXJzID0gcmVxdWlyZSgnLi9oZWxwZXJzJyk7XG5cbnZhciBfID0ge1xuICBpc1BsYWluT2JqZWN0OiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNQbGFpbk9iamVjdCcpLFxuICBpc1VuZGVmaW5lZDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2lzVW5kZWZpbmVkJyksXG4gIGlzQXJyYXk6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9pc0FycmF5JyksXG4gIGlzT2JqZWN0OiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNPYmplY3QnKSxcbiAgaXNFbXB0eTogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2lzRW1wdHknKSxcbiAgbWFwOiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2NvbGxlY3Rpb24vbWFwJyksXG4gIGluZGV4T2Y6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvYXJyYXkvaW5kZXhPZicpLFxuICBjbG9uZURlZXA6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9jbG9uZURlZXAnKSxcbiAga2V5czogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9vYmplY3Qva2V5cycpLFxuICBmb3JFYWNoOiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2NvbGxlY3Rpb24vZm9yRWFjaCcpXG59O1xuXG5tb2R1bGUuZXhwb3J0cy5vcHRpb25IdG1sID0gb3B0aW9uSHRtbDtcbm1vZHVsZS5leHBvcnRzLnR5cGVGcm9tSnNvblNjaGVtYSA9IHR5cGVGcm9tSnNvblNjaGVtYTtcbm1vZHVsZS5leHBvcnRzLmdldFN0cmluZ1NpZ25hdHVyZSA9IGdldFN0cmluZ1NpZ25hdHVyZTtcbm1vZHVsZS5leHBvcnRzLnNjaGVtYVRvSFRNTCA9IHNjaGVtYVRvSFRNTDtcbm1vZHVsZS5leHBvcnRzLnNjaGVtYVRvSlNPTiA9IHNjaGVtYVRvSlNPTjtcblxuZnVuY3Rpb24gb3B0aW9uSHRtbChsYWJlbCwgdmFsdWUpIHtcbiAgcmV0dXJuICc8dHI+PHRkIGNsYXNzPVwib3B0aW9uTmFtZVwiPicgKyBsYWJlbCArICc6PC90ZD48dGQ+JyArIHZhbHVlICsgJzwvdGQ+PC90cj4nO1xufVxuXG5mdW5jdGlvbiB0eXBlRnJvbUpzb25TY2hlbWEodHlwZSwgZm9ybWF0KSB7XG4gIHZhciBzdHI7XG5cbiAgaWYgKHR5cGUgPT09ICdpbnRlZ2VyJyAmJiBmb3JtYXQgPT09ICdpbnQzMicpIHtcbiAgICBzdHIgPSAnaW50ZWdlcic7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2ludGVnZXInICYmIGZvcm1hdCA9PT0gJ2ludDY0Jykge1xuICAgIHN0ciA9ICdsb25nJztcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnaW50ZWdlcicgJiYgdHlwZW9mIGZvcm1hdCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBzdHIgPSAnbG9uZyc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3N0cmluZycgJiYgZm9ybWF0ID09PSAnZGF0ZS10aW1lJykge1xuICAgIHN0ciA9ICdkYXRlLXRpbWUnO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdHJpbmcnICYmIGZvcm1hdCA9PT0gJ2RhdGUnKSB7XG4gICAgc3RyID0gJ2RhdGUnO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdudW1iZXInICYmIGZvcm1hdCA9PT0gJ2Zsb2F0Jykge1xuICAgIHN0ciA9ICdmbG9hdCc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ251bWJlcicgJiYgZm9ybWF0ID09PSAnZG91YmxlJykge1xuICAgIHN0ciA9ICdkb3VibGUnO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdudW1iZXInICYmIHR5cGVvZiBmb3JtYXQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgc3RyID0gJ2RvdWJsZSc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgc3RyID0gJ2Jvb2xlYW4nO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgc3RyID0gJ3N0cmluZyc7XG4gIH1cblxuICByZXR1cm4gc3RyO1xufVxuXG5mdW5jdGlvbiBnZXRTdHJpbmdTaWduYXR1cmUob2JqLCBiYXNlQ29tcG9uZW50KSB7XG4gIHZhciBzdHIgPSAnJztcblxuICBpZiAodHlwZW9mIG9iai4kcmVmICE9PSAndW5kZWZpbmVkJykge1xuICAgIHN0ciArPSBIZWxwZXJzLnNpbXBsZVJlZihvYmouJHJlZik7XG4gIH0gZWxzZSBpZiAodHlwZW9mIG9iai50eXBlID09PSAndW5kZWZpbmVkJykge1xuICAgIHN0ciArPSAnb2JqZWN0JztcbiAgfSBlbHNlIGlmIChvYmoudHlwZSA9PT0gJ2FycmF5Jykge1xuICAgIGlmIChiYXNlQ29tcG9uZW50KSB7XG4gICAgICBzdHIgKz0gZ2V0U3RyaW5nU2lnbmF0dXJlKChvYmouaXRlbXMgfHwgb2JqLiRyZWYgfHwge30pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyICs9ICdBcnJheVsnO1xuICAgICAgc3RyICs9IGdldFN0cmluZ1NpZ25hdHVyZSgob2JqLml0ZW1zIHx8IG9iai4kcmVmIHx8IHt9KSk7XG4gICAgICBzdHIgKz0gJ10nO1xuICAgIH1cbiAgfSBlbHNlIGlmIChvYmoudHlwZSA9PT0gJ2ludGVnZXInICYmIG9iai5mb3JtYXQgPT09ICdpbnQzMicpIHtcbiAgICBzdHIgKz0gJ2ludGVnZXInO1xuICB9IGVsc2UgaWYgKG9iai50eXBlID09PSAnaW50ZWdlcicgJiYgb2JqLmZvcm1hdCA9PT0gJ2ludDY0Jykge1xuICAgIHN0ciArPSAnbG9uZyc7XG4gIH0gZWxzZSBpZiAob2JqLnR5cGUgPT09ICdpbnRlZ2VyJyAmJiB0eXBlb2Ygb2JqLmZvcm1hdCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBzdHIgKz0gJ2xvbmcnO1xuICB9IGVsc2UgaWYgKG9iai50eXBlID09PSAnc3RyaW5nJyAmJiBvYmouZm9ybWF0ID09PSAnZGF0ZS10aW1lJykge1xuICAgIHN0ciArPSAnZGF0ZS10aW1lJztcbiAgfSBlbHNlIGlmIChvYmoudHlwZSA9PT0gJ3N0cmluZycgJiYgb2JqLmZvcm1hdCA9PT0gJ2RhdGUnKSB7XG4gICAgc3RyICs9ICdkYXRlJztcbiAgfSBlbHNlIGlmIChvYmoudHlwZSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIG9iai5mb3JtYXQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgc3RyICs9ICdzdHJpbmcnO1xuICB9IGVsc2UgaWYgKG9iai50eXBlID09PSAnbnVtYmVyJyAmJiBvYmouZm9ybWF0ID09PSAnZmxvYXQnKSB7XG4gICAgc3RyICs9ICdmbG9hdCc7XG4gIH0gZWxzZSBpZiAob2JqLnR5cGUgPT09ICdudW1iZXInICYmIG9iai5mb3JtYXQgPT09ICdkb3VibGUnKSB7XG4gICAgc3RyICs9ICdkb3VibGUnO1xuICB9IGVsc2UgaWYgKG9iai50eXBlID09PSAnbnVtYmVyJyAmJiB0eXBlb2Ygb2JqLmZvcm1hdCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBzdHIgKz0gJ2RvdWJsZSc7XG4gIH0gZWxzZSBpZiAob2JqLnR5cGUgPT09ICdib29sZWFuJykge1xuICAgIHN0ciArPSAnYm9vbGVhbic7XG4gIH0gZWxzZSBpZiAob2JqLiRyZWYpIHtcbiAgICBzdHIgKz0gSGVscGVycy5zaW1wbGVSZWYob2JqLiRyZWYpO1xuICB9IGVsc2Uge1xuICAgIHN0ciArPSBvYmoudHlwZTtcbiAgfVxuXG4gIHJldHVybiBzdHI7XG59XG5cbmZ1bmN0aW9uIHNjaGVtYVRvSlNPTihzY2hlbWEsIG1vZGVscywgbW9kZWxzVG9JZ25vcmUsIG1vZGVsUHJvcGVydHlNYWNybykge1xuICAvLyBSZXNvbHZlIHRoZSBzY2hlbWEgKEhhbmRsZSBuZXN0ZWQgc2NoZW1hcylcbiAgc2NoZW1hID0gSGVscGVycy5yZXNvbHZlU2NoZW1hKHNjaGVtYSk7XG5cbiAgaWYodHlwZW9mIG1vZGVsUHJvcGVydHlNYWNybyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIG1vZGVsUHJvcGVydHlNYWNybyA9IGZ1bmN0aW9uKHByb3Ape1xuICAgICAgcmV0dXJuIChwcm9wIHx8IHt9KS5kZWZhdWx0O1xuICAgIH07XG4gIH1cblxuICBtb2RlbHNUb0lnbm9yZT0gbW9kZWxzVG9JZ25vcmUgfHwge307XG5cbiAgdmFyIHR5cGUgPSBzY2hlbWEudHlwZSB8fCAnb2JqZWN0JztcbiAgdmFyIGZvcm1hdCA9IHNjaGVtYS5mb3JtYXQ7XG4gIHZhciBtb2RlbDtcbiAgdmFyIG91dHB1dDtcblxuICBpZiAoc2NoZW1hLmV4YW1wbGUpIHtcbiAgICBvdXRwdXQgPSBzY2hlbWEuZXhhbXBsZTtcbiAgfSBlbHNlIGlmIChfLmlzVW5kZWZpbmVkKHNjaGVtYS5pdGVtcykgJiYgXy5pc0FycmF5KHNjaGVtYS5lbnVtKSkge1xuICAgIG91dHB1dCA9IHNjaGVtYS5lbnVtWzBdO1xuICB9XG5cbiAgaWYgKF8uaXNVbmRlZmluZWQob3V0cHV0KSkge1xuICAgIGlmIChzY2hlbWEuJHJlZikge1xuICAgICAgbW9kZWwgPSBtb2RlbHNbSGVscGVycy5zaW1wbGVSZWYoc2NoZW1hLiRyZWYpXTtcblxuICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKG1vZGVsKSkge1xuICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZChtb2RlbHNUb0lnbm9yZVttb2RlbC5uYW1lXSkpIHtcbiAgICAgICAgICBtb2RlbHNUb0lnbm9yZVttb2RlbC5uYW1lXSA9IG1vZGVsO1xuICAgICAgICAgIG91dHB1dCA9IHNjaGVtYVRvSlNPTihtb2RlbC5kZWZpbml0aW9uLCBtb2RlbHMsIG1vZGVsc1RvSWdub3JlLCBtb2RlbFByb3BlcnR5TWFjcm8pO1xuICAgICAgICAgIGRlbGV0ZSBtb2RlbHNUb0lnbm9yZVttb2RlbC5uYW1lXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAobW9kZWwudHlwZSA9PT0gJ2FycmF5Jykge1xuICAgICAgICAgICAgb3V0cHV0ID0gW107XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dHB1dCA9IHt9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIV8uaXNVbmRlZmluZWQoc2NoZW1hLmRlZmF1bHQpKSB7XG4gICAgICBvdXRwdXQgPSBzY2hlbWEuZGVmYXVsdDtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoZm9ybWF0ID09PSAnZGF0ZS10aW1lJykge1xuICAgICAgICBvdXRwdXQgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gICAgICB9IGVsc2UgaWYgKGZvcm1hdCA9PT0gJ2RhdGUnKSB7XG4gICAgICAgIG91dHB1dCA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3V0cHV0ID0gJ3N0cmluZyc7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnaW50ZWdlcicpIHtcbiAgICAgIG91dHB1dCA9IDA7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgb3V0cHV0ID0gMC4wO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICBvdXRwdXQgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIG91dHB1dCA9IHt9O1xuXG4gICAgICBfLmZvckVhY2goc2NoZW1hLnByb3BlcnRpZXMsIGZ1bmN0aW9uIChwcm9wZXJ0eSwgbmFtZSkge1xuICAgICAgICB2YXIgY1Byb3BlcnR5ID0gXy5jbG9uZURlZXAocHJvcGVydHkpO1xuXG4gICAgICAgIC8vIEFsbG93IG1hY3JvIHRvIHNldCB0aGUgZGVmYXVsdCB2YWx1ZVxuICAgICAgICBjUHJvcGVydHkuZGVmYXVsdCA9IG1vZGVsUHJvcGVydHlNYWNybyhwcm9wZXJ0eSk7XG5cbiAgICAgICAgb3V0cHV0W25hbWVdID0gc2NoZW1hVG9KU09OKGNQcm9wZXJ0eSwgbW9kZWxzLCBtb2RlbHNUb0lnbm9yZSwgbW9kZWxQcm9wZXJ0eU1hY3JvKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2FycmF5Jykge1xuICAgICAgb3V0cHV0ID0gW107XG5cbiAgICAgIGlmIChfLmlzQXJyYXkoc2NoZW1hLml0ZW1zKSkge1xuICAgICAgICBfLmZvckVhY2goc2NoZW1hLml0ZW1zLCBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgIG91dHB1dC5wdXNoKHNjaGVtYVRvSlNPTihpdGVtLCBtb2RlbHMsIG1vZGVsc1RvSWdub3JlLCBtb2RlbFByb3BlcnR5TWFjcm8pKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKF8uaXNQbGFpbk9iamVjdChzY2hlbWEuaXRlbXMpKSB7XG4gICAgICAgIG91dHB1dC5wdXNoKHNjaGVtYVRvSlNPTihzY2hlbWEuaXRlbXMsIG1vZGVscywgbW9kZWxzVG9JZ25vcmUsIG1vZGVsUHJvcGVydHlNYWNybykpO1xuICAgICAgfSBlbHNlIGlmIChfLmlzVW5kZWZpbmVkKHNjaGVtYS5pdGVtcykpIHtcbiAgICAgICAgb3V0cHV0LnB1c2goe30pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgSGVscGVycy5sb2coJ0FycmF5IHR5cGVcXCdzIFxcJ2l0ZW1zXFwnIHByb3BlcnR5IGlzIG5vdCBhbiBhcnJheSBvciBhbiBvYmplY3QsIGNhbm5vdCBwcm9jZXNzJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dHB1dDtcbn1cblxuZnVuY3Rpb24gc2NoZW1hVG9IVE1MKG5hbWUsIHNjaGVtYSwgbW9kZWxzLCBtb2RlbFByb3BlcnR5TWFjcm8pIHtcblxuICB2YXIgc3Ryb25nT3BlbiA9ICc8c3BhbiBjbGFzcz1cInN0cm9uZ1wiPic7XG4gIHZhciBzdHJvbmdDbG9zZSA9ICc8L3NwYW4+JztcblxuICAvLyBBbGxvdyBmb3IgaWdub3JpbmcgdGhlICduYW1lJyBhcmd1bWVudC4uLi4gc2hpZnRpbmcgdGhlIHJlc3RcbiAgaWYoXy5pc09iamVjdChhcmd1bWVudHNbMF0pKSB7XG4gICAgbmFtZSA9IHZvaWQgMDtcbiAgICBzY2hlbWEgPSBhcmd1bWVudHNbMF07XG4gICAgbW9kZWxzID0gYXJndW1lbnRzWzFdO1xuICAgIG1vZGVsUHJvcGVydHlNYWNybyA9IGFyZ3VtZW50c1syXTtcbiAgfVxuXG4gIG1vZGVscyA9IG1vZGVscyB8fCB7fTtcblxuICAvLyBSZXNvbHZlIHRoZSBzY2hlbWEgKEhhbmRsZSBuZXN0ZWQgc2NoZW1hcylcbiAgc2NoZW1hID0gSGVscGVycy5yZXNvbHZlU2NoZW1hKHNjaGVtYSk7XG5cbiAgLy8gUmV0dXJuIGZvciBlbXB0eSBvYmplY3RcbiAgaWYoXy5pc0VtcHR5KHNjaGVtYSkpIHtcbiAgICByZXR1cm4gc3Ryb25nT3BlbiArICdFbXB0eScgKyBzdHJvbmdDbG9zZTtcbiAgfVxuXG4gIC8vIERlcmVmZXJlbmNlICRyZWYgZnJvbSAnbW9kZWxzJ1xuICBpZih0eXBlb2Ygc2NoZW1hLiRyZWYgPT09ICdzdHJpbmcnKSB7XG4gICAgbmFtZSA9IEhlbHBlcnMuc2ltcGxlUmVmKHNjaGVtYS4kcmVmKTtcbiAgICBzY2hlbWEgPSBtb2RlbHNbbmFtZV07XG4gICAgaWYodHlwZW9mIHNjaGVtYSA9PT0gJ3VuZGVmaW5lZCcpXG4gICAge1xuICAgICAgcmV0dXJuIHN0cm9uZ09wZW4gKyBuYW1lICsgJyBpcyBub3QgZGVmaW5lZCEnICsgc3Ryb25nQ2xvc2U7XG4gICAgfVxuICB9XG5cbiAgaWYodHlwZW9mIG5hbWUgIT09ICdzdHJpbmcnKSB7XG4gICAgbmFtZSA9IHNjaGVtYS50aXRsZSB8fCAnSW5saW5lIE1vZGVsJztcbiAgfVxuXG4gIC8vIElmIHdlIGFyZSBhIE1vZGVsIG9iamVjdC4uLiBhZGp1c3QgYWNjb3JkaW5nbHlcbiAgaWYoc2NoZW1hLmRlZmluaXRpb24pIHtcbiAgICBzY2hlbWEgPSBzY2hlbWEuZGVmaW5pdGlvbjtcbiAgfVxuXG4gIGlmKHR5cGVvZiBtb2RlbFByb3BlcnR5TWFjcm8gIT09ICdmdW5jdGlvbicpIHtcbiAgICBtb2RlbFByb3BlcnR5TWFjcm8gPSBmdW5jdGlvbihwcm9wKXtcbiAgICAgIHJldHVybiAocHJvcCB8fCB7fSkuZGVmYXVsdDtcbiAgICB9O1xuICB9XG5cbiAgdmFyIHJlZmVyZW5jZXMgPSB7fTtcbiAgdmFyIHNlZW5Nb2RlbHMgPSBbXTtcbiAgdmFyIGlubGluZU1vZGVscyA9IDA7XG5cblxuXG4gIC8vIEdlbmVyYXRlIGN1cnJlbnQgSFRNTFxuICB2YXIgaHRtbCA9IHByb2Nlc3NNb2RlbChzY2hlbWEsIG5hbWUpO1xuXG4gIC8vIEdlbmVyYXRlIHJlZmVyZW5jZXMgSFRNTFxuICB3aGlsZSAoXy5rZXlzKHJlZmVyZW5jZXMpLmxlbmd0aCA+IDApIHtcbiAgICAvKiBqc2hpbnQgaWdub3JlOnN0YXJ0ICovXG4gICAgXy5mb3JFYWNoKHJlZmVyZW5jZXMsIGZ1bmN0aW9uIChzY2hlbWEsIG5hbWUpIHtcbiAgICAgIHZhciBzZWVuTW9kZWwgPSBfLmluZGV4T2Yoc2Vlbk1vZGVscywgbmFtZSkgPiAtMTtcblxuICAgICAgZGVsZXRlIHJlZmVyZW5jZXNbbmFtZV07XG5cbiAgICAgIGlmICghc2Vlbk1vZGVsKSB7XG4gICAgICAgIHNlZW5Nb2RlbHMucHVzaChuYW1lKTtcblxuICAgICAgICBodG1sICs9ICc8YnIgLz4nICsgcHJvY2Vzc01vZGVsKHNjaGVtYSwgbmFtZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLyoganNoaW50IGlnbm9yZTplbmQgKi9cbiAgfVxuXG4gIHJldHVybiBodG1sO1xuXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIGZ1bmN0aW9uIGFkZFJlZmVyZW5jZShzY2hlbWEsIG5hbWUsIHNraXBSZWYpIHtcbiAgICB2YXIgbW9kZWxOYW1lID0gbmFtZTtcbiAgICB2YXIgbW9kZWw7XG5cbiAgICBpZiAoc2NoZW1hLiRyZWYpIHtcbiAgICAgIG1vZGVsTmFtZSA9IHNjaGVtYS50aXRsZSB8fCBIZWxwZXJzLnNpbXBsZVJlZihzY2hlbWEuJHJlZik7XG4gICAgICBtb2RlbCA9IG1vZGVsc1ttb2RlbE5hbWVdO1xuICAgIH0gZWxzZSBpZiAoXy5pc1VuZGVmaW5lZChuYW1lKSkge1xuICAgICAgbW9kZWxOYW1lID0gc2NoZW1hLnRpdGxlIHx8ICdJbmxpbmUgTW9kZWwgJyArICgrK2lubGluZU1vZGVscyk7XG4gICAgICBtb2RlbCA9IHtkZWZpbml0aW9uOiBzY2hlbWF9O1xuICAgIH1cblxuICAgIGlmIChza2lwUmVmICE9PSB0cnVlKSB7XG4gICAgICByZWZlcmVuY2VzW21vZGVsTmFtZV0gPSBfLmlzVW5kZWZpbmVkKG1vZGVsKSA/IHt9IDogbW9kZWwuZGVmaW5pdGlvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gbW9kZWxOYW1lO1xuICB9XG5cbiAgZnVuY3Rpb24gcHJpbWl0aXZlVG9IVE1MKHNjaGVtYSkge1xuICAgIHZhciBodG1sID0gJzxzcGFuIGNsYXNzPVwicHJvcFR5cGVcIj4nO1xuICAgIHZhciB0eXBlID0gc2NoZW1hLnR5cGUgfHwgJ29iamVjdCc7XG5cbiAgICBpZiAoc2NoZW1hLiRyZWYpIHtcbiAgICAgIGh0bWwgKz0gYWRkUmVmZXJlbmNlKHNjaGVtYSwgSGVscGVycy5zaW1wbGVSZWYoc2NoZW1hLiRyZWYpKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoIV8uaXNVbmRlZmluZWQoc2NoZW1hLnByb3BlcnRpZXMpKSB7XG4gICAgICAgIGh0bWwgKz0gYWRkUmVmZXJlbmNlKHNjaGVtYSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBodG1sICs9ICdvYmplY3QnO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2FycmF5Jykge1xuICAgICAgaHRtbCArPSAnQXJyYXlbJztcblxuICAgICAgaWYgKF8uaXNBcnJheShzY2hlbWEuaXRlbXMpKSB7XG4gICAgICAgIGh0bWwgKz0gXy5tYXAoc2NoZW1hLml0ZW1zLCBhZGRSZWZlcmVuY2UpLmpvaW4oJywnKTtcbiAgICAgIH0gZWxzZSBpZiAoXy5pc1BsYWluT2JqZWN0KHNjaGVtYS5pdGVtcykpIHtcbiAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQoc2NoZW1hLml0ZW1zLiRyZWYpKSB7XG4gICAgICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKHNjaGVtYS5pdGVtcy50eXBlKSAmJiBfLmluZGV4T2YoWydhcnJheScsICdvYmplY3QnXSwgc2NoZW1hLml0ZW1zLnR5cGUpID09PSAtMSkge1xuICAgICAgICAgICAgaHRtbCArPSBzY2hlbWEuaXRlbXMudHlwZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaHRtbCArPSBhZGRSZWZlcmVuY2Uoc2NoZW1hLml0ZW1zKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaHRtbCArPSBhZGRSZWZlcmVuY2Uoc2NoZW1hLml0ZW1zLCBIZWxwZXJzLnNpbXBsZVJlZihzY2hlbWEuaXRlbXMuJHJlZikpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBIZWxwZXJzLmxvZygnQXJyYXkgdHlwZVxcJ3MgXFwnaXRlbXNcXCcgc2NoZW1hIGlzIG5vdCBhbiBhcnJheSBvciBhbiBvYmplY3QsIGNhbm5vdCBwcm9jZXNzJyk7XG4gICAgICAgIGh0bWwgKz0gJ29iamVjdCc7XG4gICAgICB9XG5cbiAgICAgIGh0bWwgKz0gJ10nO1xuICAgIH0gZWxzZSB7XG4gICAgICBodG1sICs9IHNjaGVtYS50eXBlO1xuICAgIH1cblxuICAgIGh0bWwgKz0gJzwvc3Bhbj4nO1xuXG4gICAgcmV0dXJuIGh0bWw7XG4gIH1cblxuICBmdW5jdGlvbiBwcmltaXRpdmVUb09wdGlvbnNIVE1MKHNjaGVtYSwgaHRtbCkge1xuICAgIHZhciBvcHRpb25zID0gJyc7XG4gICAgdmFyIHR5cGUgPSBzY2hlbWEudHlwZSB8fCAnb2JqZWN0JztcbiAgICB2YXIgaXNBcnJheSA9IHR5cGUgPT09ICdhcnJheSc7XG5cbiAgICBpZiAoaXNBcnJheSkge1xuICAgICAgaWYgKF8uaXNQbGFpbk9iamVjdChzY2hlbWEuaXRlbXMpICYmICFfLmlzVW5kZWZpbmVkKHNjaGVtYS5pdGVtcy50eXBlKSkge1xuICAgICAgICB0eXBlID0gc2NoZW1hLml0ZW1zLnR5cGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0eXBlID0gJ29iamVjdCc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKHNjaGVtYS5kZWZhdWx0KSkge1xuICAgICAgb3B0aW9ucyArPSBvcHRpb25IdG1sKCdEZWZhdWx0Jywgc2NoZW1hLmRlZmF1bHQpO1xuICAgIH1cblxuICAgIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICBpZiAoc2NoZW1hLm1pbkxlbmd0aCkge1xuICAgICAgICBvcHRpb25zICs9IG9wdGlvbkh0bWwoJ01pbi4gTGVuZ3RoJywgc2NoZW1hLm1pbkxlbmd0aCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzY2hlbWEubWF4TGVuZ3RoKSB7XG4gICAgICAgIG9wdGlvbnMgKz0gb3B0aW9uSHRtbCgnTWF4LiBMZW5ndGgnLCBzY2hlbWEubWF4TGVuZ3RoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNjaGVtYS5wYXR0ZXJuKSB7XG4gICAgICAgIG9wdGlvbnMgKz0gb3B0aW9uSHRtbCgnUmVnLiBFeHAuJywgc2NoZW1hLnBhdHRlcm4pO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnaW50ZWdlcic6XG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIGlmIChzY2hlbWEubWluaW11bSkge1xuICAgICAgICBvcHRpb25zICs9IG9wdGlvbkh0bWwoJ01pbi4gVmFsdWUnLCBzY2hlbWEubWluaW11bSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzY2hlbWEuZXhjbHVzaXZlTWluaW11bSkge1xuICAgICAgICBvcHRpb25zICs9IG9wdGlvbkh0bWwoJ0V4Y2x1c2l2ZSBNaW4uJywgJ3RydWUnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNjaGVtYS5tYXhpbXVtKSB7XG4gICAgICAgIG9wdGlvbnMgKz0gb3B0aW9uSHRtbCgnTWF4LiBWYWx1ZScsIHNjaGVtYS5tYXhpbXVtKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNjaGVtYS5leGNsdXNpdmVNYXhpbXVtKSB7XG4gICAgICAgIG9wdGlvbnMgKz0gb3B0aW9uSHRtbCgnRXhjbHVzaXZlIE1heC4nLCAndHJ1ZScpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc2NoZW1hLm11bHRpcGxlT2YpIHtcbiAgICAgICAgb3B0aW9ucyArPSBvcHRpb25IdG1sKCdNdWx0aXBsZSBPZicsIHNjaGVtYS5tdWx0aXBsZU9mKTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKGlzQXJyYXkpIHtcbiAgICAgIGlmIChzY2hlbWEubWluSXRlbXMpIHtcbiAgICAgICAgb3B0aW9ucyArPSBvcHRpb25IdG1sKCdNaW4uIEl0ZW1zJywgc2NoZW1hLm1pbkl0ZW1zKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNjaGVtYS5tYXhJdGVtcykge1xuICAgICAgICBvcHRpb25zICs9IG9wdGlvbkh0bWwoJ01heC4gSXRlbXMnLCBzY2hlbWEubWF4SXRlbXMpO1xuICAgICAgfVxuXG4gICAgICBpZiAoc2NoZW1hLnVuaXF1ZUl0ZW1zKSB7XG4gICAgICAgIG9wdGlvbnMgKz0gb3B0aW9uSHRtbCgnVW5pcXVlIEl0ZW1zJywgJ3RydWUnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHNjaGVtYS5jb2xsZWN0aW9uRm9ybWF0KSB7XG4gICAgICAgIG9wdGlvbnMgKz0gb3B0aW9uSHRtbCgnQ29sbC4gRm9ybWF0Jywgc2NoZW1hLmNvbGxlY3Rpb25Gb3JtYXQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChfLmlzVW5kZWZpbmVkKHNjaGVtYS5pdGVtcykpIHtcbiAgICAgIGlmIChfLmlzQXJyYXkoc2NoZW1hLmVudW0pKSB7XG4gICAgICAgIHZhciBlbnVtU3RyaW5nO1xuXG4gICAgICAgIGlmICh0eXBlID09PSAnbnVtYmVyJyB8fCB0eXBlID09PSAnaW50ZWdlcicpIHtcbiAgICAgICAgICBlbnVtU3RyaW5nID0gc2NoZW1hLmVudW0uam9pbignLCAnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlbnVtU3RyaW5nID0gJ1wiJyArIHNjaGVtYS5lbnVtLmpvaW4oJ1wiLCBcIicpICsgJ1wiJztcbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnMgKz0gb3B0aW9uSHRtbCgnRW51bScsIGVudW1TdHJpbmcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGh0bWwgPSAnPHNwYW4gY2xhc3M9XCJwcm9wV3JhcFwiPicgKyBodG1sICsgJzx0YWJsZSBjbGFzcz1cIm9wdGlvbnNXcmFwcGVyXCI+PHRyPjx0aCBjb2xzcGFuPVwiMlwiPicgKyB0eXBlICsgJzwvdGg+PC90cj4nICsgb3B0aW9ucyArICc8L3RhYmxlPjwvc3Bhbj4nO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sO1xuICB9XG5cbiAgZnVuY3Rpb24gcHJvY2Vzc01vZGVsKHNjaGVtYSwgbmFtZSkge1xuICAgIHZhciB0eXBlID0gc2NoZW1hLnR5cGUgfHwgJ29iamVjdCc7XG4gICAgdmFyIGlzQXJyYXkgPSBzY2hlbWEudHlwZSA9PT0gJ2FycmF5JztcbiAgICB2YXIgaHRtbCA9IHN0cm9uZ09wZW4gKyBuYW1lICsgJyAnICsgKGlzQXJyYXkgPyAnWycgOiAneycpICsgc3Ryb25nQ2xvc2U7XG5cbiAgICBpZiAobmFtZSkge1xuICAgICAgc2Vlbk1vZGVscy5wdXNoKG5hbWUpO1xuICAgIH1cblxuICAgIGlmIChpc0FycmF5KSB7XG4gICAgICBpZiAoXy5pc0FycmF5KHNjaGVtYS5pdGVtcykpIHtcbiAgICAgICAgaHRtbCArPSAnPGRpdj4nICsgXy5tYXAoc2NoZW1hLml0ZW1zLCBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgIHZhciB0eXBlID0gaXRlbS50eXBlIHx8ICdvYmplY3QnO1xuXG4gICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQoaXRlbS4kcmVmKSkge1xuICAgICAgICAgICAgaWYgKF8uaW5kZXhPZihbJ2FycmF5JywgJ29iamVjdCddLCB0eXBlKSA+IC0xKSB7XG4gICAgICAgICAgICAgIGlmICh0eXBlID09PSAnb2JqZWN0JyAmJiBfLmlzVW5kZWZpbmVkKGl0ZW0ucHJvcGVydGllcykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ29iamVjdCc7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFkZFJlZmVyZW5jZShpdGVtKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVRvT3B0aW9uc0hUTUwoaXRlbSwgdHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhZGRSZWZlcmVuY2UoaXRlbSwgSGVscGVycy5zaW1wbGVSZWYoaXRlbS4kcmVmKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KS5qb2luKCcsPC9kaXY+PGRpdj4nKTtcbiAgICAgIH0gZWxzZSBpZiAoXy5pc1BsYWluT2JqZWN0KHNjaGVtYS5pdGVtcykpIHtcbiAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQoc2NoZW1hLml0ZW1zLiRyZWYpKSB7XG4gICAgICAgICAgaWYgKF8uaW5kZXhPZihbJ2FycmF5JywgJ29iamVjdCddLCBzY2hlbWEuaXRlbXMudHlwZSB8fCAnb2JqZWN0JykgPiAtMSkge1xuICAgICAgICAgICAgaWYgKChfLmlzVW5kZWZpbmVkKHNjaGVtYS5pdGVtcy50eXBlKSB8fCBzY2hlbWEuaXRlbXMudHlwZSA9PT0gJ29iamVjdCcpICYmIF8uaXNVbmRlZmluZWQoc2NoZW1hLml0ZW1zLnByb3BlcnRpZXMpKSB7XG4gICAgICAgICAgICAgIGh0bWwgKz0gJzxkaXY+b2JqZWN0PC9kaXY+JztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGh0bWwgKz0gJzxkaXY+JyArIGFkZFJlZmVyZW5jZShzY2hlbWEuaXRlbXMpICsgJzwvZGl2Pic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGh0bWwgKz0gJzxkaXY+JyArIHByaW1pdGl2ZVRvT3B0aW9uc0hUTUwoc2NoZW1hLml0ZW1zLCBzY2hlbWEuaXRlbXMudHlwZSkgKyAnPC9kaXY+JztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaHRtbCArPSAnPGRpdj4nICsgYWRkUmVmZXJlbmNlKHNjaGVtYS5pdGVtcywgSGVscGVycy5zaW1wbGVSZWYoc2NoZW1hLml0ZW1zLiRyZWYpKSArICc8L2Rpdj4nO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBIZWxwZXJzLmxvZygnQXJyYXkgdHlwZVxcJ3MgXFwnaXRlbXNcXCcgcHJvcGVydHkgaXMgbm90IGFuIGFycmF5IG9yIGFuIG9iamVjdCwgY2Fubm90IHByb2Nlc3MnKTtcbiAgICAgICAgaHRtbCArPSAnPGRpdj5vYmplY3Q8L2Rpdj4nO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc2NoZW1hLiRyZWYpIHtcbiAgICAgICAgaHRtbCArPSAnPGRpdj4nICsgYWRkUmVmZXJlbmNlKHNjaGVtYSwgbmFtZSkgKyAnPC9kaXY+JztcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgaHRtbCArPSAnPGRpdj4nO1xuXG4gICAgICAgIGlmIChfLmlzUGxhaW5PYmplY3Qoc2NoZW1hLnByb3BlcnRpZXMpKSB7XG4gICAgICAgICAgaHRtbCArPSBfLm1hcChzY2hlbWEucHJvcGVydGllcywgZnVuY3Rpb24gKHByb3BlcnR5LCBuYW1lKSB7XG4gICAgICAgICAgICB2YXIgcHJvcGVydHlJc1JlcXVpcmVkID0gKF8uaW5kZXhPZihzY2hlbWEucmVxdWlyZWQsIG5hbWUpID49IDApO1xuICAgICAgICAgICAgdmFyIGNQcm9wZXJ0eSA9IF8uY2xvbmVEZWVwKHByb3BlcnR5KTtcblxuICAgICAgICAgICAgdmFyIHJlcXVpcmVkQ2xhc3MgPSBwcm9wZXJ0eUlzUmVxdWlyZWQgPyAncmVxdWlyZWQnIDogJyc7XG4gICAgICAgICAgICB2YXIgaHRtbCA9ICc8c3BhbiBjbGFzcz1cInByb3BOYW1lICcgKyByZXF1aXJlZENsYXNzICsgJ1wiPicgKyBuYW1lICsgJzwvc3Bhbj4gKCc7XG4gICAgICAgICAgICB2YXIgbW9kZWw7XG5cbiAgICAgICAgICAgIC8vIEFsbG93IG1hY3JvIHRvIHNldCB0aGUgZGVmYXVsdCB2YWx1ZVxuICAgICAgICAgICAgY1Byb3BlcnR5LmRlZmF1bHQgPSBtb2RlbFByb3BlcnR5TWFjcm8oY1Byb3BlcnR5KTtcblxuICAgICAgICAgICAgLy8gUmVzb2x2ZSB0aGUgc2NoZW1hIChIYW5kbGUgbmVzdGVkIHNjaGVtYXMpXG4gICAgICAgICAgICBjUHJvcGVydHkgPSBIZWxwZXJzLnJlc29sdmVTY2hlbWEoY1Byb3BlcnR5KTtcblxuICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBoYW5kbGUgcHJvcGVydHkgcmVmZXJlbmNlcyB0byBwcmltaXRpdmVzIChJc3N1ZSAzMzkpXG4gICAgICAgICAgICBpZiAoIV8uaXNVbmRlZmluZWQoY1Byb3BlcnR5LiRyZWYpKSB7XG4gICAgICAgICAgICAgIG1vZGVsID0gbW9kZWxzW0hlbHBlcnMuc2ltcGxlUmVmKGNQcm9wZXJ0eS4kcmVmKV07XG5cbiAgICAgICAgICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKG1vZGVsKSAmJiBfLmluZGV4T2YoW3VuZGVmaW5lZCwgJ2FycmF5JywgJ29iamVjdCddLCBtb2RlbC5kZWZpbml0aW9uLnR5cGUpID09PSAtMSkge1xuICAgICAgICAgICAgICAgIC8vIFVzZSByZWZlcmVuY2VkIHNjaGVtYVxuICAgICAgICAgICAgICAgIGNQcm9wZXJ0eSA9IEhlbHBlcnMucmVzb2x2ZVNjaGVtYShtb2RlbC5kZWZpbml0aW9uKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBodG1sICs9IHByaW1pdGl2ZVRvSFRNTChjUHJvcGVydHkpO1xuXG4gICAgICAgICAgICBpZighcHJvcGVydHlJc1JlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIGh0bWwgKz0gJywgPHNwYW4gY2xhc3M9XCJwcm9wT3B0S2V5XCI+b3B0aW9uYWw8L3NwYW4+JztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaHRtbCArPSAnKSc7XG5cbiAgICAgICAgICAgIGlmICghXy5pc1VuZGVmaW5lZChjUHJvcGVydHkuZGVzY3JpcHRpb24pKSB7XG4gICAgICAgICAgICAgIGh0bWwgKz0gJzogJyArICc8c3BhbiBjbGFzcz1cInByb3BEZXNjXCI+JyArIGNQcm9wZXJ0eS5kZXNjcmlwdGlvbiArICc8L3NwYW4+JztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNQcm9wZXJ0eS5lbnVtKSB7XG4gICAgICAgICAgICAgIGh0bWwgKz0gJyA9IDxzcGFuIGNsYXNzPVwicHJvcFZhbHNcIj5bXFwnJyArIGNQcm9wZXJ0eS5lbnVtLmpvaW4oJ1xcJywgXFwnJykgKyAnXFwnXTwvc3Bhbj4nO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcHJpbWl0aXZlVG9PcHRpb25zSFRNTChjUHJvcGVydHksIGh0bWwpO1xuICAgICAgICAgIH0pLmpvaW4oJyw8L2Rpdj48ZGl2PicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaHRtbCArPSAnPC9kaXY+JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGh0bWwgKz0gJzxkaXY+JyArIHByaW1pdGl2ZVRvT3B0aW9uc0hUTUwoc2NoZW1hLCB0eXBlKSArICc8L2Rpdj4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBodG1sICsgc3Ryb25nT3BlbiArIChpc0FycmF5ID8gJ10nIDogJ30nKSArIHN0cm9uZ0Nsb3NlO1xuICB9XG59XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBTd2FnZ2VySHR0cCA9IHJlcXVpcmUoJy4vaHR0cCcpO1xudmFyIF8gPSB7XG4gIGlzT2JqZWN0OiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNPYmplY3QnKVxufTtcblxudmFyIFN3YWdnZXJTcGVjQ29udmVydGVyID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuZXJyb3JzID0gW107XG4gIHRoaXMud2FybmluZ3MgPSBbXTtcbiAgdGhpcy5tb2RlbE1hcCA9IHt9O1xufTtcblxuU3dhZ2dlclNwZWNDb252ZXJ0ZXIucHJvdG90eXBlLnNldERvY3VtZW50YXRpb25Mb2NhdGlvbiA9IGZ1bmN0aW9uIChsb2NhdGlvbikge1xuICB0aGlzLmRvY0xvY2F0aW9uID0gbG9jYXRpb247XG59O1xuXG4vKipcbiAqIGNvbnZlcnRzIGEgcmVzb3VyY2UgbGlzdGluZyBPUiBhcGkgZGVjbGFyYXRpb25cbiAqKi9cblN3YWdnZXJTcGVjQ29udmVydGVyLnByb3RvdHlwZS5jb252ZXJ0ID0gZnVuY3Rpb24gKG9iaiwgY2xpZW50QXV0aG9yaXphdGlvbnMsIGNhbGxiYWNrKSB7XG4gIC8vIG5vdCBhIHZhbGlkIHNwZWNcbiAgaWYoIW9iaiB8fCAhQXJyYXkuaXNBcnJheShvYmouYXBpcykpIHtcbiAgICByZXR1cm4gdGhpcy5maW5pc2goY2FsbGJhY2ssIG51bGwpO1xuICB9XG4gIHRoaXMuY2xpZW50QXV0aG9yaXphdGlvbnMgPSBjbGllbnRBdXRob3JpemF0aW9ucztcblxuICAvLyBjcmVhdGUgYSBuZXcgc3dhZ2dlciBvYmplY3QgdG8gcmV0dXJuXG4gIHZhciBzd2FnZ2VyID0geyBzd2FnZ2VyOiAnMi4wJyB9O1xuXG4gIHN3YWdnZXIub3JpZ2luYWxWZXJzaW9uID0gb2JqLnN3YWdnZXJWZXJzaW9uO1xuXG4gIC8vIGFkZCB0aGUgaW5mb1xuICB0aGlzLmFwaUluZm8ob2JqLCBzd2FnZ2VyKTtcblxuICAvLyBhZGQgc2VjdXJpdHkgZGVmaW5pdGlvbnNcbiAgdGhpcy5zZWN1cml0eURlZmluaXRpb25zKG9iaiwgc3dhZ2dlcik7XG5cbiAgLy8gdGFrZSBiYXNlUGF0aCBpbnRvIGFjY291bnRcbiAgaWYgKG9iai5iYXNlUGF0aCkge1xuICAgIHRoaXMuc2V0RG9jdW1lbnRhdGlvbkxvY2F0aW9uKG9iai5iYXNlUGF0aCk7XG4gIH1cblxuICAvLyBzZWUgaWYgdGhpcyBpcyBhIHNpbmdsZS1maWxlIHN3YWdnZXIgZGVmaW5pdGlvblxuICB2YXIgaXNTaW5nbGVGaWxlU3dhZ2dlciA9IGZhbHNlO1xuICB2YXIgaTtcbiAgZm9yKGkgPSAwOyBpIDwgb2JqLmFwaXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgYXBpID0gb2JqLmFwaXNbaV07XG4gICAgaWYoQXJyYXkuaXNBcnJheShhcGkub3BlcmF0aW9ucykpIHtcbiAgICAgIGlzU2luZ2xlRmlsZVN3YWdnZXIgPSB0cnVlO1xuICAgIH1cbiAgfVxuICBpZihpc1NpbmdsZUZpbGVTd2FnZ2VyKSB7XG4gICAgdGhpcy5kZWNsYXJhdGlvbihvYmosIHN3YWdnZXIpO1xuICAgIHRoaXMuZmluaXNoKGNhbGxiYWNrLCBzd2FnZ2VyKTtcbiAgfVxuICBlbHNlIHtcbiAgICB0aGlzLnJlc291cmNlTGlzdGluZyhvYmosIHN3YWdnZXIsIGNhbGxiYWNrKTtcbiAgfVxufTtcblxuU3dhZ2dlclNwZWNDb252ZXJ0ZXIucHJvdG90eXBlLmRlY2xhcmF0aW9uID0gZnVuY3Rpb24ob2JqLCBzd2FnZ2VyKSB7XG4gIHZhciBuYW1lLCBpLCBwLCBwb3M7XG4gIGlmKCFvYmouYXBpcykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChvYmouYmFzZVBhdGguaW5kZXhPZignaHR0cDovLycpID09PSAwKSB7XG4gICAgcCA9IG9iai5iYXNlUGF0aC5zdWJzdHJpbmcoJ2h0dHA6Ly8nLmxlbmd0aCk7XG4gICAgcG9zID0gcC5pbmRleE9mKCcvJyk7XG4gICAgaWYgKHBvcyA+IDApIHtcbiAgICAgIHN3YWdnZXIuaG9zdCA9IHAuc3Vic3RyaW5nKDAsIHBvcyk7XG4gICAgICBzd2FnZ2VyLmJhc2VQYXRoID0gcC5zdWJzdHJpbmcocG9zKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBzd2FnZ2VyLmhvc3QgPSBwO1xuICAgICAgc3dhZ2dlci5iYXNlUGF0aCA9ICcvJztcbiAgICB9XG4gIH0gZWxzZSBpZiAob2JqLmJhc2VQYXRoLmluZGV4T2YoJ2h0dHBzOi8vJykgPT09IDApIHtcbiAgICBwID0gb2JqLmJhc2VQYXRoLnN1YnN0cmluZygnaHR0cHM6Ly8nLmxlbmd0aCk7XG4gICAgcG9zID0gcC5pbmRleE9mKCcvJyk7XG4gICAgaWYgKHBvcyA+IDApIHtcbiAgICAgIHN3YWdnZXIuaG9zdCA9IHAuc3Vic3RyaW5nKDAsIHBvcyk7XG4gICAgICBzd2FnZ2VyLmJhc2VQYXRoID0gcC5zdWJzdHJpbmcocG9zKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBzd2FnZ2VyLmhvc3QgPSBwO1xuICAgICAgc3dhZ2dlci5iYXNlUGF0aCA9ICcvJztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc3dhZ2dlci5iYXNlUGF0aCA9IG9iai5iYXNlUGF0aDtcbiAgfVxuXG4gIHZhciByZXNvdXJjZUxldmVsQXV0aDtcbiAgaWYob2JqLmF1dGhvcml6YXRpb25zKSB7XG4gICAgcmVzb3VyY2VMZXZlbEF1dGggPSBvYmouYXV0aG9yaXphdGlvbnM7XG4gIH1cbiAgaWYob2JqLmNvbnN1bWVzKSB7XG4gICAgc3dhZ2dlci5jb25zdW1lcyA9IG9iai5jb25zdW1lcztcbiAgfVxuICBpZihvYmoucHJvZHVjZXMpIHtcbiAgICBzd2FnZ2VyLnByb2R1Y2VzID0gb2JqLnByb2R1Y2VzO1xuICB9XG5cbiAgLy8gYnVpbGQgYSBtYXBwaW5nIG9mIGlkIHRvIG5hbWUgZm9yIDEuMCBtb2RlbCByZXNvbHV0aW9uc1xuICBpZihfLmlzT2JqZWN0KG9iaikpIHtcbiAgICBmb3IobmFtZSBpbiBvYmoubW9kZWxzKSB7XG4gICAgICB2YXIgZXhpc3RpbmdNb2RlbCA9IG9iai5tb2RlbHNbbmFtZV07XG4gICAgICB2YXIga2V5ID0gKGV4aXN0aW5nTW9kZWwuaWQgfHwgbmFtZSk7XG4gICAgICB0aGlzLm1vZGVsTWFwW2tleV0gPSBuYW1lO1xuICAgIH1cbiAgfVxuXG4gIGZvcihpID0gMDsgaSA8IG9iai5hcGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGFwaSA9IG9iai5hcGlzW2ldO1xuICAgIHZhciBwYXRoID0gYXBpLnBhdGg7XG4gICAgdmFyIG9wZXJhdGlvbnMgPSBhcGkub3BlcmF0aW9ucztcbiAgICB0aGlzLm9wZXJhdGlvbnMocGF0aCwgb2JqLnJlc291cmNlUGF0aCwgb3BlcmF0aW9ucywgcmVzb3VyY2VMZXZlbEF1dGgsIHN3YWdnZXIpO1xuICB9XG5cbiAgdmFyIG1vZGVscyA9IG9iai5tb2RlbHMgfHwge307XG4gIHRoaXMubW9kZWxzKG1vZGVscywgc3dhZ2dlcik7XG59O1xuXG5Td2FnZ2VyU3BlY0NvbnZlcnRlci5wcm90b3R5cGUubW9kZWxzID0gZnVuY3Rpb24ob2JqLCBzd2FnZ2VyKSB7XG4gIGlmKCFfLmlzT2JqZWN0KG9iaikpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIG5hbWU7XG5cbiAgc3dhZ2dlci5kZWZpbml0aW9ucyA9IHN3YWdnZXIuZGVmaW5pdGlvbnMgfHwge307XG4gIGZvcihuYW1lIGluIG9iaikge1xuICAgIHZhciBleGlzdGluZ01vZGVsID0gb2JqW25hbWVdO1xuICAgIHZhciBfZW51bSA9IFtdO1xuICAgIHZhciBzY2hlbWEgPSB7IHByb3BlcnRpZXM6IHt9fTtcbiAgICB2YXIgcHJvcGVydHlOYW1lO1xuICAgIGZvcihwcm9wZXJ0eU5hbWUgaW4gZXhpc3RpbmdNb2RlbC5wcm9wZXJ0aWVzKSB7XG4gICAgICB2YXIgZXhpc3RpbmdQcm9wZXJ0eSA9IGV4aXN0aW5nTW9kZWwucHJvcGVydGllc1twcm9wZXJ0eU5hbWVdO1xuICAgICAgdmFyIHByb3BlcnR5ID0ge307XG4gICAgICB0aGlzLmRhdGFUeXBlKGV4aXN0aW5nUHJvcGVydHksIHByb3BlcnR5KTtcbiAgICAgIGlmKGV4aXN0aW5nUHJvcGVydHkuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgcHJvcGVydHkuZGVzY3JpcHRpb24gPSBleGlzdGluZ1Byb3BlcnR5LmRlc2NyaXB0aW9uO1xuICAgICAgfVxuICAgICAgaWYoZXhpc3RpbmdQcm9wZXJ0eVsnZW51bSddKSB7XG4gICAgICAgIHByb3BlcnR5WydlbnVtJ10gPSBleGlzdGluZ1Byb3BlcnR5WydlbnVtJ107XG4gICAgICB9XG4gICAgICBpZih0eXBlb2YgZXhpc3RpbmdQcm9wZXJ0eS5yZXF1aXJlZCA9PT0gJ2Jvb2xlYW4nICYmIGV4aXN0aW5nUHJvcGVydHkucmVxdWlyZWQgPT09IHRydWUpIHtcbiAgICAgICAgX2VudW0ucHVzaChwcm9wZXJ0eU5hbWUpO1xuICAgICAgfVxuICAgICAgaWYodHlwZW9mIGV4aXN0aW5nUHJvcGVydHkucmVxdWlyZWQgPT09ICdzdHJpbmcnICYmIGV4aXN0aW5nUHJvcGVydHkucmVxdWlyZWQgPT09ICd0cnVlJykge1xuICAgICAgICBfZW51bS5wdXNoKHByb3BlcnR5TmFtZSk7XG4gICAgICB9XG4gICAgICBzY2hlbWEucHJvcGVydGllc1twcm9wZXJ0eU5hbWVdID0gcHJvcGVydHk7XG4gICAgfVxuICAgIGlmKF9lbnVtLmxlbmd0aCA+IDApIHtcbiAgICAgIHNjaGVtYVsnZW51bSddID0gX2VudW07XG4gICAgfVxuXG4gICAgc2NoZW1hLnJlcXVpcmVkID0gZXhpc3RpbmdNb2RlbC5yZXF1aXJlZDtcbiAgICBzd2FnZ2VyLmRlZmluaXRpb25zW25hbWVdID0gc2NoZW1hO1xuICB9XG59O1xuXG5Td2FnZ2VyU3BlY0NvbnZlcnRlci5wcm90b3R5cGUuZXh0cmFjdFRhZyA9IGZ1bmN0aW9uKHJlc291cmNlUGF0aCkge1xuICB2YXIgcGF0aFN0cmluZyA9IHJlc291cmNlUGF0aCB8fCAnZGVmYXVsdCc7XG4gIGlmKHBhdGhTdHJpbmcuaW5kZXhPZignaHR0cDonKSA9PT0gMCB8fCBwYXRoU3RyaW5nLmluZGV4T2YoJ2h0dHBzOicpID09PSAwKSB7XG4gICAgcGF0aFN0cmluZyA9IHBhdGhTdHJpbmcuc3BsaXQoWycvJ10pO1xuICAgIHBhdGhTdHJpbmcgPSBwYXRoU3RyaW5nW3BhdGhTdHJpbmcubGVuZ3RoIC0xXS5zdWJzdHJpbmcoKTtcbiAgfVxuICBpZihwYXRoU3RyaW5nLmVuZHNXaXRoKCcuanNvbicpKSB7XG4gICAgcGF0aFN0cmluZyA9IHBhdGhTdHJpbmcuc3Vic3RyaW5nKDAsIHBhdGhTdHJpbmcubGVuZ3RoIC0gJy5qc29uJy5sZW5ndGgpO1xuICB9XG4gIHJldHVybiBwYXRoU3RyaW5nLnJlcGxhY2UoJy8nLCcnKTtcbn07XG5cblN3YWdnZXJTcGVjQ29udmVydGVyLnByb3RvdHlwZS5vcGVyYXRpb25zID0gZnVuY3Rpb24ocGF0aCwgcmVzb3VyY2VQYXRoLCBvYmosIHJlc291cmNlTGV2ZWxBdXRoLCBzd2FnZ2VyKSB7XG4gIGlmKCFBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIGk7XG5cbiAgaWYoIXN3YWdnZXIucGF0aHMpIHtcbiAgICBzd2FnZ2VyLnBhdGhzID0ge307XG4gIH1cblxuICB2YXIgcGF0aE9iaiA9IHN3YWdnZXIucGF0aHNbcGF0aF0gfHwge307XG4gIHZhciB0YWcgPSB0aGlzLmV4dHJhY3RUYWcocmVzb3VyY2VQYXRoKTtcbiAgc3dhZ2dlci50YWdzID0gc3dhZ2dlci50YWdzIHx8IFtdO1xuICB2YXIgbWF0Y2hlZCA9IGZhbHNlO1xuICBmb3IoaSA9IDA7IGkgPCBzd2FnZ2VyLnRhZ3MubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgdGFnT2JqZWN0ID0gc3dhZ2dlci50YWdzW2ldO1xuICAgIGlmKHRhZ09iamVjdC5uYW1lID09PSB0YWcpIHtcbiAgICAgIG1hdGNoZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuICBpZighbWF0Y2hlZCkge1xuICAgIHN3YWdnZXIudGFncy5wdXNoKHtuYW1lOiB0YWd9KTtcbiAgfVxuXG4gIGZvcihpID0gMDsgaSA8IG9iai5sZW5ndGg7IGkrKykge1xuICAgIHZhciBleGlzdGluZ09wZXJhdGlvbiA9IG9ialtpXTtcbiAgICB2YXIgbWV0aG9kID0gKGV4aXN0aW5nT3BlcmF0aW9uLm1ldGhvZCB8fCBleGlzdGluZ09wZXJhdGlvbi5odHRwTWV0aG9kKS50b0xvd2VyQ2FzZSgpO1xuICAgIHZhciBvcGVyYXRpb24gPSB7dGFnczogW3RhZ119O1xuICAgIHZhciBleGlzdGluZ0F1dGhvcml6YXRpb25zID0gZXhpc3RpbmdPcGVyYXRpb24uYXV0aG9yaXphdGlvbnM7XG5cbiAgICBpZihleGlzdGluZ0F1dGhvcml6YXRpb25zICYmIE9iamVjdC5rZXlzKGV4aXN0aW5nQXV0aG9yaXphdGlvbnMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZXhpc3RpbmdBdXRob3JpemF0aW9ucyA9IHJlc291cmNlTGV2ZWxBdXRoO1xuICAgIH1cblxuICAgIGlmKHR5cGVvZiBleGlzdGluZ0F1dGhvcml6YXRpb25zICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdmFyIHNjb3Blc09iamVjdDtcbiAgICAgIGZvcih2YXIga2V5IGluIGV4aXN0aW5nQXV0aG9yaXphdGlvbnMpIHtcbiAgICAgICAgb3BlcmF0aW9uLnNlY3VyaXR5ID0gb3BlcmF0aW9uLnNlY3VyaXR5IHx8IFtdO1xuICAgICAgICB2YXIgc2NvcGVzID0gZXhpc3RpbmdBdXRob3JpemF0aW9uc1trZXldO1xuICAgICAgICBpZihzY29wZXMpIHtcbiAgICAgICAgICB2YXIgc2VjdXJpdHlTY29wZXMgPSBbXTtcbiAgICAgICAgICBmb3IodmFyIGogaW4gc2NvcGVzKSB7XG4gICAgICAgICAgICBzZWN1cml0eVNjb3Blcy5wdXNoKHNjb3Blc1tqXS5zY29wZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNjb3Blc09iamVjdCA9IHt9O1xuICAgICAgICAgIHNjb3Blc09iamVjdFtrZXldID0gc2VjdXJpdHlTY29wZXM7XG4gICAgICAgICAgb3BlcmF0aW9uLnNlY3VyaXR5LnB1c2goc2NvcGVzT2JqZWN0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBzY29wZXNPYmplY3QgPSB7fTtcbiAgICAgICAgICBzY29wZXNPYmplY3Rba2V5XSA9IFtdO1xuICAgICAgICAgIG9wZXJhdGlvbi5zZWN1cml0eS5wdXNoKHNjb3Blc09iamVjdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZihleGlzdGluZ09wZXJhdGlvbi5jb25zdW1lcykge1xuICAgICAgb3BlcmF0aW9uLmNvbnN1bWVzID0gZXhpc3RpbmdPcGVyYXRpb24uY29uc3VtZXM7XG4gICAgfVxuICAgIGVsc2UgaWYoc3dhZ2dlci5jb25zdW1lcykge1xuICAgICAgb3BlcmF0aW9uLmNvbnN1bWVzID0gc3dhZ2dlci5jb25zdW1lcztcbiAgICB9XG4gICAgaWYoZXhpc3RpbmdPcGVyYXRpb24ucHJvZHVjZXMpIHtcbiAgICAgIG9wZXJhdGlvbi5wcm9kdWNlcyA9IGV4aXN0aW5nT3BlcmF0aW9uLnByb2R1Y2VzO1xuICAgIH1cbiAgICBlbHNlIGlmKHN3YWdnZXIucHJvZHVjZXMpIHtcbiAgICAgIG9wZXJhdGlvbi5wcm9kdWNlcyA9IHN3YWdnZXIucHJvZHVjZXM7XG4gICAgfVxuICAgIGlmKGV4aXN0aW5nT3BlcmF0aW9uLnN1bW1hcnkpIHtcbiAgICAgIG9wZXJhdGlvbi5zdW1tYXJ5ID0gZXhpc3RpbmdPcGVyYXRpb24uc3VtbWFyeTtcbiAgICB9XG4gICAgaWYoZXhpc3RpbmdPcGVyYXRpb24ubm90ZXMpIHtcbiAgICAgIG9wZXJhdGlvbi5kZXNjcmlwdGlvbiA9IGV4aXN0aW5nT3BlcmF0aW9uLm5vdGVzO1xuICAgIH1cbiAgICBpZihleGlzdGluZ09wZXJhdGlvbi5uaWNrbmFtZSkge1xuICAgICAgb3BlcmF0aW9uLm9wZXJhdGlvbklkID0gZXhpc3RpbmdPcGVyYXRpb24ubmlja25hbWU7XG4gICAgfVxuICAgIGlmKGV4aXN0aW5nT3BlcmF0aW9uLmRlcHJlY2F0ZWQpIHtcbiAgICAgIG9wZXJhdGlvbi5kZXByZWNhdGVkID0gZXhpc3RpbmdPcGVyYXRpb24uZGVwcmVjYXRlZDtcbiAgICB9XG5cbiAgICB0aGlzLmF1dGhvcml6YXRpb25zKGV4aXN0aW5nQXV0aG9yaXphdGlvbnMsIHN3YWdnZXIpO1xuICAgIHRoaXMucGFyYW1ldGVycyhvcGVyYXRpb24sIGV4aXN0aW5nT3BlcmF0aW9uLnBhcmFtZXRlcnMsIHN3YWdnZXIpO1xuICAgIHRoaXMucmVzcG9uc2VNZXNzYWdlcyhvcGVyYXRpb24sIGV4aXN0aW5nT3BlcmF0aW9uLCBzd2FnZ2VyKTtcblxuICAgIHBhdGhPYmpbbWV0aG9kXSA9IG9wZXJhdGlvbjtcbiAgfVxuXG4gIHN3YWdnZXIucGF0aHNbcGF0aF0gPSBwYXRoT2JqO1xufTtcblxuU3dhZ2dlclNwZWNDb252ZXJ0ZXIucHJvdG90eXBlLnJlc3BvbnNlTWVzc2FnZXMgPSBmdW5jdGlvbihvcGVyYXRpb24sIGV4aXN0aW5nT3BlcmF0aW9uKSB7XG4gIGlmKCFfLmlzT2JqZWN0KGV4aXN0aW5nT3BlcmF0aW9uKSkge1xuICAgIHJldHVybjtcbiAgfVxuICAvLyBidWlsZCBkZWZhdWx0IHJlc3BvbnNlIGZyb20gdGhlIG9wZXJhdGlvbiAoMS54KVxuICB2YXIgZGVmYXVsdFJlc3BvbnNlID0ge307XG4gIHRoaXMuZGF0YVR5cGUoZXhpc3RpbmdPcGVyYXRpb24sIGRlZmF1bHRSZXNwb25zZSk7XG4gIC8vIFRPRE86IGxvb2sgaW50byB0aGUgcmVhbCBwcm9ibGVtIG9mIHJlbmRlcmluZyByZXNwb25zZXMgaW4gc3dhZ2dlci11aVxuICAvLyAuLi4uc2hvdWxkIHJlcG9uc2VUeXBlIGhhdmUgYW4gaW1wbGljaXQgc2NoZW1hP1xuICBpZighZGVmYXVsdFJlc3BvbnNlLnNjaGVtYSAmJiBkZWZhdWx0UmVzcG9uc2UudHlwZSkge1xuICAgIGRlZmF1bHRSZXNwb25zZSA9IHtzY2hlbWE6IGRlZmF1bHRSZXNwb25zZX07XG4gIH1cblxuICBvcGVyYXRpb24ucmVzcG9uc2VzID0gb3BlcmF0aW9uLnJlc3BvbnNlcyB8fCB7fTtcblxuICAvLyBncmFiIGZyb20gcmVzcG9uc2VNZXNzYWdlcyAoMS4yKVxuICB2YXIgaGFzMjAwID0gZmFsc2U7XG4gIGlmKEFycmF5LmlzQXJyYXkoZXhpc3RpbmdPcGVyYXRpb24ucmVzcG9uc2VNZXNzYWdlcykpIHtcbiAgICB2YXIgaTtcbiAgICB2YXIgZXhpc3RpbmdSZXNwb25zZXMgPSBleGlzdGluZ09wZXJhdGlvbi5yZXNwb25zZU1lc3NhZ2VzO1xuICAgIGZvcihpID0gMDsgaSA8IGV4aXN0aW5nUmVzcG9uc2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZXhpc3RpbmdSZXNwb25zZSA9IGV4aXN0aW5nUmVzcG9uc2VzW2ldO1xuICAgICAgdmFyIHJlc3BvbnNlID0geyBkZXNjcmlwdGlvbjogZXhpc3RpbmdSZXNwb25zZS5tZXNzYWdlIH07XG4gICAgICBpZihleGlzdGluZ1Jlc3BvbnNlLmNvZGUgPT09IDIwMCkge1xuICAgICAgICBoYXMyMDAgPSB0cnVlO1xuICAgICAgfVxuICAgICAgLy8gQ29udmVydCByZXNwb25zZU1vZGVsIC0+IHNjaGVtYXskcmVmOiByZXNwb25zZU1vZGVsfVxuICAgICAgaWYoZXhpc3RpbmdSZXNwb25zZS5yZXNwb25zZU1vZGVsKSB7XG4gICAgICAgIHJlc3BvbnNlLnNjaGVtYSA9IHsnJHJlZic6IGV4aXN0aW5nUmVzcG9uc2UucmVzcG9uc2VNb2RlbH07XG4gICAgICB9XG4gICAgICBvcGVyYXRpb24ucmVzcG9uc2VzWycnICsgZXhpc3RpbmdSZXNwb25zZS5jb2RlXSA9IHJlc3BvbnNlO1xuICAgIH1cbiAgfVxuXG4gIGlmKGhhczIwMCkge1xuICAgIG9wZXJhdGlvbi5yZXNwb25zZXNbJ2RlZmF1bHQnXSA9IGRlZmF1bHRSZXNwb25zZTtcbiAgfVxuICBlbHNlIHtcbiAgICBvcGVyYXRpb24ucmVzcG9uc2VzWycyMDAnXSA9IGRlZmF1bHRSZXNwb25zZTtcbiAgfVxufTtcblxuU3dhZ2dlclNwZWNDb252ZXJ0ZXIucHJvdG90eXBlLmF1dGhvcml6YXRpb25zID0gZnVuY3Rpb24ob2JqKSB7XG4gIC8vIFRPRE9cbiAgaWYoIV8uaXNPYmplY3Qob2JqKSkge1xuICAgIHJldHVybjtcbiAgfVxufTtcblxuU3dhZ2dlclNwZWNDb252ZXJ0ZXIucHJvdG90eXBlLnBhcmFtZXRlcnMgPSBmdW5jdGlvbihvcGVyYXRpb24sIG9iaikge1xuICBpZighQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBpO1xuICBmb3IoaSA9IDA7IGkgPCBvYmoubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZXhpc3RpbmdQYXJhbWV0ZXIgPSBvYmpbaV07XG4gICAgdmFyIHBhcmFtZXRlciA9IHt9O1xuICAgIHBhcmFtZXRlci5uYW1lID0gZXhpc3RpbmdQYXJhbWV0ZXIubmFtZTtcbiAgICBwYXJhbWV0ZXIuZGVzY3JpcHRpb24gPSBleGlzdGluZ1BhcmFtZXRlci5kZXNjcmlwdGlvbjtcbiAgICBwYXJhbWV0ZXIucmVxdWlyZWQgPSBleGlzdGluZ1BhcmFtZXRlci5yZXF1aXJlZDtcbiAgICBwYXJhbWV0ZXIuaW4gPSBleGlzdGluZ1BhcmFtZXRlci5wYXJhbVR5cGU7XG5cbiAgICAvLyBwZXIgIzE2OFxuICAgIGlmKHBhcmFtZXRlci5pbiA9PT0gJ2JvZHknKSB7XG4gICAgICBwYXJhbWV0ZXIubmFtZSA9ICdib2R5JztcbiAgICB9XG4gICAgaWYocGFyYW1ldGVyLmluID09PSAnZm9ybScpIHtcbiAgICAgIHBhcmFtZXRlci5pbiA9ICdmb3JtRGF0YSc7XG4gICAgfVxuXG4gICAgaWYoZXhpc3RpbmdQYXJhbWV0ZXIuZW51bSkge1xuICAgICAgcGFyYW1ldGVyLmVudW0gPSBleGlzdGluZ1BhcmFtZXRlci5lbnVtO1xuICAgIH1cblxuICAgIGlmKGV4aXN0aW5nUGFyYW1ldGVyLmFsbG93TXVsdGlwbGUgPT09IHRydWUgfHwgZXhpc3RpbmdQYXJhbWV0ZXIuYWxsb3dNdWx0aXBsZSA9PT0gJ3RydWUnKSB7XG4gICAgICB2YXIgaW5uZXJUeXBlID0ge307XG4gICAgICB0aGlzLmRhdGFUeXBlKGV4aXN0aW5nUGFyYW1ldGVyLCBpbm5lclR5cGUpO1xuICAgICAgcGFyYW1ldGVyLnR5cGUgPSAnYXJyYXknO1xuICAgICAgcGFyYW1ldGVyLml0ZW1zID0gaW5uZXJUeXBlO1xuXG4gICAgICBpZihleGlzdGluZ1BhcmFtZXRlci5hbGxvd2FibGVWYWx1ZXMpIHtcbiAgICAgICAgdmFyIGF2ID0gZXhpc3RpbmdQYXJhbWV0ZXIuYWxsb3dhYmxlVmFsdWVzO1xuICAgICAgICBpZihhdi52YWx1ZVR5cGUgPT09ICdMSVNUJykge1xuICAgICAgICAgIHBhcmFtZXRlclsnZW51bSddID0gYXYudmFsdWVzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5kYXRhVHlwZShleGlzdGluZ1BhcmFtZXRlciwgcGFyYW1ldGVyKTtcbiAgICB9XG5cbiAgICBvcGVyYXRpb24ucGFyYW1ldGVycyA9IG9wZXJhdGlvbi5wYXJhbWV0ZXJzIHx8IFtdO1xuICAgIG9wZXJhdGlvbi5wYXJhbWV0ZXJzLnB1c2gocGFyYW1ldGVyKTtcbiAgfVxufTtcblxuU3dhZ2dlclNwZWNDb252ZXJ0ZXIucHJvdG90eXBlLmRhdGFUeXBlID0gZnVuY3Rpb24oc291cmNlLCB0YXJnZXQpIHtcbiAgaWYoIV8uaXNPYmplY3Qoc291cmNlKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmKHNvdXJjZS5taW5pbXVtKSB7XG4gICAgdGFyZ2V0Lm1pbmltdW0gPSBzb3VyY2UubWluaW11bTtcbiAgfVxuICBpZihzb3VyY2UubWF4aW11bSkge1xuICAgIHRhcmdldC5tYXhpbXVtID0gc291cmNlLm1heGltdW07XG4gIH1cbiAgaWYgKHNvdXJjZS5mb3JtYXQpIHtcbiAgICB0YXJnZXQuZm9ybWF0ID0gc291cmNlLmZvcm1hdDtcbiAgfVxuXG4gIC8vIGRlZmF1bHQgY2FuIGJlICdmYWxzZSdcbiAgaWYodHlwZW9mIHNvdXJjZS5kZWZhdWx0VmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgdGFyZ2V0LmRlZmF1bHQgPSBzb3VyY2UuZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgdmFyIGpzb25TY2hlbWFUeXBlID0gdGhpcy50b0pzb25TY2hlbWEoc291cmNlKTtcbiAgaWYoanNvblNjaGVtYVR5cGUpIHtcbiAgICB0YXJnZXQgPSB0YXJnZXQgfHwge307XG4gICAgaWYoanNvblNjaGVtYVR5cGUudHlwZSkge1xuICAgICAgdGFyZ2V0LnR5cGUgPSBqc29uU2NoZW1hVHlwZS50eXBlO1xuICAgIH1cbiAgICBpZihqc29uU2NoZW1hVHlwZS5mb3JtYXQpIHtcbiAgICAgIHRhcmdldC5mb3JtYXQgPSBqc29uU2NoZW1hVHlwZS5mb3JtYXQ7XG4gICAgfVxuICAgIGlmKGpzb25TY2hlbWFUeXBlLiRyZWYpIHtcbiAgICAgIHRhcmdldC5zY2hlbWEgPSB7JHJlZjoganNvblNjaGVtYVR5cGUuJHJlZn07XG4gICAgfVxuICAgIGlmKGpzb25TY2hlbWFUeXBlLml0ZW1zKSB7XG4gICAgICB0YXJnZXQuaXRlbXMgPSBqc29uU2NoZW1hVHlwZS5pdGVtcztcbiAgICB9XG4gIH1cbn07XG5cblN3YWdnZXJTcGVjQ29udmVydGVyLnByb3RvdHlwZS50b0pzb25TY2hlbWEgPSBmdW5jdGlvbihzb3VyY2UpIHtcbiAgaWYoIXNvdXJjZSkge1xuICAgIHJldHVybiAnb2JqZWN0JztcbiAgfVxuICB2YXIgZGV0ZWN0ZWRUeXBlID0gKHNvdXJjZS50eXBlIHx8IHNvdXJjZS5kYXRhVHlwZSB8fCBzb3VyY2UucmVzcG9uc2VDbGFzcyB8fCAnJyk7XG4gIHZhciBsY1R5cGUgPSBkZXRlY3RlZFR5cGUudG9Mb3dlckNhc2UoKTtcbiAgdmFyIGZvcm1hdCA9IChzb3VyY2UuZm9ybWF0IHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuXG4gIGlmKGxjVHlwZS5pbmRleE9mKCdsaXN0WycpID09PSAwKSB7XG4gICAgdmFyIGlubmVyVHlwZSA9IGRldGVjdGVkVHlwZS5zdWJzdHJpbmcoNSwgZGV0ZWN0ZWRUeXBlLmxlbmd0aCAtIDEpO1xuICAgIHZhciBqc29uVHlwZSA9IHRoaXMudG9Kc29uU2NoZW1hKHt0eXBlOiBpbm5lclR5cGV9KTtcbiAgICByZXR1cm4ge3R5cGU6ICdhcnJheScsIGl0ZW1zOiBqc29uVHlwZX07XG4gIH1cbiAgZWxzZSBpZihsY1R5cGUgPT09ICdpbnQnIHx8IChsY1R5cGUgPT09ICdpbnRlZ2VyJyAmJiBmb3JtYXQgPT09ICdpbnQzMicpKVxuICAgIHtyZXR1cm4ge3R5cGU6ICdpbnRlZ2VyJywgZm9ybWF0OiAnaW50MzInfTt9XG4gIGVsc2UgaWYobGNUeXBlID09PSAnbG9uZycgfHwgKGxjVHlwZSA9PT0gJ2ludGVnZXInICYmIGZvcm1hdCA9PT0gJ2ludDY0JykpXG4gICAge3JldHVybiB7dHlwZTogJ2ludGVnZXInLCBmb3JtYXQ6ICdpbnQ2NCd9O31cbiAgZWxzZSBpZihsY1R5cGUgPT09ICdpbnRlZ2VyJylcbiAgICB7cmV0dXJuIHt0eXBlOiAnaW50ZWdlcicsIGZvcm1hdDogJ2ludDY0J307fVxuICBlbHNlIGlmKGxjVHlwZSA9PT0gJ2Zsb2F0JyB8fCAobGNUeXBlID09PSAnbnVtYmVyJyAmJiBmb3JtYXQgPT09ICdmbG9hdCcpKVxuICAgIHtyZXR1cm4ge3R5cGU6ICdudW1iZXInLCBmb3JtYXQ6ICdmbG9hdCd9O31cbiAgZWxzZSBpZihsY1R5cGUgPT09ICdkb3VibGUnIHx8IChsY1R5cGUgPT09ICdudW1iZXInICYmIGZvcm1hdCA9PT0gJ2RvdWJsZScpKVxuICAgIHtyZXR1cm4ge3R5cGU6ICdudW1iZXInLCBmb3JtYXQ6ICdkb3VibGUnfTt9XG4gIGVsc2UgaWYoKGxjVHlwZSA9PT0gJ3N0cmluZycgJiYgZm9ybWF0ID09PSAnZGF0ZS10aW1lJykgfHwgKGxjVHlwZSA9PT0gJ2RhdGUnKSlcbiAgICB7cmV0dXJuIHt0eXBlOiAnc3RyaW5nJywgZm9ybWF0OiAnZGF0ZS10aW1lJ307fVxuICBlbHNlIGlmKGxjVHlwZSA9PT0gJ3N0cmluZycpXG4gICAge3JldHVybiB7dHlwZTogJ3N0cmluZyd9O31cbiAgZWxzZSBpZihsY1R5cGUgPT09ICdmaWxlJylcbiAgICB7cmV0dXJuIHt0eXBlOiAnZmlsZSd9O31cbiAgZWxzZSBpZihsY1R5cGUgPT09ICdib29sZWFuJylcbiAgICB7cmV0dXJuIHt0eXBlOiAnYm9vbGVhbid9O31cbiAgZWxzZSBpZihsY1R5cGUgPT09ICdhcnJheScgfHwgbGNUeXBlID09PSAnbGlzdCcpIHtcbiAgICBpZihzb3VyY2UuaXRlbXMpIHtcbiAgICAgIHZhciBpdCA9IHRoaXMudG9Kc29uU2NoZW1hKHNvdXJjZS5pdGVtcyk7XG4gICAgICByZXR1cm4ge3R5cGU6ICdhcnJheScsIGl0ZW1zOiBpdH07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmV0dXJuIHt0eXBlOiAnYXJyYXknLCBpdGVtczoge3R5cGU6ICdvYmplY3QnfX07XG4gICAgfVxuICB9XG4gIGVsc2UgaWYoc291cmNlLiRyZWYpIHtcbiAgICByZXR1cm4geyRyZWY6ICcjL2RlZmluaXRpb25zLycgKyB0aGlzLm1vZGVsTWFwW3NvdXJjZS4kcmVmXSB8fCBzb3VyY2UuJHJlZn07XG4gIH1cbiAgZWxzZSBpZihsY1R5cGUgPT09ICd2b2lkJyB8fCBsY1R5cGUgPT09ICcnKVxuICAgIHtyZXR1cm4ge307fVxuICBlbHNlIHtcbiAgICByZXR1cm4geyRyZWY6ICcjL2RlZmluaXRpb25zLycgKyB0aGlzLm1vZGVsTWFwW3NvdXJjZS50eXBlXSB8fCBzb3VyY2UudHlwZX07XG4gIH1cbn07XG5cblN3YWdnZXJTcGVjQ29udmVydGVyLnByb3RvdHlwZS5yZXNvdXJjZUxpc3RpbmcgPSBmdW5jdGlvbihvYmosIHN3YWdnZXIsIGNhbGxiYWNrKSB7XG4gIHZhciBpO1xuICB2YXIgcHJvY2Vzc2VkQ291bnQgPSAwOyAgIC8vIGpzaGludCBpZ25vcmU6bGluZVxuICB2YXIgc2VsZiA9IHRoaXM7ICAgICAgICAgIC8vIGpzaGludCBpZ25vcmU6bGluZVxuICB2YXIgZXhwZWN0ZWRDb3VudCA9IG9iai5hcGlzLmxlbmd0aDtcbiAgdmFyIF9zd2FnZ2VyID0gc3dhZ2dlcjsgICAvLyBqc2hpbnQgaWdub3JlOmxpbmVcblxuICBpZihleHBlY3RlZENvdW50ID09PSAwKSB7XG4gICAgdGhpcy5maW5pc2goY2FsbGJhY2ssIHN3YWdnZXIpO1xuICB9XG5cbiAgZm9yKGkgPSAwOyBpIDwgZXhwZWN0ZWRDb3VudDsgaSsrKSB7XG4gICAgdmFyIGFwaSA9IG9iai5hcGlzW2ldO1xuICAgIHZhciBwYXRoID0gYXBpLnBhdGg7XG4gICAgdmFyIGFic29sdXRlUGF0aCA9IHRoaXMuZ2V0QWJzb2x1dGVQYXRoKG9iai5zd2FnZ2VyVmVyc2lvbiwgdGhpcy5kb2NMb2NhdGlvbiwgcGF0aCk7XG5cbiAgICBpZihhcGkuZGVzY3JpcHRpb24pIHtcbiAgICAgIHN3YWdnZXIudGFncyA9IHN3YWdnZXIudGFncyB8fCBbXTtcbiAgICAgIHN3YWdnZXIudGFncy5wdXNoKHtcbiAgICAgICAgbmFtZSA6IHRoaXMuZXh0cmFjdFRhZyhhcGkucGF0aCksXG4gICAgICAgIGRlc2NyaXB0aW9uIDogYXBpLmRlc2NyaXB0aW9uIHx8ICcnXG4gICAgICB9KTtcbiAgICB9XG4gICAgdmFyIGh0dHAgPSB7XG4gICAgICB1cmw6IGFic29sdXRlUGF0aCxcbiAgICAgIGhlYWRlcnM6IHthY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJ30sXG4gICAgICBvbjoge30sXG4gICAgICBtZXRob2Q6ICdnZXQnXG4gICAgfTtcbiAgICAvKiBqc2hpbnQgaWdub3JlOnN0YXJ0ICovXG4gICAgaHR0cC5vbi5yZXNwb25zZSA9IGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgIHByb2Nlc3NlZENvdW50ICs9IDE7XG4gICAgICB2YXIgb2JqID0gZGF0YS5vYmo7XG4gICAgICBpZihvYmopIHtcbiAgICAgICAgc2VsZi5kZWNsYXJhdGlvbihvYmosIF9zd2FnZ2VyKTtcbiAgICAgIH1cbiAgICAgIGlmKHByb2Nlc3NlZENvdW50ID09PSBleHBlY3RlZENvdW50KSB7XG4gICAgICAgIHNlbGYuZmluaXNoKGNhbGxiYWNrLCBfc3dhZ2dlcik7XG4gICAgICB9XG4gICAgfTtcbiAgICBodHRwLm9uLmVycm9yID0gZnVuY3Rpb24oZGF0YSkge1xuICAgICAgY29uc29sZS5lcnJvcihkYXRhKTtcbiAgICAgIHByb2Nlc3NlZENvdW50ICs9IDE7XG4gICAgICBpZihwcm9jZXNzZWRDb3VudCA9PT0gZXhwZWN0ZWRDb3VudCkge1xuICAgICAgICBzZWxmLmZpbmlzaChjYWxsYmFjaywgX3N3YWdnZXIpO1xuICAgICAgfVxuICAgIH07XG4gICAgLyoganNoaW50IGlnbm9yZTplbmQgKi9cblxuICAgIGlmKHRoaXMuY2xpZW50QXV0aG9yaXphdGlvbnMgJiYgdHlwZW9mIHRoaXMuY2xpZW50QXV0aG9yaXphdGlvbnMuYXBwbHkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuY2xpZW50QXV0aG9yaXphdGlvbnMuYXBwbHkoaHR0cCk7XG4gICAgfVxuXG4gICAgbmV3IFN3YWdnZXJIdHRwKCkuZXhlY3V0ZShodHRwKTtcbiAgfVxufTtcblxuU3dhZ2dlclNwZWNDb252ZXJ0ZXIucHJvdG90eXBlLmdldEFic29sdXRlUGF0aCA9IGZ1bmN0aW9uKHZlcnNpb24sIGRvY0xvY2F0aW9uLCBwYXRoKSAge1xuICBpZih2ZXJzaW9uID09PSAnMS4wJykge1xuICAgIGlmKGRvY0xvY2F0aW9uLmVuZHNXaXRoKCcuanNvbicpKSB7XG4gICAgICAvLyBnZXQgcm9vdCBwYXRoXG4gICAgICB2YXIgcG9zID0gZG9jTG9jYXRpb24ubGFzdEluZGV4T2YoJy8nKTtcbiAgICAgIGlmKHBvcyA+IDApIHtcbiAgICAgICAgZG9jTG9jYXRpb24gPSBkb2NMb2NhdGlvbi5zdWJzdHJpbmcoMCwgcG9zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB2YXIgbG9jYXRpb24gPSBkb2NMb2NhdGlvbjtcbiAgaWYocGF0aC5pbmRleE9mKCdodHRwOi8vJykgPT09IDAgfHwgcGF0aC5pbmRleE9mKCdodHRwczovLycpID09PSAwKSB7XG4gICAgbG9jYXRpb24gPSBwYXRoO1xuICB9XG4gIGVsc2Uge1xuICAgIGlmKGRvY0xvY2F0aW9uLmVuZHNXaXRoKCcvJykpIHtcbiAgICAgIGxvY2F0aW9uID0gZG9jTG9jYXRpb24uc3Vic3RyaW5nKDAsIGRvY0xvY2F0aW9uLmxlbmd0aCAtIDEpO1xuICAgIH1cbiAgICBsb2NhdGlvbiArPSBwYXRoO1xuICB9XG4gIGxvY2F0aW9uID0gbG9jYXRpb24ucmVwbGFjZSgne2Zvcm1hdH0nLCAnanNvbicpO1xuICByZXR1cm4gbG9jYXRpb247XG59O1xuXG5Td2FnZ2VyU3BlY0NvbnZlcnRlci5wcm90b3R5cGUuc2VjdXJpdHlEZWZpbml0aW9ucyA9IGZ1bmN0aW9uKG9iaiwgc3dhZ2dlcikge1xuICBpZihvYmouYXV0aG9yaXphdGlvbnMpIHtcbiAgICB2YXIgbmFtZTtcbiAgICBmb3IobmFtZSBpbiBvYmouYXV0aG9yaXphdGlvbnMpIHtcbiAgICAgIHZhciBpc1ZhbGlkID0gZmFsc2U7XG4gICAgICB2YXIgc2VjdXJpdHlEZWZpbml0aW9uID0ge307XG4gICAgICB2YXIgZGVmaW5pdGlvbiA9IG9iai5hdXRob3JpemF0aW9uc1tuYW1lXTtcbiAgICAgIGlmKGRlZmluaXRpb24udHlwZSA9PT0gJ2FwaUtleScpIHtcbiAgICAgICAgc2VjdXJpdHlEZWZpbml0aW9uLnR5cGUgPSAnYXBpS2V5JztcbiAgICAgICAgc2VjdXJpdHlEZWZpbml0aW9uLmluID0gZGVmaW5pdGlvbi5wYXNzQXM7XG4gICAgICAgIHNlY3VyaXR5RGVmaW5pdGlvbi5uYW1lID0gZGVmaW5pdGlvbi5rZXluYW1lIHx8IG5hbWU7XG4gICAgICAgIGlzVmFsaWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgZWxzZSBpZihkZWZpbml0aW9uLnR5cGUgPT09ICdvYXV0aDInKSB7XG4gICAgICAgIHZhciBleGlzdGluZ1Njb3BlcyA9IGRlZmluaXRpb24uc2NvcGVzIHx8IFtdO1xuICAgICAgICB2YXIgc2NvcGVzID0ge307XG4gICAgICAgIHZhciBpO1xuICAgICAgICBmb3IoaSBpbiBleGlzdGluZ1Njb3Blcykge1xuICAgICAgICAgIHZhciBzY29wZSA9IGV4aXN0aW5nU2NvcGVzW2ldO1xuICAgICAgICAgIHNjb3Blc1tzY29wZS5zY29wZV0gPSBzY29wZS5kZXNjcmlwdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBzZWN1cml0eURlZmluaXRpb24udHlwZSA9ICdvYXV0aDInO1xuICAgICAgICBpZihpID4gMCkge1xuICAgICAgICAgIHNlY3VyaXR5RGVmaW5pdGlvbi5zY29wZXMgPSBzY29wZXM7XG4gICAgICAgIH1cbiAgICAgICAgaWYoZGVmaW5pdGlvbi5ncmFudFR5cGVzKSB7XG4gICAgICAgICAgaWYoZGVmaW5pdGlvbi5ncmFudFR5cGVzLmltcGxpY2l0KSB7XG4gICAgICAgICAgICB2YXIgaW1wbGljaXQgPSBkZWZpbml0aW9uLmdyYW50VHlwZXMuaW1wbGljaXQ7XG4gICAgICAgICAgICBzZWN1cml0eURlZmluaXRpb24uZmxvdyA9ICdpbXBsaWNpdCc7XG4gICAgICAgICAgICBzZWN1cml0eURlZmluaXRpb24uYXV0aG9yaXphdGlvblVybCA9IGltcGxpY2l0LmxvZ2luRW5kcG9pbnQ7XG4gICAgICAgICAgICBpc1ZhbGlkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLyoganNoaW50IGlnbm9yZTpzdGFydCAqL1xuICAgICAgICAgIGlmKGRlZmluaXRpb24uZ3JhbnRUeXBlc1snYXV0aG9yaXphdGlvbl9jb2RlJ10pIHtcbiAgICAgICAgICAgIGlmKCFzZWN1cml0eURlZmluaXRpb24uZmxvdykge1xuICAgICAgICAgICAgICAvLyBjYW5ub3Qgc2V0IGlmIGZsb3cgaXMgYWxyZWFkeSBkZWZpbmVkXG4gICAgICAgICAgICAgIHZhciBhdXRoQ29kZSA9IGRlZmluaXRpb24uZ3JhbnRUeXBlc1snYXV0aG9yaXphdGlvbl9jb2RlJ107XG4gICAgICAgICAgICAgIHNlY3VyaXR5RGVmaW5pdGlvbi5mbG93ID0gJ2FjY2Vzc0NvZGUnO1xuICAgICAgICAgICAgICBzZWN1cml0eURlZmluaXRpb24uYXV0aG9yaXphdGlvblVybCA9IGF1dGhDb2RlLnRva2VuUmVxdWVzdEVuZHBvaW50LnVybDtcbiAgICAgICAgICAgICAgc2VjdXJpdHlEZWZpbml0aW9uLnRva2VuVXJsID0gYXV0aENvZGUudG9rZW5FbmRwb2ludC51cmw7XG4gICAgICAgICAgICAgIGlzVmFsaWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvKiBqc2hpbnQgaWdub3JlOmVuZCAqL1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZihpc1ZhbGlkKSB7XG4gICAgICAgIHN3YWdnZXIuc2VjdXJpdHlEZWZpbml0aW9ucyA9IHN3YWdnZXIuc2VjdXJpdHlEZWZpbml0aW9ucyB8fCB7fTtcbiAgICAgICAgc3dhZ2dlci5zZWN1cml0eURlZmluaXRpb25zW25hbWVdID0gc2VjdXJpdHlEZWZpbml0aW9uO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuU3dhZ2dlclNwZWNDb252ZXJ0ZXIucHJvdG90eXBlLmFwaUluZm8gPSBmdW5jdGlvbihvYmosIHN3YWdnZXIpIHtcbiAgLy8gaW5mbyBzZWN0aW9uXG4gIGlmKG9iai5pbmZvKSB7XG4gICAgdmFyIGluZm8gPSBvYmouaW5mbztcbiAgICBzd2FnZ2VyLmluZm8gPSB7fTtcblxuICAgIGlmKGluZm8uY29udGFjdCkge1xuICAgICAgc3dhZ2dlci5pbmZvLmNvbnRhY3QgPSB7fTtcbiAgICAgIHN3YWdnZXIuaW5mby5jb250YWN0LmVtYWlsID0gaW5mby5jb250YWN0O1xuICAgIH1cbiAgICBpZihpbmZvLmRlc2NyaXB0aW9uKSB7XG4gICAgICBzd2FnZ2VyLmluZm8uZGVzY3JpcHRpb24gPSBpbmZvLmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgICBpZihpbmZvLnRpdGxlKSB7XG4gICAgICBzd2FnZ2VyLmluZm8udGl0bGUgPSBpbmZvLnRpdGxlO1xuICAgIH1cbiAgICBpZihpbmZvLnRlcm1zT2ZTZXJ2aWNlVXJsKSB7XG4gICAgICBzd2FnZ2VyLmluZm8udGVybXNPZlNlcnZpY2UgPSBpbmZvLnRlcm1zT2ZTZXJ2aWNlVXJsO1xuICAgIH1cbiAgICBpZihpbmZvLmxpY2Vuc2UgfHwgaW5mby5saWNlbnNlVXJsKSB7XG4gICAgICBzd2FnZ2VyLmxpY2Vuc2UgPSB7fTtcbiAgICAgIGlmKGluZm8ubGljZW5zZSkge1xuICAgICAgICBzd2FnZ2VyLmxpY2Vuc2UubmFtZSA9IGluZm8ubGljZW5zZTtcbiAgICAgIH1cbiAgICAgIGlmKGluZm8ubGljZW5zZVVybCkge1xuICAgICAgICBzd2FnZ2VyLmxpY2Vuc2UudXJsID0gaW5mby5saWNlbnNlVXJsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBlbHNlIHtcbiAgICB0aGlzLndhcm5pbmdzLnB1c2goJ21pc3NpbmcgaW5mbyBzZWN0aW9uJyk7XG4gIH1cbn07XG5cblN3YWdnZXJTcGVjQ29udmVydGVyLnByb3RvdHlwZS5maW5pc2ggPSBmdW5jdGlvbiAoY2FsbGJhY2ssIG9iaikge1xuICBjYWxsYmFjayhvYmopO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIF8gPSB7XG4gIGlzUGxhaW5PYmplY3Q6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9pc1BsYWluT2JqZWN0JyksXG4gIGlzU3RyaW5nOiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNTdHJpbmcnKSxcbn07XG5cbnZhciBTY2hlbWFNYXJrdXAgPSByZXF1aXJlKCcuLi9zY2hlbWEtbWFya3VwLmpzJyk7XG52YXIganN5YW1sID0gcmVxdWlyZSgnanMteWFtbCcpO1xuXG52YXIgTW9kZWwgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChuYW1lLCBkZWZpbml0aW9uLCBtb2RlbHMsIG1vZGVsUHJvcGVydHlNYWNybykge1xuICB0aGlzLmRlZmluaXRpb24gPSBkZWZpbml0aW9uIHx8IHt9O1xuICB0aGlzLmlzQXJyYXkgPSBkZWZpbml0aW9uLnR5cGUgPT09ICdhcnJheSc7XG4gIHRoaXMubW9kZWxzID0gbW9kZWxzIHx8IHt9O1xuICB0aGlzLm5hbWUgPSBkZWZpbml0aW9uLnRpdGxlIHx8IG5hbWUgfHwgJ0lubGluZSBNb2RlbCc7XG4gIHRoaXMubW9kZWxQcm9wZXJ0eU1hY3JvID0gbW9kZWxQcm9wZXJ0eU1hY3JvIHx8IGZ1bmN0aW9uIChwcm9wZXJ0eSkge1xuICAgIHJldHVybiBwcm9wZXJ0eS5kZWZhdWx0O1xuICB9O1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuTW9kZWwucHJvdG90eXBlLmNyZWF0ZUpTT05TYW1wbGUgPSBNb2RlbC5wcm90b3R5cGUuZ2V0U2FtcGxlVmFsdWUgPSBmdW5jdGlvbiAobW9kZWxzVG9JZ25vcmUpIHtcbiAgbW9kZWxzVG9JZ25vcmUgPSBtb2RlbHNUb0lnbm9yZSB8fCB7fTtcblxuICBtb2RlbHNUb0lnbm9yZVt0aGlzLm5hbWVdID0gdGhpcztcblxuICAvLyBSZXNwb25zZSBzdXBwb3J0XG4gIGlmICh0aGlzLmV4YW1wbGVzICYmIF8uaXNQbGFpbk9iamVjdCh0aGlzLmV4YW1wbGVzKSAmJiB0aGlzLmV4YW1wbGVzWydhcHBsaWNhdGlvbi9qc29uJ10pIHtcbiAgICB0aGlzLmRlZmluaXRpb24uZXhhbXBsZSA9IHRoaXMuZXhhbXBsZXNbJ2FwcGxpY2F0aW9uL2pzb24nXTtcblxuICAgIGlmIChfLmlzU3RyaW5nKHRoaXMuZGVmaW5pdGlvbi5leGFtcGxlKSkge1xuICAgICAgdGhpcy5kZWZpbml0aW9uLmV4YW1wbGUgPSBqc3lhbWwuc2FmZUxvYWQodGhpcy5kZWZpbml0aW9uLmV4YW1wbGUpO1xuICAgIH1cbiAgfSBlbHNlIGlmICghdGhpcy5kZWZpbml0aW9uLmV4YW1wbGUpIHtcbiAgICB0aGlzLmRlZmluaXRpb24uZXhhbXBsZSA9IHRoaXMuZXhhbXBsZXM7XG4gIH1cblxuICByZXR1cm4gU2NoZW1hTWFya3VwLnNjaGVtYVRvSlNPTih0aGlzLmRlZmluaXRpb24sIHRoaXMubW9kZWxzLCBtb2RlbHNUb0lnbm9yZSwgdGhpcy5tb2RlbFByb3BlcnR5TWFjcm8pO1xufTtcblxuTW9kZWwucHJvdG90eXBlLmdldE1vY2tTaWduYXR1cmUgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBTY2hlbWFNYXJrdXAuc2NoZW1hVG9IVE1MKHRoaXMubmFtZSwgdGhpcy5kZWZpbml0aW9uLCB0aGlzLm1vZGVscywgdGhpcy5tb2RlbFByb3BlcnR5TWFjcm8pO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIF8gPSB7XG4gIGNsb25lRGVlcDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2Nsb25lRGVlcCcpLFxuICBpc1VuZGVmaW5lZDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2lzVW5kZWZpbmVkJyksXG4gIGlzRW1wdHk6IHJlcXVpcmUoJ2xvZGFzaC1jb21wYXQvbGFuZy9pc0VtcHR5JyksXG4gIGlzT2JqZWN0OiByZXF1aXJlKCdsb2Rhc2gtY29tcGF0L2xhbmcvaXNPYmplY3QnKVxufTtcbnZhciBoZWxwZXJzID0gcmVxdWlyZSgnLi4vaGVscGVycycpO1xudmFyIE1vZGVsID0gcmVxdWlyZSgnLi9tb2RlbCcpO1xudmFyIFN3YWdnZXJIdHRwID0gcmVxdWlyZSgnLi4vaHR0cCcpO1xuXG52YXIgT3BlcmF0aW9uID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAocGFyZW50LCBzY2hlbWUsIG9wZXJhdGlvbklkLCBodHRwTWV0aG9kLCBwYXRoLCBhcmdzLCBkZWZpbml0aW9ucywgbW9kZWxzLCBjbGllbnRBdXRob3JpemF0aW9ucykge1xuICB2YXIgZXJyb3JzID0gW107XG5cbiAgcGFyZW50ID0gcGFyZW50IHx8IHt9O1xuICBhcmdzID0gYXJncyB8fCB7fTtcblxuICBpZihwYXJlbnQgJiYgcGFyZW50Lm9wdGlvbnMpIHtcbiAgICB0aGlzLmNsaWVudCA9IHBhcmVudC5vcHRpb25zLmNsaWVudCB8fCBudWxsO1xuICAgIHRoaXMucmVzcG9uc2VJbnRlcmNlcHRvciA9IHBhcmVudC5vcHRpb25zLnJlc3BvbnNlSW50ZXJjZXB0b3IgfHwgbnVsbDtcbiAgfVxuICB0aGlzLmF1dGhvcml6YXRpb25zID0gYXJncy5zZWN1cml0eTtcbiAgdGhpcy5iYXNlUGF0aCA9IHBhcmVudC5iYXNlUGF0aCB8fCAnLyc7XG4gIHRoaXMuY2xpZW50QXV0aG9yaXphdGlvbnMgPSBjbGllbnRBdXRob3JpemF0aW9ucztcbiAgdGhpcy5jb25zdW1lcyA9IGFyZ3MuY29uc3VtZXMgfHwgcGFyZW50LmNvbnN1bWVzIHx8IFsnYXBwbGljYXRpb24vanNvbiddO1xuICB0aGlzLnByb2R1Y2VzID0gYXJncy5wcm9kdWNlcyB8fCBwYXJlbnQucHJvZHVjZXMgfHwgWydhcHBsaWNhdGlvbi9qc29uJ107XG4gIHRoaXMuZGVwcmVjYXRlZCA9IGFyZ3MuZGVwcmVjYXRlZDtcbiAgdGhpcy5kZXNjcmlwdGlvbiA9IGFyZ3MuZGVzY3JpcHRpb247XG4gIHRoaXMuaG9zdCA9IHBhcmVudC5ob3N0IHx8ICdsb2NhbGhvc3QnO1xuICB0aGlzLm1ldGhvZCA9IChodHRwTWV0aG9kIHx8IGVycm9ycy5wdXNoKCdPcGVyYXRpb24gJyArIG9wZXJhdGlvbklkICsgJyBpcyBtaXNzaW5nIG1ldGhvZC4nKSk7XG4gIHRoaXMubW9kZWxzID0gbW9kZWxzIHx8IHt9O1xuICB0aGlzLm5pY2tuYW1lID0gKG9wZXJhdGlvbklkIHx8IGVycm9ycy5wdXNoKCdPcGVyYXRpb25zIG11c3QgaGF2ZSBhIG5pY2tuYW1lLicpKTtcbiAgdGhpcy5vcGVyYXRpb24gPSBhcmdzO1xuICB0aGlzLm9wZXJhdGlvbnMgPSB7fTtcbiAgdGhpcy5wYXJhbWV0ZXJzID0gYXJncyAhPT0gbnVsbCA/IChhcmdzLnBhcmFtZXRlcnMgfHwgW10pIDoge307XG4gIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICB0aGlzLnBhdGggPSAocGF0aCB8fCBlcnJvcnMucHVzaCgnT3BlcmF0aW9uICcgKyB0aGlzLm5pY2tuYW1lICsgJyBpcyBtaXNzaW5nIHBhdGguJykpO1xuICB0aGlzLnJlc3BvbnNlcyA9IChhcmdzLnJlc3BvbnNlcyB8fCB7fSk7XG4gIHRoaXMuc2NoZW1lID0gc2NoZW1lIHx8IHBhcmVudC5zY2hlbWUgfHwgJ2h0dHAnO1xuICB0aGlzLnNjaGVtZXMgPSBhcmdzLnNjaGVtZXMgfHwgcGFyZW50LnNjaGVtZXM7XG4gIHRoaXMuc2VjdXJpdHkgPSBhcmdzLnNlY3VyaXR5O1xuICB0aGlzLnN1bW1hcnkgPSBhcmdzLnN1bW1hcnkgfHwgJyc7XG4gIHRoaXMudHlwZSA9IG51bGw7XG4gIHRoaXMudXNlSlF1ZXJ5ID0gcGFyZW50LnVzZUpRdWVyeTtcbiAgdGhpcy5wYXJhbWV0ZXJNYWNybyA9IHBhcmVudC5wYXJhbWV0ZXJNYWNybyB8fCBmdW5jdGlvbiAob3BlcmF0aW9uLCBwYXJhbWV0ZXIpIHtcbiAgICByZXR1cm4gcGFyYW1ldGVyLmRlZmF1bHQ7XG4gIH07XG5cbiAgdGhpcy5pbmxpbmVNb2RlbHMgPSBbXTtcblxuICBpZiAodHlwZW9mIHRoaXMuZGVwcmVjYXRlZCA9PT0gJ3N0cmluZycpIHtcbiAgICBzd2l0Y2godGhpcy5kZXByZWNhdGVkLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGNhc2UgJ3RydWUnOiBjYXNlICd5ZXMnOiBjYXNlICcxJzoge1xuICAgICAgICB0aGlzLmRlcHJlY2F0ZWQgPSB0cnVlO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSAnZmFsc2UnOiBjYXNlICdubyc6IGNhc2UgJzAnOiBjYXNlIG51bGw6IHtcbiAgICAgICAgdGhpcy5kZXByZWNhdGVkID0gZmFsc2U7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBkZWZhdWx0OiB0aGlzLmRlcHJlY2F0ZWQgPSBCb29sZWFuKHRoaXMuZGVwcmVjYXRlZCk7XG4gICAgfVxuICB9XG5cbiAgdmFyIGksIG1vZGVsO1xuXG4gIGlmIChkZWZpbml0aW9ucykge1xuICAgIC8vIGFkZCB0byBnbG9iYWwgbW9kZWxzXG4gICAgdmFyIGtleTtcblxuICAgIGZvciAoa2V5IGluIGRlZmluaXRpb25zKSB7XG4gICAgICBtb2RlbCA9IG5ldyBNb2RlbChrZXksIGRlZmluaXRpb25zW2tleV0sIHRoaXMubW9kZWxzLCBwYXJlbnQubW9kZWxQcm9wZXJ0eU1hY3JvKTtcblxuICAgICAgaWYgKG1vZGVsKSB7XG4gICAgICAgIHRoaXMubW9kZWxzW2tleV0gPSBtb2RlbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZWxzZSB7XG4gICAgZGVmaW5pdGlvbnMgPSB7fTtcbiAgfVxuXG4gIGZvciAoaSA9IDA7IGkgPCB0aGlzLnBhcmFtZXRlcnMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcGFyYW0gPSB0aGlzLnBhcmFtZXRlcnNbaV07XG5cbiAgICAvLyBBbGxvdyBtYWNybyB0byBzZXQgdGhlIGRlZmF1bHQgdmFsdWVcbiAgICBwYXJhbS5kZWZhdWx0ID0gdGhpcy5wYXJhbWV0ZXJNYWNybyh0aGlzLCBwYXJhbSk7XG5cbiAgICBpZiAocGFyYW0udHlwZSA9PT0gJ2FycmF5Jykge1xuICAgICAgcGFyYW0uaXNMaXN0ID0gdHJ1ZTtcbiAgICAgIHBhcmFtLmFsbG93TXVsdGlwbGUgPSB0cnVlO1xuICAgICAgLy8gdGhlIGVudW0gY2FuIGJlIGRlZmluZWQgYXQgdGhlIGl0ZW1zIGxldmVsXG4gICAgICBpZiAocGFyYW0uaXRlbXMgJiYgcGFyYW0uaXRlbXMuZW51bSkge1xuICAgICAgICBwYXJhbVsnZW51bSddID0gcGFyYW0uaXRlbXMuZW51bTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgaW5uZXJUeXBlID0gdGhpcy5nZXRUeXBlKHBhcmFtKTtcblxuICAgIGlmIChpbm5lclR5cGUgJiYgaW5uZXJUeXBlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICBwYXJhbS5hbGxvd2FibGVWYWx1ZXMgPSB7fTtcbiAgICAgIHBhcmFtLmlzTGlzdCA9IHRydWU7XG4gICAgICBwYXJhbVsnZW51bSddID0gW3RydWUsIGZhbHNlXTsgLy8gdXNlIGFjdHVhbCBwcmltaXRpdmVzXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBwYXJhbVsnZW51bSddICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdmFyIGlkO1xuXG4gICAgICBwYXJhbS5hbGxvd2FibGVWYWx1ZXMgPSB7fTtcbiAgICAgIHBhcmFtLmFsbG93YWJsZVZhbHVlcy52YWx1ZXMgPSBbXTtcbiAgICAgIHBhcmFtLmFsbG93YWJsZVZhbHVlcy5kZXNjcmlwdGl2ZVZhbHVlcyA9IFtdO1xuXG4gICAgICBmb3IgKGlkID0gMDsgaWQgPCBwYXJhbVsnZW51bSddLmxlbmd0aDsgaWQrKykge1xuICAgICAgICB2YXIgdmFsdWUgPSBwYXJhbVsnZW51bSddW2lkXTtcbiAgICAgICAgdmFyIGlzRGVmYXVsdCA9ICh2YWx1ZSA9PT0gcGFyYW0uZGVmYXVsdCB8fCB2YWx1ZSsnJyA9PT0gcGFyYW0uZGVmYXVsdCk7XG5cbiAgICAgICAgcGFyYW0uYWxsb3dhYmxlVmFsdWVzLnZhbHVlcy5wdXNoKHZhbHVlKTtcbiAgICAgICAgLy8gQWx3YXlzIGhhdmUgc3RyaW5nIGZvciBkZXNjcmlwdGl2ZSB2YWx1ZXMuLi4uXG4gICAgICAgIHBhcmFtLmFsbG93YWJsZVZhbHVlcy5kZXNjcmlwdGl2ZVZhbHVlcy5wdXNoKHt2YWx1ZSA6IHZhbHVlKycnLCBpc0RlZmF1bHQ6IGlzRGVmYXVsdH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYXJhbS50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICBpbm5lclR5cGUgPSBbaW5uZXJUeXBlXTtcblxuICAgICAgaWYgKHR5cGVvZiBwYXJhbS5hbGxvd2FibGVWYWx1ZXMgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIC8vIGNhbid0IHNob3cgYXMgYSBsaXN0IGlmIG5vIHZhbHVlcyB0byBzZWxlY3QgZnJvbVxuICAgICAgICBkZWxldGUgcGFyYW0uaXNMaXN0O1xuICAgICAgICBkZWxldGUgcGFyYW0uYWxsb3dNdWx0aXBsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwYXJhbS5zaWduYXR1cmUgPSB0aGlzLmdldE1vZGVsU2lnbmF0dXJlKGlubmVyVHlwZSwgdGhpcy5tb2RlbHMpLnRvU3RyaW5nKCk7XG4gICAgcGFyYW0uc2FtcGxlSlNPTiA9IHRoaXMuZ2V0TW9kZWxTYW1wbGVKU09OKGlubmVyVHlwZSwgdGhpcy5tb2RlbHMpO1xuICAgIHBhcmFtLnJlc3BvbnNlQ2xhc3NTaWduYXR1cmUgPSBwYXJhbS5zaWduYXR1cmU7XG4gIH1cblxuICB2YXIgZGVmYXVsdFJlc3BvbnNlQ29kZSwgcmVzcG9uc2UsIHJlc3BvbnNlcyA9IHRoaXMucmVzcG9uc2VzO1xuXG4gIGlmIChyZXNwb25zZXNbJzIwMCddKSB7XG4gICAgcmVzcG9uc2UgPSByZXNwb25zZXNbJzIwMCddO1xuICAgIGRlZmF1bHRSZXNwb25zZUNvZGUgPSAnMjAwJztcbiAgfSBlbHNlIGlmIChyZXNwb25zZXNbJzIwMSddKSB7XG4gICAgcmVzcG9uc2UgPSByZXNwb25zZXNbJzIwMSddO1xuICAgIGRlZmF1bHRSZXNwb25zZUNvZGUgPSAnMjAxJztcbiAgfSBlbHNlIGlmIChyZXNwb25zZXNbJzIwMiddKSB7XG4gICAgcmVzcG9uc2UgPSByZXNwb25zZXNbJzIwMiddO1xuICAgIGRlZmF1bHRSZXNwb25zZUNvZGUgPSAnMjAyJztcbiAgfSBlbHNlIGlmIChyZXNwb25zZXNbJzIwMyddKSB7XG4gICAgcmVzcG9uc2UgPSByZXNwb25zZXNbJzIwMyddO1xuICAgIGRlZmF1bHRSZXNwb25zZUNvZGUgPSAnMjAzJztcbiAgfSBlbHNlIGlmIChyZXNwb25zZXNbJzIwNCddKSB7XG4gICAgcmVzcG9uc2UgPSByZXNwb25zZXNbJzIwNCddO1xuICAgIGRlZmF1bHRSZXNwb25zZUNvZGUgPSAnMjA0JztcbiAgfSBlbHNlIGlmIChyZXNwb25zZXNbJzIwNSddKSB7XG4gICAgcmVzcG9uc2UgPSByZXNwb25zZXNbJzIwNSddO1xuICAgIGRlZmF1bHRSZXNwb25zZUNvZGUgPSAnMjA1JztcbiAgfSBlbHNlIGlmIChyZXNwb25zZXNbJzIwNiddKSB7XG4gICAgcmVzcG9uc2UgPSByZXNwb25zZXNbJzIwNiddO1xuICAgIGRlZmF1bHRSZXNwb25zZUNvZGUgPSAnMjA2JztcbiAgfSBlbHNlIGlmIChyZXNwb25zZXNbJ2RlZmF1bHQnXSkge1xuICAgIHJlc3BvbnNlID0gcmVzcG9uc2VzWydkZWZhdWx0J107XG4gICAgZGVmYXVsdFJlc3BvbnNlQ29kZSA9ICdkZWZhdWx0JztcbiAgfVxuXG4gIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5zY2hlbWEpIHtcbiAgICB2YXIgcmVzb2x2ZWRNb2RlbCA9IHRoaXMucmVzb2x2ZU1vZGVsKHJlc3BvbnNlLnNjaGVtYSwgZGVmaW5pdGlvbnMpO1xuICAgIHZhciBzdWNjZXNzUmVzcG9uc2U7XG5cbiAgICBkZWxldGUgcmVzcG9uc2VzW2RlZmF1bHRSZXNwb25zZUNvZGVdO1xuXG4gICAgaWYgKHJlc29sdmVkTW9kZWwpIHtcbiAgICAgIHRoaXMuc3VjY2Vzc1Jlc3BvbnNlID0ge307XG4gICAgICBzdWNjZXNzUmVzcG9uc2UgPSB0aGlzLnN1Y2Nlc3NSZXNwb25zZVtkZWZhdWx0UmVzcG9uc2VDb2RlXSA9IHJlc29sdmVkTW9kZWw7XG4gICAgfSBlbHNlIGlmICghcmVzcG9uc2Uuc2NoZW1hLnR5cGUgfHwgcmVzcG9uc2Uuc2NoZW1hLnR5cGUgPT09ICdvYmplY3QnIHx8IHJlc3BvbnNlLnNjaGVtYS50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICAvLyBJbmxpbmUgbW9kZWxcbiAgICAgIHRoaXMuc3VjY2Vzc1Jlc3BvbnNlID0ge307XG4gICAgICBzdWNjZXNzUmVzcG9uc2UgPSB0aGlzLnN1Y2Nlc3NSZXNwb25zZVtkZWZhdWx0UmVzcG9uc2VDb2RlXSA9IG5ldyBNb2RlbCh1bmRlZmluZWQsIHJlc3BvbnNlLnNjaGVtYSB8fCB7fSwgdGhpcy5tb2RlbHMsIHBhcmVudC5tb2RlbFByb3BlcnR5TWFjcm8pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBQcmltaXRpdmVcbiAgICAgIHRoaXMuc3VjY2Vzc1Jlc3BvbnNlID0ge307XG4gICAgICBzdWNjZXNzUmVzcG9uc2UgPSB0aGlzLnN1Y2Nlc3NSZXNwb25zZVtkZWZhdWx0UmVzcG9uc2VDb2RlXSA9IHJlc3BvbnNlLnNjaGVtYTtcbiAgICB9XG5cbiAgICBpZiAoc3VjY2Vzc1Jlc3BvbnNlKSB7XG4gICAgICAvLyBBdHRhY2ggcmVzcG9uc2UgcHJvcGVydGllc1xuICAgICAgaWYgKHJlc3BvbnNlLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgIHN1Y2Nlc3NSZXNwb25zZS5kZXNjcmlwdGlvbiA9IHJlc3BvbnNlLmRlc2NyaXB0aW9uO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVzcG9uc2UuZXhhbXBsZXMpIHtcbiAgICAgICAgc3VjY2Vzc1Jlc3BvbnNlLmV4YW1wbGVzID0gcmVzcG9uc2UuZXhhbXBsZXM7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNwb25zZS5oZWFkZXJzKSB7XG4gICAgICAgIHN1Y2Nlc3NSZXNwb25zZS5oZWFkZXJzID0gcmVzcG9uc2UuaGVhZGVycztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnR5cGUgPSByZXNwb25zZTtcbiAgfVxuXG4gIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIGlmICh0aGlzLnJlc291cmNlICYmIHRoaXMucmVzb3VyY2UuYXBpICYmIHRoaXMucmVzb3VyY2UuYXBpLmZhaWwpIHtcbiAgICAgIHRoaXMucmVzb3VyY2UuYXBpLmZhaWwoZXJyb3JzKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbk9wZXJhdGlvbi5wcm90b3R5cGUuaXNEZWZhdWx0QXJyYXlJdGVtVmFsdWUgPSBmdW5jdGlvbih2YWx1ZSwgcGFyYW0pIHtcbiAgaWYgKHBhcmFtLmRlZmF1bHQgJiYgQXJyYXkuaXNBcnJheShwYXJhbS5kZWZhdWx0KSkge1xuICAgIHJldHVybiBwYXJhbS5kZWZhdWx0LmluZGV4T2YodmFsdWUpICE9PSAtMTtcbiAgfVxuICByZXR1cm4gdmFsdWUgPT09IHBhcmFtLmRlZmF1bHQ7XG59O1xuXG5PcGVyYXRpb24ucHJvdG90eXBlLmdldFR5cGUgPSBmdW5jdGlvbiAocGFyYW0pIHtcbiAgdmFyIHR5cGUgPSBwYXJhbS50eXBlO1xuICB2YXIgZm9ybWF0ID0gcGFyYW0uZm9ybWF0O1xuICB2YXIgaXNBcnJheSA9IGZhbHNlO1xuICB2YXIgc3RyO1xuXG4gIGlmICh0eXBlID09PSAnaW50ZWdlcicgJiYgZm9ybWF0ID09PSAnaW50MzInKSB7XG4gICAgc3RyID0gJ2ludGVnZXInO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdpbnRlZ2VyJyAmJiBmb3JtYXQgPT09ICdpbnQ2NCcpIHtcbiAgICBzdHIgPSAnbG9uZyc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2ludGVnZXInKSB7XG4gICAgc3RyID0gJ2ludGVnZXInO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ2RhdGUtdGltZScpIHtcbiAgICAgIHN0ciA9ICdkYXRlLXRpbWUnO1xuICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnZGF0ZScpIHtcbiAgICAgIHN0ciA9ICdkYXRlJztcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyID0gJ3N0cmluZyc7XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdudW1iZXInICYmIGZvcm1hdCA9PT0gJ2Zsb2F0Jykge1xuICAgIHN0ciA9ICdmbG9hdCc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ251bWJlcicgJiYgZm9ybWF0ID09PSAnZG91YmxlJykge1xuICAgIHN0ciA9ICdkb3VibGUnO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgc3RyID0gJ2RvdWJsZSc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgc3RyID0gJ2Jvb2xlYW4nO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdhcnJheScpIHtcbiAgICBpc0FycmF5ID0gdHJ1ZTtcblxuICAgIGlmIChwYXJhbS5pdGVtcykge1xuICAgICAgc3RyID0gdGhpcy5nZXRUeXBlKHBhcmFtLml0ZW1zKTtcbiAgICB9XG4gIH1cblxuICBpZiAocGFyYW0uJHJlZikge1xuICAgIHN0ciA9IGhlbHBlcnMuc2ltcGxlUmVmKHBhcmFtLiRyZWYpO1xuICB9XG5cbiAgdmFyIHNjaGVtYSA9IHBhcmFtLnNjaGVtYTtcblxuICBpZiAoc2NoZW1hKSB7XG4gICAgdmFyIHJlZiA9IHNjaGVtYS4kcmVmO1xuXG4gICAgaWYgKHJlZikge1xuICAgICAgcmVmID0gaGVscGVycy5zaW1wbGVSZWYocmVmKTtcblxuICAgICAgaWYgKGlzQXJyYXkpIHtcbiAgICAgICAgcmV0dXJuIFsgcmVmIF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVmO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBpbmxpbmUgc2NoZW1hLCB3ZSBhZGQgaXQgb3VyIGludGVyYWwgaGFzaCAtPiB3aGljaCBnaXZlcyB1cyBpdCdzIElEIChpbnQpXG4gICAgICBpZihzY2hlbWEudHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkSW5saW5lTW9kZWwoc2NoZW1hKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmdldFR5cGUoc2NoZW1hKTtcbiAgICB9XG4gIH1cbiAgaWYgKGlzQXJyYXkpIHtcbiAgICByZXR1cm4gWyBzdHIgXTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gc3RyO1xuICB9XG59O1xuXG4vKipcbiAqIGFkZHMgYW4gaW5saW5lIHNjaGVtYSAobW9kZWwpIHRvIGEgaGFzaCwgd2hlcmUgd2UgY2FuIHJlZiBpdCBsYXRlclxuICogQHBhcmFtIHtvYmplY3R9IHNjaGVtYSBhIHNjaGVtYVxuICogQHJldHVybiB7bnVtYmVyfSB0aGUgSUQgb2YgdGhlIHNjaGVtYSBiZWluZyBhZGRlZCwgb3IgbnVsbFxuICoqL1xuT3BlcmF0aW9uLnByb3RvdHlwZS5hZGRJbmxpbmVNb2RlbCA9IGZ1bmN0aW9uIChzY2hlbWEpIHtcbiAgdmFyIGxlbiA9IHRoaXMuaW5saW5lTW9kZWxzLmxlbmd0aDtcbiAgdmFyIG1vZGVsID0gdGhpcy5yZXNvbHZlTW9kZWwoc2NoZW1hLCB7fSk7XG4gIGlmKG1vZGVsKSB7XG4gICAgdGhpcy5pbmxpbmVNb2RlbHMucHVzaChtb2RlbCk7XG4gICAgcmV0dXJuICdJbmxpbmUgTW9kZWwgJytsZW47IC8vIHJldHVybiBzdHJpbmcgcmVmIG9mIHRoZSBpbmxpbmUgbW9kZWwgKHVzZWQgd2l0aCAjZ2V0SW5saW5lTW9kZWwpXG4gIH1cbiAgcmV0dXJuIG51bGw7IC8vIHJlcG9ydCBlcnJvcnM/XG59O1xuXG4vKipcbiAqIGdldHMgdGhlIGludGVybmFsIHJlZiB0byBhbiBpbmxpbmUgbW9kZWxcbiAqIEBwYXJhbSB7c3RyaW5nfSBpbmxpbmVfc3RyIGEgc3RyaW5nIHJlZmVyZW5jZSB0byBhbiBpbmxpbmUgbW9kZWxcbiAqIEByZXR1cm4ge01vZGVsfSB0aGUgbW9kZWwgYmVpbmcgcmVmZXJlbmNlZC4gT3IgbnVsbFxuICoqL1xuT3BlcmF0aW9uLnByb3RvdHlwZS5nZXRJbmxpbmVNb2RlbCA9IGZ1bmN0aW9uKGlubGluZVN0cikge1xuICBpZigvXklubGluZSBNb2RlbCBcXGQrJC8udGVzdChpbmxpbmVTdHIpKSB7XG4gICAgdmFyIGlkID0gcGFyc2VJbnQoaW5saW5lU3RyLnN1YnN0cignSW5saW5lIE1vZGVsJy5sZW5ndGgpLnRyaW0oKSwxMCk7IC8vXG4gICAgdmFyIG1vZGVsID0gdGhpcy5pbmxpbmVNb2RlbHNbaWRdO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfVxuICAvLyBJJ20gcmV0dXJuaW5nIG51bGwgaGVyZSwgc2hvdWxkIEkgcmF0aGVyIHRocm93IGFuIGVycm9yP1xuICByZXR1cm4gbnVsbDtcbn07XG5cbk9wZXJhdGlvbi5wcm90b3R5cGUucmVzb2x2ZU1vZGVsID0gZnVuY3Rpb24gKHNjaGVtYSwgZGVmaW5pdGlvbnMpIHtcbiAgaWYgKHR5cGVvZiBzY2hlbWEuJHJlZiAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB2YXIgcmVmID0gc2NoZW1hLiRyZWY7XG5cbiAgICBpZiAocmVmLmluZGV4T2YoJyMvZGVmaW5pdGlvbnMvJykgPT09IDApIHtcbiAgICAgIHJlZiA9IHJlZi5zdWJzdHJpbmcoJyMvZGVmaW5pdGlvbnMvJy5sZW5ndGgpO1xuICAgIH1cblxuICAgIGlmIChkZWZpbml0aW9uc1tyZWZdKSB7XG4gICAgICByZXR1cm4gbmV3IE1vZGVsKHJlZiwgZGVmaW5pdGlvbnNbcmVmXSwgdGhpcy5tb2RlbHMsIHRoaXMucGFyZW50Lm1vZGVsUHJvcGVydHlNYWNybyk7XG4gICAgfVxuICAvLyBzY2hlbWEgbXVzdCBhdCBsZWFzdCBiZSBhbiBvYmplY3QgdG8gZ2V0IHJlc29sdmVkIHRvIGFuIGlubGluZSBNb2RlbFxuICB9IGVsc2UgaWYgKHNjaGVtYSAmJiB0eXBlb2Ygc2NoZW1hID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgKHNjaGVtYS50eXBlID09PSAnb2JqZWN0JyB8fCBfLmlzVW5kZWZpbmVkKHNjaGVtYS50eXBlKSkpIHtcbiAgICByZXR1cm4gbmV3IE1vZGVsKHVuZGVmaW5lZCwgc2NoZW1hLCB0aGlzLm1vZGVscywgdGhpcy5wYXJlbnQubW9kZWxQcm9wZXJ0eU1hY3JvKTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuT3BlcmF0aW9uLnByb3RvdHlwZS5oZWxwID0gZnVuY3Rpb24gKGRvbnRQcmludCkge1xuICB2YXIgb3V0ID0gdGhpcy5uaWNrbmFtZSArICc6ICcgKyB0aGlzLnN1bW1hcnkgKyAnXFxuJztcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucGFyYW1ldGVycy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBwYXJhbSA9IHRoaXMucGFyYW1ldGVyc1tpXTtcbiAgICB2YXIgdHlwZUluZm8gPSBwYXJhbS5zaWduYXR1cmU7XG5cbiAgICBvdXQgKz0gJ1xcbiAgKiAnICsgcGFyYW0ubmFtZSArICcgKCcgKyB0eXBlSW5mbyArICcpOiAnICsgcGFyYW0uZGVzY3JpcHRpb247XG4gIH1cblxuICBpZiAodHlwZW9mIGRvbnRQcmludCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBoZWxwZXJzLmxvZyhvdXQpO1xuICB9XG5cbiAgcmV0dXJuIG91dDtcbn07XG5cbk9wZXJhdGlvbi5wcm90b3R5cGUuZ2V0TW9kZWxTaWduYXR1cmUgPSBmdW5jdGlvbiAodHlwZSwgZGVmaW5pdGlvbnMpIHtcbiAgdmFyIGlzUHJpbWl0aXZlLCBsaXN0VHlwZTtcblxuICBpZiAodHlwZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgbGlzdFR5cGUgPSB0cnVlO1xuICAgIHR5cGUgPSB0eXBlWzBdO1xuICB9XG5cbiAgLy8gQ29udmVydCB1bmRlZmluZWQgdG8gc3RyaW5nIG9mICd1bmRlZmluZWQnXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB0eXBlID0gJ3VuZGVmaW5lZCc7XG4gICAgaXNQcmltaXRpdmUgPSB0cnVlO1xuXG4gIH0gZWxzZSBpZiAoZGVmaW5pdGlvbnNbdHlwZV0pe1xuICAgIC8vIGEgbW9kZWwgZGVmIGV4aXN0cz9cbiAgICB0eXBlID0gZGVmaW5pdGlvbnNbdHlwZV07IC8qIE1vZGVsICovXG4gICAgaXNQcmltaXRpdmUgPSBmYWxzZTtcblxuICB9IGVsc2UgaWYgKHRoaXMuZ2V0SW5saW5lTW9kZWwodHlwZSkpIHtcbiAgICB0eXBlID0gdGhpcy5nZXRJbmxpbmVNb2RlbCh0eXBlKTsgLyogTW9kZWwgKi9cbiAgICBpc1ByaW1pdGl2ZSA9IGZhbHNlO1xuXG4gIH0gZWxzZSB7XG4gICAgLy8gV2UgZGVmYXVsdCB0byBwcmltaXRpdmVcbiAgICBpc1ByaW1pdGl2ZSA9IHRydWU7XG4gIH1cblxuICBpZiAoaXNQcmltaXRpdmUpIHtcbiAgICBpZiAobGlzdFR5cGUpIHtcbiAgICAgIHJldHVybiAnQXJyYXlbJyArIHR5cGUgKyAnXSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0eXBlLnRvU3RyaW5nKCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChsaXN0VHlwZSkge1xuICAgICAgcmV0dXJuICdBcnJheVsnICsgdHlwZS5nZXRNb2NrU2lnbmF0dXJlKCkgKyAnXSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0eXBlLmdldE1vY2tTaWduYXR1cmUoKTtcbiAgICB9XG4gIH1cbn07XG5cbk9wZXJhdGlvbi5wcm90b3R5cGUuc3VwcG9ydEhlYWRlclBhcmFtcyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRydWU7XG59O1xuXG5PcGVyYXRpb24ucHJvdG90eXBlLnN1cHBvcnRlZFN1Ym1pdE1ldGhvZHMgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLnBhcmVudC5zdXBwb3J0ZWRTdWJtaXRNZXRob2RzO1xufTtcblxuT3BlcmF0aW9uLnByb3RvdHlwZS5nZXRIZWFkZXJQYXJhbXMgPSBmdW5jdGlvbiAoYXJncykge1xuICB2YXIgaGVhZGVycyA9IHRoaXMuc2V0Q29udGVudFR5cGVzKGFyZ3MsIHt9KTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucGFyYW1ldGVycy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBwYXJhbSA9IHRoaXMucGFyYW1ldGVyc1tpXTtcblxuICAgIGlmICh0eXBlb2YgYXJnc1twYXJhbS5uYW1lXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGlmIChwYXJhbS5pbiA9PT0gJ2hlYWRlcicpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJnc1twYXJhbS5uYW1lXTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICBoZWFkZXJzW3BhcmFtLm5hbWVdID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGhlYWRlcnM7XG59O1xuXG5PcGVyYXRpb24ucHJvdG90eXBlLnVybGlmeSA9IGZ1bmN0aW9uIChhcmdzKSB7XG4gIHZhciBmb3JtUGFyYW1zID0ge307XG4gIHZhciByZXF1ZXN0VXJsID0gdGhpcy5wYXRoO1xuICB2YXIgcXVlcnlzdHJpbmcgPSAnJzsgLy8gZ3JhYiBwYXJhbXMgZnJvbSB0aGUgYXJncywgYnVpbGQgdGhlIHF1ZXJ5c3RyaW5nIGFsb25nIHRoZSB3YXlcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMucGFyYW1ldGVycy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBwYXJhbSA9IHRoaXMucGFyYW1ldGVyc1tpXTtcblxuICAgIGlmICh0eXBlb2YgYXJnc1twYXJhbS5uYW1lXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGlmIChwYXJhbS5pbiA9PT0gJ3BhdGgnKSB7XG4gICAgICAgIHZhciByZWcgPSBuZXcgUmVnRXhwKCdcXHsnICsgcGFyYW0ubmFtZSArICdcXH0nLCAnZ2knKTtcbiAgICAgICAgdmFyIHZhbHVlID0gYXJnc1twYXJhbS5uYW1lXTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICB2YWx1ZSA9IHRoaXMuZW5jb2RlUGF0aENvbGxlY3Rpb24ocGFyYW0uY29sbGVjdGlvbkZvcm1hdCwgcGFyYW0ubmFtZSwgdmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbHVlID0gdGhpcy5lbmNvZGVQYXRoUGFyYW0odmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVxdWVzdFVybCA9IHJlcXVlc3RVcmwucmVwbGFjZShyZWcsIHZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAocGFyYW0uaW4gPT09ICdxdWVyeScgJiYgdHlwZW9mIGFyZ3NbcGFyYW0ubmFtZV0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGlmIChxdWVyeXN0cmluZyA9PT0gJycpIHtcbiAgICAgICAgICBxdWVyeXN0cmluZyArPSAnPyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcXVlcnlzdHJpbmcgKz0gJyYnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBwYXJhbS5jb2xsZWN0aW9uRm9ybWF0ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIHZhciBxcCA9IGFyZ3NbcGFyYW0ubmFtZV07XG5cbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShxcCkpIHtcbiAgICAgICAgICAgIHF1ZXJ5c3RyaW5nICs9IHRoaXMuZW5jb2RlUXVlcnlDb2xsZWN0aW9uKHBhcmFtLmNvbGxlY3Rpb25Gb3JtYXQsIHBhcmFtLm5hbWUsIHFwKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcXVlcnlzdHJpbmcgKz0gdGhpcy5lbmNvZGVRdWVyeVBhcmFtKHBhcmFtLm5hbWUpICsgJz0nICsgdGhpcy5lbmNvZGVRdWVyeVBhcmFtKGFyZ3NbcGFyYW0ubmFtZV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBxdWVyeXN0cmluZyArPSB0aGlzLmVuY29kZVF1ZXJ5UGFyYW0ocGFyYW0ubmFtZSkgKyAnPScgKyB0aGlzLmVuY29kZVF1ZXJ5UGFyYW0oYXJnc1twYXJhbS5uYW1lXSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocGFyYW0uaW4gPT09ICdmb3JtRGF0YScpIHtcbiAgICAgICAgZm9ybVBhcmFtc1twYXJhbS5uYW1lXSA9IGFyZ3NbcGFyYW0ubmFtZV07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHZhciB1cmwgPSB0aGlzLnNjaGVtZSArICc6Ly8nICsgdGhpcy5ob3N0O1xuXG4gIGlmICh0aGlzLmJhc2VQYXRoICE9PSAnLycpIHtcbiAgICB1cmwgKz0gdGhpcy5iYXNlUGF0aDtcbiAgfVxuICByZXR1cm4gdXJsICsgcmVxdWVzdFVybCArIHF1ZXJ5c3RyaW5nO1xufTtcblxuT3BlcmF0aW9uLnByb3RvdHlwZS5nZXRNaXNzaW5nUGFyYW1zID0gZnVuY3Rpb24gKGFyZ3MpIHtcbiAgdmFyIG1pc3NpbmdQYXJhbXMgPSBbXTsgLy8gY2hlY2sgcmVxdWlyZWQgcGFyYW1zLCB0cmFjayB0aGUgb25lcyB0aGF0IGFyZSBtaXNzaW5nXG4gIHZhciBpO1xuXG4gIGZvciAoaSA9IDA7IGkgPCB0aGlzLnBhcmFtZXRlcnMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcGFyYW0gPSB0aGlzLnBhcmFtZXRlcnNbaV07XG5cbiAgICBpZiAocGFyYW0ucmVxdWlyZWQgPT09IHRydWUpIHtcbiAgICAgIGlmICh0eXBlb2YgYXJnc1twYXJhbS5uYW1lXSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgbWlzc2luZ1BhcmFtcyA9IHBhcmFtLm5hbWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1pc3NpbmdQYXJhbXM7XG59O1xuXG5PcGVyYXRpb24ucHJvdG90eXBlLmdldEJvZHkgPSBmdW5jdGlvbiAoaGVhZGVycywgYXJncywgb3B0cykge1xuICB2YXIgZm9ybVBhcmFtcyA9IHt9LCBib2R5LCBrZXksIHZhbHVlLCBoYXNCb2R5ID0gZmFsc2U7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBhcmFtZXRlcnMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcGFyYW0gPSB0aGlzLnBhcmFtZXRlcnNbaV07XG5cbiAgICBpZiAodHlwZW9mIGFyZ3NbcGFyYW0ubmFtZV0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBpZiAocGFyYW0uaW4gPT09ICdib2R5Jykge1xuICAgICAgICBib2R5ID0gYXJnc1twYXJhbS5uYW1lXTtcbiAgICAgIH0gZWxzZSBpZiAocGFyYW0uaW4gPT09ICdmb3JtRGF0YScpIHtcbiAgICAgICAgZm9ybVBhcmFtc1twYXJhbS5uYW1lXSA9IGFyZ3NbcGFyYW0ubmFtZV07XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgaWYocGFyYW0uaW4gPT09ICdib2R5Jykge1xuICAgICAgICBoYXNCb2R5ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBpZiBib2R5IGlzIG51bGwgYW5kIGhhc0JvZHkgaXMgdHJ1ZSwgQU5EIGEgSlNPTiBib2R5IGlzIHJlcXVlc3RlZCwgc2VuZCBlbXB0eSB7fVxuICBpZihoYXNCb2R5ICYmIHR5cGVvZiBib2R5ID09PSAndW5kZWZpbmVkJykge1xuICAgIHZhciBjb250ZW50VHlwZSA9IGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddO1xuICAgIGlmKGNvbnRlbnRUeXBlICYmIGNvbnRlbnRUeXBlLmluZGV4T2YoJ2FwcGxpY2F0aW9uL2pzb24nKSA9PT0gMCkge1xuICAgICAgYm9keSA9ICd7fSc7XG4gICAgfVxuICB9XG5cbiAgLy8gaGFuZGxlIGZvcm0gcGFyYW1zXG4gIGlmIChoZWFkZXJzWydDb250ZW50LVR5cGUnXSA9PT0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpIHtcbiAgICB2YXIgZW5jb2RlZCA9ICcnO1xuXG4gICAgZm9yIChrZXkgaW4gZm9ybVBhcmFtcykge1xuICAgICAgdmFsdWUgPSBmb3JtUGFyYW1zW2tleV07XG5cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGlmIChlbmNvZGVkICE9PSAnJykge1xuICAgICAgICAgIGVuY29kZWQgKz0gJyYnO1xuICAgICAgICB9XG5cbiAgICAgICAgZW5jb2RlZCArPSBlbmNvZGVVUklDb21wb25lbnQoa2V5KSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYm9keSA9IGVuY29kZWQ7XG4gIH0gZWxzZSBpZiAoaGVhZGVyc1snQ29udGVudC1UeXBlJ10gJiYgaGVhZGVyc1snQ29udGVudC1UeXBlJ10uaW5kZXhPZignbXVsdGlwYXJ0L2Zvcm0tZGF0YScpID49IDApIHtcbiAgICBpZiAob3B0cy51c2VKUXVlcnkpIHtcbiAgICAgIHZhciBib2R5UGFyYW0gPSBuZXcgRm9ybURhdGEoKTtcblxuICAgICAgYm9keVBhcmFtLnR5cGUgPSAnZm9ybURhdGEnO1xuXG4gICAgICBmb3IgKGtleSBpbiBmb3JtUGFyYW1zKSB7XG4gICAgICAgIHZhbHVlID0gYXJnc1trZXldO1xuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgLy8gcmVxdWlyZWQgZm9yIGpxdWVyeSBmaWxlIHVwbG9hZFxuICAgICAgICAgIGlmICh2YWx1ZS50eXBlID09PSAnZmlsZScgJiYgdmFsdWUudmFsdWUpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBoZWFkZXJzWydDb250ZW50LVR5cGUnXTtcblxuICAgICAgICAgICAgYm9keVBhcmFtLmFwcGVuZChrZXksIHZhbHVlLnZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYm9keVBhcmFtLmFwcGVuZChrZXksIHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYm9keSA9IGJvZHlQYXJhbTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYm9keTtcbn07XG5cbi8qKlxuICogZ2V0cyBzYW1wbGUgcmVzcG9uc2UgZm9yIGEgc2luZ2xlIG9wZXJhdGlvblxuICoqL1xuT3BlcmF0aW9uLnByb3RvdHlwZS5nZXRNb2RlbFNhbXBsZUpTT04gPSBmdW5jdGlvbiAodHlwZSwgbW9kZWxzKSB7XG4gIHZhciBsaXN0VHlwZSwgc2FtcGxlSnNvbiwgaW5uZXJUeXBlO1xuICBtb2RlbHMgPSBtb2RlbHMgfHwge307XG5cbiAgbGlzdFR5cGUgPSAodHlwZSBpbnN0YW5jZW9mIEFycmF5KTtcbiAgaW5uZXJUeXBlID0gbGlzdFR5cGUgPyB0eXBlWzBdIDogdHlwZTtcblxuICBpZihtb2RlbHNbaW5uZXJUeXBlXSkge1xuICAgIHNhbXBsZUpzb24gPSBtb2RlbHNbaW5uZXJUeXBlXS5jcmVhdGVKU09OU2FtcGxlKCk7XG4gIH0gZWxzZSBpZiAodGhpcy5nZXRJbmxpbmVNb2RlbChpbm5lclR5cGUpKXtcbiAgICBzYW1wbGVKc29uID0gdGhpcy5nZXRJbmxpbmVNb2RlbChpbm5lclR5cGUpLmNyZWF0ZUpTT05TYW1wbGUoKTsgLy8gbWF5IHJldHVybiBudWxsLCBpZiB0eXBlIGlzbid0IGNvcnJlY3RcbiAgfVxuXG5cbiAgaWYgKHNhbXBsZUpzb24pIHtcbiAgICBzYW1wbGVKc29uID0gbGlzdFR5cGUgPyBbc2FtcGxlSnNvbl0gOiBzYW1wbGVKc29uO1xuXG4gICAgaWYgKHR5cGVvZiBzYW1wbGVKc29uID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHNhbXBsZUpzb247XG4gICAgfSBlbHNlIGlmIChfLmlzT2JqZWN0KHNhbXBsZUpzb24pKSB7XG4gICAgICB2YXIgdCA9IHNhbXBsZUpzb247XG5cbiAgICAgIGlmIChzYW1wbGVKc29uIGluc3RhbmNlb2YgQXJyYXkgJiYgc2FtcGxlSnNvbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIHQgPSBzYW1wbGVKc29uWzBdO1xuICAgICAgfVxuXG4gICAgICBpZiAodC5ub2RlTmFtZSkge1xuICAgICAgICB2YXIgeG1sU3RyaW5nID0gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyh0KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRYbWwoeG1sU3RyaW5nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShzYW1wbGVKc29uLCBudWxsLCAyKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHNhbXBsZUpzb247XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIGxlZ2FjeSBiaW5kaW5nXG4gKiovXG5PcGVyYXRpb24ucHJvdG90eXBlLmRvID0gZnVuY3Rpb24gKGFyZ3MsIG9wdHMsIGNhbGxiYWNrLCBlcnJvciwgcGFyZW50KSB7XG4gIHJldHVybiB0aGlzLmV4ZWN1dGUoYXJncywgb3B0cywgY2FsbGJhY2ssIGVycm9yLCBwYXJlbnQpO1xufTtcblxuLyoqXG4gKiBleGVjdXRlcyBhbiBvcGVyYXRpb25cbiAqKi9cbk9wZXJhdGlvbi5wcm90b3R5cGUuZXhlY3V0ZSA9IGZ1bmN0aW9uIChhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBwYXJlbnQpIHtcbiAgdmFyIGFyZ3MgPSBhcmcxIHx8IHt9O1xuICB2YXIgb3B0cyA9IHt9LCBzdWNjZXNzLCBlcnJvcjtcblxuICBpZiAoXy5pc09iamVjdChhcmcyKSkge1xuICAgIG9wdHMgPSBhcmcyO1xuICAgIHN1Y2Nlc3MgPSBhcmczO1xuICAgIGVycm9yID0gYXJnNDtcbiAgfVxuXG4gIGlmKHRoaXMuY2xpZW50KSB7XG4gICAgb3B0cy5jbGllbnQgPSB0aGlzLmNsaWVudDtcbiAgfVxuICBpZih0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3IpIHtcbiAgICBvcHRzLnJlc3BvbnNlSW50ZXJjZXB0b3IgPSB0aGlzLnJlc3BvbnNlSW50ZXJjZXB0b3I7XG4gIH1cblxuXG4gIGlmICh0eXBlb2YgYXJnMiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHN1Y2Nlc3MgPSBhcmcyO1xuICAgIGVycm9yID0gYXJnMztcbiAgfVxuXG4gIHN1Y2Nlc3MgPSAoc3VjY2VzcyB8fCB0aGlzLnBhcmVudC5kZWZhdWx0U3VjY2Vzc0NhbGxiYWNrIHx8IGhlbHBlcnMubG9nKTtcbiAgZXJyb3IgPSAoZXJyb3IgfHwgdGhpcy5wYXJlbnQuZGVmYXVsdEVycm9yQ2FsbGJhY2sgfHwgaGVscGVycy5sb2cpO1xuXG5cbiAgaWYgKHR5cGVvZiBvcHRzLnVzZUpRdWVyeSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBvcHRzLnVzZUpRdWVyeSA9IHRoaXMudXNlSlF1ZXJ5O1xuICB9XG4gIHZhciBtaXNzaW5nUGFyYW1zID0gdGhpcy5nZXRNaXNzaW5nUGFyYW1zKGFyZ3MpO1xuXG4gIGlmIChtaXNzaW5nUGFyYW1zLmxlbmd0aCA+IDApIHtcbiAgICB2YXIgbWVzc2FnZSA9ICdtaXNzaW5nIHJlcXVpcmVkIHBhcmFtczogJyArIG1pc3NpbmdQYXJhbXM7XG5cbiAgICBoZWxwZXJzLmZhaWwobWVzc2FnZSk7XG4gICAgZXJyb3IobWVzc2FnZSk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgYWxsSGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVyUGFyYW1zKGFyZ3MpO1xuICB2YXIgY29udGVudFR5cGVIZWFkZXJzID0gdGhpcy5zZXRDb250ZW50VHlwZXMoYXJncywgb3B0cyk7XG4gIHZhciBoZWFkZXJzID0ge30sIGF0dHJuYW1lO1xuXG4gIGZvciAoYXR0cm5hbWUgaW4gYWxsSGVhZGVycykgeyBoZWFkZXJzW2F0dHJuYW1lXSA9IGFsbEhlYWRlcnNbYXR0cm5hbWVdOyB9XG4gIGZvciAoYXR0cm5hbWUgaW4gY29udGVudFR5cGVIZWFkZXJzKSB7IGhlYWRlcnNbYXR0cm5hbWVdID0gY29udGVudFR5cGVIZWFkZXJzW2F0dHJuYW1lXTsgfVxuXG4gIHZhciBib2R5ID0gdGhpcy5nZXRCb2R5KGNvbnRlbnRUeXBlSGVhZGVycywgYXJncywgb3B0cyk7XG4gIHZhciB1cmwgPSB0aGlzLnVybGlmeShhcmdzKTtcblxuICBpZih1cmwuaW5kZXhPZignLntmb3JtYXR9JykgPiAwKSB7XG4gICAgaWYoaGVhZGVycykge1xuICAgICAgdmFyIGZvcm1hdCA9IGhlYWRlcnMuQWNjZXB0IHx8IGhlYWRlcnMuYWNjZXB0O1xuICAgICAgaWYoZm9ybWF0ICYmIGZvcm1hdC5pbmRleE9mKCdqc29uJykgPiAwKSB7XG4gICAgICAgIHVybCA9IHVybC5yZXBsYWNlKCcue2Zvcm1hdH0nLCAnLmpzb24nKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYoZm9ybWF0ICYmIGZvcm1hdC5pbmRleE9mKCd4bWwnKSA+IDApIHtcbiAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJy57Zm9ybWF0fScsICcueG1sJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIG9iaiA9IHtcbiAgICB1cmw6IHVybCxcbiAgICBtZXRob2Q6IHRoaXMubWV0aG9kLnRvVXBwZXJDYXNlKCksXG4gICAgYm9keTogYm9keSxcbiAgICB1c2VKUXVlcnk6IG9wdHMudXNlSlF1ZXJ5LFxuICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgb246IHtcbiAgICAgIHJlc3BvbnNlOiBmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3MocmVzcG9uc2UsIHBhcmVudCk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICByZXR1cm4gZXJyb3IocmVzcG9uc2UsIHBhcmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHRoaXMuY2xpZW50QXV0aG9yaXphdGlvbnMuYXBwbHkob2JqLCB0aGlzLm9wZXJhdGlvbi5zZWN1cml0eSk7XG4gIGlmIChvcHRzLm1vY2sgPT09IHRydWUpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9IGVsc2Uge1xuICAgIG5ldyBTd2FnZ2VySHR0cCgpLmV4ZWN1dGUob2JqLCBvcHRzKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gaXRlbUJ5UHJpb3JpdHkoY29sLCBpdGVtUHJpb3JpdHkpIHtcblxuICAvLyBObyBwcmlvcml0aWVzPyByZXR1cm4gZmlyc3QuLi5cbiAgaWYoXy5pc0VtcHR5KGl0ZW1Qcmlvcml0eSkpIHtcbiAgICByZXR1cm4gY29sWzBdO1xuICB9XG5cbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGl0ZW1Qcmlvcml0eS5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGlmKGNvbC5pbmRleE9mKGl0ZW1Qcmlvcml0eVtpXSkgPiAtMSkge1xuICAgICAgcmV0dXJuIGl0ZW1Qcmlvcml0eVtpXTtcbiAgICB9XG4gIH1cblxuICAvLyBPdGhlcndpc2UgcmV0dXJuIGZpcnN0XG4gIHJldHVybiBjb2xbMF07XG59XG5cbk9wZXJhdGlvbi5wcm90b3R5cGUuc2V0Q29udGVudFR5cGVzID0gZnVuY3Rpb24gKGFyZ3MsIG9wdHMpIHtcbiAgLy8gZGVmYXVsdCB0eXBlXG4gIHZhciBhbGxEZWZpbmVkUGFyYW1zID0gdGhpcy5wYXJhbWV0ZXJzO1xuICB2YXIgYm9keTtcbiAgdmFyIGNvbnN1bWVzID0gYXJncy5wYXJhbWV0ZXJDb250ZW50VHlwZSB8fCBpdGVtQnlQcmlvcml0eSh0aGlzLmNvbnN1bWVzLCBbJ2FwcGxpY2F0aW9uL2pzb24nLCAnYXBwbGljYXRpb24veWFtbCddKTtcbiAgdmFyIGFjY2VwdHMgPSBvcHRzLnJlc3BvbnNlQ29udGVudFR5cGUgfHwgaXRlbUJ5UHJpb3JpdHkodGhpcy5wcm9kdWNlcywgWydhcHBsaWNhdGlvbi9qc29uJywgJ2FwcGxpY2F0aW9uL3lhbWwnXSk7XG4gIHZhciBkZWZpbmVkRmlsZVBhcmFtcyA9IFtdO1xuICB2YXIgZGVmaW5lZEZvcm1QYXJhbXMgPSBbXTtcbiAgdmFyIGhlYWRlcnMgPSB7fTtcbiAgdmFyIGk7XG5cbiAgLy8gZ2V0IHBhcmFtcyBmcm9tIHRoZSBvcGVyYXRpb24gYW5kIHNldCB0aGVtIGluIGRlZmluZWRGaWxlUGFyYW1zLCBkZWZpbmVkRm9ybVBhcmFtcywgaGVhZGVyc1xuICBmb3IgKGkgPSAwOyBpIDwgYWxsRGVmaW5lZFBhcmFtcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBwYXJhbSA9IGFsbERlZmluZWRQYXJhbXNbaV07XG5cbiAgICBpZiAocGFyYW0uaW4gPT09ICdmb3JtRGF0YScpIHtcbiAgICAgIGlmIChwYXJhbS50eXBlID09PSAnZmlsZScpIHtcbiAgICAgICAgZGVmaW5lZEZpbGVQYXJhbXMucHVzaChwYXJhbSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWZpbmVkRm9ybVBhcmFtcy5wdXNoKHBhcmFtKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHBhcmFtLmluID09PSAnaGVhZGVyJyAmJiBvcHRzKSB7XG4gICAgICB2YXIga2V5ID0gcGFyYW0ubmFtZTtcbiAgICAgIHZhciBoZWFkZXJWYWx1ZSA9IG9wdHNbcGFyYW0ubmFtZV07XG5cbiAgICAgIGlmICh0eXBlb2Ygb3B0c1twYXJhbS5uYW1lXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgaGVhZGVyc1trZXldID0gaGVhZGVyVmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwYXJhbS5pbiA9PT0gJ2JvZHknICYmIHR5cGVvZiBhcmdzW3BhcmFtLm5hbWVdICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgYm9keSA9IGFyZ3NbcGFyYW0ubmFtZV07XG4gICAgfVxuICB9XG5cbiAgLy8gaWYgdGhlcmUncyBhIGJvZHksIG5lZWQgdG8gc2V0IHRoZSBjb25zdW1lcyBoZWFkZXIgdmlhIHJlcXVlc3RDb250ZW50VHlwZVxuICBpZiAodGhpcy5tZXRob2QgPT09ICdwb3N0JyB8fCB0aGlzLm1ldGhvZCA9PT0gJ3B1dCcgfHwgdGhpcy5tZXRob2QgPT09ICdwYXRjaCcgfHxcbiAgICAgICh0aGlzLm1ldGhvZCA9PT0gJ2RlbGV0ZScgJiYgYm9keSkgKSB7XG4gICAgaWYgKG9wdHMucmVxdWVzdENvbnRlbnRUeXBlKSB7XG4gICAgICBjb25zdW1lcyA9IG9wdHMucmVxdWVzdENvbnRlbnRUeXBlO1xuICAgIH1cbiAgICAvLyBpZiBhbnkgZm9ybSBwYXJhbXMsIGNvbnRlbnQgdHlwZSBtdXN0IGJlIHNldFxuICAgIGlmIChkZWZpbmVkRm9ybVBhcmFtcy5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAob3B0cy5yZXF1ZXN0Q29udGVudFR5cGUpIHsgICAgICAgICAgICAgLy8gb3ZlcnJpZGUgaWYgc2V0XG4gICAgICAgIGNvbnN1bWVzID0gb3B0cy5yZXF1ZXN0Q29udGVudFR5cGU7XG4gICAgICB9IGVsc2UgaWYgKGRlZmluZWRGaWxlUGFyYW1zLmxlbmd0aCA+IDApIHsgLy8gaWYgYSBmaWxlLCBtdXN0IGJlIG11bHRpcGFydC9mb3JtLWRhdGFcbiAgICAgICAgY29uc3VtZXMgPSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YSc7XG4gICAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVmYXVsdCB0byB4LXd3dy1mcm9tLXVybGVuY29kZWRcbiAgICAgICAgY29uc3VtZXMgPSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJztcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgZWxzZSB7XG4gICAgY29uc3VtZXMgPSBudWxsO1xuICB9XG5cbiAgaWYgKGNvbnN1bWVzICYmIHRoaXMuY29uc3VtZXMpIHtcbiAgICBpZiAodGhpcy5jb25zdW1lcy5pbmRleE9mKGNvbnN1bWVzKSA9PT0gLTEpIHtcbiAgICAgIGhlbHBlcnMubG9nKCdzZXJ2ZXIgZG9lc25cXCd0IGNvbnN1bWUgJyArIGNvbnN1bWVzICsgJywgdHJ5ICcgKyBKU09OLnN0cmluZ2lmeSh0aGlzLmNvbnN1bWVzKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCF0aGlzLm1hdGNoZXNBY2NlcHQoYWNjZXB0cykpIHtcbiAgICBoZWxwZXJzLmxvZygnc2VydmVyIGNhblxcJ3QgcHJvZHVjZSAnICsgYWNjZXB0cyk7XG4gIH1cblxuICBpZiAoKGNvbnN1bWVzICYmIGJvZHkgIT09ICcnKSB8fCAoY29uc3VtZXMgPT09ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnKSkge1xuICAgIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gY29uc3VtZXM7XG4gIH1cblxuICBpZiAoYWNjZXB0cykge1xuICAgIGhlYWRlcnMuQWNjZXB0ID0gYWNjZXB0cztcbiAgfVxuXG4gIHJldHVybiBoZWFkZXJzO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIHJlcXVlc3QgYWNjZXB0cyBoZWFkZXIgbWF0Y2hlcyBhbnl0aGluZyBpbiB0aGlzLnByb2R1Y2VzLlxuICogIElmIHRoaXMucHJvZHVjZXMgY29udGFpbnMgKiAvICosIGlnbm9yZSB0aGUgYWNjZXB0IGhlYWRlci5cbiAqIEBwYXJhbSB7c3RyaW5nPX0gYWNjZXB0cyBUaGUgY2xpZW50IHJlcXVlc3QgYWNjZXB0IGhlYWRlci5cbiAqIEByZXR1cm4ge2Jvb2xlYW59XG4gKi9cbk9wZXJhdGlvbi5wcm90b3R5cGUubWF0Y2hlc0FjY2VwdCA9IGZ1bmN0aW9uKGFjY2VwdHMpIHtcbiAgLy8gbm8gYWNjZXB0cyBvciBwcm9kdWNlcywgbm8gcHJvYmxlbSFcbiAgaWYgKCFhY2NlcHRzIHx8ICF0aGlzLnByb2R1Y2VzKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIHRoaXMucHJvZHVjZXMuaW5kZXhPZihhY2NlcHRzKSAhPT0gLTEgfHwgdGhpcy5wcm9kdWNlcy5pbmRleE9mKCcqLyonKSAhPT0gLTE7XG59O1xuXG5PcGVyYXRpb24ucHJvdG90eXBlLmFzQ3VybCA9IGZ1bmN0aW9uIChhcmdzMSwgYXJnczIpIHtcbiAgdmFyIG9wdHMgPSB7bW9jazogdHJ1ZX07XG4gIGlmICh0eXBlb2YgYXJnczIgPT09ICdvYmplY3QnKSB7XG4gICAgZm9yICh2YXIgYXJnS2V5IGluIGFyZ3MyKSB7XG4gICAgICBvcHRzW2FyZ0tleV0gPSBhcmdzMlthcmdLZXldO1xuICAgIH1cbiAgfVxuICB2YXIgb2JqID0gdGhpcy5leGVjdXRlKGFyZ3MxLCBvcHRzKTtcblxuICB0aGlzLmNsaWVudEF1dGhvcml6YXRpb25zLmFwcGx5KG9iaik7XG5cbiAgdmFyIHJlc3VsdHMgPSBbXTtcblxuICByZXN1bHRzLnB1c2goJy1YICcgKyB0aGlzLm1ldGhvZC50b1VwcGVyQ2FzZSgpKTtcblxuICBpZiAob2JqLmhlYWRlcnMpIHtcbiAgICB2YXIga2V5O1xuXG4gICAgZm9yIChrZXkgaW4gb2JqLmhlYWRlcnMpIHtcbiAgICAgIHJlc3VsdHMucHVzaCgnLS1oZWFkZXIgXCInICsga2V5ICsgJzogJyArIG9iai5oZWFkZXJzW2tleV0gKyAnXCInKTtcbiAgICB9XG4gIH1cblxuICBpZiAob2JqLmJvZHkpIHtcbiAgICB2YXIgYm9keTtcblxuICAgIGlmIChfLmlzT2JqZWN0KG9iai5ib2R5KSkge1xuICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KG9iai5ib2R5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgYm9keSA9IG9iai5ib2R5O1xuICAgIH1cblxuICAgIHJlc3VsdHMucHVzaCgnLWQgXCInICsgYm9keS5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJykgKyAnXCInKTtcbiAgfVxuXG4gIHJldHVybiAnY3VybCAnICsgKHJlc3VsdHMuam9pbignICcpKSArICcgXCInICsgb2JqLnVybCArICdcIic7XG59O1xuXG5PcGVyYXRpb24ucHJvdG90eXBlLmVuY29kZVBhdGhDb2xsZWN0aW9uID0gZnVuY3Rpb24gKHR5cGUsIG5hbWUsIHZhbHVlKSB7XG4gIHZhciBlbmNvZGVkID0gJyc7XG4gIHZhciBpO1xuICB2YXIgc2VwYXJhdG9yID0gJyc7XG5cbiAgaWYgKHR5cGUgPT09ICdzc3YnKSB7XG4gICAgc2VwYXJhdG9yID0gJyUyMCc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3RzdicpIHtcbiAgICBzZXBhcmF0b3IgPSAnXFxcXHQnO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdwaXBlcycpIHtcbiAgICBzZXBhcmF0b3IgPSAnfCc7XG4gIH0gZWxzZSB7XG4gICAgc2VwYXJhdG9yID0gJywnO1xuICB9XG5cbiAgZm9yIChpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGkgPT09IDApIHtcbiAgICAgIGVuY29kZWQgPSB0aGlzLmVuY29kZVF1ZXJ5UGFyYW0odmFsdWVbaV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbmNvZGVkICs9IHNlcGFyYXRvciArIHRoaXMuZW5jb2RlUXVlcnlQYXJhbSh2YWx1ZVtpXSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVuY29kZWQ7XG59O1xuXG5PcGVyYXRpb24ucHJvdG90eXBlLmVuY29kZVF1ZXJ5Q29sbGVjdGlvbiA9IGZ1bmN0aW9uICh0eXBlLCBuYW1lLCB2YWx1ZSkge1xuICB2YXIgZW5jb2RlZCA9ICcnO1xuICB2YXIgaTtcblxuICBpZiAodHlwZSA9PT0gJ2RlZmF1bHQnIHx8IHR5cGUgPT09ICdtdWx0aScpIHtcbiAgICBmb3IgKGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChpID4gMCkge2VuY29kZWQgKz0gJyYnO31cblxuICAgICAgZW5jb2RlZCArPSB0aGlzLmVuY29kZVF1ZXJ5UGFyYW0obmFtZSkgKyAnPScgKyB0aGlzLmVuY29kZVF1ZXJ5UGFyYW0odmFsdWVbaV0pO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgc2VwYXJhdG9yID0gJyc7XG5cbiAgICBpZiAodHlwZSA9PT0gJ2NzdicpIHtcbiAgICAgIHNlcGFyYXRvciA9ICcsJztcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzc3YnKSB7XG4gICAgICBzZXBhcmF0b3IgPSAnJTIwJztcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICd0c3YnKSB7XG4gICAgICBzZXBhcmF0b3IgPSAnXFxcXHQnO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3BpcGVzJykge1xuICAgICAgc2VwYXJhdG9yID0gJ3wnO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2JyYWNrZXRzJykge1xuICAgICAgZm9yIChpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChpICE9PSAwKSB7XG4gICAgICAgICAgZW5jb2RlZCArPSAnJic7XG4gICAgICAgIH1cblxuICAgICAgICBlbmNvZGVkICs9IHRoaXMuZW5jb2RlUXVlcnlQYXJhbShuYW1lKSArICdbXT0nICsgdGhpcy5lbmNvZGVRdWVyeVBhcmFtKHZhbHVlW2ldKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc2VwYXJhdG9yICE9PSAnJykge1xuICAgICAgZm9yIChpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgZW5jb2RlZCA9IHRoaXMuZW5jb2RlUXVlcnlQYXJhbShuYW1lKSArICc9JyArIHRoaXMuZW5jb2RlUXVlcnlQYXJhbSh2YWx1ZVtpXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZW5jb2RlZCArPSBzZXBhcmF0b3IgKyB0aGlzLmVuY29kZVF1ZXJ5UGFyYW0odmFsdWVbaV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVuY29kZWQ7XG59O1xuXG5PcGVyYXRpb24ucHJvdG90eXBlLmVuY29kZVF1ZXJ5UGFyYW0gPSBmdW5jdGlvbiAoYXJnKSB7XG4gIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQoYXJnKTtcbn07XG5cbi8qKlxuICogVE9ETyByZXZpc2l0LCBtaWdodCBub3Qgd2FudCB0byBsZWF2ZSAnLydcbiAqKi9cbk9wZXJhdGlvbi5wcm90b3R5cGUuZW5jb2RlUGF0aFBhcmFtID0gZnVuY3Rpb24gKHBhdGhQYXJhbSkge1xuICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHBhdGhQYXJhbSk7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgT3BlcmF0aW9uR3JvdXAgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0YWcsIGRlc2NyaXB0aW9uLCBleHRlcm5hbERvY3MsIG9wZXJhdGlvbikge1xuICB0aGlzLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247XG4gIHRoaXMuZXh0ZXJuYWxEb2NzID0gZXh0ZXJuYWxEb2NzO1xuICB0aGlzLm5hbWUgPSB0YWc7XG4gIHRoaXMub3BlcmF0aW9uID0gb3BlcmF0aW9uO1xuICB0aGlzLm9wZXJhdGlvbnNBcnJheSA9IFtdO1xuICB0aGlzLnBhdGggPSB0YWc7XG4gIHRoaXMudGFnID0gdGFnO1xufTtcblxuT3BlcmF0aW9uR3JvdXAucHJvdG90eXBlLnNvcnQgPSBmdW5jdGlvbiAoKSB7XG5cbn07XG5cbiIsbnVsbCwiLyohXG4gKiBUaGUgYnVmZmVyIG1vZHVsZSBmcm9tIG5vZGUuanMsIGZvciB0aGUgYnJvd3Nlci5cbiAqXG4gKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8ZmVyb3NzQGZlcm9zcy5vcmc+IDxodHRwOi8vZmVyb3NzLm9yZz5cbiAqIEBsaWNlbnNlICBNSVRcbiAqL1xuXG52YXIgYmFzZTY0ID0gcmVxdWlyZSgnYmFzZTY0LWpzJylcbnZhciBpZWVlNzU0ID0gcmVxdWlyZSgnaWVlZTc1NCcpXG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJ2lzLWFycmF5JylcblxuZXhwb3J0cy5CdWZmZXIgPSBCdWZmZXJcbmV4cG9ydHMuU2xvd0J1ZmZlciA9IFNsb3dCdWZmZXJcbmV4cG9ydHMuSU5TUEVDVF9NQVhfQllURVMgPSA1MFxuQnVmZmVyLnBvb2xTaXplID0gODE5MiAvLyBub3QgdXNlZCBieSB0aGlzIGltcGxlbWVudGF0aW9uXG5cbnZhciByb290UGFyZW50ID0ge31cblxuLyoqXG4gKiBJZiBgQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlRgOlxuICogICA9PT0gdHJ1ZSAgICBVc2UgVWludDhBcnJheSBpbXBsZW1lbnRhdGlvbiAoZmFzdGVzdClcbiAqICAgPT09IGZhbHNlICAgVXNlIE9iamVjdCBpbXBsZW1lbnRhdGlvbiAobW9zdCBjb21wYXRpYmxlLCBldmVuIElFNilcbiAqXG4gKiBCcm93c2VycyB0aGF0IHN1cHBvcnQgdHlwZWQgYXJyYXlzIGFyZSBJRSAxMCssIEZpcmVmb3ggNCssIENocm9tZSA3KywgU2FmYXJpIDUuMSssXG4gKiBPcGVyYSAxMS42KywgaU9TIDQuMisuXG4gKlxuICogTm90ZTpcbiAqXG4gKiAtIEltcGxlbWVudGF0aW9uIG11c3Qgc3VwcG9ydCBhZGRpbmcgbmV3IHByb3BlcnRpZXMgdG8gYFVpbnQ4QXJyYXlgIGluc3RhbmNlcy5cbiAqICAgRmlyZWZveCA0LTI5IGxhY2tlZCBzdXBwb3J0LCBmaXhlZCBpbiBGaXJlZm94IDMwKy5cbiAqICAgU2VlOiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU0MzguXG4gKlxuICogIC0gQ2hyb21lIDktMTAgaXMgbWlzc2luZyB0aGUgYFR5cGVkQXJyYXkucHJvdG90eXBlLnN1YmFycmF5YCBmdW5jdGlvbi5cbiAqXG4gKiAgLSBJRTEwIGhhcyBhIGJyb2tlbiBgVHlwZWRBcnJheS5wcm90b3R5cGUuc3ViYXJyYXlgIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYXJyYXlzIG9mXG4gKiAgICBpbmNvcnJlY3QgbGVuZ3RoIGluIHNvbWUgc2l0dWF0aW9ucy5cbiAqXG4gKiBXZSBkZXRlY3QgdGhlc2UgYnVnZ3kgYnJvd3NlcnMgYW5kIHNldCBgQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlRgIHRvIGBmYWxzZWAgc28gdGhleSB3aWxsXG4gKiBnZXQgdGhlIE9iamVjdCBpbXBsZW1lbnRhdGlvbiwgd2hpY2ggaXMgc2xvd2VyIGJ1dCB3aWxsIHdvcmsgY29ycmVjdGx5LlxuICovXG5CdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCA9IChmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIEZvbyAoKSB7fVxuICB0cnkge1xuICAgIHZhciBidWYgPSBuZXcgQXJyYXlCdWZmZXIoMClcbiAgICB2YXIgYXJyID0gbmV3IFVpbnQ4QXJyYXkoYnVmKVxuICAgIGFyci5mb28gPSBmdW5jdGlvbiAoKSB7IHJldHVybiA0MiB9XG4gICAgYXJyLmNvbnN0cnVjdG9yID0gRm9vXG4gICAgcmV0dXJuIGFyci5mb28oKSA9PT0gNDIgJiYgLy8gdHlwZWQgYXJyYXkgaW5zdGFuY2VzIGNhbiBiZSBhdWdtZW50ZWRcbiAgICAgICAgYXJyLmNvbnN0cnVjdG9yID09PSBGb28gJiYgLy8gY29uc3RydWN0b3IgY2FuIGJlIHNldFxuICAgICAgICB0eXBlb2YgYXJyLnN1YmFycmF5ID09PSAnZnVuY3Rpb24nICYmIC8vIGNocm9tZSA5LTEwIGxhY2sgYHN1YmFycmF5YFxuICAgICAgICBuZXcgVWludDhBcnJheSgxKS5zdWJhcnJheSgxLCAxKS5ieXRlTGVuZ3RoID09PSAwIC8vIGllMTAgaGFzIGJyb2tlbiBgc3ViYXJyYXlgXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufSkoKVxuXG5mdW5jdGlvbiBrTWF4TGVuZ3RoICgpIHtcbiAgcmV0dXJuIEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUXG4gICAgPyAweDdmZmZmZmZmXG4gICAgOiAweDNmZmZmZmZmXG59XG5cbi8qKlxuICogQ2xhc3M6IEJ1ZmZlclxuICogPT09PT09PT09PT09PVxuICpcbiAqIFRoZSBCdWZmZXIgY29uc3RydWN0b3IgcmV0dXJucyBpbnN0YW5jZXMgb2YgYFVpbnQ4QXJyYXlgIHRoYXQgYXJlIGF1Z21lbnRlZFxuICogd2l0aCBmdW5jdGlvbiBwcm9wZXJ0aWVzIGZvciBhbGwgdGhlIG5vZGUgYEJ1ZmZlcmAgQVBJIGZ1bmN0aW9ucy4gV2UgdXNlXG4gKiBgVWludDhBcnJheWAgc28gdGhhdCBzcXVhcmUgYnJhY2tldCBub3RhdGlvbiB3b3JrcyBhcyBleHBlY3RlZCAtLSBpdCByZXR1cm5zXG4gKiBhIHNpbmdsZSBvY3RldC5cbiAqXG4gKiBCeSBhdWdtZW50aW5nIHRoZSBpbnN0YW5jZXMsIHdlIGNhbiBhdm9pZCBtb2RpZnlpbmcgdGhlIGBVaW50OEFycmF5YFxuICogcHJvdG90eXBlLlxuICovXG5mdW5jdGlvbiBCdWZmZXIgKGFyZykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgQnVmZmVyKSkge1xuICAgIC8vIEF2b2lkIGdvaW5nIHRocm91Z2ggYW4gQXJndW1lbnRzQWRhcHRvclRyYW1wb2xpbmUgaW4gdGhlIGNvbW1vbiBjYXNlLlxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkgcmV0dXJuIG5ldyBCdWZmZXIoYXJnLCBhcmd1bWVudHNbMV0pXG4gICAgcmV0dXJuIG5ldyBCdWZmZXIoYXJnKVxuICB9XG5cbiAgdGhpcy5sZW5ndGggPSAwXG4gIHRoaXMucGFyZW50ID0gdW5kZWZpbmVkXG5cbiAgLy8gQ29tbW9uIGNhc2UuXG4gIGlmICh0eXBlb2YgYXJnID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBmcm9tTnVtYmVyKHRoaXMsIGFyZylcbiAgfVxuXG4gIC8vIFNsaWdodGx5IGxlc3MgY29tbW9uIGNhc2UuXG4gIGlmICh0eXBlb2YgYXJnID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmcm9tU3RyaW5nKHRoaXMsIGFyZywgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiAndXRmOCcpXG4gIH1cblxuICAvLyBVbnVzdWFsLlxuICByZXR1cm4gZnJvbU9iamVjdCh0aGlzLCBhcmcpXG59XG5cbmZ1bmN0aW9uIGZyb21OdW1iZXIgKHRoYXQsIGxlbmd0aCkge1xuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoIDwgMCA/IDAgOiBjaGVja2VkKGxlbmd0aCkgfCAwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgdGhhdFtpXSA9IDBcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbVN0cmluZyAodGhhdCwgc3RyaW5nLCBlbmNvZGluZykge1xuICBpZiAodHlwZW9mIGVuY29kaW5nICE9PSAnc3RyaW5nJyB8fCBlbmNvZGluZyA9PT0gJycpIGVuY29kaW5nID0gJ3V0ZjgnXG5cbiAgLy8gQXNzdW1wdGlvbjogYnl0ZUxlbmd0aCgpIHJldHVybiB2YWx1ZSBpcyBhbHdheXMgPCBrTWF4TGVuZ3RoLlxuICB2YXIgbGVuZ3RoID0gYnl0ZUxlbmd0aChzdHJpbmcsIGVuY29kaW5nKSB8IDBcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcblxuICB0aGF0LndyaXRlKHN0cmluZywgZW5jb2RpbmcpXG4gIHJldHVybiB0aGF0XG59XG5cbmZ1bmN0aW9uIGZyb21PYmplY3QgKHRoYXQsIG9iamVjdCkge1xuICBpZiAoQnVmZmVyLmlzQnVmZmVyKG9iamVjdCkpIHJldHVybiBmcm9tQnVmZmVyKHRoYXQsIG9iamVjdClcblxuICBpZiAoaXNBcnJheShvYmplY3QpKSByZXR1cm4gZnJvbUFycmF5KHRoYXQsIG9iamVjdClcblxuICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdtdXN0IHN0YXJ0IHdpdGggbnVtYmVyLCBidWZmZXIsIGFycmF5IG9yIHN0cmluZycpXG4gIH1cblxuICBpZiAodHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJiBvYmplY3QuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcbiAgICByZXR1cm4gZnJvbVR5cGVkQXJyYXkodGhhdCwgb2JqZWN0KVxuICB9XG5cbiAgaWYgKG9iamVjdC5sZW5ndGgpIHJldHVybiBmcm9tQXJyYXlMaWtlKHRoYXQsIG9iamVjdClcblxuICByZXR1cm4gZnJvbUpzb25PYmplY3QodGhhdCwgb2JqZWN0KVxufVxuXG5mdW5jdGlvbiBmcm9tQnVmZmVyICh0aGF0LCBidWZmZXIpIHtcbiAgdmFyIGxlbmd0aCA9IGNoZWNrZWQoYnVmZmVyLmxlbmd0aCkgfCAwXG4gIHRoYXQgPSBhbGxvY2F0ZSh0aGF0LCBsZW5ndGgpXG4gIGJ1ZmZlci5jb3B5KHRoYXQsIDAsIDAsIGxlbmd0aClcbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbUFycmF5ICh0aGF0LCBhcnJheSkge1xuICB2YXIgbGVuZ3RoID0gY2hlY2tlZChhcnJheS5sZW5ndGgpIHwgMFxuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoKVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7XG4gICAgdGhhdFtpXSA9IGFycmF5W2ldICYgMjU1XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuLy8gRHVwbGljYXRlIG9mIGZyb21BcnJheSgpIHRvIGtlZXAgZnJvbUFycmF5KCkgbW9ub21vcnBoaWMuXG5mdW5jdGlvbiBmcm9tVHlwZWRBcnJheSAodGhhdCwgYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcbiAgLy8gVHJ1bmNhdGluZyB0aGUgZWxlbWVudHMgaXMgcHJvYmFibHkgbm90IHdoYXQgcGVvcGxlIGV4cGVjdCBmcm9tIHR5cGVkXG4gIC8vIGFycmF5cyB3aXRoIEJZVEVTX1BFUl9FTEVNRU5UID4gMSBidXQgaXQncyBjb21wYXRpYmxlIHdpdGggdGhlIGJlaGF2aW9yXG4gIC8vIG9mIHRoZSBvbGQgQnVmZmVyIGNvbnN0cnVjdG9yLlxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7XG4gICAgdGhhdFtpXSA9IGFycmF5W2ldICYgMjU1XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbUFycmF5TGlrZSAodGhhdCwgYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgdGhhdCA9IGFsbG9jYXRlKHRoYXQsIGxlbmd0aClcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkgKz0gMSkge1xuICAgIHRoYXRbaV0gPSBhcnJheVtpXSAmIDI1NVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbi8vIERlc2VyaWFsaXplIHsgdHlwZTogJ0J1ZmZlcicsIGRhdGE6IFsxLDIsMywuLi5dIH0gaW50byBhIEJ1ZmZlciBvYmplY3QuXG4vLyBSZXR1cm5zIGEgemVyby1sZW5ndGggYnVmZmVyIGZvciBpbnB1dHMgdGhhdCBkb24ndCBjb25mb3JtIHRvIHRoZSBzcGVjLlxuZnVuY3Rpb24gZnJvbUpzb25PYmplY3QgKHRoYXQsIG9iamVjdCkge1xuICB2YXIgYXJyYXlcbiAgdmFyIGxlbmd0aCA9IDBcblxuICBpZiAob2JqZWN0LnR5cGUgPT09ICdCdWZmZXInICYmIGlzQXJyYXkob2JqZWN0LmRhdGEpKSB7XG4gICAgYXJyYXkgPSBvYmplY3QuZGF0YVxuICAgIGxlbmd0aCA9IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgfVxuICB0aGF0ID0gYWxsb2NhdGUodGhhdCwgbGVuZ3RoKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpICs9IDEpIHtcbiAgICB0aGF0W2ldID0gYXJyYXlbaV0gJiAyNTVcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBhbGxvY2F0ZSAodGhhdCwgbGVuZ3RoKSB7XG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIC8vIFJldHVybiBhbiBhdWdtZW50ZWQgYFVpbnQ4QXJyYXlgIGluc3RhbmNlLCBmb3IgYmVzdCBwZXJmb3JtYW5jZVxuICAgIHRoYXQgPSBCdWZmZXIuX2F1Z21lbnQobmV3IFVpbnQ4QXJyYXkobGVuZ3RoKSlcbiAgfSBlbHNlIHtcbiAgICAvLyBGYWxsYmFjazogUmV0dXJuIGFuIG9iamVjdCBpbnN0YW5jZSBvZiB0aGUgQnVmZmVyIGNsYXNzXG4gICAgdGhhdC5sZW5ndGggPSBsZW5ndGhcbiAgICB0aGF0Ll9pc0J1ZmZlciA9IHRydWVcbiAgfVxuXG4gIHZhciBmcm9tUG9vbCA9IGxlbmd0aCAhPT0gMCAmJiBsZW5ndGggPD0gQnVmZmVyLnBvb2xTaXplID4+PiAxXG4gIGlmIChmcm9tUG9vbCkgdGhhdC5wYXJlbnQgPSByb290UGFyZW50XG5cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gY2hlY2tlZCAobGVuZ3RoKSB7XG4gIC8vIE5vdGU6IGNhbm5vdCB1c2UgYGxlbmd0aCA8IGtNYXhMZW5ndGhgIGhlcmUgYmVjYXVzZSB0aGF0IGZhaWxzIHdoZW5cbiAgLy8gbGVuZ3RoIGlzIE5hTiAod2hpY2ggaXMgb3RoZXJ3aXNlIGNvZXJjZWQgdG8gemVyby4pXG4gIGlmIChsZW5ndGggPj0ga01heExlbmd0aCgpKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0F0dGVtcHQgdG8gYWxsb2NhdGUgQnVmZmVyIGxhcmdlciB0aGFuIG1heGltdW0gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgJ3NpemU6IDB4JyArIGtNYXhMZW5ndGgoKS50b1N0cmluZygxNikgKyAnIGJ5dGVzJylcbiAgfVxuICByZXR1cm4gbGVuZ3RoIHwgMFxufVxuXG5mdW5jdGlvbiBTbG93QnVmZmVyIChzdWJqZWN0LCBlbmNvZGluZykge1xuICBpZiAoISh0aGlzIGluc3RhbmNlb2YgU2xvd0J1ZmZlcikpIHJldHVybiBuZXcgU2xvd0J1ZmZlcihzdWJqZWN0LCBlbmNvZGluZylcblxuICB2YXIgYnVmID0gbmV3IEJ1ZmZlcihzdWJqZWN0LCBlbmNvZGluZylcbiAgZGVsZXRlIGJ1Zi5wYXJlbnRcbiAgcmV0dXJuIGJ1ZlxufVxuXG5CdWZmZXIuaXNCdWZmZXIgPSBmdW5jdGlvbiBpc0J1ZmZlciAoYikge1xuICByZXR1cm4gISEoYiAhPSBudWxsICYmIGIuX2lzQnVmZmVyKVxufVxuXG5CdWZmZXIuY29tcGFyZSA9IGZ1bmN0aW9uIGNvbXBhcmUgKGEsIGIpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYSkgfHwgIUJ1ZmZlci5pc0J1ZmZlcihiKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50cyBtdXN0IGJlIEJ1ZmZlcnMnKVxuICB9XG5cbiAgaWYgKGEgPT09IGIpIHJldHVybiAwXG5cbiAgdmFyIHggPSBhLmxlbmd0aFxuICB2YXIgeSA9IGIubGVuZ3RoXG5cbiAgdmFyIGkgPSAwXG4gIHZhciBsZW4gPSBNYXRoLm1pbih4LCB5KVxuICB3aGlsZSAoaSA8IGxlbikge1xuICAgIGlmIChhW2ldICE9PSBiW2ldKSBicmVha1xuXG4gICAgKytpXG4gIH1cblxuICBpZiAoaSAhPT0gbGVuKSB7XG4gICAgeCA9IGFbaV1cbiAgICB5ID0gYltpXVxuICB9XG5cbiAgaWYgKHggPCB5KSByZXR1cm4gLTFcbiAgaWYgKHkgPCB4KSByZXR1cm4gMVxuICByZXR1cm4gMFxufVxuXG5CdWZmZXIuaXNFbmNvZGluZyA9IGZ1bmN0aW9uIGlzRW5jb2RpbmcgKGVuY29kaW5nKSB7XG4gIHN3aXRjaCAoU3RyaW5nKGVuY29kaW5nKS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgY2FzZSAnaGV4JzpcbiAgICBjYXNlICd1dGY4JzpcbiAgICBjYXNlICd1dGYtOCc6XG4gICAgY2FzZSAnYXNjaWknOlxuICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgY2FzZSAnYmFzZTY0JzpcbiAgICBjYXNlICdyYXcnOlxuICAgIGNhc2UgJ3VjczInOlxuICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICBjYXNlICd1dGYxNmxlJzpcbiAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5CdWZmZXIuY29uY2F0ID0gZnVuY3Rpb24gY29uY2F0IChsaXN0LCBsZW5ndGgpIHtcbiAgaWYgKCFpc0FycmF5KGxpc3QpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdsaXN0IGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycy4nKVxuXG4gIGlmIChsaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBuZXcgQnVmZmVyKDApXG4gIH0gZWxzZSBpZiAobGlzdC5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gbGlzdFswXVxuICB9XG5cbiAgdmFyIGlcbiAgaWYgKGxlbmd0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgbGVuZ3RoID0gMFxuICAgIGZvciAoaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZW5ndGggKz0gbGlzdFtpXS5sZW5ndGhcbiAgICB9XG4gIH1cblxuICB2YXIgYnVmID0gbmV3IEJ1ZmZlcihsZW5ndGgpXG4gIHZhciBwb3MgPSAwXG4gIGZvciAoaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGl0ZW0gPSBsaXN0W2ldXG4gICAgaXRlbS5jb3B5KGJ1ZiwgcG9zKVxuICAgIHBvcyArPSBpdGVtLmxlbmd0aFxuICB9XG4gIHJldHVybiBidWZcbn1cblxuZnVuY3Rpb24gYnl0ZUxlbmd0aCAoc3RyaW5nLCBlbmNvZGluZykge1xuICBpZiAodHlwZW9mIHN0cmluZyAhPT0gJ3N0cmluZycpIHN0cmluZyA9ICcnICsgc3RyaW5nXG5cbiAgdmFyIGxlbiA9IHN0cmluZy5sZW5ndGhcbiAgaWYgKGxlbiA9PT0gMCkgcmV0dXJuIDBcblxuICAvLyBVc2UgYSBmb3IgbG9vcCB0byBhdm9pZCByZWN1cnNpb25cbiAgdmFyIGxvd2VyZWRDYXNlID0gZmFsc2VcbiAgZm9yICg7Oykge1xuICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgIGNhc2UgJ2FzY2lpJzpcbiAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAvLyBEZXByZWNhdGVkXG4gICAgICBjYXNlICdyYXcnOlxuICAgICAgY2FzZSAncmF3cyc6XG4gICAgICAgIHJldHVybiBsZW5cbiAgICAgIGNhc2UgJ3V0ZjgnOlxuICAgICAgY2FzZSAndXRmLTgnOlxuICAgICAgICByZXR1cm4gdXRmOFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGhcbiAgICAgIGNhc2UgJ3VjczInOlxuICAgICAgY2FzZSAndWNzLTInOlxuICAgICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICAgIHJldHVybiBsZW4gKiAyXG4gICAgICBjYXNlICdoZXgnOlxuICAgICAgICByZXR1cm4gbGVuID4+PiAxXG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgICByZXR1cm4gYmFzZTY0VG9CeXRlcyhzdHJpbmcpLmxlbmd0aFxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGxvd2VyZWRDYXNlKSByZXR1cm4gdXRmOFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGggLy8gYXNzdW1lIHV0ZjhcbiAgICAgICAgZW5jb2RpbmcgPSAoJycgKyBlbmNvZGluZykudG9Mb3dlckNhc2UoKVxuICAgICAgICBsb3dlcmVkQ2FzZSA9IHRydWVcbiAgICB9XG4gIH1cbn1cbkJ1ZmZlci5ieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aFxuXG4vLyBwcmUtc2V0IGZvciB2YWx1ZXMgdGhhdCBtYXkgZXhpc3QgaW4gdGhlIGZ1dHVyZVxuQnVmZmVyLnByb3RvdHlwZS5sZW5ndGggPSB1bmRlZmluZWRcbkJ1ZmZlci5wcm90b3R5cGUucGFyZW50ID0gdW5kZWZpbmVkXG5cbmZ1bmN0aW9uIHNsb3dUb1N0cmluZyAoZW5jb2RpbmcsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIGxvd2VyZWRDYXNlID0gZmFsc2VcblxuICBzdGFydCA9IHN0YXJ0IHwgMFxuICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZCB8fCBlbmQgPT09IEluZmluaXR5ID8gdGhpcy5sZW5ndGggOiBlbmQgfCAwXG5cbiAgaWYgKCFlbmNvZGluZykgZW5jb2RpbmcgPSAndXRmOCdcbiAgaWYgKHN0YXJ0IDwgMCkgc3RhcnQgPSAwXG4gIGlmIChlbmQgPiB0aGlzLmxlbmd0aCkgZW5kID0gdGhpcy5sZW5ndGhcbiAgaWYgKGVuZCA8PSBzdGFydCkgcmV0dXJuICcnXG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgICBjYXNlICdoZXgnOlxuICAgICAgICByZXR1cm4gaGV4U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAndXRmOCc6XG4gICAgICBjYXNlICd1dGYtOCc6XG4gICAgICAgIHJldHVybiB1dGY4U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAnYXNjaWknOlxuICAgICAgICByZXR1cm4gYXNjaWlTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgICByZXR1cm4gYmluYXJ5U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgICAgcmV0dXJuIGJhc2U2NFNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ3VjczInOlxuICAgICAgY2FzZSAndWNzLTInOlxuICAgICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICAgIHJldHVybiB1dGYxNmxlU2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGxvd2VyZWRDYXNlKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jb2RpbmcpXG4gICAgICAgIGVuY29kaW5nID0gKGVuY29kaW5nICsgJycpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgbG93ZXJlZENhc2UgPSB0cnVlXG4gICAgfVxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZyAoKSB7XG4gIHZhciBsZW5ndGggPSB0aGlzLmxlbmd0aCB8IDBcbiAgaWYgKGxlbmd0aCA9PT0gMCkgcmV0dXJuICcnXG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSByZXR1cm4gdXRmOFNsaWNlKHRoaXMsIDAsIGxlbmd0aClcbiAgcmV0dXJuIHNsb3dUb1N0cmluZy5hcHBseSh0aGlzLCBhcmd1bWVudHMpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuZXF1YWxzID0gZnVuY3Rpb24gZXF1YWxzIChiKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyJylcbiAgaWYgKHRoaXMgPT09IGIpIHJldHVybiB0cnVlXG4gIHJldHVybiBCdWZmZXIuY29tcGFyZSh0aGlzLCBiKSA9PT0gMFxufVxuXG5CdWZmZXIucHJvdG90eXBlLmluc3BlY3QgPSBmdW5jdGlvbiBpbnNwZWN0ICgpIHtcbiAgdmFyIHN0ciA9ICcnXG4gIHZhciBtYXggPSBleHBvcnRzLklOU1BFQ1RfTUFYX0JZVEVTXG4gIGlmICh0aGlzLmxlbmd0aCA+IDApIHtcbiAgICBzdHIgPSB0aGlzLnRvU3RyaW5nKCdoZXgnLCAwLCBtYXgpLm1hdGNoKC8uezJ9L2cpLmpvaW4oJyAnKVxuICAgIGlmICh0aGlzLmxlbmd0aCA+IG1heCkgc3RyICs9ICcgLi4uICdcbiAgfVxuICByZXR1cm4gJzxCdWZmZXIgJyArIHN0ciArICc+J1xufVxuXG5CdWZmZXIucHJvdG90eXBlLmNvbXBhcmUgPSBmdW5jdGlvbiBjb21wYXJlIChiKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyJylcbiAgaWYgKHRoaXMgPT09IGIpIHJldHVybiAwXG4gIHJldHVybiBCdWZmZXIuY29tcGFyZSh0aGlzLCBiKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLmluZGV4T2YgPSBmdW5jdGlvbiBpbmRleE9mICh2YWwsIGJ5dGVPZmZzZXQpIHtcbiAgaWYgKGJ5dGVPZmZzZXQgPiAweDdmZmZmZmZmKSBieXRlT2Zmc2V0ID0gMHg3ZmZmZmZmZlxuICBlbHNlIGlmIChieXRlT2Zmc2V0IDwgLTB4ODAwMDAwMDApIGJ5dGVPZmZzZXQgPSAtMHg4MDAwMDAwMFxuICBieXRlT2Zmc2V0ID4+PSAwXG5cbiAgaWYgKHRoaXMubGVuZ3RoID09PSAwKSByZXR1cm4gLTFcbiAgaWYgKGJ5dGVPZmZzZXQgPj0gdGhpcy5sZW5ndGgpIHJldHVybiAtMVxuXG4gIC8vIE5lZ2F0aXZlIG9mZnNldHMgc3RhcnQgZnJvbSB0aGUgZW5kIG9mIHRoZSBidWZmZXJcbiAgaWYgKGJ5dGVPZmZzZXQgPCAwKSBieXRlT2Zmc2V0ID0gTWF0aC5tYXgodGhpcy5sZW5ndGggKyBieXRlT2Zmc2V0LCAwKVxuXG4gIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgIGlmICh2YWwubGVuZ3RoID09PSAwKSByZXR1cm4gLTEgLy8gc3BlY2lhbCBjYXNlOiBsb29raW5nIGZvciBlbXB0eSBzdHJpbmcgYWx3YXlzIGZhaWxzXG4gICAgcmV0dXJuIFN0cmluZy5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHRoaXMsIHZhbCwgYnl0ZU9mZnNldClcbiAgfVxuICBpZiAoQnVmZmVyLmlzQnVmZmVyKHZhbCkpIHtcbiAgICByZXR1cm4gYXJyYXlJbmRleE9mKHRoaXMsIHZhbCwgYnl0ZU9mZnNldClcbiAgfVxuICBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQgJiYgVWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCh0aGlzLCB2YWwsIGJ5dGVPZmZzZXQpXG4gICAgfVxuICAgIHJldHVybiBhcnJheUluZGV4T2YodGhpcywgWyB2YWwgXSwgYnl0ZU9mZnNldClcbiAgfVxuXG4gIGZ1bmN0aW9uIGFycmF5SW5kZXhPZiAoYXJyLCB2YWwsIGJ5dGVPZmZzZXQpIHtcbiAgICB2YXIgZm91bmRJbmRleCA9IC0xXG4gICAgZm9yICh2YXIgaSA9IDA7IGJ5dGVPZmZzZXQgKyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoYXJyW2J5dGVPZmZzZXQgKyBpXSA9PT0gdmFsW2ZvdW5kSW5kZXggPT09IC0xID8gMCA6IGkgLSBmb3VuZEluZGV4XSkge1xuICAgICAgICBpZiAoZm91bmRJbmRleCA9PT0gLTEpIGZvdW5kSW5kZXggPSBpXG4gICAgICAgIGlmIChpIC0gZm91bmRJbmRleCArIDEgPT09IHZhbC5sZW5ndGgpIHJldHVybiBieXRlT2Zmc2V0ICsgZm91bmRJbmRleFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm91bmRJbmRleCA9IC0xXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAtMVxuICB9XG5cbiAgdGhyb3cgbmV3IFR5cGVFcnJvcigndmFsIG11c3QgYmUgc3RyaW5nLCBudW1iZXIgb3IgQnVmZmVyJylcbn1cblxuLy8gYGdldGAgd2lsbCBiZSByZW1vdmVkIGluIE5vZGUgMC4xMytcbkJ1ZmZlci5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gZ2V0IChvZmZzZXQpIHtcbiAgY29uc29sZS5sb2coJy5nZXQoKSBpcyBkZXByZWNhdGVkLiBBY2Nlc3MgdXNpbmcgYXJyYXkgaW5kZXhlcyBpbnN0ZWFkLicpXG4gIHJldHVybiB0aGlzLnJlYWRVSW50OChvZmZzZXQpXG59XG5cbi8vIGBzZXRgIHdpbGwgYmUgcmVtb3ZlZCBpbiBOb2RlIDAuMTMrXG5CdWZmZXIucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIHNldCAodiwgb2Zmc2V0KSB7XG4gIGNvbnNvbGUubG9nKCcuc2V0KCkgaXMgZGVwcmVjYXRlZC4gQWNjZXNzIHVzaW5nIGFycmF5IGluZGV4ZXMgaW5zdGVhZC4nKVxuICByZXR1cm4gdGhpcy53cml0ZVVJbnQ4KHYsIG9mZnNldClcbn1cblxuZnVuY3Rpb24gaGV4V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICBvZmZzZXQgPSBOdW1iZXIob2Zmc2V0KSB8fCAwXG4gIHZhciByZW1haW5pbmcgPSBidWYubGVuZ3RoIC0gb2Zmc2V0XG4gIGlmICghbGVuZ3RoKSB7XG4gICAgbGVuZ3RoID0gcmVtYWluaW5nXG4gIH0gZWxzZSB7XG4gICAgbGVuZ3RoID0gTnVtYmVyKGxlbmd0aClcbiAgICBpZiAobGVuZ3RoID4gcmVtYWluaW5nKSB7XG4gICAgICBsZW5ndGggPSByZW1haW5pbmdcbiAgICB9XG4gIH1cblxuICAvLyBtdXN0IGJlIGFuIGV2ZW4gbnVtYmVyIG9mIGRpZ2l0c1xuICB2YXIgc3RyTGVuID0gc3RyaW5nLmxlbmd0aFxuICBpZiAoc3RyTGVuICUgMiAhPT0gMCkgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGhleCBzdHJpbmcnKVxuXG4gIGlmIChsZW5ndGggPiBzdHJMZW4gLyAyKSB7XG4gICAgbGVuZ3RoID0gc3RyTGVuIC8gMlxuICB9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgcGFyc2VkID0gcGFyc2VJbnQoc3RyaW5nLnN1YnN0cihpICogMiwgMiksIDE2KVxuICAgIGlmIChpc05hTihwYXJzZWQpKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaGV4IHN0cmluZycpXG4gICAgYnVmW29mZnNldCArIGldID0gcGFyc2VkXG4gIH1cbiAgcmV0dXJuIGlcbn1cblxuZnVuY3Rpb24gdXRmOFdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIodXRmOFRvQnl0ZXMoc3RyaW5nLCBidWYubGVuZ3RoIC0gb2Zmc2V0KSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gYXNjaWlXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKGFzY2lpVG9CeXRlcyhzdHJpbmcpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBiaW5hcnlXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBhc2NpaVdyaXRlKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gYmFzZTY0V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcihiYXNlNjRUb0J5dGVzKHN0cmluZyksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIHVjczJXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKHV0ZjE2bGVUb0J5dGVzKHN0cmluZywgYnVmLmxlbmd0aCAtIG9mZnNldCksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiB3cml0ZSAoc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCwgZW5jb2RpbmcpIHtcbiAgLy8gQnVmZmVyI3dyaXRlKHN0cmluZylcbiAgaWYgKG9mZnNldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZW5jb2RpbmcgPSAndXRmOCdcbiAgICBsZW5ndGggPSB0aGlzLmxlbmd0aFxuICAgIG9mZnNldCA9IDBcbiAgLy8gQnVmZmVyI3dyaXRlKHN0cmluZywgZW5jb2RpbmcpXG4gIH0gZWxzZSBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQgJiYgdHlwZW9mIG9mZnNldCA9PT0gJ3N0cmluZycpIHtcbiAgICBlbmNvZGluZyA9IG9mZnNldFxuICAgIGxlbmd0aCA9IHRoaXMubGVuZ3RoXG4gICAgb2Zmc2V0ID0gMFxuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nLCBvZmZzZXRbLCBsZW5ndGhdWywgZW5jb2RpbmddKVxuICB9IGVsc2UgaWYgKGlzRmluaXRlKG9mZnNldCkpIHtcbiAgICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gICAgaWYgKGlzRmluaXRlKGxlbmd0aCkpIHtcbiAgICAgIGxlbmd0aCA9IGxlbmd0aCB8IDBcbiAgICAgIGlmIChlbmNvZGluZyA9PT0gdW5kZWZpbmVkKSBlbmNvZGluZyA9ICd1dGY4J1xuICAgIH0gZWxzZSB7XG4gICAgICBlbmNvZGluZyA9IGxlbmd0aFxuICAgICAgbGVuZ3RoID0gdW5kZWZpbmVkXG4gICAgfVxuICAvLyBsZWdhY3kgd3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0LCBsZW5ndGgpIC0gcmVtb3ZlIGluIHYwLjEzXG4gIH0gZWxzZSB7XG4gICAgdmFyIHN3YXAgPSBlbmNvZGluZ1xuICAgIGVuY29kaW5nID0gb2Zmc2V0XG4gICAgb2Zmc2V0ID0gbGVuZ3RoIHwgMFxuICAgIGxlbmd0aCA9IHN3YXBcbiAgfVxuXG4gIHZhciByZW1haW5pbmcgPSB0aGlzLmxlbmd0aCAtIG9mZnNldFxuICBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQgfHwgbGVuZ3RoID4gcmVtYWluaW5nKSBsZW5ndGggPSByZW1haW5pbmdcblxuICBpZiAoKHN0cmluZy5sZW5ndGggPiAwICYmIChsZW5ndGggPCAwIHx8IG9mZnNldCA8IDApKSB8fCBvZmZzZXQgPiB0aGlzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdhdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcycpXG4gIH1cblxuICBpZiAoIWVuY29kaW5nKSBlbmNvZGluZyA9ICd1dGY4J1xuXG4gIHZhciBsb3dlcmVkQ2FzZSA9IGZhbHNlXG4gIGZvciAoOzspIHtcbiAgICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgICBjYXNlICdoZXgnOlxuICAgICAgICByZXR1cm4gaGV4V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAndXRmOCc6XG4gICAgICBjYXNlICd1dGYtOCc6XG4gICAgICAgIHJldHVybiB1dGY4V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAnYXNjaWknOlxuICAgICAgICByZXR1cm4gYXNjaWlXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgICByZXR1cm4gYmluYXJ5V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgICAgLy8gV2FybmluZzogbWF4TGVuZ3RoIG5vdCB0YWtlbiBpbnRvIGFjY291bnQgaW4gYmFzZTY0V3JpdGVcbiAgICAgICAgcmV0dXJuIGJhc2U2NFdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ3VjczInOlxuICAgICAgY2FzZSAndWNzLTInOlxuICAgICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICAgIHJldHVybiB1Y3MyV3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGxvd2VyZWRDYXNlKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jb2RpbmcpXG4gICAgICAgIGVuY29kaW5nID0gKCcnICsgZW5jb2RpbmcpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgbG93ZXJlZENhc2UgPSB0cnVlXG4gICAgfVxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24gdG9KU09OICgpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQnVmZmVyJyxcbiAgICBkYXRhOiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnIgfHwgdGhpcywgMClcbiAgfVxufVxuXG5mdW5jdGlvbiBiYXNlNjRTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIGlmIChzdGFydCA9PT0gMCAmJiBlbmQgPT09IGJ1Zi5sZW5ndGgpIHtcbiAgICByZXR1cm4gYmFzZTY0LmZyb21CeXRlQXJyYXkoYnVmKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBiYXNlNjQuZnJvbUJ5dGVBcnJheShidWYuc2xpY2Uoc3RhcnQsIGVuZCkpXG4gIH1cbn1cblxuZnVuY3Rpb24gdXRmOFNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIHJlcyA9ICcnXG4gIHZhciB0bXAgPSAnJ1xuICBlbmQgPSBNYXRoLm1pbihidWYubGVuZ3RoLCBlbmQpXG5cbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICBpZiAoYnVmW2ldIDw9IDB4N0YpIHtcbiAgICAgIHJlcyArPSBkZWNvZGVVdGY4Q2hhcih0bXApICsgU3RyaW5nLmZyb21DaGFyQ29kZShidWZbaV0pXG4gICAgICB0bXAgPSAnJ1xuICAgIH0gZWxzZSB7XG4gICAgICB0bXAgKz0gJyUnICsgYnVmW2ldLnRvU3RyaW5nKDE2KVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXMgKyBkZWNvZGVVdGY4Q2hhcih0bXApXG59XG5cbmZ1bmN0aW9uIGFzY2lpU2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgcmV0ID0gJydcbiAgZW5kID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgZW5kKVxuXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgcmV0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldICYgMHg3RilcbiAgfVxuICByZXR1cm4gcmV0XG59XG5cbmZ1bmN0aW9uIGJpbmFyeVNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIHJldCA9ICcnXG4gIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZClcblxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgIHJldCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ1ZltpXSlcbiAgfVxuICByZXR1cm4gcmV0XG59XG5cbmZ1bmN0aW9uIGhleFNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIGxlbiA9IGJ1Zi5sZW5ndGhcblxuICBpZiAoIXN0YXJ0IHx8IHN0YXJ0IDwgMCkgc3RhcnQgPSAwXG4gIGlmICghZW5kIHx8IGVuZCA8IDAgfHwgZW5kID4gbGVuKSBlbmQgPSBsZW5cblxuICB2YXIgb3V0ID0gJydcbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICBvdXQgKz0gdG9IZXgoYnVmW2ldKVxuICB9XG4gIHJldHVybiBvdXRcbn1cblxuZnVuY3Rpb24gdXRmMTZsZVNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIGJ5dGVzID0gYnVmLnNsaWNlKHN0YXJ0LCBlbmQpXG4gIHZhciByZXMgPSAnJ1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgcmVzICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZXNbaV0gKyBieXRlc1tpICsgMV0gKiAyNTYpXG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5CdWZmZXIucHJvdG90eXBlLnNsaWNlID0gZnVuY3Rpb24gc2xpY2UgKHN0YXJ0LCBlbmQpIHtcbiAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoXG4gIHN0YXJ0ID0gfn5zdGFydFxuICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZCA/IGxlbiA6IH5+ZW5kXG5cbiAgaWYgKHN0YXJ0IDwgMCkge1xuICAgIHN0YXJ0ICs9IGxlblxuICAgIGlmIChzdGFydCA8IDApIHN0YXJ0ID0gMFxuICB9IGVsc2UgaWYgKHN0YXJ0ID4gbGVuKSB7XG4gICAgc3RhcnQgPSBsZW5cbiAgfVxuXG4gIGlmIChlbmQgPCAwKSB7XG4gICAgZW5kICs9IGxlblxuICAgIGlmIChlbmQgPCAwKSBlbmQgPSAwXG4gIH0gZWxzZSBpZiAoZW5kID4gbGVuKSB7XG4gICAgZW5kID0gbGVuXG4gIH1cblxuICBpZiAoZW5kIDwgc3RhcnQpIGVuZCA9IHN0YXJ0XG5cbiAgdmFyIG5ld0J1ZlxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICBuZXdCdWYgPSBCdWZmZXIuX2F1Z21lbnQodGhpcy5zdWJhcnJheShzdGFydCwgZW5kKSlcbiAgfSBlbHNlIHtcbiAgICB2YXIgc2xpY2VMZW4gPSBlbmQgLSBzdGFydFxuICAgIG5ld0J1ZiA9IG5ldyBCdWZmZXIoc2xpY2VMZW4sIHVuZGVmaW5lZClcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNsaWNlTGVuOyBpKyspIHtcbiAgICAgIG5ld0J1ZltpXSA9IHRoaXNbaSArIHN0YXJ0XVxuICAgIH1cbiAgfVxuXG4gIGlmIChuZXdCdWYubGVuZ3RoKSBuZXdCdWYucGFyZW50ID0gdGhpcy5wYXJlbnQgfHwgdGhpc1xuXG4gIHJldHVybiBuZXdCdWZcbn1cblxuLypcbiAqIE5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgYnVmZmVyIGlzbid0IHRyeWluZyB0byB3cml0ZSBvdXQgb2YgYm91bmRzLlxuICovXG5mdW5jdGlvbiBjaGVja09mZnNldCAob2Zmc2V0LCBleHQsIGxlbmd0aCkge1xuICBpZiAoKG9mZnNldCAlIDEpICE9PSAwIHx8IG9mZnNldCA8IDApIHRocm93IG5ldyBSYW5nZUVycm9yKCdvZmZzZXQgaXMgbm90IHVpbnQnKVxuICBpZiAob2Zmc2V0ICsgZXh0ID4gbGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignVHJ5aW5nIHRvIGFjY2VzcyBiZXlvbmQgYnVmZmVyIGxlbmd0aCcpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnRMRSA9IGZ1bmN0aW9uIHJlYWRVSW50TEUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcblxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXRdXG4gIHZhciBtdWwgPSAxXG4gIHZhciBpID0gMFxuICB3aGlsZSAoKytpIDwgYnl0ZUxlbmd0aCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIGldICogbXVsXG4gIH1cblxuICByZXR1cm4gdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnRCRSA9IGZ1bmN0aW9uIHJlYWRVSW50QkUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG4gIH1cblxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXQgKyAtLWJ5dGVMZW5ndGhdXG4gIHZhciBtdWwgPSAxXG4gIHdoaWxlIChieXRlTGVuZ3RoID4gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIC0tYnl0ZUxlbmd0aF0gKiBtdWxcbiAgfVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDggPSBmdW5jdGlvbiByZWFkVUludDggKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAxLCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIHRoaXNbb2Zmc2V0XVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MTZMRSA9IGZ1bmN0aW9uIHJlYWRVSW50MTZMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gdGhpc1tvZmZzZXRdIHwgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDE2QkUgPSBmdW5jdGlvbiByZWFkVUludDE2QkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuICh0aGlzW29mZnNldF0gPDwgOCkgfCB0aGlzW29mZnNldCArIDFdXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQzMkxFID0gZnVuY3Rpb24gcmVhZFVJbnQzMkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICgodGhpc1tvZmZzZXRdKSB8XG4gICAgICAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KSB8XG4gICAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCAxNikpICtcbiAgICAgICh0aGlzW29mZnNldCArIDNdICogMHgxMDAwMDAwKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MzJCRSA9IGZ1bmN0aW9uIHJlYWRVSW50MzJCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAodGhpc1tvZmZzZXRdICogMHgxMDAwMDAwKSArXG4gICAgKCh0aGlzW29mZnNldCArIDFdIDw8IDE2KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgOCkgfFxuICAgIHRoaXNbb2Zmc2V0ICsgM10pXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludExFID0gZnVuY3Rpb24gcmVhZEludExFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG5cbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0XVxuICB2YXIgbXVsID0gMVxuICB2YXIgaSA9IDBcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyBpXSAqIG11bFxuICB9XG4gIG11bCAqPSAweDgwXG5cbiAgaWYgKHZhbCA+PSBtdWwpIHZhbCAtPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aClcblxuICByZXR1cm4gdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludEJFID0gZnVuY3Rpb24gcmVhZEludEJFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG5cbiAgdmFyIGkgPSBieXRlTGVuZ3RoXG4gIHZhciBtdWwgPSAxXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldCArIC0taV1cbiAgd2hpbGUgKGkgPiAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgLS1pXSAqIG11bFxuICB9XG4gIG11bCAqPSAweDgwXG5cbiAgaWYgKHZhbCA+PSBtdWwpIHZhbCAtPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aClcblxuICByZXR1cm4gdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDggPSBmdW5jdGlvbiByZWFkSW50OCAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDEsIHRoaXMubGVuZ3RoKVxuICBpZiAoISh0aGlzW29mZnNldF0gJiAweDgwKSkgcmV0dXJuICh0aGlzW29mZnNldF0pXG4gIHJldHVybiAoKDB4ZmYgLSB0aGlzW29mZnNldF0gKyAxKSAqIC0xKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQxNkxFID0gZnVuY3Rpb24gcmVhZEludDE2TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0XSB8ICh0aGlzW29mZnNldCArIDFdIDw8IDgpXG4gIHJldHVybiAodmFsICYgMHg4MDAwKSA/IHZhbCB8IDB4RkZGRjAwMDAgOiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MTZCRSA9IGZ1bmN0aW9uIHJlYWRJbnQxNkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldCArIDFdIHwgKHRoaXNbb2Zmc2V0XSA8PCA4KVxuICByZXR1cm4gKHZhbCAmIDB4ODAwMCkgPyB2YWwgfCAweEZGRkYwMDAwIDogdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDMyTEUgPSBmdW5jdGlvbiByZWFkSW50MzJMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAodGhpc1tvZmZzZXRdKSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOCkgfFxuICAgICh0aGlzW29mZnNldCArIDJdIDw8IDE2KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgM10gPDwgMjQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDMyQkUgPSBmdW5jdGlvbiByZWFkSW50MzJCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAodGhpc1tvZmZzZXRdIDw8IDI0KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgMTYpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCA4KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgM10pXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEZsb2F0TEUgPSBmdW5jdGlvbiByZWFkRmxvYXRMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgdHJ1ZSwgMjMsIDQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEZsb2F0QkUgPSBmdW5jdGlvbiByZWFkRmxvYXRCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgZmFsc2UsIDIzLCA0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWREb3VibGVMRSA9IGZ1bmN0aW9uIHJlYWREb3VibGVMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDgsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgdHJ1ZSwgNTIsIDgpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZERvdWJsZUJFID0gZnVuY3Rpb24gcmVhZERvdWJsZUJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgOCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCBmYWxzZSwgNTIsIDgpXG59XG5cbmZ1bmN0aW9uIGNoZWNrSW50IChidWYsIHZhbHVlLCBvZmZzZXQsIGV4dCwgbWF4LCBtaW4pIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYnVmKSkgdGhyb3cgbmV3IFR5cGVFcnJvcignYnVmZmVyIG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UnKVxuICBpZiAodmFsdWUgPiBtYXggfHwgdmFsdWUgPCBtaW4pIHRocm93IG5ldyBSYW5nZUVycm9yKCd2YWx1ZSBpcyBvdXQgb2YgYm91bmRzJylcbiAgaWYgKG9mZnNldCArIGV4dCA+IGJ1Zi5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdpbmRleCBvdXQgb2YgcmFuZ2UnKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludExFID0gZnVuY3Rpb24gd3JpdGVVSW50TEUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKSwgMClcblxuICB2YXIgbXVsID0gMVxuICB2YXIgaSA9IDBcbiAgdGhpc1tvZmZzZXRdID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICh2YWx1ZSAvIG11bCkgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludEJFID0gZnVuY3Rpb24gd3JpdGVVSW50QkUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKSwgMClcblxuICB2YXIgaSA9IGJ5dGVMZW5ndGggLSAxXG4gIHZhciBtdWwgPSAxXG4gIHRoaXNbb2Zmc2V0ICsgaV0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKC0taSA+PSAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICh2YWx1ZSAvIG11bCkgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDggPSBmdW5jdGlvbiB3cml0ZVVJbnQ4ICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDEsIDB4ZmYsIDApXG4gIGlmICghQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHZhbHVlID0gTWF0aC5mbG9vcih2YWx1ZSlcbiAgdGhpc1tvZmZzZXRdID0gdmFsdWVcbiAgcmV0dXJuIG9mZnNldCArIDFcbn1cblxuZnVuY3Rpb24gb2JqZWN0V3JpdGVVSW50MTYgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuKSB7XG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZmZmICsgdmFsdWUgKyAxXG4gIGZvciAodmFyIGkgPSAwLCBqID0gTWF0aC5taW4oYnVmLmxlbmd0aCAtIG9mZnNldCwgMik7IGkgPCBqOyBpKyspIHtcbiAgICBidWZbb2Zmc2V0ICsgaV0gPSAodmFsdWUgJiAoMHhmZiA8PCAoOCAqIChsaXR0bGVFbmRpYW4gPyBpIDogMSAtIGkpKSkpID4+PlxuICAgICAgKGxpdHRsZUVuZGlhbiA/IGkgOiAxIC0gaSkgKiA4XG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQxNkxFID0gZnVuY3Rpb24gd3JpdGVVSW50MTZMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweGZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9IHZhbHVlXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MTZCRSA9IGZ1bmN0aW9uIHdyaXRlVUludDE2QkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHhmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9IHZhbHVlXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuZnVuY3Rpb24gb2JqZWN0V3JpdGVVSW50MzIgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuKSB7XG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZmZmZmZmZiArIHZhbHVlICsgMVxuICBmb3IgKHZhciBpID0gMCwgaiA9IE1hdGgubWluKGJ1Zi5sZW5ndGggLSBvZmZzZXQsIDQpOyBpIDwgajsgaSsrKSB7XG4gICAgYnVmW29mZnNldCArIGldID0gKHZhbHVlID4+PiAobGl0dGxlRW5kaWFuID8gaSA6IDMgLSBpKSAqIDgpICYgMHhmZlxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MzJMRSA9IGZ1bmN0aW9uIHdyaXRlVUludDMyTEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHhmZmZmZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9ICh2YWx1ZSA+Pj4gMjQpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldF0gPSB2YWx1ZVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQzMkJFID0gZnVuY3Rpb24gd3JpdGVVSW50MzJCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweGZmZmZmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDI0KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDE2KVxuICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9IHZhbHVlXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludExFID0gZnVuY3Rpb24gd3JpdGVJbnRMRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgdmFyIGxpbWl0ID0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGggLSAxKVxuXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbGltaXQgLSAxLCAtbGltaXQpXG4gIH1cblxuICB2YXIgaSA9IDBcbiAgdmFyIG11bCA9IDFcbiAgdmFyIHN1YiA9IHZhbHVlIDwgMCA/IDEgOiAwXG4gIHRoaXNbb2Zmc2V0XSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoKytpIDwgYnl0ZUxlbmd0aCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAoKHZhbHVlIC8gbXVsKSA+PiAwKSAtIHN1YiAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnRCRSA9IGZ1bmN0aW9uIHdyaXRlSW50QkUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIHZhciBsaW1pdCA9IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoIC0gMSlcblxuICAgIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIGxpbWl0IC0gMSwgLWxpbWl0KVxuICB9XG5cbiAgdmFyIGkgPSBieXRlTGVuZ3RoIC0gMVxuICB2YXIgbXVsID0gMVxuICB2YXIgc3ViID0gdmFsdWUgPCAwID8gMSA6IDBcbiAgdGhpc1tvZmZzZXQgKyBpXSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoLS1pID49IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB0aGlzW29mZnNldCArIGldID0gKCh2YWx1ZSAvIG11bCkgPj4gMCkgLSBzdWIgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50OCA9IGZ1bmN0aW9uIHdyaXRlSW50OCAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAxLCAweDdmLCAtMHg4MClcbiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkgdmFsdWUgPSBNYXRoLmZsb29yKHZhbHVlKVxuICBpZiAodmFsdWUgPCAwKSB2YWx1ZSA9IDB4ZmYgKyB2YWx1ZSArIDFcbiAgdGhpc1tvZmZzZXRdID0gdmFsdWVcbiAgcmV0dXJuIG9mZnNldCArIDFcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDE2TEUgPSBmdW5jdGlvbiB3cml0ZUludDE2TEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHg3ZmZmLCAtMHg4MDAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSB2YWx1ZVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MTZCRSA9IGZ1bmN0aW9uIHdyaXRlSW50MTZCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweDdmZmYsIC0weDgwMDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDFdID0gdmFsdWVcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MzJMRSA9IGZ1bmN0aW9uIHdyaXRlSW50MzJMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweDdmZmZmZmZmLCAtMHg4MDAwMDAwMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gdmFsdWVcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDE2KVxuICAgIHRoaXNbb2Zmc2V0ICsgM10gPSAodmFsdWUgPj4+IDI0KVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDMyQkUgPSBmdW5jdGlvbiB3cml0ZUludDMyQkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHg3ZmZmZmZmZiwgLTB4ODAwMDAwMDApXG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZmZmZmZmZiArIHZhbHVlICsgMVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDI0KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDE2KVxuICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9IHZhbHVlXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuZnVuY3Rpb24gY2hlY2tJRUVFNzU0IChidWYsIHZhbHVlLCBvZmZzZXQsIGV4dCwgbWF4LCBtaW4pIHtcbiAgaWYgKHZhbHVlID4gbWF4IHx8IHZhbHVlIDwgbWluKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcigndmFsdWUgaXMgb3V0IG9mIGJvdW5kcycpXG4gIGlmIChvZmZzZXQgKyBleHQgPiBidWYubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignaW5kZXggb3V0IG9mIHJhbmdlJylcbiAgaWYgKG9mZnNldCA8IDApIHRocm93IG5ldyBSYW5nZUVycm9yKCdpbmRleCBvdXQgb2YgcmFuZ2UnKVxufVxuXG5mdW5jdGlvbiB3cml0ZUZsb2F0IChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIGNoZWNrSUVFRTc1NChidWYsIHZhbHVlLCBvZmZzZXQsIDQsIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzgsIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4KVxuICB9XG4gIGllZWU3NTQud3JpdGUoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIDIzLCA0KVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRmxvYXRMRSA9IGZ1bmN0aW9uIHdyaXRlRmxvYXRMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRmxvYXQodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSwgbm9Bc3NlcnQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVGbG9hdEJFID0gZnVuY3Rpb24gd3JpdGVGbG9hdEJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVGbG9hdCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSwgbm9Bc3NlcnQpXG59XG5cbmZ1bmN0aW9uIHdyaXRlRG91YmxlIChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIGNoZWNrSUVFRTc1NChidWYsIHZhbHVlLCBvZmZzZXQsIDgsIDEuNzk3NjkzMTM0ODYyMzE1N0UrMzA4LCAtMS43OTc2OTMxMzQ4NjIzMTU3RSszMDgpXG4gIH1cbiAgaWVlZTc1NC53cml0ZShidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgNTIsIDgpXG4gIHJldHVybiBvZmZzZXQgKyA4XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVEb3VibGVMRSA9IGZ1bmN0aW9uIHdyaXRlRG91YmxlTEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZURvdWJsZSh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlLCBub0Fzc2VydClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZURvdWJsZUJFID0gZnVuY3Rpb24gd3JpdGVEb3VibGVCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlLCBub0Fzc2VydClcbn1cblxuLy8gY29weSh0YXJnZXRCdWZmZXIsIHRhcmdldFN0YXJ0PTAsIHNvdXJjZVN0YXJ0PTAsIHNvdXJjZUVuZD1idWZmZXIubGVuZ3RoKVxuQnVmZmVyLnByb3RvdHlwZS5jb3B5ID0gZnVuY3Rpb24gY29weSAodGFyZ2V0LCB0YXJnZXRTdGFydCwgc3RhcnQsIGVuZCkge1xuICBpZiAoIXN0YXJ0KSBzdGFydCA9IDBcbiAgaWYgKCFlbmQgJiYgZW5kICE9PSAwKSBlbmQgPSB0aGlzLmxlbmd0aFxuICBpZiAodGFyZ2V0U3RhcnQgPj0gdGFyZ2V0Lmxlbmd0aCkgdGFyZ2V0U3RhcnQgPSB0YXJnZXQubGVuZ3RoXG4gIGlmICghdGFyZ2V0U3RhcnQpIHRhcmdldFN0YXJ0ID0gMFxuICBpZiAoZW5kID4gMCAmJiBlbmQgPCBzdGFydCkgZW5kID0gc3RhcnRcblxuICAvLyBDb3B5IDAgYnl0ZXM7IHdlJ3JlIGRvbmVcbiAgaWYgKGVuZCA9PT0gc3RhcnQpIHJldHVybiAwXG4gIGlmICh0YXJnZXQubGVuZ3RoID09PSAwIHx8IHRoaXMubGVuZ3RoID09PSAwKSByZXR1cm4gMFxuXG4gIC8vIEZhdGFsIGVycm9yIGNvbmRpdGlvbnNcbiAgaWYgKHRhcmdldFN0YXJ0IDwgMCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCd0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzJylcbiAgfVxuICBpZiAoc3RhcnQgPCAwIHx8IHN0YXJ0ID49IHRoaXMubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignc291cmNlU3RhcnQgb3V0IG9mIGJvdW5kcycpXG4gIGlmIChlbmQgPCAwKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignc291cmNlRW5kIG91dCBvZiBib3VuZHMnKVxuXG4gIC8vIEFyZSB3ZSBvb2I/XG4gIGlmIChlbmQgPiB0aGlzLmxlbmd0aCkgZW5kID0gdGhpcy5sZW5ndGhcbiAgaWYgKHRhcmdldC5sZW5ndGggLSB0YXJnZXRTdGFydCA8IGVuZCAtIHN0YXJ0KSB7XG4gICAgZW5kID0gdGFyZ2V0Lmxlbmd0aCAtIHRhcmdldFN0YXJ0ICsgc3RhcnRcbiAgfVxuXG4gIHZhciBsZW4gPSBlbmQgLSBzdGFydFxuXG4gIGlmIChsZW4gPCAxMDAwIHx8ICFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIHRhcmdldFtpICsgdGFyZ2V0U3RhcnRdID0gdGhpc1tpICsgc3RhcnRdXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHRhcmdldC5fc2V0KHRoaXMuc3ViYXJyYXkoc3RhcnQsIHN0YXJ0ICsgbGVuKSwgdGFyZ2V0U3RhcnQpXG4gIH1cblxuICByZXR1cm4gbGVuXG59XG5cbi8vIGZpbGwodmFsdWUsIHN0YXJ0PTAsIGVuZD1idWZmZXIubGVuZ3RoKVxuQnVmZmVyLnByb3RvdHlwZS5maWxsID0gZnVuY3Rpb24gZmlsbCAodmFsdWUsIHN0YXJ0LCBlbmQpIHtcbiAgaWYgKCF2YWx1ZSkgdmFsdWUgPSAwXG4gIGlmICghc3RhcnQpIHN0YXJ0ID0gMFxuICBpZiAoIWVuZCkgZW5kID0gdGhpcy5sZW5ndGhcblxuICBpZiAoZW5kIDwgc3RhcnQpIHRocm93IG5ldyBSYW5nZUVycm9yKCdlbmQgPCBzdGFydCcpXG5cbiAgLy8gRmlsbCAwIGJ5dGVzOyB3ZSdyZSBkb25lXG4gIGlmIChlbmQgPT09IHN0YXJ0KSByZXR1cm5cbiAgaWYgKHRoaXMubGVuZ3RoID09PSAwKSByZXR1cm5cblxuICBpZiAoc3RhcnQgPCAwIHx8IHN0YXJ0ID49IHRoaXMubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignc3RhcnQgb3V0IG9mIGJvdW5kcycpXG4gIGlmIChlbmQgPCAwIHx8IGVuZCA+IHRoaXMubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignZW5kIG91dCBvZiBib3VuZHMnKVxuXG4gIHZhciBpXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykge1xuICAgICAgdGhpc1tpXSA9IHZhbHVlXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciBieXRlcyA9IHV0ZjhUb0J5dGVzKHZhbHVlLnRvU3RyaW5nKCkpXG4gICAgdmFyIGxlbiA9IGJ5dGVzLmxlbmd0aFxuICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICAgIHRoaXNbaV0gPSBieXRlc1tpICUgbGVuXVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0aGlzXG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBgQXJyYXlCdWZmZXJgIHdpdGggdGhlICpjb3BpZWQqIG1lbW9yeSBvZiB0aGUgYnVmZmVyIGluc3RhbmNlLlxuICogQWRkZWQgaW4gTm9kZSAwLjEyLiBPbmx5IGF2YWlsYWJsZSBpbiBicm93c2VycyB0aGF0IHN1cHBvcnQgQXJyYXlCdWZmZXIuXG4gKi9cbkJ1ZmZlci5wcm90b3R5cGUudG9BcnJheUJ1ZmZlciA9IGZ1bmN0aW9uIHRvQXJyYXlCdWZmZXIgKCkge1xuICBpZiAodHlwZW9mIFVpbnQ4QXJyYXkgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgICByZXR1cm4gKG5ldyBCdWZmZXIodGhpcykpLmJ1ZmZlclxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgYnVmID0gbmV3IFVpbnQ4QXJyYXkodGhpcy5sZW5ndGgpXG4gICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gYnVmLmxlbmd0aDsgaSA8IGxlbjsgaSArPSAxKSB7XG4gICAgICAgIGJ1ZltpXSA9IHRoaXNbaV1cbiAgICAgIH1cbiAgICAgIHJldHVybiBidWYuYnVmZmVyXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0J1ZmZlci50b0FycmF5QnVmZmVyIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyJylcbiAgfVxufVxuXG4vLyBIRUxQRVIgRlVOQ1RJT05TXG4vLyA9PT09PT09PT09PT09PT09XG5cbnZhciBCUCA9IEJ1ZmZlci5wcm90b3R5cGVcblxuLyoqXG4gKiBBdWdtZW50IGEgVWludDhBcnJheSAqaW5zdGFuY2UqIChub3QgdGhlIFVpbnQ4QXJyYXkgY2xhc3MhKSB3aXRoIEJ1ZmZlciBtZXRob2RzXG4gKi9cbkJ1ZmZlci5fYXVnbWVudCA9IGZ1bmN0aW9uIF9hdWdtZW50IChhcnIpIHtcbiAgYXJyLmNvbnN0cnVjdG9yID0gQnVmZmVyXG4gIGFyci5faXNCdWZmZXIgPSB0cnVlXG5cbiAgLy8gc2F2ZSByZWZlcmVuY2UgdG8gb3JpZ2luYWwgVWludDhBcnJheSBzZXQgbWV0aG9kIGJlZm9yZSBvdmVyd3JpdGluZ1xuICBhcnIuX3NldCA9IGFyci5zZXRcblxuICAvLyBkZXByZWNhdGVkLCB3aWxsIGJlIHJlbW92ZWQgaW4gbm9kZSAwLjEzK1xuICBhcnIuZ2V0ID0gQlAuZ2V0XG4gIGFyci5zZXQgPSBCUC5zZXRcblxuICBhcnIud3JpdGUgPSBCUC53cml0ZVxuICBhcnIudG9TdHJpbmcgPSBCUC50b1N0cmluZ1xuICBhcnIudG9Mb2NhbGVTdHJpbmcgPSBCUC50b1N0cmluZ1xuICBhcnIudG9KU09OID0gQlAudG9KU09OXG4gIGFyci5lcXVhbHMgPSBCUC5lcXVhbHNcbiAgYXJyLmNvbXBhcmUgPSBCUC5jb21wYXJlXG4gIGFyci5pbmRleE9mID0gQlAuaW5kZXhPZlxuICBhcnIuY29weSA9IEJQLmNvcHlcbiAgYXJyLnNsaWNlID0gQlAuc2xpY2VcbiAgYXJyLnJlYWRVSW50TEUgPSBCUC5yZWFkVUludExFXG4gIGFyci5yZWFkVUludEJFID0gQlAucmVhZFVJbnRCRVxuICBhcnIucmVhZFVJbnQ4ID0gQlAucmVhZFVJbnQ4XG4gIGFyci5yZWFkVUludDE2TEUgPSBCUC5yZWFkVUludDE2TEVcbiAgYXJyLnJlYWRVSW50MTZCRSA9IEJQLnJlYWRVSW50MTZCRVxuICBhcnIucmVhZFVJbnQzMkxFID0gQlAucmVhZFVJbnQzMkxFXG4gIGFyci5yZWFkVUludDMyQkUgPSBCUC5yZWFkVUludDMyQkVcbiAgYXJyLnJlYWRJbnRMRSA9IEJQLnJlYWRJbnRMRVxuICBhcnIucmVhZEludEJFID0gQlAucmVhZEludEJFXG4gIGFyci5yZWFkSW50OCA9IEJQLnJlYWRJbnQ4XG4gIGFyci5yZWFkSW50MTZMRSA9IEJQLnJlYWRJbnQxNkxFXG4gIGFyci5yZWFkSW50MTZCRSA9IEJQLnJlYWRJbnQxNkJFXG4gIGFyci5yZWFkSW50MzJMRSA9IEJQLnJlYWRJbnQzMkxFXG4gIGFyci5yZWFkSW50MzJCRSA9IEJQLnJlYWRJbnQzMkJFXG4gIGFyci5yZWFkRmxvYXRMRSA9IEJQLnJlYWRGbG9hdExFXG4gIGFyci5yZWFkRmxvYXRCRSA9IEJQLnJlYWRGbG9hdEJFXG4gIGFyci5yZWFkRG91YmxlTEUgPSBCUC5yZWFkRG91YmxlTEVcbiAgYXJyLnJlYWREb3VibGVCRSA9IEJQLnJlYWREb3VibGVCRVxuICBhcnIud3JpdGVVSW50OCA9IEJQLndyaXRlVUludDhcbiAgYXJyLndyaXRlVUludExFID0gQlAud3JpdGVVSW50TEVcbiAgYXJyLndyaXRlVUludEJFID0gQlAud3JpdGVVSW50QkVcbiAgYXJyLndyaXRlVUludDE2TEUgPSBCUC53cml0ZVVJbnQxNkxFXG4gIGFyci53cml0ZVVJbnQxNkJFID0gQlAud3JpdGVVSW50MTZCRVxuICBhcnIud3JpdGVVSW50MzJMRSA9IEJQLndyaXRlVUludDMyTEVcbiAgYXJyLndyaXRlVUludDMyQkUgPSBCUC53cml0ZVVJbnQzMkJFXG4gIGFyci53cml0ZUludExFID0gQlAud3JpdGVJbnRMRVxuICBhcnIud3JpdGVJbnRCRSA9IEJQLndyaXRlSW50QkVcbiAgYXJyLndyaXRlSW50OCA9IEJQLndyaXRlSW50OFxuICBhcnIud3JpdGVJbnQxNkxFID0gQlAud3JpdGVJbnQxNkxFXG4gIGFyci53cml0ZUludDE2QkUgPSBCUC53cml0ZUludDE2QkVcbiAgYXJyLndyaXRlSW50MzJMRSA9IEJQLndyaXRlSW50MzJMRVxuICBhcnIud3JpdGVJbnQzMkJFID0gQlAud3JpdGVJbnQzMkJFXG4gIGFyci53cml0ZUZsb2F0TEUgPSBCUC53cml0ZUZsb2F0TEVcbiAgYXJyLndyaXRlRmxvYXRCRSA9IEJQLndyaXRlRmxvYXRCRVxuICBhcnIud3JpdGVEb3VibGVMRSA9IEJQLndyaXRlRG91YmxlTEVcbiAgYXJyLndyaXRlRG91YmxlQkUgPSBCUC53cml0ZURvdWJsZUJFXG4gIGFyci5maWxsID0gQlAuZmlsbFxuICBhcnIuaW5zcGVjdCA9IEJQLmluc3BlY3RcbiAgYXJyLnRvQXJyYXlCdWZmZXIgPSBCUC50b0FycmF5QnVmZmVyXG5cbiAgcmV0dXJuIGFyclxufVxuXG52YXIgSU5WQUxJRF9CQVNFNjRfUkUgPSAvW14rXFwvMC05QS16XFwtXS9nXG5cbmZ1bmN0aW9uIGJhc2U2NGNsZWFuIChzdHIpIHtcbiAgLy8gTm9kZSBzdHJpcHMgb3V0IGludmFsaWQgY2hhcmFjdGVycyBsaWtlIFxcbiBhbmQgXFx0IGZyb20gdGhlIHN0cmluZywgYmFzZTY0LWpzIGRvZXMgbm90XG4gIHN0ciA9IHN0cmluZ3RyaW0oc3RyKS5yZXBsYWNlKElOVkFMSURfQkFTRTY0X1JFLCAnJylcbiAgLy8gTm9kZSBjb252ZXJ0cyBzdHJpbmdzIHdpdGggbGVuZ3RoIDwgMiB0byAnJ1xuICBpZiAoc3RyLmxlbmd0aCA8IDIpIHJldHVybiAnJ1xuICAvLyBOb2RlIGFsbG93cyBmb3Igbm9uLXBhZGRlZCBiYXNlNjQgc3RyaW5ncyAobWlzc2luZyB0cmFpbGluZyA9PT0pLCBiYXNlNjQtanMgZG9lcyBub3RcbiAgd2hpbGUgKHN0ci5sZW5ndGggJSA0ICE9PSAwKSB7XG4gICAgc3RyID0gc3RyICsgJz0nXG4gIH1cbiAgcmV0dXJuIHN0clxufVxuXG5mdW5jdGlvbiBzdHJpbmd0cmltIChzdHIpIHtcbiAgaWYgKHN0ci50cmltKSByZXR1cm4gc3RyLnRyaW0oKVxuICByZXR1cm4gc3RyLnJlcGxhY2UoL15cXHMrfFxccyskL2csICcnKVxufVxuXG5mdW5jdGlvbiB0b0hleCAobikge1xuICBpZiAobiA8IDE2KSByZXR1cm4gJzAnICsgbi50b1N0cmluZygxNilcbiAgcmV0dXJuIG4udG9TdHJpbmcoMTYpXG59XG5cbmZ1bmN0aW9uIHV0ZjhUb0J5dGVzIChzdHJpbmcsIHVuaXRzKSB7XG4gIHVuaXRzID0gdW5pdHMgfHwgSW5maW5pdHlcbiAgdmFyIGNvZGVQb2ludFxuICB2YXIgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aFxuICB2YXIgbGVhZFN1cnJvZ2F0ZSA9IG51bGxcbiAgdmFyIGJ5dGVzID0gW11cbiAgdmFyIGkgPSAwXG5cbiAgZm9yICg7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgIGNvZGVQb2ludCA9IHN0cmluZy5jaGFyQ29kZUF0KGkpXG5cbiAgICAvLyBpcyBzdXJyb2dhdGUgY29tcG9uZW50XG4gICAgaWYgKGNvZGVQb2ludCA+IDB4RDdGRiAmJiBjb2RlUG9pbnQgPCAweEUwMDApIHtcbiAgICAgIC8vIGxhc3QgY2hhciB3YXMgYSBsZWFkXG4gICAgICBpZiAobGVhZFN1cnJvZ2F0ZSkge1xuICAgICAgICAvLyAyIGxlYWRzIGluIGEgcm93XG4gICAgICAgIGlmIChjb2RlUG9pbnQgPCAweERDMDApIHtcbiAgICAgICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICAgICAgICBsZWFkU3Vycm9nYXRlID0gY29kZVBvaW50XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyB2YWxpZCBzdXJyb2dhdGUgcGFpclxuICAgICAgICAgIGNvZGVQb2ludCA9IGxlYWRTdXJyb2dhdGUgLSAweEQ4MDAgPDwgMTAgfCBjb2RlUG9pbnQgLSAweERDMDAgfCAweDEwMDAwXG4gICAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IG51bGxcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gbm8gbGVhZCB5ZXRcblxuICAgICAgICBpZiAoY29kZVBvaW50ID4gMHhEQkZGKSB7XG4gICAgICAgICAgLy8gdW5leHBlY3RlZCB0cmFpbFxuICAgICAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH0gZWxzZSBpZiAoaSArIDEgPT09IGxlbmd0aCkge1xuICAgICAgICAgIC8vIHVucGFpcmVkIGxlYWRcbiAgICAgICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIHZhbGlkIGxlYWRcbiAgICAgICAgICBsZWFkU3Vycm9nYXRlID0gY29kZVBvaW50XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobGVhZFN1cnJvZ2F0ZSkge1xuICAgICAgLy8gdmFsaWQgYm1wIGNoYXIsIGJ1dCBsYXN0IGNoYXIgd2FzIGEgbGVhZFxuICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICBsZWFkU3Vycm9nYXRlID0gbnVsbFxuICAgIH1cblxuICAgIC8vIGVuY29kZSB1dGY4XG4gICAgaWYgKGNvZGVQb2ludCA8IDB4ODApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gMSkgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChjb2RlUG9pbnQpXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPCAweDgwMCkge1xuICAgICAgaWYgKCh1bml0cyAtPSAyKSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHg2IHwgMHhDMCxcbiAgICAgICAgY29kZVBvaW50ICYgMHgzRiB8IDB4ODBcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA8IDB4MTAwMDApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gMykgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChcbiAgICAgICAgY29kZVBvaW50ID4+IDB4QyB8IDB4RTAsXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDYgJiAweDNGIHwgMHg4MCxcbiAgICAgICAgY29kZVBvaW50ICYgMHgzRiB8IDB4ODBcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA8IDB4MjAwMDAwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDQpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDEyIHwgMHhGMCxcbiAgICAgICAgY29kZVBvaW50ID4+IDB4QyAmIDB4M0YgfCAweDgwLFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHg2ICYgMHgzRiB8IDB4ODAsXG4gICAgICAgIGNvZGVQb2ludCAmIDB4M0YgfCAweDgwXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb2RlIHBvaW50JylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYnl0ZXNcbn1cblxuZnVuY3Rpb24gYXNjaWlUb0J5dGVzIChzdHIpIHtcbiAgdmFyIGJ5dGVBcnJheSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgLy8gTm9kZSdzIGNvZGUgc2VlbXMgdG8gYmUgZG9pbmcgdGhpcyBhbmQgbm90ICYgMHg3Ri4uXG4gICAgYnl0ZUFycmF5LnB1c2goc3RyLmNoYXJDb2RlQXQoaSkgJiAweEZGKVxuICB9XG4gIHJldHVybiBieXRlQXJyYXlcbn1cblxuZnVuY3Rpb24gdXRmMTZsZVRvQnl0ZXMgKHN0ciwgdW5pdHMpIHtcbiAgdmFyIGMsIGhpLCBsb1xuICB2YXIgYnl0ZUFycmF5ID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoKHVuaXRzIC09IDIpIDwgMCkgYnJlYWtcblxuICAgIGMgPSBzdHIuY2hhckNvZGVBdChpKVxuICAgIGhpID0gYyA+PiA4XG4gICAgbG8gPSBjICUgMjU2XG4gICAgYnl0ZUFycmF5LnB1c2gobG8pXG4gICAgYnl0ZUFycmF5LnB1c2goaGkpXG4gIH1cblxuICByZXR1cm4gYnl0ZUFycmF5XG59XG5cbmZ1bmN0aW9uIGJhc2U2NFRvQnl0ZXMgKHN0cikge1xuICByZXR1cm4gYmFzZTY0LnRvQnl0ZUFycmF5KGJhc2U2NGNsZWFuKHN0cikpXG59XG5cbmZ1bmN0aW9uIGJsaXRCdWZmZXIgKHNyYywgZHN0LCBvZmZzZXQsIGxlbmd0aCkge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKChpICsgb2Zmc2V0ID49IGRzdC5sZW5ndGgpIHx8IChpID49IHNyYy5sZW5ndGgpKSBicmVha1xuICAgIGRzdFtpICsgb2Zmc2V0XSA9IHNyY1tpXVxuICB9XG4gIHJldHVybiBpXG59XG5cbmZ1bmN0aW9uIGRlY29kZVV0ZjhDaGFyIChzdHIpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHN0cilcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoMHhGRkZEKSAvLyBVVEYgOCBpbnZhbGlkIGNoYXJcbiAgfVxufVxuIiwidmFyIGxvb2t1cCA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJztcblxuOyhmdW5jdGlvbiAoZXhwb3J0cykge1xuXHQndXNlIHN0cmljdCc7XG5cbiAgdmFyIEFyciA9ICh0eXBlb2YgVWludDhBcnJheSAhPT0gJ3VuZGVmaW5lZCcpXG4gICAgPyBVaW50OEFycmF5XG4gICAgOiBBcnJheVxuXG5cdHZhciBQTFVTICAgPSAnKycuY2hhckNvZGVBdCgwKVxuXHR2YXIgU0xBU0ggID0gJy8nLmNoYXJDb2RlQXQoMClcblx0dmFyIE5VTUJFUiA9ICcwJy5jaGFyQ29kZUF0KDApXG5cdHZhciBMT1dFUiAgPSAnYScuY2hhckNvZGVBdCgwKVxuXHR2YXIgVVBQRVIgID0gJ0EnLmNoYXJDb2RlQXQoMClcblx0dmFyIFBMVVNfVVJMX1NBRkUgPSAnLScuY2hhckNvZGVBdCgwKVxuXHR2YXIgU0xBU0hfVVJMX1NBRkUgPSAnXycuY2hhckNvZGVBdCgwKVxuXG5cdGZ1bmN0aW9uIGRlY29kZSAoZWx0KSB7XG5cdFx0dmFyIGNvZGUgPSBlbHQuY2hhckNvZGVBdCgwKVxuXHRcdGlmIChjb2RlID09PSBQTFVTIHx8XG5cdFx0ICAgIGNvZGUgPT09IFBMVVNfVVJMX1NBRkUpXG5cdFx0XHRyZXR1cm4gNjIgLy8gJysnXG5cdFx0aWYgKGNvZGUgPT09IFNMQVNIIHx8XG5cdFx0ICAgIGNvZGUgPT09IFNMQVNIX1VSTF9TQUZFKVxuXHRcdFx0cmV0dXJuIDYzIC8vICcvJ1xuXHRcdGlmIChjb2RlIDwgTlVNQkVSKVxuXHRcdFx0cmV0dXJuIC0xIC8vbm8gbWF0Y2hcblx0XHRpZiAoY29kZSA8IE5VTUJFUiArIDEwKVxuXHRcdFx0cmV0dXJuIGNvZGUgLSBOVU1CRVIgKyAyNiArIDI2XG5cdFx0aWYgKGNvZGUgPCBVUFBFUiArIDI2KVxuXHRcdFx0cmV0dXJuIGNvZGUgLSBVUFBFUlxuXHRcdGlmIChjb2RlIDwgTE9XRVIgKyAyNilcblx0XHRcdHJldHVybiBjb2RlIC0gTE9XRVIgKyAyNlxuXHR9XG5cblx0ZnVuY3Rpb24gYjY0VG9CeXRlQXJyYXkgKGI2NCkge1xuXHRcdHZhciBpLCBqLCBsLCB0bXAsIHBsYWNlSG9sZGVycywgYXJyXG5cblx0XHRpZiAoYjY0Lmxlbmd0aCAlIDQgPiAwKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQnKVxuXHRcdH1cblxuXHRcdC8vIHRoZSBudW1iZXIgb2YgZXF1YWwgc2lnbnMgKHBsYWNlIGhvbGRlcnMpXG5cdFx0Ly8gaWYgdGhlcmUgYXJlIHR3byBwbGFjZWhvbGRlcnMsIHRoYW4gdGhlIHR3byBjaGFyYWN0ZXJzIGJlZm9yZSBpdFxuXHRcdC8vIHJlcHJlc2VudCBvbmUgYnl0ZVxuXHRcdC8vIGlmIHRoZXJlIGlzIG9ubHkgb25lLCB0aGVuIHRoZSB0aHJlZSBjaGFyYWN0ZXJzIGJlZm9yZSBpdCByZXByZXNlbnQgMiBieXRlc1xuXHRcdC8vIHRoaXMgaXMganVzdCBhIGNoZWFwIGhhY2sgdG8gbm90IGRvIGluZGV4T2YgdHdpY2Vcblx0XHR2YXIgbGVuID0gYjY0Lmxlbmd0aFxuXHRcdHBsYWNlSG9sZGVycyA9ICc9JyA9PT0gYjY0LmNoYXJBdChsZW4gLSAyKSA/IDIgOiAnPScgPT09IGI2NC5jaGFyQXQobGVuIC0gMSkgPyAxIDogMFxuXG5cdFx0Ly8gYmFzZTY0IGlzIDQvMyArIHVwIHRvIHR3byBjaGFyYWN0ZXJzIG9mIHRoZSBvcmlnaW5hbCBkYXRhXG5cdFx0YXJyID0gbmV3IEFycihiNjQubGVuZ3RoICogMyAvIDQgLSBwbGFjZUhvbGRlcnMpXG5cblx0XHQvLyBpZiB0aGVyZSBhcmUgcGxhY2Vob2xkZXJzLCBvbmx5IGdldCB1cCB0byB0aGUgbGFzdCBjb21wbGV0ZSA0IGNoYXJzXG5cdFx0bCA9IHBsYWNlSG9sZGVycyA+IDAgPyBiNjQubGVuZ3RoIC0gNCA6IGI2NC5sZW5ndGhcblxuXHRcdHZhciBMID0gMFxuXG5cdFx0ZnVuY3Rpb24gcHVzaCAodikge1xuXHRcdFx0YXJyW0wrK10gPSB2XG5cdFx0fVxuXG5cdFx0Zm9yIChpID0gMCwgaiA9IDA7IGkgPCBsOyBpICs9IDQsIGogKz0gMykge1xuXHRcdFx0dG1wID0gKGRlY29kZShiNjQuY2hhckF0KGkpKSA8PCAxOCkgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDEpKSA8PCAxMikgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDIpKSA8PCA2KSB8IGRlY29kZShiNjQuY2hhckF0KGkgKyAzKSlcblx0XHRcdHB1c2goKHRtcCAmIDB4RkYwMDAwKSA+PiAxNilcblx0XHRcdHB1c2goKHRtcCAmIDB4RkYwMCkgPj4gOClcblx0XHRcdHB1c2godG1wICYgMHhGRilcblx0XHR9XG5cblx0XHRpZiAocGxhY2VIb2xkZXJzID09PSAyKSB7XG5cdFx0XHR0bXAgPSAoZGVjb2RlKGI2NC5jaGFyQXQoaSkpIDw8IDIpIHwgKGRlY29kZShiNjQuY2hhckF0KGkgKyAxKSkgPj4gNClcblx0XHRcdHB1c2godG1wICYgMHhGRilcblx0XHR9IGVsc2UgaWYgKHBsYWNlSG9sZGVycyA9PT0gMSkge1xuXHRcdFx0dG1wID0gKGRlY29kZShiNjQuY2hhckF0KGkpKSA8PCAxMCkgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDEpKSA8PCA0KSB8IChkZWNvZGUoYjY0LmNoYXJBdChpICsgMikpID4+IDIpXG5cdFx0XHRwdXNoKCh0bXAgPj4gOCkgJiAweEZGKVxuXHRcdFx0cHVzaCh0bXAgJiAweEZGKVxuXHRcdH1cblxuXHRcdHJldHVybiBhcnJcblx0fVxuXG5cdGZ1bmN0aW9uIHVpbnQ4VG9CYXNlNjQgKHVpbnQ4KSB7XG5cdFx0dmFyIGksXG5cdFx0XHRleHRyYUJ5dGVzID0gdWludDgubGVuZ3RoICUgMywgLy8gaWYgd2UgaGF2ZSAxIGJ5dGUgbGVmdCwgcGFkIDIgYnl0ZXNcblx0XHRcdG91dHB1dCA9IFwiXCIsXG5cdFx0XHR0ZW1wLCBsZW5ndGhcblxuXHRcdGZ1bmN0aW9uIGVuY29kZSAobnVtKSB7XG5cdFx0XHRyZXR1cm4gbG9va3VwLmNoYXJBdChudW0pXG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gdHJpcGxldFRvQmFzZTY0IChudW0pIHtcblx0XHRcdHJldHVybiBlbmNvZGUobnVtID4+IDE4ICYgMHgzRikgKyBlbmNvZGUobnVtID4+IDEyICYgMHgzRikgKyBlbmNvZGUobnVtID4+IDYgJiAweDNGKSArIGVuY29kZShudW0gJiAweDNGKVxuXHRcdH1cblxuXHRcdC8vIGdvIHRocm91Z2ggdGhlIGFycmF5IGV2ZXJ5IHRocmVlIGJ5dGVzLCB3ZSdsbCBkZWFsIHdpdGggdHJhaWxpbmcgc3R1ZmYgbGF0ZXJcblx0XHRmb3IgKGkgPSAwLCBsZW5ndGggPSB1aW50OC5sZW5ndGggLSBleHRyYUJ5dGVzOyBpIDwgbGVuZ3RoOyBpICs9IDMpIHtcblx0XHRcdHRlbXAgPSAodWludDhbaV0gPDwgMTYpICsgKHVpbnQ4W2kgKyAxXSA8PCA4KSArICh1aW50OFtpICsgMl0pXG5cdFx0XHRvdXRwdXQgKz0gdHJpcGxldFRvQmFzZTY0KHRlbXApXG5cdFx0fVxuXG5cdFx0Ly8gcGFkIHRoZSBlbmQgd2l0aCB6ZXJvcywgYnV0IG1ha2Ugc3VyZSB0byBub3QgZm9yZ2V0IHRoZSBleHRyYSBieXRlc1xuXHRcdHN3aXRjaCAoZXh0cmFCeXRlcykge1xuXHRcdFx0Y2FzZSAxOlxuXHRcdFx0XHR0ZW1wID0gdWludDhbdWludDgubGVuZ3RoIC0gMV1cblx0XHRcdFx0b3V0cHV0ICs9IGVuY29kZSh0ZW1wID4+IDIpXG5cdFx0XHRcdG91dHB1dCArPSBlbmNvZGUoKHRlbXAgPDwgNCkgJiAweDNGKVxuXHRcdFx0XHRvdXRwdXQgKz0gJz09J1xuXHRcdFx0XHRicmVha1xuXHRcdFx0Y2FzZSAyOlxuXHRcdFx0XHR0ZW1wID0gKHVpbnQ4W3VpbnQ4Lmxlbmd0aCAtIDJdIDw8IDgpICsgKHVpbnQ4W3VpbnQ4Lmxlbmd0aCAtIDFdKVxuXHRcdFx0XHRvdXRwdXQgKz0gZW5jb2RlKHRlbXAgPj4gMTApXG5cdFx0XHRcdG91dHB1dCArPSBlbmNvZGUoKHRlbXAgPj4gNCkgJiAweDNGKVxuXHRcdFx0XHRvdXRwdXQgKz0gZW5jb2RlKCh0ZW1wIDw8IDIpICYgMHgzRilcblx0XHRcdFx0b3V0cHV0ICs9ICc9J1xuXHRcdFx0XHRicmVha1xuXHRcdH1cblxuXHRcdHJldHVybiBvdXRwdXRcblx0fVxuXG5cdGV4cG9ydHMudG9CeXRlQXJyYXkgPSBiNjRUb0J5dGVBcnJheVxuXHRleHBvcnRzLmZyb21CeXRlQXJyYXkgPSB1aW50OFRvQmFzZTY0XG59KHR5cGVvZiBleHBvcnRzID09PSAndW5kZWZpbmVkJyA/ICh0aGlzLmJhc2U2NGpzID0ge30pIDogZXhwb3J0cykpXG4iLCJleHBvcnRzLnJlYWQgPSBmdW5jdGlvbiAoYnVmZmVyLCBvZmZzZXQsIGlzTEUsIG1MZW4sIG5CeXRlcykge1xuICB2YXIgZSwgbVxuICB2YXIgZUxlbiA9IG5CeXRlcyAqIDggLSBtTGVuIC0gMVxuICB2YXIgZU1heCA9ICgxIDw8IGVMZW4pIC0gMVxuICB2YXIgZUJpYXMgPSBlTWF4ID4+IDFcbiAgdmFyIG5CaXRzID0gLTdcbiAgdmFyIGkgPSBpc0xFID8gKG5CeXRlcyAtIDEpIDogMFxuICB2YXIgZCA9IGlzTEUgPyAtMSA6IDFcbiAgdmFyIHMgPSBidWZmZXJbb2Zmc2V0ICsgaV1cblxuICBpICs9IGRcblxuICBlID0gcyAmICgoMSA8PCAoLW5CaXRzKSkgLSAxKVxuICBzID4+PSAoLW5CaXRzKVxuICBuQml0cyArPSBlTGVuXG4gIGZvciAoOyBuQml0cyA+IDA7IGUgPSBlICogMjU2ICsgYnVmZmVyW29mZnNldCArIGldLCBpICs9IGQsIG5CaXRzIC09IDgpIHt9XG5cbiAgbSA9IGUgJiAoKDEgPDwgKC1uQml0cykpIC0gMSlcbiAgZSA+Pj0gKC1uQml0cylcbiAgbkJpdHMgKz0gbUxlblxuICBmb3IgKDsgbkJpdHMgPiAwOyBtID0gbSAqIDI1NiArIGJ1ZmZlcltvZmZzZXQgKyBpXSwgaSArPSBkLCBuQml0cyAtPSA4KSB7fVxuXG4gIGlmIChlID09PSAwKSB7XG4gICAgZSA9IDEgLSBlQmlhc1xuICB9IGVsc2UgaWYgKGUgPT09IGVNYXgpIHtcbiAgICByZXR1cm4gbSA/IE5hTiA6ICgocyA/IC0xIDogMSkgKiBJbmZpbml0eSlcbiAgfSBlbHNlIHtcbiAgICBtID0gbSArIE1hdGgucG93KDIsIG1MZW4pXG4gICAgZSA9IGUgLSBlQmlhc1xuICB9XG4gIHJldHVybiAocyA/IC0xIDogMSkgKiBtICogTWF0aC5wb3coMiwgZSAtIG1MZW4pXG59XG5cbmV4cG9ydHMud3JpdGUgPSBmdW5jdGlvbiAoYnVmZmVyLCB2YWx1ZSwgb2Zmc2V0LCBpc0xFLCBtTGVuLCBuQnl0ZXMpIHtcbiAgdmFyIGUsIG0sIGNcbiAgdmFyIGVMZW4gPSBuQnl0ZXMgKiA4IC0gbUxlbiAtIDFcbiAgdmFyIGVNYXggPSAoMSA8PCBlTGVuKSAtIDFcbiAgdmFyIGVCaWFzID0gZU1heCA+PiAxXG4gIHZhciBydCA9IChtTGVuID09PSAyMyA/IE1hdGgucG93KDIsIC0yNCkgLSBNYXRoLnBvdygyLCAtNzcpIDogMClcbiAgdmFyIGkgPSBpc0xFID8gMCA6IChuQnl0ZXMgLSAxKVxuICB2YXIgZCA9IGlzTEUgPyAxIDogLTFcbiAgdmFyIHMgPSB2YWx1ZSA8IDAgfHwgKHZhbHVlID09PSAwICYmIDEgLyB2YWx1ZSA8IDApID8gMSA6IDBcblxuICB2YWx1ZSA9IE1hdGguYWJzKHZhbHVlKVxuXG4gIGlmIChpc05hTih2YWx1ZSkgfHwgdmFsdWUgPT09IEluZmluaXR5KSB7XG4gICAgbSA9IGlzTmFOKHZhbHVlKSA/IDEgOiAwXG4gICAgZSA9IGVNYXhcbiAgfSBlbHNlIHtcbiAgICBlID0gTWF0aC5mbG9vcihNYXRoLmxvZyh2YWx1ZSkgLyBNYXRoLkxOMilcbiAgICBpZiAodmFsdWUgKiAoYyA9IE1hdGgucG93KDIsIC1lKSkgPCAxKSB7XG4gICAgICBlLS1cbiAgICAgIGMgKj0gMlxuICAgIH1cbiAgICBpZiAoZSArIGVCaWFzID49IDEpIHtcbiAgICAgIHZhbHVlICs9IHJ0IC8gY1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSArPSBydCAqIE1hdGgucG93KDIsIDEgLSBlQmlhcylcbiAgICB9XG4gICAgaWYgKHZhbHVlICogYyA+PSAyKSB7XG4gICAgICBlKytcbiAgICAgIGMgLz0gMlxuICAgIH1cblxuICAgIGlmIChlICsgZUJpYXMgPj0gZU1heCkge1xuICAgICAgbSA9IDBcbiAgICAgIGUgPSBlTWF4XG4gICAgfSBlbHNlIGlmIChlICsgZUJpYXMgPj0gMSkge1xuICAgICAgbSA9ICh2YWx1ZSAqIGMgLSAxKSAqIE1hdGgucG93KDIsIG1MZW4pXG4gICAgICBlID0gZSArIGVCaWFzXG4gICAgfSBlbHNlIHtcbiAgICAgIG0gPSB2YWx1ZSAqIE1hdGgucG93KDIsIGVCaWFzIC0gMSkgKiBNYXRoLnBvdygyLCBtTGVuKVxuICAgICAgZSA9IDBcbiAgICB9XG4gIH1cblxuICBmb3IgKDsgbUxlbiA+PSA4OyBidWZmZXJbb2Zmc2V0ICsgaV0gPSBtICYgMHhmZiwgaSArPSBkLCBtIC89IDI1NiwgbUxlbiAtPSA4KSB7fVxuXG4gIGUgPSAoZSA8PCBtTGVuKSB8IG1cbiAgZUxlbiArPSBtTGVuXG4gIGZvciAoOyBlTGVuID4gMDsgYnVmZmVyW29mZnNldCArIGldID0gZSAmIDB4ZmYsIGkgKz0gZCwgZSAvPSAyNTYsIGVMZW4gLT0gOCkge31cblxuICBidWZmZXJbb2Zmc2V0ICsgaSAtIGRdIHw9IHMgKiAxMjhcbn1cbiIsIlxuLyoqXG4gKiBpc0FycmF5XG4gKi9cblxudmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xuXG4vKipcbiAqIHRvU3RyaW5nXG4gKi9cblxudmFyIHN0ciA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7XG5cbi8qKlxuICogV2hldGhlciBvciBub3QgdGhlIGdpdmVuIGB2YWxgXG4gKiBpcyBhbiBhcnJheS5cbiAqXG4gKiBleGFtcGxlOlxuICpcbiAqICAgICAgICBpc0FycmF5KFtdKTtcbiAqICAgICAgICAvLyA+IHRydWVcbiAqICAgICAgICBpc0FycmF5KGFyZ3VtZW50cyk7XG4gKiAgICAgICAgLy8gPiBmYWxzZVxuICogICAgICAgIGlzQXJyYXkoJycpO1xuICogICAgICAgIC8vID4gZmFsc2VcbiAqXG4gKiBAcGFyYW0ge21peGVkfSB2YWxcbiAqIEByZXR1cm4ge2Jvb2x9XG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBpc0FycmF5IHx8IGZ1bmN0aW9uICh2YWwpIHtcbiAgcmV0dXJuICEhIHZhbCAmJiAnW29iamVjdCBBcnJheV0nID09IHN0ci5jYWxsKHZhbCk7XG59O1xuIiwiLy8gc2hpbSBmb3IgdXNpbmcgcHJvY2VzcyBpbiBicm93c2VyXG5cbnZhciBwcm9jZXNzID0gbW9kdWxlLmV4cG9ydHMgPSB7fTtcbnZhciBxdWV1ZSA9IFtdO1xudmFyIGRyYWluaW5nID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGRyYWluUXVldWUoKSB7XG4gICAgaWYgKGRyYWluaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZHJhaW5pbmcgPSB0cnVlO1xuICAgIHZhciBjdXJyZW50UXVldWU7XG4gICAgdmFyIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB3aGlsZShsZW4pIHtcbiAgICAgICAgY3VycmVudFF1ZXVlID0gcXVldWU7XG4gICAgICAgIHF1ZXVlID0gW107XG4gICAgICAgIHZhciBpID0gLTE7XG4gICAgICAgIHdoaWxlICgrK2kgPCBsZW4pIHtcbiAgICAgICAgICAgIGN1cnJlbnRRdWV1ZVtpXSgpO1xuICAgICAgICB9XG4gICAgICAgIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB9XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbn1cbnByb2Nlc3MubmV4dFRpY2sgPSBmdW5jdGlvbiAoZnVuKSB7XG4gICAgcXVldWUucHVzaChmdW4pO1xuICAgIGlmICghZHJhaW5pbmcpIHtcbiAgICAgICAgc2V0VGltZW91dChkcmFpblF1ZXVlLCAwKTtcbiAgICB9XG59O1xuXG5wcm9jZXNzLnRpdGxlID0gJ2Jyb3dzZXInO1xucHJvY2Vzcy5icm93c2VyID0gdHJ1ZTtcbnByb2Nlc3MuZW52ID0ge307XG5wcm9jZXNzLmFyZ3YgPSBbXTtcbnByb2Nlc3MudmVyc2lvbiA9ICcnOyAvLyBlbXB0eSBzdHJpbmcgdG8gYXZvaWQgcmVnZXhwIGlzc3Vlc1xucHJvY2Vzcy52ZXJzaW9ucyA9IHt9O1xuXG5mdW5jdGlvbiBub29wKCkge31cblxucHJvY2Vzcy5vbiA9IG5vb3A7XG5wcm9jZXNzLmFkZExpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3Mub25jZSA9IG5vb3A7XG5wcm9jZXNzLm9mZiA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUxpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3MucmVtb3ZlQWxsTGlzdGVuZXJzID0gbm9vcDtcbnByb2Nlc3MuZW1pdCA9IG5vb3A7XG5cbnByb2Nlc3MuYmluZGluZyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcblxuLy8gVE9ETyhzaHR5bG1hbilcbnByb2Nlc3MuY3dkID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gJy8nIH07XG5wcm9jZXNzLmNoZGlyID0gZnVuY3Rpb24gKGRpcikge1xuICAgIHRocm93IG5ldyBFcnJvcigncHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xucHJvY2Vzcy51bWFzayA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfTtcbiIsIihmdW5jdGlvbiAoQnVmZmVyKXtcbihmdW5jdGlvbiAoKSB7XG4gIFwidXNlIHN0cmljdFwiO1xuXG4gIGZ1bmN0aW9uIGJ0b2Eoc3RyKSB7XG4gICAgdmFyIGJ1ZmZlclxuICAgICAgO1xuXG4gICAgaWYgKHN0ciBpbnN0YW5jZW9mIEJ1ZmZlcikge1xuICAgICAgYnVmZmVyID0gc3RyO1xuICAgIH0gZWxzZSB7XG4gICAgICBidWZmZXIgPSBuZXcgQnVmZmVyKHN0ci50b1N0cmluZygpLCAnYmluYXJ5Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1ZmZlci50b1N0cmluZygnYmFzZTY0Jyk7XG4gIH1cblxuICBtb2R1bGUuZXhwb3J0cyA9IGJ0b2E7XG59KCkpO1xuXG59KS5jYWxsKHRoaXMscmVxdWlyZShcImJ1ZmZlclwiKS5CdWZmZXIpXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldDp1dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJbTV2WkdWZmJXOWtkV3hsY3k5aWRHOWhMMmx1WkdWNExtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdRVUZCUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVNJc0ltWnBiR1VpT2lKblpXNWxjbUYwWldRdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lLR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdYQ0oxYzJVZ2MzUnlhV04wWENJN1hHNWNiaUFnWm5WdVkzUnBiMjRnWW5SdllTaHpkSElwSUh0Y2JpQWdJQ0IyWVhJZ1luVm1abVZ5WEc0Z0lDQWdJQ0E3WEc1Y2JpQWdJQ0JwWmlBb2MzUnlJR2x1YzNSaGJtTmxiMllnUW5WbVptVnlLU0I3WEc0Z0lDQWdJQ0JpZFdabVpYSWdQU0J6ZEhJN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJR0oxWm1abGNpQTlJRzVsZHlCQ2RXWm1aWElvYzNSeUxuUnZVM1J5YVc1bktDa3NJQ2RpYVc1aGNua25LVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z1luVm1abVZ5TG5SdlUzUnlhVzVuS0NkaVlYTmxOalFuS1R0Y2JpQWdmVnh1WEc0Z0lHMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ1luUnZZVHRjYm4wb0tTazdYRzRpWFgwPSIsIi8qIGpzaGludCBub2RlOiB0cnVlICovXG4oZnVuY3Rpb24gKCkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuXG4gICAgZnVuY3Rpb24gQ29va2llQWNjZXNzSW5mbyhkb21haW4sIHBhdGgsIHNlY3VyZSwgc2NyaXB0KSB7XG4gICAgICAgIGlmICh0aGlzIGluc3RhbmNlb2YgQ29va2llQWNjZXNzSW5mbykge1xuICAgICAgICAgICAgdGhpcy5kb21haW4gPSBkb21haW4gfHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5wYXRoID0gcGF0aCB8fCBcIi9cIjtcbiAgICAgICAgICAgIHRoaXMuc2VjdXJlID0gISFzZWN1cmU7XG4gICAgICAgICAgICB0aGlzLnNjcmlwdCA9ICEhc2NyaXB0O1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBDb29raWVBY2Nlc3NJbmZvKGRvbWFpbiwgcGF0aCwgc2VjdXJlLCBzY3JpcHQpO1xuICAgIH1cbiAgICBleHBvcnRzLkNvb2tpZUFjY2Vzc0luZm8gPSBDb29raWVBY2Nlc3NJbmZvO1xuXG4gICAgZnVuY3Rpb24gQ29va2llKGNvb2tpZXN0ciwgcmVxdWVzdF9kb21haW4sIHJlcXVlc3RfcGF0aCkge1xuICAgICAgICBpZiAoY29va2llc3RyIGluc3RhbmNlb2YgQ29va2llKSB7XG4gICAgICAgICAgICByZXR1cm4gY29va2llc3RyO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzIGluc3RhbmNlb2YgQ29va2llKSB7XG4gICAgICAgICAgICB0aGlzLm5hbWUgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmV4cGlyYXRpb25fZGF0ZSA9IEluZmluaXR5O1xuICAgICAgICAgICAgdGhpcy5wYXRoID0gU3RyaW5nKHJlcXVlc3RfcGF0aCB8fCBcIi9cIik7XG4gICAgICAgICAgICB0aGlzLmV4cGxpY2l0X3BhdGggPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZG9tYWluID0gcmVxdWVzdF9kb21haW4gfHwgbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZXhwbGljaXRfZG9tYWluID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnNlY3VyZSA9IGZhbHNlOyAvL2hvdyB0byBkZWZpbmUgZGVmYXVsdD9cbiAgICAgICAgICAgIHRoaXMubm9zY3JpcHQgPSBmYWxzZTsgLy9odHRwb25seVxuICAgICAgICAgICAgaWYgKGNvb2tpZXN0cikge1xuICAgICAgICAgICAgICAgIHRoaXMucGFyc2UoY29va2llc3RyLCByZXF1ZXN0X2RvbWFpbiwgcmVxdWVzdF9wYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQ29va2llKGNvb2tpZXN0cik7XG4gICAgfVxuICAgIGV4cG9ydHMuQ29va2llID0gQ29va2llO1xuXG4gICAgQ29va2llLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgICAgICB2YXIgc3RyID0gW3RoaXMubmFtZSArIFwiPVwiICsgdGhpcy52YWx1ZV07XG4gICAgICAgIGlmICh0aGlzLmV4cGlyYXRpb25fZGF0ZSAhPT0gSW5maW5pdHkpIHtcbiAgICAgICAgICAgIHN0ci5wdXNoKFwiZXhwaXJlcz1cIiArIChuZXcgRGF0ZSh0aGlzLmV4cGlyYXRpb25fZGF0ZSkpLnRvR01UU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRvbWFpbikge1xuICAgICAgICAgICAgc3RyLnB1c2goXCJkb21haW49XCIgKyB0aGlzLmRvbWFpbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucGF0aCkge1xuICAgICAgICAgICAgc3RyLnB1c2goXCJwYXRoPVwiICsgdGhpcy5wYXRoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zZWN1cmUpIHtcbiAgICAgICAgICAgIHN0ci5wdXNoKFwic2VjdXJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm5vc2NyaXB0KSB7XG4gICAgICAgICAgICBzdHIucHVzaChcImh0dHBvbmx5XCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdHIuam9pbihcIjsgXCIpO1xuICAgIH07XG5cbiAgICBDb29raWUucHJvdG90eXBlLnRvVmFsdWVTdHJpbmcgPSBmdW5jdGlvbiB0b1ZhbHVlU3RyaW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uYW1lICsgXCI9XCIgKyB0aGlzLnZhbHVlO1xuICAgIH07XG5cbiAgICB2YXIgY29va2llX3N0cl9zcGxpdHRlciA9IC9bOl0oPz1cXHMqW2EtekEtWjAtOV9cXC1dK1xccypbPV0pL2c7XG4gICAgQ29va2llLnByb3RvdHlwZS5wYXJzZSA9IGZ1bmN0aW9uIHBhcnNlKHN0ciwgcmVxdWVzdF9kb21haW4sIHJlcXVlc3RfcGF0aCkge1xuICAgICAgICBpZiAodGhpcyBpbnN0YW5jZW9mIENvb2tpZSkge1xuICAgICAgICAgICAgdmFyIHBhcnRzID0gc3RyLnNwbGl0KFwiO1wiKS5maWx0ZXIoZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhIXZhbHVlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHBhaXIgPSBwYXJ0c1swXS5tYXRjaCgvKFtePV0rKT0oW1xcc1xcU10qKS8pLFxuICAgICAgICAgICAgICAgIGtleSA9IHBhaXJbMV0sXG4gICAgICAgICAgICAgICAgdmFsdWUgPSBwYWlyWzJdLFxuICAgICAgICAgICAgICAgIGk7XG4gICAgICAgICAgICB0aGlzLm5hbWUgPSBrZXk7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgICAgIGZvciAoaSA9IDE7IGkgPCBwYXJ0cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgICAgICAgIHBhaXIgPSBwYXJ0c1tpXS5tYXRjaCgvKFtePV0rKSg/Oj0oW1xcc1xcU10qKSk/Lyk7XG4gICAgICAgICAgICAgICAga2V5ID0gcGFpclsxXS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhaXJbMl07XG4gICAgICAgICAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiaHR0cG9ubHlcIjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3NjcmlwdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJleHBpcmVzXCI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXhwaXJhdGlvbl9kYXRlID0gdmFsdWUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bWJlcihEYXRlLnBhcnNlKHZhbHVlKSkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZmluaXR5O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwicGF0aFwiOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhdGggPSB2YWx1ZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUudHJpbSgpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlwiO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmV4cGxpY2l0X3BhdGggPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiZG9tYWluXCI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9tYWluID0gdmFsdWUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLnRyaW0oKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5leHBsaWNpdF9kb21haW4gPSAhIXRoaXMuZG9tYWluO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwic2VjdXJlXCI6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VjdXJlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRoaXMuZXhwbGljaXRfcGF0aCkge1xuICAgICAgICAgICAgICAgdGhpcy5wYXRoID0gcmVxdWVzdF9wYXRoIHx8IFwiL1wiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLmV4cGxpY2l0X2RvbWFpbikge1xuICAgICAgICAgICAgICAgdGhpcy5kb21haW4gPSByZXF1ZXN0X2RvbWFpbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBDb29raWUoKS5wYXJzZShzdHIsIHJlcXVlc3RfZG9tYWluLCByZXF1ZXN0X3BhdGgpO1xuICAgIH07XG5cbiAgICBDb29raWUucHJvdG90eXBlLm1hdGNoZXMgPSBmdW5jdGlvbiBtYXRjaGVzKGFjY2Vzc19pbmZvKSB7XG4gICAgICAgIGlmICh0aGlzLm5vc2NyaXB0ICYmIGFjY2Vzc19pbmZvLnNjcmlwdCB8fFxuICAgICAgICAgICAgICAgIHRoaXMuc2VjdXJlICYmICFhY2Nlc3NfaW5mby5zZWN1cmUgfHxcbiAgICAgICAgICAgICAgICAhdGhpcy5jb2xsaWRlc1dpdGgoYWNjZXNzX2luZm8pKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcblxuICAgIENvb2tpZS5wcm90b3R5cGUuY29sbGlkZXNXaXRoID0gZnVuY3Rpb24gY29sbGlkZXNXaXRoKGFjY2Vzc19pbmZvKSB7XG4gICAgICAgIGlmICgodGhpcy5wYXRoICYmICFhY2Nlc3NfaW5mby5wYXRoKSB8fCAodGhpcy5kb21haW4gJiYgIWFjY2Vzc19pbmZvLmRvbWFpbikpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wYXRoICYmIGFjY2Vzc19pbmZvLnBhdGguaW5kZXhPZih0aGlzLnBhdGgpICE9PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmV4cGxpY2l0X3BhdGgpIHtcbiAgICAgICAgICAgaWYgKHRoaXMucGF0aCAhPT0gYWNjZXNzX2luZm8ucGF0aCkge1xuICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGFjY2Vzc19kb21haW4gPSBhY2Nlc3NfaW5mby5kb21haW4gJiYgYWNjZXNzX2luZm8uZG9tYWluLnJlcGxhY2UoL15bXFwuXS8sJycpO1xuICAgICAgICB2YXIgY29va2llX2RvbWFpbiA9IHRoaXMuZG9tYWluICYmIHRoaXMuZG9tYWluLnJlcGxhY2UoL15bXFwuXS8sJycpO1xuICAgICAgICBpZiAoY29va2llX2RvbWFpbiA9PT0gYWNjZXNzX2RvbWFpbikge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvb2tpZV9kb21haW4pIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5leHBsaWNpdF9kb21haW4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIHdlIGFscmVhZHkgY2hlY2tlZCBpZiB0aGUgZG9tYWlucyB3ZXJlIGV4YWN0bHkgdGhlIHNhbWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciB3aWxkY2FyZCA9IGFjY2Vzc19kb21haW4uaW5kZXhPZihjb29raWVfZG9tYWluKTtcbiAgICAgICAgICAgIGlmICh3aWxkY2FyZCA9PT0gLTEgfHwgd2lsZGNhcmQgIT09IGFjY2Vzc19kb21haW4ubGVuZ3RoIC0gY29va2llX2RvbWFpbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gQ29va2llSmFyKCkge1xuICAgICAgICB2YXIgY29va2llcywgY29va2llc19saXN0LCBjb2xsaWRhYmxlX2Nvb2tpZTtcbiAgICAgICAgaWYgKHRoaXMgaW5zdGFuY2VvZiBDb29raWVKYXIpIHtcbiAgICAgICAgICAgIGNvb2tpZXMgPSBPYmplY3QuY3JlYXRlKG51bGwpOyAvL25hbWU6IFtDb29raWVdXG5cbiAgICAgICAgICAgIHRoaXMuc2V0Q29va2llID0gZnVuY3Rpb24gc2V0Q29va2llKGNvb2tpZSwgcmVxdWVzdF9kb21haW4sIHJlcXVlc3RfcGF0aCkge1xuICAgICAgICAgICAgICAgIHZhciByZW1vdmUsIGk7XG4gICAgICAgICAgICAgICAgY29va2llID0gbmV3IENvb2tpZShjb29raWUsIHJlcXVlc3RfZG9tYWluLCByZXF1ZXN0X3BhdGgpO1xuICAgICAgICAgICAgICAgIC8vRGVsZXRlIHRoZSBjb29raWUgaWYgdGhlIHNldCBpcyBwYXN0IHRoZSBjdXJyZW50IHRpbWVcbiAgICAgICAgICAgICAgICByZW1vdmUgPSBjb29raWUuZXhwaXJhdGlvbl9kYXRlIDw9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgaWYgKGNvb2tpZXNbY29va2llLm5hbWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29va2llc19saXN0ID0gY29va2llc1tjb29raWUubmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBjb29raWVzX2xpc3QubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxpZGFibGVfY29va2llID0gY29va2llc19saXN0W2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbGxpZGFibGVfY29va2llLmNvbGxpZGVzV2l0aChjb29raWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlbW92ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29raWVzX2xpc3Quc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29va2llc19saXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGNvb2tpZXNbY29va2llLm5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29va2llc19saXN0W2ldID0gY29va2llO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb29raWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlbW92ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvb2tpZXNfbGlzdC5wdXNoKGNvb2tpZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb29raWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyZW1vdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb29raWVzW2Nvb2tpZS5uYW1lXSA9IFtjb29raWVdO1xuICAgICAgICAgICAgICAgIHJldHVybiBjb29raWVzW2Nvb2tpZS5uYW1lXTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvL3JldHVybnMgYSBjb29raWVcbiAgICAgICAgICAgIHRoaXMuZ2V0Q29va2llID0gZnVuY3Rpb24gZ2V0Q29va2llKGNvb2tpZV9uYW1lLCBhY2Nlc3NfaW5mbykge1xuICAgICAgICAgICAgICAgIHZhciBjb29raWUsIGk7XG4gICAgICAgICAgICAgICAgY29va2llc19saXN0ID0gY29va2llc1tjb29raWVfbmFtZV07XG4gICAgICAgICAgICAgICAgaWYgKCFjb29raWVzX2xpc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY29va2llc19saXN0Lmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvb2tpZSA9IGNvb2tpZXNfbGlzdFtpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvb2tpZS5leHBpcmF0aW9uX2RhdGUgPD0gRGF0ZS5ub3coKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvb2tpZXNfbGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgY29va2llc1tjb29raWUubmFtZV07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoY29va2llLm1hdGNoZXMoYWNjZXNzX2luZm8pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29va2llO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8vcmV0dXJucyBhIGxpc3Qgb2YgY29va2llc1xuICAgICAgICAgICAgdGhpcy5nZXRDb29raWVzID0gZnVuY3Rpb24gZ2V0Q29va2llcyhhY2Nlc3NfaW5mbykge1xuICAgICAgICAgICAgICAgIHZhciBtYXRjaGVzID0gW10sIGNvb2tpZV9uYW1lLCBjb29raWU7XG4gICAgICAgICAgICAgICAgZm9yIChjb29raWVfbmFtZSBpbiBjb29raWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvb2tpZSA9IHRoaXMuZ2V0Q29va2llKGNvb2tpZV9uYW1lLCBhY2Nlc3NfaW5mbyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb29raWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZXMucHVzaChjb29raWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG1hdGNoZXMudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXMuam9pbihcIjpcIik7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBtYXRjaGVzLnRvVmFsdWVTdHJpbmcgPSBmdW5jdGlvbiB0b1ZhbHVlU3RyaW5nKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlcy5tYXAoZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjLnRvVmFsdWVTdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgfSkuam9pbignOycpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoZXM7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IENvb2tpZUphcigpO1xuICAgIH1cbiAgICBleHBvcnRzLkNvb2tpZUphciA9IENvb2tpZUphcjtcblxuICAgIC8vcmV0dXJucyBsaXN0IG9mIGNvb2tpZXMgdGhhdCB3ZXJlIHNldCBjb3JyZWN0bHkuIENvb2tpZXMgdGhhdCBhcmUgZXhwaXJlZCBhbmQgcmVtb3ZlZCBhcmUgbm90IHJldHVybmVkLlxuICAgIENvb2tpZUphci5wcm90b3R5cGUuc2V0Q29va2llcyA9IGZ1bmN0aW9uIHNldENvb2tpZXMoY29va2llcywgcmVxdWVzdF9kb21haW4sIHJlcXVlc3RfcGF0aCkge1xuICAgICAgICBjb29raWVzID0gQXJyYXkuaXNBcnJheShjb29raWVzKSA/XG4gICAgICAgICAgICAgICAgY29va2llcyA6XG4gICAgICAgICAgICAgICAgY29va2llcy5zcGxpdChjb29raWVfc3RyX3NwbGl0dGVyKTtcbiAgICAgICAgdmFyIHN1Y2Nlc3NmdWwgPSBbXSxcbiAgICAgICAgICAgIGksXG4gICAgICAgICAgICBjb29raWU7XG4gICAgICAgIGNvb2tpZXMgPSBjb29raWVzLm1hcChDb29raWUpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY29va2llcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgICAgY29va2llID0gY29va2llc1tpXTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNldENvb2tpZShjb29raWUsIHJlcXVlc3RfZG9tYWluLCByZXF1ZXN0X3BhdGgpKSB7XG4gICAgICAgICAgICAgICAgc3VjY2Vzc2Z1bC5wdXNoKGNvb2tpZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1Y2Nlc3NmdWw7XG4gICAgfTtcbn0oKSk7XG4iLCIvKiFcbiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjIuMS40XG4gKiBodHRwOi8vanF1ZXJ5LmNvbS9cbiAqXG4gKiBJbmNsdWRlcyBTaXp6bGUuanNcbiAqIGh0dHA6Ly9zaXp6bGVqcy5jb20vXG4gKlxuICogQ29weXJpZ2h0IDIwMDUsIDIwMTQgalF1ZXJ5IEZvdW5kYXRpb24sIEluYy4gYW5kIG90aGVyIGNvbnRyaWJ1dG9yc1xuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlXG4gKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlXG4gKlxuICogRGF0ZTogMjAxNS0wNC0yOFQxNjowMVpcbiAqL1xuXG4oZnVuY3Rpb24oIGdsb2JhbCwgZmFjdG9yeSApIHtcblxuXHRpZiAoIHR5cGVvZiBtb2R1bGUgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIG1vZHVsZS5leHBvcnRzID09PSBcIm9iamVjdFwiICkge1xuXHRcdC8vIEZvciBDb21tb25KUyBhbmQgQ29tbW9uSlMtbGlrZSBlbnZpcm9ubWVudHMgd2hlcmUgYSBwcm9wZXIgYHdpbmRvd2Bcblx0XHQvLyBpcyBwcmVzZW50LCBleGVjdXRlIHRoZSBmYWN0b3J5IGFuZCBnZXQgalF1ZXJ5LlxuXHRcdC8vIEZvciBlbnZpcm9ubWVudHMgdGhhdCBkbyBub3QgaGF2ZSBhIGB3aW5kb3dgIHdpdGggYSBgZG9jdW1lbnRgXG5cdFx0Ly8gKHN1Y2ggYXMgTm9kZS5qcyksIGV4cG9zZSBhIGZhY3RvcnkgYXMgbW9kdWxlLmV4cG9ydHMuXG5cdFx0Ly8gVGhpcyBhY2NlbnR1YXRlcyB0aGUgbmVlZCBmb3IgdGhlIGNyZWF0aW9uIG9mIGEgcmVhbCBgd2luZG93YC5cblx0XHQvLyBlLmcuIHZhciBqUXVlcnkgPSByZXF1aXJlKFwianF1ZXJ5XCIpKHdpbmRvdyk7XG5cdFx0Ly8gU2VlIHRpY2tldCAjMTQ1NDkgZm9yIG1vcmUgaW5mby5cblx0XHRtb2R1bGUuZXhwb3J0cyA9IGdsb2JhbC5kb2N1bWVudCA/XG5cdFx0XHRmYWN0b3J5KCBnbG9iYWwsIHRydWUgKSA6XG5cdFx0XHRmdW5jdGlvbiggdyApIHtcblx0XHRcdFx0aWYgKCAhdy5kb2N1bWVudCApIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoIFwialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudFwiICk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGZhY3RvcnkoIHcgKTtcblx0XHRcdH07XG5cdH0gZWxzZSB7XG5cdFx0ZmFjdG9yeSggZ2xvYmFsICk7XG5cdH1cblxuLy8gUGFzcyB0aGlzIGlmIHdpbmRvdyBpcyBub3QgZGVmaW5lZCB5ZXRcbn0odHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IHdpbmRvdyA6IHRoaXMsIGZ1bmN0aW9uKCB3aW5kb3csIG5vR2xvYmFsICkge1xuXG4vLyBTdXBwb3J0OiBGaXJlZm94IDE4K1xuLy8gQ2FuJ3QgYmUgaW4gc3RyaWN0IG1vZGUsIHNldmVyYWwgbGlicyBpbmNsdWRpbmcgQVNQLk5FVCB0cmFjZVxuLy8gdGhlIHN0YWNrIHZpYSBhcmd1bWVudHMuY2FsbGVyLmNhbGxlZSBhbmQgRmlyZWZveCBkaWVzIGlmXG4vLyB5b3UgdHJ5IHRvIHRyYWNlIHRocm91Z2ggXCJ1c2Ugc3RyaWN0XCIgY2FsbCBjaGFpbnMuICgjMTMzMzUpXG4vL1xuXG52YXIgYXJyID0gW107XG5cbnZhciBzbGljZSA9IGFyci5zbGljZTtcblxudmFyIGNvbmNhdCA9IGFyci5jb25jYXQ7XG5cbnZhciBwdXNoID0gYXJyLnB1c2g7XG5cbnZhciBpbmRleE9mID0gYXJyLmluZGV4T2Y7XG5cbnZhciBjbGFzczJ0eXBlID0ge307XG5cbnZhciB0b1N0cmluZyA9IGNsYXNzMnR5cGUudG9TdHJpbmc7XG5cbnZhciBoYXNPd24gPSBjbGFzczJ0eXBlLmhhc093blByb3BlcnR5O1xuXG52YXIgc3VwcG9ydCA9IHt9O1xuXG5cblxudmFyXG5cdC8vIFVzZSB0aGUgY29ycmVjdCBkb2N1bWVudCBhY2NvcmRpbmdseSB3aXRoIHdpbmRvdyBhcmd1bWVudCAoc2FuZGJveClcblx0ZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQsXG5cblx0dmVyc2lvbiA9IFwiMi4xLjRcIixcblxuXHQvLyBEZWZpbmUgYSBsb2NhbCBjb3B5IG9mIGpRdWVyeVxuXHRqUXVlcnkgPSBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQgKSB7XG5cdFx0Ly8gVGhlIGpRdWVyeSBvYmplY3QgaXMgYWN0dWFsbHkganVzdCB0aGUgaW5pdCBjb25zdHJ1Y3RvciAnZW5oYW5jZWQnXG5cdFx0Ly8gTmVlZCBpbml0IGlmIGpRdWVyeSBpcyBjYWxsZWQgKGp1c3QgYWxsb3cgZXJyb3IgdG8gYmUgdGhyb3duIGlmIG5vdCBpbmNsdWRlZClcblx0XHRyZXR1cm4gbmV3IGpRdWVyeS5mbi5pbml0KCBzZWxlY3RvciwgY29udGV4dCApO1xuXHR9LFxuXG5cdC8vIFN1cHBvcnQ6IEFuZHJvaWQ8NC4xXG5cdC8vIE1ha2Ugc3VyZSB3ZSB0cmltIEJPTSBhbmQgTkJTUFxuXHRydHJpbSA9IC9eW1xcc1xcdUZFRkZcXHhBMF0rfFtcXHNcXHVGRUZGXFx4QTBdKyQvZyxcblxuXHQvLyBNYXRjaGVzIGRhc2hlZCBzdHJpbmcgZm9yIGNhbWVsaXppbmdcblx0cm1zUHJlZml4ID0gL14tbXMtLyxcblx0cmRhc2hBbHBoYSA9IC8tKFtcXGRhLXpdKS9naSxcblxuXHQvLyBVc2VkIGJ5IGpRdWVyeS5jYW1lbENhc2UgYXMgY2FsbGJhY2sgdG8gcmVwbGFjZSgpXG5cdGZjYW1lbENhc2UgPSBmdW5jdGlvbiggYWxsLCBsZXR0ZXIgKSB7XG5cdFx0cmV0dXJuIGxldHRlci50b1VwcGVyQ2FzZSgpO1xuXHR9O1xuXG5qUXVlcnkuZm4gPSBqUXVlcnkucHJvdG90eXBlID0ge1xuXHQvLyBUaGUgY3VycmVudCB2ZXJzaW9uIG9mIGpRdWVyeSBiZWluZyB1c2VkXG5cdGpxdWVyeTogdmVyc2lvbixcblxuXHRjb25zdHJ1Y3RvcjogalF1ZXJ5LFxuXG5cdC8vIFN0YXJ0IHdpdGggYW4gZW1wdHkgc2VsZWN0b3Jcblx0c2VsZWN0b3I6IFwiXCIsXG5cblx0Ly8gVGhlIGRlZmF1bHQgbGVuZ3RoIG9mIGEgalF1ZXJ5IG9iamVjdCBpcyAwXG5cdGxlbmd0aDogMCxcblxuXHR0b0FycmF5OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gc2xpY2UuY2FsbCggdGhpcyApO1xuXHR9LFxuXG5cdC8vIEdldCB0aGUgTnRoIGVsZW1lbnQgaW4gdGhlIG1hdGNoZWQgZWxlbWVudCBzZXQgT1Jcblx0Ly8gR2V0IHRoZSB3aG9sZSBtYXRjaGVkIGVsZW1lbnQgc2V0IGFzIGEgY2xlYW4gYXJyYXlcblx0Z2V0OiBmdW5jdGlvbiggbnVtICkge1xuXHRcdHJldHVybiBudW0gIT0gbnVsbCA/XG5cblx0XHRcdC8vIFJldHVybiBqdXN0IHRoZSBvbmUgZWxlbWVudCBmcm9tIHRoZSBzZXRcblx0XHRcdCggbnVtIDwgMCA/IHRoaXNbIG51bSArIHRoaXMubGVuZ3RoIF0gOiB0aGlzWyBudW0gXSApIDpcblxuXHRcdFx0Ly8gUmV0dXJuIGFsbCB0aGUgZWxlbWVudHMgaW4gYSBjbGVhbiBhcnJheVxuXHRcdFx0c2xpY2UuY2FsbCggdGhpcyApO1xuXHR9LFxuXG5cdC8vIFRha2UgYW4gYXJyYXkgb2YgZWxlbWVudHMgYW5kIHB1c2ggaXQgb250byB0aGUgc3RhY2tcblx0Ly8gKHJldHVybmluZyB0aGUgbmV3IG1hdGNoZWQgZWxlbWVudCBzZXQpXG5cdHB1c2hTdGFjazogZnVuY3Rpb24oIGVsZW1zICkge1xuXG5cdFx0Ly8gQnVpbGQgYSBuZXcgalF1ZXJ5IG1hdGNoZWQgZWxlbWVudCBzZXRcblx0XHR2YXIgcmV0ID0galF1ZXJ5Lm1lcmdlKCB0aGlzLmNvbnN0cnVjdG9yKCksIGVsZW1zICk7XG5cblx0XHQvLyBBZGQgdGhlIG9sZCBvYmplY3Qgb250byB0aGUgc3RhY2sgKGFzIGEgcmVmZXJlbmNlKVxuXHRcdHJldC5wcmV2T2JqZWN0ID0gdGhpcztcblx0XHRyZXQuY29udGV4dCA9IHRoaXMuY29udGV4dDtcblxuXHRcdC8vIFJldHVybiB0aGUgbmV3bHktZm9ybWVkIGVsZW1lbnQgc2V0XG5cdFx0cmV0dXJuIHJldDtcblx0fSxcblxuXHQvLyBFeGVjdXRlIGEgY2FsbGJhY2sgZm9yIGV2ZXJ5IGVsZW1lbnQgaW4gdGhlIG1hdGNoZWQgc2V0LlxuXHQvLyAoWW91IGNhbiBzZWVkIHRoZSBhcmd1bWVudHMgd2l0aCBhbiBhcnJheSBvZiBhcmdzLCBidXQgdGhpcyBpc1xuXHQvLyBvbmx5IHVzZWQgaW50ZXJuYWxseS4pXG5cdGVhY2g6IGZ1bmN0aW9uKCBjYWxsYmFjaywgYXJncyApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmVhY2goIHRoaXMsIGNhbGxiYWNrLCBhcmdzICk7XG5cdH0sXG5cblx0bWFwOiBmdW5jdGlvbiggY2FsbGJhY2sgKSB7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqUXVlcnkubWFwKHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCBpICkge1xuXHRcdFx0cmV0dXJuIGNhbGxiYWNrLmNhbGwoIGVsZW0sIGksIGVsZW0gKTtcblx0XHR9KSk7XG5cdH0sXG5cblx0c2xpY2U6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggc2xpY2UuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApICk7XG5cdH0sXG5cblx0Zmlyc3Q6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLmVxKCAwICk7XG5cdH0sXG5cblx0bGFzdDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMuZXEoIC0xICk7XG5cdH0sXG5cblx0ZXE6IGZ1bmN0aW9uKCBpICkge1xuXHRcdHZhciBsZW4gPSB0aGlzLmxlbmd0aCxcblx0XHRcdGogPSAraSArICggaSA8IDAgPyBsZW4gOiAwICk7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqID49IDAgJiYgaiA8IGxlbiA/IFsgdGhpc1tqXSBdIDogW10gKTtcblx0fSxcblxuXHRlbmQ6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLnByZXZPYmplY3QgfHwgdGhpcy5jb25zdHJ1Y3RvcihudWxsKTtcblx0fSxcblxuXHQvLyBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuXG5cdC8vIEJlaGF2ZXMgbGlrZSBhbiBBcnJheSdzIG1ldGhvZCwgbm90IGxpa2UgYSBqUXVlcnkgbWV0aG9kLlxuXHRwdXNoOiBwdXNoLFxuXHRzb3J0OiBhcnIuc29ydCxcblx0c3BsaWNlOiBhcnIuc3BsaWNlXG59O1xuXG5qUXVlcnkuZXh0ZW5kID0galF1ZXJ5LmZuLmV4dGVuZCA9IGZ1bmN0aW9uKCkge1xuXHR2YXIgb3B0aW9ucywgbmFtZSwgc3JjLCBjb3B5LCBjb3B5SXNBcnJheSwgY2xvbmUsXG5cdFx0dGFyZ2V0ID0gYXJndW1lbnRzWzBdIHx8IHt9LFxuXHRcdGkgPSAxLFxuXHRcdGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXG5cdFx0ZGVlcCA9IGZhbHNlO1xuXG5cdC8vIEhhbmRsZSBhIGRlZXAgY29weSBzaXR1YXRpb25cblx0aWYgKCB0eXBlb2YgdGFyZ2V0ID09PSBcImJvb2xlYW5cIiApIHtcblx0XHRkZWVwID0gdGFyZ2V0O1xuXG5cdFx0Ly8gU2tpcCB0aGUgYm9vbGVhbiBhbmQgdGhlIHRhcmdldFxuXHRcdHRhcmdldCA9IGFyZ3VtZW50c1sgaSBdIHx8IHt9O1xuXHRcdGkrKztcblx0fVxuXG5cdC8vIEhhbmRsZSBjYXNlIHdoZW4gdGFyZ2V0IGlzIGEgc3RyaW5nIG9yIHNvbWV0aGluZyAocG9zc2libGUgaW4gZGVlcCBjb3B5KVxuXHRpZiAoIHR5cGVvZiB0YXJnZXQgIT09IFwib2JqZWN0XCIgJiYgIWpRdWVyeS5pc0Z1bmN0aW9uKHRhcmdldCkgKSB7XG5cdFx0dGFyZ2V0ID0ge307XG5cdH1cblxuXHQvLyBFeHRlbmQgalF1ZXJ5IGl0c2VsZiBpZiBvbmx5IG9uZSBhcmd1bWVudCBpcyBwYXNzZWRcblx0aWYgKCBpID09PSBsZW5ndGggKSB7XG5cdFx0dGFyZ2V0ID0gdGhpcztcblx0XHRpLS07XG5cdH1cblxuXHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApIHtcblx0XHQvLyBPbmx5IGRlYWwgd2l0aCBub24tbnVsbC91bmRlZmluZWQgdmFsdWVzXG5cdFx0aWYgKCAob3B0aW9ucyA9IGFyZ3VtZW50c1sgaSBdKSAhPSBudWxsICkge1xuXHRcdFx0Ly8gRXh0ZW5kIHRoZSBiYXNlIG9iamVjdFxuXHRcdFx0Zm9yICggbmFtZSBpbiBvcHRpb25zICkge1xuXHRcdFx0XHRzcmMgPSB0YXJnZXRbIG5hbWUgXTtcblx0XHRcdFx0Y29weSA9IG9wdGlvbnNbIG5hbWUgXTtcblxuXHRcdFx0XHQvLyBQcmV2ZW50IG5ldmVyLWVuZGluZyBsb29wXG5cdFx0XHRcdGlmICggdGFyZ2V0ID09PSBjb3B5ICkge1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gUmVjdXJzZSBpZiB3ZSdyZSBtZXJnaW5nIHBsYWluIG9iamVjdHMgb3IgYXJyYXlzXG5cdFx0XHRcdGlmICggZGVlcCAmJiBjb3B5ICYmICggalF1ZXJ5LmlzUGxhaW5PYmplY3QoY29weSkgfHwgKGNvcHlJc0FycmF5ID0galF1ZXJ5LmlzQXJyYXkoY29weSkpICkgKSB7XG5cdFx0XHRcdFx0aWYgKCBjb3B5SXNBcnJheSApIHtcblx0XHRcdFx0XHRcdGNvcHlJc0FycmF5ID0gZmFsc2U7XG5cdFx0XHRcdFx0XHRjbG9uZSA9IHNyYyAmJiBqUXVlcnkuaXNBcnJheShzcmMpID8gc3JjIDogW107XG5cblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0Y2xvbmUgPSBzcmMgJiYgalF1ZXJ5LmlzUGxhaW5PYmplY3Qoc3JjKSA/IHNyYyA6IHt9O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIE5ldmVyIG1vdmUgb3JpZ2luYWwgb2JqZWN0cywgY2xvbmUgdGhlbVxuXHRcdFx0XHRcdHRhcmdldFsgbmFtZSBdID0galF1ZXJ5LmV4dGVuZCggZGVlcCwgY2xvbmUsIGNvcHkgKTtcblxuXHRcdFx0XHQvLyBEb24ndCBicmluZyBpbiB1bmRlZmluZWQgdmFsdWVzXG5cdFx0XHRcdH0gZWxzZSBpZiAoIGNvcHkgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHR0YXJnZXRbIG5hbWUgXSA9IGNvcHk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBSZXR1cm4gdGhlIG1vZGlmaWVkIG9iamVjdFxuXHRyZXR1cm4gdGFyZ2V0O1xufTtcblxualF1ZXJ5LmV4dGVuZCh7XG5cdC8vIFVuaXF1ZSBmb3IgZWFjaCBjb3B5IG9mIGpRdWVyeSBvbiB0aGUgcGFnZVxuXHRleHBhbmRvOiBcImpRdWVyeVwiICsgKCB2ZXJzaW9uICsgTWF0aC5yYW5kb20oKSApLnJlcGxhY2UoIC9cXEQvZywgXCJcIiApLFxuXG5cdC8vIEFzc3VtZSBqUXVlcnkgaXMgcmVhZHkgd2l0aG91dCB0aGUgcmVhZHkgbW9kdWxlXG5cdGlzUmVhZHk6IHRydWUsXG5cblx0ZXJyb3I6IGZ1bmN0aW9uKCBtc2cgKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCBtc2cgKTtcblx0fSxcblxuXHRub29wOiBmdW5jdGlvbigpIHt9LFxuXG5cdGlzRnVuY3Rpb246IGZ1bmN0aW9uKCBvYmogKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS50eXBlKG9iaikgPT09IFwiZnVuY3Rpb25cIjtcblx0fSxcblxuXHRpc0FycmF5OiBBcnJheS5pc0FycmF5LFxuXG5cdGlzV2luZG93OiBmdW5jdGlvbiggb2JqICkge1xuXHRcdHJldHVybiBvYmogIT0gbnVsbCAmJiBvYmogPT09IG9iai53aW5kb3c7XG5cdH0sXG5cblx0aXNOdW1lcmljOiBmdW5jdGlvbiggb2JqICkge1xuXHRcdC8vIHBhcnNlRmxvYXQgTmFOcyBudW1lcmljLWNhc3QgZmFsc2UgcG9zaXRpdmVzIChudWxsfHRydWV8ZmFsc2V8XCJcIilcblx0XHQvLyAuLi5idXQgbWlzaW50ZXJwcmV0cyBsZWFkaW5nLW51bWJlciBzdHJpbmdzLCBwYXJ0aWN1bGFybHkgaGV4IGxpdGVyYWxzIChcIjB4Li4uXCIpXG5cdFx0Ly8gc3VidHJhY3Rpb24gZm9yY2VzIGluZmluaXRpZXMgdG8gTmFOXG5cdFx0Ly8gYWRkaW5nIDEgY29ycmVjdHMgbG9zcyBvZiBwcmVjaXNpb24gZnJvbSBwYXJzZUZsb2F0ICgjMTUxMDApXG5cdFx0cmV0dXJuICFqUXVlcnkuaXNBcnJheSggb2JqICkgJiYgKG9iaiAtIHBhcnNlRmxvYXQoIG9iaiApICsgMSkgPj0gMDtcblx0fSxcblxuXHRpc1BsYWluT2JqZWN0OiBmdW5jdGlvbiggb2JqICkge1xuXHRcdC8vIE5vdCBwbGFpbiBvYmplY3RzOlxuXHRcdC8vIC0gQW55IG9iamVjdCBvciB2YWx1ZSB3aG9zZSBpbnRlcm5hbCBbW0NsYXNzXV0gcHJvcGVydHkgaXMgbm90IFwiW29iamVjdCBPYmplY3RdXCJcblx0XHQvLyAtIERPTSBub2Rlc1xuXHRcdC8vIC0gd2luZG93XG5cdFx0aWYgKCBqUXVlcnkudHlwZSggb2JqICkgIT09IFwib2JqZWN0XCIgfHwgb2JqLm5vZGVUeXBlIHx8IGpRdWVyeS5pc1dpbmRvdyggb2JqICkgKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0aWYgKCBvYmouY29uc3RydWN0b3IgJiZcblx0XHRcdFx0IWhhc093bi5jYWxsKCBvYmouY29uc3RydWN0b3IucHJvdG90eXBlLCBcImlzUHJvdG90eXBlT2ZcIiApICkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdC8vIElmIHRoZSBmdW5jdGlvbiBoYXNuJ3QgcmV0dXJuZWQgYWxyZWFkeSwgd2UncmUgY29uZmlkZW50IHRoYXRcblx0XHQvLyB8b2JqfCBpcyBhIHBsYWluIG9iamVjdCwgY3JlYXRlZCBieSB7fSBvciBjb25zdHJ1Y3RlZCB3aXRoIG5ldyBPYmplY3Rcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSxcblxuXHRpc0VtcHR5T2JqZWN0OiBmdW5jdGlvbiggb2JqICkge1xuXHRcdHZhciBuYW1lO1xuXHRcdGZvciAoIG5hbWUgaW4gb2JqICkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSxcblxuXHR0eXBlOiBmdW5jdGlvbiggb2JqICkge1xuXHRcdGlmICggb2JqID09IG51bGwgKSB7XG5cdFx0XHRyZXR1cm4gb2JqICsgXCJcIjtcblx0XHR9XG5cdFx0Ly8gU3VwcG9ydDogQW5kcm9pZDw0LjAsIGlPUzw2IChmdW5jdGlvbmlzaCBSZWdFeHApXG5cdFx0cmV0dXJuIHR5cGVvZiBvYmogPT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIG9iaiA9PT0gXCJmdW5jdGlvblwiID9cblx0XHRcdGNsYXNzMnR5cGVbIHRvU3RyaW5nLmNhbGwob2JqKSBdIHx8IFwib2JqZWN0XCIgOlxuXHRcdFx0dHlwZW9mIG9iajtcblx0fSxcblxuXHQvLyBFdmFsdWF0ZXMgYSBzY3JpcHQgaW4gYSBnbG9iYWwgY29udGV4dFxuXHRnbG9iYWxFdmFsOiBmdW5jdGlvbiggY29kZSApIHtcblx0XHR2YXIgc2NyaXB0LFxuXHRcdFx0aW5kaXJlY3QgPSBldmFsO1xuXG5cdFx0Y29kZSA9IGpRdWVyeS50cmltKCBjb2RlICk7XG5cblx0XHRpZiAoIGNvZGUgKSB7XG5cdFx0XHQvLyBJZiB0aGUgY29kZSBpbmNsdWRlcyBhIHZhbGlkLCBwcm9sb2d1ZSBwb3NpdGlvblxuXHRcdFx0Ly8gc3RyaWN0IG1vZGUgcHJhZ21hLCBleGVjdXRlIGNvZGUgYnkgaW5qZWN0aW5nIGFcblx0XHRcdC8vIHNjcmlwdCB0YWcgaW50byB0aGUgZG9jdW1lbnQuXG5cdFx0XHRpZiAoIGNvZGUuaW5kZXhPZihcInVzZSBzdHJpY3RcIikgPT09IDEgKSB7XG5cdFx0XHRcdHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7XG5cdFx0XHRcdHNjcmlwdC50ZXh0ID0gY29kZTtcblx0XHRcdFx0ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCggc2NyaXB0ICkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggc2NyaXB0ICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gT3RoZXJ3aXNlLCBhdm9pZCB0aGUgRE9NIG5vZGUgY3JlYXRpb24sIGluc2VydGlvblxuXHRcdFx0Ly8gYW5kIHJlbW92YWwgYnkgdXNpbmcgYW4gaW5kaXJlY3QgZ2xvYmFsIGV2YWxcblx0XHRcdFx0aW5kaXJlY3QoIGNvZGUgKTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0Ly8gQ29udmVydCBkYXNoZWQgdG8gY2FtZWxDYXNlOyB1c2VkIGJ5IHRoZSBjc3MgYW5kIGRhdGEgbW9kdWxlc1xuXHQvLyBTdXBwb3J0OiBJRTktMTErXG5cdC8vIE1pY3Jvc29mdCBmb3Jnb3QgdG8gaHVtcCB0aGVpciB2ZW5kb3IgcHJlZml4ICgjOTU3Milcblx0Y2FtZWxDYXNlOiBmdW5jdGlvbiggc3RyaW5nICkge1xuXHRcdHJldHVybiBzdHJpbmcucmVwbGFjZSggcm1zUHJlZml4LCBcIm1zLVwiICkucmVwbGFjZSggcmRhc2hBbHBoYSwgZmNhbWVsQ2FzZSApO1xuXHR9LFxuXG5cdG5vZGVOYW1lOiBmdW5jdGlvbiggZWxlbSwgbmFtZSApIHtcblx0XHRyZXR1cm4gZWxlbS5ub2RlTmFtZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IG5hbWUudG9Mb3dlckNhc2UoKTtcblx0fSxcblxuXHQvLyBhcmdzIGlzIGZvciBpbnRlcm5hbCB1c2FnZSBvbmx5XG5cdGVhY2g6IGZ1bmN0aW9uKCBvYmosIGNhbGxiYWNrLCBhcmdzICkge1xuXHRcdHZhciB2YWx1ZSxcblx0XHRcdGkgPSAwLFxuXHRcdFx0bGVuZ3RoID0gb2JqLmxlbmd0aCxcblx0XHRcdGlzQXJyYXkgPSBpc0FycmF5bGlrZSggb2JqICk7XG5cblx0XHRpZiAoIGFyZ3MgKSB7XG5cdFx0XHRpZiAoIGlzQXJyYXkgKSB7XG5cdFx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkge1xuXHRcdFx0XHRcdHZhbHVlID0gY2FsbGJhY2suYXBwbHkoIG9ialsgaSBdLCBhcmdzICk7XG5cblx0XHRcdFx0XHRpZiAoIHZhbHVlID09PSBmYWxzZSApIHtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Zm9yICggaSBpbiBvYmogKSB7XG5cdFx0XHRcdFx0dmFsdWUgPSBjYWxsYmFjay5hcHBseSggb2JqWyBpIF0sIGFyZ3MgKTtcblxuXHRcdFx0XHRcdGlmICggdmFsdWUgPT09IGZhbHNlICkge1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHQvLyBBIHNwZWNpYWwsIGZhc3QsIGNhc2UgZm9yIHRoZSBtb3N0IGNvbW1vbiB1c2Ugb2YgZWFjaFxuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAoIGlzQXJyYXkgKSB7XG5cdFx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkge1xuXHRcdFx0XHRcdHZhbHVlID0gY2FsbGJhY2suY2FsbCggb2JqWyBpIF0sIGksIG9ialsgaSBdICk7XG5cblx0XHRcdFx0XHRpZiAoIHZhbHVlID09PSBmYWxzZSApIHtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Zm9yICggaSBpbiBvYmogKSB7XG5cdFx0XHRcdFx0dmFsdWUgPSBjYWxsYmFjay5jYWxsKCBvYmpbIGkgXSwgaSwgb2JqWyBpIF0gKTtcblxuXHRcdFx0XHRcdGlmICggdmFsdWUgPT09IGZhbHNlICkge1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG9iajtcblx0fSxcblxuXHQvLyBTdXBwb3J0OiBBbmRyb2lkPDQuMVxuXHR0cmltOiBmdW5jdGlvbiggdGV4dCApIHtcblx0XHRyZXR1cm4gdGV4dCA9PSBudWxsID9cblx0XHRcdFwiXCIgOlxuXHRcdFx0KCB0ZXh0ICsgXCJcIiApLnJlcGxhY2UoIHJ0cmltLCBcIlwiICk7XG5cdH0sXG5cblx0Ly8gcmVzdWx0cyBpcyBmb3IgaW50ZXJuYWwgdXNhZ2Ugb25seVxuXHRtYWtlQXJyYXk6IGZ1bmN0aW9uKCBhcnIsIHJlc3VsdHMgKSB7XG5cdFx0dmFyIHJldCA9IHJlc3VsdHMgfHwgW107XG5cblx0XHRpZiAoIGFyciAhPSBudWxsICkge1xuXHRcdFx0aWYgKCBpc0FycmF5bGlrZSggT2JqZWN0KGFycikgKSApIHtcblx0XHRcdFx0alF1ZXJ5Lm1lcmdlKCByZXQsXG5cdFx0XHRcdFx0dHlwZW9mIGFyciA9PT0gXCJzdHJpbmdcIiA/XG5cdFx0XHRcdFx0WyBhcnIgXSA6IGFyclxuXHRcdFx0XHQpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cHVzaC5jYWxsKCByZXQsIGFyciApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiByZXQ7XG5cdH0sXG5cblx0aW5BcnJheTogZnVuY3Rpb24oIGVsZW0sIGFyciwgaSApIHtcblx0XHRyZXR1cm4gYXJyID09IG51bGwgPyAtMSA6IGluZGV4T2YuY2FsbCggYXJyLCBlbGVtLCBpICk7XG5cdH0sXG5cblx0bWVyZ2U6IGZ1bmN0aW9uKCBmaXJzdCwgc2Vjb25kICkge1xuXHRcdHZhciBsZW4gPSArc2Vjb25kLmxlbmd0aCxcblx0XHRcdGogPSAwLFxuXHRcdFx0aSA9IGZpcnN0Lmxlbmd0aDtcblxuXHRcdGZvciAoIDsgaiA8IGxlbjsgaisrICkge1xuXHRcdFx0Zmlyc3RbIGkrKyBdID0gc2Vjb25kWyBqIF07XG5cdFx0fVxuXG5cdFx0Zmlyc3QubGVuZ3RoID0gaTtcblxuXHRcdHJldHVybiBmaXJzdDtcblx0fSxcblxuXHRncmVwOiBmdW5jdGlvbiggZWxlbXMsIGNhbGxiYWNrLCBpbnZlcnQgKSB7XG5cdFx0dmFyIGNhbGxiYWNrSW52ZXJzZSxcblx0XHRcdG1hdGNoZXMgPSBbXSxcblx0XHRcdGkgPSAwLFxuXHRcdFx0bGVuZ3RoID0gZWxlbXMubGVuZ3RoLFxuXHRcdFx0Y2FsbGJhY2tFeHBlY3QgPSAhaW52ZXJ0O1xuXG5cdFx0Ly8gR28gdGhyb3VnaCB0aGUgYXJyYXksIG9ubHkgc2F2aW5nIHRoZSBpdGVtc1xuXHRcdC8vIHRoYXQgcGFzcyB0aGUgdmFsaWRhdG9yIGZ1bmN0aW9uXG5cdFx0Zm9yICggOyBpIDwgbGVuZ3RoOyBpKysgKSB7XG5cdFx0XHRjYWxsYmFja0ludmVyc2UgPSAhY2FsbGJhY2soIGVsZW1zWyBpIF0sIGkgKTtcblx0XHRcdGlmICggY2FsbGJhY2tJbnZlcnNlICE9PSBjYWxsYmFja0V4cGVjdCApIHtcblx0XHRcdFx0bWF0Y2hlcy5wdXNoKCBlbGVtc1sgaSBdICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG1hdGNoZXM7XG5cdH0sXG5cblx0Ly8gYXJnIGlzIGZvciBpbnRlcm5hbCB1c2FnZSBvbmx5XG5cdG1hcDogZnVuY3Rpb24oIGVsZW1zLCBjYWxsYmFjaywgYXJnICkge1xuXHRcdHZhciB2YWx1ZSxcblx0XHRcdGkgPSAwLFxuXHRcdFx0bGVuZ3RoID0gZWxlbXMubGVuZ3RoLFxuXHRcdFx0aXNBcnJheSA9IGlzQXJyYXlsaWtlKCBlbGVtcyApLFxuXHRcdFx0cmV0ID0gW107XG5cblx0XHQvLyBHbyB0aHJvdWdoIHRoZSBhcnJheSwgdHJhbnNsYXRpbmcgZWFjaCBvZiB0aGUgaXRlbXMgdG8gdGhlaXIgbmV3IHZhbHVlc1xuXHRcdGlmICggaXNBcnJheSApIHtcblx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkge1xuXHRcdFx0XHR2YWx1ZSA9IGNhbGxiYWNrKCBlbGVtc1sgaSBdLCBpLCBhcmcgKTtcblxuXHRcdFx0XHRpZiAoIHZhbHVlICE9IG51bGwgKSB7XG5cdFx0XHRcdFx0cmV0LnB1c2goIHZhbHVlICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdC8vIEdvIHRocm91Z2ggZXZlcnkga2V5IG9uIHRoZSBvYmplY3QsXG5cdFx0fSBlbHNlIHtcblx0XHRcdGZvciAoIGkgaW4gZWxlbXMgKSB7XG5cdFx0XHRcdHZhbHVlID0gY2FsbGJhY2soIGVsZW1zWyBpIF0sIGksIGFyZyApO1xuXG5cdFx0XHRcdGlmICggdmFsdWUgIT0gbnVsbCApIHtcblx0XHRcdFx0XHRyZXQucHVzaCggdmFsdWUgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEZsYXR0ZW4gYW55IG5lc3RlZCBhcnJheXNcblx0XHRyZXR1cm4gY29uY2F0LmFwcGx5KCBbXSwgcmV0ICk7XG5cdH0sXG5cblx0Ly8gQSBnbG9iYWwgR1VJRCBjb3VudGVyIGZvciBvYmplY3RzXG5cdGd1aWQ6IDEsXG5cblx0Ly8gQmluZCBhIGZ1bmN0aW9uIHRvIGEgY29udGV4dCwgb3B0aW9uYWxseSBwYXJ0aWFsbHkgYXBwbHlpbmcgYW55XG5cdC8vIGFyZ3VtZW50cy5cblx0cHJveHk6IGZ1bmN0aW9uKCBmbiwgY29udGV4dCApIHtcblx0XHR2YXIgdG1wLCBhcmdzLCBwcm94eTtcblxuXHRcdGlmICggdHlwZW9mIGNvbnRleHQgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHR0bXAgPSBmblsgY29udGV4dCBdO1xuXHRcdFx0Y29udGV4dCA9IGZuO1xuXHRcdFx0Zm4gPSB0bXA7XG5cdFx0fVxuXG5cdFx0Ly8gUXVpY2sgY2hlY2sgdG8gZGV0ZXJtaW5lIGlmIHRhcmdldCBpcyBjYWxsYWJsZSwgaW4gdGhlIHNwZWNcblx0XHQvLyB0aGlzIHRocm93cyBhIFR5cGVFcnJvciwgYnV0IHdlIHdpbGwganVzdCByZXR1cm4gdW5kZWZpbmVkLlxuXHRcdGlmICggIWpRdWVyeS5pc0Z1bmN0aW9uKCBmbiApICkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHQvLyBTaW11bGF0ZWQgYmluZFxuXHRcdGFyZ3MgPSBzbGljZS5jYWxsKCBhcmd1bWVudHMsIDIgKTtcblx0XHRwcm94eSA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIGZuLmFwcGx5KCBjb250ZXh0IHx8IHRoaXMsIGFyZ3MuY29uY2F0KCBzbGljZS5jYWxsKCBhcmd1bWVudHMgKSApICk7XG5cdFx0fTtcblxuXHRcdC8vIFNldCB0aGUgZ3VpZCBvZiB1bmlxdWUgaGFuZGxlciB0byB0aGUgc2FtZSBvZiBvcmlnaW5hbCBoYW5kbGVyLCBzbyBpdCBjYW4gYmUgcmVtb3ZlZFxuXHRcdHByb3h5Lmd1aWQgPSBmbi5ndWlkID0gZm4uZ3VpZCB8fCBqUXVlcnkuZ3VpZCsrO1xuXG5cdFx0cmV0dXJuIHByb3h5O1xuXHR9LFxuXG5cdG5vdzogRGF0ZS5ub3csXG5cblx0Ly8galF1ZXJ5LnN1cHBvcnQgaXMgbm90IHVzZWQgaW4gQ29yZSBidXQgb3RoZXIgcHJvamVjdHMgYXR0YWNoIHRoZWlyXG5cdC8vIHByb3BlcnRpZXMgdG8gaXQgc28gaXQgbmVlZHMgdG8gZXhpc3QuXG5cdHN1cHBvcnQ6IHN1cHBvcnRcbn0pO1xuXG4vLyBQb3B1bGF0ZSB0aGUgY2xhc3MydHlwZSBtYXBcbmpRdWVyeS5lYWNoKFwiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvclwiLnNwbGl0KFwiIFwiKSwgZnVuY3Rpb24oaSwgbmFtZSkge1xuXHRjbGFzczJ0eXBlWyBcIltvYmplY3QgXCIgKyBuYW1lICsgXCJdXCIgXSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbn0pO1xuXG5mdW5jdGlvbiBpc0FycmF5bGlrZSggb2JqICkge1xuXG5cdC8vIFN1cHBvcnQ6IGlPUyA4LjIgKG5vdCByZXByb2R1Y2libGUgaW4gc2ltdWxhdG9yKVxuXHQvLyBgaW5gIGNoZWNrIHVzZWQgdG8gcHJldmVudCBKSVQgZXJyb3IgKGdoLTIxNDUpXG5cdC8vIGhhc093biBpc24ndCB1c2VkIGhlcmUgZHVlIHRvIGZhbHNlIG5lZ2F0aXZlc1xuXHQvLyByZWdhcmRpbmcgTm9kZWxpc3QgbGVuZ3RoIGluIElFXG5cdHZhciBsZW5ndGggPSBcImxlbmd0aFwiIGluIG9iaiAmJiBvYmoubGVuZ3RoLFxuXHRcdHR5cGUgPSBqUXVlcnkudHlwZSggb2JqICk7XG5cblx0aWYgKCB0eXBlID09PSBcImZ1bmN0aW9uXCIgfHwgalF1ZXJ5LmlzV2luZG93KCBvYmogKSApIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRpZiAoIG9iai5ub2RlVHlwZSA9PT0gMSAmJiBsZW5ndGggKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRyZXR1cm4gdHlwZSA9PT0gXCJhcnJheVwiIHx8IGxlbmd0aCA9PT0gMCB8fFxuXHRcdHR5cGVvZiBsZW5ndGggPT09IFwibnVtYmVyXCIgJiYgbGVuZ3RoID4gMCAmJiAoIGxlbmd0aCAtIDEgKSBpbiBvYmo7XG59XG52YXIgU2l6emxlID1cbi8qIVxuICogU2l6emxlIENTUyBTZWxlY3RvciBFbmdpbmUgdjIuMi4wLXByZVxuICogaHR0cDovL3NpenpsZWpzLmNvbS9cbiAqXG4gKiBDb3B5cmlnaHQgMjAwOCwgMjAxNCBqUXVlcnkgRm91bmRhdGlvbiwgSW5jLiBhbmQgb3RoZXIgY29udHJpYnV0b3JzXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2VcbiAqXG4gKiBEYXRlOiAyMDE0LTEyLTE2XG4gKi9cbihmdW5jdGlvbiggd2luZG93ICkge1xuXG52YXIgaSxcblx0c3VwcG9ydCxcblx0RXhwcixcblx0Z2V0VGV4dCxcblx0aXNYTUwsXG5cdHRva2VuaXplLFxuXHRjb21waWxlLFxuXHRzZWxlY3QsXG5cdG91dGVybW9zdENvbnRleHQsXG5cdHNvcnRJbnB1dCxcblx0aGFzRHVwbGljYXRlLFxuXG5cdC8vIExvY2FsIGRvY3VtZW50IHZhcnNcblx0c2V0RG9jdW1lbnQsXG5cdGRvY3VtZW50LFxuXHRkb2NFbGVtLFxuXHRkb2N1bWVudElzSFRNTCxcblx0cmJ1Z2d5UVNBLFxuXHRyYnVnZ3lNYXRjaGVzLFxuXHRtYXRjaGVzLFxuXHRjb250YWlucyxcblxuXHQvLyBJbnN0YW5jZS1zcGVjaWZpYyBkYXRhXG5cdGV4cGFuZG8gPSBcInNpenpsZVwiICsgMSAqIG5ldyBEYXRlKCksXG5cdHByZWZlcnJlZERvYyA9IHdpbmRvdy5kb2N1bWVudCxcblx0ZGlycnVucyA9IDAsXG5cdGRvbmUgPSAwLFxuXHRjbGFzc0NhY2hlID0gY3JlYXRlQ2FjaGUoKSxcblx0dG9rZW5DYWNoZSA9IGNyZWF0ZUNhY2hlKCksXG5cdGNvbXBpbGVyQ2FjaGUgPSBjcmVhdGVDYWNoZSgpLFxuXHRzb3J0T3JkZXIgPSBmdW5jdGlvbiggYSwgYiApIHtcblx0XHRpZiAoIGEgPT09IGIgKSB7XG5cdFx0XHRoYXNEdXBsaWNhdGUgPSB0cnVlO1xuXHRcdH1cblx0XHRyZXR1cm4gMDtcblx0fSxcblxuXHQvLyBHZW5lcmFsLXB1cnBvc2UgY29uc3RhbnRzXG5cdE1BWF9ORUdBVElWRSA9IDEgPDwgMzEsXG5cblx0Ly8gSW5zdGFuY2UgbWV0aG9kc1xuXHRoYXNPd24gPSAoe30pLmhhc093blByb3BlcnR5LFxuXHRhcnIgPSBbXSxcblx0cG9wID0gYXJyLnBvcCxcblx0cHVzaF9uYXRpdmUgPSBhcnIucHVzaCxcblx0cHVzaCA9IGFyci5wdXNoLFxuXHRzbGljZSA9IGFyci5zbGljZSxcblx0Ly8gVXNlIGEgc3RyaXBwZWQtZG93biBpbmRleE9mIGFzIGl0J3MgZmFzdGVyIHRoYW4gbmF0aXZlXG5cdC8vIGh0dHA6Ly9qc3BlcmYuY29tL3Rob3ItaW5kZXhvZi12cy1mb3IvNVxuXHRpbmRleE9mID0gZnVuY3Rpb24oIGxpc3QsIGVsZW0gKSB7XG5cdFx0dmFyIGkgPSAwLFxuXHRcdFx0bGVuID0gbGlzdC5sZW5ndGg7XG5cdFx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRpZiAoIGxpc3RbaV0gPT09IGVsZW0gKSB7XG5cdFx0XHRcdHJldHVybiBpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gLTE7XG5cdH0sXG5cblx0Ym9vbGVhbnMgPSBcImNoZWNrZWR8c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxpc21hcHxsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkXCIsXG5cblx0Ly8gUmVndWxhciBleHByZXNzaW9uc1xuXG5cdC8vIFdoaXRlc3BhY2UgY2hhcmFjdGVycyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXNlbGVjdG9ycy8jd2hpdGVzcGFjZVxuXHR3aGl0ZXNwYWNlID0gXCJbXFxcXHgyMFxcXFx0XFxcXHJcXFxcblxcXFxmXVwiLFxuXHQvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXN5bnRheC8jY2hhcmFjdGVyc1xuXHRjaGFyYWN0ZXJFbmNvZGluZyA9IFwiKD86XFxcXFxcXFwufFtcXFxcdy1dfFteXFxcXHgwMC1cXFxceGEwXSkrXCIsXG5cblx0Ly8gTG9vc2VseSBtb2RlbGVkIG9uIENTUyBpZGVudGlmaWVyIGNoYXJhY3RlcnNcblx0Ly8gQW4gdW5xdW90ZWQgdmFsdWUgc2hvdWxkIGJlIGEgQ1NTIGlkZW50aWZpZXIgaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1zZWxlY3RvcnMvI2F0dHJpYnV0ZS1zZWxlY3RvcnNcblx0Ly8gUHJvcGVyIHN5bnRheDogaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMjEvc3luZGF0YS5odG1sI3ZhbHVlLWRlZi1pZGVudGlmaWVyXG5cdGlkZW50aWZpZXIgPSBjaGFyYWN0ZXJFbmNvZGluZy5yZXBsYWNlKCBcIndcIiwgXCJ3I1wiICksXG5cblx0Ly8gQXR0cmlidXRlIHNlbGVjdG9yczogaHR0cDovL3d3dy53My5vcmcvVFIvc2VsZWN0b3JzLyNhdHRyaWJ1dGUtc2VsZWN0b3JzXG5cdGF0dHJpYnV0ZXMgPSBcIlxcXFxbXCIgKyB3aGl0ZXNwYWNlICsgXCIqKFwiICsgY2hhcmFjdGVyRW5jb2RpbmcgKyBcIikoPzpcIiArIHdoaXRlc3BhY2UgK1xuXHRcdC8vIE9wZXJhdG9yIChjYXB0dXJlIDIpXG5cdFx0XCIqKFsqXiR8IX5dPz0pXCIgKyB3aGl0ZXNwYWNlICtcblx0XHQvLyBcIkF0dHJpYnV0ZSB2YWx1ZXMgbXVzdCBiZSBDU1MgaWRlbnRpZmllcnMgW2NhcHR1cmUgNV0gb3Igc3RyaW5ncyBbY2FwdHVyZSAzIG9yIGNhcHR1cmUgNF1cIlxuXHRcdFwiKig/OicoKD86XFxcXFxcXFwufFteXFxcXFxcXFwnXSkqKSd8XFxcIigoPzpcXFxcXFxcXC58W15cXFxcXFxcXFxcXCJdKSopXFxcInwoXCIgKyBpZGVudGlmaWVyICsgXCIpKXwpXCIgKyB3aGl0ZXNwYWNlICtcblx0XHRcIipcXFxcXVwiLFxuXG5cdHBzZXVkb3MgPSBcIjooXCIgKyBjaGFyYWN0ZXJFbmNvZGluZyArIFwiKSg/OlxcXFwoKFwiICtcblx0XHQvLyBUbyByZWR1Y2UgdGhlIG51bWJlciBvZiBzZWxlY3RvcnMgbmVlZGluZyB0b2tlbml6ZSBpbiB0aGUgcHJlRmlsdGVyLCBwcmVmZXIgYXJndW1lbnRzOlxuXHRcdC8vIDEuIHF1b3RlZCAoY2FwdHVyZSAzOyBjYXB0dXJlIDQgb3IgY2FwdHVyZSA1KVxuXHRcdFwiKCcoKD86XFxcXFxcXFwufFteXFxcXFxcXFwnXSkqKSd8XFxcIigoPzpcXFxcXFxcXC58W15cXFxcXFxcXFxcXCJdKSopXFxcIil8XCIgK1xuXHRcdC8vIDIuIHNpbXBsZSAoY2FwdHVyZSA2KVxuXHRcdFwiKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcKClbXFxcXF1dfFwiICsgYXR0cmlidXRlcyArIFwiKSopfFwiICtcblx0XHQvLyAzLiBhbnl0aGluZyBlbHNlIChjYXB0dXJlIDIpXG5cdFx0XCIuKlwiICtcblx0XHRcIilcXFxcKXwpXCIsXG5cblx0Ly8gTGVhZGluZyBhbmQgbm9uLWVzY2FwZWQgdHJhaWxpbmcgd2hpdGVzcGFjZSwgY2FwdHVyaW5nIHNvbWUgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVycyBwcmVjZWRpbmcgdGhlIGxhdHRlclxuXHRyd2hpdGVzcGFjZSA9IG5ldyBSZWdFeHAoIHdoaXRlc3BhY2UgKyBcIitcIiwgXCJnXCIgKSxcblx0cnRyaW0gPSBuZXcgUmVnRXhwKCBcIl5cIiArIHdoaXRlc3BhY2UgKyBcIit8KCg/Ol58W15cXFxcXFxcXF0pKD86XFxcXFxcXFwuKSopXCIgKyB3aGl0ZXNwYWNlICsgXCIrJFwiLCBcImdcIiApLFxuXG5cdHJjb21tYSA9IG5ldyBSZWdFeHAoIFwiXlwiICsgd2hpdGVzcGFjZSArIFwiKixcIiArIHdoaXRlc3BhY2UgKyBcIipcIiApLFxuXHRyY29tYmluYXRvcnMgPSBuZXcgUmVnRXhwKCBcIl5cIiArIHdoaXRlc3BhY2UgKyBcIiooWz4rfl18XCIgKyB3aGl0ZXNwYWNlICsgXCIpXCIgKyB3aGl0ZXNwYWNlICsgXCIqXCIgKSxcblxuXHRyYXR0cmlidXRlUXVvdGVzID0gbmV3IFJlZ0V4cCggXCI9XCIgKyB3aGl0ZXNwYWNlICsgXCIqKFteXFxcXF0nXFxcIl0qPylcIiArIHdoaXRlc3BhY2UgKyBcIipcXFxcXVwiLCBcImdcIiApLFxuXG5cdHJwc2V1ZG8gPSBuZXcgUmVnRXhwKCBwc2V1ZG9zICksXG5cdHJpZGVudGlmaWVyID0gbmV3IFJlZ0V4cCggXCJeXCIgKyBpZGVudGlmaWVyICsgXCIkXCIgKSxcblxuXHRtYXRjaEV4cHIgPSB7XG5cdFx0XCJJRFwiOiBuZXcgUmVnRXhwKCBcIl4jKFwiICsgY2hhcmFjdGVyRW5jb2RpbmcgKyBcIilcIiApLFxuXHRcdFwiQ0xBU1NcIjogbmV3IFJlZ0V4cCggXCJeXFxcXC4oXCIgKyBjaGFyYWN0ZXJFbmNvZGluZyArIFwiKVwiICksXG5cdFx0XCJUQUdcIjogbmV3IFJlZ0V4cCggXCJeKFwiICsgY2hhcmFjdGVyRW5jb2RpbmcucmVwbGFjZSggXCJ3XCIsIFwidypcIiApICsgXCIpXCIgKSxcblx0XHRcIkFUVFJcIjogbmV3IFJlZ0V4cCggXCJeXCIgKyBhdHRyaWJ1dGVzICksXG5cdFx0XCJQU0VVRE9cIjogbmV3IFJlZ0V4cCggXCJeXCIgKyBwc2V1ZG9zICksXG5cdFx0XCJDSElMRFwiOiBuZXcgUmVnRXhwKCBcIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcXFwoXCIgKyB3aGl0ZXNwYWNlICtcblx0XHRcdFwiKihldmVufG9kZHwoKFsrLV18KShcXFxcZCopbnwpXCIgKyB3aGl0ZXNwYWNlICsgXCIqKD86KFsrLV18KVwiICsgd2hpdGVzcGFjZSArXG5cdFx0XHRcIiooXFxcXGQrKXwpKVwiICsgd2hpdGVzcGFjZSArIFwiKlxcXFwpfClcIiwgXCJpXCIgKSxcblx0XHRcImJvb2xcIjogbmV3IFJlZ0V4cCggXCJeKD86XCIgKyBib29sZWFucyArIFwiKSRcIiwgXCJpXCIgKSxcblx0XHQvLyBGb3IgdXNlIGluIGxpYnJhcmllcyBpbXBsZW1lbnRpbmcgLmlzKClcblx0XHQvLyBXZSB1c2UgdGhpcyBmb3IgUE9TIG1hdGNoaW5nIGluIGBzZWxlY3RgXG5cdFx0XCJuZWVkc0NvbnRleHRcIjogbmV3IFJlZ0V4cCggXCJeXCIgKyB3aGl0ZXNwYWNlICsgXCIqWz4rfl18OihldmVufG9kZHxlcXxndHxsdHxudGh8Zmlyc3R8bGFzdCkoPzpcXFxcKFwiICtcblx0XHRcdHdoaXRlc3BhY2UgKyBcIiooKD86LVxcXFxkKT9cXFxcZCopXCIgKyB3aGl0ZXNwYWNlICsgXCIqXFxcXCl8KSg/PVteLV18JClcIiwgXCJpXCIgKVxuXHR9LFxuXG5cdHJpbnB1dHMgPSAvXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLFxuXHRyaGVhZGVyID0gL15oXFxkJC9pLFxuXG5cdHJuYXRpdmUgPSAvXltee10rXFx7XFxzKlxcW25hdGl2ZSBcXHcvLFxuXG5cdC8vIEVhc2lseS1wYXJzZWFibGUvcmV0cmlldmFibGUgSUQgb3IgVEFHIG9yIENMQVNTIHNlbGVjdG9yc1xuXHRycXVpY2tFeHByID0gL14oPzojKFtcXHctXSspfChcXHcrKXxcXC4oW1xcdy1dKykpJC8sXG5cblx0cnNpYmxpbmcgPSAvWyt+XS8sXG5cdHJlc2NhcGUgPSAvJ3xcXFxcL2csXG5cblx0Ly8gQ1NTIGVzY2FwZXMgaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMjEvc3luZGF0YS5odG1sI2VzY2FwZWQtY2hhcmFjdGVyc1xuXHRydW5lc2NhcGUgPSBuZXcgUmVnRXhwKCBcIlxcXFxcXFxcKFtcXFxcZGEtZl17MSw2fVwiICsgd2hpdGVzcGFjZSArIFwiP3woXCIgKyB3aGl0ZXNwYWNlICsgXCIpfC4pXCIsIFwiaWdcIiApLFxuXHRmdW5lc2NhcGUgPSBmdW5jdGlvbiggXywgZXNjYXBlZCwgZXNjYXBlZFdoaXRlc3BhY2UgKSB7XG5cdFx0dmFyIGhpZ2ggPSBcIjB4XCIgKyBlc2NhcGVkIC0gMHgxMDAwMDtcblx0XHQvLyBOYU4gbWVhbnMgbm9uLWNvZGVwb2ludFxuXHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3g8MjRcblx0XHQvLyBXb3JrYXJvdW5kIGVycm9uZW91cyBudW1lcmljIGludGVycHJldGF0aW9uIG9mICtcIjB4XCJcblx0XHRyZXR1cm4gaGlnaCAhPT0gaGlnaCB8fCBlc2NhcGVkV2hpdGVzcGFjZSA/XG5cdFx0XHRlc2NhcGVkIDpcblx0XHRcdGhpZ2ggPCAwID9cblx0XHRcdFx0Ly8gQk1QIGNvZGVwb2ludFxuXHRcdFx0XHRTdHJpbmcuZnJvbUNoYXJDb2RlKCBoaWdoICsgMHgxMDAwMCApIDpcblx0XHRcdFx0Ly8gU3VwcGxlbWVudGFsIFBsYW5lIGNvZGVwb2ludCAoc3Vycm9nYXRlIHBhaXIpXG5cdFx0XHRcdFN0cmluZy5mcm9tQ2hhckNvZGUoIGhpZ2ggPj4gMTAgfCAweEQ4MDAsIGhpZ2ggJiAweDNGRiB8IDB4REMwMCApO1xuXHR9LFxuXG5cdC8vIFVzZWQgZm9yIGlmcmFtZXNcblx0Ly8gU2VlIHNldERvY3VtZW50KClcblx0Ly8gUmVtb3ZpbmcgdGhlIGZ1bmN0aW9uIHdyYXBwZXIgY2F1c2VzIGEgXCJQZXJtaXNzaW9uIERlbmllZFwiXG5cdC8vIGVycm9yIGluIElFXG5cdHVubG9hZEhhbmRsZXIgPSBmdW5jdGlvbigpIHtcblx0XHRzZXREb2N1bWVudCgpO1xuXHR9O1xuXG4vLyBPcHRpbWl6ZSBmb3IgcHVzaC5hcHBseSggXywgTm9kZUxpc3QgKVxudHJ5IHtcblx0cHVzaC5hcHBseShcblx0XHQoYXJyID0gc2xpY2UuY2FsbCggcHJlZmVycmVkRG9jLmNoaWxkTm9kZXMgKSksXG5cdFx0cHJlZmVycmVkRG9jLmNoaWxkTm9kZXNcblx0KTtcblx0Ly8gU3VwcG9ydDogQW5kcm9pZDw0LjBcblx0Ly8gRGV0ZWN0IHNpbGVudGx5IGZhaWxpbmcgcHVzaC5hcHBseVxuXHRhcnJbIHByZWZlcnJlZERvYy5jaGlsZE5vZGVzLmxlbmd0aCBdLm5vZGVUeXBlO1xufSBjYXRjaCAoIGUgKSB7XG5cdHB1c2ggPSB7IGFwcGx5OiBhcnIubGVuZ3RoID9cblxuXHRcdC8vIExldmVyYWdlIHNsaWNlIGlmIHBvc3NpYmxlXG5cdFx0ZnVuY3Rpb24oIHRhcmdldCwgZWxzICkge1xuXHRcdFx0cHVzaF9uYXRpdmUuYXBwbHkoIHRhcmdldCwgc2xpY2UuY2FsbChlbHMpICk7XG5cdFx0fSA6XG5cblx0XHQvLyBTdXBwb3J0OiBJRTw5XG5cdFx0Ly8gT3RoZXJ3aXNlIGFwcGVuZCBkaXJlY3RseVxuXHRcdGZ1bmN0aW9uKCB0YXJnZXQsIGVscyApIHtcblx0XHRcdHZhciBqID0gdGFyZ2V0Lmxlbmd0aCxcblx0XHRcdFx0aSA9IDA7XG5cdFx0XHQvLyBDYW4ndCB0cnVzdCBOb2RlTGlzdC5sZW5ndGhcblx0XHRcdHdoaWxlICggKHRhcmdldFtqKytdID0gZWxzW2krK10pICkge31cblx0XHRcdHRhcmdldC5sZW5ndGggPSBqIC0gMTtcblx0XHR9XG5cdH07XG59XG5cbmZ1bmN0aW9uIFNpenpsZSggc2VsZWN0b3IsIGNvbnRleHQsIHJlc3VsdHMsIHNlZWQgKSB7XG5cdHZhciBtYXRjaCwgZWxlbSwgbSwgbm9kZVR5cGUsXG5cdFx0Ly8gUVNBIHZhcnNcblx0XHRpLCBncm91cHMsIG9sZCwgbmlkLCBuZXdDb250ZXh0LCBuZXdTZWxlY3RvcjtcblxuXHRpZiAoICggY29udGV4dCA/IGNvbnRleHQub3duZXJEb2N1bWVudCB8fCBjb250ZXh0IDogcHJlZmVycmVkRG9jICkgIT09IGRvY3VtZW50ICkge1xuXHRcdHNldERvY3VtZW50KCBjb250ZXh0ICk7XG5cdH1cblxuXHRjb250ZXh0ID0gY29udGV4dCB8fCBkb2N1bWVudDtcblx0cmVzdWx0cyA9IHJlc3VsdHMgfHwgW107XG5cdG5vZGVUeXBlID0gY29udGV4dC5ub2RlVHlwZTtcblxuXHRpZiAoIHR5cGVvZiBzZWxlY3RvciAhPT0gXCJzdHJpbmdcIiB8fCAhc2VsZWN0b3IgfHxcblx0XHRub2RlVHlwZSAhPT0gMSAmJiBub2RlVHlwZSAhPT0gOSAmJiBub2RlVHlwZSAhPT0gMTEgKSB7XG5cblx0XHRyZXR1cm4gcmVzdWx0cztcblx0fVxuXG5cdGlmICggIXNlZWQgJiYgZG9jdW1lbnRJc0hUTUwgKSB7XG5cblx0XHQvLyBUcnkgdG8gc2hvcnRjdXQgZmluZCBvcGVyYXRpb25zIHdoZW4gcG9zc2libGUgKGUuZy4sIG5vdCB1bmRlciBEb2N1bWVudEZyYWdtZW50KVxuXHRcdGlmICggbm9kZVR5cGUgIT09IDExICYmIChtYXRjaCA9IHJxdWlja0V4cHIuZXhlYyggc2VsZWN0b3IgKSkgKSB7XG5cdFx0XHQvLyBTcGVlZC11cDogU2l6emxlKFwiI0lEXCIpXG5cdFx0XHRpZiAoIChtID0gbWF0Y2hbMV0pICkge1xuXHRcdFx0XHRpZiAoIG5vZGVUeXBlID09PSA5ICkge1xuXHRcdFx0XHRcdGVsZW0gPSBjb250ZXh0LmdldEVsZW1lbnRCeUlkKCBtICk7XG5cdFx0XHRcdFx0Ly8gQ2hlY2sgcGFyZW50Tm9kZSB0byBjYXRjaCB3aGVuIEJsYWNrYmVycnkgNC42IHJldHVybnNcblx0XHRcdFx0XHQvLyBub2RlcyB0aGF0IGFyZSBubyBsb25nZXIgaW4gdGhlIGRvY3VtZW50IChqUXVlcnkgIzY5NjMpXG5cdFx0XHRcdFx0aWYgKCBlbGVtICYmIGVsZW0ucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0XHRcdC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBJRSwgT3BlcmEsIGFuZCBXZWJraXQgcmV0dXJuIGl0ZW1zXG5cdFx0XHRcdFx0XHQvLyBieSBuYW1lIGluc3RlYWQgb2YgSURcblx0XHRcdFx0XHRcdGlmICggZWxlbS5pZCA9PT0gbSApIHtcblx0XHRcdFx0XHRcdFx0cmVzdWx0cy5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gQ29udGV4dCBpcyBub3QgYSBkb2N1bWVudFxuXHRcdFx0XHRcdGlmICggY29udGV4dC5vd25lckRvY3VtZW50ICYmIChlbGVtID0gY29udGV4dC5vd25lckRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCBtICkpICYmXG5cdFx0XHRcdFx0XHRjb250YWlucyggY29udGV4dCwgZWxlbSApICYmIGVsZW0uaWQgPT09IG0gKSB7XG5cdFx0XHRcdFx0XHRyZXN1bHRzLnB1c2goIGVsZW0gKTtcblx0XHRcdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHQvLyBTcGVlZC11cDogU2l6emxlKFwiVEFHXCIpXG5cdFx0XHR9IGVsc2UgaWYgKCBtYXRjaFsyXSApIHtcblx0XHRcdFx0cHVzaC5hcHBseSggcmVzdWx0cywgY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggc2VsZWN0b3IgKSApO1xuXHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblxuXHRcdFx0Ly8gU3BlZWQtdXA6IFNpenpsZShcIi5DTEFTU1wiKVxuXHRcdFx0fSBlbHNlIGlmICggKG0gPSBtYXRjaFszXSkgJiYgc3VwcG9ydC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICkge1xuXHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLCBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIG0gKSApO1xuXHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBRU0EgcGF0aFxuXHRcdGlmICggc3VwcG9ydC5xc2EgJiYgKCFyYnVnZ3lRU0EgfHwgIXJidWdneVFTQS50ZXN0KCBzZWxlY3RvciApKSApIHtcblx0XHRcdG5pZCA9IG9sZCA9IGV4cGFuZG87XG5cdFx0XHRuZXdDb250ZXh0ID0gY29udGV4dDtcblx0XHRcdG5ld1NlbGVjdG9yID0gbm9kZVR5cGUgIT09IDEgJiYgc2VsZWN0b3I7XG5cblx0XHRcdC8vIHFTQSB3b3JrcyBzdHJhbmdlbHkgb24gRWxlbWVudC1yb290ZWQgcXVlcmllc1xuXHRcdFx0Ly8gV2UgY2FuIHdvcmsgYXJvdW5kIHRoaXMgYnkgc3BlY2lmeWluZyBhbiBleHRyYSBJRCBvbiB0aGUgcm9vdFxuXHRcdFx0Ly8gYW5kIHdvcmtpbmcgdXAgZnJvbSB0aGVyZSAoVGhhbmtzIHRvIEFuZHJldyBEdXBvbnQgZm9yIHRoZSB0ZWNobmlxdWUpXG5cdFx0XHQvLyBJRSA4IGRvZXNuJ3Qgd29yayBvbiBvYmplY3QgZWxlbWVudHNcblx0XHRcdGlmICggbm9kZVR5cGUgPT09IDEgJiYgY29udGV4dC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpICE9PSBcIm9iamVjdFwiICkge1xuXHRcdFx0XHRncm91cHMgPSB0b2tlbml6ZSggc2VsZWN0b3IgKTtcblxuXHRcdFx0XHRpZiAoIChvbGQgPSBjb250ZXh0LmdldEF0dHJpYnV0ZShcImlkXCIpKSApIHtcblx0XHRcdFx0XHRuaWQgPSBvbGQucmVwbGFjZSggcmVzY2FwZSwgXCJcXFxcJCZcIiApO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGNvbnRleHQuc2V0QXR0cmlidXRlKCBcImlkXCIsIG5pZCApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdG5pZCA9IFwiW2lkPSdcIiArIG5pZCArIFwiJ10gXCI7XG5cblx0XHRcdFx0aSA9IGdyb3Vwcy5sZW5ndGg7XG5cdFx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRcdGdyb3Vwc1tpXSA9IG5pZCArIHRvU2VsZWN0b3IoIGdyb3Vwc1tpXSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdG5ld0NvbnRleHQgPSByc2libGluZy50ZXN0KCBzZWxlY3RvciApICYmIHRlc3RDb250ZXh0KCBjb250ZXh0LnBhcmVudE5vZGUgKSB8fCBjb250ZXh0O1xuXHRcdFx0XHRuZXdTZWxlY3RvciA9IGdyb3Vwcy5qb2luKFwiLFwiKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBuZXdTZWxlY3RvciApIHtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLFxuXHRcdFx0XHRcdFx0bmV3Q29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKCBuZXdTZWxlY3RvciApXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdFx0fSBjYXRjaChxc2FFcnJvcikge1xuXHRcdFx0XHR9IGZpbmFsbHkge1xuXHRcdFx0XHRcdGlmICggIW9sZCApIHtcblx0XHRcdFx0XHRcdGNvbnRleHQucmVtb3ZlQXR0cmlidXRlKFwiaWRcIik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gQWxsIG90aGVyc1xuXHRyZXR1cm4gc2VsZWN0KCBzZWxlY3Rvci5yZXBsYWNlKCBydHJpbSwgXCIkMVwiICksIGNvbnRleHQsIHJlc3VsdHMsIHNlZWQgKTtcbn1cblxuLyoqXG4gKiBDcmVhdGUga2V5LXZhbHVlIGNhY2hlcyBvZiBsaW1pdGVkIHNpemVcbiAqIEByZXR1cm5zIHtGdW5jdGlvbihzdHJpbmcsIE9iamVjdCl9IFJldHVybnMgdGhlIE9iamVjdCBkYXRhIGFmdGVyIHN0b3JpbmcgaXQgb24gaXRzZWxmIHdpdGhcbiAqXHRwcm9wZXJ0eSBuYW1lIHRoZSAoc3BhY2Utc3VmZml4ZWQpIHN0cmluZyBhbmQgKGlmIHRoZSBjYWNoZSBpcyBsYXJnZXIgdGhhbiBFeHByLmNhY2hlTGVuZ3RoKVxuICpcdGRlbGV0aW5nIHRoZSBvbGRlc3QgZW50cnlcbiAqL1xuZnVuY3Rpb24gY3JlYXRlQ2FjaGUoKSB7XG5cdHZhciBrZXlzID0gW107XG5cblx0ZnVuY3Rpb24gY2FjaGUoIGtleSwgdmFsdWUgKSB7XG5cdFx0Ly8gVXNlIChrZXkgKyBcIiBcIikgdG8gYXZvaWQgY29sbGlzaW9uIHdpdGggbmF0aXZlIHByb3RvdHlwZSBwcm9wZXJ0aWVzIChzZWUgSXNzdWUgIzE1Nylcblx0XHRpZiAoIGtleXMucHVzaCgga2V5ICsgXCIgXCIgKSA+IEV4cHIuY2FjaGVMZW5ndGggKSB7XG5cdFx0XHQvLyBPbmx5IGtlZXAgdGhlIG1vc3QgcmVjZW50IGVudHJpZXNcblx0XHRcdGRlbGV0ZSBjYWNoZVsga2V5cy5zaGlmdCgpIF07XG5cdFx0fVxuXHRcdHJldHVybiAoY2FjaGVbIGtleSArIFwiIFwiIF0gPSB2YWx1ZSk7XG5cdH1cblx0cmV0dXJuIGNhY2hlO1xufVxuXG4vKipcbiAqIE1hcmsgYSBmdW5jdGlvbiBmb3Igc3BlY2lhbCB1c2UgYnkgU2l6emxlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBUaGUgZnVuY3Rpb24gdG8gbWFya1xuICovXG5mdW5jdGlvbiBtYXJrRnVuY3Rpb24oIGZuICkge1xuXHRmblsgZXhwYW5kbyBdID0gdHJ1ZTtcblx0cmV0dXJuIGZuO1xufVxuXG4vKipcbiAqIFN1cHBvcnQgdGVzdGluZyB1c2luZyBhbiBlbGVtZW50XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBQYXNzZWQgdGhlIGNyZWF0ZWQgZGl2IGFuZCBleHBlY3RzIGEgYm9vbGVhbiByZXN1bHRcbiAqL1xuZnVuY3Rpb24gYXNzZXJ0KCBmbiApIHtcblx0dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG5cblx0dHJ5IHtcblx0XHRyZXR1cm4gISFmbiggZGl2ICk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH0gZmluYWxseSB7XG5cdFx0Ly8gUmVtb3ZlIGZyb20gaXRzIHBhcmVudCBieSBkZWZhdWx0XG5cdFx0aWYgKCBkaXYucGFyZW50Tm9kZSApIHtcblx0XHRcdGRpdi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBkaXYgKTtcblx0XHR9XG5cdFx0Ly8gcmVsZWFzZSBtZW1vcnkgaW4gSUVcblx0XHRkaXYgPSBudWxsO1xuXHR9XG59XG5cbi8qKlxuICogQWRkcyB0aGUgc2FtZSBoYW5kbGVyIGZvciBhbGwgb2YgdGhlIHNwZWNpZmllZCBhdHRyc1xuICogQHBhcmFtIHtTdHJpbmd9IGF0dHJzIFBpcGUtc2VwYXJhdGVkIGxpc3Qgb2YgYXR0cmlidXRlc1xuICogQHBhcmFtIHtGdW5jdGlvbn0gaGFuZGxlciBUaGUgbWV0aG9kIHRoYXQgd2lsbCBiZSBhcHBsaWVkXG4gKi9cbmZ1bmN0aW9uIGFkZEhhbmRsZSggYXR0cnMsIGhhbmRsZXIgKSB7XG5cdHZhciBhcnIgPSBhdHRycy5zcGxpdChcInxcIiksXG5cdFx0aSA9IGF0dHJzLmxlbmd0aDtcblxuXHR3aGlsZSAoIGktLSApIHtcblx0XHRFeHByLmF0dHJIYW5kbGVbIGFycltpXSBdID0gaGFuZGxlcjtcblx0fVxufVxuXG4vKipcbiAqIENoZWNrcyBkb2N1bWVudCBvcmRlciBvZiB0d28gc2libGluZ3NcbiAqIEBwYXJhbSB7RWxlbWVudH0gYVxuICogQHBhcmFtIHtFbGVtZW50fSBiXG4gKiBAcmV0dXJucyB7TnVtYmVyfSBSZXR1cm5zIGxlc3MgdGhhbiAwIGlmIGEgcHJlY2VkZXMgYiwgZ3JlYXRlciB0aGFuIDAgaWYgYSBmb2xsb3dzIGJcbiAqL1xuZnVuY3Rpb24gc2libGluZ0NoZWNrKCBhLCBiICkge1xuXHR2YXIgY3VyID0gYiAmJiBhLFxuXHRcdGRpZmYgPSBjdXIgJiYgYS5ub2RlVHlwZSA9PT0gMSAmJiBiLm5vZGVUeXBlID09PSAxICYmXG5cdFx0XHQoIH5iLnNvdXJjZUluZGV4IHx8IE1BWF9ORUdBVElWRSApIC1cblx0XHRcdCggfmEuc291cmNlSW5kZXggfHwgTUFYX05FR0FUSVZFICk7XG5cblx0Ly8gVXNlIElFIHNvdXJjZUluZGV4IGlmIGF2YWlsYWJsZSBvbiBib3RoIG5vZGVzXG5cdGlmICggZGlmZiApIHtcblx0XHRyZXR1cm4gZGlmZjtcblx0fVxuXG5cdC8vIENoZWNrIGlmIGIgZm9sbG93cyBhXG5cdGlmICggY3VyICkge1xuXHRcdHdoaWxlICggKGN1ciA9IGN1ci5uZXh0U2libGluZykgKSB7XG5cdFx0XHRpZiAoIGN1ciA9PT0gYiApIHtcblx0XHRcdFx0cmV0dXJuIC0xO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBhID8gMSA6IC0xO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBmdW5jdGlvbiB0byB1c2UgaW4gcHNldWRvcyBmb3IgaW5wdXQgdHlwZXNcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUlucHV0UHNldWRvKCB0eXBlICkge1xuXHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0dmFyIG5hbWUgPSBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG5cdFx0cmV0dXJuIG5hbWUgPT09IFwiaW5wdXRcIiAmJiBlbGVtLnR5cGUgPT09IHR5cGU7XG5cdH07XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHRvIHVzZSBpbiBwc2V1ZG9zIGZvciBidXR0b25zXG4gKiBAcGFyYW0ge1N0cmluZ30gdHlwZVxuICovXG5mdW5jdGlvbiBjcmVhdGVCdXR0b25Qc2V1ZG8oIHR5cGUgKSB7XG5cdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHR2YXIgbmFtZSA9IGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblx0XHRyZXR1cm4gKG5hbWUgPT09IFwiaW5wdXRcIiB8fCBuYW1lID09PSBcImJ1dHRvblwiKSAmJiBlbGVtLnR5cGUgPT09IHR5cGU7XG5cdH07XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHRvIHVzZSBpbiBwc2V1ZG9zIGZvciBwb3NpdGlvbmFsc1xuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlUG9zaXRpb25hbFBzZXVkbyggZm4gKSB7XG5cdHJldHVybiBtYXJrRnVuY3Rpb24oZnVuY3Rpb24oIGFyZ3VtZW50ICkge1xuXHRcdGFyZ3VtZW50ID0gK2FyZ3VtZW50O1xuXHRcdHJldHVybiBtYXJrRnVuY3Rpb24oZnVuY3Rpb24oIHNlZWQsIG1hdGNoZXMgKSB7XG5cdFx0XHR2YXIgaixcblx0XHRcdFx0bWF0Y2hJbmRleGVzID0gZm4oIFtdLCBzZWVkLmxlbmd0aCwgYXJndW1lbnQgKSxcblx0XHRcdFx0aSA9IG1hdGNoSW5kZXhlcy5sZW5ndGg7XG5cblx0XHRcdC8vIE1hdGNoIGVsZW1lbnRzIGZvdW5kIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXhlc1xuXHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdGlmICggc2VlZFsgKGogPSBtYXRjaEluZGV4ZXNbaV0pIF0gKSB7XG5cdFx0XHRcdFx0c2VlZFtqXSA9ICEobWF0Y2hlc1tqXSA9IHNlZWRbal0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0pO1xufVxuXG4vKipcbiAqIENoZWNrcyBhIG5vZGUgZm9yIHZhbGlkaXR5IGFzIGEgU2l6emxlIGNvbnRleHRcbiAqIEBwYXJhbSB7RWxlbWVudHxPYmplY3Q9fSBjb250ZXh0XG4gKiBAcmV0dXJucyB7RWxlbWVudHxPYmplY3R8Qm9vbGVhbn0gVGhlIGlucHV0IG5vZGUgaWYgYWNjZXB0YWJsZSwgb3RoZXJ3aXNlIGEgZmFsc3kgdmFsdWVcbiAqL1xuZnVuY3Rpb24gdGVzdENvbnRleHQoIGNvbnRleHQgKSB7XG5cdHJldHVybiBjb250ZXh0ICYmIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSBcInVuZGVmaW5lZFwiICYmIGNvbnRleHQ7XG59XG5cbi8vIEV4cG9zZSBzdXBwb3J0IHZhcnMgZm9yIGNvbnZlbmllbmNlXG5zdXBwb3J0ID0gU2l6emxlLnN1cHBvcnQgPSB7fTtcblxuLyoqXG4gKiBEZXRlY3RzIFhNTCBub2Rlc1xuICogQHBhcmFtIHtFbGVtZW50fE9iamVjdH0gZWxlbSBBbiBlbGVtZW50IG9yIGEgZG9jdW1lbnRcbiAqIEByZXR1cm5zIHtCb29sZWFufSBUcnVlIGlmZiBlbGVtIGlzIGEgbm9uLUhUTUwgWE1MIG5vZGVcbiAqL1xuaXNYTUwgPSBTaXp6bGUuaXNYTUwgPSBmdW5jdGlvbiggZWxlbSApIHtcblx0Ly8gZG9jdW1lbnRFbGVtZW50IGlzIHZlcmlmaWVkIGZvciBjYXNlcyB3aGVyZSBpdCBkb2Vzbid0IHlldCBleGlzdFxuXHQvLyAoc3VjaCBhcyBsb2FkaW5nIGlmcmFtZXMgaW4gSUUgLSAjNDgzMylcblx0dmFyIGRvY3VtZW50RWxlbWVudCA9IGVsZW0gJiYgKGVsZW0ub3duZXJEb2N1bWVudCB8fCBlbGVtKS5kb2N1bWVudEVsZW1lbnQ7XG5cdHJldHVybiBkb2N1bWVudEVsZW1lbnQgPyBkb2N1bWVudEVsZW1lbnQubm9kZU5hbWUgIT09IFwiSFRNTFwiIDogZmFsc2U7XG59O1xuXG4vKipcbiAqIFNldHMgZG9jdW1lbnQtcmVsYXRlZCB2YXJpYWJsZXMgb25jZSBiYXNlZCBvbiB0aGUgY3VycmVudCBkb2N1bWVudFxuICogQHBhcmFtIHtFbGVtZW50fE9iamVjdH0gW2RvY10gQW4gZWxlbWVudCBvciBkb2N1bWVudCBvYmplY3QgdG8gdXNlIHRvIHNldCB0aGUgZG9jdW1lbnRcbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGN1cnJlbnQgZG9jdW1lbnRcbiAqL1xuc2V0RG9jdW1lbnQgPSBTaXp6bGUuc2V0RG9jdW1lbnQgPSBmdW5jdGlvbiggbm9kZSApIHtcblx0dmFyIGhhc0NvbXBhcmUsIHBhcmVudCxcblx0XHRkb2MgPSBub2RlID8gbm9kZS5vd25lckRvY3VtZW50IHx8IG5vZGUgOiBwcmVmZXJyZWREb2M7XG5cblx0Ly8gSWYgbm8gZG9jdW1lbnQgYW5kIGRvY3VtZW50RWxlbWVudCBpcyBhdmFpbGFibGUsIHJldHVyblxuXHRpZiAoIGRvYyA9PT0gZG9jdW1lbnQgfHwgZG9jLm5vZGVUeXBlICE9PSA5IHx8ICFkb2MuZG9jdW1lbnRFbGVtZW50ICkge1xuXHRcdHJldHVybiBkb2N1bWVudDtcblx0fVxuXG5cdC8vIFNldCBvdXIgZG9jdW1lbnRcblx0ZG9jdW1lbnQgPSBkb2M7XG5cdGRvY0VsZW0gPSBkb2MuZG9jdW1lbnRFbGVtZW50O1xuXHRwYXJlbnQgPSBkb2MuZGVmYXVsdFZpZXc7XG5cblx0Ly8gU3VwcG9ydDogSUU+OFxuXHQvLyBJZiBpZnJhbWUgZG9jdW1lbnQgaXMgYXNzaWduZWQgdG8gXCJkb2N1bWVudFwiIHZhcmlhYmxlIGFuZCBpZiBpZnJhbWUgaGFzIGJlZW4gcmVsb2FkZWQsXG5cdC8vIElFIHdpbGwgdGhyb3cgXCJwZXJtaXNzaW9uIGRlbmllZFwiIGVycm9yIHdoZW4gYWNjZXNzaW5nIFwiZG9jdW1lbnRcIiB2YXJpYWJsZSwgc2VlIGpRdWVyeSAjMTM5MzZcblx0Ly8gSUU2LTggZG8gbm90IHN1cHBvcnQgdGhlIGRlZmF1bHRWaWV3IHByb3BlcnR5IHNvIHBhcmVudCB3aWxsIGJlIHVuZGVmaW5lZFxuXHRpZiAoIHBhcmVudCAmJiBwYXJlbnQgIT09IHBhcmVudC50b3AgKSB7XG5cdFx0Ly8gSUUxMSBkb2VzIG5vdCBoYXZlIGF0dGFjaEV2ZW50LCBzbyBhbGwgbXVzdCBzdWZmZXJcblx0XHRpZiAoIHBhcmVudC5hZGRFdmVudExpc3RlbmVyICkge1xuXHRcdFx0cGFyZW50LmFkZEV2ZW50TGlzdGVuZXIoIFwidW5sb2FkXCIsIHVubG9hZEhhbmRsZXIsIGZhbHNlICk7XG5cdFx0fSBlbHNlIGlmICggcGFyZW50LmF0dGFjaEV2ZW50ICkge1xuXHRcdFx0cGFyZW50LmF0dGFjaEV2ZW50KCBcIm9udW5sb2FkXCIsIHVubG9hZEhhbmRsZXIgKTtcblx0XHR9XG5cdH1cblxuXHQvKiBTdXBwb3J0IHRlc3RzXG5cdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblx0ZG9jdW1lbnRJc0hUTUwgPSAhaXNYTUwoIGRvYyApO1xuXG5cdC8qIEF0dHJpYnV0ZXNcblx0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC8vIFN1cHBvcnQ6IElFPDhcblx0Ly8gVmVyaWZ5IHRoYXQgZ2V0QXR0cmlidXRlIHJlYWxseSByZXR1cm5zIGF0dHJpYnV0ZXMgYW5kIG5vdCBwcm9wZXJ0aWVzXG5cdC8vIChleGNlcHRpbmcgSUU4IGJvb2xlYW5zKVxuXHRzdXBwb3J0LmF0dHJpYnV0ZXMgPSBhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHtcblx0XHRkaXYuY2xhc3NOYW1lID0gXCJpXCI7XG5cdFx0cmV0dXJuICFkaXYuZ2V0QXR0cmlidXRlKFwiY2xhc3NOYW1lXCIpO1xuXHR9KTtcblxuXHQvKiBnZXRFbGVtZW50KHMpQnkqXG5cdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQvLyBDaGVjayBpZiBnZXRFbGVtZW50c0J5VGFnTmFtZShcIipcIikgcmV0dXJucyBvbmx5IGVsZW1lbnRzXG5cdHN1cHBvcnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUgPSBhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHtcblx0XHRkaXYuYXBwZW5kQ2hpbGQoIGRvYy5jcmVhdGVDb21tZW50KFwiXCIpICk7XG5cdFx0cmV0dXJuICFkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCIqXCIpLmxlbmd0aDtcblx0fSk7XG5cblx0Ly8gU3VwcG9ydDogSUU8OVxuXHRzdXBwb3J0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgPSBybmF0aXZlLnRlc3QoIGRvYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICk7XG5cblx0Ly8gU3VwcG9ydDogSUU8MTBcblx0Ly8gQ2hlY2sgaWYgZ2V0RWxlbWVudEJ5SWQgcmV0dXJucyBlbGVtZW50cyBieSBuYW1lXG5cdC8vIFRoZSBicm9rZW4gZ2V0RWxlbWVudEJ5SWQgbWV0aG9kcyBkb24ndCBwaWNrIHVwIHByb2dyYW1hdGljYWxseS1zZXQgbmFtZXMsXG5cdC8vIHNvIHVzZSBhIHJvdW5kYWJvdXQgZ2V0RWxlbWVudHNCeU5hbWUgdGVzdFxuXHRzdXBwb3J0LmdldEJ5SWQgPSBhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHtcblx0XHRkb2NFbGVtLmFwcGVuZENoaWxkKCBkaXYgKS5pZCA9IGV4cGFuZG87XG5cdFx0cmV0dXJuICFkb2MuZ2V0RWxlbWVudHNCeU5hbWUgfHwgIWRvYy5nZXRFbGVtZW50c0J5TmFtZSggZXhwYW5kbyApLmxlbmd0aDtcblx0fSk7XG5cblx0Ly8gSUQgZmluZCBhbmQgZmlsdGVyXG5cdGlmICggc3VwcG9ydC5nZXRCeUlkICkge1xuXHRcdEV4cHIuZmluZFtcIklEXCJdID0gZnVuY3Rpb24oIGlkLCBjb250ZXh0ICkge1xuXHRcdFx0aWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50QnlJZCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBkb2N1bWVudElzSFRNTCApIHtcblx0XHRcdFx0dmFyIG0gPSBjb250ZXh0LmdldEVsZW1lbnRCeUlkKCBpZCApO1xuXHRcdFx0XHQvLyBDaGVjayBwYXJlbnROb2RlIHRvIGNhdGNoIHdoZW4gQmxhY2tiZXJyeSA0LjYgcmV0dXJuc1xuXHRcdFx0XHQvLyBub2RlcyB0aGF0IGFyZSBubyBsb25nZXIgaW4gdGhlIGRvY3VtZW50ICM2OTYzXG5cdFx0XHRcdHJldHVybiBtICYmIG0ucGFyZW50Tm9kZSA/IFsgbSBdIDogW107XG5cdFx0XHR9XG5cdFx0fTtcblx0XHRFeHByLmZpbHRlcltcIklEXCJdID0gZnVuY3Rpb24oIGlkICkge1xuXHRcdFx0dmFyIGF0dHJJZCA9IGlkLnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICk7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHJldHVybiBlbGVtLmdldEF0dHJpYnV0ZShcImlkXCIpID09PSBhdHRySWQ7XG5cdFx0XHR9O1xuXHRcdH07XG5cdH0gZWxzZSB7XG5cdFx0Ly8gU3VwcG9ydDogSUU2Lzdcblx0XHQvLyBnZXRFbGVtZW50QnlJZCBpcyBub3QgcmVsaWFibGUgYXMgYSBmaW5kIHNob3J0Y3V0XG5cdFx0ZGVsZXRlIEV4cHIuZmluZFtcIklEXCJdO1xuXG5cdFx0RXhwci5maWx0ZXJbXCJJRFwiXSA9ICBmdW5jdGlvbiggaWQgKSB7XG5cdFx0XHR2YXIgYXR0cklkID0gaWQucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKTtcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0dmFyIG5vZGUgPSB0eXBlb2YgZWxlbS5nZXRBdHRyaWJ1dGVOb2RlICE9PSBcInVuZGVmaW5lZFwiICYmIGVsZW0uZ2V0QXR0cmlidXRlTm9kZShcImlkXCIpO1xuXHRcdFx0XHRyZXR1cm4gbm9kZSAmJiBub2RlLnZhbHVlID09PSBhdHRySWQ7XG5cdFx0XHR9O1xuXHRcdH07XG5cdH1cblxuXHQvLyBUYWdcblx0RXhwci5maW5kW1wiVEFHXCJdID0gc3VwcG9ydC5nZXRFbGVtZW50c0J5VGFnTmFtZSA/XG5cdFx0ZnVuY3Rpb24oIHRhZywgY29udGV4dCApIHtcblx0XHRcdGlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUgIT09IFwidW5kZWZpbmVkXCIgKSB7XG5cdFx0XHRcdHJldHVybiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCB0YWcgKTtcblxuXHRcdFx0Ly8gRG9jdW1lbnRGcmFnbWVudCBub2RlcyBkb24ndCBoYXZlIGdFQlROXG5cdFx0XHR9IGVsc2UgaWYgKCBzdXBwb3J0LnFzYSApIHtcblx0XHRcdFx0cmV0dXJuIGNvbnRleHQucXVlcnlTZWxlY3RvckFsbCggdGFnICk7XG5cdFx0XHR9XG5cdFx0fSA6XG5cblx0XHRmdW5jdGlvbiggdGFnLCBjb250ZXh0ICkge1xuXHRcdFx0dmFyIGVsZW0sXG5cdFx0XHRcdHRtcCA9IFtdLFxuXHRcdFx0XHRpID0gMCxcblx0XHRcdFx0Ly8gQnkgaGFwcHkgY29pbmNpZGVuY2UsIGEgKGJyb2tlbikgZ0VCVE4gYXBwZWFycyBvbiBEb2N1bWVudEZyYWdtZW50IG5vZGVzIHRvb1xuXHRcdFx0XHRyZXN1bHRzID0gY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggdGFnICk7XG5cblx0XHRcdC8vIEZpbHRlciBvdXQgcG9zc2libGUgY29tbWVudHNcblx0XHRcdGlmICggdGFnID09PSBcIipcIiApIHtcblx0XHRcdFx0d2hpbGUgKCAoZWxlbSA9IHJlc3VsdHNbaSsrXSkgKSB7XG5cdFx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXHRcdFx0XHRcdFx0dG1wLnB1c2goIGVsZW0gKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gdG1wO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0fTtcblxuXHQvLyBDbGFzc1xuXHRFeHByLmZpbmRbXCJDTEFTU1wiXSA9IHN1cHBvcnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSAmJiBmdW5jdGlvbiggY2xhc3NOYW1lLCBjb250ZXh0ICkge1xuXHRcdGlmICggZG9jdW1lbnRJc0hUTUwgKSB7XG5cdFx0XHRyZXR1cm4gY29udGV4dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCBjbGFzc05hbWUgKTtcblx0XHR9XG5cdH07XG5cblx0LyogUVNBL21hdGNoZXNTZWxlY3RvclxuXHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0Ly8gUVNBIGFuZCBtYXRjaGVzU2VsZWN0b3Igc3VwcG9ydFxuXG5cdC8vIG1hdGNoZXNTZWxlY3Rvcig6YWN0aXZlKSByZXBvcnRzIGZhbHNlIHdoZW4gdHJ1ZSAoSUU5L09wZXJhIDExLjUpXG5cdHJidWdneU1hdGNoZXMgPSBbXTtcblxuXHQvLyBxU2EoOmZvY3VzKSByZXBvcnRzIGZhbHNlIHdoZW4gdHJ1ZSAoQ2hyb21lIDIxKVxuXHQvLyBXZSBhbGxvdyB0aGlzIGJlY2F1c2Ugb2YgYSBidWcgaW4gSUU4LzkgdGhhdCB0aHJvd3MgYW4gZXJyb3Jcblx0Ly8gd2hlbmV2ZXIgYGRvY3VtZW50LmFjdGl2ZUVsZW1lbnRgIGlzIGFjY2Vzc2VkIG9uIGFuIGlmcmFtZVxuXHQvLyBTbywgd2UgYWxsb3cgOmZvY3VzIHRvIHBhc3MgdGhyb3VnaCBRU0EgYWxsIHRoZSB0aW1lIHRvIGF2b2lkIHRoZSBJRSBlcnJvclxuXHQvLyBTZWUgaHR0cDovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvMTMzNzhcblx0cmJ1Z2d5UVNBID0gW107XG5cblx0aWYgKCAoc3VwcG9ydC5xc2EgPSBybmF0aXZlLnRlc3QoIGRvYy5xdWVyeVNlbGVjdG9yQWxsICkpICkge1xuXHRcdC8vIEJ1aWxkIFFTQSByZWdleFxuXHRcdC8vIFJlZ2V4IHN0cmF0ZWd5IGFkb3B0ZWQgZnJvbSBEaWVnbyBQZXJpbmlcblx0XHRhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHtcblx0XHRcdC8vIFNlbGVjdCBpcyBzZXQgdG8gZW1wdHkgc3RyaW5nIG9uIHB1cnBvc2Vcblx0XHRcdC8vIFRoaXMgaXMgdG8gdGVzdCBJRSdzIHRyZWF0bWVudCBvZiBub3QgZXhwbGljaXRseVxuXHRcdFx0Ly8gc2V0dGluZyBhIGJvb2xlYW4gY29udGVudCBhdHRyaWJ1dGUsXG5cdFx0XHQvLyBzaW5jZSBpdHMgcHJlc2VuY2Ugc2hvdWxkIGJlIGVub3VnaFxuXHRcdFx0Ly8gaHR0cDovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvMTIzNTlcblx0XHRcdGRvY0VsZW0uYXBwZW5kQ2hpbGQoIGRpdiApLmlubmVySFRNTCA9IFwiPGEgaWQ9J1wiICsgZXhwYW5kbyArIFwiJz48L2E+XCIgK1xuXHRcdFx0XHRcIjxzZWxlY3QgaWQ9J1wiICsgZXhwYW5kbyArIFwiLVxcZl0nIG1zYWxsb3djYXB0dXJlPScnPlwiICtcblx0XHRcdFx0XCI8b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PlwiO1xuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRTgsIE9wZXJhIDExLTEyLjE2XG5cdFx0XHQvLyBOb3RoaW5nIHNob3VsZCBiZSBzZWxlY3RlZCB3aGVuIGVtcHR5IHN0cmluZ3MgZm9sbG93IF49IG9yICQ9IG9yICo9XG5cdFx0XHQvLyBUaGUgdGVzdCBhdHRyaWJ1dGUgbXVzdCBiZSB1bmtub3duIGluIE9wZXJhIGJ1dCBcInNhZmVcIiBmb3IgV2luUlRcblx0XHRcdC8vIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9pZS9oaDQ2NTM4OC5hc3B4I2F0dHJpYnV0ZV9zZWN0aW9uXG5cdFx0XHRpZiAoIGRpdi5xdWVyeVNlbGVjdG9yQWxsKFwiW21zYWxsb3djYXB0dXJlXj0nJ11cIikubGVuZ3RoICkge1xuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaCggXCJbKl4kXT1cIiArIHdoaXRlc3BhY2UgKyBcIiooPzonJ3xcXFwiXFxcIilcIiApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRThcblx0XHRcdC8vIEJvb2xlYW4gYXR0cmlidXRlcyBhbmQgXCJ2YWx1ZVwiIGFyZSBub3QgdHJlYXRlZCBjb3JyZWN0bHlcblx0XHRcdGlmICggIWRpdi5xdWVyeVNlbGVjdG9yQWxsKFwiW3NlbGVjdGVkXVwiKS5sZW5ndGggKSB7XG5cdFx0XHRcdHJidWdneVFTQS5wdXNoKCBcIlxcXFxbXCIgKyB3aGl0ZXNwYWNlICsgXCIqKD86dmFsdWV8XCIgKyBib29sZWFucyArIFwiKVwiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN1cHBvcnQ6IENocm9tZTwyOSwgQW5kcm9pZDw0LjIrLCBTYWZhcmk8Ny4wKywgaU9TPDcuMCssIFBoYW50b21KUzwxLjkuNytcblx0XHRcdGlmICggIWRpdi5xdWVyeVNlbGVjdG9yQWxsKCBcIltpZH49XCIgKyBleHBhbmRvICsgXCItXVwiICkubGVuZ3RoICkge1xuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaChcIn49XCIpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBXZWJraXQvT3BlcmEgLSA6Y2hlY2tlZCBzaG91bGQgcmV0dXJuIHNlbGVjdGVkIG9wdGlvbiBlbGVtZW50c1xuXHRcdFx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMS9SRUMtY3NzMy1zZWxlY3RvcnMtMjAxMTA5MjkvI2NoZWNrZWRcblx0XHRcdC8vIElFOCB0aHJvd3MgZXJyb3IgaGVyZSBhbmQgd2lsbCBub3Qgc2VlIGxhdGVyIHRlc3RzXG5cdFx0XHRpZiAoICFkaXYucXVlcnlTZWxlY3RvckFsbChcIjpjaGVja2VkXCIpLmxlbmd0aCApIHtcblx0XHRcdFx0cmJ1Z2d5UVNBLnB1c2goXCI6Y2hlY2tlZFwiKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gU3VwcG9ydDogU2FmYXJpIDgrLCBpT1MgOCtcblx0XHRcdC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY4NTFcblx0XHRcdC8vIEluLXBhZ2UgYHNlbGVjdG9yI2lkIHNpYmluZy1jb21iaW5hdG9yIHNlbGVjdG9yYCBmYWlsc1xuXHRcdFx0aWYgKCAhZGl2LnF1ZXJ5U2VsZWN0b3JBbGwoIFwiYSNcIiArIGV4cGFuZG8gKyBcIisqXCIgKS5sZW5ndGggKSB7XG5cdFx0XHRcdHJidWdneVFTQS5wdXNoKFwiLiMuK1srfl1cIik7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHtcblx0XHRcdC8vIFN1cHBvcnQ6IFdpbmRvd3MgOCBOYXRpdmUgQXBwc1xuXHRcdFx0Ly8gVGhlIHR5cGUgYW5kIG5hbWUgYXR0cmlidXRlcyBhcmUgcmVzdHJpY3RlZCBkdXJpbmcgLmlubmVySFRNTCBhc3NpZ25tZW50XG5cdFx0XHR2YXIgaW5wdXQgPSBkb2MuY3JlYXRlRWxlbWVudChcImlucHV0XCIpO1xuXHRcdFx0aW5wdXQuc2V0QXR0cmlidXRlKCBcInR5cGVcIiwgXCJoaWRkZW5cIiApO1xuXHRcdFx0ZGl2LmFwcGVuZENoaWxkKCBpbnB1dCApLnNldEF0dHJpYnV0ZSggXCJuYW1lXCIsIFwiRFwiICk7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFOFxuXHRcdFx0Ly8gRW5mb3JjZSBjYXNlLXNlbnNpdGl2aXR5IG9mIG5hbWUgYXR0cmlidXRlXG5cdFx0XHRpZiAoIGRpdi5xdWVyeVNlbGVjdG9yQWxsKFwiW25hbWU9ZF1cIikubGVuZ3RoICkge1xuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaCggXCJuYW1lXCIgKyB3aGl0ZXNwYWNlICsgXCIqWypeJHwhfl0/PVwiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEZGIDMuNSAtIDplbmFibGVkLzpkaXNhYmxlZCBhbmQgaGlkZGVuIGVsZW1lbnRzIChoaWRkZW4gZWxlbWVudHMgYXJlIHN0aWxsIGVuYWJsZWQpXG5cdFx0XHQvLyBJRTggdGhyb3dzIGVycm9yIGhlcmUgYW5kIHdpbGwgbm90IHNlZSBsYXRlciB0ZXN0c1xuXHRcdFx0aWYgKCAhZGl2LnF1ZXJ5U2VsZWN0b3JBbGwoXCI6ZW5hYmxlZFwiKS5sZW5ndGggKSB7XG5cdFx0XHRcdHJidWdneVFTQS5wdXNoKCBcIjplbmFibGVkXCIsIFwiOmRpc2FibGVkXCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gT3BlcmEgMTAtMTEgZG9lcyBub3QgdGhyb3cgb24gcG9zdC1jb21tYSBpbnZhbGlkIHBzZXVkb3Ncblx0XHRcdGRpdi5xdWVyeVNlbGVjdG9yQWxsKFwiKiw6eFwiKTtcblx0XHRcdHJidWdneVFTQS5wdXNoKFwiLC4qOlwiKTtcblx0XHR9KTtcblx0fVxuXG5cdGlmICggKHN1cHBvcnQubWF0Y2hlc1NlbGVjdG9yID0gcm5hdGl2ZS50ZXN0KCAobWF0Y2hlcyA9IGRvY0VsZW0ubWF0Y2hlcyB8fFxuXHRcdGRvY0VsZW0ud2Via2l0TWF0Y2hlc1NlbGVjdG9yIHx8XG5cdFx0ZG9jRWxlbS5tb3pNYXRjaGVzU2VsZWN0b3IgfHxcblx0XHRkb2NFbGVtLm9NYXRjaGVzU2VsZWN0b3IgfHxcblx0XHRkb2NFbGVtLm1zTWF0Y2hlc1NlbGVjdG9yKSApKSApIHtcblxuXHRcdGFzc2VydChmdW5jdGlvbiggZGl2ICkge1xuXHRcdFx0Ly8gQ2hlY2sgdG8gc2VlIGlmIGl0J3MgcG9zc2libGUgdG8gZG8gbWF0Y2hlc1NlbGVjdG9yXG5cdFx0XHQvLyBvbiBhIGRpc2Nvbm5lY3RlZCBub2RlIChJRSA5KVxuXHRcdFx0c3VwcG9ydC5kaXNjb25uZWN0ZWRNYXRjaCA9IG1hdGNoZXMuY2FsbCggZGl2LCBcImRpdlwiICk7XG5cblx0XHRcdC8vIFRoaXMgc2hvdWxkIGZhaWwgd2l0aCBhbiBleGNlcHRpb25cblx0XHRcdC8vIEdlY2tvIGRvZXMgbm90IGVycm9yLCByZXR1cm5zIGZhbHNlIGluc3RlYWRcblx0XHRcdG1hdGNoZXMuY2FsbCggZGl2LCBcIltzIT0nJ106eFwiICk7XG5cdFx0XHRyYnVnZ3lNYXRjaGVzLnB1c2goIFwiIT1cIiwgcHNldWRvcyApO1xuXHRcdH0pO1xuXHR9XG5cblx0cmJ1Z2d5UVNBID0gcmJ1Z2d5UVNBLmxlbmd0aCAmJiBuZXcgUmVnRXhwKCByYnVnZ3lRU0Euam9pbihcInxcIikgKTtcblx0cmJ1Z2d5TWF0Y2hlcyA9IHJidWdneU1hdGNoZXMubGVuZ3RoICYmIG5ldyBSZWdFeHAoIHJidWdneU1hdGNoZXMuam9pbihcInxcIikgKTtcblxuXHQvKiBDb250YWluc1xuXHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cdGhhc0NvbXBhcmUgPSBybmF0aXZlLnRlc3QoIGRvY0VsZW0uY29tcGFyZURvY3VtZW50UG9zaXRpb24gKTtcblxuXHQvLyBFbGVtZW50IGNvbnRhaW5zIGFub3RoZXJcblx0Ly8gUHVycG9zZWZ1bGx5IGRvZXMgbm90IGltcGxlbWVudCBpbmNsdXNpdmUgZGVzY2VuZGVudFxuXHQvLyBBcyBpbiwgYW4gZWxlbWVudCBkb2VzIG5vdCBjb250YWluIGl0c2VsZlxuXHRjb250YWlucyA9IGhhc0NvbXBhcmUgfHwgcm5hdGl2ZS50ZXN0KCBkb2NFbGVtLmNvbnRhaW5zICkgP1xuXHRcdGZ1bmN0aW9uKCBhLCBiICkge1xuXHRcdFx0dmFyIGFkb3duID0gYS5ub2RlVHlwZSA9PT0gOSA/IGEuZG9jdW1lbnRFbGVtZW50IDogYSxcblx0XHRcdFx0YnVwID0gYiAmJiBiLnBhcmVudE5vZGU7XG5cdFx0XHRyZXR1cm4gYSA9PT0gYnVwIHx8ICEhKCBidXAgJiYgYnVwLm5vZGVUeXBlID09PSAxICYmIChcblx0XHRcdFx0YWRvd24uY29udGFpbnMgP1xuXHRcdFx0XHRcdGFkb3duLmNvbnRhaW5zKCBidXAgKSA6XG5cdFx0XHRcdFx0YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiAmJiBhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCBidXAgKSAmIDE2XG5cdFx0XHQpKTtcblx0XHR9IDpcblx0XHRmdW5jdGlvbiggYSwgYiApIHtcblx0XHRcdGlmICggYiApIHtcblx0XHRcdFx0d2hpbGUgKCAoYiA9IGIucGFyZW50Tm9kZSkgKSB7XG5cdFx0XHRcdFx0aWYgKCBiID09PSBhICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fTtcblxuXHQvKiBTb3J0aW5nXG5cdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuXHQvLyBEb2N1bWVudCBvcmRlciBzb3J0aW5nXG5cdHNvcnRPcmRlciA9IGhhc0NvbXBhcmUgP1xuXHRmdW5jdGlvbiggYSwgYiApIHtcblxuXHRcdC8vIEZsYWcgZm9yIGR1cGxpY2F0ZSByZW1vdmFsXG5cdFx0aWYgKCBhID09PSBiICkge1xuXHRcdFx0aGFzRHVwbGljYXRlID0gdHJ1ZTtcblx0XHRcdHJldHVybiAwO1xuXHRcdH1cblxuXHRcdC8vIFNvcnQgb24gbWV0aG9kIGV4aXN0ZW5jZSBpZiBvbmx5IG9uZSBpbnB1dCBoYXMgY29tcGFyZURvY3VtZW50UG9zaXRpb25cblx0XHR2YXIgY29tcGFyZSA9ICFhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIC0gIWIuY29tcGFyZURvY3VtZW50UG9zaXRpb247XG5cdFx0aWYgKCBjb21wYXJlICkge1xuXHRcdFx0cmV0dXJuIGNvbXBhcmU7XG5cdFx0fVxuXG5cdFx0Ly8gQ2FsY3VsYXRlIHBvc2l0aW9uIGlmIGJvdGggaW5wdXRzIGJlbG9uZyB0byB0aGUgc2FtZSBkb2N1bWVudFxuXHRcdGNvbXBhcmUgPSAoIGEub3duZXJEb2N1bWVudCB8fCBhICkgPT09ICggYi5vd25lckRvY3VtZW50IHx8IGIgKSA/XG5cdFx0XHRhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCBiICkgOlxuXG5cdFx0XHQvLyBPdGhlcndpc2Ugd2Uga25vdyB0aGV5IGFyZSBkaXNjb25uZWN0ZWRcblx0XHRcdDE7XG5cblx0XHQvLyBEaXNjb25uZWN0ZWQgbm9kZXNcblx0XHRpZiAoIGNvbXBhcmUgJiAxIHx8XG5cdFx0XHQoIXN1cHBvcnQuc29ydERldGFjaGVkICYmIGIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oIGEgKSA9PT0gY29tcGFyZSkgKSB7XG5cblx0XHRcdC8vIENob29zZSB0aGUgZmlyc3QgZWxlbWVudCB0aGF0IGlzIHJlbGF0ZWQgdG8gb3VyIHByZWZlcnJlZCBkb2N1bWVudFxuXHRcdFx0aWYgKCBhID09PSBkb2MgfHwgYS5vd25lckRvY3VtZW50ID09PSBwcmVmZXJyZWREb2MgJiYgY29udGFpbnMocHJlZmVycmVkRG9jLCBhKSApIHtcblx0XHRcdFx0cmV0dXJuIC0xO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCBiID09PSBkb2MgfHwgYi5vd25lckRvY3VtZW50ID09PSBwcmVmZXJyZWREb2MgJiYgY29udGFpbnMocHJlZmVycmVkRG9jLCBiKSApIHtcblx0XHRcdFx0cmV0dXJuIDE7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE1haW50YWluIG9yaWdpbmFsIG9yZGVyXG5cdFx0XHRyZXR1cm4gc29ydElucHV0ID9cblx0XHRcdFx0KCBpbmRleE9mKCBzb3J0SW5wdXQsIGEgKSAtIGluZGV4T2YoIHNvcnRJbnB1dCwgYiApICkgOlxuXHRcdFx0XHQwO1xuXHRcdH1cblxuXHRcdHJldHVybiBjb21wYXJlICYgNCA/IC0xIDogMTtcblx0fSA6XG5cdGZ1bmN0aW9uKCBhLCBiICkge1xuXHRcdC8vIEV4aXQgZWFybHkgaWYgdGhlIG5vZGVzIGFyZSBpZGVudGljYWxcblx0XHRpZiAoIGEgPT09IGIgKSB7XG5cdFx0XHRoYXNEdXBsaWNhdGUgPSB0cnVlO1xuXHRcdFx0cmV0dXJuIDA7XG5cdFx0fVxuXG5cdFx0dmFyIGN1cixcblx0XHRcdGkgPSAwLFxuXHRcdFx0YXVwID0gYS5wYXJlbnROb2RlLFxuXHRcdFx0YnVwID0gYi5wYXJlbnROb2RlLFxuXHRcdFx0YXAgPSBbIGEgXSxcblx0XHRcdGJwID0gWyBiIF07XG5cblx0XHQvLyBQYXJlbnRsZXNzIG5vZGVzIGFyZSBlaXRoZXIgZG9jdW1lbnRzIG9yIGRpc2Nvbm5lY3RlZFxuXHRcdGlmICggIWF1cCB8fCAhYnVwICkge1xuXHRcdFx0cmV0dXJuIGEgPT09IGRvYyA/IC0xIDpcblx0XHRcdFx0YiA9PT0gZG9jID8gMSA6XG5cdFx0XHRcdGF1cCA/IC0xIDpcblx0XHRcdFx0YnVwID8gMSA6XG5cdFx0XHRcdHNvcnRJbnB1dCA/XG5cdFx0XHRcdCggaW5kZXhPZiggc29ydElucHV0LCBhICkgLSBpbmRleE9mKCBzb3J0SW5wdXQsIGIgKSApIDpcblx0XHRcdFx0MDtcblxuXHRcdC8vIElmIHRoZSBub2RlcyBhcmUgc2libGluZ3MsIHdlIGNhbiBkbyBhIHF1aWNrIGNoZWNrXG5cdFx0fSBlbHNlIGlmICggYXVwID09PSBidXAgKSB7XG5cdFx0XHRyZXR1cm4gc2libGluZ0NoZWNrKCBhLCBiICk7XG5cdFx0fVxuXG5cdFx0Ly8gT3RoZXJ3aXNlIHdlIG5lZWQgZnVsbCBsaXN0cyBvZiB0aGVpciBhbmNlc3RvcnMgZm9yIGNvbXBhcmlzb25cblx0XHRjdXIgPSBhO1xuXHRcdHdoaWxlICggKGN1ciA9IGN1ci5wYXJlbnROb2RlKSApIHtcblx0XHRcdGFwLnVuc2hpZnQoIGN1ciApO1xuXHRcdH1cblx0XHRjdXIgPSBiO1xuXHRcdHdoaWxlICggKGN1ciA9IGN1ci5wYXJlbnROb2RlKSApIHtcblx0XHRcdGJwLnVuc2hpZnQoIGN1ciApO1xuXHRcdH1cblxuXHRcdC8vIFdhbGsgZG93biB0aGUgdHJlZSBsb29raW5nIGZvciBhIGRpc2NyZXBhbmN5XG5cdFx0d2hpbGUgKCBhcFtpXSA9PT0gYnBbaV0gKSB7XG5cdFx0XHRpKys7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGkgP1xuXHRcdFx0Ly8gRG8gYSBzaWJsaW5nIGNoZWNrIGlmIHRoZSBub2RlcyBoYXZlIGEgY29tbW9uIGFuY2VzdG9yXG5cdFx0XHRzaWJsaW5nQ2hlY2soIGFwW2ldLCBicFtpXSApIDpcblxuXHRcdFx0Ly8gT3RoZXJ3aXNlIG5vZGVzIGluIG91ciBkb2N1bWVudCBzb3J0IGZpcnN0XG5cdFx0XHRhcFtpXSA9PT0gcHJlZmVycmVkRG9jID8gLTEgOlxuXHRcdFx0YnBbaV0gPT09IHByZWZlcnJlZERvYyA/IDEgOlxuXHRcdFx0MDtcblx0fTtcblxuXHRyZXR1cm4gZG9jO1xufTtcblxuU2l6emxlLm1hdGNoZXMgPSBmdW5jdGlvbiggZXhwciwgZWxlbWVudHMgKSB7XG5cdHJldHVybiBTaXp6bGUoIGV4cHIsIG51bGwsIG51bGwsIGVsZW1lbnRzICk7XG59O1xuXG5TaXp6bGUubWF0Y2hlc1NlbGVjdG9yID0gZnVuY3Rpb24oIGVsZW0sIGV4cHIgKSB7XG5cdC8vIFNldCBkb2N1bWVudCB2YXJzIGlmIG5lZWRlZFxuXHRpZiAoICggZWxlbS5vd25lckRvY3VtZW50IHx8IGVsZW0gKSAhPT0gZG9jdW1lbnQgKSB7XG5cdFx0c2V0RG9jdW1lbnQoIGVsZW0gKTtcblx0fVxuXG5cdC8vIE1ha2Ugc3VyZSB0aGF0IGF0dHJpYnV0ZSBzZWxlY3RvcnMgYXJlIHF1b3RlZFxuXHRleHByID0gZXhwci5yZXBsYWNlKCByYXR0cmlidXRlUXVvdGVzLCBcIj0nJDEnXVwiICk7XG5cblx0aWYgKCBzdXBwb3J0Lm1hdGNoZXNTZWxlY3RvciAmJiBkb2N1bWVudElzSFRNTCAmJlxuXHRcdCggIXJidWdneU1hdGNoZXMgfHwgIXJidWdneU1hdGNoZXMudGVzdCggZXhwciApICkgJiZcblx0XHQoICFyYnVnZ3lRU0EgICAgIHx8ICFyYnVnZ3lRU0EudGVzdCggZXhwciApICkgKSB7XG5cblx0XHR0cnkge1xuXHRcdFx0dmFyIHJldCA9IG1hdGNoZXMuY2FsbCggZWxlbSwgZXhwciApO1xuXG5cdFx0XHQvLyBJRSA5J3MgbWF0Y2hlc1NlbGVjdG9yIHJldHVybnMgZmFsc2Ugb24gZGlzY29ubmVjdGVkIG5vZGVzXG5cdFx0XHRpZiAoIHJldCB8fCBzdXBwb3J0LmRpc2Nvbm5lY3RlZE1hdGNoIHx8XG5cdFx0XHRcdFx0Ly8gQXMgd2VsbCwgZGlzY29ubmVjdGVkIG5vZGVzIGFyZSBzYWlkIHRvIGJlIGluIGEgZG9jdW1lbnRcblx0XHRcdFx0XHQvLyBmcmFnbWVudCBpbiBJRSA5XG5cdFx0XHRcdFx0ZWxlbS5kb2N1bWVudCAmJiBlbGVtLmRvY3VtZW50Lm5vZGVUeXBlICE9PSAxMSApIHtcblx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdH1cblx0XHR9IGNhdGNoIChlKSB7fVxuXHR9XG5cblx0cmV0dXJuIFNpenpsZSggZXhwciwgZG9jdW1lbnQsIG51bGwsIFsgZWxlbSBdICkubGVuZ3RoID4gMDtcbn07XG5cblNpenpsZS5jb250YWlucyA9IGZ1bmN0aW9uKCBjb250ZXh0LCBlbGVtICkge1xuXHQvLyBTZXQgZG9jdW1lbnQgdmFycyBpZiBuZWVkZWRcblx0aWYgKCAoIGNvbnRleHQub3duZXJEb2N1bWVudCB8fCBjb250ZXh0ICkgIT09IGRvY3VtZW50ICkge1xuXHRcdHNldERvY3VtZW50KCBjb250ZXh0ICk7XG5cdH1cblx0cmV0dXJuIGNvbnRhaW5zKCBjb250ZXh0LCBlbGVtICk7XG59O1xuXG5TaXp6bGUuYXR0ciA9IGZ1bmN0aW9uKCBlbGVtLCBuYW1lICkge1xuXHQvLyBTZXQgZG9jdW1lbnQgdmFycyBpZiBuZWVkZWRcblx0aWYgKCAoIGVsZW0ub3duZXJEb2N1bWVudCB8fCBlbGVtICkgIT09IGRvY3VtZW50ICkge1xuXHRcdHNldERvY3VtZW50KCBlbGVtICk7XG5cdH1cblxuXHR2YXIgZm4gPSBFeHByLmF0dHJIYW5kbGVbIG5hbWUudG9Mb3dlckNhc2UoKSBdLFxuXHRcdC8vIERvbid0IGdldCBmb29sZWQgYnkgT2JqZWN0LnByb3RvdHlwZSBwcm9wZXJ0aWVzIChqUXVlcnkgIzEzODA3KVxuXHRcdHZhbCA9IGZuICYmIGhhc093bi5jYWxsKCBFeHByLmF0dHJIYW5kbGUsIG5hbWUudG9Mb3dlckNhc2UoKSApID9cblx0XHRcdGZuKCBlbGVtLCBuYW1lLCAhZG9jdW1lbnRJc0hUTUwgKSA6XG5cdFx0XHR1bmRlZmluZWQ7XG5cblx0cmV0dXJuIHZhbCAhPT0gdW5kZWZpbmVkID9cblx0XHR2YWwgOlxuXHRcdHN1cHBvcnQuYXR0cmlidXRlcyB8fCAhZG9jdW1lbnRJc0hUTUwgP1xuXHRcdFx0ZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUgKSA6XG5cdFx0XHQodmFsID0gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKG5hbWUpKSAmJiB2YWwuc3BlY2lmaWVkID9cblx0XHRcdFx0dmFsLnZhbHVlIDpcblx0XHRcdFx0bnVsbDtcbn07XG5cblNpenpsZS5lcnJvciA9IGZ1bmN0aW9uKCBtc2cgKSB7XG5cdHRocm93IG5ldyBFcnJvciggXCJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiBcIiArIG1zZyApO1xufTtcblxuLyoqXG4gKiBEb2N1bWVudCBzb3J0aW5nIGFuZCByZW1vdmluZyBkdXBsaWNhdGVzXG4gKiBAcGFyYW0ge0FycmF5TGlrZX0gcmVzdWx0c1xuICovXG5TaXp6bGUudW5pcXVlU29ydCA9IGZ1bmN0aW9uKCByZXN1bHRzICkge1xuXHR2YXIgZWxlbSxcblx0XHRkdXBsaWNhdGVzID0gW10sXG5cdFx0aiA9IDAsXG5cdFx0aSA9IDA7XG5cblx0Ly8gVW5sZXNzIHdlICprbm93KiB3ZSBjYW4gZGV0ZWN0IGR1cGxpY2F0ZXMsIGFzc3VtZSB0aGVpciBwcmVzZW5jZVxuXHRoYXNEdXBsaWNhdGUgPSAhc3VwcG9ydC5kZXRlY3REdXBsaWNhdGVzO1xuXHRzb3J0SW5wdXQgPSAhc3VwcG9ydC5zb3J0U3RhYmxlICYmIHJlc3VsdHMuc2xpY2UoIDAgKTtcblx0cmVzdWx0cy5zb3J0KCBzb3J0T3JkZXIgKTtcblxuXHRpZiAoIGhhc0R1cGxpY2F0ZSApIHtcblx0XHR3aGlsZSAoIChlbGVtID0gcmVzdWx0c1tpKytdKSApIHtcblx0XHRcdGlmICggZWxlbSA9PT0gcmVzdWx0c1sgaSBdICkge1xuXHRcdFx0XHRqID0gZHVwbGljYXRlcy5wdXNoKCBpICk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHdoaWxlICggai0tICkge1xuXHRcdFx0cmVzdWx0cy5zcGxpY2UoIGR1cGxpY2F0ZXNbIGogXSwgMSApO1xuXHRcdH1cblx0fVxuXG5cdC8vIENsZWFyIGlucHV0IGFmdGVyIHNvcnRpbmcgdG8gcmVsZWFzZSBvYmplY3RzXG5cdC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L3NpenpsZS9wdWxsLzIyNVxuXHRzb3J0SW5wdXQgPSBudWxsO1xuXG5cdHJldHVybiByZXN1bHRzO1xufTtcblxuLyoqXG4gKiBVdGlsaXR5IGZ1bmN0aW9uIGZvciByZXRyaWV2aW5nIHRoZSB0ZXh0IHZhbHVlIG9mIGFuIGFycmF5IG9mIERPTSBub2Rlc1xuICogQHBhcmFtIHtBcnJheXxFbGVtZW50fSBlbGVtXG4gKi9cbmdldFRleHQgPSBTaXp6bGUuZ2V0VGV4dCA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHR2YXIgbm9kZSxcblx0XHRyZXQgPSBcIlwiLFxuXHRcdGkgPSAwLFxuXHRcdG5vZGVUeXBlID0gZWxlbS5ub2RlVHlwZTtcblxuXHRpZiAoICFub2RlVHlwZSApIHtcblx0XHQvLyBJZiBubyBub2RlVHlwZSwgdGhpcyBpcyBleHBlY3RlZCB0byBiZSBhbiBhcnJheVxuXHRcdHdoaWxlICggKG5vZGUgPSBlbGVtW2krK10pICkge1xuXHRcdFx0Ly8gRG8gbm90IHRyYXZlcnNlIGNvbW1lbnQgbm9kZXNcblx0XHRcdHJldCArPSBnZXRUZXh0KCBub2RlICk7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKCBub2RlVHlwZSA9PT0gMSB8fCBub2RlVHlwZSA9PT0gOSB8fCBub2RlVHlwZSA9PT0gMTEgKSB7XG5cdFx0Ly8gVXNlIHRleHRDb250ZW50IGZvciBlbGVtZW50c1xuXHRcdC8vIGlubmVyVGV4dCB1c2FnZSByZW1vdmVkIGZvciBjb25zaXN0ZW5jeSBvZiBuZXcgbGluZXMgKGpRdWVyeSAjMTExNTMpXG5cdFx0aWYgKCB0eXBlb2YgZWxlbS50ZXh0Q29udGVudCA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHJldHVybiBlbGVtLnRleHRDb250ZW50O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBUcmF2ZXJzZSBpdHMgY2hpbGRyZW5cblx0XHRcdGZvciAoIGVsZW0gPSBlbGVtLmZpcnN0Q2hpbGQ7IGVsZW07IGVsZW0gPSBlbGVtLm5leHRTaWJsaW5nICkge1xuXHRcdFx0XHRyZXQgKz0gZ2V0VGV4dCggZWxlbSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fSBlbHNlIGlmICggbm9kZVR5cGUgPT09IDMgfHwgbm9kZVR5cGUgPT09IDQgKSB7XG5cdFx0cmV0dXJuIGVsZW0ubm9kZVZhbHVlO1xuXHR9XG5cdC8vIERvIG5vdCBpbmNsdWRlIGNvbW1lbnQgb3IgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBub2Rlc1xuXG5cdHJldHVybiByZXQ7XG59O1xuXG5FeHByID0gU2l6emxlLnNlbGVjdG9ycyA9IHtcblxuXHQvLyBDYW4gYmUgYWRqdXN0ZWQgYnkgdGhlIHVzZXJcblx0Y2FjaGVMZW5ndGg6IDUwLFxuXG5cdGNyZWF0ZVBzZXVkbzogbWFya0Z1bmN0aW9uLFxuXG5cdG1hdGNoOiBtYXRjaEV4cHIsXG5cblx0YXR0ckhhbmRsZToge30sXG5cblx0ZmluZDoge30sXG5cblx0cmVsYXRpdmU6IHtcblx0XHRcIj5cIjogeyBkaXI6IFwicGFyZW50Tm9kZVwiLCBmaXJzdDogdHJ1ZSB9LFxuXHRcdFwiIFwiOiB7IGRpcjogXCJwYXJlbnROb2RlXCIgfSxcblx0XHRcIitcIjogeyBkaXI6IFwicHJldmlvdXNTaWJsaW5nXCIsIGZpcnN0OiB0cnVlIH0sXG5cdFx0XCJ+XCI6IHsgZGlyOiBcInByZXZpb3VzU2libGluZ1wiIH1cblx0fSxcblxuXHRwcmVGaWx0ZXI6IHtcblx0XHRcIkFUVFJcIjogZnVuY3Rpb24oIG1hdGNoICkge1xuXHRcdFx0bWF0Y2hbMV0gPSBtYXRjaFsxXS5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApO1xuXG5cdFx0XHQvLyBNb3ZlIHRoZSBnaXZlbiB2YWx1ZSB0byBtYXRjaFszXSB3aGV0aGVyIHF1b3RlZCBvciB1bnF1b3RlZFxuXHRcdFx0bWF0Y2hbM10gPSAoIG1hdGNoWzNdIHx8IG1hdGNoWzRdIHx8IG1hdGNoWzVdIHx8IFwiXCIgKS5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApO1xuXG5cdFx0XHRpZiAoIG1hdGNoWzJdID09PSBcIn49XCIgKSB7XG5cdFx0XHRcdG1hdGNoWzNdID0gXCIgXCIgKyBtYXRjaFszXSArIFwiIFwiO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbWF0Y2guc2xpY2UoIDAsIDQgKTtcblx0XHR9LFxuXG5cdFx0XCJDSElMRFwiOiBmdW5jdGlvbiggbWF0Y2ggKSB7XG5cdFx0XHQvKiBtYXRjaGVzIGZyb20gbWF0Y2hFeHByW1wiQ0hJTERcIl1cblx0XHRcdFx0MSB0eXBlIChvbmx5fG50aHwuLi4pXG5cdFx0XHRcdDIgd2hhdCAoY2hpbGR8b2YtdHlwZSlcblx0XHRcdFx0MyBhcmd1bWVudCAoZXZlbnxvZGR8XFxkKnxcXGQqbihbKy1dXFxkKyk/fC4uLilcblx0XHRcdFx0NCB4bi1jb21wb25lbnQgb2YgeG4reSBhcmd1bWVudCAoWystXT9cXGQqbnwpXG5cdFx0XHRcdDUgc2lnbiBvZiB4bi1jb21wb25lbnRcblx0XHRcdFx0NiB4IG9mIHhuLWNvbXBvbmVudFxuXHRcdFx0XHQ3IHNpZ24gb2YgeS1jb21wb25lbnRcblx0XHRcdFx0OCB5IG9mIHktY29tcG9uZW50XG5cdFx0XHQqL1xuXHRcdFx0bWF0Y2hbMV0gPSBtYXRjaFsxXS50b0xvd2VyQ2FzZSgpO1xuXG5cdFx0XHRpZiAoIG1hdGNoWzFdLnNsaWNlKCAwLCAzICkgPT09IFwibnRoXCIgKSB7XG5cdFx0XHRcdC8vIG50aC0qIHJlcXVpcmVzIGFyZ3VtZW50XG5cdFx0XHRcdGlmICggIW1hdGNoWzNdICkge1xuXHRcdFx0XHRcdFNpenpsZS5lcnJvciggbWF0Y2hbMF0gKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIG51bWVyaWMgeCBhbmQgeSBwYXJhbWV0ZXJzIGZvciBFeHByLmZpbHRlci5DSElMRFxuXHRcdFx0XHQvLyByZW1lbWJlciB0aGF0IGZhbHNlL3RydWUgY2FzdCByZXNwZWN0aXZlbHkgdG8gMC8xXG5cdFx0XHRcdG1hdGNoWzRdID0gKyggbWF0Y2hbNF0gPyBtYXRjaFs1XSArIChtYXRjaFs2XSB8fCAxKSA6IDIgKiAoIG1hdGNoWzNdID09PSBcImV2ZW5cIiB8fCBtYXRjaFszXSA9PT0gXCJvZGRcIiApICk7XG5cdFx0XHRcdG1hdGNoWzVdID0gKyggKCBtYXRjaFs3XSArIG1hdGNoWzhdICkgfHwgbWF0Y2hbM10gPT09IFwib2RkXCIgKTtcblxuXHRcdFx0Ly8gb3RoZXIgdHlwZXMgcHJvaGliaXQgYXJndW1lbnRzXG5cdFx0XHR9IGVsc2UgaWYgKCBtYXRjaFszXSApIHtcblx0XHRcdFx0U2l6emxlLmVycm9yKCBtYXRjaFswXSApO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbWF0Y2g7XG5cdFx0fSxcblxuXHRcdFwiUFNFVURPXCI6IGZ1bmN0aW9uKCBtYXRjaCApIHtcblx0XHRcdHZhciBleGNlc3MsXG5cdFx0XHRcdHVucXVvdGVkID0gIW1hdGNoWzZdICYmIG1hdGNoWzJdO1xuXG5cdFx0XHRpZiAoIG1hdGNoRXhwcltcIkNISUxEXCJdLnRlc3QoIG1hdGNoWzBdICkgKSB7XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBBY2NlcHQgcXVvdGVkIGFyZ3VtZW50cyBhcy1pc1xuXHRcdFx0aWYgKCBtYXRjaFszXSApIHtcblx0XHRcdFx0bWF0Y2hbMl0gPSBtYXRjaFs0XSB8fCBtYXRjaFs1XSB8fCBcIlwiO1xuXG5cdFx0XHQvLyBTdHJpcCBleGNlc3MgY2hhcmFjdGVycyBmcm9tIHVucXVvdGVkIGFyZ3VtZW50c1xuXHRcdFx0fSBlbHNlIGlmICggdW5xdW90ZWQgJiYgcnBzZXVkby50ZXN0KCB1bnF1b3RlZCApICYmXG5cdFx0XHRcdC8vIEdldCBleGNlc3MgZnJvbSB0b2tlbml6ZSAocmVjdXJzaXZlbHkpXG5cdFx0XHRcdChleGNlc3MgPSB0b2tlbml6ZSggdW5xdW90ZWQsIHRydWUgKSkgJiZcblx0XHRcdFx0Ly8gYWR2YW5jZSB0byB0aGUgbmV4dCBjbG9zaW5nIHBhcmVudGhlc2lzXG5cdFx0XHRcdChleGNlc3MgPSB1bnF1b3RlZC5pbmRleE9mKCBcIilcIiwgdW5xdW90ZWQubGVuZ3RoIC0gZXhjZXNzICkgLSB1bnF1b3RlZC5sZW5ndGgpICkge1xuXG5cdFx0XHRcdC8vIGV4Y2VzcyBpcyBhIG5lZ2F0aXZlIGluZGV4XG5cdFx0XHRcdG1hdGNoWzBdID0gbWF0Y2hbMF0uc2xpY2UoIDAsIGV4Y2VzcyApO1xuXHRcdFx0XHRtYXRjaFsyXSA9IHVucXVvdGVkLnNsaWNlKCAwLCBleGNlc3MgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUmV0dXJuIG9ubHkgY2FwdHVyZXMgbmVlZGVkIGJ5IHRoZSBwc2V1ZG8gZmlsdGVyIG1ldGhvZCAodHlwZSBhbmQgYXJndW1lbnQpXG5cdFx0XHRyZXR1cm4gbWF0Y2guc2xpY2UoIDAsIDMgKTtcblx0XHR9XG5cdH0sXG5cblx0ZmlsdGVyOiB7XG5cblx0XHRcIlRBR1wiOiBmdW5jdGlvbiggbm9kZU5hbWVTZWxlY3RvciApIHtcblx0XHRcdHZhciBub2RlTmFtZSA9IG5vZGVOYW1lU2VsZWN0b3IucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0cmV0dXJuIG5vZGVOYW1lU2VsZWN0b3IgPT09IFwiKlwiID9cblx0XHRcdFx0ZnVuY3Rpb24oKSB7IHJldHVybiB0cnVlOyB9IDpcblx0XHRcdFx0ZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGVsZW0ubm9kZU5hbWUgJiYgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBub2RlTmFtZTtcblx0XHRcdFx0fTtcblx0XHR9LFxuXG5cdFx0XCJDTEFTU1wiOiBmdW5jdGlvbiggY2xhc3NOYW1lICkge1xuXHRcdFx0dmFyIHBhdHRlcm4gPSBjbGFzc0NhY2hlWyBjbGFzc05hbWUgKyBcIiBcIiBdO1xuXG5cdFx0XHRyZXR1cm4gcGF0dGVybiB8fFxuXHRcdFx0XHQocGF0dGVybiA9IG5ldyBSZWdFeHAoIFwiKF58XCIgKyB3aGl0ZXNwYWNlICsgXCIpXCIgKyBjbGFzc05hbWUgKyBcIihcIiArIHdoaXRlc3BhY2UgKyBcInwkKVwiICkpICYmXG5cdFx0XHRcdGNsYXNzQ2FjaGUoIGNsYXNzTmFtZSwgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHBhdHRlcm4udGVzdCggdHlwZW9mIGVsZW0uY2xhc3NOYW1lID09PSBcInN0cmluZ1wiICYmIGVsZW0uY2xhc3NOYW1lIHx8IHR5cGVvZiBlbGVtLmdldEF0dHJpYnV0ZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBlbGVtLmdldEF0dHJpYnV0ZShcImNsYXNzXCIpIHx8IFwiXCIgKTtcblx0XHRcdFx0fSk7XG5cdFx0fSxcblxuXHRcdFwiQVRUUlwiOiBmdW5jdGlvbiggbmFtZSwgb3BlcmF0b3IsIGNoZWNrICkge1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHR2YXIgcmVzdWx0ID0gU2l6emxlLmF0dHIoIGVsZW0sIG5hbWUgKTtcblxuXHRcdFx0XHRpZiAoIHJlc3VsdCA9PSBudWxsICkge1xuXHRcdFx0XHRcdHJldHVybiBvcGVyYXRvciA9PT0gXCIhPVwiO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICggIW9wZXJhdG9yICkge1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmVzdWx0ICs9IFwiXCI7XG5cblx0XHRcdFx0cmV0dXJuIG9wZXJhdG9yID09PSBcIj1cIiA/IHJlc3VsdCA9PT0gY2hlY2sgOlxuXHRcdFx0XHRcdG9wZXJhdG9yID09PSBcIiE9XCIgPyByZXN1bHQgIT09IGNoZWNrIDpcblx0XHRcdFx0XHRvcGVyYXRvciA9PT0gXCJePVwiID8gY2hlY2sgJiYgcmVzdWx0LmluZGV4T2YoIGNoZWNrICkgPT09IDAgOlxuXHRcdFx0XHRcdG9wZXJhdG9yID09PSBcIio9XCIgPyBjaGVjayAmJiByZXN1bHQuaW5kZXhPZiggY2hlY2sgKSA+IC0xIDpcblx0XHRcdFx0XHRvcGVyYXRvciA9PT0gXCIkPVwiID8gY2hlY2sgJiYgcmVzdWx0LnNsaWNlKCAtY2hlY2subGVuZ3RoICkgPT09IGNoZWNrIDpcblx0XHRcdFx0XHRvcGVyYXRvciA9PT0gXCJ+PVwiID8gKCBcIiBcIiArIHJlc3VsdC5yZXBsYWNlKCByd2hpdGVzcGFjZSwgXCIgXCIgKSArIFwiIFwiICkuaW5kZXhPZiggY2hlY2sgKSA+IC0xIDpcblx0XHRcdFx0XHRvcGVyYXRvciA9PT0gXCJ8PVwiID8gcmVzdWx0ID09PSBjaGVjayB8fCByZXN1bHQuc2xpY2UoIDAsIGNoZWNrLmxlbmd0aCArIDEgKSA9PT0gY2hlY2sgKyBcIi1cIiA6XG5cdFx0XHRcdFx0ZmFsc2U7XG5cdFx0XHR9O1xuXHRcdH0sXG5cblx0XHRcIkNISUxEXCI6IGZ1bmN0aW9uKCB0eXBlLCB3aGF0LCBhcmd1bWVudCwgZmlyc3QsIGxhc3QgKSB7XG5cdFx0XHR2YXIgc2ltcGxlID0gdHlwZS5zbGljZSggMCwgMyApICE9PSBcIm50aFwiLFxuXHRcdFx0XHRmb3J3YXJkID0gdHlwZS5zbGljZSggLTQgKSAhPT0gXCJsYXN0XCIsXG5cdFx0XHRcdG9mVHlwZSA9IHdoYXQgPT09IFwib2YtdHlwZVwiO1xuXG5cdFx0XHRyZXR1cm4gZmlyc3QgPT09IDEgJiYgbGFzdCA9PT0gMCA/XG5cblx0XHRcdFx0Ly8gU2hvcnRjdXQgZm9yIDpudGgtKihuKVxuXHRcdFx0XHRmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0XHRyZXR1cm4gISFlbGVtLnBhcmVudE5vZGU7XG5cdFx0XHRcdH0gOlxuXG5cdFx0XHRcdGZ1bmN0aW9uKCBlbGVtLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0XHRcdFx0dmFyIGNhY2hlLCBvdXRlckNhY2hlLCBub2RlLCBkaWZmLCBub2RlSW5kZXgsIHN0YXJ0LFxuXHRcdFx0XHRcdFx0ZGlyID0gc2ltcGxlICE9PSBmb3J3YXJkID8gXCJuZXh0U2libGluZ1wiIDogXCJwcmV2aW91c1NpYmxpbmdcIixcblx0XHRcdFx0XHRcdHBhcmVudCA9IGVsZW0ucGFyZW50Tm9kZSxcblx0XHRcdFx0XHRcdG5hbWUgPSBvZlR5cGUgJiYgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLFxuXHRcdFx0XHRcdFx0dXNlQ2FjaGUgPSAheG1sICYmICFvZlR5cGU7XG5cblx0XHRcdFx0XHRpZiAoIHBhcmVudCApIHtcblxuXHRcdFx0XHRcdFx0Ly8gOihmaXJzdHxsYXN0fG9ubHkpLShjaGlsZHxvZi10eXBlKVxuXHRcdFx0XHRcdFx0aWYgKCBzaW1wbGUgKSB7XG5cdFx0XHRcdFx0XHRcdHdoaWxlICggZGlyICkge1xuXHRcdFx0XHRcdFx0XHRcdG5vZGUgPSBlbGVtO1xuXHRcdFx0XHRcdFx0XHRcdHdoaWxlICggKG5vZGUgPSBub2RlWyBkaXIgXSkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoIG9mVHlwZSA/IG5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gbmFtZSA6IG5vZGUubm9kZVR5cGUgPT09IDEgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0Ly8gUmV2ZXJzZSBkaXJlY3Rpb24gZm9yIDpvbmx5LSogKGlmIHdlIGhhdmVuJ3QgeWV0IGRvbmUgc28pXG5cdFx0XHRcdFx0XHRcdFx0c3RhcnQgPSBkaXIgPSB0eXBlID09PSBcIm9ubHlcIiAmJiAhc3RhcnQgJiYgXCJuZXh0U2libGluZ1wiO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRzdGFydCA9IFsgZm9yd2FyZCA/IHBhcmVudC5maXJzdENoaWxkIDogcGFyZW50Lmxhc3RDaGlsZCBdO1xuXG5cdFx0XHRcdFx0XHQvLyBub24teG1sIDpudGgtY2hpbGQoLi4uKSBzdG9yZXMgY2FjaGUgZGF0YSBvbiBgcGFyZW50YFxuXHRcdFx0XHRcdFx0aWYgKCBmb3J3YXJkICYmIHVzZUNhY2hlICkge1xuXHRcdFx0XHRcdFx0XHQvLyBTZWVrIGBlbGVtYCBmcm9tIGEgcHJldmlvdXNseS1jYWNoZWQgaW5kZXhcblx0XHRcdFx0XHRcdFx0b3V0ZXJDYWNoZSA9IHBhcmVudFsgZXhwYW5kbyBdIHx8IChwYXJlbnRbIGV4cGFuZG8gXSA9IHt9KTtcblx0XHRcdFx0XHRcdFx0Y2FjaGUgPSBvdXRlckNhY2hlWyB0eXBlIF0gfHwgW107XG5cdFx0XHRcdFx0XHRcdG5vZGVJbmRleCA9IGNhY2hlWzBdID09PSBkaXJydW5zICYmIGNhY2hlWzFdO1xuXHRcdFx0XHRcdFx0XHRkaWZmID0gY2FjaGVbMF0gPT09IGRpcnJ1bnMgJiYgY2FjaGVbMl07XG5cdFx0XHRcdFx0XHRcdG5vZGUgPSBub2RlSW5kZXggJiYgcGFyZW50LmNoaWxkTm9kZXNbIG5vZGVJbmRleCBdO1xuXG5cdFx0XHRcdFx0XHRcdHdoaWxlICggKG5vZGUgPSArK25vZGVJbmRleCAmJiBub2RlICYmIG5vZGVbIGRpciBdIHx8XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBGYWxsYmFjayB0byBzZWVraW5nIGBlbGVtYCBmcm9tIHRoZSBzdGFydFxuXHRcdFx0XHRcdFx0XHRcdChkaWZmID0gbm9kZUluZGV4ID0gMCkgfHwgc3RhcnQucG9wKCkpICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gV2hlbiBmb3VuZCwgY2FjaGUgaW5kZXhlcyBvbiBgcGFyZW50YCBhbmQgYnJlYWtcblx0XHRcdFx0XHRcdFx0XHRpZiAoIG5vZGUubm9kZVR5cGUgPT09IDEgJiYgKytkaWZmICYmIG5vZGUgPT09IGVsZW0gKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRvdXRlckNhY2hlWyB0eXBlIF0gPSBbIGRpcnJ1bnMsIG5vZGVJbmRleCwgZGlmZiBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC8vIFVzZSBwcmV2aW91c2x5LWNhY2hlZCBlbGVtZW50IGluZGV4IGlmIGF2YWlsYWJsZVxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmICggdXNlQ2FjaGUgJiYgKGNhY2hlID0gKGVsZW1bIGV4cGFuZG8gXSB8fCAoZWxlbVsgZXhwYW5kbyBdID0ge30pKVsgdHlwZSBdKSAmJiBjYWNoZVswXSA9PT0gZGlycnVucyApIHtcblx0XHRcdFx0XHRcdFx0ZGlmZiA9IGNhY2hlWzFdO1xuXG5cdFx0XHRcdFx0XHQvLyB4bWwgOm50aC1jaGlsZCguLi4pIG9yIDpudGgtbGFzdC1jaGlsZCguLi4pIG9yIDpudGgoLWxhc3QpPy1vZi10eXBlKC4uLilcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdC8vIFVzZSB0aGUgc2FtZSBsb29wIGFzIGFib3ZlIHRvIHNlZWsgYGVsZW1gIGZyb20gdGhlIHN0YXJ0XG5cdFx0XHRcdFx0XHRcdHdoaWxlICggKG5vZGUgPSArK25vZGVJbmRleCAmJiBub2RlICYmIG5vZGVbIGRpciBdIHx8XG5cdFx0XHRcdFx0XHRcdFx0KGRpZmYgPSBub2RlSW5kZXggPSAwKSB8fCBzdGFydC5wb3AoKSkgKSB7XG5cblx0XHRcdFx0XHRcdFx0XHRpZiAoICggb2ZUeXBlID8gbm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBuYW1lIDogbm9kZS5ub2RlVHlwZSA9PT0gMSApICYmICsrZGlmZiApIHtcblx0XHRcdFx0XHRcdFx0XHRcdC8vIENhY2hlIHRoZSBpbmRleCBvZiBlYWNoIGVuY291bnRlcmVkIGVsZW1lbnRcblx0XHRcdFx0XHRcdFx0XHRcdGlmICggdXNlQ2FjaGUgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdChub2RlWyBleHBhbmRvIF0gfHwgKG5vZGVbIGV4cGFuZG8gXSA9IHt9KSlbIHR5cGUgXSA9IFsgZGlycnVucywgZGlmZiBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoIG5vZGUgPT09IGVsZW0gKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHQvLyBJbmNvcnBvcmF0ZSB0aGUgb2Zmc2V0LCB0aGVuIGNoZWNrIGFnYWluc3QgY3ljbGUgc2l6ZVxuXHRcdFx0XHRcdFx0ZGlmZiAtPSBsYXN0O1xuXHRcdFx0XHRcdFx0cmV0dXJuIGRpZmYgPT09IGZpcnN0IHx8ICggZGlmZiAlIGZpcnN0ID09PSAwICYmIGRpZmYgLyBmaXJzdCA+PSAwICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdH0sXG5cblx0XHRcIlBTRVVET1wiOiBmdW5jdGlvbiggcHNldWRvLCBhcmd1bWVudCApIHtcblx0XHRcdC8vIHBzZXVkby1jbGFzcyBuYW1lcyBhcmUgY2FzZS1pbnNlbnNpdGl2ZVxuXHRcdFx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvc2VsZWN0b3JzLyNwc2V1ZG8tY2xhc3Nlc1xuXHRcdFx0Ly8gUHJpb3JpdGl6ZSBieSBjYXNlIHNlbnNpdGl2aXR5IGluIGNhc2UgY3VzdG9tIHBzZXVkb3MgYXJlIGFkZGVkIHdpdGggdXBwZXJjYXNlIGxldHRlcnNcblx0XHRcdC8vIFJlbWVtYmVyIHRoYXQgc2V0RmlsdGVycyBpbmhlcml0cyBmcm9tIHBzZXVkb3Ncblx0XHRcdHZhciBhcmdzLFxuXHRcdFx0XHRmbiA9IEV4cHIucHNldWRvc1sgcHNldWRvIF0gfHwgRXhwci5zZXRGaWx0ZXJzWyBwc2V1ZG8udG9Mb3dlckNhc2UoKSBdIHx8XG5cdFx0XHRcdFx0U2l6emxlLmVycm9yKCBcInVuc3VwcG9ydGVkIHBzZXVkbzogXCIgKyBwc2V1ZG8gKTtcblxuXHRcdFx0Ly8gVGhlIHVzZXIgbWF5IHVzZSBjcmVhdGVQc2V1ZG8gdG8gaW5kaWNhdGUgdGhhdFxuXHRcdFx0Ly8gYXJndW1lbnRzIGFyZSBuZWVkZWQgdG8gY3JlYXRlIHRoZSBmaWx0ZXIgZnVuY3Rpb25cblx0XHRcdC8vIGp1c3QgYXMgU2l6emxlIGRvZXNcblx0XHRcdGlmICggZm5bIGV4cGFuZG8gXSApIHtcblx0XHRcdFx0cmV0dXJuIGZuKCBhcmd1bWVudCApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBCdXQgbWFpbnRhaW4gc3VwcG9ydCBmb3Igb2xkIHNpZ25hdHVyZXNcblx0XHRcdGlmICggZm4ubGVuZ3RoID4gMSApIHtcblx0XHRcdFx0YXJncyA9IFsgcHNldWRvLCBwc2V1ZG8sIFwiXCIsIGFyZ3VtZW50IF07XG5cdFx0XHRcdHJldHVybiBFeHByLnNldEZpbHRlcnMuaGFzT3duUHJvcGVydHkoIHBzZXVkby50b0xvd2VyQ2FzZSgpICkgP1xuXHRcdFx0XHRcdG1hcmtGdW5jdGlvbihmdW5jdGlvbiggc2VlZCwgbWF0Y2hlcyApIHtcblx0XHRcdFx0XHRcdHZhciBpZHgsXG5cdFx0XHRcdFx0XHRcdG1hdGNoZWQgPSBmbiggc2VlZCwgYXJndW1lbnQgKSxcblx0XHRcdFx0XHRcdFx0aSA9IG1hdGNoZWQubGVuZ3RoO1xuXHRcdFx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0XHRcdGlkeCA9IGluZGV4T2YoIHNlZWQsIG1hdGNoZWRbaV0gKTtcblx0XHRcdFx0XHRcdFx0c2VlZFsgaWR4IF0gPSAhKCBtYXRjaGVzWyBpZHggXSA9IG1hdGNoZWRbaV0gKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KSA6XG5cdFx0XHRcdFx0ZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZm4oIGVsZW0sIDAsIGFyZ3MgKTtcblx0XHRcdFx0XHR9O1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZm47XG5cdFx0fVxuXHR9LFxuXG5cdHBzZXVkb3M6IHtcblx0XHQvLyBQb3RlbnRpYWxseSBjb21wbGV4IHBzZXVkb3Ncblx0XHRcIm5vdFwiOiBtYXJrRnVuY3Rpb24oZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdFx0Ly8gVHJpbSB0aGUgc2VsZWN0b3IgcGFzc2VkIHRvIGNvbXBpbGVcblx0XHRcdC8vIHRvIGF2b2lkIHRyZWF0aW5nIGxlYWRpbmcgYW5kIHRyYWlsaW5nXG5cdFx0XHQvLyBzcGFjZXMgYXMgY29tYmluYXRvcnNcblx0XHRcdHZhciBpbnB1dCA9IFtdLFxuXHRcdFx0XHRyZXN1bHRzID0gW10sXG5cdFx0XHRcdG1hdGNoZXIgPSBjb21waWxlKCBzZWxlY3Rvci5yZXBsYWNlKCBydHJpbSwgXCIkMVwiICkgKTtcblxuXHRcdFx0cmV0dXJuIG1hdGNoZXJbIGV4cGFuZG8gXSA/XG5cdFx0XHRcdG1hcmtGdW5jdGlvbihmdW5jdGlvbiggc2VlZCwgbWF0Y2hlcywgY29udGV4dCwgeG1sICkge1xuXHRcdFx0XHRcdHZhciBlbGVtLFxuXHRcdFx0XHRcdFx0dW5tYXRjaGVkID0gbWF0Y2hlciggc2VlZCwgbnVsbCwgeG1sLCBbXSApLFxuXHRcdFx0XHRcdFx0aSA9IHNlZWQubGVuZ3RoO1xuXG5cdFx0XHRcdFx0Ly8gTWF0Y2ggZWxlbWVudHMgdW5tYXRjaGVkIGJ5IGBtYXRjaGVyYFxuXHRcdFx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRcdFx0aWYgKCAoZWxlbSA9IHVubWF0Y2hlZFtpXSkgKSB7XG5cdFx0XHRcdFx0XHRcdHNlZWRbaV0gPSAhKG1hdGNoZXNbaV0gPSBlbGVtKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pIDpcblx0XHRcdFx0ZnVuY3Rpb24oIGVsZW0sIGNvbnRleHQsIHhtbCApIHtcblx0XHRcdFx0XHRpbnB1dFswXSA9IGVsZW07XG5cdFx0XHRcdFx0bWF0Y2hlciggaW5wdXQsIG51bGwsIHhtbCwgcmVzdWx0cyApO1xuXHRcdFx0XHRcdC8vIERvbid0IGtlZXAgdGhlIGVsZW1lbnQgKGlzc3VlICMyOTkpXG5cdFx0XHRcdFx0aW5wdXRbMF0gPSBudWxsO1xuXHRcdFx0XHRcdHJldHVybiAhcmVzdWx0cy5wb3AoKTtcblx0XHRcdFx0fTtcblx0XHR9KSxcblxuXHRcdFwiaGFzXCI6IG1hcmtGdW5jdGlvbihmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHJldHVybiBTaXp6bGUoIHNlbGVjdG9yLCBlbGVtICkubGVuZ3RoID4gMDtcblx0XHRcdH07XG5cdFx0fSksXG5cblx0XHRcImNvbnRhaW5zXCI6IG1hcmtGdW5jdGlvbihmdW5jdGlvbiggdGV4dCApIHtcblx0XHRcdHRleHQgPSB0ZXh0LnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICk7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHJldHVybiAoIGVsZW0udGV4dENvbnRlbnQgfHwgZWxlbS5pbm5lclRleHQgfHwgZ2V0VGV4dCggZWxlbSApICkuaW5kZXhPZiggdGV4dCApID4gLTE7XG5cdFx0XHR9O1xuXHRcdH0pLFxuXG5cdFx0Ly8gXCJXaGV0aGVyIGFuIGVsZW1lbnQgaXMgcmVwcmVzZW50ZWQgYnkgYSA6bGFuZygpIHNlbGVjdG9yXG5cdFx0Ly8gaXMgYmFzZWQgc29sZWx5IG9uIHRoZSBlbGVtZW50J3MgbGFuZ3VhZ2UgdmFsdWVcblx0XHQvLyBiZWluZyBlcXVhbCB0byB0aGUgaWRlbnRpZmllciBDLFxuXHRcdC8vIG9yIGJlZ2lubmluZyB3aXRoIHRoZSBpZGVudGlmaWVyIEMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgXCItXCIuXG5cdFx0Ly8gVGhlIG1hdGNoaW5nIG9mIEMgYWdhaW5zdCB0aGUgZWxlbWVudCdzIGxhbmd1YWdlIHZhbHVlIGlzIHBlcmZvcm1lZCBjYXNlLWluc2Vuc2l0aXZlbHkuXG5cdFx0Ly8gVGhlIGlkZW50aWZpZXIgQyBkb2VzIG5vdCBoYXZlIHRvIGJlIGEgdmFsaWQgbGFuZ3VhZ2UgbmFtZS5cIlxuXHRcdC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL3NlbGVjdG9ycy8jbGFuZy1wc2V1ZG9cblx0XHRcImxhbmdcIjogbWFya0Z1bmN0aW9uKCBmdW5jdGlvbiggbGFuZyApIHtcblx0XHRcdC8vIGxhbmcgdmFsdWUgbXVzdCBiZSBhIHZhbGlkIGlkZW50aWZpZXJcblx0XHRcdGlmICggIXJpZGVudGlmaWVyLnRlc3QobGFuZyB8fCBcIlwiKSApIHtcblx0XHRcdFx0U2l6emxlLmVycm9yKCBcInVuc3VwcG9ydGVkIGxhbmc6IFwiICsgbGFuZyApO1xuXHRcdFx0fVxuXHRcdFx0bGFuZyA9IGxhbmcucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHR2YXIgZWxlbUxhbmc7XG5cdFx0XHRcdGRvIHtcblx0XHRcdFx0XHRpZiAoIChlbGVtTGFuZyA9IGRvY3VtZW50SXNIVE1MID9cblx0XHRcdFx0XHRcdGVsZW0ubGFuZyA6XG5cdFx0XHRcdFx0XHRlbGVtLmdldEF0dHJpYnV0ZShcInhtbDpsYW5nXCIpIHx8IGVsZW0uZ2V0QXR0cmlidXRlKFwibGFuZ1wiKSkgKSB7XG5cblx0XHRcdFx0XHRcdGVsZW1MYW5nID0gZWxlbUxhbmcudG9Mb3dlckNhc2UoKTtcblx0XHRcdFx0XHRcdHJldHVybiBlbGVtTGFuZyA9PT0gbGFuZyB8fCBlbGVtTGFuZy5pbmRleE9mKCBsYW5nICsgXCItXCIgKSA9PT0gMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gd2hpbGUgKCAoZWxlbSA9IGVsZW0ucGFyZW50Tm9kZSkgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApO1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9O1xuXHRcdH0pLFxuXG5cdFx0Ly8gTWlzY2VsbGFuZW91c1xuXHRcdFwidGFyZ2V0XCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0dmFyIGhhc2ggPSB3aW5kb3cubG9jYXRpb24gJiYgd2luZG93LmxvY2F0aW9uLmhhc2g7XG5cdFx0XHRyZXR1cm4gaGFzaCAmJiBoYXNoLnNsaWNlKCAxICkgPT09IGVsZW0uaWQ7XG5cdFx0fSxcblxuXHRcdFwicm9vdFwiOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiBlbGVtID09PSBkb2NFbGVtO1xuXHRcdH0sXG5cblx0XHRcImZvY3VzXCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGVsZW0gPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiYgKCFkb2N1bWVudC5oYXNGb2N1cyB8fCBkb2N1bWVudC5oYXNGb2N1cygpKSAmJiAhIShlbGVtLnR5cGUgfHwgZWxlbS5ocmVmIHx8IH5lbGVtLnRhYkluZGV4KTtcblx0XHR9LFxuXG5cdFx0Ly8gQm9vbGVhbiBwcm9wZXJ0aWVzXG5cdFx0XCJlbmFibGVkXCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGVsZW0uZGlzYWJsZWQgPT09IGZhbHNlO1xuXHRcdH0sXG5cblx0XHRcImRpc2FibGVkXCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGVsZW0uZGlzYWJsZWQgPT09IHRydWU7XG5cdFx0fSxcblxuXHRcdFwiY2hlY2tlZFwiOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdC8vIEluIENTUzMsIDpjaGVja2VkIHNob3VsZCByZXR1cm4gYm90aCBjaGVja2VkIGFuZCBzZWxlY3RlZCBlbGVtZW50c1xuXHRcdFx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMS9SRUMtY3NzMy1zZWxlY3RvcnMtMjAxMTA5MjkvI2NoZWNrZWRcblx0XHRcdHZhciBub2RlTmFtZSA9IGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblx0XHRcdHJldHVybiAobm9kZU5hbWUgPT09IFwiaW5wdXRcIiAmJiAhIWVsZW0uY2hlY2tlZCkgfHwgKG5vZGVOYW1lID09PSBcIm9wdGlvblwiICYmICEhZWxlbS5zZWxlY3RlZCk7XG5cdFx0fSxcblxuXHRcdFwic2VsZWN0ZWRcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHQvLyBBY2Nlc3NpbmcgdGhpcyBwcm9wZXJ0eSBtYWtlcyBzZWxlY3RlZC1ieS1kZWZhdWx0XG5cdFx0XHQvLyBvcHRpb25zIGluIFNhZmFyaSB3b3JrIHByb3Blcmx5XG5cdFx0XHRpZiAoIGVsZW0ucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0ZWxlbS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXg7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBlbGVtLnNlbGVjdGVkID09PSB0cnVlO1xuXHRcdH0sXG5cblx0XHQvLyBDb250ZW50c1xuXHRcdFwiZW1wdHlcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHQvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9zZWxlY3RvcnMvI2VtcHR5LXBzZXVkb1xuXHRcdFx0Ly8gOmVtcHR5IGlzIG5lZ2F0ZWQgYnkgZWxlbWVudCAoMSkgb3IgY29udGVudCBub2RlcyAodGV4dDogMzsgY2RhdGE6IDQ7IGVudGl0eSByZWY6IDUpLFxuXHRcdFx0Ly8gICBidXQgbm90IGJ5IG90aGVycyAoY29tbWVudDogODsgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbjogNzsgZXRjLilcblx0XHRcdC8vIG5vZGVUeXBlIDwgNiB3b3JrcyBiZWNhdXNlIGF0dHJpYnV0ZXMgKDIpIGRvIG5vdCBhcHBlYXIgYXMgY2hpbGRyZW5cblx0XHRcdGZvciAoIGVsZW0gPSBlbGVtLmZpcnN0Q2hpbGQ7IGVsZW07IGVsZW0gPSBlbGVtLm5leHRTaWJsaW5nICkge1xuXHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPCA2ICkge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSxcblxuXHRcdFwicGFyZW50XCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuICFFeHByLnBzZXVkb3NbXCJlbXB0eVwiXSggZWxlbSApO1xuXHRcdH0sXG5cblx0XHQvLyBFbGVtZW50L2lucHV0IHR5cGVzXG5cdFx0XCJoZWFkZXJcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gcmhlYWRlci50ZXN0KCBlbGVtLm5vZGVOYW1lICk7XG5cdFx0fSxcblxuXHRcdFwiaW5wdXRcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gcmlucHV0cy50ZXN0KCBlbGVtLm5vZGVOYW1lICk7XG5cdFx0fSxcblxuXHRcdFwiYnV0dG9uXCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0dmFyIG5hbWUgPSBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG5cdFx0XHRyZXR1cm4gbmFtZSA9PT0gXCJpbnB1dFwiICYmIGVsZW0udHlwZSA9PT0gXCJidXR0b25cIiB8fCBuYW1lID09PSBcImJ1dHRvblwiO1xuXHRcdH0sXG5cblx0XHRcInRleHRcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHR2YXIgYXR0cjtcblx0XHRcdHJldHVybiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IFwiaW5wdXRcIiAmJlxuXHRcdFx0XHRlbGVtLnR5cGUgPT09IFwidGV4dFwiICYmXG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogSUU8OFxuXHRcdFx0XHQvLyBOZXcgSFRNTDUgYXR0cmlidXRlIHZhbHVlcyAoZS5nLiwgXCJzZWFyY2hcIikgYXBwZWFyIHdpdGggZWxlbS50eXBlID09PSBcInRleHRcIlxuXHRcdFx0XHQoIChhdHRyID0gZWxlbS5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpKSA9PSBudWxsIHx8IGF0dHIudG9Mb3dlckNhc2UoKSA9PT0gXCJ0ZXh0XCIgKTtcblx0XHR9LFxuXG5cdFx0Ly8gUG9zaXRpb24taW4tY29sbGVjdGlvblxuXHRcdFwiZmlyc3RcIjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyhmdW5jdGlvbigpIHtcblx0XHRcdHJldHVybiBbIDAgXTtcblx0XHR9KSxcblxuXHRcdFwibGFzdFwiOiBjcmVhdGVQb3NpdGlvbmFsUHNldWRvKGZ1bmN0aW9uKCBtYXRjaEluZGV4ZXMsIGxlbmd0aCApIHtcblx0XHRcdHJldHVybiBbIGxlbmd0aCAtIDEgXTtcblx0XHR9KSxcblxuXHRcdFwiZXFcIjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyhmdW5jdGlvbiggbWF0Y2hJbmRleGVzLCBsZW5ndGgsIGFyZ3VtZW50ICkge1xuXHRcdFx0cmV0dXJuIFsgYXJndW1lbnQgPCAwID8gYXJndW1lbnQgKyBsZW5ndGggOiBhcmd1bWVudCBdO1xuXHRcdH0pLFxuXG5cdFx0XCJldmVuXCI6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oZnVuY3Rpb24oIG1hdGNoSW5kZXhlcywgbGVuZ3RoICkge1xuXHRcdFx0dmFyIGkgPSAwO1xuXHRcdFx0Zm9yICggOyBpIDwgbGVuZ3RoOyBpICs9IDIgKSB7XG5cdFx0XHRcdG1hdGNoSW5kZXhlcy5wdXNoKCBpICk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbWF0Y2hJbmRleGVzO1xuXHRcdH0pLFxuXG5cdFx0XCJvZGRcIjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyhmdW5jdGlvbiggbWF0Y2hJbmRleGVzLCBsZW5ndGggKSB7XG5cdFx0XHR2YXIgaSA9IDE7XG5cdFx0XHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkgKz0gMiApIHtcblx0XHRcdFx0bWF0Y2hJbmRleGVzLnB1c2goIGkgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBtYXRjaEluZGV4ZXM7XG5cdFx0fSksXG5cblx0XHRcImx0XCI6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oZnVuY3Rpb24oIG1hdGNoSW5kZXhlcywgbGVuZ3RoLCBhcmd1bWVudCApIHtcblx0XHRcdHZhciBpID0gYXJndW1lbnQgPCAwID8gYXJndW1lbnQgKyBsZW5ndGggOiBhcmd1bWVudDtcblx0XHRcdGZvciAoIDsgLS1pID49IDA7ICkge1xuXHRcdFx0XHRtYXRjaEluZGV4ZXMucHVzaCggaSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1hdGNoSW5kZXhlcztcblx0XHR9KSxcblxuXHRcdFwiZ3RcIjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyhmdW5jdGlvbiggbWF0Y2hJbmRleGVzLCBsZW5ndGgsIGFyZ3VtZW50ICkge1xuXHRcdFx0dmFyIGkgPSBhcmd1bWVudCA8IDAgPyBhcmd1bWVudCArIGxlbmd0aCA6IGFyZ3VtZW50O1xuXHRcdFx0Zm9yICggOyArK2kgPCBsZW5ndGg7ICkge1xuXHRcdFx0XHRtYXRjaEluZGV4ZXMucHVzaCggaSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1hdGNoSW5kZXhlcztcblx0XHR9KVxuXHR9XG59O1xuXG5FeHByLnBzZXVkb3NbXCJudGhcIl0gPSBFeHByLnBzZXVkb3NbXCJlcVwiXTtcblxuLy8gQWRkIGJ1dHRvbi9pbnB1dCB0eXBlIHBzZXVkb3NcbmZvciAoIGkgaW4geyByYWRpbzogdHJ1ZSwgY2hlY2tib3g6IHRydWUsIGZpbGU6IHRydWUsIHBhc3N3b3JkOiB0cnVlLCBpbWFnZTogdHJ1ZSB9ICkge1xuXHRFeHByLnBzZXVkb3NbIGkgXSA9IGNyZWF0ZUlucHV0UHNldWRvKCBpICk7XG59XG5mb3IgKCBpIGluIHsgc3VibWl0OiB0cnVlLCByZXNldDogdHJ1ZSB9ICkge1xuXHRFeHByLnBzZXVkb3NbIGkgXSA9IGNyZWF0ZUJ1dHRvblBzZXVkbyggaSApO1xufVxuXG4vLyBFYXN5IEFQSSBmb3IgY3JlYXRpbmcgbmV3IHNldEZpbHRlcnNcbmZ1bmN0aW9uIHNldEZpbHRlcnMoKSB7fVxuc2V0RmlsdGVycy5wcm90b3R5cGUgPSBFeHByLmZpbHRlcnMgPSBFeHByLnBzZXVkb3M7XG5FeHByLnNldEZpbHRlcnMgPSBuZXcgc2V0RmlsdGVycygpO1xuXG50b2tlbml6ZSA9IFNpenpsZS50b2tlbml6ZSA9IGZ1bmN0aW9uKCBzZWxlY3RvciwgcGFyc2VPbmx5ICkge1xuXHR2YXIgbWF0Y2hlZCwgbWF0Y2gsIHRva2VucywgdHlwZSxcblx0XHRzb0ZhciwgZ3JvdXBzLCBwcmVGaWx0ZXJzLFxuXHRcdGNhY2hlZCA9IHRva2VuQ2FjaGVbIHNlbGVjdG9yICsgXCIgXCIgXTtcblxuXHRpZiAoIGNhY2hlZCApIHtcblx0XHRyZXR1cm4gcGFyc2VPbmx5ID8gMCA6IGNhY2hlZC5zbGljZSggMCApO1xuXHR9XG5cblx0c29GYXIgPSBzZWxlY3Rvcjtcblx0Z3JvdXBzID0gW107XG5cdHByZUZpbHRlcnMgPSBFeHByLnByZUZpbHRlcjtcblxuXHR3aGlsZSAoIHNvRmFyICkge1xuXG5cdFx0Ly8gQ29tbWEgYW5kIGZpcnN0IHJ1blxuXHRcdGlmICggIW1hdGNoZWQgfHwgKG1hdGNoID0gcmNvbW1hLmV4ZWMoIHNvRmFyICkpICkge1xuXHRcdFx0aWYgKCBtYXRjaCApIHtcblx0XHRcdFx0Ly8gRG9uJ3QgY29uc3VtZSB0cmFpbGluZyBjb21tYXMgYXMgdmFsaWRcblx0XHRcdFx0c29GYXIgPSBzb0Zhci5zbGljZSggbWF0Y2hbMF0ubGVuZ3RoICkgfHwgc29GYXI7XG5cdFx0XHR9XG5cdFx0XHRncm91cHMucHVzaCggKHRva2VucyA9IFtdKSApO1xuXHRcdH1cblxuXHRcdG1hdGNoZWQgPSBmYWxzZTtcblxuXHRcdC8vIENvbWJpbmF0b3JzXG5cdFx0aWYgKCAobWF0Y2ggPSByY29tYmluYXRvcnMuZXhlYyggc29GYXIgKSkgKSB7XG5cdFx0XHRtYXRjaGVkID0gbWF0Y2guc2hpZnQoKTtcblx0XHRcdHRva2Vucy5wdXNoKHtcblx0XHRcdFx0dmFsdWU6IG1hdGNoZWQsXG5cdFx0XHRcdC8vIENhc3QgZGVzY2VuZGFudCBjb21iaW5hdG9ycyB0byBzcGFjZVxuXHRcdFx0XHR0eXBlOiBtYXRjaFswXS5yZXBsYWNlKCBydHJpbSwgXCIgXCIgKVxuXHRcdFx0fSk7XG5cdFx0XHRzb0ZhciA9IHNvRmFyLnNsaWNlKCBtYXRjaGVkLmxlbmd0aCApO1xuXHRcdH1cblxuXHRcdC8vIEZpbHRlcnNcblx0XHRmb3IgKCB0eXBlIGluIEV4cHIuZmlsdGVyICkge1xuXHRcdFx0aWYgKCAobWF0Y2ggPSBtYXRjaEV4cHJbIHR5cGUgXS5leGVjKCBzb0ZhciApKSAmJiAoIXByZUZpbHRlcnNbIHR5cGUgXSB8fFxuXHRcdFx0XHQobWF0Y2ggPSBwcmVGaWx0ZXJzWyB0eXBlIF0oIG1hdGNoICkpKSApIHtcblx0XHRcdFx0bWF0Y2hlZCA9IG1hdGNoLnNoaWZ0KCk7XG5cdFx0XHRcdHRva2Vucy5wdXNoKHtcblx0XHRcdFx0XHR2YWx1ZTogbWF0Y2hlZCxcblx0XHRcdFx0XHR0eXBlOiB0eXBlLFxuXHRcdFx0XHRcdG1hdGNoZXM6IG1hdGNoXG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzb0ZhciA9IHNvRmFyLnNsaWNlKCBtYXRjaGVkLmxlbmd0aCApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICggIW1hdGNoZWQgKSB7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblxuXHQvLyBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgaW52YWxpZCBleGNlc3Ncblx0Ly8gaWYgd2UncmUganVzdCBwYXJzaW5nXG5cdC8vIE90aGVyd2lzZSwgdGhyb3cgYW4gZXJyb3Igb3IgcmV0dXJuIHRva2Vuc1xuXHRyZXR1cm4gcGFyc2VPbmx5ID9cblx0XHRzb0Zhci5sZW5ndGggOlxuXHRcdHNvRmFyID9cblx0XHRcdFNpenpsZS5lcnJvciggc2VsZWN0b3IgKSA6XG5cdFx0XHQvLyBDYWNoZSB0aGUgdG9rZW5zXG5cdFx0XHR0b2tlbkNhY2hlKCBzZWxlY3RvciwgZ3JvdXBzICkuc2xpY2UoIDAgKTtcbn07XG5cbmZ1bmN0aW9uIHRvU2VsZWN0b3IoIHRva2VucyApIHtcblx0dmFyIGkgPSAwLFxuXHRcdGxlbiA9IHRva2Vucy5sZW5ndGgsXG5cdFx0c2VsZWN0b3IgPSBcIlwiO1xuXHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRzZWxlY3RvciArPSB0b2tlbnNbaV0udmFsdWU7XG5cdH1cblx0cmV0dXJuIHNlbGVjdG9yO1xufVxuXG5mdW5jdGlvbiBhZGRDb21iaW5hdG9yKCBtYXRjaGVyLCBjb21iaW5hdG9yLCBiYXNlICkge1xuXHR2YXIgZGlyID0gY29tYmluYXRvci5kaXIsXG5cdFx0Y2hlY2tOb25FbGVtZW50cyA9IGJhc2UgJiYgZGlyID09PSBcInBhcmVudE5vZGVcIixcblx0XHRkb25lTmFtZSA9IGRvbmUrKztcblxuXHRyZXR1cm4gY29tYmluYXRvci5maXJzdCA/XG5cdFx0Ly8gQ2hlY2sgYWdhaW5zdCBjbG9zZXN0IGFuY2VzdG9yL3ByZWNlZGluZyBlbGVtZW50XG5cdFx0ZnVuY3Rpb24oIGVsZW0sIGNvbnRleHQsIHhtbCApIHtcblx0XHRcdHdoaWxlICggKGVsZW0gPSBlbGVtWyBkaXIgXSkgKSB7XG5cdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSB8fCBjaGVja05vbkVsZW1lbnRzICkge1xuXHRcdFx0XHRcdHJldHVybiBtYXRjaGVyKCBlbGVtLCBjb250ZXh0LCB4bWwgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gOlxuXG5cdFx0Ly8gQ2hlY2sgYWdhaW5zdCBhbGwgYW5jZXN0b3IvcHJlY2VkaW5nIGVsZW1lbnRzXG5cdFx0ZnVuY3Rpb24oIGVsZW0sIGNvbnRleHQsIHhtbCApIHtcblx0XHRcdHZhciBvbGRDYWNoZSwgb3V0ZXJDYWNoZSxcblx0XHRcdFx0bmV3Q2FjaGUgPSBbIGRpcnJ1bnMsIGRvbmVOYW1lIF07XG5cblx0XHRcdC8vIFdlIGNhbid0IHNldCBhcmJpdHJhcnkgZGF0YSBvbiBYTUwgbm9kZXMsIHNvIHRoZXkgZG9uJ3QgYmVuZWZpdCBmcm9tIGRpciBjYWNoaW5nXG5cdFx0XHRpZiAoIHhtbCApIHtcblx0XHRcdFx0d2hpbGUgKCAoZWxlbSA9IGVsZW1bIGRpciBdKSApIHtcblx0XHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgfHwgY2hlY2tOb25FbGVtZW50cyApIHtcblx0XHRcdFx0XHRcdGlmICggbWF0Y2hlciggZWxlbSwgY29udGV4dCwgeG1sICkgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0d2hpbGUgKCAoZWxlbSA9IGVsZW1bIGRpciBdKSApIHtcblx0XHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgfHwgY2hlY2tOb25FbGVtZW50cyApIHtcblx0XHRcdFx0XHRcdG91dGVyQ2FjaGUgPSBlbGVtWyBleHBhbmRvIF0gfHwgKGVsZW1bIGV4cGFuZG8gXSA9IHt9KTtcblx0XHRcdFx0XHRcdGlmICggKG9sZENhY2hlID0gb3V0ZXJDYWNoZVsgZGlyIF0pICYmXG5cdFx0XHRcdFx0XHRcdG9sZENhY2hlWyAwIF0gPT09IGRpcnJ1bnMgJiYgb2xkQ2FjaGVbIDEgXSA9PT0gZG9uZU5hbWUgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gQXNzaWduIHRvIG5ld0NhY2hlIHNvIHJlc3VsdHMgYmFjay1wcm9wYWdhdGUgdG8gcHJldmlvdXMgZWxlbWVudHNcblx0XHRcdFx0XHRcdFx0cmV0dXJuIChuZXdDYWNoZVsgMiBdID0gb2xkQ2FjaGVbIDIgXSk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHQvLyBSZXVzZSBuZXdjYWNoZSBzbyByZXN1bHRzIGJhY2stcHJvcGFnYXRlIHRvIHByZXZpb3VzIGVsZW1lbnRzXG5cdFx0XHRcdFx0XHRcdG91dGVyQ2FjaGVbIGRpciBdID0gbmV3Q2FjaGU7XG5cblx0XHRcdFx0XHRcdFx0Ly8gQSBtYXRjaCBtZWFucyB3ZSdyZSBkb25lOyBhIGZhaWwgbWVhbnMgd2UgaGF2ZSB0byBrZWVwIGNoZWNraW5nXG5cdFx0XHRcdFx0XHRcdGlmICggKG5ld0NhY2hlWyAyIF0gPSBtYXRjaGVyKCBlbGVtLCBjb250ZXh0LCB4bWwgKSkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xufVxuXG5mdW5jdGlvbiBlbGVtZW50TWF0Y2hlciggbWF0Y2hlcnMgKSB7XG5cdHJldHVybiBtYXRjaGVycy5sZW5ndGggPiAxID9cblx0XHRmdW5jdGlvbiggZWxlbSwgY29udGV4dCwgeG1sICkge1xuXHRcdFx0dmFyIGkgPSBtYXRjaGVycy5sZW5ndGg7XG5cdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0aWYgKCAhbWF0Y2hlcnNbaV0oIGVsZW0sIGNvbnRleHQsIHhtbCApICkge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSA6XG5cdFx0bWF0Y2hlcnNbMF07XG59XG5cbmZ1bmN0aW9uIG11bHRpcGxlQ29udGV4dHMoIHNlbGVjdG9yLCBjb250ZXh0cywgcmVzdWx0cyApIHtcblx0dmFyIGkgPSAwLFxuXHRcdGxlbiA9IGNvbnRleHRzLmxlbmd0aDtcblx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0U2l6emxlKCBzZWxlY3RvciwgY29udGV4dHNbaV0sIHJlc3VsdHMgKTtcblx0fVxuXHRyZXR1cm4gcmVzdWx0cztcbn1cblxuZnVuY3Rpb24gY29uZGVuc2UoIHVubWF0Y2hlZCwgbWFwLCBmaWx0ZXIsIGNvbnRleHQsIHhtbCApIHtcblx0dmFyIGVsZW0sXG5cdFx0bmV3VW5tYXRjaGVkID0gW10sXG5cdFx0aSA9IDAsXG5cdFx0bGVuID0gdW5tYXRjaGVkLmxlbmd0aCxcblx0XHRtYXBwZWQgPSBtYXAgIT0gbnVsbDtcblxuXHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRpZiAoIChlbGVtID0gdW5tYXRjaGVkW2ldKSApIHtcblx0XHRcdGlmICggIWZpbHRlciB8fCBmaWx0ZXIoIGVsZW0sIGNvbnRleHQsIHhtbCApICkge1xuXHRcdFx0XHRuZXdVbm1hdGNoZWQucHVzaCggZWxlbSApO1xuXHRcdFx0XHRpZiAoIG1hcHBlZCApIHtcblx0XHRcdFx0XHRtYXAucHVzaCggaSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIG5ld1VubWF0Y2hlZDtcbn1cblxuZnVuY3Rpb24gc2V0TWF0Y2hlciggcHJlRmlsdGVyLCBzZWxlY3RvciwgbWF0Y2hlciwgcG9zdEZpbHRlciwgcG9zdEZpbmRlciwgcG9zdFNlbGVjdG9yICkge1xuXHRpZiAoIHBvc3RGaWx0ZXIgJiYgIXBvc3RGaWx0ZXJbIGV4cGFuZG8gXSApIHtcblx0XHRwb3N0RmlsdGVyID0gc2V0TWF0Y2hlciggcG9zdEZpbHRlciApO1xuXHR9XG5cdGlmICggcG9zdEZpbmRlciAmJiAhcG9zdEZpbmRlclsgZXhwYW5kbyBdICkge1xuXHRcdHBvc3RGaW5kZXIgPSBzZXRNYXRjaGVyKCBwb3N0RmluZGVyLCBwb3N0U2VsZWN0b3IgKTtcblx0fVxuXHRyZXR1cm4gbWFya0Z1bmN0aW9uKGZ1bmN0aW9uKCBzZWVkLCByZXN1bHRzLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0dmFyIHRlbXAsIGksIGVsZW0sXG5cdFx0XHRwcmVNYXAgPSBbXSxcblx0XHRcdHBvc3RNYXAgPSBbXSxcblx0XHRcdHByZWV4aXN0aW5nID0gcmVzdWx0cy5sZW5ndGgsXG5cblx0XHRcdC8vIEdldCBpbml0aWFsIGVsZW1lbnRzIGZyb20gc2VlZCBvciBjb250ZXh0XG5cdFx0XHRlbGVtcyA9IHNlZWQgfHwgbXVsdGlwbGVDb250ZXh0cyggc2VsZWN0b3IgfHwgXCIqXCIsIGNvbnRleHQubm9kZVR5cGUgPyBbIGNvbnRleHQgXSA6IGNvbnRleHQsIFtdICksXG5cblx0XHRcdC8vIFByZWZpbHRlciB0byBnZXQgbWF0Y2hlciBpbnB1dCwgcHJlc2VydmluZyBhIG1hcCBmb3Igc2VlZC1yZXN1bHRzIHN5bmNocm9uaXphdGlvblxuXHRcdFx0bWF0Y2hlckluID0gcHJlRmlsdGVyICYmICggc2VlZCB8fCAhc2VsZWN0b3IgKSA/XG5cdFx0XHRcdGNvbmRlbnNlKCBlbGVtcywgcHJlTWFwLCBwcmVGaWx0ZXIsIGNvbnRleHQsIHhtbCApIDpcblx0XHRcdFx0ZWxlbXMsXG5cblx0XHRcdG1hdGNoZXJPdXQgPSBtYXRjaGVyID9cblx0XHRcdFx0Ly8gSWYgd2UgaGF2ZSBhIHBvc3RGaW5kZXIsIG9yIGZpbHRlcmVkIHNlZWQsIG9yIG5vbi1zZWVkIHBvc3RGaWx0ZXIgb3IgcHJlZXhpc3RpbmcgcmVzdWx0cyxcblx0XHRcdFx0cG9zdEZpbmRlciB8fCAoIHNlZWQgPyBwcmVGaWx0ZXIgOiBwcmVleGlzdGluZyB8fCBwb3N0RmlsdGVyICkgP1xuXG5cdFx0XHRcdFx0Ly8gLi4uaW50ZXJtZWRpYXRlIHByb2Nlc3NpbmcgaXMgbmVjZXNzYXJ5XG5cdFx0XHRcdFx0W10gOlxuXG5cdFx0XHRcdFx0Ly8gLi4ub3RoZXJ3aXNlIHVzZSByZXN1bHRzIGRpcmVjdGx5XG5cdFx0XHRcdFx0cmVzdWx0cyA6XG5cdFx0XHRcdG1hdGNoZXJJbjtcblxuXHRcdC8vIEZpbmQgcHJpbWFyeSBtYXRjaGVzXG5cdFx0aWYgKCBtYXRjaGVyICkge1xuXHRcdFx0bWF0Y2hlciggbWF0Y2hlckluLCBtYXRjaGVyT3V0LCBjb250ZXh0LCB4bWwgKTtcblx0XHR9XG5cblx0XHQvLyBBcHBseSBwb3N0RmlsdGVyXG5cdFx0aWYgKCBwb3N0RmlsdGVyICkge1xuXHRcdFx0dGVtcCA9IGNvbmRlbnNlKCBtYXRjaGVyT3V0LCBwb3N0TWFwICk7XG5cdFx0XHRwb3N0RmlsdGVyKCB0ZW1wLCBbXSwgY29udGV4dCwgeG1sICk7XG5cblx0XHRcdC8vIFVuLW1hdGNoIGZhaWxpbmcgZWxlbWVudHMgYnkgbW92aW5nIHRoZW0gYmFjayB0byBtYXRjaGVySW5cblx0XHRcdGkgPSB0ZW1wLmxlbmd0aDtcblx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRpZiAoIChlbGVtID0gdGVtcFtpXSkgKSB7XG5cdFx0XHRcdFx0bWF0Y2hlck91dFsgcG9zdE1hcFtpXSBdID0gIShtYXRjaGVySW5bIHBvc3RNYXBbaV0gXSA9IGVsZW0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCBzZWVkICkge1xuXHRcdFx0aWYgKCBwb3N0RmluZGVyIHx8IHByZUZpbHRlciApIHtcblx0XHRcdFx0aWYgKCBwb3N0RmluZGVyICkge1xuXHRcdFx0XHRcdC8vIEdldCB0aGUgZmluYWwgbWF0Y2hlck91dCBieSBjb25kZW5zaW5nIHRoaXMgaW50ZXJtZWRpYXRlIGludG8gcG9zdEZpbmRlciBjb250ZXh0c1xuXHRcdFx0XHRcdHRlbXAgPSBbXTtcblx0XHRcdFx0XHRpID0gbWF0Y2hlck91dC5sZW5ndGg7XG5cdFx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0XHRpZiAoIChlbGVtID0gbWF0Y2hlck91dFtpXSkgKSB7XG5cdFx0XHRcdFx0XHRcdC8vIFJlc3RvcmUgbWF0Y2hlckluIHNpbmNlIGVsZW0gaXMgbm90IHlldCBhIGZpbmFsIG1hdGNoXG5cdFx0XHRcdFx0XHRcdHRlbXAucHVzaCggKG1hdGNoZXJJbltpXSA9IGVsZW0pICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHBvc3RGaW5kZXIoIG51bGwsIChtYXRjaGVyT3V0ID0gW10pLCB0ZW1wLCB4bWwgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIE1vdmUgbWF0Y2hlZCBlbGVtZW50cyBmcm9tIHNlZWQgdG8gcmVzdWx0cyB0byBrZWVwIHRoZW0gc3luY2hyb25pemVkXG5cdFx0XHRcdGkgPSBtYXRjaGVyT3V0Lmxlbmd0aDtcblx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0aWYgKCAoZWxlbSA9IG1hdGNoZXJPdXRbaV0pICYmXG5cdFx0XHRcdFx0XHQodGVtcCA9IHBvc3RGaW5kZXIgPyBpbmRleE9mKCBzZWVkLCBlbGVtICkgOiBwcmVNYXBbaV0pID4gLTEgKSB7XG5cblx0XHRcdFx0XHRcdHNlZWRbdGVtcF0gPSAhKHJlc3VsdHNbdGVtcF0gPSBlbGVtKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdC8vIEFkZCBlbGVtZW50cyB0byByZXN1bHRzLCB0aHJvdWdoIHBvc3RGaW5kZXIgaWYgZGVmaW5lZFxuXHRcdH0gZWxzZSB7XG5cdFx0XHRtYXRjaGVyT3V0ID0gY29uZGVuc2UoXG5cdFx0XHRcdG1hdGNoZXJPdXQgPT09IHJlc3VsdHMgP1xuXHRcdFx0XHRcdG1hdGNoZXJPdXQuc3BsaWNlKCBwcmVleGlzdGluZywgbWF0Y2hlck91dC5sZW5ndGggKSA6XG5cdFx0XHRcdFx0bWF0Y2hlck91dFxuXHRcdFx0KTtcblx0XHRcdGlmICggcG9zdEZpbmRlciApIHtcblx0XHRcdFx0cG9zdEZpbmRlciggbnVsbCwgcmVzdWx0cywgbWF0Y2hlck91dCwgeG1sICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLCBtYXRjaGVyT3V0ICk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9KTtcbn1cblxuZnVuY3Rpb24gbWF0Y2hlckZyb21Ub2tlbnMoIHRva2VucyApIHtcblx0dmFyIGNoZWNrQ29udGV4dCwgbWF0Y2hlciwgaixcblx0XHRsZW4gPSB0b2tlbnMubGVuZ3RoLFxuXHRcdGxlYWRpbmdSZWxhdGl2ZSA9IEV4cHIucmVsYXRpdmVbIHRva2Vuc1swXS50eXBlIF0sXG5cdFx0aW1wbGljaXRSZWxhdGl2ZSA9IGxlYWRpbmdSZWxhdGl2ZSB8fCBFeHByLnJlbGF0aXZlW1wiIFwiXSxcblx0XHRpID0gbGVhZGluZ1JlbGF0aXZlID8gMSA6IDAsXG5cblx0XHQvLyBUaGUgZm91bmRhdGlvbmFsIG1hdGNoZXIgZW5zdXJlcyB0aGF0IGVsZW1lbnRzIGFyZSByZWFjaGFibGUgZnJvbSB0b3AtbGV2ZWwgY29udGV4dChzKVxuXHRcdG1hdGNoQ29udGV4dCA9IGFkZENvbWJpbmF0b3IoIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGVsZW0gPT09IGNoZWNrQ29udGV4dDtcblx0XHR9LCBpbXBsaWNpdFJlbGF0aXZlLCB0cnVlICksXG5cdFx0bWF0Y2hBbnlDb250ZXh0ID0gYWRkQ29tYmluYXRvciggZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gaW5kZXhPZiggY2hlY2tDb250ZXh0LCBlbGVtICkgPiAtMTtcblx0XHR9LCBpbXBsaWNpdFJlbGF0aXZlLCB0cnVlICksXG5cdFx0bWF0Y2hlcnMgPSBbIGZ1bmN0aW9uKCBlbGVtLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0XHR2YXIgcmV0ID0gKCAhbGVhZGluZ1JlbGF0aXZlICYmICggeG1sIHx8IGNvbnRleHQgIT09IG91dGVybW9zdENvbnRleHQgKSApIHx8IChcblx0XHRcdFx0KGNoZWNrQ29udGV4dCA9IGNvbnRleHQpLm5vZGVUeXBlID9cblx0XHRcdFx0XHRtYXRjaENvbnRleHQoIGVsZW0sIGNvbnRleHQsIHhtbCApIDpcblx0XHRcdFx0XHRtYXRjaEFueUNvbnRleHQoIGVsZW0sIGNvbnRleHQsIHhtbCApICk7XG5cdFx0XHQvLyBBdm9pZCBoYW5naW5nIG9udG8gZWxlbWVudCAoaXNzdWUgIzI5OSlcblx0XHRcdGNoZWNrQ29udGV4dCA9IG51bGw7XG5cdFx0XHRyZXR1cm4gcmV0O1xuXHRcdH0gXTtcblxuXHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRpZiAoIChtYXRjaGVyID0gRXhwci5yZWxhdGl2ZVsgdG9rZW5zW2ldLnR5cGUgXSkgKSB7XG5cdFx0XHRtYXRjaGVycyA9IFsgYWRkQ29tYmluYXRvcihlbGVtZW50TWF0Y2hlciggbWF0Y2hlcnMgKSwgbWF0Y2hlcikgXTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bWF0Y2hlciA9IEV4cHIuZmlsdGVyWyB0b2tlbnNbaV0udHlwZSBdLmFwcGx5KCBudWxsLCB0b2tlbnNbaV0ubWF0Y2hlcyApO1xuXG5cdFx0XHQvLyBSZXR1cm4gc3BlY2lhbCB1cG9uIHNlZWluZyBhIHBvc2l0aW9uYWwgbWF0Y2hlclxuXHRcdFx0aWYgKCBtYXRjaGVyWyBleHBhbmRvIF0gKSB7XG5cdFx0XHRcdC8vIEZpbmQgdGhlIG5leHQgcmVsYXRpdmUgb3BlcmF0b3IgKGlmIGFueSkgZm9yIHByb3BlciBoYW5kbGluZ1xuXHRcdFx0XHRqID0gKytpO1xuXHRcdFx0XHRmb3IgKCA7IGogPCBsZW47IGorKyApIHtcblx0XHRcdFx0XHRpZiAoIEV4cHIucmVsYXRpdmVbIHRva2Vuc1tqXS50eXBlIF0gKSB7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHNldE1hdGNoZXIoXG5cdFx0XHRcdFx0aSA+IDEgJiYgZWxlbWVudE1hdGNoZXIoIG1hdGNoZXJzICksXG5cdFx0XHRcdFx0aSA+IDEgJiYgdG9TZWxlY3Rvcihcblx0XHRcdFx0XHRcdC8vIElmIHRoZSBwcmVjZWRpbmcgdG9rZW4gd2FzIGEgZGVzY2VuZGFudCBjb21iaW5hdG9yLCBpbnNlcnQgYW4gaW1wbGljaXQgYW55LWVsZW1lbnQgYCpgXG5cdFx0XHRcdFx0XHR0b2tlbnMuc2xpY2UoIDAsIGkgLSAxICkuY29uY2F0KHsgdmFsdWU6IHRva2Vuc1sgaSAtIDIgXS50eXBlID09PSBcIiBcIiA/IFwiKlwiIDogXCJcIiB9KVxuXHRcdFx0XHRcdCkucmVwbGFjZSggcnRyaW0sIFwiJDFcIiApLFxuXHRcdFx0XHRcdG1hdGNoZXIsXG5cdFx0XHRcdFx0aSA8IGogJiYgbWF0Y2hlckZyb21Ub2tlbnMoIHRva2Vucy5zbGljZSggaSwgaiApICksXG5cdFx0XHRcdFx0aiA8IGxlbiAmJiBtYXRjaGVyRnJvbVRva2VucyggKHRva2VucyA9IHRva2Vucy5zbGljZSggaiApKSApLFxuXHRcdFx0XHRcdGogPCBsZW4gJiYgdG9TZWxlY3RvciggdG9rZW5zIClcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdG1hdGNoZXJzLnB1c2goIG1hdGNoZXIgKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZWxlbWVudE1hdGNoZXIoIG1hdGNoZXJzICk7XG59XG5cbmZ1bmN0aW9uIG1hdGNoZXJGcm9tR3JvdXBNYXRjaGVycyggZWxlbWVudE1hdGNoZXJzLCBzZXRNYXRjaGVycyApIHtcblx0dmFyIGJ5U2V0ID0gc2V0TWF0Y2hlcnMubGVuZ3RoID4gMCxcblx0XHRieUVsZW1lbnQgPSBlbGVtZW50TWF0Y2hlcnMubGVuZ3RoID4gMCxcblx0XHRzdXBlck1hdGNoZXIgPSBmdW5jdGlvbiggc2VlZCwgY29udGV4dCwgeG1sLCByZXN1bHRzLCBvdXRlcm1vc3QgKSB7XG5cdFx0XHR2YXIgZWxlbSwgaiwgbWF0Y2hlcixcblx0XHRcdFx0bWF0Y2hlZENvdW50ID0gMCxcblx0XHRcdFx0aSA9IFwiMFwiLFxuXHRcdFx0XHR1bm1hdGNoZWQgPSBzZWVkICYmIFtdLFxuXHRcdFx0XHRzZXRNYXRjaGVkID0gW10sXG5cdFx0XHRcdGNvbnRleHRCYWNrdXAgPSBvdXRlcm1vc3RDb250ZXh0LFxuXHRcdFx0XHQvLyBXZSBtdXN0IGFsd2F5cyBoYXZlIGVpdGhlciBzZWVkIGVsZW1lbnRzIG9yIG91dGVybW9zdCBjb250ZXh0XG5cdFx0XHRcdGVsZW1zID0gc2VlZCB8fCBieUVsZW1lbnQgJiYgRXhwci5maW5kW1wiVEFHXCJdKCBcIipcIiwgb3V0ZXJtb3N0ICksXG5cdFx0XHRcdC8vIFVzZSBpbnRlZ2VyIGRpcnJ1bnMgaWZmIHRoaXMgaXMgdGhlIG91dGVybW9zdCBtYXRjaGVyXG5cdFx0XHRcdGRpcnJ1bnNVbmlxdWUgPSAoZGlycnVucyArPSBjb250ZXh0QmFja3VwID09IG51bGwgPyAxIDogTWF0aC5yYW5kb20oKSB8fCAwLjEpLFxuXHRcdFx0XHRsZW4gPSBlbGVtcy5sZW5ndGg7XG5cblx0XHRcdGlmICggb3V0ZXJtb3N0ICkge1xuXHRcdFx0XHRvdXRlcm1vc3RDb250ZXh0ID0gY29udGV4dCAhPT0gZG9jdW1lbnQgJiYgY29udGV4dDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQWRkIGVsZW1lbnRzIHBhc3NpbmcgZWxlbWVudE1hdGNoZXJzIGRpcmVjdGx5IHRvIHJlc3VsdHNcblx0XHRcdC8vIEtlZXAgYGlgIGEgc3RyaW5nIGlmIHRoZXJlIGFyZSBubyBlbGVtZW50cyBzbyBgbWF0Y2hlZENvdW50YCB3aWxsIGJlIFwiMDBcIiBiZWxvd1xuXHRcdFx0Ly8gU3VwcG9ydDogSUU8OSwgU2FmYXJpXG5cdFx0XHQvLyBUb2xlcmF0ZSBOb2RlTGlzdCBwcm9wZXJ0aWVzIChJRTogXCJsZW5ndGhcIjsgU2FmYXJpOiA8bnVtYmVyPikgbWF0Y2hpbmcgZWxlbWVudHMgYnkgaWRcblx0XHRcdGZvciAoIDsgaSAhPT0gbGVuICYmIChlbGVtID0gZWxlbXNbaV0pICE9IG51bGw7IGkrKyApIHtcblx0XHRcdFx0aWYgKCBieUVsZW1lbnQgJiYgZWxlbSApIHtcblx0XHRcdFx0XHRqID0gMDtcblx0XHRcdFx0XHR3aGlsZSAoIChtYXRjaGVyID0gZWxlbWVudE1hdGNoZXJzW2orK10pICkge1xuXHRcdFx0XHRcdFx0aWYgKCBtYXRjaGVyKCBlbGVtLCBjb250ZXh0LCB4bWwgKSApIHtcblx0XHRcdFx0XHRcdFx0cmVzdWx0cy5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIG91dGVybW9zdCApIHtcblx0XHRcdFx0XHRcdGRpcnJ1bnMgPSBkaXJydW5zVW5pcXVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFRyYWNrIHVubWF0Y2hlZCBlbGVtZW50cyBmb3Igc2V0IGZpbHRlcnNcblx0XHRcdFx0aWYgKCBieVNldCApIHtcblx0XHRcdFx0XHQvLyBUaGV5IHdpbGwgaGF2ZSBnb25lIHRocm91Z2ggYWxsIHBvc3NpYmxlIG1hdGNoZXJzXG5cdFx0XHRcdFx0aWYgKCAoZWxlbSA9ICFtYXRjaGVyICYmIGVsZW0pICkge1xuXHRcdFx0XHRcdFx0bWF0Y2hlZENvdW50LS07XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gTGVuZ3RoZW4gdGhlIGFycmF5IGZvciBldmVyeSBlbGVtZW50LCBtYXRjaGVkIG9yIG5vdFxuXHRcdFx0XHRcdGlmICggc2VlZCApIHtcblx0XHRcdFx0XHRcdHVubWF0Y2hlZC5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIEFwcGx5IHNldCBmaWx0ZXJzIHRvIHVubWF0Y2hlZCBlbGVtZW50c1xuXHRcdFx0bWF0Y2hlZENvdW50ICs9IGk7XG5cdFx0XHRpZiAoIGJ5U2V0ICYmIGkgIT09IG1hdGNoZWRDb3VudCApIHtcblx0XHRcdFx0aiA9IDA7XG5cdFx0XHRcdHdoaWxlICggKG1hdGNoZXIgPSBzZXRNYXRjaGVyc1tqKytdKSApIHtcblx0XHRcdFx0XHRtYXRjaGVyKCB1bm1hdGNoZWQsIHNldE1hdGNoZWQsIGNvbnRleHQsIHhtbCApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKCBzZWVkICkge1xuXHRcdFx0XHRcdC8vIFJlaW50ZWdyYXRlIGVsZW1lbnQgbWF0Y2hlcyB0byBlbGltaW5hdGUgdGhlIG5lZWQgZm9yIHNvcnRpbmdcblx0XHRcdFx0XHRpZiAoIG1hdGNoZWRDb3VudCA+IDAgKSB7XG5cdFx0XHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0XHRcdFx0aWYgKCAhKHVubWF0Y2hlZFtpXSB8fCBzZXRNYXRjaGVkW2ldKSApIHtcblx0XHRcdFx0XHRcdFx0XHRzZXRNYXRjaGVkW2ldID0gcG9wLmNhbGwoIHJlc3VsdHMgKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIERpc2NhcmQgaW5kZXggcGxhY2Vob2xkZXIgdmFsdWVzIHRvIGdldCBvbmx5IGFjdHVhbCBtYXRjaGVzXG5cdFx0XHRcdFx0c2V0TWF0Y2hlZCA9IGNvbmRlbnNlKCBzZXRNYXRjaGVkICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBBZGQgbWF0Y2hlcyB0byByZXN1bHRzXG5cdFx0XHRcdHB1c2guYXBwbHkoIHJlc3VsdHMsIHNldE1hdGNoZWQgKTtcblxuXHRcdFx0XHQvLyBTZWVkbGVzcyBzZXQgbWF0Y2hlcyBzdWNjZWVkaW5nIG11bHRpcGxlIHN1Y2Nlc3NmdWwgbWF0Y2hlcnMgc3RpcHVsYXRlIHNvcnRpbmdcblx0XHRcdFx0aWYgKCBvdXRlcm1vc3QgJiYgIXNlZWQgJiYgc2V0TWF0Y2hlZC5sZW5ndGggPiAwICYmXG5cdFx0XHRcdFx0KCBtYXRjaGVkQ291bnQgKyBzZXRNYXRjaGVycy5sZW5ndGggKSA+IDEgKSB7XG5cblx0XHRcdFx0XHRTaXp6bGUudW5pcXVlU29ydCggcmVzdWx0cyApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIE92ZXJyaWRlIG1hbmlwdWxhdGlvbiBvZiBnbG9iYWxzIGJ5IG5lc3RlZCBtYXRjaGVyc1xuXHRcdFx0aWYgKCBvdXRlcm1vc3QgKSB7XG5cdFx0XHRcdGRpcnJ1bnMgPSBkaXJydW5zVW5pcXVlO1xuXHRcdFx0XHRvdXRlcm1vc3RDb250ZXh0ID0gY29udGV4dEJhY2t1cDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHVubWF0Y2hlZDtcblx0XHR9O1xuXG5cdHJldHVybiBieVNldCA/XG5cdFx0bWFya0Z1bmN0aW9uKCBzdXBlck1hdGNoZXIgKSA6XG5cdFx0c3VwZXJNYXRjaGVyO1xufVxuXG5jb21waWxlID0gU2l6emxlLmNvbXBpbGUgPSBmdW5jdGlvbiggc2VsZWN0b3IsIG1hdGNoIC8qIEludGVybmFsIFVzZSBPbmx5ICovICkge1xuXHR2YXIgaSxcblx0XHRzZXRNYXRjaGVycyA9IFtdLFxuXHRcdGVsZW1lbnRNYXRjaGVycyA9IFtdLFxuXHRcdGNhY2hlZCA9IGNvbXBpbGVyQ2FjaGVbIHNlbGVjdG9yICsgXCIgXCIgXTtcblxuXHRpZiAoICFjYWNoZWQgKSB7XG5cdFx0Ly8gR2VuZXJhdGUgYSBmdW5jdGlvbiBvZiByZWN1cnNpdmUgZnVuY3Rpb25zIHRoYXQgY2FuIGJlIHVzZWQgdG8gY2hlY2sgZWFjaCBlbGVtZW50XG5cdFx0aWYgKCAhbWF0Y2ggKSB7XG5cdFx0XHRtYXRjaCA9IHRva2VuaXplKCBzZWxlY3RvciApO1xuXHRcdH1cblx0XHRpID0gbWF0Y2gubGVuZ3RoO1xuXHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0Y2FjaGVkID0gbWF0Y2hlckZyb21Ub2tlbnMoIG1hdGNoW2ldICk7XG5cdFx0XHRpZiAoIGNhY2hlZFsgZXhwYW5kbyBdICkge1xuXHRcdFx0XHRzZXRNYXRjaGVycy5wdXNoKCBjYWNoZWQgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGVsZW1lbnRNYXRjaGVycy5wdXNoKCBjYWNoZWQgKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBDYWNoZSB0aGUgY29tcGlsZWQgZnVuY3Rpb25cblx0XHRjYWNoZWQgPSBjb21waWxlckNhY2hlKCBzZWxlY3RvciwgbWF0Y2hlckZyb21Hcm91cE1hdGNoZXJzKCBlbGVtZW50TWF0Y2hlcnMsIHNldE1hdGNoZXJzICkgKTtcblxuXHRcdC8vIFNhdmUgc2VsZWN0b3IgYW5kIHRva2VuaXphdGlvblxuXHRcdGNhY2hlZC5zZWxlY3RvciA9IHNlbGVjdG9yO1xuXHR9XG5cdHJldHVybiBjYWNoZWQ7XG59O1xuXG4vKipcbiAqIEEgbG93LWxldmVsIHNlbGVjdGlvbiBmdW5jdGlvbiB0aGF0IHdvcmtzIHdpdGggU2l6emxlJ3MgY29tcGlsZWRcbiAqICBzZWxlY3RvciBmdW5jdGlvbnNcbiAqIEBwYXJhbSB7U3RyaW5nfEZ1bmN0aW9ufSBzZWxlY3RvciBBIHNlbGVjdG9yIG9yIGEgcHJlLWNvbXBpbGVkXG4gKiAgc2VsZWN0b3IgZnVuY3Rpb24gYnVpbHQgd2l0aCBTaXp6bGUuY29tcGlsZVxuICogQHBhcmFtIHtFbGVtZW50fSBjb250ZXh0XG4gKiBAcGFyYW0ge0FycmF5fSBbcmVzdWx0c11cbiAqIEBwYXJhbSB7QXJyYXl9IFtzZWVkXSBBIHNldCBvZiBlbGVtZW50cyB0byBtYXRjaCBhZ2FpbnN0XG4gKi9cbnNlbGVjdCA9IFNpenpsZS5zZWxlY3QgPSBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQsIHJlc3VsdHMsIHNlZWQgKSB7XG5cdHZhciBpLCB0b2tlbnMsIHRva2VuLCB0eXBlLCBmaW5kLFxuXHRcdGNvbXBpbGVkID0gdHlwZW9mIHNlbGVjdG9yID09PSBcImZ1bmN0aW9uXCIgJiYgc2VsZWN0b3IsXG5cdFx0bWF0Y2ggPSAhc2VlZCAmJiB0b2tlbml6ZSggKHNlbGVjdG9yID0gY29tcGlsZWQuc2VsZWN0b3IgfHwgc2VsZWN0b3IpICk7XG5cblx0cmVzdWx0cyA9IHJlc3VsdHMgfHwgW107XG5cblx0Ly8gVHJ5IHRvIG1pbmltaXplIG9wZXJhdGlvbnMgaWYgdGhlcmUgaXMgbm8gc2VlZCBhbmQgb25seSBvbmUgZ3JvdXBcblx0aWYgKCBtYXRjaC5sZW5ndGggPT09IDEgKSB7XG5cblx0XHQvLyBUYWtlIGEgc2hvcnRjdXQgYW5kIHNldCB0aGUgY29udGV4dCBpZiB0aGUgcm9vdCBzZWxlY3RvciBpcyBhbiBJRFxuXHRcdHRva2VucyA9IG1hdGNoWzBdID0gbWF0Y2hbMF0uc2xpY2UoIDAgKTtcblx0XHRpZiAoIHRva2Vucy5sZW5ndGggPiAyICYmICh0b2tlbiA9IHRva2Vuc1swXSkudHlwZSA9PT0gXCJJRFwiICYmXG5cdFx0XHRcdHN1cHBvcnQuZ2V0QnlJZCAmJiBjb250ZXh0Lm5vZGVUeXBlID09PSA5ICYmIGRvY3VtZW50SXNIVE1MICYmXG5cdFx0XHRcdEV4cHIucmVsYXRpdmVbIHRva2Vuc1sxXS50eXBlIF0gKSB7XG5cblx0XHRcdGNvbnRleHQgPSAoIEV4cHIuZmluZFtcIklEXCJdKCB0b2tlbi5tYXRjaGVzWzBdLnJlcGxhY2UocnVuZXNjYXBlLCBmdW5lc2NhcGUpLCBjb250ZXh0ICkgfHwgW10gKVswXTtcblx0XHRcdGlmICggIWNvbnRleHQgKSB7XG5cdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXG5cdFx0XHQvLyBQcmVjb21waWxlZCBtYXRjaGVycyB3aWxsIHN0aWxsIHZlcmlmeSBhbmNlc3RyeSwgc28gc3RlcCB1cCBhIGxldmVsXG5cdFx0XHR9IGVsc2UgaWYgKCBjb21waWxlZCApIHtcblx0XHRcdFx0Y29udGV4dCA9IGNvbnRleHQucGFyZW50Tm9kZTtcblx0XHRcdH1cblxuXHRcdFx0c2VsZWN0b3IgPSBzZWxlY3Rvci5zbGljZSggdG9rZW5zLnNoaWZ0KCkudmFsdWUubGVuZ3RoICk7XG5cdFx0fVxuXG5cdFx0Ly8gRmV0Y2ggYSBzZWVkIHNldCBmb3IgcmlnaHQtdG8tbGVmdCBtYXRjaGluZ1xuXHRcdGkgPSBtYXRjaEV4cHJbXCJuZWVkc0NvbnRleHRcIl0udGVzdCggc2VsZWN0b3IgKSA/IDAgOiB0b2tlbnMubGVuZ3RoO1xuXHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0dG9rZW4gPSB0b2tlbnNbaV07XG5cblx0XHRcdC8vIEFib3J0IGlmIHdlIGhpdCBhIGNvbWJpbmF0b3Jcblx0XHRcdGlmICggRXhwci5yZWxhdGl2ZVsgKHR5cGUgPSB0b2tlbi50eXBlKSBdICkge1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHRcdGlmICggKGZpbmQgPSBFeHByLmZpbmRbIHR5cGUgXSkgKSB7XG5cdFx0XHRcdC8vIFNlYXJjaCwgZXhwYW5kaW5nIGNvbnRleHQgZm9yIGxlYWRpbmcgc2libGluZyBjb21iaW5hdG9yc1xuXHRcdFx0XHRpZiAoIChzZWVkID0gZmluZChcblx0XHRcdFx0XHR0b2tlbi5tYXRjaGVzWzBdLnJlcGxhY2UoIHJ1bmVzY2FwZSwgZnVuZXNjYXBlICksXG5cdFx0XHRcdFx0cnNpYmxpbmcudGVzdCggdG9rZW5zWzBdLnR5cGUgKSAmJiB0ZXN0Q29udGV4dCggY29udGV4dC5wYXJlbnROb2RlICkgfHwgY29udGV4dFxuXHRcdFx0XHQpKSApIHtcblxuXHRcdFx0XHRcdC8vIElmIHNlZWQgaXMgZW1wdHkgb3Igbm8gdG9rZW5zIHJlbWFpbiwgd2UgY2FuIHJldHVybiBlYXJseVxuXHRcdFx0XHRcdHRva2Vucy5zcGxpY2UoIGksIDEgKTtcblx0XHRcdFx0XHRzZWxlY3RvciA9IHNlZWQubGVuZ3RoICYmIHRvU2VsZWN0b3IoIHRva2VucyApO1xuXHRcdFx0XHRcdGlmICggIXNlbGVjdG9yICkge1xuXHRcdFx0XHRcdFx0cHVzaC5hcHBseSggcmVzdWx0cywgc2VlZCApO1xuXHRcdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBDb21waWxlIGFuZCBleGVjdXRlIGEgZmlsdGVyaW5nIGZ1bmN0aW9uIGlmIG9uZSBpcyBub3QgcHJvdmlkZWRcblx0Ly8gUHJvdmlkZSBgbWF0Y2hgIHRvIGF2b2lkIHJldG9rZW5pemF0aW9uIGlmIHdlIG1vZGlmaWVkIHRoZSBzZWxlY3RvciBhYm92ZVxuXHQoIGNvbXBpbGVkIHx8IGNvbXBpbGUoIHNlbGVjdG9yLCBtYXRjaCApICkoXG5cdFx0c2VlZCxcblx0XHRjb250ZXh0LFxuXHRcdCFkb2N1bWVudElzSFRNTCxcblx0XHRyZXN1bHRzLFxuXHRcdHJzaWJsaW5nLnRlc3QoIHNlbGVjdG9yICkgJiYgdGVzdENvbnRleHQoIGNvbnRleHQucGFyZW50Tm9kZSApIHx8IGNvbnRleHRcblx0KTtcblx0cmV0dXJuIHJlc3VsdHM7XG59O1xuXG4vLyBPbmUtdGltZSBhc3NpZ25tZW50c1xuXG4vLyBTb3J0IHN0YWJpbGl0eVxuc3VwcG9ydC5zb3J0U3RhYmxlID0gZXhwYW5kby5zcGxpdChcIlwiKS5zb3J0KCBzb3J0T3JkZXIgKS5qb2luKFwiXCIpID09PSBleHBhbmRvO1xuXG4vLyBTdXBwb3J0OiBDaHJvbWUgMTQtMzUrXG4vLyBBbHdheXMgYXNzdW1lIGR1cGxpY2F0ZXMgaWYgdGhleSBhcmVuJ3QgcGFzc2VkIHRvIHRoZSBjb21wYXJpc29uIGZ1bmN0aW9uXG5zdXBwb3J0LmRldGVjdER1cGxpY2F0ZXMgPSAhIWhhc0R1cGxpY2F0ZTtcblxuLy8gSW5pdGlhbGl6ZSBhZ2FpbnN0IHRoZSBkZWZhdWx0IGRvY3VtZW50XG5zZXREb2N1bWVudCgpO1xuXG4vLyBTdXBwb3J0OiBXZWJraXQ8NTM3LjMyIC0gU2FmYXJpIDYuMC4zL0Nocm9tZSAyNSAoZml4ZWQgaW4gQ2hyb21lIDI3KVxuLy8gRGV0YWNoZWQgbm9kZXMgY29uZm91bmRpbmdseSBmb2xsb3cgKmVhY2ggb3RoZXIqXG5zdXBwb3J0LnNvcnREZXRhY2hlZCA9IGFzc2VydChmdW5jdGlvbiggZGl2MSApIHtcblx0Ly8gU2hvdWxkIHJldHVybiAxLCBidXQgcmV0dXJucyA0IChmb2xsb3dpbmcpXG5cdHJldHVybiBkaXYxLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpICkgJiAxO1xufSk7XG5cbi8vIFN1cHBvcnQ6IElFPDhcbi8vIFByZXZlbnQgYXR0cmlidXRlL3Byb3BlcnR5IFwiaW50ZXJwb2xhdGlvblwiXG4vLyBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvbXM1MzY0MjklMjhWUy44NSUyOS5hc3B4XG5pZiAoICFhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHtcblx0ZGl2LmlubmVySFRNTCA9IFwiPGEgaHJlZj0nIyc+PC9hPlwiO1xuXHRyZXR1cm4gZGl2LmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKSA9PT0gXCIjXCIgO1xufSkgKSB7XG5cdGFkZEhhbmRsZSggXCJ0eXBlfGhyZWZ8aGVpZ2h0fHdpZHRoXCIsIGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBpc1hNTCApIHtcblx0XHRpZiAoICFpc1hNTCApIHtcblx0XHRcdHJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSggbmFtZSwgbmFtZS50b0xvd2VyQ2FzZSgpID09PSBcInR5cGVcIiA/IDEgOiAyICk7XG5cdFx0fVxuXHR9KTtcbn1cblxuLy8gU3VwcG9ydDogSUU8OVxuLy8gVXNlIGRlZmF1bHRWYWx1ZSBpbiBwbGFjZSBvZiBnZXRBdHRyaWJ1dGUoXCJ2YWx1ZVwiKVxuaWYgKCAhc3VwcG9ydC5hdHRyaWJ1dGVzIHx8ICFhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHtcblx0ZGl2LmlubmVySFRNTCA9IFwiPGlucHV0Lz5cIjtcblx0ZGl2LmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCBcInZhbHVlXCIsIFwiXCIgKTtcblx0cmV0dXJuIGRpdi5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSggXCJ2YWx1ZVwiICkgPT09IFwiXCI7XG59KSApIHtcblx0YWRkSGFuZGxlKCBcInZhbHVlXCIsIGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBpc1hNTCApIHtcblx0XHRpZiAoICFpc1hNTCAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IFwiaW5wdXRcIiApIHtcblx0XHRcdHJldHVybiBlbGVtLmRlZmF1bHRWYWx1ZTtcblx0XHR9XG5cdH0pO1xufVxuXG4vLyBTdXBwb3J0OiBJRTw5XG4vLyBVc2UgZ2V0QXR0cmlidXRlTm9kZSB0byBmZXRjaCBib29sZWFucyB3aGVuIGdldEF0dHJpYnV0ZSBsaWVzXG5pZiAoICFhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHtcblx0cmV0dXJuIGRpdi5nZXRBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiKSA9PSBudWxsO1xufSkgKSB7XG5cdGFkZEhhbmRsZSggYm9vbGVhbnMsIGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBpc1hNTCApIHtcblx0XHR2YXIgdmFsO1xuXHRcdGlmICggIWlzWE1MICkge1xuXHRcdFx0cmV0dXJuIGVsZW1bIG5hbWUgXSA9PT0gdHJ1ZSA/IG5hbWUudG9Mb3dlckNhc2UoKSA6XG5cdFx0XHRcdFx0KHZhbCA9IGVsZW0uZ2V0QXR0cmlidXRlTm9kZSggbmFtZSApKSAmJiB2YWwuc3BlY2lmaWVkID9cblx0XHRcdFx0XHR2YWwudmFsdWUgOlxuXHRcdFx0XHRudWxsO1xuXHRcdH1cblx0fSk7XG59XG5cbnJldHVybiBTaXp6bGU7XG5cbn0pKCB3aW5kb3cgKTtcblxuXG5cbmpRdWVyeS5maW5kID0gU2l6emxlO1xualF1ZXJ5LmV4cHIgPSBTaXp6bGUuc2VsZWN0b3JzO1xualF1ZXJ5LmV4cHJbXCI6XCJdID0galF1ZXJ5LmV4cHIucHNldWRvcztcbmpRdWVyeS51bmlxdWUgPSBTaXp6bGUudW5pcXVlU29ydDtcbmpRdWVyeS50ZXh0ID0gU2l6emxlLmdldFRleHQ7XG5qUXVlcnkuaXNYTUxEb2MgPSBTaXp6bGUuaXNYTUw7XG5qUXVlcnkuY29udGFpbnMgPSBTaXp6bGUuY29udGFpbnM7XG5cblxuXG52YXIgcm5lZWRzQ29udGV4dCA9IGpRdWVyeS5leHByLm1hdGNoLm5lZWRzQ29udGV4dDtcblxudmFyIHJzaW5nbGVUYWcgPSAoL148KFxcdyspXFxzKlxcLz8+KD86PFxcL1xcMT58KSQvKTtcblxuXG5cbnZhciByaXNTaW1wbGUgPSAvXi5bXjojXFxbXFwuLF0qJC87XG5cbi8vIEltcGxlbWVudCB0aGUgaWRlbnRpY2FsIGZ1bmN0aW9uYWxpdHkgZm9yIGZpbHRlciBhbmQgbm90XG5mdW5jdGlvbiB3aW5ub3coIGVsZW1lbnRzLCBxdWFsaWZpZXIsIG5vdCApIHtcblx0aWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggcXVhbGlmaWVyICkgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5ncmVwKCBlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0sIGkgKSB7XG5cdFx0XHQvKiBqc2hpbnQgLVcwMTggKi9cblx0XHRcdHJldHVybiAhIXF1YWxpZmllci5jYWxsKCBlbGVtLCBpLCBlbGVtICkgIT09IG5vdDtcblx0XHR9KTtcblxuXHR9XG5cblx0aWYgKCBxdWFsaWZpZXIubm9kZVR5cGUgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5ncmVwKCBlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gKCBlbGVtID09PSBxdWFsaWZpZXIgKSAhPT0gbm90O1xuXHRcdH0pO1xuXG5cdH1cblxuXHRpZiAoIHR5cGVvZiBxdWFsaWZpZXIgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0aWYgKCByaXNTaW1wbGUudGVzdCggcXVhbGlmaWVyICkgKSB7XG5cdFx0XHRyZXR1cm4galF1ZXJ5LmZpbHRlciggcXVhbGlmaWVyLCBlbGVtZW50cywgbm90ICk7XG5cdFx0fVxuXG5cdFx0cXVhbGlmaWVyID0galF1ZXJ5LmZpbHRlciggcXVhbGlmaWVyLCBlbGVtZW50cyApO1xuXHR9XG5cblx0cmV0dXJuIGpRdWVyeS5ncmVwKCBlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuICggaW5kZXhPZi5jYWxsKCBxdWFsaWZpZXIsIGVsZW0gKSA+PSAwICkgIT09IG5vdDtcblx0fSk7XG59XG5cbmpRdWVyeS5maWx0ZXIgPSBmdW5jdGlvbiggZXhwciwgZWxlbXMsIG5vdCApIHtcblx0dmFyIGVsZW0gPSBlbGVtc1sgMCBdO1xuXG5cdGlmICggbm90ICkge1xuXHRcdGV4cHIgPSBcIjpub3QoXCIgKyBleHByICsgXCIpXCI7XG5cdH1cblxuXHRyZXR1cm4gZWxlbXMubGVuZ3RoID09PSAxICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgP1xuXHRcdGpRdWVyeS5maW5kLm1hdGNoZXNTZWxlY3RvciggZWxlbSwgZXhwciApID8gWyBlbGVtIF0gOiBbXSA6XG5cdFx0alF1ZXJ5LmZpbmQubWF0Y2hlcyggZXhwciwgalF1ZXJ5LmdyZXAoIGVsZW1zLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiBlbGVtLm5vZGVUeXBlID09PSAxO1xuXHRcdH0pKTtcbn07XG5cbmpRdWVyeS5mbi5leHRlbmQoe1xuXHRmaW5kOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0dmFyIGksXG5cdFx0XHRsZW4gPSB0aGlzLmxlbmd0aCxcblx0XHRcdHJldCA9IFtdLFxuXHRcdFx0c2VsZiA9IHRoaXM7XG5cblx0XHRpZiAoIHR5cGVvZiBzZWxlY3RvciAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggalF1ZXJ5KCBzZWxlY3RvciApLmZpbHRlcihmdW5jdGlvbigpIHtcblx0XHRcdFx0Zm9yICggaSA9IDA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdFx0XHRpZiAoIGpRdWVyeS5jb250YWlucyggc2VsZlsgaSBdLCB0aGlzICkgKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0pICk7XG5cdFx0fVxuXG5cdFx0Zm9yICggaSA9IDA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdGpRdWVyeS5maW5kKCBzZWxlY3Rvciwgc2VsZlsgaSBdLCByZXQgKTtcblx0XHR9XG5cblx0XHQvLyBOZWVkZWQgYmVjYXVzZSAkKCBzZWxlY3RvciwgY29udGV4dCApIGJlY29tZXMgJCggY29udGV4dCApLmZpbmQoIHNlbGVjdG9yIClcblx0XHRyZXQgPSB0aGlzLnB1c2hTdGFjayggbGVuID4gMSA/IGpRdWVyeS51bmlxdWUoIHJldCApIDogcmV0ICk7XG5cdFx0cmV0LnNlbGVjdG9yID0gdGhpcy5zZWxlY3RvciA/IHRoaXMuc2VsZWN0b3IgKyBcIiBcIiArIHNlbGVjdG9yIDogc2VsZWN0b3I7XG5cdFx0cmV0dXJuIHJldDtcblx0fSxcblx0ZmlsdGVyOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCB3aW5ub3codGhpcywgc2VsZWN0b3IgfHwgW10sIGZhbHNlKSApO1xuXHR9LFxuXHRub3Q6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHdpbm5vdyh0aGlzLCBzZWxlY3RvciB8fCBbXSwgdHJ1ZSkgKTtcblx0fSxcblx0aXM6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRyZXR1cm4gISF3aW5ub3coXG5cdFx0XHR0aGlzLFxuXG5cdFx0XHQvLyBJZiB0aGlzIGlzIGEgcG9zaXRpb25hbC9yZWxhdGl2ZSBzZWxlY3RvciwgY2hlY2sgbWVtYmVyc2hpcCBpbiB0aGUgcmV0dXJuZWQgc2V0XG5cdFx0XHQvLyBzbyAkKFwicDpmaXJzdFwiKS5pcyhcInA6bGFzdFwiKSB3b24ndCByZXR1cm4gdHJ1ZSBmb3IgYSBkb2Mgd2l0aCB0d28gXCJwXCIuXG5cdFx0XHR0eXBlb2Ygc2VsZWN0b3IgPT09IFwic3RyaW5nXCIgJiYgcm5lZWRzQ29udGV4dC50ZXN0KCBzZWxlY3RvciApID9cblx0XHRcdFx0alF1ZXJ5KCBzZWxlY3RvciApIDpcblx0XHRcdFx0c2VsZWN0b3IgfHwgW10sXG5cdFx0XHRmYWxzZVxuXHRcdCkubGVuZ3RoO1xuXHR9XG59KTtcblxuXG4vLyBJbml0aWFsaXplIGEgalF1ZXJ5IG9iamVjdFxuXG5cbi8vIEEgY2VudHJhbCByZWZlcmVuY2UgdG8gdGhlIHJvb3QgalF1ZXJ5KGRvY3VtZW50KVxudmFyIHJvb3RqUXVlcnksXG5cblx0Ly8gQSBzaW1wbGUgd2F5IHRvIGNoZWNrIGZvciBIVE1MIHN0cmluZ3Ncblx0Ly8gUHJpb3JpdGl6ZSAjaWQgb3ZlciA8dGFnPiB0byBhdm9pZCBYU1MgdmlhIGxvY2F0aW9uLmhhc2ggKCM5NTIxKVxuXHQvLyBTdHJpY3QgSFRNTCByZWNvZ25pdGlvbiAoIzExMjkwOiBtdXN0IHN0YXJ0IHdpdGggPClcblx0cnF1aWNrRXhwciA9IC9eKD86XFxzKig8W1xcd1xcV10rPilbXj5dKnwjKFtcXHctXSopKSQvLFxuXG5cdGluaXQgPSBqUXVlcnkuZm4uaW5pdCA9IGZ1bmN0aW9uKCBzZWxlY3RvciwgY29udGV4dCApIHtcblx0XHR2YXIgbWF0Y2gsIGVsZW07XG5cblx0XHQvLyBIQU5ETEU6ICQoXCJcIiksICQobnVsbCksICQodW5kZWZpbmVkKSwgJChmYWxzZSlcblx0XHRpZiAoICFzZWxlY3RvciApIHtcblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblxuXHRcdC8vIEhhbmRsZSBIVE1MIHN0cmluZ3Ncblx0XHRpZiAoIHR5cGVvZiBzZWxlY3RvciA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdGlmICggc2VsZWN0b3JbMF0gPT09IFwiPFwiICYmIHNlbGVjdG9yWyBzZWxlY3Rvci5sZW5ndGggLSAxIF0gPT09IFwiPlwiICYmIHNlbGVjdG9yLmxlbmd0aCA+PSAzICkge1xuXHRcdFx0XHQvLyBBc3N1bWUgdGhhdCBzdHJpbmdzIHRoYXQgc3RhcnQgYW5kIGVuZCB3aXRoIDw+IGFyZSBIVE1MIGFuZCBza2lwIHRoZSByZWdleCBjaGVja1xuXHRcdFx0XHRtYXRjaCA9IFsgbnVsbCwgc2VsZWN0b3IsIG51bGwgXTtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bWF0Y2ggPSBycXVpY2tFeHByLmV4ZWMoIHNlbGVjdG9yICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE1hdGNoIGh0bWwgb3IgbWFrZSBzdXJlIG5vIGNvbnRleHQgaXMgc3BlY2lmaWVkIGZvciAjaWRcblx0XHRcdGlmICggbWF0Y2ggJiYgKG1hdGNoWzFdIHx8ICFjb250ZXh0KSApIHtcblxuXHRcdFx0XHQvLyBIQU5ETEU6ICQoaHRtbCkgLT4gJChhcnJheSlcblx0XHRcdFx0aWYgKCBtYXRjaFsxXSApIHtcblx0XHRcdFx0XHRjb250ZXh0ID0gY29udGV4dCBpbnN0YW5jZW9mIGpRdWVyeSA/IGNvbnRleHRbMF0gOiBjb250ZXh0O1xuXG5cdFx0XHRcdFx0Ly8gT3B0aW9uIHRvIHJ1biBzY3JpcHRzIGlzIHRydWUgZm9yIGJhY2stY29tcGF0XG5cdFx0XHRcdFx0Ly8gSW50ZW50aW9uYWxseSBsZXQgdGhlIGVycm9yIGJlIHRocm93biBpZiBwYXJzZUhUTUwgaXMgbm90IHByZXNlbnRcblx0XHRcdFx0XHRqUXVlcnkubWVyZ2UoIHRoaXMsIGpRdWVyeS5wYXJzZUhUTUwoXG5cdFx0XHRcdFx0XHRtYXRjaFsxXSxcblx0XHRcdFx0XHRcdGNvbnRleHQgJiYgY29udGV4dC5ub2RlVHlwZSA/IGNvbnRleHQub3duZXJEb2N1bWVudCB8fCBjb250ZXh0IDogZG9jdW1lbnQsXG5cdFx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdFx0KSApO1xuXG5cdFx0XHRcdFx0Ly8gSEFORExFOiAkKGh0bWwsIHByb3BzKVxuXHRcdFx0XHRcdGlmICggcnNpbmdsZVRhZy50ZXN0KCBtYXRjaFsxXSApICYmIGpRdWVyeS5pc1BsYWluT2JqZWN0KCBjb250ZXh0ICkgKSB7XG5cdFx0XHRcdFx0XHRmb3IgKCBtYXRjaCBpbiBjb250ZXh0ICkge1xuXHRcdFx0XHRcdFx0XHQvLyBQcm9wZXJ0aWVzIG9mIGNvbnRleHQgYXJlIGNhbGxlZCBhcyBtZXRob2RzIGlmIHBvc3NpYmxlXG5cdFx0XHRcdFx0XHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHRoaXNbIG1hdGNoIF0gKSApIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzWyBtYXRjaCBdKCBjb250ZXh0WyBtYXRjaCBdICk7XG5cblx0XHRcdFx0XHRcdFx0Ly8gLi4uYW5kIG90aGVyd2lzZSBzZXQgYXMgYXR0cmlidXRlc1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuYXR0ciggbWF0Y2gsIGNvbnRleHRbIG1hdGNoIF0gKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXG5cdFx0XHRcdC8vIEhBTkRMRTogJCgjaWQpXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0ZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCBtYXRjaFsyXSApO1xuXG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogQmxhY2tiZXJyeSA0LjZcblx0XHRcdFx0XHQvLyBnRUJJRCByZXR1cm5zIG5vZGVzIG5vIGxvbmdlciBpbiB0aGUgZG9jdW1lbnQgKCM2OTYzKVxuXHRcdFx0XHRcdGlmICggZWxlbSAmJiBlbGVtLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdFx0XHQvLyBJbmplY3QgdGhlIGVsZW1lbnQgZGlyZWN0bHkgaW50byB0aGUgalF1ZXJ5IG9iamVjdFxuXHRcdFx0XHRcdFx0dGhpcy5sZW5ndGggPSAxO1xuXHRcdFx0XHRcdFx0dGhpc1swXSA9IGVsZW07XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0dGhpcy5jb250ZXh0ID0gZG9jdW1lbnQ7XG5cdFx0XHRcdFx0dGhpcy5zZWxlY3RvciA9IHNlbGVjdG9yO1xuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9XG5cblx0XHRcdC8vIEhBTkRMRTogJChleHByLCAkKC4uLikpXG5cdFx0XHR9IGVsc2UgaWYgKCAhY29udGV4dCB8fCBjb250ZXh0LmpxdWVyeSApIHtcblx0XHRcdFx0cmV0dXJuICggY29udGV4dCB8fCByb290alF1ZXJ5ICkuZmluZCggc2VsZWN0b3IgKTtcblxuXHRcdFx0Ly8gSEFORExFOiAkKGV4cHIsIGNvbnRleHQpXG5cdFx0XHQvLyAod2hpY2ggaXMganVzdCBlcXVpdmFsZW50IHRvOiAkKGNvbnRleHQpLmZpbmQoZXhwcilcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLmNvbnN0cnVjdG9yKCBjb250ZXh0ICkuZmluZCggc2VsZWN0b3IgKTtcblx0XHRcdH1cblxuXHRcdC8vIEhBTkRMRTogJChET01FbGVtZW50KVxuXHRcdH0gZWxzZSBpZiAoIHNlbGVjdG9yLm5vZGVUeXBlICkge1xuXHRcdFx0dGhpcy5jb250ZXh0ID0gdGhpc1swXSA9IHNlbGVjdG9yO1xuXHRcdFx0dGhpcy5sZW5ndGggPSAxO1xuXHRcdFx0cmV0dXJuIHRoaXM7XG5cblx0XHQvLyBIQU5ETEU6ICQoZnVuY3Rpb24pXG5cdFx0Ly8gU2hvcnRjdXQgZm9yIGRvY3VtZW50IHJlYWR5XG5cdFx0fSBlbHNlIGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHNlbGVjdG9yICkgKSB7XG5cdFx0XHRyZXR1cm4gdHlwZW9mIHJvb3RqUXVlcnkucmVhZHkgIT09IFwidW5kZWZpbmVkXCIgP1xuXHRcdFx0XHRyb290alF1ZXJ5LnJlYWR5KCBzZWxlY3RvciApIDpcblx0XHRcdFx0Ly8gRXhlY3V0ZSBpbW1lZGlhdGVseSBpZiByZWFkeSBpcyBub3QgcHJlc2VudFxuXHRcdFx0XHRzZWxlY3RvciggalF1ZXJ5ICk7XG5cdFx0fVxuXG5cdFx0aWYgKCBzZWxlY3Rvci5zZWxlY3RvciAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0dGhpcy5zZWxlY3RvciA9IHNlbGVjdG9yLnNlbGVjdG9yO1xuXHRcdFx0dGhpcy5jb250ZXh0ID0gc2VsZWN0b3IuY29udGV4dDtcblx0XHR9XG5cblx0XHRyZXR1cm4galF1ZXJ5Lm1ha2VBcnJheSggc2VsZWN0b3IsIHRoaXMgKTtcblx0fTtcblxuLy8gR2l2ZSB0aGUgaW5pdCBmdW5jdGlvbiB0aGUgalF1ZXJ5IHByb3RvdHlwZSBmb3IgbGF0ZXIgaW5zdGFudGlhdGlvblxuaW5pdC5wcm90b3R5cGUgPSBqUXVlcnkuZm47XG5cbi8vIEluaXRpYWxpemUgY2VudHJhbCByZWZlcmVuY2VcbnJvb3RqUXVlcnkgPSBqUXVlcnkoIGRvY3VtZW50ICk7XG5cblxudmFyIHJwYXJlbnRzcHJldiA9IC9eKD86cGFyZW50c3xwcmV2KD86VW50aWx8QWxsKSkvLFxuXHQvLyBNZXRob2RzIGd1YXJhbnRlZWQgdG8gcHJvZHVjZSBhIHVuaXF1ZSBzZXQgd2hlbiBzdGFydGluZyBmcm9tIGEgdW5pcXVlIHNldFxuXHRndWFyYW50ZWVkVW5pcXVlID0ge1xuXHRcdGNoaWxkcmVuOiB0cnVlLFxuXHRcdGNvbnRlbnRzOiB0cnVlLFxuXHRcdG5leHQ6IHRydWUsXG5cdFx0cHJldjogdHJ1ZVxuXHR9O1xuXG5qUXVlcnkuZXh0ZW5kKHtcblx0ZGlyOiBmdW5jdGlvbiggZWxlbSwgZGlyLCB1bnRpbCApIHtcblx0XHR2YXIgbWF0Y2hlZCA9IFtdLFxuXHRcdFx0dHJ1bmNhdGUgPSB1bnRpbCAhPT0gdW5kZWZpbmVkO1xuXG5cdFx0d2hpbGUgKCAoZWxlbSA9IGVsZW1bIGRpciBdKSAmJiBlbGVtLm5vZGVUeXBlICE9PSA5ICkge1xuXHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXHRcdFx0XHRpZiAoIHRydW5jYXRlICYmIGpRdWVyeSggZWxlbSApLmlzKCB1bnRpbCApICkge1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHRcdG1hdGNoZWQucHVzaCggZWxlbSApO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gbWF0Y2hlZDtcblx0fSxcblxuXHRzaWJsaW5nOiBmdW5jdGlvbiggbiwgZWxlbSApIHtcblx0XHR2YXIgbWF0Y2hlZCA9IFtdO1xuXG5cdFx0Zm9yICggOyBuOyBuID0gbi5uZXh0U2libGluZyApIHtcblx0XHRcdGlmICggbi5ub2RlVHlwZSA9PT0gMSAmJiBuICE9PSBlbGVtICkge1xuXHRcdFx0XHRtYXRjaGVkLnB1c2goIG4gKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gbWF0Y2hlZDtcblx0fVxufSk7XG5cbmpRdWVyeS5mbi5leHRlbmQoe1xuXHRoYXM6IGZ1bmN0aW9uKCB0YXJnZXQgKSB7XG5cdFx0dmFyIHRhcmdldHMgPSBqUXVlcnkoIHRhcmdldCwgdGhpcyApLFxuXHRcdFx0bCA9IHRhcmdldHMubGVuZ3RoO1xuXG5cdFx0cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIGkgPSAwO1xuXHRcdFx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRpZiAoIGpRdWVyeS5jb250YWlucyggdGhpcywgdGFyZ2V0c1tpXSApICkge1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0sXG5cblx0Y2xvc2VzdDogZnVuY3Rpb24oIHNlbGVjdG9ycywgY29udGV4dCApIHtcblx0XHR2YXIgY3VyLFxuXHRcdFx0aSA9IDAsXG5cdFx0XHRsID0gdGhpcy5sZW5ndGgsXG5cdFx0XHRtYXRjaGVkID0gW10sXG5cdFx0XHRwb3MgPSBybmVlZHNDb250ZXh0LnRlc3QoIHNlbGVjdG9ycyApIHx8IHR5cGVvZiBzZWxlY3RvcnMgIT09IFwic3RyaW5nXCIgP1xuXHRcdFx0XHRqUXVlcnkoIHNlbGVjdG9ycywgY29udGV4dCB8fCB0aGlzLmNvbnRleHQgKSA6XG5cdFx0XHRcdDA7XG5cblx0XHRmb3IgKCA7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRmb3IgKCBjdXIgPSB0aGlzW2ldOyBjdXIgJiYgY3VyICE9PSBjb250ZXh0OyBjdXIgPSBjdXIucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0Ly8gQWx3YXlzIHNraXAgZG9jdW1lbnQgZnJhZ21lbnRzXG5cdFx0XHRcdGlmICggY3VyLm5vZGVUeXBlIDwgMTEgJiYgKHBvcyA/XG5cdFx0XHRcdFx0cG9zLmluZGV4KGN1cikgPiAtMSA6XG5cblx0XHRcdFx0XHQvLyBEb24ndCBwYXNzIG5vbi1lbGVtZW50cyB0byBTaXp6bGVcblx0XHRcdFx0XHRjdXIubm9kZVR5cGUgPT09IDEgJiZcblx0XHRcdFx0XHRcdGpRdWVyeS5maW5kLm1hdGNoZXNTZWxlY3RvcihjdXIsIHNlbGVjdG9ycykpICkge1xuXG5cdFx0XHRcdFx0bWF0Y2hlZC5wdXNoKCBjdXIgKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggbWF0Y2hlZC5sZW5ndGggPiAxID8galF1ZXJ5LnVuaXF1ZSggbWF0Y2hlZCApIDogbWF0Y2hlZCApO1xuXHR9LFxuXG5cdC8vIERldGVybWluZSB0aGUgcG9zaXRpb24gb2YgYW4gZWxlbWVudCB3aXRoaW4gdGhlIHNldFxuXHRpbmRleDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHQvLyBObyBhcmd1bWVudCwgcmV0dXJuIGluZGV4IGluIHBhcmVudFxuXHRcdGlmICggIWVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gKCB0aGlzWyAwIF0gJiYgdGhpc1sgMCBdLnBhcmVudE5vZGUgKSA/IHRoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoIDogLTE7XG5cdFx0fVxuXG5cdFx0Ly8gSW5kZXggaW4gc2VsZWN0b3Jcblx0XHRpZiAoIHR5cGVvZiBlbGVtID09PSBcInN0cmluZ1wiICkge1xuXHRcdFx0cmV0dXJuIGluZGV4T2YuY2FsbCggalF1ZXJ5KCBlbGVtICksIHRoaXNbIDAgXSApO1xuXHRcdH1cblxuXHRcdC8vIExvY2F0ZSB0aGUgcG9zaXRpb24gb2YgdGhlIGRlc2lyZWQgZWxlbWVudFxuXHRcdHJldHVybiBpbmRleE9mLmNhbGwoIHRoaXMsXG5cblx0XHRcdC8vIElmIGl0IHJlY2VpdmVzIGEgalF1ZXJ5IG9iamVjdCwgdGhlIGZpcnN0IGVsZW1lbnQgaXMgdXNlZFxuXHRcdFx0ZWxlbS5qcXVlcnkgPyBlbGVtWyAwIF0gOiBlbGVtXG5cdFx0KTtcblx0fSxcblxuXHRhZGQ6IGZ1bmN0aW9uKCBzZWxlY3RvciwgY29udGV4dCApIHtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soXG5cdFx0XHRqUXVlcnkudW5pcXVlKFxuXHRcdFx0XHRqUXVlcnkubWVyZ2UoIHRoaXMuZ2V0KCksIGpRdWVyeSggc2VsZWN0b3IsIGNvbnRleHQgKSApXG5cdFx0XHQpXG5cdFx0KTtcblx0fSxcblxuXHRhZGRCYWNrOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0cmV0dXJuIHRoaXMuYWRkKCBzZWxlY3RvciA9PSBudWxsID9cblx0XHRcdHRoaXMucHJldk9iamVjdCA6IHRoaXMucHJldk9iamVjdC5maWx0ZXIoc2VsZWN0b3IpXG5cdFx0KTtcblx0fVxufSk7XG5cbmZ1bmN0aW9uIHNpYmxpbmcoIGN1ciwgZGlyICkge1xuXHR3aGlsZSAoIChjdXIgPSBjdXJbZGlyXSkgJiYgY3VyLm5vZGVUeXBlICE9PSAxICkge31cblx0cmV0dXJuIGN1cjtcbn1cblxualF1ZXJ5LmVhY2goe1xuXHRwYXJlbnQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGU7XG5cdFx0cmV0dXJuIHBhcmVudCAmJiBwYXJlbnQubm9kZVR5cGUgIT09IDExID8gcGFyZW50IDogbnVsbDtcblx0fSxcblx0cGFyZW50czogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5kaXIoIGVsZW0sIFwicGFyZW50Tm9kZVwiICk7XG5cdH0sXG5cdHBhcmVudHNVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkge1xuXHRcdHJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCBcInBhcmVudE5vZGVcIiwgdW50aWwgKTtcblx0fSxcblx0bmV4dDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIHNpYmxpbmcoIGVsZW0sIFwibmV4dFNpYmxpbmdcIiApO1xuXHR9LFxuXHRwcmV2OiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gc2libGluZyggZWxlbSwgXCJwcmV2aW91c1NpYmxpbmdcIiApO1xuXHR9LFxuXHRuZXh0QWxsOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmRpciggZWxlbSwgXCJuZXh0U2libGluZ1wiICk7XG5cdH0sXG5cdHByZXZBbGw6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCBcInByZXZpb3VzU2libGluZ1wiICk7XG5cdH0sXG5cdG5leHRVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkge1xuXHRcdHJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCBcIm5leHRTaWJsaW5nXCIsIHVudGlsICk7XG5cdH0sXG5cdHByZXZVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkge1xuXHRcdHJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCBcInByZXZpb3VzU2libGluZ1wiLCB1bnRpbCApO1xuXHR9LFxuXHRzaWJsaW5nczogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5zaWJsaW5nKCAoIGVsZW0ucGFyZW50Tm9kZSB8fCB7fSApLmZpcnN0Q2hpbGQsIGVsZW0gKTtcblx0fSxcblx0Y2hpbGRyZW46IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBqUXVlcnkuc2libGluZyggZWxlbS5maXJzdENoaWxkICk7XG5cdH0sXG5cdGNvbnRlbnRzOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gZWxlbS5jb250ZW50RG9jdW1lbnQgfHwgalF1ZXJ5Lm1lcmdlKCBbXSwgZWxlbS5jaGlsZE5vZGVzICk7XG5cdH1cbn0sIGZ1bmN0aW9uKCBuYW1lLCBmbiApIHtcblx0alF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggdW50aWwsIHNlbGVjdG9yICkge1xuXHRcdHZhciBtYXRjaGVkID0galF1ZXJ5Lm1hcCggdGhpcywgZm4sIHVudGlsICk7XG5cblx0XHRpZiAoIG5hbWUuc2xpY2UoIC01ICkgIT09IFwiVW50aWxcIiApIHtcblx0XHRcdHNlbGVjdG9yID0gdW50aWw7XG5cdFx0fVxuXG5cdFx0aWYgKCBzZWxlY3RvciAmJiB0eXBlb2Ygc2VsZWN0b3IgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRtYXRjaGVkID0galF1ZXJ5LmZpbHRlciggc2VsZWN0b3IsIG1hdGNoZWQgKTtcblx0XHR9XG5cblx0XHRpZiAoIHRoaXMubGVuZ3RoID4gMSApIHtcblx0XHRcdC8vIFJlbW92ZSBkdXBsaWNhdGVzXG5cdFx0XHRpZiAoICFndWFyYW50ZWVkVW5pcXVlWyBuYW1lIF0gKSB7XG5cdFx0XHRcdGpRdWVyeS51bmlxdWUoIG1hdGNoZWQgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUmV2ZXJzZSBvcmRlciBmb3IgcGFyZW50cyogYW5kIHByZXYtZGVyaXZhdGl2ZXNcblx0XHRcdGlmICggcnBhcmVudHNwcmV2LnRlc3QoIG5hbWUgKSApIHtcblx0XHRcdFx0bWF0Y2hlZC5yZXZlcnNlKCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBtYXRjaGVkICk7XG5cdH07XG59KTtcbnZhciBybm90d2hpdGUgPSAoL1xcUysvZyk7XG5cblxuXG4vLyBTdHJpbmcgdG8gT2JqZWN0IG9wdGlvbnMgZm9ybWF0IGNhY2hlXG52YXIgb3B0aW9uc0NhY2hlID0ge307XG5cbi8vIENvbnZlcnQgU3RyaW5nLWZvcm1hdHRlZCBvcHRpb25zIGludG8gT2JqZWN0LWZvcm1hdHRlZCBvbmVzIGFuZCBzdG9yZSBpbiBjYWNoZVxuZnVuY3Rpb24gY3JlYXRlT3B0aW9ucyggb3B0aW9ucyApIHtcblx0dmFyIG9iamVjdCA9IG9wdGlvbnNDYWNoZVsgb3B0aW9ucyBdID0ge307XG5cdGpRdWVyeS5lYWNoKCBvcHRpb25zLm1hdGNoKCBybm90d2hpdGUgKSB8fCBbXSwgZnVuY3Rpb24oIF8sIGZsYWcgKSB7XG5cdFx0b2JqZWN0WyBmbGFnIF0gPSB0cnVlO1xuXHR9KTtcblx0cmV0dXJuIG9iamVjdDtcbn1cblxuLypcbiAqIENyZWF0ZSBhIGNhbGxiYWNrIGxpc3QgdXNpbmcgdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzOlxuICpcbiAqXHRvcHRpb25zOiBhbiBvcHRpb25hbCBsaXN0IG9mIHNwYWNlLXNlcGFyYXRlZCBvcHRpb25zIHRoYXQgd2lsbCBjaGFuZ2UgaG93XG4gKlx0XHRcdHRoZSBjYWxsYmFjayBsaXN0IGJlaGF2ZXMgb3IgYSBtb3JlIHRyYWRpdGlvbmFsIG9wdGlvbiBvYmplY3RcbiAqXG4gKiBCeSBkZWZhdWx0IGEgY2FsbGJhY2sgbGlzdCB3aWxsIGFjdCBsaWtlIGFuIGV2ZW50IGNhbGxiYWNrIGxpc3QgYW5kIGNhbiBiZVxuICogXCJmaXJlZFwiIG11bHRpcGxlIHRpbWVzLlxuICpcbiAqIFBvc3NpYmxlIG9wdGlvbnM6XG4gKlxuICpcdG9uY2U6XHRcdFx0d2lsbCBlbnN1cmUgdGhlIGNhbGxiYWNrIGxpc3QgY2FuIG9ubHkgYmUgZmlyZWQgb25jZSAobGlrZSBhIERlZmVycmVkKVxuICpcbiAqXHRtZW1vcnk6XHRcdFx0d2lsbCBrZWVwIHRyYWNrIG9mIHByZXZpb3VzIHZhbHVlcyBhbmQgd2lsbCBjYWxsIGFueSBjYWxsYmFjayBhZGRlZFxuICpcdFx0XHRcdFx0YWZ0ZXIgdGhlIGxpc3QgaGFzIGJlZW4gZmlyZWQgcmlnaHQgYXdheSB3aXRoIHRoZSBsYXRlc3QgXCJtZW1vcml6ZWRcIlxuICpcdFx0XHRcdFx0dmFsdWVzIChsaWtlIGEgRGVmZXJyZWQpXG4gKlxuICpcdHVuaXF1ZTpcdFx0XHR3aWxsIGVuc3VyZSBhIGNhbGxiYWNrIGNhbiBvbmx5IGJlIGFkZGVkIG9uY2UgKG5vIGR1cGxpY2F0ZSBpbiB0aGUgbGlzdClcbiAqXG4gKlx0c3RvcE9uRmFsc2U6XHRpbnRlcnJ1cHQgY2FsbGluZ3Mgd2hlbiBhIGNhbGxiYWNrIHJldHVybnMgZmFsc2VcbiAqXG4gKi9cbmpRdWVyeS5DYWxsYmFja3MgPSBmdW5jdGlvbiggb3B0aW9ucyApIHtcblxuXHQvLyBDb252ZXJ0IG9wdGlvbnMgZnJvbSBTdHJpbmctZm9ybWF0dGVkIHRvIE9iamVjdC1mb3JtYXR0ZWQgaWYgbmVlZGVkXG5cdC8vICh3ZSBjaGVjayBpbiBjYWNoZSBmaXJzdClcblx0b3B0aW9ucyA9IHR5cGVvZiBvcHRpb25zID09PSBcInN0cmluZ1wiID9cblx0XHQoIG9wdGlvbnNDYWNoZVsgb3B0aW9ucyBdIHx8IGNyZWF0ZU9wdGlvbnMoIG9wdGlvbnMgKSApIDpcblx0XHRqUXVlcnkuZXh0ZW5kKCB7fSwgb3B0aW9ucyApO1xuXG5cdHZhciAvLyBMYXN0IGZpcmUgdmFsdWUgKGZvciBub24tZm9yZ2V0dGFibGUgbGlzdHMpXG5cdFx0bWVtb3J5LFxuXHRcdC8vIEZsYWcgdG8ga25vdyBpZiBsaXN0IHdhcyBhbHJlYWR5IGZpcmVkXG5cdFx0ZmlyZWQsXG5cdFx0Ly8gRmxhZyB0byBrbm93IGlmIGxpc3QgaXMgY3VycmVudGx5IGZpcmluZ1xuXHRcdGZpcmluZyxcblx0XHQvLyBGaXJzdCBjYWxsYmFjayB0byBmaXJlICh1c2VkIGludGVybmFsbHkgYnkgYWRkIGFuZCBmaXJlV2l0aClcblx0XHRmaXJpbmdTdGFydCxcblx0XHQvLyBFbmQgb2YgdGhlIGxvb3Agd2hlbiBmaXJpbmdcblx0XHRmaXJpbmdMZW5ndGgsXG5cdFx0Ly8gSW5kZXggb2YgY3VycmVudGx5IGZpcmluZyBjYWxsYmFjayAobW9kaWZpZWQgYnkgcmVtb3ZlIGlmIG5lZWRlZClcblx0XHRmaXJpbmdJbmRleCxcblx0XHQvLyBBY3R1YWwgY2FsbGJhY2sgbGlzdFxuXHRcdGxpc3QgPSBbXSxcblx0XHQvLyBTdGFjayBvZiBmaXJlIGNhbGxzIGZvciByZXBlYXRhYmxlIGxpc3RzXG5cdFx0c3RhY2sgPSAhb3B0aW9ucy5vbmNlICYmIFtdLFxuXHRcdC8vIEZpcmUgY2FsbGJhY2tzXG5cdFx0ZmlyZSA9IGZ1bmN0aW9uKCBkYXRhICkge1xuXHRcdFx0bWVtb3J5ID0gb3B0aW9ucy5tZW1vcnkgJiYgZGF0YTtcblx0XHRcdGZpcmVkID0gdHJ1ZTtcblx0XHRcdGZpcmluZ0luZGV4ID0gZmlyaW5nU3RhcnQgfHwgMDtcblx0XHRcdGZpcmluZ1N0YXJ0ID0gMDtcblx0XHRcdGZpcmluZ0xlbmd0aCA9IGxpc3QubGVuZ3RoO1xuXHRcdFx0ZmlyaW5nID0gdHJ1ZTtcblx0XHRcdGZvciAoIDsgbGlzdCAmJiBmaXJpbmdJbmRleCA8IGZpcmluZ0xlbmd0aDsgZmlyaW5nSW5kZXgrKyApIHtcblx0XHRcdFx0aWYgKCBsaXN0WyBmaXJpbmdJbmRleCBdLmFwcGx5KCBkYXRhWyAwIF0sIGRhdGFbIDEgXSApID09PSBmYWxzZSAmJiBvcHRpb25zLnN0b3BPbkZhbHNlICkge1xuXHRcdFx0XHRcdG1lbW9yeSA9IGZhbHNlOyAvLyBUbyBwcmV2ZW50IGZ1cnRoZXIgY2FsbHMgdXNpbmcgYWRkXG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGZpcmluZyA9IGZhbHNlO1xuXHRcdFx0aWYgKCBsaXN0ICkge1xuXHRcdFx0XHRpZiAoIHN0YWNrICkge1xuXHRcdFx0XHRcdGlmICggc3RhY2subGVuZ3RoICkge1xuXHRcdFx0XHRcdFx0ZmlyZSggc3RhY2suc2hpZnQoKSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIGlmICggbWVtb3J5ICkge1xuXHRcdFx0XHRcdGxpc3QgPSBbXTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzZWxmLmRpc2FibGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0Ly8gQWN0dWFsIENhbGxiYWNrcyBvYmplY3Rcblx0XHRzZWxmID0ge1xuXHRcdFx0Ly8gQWRkIGEgY2FsbGJhY2sgb3IgYSBjb2xsZWN0aW9uIG9mIGNhbGxiYWNrcyB0byB0aGUgbGlzdFxuXHRcdFx0YWRkOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCBsaXN0ICkge1xuXHRcdFx0XHRcdC8vIEZpcnN0LCB3ZSBzYXZlIHRoZSBjdXJyZW50IGxlbmd0aFxuXHRcdFx0XHRcdHZhciBzdGFydCA9IGxpc3QubGVuZ3RoO1xuXHRcdFx0XHRcdChmdW5jdGlvbiBhZGQoIGFyZ3MgKSB7XG5cdFx0XHRcdFx0XHRqUXVlcnkuZWFjaCggYXJncywgZnVuY3Rpb24oIF8sIGFyZyApIHtcblx0XHRcdFx0XHRcdFx0dmFyIHR5cGUgPSBqUXVlcnkudHlwZSggYXJnICk7XG5cdFx0XHRcdFx0XHRcdGlmICggdHlwZSA9PT0gXCJmdW5jdGlvblwiICkge1xuXHRcdFx0XHRcdFx0XHRcdGlmICggIW9wdGlvbnMudW5pcXVlIHx8ICFzZWxmLmhhcyggYXJnICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRsaXN0LnB1c2goIGFyZyApO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICggYXJnICYmIGFyZy5sZW5ndGggJiYgdHlwZSAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdFx0XHRcdFx0XHQvLyBJbnNwZWN0IHJlY3Vyc2l2ZWx5XG5cdFx0XHRcdFx0XHRcdFx0YWRkKCBhcmcgKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fSkoIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRcdC8vIERvIHdlIG5lZWQgdG8gYWRkIHRoZSBjYWxsYmFja3MgdG8gdGhlXG5cdFx0XHRcdFx0Ly8gY3VycmVudCBmaXJpbmcgYmF0Y2g/XG5cdFx0XHRcdFx0aWYgKCBmaXJpbmcgKSB7XG5cdFx0XHRcdFx0XHRmaXJpbmdMZW5ndGggPSBsaXN0Lmxlbmd0aDtcblx0XHRcdFx0XHQvLyBXaXRoIG1lbW9yeSwgaWYgd2UncmUgbm90IGZpcmluZyB0aGVuXG5cdFx0XHRcdFx0Ly8gd2Ugc2hvdWxkIGNhbGwgcmlnaHQgYXdheVxuXHRcdFx0XHRcdH0gZWxzZSBpZiAoIG1lbW9yeSApIHtcblx0XHRcdFx0XHRcdGZpcmluZ1N0YXJ0ID0gc3RhcnQ7XG5cdFx0XHRcdFx0XHRmaXJlKCBtZW1vcnkgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9LFxuXHRcdFx0Ly8gUmVtb3ZlIGEgY2FsbGJhY2sgZnJvbSB0aGUgbGlzdFxuXHRcdFx0cmVtb3ZlOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCBsaXN0ICkge1xuXHRcdFx0XHRcdGpRdWVyeS5lYWNoKCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBfLCBhcmcgKSB7XG5cdFx0XHRcdFx0XHR2YXIgaW5kZXg7XG5cdFx0XHRcdFx0XHR3aGlsZSAoICggaW5kZXggPSBqUXVlcnkuaW5BcnJheSggYXJnLCBsaXN0LCBpbmRleCApICkgPiAtMSApIHtcblx0XHRcdFx0XHRcdFx0bGlzdC5zcGxpY2UoIGluZGV4LCAxICk7XG5cdFx0XHRcdFx0XHRcdC8vIEhhbmRsZSBmaXJpbmcgaW5kZXhlc1xuXHRcdFx0XHRcdFx0XHRpZiAoIGZpcmluZyApIHtcblx0XHRcdFx0XHRcdFx0XHRpZiAoIGluZGV4IDw9IGZpcmluZ0xlbmd0aCApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGZpcmluZ0xlbmd0aC0tO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRpZiAoIGluZGV4IDw9IGZpcmluZ0luZGV4ICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0ZmlyaW5nSW5kZXgtLTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH0sXG5cdFx0XHQvLyBDaGVjayBpZiBhIGdpdmVuIGNhbGxiYWNrIGlzIGluIHRoZSBsaXN0LlxuXHRcdFx0Ly8gSWYgbm8gYXJndW1lbnQgaXMgZ2l2ZW4sIHJldHVybiB3aGV0aGVyIG9yIG5vdCBsaXN0IGhhcyBjYWxsYmFja3MgYXR0YWNoZWQuXG5cdFx0XHRoYXM6IGZ1bmN0aW9uKCBmbiApIHtcblx0XHRcdFx0cmV0dXJuIGZuID8galF1ZXJ5LmluQXJyYXkoIGZuLCBsaXN0ICkgPiAtMSA6ICEhKCBsaXN0ICYmIGxpc3QubGVuZ3RoICk7XG5cdFx0XHR9LFxuXHRcdFx0Ly8gUmVtb3ZlIGFsbCBjYWxsYmFja3MgZnJvbSB0aGUgbGlzdFxuXHRcdFx0ZW1wdHk6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRsaXN0ID0gW107XG5cdFx0XHRcdGZpcmluZ0xlbmd0aCA9IDA7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblx0XHRcdC8vIEhhdmUgdGhlIGxpc3QgZG8gbm90aGluZyBhbnltb3JlXG5cdFx0XHRkaXNhYmxlOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0bGlzdCA9IHN0YWNrID0gbWVtb3J5ID0gdW5kZWZpbmVkO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH0sXG5cdFx0XHQvLyBJcyBpdCBkaXNhYmxlZD9cblx0XHRcdGRpc2FibGVkOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0cmV0dXJuICFsaXN0O1xuXHRcdFx0fSxcblx0XHRcdC8vIExvY2sgdGhlIGxpc3QgaW4gaXRzIGN1cnJlbnQgc3RhdGVcblx0XHRcdGxvY2s6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRzdGFjayA9IHVuZGVmaW5lZDtcblx0XHRcdFx0aWYgKCAhbWVtb3J5ICkge1xuXHRcdFx0XHRcdHNlbGYuZGlzYWJsZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblx0XHRcdC8vIElzIGl0IGxvY2tlZD9cblx0XHRcdGxvY2tlZDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiAhc3RhY2s7XG5cdFx0XHR9LFxuXHRcdFx0Ly8gQ2FsbCBhbGwgY2FsbGJhY2tzIHdpdGggdGhlIGdpdmVuIGNvbnRleHQgYW5kIGFyZ3VtZW50c1xuXHRcdFx0ZmlyZVdpdGg6IGZ1bmN0aW9uKCBjb250ZXh0LCBhcmdzICkge1xuXHRcdFx0XHRpZiAoIGxpc3QgJiYgKCAhZmlyZWQgfHwgc3RhY2sgKSApIHtcblx0XHRcdFx0XHRhcmdzID0gYXJncyB8fCBbXTtcblx0XHRcdFx0XHRhcmdzID0gWyBjb250ZXh0LCBhcmdzLnNsaWNlID8gYXJncy5zbGljZSgpIDogYXJncyBdO1xuXHRcdFx0XHRcdGlmICggZmlyaW5nICkge1xuXHRcdFx0XHRcdFx0c3RhY2sucHVzaCggYXJncyApO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRmaXJlKCBhcmdzICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblx0XHRcdC8vIENhbGwgYWxsIHRoZSBjYWxsYmFja3Mgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzXG5cdFx0XHRmaXJlOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0c2VsZi5maXJlV2l0aCggdGhpcywgYXJndW1lbnRzICk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblx0XHRcdC8vIFRvIGtub3cgaWYgdGhlIGNhbGxiYWNrcyBoYXZlIGFscmVhZHkgYmVlbiBjYWxsZWQgYXQgbGVhc3Qgb25jZVxuXHRcdFx0ZmlyZWQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gISFmaXJlZDtcblx0XHRcdH1cblx0XHR9O1xuXG5cdHJldHVybiBzZWxmO1xufTtcblxuXG5qUXVlcnkuZXh0ZW5kKHtcblxuXHREZWZlcnJlZDogZnVuY3Rpb24oIGZ1bmMgKSB7XG5cdFx0dmFyIHR1cGxlcyA9IFtcblx0XHRcdFx0Ly8gYWN0aW9uLCBhZGQgbGlzdGVuZXIsIGxpc3RlbmVyIGxpc3QsIGZpbmFsIHN0YXRlXG5cdFx0XHRcdFsgXCJyZXNvbHZlXCIsIFwiZG9uZVwiLCBqUXVlcnkuQ2FsbGJhY2tzKFwib25jZSBtZW1vcnlcIiksIFwicmVzb2x2ZWRcIiBdLFxuXHRcdFx0XHRbIFwicmVqZWN0XCIsIFwiZmFpbFwiLCBqUXVlcnkuQ2FsbGJhY2tzKFwib25jZSBtZW1vcnlcIiksIFwicmVqZWN0ZWRcIiBdLFxuXHRcdFx0XHRbIFwibm90aWZ5XCIsIFwicHJvZ3Jlc3NcIiwgalF1ZXJ5LkNhbGxiYWNrcyhcIm1lbW9yeVwiKSBdXG5cdFx0XHRdLFxuXHRcdFx0c3RhdGUgPSBcInBlbmRpbmdcIixcblx0XHRcdHByb21pc2UgPSB7XG5cdFx0XHRcdHN0YXRlOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRyZXR1cm4gc3RhdGU7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGFsd2F5czogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0ZGVmZXJyZWQuZG9uZSggYXJndW1lbnRzICkuZmFpbCggYXJndW1lbnRzICk7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHRoZW46IGZ1bmN0aW9uKCAvKiBmbkRvbmUsIGZuRmFpbCwgZm5Qcm9ncmVzcyAqLyApIHtcblx0XHRcdFx0XHR2YXIgZm5zID0gYXJndW1lbnRzO1xuXHRcdFx0XHRcdHJldHVybiBqUXVlcnkuRGVmZXJyZWQoZnVuY3Rpb24oIG5ld0RlZmVyICkge1xuXHRcdFx0XHRcdFx0alF1ZXJ5LmVhY2goIHR1cGxlcywgZnVuY3Rpb24oIGksIHR1cGxlICkge1xuXHRcdFx0XHRcdFx0XHR2YXIgZm4gPSBqUXVlcnkuaXNGdW5jdGlvbiggZm5zWyBpIF0gKSAmJiBmbnNbIGkgXTtcblx0XHRcdFx0XHRcdFx0Ly8gZGVmZXJyZWRbIGRvbmUgfCBmYWlsIHwgcHJvZ3Jlc3MgXSBmb3IgZm9yd2FyZGluZyBhY3Rpb25zIHRvIG5ld0RlZmVyXG5cdFx0XHRcdFx0XHRcdGRlZmVycmVkWyB0dXBsZVsxXSBdKGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdHZhciByZXR1cm5lZCA9IGZuICYmIGZuLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTtcblx0XHRcdFx0XHRcdFx0XHRpZiAoIHJldHVybmVkICYmIGpRdWVyeS5pc0Z1bmN0aW9uKCByZXR1cm5lZC5wcm9taXNlICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm5lZC5wcm9taXNlKClcblx0XHRcdFx0XHRcdFx0XHRcdFx0LmRvbmUoIG5ld0RlZmVyLnJlc29sdmUgKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQuZmFpbCggbmV3RGVmZXIucmVqZWN0IClcblx0XHRcdFx0XHRcdFx0XHRcdFx0LnByb2dyZXNzKCBuZXdEZWZlci5ub3RpZnkgKTtcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdFx0bmV3RGVmZXJbIHR1cGxlWyAwIF0gKyBcIldpdGhcIiBdKCB0aGlzID09PSBwcm9taXNlID8gbmV3RGVmZXIucHJvbWlzZSgpIDogdGhpcywgZm4gPyBbIHJldHVybmVkIF0gOiBhcmd1bWVudHMgKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRmbnMgPSBudWxsO1xuXHRcdFx0XHRcdH0pLnByb21pc2UoKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0Ly8gR2V0IGEgcHJvbWlzZSBmb3IgdGhpcyBkZWZlcnJlZFxuXHRcdFx0XHQvLyBJZiBvYmogaXMgcHJvdmlkZWQsIHRoZSBwcm9taXNlIGFzcGVjdCBpcyBhZGRlZCB0byB0aGUgb2JqZWN0XG5cdFx0XHRcdHByb21pc2U6IGZ1bmN0aW9uKCBvYmogKSB7XG5cdFx0XHRcdFx0cmV0dXJuIG9iaiAhPSBudWxsID8galF1ZXJ5LmV4dGVuZCggb2JqLCBwcm9taXNlICkgOiBwcm9taXNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0ZGVmZXJyZWQgPSB7fTtcblxuXHRcdC8vIEtlZXAgcGlwZSBmb3IgYmFjay1jb21wYXRcblx0XHRwcm9taXNlLnBpcGUgPSBwcm9taXNlLnRoZW47XG5cblx0XHQvLyBBZGQgbGlzdC1zcGVjaWZpYyBtZXRob2RzXG5cdFx0alF1ZXJ5LmVhY2goIHR1cGxlcywgZnVuY3Rpb24oIGksIHR1cGxlICkge1xuXHRcdFx0dmFyIGxpc3QgPSB0dXBsZVsgMiBdLFxuXHRcdFx0XHRzdGF0ZVN0cmluZyA9IHR1cGxlWyAzIF07XG5cblx0XHRcdC8vIHByb21pc2VbIGRvbmUgfCBmYWlsIHwgcHJvZ3Jlc3MgXSA9IGxpc3QuYWRkXG5cdFx0XHRwcm9taXNlWyB0dXBsZVsxXSBdID0gbGlzdC5hZGQ7XG5cblx0XHRcdC8vIEhhbmRsZSBzdGF0ZVxuXHRcdFx0aWYgKCBzdGF0ZVN0cmluZyApIHtcblx0XHRcdFx0bGlzdC5hZGQoZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0Ly8gc3RhdGUgPSBbIHJlc29sdmVkIHwgcmVqZWN0ZWQgXVxuXHRcdFx0XHRcdHN0YXRlID0gc3RhdGVTdHJpbmc7XG5cblx0XHRcdFx0Ly8gWyByZWplY3RfbGlzdCB8IHJlc29sdmVfbGlzdCBdLmRpc2FibGU7IHByb2dyZXNzX2xpc3QubG9ja1xuXHRcdFx0XHR9LCB0dXBsZXNbIGkgXiAxIF1bIDIgXS5kaXNhYmxlLCB0dXBsZXNbIDIgXVsgMiBdLmxvY2sgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gZGVmZXJyZWRbIHJlc29sdmUgfCByZWplY3QgfCBub3RpZnkgXVxuXHRcdFx0ZGVmZXJyZWRbIHR1cGxlWzBdIF0gPSBmdW5jdGlvbigpIHtcblx0XHRcdFx0ZGVmZXJyZWRbIHR1cGxlWzBdICsgXCJXaXRoXCIgXSggdGhpcyA9PT0gZGVmZXJyZWQgPyBwcm9taXNlIDogdGhpcywgYXJndW1lbnRzICk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fTtcblx0XHRcdGRlZmVycmVkWyB0dXBsZVswXSArIFwiV2l0aFwiIF0gPSBsaXN0LmZpcmVXaXRoO1xuXHRcdH0pO1xuXG5cdFx0Ly8gTWFrZSB0aGUgZGVmZXJyZWQgYSBwcm9taXNlXG5cdFx0cHJvbWlzZS5wcm9taXNlKCBkZWZlcnJlZCApO1xuXG5cdFx0Ly8gQ2FsbCBnaXZlbiBmdW5jIGlmIGFueVxuXHRcdGlmICggZnVuYyApIHtcblx0XHRcdGZ1bmMuY2FsbCggZGVmZXJyZWQsIGRlZmVycmVkICk7XG5cdFx0fVxuXG5cdFx0Ly8gQWxsIGRvbmUhXG5cdFx0cmV0dXJuIGRlZmVycmVkO1xuXHR9LFxuXG5cdC8vIERlZmVycmVkIGhlbHBlclxuXHR3aGVuOiBmdW5jdGlvbiggc3Vib3JkaW5hdGUgLyogLCAuLi4sIHN1Ym9yZGluYXRlTiAqLyApIHtcblx0XHR2YXIgaSA9IDAsXG5cdFx0XHRyZXNvbHZlVmFsdWVzID0gc2xpY2UuY2FsbCggYXJndW1lbnRzICksXG5cdFx0XHRsZW5ndGggPSByZXNvbHZlVmFsdWVzLmxlbmd0aCxcblxuXHRcdFx0Ly8gdGhlIGNvdW50IG9mIHVuY29tcGxldGVkIHN1Ym9yZGluYXRlc1xuXHRcdFx0cmVtYWluaW5nID0gbGVuZ3RoICE9PSAxIHx8ICggc3Vib3JkaW5hdGUgJiYgalF1ZXJ5LmlzRnVuY3Rpb24oIHN1Ym9yZGluYXRlLnByb21pc2UgKSApID8gbGVuZ3RoIDogMCxcblxuXHRcdFx0Ly8gdGhlIG1hc3RlciBEZWZlcnJlZC4gSWYgcmVzb2x2ZVZhbHVlcyBjb25zaXN0IG9mIG9ubHkgYSBzaW5nbGUgRGVmZXJyZWQsIGp1c3QgdXNlIHRoYXQuXG5cdFx0XHRkZWZlcnJlZCA9IHJlbWFpbmluZyA9PT0gMSA/IHN1Ym9yZGluYXRlIDogalF1ZXJ5LkRlZmVycmVkKCksXG5cblx0XHRcdC8vIFVwZGF0ZSBmdW5jdGlvbiBmb3IgYm90aCByZXNvbHZlIGFuZCBwcm9ncmVzcyB2YWx1ZXNcblx0XHRcdHVwZGF0ZUZ1bmMgPSBmdW5jdGlvbiggaSwgY29udGV4dHMsIHZhbHVlcyApIHtcblx0XHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHRcdFx0XHRjb250ZXh0c1sgaSBdID0gdGhpcztcblx0XHRcdFx0XHR2YWx1ZXNbIGkgXSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gc2xpY2UuY2FsbCggYXJndW1lbnRzICkgOiB2YWx1ZTtcblx0XHRcdFx0XHRpZiAoIHZhbHVlcyA9PT0gcHJvZ3Jlc3NWYWx1ZXMgKSB7XG5cdFx0XHRcdFx0XHRkZWZlcnJlZC5ub3RpZnlXaXRoKCBjb250ZXh0cywgdmFsdWVzICk7XG5cdFx0XHRcdFx0fSBlbHNlIGlmICggISggLS1yZW1haW5pbmcgKSApIHtcblx0XHRcdFx0XHRcdGRlZmVycmVkLnJlc29sdmVXaXRoKCBjb250ZXh0cywgdmFsdWVzICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdFx0fSxcblxuXHRcdFx0cHJvZ3Jlc3NWYWx1ZXMsIHByb2dyZXNzQ29udGV4dHMsIHJlc29sdmVDb250ZXh0cztcblxuXHRcdC8vIEFkZCBsaXN0ZW5lcnMgdG8gRGVmZXJyZWQgc3Vib3JkaW5hdGVzOyB0cmVhdCBvdGhlcnMgYXMgcmVzb2x2ZWRcblx0XHRpZiAoIGxlbmd0aCA+IDEgKSB7XG5cdFx0XHRwcm9ncmVzc1ZhbHVlcyA9IG5ldyBBcnJheSggbGVuZ3RoICk7XG5cdFx0XHRwcm9ncmVzc0NvbnRleHRzID0gbmV3IEFycmF5KCBsZW5ndGggKTtcblx0XHRcdHJlc29sdmVDb250ZXh0cyA9IG5ldyBBcnJheSggbGVuZ3RoICk7XG5cdFx0XHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApIHtcblx0XHRcdFx0aWYgKCByZXNvbHZlVmFsdWVzWyBpIF0gJiYgalF1ZXJ5LmlzRnVuY3Rpb24oIHJlc29sdmVWYWx1ZXNbIGkgXS5wcm9taXNlICkgKSB7XG5cdFx0XHRcdFx0cmVzb2x2ZVZhbHVlc1sgaSBdLnByb21pc2UoKVxuXHRcdFx0XHRcdFx0LmRvbmUoIHVwZGF0ZUZ1bmMoIGksIHJlc29sdmVDb250ZXh0cywgcmVzb2x2ZVZhbHVlcyApIClcblx0XHRcdFx0XHRcdC5mYWlsKCBkZWZlcnJlZC5yZWplY3QgKVxuXHRcdFx0XHRcdFx0LnByb2dyZXNzKCB1cGRhdGVGdW5jKCBpLCBwcm9ncmVzc0NvbnRleHRzLCBwcm9ncmVzc1ZhbHVlcyApICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0LS1yZW1haW5pbmc7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBJZiB3ZSdyZSBub3Qgd2FpdGluZyBvbiBhbnl0aGluZywgcmVzb2x2ZSB0aGUgbWFzdGVyXG5cdFx0aWYgKCAhcmVtYWluaW5nICkge1xuXHRcdFx0ZGVmZXJyZWQucmVzb2x2ZVdpdGgoIHJlc29sdmVDb250ZXh0cywgcmVzb2x2ZVZhbHVlcyApO1xuXHRcdH1cblxuXHRcdHJldHVybiBkZWZlcnJlZC5wcm9taXNlKCk7XG5cdH1cbn0pO1xuXG5cbi8vIFRoZSBkZWZlcnJlZCB1c2VkIG9uIERPTSByZWFkeVxudmFyIHJlYWR5TGlzdDtcblxualF1ZXJ5LmZuLnJlYWR5ID0gZnVuY3Rpb24oIGZuICkge1xuXHQvLyBBZGQgdGhlIGNhbGxiYWNrXG5cdGpRdWVyeS5yZWFkeS5wcm9taXNlKCkuZG9uZSggZm4gKTtcblxuXHRyZXR1cm4gdGhpcztcbn07XG5cbmpRdWVyeS5leHRlbmQoe1xuXHQvLyBJcyB0aGUgRE9NIHJlYWR5IHRvIGJlIHVzZWQ/IFNldCB0byB0cnVlIG9uY2UgaXQgb2NjdXJzLlxuXHRpc1JlYWR5OiBmYWxzZSxcblxuXHQvLyBBIGNvdW50ZXIgdG8gdHJhY2sgaG93IG1hbnkgaXRlbXMgdG8gd2FpdCBmb3IgYmVmb3JlXG5cdC8vIHRoZSByZWFkeSBldmVudCBmaXJlcy4gU2VlICM2NzgxXG5cdHJlYWR5V2FpdDogMSxcblxuXHQvLyBIb2xkIChvciByZWxlYXNlKSB0aGUgcmVhZHkgZXZlbnRcblx0aG9sZFJlYWR5OiBmdW5jdGlvbiggaG9sZCApIHtcblx0XHRpZiAoIGhvbGQgKSB7XG5cdFx0XHRqUXVlcnkucmVhZHlXYWl0Kys7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGpRdWVyeS5yZWFkeSggdHJ1ZSApO1xuXHRcdH1cblx0fSxcblxuXHQvLyBIYW5kbGUgd2hlbiB0aGUgRE9NIGlzIHJlYWR5XG5cdHJlYWR5OiBmdW5jdGlvbiggd2FpdCApIHtcblxuXHRcdC8vIEFib3J0IGlmIHRoZXJlIGFyZSBwZW5kaW5nIGhvbGRzIG9yIHdlJ3JlIGFscmVhZHkgcmVhZHlcblx0XHRpZiAoIHdhaXQgPT09IHRydWUgPyAtLWpRdWVyeS5yZWFkeVdhaXQgOiBqUXVlcnkuaXNSZWFkeSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBSZW1lbWJlciB0aGF0IHRoZSBET00gaXMgcmVhZHlcblx0XHRqUXVlcnkuaXNSZWFkeSA9IHRydWU7XG5cblx0XHQvLyBJZiBhIG5vcm1hbCBET00gUmVhZHkgZXZlbnQgZmlyZWQsIGRlY3JlbWVudCwgYW5kIHdhaXQgaWYgbmVlZCBiZVxuXHRcdGlmICggd2FpdCAhPT0gdHJ1ZSAmJiAtLWpRdWVyeS5yZWFkeVdhaXQgPiAwICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIElmIHRoZXJlIGFyZSBmdW5jdGlvbnMgYm91bmQsIHRvIGV4ZWN1dGVcblx0XHRyZWFkeUxpc3QucmVzb2x2ZVdpdGgoIGRvY3VtZW50LCBbIGpRdWVyeSBdICk7XG5cblx0XHQvLyBUcmlnZ2VyIGFueSBib3VuZCByZWFkeSBldmVudHNcblx0XHRpZiAoIGpRdWVyeS5mbi50cmlnZ2VySGFuZGxlciApIHtcblx0XHRcdGpRdWVyeSggZG9jdW1lbnQgKS50cmlnZ2VySGFuZGxlciggXCJyZWFkeVwiICk7XG5cdFx0XHRqUXVlcnkoIGRvY3VtZW50ICkub2ZmKCBcInJlYWR5XCIgKTtcblx0XHR9XG5cdH1cbn0pO1xuXG4vKipcbiAqIFRoZSByZWFkeSBldmVudCBoYW5kbGVyIGFuZCBzZWxmIGNsZWFudXAgbWV0aG9kXG4gKi9cbmZ1bmN0aW9uIGNvbXBsZXRlZCgpIHtcblx0ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciggXCJET01Db250ZW50TG9hZGVkXCIsIGNvbXBsZXRlZCwgZmFsc2UgKTtcblx0d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIFwibG9hZFwiLCBjb21wbGV0ZWQsIGZhbHNlICk7XG5cdGpRdWVyeS5yZWFkeSgpO1xufVxuXG5qUXVlcnkucmVhZHkucHJvbWlzZSA9IGZ1bmN0aW9uKCBvYmogKSB7XG5cdGlmICggIXJlYWR5TGlzdCApIHtcblxuXHRcdHJlYWR5TGlzdCA9IGpRdWVyeS5EZWZlcnJlZCgpO1xuXG5cdFx0Ly8gQ2F0Y2ggY2FzZXMgd2hlcmUgJChkb2N1bWVudCkucmVhZHkoKSBpcyBjYWxsZWQgYWZ0ZXIgdGhlIGJyb3dzZXIgZXZlbnQgaGFzIGFscmVhZHkgb2NjdXJyZWQuXG5cdFx0Ly8gV2Ugb25jZSB0cmllZCB0byB1c2UgcmVhZHlTdGF0ZSBcImludGVyYWN0aXZlXCIgaGVyZSwgYnV0IGl0IGNhdXNlZCBpc3N1ZXMgbGlrZSB0aGUgb25lXG5cdFx0Ly8gZGlzY292ZXJlZCBieSBDaHJpc1MgaGVyZTogaHR0cDovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvMTIyODIjY29tbWVudDoxNVxuXHRcdGlmICggZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gXCJjb21wbGV0ZVwiICkge1xuXHRcdFx0Ly8gSGFuZGxlIGl0IGFzeW5jaHJvbm91c2x5IHRvIGFsbG93IHNjcmlwdHMgdGhlIG9wcG9ydHVuaXR5IHRvIGRlbGF5IHJlYWR5XG5cdFx0XHRzZXRUaW1lb3V0KCBqUXVlcnkucmVhZHkgKTtcblxuXHRcdH0gZWxzZSB7XG5cblx0XHRcdC8vIFVzZSB0aGUgaGFuZHkgZXZlbnQgY2FsbGJhY2tcblx0XHRcdGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIFwiRE9NQ29udGVudExvYWRlZFwiLCBjb21wbGV0ZWQsIGZhbHNlICk7XG5cblx0XHRcdC8vIEEgZmFsbGJhY2sgdG8gd2luZG93Lm9ubG9hZCwgdGhhdCB3aWxsIGFsd2F5cyB3b3JrXG5cdFx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lciggXCJsb2FkXCIsIGNvbXBsZXRlZCwgZmFsc2UgKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHJlYWR5TGlzdC5wcm9taXNlKCBvYmogKTtcbn07XG5cbi8vIEtpY2sgb2ZmIHRoZSBET00gcmVhZHkgY2hlY2sgZXZlbiBpZiB0aGUgdXNlciBkb2VzIG5vdFxualF1ZXJ5LnJlYWR5LnByb21pc2UoKTtcblxuXG5cblxuLy8gTXVsdGlmdW5jdGlvbmFsIG1ldGhvZCB0byBnZXQgYW5kIHNldCB2YWx1ZXMgb2YgYSBjb2xsZWN0aW9uXG4vLyBUaGUgdmFsdWUvcyBjYW4gb3B0aW9uYWxseSBiZSBleGVjdXRlZCBpZiBpdCdzIGEgZnVuY3Rpb25cbnZhciBhY2Nlc3MgPSBqUXVlcnkuYWNjZXNzID0gZnVuY3Rpb24oIGVsZW1zLCBmbiwga2V5LCB2YWx1ZSwgY2hhaW5hYmxlLCBlbXB0eUdldCwgcmF3ICkge1xuXHR2YXIgaSA9IDAsXG5cdFx0bGVuID0gZWxlbXMubGVuZ3RoLFxuXHRcdGJ1bGsgPSBrZXkgPT0gbnVsbDtcblxuXHQvLyBTZXRzIG1hbnkgdmFsdWVzXG5cdGlmICggalF1ZXJ5LnR5cGUoIGtleSApID09PSBcIm9iamVjdFwiICkge1xuXHRcdGNoYWluYWJsZSA9IHRydWU7XG5cdFx0Zm9yICggaSBpbiBrZXkgKSB7XG5cdFx0XHRqUXVlcnkuYWNjZXNzKCBlbGVtcywgZm4sIGksIGtleVtpXSwgdHJ1ZSwgZW1wdHlHZXQsIHJhdyApO1xuXHRcdH1cblxuXHQvLyBTZXRzIG9uZSB2YWx1ZVxuXHR9IGVsc2UgaWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdGNoYWluYWJsZSA9IHRydWU7XG5cblx0XHRpZiAoICFqUXVlcnkuaXNGdW5jdGlvbiggdmFsdWUgKSApIHtcblx0XHRcdHJhdyA9IHRydWU7XG5cdFx0fVxuXG5cdFx0aWYgKCBidWxrICkge1xuXHRcdFx0Ly8gQnVsayBvcGVyYXRpb25zIHJ1biBhZ2FpbnN0IHRoZSBlbnRpcmUgc2V0XG5cdFx0XHRpZiAoIHJhdyApIHtcblx0XHRcdFx0Zm4uY2FsbCggZWxlbXMsIHZhbHVlICk7XG5cdFx0XHRcdGZuID0gbnVsbDtcblxuXHRcdFx0Ly8gLi4uZXhjZXB0IHdoZW4gZXhlY3V0aW5nIGZ1bmN0aW9uIHZhbHVlc1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YnVsayA9IGZuO1xuXHRcdFx0XHRmbiA9IGZ1bmN0aW9uKCBlbGVtLCBrZXksIHZhbHVlICkge1xuXHRcdFx0XHRcdHJldHVybiBidWxrLmNhbGwoIGpRdWVyeSggZWxlbSApLCB2YWx1ZSApO1xuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICggZm4gKSB7XG5cdFx0XHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdFx0Zm4oIGVsZW1zW2ldLCBrZXksIHJhdyA/IHZhbHVlIDogdmFsdWUuY2FsbCggZWxlbXNbaV0sIGksIGZuKCBlbGVtc1tpXSwga2V5ICkgKSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBjaGFpbmFibGUgP1xuXHRcdGVsZW1zIDpcblxuXHRcdC8vIEdldHNcblx0XHRidWxrID9cblx0XHRcdGZuLmNhbGwoIGVsZW1zICkgOlxuXHRcdFx0bGVuID8gZm4oIGVsZW1zWzBdLCBrZXkgKSA6IGVtcHR5R2V0O1xufTtcblxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhbiBvYmplY3QgY2FuIGhhdmUgZGF0YVxuICovXG5qUXVlcnkuYWNjZXB0RGF0YSA9IGZ1bmN0aW9uKCBvd25lciApIHtcblx0Ly8gQWNjZXB0cyBvbmx5OlxuXHQvLyAgLSBOb2RlXG5cdC8vICAgIC0gTm9kZS5FTEVNRU5UX05PREVcblx0Ly8gICAgLSBOb2RlLkRPQ1VNRU5UX05PREVcblx0Ly8gIC0gT2JqZWN0XG5cdC8vICAgIC0gQW55XG5cdC8qIGpzaGludCAtVzAxOCAqL1xuXHRyZXR1cm4gb3duZXIubm9kZVR5cGUgPT09IDEgfHwgb3duZXIubm9kZVR5cGUgPT09IDkgfHwgISggK293bmVyLm5vZGVUeXBlICk7XG59O1xuXG5cbmZ1bmN0aW9uIERhdGEoKSB7XG5cdC8vIFN1cHBvcnQ6IEFuZHJvaWQ8NCxcblx0Ly8gT2xkIFdlYktpdCBkb2VzIG5vdCBoYXZlIE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucy9mcmVlemUgbWV0aG9kLFxuXHQvLyByZXR1cm4gbmV3IGVtcHR5IG9iamVjdCBpbnN0ZWFkIHdpdGggbm8gW1tzZXRdXSBhY2Nlc3NvclxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoIHRoaXMuY2FjaGUgPSB7fSwgMCwge1xuXHRcdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0XHRyZXR1cm4ge307XG5cdFx0fVxuXHR9KTtcblxuXHR0aGlzLmV4cGFuZG8gPSBqUXVlcnkuZXhwYW5kbyArIERhdGEudWlkKys7XG59XG5cbkRhdGEudWlkID0gMTtcbkRhdGEuYWNjZXB0cyA9IGpRdWVyeS5hY2NlcHREYXRhO1xuXG5EYXRhLnByb3RvdHlwZSA9IHtcblx0a2V5OiBmdW5jdGlvbiggb3duZXIgKSB7XG5cdFx0Ly8gV2UgY2FuIGFjY2VwdCBkYXRhIGZvciBub24tZWxlbWVudCBub2RlcyBpbiBtb2Rlcm4gYnJvd3NlcnMsXG5cdFx0Ly8gYnV0IHdlIHNob3VsZCBub3QsIHNlZSAjODMzNS5cblx0XHQvLyBBbHdheXMgcmV0dXJuIHRoZSBrZXkgZm9yIGEgZnJvemVuIG9iamVjdC5cblx0XHRpZiAoICFEYXRhLmFjY2VwdHMoIG93bmVyICkgKSB7XG5cdFx0XHRyZXR1cm4gMDtcblx0XHR9XG5cblx0XHR2YXIgZGVzY3JpcHRvciA9IHt9LFxuXHRcdFx0Ly8gQ2hlY2sgaWYgdGhlIG93bmVyIG9iamVjdCBhbHJlYWR5IGhhcyBhIGNhY2hlIGtleVxuXHRcdFx0dW5sb2NrID0gb3duZXJbIHRoaXMuZXhwYW5kbyBdO1xuXG5cdFx0Ly8gSWYgbm90LCBjcmVhdGUgb25lXG5cdFx0aWYgKCAhdW5sb2NrICkge1xuXHRcdFx0dW5sb2NrID0gRGF0YS51aWQrKztcblxuXHRcdFx0Ly8gU2VjdXJlIGl0IGluIGEgbm9uLWVudW1lcmFibGUsIG5vbi13cml0YWJsZSBwcm9wZXJ0eVxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0ZGVzY3JpcHRvclsgdGhpcy5leHBhbmRvIF0gPSB7IHZhbHVlOiB1bmxvY2sgfTtcblx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoIG93bmVyLCBkZXNjcmlwdG9yICk7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQ8NFxuXHRcdFx0Ly8gRmFsbGJhY2sgdG8gYSBsZXNzIHNlY3VyZSBkZWZpbml0aW9uXG5cdFx0XHR9IGNhdGNoICggZSApIHtcblx0XHRcdFx0ZGVzY3JpcHRvclsgdGhpcy5leHBhbmRvIF0gPSB1bmxvY2s7XG5cdFx0XHRcdGpRdWVyeS5leHRlbmQoIG93bmVyLCBkZXNjcmlwdG9yICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gRW5zdXJlIHRoZSBjYWNoZSBvYmplY3Rcblx0XHRpZiAoICF0aGlzLmNhY2hlWyB1bmxvY2sgXSApIHtcblx0XHRcdHRoaXMuY2FjaGVbIHVubG9jayBdID0ge307XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHVubG9jaztcblx0fSxcblx0c2V0OiBmdW5jdGlvbiggb3duZXIsIGRhdGEsIHZhbHVlICkge1xuXHRcdHZhciBwcm9wLFxuXHRcdFx0Ly8gVGhlcmUgbWF5IGJlIGFuIHVubG9jayBhc3NpZ25lZCB0byB0aGlzIG5vZGUsXG5cdFx0XHQvLyBpZiB0aGVyZSBpcyBubyBlbnRyeSBmb3IgdGhpcyBcIm93bmVyXCIsIGNyZWF0ZSBvbmUgaW5saW5lXG5cdFx0XHQvLyBhbmQgc2V0IHRoZSB1bmxvY2sgYXMgdGhvdWdoIGFuIG93bmVyIGVudHJ5IGhhZCBhbHdheXMgZXhpc3RlZFxuXHRcdFx0dW5sb2NrID0gdGhpcy5rZXkoIG93bmVyICksXG5cdFx0XHRjYWNoZSA9IHRoaXMuY2FjaGVbIHVubG9jayBdO1xuXG5cdFx0Ly8gSGFuZGxlOiBbIG93bmVyLCBrZXksIHZhbHVlIF0gYXJnc1xuXHRcdGlmICggdHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRjYWNoZVsgZGF0YSBdID0gdmFsdWU7XG5cblx0XHQvLyBIYW5kbGU6IFsgb3duZXIsIHsgcHJvcGVydGllcyB9IF0gYXJnc1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBGcmVzaCBhc3NpZ25tZW50cyBieSBvYmplY3QgYXJlIHNoYWxsb3cgY29waWVkXG5cdFx0XHRpZiAoIGpRdWVyeS5pc0VtcHR5T2JqZWN0KCBjYWNoZSApICkge1xuXHRcdFx0XHRqUXVlcnkuZXh0ZW5kKCB0aGlzLmNhY2hlWyB1bmxvY2sgXSwgZGF0YSApO1xuXHRcdFx0Ly8gT3RoZXJ3aXNlLCBjb3B5IHRoZSBwcm9wZXJ0aWVzIG9uZS1ieS1vbmUgdG8gdGhlIGNhY2hlIG9iamVjdFxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Zm9yICggcHJvcCBpbiBkYXRhICkge1xuXHRcdFx0XHRcdGNhY2hlWyBwcm9wIF0gPSBkYXRhWyBwcm9wIF07XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIGNhY2hlO1xuXHR9LFxuXHRnZXQ6IGZ1bmN0aW9uKCBvd25lciwga2V5ICkge1xuXHRcdC8vIEVpdGhlciBhIHZhbGlkIGNhY2hlIGlzIGZvdW5kLCBvciB3aWxsIGJlIGNyZWF0ZWQuXG5cdFx0Ly8gTmV3IGNhY2hlcyB3aWxsIGJlIGNyZWF0ZWQgYW5kIHRoZSB1bmxvY2sgcmV0dXJuZWQsXG5cdFx0Ly8gYWxsb3dpbmcgZGlyZWN0IGFjY2VzcyB0byB0aGUgbmV3bHkgY3JlYXRlZFxuXHRcdC8vIGVtcHR5IGRhdGEgb2JqZWN0LiBBIHZhbGlkIG93bmVyIG9iamVjdCBtdXN0IGJlIHByb3ZpZGVkLlxuXHRcdHZhciBjYWNoZSA9IHRoaXMuY2FjaGVbIHRoaXMua2V5KCBvd25lciApIF07XG5cblx0XHRyZXR1cm4ga2V5ID09PSB1bmRlZmluZWQgP1xuXHRcdFx0Y2FjaGUgOiBjYWNoZVsga2V5IF07XG5cdH0sXG5cdGFjY2VzczogZnVuY3Rpb24oIG93bmVyLCBrZXksIHZhbHVlICkge1xuXHRcdHZhciBzdG9yZWQ7XG5cdFx0Ly8gSW4gY2FzZXMgd2hlcmUgZWl0aGVyOlxuXHRcdC8vXG5cdFx0Ly8gICAxLiBObyBrZXkgd2FzIHNwZWNpZmllZFxuXHRcdC8vICAgMi4gQSBzdHJpbmcga2V5IHdhcyBzcGVjaWZpZWQsIGJ1dCBubyB2YWx1ZSBwcm92aWRlZFxuXHRcdC8vXG5cdFx0Ly8gVGFrZSB0aGUgXCJyZWFkXCIgcGF0aCBhbmQgYWxsb3cgdGhlIGdldCBtZXRob2QgdG8gZGV0ZXJtaW5lXG5cdFx0Ly8gd2hpY2ggdmFsdWUgdG8gcmV0dXJuLCByZXNwZWN0aXZlbHkgZWl0aGVyOlxuXHRcdC8vXG5cdFx0Ly8gICAxLiBUaGUgZW50aXJlIGNhY2hlIG9iamVjdFxuXHRcdC8vICAgMi4gVGhlIGRhdGEgc3RvcmVkIGF0IHRoZSBrZXlcblx0XHQvL1xuXHRcdGlmICgga2V5ID09PSB1bmRlZmluZWQgfHxcblx0XHRcdFx0KChrZXkgJiYgdHlwZW9mIGtleSA9PT0gXCJzdHJpbmdcIikgJiYgdmFsdWUgPT09IHVuZGVmaW5lZCkgKSB7XG5cblx0XHRcdHN0b3JlZCA9IHRoaXMuZ2V0KCBvd25lciwga2V5ICk7XG5cblx0XHRcdHJldHVybiBzdG9yZWQgIT09IHVuZGVmaW5lZCA/XG5cdFx0XHRcdHN0b3JlZCA6IHRoaXMuZ2V0KCBvd25lciwgalF1ZXJ5LmNhbWVsQ2FzZShrZXkpICk7XG5cdFx0fVxuXG5cdFx0Ly8gWypdV2hlbiB0aGUga2V5IGlzIG5vdCBhIHN0cmluZywgb3IgYm90aCBhIGtleSBhbmQgdmFsdWVcblx0XHQvLyBhcmUgc3BlY2lmaWVkLCBzZXQgb3IgZXh0ZW5kIChleGlzdGluZyBvYmplY3RzKSB3aXRoIGVpdGhlcjpcblx0XHQvL1xuXHRcdC8vICAgMS4gQW4gb2JqZWN0IG9mIHByb3BlcnRpZXNcblx0XHQvLyAgIDIuIEEga2V5IGFuZCB2YWx1ZVxuXHRcdC8vXG5cdFx0dGhpcy5zZXQoIG93bmVyLCBrZXksIHZhbHVlICk7XG5cblx0XHQvLyBTaW5jZSB0aGUgXCJzZXRcIiBwYXRoIGNhbiBoYXZlIHR3byBwb3NzaWJsZSBlbnRyeSBwb2ludHNcblx0XHQvLyByZXR1cm4gdGhlIGV4cGVjdGVkIGRhdGEgYmFzZWQgb24gd2hpY2ggcGF0aCB3YXMgdGFrZW5bKl1cblx0XHRyZXR1cm4gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDoga2V5O1xuXHR9LFxuXHRyZW1vdmU6IGZ1bmN0aW9uKCBvd25lciwga2V5ICkge1xuXHRcdHZhciBpLCBuYW1lLCBjYW1lbCxcblx0XHRcdHVubG9jayA9IHRoaXMua2V5KCBvd25lciApLFxuXHRcdFx0Y2FjaGUgPSB0aGlzLmNhY2hlWyB1bmxvY2sgXTtcblxuXHRcdGlmICgga2V5ID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHR0aGlzLmNhY2hlWyB1bmxvY2sgXSA9IHt9O1xuXG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIFN1cHBvcnQgYXJyYXkgb3Igc3BhY2Ugc2VwYXJhdGVkIHN0cmluZyBvZiBrZXlzXG5cdFx0XHRpZiAoIGpRdWVyeS5pc0FycmF5KCBrZXkgKSApIHtcblx0XHRcdFx0Ly8gSWYgXCJuYW1lXCIgaXMgYW4gYXJyYXkgb2Yga2V5cy4uLlxuXHRcdFx0XHQvLyBXaGVuIGRhdGEgaXMgaW5pdGlhbGx5IGNyZWF0ZWQsIHZpYSAoXCJrZXlcIiwgXCJ2YWxcIikgc2lnbmF0dXJlLFxuXHRcdFx0XHQvLyBrZXlzIHdpbGwgYmUgY29udmVydGVkIHRvIGNhbWVsQ2FzZS5cblx0XHRcdFx0Ly8gU2luY2UgdGhlcmUgaXMgbm8gd2F5IHRvIHRlbGwgX2hvd18gYSBrZXkgd2FzIGFkZGVkLCByZW1vdmVcblx0XHRcdFx0Ly8gYm90aCBwbGFpbiBrZXkgYW5kIGNhbWVsQ2FzZSBrZXkuICMxMjc4NlxuXHRcdFx0XHQvLyBUaGlzIHdpbGwgb25seSBwZW5hbGl6ZSB0aGUgYXJyYXkgYXJndW1lbnQgcGF0aC5cblx0XHRcdFx0bmFtZSA9IGtleS5jb25jYXQoIGtleS5tYXAoIGpRdWVyeS5jYW1lbENhc2UgKSApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y2FtZWwgPSBqUXVlcnkuY2FtZWxDYXNlKCBrZXkgKTtcblx0XHRcdFx0Ly8gVHJ5IHRoZSBzdHJpbmcgYXMgYSBrZXkgYmVmb3JlIGFueSBtYW5pcHVsYXRpb25cblx0XHRcdFx0aWYgKCBrZXkgaW4gY2FjaGUgKSB7XG5cdFx0XHRcdFx0bmFtZSA9IFsga2V5LCBjYW1lbCBdO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIElmIGEga2V5IHdpdGggdGhlIHNwYWNlcyBleGlzdHMsIHVzZSBpdC5cblx0XHRcdFx0XHQvLyBPdGhlcndpc2UsIGNyZWF0ZSBhbiBhcnJheSBieSBtYXRjaGluZyBub24td2hpdGVzcGFjZVxuXHRcdFx0XHRcdG5hbWUgPSBjYW1lbDtcblx0XHRcdFx0XHRuYW1lID0gbmFtZSBpbiBjYWNoZSA/XG5cdFx0XHRcdFx0XHRbIG5hbWUgXSA6ICggbmFtZS5tYXRjaCggcm5vdHdoaXRlICkgfHwgW10gKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpID0gbmFtZS5sZW5ndGg7XG5cdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0ZGVsZXRlIGNhY2hlWyBuYW1lWyBpIF0gXTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGhhc0RhdGE6IGZ1bmN0aW9uKCBvd25lciApIHtcblx0XHRyZXR1cm4gIWpRdWVyeS5pc0VtcHR5T2JqZWN0KFxuXHRcdFx0dGhpcy5jYWNoZVsgb3duZXJbIHRoaXMuZXhwYW5kbyBdIF0gfHwge31cblx0XHQpO1xuXHR9LFxuXHRkaXNjYXJkOiBmdW5jdGlvbiggb3duZXIgKSB7XG5cdFx0aWYgKCBvd25lclsgdGhpcy5leHBhbmRvIF0gKSB7XG5cdFx0XHRkZWxldGUgdGhpcy5jYWNoZVsgb3duZXJbIHRoaXMuZXhwYW5kbyBdIF07XG5cdFx0fVxuXHR9XG59O1xudmFyIGRhdGFfcHJpdiA9IG5ldyBEYXRhKCk7XG5cbnZhciBkYXRhX3VzZXIgPSBuZXcgRGF0YSgpO1xuXG5cblxuLy9cdEltcGxlbWVudGF0aW9uIFN1bW1hcnlcbi8vXG4vL1x0MS4gRW5mb3JjZSBBUEkgc3VyZmFjZSBhbmQgc2VtYW50aWMgY29tcGF0aWJpbGl0eSB3aXRoIDEuOS54IGJyYW5jaFxuLy9cdDIuIEltcHJvdmUgdGhlIG1vZHVsZSdzIG1haW50YWluYWJpbGl0eSBieSByZWR1Y2luZyB0aGUgc3RvcmFnZVxuLy9cdFx0cGF0aHMgdG8gYSBzaW5nbGUgbWVjaGFuaXNtLlxuLy9cdDMuIFVzZSB0aGUgc2FtZSBzaW5nbGUgbWVjaGFuaXNtIHRvIHN1cHBvcnQgXCJwcml2YXRlXCIgYW5kIFwidXNlclwiIGRhdGEuXG4vL1x0NC4gX05ldmVyXyBleHBvc2UgXCJwcml2YXRlXCIgZGF0YSB0byB1c2VyIGNvZGUgKFRPRE86IERyb3AgX2RhdGEsIF9yZW1vdmVEYXRhKVxuLy9cdDUuIEF2b2lkIGV4cG9zaW5nIGltcGxlbWVudGF0aW9uIGRldGFpbHMgb24gdXNlciBvYmplY3RzIChlZy4gZXhwYW5kbyBwcm9wZXJ0aWVzKVxuLy9cdDYuIFByb3ZpZGUgYSBjbGVhciBwYXRoIGZvciBpbXBsZW1lbnRhdGlvbiB1cGdyYWRlIHRvIFdlYWtNYXAgaW4gMjAxNFxuXG52YXIgcmJyYWNlID0gL14oPzpcXHtbXFx3XFxXXSpcXH18XFxbW1xcd1xcV10qXFxdKSQvLFxuXHRybXVsdGlEYXNoID0gLyhbQS1aXSkvZztcblxuZnVuY3Rpb24gZGF0YUF0dHIoIGVsZW0sIGtleSwgZGF0YSApIHtcblx0dmFyIG5hbWU7XG5cblx0Ly8gSWYgbm90aGluZyB3YXMgZm91bmQgaW50ZXJuYWxseSwgdHJ5IHRvIGZldGNoIGFueVxuXHQvLyBkYXRhIGZyb20gdGhlIEhUTUw1IGRhdGEtKiBhdHRyaWJ1dGVcblx0aWYgKCBkYXRhID09PSB1bmRlZmluZWQgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRuYW1lID0gXCJkYXRhLVwiICsga2V5LnJlcGxhY2UoIHJtdWx0aURhc2gsIFwiLSQxXCIgKS50b0xvd2VyQ2FzZSgpO1xuXHRcdGRhdGEgPSBlbGVtLmdldEF0dHJpYnV0ZSggbmFtZSApO1xuXG5cdFx0aWYgKCB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGRhdGEgPSBkYXRhID09PSBcInRydWVcIiA/IHRydWUgOlxuXHRcdFx0XHRcdGRhdGEgPT09IFwiZmFsc2VcIiA/IGZhbHNlIDpcblx0XHRcdFx0XHRkYXRhID09PSBcIm51bGxcIiA/IG51bGwgOlxuXHRcdFx0XHRcdC8vIE9ubHkgY29udmVydCB0byBhIG51bWJlciBpZiBpdCBkb2Vzbid0IGNoYW5nZSB0aGUgc3RyaW5nXG5cdFx0XHRcdFx0K2RhdGEgKyBcIlwiID09PSBkYXRhID8gK2RhdGEgOlxuXHRcdFx0XHRcdHJicmFjZS50ZXN0KCBkYXRhICkgPyBqUXVlcnkucGFyc2VKU09OKCBkYXRhICkgOlxuXHRcdFx0XHRcdGRhdGE7XG5cdFx0XHR9IGNhdGNoKCBlICkge31cblxuXHRcdFx0Ly8gTWFrZSBzdXJlIHdlIHNldCB0aGUgZGF0YSBzbyBpdCBpc24ndCBjaGFuZ2VkIGxhdGVyXG5cdFx0XHRkYXRhX3VzZXIuc2V0KCBlbGVtLCBrZXksIGRhdGEgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGF0YSA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGRhdGE7XG59XG5cbmpRdWVyeS5leHRlbmQoe1xuXHRoYXNEYXRhOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gZGF0YV91c2VyLmhhc0RhdGEoIGVsZW0gKSB8fCBkYXRhX3ByaXYuaGFzRGF0YSggZWxlbSApO1xuXHR9LFxuXG5cdGRhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBkYXRhICkge1xuXHRcdHJldHVybiBkYXRhX3VzZXIuYWNjZXNzKCBlbGVtLCBuYW1lLCBkYXRhICk7XG5cdH0sXG5cblx0cmVtb3ZlRGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUgKSB7XG5cdFx0ZGF0YV91c2VyLnJlbW92ZSggZWxlbSwgbmFtZSApO1xuXHR9LFxuXG5cdC8vIFRPRE86IE5vdyB0aGF0IGFsbCBjYWxscyB0byBfZGF0YSBhbmQgX3JlbW92ZURhdGEgaGF2ZSBiZWVuIHJlcGxhY2VkXG5cdC8vIHdpdGggZGlyZWN0IGNhbGxzIHRvIGRhdGFfcHJpdiBtZXRob2RzLCB0aGVzZSBjYW4gYmUgZGVwcmVjYXRlZC5cblx0X2RhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBkYXRhICkge1xuXHRcdHJldHVybiBkYXRhX3ByaXYuYWNjZXNzKCBlbGVtLCBuYW1lLCBkYXRhICk7XG5cdH0sXG5cblx0X3JlbW92ZURhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lICkge1xuXHRcdGRhdGFfcHJpdi5yZW1vdmUoIGVsZW0sIG5hbWUgKTtcblx0fVxufSk7XG5cbmpRdWVyeS5mbi5leHRlbmQoe1xuXHRkYXRhOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHtcblx0XHR2YXIgaSwgbmFtZSwgZGF0YSxcblx0XHRcdGVsZW0gPSB0aGlzWyAwIF0sXG5cdFx0XHRhdHRycyA9IGVsZW0gJiYgZWxlbS5hdHRyaWJ1dGVzO1xuXG5cdFx0Ly8gR2V0cyBhbGwgdmFsdWVzXG5cdFx0aWYgKCBrZXkgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdGlmICggdGhpcy5sZW5ndGggKSB7XG5cdFx0XHRcdGRhdGEgPSBkYXRhX3VzZXIuZ2V0KCBlbGVtICk7XG5cblx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICYmICFkYXRhX3ByaXYuZ2V0KCBlbGVtLCBcImhhc0RhdGFBdHRyc1wiICkgKSB7XG5cdFx0XHRcdFx0aSA9IGF0dHJzLmxlbmd0aDtcblx0XHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblxuXHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUxMStcblx0XHRcdFx0XHRcdC8vIFRoZSBhdHRycyBlbGVtZW50cyBjYW4gYmUgbnVsbCAoIzE0ODk0KVxuXHRcdFx0XHRcdFx0aWYgKCBhdHRyc1sgaSBdICkge1xuXHRcdFx0XHRcdFx0XHRuYW1lID0gYXR0cnNbIGkgXS5uYW1lO1xuXHRcdFx0XHRcdFx0XHRpZiAoIG5hbWUuaW5kZXhPZiggXCJkYXRhLVwiICkgPT09IDAgKSB7XG5cdFx0XHRcdFx0XHRcdFx0bmFtZSA9IGpRdWVyeS5jYW1lbENhc2UoIG5hbWUuc2xpY2UoNSkgKTtcblx0XHRcdFx0XHRcdFx0XHRkYXRhQXR0ciggZWxlbSwgbmFtZSwgZGF0YVsgbmFtZSBdICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZGF0YV9wcml2LnNldCggZWxlbSwgXCJoYXNEYXRhQXR0cnNcIiwgdHJ1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBkYXRhO1xuXHRcdH1cblxuXHRcdC8vIFNldHMgbXVsdGlwbGUgdmFsdWVzXG5cdFx0aWYgKCB0eXBlb2Yga2V5ID09PSBcIm9iamVjdFwiICkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcblx0XHRcdFx0ZGF0YV91c2VyLnNldCggdGhpcywga2V5ICk7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHR2YXIgZGF0YSxcblx0XHRcdFx0Y2FtZWxLZXkgPSBqUXVlcnkuY2FtZWxDYXNlKCBrZXkgKTtcblxuXHRcdFx0Ly8gVGhlIGNhbGxpbmcgalF1ZXJ5IG9iamVjdCAoZWxlbWVudCBtYXRjaGVzKSBpcyBub3QgZW1wdHlcblx0XHRcdC8vIChhbmQgdGhlcmVmb3JlIGhhcyBhbiBlbGVtZW50IGFwcGVhcnMgYXQgdGhpc1sgMCBdKSBhbmQgdGhlXG5cdFx0XHQvLyBgdmFsdWVgIHBhcmFtZXRlciB3YXMgbm90IHVuZGVmaW5lZC4gQW4gZW1wdHkgalF1ZXJ5IG9iamVjdFxuXHRcdFx0Ly8gd2lsbCByZXN1bHQgaW4gYHVuZGVmaW5lZGAgZm9yIGVsZW0gPSB0aGlzWyAwIF0gd2hpY2ggd2lsbFxuXHRcdFx0Ly8gdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGFuIGF0dGVtcHQgdG8gcmVhZCBhIGRhdGEgY2FjaGUgaXMgbWFkZS5cblx0XHRcdGlmICggZWxlbSAmJiB2YWx1ZSA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHQvLyBBdHRlbXB0IHRvIGdldCBkYXRhIGZyb20gdGhlIGNhY2hlXG5cdFx0XHRcdC8vIHdpdGggdGhlIGtleSBhcy1pc1xuXHRcdFx0XHRkYXRhID0gZGF0YV91c2VyLmdldCggZWxlbSwga2V5ICk7XG5cdFx0XHRcdGlmICggZGF0YSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdHJldHVybiBkYXRhO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gQXR0ZW1wdCB0byBnZXQgZGF0YSBmcm9tIHRoZSBjYWNoZVxuXHRcdFx0XHQvLyB3aXRoIHRoZSBrZXkgY2FtZWxpemVkXG5cdFx0XHRcdGRhdGEgPSBkYXRhX3VzZXIuZ2V0KCBlbGVtLCBjYW1lbEtleSApO1xuXHRcdFx0XHRpZiAoIGRhdGEgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRyZXR1cm4gZGF0YTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEF0dGVtcHQgdG8gXCJkaXNjb3ZlclwiIHRoZSBkYXRhIGluXG5cdFx0XHRcdC8vIEhUTUw1IGN1c3RvbSBkYXRhLSogYXR0cnNcblx0XHRcdFx0ZGF0YSA9IGRhdGFBdHRyKCBlbGVtLCBjYW1lbEtleSwgdW5kZWZpbmVkICk7XG5cdFx0XHRcdGlmICggZGF0YSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdHJldHVybiBkYXRhO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gV2UgdHJpZWQgcmVhbGx5IGhhcmQsIGJ1dCB0aGUgZGF0YSBkb2Vzbid0IGV4aXN0LlxuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNldCB0aGUgZGF0YS4uLlxuXHRcdFx0dGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xuXHRcdFx0XHQvLyBGaXJzdCwgYXR0ZW1wdCB0byBzdG9yZSBhIGNvcHkgb3IgcmVmZXJlbmNlIG9mIGFueVxuXHRcdFx0XHQvLyBkYXRhIHRoYXQgbWlnaHQndmUgYmVlbiBzdG9yZSB3aXRoIGEgY2FtZWxDYXNlZCBrZXkuXG5cdFx0XHRcdHZhciBkYXRhID0gZGF0YV91c2VyLmdldCggdGhpcywgY2FtZWxLZXkgKTtcblxuXHRcdFx0XHQvLyBGb3IgSFRNTDUgZGF0YS0qIGF0dHJpYnV0ZSBpbnRlcm9wLCB3ZSBoYXZlIHRvXG5cdFx0XHRcdC8vIHN0b3JlIHByb3BlcnR5IG5hbWVzIHdpdGggZGFzaGVzIGluIGEgY2FtZWxDYXNlIGZvcm0uXG5cdFx0XHRcdC8vIFRoaXMgbWlnaHQgbm90IGFwcGx5IHRvIGFsbCBwcm9wZXJ0aWVzLi4uKlxuXHRcdFx0XHRkYXRhX3VzZXIuc2V0KCB0aGlzLCBjYW1lbEtleSwgdmFsdWUgKTtcblxuXHRcdFx0XHQvLyAqLi4uIEluIHRoZSBjYXNlIG9mIHByb3BlcnRpZXMgdGhhdCBtaWdodCBfYWN0dWFsbHlfXG5cdFx0XHRcdC8vIGhhdmUgZGFzaGVzLCB3ZSBuZWVkIHRvIGFsc28gc3RvcmUgYSBjb3B5IG9mIHRoYXRcblx0XHRcdFx0Ly8gdW5jaGFuZ2VkIHByb3BlcnR5LlxuXHRcdFx0XHRpZiAoIGtleS5pbmRleE9mKFwiLVwiKSAhPT0gLTEgJiYgZGF0YSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdGRhdGFfdXNlci5zZXQoIHRoaXMsIGtleSwgdmFsdWUgKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fSwgbnVsbCwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxLCBudWxsLCB0cnVlICk7XG5cdH0sXG5cblx0cmVtb3ZlRGF0YTogZnVuY3Rpb24oIGtleSApIHtcblx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xuXHRcdFx0ZGF0YV91c2VyLnJlbW92ZSggdGhpcywga2V5ICk7XG5cdFx0fSk7XG5cdH1cbn0pO1xuXG5cbmpRdWVyeS5leHRlbmQoe1xuXHRxdWV1ZTogZnVuY3Rpb24oIGVsZW0sIHR5cGUsIGRhdGEgKSB7XG5cdFx0dmFyIHF1ZXVlO1xuXG5cdFx0aWYgKCBlbGVtICkge1xuXHRcdFx0dHlwZSA9ICggdHlwZSB8fCBcImZ4XCIgKSArIFwicXVldWVcIjtcblx0XHRcdHF1ZXVlID0gZGF0YV9wcml2LmdldCggZWxlbSwgdHlwZSApO1xuXG5cdFx0XHQvLyBTcGVlZCB1cCBkZXF1ZXVlIGJ5IGdldHRpbmcgb3V0IHF1aWNrbHkgaWYgdGhpcyBpcyBqdXN0IGEgbG9va3VwXG5cdFx0XHRpZiAoIGRhdGEgKSB7XG5cdFx0XHRcdGlmICggIXF1ZXVlIHx8IGpRdWVyeS5pc0FycmF5KCBkYXRhICkgKSB7XG5cdFx0XHRcdFx0cXVldWUgPSBkYXRhX3ByaXYuYWNjZXNzKCBlbGVtLCB0eXBlLCBqUXVlcnkubWFrZUFycmF5KGRhdGEpICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cXVldWUucHVzaCggZGF0YSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcXVldWUgfHwgW107XG5cdFx0fVxuXHR9LFxuXG5cdGRlcXVldWU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlICkge1xuXHRcdHR5cGUgPSB0eXBlIHx8IFwiZnhcIjtcblxuXHRcdHZhciBxdWV1ZSA9IGpRdWVyeS5xdWV1ZSggZWxlbSwgdHlwZSApLFxuXHRcdFx0c3RhcnRMZW5ndGggPSBxdWV1ZS5sZW5ndGgsXG5cdFx0XHRmbiA9IHF1ZXVlLnNoaWZ0KCksXG5cdFx0XHRob29rcyA9IGpRdWVyeS5fcXVldWVIb29rcyggZWxlbSwgdHlwZSApLFxuXHRcdFx0bmV4dCA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRqUXVlcnkuZGVxdWV1ZSggZWxlbSwgdHlwZSApO1xuXHRcdFx0fTtcblxuXHRcdC8vIElmIHRoZSBmeCBxdWV1ZSBpcyBkZXF1ZXVlZCwgYWx3YXlzIHJlbW92ZSB0aGUgcHJvZ3Jlc3Mgc2VudGluZWxcblx0XHRpZiAoIGZuID09PSBcImlucHJvZ3Jlc3NcIiApIHtcblx0XHRcdGZuID0gcXVldWUuc2hpZnQoKTtcblx0XHRcdHN0YXJ0TGVuZ3RoLS07XG5cdFx0fVxuXG5cdFx0aWYgKCBmbiApIHtcblxuXHRcdFx0Ly8gQWRkIGEgcHJvZ3Jlc3Mgc2VudGluZWwgdG8gcHJldmVudCB0aGUgZnggcXVldWUgZnJvbSBiZWluZ1xuXHRcdFx0Ly8gYXV0b21hdGljYWxseSBkZXF1ZXVlZFxuXHRcdFx0aWYgKCB0eXBlID09PSBcImZ4XCIgKSB7XG5cdFx0XHRcdHF1ZXVlLnVuc2hpZnQoIFwiaW5wcm9ncmVzc1wiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENsZWFyIHVwIHRoZSBsYXN0IHF1ZXVlIHN0b3AgZnVuY3Rpb25cblx0XHRcdGRlbGV0ZSBob29rcy5zdG9wO1xuXHRcdFx0Zm4uY2FsbCggZWxlbSwgbmV4dCwgaG9va3MgKTtcblx0XHR9XG5cblx0XHRpZiAoICFzdGFydExlbmd0aCAmJiBob29rcyApIHtcblx0XHRcdGhvb2tzLmVtcHR5LmZpcmUoKTtcblx0XHR9XG5cdH0sXG5cblx0Ly8gTm90IHB1YmxpYyAtIGdlbmVyYXRlIGEgcXVldWVIb29rcyBvYmplY3QsIG9yIHJldHVybiB0aGUgY3VycmVudCBvbmVcblx0X3F1ZXVlSG9va3M6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlICkge1xuXHRcdHZhciBrZXkgPSB0eXBlICsgXCJxdWV1ZUhvb2tzXCI7XG5cdFx0cmV0dXJuIGRhdGFfcHJpdi5nZXQoIGVsZW0sIGtleSApIHx8IGRhdGFfcHJpdi5hY2Nlc3MoIGVsZW0sIGtleSwge1xuXHRcdFx0ZW1wdHk6IGpRdWVyeS5DYWxsYmFja3MoXCJvbmNlIG1lbW9yeVwiKS5hZGQoZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGRhdGFfcHJpdi5yZW1vdmUoIGVsZW0sIFsgdHlwZSArIFwicXVldWVcIiwga2V5IF0gKTtcblx0XHRcdH0pXG5cdFx0fSk7XG5cdH1cbn0pO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKHtcblx0cXVldWU6IGZ1bmN0aW9uKCB0eXBlLCBkYXRhICkge1xuXHRcdHZhciBzZXR0ZXIgPSAyO1xuXG5cdFx0aWYgKCB0eXBlb2YgdHlwZSAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdGRhdGEgPSB0eXBlO1xuXHRcdFx0dHlwZSA9IFwiZnhcIjtcblx0XHRcdHNldHRlci0tO1xuXHRcdH1cblxuXHRcdGlmICggYXJndW1lbnRzLmxlbmd0aCA8IHNldHRlciApIHtcblx0XHRcdHJldHVybiBqUXVlcnkucXVldWUoIHRoaXNbMF0sIHR5cGUgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gZGF0YSA9PT0gdW5kZWZpbmVkID9cblx0XHRcdHRoaXMgOlxuXHRcdFx0dGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xuXHRcdFx0XHR2YXIgcXVldWUgPSBqUXVlcnkucXVldWUoIHRoaXMsIHR5cGUsIGRhdGEgKTtcblxuXHRcdFx0XHQvLyBFbnN1cmUgYSBob29rcyBmb3IgdGhpcyBxdWV1ZVxuXHRcdFx0XHRqUXVlcnkuX3F1ZXVlSG9va3MoIHRoaXMsIHR5cGUgKTtcblxuXHRcdFx0XHRpZiAoIHR5cGUgPT09IFwiZnhcIiAmJiBxdWV1ZVswXSAhPT0gXCJpbnByb2dyZXNzXCIgKSB7XG5cdFx0XHRcdFx0alF1ZXJ5LmRlcXVldWUoIHRoaXMsIHR5cGUgKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdH0sXG5cdGRlcXVldWU6IGZ1bmN0aW9uKCB0eXBlICkge1xuXHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkuZGVxdWV1ZSggdGhpcywgdHlwZSApO1xuXHRcdH0pO1xuXHR9LFxuXHRjbGVhclF1ZXVlOiBmdW5jdGlvbiggdHlwZSApIHtcblx0XHRyZXR1cm4gdGhpcy5xdWV1ZSggdHlwZSB8fCBcImZ4XCIsIFtdICk7XG5cdH0sXG5cdC8vIEdldCBhIHByb21pc2UgcmVzb2x2ZWQgd2hlbiBxdWV1ZXMgb2YgYSBjZXJ0YWluIHR5cGVcblx0Ly8gYXJlIGVtcHRpZWQgKGZ4IGlzIHRoZSB0eXBlIGJ5IGRlZmF1bHQpXG5cdHByb21pc2U6IGZ1bmN0aW9uKCB0eXBlLCBvYmogKSB7XG5cdFx0dmFyIHRtcCxcblx0XHRcdGNvdW50ID0gMSxcblx0XHRcdGRlZmVyID0galF1ZXJ5LkRlZmVycmVkKCksXG5cdFx0XHRlbGVtZW50cyA9IHRoaXMsXG5cdFx0XHRpID0gdGhpcy5sZW5ndGgsXG5cdFx0XHRyZXNvbHZlID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggISggLS1jb3VudCApICkge1xuXHRcdFx0XHRcdGRlZmVyLnJlc29sdmVXaXRoKCBlbGVtZW50cywgWyBlbGVtZW50cyBdICk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cblx0XHRpZiAoIHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0b2JqID0gdHlwZTtcblx0XHRcdHR5cGUgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdHR5cGUgPSB0eXBlIHx8IFwiZnhcIjtcblxuXHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0dG1wID0gZGF0YV9wcml2LmdldCggZWxlbWVudHNbIGkgXSwgdHlwZSArIFwicXVldWVIb29rc1wiICk7XG5cdFx0XHRpZiAoIHRtcCAmJiB0bXAuZW1wdHkgKSB7XG5cdFx0XHRcdGNvdW50Kys7XG5cdFx0XHRcdHRtcC5lbXB0eS5hZGQoIHJlc29sdmUgKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmVzb2x2ZSgpO1xuXHRcdHJldHVybiBkZWZlci5wcm9taXNlKCBvYmogKTtcblx0fVxufSk7XG52YXIgcG51bSA9ICgvWystXT8oPzpcXGQqXFwufClcXGQrKD86W2VFXVsrLV0/XFxkK3wpLykuc291cmNlO1xuXG52YXIgY3NzRXhwYW5kID0gWyBcIlRvcFwiLCBcIlJpZ2h0XCIsIFwiQm90dG9tXCIsIFwiTGVmdFwiIF07XG5cbnZhciBpc0hpZGRlbiA9IGZ1bmN0aW9uKCBlbGVtLCBlbCApIHtcblx0XHQvLyBpc0hpZGRlbiBtaWdodCBiZSBjYWxsZWQgZnJvbSBqUXVlcnkjZmlsdGVyIGZ1bmN0aW9uO1xuXHRcdC8vIGluIHRoYXQgY2FzZSwgZWxlbWVudCB3aWxsIGJlIHNlY29uZCBhcmd1bWVudFxuXHRcdGVsZW0gPSBlbCB8fCBlbGVtO1xuXHRcdHJldHVybiBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiApID09PSBcIm5vbmVcIiB8fCAhalF1ZXJ5LmNvbnRhaW5zKCBlbGVtLm93bmVyRG9jdW1lbnQsIGVsZW0gKTtcblx0fTtcblxudmFyIHJjaGVja2FibGVUeXBlID0gKC9eKD86Y2hlY2tib3h8cmFkaW8pJC9pKTtcblxuXG5cbihmdW5jdGlvbigpIHtcblx0dmFyIGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLFxuXHRcdGRpdiA9IGZyYWdtZW50LmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICkgKSxcblx0XHRpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiaW5wdXRcIiApO1xuXG5cdC8vIFN1cHBvcnQ6IFNhZmFyaTw9NS4xXG5cdC8vIENoZWNrIHN0YXRlIGxvc3QgaWYgdGhlIG5hbWUgaXMgc2V0ICgjMTEyMTcpXG5cdC8vIFN1cHBvcnQ6IFdpbmRvd3MgV2ViIEFwcHMgKFdXQSlcblx0Ly8gYG5hbWVgIGFuZCBgdHlwZWAgbXVzdCB1c2UgLnNldEF0dHJpYnV0ZSBmb3IgV1dBICgjMTQ5MDEpXG5cdGlucHV0LnNldEF0dHJpYnV0ZSggXCJ0eXBlXCIsIFwicmFkaW9cIiApO1xuXHRpbnB1dC5zZXRBdHRyaWJ1dGUoIFwiY2hlY2tlZFwiLCBcImNoZWNrZWRcIiApO1xuXHRpbnB1dC5zZXRBdHRyaWJ1dGUoIFwibmFtZVwiLCBcInRcIiApO1xuXG5cdGRpdi5hcHBlbmRDaGlsZCggaW5wdXQgKTtcblxuXHQvLyBTdXBwb3J0OiBTYWZhcmk8PTUuMSwgQW5kcm9pZDw0LjJcblx0Ly8gT2xkZXIgV2ViS2l0IGRvZXNuJ3QgY2xvbmUgY2hlY2tlZCBzdGF0ZSBjb3JyZWN0bHkgaW4gZnJhZ21lbnRzXG5cdHN1cHBvcnQuY2hlY2tDbG9uZSA9IGRpdi5jbG9uZU5vZGUoIHRydWUgKS5jbG9uZU5vZGUoIHRydWUgKS5sYXN0Q2hpbGQuY2hlY2tlZDtcblxuXHQvLyBTdXBwb3J0OiBJRTw9MTErXG5cdC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSAoYW5kIGNoZWNrYm94KSBkZWZhdWx0VmFsdWUgaXMgcHJvcGVybHkgY2xvbmVkXG5cdGRpdi5pbm5lckhUTUwgPSBcIjx0ZXh0YXJlYT54PC90ZXh0YXJlYT5cIjtcblx0c3VwcG9ydC5ub0Nsb25lQ2hlY2tlZCA9ICEhZGl2LmNsb25lTm9kZSggdHJ1ZSApLmxhc3RDaGlsZC5kZWZhdWx0VmFsdWU7XG59KSgpO1xudmFyIHN0cnVuZGVmaW5lZCA9IHR5cGVvZiB1bmRlZmluZWQ7XG5cblxuXG5zdXBwb3J0LmZvY3VzaW5CdWJibGVzID0gXCJvbmZvY3VzaW5cIiBpbiB3aW5kb3c7XG5cblxudmFyXG5cdHJrZXlFdmVudCA9IC9ea2V5Lyxcblx0cm1vdXNlRXZlbnQgPSAvXig/Om1vdXNlfHBvaW50ZXJ8Y29udGV4dG1lbnUpfGNsaWNrLyxcblx0cmZvY3VzTW9ycGggPSAvXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sXG5cdHJ0eXBlbmFtZXNwYWNlID0gL14oW14uXSopKD86XFwuKC4rKXwpJC87XG5cbmZ1bmN0aW9uIHJldHVyblRydWUoKSB7XG5cdHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiByZXR1cm5GYWxzZSgpIHtcblx0cmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBzYWZlQWN0aXZlRWxlbWVudCgpIHtcblx0dHJ5IHtcblx0XHRyZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblx0fSBjYXRjaCAoIGVyciApIHsgfVxufVxuXG4vKlxuICogSGVscGVyIGZ1bmN0aW9ucyBmb3IgbWFuYWdpbmcgZXZlbnRzIC0tIG5vdCBwYXJ0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLlxuICogUHJvcHMgdG8gRGVhbiBFZHdhcmRzJyBhZGRFdmVudCBsaWJyYXJ5IGZvciBtYW55IG9mIHRoZSBpZGVhcy5cbiAqL1xualF1ZXJ5LmV2ZW50ID0ge1xuXG5cdGdsb2JhbDoge30sXG5cblx0YWRkOiBmdW5jdGlvbiggZWxlbSwgdHlwZXMsIGhhbmRsZXIsIGRhdGEsIHNlbGVjdG9yICkge1xuXG5cdFx0dmFyIGhhbmRsZU9iakluLCBldmVudEhhbmRsZSwgdG1wLFxuXHRcdFx0ZXZlbnRzLCB0LCBoYW5kbGVPYmosXG5cdFx0XHRzcGVjaWFsLCBoYW5kbGVycywgdHlwZSwgbmFtZXNwYWNlcywgb3JpZ1R5cGUsXG5cdFx0XHRlbGVtRGF0YSA9IGRhdGFfcHJpdi5nZXQoIGVsZW0gKTtcblxuXHRcdC8vIERvbid0IGF0dGFjaCBldmVudHMgdG8gbm9EYXRhIG9yIHRleHQvY29tbWVudCBub2RlcyAoYnV0IGFsbG93IHBsYWluIG9iamVjdHMpXG5cdFx0aWYgKCAhZWxlbURhdGEgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gQ2FsbGVyIGNhbiBwYXNzIGluIGFuIG9iamVjdCBvZiBjdXN0b20gZGF0YSBpbiBsaWV1IG9mIHRoZSBoYW5kbGVyXG5cdFx0aWYgKCBoYW5kbGVyLmhhbmRsZXIgKSB7XG5cdFx0XHRoYW5kbGVPYmpJbiA9IGhhbmRsZXI7XG5cdFx0XHRoYW5kbGVyID0gaGFuZGxlT2JqSW4uaGFuZGxlcjtcblx0XHRcdHNlbGVjdG9yID0gaGFuZGxlT2JqSW4uc2VsZWN0b3I7XG5cdFx0fVxuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgdGhlIGhhbmRsZXIgaGFzIGEgdW5pcXVlIElELCB1c2VkIHRvIGZpbmQvcmVtb3ZlIGl0IGxhdGVyXG5cdFx0aWYgKCAhaGFuZGxlci5ndWlkICkge1xuXHRcdFx0aGFuZGxlci5ndWlkID0galF1ZXJ5Lmd1aWQrKztcblx0XHR9XG5cblx0XHQvLyBJbml0IHRoZSBlbGVtZW50J3MgZXZlbnQgc3RydWN0dXJlIGFuZCBtYWluIGhhbmRsZXIsIGlmIHRoaXMgaXMgdGhlIGZpcnN0XG5cdFx0aWYgKCAhKGV2ZW50cyA9IGVsZW1EYXRhLmV2ZW50cykgKSB7XG5cdFx0XHRldmVudHMgPSBlbGVtRGF0YS5ldmVudHMgPSB7fTtcblx0XHR9XG5cdFx0aWYgKCAhKGV2ZW50SGFuZGxlID0gZWxlbURhdGEuaGFuZGxlKSApIHtcblx0XHRcdGV2ZW50SGFuZGxlID0gZWxlbURhdGEuaGFuZGxlID0gZnVuY3Rpb24oIGUgKSB7XG5cdFx0XHRcdC8vIERpc2NhcmQgdGhlIHNlY29uZCBldmVudCBvZiBhIGpRdWVyeS5ldmVudC50cmlnZ2VyKCkgYW5kXG5cdFx0XHRcdC8vIHdoZW4gYW4gZXZlbnQgaXMgY2FsbGVkIGFmdGVyIGEgcGFnZSBoYXMgdW5sb2FkZWRcblx0XHRcdFx0cmV0dXJuIHR5cGVvZiBqUXVlcnkgIT09IHN0cnVuZGVmaW5lZCAmJiBqUXVlcnkuZXZlbnQudHJpZ2dlcmVkICE9PSBlLnR5cGUgP1xuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC5kaXNwYXRjaC5hcHBseSggZWxlbSwgYXJndW1lbnRzICkgOiB1bmRlZmluZWQ7XG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdC8vIEhhbmRsZSBtdWx0aXBsZSBldmVudHMgc2VwYXJhdGVkIGJ5IGEgc3BhY2Vcblx0XHR0eXBlcyA9ICggdHlwZXMgfHwgXCJcIiApLm1hdGNoKCBybm90d2hpdGUgKSB8fCBbIFwiXCIgXTtcblx0XHR0ID0gdHlwZXMubGVuZ3RoO1xuXHRcdHdoaWxlICggdC0tICkge1xuXHRcdFx0dG1wID0gcnR5cGVuYW1lc3BhY2UuZXhlYyggdHlwZXNbdF0gKSB8fCBbXTtcblx0XHRcdHR5cGUgPSBvcmlnVHlwZSA9IHRtcFsxXTtcblx0XHRcdG5hbWVzcGFjZXMgPSAoIHRtcFsyXSB8fCBcIlwiICkuc3BsaXQoIFwiLlwiICkuc29ydCgpO1xuXG5cdFx0XHQvLyBUaGVyZSAqbXVzdCogYmUgYSB0eXBlLCBubyBhdHRhY2hpbmcgbmFtZXNwYWNlLW9ubHkgaGFuZGxlcnNcblx0XHRcdGlmICggIXR5cGUgKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBJZiBldmVudCBjaGFuZ2VzIGl0cyB0eXBlLCB1c2UgdGhlIHNwZWNpYWwgZXZlbnQgaGFuZGxlcnMgZm9yIHRoZSBjaGFuZ2VkIHR5cGVcblx0XHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdIHx8IHt9O1xuXG5cdFx0XHQvLyBJZiBzZWxlY3RvciBkZWZpbmVkLCBkZXRlcm1pbmUgc3BlY2lhbCBldmVudCBhcGkgdHlwZSwgb3RoZXJ3aXNlIGdpdmVuIHR5cGVcblx0XHRcdHR5cGUgPSAoIHNlbGVjdG9yID8gc3BlY2lhbC5kZWxlZ2F0ZVR5cGUgOiBzcGVjaWFsLmJpbmRUeXBlICkgfHwgdHlwZTtcblxuXHRcdFx0Ly8gVXBkYXRlIHNwZWNpYWwgYmFzZWQgb24gbmV3bHkgcmVzZXQgdHlwZVxuXHRcdFx0c3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge307XG5cblx0XHRcdC8vIGhhbmRsZU9iaiBpcyBwYXNzZWQgdG8gYWxsIGV2ZW50IGhhbmRsZXJzXG5cdFx0XHRoYW5kbGVPYmogPSBqUXVlcnkuZXh0ZW5kKHtcblx0XHRcdFx0dHlwZTogdHlwZSxcblx0XHRcdFx0b3JpZ1R5cGU6IG9yaWdUeXBlLFxuXHRcdFx0XHRkYXRhOiBkYXRhLFxuXHRcdFx0XHRoYW5kbGVyOiBoYW5kbGVyLFxuXHRcdFx0XHRndWlkOiBoYW5kbGVyLmd1aWQsXG5cdFx0XHRcdHNlbGVjdG9yOiBzZWxlY3Rvcixcblx0XHRcdFx0bmVlZHNDb250ZXh0OiBzZWxlY3RvciAmJiBqUXVlcnkuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdCggc2VsZWN0b3IgKSxcblx0XHRcdFx0bmFtZXNwYWNlOiBuYW1lc3BhY2VzLmpvaW4oXCIuXCIpXG5cdFx0XHR9LCBoYW5kbGVPYmpJbiApO1xuXG5cdFx0XHQvLyBJbml0IHRoZSBldmVudCBoYW5kbGVyIHF1ZXVlIGlmIHdlJ3JlIHRoZSBmaXJzdFxuXHRcdFx0aWYgKCAhKGhhbmRsZXJzID0gZXZlbnRzWyB0eXBlIF0pICkge1xuXHRcdFx0XHRoYW5kbGVycyA9IGV2ZW50c1sgdHlwZSBdID0gW107XG5cdFx0XHRcdGhhbmRsZXJzLmRlbGVnYXRlQ291bnQgPSAwO1xuXG5cdFx0XHRcdC8vIE9ubHkgdXNlIGFkZEV2ZW50TGlzdGVuZXIgaWYgdGhlIHNwZWNpYWwgZXZlbnRzIGhhbmRsZXIgcmV0dXJucyBmYWxzZVxuXHRcdFx0XHRpZiAoICFzcGVjaWFsLnNldHVwIHx8IHNwZWNpYWwuc2V0dXAuY2FsbCggZWxlbSwgZGF0YSwgbmFtZXNwYWNlcywgZXZlbnRIYW5kbGUgKSA9PT0gZmFsc2UgKSB7XG5cdFx0XHRcdFx0aWYgKCBlbGVtLmFkZEV2ZW50TGlzdGVuZXIgKSB7XG5cdFx0XHRcdFx0XHRlbGVtLmFkZEV2ZW50TGlzdGVuZXIoIHR5cGUsIGV2ZW50SGFuZGxlLCBmYWxzZSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIHNwZWNpYWwuYWRkICkge1xuXHRcdFx0XHRzcGVjaWFsLmFkZC5jYWxsKCBlbGVtLCBoYW5kbGVPYmogKTtcblxuXHRcdFx0XHRpZiAoICFoYW5kbGVPYmouaGFuZGxlci5ndWlkICkge1xuXHRcdFx0XHRcdGhhbmRsZU9iai5oYW5kbGVyLmd1aWQgPSBoYW5kbGVyLmd1aWQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gQWRkIHRvIHRoZSBlbGVtZW50J3MgaGFuZGxlciBsaXN0LCBkZWxlZ2F0ZXMgaW4gZnJvbnRcblx0XHRcdGlmICggc2VsZWN0b3IgKSB7XG5cdFx0XHRcdGhhbmRsZXJzLnNwbGljZSggaGFuZGxlcnMuZGVsZWdhdGVDb3VudCsrLCAwLCBoYW5kbGVPYmogKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGhhbmRsZXJzLnB1c2goIGhhbmRsZU9iaiApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBLZWVwIHRyYWNrIG9mIHdoaWNoIGV2ZW50cyBoYXZlIGV2ZXIgYmVlbiB1c2VkLCBmb3IgZXZlbnQgb3B0aW1pemF0aW9uXG5cdFx0XHRqUXVlcnkuZXZlbnQuZ2xvYmFsWyB0eXBlIF0gPSB0cnVlO1xuXHRcdH1cblxuXHR9LFxuXG5cdC8vIERldGFjaCBhbiBldmVudCBvciBzZXQgb2YgZXZlbnRzIGZyb20gYW4gZWxlbWVudFxuXHRyZW1vdmU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlcywgaGFuZGxlciwgc2VsZWN0b3IsIG1hcHBlZFR5cGVzICkge1xuXG5cdFx0dmFyIGosIG9yaWdDb3VudCwgdG1wLFxuXHRcdFx0ZXZlbnRzLCB0LCBoYW5kbGVPYmosXG5cdFx0XHRzcGVjaWFsLCBoYW5kbGVycywgdHlwZSwgbmFtZXNwYWNlcywgb3JpZ1R5cGUsXG5cdFx0XHRlbGVtRGF0YSA9IGRhdGFfcHJpdi5oYXNEYXRhKCBlbGVtICkgJiYgZGF0YV9wcml2LmdldCggZWxlbSApO1xuXG5cdFx0aWYgKCAhZWxlbURhdGEgfHwgIShldmVudHMgPSBlbGVtRGF0YS5ldmVudHMpICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIE9uY2UgZm9yIGVhY2ggdHlwZS5uYW1lc3BhY2UgaW4gdHlwZXM7IHR5cGUgbWF5IGJlIG9taXR0ZWRcblx0XHR0eXBlcyA9ICggdHlwZXMgfHwgXCJcIiApLm1hdGNoKCBybm90d2hpdGUgKSB8fCBbIFwiXCIgXTtcblx0XHR0ID0gdHlwZXMubGVuZ3RoO1xuXHRcdHdoaWxlICggdC0tICkge1xuXHRcdFx0dG1wID0gcnR5cGVuYW1lc3BhY2UuZXhlYyggdHlwZXNbdF0gKSB8fCBbXTtcblx0XHRcdHR5cGUgPSBvcmlnVHlwZSA9IHRtcFsxXTtcblx0XHRcdG5hbWVzcGFjZXMgPSAoIHRtcFsyXSB8fCBcIlwiICkuc3BsaXQoIFwiLlwiICkuc29ydCgpO1xuXG5cdFx0XHQvLyBVbmJpbmQgYWxsIGV2ZW50cyAob24gdGhpcyBuYW1lc3BhY2UsIGlmIHByb3ZpZGVkKSBmb3IgdGhlIGVsZW1lbnRcblx0XHRcdGlmICggIXR5cGUgKSB7XG5cdFx0XHRcdGZvciAoIHR5cGUgaW4gZXZlbnRzICkge1xuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC5yZW1vdmUoIGVsZW0sIHR5cGUgKyB0eXBlc1sgdCBdLCBoYW5kbGVyLCBzZWxlY3RvciwgdHJ1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTtcblx0XHRcdHR5cGUgPSAoIHNlbGVjdG9yID8gc3BlY2lhbC5kZWxlZ2F0ZVR5cGUgOiBzcGVjaWFsLmJpbmRUeXBlICkgfHwgdHlwZTtcblx0XHRcdGhhbmRsZXJzID0gZXZlbnRzWyB0eXBlIF0gfHwgW107XG5cdFx0XHR0bXAgPSB0bXBbMl0gJiYgbmV3IFJlZ0V4cCggXCIoXnxcXFxcLilcIiArIG5hbWVzcGFjZXMuam9pbihcIlxcXFwuKD86LipcXFxcLnwpXCIpICsgXCIoXFxcXC58JClcIiApO1xuXG5cdFx0XHQvLyBSZW1vdmUgbWF0Y2hpbmcgZXZlbnRzXG5cdFx0XHRvcmlnQ291bnQgPSBqID0gaGFuZGxlcnMubGVuZ3RoO1xuXHRcdFx0d2hpbGUgKCBqLS0gKSB7XG5cdFx0XHRcdGhhbmRsZU9iaiA9IGhhbmRsZXJzWyBqIF07XG5cblx0XHRcdFx0aWYgKCAoIG1hcHBlZFR5cGVzIHx8IG9yaWdUeXBlID09PSBoYW5kbGVPYmoub3JpZ1R5cGUgKSAmJlxuXHRcdFx0XHRcdCggIWhhbmRsZXIgfHwgaGFuZGxlci5ndWlkID09PSBoYW5kbGVPYmouZ3VpZCApICYmXG5cdFx0XHRcdFx0KCAhdG1wIHx8IHRtcC50ZXN0KCBoYW5kbGVPYmoubmFtZXNwYWNlICkgKSAmJlxuXHRcdFx0XHRcdCggIXNlbGVjdG9yIHx8IHNlbGVjdG9yID09PSBoYW5kbGVPYmouc2VsZWN0b3IgfHwgc2VsZWN0b3IgPT09IFwiKipcIiAmJiBoYW5kbGVPYmouc2VsZWN0b3IgKSApIHtcblx0XHRcdFx0XHRoYW5kbGVycy5zcGxpY2UoIGosIDEgKTtcblxuXHRcdFx0XHRcdGlmICggaGFuZGxlT2JqLnNlbGVjdG9yICkge1xuXHRcdFx0XHRcdFx0aGFuZGxlcnMuZGVsZWdhdGVDb3VudC0tO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIHNwZWNpYWwucmVtb3ZlICkge1xuXHRcdFx0XHRcdFx0c3BlY2lhbC5yZW1vdmUuY2FsbCggZWxlbSwgaGFuZGxlT2JqICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIFJlbW92ZSBnZW5lcmljIGV2ZW50IGhhbmRsZXIgaWYgd2UgcmVtb3ZlZCBzb21ldGhpbmcgYW5kIG5vIG1vcmUgaGFuZGxlcnMgZXhpc3Rcblx0XHRcdC8vIChhdm9pZHMgcG90ZW50aWFsIGZvciBlbmRsZXNzIHJlY3Vyc2lvbiBkdXJpbmcgcmVtb3ZhbCBvZiBzcGVjaWFsIGV2ZW50IGhhbmRsZXJzKVxuXHRcdFx0aWYgKCBvcmlnQ291bnQgJiYgIWhhbmRsZXJzLmxlbmd0aCApIHtcblx0XHRcdFx0aWYgKCAhc3BlY2lhbC50ZWFyZG93biB8fCBzcGVjaWFsLnRlYXJkb3duLmNhbGwoIGVsZW0sIG5hbWVzcGFjZXMsIGVsZW1EYXRhLmhhbmRsZSApID09PSBmYWxzZSApIHtcblx0XHRcdFx0XHRqUXVlcnkucmVtb3ZlRXZlbnQoIGVsZW0sIHR5cGUsIGVsZW1EYXRhLmhhbmRsZSApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0ZGVsZXRlIGV2ZW50c1sgdHlwZSBdO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFJlbW92ZSB0aGUgZXhwYW5kbyBpZiBpdCdzIG5vIGxvbmdlciB1c2VkXG5cdFx0aWYgKCBqUXVlcnkuaXNFbXB0eU9iamVjdCggZXZlbnRzICkgKSB7XG5cdFx0XHRkZWxldGUgZWxlbURhdGEuaGFuZGxlO1xuXHRcdFx0ZGF0YV9wcml2LnJlbW92ZSggZWxlbSwgXCJldmVudHNcIiApO1xuXHRcdH1cblx0fSxcblxuXHR0cmlnZ2VyOiBmdW5jdGlvbiggZXZlbnQsIGRhdGEsIGVsZW0sIG9ubHlIYW5kbGVycyApIHtcblxuXHRcdHZhciBpLCBjdXIsIHRtcCwgYnViYmxlVHlwZSwgb250eXBlLCBoYW5kbGUsIHNwZWNpYWwsXG5cdFx0XHRldmVudFBhdGggPSBbIGVsZW0gfHwgZG9jdW1lbnQgXSxcblx0XHRcdHR5cGUgPSBoYXNPd24uY2FsbCggZXZlbnQsIFwidHlwZVwiICkgPyBldmVudC50eXBlIDogZXZlbnQsXG5cdFx0XHRuYW1lc3BhY2VzID0gaGFzT3duLmNhbGwoIGV2ZW50LCBcIm5hbWVzcGFjZVwiICkgPyBldmVudC5uYW1lc3BhY2Uuc3BsaXQoXCIuXCIpIDogW107XG5cblx0XHRjdXIgPSB0bXAgPSBlbGVtID0gZWxlbSB8fCBkb2N1bWVudDtcblxuXHRcdC8vIERvbid0IGRvIGV2ZW50cyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzXG5cdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAzIHx8IGVsZW0ubm9kZVR5cGUgPT09IDggKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gZm9jdXMvYmx1ciBtb3JwaHMgdG8gZm9jdXNpbi9vdXQ7IGVuc3VyZSB3ZSdyZSBub3QgZmlyaW5nIHRoZW0gcmlnaHQgbm93XG5cdFx0aWYgKCByZm9jdXNNb3JwaC50ZXN0KCB0eXBlICsgalF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCApICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICggdHlwZS5pbmRleE9mKFwiLlwiKSA+PSAwICkge1xuXHRcdFx0Ly8gTmFtZXNwYWNlZCB0cmlnZ2VyOyBjcmVhdGUgYSByZWdleHAgdG8gbWF0Y2ggZXZlbnQgdHlwZSBpbiBoYW5kbGUoKVxuXHRcdFx0bmFtZXNwYWNlcyA9IHR5cGUuc3BsaXQoXCIuXCIpO1xuXHRcdFx0dHlwZSA9IG5hbWVzcGFjZXMuc2hpZnQoKTtcblx0XHRcdG5hbWVzcGFjZXMuc29ydCgpO1xuXHRcdH1cblx0XHRvbnR5cGUgPSB0eXBlLmluZGV4T2YoXCI6XCIpIDwgMCAmJiBcIm9uXCIgKyB0eXBlO1xuXG5cdFx0Ly8gQ2FsbGVyIGNhbiBwYXNzIGluIGEgalF1ZXJ5LkV2ZW50IG9iamVjdCwgT2JqZWN0LCBvciBqdXN0IGFuIGV2ZW50IHR5cGUgc3RyaW5nXG5cdFx0ZXZlbnQgPSBldmVudFsgalF1ZXJ5LmV4cGFuZG8gXSA/XG5cdFx0XHRldmVudCA6XG5cdFx0XHRuZXcgalF1ZXJ5LkV2ZW50KCB0eXBlLCB0eXBlb2YgZXZlbnQgPT09IFwib2JqZWN0XCIgJiYgZXZlbnQgKTtcblxuXHRcdC8vIFRyaWdnZXIgYml0bWFzazogJiAxIGZvciBuYXRpdmUgaGFuZGxlcnM7ICYgMiBmb3IgalF1ZXJ5IChhbHdheXMgdHJ1ZSlcblx0XHRldmVudC5pc1RyaWdnZXIgPSBvbmx5SGFuZGxlcnMgPyAyIDogMztcblx0XHRldmVudC5uYW1lc3BhY2UgPSBuYW1lc3BhY2VzLmpvaW4oXCIuXCIpO1xuXHRcdGV2ZW50Lm5hbWVzcGFjZV9yZSA9IGV2ZW50Lm5hbWVzcGFjZSA/XG5cdFx0XHRuZXcgUmVnRXhwKCBcIihefFxcXFwuKVwiICsgbmFtZXNwYWNlcy5qb2luKFwiXFxcXC4oPzouKlxcXFwufClcIikgKyBcIihcXFxcLnwkKVwiICkgOlxuXHRcdFx0bnVsbDtcblxuXHRcdC8vIENsZWFuIHVwIHRoZSBldmVudCBpbiBjYXNlIGl0IGlzIGJlaW5nIHJldXNlZFxuXHRcdGV2ZW50LnJlc3VsdCA9IHVuZGVmaW5lZDtcblx0XHRpZiAoICFldmVudC50YXJnZXQgKSB7XG5cdFx0XHRldmVudC50YXJnZXQgPSBlbGVtO1xuXHRcdH1cblxuXHRcdC8vIENsb25lIGFueSBpbmNvbWluZyBkYXRhIGFuZCBwcmVwZW5kIHRoZSBldmVudCwgY3JlYXRpbmcgdGhlIGhhbmRsZXIgYXJnIGxpc3Rcblx0XHRkYXRhID0gZGF0YSA9PSBudWxsID9cblx0XHRcdFsgZXZlbnQgXSA6XG5cdFx0XHRqUXVlcnkubWFrZUFycmF5KCBkYXRhLCBbIGV2ZW50IF0gKTtcblxuXHRcdC8vIEFsbG93IHNwZWNpYWwgZXZlbnRzIHRvIGRyYXcgb3V0c2lkZSB0aGUgbGluZXNcblx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTtcblx0XHRpZiAoICFvbmx5SGFuZGxlcnMgJiYgc3BlY2lhbC50cmlnZ2VyICYmIHNwZWNpYWwudHJpZ2dlci5hcHBseSggZWxlbSwgZGF0YSApID09PSBmYWxzZSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBEZXRlcm1pbmUgZXZlbnQgcHJvcGFnYXRpb24gcGF0aCBpbiBhZHZhbmNlLCBwZXIgVzNDIGV2ZW50cyBzcGVjICgjOTk1MSlcblx0XHQvLyBCdWJibGUgdXAgdG8gZG9jdW1lbnQsIHRoZW4gdG8gd2luZG93OyB3YXRjaCBmb3IgYSBnbG9iYWwgb3duZXJEb2N1bWVudCB2YXIgKCM5NzI0KVxuXHRcdGlmICggIW9ubHlIYW5kbGVycyAmJiAhc3BlY2lhbC5ub0J1YmJsZSAmJiAhalF1ZXJ5LmlzV2luZG93KCBlbGVtICkgKSB7XG5cblx0XHRcdGJ1YmJsZVR5cGUgPSBzcGVjaWFsLmRlbGVnYXRlVHlwZSB8fCB0eXBlO1xuXHRcdFx0aWYgKCAhcmZvY3VzTW9ycGgudGVzdCggYnViYmxlVHlwZSArIHR5cGUgKSApIHtcblx0XHRcdFx0Y3VyID0gY3VyLnBhcmVudE5vZGU7XG5cdFx0XHR9XG5cdFx0XHRmb3IgKCA7IGN1cjsgY3VyID0gY3VyLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdGV2ZW50UGF0aC5wdXNoKCBjdXIgKTtcblx0XHRcdFx0dG1wID0gY3VyO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBPbmx5IGFkZCB3aW5kb3cgaWYgd2UgZ290IHRvIGRvY3VtZW50IChlLmcuLCBub3QgcGxhaW4gb2JqIG9yIGRldGFjaGVkIERPTSlcblx0XHRcdGlmICggdG1wID09PSAoZWxlbS5vd25lckRvY3VtZW50IHx8IGRvY3VtZW50KSApIHtcblx0XHRcdFx0ZXZlbnRQYXRoLnB1c2goIHRtcC5kZWZhdWx0VmlldyB8fCB0bXAucGFyZW50V2luZG93IHx8IHdpbmRvdyApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEZpcmUgaGFuZGxlcnMgb24gdGhlIGV2ZW50IHBhdGhcblx0XHRpID0gMDtcblx0XHR3aGlsZSAoIChjdXIgPSBldmVudFBhdGhbaSsrXSkgJiYgIWV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7XG5cblx0XHRcdGV2ZW50LnR5cGUgPSBpID4gMSA/XG5cdFx0XHRcdGJ1YmJsZVR5cGUgOlxuXHRcdFx0XHRzcGVjaWFsLmJpbmRUeXBlIHx8IHR5cGU7XG5cblx0XHRcdC8vIGpRdWVyeSBoYW5kbGVyXG5cdFx0XHRoYW5kbGUgPSAoIGRhdGFfcHJpdi5nZXQoIGN1ciwgXCJldmVudHNcIiApIHx8IHt9IClbIGV2ZW50LnR5cGUgXSAmJiBkYXRhX3ByaXYuZ2V0KCBjdXIsIFwiaGFuZGxlXCIgKTtcblx0XHRcdGlmICggaGFuZGxlICkge1xuXHRcdFx0XHRoYW5kbGUuYXBwbHkoIGN1ciwgZGF0YSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBOYXRpdmUgaGFuZGxlclxuXHRcdFx0aGFuZGxlID0gb250eXBlICYmIGN1clsgb250eXBlIF07XG5cdFx0XHRpZiAoIGhhbmRsZSAmJiBoYW5kbGUuYXBwbHkgJiYgalF1ZXJ5LmFjY2VwdERhdGEoIGN1ciApICkge1xuXHRcdFx0XHRldmVudC5yZXN1bHQgPSBoYW5kbGUuYXBwbHkoIGN1ciwgZGF0YSApO1xuXHRcdFx0XHRpZiAoIGV2ZW50LnJlc3VsdCA9PT0gZmFsc2UgKSB7XG5cdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRldmVudC50eXBlID0gdHlwZTtcblxuXHRcdC8vIElmIG5vYm9keSBwcmV2ZW50ZWQgdGhlIGRlZmF1bHQgYWN0aW9uLCBkbyBpdCBub3dcblx0XHRpZiAoICFvbmx5SGFuZGxlcnMgJiYgIWV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpICkge1xuXG5cdFx0XHRpZiAoICghc3BlY2lhbC5fZGVmYXVsdCB8fCBzcGVjaWFsLl9kZWZhdWx0LmFwcGx5KCBldmVudFBhdGgucG9wKCksIGRhdGEgKSA9PT0gZmFsc2UpICYmXG5cdFx0XHRcdGpRdWVyeS5hY2NlcHREYXRhKCBlbGVtICkgKSB7XG5cblx0XHRcdFx0Ly8gQ2FsbCBhIG5hdGl2ZSBET00gbWV0aG9kIG9uIHRoZSB0YXJnZXQgd2l0aCB0aGUgc2FtZSBuYW1lIG5hbWUgYXMgdGhlIGV2ZW50LlxuXHRcdFx0XHQvLyBEb24ndCBkbyBkZWZhdWx0IGFjdGlvbnMgb24gd2luZG93LCB0aGF0J3Mgd2hlcmUgZ2xvYmFsIHZhcmlhYmxlcyBiZSAoIzYxNzApXG5cdFx0XHRcdGlmICggb250eXBlICYmIGpRdWVyeS5pc0Z1bmN0aW9uKCBlbGVtWyB0eXBlIF0gKSAmJiAhalF1ZXJ5LmlzV2luZG93KCBlbGVtICkgKSB7XG5cblx0XHRcdFx0XHQvLyBEb24ndCByZS10cmlnZ2VyIGFuIG9uRk9PIGV2ZW50IHdoZW4gd2UgY2FsbCBpdHMgRk9PKCkgbWV0aG9kXG5cdFx0XHRcdFx0dG1wID0gZWxlbVsgb250eXBlIF07XG5cblx0XHRcdFx0XHRpZiAoIHRtcCApIHtcblx0XHRcdFx0XHRcdGVsZW1bIG9udHlwZSBdID0gbnVsbDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBQcmV2ZW50IHJlLXRyaWdnZXJpbmcgb2YgdGhlIHNhbWUgZXZlbnQsIHNpbmNlIHdlIGFscmVhZHkgYnViYmxlZCBpdCBhYm92ZVxuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC50cmlnZ2VyZWQgPSB0eXBlO1xuXHRcdFx0XHRcdGVsZW1bIHR5cGUgXSgpO1xuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC50cmlnZ2VyZWQgPSB1bmRlZmluZWQ7XG5cblx0XHRcdFx0XHRpZiAoIHRtcCApIHtcblx0XHRcdFx0XHRcdGVsZW1bIG9udHlwZSBdID0gdG1wO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBldmVudC5yZXN1bHQ7XG5cdH0sXG5cblx0ZGlzcGF0Y2g6IGZ1bmN0aW9uKCBldmVudCApIHtcblxuXHRcdC8vIE1ha2UgYSB3cml0YWJsZSBqUXVlcnkuRXZlbnQgZnJvbSB0aGUgbmF0aXZlIGV2ZW50IG9iamVjdFxuXHRcdGV2ZW50ID0galF1ZXJ5LmV2ZW50LmZpeCggZXZlbnQgKTtcblxuXHRcdHZhciBpLCBqLCByZXQsIG1hdGNoZWQsIGhhbmRsZU9iaixcblx0XHRcdGhhbmRsZXJRdWV1ZSA9IFtdLFxuXHRcdFx0YXJncyA9IHNsaWNlLmNhbGwoIGFyZ3VtZW50cyApLFxuXHRcdFx0aGFuZGxlcnMgPSAoIGRhdGFfcHJpdi5nZXQoIHRoaXMsIFwiZXZlbnRzXCIgKSB8fCB7fSApWyBldmVudC50eXBlIF0gfHwgW10sXG5cdFx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIGV2ZW50LnR5cGUgXSB8fCB7fTtcblxuXHRcdC8vIFVzZSB0aGUgZml4LWVkIGpRdWVyeS5FdmVudCByYXRoZXIgdGhhbiB0aGUgKHJlYWQtb25seSkgbmF0aXZlIGV2ZW50XG5cdFx0YXJnc1swXSA9IGV2ZW50O1xuXHRcdGV2ZW50LmRlbGVnYXRlVGFyZ2V0ID0gdGhpcztcblxuXHRcdC8vIENhbGwgdGhlIHByZURpc3BhdGNoIGhvb2sgZm9yIHRoZSBtYXBwZWQgdHlwZSwgYW5kIGxldCBpdCBiYWlsIGlmIGRlc2lyZWRcblx0XHRpZiAoIHNwZWNpYWwucHJlRGlzcGF0Y2ggJiYgc3BlY2lhbC5wcmVEaXNwYXRjaC5jYWxsKCB0aGlzLCBldmVudCApID09PSBmYWxzZSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBEZXRlcm1pbmUgaGFuZGxlcnNcblx0XHRoYW5kbGVyUXVldWUgPSBqUXVlcnkuZXZlbnQuaGFuZGxlcnMuY2FsbCggdGhpcywgZXZlbnQsIGhhbmRsZXJzICk7XG5cblx0XHQvLyBSdW4gZGVsZWdhdGVzIGZpcnN0OyB0aGV5IG1heSB3YW50IHRvIHN0b3AgcHJvcGFnYXRpb24gYmVuZWF0aCB1c1xuXHRcdGkgPSAwO1xuXHRcdHdoaWxlICggKG1hdGNoZWQgPSBoYW5kbGVyUXVldWVbIGkrKyBdKSAmJiAhZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSApIHtcblx0XHRcdGV2ZW50LmN1cnJlbnRUYXJnZXQgPSBtYXRjaGVkLmVsZW07XG5cblx0XHRcdGogPSAwO1xuXHRcdFx0d2hpbGUgKCAoaGFuZGxlT2JqID0gbWF0Y2hlZC5oYW5kbGVyc1sgaisrIF0pICYmICFldmVudC5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpICkge1xuXG5cdFx0XHRcdC8vIFRyaWdnZXJlZCBldmVudCBtdXN0IGVpdGhlciAxKSBoYXZlIG5vIG5hbWVzcGFjZSwgb3IgMikgaGF2ZSBuYW1lc3BhY2Uocylcblx0XHRcdFx0Ly8gYSBzdWJzZXQgb3IgZXF1YWwgdG8gdGhvc2UgaW4gdGhlIGJvdW5kIGV2ZW50IChib3RoIGNhbiBoYXZlIG5vIG5hbWVzcGFjZSkuXG5cdFx0XHRcdGlmICggIWV2ZW50Lm5hbWVzcGFjZV9yZSB8fCBldmVudC5uYW1lc3BhY2VfcmUudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApICkge1xuXG5cdFx0XHRcdFx0ZXZlbnQuaGFuZGxlT2JqID0gaGFuZGxlT2JqO1xuXHRcdFx0XHRcdGV2ZW50LmRhdGEgPSBoYW5kbGVPYmouZGF0YTtcblxuXHRcdFx0XHRcdHJldCA9ICggKGpRdWVyeS5ldmVudC5zcGVjaWFsWyBoYW5kbGVPYmoub3JpZ1R5cGUgXSB8fCB7fSkuaGFuZGxlIHx8IGhhbmRsZU9iai5oYW5kbGVyIClcblx0XHRcdFx0XHRcdFx0LmFwcGx5KCBtYXRjaGVkLmVsZW0sIGFyZ3MgKTtcblxuXHRcdFx0XHRcdGlmICggcmV0ICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdFx0XHRpZiAoIChldmVudC5yZXN1bHQgPSByZXQpID09PSBmYWxzZSApIHtcblx0XHRcdFx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdFx0XHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQ2FsbCB0aGUgcG9zdERpc3BhdGNoIGhvb2sgZm9yIHRoZSBtYXBwZWQgdHlwZVxuXHRcdGlmICggc3BlY2lhbC5wb3N0RGlzcGF0Y2ggKSB7XG5cdFx0XHRzcGVjaWFsLnBvc3REaXNwYXRjaC5jYWxsKCB0aGlzLCBldmVudCApO1xuXHRcdH1cblxuXHRcdHJldHVybiBldmVudC5yZXN1bHQ7XG5cdH0sXG5cblx0aGFuZGxlcnM6IGZ1bmN0aW9uKCBldmVudCwgaGFuZGxlcnMgKSB7XG5cdFx0dmFyIGksIG1hdGNoZXMsIHNlbCwgaGFuZGxlT2JqLFxuXHRcdFx0aGFuZGxlclF1ZXVlID0gW10sXG5cdFx0XHRkZWxlZ2F0ZUNvdW50ID0gaGFuZGxlcnMuZGVsZWdhdGVDb3VudCxcblx0XHRcdGN1ciA9IGV2ZW50LnRhcmdldDtcblxuXHRcdC8vIEZpbmQgZGVsZWdhdGUgaGFuZGxlcnNcblx0XHQvLyBCbGFjay1ob2xlIFNWRyA8dXNlPiBpbnN0YW5jZSB0cmVlcyAoIzEzMTgwKVxuXHRcdC8vIEF2b2lkIG5vbi1sZWZ0LWNsaWNrIGJ1YmJsaW5nIGluIEZpcmVmb3ggKCMzODYxKVxuXHRcdGlmICggZGVsZWdhdGVDb3VudCAmJiBjdXIubm9kZVR5cGUgJiYgKCFldmVudC5idXR0b24gfHwgZXZlbnQudHlwZSAhPT0gXCJjbGlja1wiKSApIHtcblxuXHRcdFx0Zm9yICggOyBjdXIgIT09IHRoaXM7IGN1ciA9IGN1ci5wYXJlbnROb2RlIHx8IHRoaXMgKSB7XG5cblx0XHRcdFx0Ly8gRG9uJ3QgcHJvY2VzcyBjbGlja3Mgb24gZGlzYWJsZWQgZWxlbWVudHMgKCM2OTExLCAjODE2NSwgIzExMzgyLCAjMTE3NjQpXG5cdFx0XHRcdGlmICggY3VyLmRpc2FibGVkICE9PSB0cnVlIHx8IGV2ZW50LnR5cGUgIT09IFwiY2xpY2tcIiApIHtcblx0XHRcdFx0XHRtYXRjaGVzID0gW107XG5cdFx0XHRcdFx0Zm9yICggaSA9IDA7IGkgPCBkZWxlZ2F0ZUNvdW50OyBpKysgKSB7XG5cdFx0XHRcdFx0XHRoYW5kbGVPYmogPSBoYW5kbGVyc1sgaSBdO1xuXG5cdFx0XHRcdFx0XHQvLyBEb24ndCBjb25mbGljdCB3aXRoIE9iamVjdC5wcm90b3R5cGUgcHJvcGVydGllcyAoIzEzMjAzKVxuXHRcdFx0XHRcdFx0c2VsID0gaGFuZGxlT2JqLnNlbGVjdG9yICsgXCIgXCI7XG5cblx0XHRcdFx0XHRcdGlmICggbWF0Y2hlc1sgc2VsIF0gPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRcdFx0bWF0Y2hlc1sgc2VsIF0gPSBoYW5kbGVPYmoubmVlZHNDb250ZXh0ID9cblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkoIHNlbCwgdGhpcyApLmluZGV4KCBjdXIgKSA+PSAwIDpcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkuZmluZCggc2VsLCB0aGlzLCBudWxsLCBbIGN1ciBdICkubGVuZ3RoO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0aWYgKCBtYXRjaGVzWyBzZWwgXSApIHtcblx0XHRcdFx0XHRcdFx0bWF0Y2hlcy5wdXNoKCBoYW5kbGVPYmogKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKCBtYXRjaGVzLmxlbmd0aCApIHtcblx0XHRcdFx0XHRcdGhhbmRsZXJRdWV1ZS5wdXNoKHsgZWxlbTogY3VyLCBoYW5kbGVyczogbWF0Y2hlcyB9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBBZGQgdGhlIHJlbWFpbmluZyAoZGlyZWN0bHktYm91bmQpIGhhbmRsZXJzXG5cdFx0aWYgKCBkZWxlZ2F0ZUNvdW50IDwgaGFuZGxlcnMubGVuZ3RoICkge1xuXHRcdFx0aGFuZGxlclF1ZXVlLnB1c2goeyBlbGVtOiB0aGlzLCBoYW5kbGVyczogaGFuZGxlcnMuc2xpY2UoIGRlbGVnYXRlQ291bnQgKSB9KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gaGFuZGxlclF1ZXVlO1xuXHR9LFxuXG5cdC8vIEluY2x1ZGVzIHNvbWUgZXZlbnQgcHJvcHMgc2hhcmVkIGJ5IEtleUV2ZW50IGFuZCBNb3VzZUV2ZW50XG5cdHByb3BzOiBcImFsdEtleSBidWJibGVzIGNhbmNlbGFibGUgY3RybEtleSBjdXJyZW50VGFyZ2V0IGV2ZW50UGhhc2UgbWV0YUtleSByZWxhdGVkVGFyZ2V0IHNoaWZ0S2V5IHRhcmdldCB0aW1lU3RhbXAgdmlldyB3aGljaFwiLnNwbGl0KFwiIFwiKSxcblxuXHRmaXhIb29rczoge30sXG5cblx0a2V5SG9va3M6IHtcblx0XHRwcm9wczogXCJjaGFyIGNoYXJDb2RlIGtleSBrZXlDb2RlXCIuc3BsaXQoXCIgXCIpLFxuXHRcdGZpbHRlcjogZnVuY3Rpb24oIGV2ZW50LCBvcmlnaW5hbCApIHtcblxuXHRcdFx0Ly8gQWRkIHdoaWNoIGZvciBrZXkgZXZlbnRzXG5cdFx0XHRpZiAoIGV2ZW50LndoaWNoID09IG51bGwgKSB7XG5cdFx0XHRcdGV2ZW50LndoaWNoID0gb3JpZ2luYWwuY2hhckNvZGUgIT0gbnVsbCA/IG9yaWdpbmFsLmNoYXJDb2RlIDogb3JpZ2luYWwua2V5Q29kZTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGV2ZW50O1xuXHRcdH1cblx0fSxcblxuXHRtb3VzZUhvb2tzOiB7XG5cdFx0cHJvcHM6IFwiYnV0dG9uIGJ1dHRvbnMgY2xpZW50WCBjbGllbnRZIG9mZnNldFggb2Zmc2V0WSBwYWdlWCBwYWdlWSBzY3JlZW5YIHNjcmVlblkgdG9FbGVtZW50XCIuc3BsaXQoXCIgXCIpLFxuXHRcdGZpbHRlcjogZnVuY3Rpb24oIGV2ZW50LCBvcmlnaW5hbCApIHtcblx0XHRcdHZhciBldmVudERvYywgZG9jLCBib2R5LFxuXHRcdFx0XHRidXR0b24gPSBvcmlnaW5hbC5idXR0b247XG5cblx0XHRcdC8vIENhbGN1bGF0ZSBwYWdlWC9ZIGlmIG1pc3NpbmcgYW5kIGNsaWVudFgvWSBhdmFpbGFibGVcblx0XHRcdGlmICggZXZlbnQucGFnZVggPT0gbnVsbCAmJiBvcmlnaW5hbC5jbGllbnRYICE9IG51bGwgKSB7XG5cdFx0XHRcdGV2ZW50RG9jID0gZXZlbnQudGFyZ2V0Lm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQ7XG5cdFx0XHRcdGRvYyA9IGV2ZW50RG9jLmRvY3VtZW50RWxlbWVudDtcblx0XHRcdFx0Ym9keSA9IGV2ZW50RG9jLmJvZHk7XG5cblx0XHRcdFx0ZXZlbnQucGFnZVggPSBvcmlnaW5hbC5jbGllbnRYICsgKCBkb2MgJiYgZG9jLnNjcm9sbExlZnQgfHwgYm9keSAmJiBib2R5LnNjcm9sbExlZnQgfHwgMCApIC0gKCBkb2MgJiYgZG9jLmNsaWVudExlZnQgfHwgYm9keSAmJiBib2R5LmNsaWVudExlZnQgfHwgMCApO1xuXHRcdFx0XHRldmVudC5wYWdlWSA9IG9yaWdpbmFsLmNsaWVudFkgKyAoIGRvYyAmJiBkb2Muc2Nyb2xsVG9wICB8fCBib2R5ICYmIGJvZHkuc2Nyb2xsVG9wICB8fCAwICkgLSAoIGRvYyAmJiBkb2MuY2xpZW50VG9wICB8fCBib2R5ICYmIGJvZHkuY2xpZW50VG9wICB8fCAwICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEFkZCB3aGljaCBmb3IgY2xpY2s6IDEgPT09IGxlZnQ7IDIgPT09IG1pZGRsZTsgMyA9PT0gcmlnaHRcblx0XHRcdC8vIE5vdGU6IGJ1dHRvbiBpcyBub3Qgbm9ybWFsaXplZCwgc28gZG9uJ3QgdXNlIGl0XG5cdFx0XHRpZiAoICFldmVudC53aGljaCAmJiBidXR0b24gIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0ZXZlbnQud2hpY2ggPSAoIGJ1dHRvbiAmIDEgPyAxIDogKCBidXR0b24gJiAyID8gMyA6ICggYnV0dG9uICYgNCA/IDIgOiAwICkgKSApO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZXZlbnQ7XG5cdFx0fVxuXHR9LFxuXG5cdGZpeDogZnVuY3Rpb24oIGV2ZW50ICkge1xuXHRcdGlmICggZXZlbnRbIGpRdWVyeS5leHBhbmRvIF0gKSB7XG5cdFx0XHRyZXR1cm4gZXZlbnQ7XG5cdFx0fVxuXG5cdFx0Ly8gQ3JlYXRlIGEgd3JpdGFibGUgY29weSBvZiB0aGUgZXZlbnQgb2JqZWN0IGFuZCBub3JtYWxpemUgc29tZSBwcm9wZXJ0aWVzXG5cdFx0dmFyIGksIHByb3AsIGNvcHksXG5cdFx0XHR0eXBlID0gZXZlbnQudHlwZSxcblx0XHRcdG9yaWdpbmFsRXZlbnQgPSBldmVudCxcblx0XHRcdGZpeEhvb2sgPSB0aGlzLmZpeEhvb2tzWyB0eXBlIF07XG5cblx0XHRpZiAoICFmaXhIb29rICkge1xuXHRcdFx0dGhpcy5maXhIb29rc1sgdHlwZSBdID0gZml4SG9vayA9XG5cdFx0XHRcdHJtb3VzZUV2ZW50LnRlc3QoIHR5cGUgKSA/IHRoaXMubW91c2VIb29rcyA6XG5cdFx0XHRcdHJrZXlFdmVudC50ZXN0KCB0eXBlICkgPyB0aGlzLmtleUhvb2tzIDpcblx0XHRcdFx0e307XG5cdFx0fVxuXHRcdGNvcHkgPSBmaXhIb29rLnByb3BzID8gdGhpcy5wcm9wcy5jb25jYXQoIGZpeEhvb2sucHJvcHMgKSA6IHRoaXMucHJvcHM7XG5cblx0XHRldmVudCA9IG5ldyBqUXVlcnkuRXZlbnQoIG9yaWdpbmFsRXZlbnQgKTtcblxuXHRcdGkgPSBjb3B5Lmxlbmd0aDtcblx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdHByb3AgPSBjb3B5WyBpIF07XG5cdFx0XHRldmVudFsgcHJvcCBdID0gb3JpZ2luYWxFdmVudFsgcHJvcCBdO1xuXHRcdH1cblxuXHRcdC8vIFN1cHBvcnQ6IENvcmRvdmEgMi41IChXZWJLaXQpICgjMTMyNTUpXG5cdFx0Ly8gQWxsIGV2ZW50cyBzaG91bGQgaGF2ZSBhIHRhcmdldDsgQ29yZG92YSBkZXZpY2VyZWFkeSBkb2Vzbid0XG5cdFx0aWYgKCAhZXZlbnQudGFyZ2V0ICkge1xuXHRcdFx0ZXZlbnQudGFyZ2V0ID0gZG9jdW1lbnQ7XG5cdFx0fVxuXG5cdFx0Ly8gU3VwcG9ydDogU2FmYXJpIDYuMCssIENocm9tZTwyOFxuXHRcdC8vIFRhcmdldCBzaG91bGQgbm90IGJlIGEgdGV4dCBub2RlICgjNTA0LCAjMTMxNDMpXG5cdFx0aWYgKCBldmVudC50YXJnZXQubm9kZVR5cGUgPT09IDMgKSB7XG5cdFx0XHRldmVudC50YXJnZXQgPSBldmVudC50YXJnZXQucGFyZW50Tm9kZTtcblx0XHR9XG5cblx0XHRyZXR1cm4gZml4SG9vay5maWx0ZXIgPyBmaXhIb29rLmZpbHRlciggZXZlbnQsIG9yaWdpbmFsRXZlbnQgKSA6IGV2ZW50O1xuXHR9LFxuXG5cdHNwZWNpYWw6IHtcblx0XHRsb2FkOiB7XG5cdFx0XHQvLyBQcmV2ZW50IHRyaWdnZXJlZCBpbWFnZS5sb2FkIGV2ZW50cyBmcm9tIGJ1YmJsaW5nIHRvIHdpbmRvdy5sb2FkXG5cdFx0XHRub0J1YmJsZTogdHJ1ZVxuXHRcdH0sXG5cdFx0Zm9jdXM6IHtcblx0XHRcdC8vIEZpcmUgbmF0aXZlIGV2ZW50IGlmIHBvc3NpYmxlIHNvIGJsdXIvZm9jdXMgc2VxdWVuY2UgaXMgY29ycmVjdFxuXHRcdFx0dHJpZ2dlcjogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggdGhpcyAhPT0gc2FmZUFjdGl2ZUVsZW1lbnQoKSAmJiB0aGlzLmZvY3VzICkge1xuXHRcdFx0XHRcdHRoaXMuZm9jdXMoKTtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRkZWxlZ2F0ZVR5cGU6IFwiZm9jdXNpblwiXG5cdFx0fSxcblx0XHRibHVyOiB7XG5cdFx0XHR0cmlnZ2VyOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCB0aGlzID09PSBzYWZlQWN0aXZlRWxlbWVudCgpICYmIHRoaXMuYmx1ciApIHtcblx0XHRcdFx0XHR0aGlzLmJsdXIoKTtcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRkZWxlZ2F0ZVR5cGU6IFwiZm9jdXNvdXRcIlxuXHRcdH0sXG5cdFx0Y2xpY2s6IHtcblx0XHRcdC8vIEZvciBjaGVja2JveCwgZmlyZSBuYXRpdmUgZXZlbnQgc28gY2hlY2tlZCBzdGF0ZSB3aWxsIGJlIHJpZ2h0XG5cdFx0XHR0cmlnZ2VyOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCB0aGlzLnR5cGUgPT09IFwiY2hlY2tib3hcIiAmJiB0aGlzLmNsaWNrICYmIGpRdWVyeS5ub2RlTmFtZSggdGhpcywgXCJpbnB1dFwiICkgKSB7XG5cdFx0XHRcdFx0dGhpcy5jbGljaygpO1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblxuXHRcdFx0Ly8gRm9yIGNyb3NzLWJyb3dzZXIgY29uc2lzdGVuY3ksIGRvbid0IGZpcmUgbmF0aXZlIC5jbGljaygpIG9uIGxpbmtzXG5cdFx0XHRfZGVmYXVsdDogZnVuY3Rpb24oIGV2ZW50ICkge1xuXHRcdFx0XHRyZXR1cm4galF1ZXJ5Lm5vZGVOYW1lKCBldmVudC50YXJnZXQsIFwiYVwiICk7XG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdGJlZm9yZXVubG9hZDoge1xuXHRcdFx0cG9zdERpc3BhdGNoOiBmdW5jdGlvbiggZXZlbnQgKSB7XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogRmlyZWZveCAyMCtcblx0XHRcdFx0Ly8gRmlyZWZveCBkb2Vzbid0IGFsZXJ0IGlmIHRoZSByZXR1cm5WYWx1ZSBmaWVsZCBpcyBub3Qgc2V0LlxuXHRcdFx0XHRpZiAoIGV2ZW50LnJlc3VsdCAhPT0gdW5kZWZpbmVkICYmIGV2ZW50Lm9yaWdpbmFsRXZlbnQgKSB7XG5cdFx0XHRcdFx0ZXZlbnQub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZSA9IGV2ZW50LnJlc3VsdDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHRzaW11bGF0ZTogZnVuY3Rpb24oIHR5cGUsIGVsZW0sIGV2ZW50LCBidWJibGUgKSB7XG5cdFx0Ly8gUGlnZ3liYWNrIG9uIGEgZG9ub3IgZXZlbnQgdG8gc2ltdWxhdGUgYSBkaWZmZXJlbnQgb25lLlxuXHRcdC8vIEZha2Ugb3JpZ2luYWxFdmVudCB0byBhdm9pZCBkb25vcidzIHN0b3BQcm9wYWdhdGlvbiwgYnV0IGlmIHRoZVxuXHRcdC8vIHNpbXVsYXRlZCBldmVudCBwcmV2ZW50cyBkZWZhdWx0IHRoZW4gd2UgZG8gdGhlIHNhbWUgb24gdGhlIGRvbm9yLlxuXHRcdHZhciBlID0galF1ZXJ5LmV4dGVuZChcblx0XHRcdG5ldyBqUXVlcnkuRXZlbnQoKSxcblx0XHRcdGV2ZW50LFxuXHRcdFx0e1xuXHRcdFx0XHR0eXBlOiB0eXBlLFxuXHRcdFx0XHRpc1NpbXVsYXRlZDogdHJ1ZSxcblx0XHRcdFx0b3JpZ2luYWxFdmVudDoge31cblx0XHRcdH1cblx0XHQpO1xuXHRcdGlmICggYnViYmxlICkge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXIoIGUsIG51bGwsIGVsZW0gKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LmRpc3BhdGNoLmNhbGwoIGVsZW0sIGUgKTtcblx0XHR9XG5cdFx0aWYgKCBlLmlzRGVmYXVsdFByZXZlbnRlZCgpICkge1xuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHR9XG5cdH1cbn07XG5cbmpRdWVyeS5yZW1vdmVFdmVudCA9IGZ1bmN0aW9uKCBlbGVtLCB0eXBlLCBoYW5kbGUgKSB7XG5cdGlmICggZWxlbS5yZW1vdmVFdmVudExpc3RlbmVyICkge1xuXHRcdGVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lciggdHlwZSwgaGFuZGxlLCBmYWxzZSApO1xuXHR9XG59O1xuXG5qUXVlcnkuRXZlbnQgPSBmdW5jdGlvbiggc3JjLCBwcm9wcyApIHtcblx0Ly8gQWxsb3cgaW5zdGFudGlhdGlvbiB3aXRob3V0IHRoZSAnbmV3JyBrZXl3b3JkXG5cdGlmICggISh0aGlzIGluc3RhbmNlb2YgalF1ZXJ5LkV2ZW50KSApIHtcblx0XHRyZXR1cm4gbmV3IGpRdWVyeS5FdmVudCggc3JjLCBwcm9wcyApO1xuXHR9XG5cblx0Ly8gRXZlbnQgb2JqZWN0XG5cdGlmICggc3JjICYmIHNyYy50eXBlICkge1xuXHRcdHRoaXMub3JpZ2luYWxFdmVudCA9IHNyYztcblx0XHR0aGlzLnR5cGUgPSBzcmMudHlwZTtcblxuXHRcdC8vIEV2ZW50cyBidWJibGluZyB1cCB0aGUgZG9jdW1lbnQgbWF5IGhhdmUgYmVlbiBtYXJrZWQgYXMgcHJldmVudGVkXG5cdFx0Ly8gYnkgYSBoYW5kbGVyIGxvd2VyIGRvd24gdGhlIHRyZWU7IHJlZmxlY3QgdGhlIGNvcnJlY3QgdmFsdWUuXG5cdFx0dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQgPSBzcmMuZGVmYXVsdFByZXZlbnRlZCB8fFxuXHRcdFx0XHRzcmMuZGVmYXVsdFByZXZlbnRlZCA9PT0gdW5kZWZpbmVkICYmXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQ8NC4wXG5cdFx0XHRcdHNyYy5yZXR1cm5WYWx1ZSA9PT0gZmFsc2UgP1xuXHRcdFx0cmV0dXJuVHJ1ZSA6XG5cdFx0XHRyZXR1cm5GYWxzZTtcblxuXHQvLyBFdmVudCB0eXBlXG5cdH0gZWxzZSB7XG5cdFx0dGhpcy50eXBlID0gc3JjO1xuXHR9XG5cblx0Ly8gUHV0IGV4cGxpY2l0bHkgcHJvdmlkZWQgcHJvcGVydGllcyBvbnRvIHRoZSBldmVudCBvYmplY3Rcblx0aWYgKCBwcm9wcyApIHtcblx0XHRqUXVlcnkuZXh0ZW5kKCB0aGlzLCBwcm9wcyApO1xuXHR9XG5cblx0Ly8gQ3JlYXRlIGEgdGltZXN0YW1wIGlmIGluY29taW5nIGV2ZW50IGRvZXNuJ3QgaGF2ZSBvbmVcblx0dGhpcy50aW1lU3RhbXAgPSBzcmMgJiYgc3JjLnRpbWVTdGFtcCB8fCBqUXVlcnkubm93KCk7XG5cblx0Ly8gTWFyayBpdCBhcyBmaXhlZFxuXHR0aGlzWyBqUXVlcnkuZXhwYW5kbyBdID0gdHJ1ZTtcbn07XG5cbi8vIGpRdWVyeS5FdmVudCBpcyBiYXNlZCBvbiBET00zIEV2ZW50cyBhcyBzcGVjaWZpZWQgYnkgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgQmluZGluZ1xuLy8gaHR0cDovL3d3dy53My5vcmcvVFIvMjAwMy9XRC1ET00tTGV2ZWwtMy1FdmVudHMtMjAwMzAzMzEvZWNtYS1zY3JpcHQtYmluZGluZy5odG1sXG5qUXVlcnkuRXZlbnQucHJvdG90eXBlID0ge1xuXHRpc0RlZmF1bHRQcmV2ZW50ZWQ6IHJldHVybkZhbHNlLFxuXHRpc1Byb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UsXG5cdGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOiByZXR1cm5GYWxzZSxcblxuXHRwcmV2ZW50RGVmYXVsdDogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGUgPSB0aGlzLm9yaWdpbmFsRXZlbnQ7XG5cblx0XHR0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IHJldHVyblRydWU7XG5cblx0XHRpZiAoIGUgJiYgZS5wcmV2ZW50RGVmYXVsdCApIHtcblx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHR9XG5cdH0sXG5cdHN0b3BQcm9wYWdhdGlvbjogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGUgPSB0aGlzLm9yaWdpbmFsRXZlbnQ7XG5cblx0XHR0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkID0gcmV0dXJuVHJ1ZTtcblxuXHRcdGlmICggZSAmJiBlLnN0b3BQcm9wYWdhdGlvbiApIHtcblx0XHRcdGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0fVxuXHR9LFxuXHRzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBlID0gdGhpcy5vcmlnaW5hbEV2ZW50O1xuXG5cdFx0dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCA9IHJldHVyblRydWU7XG5cblx0XHRpZiAoIGUgJiYgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24gKSB7XG5cdFx0XHRlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXHRcdH1cblxuXHRcdHRoaXMuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdH1cbn07XG5cbi8vIENyZWF0ZSBtb3VzZWVudGVyL2xlYXZlIGV2ZW50cyB1c2luZyBtb3VzZW92ZXIvb3V0IGFuZCBldmVudC10aW1lIGNoZWNrc1xuLy8gU3VwcG9ydDogQ2hyb21lIDE1K1xualF1ZXJ5LmVhY2goe1xuXHRtb3VzZWVudGVyOiBcIm1vdXNlb3ZlclwiLFxuXHRtb3VzZWxlYXZlOiBcIm1vdXNlb3V0XCIsXG5cdHBvaW50ZXJlbnRlcjogXCJwb2ludGVyb3ZlclwiLFxuXHRwb2ludGVybGVhdmU6IFwicG9pbnRlcm91dFwiXG59LCBmdW5jdGlvbiggb3JpZywgZml4ICkge1xuXHRqUXVlcnkuZXZlbnQuc3BlY2lhbFsgb3JpZyBdID0ge1xuXHRcdGRlbGVnYXRlVHlwZTogZml4LFxuXHRcdGJpbmRUeXBlOiBmaXgsXG5cblx0XHRoYW5kbGU6IGZ1bmN0aW9uKCBldmVudCApIHtcblx0XHRcdHZhciByZXQsXG5cdFx0XHRcdHRhcmdldCA9IHRoaXMsXG5cdFx0XHRcdHJlbGF0ZWQgPSBldmVudC5yZWxhdGVkVGFyZ2V0LFxuXHRcdFx0XHRoYW5kbGVPYmogPSBldmVudC5oYW5kbGVPYmo7XG5cblx0XHRcdC8vIEZvciBtb3VzZW50ZXIvbGVhdmUgY2FsbCB0aGUgaGFuZGxlciBpZiByZWxhdGVkIGlzIG91dHNpZGUgdGhlIHRhcmdldC5cblx0XHRcdC8vIE5COiBObyByZWxhdGVkVGFyZ2V0IGlmIHRoZSBtb3VzZSBsZWZ0L2VudGVyZWQgdGhlIGJyb3dzZXIgd2luZG93XG5cdFx0XHRpZiAoICFyZWxhdGVkIHx8IChyZWxhdGVkICE9PSB0YXJnZXQgJiYgIWpRdWVyeS5jb250YWlucyggdGFyZ2V0LCByZWxhdGVkICkpICkge1xuXHRcdFx0XHRldmVudC50eXBlID0gaGFuZGxlT2JqLm9yaWdUeXBlO1xuXHRcdFx0XHRyZXQgPSBoYW5kbGVPYmouaGFuZGxlci5hcHBseSggdGhpcywgYXJndW1lbnRzICk7XG5cdFx0XHRcdGV2ZW50LnR5cGUgPSBmaXg7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmV0O1xuXHRcdH1cblx0fTtcbn0pO1xuXG4vLyBTdXBwb3J0OiBGaXJlZm94LCBDaHJvbWUsIFNhZmFyaVxuLy8gQ3JlYXRlIFwiYnViYmxpbmdcIiBmb2N1cyBhbmQgYmx1ciBldmVudHNcbmlmICggIXN1cHBvcnQuZm9jdXNpbkJ1YmJsZXMgKSB7XG5cdGpRdWVyeS5lYWNoKHsgZm9jdXM6IFwiZm9jdXNpblwiLCBibHVyOiBcImZvY3Vzb3V0XCIgfSwgZnVuY3Rpb24oIG9yaWcsIGZpeCApIHtcblxuXHRcdC8vIEF0dGFjaCBhIHNpbmdsZSBjYXB0dXJpbmcgaGFuZGxlciBvbiB0aGUgZG9jdW1lbnQgd2hpbGUgc29tZW9uZSB3YW50cyBmb2N1c2luL2ZvY3Vzb3V0XG5cdFx0dmFyIGhhbmRsZXIgPSBmdW5jdGlvbiggZXZlbnQgKSB7XG5cdFx0XHRcdGpRdWVyeS5ldmVudC5zaW11bGF0ZSggZml4LCBldmVudC50YXJnZXQsIGpRdWVyeS5ldmVudC5maXgoIGV2ZW50ICksIHRydWUgKTtcblx0XHRcdH07XG5cblx0XHRqUXVlcnkuZXZlbnQuc3BlY2lhbFsgZml4IF0gPSB7XG5cdFx0XHRzZXR1cDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHZhciBkb2MgPSB0aGlzLm93bmVyRG9jdW1lbnQgfHwgdGhpcyxcblx0XHRcdFx0XHRhdHRhY2hlcyA9IGRhdGFfcHJpdi5hY2Nlc3MoIGRvYywgZml4ICk7XG5cblx0XHRcdFx0aWYgKCAhYXR0YWNoZXMgKSB7XG5cdFx0XHRcdFx0ZG9jLmFkZEV2ZW50TGlzdGVuZXIoIG9yaWcsIGhhbmRsZXIsIHRydWUgKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRkYXRhX3ByaXYuYWNjZXNzKCBkb2MsIGZpeCwgKCBhdHRhY2hlcyB8fCAwICkgKyAxICk7XG5cdFx0XHR9LFxuXHRcdFx0dGVhcmRvd246IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHR2YXIgZG9jID0gdGhpcy5vd25lckRvY3VtZW50IHx8IHRoaXMsXG5cdFx0XHRcdFx0YXR0YWNoZXMgPSBkYXRhX3ByaXYuYWNjZXNzKCBkb2MsIGZpeCApIC0gMTtcblxuXHRcdFx0XHRpZiAoICFhdHRhY2hlcyApIHtcblx0XHRcdFx0XHRkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lciggb3JpZywgaGFuZGxlciwgdHJ1ZSApO1xuXHRcdFx0XHRcdGRhdGFfcHJpdi5yZW1vdmUoIGRvYywgZml4ICk7XG5cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRkYXRhX3ByaXYuYWNjZXNzKCBkb2MsIGZpeCwgYXR0YWNoZXMgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cdH0pO1xufVxuXG5qUXVlcnkuZm4uZXh0ZW5kKHtcblxuXHRvbjogZnVuY3Rpb24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4sIC8qSU5URVJOQUwqLyBvbmUgKSB7XG5cdFx0dmFyIG9yaWdGbiwgdHlwZTtcblxuXHRcdC8vIFR5cGVzIGNhbiBiZSBhIG1hcCBvZiB0eXBlcy9oYW5kbGVyc1xuXHRcdGlmICggdHlwZW9mIHR5cGVzID09PSBcIm9iamVjdFwiICkge1xuXHRcdFx0Ly8gKCB0eXBlcy1PYmplY3QsIHNlbGVjdG9yLCBkYXRhIClcblx0XHRcdGlmICggdHlwZW9mIHNlbGVjdG9yICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0XHQvLyAoIHR5cGVzLU9iamVjdCwgZGF0YSApXG5cdFx0XHRcdGRhdGEgPSBkYXRhIHx8IHNlbGVjdG9yO1xuXHRcdFx0XHRzZWxlY3RvciA9IHVuZGVmaW5lZDtcblx0XHRcdH1cblx0XHRcdGZvciAoIHR5cGUgaW4gdHlwZXMgKSB7XG5cdFx0XHRcdHRoaXMub24oIHR5cGUsIHNlbGVjdG9yLCBkYXRhLCB0eXBlc1sgdHlwZSBdLCBvbmUgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblxuXHRcdGlmICggZGF0YSA9PSBudWxsICYmIGZuID09IG51bGwgKSB7XG5cdFx0XHQvLyAoIHR5cGVzLCBmbiApXG5cdFx0XHRmbiA9IHNlbGVjdG9yO1xuXHRcdFx0ZGF0YSA9IHNlbGVjdG9yID0gdW5kZWZpbmVkO1xuXHRcdH0gZWxzZSBpZiAoIGZuID09IG51bGwgKSB7XG5cdFx0XHRpZiAoIHR5cGVvZiBzZWxlY3RvciA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdFx0Ly8gKCB0eXBlcywgc2VsZWN0b3IsIGZuIClcblx0XHRcdFx0Zm4gPSBkYXRhO1xuXHRcdFx0XHRkYXRhID0gdW5kZWZpbmVkO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gKCB0eXBlcywgZGF0YSwgZm4gKVxuXHRcdFx0XHRmbiA9IGRhdGE7XG5cdFx0XHRcdGRhdGEgPSBzZWxlY3Rvcjtcblx0XHRcdFx0c2VsZWN0b3IgPSB1bmRlZmluZWQ7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmICggZm4gPT09IGZhbHNlICkge1xuXHRcdFx0Zm4gPSByZXR1cm5GYWxzZTtcblx0XHR9IGVsc2UgaWYgKCAhZm4gKSB7XG5cdFx0XHRyZXR1cm4gdGhpcztcblx0XHR9XG5cblx0XHRpZiAoIG9uZSA9PT0gMSApIHtcblx0XHRcdG9yaWdGbiA9IGZuO1xuXHRcdFx0Zm4gPSBmdW5jdGlvbiggZXZlbnQgKSB7XG5cdFx0XHRcdC8vIENhbiB1c2UgYW4gZW1wdHkgc2V0LCBzaW5jZSBldmVudCBjb250YWlucyB0aGUgaW5mb1xuXHRcdFx0XHRqUXVlcnkoKS5vZmYoIGV2ZW50ICk7XG5cdFx0XHRcdHJldHVybiBvcmlnRm4uYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApO1xuXHRcdFx0fTtcblx0XHRcdC8vIFVzZSBzYW1lIGd1aWQgc28gY2FsbGVyIGNhbiByZW1vdmUgdXNpbmcgb3JpZ0ZuXG5cdFx0XHRmbi5ndWlkID0gb3JpZ0ZuLmd1aWQgfHwgKCBvcmlnRm4uZ3VpZCA9IGpRdWVyeS5ndWlkKysgKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkuZXZlbnQuYWRkKCB0aGlzLCB0eXBlcywgZm4sIGRhdGEsIHNlbGVjdG9yICk7XG5cdFx0fSk7XG5cdH0sXG5cdG9uZTogZnVuY3Rpb24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4sIDEgKTtcblx0fSxcblx0b2ZmOiBmdW5jdGlvbiggdHlwZXMsIHNlbGVjdG9yLCBmbiApIHtcblx0XHR2YXIgaGFuZGxlT2JqLCB0eXBlO1xuXHRcdGlmICggdHlwZXMgJiYgdHlwZXMucHJldmVudERlZmF1bHQgJiYgdHlwZXMuaGFuZGxlT2JqICkge1xuXHRcdFx0Ly8gKCBldmVudCApICBkaXNwYXRjaGVkIGpRdWVyeS5FdmVudFxuXHRcdFx0aGFuZGxlT2JqID0gdHlwZXMuaGFuZGxlT2JqO1xuXHRcdFx0alF1ZXJ5KCB0eXBlcy5kZWxlZ2F0ZVRhcmdldCApLm9mZihcblx0XHRcdFx0aGFuZGxlT2JqLm5hbWVzcGFjZSA/IGhhbmRsZU9iai5vcmlnVHlwZSArIFwiLlwiICsgaGFuZGxlT2JqLm5hbWVzcGFjZSA6IGhhbmRsZU9iai5vcmlnVHlwZSxcblx0XHRcdFx0aGFuZGxlT2JqLnNlbGVjdG9yLFxuXHRcdFx0XHRoYW5kbGVPYmouaGFuZGxlclxuXHRcdFx0KTtcblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblx0XHRpZiAoIHR5cGVvZiB0eXBlcyA9PT0gXCJvYmplY3RcIiApIHtcblx0XHRcdC8vICggdHlwZXMtb2JqZWN0IFssIHNlbGVjdG9yXSApXG5cdFx0XHRmb3IgKCB0eXBlIGluIHR5cGVzICkge1xuXHRcdFx0XHR0aGlzLm9mZiggdHlwZSwgc2VsZWN0b3IsIHR5cGVzWyB0eXBlIF0gKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblx0XHRpZiAoIHNlbGVjdG9yID09PSBmYWxzZSB8fCB0eXBlb2Ygc2VsZWN0b3IgPT09IFwiZnVuY3Rpb25cIiApIHtcblx0XHRcdC8vICggdHlwZXMgWywgZm5dIClcblx0XHRcdGZuID0gc2VsZWN0b3I7XG5cdFx0XHRzZWxlY3RvciA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0aWYgKCBmbiA9PT0gZmFsc2UgKSB7XG5cdFx0XHRmbiA9IHJldHVybkZhbHNlO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LnJlbW92ZSggdGhpcywgdHlwZXMsIGZuLCBzZWxlY3RvciApO1xuXHRcdH0pO1xuXHR9LFxuXG5cdHRyaWdnZXI6IGZ1bmN0aW9uKCB0eXBlLCBkYXRhICkge1xuXHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkuZXZlbnQudHJpZ2dlciggdHlwZSwgZGF0YSwgdGhpcyApO1xuXHRcdH0pO1xuXHR9LFxuXHR0cmlnZ2VySGFuZGxlcjogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7XG5cdFx0dmFyIGVsZW0gPSB0aGlzWzBdO1xuXHRcdGlmICggZWxlbSApIHtcblx0XHRcdHJldHVybiBqUXVlcnkuZXZlbnQudHJpZ2dlciggdHlwZSwgZGF0YSwgZWxlbSwgdHJ1ZSApO1xuXHRcdH1cblx0fVxufSk7XG5cblxudmFyXG5cdHJ4aHRtbFRhZyA9IC88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFtcXHc6XSspW14+XSopXFwvPi9naSxcblx0cnRhZ05hbWUgPSAvPChbXFx3Ol0rKS8sXG5cdHJodG1sID0gLzx8JiM/XFx3KzsvLFxuXHRybm9Jbm5lcmh0bWwgPSAvPCg/OnNjcmlwdHxzdHlsZXxsaW5rKS9pLFxuXHQvLyBjaGVja2VkPVwiY2hlY2tlZFwiIG9yIGNoZWNrZWRcblx0cmNoZWNrZWQgPSAvY2hlY2tlZFxccyooPzpbXj1dfD1cXHMqLmNoZWNrZWQuKS9pLFxuXHRyc2NyaXB0VHlwZSA9IC9eJHxcXC8oPzpqYXZhfGVjbWEpc2NyaXB0L2ksXG5cdHJzY3JpcHRUeXBlTWFza2VkID0gL150cnVlXFwvKC4qKS8sXG5cdHJjbGVhblNjcmlwdCA9IC9eXFxzKjwhKD86XFxbQ0RBVEFcXFt8LS0pfCg/OlxcXVxcXXwtLSk+XFxzKiQvZyxcblxuXHQvLyBXZSBoYXZlIHRvIGNsb3NlIHRoZXNlIHRhZ3MgdG8gc3VwcG9ydCBYSFRNTCAoIzEzMjAwKVxuXHR3cmFwTWFwID0ge1xuXG5cdFx0Ly8gU3VwcG9ydDogSUU5XG5cdFx0b3B0aW9uOiBbIDEsIFwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPlwiLCBcIjwvc2VsZWN0PlwiIF0sXG5cblx0XHR0aGVhZDogWyAxLCBcIjx0YWJsZT5cIiwgXCI8L3RhYmxlPlwiIF0sXG5cdFx0Y29sOiBbIDIsIFwiPHRhYmxlPjxjb2xncm91cD5cIiwgXCI8L2NvbGdyb3VwPjwvdGFibGU+XCIgXSxcblx0XHR0cjogWyAyLCBcIjx0YWJsZT48dGJvZHk+XCIsIFwiPC90Ym9keT48L3RhYmxlPlwiIF0sXG5cdFx0dGQ6IFsgMywgXCI8dGFibGU+PHRib2R5Pjx0cj5cIiwgXCI8L3RyPjwvdGJvZHk+PC90YWJsZT5cIiBdLFxuXG5cdFx0X2RlZmF1bHQ6IFsgMCwgXCJcIiwgXCJcIiBdXG5cdH07XG5cbi8vIFN1cHBvcnQ6IElFOVxud3JhcE1hcC5vcHRncm91cCA9IHdyYXBNYXAub3B0aW9uO1xuXG53cmFwTWFwLnRib2R5ID0gd3JhcE1hcC50Zm9vdCA9IHdyYXBNYXAuY29sZ3JvdXAgPSB3cmFwTWFwLmNhcHRpb24gPSB3cmFwTWFwLnRoZWFkO1xud3JhcE1hcC50aCA9IHdyYXBNYXAudGQ7XG5cbi8vIFN1cHBvcnQ6IDEueCBjb21wYXRpYmlsaXR5XG4vLyBNYW5pcHVsYXRpbmcgdGFibGVzIHJlcXVpcmVzIGEgdGJvZHlcbmZ1bmN0aW9uIG1hbmlwdWxhdGlvblRhcmdldCggZWxlbSwgY29udGVudCApIHtcblx0cmV0dXJuIGpRdWVyeS5ub2RlTmFtZSggZWxlbSwgXCJ0YWJsZVwiICkgJiZcblx0XHRqUXVlcnkubm9kZU5hbWUoIGNvbnRlbnQubm9kZVR5cGUgIT09IDExID8gY29udGVudCA6IGNvbnRlbnQuZmlyc3RDaGlsZCwgXCJ0clwiICkgP1xuXG5cdFx0ZWxlbS5nZXRFbGVtZW50c0J5VGFnTmFtZShcInRib2R5XCIpWzBdIHx8XG5cdFx0XHRlbGVtLmFwcGVuZENoaWxkKCBlbGVtLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRib2R5XCIpICkgOlxuXHRcdGVsZW07XG59XG5cbi8vIFJlcGxhY2UvcmVzdG9yZSB0aGUgdHlwZSBhdHRyaWJ1dGUgb2Ygc2NyaXB0IGVsZW1lbnRzIGZvciBzYWZlIERPTSBtYW5pcHVsYXRpb25cbmZ1bmN0aW9uIGRpc2FibGVTY3JpcHQoIGVsZW0gKSB7XG5cdGVsZW0udHlwZSA9IChlbGVtLmdldEF0dHJpYnV0ZShcInR5cGVcIikgIT09IG51bGwpICsgXCIvXCIgKyBlbGVtLnR5cGU7XG5cdHJldHVybiBlbGVtO1xufVxuZnVuY3Rpb24gcmVzdG9yZVNjcmlwdCggZWxlbSApIHtcblx0dmFyIG1hdGNoID0gcnNjcmlwdFR5cGVNYXNrZWQuZXhlYyggZWxlbS50eXBlICk7XG5cblx0aWYgKCBtYXRjaCApIHtcblx0XHRlbGVtLnR5cGUgPSBtYXRjaFsgMSBdO1xuXHR9IGVsc2Uge1xuXHRcdGVsZW0ucmVtb3ZlQXR0cmlidXRlKFwidHlwZVwiKTtcblx0fVxuXG5cdHJldHVybiBlbGVtO1xufVxuXG4vLyBNYXJrIHNjcmlwdHMgYXMgaGF2aW5nIGFscmVhZHkgYmVlbiBldmFsdWF0ZWRcbmZ1bmN0aW9uIHNldEdsb2JhbEV2YWwoIGVsZW1zLCByZWZFbGVtZW50cyApIHtcblx0dmFyIGkgPSAwLFxuXHRcdGwgPSBlbGVtcy5sZW5ndGg7XG5cblx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdGRhdGFfcHJpdi5zZXQoXG5cdFx0XHRlbGVtc1sgaSBdLCBcImdsb2JhbEV2YWxcIiwgIXJlZkVsZW1lbnRzIHx8IGRhdGFfcHJpdi5nZXQoIHJlZkVsZW1lbnRzWyBpIF0sIFwiZ2xvYmFsRXZhbFwiIClcblx0XHQpO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGNsb25lQ29weUV2ZW50KCBzcmMsIGRlc3QgKSB7XG5cdHZhciBpLCBsLCB0eXBlLCBwZGF0YU9sZCwgcGRhdGFDdXIsIHVkYXRhT2xkLCB1ZGF0YUN1ciwgZXZlbnRzO1xuXG5cdGlmICggZGVzdC5ub2RlVHlwZSAhPT0gMSApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyAxLiBDb3B5IHByaXZhdGUgZGF0YTogZXZlbnRzLCBoYW5kbGVycywgZXRjLlxuXHRpZiAoIGRhdGFfcHJpdi5oYXNEYXRhKCBzcmMgKSApIHtcblx0XHRwZGF0YU9sZCA9IGRhdGFfcHJpdi5hY2Nlc3MoIHNyYyApO1xuXHRcdHBkYXRhQ3VyID0gZGF0YV9wcml2LnNldCggZGVzdCwgcGRhdGFPbGQgKTtcblx0XHRldmVudHMgPSBwZGF0YU9sZC5ldmVudHM7XG5cblx0XHRpZiAoIGV2ZW50cyApIHtcblx0XHRcdGRlbGV0ZSBwZGF0YUN1ci5oYW5kbGU7XG5cdFx0XHRwZGF0YUN1ci5ldmVudHMgPSB7fTtcblxuXHRcdFx0Zm9yICggdHlwZSBpbiBldmVudHMgKSB7XG5cdFx0XHRcdGZvciAoIGkgPSAwLCBsID0gZXZlbnRzWyB0eXBlIF0ubGVuZ3RoOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC5hZGQoIGRlc3QsIHR5cGUsIGV2ZW50c1sgdHlwZSBdWyBpIF0gKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIDIuIENvcHkgdXNlciBkYXRhXG5cdGlmICggZGF0YV91c2VyLmhhc0RhdGEoIHNyYyApICkge1xuXHRcdHVkYXRhT2xkID0gZGF0YV91c2VyLmFjY2Vzcyggc3JjICk7XG5cdFx0dWRhdGFDdXIgPSBqUXVlcnkuZXh0ZW5kKCB7fSwgdWRhdGFPbGQgKTtcblxuXHRcdGRhdGFfdXNlci5zZXQoIGRlc3QsIHVkYXRhQ3VyICk7XG5cdH1cbn1cblxuZnVuY3Rpb24gZ2V0QWxsKCBjb250ZXh0LCB0YWcgKSB7XG5cdHZhciByZXQgPSBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lID8gY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggdGFnIHx8IFwiKlwiICkgOlxuXHRcdFx0Y29udGV4dC5xdWVyeVNlbGVjdG9yQWxsID8gY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKCB0YWcgfHwgXCIqXCIgKSA6XG5cdFx0XHRbXTtcblxuXHRyZXR1cm4gdGFnID09PSB1bmRlZmluZWQgfHwgdGFnICYmIGpRdWVyeS5ub2RlTmFtZSggY29udGV4dCwgdGFnICkgP1xuXHRcdGpRdWVyeS5tZXJnZSggWyBjb250ZXh0IF0sIHJldCApIDpcblx0XHRyZXQ7XG59XG5cbi8vIEZpeCBJRSBidWdzLCBzZWUgc3VwcG9ydCB0ZXN0c1xuZnVuY3Rpb24gZml4SW5wdXQoIHNyYywgZGVzdCApIHtcblx0dmFyIG5vZGVOYW1lID0gZGVzdC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuXG5cdC8vIEZhaWxzIHRvIHBlcnNpc3QgdGhlIGNoZWNrZWQgc3RhdGUgb2YgYSBjbG9uZWQgY2hlY2tib3ggb3IgcmFkaW8gYnV0dG9uLlxuXHRpZiAoIG5vZGVOYW1lID09PSBcImlucHV0XCIgJiYgcmNoZWNrYWJsZVR5cGUudGVzdCggc3JjLnR5cGUgKSApIHtcblx0XHRkZXN0LmNoZWNrZWQgPSBzcmMuY2hlY2tlZDtcblxuXHQvLyBGYWlscyB0byByZXR1cm4gdGhlIHNlbGVjdGVkIG9wdGlvbiB0byB0aGUgZGVmYXVsdCBzZWxlY3RlZCBzdGF0ZSB3aGVuIGNsb25pbmcgb3B0aW9uc1xuXHR9IGVsc2UgaWYgKCBub2RlTmFtZSA9PT0gXCJpbnB1dFwiIHx8IG5vZGVOYW1lID09PSBcInRleHRhcmVhXCIgKSB7XG5cdFx0ZGVzdC5kZWZhdWx0VmFsdWUgPSBzcmMuZGVmYXVsdFZhbHVlO1xuXHR9XG59XG5cbmpRdWVyeS5leHRlbmQoe1xuXHRjbG9uZTogZnVuY3Rpb24oIGVsZW0sIGRhdGFBbmRFdmVudHMsIGRlZXBEYXRhQW5kRXZlbnRzICkge1xuXHRcdHZhciBpLCBsLCBzcmNFbGVtZW50cywgZGVzdEVsZW1lbnRzLFxuXHRcdFx0Y2xvbmUgPSBlbGVtLmNsb25lTm9kZSggdHJ1ZSApLFxuXHRcdFx0aW5QYWdlID0galF1ZXJ5LmNvbnRhaW5zKCBlbGVtLm93bmVyRG9jdW1lbnQsIGVsZW0gKTtcblxuXHRcdC8vIEZpeCBJRSBjbG9uaW5nIGlzc3Vlc1xuXHRcdGlmICggIXN1cHBvcnQubm9DbG9uZUNoZWNrZWQgJiYgKCBlbGVtLm5vZGVUeXBlID09PSAxIHx8IGVsZW0ubm9kZVR5cGUgPT09IDExICkgJiZcblx0XHRcdFx0IWpRdWVyeS5pc1hNTERvYyggZWxlbSApICkge1xuXG5cdFx0XHQvLyBXZSBlc2NoZXcgU2l6emxlIGhlcmUgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnM6IGh0dHA6Ly9qc3BlcmYuY29tL2dldGFsbC12cy1zaXp6bGUvMlxuXHRcdFx0ZGVzdEVsZW1lbnRzID0gZ2V0QWxsKCBjbG9uZSApO1xuXHRcdFx0c3JjRWxlbWVudHMgPSBnZXRBbGwoIGVsZW0gKTtcblxuXHRcdFx0Zm9yICggaSA9IDAsIGwgPSBzcmNFbGVtZW50cy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRcdGZpeElucHV0KCBzcmNFbGVtZW50c1sgaSBdLCBkZXN0RWxlbWVudHNbIGkgXSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENvcHkgdGhlIGV2ZW50cyBmcm9tIHRoZSBvcmlnaW5hbCB0byB0aGUgY2xvbmVcblx0XHRpZiAoIGRhdGFBbmRFdmVudHMgKSB7XG5cdFx0XHRpZiAoIGRlZXBEYXRhQW5kRXZlbnRzICkge1xuXHRcdFx0XHRzcmNFbGVtZW50cyA9IHNyY0VsZW1lbnRzIHx8IGdldEFsbCggZWxlbSApO1xuXHRcdFx0XHRkZXN0RWxlbWVudHMgPSBkZXN0RWxlbWVudHMgfHwgZ2V0QWxsKCBjbG9uZSApO1xuXG5cdFx0XHRcdGZvciAoIGkgPSAwLCBsID0gc3JjRWxlbWVudHMubGVuZ3RoOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRcdGNsb25lQ29weUV2ZW50KCBzcmNFbGVtZW50c1sgaSBdLCBkZXN0RWxlbWVudHNbIGkgXSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjbG9uZUNvcHlFdmVudCggZWxlbSwgY2xvbmUgKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBQcmVzZXJ2ZSBzY3JpcHQgZXZhbHVhdGlvbiBoaXN0b3J5XG5cdFx0ZGVzdEVsZW1lbnRzID0gZ2V0QWxsKCBjbG9uZSwgXCJzY3JpcHRcIiApO1xuXHRcdGlmICggZGVzdEVsZW1lbnRzLmxlbmd0aCA+IDAgKSB7XG5cdFx0XHRzZXRHbG9iYWxFdmFsKCBkZXN0RWxlbWVudHMsICFpblBhZ2UgJiYgZ2V0QWxsKCBlbGVtLCBcInNjcmlwdFwiICkgKTtcblx0XHR9XG5cblx0XHQvLyBSZXR1cm4gdGhlIGNsb25lZCBzZXRcblx0XHRyZXR1cm4gY2xvbmU7XG5cdH0sXG5cblx0YnVpbGRGcmFnbWVudDogZnVuY3Rpb24oIGVsZW1zLCBjb250ZXh0LCBzY3JpcHRzLCBzZWxlY3Rpb24gKSB7XG5cdFx0dmFyIGVsZW0sIHRtcCwgdGFnLCB3cmFwLCBjb250YWlucywgaixcblx0XHRcdGZyYWdtZW50ID0gY29udGV4dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksXG5cdFx0XHRub2RlcyA9IFtdLFxuXHRcdFx0aSA9IDAsXG5cdFx0XHRsID0gZWxlbXMubGVuZ3RoO1xuXG5cdFx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0ZWxlbSA9IGVsZW1zWyBpIF07XG5cblx0XHRcdGlmICggZWxlbSB8fCBlbGVtID09PSAwICkge1xuXG5cdFx0XHRcdC8vIEFkZCBub2RlcyBkaXJlY3RseVxuXHRcdFx0XHRpZiAoIGpRdWVyeS50eXBlKCBlbGVtICkgPT09IFwib2JqZWN0XCIgKSB7XG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogUXRXZWJLaXQsIFBoYW50b21KU1xuXHRcdFx0XHRcdC8vIHB1c2guYXBwbHkoXywgYXJyYXlsaWtlKSB0aHJvd3Mgb24gYW5jaWVudCBXZWJLaXRcblx0XHRcdFx0XHRqUXVlcnkubWVyZ2UoIG5vZGVzLCBlbGVtLm5vZGVUeXBlID8gWyBlbGVtIF0gOiBlbGVtICk7XG5cblx0XHRcdFx0Ly8gQ29udmVydCBub24taHRtbCBpbnRvIGEgdGV4dCBub2RlXG5cdFx0XHRcdH0gZWxzZSBpZiAoICFyaHRtbC50ZXN0KCBlbGVtICkgKSB7XG5cdFx0XHRcdFx0bm9kZXMucHVzaCggY29udGV4dC5jcmVhdGVUZXh0Tm9kZSggZWxlbSApICk7XG5cblx0XHRcdFx0Ly8gQ29udmVydCBodG1sIGludG8gRE9NIG5vZGVzXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dG1wID0gdG1wIHx8IGZyYWdtZW50LmFwcGVuZENoaWxkKCBjb250ZXh0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikgKTtcblxuXHRcdFx0XHRcdC8vIERlc2VyaWFsaXplIGEgc3RhbmRhcmQgcmVwcmVzZW50YXRpb25cblx0XHRcdFx0XHR0YWcgPSAoIHJ0YWdOYW1lLmV4ZWMoIGVsZW0gKSB8fCBbIFwiXCIsIFwiXCIgXSApWyAxIF0udG9Mb3dlckNhc2UoKTtcblx0XHRcdFx0XHR3cmFwID0gd3JhcE1hcFsgdGFnIF0gfHwgd3JhcE1hcC5fZGVmYXVsdDtcblx0XHRcdFx0XHR0bXAuaW5uZXJIVE1MID0gd3JhcFsgMSBdICsgZWxlbS5yZXBsYWNlKCByeGh0bWxUYWcsIFwiPCQxPjwvJDI+XCIgKSArIHdyYXBbIDIgXTtcblxuXHRcdFx0XHRcdC8vIERlc2NlbmQgdGhyb3VnaCB3cmFwcGVycyB0byB0aGUgcmlnaHQgY29udGVudFxuXHRcdFx0XHRcdGogPSB3cmFwWyAwIF07XG5cdFx0XHRcdFx0d2hpbGUgKCBqLS0gKSB7XG5cdFx0XHRcdFx0XHR0bXAgPSB0bXAubGFzdENoaWxkO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIFN1cHBvcnQ6IFF0V2ViS2l0LCBQaGFudG9tSlNcblx0XHRcdFx0XHQvLyBwdXNoLmFwcGx5KF8sIGFycmF5bGlrZSkgdGhyb3dzIG9uIGFuY2llbnQgV2ViS2l0XG5cdFx0XHRcdFx0alF1ZXJ5Lm1lcmdlKCBub2RlcywgdG1wLmNoaWxkTm9kZXMgKTtcblxuXHRcdFx0XHRcdC8vIFJlbWVtYmVyIHRoZSB0b3AtbGV2ZWwgY29udGFpbmVyXG5cdFx0XHRcdFx0dG1wID0gZnJhZ21lbnQuZmlyc3RDaGlsZDtcblxuXHRcdFx0XHRcdC8vIEVuc3VyZSB0aGUgY3JlYXRlZCBub2RlcyBhcmUgb3JwaGFuZWQgKCMxMjM5Milcblx0XHRcdFx0XHR0bXAudGV4dENvbnRlbnQgPSBcIlwiO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gUmVtb3ZlIHdyYXBwZXIgZnJvbSBmcmFnbWVudFxuXHRcdGZyYWdtZW50LnRleHRDb250ZW50ID0gXCJcIjtcblxuXHRcdGkgPSAwO1xuXHRcdHdoaWxlICggKGVsZW0gPSBub2Rlc1sgaSsrIF0pICkge1xuXG5cdFx0XHQvLyAjNDA4NyAtIElmIG9yaWdpbiBhbmQgZGVzdGluYXRpb24gZWxlbWVudHMgYXJlIHRoZSBzYW1lLCBhbmQgdGhpcyBpc1xuXHRcdFx0Ly8gdGhhdCBlbGVtZW50LCBkbyBub3QgZG8gYW55dGhpbmdcblx0XHRcdGlmICggc2VsZWN0aW9uICYmIGpRdWVyeS5pbkFycmF5KCBlbGVtLCBzZWxlY3Rpb24gKSAhPT0gLTEgKSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRjb250YWlucyA9IGpRdWVyeS5jb250YWlucyggZWxlbS5vd25lckRvY3VtZW50LCBlbGVtICk7XG5cblx0XHRcdC8vIEFwcGVuZCB0byBmcmFnbWVudFxuXHRcdFx0dG1wID0gZ2V0QWxsKCBmcmFnbWVudC5hcHBlbmRDaGlsZCggZWxlbSApLCBcInNjcmlwdFwiICk7XG5cblx0XHRcdC8vIFByZXNlcnZlIHNjcmlwdCBldmFsdWF0aW9uIGhpc3Rvcnlcblx0XHRcdGlmICggY29udGFpbnMgKSB7XG5cdFx0XHRcdHNldEdsb2JhbEV2YWwoIHRtcCApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDYXB0dXJlIGV4ZWN1dGFibGVzXG5cdFx0XHRpZiAoIHNjcmlwdHMgKSB7XG5cdFx0XHRcdGogPSAwO1xuXHRcdFx0XHR3aGlsZSAoIChlbGVtID0gdG1wWyBqKysgXSkgKSB7XG5cdFx0XHRcdFx0aWYgKCByc2NyaXB0VHlwZS50ZXN0KCBlbGVtLnR5cGUgfHwgXCJcIiApICkge1xuXHRcdFx0XHRcdFx0c2NyaXB0cy5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGZyYWdtZW50O1xuXHR9LFxuXG5cdGNsZWFuRGF0YTogZnVuY3Rpb24oIGVsZW1zICkge1xuXHRcdHZhciBkYXRhLCBlbGVtLCB0eXBlLCBrZXksXG5cdFx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWwsXG5cdFx0XHRpID0gMDtcblxuXHRcdGZvciAoIDsgKGVsZW0gPSBlbGVtc1sgaSBdKSAhPT0gdW5kZWZpbmVkOyBpKysgKSB7XG5cdFx0XHRpZiAoIGpRdWVyeS5hY2NlcHREYXRhKCBlbGVtICkgKSB7XG5cdFx0XHRcdGtleSA9IGVsZW1bIGRhdGFfcHJpdi5leHBhbmRvIF07XG5cblx0XHRcdFx0aWYgKCBrZXkgJiYgKGRhdGEgPSBkYXRhX3ByaXYuY2FjaGVbIGtleSBdKSApIHtcblx0XHRcdFx0XHRpZiAoIGRhdGEuZXZlbnRzICkge1xuXHRcdFx0XHRcdFx0Zm9yICggdHlwZSBpbiBkYXRhLmV2ZW50cyApIHtcblx0XHRcdFx0XHRcdFx0aWYgKCBzcGVjaWFsWyB0eXBlIF0gKSB7XG5cdFx0XHRcdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LnJlbW92ZSggZWxlbSwgdHlwZSApO1xuXG5cdFx0XHRcdFx0XHRcdC8vIFRoaXMgaXMgYSBzaG9ydGN1dCB0byBhdm9pZCBqUXVlcnkuZXZlbnQucmVtb3ZlJ3Mgb3ZlcmhlYWRcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkucmVtb3ZlRXZlbnQoIGVsZW0sIHR5cGUsIGRhdGEuaGFuZGxlICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKCBkYXRhX3ByaXYuY2FjaGVbIGtleSBdICkge1xuXHRcdFx0XHRcdFx0Ly8gRGlzY2FyZCBhbnkgcmVtYWluaW5nIGBwcml2YXRlYCBkYXRhXG5cdFx0XHRcdFx0XHRkZWxldGUgZGF0YV9wcml2LmNhY2hlWyBrZXkgXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC8vIERpc2NhcmQgYW55IHJlbWFpbmluZyBgdXNlcmAgZGF0YVxuXHRcdFx0ZGVsZXRlIGRhdGFfdXNlci5jYWNoZVsgZWxlbVsgZGF0YV91c2VyLmV4cGFuZG8gXSBdO1xuXHRcdH1cblx0fVxufSk7XG5cbmpRdWVyeS5mbi5leHRlbmQoe1xuXHR0ZXh0OiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdFx0cmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgP1xuXHRcdFx0XHRqUXVlcnkudGV4dCggdGhpcyApIDpcblx0XHRcdFx0dGhpcy5lbXB0eSgpLmVhY2goZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0aWYgKCB0aGlzLm5vZGVUeXBlID09PSAxIHx8IHRoaXMubm9kZVR5cGUgPT09IDExIHx8IHRoaXMubm9kZVR5cGUgPT09IDkgKSB7XG5cdFx0XHRcdFx0XHR0aGlzLnRleHRDb250ZW50ID0gdmFsdWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHR9LCBudWxsLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCApO1xuXHR9LFxuXG5cdGFwcGVuZDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMuZG9tTWFuaXAoIGFyZ3VtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRpZiAoIHRoaXMubm9kZVR5cGUgPT09IDEgfHwgdGhpcy5ub2RlVHlwZSA9PT0gMTEgfHwgdGhpcy5ub2RlVHlwZSA9PT0gOSApIHtcblx0XHRcdFx0dmFyIHRhcmdldCA9IG1hbmlwdWxhdGlvblRhcmdldCggdGhpcywgZWxlbSApO1xuXHRcdFx0XHR0YXJnZXQuYXBwZW5kQ2hpbGQoIGVsZW0gKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fSxcblxuXHRwcmVwZW5kOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5kb21NYW5pcCggYXJndW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdGlmICggdGhpcy5ub2RlVHlwZSA9PT0gMSB8fCB0aGlzLm5vZGVUeXBlID09PSAxMSB8fCB0aGlzLm5vZGVUeXBlID09PSA5ICkge1xuXHRcdFx0XHR2YXIgdGFyZ2V0ID0gbWFuaXB1bGF0aW9uVGFyZ2V0KCB0aGlzLCBlbGVtICk7XG5cdFx0XHRcdHRhcmdldC5pbnNlcnRCZWZvcmUoIGVsZW0sIHRhcmdldC5maXJzdENoaWxkICk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0sXG5cblx0YmVmb3JlOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5kb21NYW5pcCggYXJndW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdGlmICggdGhpcy5wYXJlbnROb2RlICkge1xuXHRcdFx0XHR0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKCBlbGVtLCB0aGlzICk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0sXG5cblx0YWZ0ZXI6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLmRvbU1hbmlwKCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0aWYgKCB0aGlzLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdHRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoIGVsZW0sIHRoaXMubmV4dFNpYmxpbmcgKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fSxcblxuXHRyZW1vdmU6IGZ1bmN0aW9uKCBzZWxlY3Rvciwga2VlcERhdGEgLyogSW50ZXJuYWwgVXNlIE9ubHkgKi8gKSB7XG5cdFx0dmFyIGVsZW0sXG5cdFx0XHRlbGVtcyA9IHNlbGVjdG9yID8galF1ZXJ5LmZpbHRlciggc2VsZWN0b3IsIHRoaXMgKSA6IHRoaXMsXG5cdFx0XHRpID0gMDtcblxuXHRcdGZvciAoIDsgKGVsZW0gPSBlbGVtc1tpXSkgIT0gbnVsbDsgaSsrICkge1xuXHRcdFx0aWYgKCAha2VlcERhdGEgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRcdFx0alF1ZXJ5LmNsZWFuRGF0YSggZ2V0QWxsKCBlbGVtICkgKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBlbGVtLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdGlmICgga2VlcERhdGEgJiYgalF1ZXJ5LmNvbnRhaW5zKCBlbGVtLm93bmVyRG9jdW1lbnQsIGVsZW0gKSApIHtcblx0XHRcdFx0XHRzZXRHbG9iYWxFdmFsKCBnZXRBbGwoIGVsZW0sIFwic2NyaXB0XCIgKSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsZW0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggZWxlbSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzO1xuXHR9LFxuXG5cdGVtcHR5OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgZWxlbSxcblx0XHRcdGkgPSAwO1xuXG5cdFx0Zm9yICggOyAoZWxlbSA9IHRoaXNbaV0pICE9IG51bGw7IGkrKyApIHtcblx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblxuXHRcdFx0XHQvLyBQcmV2ZW50IG1lbW9yeSBsZWFrc1xuXHRcdFx0XHRqUXVlcnkuY2xlYW5EYXRhKCBnZXRBbGwoIGVsZW0sIGZhbHNlICkgKTtcblxuXHRcdFx0XHQvLyBSZW1vdmUgYW55IHJlbWFpbmluZyBub2Rlc1xuXHRcdFx0XHRlbGVtLnRleHRDb250ZW50ID0gXCJcIjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcztcblx0fSxcblxuXHRjbG9uZTogZnVuY3Rpb24oIGRhdGFBbmRFdmVudHMsIGRlZXBEYXRhQW5kRXZlbnRzICkge1xuXHRcdGRhdGFBbmRFdmVudHMgPSBkYXRhQW5kRXZlbnRzID09IG51bGwgPyBmYWxzZSA6IGRhdGFBbmRFdmVudHM7XG5cdFx0ZGVlcERhdGFBbmRFdmVudHMgPSBkZWVwRGF0YUFuZEV2ZW50cyA9PSBudWxsID8gZGF0YUFuZEV2ZW50cyA6IGRlZXBEYXRhQW5kRXZlbnRzO1xuXG5cdFx0cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5jbG9uZSggdGhpcywgZGF0YUFuZEV2ZW50cywgZGVlcERhdGFBbmRFdmVudHMgKTtcblx0XHR9KTtcblx0fSxcblxuXHRodG1sOiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdFx0dmFyIGVsZW0gPSB0aGlzWyAwIF0gfHwge30sXG5cdFx0XHRcdGkgPSAwLFxuXHRcdFx0XHRsID0gdGhpcy5sZW5ndGg7XG5cblx0XHRcdGlmICggdmFsdWUgPT09IHVuZGVmaW5lZCAmJiBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXHRcdFx0XHRyZXR1cm4gZWxlbS5pbm5lckhUTUw7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNlZSBpZiB3ZSBjYW4gdGFrZSBhIHNob3J0Y3V0IGFuZCBqdXN0IHVzZSBpbm5lckhUTUxcblx0XHRcdGlmICggdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmICFybm9Jbm5lcmh0bWwudGVzdCggdmFsdWUgKSAmJlxuXHRcdFx0XHQhd3JhcE1hcFsgKCBydGFnTmFtZS5leGVjKCB2YWx1ZSApIHx8IFsgXCJcIiwgXCJcIiBdIClbIDEgXS50b0xvd2VyQ2FzZSgpIF0gKSB7XG5cblx0XHRcdFx0dmFsdWUgPSB2YWx1ZS5yZXBsYWNlKCByeGh0bWxUYWcsIFwiPCQxPjwvJDI+XCIgKTtcblxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGZvciAoIDsgaSA8IGw7IGkrKyApIHtcblx0XHRcdFx0XHRcdGVsZW0gPSB0aGlzWyBpIF0gfHwge307XG5cblx0XHRcdFx0XHRcdC8vIFJlbW92ZSBlbGVtZW50IG5vZGVzIGFuZCBwcmV2ZW50IG1lbW9yeSBsZWFrc1xuXHRcdFx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXHRcdFx0XHRcdFx0XHRqUXVlcnkuY2xlYW5EYXRhKCBnZXRBbGwoIGVsZW0sIGZhbHNlICkgKTtcblx0XHRcdFx0XHRcdFx0ZWxlbS5pbm5lckhUTUwgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRlbGVtID0gMDtcblxuXHRcdFx0XHQvLyBJZiB1c2luZyBpbm5lckhUTUwgdGhyb3dzIGFuIGV4Y2VwdGlvbiwgdXNlIHRoZSBmYWxsYmFjayBtZXRob2Rcblx0XHRcdFx0fSBjYXRjaCggZSApIHt9XG5cdFx0XHR9XG5cblx0XHRcdGlmICggZWxlbSApIHtcblx0XHRcdFx0dGhpcy5lbXB0eSgpLmFwcGVuZCggdmFsdWUgKTtcblx0XHRcdH1cblx0XHR9LCBudWxsLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCApO1xuXHR9LFxuXG5cdHJlcGxhY2VXaXRoOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgYXJnID0gYXJndW1lbnRzWyAwIF07XG5cblx0XHQvLyBNYWtlIHRoZSBjaGFuZ2VzLCByZXBsYWNpbmcgZWFjaCBjb250ZXh0IGVsZW1lbnQgd2l0aCB0aGUgbmV3IGNvbnRlbnRcblx0XHR0aGlzLmRvbU1hbmlwKCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0YXJnID0gdGhpcy5wYXJlbnROb2RlO1xuXG5cdFx0XHRqUXVlcnkuY2xlYW5EYXRhKCBnZXRBbGwoIHRoaXMgKSApO1xuXG5cdFx0XHRpZiAoIGFyZyApIHtcblx0XHRcdFx0YXJnLnJlcGxhY2VDaGlsZCggZWxlbSwgdGhpcyApO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0Ly8gRm9yY2UgcmVtb3ZhbCBpZiB0aGVyZSB3YXMgbm8gbmV3IGNvbnRlbnQgKGUuZy4sIGZyb20gZW1wdHkgYXJndW1lbnRzKVxuXHRcdHJldHVybiBhcmcgJiYgKGFyZy5sZW5ndGggfHwgYXJnLm5vZGVUeXBlKSA/IHRoaXMgOiB0aGlzLnJlbW92ZSgpO1xuXHR9LFxuXG5cdGRldGFjaDogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHJldHVybiB0aGlzLnJlbW92ZSggc2VsZWN0b3IsIHRydWUgKTtcblx0fSxcblxuXHRkb21NYW5pcDogZnVuY3Rpb24oIGFyZ3MsIGNhbGxiYWNrICkge1xuXG5cdFx0Ly8gRmxhdHRlbiBhbnkgbmVzdGVkIGFycmF5c1xuXHRcdGFyZ3MgPSBjb25jYXQuYXBwbHkoIFtdLCBhcmdzICk7XG5cblx0XHR2YXIgZnJhZ21lbnQsIGZpcnN0LCBzY3JpcHRzLCBoYXNTY3JpcHRzLCBub2RlLCBkb2MsXG5cdFx0XHRpID0gMCxcblx0XHRcdGwgPSB0aGlzLmxlbmd0aCxcblx0XHRcdHNldCA9IHRoaXMsXG5cdFx0XHRpTm9DbG9uZSA9IGwgLSAxLFxuXHRcdFx0dmFsdWUgPSBhcmdzWyAwIF0sXG5cdFx0XHRpc0Z1bmN0aW9uID0galF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICk7XG5cblx0XHQvLyBXZSBjYW4ndCBjbG9uZU5vZGUgZnJhZ21lbnRzIHRoYXQgY29udGFpbiBjaGVja2VkLCBpbiBXZWJLaXRcblx0XHRpZiAoIGlzRnVuY3Rpb24gfHxcblx0XHRcdFx0KCBsID4gMSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiZcblx0XHRcdFx0XHQhc3VwcG9ydC5jaGVja0Nsb25lICYmIHJjaGVja2VkLnRlc3QoIHZhbHVlICkgKSApIHtcblx0XHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGluZGV4ICkge1xuXHRcdFx0XHR2YXIgc2VsZiA9IHNldC5lcSggaW5kZXggKTtcblx0XHRcdFx0aWYgKCBpc0Z1bmN0aW9uICkge1xuXHRcdFx0XHRcdGFyZ3NbIDAgXSA9IHZhbHVlLmNhbGwoIHRoaXMsIGluZGV4LCBzZWxmLmh0bWwoKSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHNlbGYuZG9tTWFuaXAoIGFyZ3MsIGNhbGxiYWNrICk7XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRpZiAoIGwgKSB7XG5cdFx0XHRmcmFnbWVudCA9IGpRdWVyeS5idWlsZEZyYWdtZW50KCBhcmdzLCB0aGlzWyAwIF0ub3duZXJEb2N1bWVudCwgZmFsc2UsIHRoaXMgKTtcblx0XHRcdGZpcnN0ID0gZnJhZ21lbnQuZmlyc3RDaGlsZDtcblxuXHRcdFx0aWYgKCBmcmFnbWVudC5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMSApIHtcblx0XHRcdFx0ZnJhZ21lbnQgPSBmaXJzdDtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBmaXJzdCApIHtcblx0XHRcdFx0c2NyaXB0cyA9IGpRdWVyeS5tYXAoIGdldEFsbCggZnJhZ21lbnQsIFwic2NyaXB0XCIgKSwgZGlzYWJsZVNjcmlwdCApO1xuXHRcdFx0XHRoYXNTY3JpcHRzID0gc2NyaXB0cy5sZW5ndGg7XG5cblx0XHRcdFx0Ly8gVXNlIHRoZSBvcmlnaW5hbCBmcmFnbWVudCBmb3IgdGhlIGxhc3QgaXRlbSBpbnN0ZWFkIG9mIHRoZSBmaXJzdCBiZWNhdXNlIGl0IGNhbiBlbmQgdXBcblx0XHRcdFx0Ly8gYmVpbmcgZW1wdGllZCBpbmNvcnJlY3RseSBpbiBjZXJ0YWluIHNpdHVhdGlvbnMgKCM4MDcwKS5cblx0XHRcdFx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRcdG5vZGUgPSBmcmFnbWVudDtcblxuXHRcdFx0XHRcdGlmICggaSAhPT0gaU5vQ2xvbmUgKSB7XG5cdFx0XHRcdFx0XHRub2RlID0galF1ZXJ5LmNsb25lKCBub2RlLCB0cnVlLCB0cnVlICk7XG5cblx0XHRcdFx0XHRcdC8vIEtlZXAgcmVmZXJlbmNlcyB0byBjbG9uZWQgc2NyaXB0cyBmb3IgbGF0ZXIgcmVzdG9yYXRpb25cblx0XHRcdFx0XHRcdGlmICggaGFzU2NyaXB0cyApIHtcblx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogUXRXZWJLaXRcblx0XHRcdFx0XHRcdFx0Ly8galF1ZXJ5Lm1lcmdlIGJlY2F1c2UgcHVzaC5hcHBseShfLCBhcnJheWxpa2UpIHRocm93c1xuXHRcdFx0XHRcdFx0XHRqUXVlcnkubWVyZ2UoIHNjcmlwdHMsIGdldEFsbCggbm9kZSwgXCJzY3JpcHRcIiApICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Y2FsbGJhY2suY2FsbCggdGhpc1sgaSBdLCBub2RlLCBpICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoIGhhc1NjcmlwdHMgKSB7XG5cdFx0XHRcdFx0ZG9jID0gc2NyaXB0c1sgc2NyaXB0cy5sZW5ndGggLSAxIF0ub3duZXJEb2N1bWVudDtcblxuXHRcdFx0XHRcdC8vIFJlZW5hYmxlIHNjcmlwdHNcblx0XHRcdFx0XHRqUXVlcnkubWFwKCBzY3JpcHRzLCByZXN0b3JlU2NyaXB0ICk7XG5cblx0XHRcdFx0XHQvLyBFdmFsdWF0ZSBleGVjdXRhYmxlIHNjcmlwdHMgb24gZmlyc3QgZG9jdW1lbnQgaW5zZXJ0aW9uXG5cdFx0XHRcdFx0Zm9yICggaSA9IDA7IGkgPCBoYXNTY3JpcHRzOyBpKysgKSB7XG5cdFx0XHRcdFx0XHRub2RlID0gc2NyaXB0c1sgaSBdO1xuXHRcdFx0XHRcdFx0aWYgKCByc2NyaXB0VHlwZS50ZXN0KCBub2RlLnR5cGUgfHwgXCJcIiApICYmXG5cdFx0XHRcdFx0XHRcdCFkYXRhX3ByaXYuYWNjZXNzKCBub2RlLCBcImdsb2JhbEV2YWxcIiApICYmIGpRdWVyeS5jb250YWlucyggZG9jLCBub2RlICkgKSB7XG5cblx0XHRcdFx0XHRcdFx0aWYgKCBub2RlLnNyYyApIHtcblx0XHRcdFx0XHRcdFx0XHQvLyBPcHRpb25hbCBBSkFYIGRlcGVuZGVuY3ksIGJ1dCB3b24ndCBydW4gc2NyaXB0cyBpZiBub3QgcHJlc2VudFxuXHRcdFx0XHRcdFx0XHRcdGlmICggalF1ZXJ5Ll9ldmFsVXJsICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0alF1ZXJ5Ll9ldmFsVXJsKCBub2RlLnNyYyApO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkuZ2xvYmFsRXZhbCggbm9kZS50ZXh0Q29udGVudC5yZXBsYWNlKCByY2xlYW5TY3JpcHQsIFwiXCIgKSApO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cbn0pO1xuXG5qUXVlcnkuZWFjaCh7XG5cdGFwcGVuZFRvOiBcImFwcGVuZFwiLFxuXHRwcmVwZW5kVG86IFwicHJlcGVuZFwiLFxuXHRpbnNlcnRCZWZvcmU6IFwiYmVmb3JlXCIsXG5cdGluc2VydEFmdGVyOiBcImFmdGVyXCIsXG5cdHJlcGxhY2VBbGw6IFwicmVwbGFjZVdpdGhcIlxufSwgZnVuY3Rpb24oIG5hbWUsIG9yaWdpbmFsICkge1xuXHRqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHR2YXIgZWxlbXMsXG5cdFx0XHRyZXQgPSBbXSxcblx0XHRcdGluc2VydCA9IGpRdWVyeSggc2VsZWN0b3IgKSxcblx0XHRcdGxhc3QgPSBpbnNlcnQubGVuZ3RoIC0gMSxcblx0XHRcdGkgPSAwO1xuXG5cdFx0Zm9yICggOyBpIDw9IGxhc3Q7IGkrKyApIHtcblx0XHRcdGVsZW1zID0gaSA9PT0gbGFzdCA/IHRoaXMgOiB0aGlzLmNsb25lKCB0cnVlICk7XG5cdFx0XHRqUXVlcnkoIGluc2VydFsgaSBdIClbIG9yaWdpbmFsIF0oIGVsZW1zICk7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IFF0V2ViS2l0XG5cdFx0XHQvLyAuZ2V0KCkgYmVjYXVzZSBwdXNoLmFwcGx5KF8sIGFycmF5bGlrZSkgdGhyb3dzXG5cdFx0XHRwdXNoLmFwcGx5KCByZXQsIGVsZW1zLmdldCgpICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCByZXQgKTtcblx0fTtcbn0pO1xuXG5cbnZhciBpZnJhbWUsXG5cdGVsZW1kaXNwbGF5ID0ge307XG5cbi8qKlxuICogUmV0cmlldmUgdGhlIGFjdHVhbCBkaXNwbGF5IG9mIGEgZWxlbWVudFxuICogQHBhcmFtIHtTdHJpbmd9IG5hbWUgbm9kZU5hbWUgb2YgdGhlIGVsZW1lbnRcbiAqIEBwYXJhbSB7T2JqZWN0fSBkb2MgRG9jdW1lbnQgb2JqZWN0XG4gKi9cbi8vIENhbGxlZCBvbmx5IGZyb20gd2l0aGluIGRlZmF1bHREaXNwbGF5XG5mdW5jdGlvbiBhY3R1YWxEaXNwbGF5KCBuYW1lLCBkb2MgKSB7XG5cdHZhciBzdHlsZSxcblx0XHRlbGVtID0galF1ZXJ5KCBkb2MuY3JlYXRlRWxlbWVudCggbmFtZSApICkuYXBwZW5kVG8oIGRvYy5ib2R5ICksXG5cblx0XHQvLyBnZXREZWZhdWx0Q29tcHV0ZWRTdHlsZSBtaWdodCBiZSByZWxpYWJseSB1c2VkIG9ubHkgb24gYXR0YWNoZWQgZWxlbWVudFxuXHRcdGRpc3BsYXkgPSB3aW5kb3cuZ2V0RGVmYXVsdENvbXB1dGVkU3R5bGUgJiYgKCBzdHlsZSA9IHdpbmRvdy5nZXREZWZhdWx0Q29tcHV0ZWRTdHlsZSggZWxlbVsgMCBdICkgKSA/XG5cblx0XHRcdC8vIFVzZSBvZiB0aGlzIG1ldGhvZCBpcyBhIHRlbXBvcmFyeSBmaXggKG1vcmUgbGlrZSBvcHRpbWl6YXRpb24pIHVudGlsIHNvbWV0aGluZyBiZXR0ZXIgY29tZXMgYWxvbmcsXG5cdFx0XHQvLyBzaW5jZSBpdCB3YXMgcmVtb3ZlZCBmcm9tIHNwZWNpZmljYXRpb24gYW5kIHN1cHBvcnRlZCBvbmx5IGluIEZGXG5cdFx0XHRzdHlsZS5kaXNwbGF5IDogalF1ZXJ5LmNzcyggZWxlbVsgMCBdLCBcImRpc3BsYXlcIiApO1xuXG5cdC8vIFdlIGRvbid0IGhhdmUgYW55IGRhdGEgc3RvcmVkIG9uIHRoZSBlbGVtZW50LFxuXHQvLyBzbyB1c2UgXCJkZXRhY2hcIiBtZXRob2QgYXMgZmFzdCB3YXkgdG8gZ2V0IHJpZCBvZiB0aGUgZWxlbWVudFxuXHRlbGVtLmRldGFjaCgpO1xuXG5cdHJldHVybiBkaXNwbGF5O1xufVxuXG4vKipcbiAqIFRyeSB0byBkZXRlcm1pbmUgdGhlIGRlZmF1bHQgZGlzcGxheSB2YWx1ZSBvZiBhbiBlbGVtZW50XG4gKiBAcGFyYW0ge1N0cmluZ30gbm9kZU5hbWVcbiAqL1xuZnVuY3Rpb24gZGVmYXVsdERpc3BsYXkoIG5vZGVOYW1lICkge1xuXHR2YXIgZG9jID0gZG9jdW1lbnQsXG5cdFx0ZGlzcGxheSA9IGVsZW1kaXNwbGF5WyBub2RlTmFtZSBdO1xuXG5cdGlmICggIWRpc3BsYXkgKSB7XG5cdFx0ZGlzcGxheSA9IGFjdHVhbERpc3BsYXkoIG5vZGVOYW1lLCBkb2MgKTtcblxuXHRcdC8vIElmIHRoZSBzaW1wbGUgd2F5IGZhaWxzLCByZWFkIGZyb20gaW5zaWRlIGFuIGlmcmFtZVxuXHRcdGlmICggZGlzcGxheSA9PT0gXCJub25lXCIgfHwgIWRpc3BsYXkgKSB7XG5cblx0XHRcdC8vIFVzZSB0aGUgYWxyZWFkeS1jcmVhdGVkIGlmcmFtZSBpZiBwb3NzaWJsZVxuXHRcdFx0aWZyYW1lID0gKGlmcmFtZSB8fCBqUXVlcnkoIFwiPGlmcmFtZSBmcmFtZWJvcmRlcj0nMCcgd2lkdGg9JzAnIGhlaWdodD0nMCcvPlwiICkpLmFwcGVuZFRvKCBkb2MuZG9jdW1lbnRFbGVtZW50ICk7XG5cblx0XHRcdC8vIEFsd2F5cyB3cml0ZSBhIG5ldyBIVE1MIHNrZWxldG9uIHNvIFdlYmtpdCBhbmQgRmlyZWZveCBkb24ndCBjaG9rZSBvbiByZXVzZVxuXHRcdFx0ZG9jID0gaWZyYW1lWyAwIF0uY29udGVudERvY3VtZW50O1xuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRVxuXHRcdFx0ZG9jLndyaXRlKCk7XG5cdFx0XHRkb2MuY2xvc2UoKTtcblxuXHRcdFx0ZGlzcGxheSA9IGFjdHVhbERpc3BsYXkoIG5vZGVOYW1lLCBkb2MgKTtcblx0XHRcdGlmcmFtZS5kZXRhY2goKTtcblx0XHR9XG5cblx0XHQvLyBTdG9yZSB0aGUgY29ycmVjdCBkZWZhdWx0IGRpc3BsYXlcblx0XHRlbGVtZGlzcGxheVsgbm9kZU5hbWUgXSA9IGRpc3BsYXk7XG5cdH1cblxuXHRyZXR1cm4gZGlzcGxheTtcbn1cbnZhciBybWFyZ2luID0gKC9ebWFyZ2luLyk7XG5cbnZhciBybnVtbm9ucHggPSBuZXcgUmVnRXhwKCBcIl4oXCIgKyBwbnVtICsgXCIpKD8hcHgpW2EteiVdKyRcIiwgXCJpXCIgKTtcblxudmFyIGdldFN0eWxlcyA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdC8vIFN1cHBvcnQ6IElFPD0xMSssIEZpcmVmb3g8PTMwKyAoIzE1MDk4LCAjMTQxNTApXG5cdFx0Ly8gSUUgdGhyb3dzIG9uIGVsZW1lbnRzIGNyZWF0ZWQgaW4gcG9wdXBzXG5cdFx0Ly8gRkYgbWVhbndoaWxlIHRocm93cyBvbiBmcmFtZSBlbGVtZW50cyB0aHJvdWdoIFwiZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZVwiXG5cdFx0aWYgKCBlbGVtLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcub3BlbmVyICkge1xuXHRcdFx0cmV0dXJuIGVsZW0ub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKCBlbGVtLCBudWxsICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKCBlbGVtLCBudWxsICk7XG5cdH07XG5cblxuXG5mdW5jdGlvbiBjdXJDU1MoIGVsZW0sIG5hbWUsIGNvbXB1dGVkICkge1xuXHR2YXIgd2lkdGgsIG1pbldpZHRoLCBtYXhXaWR0aCwgcmV0LFxuXHRcdHN0eWxlID0gZWxlbS5zdHlsZTtcblxuXHRjb21wdXRlZCA9IGNvbXB1dGVkIHx8IGdldFN0eWxlcyggZWxlbSApO1xuXG5cdC8vIFN1cHBvcnQ6IElFOVxuXHQvLyBnZXRQcm9wZXJ0eVZhbHVlIGlzIG9ubHkgbmVlZGVkIGZvciAuY3NzKCdmaWx0ZXInKSAoIzEyNTM3KVxuXHRpZiAoIGNvbXB1dGVkICkge1xuXHRcdHJldCA9IGNvbXB1dGVkLmdldFByb3BlcnR5VmFsdWUoIG5hbWUgKSB8fCBjb21wdXRlZFsgbmFtZSBdO1xuXHR9XG5cblx0aWYgKCBjb21wdXRlZCApIHtcblxuXHRcdGlmICggcmV0ID09PSBcIlwiICYmICFqUXVlcnkuY29udGFpbnMoIGVsZW0ub3duZXJEb2N1bWVudCwgZWxlbSApICkge1xuXHRcdFx0cmV0ID0galF1ZXJ5LnN0eWxlKCBlbGVtLCBuYW1lICk7XG5cdFx0fVxuXG5cdFx0Ly8gU3VwcG9ydDogaU9TIDwgNlxuXHRcdC8vIEEgdHJpYnV0ZSB0byB0aGUgXCJhd2Vzb21lIGhhY2sgYnkgRGVhbiBFZHdhcmRzXCJcblx0XHQvLyBpT1MgPCA2IChhdCBsZWFzdCkgcmV0dXJucyBwZXJjZW50YWdlIGZvciBhIGxhcmdlciBzZXQgb2YgdmFsdWVzLCBidXQgd2lkdGggc2VlbXMgdG8gYmUgcmVsaWFibHkgcGl4ZWxzXG5cdFx0Ly8gdGhpcyBpcyBhZ2FpbnN0IHRoZSBDU1NPTSBkcmFmdCBzcGVjOiBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3NvbS8jcmVzb2x2ZWQtdmFsdWVzXG5cdFx0aWYgKCBybnVtbm9ucHgudGVzdCggcmV0ICkgJiYgcm1hcmdpbi50ZXN0KCBuYW1lICkgKSB7XG5cblx0XHRcdC8vIFJlbWVtYmVyIHRoZSBvcmlnaW5hbCB2YWx1ZXNcblx0XHRcdHdpZHRoID0gc3R5bGUud2lkdGg7XG5cdFx0XHRtaW5XaWR0aCA9IHN0eWxlLm1pbldpZHRoO1xuXHRcdFx0bWF4V2lkdGggPSBzdHlsZS5tYXhXaWR0aDtcblxuXHRcdFx0Ly8gUHV0IGluIHRoZSBuZXcgdmFsdWVzIHRvIGdldCBhIGNvbXB1dGVkIHZhbHVlIG91dFxuXHRcdFx0c3R5bGUubWluV2lkdGggPSBzdHlsZS5tYXhXaWR0aCA9IHN0eWxlLndpZHRoID0gcmV0O1xuXHRcdFx0cmV0ID0gY29tcHV0ZWQud2lkdGg7XG5cblx0XHRcdC8vIFJldmVydCB0aGUgY2hhbmdlZCB2YWx1ZXNcblx0XHRcdHN0eWxlLndpZHRoID0gd2lkdGg7XG5cdFx0XHRzdHlsZS5taW5XaWR0aCA9IG1pbldpZHRoO1xuXHRcdFx0c3R5bGUubWF4V2lkdGggPSBtYXhXaWR0aDtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gcmV0ICE9PSB1bmRlZmluZWQgP1xuXHRcdC8vIFN1cHBvcnQ6IElFXG5cdFx0Ly8gSUUgcmV0dXJucyB6SW5kZXggdmFsdWUgYXMgYW4gaW50ZWdlci5cblx0XHRyZXQgKyBcIlwiIDpcblx0XHRyZXQ7XG59XG5cblxuZnVuY3Rpb24gYWRkR2V0SG9va0lmKCBjb25kaXRpb25GbiwgaG9va0ZuICkge1xuXHQvLyBEZWZpbmUgdGhlIGhvb2ssIHdlJ2xsIGNoZWNrIG9uIHRoZSBmaXJzdCBydW4gaWYgaXQncyByZWFsbHkgbmVlZGVkLlxuXHRyZXR1cm4ge1xuXHRcdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0XHRpZiAoIGNvbmRpdGlvbkZuKCkgKSB7XG5cdFx0XHRcdC8vIEhvb2sgbm90IG5lZWRlZCAob3IgaXQncyBub3QgcG9zc2libGUgdG8gdXNlIGl0IGR1ZVxuXHRcdFx0XHQvLyB0byBtaXNzaW5nIGRlcGVuZGVuY3kpLCByZW1vdmUgaXQuXG5cdFx0XHRcdGRlbGV0ZSB0aGlzLmdldDtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBIb29rIG5lZWRlZDsgcmVkZWZpbmUgaXQgc28gdGhhdCB0aGUgc3VwcG9ydCB0ZXN0IGlzIG5vdCBleGVjdXRlZCBhZ2Fpbi5cblx0XHRcdHJldHVybiAodGhpcy5nZXQgPSBob29rRm4pLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTtcblx0XHR9XG5cdH07XG59XG5cblxuKGZ1bmN0aW9uKCkge1xuXHR2YXIgcGl4ZWxQb3NpdGlvblZhbCwgYm94U2l6aW5nUmVsaWFibGVWYWwsXG5cdFx0ZG9jRWxlbSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxcblx0XHRjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICksXG5cdFx0ZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJkaXZcIiApO1xuXG5cdGlmICggIWRpdi5zdHlsZSApIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHQvLyBTdXBwb3J0OiBJRTktMTErXG5cdC8vIFN0eWxlIG9mIGNsb25lZCBlbGVtZW50IGFmZmVjdHMgc291cmNlIGVsZW1lbnQgY2xvbmVkICgjODkwOClcblx0ZGl2LnN0eWxlLmJhY2tncm91bmRDbGlwID0gXCJjb250ZW50LWJveFwiO1xuXHRkaXYuY2xvbmVOb2RlKCB0cnVlICkuc3R5bGUuYmFja2dyb3VuZENsaXAgPSBcIlwiO1xuXHRzdXBwb3J0LmNsZWFyQ2xvbmVTdHlsZSA9IGRpdi5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCA9PT0gXCJjb250ZW50LWJveFwiO1xuXG5cdGNvbnRhaW5lci5zdHlsZS5jc3NUZXh0ID0gXCJib3JkZXI6MDt3aWR0aDowO2hlaWdodDowO3RvcDowO2xlZnQ6LTk5OTlweDttYXJnaW4tdG9wOjFweDtcIiArXG5cdFx0XCJwb3NpdGlvbjphYnNvbHV0ZVwiO1xuXHRjb250YWluZXIuYXBwZW5kQ2hpbGQoIGRpdiApO1xuXG5cdC8vIEV4ZWN1dGluZyBib3RoIHBpeGVsUG9zaXRpb24gJiBib3hTaXppbmdSZWxpYWJsZSB0ZXN0cyByZXF1aXJlIG9ubHkgb25lIGxheW91dFxuXHQvLyBzbyB0aGV5J3JlIGV4ZWN1dGVkIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSB0aGUgc2Vjb25kIGNvbXB1dGF0aW9uLlxuXHRmdW5jdGlvbiBjb21wdXRlUGl4ZWxQb3NpdGlvbkFuZEJveFNpemluZ1JlbGlhYmxlKCkge1xuXHRcdGRpdi5zdHlsZS5jc3NUZXh0ID1cblx0XHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3g8MjksIEFuZHJvaWQgMi4zXG5cdFx0XHQvLyBWZW5kb3ItcHJlZml4IGJveC1zaXppbmdcblx0XHRcdFwiLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7XCIgK1xuXHRcdFx0XCJib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjElO3RvcDoxJTtcIiArXG5cdFx0XHRcImJvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NHB4O3Bvc2l0aW9uOmFic29sdXRlXCI7XG5cdFx0ZGl2LmlubmVySFRNTCA9IFwiXCI7XG5cdFx0ZG9jRWxlbS5hcHBlbmRDaGlsZCggY29udGFpbmVyICk7XG5cblx0XHR2YXIgZGl2U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSggZGl2LCBudWxsICk7XG5cdFx0cGl4ZWxQb3NpdGlvblZhbCA9IGRpdlN0eWxlLnRvcCAhPT0gXCIxJVwiO1xuXHRcdGJveFNpemluZ1JlbGlhYmxlVmFsID0gZGl2U3R5bGUud2lkdGggPT09IFwiNHB4XCI7XG5cblx0XHRkb2NFbGVtLnJlbW92ZUNoaWxkKCBjb250YWluZXIgKTtcblx0fVxuXG5cdC8vIFN1cHBvcnQ6IG5vZGUuanMganNkb21cblx0Ly8gRG9uJ3QgYXNzdW1lIHRoYXQgZ2V0Q29tcHV0ZWRTdHlsZSBpcyBhIHByb3BlcnR5IG9mIHRoZSBnbG9iYWwgb2JqZWN0XG5cdGlmICggd2luZG93LmdldENvbXB1dGVkU3R5bGUgKSB7XG5cdFx0alF1ZXJ5LmV4dGVuZCggc3VwcG9ydCwge1xuXHRcdFx0cGl4ZWxQb3NpdGlvbjogZnVuY3Rpb24oKSB7XG5cblx0XHRcdFx0Ly8gVGhpcyB0ZXN0IGlzIGV4ZWN1dGVkIG9ubHkgb25jZSBidXQgd2Ugc3RpbGwgZG8gbWVtb2l6aW5nXG5cdFx0XHRcdC8vIHNpbmNlIHdlIGNhbiB1c2UgdGhlIGJveFNpemluZ1JlbGlhYmxlIHByZS1jb21wdXRpbmcuXG5cdFx0XHRcdC8vIE5vIG5lZWQgdG8gY2hlY2sgaWYgdGhlIHRlc3Qgd2FzIGFscmVhZHkgcGVyZm9ybWVkLCB0aG91Z2guXG5cdFx0XHRcdGNvbXB1dGVQaXhlbFBvc2l0aW9uQW5kQm94U2l6aW5nUmVsaWFibGUoKTtcblx0XHRcdFx0cmV0dXJuIHBpeGVsUG9zaXRpb25WYWw7XG5cdFx0XHR9LFxuXHRcdFx0Ym94U2l6aW5nUmVsaWFibGU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoIGJveFNpemluZ1JlbGlhYmxlVmFsID09IG51bGwgKSB7XG5cdFx0XHRcdFx0Y29tcHV0ZVBpeGVsUG9zaXRpb25BbmRCb3hTaXppbmdSZWxpYWJsZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBib3hTaXppbmdSZWxpYWJsZVZhbDtcblx0XHRcdH0sXG5cdFx0XHRyZWxpYWJsZU1hcmdpblJpZ2h0OiBmdW5jdGlvbigpIHtcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDIuM1xuXHRcdFx0XHQvLyBDaGVjayBpZiBkaXYgd2l0aCBleHBsaWNpdCB3aWR0aCBhbmQgbm8gbWFyZ2luLXJpZ2h0IGluY29ycmVjdGx5XG5cdFx0XHRcdC8vIGdldHMgY29tcHV0ZWQgbWFyZ2luLXJpZ2h0IGJhc2VkIG9uIHdpZHRoIG9mIGNvbnRhaW5lci4gKCMzMzMzKVxuXHRcdFx0XHQvLyBXZWJLaXQgQnVnIDEzMzQzIC0gZ2V0Q29tcHV0ZWRTdHlsZSByZXR1cm5zIHdyb25nIHZhbHVlIGZvciBtYXJnaW4tcmlnaHRcblx0XHRcdFx0Ly8gVGhpcyBzdXBwb3J0IGZ1bmN0aW9uIGlzIG9ubHkgZXhlY3V0ZWQgb25jZSBzbyBubyBtZW1vaXppbmcgaXMgbmVlZGVkLlxuXHRcdFx0XHR2YXIgcmV0LFxuXHRcdFx0XHRcdG1hcmdpbkRpdiA9IGRpdi5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJkaXZcIiApICk7XG5cblx0XHRcdFx0Ly8gUmVzZXQgQ1NTOiBib3gtc2l6aW5nOyBkaXNwbGF5OyBtYXJnaW47IGJvcmRlcjsgcGFkZGluZ1xuXHRcdFx0XHRtYXJnaW5EaXYuc3R5bGUuY3NzVGV4dCA9IGRpdi5zdHlsZS5jc3NUZXh0ID1cblx0XHRcdFx0XHQvLyBTdXBwb3J0OiBGaXJlZm94PDI5LCBBbmRyb2lkIDIuM1xuXHRcdFx0XHRcdC8vIFZlbmRvci1wcmVmaXggYm94LXNpemluZ1xuXHRcdFx0XHRcdFwiLXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtcIiArXG5cdFx0XHRcdFx0XCJib3gtc2l6aW5nOmNvbnRlbnQtYm94O2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzowXCI7XG5cdFx0XHRcdG1hcmdpbkRpdi5zdHlsZS5tYXJnaW5SaWdodCA9IG1hcmdpbkRpdi5zdHlsZS53aWR0aCA9IFwiMFwiO1xuXHRcdFx0XHRkaXYuc3R5bGUud2lkdGggPSBcIjFweFwiO1xuXHRcdFx0XHRkb2NFbGVtLmFwcGVuZENoaWxkKCBjb250YWluZXIgKTtcblxuXHRcdFx0XHRyZXQgPSAhcGFyc2VGbG9hdCggd2luZG93LmdldENvbXB1dGVkU3R5bGUoIG1hcmdpbkRpdiwgbnVsbCApLm1hcmdpblJpZ2h0ICk7XG5cblx0XHRcdFx0ZG9jRWxlbS5yZW1vdmVDaGlsZCggY29udGFpbmVyICk7XG5cdFx0XHRcdGRpdi5yZW1vdmVDaGlsZCggbWFyZ2luRGl2ICk7XG5cblx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxufSkoKTtcblxuXG4vLyBBIG1ldGhvZCBmb3IgcXVpY2tseSBzd2FwcGluZyBpbi9vdXQgQ1NTIHByb3BlcnRpZXMgdG8gZ2V0IGNvcnJlY3QgY2FsY3VsYXRpb25zLlxualF1ZXJ5LnN3YXAgPSBmdW5jdGlvbiggZWxlbSwgb3B0aW9ucywgY2FsbGJhY2ssIGFyZ3MgKSB7XG5cdHZhciByZXQsIG5hbWUsXG5cdFx0b2xkID0ge307XG5cblx0Ly8gUmVtZW1iZXIgdGhlIG9sZCB2YWx1ZXMsIGFuZCBpbnNlcnQgdGhlIG5ldyBvbmVzXG5cdGZvciAoIG5hbWUgaW4gb3B0aW9ucyApIHtcblx0XHRvbGRbIG5hbWUgXSA9IGVsZW0uc3R5bGVbIG5hbWUgXTtcblx0XHRlbGVtLnN0eWxlWyBuYW1lIF0gPSBvcHRpb25zWyBuYW1lIF07XG5cdH1cblxuXHRyZXQgPSBjYWxsYmFjay5hcHBseSggZWxlbSwgYXJncyB8fCBbXSApO1xuXG5cdC8vIFJldmVydCB0aGUgb2xkIHZhbHVlc1xuXHRmb3IgKCBuYW1lIGluIG9wdGlvbnMgKSB7XG5cdFx0ZWxlbS5zdHlsZVsgbmFtZSBdID0gb2xkWyBuYW1lIF07XG5cdH1cblxuXHRyZXR1cm4gcmV0O1xufTtcblxuXG52YXJcblx0Ly8gU3dhcHBhYmxlIGlmIGRpc3BsYXkgaXMgbm9uZSBvciBzdGFydHMgd2l0aCB0YWJsZSBleGNlcHQgXCJ0YWJsZVwiLCBcInRhYmxlLWNlbGxcIiwgb3IgXCJ0YWJsZS1jYXB0aW9uXCJcblx0Ly8gU2VlIGhlcmUgZm9yIGRpc3BsYXkgdmFsdWVzOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL0NTUy9kaXNwbGF5XG5cdHJkaXNwbGF5c3dhcCA9IC9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxcblx0cm51bXNwbGl0ID0gbmV3IFJlZ0V4cCggXCJeKFwiICsgcG51bSArIFwiKSguKikkXCIsIFwiaVwiICksXG5cdHJyZWxOdW0gPSBuZXcgUmVnRXhwKCBcIl4oWystXSk9KFwiICsgcG51bSArIFwiKVwiLCBcImlcIiApLFxuXG5cdGNzc1Nob3cgPSB7IHBvc2l0aW9uOiBcImFic29sdXRlXCIsIHZpc2liaWxpdHk6IFwiaGlkZGVuXCIsIGRpc3BsYXk6IFwiYmxvY2tcIiB9LFxuXHRjc3NOb3JtYWxUcmFuc2Zvcm0gPSB7XG5cdFx0bGV0dGVyU3BhY2luZzogXCIwXCIsXG5cdFx0Zm9udFdlaWdodDogXCI0MDBcIlxuXHR9LFxuXG5cdGNzc1ByZWZpeGVzID0gWyBcIldlYmtpdFwiLCBcIk9cIiwgXCJNb3pcIiwgXCJtc1wiIF07XG5cbi8vIFJldHVybiBhIGNzcyBwcm9wZXJ0eSBtYXBwZWQgdG8gYSBwb3RlbnRpYWxseSB2ZW5kb3IgcHJlZml4ZWQgcHJvcGVydHlcbmZ1bmN0aW9uIHZlbmRvclByb3BOYW1lKCBzdHlsZSwgbmFtZSApIHtcblxuXHQvLyBTaG9ydGN1dCBmb3IgbmFtZXMgdGhhdCBhcmUgbm90IHZlbmRvciBwcmVmaXhlZFxuXHRpZiAoIG5hbWUgaW4gc3R5bGUgKSB7XG5cdFx0cmV0dXJuIG5hbWU7XG5cdH1cblxuXHQvLyBDaGVjayBmb3IgdmVuZG9yIHByZWZpeGVkIG5hbWVzXG5cdHZhciBjYXBOYW1lID0gbmFtZVswXS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKSxcblx0XHRvcmlnTmFtZSA9IG5hbWUsXG5cdFx0aSA9IGNzc1ByZWZpeGVzLmxlbmd0aDtcblxuXHR3aGlsZSAoIGktLSApIHtcblx0XHRuYW1lID0gY3NzUHJlZml4ZXNbIGkgXSArIGNhcE5hbWU7XG5cdFx0aWYgKCBuYW1lIGluIHN0eWxlICkge1xuXHRcdFx0cmV0dXJuIG5hbWU7XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIG9yaWdOYW1lO1xufVxuXG5mdW5jdGlvbiBzZXRQb3NpdGl2ZU51bWJlciggZWxlbSwgdmFsdWUsIHN1YnRyYWN0ICkge1xuXHR2YXIgbWF0Y2hlcyA9IHJudW1zcGxpdC5leGVjKCB2YWx1ZSApO1xuXHRyZXR1cm4gbWF0Y2hlcyA/XG5cdFx0Ly8gR3VhcmQgYWdhaW5zdCB1bmRlZmluZWQgXCJzdWJ0cmFjdFwiLCBlLmcuLCB3aGVuIHVzZWQgYXMgaW4gY3NzSG9va3Ncblx0XHRNYXRoLm1heCggMCwgbWF0Y2hlc1sgMSBdIC0gKCBzdWJ0cmFjdCB8fCAwICkgKSArICggbWF0Y2hlc1sgMiBdIHx8IFwicHhcIiApIDpcblx0XHR2YWx1ZTtcbn1cblxuZnVuY3Rpb24gYXVnbWVudFdpZHRoT3JIZWlnaHQoIGVsZW0sIG5hbWUsIGV4dHJhLCBpc0JvcmRlckJveCwgc3R5bGVzICkge1xuXHR2YXIgaSA9IGV4dHJhID09PSAoIGlzQm9yZGVyQm94ID8gXCJib3JkZXJcIiA6IFwiY29udGVudFwiICkgP1xuXHRcdC8vIElmIHdlIGFscmVhZHkgaGF2ZSB0aGUgcmlnaHQgbWVhc3VyZW1lbnQsIGF2b2lkIGF1Z21lbnRhdGlvblxuXHRcdDQgOlxuXHRcdC8vIE90aGVyd2lzZSBpbml0aWFsaXplIGZvciBob3Jpem9udGFsIG9yIHZlcnRpY2FsIHByb3BlcnRpZXNcblx0XHRuYW1lID09PSBcIndpZHRoXCIgPyAxIDogMCxcblxuXHRcdHZhbCA9IDA7XG5cblx0Zm9yICggOyBpIDwgNDsgaSArPSAyICkge1xuXHRcdC8vIEJvdGggYm94IG1vZGVscyBleGNsdWRlIG1hcmdpbiwgc28gYWRkIGl0IGlmIHdlIHdhbnQgaXRcblx0XHRpZiAoIGV4dHJhID09PSBcIm1hcmdpblwiICkge1xuXHRcdFx0dmFsICs9IGpRdWVyeS5jc3MoIGVsZW0sIGV4dHJhICsgY3NzRXhwYW5kWyBpIF0sIHRydWUsIHN0eWxlcyApO1xuXHRcdH1cblxuXHRcdGlmICggaXNCb3JkZXJCb3ggKSB7XG5cdFx0XHQvLyBib3JkZXItYm94IGluY2x1ZGVzIHBhZGRpbmcsIHNvIHJlbW92ZSBpdCBpZiB3ZSB3YW50IGNvbnRlbnRcblx0XHRcdGlmICggZXh0cmEgPT09IFwiY29udGVudFwiICkge1xuXHRcdFx0XHR2YWwgLT0galF1ZXJ5LmNzcyggZWxlbSwgXCJwYWRkaW5nXCIgKyBjc3NFeHBhbmRbIGkgXSwgdHJ1ZSwgc3R5bGVzICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEF0IHRoaXMgcG9pbnQsIGV4dHJhIGlzbid0IGJvcmRlciBub3IgbWFyZ2luLCBzbyByZW1vdmUgYm9yZGVyXG5cdFx0XHRpZiAoIGV4dHJhICE9PSBcIm1hcmdpblwiICkge1xuXHRcdFx0XHR2YWwgLT0galF1ZXJ5LmNzcyggZWxlbSwgXCJib3JkZXJcIiArIGNzc0V4cGFuZFsgaSBdICsgXCJXaWR0aFwiLCB0cnVlLCBzdHlsZXMgKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gQXQgdGhpcyBwb2ludCwgZXh0cmEgaXNuJ3QgY29udGVudCwgc28gYWRkIHBhZGRpbmdcblx0XHRcdHZhbCArPSBqUXVlcnkuY3NzKCBlbGVtLCBcInBhZGRpbmdcIiArIGNzc0V4cGFuZFsgaSBdLCB0cnVlLCBzdHlsZXMgKTtcblxuXHRcdFx0Ly8gQXQgdGhpcyBwb2ludCwgZXh0cmEgaXNuJ3QgY29udGVudCBub3IgcGFkZGluZywgc28gYWRkIGJvcmRlclxuXHRcdFx0aWYgKCBleHRyYSAhPT0gXCJwYWRkaW5nXCIgKSB7XG5cdFx0XHRcdHZhbCArPSBqUXVlcnkuY3NzKCBlbGVtLCBcImJvcmRlclwiICsgY3NzRXhwYW5kWyBpIF0gKyBcIldpZHRoXCIsIHRydWUsIHN0eWxlcyApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB2YWw7XG59XG5cbmZ1bmN0aW9uIGdldFdpZHRoT3JIZWlnaHQoIGVsZW0sIG5hbWUsIGV4dHJhICkge1xuXG5cdC8vIFN0YXJ0IHdpdGggb2Zmc2V0IHByb3BlcnR5LCB3aGljaCBpcyBlcXVpdmFsZW50IHRvIHRoZSBib3JkZXItYm94IHZhbHVlXG5cdHZhciB2YWx1ZUlzQm9yZGVyQm94ID0gdHJ1ZSxcblx0XHR2YWwgPSBuYW1lID09PSBcIndpZHRoXCIgPyBlbGVtLm9mZnNldFdpZHRoIDogZWxlbS5vZmZzZXRIZWlnaHQsXG5cdFx0c3R5bGVzID0gZ2V0U3R5bGVzKCBlbGVtICksXG5cdFx0aXNCb3JkZXJCb3ggPSBqUXVlcnkuY3NzKCBlbGVtLCBcImJveFNpemluZ1wiLCBmYWxzZSwgc3R5bGVzICkgPT09IFwiYm9yZGVyLWJveFwiO1xuXG5cdC8vIFNvbWUgbm9uLWh0bWwgZWxlbWVudHMgcmV0dXJuIHVuZGVmaW5lZCBmb3Igb2Zmc2V0V2lkdGgsIHNvIGNoZWNrIGZvciBudWxsL3VuZGVmaW5lZFxuXHQvLyBzdmcgLSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02NDkyODVcblx0Ly8gTWF0aE1MIC0gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkxNjY4XG5cdGlmICggdmFsIDw9IDAgfHwgdmFsID09IG51bGwgKSB7XG5cdFx0Ly8gRmFsbCBiYWNrIHRvIGNvbXB1dGVkIHRoZW4gdW5jb21wdXRlZCBjc3MgaWYgbmVjZXNzYXJ5XG5cdFx0dmFsID0gY3VyQ1NTKCBlbGVtLCBuYW1lLCBzdHlsZXMgKTtcblx0XHRpZiAoIHZhbCA8IDAgfHwgdmFsID09IG51bGwgKSB7XG5cdFx0XHR2YWwgPSBlbGVtLnN0eWxlWyBuYW1lIF07XG5cdFx0fVxuXG5cdFx0Ly8gQ29tcHV0ZWQgdW5pdCBpcyBub3QgcGl4ZWxzLiBTdG9wIGhlcmUgYW5kIHJldHVybi5cblx0XHRpZiAoIHJudW1ub25weC50ZXN0KHZhbCkgKSB7XG5cdFx0XHRyZXR1cm4gdmFsO1xuXHRcdH1cblxuXHRcdC8vIENoZWNrIGZvciBzdHlsZSBpbiBjYXNlIGEgYnJvd3NlciB3aGljaCByZXR1cm5zIHVucmVsaWFibGUgdmFsdWVzXG5cdFx0Ly8gZm9yIGdldENvbXB1dGVkU3R5bGUgc2lsZW50bHkgZmFsbHMgYmFjayB0byB0aGUgcmVsaWFibGUgZWxlbS5zdHlsZVxuXHRcdHZhbHVlSXNCb3JkZXJCb3ggPSBpc0JvcmRlckJveCAmJlxuXHRcdFx0KCBzdXBwb3J0LmJveFNpemluZ1JlbGlhYmxlKCkgfHwgdmFsID09PSBlbGVtLnN0eWxlWyBuYW1lIF0gKTtcblxuXHRcdC8vIE5vcm1hbGl6ZSBcIlwiLCBhdXRvLCBhbmQgcHJlcGFyZSBmb3IgZXh0cmFcblx0XHR2YWwgPSBwYXJzZUZsb2F0KCB2YWwgKSB8fCAwO1xuXHR9XG5cblx0Ly8gVXNlIHRoZSBhY3RpdmUgYm94LXNpemluZyBtb2RlbCB0byBhZGQvc3VidHJhY3QgaXJyZWxldmFudCBzdHlsZXNcblx0cmV0dXJuICggdmFsICtcblx0XHRhdWdtZW50V2lkdGhPckhlaWdodChcblx0XHRcdGVsZW0sXG5cdFx0XHRuYW1lLFxuXHRcdFx0ZXh0cmEgfHwgKCBpc0JvcmRlckJveCA/IFwiYm9yZGVyXCIgOiBcImNvbnRlbnRcIiApLFxuXHRcdFx0dmFsdWVJc0JvcmRlckJveCxcblx0XHRcdHN0eWxlc1xuXHRcdClcblx0KSArIFwicHhcIjtcbn1cblxuZnVuY3Rpb24gc2hvd0hpZGUoIGVsZW1lbnRzLCBzaG93ICkge1xuXHR2YXIgZGlzcGxheSwgZWxlbSwgaGlkZGVuLFxuXHRcdHZhbHVlcyA9IFtdLFxuXHRcdGluZGV4ID0gMCxcblx0XHRsZW5ndGggPSBlbGVtZW50cy5sZW5ndGg7XG5cblx0Zm9yICggOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKyApIHtcblx0XHRlbGVtID0gZWxlbWVudHNbIGluZGV4IF07XG5cdFx0aWYgKCAhZWxlbS5zdHlsZSApIHtcblx0XHRcdGNvbnRpbnVlO1xuXHRcdH1cblxuXHRcdHZhbHVlc1sgaW5kZXggXSA9IGRhdGFfcHJpdi5nZXQoIGVsZW0sIFwib2xkZGlzcGxheVwiICk7XG5cdFx0ZGlzcGxheSA9IGVsZW0uc3R5bGUuZGlzcGxheTtcblx0XHRpZiAoIHNob3cgKSB7XG5cdFx0XHQvLyBSZXNldCB0aGUgaW5saW5lIGRpc3BsYXkgb2YgdGhpcyBlbGVtZW50IHRvIGxlYXJuIGlmIGl0IGlzXG5cdFx0XHQvLyBiZWluZyBoaWRkZW4gYnkgY2FzY2FkZWQgcnVsZXMgb3Igbm90XG5cdFx0XHRpZiAoICF2YWx1ZXNbIGluZGV4IF0gJiYgZGlzcGxheSA9PT0gXCJub25lXCIgKSB7XG5cdFx0XHRcdGVsZW0uc3R5bGUuZGlzcGxheSA9IFwiXCI7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNldCBlbGVtZW50cyB3aGljaCBoYXZlIGJlZW4gb3ZlcnJpZGRlbiB3aXRoIGRpc3BsYXk6IG5vbmVcblx0XHRcdC8vIGluIGEgc3R5bGVzaGVldCB0byB3aGF0ZXZlciB0aGUgZGVmYXVsdCBicm93c2VyIHN0eWxlIGlzXG5cdFx0XHQvLyBmb3Igc3VjaCBhbiBlbGVtZW50XG5cdFx0XHRpZiAoIGVsZW0uc3R5bGUuZGlzcGxheSA9PT0gXCJcIiAmJiBpc0hpZGRlbiggZWxlbSApICkge1xuXHRcdFx0XHR2YWx1ZXNbIGluZGV4IF0gPSBkYXRhX3ByaXYuYWNjZXNzKCBlbGVtLCBcIm9sZGRpc3BsYXlcIiwgZGVmYXVsdERpc3BsYXkoZWxlbS5ub2RlTmFtZSkgKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0aGlkZGVuID0gaXNIaWRkZW4oIGVsZW0gKTtcblxuXHRcdFx0aWYgKCBkaXNwbGF5ICE9PSBcIm5vbmVcIiB8fCAhaGlkZGVuICkge1xuXHRcdFx0XHRkYXRhX3ByaXYuc2V0KCBlbGVtLCBcIm9sZGRpc3BsYXlcIiwgaGlkZGVuID8gZGlzcGxheSA6IGpRdWVyeS5jc3MoIGVsZW0sIFwiZGlzcGxheVwiICkgKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBTZXQgdGhlIGRpc3BsYXkgb2YgbW9zdCBvZiB0aGUgZWxlbWVudHMgaW4gYSBzZWNvbmQgbG9vcFxuXHQvLyB0byBhdm9pZCB0aGUgY29uc3RhbnQgcmVmbG93XG5cdGZvciAoIGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0ZWxlbSA9IGVsZW1lbnRzWyBpbmRleCBdO1xuXHRcdGlmICggIWVsZW0uc3R5bGUgKSB7XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cdFx0aWYgKCAhc2hvdyB8fCBlbGVtLnN0eWxlLmRpc3BsYXkgPT09IFwibm9uZVwiIHx8IGVsZW0uc3R5bGUuZGlzcGxheSA9PT0gXCJcIiApIHtcblx0XHRcdGVsZW0uc3R5bGUuZGlzcGxheSA9IHNob3cgPyB2YWx1ZXNbIGluZGV4IF0gfHwgXCJcIiA6IFwibm9uZVwiO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBlbGVtZW50cztcbn1cblxualF1ZXJ5LmV4dGVuZCh7XG5cblx0Ly8gQWRkIGluIHN0eWxlIHByb3BlcnR5IGhvb2tzIGZvciBvdmVycmlkaW5nIHRoZSBkZWZhdWx0XG5cdC8vIGJlaGF2aW9yIG9mIGdldHRpbmcgYW5kIHNldHRpbmcgYSBzdHlsZSBwcm9wZXJ0eVxuXHRjc3NIb29rczoge1xuXHRcdG9wYWNpdHk6IHtcblx0XHRcdGdldDogZnVuY3Rpb24oIGVsZW0sIGNvbXB1dGVkICkge1xuXHRcdFx0XHRpZiAoIGNvbXB1dGVkICkge1xuXG5cdFx0XHRcdFx0Ly8gV2Ugc2hvdWxkIGFsd2F5cyBnZXQgYSBudW1iZXIgYmFjayBmcm9tIG9wYWNpdHlcblx0XHRcdFx0XHR2YXIgcmV0ID0gY3VyQ1NTKCBlbGVtLCBcIm9wYWNpdHlcIiApO1xuXHRcdFx0XHRcdHJldHVybiByZXQgPT09IFwiXCIgPyBcIjFcIiA6IHJldDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHQvLyBEb24ndCBhdXRvbWF0aWNhbGx5IGFkZCBcInB4XCIgdG8gdGhlc2UgcG9zc2libHktdW5pdGxlc3MgcHJvcGVydGllc1xuXHRjc3NOdW1iZXI6IHtcblx0XHRcImNvbHVtbkNvdW50XCI6IHRydWUsXG5cdFx0XCJmaWxsT3BhY2l0eVwiOiB0cnVlLFxuXHRcdFwiZmxleEdyb3dcIjogdHJ1ZSxcblx0XHRcImZsZXhTaHJpbmtcIjogdHJ1ZSxcblx0XHRcImZvbnRXZWlnaHRcIjogdHJ1ZSxcblx0XHRcImxpbmVIZWlnaHRcIjogdHJ1ZSxcblx0XHRcIm9wYWNpdHlcIjogdHJ1ZSxcblx0XHRcIm9yZGVyXCI6IHRydWUsXG5cdFx0XCJvcnBoYW5zXCI6IHRydWUsXG5cdFx0XCJ3aWRvd3NcIjogdHJ1ZSxcblx0XHRcInpJbmRleFwiOiB0cnVlLFxuXHRcdFwiem9vbVwiOiB0cnVlXG5cdH0sXG5cblx0Ly8gQWRkIGluIHByb3BlcnRpZXMgd2hvc2UgbmFtZXMgeW91IHdpc2ggdG8gZml4IGJlZm9yZVxuXHQvLyBzZXR0aW5nIG9yIGdldHRpbmcgdGhlIHZhbHVlXG5cdGNzc1Byb3BzOiB7XG5cdFx0XCJmbG9hdFwiOiBcImNzc0Zsb2F0XCJcblx0fSxcblxuXHQvLyBHZXQgYW5kIHNldCB0aGUgc3R5bGUgcHJvcGVydHkgb24gYSBET00gTm9kZVxuXHRzdHlsZTogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlLCBleHRyYSApIHtcblxuXHRcdC8vIERvbid0IHNldCBzdHlsZXMgb24gdGV4dCBhbmQgY29tbWVudCBub2Rlc1xuXHRcdGlmICggIWVsZW0gfHwgZWxlbS5ub2RlVHlwZSA9PT0gMyB8fCBlbGVtLm5vZGVUeXBlID09PSA4IHx8ICFlbGVtLnN0eWxlICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIE1ha2Ugc3VyZSB0aGF0IHdlJ3JlIHdvcmtpbmcgd2l0aCB0aGUgcmlnaHQgbmFtZVxuXHRcdHZhciByZXQsIHR5cGUsIGhvb2tzLFxuXHRcdFx0b3JpZ05hbWUgPSBqUXVlcnkuY2FtZWxDYXNlKCBuYW1lICksXG5cdFx0XHRzdHlsZSA9IGVsZW0uc3R5bGU7XG5cblx0XHRuYW1lID0galF1ZXJ5LmNzc1Byb3BzWyBvcmlnTmFtZSBdIHx8ICggalF1ZXJ5LmNzc1Byb3BzWyBvcmlnTmFtZSBdID0gdmVuZG9yUHJvcE5hbWUoIHN0eWxlLCBvcmlnTmFtZSApICk7XG5cblx0XHQvLyBHZXRzIGhvb2sgZm9yIHRoZSBwcmVmaXhlZCB2ZXJzaW9uLCB0aGVuIHVucHJlZml4ZWQgdmVyc2lvblxuXHRcdGhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF0gfHwgalF1ZXJ5LmNzc0hvb2tzWyBvcmlnTmFtZSBdO1xuXG5cdFx0Ly8gQ2hlY2sgaWYgd2UncmUgc2V0dGluZyBhIHZhbHVlXG5cdFx0aWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0dHlwZSA9IHR5cGVvZiB2YWx1ZTtcblxuXHRcdFx0Ly8gQ29udmVydCBcIis9XCIgb3IgXCItPVwiIHRvIHJlbGF0aXZlIG51bWJlcnMgKCM3MzQ1KVxuXHRcdFx0aWYgKCB0eXBlID09PSBcInN0cmluZ1wiICYmIChyZXQgPSBycmVsTnVtLmV4ZWMoIHZhbHVlICkpICkge1xuXHRcdFx0XHR2YWx1ZSA9ICggcmV0WzFdICsgMSApICogcmV0WzJdICsgcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyggZWxlbSwgbmFtZSApICk7XG5cdFx0XHRcdC8vIEZpeGVzIGJ1ZyAjOTIzN1xuXHRcdFx0XHR0eXBlID0gXCJudW1iZXJcIjtcblx0XHRcdH1cblxuXHRcdFx0Ly8gTWFrZSBzdXJlIHRoYXQgbnVsbCBhbmQgTmFOIHZhbHVlcyBhcmVuJ3Qgc2V0ICgjNzExNilcblx0XHRcdGlmICggdmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSAhPT0gdmFsdWUgKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Ly8gSWYgYSBudW1iZXIsIGFkZCAncHgnIHRvIHRoZSAoZXhjZXB0IGZvciBjZXJ0YWluIENTUyBwcm9wZXJ0aWVzKVxuXHRcdFx0aWYgKCB0eXBlID09PSBcIm51bWJlclwiICYmICFqUXVlcnkuY3NzTnVtYmVyWyBvcmlnTmFtZSBdICkge1xuXHRcdFx0XHR2YWx1ZSArPSBcInB4XCI7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFOS0xMStcblx0XHRcdC8vIGJhY2tncm91bmQtKiBwcm9wcyBhZmZlY3Qgb3JpZ2luYWwgY2xvbmUncyB2YWx1ZXNcblx0XHRcdGlmICggIXN1cHBvcnQuY2xlYXJDbG9uZVN0eWxlICYmIHZhbHVlID09PSBcIlwiICYmIG5hbWUuaW5kZXhPZiggXCJiYWNrZ3JvdW5kXCIgKSA9PT0gMCApIHtcblx0XHRcdFx0c3R5bGVbIG5hbWUgXSA9IFwiaW5oZXJpdFwiO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkLCB1c2UgdGhhdCB2YWx1ZSwgb3RoZXJ3aXNlIGp1c3Qgc2V0IHRoZSBzcGVjaWZpZWQgdmFsdWVcblx0XHRcdGlmICggIWhvb2tzIHx8ICEoXCJzZXRcIiBpbiBob29rcykgfHwgKHZhbHVlID0gaG9va3Muc2V0KCBlbGVtLCB2YWx1ZSwgZXh0cmEgKSkgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0c3R5bGVbIG5hbWUgXSA9IHZhbHVlO1xuXHRcdFx0fVxuXG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIElmIGEgaG9vayB3YXMgcHJvdmlkZWQgZ2V0IHRoZSBub24tY29tcHV0ZWQgdmFsdWUgZnJvbSB0aGVyZVxuXHRcdFx0aWYgKCBob29rcyAmJiBcImdldFwiIGluIGhvb2tzICYmIChyZXQgPSBob29rcy5nZXQoIGVsZW0sIGZhbHNlLCBleHRyYSApKSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRyZXR1cm4gcmV0O1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBPdGhlcndpc2UganVzdCBnZXQgdGhlIHZhbHVlIGZyb20gdGhlIHN0eWxlIG9iamVjdFxuXHRcdFx0cmV0dXJuIHN0eWxlWyBuYW1lIF07XG5cdFx0fVxuXHR9LFxuXG5cdGNzczogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIGV4dHJhLCBzdHlsZXMgKSB7XG5cdFx0dmFyIHZhbCwgbnVtLCBob29rcyxcblx0XHRcdG9yaWdOYW1lID0galF1ZXJ5LmNhbWVsQ2FzZSggbmFtZSApO1xuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIHRoZSByaWdodCBuYW1lXG5cdFx0bmFtZSA9IGpRdWVyeS5jc3NQcm9wc1sgb3JpZ05hbWUgXSB8fCAoIGpRdWVyeS5jc3NQcm9wc1sgb3JpZ05hbWUgXSA9IHZlbmRvclByb3BOYW1lKCBlbGVtLnN0eWxlLCBvcmlnTmFtZSApICk7XG5cblx0XHQvLyBUcnkgcHJlZml4ZWQgbmFtZSBmb2xsb3dlZCBieSB0aGUgdW5wcmVmaXhlZCBuYW1lXG5cdFx0aG9va3MgPSBqUXVlcnkuY3NzSG9va3NbIG5hbWUgXSB8fCBqUXVlcnkuY3NzSG9va3NbIG9yaWdOYW1lIF07XG5cblx0XHQvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkIGdldCB0aGUgY29tcHV0ZWQgdmFsdWUgZnJvbSB0aGVyZVxuXHRcdGlmICggaG9va3MgJiYgXCJnZXRcIiBpbiBob29rcyApIHtcblx0XHRcdHZhbCA9IGhvb2tzLmdldCggZWxlbSwgdHJ1ZSwgZXh0cmEgKTtcblx0XHR9XG5cblx0XHQvLyBPdGhlcndpc2UsIGlmIGEgd2F5IHRvIGdldCB0aGUgY29tcHV0ZWQgdmFsdWUgZXhpc3RzLCB1c2UgdGhhdFxuXHRcdGlmICggdmFsID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHR2YWwgPSBjdXJDU1MoIGVsZW0sIG5hbWUsIHN0eWxlcyApO1xuXHRcdH1cblxuXHRcdC8vIENvbnZlcnQgXCJub3JtYWxcIiB0byBjb21wdXRlZCB2YWx1ZVxuXHRcdGlmICggdmFsID09PSBcIm5vcm1hbFwiICYmIG5hbWUgaW4gY3NzTm9ybWFsVHJhbnNmb3JtICkge1xuXHRcdFx0dmFsID0gY3NzTm9ybWFsVHJhbnNmb3JtWyBuYW1lIF07XG5cdFx0fVxuXG5cdFx0Ly8gTWFrZSBudW1lcmljIGlmIGZvcmNlZCBvciBhIHF1YWxpZmllciB3YXMgcHJvdmlkZWQgYW5kIHZhbCBsb29rcyBudW1lcmljXG5cdFx0aWYgKCBleHRyYSA9PT0gXCJcIiB8fCBleHRyYSApIHtcblx0XHRcdG51bSA9IHBhcnNlRmxvYXQoIHZhbCApO1xuXHRcdFx0cmV0dXJuIGV4dHJhID09PSB0cnVlIHx8IGpRdWVyeS5pc051bWVyaWMoIG51bSApID8gbnVtIHx8IDAgOiB2YWw7XG5cdFx0fVxuXHRcdHJldHVybiB2YWw7XG5cdH1cbn0pO1xuXG5qUXVlcnkuZWFjaChbIFwiaGVpZ2h0XCIsIFwid2lkdGhcIiBdLCBmdW5jdGlvbiggaSwgbmFtZSApIHtcblx0alF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF0gPSB7XG5cdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQsIGV4dHJhICkge1xuXHRcdFx0aWYgKCBjb21wdXRlZCApIHtcblxuXHRcdFx0XHQvLyBDZXJ0YWluIGVsZW1lbnRzIGNhbiBoYXZlIGRpbWVuc2lvbiBpbmZvIGlmIHdlIGludmlzaWJseSBzaG93IHRoZW1cblx0XHRcdFx0Ly8gYnV0IGl0IG11c3QgaGF2ZSBhIGN1cnJlbnQgZGlzcGxheSBzdHlsZSB0aGF0IHdvdWxkIGJlbmVmaXRcblx0XHRcdFx0cmV0dXJuIHJkaXNwbGF5c3dhcC50ZXN0KCBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiApICkgJiYgZWxlbS5vZmZzZXRXaWR0aCA9PT0gMCA/XG5cdFx0XHRcdFx0alF1ZXJ5LnN3YXAoIGVsZW0sIGNzc1Nob3csIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGdldFdpZHRoT3JIZWlnaHQoIGVsZW0sIG5hbWUsIGV4dHJhICk7XG5cdFx0XHRcdFx0fSkgOlxuXHRcdFx0XHRcdGdldFdpZHRoT3JIZWlnaHQoIGVsZW0sIG5hbWUsIGV4dHJhICk7XG5cdFx0XHR9XG5cdFx0fSxcblxuXHRcdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlLCBleHRyYSApIHtcblx0XHRcdHZhciBzdHlsZXMgPSBleHRyYSAmJiBnZXRTdHlsZXMoIGVsZW0gKTtcblx0XHRcdHJldHVybiBzZXRQb3NpdGl2ZU51bWJlciggZWxlbSwgdmFsdWUsIGV4dHJhID9cblx0XHRcdFx0YXVnbWVudFdpZHRoT3JIZWlnaHQoXG5cdFx0XHRcdFx0ZWxlbSxcblx0XHRcdFx0XHRuYW1lLFxuXHRcdFx0XHRcdGV4dHJhLFxuXHRcdFx0XHRcdGpRdWVyeS5jc3MoIGVsZW0sIFwiYm94U2l6aW5nXCIsIGZhbHNlLCBzdHlsZXMgKSA9PT0gXCJib3JkZXItYm94XCIsXG5cdFx0XHRcdFx0c3R5bGVzXG5cdFx0XHRcdCkgOiAwXG5cdFx0XHQpO1xuXHRcdH1cblx0fTtcbn0pO1xuXG4vLyBTdXBwb3J0OiBBbmRyb2lkIDIuM1xualF1ZXJ5LmNzc0hvb2tzLm1hcmdpblJpZ2h0ID0gYWRkR2V0SG9va0lmKCBzdXBwb3J0LnJlbGlhYmxlTWFyZ2luUmlnaHQsXG5cdGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCApIHtcblx0XHRpZiAoIGNvbXB1dGVkICkge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5zd2FwKCBlbGVtLCB7IFwiZGlzcGxheVwiOiBcImlubGluZS1ibG9ja1wiIH0sXG5cdFx0XHRcdGN1ckNTUywgWyBlbGVtLCBcIm1hcmdpblJpZ2h0XCIgXSApO1xuXHRcdH1cblx0fVxuKTtcblxuLy8gVGhlc2UgaG9va3MgYXJlIHVzZWQgYnkgYW5pbWF0ZSB0byBleHBhbmQgcHJvcGVydGllc1xualF1ZXJ5LmVhY2goe1xuXHRtYXJnaW46IFwiXCIsXG5cdHBhZGRpbmc6IFwiXCIsXG5cdGJvcmRlcjogXCJXaWR0aFwiXG59LCBmdW5jdGlvbiggcHJlZml4LCBzdWZmaXggKSB7XG5cdGpRdWVyeS5jc3NIb29rc1sgcHJlZml4ICsgc3VmZml4IF0gPSB7XG5cdFx0ZXhwYW5kOiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHR2YXIgaSA9IDAsXG5cdFx0XHRcdGV4cGFuZGVkID0ge30sXG5cblx0XHRcdFx0Ly8gQXNzdW1lcyBhIHNpbmdsZSBudW1iZXIgaWYgbm90IGEgc3RyaW5nXG5cdFx0XHRcdHBhcnRzID0gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gdmFsdWUuc3BsaXQoXCIgXCIpIDogWyB2YWx1ZSBdO1xuXG5cdFx0XHRmb3IgKCA7IGkgPCA0OyBpKysgKSB7XG5cdFx0XHRcdGV4cGFuZGVkWyBwcmVmaXggKyBjc3NFeHBhbmRbIGkgXSArIHN1ZmZpeCBdID1cblx0XHRcdFx0XHRwYXJ0c1sgaSBdIHx8IHBhcnRzWyBpIC0gMiBdIHx8IHBhcnRzWyAwIF07XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBleHBhbmRlZDtcblx0XHR9XG5cdH07XG5cblx0aWYgKCAhcm1hcmdpbi50ZXN0KCBwcmVmaXggKSApIHtcblx0XHRqUXVlcnkuY3NzSG9va3NbIHByZWZpeCArIHN1ZmZpeCBdLnNldCA9IHNldFBvc2l0aXZlTnVtYmVyO1xuXHR9XG59KTtcblxualF1ZXJ5LmZuLmV4dGVuZCh7XG5cdGNzczogZnVuY3Rpb24oIG5hbWUsIHZhbHVlICkge1xuXHRcdHJldHVybiBhY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCB2YWx1ZSApIHtcblx0XHRcdHZhciBzdHlsZXMsIGxlbixcblx0XHRcdFx0bWFwID0ge30sXG5cdFx0XHRcdGkgPSAwO1xuXG5cdFx0XHRpZiAoIGpRdWVyeS5pc0FycmF5KCBuYW1lICkgKSB7XG5cdFx0XHRcdHN0eWxlcyA9IGdldFN0eWxlcyggZWxlbSApO1xuXHRcdFx0XHRsZW4gPSBuYW1lLmxlbmd0aDtcblxuXHRcdFx0XHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdFx0XHRtYXBbIG5hbWVbIGkgXSBdID0galF1ZXJ5LmNzcyggZWxlbSwgbmFtZVsgaSBdLCBmYWxzZSwgc3R5bGVzICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gbWFwO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gdmFsdWUgIT09IHVuZGVmaW5lZCA/XG5cdFx0XHRcdGpRdWVyeS5zdHlsZSggZWxlbSwgbmFtZSwgdmFsdWUgKSA6XG5cdFx0XHRcdGpRdWVyeS5jc3MoIGVsZW0sIG5hbWUgKTtcblx0XHR9LCBuYW1lLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDEgKTtcblx0fSxcblx0c2hvdzogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHNob3dIaWRlKCB0aGlzLCB0cnVlICk7XG5cdH0sXG5cdGhpZGU6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBzaG93SGlkZSggdGhpcyApO1xuXHR9LFxuXHR0b2dnbGU6IGZ1bmN0aW9uKCBzdGF0ZSApIHtcblx0XHRpZiAoIHR5cGVvZiBzdGF0ZSA9PT0gXCJib29sZWFuXCIgKSB7XG5cdFx0XHRyZXR1cm4gc3RhdGUgPyB0aGlzLnNob3coKSA6IHRoaXMuaGlkZSgpO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XG5cdFx0XHRpZiAoIGlzSGlkZGVuKCB0aGlzICkgKSB7XG5cdFx0XHRcdGpRdWVyeSggdGhpcyApLnNob3coKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGpRdWVyeSggdGhpcyApLmhpZGUoKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxufSk7XG5cblxuZnVuY3Rpb24gVHdlZW4oIGVsZW0sIG9wdGlvbnMsIHByb3AsIGVuZCwgZWFzaW5nICkge1xuXHRyZXR1cm4gbmV3IFR3ZWVuLnByb3RvdHlwZS5pbml0KCBlbGVtLCBvcHRpb25zLCBwcm9wLCBlbmQsIGVhc2luZyApO1xufVxualF1ZXJ5LlR3ZWVuID0gVHdlZW47XG5cblR3ZWVuLnByb3RvdHlwZSA9IHtcblx0Y29uc3RydWN0b3I6IFR3ZWVuLFxuXHRpbml0OiBmdW5jdGlvbiggZWxlbSwgb3B0aW9ucywgcHJvcCwgZW5kLCBlYXNpbmcsIHVuaXQgKSB7XG5cdFx0dGhpcy5lbGVtID0gZWxlbTtcblx0XHR0aGlzLnByb3AgPSBwcm9wO1xuXHRcdHRoaXMuZWFzaW5nID0gZWFzaW5nIHx8IFwic3dpbmdcIjtcblx0XHR0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuXHRcdHRoaXMuc3RhcnQgPSB0aGlzLm5vdyA9IHRoaXMuY3VyKCk7XG5cdFx0dGhpcy5lbmQgPSBlbmQ7XG5cdFx0dGhpcy51bml0ID0gdW5pdCB8fCAoIGpRdWVyeS5jc3NOdW1iZXJbIHByb3AgXSA/IFwiXCIgOiBcInB4XCIgKTtcblx0fSxcblx0Y3VyOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgaG9va3MgPSBUd2Vlbi5wcm9wSG9va3NbIHRoaXMucHJvcCBdO1xuXG5cdFx0cmV0dXJuIGhvb2tzICYmIGhvb2tzLmdldCA/XG5cdFx0XHRob29rcy5nZXQoIHRoaXMgKSA6XG5cdFx0XHRUd2Vlbi5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KCB0aGlzICk7XG5cdH0sXG5cdHJ1bjogZnVuY3Rpb24oIHBlcmNlbnQgKSB7XG5cdFx0dmFyIGVhc2VkLFxuXHRcdFx0aG9va3MgPSBUd2Vlbi5wcm9wSG9va3NbIHRoaXMucHJvcCBdO1xuXG5cdFx0aWYgKCB0aGlzLm9wdGlvbnMuZHVyYXRpb24gKSB7XG5cdFx0XHR0aGlzLnBvcyA9IGVhc2VkID0galF1ZXJ5LmVhc2luZ1sgdGhpcy5lYXNpbmcgXShcblx0XHRcdFx0cGVyY2VudCwgdGhpcy5vcHRpb25zLmR1cmF0aW9uICogcGVyY2VudCwgMCwgMSwgdGhpcy5vcHRpb25zLmR1cmF0aW9uXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnBvcyA9IGVhc2VkID0gcGVyY2VudDtcblx0XHR9XG5cdFx0dGhpcy5ub3cgPSAoIHRoaXMuZW5kIC0gdGhpcy5zdGFydCApICogZWFzZWQgKyB0aGlzLnN0YXJ0O1xuXG5cdFx0aWYgKCB0aGlzLm9wdGlvbnMuc3RlcCApIHtcblx0XHRcdHRoaXMub3B0aW9ucy5zdGVwLmNhbGwoIHRoaXMuZWxlbSwgdGhpcy5ub3csIHRoaXMgKTtcblx0XHR9XG5cblx0XHRpZiAoIGhvb2tzICYmIGhvb2tzLnNldCApIHtcblx0XHRcdGhvb2tzLnNldCggdGhpcyApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRUd2Vlbi5wcm9wSG9va3MuX2RlZmF1bHQuc2V0KCB0aGlzICk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG59O1xuXG5Ud2Vlbi5wcm90b3R5cGUuaW5pdC5wcm90b3R5cGUgPSBUd2Vlbi5wcm90b3R5cGU7XG5cblR3ZWVuLnByb3BIb29rcyA9IHtcblx0X2RlZmF1bHQ6IHtcblx0XHRnZXQ6IGZ1bmN0aW9uKCB0d2VlbiApIHtcblx0XHRcdHZhciByZXN1bHQ7XG5cblx0XHRcdGlmICggdHdlZW4uZWxlbVsgdHdlZW4ucHJvcCBdICE9IG51bGwgJiZcblx0XHRcdFx0KCF0d2Vlbi5lbGVtLnN0eWxlIHx8IHR3ZWVuLmVsZW0uc3R5bGVbIHR3ZWVuLnByb3AgXSA9PSBudWxsKSApIHtcblx0XHRcdFx0cmV0dXJuIHR3ZWVuLmVsZW1bIHR3ZWVuLnByb3AgXTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUGFzc2luZyBhbiBlbXB0eSBzdHJpbmcgYXMgYSAzcmQgcGFyYW1ldGVyIHRvIC5jc3Mgd2lsbCBhdXRvbWF0aWNhbGx5XG5cdFx0XHQvLyBhdHRlbXB0IGEgcGFyc2VGbG9hdCBhbmQgZmFsbGJhY2sgdG8gYSBzdHJpbmcgaWYgdGhlIHBhcnNlIGZhaWxzLlxuXHRcdFx0Ly8gU2ltcGxlIHZhbHVlcyBzdWNoIGFzIFwiMTBweFwiIGFyZSBwYXJzZWQgdG8gRmxvYXQ7XG5cdFx0XHQvLyBjb21wbGV4IHZhbHVlcyBzdWNoIGFzIFwicm90YXRlKDFyYWQpXCIgYXJlIHJldHVybmVkIGFzLWlzLlxuXHRcdFx0cmVzdWx0ID0galF1ZXJ5LmNzcyggdHdlZW4uZWxlbSwgdHdlZW4ucHJvcCwgXCJcIiApO1xuXHRcdFx0Ly8gRW1wdHkgc3RyaW5ncywgbnVsbCwgdW5kZWZpbmVkIGFuZCBcImF1dG9cIiBhcmUgY29udmVydGVkIHRvIDAuXG5cdFx0XHRyZXR1cm4gIXJlc3VsdCB8fCByZXN1bHQgPT09IFwiYXV0b1wiID8gMCA6IHJlc3VsdDtcblx0XHR9LFxuXHRcdHNldDogZnVuY3Rpb24oIHR3ZWVuICkge1xuXHRcdFx0Ly8gVXNlIHN0ZXAgaG9vayBmb3IgYmFjayBjb21wYXQuXG5cdFx0XHQvLyBVc2UgY3NzSG9vayBpZiBpdHMgdGhlcmUuXG5cdFx0XHQvLyBVc2UgLnN0eWxlIGlmIGF2YWlsYWJsZSBhbmQgdXNlIHBsYWluIHByb3BlcnRpZXMgd2hlcmUgYXZhaWxhYmxlLlxuXHRcdFx0aWYgKCBqUXVlcnkuZnguc3RlcFsgdHdlZW4ucHJvcCBdICkge1xuXHRcdFx0XHRqUXVlcnkuZnguc3RlcFsgdHdlZW4ucHJvcCBdKCB0d2VlbiApO1xuXHRcdFx0fSBlbHNlIGlmICggdHdlZW4uZWxlbS5zdHlsZSAmJiAoIHR3ZWVuLmVsZW0uc3R5bGVbIGpRdWVyeS5jc3NQcm9wc1sgdHdlZW4ucHJvcCBdIF0gIT0gbnVsbCB8fCBqUXVlcnkuY3NzSG9va3NbIHR3ZWVuLnByb3AgXSApICkge1xuXHRcdFx0XHRqUXVlcnkuc3R5bGUoIHR3ZWVuLmVsZW0sIHR3ZWVuLnByb3AsIHR3ZWVuLm5vdyArIHR3ZWVuLnVuaXQgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHR3ZWVuLmVsZW1bIHR3ZWVuLnByb3AgXSA9IHR3ZWVuLm5vdztcblx0XHRcdH1cblx0XHR9XG5cdH1cbn07XG5cbi8vIFN1cHBvcnQ6IElFOVxuLy8gUGFuaWMgYmFzZWQgYXBwcm9hY2ggdG8gc2V0dGluZyB0aGluZ3Mgb24gZGlzY29ubmVjdGVkIG5vZGVzXG5Ud2Vlbi5wcm9wSG9va3Muc2Nyb2xsVG9wID0gVHdlZW4ucHJvcEhvb2tzLnNjcm9sbExlZnQgPSB7XG5cdHNldDogZnVuY3Rpb24oIHR3ZWVuICkge1xuXHRcdGlmICggdHdlZW4uZWxlbS5ub2RlVHlwZSAmJiB0d2Vlbi5lbGVtLnBhcmVudE5vZGUgKSB7XG5cdFx0XHR0d2Vlbi5lbGVtWyB0d2Vlbi5wcm9wIF0gPSB0d2Vlbi5ub3c7XG5cdFx0fVxuXHR9XG59O1xuXG5qUXVlcnkuZWFzaW5nID0ge1xuXHRsaW5lYXI6IGZ1bmN0aW9uKCBwICkge1xuXHRcdHJldHVybiBwO1xuXHR9LFxuXHRzd2luZzogZnVuY3Rpb24oIHAgKSB7XG5cdFx0cmV0dXJuIDAuNSAtIE1hdGguY29zKCBwICogTWF0aC5QSSApIC8gMjtcblx0fVxufTtcblxualF1ZXJ5LmZ4ID0gVHdlZW4ucHJvdG90eXBlLmluaXQ7XG5cbi8vIEJhY2sgQ29tcGF0IDwxLjggZXh0ZW5zaW9uIHBvaW50XG5qUXVlcnkuZnguc3RlcCA9IHt9O1xuXG5cblxuXG52YXJcblx0ZnhOb3csIHRpbWVySWQsXG5cdHJmeHR5cGVzID0gL14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLFxuXHRyZnhudW0gPSBuZXcgUmVnRXhwKCBcIl4oPzooWystXSk9fCkoXCIgKyBwbnVtICsgXCIpKFthLXolXSopJFwiLCBcImlcIiApLFxuXHRycnVuID0gL3F1ZXVlSG9va3MkLyxcblx0YW5pbWF0aW9uUHJlZmlsdGVycyA9IFsgZGVmYXVsdFByZWZpbHRlciBdLFxuXHR0d2VlbmVycyA9IHtcblx0XHRcIipcIjogWyBmdW5jdGlvbiggcHJvcCwgdmFsdWUgKSB7XG5cdFx0XHR2YXIgdHdlZW4gPSB0aGlzLmNyZWF0ZVR3ZWVuKCBwcm9wLCB2YWx1ZSApLFxuXHRcdFx0XHR0YXJnZXQgPSB0d2Vlbi5jdXIoKSxcblx0XHRcdFx0cGFydHMgPSByZnhudW0uZXhlYyggdmFsdWUgKSxcblx0XHRcdFx0dW5pdCA9IHBhcnRzICYmIHBhcnRzWyAzIF0gfHwgKCBqUXVlcnkuY3NzTnVtYmVyWyBwcm9wIF0gPyBcIlwiIDogXCJweFwiICksXG5cblx0XHRcdFx0Ly8gU3RhcnRpbmcgdmFsdWUgY29tcHV0YXRpb24gaXMgcmVxdWlyZWQgZm9yIHBvdGVudGlhbCB1bml0IG1pc21hdGNoZXNcblx0XHRcdFx0c3RhcnQgPSAoIGpRdWVyeS5jc3NOdW1iZXJbIHByb3AgXSB8fCB1bml0ICE9PSBcInB4XCIgJiYgK3RhcmdldCApICYmXG5cdFx0XHRcdFx0cmZ4bnVtLmV4ZWMoIGpRdWVyeS5jc3MoIHR3ZWVuLmVsZW0sIHByb3AgKSApLFxuXHRcdFx0XHRzY2FsZSA9IDEsXG5cdFx0XHRcdG1heEl0ZXJhdGlvbnMgPSAyMDtcblxuXHRcdFx0aWYgKCBzdGFydCAmJiBzdGFydFsgMyBdICE9PSB1bml0ICkge1xuXHRcdFx0XHQvLyBUcnVzdCB1bml0cyByZXBvcnRlZCBieSBqUXVlcnkuY3NzXG5cdFx0XHRcdHVuaXQgPSB1bml0IHx8IHN0YXJ0WyAzIF07XG5cblx0XHRcdFx0Ly8gTWFrZSBzdXJlIHdlIHVwZGF0ZSB0aGUgdHdlZW4gcHJvcGVydGllcyBsYXRlciBvblxuXHRcdFx0XHRwYXJ0cyA9IHBhcnRzIHx8IFtdO1xuXG5cdFx0XHRcdC8vIEl0ZXJhdGl2ZWx5IGFwcHJveGltYXRlIGZyb20gYSBub256ZXJvIHN0YXJ0aW5nIHBvaW50XG5cdFx0XHRcdHN0YXJ0ID0gK3RhcmdldCB8fCAxO1xuXG5cdFx0XHRcdGRvIHtcblx0XHRcdFx0XHQvLyBJZiBwcmV2aW91cyBpdGVyYXRpb24gemVyb2VkIG91dCwgZG91YmxlIHVudGlsIHdlIGdldCAqc29tZXRoaW5nKi5cblx0XHRcdFx0XHQvLyBVc2Ugc3RyaW5nIGZvciBkb3VibGluZyBzbyB3ZSBkb24ndCBhY2NpZGVudGFsbHkgc2VlIHNjYWxlIGFzIHVuY2hhbmdlZCBiZWxvd1xuXHRcdFx0XHRcdHNjYWxlID0gc2NhbGUgfHwgXCIuNVwiO1xuXG5cdFx0XHRcdFx0Ly8gQWRqdXN0IGFuZCBhcHBseVxuXHRcdFx0XHRcdHN0YXJ0ID0gc3RhcnQgLyBzY2FsZTtcblx0XHRcdFx0XHRqUXVlcnkuc3R5bGUoIHR3ZWVuLmVsZW0sIHByb3AsIHN0YXJ0ICsgdW5pdCApO1xuXG5cdFx0XHRcdC8vIFVwZGF0ZSBzY2FsZSwgdG9sZXJhdGluZyB6ZXJvIG9yIE5hTiBmcm9tIHR3ZWVuLmN1cigpLFxuXHRcdFx0XHQvLyBicmVhayB0aGUgbG9vcCBpZiBzY2FsZSBpcyB1bmNoYW5nZWQgb3IgcGVyZmVjdCwgb3IgaWYgd2UndmUganVzdCBoYWQgZW5vdWdoXG5cdFx0XHRcdH0gd2hpbGUgKCBzY2FsZSAhPT0gKHNjYWxlID0gdHdlZW4uY3VyKCkgLyB0YXJnZXQpICYmIHNjYWxlICE9PSAxICYmIC0tbWF4SXRlcmF0aW9ucyApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBVcGRhdGUgdHdlZW4gcHJvcGVydGllc1xuXHRcdFx0aWYgKCBwYXJ0cyApIHtcblx0XHRcdFx0c3RhcnQgPSB0d2Vlbi5zdGFydCA9ICtzdGFydCB8fCArdGFyZ2V0IHx8IDA7XG5cdFx0XHRcdHR3ZWVuLnVuaXQgPSB1bml0O1xuXHRcdFx0XHQvLyBJZiBhICs9Ly09IHRva2VuIHdhcyBwcm92aWRlZCwgd2UncmUgZG9pbmcgYSByZWxhdGl2ZSBhbmltYXRpb25cblx0XHRcdFx0dHdlZW4uZW5kID0gcGFydHNbIDEgXSA/XG5cdFx0XHRcdFx0c3RhcnQgKyAoIHBhcnRzWyAxIF0gKyAxICkgKiBwYXJ0c1sgMiBdIDpcblx0XHRcdFx0XHQrcGFydHNbIDIgXTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHR3ZWVuO1xuXHRcdH0gXVxuXHR9O1xuXG4vLyBBbmltYXRpb25zIGNyZWF0ZWQgc3luY2hyb25vdXNseSB3aWxsIHJ1biBzeW5jaHJvbm91c2x5XG5mdW5jdGlvbiBjcmVhdGVGeE5vdygpIHtcblx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcblx0XHRmeE5vdyA9IHVuZGVmaW5lZDtcblx0fSk7XG5cdHJldHVybiAoIGZ4Tm93ID0galF1ZXJ5Lm5vdygpICk7XG59XG5cbi8vIEdlbmVyYXRlIHBhcmFtZXRlcnMgdG8gY3JlYXRlIGEgc3RhbmRhcmQgYW5pbWF0aW9uXG5mdW5jdGlvbiBnZW5GeCggdHlwZSwgaW5jbHVkZVdpZHRoICkge1xuXHR2YXIgd2hpY2gsXG5cdFx0aSA9IDAsXG5cdFx0YXR0cnMgPSB7IGhlaWdodDogdHlwZSB9O1xuXG5cdC8vIElmIHdlIGluY2x1ZGUgd2lkdGgsIHN0ZXAgdmFsdWUgaXMgMSB0byBkbyBhbGwgY3NzRXhwYW5kIHZhbHVlcyxcblx0Ly8gb3RoZXJ3aXNlIHN0ZXAgdmFsdWUgaXMgMiB0byBza2lwIG92ZXIgTGVmdCBhbmQgUmlnaHRcblx0aW5jbHVkZVdpZHRoID0gaW5jbHVkZVdpZHRoID8gMSA6IDA7XG5cdGZvciAoIDsgaSA8IDQgOyBpICs9IDIgLSBpbmNsdWRlV2lkdGggKSB7XG5cdFx0d2hpY2ggPSBjc3NFeHBhbmRbIGkgXTtcblx0XHRhdHRyc1sgXCJtYXJnaW5cIiArIHdoaWNoIF0gPSBhdHRyc1sgXCJwYWRkaW5nXCIgKyB3aGljaCBdID0gdHlwZTtcblx0fVxuXG5cdGlmICggaW5jbHVkZVdpZHRoICkge1xuXHRcdGF0dHJzLm9wYWNpdHkgPSBhdHRycy53aWR0aCA9IHR5cGU7XG5cdH1cblxuXHRyZXR1cm4gYXR0cnM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVR3ZWVuKCB2YWx1ZSwgcHJvcCwgYW5pbWF0aW9uICkge1xuXHR2YXIgdHdlZW4sXG5cdFx0Y29sbGVjdGlvbiA9ICggdHdlZW5lcnNbIHByb3AgXSB8fCBbXSApLmNvbmNhdCggdHdlZW5lcnNbIFwiKlwiIF0gKSxcblx0XHRpbmRleCA9IDAsXG5cdFx0bGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGg7XG5cdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0aWYgKCAodHdlZW4gPSBjb2xsZWN0aW9uWyBpbmRleCBdLmNhbGwoIGFuaW1hdGlvbiwgcHJvcCwgdmFsdWUgKSkgKSB7XG5cblx0XHRcdC8vIFdlJ3JlIGRvbmUgd2l0aCB0aGlzIHByb3BlcnR5XG5cdFx0XHRyZXR1cm4gdHdlZW47XG5cdFx0fVxuXHR9XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRQcmVmaWx0ZXIoIGVsZW0sIHByb3BzLCBvcHRzICkge1xuXHQvKiBqc2hpbnQgdmFsaWR0aGlzOiB0cnVlICovXG5cdHZhciBwcm9wLCB2YWx1ZSwgdG9nZ2xlLCB0d2VlbiwgaG9va3MsIG9sZGZpcmUsIGRpc3BsYXksIGNoZWNrRGlzcGxheSxcblx0XHRhbmltID0gdGhpcyxcblx0XHRvcmlnID0ge30sXG5cdFx0c3R5bGUgPSBlbGVtLnN0eWxlLFxuXHRcdGhpZGRlbiA9IGVsZW0ubm9kZVR5cGUgJiYgaXNIaWRkZW4oIGVsZW0gKSxcblx0XHRkYXRhU2hvdyA9IGRhdGFfcHJpdi5nZXQoIGVsZW0sIFwiZnhzaG93XCIgKTtcblxuXHQvLyBIYW5kbGUgcXVldWU6IGZhbHNlIHByb21pc2VzXG5cdGlmICggIW9wdHMucXVldWUgKSB7XG5cdFx0aG9va3MgPSBqUXVlcnkuX3F1ZXVlSG9va3MoIGVsZW0sIFwiZnhcIiApO1xuXHRcdGlmICggaG9va3MudW5xdWV1ZWQgPT0gbnVsbCApIHtcblx0XHRcdGhvb2tzLnVucXVldWVkID0gMDtcblx0XHRcdG9sZGZpcmUgPSBob29rcy5lbXB0eS5maXJlO1xuXHRcdFx0aG9va3MuZW1wdHkuZmlyZSA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoICFob29rcy51bnF1ZXVlZCApIHtcblx0XHRcdFx0XHRvbGRmaXJlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0fVxuXHRcdGhvb2tzLnVucXVldWVkKys7XG5cblx0XHRhbmltLmFsd2F5cyhmdW5jdGlvbigpIHtcblx0XHRcdC8vIEVuc3VyZSB0aGUgY29tcGxldGUgaGFuZGxlciBpcyBjYWxsZWQgYmVmb3JlIHRoaXMgY29tcGxldGVzXG5cdFx0XHRhbmltLmFsd2F5cyhmdW5jdGlvbigpIHtcblx0XHRcdFx0aG9va3MudW5xdWV1ZWQtLTtcblx0XHRcdFx0aWYgKCAhalF1ZXJ5LnF1ZXVlKCBlbGVtLCBcImZ4XCIgKS5sZW5ndGggKSB7XG5cdFx0XHRcdFx0aG9va3MuZW1wdHkuZmlyZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdC8vIEhlaWdodC93aWR0aCBvdmVyZmxvdyBwYXNzXG5cdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSAmJiAoIFwiaGVpZ2h0XCIgaW4gcHJvcHMgfHwgXCJ3aWR0aFwiIGluIHByb3BzICkgKSB7XG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgbm90aGluZyBzbmVha3Mgb3V0XG5cdFx0Ly8gUmVjb3JkIGFsbCAzIG92ZXJmbG93IGF0dHJpYnV0ZXMgYmVjYXVzZSBJRTktMTAgZG8gbm90XG5cdFx0Ly8gY2hhbmdlIHRoZSBvdmVyZmxvdyBhdHRyaWJ1dGUgd2hlbiBvdmVyZmxvd1ggYW5kXG5cdFx0Ly8gb3ZlcmZsb3dZIGFyZSBzZXQgdG8gdGhlIHNhbWUgdmFsdWVcblx0XHRvcHRzLm92ZXJmbG93ID0gWyBzdHlsZS5vdmVyZmxvdywgc3R5bGUub3ZlcmZsb3dYLCBzdHlsZS5vdmVyZmxvd1kgXTtcblxuXHRcdC8vIFNldCBkaXNwbGF5IHByb3BlcnR5IHRvIGlubGluZS1ibG9jayBmb3IgaGVpZ2h0L3dpZHRoXG5cdFx0Ly8gYW5pbWF0aW9ucyBvbiBpbmxpbmUgZWxlbWVudHMgdGhhdCBhcmUgaGF2aW5nIHdpZHRoL2hlaWdodCBhbmltYXRlZFxuXHRcdGRpc3BsYXkgPSBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiApO1xuXG5cdFx0Ly8gVGVzdCBkZWZhdWx0IGRpc3BsYXkgaWYgZGlzcGxheSBpcyBjdXJyZW50bHkgXCJub25lXCJcblx0XHRjaGVja0Rpc3BsYXkgPSBkaXNwbGF5ID09PSBcIm5vbmVcIiA/XG5cdFx0XHRkYXRhX3ByaXYuZ2V0KCBlbGVtLCBcIm9sZGRpc3BsYXlcIiApIHx8IGRlZmF1bHREaXNwbGF5KCBlbGVtLm5vZGVOYW1lICkgOiBkaXNwbGF5O1xuXG5cdFx0aWYgKCBjaGVja0Rpc3BsYXkgPT09IFwiaW5saW5lXCIgJiYgalF1ZXJ5LmNzcyggZWxlbSwgXCJmbG9hdFwiICkgPT09IFwibm9uZVwiICkge1xuXHRcdFx0c3R5bGUuZGlzcGxheSA9IFwiaW5saW5lLWJsb2NrXCI7XG5cdFx0fVxuXHR9XG5cblx0aWYgKCBvcHRzLm92ZXJmbG93ICkge1xuXHRcdHN0eWxlLm92ZXJmbG93ID0gXCJoaWRkZW5cIjtcblx0XHRhbmltLmFsd2F5cyhmdW5jdGlvbigpIHtcblx0XHRcdHN0eWxlLm92ZXJmbG93ID0gb3B0cy5vdmVyZmxvd1sgMCBdO1xuXHRcdFx0c3R5bGUub3ZlcmZsb3dYID0gb3B0cy5vdmVyZmxvd1sgMSBdO1xuXHRcdFx0c3R5bGUub3ZlcmZsb3dZID0gb3B0cy5vdmVyZmxvd1sgMiBdO1xuXHRcdH0pO1xuXHR9XG5cblx0Ly8gc2hvdy9oaWRlIHBhc3Ncblx0Zm9yICggcHJvcCBpbiBwcm9wcyApIHtcblx0XHR2YWx1ZSA9IHByb3BzWyBwcm9wIF07XG5cdFx0aWYgKCByZnh0eXBlcy5leGVjKCB2YWx1ZSApICkge1xuXHRcdFx0ZGVsZXRlIHByb3BzWyBwcm9wIF07XG5cdFx0XHR0b2dnbGUgPSB0b2dnbGUgfHwgdmFsdWUgPT09IFwidG9nZ2xlXCI7XG5cdFx0XHRpZiAoIHZhbHVlID09PSAoIGhpZGRlbiA/IFwiaGlkZVwiIDogXCJzaG93XCIgKSApIHtcblxuXHRcdFx0XHQvLyBJZiB0aGVyZSBpcyBkYXRhU2hvdyBsZWZ0IG92ZXIgZnJvbSBhIHN0b3BwZWQgaGlkZSBvciBzaG93IGFuZCB3ZSBhcmUgZ29pbmcgdG8gcHJvY2VlZCB3aXRoIHNob3csIHdlIHNob3VsZCBwcmV0ZW5kIHRvIGJlIGhpZGRlblxuXHRcdFx0XHRpZiAoIHZhbHVlID09PSBcInNob3dcIiAmJiBkYXRhU2hvdyAmJiBkYXRhU2hvd1sgcHJvcCBdICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdFx0aGlkZGVuID0gdHJ1ZTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0b3JpZ1sgcHJvcCBdID0gZGF0YVNob3cgJiYgZGF0YVNob3dbIHByb3AgXSB8fCBqUXVlcnkuc3R5bGUoIGVsZW0sIHByb3AgKTtcblxuXHRcdC8vIEFueSBub24tZnggdmFsdWUgc3RvcHMgdXMgZnJvbSByZXN0b3JpbmcgdGhlIG9yaWdpbmFsIGRpc3BsYXkgdmFsdWVcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGlzcGxheSA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRpZiAoICFqUXVlcnkuaXNFbXB0eU9iamVjdCggb3JpZyApICkge1xuXHRcdGlmICggZGF0YVNob3cgKSB7XG5cdFx0XHRpZiAoIFwiaGlkZGVuXCIgaW4gZGF0YVNob3cgKSB7XG5cdFx0XHRcdGhpZGRlbiA9IGRhdGFTaG93LmhpZGRlbjtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGF0YVNob3cgPSBkYXRhX3ByaXYuYWNjZXNzKCBlbGVtLCBcImZ4c2hvd1wiLCB7fSApO1xuXHRcdH1cblxuXHRcdC8vIFN0b3JlIHN0YXRlIGlmIGl0cyB0b2dnbGUgLSBlbmFibGVzIC5zdG9wKCkudG9nZ2xlKCkgdG8gXCJyZXZlcnNlXCJcblx0XHRpZiAoIHRvZ2dsZSApIHtcblx0XHRcdGRhdGFTaG93LmhpZGRlbiA9ICFoaWRkZW47XG5cdFx0fVxuXHRcdGlmICggaGlkZGVuICkge1xuXHRcdFx0alF1ZXJ5KCBlbGVtICkuc2hvdygpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRhbmltLmRvbmUoZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGpRdWVyeSggZWxlbSApLmhpZGUoKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRhbmltLmRvbmUoZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgcHJvcDtcblxuXHRcdFx0ZGF0YV9wcml2LnJlbW92ZSggZWxlbSwgXCJmeHNob3dcIiApO1xuXHRcdFx0Zm9yICggcHJvcCBpbiBvcmlnICkge1xuXHRcdFx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIHByb3AsIG9yaWdbIHByb3AgXSApO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdGZvciAoIHByb3AgaW4gb3JpZyApIHtcblx0XHRcdHR3ZWVuID0gY3JlYXRlVHdlZW4oIGhpZGRlbiA/IGRhdGFTaG93WyBwcm9wIF0gOiAwLCBwcm9wLCBhbmltICk7XG5cblx0XHRcdGlmICggISggcHJvcCBpbiBkYXRhU2hvdyApICkge1xuXHRcdFx0XHRkYXRhU2hvd1sgcHJvcCBdID0gdHdlZW4uc3RhcnQ7XG5cdFx0XHRcdGlmICggaGlkZGVuICkge1xuXHRcdFx0XHRcdHR3ZWVuLmVuZCA9IHR3ZWVuLnN0YXJ0O1xuXHRcdFx0XHRcdHR3ZWVuLnN0YXJ0ID0gcHJvcCA9PT0gXCJ3aWR0aFwiIHx8IHByb3AgPT09IFwiaGVpZ2h0XCIgPyAxIDogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHQvLyBJZiB0aGlzIGlzIGEgbm9vcCBsaWtlIC5oaWRlKCkuaGlkZSgpLCByZXN0b3JlIGFuIG92ZXJ3cml0dGVuIGRpc3BsYXkgdmFsdWVcblx0fSBlbHNlIGlmICggKGRpc3BsYXkgPT09IFwibm9uZVwiID8gZGVmYXVsdERpc3BsYXkoIGVsZW0ubm9kZU5hbWUgKSA6IGRpc3BsYXkpID09PSBcImlubGluZVwiICkge1xuXHRcdHN0eWxlLmRpc3BsYXkgPSBkaXNwbGF5O1xuXHR9XG59XG5cbmZ1bmN0aW9uIHByb3BGaWx0ZXIoIHByb3BzLCBzcGVjaWFsRWFzaW5nICkge1xuXHR2YXIgaW5kZXgsIG5hbWUsIGVhc2luZywgdmFsdWUsIGhvb2tzO1xuXG5cdC8vIGNhbWVsQ2FzZSwgc3BlY2lhbEVhc2luZyBhbmQgZXhwYW5kIGNzc0hvb2sgcGFzc1xuXHRmb3IgKCBpbmRleCBpbiBwcm9wcyApIHtcblx0XHRuYW1lID0galF1ZXJ5LmNhbWVsQ2FzZSggaW5kZXggKTtcblx0XHRlYXNpbmcgPSBzcGVjaWFsRWFzaW5nWyBuYW1lIF07XG5cdFx0dmFsdWUgPSBwcm9wc1sgaW5kZXggXTtcblx0XHRpZiAoIGpRdWVyeS5pc0FycmF5KCB2YWx1ZSApICkge1xuXHRcdFx0ZWFzaW5nID0gdmFsdWVbIDEgXTtcblx0XHRcdHZhbHVlID0gcHJvcHNbIGluZGV4IF0gPSB2YWx1ZVsgMCBdO1xuXHRcdH1cblxuXHRcdGlmICggaW5kZXggIT09IG5hbWUgKSB7XG5cdFx0XHRwcm9wc1sgbmFtZSBdID0gdmFsdWU7XG5cdFx0XHRkZWxldGUgcHJvcHNbIGluZGV4IF07XG5cdFx0fVxuXG5cdFx0aG9va3MgPSBqUXVlcnkuY3NzSG9va3NbIG5hbWUgXTtcblx0XHRpZiAoIGhvb2tzICYmIFwiZXhwYW5kXCIgaW4gaG9va3MgKSB7XG5cdFx0XHR2YWx1ZSA9IGhvb2tzLmV4cGFuZCggdmFsdWUgKTtcblx0XHRcdGRlbGV0ZSBwcm9wc1sgbmFtZSBdO1xuXG5cdFx0XHQvLyBOb3QgcXVpdGUgJC5leHRlbmQsIHRoaXMgd29uJ3Qgb3ZlcndyaXRlIGV4aXN0aW5nIGtleXMuXG5cdFx0XHQvLyBSZXVzaW5nICdpbmRleCcgYmVjYXVzZSB3ZSBoYXZlIHRoZSBjb3JyZWN0IFwibmFtZVwiXG5cdFx0XHRmb3IgKCBpbmRleCBpbiB2YWx1ZSApIHtcblx0XHRcdFx0aWYgKCAhKCBpbmRleCBpbiBwcm9wcyApICkge1xuXHRcdFx0XHRcdHByb3BzWyBpbmRleCBdID0gdmFsdWVbIGluZGV4IF07XG5cdFx0XHRcdFx0c3BlY2lhbEVhc2luZ1sgaW5kZXggXSA9IGVhc2luZztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRzcGVjaWFsRWFzaW5nWyBuYW1lIF0gPSBlYXNpbmc7XG5cdFx0fVxuXHR9XG59XG5cbmZ1bmN0aW9uIEFuaW1hdGlvbiggZWxlbSwgcHJvcGVydGllcywgb3B0aW9ucyApIHtcblx0dmFyIHJlc3VsdCxcblx0XHRzdG9wcGVkLFxuXHRcdGluZGV4ID0gMCxcblx0XHRsZW5ndGggPSBhbmltYXRpb25QcmVmaWx0ZXJzLmxlbmd0aCxcblx0XHRkZWZlcnJlZCA9IGpRdWVyeS5EZWZlcnJlZCgpLmFsd2F5cyggZnVuY3Rpb24oKSB7XG5cdFx0XHQvLyBEb24ndCBtYXRjaCBlbGVtIGluIHRoZSA6YW5pbWF0ZWQgc2VsZWN0b3Jcblx0XHRcdGRlbGV0ZSB0aWNrLmVsZW07XG5cdFx0fSksXG5cdFx0dGljayA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0aWYgKCBzdG9wcGVkICkge1xuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0XHR9XG5cdFx0XHR2YXIgY3VycmVudFRpbWUgPSBmeE5vdyB8fCBjcmVhdGVGeE5vdygpLFxuXHRcdFx0XHRyZW1haW5pbmcgPSBNYXRoLm1heCggMCwgYW5pbWF0aW9uLnN0YXJ0VGltZSArIGFuaW1hdGlvbi5kdXJhdGlvbiAtIGN1cnJlbnRUaW1lICksXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IEFuZHJvaWQgMi4zXG5cdFx0XHRcdC8vIEFyY2hhaWMgY3Jhc2ggYnVnIHdvbid0IGFsbG93IHVzIHRvIHVzZSBgMSAtICggMC41IHx8IDAgKWAgKCMxMjQ5Nylcblx0XHRcdFx0dGVtcCA9IHJlbWFpbmluZyAvIGFuaW1hdGlvbi5kdXJhdGlvbiB8fCAwLFxuXHRcdFx0XHRwZXJjZW50ID0gMSAtIHRlbXAsXG5cdFx0XHRcdGluZGV4ID0gMCxcblx0XHRcdFx0bGVuZ3RoID0gYW5pbWF0aW9uLnR3ZWVucy5sZW5ndGg7XG5cblx0XHRcdGZvciAoIDsgaW5kZXggPCBsZW5ndGggOyBpbmRleCsrICkge1xuXHRcdFx0XHRhbmltYXRpb24udHdlZW5zWyBpbmRleCBdLnJ1biggcGVyY2VudCApO1xuXHRcdFx0fVxuXG5cdFx0XHRkZWZlcnJlZC5ub3RpZnlXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiwgcGVyY2VudCwgcmVtYWluaW5nIF0pO1xuXG5cdFx0XHRpZiAoIHBlcmNlbnQgPCAxICYmIGxlbmd0aCApIHtcblx0XHRcdFx0cmV0dXJuIHJlbWFpbmluZztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGRlZmVycmVkLnJlc29sdmVXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiBdICk7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHR9LFxuXHRcdGFuaW1hdGlvbiA9IGRlZmVycmVkLnByb21pc2Uoe1xuXHRcdFx0ZWxlbTogZWxlbSxcblx0XHRcdHByb3BzOiBqUXVlcnkuZXh0ZW5kKCB7fSwgcHJvcGVydGllcyApLFxuXHRcdFx0b3B0czogalF1ZXJ5LmV4dGVuZCggdHJ1ZSwgeyBzcGVjaWFsRWFzaW5nOiB7fSB9LCBvcHRpb25zICksXG5cdFx0XHRvcmlnaW5hbFByb3BlcnRpZXM6IHByb3BlcnRpZXMsXG5cdFx0XHRvcmlnaW5hbE9wdGlvbnM6IG9wdGlvbnMsXG5cdFx0XHRzdGFydFRpbWU6IGZ4Tm93IHx8IGNyZWF0ZUZ4Tm93KCksXG5cdFx0XHRkdXJhdGlvbjogb3B0aW9ucy5kdXJhdGlvbixcblx0XHRcdHR3ZWVuczogW10sXG5cdFx0XHRjcmVhdGVUd2VlbjogZnVuY3Rpb24oIHByb3AsIGVuZCApIHtcblx0XHRcdFx0dmFyIHR3ZWVuID0galF1ZXJ5LlR3ZWVuKCBlbGVtLCBhbmltYXRpb24ub3B0cywgcHJvcCwgZW5kLFxuXHRcdFx0XHRcdFx0YW5pbWF0aW9uLm9wdHMuc3BlY2lhbEVhc2luZ1sgcHJvcCBdIHx8IGFuaW1hdGlvbi5vcHRzLmVhc2luZyApO1xuXHRcdFx0XHRhbmltYXRpb24udHdlZW5zLnB1c2goIHR3ZWVuICk7XG5cdFx0XHRcdHJldHVybiB0d2Vlbjtcblx0XHRcdH0sXG5cdFx0XHRzdG9wOiBmdW5jdGlvbiggZ290b0VuZCApIHtcblx0XHRcdFx0dmFyIGluZGV4ID0gMCxcblx0XHRcdFx0XHQvLyBJZiB3ZSBhcmUgZ29pbmcgdG8gdGhlIGVuZCwgd2Ugd2FudCB0byBydW4gYWxsIHRoZSB0d2VlbnNcblx0XHRcdFx0XHQvLyBvdGhlcndpc2Ugd2Ugc2tpcCB0aGlzIHBhcnRcblx0XHRcdFx0XHRsZW5ndGggPSBnb3RvRW5kID8gYW5pbWF0aW9uLnR3ZWVucy5sZW5ndGggOiAwO1xuXHRcdFx0XHRpZiAoIHN0b3BwZWQgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHRcdH1cblx0XHRcdFx0c3RvcHBlZCA9IHRydWU7XG5cdFx0XHRcdGZvciAoIDsgaW5kZXggPCBsZW5ndGggOyBpbmRleCsrICkge1xuXHRcdFx0XHRcdGFuaW1hdGlvbi50d2VlbnNbIGluZGV4IF0ucnVuKCAxICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBSZXNvbHZlIHdoZW4gd2UgcGxheWVkIHRoZSBsYXN0IGZyYW1lOyBvdGhlcndpc2UsIHJlamVjdFxuXHRcdFx0XHRpZiAoIGdvdG9FbmQgKSB7XG5cdFx0XHRcdFx0ZGVmZXJyZWQucmVzb2x2ZVdpdGgoIGVsZW0sIFsgYW5pbWF0aW9uLCBnb3RvRW5kIF0gKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRkZWZlcnJlZC5yZWplY3RXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiwgZ290b0VuZCBdICk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9XG5cdFx0fSksXG5cdFx0cHJvcHMgPSBhbmltYXRpb24ucHJvcHM7XG5cblx0cHJvcEZpbHRlciggcHJvcHMsIGFuaW1hdGlvbi5vcHRzLnNwZWNpYWxFYXNpbmcgKTtcblxuXHRmb3IgKCA7IGluZGV4IDwgbGVuZ3RoIDsgaW5kZXgrKyApIHtcblx0XHRyZXN1bHQgPSBhbmltYXRpb25QcmVmaWx0ZXJzWyBpbmRleCBdLmNhbGwoIGFuaW1hdGlvbiwgZWxlbSwgcHJvcHMsIGFuaW1hdGlvbi5vcHRzICk7XG5cdFx0aWYgKCByZXN1bHQgKSB7XG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH1cblx0fVxuXG5cdGpRdWVyeS5tYXAoIHByb3BzLCBjcmVhdGVUd2VlbiwgYW5pbWF0aW9uICk7XG5cblx0aWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggYW5pbWF0aW9uLm9wdHMuc3RhcnQgKSApIHtcblx0XHRhbmltYXRpb24ub3B0cy5zdGFydC5jYWxsKCBlbGVtLCBhbmltYXRpb24gKTtcblx0fVxuXG5cdGpRdWVyeS5meC50aW1lcihcblx0XHRqUXVlcnkuZXh0ZW5kKCB0aWNrLCB7XG5cdFx0XHRlbGVtOiBlbGVtLFxuXHRcdFx0YW5pbTogYW5pbWF0aW9uLFxuXHRcdFx0cXVldWU6IGFuaW1hdGlvbi5vcHRzLnF1ZXVlXG5cdFx0fSlcblx0KTtcblxuXHQvLyBhdHRhY2ggY2FsbGJhY2tzIGZyb20gb3B0aW9uc1xuXHRyZXR1cm4gYW5pbWF0aW9uLnByb2dyZXNzKCBhbmltYXRpb24ub3B0cy5wcm9ncmVzcyApXG5cdFx0LmRvbmUoIGFuaW1hdGlvbi5vcHRzLmRvbmUsIGFuaW1hdGlvbi5vcHRzLmNvbXBsZXRlIClcblx0XHQuZmFpbCggYW5pbWF0aW9uLm9wdHMuZmFpbCApXG5cdFx0LmFsd2F5cyggYW5pbWF0aW9uLm9wdHMuYWx3YXlzICk7XG59XG5cbmpRdWVyeS5BbmltYXRpb24gPSBqUXVlcnkuZXh0ZW5kKCBBbmltYXRpb24sIHtcblxuXHR0d2VlbmVyOiBmdW5jdGlvbiggcHJvcHMsIGNhbGxiYWNrICkge1xuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHByb3BzICkgKSB7XG5cdFx0XHRjYWxsYmFjayA9IHByb3BzO1xuXHRcdFx0cHJvcHMgPSBbIFwiKlwiIF07XG5cdFx0fSBlbHNlIHtcblx0XHRcdHByb3BzID0gcHJvcHMuc3BsaXQoXCIgXCIpO1xuXHRcdH1cblxuXHRcdHZhciBwcm9wLFxuXHRcdFx0aW5kZXggPSAwLFxuXHRcdFx0bGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG5cdFx0Zm9yICggOyBpbmRleCA8IGxlbmd0aCA7IGluZGV4KysgKSB7XG5cdFx0XHRwcm9wID0gcHJvcHNbIGluZGV4IF07XG5cdFx0XHR0d2VlbmVyc1sgcHJvcCBdID0gdHdlZW5lcnNbIHByb3AgXSB8fCBbXTtcblx0XHRcdHR3ZWVuZXJzWyBwcm9wIF0udW5zaGlmdCggY2FsbGJhY2sgKTtcblx0XHR9XG5cdH0sXG5cblx0cHJlZmlsdGVyOiBmdW5jdGlvbiggY2FsbGJhY2ssIHByZXBlbmQgKSB7XG5cdFx0aWYgKCBwcmVwZW5kICkge1xuXHRcdFx0YW5pbWF0aW9uUHJlZmlsdGVycy51bnNoaWZ0KCBjYWxsYmFjayApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRhbmltYXRpb25QcmVmaWx0ZXJzLnB1c2goIGNhbGxiYWNrICk7XG5cdFx0fVxuXHR9XG59KTtcblxualF1ZXJ5LnNwZWVkID0gZnVuY3Rpb24oIHNwZWVkLCBlYXNpbmcsIGZuICkge1xuXHR2YXIgb3B0ID0gc3BlZWQgJiYgdHlwZW9mIHNwZWVkID09PSBcIm9iamVjdFwiID8galF1ZXJ5LmV4dGVuZCgge30sIHNwZWVkICkgOiB7XG5cdFx0Y29tcGxldGU6IGZuIHx8ICFmbiAmJiBlYXNpbmcgfHxcblx0XHRcdGpRdWVyeS5pc0Z1bmN0aW9uKCBzcGVlZCApICYmIHNwZWVkLFxuXHRcdGR1cmF0aW9uOiBzcGVlZCxcblx0XHRlYXNpbmc6IGZuICYmIGVhc2luZyB8fCBlYXNpbmcgJiYgIWpRdWVyeS5pc0Z1bmN0aW9uKCBlYXNpbmcgKSAmJiBlYXNpbmdcblx0fTtcblxuXHRvcHQuZHVyYXRpb24gPSBqUXVlcnkuZngub2ZmID8gMCA6IHR5cGVvZiBvcHQuZHVyYXRpb24gPT09IFwibnVtYmVyXCIgPyBvcHQuZHVyYXRpb24gOlxuXHRcdG9wdC5kdXJhdGlvbiBpbiBqUXVlcnkuZnguc3BlZWRzID8galF1ZXJ5LmZ4LnNwZWVkc1sgb3B0LmR1cmF0aW9uIF0gOiBqUXVlcnkuZnguc3BlZWRzLl9kZWZhdWx0O1xuXG5cdC8vIE5vcm1hbGl6ZSBvcHQucXVldWUgLSB0cnVlL3VuZGVmaW5lZC9udWxsIC0+IFwiZnhcIlxuXHRpZiAoIG9wdC5xdWV1ZSA9PSBudWxsIHx8IG9wdC5xdWV1ZSA9PT0gdHJ1ZSApIHtcblx0XHRvcHQucXVldWUgPSBcImZ4XCI7XG5cdH1cblxuXHQvLyBRdWV1ZWluZ1xuXHRvcHQub2xkID0gb3B0LmNvbXBsZXRlO1xuXG5cdG9wdC5jb21wbGV0ZSA9IGZ1bmN0aW9uKCkge1xuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIG9wdC5vbGQgKSApIHtcblx0XHRcdG9wdC5vbGQuY2FsbCggdGhpcyApO1xuXHRcdH1cblxuXHRcdGlmICggb3B0LnF1ZXVlICkge1xuXHRcdFx0alF1ZXJ5LmRlcXVldWUoIHRoaXMsIG9wdC5xdWV1ZSApO1xuXHRcdH1cblx0fTtcblxuXHRyZXR1cm4gb3B0O1xufTtcblxualF1ZXJ5LmZuLmV4dGVuZCh7XG5cdGZhZGVUbzogZnVuY3Rpb24oIHNwZWVkLCB0bywgZWFzaW5nLCBjYWxsYmFjayApIHtcblxuXHRcdC8vIFNob3cgYW55IGhpZGRlbiBlbGVtZW50cyBhZnRlciBzZXR0aW5nIG9wYWNpdHkgdG8gMFxuXHRcdHJldHVybiB0aGlzLmZpbHRlciggaXNIaWRkZW4gKS5jc3MoIFwib3BhY2l0eVwiLCAwICkuc2hvdygpXG5cblx0XHRcdC8vIEFuaW1hdGUgdG8gdGhlIHZhbHVlIHNwZWNpZmllZFxuXHRcdFx0LmVuZCgpLmFuaW1hdGUoeyBvcGFjaXR5OiB0byB9LCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApO1xuXHR9LFxuXHRhbmltYXRlOiBmdW5jdGlvbiggcHJvcCwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7XG5cdFx0dmFyIGVtcHR5ID0galF1ZXJ5LmlzRW1wdHlPYmplY3QoIHByb3AgKSxcblx0XHRcdG9wdGFsbCA9IGpRdWVyeS5zcGVlZCggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSxcblx0XHRcdGRvQW5pbWF0aW9uID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdC8vIE9wZXJhdGUgb24gYSBjb3B5IG9mIHByb3Agc28gcGVyLXByb3BlcnR5IGVhc2luZyB3b24ndCBiZSBsb3N0XG5cdFx0XHRcdHZhciBhbmltID0gQW5pbWF0aW9uKCB0aGlzLCBqUXVlcnkuZXh0ZW5kKCB7fSwgcHJvcCApLCBvcHRhbGwgKTtcblxuXHRcdFx0XHQvLyBFbXB0eSBhbmltYXRpb25zLCBvciBmaW5pc2hpbmcgcmVzb2x2ZXMgaW1tZWRpYXRlbHlcblx0XHRcdFx0aWYgKCBlbXB0eSB8fCBkYXRhX3ByaXYuZ2V0KCB0aGlzLCBcImZpbmlzaFwiICkgKSB7XG5cdFx0XHRcdFx0YW5pbS5zdG9wKCB0cnVlICk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRkb0FuaW1hdGlvbi5maW5pc2ggPSBkb0FuaW1hdGlvbjtcblxuXHRcdHJldHVybiBlbXB0eSB8fCBvcHRhbGwucXVldWUgPT09IGZhbHNlID9cblx0XHRcdHRoaXMuZWFjaCggZG9BbmltYXRpb24gKSA6XG5cdFx0XHR0aGlzLnF1ZXVlKCBvcHRhbGwucXVldWUsIGRvQW5pbWF0aW9uICk7XG5cdH0sXG5cdHN0b3A6IGZ1bmN0aW9uKCB0eXBlLCBjbGVhclF1ZXVlLCBnb3RvRW5kICkge1xuXHRcdHZhciBzdG9wUXVldWUgPSBmdW5jdGlvbiggaG9va3MgKSB7XG5cdFx0XHR2YXIgc3RvcCA9IGhvb2tzLnN0b3A7XG5cdFx0XHRkZWxldGUgaG9va3Muc3RvcDtcblx0XHRcdHN0b3AoIGdvdG9FbmQgKTtcblx0XHR9O1xuXG5cdFx0aWYgKCB0eXBlb2YgdHlwZSAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdGdvdG9FbmQgPSBjbGVhclF1ZXVlO1xuXHRcdFx0Y2xlYXJRdWV1ZSA9IHR5cGU7XG5cdFx0XHR0eXBlID0gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRpZiAoIGNsZWFyUXVldWUgJiYgdHlwZSAhPT0gZmFsc2UgKSB7XG5cdFx0XHR0aGlzLnF1ZXVlKCB0eXBlIHx8IFwiZnhcIiwgW10gKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIGRlcXVldWUgPSB0cnVlLFxuXHRcdFx0XHRpbmRleCA9IHR5cGUgIT0gbnVsbCAmJiB0eXBlICsgXCJxdWV1ZUhvb2tzXCIsXG5cdFx0XHRcdHRpbWVycyA9IGpRdWVyeS50aW1lcnMsXG5cdFx0XHRcdGRhdGEgPSBkYXRhX3ByaXYuZ2V0KCB0aGlzICk7XG5cblx0XHRcdGlmICggaW5kZXggKSB7XG5cdFx0XHRcdGlmICggZGF0YVsgaW5kZXggXSAmJiBkYXRhWyBpbmRleCBdLnN0b3AgKSB7XG5cdFx0XHRcdFx0c3RvcFF1ZXVlKCBkYXRhWyBpbmRleCBdICk7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGZvciAoIGluZGV4IGluIGRhdGEgKSB7XG5cdFx0XHRcdFx0aWYgKCBkYXRhWyBpbmRleCBdICYmIGRhdGFbIGluZGV4IF0uc3RvcCAmJiBycnVuLnRlc3QoIGluZGV4ICkgKSB7XG5cdFx0XHRcdFx0XHRzdG9wUXVldWUoIGRhdGFbIGluZGV4IF0gKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Zm9yICggaW5kZXggPSB0aW1lcnMubGVuZ3RoOyBpbmRleC0tOyApIHtcblx0XHRcdFx0aWYgKCB0aW1lcnNbIGluZGV4IF0uZWxlbSA9PT0gdGhpcyAmJiAodHlwZSA9PSBudWxsIHx8IHRpbWVyc1sgaW5kZXggXS5xdWV1ZSA9PT0gdHlwZSkgKSB7XG5cdFx0XHRcdFx0dGltZXJzWyBpbmRleCBdLmFuaW0uc3RvcCggZ290b0VuZCApO1xuXHRcdFx0XHRcdGRlcXVldWUgPSBmYWxzZTtcblx0XHRcdFx0XHR0aW1lcnMuc3BsaWNlKCBpbmRleCwgMSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN0YXJ0IHRoZSBuZXh0IGluIHRoZSBxdWV1ZSBpZiB0aGUgbGFzdCBzdGVwIHdhc24ndCBmb3JjZWQuXG5cdFx0XHQvLyBUaW1lcnMgY3VycmVudGx5IHdpbGwgY2FsbCB0aGVpciBjb21wbGV0ZSBjYWxsYmFja3MsIHdoaWNoXG5cdFx0XHQvLyB3aWxsIGRlcXVldWUgYnV0IG9ubHkgaWYgdGhleSB3ZXJlIGdvdG9FbmQuXG5cdFx0XHRpZiAoIGRlcXVldWUgfHwgIWdvdG9FbmQgKSB7XG5cdFx0XHRcdGpRdWVyeS5kZXF1ZXVlKCB0aGlzLCB0eXBlICk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0sXG5cdGZpbmlzaDogZnVuY3Rpb24oIHR5cGUgKSB7XG5cdFx0aWYgKCB0eXBlICE9PSBmYWxzZSApIHtcblx0XHRcdHR5cGUgPSB0eXBlIHx8IFwiZnhcIjtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcblx0XHRcdHZhciBpbmRleCxcblx0XHRcdFx0ZGF0YSA9IGRhdGFfcHJpdi5nZXQoIHRoaXMgKSxcblx0XHRcdFx0cXVldWUgPSBkYXRhWyB0eXBlICsgXCJxdWV1ZVwiIF0sXG5cdFx0XHRcdGhvb2tzID0gZGF0YVsgdHlwZSArIFwicXVldWVIb29rc1wiIF0sXG5cdFx0XHRcdHRpbWVycyA9IGpRdWVyeS50aW1lcnMsXG5cdFx0XHRcdGxlbmd0aCA9IHF1ZXVlID8gcXVldWUubGVuZ3RoIDogMDtcblxuXHRcdFx0Ly8gRW5hYmxlIGZpbmlzaGluZyBmbGFnIG9uIHByaXZhdGUgZGF0YVxuXHRcdFx0ZGF0YS5maW5pc2ggPSB0cnVlO1xuXG5cdFx0XHQvLyBFbXB0eSB0aGUgcXVldWUgZmlyc3Rcblx0XHRcdGpRdWVyeS5xdWV1ZSggdGhpcywgdHlwZSwgW10gKTtcblxuXHRcdFx0aWYgKCBob29rcyAmJiBob29rcy5zdG9wICkge1xuXHRcdFx0XHRob29rcy5zdG9wLmNhbGwoIHRoaXMsIHRydWUgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gTG9vayBmb3IgYW55IGFjdGl2ZSBhbmltYXRpb25zLCBhbmQgZmluaXNoIHRoZW1cblx0XHRcdGZvciAoIGluZGV4ID0gdGltZXJzLmxlbmd0aDsgaW5kZXgtLTsgKSB7XG5cdFx0XHRcdGlmICggdGltZXJzWyBpbmRleCBdLmVsZW0gPT09IHRoaXMgJiYgdGltZXJzWyBpbmRleCBdLnF1ZXVlID09PSB0eXBlICkge1xuXHRcdFx0XHRcdHRpbWVyc1sgaW5kZXggXS5hbmltLnN0b3AoIHRydWUgKTtcblx0XHRcdFx0XHR0aW1lcnMuc3BsaWNlKCBpbmRleCwgMSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIExvb2sgZm9yIGFueSBhbmltYXRpb25zIGluIHRoZSBvbGQgcXVldWUgYW5kIGZpbmlzaCB0aGVtXG5cdFx0XHRmb3IgKCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdFx0XHRpZiAoIHF1ZXVlWyBpbmRleCBdICYmIHF1ZXVlWyBpbmRleCBdLmZpbmlzaCApIHtcblx0XHRcdFx0XHRxdWV1ZVsgaW5kZXggXS5maW5pc2guY2FsbCggdGhpcyApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIFR1cm4gb2ZmIGZpbmlzaGluZyBmbGFnXG5cdFx0XHRkZWxldGUgZGF0YS5maW5pc2g7XG5cdFx0fSk7XG5cdH1cbn0pO1xuXG5qUXVlcnkuZWFjaChbIFwidG9nZ2xlXCIsIFwic2hvd1wiLCBcImhpZGVcIiBdLCBmdW5jdGlvbiggaSwgbmFtZSApIHtcblx0dmFyIGNzc0ZuID0galF1ZXJ5LmZuWyBuYW1lIF07XG5cdGpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICkge1xuXHRcdHJldHVybiBzcGVlZCA9PSBudWxsIHx8IHR5cGVvZiBzcGVlZCA9PT0gXCJib29sZWFuXCIgP1xuXHRcdFx0Y3NzRm4uYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApIDpcblx0XHRcdHRoaXMuYW5pbWF0ZSggZ2VuRngoIG5hbWUsIHRydWUgKSwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKTtcblx0fTtcbn0pO1xuXG4vLyBHZW5lcmF0ZSBzaG9ydGN1dHMgZm9yIGN1c3RvbSBhbmltYXRpb25zXG5qUXVlcnkuZWFjaCh7XG5cdHNsaWRlRG93bjogZ2VuRngoXCJzaG93XCIpLFxuXHRzbGlkZVVwOiBnZW5GeChcImhpZGVcIiksXG5cdHNsaWRlVG9nZ2xlOiBnZW5GeChcInRvZ2dsZVwiKSxcblx0ZmFkZUluOiB7IG9wYWNpdHk6IFwic2hvd1wiIH0sXG5cdGZhZGVPdXQ6IHsgb3BhY2l0eTogXCJoaWRlXCIgfSxcblx0ZmFkZVRvZ2dsZTogeyBvcGFjaXR5OiBcInRvZ2dsZVwiIH1cbn0sIGZ1bmN0aW9uKCBuYW1lLCBwcm9wcyApIHtcblx0alF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7XG5cdFx0cmV0dXJuIHRoaXMuYW5pbWF0ZSggcHJvcHMsIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICk7XG5cdH07XG59KTtcblxualF1ZXJ5LnRpbWVycyA9IFtdO1xualF1ZXJ5LmZ4LnRpY2sgPSBmdW5jdGlvbigpIHtcblx0dmFyIHRpbWVyLFxuXHRcdGkgPSAwLFxuXHRcdHRpbWVycyA9IGpRdWVyeS50aW1lcnM7XG5cblx0ZnhOb3cgPSBqUXVlcnkubm93KCk7XG5cblx0Zm9yICggOyBpIDwgdGltZXJzLmxlbmd0aDsgaSsrICkge1xuXHRcdHRpbWVyID0gdGltZXJzWyBpIF07XG5cdFx0Ly8gQ2hlY2tzIHRoZSB0aW1lciBoYXMgbm90IGFscmVhZHkgYmVlbiByZW1vdmVkXG5cdFx0aWYgKCAhdGltZXIoKSAmJiB0aW1lcnNbIGkgXSA9PT0gdGltZXIgKSB7XG5cdFx0XHR0aW1lcnMuc3BsaWNlKCBpLS0sIDEgKTtcblx0XHR9XG5cdH1cblxuXHRpZiAoICF0aW1lcnMubGVuZ3RoICkge1xuXHRcdGpRdWVyeS5meC5zdG9wKCk7XG5cdH1cblx0ZnhOb3cgPSB1bmRlZmluZWQ7XG59O1xuXG5qUXVlcnkuZngudGltZXIgPSBmdW5jdGlvbiggdGltZXIgKSB7XG5cdGpRdWVyeS50aW1lcnMucHVzaCggdGltZXIgKTtcblx0aWYgKCB0aW1lcigpICkge1xuXHRcdGpRdWVyeS5meC5zdGFydCgpO1xuXHR9IGVsc2Uge1xuXHRcdGpRdWVyeS50aW1lcnMucG9wKCk7XG5cdH1cbn07XG5cbmpRdWVyeS5meC5pbnRlcnZhbCA9IDEzO1xuXG5qUXVlcnkuZnguc3RhcnQgPSBmdW5jdGlvbigpIHtcblx0aWYgKCAhdGltZXJJZCApIHtcblx0XHR0aW1lcklkID0gc2V0SW50ZXJ2YWwoIGpRdWVyeS5meC50aWNrLCBqUXVlcnkuZnguaW50ZXJ2YWwgKTtcblx0fVxufTtcblxualF1ZXJ5LmZ4LnN0b3AgPSBmdW5jdGlvbigpIHtcblx0Y2xlYXJJbnRlcnZhbCggdGltZXJJZCApO1xuXHR0aW1lcklkID0gbnVsbDtcbn07XG5cbmpRdWVyeS5meC5zcGVlZHMgPSB7XG5cdHNsb3c6IDYwMCxcblx0ZmFzdDogMjAwLFxuXHQvLyBEZWZhdWx0IHNwZWVkXG5cdF9kZWZhdWx0OiA0MDBcbn07XG5cblxuLy8gQmFzZWQgb2ZmIG9mIHRoZSBwbHVnaW4gYnkgQ2xpbnQgSGVsZmVycywgd2l0aCBwZXJtaXNzaW9uLlxuLy8gaHR0cDovL2JsaW5kc2lnbmFscy5jb20vaW5kZXgucGhwLzIwMDkvMDcvanF1ZXJ5LWRlbGF5L1xualF1ZXJ5LmZuLmRlbGF5ID0gZnVuY3Rpb24oIHRpbWUsIHR5cGUgKSB7XG5cdHRpbWUgPSBqUXVlcnkuZnggPyBqUXVlcnkuZnguc3BlZWRzWyB0aW1lIF0gfHwgdGltZSA6IHRpbWU7XG5cdHR5cGUgPSB0eXBlIHx8IFwiZnhcIjtcblxuXHRyZXR1cm4gdGhpcy5xdWV1ZSggdHlwZSwgZnVuY3Rpb24oIG5leHQsIGhvb2tzICkge1xuXHRcdHZhciB0aW1lb3V0ID0gc2V0VGltZW91dCggbmV4dCwgdGltZSApO1xuXHRcdGhvb2tzLnN0b3AgPSBmdW5jdGlvbigpIHtcblx0XHRcdGNsZWFyVGltZW91dCggdGltZW91dCApO1xuXHRcdH07XG5cdH0pO1xufTtcblxuXG4oZnVuY3Rpb24oKSB7XG5cdHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiaW5wdXRcIiApLFxuXHRcdHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwic2VsZWN0XCIgKSxcblx0XHRvcHQgPSBzZWxlY3QuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwib3B0aW9uXCIgKSApO1xuXG5cdGlucHV0LnR5cGUgPSBcImNoZWNrYm94XCI7XG5cblx0Ly8gU3VwcG9ydDogaU9TPD01LjEsIEFuZHJvaWQ8PTQuMitcblx0Ly8gRGVmYXVsdCB2YWx1ZSBmb3IgYSBjaGVja2JveCBzaG91bGQgYmUgXCJvblwiXG5cdHN1cHBvcnQuY2hlY2tPbiA9IGlucHV0LnZhbHVlICE9PSBcIlwiO1xuXG5cdC8vIFN1cHBvcnQ6IElFPD0xMStcblx0Ly8gTXVzdCBhY2Nlc3Mgc2VsZWN0ZWRJbmRleCB0byBtYWtlIGRlZmF1bHQgb3B0aW9ucyBzZWxlY3Rcblx0c3VwcG9ydC5vcHRTZWxlY3RlZCA9IG9wdC5zZWxlY3RlZDtcblxuXHQvLyBTdXBwb3J0OiBBbmRyb2lkPD0yLjNcblx0Ly8gT3B0aW9ucyBpbnNpZGUgZGlzYWJsZWQgc2VsZWN0cyBhcmUgaW5jb3JyZWN0bHkgbWFya2VkIGFzIGRpc2FibGVkXG5cdHNlbGVjdC5kaXNhYmxlZCA9IHRydWU7XG5cdHN1cHBvcnQub3B0RGlzYWJsZWQgPSAhb3B0LmRpc2FibGVkO1xuXG5cdC8vIFN1cHBvcnQ6IElFPD0xMStcblx0Ly8gQW4gaW5wdXQgbG9zZXMgaXRzIHZhbHVlIGFmdGVyIGJlY29taW5nIGEgcmFkaW9cblx0aW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImlucHV0XCIgKTtcblx0aW5wdXQudmFsdWUgPSBcInRcIjtcblx0aW5wdXQudHlwZSA9IFwicmFkaW9cIjtcblx0c3VwcG9ydC5yYWRpb1ZhbHVlID0gaW5wdXQudmFsdWUgPT09IFwidFwiO1xufSkoKTtcblxuXG52YXIgbm9kZUhvb2ssIGJvb2xIb29rLFxuXHRhdHRySGFuZGxlID0galF1ZXJ5LmV4cHIuYXR0ckhhbmRsZTtcblxualF1ZXJ5LmZuLmV4dGVuZCh7XG5cdGF0dHI6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHtcblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBqUXVlcnkuYXR0ciwgbmFtZSwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxICk7XG5cdH0sXG5cblx0cmVtb3ZlQXR0cjogZnVuY3Rpb24oIG5hbWUgKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcblx0XHRcdGpRdWVyeS5yZW1vdmVBdHRyKCB0aGlzLCBuYW1lICk7XG5cdFx0fSk7XG5cdH1cbn0pO1xuXG5qUXVlcnkuZXh0ZW5kKHtcblx0YXR0cjogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlICkge1xuXHRcdHZhciBob29rcywgcmV0LFxuXHRcdFx0blR5cGUgPSBlbGVtLm5vZGVUeXBlO1xuXG5cdFx0Ly8gZG9uJ3QgZ2V0L3NldCBhdHRyaWJ1dGVzIG9uIHRleHQsIGNvbW1lbnQgYW5kIGF0dHJpYnV0ZSBub2Rlc1xuXHRcdGlmICggIWVsZW0gfHwgblR5cGUgPT09IDMgfHwgblR5cGUgPT09IDggfHwgblR5cGUgPT09IDIgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gRmFsbGJhY2sgdG8gcHJvcCB3aGVuIGF0dHJpYnV0ZXMgYXJlIG5vdCBzdXBwb3J0ZWRcblx0XHRpZiAoIHR5cGVvZiBlbGVtLmdldEF0dHJpYnV0ZSA9PT0gc3RydW5kZWZpbmVkICkge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5wcm9wKCBlbGVtLCBuYW1lLCB2YWx1ZSApO1xuXHRcdH1cblxuXHRcdC8vIEFsbCBhdHRyaWJ1dGVzIGFyZSBsb3dlcmNhc2Vcblx0XHQvLyBHcmFiIG5lY2Vzc2FyeSBob29rIGlmIG9uZSBpcyBkZWZpbmVkXG5cdFx0aWYgKCBuVHlwZSAhPT0gMSB8fCAhalF1ZXJ5LmlzWE1MRG9jKCBlbGVtICkgKSB7XG5cdFx0XHRuYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0aG9va3MgPSBqUXVlcnkuYXR0ckhvb2tzWyBuYW1lIF0gfHxcblx0XHRcdFx0KCBqUXVlcnkuZXhwci5tYXRjaC5ib29sLnRlc3QoIG5hbWUgKSA/IGJvb2xIb29rIDogbm9kZUhvb2sgKTtcblx0XHR9XG5cblx0XHRpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7XG5cblx0XHRcdGlmICggdmFsdWUgPT09IG51bGwgKSB7XG5cdFx0XHRcdGpRdWVyeS5yZW1vdmVBdHRyKCBlbGVtLCBuYW1lICk7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGhvb2tzICYmIFwic2V0XCIgaW4gaG9va3MgJiYgKHJldCA9IGhvb2tzLnNldCggZWxlbSwgdmFsdWUsIG5hbWUgKSkgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0cmV0dXJuIHJldDtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGUoIG5hbWUsIHZhbHVlICsgXCJcIiApO1xuXHRcdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0XHR9XG5cblx0XHR9IGVsc2UgaWYgKCBob29rcyAmJiBcImdldFwiIGluIGhvb2tzICYmIChyZXQgPSBob29rcy5nZXQoIGVsZW0sIG5hbWUgKSkgIT09IG51bGwgKSB7XG5cdFx0XHRyZXR1cm4gcmV0O1xuXG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldCA9IGpRdWVyeS5maW5kLmF0dHIoIGVsZW0sIG5hbWUgKTtcblxuXHRcdFx0Ly8gTm9uLWV4aXN0ZW50IGF0dHJpYnV0ZXMgcmV0dXJuIG51bGwsIHdlIG5vcm1hbGl6ZSB0byB1bmRlZmluZWRcblx0XHRcdHJldHVybiByZXQgPT0gbnVsbCA/XG5cdFx0XHRcdHVuZGVmaW5lZCA6XG5cdFx0XHRcdHJldDtcblx0XHR9XG5cdH0sXG5cblx0cmVtb3ZlQXR0cjogZnVuY3Rpb24oIGVsZW0sIHZhbHVlICkge1xuXHRcdHZhciBuYW1lLCBwcm9wTmFtZSxcblx0XHRcdGkgPSAwLFxuXHRcdFx0YXR0ck5hbWVzID0gdmFsdWUgJiYgdmFsdWUubWF0Y2goIHJub3R3aGl0ZSApO1xuXG5cdFx0aWYgKCBhdHRyTmFtZXMgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRcdHdoaWxlICggKG5hbWUgPSBhdHRyTmFtZXNbaSsrXSkgKSB7XG5cdFx0XHRcdHByb3BOYW1lID0galF1ZXJ5LnByb3BGaXhbIG5hbWUgXSB8fCBuYW1lO1xuXG5cdFx0XHRcdC8vIEJvb2xlYW4gYXR0cmlidXRlcyBnZXQgc3BlY2lhbCB0cmVhdG1lbnQgKCMxMDg3MClcblx0XHRcdFx0aWYgKCBqUXVlcnkuZXhwci5tYXRjaC5ib29sLnRlc3QoIG5hbWUgKSApIHtcblx0XHRcdFx0XHQvLyBTZXQgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSB0byBmYWxzZVxuXHRcdFx0XHRcdGVsZW1bIHByb3BOYW1lIF0gPSBmYWxzZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGVsZW0ucmVtb3ZlQXR0cmlidXRlKCBuYW1lICk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cdGF0dHJIb29rczoge1xuXHRcdHR5cGU6IHtcblx0XHRcdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlICkge1xuXHRcdFx0XHRpZiAoICFzdXBwb3J0LnJhZGlvVmFsdWUgJiYgdmFsdWUgPT09IFwicmFkaW9cIiAmJlxuXHRcdFx0XHRcdGpRdWVyeS5ub2RlTmFtZSggZWxlbSwgXCJpbnB1dFwiICkgKSB7XG5cdFx0XHRcdFx0dmFyIHZhbCA9IGVsZW0udmFsdWU7XG5cdFx0XHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGUoIFwidHlwZVwiLCB2YWx1ZSApO1xuXHRcdFx0XHRcdGlmICggdmFsICkge1xuXHRcdFx0XHRcdFx0ZWxlbS52YWx1ZSA9IHZhbDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59KTtcblxuLy8gSG9va3MgZm9yIGJvb2xlYW4gYXR0cmlidXRlc1xuYm9vbEhvb2sgPSB7XG5cdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlLCBuYW1lICkge1xuXHRcdGlmICggdmFsdWUgPT09IGZhbHNlICkge1xuXHRcdFx0Ly8gUmVtb3ZlIGJvb2xlYW4gYXR0cmlidXRlcyB3aGVuIHNldCB0byBmYWxzZVxuXHRcdFx0alF1ZXJ5LnJlbW92ZUF0dHIoIGVsZW0sIG5hbWUgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGUoIG5hbWUsIG5hbWUgKTtcblx0XHR9XG5cdFx0cmV0dXJuIG5hbWU7XG5cdH1cbn07XG5qUXVlcnkuZWFjaCggalF1ZXJ5LmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goIC9cXHcrL2cgKSwgZnVuY3Rpb24oIGksIG5hbWUgKSB7XG5cdHZhciBnZXR0ZXIgPSBhdHRySGFuZGxlWyBuYW1lIF0gfHwgalF1ZXJ5LmZpbmQuYXR0cjtcblxuXHRhdHRySGFuZGxlWyBuYW1lIF0gPSBmdW5jdGlvbiggZWxlbSwgbmFtZSwgaXNYTUwgKSB7XG5cdFx0dmFyIHJldCwgaGFuZGxlO1xuXHRcdGlmICggIWlzWE1MICkge1xuXHRcdFx0Ly8gQXZvaWQgYW4gaW5maW5pdGUgbG9vcCBieSB0ZW1wb3JhcmlseSByZW1vdmluZyB0aGlzIGZ1bmN0aW9uIGZyb20gdGhlIGdldHRlclxuXHRcdFx0aGFuZGxlID0gYXR0ckhhbmRsZVsgbmFtZSBdO1xuXHRcdFx0YXR0ckhhbmRsZVsgbmFtZSBdID0gcmV0O1xuXHRcdFx0cmV0ID0gZ2V0dGVyKCBlbGVtLCBuYW1lLCBpc1hNTCApICE9IG51bGwgP1xuXHRcdFx0XHRuYW1lLnRvTG93ZXJDYXNlKCkgOlxuXHRcdFx0XHRudWxsO1xuXHRcdFx0YXR0ckhhbmRsZVsgbmFtZSBdID0gaGFuZGxlO1xuXHRcdH1cblx0XHRyZXR1cm4gcmV0O1xuXHR9O1xufSk7XG5cblxuXG5cbnZhciByZm9jdXNhYmxlID0gL14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaTtcblxualF1ZXJ5LmZuLmV4dGVuZCh7XG5cdHByb3A6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHtcblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBqUXVlcnkucHJvcCwgbmFtZSwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxICk7XG5cdH0sXG5cblx0cmVtb3ZlUHJvcDogZnVuY3Rpb24oIG5hbWUgKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcblx0XHRcdGRlbGV0ZSB0aGlzWyBqUXVlcnkucHJvcEZpeFsgbmFtZSBdIHx8IG5hbWUgXTtcblx0XHR9KTtcblx0fVxufSk7XG5cbmpRdWVyeS5leHRlbmQoe1xuXHRwcm9wRml4OiB7XG5cdFx0XCJmb3JcIjogXCJodG1sRm9yXCIsXG5cdFx0XCJjbGFzc1wiOiBcImNsYXNzTmFtZVwiXG5cdH0sXG5cblx0cHJvcDogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlICkge1xuXHRcdHZhciByZXQsIGhvb2tzLCBub3R4bWwsXG5cdFx0XHRuVHlwZSA9IGVsZW0ubm9kZVR5cGU7XG5cblx0XHQvLyBEb24ndCBnZXQvc2V0IHByb3BlcnRpZXMgb24gdGV4dCwgY29tbWVudCBhbmQgYXR0cmlidXRlIG5vZGVzXG5cdFx0aWYgKCAhZWxlbSB8fCBuVHlwZSA9PT0gMyB8fCBuVHlwZSA9PT0gOCB8fCBuVHlwZSA9PT0gMiApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRub3R4bWwgPSBuVHlwZSAhPT0gMSB8fCAhalF1ZXJ5LmlzWE1MRG9jKCBlbGVtICk7XG5cblx0XHRpZiAoIG5vdHhtbCApIHtcblx0XHRcdC8vIEZpeCBuYW1lIGFuZCBhdHRhY2ggaG9va3Ncblx0XHRcdG5hbWUgPSBqUXVlcnkucHJvcEZpeFsgbmFtZSBdIHx8IG5hbWU7XG5cdFx0XHRob29rcyA9IGpRdWVyeS5wcm9wSG9va3NbIG5hbWUgXTtcblx0XHR9XG5cblx0XHRpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRyZXR1cm4gaG9va3MgJiYgXCJzZXRcIiBpbiBob29rcyAmJiAocmV0ID0gaG9va3Muc2V0KCBlbGVtLCB2YWx1ZSwgbmFtZSApKSAhPT0gdW5kZWZpbmVkID9cblx0XHRcdFx0cmV0IDpcblx0XHRcdFx0KCBlbGVtWyBuYW1lIF0gPSB2YWx1ZSApO1xuXG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBob29rcyAmJiBcImdldFwiIGluIGhvb2tzICYmIChyZXQgPSBob29rcy5nZXQoIGVsZW0sIG5hbWUgKSkgIT09IG51bGwgP1xuXHRcdFx0XHRyZXQgOlxuXHRcdFx0XHRlbGVtWyBuYW1lIF07XG5cdFx0fVxuXHR9LFxuXG5cdHByb3BIb29rczoge1xuXHRcdHRhYkluZGV4OiB7XG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHRyZXR1cm4gZWxlbS5oYXNBdHRyaWJ1dGUoIFwidGFiaW5kZXhcIiApIHx8IHJmb2N1c2FibGUudGVzdCggZWxlbS5ub2RlTmFtZSApIHx8IGVsZW0uaHJlZiA/XG5cdFx0XHRcdFx0ZWxlbS50YWJJbmRleCA6XG5cdFx0XHRcdFx0LTE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59KTtcblxuaWYgKCAhc3VwcG9ydC5vcHRTZWxlY3RlZCApIHtcblx0alF1ZXJ5LnByb3BIb29rcy5zZWxlY3RlZCA9IHtcblx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0dmFyIHBhcmVudCA9IGVsZW0ucGFyZW50Tm9kZTtcblx0XHRcdGlmICggcGFyZW50ICYmIHBhcmVudC5wYXJlbnROb2RlICkge1xuXHRcdFx0XHRwYXJlbnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXHR9O1xufVxuXG5qUXVlcnkuZWFjaChbXG5cdFwidGFiSW5kZXhcIixcblx0XCJyZWFkT25seVwiLFxuXHRcIm1heExlbmd0aFwiLFxuXHRcImNlbGxTcGFjaW5nXCIsXG5cdFwiY2VsbFBhZGRpbmdcIixcblx0XCJyb3dTcGFuXCIsXG5cdFwiY29sU3BhblwiLFxuXHRcInVzZU1hcFwiLFxuXHRcImZyYW1lQm9yZGVyXCIsXG5cdFwiY29udGVudEVkaXRhYmxlXCJcbl0sIGZ1bmN0aW9uKCkge1xuXHRqUXVlcnkucHJvcEZpeFsgdGhpcy50b0xvd2VyQ2FzZSgpIF0gPSB0aGlzO1xufSk7XG5cblxuXG5cbnZhciByY2xhc3MgPSAvW1xcdFxcclxcblxcZl0vZztcblxualF1ZXJ5LmZuLmV4dGVuZCh7XG5cdGFkZENsYXNzOiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0dmFyIGNsYXNzZXMsIGVsZW0sIGN1ciwgY2xhenosIGosIGZpbmFsVmFsdWUsXG5cdFx0XHRwcm9jZWVkID0gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIHZhbHVlLFxuXHRcdFx0aSA9IDAsXG5cdFx0XHRsZW4gPSB0aGlzLmxlbmd0aDtcblxuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCBqICkge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS5hZGRDbGFzcyggdmFsdWUuY2FsbCggdGhpcywgaiwgdGhpcy5jbGFzc05hbWUgKSApO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0aWYgKCBwcm9jZWVkICkge1xuXHRcdFx0Ly8gVGhlIGRpc2p1bmN0aW9uIGhlcmUgaXMgZm9yIGJldHRlciBjb21wcmVzc2liaWxpdHkgKHNlZSByZW1vdmVDbGFzcylcblx0XHRcdGNsYXNzZXMgPSAoIHZhbHVlIHx8IFwiXCIgKS5tYXRjaCggcm5vdHdoaXRlICkgfHwgW107XG5cblx0XHRcdGZvciAoIDsgaSA8IGxlbjsgaSsrICkge1xuXHRcdFx0XHRlbGVtID0gdGhpc1sgaSBdO1xuXHRcdFx0XHRjdXIgPSBlbGVtLm5vZGVUeXBlID09PSAxICYmICggZWxlbS5jbGFzc05hbWUgP1xuXHRcdFx0XHRcdCggXCIgXCIgKyBlbGVtLmNsYXNzTmFtZSArIFwiIFwiICkucmVwbGFjZSggcmNsYXNzLCBcIiBcIiApIDpcblx0XHRcdFx0XHRcIiBcIlxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdGlmICggY3VyICkge1xuXHRcdFx0XHRcdGogPSAwO1xuXHRcdFx0XHRcdHdoaWxlICggKGNsYXp6ID0gY2xhc3Nlc1tqKytdKSApIHtcblx0XHRcdFx0XHRcdGlmICggY3VyLmluZGV4T2YoIFwiIFwiICsgY2xhenogKyBcIiBcIiApIDwgMCApIHtcblx0XHRcdFx0XHRcdFx0Y3VyICs9IGNsYXp6ICsgXCIgXCI7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gb25seSBhc3NpZ24gaWYgZGlmZmVyZW50IHRvIGF2b2lkIHVubmVlZGVkIHJlbmRlcmluZy5cblx0XHRcdFx0XHRmaW5hbFZhbHVlID0galF1ZXJ5LnRyaW0oIGN1ciApO1xuXHRcdFx0XHRcdGlmICggZWxlbS5jbGFzc05hbWUgIT09IGZpbmFsVmFsdWUgKSB7XG5cdFx0XHRcdFx0XHRlbGVtLmNsYXNzTmFtZSA9IGZpbmFsVmFsdWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH0sXG5cblx0cmVtb3ZlQ2xhc3M6IGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHR2YXIgY2xhc3NlcywgZWxlbSwgY3VyLCBjbGF6eiwgaiwgZmluYWxWYWx1ZSxcblx0XHRcdHByb2NlZWQgPSBhcmd1bWVudHMubGVuZ3RoID09PSAwIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWx1ZSxcblx0XHRcdGkgPSAwLFxuXHRcdFx0bGVuID0gdGhpcy5sZW5ndGg7XG5cblx0XHRpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCB2YWx1ZSApICkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiggaiApIHtcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkucmVtb3ZlQ2xhc3MoIHZhbHVlLmNhbGwoIHRoaXMsIGosIHRoaXMuY2xhc3NOYW1lICkgKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRpZiAoIHByb2NlZWQgKSB7XG5cdFx0XHRjbGFzc2VzID0gKCB2YWx1ZSB8fCBcIlwiICkubWF0Y2goIHJub3R3aGl0ZSApIHx8IFtdO1xuXG5cdFx0XHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdFx0ZWxlbSA9IHRoaXNbIGkgXTtcblx0XHRcdFx0Ly8gVGhpcyBleHByZXNzaW9uIGlzIGhlcmUgZm9yIGJldHRlciBjb21wcmVzc2liaWxpdHkgKHNlZSBhZGRDbGFzcylcblx0XHRcdFx0Y3VyID0gZWxlbS5ub2RlVHlwZSA9PT0gMSAmJiAoIGVsZW0uY2xhc3NOYW1lID9cblx0XHRcdFx0XHQoIFwiIFwiICsgZWxlbS5jbGFzc05hbWUgKyBcIiBcIiApLnJlcGxhY2UoIHJjbGFzcywgXCIgXCIgKSA6XG5cdFx0XHRcdFx0XCJcIlxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdGlmICggY3VyICkge1xuXHRcdFx0XHRcdGogPSAwO1xuXHRcdFx0XHRcdHdoaWxlICggKGNsYXp6ID0gY2xhc3Nlc1tqKytdKSApIHtcblx0XHRcdFx0XHRcdC8vIFJlbW92ZSAqYWxsKiBpbnN0YW5jZXNcblx0XHRcdFx0XHRcdHdoaWxlICggY3VyLmluZGV4T2YoIFwiIFwiICsgY2xhenogKyBcIiBcIiApID49IDAgKSB7XG5cdFx0XHRcdFx0XHRcdGN1ciA9IGN1ci5yZXBsYWNlKCBcIiBcIiArIGNsYXp6ICsgXCIgXCIsIFwiIFwiICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gT25seSBhc3NpZ24gaWYgZGlmZmVyZW50IHRvIGF2b2lkIHVubmVlZGVkIHJlbmRlcmluZy5cblx0XHRcdFx0XHRmaW5hbFZhbHVlID0gdmFsdWUgPyBqUXVlcnkudHJpbSggY3VyICkgOiBcIlwiO1xuXHRcdFx0XHRcdGlmICggZWxlbS5jbGFzc05hbWUgIT09IGZpbmFsVmFsdWUgKSB7XG5cdFx0XHRcdFx0XHRlbGVtLmNsYXNzTmFtZSA9IGZpbmFsVmFsdWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH0sXG5cblx0dG9nZ2xlQ2xhc3M6IGZ1bmN0aW9uKCB2YWx1ZSwgc3RhdGVWYWwgKSB7XG5cdFx0dmFyIHR5cGUgPSB0eXBlb2YgdmFsdWU7XG5cblx0XHRpZiAoIHR5cGVvZiBzdGF0ZVZhbCA9PT0gXCJib29sZWFuXCIgJiYgdHlwZSA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHJldHVybiBzdGF0ZVZhbCA/IHRoaXMuYWRkQ2xhc3MoIHZhbHVlICkgOiB0aGlzLnJlbW92ZUNsYXNzKCB2YWx1ZSApO1xuXHRcdH1cblxuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCBpICkge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS50b2dnbGVDbGFzcyggdmFsdWUuY2FsbCh0aGlzLCBpLCB0aGlzLmNsYXNzTmFtZSwgc3RhdGVWYWwpLCBzdGF0ZVZhbCApO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcblx0XHRcdGlmICggdHlwZSA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdFx0Ly8gVG9nZ2xlIGluZGl2aWR1YWwgY2xhc3MgbmFtZXNcblx0XHRcdFx0dmFyIGNsYXNzTmFtZSxcblx0XHRcdFx0XHRpID0gMCxcblx0XHRcdFx0XHRzZWxmID0galF1ZXJ5KCB0aGlzICksXG5cdFx0XHRcdFx0Y2xhc3NOYW1lcyA9IHZhbHVlLm1hdGNoKCBybm90d2hpdGUgKSB8fCBbXTtcblxuXHRcdFx0XHR3aGlsZSAoIChjbGFzc05hbWUgPSBjbGFzc05hbWVzWyBpKysgXSkgKSB7XG5cdFx0XHRcdFx0Ly8gQ2hlY2sgZWFjaCBjbGFzc05hbWUgZ2l2ZW4sIHNwYWNlIHNlcGFyYXRlZCBsaXN0XG5cdFx0XHRcdFx0aWYgKCBzZWxmLmhhc0NsYXNzKCBjbGFzc05hbWUgKSApIHtcblx0XHRcdFx0XHRcdHNlbGYucmVtb3ZlQ2xhc3MoIGNsYXNzTmFtZSApO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRzZWxmLmFkZENsYXNzKCBjbGFzc05hbWUgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0Ly8gVG9nZ2xlIHdob2xlIGNsYXNzIG5hbWVcblx0XHRcdH0gZWxzZSBpZiAoIHR5cGUgPT09IHN0cnVuZGVmaW5lZCB8fCB0eXBlID09PSBcImJvb2xlYW5cIiApIHtcblx0XHRcdFx0aWYgKCB0aGlzLmNsYXNzTmFtZSApIHtcblx0XHRcdFx0XHQvLyBzdG9yZSBjbGFzc05hbWUgaWYgc2V0XG5cdFx0XHRcdFx0ZGF0YV9wcml2LnNldCggdGhpcywgXCJfX2NsYXNzTmFtZV9fXCIsIHRoaXMuY2xhc3NOYW1lICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBJZiB0aGUgZWxlbWVudCBoYXMgYSBjbGFzcyBuYW1lIG9yIGlmIHdlJ3JlIHBhc3NlZCBgZmFsc2VgLFxuXHRcdFx0XHQvLyB0aGVuIHJlbW92ZSB0aGUgd2hvbGUgY2xhc3NuYW1lIChpZiB0aGVyZSB3YXMgb25lLCB0aGUgYWJvdmUgc2F2ZWQgaXQpLlxuXHRcdFx0XHQvLyBPdGhlcndpc2UgYnJpbmcgYmFjayB3aGF0ZXZlciB3YXMgcHJldmlvdXNseSBzYXZlZCAoaWYgYW55dGhpbmcpLFxuXHRcdFx0XHQvLyBmYWxsaW5nIGJhY2sgdG8gdGhlIGVtcHR5IHN0cmluZyBpZiBub3RoaW5nIHdhcyBzdG9yZWQuXG5cdFx0XHRcdHRoaXMuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWUgfHwgdmFsdWUgPT09IGZhbHNlID8gXCJcIiA6IGRhdGFfcHJpdi5nZXQoIHRoaXMsIFwiX19jbGFzc05hbWVfX1wiICkgfHwgXCJcIjtcblx0XHRcdH1cblx0XHR9KTtcblx0fSxcblxuXHRoYXNDbGFzczogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHZhciBjbGFzc05hbWUgPSBcIiBcIiArIHNlbGVjdG9yICsgXCIgXCIsXG5cdFx0XHRpID0gMCxcblx0XHRcdGwgPSB0aGlzLmxlbmd0aDtcblx0XHRmb3IgKCA7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRpZiAoIHRoaXNbaV0ubm9kZVR5cGUgPT09IDEgJiYgKFwiIFwiICsgdGhpc1tpXS5jbGFzc05hbWUgKyBcIiBcIikucmVwbGFjZShyY2xhc3MsIFwiIFwiKS5pbmRleE9mKCBjbGFzc05hbWUgKSA+PSAwICkge1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cbn0pO1xuXG5cblxuXG52YXIgcnJldHVybiA9IC9cXHIvZztcblxualF1ZXJ5LmZuLmV4dGVuZCh7XG5cdHZhbDogZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdHZhciBob29rcywgcmV0LCBpc0Z1bmN0aW9uLFxuXHRcdFx0ZWxlbSA9IHRoaXNbMF07XG5cblx0XHRpZiAoICFhcmd1bWVudHMubGVuZ3RoICkge1xuXHRcdFx0aWYgKCBlbGVtICkge1xuXHRcdFx0XHRob29rcyA9IGpRdWVyeS52YWxIb29rc1sgZWxlbS50eXBlIF0gfHwgalF1ZXJ5LnZhbEhvb2tzWyBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgXTtcblxuXHRcdFx0XHRpZiAoIGhvb2tzICYmIFwiZ2V0XCIgaW4gaG9va3MgJiYgKHJldCA9IGhvb2tzLmdldCggZWxlbSwgXCJ2YWx1ZVwiICkpICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldCA9IGVsZW0udmFsdWU7XG5cblx0XHRcdFx0cmV0dXJuIHR5cGVvZiByZXQgPT09IFwic3RyaW5nXCIgP1xuXHRcdFx0XHRcdC8vIEhhbmRsZSBtb3N0IGNvbW1vbiBzdHJpbmcgY2FzZXNcblx0XHRcdFx0XHRyZXQucmVwbGFjZShycmV0dXJuLCBcIlwiKSA6XG5cdFx0XHRcdFx0Ly8gSGFuZGxlIGNhc2VzIHdoZXJlIHZhbHVlIGlzIG51bGwvdW5kZWYgb3IgbnVtYmVyXG5cdFx0XHRcdFx0cmV0ID09IG51bGwgPyBcIlwiIDogcmV0O1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aXNGdW5jdGlvbiA9IGpRdWVyeS5pc0Z1bmN0aW9uKCB2YWx1ZSApO1xuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiggaSApIHtcblx0XHRcdHZhciB2YWw7XG5cblx0XHRcdGlmICggdGhpcy5ub2RlVHlwZSAhPT0gMSApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIGlzRnVuY3Rpb24gKSB7XG5cdFx0XHRcdHZhbCA9IHZhbHVlLmNhbGwoIHRoaXMsIGksIGpRdWVyeSggdGhpcyApLnZhbCgpICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR2YWwgPSB2YWx1ZTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gVHJlYXQgbnVsbC91bmRlZmluZWQgYXMgXCJcIjsgY29udmVydCBudW1iZXJzIHRvIHN0cmluZ1xuXHRcdFx0aWYgKCB2YWwgPT0gbnVsbCApIHtcblx0XHRcdFx0dmFsID0gXCJcIjtcblxuXHRcdFx0fSBlbHNlIGlmICggdHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIiApIHtcblx0XHRcdFx0dmFsICs9IFwiXCI7XG5cblx0XHRcdH0gZWxzZSBpZiAoIGpRdWVyeS5pc0FycmF5KCB2YWwgKSApIHtcblx0XHRcdFx0dmFsID0galF1ZXJ5Lm1hcCggdmFsLCBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHZhbHVlID09IG51bGwgPyBcIlwiIDogdmFsdWUgKyBcIlwiO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblxuXHRcdFx0aG9va3MgPSBqUXVlcnkudmFsSG9va3NbIHRoaXMudHlwZSBdIHx8IGpRdWVyeS52YWxIb29rc1sgdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIF07XG5cblx0XHRcdC8vIElmIHNldCByZXR1cm5zIHVuZGVmaW5lZCwgZmFsbCBiYWNrIHRvIG5vcm1hbCBzZXR0aW5nXG5cdFx0XHRpZiAoICFob29rcyB8fCAhKFwic2V0XCIgaW4gaG9va3MpIHx8IGhvb2tzLnNldCggdGhpcywgdmFsLCBcInZhbHVlXCIgKSA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHR0aGlzLnZhbHVlID0gdmFsO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59KTtcblxualF1ZXJ5LmV4dGVuZCh7XG5cdHZhbEhvb2tzOiB7XG5cdFx0b3B0aW9uOiB7XG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHR2YXIgdmFsID0galF1ZXJ5LmZpbmQuYXR0ciggZWxlbSwgXCJ2YWx1ZVwiICk7XG5cdFx0XHRcdHJldHVybiB2YWwgIT0gbnVsbCA/XG5cdFx0XHRcdFx0dmFsIDpcblx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRTEwLTExK1xuXHRcdFx0XHRcdC8vIG9wdGlvbi50ZXh0IHRocm93cyBleGNlcHRpb25zICgjMTQ2ODYsICMxNDg1OClcblx0XHRcdFx0XHRqUXVlcnkudHJpbSggalF1ZXJ5LnRleHQoIGVsZW0gKSApO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0c2VsZWN0OiB7XG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHR2YXIgdmFsdWUsIG9wdGlvbixcblx0XHRcdFx0XHRvcHRpb25zID0gZWxlbS5vcHRpb25zLFxuXHRcdFx0XHRcdGluZGV4ID0gZWxlbS5zZWxlY3RlZEluZGV4LFxuXHRcdFx0XHRcdG9uZSA9IGVsZW0udHlwZSA9PT0gXCJzZWxlY3Qtb25lXCIgfHwgaW5kZXggPCAwLFxuXHRcdFx0XHRcdHZhbHVlcyA9IG9uZSA/IG51bGwgOiBbXSxcblx0XHRcdFx0XHRtYXggPSBvbmUgPyBpbmRleCArIDEgOiBvcHRpb25zLmxlbmd0aCxcblx0XHRcdFx0XHRpID0gaW5kZXggPCAwID9cblx0XHRcdFx0XHRcdG1heCA6XG5cdFx0XHRcdFx0XHRvbmUgPyBpbmRleCA6IDA7XG5cblx0XHRcdFx0Ly8gTG9vcCB0aHJvdWdoIGFsbCB0aGUgc2VsZWN0ZWQgb3B0aW9uc1xuXHRcdFx0XHRmb3IgKCA7IGkgPCBtYXg7IGkrKyApIHtcblx0XHRcdFx0XHRvcHRpb24gPSBvcHRpb25zWyBpIF07XG5cblx0XHRcdFx0XHQvLyBJRTYtOSBkb2Vzbid0IHVwZGF0ZSBzZWxlY3RlZCBhZnRlciBmb3JtIHJlc2V0ICgjMjU1MSlcblx0XHRcdFx0XHRpZiAoICggb3B0aW9uLnNlbGVjdGVkIHx8IGkgPT09IGluZGV4ICkgJiZcblx0XHRcdFx0XHRcdFx0Ly8gRG9uJ3QgcmV0dXJuIG9wdGlvbnMgdGhhdCBhcmUgZGlzYWJsZWQgb3IgaW4gYSBkaXNhYmxlZCBvcHRncm91cFxuXHRcdFx0XHRcdFx0XHQoIHN1cHBvcnQub3B0RGlzYWJsZWQgPyAhb3B0aW9uLmRpc2FibGVkIDogb3B0aW9uLmdldEF0dHJpYnV0ZSggXCJkaXNhYmxlZFwiICkgPT09IG51bGwgKSAmJlxuXHRcdFx0XHRcdFx0XHQoICFvcHRpb24ucGFyZW50Tm9kZS5kaXNhYmxlZCB8fCAhalF1ZXJ5Lm5vZGVOYW1lKCBvcHRpb24ucGFyZW50Tm9kZSwgXCJvcHRncm91cFwiICkgKSApIHtcblxuXHRcdFx0XHRcdFx0Ly8gR2V0IHRoZSBzcGVjaWZpYyB2YWx1ZSBmb3IgdGhlIG9wdGlvblxuXHRcdFx0XHRcdFx0dmFsdWUgPSBqUXVlcnkoIG9wdGlvbiApLnZhbCgpO1xuXG5cdFx0XHRcdFx0XHQvLyBXZSBkb24ndCBuZWVkIGFuIGFycmF5IGZvciBvbmUgc2VsZWN0c1xuXHRcdFx0XHRcdFx0aWYgKCBvbmUgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gTXVsdGktU2VsZWN0cyByZXR1cm4gYW4gYXJyYXlcblx0XHRcdFx0XHRcdHZhbHVlcy5wdXNoKCB2YWx1ZSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiB2YWx1ZXM7XG5cdFx0XHR9LFxuXG5cdFx0XHRzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHtcblx0XHRcdFx0dmFyIG9wdGlvblNldCwgb3B0aW9uLFxuXHRcdFx0XHRcdG9wdGlvbnMgPSBlbGVtLm9wdGlvbnMsXG5cdFx0XHRcdFx0dmFsdWVzID0galF1ZXJ5Lm1ha2VBcnJheSggdmFsdWUgKSxcblx0XHRcdFx0XHRpID0gb3B0aW9ucy5sZW5ndGg7XG5cblx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0b3B0aW9uID0gb3B0aW9uc1sgaSBdO1xuXHRcdFx0XHRcdGlmICggKG9wdGlvbi5zZWxlY3RlZCA9IGpRdWVyeS5pbkFycmF5KCBvcHRpb24udmFsdWUsIHZhbHVlcyApID49IDApICkge1xuXHRcdFx0XHRcdFx0b3B0aW9uU2V0ID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBGb3JjZSBicm93c2VycyB0byBiZWhhdmUgY29uc2lzdGVudGx5IHdoZW4gbm9uLW1hdGNoaW5nIHZhbHVlIGlzIHNldFxuXHRcdFx0XHRpZiAoICFvcHRpb25TZXQgKSB7XG5cdFx0XHRcdFx0ZWxlbS5zZWxlY3RlZEluZGV4ID0gLTE7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHZhbHVlcztcblx0XHRcdH1cblx0XHR9XG5cdH1cbn0pO1xuXG4vLyBSYWRpb3MgYW5kIGNoZWNrYm94ZXMgZ2V0dGVyL3NldHRlclxualF1ZXJ5LmVhY2goWyBcInJhZGlvXCIsIFwiY2hlY2tib3hcIiBdLCBmdW5jdGlvbigpIHtcblx0alF1ZXJ5LnZhbEhvb2tzWyB0aGlzIF0gPSB7XG5cdFx0c2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7XG5cdFx0XHRpZiAoIGpRdWVyeS5pc0FycmF5KCB2YWx1ZSApICkge1xuXHRcdFx0XHRyZXR1cm4gKCBlbGVtLmNoZWNrZWQgPSBqUXVlcnkuaW5BcnJheSggalF1ZXJ5KGVsZW0pLnZhbCgpLCB2YWx1ZSApID49IDAgKTtcblx0XHRcdH1cblx0XHR9XG5cdH07XG5cdGlmICggIXN1cHBvcnQuY2hlY2tPbiApIHtcblx0XHRqUXVlcnkudmFsSG9va3NbIHRoaXMgXS5nZXQgPSBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiBlbGVtLmdldEF0dHJpYnV0ZShcInZhbHVlXCIpID09PSBudWxsID8gXCJvblwiIDogZWxlbS52YWx1ZTtcblx0XHR9O1xuXHR9XG59KTtcblxuXG5cblxuLy8gUmV0dXJuIGpRdWVyeSBmb3IgYXR0cmlidXRlcy1vbmx5IGluY2x1c2lvblxuXG5cbmpRdWVyeS5lYWNoKCAoXCJibHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgbG9hZCByZXNpemUgc2Nyb2xsIHVubG9hZCBjbGljayBkYmxjbGljayBcIiArXG5cdFwibW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgXCIgK1xuXHRcImNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IgY29udGV4dG1lbnVcIikuc3BsaXQoXCIgXCIpLCBmdW5jdGlvbiggaSwgbmFtZSApIHtcblxuXHQvLyBIYW5kbGUgZXZlbnQgYmluZGluZ1xuXHRqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCBkYXRhLCBmbiApIHtcblx0XHRyZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA+IDAgP1xuXHRcdFx0dGhpcy5vbiggbmFtZSwgbnVsbCwgZGF0YSwgZm4gKSA6XG5cdFx0XHR0aGlzLnRyaWdnZXIoIG5hbWUgKTtcblx0fTtcbn0pO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKHtcblx0aG92ZXI6IGZ1bmN0aW9uKCBmbk92ZXIsIGZuT3V0ICkge1xuXHRcdHJldHVybiB0aGlzLm1vdXNlZW50ZXIoIGZuT3ZlciApLm1vdXNlbGVhdmUoIGZuT3V0IHx8IGZuT3ZlciApO1xuXHR9LFxuXG5cdGJpbmQ6IGZ1bmN0aW9uKCB0eXBlcywgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub24oIHR5cGVzLCBudWxsLCBkYXRhLCBmbiApO1xuXHR9LFxuXHR1bmJpbmQ6IGZ1bmN0aW9uKCB0eXBlcywgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub2ZmKCB0eXBlcywgbnVsbCwgZm4gKTtcblx0fSxcblxuXHRkZWxlZ2F0ZTogZnVuY3Rpb24oIHNlbGVjdG9yLCB0eXBlcywgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKTtcblx0fSxcblx0dW5kZWxlZ2F0ZTogZnVuY3Rpb24oIHNlbGVjdG9yLCB0eXBlcywgZm4gKSB7XG5cdFx0Ly8gKCBuYW1lc3BhY2UgKSBvciAoIHNlbGVjdG9yLCB0eXBlcyBbLCBmbl0gKVxuXHRcdHJldHVybiBhcmd1bWVudHMubGVuZ3RoID09PSAxID8gdGhpcy5vZmYoIHNlbGVjdG9yLCBcIioqXCIgKSA6IHRoaXMub2ZmKCB0eXBlcywgc2VsZWN0b3IgfHwgXCIqKlwiLCBmbiApO1xuXHR9XG59KTtcblxuXG52YXIgbm9uY2UgPSBqUXVlcnkubm93KCk7XG5cbnZhciBycXVlcnkgPSAoL1xcPy8pO1xuXG5cblxuLy8gU3VwcG9ydDogQW5kcm9pZCAyLjNcbi8vIFdvcmthcm91bmQgZmFpbHVyZSB0byBzdHJpbmctY2FzdCBudWxsIGlucHV0XG5qUXVlcnkucGFyc2VKU09OID0gZnVuY3Rpb24oIGRhdGEgKSB7XG5cdHJldHVybiBKU09OLnBhcnNlKCBkYXRhICsgXCJcIiApO1xufTtcblxuXG4vLyBDcm9zcy1icm93c2VyIHhtbCBwYXJzaW5nXG5qUXVlcnkucGFyc2VYTUwgPSBmdW5jdGlvbiggZGF0YSApIHtcblx0dmFyIHhtbCwgdG1wO1xuXHRpZiAoICFkYXRhIHx8IHR5cGVvZiBkYXRhICE9PSBcInN0cmluZ1wiICkge1xuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cblx0Ly8gU3VwcG9ydDogSUU5XG5cdHRyeSB7XG5cdFx0dG1wID0gbmV3IERPTVBhcnNlcigpO1xuXHRcdHhtbCA9IHRtcC5wYXJzZUZyb21TdHJpbmcoIGRhdGEsIFwidGV4dC94bWxcIiApO1xuXHR9IGNhdGNoICggZSApIHtcblx0XHR4bWwgPSB1bmRlZmluZWQ7XG5cdH1cblxuXHRpZiAoICF4bWwgfHwgeG1sLmdldEVsZW1lbnRzQnlUYWdOYW1lKCBcInBhcnNlcmVycm9yXCIgKS5sZW5ndGggKSB7XG5cdFx0alF1ZXJ5LmVycm9yKCBcIkludmFsaWQgWE1MOiBcIiArIGRhdGEgKTtcblx0fVxuXHRyZXR1cm4geG1sO1xufTtcblxuXG52YXJcblx0cmhhc2ggPSAvIy4qJC8sXG5cdHJ0cyA9IC8oWz8mXSlfPVteJl0qLyxcblx0cmhlYWRlcnMgPSAvXiguKj8pOlsgXFx0XSooW15cXHJcXG5dKikkL21nLFxuXHQvLyAjNzY1MywgIzgxMjUsICM4MTUyOiBsb2NhbCBwcm90b2NvbCBkZXRlY3Rpb25cblx0cmxvY2FsUHJvdG9jb2wgPSAvXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxcblx0cm5vQ29udGVudCA9IC9eKD86R0VUfEhFQUQpJC8sXG5cdHJwcm90b2NvbCA9IC9eXFwvXFwvLyxcblx0cnVybCA9IC9eKFtcXHcuKy1dKzopKD86XFwvXFwvKD86W15cXC8/I10qQHwpKFteXFwvPyM6XSopKD86OihcXGQrKXwpfCkvLFxuXG5cdC8qIFByZWZpbHRlcnNcblx0ICogMSkgVGhleSBhcmUgdXNlZnVsIHRvIGludHJvZHVjZSBjdXN0b20gZGF0YVR5cGVzIChzZWUgYWpheC9qc29ucC5qcyBmb3IgYW4gZXhhbXBsZSlcblx0ICogMikgVGhlc2UgYXJlIGNhbGxlZDpcblx0ICogICAgLSBCRUZPUkUgYXNraW5nIGZvciBhIHRyYW5zcG9ydFxuXHQgKiAgICAtIEFGVEVSIHBhcmFtIHNlcmlhbGl6YXRpb24gKHMuZGF0YSBpcyBhIHN0cmluZyBpZiBzLnByb2Nlc3NEYXRhIGlzIHRydWUpXG5cdCAqIDMpIGtleSBpcyB0aGUgZGF0YVR5cGVcblx0ICogNCkgdGhlIGNhdGNoYWxsIHN5bWJvbCBcIipcIiBjYW4gYmUgdXNlZFxuXHQgKiA1KSBleGVjdXRpb24gd2lsbCBzdGFydCB3aXRoIHRyYW5zcG9ydCBkYXRhVHlwZSBhbmQgVEhFTiBjb250aW51ZSBkb3duIHRvIFwiKlwiIGlmIG5lZWRlZFxuXHQgKi9cblx0cHJlZmlsdGVycyA9IHt9LFxuXG5cdC8qIFRyYW5zcG9ydHMgYmluZGluZ3Ncblx0ICogMSkga2V5IGlzIHRoZSBkYXRhVHlwZVxuXHQgKiAyKSB0aGUgY2F0Y2hhbGwgc3ltYm9sIFwiKlwiIGNhbiBiZSB1c2VkXG5cdCAqIDMpIHNlbGVjdGlvbiB3aWxsIHN0YXJ0IHdpdGggdHJhbnNwb3J0IGRhdGFUeXBlIGFuZCBUSEVOIGdvIHRvIFwiKlwiIGlmIG5lZWRlZFxuXHQgKi9cblx0dHJhbnNwb3J0cyA9IHt9LFxuXG5cdC8vIEF2b2lkIGNvbW1lbnQtcHJvbG9nIGNoYXIgc2VxdWVuY2UgKCMxMDA5OCk7IG11c3QgYXBwZWFzZSBsaW50IGFuZCBldmFkZSBjb21wcmVzc2lvblxuXHRhbGxUeXBlcyA9IFwiKi9cIi5jb25jYXQoIFwiKlwiICksXG5cblx0Ly8gRG9jdW1lbnQgbG9jYXRpb25cblx0YWpheExvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLmhyZWYsXG5cblx0Ly8gU2VnbWVudCBsb2NhdGlvbiBpbnRvIHBhcnRzXG5cdGFqYXhMb2NQYXJ0cyA9IHJ1cmwuZXhlYyggYWpheExvY2F0aW9uLnRvTG93ZXJDYXNlKCkgKSB8fCBbXTtcblxuLy8gQmFzZSBcImNvbnN0cnVjdG9yXCIgZm9yIGpRdWVyeS5hamF4UHJlZmlsdGVyIGFuZCBqUXVlcnkuYWpheFRyYW5zcG9ydFxuZnVuY3Rpb24gYWRkVG9QcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBzdHJ1Y3R1cmUgKSB7XG5cblx0Ly8gZGF0YVR5cGVFeHByZXNzaW9uIGlzIG9wdGlvbmFsIGFuZCBkZWZhdWx0cyB0byBcIipcIlxuXHRyZXR1cm4gZnVuY3Rpb24oIGRhdGFUeXBlRXhwcmVzc2lvbiwgZnVuYyApIHtcblxuXHRcdGlmICggdHlwZW9mIGRhdGFUeXBlRXhwcmVzc2lvbiAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdGZ1bmMgPSBkYXRhVHlwZUV4cHJlc3Npb247XG5cdFx0XHRkYXRhVHlwZUV4cHJlc3Npb24gPSBcIipcIjtcblx0XHR9XG5cblx0XHR2YXIgZGF0YVR5cGUsXG5cdFx0XHRpID0gMCxcblx0XHRcdGRhdGFUeXBlcyA9IGRhdGFUeXBlRXhwcmVzc2lvbi50b0xvd2VyQ2FzZSgpLm1hdGNoKCBybm90d2hpdGUgKSB8fCBbXTtcblxuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIGZ1bmMgKSApIHtcblx0XHRcdC8vIEZvciBlYWNoIGRhdGFUeXBlIGluIHRoZSBkYXRhVHlwZUV4cHJlc3Npb25cblx0XHRcdHdoaWxlICggKGRhdGFUeXBlID0gZGF0YVR5cGVzW2krK10pICkge1xuXHRcdFx0XHQvLyBQcmVwZW5kIGlmIHJlcXVlc3RlZFxuXHRcdFx0XHRpZiAoIGRhdGFUeXBlWzBdID09PSBcIitcIiApIHtcblx0XHRcdFx0XHRkYXRhVHlwZSA9IGRhdGFUeXBlLnNsaWNlKCAxICkgfHwgXCIqXCI7XG5cdFx0XHRcdFx0KHN0cnVjdHVyZVsgZGF0YVR5cGUgXSA9IHN0cnVjdHVyZVsgZGF0YVR5cGUgXSB8fCBbXSkudW5zaGlmdCggZnVuYyApO1xuXG5cdFx0XHRcdC8vIE90aGVyd2lzZSBhcHBlbmRcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQoc3RydWN0dXJlWyBkYXRhVHlwZSBdID0gc3RydWN0dXJlWyBkYXRhVHlwZSBdIHx8IFtdKS5wdXNoKCBmdW5jICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH07XG59XG5cbi8vIEJhc2UgaW5zcGVjdGlvbiBmdW5jdGlvbiBmb3IgcHJlZmlsdGVycyBhbmQgdHJhbnNwb3J0c1xuZnVuY3Rpb24gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHN0cnVjdHVyZSwgb3B0aW9ucywgb3JpZ2luYWxPcHRpb25zLCBqcVhIUiApIHtcblxuXHR2YXIgaW5zcGVjdGVkID0ge30sXG5cdFx0c2Vla2luZ1RyYW5zcG9ydCA9ICggc3RydWN0dXJlID09PSB0cmFuc3BvcnRzICk7XG5cblx0ZnVuY3Rpb24gaW5zcGVjdCggZGF0YVR5cGUgKSB7XG5cdFx0dmFyIHNlbGVjdGVkO1xuXHRcdGluc3BlY3RlZFsgZGF0YVR5cGUgXSA9IHRydWU7XG5cdFx0alF1ZXJ5LmVhY2goIHN0cnVjdHVyZVsgZGF0YVR5cGUgXSB8fCBbXSwgZnVuY3Rpb24oIF8sIHByZWZpbHRlck9yRmFjdG9yeSApIHtcblx0XHRcdHZhciBkYXRhVHlwZU9yVHJhbnNwb3J0ID0gcHJlZmlsdGVyT3JGYWN0b3J5KCBvcHRpb25zLCBvcmlnaW5hbE9wdGlvbnMsIGpxWEhSICk7XG5cdFx0XHRpZiAoIHR5cGVvZiBkYXRhVHlwZU9yVHJhbnNwb3J0ID09PSBcInN0cmluZ1wiICYmICFzZWVraW5nVHJhbnNwb3J0ICYmICFpbnNwZWN0ZWRbIGRhdGFUeXBlT3JUcmFuc3BvcnQgXSApIHtcblx0XHRcdFx0b3B0aW9ucy5kYXRhVHlwZXMudW5zaGlmdCggZGF0YVR5cGVPclRyYW5zcG9ydCApO1xuXHRcdFx0XHRpbnNwZWN0KCBkYXRhVHlwZU9yVHJhbnNwb3J0ICk7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH0gZWxzZSBpZiAoIHNlZWtpbmdUcmFuc3BvcnQgKSB7XG5cdFx0XHRcdHJldHVybiAhKCBzZWxlY3RlZCA9IGRhdGFUeXBlT3JUcmFuc3BvcnQgKTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRyZXR1cm4gc2VsZWN0ZWQ7XG5cdH1cblxuXHRyZXR1cm4gaW5zcGVjdCggb3B0aW9ucy5kYXRhVHlwZXNbIDAgXSApIHx8ICFpbnNwZWN0ZWRbIFwiKlwiIF0gJiYgaW5zcGVjdCggXCIqXCIgKTtcbn1cblxuLy8gQSBzcGVjaWFsIGV4dGVuZCBmb3IgYWpheCBvcHRpb25zXG4vLyB0aGF0IHRha2VzIFwiZmxhdFwiIG9wdGlvbnMgKG5vdCB0byBiZSBkZWVwIGV4dGVuZGVkKVxuLy8gRml4ZXMgIzk4ODdcbmZ1bmN0aW9uIGFqYXhFeHRlbmQoIHRhcmdldCwgc3JjICkge1xuXHR2YXIga2V5LCBkZWVwLFxuXHRcdGZsYXRPcHRpb25zID0galF1ZXJ5LmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9ucyB8fCB7fTtcblxuXHRmb3IgKCBrZXkgaW4gc3JjICkge1xuXHRcdGlmICggc3JjWyBrZXkgXSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0KCBmbGF0T3B0aW9uc1sga2V5IF0gPyB0YXJnZXQgOiAoIGRlZXAgfHwgKGRlZXAgPSB7fSkgKSApWyBrZXkgXSA9IHNyY1sga2V5IF07XG5cdFx0fVxuXHR9XG5cdGlmICggZGVlcCApIHtcblx0XHRqUXVlcnkuZXh0ZW5kKCB0cnVlLCB0YXJnZXQsIGRlZXAgKTtcblx0fVxuXG5cdHJldHVybiB0YXJnZXQ7XG59XG5cbi8qIEhhbmRsZXMgcmVzcG9uc2VzIHRvIGFuIGFqYXggcmVxdWVzdDpcbiAqIC0gZmluZHMgdGhlIHJpZ2h0IGRhdGFUeXBlIChtZWRpYXRlcyBiZXR3ZWVuIGNvbnRlbnQtdHlwZSBhbmQgZXhwZWN0ZWQgZGF0YVR5cGUpXG4gKiAtIHJldHVybnMgdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2VcbiAqL1xuZnVuY3Rpb24gYWpheEhhbmRsZVJlc3BvbnNlcyggcywganFYSFIsIHJlc3BvbnNlcyApIHtcblxuXHR2YXIgY3QsIHR5cGUsIGZpbmFsRGF0YVR5cGUsIGZpcnN0RGF0YVR5cGUsXG5cdFx0Y29udGVudHMgPSBzLmNvbnRlbnRzLFxuXHRcdGRhdGFUeXBlcyA9IHMuZGF0YVR5cGVzO1xuXG5cdC8vIFJlbW92ZSBhdXRvIGRhdGFUeXBlIGFuZCBnZXQgY29udGVudC10eXBlIGluIHRoZSBwcm9jZXNzXG5cdHdoaWxlICggZGF0YVR5cGVzWyAwIF0gPT09IFwiKlwiICkge1xuXHRcdGRhdGFUeXBlcy5zaGlmdCgpO1xuXHRcdGlmICggY3QgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdGN0ID0gcy5taW1lVHlwZSB8fCBqcVhIUi5nZXRSZXNwb25zZUhlYWRlcihcIkNvbnRlbnQtVHlwZVwiKTtcblx0XHR9XG5cdH1cblxuXHQvLyBDaGVjayBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBrbm93biBjb250ZW50LXR5cGVcblx0aWYgKCBjdCApIHtcblx0XHRmb3IgKCB0eXBlIGluIGNvbnRlbnRzICkge1xuXHRcdFx0aWYgKCBjb250ZW50c1sgdHlwZSBdICYmIGNvbnRlbnRzWyB0eXBlIF0udGVzdCggY3QgKSApIHtcblx0XHRcdFx0ZGF0YVR5cGVzLnVuc2hpZnQoIHR5cGUgKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gQ2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUgYSByZXNwb25zZSBmb3IgdGhlIGV4cGVjdGVkIGRhdGFUeXBlXG5cdGlmICggZGF0YVR5cGVzWyAwIF0gaW4gcmVzcG9uc2VzICkge1xuXHRcdGZpbmFsRGF0YVR5cGUgPSBkYXRhVHlwZXNbIDAgXTtcblx0fSBlbHNlIHtcblx0XHQvLyBUcnkgY29udmVydGlibGUgZGF0YVR5cGVzXG5cdFx0Zm9yICggdHlwZSBpbiByZXNwb25zZXMgKSB7XG5cdFx0XHRpZiAoICFkYXRhVHlwZXNbIDAgXSB8fCBzLmNvbnZlcnRlcnNbIHR5cGUgKyBcIiBcIiArIGRhdGFUeXBlc1swXSBdICkge1xuXHRcdFx0XHRmaW5hbERhdGFUeXBlID0gdHlwZTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0XHRpZiAoICFmaXJzdERhdGFUeXBlICkge1xuXHRcdFx0XHRmaXJzdERhdGFUeXBlID0gdHlwZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Ly8gT3IganVzdCB1c2UgZmlyc3Qgb25lXG5cdFx0ZmluYWxEYXRhVHlwZSA9IGZpbmFsRGF0YVR5cGUgfHwgZmlyc3REYXRhVHlwZTtcblx0fVxuXG5cdC8vIElmIHdlIGZvdW5kIGEgZGF0YVR5cGVcblx0Ly8gV2UgYWRkIHRoZSBkYXRhVHlwZSB0byB0aGUgbGlzdCBpZiBuZWVkZWRcblx0Ly8gYW5kIHJldHVybiB0aGUgY29ycmVzcG9uZGluZyByZXNwb25zZVxuXHRpZiAoIGZpbmFsRGF0YVR5cGUgKSB7XG5cdFx0aWYgKCBmaW5hbERhdGFUeXBlICE9PSBkYXRhVHlwZXNbIDAgXSApIHtcblx0XHRcdGRhdGFUeXBlcy51bnNoaWZ0KCBmaW5hbERhdGFUeXBlICk7XG5cdFx0fVxuXHRcdHJldHVybiByZXNwb25zZXNbIGZpbmFsRGF0YVR5cGUgXTtcblx0fVxufVxuXG4vKiBDaGFpbiBjb252ZXJzaW9ucyBnaXZlbiB0aGUgcmVxdWVzdCBhbmQgdGhlIG9yaWdpbmFsIHJlc3BvbnNlXG4gKiBBbHNvIHNldHMgdGhlIHJlc3BvbnNlWFhYIGZpZWxkcyBvbiB0aGUganFYSFIgaW5zdGFuY2VcbiAqL1xuZnVuY3Rpb24gYWpheENvbnZlcnQoIHMsIHJlc3BvbnNlLCBqcVhIUiwgaXNTdWNjZXNzICkge1xuXHR2YXIgY29udjIsIGN1cnJlbnQsIGNvbnYsIHRtcCwgcHJldixcblx0XHRjb252ZXJ0ZXJzID0ge30sXG5cdFx0Ly8gV29yayB3aXRoIGEgY29weSBvZiBkYXRhVHlwZXMgaW4gY2FzZSB3ZSBuZWVkIHRvIG1vZGlmeSBpdCBmb3IgY29udmVyc2lvblxuXHRcdGRhdGFUeXBlcyA9IHMuZGF0YVR5cGVzLnNsaWNlKCk7XG5cblx0Ly8gQ3JlYXRlIGNvbnZlcnRlcnMgbWFwIHdpdGggbG93ZXJjYXNlZCBrZXlzXG5cdGlmICggZGF0YVR5cGVzWyAxIF0gKSB7XG5cdFx0Zm9yICggY29udiBpbiBzLmNvbnZlcnRlcnMgKSB7XG5cdFx0XHRjb252ZXJ0ZXJzWyBjb252LnRvTG93ZXJDYXNlKCkgXSA9IHMuY29udmVydGVyc1sgY29udiBdO1xuXHRcdH1cblx0fVxuXG5cdGN1cnJlbnQgPSBkYXRhVHlwZXMuc2hpZnQoKTtcblxuXHQvLyBDb252ZXJ0IHRvIGVhY2ggc2VxdWVudGlhbCBkYXRhVHlwZVxuXHR3aGlsZSAoIGN1cnJlbnQgKSB7XG5cblx0XHRpZiAoIHMucmVzcG9uc2VGaWVsZHNbIGN1cnJlbnQgXSApIHtcblx0XHRcdGpxWEhSWyBzLnJlc3BvbnNlRmllbGRzWyBjdXJyZW50IF0gXSA9IHJlc3BvbnNlO1xuXHRcdH1cblxuXHRcdC8vIEFwcGx5IHRoZSBkYXRhRmlsdGVyIGlmIHByb3ZpZGVkXG5cdFx0aWYgKCAhcHJldiAmJiBpc1N1Y2Nlc3MgJiYgcy5kYXRhRmlsdGVyICkge1xuXHRcdFx0cmVzcG9uc2UgPSBzLmRhdGFGaWx0ZXIoIHJlc3BvbnNlLCBzLmRhdGFUeXBlICk7XG5cdFx0fVxuXG5cdFx0cHJldiA9IGN1cnJlbnQ7XG5cdFx0Y3VycmVudCA9IGRhdGFUeXBlcy5zaGlmdCgpO1xuXG5cdFx0aWYgKCBjdXJyZW50ICkge1xuXG5cdFx0Ly8gVGhlcmUncyBvbmx5IHdvcmsgdG8gZG8gaWYgY3VycmVudCBkYXRhVHlwZSBpcyBub24tYXV0b1xuXHRcdFx0aWYgKCBjdXJyZW50ID09PSBcIipcIiApIHtcblxuXHRcdFx0XHRjdXJyZW50ID0gcHJldjtcblxuXHRcdFx0Ly8gQ29udmVydCByZXNwb25zZSBpZiBwcmV2IGRhdGFUeXBlIGlzIG5vbi1hdXRvIGFuZCBkaWZmZXJzIGZyb20gY3VycmVudFxuXHRcdFx0fSBlbHNlIGlmICggcHJldiAhPT0gXCIqXCIgJiYgcHJldiAhPT0gY3VycmVudCApIHtcblxuXHRcdFx0XHQvLyBTZWVrIGEgZGlyZWN0IGNvbnZlcnRlclxuXHRcdFx0XHRjb252ID0gY29udmVydGVyc1sgcHJldiArIFwiIFwiICsgY3VycmVudCBdIHx8IGNvbnZlcnRlcnNbIFwiKiBcIiArIGN1cnJlbnQgXTtcblxuXHRcdFx0XHQvLyBJZiBub25lIGZvdW5kLCBzZWVrIGEgcGFpclxuXHRcdFx0XHRpZiAoICFjb252ICkge1xuXHRcdFx0XHRcdGZvciAoIGNvbnYyIGluIGNvbnZlcnRlcnMgKSB7XG5cblx0XHRcdFx0XHRcdC8vIElmIGNvbnYyIG91dHB1dHMgY3VycmVudFxuXHRcdFx0XHRcdFx0dG1wID0gY29udjIuc3BsaXQoIFwiIFwiICk7XG5cdFx0XHRcdFx0XHRpZiAoIHRtcFsgMSBdID09PSBjdXJyZW50ICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIElmIHByZXYgY2FuIGJlIGNvbnZlcnRlZCB0byBhY2NlcHRlZCBpbnB1dFxuXHRcdFx0XHRcdFx0XHRjb252ID0gY29udmVydGVyc1sgcHJldiArIFwiIFwiICsgdG1wWyAwIF0gXSB8fFxuXHRcdFx0XHRcdFx0XHRcdGNvbnZlcnRlcnNbIFwiKiBcIiArIHRtcFsgMCBdIF07XG5cdFx0XHRcdFx0XHRcdGlmICggY29udiApIHtcblx0XHRcdFx0XHRcdFx0XHQvLyBDb25kZW5zZSBlcXVpdmFsZW5jZSBjb252ZXJ0ZXJzXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCBjb252ID09PSB0cnVlICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0Y29udiA9IGNvbnZlcnRlcnNbIGNvbnYyIF07XG5cblx0XHRcdFx0XHRcdFx0XHQvLyBPdGhlcndpc2UsIGluc2VydCB0aGUgaW50ZXJtZWRpYXRlIGRhdGFUeXBlXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICggY29udmVydGVyc1sgY29udjIgXSAhPT0gdHJ1ZSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGN1cnJlbnQgPSB0bXBbIDAgXTtcblx0XHRcdFx0XHRcdFx0XHRcdGRhdGFUeXBlcy51bnNoaWZ0KCB0bXBbIDEgXSApO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEFwcGx5IGNvbnZlcnRlciAoaWYgbm90IGFuIGVxdWl2YWxlbmNlKVxuXHRcdFx0XHRpZiAoIGNvbnYgIT09IHRydWUgKSB7XG5cblx0XHRcdFx0XHQvLyBVbmxlc3MgZXJyb3JzIGFyZSBhbGxvd2VkIHRvIGJ1YmJsZSwgY2F0Y2ggYW5kIHJldHVybiB0aGVtXG5cdFx0XHRcdFx0aWYgKCBjb252ICYmIHNbIFwidGhyb3dzXCIgXSApIHtcblx0XHRcdFx0XHRcdHJlc3BvbnNlID0gY29udiggcmVzcG9uc2UgKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0cmVzcG9uc2UgPSBjb252KCByZXNwb25zZSApO1xuXHRcdFx0XHRcdFx0fSBjYXRjaCAoIGUgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB7IHN0YXRlOiBcInBhcnNlcmVycm9yXCIsIGVycm9yOiBjb252ID8gZSA6IFwiTm8gY29udmVyc2lvbiBmcm9tIFwiICsgcHJldiArIFwiIHRvIFwiICsgY3VycmVudCB9O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiB7IHN0YXRlOiBcInN1Y2Nlc3NcIiwgZGF0YTogcmVzcG9uc2UgfTtcbn1cblxualF1ZXJ5LmV4dGVuZCh7XG5cblx0Ly8gQ291bnRlciBmb3IgaG9sZGluZyB0aGUgbnVtYmVyIG9mIGFjdGl2ZSBxdWVyaWVzXG5cdGFjdGl2ZTogMCxcblxuXHQvLyBMYXN0LU1vZGlmaWVkIGhlYWRlciBjYWNoZSBmb3IgbmV4dCByZXF1ZXN0XG5cdGxhc3RNb2RpZmllZDoge30sXG5cdGV0YWc6IHt9LFxuXG5cdGFqYXhTZXR0aW5nczoge1xuXHRcdHVybDogYWpheExvY2F0aW9uLFxuXHRcdHR5cGU6IFwiR0VUXCIsXG5cdFx0aXNMb2NhbDogcmxvY2FsUHJvdG9jb2wudGVzdCggYWpheExvY1BhcnRzWyAxIF0gKSxcblx0XHRnbG9iYWw6IHRydWUsXG5cdFx0cHJvY2Vzc0RhdGE6IHRydWUsXG5cdFx0YXN5bmM6IHRydWUsXG5cdFx0Y29udGVudFR5cGU6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04XCIsXG5cdFx0Lypcblx0XHR0aW1lb3V0OiAwLFxuXHRcdGRhdGE6IG51bGwsXG5cdFx0ZGF0YVR5cGU6IG51bGwsXG5cdFx0dXNlcm5hbWU6IG51bGwsXG5cdFx0cGFzc3dvcmQ6IG51bGwsXG5cdFx0Y2FjaGU6IG51bGwsXG5cdFx0dGhyb3dzOiBmYWxzZSxcblx0XHR0cmFkaXRpb25hbDogZmFsc2UsXG5cdFx0aGVhZGVyczoge30sXG5cdFx0Ki9cblxuXHRcdGFjY2VwdHM6IHtcblx0XHRcdFwiKlwiOiBhbGxUeXBlcyxcblx0XHRcdHRleHQ6IFwidGV4dC9wbGFpblwiLFxuXHRcdFx0aHRtbDogXCJ0ZXh0L2h0bWxcIixcblx0XHRcdHhtbDogXCJhcHBsaWNhdGlvbi94bWwsIHRleHQveG1sXCIsXG5cdFx0XHRqc29uOiBcImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdFwiXG5cdFx0fSxcblxuXHRcdGNvbnRlbnRzOiB7XG5cdFx0XHR4bWw6IC94bWwvLFxuXHRcdFx0aHRtbDogL2h0bWwvLFxuXHRcdFx0anNvbjogL2pzb24vXG5cdFx0fSxcblxuXHRcdHJlc3BvbnNlRmllbGRzOiB7XG5cdFx0XHR4bWw6IFwicmVzcG9uc2VYTUxcIixcblx0XHRcdHRleHQ6IFwicmVzcG9uc2VUZXh0XCIsXG5cdFx0XHRqc29uOiBcInJlc3BvbnNlSlNPTlwiXG5cdFx0fSxcblxuXHRcdC8vIERhdGEgY29udmVydGVyc1xuXHRcdC8vIEtleXMgc2VwYXJhdGUgc291cmNlIChvciBjYXRjaGFsbCBcIipcIikgYW5kIGRlc3RpbmF0aW9uIHR5cGVzIHdpdGggYSBzaW5nbGUgc3BhY2Vcblx0XHRjb252ZXJ0ZXJzOiB7XG5cblx0XHRcdC8vIENvbnZlcnQgYW55dGhpbmcgdG8gdGV4dFxuXHRcdFx0XCIqIHRleHRcIjogU3RyaW5nLFxuXG5cdFx0XHQvLyBUZXh0IHRvIGh0bWwgKHRydWUgPSBubyB0cmFuc2Zvcm1hdGlvbilcblx0XHRcdFwidGV4dCBodG1sXCI6IHRydWUsXG5cblx0XHRcdC8vIEV2YWx1YXRlIHRleHQgYXMgYSBqc29uIGV4cHJlc3Npb25cblx0XHRcdFwidGV4dCBqc29uXCI6IGpRdWVyeS5wYXJzZUpTT04sXG5cblx0XHRcdC8vIFBhcnNlIHRleHQgYXMgeG1sXG5cdFx0XHRcInRleHQgeG1sXCI6IGpRdWVyeS5wYXJzZVhNTFxuXHRcdH0sXG5cblx0XHQvLyBGb3Igb3B0aW9ucyB0aGF0IHNob3VsZG4ndCBiZSBkZWVwIGV4dGVuZGVkOlxuXHRcdC8vIHlvdSBjYW4gYWRkIHlvdXIgb3duIGN1c3RvbSBvcHRpb25zIGhlcmUgaWZcblx0XHQvLyBhbmQgd2hlbiB5b3UgY3JlYXRlIG9uZSB0aGF0IHNob3VsZG4ndCBiZVxuXHRcdC8vIGRlZXAgZXh0ZW5kZWQgKHNlZSBhamF4RXh0ZW5kKVxuXHRcdGZsYXRPcHRpb25zOiB7XG5cdFx0XHR1cmw6IHRydWUsXG5cdFx0XHRjb250ZXh0OiB0cnVlXG5cdFx0fVxuXHR9LFxuXG5cdC8vIENyZWF0ZXMgYSBmdWxsIGZsZWRnZWQgc2V0dGluZ3Mgb2JqZWN0IGludG8gdGFyZ2V0XG5cdC8vIHdpdGggYm90aCBhamF4U2V0dGluZ3MgYW5kIHNldHRpbmdzIGZpZWxkcy5cblx0Ly8gSWYgdGFyZ2V0IGlzIG9taXR0ZWQsIHdyaXRlcyBpbnRvIGFqYXhTZXR0aW5ncy5cblx0YWpheFNldHVwOiBmdW5jdGlvbiggdGFyZ2V0LCBzZXR0aW5ncyApIHtcblx0XHRyZXR1cm4gc2V0dGluZ3MgP1xuXG5cdFx0XHQvLyBCdWlsZGluZyBhIHNldHRpbmdzIG9iamVjdFxuXHRcdFx0YWpheEV4dGVuZCggYWpheEV4dGVuZCggdGFyZ2V0LCBqUXVlcnkuYWpheFNldHRpbmdzICksIHNldHRpbmdzICkgOlxuXG5cdFx0XHQvLyBFeHRlbmRpbmcgYWpheFNldHRpbmdzXG5cdFx0XHRhamF4RXh0ZW5kKCBqUXVlcnkuYWpheFNldHRpbmdzLCB0YXJnZXQgKTtcblx0fSxcblxuXHRhamF4UHJlZmlsdGVyOiBhZGRUb1ByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHByZWZpbHRlcnMgKSxcblx0YWpheFRyYW5zcG9ydDogYWRkVG9QcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCB0cmFuc3BvcnRzICksXG5cblx0Ly8gTWFpbiBtZXRob2Rcblx0YWpheDogZnVuY3Rpb24oIHVybCwgb3B0aW9ucyApIHtcblxuXHRcdC8vIElmIHVybCBpcyBhbiBvYmplY3QsIHNpbXVsYXRlIHByZS0xLjUgc2lnbmF0dXJlXG5cdFx0aWYgKCB0eXBlb2YgdXJsID09PSBcIm9iamVjdFwiICkge1xuXHRcdFx0b3B0aW9ucyA9IHVybDtcblx0XHRcdHVybCA9IHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHQvLyBGb3JjZSBvcHRpb25zIHRvIGJlIGFuIG9iamVjdFxuXHRcdG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG5cdFx0dmFyIHRyYW5zcG9ydCxcblx0XHRcdC8vIFVSTCB3aXRob3V0IGFudGktY2FjaGUgcGFyYW1cblx0XHRcdGNhY2hlVVJMLFxuXHRcdFx0Ly8gUmVzcG9uc2UgaGVhZGVyc1xuXHRcdFx0cmVzcG9uc2VIZWFkZXJzU3RyaW5nLFxuXHRcdFx0cmVzcG9uc2VIZWFkZXJzLFxuXHRcdFx0Ly8gdGltZW91dCBoYW5kbGVcblx0XHRcdHRpbWVvdXRUaW1lcixcblx0XHRcdC8vIENyb3NzLWRvbWFpbiBkZXRlY3Rpb24gdmFyc1xuXHRcdFx0cGFydHMsXG5cdFx0XHQvLyBUbyBrbm93IGlmIGdsb2JhbCBldmVudHMgYXJlIHRvIGJlIGRpc3BhdGNoZWRcblx0XHRcdGZpcmVHbG9iYWxzLFxuXHRcdFx0Ly8gTG9vcCB2YXJpYWJsZVxuXHRcdFx0aSxcblx0XHRcdC8vIENyZWF0ZSB0aGUgZmluYWwgb3B0aW9ucyBvYmplY3Rcblx0XHRcdHMgPSBqUXVlcnkuYWpheFNldHVwKCB7fSwgb3B0aW9ucyApLFxuXHRcdFx0Ly8gQ2FsbGJhY2tzIGNvbnRleHRcblx0XHRcdGNhbGxiYWNrQ29udGV4dCA9IHMuY29udGV4dCB8fCBzLFxuXHRcdFx0Ly8gQ29udGV4dCBmb3IgZ2xvYmFsIGV2ZW50cyBpcyBjYWxsYmFja0NvbnRleHQgaWYgaXQgaXMgYSBET00gbm9kZSBvciBqUXVlcnkgY29sbGVjdGlvblxuXHRcdFx0Z2xvYmFsRXZlbnRDb250ZXh0ID0gcy5jb250ZXh0ICYmICggY2FsbGJhY2tDb250ZXh0Lm5vZGVUeXBlIHx8IGNhbGxiYWNrQ29udGV4dC5qcXVlcnkgKSA/XG5cdFx0XHRcdGpRdWVyeSggY2FsbGJhY2tDb250ZXh0ICkgOlxuXHRcdFx0XHRqUXVlcnkuZXZlbnQsXG5cdFx0XHQvLyBEZWZlcnJlZHNcblx0XHRcdGRlZmVycmVkID0galF1ZXJ5LkRlZmVycmVkKCksXG5cdFx0XHRjb21wbGV0ZURlZmVycmVkID0galF1ZXJ5LkNhbGxiYWNrcyhcIm9uY2UgbWVtb3J5XCIpLFxuXHRcdFx0Ly8gU3RhdHVzLWRlcGVuZGVudCBjYWxsYmFja3Ncblx0XHRcdHN0YXR1c0NvZGUgPSBzLnN0YXR1c0NvZGUgfHwge30sXG5cdFx0XHQvLyBIZWFkZXJzICh0aGV5IGFyZSBzZW50IGFsbCBhdCBvbmNlKVxuXHRcdFx0cmVxdWVzdEhlYWRlcnMgPSB7fSxcblx0XHRcdHJlcXVlc3RIZWFkZXJzTmFtZXMgPSB7fSxcblx0XHRcdC8vIFRoZSBqcVhIUiBzdGF0ZVxuXHRcdFx0c3RhdGUgPSAwLFxuXHRcdFx0Ly8gRGVmYXVsdCBhYm9ydCBtZXNzYWdlXG5cdFx0XHRzdHJBYm9ydCA9IFwiY2FuY2VsZWRcIixcblx0XHRcdC8vIEZha2UgeGhyXG5cdFx0XHRqcVhIUiA9IHtcblx0XHRcdFx0cmVhZHlTdGF0ZTogMCxcblxuXHRcdFx0XHQvLyBCdWlsZHMgaGVhZGVycyBoYXNodGFibGUgaWYgbmVlZGVkXG5cdFx0XHRcdGdldFJlc3BvbnNlSGVhZGVyOiBmdW5jdGlvbigga2V5ICkge1xuXHRcdFx0XHRcdHZhciBtYXRjaDtcblx0XHRcdFx0XHRpZiAoIHN0YXRlID09PSAyICkge1xuXHRcdFx0XHRcdFx0aWYgKCAhcmVzcG9uc2VIZWFkZXJzICkge1xuXHRcdFx0XHRcdFx0XHRyZXNwb25zZUhlYWRlcnMgPSB7fTtcblx0XHRcdFx0XHRcdFx0d2hpbGUgKCAobWF0Y2ggPSByaGVhZGVycy5leGVjKCByZXNwb25zZUhlYWRlcnNTdHJpbmcgKSkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzcG9uc2VIZWFkZXJzWyBtYXRjaFsxXS50b0xvd2VyQ2FzZSgpIF0gPSBtYXRjaFsgMiBdO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRtYXRjaCA9IHJlc3BvbnNlSGVhZGVyc1sga2V5LnRvTG93ZXJDYXNlKCkgXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIG1hdGNoID09IG51bGwgPyBudWxsIDogbWF0Y2g7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0Ly8gUmF3IHN0cmluZ1xuXHRcdFx0XHRnZXRBbGxSZXNwb25zZUhlYWRlcnM6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHJldHVybiBzdGF0ZSA9PT0gMiA/IHJlc3BvbnNlSGVhZGVyc1N0cmluZyA6IG51bGw7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0Ly8gQ2FjaGVzIHRoZSBoZWFkZXJcblx0XHRcdFx0c2V0UmVxdWVzdEhlYWRlcjogZnVuY3Rpb24oIG5hbWUsIHZhbHVlICkge1xuXHRcdFx0XHRcdHZhciBsbmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcblx0XHRcdFx0XHRpZiAoICFzdGF0ZSApIHtcblx0XHRcdFx0XHRcdG5hbWUgPSByZXF1ZXN0SGVhZGVyc05hbWVzWyBsbmFtZSBdID0gcmVxdWVzdEhlYWRlcnNOYW1lc1sgbG5hbWUgXSB8fCBuYW1lO1xuXHRcdFx0XHRcdFx0cmVxdWVzdEhlYWRlcnNbIG5hbWUgXSA9IHZhbHVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBPdmVycmlkZXMgcmVzcG9uc2UgY29udGVudC10eXBlIGhlYWRlclxuXHRcdFx0XHRvdmVycmlkZU1pbWVUeXBlOiBmdW5jdGlvbiggdHlwZSApIHtcblx0XHRcdFx0XHRpZiAoICFzdGF0ZSApIHtcblx0XHRcdFx0XHRcdHMubWltZVR5cGUgPSB0eXBlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBTdGF0dXMtZGVwZW5kZW50IGNhbGxiYWNrc1xuXHRcdFx0XHRzdGF0dXNDb2RlOiBmdW5jdGlvbiggbWFwICkge1xuXHRcdFx0XHRcdHZhciBjb2RlO1xuXHRcdFx0XHRcdGlmICggbWFwICkge1xuXHRcdFx0XHRcdFx0aWYgKCBzdGF0ZSA8IDIgKSB7XG5cdFx0XHRcdFx0XHRcdGZvciAoIGNvZGUgaW4gbWFwICkge1xuXHRcdFx0XHRcdFx0XHRcdC8vIExhenktYWRkIHRoZSBuZXcgY2FsbGJhY2sgaW4gYSB3YXkgdGhhdCBwcmVzZXJ2ZXMgb2xkIG9uZXNcblx0XHRcdFx0XHRcdFx0XHRzdGF0dXNDb2RlWyBjb2RlIF0gPSBbIHN0YXR1c0NvZGVbIGNvZGUgXSwgbWFwWyBjb2RlIF0gXTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Ly8gRXhlY3V0ZSB0aGUgYXBwcm9wcmlhdGUgY2FsbGJhY2tzXG5cdFx0XHRcdFx0XHRcdGpxWEhSLmFsd2F5cyggbWFwWyBqcVhIUi5zdGF0dXMgXSApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBDYW5jZWwgdGhlIHJlcXVlc3Rcblx0XHRcdFx0YWJvcnQ6IGZ1bmN0aW9uKCBzdGF0dXNUZXh0ICkge1xuXHRcdFx0XHRcdHZhciBmaW5hbFRleHQgPSBzdGF0dXNUZXh0IHx8IHN0ckFib3J0O1xuXHRcdFx0XHRcdGlmICggdHJhbnNwb3J0ICkge1xuXHRcdFx0XHRcdFx0dHJhbnNwb3J0LmFib3J0KCBmaW5hbFRleHQgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZG9uZSggMCwgZmluYWxUZXh0ICk7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cblx0XHQvLyBBdHRhY2ggZGVmZXJyZWRzXG5cdFx0ZGVmZXJyZWQucHJvbWlzZSgganFYSFIgKS5jb21wbGV0ZSA9IGNvbXBsZXRlRGVmZXJyZWQuYWRkO1xuXHRcdGpxWEhSLnN1Y2Nlc3MgPSBqcVhIUi5kb25lO1xuXHRcdGpxWEhSLmVycm9yID0ganFYSFIuZmFpbDtcblxuXHRcdC8vIFJlbW92ZSBoYXNoIGNoYXJhY3RlciAoIzc1MzE6IGFuZCBzdHJpbmcgcHJvbW90aW9uKVxuXHRcdC8vIEFkZCBwcm90b2NvbCBpZiBub3QgcHJvdmlkZWQgKHByZWZpbHRlcnMgbWlnaHQgZXhwZWN0IGl0KVxuXHRcdC8vIEhhbmRsZSBmYWxzeSB1cmwgaW4gdGhlIHNldHRpbmdzIG9iamVjdCAoIzEwMDkzOiBjb25zaXN0ZW5jeSB3aXRoIG9sZCBzaWduYXR1cmUpXG5cdFx0Ly8gV2UgYWxzbyB1c2UgdGhlIHVybCBwYXJhbWV0ZXIgaWYgYXZhaWxhYmxlXG5cdFx0cy51cmwgPSAoICggdXJsIHx8IHMudXJsIHx8IGFqYXhMb2NhdGlvbiApICsgXCJcIiApLnJlcGxhY2UoIHJoYXNoLCBcIlwiIClcblx0XHRcdC5yZXBsYWNlKCBycHJvdG9jb2wsIGFqYXhMb2NQYXJ0c1sgMSBdICsgXCIvL1wiICk7XG5cblx0XHQvLyBBbGlhcyBtZXRob2Qgb3B0aW9uIHRvIHR5cGUgYXMgcGVyIHRpY2tldCAjMTIwMDRcblx0XHRzLnR5cGUgPSBvcHRpb25zLm1ldGhvZCB8fCBvcHRpb25zLnR5cGUgfHwgcy5tZXRob2QgfHwgcy50eXBlO1xuXG5cdFx0Ly8gRXh0cmFjdCBkYXRhVHlwZXMgbGlzdFxuXHRcdHMuZGF0YVR5cGVzID0galF1ZXJ5LnRyaW0oIHMuZGF0YVR5cGUgfHwgXCIqXCIgKS50b0xvd2VyQ2FzZSgpLm1hdGNoKCBybm90d2hpdGUgKSB8fCBbIFwiXCIgXTtcblxuXHRcdC8vIEEgY3Jvc3MtZG9tYWluIHJlcXVlc3QgaXMgaW4gb3JkZXIgd2hlbiB3ZSBoYXZlIGEgcHJvdG9jb2w6aG9zdDpwb3J0IG1pc21hdGNoXG5cdFx0aWYgKCBzLmNyb3NzRG9tYWluID09IG51bGwgKSB7XG5cdFx0XHRwYXJ0cyA9IHJ1cmwuZXhlYyggcy51cmwudG9Mb3dlckNhc2UoKSApO1xuXHRcdFx0cy5jcm9zc0RvbWFpbiA9ICEhKCBwYXJ0cyAmJlxuXHRcdFx0XHQoIHBhcnRzWyAxIF0gIT09IGFqYXhMb2NQYXJ0c1sgMSBdIHx8IHBhcnRzWyAyIF0gIT09IGFqYXhMb2NQYXJ0c1sgMiBdIHx8XG5cdFx0XHRcdFx0KCBwYXJ0c1sgMyBdIHx8ICggcGFydHNbIDEgXSA9PT0gXCJodHRwOlwiID8gXCI4MFwiIDogXCI0NDNcIiApICkgIT09XG5cdFx0XHRcdFx0XHQoIGFqYXhMb2NQYXJ0c1sgMyBdIHx8ICggYWpheExvY1BhcnRzWyAxIF0gPT09IFwiaHR0cDpcIiA/IFwiODBcIiA6IFwiNDQzXCIgKSApIClcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0Ly8gQ29udmVydCBkYXRhIGlmIG5vdCBhbHJlYWR5IGEgc3RyaW5nXG5cdFx0aWYgKCBzLmRhdGEgJiYgcy5wcm9jZXNzRGF0YSAmJiB0eXBlb2Ygcy5kYXRhICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0cy5kYXRhID0galF1ZXJ5LnBhcmFtKCBzLmRhdGEsIHMudHJhZGl0aW9uYWwgKTtcblx0XHR9XG5cblx0XHQvLyBBcHBseSBwcmVmaWx0ZXJzXG5cdFx0aW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHByZWZpbHRlcnMsIHMsIG9wdGlvbnMsIGpxWEhSICk7XG5cblx0XHQvLyBJZiByZXF1ZXN0IHdhcyBhYm9ydGVkIGluc2lkZSBhIHByZWZpbHRlciwgc3RvcCB0aGVyZVxuXHRcdGlmICggc3RhdGUgPT09IDIgKSB7XG5cdFx0XHRyZXR1cm4ganFYSFI7XG5cdFx0fVxuXG5cdFx0Ly8gV2UgY2FuIGZpcmUgZ2xvYmFsIGV2ZW50cyBhcyBvZiBub3cgaWYgYXNrZWQgdG9cblx0XHQvLyBEb24ndCBmaXJlIGV2ZW50cyBpZiBqUXVlcnkuZXZlbnQgaXMgdW5kZWZpbmVkIGluIGFuIEFNRC11c2FnZSBzY2VuYXJpbyAoIzE1MTE4KVxuXHRcdGZpcmVHbG9iYWxzID0galF1ZXJ5LmV2ZW50ICYmIHMuZ2xvYmFsO1xuXG5cdFx0Ly8gV2F0Y2ggZm9yIGEgbmV3IHNldCBvZiByZXF1ZXN0c1xuXHRcdGlmICggZmlyZUdsb2JhbHMgJiYgalF1ZXJ5LmFjdGl2ZSsrID09PSAwICkge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXIoXCJhamF4U3RhcnRcIik7XG5cdFx0fVxuXG5cdFx0Ly8gVXBwZXJjYXNlIHRoZSB0eXBlXG5cdFx0cy50eXBlID0gcy50eXBlLnRvVXBwZXJDYXNlKCk7XG5cblx0XHQvLyBEZXRlcm1pbmUgaWYgcmVxdWVzdCBoYXMgY29udGVudFxuXHRcdHMuaGFzQ29udGVudCA9ICFybm9Db250ZW50LnRlc3QoIHMudHlwZSApO1xuXG5cdFx0Ly8gU2F2ZSB0aGUgVVJMIGluIGNhc2Ugd2UncmUgdG95aW5nIHdpdGggdGhlIElmLU1vZGlmaWVkLVNpbmNlXG5cdFx0Ly8gYW5kL29yIElmLU5vbmUtTWF0Y2ggaGVhZGVyIGxhdGVyIG9uXG5cdFx0Y2FjaGVVUkwgPSBzLnVybDtcblxuXHRcdC8vIE1vcmUgb3B0aW9ucyBoYW5kbGluZyBmb3IgcmVxdWVzdHMgd2l0aCBubyBjb250ZW50XG5cdFx0aWYgKCAhcy5oYXNDb250ZW50ICkge1xuXG5cdFx0XHQvLyBJZiBkYXRhIGlzIGF2YWlsYWJsZSwgYXBwZW5kIGRhdGEgdG8gdXJsXG5cdFx0XHRpZiAoIHMuZGF0YSApIHtcblx0XHRcdFx0Y2FjaGVVUkwgPSAoIHMudXJsICs9ICggcnF1ZXJ5LnRlc3QoIGNhY2hlVVJMICkgPyBcIiZcIiA6IFwiP1wiICkgKyBzLmRhdGEgKTtcblx0XHRcdFx0Ly8gIzk2ODI6IHJlbW92ZSBkYXRhIHNvIHRoYXQgaXQncyBub3QgdXNlZCBpbiBhbiBldmVudHVhbCByZXRyeVxuXHRcdFx0XHRkZWxldGUgcy5kYXRhO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBBZGQgYW50aS1jYWNoZSBpbiB1cmwgaWYgbmVlZGVkXG5cdFx0XHRpZiAoIHMuY2FjaGUgPT09IGZhbHNlICkge1xuXHRcdFx0XHRzLnVybCA9IHJ0cy50ZXN0KCBjYWNoZVVSTCApID9cblxuXHRcdFx0XHRcdC8vIElmIHRoZXJlIGlzIGFscmVhZHkgYSAnXycgcGFyYW1ldGVyLCBzZXQgaXRzIHZhbHVlXG5cdFx0XHRcdFx0Y2FjaGVVUkwucmVwbGFjZSggcnRzLCBcIiQxXz1cIiArIG5vbmNlKysgKSA6XG5cblx0XHRcdFx0XHQvLyBPdGhlcndpc2UgYWRkIG9uZSB0byB0aGUgZW5kXG5cdFx0XHRcdFx0Y2FjaGVVUkwgKyAoIHJxdWVyeS50ZXN0KCBjYWNoZVVSTCApID8gXCImXCIgOiBcIj9cIiApICsgXCJfPVwiICsgbm9uY2UrKztcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBTZXQgdGhlIElmLU1vZGlmaWVkLVNpbmNlIGFuZC9vciBJZi1Ob25lLU1hdGNoIGhlYWRlciwgaWYgaW4gaWZNb2RpZmllZCBtb2RlLlxuXHRcdGlmICggcy5pZk1vZGlmaWVkICkge1xuXHRcdFx0aWYgKCBqUXVlcnkubGFzdE1vZGlmaWVkWyBjYWNoZVVSTCBdICkge1xuXHRcdFx0XHRqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKCBcIklmLU1vZGlmaWVkLVNpbmNlXCIsIGpRdWVyeS5sYXN0TW9kaWZpZWRbIGNhY2hlVVJMIF0gKTtcblx0XHRcdH1cblx0XHRcdGlmICggalF1ZXJ5LmV0YWdbIGNhY2hlVVJMIF0gKSB7XG5cdFx0XHRcdGpxWEhSLnNldFJlcXVlc3RIZWFkZXIoIFwiSWYtTm9uZS1NYXRjaFwiLCBqUXVlcnkuZXRhZ1sgY2FjaGVVUkwgXSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFNldCB0aGUgY29ycmVjdCBoZWFkZXIsIGlmIGRhdGEgaXMgYmVpbmcgc2VudFxuXHRcdGlmICggcy5kYXRhICYmIHMuaGFzQ29udGVudCAmJiBzLmNvbnRlbnRUeXBlICE9PSBmYWxzZSB8fCBvcHRpb25zLmNvbnRlbnRUeXBlICkge1xuXHRcdFx0anFYSFIuc2V0UmVxdWVzdEhlYWRlciggXCJDb250ZW50LVR5cGVcIiwgcy5jb250ZW50VHlwZSApO1xuXHRcdH1cblxuXHRcdC8vIFNldCB0aGUgQWNjZXB0cyBoZWFkZXIgZm9yIHRoZSBzZXJ2ZXIsIGRlcGVuZGluZyBvbiB0aGUgZGF0YVR5cGVcblx0XHRqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKFxuXHRcdFx0XCJBY2NlcHRcIixcblx0XHRcdHMuZGF0YVR5cGVzWyAwIF0gJiYgcy5hY2NlcHRzWyBzLmRhdGFUeXBlc1swXSBdID9cblx0XHRcdFx0cy5hY2NlcHRzWyBzLmRhdGFUeXBlc1swXSBdICsgKCBzLmRhdGFUeXBlc1sgMCBdICE9PSBcIipcIiA/IFwiLCBcIiArIGFsbFR5cGVzICsgXCI7IHE9MC4wMVwiIDogXCJcIiApIDpcblx0XHRcdFx0cy5hY2NlcHRzWyBcIipcIiBdXG5cdFx0KTtcblxuXHRcdC8vIENoZWNrIGZvciBoZWFkZXJzIG9wdGlvblxuXHRcdGZvciAoIGkgaW4gcy5oZWFkZXJzICkge1xuXHRcdFx0anFYSFIuc2V0UmVxdWVzdEhlYWRlciggaSwgcy5oZWFkZXJzWyBpIF0gKTtcblx0XHR9XG5cblx0XHQvLyBBbGxvdyBjdXN0b20gaGVhZGVycy9taW1ldHlwZXMgYW5kIGVhcmx5IGFib3J0XG5cdFx0aWYgKCBzLmJlZm9yZVNlbmQgJiYgKCBzLmJlZm9yZVNlbmQuY2FsbCggY2FsbGJhY2tDb250ZXh0LCBqcVhIUiwgcyApID09PSBmYWxzZSB8fCBzdGF0ZSA9PT0gMiApICkge1xuXHRcdFx0Ly8gQWJvcnQgaWYgbm90IGRvbmUgYWxyZWFkeSBhbmQgcmV0dXJuXG5cdFx0XHRyZXR1cm4ganFYSFIuYWJvcnQoKTtcblx0XHR9XG5cblx0XHQvLyBBYm9ydGluZyBpcyBubyBsb25nZXIgYSBjYW5jZWxsYXRpb25cblx0XHRzdHJBYm9ydCA9IFwiYWJvcnRcIjtcblxuXHRcdC8vIEluc3RhbGwgY2FsbGJhY2tzIG9uIGRlZmVycmVkc1xuXHRcdGZvciAoIGkgaW4geyBzdWNjZXNzOiAxLCBlcnJvcjogMSwgY29tcGxldGU6IDEgfSApIHtcblx0XHRcdGpxWEhSWyBpIF0oIHNbIGkgXSApO1xuXHRcdH1cblxuXHRcdC8vIEdldCB0cmFuc3BvcnRcblx0XHR0cmFuc3BvcnQgPSBpbnNwZWN0UHJlZmlsdGVyc09yVHJhbnNwb3J0cyggdHJhbnNwb3J0cywgcywgb3B0aW9ucywganFYSFIgKTtcblxuXHRcdC8vIElmIG5vIHRyYW5zcG9ydCwgd2UgYXV0by1hYm9ydFxuXHRcdGlmICggIXRyYW5zcG9ydCApIHtcblx0XHRcdGRvbmUoIC0xLCBcIk5vIFRyYW5zcG9ydFwiICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGpxWEhSLnJlYWR5U3RhdGUgPSAxO1xuXG5cdFx0XHQvLyBTZW5kIGdsb2JhbCBldmVudFxuXHRcdFx0aWYgKCBmaXJlR2xvYmFscyApIHtcblx0XHRcdFx0Z2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoIFwiYWpheFNlbmRcIiwgWyBqcVhIUiwgcyBdICk7XG5cdFx0XHR9XG5cdFx0XHQvLyBUaW1lb3V0XG5cdFx0XHRpZiAoIHMuYXN5bmMgJiYgcy50aW1lb3V0ID4gMCApIHtcblx0XHRcdFx0dGltZW91dFRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRqcVhIUi5hYm9ydChcInRpbWVvdXRcIik7XG5cdFx0XHRcdH0sIHMudGltZW91dCApO1xuXHRcdFx0fVxuXG5cdFx0XHR0cnkge1xuXHRcdFx0XHRzdGF0ZSA9IDE7XG5cdFx0XHRcdHRyYW5zcG9ydC5zZW5kKCByZXF1ZXN0SGVhZGVycywgZG9uZSApO1xuXHRcdFx0fSBjYXRjaCAoIGUgKSB7XG5cdFx0XHRcdC8vIFByb3BhZ2F0ZSBleGNlcHRpb24gYXMgZXJyb3IgaWYgbm90IGRvbmVcblx0XHRcdFx0aWYgKCBzdGF0ZSA8IDIgKSB7XG5cdFx0XHRcdFx0ZG9uZSggLTEsIGUgKTtcblx0XHRcdFx0Ly8gU2ltcGx5IHJldGhyb3cgb3RoZXJ3aXNlXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhyb3cgZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENhbGxiYWNrIGZvciB3aGVuIGV2ZXJ5dGhpbmcgaXMgZG9uZVxuXHRcdGZ1bmN0aW9uIGRvbmUoIHN0YXR1cywgbmF0aXZlU3RhdHVzVGV4dCwgcmVzcG9uc2VzLCBoZWFkZXJzICkge1xuXHRcdFx0dmFyIGlzU3VjY2Vzcywgc3VjY2VzcywgZXJyb3IsIHJlc3BvbnNlLCBtb2RpZmllZCxcblx0XHRcdFx0c3RhdHVzVGV4dCA9IG5hdGl2ZVN0YXR1c1RleHQ7XG5cblx0XHRcdC8vIENhbGxlZCBvbmNlXG5cdFx0XHRpZiAoIHN0YXRlID09PSAyICkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN0YXRlIGlzIFwiZG9uZVwiIG5vd1xuXHRcdFx0c3RhdGUgPSAyO1xuXG5cdFx0XHQvLyBDbGVhciB0aW1lb3V0IGlmIGl0IGV4aXN0c1xuXHRcdFx0aWYgKCB0aW1lb3V0VGltZXIgKSB7XG5cdFx0XHRcdGNsZWFyVGltZW91dCggdGltZW91dFRpbWVyICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIERlcmVmZXJlbmNlIHRyYW5zcG9ydCBmb3IgZWFybHkgZ2FyYmFnZSBjb2xsZWN0aW9uXG5cdFx0XHQvLyAobm8gbWF0dGVyIGhvdyBsb25nIHRoZSBqcVhIUiBvYmplY3Qgd2lsbCBiZSB1c2VkKVxuXHRcdFx0dHJhbnNwb3J0ID0gdW5kZWZpbmVkO1xuXG5cdFx0XHQvLyBDYWNoZSByZXNwb25zZSBoZWFkZXJzXG5cdFx0XHRyZXNwb25zZUhlYWRlcnNTdHJpbmcgPSBoZWFkZXJzIHx8IFwiXCI7XG5cblx0XHRcdC8vIFNldCByZWFkeVN0YXRlXG5cdFx0XHRqcVhIUi5yZWFkeVN0YXRlID0gc3RhdHVzID4gMCA/IDQgOiAwO1xuXG5cdFx0XHQvLyBEZXRlcm1pbmUgaWYgc3VjY2Vzc2Z1bFxuXHRcdFx0aXNTdWNjZXNzID0gc3RhdHVzID49IDIwMCAmJiBzdGF0dXMgPCAzMDAgfHwgc3RhdHVzID09PSAzMDQ7XG5cblx0XHRcdC8vIEdldCByZXNwb25zZSBkYXRhXG5cdFx0XHRpZiAoIHJlc3BvbnNlcyApIHtcblx0XHRcdFx0cmVzcG9uc2UgPSBhamF4SGFuZGxlUmVzcG9uc2VzKCBzLCBqcVhIUiwgcmVzcG9uc2VzICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENvbnZlcnQgbm8gbWF0dGVyIHdoYXQgKHRoYXQgd2F5IHJlc3BvbnNlWFhYIGZpZWxkcyBhcmUgYWx3YXlzIHNldClcblx0XHRcdHJlc3BvbnNlID0gYWpheENvbnZlcnQoIHMsIHJlc3BvbnNlLCBqcVhIUiwgaXNTdWNjZXNzICk7XG5cblx0XHRcdC8vIElmIHN1Y2Nlc3NmdWwsIGhhbmRsZSB0eXBlIGNoYWluaW5nXG5cdFx0XHRpZiAoIGlzU3VjY2VzcyApIHtcblxuXHRcdFx0XHQvLyBTZXQgdGhlIElmLU1vZGlmaWVkLVNpbmNlIGFuZC9vciBJZi1Ob25lLU1hdGNoIGhlYWRlciwgaWYgaW4gaWZNb2RpZmllZCBtb2RlLlxuXHRcdFx0XHRpZiAoIHMuaWZNb2RpZmllZCApIHtcblx0XHRcdFx0XHRtb2RpZmllZCA9IGpxWEhSLmdldFJlc3BvbnNlSGVhZGVyKFwiTGFzdC1Nb2RpZmllZFwiKTtcblx0XHRcdFx0XHRpZiAoIG1vZGlmaWVkICkge1xuXHRcdFx0XHRcdFx0alF1ZXJ5Lmxhc3RNb2RpZmllZFsgY2FjaGVVUkwgXSA9IG1vZGlmaWVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRtb2RpZmllZCA9IGpxWEhSLmdldFJlc3BvbnNlSGVhZGVyKFwiZXRhZ1wiKTtcblx0XHRcdFx0XHRpZiAoIG1vZGlmaWVkICkge1xuXHRcdFx0XHRcdFx0alF1ZXJ5LmV0YWdbIGNhY2hlVVJMIF0gPSBtb2RpZmllZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBpZiBubyBjb250ZW50XG5cdFx0XHRcdGlmICggc3RhdHVzID09PSAyMDQgfHwgcy50eXBlID09PSBcIkhFQURcIiApIHtcblx0XHRcdFx0XHRzdGF0dXNUZXh0ID0gXCJub2NvbnRlbnRcIjtcblxuXHRcdFx0XHQvLyBpZiBub3QgbW9kaWZpZWRcblx0XHRcdFx0fSBlbHNlIGlmICggc3RhdHVzID09PSAzMDQgKSB7XG5cdFx0XHRcdFx0c3RhdHVzVGV4dCA9IFwibm90bW9kaWZpZWRcIjtcblxuXHRcdFx0XHQvLyBJZiB3ZSBoYXZlIGRhdGEsIGxldCdzIGNvbnZlcnQgaXRcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzdGF0dXNUZXh0ID0gcmVzcG9uc2Uuc3RhdGU7XG5cdFx0XHRcdFx0c3VjY2VzcyA9IHJlc3BvbnNlLmRhdGE7XG5cdFx0XHRcdFx0ZXJyb3IgPSByZXNwb25zZS5lcnJvcjtcblx0XHRcdFx0XHRpc1N1Y2Nlc3MgPSAhZXJyb3I7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIEV4dHJhY3QgZXJyb3IgZnJvbSBzdGF0dXNUZXh0IGFuZCBub3JtYWxpemUgZm9yIG5vbi1hYm9ydHNcblx0XHRcdFx0ZXJyb3IgPSBzdGF0dXNUZXh0O1xuXHRcdFx0XHRpZiAoIHN0YXR1cyB8fCAhc3RhdHVzVGV4dCApIHtcblx0XHRcdFx0XHRzdGF0dXNUZXh0ID0gXCJlcnJvclwiO1xuXHRcdFx0XHRcdGlmICggc3RhdHVzIDwgMCApIHtcblx0XHRcdFx0XHRcdHN0YXR1cyA9IDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNldCBkYXRhIGZvciB0aGUgZmFrZSB4aHIgb2JqZWN0XG5cdFx0XHRqcVhIUi5zdGF0dXMgPSBzdGF0dXM7XG5cdFx0XHRqcVhIUi5zdGF0dXNUZXh0ID0gKCBuYXRpdmVTdGF0dXNUZXh0IHx8IHN0YXR1c1RleHQgKSArIFwiXCI7XG5cblx0XHRcdC8vIFN1Y2Nlc3MvRXJyb3Jcblx0XHRcdGlmICggaXNTdWNjZXNzICkge1xuXHRcdFx0XHRkZWZlcnJlZC5yZXNvbHZlV2l0aCggY2FsbGJhY2tDb250ZXh0LCBbIHN1Y2Nlc3MsIHN0YXR1c1RleHQsIGpxWEhSIF0gKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGRlZmVycmVkLnJlamVjdFdpdGgoIGNhbGxiYWNrQ29udGV4dCwgWyBqcVhIUiwgc3RhdHVzVGV4dCwgZXJyb3IgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdGF0dXMtZGVwZW5kZW50IGNhbGxiYWNrc1xuXHRcdFx0anFYSFIuc3RhdHVzQ29kZSggc3RhdHVzQ29kZSApO1xuXHRcdFx0c3RhdHVzQ29kZSA9IHVuZGVmaW5lZDtcblxuXHRcdFx0aWYgKCBmaXJlR2xvYmFscyApIHtcblx0XHRcdFx0Z2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoIGlzU3VjY2VzcyA/IFwiYWpheFN1Y2Nlc3NcIiA6IFwiYWpheEVycm9yXCIsXG5cdFx0XHRcdFx0WyBqcVhIUiwgcywgaXNTdWNjZXNzID8gc3VjY2VzcyA6IGVycm9yIF0gKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQ29tcGxldGVcblx0XHRcdGNvbXBsZXRlRGVmZXJyZWQuZmlyZVdpdGgoIGNhbGxiYWNrQ29udGV4dCwgWyBqcVhIUiwgc3RhdHVzVGV4dCBdICk7XG5cblx0XHRcdGlmICggZmlyZUdsb2JhbHMgKSB7XG5cdFx0XHRcdGdsb2JhbEV2ZW50Q29udGV4dC50cmlnZ2VyKCBcImFqYXhDb21wbGV0ZVwiLCBbIGpxWEhSLCBzIF0gKTtcblx0XHRcdFx0Ly8gSGFuZGxlIHRoZSBnbG9iYWwgQUpBWCBjb3VudGVyXG5cdFx0XHRcdGlmICggISggLS1qUXVlcnkuYWN0aXZlICkgKSB7XG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXIoXCJhamF4U3RvcFwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBqcVhIUjtcblx0fSxcblxuXHRnZXRKU09OOiBmdW5jdGlvbiggdXJsLCBkYXRhLCBjYWxsYmFjayApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmdldCggdXJsLCBkYXRhLCBjYWxsYmFjaywgXCJqc29uXCIgKTtcblx0fSxcblxuXHRnZXRTY3JpcHQ6IGZ1bmN0aW9uKCB1cmwsIGNhbGxiYWNrICkge1xuXHRcdHJldHVybiBqUXVlcnkuZ2V0KCB1cmwsIHVuZGVmaW5lZCwgY2FsbGJhY2ssIFwic2NyaXB0XCIgKTtcblx0fVxufSk7XG5cbmpRdWVyeS5lYWNoKCBbIFwiZ2V0XCIsIFwicG9zdFwiIF0sIGZ1bmN0aW9uKCBpLCBtZXRob2QgKSB7XG5cdGpRdWVyeVsgbWV0aG9kIF0gPSBmdW5jdGlvbiggdXJsLCBkYXRhLCBjYWxsYmFjaywgdHlwZSApIHtcblx0XHQvLyBTaGlmdCBhcmd1bWVudHMgaWYgZGF0YSBhcmd1bWVudCB3YXMgb21pdHRlZFxuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIGRhdGEgKSApIHtcblx0XHRcdHR5cGUgPSB0eXBlIHx8IGNhbGxiYWNrO1xuXHRcdFx0Y2FsbGJhY2sgPSBkYXRhO1xuXHRcdFx0ZGF0YSA9IHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHRyZXR1cm4galF1ZXJ5LmFqYXgoe1xuXHRcdFx0dXJsOiB1cmwsXG5cdFx0XHR0eXBlOiBtZXRob2QsXG5cdFx0XHRkYXRhVHlwZTogdHlwZSxcblx0XHRcdGRhdGE6IGRhdGEsXG5cdFx0XHRzdWNjZXNzOiBjYWxsYmFja1xuXHRcdH0pO1xuXHR9O1xufSk7XG5cblxualF1ZXJ5Ll9ldmFsVXJsID0gZnVuY3Rpb24oIHVybCApIHtcblx0cmV0dXJuIGpRdWVyeS5hamF4KHtcblx0XHR1cmw6IHVybCxcblx0XHR0eXBlOiBcIkdFVFwiLFxuXHRcdGRhdGFUeXBlOiBcInNjcmlwdFwiLFxuXHRcdGFzeW5jOiBmYWxzZSxcblx0XHRnbG9iYWw6IGZhbHNlLFxuXHRcdFwidGhyb3dzXCI6IHRydWVcblx0fSk7XG59O1xuXG5cbmpRdWVyeS5mbi5leHRlbmQoe1xuXHR3cmFwQWxsOiBmdW5jdGlvbiggaHRtbCApIHtcblx0XHR2YXIgd3JhcDtcblxuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIGh0bWwgKSApIHtcblx0XHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHRcdGpRdWVyeSggdGhpcyApLndyYXBBbGwoIGh0bWwuY2FsbCh0aGlzLCBpKSApO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0aWYgKCB0aGlzWyAwIF0gKSB7XG5cblx0XHRcdC8vIFRoZSBlbGVtZW50cyB0byB3cmFwIHRoZSB0YXJnZXQgYXJvdW5kXG5cdFx0XHR3cmFwID0galF1ZXJ5KCBodG1sLCB0aGlzWyAwIF0ub3duZXJEb2N1bWVudCApLmVxKCAwICkuY2xvbmUoIHRydWUgKTtcblxuXHRcdFx0aWYgKCB0aGlzWyAwIF0ucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0d3JhcC5pbnNlcnRCZWZvcmUoIHRoaXNbIDAgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHR3cmFwLm1hcChmdW5jdGlvbigpIHtcblx0XHRcdFx0dmFyIGVsZW0gPSB0aGlzO1xuXG5cdFx0XHRcdHdoaWxlICggZWxlbS5maXJzdEVsZW1lbnRDaGlsZCApIHtcblx0XHRcdFx0XHRlbGVtID0gZWxlbS5maXJzdEVsZW1lbnRDaGlsZDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiBlbGVtO1xuXHRcdFx0fSkuYXBwZW5kKCB0aGlzICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH0sXG5cblx0d3JhcElubmVyOiBmdW5jdGlvbiggaHRtbCApIHtcblx0XHRpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBodG1sICkgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCBpICkge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS53cmFwSW5uZXIoIGh0bWwuY2FsbCh0aGlzLCBpKSApO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcblx0XHRcdHZhciBzZWxmID0galF1ZXJ5KCB0aGlzICksXG5cdFx0XHRcdGNvbnRlbnRzID0gc2VsZi5jb250ZW50cygpO1xuXG5cdFx0XHRpZiAoIGNvbnRlbnRzLmxlbmd0aCApIHtcblx0XHRcdFx0Y29udGVudHMud3JhcEFsbCggaHRtbCApO1xuXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRzZWxmLmFwcGVuZCggaHRtbCApO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9LFxuXG5cdHdyYXA6IGZ1bmN0aW9uKCBodG1sICkge1xuXHRcdHZhciBpc0Z1bmN0aW9uID0galF1ZXJ5LmlzRnVuY3Rpb24oIGh0bWwgKTtcblxuXHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHRqUXVlcnkoIHRoaXMgKS53cmFwQWxsKCBpc0Z1bmN0aW9uID8gaHRtbC5jYWxsKHRoaXMsIGkpIDogaHRtbCApO1xuXHRcdH0pO1xuXHR9LFxuXG5cdHVud3JhcDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMucGFyZW50KCkuZWFjaChmdW5jdGlvbigpIHtcblx0XHRcdGlmICggIWpRdWVyeS5ub2RlTmFtZSggdGhpcywgXCJib2R5XCIgKSApIHtcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkucmVwbGFjZVdpdGgoIHRoaXMuY2hpbGROb2RlcyApO1xuXHRcdFx0fVxuXHRcdH0pLmVuZCgpO1xuXHR9XG59KTtcblxuXG5qUXVlcnkuZXhwci5maWx0ZXJzLmhpZGRlbiA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHQvLyBTdXBwb3J0OiBPcGVyYSA8PSAxMi4xMlxuXHQvLyBPcGVyYSByZXBvcnRzIG9mZnNldFdpZHRocyBhbmQgb2Zmc2V0SGVpZ2h0cyBsZXNzIHRoYW4gemVybyBvbiBzb21lIGVsZW1lbnRzXG5cdHJldHVybiBlbGVtLm9mZnNldFdpZHRoIDw9IDAgJiYgZWxlbS5vZmZzZXRIZWlnaHQgPD0gMDtcbn07XG5qUXVlcnkuZXhwci5maWx0ZXJzLnZpc2libGUgPSBmdW5jdGlvbiggZWxlbSApIHtcblx0cmV0dXJuICFqUXVlcnkuZXhwci5maWx0ZXJzLmhpZGRlbiggZWxlbSApO1xufTtcblxuXG5cblxudmFyIHIyMCA9IC8lMjAvZyxcblx0cmJyYWNrZXQgPSAvXFxbXFxdJC8sXG5cdHJDUkxGID0gL1xccj9cXG4vZyxcblx0cnN1Ym1pdHRlclR5cGVzID0gL14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLFxuXHRyc3VibWl0dGFibGUgPSAvXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxrZXlnZW4pL2k7XG5cbmZ1bmN0aW9uIGJ1aWxkUGFyYW1zKCBwcmVmaXgsIG9iaiwgdHJhZGl0aW9uYWwsIGFkZCApIHtcblx0dmFyIG5hbWU7XG5cblx0aWYgKCBqUXVlcnkuaXNBcnJheSggb2JqICkgKSB7XG5cdFx0Ly8gU2VyaWFsaXplIGFycmF5IGl0ZW0uXG5cdFx0alF1ZXJ5LmVhY2goIG9iaiwgZnVuY3Rpb24oIGksIHYgKSB7XG5cdFx0XHRpZiAoIHRyYWRpdGlvbmFsIHx8IHJicmFja2V0LnRlc3QoIHByZWZpeCApICkge1xuXHRcdFx0XHQvLyBUcmVhdCBlYWNoIGFycmF5IGl0ZW0gYXMgYSBzY2FsYXIuXG5cdFx0XHRcdGFkZCggcHJlZml4LCB2ICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIEl0ZW0gaXMgbm9uLXNjYWxhciAoYXJyYXkgb3Igb2JqZWN0KSwgZW5jb2RlIGl0cyBudW1lcmljIGluZGV4LlxuXHRcdFx0XHRidWlsZFBhcmFtcyggcHJlZml4ICsgXCJbXCIgKyAoIHR5cGVvZiB2ID09PSBcIm9iamVjdFwiID8gaSA6IFwiXCIgKSArIFwiXVwiLCB2LCB0cmFkaXRpb25hbCwgYWRkICk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0fSBlbHNlIGlmICggIXRyYWRpdGlvbmFsICYmIGpRdWVyeS50eXBlKCBvYmogKSA9PT0gXCJvYmplY3RcIiApIHtcblx0XHQvLyBTZXJpYWxpemUgb2JqZWN0IGl0ZW0uXG5cdFx0Zm9yICggbmFtZSBpbiBvYmogKSB7XG5cdFx0XHRidWlsZFBhcmFtcyggcHJlZml4ICsgXCJbXCIgKyBuYW1lICsgXCJdXCIsIG9ialsgbmFtZSBdLCB0cmFkaXRpb25hbCwgYWRkICk7XG5cdFx0fVxuXG5cdH0gZWxzZSB7XG5cdFx0Ly8gU2VyaWFsaXplIHNjYWxhciBpdGVtLlxuXHRcdGFkZCggcHJlZml4LCBvYmogKTtcblx0fVxufVxuXG4vLyBTZXJpYWxpemUgYW4gYXJyYXkgb2YgZm9ybSBlbGVtZW50cyBvciBhIHNldCBvZlxuLy8ga2V5L3ZhbHVlcyBpbnRvIGEgcXVlcnkgc3RyaW5nXG5qUXVlcnkucGFyYW0gPSBmdW5jdGlvbiggYSwgdHJhZGl0aW9uYWwgKSB7XG5cdHZhciBwcmVmaXgsXG5cdFx0cyA9IFtdLFxuXHRcdGFkZCA9IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkge1xuXHRcdFx0Ly8gSWYgdmFsdWUgaXMgYSBmdW5jdGlvbiwgaW52b2tlIGl0IGFuZCByZXR1cm4gaXRzIHZhbHVlXG5cdFx0XHR2YWx1ZSA9IGpRdWVyeS5pc0Z1bmN0aW9uKCB2YWx1ZSApID8gdmFsdWUoKSA6ICggdmFsdWUgPT0gbnVsbCA/IFwiXCIgOiB2YWx1ZSApO1xuXHRcdFx0c1sgcy5sZW5ndGggXSA9IGVuY29kZVVSSUNvbXBvbmVudCgga2V5ICkgKyBcIj1cIiArIGVuY29kZVVSSUNvbXBvbmVudCggdmFsdWUgKTtcblx0XHR9O1xuXG5cdC8vIFNldCB0cmFkaXRpb25hbCB0byB0cnVlIGZvciBqUXVlcnkgPD0gMS4zLjIgYmVoYXZpb3IuXG5cdGlmICggdHJhZGl0aW9uYWwgPT09IHVuZGVmaW5lZCApIHtcblx0XHR0cmFkaXRpb25hbCA9IGpRdWVyeS5hamF4U2V0dGluZ3MgJiYgalF1ZXJ5LmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbDtcblx0fVxuXG5cdC8vIElmIGFuIGFycmF5IHdhcyBwYXNzZWQgaW4sIGFzc3VtZSB0aGF0IGl0IGlzIGFuIGFycmF5IG9mIGZvcm0gZWxlbWVudHMuXG5cdGlmICggalF1ZXJ5LmlzQXJyYXkoIGEgKSB8fCAoIGEuanF1ZXJ5ICYmICFqUXVlcnkuaXNQbGFpbk9iamVjdCggYSApICkgKSB7XG5cdFx0Ly8gU2VyaWFsaXplIHRoZSBmb3JtIGVsZW1lbnRzXG5cdFx0alF1ZXJ5LmVhY2goIGEsIGZ1bmN0aW9uKCkge1xuXHRcdFx0YWRkKCB0aGlzLm5hbWUsIHRoaXMudmFsdWUgKTtcblx0XHR9KTtcblxuXHR9IGVsc2Uge1xuXHRcdC8vIElmIHRyYWRpdGlvbmFsLCBlbmNvZGUgdGhlIFwib2xkXCIgd2F5ICh0aGUgd2F5IDEuMy4yIG9yIG9sZGVyXG5cdFx0Ly8gZGlkIGl0KSwgb3RoZXJ3aXNlIGVuY29kZSBwYXJhbXMgcmVjdXJzaXZlbHkuXG5cdFx0Zm9yICggcHJlZml4IGluIGEgKSB7XG5cdFx0XHRidWlsZFBhcmFtcyggcHJlZml4LCBhWyBwcmVmaXggXSwgdHJhZGl0aW9uYWwsIGFkZCApO1xuXHRcdH1cblx0fVxuXG5cdC8vIFJldHVybiB0aGUgcmVzdWx0aW5nIHNlcmlhbGl6YXRpb25cblx0cmV0dXJuIHMuam9pbiggXCImXCIgKS5yZXBsYWNlKCByMjAsIFwiK1wiICk7XG59O1xuXG5qUXVlcnkuZm4uZXh0ZW5kKHtcblx0c2VyaWFsaXplOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4galF1ZXJ5LnBhcmFtKCB0aGlzLnNlcmlhbGl6ZUFycmF5KCkgKTtcblx0fSxcblx0c2VyaWFsaXplQXJyYXk6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLm1hcChmdW5jdGlvbigpIHtcblx0XHRcdC8vIENhbiBhZGQgcHJvcEhvb2sgZm9yIFwiZWxlbWVudHNcIiB0byBmaWx0ZXIgb3IgYWRkIGZvcm0gZWxlbWVudHNcblx0XHRcdHZhciBlbGVtZW50cyA9IGpRdWVyeS5wcm9wKCB0aGlzLCBcImVsZW1lbnRzXCIgKTtcblx0XHRcdHJldHVybiBlbGVtZW50cyA/IGpRdWVyeS5tYWtlQXJyYXkoIGVsZW1lbnRzICkgOiB0aGlzO1xuXHRcdH0pXG5cdFx0LmZpbHRlcihmdW5jdGlvbigpIHtcblx0XHRcdHZhciB0eXBlID0gdGhpcy50eXBlO1xuXG5cdFx0XHQvLyBVc2UgLmlzKCBcIjpkaXNhYmxlZFwiICkgc28gdGhhdCBmaWVsZHNldFtkaXNhYmxlZF0gd29ya3Ncblx0XHRcdHJldHVybiB0aGlzLm5hbWUgJiYgIWpRdWVyeSggdGhpcyApLmlzKCBcIjpkaXNhYmxlZFwiICkgJiZcblx0XHRcdFx0cnN1Ym1pdHRhYmxlLnRlc3QoIHRoaXMubm9kZU5hbWUgKSAmJiAhcnN1Ym1pdHRlclR5cGVzLnRlc3QoIHR5cGUgKSAmJlxuXHRcdFx0XHQoIHRoaXMuY2hlY2tlZCB8fCAhcmNoZWNrYWJsZVR5cGUudGVzdCggdHlwZSApICk7XG5cdFx0fSlcblx0XHQubWFwKGZ1bmN0aW9uKCBpLCBlbGVtICkge1xuXHRcdFx0dmFyIHZhbCA9IGpRdWVyeSggdGhpcyApLnZhbCgpO1xuXG5cdFx0XHRyZXR1cm4gdmFsID09IG51bGwgP1xuXHRcdFx0XHRudWxsIDpcblx0XHRcdFx0alF1ZXJ5LmlzQXJyYXkoIHZhbCApID9cblx0XHRcdFx0XHRqUXVlcnkubWFwKCB2YWwsIGZ1bmN0aW9uKCB2YWwgKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4geyBuYW1lOiBlbGVtLm5hbWUsIHZhbHVlOiB2YWwucmVwbGFjZSggckNSTEYsIFwiXFxyXFxuXCIgKSB9O1xuXHRcdFx0XHRcdH0pIDpcblx0XHRcdFx0XHR7IG5hbWU6IGVsZW0ubmFtZSwgdmFsdWU6IHZhbC5yZXBsYWNlKCByQ1JMRiwgXCJcXHJcXG5cIiApIH07XG5cdFx0fSkuZ2V0KCk7XG5cdH1cbn0pO1xuXG5cbmpRdWVyeS5hamF4U2V0dGluZ3MueGhyID0gZnVuY3Rpb24oKSB7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuXHR9IGNhdGNoKCBlICkge31cbn07XG5cbnZhciB4aHJJZCA9IDAsXG5cdHhockNhbGxiYWNrcyA9IHt9LFxuXHR4aHJTdWNjZXNzU3RhdHVzID0ge1xuXHRcdC8vIGZpbGUgcHJvdG9jb2wgYWx3YXlzIHlpZWxkcyBzdGF0dXMgY29kZSAwLCBhc3N1bWUgMjAwXG5cdFx0MDogMjAwLFxuXHRcdC8vIFN1cHBvcnQ6IElFOVxuXHRcdC8vICMxNDUwOiBzb21ldGltZXMgSUUgcmV0dXJucyAxMjIzIHdoZW4gaXQgc2hvdWxkIGJlIDIwNFxuXHRcdDEyMjM6IDIwNFxuXHR9LFxuXHR4aHJTdXBwb3J0ZWQgPSBqUXVlcnkuYWpheFNldHRpbmdzLnhocigpO1xuXG4vLyBTdXBwb3J0OiBJRTlcbi8vIE9wZW4gcmVxdWVzdHMgbXVzdCBiZSBtYW51YWxseSBhYm9ydGVkIG9uIHVubG9hZCAoIzUyODApXG4vLyBTZWUgaHR0cHM6Ly9zdXBwb3J0Lm1pY3Jvc29mdC5jb20va2IvMjg1Njc0NiBmb3IgbW9yZSBpbmZvXG5pZiAoIHdpbmRvdy5hdHRhY2hFdmVudCApIHtcblx0d2luZG93LmF0dGFjaEV2ZW50KCBcIm9udW5sb2FkXCIsIGZ1bmN0aW9uKCkge1xuXHRcdGZvciAoIHZhciBrZXkgaW4geGhyQ2FsbGJhY2tzICkge1xuXHRcdFx0eGhyQ2FsbGJhY2tzWyBrZXkgXSgpO1xuXHRcdH1cblx0fSk7XG59XG5cbnN1cHBvcnQuY29ycyA9ICEheGhyU3VwcG9ydGVkICYmICggXCJ3aXRoQ3JlZGVudGlhbHNcIiBpbiB4aHJTdXBwb3J0ZWQgKTtcbnN1cHBvcnQuYWpheCA9IHhoclN1cHBvcnRlZCA9ICEheGhyU3VwcG9ydGVkO1xuXG5qUXVlcnkuYWpheFRyYW5zcG9ydChmdW5jdGlvbiggb3B0aW9ucyApIHtcblx0dmFyIGNhbGxiYWNrO1xuXG5cdC8vIENyb3NzIGRvbWFpbiBvbmx5IGFsbG93ZWQgaWYgc3VwcG9ydGVkIHRocm91Z2ggWE1MSHR0cFJlcXVlc3Rcblx0aWYgKCBzdXBwb3J0LmNvcnMgfHwgeGhyU3VwcG9ydGVkICYmICFvcHRpb25zLmNyb3NzRG9tYWluICkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRzZW5kOiBmdW5jdGlvbiggaGVhZGVycywgY29tcGxldGUgKSB7XG5cdFx0XHRcdHZhciBpLFxuXHRcdFx0XHRcdHhociA9IG9wdGlvbnMueGhyKCksXG5cdFx0XHRcdFx0aWQgPSArK3hocklkO1xuXG5cdFx0XHRcdHhoci5vcGVuKCBvcHRpb25zLnR5cGUsIG9wdGlvbnMudXJsLCBvcHRpb25zLmFzeW5jLCBvcHRpb25zLnVzZXJuYW1lLCBvcHRpb25zLnBhc3N3b3JkICk7XG5cblx0XHRcdFx0Ly8gQXBwbHkgY3VzdG9tIGZpZWxkcyBpZiBwcm92aWRlZFxuXHRcdFx0XHRpZiAoIG9wdGlvbnMueGhyRmllbGRzICkge1xuXHRcdFx0XHRcdGZvciAoIGkgaW4gb3B0aW9ucy54aHJGaWVsZHMgKSB7XG5cdFx0XHRcdFx0XHR4aHJbIGkgXSA9IG9wdGlvbnMueGhyRmllbGRzWyBpIF07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gT3ZlcnJpZGUgbWltZSB0eXBlIGlmIG5lZWRlZFxuXHRcdFx0XHRpZiAoIG9wdGlvbnMubWltZVR5cGUgJiYgeGhyLm92ZXJyaWRlTWltZVR5cGUgKSB7XG5cdFx0XHRcdFx0eGhyLm92ZXJyaWRlTWltZVR5cGUoIG9wdGlvbnMubWltZVR5cGUgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFgtUmVxdWVzdGVkLVdpdGggaGVhZGVyXG5cdFx0XHRcdC8vIEZvciBjcm9zcy1kb21haW4gcmVxdWVzdHMsIHNlZWluZyBhcyBjb25kaXRpb25zIGZvciBhIHByZWZsaWdodCBhcmVcblx0XHRcdFx0Ly8gYWtpbiB0byBhIGppZ3NhdyBwdXp6bGUsIHdlIHNpbXBseSBuZXZlciBzZXQgaXQgdG8gYmUgc3VyZS5cblx0XHRcdFx0Ly8gKGl0IGNhbiBhbHdheXMgYmUgc2V0IG9uIGEgcGVyLXJlcXVlc3QgYmFzaXMgb3IgZXZlbiB1c2luZyBhamF4U2V0dXApXG5cdFx0XHRcdC8vIEZvciBzYW1lLWRvbWFpbiByZXF1ZXN0cywgd29uJ3QgY2hhbmdlIGhlYWRlciBpZiBhbHJlYWR5IHByb3ZpZGVkLlxuXHRcdFx0XHRpZiAoICFvcHRpb25zLmNyb3NzRG9tYWluICYmICFoZWFkZXJzW1wiWC1SZXF1ZXN0ZWQtV2l0aFwiXSApIHtcblx0XHRcdFx0XHRoZWFkZXJzW1wiWC1SZXF1ZXN0ZWQtV2l0aFwiXSA9IFwiWE1MSHR0cFJlcXVlc3RcIjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFNldCBoZWFkZXJzXG5cdFx0XHRcdGZvciAoIGkgaW4gaGVhZGVycyApIHtcblx0XHRcdFx0XHR4aHIuc2V0UmVxdWVzdEhlYWRlciggaSwgaGVhZGVyc1sgaSBdICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBDYWxsYmFja1xuXHRcdFx0XHRjYWxsYmFjayA9IGZ1bmN0aW9uKCB0eXBlICkge1xuXHRcdFx0XHRcdHJldHVybiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdGlmICggY2FsbGJhY2sgKSB7XG5cdFx0XHRcdFx0XHRcdGRlbGV0ZSB4aHJDYWxsYmFja3NbIGlkIF07XG5cdFx0XHRcdFx0XHRcdGNhbGxiYWNrID0geGhyLm9ubG9hZCA9IHhoci5vbmVycm9yID0gbnVsbDtcblxuXHRcdFx0XHRcdFx0XHRpZiAoIHR5cGUgPT09IFwiYWJvcnRcIiApIHtcblx0XHRcdFx0XHRcdFx0XHR4aHIuYWJvcnQoKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICggdHlwZSA9PT0gXCJlcnJvclwiICkge1xuXHRcdFx0XHRcdFx0XHRcdGNvbXBsZXRlKFxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gZmlsZTogcHJvdG9jb2wgYWx3YXlzIHlpZWxkcyBzdGF0dXMgMDsgc2VlICM4NjA1LCAjMTQyMDdcblx0XHRcdFx0XHRcdFx0XHRcdHhoci5zdGF0dXMsXG5cdFx0XHRcdFx0XHRcdFx0XHR4aHIuc3RhdHVzVGV4dFxuXHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0Y29tcGxldGUoXG5cdFx0XHRcdFx0XHRcdFx0XHR4aHJTdWNjZXNzU3RhdHVzWyB4aHIuc3RhdHVzIF0gfHwgeGhyLnN0YXR1cyxcblx0XHRcdFx0XHRcdFx0XHRcdHhoci5zdGF0dXNUZXh0LFxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUU5XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBBY2Nlc3NpbmcgYmluYXJ5LWRhdGEgcmVzcG9uc2VUZXh0IHRocm93cyBhbiBleGNlcHRpb25cblx0XHRcdFx0XHRcdFx0XHRcdC8vICgjMTE0MjYpXG5cdFx0XHRcdFx0XHRcdFx0XHR0eXBlb2YgeGhyLnJlc3BvbnNlVGV4dCA9PT0gXCJzdHJpbmdcIiA/IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGV4dDogeGhyLnJlc3BvbnNlVGV4dFxuXHRcdFx0XHRcdFx0XHRcdFx0fSA6IHVuZGVmaW5lZCxcblx0XHRcdFx0XHRcdFx0XHRcdHhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKVxuXHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9O1xuXG5cdFx0XHRcdC8vIExpc3RlbiB0byBldmVudHNcblx0XHRcdFx0eGhyLm9ubG9hZCA9IGNhbGxiYWNrKCk7XG5cdFx0XHRcdHhoci5vbmVycm9yID0gY2FsbGJhY2soXCJlcnJvclwiKTtcblxuXHRcdFx0XHQvLyBDcmVhdGUgdGhlIGFib3J0IGNhbGxiYWNrXG5cdFx0XHRcdGNhbGxiYWNrID0geGhyQ2FsbGJhY2tzWyBpZCBdID0gY2FsbGJhY2soXCJhYm9ydFwiKTtcblxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdC8vIERvIHNlbmQgdGhlIHJlcXVlc3QgKHRoaXMgbWF5IHJhaXNlIGFuIGV4Y2VwdGlvbilcblx0XHRcdFx0XHR4aHIuc2VuZCggb3B0aW9ucy5oYXNDb250ZW50ICYmIG9wdGlvbnMuZGF0YSB8fCBudWxsICk7XG5cdFx0XHRcdH0gY2F0Y2ggKCBlICkge1xuXHRcdFx0XHRcdC8vICMxNDY4MzogT25seSByZXRocm93IGlmIHRoaXMgaGFzbid0IGJlZW4gbm90aWZpZWQgYXMgYW4gZXJyb3IgeWV0XG5cdFx0XHRcdFx0aWYgKCBjYWxsYmFjayApIHtcblx0XHRcdFx0XHRcdHRocm93IGU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXG5cdFx0XHRhYm9ydDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggY2FsbGJhY2sgKSB7XG5cdFx0XHRcdFx0Y2FsbGJhY2soKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cdH1cbn0pO1xuXG5cblxuXG4vLyBJbnN0YWxsIHNjcmlwdCBkYXRhVHlwZVxualF1ZXJ5LmFqYXhTZXR1cCh7XG5cdGFjY2VwdHM6IHtcblx0XHRzY3JpcHQ6IFwidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9lY21hc2NyaXB0LCBhcHBsaWNhdGlvbi94LWVjbWFzY3JpcHRcIlxuXHR9LFxuXHRjb250ZW50czoge1xuXHRcdHNjcmlwdDogLyg/OmphdmF8ZWNtYSlzY3JpcHQvXG5cdH0sXG5cdGNvbnZlcnRlcnM6IHtcblx0XHRcInRleHQgc2NyaXB0XCI6IGZ1bmN0aW9uKCB0ZXh0ICkge1xuXHRcdFx0alF1ZXJ5Lmdsb2JhbEV2YWwoIHRleHQgKTtcblx0XHRcdHJldHVybiB0ZXh0O1xuXHRcdH1cblx0fVxufSk7XG5cbi8vIEhhbmRsZSBjYWNoZSdzIHNwZWNpYWwgY2FzZSBhbmQgY3Jvc3NEb21haW5cbmpRdWVyeS5hamF4UHJlZmlsdGVyKCBcInNjcmlwdFwiLCBmdW5jdGlvbiggcyApIHtcblx0aWYgKCBzLmNhY2hlID09PSB1bmRlZmluZWQgKSB7XG5cdFx0cy5jYWNoZSA9IGZhbHNlO1xuXHR9XG5cdGlmICggcy5jcm9zc0RvbWFpbiApIHtcblx0XHRzLnR5cGUgPSBcIkdFVFwiO1xuXHR9XG59KTtcblxuLy8gQmluZCBzY3JpcHQgdGFnIGhhY2sgdHJhbnNwb3J0XG5qUXVlcnkuYWpheFRyYW5zcG9ydCggXCJzY3JpcHRcIiwgZnVuY3Rpb24oIHMgKSB7XG5cdC8vIFRoaXMgdHJhbnNwb3J0IG9ubHkgZGVhbHMgd2l0aCBjcm9zcyBkb21haW4gcmVxdWVzdHNcblx0aWYgKCBzLmNyb3NzRG9tYWluICkge1xuXHRcdHZhciBzY3JpcHQsIGNhbGxiYWNrO1xuXHRcdHJldHVybiB7XG5cdFx0XHRzZW5kOiBmdW5jdGlvbiggXywgY29tcGxldGUgKSB7XG5cdFx0XHRcdHNjcmlwdCA9IGpRdWVyeShcIjxzY3JpcHQ+XCIpLnByb3Aoe1xuXHRcdFx0XHRcdGFzeW5jOiB0cnVlLFxuXHRcdFx0XHRcdGNoYXJzZXQ6IHMuc2NyaXB0Q2hhcnNldCxcblx0XHRcdFx0XHRzcmM6IHMudXJsXG5cdFx0XHRcdH0pLm9uKFxuXHRcdFx0XHRcdFwibG9hZCBlcnJvclwiLFxuXHRcdFx0XHRcdGNhbGxiYWNrID0gZnVuY3Rpb24oIGV2dCApIHtcblx0XHRcdFx0XHRcdHNjcmlwdC5yZW1vdmUoKTtcblx0XHRcdFx0XHRcdGNhbGxiYWNrID0gbnVsbDtcblx0XHRcdFx0XHRcdGlmICggZXZ0ICkge1xuXHRcdFx0XHRcdFx0XHRjb21wbGV0ZSggZXZ0LnR5cGUgPT09IFwiZXJyb3JcIiA/IDQwNCA6IDIwMCwgZXZ0LnR5cGUgKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdCk7XG5cdFx0XHRcdGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoIHNjcmlwdFsgMCBdICk7XG5cdFx0XHR9LFxuXHRcdFx0YWJvcnQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoIGNhbGxiYWNrICkge1xuXHRcdFx0XHRcdGNhbGxiYWNrKCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXHR9XG59KTtcblxuXG5cblxudmFyIG9sZENhbGxiYWNrcyA9IFtdLFxuXHRyanNvbnAgPSAvKD0pXFw/KD89JnwkKXxcXD9cXD8vO1xuXG4vLyBEZWZhdWx0IGpzb25wIHNldHRpbmdzXG5qUXVlcnkuYWpheFNldHVwKHtcblx0anNvbnA6IFwiY2FsbGJhY2tcIixcblx0anNvbnBDYWxsYmFjazogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGNhbGxiYWNrID0gb2xkQ2FsbGJhY2tzLnBvcCgpIHx8ICggalF1ZXJ5LmV4cGFuZG8gKyBcIl9cIiArICggbm9uY2UrKyApICk7XG5cdFx0dGhpc1sgY2FsbGJhY2sgXSA9IHRydWU7XG5cdFx0cmV0dXJuIGNhbGxiYWNrO1xuXHR9XG59KTtcblxuLy8gRGV0ZWN0LCBub3JtYWxpemUgb3B0aW9ucyBhbmQgaW5zdGFsbCBjYWxsYmFja3MgZm9yIGpzb25wIHJlcXVlc3RzXG5qUXVlcnkuYWpheFByZWZpbHRlciggXCJqc29uIGpzb25wXCIsIGZ1bmN0aW9uKCBzLCBvcmlnaW5hbFNldHRpbmdzLCBqcVhIUiApIHtcblxuXHR2YXIgY2FsbGJhY2tOYW1lLCBvdmVyd3JpdHRlbiwgcmVzcG9uc2VDb250YWluZXIsXG5cdFx0anNvblByb3AgPSBzLmpzb25wICE9PSBmYWxzZSAmJiAoIHJqc29ucC50ZXN0KCBzLnVybCApID9cblx0XHRcdFwidXJsXCIgOlxuXHRcdFx0dHlwZW9mIHMuZGF0YSA9PT0gXCJzdHJpbmdcIiAmJiAhKCBzLmNvbnRlbnRUeXBlIHx8IFwiXCIgKS5pbmRleE9mKFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIpICYmIHJqc29ucC50ZXN0KCBzLmRhdGEgKSAmJiBcImRhdGFcIlxuXHRcdCk7XG5cblx0Ly8gSGFuZGxlIGlmZiB0aGUgZXhwZWN0ZWQgZGF0YSB0eXBlIGlzIFwianNvbnBcIiBvciB3ZSBoYXZlIGEgcGFyYW1ldGVyIHRvIHNldFxuXHRpZiAoIGpzb25Qcm9wIHx8IHMuZGF0YVR5cGVzWyAwIF0gPT09IFwianNvbnBcIiApIHtcblxuXHRcdC8vIEdldCBjYWxsYmFjayBuYW1lLCByZW1lbWJlcmluZyBwcmVleGlzdGluZyB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggaXRcblx0XHRjYWxsYmFja05hbWUgPSBzLmpzb25wQ2FsbGJhY2sgPSBqUXVlcnkuaXNGdW5jdGlvbiggcy5qc29ucENhbGxiYWNrICkgP1xuXHRcdFx0cy5qc29ucENhbGxiYWNrKCkgOlxuXHRcdFx0cy5qc29ucENhbGxiYWNrO1xuXG5cdFx0Ly8gSW5zZXJ0IGNhbGxiYWNrIGludG8gdXJsIG9yIGZvcm0gZGF0YVxuXHRcdGlmICgganNvblByb3AgKSB7XG5cdFx0XHRzWyBqc29uUHJvcCBdID0gc1sganNvblByb3AgXS5yZXBsYWNlKCByanNvbnAsIFwiJDFcIiArIGNhbGxiYWNrTmFtZSApO1xuXHRcdH0gZWxzZSBpZiAoIHMuanNvbnAgIT09IGZhbHNlICkge1xuXHRcdFx0cy51cmwgKz0gKCBycXVlcnkudGVzdCggcy51cmwgKSA/IFwiJlwiIDogXCI/XCIgKSArIHMuanNvbnAgKyBcIj1cIiArIGNhbGxiYWNrTmFtZTtcblx0XHR9XG5cblx0XHQvLyBVc2UgZGF0YSBjb252ZXJ0ZXIgdG8gcmV0cmlldmUganNvbiBhZnRlciBzY3JpcHQgZXhlY3V0aW9uXG5cdFx0cy5jb252ZXJ0ZXJzW1wic2NyaXB0IGpzb25cIl0gPSBmdW5jdGlvbigpIHtcblx0XHRcdGlmICggIXJlc3BvbnNlQ29udGFpbmVyICkge1xuXHRcdFx0XHRqUXVlcnkuZXJyb3IoIGNhbGxiYWNrTmFtZSArIFwiIHdhcyBub3QgY2FsbGVkXCIgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZXNwb25zZUNvbnRhaW5lclsgMCBdO1xuXHRcdH07XG5cblx0XHQvLyBmb3JjZSBqc29uIGRhdGFUeXBlXG5cdFx0cy5kYXRhVHlwZXNbIDAgXSA9IFwianNvblwiO1xuXG5cdFx0Ly8gSW5zdGFsbCBjYWxsYmFja1xuXHRcdG92ZXJ3cml0dGVuID0gd2luZG93WyBjYWxsYmFja05hbWUgXTtcblx0XHR3aW5kb3dbIGNhbGxiYWNrTmFtZSBdID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRyZXNwb25zZUNvbnRhaW5lciA9IGFyZ3VtZW50cztcblx0XHR9O1xuXG5cdFx0Ly8gQ2xlYW4tdXAgZnVuY3Rpb24gKGZpcmVzIGFmdGVyIGNvbnZlcnRlcnMpXG5cdFx0anFYSFIuYWx3YXlzKGZ1bmN0aW9uKCkge1xuXHRcdFx0Ly8gUmVzdG9yZSBwcmVleGlzdGluZyB2YWx1ZVxuXHRcdFx0d2luZG93WyBjYWxsYmFja05hbWUgXSA9IG92ZXJ3cml0dGVuO1xuXG5cdFx0XHQvLyBTYXZlIGJhY2sgYXMgZnJlZVxuXHRcdFx0aWYgKCBzWyBjYWxsYmFja05hbWUgXSApIHtcblx0XHRcdFx0Ly8gbWFrZSBzdXJlIHRoYXQgcmUtdXNpbmcgdGhlIG9wdGlvbnMgZG9lc24ndCBzY3JldyB0aGluZ3MgYXJvdW5kXG5cdFx0XHRcdHMuanNvbnBDYWxsYmFjayA9IG9yaWdpbmFsU2V0dGluZ3MuanNvbnBDYWxsYmFjaztcblxuXHRcdFx0XHQvLyBzYXZlIHRoZSBjYWxsYmFjayBuYW1lIGZvciBmdXR1cmUgdXNlXG5cdFx0XHRcdG9sZENhbGxiYWNrcy5wdXNoKCBjYWxsYmFja05hbWUgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQ2FsbCBpZiBpdCB3YXMgYSBmdW5jdGlvbiBhbmQgd2UgaGF2ZSBhIHJlc3BvbnNlXG5cdFx0XHRpZiAoIHJlc3BvbnNlQ29udGFpbmVyICYmIGpRdWVyeS5pc0Z1bmN0aW9uKCBvdmVyd3JpdHRlbiApICkge1xuXHRcdFx0XHRvdmVyd3JpdHRlbiggcmVzcG9uc2VDb250YWluZXJbIDAgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXNwb25zZUNvbnRhaW5lciA9IG92ZXJ3cml0dGVuID0gdW5kZWZpbmVkO1xuXHRcdH0pO1xuXG5cdFx0Ly8gRGVsZWdhdGUgdG8gc2NyaXB0XG5cdFx0cmV0dXJuIFwic2NyaXB0XCI7XG5cdH1cbn0pO1xuXG5cblxuXG4vLyBkYXRhOiBzdHJpbmcgb2YgaHRtbFxuLy8gY29udGV4dCAob3B0aW9uYWwpOiBJZiBzcGVjaWZpZWQsIHRoZSBmcmFnbWVudCB3aWxsIGJlIGNyZWF0ZWQgaW4gdGhpcyBjb250ZXh0LCBkZWZhdWx0cyB0byBkb2N1bWVudFxuLy8ga2VlcFNjcmlwdHMgKG9wdGlvbmFsKTogSWYgdHJ1ZSwgd2lsbCBpbmNsdWRlIHNjcmlwdHMgcGFzc2VkIGluIHRoZSBodG1sIHN0cmluZ1xualF1ZXJ5LnBhcnNlSFRNTCA9IGZ1bmN0aW9uKCBkYXRhLCBjb250ZXh0LCBrZWVwU2NyaXB0cyApIHtcblx0aWYgKCAhZGF0YSB8fCB0eXBlb2YgZGF0YSAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXHRpZiAoIHR5cGVvZiBjb250ZXh0ID09PSBcImJvb2xlYW5cIiApIHtcblx0XHRrZWVwU2NyaXB0cyA9IGNvbnRleHQ7XG5cdFx0Y29udGV4dCA9IGZhbHNlO1xuXHR9XG5cdGNvbnRleHQgPSBjb250ZXh0IHx8IGRvY3VtZW50O1xuXG5cdHZhciBwYXJzZWQgPSByc2luZ2xlVGFnLmV4ZWMoIGRhdGEgKSxcblx0XHRzY3JpcHRzID0gIWtlZXBTY3JpcHRzICYmIFtdO1xuXG5cdC8vIFNpbmdsZSB0YWdcblx0aWYgKCBwYXJzZWQgKSB7XG5cdFx0cmV0dXJuIFsgY29udGV4dC5jcmVhdGVFbGVtZW50KCBwYXJzZWRbMV0gKSBdO1xuXHR9XG5cblx0cGFyc2VkID0galF1ZXJ5LmJ1aWxkRnJhZ21lbnQoIFsgZGF0YSBdLCBjb250ZXh0LCBzY3JpcHRzICk7XG5cblx0aWYgKCBzY3JpcHRzICYmIHNjcmlwdHMubGVuZ3RoICkge1xuXHRcdGpRdWVyeSggc2NyaXB0cyApLnJlbW92ZSgpO1xuXHR9XG5cblx0cmV0dXJuIGpRdWVyeS5tZXJnZSggW10sIHBhcnNlZC5jaGlsZE5vZGVzICk7XG59O1xuXG5cbi8vIEtlZXAgYSBjb3B5IG9mIHRoZSBvbGQgbG9hZCBtZXRob2RcbnZhciBfbG9hZCA9IGpRdWVyeS5mbi5sb2FkO1xuXG4vKipcbiAqIExvYWQgYSB1cmwgaW50byBhIHBhZ2VcbiAqL1xualF1ZXJ5LmZuLmxvYWQgPSBmdW5jdGlvbiggdXJsLCBwYXJhbXMsIGNhbGxiYWNrICkge1xuXHRpZiAoIHR5cGVvZiB1cmwgIT09IFwic3RyaW5nXCIgJiYgX2xvYWQgKSB7XG5cdFx0cmV0dXJuIF9sb2FkLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTtcblx0fVxuXG5cdHZhciBzZWxlY3RvciwgdHlwZSwgcmVzcG9uc2UsXG5cdFx0c2VsZiA9IHRoaXMsXG5cdFx0b2ZmID0gdXJsLmluZGV4T2YoXCIgXCIpO1xuXG5cdGlmICggb2ZmID49IDAgKSB7XG5cdFx0c2VsZWN0b3IgPSBqUXVlcnkudHJpbSggdXJsLnNsaWNlKCBvZmYgKSApO1xuXHRcdHVybCA9IHVybC5zbGljZSggMCwgb2ZmICk7XG5cdH1cblxuXHQvLyBJZiBpdCdzIGEgZnVuY3Rpb25cblx0aWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggcGFyYW1zICkgKSB7XG5cblx0XHQvLyBXZSBhc3N1bWUgdGhhdCBpdCdzIHRoZSBjYWxsYmFja1xuXHRcdGNhbGxiYWNrID0gcGFyYW1zO1xuXHRcdHBhcmFtcyA9IHVuZGVmaW5lZDtcblxuXHQvLyBPdGhlcndpc2UsIGJ1aWxkIGEgcGFyYW0gc3RyaW5nXG5cdH0gZWxzZSBpZiAoIHBhcmFtcyAmJiB0eXBlb2YgcGFyYW1zID09PSBcIm9iamVjdFwiICkge1xuXHRcdHR5cGUgPSBcIlBPU1RcIjtcblx0fVxuXG5cdC8vIElmIHdlIGhhdmUgZWxlbWVudHMgdG8gbW9kaWZ5LCBtYWtlIHRoZSByZXF1ZXN0XG5cdGlmICggc2VsZi5sZW5ndGggPiAwICkge1xuXHRcdGpRdWVyeS5hamF4KHtcblx0XHRcdHVybDogdXJsLFxuXG5cdFx0XHQvLyBpZiBcInR5cGVcIiB2YXJpYWJsZSBpcyB1bmRlZmluZWQsIHRoZW4gXCJHRVRcIiBtZXRob2Qgd2lsbCBiZSB1c2VkXG5cdFx0XHR0eXBlOiB0eXBlLFxuXHRcdFx0ZGF0YVR5cGU6IFwiaHRtbFwiLFxuXHRcdFx0ZGF0YTogcGFyYW1zXG5cdFx0fSkuZG9uZShmdW5jdGlvbiggcmVzcG9uc2VUZXh0ICkge1xuXG5cdFx0XHQvLyBTYXZlIHJlc3BvbnNlIGZvciB1c2UgaW4gY29tcGxldGUgY2FsbGJhY2tcblx0XHRcdHJlc3BvbnNlID0gYXJndW1lbnRzO1xuXG5cdFx0XHRzZWxmLmh0bWwoIHNlbGVjdG9yID9cblxuXHRcdFx0XHQvLyBJZiBhIHNlbGVjdG9yIHdhcyBzcGVjaWZpZWQsIGxvY2F0ZSB0aGUgcmlnaHQgZWxlbWVudHMgaW4gYSBkdW1teSBkaXZcblx0XHRcdFx0Ly8gRXhjbHVkZSBzY3JpcHRzIHRvIGF2b2lkIElFICdQZXJtaXNzaW9uIERlbmllZCcgZXJyb3JzXG5cdFx0XHRcdGpRdWVyeShcIjxkaXY+XCIpLmFwcGVuZCggalF1ZXJ5LnBhcnNlSFRNTCggcmVzcG9uc2VUZXh0ICkgKS5maW5kKCBzZWxlY3RvciApIDpcblxuXHRcdFx0XHQvLyBPdGhlcndpc2UgdXNlIHRoZSBmdWxsIHJlc3VsdFxuXHRcdFx0XHRyZXNwb25zZVRleHQgKTtcblxuXHRcdH0pLmNvbXBsZXRlKCBjYWxsYmFjayAmJiBmdW5jdGlvbigganFYSFIsIHN0YXR1cyApIHtcblx0XHRcdHNlbGYuZWFjaCggY2FsbGJhY2ssIHJlc3BvbnNlIHx8IFsganFYSFIucmVzcG9uc2VUZXh0LCBzdGF0dXMsIGpxWEhSIF0gKTtcblx0XHR9KTtcblx0fVxuXG5cdHJldHVybiB0aGlzO1xufTtcblxuXG5cblxuLy8gQXR0YWNoIGEgYnVuY2ggb2YgZnVuY3Rpb25zIGZvciBoYW5kbGluZyBjb21tb24gQUpBWCBldmVudHNcbmpRdWVyeS5lYWNoKCBbIFwiYWpheFN0YXJ0XCIsIFwiYWpheFN0b3BcIiwgXCJhamF4Q29tcGxldGVcIiwgXCJhamF4RXJyb3JcIiwgXCJhamF4U3VjY2Vzc1wiLCBcImFqYXhTZW5kXCIgXSwgZnVuY3Rpb24oIGksIHR5cGUgKSB7XG5cdGpRdWVyeS5mblsgdHlwZSBdID0gZnVuY3Rpb24oIGZuICkge1xuXHRcdHJldHVybiB0aGlzLm9uKCB0eXBlLCBmbiApO1xuXHR9O1xufSk7XG5cblxuXG5cbmpRdWVyeS5leHByLmZpbHRlcnMuYW5pbWF0ZWQgPSBmdW5jdGlvbiggZWxlbSApIHtcblx0cmV0dXJuIGpRdWVyeS5ncmVwKGpRdWVyeS50aW1lcnMsIGZ1bmN0aW9uKCBmbiApIHtcblx0XHRyZXR1cm4gZWxlbSA9PT0gZm4uZWxlbTtcblx0fSkubGVuZ3RoO1xufTtcblxuXG5cblxudmFyIGRvY0VsZW0gPSB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG4vKipcbiAqIEdldHMgYSB3aW5kb3cgZnJvbSBhbiBlbGVtZW50XG4gKi9cbmZ1bmN0aW9uIGdldFdpbmRvdyggZWxlbSApIHtcblx0cmV0dXJuIGpRdWVyeS5pc1dpbmRvdyggZWxlbSApID8gZWxlbSA6IGVsZW0ubm9kZVR5cGUgPT09IDkgJiYgZWxlbS5kZWZhdWx0Vmlldztcbn1cblxualF1ZXJ5Lm9mZnNldCA9IHtcblx0c2V0T2Zmc2V0OiBmdW5jdGlvbiggZWxlbSwgb3B0aW9ucywgaSApIHtcblx0XHR2YXIgY3VyUG9zaXRpb24sIGN1ckxlZnQsIGN1ckNTU1RvcCwgY3VyVG9wLCBjdXJPZmZzZXQsIGN1ckNTU0xlZnQsIGNhbGN1bGF0ZVBvc2l0aW9uLFxuXHRcdFx0cG9zaXRpb24gPSBqUXVlcnkuY3NzKCBlbGVtLCBcInBvc2l0aW9uXCIgKSxcblx0XHRcdGN1ckVsZW0gPSBqUXVlcnkoIGVsZW0gKSxcblx0XHRcdHByb3BzID0ge307XG5cblx0XHQvLyBTZXQgcG9zaXRpb24gZmlyc3QsIGluLWNhc2UgdG9wL2xlZnQgYXJlIHNldCBldmVuIG9uIHN0YXRpYyBlbGVtXG5cdFx0aWYgKCBwb3NpdGlvbiA9PT0gXCJzdGF0aWNcIiApIHtcblx0XHRcdGVsZW0uc3R5bGUucG9zaXRpb24gPSBcInJlbGF0aXZlXCI7XG5cdFx0fVxuXG5cdFx0Y3VyT2Zmc2V0ID0gY3VyRWxlbS5vZmZzZXQoKTtcblx0XHRjdXJDU1NUb3AgPSBqUXVlcnkuY3NzKCBlbGVtLCBcInRvcFwiICk7XG5cdFx0Y3VyQ1NTTGVmdCA9IGpRdWVyeS5jc3MoIGVsZW0sIFwibGVmdFwiICk7XG5cdFx0Y2FsY3VsYXRlUG9zaXRpb24gPSAoIHBvc2l0aW9uID09PSBcImFic29sdXRlXCIgfHwgcG9zaXRpb24gPT09IFwiZml4ZWRcIiApICYmXG5cdFx0XHQoIGN1ckNTU1RvcCArIGN1ckNTU0xlZnQgKS5pbmRleE9mKFwiYXV0b1wiKSA+IC0xO1xuXG5cdFx0Ly8gTmVlZCB0byBiZSBhYmxlIHRvIGNhbGN1bGF0ZSBwb3NpdGlvbiBpZiBlaXRoZXJcblx0XHQvLyB0b3Agb3IgbGVmdCBpcyBhdXRvIGFuZCBwb3NpdGlvbiBpcyBlaXRoZXIgYWJzb2x1dGUgb3IgZml4ZWRcblx0XHRpZiAoIGNhbGN1bGF0ZVBvc2l0aW9uICkge1xuXHRcdFx0Y3VyUG9zaXRpb24gPSBjdXJFbGVtLnBvc2l0aW9uKCk7XG5cdFx0XHRjdXJUb3AgPSBjdXJQb3NpdGlvbi50b3A7XG5cdFx0XHRjdXJMZWZ0ID0gY3VyUG9zaXRpb24ubGVmdDtcblxuXHRcdH0gZWxzZSB7XG5cdFx0XHRjdXJUb3AgPSBwYXJzZUZsb2F0KCBjdXJDU1NUb3AgKSB8fCAwO1xuXHRcdFx0Y3VyTGVmdCA9IHBhcnNlRmxvYXQoIGN1ckNTU0xlZnQgKSB8fCAwO1xuXHRcdH1cblxuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIG9wdGlvbnMgKSApIHtcblx0XHRcdG9wdGlvbnMgPSBvcHRpb25zLmNhbGwoIGVsZW0sIGksIGN1ck9mZnNldCApO1xuXHRcdH1cblxuXHRcdGlmICggb3B0aW9ucy50b3AgIT0gbnVsbCApIHtcblx0XHRcdHByb3BzLnRvcCA9ICggb3B0aW9ucy50b3AgLSBjdXJPZmZzZXQudG9wICkgKyBjdXJUb3A7XG5cdFx0fVxuXHRcdGlmICggb3B0aW9ucy5sZWZ0ICE9IG51bGwgKSB7XG5cdFx0XHRwcm9wcy5sZWZ0ID0gKCBvcHRpb25zLmxlZnQgLSBjdXJPZmZzZXQubGVmdCApICsgY3VyTGVmdDtcblx0XHR9XG5cblx0XHRpZiAoIFwidXNpbmdcIiBpbiBvcHRpb25zICkge1xuXHRcdFx0b3B0aW9ucy51c2luZy5jYWxsKCBlbGVtLCBwcm9wcyApO1xuXG5cdFx0fSBlbHNlIHtcblx0XHRcdGN1ckVsZW0uY3NzKCBwcm9wcyApO1xuXHRcdH1cblx0fVxufTtcblxualF1ZXJ5LmZuLmV4dGVuZCh7XG5cdG9mZnNldDogZnVuY3Rpb24oIG9wdGlvbnMgKSB7XG5cdFx0aWYgKCBhcmd1bWVudHMubGVuZ3RoICkge1xuXHRcdFx0cmV0dXJuIG9wdGlvbnMgPT09IHVuZGVmaW5lZCA/XG5cdFx0XHRcdHRoaXMgOlxuXHRcdFx0XHR0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHRcdFx0alF1ZXJ5Lm9mZnNldC5zZXRPZmZzZXQoIHRoaXMsIG9wdGlvbnMsIGkgKTtcblx0XHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0dmFyIGRvY0VsZW0sIHdpbixcblx0XHRcdGVsZW0gPSB0aGlzWyAwIF0sXG5cdFx0XHRib3ggPSB7IHRvcDogMCwgbGVmdDogMCB9LFxuXHRcdFx0ZG9jID0gZWxlbSAmJiBlbGVtLm93bmVyRG9jdW1lbnQ7XG5cblx0XHRpZiAoICFkb2MgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0ZG9jRWxlbSA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7XG5cblx0XHQvLyBNYWtlIHN1cmUgaXQncyBub3QgYSBkaXNjb25uZWN0ZWQgRE9NIG5vZGVcblx0XHRpZiAoICFqUXVlcnkuY29udGFpbnMoIGRvY0VsZW0sIGVsZW0gKSApIHtcblx0XHRcdHJldHVybiBib3g7XG5cdFx0fVxuXG5cdFx0Ly8gU3VwcG9ydDogQmxhY2tCZXJyeSA1LCBpT1MgMyAob3JpZ2luYWwgaVBob25lKVxuXHRcdC8vIElmIHdlIGRvbid0IGhhdmUgZ0JDUiwganVzdCB1c2UgMCwwIHJhdGhlciB0aGFuIGVycm9yXG5cdFx0aWYgKCB0eXBlb2YgZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QgIT09IHN0cnVuZGVmaW5lZCApIHtcblx0XHRcdGJveCA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cdFx0fVxuXHRcdHdpbiA9IGdldFdpbmRvdyggZG9jICk7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHRvcDogYm94LnRvcCArIHdpbi5wYWdlWU9mZnNldCAtIGRvY0VsZW0uY2xpZW50VG9wLFxuXHRcdFx0bGVmdDogYm94LmxlZnQgKyB3aW4ucGFnZVhPZmZzZXQgLSBkb2NFbGVtLmNsaWVudExlZnRcblx0XHR9O1xuXHR9LFxuXG5cdHBvc2l0aW9uOiBmdW5jdGlvbigpIHtcblx0XHRpZiAoICF0aGlzWyAwIF0gKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dmFyIG9mZnNldFBhcmVudCwgb2Zmc2V0LFxuXHRcdFx0ZWxlbSA9IHRoaXNbIDAgXSxcblx0XHRcdHBhcmVudE9mZnNldCA9IHsgdG9wOiAwLCBsZWZ0OiAwIH07XG5cblx0XHQvLyBGaXhlZCBlbGVtZW50cyBhcmUgb2Zmc2V0IGZyb20gd2luZG93IChwYXJlbnRPZmZzZXQgPSB7dG9wOjAsIGxlZnQ6IDB9LCBiZWNhdXNlIGl0IGlzIGl0cyBvbmx5IG9mZnNldCBwYXJlbnRcblx0XHRpZiAoIGpRdWVyeS5jc3MoIGVsZW0sIFwicG9zaXRpb25cIiApID09PSBcImZpeGVkXCIgKSB7XG5cdFx0XHQvLyBBc3N1bWUgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGlzIHRoZXJlIHdoZW4gY29tcHV0ZWQgcG9zaXRpb24gaXMgZml4ZWRcblx0XHRcdG9mZnNldCA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gR2V0ICpyZWFsKiBvZmZzZXRQYXJlbnRcblx0XHRcdG9mZnNldFBhcmVudCA9IHRoaXMub2Zmc2V0UGFyZW50KCk7XG5cblx0XHRcdC8vIEdldCBjb3JyZWN0IG9mZnNldHNcblx0XHRcdG9mZnNldCA9IHRoaXMub2Zmc2V0KCk7XG5cdFx0XHRpZiAoICFqUXVlcnkubm9kZU5hbWUoIG9mZnNldFBhcmVudFsgMCBdLCBcImh0bWxcIiApICkge1xuXHRcdFx0XHRwYXJlbnRPZmZzZXQgPSBvZmZzZXRQYXJlbnQub2Zmc2V0KCk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEFkZCBvZmZzZXRQYXJlbnQgYm9yZGVyc1xuXHRcdFx0cGFyZW50T2Zmc2V0LnRvcCArPSBqUXVlcnkuY3NzKCBvZmZzZXRQYXJlbnRbIDAgXSwgXCJib3JkZXJUb3BXaWR0aFwiLCB0cnVlICk7XG5cdFx0XHRwYXJlbnRPZmZzZXQubGVmdCArPSBqUXVlcnkuY3NzKCBvZmZzZXRQYXJlbnRbIDAgXSwgXCJib3JkZXJMZWZ0V2lkdGhcIiwgdHJ1ZSApO1xuXHRcdH1cblxuXHRcdC8vIFN1YnRyYWN0IHBhcmVudCBvZmZzZXRzIGFuZCBlbGVtZW50IG1hcmdpbnNcblx0XHRyZXR1cm4ge1xuXHRcdFx0dG9wOiBvZmZzZXQudG9wIC0gcGFyZW50T2Zmc2V0LnRvcCAtIGpRdWVyeS5jc3MoIGVsZW0sIFwibWFyZ2luVG9wXCIsIHRydWUgKSxcblx0XHRcdGxlZnQ6IG9mZnNldC5sZWZ0IC0gcGFyZW50T2Zmc2V0LmxlZnQgLSBqUXVlcnkuY3NzKCBlbGVtLCBcIm1hcmdpbkxlZnRcIiwgdHJ1ZSApXG5cdFx0fTtcblx0fSxcblxuXHRvZmZzZXRQYXJlbnQ6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLm1hcChmdW5jdGlvbigpIHtcblx0XHRcdHZhciBvZmZzZXRQYXJlbnQgPSB0aGlzLm9mZnNldFBhcmVudCB8fCBkb2NFbGVtO1xuXG5cdFx0XHR3aGlsZSAoIG9mZnNldFBhcmVudCAmJiAoICFqUXVlcnkubm9kZU5hbWUoIG9mZnNldFBhcmVudCwgXCJodG1sXCIgKSAmJiBqUXVlcnkuY3NzKCBvZmZzZXRQYXJlbnQsIFwicG9zaXRpb25cIiApID09PSBcInN0YXRpY1wiICkgKSB7XG5cdFx0XHRcdG9mZnNldFBhcmVudCA9IG9mZnNldFBhcmVudC5vZmZzZXRQYXJlbnQ7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBvZmZzZXRQYXJlbnQgfHwgZG9jRWxlbTtcblx0XHR9KTtcblx0fVxufSk7XG5cbi8vIENyZWF0ZSBzY3JvbGxMZWZ0IGFuZCBzY3JvbGxUb3AgbWV0aG9kc1xualF1ZXJ5LmVhY2goIHsgc2Nyb2xsTGVmdDogXCJwYWdlWE9mZnNldFwiLCBzY3JvbGxUb3A6IFwicGFnZVlPZmZzZXRcIiB9LCBmdW5jdGlvbiggbWV0aG9kLCBwcm9wICkge1xuXHR2YXIgdG9wID0gXCJwYWdlWU9mZnNldFwiID09PSBwcm9wO1xuXG5cdGpRdWVyeS5mblsgbWV0aG9kIF0gPSBmdW5jdGlvbiggdmFsICkge1xuXHRcdHJldHVybiBhY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCBtZXRob2QsIHZhbCApIHtcblx0XHRcdHZhciB3aW4gPSBnZXRXaW5kb3coIGVsZW0gKTtcblxuXHRcdFx0aWYgKCB2YWwgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0cmV0dXJuIHdpbiA/IHdpblsgcHJvcCBdIDogZWxlbVsgbWV0aG9kIF07XG5cdFx0XHR9XG5cblx0XHRcdGlmICggd2luICkge1xuXHRcdFx0XHR3aW4uc2Nyb2xsVG8oXG5cdFx0XHRcdFx0IXRvcCA/IHZhbCA6IHdpbmRvdy5wYWdlWE9mZnNldCxcblx0XHRcdFx0XHR0b3AgPyB2YWwgOiB3aW5kb3cucGFnZVlPZmZzZXRcblx0XHRcdFx0KTtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZWxlbVsgbWV0aG9kIF0gPSB2YWw7XG5cdFx0XHR9XG5cdFx0fSwgbWV0aG9kLCB2YWwsIGFyZ3VtZW50cy5sZW5ndGgsIG51bGwgKTtcblx0fTtcbn0pO1xuXG4vLyBTdXBwb3J0OiBTYWZhcmk8NyssIENocm9tZTwzNytcbi8vIEFkZCB0aGUgdG9wL2xlZnQgY3NzSG9va3MgdXNpbmcgalF1ZXJ5LmZuLnBvc2l0aW9uXG4vLyBXZWJraXQgYnVnOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwODRcbi8vIEJsaW5rIGJ1ZzogaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTIyOTI4MFxuLy8gZ2V0Q29tcHV0ZWRTdHlsZSByZXR1cm5zIHBlcmNlbnQgd2hlbiBzcGVjaWZpZWQgZm9yIHRvcC9sZWZ0L2JvdHRvbS9yaWdodDtcbi8vIHJhdGhlciB0aGFuIG1ha2UgdGhlIGNzcyBtb2R1bGUgZGVwZW5kIG9uIHRoZSBvZmZzZXQgbW9kdWxlLCBqdXN0IGNoZWNrIGZvciBpdCBoZXJlXG5qUXVlcnkuZWFjaCggWyBcInRvcFwiLCBcImxlZnRcIiBdLCBmdW5jdGlvbiggaSwgcHJvcCApIHtcblx0alF1ZXJ5LmNzc0hvb2tzWyBwcm9wIF0gPSBhZGRHZXRIb29rSWYoIHN1cHBvcnQucGl4ZWxQb3NpdGlvbixcblx0XHRmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQgKSB7XG5cdFx0XHRpZiAoIGNvbXB1dGVkICkge1xuXHRcdFx0XHRjb21wdXRlZCA9IGN1ckNTUyggZWxlbSwgcHJvcCApO1xuXHRcdFx0XHQvLyBJZiBjdXJDU1MgcmV0dXJucyBwZXJjZW50YWdlLCBmYWxsYmFjayB0byBvZmZzZXRcblx0XHRcdFx0cmV0dXJuIHJudW1ub25weC50ZXN0KCBjb21wdXRlZCApID9cblx0XHRcdFx0XHRqUXVlcnkoIGVsZW0gKS5wb3NpdGlvbigpWyBwcm9wIF0gKyBcInB4XCIgOlxuXHRcdFx0XHRcdGNvbXB1dGVkO1xuXHRcdFx0fVxuXHRcdH1cblx0KTtcbn0pO1xuXG5cbi8vIENyZWF0ZSBpbm5lckhlaWdodCwgaW5uZXJXaWR0aCwgaGVpZ2h0LCB3aWR0aCwgb3V0ZXJIZWlnaHQgYW5kIG91dGVyV2lkdGggbWV0aG9kc1xualF1ZXJ5LmVhY2goIHsgSGVpZ2h0OiBcImhlaWdodFwiLCBXaWR0aDogXCJ3aWR0aFwiIH0sIGZ1bmN0aW9uKCBuYW1lLCB0eXBlICkge1xuXHRqUXVlcnkuZWFjaCggeyBwYWRkaW5nOiBcImlubmVyXCIgKyBuYW1lLCBjb250ZW50OiB0eXBlLCBcIlwiOiBcIm91dGVyXCIgKyBuYW1lIH0sIGZ1bmN0aW9uKCBkZWZhdWx0RXh0cmEsIGZ1bmNOYW1lICkge1xuXHRcdC8vIE1hcmdpbiBpcyBvbmx5IGZvciBvdXRlckhlaWdodCwgb3V0ZXJXaWR0aFxuXHRcdGpRdWVyeS5mblsgZnVuY05hbWUgXSA9IGZ1bmN0aW9uKCBtYXJnaW4sIHZhbHVlICkge1xuXHRcdFx0dmFyIGNoYWluYWJsZSA9IGFyZ3VtZW50cy5sZW5ndGggJiYgKCBkZWZhdWx0RXh0cmEgfHwgdHlwZW9mIG1hcmdpbiAhPT0gXCJib29sZWFuXCIgKSxcblx0XHRcdFx0ZXh0cmEgPSBkZWZhdWx0RXh0cmEgfHwgKCBtYXJnaW4gPT09IHRydWUgfHwgdmFsdWUgPT09IHRydWUgPyBcIm1hcmdpblwiIDogXCJib3JkZXJcIiApO1xuXG5cdFx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggZWxlbSwgdHlwZSwgdmFsdWUgKSB7XG5cdFx0XHRcdHZhciBkb2M7XG5cblx0XHRcdFx0aWYgKCBqUXVlcnkuaXNXaW5kb3coIGVsZW0gKSApIHtcblx0XHRcdFx0XHQvLyBBcyBvZiA1LzgvMjAxMiB0aGlzIHdpbGwgeWllbGQgaW5jb3JyZWN0IHJlc3VsdHMgZm9yIE1vYmlsZSBTYWZhcmksIGJ1dCB0aGVyZVxuXHRcdFx0XHRcdC8vIGlzbid0IGEgd2hvbGUgbG90IHdlIGNhbiBkby4gU2VlIHB1bGwgcmVxdWVzdCBhdCB0aGlzIFVSTCBmb3IgZGlzY3Vzc2lvbjpcblx0XHRcdFx0XHQvLyBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L2pxdWVyeS9wdWxsLzc2NFxuXHRcdFx0XHRcdHJldHVybiBlbGVtLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsgXCJjbGllbnRcIiArIG5hbWUgXTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEdldCBkb2N1bWVudCB3aWR0aCBvciBoZWlnaHRcblx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSA5ICkge1xuXHRcdFx0XHRcdGRvYyA9IGVsZW0uZG9jdW1lbnRFbGVtZW50O1xuXG5cdFx0XHRcdFx0Ly8gRWl0aGVyIHNjcm9sbFtXaWR0aC9IZWlnaHRdIG9yIG9mZnNldFtXaWR0aC9IZWlnaHRdIG9yIGNsaWVudFtXaWR0aC9IZWlnaHRdLFxuXHRcdFx0XHRcdC8vIHdoaWNoZXZlciBpcyBncmVhdGVzdFxuXHRcdFx0XHRcdHJldHVybiBNYXRoLm1heChcblx0XHRcdFx0XHRcdGVsZW0uYm9keVsgXCJzY3JvbGxcIiArIG5hbWUgXSwgZG9jWyBcInNjcm9sbFwiICsgbmFtZSBdLFxuXHRcdFx0XHRcdFx0ZWxlbS5ib2R5WyBcIm9mZnNldFwiICsgbmFtZSBdLCBkb2NbIFwib2Zmc2V0XCIgKyBuYW1lIF0sXG5cdFx0XHRcdFx0XHRkb2NbIFwiY2xpZW50XCIgKyBuYW1lIF1cblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgP1xuXHRcdFx0XHRcdC8vIEdldCB3aWR0aCBvciBoZWlnaHQgb24gdGhlIGVsZW1lbnQsIHJlcXVlc3RpbmcgYnV0IG5vdCBmb3JjaW5nIHBhcnNlRmxvYXRcblx0XHRcdFx0XHRqUXVlcnkuY3NzKCBlbGVtLCB0eXBlLCBleHRyYSApIDpcblxuXHRcdFx0XHRcdC8vIFNldCB3aWR0aCBvciBoZWlnaHQgb24gdGhlIGVsZW1lbnRcblx0XHRcdFx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIHR5cGUsIHZhbHVlLCBleHRyYSApO1xuXHRcdFx0fSwgdHlwZSwgY2hhaW5hYmxlID8gbWFyZ2luIDogdW5kZWZpbmVkLCBjaGFpbmFibGUsIG51bGwgKTtcblx0XHR9O1xuXHR9KTtcbn0pO1xuXG5cbi8vIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgY29udGFpbmVkIGluIHRoZSBtYXRjaGVkIGVsZW1lbnQgc2V0XG5qUXVlcnkuZm4uc2l6ZSA9IGZ1bmN0aW9uKCkge1xuXHRyZXR1cm4gdGhpcy5sZW5ndGg7XG59O1xuXG5qUXVlcnkuZm4uYW5kU2VsZiA9IGpRdWVyeS5mbi5hZGRCYWNrO1xuXG5cblxuXG4vLyBSZWdpc3RlciBhcyBhIG5hbWVkIEFNRCBtb2R1bGUsIHNpbmNlIGpRdWVyeSBjYW4gYmUgY29uY2F0ZW5hdGVkIHdpdGggb3RoZXJcbi8vIGZpbGVzIHRoYXQgbWF5IHVzZSBkZWZpbmUsIGJ1dCBub3QgdmlhIGEgcHJvcGVyIGNvbmNhdGVuYXRpb24gc2NyaXB0IHRoYXRcbi8vIHVuZGVyc3RhbmRzIGFub255bW91cyBBTUQgbW9kdWxlcy4gQSBuYW1lZCBBTUQgaXMgc2FmZXN0IGFuZCBtb3N0IHJvYnVzdFxuLy8gd2F5IHRvIHJlZ2lzdGVyLiBMb3dlcmNhc2UganF1ZXJ5IGlzIHVzZWQgYmVjYXVzZSBBTUQgbW9kdWxlIG5hbWVzIGFyZVxuLy8gZGVyaXZlZCBmcm9tIGZpbGUgbmFtZXMsIGFuZCBqUXVlcnkgaXMgbm9ybWFsbHkgZGVsaXZlcmVkIGluIGEgbG93ZXJjYXNlXG4vLyBmaWxlIG5hbWUuIERvIHRoaXMgYWZ0ZXIgY3JlYXRpbmcgdGhlIGdsb2JhbCBzbyB0aGF0IGlmIGFuIEFNRCBtb2R1bGUgd2FudHNcbi8vIHRvIGNhbGwgbm9Db25mbGljdCB0byBoaWRlIHRoaXMgdmVyc2lvbiBvZiBqUXVlcnksIGl0IHdpbGwgd29yay5cblxuLy8gTm90ZSB0aGF0IGZvciBtYXhpbXVtIHBvcnRhYmlsaXR5LCBsaWJyYXJpZXMgdGhhdCBhcmUgbm90IGpRdWVyeSBzaG91bGRcbi8vIGRlY2xhcmUgdGhlbXNlbHZlcyBhcyBhbm9ueW1vdXMgbW9kdWxlcywgYW5kIGF2b2lkIHNldHRpbmcgYSBnbG9iYWwgaWYgYW5cbi8vIEFNRCBsb2FkZXIgaXMgcHJlc2VudC4galF1ZXJ5IGlzIGEgc3BlY2lhbCBjYXNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlXG4vLyBodHRwczovL2dpdGh1Yi5jb20vanJidXJrZS9yZXF1aXJlanMvd2lraS9VcGRhdGluZy1leGlzdGluZy1saWJyYXJpZXMjd2lraS1hbm9uXG5cbmlmICggdHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQgKSB7XG5cdGRlZmluZSggXCJqcXVlcnlcIiwgW10sIGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBqUXVlcnk7XG5cdH0pO1xufVxuXG5cblxuXG52YXJcblx0Ly8gTWFwIG92ZXIgalF1ZXJ5IGluIGNhc2Ugb2Ygb3ZlcndyaXRlXG5cdF9qUXVlcnkgPSB3aW5kb3cualF1ZXJ5LFxuXG5cdC8vIE1hcCBvdmVyIHRoZSAkIGluIGNhc2Ugb2Ygb3ZlcndyaXRlXG5cdF8kID0gd2luZG93LiQ7XG5cbmpRdWVyeS5ub0NvbmZsaWN0ID0gZnVuY3Rpb24oIGRlZXAgKSB7XG5cdGlmICggd2luZG93LiQgPT09IGpRdWVyeSApIHtcblx0XHR3aW5kb3cuJCA9IF8kO1xuXHR9XG5cblx0aWYgKCBkZWVwICYmIHdpbmRvdy5qUXVlcnkgPT09IGpRdWVyeSApIHtcblx0XHR3aW5kb3cualF1ZXJ5ID0gX2pRdWVyeTtcblx0fVxuXG5cdHJldHVybiBqUXVlcnk7XG59O1xuXG4vLyBFeHBvc2UgalF1ZXJ5IGFuZCAkIGlkZW50aWZpZXJzLCBldmVuIGluIEFNRFxuLy8gKCM3MTAyI2NvbW1lbnQ6MTAsIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvanF1ZXJ5L3B1bGwvNTU3KVxuLy8gYW5kIENvbW1vbkpTIGZvciBicm93c2VyIGVtdWxhdG9ycyAoIzEzNTY2KVxuaWYgKCB0eXBlb2Ygbm9HbG9iYWwgPT09IHN0cnVuZGVmaW5lZCApIHtcblx0d2luZG93LmpRdWVyeSA9IHdpbmRvdy4kID0galF1ZXJ5O1xufVxuXG5cblxuXG5yZXR1cm4galF1ZXJ5O1xuXG59KSk7XG4iLCIndXNlIHN0cmljdCc7XG5cblxudmFyIHlhbWwgPSByZXF1aXJlKCcuL2xpYi9qcy15YW1sLmpzJyk7XG5cblxubW9kdWxlLmV4cG9ydHMgPSB5YW1sO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5cbnZhciBsb2FkZXIgPSByZXF1aXJlKCcuL2pzLXlhbWwvbG9hZGVyJyk7XG52YXIgZHVtcGVyID0gcmVxdWlyZSgnLi9qcy15YW1sL2R1bXBlcicpO1xuXG5cbmZ1bmN0aW9uIGRlcHJlY2F0ZWQobmFtZSkge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRnVuY3Rpb24gJyArIG5hbWUgKyAnIGlzIGRlcHJlY2F0ZWQgYW5kIGNhbm5vdCBiZSB1c2VkLicpO1xuICB9O1xufVxuXG5cbm1vZHVsZS5leHBvcnRzLlR5cGUgICAgICAgICAgICAgICAgPSByZXF1aXJlKCcuL2pzLXlhbWwvdHlwZScpO1xubW9kdWxlLmV4cG9ydHMuU2NoZW1hICAgICAgICAgICAgICA9IHJlcXVpcmUoJy4vanMteWFtbC9zY2hlbWEnKTtcbm1vZHVsZS5leHBvcnRzLkZBSUxTQUZFX1NDSEVNQSAgICAgPSByZXF1aXJlKCcuL2pzLXlhbWwvc2NoZW1hL2ZhaWxzYWZlJyk7XG5tb2R1bGUuZXhwb3J0cy5KU09OX1NDSEVNQSAgICAgICAgID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYS9qc29uJyk7XG5tb2R1bGUuZXhwb3J0cy5DT1JFX1NDSEVNQSAgICAgICAgID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYS9jb3JlJyk7XG5tb2R1bGUuZXhwb3J0cy5ERUZBVUxUX1NBRkVfU0NIRU1BID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYS9kZWZhdWx0X3NhZmUnKTtcbm1vZHVsZS5leHBvcnRzLkRFRkFVTFRfRlVMTF9TQ0hFTUEgPSByZXF1aXJlKCcuL2pzLXlhbWwvc2NoZW1hL2RlZmF1bHRfZnVsbCcpO1xubW9kdWxlLmV4cG9ydHMubG9hZCAgICAgICAgICAgICAgICA9IGxvYWRlci5sb2FkO1xubW9kdWxlLmV4cG9ydHMubG9hZEFsbCAgICAgICAgICAgICA9IGxvYWRlci5sb2FkQWxsO1xubW9kdWxlLmV4cG9ydHMuc2FmZUxvYWQgICAgICAgICAgICA9IGxvYWRlci5zYWZlTG9hZDtcbm1vZHVsZS5leHBvcnRzLnNhZmVMb2FkQWxsICAgICAgICAgPSBsb2FkZXIuc2FmZUxvYWRBbGw7XG5tb2R1bGUuZXhwb3J0cy5kdW1wICAgICAgICAgICAgICAgID0gZHVtcGVyLmR1bXA7XG5tb2R1bGUuZXhwb3J0cy5zYWZlRHVtcCAgICAgICAgICAgID0gZHVtcGVyLnNhZmVEdW1wO1xubW9kdWxlLmV4cG9ydHMuWUFNTEV4Y2VwdGlvbiAgICAgICA9IHJlcXVpcmUoJy4vanMteWFtbC9leGNlcHRpb24nKTtcblxuLy8gRGVwcmVjYXJlZCBzY2hlbWEgbmFtZXMgZnJvbSBKUy1ZQU1MIDIuMC54XG5tb2R1bGUuZXhwb3J0cy5NSU5JTUFMX1NDSEVNQSA9IHJlcXVpcmUoJy4vanMteWFtbC9zY2hlbWEvZmFpbHNhZmUnKTtcbm1vZHVsZS5leHBvcnRzLlNBRkVfU0NIRU1BICAgID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYS9kZWZhdWx0X3NhZmUnKTtcbm1vZHVsZS5leHBvcnRzLkRFRkFVTFRfU0NIRU1BID0gcmVxdWlyZSgnLi9qcy15YW1sL3NjaGVtYS9kZWZhdWx0X2Z1bGwnKTtcblxuLy8gRGVwcmVjYXRlZCBmdW5jdGlvbnMgZnJvbSBKUy1ZQU1MIDEueC54XG5tb2R1bGUuZXhwb3J0cy5zY2FuICAgICAgICAgICA9IGRlcHJlY2F0ZWQoJ3NjYW4nKTtcbm1vZHVsZS5leHBvcnRzLnBhcnNlICAgICAgICAgID0gZGVwcmVjYXRlZCgncGFyc2UnKTtcbm1vZHVsZS5leHBvcnRzLmNvbXBvc2UgICAgICAgID0gZGVwcmVjYXRlZCgnY29tcG9zZScpO1xubW9kdWxlLmV4cG9ydHMuYWRkQ29uc3RydWN0b3IgPSBkZXByZWNhdGVkKCdhZGRDb25zdHJ1Y3RvcicpO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5cbmZ1bmN0aW9uIGlzTm90aGluZyhzdWJqZWN0KSB7XG4gIHJldHVybiAodHlwZW9mIHN1YmplY3QgPT09ICd1bmRlZmluZWQnKSB8fCAobnVsbCA9PT0gc3ViamVjdCk7XG59XG5cblxuZnVuY3Rpb24gaXNPYmplY3Qoc3ViamVjdCkge1xuICByZXR1cm4gKHR5cGVvZiBzdWJqZWN0ID09PSAnb2JqZWN0JykgJiYgKG51bGwgIT09IHN1YmplY3QpO1xufVxuXG5cbmZ1bmN0aW9uIHRvQXJyYXkoc2VxdWVuY2UpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoc2VxdWVuY2UpKSB7XG4gICAgcmV0dXJuIHNlcXVlbmNlO1xuICB9IGVsc2UgaWYgKGlzTm90aGluZyhzZXF1ZW5jZSkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIFsgc2VxdWVuY2UgXTtcbn1cblxuXG5mdW5jdGlvbiBleHRlbmQodGFyZ2V0LCBzb3VyY2UpIHtcbiAgdmFyIGluZGV4LCBsZW5ndGgsIGtleSwgc291cmNlS2V5cztcblxuICBpZiAoc291cmNlKSB7XG4gICAgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG5cbiAgICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gc291cmNlS2V5cy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgICBrZXkgPSBzb3VyY2VLZXlzW2luZGV4XTtcbiAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuXG5mdW5jdGlvbiByZXBlYXQoc3RyaW5nLCBjb3VudCkge1xuICB2YXIgcmVzdWx0ID0gJycsIGN5Y2xlO1xuXG4gIGZvciAoY3ljbGUgPSAwOyBjeWNsZSA8IGNvdW50OyBjeWNsZSArPSAxKSB7XG4gICAgcmVzdWx0ICs9IHN0cmluZztcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cblxuZnVuY3Rpb24gaXNOZWdhdGl2ZVplcm8obnVtYmVyKSB7XG4gIHJldHVybiAoMCA9PT0gbnVtYmVyKSAmJiAoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZID09PSAxIC8gbnVtYmVyKTtcbn1cblxuXG5tb2R1bGUuZXhwb3J0cy5pc05vdGhpbmcgICAgICA9IGlzTm90aGluZztcbm1vZHVsZS5leHBvcnRzLmlzT2JqZWN0ICAgICAgID0gaXNPYmplY3Q7XG5tb2R1bGUuZXhwb3J0cy50b0FycmF5ICAgICAgICA9IHRvQXJyYXk7XG5tb2R1bGUuZXhwb3J0cy5yZXBlYXQgICAgICAgICA9IHJlcGVhdDtcbm1vZHVsZS5leHBvcnRzLmlzTmVnYXRpdmVaZXJvID0gaXNOZWdhdGl2ZVplcm87XG5tb2R1bGUuZXhwb3J0cy5leHRlbmQgICAgICAgICA9IGV4dGVuZDtcbiIsIid1c2Ugc3RyaWN0JztcblxuLyplc2xpbnQtZGlzYWJsZSBuby11c2UtYmVmb3JlLWRlZmluZSovXG5cbnZhciBjb21tb24gICAgICAgICAgICAgID0gcmVxdWlyZSgnLi9jb21tb24nKTtcbnZhciBZQU1MRXhjZXB0aW9uICAgICAgID0gcmVxdWlyZSgnLi9leGNlcHRpb24nKTtcbnZhciBERUZBVUxUX0ZVTExfU0NIRU1BID0gcmVxdWlyZSgnLi9zY2hlbWEvZGVmYXVsdF9mdWxsJyk7XG52YXIgREVGQVVMVF9TQUZFX1NDSEVNQSA9IHJlcXVpcmUoJy4vc2NoZW1hL2RlZmF1bHRfc2FmZScpO1xuXG52YXIgX3RvU3RyaW5nICAgICAgID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcbnZhciBfaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG52YXIgQ0hBUl9UQUIgICAgICAgICAgICAgICAgICA9IDB4MDk7IC8qIFRhYiAqL1xudmFyIENIQVJfTElORV9GRUVEICAgICAgICAgICAgPSAweDBBOyAvKiBMRiAqL1xudmFyIENIQVJfQ0FSUklBR0VfUkVUVVJOICAgICAgPSAweDBEOyAvKiBDUiAqL1xudmFyIENIQVJfU1BBQ0UgICAgICAgICAgICAgICAgPSAweDIwOyAvKiBTcGFjZSAqL1xudmFyIENIQVJfRVhDTEFNQVRJT04gICAgICAgICAgPSAweDIxOyAvKiAhICovXG52YXIgQ0hBUl9ET1VCTEVfUVVPVEUgICAgICAgICA9IDB4MjI7IC8qIFwiICovXG52YXIgQ0hBUl9TSEFSUCAgICAgICAgICAgICAgICA9IDB4MjM7IC8qICMgKi9cbnZhciBDSEFSX1BFUkNFTlQgICAgICAgICAgICAgID0gMHgyNTsgLyogJSAqL1xudmFyIENIQVJfQU1QRVJTQU5EICAgICAgICAgICAgPSAweDI2OyAvKiAmICovXG52YXIgQ0hBUl9TSU5HTEVfUVVPVEUgICAgICAgICA9IDB4Mjc7IC8qICcgKi9cbnZhciBDSEFSX0FTVEVSSVNLICAgICAgICAgICAgID0gMHgyQTsgLyogKiAqL1xudmFyIENIQVJfQ09NTUEgICAgICAgICAgICAgICAgPSAweDJDOyAvKiAsICovXG52YXIgQ0hBUl9NSU5VUyAgICAgICAgICAgICAgICA9IDB4MkQ7IC8qIC0gKi9cbnZhciBDSEFSX0NPTE9OICAgICAgICAgICAgICAgID0gMHgzQTsgLyogOiAqL1xudmFyIENIQVJfR1JFQVRFUl9USEFOICAgICAgICAgPSAweDNFOyAvKiA+ICovXG52YXIgQ0hBUl9RVUVTVElPTiAgICAgICAgICAgICA9IDB4M0Y7IC8qID8gKi9cbnZhciBDSEFSX0NPTU1FUkNJQUxfQVQgICAgICAgID0gMHg0MDsgLyogQCAqL1xudmFyIENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVCAgPSAweDVCOyAvKiBbICovXG52YXIgQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCA9IDB4NUQ7IC8qIF0gKi9cbnZhciBDSEFSX0dSQVZFX0FDQ0VOVCAgICAgICAgID0gMHg2MDsgLyogYCAqL1xudmFyIENIQVJfTEVGVF9DVVJMWV9CUkFDS0VUICAgPSAweDdCOyAvKiB7ICovXG52YXIgQ0hBUl9WRVJUSUNBTF9MSU5FICAgICAgICA9IDB4N0M7IC8qIHwgKi9cbnZhciBDSEFSX1JJR0hUX0NVUkxZX0JSQUNLRVQgID0gMHg3RDsgLyogfSAqL1xuXG52YXIgRVNDQVBFX1NFUVVFTkNFUyA9IHt9O1xuXG5FU0NBUEVfU0VRVUVOQ0VTWzB4MDBdICAgPSAnXFxcXDAnO1xuRVNDQVBFX1NFUVVFTkNFU1sweDA3XSAgID0gJ1xcXFxhJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgwOF0gICA9ICdcXFxcYic7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MDldICAgPSAnXFxcXHQnO1xuRVNDQVBFX1NFUVVFTkNFU1sweDBBXSAgID0gJ1xcXFxuJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgwQl0gICA9ICdcXFxcdic7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MENdICAgPSAnXFxcXGYnO1xuRVNDQVBFX1NFUVVFTkNFU1sweDBEXSAgID0gJ1xcXFxyJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgxQl0gICA9ICdcXFxcZSc7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MjJdICAgPSAnXFxcXFwiJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHg1Q10gICA9ICdcXFxcXFxcXCc7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4ODVdICAgPSAnXFxcXE4nO1xuRVNDQVBFX1NFUVVFTkNFU1sweEEwXSAgID0gJ1xcXFxfJztcbkVTQ0FQRV9TRVFVRU5DRVNbMHgyMDI4XSA9ICdcXFxcTCc7XG5FU0NBUEVfU0VRVUVOQ0VTWzB4MjAyOV0gPSAnXFxcXFAnO1xuXG52YXIgREVQUkVDQVRFRF9CT09MRUFOU19TWU5UQVggPSBbXG4gICd5JywgJ1knLCAneWVzJywgJ1llcycsICdZRVMnLCAnb24nLCAnT24nLCAnT04nLFxuICAnbicsICdOJywgJ25vJywgJ05vJywgJ05PJywgJ29mZicsICdPZmYnLCAnT0ZGJ1xuXTtcblxuZnVuY3Rpb24gY29tcGlsZVN0eWxlTWFwKHNjaGVtYSwgbWFwKSB7XG4gIHZhciByZXN1bHQsIGtleXMsIGluZGV4LCBsZW5ndGgsIHRhZywgc3R5bGUsIHR5cGU7XG5cbiAgaWYgKG51bGwgPT09IG1hcCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHJlc3VsdCA9IHt9O1xuICBrZXlzID0gT2JqZWN0LmtleXMobWFwKTtcblxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0ga2V5cy5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgdGFnID0ga2V5c1tpbmRleF07XG4gICAgc3R5bGUgPSBTdHJpbmcobWFwW3RhZ10pO1xuXG4gICAgaWYgKCchIScgPT09IHRhZy5zbGljZSgwLCAyKSkge1xuICAgICAgdGFnID0gJ3RhZzp5YW1sLm9yZywyMDAyOicgKyB0YWcuc2xpY2UoMik7XG4gICAgfVxuXG4gICAgdHlwZSA9IHNjaGVtYS5jb21waWxlZFR5cGVNYXBbdGFnXTtcblxuICAgIGlmICh0eXBlICYmIF9oYXNPd25Qcm9wZXJ0eS5jYWxsKHR5cGUuc3R5bGVBbGlhc2VzLCBzdHlsZSkpIHtcbiAgICAgIHN0eWxlID0gdHlwZS5zdHlsZUFsaWFzZXNbc3R5bGVdO1xuICAgIH1cblxuICAgIHJlc3VsdFt0YWddID0gc3R5bGU7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBlbmNvZGVIZXgoY2hhcmFjdGVyKSB7XG4gIHZhciBzdHJpbmcsIGhhbmRsZSwgbGVuZ3RoO1xuXG4gIHN0cmluZyA9IGNoYXJhY3Rlci50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTtcblxuICBpZiAoY2hhcmFjdGVyIDw9IDB4RkYpIHtcbiAgICBoYW5kbGUgPSAneCc7XG4gICAgbGVuZ3RoID0gMjtcbiAgfSBlbHNlIGlmIChjaGFyYWN0ZXIgPD0gMHhGRkZGKSB7XG4gICAgaGFuZGxlID0gJ3UnO1xuICAgIGxlbmd0aCA9IDQ7XG4gIH0gZWxzZSBpZiAoY2hhcmFjdGVyIDw9IDB4RkZGRkZGRkYpIHtcbiAgICBoYW5kbGUgPSAnVSc7XG4gICAgbGVuZ3RoID0gODtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignY29kZSBwb2ludCB3aXRoaW4gYSBzdHJpbmcgbWF5IG5vdCBiZSBncmVhdGVyIHRoYW4gMHhGRkZGRkZGRicpO1xuICB9XG5cbiAgcmV0dXJuICdcXFxcJyArIGhhbmRsZSArIGNvbW1vbi5yZXBlYXQoJzAnLCBsZW5ndGggLSBzdHJpbmcubGVuZ3RoKSArIHN0cmluZztcbn1cblxuZnVuY3Rpb24gU3RhdGUob3B0aW9ucykge1xuICB0aGlzLnNjaGVtYSAgICAgID0gb3B0aW9uc1snc2NoZW1hJ10gfHwgREVGQVVMVF9GVUxMX1NDSEVNQTtcbiAgdGhpcy5pbmRlbnQgICAgICA9IE1hdGgubWF4KDEsIChvcHRpb25zWydpbmRlbnQnXSB8fCAyKSk7XG4gIHRoaXMuc2tpcEludmFsaWQgPSBvcHRpb25zWydza2lwSW52YWxpZCddIHx8IGZhbHNlO1xuICB0aGlzLmZsb3dMZXZlbCAgID0gKGNvbW1vbi5pc05vdGhpbmcob3B0aW9uc1snZmxvd0xldmVsJ10pID8gLTEgOiBvcHRpb25zWydmbG93TGV2ZWwnXSk7XG4gIHRoaXMuc3R5bGVNYXAgICAgPSBjb21waWxlU3R5bGVNYXAodGhpcy5zY2hlbWEsIG9wdGlvbnNbJ3N0eWxlcyddIHx8IG51bGwpO1xuICB0aGlzLnNvcnRLZXlzICAgID0gb3B0aW9uc1snc29ydEtleXMnXSB8fCBmYWxzZTtcblxuICB0aGlzLmltcGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0O1xuICB0aGlzLmV4cGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEV4cGxpY2l0O1xuXG4gIHRoaXMudGFnID0gbnVsbDtcbiAgdGhpcy5yZXN1bHQgPSAnJztcblxuICB0aGlzLmR1cGxpY2F0ZXMgPSBbXTtcbiAgdGhpcy51c2VkRHVwbGljYXRlcyA9IG51bGw7XG59XG5cbmZ1bmN0aW9uIGluZGVudFN0cmluZyhzdHJpbmcsIHNwYWNlcykge1xuICB2YXIgaW5kID0gY29tbW9uLnJlcGVhdCgnICcsIHNwYWNlcyksXG4gICAgICBwb3NpdGlvbiA9IDAsXG4gICAgICBuZXh0ID0gLTEsXG4gICAgICByZXN1bHQgPSAnJyxcbiAgICAgIGxpbmUsXG4gICAgICBsZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuXG4gIHdoaWxlIChwb3NpdGlvbiA8IGxlbmd0aCkge1xuICAgIG5leHQgPSBzdHJpbmcuaW5kZXhPZignXFxuJywgcG9zaXRpb24pO1xuICAgIGlmIChuZXh0ID09PSAtMSkge1xuICAgICAgbGluZSA9IHN0cmluZy5zbGljZShwb3NpdGlvbik7XG4gICAgICBwb3NpdGlvbiA9IGxlbmd0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgbGluZSA9IHN0cmluZy5zbGljZShwb3NpdGlvbiwgbmV4dCArIDEpO1xuICAgICAgcG9zaXRpb24gPSBuZXh0ICsgMTtcbiAgICB9XG4gICAgaWYgKGxpbmUubGVuZ3RoICYmIGxpbmUgIT09ICdcXG4nKSB7XG4gICAgICByZXN1bHQgKz0gaW5kO1xuICAgIH1cbiAgICByZXN1bHQgKz0gbGluZTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlTmV4dExpbmUoc3RhdGUsIGxldmVsKSB7XG4gIHJldHVybiAnXFxuJyArIGNvbW1vbi5yZXBlYXQoJyAnLCBzdGF0ZS5pbmRlbnQgKiBsZXZlbCk7XG59XG5cbmZ1bmN0aW9uIHRlc3RJbXBsaWNpdFJlc29sdmluZyhzdGF0ZSwgc3RyKSB7XG4gIHZhciBpbmRleCwgbGVuZ3RoLCB0eXBlO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBzdGF0ZS5pbXBsaWNpdFR5cGVzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICB0eXBlID0gc3RhdGUuaW1wbGljaXRUeXBlc1tpbmRleF07XG5cbiAgICBpZiAodHlwZS5yZXNvbHZlKHN0cikpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gU3RyaW5nQnVpbGRlcihzb3VyY2UpIHtcbiAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XG4gIHRoaXMucmVzdWx0ID0gJyc7XG4gIHRoaXMuY2hlY2twb2ludCA9IDA7XG59XG5cblN0cmluZ0J1aWxkZXIucHJvdG90eXBlLnRha2VVcFRvID0gZnVuY3Rpb24gKHBvc2l0aW9uKSB7XG4gIHZhciBlcjtcblxuICBpZiAocG9zaXRpb24gPCB0aGlzLmNoZWNrcG9pbnQpIHtcbiAgICBlciA9IG5ldyBFcnJvcigncG9zaXRpb24gc2hvdWxkIGJlID4gY2hlY2twb2ludCcpO1xuICAgIGVyLnBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgZXIuY2hlY2twb2ludCA9IHRoaXMuY2hlY2twb2ludDtcbiAgICB0aHJvdyBlcjtcbiAgfVxuXG4gIHRoaXMucmVzdWx0ICs9IHRoaXMuc291cmNlLnNsaWNlKHRoaXMuY2hlY2twb2ludCwgcG9zaXRpb24pO1xuICB0aGlzLmNoZWNrcG9pbnQgPSBwb3NpdGlvbjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5TdHJpbmdCdWlsZGVyLnByb3RvdHlwZS5lc2NhcGVDaGFyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgY2hhcmFjdGVyLCBlc2M7XG5cbiAgY2hhcmFjdGVyID0gdGhpcy5zb3VyY2UuY2hhckNvZGVBdCh0aGlzLmNoZWNrcG9pbnQpO1xuICBlc2MgPSBFU0NBUEVfU0VRVUVOQ0VTW2NoYXJhY3Rlcl0gfHwgZW5jb2RlSGV4KGNoYXJhY3Rlcik7XG4gIHRoaXMucmVzdWx0ICs9IGVzYztcbiAgdGhpcy5jaGVja3BvaW50ICs9IDE7XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5TdHJpbmdCdWlsZGVyLnByb3RvdHlwZS5maW5pc2ggPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLnNvdXJjZS5sZW5ndGggPiB0aGlzLmNoZWNrcG9pbnQpIHtcbiAgICB0aGlzLnRha2VVcFRvKHRoaXMuc291cmNlLmxlbmd0aCk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHdyaXRlU2NhbGFyKHN0YXRlLCBvYmplY3QsIGxldmVsKSB7XG4gIHZhciBzaW1wbGUsIGZpcnN0LCBzcGFjZVdyYXAsIGZvbGRlZCwgbGl0ZXJhbCwgc2luZ2xlLCBkb3VibGUsXG4gICAgICBzYXdMaW5lRmVlZCwgbGluZVBvc2l0aW9uLCBsb25nZXN0TGluZSwgaW5kZW50LCBtYXgsIGNoYXJhY3RlcixcbiAgICAgIHBvc2l0aW9uLCBlc2NhcGVTZXEsIGhleEVzYywgcHJldmlvdXMsIGxpbmVMZW5ndGgsIG1vZGlmaWVyLFxuICAgICAgdHJhaWxpbmdMaW5lQnJlYWtzLCByZXN1bHQ7XG5cbiAgaWYgKDAgPT09IG9iamVjdC5sZW5ndGgpIHtcbiAgICBzdGF0ZS5kdW1wID0gXCInJ1wiO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICgtMSAhPT0gREVQUkVDQVRFRF9CT09MRUFOU19TWU5UQVguaW5kZXhPZihvYmplY3QpKSB7XG4gICAgc3RhdGUuZHVtcCA9IFwiJ1wiICsgb2JqZWN0ICsgXCInXCI7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc2ltcGxlID0gdHJ1ZTtcbiAgZmlyc3QgPSBvYmplY3QubGVuZ3RoID8gb2JqZWN0LmNoYXJDb2RlQXQoMCkgOiAwO1xuICBzcGFjZVdyYXAgPSAoQ0hBUl9TUEFDRSA9PT0gZmlyc3QgfHxcbiAgICAgICAgICAgICAgIENIQVJfU1BBQ0UgPT09IG9iamVjdC5jaGFyQ29kZUF0KG9iamVjdC5sZW5ndGggLSAxKSk7XG5cbiAgLy8gU2ltcGxpZmllZCBjaGVjayBmb3IgcmVzdHJpY3RlZCBmaXJzdCBjaGFyYWN0ZXJzXG4gIC8vIGh0dHA6Ly93d3cueWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI25zLXBsYWluLWZpcnN0JTI4YyUyOVxuICBpZiAoQ0hBUl9NSU5VUyAgICAgICAgID09PSBmaXJzdCB8fFxuICAgICAgQ0hBUl9RVUVTVElPTiAgICAgID09PSBmaXJzdCB8fFxuICAgICAgQ0hBUl9DT01NRVJDSUFMX0FUID09PSBmaXJzdCB8fFxuICAgICAgQ0hBUl9HUkFWRV9BQ0NFTlQgID09PSBmaXJzdCkge1xuICAgIHNpbXBsZSA9IGZhbHNlO1xuICB9XG5cbiAgLy8gY2FuIG9ubHkgdXNlID4gYW5kIHwgaWYgbm90IHdyYXBwZWQgaW4gc3BhY2VzLlxuICBpZiAoc3BhY2VXcmFwKSB7XG4gICAgc2ltcGxlID0gZmFsc2U7XG4gICAgZm9sZGVkID0gZmFsc2U7XG4gICAgbGl0ZXJhbCA9IGZhbHNlO1xuICB9IGVsc2Uge1xuICAgIGZvbGRlZCA9IHRydWU7XG4gICAgbGl0ZXJhbCA9IHRydWU7XG4gIH1cblxuICBzaW5nbGUgPSB0cnVlO1xuICBkb3VibGUgPSBuZXcgU3RyaW5nQnVpbGRlcihvYmplY3QpO1xuXG4gIHNhd0xpbmVGZWVkID0gZmFsc2U7XG4gIGxpbmVQb3NpdGlvbiA9IDA7XG4gIGxvbmdlc3RMaW5lID0gMDtcblxuICBpbmRlbnQgPSBzdGF0ZS5pbmRlbnQgKiBsZXZlbDtcbiAgbWF4ID0gODA7XG4gIGlmIChpbmRlbnQgPCA0MCkge1xuICAgIG1heCAtPSBpbmRlbnQ7XG4gIH0gZWxzZSB7XG4gICAgbWF4ID0gNDA7XG4gIH1cblxuICBmb3IgKHBvc2l0aW9uID0gMDsgcG9zaXRpb24gPCBvYmplY3QubGVuZ3RoOyBwb3NpdGlvbisrKSB7XG4gICAgY2hhcmFjdGVyID0gb2JqZWN0LmNoYXJDb2RlQXQocG9zaXRpb24pO1xuICAgIGlmIChzaW1wbGUpIHtcbiAgICAgIC8vIENoYXJhY3RlcnMgdGhhdCBjYW4gbmV2ZXIgYXBwZWFyIGluIHRoZSBzaW1wbGUgc2NhbGFyXG4gICAgICBpZiAoIXNpbXBsZUNoYXIoY2hhcmFjdGVyKSkge1xuICAgICAgICBzaW1wbGUgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFN0aWxsIHNpbXBsZS4gIElmIHdlIG1ha2UgaXQgYWxsIHRoZSB3YXkgdGhyb3VnaCBsaWtlXG4gICAgICAgIC8vIHRoaXMsIHRoZW4gd2UgY2FuIGp1c3QgZHVtcCB0aGUgc3RyaW5nIGFzLWlzLlxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc2luZ2xlICYmIGNoYXJhY3RlciA9PT0gQ0hBUl9TSU5HTEVfUVVPVEUpIHtcbiAgICAgIHNpbmdsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIGVzY2FwZVNlcSA9IEVTQ0FQRV9TRVFVRU5DRVNbY2hhcmFjdGVyXTtcbiAgICBoZXhFc2MgPSBuZWVkc0hleEVzY2FwZShjaGFyYWN0ZXIpO1xuXG4gICAgaWYgKCFlc2NhcGVTZXEgJiYgIWhleEVzYykge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKGNoYXJhY3RlciAhPT0gQ0hBUl9MSU5FX0ZFRUQgJiZcbiAgICAgICAgY2hhcmFjdGVyICE9PSBDSEFSX0RPVUJMRV9RVU9URSAmJlxuICAgICAgICBjaGFyYWN0ZXIgIT09IENIQVJfU0lOR0xFX1FVT1RFKSB7XG4gICAgICBmb2xkZWQgPSBmYWxzZTtcbiAgICAgIGxpdGVyYWwgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGNoYXJhY3RlciA9PT0gQ0hBUl9MSU5FX0ZFRUQpIHtcbiAgICAgIHNhd0xpbmVGZWVkID0gdHJ1ZTtcbiAgICAgIHNpbmdsZSA9IGZhbHNlO1xuICAgICAgaWYgKHBvc2l0aW9uID4gMCkge1xuICAgICAgICBwcmV2aW91cyA9IG9iamVjdC5jaGFyQ29kZUF0KHBvc2l0aW9uIC0gMSk7XG4gICAgICAgIGlmIChwcmV2aW91cyA9PT0gQ0hBUl9TUEFDRSkge1xuICAgICAgICAgIGxpdGVyYWwgPSBmYWxzZTtcbiAgICAgICAgICBmb2xkZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGZvbGRlZCkge1xuICAgICAgICBsaW5lTGVuZ3RoID0gcG9zaXRpb24gLSBsaW5lUG9zaXRpb247XG4gICAgICAgIGxpbmVQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgICAgICBpZiAobGluZUxlbmd0aCA+IGxvbmdlc3RMaW5lKSB7XG4gICAgICAgICAgbG9uZ2VzdExpbmUgPSBsaW5lTGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYXJhY3RlciAhPT0gQ0hBUl9ET1VCTEVfUVVPVEUpIHtcbiAgICAgIHNpbmdsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIGRvdWJsZS50YWtlVXBUbyhwb3NpdGlvbik7XG4gICAgZG91YmxlLmVzY2FwZUNoYXIoKTtcbiAgfVxuXG4gIGlmIChzaW1wbGUgJiYgdGVzdEltcGxpY2l0UmVzb2x2aW5nKHN0YXRlLCBvYmplY3QpKSB7XG4gICAgc2ltcGxlID0gZmFsc2U7XG4gIH1cblxuICBtb2RpZmllciA9ICcnO1xuICBpZiAoZm9sZGVkIHx8IGxpdGVyYWwpIHtcbiAgICB0cmFpbGluZ0xpbmVCcmVha3MgPSAwO1xuICAgIGlmIChvYmplY3QuY2hhckNvZGVBdChvYmplY3QubGVuZ3RoIC0gMSkgPT09IENIQVJfTElORV9GRUVEKSB7XG4gICAgICB0cmFpbGluZ0xpbmVCcmVha3MgKz0gMTtcbiAgICAgIGlmIChvYmplY3QuY2hhckNvZGVBdChvYmplY3QubGVuZ3RoIC0gMikgPT09IENIQVJfTElORV9GRUVEKSB7XG4gICAgICAgIHRyYWlsaW5nTGluZUJyZWFrcyArPSAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0cmFpbGluZ0xpbmVCcmVha3MgPT09IDApIHtcbiAgICAgIG1vZGlmaWVyID0gJy0nO1xuICAgIH0gZWxzZSBpZiAodHJhaWxpbmdMaW5lQnJlYWtzID09PSAyKSB7XG4gICAgICBtb2RpZmllciA9ICcrJztcbiAgICB9XG4gIH1cblxuICBpZiAobGl0ZXJhbCAmJiBsb25nZXN0TGluZSA8IG1heCkge1xuICAgIGZvbGRlZCA9IGZhbHNlO1xuICB9XG5cbiAgLy8gSWYgaXQncyBsaXRlcmFsbHkgb25lIGxpbmUsIHRoZW4gZG9uJ3QgYm90aGVyIHdpdGggdGhlIGxpdGVyYWwuXG4gIC8vIFdlIG1heSBzdGlsbCB3YW50IHRvIGRvIGEgZm9sZCwgdGhvdWdoLCBpZiBpdCdzIGEgc3VwZXIgbG9uZyBsaW5lLlxuICBpZiAoIXNhd0xpbmVGZWVkKSB7XG4gICAgbGl0ZXJhbCA9IGZhbHNlO1xuICB9XG5cbiAgaWYgKHNpbXBsZSkge1xuICAgIHN0YXRlLmR1bXAgPSBvYmplY3Q7XG4gIH0gZWxzZSBpZiAoc2luZ2xlKSB7XG4gICAgc3RhdGUuZHVtcCA9ICdcXCcnICsgb2JqZWN0ICsgJ1xcJyc7XG4gIH0gZWxzZSBpZiAoZm9sZGVkKSB7XG4gICAgcmVzdWx0ID0gZm9sZChvYmplY3QsIG1heCk7XG4gICAgc3RhdGUuZHVtcCA9ICc+JyArIG1vZGlmaWVyICsgJ1xcbicgKyBpbmRlbnRTdHJpbmcocmVzdWx0LCBpbmRlbnQpO1xuICB9IGVsc2UgaWYgKGxpdGVyYWwpIHtcbiAgICBpZiAoIW1vZGlmaWVyKSB7XG4gICAgICBvYmplY3QgPSBvYmplY3QucmVwbGFjZSgvXFxuJC8sICcnKTtcbiAgICB9XG4gICAgc3RhdGUuZHVtcCA9ICd8JyArIG1vZGlmaWVyICsgJ1xcbicgKyBpbmRlbnRTdHJpbmcob2JqZWN0LCBpbmRlbnQpO1xuICB9IGVsc2UgaWYgKGRvdWJsZSkge1xuICAgIGRvdWJsZS5maW5pc2goKTtcbiAgICBzdGF0ZS5kdW1wID0gJ1wiJyArIGRvdWJsZS5yZXN1bHQgKyAnXCInO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGR1bXAgc2NhbGFyIHZhbHVlJyk7XG4gIH1cblxuICByZXR1cm47XG59XG5cbi8vIFRoZSBgdHJhaWxpbmdgIHZhciBpcyBhIHJlZ2V4cCBtYXRjaCBvZiBhbnkgdHJhaWxpbmcgYFxcbmAgY2hhcmFjdGVycy5cbi8vXG4vLyBUaGVyZSBhcmUgdGhyZWUgY2FzZXMgd2UgY2FyZSBhYm91dDpcbi8vXG4vLyAxLiBPbmUgdHJhaWxpbmcgYFxcbmAgb24gdGhlIHN0cmluZy4gIEp1c3QgdXNlIGB8YCBvciBgPmAuXG4vLyAgICBUaGlzIGlzIHRoZSBhc3N1bWVkIGRlZmF1bHQuICh0cmFpbGluZyA9IG51bGwpXG4vLyAyLiBObyB0cmFpbGluZyBgXFxuYCBvbiB0aGUgc3RyaW5nLiAgVXNlIGB8LWAgb3IgYD4tYCB0byBcImNob21wXCIgdGhlIGVuZC5cbi8vIDMuIE1vcmUgdGhhbiBvbmUgdHJhaWxpbmcgYFxcbmAgb24gdGhlIHN0cmluZy4gIFVzZSBgfCtgIG9yIGA+K2AuXG4vL1xuLy8gSW4gdGhlIGNhc2Ugb2YgYD4rYCwgdGhlc2UgbGluZSBicmVha3MgYXJlICpub3QqIGRvdWJsZWQgKGxpa2UgdGhlIGxpbmVcbi8vIGJyZWFrcyB3aXRoaW4gdGhlIHN0cmluZyksIHNvIGl0J3MgaW1wb3J0YW50IHRvIG9ubHkgZW5kIHdpdGggdGhlIGV4YWN0XG4vLyBzYW1lIG51bWJlciBhcyB3ZSBzdGFydGVkLlxuZnVuY3Rpb24gZm9sZChvYmplY3QsIG1heCkge1xuICB2YXIgcmVzdWx0ID0gJycsXG4gICAgICBwb3NpdGlvbiA9IDAsXG4gICAgICBsZW5ndGggPSBvYmplY3QubGVuZ3RoLFxuICAgICAgdHJhaWxpbmcgPSAvXFxuKyQvLmV4ZWMob2JqZWN0KSxcbiAgICAgIG5ld0xpbmU7XG5cbiAgaWYgKHRyYWlsaW5nKSB7XG4gICAgbGVuZ3RoID0gdHJhaWxpbmcuaW5kZXggKyAxO1xuICB9XG5cbiAgd2hpbGUgKHBvc2l0aW9uIDwgbGVuZ3RoKSB7XG4gICAgbmV3TGluZSA9IG9iamVjdC5pbmRleE9mKCdcXG4nLCBwb3NpdGlvbik7XG4gICAgaWYgKG5ld0xpbmUgPiBsZW5ndGggfHwgbmV3TGluZSA9PT0gLTEpIHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcmVzdWx0ICs9ICdcXG5cXG4nO1xuICAgICAgfVxuICAgICAgcmVzdWx0ICs9IGZvbGRMaW5lKG9iamVjdC5zbGljZShwb3NpdGlvbiwgbGVuZ3RoKSwgbWF4KTtcbiAgICAgIHBvc2l0aW9uID0gbGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIHJlc3VsdCArPSAnXFxuXFxuJztcbiAgICAgIH1cbiAgICAgIHJlc3VsdCArPSBmb2xkTGluZShvYmplY3Quc2xpY2UocG9zaXRpb24sIG5ld0xpbmUpLCBtYXgpO1xuICAgICAgcG9zaXRpb24gPSBuZXdMaW5lICsgMTtcbiAgICB9XG4gIH1cbiAgaWYgKHRyYWlsaW5nICYmIHRyYWlsaW5nWzBdICE9PSAnXFxuJykge1xuICAgIHJlc3VsdCArPSB0cmFpbGluZ1swXTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGZvbGRMaW5lKGxpbmUsIG1heCkge1xuICBpZiAobGluZSA9PT0gJycpIHtcbiAgICByZXR1cm4gbGluZTtcbiAgfVxuXG4gIHZhciBmb2xkUmUgPSAvW15cXHNdIFteXFxzXS9nLFxuICAgICAgcmVzdWx0ID0gJycsXG4gICAgICBwcmV2TWF0Y2ggPSAwLFxuICAgICAgZm9sZFN0YXJ0ID0gMCxcbiAgICAgIG1hdGNoID0gZm9sZFJlLmV4ZWMobGluZSksXG4gICAgICBpbmRleCxcbiAgICAgIGZvbGRFbmQsXG4gICAgICBmb2xkZWQ7XG5cbiAgd2hpbGUgKG1hdGNoKSB7XG4gICAgaW5kZXggPSBtYXRjaC5pbmRleDtcblxuICAgIC8vIHdoZW4gd2UgY3Jvc3MgdGhlIG1heCBsZW4sIGlmIHRoZSBwcmV2aW91cyBtYXRjaCB3b3VsZCd2ZVxuICAgIC8vIGJlZW4gb2ssIHVzZSB0aGF0IG9uZSwgYW5kIGNhcnJ5IG9uLiAgSWYgdGhlcmUgd2FzIG5vIHByZXZpb3VzXG4gICAgLy8gbWF0Y2ggb24gdGhpcyBmb2xkIHNlY3Rpb24sIHRoZW4ganVzdCBoYXZlIGEgbG9uZyBsaW5lLlxuICAgIGlmIChpbmRleCAtIGZvbGRTdGFydCA+IG1heCkge1xuICAgICAgaWYgKHByZXZNYXRjaCAhPT0gZm9sZFN0YXJ0KSB7XG4gICAgICAgIGZvbGRFbmQgPSBwcmV2TWF0Y2g7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb2xkRW5kID0gaW5kZXg7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcmVzdWx0ICs9ICdcXG4nO1xuICAgICAgfVxuICAgICAgZm9sZGVkID0gbGluZS5zbGljZShmb2xkU3RhcnQsIGZvbGRFbmQpO1xuICAgICAgcmVzdWx0ICs9IGZvbGRlZDtcbiAgICAgIGZvbGRTdGFydCA9IGZvbGRFbmQgKyAxO1xuICAgIH1cbiAgICBwcmV2TWF0Y2ggPSBpbmRleCArIDE7XG4gICAgbWF0Y2ggPSBmb2xkUmUuZXhlYyhsaW5lKTtcbiAgfVxuXG4gIGlmIChyZXN1bHQpIHtcbiAgICByZXN1bHQgKz0gJ1xcbic7XG4gIH1cblxuICAvLyBpZiB3ZSBlbmQgdXAgd2l0aCBvbmUgbGFzdCB3b3JkIGF0IHRoZSBlbmQsIHRoZW4gdGhlIGxhc3QgYml0IG1pZ2h0XG4gIC8vIGJlIHNsaWdodGx5IGJpZ2dlciB0aGFuIHdlIHdhbnRlZCwgYmVjYXVzZSB3ZSBleGl0ZWQgb3V0IG9mIHRoZSBsb29wLlxuICBpZiAoZm9sZFN0YXJ0ICE9PSBwcmV2TWF0Y2ggJiYgbGluZS5sZW5ndGggLSBmb2xkU3RhcnQgPiBtYXgpIHtcbiAgICByZXN1bHQgKz0gbGluZS5zbGljZShmb2xkU3RhcnQsIHByZXZNYXRjaCkgKyAnXFxuJyArXG4gICAgICAgICAgICAgIGxpbmUuc2xpY2UocHJldk1hdGNoICsgMSk7XG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0ICs9IGxpbmUuc2xpY2UoZm9sZFN0YXJ0KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIFJldHVybnMgdHJ1ZSBpZiBjaGFyYWN0ZXIgY2FuIGJlIGZvdW5kIGluIGEgc2ltcGxlIHNjYWxhclxuZnVuY3Rpb24gc2ltcGxlQ2hhcihjaGFyYWN0ZXIpIHtcbiAgcmV0dXJuIENIQVJfVEFCICAgICAgICAgICAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9MSU5FX0ZFRUQgICAgICAgICAgICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX0NBUlJJQUdFX1JFVFVSTiAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfQ09NTUEgICAgICAgICAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9MRUZUX1NRVUFSRV9CUkFDS0VUICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfTEVGVF9DVVJMWV9CUkFDS0VUICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9SSUdIVF9DVVJMWV9CUkFDS0VUICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX1NIQVJQICAgICAgICAgICAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfQU1QRVJTQU5EICAgICAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9BU1RFUklTSyAgICAgICAgICAgICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX0VYQ0xBTUFUSU9OICAgICAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfVkVSVElDQUxfTElORSAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9HUkVBVEVSX1RIQU4gICAgICAgICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX1NJTkdMRV9RVU9URSAgICAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgIENIQVJfRE9VQkxFX1FVT1RFICAgICAgICAgIT09IGNoYXJhY3RlciAmJlxuICAgICAgICAgQ0hBUl9QRVJDRU5UICAgICAgICAgICAgICAhPT0gY2hhcmFjdGVyICYmXG4gICAgICAgICBDSEFSX0NPTE9OICAgICAgICAgICAgICAgICE9PSBjaGFyYWN0ZXIgJiZcbiAgICAgICAgICFFU0NBUEVfU0VRVUVOQ0VTW2NoYXJhY3Rlcl0gICAgICAgICAgICAmJlxuICAgICAgICAgIW5lZWRzSGV4RXNjYXBlKGNoYXJhY3Rlcik7XG59XG5cbi8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgY2hhcmFjdGVyIGNvZGUgbmVlZHMgdG8gYmUgZXNjYXBlZC5cbmZ1bmN0aW9uIG5lZWRzSGV4RXNjYXBlKGNoYXJhY3Rlcikge1xuICByZXR1cm4gISgoMHgwMDAyMCA8PSBjaGFyYWN0ZXIgJiYgY2hhcmFjdGVyIDw9IDB4MDAwMDdFKSB8fFxuICAgICAgICAgICAoMHgwMDA4NSA9PT0gY2hhcmFjdGVyKSAgICAgICAgICAgICAgICAgICAgICAgICB8fFxuICAgICAgICAgICAoMHgwMDBBMCA8PSBjaGFyYWN0ZXIgJiYgY2hhcmFjdGVyIDw9IDB4MDBEN0ZGKSB8fFxuICAgICAgICAgICAoMHgwRTAwMCA8PSBjaGFyYWN0ZXIgJiYgY2hhcmFjdGVyIDw9IDB4MDBGRkZEKSB8fFxuICAgICAgICAgICAoMHgxMDAwMCA8PSBjaGFyYWN0ZXIgJiYgY2hhcmFjdGVyIDw9IDB4MTBGRkZGKSk7XG59XG5cbmZ1bmN0aW9uIHdyaXRlRmxvd1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgb2JqZWN0KSB7XG4gIHZhciBfcmVzdWx0ID0gJycsXG4gICAgICBfdGFnICAgID0gc3RhdGUudGFnLFxuICAgICAgaW5kZXgsXG4gICAgICBsZW5ndGg7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgLy8gV3JpdGUgb25seSB2YWxpZCBlbGVtZW50cy5cbiAgICBpZiAod3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgb2JqZWN0W2luZGV4XSwgZmFsc2UsIGZhbHNlKSkge1xuICAgICAgaWYgKDAgIT09IGluZGV4KSB7XG4gICAgICAgIF9yZXN1bHQgKz0gJywgJztcbiAgICAgIH1cbiAgICAgIF9yZXN1bHQgKz0gc3RhdGUuZHVtcDtcbiAgICB9XG4gIH1cblxuICBzdGF0ZS50YWcgPSBfdGFnO1xuICBzdGF0ZS5kdW1wID0gJ1snICsgX3Jlc3VsdCArICddJztcbn1cblxuZnVuY3Rpb24gd3JpdGVCbG9ja1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBjb21wYWN0KSB7XG4gIHZhciBfcmVzdWx0ID0gJycsXG4gICAgICBfdGFnICAgID0gc3RhdGUudGFnLFxuICAgICAgaW5kZXgsXG4gICAgICBsZW5ndGg7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgLy8gV3JpdGUgb25seSB2YWxpZCBlbGVtZW50cy5cbiAgICBpZiAod3JpdGVOb2RlKHN0YXRlLCBsZXZlbCArIDEsIG9iamVjdFtpbmRleF0sIHRydWUsIHRydWUpKSB7XG4gICAgICBpZiAoIWNvbXBhY3QgfHwgMCAhPT0gaW5kZXgpIHtcbiAgICAgICAgX3Jlc3VsdCArPSBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCk7XG4gICAgICB9XG4gICAgICBfcmVzdWx0ICs9ICctICcgKyBzdGF0ZS5kdW1wO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRlLnRhZyA9IF90YWc7XG4gIHN0YXRlLmR1bXAgPSBfcmVzdWx0IHx8ICdbXSc7IC8vIEVtcHR5IHNlcXVlbmNlIGlmIG5vIHZhbGlkIHZhbHVlcy5cbn1cblxuZnVuY3Rpb24gd3JpdGVGbG93TWFwcGluZyhzdGF0ZSwgbGV2ZWwsIG9iamVjdCkge1xuICB2YXIgX3Jlc3VsdCAgICAgICA9ICcnLFxuICAgICAgX3RhZyAgICAgICAgICA9IHN0YXRlLnRhZyxcbiAgICAgIG9iamVjdEtleUxpc3QgPSBPYmplY3Qua2V5cyhvYmplY3QpLFxuICAgICAgaW5kZXgsXG4gICAgICBsZW5ndGgsXG4gICAgICBvYmplY3RLZXksXG4gICAgICBvYmplY3RWYWx1ZSxcbiAgICAgIHBhaXJCdWZmZXI7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdEtleUxpc3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHBhaXJCdWZmZXIgPSAnJztcblxuICAgIGlmICgwICE9PSBpbmRleCkge1xuICAgICAgcGFpckJ1ZmZlciArPSAnLCAnO1xuICAgIH1cblxuICAgIG9iamVjdEtleSA9IG9iamVjdEtleUxpc3RbaW5kZXhdO1xuICAgIG9iamVjdFZhbHVlID0gb2JqZWN0W29iamVjdEtleV07XG5cbiAgICBpZiAoIXdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwsIG9iamVjdEtleSwgZmFsc2UsIGZhbHNlKSkge1xuICAgICAgY29udGludWU7IC8vIFNraXAgdGhpcyBwYWlyIGJlY2F1c2Ugb2YgaW52YWxpZCBrZXk7XG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLmR1bXAubGVuZ3RoID4gMTAyNCkge1xuICAgICAgcGFpckJ1ZmZlciArPSAnPyAnO1xuICAgIH1cblxuICAgIHBhaXJCdWZmZXIgKz0gc3RhdGUuZHVtcCArICc6ICc7XG5cbiAgICBpZiAoIXdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwsIG9iamVjdFZhbHVlLCBmYWxzZSwgZmFsc2UpKSB7XG4gICAgICBjb250aW51ZTsgLy8gU2tpcCB0aGlzIHBhaXIgYmVjYXVzZSBvZiBpbnZhbGlkIHZhbHVlLlxuICAgIH1cblxuICAgIHBhaXJCdWZmZXIgKz0gc3RhdGUuZHVtcDtcblxuICAgIC8vIEJvdGgga2V5IGFuZCB2YWx1ZSBhcmUgdmFsaWQuXG4gICAgX3Jlc3VsdCArPSBwYWlyQnVmZmVyO1xuICB9XG5cbiAgc3RhdGUudGFnID0gX3RhZztcbiAgc3RhdGUuZHVtcCA9ICd7JyArIF9yZXN1bHQgKyAnfSc7XG59XG5cbmZ1bmN0aW9uIHdyaXRlQmxvY2tNYXBwaW5nKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBjb21wYWN0KSB7XG4gIHZhciBfcmVzdWx0ICAgICAgID0gJycsXG4gICAgICBfdGFnICAgICAgICAgID0gc3RhdGUudGFnLFxuICAgICAgb2JqZWN0S2V5TGlzdCA9IE9iamVjdC5rZXlzKG9iamVjdCksXG4gICAgICBpbmRleCxcbiAgICAgIGxlbmd0aCxcbiAgICAgIG9iamVjdEtleSxcbiAgICAgIG9iamVjdFZhbHVlLFxuICAgICAgZXhwbGljaXRQYWlyLFxuICAgICAgcGFpckJ1ZmZlcjtcblxuICAvLyBBbGxvdyBzb3J0aW5nIGtleXMgc28gdGhhdCB0aGUgb3V0cHV0IGZpbGUgaXMgZGV0ZXJtaW5pc3RpY1xuICBpZiAoc3RhdGUuc29ydEtleXMgPT09IHRydWUpIHtcbiAgICAvLyBEZWZhdWx0IHNvcnRpbmdcbiAgICBvYmplY3RLZXlMaXN0LnNvcnQoKTtcbiAgfSBlbHNlIGlmICh0eXBlb2Ygc3RhdGUuc29ydEtleXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBDdXN0b20gc29ydCBmdW5jdGlvblxuICAgIG9iamVjdEtleUxpc3Quc29ydChzdGF0ZS5zb3J0S2V5cyk7XG4gIH0gZWxzZSBpZiAoc3RhdGUuc29ydEtleXMpIHtcbiAgICAvLyBTb21ldGhpbmcgaXMgd3JvbmdcbiAgICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignc29ydEtleXMgbXVzdCBiZSBhIGJvb2xlYW4gb3IgYSBmdW5jdGlvbicpO1xuICB9XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdEtleUxpc3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHBhaXJCdWZmZXIgPSAnJztcblxuICAgIGlmICghY29tcGFjdCB8fCAwICE9PSBpbmRleCkge1xuICAgICAgcGFpckJ1ZmZlciArPSBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCk7XG4gICAgfVxuXG4gICAgb2JqZWN0S2V5ID0gb2JqZWN0S2V5TGlzdFtpbmRleF07XG4gICAgb2JqZWN0VmFsdWUgPSBvYmplY3Rbb2JqZWN0S2V5XTtcblxuICAgIGlmICghd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCArIDEsIG9iamVjdEtleSwgdHJ1ZSwgdHJ1ZSkpIHtcbiAgICAgIGNvbnRpbnVlOyAvLyBTa2lwIHRoaXMgcGFpciBiZWNhdXNlIG9mIGludmFsaWQga2V5LlxuICAgIH1cblxuICAgIGV4cGxpY2l0UGFpciA9IChudWxsICE9PSBzdGF0ZS50YWcgJiYgJz8nICE9PSBzdGF0ZS50YWcpIHx8XG4gICAgICAgICAgICAgICAgICAgKHN0YXRlLmR1bXAgJiYgc3RhdGUuZHVtcC5sZW5ndGggPiAxMDI0KTtcblxuICAgIGlmIChleHBsaWNpdFBhaXIpIHtcbiAgICAgIGlmIChzdGF0ZS5kdW1wICYmIENIQVJfTElORV9GRUVEID09PSBzdGF0ZS5kdW1wLmNoYXJDb2RlQXQoMCkpIHtcbiAgICAgICAgcGFpckJ1ZmZlciArPSAnPyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYWlyQnVmZmVyICs9ICc/ICc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcGFpckJ1ZmZlciArPSBzdGF0ZS5kdW1wO1xuXG4gICAgaWYgKGV4cGxpY2l0UGFpcikge1xuICAgICAgcGFpckJ1ZmZlciArPSBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCk7XG4gICAgfVxuXG4gICAgaWYgKCF3cml0ZU5vZGUoc3RhdGUsIGxldmVsICsgMSwgb2JqZWN0VmFsdWUsIHRydWUsIGV4cGxpY2l0UGFpcikpIHtcbiAgICAgIGNvbnRpbnVlOyAvLyBTa2lwIHRoaXMgcGFpciBiZWNhdXNlIG9mIGludmFsaWQgdmFsdWUuXG4gICAgfVxuXG4gICAgaWYgKHN0YXRlLmR1bXAgJiYgQ0hBUl9MSU5FX0ZFRUQgPT09IHN0YXRlLmR1bXAuY2hhckNvZGVBdCgwKSkge1xuICAgICAgcGFpckJ1ZmZlciArPSAnOic7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhaXJCdWZmZXIgKz0gJzogJztcbiAgICB9XG5cbiAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXA7XG5cbiAgICAvLyBCb3RoIGtleSBhbmQgdmFsdWUgYXJlIHZhbGlkLlxuICAgIF9yZXN1bHQgKz0gcGFpckJ1ZmZlcjtcbiAgfVxuXG4gIHN0YXRlLnRhZyA9IF90YWc7XG4gIHN0YXRlLmR1bXAgPSBfcmVzdWx0IHx8ICd7fSc7IC8vIEVtcHR5IG1hcHBpbmcgaWYgbm8gdmFsaWQgcGFpcnMuXG59XG5cbmZ1bmN0aW9uIGRldGVjdFR5cGUoc3RhdGUsIG9iamVjdCwgZXhwbGljaXQpIHtcbiAgdmFyIF9yZXN1bHQsIHR5cGVMaXN0LCBpbmRleCwgbGVuZ3RoLCB0eXBlLCBzdHlsZTtcblxuICB0eXBlTGlzdCA9IGV4cGxpY2l0ID8gc3RhdGUuZXhwbGljaXRUeXBlcyA6IHN0YXRlLmltcGxpY2l0VHlwZXM7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IHR5cGVMaXN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICB0eXBlID0gdHlwZUxpc3RbaW5kZXhdO1xuXG4gICAgaWYgKCh0eXBlLmluc3RhbmNlT2YgIHx8IHR5cGUucHJlZGljYXRlKSAmJlxuICAgICAgICAoIXR5cGUuaW5zdGFuY2VPZiB8fCAoKCdvYmplY3QnID09PSB0eXBlb2Ygb2JqZWN0KSAmJiAob2JqZWN0IGluc3RhbmNlb2YgdHlwZS5pbnN0YW5jZU9mKSkpICYmXG4gICAgICAgICghdHlwZS5wcmVkaWNhdGUgIHx8IHR5cGUucHJlZGljYXRlKG9iamVjdCkpKSB7XG5cbiAgICAgIHN0YXRlLnRhZyA9IGV4cGxpY2l0ID8gdHlwZS50YWcgOiAnPyc7XG5cbiAgICAgIGlmICh0eXBlLnJlcHJlc2VudCkge1xuICAgICAgICBzdHlsZSA9IHN0YXRlLnN0eWxlTWFwW3R5cGUudGFnXSB8fCB0eXBlLmRlZmF1bHRTdHlsZTtcblxuICAgICAgICBpZiAoJ1tvYmplY3QgRnVuY3Rpb25dJyA9PT0gX3RvU3RyaW5nLmNhbGwodHlwZS5yZXByZXNlbnQpKSB7XG4gICAgICAgICAgX3Jlc3VsdCA9IHR5cGUucmVwcmVzZW50KG9iamVjdCwgc3R5bGUpO1xuICAgICAgICB9IGVsc2UgaWYgKF9oYXNPd25Qcm9wZXJ0eS5jYWxsKHR5cGUucmVwcmVzZW50LCBzdHlsZSkpIHtcbiAgICAgICAgICBfcmVzdWx0ID0gdHlwZS5yZXByZXNlbnRbc3R5bGVdKG9iamVjdCwgc3R5bGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCchPCcgKyB0eXBlLnRhZyArICc+IHRhZyByZXNvbHZlciBhY2NlcHRzIG5vdCBcIicgKyBzdHlsZSArICdcIiBzdHlsZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhdGUuZHVtcCA9IF9yZXN1bHQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuLy8gU2VyaWFsaXplcyBgb2JqZWN0YCBhbmQgd3JpdGVzIGl0IHRvIGdsb2JhbCBgcmVzdWx0YC5cbi8vIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLCBvciBmYWxzZSBvbiBpbnZhbGlkIG9iamVjdC5cbi8vXG5mdW5jdGlvbiB3cml0ZU5vZGUoc3RhdGUsIGxldmVsLCBvYmplY3QsIGJsb2NrLCBjb21wYWN0KSB7XG4gIHN0YXRlLnRhZyA9IG51bGw7XG4gIHN0YXRlLmR1bXAgPSBvYmplY3Q7XG5cbiAgaWYgKCFkZXRlY3RUeXBlKHN0YXRlLCBvYmplY3QsIGZhbHNlKSkge1xuICAgIGRldGVjdFR5cGUoc3RhdGUsIG9iamVjdCwgdHJ1ZSk7XG4gIH1cblxuICB2YXIgdHlwZSA9IF90b1N0cmluZy5jYWxsKHN0YXRlLmR1bXApO1xuXG4gIGlmIChibG9jaykge1xuICAgIGJsb2NrID0gKDAgPiBzdGF0ZS5mbG93TGV2ZWwgfHwgc3RhdGUuZmxvd0xldmVsID4gbGV2ZWwpO1xuICB9XG5cbiAgaWYgKChudWxsICE9PSBzdGF0ZS50YWcgJiYgJz8nICE9PSBzdGF0ZS50YWcpIHx8ICgyICE9PSBzdGF0ZS5pbmRlbnQgJiYgbGV2ZWwgPiAwKSkge1xuICAgIGNvbXBhY3QgPSBmYWxzZTtcbiAgfVxuXG4gIHZhciBvYmplY3RPckFycmF5ID0gJ1tvYmplY3QgT2JqZWN0XScgPT09IHR5cGUgfHwgJ1tvYmplY3QgQXJyYXldJyA9PT0gdHlwZSxcbiAgICAgIGR1cGxpY2F0ZUluZGV4LFxuICAgICAgZHVwbGljYXRlO1xuXG4gIGlmIChvYmplY3RPckFycmF5KSB7XG4gICAgZHVwbGljYXRlSW5kZXggPSBzdGF0ZS5kdXBsaWNhdGVzLmluZGV4T2Yob2JqZWN0KTtcbiAgICBkdXBsaWNhdGUgPSBkdXBsaWNhdGVJbmRleCAhPT0gLTE7XG4gIH1cblxuICBpZiAoZHVwbGljYXRlICYmIHN0YXRlLnVzZWREdXBsaWNhdGVzW2R1cGxpY2F0ZUluZGV4XSkge1xuICAgIHN0YXRlLmR1bXAgPSAnKnJlZl8nICsgZHVwbGljYXRlSW5kZXg7XG4gIH0gZWxzZSB7XG4gICAgaWYgKG9iamVjdE9yQXJyYXkgJiYgZHVwbGljYXRlICYmICFzdGF0ZS51c2VkRHVwbGljYXRlc1tkdXBsaWNhdGVJbmRleF0pIHtcbiAgICAgIHN0YXRlLnVzZWREdXBsaWNhdGVzW2R1cGxpY2F0ZUluZGV4XSA9IHRydWU7XG4gICAgfVxuICAgIGlmICgnW29iamVjdCBPYmplY3RdJyA9PT0gdHlwZSkge1xuICAgICAgaWYgKGJsb2NrICYmICgwICE9PSBPYmplY3Qua2V5cyhzdGF0ZS5kdW1wKS5sZW5ndGgpKSB7XG4gICAgICAgIHdyaXRlQmxvY2tNYXBwaW5nKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCwgY29tcGFjdCk7XG4gICAgICAgIGlmIChkdXBsaWNhdGUpIHtcbiAgICAgICAgICBzdGF0ZS5kdW1wID0gJyZyZWZfJyArIGR1cGxpY2F0ZUluZGV4ICsgKDAgPT09IGxldmVsID8gJ1xcbicgOiAnJykgKyBzdGF0ZS5kdW1wO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3cml0ZUZsb3dNYXBwaW5nKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCk7XG4gICAgICAgIGlmIChkdXBsaWNhdGUpIHtcbiAgICAgICAgICBzdGF0ZS5kdW1wID0gJyZyZWZfJyArIGR1cGxpY2F0ZUluZGV4ICsgJyAnICsgc3RhdGUuZHVtcDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoJ1tvYmplY3QgQXJyYXldJyA9PT0gdHlwZSkge1xuICAgICAgaWYgKGJsb2NrICYmICgwICE9PSBzdGF0ZS5kdW1wLmxlbmd0aCkpIHtcbiAgICAgICAgd3JpdGVCbG9ja1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCwgY29tcGFjdCk7XG4gICAgICAgIGlmIChkdXBsaWNhdGUpIHtcbiAgICAgICAgICBzdGF0ZS5kdW1wID0gJyZyZWZfJyArIGR1cGxpY2F0ZUluZGV4ICsgKDAgPT09IGxldmVsID8gJ1xcbicgOiAnJykgKyBzdGF0ZS5kdW1wO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB3cml0ZUZsb3dTZXF1ZW5jZShzdGF0ZSwgbGV2ZWwsIHN0YXRlLmR1bXApO1xuICAgICAgICBpZiAoZHVwbGljYXRlKSB7XG4gICAgICAgICAgc3RhdGUuZHVtcCA9ICcmcmVmXycgKyBkdXBsaWNhdGVJbmRleCArICcgJyArIHN0YXRlLmR1bXA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCdbb2JqZWN0IFN0cmluZ10nID09PSB0eXBlKSB7XG4gICAgICBpZiAoJz8nICE9PSBzdGF0ZS50YWcpIHtcbiAgICAgICAgd3JpdGVTY2FsYXIoc3RhdGUsIHN0YXRlLmR1bXAsIGxldmVsKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHN0YXRlLnNraXBJbnZhbGlkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCd1bmFjY2VwdGFibGUga2luZCBvZiBhbiBvYmplY3QgdG8gZHVtcCAnICsgdHlwZSk7XG4gICAgfVxuXG4gICAgaWYgKG51bGwgIT09IHN0YXRlLnRhZyAmJiAnPycgIT09IHN0YXRlLnRhZykge1xuICAgICAgc3RhdGUuZHVtcCA9ICchPCcgKyBzdGF0ZS50YWcgKyAnPiAnICsgc3RhdGUuZHVtcDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gZ2V0RHVwbGljYXRlUmVmZXJlbmNlcyhvYmplY3QsIHN0YXRlKSB7XG4gIHZhciBvYmplY3RzID0gW10sXG4gICAgICBkdXBsaWNhdGVzSW5kZXhlcyA9IFtdLFxuICAgICAgaW5kZXgsXG4gICAgICBsZW5ndGg7XG5cbiAgaW5zcGVjdE5vZGUob2JqZWN0LCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IGR1cGxpY2F0ZXNJbmRleGVzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBzdGF0ZS5kdXBsaWNhdGVzLnB1c2gob2JqZWN0c1tkdXBsaWNhdGVzSW5kZXhlc1tpbmRleF1dKTtcbiAgfVxuICBzdGF0ZS51c2VkRHVwbGljYXRlcyA9IG5ldyBBcnJheShsZW5ndGgpO1xufVxuXG5mdW5jdGlvbiBpbnNwZWN0Tm9kZShvYmplY3QsIG9iamVjdHMsIGR1cGxpY2F0ZXNJbmRleGVzKSB7XG4gIHZhciB0eXBlID0gX3RvU3RyaW5nLmNhbGwob2JqZWN0KSxcbiAgICAgIG9iamVjdEtleUxpc3QsXG4gICAgICBpbmRleCxcbiAgICAgIGxlbmd0aDtcblxuICBpZiAobnVsbCAhPT0gb2JqZWN0ICYmICdvYmplY3QnID09PSB0eXBlb2Ygb2JqZWN0KSB7XG4gICAgaW5kZXggPSBvYmplY3RzLmluZGV4T2Yob2JqZWN0KTtcbiAgICBpZiAoLTEgIT09IGluZGV4KSB7XG4gICAgICBpZiAoLTEgPT09IGR1cGxpY2F0ZXNJbmRleGVzLmluZGV4T2YoaW5kZXgpKSB7XG4gICAgICAgIGR1cGxpY2F0ZXNJbmRleGVzLnB1c2goaW5kZXgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvYmplY3RzLnB1c2gob2JqZWN0KTtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqZWN0KSkge1xuICAgICAgICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgICBpbnNwZWN0Tm9kZShvYmplY3RbaW5kZXhdLCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9iamVjdEtleUxpc3QgPSBPYmplY3Qua2V5cyhvYmplY3QpO1xuXG4gICAgICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3RLZXlMaXN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICAgICAgICBpbnNwZWN0Tm9kZShvYmplY3Rbb2JqZWN0S2V5TGlzdFtpbmRleF1dLCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZHVtcChpbnB1dCwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICB2YXIgc3RhdGUgPSBuZXcgU3RhdGUob3B0aW9ucyk7XG5cbiAgZ2V0RHVwbGljYXRlUmVmZXJlbmNlcyhpbnB1dCwgc3RhdGUpO1xuXG4gIGlmICh3cml0ZU5vZGUoc3RhdGUsIDAsIGlucHV0LCB0cnVlLCB0cnVlKSkge1xuICAgIHJldHVybiBzdGF0ZS5kdW1wICsgJ1xcbic7XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBzYWZlRHVtcChpbnB1dCwgb3B0aW9ucykge1xuICByZXR1cm4gZHVtcChpbnB1dCwgY29tbW9uLmV4dGVuZCh7IHNjaGVtYTogREVGQVVMVF9TQUZFX1NDSEVNQSB9LCBvcHRpb25zKSk7XG59XG5cbm1vZHVsZS5leHBvcnRzLmR1bXAgICAgID0gZHVtcDtcbm1vZHVsZS5leHBvcnRzLnNhZmVEdW1wID0gc2FmZUR1bXA7XG4iLCIndXNlIHN0cmljdCc7XG5cblxuZnVuY3Rpb24gWUFNTEV4Y2VwdGlvbihyZWFzb24sIG1hcmspIHtcbiAgdGhpcy5uYW1lICAgID0gJ1lBTUxFeGNlcHRpb24nO1xuICB0aGlzLnJlYXNvbiAgPSByZWFzb247XG4gIHRoaXMubWFyayAgICA9IG1hcms7XG4gIHRoaXMubWVzc2FnZSA9IHRoaXMudG9TdHJpbmcoZmFsc2UpO1xufVxuXG5cbllBTUxFeGNlcHRpb24ucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoY29tcGFjdCkge1xuICB2YXIgcmVzdWx0O1xuXG4gIHJlc3VsdCA9ICdKUy1ZQU1MOiAnICsgKHRoaXMucmVhc29uIHx8ICcodW5rbm93biByZWFzb24pJyk7XG5cbiAgaWYgKCFjb21wYWN0ICYmIHRoaXMubWFyaykge1xuICAgIHJlc3VsdCArPSAnICcgKyB0aGlzLm1hcmsudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5cbm1vZHVsZS5leHBvcnRzID0gWUFNTEV4Y2VwdGlvbjtcbiIsIid1c2Ugc3RyaWN0JztcblxuLyplc2xpbnQtZGlzYWJsZSBtYXgtbGVuLG5vLXVzZS1iZWZvcmUtZGVmaW5lKi9cblxudmFyIGNvbW1vbiAgICAgICAgICAgICAgPSByZXF1aXJlKCcuL2NvbW1vbicpO1xudmFyIFlBTUxFeGNlcHRpb24gICAgICAgPSByZXF1aXJlKCcuL2V4Y2VwdGlvbicpO1xudmFyIE1hcmsgICAgICAgICAgICAgICAgPSByZXF1aXJlKCcuL21hcmsnKTtcbnZhciBERUZBVUxUX1NBRkVfU0NIRU1BID0gcmVxdWlyZSgnLi9zY2hlbWEvZGVmYXVsdF9zYWZlJyk7XG52YXIgREVGQVVMVF9GVUxMX1NDSEVNQSA9IHJlcXVpcmUoJy4vc2NoZW1hL2RlZmF1bHRfZnVsbCcpO1xuXG5cbnZhciBfaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG5cbnZhciBDT05URVhUX0ZMT1dfSU4gICA9IDE7XG52YXIgQ09OVEVYVF9GTE9XX09VVCAgPSAyO1xudmFyIENPTlRFWFRfQkxPQ0tfSU4gID0gMztcbnZhciBDT05URVhUX0JMT0NLX09VVCA9IDQ7XG5cblxudmFyIENIT01QSU5HX0NMSVAgID0gMTtcbnZhciBDSE9NUElOR19TVFJJUCA9IDI7XG52YXIgQ0hPTVBJTkdfS0VFUCAgPSAzO1xuXG5cbnZhciBQQVRURVJOX05PTl9QUklOVEFCTEUgICAgICAgICA9IC9bXFx4MDAtXFx4MDhcXHgwQlxceDBDXFx4MEUtXFx4MUZcXHg3Ri1cXHg4NFxceDg2LVxceDlGXFx1RkZGRVxcdUZGRkZdfFtcXHVEODAwLVxcdURCRkZdKD8hW1xcdURDMDAtXFx1REZGRl0pfCg/OlteXFx1RDgwMC1cXHVEQkZGXXxeKVtcXHVEQzAwLVxcdURGRkZdLztcbnZhciBQQVRURVJOX05PTl9BU0NJSV9MSU5FX0JSRUFLUyA9IC9bXFx4ODVcXHUyMDI4XFx1MjAyOV0vO1xudmFyIFBBVFRFUk5fRkxPV19JTkRJQ0FUT1JTICAgICAgID0gL1ssXFxbXFxdXFx7XFx9XS87XG52YXIgUEFUVEVSTl9UQUdfSEFORExFICAgICAgICAgICAgPSAvXig/OiF8ISF8IVthLXpcXC1dKyEpJC9pO1xudmFyIFBBVFRFUk5fVEFHX1VSSSAgICAgICAgICAgICAgID0gL14oPzohfFteLFxcW1xcXVxce1xcfV0pKD86JVswLTlhLWZdezJ9fFswLTlhLXpcXC0jO1xcL1xcPzpAJj1cXCtcXCQsX1xcLiF+XFwqJ1xcKFxcKVxcW1xcXV0pKiQvaTtcblxuXG5mdW5jdGlvbiBpc19FT0woYykge1xuICByZXR1cm4gKGMgPT09IDB4MEEvKiBMRiAqLykgfHwgKGMgPT09IDB4MEQvKiBDUiAqLyk7XG59XG5cbmZ1bmN0aW9uIGlzX1dISVRFX1NQQUNFKGMpIHtcbiAgcmV0dXJuIChjID09PSAweDA5LyogVGFiICovKSB8fCAoYyA9PT0gMHgyMC8qIFNwYWNlICovKTtcbn1cblxuZnVuY3Rpb24gaXNfV1NfT1JfRU9MKGMpIHtcbiAgcmV0dXJuIChjID09PSAweDA5LyogVGFiICovKSB8fFxuICAgICAgICAgKGMgPT09IDB4MjAvKiBTcGFjZSAqLykgfHxcbiAgICAgICAgIChjID09PSAweDBBLyogTEYgKi8pIHx8XG4gICAgICAgICAoYyA9PT0gMHgwRC8qIENSICovKTtcbn1cblxuZnVuY3Rpb24gaXNfRkxPV19JTkRJQ0FUT1IoYykge1xuICByZXR1cm4gMHgyQy8qICwgKi8gPT09IGMgfHxcbiAgICAgICAgIDB4NUIvKiBbICovID09PSBjIHx8XG4gICAgICAgICAweDVELyogXSAqLyA9PT0gYyB8fFxuICAgICAgICAgMHg3Qi8qIHsgKi8gPT09IGMgfHxcbiAgICAgICAgIDB4N0QvKiB9ICovID09PSBjO1xufVxuXG5mdW5jdGlvbiBmcm9tSGV4Q29kZShjKSB7XG4gIHZhciBsYztcblxuICBpZiAoKDB4MzAvKiAwICovIDw9IGMpICYmIChjIDw9IDB4MzkvKiA5ICovKSkge1xuICAgIHJldHVybiBjIC0gMHgzMDtcbiAgfVxuXG4gIC8qZXNsaW50LWRpc2FibGUgbm8tYml0d2lzZSovXG4gIGxjID0gYyB8IDB4MjA7XG5cbiAgaWYgKCgweDYxLyogYSAqLyA8PSBsYykgJiYgKGxjIDw9IDB4NjYvKiBmICovKSkge1xuICAgIHJldHVybiBsYyAtIDB4NjEgKyAxMDtcbiAgfVxuXG4gIHJldHVybiAtMTtcbn1cblxuZnVuY3Rpb24gZXNjYXBlZEhleExlbihjKSB7XG4gIGlmIChjID09PSAweDc4LyogeCAqLykgeyByZXR1cm4gMjsgfVxuICBpZiAoYyA9PT0gMHg3NS8qIHUgKi8pIHsgcmV0dXJuIDQ7IH1cbiAgaWYgKGMgPT09IDB4NTUvKiBVICovKSB7IHJldHVybiA4OyB9XG4gIHJldHVybiAwO1xufVxuXG5mdW5jdGlvbiBmcm9tRGVjaW1hbENvZGUoYykge1xuICBpZiAoKDB4MzAvKiAwICovIDw9IGMpICYmIChjIDw9IDB4MzkvKiA5ICovKSkge1xuICAgIHJldHVybiBjIC0gMHgzMDtcbiAgfVxuXG4gIHJldHVybiAtMTtcbn1cblxuZnVuY3Rpb24gc2ltcGxlRXNjYXBlU2VxdWVuY2UoYykge1xuICByZXR1cm4gKGMgPT09IDB4MzAvKiAwICovKSA/ICdcXHgwMCcgOlxuICAgICAgICAoYyA9PT0gMHg2MS8qIGEgKi8pID8gJ1xceDA3JyA6XG4gICAgICAgIChjID09PSAweDYyLyogYiAqLykgPyAnXFx4MDgnIDpcbiAgICAgICAgKGMgPT09IDB4NzQvKiB0ICovKSA/ICdcXHgwOScgOlxuICAgICAgICAoYyA9PT0gMHgwOS8qIFRhYiAqLykgPyAnXFx4MDknIDpcbiAgICAgICAgKGMgPT09IDB4NkUvKiBuICovKSA/ICdcXHgwQScgOlxuICAgICAgICAoYyA9PT0gMHg3Ni8qIHYgKi8pID8gJ1xceDBCJyA6XG4gICAgICAgIChjID09PSAweDY2LyogZiAqLykgPyAnXFx4MEMnIDpcbiAgICAgICAgKGMgPT09IDB4NzIvKiByICovKSA/ICdcXHgwRCcgOlxuICAgICAgICAoYyA9PT0gMHg2NS8qIGUgKi8pID8gJ1xceDFCJyA6XG4gICAgICAgIChjID09PSAweDIwLyogU3BhY2UgKi8pID8gJyAnIDpcbiAgICAgICAgKGMgPT09IDB4MjIvKiBcIiAqLykgPyAnXFx4MjInIDpcbiAgICAgICAgKGMgPT09IDB4MkYvKiAvICovKSA/ICcvJyA6XG4gICAgICAgIChjID09PSAweDVDLyogXFwgKi8pID8gJ1xceDVDJyA6XG4gICAgICAgIChjID09PSAweDRFLyogTiAqLykgPyAnXFx4ODUnIDpcbiAgICAgICAgKGMgPT09IDB4NUYvKiBfICovKSA/ICdcXHhBMCcgOlxuICAgICAgICAoYyA9PT0gMHg0Qy8qIEwgKi8pID8gJ1xcdTIwMjgnIDpcbiAgICAgICAgKGMgPT09IDB4NTAvKiBQICovKSA/ICdcXHUyMDI5JyA6ICcnO1xufVxuXG5mdW5jdGlvbiBjaGFyRnJvbUNvZGVwb2ludChjKSB7XG4gIGlmIChjIDw9IDB4RkZGRikge1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpO1xuICB9XG4gIC8vIEVuY29kZSBVVEYtMTYgc3Vycm9nYXRlIHBhaXJcbiAgLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVVRGLTE2I0NvZGVfcG9pbnRzX1UuMkIwMTAwMDBfdG9fVS4yQjEwRkZGRlxuICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgoKGMgLSAweDAxMDAwMCkgPj4gMTApICsgMHhEODAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGMgLSAweDAxMDAwMCkgJiAweDAzRkYpICsgMHhEQzAwKTtcbn1cblxudmFyIHNpbXBsZUVzY2FwZUNoZWNrID0gbmV3IEFycmF5KDI1Nik7IC8vIGludGVnZXIsIGZvciBmYXN0IGFjY2Vzc1xudmFyIHNpbXBsZUVzY2FwZU1hcCA9IG5ldyBBcnJheSgyNTYpO1xuZm9yICh2YXIgaSA9IDA7IGkgPCAyNTY7IGkrKykge1xuICBzaW1wbGVFc2NhcGVDaGVja1tpXSA9IHNpbXBsZUVzY2FwZVNlcXVlbmNlKGkpID8gMSA6IDA7XG4gIHNpbXBsZUVzY2FwZU1hcFtpXSA9IHNpbXBsZUVzY2FwZVNlcXVlbmNlKGkpO1xufVxuXG5cbmZ1bmN0aW9uIFN0YXRlKGlucHV0LCBvcHRpb25zKSB7XG4gIHRoaXMuaW5wdXQgPSBpbnB1dDtcblxuICB0aGlzLmZpbGVuYW1lICA9IG9wdGlvbnNbJ2ZpbGVuYW1lJ10gIHx8IG51bGw7XG4gIHRoaXMuc2NoZW1hICAgID0gb3B0aW9uc1snc2NoZW1hJ10gICAgfHwgREVGQVVMVF9GVUxMX1NDSEVNQTtcbiAgdGhpcy5vbldhcm5pbmcgPSBvcHRpb25zWydvbldhcm5pbmcnXSB8fCBudWxsO1xuICB0aGlzLmxlZ2FjeSAgICA9IG9wdGlvbnNbJ2xlZ2FjeSddICAgIHx8IGZhbHNlO1xuXG4gIHRoaXMuaW1wbGljaXRUeXBlcyA9IHRoaXMuc2NoZW1hLmNvbXBpbGVkSW1wbGljaXQ7XG4gIHRoaXMudHlwZU1hcCAgICAgICA9IHRoaXMuc2NoZW1hLmNvbXBpbGVkVHlwZU1hcDtcblxuICB0aGlzLmxlbmd0aCAgICAgPSBpbnB1dC5sZW5ndGg7XG4gIHRoaXMucG9zaXRpb24gICA9IDA7XG4gIHRoaXMubGluZSAgICAgICA9IDA7XG4gIHRoaXMubGluZVN0YXJ0ICA9IDA7XG4gIHRoaXMubGluZUluZGVudCA9IDA7XG5cbiAgdGhpcy5kb2N1bWVudHMgPSBbXTtcblxuICAvKlxuICB0aGlzLnZlcnNpb247XG4gIHRoaXMuY2hlY2tMaW5lQnJlYWtzO1xuICB0aGlzLnRhZ01hcDtcbiAgdGhpcy5hbmNob3JNYXA7XG4gIHRoaXMudGFnO1xuICB0aGlzLmFuY2hvcjtcbiAgdGhpcy5raW5kO1xuICB0aGlzLnJlc3VsdDsqL1xuXG59XG5cblxuZnVuY3Rpb24gZ2VuZXJhdGVFcnJvcihzdGF0ZSwgbWVzc2FnZSkge1xuICByZXR1cm4gbmV3IFlBTUxFeGNlcHRpb24oXG4gICAgbWVzc2FnZSxcbiAgICBuZXcgTWFyayhzdGF0ZS5maWxlbmFtZSwgc3RhdGUuaW5wdXQsIHN0YXRlLnBvc2l0aW9uLCBzdGF0ZS5saW5lLCAoc3RhdGUucG9zaXRpb24gLSBzdGF0ZS5saW5lU3RhcnQpKSk7XG59XG5cbmZ1bmN0aW9uIHRocm93RXJyb3Ioc3RhdGUsIG1lc3NhZ2UpIHtcbiAgdGhyb3cgZ2VuZXJhdGVFcnJvcihzdGF0ZSwgbWVzc2FnZSk7XG59XG5cbmZ1bmN0aW9uIHRocm93V2FybmluZyhzdGF0ZSwgbWVzc2FnZSkge1xuICB2YXIgZXJyb3IgPSBnZW5lcmF0ZUVycm9yKHN0YXRlLCBtZXNzYWdlKTtcblxuICBpZiAoc3RhdGUub25XYXJuaW5nKSB7XG4gICAgc3RhdGUub25XYXJuaW5nLmNhbGwobnVsbCwgZXJyb3IpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IGVycm9yO1xuICB9XG59XG5cblxudmFyIGRpcmVjdGl2ZUhhbmRsZXJzID0ge1xuXG4gIFlBTUw6IGZ1bmN0aW9uIGhhbmRsZVlhbWxEaXJlY3RpdmUoc3RhdGUsIG5hbWUsIGFyZ3MpIHtcblxuICAgICAgdmFyIG1hdGNoLCBtYWpvciwgbWlub3I7XG5cbiAgICAgIGlmIChudWxsICE9PSBzdGF0ZS52ZXJzaW9uKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdkdXBsaWNhdGlvbiBvZiAlWUFNTCBkaXJlY3RpdmUnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKDEgIT09IGFyZ3MubGVuZ3RoKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdZQU1MIGRpcmVjdGl2ZSBhY2NlcHRzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgICB9XG5cbiAgICAgIG1hdGNoID0gL14oWzAtOV0rKVxcLihbMC05XSspJC8uZXhlYyhhcmdzWzBdKTtcblxuICAgICAgaWYgKG51bGwgPT09IG1hdGNoKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdpbGwtZm9ybWVkIGFyZ3VtZW50IG9mIHRoZSBZQU1MIGRpcmVjdGl2ZScpO1xuICAgICAgfVxuXG4gICAgICBtYWpvciA9IHBhcnNlSW50KG1hdGNoWzFdLCAxMCk7XG4gICAgICBtaW5vciA9IHBhcnNlSW50KG1hdGNoWzJdLCAxMCk7XG5cbiAgICAgIGlmICgxICE9PSBtYWpvcikge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5hY2NlcHRhYmxlIFlBTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQnKTtcbiAgICAgIH1cblxuICAgICAgc3RhdGUudmVyc2lvbiA9IGFyZ3NbMF07XG4gICAgICBzdGF0ZS5jaGVja0xpbmVCcmVha3MgPSAobWlub3IgPCAyKTtcblxuICAgICAgaWYgKDEgIT09IG1pbm9yICYmIDIgIT09IG1pbm9yKSB7XG4gICAgICAgIHRocm93V2FybmluZyhzdGF0ZSwgJ3Vuc3VwcG9ydGVkIFlBTUwgdmVyc2lvbiBvZiB0aGUgZG9jdW1lbnQnKTtcbiAgICAgIH1cbiAgICB9LFxuXG4gIFRBRzogZnVuY3Rpb24gaGFuZGxlVGFnRGlyZWN0aXZlKHN0YXRlLCBuYW1lLCBhcmdzKSB7XG5cbiAgICAgIHZhciBoYW5kbGUsIHByZWZpeDtcblxuICAgICAgaWYgKDIgIT09IGFyZ3MubGVuZ3RoKSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdUQUcgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSB0d28gYXJndW1lbnRzJyk7XG4gICAgICB9XG5cbiAgICAgIGhhbmRsZSA9IGFyZ3NbMF07XG4gICAgICBwcmVmaXggPSBhcmdzWzFdO1xuXG4gICAgICBpZiAoIVBBVFRFUk5fVEFHX0hBTkRMRS50ZXN0KGhhbmRsZSkpIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2lsbC1mb3JtZWQgdGFnIGhhbmRsZSAoZmlyc3QgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlJyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChfaGFzT3duUHJvcGVydHkuY2FsbChzdGF0ZS50YWdNYXAsIGhhbmRsZSkpIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3RoZXJlIGlzIGEgcHJldmlvdXNseSBkZWNsYXJlZCBzdWZmaXggZm9yIFwiJyArIGhhbmRsZSArICdcIiB0YWcgaGFuZGxlJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICghUEFUVEVSTl9UQUdfVVJJLnRlc3QocHJlZml4KSkge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnaWxsLWZvcm1lZCB0YWcgcHJlZml4IChzZWNvbmQgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlJyk7XG4gICAgICB9XG5cbiAgICAgIHN0YXRlLnRhZ01hcFtoYW5kbGVdID0gcHJlZml4O1xuICAgIH1cbn07XG5cblxuZnVuY3Rpb24gY2FwdHVyZVNlZ21lbnQoc3RhdGUsIHN0YXJ0LCBlbmQsIGNoZWNrSnNvbikge1xuICB2YXIgX3Bvc2l0aW9uLCBfbGVuZ3RoLCBfY2hhcmFjdGVyLCBfcmVzdWx0O1xuXG4gIGlmIChzdGFydCA8IGVuZCkge1xuICAgIF9yZXN1bHQgPSBzdGF0ZS5pbnB1dC5zbGljZShzdGFydCwgZW5kKTtcblxuICAgIGlmIChjaGVja0pzb24pIHtcbiAgICAgIGZvciAoX3Bvc2l0aW9uID0gMCwgX2xlbmd0aCA9IF9yZXN1bHQubGVuZ3RoO1xuICAgICAgICAgICBfcG9zaXRpb24gPCBfbGVuZ3RoO1xuICAgICAgICAgICBfcG9zaXRpb24gKz0gMSkge1xuICAgICAgICBfY2hhcmFjdGVyID0gX3Jlc3VsdC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7XG4gICAgICAgIGlmICghKDB4MDkgPT09IF9jaGFyYWN0ZXIgfHxcbiAgICAgICAgICAgICAgMHgyMCA8PSBfY2hhcmFjdGVyICYmIF9jaGFyYWN0ZXIgPD0gMHgxMEZGRkYpKSB7XG4gICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2V4cGVjdGVkIHZhbGlkIEpTT04gY2hhcmFjdGVyJyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0ZS5yZXN1bHQgKz0gX3Jlc3VsdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBtZXJnZU1hcHBpbmdzKHN0YXRlLCBkZXN0aW5hdGlvbiwgc291cmNlKSB7XG4gIHZhciBzb3VyY2VLZXlzLCBrZXksIGluZGV4LCBxdWFudGl0eTtcblxuICBpZiAoIWNvbW1vbi5pc09iamVjdChzb3VyY2UpKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2Nhbm5vdCBtZXJnZSBtYXBwaW5nczsgdGhlIHByb3ZpZGVkIHNvdXJjZSBvYmplY3QgaXMgdW5hY2NlcHRhYmxlJyk7XG4gIH1cblxuICBzb3VyY2VLZXlzID0gT2JqZWN0LmtleXMoc291cmNlKTtcblxuICBmb3IgKGluZGV4ID0gMCwgcXVhbnRpdHkgPSBzb3VyY2VLZXlzLmxlbmd0aDsgaW5kZXggPCBxdWFudGl0eTsgaW5kZXggKz0gMSkge1xuICAgIGtleSA9IHNvdXJjZUtleXNbaW5kZXhdO1xuXG4gICAgaWYgKCFfaGFzT3duUHJvcGVydHkuY2FsbChkZXN0aW5hdGlvbiwga2V5KSkge1xuICAgICAgZGVzdGluYXRpb25ba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBfcmVzdWx0LCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSkge1xuICB2YXIgaW5kZXgsIHF1YW50aXR5O1xuXG4gIGtleU5vZGUgPSBTdHJpbmcoa2V5Tm9kZSk7XG5cbiAgaWYgKG51bGwgPT09IF9yZXN1bHQpIHtcbiAgICBfcmVzdWx0ID0ge307XG4gIH1cblxuICBpZiAoJ3RhZzp5YW1sLm9yZywyMDAyOm1lcmdlJyA9PT0ga2V5VGFnKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVOb2RlKSkge1xuICAgICAgZm9yIChpbmRleCA9IDAsIHF1YW50aXR5ID0gdmFsdWVOb2RlLmxlbmd0aDsgaW5kZXggPCBxdWFudGl0eTsgaW5kZXggKz0gMSkge1xuICAgICAgICBtZXJnZU1hcHBpbmdzKHN0YXRlLCBfcmVzdWx0LCB2YWx1ZU5vZGVbaW5kZXhdKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbWVyZ2VNYXBwaW5ncyhzdGF0ZSwgX3Jlc3VsdCwgdmFsdWVOb2RlKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgX3Jlc3VsdFtrZXlOb2RlXSA9IHZhbHVlTm9kZTtcbiAgfVxuXG4gIHJldHVybiBfcmVzdWx0O1xufVxuXG5mdW5jdGlvbiByZWFkTGluZUJyZWFrKHN0YXRlKSB7XG4gIHZhciBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmICgweDBBLyogTEYgKi8gPT09IGNoKSB7XG4gICAgc3RhdGUucG9zaXRpb24rKztcbiAgfSBlbHNlIGlmICgweDBELyogQ1IgKi8gPT09IGNoKSB7XG4gICAgc3RhdGUucG9zaXRpb24rKztcbiAgICBpZiAoMHgwQS8qIExGICovID09PSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkge1xuICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2EgbGluZSBicmVhayBpcyBleHBlY3RlZCcpO1xuICB9XG5cbiAgc3RhdGUubGluZSArPSAxO1xuICBzdGF0ZS5saW5lU3RhcnQgPSBzdGF0ZS5wb3NpdGlvbjtcbn1cblxuZnVuY3Rpb24gc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgYWxsb3dDb21tZW50cywgY2hlY2tJbmRlbnQpIHtcbiAgdmFyIGxpbmVCcmVha3MgPSAwLFxuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICB3aGlsZSAoMCAhPT0gY2gpIHtcbiAgICB3aGlsZSAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKGFsbG93Q29tbWVudHMgJiYgMHgyMy8qICMgKi8gPT09IGNoKSB7XG4gICAgICBkbyB7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgIH0gd2hpbGUgKGNoICE9PSAweDBBLyogTEYgKi8gJiYgY2ggIT09IDB4MEQvKiBDUiAqLyAmJiAwICE9PSBjaCk7XG4gICAgfVxuXG4gICAgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgIHJlYWRMaW5lQnJlYWsoc3RhdGUpO1xuXG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuICAgICAgbGluZUJyZWFrcysrO1xuICAgICAgc3RhdGUubGluZUluZGVudCA9IDA7XG5cbiAgICAgIHdoaWxlICgweDIwLyogU3BhY2UgKi8gPT09IGNoKSB7XG4gICAgICAgIHN0YXRlLmxpbmVJbmRlbnQrKztcbiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAoLTEgIT09IGNoZWNrSW5kZW50ICYmIDAgIT09IGxpbmVCcmVha3MgJiYgc3RhdGUubGluZUluZGVudCA8IGNoZWNrSW5kZW50KSB7XG4gICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAnZGVmaWNpZW50IGluZGVudGF0aW9uJyk7XG4gIH1cblxuICByZXR1cm4gbGluZUJyZWFrcztcbn1cblxuZnVuY3Rpb24gdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSB7XG4gIHZhciBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbixcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChfcG9zaXRpb24pO1xuXG4gIC8vIENvbmRpdGlvbiBzdGF0ZS5wb3NpdGlvbiA9PT0gc3RhdGUubGluZVN0YXJ0IGlzIHRlc3RlZFxuICAvLyBpbiBwYXJlbnQgb24gZWFjaCBjYWxsLCBmb3IgZWZmaWNpZW5jeS4gTm8gbmVlZHMgdG8gdGVzdCBoZXJlIGFnYWluLlxuICBpZiAoKDB4MkQvKiAtICovID09PSBjaCB8fCAweDJFLyogLiAqLyA9PT0gY2gpICYmXG4gICAgICBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KF9wb3NpdGlvbiArIDEpID09PSBjaCAmJlxuICAgICAgc3RhdGUuaW5wdXQuY2hhckNvZGVBdChfcG9zaXRpb24gKyAyKSA9PT0gY2gpIHtcblxuICAgIF9wb3NpdGlvbiArPSAzO1xuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7XG5cbiAgICBpZiAoY2ggPT09IDAgfHwgaXNfV1NfT1JfRU9MKGNoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiB3cml0ZUZvbGRlZExpbmVzKHN0YXRlLCBjb3VudCkge1xuICBpZiAoMSA9PT0gY291bnQpIHtcbiAgICBzdGF0ZS5yZXN1bHQgKz0gJyAnO1xuICB9IGVsc2UgaWYgKGNvdW50ID4gMSkge1xuICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCdcXG4nLCBjb3VudCAtIDEpO1xuICB9XG59XG5cblxuZnVuY3Rpb24gcmVhZFBsYWluU2NhbGFyKHN0YXRlLCBub2RlSW5kZW50LCB3aXRoaW5GbG93Q29sbGVjdGlvbikge1xuICB2YXIgcHJlY2VkaW5nLFxuICAgICAgZm9sbG93aW5nLFxuICAgICAgY2FwdHVyZVN0YXJ0LFxuICAgICAgY2FwdHVyZUVuZCxcbiAgICAgIGhhc1BlbmRpbmdDb250ZW50LFxuICAgICAgX2xpbmUsXG4gICAgICBfbGluZVN0YXJ0LFxuICAgICAgX2xpbmVJbmRlbnQsXG4gICAgICBfa2luZCA9IHN0YXRlLmtpbmQsXG4gICAgICBfcmVzdWx0ID0gc3RhdGUucmVzdWx0LFxuICAgICAgY2g7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoaXNfV1NfT1JfRU9MKGNoKSAgICAgICAgICAgICB8fFxuICAgICAgaXNfRkxPV19JTkRJQ0FUT1IoY2gpICAgICAgICB8fFxuICAgICAgMHgyMy8qICMgKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgyNi8qICYgKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgyQS8qICogKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgyMS8qICEgKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHg3Qy8qIHwgKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgzRS8qID4gKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgyNy8qICcgKi8gICAgICAgICAgID09PSBjaCB8fFxuICAgICAgMHgyMi8qIFwiICovICAgICAgICAgICA9PT0gY2ggfHxcbiAgICAgIDB4MjUvKiAlICovICAgICAgICAgICA9PT0gY2ggfHxcbiAgICAgIDB4NDAvKiBAICovICAgICAgICAgICA9PT0gY2ggfHxcbiAgICAgIDB4NjAvKiBgICovICAgICAgICAgICA9PT0gY2gpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoMHgzRi8qID8gKi8gPT09IGNoIHx8IDB4MkQvKiAtICovID09PSBjaCkge1xuICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTtcblxuICAgIGlmIChpc19XU19PUl9FT0woZm9sbG93aW5nKSB8fFxuICAgICAgICB3aXRoaW5GbG93Q29sbGVjdGlvbiAmJiBpc19GTE9XX0lORElDQVRPUihmb2xsb3dpbmcpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgc3RhdGUua2luZCA9ICdzY2FsYXInO1xuICBzdGF0ZS5yZXN1bHQgPSAnJztcbiAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuICBoYXNQZW5kaW5nQ29udGVudCA9IGZhbHNlO1xuXG4gIHdoaWxlICgwICE9PSBjaCkge1xuICAgIGlmICgweDNBLyogOiAqLyA9PT0gY2gpIHtcbiAgICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTtcblxuICAgICAgaWYgKGlzX1dTX09SX0VPTChmb2xsb3dpbmcpIHx8XG4gICAgICAgICAgd2l0aGluRmxvd0NvbGxlY3Rpb24gJiYgaXNfRkxPV19JTkRJQ0FUT1IoZm9sbG93aW5nKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIH0gZWxzZSBpZiAoMHgyMy8qICMgKi8gPT09IGNoKSB7XG4gICAgICBwcmVjZWRpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uIC0gMSk7XG5cbiAgICAgIGlmIChpc19XU19PUl9FT0wocHJlY2VkaW5nKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgIH0gZWxzZSBpZiAoKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkgfHxcbiAgICAgICAgICAgICAgIHdpdGhpbkZsb3dDb2xsZWN0aW9uICYmIGlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkge1xuICAgICAgYnJlYWs7XG5cbiAgICB9IGVsc2UgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgIF9saW5lID0gc3RhdGUubGluZTtcbiAgICAgIF9saW5lU3RhcnQgPSBzdGF0ZS5saW5lU3RhcnQ7XG4gICAgICBfbGluZUluZGVudCA9IHN0YXRlLmxpbmVJbmRlbnQ7XG4gICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCBmYWxzZSwgLTEpO1xuXG4gICAgICBpZiAoc3RhdGUubGluZUluZGVudCA+PSBub2RlSW5kZW50KSB7XG4gICAgICAgIGhhc1BlbmRpbmdDb250ZW50ID0gdHJ1ZTtcbiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZS5wb3NpdGlvbiA9IGNhcHR1cmVFbmQ7XG4gICAgICAgIHN0YXRlLmxpbmUgPSBfbGluZTtcbiAgICAgICAgc3RhdGUubGluZVN0YXJ0ID0gX2xpbmVTdGFydDtcbiAgICAgICAgc3RhdGUubGluZUluZGVudCA9IF9saW5lSW5kZW50O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaGFzUGVuZGluZ0NvbnRlbnQpIHtcbiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGZhbHNlKTtcbiAgICAgIHdyaXRlRm9sZGVkTGluZXMoc3RhdGUsIHN0YXRlLmxpbmUgLSBfbGluZSk7XG4gICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG4gICAgICBoYXNQZW5kaW5nQ29udGVudCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghaXNfV0hJVEVfU1BBQ0UoY2gpKSB7XG4gICAgICBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb24gKyAxO1xuICAgIH1cblxuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgfVxuXG4gIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGZhbHNlKTtcblxuICBpZiAoc3RhdGUucmVzdWx0KSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBzdGF0ZS5raW5kID0gX2tpbmQ7XG4gIHN0YXRlLnJlc3VsdCA9IF9yZXN1bHQ7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gcmVhZFNpbmdsZVF1b3RlZFNjYWxhcihzdGF0ZSwgbm9kZUluZGVudCkge1xuICB2YXIgY2gsXG4gICAgICBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQ7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoMHgyNy8qICcgKi8gIT09IGNoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc3RhdGUua2luZCA9ICdzY2FsYXInO1xuICBzdGF0ZS5yZXN1bHQgPSAnJztcbiAgc3RhdGUucG9zaXRpb24rKztcbiAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gIHdoaWxlICgwICE9PSAoY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkpIHtcbiAgICBpZiAoMHgyNy8qICcgKi8gPT09IGNoKSB7XG4gICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgdHJ1ZSk7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICAgIGlmICgweDI3LyogJyAqLyA9PT0gY2gpIHtcbiAgICAgICAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuICAgICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICB9IGVsc2UgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIHRydWUpO1xuICAgICAgd3JpdGVGb2xkZWRMaW5lcyhzdGF0ZSwgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgZmFsc2UsIG5vZGVJbmRlbnQpKTtcbiAgICAgIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcblxuICAgIH0gZWxzZSBpZiAoc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyJyk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjtcbiAgICB9XG4gIH1cblxuICB0aHJvd0Vycm9yKHN0YXRlLCAndW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBzaW5nbGUgcXVvdGVkIHNjYWxhcicpO1xufVxuXG5mdW5jdGlvbiByZWFkRG91YmxlUXVvdGVkU2NhbGFyKHN0YXRlLCBub2RlSW5kZW50KSB7XG4gIHZhciBjYXB0dXJlU3RhcnQsXG4gICAgICBjYXB0dXJlRW5kLFxuICAgICAgaGV4TGVuZ3RoLFxuICAgICAgaGV4UmVzdWx0LFxuICAgICAgdG1wLCB0bXBFc2MsXG4gICAgICBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmICgweDIyLyogXCIgKi8gIT09IGNoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc3RhdGUua2luZCA9ICdzY2FsYXInO1xuICBzdGF0ZS5yZXN1bHQgPSAnJztcbiAgc3RhdGUucG9zaXRpb24rKztcbiAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gIHdoaWxlICgwICE9PSAoY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkpIHtcbiAgICBpZiAoMHgyMi8qIFwiICovID09PSBjaCkge1xuICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgc3RhdGUucG9zaXRpb24sIHRydWUpO1xuICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgIHJldHVybiB0cnVlO1xuXG4gICAgfSBlbHNlIGlmICgweDVDLyogXFwgKi8gPT09IGNoKSB7XG4gICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgdHJ1ZSk7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICAgIGlmIChpc19FT0woY2gpKSB7XG4gICAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIGZhbHNlLCBub2RlSW5kZW50KTtcblxuICAgICAgICAvLyBUT0RPOiByZXdvcmsgdG8gaW5saW5lIGZuIHdpdGggbm8gdHlwZSBjYXN0P1xuICAgICAgfSBlbHNlIGlmIChjaCA8IDI1NiAmJiBzaW1wbGVFc2NhcGVDaGVja1tjaF0pIHtcbiAgICAgICAgc3RhdGUucmVzdWx0ICs9IHNpbXBsZUVzY2FwZU1hcFtjaF07XG4gICAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG5cbiAgICAgIH0gZWxzZSBpZiAoKHRtcCA9IGVzY2FwZWRIZXhMZW4oY2gpKSA+IDApIHtcbiAgICAgICAgaGV4TGVuZ3RoID0gdG1wO1xuICAgICAgICBoZXhSZXN1bHQgPSAwO1xuXG4gICAgICAgIGZvciAoOyBoZXhMZW5ndGggPiAwOyBoZXhMZW5ndGgtLSkge1xuICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcblxuICAgICAgICAgIGlmICgodG1wID0gZnJvbUhleENvZGUoY2gpKSA+PSAwKSB7XG4gICAgICAgICAgICBoZXhSZXN1bHQgPSAoaGV4UmVzdWx0IDw8IDQpICsgdG1wO1xuXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdleHBlY3RlZCBoZXhhZGVjaW1hbCBjaGFyYWN0ZXInKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gY2hhckZyb21Db2RlcG9pbnQoaGV4UmVzdWx0KTtcblxuICAgICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5rbm93biBlc2NhcGUgc2VxdWVuY2UnKTtcbiAgICAgIH1cblxuICAgICAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gICAgfSBlbHNlIGlmIChpc19FT0woY2gpKSB7XG4gICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBjYXB0dXJlRW5kLCB0cnVlKTtcbiAgICAgIHdyaXRlRm9sZGVkTGluZXMoc3RhdGUsIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIGZhbHNlLCBub2RlSW5kZW50KSk7XG4gICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG5cbiAgICB9IGVsc2UgaWYgKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuZXhwZWN0ZWQgZW5kIG9mIHRoZSBkb2N1bWVudCB3aXRoaW4gYSBkb3VibGUgcXVvdGVkIHNjYWxhcicpO1xuXG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlLnBvc2l0aW9uKys7XG4gICAgICBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247XG4gICAgfVxuICB9XG5cbiAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuZXhwZWN0ZWQgZW5kIG9mIHRoZSBzdHJlYW0gd2l0aGluIGEgZG91YmxlIHF1b3RlZCBzY2FsYXInKTtcbn1cblxuZnVuY3Rpb24gcmVhZEZsb3dDb2xsZWN0aW9uKHN0YXRlLCBub2RlSW5kZW50KSB7XG4gIHZhciByZWFkTmV4dCA9IHRydWUsXG4gICAgICBfbGluZSxcbiAgICAgIF90YWcgICAgID0gc3RhdGUudGFnLFxuICAgICAgX3Jlc3VsdCxcbiAgICAgIF9hbmNob3IgID0gc3RhdGUuYW5jaG9yLFxuICAgICAgZm9sbG93aW5nLFxuICAgICAgdGVybWluYXRvcixcbiAgICAgIGlzUGFpcixcbiAgICAgIGlzRXhwbGljaXRQYWlyLFxuICAgICAgaXNNYXBwaW5nLFxuICAgICAga2V5Tm9kZSxcbiAgICAgIGtleVRhZyxcbiAgICAgIHZhbHVlTm9kZSxcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKGNoID09PSAweDVCLyogWyAqLykge1xuICAgIHRlcm1pbmF0b3IgPSAweDVEOy8qIF0gKi9cbiAgICBpc01hcHBpbmcgPSBmYWxzZTtcbiAgICBfcmVzdWx0ID0gW107XG4gIH0gZWxzZSBpZiAoY2ggPT09IDB4N0IvKiB7ICovKSB7XG4gICAgdGVybWluYXRvciA9IDB4N0Q7LyogfSAqL1xuICAgIGlzTWFwcGluZyA9IHRydWU7XG4gICAgX3Jlc3VsdCA9IHt9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChudWxsICE9PSBzdGF0ZS5hbmNob3IpIHtcbiAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IF9yZXN1bHQ7XG4gIH1cblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgd2hpbGUgKDAgIT09IGNoKSB7XG4gICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7XG5cbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gICAgaWYgKGNoID09PSB0ZXJtaW5hdG9yKSB7XG4gICAgICBzdGF0ZS5wb3NpdGlvbisrO1xuICAgICAgc3RhdGUudGFnID0gX3RhZztcbiAgICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7XG4gICAgICBzdGF0ZS5raW5kID0gaXNNYXBwaW5nID8gJ21hcHBpbmcnIDogJ3NlcXVlbmNlJztcbiAgICAgIHN0YXRlLnJlc3VsdCA9IF9yZXN1bHQ7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKCFyZWFkTmV4dCkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ21pc3NlZCBjb21tYSBiZXR3ZWVuIGZsb3cgY29sbGVjdGlvbiBlbnRyaWVzJyk7XG4gICAgfVxuXG4gICAga2V5VGFnID0ga2V5Tm9kZSA9IHZhbHVlTm9kZSA9IG51bGw7XG4gICAgaXNQYWlyID0gaXNFeHBsaWNpdFBhaXIgPSBmYWxzZTtcblxuICAgIGlmICgweDNGLyogPyAqLyA9PT0gY2gpIHtcbiAgICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTtcblxuICAgICAgaWYgKGlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7XG4gICAgICAgIGlzUGFpciA9IGlzRXhwbGljaXRQYWlyID0gdHJ1ZTtcbiAgICAgICAgc3RhdGUucG9zaXRpb24rKztcbiAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX2xpbmUgPSBzdGF0ZS5saW5lO1xuICAgIGNvbXBvc2VOb2RlKHN0YXRlLCBub2RlSW5kZW50LCBDT05URVhUX0ZMT1dfSU4sIGZhbHNlLCB0cnVlKTtcbiAgICBrZXlUYWcgPSBzdGF0ZS50YWc7XG4gICAga2V5Tm9kZSA9IHN0YXRlLnJlc3VsdDtcbiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCBub2RlSW5kZW50KTtcblxuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgICBpZiAoKGlzRXhwbGljaXRQYWlyIHx8IHN0YXRlLmxpbmUgPT09IF9saW5lKSAmJiAweDNBLyogOiAqLyA9PT0gY2gpIHtcbiAgICAgIGlzUGFpciA9IHRydWU7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCBub2RlSW5kZW50KTtcbiAgICAgIGNvbXBvc2VOb2RlKHN0YXRlLCBub2RlSW5kZW50LCBDT05URVhUX0ZMT1dfSU4sIGZhbHNlLCB0cnVlKTtcbiAgICAgIHZhbHVlTm9kZSA9IHN0YXRlLnJlc3VsdDtcbiAgICB9XG5cbiAgICBpZiAoaXNNYXBwaW5nKSB7XG4gICAgICBzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBfcmVzdWx0LCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSk7XG4gICAgfSBlbHNlIGlmIChpc1BhaXIpIHtcbiAgICAgIF9yZXN1bHQucHVzaChzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBudWxsLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBfcmVzdWx0LnB1c2goa2V5Tm9kZSk7XG4gICAgfVxuXG4gICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7XG5cbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gICAgaWYgKDB4MkMvKiAsICovID09PSBjaCkge1xuICAgICAgcmVhZE5leHQgPSB0cnVlO1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZWFkTmV4dCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHRocm93RXJyb3Ioc3RhdGUsICd1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIGZsb3cgY29sbGVjdGlvbicpO1xufVxuXG5mdW5jdGlvbiByZWFkQmxvY2tTY2FsYXIoc3RhdGUsIG5vZGVJbmRlbnQpIHtcbiAgdmFyIGNhcHR1cmVTdGFydCxcbiAgICAgIGZvbGRpbmcsXG4gICAgICBjaG9tcGluZyAgICAgICA9IENIT01QSU5HX0NMSVAsXG4gICAgICBkZXRlY3RlZEluZGVudCA9IGZhbHNlLFxuICAgICAgdGV4dEluZGVudCAgICAgPSBub2RlSW5kZW50LFxuICAgICAgZW1wdHlMaW5lcyAgICAgPSAwLFxuICAgICAgYXRNb3JlSW5kZW50ZWQgPSBmYWxzZSxcbiAgICAgIHRtcCxcbiAgICAgIGNoO1xuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKGNoID09PSAweDdDLyogfCAqLykge1xuICAgIGZvbGRpbmcgPSBmYWxzZTtcbiAgfSBlbHNlIGlmIChjaCA9PT0gMHgzRS8qID4gKi8pIHtcbiAgICBmb2xkaW5nID0gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdGF0ZS5raW5kID0gJ3NjYWxhcic7XG4gIHN0YXRlLnJlc3VsdCA9ICcnO1xuXG4gIHdoaWxlICgwICE9PSBjaCkge1xuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcblxuICAgIGlmICgweDJCLyogKyAqLyA9PT0gY2ggfHwgMHgyRC8qIC0gKi8gPT09IGNoKSB7XG4gICAgICBpZiAoQ0hPTVBJTkdfQ0xJUCA9PT0gY2hvbXBpbmcpIHtcbiAgICAgICAgY2hvbXBpbmcgPSAoMHgyQi8qICsgKi8gPT09IGNoKSA/IENIT01QSU5HX0tFRVAgOiBDSE9NUElOR19TVFJJUDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICdyZXBlYXQgb2YgYSBjaG9tcGluZyBtb2RlIGlkZW50aWZpZXInKTtcbiAgICAgIH1cblxuICAgIH0gZWxzZSBpZiAoKHRtcCA9IGZyb21EZWNpbWFsQ29kZShjaCkpID49IDApIHtcbiAgICAgIGlmICh0bXAgPT09IDApIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2JhZCBleHBsaWNpdCBpbmRlbnRhdGlvbiB3aWR0aCBvZiBhIGJsb2NrIHNjYWxhcjsgaXQgY2Fubm90IGJlIGxlc3MgdGhhbiBvbmUnKTtcbiAgICAgIH0gZWxzZSBpZiAoIWRldGVjdGVkSW5kZW50KSB7XG4gICAgICAgIHRleHRJbmRlbnQgPSBub2RlSW5kZW50ICsgdG1wIC0gMTtcbiAgICAgICAgZGV0ZWN0ZWRJbmRlbnQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3JlcGVhdCBvZiBhbiBpbmRlbnRhdGlvbiB3aWR0aCBpZGVudGlmaWVyJyk7XG4gICAgICB9XG5cbiAgICB9IGVsc2Uge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaWYgKGlzX1dISVRFX1NQQUNFKGNoKSkge1xuICAgIGRvIHsgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOyB9XG4gICAgd2hpbGUgKGlzX1dISVRFX1NQQUNFKGNoKSk7XG5cbiAgICBpZiAoMHgyMy8qICMgKi8gPT09IGNoKSB7XG4gICAgICBkbyB7IGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsgfVxuICAgICAgd2hpbGUgKCFpc19FT0woY2gpICYmICgwICE9PSBjaCkpO1xuICAgIH1cbiAgfVxuXG4gIHdoaWxlICgwICE9PSBjaCkge1xuICAgIHJlYWRMaW5lQnJlYWsoc3RhdGUpO1xuICAgIHN0YXRlLmxpbmVJbmRlbnQgPSAwO1xuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICAgIHdoaWxlICgoIWRldGVjdGVkSW5kZW50IHx8IHN0YXRlLmxpbmVJbmRlbnQgPCB0ZXh0SW5kZW50KSAmJlxuICAgICAgICAgICAoMHgyMC8qIFNwYWNlICovID09PSBjaCkpIHtcbiAgICAgIHN0YXRlLmxpbmVJbmRlbnQrKztcbiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoIWRldGVjdGVkSW5kZW50ICYmIHN0YXRlLmxpbmVJbmRlbnQgPiB0ZXh0SW5kZW50KSB7XG4gICAgICB0ZXh0SW5kZW50ID0gc3RhdGUubGluZUluZGVudDtcbiAgICB9XG5cbiAgICBpZiAoaXNfRU9MKGNoKSkge1xuICAgICAgZW1wdHlMaW5lcysrO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLy8gRW5kIG9mIHRoZSBzY2FsYXIuXG4gICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCB0ZXh0SW5kZW50KSB7XG5cbiAgICAgIC8vIFBlcmZvcm0gdGhlIGNob21waW5nLlxuICAgICAgaWYgKGNob21waW5nID09PSBDSE9NUElOR19LRUVQKSB7XG4gICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCdcXG4nLCBlbXB0eUxpbmVzKTtcbiAgICAgIH0gZWxzZSBpZiAoY2hvbXBpbmcgPT09IENIT01QSU5HX0NMSVApIHtcbiAgICAgICAgaWYgKGRldGVjdGVkSW5kZW50KSB7IC8vIGkuZS4gb25seSBpZiB0aGUgc2NhbGFyIGlzIG5vdCBlbXB0eS5cbiAgICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gJ1xcbic7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQnJlYWsgdGhpcyBgd2hpbGVgIGN5Y2xlIGFuZCBnbyB0byB0aGUgZnVuY2l0b24ncyBlcGlsb2d1ZS5cbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIEZvbGRlZCBzdHlsZTogdXNlIGZhbmN5IHJ1bGVzIHRvIGhhbmRsZSBsaW5lIGJyZWFrcy5cbiAgICBpZiAoZm9sZGluZykge1xuXG4gICAgICAvLyBMaW5lcyBzdGFydGluZyB3aXRoIHdoaXRlIHNwYWNlIGNoYXJhY3RlcnMgKG1vcmUtaW5kZW50ZWQgbGluZXMpIGFyZSBub3QgZm9sZGVkLlxuICAgICAgaWYgKGlzX1dISVRFX1NQQUNFKGNoKSkge1xuICAgICAgICBhdE1vcmVJbmRlbnRlZCA9IHRydWU7XG4gICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCdcXG4nLCBlbXB0eUxpbmVzICsgMSk7XG5cbiAgICAgIC8vIEVuZCBvZiBtb3JlLWluZGVudGVkIGJsb2NrLlxuICAgICAgfSBlbHNlIGlmIChhdE1vcmVJbmRlbnRlZCkge1xuICAgICAgICBhdE1vcmVJbmRlbnRlZCA9IGZhbHNlO1xuICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgnXFxuJywgZW1wdHlMaW5lcyArIDEpO1xuXG4gICAgICAvLyBKdXN0IG9uZSBsaW5lIGJyZWFrIC0gcGVyY2VpdmUgYXMgdGhlIHNhbWUgbGluZS5cbiAgICAgIH0gZWxzZSBpZiAoMCA9PT0gZW1wdHlMaW5lcykge1xuICAgICAgICBpZiAoZGV0ZWN0ZWRJbmRlbnQpIHsgLy8gaS5lLiBvbmx5IGlmIHdlIGhhdmUgYWxyZWFkeSByZWFkIHNvbWUgc2NhbGFyIGNvbnRlbnQuXG4gICAgICAgICAgc3RhdGUucmVzdWx0ICs9ICcgJztcbiAgICAgICAgfVxuXG4gICAgICAvLyBTZXZlcmFsIGxpbmUgYnJlYWtzIC0gcGVyY2VpdmUgYXMgZGlmZmVyZW50IGxpbmVzLlxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoJ1xcbicsIGVtcHR5TGluZXMpO1xuICAgICAgfVxuXG4gICAgLy8gTGl0ZXJhbCBzdHlsZToganVzdCBhZGQgZXhhY3QgbnVtYmVyIG9mIGxpbmUgYnJlYWtzIGJldHdlZW4gY29udGVudCBsaW5lcy5cbiAgICB9IGVsc2UgaWYgKGRldGVjdGVkSW5kZW50KSB7XG4gICAgICAvLyBJZiBjdXJyZW50IGxpbmUgaXNuJ3QgdGhlIGZpcnN0IG9uZSAtIGNvdW50IGxpbmUgYnJlYWsgZnJvbSB0aGUgbGFzdCBjb250ZW50IGxpbmUuXG4gICAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgnXFxuJywgZW1wdHlMaW5lcyArIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJbiBjYXNlIG9mIHRoZSBmaXJzdCBjb250ZW50IGxpbmUgLSBjb3VudCBvbmx5IGVtcHR5IGxpbmVzLlxuICAgIH1cblxuICAgIGRldGVjdGVkSW5kZW50ID0gdHJ1ZTtcbiAgICBlbXB0eUxpbmVzID0gMDtcbiAgICBjYXB0dXJlU3RhcnQgPSBzdGF0ZS5wb3NpdGlvbjtcblxuICAgIHdoaWxlICghaXNfRU9MKGNoKSAmJiAoMCAhPT0gY2gpKSB7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgfVxuXG4gICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgc3RhdGUucG9zaXRpb24sIGZhbHNlKTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiByZWFkQmxvY2tTZXF1ZW5jZShzdGF0ZSwgbm9kZUluZGVudCkge1xuICB2YXIgX2xpbmUsXG4gICAgICBfdGFnICAgICAgPSBzdGF0ZS50YWcsXG4gICAgICBfYW5jaG9yICAgPSBzdGF0ZS5hbmNob3IsXG4gICAgICBfcmVzdWx0ICAgPSBbXSxcbiAgICAgIGZvbGxvd2luZyxcbiAgICAgIGRldGVjdGVkICA9IGZhbHNlLFxuICAgICAgY2g7XG5cbiAgaWYgKG51bGwgIT09IHN0YXRlLmFuY2hvcikge1xuICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gX3Jlc3VsdDtcbiAgfVxuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgd2hpbGUgKDAgIT09IGNoKSB7XG5cbiAgICBpZiAoMHgyRC8qIC0gKi8gIT09IGNoKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7XG5cbiAgICBpZiAoIWlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBkZXRlY3RlZCA9IHRydWU7XG4gICAgc3RhdGUucG9zaXRpb24rKztcblxuICAgIGlmIChza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSkpIHtcbiAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50IDw9IG5vZGVJbmRlbnQpIHtcbiAgICAgICAgX3Jlc3VsdC5wdXNoKG51bGwpO1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfbGluZSA9IHN0YXRlLmxpbmU7XG4gICAgY29tcG9zZU5vZGUoc3RhdGUsIG5vZGVJbmRlbnQsIENPTlRFWFRfQkxPQ0tfSU4sIGZhbHNlLCB0cnVlKTtcbiAgICBfcmVzdWx0LnB1c2goc3RhdGUucmVzdWx0KTtcbiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7XG5cbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gICAgaWYgKChzdGF0ZS5saW5lID09PSBfbGluZSB8fCBzdGF0ZS5saW5lSW5kZW50ID4gbm9kZUluZGVudCkgJiYgKDAgIT09IGNoKSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2JhZCBpbmRlbnRhdGlvbiBvZiBhIHNlcXVlbmNlIGVudHJ5Jyk7XG4gICAgfSBlbHNlIGlmIChzdGF0ZS5saW5lSW5kZW50IDwgbm9kZUluZGVudCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaWYgKGRldGVjdGVkKSB7XG4gICAgc3RhdGUudGFnID0gX3RhZztcbiAgICBzdGF0ZS5hbmNob3IgPSBfYW5jaG9yO1xuICAgIHN0YXRlLmtpbmQgPSAnc2VxdWVuY2UnO1xuICAgIHN0YXRlLnJlc3VsdCA9IF9yZXN1bHQ7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiByZWFkQmxvY2tNYXBwaW5nKHN0YXRlLCBub2RlSW5kZW50LCBmbG93SW5kZW50KSB7XG4gIHZhciBmb2xsb3dpbmcsXG4gICAgICBhbGxvd0NvbXBhY3QsXG4gICAgICBfbGluZSxcbiAgICAgIF90YWcgICAgICAgICAgPSBzdGF0ZS50YWcsXG4gICAgICBfYW5jaG9yICAgICAgID0gc3RhdGUuYW5jaG9yLFxuICAgICAgX3Jlc3VsdCAgICAgICA9IHt9LFxuICAgICAga2V5VGFnICAgICAgICA9IG51bGwsXG4gICAgICBrZXlOb2RlICAgICAgID0gbnVsbCxcbiAgICAgIHZhbHVlTm9kZSAgICAgPSBudWxsLFxuICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlLFxuICAgICAgZGV0ZWN0ZWQgICAgICA9IGZhbHNlLFxuICAgICAgY2g7XG5cbiAgaWYgKG51bGwgIT09IHN0YXRlLmFuY2hvcikge1xuICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gX3Jlc3VsdDtcbiAgfVxuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7XG5cbiAgd2hpbGUgKDAgIT09IGNoKSB7XG4gICAgZm9sbG93aW5nID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbiArIDEpO1xuICAgIF9saW5lID0gc3RhdGUubGluZTsgLy8gU2F2ZSB0aGUgY3VycmVudCBsaW5lLlxuXG4gICAgLy9cbiAgICAvLyBFeHBsaWNpdCBub3RhdGlvbiBjYXNlLiBUaGVyZSBhcmUgdHdvIHNlcGFyYXRlIGJsb2NrczpcbiAgICAvLyBmaXJzdCBmb3IgdGhlIGtleSAoZGVub3RlZCBieSBcIj9cIikgYW5kIHNlY29uZCBmb3IgdGhlIHZhbHVlIChkZW5vdGVkIGJ5IFwiOlwiKVxuICAgIC8vXG4gICAgaWYgKCgweDNGLyogPyAqLyA9PT0gY2ggfHwgMHgzQS8qIDogKi8gID09PSBjaCkgJiYgaXNfV1NfT1JfRU9MKGZvbGxvd2luZykpIHtcblxuICAgICAgaWYgKDB4M0YvKiA/ICovID09PSBjaCkge1xuICAgICAgICBpZiAoYXRFeHBsaWNpdEtleSkge1xuICAgICAgICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIGtleVRhZywga2V5Tm9kZSwgbnVsbCk7XG4gICAgICAgICAga2V5VGFnID0ga2V5Tm9kZSA9IHZhbHVlTm9kZSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBkZXRlY3RlZCA9IHRydWU7XG4gICAgICAgIGF0RXhwbGljaXRLZXkgPSB0cnVlO1xuICAgICAgICBhbGxvd0NvbXBhY3QgPSB0cnVlO1xuXG4gICAgICB9IGVsc2UgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgLy8gaS5lLiAweDNBLyogOiAqLyA9PT0gY2hhcmFjdGVyIGFmdGVyIHRoZSBleHBsaWNpdCBrZXkuXG4gICAgICAgIGF0RXhwbGljaXRLZXkgPSBmYWxzZTtcbiAgICAgICAgYWxsb3dDb21wYWN0ID0gdHJ1ZTtcblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2luY29tcGxldGUgZXhwbGljaXQgbWFwcGluZyBwYWlyOyBhIGtleSBub2RlIGlzIG1pc3NlZCcpO1xuICAgICAgfVxuXG4gICAgICBzdGF0ZS5wb3NpdGlvbiArPSAxO1xuICAgICAgY2ggPSBmb2xsb3dpbmc7XG5cbiAgICAvL1xuICAgIC8vIEltcGxpY2l0IG5vdGF0aW9uIGNhc2UuIEZsb3ctc3R5bGUgbm9kZSBhcyB0aGUga2V5IGZpcnN0LCB0aGVuIFwiOlwiLCBhbmQgdGhlIHZhbHVlLlxuICAgIC8vXG4gICAgfSBlbHNlIGlmIChjb21wb3NlTm9kZShzdGF0ZSwgZmxvd0luZGVudCwgQ09OVEVYVF9GTE9XX09VVCwgZmFsc2UsIHRydWUpKSB7XG5cbiAgICAgIGlmIChzdGF0ZS5saW5lID09PSBfbGluZSkge1xuICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gICAgICAgIHdoaWxlIChpc19XSElURV9TUEFDRShjaCkpIHtcbiAgICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoMHgzQS8qIDogKi8gPT09IGNoKSB7XG4gICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuXG4gICAgICAgICAgaWYgKCFpc19XU19PUl9FT0woY2gpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciBpcyBleHBlY3RlZCBhZnRlciB0aGUga2V5LXZhbHVlIHNlcGFyYXRvciB3aXRoaW4gYSBibG9jayBtYXBwaW5nJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIGtleVRhZywga2V5Tm9kZSwgbnVsbCk7XG4gICAgICAgICAgICBrZXlUYWcgPSBrZXlOb2RlID0gdmFsdWVOb2RlID0gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkZXRlY3RlZCA9IHRydWU7XG4gICAgICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlO1xuICAgICAgICAgIGFsbG93Q29tcGFjdCA9IGZhbHNlO1xuICAgICAgICAgIGtleVRhZyA9IHN0YXRlLnRhZztcbiAgICAgICAgICBrZXlOb2RlID0gc3RhdGUucmVzdWx0O1xuXG4gICAgICAgIH0gZWxzZSBpZiAoZGV0ZWN0ZWQpIHtcbiAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnY2FuIG5vdCByZWFkIGFuIGltcGxpY2l0IG1hcHBpbmcgcGFpcjsgYSBjb2xvbiBpcyBtaXNzZWQnKTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlLnRhZyA9IF90YWc7XG4gICAgICAgICAgc3RhdGUuYW5jaG9yID0gX2FuY2hvcjtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gS2VlcCB0aGUgcmVzdWx0IG9mIGBjb21wb3NlTm9kZWAuXG4gICAgICAgIH1cblxuICAgICAgfSBlbHNlIGlmIChkZXRlY3RlZCkge1xuICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnY2FuIG5vdCByZWFkIGEgYmxvY2sgbWFwcGluZyBlbnRyeTsgYSBtdWx0aWxpbmUga2V5IG1heSBub3QgYmUgYW4gaW1wbGljaXQga2V5Jyk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXRlLnRhZyA9IF90YWc7XG4gICAgICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7XG4gICAgICAgIHJldHVybiB0cnVlOyAvLyBLZWVwIHRoZSByZXN1bHQgb2YgYGNvbXBvc2VOb2RlYC5cbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICBicmVhazsgLy8gUmVhZGluZyBpcyBkb25lLiBHbyB0byB0aGUgZXBpbG9ndWUuXG4gICAgfVxuXG4gICAgLy9cbiAgICAvLyBDb21tb24gcmVhZGluZyBjb2RlIGZvciBib3RoIGV4cGxpY2l0IGFuZCBpbXBsaWNpdCBub3RhdGlvbnMuXG4gICAgLy9cbiAgICBpZiAoc3RhdGUubGluZSA9PT0gX2xpbmUgfHwgc3RhdGUubGluZUluZGVudCA+IG5vZGVJbmRlbnQpIHtcbiAgICAgIGlmIChjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9CTE9DS19PVVQsIHRydWUsIGFsbG93Q29tcGFjdCkpIHtcbiAgICAgICAgaWYgKGF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgICBrZXlOb2RlID0gc3RhdGUucmVzdWx0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbHVlTm9kZSA9IHN0YXRlLnJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWF0RXhwbGljaXRLZXkpIHtcbiAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwga2V5VGFnLCBrZXlOb2RlLCB2YWx1ZU5vZGUpO1xuICAgICAgICBrZXlUYWcgPSBrZXlOb2RlID0gdmFsdWVOb2RlID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoc3RhdGUubGluZUluZGVudCA+IG5vZGVJbmRlbnQgJiYgKDAgIT09IGNoKSkge1xuICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2JhZCBpbmRlbnRhdGlvbiBvZiBhIG1hcHBpbmcgZW50cnknKTtcbiAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCBub2RlSW5kZW50KSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvL1xuICAvLyBFcGlsb2d1ZS5cbiAgLy9cblxuICAvLyBTcGVjaWFsIGNhc2U6IGxhc3QgbWFwcGluZydzIG5vZGUgY29udGFpbnMgb25seSB0aGUga2V5IGluIGV4cGxpY2l0IG5vdGF0aW9uLlxuICBpZiAoYXRFeHBsaWNpdEtleSkge1xuICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIGtleVRhZywga2V5Tm9kZSwgbnVsbCk7XG4gIH1cblxuICAvLyBFeHBvc2UgdGhlIHJlc3VsdGluZyBtYXBwaW5nLlxuICBpZiAoZGV0ZWN0ZWQpIHtcbiAgICBzdGF0ZS50YWcgPSBfdGFnO1xuICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7XG4gICAgc3RhdGUua2luZCA9ICdtYXBwaW5nJztcbiAgICBzdGF0ZS5yZXN1bHQgPSBfcmVzdWx0O1xuICB9XG5cbiAgcmV0dXJuIGRldGVjdGVkO1xufVxuXG5mdW5jdGlvbiByZWFkVGFnUHJvcGVydHkoc3RhdGUpIHtcbiAgdmFyIF9wb3NpdGlvbixcbiAgICAgIGlzVmVyYmF0aW0gPSBmYWxzZSxcbiAgICAgIGlzTmFtZWQgICAgPSBmYWxzZSxcbiAgICAgIHRhZ0hhbmRsZSxcbiAgICAgIHRhZ05hbWUsXG4gICAgICBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmICgweDIxLyogISAqLyAhPT0gY2gpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAobnVsbCAhPT0gc3RhdGUudGFnKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2R1cGxpY2F0aW9uIG9mIGEgdGFnIHByb3BlcnR5Jyk7XG4gIH1cblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG5cbiAgaWYgKDB4M0MvKiA8ICovID09PSBjaCkge1xuICAgIGlzVmVyYmF0aW0gPSB0cnVlO1xuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcblxuICB9IGVsc2UgaWYgKDB4MjEvKiAhICovID09PSBjaCkge1xuICAgIGlzTmFtZWQgPSB0cnVlO1xuICAgIHRhZ0hhbmRsZSA9ICchISc7XG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuXG4gIH0gZWxzZSB7XG4gICAgdGFnSGFuZGxlID0gJyEnO1xuICB9XG5cbiAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247XG5cbiAgaWYgKGlzVmVyYmF0aW0pIHtcbiAgICBkbyB7IGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsgfVxuICAgIHdoaWxlICgwICE9PSBjaCAmJiAweDNFLyogPiAqLyAhPT0gY2gpO1xuXG4gICAgaWYgKHN0YXRlLnBvc2l0aW9uIDwgc3RhdGUubGVuZ3RoKSB7XG4gICAgICB0YWdOYW1lID0gc3RhdGUuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZS5wb3NpdGlvbik7XG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIHZlcmJhdGltIHRhZycpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB3aGlsZSAoMCAhPT0gY2ggJiYgIWlzX1dTX09SX0VPTChjaCkpIHtcblxuICAgICAgaWYgKDB4MjEvKiAhICovID09PSBjaCkge1xuICAgICAgICBpZiAoIWlzTmFtZWQpIHtcbiAgICAgICAgICB0YWdIYW5kbGUgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24gLSAxLCBzdGF0ZS5wb3NpdGlvbiArIDEpO1xuXG4gICAgICAgICAgaWYgKCFQQVRURVJOX1RBR19IQU5ETEUudGVzdCh0YWdIYW5kbGUpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnbmFtZWQgdGFnIGhhbmRsZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnMnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpc05hbWVkID0gdHJ1ZTtcbiAgICAgICAgICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbiArIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3RhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZXhjbGFtYXRpb24gbWFya3MnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gICAgfVxuXG4gICAgdGFnTmFtZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pO1xuXG4gICAgaWYgKFBBVFRFUk5fRkxPV19JTkRJQ0FUT1JTLnRlc3QodGFnTmFtZSkpIHtcbiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd0YWcgc3VmZml4IGNhbm5vdCBjb250YWluIGZsb3cgaW5kaWNhdG9yIGNoYXJhY3RlcnMnKTtcbiAgICB9XG4gIH1cblxuICBpZiAodGFnTmFtZSAmJiAhUEFUVEVSTl9UQUdfVVJJLnRlc3QodGFnTmFtZSkpIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAndGFnIG5hbWUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzOiAnICsgdGFnTmFtZSk7XG4gIH1cblxuICBpZiAoaXNWZXJiYXRpbSkge1xuICAgIHN0YXRlLnRhZyA9IHRhZ05hbWU7XG5cbiAgfSBlbHNlIGlmIChfaGFzT3duUHJvcGVydHkuY2FsbChzdGF0ZS50YWdNYXAsIHRhZ0hhbmRsZSkpIHtcbiAgICBzdGF0ZS50YWcgPSBzdGF0ZS50YWdNYXBbdGFnSGFuZGxlXSArIHRhZ05hbWU7XG5cbiAgfSBlbHNlIGlmICgnIScgPT09IHRhZ0hhbmRsZSkge1xuICAgIHN0YXRlLnRhZyA9ICchJyArIHRhZ05hbWU7XG5cbiAgfSBlbHNlIGlmICgnISEnID09PSB0YWdIYW5kbGUpIHtcbiAgICBzdGF0ZS50YWcgPSAndGFnOnlhbWwub3JnLDIwMDI6JyArIHRhZ05hbWU7XG5cbiAgfSBlbHNlIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAndW5kZWNsYXJlZCB0YWcgaGFuZGxlIFwiJyArIHRhZ0hhbmRsZSArICdcIicpO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHJlYWRBbmNob3JQcm9wZXJ0eShzdGF0ZSkge1xuICB2YXIgX3Bvc2l0aW9uLFxuICAgICAgY2g7XG5cbiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICBpZiAoMHgyNi8qICYgKi8gIT09IGNoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKG51bGwgIT09IHN0YXRlLmFuY2hvcikge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICdkdXBsaWNhdGlvbiBvZiBhbiBhbmNob3IgcHJvcGVydHknKTtcbiAgfVxuXG4gIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247XG5cbiAgd2hpbGUgKDAgIT09IGNoICYmICFpc19XU19PUl9FT0woY2gpICYmICFpc19GTE9XX0lORElDQVRPUihjaCkpIHtcbiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gIH1cblxuICBpZiAoc3RhdGUucG9zaXRpb24gPT09IF9wb3NpdGlvbikge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICduYW1lIG9mIGFuIGFuY2hvciBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyJyk7XG4gIH1cblxuICBzdGF0ZS5hbmNob3IgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlLnBvc2l0aW9uKTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIHJlYWRBbGlhcyhzdGF0ZSkge1xuICB2YXIgX3Bvc2l0aW9uLCBhbGlhcyxcbiAgICAgIGxlbiA9IHN0YXRlLmxlbmd0aCxcbiAgICAgIGlucHV0ID0gc3RhdGUuaW5wdXQsXG4gICAgICBjaDtcblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmICgweDJBLyogKiAqLyAhPT0gY2gpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7XG4gIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gIHdoaWxlICgwICE9PSBjaCAmJiAhaXNfV1NfT1JfRU9MKGNoKSAmJiAhaXNfRkxPV19JTkRJQ0FUT1IoY2gpKSB7XG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICB9XG5cbiAgaWYgKHN0YXRlLnBvc2l0aW9uID09PSBfcG9zaXRpb24pIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAnbmFtZSBvZiBhbiBhbGlhcyBub2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyJyk7XG4gIH1cblxuICBhbGlhcyA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pO1xuXG4gIGlmICghc3RhdGUuYW5jaG9yTWFwLmhhc093blByb3BlcnR5KGFsaWFzKSkge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmlkZW50aWZpZWQgYWxpYXMgXCInICsgYWxpYXMgKyAnXCInKTtcbiAgfVxuXG4gIHN0YXRlLnJlc3VsdCA9IHN0YXRlLmFuY2hvck1hcFthbGlhc107XG4gIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNvbXBvc2VOb2RlKHN0YXRlLCBwYXJlbnRJbmRlbnQsIG5vZGVDb250ZXh0LCBhbGxvd1RvU2VlaywgYWxsb3dDb21wYWN0KSB7XG4gIHZhciBhbGxvd0Jsb2NrU3R5bGVzLFxuICAgICAgYWxsb3dCbG9ja1NjYWxhcnMsXG4gICAgICBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMsXG4gICAgICBpbmRlbnRTdGF0dXMgPSAxLCAvLyAxOiB0aGlzPnBhcmVudCwgMDogdGhpcz1wYXJlbnQsIC0xOiB0aGlzPHBhcmVudFxuICAgICAgYXROZXdMaW5lICA9IGZhbHNlLFxuICAgICAgaGFzQ29udGVudCA9IGZhbHNlLFxuICAgICAgdHlwZUluZGV4LFxuICAgICAgdHlwZVF1YW50aXR5LFxuICAgICAgdHlwZSxcbiAgICAgIGZsb3dJbmRlbnQsXG4gICAgICBibG9ja0luZGVudCxcbiAgICAgIF9yZXN1bHQ7XG5cbiAgc3RhdGUudGFnICAgID0gbnVsbDtcbiAgc3RhdGUuYW5jaG9yID0gbnVsbDtcbiAgc3RhdGUua2luZCAgID0gbnVsbDtcbiAgc3RhdGUucmVzdWx0ID0gbnVsbDtcblxuICBhbGxvd0Jsb2NrU3R5bGVzID0gYWxsb3dCbG9ja1NjYWxhcnMgPSBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgPVxuICAgIENPTlRFWFRfQkxPQ0tfT1VUID09PSBub2RlQ29udGV4dCB8fFxuICAgIENPTlRFWFRfQkxPQ0tfSU4gID09PSBub2RlQ29udGV4dDtcblxuICBpZiAoYWxsb3dUb1NlZWspIHtcbiAgICBpZiAoc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpKSB7XG4gICAgICBhdE5ld0xpbmUgPSB0cnVlO1xuXG4gICAgICBpZiAoc3RhdGUubGluZUluZGVudCA+IHBhcmVudEluZGVudCkge1xuICAgICAgICBpbmRlbnRTdGF0dXMgPSAxO1xuICAgICAgfSBlbHNlIGlmIChzdGF0ZS5saW5lSW5kZW50ID09PSBwYXJlbnRJbmRlbnQpIHtcbiAgICAgICAgaW5kZW50U3RhdHVzID0gMDtcbiAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA8IHBhcmVudEluZGVudCkge1xuICAgICAgICBpbmRlbnRTdGF0dXMgPSAtMTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoMSA9PT0gaW5kZW50U3RhdHVzKSB7XG4gICAgd2hpbGUgKHJlYWRUYWdQcm9wZXJ0eShzdGF0ZSkgfHwgcmVhZEFuY2hvclByb3BlcnR5KHN0YXRlKSkge1xuICAgICAgaWYgKHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKSkge1xuICAgICAgICBhdE5ld0xpbmUgPSB0cnVlO1xuICAgICAgICBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgPSBhbGxvd0Jsb2NrU3R5bGVzO1xuXG4gICAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID4gcGFyZW50SW5kZW50KSB7XG4gICAgICAgICAgaW5kZW50U3RhdHVzID0gMTtcbiAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS5saW5lSW5kZW50ID09PSBwYXJlbnRJbmRlbnQpIHtcbiAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAwO1xuICAgICAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCBwYXJlbnRJbmRlbnQpIHtcbiAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAtMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWxsb3dCbG9ja0NvbGxlY3Rpb25zID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGFsbG93QmxvY2tDb2xsZWN0aW9ucykge1xuICAgIGFsbG93QmxvY2tDb2xsZWN0aW9ucyA9IGF0TmV3TGluZSB8fCBhbGxvd0NvbXBhY3Q7XG4gIH1cblxuICBpZiAoMSA9PT0gaW5kZW50U3RhdHVzIHx8IENPTlRFWFRfQkxPQ0tfT1VUID09PSBub2RlQ29udGV4dCkge1xuICAgIGlmIChDT05URVhUX0ZMT1dfSU4gPT09IG5vZGVDb250ZXh0IHx8IENPTlRFWFRfRkxPV19PVVQgPT09IG5vZGVDb250ZXh0KSB7XG4gICAgICBmbG93SW5kZW50ID0gcGFyZW50SW5kZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICBmbG93SW5kZW50ID0gcGFyZW50SW5kZW50ICsgMTtcbiAgICB9XG5cbiAgICBibG9ja0luZGVudCA9IHN0YXRlLnBvc2l0aW9uIC0gc3RhdGUubGluZVN0YXJ0O1xuXG4gICAgaWYgKDEgPT09IGluZGVudFN0YXR1cykge1xuICAgICAgaWYgKGFsbG93QmxvY2tDb2xsZWN0aW9ucyAmJlxuICAgICAgICAgIChyZWFkQmxvY2tTZXF1ZW5jZShzdGF0ZSwgYmxvY2tJbmRlbnQpIHx8XG4gICAgICAgICAgIHJlYWRCbG9ja01hcHBpbmcoc3RhdGUsIGJsb2NrSW5kZW50LCBmbG93SW5kZW50KSkgfHxcbiAgICAgICAgICByZWFkRmxvd0NvbGxlY3Rpb24oc3RhdGUsIGZsb3dJbmRlbnQpKSB7XG4gICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKChhbGxvd0Jsb2NrU2NhbGFycyAmJiByZWFkQmxvY2tTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpKSB8fFxuICAgICAgICAgICAgcmVhZFNpbmdsZVF1b3RlZFNjYWxhcihzdGF0ZSwgZmxvd0luZGVudCkgfHxcbiAgICAgICAgICAgIHJlYWREb3VibGVRdW90ZWRTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpKSB7XG4gICAgICAgICAgaGFzQ29udGVudCA9IHRydWU7XG5cbiAgICAgICAgfSBlbHNlIGlmIChyZWFkQWxpYXMoc3RhdGUpKSB7XG4gICAgICAgICAgaGFzQ29udGVudCA9IHRydWU7XG5cbiAgICAgICAgICBpZiAobnVsbCAhPT0gc3RhdGUudGFnIHx8IG51bGwgIT09IHN0YXRlLmFuY2hvcikge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2FsaWFzIG5vZGUgc2hvdWxkIG5vdCBoYXZlIGFueSBwcm9wZXJ0aWVzJyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH0gZWxzZSBpZiAocmVhZFBsYWluU2NhbGFyKHN0YXRlLCBmbG93SW5kZW50LCBDT05URVhUX0ZMT1dfSU4gPT09IG5vZGVDb250ZXh0KSkge1xuICAgICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlO1xuXG4gICAgICAgICAgaWYgKG51bGwgPT09IHN0YXRlLnRhZykge1xuICAgICAgICAgICAgc3RhdGUudGFnID0gJz8nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChudWxsICE9PSBzdGF0ZS5hbmNob3IpIHtcbiAgICAgICAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IHN0YXRlLnJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoMCA9PT0gaW5kZW50U3RhdHVzKSB7XG4gICAgICAvLyBTcGVjaWFsIGNhc2U6IGJsb2NrIHNlcXVlbmNlcyBhcmUgYWxsb3dlZCB0byBoYXZlIHNhbWUgaW5kZW50YXRpb24gbGV2ZWwgYXMgdGhlIHBhcmVudC5cbiAgICAgIC8vIGh0dHA6Ly93d3cueWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI2lkMjc5OTc4NFxuICAgICAgaGFzQ29udGVudCA9IGFsbG93QmxvY2tDb2xsZWN0aW9ucyAmJiByZWFkQmxvY2tTZXF1ZW5jZShzdGF0ZSwgYmxvY2tJbmRlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChudWxsICE9PSBzdGF0ZS50YWcgJiYgJyEnICE9PSBzdGF0ZS50YWcpIHtcbiAgICBpZiAoJz8nID09PSBzdGF0ZS50YWcpIHtcbiAgICAgIGZvciAodHlwZUluZGV4ID0gMCwgdHlwZVF1YW50aXR5ID0gc3RhdGUuaW1wbGljaXRUeXBlcy5sZW5ndGg7XG4gICAgICAgICAgIHR5cGVJbmRleCA8IHR5cGVRdWFudGl0eTtcbiAgICAgICAgICAgdHlwZUluZGV4ICs9IDEpIHtcbiAgICAgICAgdHlwZSA9IHN0YXRlLmltcGxpY2l0VHlwZXNbdHlwZUluZGV4XTtcblxuICAgICAgICAvLyBJbXBsaWNpdCByZXNvbHZpbmcgaXMgbm90IGFsbG93ZWQgZm9yIG5vbi1zY2FsYXIgdHlwZXMsIGFuZCAnPydcbiAgICAgICAgLy8gbm9uLXNwZWNpZmljIHRhZyBpcyBvbmx5IGFzc2lnbmVkIHRvIHBsYWluIHNjYWxhcnMuIFNvLCBpdCBpc24ndFxuICAgICAgICAvLyBuZWVkZWQgdG8gY2hlY2sgZm9yICdraW5kJyBjb25mb3JtaXR5LlxuXG4gICAgICAgIGlmICh0eXBlLnJlc29sdmUoc3RhdGUucmVzdWx0KSkgeyAvLyBgc3RhdGUucmVzdWx0YCB1cGRhdGVkIGluIHJlc29sdmVyIGlmIG1hdGNoZWRcbiAgICAgICAgICBzdGF0ZS5yZXN1bHQgPSB0eXBlLmNvbnN0cnVjdChzdGF0ZS5yZXN1bHQpO1xuICAgICAgICAgIHN0YXRlLnRhZyA9IHR5cGUudGFnO1xuICAgICAgICAgIGlmIChudWxsICE9PSBzdGF0ZS5hbmNob3IpIHtcbiAgICAgICAgICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gc3RhdGUucmVzdWx0O1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoX2hhc093blByb3BlcnR5LmNhbGwoc3RhdGUudHlwZU1hcCwgc3RhdGUudGFnKSkge1xuICAgICAgdHlwZSA9IHN0YXRlLnR5cGVNYXBbc3RhdGUudGFnXTtcblxuICAgICAgaWYgKG51bGwgIT09IHN0YXRlLnJlc3VsdCAmJiB0eXBlLmtpbmQgIT09IHN0YXRlLmtpbmQpIHtcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuYWNjZXB0YWJsZSBub2RlIGtpbmQgZm9yICE8JyArIHN0YXRlLnRhZyArICc+IHRhZzsgaXQgc2hvdWxkIGJlIFwiJyArIHR5cGUua2luZCArICdcIiwgbm90IFwiJyArIHN0YXRlLmtpbmQgKyAnXCInKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0eXBlLnJlc29sdmUoc3RhdGUucmVzdWx0KSkgeyAvLyBgc3RhdGUucmVzdWx0YCB1cGRhdGVkIGluIHJlc29sdmVyIGlmIG1hdGNoZWRcbiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ2Nhbm5vdCByZXNvbHZlIGEgbm9kZSB3aXRoICE8JyArIHN0YXRlLnRhZyArICc+IGV4cGxpY2l0IHRhZycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdGUucmVzdWx0ID0gdHlwZS5jb25zdHJ1Y3Qoc3RhdGUucmVzdWx0KTtcbiAgICAgICAgaWYgKG51bGwgIT09IHN0YXRlLmFuY2hvcikge1xuICAgICAgICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gc3RhdGUucmVzdWx0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93V2FybmluZyhzdGF0ZSwgJ3Vua25vd24gdGFnICE8JyArIHN0YXRlLnRhZyArICc+Jyk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGwgIT09IHN0YXRlLnRhZyB8fCBudWxsICE9PSBzdGF0ZS5hbmNob3IgfHwgaGFzQ29udGVudDtcbn1cblxuZnVuY3Rpb24gcmVhZERvY3VtZW50KHN0YXRlKSB7XG4gIHZhciBkb2N1bWVudFN0YXJ0ID0gc3RhdGUucG9zaXRpb24sXG4gICAgICBfcG9zaXRpb24sXG4gICAgICBkaXJlY3RpdmVOYW1lLFxuICAgICAgZGlyZWN0aXZlQXJncyxcbiAgICAgIGhhc0RpcmVjdGl2ZXMgPSBmYWxzZSxcbiAgICAgIGNoO1xuXG4gIHN0YXRlLnZlcnNpb24gPSBudWxsO1xuICBzdGF0ZS5jaGVja0xpbmVCcmVha3MgPSBzdGF0ZS5sZWdhY3k7XG4gIHN0YXRlLnRhZ01hcCA9IHt9O1xuICBzdGF0ZS5hbmNob3JNYXAgPSB7fTtcblxuICB3aGlsZSAoMCAhPT0gKGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikpKSB7XG4gICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuXG4gICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTtcblxuICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID4gMCB8fCAweDI1LyogJSAqLyAhPT0gY2gpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGhhc0RpcmVjdGl2ZXMgPSB0cnVlO1xuICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjtcblxuICAgIHdoaWxlICgwICE9PSBjaCAmJiAhaXNfV1NfT1JfRU9MKGNoKSkge1xuICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgIH1cblxuICAgIGRpcmVjdGl2ZU5hbWUgPSBzdGF0ZS5pbnB1dC5zbGljZShfcG9zaXRpb24sIHN0YXRlLnBvc2l0aW9uKTtcbiAgICBkaXJlY3RpdmVBcmdzID0gW107XG5cbiAgICBpZiAoZGlyZWN0aXZlTmFtZS5sZW5ndGggPCAxKSB7XG4gICAgICB0aHJvd0Vycm9yKHN0YXRlLCAnZGlyZWN0aXZlIG5hbWUgbXVzdCBub3QgYmUgbGVzcyB0aGFuIG9uZSBjaGFyYWN0ZXIgaW4gbGVuZ3RoJyk7XG4gICAgfVxuXG4gICAgd2hpbGUgKDAgIT09IGNoKSB7XG4gICAgICB3aGlsZSAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7XG4gICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTtcbiAgICAgIH1cblxuICAgICAgaWYgKDB4MjMvKiAjICovID09PSBjaCkge1xuICAgICAgICBkbyB7IGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsgfVxuICAgICAgICB3aGlsZSAoMCAhPT0gY2ggJiYgIWlzX0VPTChjaCkpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgaWYgKGlzX0VPTChjaCkpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uO1xuXG4gICAgICB3aGlsZSAoMCAhPT0gY2ggJiYgIWlzX1dTX09SX0VPTChjaCkpIHtcbiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pO1xuICAgICAgfVxuXG4gICAgICBkaXJlY3RpdmVBcmdzLnB1c2goc3RhdGUuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZS5wb3NpdGlvbikpO1xuICAgIH1cblxuICAgIGlmICgwICE9PSBjaCkge1xuICAgICAgcmVhZExpbmVCcmVhayhzdGF0ZSk7XG4gICAgfVxuXG4gICAgaWYgKF9oYXNPd25Qcm9wZXJ0eS5jYWxsKGRpcmVjdGl2ZUhhbmRsZXJzLCBkaXJlY3RpdmVOYW1lKSkge1xuICAgICAgZGlyZWN0aXZlSGFuZGxlcnNbZGlyZWN0aXZlTmFtZV0oc3RhdGUsIGRpcmVjdGl2ZU5hbWUsIGRpcmVjdGl2ZUFyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvd1dhcm5pbmcoc3RhdGUsICd1bmtub3duIGRvY3VtZW50IGRpcmVjdGl2ZSBcIicgKyBkaXJlY3RpdmVOYW1lICsgJ1wiJyk7XG4gICAgfVxuICB9XG5cbiAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpO1xuXG4gIGlmICgwID09PSBzdGF0ZS5saW5lSW5kZW50ICYmXG4gICAgICAweDJELyogLSAqLyA9PT0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikgJiZcbiAgICAgIDB4MkQvKiAtICovID09PSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSkgJiZcbiAgICAgIDB4MkQvKiAtICovID09PSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMikpIHtcbiAgICBzdGF0ZS5wb3NpdGlvbiArPSAzO1xuICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTtcblxuICB9IGVsc2UgaWYgKGhhc0RpcmVjdGl2ZXMpIHtcbiAgICB0aHJvd0Vycm9yKHN0YXRlLCAnZGlyZWN0aXZlcyBlbmQgbWFyayBpcyBleHBlY3RlZCcpO1xuICB9XG5cbiAgY29tcG9zZU5vZGUoc3RhdGUsIHN0YXRlLmxpbmVJbmRlbnQgLSAxLCBDT05URVhUX0JMT0NLX09VVCwgZmFsc2UsIHRydWUpO1xuICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7XG5cbiAgaWYgKHN0YXRlLmNoZWNrTGluZUJyZWFrcyAmJlxuICAgICAgUEFUVEVSTl9OT05fQVNDSUlfTElORV9CUkVBS1MudGVzdChzdGF0ZS5pbnB1dC5zbGljZShkb2N1bWVudFN0YXJ0LCBzdGF0ZS5wb3NpdGlvbikpKSB7XG4gICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAnbm9uLUFTQ0lJIGxpbmUgYnJlYWtzIGFyZSBpbnRlcnByZXRlZCBhcyBjb250ZW50Jyk7XG4gIH1cblxuICBzdGF0ZS5kb2N1bWVudHMucHVzaChzdGF0ZS5yZXN1bHQpO1xuXG4gIGlmIChzdGF0ZS5wb3NpdGlvbiA9PT0gc3RhdGUubGluZVN0YXJ0ICYmIHRlc3REb2N1bWVudFNlcGFyYXRvcihzdGF0ZSkpIHtcblxuICAgIGlmICgweDJFLyogLiAqLyA9PT0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikpIHtcbiAgICAgIHN0YXRlLnBvc2l0aW9uICs9IDM7XG4gICAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChzdGF0ZS5wb3NpdGlvbiA8IChzdGF0ZS5sZW5ndGggLSAxKSkge1xuICAgIHRocm93RXJyb3Ioc3RhdGUsICdlbmQgb2YgdGhlIHN0cmVhbSBvciBhIGRvY3VtZW50IHNlcGFyYXRvciBpcyBleHBlY3RlZCcpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybjtcbiAgfVxufVxuXG5cbmZ1bmN0aW9uIGxvYWREb2N1bWVudHMoaW5wdXQsIG9wdGlvbnMpIHtcbiAgaW5wdXQgPSBTdHJpbmcoaW5wdXQpO1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICBpZiAoaW5wdXQubGVuZ3RoICE9PSAwKSB7XG5cbiAgICAvLyBBZGQgdGFpbGluZyBgXFxuYCBpZiBub3QgZXhpc3RzXG4gICAgaWYgKDB4MEEvKiBMRiAqLyAhPT0gaW5wdXQuY2hhckNvZGVBdChpbnB1dC5sZW5ndGggLSAxKSAmJlxuICAgICAgICAweDBELyogQ1IgKi8gIT09IGlucHV0LmNoYXJDb2RlQXQoaW5wdXQubGVuZ3RoIC0gMSkpIHtcbiAgICAgIGlucHV0ICs9ICdcXG4nO1xuICAgIH1cblxuICAgIC8vIFN0cmlwIEJPTVxuICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KDApID09PSAweEZFRkYpIHtcbiAgICAgIGlucHV0ID0gaW5wdXQuc2xpY2UoMSk7XG4gICAgfVxuICB9XG5cbiAgdmFyIHN0YXRlID0gbmV3IFN0YXRlKGlucHV0LCBvcHRpb25zKTtcblxuICBpZiAoUEFUVEVSTl9OT05fUFJJTlRBQkxFLnRlc3Qoc3RhdGUuaW5wdXQpKSB7XG4gICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3RoZSBzdHJlYW0gY29udGFpbnMgbm9uLXByaW50YWJsZSBjaGFyYWN0ZXJzJyk7XG4gIH1cblxuICAvLyBVc2UgMCBhcyBzdHJpbmcgdGVybWluYXRvci4gVGhhdCBzaWduaWZpY2FudGx5IHNpbXBsaWZpZXMgYm91bmRzIGNoZWNrLlxuICBzdGF0ZS5pbnB1dCArPSAnXFwwJztcblxuICB3aGlsZSAoMHgyMC8qIFNwYWNlICovID09PSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkge1xuICAgIHN0YXRlLmxpbmVJbmRlbnQgKz0gMTtcbiAgICBzdGF0ZS5wb3NpdGlvbiArPSAxO1xuICB9XG5cbiAgd2hpbGUgKHN0YXRlLnBvc2l0aW9uIDwgKHN0YXRlLmxlbmd0aCAtIDEpKSB7XG4gICAgcmVhZERvY3VtZW50KHN0YXRlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZS5kb2N1bWVudHM7XG59XG5cblxuZnVuY3Rpb24gbG9hZEFsbChpbnB1dCwgaXRlcmF0b3IsIG9wdGlvbnMpIHtcbiAgdmFyIGRvY3VtZW50cyA9IGxvYWREb2N1bWVudHMoaW5wdXQsIG9wdGlvbnMpLCBpbmRleCwgbGVuZ3RoO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBkb2N1bWVudHMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIGl0ZXJhdG9yKGRvY3VtZW50c1tpbmRleF0pO1xuICB9XG59XG5cblxuZnVuY3Rpb24gbG9hZChpbnB1dCwgb3B0aW9ucykge1xuICB2YXIgZG9jdW1lbnRzID0gbG9hZERvY3VtZW50cyhpbnB1dCwgb3B0aW9ucyksIGluZGV4LCBsZW5ndGg7XG5cbiAgaWYgKDAgPT09IGRvY3VtZW50cy5sZW5ndGgpIHtcbiAgICAvKmVzbGludC1kaXNhYmxlIG5vLXVuZGVmaW5lZCovXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfSBlbHNlIGlmICgxID09PSBkb2N1bWVudHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50c1swXTtcbiAgfVxuICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignZXhwZWN0ZWQgYSBzaW5nbGUgZG9jdW1lbnQgaW4gdGhlIHN0cmVhbSwgYnV0IGZvdW5kIG1vcmUnKTtcbn1cblxuXG5mdW5jdGlvbiBzYWZlTG9hZEFsbChpbnB1dCwgb3V0cHV0LCBvcHRpb25zKSB7XG4gIGxvYWRBbGwoaW5wdXQsIG91dHB1dCwgY29tbW9uLmV4dGVuZCh7IHNjaGVtYTogREVGQVVMVF9TQUZFX1NDSEVNQSB9LCBvcHRpb25zKSk7XG59XG5cblxuZnVuY3Rpb24gc2FmZUxvYWQoaW5wdXQsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGxvYWQoaW5wdXQsIGNvbW1vbi5leHRlbmQoeyBzY2hlbWE6IERFRkFVTFRfU0FGRV9TQ0hFTUEgfSwgb3B0aW9ucykpO1xufVxuXG5cbm1vZHVsZS5leHBvcnRzLmxvYWRBbGwgICAgID0gbG9hZEFsbDtcbm1vZHVsZS5leHBvcnRzLmxvYWQgICAgICAgID0gbG9hZDtcbm1vZHVsZS5leHBvcnRzLnNhZmVMb2FkQWxsID0gc2FmZUxvYWRBbGw7XG5tb2R1bGUuZXhwb3J0cy5zYWZlTG9hZCAgICA9IHNhZmVMb2FkO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG5cbnZhciBjb21tb24gPSByZXF1aXJlKCcuL2NvbW1vbicpO1xuXG5cbmZ1bmN0aW9uIE1hcmsobmFtZSwgYnVmZmVyLCBwb3NpdGlvbiwgbGluZSwgY29sdW1uKSB7XG4gIHRoaXMubmFtZSAgICAgPSBuYW1lO1xuICB0aGlzLmJ1ZmZlciAgID0gYnVmZmVyO1xuICB0aGlzLnBvc2l0aW9uID0gcG9zaXRpb247XG4gIHRoaXMubGluZSAgICAgPSBsaW5lO1xuICB0aGlzLmNvbHVtbiAgID0gY29sdW1uO1xufVxuXG5cbk1hcmsucHJvdG90eXBlLmdldFNuaXBwZXQgPSBmdW5jdGlvbiBnZXRTbmlwcGV0KGluZGVudCwgbWF4TGVuZ3RoKSB7XG4gIHZhciBoZWFkLCBzdGFydCwgdGFpbCwgZW5kLCBzbmlwcGV0O1xuXG4gIGlmICghdGhpcy5idWZmZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGluZGVudCA9IGluZGVudCB8fCA0O1xuICBtYXhMZW5ndGggPSBtYXhMZW5ndGggfHwgNzU7XG5cbiAgaGVhZCA9ICcnO1xuICBzdGFydCA9IHRoaXMucG9zaXRpb247XG5cbiAgd2hpbGUgKHN0YXJ0ID4gMCAmJiAtMSA9PT0gJ1xceDAwXFxyXFxuXFx4ODVcXHUyMDI4XFx1MjAyOScuaW5kZXhPZih0aGlzLmJ1ZmZlci5jaGFyQXQoc3RhcnQgLSAxKSkpIHtcbiAgICBzdGFydCAtPSAxO1xuICAgIGlmICh0aGlzLnBvc2l0aW9uIC0gc3RhcnQgPiAobWF4TGVuZ3RoIC8gMiAtIDEpKSB7XG4gICAgICBoZWFkID0gJyAuLi4gJztcbiAgICAgIHN0YXJ0ICs9IDU7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICB0YWlsID0gJyc7XG4gIGVuZCA9IHRoaXMucG9zaXRpb247XG5cbiAgd2hpbGUgKGVuZCA8IHRoaXMuYnVmZmVyLmxlbmd0aCAmJiAtMSA9PT0gJ1xceDAwXFxyXFxuXFx4ODVcXHUyMDI4XFx1MjAyOScuaW5kZXhPZih0aGlzLmJ1ZmZlci5jaGFyQXQoZW5kKSkpIHtcbiAgICBlbmQgKz0gMTtcbiAgICBpZiAoZW5kIC0gdGhpcy5wb3NpdGlvbiA+IChtYXhMZW5ndGggLyAyIC0gMSkpIHtcbiAgICAgIHRhaWwgPSAnIC4uLiAnO1xuICAgICAgZW5kIC09IDU7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBzbmlwcGV0ID0gdGhpcy5idWZmZXIuc2xpY2Uoc3RhcnQsIGVuZCk7XG5cbiAgcmV0dXJuIGNvbW1vbi5yZXBlYXQoJyAnLCBpbmRlbnQpICsgaGVhZCArIHNuaXBwZXQgKyB0YWlsICsgJ1xcbicgK1xuICAgICAgICAgY29tbW9uLnJlcGVhdCgnICcsIGluZGVudCArIHRoaXMucG9zaXRpb24gLSBzdGFydCArIGhlYWQubGVuZ3RoKSArICdeJztcbn07XG5cblxuTWFyay5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZyhjb21wYWN0KSB7XG4gIHZhciBzbmlwcGV0LCB3aGVyZSA9ICcnO1xuXG4gIGlmICh0aGlzLm5hbWUpIHtcbiAgICB3aGVyZSArPSAnaW4gXCInICsgdGhpcy5uYW1lICsgJ1wiICc7XG4gIH1cblxuICB3aGVyZSArPSAnYXQgbGluZSAnICsgKHRoaXMubGluZSArIDEpICsgJywgY29sdW1uICcgKyAodGhpcy5jb2x1bW4gKyAxKTtcblxuICBpZiAoIWNvbXBhY3QpIHtcbiAgICBzbmlwcGV0ID0gdGhpcy5nZXRTbmlwcGV0KCk7XG5cbiAgICBpZiAoc25pcHBldCkge1xuICAgICAgd2hlcmUgKz0gJzpcXG4nICsgc25pcHBldDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gd2hlcmU7XG59O1xuXG5cbm1vZHVsZS5leHBvcnRzID0gTWFyaztcbiIsIid1c2Ugc3RyaWN0JztcblxuLyplc2xpbnQtZGlzYWJsZSBtYXgtbGVuKi9cblxudmFyIGNvbW1vbiAgICAgICAgPSByZXF1aXJlKCcuL2NvbW1vbicpO1xudmFyIFlBTUxFeGNlcHRpb24gPSByZXF1aXJlKCcuL2V4Y2VwdGlvbicpO1xudmFyIFR5cGUgICAgICAgICAgPSByZXF1aXJlKCcuL3R5cGUnKTtcblxuXG5mdW5jdGlvbiBjb21waWxlTGlzdChzY2hlbWEsIG5hbWUsIHJlc3VsdCkge1xuICB2YXIgZXhjbHVkZSA9IFtdO1xuXG4gIHNjaGVtYS5pbmNsdWRlLmZvckVhY2goZnVuY3Rpb24gKGluY2x1ZGVkU2NoZW1hKSB7XG4gICAgcmVzdWx0ID0gY29tcGlsZUxpc3QoaW5jbHVkZWRTY2hlbWEsIG5hbWUsIHJlc3VsdCk7XG4gIH0pO1xuXG4gIHNjaGVtYVtuYW1lXS5mb3JFYWNoKGZ1bmN0aW9uIChjdXJyZW50VHlwZSkge1xuICAgIHJlc3VsdC5mb3JFYWNoKGZ1bmN0aW9uIChwcmV2aW91c1R5cGUsIHByZXZpb3VzSW5kZXgpIHtcbiAgICAgIGlmIChwcmV2aW91c1R5cGUudGFnID09PSBjdXJyZW50VHlwZS50YWcpIHtcbiAgICAgICAgZXhjbHVkZS5wdXNoKHByZXZpb3VzSW5kZXgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmVzdWx0LnB1c2goY3VycmVudFR5cGUpO1xuICB9KTtcblxuICByZXR1cm4gcmVzdWx0LmZpbHRlcihmdW5jdGlvbiAodHlwZSwgaW5kZXgpIHtcbiAgICByZXR1cm4gLTEgPT09IGV4Y2x1ZGUuaW5kZXhPZihpbmRleCk7XG4gIH0pO1xufVxuXG5cbmZ1bmN0aW9uIGNvbXBpbGVNYXAoLyogbGlzdHMuLi4gKi8pIHtcbiAgdmFyIHJlc3VsdCA9IHt9LCBpbmRleCwgbGVuZ3RoO1xuXG4gIGZ1bmN0aW9uIGNvbGxlY3RUeXBlKHR5cGUpIHtcbiAgICByZXN1bHRbdHlwZS50YWddID0gdHlwZTtcbiAgfVxuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIGFyZ3VtZW50c1tpbmRleF0uZm9yRWFjaChjb2xsZWN0VHlwZSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5cbmZ1bmN0aW9uIFNjaGVtYShkZWZpbml0aW9uKSB7XG4gIHRoaXMuaW5jbHVkZSAgPSBkZWZpbml0aW9uLmluY2x1ZGUgIHx8IFtdO1xuICB0aGlzLmltcGxpY2l0ID0gZGVmaW5pdGlvbi5pbXBsaWNpdCB8fCBbXTtcbiAgdGhpcy5leHBsaWNpdCA9IGRlZmluaXRpb24uZXhwbGljaXQgfHwgW107XG5cbiAgdGhpcy5pbXBsaWNpdC5mb3JFYWNoKGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgaWYgKHR5cGUubG9hZEtpbmQgJiYgJ3NjYWxhcicgIT09IHR5cGUubG9hZEtpbmQpIHtcbiAgICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCdUaGVyZSBpcyBhIG5vbi1zY2FsYXIgdHlwZSBpbiB0aGUgaW1wbGljaXQgbGlzdCBvZiBhIHNjaGVtYS4gSW1wbGljaXQgcmVzb2x2aW5nIG9mIHN1Y2ggdHlwZXMgaXMgbm90IHN1cHBvcnRlZC4nKTtcbiAgICB9XG4gIH0pO1xuXG4gIHRoaXMuY29tcGlsZWRJbXBsaWNpdCA9IGNvbXBpbGVMaXN0KHRoaXMsICdpbXBsaWNpdCcsIFtdKTtcbiAgdGhpcy5jb21waWxlZEV4cGxpY2l0ID0gY29tcGlsZUxpc3QodGhpcywgJ2V4cGxpY2l0JywgW10pO1xuICB0aGlzLmNvbXBpbGVkVHlwZU1hcCAgPSBjb21waWxlTWFwKHRoaXMuY29tcGlsZWRJbXBsaWNpdCwgdGhpcy5jb21waWxlZEV4cGxpY2l0KTtcbn1cblxuXG5TY2hlbWEuREVGQVVMVCA9IG51bGw7XG5cblxuU2NoZW1hLmNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZVNjaGVtYSgpIHtcbiAgdmFyIHNjaGVtYXMsIHR5cGVzO1xuXG4gIHN3aXRjaCAoYXJndW1lbnRzLmxlbmd0aCkge1xuICBjYXNlIDE6XG4gICAgc2NoZW1hcyA9IFNjaGVtYS5ERUZBVUxUO1xuICAgIHR5cGVzID0gYXJndW1lbnRzWzBdO1xuICAgIGJyZWFrO1xuXG4gIGNhc2UgMjpcbiAgICBzY2hlbWFzID0gYXJndW1lbnRzWzBdO1xuICAgIHR5cGVzID0gYXJndW1lbnRzWzFdO1xuICAgIGJyZWFrO1xuXG4gIGRlZmF1bHQ6XG4gICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oJ1dyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIFNjaGVtYS5jcmVhdGUgZnVuY3Rpb24nKTtcbiAgfVxuXG4gIHNjaGVtYXMgPSBjb21tb24udG9BcnJheShzY2hlbWFzKTtcbiAgdHlwZXMgPSBjb21tb24udG9BcnJheSh0eXBlcyk7XG5cbiAgaWYgKCFzY2hlbWFzLmV2ZXJ5KGZ1bmN0aW9uIChzY2hlbWEpIHsgcmV0dXJuIHNjaGVtYSBpbnN0YW5jZW9mIFNjaGVtYTsgfSkpIHtcbiAgICB0aHJvdyBuZXcgWUFNTEV4Y2VwdGlvbignU3BlY2lmaWVkIGxpc3Qgb2Ygc3VwZXIgc2NoZW1hcyAob3IgYSBzaW5nbGUgU2NoZW1hIG9iamVjdCkgY29udGFpbnMgYSBub24tU2NoZW1hIG9iamVjdC4nKTtcbiAgfVxuXG4gIGlmICghdHlwZXMuZXZlcnkoZnVuY3Rpb24gKHR5cGUpIHsgcmV0dXJuIHR5cGUgaW5zdGFuY2VvZiBUeXBlOyB9KSkge1xuICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCdTcGVjaWZpZWQgbGlzdCBvZiBZQU1MIHR5cGVzIChvciBhIHNpbmdsZSBUeXBlIG9iamVjdCkgY29udGFpbnMgYSBub24tVHlwZSBvYmplY3QuJyk7XG4gIH1cblxuICByZXR1cm4gbmV3IFNjaGVtYSh7XG4gICAgaW5jbHVkZTogc2NoZW1hcyxcbiAgICBleHBsaWNpdDogdHlwZXNcbiAgfSk7XG59O1xuXG5cbm1vZHVsZS5leHBvcnRzID0gU2NoZW1hO1xuIiwiLy8gU3RhbmRhcmQgWUFNTCdzIENvcmUgc2NoZW1hLlxuLy8gaHR0cDovL3d3dy55YW1sLm9yZy9zcGVjLzEuMi9zcGVjLmh0bWwjaWQyODA0OTIzXG4vL1xuLy8gTk9URTogSlMtWUFNTCBkb2VzIG5vdCBzdXBwb3J0IHNjaGVtYS1zcGVjaWZpYyB0YWcgcmVzb2x1dGlvbiByZXN0cmljdGlvbnMuXG4vLyBTbywgQ29yZSBzY2hlbWEgaGFzIG5vIGRpc3RpbmN0aW9ucyBmcm9tIEpTT04gc2NoZW1hIGlzIEpTLVlBTUwuXG5cblxuJ3VzZSBzdHJpY3QnO1xuXG5cbnZhciBTY2hlbWEgPSByZXF1aXJlKCcuLi9zY2hlbWEnKTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBTY2hlbWEoe1xuICBpbmNsdWRlOiBbXG4gICAgcmVxdWlyZSgnLi9qc29uJylcbiAgXVxufSk7XG4iLCIvLyBKUy1ZQU1MJ3MgZGVmYXVsdCBzY2hlbWEgZm9yIGBsb2FkYCBmdW5jdGlvbi5cbi8vIEl0IGlzIG5vdCBkZXNjcmliZWQgaW4gdGhlIFlBTUwgc3BlY2lmaWNhdGlvbi5cbi8vXG4vLyBUaGlzIHNjaGVtYSBpcyBiYXNlZCBvbiBKUy1ZQU1MJ3MgZGVmYXVsdCBzYWZlIHNjaGVtYSBhbmQgaW5jbHVkZXNcbi8vIEphdmFTY3JpcHQtc3BlY2lmaWMgdHlwZXM6ICEhanMvdW5kZWZpbmVkLCAhIWpzL3JlZ2V4cCBhbmQgISFqcy9mdW5jdGlvbi5cbi8vXG4vLyBBbHNvIHRoaXMgc2NoZW1hIGlzIHVzZWQgYXMgZGVmYXVsdCBiYXNlIHNjaGVtYSBhdCBgU2NoZW1hLmNyZWF0ZWAgZnVuY3Rpb24uXG5cblxuJ3VzZSBzdHJpY3QnO1xuXG5cbnZhciBTY2hlbWEgPSByZXF1aXJlKCcuLi9zY2hlbWEnKTtcblxuXG5tb2R1bGUuZXhwb3J0cyA9IFNjaGVtYS5ERUZBVUxUID0gbmV3IFNjaGVtYSh7XG4gIGluY2x1ZGU6IFtcbiAgICByZXF1aXJlKCcuL2RlZmF1bHRfc2FmZScpXG4gIF0sXG4gIGV4cGxpY2l0OiBbXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9qcy91bmRlZmluZWQnKSxcbiAgICByZXF1aXJlKCcuLi90eXBlL2pzL3JlZ2V4cCcpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvanMvZnVuY3Rpb24nKVxuICBdXG59KTtcbiIsIi8vIEpTLVlBTUwncyBkZWZhdWx0IHNjaGVtYSBmb3IgYHNhZmVMb2FkYCBmdW5jdGlvbi5cbi8vIEl0IGlzIG5vdCBkZXNjcmliZWQgaW4gdGhlIFlBTUwgc3BlY2lmaWNhdGlvbi5cbi8vXG4vLyBUaGlzIHNjaGVtYSBpcyBiYXNlZCBvbiBzdGFuZGFyZCBZQU1MJ3MgQ29yZSBzY2hlbWEgYW5kIGluY2x1ZGVzIG1vc3Qgb2Zcbi8vIGV4dHJhIHR5cGVzIGRlc2NyaWJlZCBhdCBZQU1MIHRhZyByZXBvc2l0b3J5LiAoaHR0cDovL3lhbWwub3JnL3R5cGUvKVxuXG5cbid1c2Ugc3RyaWN0JztcblxuXG52YXIgU2NoZW1hID0gcmVxdWlyZSgnLi4vc2NoZW1hJyk7XG5cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgU2NoZW1hKHtcbiAgaW5jbHVkZTogW1xuICAgIHJlcXVpcmUoJy4vY29yZScpXG4gIF0sXG4gIGltcGxpY2l0OiBbXG4gICAgcmVxdWlyZSgnLi4vdHlwZS90aW1lc3RhbXAnKSxcbiAgICByZXF1aXJlKCcuLi90eXBlL21lcmdlJylcbiAgXSxcbiAgZXhwbGljaXQ6IFtcbiAgICByZXF1aXJlKCcuLi90eXBlL2JpbmFyeScpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvb21hcCcpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvcGFpcnMnKSxcbiAgICByZXF1aXJlKCcuLi90eXBlL3NldCcpXG4gIF1cbn0pO1xuIiwiLy8gU3RhbmRhcmQgWUFNTCdzIEZhaWxzYWZlIHNjaGVtYS5cbi8vIGh0dHA6Ly93d3cueWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI2lkMjgwMjM0NlxuXG5cbid1c2Ugc3RyaWN0JztcblxuXG52YXIgU2NoZW1hID0gcmVxdWlyZSgnLi4vc2NoZW1hJyk7XG5cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgU2NoZW1hKHtcbiAgZXhwbGljaXQ6IFtcbiAgICByZXF1aXJlKCcuLi90eXBlL3N0cicpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvc2VxJyksXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9tYXAnKVxuICBdXG59KTtcbiIsIi8vIFN0YW5kYXJkIFlBTUwncyBKU09OIHNjaGVtYS5cbi8vIGh0dHA6Ly93d3cueWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI2lkMjgwMzIzMVxuLy9cbi8vIE5PVEU6IEpTLVlBTUwgZG9lcyBub3Qgc3VwcG9ydCBzY2hlbWEtc3BlY2lmaWMgdGFnIHJlc29sdXRpb24gcmVzdHJpY3Rpb25zLlxuLy8gU28sIHRoaXMgc2NoZW1hIGlzIG5vdCBzdWNoIHN0cmljdCBhcyBkZWZpbmVkIGluIHRoZSBZQU1MIHNwZWNpZmljYXRpb24uXG4vLyBJdCBhbGxvd3MgbnVtYmVycyBpbiBiaW5hcnkgbm90YWlvbiwgdXNlIGBOdWxsYCBhbmQgYE5VTExgIGFzIGBudWxsYCwgZXRjLlxuXG5cbid1c2Ugc3RyaWN0JztcblxuXG52YXIgU2NoZW1hID0gcmVxdWlyZSgnLi4vc2NoZW1hJyk7XG5cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgU2NoZW1hKHtcbiAgaW5jbHVkZTogW1xuICAgIHJlcXVpcmUoJy4vZmFpbHNhZmUnKVxuICBdLFxuICBpbXBsaWNpdDogW1xuICAgIHJlcXVpcmUoJy4uL3R5cGUvbnVsbCcpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvYm9vbCcpLFxuICAgIHJlcXVpcmUoJy4uL3R5cGUvaW50JyksXG4gICAgcmVxdWlyZSgnLi4vdHlwZS9mbG9hdCcpXG4gIF1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgWUFNTEV4Y2VwdGlvbiA9IHJlcXVpcmUoJy4vZXhjZXB0aW9uJyk7XG5cbnZhciBUWVBFX0NPTlNUUlVDVE9SX09QVElPTlMgPSBbXG4gICdraW5kJyxcbiAgJ3Jlc29sdmUnLFxuICAnY29uc3RydWN0JyxcbiAgJ2luc3RhbmNlT2YnLFxuICAncHJlZGljYXRlJyxcbiAgJ3JlcHJlc2VudCcsXG4gICdkZWZhdWx0U3R5bGUnLFxuICAnc3R5bGVBbGlhc2VzJ1xuXTtcblxudmFyIFlBTUxfTk9ERV9LSU5EUyA9IFtcbiAgJ3NjYWxhcicsXG4gICdzZXF1ZW5jZScsXG4gICdtYXBwaW5nJ1xuXTtcblxuZnVuY3Rpb24gY29tcGlsZVN0eWxlQWxpYXNlcyhtYXApIHtcbiAgdmFyIHJlc3VsdCA9IHt9O1xuXG4gIGlmIChudWxsICE9PSBtYXApIHtcbiAgICBPYmplY3Qua2V5cyhtYXApLmZvckVhY2goZnVuY3Rpb24gKHN0eWxlKSB7XG4gICAgICBtYXBbc3R5bGVdLmZvckVhY2goZnVuY3Rpb24gKGFsaWFzKSB7XG4gICAgICAgIHJlc3VsdFtTdHJpbmcoYWxpYXMpXSA9IHN0eWxlO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBUeXBlKHRhZywgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICBPYmplY3Qua2V5cyhvcHRpb25zKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgaWYgKC0xID09PSBUWVBFX0NPTlNUUlVDVE9SX09QVElPTlMuaW5kZXhPZihuYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IFlBTUxFeGNlcHRpb24oJ1Vua25vd24gb3B0aW9uIFwiJyArIG5hbWUgKyAnXCIgaXMgbWV0IGluIGRlZmluaXRpb24gb2YgXCInICsgdGFnICsgJ1wiIFlBTUwgdHlwZS4nKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIFRPRE86IEFkZCB0YWcgZm9ybWF0IGNoZWNrLlxuICB0aGlzLnRhZyAgICAgICAgICA9IHRhZztcbiAgdGhpcy5raW5kICAgICAgICAgPSBvcHRpb25zWydraW5kJ10gICAgICAgICB8fCBudWxsO1xuICB0aGlzLnJlc29sdmUgICAgICA9IG9wdGlvbnNbJ3Jlc29sdmUnXSAgICAgIHx8IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRydWU7IH07XG4gIHRoaXMuY29uc3RydWN0ICAgID0gb3B0aW9uc1snY29uc3RydWN0J10gICAgfHwgZnVuY3Rpb24gKGRhdGEpIHsgcmV0dXJuIGRhdGE7IH07XG4gIHRoaXMuaW5zdGFuY2VPZiAgID0gb3B0aW9uc1snaW5zdGFuY2VPZiddICAgfHwgbnVsbDtcbiAgdGhpcy5wcmVkaWNhdGUgICAgPSBvcHRpb25zWydwcmVkaWNhdGUnXSAgICB8fCBudWxsO1xuICB0aGlzLnJlcHJlc2VudCAgICA9IG9wdGlvbnNbJ3JlcHJlc2VudCddICAgIHx8IG51bGw7XG4gIHRoaXMuZGVmYXVsdFN0eWxlID0gb3B0aW9uc1snZGVmYXVsdFN0eWxlJ10gfHwgbnVsbDtcbiAgdGhpcy5zdHlsZUFsaWFzZXMgPSBjb21waWxlU3R5bGVBbGlhc2VzKG9wdGlvbnNbJ3N0eWxlQWxpYXNlcyddIHx8IG51bGwpO1xuXG4gIGlmICgtMSA9PT0gWUFNTF9OT0RFX0tJTkRTLmluZGV4T2YodGhpcy5raW5kKSkge1xuICAgIHRocm93IG5ldyBZQU1MRXhjZXB0aW9uKCdVbmtub3duIGtpbmQgXCInICsgdGhpcy5raW5kICsgJ1wiIGlzIHNwZWNpZmllZCBmb3IgXCInICsgdGFnICsgJ1wiIFlBTUwgdHlwZS4nKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IFR5cGU7XG4iLCIndXNlIHN0cmljdCc7XG5cbi8qZXNsaW50LWRpc2FibGUgbm8tYml0d2lzZSovXG5cbi8vIEEgdHJpY2sgZm9yIGJyb3dzZXJpZmllZCB2ZXJzaW9uLlxuLy8gU2luY2Ugd2UgbWFrZSBicm93c2VyaWZpZXIgdG8gaWdub3JlIGBidWZmZXJgIG1vZHVsZSwgTm9kZUJ1ZmZlciB3aWxsIGJlIHVuZGVmaW5lZFxudmFyIE5vZGVCdWZmZXIgPSByZXF1aXJlKCdidWZmZXInKS5CdWZmZXI7XG52YXIgVHlwZSAgICAgICA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxuXG4vLyBbIDY0LCA2NSwgNjYgXSAtPiBbIHBhZGRpbmcsIENSLCBMRiBdXG52YXIgQkFTRTY0X01BUCA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVxcblxccic7XG5cblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxCaW5hcnkoZGF0YSkge1xuICBpZiAobnVsbCA9PT0gZGF0YSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBjb2RlLCBpZHgsIGJpdGxlbiA9IDAsIGxlbiA9IDAsIG1heCA9IGRhdGEubGVuZ3RoLCBtYXAgPSBCQVNFNjRfTUFQO1xuXG4gIC8vIENvbnZlcnQgb25lIGJ5IG9uZS5cbiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7XG4gICAgY29kZSA9IG1hcC5pbmRleE9mKGRhdGEuY2hhckF0KGlkeCkpO1xuXG4gICAgLy8gU2tpcCBDUi9MRlxuICAgIGlmIChjb2RlID4gNjQpIHsgY29udGludWU7IH1cblxuICAgIC8vIEZhaWwgb24gaWxsZWdhbCBjaGFyYWN0ZXJzXG4gICAgaWYgKGNvZGUgPCAwKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gICAgYml0bGVuICs9IDY7XG4gIH1cblxuICAvLyBJZiB0aGVyZSBhcmUgYW55IGJpdHMgbGVmdCwgc291cmNlIHdhcyBjb3JydXB0ZWRcbiAgcmV0dXJuIChiaXRsZW4gJSA4KSA9PT0gMDtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0WWFtbEJpbmFyeShkYXRhKSB7XG4gIHZhciBjb2RlLCBpZHgsIHRhaWxiaXRzLFxuICAgICAgaW5wdXQgPSBkYXRhLnJlcGxhY2UoL1tcXHJcXG49XS9nLCAnJyksIC8vIHJlbW92ZSBDUi9MRiAmIHBhZGRpbmcgdG8gc2ltcGxpZnkgc2NhblxuICAgICAgbWF4ID0gaW5wdXQubGVuZ3RoLFxuICAgICAgbWFwID0gQkFTRTY0X01BUCxcbiAgICAgIGJpdHMgPSAwLFxuICAgICAgcmVzdWx0ID0gW107XG5cbiAgLy8gQ29sbGVjdCBieSA2KjQgYml0cyAoMyBieXRlcylcblxuICBmb3IgKGlkeCA9IDA7IGlkeCA8IG1heDsgaWR4KyspIHtcbiAgICBpZiAoKGlkeCAlIDQgPT09IDApICYmIGlkeCkge1xuICAgICAgcmVzdWx0LnB1c2goKGJpdHMgPj4gMTYpICYgMHhGRik7XG4gICAgICByZXN1bHQucHVzaCgoYml0cyA+PiA4KSAmIDB4RkYpO1xuICAgICAgcmVzdWx0LnB1c2goYml0cyAmIDB4RkYpO1xuICAgIH1cblxuICAgIGJpdHMgPSAoYml0cyA8PCA2KSB8IG1hcC5pbmRleE9mKGlucHV0LmNoYXJBdChpZHgpKTtcbiAgfVxuXG4gIC8vIER1bXAgdGFpbFxuXG4gIHRhaWxiaXRzID0gKG1heCAlIDQpICogNjtcblxuICBpZiAodGFpbGJpdHMgPT09IDApIHtcbiAgICByZXN1bHQucHVzaCgoYml0cyA+PiAxNikgJiAweEZGKTtcbiAgICByZXN1bHQucHVzaCgoYml0cyA+PiA4KSAmIDB4RkYpO1xuICAgIHJlc3VsdC5wdXNoKGJpdHMgJiAweEZGKTtcbiAgfSBlbHNlIGlmICh0YWlsYml0cyA9PT0gMTgpIHtcbiAgICByZXN1bHQucHVzaCgoYml0cyA+PiAxMCkgJiAweEZGKTtcbiAgICByZXN1bHQucHVzaCgoYml0cyA+PiAyKSAmIDB4RkYpO1xuICB9IGVsc2UgaWYgKHRhaWxiaXRzID09PSAxMikge1xuICAgIHJlc3VsdC5wdXNoKChiaXRzID4+IDQpICYgMHhGRik7XG4gIH1cblxuICAvLyBXcmFwIGludG8gQnVmZmVyIGZvciBOb2RlSlMgYW5kIGxlYXZlIEFycmF5IGZvciBicm93c2VyXG4gIGlmIChOb2RlQnVmZmVyKSB7XG4gICAgcmV0dXJuIG5ldyBOb2RlQnVmZmVyKHJlc3VsdCk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiByZXByZXNlbnRZYW1sQmluYXJ5KG9iamVjdCAvKiwgc3R5bGUqLykge1xuICB2YXIgcmVzdWx0ID0gJycsIGJpdHMgPSAwLCBpZHgsIHRhaWwsXG4gICAgICBtYXggPSBvYmplY3QubGVuZ3RoLFxuICAgICAgbWFwID0gQkFTRTY0X01BUDtcblxuICAvLyBDb252ZXJ0IGV2ZXJ5IHRocmVlIGJ5dGVzIHRvIDQgQVNDSUkgY2hhcmFjdGVycy5cblxuICBmb3IgKGlkeCA9IDA7IGlkeCA8IG1heDsgaWR4KyspIHtcbiAgICBpZiAoKGlkeCAlIDMgPT09IDApICYmIGlkeCkge1xuICAgICAgcmVzdWx0ICs9IG1hcFsoYml0cyA+PiAxOCkgJiAweDNGXTtcbiAgICAgIHJlc3VsdCArPSBtYXBbKGJpdHMgPj4gMTIpICYgMHgzRl07XG4gICAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDYpICYgMHgzRl07XG4gICAgICByZXN1bHQgKz0gbWFwW2JpdHMgJiAweDNGXTtcbiAgICB9XG5cbiAgICBiaXRzID0gKGJpdHMgPDwgOCkgKyBvYmplY3RbaWR4XTtcbiAgfVxuXG4gIC8vIER1bXAgdGFpbFxuXG4gIHRhaWwgPSBtYXggJSAzO1xuXG4gIGlmICh0YWlsID09PSAwKSB7XG4gICAgcmVzdWx0ICs9IG1hcFsoYml0cyA+PiAxOCkgJiAweDNGXTtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDEyKSAmIDB4M0ZdO1xuICAgIHJlc3VsdCArPSBtYXBbKGJpdHMgPj4gNikgJiAweDNGXTtcbiAgICByZXN1bHQgKz0gbWFwW2JpdHMgJiAweDNGXTtcbiAgfSBlbHNlIGlmICh0YWlsID09PSAyKSB7XG4gICAgcmVzdWx0ICs9IG1hcFsoYml0cyA+PiAxMCkgJiAweDNGXTtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDQpICYgMHgzRl07XG4gICAgcmVzdWx0ICs9IG1hcFsoYml0cyA8PCAyKSAmIDB4M0ZdO1xuICAgIHJlc3VsdCArPSBtYXBbNjRdO1xuICB9IGVsc2UgaWYgKHRhaWwgPT09IDEpIHtcbiAgICByZXN1bHQgKz0gbWFwWyhiaXRzID4+IDIpICYgMHgzRl07XG4gICAgcmVzdWx0ICs9IG1hcFsoYml0cyA8PCA0KSAmIDB4M0ZdO1xuICAgIHJlc3VsdCArPSBtYXBbNjRdO1xuICAgIHJlc3VsdCArPSBtYXBbNjRdO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gaXNCaW5hcnkob2JqZWN0KSB7XG4gIHJldHVybiBOb2RlQnVmZmVyICYmIE5vZGVCdWZmZXIuaXNCdWZmZXIob2JqZWN0KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5Jywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxCaW5hcnksXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEJpbmFyeSxcbiAgcHJlZGljYXRlOiBpc0JpbmFyeSxcbiAgcmVwcmVzZW50OiByZXByZXNlbnRZYW1sQmluYXJ5XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbmZ1bmN0aW9uIHJlc29sdmVZYW1sQm9vbGVhbihkYXRhKSB7XG4gIGlmIChudWxsID09PSBkYXRhKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIG1heCA9IGRhdGEubGVuZ3RoO1xuXG4gIHJldHVybiAobWF4ID09PSA0ICYmIChkYXRhID09PSAndHJ1ZScgfHwgZGF0YSA9PT0gJ1RydWUnIHx8IGRhdGEgPT09ICdUUlVFJykpIHx8XG4gICAgICAgICAobWF4ID09PSA1ICYmIChkYXRhID09PSAnZmFsc2UnIHx8IGRhdGEgPT09ICdGYWxzZScgfHwgZGF0YSA9PT0gJ0ZBTFNFJykpO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sQm9vbGVhbihkYXRhKSB7XG4gIHJldHVybiBkYXRhID09PSAndHJ1ZScgfHxcbiAgICAgICAgIGRhdGEgPT09ICdUcnVlJyB8fFxuICAgICAgICAgZGF0YSA9PT0gJ1RSVUUnO1xufVxuXG5mdW5jdGlvbiBpc0Jvb2xlYW4ob2JqZWN0KSB7XG4gIHJldHVybiAnW29iamVjdCBCb29sZWFuXScgPT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpib29sJywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxCb29sZWFuLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxCb29sZWFuLFxuICBwcmVkaWNhdGU6IGlzQm9vbGVhbixcbiAgcmVwcmVzZW50OiB7XG4gICAgbG93ZXJjYXNlOiBmdW5jdGlvbiAob2JqZWN0KSB7IHJldHVybiBvYmplY3QgPyAndHJ1ZScgOiAnZmFsc2UnOyB9LFxuICAgIHVwcGVyY2FzZTogZnVuY3Rpb24gKG9iamVjdCkgeyByZXR1cm4gb2JqZWN0ID8gJ1RSVUUnIDogJ0ZBTFNFJzsgfSxcbiAgICBjYW1lbGNhc2U6IGZ1bmN0aW9uIChvYmplY3QpIHsgcmV0dXJuIG9iamVjdCA/ICdUcnVlJyA6ICdGYWxzZSc7IH1cbiAgfSxcbiAgZGVmYXVsdFN0eWxlOiAnbG93ZXJjYXNlJ1xufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBjb21tb24gPSByZXF1aXJlKCcuLi9jb21tb24nKTtcbnZhciBUeXBlICAgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbnZhciBZQU1MX0ZMT0FUX1BBVFRFUk4gPSBuZXcgUmVnRXhwKFxuICAnXig/OlstK10/KD86WzAtOV1bMC05X10qKVxcXFwuWzAtOV9dKig/OltlRV1bLStdWzAtOV0rKT8nICtcbiAgJ3xcXFxcLlswLTlfXSsoPzpbZUVdWy0rXVswLTldKyk/JyArXG4gICd8Wy0rXT9bMC05XVswLTlfXSooPzo6WzAtNV0/WzAtOV0pK1xcXFwuWzAtOV9dKicgK1xuICAnfFstK10/XFxcXC4oPzppbmZ8SW5mfElORiknICtcbiAgJ3xcXFxcLig/Om5hbnxOYU58TkFOKSkkJyk7XG5cbmZ1bmN0aW9uIHJlc29sdmVZYW1sRmxvYXQoZGF0YSkge1xuICBpZiAobnVsbCA9PT0gZGF0YSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciB2YWx1ZSwgc2lnbiwgYmFzZSwgZGlnaXRzO1xuXG4gIGlmICghWUFNTF9GTE9BVF9QQVRURVJOLnRlc3QoZGF0YSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxGbG9hdChkYXRhKSB7XG4gIHZhciB2YWx1ZSwgc2lnbiwgYmFzZSwgZGlnaXRzO1xuXG4gIHZhbHVlICA9IGRhdGEucmVwbGFjZSgvXy9nLCAnJykudG9Mb3dlckNhc2UoKTtcbiAgc2lnbiAgID0gJy0nID09PSB2YWx1ZVswXSA/IC0xIDogMTtcbiAgZGlnaXRzID0gW107XG5cbiAgaWYgKDAgPD0gJystJy5pbmRleE9mKHZhbHVlWzBdKSkge1xuICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMSk7XG4gIH1cblxuICBpZiAoJy5pbmYnID09PSB2YWx1ZSkge1xuICAgIHJldHVybiAoMSA9PT0gc2lnbikgPyBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkgOiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7XG5cbiAgfSBlbHNlIGlmICgnLm5hbicgPT09IHZhbHVlKSB7XG4gICAgcmV0dXJuIE5hTjtcblxuICB9IGVsc2UgaWYgKDAgPD0gdmFsdWUuaW5kZXhPZignOicpKSB7XG4gICAgdmFsdWUuc3BsaXQoJzonKS5mb3JFYWNoKGZ1bmN0aW9uICh2KSB7XG4gICAgICBkaWdpdHMudW5zaGlmdChwYXJzZUZsb2F0KHYsIDEwKSk7XG4gICAgfSk7XG5cbiAgICB2YWx1ZSA9IDAuMDtcbiAgICBiYXNlID0gMTtcblxuICAgIGRpZ2l0cy5mb3JFYWNoKGZ1bmN0aW9uIChkKSB7XG4gICAgICB2YWx1ZSArPSBkICogYmFzZTtcbiAgICAgIGJhc2UgKj0gNjA7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2lnbiAqIHZhbHVlO1xuXG4gIH1cbiAgcmV0dXJuIHNpZ24gKiBwYXJzZUZsb2F0KHZhbHVlLCAxMCk7XG59XG5cbmZ1bmN0aW9uIHJlcHJlc2VudFlhbWxGbG9hdChvYmplY3QsIHN0eWxlKSB7XG4gIGlmIChpc05hTihvYmplY3QpKSB7XG4gICAgc3dpdGNoIChzdHlsZSkge1xuICAgIGNhc2UgJ2xvd2VyY2FzZSc6XG4gICAgICByZXR1cm4gJy5uYW4nO1xuICAgIGNhc2UgJ3VwcGVyY2FzZSc6XG4gICAgICByZXR1cm4gJy5OQU4nO1xuICAgIGNhc2UgJ2NhbWVsY2FzZSc6XG4gICAgICByZXR1cm4gJy5OYU4nO1xuICAgIH1cbiAgfSBlbHNlIGlmIChOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkgPT09IG9iamVjdCkge1xuICAgIHN3aXRjaCAoc3R5bGUpIHtcbiAgICBjYXNlICdsb3dlcmNhc2UnOlxuICAgICAgcmV0dXJuICcuaW5mJztcbiAgICBjYXNlICd1cHBlcmNhc2UnOlxuICAgICAgcmV0dXJuICcuSU5GJztcbiAgICBjYXNlICdjYW1lbGNhc2UnOlxuICAgICAgcmV0dXJuICcuSW5mJztcbiAgICB9XG4gIH0gZWxzZSBpZiAoTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZID09PSBvYmplY3QpIHtcbiAgICBzd2l0Y2ggKHN0eWxlKSB7XG4gICAgY2FzZSAnbG93ZXJjYXNlJzpcbiAgICAgIHJldHVybiAnLS5pbmYnO1xuICAgIGNhc2UgJ3VwcGVyY2FzZSc6XG4gICAgICByZXR1cm4gJy0uSU5GJztcbiAgICBjYXNlICdjYW1lbGNhc2UnOlxuICAgICAgcmV0dXJuICctLkluZic7XG4gICAgfVxuICB9IGVsc2UgaWYgKGNvbW1vbi5pc05lZ2F0aXZlWmVybyhvYmplY3QpKSB7XG4gICAgcmV0dXJuICctMC4wJztcbiAgfVxuICByZXR1cm4gb2JqZWN0LnRvU3RyaW5nKDEwKTtcbn1cblxuZnVuY3Rpb24gaXNGbG9hdChvYmplY3QpIHtcbiAgcmV0dXJuICgnW29iamVjdCBOdW1iZXJdJyA9PT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCkpICYmXG4gICAgICAgICAoMCAhPT0gb2JqZWN0ICUgMSB8fCBjb21tb24uaXNOZWdhdGl2ZVplcm8ob2JqZWN0KSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbmV3IFR5cGUoJ3RhZzp5YW1sLm9yZywyMDAyOmZsb2F0Jywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxGbG9hdCxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sRmxvYXQsXG4gIHByZWRpY2F0ZTogaXNGbG9hdCxcbiAgcmVwcmVzZW50OiByZXByZXNlbnRZYW1sRmxvYXQsXG4gIGRlZmF1bHRTdHlsZTogJ2xvd2VyY2FzZSdcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgY29tbW9uID0gcmVxdWlyZSgnLi4vY29tbW9uJyk7XG52YXIgVHlwZSAgID0gcmVxdWlyZSgnLi4vdHlwZScpO1xuXG5mdW5jdGlvbiBpc0hleENvZGUoYykge1xuICByZXR1cm4gKCgweDMwLyogMCAqLyA8PSBjKSAmJiAoYyA8PSAweDM5LyogOSAqLykpIHx8XG4gICAgICAgICAoKDB4NDEvKiBBICovIDw9IGMpICYmIChjIDw9IDB4NDYvKiBGICovKSkgfHxcbiAgICAgICAgICgoMHg2MS8qIGEgKi8gPD0gYykgJiYgKGMgPD0gMHg2Ni8qIGYgKi8pKTtcbn1cblxuZnVuY3Rpb24gaXNPY3RDb2RlKGMpIHtcbiAgcmV0dXJuICgoMHgzMC8qIDAgKi8gPD0gYykgJiYgKGMgPD0gMHgzNy8qIDcgKi8pKTtcbn1cblxuZnVuY3Rpb24gaXNEZWNDb2RlKGMpIHtcbiAgcmV0dXJuICgoMHgzMC8qIDAgKi8gPD0gYykgJiYgKGMgPD0gMHgzOS8qIDkgKi8pKTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxJbnRlZ2VyKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB2YXIgbWF4ID0gZGF0YS5sZW5ndGgsXG4gICAgICBpbmRleCA9IDAsXG4gICAgICBoYXNEaWdpdHMgPSBmYWxzZSxcbiAgICAgIGNoO1xuXG4gIGlmICghbWF4KSB7IHJldHVybiBmYWxzZTsgfVxuXG4gIGNoID0gZGF0YVtpbmRleF07XG5cbiAgLy8gc2lnblxuICBpZiAoY2ggPT09ICctJyB8fCBjaCA9PT0gJysnKSB7XG4gICAgY2ggPSBkYXRhWysraW5kZXhdO1xuICB9XG5cbiAgaWYgKGNoID09PSAnMCcpIHtcbiAgICAvLyAwXG4gICAgaWYgKGluZGV4ICsgMSA9PT0gbWF4KSB7IHJldHVybiB0cnVlOyB9XG4gICAgY2ggPSBkYXRhWysraW5kZXhdO1xuXG4gICAgLy8gYmFzZSAyLCBiYXNlIDgsIGJhc2UgMTZcblxuICAgIGlmIChjaCA9PT0gJ2InKSB7XG4gICAgICAvLyBiYXNlIDJcbiAgICAgIGluZGV4Kys7XG5cbiAgICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykge1xuICAgICAgICBjaCA9IGRhdGFbaW5kZXhdO1xuICAgICAgICBpZiAoY2ggPT09ICdfJykgeyBjb250aW51ZTsgfVxuICAgICAgICBpZiAoY2ggIT09ICcwJyAmJiBjaCAhPT0gJzEnKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGhhc0RpZ2l0cyA9IHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFzRGlnaXRzO1xuICAgIH1cblxuXG4gICAgaWYgKGNoID09PSAneCcpIHtcbiAgICAgIC8vIGJhc2UgMTZcbiAgICAgIGluZGV4Kys7XG5cbiAgICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykge1xuICAgICAgICBjaCA9IGRhdGFbaW5kZXhdO1xuICAgICAgICBpZiAoY2ggPT09ICdfJykgeyBjb250aW51ZTsgfVxuICAgICAgICBpZiAoIWlzSGV4Q29kZShkYXRhLmNoYXJDb2RlQXQoaW5kZXgpKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBoYXNEaWdpdHMgPSB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGhhc0RpZ2l0cztcbiAgICB9XG5cbiAgICAvLyBiYXNlIDhcbiAgICBmb3IgKDsgaW5kZXggPCBtYXg7IGluZGV4KyspIHtcbiAgICAgIGNoID0gZGF0YVtpbmRleF07XG4gICAgICBpZiAoY2ggPT09ICdfJykgeyBjb250aW51ZTsgfVxuICAgICAgaWYgKCFpc09jdENvZGUoZGF0YS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaGFzRGlnaXRzID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGhhc0RpZ2l0cztcbiAgfVxuXG4gIC8vIGJhc2UgMTAgKGV4Y2VwdCAwKSBvciBiYXNlIDYwXG5cbiAgZm9yICg7IGluZGV4IDwgbWF4OyBpbmRleCsrKSB7XG4gICAgY2ggPSBkYXRhW2luZGV4XTtcbiAgICBpZiAoY2ggPT09ICdfJykgeyBjb250aW51ZTsgfVxuICAgIGlmIChjaCA9PT0gJzonKSB7IGJyZWFrOyB9XG4gICAgaWYgKCFpc0RlY0NvZGUoZGF0YS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaGFzRGlnaXRzID0gdHJ1ZTtcbiAgfVxuXG4gIGlmICghaGFzRGlnaXRzKSB7IHJldHVybiBmYWxzZTsgfVxuXG4gIC8vIGlmICFiYXNlNjAgLSBkb25lO1xuICBpZiAoY2ggIT09ICc6JykgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gIC8vIGJhc2U2MCBhbG1vc3Qgbm90IHVzZWQsIG5vIG5lZWRzIHRvIG9wdGltaXplXG4gIHJldHVybiAvXig6WzAtNV0/WzAtOV0pKyQvLnRlc3QoZGF0YS5zbGljZShpbmRleCkpO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sSW50ZWdlcihkYXRhKSB7XG4gIHZhciB2YWx1ZSA9IGRhdGEsIHNpZ24gPSAxLCBjaCwgYmFzZSwgZGlnaXRzID0gW107XG5cbiAgaWYgKHZhbHVlLmluZGV4T2YoJ18nKSAhPT0gLTEpIHtcbiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL18vZywgJycpO1xuICB9XG5cbiAgY2ggPSB2YWx1ZVswXTtcblxuICBpZiAoY2ggPT09ICctJyB8fCBjaCA9PT0gJysnKSB7XG4gICAgaWYgKGNoID09PSAnLScpIHsgc2lnbiA9IC0xOyB9XG4gICAgdmFsdWUgPSB2YWx1ZS5zbGljZSgxKTtcbiAgICBjaCA9IHZhbHVlWzBdO1xuICB9XG5cbiAgaWYgKCcwJyA9PT0gdmFsdWUpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGlmIChjaCA9PT0gJzAnKSB7XG4gICAgaWYgKHZhbHVlWzFdID09PSAnYicpIHtcbiAgICAgIHJldHVybiBzaWduICogcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDIpO1xuICAgIH1cbiAgICBpZiAodmFsdWVbMV0gPT09ICd4Jykge1xuICAgICAgcmV0dXJuIHNpZ24gKiBwYXJzZUludCh2YWx1ZSwgMTYpO1xuICAgIH1cbiAgICByZXR1cm4gc2lnbiAqIHBhcnNlSW50KHZhbHVlLCA4KTtcblxuICB9XG5cbiAgaWYgKHZhbHVlLmluZGV4T2YoJzonKSAhPT0gLTEpIHtcbiAgICB2YWx1ZS5zcGxpdCgnOicpLmZvckVhY2goZnVuY3Rpb24gKHYpIHtcbiAgICAgIGRpZ2l0cy51bnNoaWZ0KHBhcnNlSW50KHYsIDEwKSk7XG4gICAgfSk7XG5cbiAgICB2YWx1ZSA9IDA7XG4gICAgYmFzZSA9IDE7XG5cbiAgICBkaWdpdHMuZm9yRWFjaChmdW5jdGlvbiAoZCkge1xuICAgICAgdmFsdWUgKz0gKGQgKiBiYXNlKTtcbiAgICAgIGJhc2UgKj0gNjA7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gc2lnbiAqIHZhbHVlO1xuXG4gIH1cblxuICByZXR1cm4gc2lnbiAqIHBhcnNlSW50KHZhbHVlLCAxMCk7XG59XG5cbmZ1bmN0aW9uIGlzSW50ZWdlcihvYmplY3QpIHtcbiAgcmV0dXJuICgnW29iamVjdCBOdW1iZXJdJyA9PT0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCkpICYmXG4gICAgICAgICAoMCA9PT0gb2JqZWN0ICUgMSAmJiAhY29tbW9uLmlzTmVnYXRpdmVaZXJvKG9iamVjdCkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjppbnQnLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlWWFtbEludGVnZXIsXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEludGVnZXIsXG4gIHByZWRpY2F0ZTogaXNJbnRlZ2VyLFxuICByZXByZXNlbnQ6IHtcbiAgICBiaW5hcnk6ICAgICAgZnVuY3Rpb24gKG9iamVjdCkgeyByZXR1cm4gJzBiJyArIG9iamVjdC50b1N0cmluZygyKTsgfSxcbiAgICBvY3RhbDogICAgICAgZnVuY3Rpb24gKG9iamVjdCkgeyByZXR1cm4gJzAnICArIG9iamVjdC50b1N0cmluZyg4KTsgfSxcbiAgICBkZWNpbWFsOiAgICAgZnVuY3Rpb24gKG9iamVjdCkgeyByZXR1cm4gICAgICAgIG9iamVjdC50b1N0cmluZygxMCk7IH0sXG4gICAgaGV4YWRlY2ltYWw6IGZ1bmN0aW9uIChvYmplY3QpIHsgcmV0dXJuICcweCcgKyBvYmplY3QudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7IH1cbiAgfSxcbiAgZGVmYXVsdFN0eWxlOiAnZGVjaW1hbCcsXG4gIHN0eWxlQWxpYXNlczoge1xuICAgIGJpbmFyeTogICAgICBbIDIsICAnYmluJyBdLFxuICAgIG9jdGFsOiAgICAgICBbIDgsICAnb2N0JyBdLFxuICAgIGRlY2ltYWw6ICAgICBbIDEwLCAnZGVjJyBdLFxuICAgIGhleGFkZWNpbWFsOiBbIDE2LCAnaGV4JyBdXG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZXNwcmltYTtcblxuLy8gQnJvd3NlcmlmaWVkIHZlcnNpb24gZG9lcyBub3QgaGF2ZSBlc3ByaW1hXG4vL1xuLy8gMS4gRm9yIG5vZGUuanMganVzdCByZXF1aXJlIG1vZHVsZSBhcyBkZXBzXG4vLyAyLiBGb3IgYnJvd3NlciB0cnkgdG8gcmVxdWlyZSBtdWR1bGUgdmlhIGV4dGVybmFsIEFNRCBzeXN0ZW0uXG4vLyAgICBJZiBub3QgZm91bmQgLSB0cnkgdG8gZmFsbGJhY2sgdG8gd2luZG93LmVzcHJpbWEuIElmIG5vdFxuLy8gICAgZm91bmQgdG9vIC0gdGhlbiBmYWlsIHRvIHBhcnNlLlxuLy9cbnRyeSB7XG4gIGVzcHJpbWEgPSByZXF1aXJlKCdlc3ByaW1hJyk7XG59IGNhdGNoIChfKSB7XG4gIC8qZ2xvYmFsIHdpbmRvdyAqL1xuICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHsgZXNwcmltYSA9IHdpbmRvdy5lc3ByaW1hOyB9XG59XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vLi4vdHlwZScpO1xuXG5mdW5jdGlvbiByZXNvbHZlSmF2YXNjcmlwdEZ1bmN0aW9uKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0cnkge1xuICAgIHZhciBzb3VyY2UgPSAnKCcgKyBkYXRhICsgJyknLFxuICAgICAgICBhc3QgICAgPSBlc3ByaW1hLnBhcnNlKHNvdXJjZSwgeyByYW5nZTogdHJ1ZSB9KSxcbiAgICAgICAgcGFyYW1zID0gW10sXG4gICAgICAgIGJvZHk7XG5cbiAgICBpZiAoJ1Byb2dyYW0nICAgICAgICAgICAgICE9PSBhc3QudHlwZSAgICAgICAgIHx8XG4gICAgICAgIDEgICAgICAgICAgICAgICAgICAgICAhPT0gYXN0LmJvZHkubGVuZ3RoICB8fFxuICAgICAgICAnRXhwcmVzc2lvblN0YXRlbWVudCcgIT09IGFzdC5ib2R5WzBdLnR5cGUgfHxcbiAgICAgICAgJ0Z1bmN0aW9uRXhwcmVzc2lvbicgICE9PSBhc3QuYm9keVswXS5leHByZXNzaW9uLnR5cGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdEphdmFzY3JpcHRGdW5jdGlvbihkYXRhKSB7XG4gIC8qanNsaW50IGV2aWw6dHJ1ZSovXG5cbiAgdmFyIHNvdXJjZSA9ICcoJyArIGRhdGEgKyAnKScsXG4gICAgICBhc3QgICAgPSBlc3ByaW1hLnBhcnNlKHNvdXJjZSwgeyByYW5nZTogdHJ1ZSB9KSxcbiAgICAgIHBhcmFtcyA9IFtdLFxuICAgICAgYm9keTtcblxuICBpZiAoJ1Byb2dyYW0nICAgICAgICAgICAgICE9PSBhc3QudHlwZSAgICAgICAgIHx8XG4gICAgICAxICAgICAgICAgICAgICAgICAgICAgIT09IGFzdC5ib2R5Lmxlbmd0aCAgfHxcbiAgICAgICdFeHByZXNzaW9uU3RhdGVtZW50JyAhPT0gYXN0LmJvZHlbMF0udHlwZSB8fFxuICAgICAgJ0Z1bmN0aW9uRXhwcmVzc2lvbicgICE9PSBhc3QuYm9keVswXS5leHByZXNzaW9uLnR5cGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byByZXNvbHZlIGZ1bmN0aW9uJyk7XG4gIH1cblxuICBhc3QuYm9keVswXS5leHByZXNzaW9uLnBhcmFtcy5mb3JFYWNoKGZ1bmN0aW9uIChwYXJhbSkge1xuICAgIHBhcmFtcy5wdXNoKHBhcmFtLm5hbWUpO1xuICB9KTtcblxuICBib2R5ID0gYXN0LmJvZHlbMF0uZXhwcmVzc2lvbi5ib2R5LnJhbmdlO1xuXG4gIC8vIEVzcHJpbWEncyByYW5nZXMgaW5jbHVkZSB0aGUgZmlyc3QgJ3snIGFuZCB0aGUgbGFzdCAnfScgY2hhcmFjdGVycyBvblxuICAvLyBmdW5jdGlvbiBleHByZXNzaW9ucy4gU28gY3V0IHRoZW0gb3V0LlxuICAvKmVzbGludC1kaXNhYmxlIG5vLW5ldy1mdW5jKi9cbiAgcmV0dXJuIG5ldyBGdW5jdGlvbihwYXJhbXMsIHNvdXJjZS5zbGljZShib2R5WzBdICsgMSwgYm9keVsxXSAtIDEpKTtcbn1cblxuZnVuY3Rpb24gcmVwcmVzZW50SmF2YXNjcmlwdEZ1bmN0aW9uKG9iamVjdCAvKiwgc3R5bGUqLykge1xuICByZXR1cm4gb2JqZWN0LnRvU3RyaW5nKCk7XG59XG5cbmZ1bmN0aW9uIGlzRnVuY3Rpb24ob2JqZWN0KSB7XG4gIHJldHVybiAnW29iamVjdCBGdW5jdGlvbl0nID09PSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6anMvZnVuY3Rpb24nLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlSmF2YXNjcmlwdEZ1bmN0aW9uLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdEphdmFzY3JpcHRGdW5jdGlvbixcbiAgcHJlZGljYXRlOiBpc0Z1bmN0aW9uLFxuICByZXByZXNlbnQ6IHJlcHJlc2VudEphdmFzY3JpcHRGdW5jdGlvblxufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vLi4vdHlwZScpO1xuXG5mdW5jdGlvbiByZXNvbHZlSmF2YXNjcmlwdFJlZ0V4cChkYXRhKSB7XG4gIGlmIChudWxsID09PSBkYXRhKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKDAgPT09IGRhdGEubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdmFyIHJlZ2V4cCA9IGRhdGEsXG4gICAgICB0YWlsICAgPSAvXFwvKFtnaW1dKikkLy5leGVjKGRhdGEpLFxuICAgICAgbW9kaWZpZXJzID0gJyc7XG5cbiAgLy8gaWYgcmVnZXhwIHN0YXJ0cyB3aXRoICcvJyBpdCBjYW4gaGF2ZSBtb2RpZmllcnMgYW5kIG11c3QgYmUgcHJvcGVybHkgY2xvc2VkXG4gIC8vIGAvZm9vL2dpbWAgLSBtb2RpZmllcnMgdGFpbCBjYW4gYmUgbWF4aW11bSAzIGNoYXJzXG4gIGlmICgnLycgPT09IHJlZ2V4cFswXSkge1xuICAgIGlmICh0YWlsKSB7XG4gICAgICBtb2RpZmllcnMgPSB0YWlsWzFdO1xuICAgIH1cblxuICAgIGlmIChtb2RpZmllcnMubGVuZ3RoID4gMykgeyByZXR1cm4gZmFsc2U7IH1cbiAgICAvLyBpZiBleHByZXNzaW9uIHN0YXJ0cyB3aXRoIC8sIGlzIHNob3VsZCBiZSBwcm9wZXJseSB0ZXJtaW5hdGVkXG4gICAgaWYgKHJlZ2V4cFtyZWdleHAubGVuZ3RoIC0gbW9kaWZpZXJzLmxlbmd0aCAtIDFdICE9PSAnLycpIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgICByZWdleHAgPSByZWdleHAuc2xpY2UoMSwgcmVnZXhwLmxlbmd0aCAtIG1vZGlmaWVycy5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgdmFyIGR1bW15ID0gbmV3IFJlZ0V4cChyZWdleHAsIG1vZGlmaWVycyk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdEphdmFzY3JpcHRSZWdFeHAoZGF0YSkge1xuICB2YXIgcmVnZXhwID0gZGF0YSxcbiAgICAgIHRhaWwgICA9IC9cXC8oW2dpbV0qKSQvLmV4ZWMoZGF0YSksXG4gICAgICBtb2RpZmllcnMgPSAnJztcblxuICAvLyBgL2Zvby9naW1gIC0gdGFpbCBjYW4gYmUgbWF4aW11bSA0IGNoYXJzXG4gIGlmICgnLycgPT09IHJlZ2V4cFswXSkge1xuICAgIGlmICh0YWlsKSB7XG4gICAgICBtb2RpZmllcnMgPSB0YWlsWzFdO1xuICAgIH1cbiAgICByZWdleHAgPSByZWdleHAuc2xpY2UoMSwgcmVnZXhwLmxlbmd0aCAtIG1vZGlmaWVycy5sZW5ndGggLSAxKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUmVnRXhwKHJlZ2V4cCwgbW9kaWZpZXJzKTtcbn1cblxuZnVuY3Rpb24gcmVwcmVzZW50SmF2YXNjcmlwdFJlZ0V4cChvYmplY3QgLyosIHN0eWxlKi8pIHtcbiAgdmFyIHJlc3VsdCA9ICcvJyArIG9iamVjdC5zb3VyY2UgKyAnLyc7XG5cbiAgaWYgKG9iamVjdC5nbG9iYWwpIHtcbiAgICByZXN1bHQgKz0gJ2cnO1xuICB9XG5cbiAgaWYgKG9iamVjdC5tdWx0aWxpbmUpIHtcbiAgICByZXN1bHQgKz0gJ20nO1xuICB9XG5cbiAgaWYgKG9iamVjdC5pZ25vcmVDYXNlKSB7XG4gICAgcmVzdWx0ICs9ICdpJztcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGlzUmVnRXhwKG9iamVjdCkge1xuICByZXR1cm4gJ1tvYmplY3QgUmVnRXhwXScgPT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpqcy9yZWdleHAnLCB7XG4gIGtpbmQ6ICdzY2FsYXInLFxuICByZXNvbHZlOiByZXNvbHZlSmF2YXNjcmlwdFJlZ0V4cCxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RKYXZhc2NyaXB0UmVnRXhwLFxuICBwcmVkaWNhdGU6IGlzUmVnRXhwLFxuICByZXByZXNlbnQ6IHJlcHJlc2VudEphdmFzY3JpcHRSZWdFeHBcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uLy4uL3R5cGUnKTtcblxuZnVuY3Rpb24gcmVzb2x2ZUphdmFzY3JpcHRVbmRlZmluZWQoKSB7XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RKYXZhc2NyaXB0VW5kZWZpbmVkKCkge1xuICAvKmVzbGludC1kaXNhYmxlIG5vLXVuZGVmaW5lZCovXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIHJlcHJlc2VudEphdmFzY3JpcHRVbmRlZmluZWQoKSB7XG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gaXNVbmRlZmluZWQob2JqZWN0KSB7XG4gIHJldHVybiAndW5kZWZpbmVkJyA9PT0gdHlwZW9mIG9iamVjdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6anMvdW5kZWZpbmVkJywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZUphdmFzY3JpcHRVbmRlZmluZWQsXG4gIGNvbnN0cnVjdDogY29uc3RydWN0SmF2YXNjcmlwdFVuZGVmaW5lZCxcbiAgcHJlZGljYXRlOiBpc1VuZGVmaW5lZCxcbiAgcmVwcmVzZW50OiByZXByZXNlbnRKYXZhc2NyaXB0VW5kZWZpbmVkXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gbmV3IFR5cGUoJ3RhZzp5YW1sLm9yZywyMDAyOm1hcCcsIHtcbiAga2luZDogJ21hcHBpbmcnLFxuICBjb25zdHJ1Y3Q6IGZ1bmN0aW9uIChkYXRhKSB7IHJldHVybiBudWxsICE9PSBkYXRhID8gZGF0YSA6IHt9OyB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbmZ1bmN0aW9uIHJlc29sdmVZYW1sTWVyZ2UoZGF0YSkge1xuICByZXR1cm4gJzw8JyA9PT0gZGF0YSB8fCBudWxsID09PSBkYXRhO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjptZXJnZScsIHtcbiAga2luZDogJ3NjYWxhcicsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sTWVyZ2Vcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxOdWxsKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHZhciBtYXggPSBkYXRhLmxlbmd0aDtcblxuICByZXR1cm4gKG1heCA9PT0gMSAmJiBkYXRhID09PSAnficpIHx8XG4gICAgICAgICAobWF4ID09PSA0ICYmIChkYXRhID09PSAnbnVsbCcgfHwgZGF0YSA9PT0gJ051bGwnIHx8IGRhdGEgPT09ICdOVUxMJykpO1xufVxuXG5mdW5jdGlvbiBjb25zdHJ1Y3RZYW1sTnVsbCgpIHtcbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGlzTnVsbChvYmplY3QpIHtcbiAgcmV0dXJuIG51bGwgPT09IG9iamVjdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6bnVsbCcsIHtcbiAga2luZDogJ3NjYWxhcicsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sTnVsbCxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sTnVsbCxcbiAgcHJlZGljYXRlOiBpc051bGwsXG4gIHJlcHJlc2VudDoge1xuICAgIGNhbm9uaWNhbDogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ34nOyAgICB9LFxuICAgIGxvd2VyY2FzZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ251bGwnOyB9LFxuICAgIHVwcGVyY2FzZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ05VTEwnOyB9LFxuICAgIGNhbWVsY2FzZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gJ051bGwnOyB9XG4gIH0sXG4gIGRlZmF1bHRTdHlsZTogJ2xvd2VyY2FzZSdcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxudmFyIF9oYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX3RvU3RyaW5nICAgICAgID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxPbWFwKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHZhciBvYmplY3RLZXlzID0gW10sIGluZGV4LCBsZW5ndGgsIHBhaXIsIHBhaXJLZXksIHBhaXJIYXNLZXksXG4gICAgICBvYmplY3QgPSBkYXRhO1xuXG4gIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIHBhaXIgPSBvYmplY3RbaW5kZXhdO1xuICAgIHBhaXJIYXNLZXkgPSBmYWxzZTtcblxuICAgIGlmICgnW29iamVjdCBPYmplY3RdJyAhPT0gX3RvU3RyaW5nLmNhbGwocGFpcikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmb3IgKHBhaXJLZXkgaW4gcGFpcikge1xuICAgICAgaWYgKF9oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhaXIsIHBhaXJLZXkpKSB7XG4gICAgICAgIGlmICghcGFpckhhc0tleSkge1xuICAgICAgICAgIHBhaXJIYXNLZXkgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghcGFpckhhc0tleSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICgtMSA9PT0gb2JqZWN0S2V5cy5pbmRleE9mKHBhaXJLZXkpKSB7XG4gICAgICBvYmplY3RLZXlzLnB1c2gocGFpcktleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0WWFtbE9tYXAoZGF0YSkge1xuICByZXR1cm4gbnVsbCAhPT0gZGF0YSA/IGRhdGEgOiBbXTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6b21hcCcsIHtcbiAga2luZDogJ3NlcXVlbmNlJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxPbWFwLFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxPbWFwXG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbnZhciBfdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG5mdW5jdGlvbiByZXNvbHZlWWFtbFBhaXJzKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHZhciBpbmRleCwgbGVuZ3RoLCBwYWlyLCBrZXlzLCByZXN1bHQsXG4gICAgICBvYmplY3QgPSBkYXRhO1xuXG4gIHJlc3VsdCA9IG5ldyBBcnJheShvYmplY3QubGVuZ3RoKTtcblxuICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBwYWlyID0gb2JqZWN0W2luZGV4XTtcblxuICAgIGlmICgnW29iamVjdCBPYmplY3RdJyAhPT0gX3RvU3RyaW5nLmNhbGwocGFpcikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBrZXlzID0gT2JqZWN0LmtleXMocGFpcik7XG5cbiAgICBpZiAoMSAhPT0ga2V5cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXN1bHRbaW5kZXhdID0gWyBrZXlzWzBdLCBwYWlyW2tleXNbMF1dIF07XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY29uc3RydWN0WWFtbFBhaXJzKGRhdGEpIHtcbiAgaWYgKG51bGwgPT09IGRhdGEpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICB2YXIgaW5kZXgsIGxlbmd0aCwgcGFpciwga2V5cywgcmVzdWx0LFxuICAgICAgb2JqZWN0ID0gZGF0YTtcblxuICByZXN1bHQgPSBuZXcgQXJyYXkob2JqZWN0Lmxlbmd0aCk7XG5cbiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgcGFpciA9IG9iamVjdFtpbmRleF07XG5cbiAgICBrZXlzID0gT2JqZWN0LmtleXMocGFpcik7XG5cbiAgICByZXN1bHRbaW5kZXhdID0gWyBrZXlzWzBdLCBwYWlyW2tleXNbMF1dIF07XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBUeXBlKCd0YWc6eWFtbC5vcmcsMjAwMjpwYWlycycsIHtcbiAga2luZDogJ3NlcXVlbmNlJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxQYWlycyxcbiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sUGFpcnNcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6c2VxJywge1xuICBraW5kOiAnc2VxdWVuY2UnLFxuICBjb25zdHJ1Y3Q6IGZ1bmN0aW9uIChkYXRhKSB7IHJldHVybiBudWxsICE9PSBkYXRhID8gZGF0YSA6IFtdOyB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIFR5cGUgPSByZXF1aXJlKCcuLi90eXBlJyk7XG5cbnZhciBfaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG5mdW5jdGlvbiByZXNvbHZlWWFtbFNldChkYXRhKSB7XG4gIGlmIChudWxsID09PSBkYXRhKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YXIga2V5LCBvYmplY3QgPSBkYXRhO1xuXG4gIGZvciAoa2V5IGluIG9iamVjdCkge1xuICAgIGlmIChfaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkpIHtcbiAgICAgIGlmIChudWxsICE9PSBvYmplY3Rba2V5XSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxTZXQoZGF0YSkge1xuICByZXR1cm4gbnVsbCAhPT0gZGF0YSA/IGRhdGEgOiB7fTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6c2V0Jywge1xuICBraW5kOiAnbWFwcGluZycsXG4gIHJlc29sdmU6IHJlc29sdmVZYW1sU2V0LFxuICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxTZXRcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgVHlwZSA9IHJlcXVpcmUoJy4uL3R5cGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6c3RyJywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgY29uc3RydWN0OiBmdW5jdGlvbiAoZGF0YSkgeyByZXR1cm4gbnVsbCAhPT0gZGF0YSA/IGRhdGEgOiAnJzsgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBUeXBlID0gcmVxdWlyZSgnLi4vdHlwZScpO1xuXG52YXIgWUFNTF9USU1FU1RBTVBfUkVHRVhQID0gbmV3IFJlZ0V4cChcbiAgJ14oWzAtOV1bMC05XVswLTldWzAtOV0pJyAgICAgICAgICArIC8vIFsxXSB5ZWFyXG4gICctKFswLTldWzAtOV0/KScgICAgICAgICAgICAgICAgICAgKyAvLyBbMl0gbW9udGhcbiAgJy0oWzAtOV1bMC05XT8pJyAgICAgICAgICAgICAgICAgICArIC8vIFszXSBkYXlcbiAgJyg/Oig/OltUdF18WyBcXFxcdF0rKScgICAgICAgICAgICAgICsgLy8gLi4uXG4gICcoWzAtOV1bMC05XT8pJyAgICAgICAgICAgICAgICAgICAgKyAvLyBbNF0gaG91clxuICAnOihbMC05XVswLTldKScgICAgICAgICAgICAgICAgICAgICsgLy8gWzVdIG1pbnV0ZVxuICAnOihbMC05XVswLTldKScgICAgICAgICAgICAgICAgICAgICsgLy8gWzZdIHNlY29uZFxuICAnKD86XFxcXC4oWzAtOV0qKSk/JyAgICAgICAgICAgICAgICAgKyAvLyBbN10gZnJhY3Rpb25cbiAgJyg/OlsgXFxcXHRdKihafChbLStdKShbMC05XVswLTldPyknICsgLy8gWzhdIHR6IFs5XSB0el9zaWduIFsxMF0gdHpfaG91clxuICAnKD86OihbMC05XVswLTldKSk/KSk/KT8kJyk7ICAgICAgICAgLy8gWzExXSB0el9taW51dGVcblxuZnVuY3Rpb24gcmVzb2x2ZVlhbWxUaW1lc3RhbXAoZGF0YSkge1xuICBpZiAobnVsbCA9PT0gZGF0YSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHZhciBtYXRjaCwgeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIGZyYWN0aW9uID0gMCxcbiAgICAgIGRlbHRhID0gbnVsbCwgdHpfaG91ciwgdHpfbWludXRlLCBkYXRlO1xuXG4gIG1hdGNoID0gWUFNTF9USU1FU1RBTVBfUkVHRVhQLmV4ZWMoZGF0YSk7XG5cbiAgaWYgKG51bGwgPT09IG1hdGNoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxUaW1lc3RhbXAoZGF0YSkge1xuICB2YXIgbWF0Y2gsIHllYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLCBmcmFjdGlvbiA9IDAsXG4gICAgICBkZWx0YSA9IG51bGwsIHR6X2hvdXIsIHR6X21pbnV0ZSwgZGF0ZTtcblxuICBtYXRjaCA9IFlBTUxfVElNRVNUQU1QX1JFR0VYUC5leGVjKGRhdGEpO1xuXG4gIGlmIChudWxsID09PSBtYXRjaCkge1xuICAgIHRocm93IG5ldyBFcnJvcignRGF0ZSByZXNvbHZlIGVycm9yJyk7XG4gIH1cblxuICAvLyBtYXRjaDogWzFdIHllYXIgWzJdIG1vbnRoIFszXSBkYXlcblxuICB5ZWFyID0gKyhtYXRjaFsxXSk7XG4gIG1vbnRoID0gKyhtYXRjaFsyXSkgLSAxOyAvLyBKUyBtb250aCBzdGFydHMgd2l0aCAwXG4gIGRheSA9ICsobWF0Y2hbM10pO1xuXG4gIGlmICghbWF0Y2hbNF0pIHsgLy8gbm8gaG91clxuICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyh5ZWFyLCBtb250aCwgZGF5KSk7XG4gIH1cblxuICAvLyBtYXRjaDogWzRdIGhvdXIgWzVdIG1pbnV0ZSBbNl0gc2Vjb25kIFs3XSBmcmFjdGlvblxuXG4gIGhvdXIgPSArKG1hdGNoWzRdKTtcbiAgbWludXRlID0gKyhtYXRjaFs1XSk7XG4gIHNlY29uZCA9ICsobWF0Y2hbNl0pO1xuXG4gIGlmIChtYXRjaFs3XSkge1xuICAgIGZyYWN0aW9uID0gbWF0Y2hbN10uc2xpY2UoMCwgMyk7XG4gICAgd2hpbGUgKGZyYWN0aW9uLmxlbmd0aCA8IDMpIHsgLy8gbWlsbGktc2Vjb25kc1xuICAgICAgZnJhY3Rpb24gKz0gJzAnO1xuICAgIH1cbiAgICBmcmFjdGlvbiA9ICtmcmFjdGlvbjtcbiAgfVxuXG4gIC8vIG1hdGNoOiBbOF0gdHogWzldIHR6X3NpZ24gWzEwXSB0el9ob3VyIFsxMV0gdHpfbWludXRlXG5cbiAgaWYgKG1hdGNoWzldKSB7XG4gICAgdHpfaG91ciA9ICsobWF0Y2hbMTBdKTtcbiAgICB0el9taW51dGUgPSArKG1hdGNoWzExXSB8fCAwKTtcbiAgICBkZWx0YSA9ICh0el9ob3VyICogNjAgKyB0el9taW51dGUpICogNjAwMDA7IC8vIGRlbHRhIGluIG1pbGktc2Vjb25kc1xuICAgIGlmICgnLScgPT09IG1hdGNoWzldKSB7XG4gICAgICBkZWx0YSA9IC1kZWx0YTtcbiAgICB9XG4gIH1cblxuICBkYXRlID0gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIGZyYWN0aW9uKSk7XG5cbiAgaWYgKGRlbHRhKSB7XG4gICAgZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpIC0gZGVsdGEpO1xuICB9XG5cbiAgcmV0dXJuIGRhdGU7XG59XG5cbmZ1bmN0aW9uIHJlcHJlc2VudFlhbWxUaW1lc3RhbXAob2JqZWN0IC8qLCBzdHlsZSovKSB7XG4gIHJldHVybiBvYmplY3QudG9JU09TdHJpbmcoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBuZXcgVHlwZSgndGFnOnlhbWwub3JnLDIwMDI6dGltZXN0YW1wJywge1xuICBraW5kOiAnc2NhbGFyJyxcbiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxUaW1lc3RhbXAsXG4gIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbFRpbWVzdGFtcCxcbiAgaW5zdGFuY2VPZjogRGF0ZSxcbiAgcmVwcmVzZW50OiByZXByZXNlbnRZYW1sVGltZXN0YW1wXG59KTtcbiIsIi8qXG4gIENvcHlyaWdodCAoQykgMjAxMyBBcml5YSBIaWRheWF0IDxhcml5YS5oaWRheWF0QGdtYWlsLmNvbT5cbiAgQ29weXJpZ2h0IChDKSAyMDEzIFRoYWRkZWUgVHlsIDx0aGFkZGVlLnR5bEBnbWFpbC5jb20+XG4gIENvcHlyaWdodCAoQykgMjAxMyBNYXRoaWFzIEJ5bmVucyA8bWF0aGlhc0BxaXdpLmJlPlxuICBDb3B5cmlnaHQgKEMpIDIwMTIgQXJpeWEgSGlkYXlhdCA8YXJpeWEuaGlkYXlhdEBnbWFpbC5jb20+XG4gIENvcHlyaWdodCAoQykgMjAxMiBNYXRoaWFzIEJ5bmVucyA8bWF0aGlhc0BxaXdpLmJlPlxuICBDb3B5cmlnaHQgKEMpIDIwMTIgSm9vc3QtV2ltIEJvZWtlc3RlaWpuIDxqb29zdC13aW1AYm9la2VzdGVpam4ubmw+XG4gIENvcHlyaWdodCAoQykgMjAxMiBLcmlzIEtvd2FsIDxrcmlzLmtvd2FsQGNpeGFyLmNvbT5cbiAgQ29weXJpZ2h0IChDKSAyMDEyIFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT5cbiAgQ29weXJpZ2h0IChDKSAyMDEyIEFycGFkIEJvcnNvcyA8YXJwYWQuYm9yc29zQGdvb2dsZW1haWwuY29tPlxuICBDb3B5cmlnaHQgKEMpIDIwMTEgQXJpeWEgSGlkYXlhdCA8YXJpeWEuaGlkYXlhdEBnbWFpbC5jb20+XG5cbiAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0XG4gIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OlxuXG4gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodFxuICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLlxuICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHRcbiAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGVcbiAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uXG5cbiAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyBcIkFTIElTXCJcbiAgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRVxuICBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRVxuICBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgPENPUFlSSUdIVCBIT0xERVI+IEJFIExJQUJMRSBGT1IgQU5ZXG4gIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTXG4gIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUztcbiAgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EXG4gIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUXG4gIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRlxuICBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuKi9cblxuKGZ1bmN0aW9uIChyb290LCBmYWN0b3J5KSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLy8gVW5pdmVyc2FsIE1vZHVsZSBEZWZpbml0aW9uIChVTUQpIHRvIHN1cHBvcnQgQU1ELCBDb21tb25KUy9Ob2RlLmpzLFxuICAgIC8vIFJoaW5vLCBhbmQgcGxhaW4gYnJvd3NlciBsb2FkaW5nLlxuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XG4gICAgICAgIGRlZmluZShbJ2V4cG9ydHMnXSwgZmFjdG9yeSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgZXhwb3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgZmFjdG9yeShleHBvcnRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBmYWN0b3J5KChyb290LmVzcHJpbWEgPSB7fSkpO1xuICAgIH1cbn0odGhpcywgZnVuY3Rpb24gKGV4cG9ydHMpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICB2YXIgVG9rZW4sXG4gICAgICAgIFRva2VuTmFtZSxcbiAgICAgICAgRm5FeHByVG9rZW5zLFxuICAgICAgICBTeW50YXgsXG4gICAgICAgIFBsYWNlSG9sZGVycyxcbiAgICAgICAgTWVzc2FnZXMsXG4gICAgICAgIFJlZ2V4LFxuICAgICAgICBzb3VyY2UsXG4gICAgICAgIHN0cmljdCxcbiAgICAgICAgc291cmNlVHlwZSxcbiAgICAgICAgaW5kZXgsXG4gICAgICAgIGxpbmVOdW1iZXIsXG4gICAgICAgIGxpbmVTdGFydCxcbiAgICAgICAgaGFzTGluZVRlcm1pbmF0b3IsXG4gICAgICAgIGxhc3RJbmRleCxcbiAgICAgICAgbGFzdExpbmVOdW1iZXIsXG4gICAgICAgIGxhc3RMaW5lU3RhcnQsXG4gICAgICAgIHN0YXJ0SW5kZXgsXG4gICAgICAgIHN0YXJ0TGluZU51bWJlcixcbiAgICAgICAgc3RhcnRMaW5lU3RhcnQsXG4gICAgICAgIHNjYW5uaW5nLFxuICAgICAgICBsZW5ndGgsXG4gICAgICAgIGxvb2thaGVhZCxcbiAgICAgICAgc3RhdGUsXG4gICAgICAgIGV4dHJhLFxuICAgICAgICBpc0JpbmRpbmdFbGVtZW50LFxuICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQsXG4gICAgICAgIGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvcjtcblxuICAgIFRva2VuID0ge1xuICAgICAgICBCb29sZWFuTGl0ZXJhbDogMSxcbiAgICAgICAgRU9GOiAyLFxuICAgICAgICBJZGVudGlmaWVyOiAzLFxuICAgICAgICBLZXl3b3JkOiA0LFxuICAgICAgICBOdWxsTGl0ZXJhbDogNSxcbiAgICAgICAgTnVtZXJpY0xpdGVyYWw6IDYsXG4gICAgICAgIFB1bmN0dWF0b3I6IDcsXG4gICAgICAgIFN0cmluZ0xpdGVyYWw6IDgsXG4gICAgICAgIFJlZ3VsYXJFeHByZXNzaW9uOiA5LFxuICAgICAgICBUZW1wbGF0ZTogMTBcbiAgICB9O1xuXG4gICAgVG9rZW5OYW1lID0ge307XG4gICAgVG9rZW5OYW1lW1Rva2VuLkJvb2xlYW5MaXRlcmFsXSA9ICdCb29sZWFuJztcbiAgICBUb2tlbk5hbWVbVG9rZW4uRU9GXSA9ICc8ZW5kPic7XG4gICAgVG9rZW5OYW1lW1Rva2VuLklkZW50aWZpZXJdID0gJ0lkZW50aWZpZXInO1xuICAgIFRva2VuTmFtZVtUb2tlbi5LZXl3b3JkXSA9ICdLZXl3b3JkJztcbiAgICBUb2tlbk5hbWVbVG9rZW4uTnVsbExpdGVyYWxdID0gJ051bGwnO1xuICAgIFRva2VuTmFtZVtUb2tlbi5OdW1lcmljTGl0ZXJhbF0gPSAnTnVtZXJpYyc7XG4gICAgVG9rZW5OYW1lW1Rva2VuLlB1bmN0dWF0b3JdID0gJ1B1bmN0dWF0b3InO1xuICAgIFRva2VuTmFtZVtUb2tlbi5TdHJpbmdMaXRlcmFsXSA9ICdTdHJpbmcnO1xuICAgIFRva2VuTmFtZVtUb2tlbi5SZWd1bGFyRXhwcmVzc2lvbl0gPSAnUmVndWxhckV4cHJlc3Npb24nO1xuICAgIFRva2VuTmFtZVtUb2tlbi5UZW1wbGF0ZV0gPSAnVGVtcGxhdGUnO1xuXG4gICAgLy8gQSBmdW5jdGlvbiBmb2xsb3dpbmcgb25lIG9mIHRob3NlIHRva2VucyBpcyBhbiBleHByZXNzaW9uLlxuICAgIEZuRXhwclRva2VucyA9IFsnKCcsICd7JywgJ1snLCAnaW4nLCAndHlwZW9mJywgJ2luc3RhbmNlb2YnLCAnbmV3JyxcbiAgICAgICAgICAgICAgICAgICAgJ3JldHVybicsICdjYXNlJywgJ2RlbGV0ZScsICd0aHJvdycsICd2b2lkJyxcbiAgICAgICAgICAgICAgICAgICAgLy8gYXNzaWdubWVudCBvcGVyYXRvcnNcbiAgICAgICAgICAgICAgICAgICAgJz0nLCAnKz0nLCAnLT0nLCAnKj0nLCAnLz0nLCAnJT0nLCAnPDw9JywgJz4+PScsICc+Pj49JyxcbiAgICAgICAgICAgICAgICAgICAgJyY9JywgJ3w9JywgJ149JywgJywnLFxuICAgICAgICAgICAgICAgICAgICAvLyBiaW5hcnkvdW5hcnkgb3BlcmF0b3JzXG4gICAgICAgICAgICAgICAgICAgICcrJywgJy0nLCAnKicsICcvJywgJyUnLCAnKysnLCAnLS0nLCAnPDwnLCAnPj4nLCAnPj4+JywgJyYnLFxuICAgICAgICAgICAgICAgICAgICAnfCcsICdeJywgJyEnLCAnficsICcmJicsICd8fCcsICc/JywgJzonLCAnPT09JywgJz09JywgJz49JyxcbiAgICAgICAgICAgICAgICAgICAgJzw9JywgJzwnLCAnPicsICchPScsICchPT0nXTtcblxuICAgIFN5bnRheCA9IHtcbiAgICAgICAgQXNzaWdubWVudEV4cHJlc3Npb246ICdBc3NpZ25tZW50RXhwcmVzc2lvbicsXG4gICAgICAgIEFzc2lnbm1lbnRQYXR0ZXJuOiAnQXNzaWdubWVudFBhdHRlcm4nLFxuICAgICAgICBBcnJheUV4cHJlc3Npb246ICdBcnJheUV4cHJlc3Npb24nLFxuICAgICAgICBBcnJheVBhdHRlcm46ICdBcnJheVBhdHRlcm4nLFxuICAgICAgICBBcnJvd0Z1bmN0aW9uRXhwcmVzc2lvbjogJ0Fycm93RnVuY3Rpb25FeHByZXNzaW9uJyxcbiAgICAgICAgQmxvY2tTdGF0ZW1lbnQ6ICdCbG9ja1N0YXRlbWVudCcsXG4gICAgICAgIEJpbmFyeUV4cHJlc3Npb246ICdCaW5hcnlFeHByZXNzaW9uJyxcbiAgICAgICAgQnJlYWtTdGF0ZW1lbnQ6ICdCcmVha1N0YXRlbWVudCcsXG4gICAgICAgIENhbGxFeHByZXNzaW9uOiAnQ2FsbEV4cHJlc3Npb24nLFxuICAgICAgICBDYXRjaENsYXVzZTogJ0NhdGNoQ2xhdXNlJyxcbiAgICAgICAgQ2xhc3NCb2R5OiAnQ2xhc3NCb2R5JyxcbiAgICAgICAgQ2xhc3NEZWNsYXJhdGlvbjogJ0NsYXNzRGVjbGFyYXRpb24nLFxuICAgICAgICBDbGFzc0V4cHJlc3Npb246ICdDbGFzc0V4cHJlc3Npb24nLFxuICAgICAgICBDb25kaXRpb25hbEV4cHJlc3Npb246ICdDb25kaXRpb25hbEV4cHJlc3Npb24nLFxuICAgICAgICBDb250aW51ZVN0YXRlbWVudDogJ0NvbnRpbnVlU3RhdGVtZW50JyxcbiAgICAgICAgRG9XaGlsZVN0YXRlbWVudDogJ0RvV2hpbGVTdGF0ZW1lbnQnLFxuICAgICAgICBEZWJ1Z2dlclN0YXRlbWVudDogJ0RlYnVnZ2VyU3RhdGVtZW50JyxcbiAgICAgICAgRW1wdHlTdGF0ZW1lbnQ6ICdFbXB0eVN0YXRlbWVudCcsXG4gICAgICAgIEV4cG9ydEFsbERlY2xhcmF0aW9uOiAnRXhwb3J0QWxsRGVjbGFyYXRpb24nLFxuICAgICAgICBFeHBvcnREZWZhdWx0RGVjbGFyYXRpb246ICdFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24nLFxuICAgICAgICBFeHBvcnROYW1lZERlY2xhcmF0aW9uOiAnRXhwb3J0TmFtZWREZWNsYXJhdGlvbicsXG4gICAgICAgIEV4cG9ydFNwZWNpZmllcjogJ0V4cG9ydFNwZWNpZmllcicsXG4gICAgICAgIEV4cHJlc3Npb25TdGF0ZW1lbnQ6ICdFeHByZXNzaW9uU3RhdGVtZW50JyxcbiAgICAgICAgRm9yU3RhdGVtZW50OiAnRm9yU3RhdGVtZW50JyxcbiAgICAgICAgRm9ySW5TdGF0ZW1lbnQ6ICdGb3JJblN0YXRlbWVudCcsXG4gICAgICAgIEZ1bmN0aW9uRGVjbGFyYXRpb246ICdGdW5jdGlvbkRlY2xhcmF0aW9uJyxcbiAgICAgICAgRnVuY3Rpb25FeHByZXNzaW9uOiAnRnVuY3Rpb25FeHByZXNzaW9uJyxcbiAgICAgICAgSWRlbnRpZmllcjogJ0lkZW50aWZpZXInLFxuICAgICAgICBJZlN0YXRlbWVudDogJ0lmU3RhdGVtZW50JyxcbiAgICAgICAgSW1wb3J0RGVjbGFyYXRpb246ICdJbXBvcnREZWNsYXJhdGlvbicsXG4gICAgICAgIEltcG9ydERlZmF1bHRTcGVjaWZpZXI6ICdJbXBvcnREZWZhdWx0U3BlY2lmaWVyJyxcbiAgICAgICAgSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyOiAnSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyJyxcbiAgICAgICAgSW1wb3J0U3BlY2lmaWVyOiAnSW1wb3J0U3BlY2lmaWVyJyxcbiAgICAgICAgTGl0ZXJhbDogJ0xpdGVyYWwnLFxuICAgICAgICBMYWJlbGVkU3RhdGVtZW50OiAnTGFiZWxlZFN0YXRlbWVudCcsXG4gICAgICAgIExvZ2ljYWxFeHByZXNzaW9uOiAnTG9naWNhbEV4cHJlc3Npb24nLFxuICAgICAgICBNZW1iZXJFeHByZXNzaW9uOiAnTWVtYmVyRXhwcmVzc2lvbicsXG4gICAgICAgIE1ldGhvZERlZmluaXRpb246ICdNZXRob2REZWZpbml0aW9uJyxcbiAgICAgICAgTmV3RXhwcmVzc2lvbjogJ05ld0V4cHJlc3Npb24nLFxuICAgICAgICBPYmplY3RFeHByZXNzaW9uOiAnT2JqZWN0RXhwcmVzc2lvbicsXG4gICAgICAgIE9iamVjdFBhdHRlcm46ICdPYmplY3RQYXR0ZXJuJyxcbiAgICAgICAgUHJvZ3JhbTogJ1Byb2dyYW0nLFxuICAgICAgICBQcm9wZXJ0eTogJ1Byb3BlcnR5JyxcbiAgICAgICAgUmVzdEVsZW1lbnQ6ICdSZXN0RWxlbWVudCcsXG4gICAgICAgIFJldHVyblN0YXRlbWVudDogJ1JldHVyblN0YXRlbWVudCcsXG4gICAgICAgIFNlcXVlbmNlRXhwcmVzc2lvbjogJ1NlcXVlbmNlRXhwcmVzc2lvbicsXG4gICAgICAgIFNwcmVhZEVsZW1lbnQ6ICdTcHJlYWRFbGVtZW50JyxcbiAgICAgICAgU3VwZXI6ICdTdXBlcicsXG4gICAgICAgIFN3aXRjaENhc2U6ICdTd2l0Y2hDYXNlJyxcbiAgICAgICAgU3dpdGNoU3RhdGVtZW50OiAnU3dpdGNoU3RhdGVtZW50JyxcbiAgICAgICAgVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uOiAnVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uJyxcbiAgICAgICAgVGVtcGxhdGVFbGVtZW50OiAnVGVtcGxhdGVFbGVtZW50JyxcbiAgICAgICAgVGVtcGxhdGVMaXRlcmFsOiAnVGVtcGxhdGVMaXRlcmFsJyxcbiAgICAgICAgVGhpc0V4cHJlc3Npb246ICdUaGlzRXhwcmVzc2lvbicsXG4gICAgICAgIFRocm93U3RhdGVtZW50OiAnVGhyb3dTdGF0ZW1lbnQnLFxuICAgICAgICBUcnlTdGF0ZW1lbnQ6ICdUcnlTdGF0ZW1lbnQnLFxuICAgICAgICBVbmFyeUV4cHJlc3Npb246ICdVbmFyeUV4cHJlc3Npb24nLFxuICAgICAgICBVcGRhdGVFeHByZXNzaW9uOiAnVXBkYXRlRXhwcmVzc2lvbicsXG4gICAgICAgIFZhcmlhYmxlRGVjbGFyYXRpb246ICdWYXJpYWJsZURlY2xhcmF0aW9uJyxcbiAgICAgICAgVmFyaWFibGVEZWNsYXJhdG9yOiAnVmFyaWFibGVEZWNsYXJhdG9yJyxcbiAgICAgICAgV2hpbGVTdGF0ZW1lbnQ6ICdXaGlsZVN0YXRlbWVudCcsXG4gICAgICAgIFdpdGhTdGF0ZW1lbnQ6ICdXaXRoU3RhdGVtZW50J1xuICAgIH07XG5cbiAgICBQbGFjZUhvbGRlcnMgPSB7XG4gICAgICAgIEFycm93UGFyYW1ldGVyUGxhY2VIb2xkZXI6ICdBcnJvd1BhcmFtZXRlclBsYWNlSG9sZGVyJ1xuICAgIH07XG5cbiAgICAvLyBFcnJvciBtZXNzYWdlcyBzaG91bGQgYmUgaWRlbnRpY2FsIHRvIFY4LlxuICAgIE1lc3NhZ2VzID0ge1xuICAgICAgICBVbmV4cGVjdGVkVG9rZW46ICdVbmV4cGVjdGVkIHRva2VuICUwJyxcbiAgICAgICAgVW5leHBlY3RlZE51bWJlcjogJ1VuZXhwZWN0ZWQgbnVtYmVyJyxcbiAgICAgICAgVW5leHBlY3RlZFN0cmluZzogJ1VuZXhwZWN0ZWQgc3RyaW5nJyxcbiAgICAgICAgVW5leHBlY3RlZElkZW50aWZpZXI6ICdVbmV4cGVjdGVkIGlkZW50aWZpZXInLFxuICAgICAgICBVbmV4cGVjdGVkUmVzZXJ2ZWQ6ICdVbmV4cGVjdGVkIHJlc2VydmVkIHdvcmQnLFxuICAgICAgICBVbmV4cGVjdGVkVGVtcGxhdGU6ICdVbmV4cGVjdGVkIHF1YXNpICUwJyxcbiAgICAgICAgVW5leHBlY3RlZEVPUzogJ1VuZXhwZWN0ZWQgZW5kIG9mIGlucHV0JyxcbiAgICAgICAgTmV3bGluZUFmdGVyVGhyb3c6ICdJbGxlZ2FsIG5ld2xpbmUgYWZ0ZXIgdGhyb3cnLFxuICAgICAgICBJbnZhbGlkUmVnRXhwOiAnSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb24nLFxuICAgICAgICBVbnRlcm1pbmF0ZWRSZWdFeHA6ICdJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogbWlzc2luZyAvJyxcbiAgICAgICAgSW52YWxpZExIU0luQXNzaWdubWVudDogJ0ludmFsaWQgbGVmdC1oYW5kIHNpZGUgaW4gYXNzaWdubWVudCcsXG4gICAgICAgIEludmFsaWRMSFNJbkZvckluOiAnSW52YWxpZCBsZWZ0LWhhbmQgc2lkZSBpbiBmb3ItaW4nLFxuICAgICAgICBNdWx0aXBsZURlZmF1bHRzSW5Td2l0Y2g6ICdNb3JlIHRoYW4gb25lIGRlZmF1bHQgY2xhdXNlIGluIHN3aXRjaCBzdGF0ZW1lbnQnLFxuICAgICAgICBOb0NhdGNoT3JGaW5hbGx5OiAnTWlzc2luZyBjYXRjaCBvciBmaW5hbGx5IGFmdGVyIHRyeScsXG4gICAgICAgIFVua25vd25MYWJlbDogJ1VuZGVmaW5lZCBsYWJlbCBcXCclMFxcJycsXG4gICAgICAgIFJlZGVjbGFyYXRpb246ICclMCBcXCclMVxcJyBoYXMgYWxyZWFkeSBiZWVuIGRlY2xhcmVkJyxcbiAgICAgICAgSWxsZWdhbENvbnRpbnVlOiAnSWxsZWdhbCBjb250aW51ZSBzdGF0ZW1lbnQnLFxuICAgICAgICBJbGxlZ2FsQnJlYWs6ICdJbGxlZ2FsIGJyZWFrIHN0YXRlbWVudCcsXG4gICAgICAgIElsbGVnYWxSZXR1cm46ICdJbGxlZ2FsIHJldHVybiBzdGF0ZW1lbnQnLFxuICAgICAgICBTdHJpY3RNb2RlV2l0aDogJ1N0cmljdCBtb2RlIGNvZGUgbWF5IG5vdCBpbmNsdWRlIGEgd2l0aCBzdGF0ZW1lbnQnLFxuICAgICAgICBTdHJpY3RDYXRjaFZhcmlhYmxlOiAnQ2F0Y2ggdmFyaWFibGUgbWF5IG5vdCBiZSBldmFsIG9yIGFyZ3VtZW50cyBpbiBzdHJpY3QgbW9kZScsXG4gICAgICAgIFN0cmljdFZhck5hbWU6ICdWYXJpYWJsZSBuYW1lIG1heSBub3QgYmUgZXZhbCBvciBhcmd1bWVudHMgaW4gc3RyaWN0IG1vZGUnLFxuICAgICAgICBTdHJpY3RQYXJhbU5hbWU6ICdQYXJhbWV0ZXIgbmFtZSBldmFsIG9yIGFyZ3VtZW50cyBpcyBub3QgYWxsb3dlZCBpbiBzdHJpY3QgbW9kZScsXG4gICAgICAgIFN0cmljdFBhcmFtRHVwZTogJ1N0cmljdCBtb2RlIGZ1bmN0aW9uIG1heSBub3QgaGF2ZSBkdXBsaWNhdGUgcGFyYW1ldGVyIG5hbWVzJyxcbiAgICAgICAgU3RyaWN0RnVuY3Rpb25OYW1lOiAnRnVuY3Rpb24gbmFtZSBtYXkgbm90IGJlIGV2YWwgb3IgYXJndW1lbnRzIGluIHN0cmljdCBtb2RlJyxcbiAgICAgICAgU3RyaWN0T2N0YWxMaXRlcmFsOiAnT2N0YWwgbGl0ZXJhbHMgYXJlIG5vdCBhbGxvd2VkIGluIHN0cmljdCBtb2RlLicsXG4gICAgICAgIFN0cmljdERlbGV0ZTogJ0RlbGV0ZSBvZiBhbiB1bnF1YWxpZmllZCBpZGVudGlmaWVyIGluIHN0cmljdCBtb2RlLicsXG4gICAgICAgIFN0cmljdExIU0Fzc2lnbm1lbnQ6ICdBc3NpZ25tZW50IHRvIGV2YWwgb3IgYXJndW1lbnRzIGlzIG5vdCBhbGxvd2VkIGluIHN0cmljdCBtb2RlJyxcbiAgICAgICAgU3RyaWN0TEhTUG9zdGZpeDogJ1Bvc3RmaXggaW5jcmVtZW50L2RlY3JlbWVudCBtYXkgbm90IGhhdmUgZXZhbCBvciBhcmd1bWVudHMgb3BlcmFuZCBpbiBzdHJpY3QgbW9kZScsXG4gICAgICAgIFN0cmljdExIU1ByZWZpeDogJ1ByZWZpeCBpbmNyZW1lbnQvZGVjcmVtZW50IG1heSBub3QgaGF2ZSBldmFsIG9yIGFyZ3VtZW50cyBvcGVyYW5kIGluIHN0cmljdCBtb2RlJyxcbiAgICAgICAgU3RyaWN0UmVzZXJ2ZWRXb3JkOiAnVXNlIG9mIGZ1dHVyZSByZXNlcnZlZCB3b3JkIGluIHN0cmljdCBtb2RlJyxcbiAgICAgICAgVGVtcGxhdGVPY3RhbExpdGVyYWw6ICdPY3RhbCBsaXRlcmFscyBhcmUgbm90IGFsbG93ZWQgaW4gdGVtcGxhdGUgc3RyaW5ncy4nLFxuICAgICAgICBQYXJhbWV0ZXJBZnRlclJlc3RQYXJhbWV0ZXI6ICdSZXN0IHBhcmFtZXRlciBtdXN0IGJlIGxhc3QgZm9ybWFsIHBhcmFtZXRlcicsXG4gICAgICAgIERlZmF1bHRSZXN0UGFyYW1ldGVyOiAnVW5leHBlY3RlZCB0b2tlbiA9JyxcbiAgICAgICAgT2JqZWN0UGF0dGVybkFzUmVzdFBhcmFtZXRlcjogJ1VuZXhwZWN0ZWQgdG9rZW4geycsXG4gICAgICAgIER1cGxpY2F0ZVByb3RvUHJvcGVydHk6ICdEdXBsaWNhdGUgX19wcm90b19fIGZpZWxkcyBhcmUgbm90IGFsbG93ZWQgaW4gb2JqZWN0IGxpdGVyYWxzJyxcbiAgICAgICAgQ29uc3RydWN0b3JTcGVjaWFsTWV0aG9kOiAnQ2xhc3MgY29uc3RydWN0b3IgbWF5IG5vdCBiZSBhbiBhY2Nlc3NvcicsXG4gICAgICAgIER1cGxpY2F0ZUNvbnN0cnVjdG9yOiAnQSBjbGFzcyBtYXkgb25seSBoYXZlIG9uZSBjb25zdHJ1Y3RvcicsXG4gICAgICAgIFN0YXRpY1Byb3RvdHlwZTogJ0NsYXNzZXMgbWF5IG5vdCBoYXZlIHN0YXRpYyBwcm9wZXJ0eSBuYW1lZCBwcm90b3R5cGUnLFxuICAgICAgICBNaXNzaW5nRnJvbUNsYXVzZTogJ1VuZXhwZWN0ZWQgdG9rZW4nLFxuICAgICAgICBOb0FzQWZ0ZXJJbXBvcnROYW1lc3BhY2U6ICdVbmV4cGVjdGVkIHRva2VuJyxcbiAgICAgICAgSW52YWxpZE1vZHVsZVNwZWNpZmllcjogJ1VuZXhwZWN0ZWQgdG9rZW4nLFxuICAgICAgICBJbGxlZ2FsSW1wb3J0RGVjbGFyYXRpb246ICdVbmV4cGVjdGVkIHRva2VuJyxcbiAgICAgICAgSWxsZWdhbEV4cG9ydERlY2xhcmF0aW9uOiAnVW5leHBlY3RlZCB0b2tlbidcbiAgICB9O1xuXG4gICAgLy8gU2VlIGFsc28gdG9vbHMvZ2VuZXJhdGUtdW5pY29kZS1yZWdleC5weS5cbiAgICBSZWdleCA9IHtcbiAgICAgICAgTm9uQXNjaWlJZGVudGlmaWVyU3RhcnQ6IG5ldyBSZWdFeHAoJ1tcXHhBQVxceEI1XFx4QkFcXHhDMC1cXHhENlxceEQ4LVxceEY2XFx4RjgtXFx1MDJDMVxcdTAyQzYtXFx1MDJEMVxcdTAyRTAtXFx1MDJFNFxcdTAyRUNcXHUwMkVFXFx1MDM3MC1cXHUwMzc0XFx1MDM3NlxcdTAzNzdcXHUwMzdBLVxcdTAzN0RcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVcXHUwM0Y3LVxcdTA0ODFcXHUwNDhBLVxcdTA1MkZcXHUwNTMxLVxcdTA1NTZcXHUwNTU5XFx1MDU2MS1cXHUwNTg3XFx1MDVEMC1cXHUwNUVBXFx1MDVGMC1cXHUwNUYyXFx1MDYyMC1cXHUwNjRBXFx1MDY2RVxcdTA2NkZcXHUwNjcxLVxcdTA2RDNcXHUwNkQ1XFx1MDZFNVxcdTA2RTZcXHUwNkVFXFx1MDZFRlxcdTA2RkEtXFx1MDZGQ1xcdTA2RkZcXHUwNzEwXFx1MDcxMi1cXHUwNzJGXFx1MDc0RC1cXHUwN0E1XFx1MDdCMVxcdTA3Q0EtXFx1MDdFQVxcdTA3RjRcXHUwN0Y1XFx1MDdGQVxcdTA4MDAtXFx1MDgxNVxcdTA4MUFcXHUwODI0XFx1MDgyOFxcdTA4NDAtXFx1MDg1OFxcdTA4QTAtXFx1MDhCMlxcdTA5MDQtXFx1MDkzOVxcdTA5M0RcXHUwOTUwXFx1MDk1OC1cXHUwOTYxXFx1MDk3MS1cXHUwOTgwXFx1MDk4NS1cXHUwOThDXFx1MDk4RlxcdTA5OTBcXHUwOTkzLVxcdTA5QThcXHUwOUFBLVxcdTA5QjBcXHUwOUIyXFx1MDlCNi1cXHUwOUI5XFx1MDlCRFxcdTA5Q0VcXHUwOURDXFx1MDlERFxcdTA5REYtXFx1MDlFMVxcdTA5RjBcXHUwOUYxXFx1MEEwNS1cXHUwQTBBXFx1MEEwRlxcdTBBMTBcXHUwQTEzLVxcdTBBMjhcXHUwQTJBLVxcdTBBMzBcXHUwQTMyXFx1MEEzM1xcdTBBMzVcXHUwQTM2XFx1MEEzOFxcdTBBMzlcXHUwQTU5LVxcdTBBNUNcXHUwQTVFXFx1MEE3Mi1cXHUwQTc0XFx1MEE4NS1cXHUwQThEXFx1MEE4Ri1cXHUwQTkxXFx1MEE5My1cXHUwQUE4XFx1MEFBQS1cXHUwQUIwXFx1MEFCMlxcdTBBQjNcXHUwQUI1LVxcdTBBQjlcXHUwQUJEXFx1MEFEMFxcdTBBRTBcXHUwQUUxXFx1MEIwNS1cXHUwQjBDXFx1MEIwRlxcdTBCMTBcXHUwQjEzLVxcdTBCMjhcXHUwQjJBLVxcdTBCMzBcXHUwQjMyXFx1MEIzM1xcdTBCMzUtXFx1MEIzOVxcdTBCM0RcXHUwQjVDXFx1MEI1RFxcdTBCNUYtXFx1MEI2MVxcdTBCNzFcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCRDBcXHUwQzA1LVxcdTBDMENcXHUwQzBFLVxcdTBDMTBcXHUwQzEyLVxcdTBDMjhcXHUwQzJBLVxcdTBDMzlcXHUwQzNEXFx1MEM1OFxcdTBDNTlcXHUwQzYwXFx1MEM2MVxcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkRcXHUwQ0RFXFx1MENFMFxcdTBDRTFcXHUwQ0YxXFx1MENGMlxcdTBEMDUtXFx1MEQwQ1xcdTBEMEUtXFx1MEQxMFxcdTBEMTItXFx1MEQzQVxcdTBEM0RcXHUwRDRFXFx1MEQ2MFxcdTBENjFcXHUwRDdBLVxcdTBEN0ZcXHUwRDg1LVxcdTBEOTZcXHUwRDlBLVxcdTBEQjFcXHUwREIzLVxcdTBEQkJcXHUwREJEXFx1MERDMC1cXHUwREM2XFx1MEUwMS1cXHUwRTMwXFx1MEUzMlxcdTBFMzNcXHUwRTQwLVxcdTBFNDZcXHUwRTgxXFx1MEU4MlxcdTBFODRcXHUwRTg3XFx1MEU4OFxcdTBFOEFcXHUwRThEXFx1MEU5NC1cXHUwRTk3XFx1MEU5OS1cXHUwRTlGXFx1MEVBMS1cXHUwRUEzXFx1MEVBNVxcdTBFQTdcXHUwRUFBXFx1MEVBQlxcdTBFQUQtXFx1MEVCMFxcdTBFQjJcXHUwRUIzXFx1MEVCRFxcdTBFQzAtXFx1MEVDNFxcdTBFQzZcXHUwRURDLVxcdTBFREZcXHUwRjAwXFx1MEY0MC1cXHUwRjQ3XFx1MEY0OS1cXHUwRjZDXFx1MEY4OC1cXHUwRjhDXFx1MTAwMC1cXHUxMDJBXFx1MTAzRlxcdTEwNTAtXFx1MTA1NVxcdTEwNUEtXFx1MTA1RFxcdTEwNjFcXHUxMDY1XFx1MTA2NlxcdTEwNkUtXFx1MTA3MFxcdTEwNzUtXFx1MTA4MVxcdTEwOEVcXHUxMEEwLVxcdTEwQzVcXHUxMEM3XFx1MTBDRFxcdTEwRDAtXFx1MTBGQVxcdTEwRkMtXFx1MTI0OFxcdTEyNEEtXFx1MTI0RFxcdTEyNTAtXFx1MTI1NlxcdTEyNThcXHUxMjVBLVxcdTEyNURcXHUxMjYwLVxcdTEyODhcXHUxMjhBLVxcdTEyOERcXHUxMjkwLVxcdTEyQjBcXHUxMkIyLVxcdTEyQjVcXHUxMkI4LVxcdTEyQkVcXHUxMkMwXFx1MTJDMi1cXHUxMkM1XFx1MTJDOC1cXHUxMkQ2XFx1MTJEOC1cXHUxMzEwXFx1MTMxMi1cXHUxMzE1XFx1MTMxOC1cXHUxMzVBXFx1MTM4MC1cXHUxMzhGXFx1MTNBMC1cXHUxM0Y0XFx1MTQwMS1cXHUxNjZDXFx1MTY2Ri1cXHUxNjdGXFx1MTY4MS1cXHUxNjlBXFx1MTZBMC1cXHUxNkVBXFx1MTZFRS1cXHUxNkY4XFx1MTcwMC1cXHUxNzBDXFx1MTcwRS1cXHUxNzExXFx1MTcyMC1cXHUxNzMxXFx1MTc0MC1cXHUxNzUxXFx1MTc2MC1cXHUxNzZDXFx1MTc2RS1cXHUxNzcwXFx1MTc4MC1cXHUxN0IzXFx1MTdEN1xcdTE3RENcXHUxODIwLVxcdTE4NzdcXHUxODgwLVxcdTE4QThcXHUxOEFBXFx1MThCMC1cXHUxOEY1XFx1MTkwMC1cXHUxOTFFXFx1MTk1MC1cXHUxOTZEXFx1MTk3MC1cXHUxOTc0XFx1MTk4MC1cXHUxOUFCXFx1MTlDMS1cXHUxOUM3XFx1MUEwMC1cXHUxQTE2XFx1MUEyMC1cXHUxQTU0XFx1MUFBN1xcdTFCMDUtXFx1MUIzM1xcdTFCNDUtXFx1MUI0QlxcdTFCODMtXFx1MUJBMFxcdTFCQUVcXHUxQkFGXFx1MUJCQS1cXHUxQkU1XFx1MUMwMC1cXHUxQzIzXFx1MUM0RC1cXHUxQzRGXFx1MUM1QS1cXHUxQzdEXFx1MUNFOS1cXHUxQ0VDXFx1MUNFRS1cXHUxQ0YxXFx1MUNGNVxcdTFDRjZcXHUxRDAwLVxcdTFEQkZcXHUxRTAwLVxcdTFGMTVcXHUxRjE4LVxcdTFGMURcXHUxRjIwLVxcdTFGNDVcXHUxRjQ4LVxcdTFGNERcXHUxRjUwLVxcdTFGNTdcXHUxRjU5XFx1MUY1QlxcdTFGNURcXHUxRjVGLVxcdTFGN0RcXHUxRjgwLVxcdTFGQjRcXHUxRkI2LVxcdTFGQkNcXHUxRkJFXFx1MUZDMi1cXHUxRkM0XFx1MUZDNi1cXHUxRkNDXFx1MUZEMC1cXHUxRkQzXFx1MUZENi1cXHUxRkRCXFx1MUZFMC1cXHUxRkVDXFx1MUZGMi1cXHUxRkY0XFx1MUZGNi1cXHUxRkZDXFx1MjA3MVxcdTIwN0ZcXHUyMDkwLVxcdTIwOUNcXHUyMTAyXFx1MjEwN1xcdTIxMEEtXFx1MjExM1xcdTIxMTVcXHUyMTE5LVxcdTIxMURcXHUyMTI0XFx1MjEyNlxcdTIxMjhcXHUyMTJBLVxcdTIxMkRcXHUyMTJGLVxcdTIxMzlcXHUyMTNDLVxcdTIxM0ZcXHUyMTQ1LVxcdTIxNDlcXHUyMTRFXFx1MjE2MC1cXHUyMTg4XFx1MkMwMC1cXHUyQzJFXFx1MkMzMC1cXHUyQzVFXFx1MkM2MC1cXHUyQ0U0XFx1MkNFQi1cXHUyQ0VFXFx1MkNGMlxcdTJDRjNcXHUyRDAwLVxcdTJEMjVcXHUyRDI3XFx1MkQyRFxcdTJEMzAtXFx1MkQ2N1xcdTJENkZcXHUyRDgwLVxcdTJEOTZcXHUyREEwLVxcdTJEQTZcXHUyREE4LVxcdTJEQUVcXHUyREIwLVxcdTJEQjZcXHUyREI4LVxcdTJEQkVcXHUyREMwLVxcdTJEQzZcXHUyREM4LVxcdTJEQ0VcXHUyREQwLVxcdTJERDZcXHUyREQ4LVxcdTJEREVcXHUyRTJGXFx1MzAwNS1cXHUzMDA3XFx1MzAyMS1cXHUzMDI5XFx1MzAzMS1cXHUzMDM1XFx1MzAzOC1cXHUzMDNDXFx1MzA0MS1cXHUzMDk2XFx1MzA5RC1cXHUzMDlGXFx1MzBBMS1cXHUzMEZBXFx1MzBGQy1cXHUzMEZGXFx1MzEwNS1cXHUzMTJEXFx1MzEzMS1cXHUzMThFXFx1MzFBMC1cXHUzMUJBXFx1MzFGMC1cXHUzMUZGXFx1MzQwMC1cXHU0REI1XFx1NEUwMC1cXHU5RkNDXFx1QTAwMC1cXHVBNDhDXFx1QTREMC1cXHVBNEZEXFx1QTUwMC1cXHVBNjBDXFx1QTYxMC1cXHVBNjFGXFx1QTYyQVxcdUE2MkJcXHVBNjQwLVxcdUE2NkVcXHVBNjdGLVxcdUE2OURcXHVBNkEwLVxcdUE2RUZcXHVBNzE3LVxcdUE3MUZcXHVBNzIyLVxcdUE3ODhcXHVBNzhCLVxcdUE3OEVcXHVBNzkwLVxcdUE3QURcXHVBN0IwXFx1QTdCMVxcdUE3RjctXFx1QTgwMVxcdUE4MDMtXFx1QTgwNVxcdUE4MDctXFx1QTgwQVxcdUE4MEMtXFx1QTgyMlxcdUE4NDAtXFx1QTg3M1xcdUE4ODItXFx1QThCM1xcdUE4RjItXFx1QThGN1xcdUE4RkJcXHVBOTBBLVxcdUE5MjVcXHVBOTMwLVxcdUE5NDZcXHVBOTYwLVxcdUE5N0NcXHVBOTg0LVxcdUE5QjJcXHVBOUNGXFx1QTlFMC1cXHVBOUU0XFx1QTlFNi1cXHVBOUVGXFx1QTlGQS1cXHVBOUZFXFx1QUEwMC1cXHVBQTI4XFx1QUE0MC1cXHVBQTQyXFx1QUE0NC1cXHVBQTRCXFx1QUE2MC1cXHVBQTc2XFx1QUE3QVxcdUFBN0UtXFx1QUFBRlxcdUFBQjFcXHVBQUI1XFx1QUFCNlxcdUFBQjktXFx1QUFCRFxcdUFBQzBcXHVBQUMyXFx1QUFEQi1cXHVBQUREXFx1QUFFMC1cXHVBQUVBXFx1QUFGMi1cXHVBQUY0XFx1QUIwMS1cXHVBQjA2XFx1QUIwOS1cXHVBQjBFXFx1QUIxMS1cXHVBQjE2XFx1QUIyMC1cXHVBQjI2XFx1QUIyOC1cXHVBQjJFXFx1QUIzMC1cXHVBQjVBXFx1QUI1Qy1cXHVBQjVGXFx1QUI2NFxcdUFCNjVcXHVBQkMwLVxcdUFCRTJcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFEXFx1RkIxRi1cXHVGQjI4XFx1RkIyQS1cXHVGQjM2XFx1RkIzOC1cXHVGQjNDXFx1RkIzRVxcdUZCNDBcXHVGQjQxXFx1RkI0M1xcdUZCNDRcXHVGQjQ2LVxcdUZCQjFcXHVGQkQzLVxcdUZEM0RcXHVGRDUwLVxcdUZEOEZcXHVGRDkyLVxcdUZEQzdcXHVGREYwLVxcdUZERkJcXHVGRTcwLVxcdUZFNzRcXHVGRTc2LVxcdUZFRkNcXHVGRjIxLVxcdUZGM0FcXHVGRjQxLVxcdUZGNUFcXHVGRjY2LVxcdUZGQkVcXHVGRkMyLVxcdUZGQzdcXHVGRkNBLVxcdUZGQ0ZcXHVGRkQyLVxcdUZGRDdcXHVGRkRBLVxcdUZGRENdJyksXG4gICAgICAgIE5vbkFzY2lpSWRlbnRpZmllclBhcnQ6IG5ldyBSZWdFeHAoJ1tcXHhBQVxceEI1XFx4QkFcXHhDMC1cXHhENlxceEQ4LVxceEY2XFx4RjgtXFx1MDJDMVxcdTAyQzYtXFx1MDJEMVxcdTAyRTAtXFx1MDJFNFxcdTAyRUNcXHUwMkVFXFx1MDMwMC1cXHUwMzc0XFx1MDM3NlxcdTAzNzdcXHUwMzdBLVxcdTAzN0RcXHUwMzdGXFx1MDM4NlxcdTAzODgtXFx1MDM4QVxcdTAzOENcXHUwMzhFLVxcdTAzQTFcXHUwM0EzLVxcdTAzRjVcXHUwM0Y3LVxcdTA0ODFcXHUwNDgzLVxcdTA0ODdcXHUwNDhBLVxcdTA1MkZcXHUwNTMxLVxcdTA1NTZcXHUwNTU5XFx1MDU2MS1cXHUwNTg3XFx1MDU5MS1cXHUwNUJEXFx1MDVCRlxcdTA1QzFcXHUwNUMyXFx1MDVDNFxcdTA1QzVcXHUwNUM3XFx1MDVEMC1cXHUwNUVBXFx1MDVGMC1cXHUwNUYyXFx1MDYxMC1cXHUwNjFBXFx1MDYyMC1cXHUwNjY5XFx1MDY2RS1cXHUwNkQzXFx1MDZENS1cXHUwNkRDXFx1MDZERi1cXHUwNkU4XFx1MDZFQS1cXHUwNkZDXFx1MDZGRlxcdTA3MTAtXFx1MDc0QVxcdTA3NEQtXFx1MDdCMVxcdTA3QzAtXFx1MDdGNVxcdTA3RkFcXHUwODAwLVxcdTA4MkRcXHUwODQwLVxcdTA4NUJcXHUwOEEwLVxcdTA4QjJcXHUwOEU0LVxcdTA5NjNcXHUwOTY2LVxcdTA5NkZcXHUwOTcxLVxcdTA5ODNcXHUwOTg1LVxcdTA5OENcXHUwOThGXFx1MDk5MFxcdTA5OTMtXFx1MDlBOFxcdTA5QUEtXFx1MDlCMFxcdTA5QjJcXHUwOUI2LVxcdTA5QjlcXHUwOUJDLVxcdTA5QzRcXHUwOUM3XFx1MDlDOFxcdTA5Q0ItXFx1MDlDRVxcdTA5RDdcXHUwOURDXFx1MDlERFxcdTA5REYtXFx1MDlFM1xcdTA5RTYtXFx1MDlGMVxcdTBBMDEtXFx1MEEwM1xcdTBBMDUtXFx1MEEwQVxcdTBBMEZcXHUwQTEwXFx1MEExMy1cXHUwQTI4XFx1MEEyQS1cXHUwQTMwXFx1MEEzMlxcdTBBMzNcXHUwQTM1XFx1MEEzNlxcdTBBMzhcXHUwQTM5XFx1MEEzQ1xcdTBBM0UtXFx1MEE0MlxcdTBBNDdcXHUwQTQ4XFx1MEE0Qi1cXHUwQTREXFx1MEE1MVxcdTBBNTktXFx1MEE1Q1xcdTBBNUVcXHUwQTY2LVxcdTBBNzVcXHUwQTgxLVxcdTBBODNcXHUwQTg1LVxcdTBBOERcXHUwQThGLVxcdTBBOTFcXHUwQTkzLVxcdTBBQThcXHUwQUFBLVxcdTBBQjBcXHUwQUIyXFx1MEFCM1xcdTBBQjUtXFx1MEFCOVxcdTBBQkMtXFx1MEFDNVxcdTBBQzctXFx1MEFDOVxcdTBBQ0ItXFx1MEFDRFxcdTBBRDBcXHUwQUUwLVxcdTBBRTNcXHUwQUU2LVxcdTBBRUZcXHUwQjAxLVxcdTBCMDNcXHUwQjA1LVxcdTBCMENcXHUwQjBGXFx1MEIxMFxcdTBCMTMtXFx1MEIyOFxcdTBCMkEtXFx1MEIzMFxcdTBCMzJcXHUwQjMzXFx1MEIzNS1cXHUwQjM5XFx1MEIzQy1cXHUwQjQ0XFx1MEI0N1xcdTBCNDhcXHUwQjRCLVxcdTBCNERcXHUwQjU2XFx1MEI1N1xcdTBCNUNcXHUwQjVEXFx1MEI1Ri1cXHUwQjYzXFx1MEI2Ni1cXHUwQjZGXFx1MEI3MVxcdTBCODJcXHUwQjgzXFx1MEI4NS1cXHUwQjhBXFx1MEI4RS1cXHUwQjkwXFx1MEI5Mi1cXHUwQjk1XFx1MEI5OVxcdTBCOUFcXHUwQjlDXFx1MEI5RVxcdTBCOUZcXHUwQkEzXFx1MEJBNFxcdTBCQTgtXFx1MEJBQVxcdTBCQUUtXFx1MEJCOVxcdTBCQkUtXFx1MEJDMlxcdTBCQzYtXFx1MEJDOFxcdTBCQ0EtXFx1MEJDRFxcdTBCRDBcXHUwQkQ3XFx1MEJFNi1cXHUwQkVGXFx1MEMwMC1cXHUwQzAzXFx1MEMwNS1cXHUwQzBDXFx1MEMwRS1cXHUwQzEwXFx1MEMxMi1cXHUwQzI4XFx1MEMyQS1cXHUwQzM5XFx1MEMzRC1cXHUwQzQ0XFx1MEM0Ni1cXHUwQzQ4XFx1MEM0QS1cXHUwQzREXFx1MEM1NVxcdTBDNTZcXHUwQzU4XFx1MEM1OVxcdTBDNjAtXFx1MEM2M1xcdTBDNjYtXFx1MEM2RlxcdTBDODEtXFx1MEM4M1xcdTBDODUtXFx1MEM4Q1xcdTBDOEUtXFx1MEM5MFxcdTBDOTItXFx1MENBOFxcdTBDQUEtXFx1MENCM1xcdTBDQjUtXFx1MENCOVxcdTBDQkMtXFx1MENDNFxcdTBDQzYtXFx1MENDOFxcdTBDQ0EtXFx1MENDRFxcdTBDRDVcXHUwQ0Q2XFx1MENERVxcdTBDRTAtXFx1MENFM1xcdTBDRTYtXFx1MENFRlxcdTBDRjFcXHUwQ0YyXFx1MEQwMS1cXHUwRDAzXFx1MEQwNS1cXHUwRDBDXFx1MEQwRS1cXHUwRDEwXFx1MEQxMi1cXHUwRDNBXFx1MEQzRC1cXHUwRDQ0XFx1MEQ0Ni1cXHUwRDQ4XFx1MEQ0QS1cXHUwRDRFXFx1MEQ1N1xcdTBENjAtXFx1MEQ2M1xcdTBENjYtXFx1MEQ2RlxcdTBEN0EtXFx1MEQ3RlxcdTBEODJcXHUwRDgzXFx1MEQ4NS1cXHUwRDk2XFx1MEQ5QS1cXHUwREIxXFx1MERCMy1cXHUwREJCXFx1MERCRFxcdTBEQzAtXFx1MERDNlxcdTBEQ0FcXHUwRENGLVxcdTBERDRcXHUwREQ2XFx1MEREOC1cXHUwRERGXFx1MERFNi1cXHUwREVGXFx1MERGMlxcdTBERjNcXHUwRTAxLVxcdTBFM0FcXHUwRTQwLVxcdTBFNEVcXHUwRTUwLVxcdTBFNTlcXHUwRTgxXFx1MEU4MlxcdTBFODRcXHUwRTg3XFx1MEU4OFxcdTBFOEFcXHUwRThEXFx1MEU5NC1cXHUwRTk3XFx1MEU5OS1cXHUwRTlGXFx1MEVBMS1cXHUwRUEzXFx1MEVBNVxcdTBFQTdcXHUwRUFBXFx1MEVBQlxcdTBFQUQtXFx1MEVCOVxcdTBFQkItXFx1MEVCRFxcdTBFQzAtXFx1MEVDNFxcdTBFQzZcXHUwRUM4LVxcdTBFQ0RcXHUwRUQwLVxcdTBFRDlcXHUwRURDLVxcdTBFREZcXHUwRjAwXFx1MEYxOFxcdTBGMTlcXHUwRjIwLVxcdTBGMjlcXHUwRjM1XFx1MEYzN1xcdTBGMzlcXHUwRjNFLVxcdTBGNDdcXHUwRjQ5LVxcdTBGNkNcXHUwRjcxLVxcdTBGODRcXHUwRjg2LVxcdTBGOTdcXHUwRjk5LVxcdTBGQkNcXHUwRkM2XFx1MTAwMC1cXHUxMDQ5XFx1MTA1MC1cXHUxMDlEXFx1MTBBMC1cXHUxMEM1XFx1MTBDN1xcdTEwQ0RcXHUxMEQwLVxcdTEwRkFcXHUxMEZDLVxcdTEyNDhcXHUxMjRBLVxcdTEyNERcXHUxMjUwLVxcdTEyNTZcXHUxMjU4XFx1MTI1QS1cXHUxMjVEXFx1MTI2MC1cXHUxMjg4XFx1MTI4QS1cXHUxMjhEXFx1MTI5MC1cXHUxMkIwXFx1MTJCMi1cXHUxMkI1XFx1MTJCOC1cXHUxMkJFXFx1MTJDMFxcdTEyQzItXFx1MTJDNVxcdTEyQzgtXFx1MTJENlxcdTEyRDgtXFx1MTMxMFxcdTEzMTItXFx1MTMxNVxcdTEzMTgtXFx1MTM1QVxcdTEzNUQtXFx1MTM1RlxcdTEzODAtXFx1MTM4RlxcdTEzQTAtXFx1MTNGNFxcdTE0MDEtXFx1MTY2Q1xcdTE2NkYtXFx1MTY3RlxcdTE2ODEtXFx1MTY5QVxcdTE2QTAtXFx1MTZFQVxcdTE2RUUtXFx1MTZGOFxcdTE3MDAtXFx1MTcwQ1xcdTE3MEUtXFx1MTcxNFxcdTE3MjAtXFx1MTczNFxcdTE3NDAtXFx1MTc1M1xcdTE3NjAtXFx1MTc2Q1xcdTE3NkUtXFx1MTc3MFxcdTE3NzJcXHUxNzczXFx1MTc4MC1cXHUxN0QzXFx1MTdEN1xcdTE3RENcXHUxN0REXFx1MTdFMC1cXHUxN0U5XFx1MTgwQi1cXHUxODBEXFx1MTgxMC1cXHUxODE5XFx1MTgyMC1cXHUxODc3XFx1MTg4MC1cXHUxOEFBXFx1MThCMC1cXHUxOEY1XFx1MTkwMC1cXHUxOTFFXFx1MTkyMC1cXHUxOTJCXFx1MTkzMC1cXHUxOTNCXFx1MTk0Ni1cXHUxOTZEXFx1MTk3MC1cXHUxOTc0XFx1MTk4MC1cXHUxOUFCXFx1MTlCMC1cXHUxOUM5XFx1MTlEMC1cXHUxOUQ5XFx1MUEwMC1cXHUxQTFCXFx1MUEyMC1cXHUxQTVFXFx1MUE2MC1cXHUxQTdDXFx1MUE3Ri1cXHUxQTg5XFx1MUE5MC1cXHUxQTk5XFx1MUFBN1xcdTFBQjAtXFx1MUFCRFxcdTFCMDAtXFx1MUI0QlxcdTFCNTAtXFx1MUI1OVxcdTFCNkItXFx1MUI3M1xcdTFCODAtXFx1MUJGM1xcdTFDMDAtXFx1MUMzN1xcdTFDNDAtXFx1MUM0OVxcdTFDNEQtXFx1MUM3RFxcdTFDRDAtXFx1MUNEMlxcdTFDRDQtXFx1MUNGNlxcdTFDRjhcXHUxQ0Y5XFx1MUQwMC1cXHUxREY1XFx1MURGQy1cXHUxRjE1XFx1MUYxOC1cXHUxRjFEXFx1MUYyMC1cXHUxRjQ1XFx1MUY0OC1cXHUxRjREXFx1MUY1MC1cXHUxRjU3XFx1MUY1OVxcdTFGNUJcXHUxRjVEXFx1MUY1Ri1cXHUxRjdEXFx1MUY4MC1cXHUxRkI0XFx1MUZCNi1cXHUxRkJDXFx1MUZCRVxcdTFGQzItXFx1MUZDNFxcdTFGQzYtXFx1MUZDQ1xcdTFGRDAtXFx1MUZEM1xcdTFGRDYtXFx1MUZEQlxcdTFGRTAtXFx1MUZFQ1xcdTFGRjItXFx1MUZGNFxcdTFGRjYtXFx1MUZGQ1xcdTIwMENcXHUyMDBEXFx1MjAzRlxcdTIwNDBcXHUyMDU0XFx1MjA3MVxcdTIwN0ZcXHUyMDkwLVxcdTIwOUNcXHUyMEQwLVxcdTIwRENcXHUyMEUxXFx1MjBFNS1cXHUyMEYwXFx1MjEwMlxcdTIxMDdcXHUyMTBBLVxcdTIxMTNcXHUyMTE1XFx1MjExOS1cXHUyMTFEXFx1MjEyNFxcdTIxMjZcXHUyMTI4XFx1MjEyQS1cXHUyMTJEXFx1MjEyRi1cXHUyMTM5XFx1MjEzQy1cXHUyMTNGXFx1MjE0NS1cXHUyMTQ5XFx1MjE0RVxcdTIxNjAtXFx1MjE4OFxcdTJDMDAtXFx1MkMyRVxcdTJDMzAtXFx1MkM1RVxcdTJDNjAtXFx1MkNFNFxcdTJDRUItXFx1MkNGM1xcdTJEMDAtXFx1MkQyNVxcdTJEMjdcXHUyRDJEXFx1MkQzMC1cXHUyRDY3XFx1MkQ2RlxcdTJEN0YtXFx1MkQ5NlxcdTJEQTAtXFx1MkRBNlxcdTJEQTgtXFx1MkRBRVxcdTJEQjAtXFx1MkRCNlxcdTJEQjgtXFx1MkRCRVxcdTJEQzAtXFx1MkRDNlxcdTJEQzgtXFx1MkRDRVxcdTJERDAtXFx1MkRENlxcdTJERDgtXFx1MkRERVxcdTJERTAtXFx1MkRGRlxcdTJFMkZcXHUzMDA1LVxcdTMwMDdcXHUzMDIxLVxcdTMwMkZcXHUzMDMxLVxcdTMwMzVcXHUzMDM4LVxcdTMwM0NcXHUzMDQxLVxcdTMwOTZcXHUzMDk5XFx1MzA5QVxcdTMwOUQtXFx1MzA5RlxcdTMwQTEtXFx1MzBGQVxcdTMwRkMtXFx1MzBGRlxcdTMxMDUtXFx1MzEyRFxcdTMxMzEtXFx1MzE4RVxcdTMxQTAtXFx1MzFCQVxcdTMxRjAtXFx1MzFGRlxcdTM0MDAtXFx1NERCNVxcdTRFMDAtXFx1OUZDQ1xcdUEwMDAtXFx1QTQ4Q1xcdUE0RDAtXFx1QTRGRFxcdUE1MDAtXFx1QTYwQ1xcdUE2MTAtXFx1QTYyQlxcdUE2NDAtXFx1QTY2RlxcdUE2NzQtXFx1QTY3RFxcdUE2N0YtXFx1QTY5RFxcdUE2OUYtXFx1QTZGMVxcdUE3MTctXFx1QTcxRlxcdUE3MjItXFx1QTc4OFxcdUE3OEItXFx1QTc4RVxcdUE3OTAtXFx1QTdBRFxcdUE3QjBcXHVBN0IxXFx1QTdGNy1cXHVBODI3XFx1QTg0MC1cXHVBODczXFx1QTg4MC1cXHVBOEM0XFx1QThEMC1cXHVBOEQ5XFx1QThFMC1cXHVBOEY3XFx1QThGQlxcdUE5MDAtXFx1QTkyRFxcdUE5MzAtXFx1QTk1M1xcdUE5NjAtXFx1QTk3Q1xcdUE5ODAtXFx1QTlDMFxcdUE5Q0YtXFx1QTlEOVxcdUE5RTAtXFx1QTlGRVxcdUFBMDAtXFx1QUEzNlxcdUFBNDAtXFx1QUE0RFxcdUFBNTAtXFx1QUE1OVxcdUFBNjAtXFx1QUE3NlxcdUFBN0EtXFx1QUFDMlxcdUFBREItXFx1QUFERFxcdUFBRTAtXFx1QUFFRlxcdUFBRjItXFx1QUFGNlxcdUFCMDEtXFx1QUIwNlxcdUFCMDktXFx1QUIwRVxcdUFCMTEtXFx1QUIxNlxcdUFCMjAtXFx1QUIyNlxcdUFCMjgtXFx1QUIyRVxcdUFCMzAtXFx1QUI1QVxcdUFCNUMtXFx1QUI1RlxcdUFCNjRcXHVBQjY1XFx1QUJDMC1cXHVBQkVBXFx1QUJFQ1xcdUFCRURcXHVBQkYwLVxcdUFCRjlcXHVBQzAwLVxcdUQ3QTNcXHVEN0IwLVxcdUQ3QzZcXHVEN0NCLVxcdUQ3RkJcXHVGOTAwLVxcdUZBNkRcXHVGQTcwLVxcdUZBRDlcXHVGQjAwLVxcdUZCMDZcXHVGQjEzLVxcdUZCMTdcXHVGQjFELVxcdUZCMjhcXHVGQjJBLVxcdUZCMzZcXHVGQjM4LVxcdUZCM0NcXHVGQjNFXFx1RkI0MFxcdUZCNDFcXHVGQjQzXFx1RkI0NFxcdUZCNDYtXFx1RkJCMVxcdUZCRDMtXFx1RkQzRFxcdUZENTAtXFx1RkQ4RlxcdUZEOTItXFx1RkRDN1xcdUZERjAtXFx1RkRGQlxcdUZFMDAtXFx1RkUwRlxcdUZFMjAtXFx1RkUyRFxcdUZFMzNcXHVGRTM0XFx1RkU0RC1cXHVGRTRGXFx1RkU3MC1cXHVGRTc0XFx1RkU3Ni1cXHVGRUZDXFx1RkYxMC1cXHVGRjE5XFx1RkYyMS1cXHVGRjNBXFx1RkYzRlxcdUZGNDEtXFx1RkY1QVxcdUZGNjYtXFx1RkZCRVxcdUZGQzItXFx1RkZDN1xcdUZGQ0EtXFx1RkZDRlxcdUZGRDItXFx1RkZEN1xcdUZGREEtXFx1RkZEQ10nKVxuICAgIH07XG5cbiAgICAvLyBFbnN1cmUgdGhlIGNvbmRpdGlvbiBpcyB0cnVlLCBvdGhlcndpc2UgdGhyb3cgYW4gZXJyb3IuXG4gICAgLy8gVGhpcyBpcyBvbmx5IHRvIGhhdmUgYSBiZXR0ZXIgY29udHJhY3Qgc2VtYW50aWMsIGkuZS4gYW5vdGhlciBzYWZldHkgbmV0XG4gICAgLy8gdG8gY2F0Y2ggYSBsb2dpYyBlcnJvci4gVGhlIGNvbmRpdGlvbiBzaGFsbCBiZSBmdWxmaWxsZWQgaW4gbm9ybWFsIGNhc2UuXG4gICAgLy8gRG8gTk9UIHVzZSB0aGlzIHRvIGVuZm9yY2UgYSBjZXJ0YWluIGNvbmRpdGlvbiBvbiBhbnkgdXNlciBpbnB1dC5cblxuICAgIGZ1bmN0aW9uIGFzc2VydChjb25kaXRpb24sIG1lc3NhZ2UpIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgIGlmICghY29uZGl0aW9uKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FTU0VSVDogJyArIG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNEZWNpbWFsRGlnaXQoY2gpIHtcbiAgICAgICAgcmV0dXJuIChjaCA+PSAweDMwICYmIGNoIDw9IDB4MzkpOyAgIC8vIDAuLjlcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0hleERpZ2l0KGNoKSB7XG4gICAgICAgIHJldHVybiAnMDEyMzQ1Njc4OWFiY2RlZkFCQ0RFRicuaW5kZXhPZihjaCkgPj0gMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc09jdGFsRGlnaXQoY2gpIHtcbiAgICAgICAgcmV0dXJuICcwMTIzNDU2NycuaW5kZXhPZihjaCkgPj0gMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBvY3RhbFRvRGVjaW1hbChjaCkge1xuICAgICAgICAvLyBcXDAgaXMgbm90IG9jdGFsIGVzY2FwZSBzZXF1ZW5jZVxuICAgICAgICB2YXIgb2N0YWwgPSAoY2ggIT09ICcwJyksIGNvZGUgPSAnMDEyMzQ1NjcnLmluZGV4T2YoY2gpO1xuXG4gICAgICAgIGlmIChpbmRleCA8IGxlbmd0aCAmJiBpc09jdGFsRGlnaXQoc291cmNlW2luZGV4XSkpIHtcbiAgICAgICAgICAgIG9jdGFsID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvZGUgPSBjb2RlICogOCArICcwMTIzNDU2NycuaW5kZXhPZihzb3VyY2VbaW5kZXgrK10pO1xuXG4gICAgICAgICAgICAvLyAzIGRpZ2l0cyBhcmUgb25seSBhbGxvd2VkIHdoZW4gc3RyaW5nIHN0YXJ0c1xuICAgICAgICAgICAgLy8gd2l0aCAwLCAxLCAyLCAzXG4gICAgICAgICAgICBpZiAoJzAxMjMnLmluZGV4T2YoY2gpID49IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgaW5kZXggPCBsZW5ndGggJiZcbiAgICAgICAgICAgICAgICAgICAgaXNPY3RhbERpZ2l0KHNvdXJjZVtpbmRleF0pKSB7XG4gICAgICAgICAgICAgICAgY29kZSA9IGNvZGUgKiA4ICsgJzAxMjM0NTY3Jy5pbmRleE9mKHNvdXJjZVtpbmRleCsrXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29kZTogY29kZSxcbiAgICAgICAgICAgIG9jdGFsOiBvY3RhbFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIDcuMiBXaGl0ZSBTcGFjZVxuXG4gICAgZnVuY3Rpb24gaXNXaGl0ZVNwYWNlKGNoKSB7XG4gICAgICAgIHJldHVybiAoY2ggPT09IDB4MjApIHx8IChjaCA9PT0gMHgwOSkgfHwgKGNoID09PSAweDBCKSB8fCAoY2ggPT09IDB4MEMpIHx8IChjaCA9PT0gMHhBMCkgfHxcbiAgICAgICAgICAgIChjaCA+PSAweDE2ODAgJiYgWzB4MTY4MCwgMHgxODBFLCAweDIwMDAsIDB4MjAwMSwgMHgyMDAyLCAweDIwMDMsIDB4MjAwNCwgMHgyMDA1LCAweDIwMDYsIDB4MjAwNywgMHgyMDA4LCAweDIwMDksIDB4MjAwQSwgMHgyMDJGLCAweDIwNUYsIDB4MzAwMCwgMHhGRUZGXS5pbmRleE9mKGNoKSA+PSAwKTtcbiAgICB9XG5cbiAgICAvLyA3LjMgTGluZSBUZXJtaW5hdG9yc1xuXG4gICAgZnVuY3Rpb24gaXNMaW5lVGVybWluYXRvcihjaCkge1xuICAgICAgICByZXR1cm4gKGNoID09PSAweDBBKSB8fCAoY2ggPT09IDB4MEQpIHx8IChjaCA9PT0gMHgyMDI4KSB8fCAoY2ggPT09IDB4MjAyOSk7XG4gICAgfVxuXG4gICAgLy8gNy42IElkZW50aWZpZXIgTmFtZXMgYW5kIElkZW50aWZpZXJzXG5cbiAgICBmdW5jdGlvbiBpc0lkZW50aWZpZXJTdGFydChjaCkge1xuICAgICAgICByZXR1cm4gKGNoID09PSAweDI0KSB8fCAoY2ggPT09IDB4NUYpIHx8ICAvLyAkIChkb2xsYXIpIGFuZCBfICh1bmRlcnNjb3JlKVxuICAgICAgICAgICAgKGNoID49IDB4NDEgJiYgY2ggPD0gMHg1QSkgfHwgICAgICAgICAvLyBBLi5aXG4gICAgICAgICAgICAoY2ggPj0gMHg2MSAmJiBjaCA8PSAweDdBKSB8fCAgICAgICAgIC8vIGEuLnpcbiAgICAgICAgICAgIChjaCA9PT0gMHg1QykgfHwgICAgICAgICAgICAgICAgICAgICAgLy8gXFwgKGJhY2tzbGFzaClcbiAgICAgICAgICAgICgoY2ggPj0gMHg4MCkgJiYgUmVnZXguTm9uQXNjaWlJZGVudGlmaWVyU3RhcnQudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGNoKSkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzSWRlbnRpZmllclBhcnQoY2gpIHtcbiAgICAgICAgcmV0dXJuIChjaCA9PT0gMHgyNCkgfHwgKGNoID09PSAweDVGKSB8fCAgLy8gJCAoZG9sbGFyKSBhbmQgXyAodW5kZXJzY29yZSlcbiAgICAgICAgICAgIChjaCA+PSAweDQxICYmIGNoIDw9IDB4NUEpIHx8ICAgICAgICAgLy8gQS4uWlxuICAgICAgICAgICAgKGNoID49IDB4NjEgJiYgY2ggPD0gMHg3QSkgfHwgICAgICAgICAvLyBhLi56XG4gICAgICAgICAgICAoY2ggPj0gMHgzMCAmJiBjaCA8PSAweDM5KSB8fCAgICAgICAgIC8vIDAuLjlcbiAgICAgICAgICAgIChjaCA9PT0gMHg1QykgfHwgICAgICAgICAgICAgICAgICAgICAgLy8gXFwgKGJhY2tzbGFzaClcbiAgICAgICAgICAgICgoY2ggPj0gMHg4MCkgJiYgUmVnZXguTm9uQXNjaWlJZGVudGlmaWVyUGFydC50ZXN0KFN0cmluZy5mcm9tQ2hhckNvZGUoY2gpKSk7XG4gICAgfVxuXG4gICAgLy8gNy42LjEuMiBGdXR1cmUgUmVzZXJ2ZWQgV29yZHNcblxuICAgIGZ1bmN0aW9uIGlzRnV0dXJlUmVzZXJ2ZWRXb3JkKGlkKSB7XG4gICAgICAgIHN3aXRjaCAoaWQpIHtcbiAgICAgICAgY2FzZSAnZW51bSc6XG4gICAgICAgIGNhc2UgJ2V4cG9ydCc6XG4gICAgICAgIGNhc2UgJ2ltcG9ydCc6XG4gICAgICAgIGNhc2UgJ3N1cGVyJzpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gMTEuNi4yLjIgRnV0dXJlIFJlc2VydmVkIFdvcmRzXG5cbiAgICBmdW5jdGlvbiBpc1N0cmljdE1vZGVSZXNlcnZlZFdvcmQoaWQpIHtcbiAgICAgICAgc3dpdGNoIChpZCkge1xuICAgICAgICBjYXNlICdpbXBsZW1lbnRzJzpcbiAgICAgICAgY2FzZSAnaW50ZXJmYWNlJzpcbiAgICAgICAgY2FzZSAncGFja2FnZSc6XG4gICAgICAgIGNhc2UgJ3ByaXZhdGUnOlxuICAgICAgICBjYXNlICdwcm90ZWN0ZWQnOlxuICAgICAgICBjYXNlICdwdWJsaWMnOlxuICAgICAgICBjYXNlICdzdGF0aWMnOlxuICAgICAgICBjYXNlICd5aWVsZCc6XG4gICAgICAgIGNhc2UgJ2xldCc6XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzUmVzdHJpY3RlZFdvcmQoaWQpIHtcbiAgICAgICAgcmV0dXJuIGlkID09PSAnZXZhbCcgfHwgaWQgPT09ICdhcmd1bWVudHMnO1xuICAgIH1cblxuICAgIC8vIDcuNi4xLjEgS2V5d29yZHNcblxuICAgIGZ1bmN0aW9uIGlzS2V5d29yZChpZCkge1xuXG4gICAgICAgIC8vICdjb25zdCcgaXMgc3BlY2lhbGl6ZWQgYXMgS2V5d29yZCBpbiBWOC5cbiAgICAgICAgLy8gJ3lpZWxkJyBhbmQgJ2xldCcgYXJlIGZvciBjb21wYXRpYmlsaXR5IHdpdGggU3BpZGVyTW9ua2V5IGFuZCBFUy5uZXh0LlxuICAgICAgICAvLyBTb21lIG90aGVycyBhcmUgZnJvbSBmdXR1cmUgcmVzZXJ2ZWQgd29yZHMuXG5cbiAgICAgICAgc3dpdGNoIChpZC5sZW5ndGgpIHtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIChpZCA9PT0gJ2lmJykgfHwgKGlkID09PSAnaW4nKSB8fCAoaWQgPT09ICdkbycpO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gKGlkID09PSAndmFyJykgfHwgKGlkID09PSAnZm9yJykgfHwgKGlkID09PSAnbmV3JykgfHxcbiAgICAgICAgICAgICAgICAoaWQgPT09ICd0cnknKSB8fCAoaWQgPT09ICdsZXQnKTtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgcmV0dXJuIChpZCA9PT0gJ3RoaXMnKSB8fCAoaWQgPT09ICdlbHNlJykgfHwgKGlkID09PSAnY2FzZScpIHx8XG4gICAgICAgICAgICAgICAgKGlkID09PSAndm9pZCcpIHx8IChpZCA9PT0gJ3dpdGgnKSB8fCAoaWQgPT09ICdlbnVtJyk7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIHJldHVybiAoaWQgPT09ICd3aGlsZScpIHx8IChpZCA9PT0gJ2JyZWFrJykgfHwgKGlkID09PSAnY2F0Y2gnKSB8fFxuICAgICAgICAgICAgICAgIChpZCA9PT0gJ3Rocm93JykgfHwgKGlkID09PSAnY29uc3QnKSB8fCAoaWQgPT09ICd5aWVsZCcpIHx8XG4gICAgICAgICAgICAgICAgKGlkID09PSAnY2xhc3MnKSB8fCAoaWQgPT09ICdzdXBlcicpO1xuICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgICByZXR1cm4gKGlkID09PSAncmV0dXJuJykgfHwgKGlkID09PSAndHlwZW9mJykgfHwgKGlkID09PSAnZGVsZXRlJykgfHxcbiAgICAgICAgICAgICAgICAoaWQgPT09ICdzd2l0Y2gnKSB8fCAoaWQgPT09ICdleHBvcnQnKSB8fCAoaWQgPT09ICdpbXBvcnQnKTtcbiAgICAgICAgY2FzZSA3OlxuICAgICAgICAgICAgcmV0dXJuIChpZCA9PT0gJ2RlZmF1bHQnKSB8fCAoaWQgPT09ICdmaW5hbGx5JykgfHwgKGlkID09PSAnZXh0ZW5kcycpO1xuICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICByZXR1cm4gKGlkID09PSAnZnVuY3Rpb24nKSB8fCAoaWQgPT09ICdjb250aW51ZScpIHx8IChpZCA9PT0gJ2RlYnVnZ2VyJyk7XG4gICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgICByZXR1cm4gKGlkID09PSAnaW5zdGFuY2VvZicpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gNy40IENvbW1lbnRzXG5cbiAgICBmdW5jdGlvbiBhZGRDb21tZW50KHR5cGUsIHZhbHVlLCBzdGFydCwgZW5kLCBsb2MpIHtcbiAgICAgICAgdmFyIGNvbW1lbnQ7XG5cbiAgICAgICAgYXNzZXJ0KHR5cGVvZiBzdGFydCA9PT0gJ251bWJlcicsICdDb21tZW50IG11c3QgaGF2ZSB2YWxpZCBwb3NpdGlvbicpO1xuXG4gICAgICAgIHN0YXRlLmxhc3RDb21tZW50U3RhcnQgPSBzdGFydDtcblxuICAgICAgICBjb21tZW50ID0ge1xuICAgICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICB9O1xuICAgICAgICBpZiAoZXh0cmEucmFuZ2UpIHtcbiAgICAgICAgICAgIGNvbW1lbnQucmFuZ2UgPSBbc3RhcnQsIGVuZF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV4dHJhLmxvYykge1xuICAgICAgICAgICAgY29tbWVudC5sb2MgPSBsb2M7XG4gICAgICAgIH1cbiAgICAgICAgZXh0cmEuY29tbWVudHMucHVzaChjb21tZW50KTtcbiAgICAgICAgaWYgKGV4dHJhLmF0dGFjaENvbW1lbnQpIHtcbiAgICAgICAgICAgIGV4dHJhLmxlYWRpbmdDb21tZW50cy5wdXNoKGNvbW1lbnQpO1xuICAgICAgICAgICAgZXh0cmEudHJhaWxpbmdDb21tZW50cy5wdXNoKGNvbW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2tpcFNpbmdsZUxpbmVDb21tZW50KG9mZnNldCkge1xuICAgICAgICB2YXIgc3RhcnQsIGxvYywgY2gsIGNvbW1lbnQ7XG5cbiAgICAgICAgc3RhcnQgPSBpbmRleCAtIG9mZnNldDtcbiAgICAgICAgbG9jID0ge1xuICAgICAgICAgICAgc3RhcnQ6IHtcbiAgICAgICAgICAgICAgICBsaW5lOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgICAgIGNvbHVtbjogaW5kZXggLSBsaW5lU3RhcnQgLSBvZmZzZXRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpO1xuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIGlmIChpc0xpbmVUZXJtaW5hdG9yKGNoKSkge1xuICAgICAgICAgICAgICAgIGhhc0xpbmVUZXJtaW5hdG9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoZXh0cmEuY29tbWVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tbWVudCA9IHNvdXJjZS5zbGljZShzdGFydCArIG9mZnNldCwgaW5kZXggLSAxKTtcbiAgICAgICAgICAgICAgICAgICAgbG9jLmVuZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmU6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGluZGV4IC0gbGluZVN0YXJ0IC0gMVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBhZGRDb21tZW50KCdMaW5lJywgY29tbWVudCwgc3RhcnQsIGluZGV4IC0gMSwgbG9jKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAxMyAmJiBzb3VyY2UuY2hhckNvZGVBdChpbmRleCkgPT09IDEwKSB7XG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICsrbGluZU51bWJlcjtcbiAgICAgICAgICAgICAgICBsaW5lU3RhcnQgPSBpbmRleDtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXh0cmEuY29tbWVudHMpIHtcbiAgICAgICAgICAgIGNvbW1lbnQgPSBzb3VyY2Uuc2xpY2Uoc3RhcnQgKyBvZmZzZXQsIGluZGV4KTtcbiAgICAgICAgICAgIGxvYy5lbmQgPSB7XG4gICAgICAgICAgICAgICAgbGluZTogbGluZU51bWJlcixcbiAgICAgICAgICAgICAgICBjb2x1bW46IGluZGV4IC0gbGluZVN0YXJ0XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYWRkQ29tbWVudCgnTGluZScsIGNvbW1lbnQsIHN0YXJ0LCBpbmRleCwgbG9jKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNraXBNdWx0aUxpbmVDb21tZW50KCkge1xuICAgICAgICB2YXIgc3RhcnQsIGxvYywgY2gsIGNvbW1lbnQ7XG5cbiAgICAgICAgaWYgKGV4dHJhLmNvbW1lbnRzKSB7XG4gICAgICAgICAgICBzdGFydCA9IGluZGV4IC0gMjtcbiAgICAgICAgICAgIGxvYyA9IHtcbiAgICAgICAgICAgICAgICBzdGFydDoge1xuICAgICAgICAgICAgICAgICAgICBsaW5lOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGluZGV4IC0gbGluZVN0YXJ0IC0gMlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpO1xuICAgICAgICAgICAgaWYgKGlzTGluZVRlcm1pbmF0b3IoY2gpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAweDBEICYmIHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4ICsgMSkgPT09IDB4MEEpIHtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaGFzTGluZVRlcm1pbmF0b3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICsrbGluZU51bWJlcjtcbiAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgIGxpbmVTdGFydCA9IGluZGV4O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gMHgyQSkge1xuICAgICAgICAgICAgICAgIC8vIEJsb2NrIGNvbW1lbnQgZW5kcyB3aXRoICcqLycuXG4gICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4ICsgMSkgPT09IDB4MkYpIHtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV4dHJhLmNvbW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50ID0gc291cmNlLnNsaWNlKHN0YXJ0ICsgMiwgaW5kZXggLSAyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYy5lbmQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZTogbGluZU51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW46IGluZGV4IC0gbGluZVN0YXJ0XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgYWRkQ29tbWVudCgnQmxvY2snLCBjb21tZW50LCBzdGFydCwgaW5kZXgsIGxvYyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmFuIG9mZiB0aGUgZW5kIG9mIHRoZSBmaWxlIC0gdGhlIHdob2xlIHRoaW5nIGlzIGEgY29tbWVudFxuICAgICAgICBpZiAoZXh0cmEuY29tbWVudHMpIHtcbiAgICAgICAgICAgIGxvYy5lbmQgPSB7XG4gICAgICAgICAgICAgICAgbGluZTogbGluZU51bWJlcixcbiAgICAgICAgICAgICAgICBjb2x1bW46IGluZGV4IC0gbGluZVN0YXJ0XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29tbWVudCA9IHNvdXJjZS5zbGljZShzdGFydCArIDIsIGluZGV4KTtcbiAgICAgICAgICAgIGFkZENvbW1lbnQoJ0Jsb2NrJywgY29tbWVudCwgc3RhcnQsIGluZGV4LCBsb2MpO1xuICAgICAgICB9XG4gICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2tpcENvbW1lbnQoKSB7XG4gICAgICAgIHZhciBjaCwgc3RhcnQ7XG4gICAgICAgIGhhc0xpbmVUZXJtaW5hdG9yID0gZmFsc2U7XG5cbiAgICAgICAgc3RhcnQgPSAoaW5kZXggPT09IDApO1xuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGNoID0gc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpO1xuXG4gICAgICAgICAgICBpZiAoaXNXaGl0ZVNwYWNlKGNoKSkge1xuICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzTGluZVRlcm1pbmF0b3IoY2gpKSB7XG4gICAgICAgICAgICAgICAgaGFzTGluZVRlcm1pbmF0b3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAweDBEICYmIHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSA9PT0gMHgwQSkge1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICArK2xpbmVOdW1iZXI7XG4gICAgICAgICAgICAgICAgbGluZVN0YXJ0ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgc3RhcnQgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gMHgyRikgeyAvLyBVKzAwMkYgaXMgJy8nXG4gICAgICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckNvZGVBdChpbmRleCArIDEpO1xuICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gMHgyRikge1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICBza2lwU2luZ2xlTGluZUNvbW1lbnQoMik7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09PSAweDJBKSB7ICAvLyBVKzAwMkEgaXMgJyonXG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHNraXBNdWx0aUxpbmVDb21tZW50KCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChzdGFydCAmJiBjaCA9PT0gMHgyRCkgeyAvLyBVKzAwMkQgaXMgJy0nXG4gICAgICAgICAgICAgICAgLy8gVSswMDNFIGlzICc+J1xuICAgICAgICAgICAgICAgIGlmICgoc291cmNlLmNoYXJDb2RlQXQoaW5kZXggKyAxKSA9PT0gMHgyRCkgJiYgKHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4ICsgMikgPT09IDB4M0UpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vICctLT4nIGlzIGEgc2luZ2xlLWxpbmUgY29tbWVudFxuICAgICAgICAgICAgICAgICAgICBpbmRleCArPSAzO1xuICAgICAgICAgICAgICAgICAgICBza2lwU2luZ2xlTGluZUNvbW1lbnQoMyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gMHgzQykgeyAvLyBVKzAwM0MgaXMgJzwnXG4gICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5zbGljZShpbmRleCArIDEsIGluZGV4ICsgNCkgPT09ICchLS0nKSB7XG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7IC8vIGA8YFxuICAgICAgICAgICAgICAgICAgICArK2luZGV4OyAvLyBgIWBcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDsgLy8gYC1gXG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7IC8vIGAtYFxuICAgICAgICAgICAgICAgICAgICBza2lwU2luZ2xlTGluZUNvbW1lbnQoNCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjYW5IZXhFc2NhcGUocHJlZml4KSB7XG4gICAgICAgIHZhciBpLCBsZW4sIGNoLCBjb2RlID0gMDtcblxuICAgICAgICBsZW4gPSAocHJlZml4ID09PSAndScpID8gNCA6IDI7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47ICsraSkge1xuICAgICAgICAgICAgaWYgKGluZGV4IDwgbGVuZ3RoICYmIGlzSGV4RGlnaXQoc291cmNlW2luZGV4XSkpIHtcbiAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgICAgICBjb2RlID0gY29kZSAqIDE2ICsgJzAxMjM0NTY3ODlhYmNkZWYnLmluZGV4T2YoY2gudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzY2FuVW5pY29kZUNvZGVQb2ludEVzY2FwZSgpIHtcbiAgICAgICAgdmFyIGNoLCBjb2RlLCBjdTEsIGN1MjtcblxuICAgICAgICBjaCA9IHNvdXJjZVtpbmRleF07XG4gICAgICAgIGNvZGUgPSAwO1xuXG4gICAgICAgIC8vIEF0IGxlYXN0LCBvbmUgaGV4IGRpZ2l0IGlzIHJlcXVpcmVkLlxuICAgICAgICBpZiAoY2ggPT09ICd9Jykge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgICAgICBpZiAoIWlzSGV4RGlnaXQoY2gpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb2RlID0gY29kZSAqIDE2ICsgJzAxMjM0NTY3ODlhYmNkZWYnLmluZGV4T2YoY2gudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29kZSA+IDB4MTBGRkZGIHx8IGNoICE9PSAnfScpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVVEYtMTYgRW5jb2RpbmdcbiAgICAgICAgaWYgKGNvZGUgPD0gMHhGRkZGKSB7XG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKTtcbiAgICAgICAgfVxuICAgICAgICBjdTEgPSAoKGNvZGUgLSAweDEwMDAwKSA+PiAxMCkgKyAweEQ4MDA7XG4gICAgICAgIGN1MiA9ICgoY29kZSAtIDB4MTAwMDApICYgMTAyMykgKyAweERDMDA7XG4gICAgICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGN1MSwgY3UyKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRFc2NhcGVkSWRlbnRpZmllcigpIHtcbiAgICAgICAgdmFyIGNoLCBpZDtcblxuICAgICAgICBjaCA9IHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KyspO1xuICAgICAgICBpZCA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY2gpO1xuXG4gICAgICAgIC8vICdcXHUnIChVKzAwNUMsIFUrMDA3NSkgZGVub3RlcyBhbiBlc2NhcGVkIGNoYXJhY3Rlci5cbiAgICAgICAgaWYgKGNoID09PSAweDVDKSB7XG4gICAgICAgICAgICBpZiAoc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpICE9PSAweDc1KSB7XG4gICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICBjaCA9IHNjYW5IZXhFc2NhcGUoJ3UnKTtcbiAgICAgICAgICAgIGlmICghY2ggfHwgY2ggPT09ICdcXFxcJyB8fCAhaXNJZGVudGlmaWVyU3RhcnQoY2guY2hhckNvZGVBdCgwKSkpIHtcbiAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWQgPSBjaDtcbiAgICAgICAgfVxuXG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckNvZGVBdChpbmRleCk7XG4gICAgICAgICAgICBpZiAoIWlzSWRlbnRpZmllclBhcnQoY2gpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgaWQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjaCk7XG5cbiAgICAgICAgICAgIC8vICdcXHUnIChVKzAwNUMsIFUrMDA3NSkgZGVub3RlcyBhbiBlc2NhcGVkIGNoYXJhY3Rlci5cbiAgICAgICAgICAgIGlmIChjaCA9PT0gMHg1Qykge1xuICAgICAgICAgICAgICAgIGlkID0gaWQuc3Vic3RyKDAsIGlkLmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuY2hhckNvZGVBdChpbmRleCkgIT09IDB4NzUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICBjaCA9IHNjYW5IZXhFc2NhcGUoJ3UnKTtcbiAgICAgICAgICAgICAgICBpZiAoIWNoIHx8IGNoID09PSAnXFxcXCcgfHwgIWlzSWRlbnRpZmllclBhcnQoY2guY2hhckNvZGVBdCgwKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWQgKz0gY2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0SWRlbnRpZmllcigpIHtcbiAgICAgICAgdmFyIHN0YXJ0LCBjaDtcblxuICAgICAgICBzdGFydCA9IGluZGV4Kys7XG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2UuY2hhckNvZGVBdChpbmRleCk7XG4gICAgICAgICAgICBpZiAoY2ggPT09IDB4NUMpIHtcbiAgICAgICAgICAgICAgICAvLyBCbGFja3NsYXNoIChVKzAwNUMpIG1hcmtzIFVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlLlxuICAgICAgICAgICAgICAgIGluZGV4ID0gc3RhcnQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldEVzY2FwZWRJZGVudGlmaWVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNJZGVudGlmaWVyUGFydChjaCkpIHtcbiAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzb3VyY2Uuc2xpY2Uoc3RhcnQsIGluZGV4KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzY2FuSWRlbnRpZmllcigpIHtcbiAgICAgICAgdmFyIHN0YXJ0LCBpZCwgdHlwZTtcblxuICAgICAgICBzdGFydCA9IGluZGV4O1xuXG4gICAgICAgIC8vIEJhY2tzbGFzaCAoVSswMDVDKSBzdGFydHMgYW4gZXNjYXBlZCBjaGFyYWN0ZXIuXG4gICAgICAgIGlkID0gKHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSA9PT0gMHg1QykgPyBnZXRFc2NhcGVkSWRlbnRpZmllcigpIDogZ2V0SWRlbnRpZmllcigpO1xuXG4gICAgICAgIC8vIFRoZXJlIGlzIG5vIGtleXdvcmQgb3IgbGl0ZXJhbCB3aXRoIG9ubHkgb25lIGNoYXJhY3Rlci5cbiAgICAgICAgLy8gVGh1cywgaXQgbXVzdCBiZSBhbiBpZGVudGlmaWVyLlxuICAgICAgICBpZiAoaWQubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0eXBlID0gVG9rZW4uSWRlbnRpZmllcjtcbiAgICAgICAgfSBlbHNlIGlmIChpc0tleXdvcmQoaWQpKSB7XG4gICAgICAgICAgICB0eXBlID0gVG9rZW4uS2V5d29yZDtcbiAgICAgICAgfSBlbHNlIGlmIChpZCA9PT0gJ251bGwnKSB7XG4gICAgICAgICAgICB0eXBlID0gVG9rZW4uTnVsbExpdGVyYWw7XG4gICAgICAgIH0gZWxzZSBpZiAoaWQgPT09ICd0cnVlJyB8fCBpZCA9PT0gJ2ZhbHNlJykge1xuICAgICAgICAgICAgdHlwZSA9IFRva2VuLkJvb2xlYW5MaXRlcmFsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHlwZSA9IFRva2VuLklkZW50aWZpZXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICAgIHZhbHVlOiBpZCxcbiAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICBsaW5lU3RhcnQ6IGxpbmVTdGFydCxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgfTtcbiAgICB9XG5cblxuICAgIC8vIDcuNyBQdW5jdHVhdG9yc1xuXG4gICAgZnVuY3Rpb24gc2NhblB1bmN0dWF0b3IoKSB7XG4gICAgICAgIHZhciB0b2tlbiwgc3RyO1xuXG4gICAgICAgIHRva2VuID0ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uUHVuY3R1YXRvcixcbiAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICBsaW5lU3RhcnQ6IGxpbmVTdGFydCxcbiAgICAgICAgICAgIHN0YXJ0OiBpbmRleCxcbiAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBDaGVjayBmb3IgbW9zdCBjb21tb24gc2luZ2xlLWNoYXJhY3RlciBwdW5jdHVhdG9ycy5cbiAgICAgICAgc3RyID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgc3dpdGNoIChzdHIpIHtcblxuICAgICAgICBjYXNlICcoJzpcbiAgICAgICAgICAgIGlmIChleHRyYS50b2tlbml6ZSkge1xuICAgICAgICAgICAgICAgIGV4dHJhLm9wZW5QYXJlblRva2VuID0gZXh0cmEudG9rZW5zLmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICd7JzpcbiAgICAgICAgICAgIGlmIChleHRyYS50b2tlbml6ZSkge1xuICAgICAgICAgICAgICAgIGV4dHJhLm9wZW5DdXJseVRva2VuID0gZXh0cmEudG9rZW5zLmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YXRlLmN1cmx5U3RhY2sucHVzaCgneycpO1xuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJy4nOlxuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIGlmIChzb3VyY2VbaW5kZXhdID09PSAnLicgJiYgc291cmNlW2luZGV4ICsgMV0gPT09ICcuJykge1xuICAgICAgICAgICAgICAgIC8vIFNwcmVhZCBvcGVyYXRvcjogLi4uXG4gICAgICAgICAgICAgICAgaW5kZXggKz0gMjtcbiAgICAgICAgICAgICAgICBzdHIgPSAnLi4uJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ30nOlxuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIHN0YXRlLmN1cmx5U3RhY2sucG9wKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnKSc6XG4gICAgICAgIGNhc2UgJzsnOlxuICAgICAgICBjYXNlICcsJzpcbiAgICAgICAgY2FzZSAnWyc6XG4gICAgICAgIGNhc2UgJ10nOlxuICAgICAgICBjYXNlICc6JzpcbiAgICAgICAgY2FzZSAnPyc6XG4gICAgICAgIGNhc2UgJ34nOlxuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyA0LWNoYXJhY3RlciBwdW5jdHVhdG9yLlxuICAgICAgICAgICAgc3RyID0gc291cmNlLnN1YnN0cihpbmRleCwgNCk7XG4gICAgICAgICAgICBpZiAoc3RyID09PSAnPj4+PScpIHtcbiAgICAgICAgICAgICAgICBpbmRleCArPSA0O1xuICAgICAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgICAgIC8vIDMtY2hhcmFjdGVyIHB1bmN0dWF0b3JzLlxuICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHIoMCwgMyk7XG4gICAgICAgICAgICAgICAgaWYgKHN0ciA9PT0gJz09PScgfHwgc3RyID09PSAnIT09JyB8fCBzdHIgPT09ICc+Pj4nIHx8XG4gICAgICAgICAgICAgICAgICAgIHN0ciA9PT0gJzw8PScgfHwgc3RyID09PSAnPj49Jykge1xuICAgICAgICAgICAgICAgICAgICBpbmRleCArPSAzO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gMi1jaGFyYWN0ZXIgcHVuY3R1YXRvcnMuXG4gICAgICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5zdWJzdHIoMCwgMik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdHIgPT09ICcmJicgfHwgc3RyID09PSAnfHwnIHx8IHN0ciA9PT0gJz09JyB8fCBzdHIgPT09ICchPScgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9PT0gJys9JyB8fCBzdHIgPT09ICctPScgfHwgc3RyID09PSAnKj0nIHx8IHN0ciA9PT0gJy89JyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyID09PSAnKysnIHx8IHN0ciA9PT0gJy0tJyB8fCBzdHIgPT09ICc8PCcgfHwgc3RyID09PSAnPj4nIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHIgPT09ICcmPScgfHwgc3RyID09PSAnfD0nIHx8IHN0ciA9PT0gJ149JyB8fCBzdHIgPT09ICclPScgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9PT0gJzw9JyB8fCBzdHIgPT09ICc+PScgfHwgc3RyID09PSAnPT4nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCArPSAyO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAxLWNoYXJhY3RlciBwdW5jdHVhdG9ycy5cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA9IHNvdXJjZVtpbmRleF07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJzw+PSErLSolJnxeLycuaW5kZXhPZihzdHIpID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGluZGV4ID09PSB0b2tlbi5zdGFydCkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRva2VuLmVuZCA9IGluZGV4O1xuICAgICAgICB0b2tlbi52YWx1ZSA9IHN0cjtcbiAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgIH1cblxuICAgIC8vIDcuOC4zIE51bWVyaWMgTGl0ZXJhbHNcblxuICAgIGZ1bmN0aW9uIHNjYW5IZXhMaXRlcmFsKHN0YXJ0KSB7XG4gICAgICAgIHZhciBudW1iZXIgPSAnJztcblxuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGlmICghaXNIZXhEaWdpdChzb3VyY2VbaW5kZXhdKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbnVtYmVyICs9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChudW1iZXIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzSWRlbnRpZmllclN0YXJ0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uTnVtZXJpY0xpdGVyYWwsXG4gICAgICAgICAgICB2YWx1ZTogcGFyc2VJbnQoJzB4JyArIG51bWJlciwgMTYpLFxuICAgICAgICAgICAgbGluZU51bWJlcjogbGluZU51bWJlcixcbiAgICAgICAgICAgIGxpbmVTdGFydDogbGluZVN0YXJ0LFxuICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICAgICAgZW5kOiBpbmRleFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjYW5CaW5hcnlMaXRlcmFsKHN0YXJ0KSB7XG4gICAgICAgIHZhciBjaCwgbnVtYmVyO1xuXG4gICAgICAgIG51bWJlciA9ICcnO1xuXG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKGNoICE9PSAnMCcgJiYgY2ggIT09ICcxJykge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbnVtYmVyICs9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChudW1iZXIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAvLyBvbmx5IDBiIG9yIDBCXG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBjaCA9IHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KTtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAoaXNJZGVudGlmaWVyU3RhcnQoY2gpIHx8IGlzRGVjaW1hbERpZ2l0KGNoKSkge1xuICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uTnVtZXJpY0xpdGVyYWwsXG4gICAgICAgICAgICB2YWx1ZTogcGFyc2VJbnQobnVtYmVyLCAyKSxcbiAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICBsaW5lU3RhcnQ6IGxpbmVTdGFydCxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzY2FuT2N0YWxMaXRlcmFsKHByZWZpeCwgc3RhcnQpIHtcbiAgICAgICAgdmFyIG51bWJlciwgb2N0YWw7XG5cbiAgICAgICAgaWYgKGlzT2N0YWxEaWdpdChwcmVmaXgpKSB7XG4gICAgICAgICAgICBvY3RhbCA9IHRydWU7XG4gICAgICAgICAgICBudW1iZXIgPSAnMCcgKyBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvY3RhbCA9IGZhbHNlO1xuICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgIG51bWJlciA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAoIWlzT2N0YWxEaWdpdChzb3VyY2VbaW5kZXhdKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbnVtYmVyICs9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghb2N0YWwgJiYgbnVtYmVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgLy8gb25seSAwbyBvciAwT1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0lkZW50aWZpZXJTdGFydChzb3VyY2UuY2hhckNvZGVBdChpbmRleCkpIHx8IGlzRGVjaW1hbERpZ2l0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uTnVtZXJpY0xpdGVyYWwsXG4gICAgICAgICAgICB2YWx1ZTogcGFyc2VJbnQobnVtYmVyLCA4KSxcbiAgICAgICAgICAgIG9jdGFsOiBvY3RhbCxcbiAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICBsaW5lU3RhcnQ6IGxpbmVTdGFydCxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc0ltcGxpY2l0T2N0YWxMaXRlcmFsKCkge1xuICAgICAgICB2YXIgaSwgY2g7XG5cbiAgICAgICAgLy8gSW1wbGljaXQgb2N0YWwsIHVubGVzcyB0aGVyZSBpcyBhIG5vbi1vY3RhbCBkaWdpdC5cbiAgICAgICAgLy8gKEFubmV4IEIuMS4xIG9uIE51bWVyaWMgTGl0ZXJhbHMpXG4gICAgICAgIGZvciAoaSA9IGluZGV4ICsgMTsgaSA8IGxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBjaCA9IHNvdXJjZVtpXTtcbiAgICAgICAgICAgIGlmIChjaCA9PT0gJzgnIHx8IGNoID09PSAnOScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzT2N0YWxEaWdpdChjaCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjYW5OdW1lcmljTGl0ZXJhbCgpIHtcbiAgICAgICAgdmFyIG51bWJlciwgc3RhcnQsIGNoO1xuXG4gICAgICAgIGNoID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgYXNzZXJ0KGlzRGVjaW1hbERpZ2l0KGNoLmNoYXJDb2RlQXQoMCkpIHx8IChjaCA9PT0gJy4nKSxcbiAgICAgICAgICAgICdOdW1lcmljIGxpdGVyYWwgbXVzdCBzdGFydCB3aXRoIGEgZGVjaW1hbCBkaWdpdCBvciBhIGRlY2ltYWwgcG9pbnQnKTtcblxuICAgICAgICBzdGFydCA9IGluZGV4O1xuICAgICAgICBudW1iZXIgPSAnJztcbiAgICAgICAgaWYgKGNoICE9PSAnLicpIHtcbiAgICAgICAgICAgIG51bWJlciA9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgIGNoID0gc291cmNlW2luZGV4XTtcblxuICAgICAgICAgICAgLy8gSGV4IG51bWJlciBzdGFydHMgd2l0aCAnMHgnLlxuICAgICAgICAgICAgLy8gT2N0YWwgbnVtYmVyIHN0YXJ0cyB3aXRoICcwJy5cbiAgICAgICAgICAgIC8vIE9jdGFsIG51bWJlciBpbiBFUzYgc3RhcnRzIHdpdGggJzBvJy5cbiAgICAgICAgICAgIC8vIEJpbmFyeSBudW1iZXIgaW4gRVM2IHN0YXJ0cyB3aXRoICcwYicuXG4gICAgICAgICAgICBpZiAobnVtYmVyID09PSAnMCcpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICd4JyB8fCBjaCA9PT0gJ1gnKSB7XG4gICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzY2FuSGV4TGl0ZXJhbChzdGFydCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJ2InIHx8IGNoID09PSAnQicpIHtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNjYW5CaW5hcnlMaXRlcmFsKHN0YXJ0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAnbycgfHwgY2ggPT09ICdPJykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2Nhbk9jdGFsTGl0ZXJhbChjaCwgc3RhcnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpc09jdGFsRGlnaXQoY2gpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0ltcGxpY2l0T2N0YWxMaXRlcmFsKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzY2FuT2N0YWxMaXRlcmFsKGNoLCBzdGFydCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHdoaWxlIChpc0RlY2ltYWxEaWdpdChzb3VyY2UuY2hhckNvZGVBdChpbmRleCkpKSB7XG4gICAgICAgICAgICAgICAgbnVtYmVyICs9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNoID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaCA9PT0gJy4nKSB7XG4gICAgICAgICAgICBudW1iZXIgKz0gc291cmNlW2luZGV4KytdO1xuICAgICAgICAgICAgd2hpbGUgKGlzRGVjaW1hbERpZ2l0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgICAgICAgICAgICBudW1iZXIgKz0gc291cmNlW2luZGV4KytdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXhdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoID09PSAnZScgfHwgY2ggPT09ICdFJykge1xuICAgICAgICAgICAgbnVtYmVyICs9IHNvdXJjZVtpbmRleCsrXTtcblxuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKGNoID09PSAnKycgfHwgY2ggPT09ICctJykge1xuICAgICAgICAgICAgICAgIG51bWJlciArPSBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNEZWNpbWFsRGlnaXQoc291cmNlLmNoYXJDb2RlQXQoaW5kZXgpKSkge1xuICAgICAgICAgICAgICAgIHdoaWxlIChpc0RlY2ltYWxEaWdpdChzb3VyY2UuY2hhckNvZGVBdChpbmRleCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIG51bWJlciArPSBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzSWRlbnRpZmllclN0YXJ0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4KSkpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uTnVtZXJpY0xpdGVyYWwsXG4gICAgICAgICAgICB2YWx1ZTogcGFyc2VGbG9hdChudW1iZXIpLFxuICAgICAgICAgICAgbGluZU51bWJlcjogbGluZU51bWJlcixcbiAgICAgICAgICAgIGxpbmVTdGFydDogbGluZVN0YXJ0LFxuICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICAgICAgZW5kOiBpbmRleFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIDcuOC40IFN0cmluZyBMaXRlcmFsc1xuXG4gICAgZnVuY3Rpb24gc2NhblN0cmluZ0xpdGVyYWwoKSB7XG4gICAgICAgIHZhciBzdHIgPSAnJywgcXVvdGUsIHN0YXJ0LCBjaCwgdW5lc2NhcGVkLCBvY3RUb0RlYywgb2N0YWwgPSBmYWxzZTtcblxuICAgICAgICBxdW90ZSA9IHNvdXJjZVtpbmRleF07XG4gICAgICAgIGFzc2VydCgocXVvdGUgPT09ICdcXCcnIHx8IHF1b3RlID09PSAnXCInKSxcbiAgICAgICAgICAgICdTdHJpbmcgbGl0ZXJhbCBtdXN0IHN0YXJ0cyB3aXRoIGEgcXVvdGUnKTtcblxuICAgICAgICBzdGFydCA9IGluZGV4O1xuICAgICAgICArK2luZGV4O1xuXG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXgrK107XG5cbiAgICAgICAgICAgIGlmIChjaCA9PT0gcXVvdGUpIHtcbiAgICAgICAgICAgICAgICBxdW90ZSA9ICcnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gJ1xcXFwnKSB7XG4gICAgICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXgrK107XG4gICAgICAgICAgICAgICAgaWYgKCFjaCB8fCAhaXNMaW5lVGVybWluYXRvcihjaC5jaGFyQ29kZUF0KDApKSkge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3UnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICd4JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VbaW5kZXhdID09PSAneycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSBzY2FuVW5pY29kZUNvZGVQb2ludEVzY2FwZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmVzY2FwZWQgPSBzY2FuSGV4RXNjYXBlKGNoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXVuZXNjYXBlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gdW5lc2NhcGVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ24nOlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXG4nO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3InOlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXHInO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3QnOlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXHQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2InOlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXGInO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2YnOlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXGYnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3YnOlxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXHgwQic7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnOCc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJzknOlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcblxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzT2N0YWxEaWdpdChjaCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvY3RUb0RlYyA9IG9jdGFsVG9EZWNpbWFsKGNoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9jdGFsID0gb2N0VG9EZWMub2N0YWwgfHwgb2N0YWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9IFN0cmluZy5mcm9tQ2hhckNvZGUob2N0VG9EZWMuY29kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciArPSBjaDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgKytsaW5lTnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICdcXHInICYmIHNvdXJjZVtpbmRleF0gPT09ICdcXG4nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxpbmVTdGFydCA9IGluZGV4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNMaW5lVGVybWluYXRvcihjaC5jaGFyQ29kZUF0KDApKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdHIgKz0gY2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocXVvdGUgIT09ICcnKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6IFRva2VuLlN0cmluZ0xpdGVyYWwsXG4gICAgICAgICAgICB2YWx1ZTogc3RyLFxuICAgICAgICAgICAgb2N0YWw6IG9jdGFsLFxuICAgICAgICAgICAgbGluZU51bWJlcjogc3RhcnRMaW5lTnVtYmVyLFxuICAgICAgICAgICAgbGluZVN0YXJ0OiBzdGFydExpbmVTdGFydCxcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydCxcbiAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzY2FuVGVtcGxhdGUoKSB7XG4gICAgICAgIHZhciBjb29rZWQgPSAnJywgY2gsIHN0YXJ0LCByYXdPZmZzZXQsIHRlcm1pbmF0ZWQsIGhlYWQsIHRhaWwsIHJlc3RvcmUsIHVuZXNjYXBlZDtcblxuICAgICAgICB0ZXJtaW5hdGVkID0gZmFsc2U7XG4gICAgICAgIHRhaWwgPSBmYWxzZTtcbiAgICAgICAgc3RhcnQgPSBpbmRleDtcbiAgICAgICAgaGVhZCA9IChzb3VyY2VbaW5kZXhdID09PSAnYCcpO1xuICAgICAgICByYXdPZmZzZXQgPSAyO1xuXG4gICAgICAgICsraW5kZXg7XG5cbiAgICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBjaCA9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgIGlmIChjaCA9PT0gJ2AnKSB7XG4gICAgICAgICAgICAgICAgcmF3T2Zmc2V0ID0gMTtcbiAgICAgICAgICAgICAgICB0YWlsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0ZXJtaW5hdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT09ICckJykge1xuICAgICAgICAgICAgICAgIGlmIChzb3VyY2VbaW5kZXhdID09PSAneycpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuY3VybHlTdGFjay5wdXNoKCckeycpO1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICB0ZXJtaW5hdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvb2tlZCArPSBjaDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT09ICdcXFxcJykge1xuICAgICAgICAgICAgICAgIGNoID0gc291cmNlW2luZGV4KytdO1xuICAgICAgICAgICAgICAgIGlmICghaXNMaW5lVGVybWluYXRvcihjaC5jaGFyQ29kZUF0KDApKSkge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ24nOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9ICdcXG4nO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3InOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9ICdcXHInO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3QnOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9ICdcXHQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3UnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICd4JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VbaW5kZXhdID09PSAneycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tlZCArPSBzY2FuVW5pY29kZUNvZGVQb2ludEVzY2FwZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0b3JlID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5lc2NhcGVkID0gc2NhbkhleEVzY2FwZShjaCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVuZXNjYXBlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29rZWQgKz0gdW5lc2NhcGVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gcmVzdG9yZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9IGNoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdiJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tlZCArPSAnXFxiJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdmJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tlZCArPSAnXFxmJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICd2JzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tlZCArPSAnXFx2JztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICcwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0RlY2ltYWxEaWdpdChzb3VyY2UuY2hhckNvZGVBdChpbmRleCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElsbGVnYWw6IFxcMDEgXFwwMiBhbmQgc28gb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5UZW1wbGF0ZU9jdGFsTGl0ZXJhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvb2tlZCArPSAnXFwwJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNPY3RhbERpZ2l0KGNoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElsbGVnYWw6IFxcMSBcXDJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLlRlbXBsYXRlT2N0YWxMaXRlcmFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29va2VkICs9IGNoO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICArK2xpbmVOdW1iZXI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJ1xccicgJiYgc291cmNlW2luZGV4XSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbGluZVN0YXJ0ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0xpbmVUZXJtaW5hdG9yKGNoLmNoYXJDb2RlQXQoMCkpKSB7XG4gICAgICAgICAgICAgICAgKytsaW5lTnVtYmVyO1xuICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJ1xccicgJiYgc291cmNlW2luZGV4XSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgICAgICAgICAgKytpbmRleDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGluZVN0YXJ0ID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgY29va2VkICs9ICdcXG4nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb29rZWQgKz0gY2g7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRlcm1pbmF0ZWQpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWhlYWQpIHtcbiAgICAgICAgICAgIHN0YXRlLmN1cmx5U3RhY2sucG9wKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdHlwZTogVG9rZW4uVGVtcGxhdGUsXG4gICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIGNvb2tlZDogY29va2VkLFxuICAgICAgICAgICAgICAgIHJhdzogc291cmNlLnNsaWNlKHN0YXJ0ICsgMSwgaW5kZXggLSByYXdPZmZzZXQpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGVhZDogaGVhZCxcbiAgICAgICAgICAgIHRhaWw6IHRhaWwsXG4gICAgICAgICAgICBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgbGluZVN0YXJ0OiBsaW5lU3RhcnQsXG4gICAgICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgICAgICBlbmQ6IGluZGV4XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdGVzdFJlZ0V4cChwYXR0ZXJuLCBmbGFncykge1xuICAgICAgICB2YXIgdG1wID0gcGF0dGVybjtcblxuICAgICAgICBpZiAoZmxhZ3MuaW5kZXhPZigndScpID49IDApIHtcbiAgICAgICAgICAgIC8vIFJlcGxhY2UgZWFjaCBhc3RyYWwgc3ltYm9sIGFuZCBldmVyeSBVbmljb2RlIGVzY2FwZSBzZXF1ZW5jZVxuICAgICAgICAgICAgLy8gdGhhdCBwb3NzaWJseSByZXByZXNlbnRzIGFuIGFzdHJhbCBzeW1ib2wgb3IgYSBwYWlyZWQgc3Vycm9nYXRlXG4gICAgICAgICAgICAvLyB3aXRoIGEgc2luZ2xlIEFTQ0lJIHN5bWJvbCB0byBhdm9pZCB0aHJvd2luZyBvbiByZWd1bGFyXG4gICAgICAgICAgICAvLyBleHByZXNzaW9ucyB0aGF0IGFyZSBvbmx5IHZhbGlkIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIGAvdWBcbiAgICAgICAgICAgIC8vIGZsYWcuXG4gICAgICAgICAgICAvLyBOb3RlOiByZXBsYWNpbmcgd2l0aCB0aGUgQVNDSUkgc3ltYm9sIGB4YCBtaWdodCBjYXVzZSBmYWxzZVxuICAgICAgICAgICAgLy8gbmVnYXRpdmVzIGluIHVubGlrZWx5IHNjZW5hcmlvcy4gRm9yIGV4YW1wbGUsIGBbXFx1ezYxfS1iXWAgaXMgYVxuICAgICAgICAgICAgLy8gcGVyZmVjdGx5IHZhbGlkIHBhdHRlcm4gdGhhdCBpcyBlcXVpdmFsZW50IHRvIGBbYS1iXWAsIGJ1dCBpdFxuICAgICAgICAgICAgLy8gd291bGQgYmUgcmVwbGFjZWQgYnkgYFt4LWJdYCB3aGljaCB0aHJvd3MgYW4gZXJyb3IuXG4gICAgICAgICAgICB0bXAgPSB0bXBcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxcXHVcXHsoWzAtOWEtZkEtRl0rKVxcfS9nLCBmdW5jdGlvbiAoJDAsICQxKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJzZUludCgkMSwgMTYpIDw9IDB4MTBGRkZGKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3gnO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKG51bGwsIE1lc3NhZ2VzLkludmFsaWRSZWdFeHApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgICAgIC9cXFxcdShbYS1mQS1GMC05XXs0fSl8W1xcdUQ4MDAtXFx1REJGRl1bXFx1REMwMC1cXHVERkZGXS9nLFxuICAgICAgICAgICAgICAgICAgICAneCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmlyc3QsIGRldGVjdCBpbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbnMuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBSZWdFeHAodG1wKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obnVsbCwgTWVzc2FnZXMuSW52YWxpZFJlZ0V4cCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXR1cm4gYSByZWd1bGFyIGV4cHJlc3Npb24gb2JqZWN0IGZvciB0aGlzIHBhdHRlcm4tZmxhZyBwYWlyLCBvclxuICAgICAgICAvLyBgbnVsbGAgaW4gY2FzZSB0aGUgY3VycmVudCBlbnZpcm9ubWVudCBkb2Vzbid0IHN1cHBvcnQgdGhlIGZsYWdzIGl0XG4gICAgICAgIC8vIHVzZXMuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cChwYXR0ZXJuLCBmbGFncyk7XG4gICAgICAgIH0gY2F0Y2ggKGV4Y2VwdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzY2FuUmVnRXhwQm9keSgpIHtcbiAgICAgICAgdmFyIGNoLCBzdHIsIGNsYXNzTWFya2VyLCB0ZXJtaW5hdGVkLCBib2R5O1xuXG4gICAgICAgIGNoID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgYXNzZXJ0KGNoID09PSAnLycsICdSZWd1bGFyIGV4cHJlc3Npb24gbGl0ZXJhbCBtdXN0IHN0YXJ0IHdpdGggYSBzbGFzaCcpO1xuICAgICAgICBzdHIgPSBzb3VyY2VbaW5kZXgrK107XG5cbiAgICAgICAgY2xhc3NNYXJrZXIgPSBmYWxzZTtcbiAgICAgICAgdGVybWluYXRlZCA9IGZhbHNlO1xuICAgICAgICB3aGlsZSAoaW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIGNoID0gc291cmNlW2luZGV4KytdO1xuICAgICAgICAgICAgc3RyICs9IGNoO1xuICAgICAgICAgICAgaWYgKGNoID09PSAnXFxcXCcpIHtcbiAgICAgICAgICAgICAgICBjaCA9IHNvdXJjZVtpbmRleCsrXTtcbiAgICAgICAgICAgICAgICAvLyBFQ01BLTI2MiA3LjguNVxuICAgICAgICAgICAgICAgIGlmIChpc0xpbmVUZXJtaW5hdG9yKGNoLmNoYXJDb2RlQXQoMCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKG51bGwsIE1lc3NhZ2VzLlVudGVybWluYXRlZFJlZ0V4cCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN0ciArPSBjaDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNMaW5lVGVybWluYXRvcihjaC5jaGFyQ29kZUF0KDApKSkge1xuICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKG51bGwsIE1lc3NhZ2VzLlVudGVybWluYXRlZFJlZ0V4cCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNsYXNzTWFya2VyKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoID09PSAnXScpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NNYXJrZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChjaCA9PT0gJy8nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRlcm1pbmF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoID09PSAnWycpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NNYXJrZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGVybWluYXRlZCkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obnVsbCwgTWVzc2FnZXMuVW50ZXJtaW5hdGVkUmVnRXhwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEV4Y2x1ZGUgbGVhZGluZyBhbmQgdHJhaWxpbmcgc2xhc2guXG4gICAgICAgIGJvZHkgPSBzdHIuc3Vic3RyKDEsIHN0ci5sZW5ndGggLSAyKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbHVlOiBib2R5LFxuICAgICAgICAgICAgbGl0ZXJhbDogc3RyXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2NhblJlZ0V4cEZsYWdzKCkge1xuICAgICAgICB2YXIgY2gsIHN0ciwgZmxhZ3MsIHJlc3RvcmU7XG5cbiAgICAgICAgc3RyID0gJyc7XG4gICAgICAgIGZsYWdzID0gJyc7XG4gICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgY2ggPSBzb3VyY2VbaW5kZXhdO1xuICAgICAgICAgICAgaWYgKCFpc0lkZW50aWZpZXJQYXJ0KGNoLmNoYXJDb2RlQXQoMCkpKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICsraW5kZXg7XG4gICAgICAgICAgICBpZiAoY2ggPT09ICdcXFxcJyAmJiBpbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNoID0gc291cmNlW2luZGV4XTtcbiAgICAgICAgICAgICAgICBpZiAoY2ggPT09ICd1Jykge1xuICAgICAgICAgICAgICAgICAgICArK2luZGV4O1xuICAgICAgICAgICAgICAgICAgICByZXN0b3JlID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIGNoID0gc2NhbkhleEVzY2FwZSgndScpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzICs9IGNoO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChzdHIgKz0gJ1xcXFx1JzsgcmVzdG9yZSA8IGluZGV4OyArK3Jlc3RvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgKz0gc291cmNlW3Jlc3RvcmVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSByZXN0b3JlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MgKz0gJ3UnO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyICs9ICdcXFxcdSc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdHIgKz0gJ1xcXFwnO1xuICAgICAgICAgICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZmxhZ3MgKz0gY2g7XG4gICAgICAgICAgICAgICAgc3RyICs9IGNoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbHVlOiBmbGFncyxcbiAgICAgICAgICAgIGxpdGVyYWw6IHN0clxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjYW5SZWdFeHAoKSB7XG4gICAgICAgIHNjYW5uaW5nID0gdHJ1ZTtcbiAgICAgICAgdmFyIHN0YXJ0LCBib2R5LCBmbGFncywgdmFsdWU7XG5cbiAgICAgICAgbG9va2FoZWFkID0gbnVsbDtcbiAgICAgICAgc2tpcENvbW1lbnQoKTtcbiAgICAgICAgc3RhcnQgPSBpbmRleDtcblxuICAgICAgICBib2R5ID0gc2NhblJlZ0V4cEJvZHkoKTtcbiAgICAgICAgZmxhZ3MgPSBzY2FuUmVnRXhwRmxhZ3MoKTtcbiAgICAgICAgdmFsdWUgPSB0ZXN0UmVnRXhwKGJvZHkudmFsdWUsIGZsYWdzLnZhbHVlKTtcbiAgICAgICAgc2Nhbm5pbmcgPSBmYWxzZTtcbiAgICAgICAgaWYgKGV4dHJhLnRva2VuaXplKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFRva2VuLlJlZ3VsYXJFeHByZXNzaW9uLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICByZWdleDoge1xuICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuOiBib2R5LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBmbGFnczogZmxhZ3MudmFsdWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICAgICAgbGluZVN0YXJ0OiBsaW5lU3RhcnQsXG4gICAgICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0LFxuICAgICAgICAgICAgICAgIGVuZDogaW5kZXhcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGl0ZXJhbDogYm9keS5saXRlcmFsICsgZmxhZ3MubGl0ZXJhbCxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIHJlZ2V4OiB7XG4gICAgICAgICAgICAgICAgcGF0dGVybjogYm9keS52YWx1ZSxcbiAgICAgICAgICAgICAgICBmbGFnczogZmxhZ3MudmFsdWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGFydDogc3RhcnQsXG4gICAgICAgICAgICBlbmQ6IGluZGV4XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29sbGVjdFJlZ2V4KCkge1xuICAgICAgICB2YXIgcG9zLCBsb2MsIHJlZ2V4LCB0b2tlbjtcblxuICAgICAgICBza2lwQ29tbWVudCgpO1xuXG4gICAgICAgIHBvcyA9IGluZGV4O1xuICAgICAgICBsb2MgPSB7XG4gICAgICAgICAgICBzdGFydDoge1xuICAgICAgICAgICAgICAgIGxpbmU6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICAgICAgY29sdW1uOiBpbmRleCAtIGxpbmVTdGFydFxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHJlZ2V4ID0gc2NhblJlZ0V4cCgpO1xuXG4gICAgICAgIGxvYy5lbmQgPSB7XG4gICAgICAgICAgICBsaW5lOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgY29sdW1uOiBpbmRleCAtIGxpbmVTdGFydFxuICAgICAgICB9O1xuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIGlmICghZXh0cmEudG9rZW5pemUpIHtcbiAgICAgICAgICAgIC8vIFBvcCB0aGUgcHJldmlvdXMgdG9rZW4sIHdoaWNoIGlzIGxpa2VseSAnLycgb3IgJy89J1xuICAgICAgICAgICAgaWYgKGV4dHJhLnRva2Vucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdG9rZW4gPSBleHRyYS50b2tlbnNbZXh0cmEudG9rZW5zLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgICAgIGlmICh0b2tlbi5yYW5nZVswXSA9PT0gcG9zICYmIHRva2VuLnR5cGUgPT09ICdQdW5jdHVhdG9yJykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodG9rZW4udmFsdWUgPT09ICcvJyB8fCB0b2tlbi52YWx1ZSA9PT0gJy89Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmEudG9rZW5zLnBvcCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBleHRyYS50b2tlbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgdHlwZTogJ1JlZ3VsYXJFeHByZXNzaW9uJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogcmVnZXgubGl0ZXJhbCxcbiAgICAgICAgICAgICAgICByZWdleDogcmVnZXgucmVnZXgsXG4gICAgICAgICAgICAgICAgcmFuZ2U6IFtwb3MsIGluZGV4XSxcbiAgICAgICAgICAgICAgICBsb2M6IGxvY1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVnZXg7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNJZGVudGlmaWVyTmFtZSh0b2tlbikge1xuICAgICAgICByZXR1cm4gdG9rZW4udHlwZSA9PT0gVG9rZW4uSWRlbnRpZmllciB8fFxuICAgICAgICAgICAgdG9rZW4udHlwZSA9PT0gVG9rZW4uS2V5d29yZCB8fFxuICAgICAgICAgICAgdG9rZW4udHlwZSA9PT0gVG9rZW4uQm9vbGVhbkxpdGVyYWwgfHxcbiAgICAgICAgICAgIHRva2VuLnR5cGUgPT09IFRva2VuLk51bGxMaXRlcmFsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkdmFuY2VTbGFzaCgpIHtcbiAgICAgICAgdmFyIHByZXZUb2tlbixcbiAgICAgICAgICAgIGNoZWNrVG9rZW47XG4gICAgICAgIC8vIFVzaW5nIHRoZSBmb2xsb3dpbmcgYWxnb3JpdGhtOlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9zd2VldC5qcy93aWtpL2Rlc2lnblxuICAgICAgICBwcmV2VG9rZW4gPSBleHRyYS50b2tlbnNbZXh0cmEudG9rZW5zLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAoIXByZXZUb2tlbikge1xuICAgICAgICAgICAgLy8gTm90aGluZyBiZWZvcmUgdGhhdDogaXQgY2Fubm90IGJlIGEgZGl2aXNpb24uXG4gICAgICAgICAgICByZXR1cm4gY29sbGVjdFJlZ2V4KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByZXZUb2tlbi50eXBlID09PSAnUHVuY3R1YXRvcicpIHtcbiAgICAgICAgICAgIGlmIChwcmV2VG9rZW4udmFsdWUgPT09ICddJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBzY2FuUHVuY3R1YXRvcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHByZXZUb2tlbi52YWx1ZSA9PT0gJyknKSB7XG4gICAgICAgICAgICAgICAgY2hlY2tUb2tlbiA9IGV4dHJhLnRva2Vuc1tleHRyYS5vcGVuUGFyZW5Ub2tlbiAtIDFdO1xuICAgICAgICAgICAgICAgIGlmIChjaGVja1Rva2VuICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Rva2VuLnR5cGUgPT09ICdLZXl3b3JkJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoZWNrVG9rZW4udmFsdWUgPT09ICdpZicgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Rva2VuLnZhbHVlID09PSAnd2hpbGUnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tUb2tlbi52YWx1ZSA9PT0gJ2ZvcicgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Rva2VuLnZhbHVlID09PSAnd2l0aCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xsZWN0UmVnZXgoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNjYW5QdW5jdHVhdG9yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocHJldlRva2VuLnZhbHVlID09PSAnfScpIHtcbiAgICAgICAgICAgICAgICAvLyBEaXZpZGluZyBhIGZ1bmN0aW9uIGJ5IGFueXRoaW5nIG1ha2VzIGxpdHRsZSBzZW5zZSxcbiAgICAgICAgICAgICAgICAvLyBidXQgd2UgaGF2ZSB0byBjaGVjayBmb3IgdGhhdC5cbiAgICAgICAgICAgICAgICBpZiAoZXh0cmEudG9rZW5zW2V4dHJhLm9wZW5DdXJseVRva2VuIC0gM10gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhLnRva2Vuc1tleHRyYS5vcGVuQ3VybHlUb2tlbiAtIDNdLnR5cGUgPT09ICdLZXl3b3JkJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBBbm9ueW1vdXMgZnVuY3Rpb24uXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrVG9rZW4gPSBleHRyYS50b2tlbnNbZXh0cmEub3BlbkN1cmx5VG9rZW4gLSA0XTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGVja1Rva2VuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2NhblB1bmN0dWF0b3IoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXh0cmEudG9rZW5zW2V4dHJhLm9wZW5DdXJseVRva2VuIC0gNF0gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhLnRva2Vuc1tleHRyYS5vcGVuQ3VybHlUb2tlbiAtIDRdLnR5cGUgPT09ICdLZXl3b3JkJykge1xuICAgICAgICAgICAgICAgICAgICAvLyBOYW1lZCBmdW5jdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgY2hlY2tUb2tlbiA9IGV4dHJhLnRva2Vuc1tleHRyYS5vcGVuQ3VybHlUb2tlbiAtIDVdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNoZWNrVG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xsZWN0UmVnZXgoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzY2FuUHVuY3R1YXRvcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBjaGVja1Rva2VuIGRldGVybWluZXMgd2hldGhlciB0aGUgZnVuY3Rpb24gaXNcbiAgICAgICAgICAgICAgICAvLyBhIGRlY2xhcmF0aW9uIG9yIGFuIGV4cHJlc3Npb24uXG4gICAgICAgICAgICAgICAgaWYgKEZuRXhwclRva2Vucy5pbmRleE9mKGNoZWNrVG9rZW4udmFsdWUpID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSXQgaXMgYW4gZXhwcmVzc2lvbi5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNjYW5QdW5jdHVhdG9yKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIEl0IGlzIGEgZGVjbGFyYXRpb24uXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3RSZWdleCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3RSZWdleCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcmV2VG9rZW4udHlwZSA9PT0gJ0tleXdvcmQnICYmIHByZXZUb2tlbi52YWx1ZSAhPT0gJ3RoaXMnKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sbGVjdFJlZ2V4KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNjYW5QdW5jdHVhdG9yKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWR2YW5jZSgpIHtcbiAgICAgICAgdmFyIGNoLCB0b2tlbjtcblxuICAgICAgICBpZiAoaW5kZXggPj0gbGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFRva2VuLkVPRixcbiAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyLFxuICAgICAgICAgICAgICAgIGxpbmVTdGFydDogbGluZVN0YXJ0LFxuICAgICAgICAgICAgICAgIHN0YXJ0OiBpbmRleCxcbiAgICAgICAgICAgICAgICBlbmQ6IGluZGV4XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY2ggPSBzb3VyY2UuY2hhckNvZGVBdChpbmRleCk7XG5cbiAgICAgICAgaWYgKGlzSWRlbnRpZmllclN0YXJ0KGNoKSkge1xuICAgICAgICAgICAgdG9rZW4gPSBzY2FuSWRlbnRpZmllcigpO1xuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiBpc1N0cmljdE1vZGVSZXNlcnZlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdG9rZW4udHlwZSA9IFRva2VuLktleXdvcmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWZXJ5IGNvbW1vbjogKCBhbmQgKSBhbmQgO1xuICAgICAgICBpZiAoY2ggPT09IDB4MjggfHwgY2ggPT09IDB4MjkgfHwgY2ggPT09IDB4M0IpIHtcbiAgICAgICAgICAgIHJldHVybiBzY2FuUHVuY3R1YXRvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3RyaW5nIGxpdGVyYWwgc3RhcnRzIHdpdGggc2luZ2xlIHF1b3RlIChVKzAwMjcpIG9yIGRvdWJsZSBxdW90ZSAoVSswMDIyKS5cbiAgICAgICAgaWYgKGNoID09PSAweDI3IHx8IGNoID09PSAweDIyKSB7XG4gICAgICAgICAgICByZXR1cm4gc2NhblN0cmluZ0xpdGVyYWwoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERvdCAoLikgVSswMDJFIGNhbiBhbHNvIHN0YXJ0IGEgZmxvYXRpbmctcG9pbnQgbnVtYmVyLCBoZW5jZSB0aGUgbmVlZFxuICAgICAgICAvLyB0byBjaGVjayB0aGUgbmV4dCBjaGFyYWN0ZXIuXG4gICAgICAgIGlmIChjaCA9PT0gMHgyRSkge1xuICAgICAgICAgICAgaWYgKGlzRGVjaW1hbERpZ2l0KHNvdXJjZS5jaGFyQ29kZUF0KGluZGV4ICsgMSkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNjYW5OdW1lcmljTGl0ZXJhbCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHNjYW5QdW5jdHVhdG9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNEZWNpbWFsRGlnaXQoY2gpKSB7XG4gICAgICAgICAgICByZXR1cm4gc2Nhbk51bWVyaWNMaXRlcmFsKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTbGFzaCAoLykgVSswMDJGIGNhbiBhbHNvIHN0YXJ0IGEgcmVnZXguXG4gICAgICAgIGlmIChleHRyYS50b2tlbml6ZSAmJiBjaCA9PT0gMHgyRikge1xuICAgICAgICAgICAgcmV0dXJuIGFkdmFuY2VTbGFzaCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVGVtcGxhdGUgbGl0ZXJhbHMgc3RhcnQgd2l0aCBgIChVKzAwNjApIGZvciB0ZW1wbGF0ZSBoZWFkXG4gICAgICAgIC8vIG9yIH0gKFUrMDA3RCkgZm9yIHRlbXBsYXRlIG1pZGRsZSBvciB0ZW1wbGF0ZSB0YWlsLlxuICAgICAgICBpZiAoY2ggPT09IDB4NjAgfHwgKGNoID09PSAweDdEICYmIHN0YXRlLmN1cmx5U3RhY2tbc3RhdGUuY3VybHlTdGFjay5sZW5ndGggLSAxXSA9PT0gJyR7JykpIHtcbiAgICAgICAgICAgIHJldHVybiBzY2FuVGVtcGxhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzY2FuUHVuY3R1YXRvcigpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbGxlY3RUb2tlbigpIHtcbiAgICAgICAgdmFyIGxvYywgdG9rZW4sIHZhbHVlLCBlbnRyeTtcblxuICAgICAgICBsb2MgPSB7XG4gICAgICAgICAgICBzdGFydDoge1xuICAgICAgICAgICAgICAgIGxpbmU6IGxpbmVOdW1iZXIsXG4gICAgICAgICAgICAgICAgY29sdW1uOiBpbmRleCAtIGxpbmVTdGFydFxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHRva2VuID0gYWR2YW5jZSgpO1xuICAgICAgICBsb2MuZW5kID0ge1xuICAgICAgICAgICAgbGluZTogbGluZU51bWJlcixcbiAgICAgICAgICAgIGNvbHVtbjogaW5kZXggLSBsaW5lU3RhcnRcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAodG9rZW4udHlwZSAhPT0gVG9rZW4uRU9GKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHNvdXJjZS5zbGljZSh0b2tlbi5zdGFydCwgdG9rZW4uZW5kKTtcbiAgICAgICAgICAgIGVudHJ5ID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFRva2VuTmFtZVt0b2tlbi50eXBlXSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgICAgICAgcmFuZ2U6IFt0b2tlbi5zdGFydCwgdG9rZW4uZW5kXSxcbiAgICAgICAgICAgICAgICBsb2M6IGxvY1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0b2tlbi5yZWdleCkge1xuICAgICAgICAgICAgICAgIGVudHJ5LnJlZ2V4ID0ge1xuICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuOiB0b2tlbi5yZWdleC5wYXR0ZXJuLFxuICAgICAgICAgICAgICAgICAgICBmbGFnczogdG9rZW4ucmVnZXguZmxhZ3NcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXh0cmEudG9rZW5zLnB1c2goZW50cnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxleCgpIHtcbiAgICAgICAgdmFyIHRva2VuO1xuICAgICAgICBzY2FubmluZyA9IHRydWU7XG5cbiAgICAgICAgbGFzdEluZGV4ID0gaW5kZXg7XG4gICAgICAgIGxhc3RMaW5lTnVtYmVyID0gbGluZU51bWJlcjtcbiAgICAgICAgbGFzdExpbmVTdGFydCA9IGxpbmVTdGFydDtcblxuICAgICAgICBza2lwQ29tbWVudCgpO1xuXG4gICAgICAgIHRva2VuID0gbG9va2FoZWFkO1xuXG4gICAgICAgIHN0YXJ0SW5kZXggPSBpbmRleDtcbiAgICAgICAgc3RhcnRMaW5lTnVtYmVyID0gbGluZU51bWJlcjtcbiAgICAgICAgc3RhcnRMaW5lU3RhcnQgPSBsaW5lU3RhcnQ7XG5cbiAgICAgICAgbG9va2FoZWFkID0gKHR5cGVvZiBleHRyYS50b2tlbnMgIT09ICd1bmRlZmluZWQnKSA/IGNvbGxlY3RUb2tlbigpIDogYWR2YW5jZSgpO1xuICAgICAgICBzY2FubmluZyA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGVlaygpIHtcbiAgICAgICAgc2Nhbm5pbmcgPSB0cnVlO1xuXG4gICAgICAgIHNraXBDb21tZW50KCk7XG5cbiAgICAgICAgbGFzdEluZGV4ID0gaW5kZXg7XG4gICAgICAgIGxhc3RMaW5lTnVtYmVyID0gbGluZU51bWJlcjtcbiAgICAgICAgbGFzdExpbmVTdGFydCA9IGxpbmVTdGFydDtcblxuICAgICAgICBzdGFydEluZGV4ID0gaW5kZXg7XG4gICAgICAgIHN0YXJ0TGluZU51bWJlciA9IGxpbmVOdW1iZXI7XG4gICAgICAgIHN0YXJ0TGluZVN0YXJ0ID0gbGluZVN0YXJ0O1xuXG4gICAgICAgIGxvb2thaGVhZCA9ICh0eXBlb2YgZXh0cmEudG9rZW5zICE9PSAndW5kZWZpbmVkJykgPyBjb2xsZWN0VG9rZW4oKSA6IGFkdmFuY2UoKTtcbiAgICAgICAgc2Nhbm5pbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBQb3NpdGlvbigpIHtcbiAgICAgICAgdGhpcy5saW5lID0gc3RhcnRMaW5lTnVtYmVyO1xuICAgICAgICB0aGlzLmNvbHVtbiA9IHN0YXJ0SW5kZXggLSBzdGFydExpbmVTdGFydDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBTb3VyY2VMb2NhdGlvbigpIHtcbiAgICAgICAgdGhpcy5zdGFydCA9IG5ldyBQb3NpdGlvbigpO1xuICAgICAgICB0aGlzLmVuZCA9IG51bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gV3JhcHBpbmdTb3VyY2VMb2NhdGlvbihzdGFydFRva2VuKSB7XG4gICAgICAgIHRoaXMuc3RhcnQgPSB7XG4gICAgICAgICAgICBsaW5lOiBzdGFydFRva2VuLmxpbmVOdW1iZXIsXG4gICAgICAgICAgICBjb2x1bW46IHN0YXJ0VG9rZW4uc3RhcnQgLSBzdGFydFRva2VuLmxpbmVTdGFydFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmVuZCA9IG51bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gTm9kZSgpIHtcbiAgICAgICAgaWYgKGV4dHJhLnJhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnJhbmdlID0gW3N0YXJ0SW5kZXgsIDBdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChleHRyYS5sb2MpIHtcbiAgICAgICAgICAgIHRoaXMubG9jID0gbmV3IFNvdXJjZUxvY2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikge1xuICAgICAgICBpZiAoZXh0cmEucmFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMucmFuZ2UgPSBbc3RhcnRUb2tlbi5zdGFydCwgMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV4dHJhLmxvYykge1xuICAgICAgICAgICAgdGhpcy5sb2MgPSBuZXcgV3JhcHBpbmdTb3VyY2VMb2NhdGlvbihzdGFydFRva2VuKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIFdyYXBwaW5nTm9kZS5wcm90b3R5cGUgPSBOb2RlLnByb3RvdHlwZSA9IHtcblxuICAgICAgICBwcm9jZXNzQ29tbWVudDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGxhc3RDaGlsZCxcbiAgICAgICAgICAgICAgICBsZWFkaW5nQ29tbWVudHMsXG4gICAgICAgICAgICAgICAgdHJhaWxpbmdDb21tZW50cyxcbiAgICAgICAgICAgICAgICBib3R0b21SaWdodCA9IGV4dHJhLmJvdHRvbVJpZ2h0U3RhY2ssXG4gICAgICAgICAgICAgICAgaSxcbiAgICAgICAgICAgICAgICBjb21tZW50LFxuICAgICAgICAgICAgICAgIGxhc3QgPSBib3R0b21SaWdodFtib3R0b21SaWdodC5sZW5ndGggLSAxXTtcblxuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gU3ludGF4LlByb2dyYW0pIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5ib2R5Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGV4dHJhLnRyYWlsaW5nQ29tbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRyYWlsaW5nQ29tbWVudHMgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGkgPSBleHRyYS50cmFpbGluZ0NvbW1lbnRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnQgPSBleHRyYS50cmFpbGluZ0NvbW1lbnRzW2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29tbWVudC5yYW5nZVswXSA+PSB0aGlzLnJhbmdlWzFdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFpbGluZ0NvbW1lbnRzLnVuc2hpZnQoY29tbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBleHRyYS50cmFpbGluZ0NvbW1lbnRzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBleHRyYS50cmFpbGluZ0NvbW1lbnRzID0gW107XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChsYXN0ICYmIGxhc3QudHJhaWxpbmdDb21tZW50cyAmJiBsYXN0LnRyYWlsaW5nQ29tbWVudHNbMF0ucmFuZ2VbMF0gPj0gdGhpcy5yYW5nZVsxXSkge1xuICAgICAgICAgICAgICAgICAgICB0cmFpbGluZ0NvbW1lbnRzID0gbGFzdC50cmFpbGluZ0NvbW1lbnRzO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgbGFzdC50cmFpbGluZ0NvbW1lbnRzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRWF0aW5nIHRoZSBzdGFjay5cbiAgICAgICAgICAgIGlmIChsYXN0KSB7XG4gICAgICAgICAgICAgICAgd2hpbGUgKGxhc3QgJiYgbGFzdC5yYW5nZVswXSA+PSB0aGlzLnJhbmdlWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RDaGlsZCA9IGxhc3Q7XG4gICAgICAgICAgICAgICAgICAgIGxhc3QgPSBib3R0b21SaWdodC5wb3AoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChsYXN0Q2hpbGQpIHtcbiAgICAgICAgICAgICAgICBpZiAobGFzdENoaWxkLmxlYWRpbmdDb21tZW50cyAmJiBsYXN0Q2hpbGQubGVhZGluZ0NvbW1lbnRzW2xhc3RDaGlsZC5sZWFkaW5nQ29tbWVudHMubGVuZ3RoIC0gMV0ucmFuZ2VbMV0gPD0gdGhpcy5yYW5nZVswXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxlYWRpbmdDb21tZW50cyA9IGxhc3RDaGlsZC5sZWFkaW5nQ29tbWVudHM7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RDaGlsZC5sZWFkaW5nQ29tbWVudHMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChleHRyYS5sZWFkaW5nQ29tbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGxlYWRpbmdDb21tZW50cyA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAoaSA9IGV4dHJhLmxlYWRpbmdDb21tZW50cy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICAgICAgICAgICAgICBjb21tZW50ID0gZXh0cmEubGVhZGluZ0NvbW1lbnRzW2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29tbWVudC5yYW5nZVsxXSA8PSB0aGlzLnJhbmdlWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWFkaW5nQ29tbWVudHMudW5zaGlmdChjb21tZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhLmxlYWRpbmdDb21tZW50cy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgaWYgKGxlYWRpbmdDb21tZW50cyAmJiBsZWFkaW5nQ29tbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMubGVhZGluZ0NvbW1lbnRzID0gbGVhZGluZ0NvbW1lbnRzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRyYWlsaW5nQ29tbWVudHMgJiYgdHJhaWxpbmdDb21tZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50cmFpbGluZ0NvbW1lbnRzID0gdHJhaWxpbmdDb21tZW50cztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYm90dG9tUmlnaHQucHVzaCh0aGlzKTtcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2g6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChleHRyYS5yYW5nZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmFuZ2VbMV0gPSBsYXN0SW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXh0cmEubG9jKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2MuZW5kID0ge1xuICAgICAgICAgICAgICAgICAgICBsaW5lOiBsYXN0TGluZU51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uOiBsYXN0SW5kZXggLSBsYXN0TGluZVN0YXJ0XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAoZXh0cmEuc291cmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9jLnNvdXJjZSA9IGV4dHJhLnNvdXJjZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChleHRyYS5hdHRhY2hDb21tZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzQ29tbWVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEFycmF5RXhwcmVzc2lvbjogZnVuY3Rpb24gKGVsZW1lbnRzKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQXJyYXlFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50cyA9IGVsZW1lbnRzO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEFycmF5UGF0dGVybjogZnVuY3Rpb24gKGVsZW1lbnRzKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQXJyYXlQYXR0ZXJuO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50cyA9IGVsZW1lbnRzO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEFycm93RnVuY3Rpb25FeHByZXNzaW9uOiBmdW5jdGlvbiAocGFyYW1zLCBkZWZhdWx0cywgYm9keSwgZXhwcmVzc2lvbikge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkFycm93RnVuY3Rpb25FeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5pZCA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdHMgPSBkZWZhdWx0cztcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRvciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uID0gZXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hBc3NpZ25tZW50RXhwcmVzc2lvbjogZnVuY3Rpb24gKG9wZXJhdG9yLCBsZWZ0LCByaWdodCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkFzc2lnbm1lbnRFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvciA9IG9wZXJhdG9yO1xuICAgICAgICAgICAgdGhpcy5sZWZ0ID0gbGVmdDtcbiAgICAgICAgICAgIHRoaXMucmlnaHQgPSByaWdodDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hBc3NpZ25tZW50UGF0dGVybjogZnVuY3Rpb24gKGxlZnQsIHJpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQXNzaWdubWVudFBhdHRlcm47XG4gICAgICAgICAgICB0aGlzLmxlZnQgPSBsZWZ0O1xuICAgICAgICAgICAgdGhpcy5yaWdodCA9IHJpZ2h0O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEJpbmFyeUV4cHJlc3Npb246IGZ1bmN0aW9uIChvcGVyYXRvciwgbGVmdCwgcmlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IChvcGVyYXRvciA9PT0gJ3x8JyB8fCBvcGVyYXRvciA9PT0gJyYmJykgPyBTeW50YXguTG9naWNhbEV4cHJlc3Npb24gOiBTeW50YXguQmluYXJ5RXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3IgPSBvcGVyYXRvcjtcbiAgICAgICAgICAgIHRoaXMubGVmdCA9IGxlZnQ7XG4gICAgICAgICAgICB0aGlzLnJpZ2h0ID0gcmlnaHQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoQmxvY2tTdGF0ZW1lbnQ6IGZ1bmN0aW9uIChib2R5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQmxvY2tTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmJvZHkgPSBib2R5O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEJyZWFrU3RhdGVtZW50OiBmdW5jdGlvbiAobGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5CcmVha1N0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMubGFiZWwgPSBsYWJlbDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hDYWxsRXhwcmVzc2lvbjogZnVuY3Rpb24gKGNhbGxlZSwgYXJncykge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkNhbGxFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5jYWxsZWUgPSBjYWxsZWU7XG4gICAgICAgICAgICB0aGlzLmFyZ3VtZW50cyA9IGFyZ3M7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoQ2F0Y2hDbGF1c2U6IGZ1bmN0aW9uIChwYXJhbSwgYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkNhdGNoQ2xhdXNlO1xuICAgICAgICAgICAgdGhpcy5wYXJhbSA9IHBhcmFtO1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hDbGFzc0JvZHk6IGZ1bmN0aW9uIChib2R5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguQ2xhc3NCb2R5O1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hDbGFzc0RlY2xhcmF0aW9uOiBmdW5jdGlvbiAoaWQsIHN1cGVyQ2xhc3MsIGJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5DbGFzc0RlY2xhcmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgICAgICAgdGhpcy5zdXBlckNsYXNzID0gc3VwZXJDbGFzcztcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoQ2xhc3NFeHByZXNzaW9uOiBmdW5jdGlvbiAoaWQsIHN1cGVyQ2xhc3MsIGJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5DbGFzc0V4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgICAgICB0aGlzLnN1cGVyQ2xhc3MgPSBzdXBlckNsYXNzO1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hDb25kaXRpb25hbEV4cHJlc3Npb246IGZ1bmN0aW9uICh0ZXN0LCBjb25zZXF1ZW50LCBhbHRlcm5hdGUpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5Db25kaXRpb25hbEV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLnRlc3QgPSB0ZXN0O1xuICAgICAgICAgICAgdGhpcy5jb25zZXF1ZW50ID0gY29uc2VxdWVudDtcbiAgICAgICAgICAgIHRoaXMuYWx0ZXJuYXRlID0gYWx0ZXJuYXRlO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaENvbnRpbnVlU3RhdGVtZW50OiBmdW5jdGlvbiAobGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5Db250aW51ZVN0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMubGFiZWwgPSBsYWJlbDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hEZWJ1Z2dlclN0YXRlbWVudDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkRlYnVnZ2VyU3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaERvV2hpbGVTdGF0ZW1lbnQ6IGZ1bmN0aW9uIChib2R5LCB0ZXN0KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRG9XaGlsZVN0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLnRlc3QgPSB0ZXN0O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEVtcHR5U3RhdGVtZW50OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRW1wdHlTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoRXhwcmVzc2lvblN0YXRlbWVudDogZnVuY3Rpb24gKGV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5FeHByZXNzaW9uU3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uID0gZXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hGb3JTdGF0ZW1lbnQ6IGZ1bmN0aW9uIChpbml0LCB0ZXN0LCB1cGRhdGUsIGJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5Gb3JTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmluaXQgPSBpbml0O1xuICAgICAgICAgICAgdGhpcy50ZXN0ID0gdGVzdDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlID0gdXBkYXRlO1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hGb3JJblN0YXRlbWVudDogZnVuY3Rpb24gKGxlZnQsIHJpZ2h0LCBib2R5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRm9ySW5TdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmxlZnQgPSBsZWZ0O1xuICAgICAgICAgICAgdGhpcy5yaWdodCA9IHJpZ2h0O1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZWFjaCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEZ1bmN0aW9uRGVjbGFyYXRpb246IGZ1bmN0aW9uIChpZCwgcGFyYW1zLCBkZWZhdWx0cywgYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkZ1bmN0aW9uRGVjbGFyYXRpb247XG4gICAgICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgICAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdHMgPSBkZWZhdWx0cztcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRvciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoRnVuY3Rpb25FeHByZXNzaW9uOiBmdW5jdGlvbiAoaWQsIHBhcmFtcywgZGVmYXVsdHMsIGJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5GdW5jdGlvbkV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgICAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdHMgPSBkZWZhdWx0cztcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRvciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoSWRlbnRpZmllcjogZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5JZGVudGlmaWVyO1xuICAgICAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hJZlN0YXRlbWVudDogZnVuY3Rpb24gKHRlc3QsIGNvbnNlcXVlbnQsIGFsdGVybmF0ZSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LklmU3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy50ZXN0ID0gdGVzdDtcbiAgICAgICAgICAgIHRoaXMuY29uc2VxdWVudCA9IGNvbnNlcXVlbnQ7XG4gICAgICAgICAgICB0aGlzLmFsdGVybmF0ZSA9IGFsdGVybmF0ZTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hMYWJlbGVkU3RhdGVtZW50OiBmdW5jdGlvbiAobGFiZWwsIGJvZHkpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5MYWJlbGVkU3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy5sYWJlbCA9IGxhYmVsO1xuICAgICAgICAgICAgdGhpcy5ib2R5ID0gYm9keTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hMaXRlcmFsOiBmdW5jdGlvbiAodG9rZW4pIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5MaXRlcmFsO1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRva2VuLnZhbHVlO1xuICAgICAgICAgICAgdGhpcy5yYXcgPSBzb3VyY2Uuc2xpY2UodG9rZW4uc3RhcnQsIHRva2VuLmVuZCk7XG4gICAgICAgICAgICBpZiAodG9rZW4ucmVnZXgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZ2V4ID0gdG9rZW4ucmVnZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoTWVtYmVyRXhwcmVzc2lvbjogZnVuY3Rpb24gKGFjY2Vzc29yLCBvYmplY3QsIHByb3BlcnR5KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguTWVtYmVyRXhwcmVzc2lvbjtcbiAgICAgICAgICAgIHRoaXMuY29tcHV0ZWQgPSBhY2Nlc3NvciA9PT0gJ1snO1xuICAgICAgICAgICAgdGhpcy5vYmplY3QgPSBvYmplY3Q7XG4gICAgICAgICAgICB0aGlzLnByb3BlcnR5ID0gcHJvcGVydHk7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoTmV3RXhwcmVzc2lvbjogZnVuY3Rpb24gKGNhbGxlZSwgYXJncykge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4Lk5ld0V4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLmNhbGxlZSA9IGNhbGxlZTtcbiAgICAgICAgICAgIHRoaXMuYXJndW1lbnRzID0gYXJncztcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hPYmplY3RFeHByZXNzaW9uOiBmdW5jdGlvbiAocHJvcGVydGllcykge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4Lk9iamVjdEV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaE9iamVjdFBhdHRlcm46IGZ1bmN0aW9uIChwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguT2JqZWN0UGF0dGVybjtcbiAgICAgICAgICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoUG9zdGZpeEV4cHJlc3Npb246IGZ1bmN0aW9uIChvcGVyYXRvciwgYXJndW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5VcGRhdGVFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvciA9IG9wZXJhdG9yO1xuICAgICAgICAgICAgdGhpcy5hcmd1bWVudCA9IGFyZ3VtZW50O1xuICAgICAgICAgICAgdGhpcy5wcmVmaXggPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hQcm9ncmFtOiBmdW5jdGlvbiAoYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlByb2dyYW07XG4gICAgICAgICAgICB0aGlzLmJvZHkgPSBib2R5O1xuICAgICAgICAgICAgaWYgKHNvdXJjZVR5cGUgPT09ICdtb2R1bGUnKSB7XG4gICAgICAgICAgICAgICAgLy8gdmVyeSByZXN0cmljdGl2ZSBmb3Igbm93XG4gICAgICAgICAgICAgICAgdGhpcy5zb3VyY2VUeXBlID0gc291cmNlVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hQcm9wZXJ0eTogZnVuY3Rpb24gKGtpbmQsIGtleSwgY29tcHV0ZWQsIHZhbHVlLCBtZXRob2QsIHNob3J0aGFuZCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlByb3BlcnR5O1xuICAgICAgICAgICAgdGhpcy5rZXkgPSBrZXk7XG4gICAgICAgICAgICB0aGlzLmNvbXB1dGVkID0gY29tcHV0ZWQ7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmtpbmQgPSBraW5kO1xuICAgICAgICAgICAgdGhpcy5tZXRob2QgPSBtZXRob2Q7XG4gICAgICAgICAgICB0aGlzLnNob3J0aGFuZCA9IHNob3J0aGFuZDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hSZXN0RWxlbWVudDogZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguUmVzdEVsZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmFyZ3VtZW50ID0gYXJndW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoUmV0dXJuU3RhdGVtZW50OiBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5SZXR1cm5TdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmFyZ3VtZW50ID0gYXJndW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoU2VxdWVuY2VFeHByZXNzaW9uOiBmdW5jdGlvbiAoZXhwcmVzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5TZXF1ZW5jZUV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25zID0gZXhwcmVzc2lvbnM7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoU3ByZWFkRWxlbWVudDogZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguU3ByZWFkRWxlbWVudDtcbiAgICAgICAgICAgIHRoaXMuYXJndW1lbnQgPSBhcmd1bWVudDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hTd2l0Y2hDYXNlOiBmdW5jdGlvbiAodGVzdCwgY29uc2VxdWVudCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlN3aXRjaENhc2U7XG4gICAgICAgICAgICB0aGlzLnRlc3QgPSB0ZXN0O1xuICAgICAgICAgICAgdGhpcy5jb25zZXF1ZW50ID0gY29uc2VxdWVudDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hTdXBlcjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlN1cGVyO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFN3aXRjaFN0YXRlbWVudDogZnVuY3Rpb24gKGRpc2NyaW1pbmFudCwgY2FzZXMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5Td2l0Y2hTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmRpc2NyaW1pbmFudCA9IGRpc2NyaW1pbmFudDtcbiAgICAgICAgICAgIHRoaXMuY2FzZXMgPSBjYXNlcztcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb246IGZ1bmN0aW9uICh0YWcsIHF1YXNpKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy50YWcgPSB0YWc7XG4gICAgICAgICAgICB0aGlzLnF1YXNpID0gcXVhc2k7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoVGVtcGxhdGVFbGVtZW50OiBmdW5jdGlvbiAodmFsdWUsIHRhaWwpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5UZW1wbGF0ZUVsZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLnRhaWwgPSB0YWlsO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFRlbXBsYXRlTGl0ZXJhbDogZnVuY3Rpb24gKHF1YXNpcywgZXhwcmVzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5UZW1wbGF0ZUxpdGVyYWw7XG4gICAgICAgICAgICB0aGlzLnF1YXNpcyA9IHF1YXNpcztcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnMgPSBleHByZXNzaW9ucztcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hUaGlzRXhwcmVzc2lvbjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlRoaXNFeHByZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFRocm93U3RhdGVtZW50OiBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5UaHJvd1N0YXRlbWVudDtcbiAgICAgICAgICAgIHRoaXMuYXJndW1lbnQgPSBhcmd1bWVudDtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hUcnlTdGF0ZW1lbnQ6IGZ1bmN0aW9uIChibG9jaywgaGFuZGxlciwgZmluYWxpemVyKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguVHJ5U3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy5ibG9jayA9IGJsb2NrO1xuICAgICAgICAgICAgdGhpcy5ndWFyZGVkSGFuZGxlcnMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlcnMgPSBoYW5kbGVyID8gWyBoYW5kbGVyIF0gOiBbXTtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXI7XG4gICAgICAgICAgICB0aGlzLmZpbmFsaXplciA9IGZpbmFsaXplcjtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hVbmFyeUV4cHJlc3Npb246IGZ1bmN0aW9uIChvcGVyYXRvciwgYXJndW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IChvcGVyYXRvciA9PT0gJysrJyB8fCBvcGVyYXRvciA9PT0gJy0tJykgPyBTeW50YXguVXBkYXRlRXhwcmVzc2lvbiA6IFN5bnRheC5VbmFyeUV4cHJlc3Npb247XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yID0gb3BlcmF0b3I7XG4gICAgICAgICAgICB0aGlzLmFyZ3VtZW50ID0gYXJndW1lbnQ7XG4gICAgICAgICAgICB0aGlzLnByZWZpeCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoVmFyaWFibGVEZWNsYXJhdGlvbjogZnVuY3Rpb24gKGRlY2xhcmF0aW9ucykge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlZhcmlhYmxlRGVjbGFyYXRpb247XG4gICAgICAgICAgICB0aGlzLmRlY2xhcmF0aW9ucyA9IGRlY2xhcmF0aW9ucztcbiAgICAgICAgICAgIHRoaXMua2luZCA9ICd2YXInO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaExleGljYWxEZWNsYXJhdGlvbjogZnVuY3Rpb24gKGRlY2xhcmF0aW9ucywga2luZCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LlZhcmlhYmxlRGVjbGFyYXRpb247XG4gICAgICAgICAgICB0aGlzLmRlY2xhcmF0aW9ucyA9IGRlY2xhcmF0aW9ucztcbiAgICAgICAgICAgIHRoaXMua2luZCA9IGtpbmQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoVmFyaWFibGVEZWNsYXJhdG9yOiBmdW5jdGlvbiAoaWQsIGluaXQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5WYXJpYWJsZURlY2xhcmF0b3I7XG4gICAgICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgICAgICB0aGlzLmluaXQgPSBpbml0O1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaFdoaWxlU3RhdGVtZW50OiBmdW5jdGlvbiAodGVzdCwgYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LldoaWxlU3RhdGVtZW50O1xuICAgICAgICAgICAgdGhpcy50ZXN0ID0gdGVzdDtcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoV2l0aFN0YXRlbWVudDogZnVuY3Rpb24gKG9iamVjdCwgYm9keSkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LldpdGhTdGF0ZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLm9iamVjdCA9IG9iamVjdDtcbiAgICAgICAgICAgIHRoaXMuYm9keSA9IGJvZHk7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoRXhwb3J0U3BlY2lmaWVyOiBmdW5jdGlvbiAobG9jYWwsIGV4cG9ydGVkKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRXhwb3J0U3BlY2lmaWVyO1xuICAgICAgICAgICAgdGhpcy5leHBvcnRlZCA9IGV4cG9ydGVkIHx8IGxvY2FsO1xuICAgICAgICAgICAgdGhpcy5sb2NhbCA9IGxvY2FsO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEltcG9ydERlZmF1bHRTcGVjaWZpZXI6IGZ1bmN0aW9uIChsb2NhbCkge1xuICAgICAgICAgICAgdGhpcy50eXBlID0gU3ludGF4LkltcG9ydERlZmF1bHRTcGVjaWZpZXI7XG4gICAgICAgICAgICB0aGlzLmxvY2FsID0gbG9jYWw7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyOiBmdW5jdGlvbiAobG9jYWwpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5JbXBvcnROYW1lc3BhY2VTcGVjaWZpZXI7XG4gICAgICAgICAgICB0aGlzLmxvY2FsID0gbG9jYWw7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoRXhwb3J0TmFtZWREZWNsYXJhdGlvbjogZnVuY3Rpb24gKGRlY2xhcmF0aW9uLCBzcGVjaWZpZXJzLCBzcmMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5FeHBvcnROYW1lZERlY2xhcmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5kZWNsYXJhdGlvbiA9IGRlY2xhcmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5zcGVjaWZpZXJzID0gc3BlY2lmaWVycztcbiAgICAgICAgICAgIHRoaXMuc291cmNlID0gc3JjO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEV4cG9ydERlZmF1bHREZWNsYXJhdGlvbjogZnVuY3Rpb24gKGRlY2xhcmF0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5kZWNsYXJhdGlvbiA9IGRlY2xhcmF0aW9uO1xuICAgICAgICAgICAgdGhpcy5maW5pc2goKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmlzaEV4cG9ydEFsbERlY2xhcmF0aW9uOiBmdW5jdGlvbiAoc3JjKSB7XG4gICAgICAgICAgICB0aGlzLnR5cGUgPSBTeW50YXguRXhwb3J0QWxsRGVjbGFyYXRpb247XG4gICAgICAgICAgICB0aGlzLnNvdXJjZSA9IHNyYztcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5pc2hJbXBvcnRTcGVjaWZpZXI6IGZ1bmN0aW9uIChsb2NhbCwgaW1wb3J0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5JbXBvcnRTcGVjaWZpZXI7XG4gICAgICAgICAgICB0aGlzLmxvY2FsID0gbG9jYWwgfHwgaW1wb3J0ZWQ7XG4gICAgICAgICAgICB0aGlzLmltcG9ydGVkID0gaW1wb3J0ZWQ7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmluaXNoSW1wb3J0RGVjbGFyYXRpb246IGZ1bmN0aW9uIChzcGVjaWZpZXJzLCBzcmMpIHtcbiAgICAgICAgICAgIHRoaXMudHlwZSA9IFN5bnRheC5JbXBvcnREZWNsYXJhdGlvbjtcbiAgICAgICAgICAgIHRoaXMuc3BlY2lmaWVycyA9IHNwZWNpZmllcnM7XG4gICAgICAgICAgICB0aGlzLnNvdXJjZSA9IHNyYztcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgIH07XG5cblxuICAgIGZ1bmN0aW9uIHJlY29yZEVycm9yKGVycm9yKSB7XG4gICAgICAgIHZhciBlLCBleGlzdGluZztcblxuICAgICAgICBmb3IgKGUgPSAwOyBlIDwgZXh0cmEuZXJyb3JzLmxlbmd0aDsgZSsrKSB7XG4gICAgICAgICAgICBleGlzdGluZyA9IGV4dHJhLmVycm9yc1tlXTtcbiAgICAgICAgICAgIC8vIFByZXZlbnQgZHVwbGljYXRlZCBlcnJvci5cbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICBpZiAoZXhpc3RpbmcuaW5kZXggPT09IGVycm9yLmluZGV4ICYmIGV4aXN0aW5nLm1lc3NhZ2UgPT09IGVycm9yLm1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBleHRyYS5lcnJvcnMucHVzaChlcnJvcik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlRXJyb3IobGluZSwgcG9zLCBkZXNjcmlwdGlvbikge1xuICAgICAgICB2YXIgZXJyb3IgPSBuZXcgRXJyb3IoJ0xpbmUgJyArIGxpbmUgKyAnOiAnICsgZGVzY3JpcHRpb24pO1xuICAgICAgICBlcnJvci5pbmRleCA9IHBvcztcbiAgICAgICAgZXJyb3IubGluZU51bWJlciA9IGxpbmU7XG4gICAgICAgIGVycm9yLmNvbHVtbiA9IHBvcyAtIChzY2FubmluZyA/IGxpbmVTdGFydCA6IGxhc3RMaW5lU3RhcnQpICsgMTtcbiAgICAgICAgZXJyb3IuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIC8vIFRocm93IGFuIGV4Y2VwdGlvblxuXG4gICAgZnVuY3Rpb24gdGhyb3dFcnJvcihtZXNzYWdlRm9ybWF0KSB7XG4gICAgICAgIHZhciBhcmdzLCBtc2c7XG5cbiAgICAgICAgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICAgIG1zZyA9IG1lc3NhZ2VGb3JtYXQucmVwbGFjZSgvJShcXGQpL2csXG4gICAgICAgICAgICBmdW5jdGlvbiAod2hvbGUsIGlkeCkge1xuICAgICAgICAgICAgICAgIGFzc2VydChpZHggPCBhcmdzLmxlbmd0aCwgJ01lc3NhZ2UgcmVmZXJlbmNlIG11c3QgYmUgaW4gcmFuZ2UnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXJnc1tpZHhdO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIHRocm93IGNyZWF0ZUVycm9yKGxhc3RMaW5lTnVtYmVyLCBsYXN0SW5kZXgsIG1zZyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9sZXJhdGVFcnJvcihtZXNzYWdlRm9ybWF0KSB7XG4gICAgICAgIHZhciBhcmdzLCBtc2csIGVycm9yO1xuXG4gICAgICAgIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpO1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICBtc2cgPSBtZXNzYWdlRm9ybWF0LnJlcGxhY2UoLyUoXFxkKS9nLFxuICAgICAgICAgICAgZnVuY3Rpb24gKHdob2xlLCBpZHgpIHtcbiAgICAgICAgICAgICAgICBhc3NlcnQoaWR4IDwgYXJncy5sZW5ndGgsICdNZXNzYWdlIHJlZmVyZW5jZSBtdXN0IGJlIGluIHJhbmdlJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFyZ3NbaWR4XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBlcnJvciA9IGNyZWF0ZUVycm9yKGxpbmVOdW1iZXIsIGxhc3RJbmRleCwgbXNnKTtcbiAgICAgICAgaWYgKGV4dHJhLmVycm9ycykge1xuICAgICAgICAgICAgcmVjb3JkRXJyb3IoZXJyb3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaHJvdyBhbiBleGNlcHRpb24gYmVjYXVzZSBvZiB0aGUgdG9rZW4uXG5cbiAgICBmdW5jdGlvbiB1bmV4cGVjdGVkVG9rZW5FcnJvcih0b2tlbiwgbWVzc2FnZSkge1xuICAgICAgICB2YXIgdmFsdWUsIG1zZyA9IG1lc3NhZ2UgfHwgTWVzc2FnZXMuVW5leHBlY3RlZFRva2VuO1xuXG4gICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgICAgaWYgKCFtZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgbXNnID0gKHRva2VuLnR5cGUgPT09IFRva2VuLkVPRikgPyBNZXNzYWdlcy5VbmV4cGVjdGVkRU9TIDpcbiAgICAgICAgICAgICAgICAgICAgKHRva2VuLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIpID8gTWVzc2FnZXMuVW5leHBlY3RlZElkZW50aWZpZXIgOlxuICAgICAgICAgICAgICAgICAgICAodG9rZW4udHlwZSA9PT0gVG9rZW4uTnVtZXJpY0xpdGVyYWwpID8gTWVzc2FnZXMuVW5leHBlY3RlZE51bWJlciA6XG4gICAgICAgICAgICAgICAgICAgICh0b2tlbi50eXBlID09PSBUb2tlbi5TdHJpbmdMaXRlcmFsKSA/IE1lc3NhZ2VzLlVuZXhwZWN0ZWRTdHJpbmcgOlxuICAgICAgICAgICAgICAgICAgICAodG9rZW4udHlwZSA9PT0gVG9rZW4uVGVtcGxhdGUpID8gTWVzc2FnZXMuVW5leHBlY3RlZFRlbXBsYXRlIDpcbiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZXMuVW5leHBlY3RlZFRva2VuO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuLktleXdvcmQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzRnV0dXJlUmVzZXJ2ZWRXb3JkKHRva2VuLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gTWVzc2FnZXMuVW5leHBlY3RlZFJlc2VydmVkO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmljdCAmJiBpc1N0cmljdE1vZGVSZXNlcnZlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBNZXNzYWdlcy5TdHJpY3RSZXNlcnZlZFdvcmQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhbHVlID0gKHRva2VuLnR5cGUgPT09IFRva2VuLlRlbXBsYXRlKSA/IHRva2VuLnZhbHVlLnJhdyA6IHRva2VuLnZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgPSAnSUxMRUdBTCc7XG4gICAgICAgIH1cblxuICAgICAgICBtc2cgPSBtc2cucmVwbGFjZSgnJTAnLCB2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuICh0b2tlbiAmJiB0eXBlb2YgdG9rZW4ubGluZU51bWJlciA9PT0gJ251bWJlcicpID9cbiAgICAgICAgICAgIGNyZWF0ZUVycm9yKHRva2VuLmxpbmVOdW1iZXIsIHRva2VuLnN0YXJ0LCBtc2cpIDpcbiAgICAgICAgICAgIGNyZWF0ZUVycm9yKHNjYW5uaW5nID8gbGluZU51bWJlciA6IGxhc3RMaW5lTnVtYmVyLCBzY2FubmluZyA/IGluZGV4IDogbGFzdEluZGV4LCBtc2cpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRocm93VW5leHBlY3RlZFRva2VuKHRva2VuLCBtZXNzYWdlKSB7XG4gICAgICAgIHRocm93IHVuZXhwZWN0ZWRUb2tlbkVycm9yKHRva2VuLCBtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbih0b2tlbiwgbWVzc2FnZSkge1xuICAgICAgICB2YXIgZXJyb3IgPSB1bmV4cGVjdGVkVG9rZW5FcnJvcih0b2tlbiwgbWVzc2FnZSk7XG4gICAgICAgIGlmIChleHRyYS5lcnJvcnMpIHtcbiAgICAgICAgICAgIHJlY29yZEVycm9yKGVycm9yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhwZWN0IHRoZSBuZXh0IHRva2VuIHRvIG1hdGNoIHRoZSBzcGVjaWZpZWQgcHVuY3R1YXRvci5cbiAgICAvLyBJZiBub3QsIGFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93bi5cblxuICAgIGZ1bmN0aW9uIGV4cGVjdCh2YWx1ZSkge1xuICAgICAgICB2YXIgdG9rZW4gPSBsZXgoKTtcbiAgICAgICAgaWYgKHRva2VuLnR5cGUgIT09IFRva2VuLlB1bmN0dWF0b3IgfHwgdG9rZW4udmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbih0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAbmFtZSBleHBlY3RDb21tYVNlcGFyYXRvclxuICAgICAqIEBkZXNjcmlwdGlvbiBRdWlldGx5IGV4cGVjdCBhIGNvbW1hIHdoZW4gaW4gdG9sZXJhbnQgbW9kZSwgb3RoZXJ3aXNlIGRlbGVnYXRlc1xuICAgICAqIHRvIDxjb2RlPmV4cGVjdCh2YWx1ZSk8L2NvZGU+XG4gICAgICogQHNpbmNlIDIuMFxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGV4cGVjdENvbW1hU2VwYXJhdG9yKCkge1xuICAgICAgICB2YXIgdG9rZW47XG5cbiAgICAgICAgaWYgKGV4dHJhLmVycm9ycykge1xuICAgICAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW4uUHVuY3R1YXRvciAmJiB0b2tlbi52YWx1ZSA9PT0gJywnKSB7XG4gICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuLlB1bmN0dWF0b3IgJiYgdG9rZW4udmFsdWUgPT09ICc7Jykge1xuICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKHRva2VuKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4odG9rZW4sIE1lc3NhZ2VzLlVuZXhwZWN0ZWRUb2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBleHBlY3QoJywnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cGVjdCB0aGUgbmV4dCB0b2tlbiB0byBtYXRjaCB0aGUgc3BlY2lmaWVkIGtleXdvcmQuXG4gICAgLy8gSWYgbm90LCBhbiBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24uXG5cbiAgICBmdW5jdGlvbiBleHBlY3RLZXl3b3JkKGtleXdvcmQpIHtcbiAgICAgICAgdmFyIHRva2VuID0gbGV4KCk7XG4gICAgICAgIGlmICh0b2tlbi50eXBlICE9PSBUb2tlbi5LZXl3b3JkIHx8IHRva2VuLnZhbHVlICE9PSBrZXl3b3JkKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbih0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgbmV4dCB0b2tlbiBtYXRjaGVzIHRoZSBzcGVjaWZpZWQgcHVuY3R1YXRvci5cblxuICAgIGZ1bmN0aW9uIG1hdGNoKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBsb29rYWhlYWQudHlwZSA9PT0gVG9rZW4uUHVuY3R1YXRvciAmJiBsb29rYWhlYWQudmFsdWUgPT09IHZhbHVlO1xuICAgIH1cblxuICAgIC8vIFJldHVybiB0cnVlIGlmIHRoZSBuZXh0IHRva2VuIG1hdGNoZXMgdGhlIHNwZWNpZmllZCBrZXl3b3JkXG5cbiAgICBmdW5jdGlvbiBtYXRjaEtleXdvcmQoa2V5d29yZCkge1xuICAgICAgICByZXR1cm4gbG9va2FoZWFkLnR5cGUgPT09IFRva2VuLktleXdvcmQgJiYgbG9va2FoZWFkLnZhbHVlID09PSBrZXl3b3JkO1xuICAgIH1cblxuICAgIC8vIFJldHVybiB0cnVlIGlmIHRoZSBuZXh0IHRva2VuIG1hdGNoZXMgdGhlIHNwZWNpZmllZCBjb250ZXh0dWFsIGtleXdvcmRcbiAgICAvLyAod2hlcmUgYW4gaWRlbnRpZmllciBpcyBzb21ldGltZXMgYSBrZXl3b3JkIGRlcGVuZGluZyBvbiB0aGUgY29udGV4dClcblxuICAgIGZ1bmN0aW9uIG1hdGNoQ29udGV4dHVhbEtleXdvcmQoa2V5d29yZCkge1xuICAgICAgICByZXR1cm4gbG9va2FoZWFkLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIgJiYgbG9va2FoZWFkLnZhbHVlID09PSBrZXl3b3JkO1xuICAgIH1cblxuICAgIC8vIFJldHVybiB0cnVlIGlmIHRoZSBuZXh0IHRva2VuIGlzIGFuIGFzc2lnbm1lbnQgb3BlcmF0b3JcblxuICAgIGZ1bmN0aW9uIG1hdGNoQXNzaWduKCkge1xuICAgICAgICB2YXIgb3A7XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5QdW5jdHVhdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgb3AgPSBsb29rYWhlYWQudmFsdWU7XG4gICAgICAgIHJldHVybiBvcCA9PT0gJz0nIHx8XG4gICAgICAgICAgICBvcCA9PT0gJyo9JyB8fFxuICAgICAgICAgICAgb3AgPT09ICcvPScgfHxcbiAgICAgICAgICAgIG9wID09PSAnJT0nIHx8XG4gICAgICAgICAgICBvcCA9PT0gJys9JyB8fFxuICAgICAgICAgICAgb3AgPT09ICctPScgfHxcbiAgICAgICAgICAgIG9wID09PSAnPDw9JyB8fFxuICAgICAgICAgICAgb3AgPT09ICc+Pj0nIHx8XG4gICAgICAgICAgICBvcCA9PT0gJz4+Pj0nIHx8XG4gICAgICAgICAgICBvcCA9PT0gJyY9JyB8fFxuICAgICAgICAgICAgb3AgPT09ICdePScgfHxcbiAgICAgICAgICAgIG9wID09PSAnfD0nO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbnN1bWVTZW1pY29sb24oKSB7XG4gICAgICAgIC8vIENhdGNoIHRoZSB2ZXJ5IGNvbW1vbiBjYXNlIGZpcnN0OiBpbW1lZGlhdGVseSBhIHNlbWljb2xvbiAoVSswMDNCKS5cbiAgICAgICAgaWYgKHNvdXJjZS5jaGFyQ29kZUF0KHN0YXJ0SW5kZXgpID09PSAweDNCIHx8IG1hdGNoKCc7JykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc0xpbmVUZXJtaW5hdG9yKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGSVhNRShpa2FyaWVuYXRvcik6IHRoaXMgaXMgc2VlbWluZ2x5IGFuIGlzc3VlIGluIHRoZSBwcmV2aW91cyBsb2NhdGlvbiBpbmZvIGNvbnZlbnRpb24uXG4gICAgICAgIGxhc3RJbmRleCA9IHN0YXJ0SW5kZXg7XG4gICAgICAgIGxhc3RMaW5lTnVtYmVyID0gc3RhcnRMaW5lTnVtYmVyO1xuICAgICAgICBsYXN0TGluZVN0YXJ0ID0gc3RhcnRMaW5lU3RhcnQ7XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5FT0YgJiYgIW1hdGNoKCd9JykpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDb3ZlciBncmFtbWFyIHN1cHBvcnQuXG4gICAgLy9cbiAgICAvLyBXaGVuIGFuIGFzc2lnbm1lbnQgZXhwcmVzc2lvbiBwb3NpdGlvbiBzdGFydHMgd2l0aCBhbiBsZWZ0IHBhcmVudGhlc2lzLCB0aGUgZGV0ZXJtaW5hdGlvbiBvZiB0aGUgdHlwZVxuICAgIC8vIG9mIHRoZSBzeW50YXggaXMgdG8gYmUgZGVmZXJyZWQgYXJiaXRyYXJpbHkgbG9uZyB1bnRpbCB0aGUgZW5kIG9mIHRoZSBwYXJlbnRoZXNlcyBwYWlyIChwbHVzIGEgbG9va2FoZWFkKVxuICAgIC8vIG9yIHRoZSBmaXJzdCBjb21tYS4gVGhpcyBzaXR1YXRpb24gYWxzbyBkZWZlcnMgdGhlIGRldGVybWluYXRpb24gb2YgYWxsIHRoZSBleHByZXNzaW9ucyBuZXN0ZWQgaW4gdGhlIHBhaXIuXG4gICAgLy9cbiAgICAvLyBUaGVyZSBhcmUgdGhyZWUgcHJvZHVjdGlvbnMgdGhhdCBjYW4gYmUgcGFyc2VkIGluIGEgcGFyZW50aGVzZXMgcGFpciB0aGF0IG5lZWRzIHRvIGJlIGRldGVybWluZWRcbiAgICAvLyBhZnRlciB0aGUgb3V0ZXJtb3N0IHBhaXIgaXMgY2xvc2VkLiBUaGV5IGFyZTpcbiAgICAvL1xuICAgIC8vICAgMS4gQXNzaWdubWVudEV4cHJlc3Npb25cbiAgICAvLyAgIDIuIEJpbmRpbmdFbGVtZW50c1xuICAgIC8vICAgMy4gQXNzaWdubWVudFRhcmdldHNcbiAgICAvL1xuICAgIC8vIEluIG9yZGVyIHRvIGF2b2lkIGV4cG9uZW50aWFsIGJhY2t0cmFja2luZywgd2UgdXNlIHR3byBmbGFncyB0byBkZW5vdGUgaWYgdGhlIHByb2R1Y3Rpb24gY2FuIGJlXG4gICAgLy8gYmluZGluZyBlbGVtZW50IG9yIGFzc2lnbm1lbnQgdGFyZ2V0LlxuICAgIC8vXG4gICAgLy8gVGhlIHRocmVlIHByb2R1Y3Rpb25zIGhhdmUgdGhlIHJlbGF0aW9uc2hpcDpcbiAgICAvL1xuICAgIC8vICAgQmluZGluZ0VsZW1lbnRzIOKKhiBBc3NpZ25tZW50VGFyZ2V0cyDiioYgQXNzaWdubWVudEV4cHJlc3Npb25cbiAgICAvL1xuICAgIC8vIHdpdGggYSBzaW5nbGUgZXhjZXB0aW9uIHRoYXQgQ292ZXJJbml0aWFsaXplZE5hbWUgd2hlbiB1c2VkIGRpcmVjdGx5IGluIGFuIEV4cHJlc3Npb24sIGdlbmVyYXRlc1xuICAgIC8vIGFuIGVhcmx5IGVycm9yLiBUaGVyZWZvcmUsIHdlIG5lZWQgdGhlIHRoaXJkIHN0YXRlLCBmaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IsIHRvIHRyYWNrIHRoZVxuICAgIC8vIGZpcnN0IHVzYWdlIG9mIENvdmVySW5pdGlhbGl6ZWROYW1lIGFuZCByZXBvcnQgaXQgd2hlbiB3ZSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIHBhcmVudGhlc2VzIHBhaXIuXG4gICAgLy9cbiAgICAvLyBpc29sYXRlQ292ZXJHcmFtbWFyIGZ1bmN0aW9uIHJ1bnMgdGhlIGdpdmVuIHBhcnNlciBmdW5jdGlvbiB3aXRoIGEgbmV3IGNvdmVyIGdyYW1tYXIgY29udGV4dCwgYW5kIGl0IGRvZXMgbm90XG4gICAgLy8gZWZmZWN0IHRoZSBjdXJyZW50IGZsYWdzLiBUaGlzIG1lYW5zIHRoZSBwcm9kdWN0aW9uIHRoZSBwYXJzZXIgcGFyc2VzIGlzIG9ubHkgdXNlZCBhcyBhbiBleHByZXNzaW9uLiBUaGVyZWZvcmVcbiAgICAvLyB0aGUgQ292ZXJJbml0aWFsaXplZE5hbWUgY2hlY2sgaXMgY29uZHVjdGVkLlxuICAgIC8vXG4gICAgLy8gaW5oZXJpdENvdmVyR3JhbW1hciBmdW5jdGlvbiBydW5zIHRoZSBnaXZlbiBwYXJzZSBmdW5jdGlvbiB3aXRoIGEgbmV3IGNvdmVyIGdyYW1tYXIgY29udGV4dCwgYW5kIGl0IHByb3BhZ2F0ZXNcbiAgICAvLyB0aGUgZmxhZ3Mgb3V0c2lkZSBvZiB0aGUgcGFyc2VyLiBUaGlzIG1lYW5zIHRoZSBwcm9kdWN0aW9uIHRoZSBwYXJzZXIgcGFyc2VzIGlzIHVzZWQgYXMgYSBwYXJ0IG9mIGEgcG90ZW50aWFsXG4gICAgLy8gcGF0dGVybi4gVGhlIENvdmVySW5pdGlhbGl6ZWROYW1lIGNoZWNrIGlzIGRlZmVycmVkLlxuICAgIGZ1bmN0aW9uIGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VyKSB7XG4gICAgICAgIHZhciBvbGRJc0JpbmRpbmdFbGVtZW50ID0gaXNCaW5kaW5nRWxlbWVudCxcbiAgICAgICAgICAgIG9sZElzQXNzaWdubWVudFRhcmdldCA9IGlzQXNzaWdubWVudFRhcmdldCxcbiAgICAgICAgICAgIG9sZEZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvciA9IGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvcixcbiAgICAgICAgICAgIHJlc3VsdDtcbiAgICAgICAgaXNCaW5kaW5nRWxlbWVudCA9IHRydWU7XG4gICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IHRydWU7XG4gICAgICAgIGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvciA9IG51bGw7XG4gICAgICAgIHJlc3VsdCA9IHBhcnNlcigpO1xuICAgICAgICBpZiAoZmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihmaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSBvbGRJc0JpbmRpbmdFbGVtZW50O1xuICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBvbGRJc0Fzc2lnbm1lbnRUYXJnZXQ7XG4gICAgICAgIGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvciA9IG9sZEZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvcjtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlcikge1xuICAgICAgICB2YXIgb2xkSXNCaW5kaW5nRWxlbWVudCA9IGlzQmluZGluZ0VsZW1lbnQsXG4gICAgICAgICAgICBvbGRJc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0Fzc2lnbm1lbnRUYXJnZXQsXG4gICAgICAgICAgICBvbGRGaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IgPSBmaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IsXG4gICAgICAgICAgICByZXN1bHQ7XG4gICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSB0cnVlO1xuICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSB0cnVlO1xuICAgICAgICBmaXJzdENvdmVySW5pdGlhbGl6ZWROYW1lRXJyb3IgPSBudWxsO1xuICAgICAgICByZXN1bHQgPSBwYXJzZXIoKTtcbiAgICAgICAgaXNCaW5kaW5nRWxlbWVudCA9IGlzQmluZGluZ0VsZW1lbnQgJiYgb2xkSXNCaW5kaW5nRWxlbWVudDtcbiAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNBc3NpZ25tZW50VGFyZ2V0ICYmIG9sZElzQXNzaWdubWVudFRhcmdldDtcbiAgICAgICAgZmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yID0gb2xkRmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yIHx8IGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvcjtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUFycmF5UGF0dGVybigpIHtcbiAgICAgICAgdmFyIG5vZGUgPSBuZXcgTm9kZSgpLCBlbGVtZW50cyA9IFtdLCByZXN0LCByZXN0Tm9kZTtcbiAgICAgICAgZXhwZWN0KCdbJyk7XG5cbiAgICAgICAgd2hpbGUgKCFtYXRjaCgnXScpKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2goJywnKSkge1xuICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2gobnVsbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChtYXRjaCgnLi4uJykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdE5vZGUgPSBuZXcgTm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzdCA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2gocmVzdE5vZGUuZmluaXNoUmVzdEVsZW1lbnQocmVzdCkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKHBhcnNlUGF0dGVybldpdGhEZWZhdWx0KCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIW1hdGNoKCddJykpIHtcbiAgICAgICAgICAgICAgICAgICAgZXhwZWN0KCcsJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICBleHBlY3QoJ10nKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hBcnJheVBhdHRlcm4oZWxlbWVudHMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlUHJvcGVydHlQYXR0ZXJuKCkge1xuICAgICAgICB2YXIgbm9kZSA9IG5ldyBOb2RlKCksIGtleSwgY29tcHV0ZWQgPSBtYXRjaCgnWycpLCBpbml0O1xuICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGtleSA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG4gICAgICAgICAgICBpZiAobWF0Y2goJz0nKSkge1xuICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgIGluaXQgPSBwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoUHJvcGVydHkoXG4gICAgICAgICAgICAgICAgICAgICdpbml0Jywga2V5LCBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgbmV3IFdyYXBwaW5nTm9kZShrZXkpLmZpbmlzaEFzc2lnbm1lbnRQYXR0ZXJuKGtleSwgaW5pdCksIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFtYXRjaCgnOicpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoUHJvcGVydHkoJ2luaXQnLCBrZXksIGZhbHNlLCBrZXksIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGtleSA9IHBhcnNlT2JqZWN0UHJvcGVydHlLZXkoKTtcbiAgICAgICAgfVxuICAgICAgICBleHBlY3QoJzonKTtcbiAgICAgICAgaW5pdCA9IHBhcnNlUGF0dGVybldpdGhEZWZhdWx0KCk7XG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaFByb3BlcnR5KCdpbml0Jywga2V5LCBjb21wdXRlZCwgaW5pdCwgZmFsc2UsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU9iamVjdFBhdHRlcm4oKSB7XG4gICAgICAgIHZhciBub2RlID0gbmV3IE5vZGUoKSwgcHJvcGVydGllcyA9IFtdO1xuXG4gICAgICAgIGV4cGVjdCgneycpO1xuXG4gICAgICAgIHdoaWxlICghbWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKHBhcnNlUHJvcGVydHlQYXR0ZXJuKCkpO1xuICAgICAgICAgICAgaWYgKCFtYXRjaCgnfScpKSB7XG4gICAgICAgICAgICAgICAgZXhwZWN0KCcsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXgoKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hPYmplY3RQYXR0ZXJuKHByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlUGF0dGVybigpIHtcbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcbiAgICAgICAgfSBlbHNlIGlmIChtYXRjaCgnWycpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VBcnJheVBhdHRlcm4oKTtcbiAgICAgICAgfSBlbHNlIGlmIChtYXRjaCgneycpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VPYmplY3RQYXR0ZXJuKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZVBhdHRlcm5XaXRoRGVmYXVsdCgpIHtcbiAgICAgICAgdmFyIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQsIHBhdHRlcm4sIHJpZ2h0O1xuICAgICAgICBwYXR0ZXJuID0gcGFyc2VQYXR0ZXJuKCk7XG4gICAgICAgIGlmIChtYXRjaCgnPScpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIHJpZ2h0ID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcbiAgICAgICAgICAgIHBhdHRlcm4gPSBuZXcgV3JhcHBpbmdOb2RlKHN0YXJ0VG9rZW4pLmZpbmlzaEFzc2lnbm1lbnRQYXR0ZXJuKHBhdHRlcm4sIHJpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGF0dGVybjtcbiAgICB9XG5cbiAgICAvLyAxMS4xLjQgQXJyYXkgSW5pdGlhbGlzZXJcblxuICAgIGZ1bmN0aW9uIHBhcnNlQXJyYXlJbml0aWFsaXNlcigpIHtcbiAgICAgICAgdmFyIGVsZW1lbnRzID0gW10sIG5vZGUgPSBuZXcgTm9kZSgpLCByZXN0U3ByZWFkO1xuXG4gICAgICAgIGV4cGVjdCgnWycpO1xuXG4gICAgICAgIHdoaWxlICghbWF0Y2goJ10nKSkge1xuICAgICAgICAgICAgaWYgKG1hdGNoKCcsJykpIHtcbiAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKG51bGwpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtYXRjaCgnLi4uJykpIHtcbiAgICAgICAgICAgICAgICByZXN0U3ByZWFkID0gbmV3IE5vZGUoKTtcbiAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICByZXN0U3ByZWFkLmZpbmlzaFNwcmVhZEVsZW1lbnQoaW5oZXJpdENvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIW1hdGNoKCddJykpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBleHBlY3QoJywnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaChyZXN0U3ByZWFkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaChpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pKTtcblxuICAgICAgICAgICAgICAgIGlmICghbWF0Y2goJ10nKSkge1xuICAgICAgICAgICAgICAgICAgICBleHBlY3QoJywnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXgoKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hBcnJheUV4cHJlc3Npb24oZWxlbWVudHMpO1xuICAgIH1cblxuICAgIC8vIDExLjEuNSBPYmplY3QgSW5pdGlhbGlzZXJcblxuICAgIGZ1bmN0aW9uIHBhcnNlUHJvcGVydHlGdW5jdGlvbihub2RlLCBwYXJhbUluZm8pIHtcbiAgICAgICAgdmFyIHByZXZpb3VzU3RyaWN0LCBib2R5O1xuXG4gICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcblxuICAgICAgICBwcmV2aW91c1N0cmljdCA9IHN0cmljdDtcbiAgICAgICAgYm9keSA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VGdW5jdGlvblNvdXJjZUVsZW1lbnRzKTtcblxuICAgICAgICBpZiAoc3RyaWN0ICYmIHBhcmFtSW5mby5maXJzdFJlc3RyaWN0ZWQpIHtcbiAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKHBhcmFtSW5mby5maXJzdFJlc3RyaWN0ZWQsIHBhcmFtSW5mby5tZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RyaWN0ICYmIHBhcmFtSW5mby5zdHJpY3RlZCkge1xuICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4ocGFyYW1JbmZvLnN0cmljdGVkLCBwYXJhbUluZm8ubWVzc2FnZSk7XG4gICAgICAgIH1cblxuICAgICAgICBzdHJpY3QgPSBwcmV2aW91c1N0cmljdDtcbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRnVuY3Rpb25FeHByZXNzaW9uKG51bGwsIHBhcmFtSW5mby5wYXJhbXMsIHBhcmFtSW5mby5kZWZhdWx0cywgYm9keSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VQcm9wZXJ0eU1ldGhvZEZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcGFyYW1zLCBtZXRob2QsIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIHBhcmFtcyA9IHBhcnNlUGFyYW1zKCk7XG4gICAgICAgIG1ldGhvZCA9IHBhcnNlUHJvcGVydHlGdW5jdGlvbihub2RlLCBwYXJhbXMpO1xuXG4gICAgICAgIHJldHVybiBtZXRob2Q7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VPYmplY3RQcm9wZXJ0eUtleSgpIHtcbiAgICAgICAgdmFyIHRva2VuLCBub2RlID0gbmV3IE5vZGUoKSwgZXhwcjtcblxuICAgICAgICB0b2tlbiA9IGxleCgpO1xuXG4gICAgICAgIC8vIE5vdGU6IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIG9ubHkgZnJvbSBwYXJzZU9iamVjdFByb3BlcnR5KCksIHdoZXJlXG4gICAgICAgIC8vIEVPRiBhbmQgUHVuY3R1YXRvciB0b2tlbnMgYXJlIGFscmVhZHkgZmlsdGVyZWQgb3V0LlxuXG4gICAgICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuICAgICAgICBjYXNlIFRva2VuLlN0cmluZ0xpdGVyYWw6XG4gICAgICAgIGNhc2UgVG9rZW4uTnVtZXJpY0xpdGVyYWw6XG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmIHRva2VuLm9jdGFsKSB7XG4gICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4odG9rZW4sIE1lc3NhZ2VzLlN0cmljdE9jdGFsTGl0ZXJhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hMaXRlcmFsKHRva2VuKTtcbiAgICAgICAgY2FzZSBUb2tlbi5JZGVudGlmaWVyOlxuICAgICAgICBjYXNlIFRva2VuLkJvb2xlYW5MaXRlcmFsOlxuICAgICAgICBjYXNlIFRva2VuLk51bGxMaXRlcmFsOlxuICAgICAgICBjYXNlIFRva2VuLktleXdvcmQ6XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hJZGVudGlmaWVyKHRva2VuLnZhbHVlKTtcbiAgICAgICAgY2FzZSBUb2tlbi5QdW5jdHVhdG9yOlxuICAgICAgICAgICAgaWYgKHRva2VuLnZhbHVlID09PSAnWycpIHtcbiAgICAgICAgICAgICAgICBleHByID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICBleHBlY3QoJ10nKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXhwcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKHRva2VuKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsb29rYWhlYWRQcm9wZXJ0eU5hbWUoKSB7XG4gICAgICAgIHN3aXRjaCAobG9va2FoZWFkLnR5cGUpIHtcbiAgICAgICAgY2FzZSBUb2tlbi5JZGVudGlmaWVyOlxuICAgICAgICBjYXNlIFRva2VuLlN0cmluZ0xpdGVyYWw6XG4gICAgICAgIGNhc2UgVG9rZW4uQm9vbGVhbkxpdGVyYWw6XG4gICAgICAgIGNhc2UgVG9rZW4uTnVsbExpdGVyYWw6XG4gICAgICAgIGNhc2UgVG9rZW4uTnVtZXJpY0xpdGVyYWw6XG4gICAgICAgIGNhc2UgVG9rZW4uS2V5d29yZDpcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBjYXNlIFRva2VuLlB1bmN0dWF0b3I6XG4gICAgICAgICAgICByZXR1cm4gbG9va2FoZWFkLnZhbHVlID09PSAnWyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgdG8gdHJ5IHRvIHBhcnNlIGEgTWV0aG9kRGVmaW5pdGlvbiBhcyBkZWZpbmVkIGluIDE0LjMuIEJ1dCBpbiB0aGUgY2FzZSBvZiBvYmplY3QgbGl0ZXJhbHMsXG4gICAgLy8gaXQgbWlnaHQgYmUgY2FsbGVkIGF0IGEgcG9zaXRpb24gd2hlcmUgdGhlcmUgaXMgaW4gZmFjdCBhIHNob3J0IGhhbmQgaWRlbnRpZmllciBwYXR0ZXJuIG9yIGEgZGF0YSBwcm9wZXJ0eS5cbiAgICAvLyBUaGlzIGNhbiBvbmx5IGJlIGRldGVybWluZWQgYWZ0ZXIgd2UgY29uc3VtZWQgdXAgdG8gdGhlIGxlZnQgcGFyZW50aGVzZXMuXG4gICAgLy9cbiAgICAvLyBJbiBvcmRlciB0byBhdm9pZCBiYWNrIHRyYWNraW5nLCBpdCByZXR1cm5zIGBudWxsYCBpZiB0aGUgcG9zaXRpb24gaXMgbm90IGEgTWV0aG9kRGVmaW5pdGlvbiBhbmQgdGhlIGNhbGxlclxuICAgIC8vIGlzIHJlc3BvbnNpYmxlIHRvIHZpc2l0IG90aGVyIG9wdGlvbnMuXG4gICAgZnVuY3Rpb24gdHJ5UGFyc2VNZXRob2REZWZpbml0aW9uKHRva2VuLCBrZXksIGNvbXB1dGVkLCBub2RlKSB7XG4gICAgICAgIHZhciB2YWx1ZSwgb3B0aW9ucywgbWV0aG9kTm9kZTtcblxuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gVG9rZW4uSWRlbnRpZmllcikge1xuICAgICAgICAgICAgLy8gY2hlY2sgZm9yIGBnZXRgIGFuZCBgc2V0YDtcblxuICAgICAgICAgICAgaWYgKHRva2VuLnZhbHVlID09PSAnZ2V0JyAmJiBsb29rYWhlYWRQcm9wZXJ0eU5hbWUoKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVkID0gbWF0Y2goJ1snKTtcbiAgICAgICAgICAgICAgICBrZXkgPSBwYXJzZU9iamVjdFByb3BlcnR5S2V5KCk7XG4gICAgICAgICAgICAgICAgbWV0aG9kTm9kZSA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICAgICAgZXhwZWN0KCcoJyk7XG4gICAgICAgICAgICAgICAgZXhwZWN0KCcpJyk7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZVByb3BlcnR5RnVuY3Rpb24obWV0aG9kTm9kZSwge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0czogW10sXG4gICAgICAgICAgICAgICAgICAgIHN0cmljdGVkOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBmaXJzdFJlc3RyaWN0ZWQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IG51bGxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hQcm9wZXJ0eSgnZ2V0Jywga2V5LCBjb21wdXRlZCwgdmFsdWUsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRva2VuLnZhbHVlID09PSAnc2V0JyAmJiBsb29rYWhlYWRQcm9wZXJ0eU5hbWUoKSkge1xuICAgICAgICAgICAgICAgIGNvbXB1dGVkID0gbWF0Y2goJ1snKTtcbiAgICAgICAgICAgICAgICBrZXkgPSBwYXJzZU9iamVjdFByb3BlcnR5S2V5KCk7XG4gICAgICAgICAgICAgICAgbWV0aG9kTm9kZSA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICAgICAgZXhwZWN0KCcoJyk7XG5cbiAgICAgICAgICAgICAgICBvcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IFtdLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Q291bnQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgZmlyc3RSZXN0cmljdGVkOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBwYXJhbVNldDoge31cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmIChtYXRjaCgnKScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VQYXJhbShvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuZGVmYXVsdENvdW50ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmRlZmF1bHRzID0gW107XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZXhwZWN0KCcpJyk7XG5cbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnNlUHJvcGVydHlGdW5jdGlvbihtZXRob2ROb2RlLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hQcm9wZXJ0eSgnc2V0Jywga2V5LCBjb21wdXRlZCwgdmFsdWUsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2goJygnKSkge1xuICAgICAgICAgICAgdmFsdWUgPSBwYXJzZVByb3BlcnR5TWV0aG9kRnVuY3Rpb24oKTtcbiAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaFByb3BlcnR5KCdpbml0Jywga2V5LCBjb21wdXRlZCwgdmFsdWUsIHRydWUsIGZhbHNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE5vdCBhIE1ldGhvZERlZmluaXRpb24uXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNoZWNrUHJvdG8oa2V5LCBjb21wdXRlZCwgaGFzUHJvdG8pIHtcbiAgICAgICAgaWYgKGNvbXB1dGVkID09PSBmYWxzZSAmJiAoa2V5LnR5cGUgPT09IFN5bnRheC5JZGVudGlmaWVyICYmIGtleS5uYW1lID09PSAnX19wcm90b19fJyB8fFxuICAgICAgICAgICAga2V5LnR5cGUgPT09IFN5bnRheC5MaXRlcmFsICYmIGtleS52YWx1ZSA9PT0gJ19fcHJvdG9fXycpKSB7XG4gICAgICAgICAgICBpZiAoaGFzUHJvdG8udmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLkR1cGxpY2F0ZVByb3RvUHJvcGVydHkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBoYXNQcm90by52YWx1ZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU9iamVjdFByb3BlcnR5KGhhc1Byb3RvKSB7XG4gICAgICAgIHZhciB0b2tlbiA9IGxvb2thaGVhZCwgbm9kZSA9IG5ldyBOb2RlKCksIGNvbXB1dGVkLCBrZXksIG1heWJlTWV0aG9kLCB2YWx1ZTtcblxuICAgICAgICBjb21wdXRlZCA9IG1hdGNoKCdbJyk7XG4gICAgICAgIGtleSA9IHBhcnNlT2JqZWN0UHJvcGVydHlLZXkoKTtcbiAgICAgICAgbWF5YmVNZXRob2QgPSB0cnlQYXJzZU1ldGhvZERlZmluaXRpb24odG9rZW4sIGtleSwgY29tcHV0ZWQsIG5vZGUpO1xuXG4gICAgICAgIGlmIChtYXliZU1ldGhvZCkge1xuICAgICAgICAgICAgY2hlY2tQcm90byhtYXliZU1ldGhvZC5rZXksIG1heWJlTWV0aG9kLmNvbXB1dGVkLCBoYXNQcm90byk7XG4gICAgICAgICAgICAvLyBmaW5pc2hlZFxuICAgICAgICAgICAgcmV0dXJuIG1heWJlTWV0aG9kO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW5pdCBwcm9wZXJ0eSBvciBzaG9ydCBoYW5kIHByb3BlcnR5LlxuICAgICAgICBjaGVja1Byb3RvKGtleSwgY29tcHV0ZWQsIGhhc1Byb3RvKTtcblxuICAgICAgICBpZiAobWF0Y2goJzonKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICB2YWx1ZSA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbik7XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hQcm9wZXJ0eSgnaW5pdCcsIGtleSwgY29tcHV0ZWQsIHZhbHVlLCBmYWxzZSwgZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRva2VuLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGlmIChtYXRjaCgnPScpKSB7XG4gICAgICAgICAgICAgICAgZmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yID0gbG9va2FoZWFkO1xuICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgIHZhbHVlID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hQcm9wZXJ0eSgnaW5pdCcsIGtleSwgY29tcHV0ZWQsXG4gICAgICAgICAgICAgICAgICAgIG5ldyBXcmFwcGluZ05vZGUodG9rZW4pLmZpbmlzaEFzc2lnbm1lbnRQYXR0ZXJuKGtleSwgdmFsdWUpLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hQcm9wZXJ0eSgnaW5pdCcsIGtleSwgY29tcHV0ZWQsIGtleSwgZmFsc2UsIHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU9iamVjdEluaXRpYWxpc2VyKCkge1xuICAgICAgICB2YXIgcHJvcGVydGllcyA9IFtdLCBoYXNQcm90byA9IHt2YWx1ZTogZmFsc2V9LCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBleHBlY3QoJ3snKTtcblxuICAgICAgICB3aGlsZSAoIW1hdGNoKCd9JykpIHtcbiAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChwYXJzZU9iamVjdFByb3BlcnR5KGhhc1Byb3RvKSk7XG5cbiAgICAgICAgICAgIGlmICghbWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgICAgIGV4cGVjdENvbW1hU2VwYXJhdG9yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBleHBlY3QoJ30nKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hPYmplY3RFeHByZXNzaW9uKHByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlaW50ZXJwcmV0RXhwcmVzc2lvbkFzUGF0dGVybihleHByKSB7XG4gICAgICAgIHZhciBpO1xuICAgICAgICBzd2l0Y2ggKGV4cHIudHlwZSkge1xuICAgICAgICBjYXNlIFN5bnRheC5JZGVudGlmaWVyOlxuICAgICAgICBjYXNlIFN5bnRheC5NZW1iZXJFeHByZXNzaW9uOlxuICAgICAgICBjYXNlIFN5bnRheC5SZXN0RWxlbWVudDpcbiAgICAgICAgY2FzZSBTeW50YXguQXNzaWdubWVudFBhdHRlcm46XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTeW50YXguU3ByZWFkRWxlbWVudDpcbiAgICAgICAgICAgIGV4cHIudHlwZSA9IFN5bnRheC5SZXN0RWxlbWVudDtcbiAgICAgICAgICAgIHJlaW50ZXJwcmV0RXhwcmVzc2lvbkFzUGF0dGVybihleHByLmFyZ3VtZW50KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFN5bnRheC5BcnJheUV4cHJlc3Npb246XG4gICAgICAgICAgICBleHByLnR5cGUgPSBTeW50YXguQXJyYXlQYXR0ZXJuO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGV4cHIuZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoZXhwci5lbGVtZW50c1tpXSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZWludGVycHJldEV4cHJlc3Npb25Bc1BhdHRlcm4oZXhwci5lbGVtZW50c1tpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU3ludGF4Lk9iamVjdEV4cHJlc3Npb246XG4gICAgICAgICAgICBleHByLnR5cGUgPSBTeW50YXguT2JqZWN0UGF0dGVybjtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBleHByLnByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICByZWludGVycHJldEV4cHJlc3Npb25Bc1BhdHRlcm4oZXhwci5wcm9wZXJ0aWVzW2ldLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFN5bnRheC5Bc3NpZ25tZW50RXhwcmVzc2lvbjpcbiAgICAgICAgICAgIGV4cHIudHlwZSA9IFN5bnRheC5Bc3NpZ25tZW50UGF0dGVybjtcbiAgICAgICAgICAgIHJlaW50ZXJwcmV0RXhwcmVzc2lvbkFzUGF0dGVybihleHByLmxlZnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAvLyBBbGxvdyBvdGhlciBub2RlIHR5cGUgZm9yIHRvbGVyYW50IHBhcnNpbmcuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlVGVtcGxhdGVFbGVtZW50KG9wdGlvbikge1xuICAgICAgICB2YXIgbm9kZSwgdG9rZW47XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5UZW1wbGF0ZSB8fCAob3B0aW9uLmhlYWQgJiYgIWxvb2thaGVhZC5oZWFkKSkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGUgPSBuZXcgTm9kZSgpO1xuICAgICAgICB0b2tlbiA9IGxleCgpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaFRlbXBsYXRlRWxlbWVudCh7IHJhdzogdG9rZW4udmFsdWUucmF3LCBjb29rZWQ6IHRva2VuLnZhbHVlLmNvb2tlZCB9LCB0b2tlbi50YWlsKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZVRlbXBsYXRlTGl0ZXJhbCgpIHtcbiAgICAgICAgdmFyIHF1YXNpLCBxdWFzaXMsIGV4cHJlc3Npb25zLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBxdWFzaSA9IHBhcnNlVGVtcGxhdGVFbGVtZW50KHsgaGVhZDogdHJ1ZSB9KTtcbiAgICAgICAgcXVhc2lzID0gWyBxdWFzaSBdO1xuICAgICAgICBleHByZXNzaW9ucyA9IFtdO1xuXG4gICAgICAgIHdoaWxlICghcXVhc2kudGFpbCkge1xuICAgICAgICAgICAgZXhwcmVzc2lvbnMucHVzaChwYXJzZUV4cHJlc3Npb24oKSk7XG4gICAgICAgICAgICBxdWFzaSA9IHBhcnNlVGVtcGxhdGVFbGVtZW50KHsgaGVhZDogZmFsc2UgfSk7XG4gICAgICAgICAgICBxdWFzaXMucHVzaChxdWFzaSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hUZW1wbGF0ZUxpdGVyYWwocXVhc2lzLCBleHByZXNzaW9ucyk7XG4gICAgfVxuXG4gICAgLy8gMTEuMS42IFRoZSBHcm91cGluZyBPcGVyYXRvclxuXG4gICAgZnVuY3Rpb24gcGFyc2VHcm91cEV4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciBleHByLCBleHByZXNzaW9ucywgc3RhcnRUb2tlbiwgaTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICBpZiAobWF0Y2goJyknKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICBpZiAoIW1hdGNoKCc9PicpKSB7XG4gICAgICAgICAgICAgICAgZXhwZWN0KCc9PicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0eXBlOiBQbGFjZUhvbGRlcnMuQXJyb3dQYXJhbWV0ZXJQbGFjZUhvbGRlcixcbiAgICAgICAgICAgICAgICBwYXJhbXM6IFtdXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhcnRUb2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgaWYgKG1hdGNoKCcuLi4nKSkge1xuICAgICAgICAgICAgZXhwciA9IHBhcnNlUmVzdEVsZW1lbnQoKTtcbiAgICAgICAgICAgIGV4cGVjdCgnKScpO1xuICAgICAgICAgICAgaWYgKCFtYXRjaCgnPT4nKSkge1xuICAgICAgICAgICAgICAgIGV4cGVjdCgnPT4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdHlwZTogUGxhY2VIb2xkZXJzLkFycm93UGFyYW1ldGVyUGxhY2VIb2xkZXIsXG4gICAgICAgICAgICAgICAgcGFyYW1zOiBbZXhwcl1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpc0JpbmRpbmdFbGVtZW50ID0gdHJ1ZTtcbiAgICAgICAgZXhwciA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbik7XG5cbiAgICAgICAgaWYgKG1hdGNoKCcsJykpIHtcbiAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGZhbHNlO1xuICAgICAgICAgICAgZXhwcmVzc2lvbnMgPSBbZXhwcl07XG5cbiAgICAgICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFtYXRjaCgnLCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXgoKTtcblxuICAgICAgICAgICAgICAgIGlmIChtYXRjaCgnLi4uJykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0JpbmRpbmdFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihsb29rYWhlYWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb25zLnB1c2gocGFyc2VSZXN0RWxlbWVudCgpKTtcbiAgICAgICAgICAgICAgICAgICAgZXhwZWN0KCcpJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbWF0Y2goJz0+JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdCgnPT4nKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBleHByZXNzaW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRFeHByZXNzaW9uQXNQYXR0ZXJuKGV4cHJlc3Npb25zW2ldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogUGxhY2VIb2xkZXJzLkFycm93UGFyYW1ldGVyUGxhY2VIb2xkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IGV4cHJlc3Npb25zXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbnMucHVzaChpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoU2VxdWVuY2VFeHByZXNzaW9uKGV4cHJlc3Npb25zKTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgZXhwZWN0KCcpJyk7XG5cbiAgICAgICAgaWYgKG1hdGNoKCc9PicpKSB7XG4gICAgICAgICAgICBpZiAoIWlzQmluZGluZ0VsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihsb29rYWhlYWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZXhwci50eXBlID09PSBTeW50YXguU2VxdWVuY2VFeHByZXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGV4cHIuZXhwcmVzc2lvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRFeHByZXNzaW9uQXNQYXR0ZXJuKGV4cHIuZXhwcmVzc2lvbnNbaV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVpbnRlcnByZXRFeHByZXNzaW9uQXNQYXR0ZXJuKGV4cHIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBleHByID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFBsYWNlSG9sZGVycy5BcnJvd1BhcmFtZXRlclBsYWNlSG9sZGVyLFxuICAgICAgICAgICAgICAgIHBhcmFtczogZXhwci50eXBlID09PSBTeW50YXguU2VxdWVuY2VFeHByZXNzaW9uID8gZXhwci5leHByZXNzaW9ucyA6IFtleHByXVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBleHByO1xuICAgIH1cblxuXG4gICAgLy8gMTEuMSBQcmltYXJ5IEV4cHJlc3Npb25zXG5cbiAgICBmdW5jdGlvbiBwYXJzZVByaW1hcnlFeHByZXNzaW9uKCkge1xuICAgICAgICB2YXIgdHlwZSwgdG9rZW4sIGV4cHIsIG5vZGU7XG5cbiAgICAgICAgaWYgKG1hdGNoKCcoJykpIHtcbiAgICAgICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlR3JvdXBFeHByZXNzaW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtYXRjaCgnWycpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5oZXJpdENvdmVyR3JhbW1hcihwYXJzZUFycmF5SW5pdGlhbGlzZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1hdGNoKCd7JykpIHtcbiAgICAgICAgICAgIHJldHVybiBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlT2JqZWN0SW5pdGlhbGlzZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdHlwZSA9IGxvb2thaGVhZC50eXBlO1xuICAgICAgICBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBpZiAodHlwZSA9PT0gVG9rZW4uSWRlbnRpZmllcikge1xuICAgICAgICAgICAgZXhwciA9IG5vZGUuZmluaXNoSWRlbnRpZmllcihsZXgoKS52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVG9rZW4uU3RyaW5nTGl0ZXJhbCB8fCB0eXBlID09PSBUb2tlbi5OdW1lcmljTGl0ZXJhbCkge1xuICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiBsb29rYWhlYWQub2N0YWwpIHtcbiAgICAgICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbihsb29rYWhlYWQsIE1lc3NhZ2VzLlN0cmljdE9jdGFsTGl0ZXJhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBleHByID0gbm9kZS5maW5pc2hMaXRlcmFsKGxleCgpKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBUb2tlbi5LZXl3b3JkKSB7XG4gICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdmdW5jdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlRnVuY3Rpb25FeHByZXNzaW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCd0aGlzJykpIHtcbiAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hUaGlzRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1hdGNoS2V5d29yZCgnY2xhc3MnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUNsYXNzRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obGV4KCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFRva2VuLkJvb2xlYW5MaXRlcmFsKSB7XG4gICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgICAgICB0b2tlbiA9IGxleCgpO1xuICAgICAgICAgICAgdG9rZW4udmFsdWUgPSAodG9rZW4udmFsdWUgPT09ICd0cnVlJyk7XG4gICAgICAgICAgICBleHByID0gbm9kZS5maW5pc2hMaXRlcmFsKHRva2VuKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBUb2tlbi5OdWxsTGl0ZXJhbCkge1xuICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgdG9rZW4gPSBsZXgoKTtcbiAgICAgICAgICAgIHRva2VuLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgIGV4cHIgPSBub2RlLmZpbmlzaExpdGVyYWwodG9rZW4pO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCcvJykgfHwgbWF0Y2goJy89JykpIHtcbiAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIGluZGV4ID0gc3RhcnRJbmRleDtcblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBleHRyYS50b2tlbnMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgdG9rZW4gPSBjb2xsZWN0UmVnZXgoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdG9rZW4gPSBzY2FuUmVnRXhwKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIGV4cHIgPSBub2RlLmZpbmlzaExpdGVyYWwodG9rZW4pO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFRva2VuLlRlbXBsYXRlKSB7XG4gICAgICAgICAgICBleHByID0gcGFyc2VUZW1wbGF0ZUxpdGVyYWwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGxleCgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBleHByO1xuICAgIH1cblxuICAgIC8vIDExLjIgTGVmdC1IYW5kLVNpZGUgRXhwcmVzc2lvbnNcblxuICAgIGZ1bmN0aW9uIHBhcnNlQXJndW1lbnRzKCkge1xuICAgICAgICB2YXIgYXJncyA9IFtdO1xuXG4gICAgICAgIGV4cGVjdCgnKCcpO1xuXG4gICAgICAgIGlmICghbWF0Y2goJyknKSkge1xuICAgICAgICAgICAgd2hpbGUgKHN0YXJ0SW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBhcmdzLnB1c2goaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKSk7XG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoKCcpJykpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGV4cGVjdENvbW1hU2VwYXJhdG9yKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBleHBlY3QoJyknKTtcblxuICAgICAgICByZXR1cm4gYXJncztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU5vbkNvbXB1dGVkUHJvcGVydHkoKSB7XG4gICAgICAgIHZhciB0b2tlbiwgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgdG9rZW4gPSBsZXgoKTtcblxuICAgICAgICBpZiAoIWlzSWRlbnRpZmllck5hbWUodG9rZW4pKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbih0b2tlbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hJZGVudGlmaWVyKHRva2VuLnZhbHVlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU5vbkNvbXB1dGVkTWVtYmVyKCkge1xuICAgICAgICBleHBlY3QoJy4nKTtcblxuICAgICAgICByZXR1cm4gcGFyc2VOb25Db21wdXRlZFByb3BlcnR5KCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VDb21wdXRlZE1lbWJlcigpIHtcbiAgICAgICAgdmFyIGV4cHI7XG5cbiAgICAgICAgZXhwZWN0KCdbJyk7XG5cbiAgICAgICAgZXhwciA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VFeHByZXNzaW9uKTtcblxuICAgICAgICBleHBlY3QoJ10nKTtcblxuICAgICAgICByZXR1cm4gZXhwcjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU5ld0V4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciBjYWxsZWUsIGFyZ3MsIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ25ldycpO1xuICAgICAgICBjYWxsZWUgPSBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlTGVmdEhhbmRTaWRlRXhwcmVzc2lvbik7XG4gICAgICAgIGFyZ3MgPSBtYXRjaCgnKCcpID8gcGFyc2VBcmd1bWVudHMoKSA6IFtdO1xuXG4gICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hOZXdFeHByZXNzaW9uKGNhbGxlZSwgYXJncyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VMZWZ0SGFuZFNpZGVFeHByZXNzaW9uQWxsb3dDYWxsKCkge1xuICAgICAgICB2YXIgcXVhc2ksIGV4cHIsIGFyZ3MsIHByb3BlcnR5LCBzdGFydFRva2VuLCBwcmV2aW91c0FsbG93SW4gPSBzdGF0ZS5hbGxvd0luO1xuXG4gICAgICAgIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgIHN0YXRlLmFsbG93SW4gPSB0cnVlO1xuXG4gICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ3N1cGVyJykgJiYgc3RhdGUuaW5GdW5jdGlvbkJvZHkpIHtcbiAgICAgICAgICAgIGV4cHIgPSBuZXcgTm9kZSgpO1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICBleHByID0gZXhwci5maW5pc2hTdXBlcigpO1xuICAgICAgICAgICAgaWYgKCFtYXRjaCgnKCcpICYmICFtYXRjaCgnLicpICYmICFtYXRjaCgnWycpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cHIgPSBpbmhlcml0Q292ZXJHcmFtbWFyKG1hdGNoS2V5d29yZCgnbmV3JykgPyBwYXJzZU5ld0V4cHJlc3Npb24gOiBwYXJzZVByaW1hcnlFeHByZXNzaW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoOzspIHtcbiAgICAgICAgICAgIGlmIChtYXRjaCgnLicpKSB7XG4gICAgICAgICAgICAgICAgaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcHJvcGVydHkgPSBwYXJzZU5vbkNvbXB1dGVkTWVtYmVyKCk7XG4gICAgICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoTWVtYmVyRXhwcmVzc2lvbignLicsIGV4cHIsIHByb3BlcnR5KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWF0Y2goJygnKSkge1xuICAgICAgICAgICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBhcmdzID0gcGFyc2VBcmd1bWVudHMoKTtcbiAgICAgICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hDYWxsRXhwcmVzc2lvbihleHByLCBhcmdzKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWF0Y2goJ1snKSkge1xuICAgICAgICAgICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHByb3BlcnR5ID0gcGFyc2VDb21wdXRlZE1lbWJlcigpO1xuICAgICAgICAgICAgICAgIGV4cHIgPSBuZXcgV3JhcHBpbmdOb2RlKHN0YXJ0VG9rZW4pLmZpbmlzaE1lbWJlckV4cHJlc3Npb24oJ1snLCBleHByLCBwcm9wZXJ0eSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5UZW1wbGF0ZSAmJiBsb29rYWhlYWQuaGVhZCkge1xuICAgICAgICAgICAgICAgIHF1YXNpID0gcGFyc2VUZW1wbGF0ZUxpdGVyYWwoKTtcbiAgICAgICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hUYWdnZWRUZW1wbGF0ZUV4cHJlc3Npb24oZXhwciwgcXVhc2kpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdGF0ZS5hbGxvd0luID0gcHJldmlvdXNBbGxvd0luO1xuXG4gICAgICAgIHJldHVybiBleHByO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlTGVmdEhhbmRTaWRlRXhwcmVzc2lvbigpIHtcbiAgICAgICAgdmFyIHF1YXNpLCBleHByLCBwcm9wZXJ0eSwgc3RhcnRUb2tlbjtcbiAgICAgICAgYXNzZXJ0KHN0YXRlLmFsbG93SW4sICdjYWxsZWUgb2YgbmV3IGV4cHJlc3Npb24gYWx3YXlzIGFsbG93IGluIGtleXdvcmQuJyk7XG5cbiAgICAgICAgc3RhcnRUb2tlbiA9IGxvb2thaGVhZDtcblxuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdzdXBlcicpICYmIHN0YXRlLmluRnVuY3Rpb25Cb2R5KSB7XG4gICAgICAgICAgICBleHByID0gbmV3IE5vZGUoKTtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgZXhwciA9IGV4cHIuZmluaXNoU3VwZXIoKTtcbiAgICAgICAgICAgIGlmICghbWF0Y2goJ1snKSAmJiAhbWF0Y2goJy4nKSkge1xuICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBleHByID0gaW5oZXJpdENvdmVyR3JhbW1hcihtYXRjaEtleXdvcmQoJ25ldycpID8gcGFyc2VOZXdFeHByZXNzaW9uIDogcGFyc2VQcmltYXJ5RXhwcmVzc2lvbik7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKDs7KSB7XG4gICAgICAgICAgICBpZiAobWF0Y2goJ1snKSkge1xuICAgICAgICAgICAgICAgIGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHByb3BlcnR5ID0gcGFyc2VDb21wdXRlZE1lbWJlcigpO1xuICAgICAgICAgICAgICAgIGV4cHIgPSBuZXcgV3JhcHBpbmdOb2RlKHN0YXJ0VG9rZW4pLmZpbmlzaE1lbWJlckV4cHJlc3Npb24oJ1snLCBleHByLCBwcm9wZXJ0eSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCcuJykpIHtcbiAgICAgICAgICAgICAgICBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eSA9IHBhcnNlTm9uQ29tcHV0ZWRNZW1iZXIoKTtcbiAgICAgICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hNZW1iZXJFeHByZXNzaW9uKCcuJywgZXhwciwgcHJvcGVydHkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChsb29rYWhlYWQudHlwZSA9PT0gVG9rZW4uVGVtcGxhdGUgJiYgbG9va2FoZWFkLmhlYWQpIHtcbiAgICAgICAgICAgICAgICBxdWFzaSA9IHBhcnNlVGVtcGxhdGVMaXRlcmFsKCk7XG4gICAgICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoVGFnZ2VkVGVtcGxhdGVFeHByZXNzaW9uKGV4cHIsIHF1YXNpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgfVxuXG4gICAgLy8gMTEuMyBQb3N0Zml4IEV4cHJlc3Npb25zXG5cbiAgICBmdW5jdGlvbiBwYXJzZVBvc3RmaXhFeHByZXNzaW9uKCkge1xuICAgICAgICB2YXIgZXhwciwgdG9rZW4sIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQ7XG5cbiAgICAgICAgZXhwciA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VMZWZ0SGFuZFNpZGVFeHByZXNzaW9uQWxsb3dDYWxsKTtcblxuICAgICAgICBpZiAoIWhhc0xpbmVUZXJtaW5hdG9yICYmIGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5QdW5jdHVhdG9yKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2goJysrJykgfHwgbWF0Y2goJy0tJykpIHtcbiAgICAgICAgICAgICAgICAvLyAxMS4zLjEsIDExLjMuMlxuICAgICAgICAgICAgICAgIGlmIChzdHJpY3QgJiYgZXhwci50eXBlID09PSBTeW50YXguSWRlbnRpZmllciAmJiBpc1Jlc3RyaWN0ZWRXb3JkKGV4cHIubmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9sZXJhdGVFcnJvcihNZXNzYWdlcy5TdHJpY3RMSFNQb3N0Zml4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIWlzQXNzaWdubWVudFRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLkludmFsaWRMSFNJbkFzc2lnbm1lbnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIHRva2VuID0gbGV4KCk7XG4gICAgICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoUG9zdGZpeEV4cHJlc3Npb24odG9rZW4udmFsdWUsIGV4cHIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgfVxuXG4gICAgLy8gMTEuNCBVbmFyeSBPcGVyYXRvcnNcblxuICAgIGZ1bmN0aW9uIHBhcnNlVW5hcnlFeHByZXNzaW9uKCkge1xuICAgICAgICB2YXIgdG9rZW4sIGV4cHIsIHN0YXJ0VG9rZW47XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5QdW5jdHVhdG9yICYmIGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5LZXl3b3JkKSB7XG4gICAgICAgICAgICBleHByID0gcGFyc2VQb3N0Zml4RXhwcmVzc2lvbigpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCcrKycpIHx8IG1hdGNoKCctLScpKSB7XG4gICAgICAgICAgICBzdGFydFRva2VuID0gbG9va2FoZWFkO1xuICAgICAgICAgICAgdG9rZW4gPSBsZXgoKTtcbiAgICAgICAgICAgIGV4cHIgPSBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlVW5hcnlFeHByZXNzaW9uKTtcbiAgICAgICAgICAgIC8vIDExLjQuNCwgMTEuNC41XG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmIGV4cHIudHlwZSA9PT0gU3ludGF4LklkZW50aWZpZXIgJiYgaXNSZXN0cmljdGVkV29yZChleHByLm5hbWUpKSB7XG4gICAgICAgICAgICAgICAgdG9sZXJhdGVFcnJvcihNZXNzYWdlcy5TdHJpY3RMSFNQcmVmaXgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWlzQXNzaWdubWVudFRhcmdldCkge1xuICAgICAgICAgICAgICAgIHRvbGVyYXRlRXJyb3IoTWVzc2FnZXMuSW52YWxpZExIU0luQXNzaWdubWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hVbmFyeUV4cHJlc3Npb24odG9rZW4udmFsdWUsIGV4cHIpO1xuICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCcrJykgfHwgbWF0Y2goJy0nKSB8fCBtYXRjaCgnficpIHx8IG1hdGNoKCchJykpIHtcbiAgICAgICAgICAgIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICB0b2tlbiA9IGxleCgpO1xuICAgICAgICAgICAgZXhwciA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VVbmFyeUV4cHJlc3Npb24pO1xuICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoVW5hcnlFeHByZXNzaW9uKHRva2VuLnZhbHVlLCBleHByKTtcbiAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIGlmIChtYXRjaEtleXdvcmQoJ2RlbGV0ZScpIHx8IG1hdGNoS2V5d29yZCgndm9pZCcpIHx8IG1hdGNoS2V5d29yZCgndHlwZW9mJykpIHtcbiAgICAgICAgICAgIHN0YXJ0VG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICB0b2tlbiA9IGxleCgpO1xuICAgICAgICAgICAgZXhwciA9IGluaGVyaXRDb3ZlckdyYW1tYXIocGFyc2VVbmFyeUV4cHJlc3Npb24pO1xuICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoVW5hcnlFeHByZXNzaW9uKHRva2VuLnZhbHVlLCBleHByKTtcbiAgICAgICAgICAgIGlmIChzdHJpY3QgJiYgZXhwci5vcGVyYXRvciA9PT0gJ2RlbGV0ZScgJiYgZXhwci5hcmd1bWVudC50eXBlID09PSBTeW50YXguSWRlbnRpZmllcikge1xuICAgICAgICAgICAgICAgIHRvbGVyYXRlRXJyb3IoTWVzc2FnZXMuU3RyaWN0RGVsZXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlzQXNzaWdubWVudFRhcmdldCA9IGlzQmluZGluZ0VsZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cHIgPSBwYXJzZVBvc3RmaXhFeHByZXNzaW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXhwcjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBiaW5hcnlQcmVjZWRlbmNlKHRva2VuLCBhbGxvd0luKSB7XG4gICAgICAgIHZhciBwcmVjID0gMDtcblxuICAgICAgICBpZiAodG9rZW4udHlwZSAhPT0gVG9rZW4uUHVuY3R1YXRvciAmJiB0b2tlbi50eXBlICE9PSBUb2tlbi5LZXl3b3JkKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodG9rZW4udmFsdWUpIHtcbiAgICAgICAgY2FzZSAnfHwnOlxuICAgICAgICAgICAgcHJlYyA9IDE7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICcmJic6XG4gICAgICAgICAgICBwcmVjID0gMjtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3wnOlxuICAgICAgICAgICAgcHJlYyA9IDM7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdeJzpcbiAgICAgICAgICAgIHByZWMgPSA0O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnJic6XG4gICAgICAgICAgICBwcmVjID0gNTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJz09JzpcbiAgICAgICAgY2FzZSAnIT0nOlxuICAgICAgICBjYXNlICc9PT0nOlxuICAgICAgICBjYXNlICchPT0nOlxuICAgICAgICAgICAgcHJlYyA9IDY7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICc8JzpcbiAgICAgICAgY2FzZSAnPic6XG4gICAgICAgIGNhc2UgJzw9JzpcbiAgICAgICAgY2FzZSAnPj0nOlxuICAgICAgICBjYXNlICdpbnN0YW5jZW9mJzpcbiAgICAgICAgICAgIHByZWMgPSA3O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnaW4nOlxuICAgICAgICAgICAgcHJlYyA9IGFsbG93SW4gPyA3IDogMDtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJzw8JzpcbiAgICAgICAgY2FzZSAnPj4nOlxuICAgICAgICBjYXNlICc+Pj4nOlxuICAgICAgICAgICAgcHJlYyA9IDg7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICcrJzpcbiAgICAgICAgY2FzZSAnLSc6XG4gICAgICAgICAgICBwcmVjID0gOTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJyonOlxuICAgICAgICBjYXNlICcvJzpcbiAgICAgICAgY2FzZSAnJSc6XG4gICAgICAgICAgICBwcmVjID0gMTE7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcHJlYztcbiAgICB9XG5cbiAgICAvLyAxMS41IE11bHRpcGxpY2F0aXZlIE9wZXJhdG9yc1xuICAgIC8vIDExLjYgQWRkaXRpdmUgT3BlcmF0b3JzXG4gICAgLy8gMTEuNyBCaXR3aXNlIFNoaWZ0IE9wZXJhdG9yc1xuICAgIC8vIDExLjggUmVsYXRpb25hbCBPcGVyYXRvcnNcbiAgICAvLyAxMS45IEVxdWFsaXR5IE9wZXJhdG9yc1xuICAgIC8vIDExLjEwIEJpbmFyeSBCaXR3aXNlIE9wZXJhdG9yc1xuICAgIC8vIDExLjExIEJpbmFyeSBMb2dpY2FsIE9wZXJhdG9yc1xuXG4gICAgZnVuY3Rpb24gcGFyc2VCaW5hcnlFeHByZXNzaW9uKCkge1xuICAgICAgICB2YXIgbWFya2VyLCBtYXJrZXJzLCBleHByLCB0b2tlbiwgcHJlYywgc3RhY2ssIHJpZ2h0LCBvcGVyYXRvciwgbGVmdCwgaTtcblxuICAgICAgICBtYXJrZXIgPSBsb29rYWhlYWQ7XG4gICAgICAgIGxlZnQgPSBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlVW5hcnlFeHByZXNzaW9uKTtcblxuICAgICAgICB0b2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgcHJlYyA9IGJpbmFyeVByZWNlZGVuY2UodG9rZW4sIHN0YXRlLmFsbG93SW4pO1xuICAgICAgICBpZiAocHJlYyA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGxlZnQ7XG4gICAgICAgIH1cbiAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICB0b2tlbi5wcmVjID0gcHJlYztcbiAgICAgICAgbGV4KCk7XG5cbiAgICAgICAgbWFya2VycyA9IFttYXJrZXIsIGxvb2thaGVhZF07XG4gICAgICAgIHJpZ2h0ID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZVVuYXJ5RXhwcmVzc2lvbik7XG5cbiAgICAgICAgc3RhY2sgPSBbbGVmdCwgdG9rZW4sIHJpZ2h0XTtcblxuICAgICAgICB3aGlsZSAoKHByZWMgPSBiaW5hcnlQcmVjZWRlbmNlKGxvb2thaGVhZCwgc3RhdGUuYWxsb3dJbikpID4gMCkge1xuXG4gICAgICAgICAgICAvLyBSZWR1Y2U6IG1ha2UgYSBiaW5hcnkgZXhwcmVzc2lvbiBmcm9tIHRoZSB0aHJlZSB0b3Btb3N0IGVudHJpZXMuXG4gICAgICAgICAgICB3aGlsZSAoKHN0YWNrLmxlbmd0aCA+IDIpICYmIChwcmVjIDw9IHN0YWNrW3N0YWNrLmxlbmd0aCAtIDJdLnByZWMpKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQgPSBzdGFjay5wb3AoKTtcbiAgICAgICAgICAgICAgICBvcGVyYXRvciA9IHN0YWNrLnBvcCgpLnZhbHVlO1xuICAgICAgICAgICAgICAgIGxlZnQgPSBzdGFjay5wb3AoKTtcbiAgICAgICAgICAgICAgICBtYXJrZXJzLnBvcCgpO1xuICAgICAgICAgICAgICAgIGV4cHIgPSBuZXcgV3JhcHBpbmdOb2RlKG1hcmtlcnNbbWFya2Vycy5sZW5ndGggLSAxXSkuZmluaXNoQmluYXJ5RXhwcmVzc2lvbihvcGVyYXRvciwgbGVmdCwgcmlnaHQpO1xuICAgICAgICAgICAgICAgIHN0YWNrLnB1c2goZXhwcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFNoaWZ0LlxuICAgICAgICAgICAgdG9rZW4gPSBsZXgoKTtcbiAgICAgICAgICAgIHRva2VuLnByZWMgPSBwcmVjO1xuICAgICAgICAgICAgc3RhY2sucHVzaCh0b2tlbik7XG4gICAgICAgICAgICBtYXJrZXJzLnB1c2gobG9va2FoZWFkKTtcbiAgICAgICAgICAgIGV4cHIgPSBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlVW5hcnlFeHByZXNzaW9uKTtcbiAgICAgICAgICAgIHN0YWNrLnB1c2goZXhwcik7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaW5hbCByZWR1Y2UgdG8gY2xlYW4tdXAgdGhlIHN0YWNrLlxuICAgICAgICBpID0gc3RhY2subGVuZ3RoIC0gMTtcbiAgICAgICAgZXhwciA9IHN0YWNrW2ldO1xuICAgICAgICBtYXJrZXJzLnBvcCgpO1xuICAgICAgICB3aGlsZSAoaSA+IDEpIHtcbiAgICAgICAgICAgIGV4cHIgPSBuZXcgV3JhcHBpbmdOb2RlKG1hcmtlcnMucG9wKCkpLmZpbmlzaEJpbmFyeUV4cHJlc3Npb24oc3RhY2tbaSAtIDFdLnZhbHVlLCBzdGFja1tpIC0gMl0sIGV4cHIpO1xuICAgICAgICAgICAgaSAtPSAyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgfVxuXG5cbiAgICAvLyAxMS4xMiBDb25kaXRpb25hbCBPcGVyYXRvclxuXG4gICAgZnVuY3Rpb24gcGFyc2VDb25kaXRpb25hbEV4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciBleHByLCBwcmV2aW91c0FsbG93SW4sIGNvbnNlcXVlbnQsIGFsdGVybmF0ZSwgc3RhcnRUb2tlbjtcblxuICAgICAgICBzdGFydFRva2VuID0gbG9va2FoZWFkO1xuXG4gICAgICAgIGV4cHIgPSBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlQmluYXJ5RXhwcmVzc2lvbik7XG4gICAgICAgIGlmIChtYXRjaCgnPycpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIHByZXZpb3VzQWxsb3dJbiA9IHN0YXRlLmFsbG93SW47XG4gICAgICAgICAgICBzdGF0ZS5hbGxvd0luID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnNlcXVlbnQgPSBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pO1xuICAgICAgICAgICAgc3RhdGUuYWxsb3dJbiA9IHByZXZpb3VzQWxsb3dJbjtcbiAgICAgICAgICAgIGV4cGVjdCgnOicpO1xuICAgICAgICAgICAgYWx0ZXJuYXRlID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcblxuICAgICAgICAgICAgZXhwciA9IG5ldyBXcmFwcGluZ05vZGUoc3RhcnRUb2tlbikuZmluaXNoQ29uZGl0aW9uYWxFeHByZXNzaW9uKGV4cHIsIGNvbnNlcXVlbnQsIGFsdGVybmF0ZSk7XG4gICAgICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZXhwcjtcbiAgICB9XG5cbiAgICAvLyBbRVM2XSAxNC4yIEFycm93IEZ1bmN0aW9uXG5cbiAgICBmdW5jdGlvbiBwYXJzZUNvbmNpc2VCb2R5KCkge1xuICAgICAgICBpZiAobWF0Y2goJ3snKSkge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlRnVuY3Rpb25Tb3VyY2VFbGVtZW50cygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc29sYXRlQ292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNoZWNrUGF0dGVyblBhcmFtKG9wdGlvbnMsIHBhcmFtKSB7XG4gICAgICAgIHZhciBpO1xuICAgICAgICBzd2l0Y2ggKHBhcmFtLnR5cGUpIHtcbiAgICAgICAgY2FzZSBTeW50YXguSWRlbnRpZmllcjpcbiAgICAgICAgICAgIHZhbGlkYXRlUGFyYW0ob3B0aW9ucywgcGFyYW0sIHBhcmFtLm5hbWUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU3ludGF4LlJlc3RFbGVtZW50OlxuICAgICAgICAgICAgY2hlY2tQYXR0ZXJuUGFyYW0ob3B0aW9ucywgcGFyYW0uYXJndW1lbnQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgU3ludGF4LkFzc2lnbm1lbnRQYXR0ZXJuOlxuICAgICAgICAgICAgY2hlY2tQYXR0ZXJuUGFyYW0ob3B0aW9ucywgcGFyYW0ubGVmdCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBTeW50YXguQXJyYXlQYXR0ZXJuOlxuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHBhcmFtLmVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtLmVsZW1lbnRzW2ldICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrUGF0dGVyblBhcmFtKG9wdGlvbnMsIHBhcmFtLmVsZW1lbnRzW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGFzc2VydChwYXJhbS50eXBlID09PSBTeW50YXguT2JqZWN0UGF0dGVybiwgJ0ludmFsaWQgdHlwZScpO1xuICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHBhcmFtLnByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjaGVja1BhdHRlcm5QYXJhbShvcHRpb25zLCBwYXJhbS5wcm9wZXJ0aWVzW2ldLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlaW50ZXJwcmV0QXNDb3ZlckZvcm1hbHNMaXN0KGV4cHIpIHtcbiAgICAgICAgdmFyIGksIGxlbiwgcGFyYW0sIHBhcmFtcywgZGVmYXVsdHMsIGRlZmF1bHRDb3VudCwgb3B0aW9ucywgdG9rZW47XG5cbiAgICAgICAgZGVmYXVsdHMgPSBbXTtcbiAgICAgICAgZGVmYXVsdENvdW50ID0gMDtcbiAgICAgICAgcGFyYW1zID0gW2V4cHJdO1xuXG4gICAgICAgIHN3aXRjaCAoZXhwci50eXBlKSB7XG4gICAgICAgIGNhc2UgU3ludGF4LklkZW50aWZpZXI6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQbGFjZUhvbGRlcnMuQXJyb3dQYXJhbWV0ZXJQbGFjZUhvbGRlcjpcbiAgICAgICAgICAgIHBhcmFtcyA9IGV4cHIucGFyYW1zO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBwYXJhbVNldDoge31cbiAgICAgICAgfTtcblxuICAgICAgICBmb3IgKGkgPSAwLCBsZW4gPSBwYXJhbXMubGVuZ3RoOyBpIDwgbGVuOyBpICs9IDEpIHtcbiAgICAgICAgICAgIHBhcmFtID0gcGFyYW1zW2ldO1xuICAgICAgICAgICAgc3dpdGNoIChwYXJhbS50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFN5bnRheC5Bc3NpZ25tZW50UGF0dGVybjpcbiAgICAgICAgICAgICAgICBwYXJhbXNbaV0gPSBwYXJhbS5sZWZ0O1xuICAgICAgICAgICAgICAgIGRlZmF1bHRzLnB1c2gocGFyYW0ucmlnaHQpO1xuICAgICAgICAgICAgICAgICsrZGVmYXVsdENvdW50O1xuICAgICAgICAgICAgICAgIGNoZWNrUGF0dGVyblBhcmFtKG9wdGlvbnMsIHBhcmFtLmxlZnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjaGVja1BhdHRlcm5QYXJhbShvcHRpb25zLCBwYXJhbSk7XG4gICAgICAgICAgICAgICAgcGFyYW1zW2ldID0gcGFyYW07XG4gICAgICAgICAgICAgICAgZGVmYXVsdHMucHVzaChudWxsKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLm1lc3NhZ2UgPT09IE1lc3NhZ2VzLlN0cmljdFBhcmFtRHVwZSkge1xuICAgICAgICAgICAgdG9rZW4gPSBzdHJpY3QgPyBvcHRpb25zLnN0cmljdGVkIDogb3B0aW9ucy5maXJzdFJlc3RyaWN0ZWQ7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbih0b2tlbiwgb3B0aW9ucy5tZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkZWZhdWx0Q291bnQgPT09IDApIHtcbiAgICAgICAgICAgIGRlZmF1bHRzID0gW107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICAgICAgICBkZWZhdWx0czogZGVmYXVsdHMsXG4gICAgICAgICAgICBzdHJpY3RlZDogb3B0aW9ucy5zdHJpY3RlZCxcbiAgICAgICAgICAgIGZpcnN0UmVzdHJpY3RlZDogb3B0aW9ucy5maXJzdFJlc3RyaWN0ZWQsXG4gICAgICAgICAgICBtZXNzYWdlOiBvcHRpb25zLm1lc3NhZ2VcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUFycm93RnVuY3Rpb25FeHByZXNzaW9uKG9wdGlvbnMsIG5vZGUpIHtcbiAgICAgICAgdmFyIHByZXZpb3VzU3RyaWN0LCBib2R5O1xuXG4gICAgICAgIGlmIChoYXNMaW5lVGVybWluYXRvcikge1xuICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkKTtcbiAgICAgICAgfVxuICAgICAgICBleHBlY3QoJz0+Jyk7XG4gICAgICAgIHByZXZpb3VzU3RyaWN0ID0gc3RyaWN0O1xuXG4gICAgICAgIGJvZHkgPSBwYXJzZUNvbmNpc2VCb2R5KCk7XG5cbiAgICAgICAgaWYgKHN0cmljdCAmJiBvcHRpb25zLmZpcnN0UmVzdHJpY3RlZCkge1xuICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4ob3B0aW9ucy5maXJzdFJlc3RyaWN0ZWQsIG9wdGlvbnMubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0cmljdCAmJiBvcHRpb25zLnN0cmljdGVkKSB7XG4gICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbihvcHRpb25zLnN0cmljdGVkLCBvcHRpb25zLm1lc3NhZ2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RyaWN0ID0gcHJldmlvdXNTdHJpY3Q7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24ob3B0aW9ucy5wYXJhbXMsIG9wdGlvbnMuZGVmYXVsdHMsIGJvZHksIGJvZHkudHlwZSAhPT0gU3ludGF4LkJsb2NrU3RhdGVtZW50KTtcbiAgICB9XG5cbiAgICAvLyAxMS4xMyBBc3NpZ25tZW50IE9wZXJhdG9yc1xuXG4gICAgZnVuY3Rpb24gcGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbigpIHtcbiAgICAgICAgdmFyIHRva2VuLCBleHByLCByaWdodCwgbGlzdCwgc3RhcnRUb2tlbjtcblxuICAgICAgICBzdGFydFRva2VuID0gbG9va2FoZWFkO1xuICAgICAgICB0b2tlbiA9IGxvb2thaGVhZDtcblxuICAgICAgICBleHByID0gcGFyc2VDb25kaXRpb25hbEV4cHJlc3Npb24oKTtcblxuICAgICAgICBpZiAoZXhwci50eXBlID09PSBQbGFjZUhvbGRlcnMuQXJyb3dQYXJhbWV0ZXJQbGFjZUhvbGRlciB8fCBtYXRjaCgnPT4nKSkge1xuICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgbGlzdCA9IHJlaW50ZXJwcmV0QXNDb3ZlckZvcm1hbHNMaXN0KGV4cHIpO1xuXG4gICAgICAgICAgICBpZiAobGlzdCkge1xuICAgICAgICAgICAgICAgIGZpcnN0Q292ZXJJbml0aWFsaXplZE5hbWVFcnJvciA9IG51bGw7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlQXJyb3dGdW5jdGlvbkV4cHJlc3Npb24obGlzdCwgbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBleHByO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1hdGNoQXNzaWduKCkpIHtcbiAgICAgICAgICAgIGlmICghaXNBc3NpZ25tZW50VGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgdG9sZXJhdGVFcnJvcihNZXNzYWdlcy5JbnZhbGlkTEhTSW5Bc3NpZ25tZW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gMTEuMTMuMVxuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiBleHByLnR5cGUgPT09IFN5bnRheC5JZGVudGlmaWVyICYmIGlzUmVzdHJpY3RlZFdvcmQoZXhwci5uYW1lKSkge1xuICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKHRva2VuLCBNZXNzYWdlcy5TdHJpY3RMSFNBc3NpZ25tZW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFtYXRjaCgnPScpKSB7XG4gICAgICAgICAgICAgICAgaXNBc3NpZ25tZW50VGFyZ2V0ID0gaXNCaW5kaW5nRWxlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZWludGVycHJldEV4cHJlc3Npb25Bc1BhdHRlcm4oZXhwcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRva2VuID0gbGV4KCk7XG4gICAgICAgICAgICByaWdodCA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbik7XG4gICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hBc3NpZ25tZW50RXhwcmVzc2lvbih0b2tlbi52YWx1ZSwgZXhwciwgcmlnaHQpO1xuICAgICAgICAgICAgZmlyc3RDb3ZlckluaXRpYWxpemVkTmFtZUVycm9yID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBleHByO1xuICAgIH1cblxuICAgIC8vIDExLjE0IENvbW1hIE9wZXJhdG9yXG5cbiAgICBmdW5jdGlvbiBwYXJzZUV4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciBleHByLCBzdGFydFRva2VuID0gbG9va2FoZWFkLCBleHByZXNzaW9ucztcblxuICAgICAgICBleHByID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcblxuICAgICAgICBpZiAobWF0Y2goJywnKSkge1xuICAgICAgICAgICAgZXhwcmVzc2lvbnMgPSBbZXhwcl07XG5cbiAgICAgICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFtYXRjaCgnLCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICBleHByZXNzaW9ucy5wdXNoKGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbikpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBleHByID0gbmV3IFdyYXBwaW5nTm9kZShzdGFydFRva2VuKS5maW5pc2hTZXF1ZW5jZUV4cHJlc3Npb24oZXhwcmVzc2lvbnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGV4cHI7XG4gICAgfVxuXG4gICAgLy8gMTIuMSBCbG9ja1xuXG4gICAgZnVuY3Rpb24gcGFyc2VTdGF0ZW1lbnRMaXN0SXRlbSgpIHtcbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5LZXl3b3JkKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGxvb2thaGVhZC52YWx1ZSkge1xuICAgICAgICAgICAgY2FzZSAnZXhwb3J0JzpcbiAgICAgICAgICAgICAgICBpZiAoc291cmNlVHlwZSAhPT0gJ21vZHVsZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkLCBNZXNzYWdlcy5JbGxlZ2FsRXhwb3J0RGVjbGFyYXRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VFeHBvcnREZWNsYXJhdGlvbigpO1xuICAgICAgICAgICAgY2FzZSAnaW1wb3J0JzpcbiAgICAgICAgICAgICAgICBpZiAoc291cmNlVHlwZSAhPT0gJ21vZHVsZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4obG9va2FoZWFkLCBNZXNzYWdlcy5JbGxlZ2FsSW1wb3J0RGVjbGFyYXRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VJbXBvcnREZWNsYXJhdGlvbigpO1xuICAgICAgICAgICAgY2FzZSAnY29uc3QnOlxuICAgICAgICAgICAgY2FzZSAnbGV0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VMZXhpY2FsRGVjbGFyYXRpb24oe2luRm9yOiBmYWxzZX0pO1xuICAgICAgICAgICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUZ1bmN0aW9uRGVjbGFyYXRpb24obmV3IE5vZGUoKSk7XG4gICAgICAgICAgICBjYXNlICdjbGFzcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ2xhc3NEZWNsYXJhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcnNlU3RhdGVtZW50KCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VTdGF0ZW1lbnRMaXN0KCkge1xuICAgICAgICB2YXIgbGlzdCA9IFtdO1xuICAgICAgICB3aGlsZSAoc3RhcnRJbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKG1hdGNoKCd9JykpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpc3QucHVzaChwYXJzZVN0YXRlbWVudExpc3RJdGVtKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VCbG9jaygpIHtcbiAgICAgICAgdmFyIGJsb2NrLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBleHBlY3QoJ3snKTtcblxuICAgICAgICBibG9jayA9IHBhcnNlU3RhdGVtZW50TGlzdCgpO1xuXG4gICAgICAgIGV4cGVjdCgnfScpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEJsb2NrU3RhdGVtZW50KGJsb2NrKTtcbiAgICB9XG5cbiAgICAvLyAxMi4yIFZhcmlhYmxlIFN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKSB7XG4gICAgICAgIHZhciB0b2tlbiwgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgdG9rZW4gPSBsZXgoKTtcblxuICAgICAgICBpZiAodG9rZW4udHlwZSAhPT0gVG9rZW4uSWRlbnRpZmllcikge1xuICAgICAgICAgICAgaWYgKHN0cmljdCAmJiB0b2tlbi50eXBlID09PSBUb2tlbi5LZXl3b3JkICYmIGlzU3RyaWN0TW9kZVJlc2VydmVkV29yZCh0b2tlbi52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbih0b2tlbiwgTWVzc2FnZXMuU3RyaWN0UmVzZXJ2ZWRXb3JkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4odG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoSWRlbnRpZmllcih0b2tlbi52YWx1ZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VWYXJpYWJsZURlY2xhcmF0aW9uKCkge1xuICAgICAgICB2YXIgaW5pdCA9IG51bGwsIGlkLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBpZCA9IHBhcnNlUGF0dGVybigpO1xuXG4gICAgICAgIC8vIDEyLjIuMVxuICAgICAgICBpZiAoc3RyaWN0ICYmIGlzUmVzdHJpY3RlZFdvcmQoaWQubmFtZSkpIHtcbiAgICAgICAgICAgIHRvbGVyYXRlRXJyb3IoTWVzc2FnZXMuU3RyaWN0VmFyTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2goJz0nKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICBpbml0ID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcbiAgICAgICAgfSBlbHNlIGlmIChpZC50eXBlICE9PSBTeW50YXguSWRlbnRpZmllcikge1xuICAgICAgICAgICAgZXhwZWN0KCc9Jyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hWYXJpYWJsZURlY2xhcmF0b3IoaWQsIGluaXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlVmFyaWFibGVEZWNsYXJhdGlvbkxpc3QoKSB7XG4gICAgICAgIHZhciBsaXN0ID0gW107XG5cbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgbGlzdC5wdXNoKHBhcnNlVmFyaWFibGVEZWNsYXJhdGlvbigpKTtcbiAgICAgICAgICAgIGlmICghbWF0Y2goJywnKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgIH0gd2hpbGUgKHN0YXJ0SW5kZXggPCBsZW5ndGgpO1xuXG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlVmFyaWFibGVTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgZGVjbGFyYXRpb25zO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ3ZhcicpO1xuXG4gICAgICAgIGRlY2xhcmF0aW9ucyA9IHBhcnNlVmFyaWFibGVEZWNsYXJhdGlvbkxpc3QoKTtcblxuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoVmFyaWFibGVEZWNsYXJhdGlvbihkZWNsYXJhdGlvbnMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlTGV4aWNhbEJpbmRpbmcoa2luZCwgb3B0aW9ucykge1xuICAgICAgICB2YXIgaW5pdCA9IG51bGwsIGlkLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBpZCA9IHBhcnNlUGF0dGVybigpO1xuXG4gICAgICAgIC8vIDEyLjIuMVxuICAgICAgICBpZiAoc3RyaWN0ICYmIGlkLnR5cGUgPT09IFN5bnRheC5JZGVudGlmaWVyICYmIGlzUmVzdHJpY3RlZFdvcmQoaWQubmFtZSkpIHtcbiAgICAgICAgICAgIHRvbGVyYXRlRXJyb3IoTWVzc2FnZXMuU3RyaWN0VmFyTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoa2luZCA9PT0gJ2NvbnN0Jykge1xuICAgICAgICAgICAgaWYgKCFtYXRjaEtleXdvcmQoJ2luJykpIHtcbiAgICAgICAgICAgICAgICBleHBlY3QoJz0nKTtcbiAgICAgICAgICAgICAgICBpbml0ID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZUFzc2lnbm1lbnRFeHByZXNzaW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICgoIW9wdGlvbnMuaW5Gb3IgJiYgaWQudHlwZSAhPT0gU3ludGF4LklkZW50aWZpZXIpIHx8IG1hdGNoKCc9JykpIHtcbiAgICAgICAgICAgIGV4cGVjdCgnPScpO1xuICAgICAgICAgICAgaW5pdCA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hWYXJpYWJsZURlY2xhcmF0b3IoaWQsIGluaXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlQmluZGluZ0xpc3Qoa2luZCwgb3B0aW9ucykge1xuICAgICAgICB2YXIgbGlzdCA9IFtdO1xuXG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIGxpc3QucHVzaChwYXJzZUxleGljYWxCaW5kaW5nKGtpbmQsIG9wdGlvbnMpKTtcbiAgICAgICAgICAgIGlmICghbWF0Y2goJywnKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgIH0gd2hpbGUgKHN0YXJ0SW5kZXggPCBsZW5ndGgpO1xuXG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlTGV4aWNhbERlY2xhcmF0aW9uKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIGtpbmQsIGRlY2xhcmF0aW9ucywgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAga2luZCA9IGxleCgpLnZhbHVlO1xuICAgICAgICBhc3NlcnQoa2luZCA9PT0gJ2xldCcgfHwga2luZCA9PT0gJ2NvbnN0JywgJ0xleGljYWwgZGVjbGFyYXRpb24gbXVzdCBiZSBlaXRoZXIgbGV0IG9yIGNvbnN0Jyk7XG5cbiAgICAgICAgZGVjbGFyYXRpb25zID0gcGFyc2VCaW5kaW5nTGlzdChraW5kLCBvcHRpb25zKTtcblxuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoTGV4aWNhbERlY2xhcmF0aW9uKGRlY2xhcmF0aW9ucywga2luZCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VSZXN0RWxlbWVudCgpIHtcbiAgICAgICAgdmFyIHBhcmFtLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBsZXgoKTtcblxuICAgICAgICBpZiAobWF0Y2goJ3snKSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5PYmplY3RQYXR0ZXJuQXNSZXN0UGFyYW1ldGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcmFtID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcblxuICAgICAgICBpZiAobWF0Y2goJz0nKSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5EZWZhdWx0UmVzdFBhcmFtZXRlcik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW1hdGNoKCcpJykpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuUGFyYW1ldGVyQWZ0ZXJSZXN0UGFyYW1ldGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaFJlc3RFbGVtZW50KHBhcmFtKTtcbiAgICB9XG5cbiAgICAvLyAxMi4zIEVtcHR5IFN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VFbXB0eVN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIGV4cGVjdCgnOycpO1xuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hFbXB0eVN0YXRlbWVudCgpO1xuICAgIH1cblxuICAgIC8vIDEyLjQgRXhwcmVzc2lvbiBTdGF0ZW1lbnRcblxuICAgIGZ1bmN0aW9uIHBhcnNlRXhwcmVzc2lvblN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIHZhciBleHByID0gcGFyc2VFeHByZXNzaW9uKCk7XG4gICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwcmVzc2lvblN0YXRlbWVudChleHByKTtcbiAgICB9XG5cbiAgICAvLyAxMi41IElmIHN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VJZlN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIHZhciB0ZXN0LCBjb25zZXF1ZW50LCBhbHRlcm5hdGU7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnaWYnKTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICB0ZXN0ID0gcGFyc2VFeHByZXNzaW9uKCk7XG5cbiAgICAgICAgZXhwZWN0KCcpJyk7XG5cbiAgICAgICAgY29uc2VxdWVudCA9IHBhcnNlU3RhdGVtZW50KCk7XG5cbiAgICAgICAgaWYgKG1hdGNoS2V5d29yZCgnZWxzZScpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIGFsdGVybmF0ZSA9IHBhcnNlU3RhdGVtZW50KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbHRlcm5hdGUgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoSWZTdGF0ZW1lbnQodGVzdCwgY29uc2VxdWVudCwgYWx0ZXJuYXRlKTtcbiAgICB9XG5cbiAgICAvLyAxMi42IEl0ZXJhdGlvbiBTdGF0ZW1lbnRzXG5cbiAgICBmdW5jdGlvbiBwYXJzZURvV2hpbGVTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgYm9keSwgdGVzdCwgb2xkSW5JdGVyYXRpb247XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnZG8nKTtcblxuICAgICAgICBvbGRJbkl0ZXJhdGlvbiA9IHN0YXRlLmluSXRlcmF0aW9uO1xuICAgICAgICBzdGF0ZS5pbkl0ZXJhdGlvbiA9IHRydWU7XG5cbiAgICAgICAgYm9keSA9IHBhcnNlU3RhdGVtZW50KCk7XG5cbiAgICAgICAgc3RhdGUuaW5JdGVyYXRpb24gPSBvbGRJbkl0ZXJhdGlvbjtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCd3aGlsZScpO1xuXG4gICAgICAgIGV4cGVjdCgnKCcpO1xuXG4gICAgICAgIHRlc3QgPSBwYXJzZUV4cHJlc3Npb24oKTtcblxuICAgICAgICBleHBlY3QoJyknKTtcblxuICAgICAgICBpZiAobWF0Y2goJzsnKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hEb1doaWxlU3RhdGVtZW50KGJvZHksIHRlc3QpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlV2hpbGVTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgdGVzdCwgYm9keSwgb2xkSW5JdGVyYXRpb247XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnd2hpbGUnKTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICB0ZXN0ID0gcGFyc2VFeHByZXNzaW9uKCk7XG5cbiAgICAgICAgZXhwZWN0KCcpJyk7XG5cbiAgICAgICAgb2xkSW5JdGVyYXRpb24gPSBzdGF0ZS5pbkl0ZXJhdGlvbjtcbiAgICAgICAgc3RhdGUuaW5JdGVyYXRpb24gPSB0cnVlO1xuXG4gICAgICAgIGJvZHkgPSBwYXJzZVN0YXRlbWVudCgpO1xuXG4gICAgICAgIHN0YXRlLmluSXRlcmF0aW9uID0gb2xkSW5JdGVyYXRpb247XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoV2hpbGVTdGF0ZW1lbnQodGVzdCwgYm9keSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VGb3JTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgaW5pdCwgaW5pdFNlcSwgaW5pdFN0YXJ0VG9rZW4sIHRlc3QsIHVwZGF0ZSwgbGVmdCwgcmlnaHQsIGtpbmQsIGRlY2xhcmF0aW9ucyxcbiAgICAgICAgICAgIGJvZHksIG9sZEluSXRlcmF0aW9uLCBwcmV2aW91c0FsbG93SW4gPSBzdGF0ZS5hbGxvd0luO1xuXG4gICAgICAgIGluaXQgPSB0ZXN0ID0gdXBkYXRlID0gbnVsbDtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdmb3InKTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICBpZiAobWF0Y2goJzsnKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCd2YXInKSkge1xuICAgICAgICAgICAgICAgIGluaXQgPSBuZXcgTm9kZSgpO1xuICAgICAgICAgICAgICAgIGxleCgpO1xuXG4gICAgICAgICAgICAgICAgc3RhdGUuYWxsb3dJbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGluaXQgPSBpbml0LmZpbmlzaFZhcmlhYmxlRGVjbGFyYXRpb24ocGFyc2VWYXJpYWJsZURlY2xhcmF0aW9uTGlzdCgpKTtcbiAgICAgICAgICAgICAgICBzdGF0ZS5hbGxvd0luID0gcHJldmlvdXNBbGxvd0luO1xuXG4gICAgICAgICAgICAgICAgaWYgKGluaXQuZGVjbGFyYXRpb25zLmxlbmd0aCA9PT0gMSAmJiBtYXRjaEtleXdvcmQoJ2luJykpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSBpbml0O1xuICAgICAgICAgICAgICAgICAgICByaWdodCA9IHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgICAgICAgICBpbml0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBleHBlY3QoJzsnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1hdGNoS2V5d29yZCgnY29uc3QnKSB8fCBtYXRjaEtleXdvcmQoJ2xldCcpKSB7XG4gICAgICAgICAgICAgICAgaW5pdCA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICAgICAga2luZCA9IGxleCgpLnZhbHVlO1xuXG4gICAgICAgICAgICAgICAgc3RhdGUuYWxsb3dJbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGRlY2xhcmF0aW9ucyA9IHBhcnNlQmluZGluZ0xpc3Qoa2luZCwge2luRm9yOiB0cnVlfSk7XG4gICAgICAgICAgICAgICAgc3RhdGUuYWxsb3dJbiA9IHByZXZpb3VzQWxsb3dJbjtcblxuICAgICAgICAgICAgICAgIGlmIChkZWNsYXJhdGlvbnMubGVuZ3RoID09PSAxICYmIGRlY2xhcmF0aW9uc1swXS5pbml0ID09PSBudWxsICYmIG1hdGNoS2V5d29yZCgnaW4nKSkge1xuICAgICAgICAgICAgICAgICAgICBpbml0ID0gaW5pdC5maW5pc2hMZXhpY2FsRGVjbGFyYXRpb24oZGVjbGFyYXRpb25zLCBraW5kKTtcbiAgICAgICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSBpbml0O1xuICAgICAgICAgICAgICAgICAgICByaWdodCA9IHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgICAgICAgICBpbml0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGluaXQgPSBpbml0LmZpbmlzaExleGljYWxEZWNsYXJhdGlvbihkZWNsYXJhdGlvbnMsIGtpbmQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaW5pdFN0YXJ0VG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICAgICAgc3RhdGUuYWxsb3dJbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGluaXQgPSBpbmhlcml0Q292ZXJHcmFtbWFyKHBhcnNlQXNzaWdubWVudEV4cHJlc3Npb24pO1xuICAgICAgICAgICAgICAgIHN0YXRlLmFsbG93SW4gPSBwcmV2aW91c0FsbG93SW47XG5cbiAgICAgICAgICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdpbicpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNBc3NpZ25tZW50VGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLkludmFsaWRMSFNJbkZvckluKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgICAgICAgICByZWludGVycHJldEV4cHJlc3Npb25Bc1BhdHRlcm4oaW5pdCk7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSBpbml0O1xuICAgICAgICAgICAgICAgICAgICByaWdodCA9IHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgICAgICAgICBpbml0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2goJywnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdFNlcSA9IFtpbml0XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChtYXRjaCgnLCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdFNlcS5wdXNoKGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdCA9IG5ldyBXcmFwcGluZ05vZGUoaW5pdFN0YXJ0VG9rZW4pLmZpbmlzaFNlcXVlbmNlRXhwcmVzc2lvbihpbml0U2VxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBleHBlY3QoJzsnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGxlZnQgPT09ICd1bmRlZmluZWQnKSB7XG5cbiAgICAgICAgICAgIGlmICghbWF0Y2goJzsnKSkge1xuICAgICAgICAgICAgICAgIHRlc3QgPSBwYXJzZUV4cHJlc3Npb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV4cGVjdCgnOycpO1xuXG4gICAgICAgICAgICBpZiAoIW1hdGNoKCcpJykpIHtcbiAgICAgICAgICAgICAgICB1cGRhdGUgPSBwYXJzZUV4cHJlc3Npb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGV4cGVjdCgnKScpO1xuXG4gICAgICAgIG9sZEluSXRlcmF0aW9uID0gc3RhdGUuaW5JdGVyYXRpb247XG4gICAgICAgIHN0YXRlLmluSXRlcmF0aW9uID0gdHJ1ZTtcblxuICAgICAgICBib2R5ID0gaXNvbGF0ZUNvdmVyR3JhbW1hcihwYXJzZVN0YXRlbWVudCk7XG5cbiAgICAgICAgc3RhdGUuaW5JdGVyYXRpb24gPSBvbGRJbkl0ZXJhdGlvbjtcblxuICAgICAgICByZXR1cm4gKHR5cGVvZiBsZWZ0ID09PSAndW5kZWZpbmVkJykgP1xuICAgICAgICAgICAgICAgIG5vZGUuZmluaXNoRm9yU3RhdGVtZW50KGluaXQsIHRlc3QsIHVwZGF0ZSwgYm9keSkgOlxuICAgICAgICAgICAgICAgIG5vZGUuZmluaXNoRm9ySW5TdGF0ZW1lbnQobGVmdCwgcmlnaHQsIGJvZHkpO1xuICAgIH1cblxuICAgIC8vIDEyLjcgVGhlIGNvbnRpbnVlIHN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VDb250aW51ZVN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIHZhciBsYWJlbCA9IG51bGwsIGtleTtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdjb250aW51ZScpO1xuXG4gICAgICAgIC8vIE9wdGltaXplIHRoZSBtb3N0IGNvbW1vbiBmb3JtOiAnY29udGludWU7Jy5cbiAgICAgICAgaWYgKHNvdXJjZS5jaGFyQ29kZUF0KHN0YXJ0SW5kZXgpID09PSAweDNCKSB7XG4gICAgICAgICAgICBsZXgoKTtcblxuICAgICAgICAgICAgaWYgKCFzdGF0ZS5pbkl0ZXJhdGlvbikge1xuICAgICAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuSWxsZWdhbENvbnRpbnVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoQ29udGludWVTdGF0ZW1lbnQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFzTGluZVRlcm1pbmF0b3IpIHtcbiAgICAgICAgICAgIGlmICghc3RhdGUuaW5JdGVyYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLklsbGVnYWxDb250aW51ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaENvbnRpbnVlU3RhdGVtZW50KG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBsYWJlbCA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG5cbiAgICAgICAgICAgIGtleSA9ICckJyArIGxhYmVsLm5hbWU7XG4gICAgICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdGF0ZS5sYWJlbFNldCwga2V5KSkge1xuICAgICAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuVW5rbm93bkxhYmVsLCBsYWJlbC5uYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcblxuICAgICAgICBpZiAobGFiZWwgPT09IG51bGwgJiYgIXN0YXRlLmluSXRlcmF0aW9uKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLklsbGVnYWxDb250aW51ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hDb250aW51ZVN0YXRlbWVudChsYWJlbCk7XG4gICAgfVxuXG4gICAgLy8gMTIuOCBUaGUgYnJlYWsgc3RhdGVtZW50XG5cbiAgICBmdW5jdGlvbiBwYXJzZUJyZWFrU3RhdGVtZW50KG5vZGUpIHtcbiAgICAgICAgdmFyIGxhYmVsID0gbnVsbCwga2V5O1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ2JyZWFrJyk7XG5cbiAgICAgICAgLy8gQ2F0Y2ggdGhlIHZlcnkgY29tbW9uIGNhc2UgZmlyc3Q6IGltbWVkaWF0ZWx5IGEgc2VtaWNvbG9uIChVKzAwM0IpLlxuICAgICAgICBpZiAoc291cmNlLmNoYXJDb2RlQXQobGFzdEluZGV4KSA9PT0gMHgzQikge1xuICAgICAgICAgICAgbGV4KCk7XG5cbiAgICAgICAgICAgIGlmICghKHN0YXRlLmluSXRlcmF0aW9uIHx8IHN0YXRlLmluU3dpdGNoKSkge1xuICAgICAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuSWxsZWdhbEJyZWFrKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoQnJlYWtTdGF0ZW1lbnQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFzTGluZVRlcm1pbmF0b3IpIHtcbiAgICAgICAgICAgIGlmICghKHN0YXRlLmluSXRlcmF0aW9uIHx8IHN0YXRlLmluU3dpdGNoKSkge1xuICAgICAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuSWxsZWdhbEJyZWFrKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoQnJlYWtTdGF0ZW1lbnQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgPT09IFRva2VuLklkZW50aWZpZXIpIHtcbiAgICAgICAgICAgIGxhYmVsID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcblxuICAgICAgICAgICAga2V5ID0gJyQnICsgbGFiZWwubmFtZTtcbiAgICAgICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHN0YXRlLmxhYmVsU2V0LCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5Vbmtub3duTGFiZWwsIGxhYmVsLm5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3VtZVNlbWljb2xvbigpO1xuXG4gICAgICAgIGlmIChsYWJlbCA9PT0gbnVsbCAmJiAhKHN0YXRlLmluSXRlcmF0aW9uIHx8IHN0YXRlLmluU3dpdGNoKSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5JbGxlZ2FsQnJlYWspO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoQnJlYWtTdGF0ZW1lbnQobGFiZWwpO1xuICAgIH1cblxuICAgIC8vIDEyLjkgVGhlIHJldHVybiBzdGF0ZW1lbnRcblxuICAgIGZ1bmN0aW9uIHBhcnNlUmV0dXJuU3RhdGVtZW50KG5vZGUpIHtcbiAgICAgICAgdmFyIGFyZ3VtZW50ID0gbnVsbDtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdyZXR1cm4nKTtcblxuICAgICAgICBpZiAoIXN0YXRlLmluRnVuY3Rpb25Cb2R5KSB7XG4gICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLklsbGVnYWxSZXR1cm4pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gJ3JldHVybicgZm9sbG93ZWQgYnkgYSBzcGFjZSBhbmQgYW4gaWRlbnRpZmllciBpcyB2ZXJ5IGNvbW1vbi5cbiAgICAgICAgaWYgKHNvdXJjZS5jaGFyQ29kZUF0KGxhc3RJbmRleCkgPT09IDB4MjApIHtcbiAgICAgICAgICAgIGlmIChpc0lkZW50aWZpZXJTdGFydChzb3VyY2UuY2hhckNvZGVBdChsYXN0SW5kZXggKyAxKSkpIHtcbiAgICAgICAgICAgICAgICBhcmd1bWVudCA9IHBhcnNlRXhwcmVzc2lvbigpO1xuICAgICAgICAgICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hSZXR1cm5TdGF0ZW1lbnQoYXJndW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc0xpbmVUZXJtaW5hdG9yKSB7XG4gICAgICAgICAgICAvLyBIQUNLXG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hSZXR1cm5TdGF0ZW1lbnQobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW1hdGNoKCc7JykpIHtcbiAgICAgICAgICAgIGlmICghbWF0Y2goJ30nKSAmJiBsb29rYWhlYWQudHlwZSAhPT0gVG9rZW4uRU9GKSB7XG4gICAgICAgICAgICAgICAgYXJndW1lbnQgPSBwYXJzZUV4cHJlc3Npb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hSZXR1cm5TdGF0ZW1lbnQoYXJndW1lbnQpO1xuICAgIH1cblxuICAgIC8vIDEyLjEwIFRoZSB3aXRoIHN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VXaXRoU3RhdGVtZW50KG5vZGUpIHtcbiAgICAgICAgdmFyIG9iamVjdCwgYm9keTtcblxuICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgICB0b2xlcmF0ZUVycm9yKE1lc3NhZ2VzLlN0cmljdE1vZGVXaXRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ3dpdGgnKTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICBvYmplY3QgPSBwYXJzZUV4cHJlc3Npb24oKTtcblxuICAgICAgICBleHBlY3QoJyknKTtcblxuICAgICAgICBib2R5ID0gcGFyc2VTdGF0ZW1lbnQoKTtcblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hXaXRoU3RhdGVtZW50KG9iamVjdCwgYm9keSk7XG4gICAgfVxuXG4gICAgLy8gMTIuMTAgVGhlIHN3aXRoIHN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VTd2l0Y2hDYXNlKCkge1xuICAgICAgICB2YXIgdGVzdCwgY29uc2VxdWVudCA9IFtdLCBzdGF0ZW1lbnQsIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ2RlZmF1bHQnKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICB0ZXN0ID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV4cGVjdEtleXdvcmQoJ2Nhc2UnKTtcbiAgICAgICAgICAgIHRlc3QgPSBwYXJzZUV4cHJlc3Npb24oKTtcbiAgICAgICAgfVxuICAgICAgICBleHBlY3QoJzonKTtcblxuICAgICAgICB3aGlsZSAoc3RhcnRJbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKG1hdGNoKCd9JykgfHwgbWF0Y2hLZXl3b3JkKCdkZWZhdWx0JykgfHwgbWF0Y2hLZXl3b3JkKCdjYXNlJykpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YXRlbWVudCA9IHBhcnNlU3RhdGVtZW50TGlzdEl0ZW0oKTtcbiAgICAgICAgICAgIGNvbnNlcXVlbnQucHVzaChzdGF0ZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoU3dpdGNoQ2FzZSh0ZXN0LCBjb25zZXF1ZW50KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZVN3aXRjaFN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIHZhciBkaXNjcmltaW5hbnQsIGNhc2VzLCBjbGF1c2UsIG9sZEluU3dpdGNoLCBkZWZhdWx0Rm91bmQ7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnc3dpdGNoJyk7XG5cbiAgICAgICAgZXhwZWN0KCcoJyk7XG5cbiAgICAgICAgZGlzY3JpbWluYW50ID0gcGFyc2VFeHByZXNzaW9uKCk7XG5cbiAgICAgICAgZXhwZWN0KCcpJyk7XG5cbiAgICAgICAgZXhwZWN0KCd7Jyk7XG5cbiAgICAgICAgY2FzZXMgPSBbXTtcblxuICAgICAgICBpZiAobWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hTd2l0Y2hTdGF0ZW1lbnQoZGlzY3JpbWluYW50LCBjYXNlcyk7XG4gICAgICAgIH1cblxuICAgICAgICBvbGRJblN3aXRjaCA9IHN0YXRlLmluU3dpdGNoO1xuICAgICAgICBzdGF0ZS5pblN3aXRjaCA9IHRydWU7XG4gICAgICAgIGRlZmF1bHRGb3VuZCA9IGZhbHNlO1xuXG4gICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2xhdXNlID0gcGFyc2VTd2l0Y2hDYXNlKCk7XG4gICAgICAgICAgICBpZiAoY2xhdXNlLnRlc3QgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpZiAoZGVmYXVsdEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuTXVsdGlwbGVEZWZhdWx0c0luU3dpdGNoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdEZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2VzLnB1c2goY2xhdXNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXRlLmluU3dpdGNoID0gb2xkSW5Td2l0Y2g7XG5cbiAgICAgICAgZXhwZWN0KCd9Jyk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoU3dpdGNoU3RhdGVtZW50KGRpc2NyaW1pbmFudCwgY2FzZXMpO1xuICAgIH1cblxuICAgIC8vIDEyLjEzIFRoZSB0aHJvdyBzdGF0ZW1lbnRcblxuICAgIGZ1bmN0aW9uIHBhcnNlVGhyb3dTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgYXJndW1lbnQ7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgndGhyb3cnKTtcblxuICAgICAgICBpZiAoaGFzTGluZVRlcm1pbmF0b3IpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuTmV3bGluZUFmdGVyVGhyb3cpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXJndW1lbnQgPSBwYXJzZUV4cHJlc3Npb24oKTtcblxuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoVGhyb3dTdGF0ZW1lbnQoYXJndW1lbnQpO1xuICAgIH1cblxuICAgIC8vIDEyLjE0IFRoZSB0cnkgc3RhdGVtZW50XG5cbiAgICBmdW5jdGlvbiBwYXJzZUNhdGNoQ2xhdXNlKCkge1xuICAgICAgICB2YXIgcGFyYW0sIGJvZHksIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ2NhdGNoJyk7XG5cbiAgICAgICAgZXhwZWN0KCcoJyk7XG4gICAgICAgIGlmIChtYXRjaCgnKScpKSB7XG4gICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbihsb29rYWhlYWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcGFyYW0gPSBwYXJzZVBhdHRlcm4oKTtcblxuICAgICAgICAvLyAxMi4xNC4xXG4gICAgICAgIGlmIChzdHJpY3QgJiYgaXNSZXN0cmljdGVkV29yZChwYXJhbS5uYW1lKSkge1xuICAgICAgICAgICAgdG9sZXJhdGVFcnJvcihNZXNzYWdlcy5TdHJpY3RDYXRjaFZhcmlhYmxlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGV4cGVjdCgnKScpO1xuICAgICAgICBib2R5ID0gcGFyc2VCbG9jaygpO1xuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hDYXRjaENsYXVzZShwYXJhbSwgYm9keSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VUcnlTdGF0ZW1lbnQobm9kZSkge1xuICAgICAgICB2YXIgYmxvY2ssIGhhbmRsZXIgPSBudWxsLCBmaW5hbGl6ZXIgPSBudWxsO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ3RyeScpO1xuXG4gICAgICAgIGJsb2NrID0gcGFyc2VCbG9jaygpO1xuXG4gICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ2NhdGNoJykpIHtcbiAgICAgICAgICAgIGhhbmRsZXIgPSBwYXJzZUNhdGNoQ2xhdXNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdmaW5hbGx5JykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgZmluYWxpemVyID0gcGFyc2VCbG9jaygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFoYW5kbGVyICYmICFmaW5hbGl6ZXIpIHtcbiAgICAgICAgICAgIHRocm93RXJyb3IoTWVzc2FnZXMuTm9DYXRjaE9yRmluYWxseSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbm9kZS5maW5pc2hUcnlTdGF0ZW1lbnQoYmxvY2ssIGhhbmRsZXIsIGZpbmFsaXplcik7XG4gICAgfVxuXG4gICAgLy8gMTIuMTUgVGhlIGRlYnVnZ2VyIHN0YXRlbWVudFxuXG4gICAgZnVuY3Rpb24gcGFyc2VEZWJ1Z2dlclN0YXRlbWVudChub2RlKSB7XG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ2RlYnVnZ2VyJyk7XG5cbiAgICAgICAgY29uc3VtZVNlbWljb2xvbigpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaERlYnVnZ2VyU3RhdGVtZW50KCk7XG4gICAgfVxuXG4gICAgLy8gMTIgU3RhdGVtZW50c1xuXG4gICAgZnVuY3Rpb24gcGFyc2VTdGF0ZW1lbnQoKSB7XG4gICAgICAgIHZhciB0eXBlID0gbG9va2FoZWFkLnR5cGUsXG4gICAgICAgICAgICBleHByLFxuICAgICAgICAgICAgbGFiZWxlZEJvZHksXG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICBub2RlO1xuXG4gICAgICAgIGlmICh0eXBlID09PSBUb2tlbi5FT0YpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZSA9PT0gVG9rZW4uUHVuY3R1YXRvciAmJiBsb29rYWhlYWQudmFsdWUgPT09ICd7Jykge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlQmxvY2soKTtcbiAgICAgICAgfVxuICAgICAgICBpc0Fzc2lnbm1lbnRUYXJnZXQgPSBpc0JpbmRpbmdFbGVtZW50ID0gdHJ1ZTtcbiAgICAgICAgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgaWYgKHR5cGUgPT09IFRva2VuLlB1bmN0dWF0b3IpIHtcbiAgICAgICAgICAgIHN3aXRjaCAobG9va2FoZWFkLnZhbHVlKSB7XG4gICAgICAgICAgICBjYXNlICc7JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VFbXB0eVN0YXRlbWVudChub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJygnOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUV4cHJlc3Npb25TdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFRva2VuLktleXdvcmQpIHtcbiAgICAgICAgICAgIHN3aXRjaCAobG9va2FoZWFkLnZhbHVlKSB7XG4gICAgICAgICAgICBjYXNlICdicmVhayc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlQnJlYWtTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdjb250aW51ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlQ29udGludWVTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdkZWJ1Z2dlcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlRGVidWdnZXJTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdkbyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlRG9XaGlsZVN0YXRlbWVudChub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ2Zvcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlRm9yU3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUZ1bmN0aW9uRGVjbGFyYXRpb24obm9kZSk7XG4gICAgICAgICAgICBjYXNlICdpZic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSWZTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICdyZXR1cm4nOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVJldHVyblN0YXRlbWVudChub2RlKTtcbiAgICAgICAgICAgIGNhc2UgJ3N3aXRjaCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlU3dpdGNoU3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAndGhyb3cnOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVRocm93U3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAndHJ5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VUcnlTdGF0ZW1lbnQobm9kZSk7XG4gICAgICAgICAgICBjYXNlICd2YXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVZhcmlhYmxlU3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnd2hpbGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZVdoaWxlU3RhdGVtZW50KG5vZGUpO1xuICAgICAgICAgICAgY2FzZSAnd2l0aCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlV2l0aFN0YXRlbWVudChub2RlKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBleHByID0gcGFyc2VFeHByZXNzaW9uKCk7XG5cbiAgICAgICAgLy8gMTIuMTIgTGFiZWxsZWQgU3RhdGVtZW50c1xuICAgICAgICBpZiAoKGV4cHIudHlwZSA9PT0gU3ludGF4LklkZW50aWZpZXIpICYmIG1hdGNoKCc6JykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuXG4gICAgICAgICAgICBrZXkgPSAnJCcgKyBleHByLm5hbWU7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHN0YXRlLmxhYmVsU2V0LCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5SZWRlY2xhcmF0aW9uLCAnTGFiZWwnLCBleHByLm5hbWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdGF0ZS5sYWJlbFNldFtrZXldID0gdHJ1ZTtcbiAgICAgICAgICAgIGxhYmVsZWRCb2R5ID0gcGFyc2VTdGF0ZW1lbnQoKTtcbiAgICAgICAgICAgIGRlbGV0ZSBzdGF0ZS5sYWJlbFNldFtrZXldO1xuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoTGFiZWxlZFN0YXRlbWVudChleHByLCBsYWJlbGVkQm9keSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwcmVzc2lvblN0YXRlbWVudChleHByKTtcbiAgICB9XG5cbiAgICAvLyAxMyBGdW5jdGlvbiBEZWZpbml0aW9uXG5cbiAgICBmdW5jdGlvbiBwYXJzZUZ1bmN0aW9uU291cmNlRWxlbWVudHMoKSB7XG4gICAgICAgIHZhciBzdGF0ZW1lbnQsIGJvZHkgPSBbXSwgdG9rZW4sIGRpcmVjdGl2ZSwgZmlyc3RSZXN0cmljdGVkLFxuICAgICAgICAgICAgb2xkTGFiZWxTZXQsIG9sZEluSXRlcmF0aW9uLCBvbGRJblN3aXRjaCwgb2xkSW5GdW5jdGlvbkJvZHksIG9sZFBhcmVudGhlc2lzQ291bnQsXG4gICAgICAgICAgICBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBleHBlY3QoJ3snKTtcblxuICAgICAgICB3aGlsZSAoc3RhcnRJbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5TdHJpbmdMaXRlcmFsKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0b2tlbiA9IGxvb2thaGVhZDtcblxuICAgICAgICAgICAgc3RhdGVtZW50ID0gcGFyc2VTdGF0ZW1lbnRMaXN0SXRlbSgpO1xuICAgICAgICAgICAgYm9keS5wdXNoKHN0YXRlbWVudCk7XG4gICAgICAgICAgICBpZiAoc3RhdGVtZW50LmV4cHJlc3Npb24udHlwZSAhPT0gU3ludGF4LkxpdGVyYWwpIHtcbiAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIG5vdCBkaXJlY3RpdmVcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRpcmVjdGl2ZSA9IHNvdXJjZS5zbGljZSh0b2tlbi5zdGFydCArIDEsIHRva2VuLmVuZCAtIDEpO1xuICAgICAgICAgICAgaWYgKGRpcmVjdGl2ZSA9PT0gJ3VzZSBzdHJpY3QnKSB7XG4gICAgICAgICAgICAgICAgc3RyaWN0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoZmlyc3RSZXN0cmljdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKGZpcnN0UmVzdHJpY3RlZCwgTWVzc2FnZXMuU3RyaWN0T2N0YWxMaXRlcmFsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghZmlyc3RSZXN0cmljdGVkICYmIHRva2VuLm9jdGFsKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0UmVzdHJpY3RlZCA9IHRva2VuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG9sZExhYmVsU2V0ID0gc3RhdGUubGFiZWxTZXQ7XG4gICAgICAgIG9sZEluSXRlcmF0aW9uID0gc3RhdGUuaW5JdGVyYXRpb247XG4gICAgICAgIG9sZEluU3dpdGNoID0gc3RhdGUuaW5Td2l0Y2g7XG4gICAgICAgIG9sZEluRnVuY3Rpb25Cb2R5ID0gc3RhdGUuaW5GdW5jdGlvbkJvZHk7XG4gICAgICAgIG9sZFBhcmVudGhlc2lzQ291bnQgPSBzdGF0ZS5wYXJlbnRoZXNpemVkQ291bnQ7XG5cbiAgICAgICAgc3RhdGUubGFiZWxTZXQgPSB7fTtcbiAgICAgICAgc3RhdGUuaW5JdGVyYXRpb24gPSBmYWxzZTtcbiAgICAgICAgc3RhdGUuaW5Td2l0Y2ggPSBmYWxzZTtcbiAgICAgICAgc3RhdGUuaW5GdW5jdGlvbkJvZHkgPSB0cnVlO1xuICAgICAgICBzdGF0ZS5wYXJlbnRoZXNpemVkQ291bnQgPSAwO1xuXG4gICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAobWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYm9keS5wdXNoKHBhcnNlU3RhdGVtZW50TGlzdEl0ZW0oKSk7XG4gICAgICAgIH1cblxuICAgICAgICBleHBlY3QoJ30nKTtcblxuICAgICAgICBzdGF0ZS5sYWJlbFNldCA9IG9sZExhYmVsU2V0O1xuICAgICAgICBzdGF0ZS5pbkl0ZXJhdGlvbiA9IG9sZEluSXRlcmF0aW9uO1xuICAgICAgICBzdGF0ZS5pblN3aXRjaCA9IG9sZEluU3dpdGNoO1xuICAgICAgICBzdGF0ZS5pbkZ1bmN0aW9uQm9keSA9IG9sZEluRnVuY3Rpb25Cb2R5O1xuICAgICAgICBzdGF0ZS5wYXJlbnRoZXNpemVkQ291bnQgPSBvbGRQYXJlbnRoZXNpc0NvdW50O1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEJsb2NrU3RhdGVtZW50KGJvZHkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlUGFyYW0ob3B0aW9ucywgcGFyYW0sIG5hbWUpIHtcbiAgICAgICAgdmFyIGtleSA9ICckJyArIG5hbWU7XG4gICAgICAgIGlmIChzdHJpY3QpIHtcbiAgICAgICAgICAgIGlmIChpc1Jlc3RyaWN0ZWRXb3JkKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5zdHJpY3RlZCA9IHBhcmFtO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubWVzc2FnZSA9IE1lc3NhZ2VzLlN0cmljdFBhcmFtTmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucy5wYXJhbVNldCwga2V5KSkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuc3RyaWN0ZWQgPSBwYXJhbTtcbiAgICAgICAgICAgICAgICBvcHRpb25zLm1lc3NhZ2UgPSBNZXNzYWdlcy5TdHJpY3RQYXJhbUR1cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMuZmlyc3RSZXN0cmljdGVkKSB7XG4gICAgICAgICAgICBpZiAoaXNSZXN0cmljdGVkV29yZChuYW1lKSkge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMuZmlyc3RSZXN0cmljdGVkID0gcGFyYW07XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5tZXNzYWdlID0gTWVzc2FnZXMuU3RyaWN0UGFyYW1OYW1lO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc1N0cmljdE1vZGVSZXNlcnZlZFdvcmQobmFtZSkpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmZpcnN0UmVzdHJpY3RlZCA9IHBhcmFtO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubWVzc2FnZSA9IE1lc3NhZ2VzLlN0cmljdFJlc2VydmVkV29yZDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9wdGlvbnMucGFyYW1TZXQsIGtleSkpIHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLmZpcnN0UmVzdHJpY3RlZCA9IHBhcmFtO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMubWVzc2FnZSA9IE1lc3NhZ2VzLlN0cmljdFBhcmFtRHVwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvcHRpb25zLnBhcmFtU2V0W2tleV0gPSB0cnVlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlUGFyYW0ob3B0aW9ucykge1xuICAgICAgICB2YXIgdG9rZW4sIHBhcmFtLCBkZWY7XG5cbiAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgIGlmICh0b2tlbi52YWx1ZSA9PT0gJy4uLicpIHtcbiAgICAgICAgICAgIHBhcmFtID0gcGFyc2VSZXN0RWxlbWVudCgpO1xuICAgICAgICAgICAgdmFsaWRhdGVQYXJhbShvcHRpb25zLCBwYXJhbS5hcmd1bWVudCwgcGFyYW0uYXJndW1lbnQubmFtZSk7XG4gICAgICAgICAgICBvcHRpb25zLnBhcmFtcy5wdXNoKHBhcmFtKTtcbiAgICAgICAgICAgIG9wdGlvbnMuZGVmYXVsdHMucHVzaChudWxsKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcmFtID0gcGFyc2VQYXR0ZXJuV2l0aERlZmF1bHQoKTtcbiAgICAgICAgdmFsaWRhdGVQYXJhbShvcHRpb25zLCB0b2tlbiwgdG9rZW4udmFsdWUpO1xuXG4gICAgICAgIGlmIChwYXJhbS50eXBlID09PSBTeW50YXguQXNzaWdubWVudFBhdHRlcm4pIHtcbiAgICAgICAgICAgIGRlZiA9IHBhcmFtLnJpZ2h0O1xuICAgICAgICAgICAgcGFyYW0gPSBwYXJhbS5sZWZ0O1xuICAgICAgICAgICAgKytvcHRpb25zLmRlZmF1bHRDb3VudDtcbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnMucGFyYW1zLnB1c2gocGFyYW0pO1xuICAgICAgICBvcHRpb25zLmRlZmF1bHRzLnB1c2goZGVmKTtcblxuICAgICAgICByZXR1cm4gIW1hdGNoKCcpJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VQYXJhbXMoZmlyc3RSZXN0cmljdGVkKSB7XG4gICAgICAgIHZhciBvcHRpb25zO1xuXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBwYXJhbXM6IFtdLFxuICAgICAgICAgICAgZGVmYXVsdENvdW50OiAwLFxuICAgICAgICAgICAgZGVmYXVsdHM6IFtdLFxuICAgICAgICAgICAgZmlyc3RSZXN0cmljdGVkOiBmaXJzdFJlc3RyaWN0ZWRcbiAgICAgICAgfTtcblxuICAgICAgICBleHBlY3QoJygnKTtcblxuICAgICAgICBpZiAoIW1hdGNoKCcpJykpIHtcbiAgICAgICAgICAgIG9wdGlvbnMucGFyYW1TZXQgPSB7fTtcbiAgICAgICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXJzZVBhcmFtKG9wdGlvbnMpKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBleHBlY3QoJywnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGV4cGVjdCgnKScpO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmRlZmF1bHRDb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgb3B0aW9ucy5kZWZhdWx0cyA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhcmFtczogb3B0aW9ucy5wYXJhbXMsXG4gICAgICAgICAgICBkZWZhdWx0czogb3B0aW9ucy5kZWZhdWx0cyxcbiAgICAgICAgICAgIHN0cmljdGVkOiBvcHRpb25zLnN0cmljdGVkLFxuICAgICAgICAgICAgZmlyc3RSZXN0cmljdGVkOiBvcHRpb25zLmZpcnN0UmVzdHJpY3RlZCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IG9wdGlvbnMubWVzc2FnZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlRnVuY3Rpb25EZWNsYXJhdGlvbihub2RlLCBpZGVudGlmaWVySXNPcHRpb25hbCkge1xuICAgICAgICB2YXIgaWQgPSBudWxsLCBwYXJhbXMgPSBbXSwgZGVmYXVsdHMgPSBbXSwgYm9keSwgdG9rZW4sIHN0cmljdGVkLCB0bXAsIGZpcnN0UmVzdHJpY3RlZCwgbWVzc2FnZSwgcHJldmlvdXNTdHJpY3Q7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnZnVuY3Rpb24nKTtcbiAgICAgICAgaWYgKCFpZGVudGlmaWVySXNPcHRpb25hbCB8fCAhbWF0Y2goJygnKSkge1xuICAgICAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICBpZCA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG4gICAgICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzUmVzdHJpY3RlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKHRva2VuLCBNZXNzYWdlcy5TdHJpY3RGdW5jdGlvbk5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzUmVzdHJpY3RlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0UmVzdHJpY3RlZCA9IHRva2VuO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gTWVzc2FnZXMuU3RyaWN0RnVuY3Rpb25OYW1lO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNTdHJpY3RNb2RlUmVzZXJ2ZWRXb3JkKHRva2VuLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBmaXJzdFJlc3RyaWN0ZWQgPSB0b2tlbjtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IE1lc3NhZ2VzLlN0cmljdFJlc2VydmVkV29yZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0bXAgPSBwYXJzZVBhcmFtcyhmaXJzdFJlc3RyaWN0ZWQpO1xuICAgICAgICBwYXJhbXMgPSB0bXAucGFyYW1zO1xuICAgICAgICBkZWZhdWx0cyA9IHRtcC5kZWZhdWx0cztcbiAgICAgICAgc3RyaWN0ZWQgPSB0bXAuc3RyaWN0ZWQ7XG4gICAgICAgIGZpcnN0UmVzdHJpY3RlZCA9IHRtcC5maXJzdFJlc3RyaWN0ZWQ7XG4gICAgICAgIGlmICh0bXAubWVzc2FnZSkge1xuICAgICAgICAgICAgbWVzc2FnZSA9IHRtcC5tZXNzYWdlO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJldmlvdXNTdHJpY3QgPSBzdHJpY3Q7XG4gICAgICAgIGJvZHkgPSBwYXJzZUZ1bmN0aW9uU291cmNlRWxlbWVudHMoKTtcbiAgICAgICAgaWYgKHN0cmljdCAmJiBmaXJzdFJlc3RyaWN0ZWQpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGZpcnN0UmVzdHJpY3RlZCwgbWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0cmljdCAmJiBzdHJpY3RlZCkge1xuICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4oc3RyaWN0ZWQsIG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIHN0cmljdCA9IHByZXZpb3VzU3RyaWN0O1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEZ1bmN0aW9uRGVjbGFyYXRpb24oaWQsIHBhcmFtcywgZGVmYXVsdHMsIGJvZHkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlRnVuY3Rpb25FeHByZXNzaW9uKCkge1xuICAgICAgICB2YXIgdG9rZW4sIGlkID0gbnVsbCwgc3RyaWN0ZWQsIGZpcnN0UmVzdHJpY3RlZCwgbWVzc2FnZSwgdG1wLFxuICAgICAgICAgICAgcGFyYW1zID0gW10sIGRlZmF1bHRzID0gW10sIGJvZHksIHByZXZpb3VzU3RyaWN0LCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdmdW5jdGlvbicpO1xuXG4gICAgICAgIGlmICghbWF0Y2goJygnKSkge1xuICAgICAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICBpZCA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG4gICAgICAgICAgICBpZiAoc3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzUmVzdHJpY3RlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvbGVyYXRlVW5leHBlY3RlZFRva2VuKHRva2VuLCBNZXNzYWdlcy5TdHJpY3RGdW5jdGlvbk5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzUmVzdHJpY3RlZFdvcmQodG9rZW4udmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0UmVzdHJpY3RlZCA9IHRva2VuO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gTWVzc2FnZXMuU3RyaWN0RnVuY3Rpb25OYW1lO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNTdHJpY3RNb2RlUmVzZXJ2ZWRXb3JkKHRva2VuLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICBmaXJzdFJlc3RyaWN0ZWQgPSB0b2tlbjtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IE1lc3NhZ2VzLlN0cmljdFJlc2VydmVkV29yZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0bXAgPSBwYXJzZVBhcmFtcyhmaXJzdFJlc3RyaWN0ZWQpO1xuICAgICAgICBwYXJhbXMgPSB0bXAucGFyYW1zO1xuICAgICAgICBkZWZhdWx0cyA9IHRtcC5kZWZhdWx0cztcbiAgICAgICAgc3RyaWN0ZWQgPSB0bXAuc3RyaWN0ZWQ7XG4gICAgICAgIGZpcnN0UmVzdHJpY3RlZCA9IHRtcC5maXJzdFJlc3RyaWN0ZWQ7XG4gICAgICAgIGlmICh0bXAubWVzc2FnZSkge1xuICAgICAgICAgICAgbWVzc2FnZSA9IHRtcC5tZXNzYWdlO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJldmlvdXNTdHJpY3QgPSBzdHJpY3Q7XG4gICAgICAgIGJvZHkgPSBwYXJzZUZ1bmN0aW9uU291cmNlRWxlbWVudHMoKTtcbiAgICAgICAgaWYgKHN0cmljdCAmJiBmaXJzdFJlc3RyaWN0ZWQpIHtcbiAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGZpcnN0UmVzdHJpY3RlZCwgbWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0cmljdCAmJiBzdHJpY3RlZCkge1xuICAgICAgICAgICAgdG9sZXJhdGVVbmV4cGVjdGVkVG9rZW4oc3RyaWN0ZWQsIG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIHN0cmljdCA9IHByZXZpb3VzU3RyaWN0O1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEZ1bmN0aW9uRXhwcmVzc2lvbihpZCwgcGFyYW1zLCBkZWZhdWx0cywgYm9keSk7XG4gICAgfVxuXG5cbiAgICBmdW5jdGlvbiBwYXJzZUNsYXNzQm9keSgpIHtcbiAgICAgICAgdmFyIGNsYXNzQm9keSwgdG9rZW4sIGlzU3RhdGljLCBoYXNDb25zdHJ1Y3RvciA9IGZhbHNlLCBib2R5LCBtZXRob2QsIGNvbXB1dGVkLCBrZXk7XG5cbiAgICAgICAgY2xhc3NCb2R5ID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBleHBlY3QoJ3snKTtcbiAgICAgICAgYm9keSA9IFtdO1xuICAgICAgICB3aGlsZSAoIW1hdGNoKCd9JykpIHtcbiAgICAgICAgICAgIGlmIChtYXRjaCgnOycpKSB7XG4gICAgICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1ldGhvZCA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICAgICAgaXNTdGF0aWMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjb21wdXRlZCA9IG1hdGNoKCdbJyk7XG4gICAgICAgICAgICAgICAga2V5ID0gcGFyc2VPYmplY3RQcm9wZXJ0eUtleSgpO1xuICAgICAgICAgICAgICAgIGlmIChrZXkubmFtZSA9PT0gJ3N0YXRpYycgJiYgbG9va2FoZWFkUHJvcGVydHlOYW1lKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW4gPSBsb29rYWhlYWQ7XG4gICAgICAgICAgICAgICAgICAgIGlzU3RhdGljID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgY29tcHV0ZWQgPSBtYXRjaCgnWycpO1xuICAgICAgICAgICAgICAgICAgICBrZXkgPSBwYXJzZU9iamVjdFByb3BlcnR5S2V5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG1ldGhvZCA9IHRyeVBhcnNlTWV0aG9kRGVmaW5pdGlvbih0b2tlbiwga2V5LCBjb21wdXRlZCwgbWV0aG9kKTtcbiAgICAgICAgICAgICAgICBpZiAobWV0aG9kKSB7XG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZFsnc3RhdGljJ10gPSBpc1N0YXRpYztcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGhvZC5raW5kID09PSAnaW5pdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC5raW5kID0gJ21ldGhvZCc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1N0YXRpYykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtZXRob2QuY29tcHV0ZWQgJiYgKG1ldGhvZC5rZXkubmFtZSB8fCBtZXRob2Qua2V5LnZhbHVlLnRvU3RyaW5nKCkpID09PSAnY29uc3RydWN0b3InKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGhvZC5raW5kICE9PSAnbWV0aG9kJyB8fCAhbWV0aG9kLm1ldGhvZCB8fCBtZXRob2QudmFsdWUuZ2VuZXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKHRva2VuLCBNZXNzYWdlcy5Db25zdHJ1Y3RvclNwZWNpYWxNZXRob2QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzQ29uc3RydWN0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dVbmV4cGVjdGVkVG9rZW4odG9rZW4sIE1lc3NhZ2VzLkR1cGxpY2F0ZUNvbnN0cnVjdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNDb25zdHJ1Y3RvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZC5raW5kID0gJ2NvbnN0cnVjdG9yJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbWV0aG9kLmNvbXB1dGVkICYmIChtZXRob2Qua2V5Lm5hbWUgfHwgbWV0aG9kLmtleS52YWx1ZS50b1N0cmluZygpKSA9PT0gJ3Byb3RvdHlwZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1VuZXhwZWN0ZWRUb2tlbih0b2tlbiwgTWVzc2FnZXMuU3RhdGljUHJvdG90eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBtZXRob2QudHlwZSA9IFN5bnRheC5NZXRob2REZWZpbml0aW9uO1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgbWV0aG9kLm1ldGhvZDtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG1ldGhvZC5zaG9ydGhhbmQ7XG4gICAgICAgICAgICAgICAgICAgIGJvZHkucHVzaChtZXRob2QpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93VW5leHBlY3RlZFRva2VuKGxvb2thaGVhZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGxleCgpO1xuICAgICAgICByZXR1cm4gY2xhc3NCb2R5LmZpbmlzaENsYXNzQm9keShib2R5KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUNsYXNzRGVjbGFyYXRpb24oaWRlbnRpZmllcklzT3B0aW9uYWwpIHtcbiAgICAgICAgdmFyIGlkID0gbnVsbCwgc3VwZXJDbGFzcyA9IG51bGwsIGNsYXNzTm9kZSA9IG5ldyBOb2RlKCksIGNsYXNzQm9keSwgcHJldmlvdXNTdHJpY3QgPSBzdHJpY3Q7XG4gICAgICAgIHN0cmljdCA9IHRydWU7XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnY2xhc3MnKTtcblxuICAgICAgICBpZiAoIWlkZW50aWZpZXJJc09wdGlvbmFsIHx8IGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBpZCA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdleHRlbmRzJykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgc3VwZXJDbGFzcyA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VMZWZ0SGFuZFNpZGVFeHByZXNzaW9uQWxsb3dDYWxsKTtcbiAgICAgICAgfVxuICAgICAgICBjbGFzc0JvZHkgPSBwYXJzZUNsYXNzQm9keSgpO1xuICAgICAgICBzdHJpY3QgPSBwcmV2aW91c1N0cmljdDtcblxuICAgICAgICByZXR1cm4gY2xhc3NOb2RlLmZpbmlzaENsYXNzRGVjbGFyYXRpb24oaWQsIHN1cGVyQ2xhc3MsIGNsYXNzQm9keSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VDbGFzc0V4cHJlc3Npb24oKSB7XG4gICAgICAgIHZhciBpZCA9IG51bGwsIHN1cGVyQ2xhc3MgPSBudWxsLCBjbGFzc05vZGUgPSBuZXcgTm9kZSgpLCBjbGFzc0JvZHksIHByZXZpb3VzU3RyaWN0ID0gc3RyaWN0O1xuICAgICAgICBzdHJpY3QgPSB0cnVlO1xuXG4gICAgICAgIGV4cGVjdEtleXdvcmQoJ2NsYXNzJyk7XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlID09PSBUb2tlbi5JZGVudGlmaWVyKSB7XG4gICAgICAgICAgICBpZCA9IHBhcnNlVmFyaWFibGVJZGVudGlmaWVyKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdleHRlbmRzJykpIHtcbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgc3VwZXJDbGFzcyA9IGlzb2xhdGVDb3ZlckdyYW1tYXIocGFyc2VMZWZ0SGFuZFNpZGVFeHByZXNzaW9uQWxsb3dDYWxsKTtcbiAgICAgICAgfVxuICAgICAgICBjbGFzc0JvZHkgPSBwYXJzZUNsYXNzQm9keSgpO1xuICAgICAgICBzdHJpY3QgPSBwcmV2aW91c1N0cmljdDtcblxuICAgICAgICByZXR1cm4gY2xhc3NOb2RlLmZpbmlzaENsYXNzRXhwcmVzc2lvbihpZCwgc3VwZXJDbGFzcywgY2xhc3NCb2R5KTtcbiAgICB9XG5cbiAgICAvLyBNb2R1bGVzIGdyYW1tYXIgZnJvbTpcbiAgICAvLyBwZW9wbGUubW96aWxsYS5vcmcvfmpvcmVuZG9yZmYvZXM2LWRyYWZ0Lmh0bWxcblxuICAgIGZ1bmN0aW9uIHBhcnNlTW9kdWxlU3BlY2lmaWVyKCkge1xuICAgICAgICB2YXIgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgaWYgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5TdHJpbmdMaXRlcmFsKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLkludmFsaWRNb2R1bGVTcGVjaWZpZXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaExpdGVyYWwobGV4KCkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlRXhwb3J0U3BlY2lmaWVyKCkge1xuICAgICAgICB2YXIgZXhwb3J0ZWQsIGxvY2FsLCBub2RlID0gbmV3IE5vZGUoKSwgZGVmO1xuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdkZWZhdWx0JykpIHtcbiAgICAgICAgICAgIC8vIGV4cG9ydCB7ZGVmYXVsdH0gZnJvbSAnc29tZXRoaW5nJztcbiAgICAgICAgICAgIGRlZiA9IG5ldyBOb2RlKCk7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIGxvY2FsID0gZGVmLmZpbmlzaElkZW50aWZpZXIoJ2RlZmF1bHQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxvY2FsID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0Y2hDb250ZXh0dWFsS2V5d29yZCgnYXMnKSkge1xuICAgICAgICAgICAgbGV4KCk7XG4gICAgICAgICAgICBleHBvcnRlZCA9IHBhcnNlTm9uQ29tcHV0ZWRQcm9wZXJ0eSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEV4cG9ydFNwZWNpZmllcihsb2NhbCwgZXhwb3J0ZWQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlRXhwb3J0TmFtZWREZWNsYXJhdGlvbihub2RlKSB7XG4gICAgICAgIHZhciBkZWNsYXJhdGlvbiA9IG51bGwsXG4gICAgICAgICAgICBpc0V4cG9ydEZyb21JZGVudGlmaWVyLFxuICAgICAgICAgICAgc3JjID0gbnVsbCwgc3BlY2lmaWVycyA9IFtdO1xuXG4gICAgICAgIC8vIG5vbi1kZWZhdWx0IGV4cG9ydFxuICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgPT09IFRva2VuLktleXdvcmQpIHtcbiAgICAgICAgICAgIC8vIGNvdmVyczpcbiAgICAgICAgICAgIC8vIGV4cG9ydCB2YXIgZiA9IDE7XG4gICAgICAgICAgICBzd2l0Y2ggKGxvb2thaGVhZC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2xldCc6XG4gICAgICAgICAgICAgICAgY2FzZSAnY29uc3QnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ3Zhcic6XG4gICAgICAgICAgICAgICAgY2FzZSAnY2xhc3MnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICAgICAgICAgICAgICAgICAgZGVjbGFyYXRpb24gPSBwYXJzZVN0YXRlbWVudExpc3RJdGVtKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaEV4cG9ydE5hbWVkRGVjbGFyYXRpb24oZGVjbGFyYXRpb24sIHNwZWNpZmllcnMsIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZXhwZWN0KCd7Jyk7XG4gICAgICAgIGlmICghbWF0Y2goJ30nKSkge1xuICAgICAgICAgICAgZG8ge1xuICAgICAgICAgICAgICAgIGlzRXhwb3J0RnJvbUlkZW50aWZpZXIgPSBpc0V4cG9ydEZyb21JZGVudGlmaWVyIHx8IG1hdGNoS2V5d29yZCgnZGVmYXVsdCcpO1xuICAgICAgICAgICAgICAgIHNwZWNpZmllcnMucHVzaChwYXJzZUV4cG9ydFNwZWNpZmllcigpKTtcbiAgICAgICAgICAgIH0gd2hpbGUgKG1hdGNoKCcsJykgJiYgbGV4KCkpO1xuICAgICAgICB9XG4gICAgICAgIGV4cGVjdCgnfScpO1xuXG4gICAgICAgIGlmIChtYXRjaENvbnRleHR1YWxLZXl3b3JkKCdmcm9tJykpIHtcbiAgICAgICAgICAgIC8vIGNvdmVyaW5nOlxuICAgICAgICAgICAgLy8gZXhwb3J0IHtkZWZhdWx0fSBmcm9tICdmb28nO1xuICAgICAgICAgICAgLy8gZXhwb3J0IHtmb299IGZyb20gJ2Zvbyc7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIHNyYyA9IHBhcnNlTW9kdWxlU3BlY2lmaWVyKCk7XG4gICAgICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNFeHBvcnRGcm9tSWRlbnRpZmllcikge1xuICAgICAgICAgICAgLy8gY292ZXJpbmc6XG4gICAgICAgICAgICAvLyBleHBvcnQge2RlZmF1bHR9OyAvLyBtaXNzaW5nIGZyb21DbGF1c2VcbiAgICAgICAgICAgIHRocm93RXJyb3IobG9va2FoZWFkLnZhbHVlID9cbiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZXMuVW5leHBlY3RlZFRva2VuIDogTWVzc2FnZXMuTWlzc2luZ0Zyb21DbGF1c2UsIGxvb2thaGVhZC52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBjb3ZlclxuICAgICAgICAgICAgLy8gZXhwb3J0IHtmb299O1xuICAgICAgICAgICAgY29uc3VtZVNlbWljb2xvbigpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEV4cG9ydE5hbWVkRGVjbGFyYXRpb24oZGVjbGFyYXRpb24sIHNwZWNpZmllcnMsIHNyYyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgICB2YXIgZGVjbGFyYXRpb24gPSBudWxsLFxuICAgICAgICAgICAgZXhwcmVzc2lvbiA9IG51bGw7XG5cbiAgICAgICAgLy8gY292ZXJzOlxuICAgICAgICAvLyBleHBvcnQgZGVmYXVsdCAuLi5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnZGVmYXVsdCcpO1xuXG4gICAgICAgIGlmIChtYXRjaEtleXdvcmQoJ2Z1bmN0aW9uJykpIHtcbiAgICAgICAgICAgIC8vIGNvdmVyczpcbiAgICAgICAgICAgIC8vIGV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZvbyAoKSB7fVxuICAgICAgICAgICAgLy8gZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKCkge31cbiAgICAgICAgICAgIGRlY2xhcmF0aW9uID0gcGFyc2VGdW5jdGlvbkRlY2xhcmF0aW9uKG5ldyBOb2RlKCksIHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uKGRlY2xhcmF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0Y2hLZXl3b3JkKCdjbGFzcycpKSB7XG4gICAgICAgICAgICBkZWNsYXJhdGlvbiA9IHBhcnNlQ2xhc3NEZWNsYXJhdGlvbih0cnVlKTtcbiAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaEV4cG9ydERlZmF1bHREZWNsYXJhdGlvbihkZWNsYXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWF0Y2hDb250ZXh0dWFsS2V5d29yZCgnZnJvbScpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLlVuZXhwZWN0ZWRUb2tlbiwgbG9va2FoZWFkLnZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNvdmVyczpcbiAgICAgICAgLy8gZXhwb3J0IGRlZmF1bHQge307XG4gICAgICAgIC8vIGV4cG9ydCBkZWZhdWx0IFtdO1xuICAgICAgICAvLyBleHBvcnQgZGVmYXVsdCAoMSArIDIpO1xuICAgICAgICBpZiAobWF0Y2goJ3snKSkge1xuICAgICAgICAgICAgZXhwcmVzc2lvbiA9IHBhcnNlT2JqZWN0SW5pdGlhbGlzZXIoKTtcbiAgICAgICAgfSBlbHNlIGlmIChtYXRjaCgnWycpKSB7XG4gICAgICAgICAgICBleHByZXNzaW9uID0gcGFyc2VBcnJheUluaXRpYWxpc2VyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBleHByZXNzaW9uID0gcGFyc2VBc3NpZ25tZW50RXhwcmVzc2lvbigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwb3J0RGVmYXVsdERlY2xhcmF0aW9uKGV4cHJlc3Npb24pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlRXhwb3J0QWxsRGVjbGFyYXRpb24obm9kZSkge1xuICAgICAgICB2YXIgc3JjO1xuXG4gICAgICAgIC8vIGNvdmVyczpcbiAgICAgICAgLy8gZXhwb3J0ICogZnJvbSAnZm9vJztcbiAgICAgICAgZXhwZWN0KCcqJyk7XG4gICAgICAgIGlmICghbWF0Y2hDb250ZXh0dWFsS2V5d29yZCgnZnJvbScpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKGxvb2thaGVhZC52YWx1ZSA/XG4gICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VzLlVuZXhwZWN0ZWRUb2tlbiA6IE1lc3NhZ2VzLk1pc3NpbmdGcm9tQ2xhdXNlLCBsb29rYWhlYWQudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGxleCgpO1xuICAgICAgICBzcmMgPSBwYXJzZU1vZHVsZVNwZWNpZmllcigpO1xuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoRXhwb3J0QWxsRGVjbGFyYXRpb24oc3JjKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZUV4cG9ydERlY2xhcmF0aW9uKCkge1xuICAgICAgICB2YXIgbm9kZSA9IG5ldyBOb2RlKCk7XG4gICAgICAgIGlmIChzdGF0ZS5pbkZ1bmN0aW9uQm9keSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5JbGxlZ2FsRXhwb3J0RGVjbGFyYXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgZXhwZWN0S2V5d29yZCgnZXhwb3J0Jyk7XG5cbiAgICAgICAgaWYgKG1hdGNoS2V5d29yZCgnZGVmYXVsdCcpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VFeHBvcnREZWZhdWx0RGVjbGFyYXRpb24obm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1hdGNoKCcqJykpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZUV4cG9ydEFsbERlY2xhcmF0aW9uKG5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJzZUV4cG9ydE5hbWVkRGVjbGFyYXRpb24obm9kZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VJbXBvcnRTcGVjaWZpZXIoKSB7XG4gICAgICAgIC8vIGltcG9ydCB7PGZvbyBhcyBiYXI+fSAuLi47XG4gICAgICAgIHZhciBsb2NhbCwgaW1wb3J0ZWQsIG5vZGUgPSBuZXcgTm9kZSgpO1xuXG4gICAgICAgIGltcG9ydGVkID0gcGFyc2VOb25Db21wdXRlZFByb3BlcnR5KCk7XG4gICAgICAgIGlmIChtYXRjaENvbnRleHR1YWxLZXl3b3JkKCdhcycpKSB7XG4gICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIGxvY2FsID0gcGFyc2VWYXJpYWJsZUlkZW50aWZpZXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEltcG9ydFNwZWNpZmllcihsb2NhbCwgaW1wb3J0ZWQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlTmFtZWRJbXBvcnRzKCkge1xuICAgICAgICB2YXIgc3BlY2lmaWVycyA9IFtdO1xuICAgICAgICAvLyB7Zm9vLCBiYXIgYXMgYmFzfVxuICAgICAgICBleHBlY3QoJ3snKTtcbiAgICAgICAgaWYgKCFtYXRjaCgnfScpKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgc3BlY2lmaWVycy5wdXNoKHBhcnNlSW1wb3J0U3BlY2lmaWVyKCkpO1xuICAgICAgICAgICAgfSB3aGlsZSAobWF0Y2goJywnKSAmJiBsZXgoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwZWN0KCd9Jyk7XG4gICAgICAgIHJldHVybiBzcGVjaWZpZXJzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlSW1wb3J0RGVmYXVsdFNwZWNpZmllcigpIHtcbiAgICAgICAgLy8gaW1wb3J0IDxmb28+IC4uLjtcbiAgICAgICAgdmFyIGxvY2FsLCBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBsb2NhbCA9IHBhcnNlTm9uQ29tcHV0ZWRQcm9wZXJ0eSgpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEltcG9ydERlZmF1bHRTcGVjaWZpZXIobG9jYWwpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyKCkge1xuICAgICAgICAvLyBpbXBvcnQgPCogYXMgZm9vPiAuLi47XG4gICAgICAgIHZhciBsb2NhbCwgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgZXhwZWN0KCcqJyk7XG4gICAgICAgIGlmICghbWF0Y2hDb250ZXh0dWFsS2V5d29yZCgnYXMnKSkge1xuICAgICAgICAgICAgdGhyb3dFcnJvcihNZXNzYWdlcy5Ob0FzQWZ0ZXJJbXBvcnROYW1lc3BhY2UpO1xuICAgICAgICB9XG4gICAgICAgIGxleCgpO1xuICAgICAgICBsb2NhbCA9IHBhcnNlTm9uQ29tcHV0ZWRQcm9wZXJ0eSgpO1xuXG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaEltcG9ydE5hbWVzcGFjZVNwZWNpZmllcihsb2NhbCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VJbXBvcnREZWNsYXJhdGlvbigpIHtcbiAgICAgICAgdmFyIHNwZWNpZmllcnMsIHNyYywgbm9kZSA9IG5ldyBOb2RlKCk7XG5cbiAgICAgICAgaWYgKHN0YXRlLmluRnVuY3Rpb25Cb2R5KSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKE1lc3NhZ2VzLklsbGVnYWxJbXBvcnREZWNsYXJhdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBleHBlY3RLZXl3b3JkKCdpbXBvcnQnKTtcbiAgICAgICAgc3BlY2lmaWVycyA9IFtdO1xuXG4gICAgICAgIGlmIChsb29rYWhlYWQudHlwZSA9PT0gVG9rZW4uU3RyaW5nTGl0ZXJhbCkge1xuICAgICAgICAgICAgLy8gY292ZXJzOlxuICAgICAgICAgICAgLy8gaW1wb3J0ICdmb28nO1xuICAgICAgICAgICAgc3JjID0gcGFyc2VNb2R1bGVTcGVjaWZpZXIoKTtcbiAgICAgICAgICAgIGNvbnN1bWVTZW1pY29sb24oKTtcbiAgICAgICAgICAgIHJldHVybiBub2RlLmZpbmlzaEltcG9ydERlY2xhcmF0aW9uKHNwZWNpZmllcnMsIHNyYyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW1hdGNoS2V5d29yZCgnZGVmYXVsdCcpICYmIGlzSWRlbnRpZmllck5hbWUobG9va2FoZWFkKSkge1xuICAgICAgICAgICAgLy8gY292ZXJzOlxuICAgICAgICAgICAgLy8gaW1wb3J0IGZvb1xuICAgICAgICAgICAgLy8gaW1wb3J0IGZvbywgLi4uXG4gICAgICAgICAgICBzcGVjaWZpZXJzLnB1c2gocGFyc2VJbXBvcnREZWZhdWx0U3BlY2lmaWVyKCkpO1xuICAgICAgICAgICAgaWYgKG1hdGNoKCcsJykpIHtcbiAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobWF0Y2goJyonKSkge1xuICAgICAgICAgICAgLy8gY292ZXJzOlxuICAgICAgICAgICAgLy8gaW1wb3J0IGZvbywgKiBhcyBmb29cbiAgICAgICAgICAgIC8vIGltcG9ydCAqIGFzIGZvb1xuICAgICAgICAgICAgc3BlY2lmaWVycy5wdXNoKHBhcnNlSW1wb3J0TmFtZXNwYWNlU3BlY2lmaWVyKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKCd7JykpIHtcbiAgICAgICAgICAgIC8vIGNvdmVyczpcbiAgICAgICAgICAgIC8vIGltcG9ydCBmb28sIHtiYXJ9XG4gICAgICAgICAgICAvLyBpbXBvcnQge2Jhcn1cbiAgICAgICAgICAgIHNwZWNpZmllcnMgPSBzcGVjaWZpZXJzLmNvbmNhdChwYXJzZU5hbWVkSW1wb3J0cygpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbWF0Y2hDb250ZXh0dWFsS2V5d29yZCgnZnJvbScpKSB7XG4gICAgICAgICAgICB0aHJvd0Vycm9yKGxvb2thaGVhZC52YWx1ZSA/XG4gICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VzLlVuZXhwZWN0ZWRUb2tlbiA6IE1lc3NhZ2VzLk1pc3NpbmdGcm9tQ2xhdXNlLCBsb29rYWhlYWQudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGxleCgpO1xuICAgICAgICBzcmMgPSBwYXJzZU1vZHVsZVNwZWNpZmllcigpO1xuICAgICAgICBjb25zdW1lU2VtaWNvbG9uKCk7XG5cbiAgICAgICAgcmV0dXJuIG5vZGUuZmluaXNoSW1wb3J0RGVjbGFyYXRpb24oc3BlY2lmaWVycywgc3JjKTtcbiAgICB9XG5cbiAgICAvLyAxNCBQcm9ncmFtXG5cbiAgICBmdW5jdGlvbiBwYXJzZVNjcmlwdEJvZHkoKSB7XG4gICAgICAgIHZhciBzdGF0ZW1lbnQsIGJvZHkgPSBbXSwgdG9rZW4sIGRpcmVjdGl2ZSwgZmlyc3RSZXN0cmljdGVkO1xuXG4gICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgbGVuZ3RoKSB7XG4gICAgICAgICAgICB0b2tlbiA9IGxvb2thaGVhZDtcbiAgICAgICAgICAgIGlmICh0b2tlbi50eXBlICE9PSBUb2tlbi5TdHJpbmdMaXRlcmFsKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN0YXRlbWVudCA9IHBhcnNlU3RhdGVtZW50TGlzdEl0ZW0oKTtcbiAgICAgICAgICAgIGJvZHkucHVzaChzdGF0ZW1lbnQpO1xuICAgICAgICAgICAgaWYgKHN0YXRlbWVudC5leHByZXNzaW9uLnR5cGUgIT09IFN5bnRheC5MaXRlcmFsKSB7XG4gICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBub3QgZGlyZWN0aXZlXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkaXJlY3RpdmUgPSBzb3VyY2Uuc2xpY2UodG9rZW4uc3RhcnQgKyAxLCB0b2tlbi5lbmQgLSAxKTtcbiAgICAgICAgICAgIGlmIChkaXJlY3RpdmUgPT09ICd1c2Ugc3RyaWN0Jykge1xuICAgICAgICAgICAgICAgIHN0cmljdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKGZpcnN0UmVzdHJpY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICB0b2xlcmF0ZVVuZXhwZWN0ZWRUb2tlbihmaXJzdFJlc3RyaWN0ZWQsIE1lc3NhZ2VzLlN0cmljdE9jdGFsTGl0ZXJhbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIWZpcnN0UmVzdHJpY3RlZCAmJiB0b2tlbi5vY3RhbCkge1xuICAgICAgICAgICAgICAgICAgICBmaXJzdFJlc3RyaWN0ZWQgPSB0b2tlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB3aGlsZSAoc3RhcnRJbmRleCA8IGxlbmd0aCkge1xuICAgICAgICAgICAgc3RhdGVtZW50ID0gcGFyc2VTdGF0ZW1lbnRMaXN0SXRlbSgpO1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgICAgICBpZiAodHlwZW9mIHN0YXRlbWVudCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJvZHkucHVzaChzdGF0ZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBib2R5O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlUHJvZ3JhbSgpIHtcbiAgICAgICAgdmFyIGJvZHksIG5vZGU7XG5cbiAgICAgICAgcGVlaygpO1xuICAgICAgICBub2RlID0gbmV3IE5vZGUoKTtcblxuICAgICAgICBib2R5ID0gcGFyc2VTY3JpcHRCb2R5KCk7XG4gICAgICAgIHJldHVybiBub2RlLmZpbmlzaFByb2dyYW0oYm9keSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZmlsdGVyVG9rZW5Mb2NhdGlvbigpIHtcbiAgICAgICAgdmFyIGksIGVudHJ5LCB0b2tlbiwgdG9rZW5zID0gW107XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGV4dHJhLnRva2Vucy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgZW50cnkgPSBleHRyYS50b2tlbnNbaV07XG4gICAgICAgICAgICB0b2tlbiA9IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBlbnRyeS50eXBlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBlbnRyeS52YWx1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChlbnRyeS5yZWdleCkge1xuICAgICAgICAgICAgICAgIHRva2VuLnJlZ2V4ID0ge1xuICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuOiBlbnRyeS5yZWdleC5wYXR0ZXJuLFxuICAgICAgICAgICAgICAgICAgICBmbGFnczogZW50cnkucmVnZXguZmxhZ3NcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGV4dHJhLnJhbmdlKSB7XG4gICAgICAgICAgICAgICAgdG9rZW4ucmFuZ2UgPSBlbnRyeS5yYW5nZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChleHRyYS5sb2MpIHtcbiAgICAgICAgICAgICAgICB0b2tlbi5sb2MgPSBlbnRyeS5sb2M7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0b2tlbnMucHVzaCh0b2tlbik7XG4gICAgICAgIH1cblxuICAgICAgICBleHRyYS50b2tlbnMgPSB0b2tlbnM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9rZW5pemUoY29kZSwgb3B0aW9ucykge1xuICAgICAgICB2YXIgdG9TdHJpbmcsXG4gICAgICAgICAgICB0b2tlbnM7XG5cbiAgICAgICAgdG9TdHJpbmcgPSBTdHJpbmc7XG4gICAgICAgIGlmICh0eXBlb2YgY29kZSAhPT0gJ3N0cmluZycgJiYgIShjb2RlIGluc3RhbmNlb2YgU3RyaW5nKSkge1xuICAgICAgICAgICAgY29kZSA9IHRvU3RyaW5nKGNvZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgc291cmNlID0gY29kZTtcbiAgICAgICAgaW5kZXggPSAwO1xuICAgICAgICBsaW5lTnVtYmVyID0gKHNvdXJjZS5sZW5ndGggPiAwKSA/IDEgOiAwO1xuICAgICAgICBsaW5lU3RhcnQgPSAwO1xuICAgICAgICBzdGFydEluZGV4ID0gaW5kZXg7XG4gICAgICAgIHN0YXJ0TGluZU51bWJlciA9IGxpbmVOdW1iZXI7XG4gICAgICAgIHN0YXJ0TGluZVN0YXJ0ID0gbGluZVN0YXJ0O1xuICAgICAgICBsZW5ndGggPSBzb3VyY2UubGVuZ3RoO1xuICAgICAgICBsb29rYWhlYWQgPSBudWxsO1xuICAgICAgICBzdGF0ZSA9IHtcbiAgICAgICAgICAgIGFsbG93SW46IHRydWUsXG4gICAgICAgICAgICBsYWJlbFNldDoge30sXG4gICAgICAgICAgICBpbkZ1bmN0aW9uQm9keTogZmFsc2UsXG4gICAgICAgICAgICBpbkl0ZXJhdGlvbjogZmFsc2UsXG4gICAgICAgICAgICBpblN3aXRjaDogZmFsc2UsXG4gICAgICAgICAgICBsYXN0Q29tbWVudFN0YXJ0OiAtMSxcbiAgICAgICAgICAgIGN1cmx5U3RhY2s6IFtdXG4gICAgICAgIH07XG5cbiAgICAgICAgZXh0cmEgPSB7fTtcblxuICAgICAgICAvLyBPcHRpb25zIG1hdGNoaW5nLlxuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAgICAgICAvLyBPZiBjb3Vyc2Ugd2UgY29sbGVjdCB0b2tlbnMgaGVyZS5cbiAgICAgICAgb3B0aW9ucy50b2tlbnMgPSB0cnVlO1xuICAgICAgICBleHRyYS50b2tlbnMgPSBbXTtcbiAgICAgICAgZXh0cmEudG9rZW5pemUgPSB0cnVlO1xuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIHR3byBmaWVsZHMgYXJlIG5lY2Vzc2FyeSB0byBjb21wdXRlIHRoZSBSZWdleCB0b2tlbnMuXG4gICAgICAgIGV4dHJhLm9wZW5QYXJlblRva2VuID0gLTE7XG4gICAgICAgIGV4dHJhLm9wZW5DdXJseVRva2VuID0gLTE7XG5cbiAgICAgICAgZXh0cmEucmFuZ2UgPSAodHlwZW9mIG9wdGlvbnMucmFuZ2UgPT09ICdib29sZWFuJykgJiYgb3B0aW9ucy5yYW5nZTtcbiAgICAgICAgZXh0cmEubG9jID0gKHR5cGVvZiBvcHRpb25zLmxvYyA9PT0gJ2Jvb2xlYW4nKSAmJiBvcHRpb25zLmxvYztcblxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuY29tbWVudCA9PT0gJ2Jvb2xlYW4nICYmIG9wdGlvbnMuY29tbWVudCkge1xuICAgICAgICAgICAgZXh0cmEuY29tbWVudHMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMudG9sZXJhbnQgPT09ICdib29sZWFuJyAmJiBvcHRpb25zLnRvbGVyYW50KSB7XG4gICAgICAgICAgICBleHRyYS5lcnJvcnMgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBwZWVrKCk7XG4gICAgICAgICAgICBpZiAobG9va2FoZWFkLnR5cGUgPT09IFRva2VuLkVPRikge1xuICAgICAgICAgICAgICAgIHJldHVybiBleHRyYS50b2tlbnM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxleCgpO1xuICAgICAgICAgICAgd2hpbGUgKGxvb2thaGVhZC50eXBlICE9PSBUb2tlbi5FT0YpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBsZXgoKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChsZXhFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXh0cmEuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWNvcmRFcnJvcihsZXhFcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGJyZWFrIG9uIHRoZSBmaXJzdCBlcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gYXZvaWQgaW5maW5pdGUgbG9vcHMuXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGxleEVycm9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmaWx0ZXJUb2tlbkxvY2F0aW9uKCk7XG4gICAgICAgICAgICB0b2tlbnMgPSBleHRyYS50b2tlbnM7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhLmNvbW1lbnRzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHRva2Vucy5jb21tZW50cyA9IGV4dHJhLmNvbW1lbnRzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBleHRyYS5lcnJvcnMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgdG9rZW5zLmVycm9ycyA9IGV4dHJhLmVycm9ycztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGV4dHJhID0ge307XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRva2VucztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZShjb2RlLCBvcHRpb25zKSB7XG4gICAgICAgIHZhciBwcm9ncmFtLCB0b1N0cmluZztcblxuICAgICAgICB0b1N0cmluZyA9IFN0cmluZztcbiAgICAgICAgaWYgKHR5cGVvZiBjb2RlICE9PSAnc3RyaW5nJyAmJiAhKGNvZGUgaW5zdGFuY2VvZiBTdHJpbmcpKSB7XG4gICAgICAgICAgICBjb2RlID0gdG9TdHJpbmcoY29kZSk7XG4gICAgICAgIH1cblxuICAgICAgICBzb3VyY2UgPSBjb2RlO1xuICAgICAgICBpbmRleCA9IDA7XG4gICAgICAgIGxpbmVOdW1iZXIgPSAoc291cmNlLmxlbmd0aCA+IDApID8gMSA6IDA7XG4gICAgICAgIGxpbmVTdGFydCA9IDA7XG4gICAgICAgIHN0YXJ0SW5kZXggPSBpbmRleDtcbiAgICAgICAgc3RhcnRMaW5lTnVtYmVyID0gbGluZU51bWJlcjtcbiAgICAgICAgc3RhcnRMaW5lU3RhcnQgPSBsaW5lU3RhcnQ7XG4gICAgICAgIGxlbmd0aCA9IHNvdXJjZS5sZW5ndGg7XG4gICAgICAgIGxvb2thaGVhZCA9IG51bGw7XG4gICAgICAgIHN0YXRlID0ge1xuICAgICAgICAgICAgYWxsb3dJbjogdHJ1ZSxcbiAgICAgICAgICAgIGxhYmVsU2V0OiB7fSxcbiAgICAgICAgICAgIGluRnVuY3Rpb25Cb2R5OiBmYWxzZSxcbiAgICAgICAgICAgIGluSXRlcmF0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgIGluU3dpdGNoOiBmYWxzZSxcbiAgICAgICAgICAgIGxhc3RDb21tZW50U3RhcnQ6IC0xLFxuICAgICAgICAgICAgY3VybHlTdGFjazogW11cbiAgICAgICAgfTtcbiAgICAgICAgc291cmNlVHlwZSA9ICdzY3JpcHQnO1xuICAgICAgICBzdHJpY3QgPSBmYWxzZTtcblxuICAgICAgICBleHRyYSA9IHt9O1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBleHRyYS5yYW5nZSA9ICh0eXBlb2Ygb3B0aW9ucy5yYW5nZSA9PT0gJ2Jvb2xlYW4nKSAmJiBvcHRpb25zLnJhbmdlO1xuICAgICAgICAgICAgZXh0cmEubG9jID0gKHR5cGVvZiBvcHRpb25zLmxvYyA9PT0gJ2Jvb2xlYW4nKSAmJiBvcHRpb25zLmxvYztcbiAgICAgICAgICAgIGV4dHJhLmF0dGFjaENvbW1lbnQgPSAodHlwZW9mIG9wdGlvbnMuYXR0YWNoQ29tbWVudCA9PT0gJ2Jvb2xlYW4nKSAmJiBvcHRpb25zLmF0dGFjaENvbW1lbnQ7XG5cbiAgICAgICAgICAgIGlmIChleHRyYS5sb2MgJiYgb3B0aW9ucy5zb3VyY2UgIT09IG51bGwgJiYgb3B0aW9ucy5zb3VyY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGV4dHJhLnNvdXJjZSA9IHRvU3RyaW5nKG9wdGlvbnMuc291cmNlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLnRva2VucyA9PT0gJ2Jvb2xlYW4nICYmIG9wdGlvbnMudG9rZW5zKSB7XG4gICAgICAgICAgICAgICAgZXh0cmEudG9rZW5zID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMuY29tbWVudCA9PT0gJ2Jvb2xlYW4nICYmIG9wdGlvbnMuY29tbWVudCkge1xuICAgICAgICAgICAgICAgIGV4dHJhLmNvbW1lbnRzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMudG9sZXJhbnQgPT09ICdib29sZWFuJyAmJiBvcHRpb25zLnRvbGVyYW50KSB7XG4gICAgICAgICAgICAgICAgZXh0cmEuZXJyb3JzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXh0cmEuYXR0YWNoQ29tbWVudCkge1xuICAgICAgICAgICAgICAgIGV4dHJhLnJhbmdlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBleHRyYS5jb21tZW50cyA9IFtdO1xuICAgICAgICAgICAgICAgIGV4dHJhLmJvdHRvbVJpZ2h0U3RhY2sgPSBbXTtcbiAgICAgICAgICAgICAgICBleHRyYS50cmFpbGluZ0NvbW1lbnRzID0gW107XG4gICAgICAgICAgICAgICAgZXh0cmEubGVhZGluZ0NvbW1lbnRzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5zb3VyY2VUeXBlID09PSAnbW9kdWxlJykge1xuICAgICAgICAgICAgICAgIC8vIHZlcnkgcmVzdHJpY3RpdmUgY29uZGl0aW9uIGZvciBub3dcbiAgICAgICAgICAgICAgICBzb3VyY2VUeXBlID0gb3B0aW9ucy5zb3VyY2VUeXBlO1xuICAgICAgICAgICAgICAgIHN0cmljdCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcHJvZ3JhbSA9IHBhcnNlUHJvZ3JhbSgpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBleHRyYS5jb21tZW50cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBwcm9ncmFtLmNvbW1lbnRzID0gZXh0cmEuY29tbWVudHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhLnRva2VucyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJUb2tlbkxvY2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgcHJvZ3JhbS50b2tlbnMgPSBleHRyYS50b2tlbnM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIGV4dHJhLmVycm9ycyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBwcm9ncmFtLmVycm9ycyA9IGV4dHJhLmVycm9ycztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGV4dHJhID0ge307XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcHJvZ3JhbTtcbiAgICB9XG5cbiAgICAvLyBTeW5jIHdpdGggKi5qc29uIG1hbmlmZXN0cy5cbiAgICBleHBvcnRzLnZlcnNpb24gPSAnMi4yLjAnO1xuXG4gICAgZXhwb3J0cy50b2tlbml6ZSA9IHRva2VuaXplO1xuXG4gICAgZXhwb3J0cy5wYXJzZSA9IHBhcnNlO1xuXG4gICAgLy8gRGVlcCBjb3B5LlxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgZXhwb3J0cy5TeW50YXggPSAoZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbmFtZSwgdHlwZXMgPSB7fTtcblxuICAgICAgICBpZiAodHlwZW9mIE9iamVjdC5jcmVhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHR5cGVzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobmFtZSBpbiBTeW50YXgpIHtcbiAgICAgICAgICAgIGlmIChTeW50YXguaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgICAgICAgICB0eXBlc1tuYW1lXSA9IFN5bnRheFtuYW1lXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgT2JqZWN0LmZyZWV6ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgT2JqZWN0LmZyZWV6ZSh0eXBlcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHlwZXM7XG4gICAgfSgpKTtcblxufSkpO1xuLyogdmltOiBzZXQgc3c9NCB0cz00IGV0IHR3PTgwIDogKi9cbiIsInZhciBiYXNlSW5kZXhPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2Jhc2VJbmRleE9mJyksXG4gICAgYmluYXJ5SW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9iaW5hcnlJbmRleCcpO1xuXG4vKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1heCA9IE1hdGgubWF4O1xuXG4vKipcbiAqIEdldHMgdGhlIGluZGV4IGF0IHdoaWNoIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGB2YWx1ZWAgaXMgZm91bmQgaW4gYGFycmF5YFxuICogdXNpbmcgW2BTYW1lVmFsdWVaZXJvYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtc2FtZXZhbHVlemVybylcbiAqIGZvciBlcXVhbGl0eSBjb21wYXJpc29ucy4gSWYgYGZyb21JbmRleGAgaXMgbmVnYXRpdmUsIGl0IGlzIHVzZWQgYXMgdGhlIG9mZnNldFxuICogZnJvbSB0aGUgZW5kIG9mIGBhcnJheWAuIElmIGBhcnJheWAgaXMgc29ydGVkIHByb3ZpZGluZyBgdHJ1ZWAgZm9yIGBmcm9tSW5kZXhgXG4gKiBwZXJmb3JtcyBhIGZhc3RlciBiaW5hcnkgc2VhcmNoLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgQXJyYXlcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzZWFyY2guXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBzZWFyY2ggZm9yLlxuICogQHBhcmFtIHtib29sZWFufG51bWJlcn0gW2Zyb21JbmRleD0wXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20gb3IgYHRydWVgXG4gKiAgdG8gcGVyZm9ybSBhIGJpbmFyeSBzZWFyY2ggb24gYSBzb3J0ZWQgYXJyYXkuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmluZGV4T2YoWzEsIDIsIDEsIDJdLCAyKTtcbiAqIC8vID0+IDFcbiAqXG4gKiAvLyB1c2luZyBgZnJvbUluZGV4YFxuICogXy5pbmRleE9mKFsxLCAyLCAxLCAyXSwgMiwgMik7XG4gKiAvLyA9PiAzXG4gKlxuICogLy8gcGVyZm9ybWluZyBhIGJpbmFyeSBzZWFyY2hcbiAqIF8uaW5kZXhPZihbMSwgMSwgMiwgMl0sIDIsIHRydWUpO1xuICogLy8gPT4gMlxuICovXG5mdW5jdGlvbiBpbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDA7XG4gIGlmICghbGVuZ3RoKSB7XG4gICAgcmV0dXJuIC0xO1xuICB9XG4gIGlmICh0eXBlb2YgZnJvbUluZGV4ID09ICdudW1iZXInKSB7XG4gICAgZnJvbUluZGV4ID0gZnJvbUluZGV4IDwgMCA/IG5hdGl2ZU1heChsZW5ndGggKyBmcm9tSW5kZXgsIDApIDogZnJvbUluZGV4O1xuICB9IGVsc2UgaWYgKGZyb21JbmRleCkge1xuICAgIHZhciBpbmRleCA9IGJpbmFyeUluZGV4KGFycmF5LCB2YWx1ZSk7XG4gICAgaWYgKGluZGV4IDwgbGVuZ3RoICYmXG4gICAgICAgICh2YWx1ZSA9PT0gdmFsdWUgPyAodmFsdWUgPT09IGFycmF5W2luZGV4XSkgOiAoYXJyYXlbaW5kZXhdICE9PSBhcnJheVtpbmRleF0pKSkge1xuICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cbiAgICByZXR1cm4gLTE7XG4gIH1cbiAgcmV0dXJuIGJhc2VJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4IHx8IDApO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluZGV4T2Y7XG4iLCIvKipcbiAqIEdldHMgdGhlIGxhc3QgZWxlbWVudCBvZiBgYXJyYXlgLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgQXJyYXlcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBsYXN0IGVsZW1lbnQgb2YgYGFycmF5YC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5sYXN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiAzXG4gKi9cbmZ1bmN0aW9uIGxhc3QoYXJyYXkpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMDtcbiAgcmV0dXJuIGxlbmd0aCA/IGFycmF5W2xlbmd0aCAtIDFdIDogdW5kZWZpbmVkO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGxhc3Q7XG4iLCJ2YXIgTGF6eVdyYXBwZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9MYXp5V3JhcHBlcicpLFxuICAgIExvZGFzaFdyYXBwZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9Mb2Rhc2hXcmFwcGVyJyksXG4gICAgYmFzZUxvZGFzaCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2Jhc2VMb2Rhc2gnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FycmF5JyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNPYmplY3RMaWtlJyksXG4gICAgd3JhcHBlckNsb25lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvd3JhcHBlckNsb25lJyk7XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBgbG9kYXNoYCBvYmplY3Qgd2hpY2ggd3JhcHMgYHZhbHVlYCB0byBlbmFibGUgaW1wbGljaXQgY2hhaW5pbmcuXG4gKiBNZXRob2RzIHRoYXQgb3BlcmF0ZSBvbiBhbmQgcmV0dXJuIGFycmF5cywgY29sbGVjdGlvbnMsIGFuZCBmdW5jdGlvbnMgY2FuXG4gKiBiZSBjaGFpbmVkIHRvZ2V0aGVyLiBNZXRob2RzIHRoYXQgcmV0cmlldmUgYSBzaW5nbGUgdmFsdWUgb3IgbWF5IHJldHVybiBhXG4gKiBwcmltaXRpdmUgdmFsdWUgd2lsbCBhdXRvbWF0aWNhbGx5IGVuZCB0aGUgY2hhaW4gcmV0dXJuaW5nIHRoZSB1bndyYXBwZWRcbiAqIHZhbHVlLiBFeHBsaWNpdCBjaGFpbmluZyBtYXkgYmUgZW5hYmxlZCB1c2luZyBgXy5jaGFpbmAuIFRoZSBleGVjdXRpb24gb2ZcbiAqIGNoYWluZWQgbWV0aG9kcyBpcyBsYXp5LCB0aGF0IGlzLCBleGVjdXRpb24gaXMgZGVmZXJyZWQgdW50aWwgYF8jdmFsdWVgXG4gKiBpcyBpbXBsaWNpdGx5IG9yIGV4cGxpY2l0bHkgY2FsbGVkLlxuICpcbiAqIExhenkgZXZhbHVhdGlvbiBhbGxvd3Mgc2V2ZXJhbCBtZXRob2RzIHRvIHN1cHBvcnQgc2hvcnRjdXQgZnVzaW9uLiBTaG9ydGN1dFxuICogZnVzaW9uIGlzIGFuIG9wdGltaXphdGlvbiBzdHJhdGVneSB3aGljaCBtZXJnZSBpdGVyYXRlZSBjYWxsczsgdGhpcyBjYW4gaGVscFxuICogdG8gYXZvaWQgdGhlIGNyZWF0aW9uIG9mIGludGVybWVkaWF0ZSBkYXRhIHN0cnVjdHVyZXMgYW5kIGdyZWF0bHkgcmVkdWNlIHRoZVxuICogbnVtYmVyIG9mIGl0ZXJhdGVlIGV4ZWN1dGlvbnMuXG4gKlxuICogQ2hhaW5pbmcgaXMgc3VwcG9ydGVkIGluIGN1c3RvbSBidWlsZHMgYXMgbG9uZyBhcyB0aGUgYF8jdmFsdWVgIG1ldGhvZCBpc1xuICogZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBpbmNsdWRlZCBpbiB0aGUgYnVpbGQuXG4gKlxuICogSW4gYWRkaXRpb24gdG8gbG9kYXNoIG1ldGhvZHMsIHdyYXBwZXJzIGhhdmUgYEFycmF5YCBhbmQgYFN0cmluZ2AgbWV0aG9kcy5cbiAqXG4gKiBUaGUgd3JhcHBlciBgQXJyYXlgIG1ldGhvZHMgYXJlOlxuICogYGNvbmNhdGAsIGBqb2luYCwgYHBvcGAsIGBwdXNoYCwgYHJldmVyc2VgLCBgc2hpZnRgLCBgc2xpY2VgLCBgc29ydGAsXG4gKiBgc3BsaWNlYCwgYW5kIGB1bnNoaWZ0YFxuICpcbiAqIFRoZSB3cmFwcGVyIGBTdHJpbmdgIG1ldGhvZHMgYXJlOlxuICogYHJlcGxhY2VgIGFuZCBgc3BsaXRgXG4gKlxuICogVGhlIHdyYXBwZXIgbWV0aG9kcyB0aGF0IHN1cHBvcnQgc2hvcnRjdXQgZnVzaW9uIGFyZTpcbiAqIGBjb21wYWN0YCwgYGRyb3BgLCBgZHJvcFJpZ2h0YCwgYGRyb3BSaWdodFdoaWxlYCwgYGRyb3BXaGlsZWAsIGBmaWx0ZXJgLFxuICogYGZpcnN0YCwgYGluaXRpYWxgLCBgbGFzdGAsIGBtYXBgLCBgcGx1Y2tgLCBgcmVqZWN0YCwgYHJlc3RgLCBgcmV2ZXJzZWAsXG4gKiBgc2xpY2VgLCBgdGFrZWAsIGB0YWtlUmlnaHRgLCBgdGFrZVJpZ2h0V2hpbGVgLCBgdGFrZVdoaWxlYCwgYHRvQXJyYXlgLFxuICogYW5kIGB3aGVyZWBcbiAqXG4gKiBUaGUgY2hhaW5hYmxlIHdyYXBwZXIgbWV0aG9kcyBhcmU6XG4gKiBgYWZ0ZXJgLCBgYXJ5YCwgYGFzc2lnbmAsIGBhdGAsIGBiZWZvcmVgLCBgYmluZGAsIGBiaW5kQWxsYCwgYGJpbmRLZXlgLFxuICogYGNhbGxiYWNrYCwgYGNoYWluYCwgYGNodW5rYCwgYGNvbW1pdGAsIGBjb21wYWN0YCwgYGNvbmNhdGAsIGBjb25zdGFudGAsXG4gKiBgY291bnRCeWAsIGBjcmVhdGVgLCBgY3VycnlgLCBgZGVib3VuY2VgLCBgZGVmYXVsdHNgLCBgZGVmYXVsdHNEZWVwYCxcbiAqIGBkZWZlcmAsIGBkZWxheWAsIGBkaWZmZXJlbmNlYCwgYGRyb3BgLCBgZHJvcFJpZ2h0YCwgYGRyb3BSaWdodFdoaWxlYCxcbiAqIGBkcm9wV2hpbGVgLCBgZmlsbGAsIGBmaWx0ZXJgLCBgZmxhdHRlbmAsIGBmbGF0dGVuRGVlcGAsIGBmbG93YCwgYGZsb3dSaWdodGAsXG4gKiBgZm9yRWFjaGAsIGBmb3JFYWNoUmlnaHRgLCBgZm9ySW5gLCBgZm9ySW5SaWdodGAsIGBmb3JPd25gLCBgZm9yT3duUmlnaHRgLFxuICogYGZ1bmN0aW9uc2AsIGBncm91cEJ5YCwgYGluZGV4QnlgLCBgaW5pdGlhbGAsIGBpbnRlcnNlY3Rpb25gLCBgaW52ZXJ0YCxcbiAqIGBpbnZva2VgLCBga2V5c2AsIGBrZXlzSW5gLCBgbWFwYCwgYG1hcEtleXNgLCBgbWFwVmFsdWVzYCwgYG1hdGNoZXNgLFxuICogYG1hdGNoZXNQcm9wZXJ0eWAsIGBtZW1vaXplYCwgYG1lcmdlYCwgYG1ldGhvZGAsIGBtZXRob2RPZmAsIGBtaXhpbmAsXG4gKiBgbW9kQXJnc2AsIGBuZWdhdGVgLCBgb21pdGAsIGBvbmNlYCwgYHBhaXJzYCwgYHBhcnRpYWxgLCBgcGFydGlhbFJpZ2h0YCxcbiAqIGBwYXJ0aXRpb25gLCBgcGlja2AsIGBwbGFudGAsIGBwbHVja2AsIGBwcm9wZXJ0eWAsIGBwcm9wZXJ0eU9mYCwgYHB1bGxgLFxuICogYHB1bGxBdGAsIGBwdXNoYCwgYHJhbmdlYCwgYHJlYXJnYCwgYHJlamVjdGAsIGByZW1vdmVgLCBgcmVzdGAsIGByZXN0UGFyYW1gLFxuICogYHJldmVyc2VgLCBgc2V0YCwgYHNodWZmbGVgLCBgc2xpY2VgLCBgc29ydGAsIGBzb3J0QnlgLCBgc29ydEJ5QWxsYCxcbiAqIGBzb3J0QnlPcmRlcmAsIGBzcGxpY2VgLCBgc3ByZWFkYCwgYHRha2VgLCBgdGFrZVJpZ2h0YCwgYHRha2VSaWdodFdoaWxlYCxcbiAqIGB0YWtlV2hpbGVgLCBgdGFwYCwgYHRocm90dGxlYCwgYHRocnVgLCBgdGltZXNgLCBgdG9BcnJheWAsIGB0b1BsYWluT2JqZWN0YCxcbiAqIGB0cmFuc2Zvcm1gLCBgdW5pb25gLCBgdW5pcWAsIGB1bnNoaWZ0YCwgYHVuemlwYCwgYHVuemlwV2l0aGAsIGB2YWx1ZXNgLFxuICogYHZhbHVlc0luYCwgYHdoZXJlYCwgYHdpdGhvdXRgLCBgd3JhcGAsIGB4b3JgLCBgemlwYCwgYHppcE9iamVjdGAsIGB6aXBXaXRoYFxuICpcbiAqIFRoZSB3cmFwcGVyIG1ldGhvZHMgdGhhdCBhcmUgKipub3QqKiBjaGFpbmFibGUgYnkgZGVmYXVsdCBhcmU6XG4gKiBgYWRkYCwgYGF0dGVtcHRgLCBgY2FtZWxDYXNlYCwgYGNhcGl0YWxpemVgLCBgY2VpbGAsIGBjbG9uZWAsIGBjbG9uZURlZXBgLFxuICogYGRlYnVycmAsIGBlbmRzV2l0aGAsIGBlc2NhcGVgLCBgZXNjYXBlUmVnRXhwYCwgYGV2ZXJ5YCwgYGZpbmRgLCBgZmluZEluZGV4YCxcbiAqIGBmaW5kS2V5YCwgYGZpbmRMYXN0YCwgYGZpbmRMYXN0SW5kZXhgLCBgZmluZExhc3RLZXlgLCBgZmluZFdoZXJlYCwgYGZpcnN0YCxcbiAqIGBmbG9vcmAsIGBnZXRgLCBgZ3RgLCBgZ3RlYCwgYGhhc2AsIGBpZGVudGl0eWAsIGBpbmNsdWRlc2AsIGBpbmRleE9mYCxcbiAqIGBpblJhbmdlYCwgYGlzQXJndW1lbnRzYCwgYGlzQXJyYXlgLCBgaXNCb29sZWFuYCwgYGlzRGF0ZWAsIGBpc0VsZW1lbnRgLFxuICogYGlzRW1wdHlgLCBgaXNFcXVhbGAsIGBpc0Vycm9yYCwgYGlzRmluaXRlYCBgaXNGdW5jdGlvbmAsIGBpc01hdGNoYCxcbiAqIGBpc05hdGl2ZWAsIGBpc05hTmAsIGBpc051bGxgLCBgaXNOdW1iZXJgLCBgaXNPYmplY3RgLCBgaXNQbGFpbk9iamVjdGAsXG4gKiBgaXNSZWdFeHBgLCBgaXNTdHJpbmdgLCBgaXNVbmRlZmluZWRgLCBgaXNUeXBlZEFycmF5YCwgYGpvaW5gLCBga2ViYWJDYXNlYCxcbiAqIGBsYXN0YCwgYGxhc3RJbmRleE9mYCwgYGx0YCwgYGx0ZWAsIGBtYXhgLCBgbWluYCwgYG5vQ29uZmxpY3RgLCBgbm9vcGAsXG4gKiBgbm93YCwgYHBhZGAsIGBwYWRMZWZ0YCwgYHBhZFJpZ2h0YCwgYHBhcnNlSW50YCwgYHBvcGAsIGByYW5kb21gLCBgcmVkdWNlYCxcbiAqIGByZWR1Y2VSaWdodGAsIGByZXBlYXRgLCBgcmVzdWx0YCwgYHJvdW5kYCwgYHJ1bkluQ29udGV4dGAsIGBzaGlmdGAsIGBzaXplYCxcbiAqIGBzbmFrZUNhc2VgLCBgc29tZWAsIGBzb3J0ZWRJbmRleGAsIGBzb3J0ZWRMYXN0SW5kZXhgLCBgc3RhcnRDYXNlYCxcbiAqIGBzdGFydHNXaXRoYCwgYHN1bWAsIGB0ZW1wbGF0ZWAsIGB0cmltYCwgYHRyaW1MZWZ0YCwgYHRyaW1SaWdodGAsIGB0cnVuY2AsXG4gKiBgdW5lc2NhcGVgLCBgdW5pcXVlSWRgLCBgdmFsdWVgLCBhbmQgYHdvcmRzYFxuICpcbiAqIFRoZSB3cmFwcGVyIG1ldGhvZCBgc2FtcGxlYCB3aWxsIHJldHVybiBhIHdyYXBwZWQgdmFsdWUgd2hlbiBgbmAgaXMgcHJvdmlkZWQsXG4gKiBvdGhlcndpc2UgYW4gdW53cmFwcGVkIHZhbHVlIGlzIHJldHVybmVkLlxuICpcbiAqIEBuYW1lIF9cbiAqIEBjb25zdHJ1Y3RvclxuICogQGNhdGVnb3J5IENoYWluXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byB3cmFwIGluIGEgYGxvZGFzaGAgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBuZXcgYGxvZGFzaGAgd3JhcHBlciBpbnN0YW5jZS5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIHdyYXBwZWQgPSBfKFsxLCAyLCAzXSk7XG4gKlxuICogLy8gcmV0dXJucyBhbiB1bndyYXBwZWQgdmFsdWVcbiAqIHdyYXBwZWQucmVkdWNlKGZ1bmN0aW9uKHRvdGFsLCBuKSB7XG4gKiAgIHJldHVybiB0b3RhbCArIG47XG4gKiB9KTtcbiAqIC8vID0+IDZcbiAqXG4gKiAvLyByZXR1cm5zIGEgd3JhcHBlZCB2YWx1ZVxuICogdmFyIHNxdWFyZXMgPSB3cmFwcGVkLm1hcChmdW5jdGlvbihuKSB7XG4gKiAgIHJldHVybiBuICogbjtcbiAqIH0pO1xuICpcbiAqIF8uaXNBcnJheShzcXVhcmVzKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc0FycmF5KHNxdWFyZXMudmFsdWUoKSk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGxvZGFzaCh2YWx1ZSkge1xuICBpZiAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiAhaXNBcnJheSh2YWx1ZSkgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIExhenlXcmFwcGVyKSkge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIExvZGFzaFdyYXBwZXIpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdfX2NoYWluX18nKSAmJiBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnX193cmFwcGVkX18nKSkge1xuICAgICAgcmV0dXJuIHdyYXBwZXJDbG9uZSh2YWx1ZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBuZXcgTG9kYXNoV3JhcHBlcih2YWx1ZSk7XG59XG5cbi8vIEVuc3VyZSB3cmFwcGVycyBhcmUgaW5zdGFuY2VzIG9mIGBiYXNlTG9kYXNoYC5cbmxvZGFzaC5wcm90b3R5cGUgPSBiYXNlTG9kYXNoLnByb3RvdHlwZTtcblxubW9kdWxlLmV4cG9ydHMgPSBsb2Rhc2g7XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZm9yRWFjaCcpO1xuIiwidmFyIGJhc2VFYWNoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYmFzZUVhY2gnKSxcbiAgICBjcmVhdGVGaW5kID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvY3JlYXRlRmluZCcpO1xuXG4vKipcbiAqIEl0ZXJhdGVzIG92ZXIgZWxlbWVudHMgb2YgYGNvbGxlY3Rpb25gLCByZXR1cm5pbmcgdGhlIGZpcnN0IGVsZW1lbnRcbiAqIGBwcmVkaWNhdGVgIHJldHVybnMgdHJ1dGh5IGZvci4gVGhlIHByZWRpY2F0ZSBpcyBib3VuZCB0byBgdGhpc0FyZ2AgYW5kXG4gKiBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGluZGV4fGtleSwgY29sbGVjdGlvbikuXG4gKlxuICogSWYgYSBwcm9wZXJ0eSBuYW1lIGlzIHByb3ZpZGVkIGZvciBgcHJlZGljYXRlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICpcbiAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBwcm9wZXJ0eVxuICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAqXG4gKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGBwcmVkaWNhdGVgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNgIHN0eWxlXG4gKiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBnaXZlblxuICogb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBhbGlhcyBkZXRlY3RcbiAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2VhcmNoLlxuICogQHBhcmFtIHtGdW5jdGlvbnxPYmplY3R8c3RyaW5nfSBbcHJlZGljYXRlPV8uaWRlbnRpdHldIFRoZSBmdW5jdGlvbiBpbnZva2VkXG4gKiAgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgcHJlZGljYXRlYC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBtYXRjaGVkIGVsZW1lbnQsIGVsc2UgYHVuZGVmaW5lZGAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciB1c2VycyA9IFtcbiAqICAgeyAndXNlcic6ICdiYXJuZXknLCAgJ2FnZSc6IDM2LCAnYWN0aXZlJzogdHJ1ZSB9LFxuICogICB7ICd1c2VyJzogJ2ZyZWQnLCAgICAnYWdlJzogNDAsICdhY3RpdmUnOiBmYWxzZSB9LFxuICogICB7ICd1c2VyJzogJ3BlYmJsZXMnLCAnYWdlJzogMSwgICdhY3RpdmUnOiB0cnVlIH1cbiAqIF07XG4gKlxuICogXy5yZXN1bHQoXy5maW5kKHVzZXJzLCBmdW5jdGlvbihjaHIpIHtcbiAqICAgcmV0dXJuIGNoci5hZ2UgPCA0MDtcbiAqIH0pLCAndXNlcicpO1xuICogLy8gPT4gJ2Jhcm5leSdcbiAqXG4gKiAvLyB1c2luZyB0aGUgYF8ubWF0Y2hlc2AgY2FsbGJhY2sgc2hvcnRoYW5kXG4gKiBfLnJlc3VsdChfLmZpbmQodXNlcnMsIHsgJ2FnZSc6IDEsICdhY3RpdmUnOiB0cnVlIH0pLCAndXNlcicpO1xuICogLy8gPT4gJ3BlYmJsZXMnXG4gKlxuICogLy8gdXNpbmcgdGhlIGBfLm1hdGNoZXNQcm9wZXJ0eWAgY2FsbGJhY2sgc2hvcnRoYW5kXG4gKiBfLnJlc3VsdChfLmZpbmQodXNlcnMsICdhY3RpdmUnLCBmYWxzZSksICd1c2VyJyk7XG4gKiAvLyA9PiAnZnJlZCdcbiAqXG4gKiAvLyB1c2luZyB0aGUgYF8ucHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICogXy5yZXN1bHQoXy5maW5kKHVzZXJzLCAnYWN0aXZlJyksICd1c2VyJyk7XG4gKiAvLyA9PiAnYmFybmV5J1xuICovXG52YXIgZmluZCA9IGNyZWF0ZUZpbmQoYmFzZUVhY2gpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZpbmQ7XG4iLCJ2YXIgYXJyYXlFYWNoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYXJyYXlFYWNoJyksXG4gICAgYmFzZUVhY2ggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9iYXNlRWFjaCcpLFxuICAgIGNyZWF0ZUZvckVhY2ggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9jcmVhdGVGb3JFYWNoJyk7XG5cbi8qKlxuICogSXRlcmF0ZXMgb3ZlciBlbGVtZW50cyBvZiBgY29sbGVjdGlvbmAgaW52b2tpbmcgYGl0ZXJhdGVlYCBmb3IgZWFjaCBlbGVtZW50LlxuICogVGhlIGBpdGVyYXRlZWAgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOlxuICogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLiBJdGVyYXRlZSBmdW5jdGlvbnMgbWF5IGV4aXQgaXRlcmF0aW9uIGVhcmx5XG4gKiBieSBleHBsaWNpdGx5IHJldHVybmluZyBgZmFsc2VgLlxuICpcbiAqICoqTm90ZToqKiBBcyB3aXRoIG90aGVyIFwiQ29sbGVjdGlvbnNcIiBtZXRob2RzLCBvYmplY3RzIHdpdGggYSBcImxlbmd0aFwiIHByb3BlcnR5XG4gKiBhcmUgaXRlcmF0ZWQgbGlrZSBhcnJheXMuIFRvIGF2b2lkIHRoaXMgYmVoYXZpb3IgYF8uZm9ySW5gIG9yIGBfLmZvck93bmBcbiAqIG1heSBiZSB1c2VkIGZvciBvYmplY3QgaXRlcmF0aW9uLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAYWxpYXMgZWFjaFxuICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbaXRlcmF0ZWU9Xy5pZGVudGl0eV0gVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgaXRlcmF0ZWVgLlxuICogQHJldHVybnMge0FycmF5fE9iamVjdHxzdHJpbmd9IFJldHVybnMgYGNvbGxlY3Rpb25gLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfKFsxLCAyXSkuZm9yRWFjaChmdW5jdGlvbihuKSB7XG4gKiAgIGNvbnNvbGUubG9nKG4pO1xuICogfSkudmFsdWUoKTtcbiAqIC8vID0+IGxvZ3MgZWFjaCB2YWx1ZSBmcm9tIGxlZnQgdG8gcmlnaHQgYW5kIHJldHVybnMgdGhlIGFycmF5XG4gKlxuICogXy5mb3JFYWNoKHsgJ2EnOiAxLCAnYic6IDIgfSwgZnVuY3Rpb24obiwga2V5KSB7XG4gKiAgIGNvbnNvbGUubG9nKG4sIGtleSk7XG4gKiB9KTtcbiAqIC8vID0+IGxvZ3MgZWFjaCB2YWx1ZS1rZXkgcGFpciBhbmQgcmV0dXJucyB0aGUgb2JqZWN0IChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKi9cbnZhciBmb3JFYWNoID0gY3JlYXRlRm9yRWFjaChhcnJheUVhY2gsIGJhc2VFYWNoKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmb3JFYWNoO1xuIiwidmFyIGJhc2VJbmRleE9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYmFzZUluZGV4T2YnKSxcbiAgICBnZXRMZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9nZXRMZW5ndGgnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FycmF5JyksXG4gICAgaXNJdGVyYXRlZUNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc0l0ZXJhdGVlQ2FsbCcpLFxuICAgIGlzTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNMZW5ndGgnKSxcbiAgICBpc1N0cmluZyA9IHJlcXVpcmUoJy4uL2xhbmcvaXNTdHJpbmcnKSxcbiAgICB2YWx1ZXMgPSByZXF1aXJlKCcuLi9vYmplY3QvdmFsdWVzJyk7XG5cbi8qIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWF4ID0gTWF0aC5tYXg7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgaW4gYGNvbGxlY3Rpb25gIHVzaW5nXG4gKiBbYFNhbWVWYWx1ZVplcm9gXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi82LjAvI3NlYy1zYW1ldmFsdWV6ZXJvKVxuICogZm9yIGVxdWFsaXR5IGNvbXBhcmlzb25zLiBJZiBgZnJvbUluZGV4YCBpcyBuZWdhdGl2ZSwgaXQgaXMgdXNlZCBhcyB0aGUgb2Zmc2V0XG4gKiBmcm9tIHRoZSBlbmQgb2YgYGNvbGxlY3Rpb25gLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAYWxpYXMgY29udGFpbnMsIGluY2x1ZGVcbiAqIEBjYXRlZ29yeSBDb2xsZWN0aW9uXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2VhcmNoLlxuICogQHBhcmFtIHsqfSB0YXJnZXQgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gKiBAcGFyYW0ge251bWJlcn0gW2Zyb21JbmRleD0wXSBUaGUgaW5kZXggdG8gc2VhcmNoIGZyb20uXG4gKiBAcGFyYW0tIHtPYmplY3R9IFtndWFyZF0gRW5hYmxlcyB1c2UgYXMgYSBjYWxsYmFjayBmb3IgZnVuY3Rpb25zIGxpa2UgYF8ucmVkdWNlYC5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBhIG1hdGNoaW5nIGVsZW1lbnQgaXMgZm91bmQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pbmNsdWRlcyhbMSwgMiwgM10sIDEpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaW5jbHVkZXMoWzEsIDIsIDNdLCAxLCAyKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pbmNsdWRlcyh7ICd1c2VyJzogJ2ZyZWQnLCAnYWdlJzogNDAgfSwgJ2ZyZWQnKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmluY2x1ZGVzKCdwZWJibGVzJywgJ2ViJyk7XG4gKiAvLyA9PiB0cnVlXG4gKi9cbmZ1bmN0aW9uIGluY2x1ZGVzKGNvbGxlY3Rpb24sIHRhcmdldCwgZnJvbUluZGV4LCBndWFyZCkge1xuICB2YXIgbGVuZ3RoID0gY29sbGVjdGlvbiA/IGdldExlbmd0aChjb2xsZWN0aW9uKSA6IDA7XG4gIGlmICghaXNMZW5ndGgobGVuZ3RoKSkge1xuICAgIGNvbGxlY3Rpb24gPSB2YWx1ZXMoY29sbGVjdGlvbik7XG4gICAgbGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGg7XG4gIH1cbiAgaWYgKHR5cGVvZiBmcm9tSW5kZXggIT0gJ251bWJlcicgfHwgKGd1YXJkICYmIGlzSXRlcmF0ZWVDYWxsKHRhcmdldCwgZnJvbUluZGV4LCBndWFyZCkpKSB7XG4gICAgZnJvbUluZGV4ID0gMDtcbiAgfSBlbHNlIHtcbiAgICBmcm9tSW5kZXggPSBmcm9tSW5kZXggPCAwID8gbmF0aXZlTWF4KGxlbmd0aCArIGZyb21JbmRleCwgMCkgOiAoZnJvbUluZGV4IHx8IDApO1xuICB9XG4gIHJldHVybiAodHlwZW9mIGNvbGxlY3Rpb24gPT0gJ3N0cmluZycgfHwgIWlzQXJyYXkoY29sbGVjdGlvbikgJiYgaXNTdHJpbmcoY29sbGVjdGlvbikpXG4gICAgPyAoZnJvbUluZGV4IDw9IGxlbmd0aCAmJiBjb2xsZWN0aW9uLmluZGV4T2YodGFyZ2V0LCBmcm9tSW5kZXgpID4gLTEpXG4gICAgOiAoISFsZW5ndGggJiYgYmFzZUluZGV4T2YoY29sbGVjdGlvbiwgdGFyZ2V0LCBmcm9tSW5kZXgpID4gLTEpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluY2x1ZGVzO1xuIiwidmFyIGFycmF5TWFwID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYXJyYXlNYXAnKSxcbiAgICBiYXNlQ2FsbGJhY2sgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9iYXNlQ2FsbGJhY2snKSxcbiAgICBiYXNlTWFwID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYmFzZU1hcCcpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuLi9sYW5nL2lzQXJyYXknKTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHZhbHVlcyBieSBydW5uaW5nIGVhY2ggZWxlbWVudCBpbiBgY29sbGVjdGlvbmAgdGhyb3VnaFxuICogYGl0ZXJhdGVlYC4gVGhlIGBpdGVyYXRlZWAgaXMgYm91bmQgdG8gYHRoaXNBcmdgIGFuZCBpbnZva2VkIHdpdGggdGhyZWVcbiAqIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleHxrZXksIGNvbGxlY3Rpb24pLlxuICpcbiAqIElmIGEgcHJvcGVydHkgbmFtZSBpcyBwcm92aWRlZCBmb3IgYGl0ZXJhdGVlYCB0aGUgY3JlYXRlZCBgXy5wcm9wZXJ0eWBcbiAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgdGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBnaXZlbiBlbGVtZW50LlxuICpcbiAqIElmIGEgdmFsdWUgaXMgYWxzbyBwcm92aWRlZCBmb3IgYHRoaXNBcmdgIHRoZSBjcmVhdGVkIGBfLm1hdGNoZXNQcm9wZXJ0eWBcbiAqIHN0eWxlIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgYSBtYXRjaGluZyBwcm9wZXJ0eVxuICogdmFsdWUsIGVsc2UgYGZhbHNlYC5cbiAqXG4gKiBJZiBhbiBvYmplY3QgaXMgcHJvdmlkZWQgZm9yIGBpdGVyYXRlZWAgdGhlIGNyZWF0ZWQgYF8ubWF0Y2hlc2Agc3R5bGVcbiAqIGNhbGxiYWNrIHJldHVybnMgYHRydWVgIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGdpdmVuXG4gKiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqXG4gKiBNYW55IGxvZGFzaCBtZXRob2RzIGFyZSBndWFyZGVkIHRvIHdvcmsgYXMgaXRlcmF0ZWVzIGZvciBtZXRob2RzIGxpa2VcbiAqIGBfLmV2ZXJ5YCwgYF8uZmlsdGVyYCwgYF8ubWFwYCwgYF8ubWFwVmFsdWVzYCwgYF8ucmVqZWN0YCwgYW5kIGBfLnNvbWVgLlxuICpcbiAqIFRoZSBndWFyZGVkIG1ldGhvZHMgYXJlOlxuICogYGFyeWAsIGBjYWxsYmFja2AsIGBjaHVua2AsIGBjbG9uZWAsIGBjcmVhdGVgLCBgY3VycnlgLCBgY3VycnlSaWdodGAsXG4gKiBgZHJvcGAsIGBkcm9wUmlnaHRgLCBgZXZlcnlgLCBgZmlsbGAsIGBmbGF0dGVuYCwgYGludmVydGAsIGBtYXhgLCBgbWluYCxcbiAqIGBwYXJzZUludGAsIGBzbGljZWAsIGBzb3J0QnlgLCBgdGFrZWAsIGB0YWtlUmlnaHRgLCBgdGVtcGxhdGVgLCBgdHJpbWAsXG4gKiBgdHJpbUxlZnRgLCBgdHJpbVJpZ2h0YCwgYHRydW5jYCwgYHJhbmRvbWAsIGByYW5nZWAsIGBzYW1wbGVgLCBgc29tZWAsXG4gKiBgc3VtYCwgYHVuaXFgLCBhbmQgYHdvcmRzYFxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAYWxpYXMgY29sbGVjdFxuICogQGNhdGVnb3J5IENvbGxlY3Rpb25cbiAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufE9iamVjdHxzdHJpbmd9IFtpdGVyYXRlZT1fLmlkZW50aXR5XSBUaGUgZnVuY3Rpb24gaW52b2tlZFxuICogIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGl0ZXJhdGVlYC5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheS5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gdGltZXNUaHJlZShuKSB7XG4gKiAgIHJldHVybiBuICogMztcbiAqIH1cbiAqXG4gKiBfLm1hcChbMSwgMl0sIHRpbWVzVGhyZWUpO1xuICogLy8gPT4gWzMsIDZdXG4gKlxuICogXy5tYXAoeyAnYSc6IDEsICdiJzogMiB9LCB0aW1lc1RocmVlKTtcbiAqIC8vID0+IFszLCA2XSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICpcbiAqIHZhciB1c2VycyA9IFtcbiAqICAgeyAndXNlcic6ICdiYXJuZXknIH0sXG4gKiAgIHsgJ3VzZXInOiAnZnJlZCcgfVxuICogXTtcbiAqXG4gKiAvLyB1c2luZyB0aGUgYF8ucHJvcGVydHlgIGNhbGxiYWNrIHNob3J0aGFuZFxuICogXy5tYXAodXNlcnMsICd1c2VyJyk7XG4gKiAvLyA9PiBbJ2Jhcm5leScsICdmcmVkJ11cbiAqL1xuZnVuY3Rpb24gbWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlLCB0aGlzQXJnKSB7XG4gIHZhciBmdW5jID0gaXNBcnJheShjb2xsZWN0aW9uKSA/IGFycmF5TWFwIDogYmFzZU1hcDtcbiAgaXRlcmF0ZWUgPSBiYXNlQ2FsbGJhY2soaXRlcmF0ZWUsIHRoaXNBcmcsIDMpO1xuICByZXR1cm4gZnVuYyhjb2xsZWN0aW9uLCBpdGVyYXRlZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWFwO1xuIiwidmFyIGdldE5hdGl2ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2dldE5hdGl2ZScpO1xuXG4vKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU5vdyA9IGdldE5hdGl2ZShEYXRlLCAnbm93Jyk7XG5cbi8qKlxuICogR2V0cyB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0aGF0IGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgVW5peCBlcG9jaFxuICogKDEgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQykuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBEYXRlXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uZGVmZXIoZnVuY3Rpb24oc3RhbXApIHtcbiAqICAgY29uc29sZS5sb2coXy5ub3coKSAtIHN0YW1wKTtcbiAqIH0sIF8ubm93KCkpO1xuICogLy8gPT4gbG9ncyB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpdCB0b29rIGZvciB0aGUgZGVmZXJyZWQgZnVuY3Rpb24gdG8gYmUgaW52b2tlZFxuICovXG52YXIgbm93ID0gbmF0aXZlTm93IHx8IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IG5vdztcbiIsInZhciBjcmVhdGVXcmFwcGVyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvY3JlYXRlV3JhcHBlcicpLFxuICAgIHJlcGxhY2VIb2xkZXJzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvcmVwbGFjZUhvbGRlcnMnKSxcbiAgICByZXN0UGFyYW0gPSByZXF1aXJlKCcuL3Jlc3RQYXJhbScpO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciB3cmFwcGVyIG1ldGFkYXRhLiAqL1xudmFyIEJJTkRfRkxBRyA9IDEsXG4gICAgUEFSVElBTF9GTEFHID0gMzI7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgaW52b2tlcyBgZnVuY2Agd2l0aCB0aGUgYHRoaXNgIGJpbmRpbmcgb2YgYHRoaXNBcmdgXG4gKiBhbmQgcHJlcGVuZHMgYW55IGFkZGl0aW9uYWwgYF8uYmluZGAgYXJndW1lbnRzIHRvIHRob3NlIHByb3ZpZGVkIHRvIHRoZVxuICogYm91bmQgZnVuY3Rpb24uXG4gKlxuICogVGhlIGBfLmJpbmQucGxhY2Vob2xkZXJgIHZhbHVlLCB3aGljaCBkZWZhdWx0cyB0byBgX2AgaW4gbW9ub2xpdGhpYyBidWlsZHMsXG4gKiBtYXkgYmUgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMuXG4gKlxuICogKipOb3RlOioqIFVubGlrZSBuYXRpdmUgYEZ1bmN0aW9uI2JpbmRgIHRoaXMgbWV0aG9kIGRvZXMgbm90IHNldCB0aGUgXCJsZW5ndGhcIlxuICogcHJvcGVydHkgb2YgYm91bmQgZnVuY3Rpb25zLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgRnVuY3Rpb25cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGJpbmQuXG4gKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAqIEBwYXJhbSB7Li4uKn0gW3BhcnRpYWxzXSBUaGUgYXJndW1lbnRzIHRvIGJlIHBhcnRpYWxseSBhcHBsaWVkLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYm91bmQgZnVuY3Rpb24uXG4gKiBAZXhhbXBsZVxuICpcbiAqIHZhciBncmVldCA9IGZ1bmN0aW9uKGdyZWV0aW5nLCBwdW5jdHVhdGlvbikge1xuICogICByZXR1cm4gZ3JlZXRpbmcgKyAnICcgKyB0aGlzLnVzZXIgKyBwdW5jdHVhdGlvbjtcbiAqIH07XG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ3VzZXInOiAnZnJlZCcgfTtcbiAqXG4gKiB2YXIgYm91bmQgPSBfLmJpbmQoZ3JlZXQsIG9iamVjdCwgJ2hpJyk7XG4gKiBib3VuZCgnIScpO1xuICogLy8gPT4gJ2hpIGZyZWQhJ1xuICpcbiAqIC8vIHVzaW5nIHBsYWNlaG9sZGVyc1xuICogdmFyIGJvdW5kID0gXy5iaW5kKGdyZWV0LCBvYmplY3QsIF8sICchJyk7XG4gKiBib3VuZCgnaGknKTtcbiAqIC8vID0+ICdoaSBmcmVkISdcbiAqL1xudmFyIGJpbmQgPSByZXN0UGFyYW0oZnVuY3Rpb24oZnVuYywgdGhpc0FyZywgcGFydGlhbHMpIHtcbiAgdmFyIGJpdG1hc2sgPSBCSU5EX0ZMQUc7XG4gIGlmIChwYXJ0aWFscy5sZW5ndGgpIHtcbiAgICB2YXIgaG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKHBhcnRpYWxzLCBiaW5kLnBsYWNlaG9sZGVyKTtcbiAgICBiaXRtYXNrIHw9IFBBUlRJQUxfRkxBRztcbiAgfVxuICByZXR1cm4gY3JlYXRlV3JhcHBlcihmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBwYXJ0aWFscywgaG9sZGVycyk7XG59KTtcblxuLy8gQXNzaWduIGRlZmF1bHQgcGxhY2Vob2xkZXJzLlxuYmluZC5wbGFjZWhvbGRlciA9IHt9O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGJpbmQ7XG4iLCIvKiogVXNlZCBhcyB0aGUgYFR5cGVFcnJvcmAgbWVzc2FnZSBmb3IgXCJGdW5jdGlvbnNcIiBtZXRob2RzLiAqL1xudmFyIEZVTkNfRVJST1JfVEVYVCA9ICdFeHBlY3RlZCBhIGZ1bmN0aW9uJztcblxuLyogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzIGZvciB0aG9zZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgb3RoZXIgYGxvZGFzaGAgbWV0aG9kcy4gKi9cbnZhciBuYXRpdmVNYXggPSBNYXRoLm1heDtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBpbnZva2VzIGBmdW5jYCB3aXRoIHRoZSBgdGhpc2AgYmluZGluZyBvZiB0aGVcbiAqIGNyZWF0ZWQgZnVuY3Rpb24gYW5kIGFyZ3VtZW50cyBmcm9tIGBzdGFydGAgYW5kIGJleW9uZCBwcm92aWRlZCBhcyBhbiBhcnJheS5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgYmFzZWQgb24gdGhlIFtyZXN0IHBhcmFtZXRlcl0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvRnVuY3Rpb25zL3Jlc3RfcGFyYW1ldGVycykuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBGdW5jdGlvblxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXBwbHkgYSByZXN0IHBhcmFtZXRlciB0by5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbc3RhcnQ9ZnVuYy5sZW5ndGgtMV0gVGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSByZXN0IHBhcmFtZXRlci5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICogQGV4YW1wbGVcbiAqXG4gKiB2YXIgc2F5ID0gXy5yZXN0UGFyYW0oZnVuY3Rpb24od2hhdCwgbmFtZXMpIHtcbiAqICAgcmV0dXJuIHdoYXQgKyAnICcgKyBfLmluaXRpYWwobmFtZXMpLmpvaW4oJywgJykgK1xuICogICAgIChfLnNpemUobmFtZXMpID4gMSA/ICcsICYgJyA6ICcnKSArIF8ubGFzdChuYW1lcyk7XG4gKiB9KTtcbiAqXG4gKiBzYXkoJ2hlbGxvJywgJ2ZyZWQnLCAnYmFybmV5JywgJ3BlYmJsZXMnKTtcbiAqIC8vID0+ICdoZWxsbyBmcmVkLCBiYXJuZXksICYgcGViYmxlcydcbiAqL1xuZnVuY3Rpb24gcmVzdFBhcmFtKGZ1bmMsIHN0YXJ0KSB7XG4gIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICB9XG4gIHN0YXJ0ID0gbmF0aXZlTWF4KHN0YXJ0ID09PSB1bmRlZmluZWQgPyAoZnVuYy5sZW5ndGggLSAxKSA6ICgrc3RhcnQgfHwgMCksIDApO1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGFyZ3MgPSBhcmd1bWVudHMsXG4gICAgICAgIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IG5hdGl2ZU1heChhcmdzLmxlbmd0aCAtIHN0YXJ0LCAwKSxcbiAgICAgICAgcmVzdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgcmVzdFtpbmRleF0gPSBhcmdzW3N0YXJ0ICsgaW5kZXhdO1xuICAgIH1cbiAgICBzd2l0Y2ggKHN0YXJ0KSB7XG4gICAgICBjYXNlIDA6IHJldHVybiBmdW5jLmNhbGwodGhpcywgcmVzdCk7XG4gICAgICBjYXNlIDE6IHJldHVybiBmdW5jLmNhbGwodGhpcywgYXJnc1swXSwgcmVzdCk7XG4gICAgICBjYXNlIDI6IHJldHVybiBmdW5jLmNhbGwodGhpcywgYXJnc1swXSwgYXJnc1sxXSwgcmVzdCk7XG4gICAgfVxuICAgIHZhciBvdGhlckFyZ3MgPSBBcnJheShzdGFydCArIDEpO1xuICAgIGluZGV4ID0gLTE7XG4gICAgd2hpbGUgKCsraW5kZXggPCBzdGFydCkge1xuICAgICAgb3RoZXJBcmdzW2luZGV4XSA9IGFyZ3NbaW5kZXhdO1xuICAgIH1cbiAgICBvdGhlckFyZ3Nbc3RhcnRdID0gcmVzdDtcbiAgICByZXR1cm4gZnVuYy5hcHBseSh0aGlzLCBvdGhlckFyZ3MpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJlc3RQYXJhbTtcbiIsInZhciBiYXNlQ3JlYXRlID0gcmVxdWlyZSgnLi9iYXNlQ3JlYXRlJyksXG4gICAgYmFzZUxvZGFzaCA9IHJlcXVpcmUoJy4vYmFzZUxvZGFzaCcpO1xuXG4vKiogVXNlZCBhcyByZWZlcmVuY2VzIGZvciBgLUluZmluaXR5YCBhbmQgYEluZmluaXR5YC4gKi9cbnZhciBQT1NJVElWRV9JTkZJTklUWSA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgbGF6eSB3cmFwcGVyIG9iamVjdCB3aGljaCB3cmFwcyBgdmFsdWVgIHRvIGVuYWJsZSBsYXp5IGV2YWx1YXRpb24uXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHdyYXAuXG4gKi9cbmZ1bmN0aW9uIExhenlXcmFwcGVyKHZhbHVlKSB7XG4gIHRoaXMuX193cmFwcGVkX18gPSB2YWx1ZTtcbiAgdGhpcy5fX2FjdGlvbnNfXyA9IFtdO1xuICB0aGlzLl9fZGlyX18gPSAxO1xuICB0aGlzLl9fZmlsdGVyZWRfXyA9IGZhbHNlO1xuICB0aGlzLl9faXRlcmF0ZWVzX18gPSBbXTtcbiAgdGhpcy5fX3Rha2VDb3VudF9fID0gUE9TSVRJVkVfSU5GSU5JVFk7XG4gIHRoaXMuX192aWV3c19fID0gW107XG59XG5cbkxhenlXcmFwcGVyLnByb3RvdHlwZSA9IGJhc2VDcmVhdGUoYmFzZUxvZGFzaC5wcm90b3R5cGUpO1xuTGF6eVdyYXBwZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTGF6eVdyYXBwZXI7XG5cbm1vZHVsZS5leHBvcnRzID0gTGF6eVdyYXBwZXI7XG4iLCJ2YXIgYmFzZUNyZWF0ZSA9IHJlcXVpcmUoJy4vYmFzZUNyZWF0ZScpLFxuICAgIGJhc2VMb2Rhc2ggPSByZXF1aXJlKCcuL2Jhc2VMb2Rhc2gnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBjb25zdHJ1Y3RvciBmb3IgY3JlYXRpbmcgYGxvZGFzaGAgd3JhcHBlciBvYmplY3RzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byB3cmFwLlxuICogQHBhcmFtIHtib29sZWFufSBbY2hhaW5BbGxdIEVuYWJsZSBjaGFpbmluZyBmb3IgYWxsIHdyYXBwZXIgbWV0aG9kcy5cbiAqIEBwYXJhbSB7QXJyYXl9IFthY3Rpb25zPVtdXSBBY3Rpb25zIHRvIHBlZm9ybSB0byByZXNvbHZlIHRoZSB1bndyYXBwZWQgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIExvZGFzaFdyYXBwZXIodmFsdWUsIGNoYWluQWxsLCBhY3Rpb25zKSB7XG4gIHRoaXMuX193cmFwcGVkX18gPSB2YWx1ZTtcbiAgdGhpcy5fX2FjdGlvbnNfXyA9IGFjdGlvbnMgfHwgW107XG4gIHRoaXMuX19jaGFpbl9fID0gISFjaGFpbkFsbDtcbn1cblxuTG9kYXNoV3JhcHBlci5wcm90b3R5cGUgPSBiYXNlQ3JlYXRlKGJhc2VMb2Rhc2gucHJvdG90eXBlKTtcbkxvZGFzaFdyYXBwZXIucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTG9kYXNoV3JhcHBlcjtcblxubW9kdWxlLmV4cG9ydHMgPSBMb2Rhc2hXcmFwcGVyO1xuIiwiLyoqXG4gKiBDb3BpZXMgdGhlIHZhbHVlcyBvZiBgc291cmNlYCB0byBgYXJyYXlgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBzb3VyY2UgVGhlIGFycmF5IHRvIGNvcHkgdmFsdWVzIGZyb20uXG4gKiBAcGFyYW0ge0FycmF5fSBbYXJyYXk9W11dIFRoZSBhcnJheSB0byBjb3B5IHZhbHVlcyB0by5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgYXJyYXlgLlxuICovXG5mdW5jdGlvbiBhcnJheUNvcHkoc291cmNlLCBhcnJheSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHNvdXJjZS5sZW5ndGg7XG5cbiAgYXJyYXkgfHwgKGFycmF5ID0gQXJyYXkobGVuZ3RoKSk7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgYXJyYXlbaW5kZXhdID0gc291cmNlW2luZGV4XTtcbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlDb3B5O1xuIiwiLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYF8uZm9yRWFjaGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYXJyYXlFYWNoKGFycmF5LCBpdGVyYXRlZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGlmIChpdGVyYXRlZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSkgPT09IGZhbHNlKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFycmF5O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFycmF5RWFjaDtcbiIsIi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBfLm1hcGAgZm9yIGFycmF5cyB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgYXJyYXkuXG4gKi9cbmZ1bmN0aW9uIGFycmF5TWFwKGFycmF5LCBpdGVyYXRlZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICByZXN1bHRbaW5kZXhdID0gaXRlcmF0ZWUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYXJyYXlNYXA7XG4iLCIvKipcbiAqIEEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiBgXy5zb21lYCBmb3IgYXJyYXlzIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2tcbiAqIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYW55IGVsZW1lbnQgcGFzc2VzIHRoZSBwcmVkaWNhdGUgY2hlY2ssXG4gKiAgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBhcnJheVNvbWUoYXJyYXksIHByZWRpY2F0ZSkge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGlmIChwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFycmF5U29tZTtcbiIsInZhciBiYXNlQ29weSA9IHJlcXVpcmUoJy4vYmFzZUNvcHknKSxcbiAgICBrZXlzID0gcmVxdWlyZSgnLi4vb2JqZWN0L2tleXMnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5hc3NpZ25gIHdpdGhvdXQgc3VwcG9ydCBmb3IgYXJndW1lbnQganVnZ2xpbmcsXG4gKiBtdWx0aXBsZSBzb3VyY2VzLCBhbmQgYGN1c3RvbWl6ZXJgIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgZGVzdGluYXRpb24gb2JqZWN0LlxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgc291cmNlIG9iamVjdC5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VBc3NpZ24ob2JqZWN0LCBzb3VyY2UpIHtcbiAgcmV0dXJuIHNvdXJjZSA9PSBudWxsXG4gICAgPyBvYmplY3RcbiAgICA6IGJhc2VDb3B5KHNvdXJjZSwga2V5cyhzb3VyY2UpLCBvYmplY3QpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VBc3NpZ247XG4iLCJ2YXIgYmFzZU1hdGNoZXMgPSByZXF1aXJlKCcuL2Jhc2VNYXRjaGVzJyksXG4gICAgYmFzZU1hdGNoZXNQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vYmFzZU1hdGNoZXNQcm9wZXJ0eScpLFxuICAgIGJpbmRDYWxsYmFjayA9IHJlcXVpcmUoJy4vYmluZENhbGxiYWNrJyksXG4gICAgaWRlbnRpdHkgPSByZXF1aXJlKCcuLi91dGlsaXR5L2lkZW50aXR5JyksXG4gICAgcHJvcGVydHkgPSByZXF1aXJlKCcuLi91dGlsaXR5L3Byb3BlcnR5Jyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uY2FsbGJhY2tgIHdoaWNoIHN1cHBvcnRzIHNwZWNpZnlpbmcgdGhlXG4gKiBudW1iZXIgb2YgYXJndW1lbnRzIHRvIHByb3ZpZGUgdG8gYGZ1bmNgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IFtmdW5jPV8uaWRlbnRpdHldIFRoZSB2YWx1ZSB0byBjb252ZXJ0IHRvIGEgY2FsbGJhY2suXG4gKiBAcGFyYW0geyp9IFt0aGlzQXJnXSBUaGUgYHRoaXNgIGJpbmRpbmcgb2YgYGZ1bmNgLlxuICogQHBhcmFtIHtudW1iZXJ9IFthcmdDb3VudF0gVGhlIG51bWJlciBvZiBhcmd1bWVudHMgdG8gcHJvdmlkZSB0byBgZnVuY2AuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIGNhbGxiYWNrLlxuICovXG5mdW5jdGlvbiBiYXNlQ2FsbGJhY2soZnVuYywgdGhpc0FyZywgYXJnQ291bnQpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgZnVuYztcbiAgaWYgKHR5cGUgPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0aGlzQXJnID09PSB1bmRlZmluZWRcbiAgICAgID8gZnVuY1xuICAgICAgOiBiaW5kQ2FsbGJhY2soZnVuYywgdGhpc0FyZywgYXJnQ291bnQpO1xuICB9XG4gIGlmIChmdW5jID09IG51bGwpIHtcbiAgICByZXR1cm4gaWRlbnRpdHk7XG4gIH1cbiAgaWYgKHR5cGUgPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gYmFzZU1hdGNoZXMoZnVuYyk7XG4gIH1cbiAgcmV0dXJuIHRoaXNBcmcgPT09IHVuZGVmaW5lZFxuICAgID8gcHJvcGVydHkoZnVuYylcbiAgICA6IGJhc2VNYXRjaGVzUHJvcGVydHkoZnVuYywgdGhpc0FyZyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUNhbGxiYWNrO1xuIiwidmFyIGFycmF5Q29weSA9IHJlcXVpcmUoJy4vYXJyYXlDb3B5JyksXG4gICAgYXJyYXlFYWNoID0gcmVxdWlyZSgnLi9hcnJheUVhY2gnKSxcbiAgICBiYXNlQXNzaWduID0gcmVxdWlyZSgnLi9iYXNlQXNzaWduJyksXG4gICAgYmFzZUZvck93biA9IHJlcXVpcmUoJy4vYmFzZUZvck93bicpLFxuICAgIGluaXRDbG9uZUFycmF5ID0gcmVxdWlyZSgnLi9pbml0Q2xvbmVBcnJheScpLFxuICAgIGluaXRDbG9uZUJ5VGFnID0gcmVxdWlyZSgnLi9pbml0Q2xvbmVCeVRhZycpLFxuICAgIGluaXRDbG9uZU9iamVjdCA9IHJlcXVpcmUoJy4vaW5pdENsb25lT2JqZWN0JyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcnJheScpLFxuICAgIGlzSG9zdE9iamVjdCA9IHJlcXVpcmUoJy4vaXNIb3N0T2JqZWN0JyksXG4gICAgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9sYW5nL2lzT2JqZWN0Jyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhcmdzVGFnID0gJ1tvYmplY3QgQXJndW1lbnRzXScsXG4gICAgYXJyYXlUYWcgPSAnW29iamVjdCBBcnJheV0nLFxuICAgIGJvb2xUYWcgPSAnW29iamVjdCBCb29sZWFuXScsXG4gICAgZGF0ZVRhZyA9ICdbb2JqZWN0IERhdGVdJyxcbiAgICBlcnJvclRhZyA9ICdbb2JqZWN0IEVycm9yXScsXG4gICAgZnVuY1RhZyA9ICdbb2JqZWN0IEZ1bmN0aW9uXScsXG4gICAgbWFwVGFnID0gJ1tvYmplY3QgTWFwXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgb2JqZWN0VGFnID0gJ1tvYmplY3QgT2JqZWN0XScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc2V0VGFnID0gJ1tvYmplY3QgU2V0XScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXScsXG4gICAgd2Vha01hcFRhZyA9ICdbb2JqZWN0IFdlYWtNYXBdJztcblxudmFyIGFycmF5QnVmZmVyVGFnID0gJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyxcbiAgICBmbG9hdDMyVGFnID0gJ1tvYmplY3QgRmxvYXQzMkFycmF5XScsXG4gICAgZmxvYXQ2NFRhZyA9ICdbb2JqZWN0IEZsb2F0NjRBcnJheV0nLFxuICAgIGludDhUYWcgPSAnW29iamVjdCBJbnQ4QXJyYXldJyxcbiAgICBpbnQxNlRhZyA9ICdbb2JqZWN0IEludDE2QXJyYXldJyxcbiAgICBpbnQzMlRhZyA9ICdbb2JqZWN0IEludDMyQXJyYXldJyxcbiAgICB1aW50OFRhZyA9ICdbb2JqZWN0IFVpbnQ4QXJyYXldJyxcbiAgICB1aW50OENsYW1wZWRUYWcgPSAnW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0nLFxuICAgIHVpbnQxNlRhZyA9ICdbb2JqZWN0IFVpbnQxNkFycmF5XScsXG4gICAgdWludDMyVGFnID0gJ1tvYmplY3QgVWludDMyQXJyYXldJztcblxuLyoqIFVzZWQgdG8gaWRlbnRpZnkgYHRvU3RyaW5nVGFnYCB2YWx1ZXMgc3VwcG9ydGVkIGJ5IGBfLmNsb25lYC4gKi9cbnZhciBjbG9uZWFibGVUYWdzID0ge307XG5jbG9uZWFibGVUYWdzW2FyZ3NUYWddID0gY2xvbmVhYmxlVGFnc1thcnJheVRhZ10gPVxuY2xvbmVhYmxlVGFnc1thcnJheUJ1ZmZlclRhZ10gPSBjbG9uZWFibGVUYWdzW2Jvb2xUYWddID1cbmNsb25lYWJsZVRhZ3NbZGF0ZVRhZ10gPSBjbG9uZWFibGVUYWdzW2Zsb2F0MzJUYWddID1cbmNsb25lYWJsZVRhZ3NbZmxvYXQ2NFRhZ10gPSBjbG9uZWFibGVUYWdzW2ludDhUYWddID1cbmNsb25lYWJsZVRhZ3NbaW50MTZUYWddID0gY2xvbmVhYmxlVGFnc1tpbnQzMlRhZ10gPVxuY2xvbmVhYmxlVGFnc1tudW1iZXJUYWddID0gY2xvbmVhYmxlVGFnc1tvYmplY3RUYWddID1cbmNsb25lYWJsZVRhZ3NbcmVnZXhwVGFnXSA9IGNsb25lYWJsZVRhZ3Nbc3RyaW5nVGFnXSA9XG5jbG9uZWFibGVUYWdzW3VpbnQ4VGFnXSA9IGNsb25lYWJsZVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9XG5jbG9uZWFibGVUYWdzW3VpbnQxNlRhZ10gPSBjbG9uZWFibGVUYWdzW3VpbnQzMlRhZ10gPSB0cnVlO1xuY2xvbmVhYmxlVGFnc1tlcnJvclRhZ10gPSBjbG9uZWFibGVUYWdzW2Z1bmNUYWddID1cbmNsb25lYWJsZVRhZ3NbbWFwVGFnXSA9IGNsb25lYWJsZVRhZ3Nbc2V0VGFnXSA9XG5jbG9uZWFibGVUYWdzW3dlYWtNYXBUYWddID0gZmFsc2U7XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzYuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmNsb25lYCB3aXRob3V0IHN1cHBvcnQgZm9yIGFyZ3VtZW50IGp1Z2dsaW5nXG4gKiBhbmQgYHRoaXNgIGJpbmRpbmcgYGN1c3RvbWl6ZXJgIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gW2N1c3RvbWl6ZXJdIFRoZSBmdW5jdGlvbiB0byBjdXN0b21pemUgY2xvbmluZyB2YWx1ZXMuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2tleV0gVGhlIGtleSBvZiBgdmFsdWVgLlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgYHZhbHVlYCBiZWxvbmdzIHRvLlxuICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQT1bXV0gVHJhY2tzIHRyYXZlcnNlZCBzb3VyY2Ugb2JqZWN0cy5cbiAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0I9W11dIEFzc29jaWF0ZXMgY2xvbmVzIHdpdGggc291cmNlIGNvdW50ZXJwYXJ0cy5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBjbG9uZWQgdmFsdWUuXG4gKi9cbmZ1bmN0aW9uIGJhc2VDbG9uZSh2YWx1ZSwgaXNEZWVwLCBjdXN0b21pemVyLCBrZXksIG9iamVjdCwgc3RhY2tBLCBzdGFja0IpIHtcbiAgdmFyIHJlc3VsdDtcbiAgaWYgKGN1c3RvbWl6ZXIpIHtcbiAgICByZXN1bHQgPSBvYmplY3QgPyBjdXN0b21pemVyKHZhbHVlLCBrZXksIG9iamVjdCkgOiBjdXN0b21pemVyKHZhbHVlKTtcbiAgfVxuICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHZhciBpc0FyciA9IGlzQXJyYXkodmFsdWUpO1xuICBpZiAoaXNBcnIpIHtcbiAgICByZXN1bHQgPSBpbml0Q2xvbmVBcnJheSh2YWx1ZSk7XG4gICAgaWYgKCFpc0RlZXApIHtcbiAgICAgIHJldHVybiBhcnJheUNvcHkodmFsdWUsIHJlc3VsdCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciB0YWcgPSBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSxcbiAgICAgICAgaXNGdW5jID0gdGFnID09IGZ1bmNUYWc7XG5cbiAgICBpZiAodGFnID09IG9iamVjdFRhZyB8fCB0YWcgPT0gYXJnc1RhZyB8fCAoaXNGdW5jICYmICFvYmplY3QpKSB7XG4gICAgICBpZiAoaXNIb3N0T2JqZWN0KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gb2JqZWN0ID8gdmFsdWUgOiB7fTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdCA9IGluaXRDbG9uZU9iamVjdChpc0Z1bmMgPyB7fSA6IHZhbHVlKTtcbiAgICAgIGlmICghaXNEZWVwKSB7XG4gICAgICAgIHJldHVybiBiYXNlQXNzaWduKHJlc3VsdCwgdmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY2xvbmVhYmxlVGFnc1t0YWddXG4gICAgICAgID8gaW5pdENsb25lQnlUYWcodmFsdWUsIHRhZywgaXNEZWVwKVxuICAgICAgICA6IChvYmplY3QgPyB2YWx1ZSA6IHt9KTtcbiAgICB9XG4gIH1cbiAgLy8gQ2hlY2sgZm9yIGNpcmN1bGFyIHJlZmVyZW5jZXMgYW5kIHJldHVybiBpdHMgY29ycmVzcG9uZGluZyBjbG9uZS5cbiAgc3RhY2tBIHx8IChzdGFja0EgPSBbXSk7XG4gIHN0YWNrQiB8fCAoc3RhY2tCID0gW10pO1xuXG4gIHZhciBsZW5ndGggPSBzdGFja0EubGVuZ3RoO1xuICB3aGlsZSAobGVuZ3RoLS0pIHtcbiAgICBpZiAoc3RhY2tBW2xlbmd0aF0gPT0gdmFsdWUpIHtcbiAgICAgIHJldHVybiBzdGFja0JbbGVuZ3RoXTtcbiAgICB9XG4gIH1cbiAgLy8gQWRkIHRoZSBzb3VyY2UgdmFsdWUgdG8gdGhlIHN0YWNrIG9mIHRyYXZlcnNlZCBvYmplY3RzIGFuZCBhc3NvY2lhdGUgaXQgd2l0aCBpdHMgY2xvbmUuXG4gIHN0YWNrQS5wdXNoKHZhbHVlKTtcbiAgc3RhY2tCLnB1c2gocmVzdWx0KTtcblxuICAvLyBSZWN1cnNpdmVseSBwb3B1bGF0ZSBjbG9uZSAoc3VzY2VwdGlibGUgdG8gY2FsbCBzdGFjayBsaW1pdHMpLlxuICAoaXNBcnIgPyBhcnJheUVhY2ggOiBiYXNlRm9yT3duKSh2YWx1ZSwgZnVuY3Rpb24oc3ViVmFsdWUsIGtleSkge1xuICAgIHJlc3VsdFtrZXldID0gYmFzZUNsb25lKHN1YlZhbHVlLCBpc0RlZXAsIGN1c3RvbWl6ZXIsIGtleSwgdmFsdWUsIHN0YWNrQSwgc3RhY2tCKTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUNsb25lO1xuIiwiLyoqXG4gKiBDb3BpZXMgcHJvcGVydGllcyBvZiBgc291cmNlYCB0byBgb2JqZWN0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IHRvIGNvcHkgcHJvcGVydGllcyBmcm9tLlxuICogQHBhcmFtIHtBcnJheX0gcHJvcHMgVGhlIHByb3BlcnR5IG5hbWVzIHRvIGNvcHkuXG4gKiBAcGFyYW0ge09iamVjdH0gW29iamVjdD17fV0gVGhlIG9iamVjdCB0byBjb3B5IHByb3BlcnRpZXMgdG8uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBiYXNlQ29weShzb3VyY2UsIHByb3BzLCBvYmplY3QpIHtcbiAgb2JqZWN0IHx8IChvYmplY3QgPSB7fSk7XG5cbiAgdmFyIGluZGV4ID0gLTEsXG4gICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGg7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuICAgIG9iamVjdFtrZXldID0gc291cmNlW2tleV07XG4gIH1cbiAgcmV0dXJuIG9iamVjdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlQ29weTtcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2xhbmcvaXNPYmplY3QnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5jcmVhdGVgIHdpdGhvdXQgc3VwcG9ydCBmb3IgYXNzaWduaW5nXG4gKiBwcm9wZXJ0aWVzIHRvIHRoZSBjcmVhdGVkIG9iamVjdC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHByb3RvdHlwZSBUaGUgb2JqZWN0IHRvIGluaGVyaXQgZnJvbS5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG5ldyBvYmplY3QuXG4gKi9cbnZhciBiYXNlQ3JlYXRlID0gKGZ1bmN0aW9uKCkge1xuICBmdW5jdGlvbiBvYmplY3QoKSB7fVxuICByZXR1cm4gZnVuY3Rpb24ocHJvdG90eXBlKSB7XG4gICAgaWYgKGlzT2JqZWN0KHByb3RvdHlwZSkpIHtcbiAgICAgIG9iamVjdC5wcm90b3R5cGUgPSBwcm90b3R5cGU7XG4gICAgICB2YXIgcmVzdWx0ID0gbmV3IG9iamVjdDtcbiAgICAgIG9iamVjdC5wcm90b3R5cGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQgfHwge307XG4gIH07XG59KCkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VDcmVhdGU7XG4iLCJ2YXIgYmFzZUZvck93biA9IHJlcXVpcmUoJy4vYmFzZUZvck93bicpLFxuICAgIGNyZWF0ZUJhc2VFYWNoID0gcmVxdWlyZSgnLi9jcmVhdGVCYXNlRWFjaCcpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZvckVhY2hgIHdpdGhvdXQgc3VwcG9ydCBmb3IgY2FsbGJhY2tcbiAqIHNob3J0aGFuZHMgYW5kIGB0aGlzYCBiaW5kaW5nLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R8c3RyaW5nfSBSZXR1cm5zIGBjb2xsZWN0aW9uYC5cbiAqL1xudmFyIGJhc2VFYWNoID0gY3JlYXRlQmFzZUVhY2goYmFzZUZvck93bik7XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUVhY2g7XG4iLCIvKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZpbmRgLCBgXy5maW5kTGFzdGAsIGBfLmZpbmRLZXlgLCBhbmQgYF8uZmluZExhc3RLZXlgLFxuICogd2l0aG91dCBzdXBwb3J0IGZvciBjYWxsYmFjayBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZywgd2hpY2ggaXRlcmF0ZXNcbiAqIG92ZXIgYGNvbGxlY3Rpb25gIHVzaW5nIHRoZSBwcm92aWRlZCBgZWFjaEZ1bmNgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IGNvbGxlY3Rpb24gVGhlIGNvbGxlY3Rpb24gdG8gc2VhcmNoLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGBjb2xsZWN0aW9uYC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3JldEtleV0gU3BlY2lmeSByZXR1cm5pbmcgdGhlIGtleSBvZiB0aGUgZm91bmQgZWxlbWVudFxuICogIGluc3RlYWQgb2YgdGhlIGVsZW1lbnQgaXRzZWxmLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgdGhlIGZvdW5kIGVsZW1lbnQgb3IgaXRzIGtleSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAqL1xuZnVuY3Rpb24gYmFzZUZpbmQoY29sbGVjdGlvbiwgcHJlZGljYXRlLCBlYWNoRnVuYywgcmV0S2V5KSB7XG4gIHZhciByZXN1bHQ7XG4gIGVhY2hGdW5jKGNvbGxlY3Rpb24sIGZ1bmN0aW9uKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pIHtcbiAgICBpZiAocHJlZGljYXRlKHZhbHVlLCBrZXksIGNvbGxlY3Rpb24pKSB7XG4gICAgICByZXN1bHQgPSByZXRLZXkgPyBrZXkgOiB2YWx1ZTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VGaW5kO1xuIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5maW5kSW5kZXhgIGFuZCBgXy5maW5kTGFzdEluZGV4YCB3aXRob3V0XG4gKiBzdXBwb3J0IGZvciBjYWxsYmFjayBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNlYXJjaC5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgbWF0Y2hlZCB2YWx1ZSwgZWxzZSBgLTFgLlxuICovXG5mdW5jdGlvbiBiYXNlRmluZEluZGV4KGFycmF5LCBwcmVkaWNhdGUsIGZyb21SaWdodCkge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgaW5kZXggPSBmcm9tUmlnaHQgPyBsZW5ndGggOiAtMTtcblxuICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xuICAgIGlmIChwcmVkaWNhdGUoYXJyYXlbaW5kZXhdLCBpbmRleCwgYXJyYXkpKSB7XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuICB9XG4gIHJldHVybiAtMTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlRmluZEluZGV4O1xuIiwidmFyIGNyZWF0ZUJhc2VGb3IgPSByZXF1aXJlKCcuL2NyZWF0ZUJhc2VGb3InKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgYmFzZUZvckluYCBhbmQgYGJhc2VGb3JPd25gIHdoaWNoIGl0ZXJhdGVzXG4gKiBvdmVyIGBvYmplY3RgIHByb3BlcnRpZXMgcmV0dXJuZWQgYnkgYGtleXNGdW5jYCBpbnZva2luZyBgaXRlcmF0ZWVgIGZvclxuICogZWFjaCBwcm9wZXJ0eS4gSXRlcmF0ZWUgZnVuY3Rpb25zIG1heSBleGl0IGl0ZXJhdGlvbiBlYXJseSBieSBleHBsaWNpdGx5XG4gKiByZXR1cm5pbmcgYGZhbHNlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBrZXlzRnVuYyBUaGUgZnVuY3Rpb24gdG8gZ2V0IHRoZSBrZXlzIG9mIGBvYmplY3RgLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyBgb2JqZWN0YC5cbiAqL1xudmFyIGJhc2VGb3IgPSBjcmVhdGVCYXNlRm9yKCk7XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUZvcjtcbiIsInZhciBiYXNlRm9yID0gcmVxdWlyZSgnLi9iYXNlRm9yJyksXG4gICAga2V5c0luID0gcmVxdWlyZSgnLi4vb2JqZWN0L2tleXNJbicpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLmZvckluYCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBiYXNlRm9ySW4ob2JqZWN0LCBpdGVyYXRlZSkge1xuICByZXR1cm4gYmFzZUZvcihvYmplY3QsIGl0ZXJhdGVlLCBrZXlzSW4pO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VGb3JJbjtcbiIsInZhciBiYXNlRm9yID0gcmVxdWlyZSgnLi9iYXNlRm9yJyksXG4gICAga2V5cyA9IHJlcXVpcmUoJy4uL29iamVjdC9rZXlzJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8uZm9yT3duYCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIGBvYmplY3RgLlxuICovXG5mdW5jdGlvbiBiYXNlRm9yT3duKG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgcmV0dXJuIGJhc2VGb3Iob2JqZWN0LCBpdGVyYXRlZSwga2V5cyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUZvck93bjtcbiIsInZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4vdG9PYmplY3QnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgZ2V0YCB3aXRob3V0IHN1cHBvcnQgZm9yIHN0cmluZyBwYXRoc1xuICogYW5kIGRlZmF1bHQgdmFsdWVzLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge0FycmF5fSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcGFyYW0ge3N0cmluZ30gW3BhdGhLZXldIFRoZSBrZXkgcmVwcmVzZW50YXRpb24gb2YgcGF0aC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSByZXNvbHZlZCB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gYmFzZUdldChvYmplY3QsIHBhdGgsIHBhdGhLZXkpIHtcbiAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIG9iamVjdCA9IHRvT2JqZWN0KG9iamVjdCk7XG4gIGlmIChwYXRoS2V5ICE9PSB1bmRlZmluZWQgJiYgcGF0aEtleSBpbiBvYmplY3QpIHtcbiAgICBwYXRoID0gW3BhdGhLZXldO1xuICB9XG4gIHZhciBpbmRleCA9IDAsXG4gICAgICBsZW5ndGggPSBwYXRoLmxlbmd0aDtcblxuICB3aGlsZSAob2JqZWN0ICE9IG51bGwgJiYgaW5kZXggPCBsZW5ndGgpIHtcbiAgICBvYmplY3QgPSB0b09iamVjdChvYmplY3QpW3BhdGhbaW5kZXgrK11dO1xuICB9XG4gIHJldHVybiAoaW5kZXggJiYgaW5kZXggPT0gbGVuZ3RoKSA/IG9iamVjdCA6IHVuZGVmaW5lZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlR2V0O1xuIiwidmFyIGluZGV4T2ZOYU4gPSByZXF1aXJlKCcuL2luZGV4T2ZOYU4nKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pbmRleE9mYCB3aXRob3V0IHN1cHBvcnQgZm9yIGJpbmFyeSBzZWFyY2hlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIGFycmF5IHRvIHNlYXJjaC5cbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHNlYXJjaCBmb3IuXG4gKiBAcGFyYW0ge251bWJlcn0gZnJvbUluZGV4IFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IFJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBtYXRjaGVkIHZhbHVlLCBlbHNlIGAtMWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJbmRleE9mKGFycmF5LCB2YWx1ZSwgZnJvbUluZGV4KSB7XG4gIGlmICh2YWx1ZSAhPT0gdmFsdWUpIHtcbiAgICByZXR1cm4gaW5kZXhPZk5hTihhcnJheSwgZnJvbUluZGV4KTtcbiAgfVxuICB2YXIgaW5kZXggPSBmcm9tSW5kZXggLSAxLFxuICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgaWYgKGFycmF5W2luZGV4XSA9PT0gdmFsdWUpIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJbmRleE9mO1xuIiwidmFyIGJhc2VJc0VxdWFsRGVlcCA9IHJlcXVpcmUoJy4vYmFzZUlzRXF1YWxEZWVwJyksXG4gICAgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9sYW5nL2lzT2JqZWN0JyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi9pc09iamVjdExpa2UnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc0VxdWFsYCB3aXRob3V0IHN1cHBvcnQgZm9yIGB0aGlzYCBiaW5kaW5nXG4gKiBgY3VzdG9taXplcmAgZnVuY3Rpb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb21wYXJlLlxuICogQHBhcmFtIHsqfSBvdGhlciBUaGUgb3RoZXIgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNvbXBhcmluZyB2YWx1ZXMuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0xvb3NlXSBTcGVjaWZ5IHBlcmZvcm1pbmcgcGFydGlhbCBjb21wYXJpc29ucy5cbiAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0FdIFRyYWNrcyB0cmF2ZXJzZWQgYHZhbHVlYCBvYmplY3RzLlxuICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQl0gVHJhY2tzIHRyYXZlcnNlZCBgb3RoZXJgIG9iamVjdHMuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSXNFcXVhbCh2YWx1ZSwgb3RoZXIsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKSB7XG4gIGlmICh2YWx1ZSA9PT0gb3RoZXIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodmFsdWUgPT0gbnVsbCB8fCBvdGhlciA9PSBudWxsIHx8ICghaXNPYmplY3QodmFsdWUpICYmICFpc09iamVjdExpa2Uob3RoZXIpKSkge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gdmFsdWUgJiYgb3RoZXIgIT09IG90aGVyO1xuICB9XG4gIHJldHVybiBiYXNlSXNFcXVhbERlZXAodmFsdWUsIG90aGVyLCBiYXNlSXNFcXVhbCwgY3VzdG9taXplciwgaXNMb29zZSwgc3RhY2tBLCBzdGFja0IpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJc0VxdWFsO1xuIiwidmFyIGVxdWFsQXJyYXlzID0gcmVxdWlyZSgnLi9lcXVhbEFycmF5cycpLFxuICAgIGVxdWFsQnlUYWcgPSByZXF1aXJlKCcuL2VxdWFsQnlUYWcnKSxcbiAgICBlcXVhbE9iamVjdHMgPSByZXF1aXJlKCcuL2VxdWFsT2JqZWN0cycpLFxuICAgIGlzQXJyYXkgPSByZXF1aXJlKCcuLi9sYW5nL2lzQXJyYXknKSxcbiAgICBpc0hvc3RPYmplY3QgPSByZXF1aXJlKCcuL2lzSG9zdE9iamVjdCcpLFxuICAgIGlzVHlwZWRBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNUeXBlZEFycmF5Jyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhcmdzVGFnID0gJ1tvYmplY3QgQXJndW1lbnRzXScsXG4gICAgYXJyYXlUYWcgPSAnW29iamVjdCBBcnJheV0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG4vKiogVXNlZCBmb3IgbmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBVc2VkIHRvIHJlc29sdmUgdGhlIFtgdG9TdHJpbmdUYWdgXShodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi82LjAvI3NlYy1vYmplY3QucHJvdG90eXBlLnRvc3RyaW5nKVxuICogb2YgdmFsdWVzLlxuICovXG52YXIgb2JqVG9TdHJpbmcgPSBvYmplY3RQcm90by50b1N0cmluZztcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsYCBmb3IgYXJyYXlzIGFuZCBvYmplY3RzIHdoaWNoIHBlcmZvcm1zXG4gKiBkZWVwIGNvbXBhcmlzb25zIGFuZCB0cmFja3MgdHJhdmVyc2VkIG9iamVjdHMgZW5hYmxpbmcgb2JqZWN0cyB3aXRoIGNpcmN1bGFyXG4gKiByZWZlcmVuY2VzIHRvIGJlIGNvbXBhcmVkLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBvdGhlciBUaGUgb3RoZXIgb2JqZWN0IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpbmcgb2JqZWN0cy5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzTG9vc2VdIFNwZWNpZnkgcGVyZm9ybWluZyBwYXJ0aWFsIGNvbXBhcmlzb25zLlxuICogQHBhcmFtIHtBcnJheX0gW3N0YWNrQT1bXV0gVHJhY2tzIHRyYXZlcnNlZCBgdmFsdWVgIG9iamVjdHMuXG4gKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tCPVtdXSBUcmFja3MgdHJhdmVyc2VkIGBvdGhlcmAgb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgb2JqZWN0cyBhcmUgZXF1aXZhbGVudCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBiYXNlSXNFcXVhbERlZXAob2JqZWN0LCBvdGhlciwgZXF1YWxGdW5jLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQikge1xuICB2YXIgb2JqSXNBcnIgPSBpc0FycmF5KG9iamVjdCksXG4gICAgICBvdGhJc0FyciA9IGlzQXJyYXkob3RoZXIpLFxuICAgICAgb2JqVGFnID0gYXJyYXlUYWcsXG4gICAgICBvdGhUYWcgPSBhcnJheVRhZztcblxuICBpZiAoIW9iaklzQXJyKSB7XG4gICAgb2JqVGFnID0gb2JqVG9TdHJpbmcuY2FsbChvYmplY3QpO1xuICAgIGlmIChvYmpUYWcgPT0gYXJnc1RhZykge1xuICAgICAgb2JqVGFnID0gb2JqZWN0VGFnO1xuICAgIH0gZWxzZSBpZiAob2JqVGFnICE9IG9iamVjdFRhZykge1xuICAgICAgb2JqSXNBcnIgPSBpc1R5cGVkQXJyYXkob2JqZWN0KTtcbiAgICB9XG4gIH1cbiAgaWYgKCFvdGhJc0Fycikge1xuICAgIG90aFRhZyA9IG9ialRvU3RyaW5nLmNhbGwob3RoZXIpO1xuICAgIGlmIChvdGhUYWcgPT0gYXJnc1RhZykge1xuICAgICAgb3RoVGFnID0gb2JqZWN0VGFnO1xuICAgIH0gZWxzZSBpZiAob3RoVGFnICE9IG9iamVjdFRhZykge1xuICAgICAgb3RoSXNBcnIgPSBpc1R5cGVkQXJyYXkob3RoZXIpO1xuICAgIH1cbiAgfVxuICB2YXIgb2JqSXNPYmogPSBvYmpUYWcgPT0gb2JqZWN0VGFnICYmICFpc0hvc3RPYmplY3Qob2JqZWN0KSxcbiAgICAgIG90aElzT2JqID0gb3RoVGFnID09IG9iamVjdFRhZyAmJiAhaXNIb3N0T2JqZWN0KG90aGVyKSxcbiAgICAgIGlzU2FtZVRhZyA9IG9ialRhZyA9PSBvdGhUYWc7XG5cbiAgaWYgKGlzU2FtZVRhZyAmJiAhKG9iaklzQXJyIHx8IG9iaklzT2JqKSkge1xuICAgIHJldHVybiBlcXVhbEJ5VGFnKG9iamVjdCwgb3RoZXIsIG9ialRhZyk7XG4gIH1cbiAgaWYgKCFpc0xvb3NlKSB7XG4gICAgdmFyIG9iaklzV3JhcHBlZCA9IG9iaklzT2JqICYmIGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCAnX193cmFwcGVkX18nKSxcbiAgICAgICAgb3RoSXNXcmFwcGVkID0gb3RoSXNPYmogJiYgaGFzT3duUHJvcGVydHkuY2FsbChvdGhlciwgJ19fd3JhcHBlZF9fJyk7XG5cbiAgICBpZiAob2JqSXNXcmFwcGVkIHx8IG90aElzV3JhcHBlZCkge1xuICAgICAgcmV0dXJuIGVxdWFsRnVuYyhvYmpJc1dyYXBwZWQgPyBvYmplY3QudmFsdWUoKSA6IG9iamVjdCwgb3RoSXNXcmFwcGVkID8gb3RoZXIudmFsdWUoKSA6IG90aGVyLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQik7XG4gICAgfVxuICB9XG4gIGlmICghaXNTYW1lVGFnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIEFzc3VtZSBjeWNsaWMgdmFsdWVzIGFyZSBlcXVhbC5cbiAgLy8gRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gZGV0ZWN0aW5nIGNpcmN1bGFyIHJlZmVyZW5jZXMgc2VlIGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jSk8uXG4gIHN0YWNrQSB8fCAoc3RhY2tBID0gW10pO1xuICBzdGFja0IgfHwgKHN0YWNrQiA9IFtdKTtcblxuICB2YXIgbGVuZ3RoID0gc3RhY2tBLmxlbmd0aDtcbiAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgaWYgKHN0YWNrQVtsZW5ndGhdID09IG9iamVjdCkge1xuICAgICAgcmV0dXJuIHN0YWNrQltsZW5ndGhdID09IG90aGVyO1xuICAgIH1cbiAgfVxuICAvLyBBZGQgYG9iamVjdGAgYW5kIGBvdGhlcmAgdG8gdGhlIHN0YWNrIG9mIHRyYXZlcnNlZCBvYmplY3RzLlxuICBzdGFja0EucHVzaChvYmplY3QpO1xuICBzdGFja0IucHVzaChvdGhlcik7XG5cbiAgdmFyIHJlc3VsdCA9IChvYmpJc0FyciA/IGVxdWFsQXJyYXlzIDogZXF1YWxPYmplY3RzKShvYmplY3QsIG90aGVyLCBlcXVhbEZ1bmMsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKTtcblxuICBzdGFja0EucG9wKCk7XG4gIHN0YWNrQi5wb3AoKTtcblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJc0VxdWFsRGVlcDtcbiIsInZhciBiYXNlSXNFcXVhbCA9IHJlcXVpcmUoJy4vYmFzZUlzRXF1YWwnKSxcbiAgICB0b09iamVjdCA9IHJlcXVpcmUoJy4vdG9PYmplY3QnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5pc01hdGNoYCB3aXRob3V0IHN1cHBvcnQgZm9yIGNhbGxiYWNrXG4gKiBzaG9ydGhhbmRzIGFuZCBgdGhpc2AgYmluZGluZy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0ge0FycmF5fSBtYXRjaERhdGEgVGhlIHByb3BlcnkgbmFtZXMsIHZhbHVlcywgYW5kIGNvbXBhcmUgZmxhZ3MgdG8gbWF0Y2guXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpbmcgb2JqZWN0cy5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgb2JqZWN0YCBpcyBhIG1hdGNoLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGJhc2VJc01hdGNoKG9iamVjdCwgbWF0Y2hEYXRhLCBjdXN0b21pemVyKSB7XG4gIHZhciBpbmRleCA9IG1hdGNoRGF0YS5sZW5ndGgsXG4gICAgICBsZW5ndGggPSBpbmRleCxcbiAgICAgIG5vQ3VzdG9taXplciA9ICFjdXN0b21pemVyO1xuXG4gIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgIHJldHVybiAhbGVuZ3RoO1xuICB9XG4gIG9iamVjdCA9IHRvT2JqZWN0KG9iamVjdCk7XG4gIHdoaWxlIChpbmRleC0tKSB7XG4gICAgdmFyIGRhdGEgPSBtYXRjaERhdGFbaW5kZXhdO1xuICAgIGlmICgobm9DdXN0b21pemVyICYmIGRhdGFbMl0pXG4gICAgICAgICAgPyBkYXRhWzFdICE9PSBvYmplY3RbZGF0YVswXV1cbiAgICAgICAgICA6ICEoZGF0YVswXSBpbiBvYmplY3QpXG4gICAgICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIGRhdGEgPSBtYXRjaERhdGFbaW5kZXhdO1xuICAgIHZhciBrZXkgPSBkYXRhWzBdLFxuICAgICAgICBvYmpWYWx1ZSA9IG9iamVjdFtrZXldLFxuICAgICAgICBzcmNWYWx1ZSA9IGRhdGFbMV07XG5cbiAgICBpZiAobm9DdXN0b21pemVyICYmIGRhdGFbMl0pIHtcbiAgICAgIGlmIChvYmpWYWx1ZSA9PT0gdW5kZWZpbmVkICYmICEoa2V5IGluIG9iamVjdCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgcmVzdWx0ID0gY3VzdG9taXplciA/IGN1c3RvbWl6ZXIob2JqVmFsdWUsIHNyY1ZhbHVlLCBrZXkpIDogdW5kZWZpbmVkO1xuICAgICAgaWYgKCEocmVzdWx0ID09PSB1bmRlZmluZWQgPyBiYXNlSXNFcXVhbChzcmNWYWx1ZSwgb2JqVmFsdWUsIGN1c3RvbWl6ZXIsIHRydWUpIDogcmVzdWx0KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VJc01hdGNoO1xuIiwiLyoqXG4gKiBUaGUgZnVuY3Rpb24gd2hvc2UgcHJvdG90eXBlIGFsbCBjaGFpbmluZyB3cmFwcGVycyBpbmhlcml0IGZyb20uXG4gKlxuICogQHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gYmFzZUxvZGFzaCgpIHtcbiAgLy8gTm8gb3BlcmF0aW9uIHBlcmZvcm1lZC5cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlTG9kYXNoO1xuIiwidmFyIGJhc2VFYWNoID0gcmVxdWlyZSgnLi9iYXNlRWFjaCcpLFxuICAgIGlzQXJyYXlMaWtlID0gcmVxdWlyZSgnLi9pc0FycmF5TGlrZScpO1xuXG4vKipcbiAqIFRoZSBiYXNlIGltcGxlbWVudGF0aW9uIG9mIGBfLm1hcGAgd2l0aG91dCBzdXBwb3J0IGZvciBjYWxsYmFjayBzaG9ydGhhbmRzXG4gKiBhbmQgYHRoaXNgIGJpbmRpbmcuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fHN0cmluZ30gY29sbGVjdGlvbiBUaGUgY29sbGVjdGlvbiB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgbWFwcGVkIGFycmF5LlxuICovXG5mdW5jdGlvbiBiYXNlTWFwKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgcmVzdWx0ID0gaXNBcnJheUxpa2UoY29sbGVjdGlvbikgPyBBcnJheShjb2xsZWN0aW9uLmxlbmd0aCkgOiBbXTtcblxuICBiYXNlRWFjaChjb2xsZWN0aW9uLCBmdW5jdGlvbih2YWx1ZSwga2V5LCBjb2xsZWN0aW9uKSB7XG4gICAgcmVzdWx0WysraW5kZXhdID0gaXRlcmF0ZWUodmFsdWUsIGtleSwgY29sbGVjdGlvbik7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VNYXA7XG4iLCJ2YXIgYmFzZUlzTWF0Y2ggPSByZXF1aXJlKCcuL2Jhc2VJc01hdGNoJyksXG4gICAgZ2V0TWF0Y2hEYXRhID0gcmVxdWlyZSgnLi9nZXRNYXRjaERhdGEnKSxcbiAgICB0b09iamVjdCA9IHJlcXVpcmUoJy4vdG9PYmplY3QnKTtcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5tYXRjaGVzYCB3aGljaCBkb2VzIG5vdCBjbG9uZSBgc291cmNlYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IHNvdXJjZSBUaGUgb2JqZWN0IG9mIHByb3BlcnR5IHZhbHVlcyB0byBtYXRjaC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlTWF0Y2hlcyhzb3VyY2UpIHtcbiAgdmFyIG1hdGNoRGF0YSA9IGdldE1hdGNoRGF0YShzb3VyY2UpO1xuICBpZiAobWF0Y2hEYXRhLmxlbmd0aCA9PSAxICYmIG1hdGNoRGF0YVswXVsyXSkge1xuICAgIHZhciBrZXkgPSBtYXRjaERhdGFbMF1bMF0sXG4gICAgICAgIHZhbHVlID0gbWF0Y2hEYXRhWzBdWzFdO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIG9iamVjdCA9IHRvT2JqZWN0KG9iamVjdCk7XG4gICAgICByZXR1cm4gb2JqZWN0W2tleV0gPT09IHZhbHVlICYmICh2YWx1ZSAhPT0gdW5kZWZpbmVkIHx8IChrZXkgaW4gb2JqZWN0KSk7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgcmV0dXJuIGJhc2VJc01hdGNoKG9iamVjdCwgbWF0Y2hEYXRhKTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlTWF0Y2hlcztcbiIsInZhciBiYXNlR2V0ID0gcmVxdWlyZSgnLi9iYXNlR2V0JyksXG4gICAgYmFzZUlzRXF1YWwgPSByZXF1aXJlKCcuL2Jhc2VJc0VxdWFsJyksXG4gICAgYmFzZVNsaWNlID0gcmVxdWlyZSgnLi9iYXNlU2xpY2UnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FycmF5JyksXG4gICAgaXNLZXkgPSByZXF1aXJlKCcuL2lzS2V5JyksXG4gICAgaXNTdHJpY3RDb21wYXJhYmxlID0gcmVxdWlyZSgnLi9pc1N0cmljdENvbXBhcmFibGUnKSxcbiAgICBsYXN0ID0gcmVxdWlyZSgnLi4vYXJyYXkvbGFzdCcpLFxuICAgIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi90b09iamVjdCcpLFxuICAgIHRvUGF0aCA9IHJlcXVpcmUoJy4vdG9QYXRoJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ubWF0Y2hlc1Byb3BlcnR5YCB3aGljaCBkb2VzIG5vdCBjbG9uZSBgc3JjVmFsdWVgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCBUaGUgcGF0aCBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LlxuICogQHBhcmFtIHsqfSBzcmNWYWx1ZSBUaGUgdmFsdWUgdG8gY29tcGFyZS5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlTWF0Y2hlc1Byb3BlcnR5KHBhdGgsIHNyY1ZhbHVlKSB7XG4gIHZhciBpc0FyciA9IGlzQXJyYXkocGF0aCksXG4gICAgICBpc0NvbW1vbiA9IGlzS2V5KHBhdGgpICYmIGlzU3RyaWN0Q29tcGFyYWJsZShzcmNWYWx1ZSksXG4gICAgICBwYXRoS2V5ID0gKHBhdGggKyAnJyk7XG5cbiAgcGF0aCA9IHRvUGF0aChwYXRoKTtcbiAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB2YXIga2V5ID0gcGF0aEtleTtcbiAgICBvYmplY3QgPSB0b09iamVjdChvYmplY3QpO1xuICAgIGlmICgoaXNBcnIgfHwgIWlzQ29tbW9uKSAmJiAhKGtleSBpbiBvYmplY3QpKSB7XG4gICAgICBvYmplY3QgPSBwYXRoLmxlbmd0aCA9PSAxID8gb2JqZWN0IDogYmFzZUdldChvYmplY3QsIGJhc2VTbGljZShwYXRoLCAwLCAtMSkpO1xuICAgICAgaWYgKG9iamVjdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGtleSA9IGxhc3QocGF0aCk7XG4gICAgICBvYmplY3QgPSB0b09iamVjdChvYmplY3QpO1xuICAgIH1cbiAgICByZXR1cm4gb2JqZWN0W2tleV0gPT09IHNyY1ZhbHVlXG4gICAgICA/IChzcmNWYWx1ZSAhPT0gdW5kZWZpbmVkIHx8IChrZXkgaW4gb2JqZWN0KSlcbiAgICAgIDogYmFzZUlzRXF1YWwoc3JjVmFsdWUsIG9iamVjdFtrZXldLCB1bmRlZmluZWQsIHRydWUpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VNYXRjaGVzUHJvcGVydHk7XG4iLCJ2YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuL3RvT2JqZWN0Jyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYF8ucHJvcGVydHlgIHdpdGhvdXQgc3VwcG9ydCBmb3IgZGVlcCBwYXRocy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtzdHJpbmd9IGtleSBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYmFzZVByb3BlcnR5KGtleSkge1xuICByZXR1cm4gZnVuY3Rpb24ob2JqZWN0KSB7XG4gICAgcmV0dXJuIG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogdG9PYmplY3Qob2JqZWN0KVtrZXldO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VQcm9wZXJ0eTtcbiIsInZhciBiYXNlR2V0ID0gcmVxdWlyZSgnLi9iYXNlR2V0JyksXG4gICAgdG9QYXRoID0gcmVxdWlyZSgnLi90b1BhdGgnKTtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VQcm9wZXJ0eWAgd2hpY2ggc3VwcG9ydHMgZGVlcCBwYXRocy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheXxzdHJpbmd9IHBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IHRvIGdldC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBiYXNlUHJvcGVydHlEZWVwKHBhdGgpIHtcbiAgdmFyIHBhdGhLZXkgPSAocGF0aCArICcnKTtcbiAgcGF0aCA9IHRvUGF0aChwYXRoKTtcbiAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCkge1xuICAgIHJldHVybiBiYXNlR2V0KG9iamVjdCwgcGF0aCwgcGF0aEtleSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVByb3BlcnR5RGVlcDtcbiIsInZhciBpZGVudGl0eSA9IHJlcXVpcmUoJy4uL3V0aWxpdHkvaWRlbnRpdHknKSxcbiAgICBtZXRhTWFwID0gcmVxdWlyZSgnLi9tZXRhTWFwJyk7XG5cbi8qKlxuICogVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gb2YgYHNldERhdGFgIHdpdGhvdXQgc3VwcG9ydCBmb3IgaG90IGxvb3AgZGV0ZWN0aW9uLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBhc3NvY2lhdGUgbWV0YWRhdGEgd2l0aC5cbiAqIEBwYXJhbSB7Kn0gZGF0YSBUaGUgbWV0YWRhdGEuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgYGZ1bmNgLlxuICovXG52YXIgYmFzZVNldERhdGEgPSAhbWV0YU1hcCA/IGlkZW50aXR5IDogZnVuY3Rpb24oZnVuYywgZGF0YSkge1xuICBtZXRhTWFwLnNldChmdW5jLCBkYXRhKTtcbiAgcmV0dXJuIGZ1bmM7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGJhc2VTZXREYXRhO1xuIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy5zbGljZWAgd2l0aG91dCBhbiBpdGVyYXRlZSBjYWxsIGd1YXJkLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gc2xpY2UuXG4gKiBAcGFyYW0ge251bWJlcn0gW3N0YXJ0PTBdIFRoZSBzdGFydCBwb3NpdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbZW5kPWFycmF5Lmxlbmd0aF0gVGhlIGVuZCBwb3NpdGlvbi5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgc2xpY2Ugb2YgYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYmFzZVNsaWNlKGFycmF5LCBzdGFydCwgZW5kKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIHN0YXJ0ID0gc3RhcnQgPT0gbnVsbCA/IDAgOiAoK3N0YXJ0IHx8IDApO1xuICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgc3RhcnQgPSAtc3RhcnQgPiBsZW5ndGggPyAwIDogKGxlbmd0aCArIHN0YXJ0KTtcbiAgfVxuICBlbmQgPSAoZW5kID09PSB1bmRlZmluZWQgfHwgZW5kID4gbGVuZ3RoKSA/IGxlbmd0aCA6ICgrZW5kIHx8IDApO1xuICBpZiAoZW5kIDwgMCkge1xuICAgIGVuZCArPSBsZW5ndGg7XG4gIH1cbiAgbGVuZ3RoID0gc3RhcnQgPiBlbmQgPyAwIDogKChlbmQgLSBzdGFydCkgPj4+IDApO1xuICBzdGFydCA+Pj49IDA7XG5cbiAgdmFyIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgcmVzdWx0W2luZGV4XSA9IGFycmF5W2luZGV4ICsgc3RhcnRdO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVNsaWNlO1xuIiwiLyoqXG4gKiBDb252ZXJ0cyBgdmFsdWVgIHRvIGEgc3RyaW5nIGlmIGl0J3Mgbm90IG9uZS4gQW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkXG4gKiBmb3IgYG51bGxgIG9yIGB1bmRlZmluZWRgIHZhbHVlcy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gYmFzZVRvU3RyaW5nKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PSBudWxsID8gJycgOiAodmFsdWUgKyAnJyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZVRvU3RyaW5nO1xuIiwiLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgXy52YWx1ZXNgIGFuZCBgXy52YWx1ZXNJbmAgd2hpY2ggY3JlYXRlcyBhblxuICogYXJyYXkgb2YgYG9iamVjdGAgcHJvcGVydHkgdmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHByb3BlcnR5IG5hbWVzXG4gKiBvZiBgcHJvcHNgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcGFyYW0ge0FycmF5fSBwcm9wcyBUaGUgcHJvcGVydHkgbmFtZXMgdG8gZ2V0IHZhbHVlcyBmb3IuXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIHRoZSBhcnJheSBvZiBwcm9wZXJ0eSB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIGJhc2VWYWx1ZXMob2JqZWN0LCBwcm9wcykge1xuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIGxlbmd0aCA9IHByb3BzLmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IEFycmF5KGxlbmd0aCk7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICByZXN1bHRbaW5kZXhdID0gb2JqZWN0W3Byb3BzW2luZGV4XV07XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiYXNlVmFsdWVzO1xuIiwidmFyIGJpbmFyeUluZGV4QnkgPSByZXF1aXJlKCcuL2JpbmFyeUluZGV4QnknKSxcbiAgICBpZGVudGl0eSA9IHJlcXVpcmUoJy4uL3V0aWxpdHkvaWRlbnRpdHknKTtcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdGhlIG1heGltdW0gbGVuZ3RoIGFuZCBpbmRleCBvZiBhbiBhcnJheS4gKi9cbnZhciBNQVhfQVJSQVlfTEVOR1RIID0gNDI5NDk2NzI5NSxcbiAgICBIQUxGX01BWF9BUlJBWV9MRU5HVEggPSBNQVhfQVJSQVlfTEVOR1RIID4+PiAxO1xuXG4vKipcbiAqIFBlcmZvcm1zIGEgYmluYXJ5IHNlYXJjaCBvZiBgYXJyYXlgIHRvIGRldGVybWluZSB0aGUgaW5kZXggYXQgd2hpY2ggYHZhbHVlYFxuICogc2hvdWxkIGJlIGluc2VydGVkIGludG8gYGFycmF5YCBpbiBvcmRlciB0byBtYWludGFpbiBpdHMgc29ydCBvcmRlci5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gYXJyYXkgVGhlIHNvcnRlZCBhcnJheSB0byBpbnNwZWN0LlxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZXZhbHVhdGUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtyZXRIaWdoZXN0XSBTcGVjaWZ5IHJldHVybmluZyB0aGUgaGlnaGVzdCBxdWFsaWZpZWQgaW5kZXguXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBhdCB3aGljaCBgdmFsdWVgIHNob3VsZCBiZSBpbnNlcnRlZFxuICogIGludG8gYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYmluYXJ5SW5kZXgoYXJyYXksIHZhbHVlLCByZXRIaWdoZXN0KSB7XG4gIHZhciBsb3cgPSAwLFxuICAgICAgaGlnaCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogbG93O1xuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT0gJ251bWJlcicgJiYgdmFsdWUgPT09IHZhbHVlICYmIGhpZ2ggPD0gSEFMRl9NQVhfQVJSQVlfTEVOR1RIKSB7XG4gICAgd2hpbGUgKGxvdyA8IGhpZ2gpIHtcbiAgICAgIHZhciBtaWQgPSAobG93ICsgaGlnaCkgPj4+IDEsXG4gICAgICAgICAgY29tcHV0ZWQgPSBhcnJheVttaWRdO1xuXG4gICAgICBpZiAoKHJldEhpZ2hlc3QgPyAoY29tcHV0ZWQgPD0gdmFsdWUpIDogKGNvbXB1dGVkIDwgdmFsdWUpKSAmJiBjb21wdXRlZCAhPT0gbnVsbCkge1xuICAgICAgICBsb3cgPSBtaWQgKyAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaGlnaCA9IG1pZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGhpZ2g7XG4gIH1cbiAgcmV0dXJuIGJpbmFyeUluZGV4QnkoYXJyYXksIHZhbHVlLCBpZGVudGl0eSwgcmV0SGlnaGVzdCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmluYXJ5SW5kZXg7XG4iLCIvKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZUZsb29yID0gTWF0aC5mbG9vcixcbiAgICBuYXRpdmVNaW4gPSBNYXRoLm1pbjtcblxuLyoqIFVzZWQgYXMgcmVmZXJlbmNlcyBmb3IgdGhlIG1heGltdW0gbGVuZ3RoIGFuZCBpbmRleCBvZiBhbiBhcnJheS4gKi9cbnZhciBNQVhfQVJSQVlfTEVOR1RIID0gNDI5NDk2NzI5NSxcbiAgICBNQVhfQVJSQVlfSU5ERVggPSBNQVhfQVJSQVlfTEVOR1RIIC0gMTtcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIGxpa2UgYGJpbmFyeUluZGV4YCBleGNlcHQgdGhhdCBpdCBpbnZva2VzIGBpdGVyYXRlZWAgZm9yXG4gKiBgdmFsdWVgIGFuZCBlYWNoIGVsZW1lbnQgb2YgYGFycmF5YCB0byBjb21wdXRlIHRoZWlyIHNvcnQgcmFua2luZy4gVGhlXG4gKiBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggb25lIGFyZ3VtZW50OyAodmFsdWUpLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgc29ydGVkIGFycmF5IHRvIGluc3BlY3QuXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBldmFsdWF0ZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtyZXRIaWdoZXN0XSBTcGVjaWZ5IHJldHVybmluZyB0aGUgaGlnaGVzdCBxdWFsaWZpZWQgaW5kZXguXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBSZXR1cm5zIHRoZSBpbmRleCBhdCB3aGljaCBgdmFsdWVgIHNob3VsZCBiZSBpbnNlcnRlZFxuICogIGludG8gYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gYmluYXJ5SW5kZXhCeShhcnJheSwgdmFsdWUsIGl0ZXJhdGVlLCByZXRIaWdoZXN0KSB7XG4gIHZhbHVlID0gaXRlcmF0ZWUodmFsdWUpO1xuXG4gIHZhciBsb3cgPSAwLFxuICAgICAgaGlnaCA9IGFycmF5ID8gYXJyYXkubGVuZ3RoIDogMCxcbiAgICAgIHZhbElzTmFOID0gdmFsdWUgIT09IHZhbHVlLFxuICAgICAgdmFsSXNOdWxsID0gdmFsdWUgPT09IG51bGwsXG4gICAgICB2YWxJc1VuZGVmID0gdmFsdWUgPT09IHVuZGVmaW5lZDtcblxuICB3aGlsZSAobG93IDwgaGlnaCkge1xuICAgIHZhciBtaWQgPSBuYXRpdmVGbG9vcigobG93ICsgaGlnaCkgLyAyKSxcbiAgICAgICAgY29tcHV0ZWQgPSBpdGVyYXRlZShhcnJheVttaWRdKSxcbiAgICAgICAgaXNEZWYgPSBjb21wdXRlZCAhPT0gdW5kZWZpbmVkLFxuICAgICAgICBpc1JlZmxleGl2ZSA9IGNvbXB1dGVkID09PSBjb21wdXRlZDtcblxuICAgIGlmICh2YWxJc05hTikge1xuICAgICAgdmFyIHNldExvdyA9IGlzUmVmbGV4aXZlIHx8IHJldEhpZ2hlc3Q7XG4gICAgfSBlbHNlIGlmICh2YWxJc051bGwpIHtcbiAgICAgIHNldExvdyA9IGlzUmVmbGV4aXZlICYmIGlzRGVmICYmIChyZXRIaWdoZXN0IHx8IGNvbXB1dGVkICE9IG51bGwpO1xuICAgIH0gZWxzZSBpZiAodmFsSXNVbmRlZikge1xuICAgICAgc2V0TG93ID0gaXNSZWZsZXhpdmUgJiYgKHJldEhpZ2hlc3QgfHwgaXNEZWYpO1xuICAgIH0gZWxzZSBpZiAoY29tcHV0ZWQgPT0gbnVsbCkge1xuICAgICAgc2V0TG93ID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldExvdyA9IHJldEhpZ2hlc3QgPyAoY29tcHV0ZWQgPD0gdmFsdWUpIDogKGNvbXB1dGVkIDwgdmFsdWUpO1xuICAgIH1cbiAgICBpZiAoc2V0TG93KSB7XG4gICAgICBsb3cgPSBtaWQgKyAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBoaWdoID0gbWlkO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbmF0aXZlTWluKGhpZ2gsIE1BWF9BUlJBWV9JTkRFWCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmluYXJ5SW5kZXhCeTtcbiIsInZhciBpZGVudGl0eSA9IHJlcXVpcmUoJy4uL3V0aWxpdHkvaWRlbnRpdHknKTtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VDYWxsYmFja2Agd2hpY2ggb25seSBzdXBwb3J0cyBgdGhpc2AgYmluZGluZ1xuICogYW5kIHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBhcmd1bWVudHMgdG8gcHJvdmlkZSB0byBgZnVuY2AuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGJpbmQuXG4gKiBAcGFyYW0geyp9IHRoaXNBcmcgVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbYXJnQ291bnRdIFRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHRvIHByb3ZpZGUgdG8gYGZ1bmNgLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBjYWxsYmFjay5cbiAqL1xuZnVuY3Rpb24gYmluZENhbGxiYWNrKGZ1bmMsIHRoaXNBcmcsIGFyZ0NvdW50KSB7XG4gIGlmICh0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGlkZW50aXR5O1xuICB9XG4gIGlmICh0aGlzQXJnID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZnVuYztcbiAgfVxuICBzd2l0Y2ggKGFyZ0NvdW50KSB7XG4gICAgY2FzZSAxOiByZXR1cm4gZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgIHJldHVybiBmdW5jLmNhbGwodGhpc0FyZywgdmFsdWUpO1xuICAgIH07XG4gICAgY2FzZSAzOiByZXR1cm4gZnVuY3Rpb24odmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgICByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIHZhbHVlLCBpbmRleCwgY29sbGVjdGlvbik7XG4gICAgfTtcbiAgICBjYXNlIDQ6IHJldHVybiBmdW5jdGlvbihhY2N1bXVsYXRvciwgdmFsdWUsIGluZGV4LCBjb2xsZWN0aW9uKSB7XG4gICAgICByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIGFjY3VtdWxhdG9yLCB2YWx1ZSwgaW5kZXgsIGNvbGxlY3Rpb24pO1xuICAgIH07XG4gICAgY2FzZSA1OiByZXR1cm4gZnVuY3Rpb24odmFsdWUsIG90aGVyLCBrZXksIG9iamVjdCwgc291cmNlKSB7XG4gICAgICByZXR1cm4gZnVuYy5jYWxsKHRoaXNBcmcsIHZhbHVlLCBvdGhlciwga2V5LCBvYmplY3QsIHNvdXJjZSk7XG4gICAgfTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGZ1bmMuYXBwbHkodGhpc0FyZywgYXJndW1lbnRzKTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBiaW5kQ2FsbGJhY2s7XG4iLCIoZnVuY3Rpb24gKGdsb2JhbCl7XG4vKiogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIEFycmF5QnVmZmVyID0gZ2xvYmFsLkFycmF5QnVmZmVyLFxuICAgIFVpbnQ4QXJyYXkgPSBnbG9iYWwuVWludDhBcnJheTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgY2xvbmUgb2YgdGhlIGdpdmVuIGFycmF5IGJ1ZmZlci5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheUJ1ZmZlcn0gYnVmZmVyIFRoZSBhcnJheSBidWZmZXIgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7QXJyYXlCdWZmZXJ9IFJldHVybnMgdGhlIGNsb25lZCBhcnJheSBidWZmZXIuXG4gKi9cbmZ1bmN0aW9uIGJ1ZmZlckNsb25lKGJ1ZmZlcikge1xuICB2YXIgcmVzdWx0ID0gbmV3IEFycmF5QnVmZmVyKGJ1ZmZlci5ieXRlTGVuZ3RoKSxcbiAgICAgIHZpZXcgPSBuZXcgVWludDhBcnJheShyZXN1bHQpO1xuXG4gIHZpZXcuc2V0KG5ldyBVaW50OEFycmF5KGJ1ZmZlcikpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGJ1ZmZlckNsb25lO1xuXG59KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbCA6IHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiID8gc2VsZiA6IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiB7fSlcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0OnV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYkltNXZaR1ZmYlc5a2RXeGxjeTlzYjJSaGMyZ3RZMjl0Y0dGMEwybHVkR1Z5Ym1Gc0wySjFabVpsY2tOc2IyNWxMbXB6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUk3UVVGQlFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRWlMQ0ptYVd4bElqb2laMlZ1WlhKaGRHVmtMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtpQk9ZWFJwZG1VZ2JXVjBhRzlrSUhKbFptVnlaVzVqWlhNdUlDb3ZYRzUyWVhJZ1FYSnlZWGxDZFdabVpYSWdQU0JuYkc5aVlXd3VRWEp5WVhsQ2RXWm1aWElzWEc0Z0lDQWdWV2x1ZERoQmNuSmhlU0E5SUdkc2IySmhiQzVWYVc1ME9FRnljbUY1TzF4dVhHNHZLaXBjYmlBcUlFTnlaV0YwWlhNZ1lTQmpiRzl1WlNCdlppQjBhR1VnWjJsMlpXNGdZWEp5WVhrZ1luVm1abVZ5TGx4dUlDcGNiaUFxSUVCd2NtbDJZWFJsWEc0Z0tpQkFjR0Z5WVcwZ2UwRnljbUY1UW5WbVptVnlmU0JpZFdabVpYSWdWR2hsSUdGeWNtRjVJR0oxWm1abGNpQjBieUJqYkc5dVpTNWNiaUFxSUVCeVpYUjFjbTV6SUh0QmNuSmhlVUoxWm1abGNuMGdVbVYwZFhKdWN5QjBhR1VnWTJ4dmJtVmtJR0Z5Y21GNUlHSjFabVpsY2k1Y2JpQXFMMXh1Wm5WdVkzUnBiMjRnWW5WbVptVnlRMnh2Ym1Vb1luVm1abVZ5S1NCN1hHNGdJSFpoY2lCeVpYTjFiSFFnUFNCdVpYY2dRWEp5WVhsQ2RXWm1aWElvWW5WbVptVnlMbUo1ZEdWTVpXNW5kR2dwTEZ4dUlDQWdJQ0FnZG1sbGR5QTlJRzVsZHlCVmFXNTBPRUZ5Y21GNUtISmxjM1ZzZENrN1hHNWNiaUFnZG1sbGR5NXpaWFFvYm1WM0lGVnBiblE0UVhKeVlYa29ZblZtWm1WeUtTazdYRzRnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzU5WEc1Y2JtMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ1luVm1abVZ5UTJ4dmJtVTdYRzRpWFgwPSIsIi8qIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWF4ID0gTWF0aC5tYXg7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSB0aGF0IGlzIHRoZSBjb21wb3NpdGlvbiBvZiBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMsXG4gKiBwbGFjZWhvbGRlcnMsIGFuZCBwcm92aWRlZCBhcmd1bWVudHMgaW50byBhIHNpbmdsZSBhcnJheSBvZiBhcmd1bWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBhcmdzIFRoZSBwcm92aWRlZCBhcmd1bWVudHMuXG4gKiBAcGFyYW0ge0FycmF5fSBwYXJ0aWFscyBUaGUgYXJndW1lbnRzIHRvIHByZXBlbmQgdG8gdGhvc2UgcHJvdmlkZWQuXG4gKiBAcGFyYW0ge0FycmF5fSBob2xkZXJzIFRoZSBgcGFydGlhbHNgIHBsYWNlaG9sZGVyIGluZGV4ZXMuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBjb21wb3NlZCBhcmd1bWVudHMuXG4gKi9cbmZ1bmN0aW9uIGNvbXBvc2VBcmdzKGFyZ3MsIHBhcnRpYWxzLCBob2xkZXJzKSB7XG4gIHZhciBob2xkZXJzTGVuZ3RoID0gaG9sZGVycy5sZW5ndGgsXG4gICAgICBhcmdzSW5kZXggPSAtMSxcbiAgICAgIGFyZ3NMZW5ndGggPSBuYXRpdmVNYXgoYXJncy5sZW5ndGggLSBob2xkZXJzTGVuZ3RoLCAwKSxcbiAgICAgIGxlZnRJbmRleCA9IC0xLFxuICAgICAgbGVmdExlbmd0aCA9IHBhcnRpYWxzLmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IEFycmF5KGxlZnRMZW5ndGggKyBhcmdzTGVuZ3RoKTtcblxuICB3aGlsZSAoKytsZWZ0SW5kZXggPCBsZWZ0TGVuZ3RoKSB7XG4gICAgcmVzdWx0W2xlZnRJbmRleF0gPSBwYXJ0aWFsc1tsZWZ0SW5kZXhdO1xuICB9XG4gIHdoaWxlICgrK2FyZ3NJbmRleCA8IGhvbGRlcnNMZW5ndGgpIHtcbiAgICByZXN1bHRbaG9sZGVyc1thcmdzSW5kZXhdXSA9IGFyZ3NbYXJnc0luZGV4XTtcbiAgfVxuICB3aGlsZSAoYXJnc0xlbmd0aC0tKSB7XG4gICAgcmVzdWx0W2xlZnRJbmRleCsrXSA9IGFyZ3NbYXJnc0luZGV4KytdO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29tcG9zZUFyZ3M7XG4iLCIvKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1heCA9IE1hdGgubWF4O1xuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgbGlrZSBgY29tcG9zZUFyZ3NgIGV4Y2VwdCB0aGF0IHRoZSBhcmd1bWVudHMgY29tcG9zaXRpb25cbiAqIGlzIHRhaWxvcmVkIGZvciBgXy5wYXJ0aWFsUmlnaHRgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gYXJncyBUaGUgcHJvdmlkZWQgYXJndW1lbnRzLlxuICogQHBhcmFtIHtBcnJheX0gcGFydGlhbHMgVGhlIGFyZ3VtZW50cyB0byBhcHBlbmQgdG8gdGhvc2UgcHJvdmlkZWQuXG4gKiBAcGFyYW0ge0FycmF5fSBob2xkZXJzIFRoZSBgcGFydGlhbHNgIHBsYWNlaG9sZGVyIGluZGV4ZXMuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBhcnJheSBvZiBjb21wb3NlZCBhcmd1bWVudHMuXG4gKi9cbmZ1bmN0aW9uIGNvbXBvc2VBcmdzUmlnaHQoYXJncywgcGFydGlhbHMsIGhvbGRlcnMpIHtcbiAgdmFyIGhvbGRlcnNJbmRleCA9IC0xLFxuICAgICAgaG9sZGVyc0xlbmd0aCA9IGhvbGRlcnMubGVuZ3RoLFxuICAgICAgYXJnc0luZGV4ID0gLTEsXG4gICAgICBhcmdzTGVuZ3RoID0gbmF0aXZlTWF4KGFyZ3MubGVuZ3RoIC0gaG9sZGVyc0xlbmd0aCwgMCksXG4gICAgICByaWdodEluZGV4ID0gLTEsXG4gICAgICByaWdodExlbmd0aCA9IHBhcnRpYWxzLmxlbmd0aCxcbiAgICAgIHJlc3VsdCA9IEFycmF5KGFyZ3NMZW5ndGggKyByaWdodExlbmd0aCk7XG5cbiAgd2hpbGUgKCsrYXJnc0luZGV4IDwgYXJnc0xlbmd0aCkge1xuICAgIHJlc3VsdFthcmdzSW5kZXhdID0gYXJnc1thcmdzSW5kZXhdO1xuICB9XG4gIHZhciBvZmZzZXQgPSBhcmdzSW5kZXg7XG4gIHdoaWxlICgrK3JpZ2h0SW5kZXggPCByaWdodExlbmd0aCkge1xuICAgIHJlc3VsdFtvZmZzZXQgKyByaWdodEluZGV4XSA9IHBhcnRpYWxzW3JpZ2h0SW5kZXhdO1xuICB9XG4gIHdoaWxlICgrK2hvbGRlcnNJbmRleCA8IGhvbGRlcnNMZW5ndGgpIHtcbiAgICByZXN1bHRbb2Zmc2V0ICsgaG9sZGVyc1tob2xkZXJzSW5kZXhdXSA9IGFyZ3NbYXJnc0luZGV4KytdO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY29tcG9zZUFyZ3NSaWdodDtcbiIsInZhciBnZXRMZW5ndGggPSByZXF1aXJlKCcuL2dldExlbmd0aCcpLFxuICAgIGlzTGVuZ3RoID0gcmVxdWlyZSgnLi9pc0xlbmd0aCcpLFxuICAgIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi90b09iamVjdCcpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBgYmFzZUVhY2hgIG9yIGBiYXNlRWFjaFJpZ2h0YCBmdW5jdGlvbi5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZWFjaEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBhIGNvbGxlY3Rpb24uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtmcm9tUmlnaHRdIFNwZWNpZnkgaXRlcmF0aW5nIGZyb20gcmlnaHQgdG8gbGVmdC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGJhc2UgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VFYWNoKGVhY2hGdW5jLCBmcm9tUmlnaHQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKSB7XG4gICAgdmFyIGxlbmd0aCA9IGNvbGxlY3Rpb24gPyBnZXRMZW5ndGgoY29sbGVjdGlvbikgOiAwO1xuICAgIGlmICghaXNMZW5ndGgobGVuZ3RoKSkge1xuICAgICAgcmV0dXJuIGVhY2hGdW5jKGNvbGxlY3Rpb24sIGl0ZXJhdGVlKTtcbiAgICB9XG4gICAgdmFyIGluZGV4ID0gZnJvbVJpZ2h0ID8gbGVuZ3RoIDogLTEsXG4gICAgICAgIGl0ZXJhYmxlID0gdG9PYmplY3QoY29sbGVjdGlvbik7XG5cbiAgICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xuICAgICAgaWYgKGl0ZXJhdGVlKGl0ZXJhYmxlW2luZGV4XSwgaW5kZXgsIGl0ZXJhYmxlKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZUJhc2VFYWNoO1xuIiwidmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi90b09iamVjdCcpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBiYXNlIGZ1bmN0aW9uIGZvciBgXy5mb3JJbmAgb3IgYF8uZm9ySW5SaWdodGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIHRoZSBuZXcgYmFzZSBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQmFzZUZvcihmcm9tUmlnaHQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKG9iamVjdCwgaXRlcmF0ZWUsIGtleXNGdW5jKSB7XG4gICAgdmFyIGl0ZXJhYmxlID0gdG9PYmplY3Qob2JqZWN0KSxcbiAgICAgICAgcHJvcHMgPSBrZXlzRnVuYyhvYmplY3QpLFxuICAgICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGgsXG4gICAgICAgIGluZGV4ID0gZnJvbVJpZ2h0ID8gbGVuZ3RoIDogLTE7XG5cbiAgICB3aGlsZSAoKGZyb21SaWdodCA/IGluZGV4LS0gOiArK2luZGV4IDwgbGVuZ3RoKSkge1xuICAgICAgdmFyIGtleSA9IHByb3BzW2luZGV4XTtcbiAgICAgIGlmIChpdGVyYXRlZShpdGVyYWJsZVtrZXldLCBrZXksIGl0ZXJhYmxlKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvYmplY3Q7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlQmFzZUZvcjtcbiIsIihmdW5jdGlvbiAoZ2xvYmFsKXtcbnZhciBjcmVhdGVDdG9yV3JhcHBlciA9IHJlcXVpcmUoJy4vY3JlYXRlQ3RvcldyYXBwZXInKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCB3cmFwcyBgZnVuY2AgYW5kIGludm9rZXMgaXQgd2l0aCB0aGUgYHRoaXNgXG4gKiBiaW5kaW5nIG9mIGB0aGlzQXJnYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYmluZC5cbiAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBib3VuZCBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQmluZFdyYXBwZXIoZnVuYywgdGhpc0FyZykge1xuICB2YXIgQ3RvciA9IGNyZWF0ZUN0b3JXcmFwcGVyKGZ1bmMpO1xuXG4gIGZ1bmN0aW9uIHdyYXBwZXIoKSB7XG4gICAgdmFyIGZuID0gKHRoaXMgJiYgdGhpcyAhPT0gZ2xvYmFsICYmIHRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyKSA/IEN0b3IgOiBmdW5jO1xuICAgIHJldHVybiBmbi5hcHBseSh0aGlzQXJnLCBhcmd1bWVudHMpO1xuICB9XG4gIHJldHVybiB3cmFwcGVyO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZUJpbmRXcmFwcGVyO1xuXG59KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbCA6IHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiID8gc2VsZiA6IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiB7fSlcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0OnV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYkltNXZaR1ZmYlc5a2RXeGxjeTlzYjJSaGMyZ3RZMjl0Y0dGMEwybHVkR1Z5Ym1Gc0wyTnlaV0YwWlVKcGJtUlhjbUZ3Y0dWeUxtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdRVUZCUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQklpd2labWxzWlNJNkltZGxibVZ5WVhSbFpDNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUoyWVhJZ1kzSmxZWFJsUTNSdmNsZHlZWEJ3WlhJZ1BTQnlaWEYxYVhKbEtDY3VMMk55WldGMFpVTjBiM0pYY21Gd2NHVnlKeWs3WEc1Y2JpOHFLbHh1SUNvZ1EzSmxZWFJsY3lCaElHWjFibU4wYVc5dUlIUm9ZWFFnZDNKaGNITWdZR1oxYm1OZ0lHRnVaQ0JwYm5admEyVnpJR2wwSUhkcGRHZ2dkR2hsSUdCMGFHbHpZRnh1SUNvZ1ltbHVaR2x1WnlCdlppQmdkR2hwYzBGeVoyQXVYRzRnS2x4dUlDb2dRSEJ5YVhaaGRHVmNiaUFxSUVCd1lYSmhiU0I3Um5WdVkzUnBiMjU5SUdaMWJtTWdWR2hsSUdaMWJtTjBhVzl1SUhSdklHSnBibVF1WEc0Z0tpQkFjR0Z5WVcwZ2V5cDlJRnQwYUdselFYSm5YU0JVYUdVZ1lIUm9hWE5nSUdKcGJtUnBibWNnYjJZZ1lHWjFibU5nTGx4dUlDb2dRSEpsZEhWeWJuTWdlMFoxYm1OMGFXOXVmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2dZbTkxYm1RZ1puVnVZM1JwYjI0dVhHNGdLaTljYm1aMWJtTjBhVzl1SUdOeVpXRjBaVUpwYm1SWGNtRndjR1Z5S0daMWJtTXNJSFJvYVhOQmNtY3BJSHRjYmlBZ2RtRnlJRU4wYjNJZ1BTQmpjbVZoZEdWRGRHOXlWM0poY0hCbGNpaG1kVzVqS1R0Y2JseHVJQ0JtZFc1amRHbHZiaUIzY21Gd2NHVnlLQ2tnZTF4dUlDQWdJSFpoY2lCbWJpQTlJQ2gwYUdseklDWW1JSFJvYVhNZ0lUMDlJR2RzYjJKaGJDQW1KaUIwYUdseklHbHVjM1JoYm1ObGIyWWdkM0poY0hCbGNpa2dQeUJEZEc5eUlEb2dablZ1WXp0Y2JpQWdJQ0J5WlhSMWNtNGdabTR1WVhCd2JIa29kR2hwYzBGeVp5d2dZWEpuZFcxbGJuUnpLVHRjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdkM0poY0hCbGNqdGNibjFjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCamNtVmhkR1ZDYVc1a1YzSmhjSEJsY2p0Y2JpSmRmUT09IiwidmFyIGJhc2VDcmVhdGUgPSByZXF1aXJlKCcuL2Jhc2VDcmVhdGUnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2xhbmcvaXNPYmplY3QnKTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZnVuY3Rpb24gdGhhdCBwcm9kdWNlcyBhbiBpbnN0YW5jZSBvZiBgQ3RvcmAgcmVnYXJkbGVzcyBvZlxuICogd2hldGhlciBpdCB3YXMgaW52b2tlZCBhcyBwYXJ0IG9mIGEgYG5ld2AgZXhwcmVzc2lvbiBvciBieSBgY2FsbGAgb3IgYGFwcGx5YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gQ3RvciBUaGUgY29uc3RydWN0b3IgdG8gd3JhcC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHdyYXBwZWQgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUN0b3JXcmFwcGVyKEN0b3IpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgIC8vIFVzZSBhIGBzd2l0Y2hgIHN0YXRlbWVudCB0byB3b3JrIHdpdGggY2xhc3MgY29uc3RydWN0b3JzLlxuICAgIC8vIFNlZSBodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi82LjAvI3NlYy1lY21hc2NyaXB0LWZ1bmN0aW9uLW9iamVjdHMtY2FsbC10aGlzYXJndW1lbnQtYXJndW1lbnRzbGlzdFxuICAgIC8vIGZvciBtb3JlIGRldGFpbHMuXG4gICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgc3dpdGNoIChhcmdzLmxlbmd0aCkge1xuICAgICAgY2FzZSAwOiByZXR1cm4gbmV3IEN0b3I7XG4gICAgICBjYXNlIDE6IHJldHVybiBuZXcgQ3RvcihhcmdzWzBdKTtcbiAgICAgIGNhc2UgMjogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0sIGFyZ3NbMV0pO1xuICAgICAgY2FzZSAzOiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSk7XG4gICAgICBjYXNlIDQ6IHJldHVybiBuZXcgQ3RvcihhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdLCBhcmdzWzNdKTtcbiAgICAgIGNhc2UgNTogcmV0dXJuIG5ldyBDdG9yKGFyZ3NbMF0sIGFyZ3NbMV0sIGFyZ3NbMl0sIGFyZ3NbM10sIGFyZ3NbNF0pO1xuICAgICAgY2FzZSA2OiByZXR1cm4gbmV3IEN0b3IoYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSwgYXJnc1s0XSwgYXJnc1s1XSk7XG4gICAgICBjYXNlIDc6IHJldHVybiBuZXcgQ3RvcihhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdLCBhcmdzWzNdLCBhcmdzWzRdLCBhcmdzWzVdLCBhcmdzWzZdKTtcbiAgICB9XG4gICAgdmFyIHRoaXNCaW5kaW5nID0gYmFzZUNyZWF0ZShDdG9yLnByb3RvdHlwZSksXG4gICAgICAgIHJlc3VsdCA9IEN0b3IuYXBwbHkodGhpc0JpbmRpbmcsIGFyZ3MpO1xuXG4gICAgLy8gTWltaWMgdGhlIGNvbnN0cnVjdG9yJ3MgYHJldHVybmAgYmVoYXZpb3IuXG4gICAgLy8gU2VlIGh0dHBzOi8vZXM1LmdpdGh1Yi5pby8jeDEzLjIuMiBmb3IgbW9yZSBkZXRhaWxzLlxuICAgIHJldHVybiBpc09iamVjdChyZXN1bHQpID8gcmVzdWx0IDogdGhpc0JpbmRpbmc7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlQ3RvcldyYXBwZXI7XG4iLCJ2YXIgYmFzZUNhbGxiYWNrID0gcmVxdWlyZSgnLi9iYXNlQ2FsbGJhY2snKSxcbiAgICBiYXNlRmluZCA9IHJlcXVpcmUoJy4vYmFzZUZpbmQnKSxcbiAgICBiYXNlRmluZEluZGV4ID0gcmVxdWlyZSgnLi9iYXNlRmluZEluZGV4JyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcnJheScpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBgXy5maW5kYCBvciBgXy5maW5kTGFzdGAgZnVuY3Rpb24uXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGVhY2hGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYSBjb2xsZWN0aW9uLlxuICogQHBhcmFtIHtib29sZWFufSBbZnJvbVJpZ2h0XSBTcGVjaWZ5IGl0ZXJhdGluZyBmcm9tIHJpZ2h0IHRvIGxlZnQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmaW5kIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBjcmVhdGVGaW5kKGVhY2hGdW5jLCBmcm9tUmlnaHQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgdGhpc0FyZykge1xuICAgIHByZWRpY2F0ZSA9IGJhc2VDYWxsYmFjayhwcmVkaWNhdGUsIHRoaXNBcmcsIDMpO1xuICAgIGlmIChpc0FycmF5KGNvbGxlY3Rpb24pKSB7XG4gICAgICB2YXIgaW5kZXggPSBiYXNlRmluZEluZGV4KGNvbGxlY3Rpb24sIHByZWRpY2F0ZSwgZnJvbVJpZ2h0KTtcbiAgICAgIHJldHVybiBpbmRleCA+IC0xID8gY29sbGVjdGlvbltpbmRleF0gOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiBiYXNlRmluZChjb2xsZWN0aW9uLCBwcmVkaWNhdGUsIGVhY2hGdW5jKTtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVGaW5kO1xuIiwidmFyIGJpbmRDYWxsYmFjayA9IHJlcXVpcmUoJy4vYmluZENhbGxiYWNrJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcnJheScpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiBmb3IgYF8uZm9yRWFjaGAgb3IgYF8uZm9yRWFjaFJpZ2h0YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gYXJyYXlGdW5jIFRoZSBmdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgYW4gYXJyYXkuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlYWNoRnVuYyBUaGUgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGEgY29sbGVjdGlvbi5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGVhY2ggZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUZvckVhY2goYXJyYXlGdW5jLCBlYWNoRnVuYykge1xuICByZXR1cm4gZnVuY3Rpb24oY29sbGVjdGlvbiwgaXRlcmF0ZWUsIHRoaXNBcmcpIHtcbiAgICByZXR1cm4gKHR5cGVvZiBpdGVyYXRlZSA9PSAnZnVuY3Rpb24nICYmIHRoaXNBcmcgPT09IHVuZGVmaW5lZCAmJiBpc0FycmF5KGNvbGxlY3Rpb24pKVxuICAgICAgPyBhcnJheUZ1bmMoY29sbGVjdGlvbiwgaXRlcmF0ZWUpXG4gICAgICA6IGVhY2hGdW5jKGNvbGxlY3Rpb24sIGJpbmRDYWxsYmFjayhpdGVyYXRlZSwgdGhpc0FyZywgMykpO1xuICB9O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZUZvckVhY2g7XG4iLCIoZnVuY3Rpb24gKGdsb2JhbCl7XG52YXIgYXJyYXlDb3B5ID0gcmVxdWlyZSgnLi9hcnJheUNvcHknKSxcbiAgICBjb21wb3NlQXJncyA9IHJlcXVpcmUoJy4vY29tcG9zZUFyZ3MnKSxcbiAgICBjb21wb3NlQXJnc1JpZ2h0ID0gcmVxdWlyZSgnLi9jb21wb3NlQXJnc1JpZ2h0JyksXG4gICAgY3JlYXRlQ3RvcldyYXBwZXIgPSByZXF1aXJlKCcuL2NyZWF0ZUN0b3JXcmFwcGVyJyksXG4gICAgaXNMYXppYWJsZSA9IHJlcXVpcmUoJy4vaXNMYXppYWJsZScpLFxuICAgIHJlb3JkZXIgPSByZXF1aXJlKCcuL3Jlb3JkZXInKSxcbiAgICByZXBsYWNlSG9sZGVycyA9IHJlcXVpcmUoJy4vcmVwbGFjZUhvbGRlcnMnKSxcbiAgICBzZXREYXRhID0gcmVxdWlyZSgnLi9zZXREYXRhJyk7XG5cbi8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIHdyYXBwZXIgbWV0YWRhdGEuICovXG52YXIgQklORF9GTEFHID0gMSxcbiAgICBCSU5EX0tFWV9GTEFHID0gMixcbiAgICBDVVJSWV9CT1VORF9GTEFHID0gNCxcbiAgICBDVVJSWV9GTEFHID0gOCxcbiAgICBDVVJSWV9SSUdIVF9GTEFHID0gMTYsXG4gICAgUEFSVElBTF9GTEFHID0gMzIsXG4gICAgUEFSVElBTF9SSUdIVF9GTEFHID0gNjQsXG4gICAgQVJZX0ZMQUcgPSAxMjg7XG5cbi8qIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWF4ID0gTWF0aC5tYXg7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIGFuZCBpbnZva2VzIGl0IHdpdGggb3B0aW9uYWwgYHRoaXNgXG4gKiBiaW5kaW5nIG9mLCBwYXJ0aWFsIGFwcGxpY2F0aW9uLCBhbmQgY3VycnlpbmcuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb258c3RyaW5nfSBmdW5jIFRoZSBmdW5jdGlvbiBvciBtZXRob2QgbmFtZSB0byByZWZlcmVuY2UuXG4gKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBvZiBmbGFncy4gU2VlIGBjcmVhdGVXcmFwcGVyYCBmb3IgbW9yZSBkZXRhaWxzLlxuICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBmdW5jYC5cbiAqIEBwYXJhbSB7QXJyYXl9IFtwYXJ0aWFsc10gVGhlIGFyZ3VtZW50cyB0byBwcmVwZW5kIHRvIHRob3NlIHByb3ZpZGVkIHRvIHRoZSBuZXcgZnVuY3Rpb24uXG4gKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc10gVGhlIGBwYXJ0aWFsc2AgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAqIEBwYXJhbSB7QXJyYXl9IFtwYXJ0aWFsc1JpZ2h0XSBUaGUgYXJndW1lbnRzIHRvIGFwcGVuZCB0byB0aG9zZSBwcm92aWRlZCB0byB0aGUgbmV3IGZ1bmN0aW9uLlxuICogQHBhcmFtIHtBcnJheX0gW2hvbGRlcnNSaWdodF0gVGhlIGBwYXJ0aWFsc1JpZ2h0YCBwbGFjZWhvbGRlciBpbmRleGVzLlxuICogQHBhcmFtIHtBcnJheX0gW2FyZ1Bvc10gVGhlIGFyZ3VtZW50IHBvc2l0aW9ucyBvZiB0aGUgbmV3IGZ1bmN0aW9uLlxuICogQHBhcmFtIHtudW1iZXJ9IFthcnldIFRoZSBhcml0eSBjYXAgb2YgYGZ1bmNgLlxuICogQHBhcmFtIHtudW1iZXJ9IFthcml0eV0gVGhlIGFyaXR5IG9mIGBmdW5jYC5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IHdyYXBwZWQgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUh5YnJpZFdyYXBwZXIoZnVuYywgYml0bWFzaywgdGhpc0FyZywgcGFydGlhbHMsIGhvbGRlcnMsIHBhcnRpYWxzUmlnaHQsIGhvbGRlcnNSaWdodCwgYXJnUG9zLCBhcnksIGFyaXR5KSB7XG4gIHZhciBpc0FyeSA9IGJpdG1hc2sgJiBBUllfRkxBRyxcbiAgICAgIGlzQmluZCA9IGJpdG1hc2sgJiBCSU5EX0ZMQUcsXG4gICAgICBpc0JpbmRLZXkgPSBiaXRtYXNrICYgQklORF9LRVlfRkxBRyxcbiAgICAgIGlzQ3VycnkgPSBiaXRtYXNrICYgQ1VSUllfRkxBRyxcbiAgICAgIGlzQ3VycnlCb3VuZCA9IGJpdG1hc2sgJiBDVVJSWV9CT1VORF9GTEFHLFxuICAgICAgaXNDdXJyeVJpZ2h0ID0gYml0bWFzayAmIENVUlJZX1JJR0hUX0ZMQUcsXG4gICAgICBDdG9yID0gaXNCaW5kS2V5ID8gdW5kZWZpbmVkIDogY3JlYXRlQ3RvcldyYXBwZXIoZnVuYyk7XG5cbiAgZnVuY3Rpb24gd3JhcHBlcigpIHtcbiAgICAvLyBBdm9pZCBgYXJndW1lbnRzYCBvYmplY3QgdXNlIGRpc3F1YWxpZnlpbmcgb3B0aW1pemF0aW9ucyBieVxuICAgIC8vIGNvbnZlcnRpbmcgaXQgdG8gYW4gYXJyYXkgYmVmb3JlIHByb3ZpZGluZyBpdCB0byBvdGhlciBmdW5jdGlvbnMuXG4gICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXG4gICAgICAgIGluZGV4ID0gbGVuZ3RoLFxuICAgICAgICBhcmdzID0gQXJyYXkobGVuZ3RoKTtcblxuICAgIHdoaWxlIChpbmRleC0tKSB7XG4gICAgICBhcmdzW2luZGV4XSA9IGFyZ3VtZW50c1tpbmRleF07XG4gICAgfVxuICAgIGlmIChwYXJ0aWFscykge1xuICAgICAgYXJncyA9IGNvbXBvc2VBcmdzKGFyZ3MsIHBhcnRpYWxzLCBob2xkZXJzKTtcbiAgICB9XG4gICAgaWYgKHBhcnRpYWxzUmlnaHQpIHtcbiAgICAgIGFyZ3MgPSBjb21wb3NlQXJnc1JpZ2h0KGFyZ3MsIHBhcnRpYWxzUmlnaHQsIGhvbGRlcnNSaWdodCk7XG4gICAgfVxuICAgIGlmIChpc0N1cnJ5IHx8IGlzQ3VycnlSaWdodCkge1xuICAgICAgdmFyIHBsYWNlaG9sZGVyID0gd3JhcHBlci5wbGFjZWhvbGRlcixcbiAgICAgICAgICBhcmdzSG9sZGVycyA9IHJlcGxhY2VIb2xkZXJzKGFyZ3MsIHBsYWNlaG9sZGVyKTtcblxuICAgICAgbGVuZ3RoIC09IGFyZ3NIb2xkZXJzLmxlbmd0aDtcbiAgICAgIGlmIChsZW5ndGggPCBhcml0eSkge1xuICAgICAgICB2YXIgbmV3QXJnUG9zID0gYXJnUG9zID8gYXJyYXlDb3B5KGFyZ1BvcykgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuZXdBcml0eSA9IG5hdGl2ZU1heChhcml0eSAtIGxlbmd0aCwgMCksXG4gICAgICAgICAgICBuZXdzSG9sZGVycyA9IGlzQ3VycnkgPyBhcmdzSG9sZGVycyA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG5ld0hvbGRlcnNSaWdodCA9IGlzQ3VycnkgPyB1bmRlZmluZWQgOiBhcmdzSG9sZGVycyxcbiAgICAgICAgICAgIG5ld1BhcnRpYWxzID0gaXNDdXJyeSA/IGFyZ3MgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuZXdQYXJ0aWFsc1JpZ2h0ID0gaXNDdXJyeSA/IHVuZGVmaW5lZCA6IGFyZ3M7XG5cbiAgICAgICAgYml0bWFzayB8PSAoaXNDdXJyeSA/IFBBUlRJQUxfRkxBRyA6IFBBUlRJQUxfUklHSFRfRkxBRyk7XG4gICAgICAgIGJpdG1hc2sgJj0gfihpc0N1cnJ5ID8gUEFSVElBTF9SSUdIVF9GTEFHIDogUEFSVElBTF9GTEFHKTtcblxuICAgICAgICBpZiAoIWlzQ3VycnlCb3VuZCkge1xuICAgICAgICAgIGJpdG1hc2sgJj0gfihCSU5EX0ZMQUcgfCBCSU5EX0tFWV9GTEFHKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgbmV3RGF0YSA9IFtmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBuZXdQYXJ0aWFscywgbmV3c0hvbGRlcnMsIG5ld1BhcnRpYWxzUmlnaHQsIG5ld0hvbGRlcnNSaWdodCwgbmV3QXJnUG9zLCBhcnksIG5ld0FyaXR5XSxcbiAgICAgICAgICAgIHJlc3VsdCA9IGNyZWF0ZUh5YnJpZFdyYXBwZXIuYXBwbHkodW5kZWZpbmVkLCBuZXdEYXRhKTtcblxuICAgICAgICBpZiAoaXNMYXppYWJsZShmdW5jKSkge1xuICAgICAgICAgIHNldERhdGEocmVzdWx0LCBuZXdEYXRhKTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIHRoaXNCaW5kaW5nID0gaXNCaW5kID8gdGhpc0FyZyA6IHRoaXMsXG4gICAgICAgIGZuID0gaXNCaW5kS2V5ID8gdGhpc0JpbmRpbmdbZnVuY10gOiBmdW5jO1xuXG4gICAgaWYgKGFyZ1Bvcykge1xuICAgICAgYXJncyA9IHJlb3JkZXIoYXJncywgYXJnUG9zKTtcbiAgICB9XG4gICAgaWYgKGlzQXJ5ICYmIGFyeSA8IGFyZ3MubGVuZ3RoKSB7XG4gICAgICBhcmdzLmxlbmd0aCA9IGFyeTtcbiAgICB9XG4gICAgaWYgKHRoaXMgJiYgdGhpcyAhPT0gZ2xvYmFsICYmIHRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyKSB7XG4gICAgICBmbiA9IEN0b3IgfHwgY3JlYXRlQ3RvcldyYXBwZXIoZnVuYyk7XG4gICAgfVxuICAgIHJldHVybiBmbi5hcHBseSh0aGlzQmluZGluZywgYXJncyk7XG4gIH1cbiAgcmV0dXJuIHdyYXBwZXI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlSHlicmlkV3JhcHBlcjtcblxufSkuY2FsbCh0aGlzLHR5cGVvZiBnbG9iYWwgIT09IFwidW5kZWZpbmVkXCIgPyBnbG9iYWwgOiB0eXBlb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIiA/IHNlbGYgOiB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93IDoge30pXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldDp1dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJbTV2WkdWZmJXOWtkV3hsY3k5c2IyUmhjMmd0WTI5dGNHRjBMMmx1ZEdWeWJtRnNMMk55WldGMFpVaDVZbkpwWkZkeVlYQndaWEl1YW5NaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWp0QlFVRkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQklpd2labWxzWlNJNkltZGxibVZ5WVhSbFpDNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUoyWVhJZ1lYSnlZWGxEYjNCNUlEMGdjbVZ4ZFdseVpTZ25MaTloY25KaGVVTnZjSGtuS1N4Y2JpQWdJQ0JqYjIxd2IzTmxRWEpuY3lBOUlISmxjWFZwY21Vb0p5NHZZMjl0Y0c5elpVRnlaM01uS1N4Y2JpQWdJQ0JqYjIxd2IzTmxRWEpuYzFKcFoyaDBJRDBnY21WeGRXbHlaU2duTGk5amIyMXdiM05sUVhKbmMxSnBaMmgwSnlrc1hHNGdJQ0FnWTNKbFlYUmxRM1J2Y2xkeVlYQndaWElnUFNCeVpYRjFhWEpsS0NjdUwyTnlaV0YwWlVOMGIzSlhjbUZ3Y0dWeUp5a3NYRzRnSUNBZ2FYTk1ZWHBwWVdKc1pTQTlJSEpsY1hWcGNtVW9KeTR2YVhOTVlYcHBZV0pzWlNjcExGeHVJQ0FnSUhKbGIzSmtaWElnUFNCeVpYRjFhWEpsS0NjdUwzSmxiM0prWlhJbktTeGNiaUFnSUNCeVpYQnNZV05sU0c5c1pHVnljeUE5SUhKbGNYVnBjbVVvSnk0dmNtVndiR0ZqWlVodmJHUmxjbk1uS1N4Y2JpQWdJQ0J6WlhSRVlYUmhJRDBnY21WeGRXbHlaU2duTGk5elpYUkVZWFJoSnlrN1hHNWNiaThxS2lCVmMyVmtJSFJ2SUdOdmJYQnZjMlVnWW1sMGJXRnphM01nWm05eUlIZHlZWEJ3WlhJZ2JXVjBZV1JoZEdFdUlDb3ZYRzUyWVhJZ1FrbE9SRjlHVEVGSElEMGdNU3hjYmlBZ0lDQkNTVTVFWDB0RldWOUdURUZISUQwZ01peGNiaUFnSUNCRFZWSlNXVjlDVDFWT1JGOUdURUZISUQwZ05DeGNiaUFnSUNCRFZWSlNXVjlHVEVGSElEMGdPQ3hjYmlBZ0lDQkRWVkpTV1Y5U1NVZElWRjlHVEVGSElEMGdNVFlzWEc0Z0lDQWdVRUZTVkVsQlRGOUdURUZISUQwZ016SXNYRzRnSUNBZ1VFRlNWRWxCVEY5U1NVZElWRjlHVEVGSElEMGdOalFzWEc0Z0lDQWdRVkpaWDBaTVFVY2dQU0F4TWpnN1hHNWNiaThxSUU1aGRHbDJaU0J0WlhSb2IyUWdjbVZtWlhKbGJtTmxjeUJtYjNJZ2RHaHZjMlVnZDJsMGFDQjBhR1VnYzJGdFpTQnVZVzFsSUdGeklHOTBhR1Z5SUdCc2IyUmhjMmhnSUcxbGRHaHZaSE11SUNvdlhHNTJZWElnYm1GMGFYWmxUV0Y0SUQwZ1RXRjBhQzV0WVhnN1hHNWNiaThxS2x4dUlDb2dRM0psWVhSbGN5QmhJR1oxYm1OMGFXOXVJSFJvWVhRZ2QzSmhjSE1nWUdaMWJtTmdJR0Z1WkNCcGJuWnZhMlZ6SUdsMElIZHBkR2dnYjNCMGFXOXVZV3dnWUhSb2FYTmdYRzRnS2lCaWFXNWthVzVuSUc5bUxDQndZWEowYVdGc0lHRndjR3hwWTJGMGFXOXVMQ0JoYm1RZ1kzVnljbmxwYm1jdVhHNGdLbHh1SUNvZ1FIQnlhWFpoZEdWY2JpQXFJRUJ3WVhKaGJTQjdSblZ1WTNScGIyNThjM1J5YVc1bmZTQm1kVzVqSUZSb1pTQm1kVzVqZEdsdmJpQnZjaUJ0WlhSb2IyUWdibUZ0WlNCMGJ5QnlaV1psY21WdVkyVXVYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnWW1sMGJXRnpheUJVYUdVZ1ltbDBiV0Z6YXlCdlppQm1iR0ZuY3k0Z1UyVmxJR0JqY21WaGRHVlhjbUZ3Y0dWeVlDQm1iM0lnYlc5eVpTQmtaWFJoYVd4ekxseHVJQ29nUUhCaGNtRnRJSHNxZlNCYmRHaHBjMEZ5WjEwZ1ZHaGxJR0IwYUdsellDQmlhVzVrYVc1bklHOW1JR0JtZFc1allDNWNiaUFxSUVCd1lYSmhiU0I3UVhKeVlYbDlJRnR3WVhKMGFXRnNjMTBnVkdobElHRnlaM1Z0Wlc1MGN5QjBieUJ3Y21Wd1pXNWtJSFJ2SUhSb2IzTmxJSEJ5YjNacFpHVmtJSFJ2SUhSb1pTQnVaWGNnWm5WdVkzUnBiMjR1WEc0Z0tpQkFjR0Z5WVcwZ2UwRnljbUY1ZlNCYmFHOXNaR1Z5YzEwZ1ZHaGxJR0J3WVhKMGFXRnNjMkFnY0d4aFkyVm9iMnhrWlhJZ2FXNWtaWGhsY3k1Y2JpQXFJRUJ3WVhKaGJTQjdRWEp5WVhsOUlGdHdZWEowYVdGc2MxSnBaMmgwWFNCVWFHVWdZWEpuZFcxbGJuUnpJSFJ2SUdGd2NHVnVaQ0IwYnlCMGFHOXpaU0J3Y205MmFXUmxaQ0IwYnlCMGFHVWdibVYzSUdaMWJtTjBhVzl1TGx4dUlDb2dRSEJoY21GdElIdEJjbkpoZVgwZ1cyaHZiR1JsY25OU2FXZG9kRjBnVkdobElHQndZWEowYVdGc2MxSnBaMmgwWUNCd2JHRmpaV2h2YkdSbGNpQnBibVJsZUdWekxseHVJQ29nUUhCaGNtRnRJSHRCY25KaGVYMGdXMkZ5WjFCdmMxMGdWR2hsSUdGeVozVnRaVzUwSUhCdmMybDBhVzl1Y3lCdlppQjBhR1VnYm1WM0lHWjFibU4wYVc5dUxseHVJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnRoY25sZElGUm9aU0JoY21sMGVTQmpZWEFnYjJZZ1lHWjFibU5nTGx4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlGdGhjbWwwZVYwZ1ZHaGxJR0Z5YVhSNUlHOW1JR0JtZFc1allDNWNiaUFxSUVCeVpYUjFjbTV6SUh0R2RXNWpkR2x2Ym4wZ1VtVjBkWEp1Y3lCMGFHVWdibVYzSUhkeVlYQndaV1FnWm5WdVkzUnBiMjR1WEc0Z0tpOWNibVoxYm1OMGFXOXVJR055WldGMFpVaDVZbkpwWkZkeVlYQndaWElvWm5WdVl5d2dZbWwwYldGemF5d2dkR2hwYzBGeVp5d2djR0Z5ZEdsaGJITXNJR2h2YkdSbGNuTXNJSEJoY25ScFlXeHpVbWxuYUhRc0lHaHZiR1JsY25OU2FXZG9kQ3dnWVhKblVHOXpMQ0JoY25rc0lHRnlhWFI1S1NCN1hHNGdJSFpoY2lCcGMwRnllU0E5SUdKcGRHMWhjMnNnSmlCQlVsbGZSa3hCUnl4Y2JpQWdJQ0FnSUdselFtbHVaQ0E5SUdKcGRHMWhjMnNnSmlCQ1NVNUVYMFpNUVVjc1hHNGdJQ0FnSUNCcGMwSnBibVJMWlhrZ1BTQmlhWFJ0WVhOcklDWWdRa2xPUkY5TFJWbGZSa3hCUnl4Y2JpQWdJQ0FnSUdselEzVnljbmtnUFNCaWFYUnRZWE5ySUNZZ1ExVlNVbGxmUmt4QlJ5eGNiaUFnSUNBZ0lHbHpRM1Z5Y25sQ2IzVnVaQ0E5SUdKcGRHMWhjMnNnSmlCRFZWSlNXVjlDVDFWT1JGOUdURUZITEZ4dUlDQWdJQ0FnYVhORGRYSnllVkpwWjJoMElEMGdZbWwwYldGemF5QW1JRU5WVWxKWlgxSkpSMGhVWDBaTVFVY3NYRzRnSUNBZ0lDQkRkRzl5SUQwZ2FYTkNhVzVrUzJWNUlEOGdkVzVrWldacGJtVmtJRG9nWTNKbFlYUmxRM1J2Y2xkeVlYQndaWElvWm5WdVl5azdYRzVjYmlBZ1puVnVZM1JwYjI0Z2QzSmhjSEJsY2lncElIdGNiaUFnSUNBdkx5QkJkbTlwWkNCZ1lYSm5kVzFsYm5SellDQnZZbXBsWTNRZ2RYTmxJR1JwYzNGMVlXeHBabmxwYm1jZ2IzQjBhVzFwZW1GMGFXOXVjeUJpZVZ4dUlDQWdJQzh2SUdOdmJuWmxjblJwYm1jZ2FYUWdkRzhnWVc0Z1lYSnlZWGtnWW1WbWIzSmxJSEJ5YjNacFpHbHVaeUJwZENCMGJ5QnZkR2hsY2lCbWRXNWpkR2x2Ym5NdVhHNGdJQ0FnZG1GeUlHeGxibWQwYUNBOUlHRnlaM1Z0Wlc1MGN5NXNaVzVuZEdnc1hHNGdJQ0FnSUNBZ0lHbHVaR1Y0SUQwZ2JHVnVaM1JvTEZ4dUlDQWdJQ0FnSUNCaGNtZHpJRDBnUVhKeVlYa29iR1Z1WjNSb0tUdGNibHh1SUNBZ0lIZG9hV3hsSUNocGJtUmxlQzB0S1NCN1hHNGdJQ0FnSUNCaGNtZHpXMmx1WkdWNFhTQTlJR0Z5WjNWdFpXNTBjMXRwYm1SbGVGMDdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHdZWEowYVdGc2N5a2dlMXh1SUNBZ0lDQWdZWEpuY3lBOUlHTnZiWEJ2YzJWQmNtZHpLR0Z5WjNNc0lIQmhjblJwWVd4ekxDQm9iMnhrWlhKektUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tIQmhjblJwWVd4elVtbG5hSFFwSUh0Y2JpQWdJQ0FnSUdGeVozTWdQU0JqYjIxd2IzTmxRWEpuYzFKcFoyaDBLR0Z5WjNNc0lIQmhjblJwWVd4elVtbG5hSFFzSUdodmJHUmxjbk5TYVdkb2RDazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHBjME4xY25KNUlIeDhJR2x6UTNWeWNubFNhV2RvZENrZ2UxeHVJQ0FnSUNBZ2RtRnlJSEJzWVdObGFHOXNaR1Z5SUQwZ2QzSmhjSEJsY2k1d2JHRmpaV2h2YkdSbGNpeGNiaUFnSUNBZ0lDQWdJQ0JoY21kelNHOXNaR1Z5Y3lBOUlISmxjR3hoWTJWSWIyeGtaWEp6S0dGeVozTXNJSEJzWVdObGFHOXNaR1Z5S1R0Y2JseHVJQ0FnSUNBZ2JHVnVaM1JvSUMwOUlHRnlaM05JYjJ4a1pYSnpMbXhsYm1kMGFEdGNiaUFnSUNBZ0lHbG1JQ2hzWlc1bmRHZ2dQQ0JoY21sMGVTa2dlMXh1SUNBZ0lDQWdJQ0IyWVhJZ2JtVjNRWEpuVUc5eklEMGdZWEpuVUc5eklEOGdZWEp5WVhsRGIzQjVLR0Z5WjFCdmN5a2dPaUIxYm1SbFptbHVaV1FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnVaWGRCY21sMGVTQTlJRzVoZEdsMlpVMWhlQ2hoY21sMGVTQXRJR3hsYm1kMGFDd2dNQ2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQnVaWGR6U0c5c1pHVnljeUE5SUdselEzVnljbmtnUHlCaGNtZHpTRzlzWkdWeWN5QTZJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHNWxkMGh2YkdSbGNuTlNhV2RvZENBOUlHbHpRM1Z5Y25rZ1B5QjFibVJsWm1sdVpXUWdPaUJoY21kelNHOXNaR1Z5Y3l4Y2JpQWdJQ0FnSUNBZ0lDQWdJRzVsZDFCaGNuUnBZV3h6SUQwZ2FYTkRkWEp5ZVNBL0lHRnlaM01nT2lCMWJtUmxabWx1WldRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J1WlhkUVlYSjBhV0ZzYzFKcFoyaDBJRDBnYVhORGRYSnllU0EvSUhWdVpHVm1hVzVsWkNBNklHRnlaM003WEc1Y2JpQWdJQ0FnSUNBZ1ltbDBiV0Z6YXlCOFBTQW9hWE5EZFhKeWVTQS9JRkJCVWxSSlFVeGZSa3hCUnlBNklGQkJVbFJKUVV4ZlVrbEhTRlJmUmt4QlJ5azdYRzRnSUNBZ0lDQWdJR0pwZEcxaGMyc2dKajBnZmlocGMwTjFjbko1SUQ4Z1VFRlNWRWxCVEY5U1NVZElWRjlHVEVGSElEb2dVRUZTVkVsQlRGOUdURUZIS1R0Y2JseHVJQ0FnSUNBZ0lDQnBaaUFvSVdselEzVnljbmxDYjNWdVpDa2dlMXh1SUNBZ0lDQWdJQ0FnSUdKcGRHMWhjMnNnSmowZ2ZpaENTVTVFWDBaTVFVY2dmQ0JDU1U1RVgwdEZXVjlHVEVGSEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0IyWVhJZ2JtVjNSR0YwWVNBOUlGdG1kVzVqTENCaWFYUnRZWE5yTENCMGFHbHpRWEpuTENCdVpYZFFZWEowYVdGc2N5d2dibVYzYzBodmJHUmxjbk1zSUc1bGQxQmhjblJwWVd4elVtbG5hSFFzSUc1bGQwaHZiR1JsY25OU2FXZG9kQ3dnYm1WM1FYSm5VRzl6TENCaGNua3NJRzVsZDBGeWFYUjVYU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxjM1ZzZENBOUlHTnlaV0YwWlVoNVluSnBaRmR5WVhCd1pYSXVZWEJ3Ykhrb2RXNWtaV1pwYm1Wa0xDQnVaWGRFWVhSaEtUdGNibHh1SUNBZ0lDQWdJQ0JwWmlBb2FYTk1ZWHBwWVdKc1pTaG1kVzVqS1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJSE5sZEVSaGRHRW9jbVZ6ZFd4MExDQnVaWGRFWVhSaEtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0J5WlhOMWJIUXVjR3hoWTJWb2IyeGtaWElnUFNCd2JHRmpaV2h2YkdSbGNqdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdkbUZ5SUhSb2FYTkNhVzVrYVc1bklEMGdhWE5DYVc1a0lEOGdkR2hwYzBGeVp5QTZJSFJvYVhNc1hHNGdJQ0FnSUNBZ0lHWnVJRDBnYVhOQ2FXNWtTMlY1SUQ4Z2RHaHBjMEpwYm1ScGJtZGJablZ1WTEwZ09pQm1kVzVqTzF4dVhHNGdJQ0FnYVdZZ0tHRnlaMUJ2Y3lrZ2UxeHVJQ0FnSUNBZ1lYSm5jeUE5SUhKbGIzSmtaWElvWVhKbmN5d2dZWEpuVUc5ektUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tHbHpRWEo1SUNZbUlHRnllU0E4SUdGeVozTXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQmhjbWR6TG14bGJtZDBhQ0E5SUdGeWVUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tIUm9hWE1nSmlZZ2RHaHBjeUFoUFQwZ1oyeHZZbUZzSUNZbUlIUm9hWE1nYVc1emRHRnVZMlZ2WmlCM2NtRndjR1Z5S1NCN1hHNGdJQ0FnSUNCbWJpQTlJRU4wYjNJZ2ZId2dZM0psWVhSbFEzUnZjbGR5WVhCd1pYSW9ablZ1WXlrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQm1iaTVoY0hCc2VTaDBhR2x6UW1sdVpHbHVaeXdnWVhKbmN5azdYRzRnSUgxY2JpQWdjbVYwZFhKdUlIZHlZWEJ3WlhJN1hHNTlYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnWTNKbFlYUmxTSGxpY21sa1YzSmhjSEJsY2p0Y2JpSmRmUT09IiwiKGZ1bmN0aW9uIChnbG9iYWwpe1xudmFyIGNyZWF0ZUN0b3JXcmFwcGVyID0gcmVxdWlyZSgnLi9jcmVhdGVDdG9yV3JhcHBlcicpO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciB3cmFwcGVyIG1ldGFkYXRhLiAqL1xudmFyIEJJTkRfRkxBRyA9IDE7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgd3JhcHMgYGZ1bmNgIGFuZCBpbnZva2VzIGl0IHdpdGggdGhlIG9wdGlvbmFsIGB0aGlzYFxuICogYmluZGluZyBvZiBgdGhpc0FyZ2AgYW5kIHRoZSBgcGFydGlhbHNgIHByZXBlbmRlZCB0byB0aG9zZSBwcm92aWRlZCB0b1xuICogdGhlIHdyYXBwZXIuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMgVGhlIGZ1bmN0aW9uIHRvIHBhcnRpYWxseSBhcHBseSBhcmd1bWVudHMgdG8uXG4gKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBvZiBmbGFncy4gU2VlIGBjcmVhdGVXcmFwcGVyYCBmb3IgbW9yZSBkZXRhaWxzLlxuICogQHBhcmFtIHsqfSB0aGlzQXJnIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gKiBAcGFyYW0ge0FycmF5fSBwYXJ0aWFscyBUaGUgYXJndW1lbnRzIHRvIHByZXBlbmQgdG8gdGhvc2UgcHJvdmlkZWQgdG8gdGhlIG5ldyBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIHtGdW5jdGlvbn0gUmV0dXJucyB0aGUgbmV3IGJvdW5kIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBjcmVhdGVQYXJ0aWFsV3JhcHBlcihmdW5jLCBiaXRtYXNrLCB0aGlzQXJnLCBwYXJ0aWFscykge1xuICB2YXIgaXNCaW5kID0gYml0bWFzayAmIEJJTkRfRkxBRyxcbiAgICAgIEN0b3IgPSBjcmVhdGVDdG9yV3JhcHBlcihmdW5jKTtcblxuICBmdW5jdGlvbiB3cmFwcGVyKCkge1xuICAgIC8vIEF2b2lkIGBhcmd1bWVudHNgIG9iamVjdCB1c2UgZGlzcXVhbGlmeWluZyBvcHRpbWl6YXRpb25zIGJ5XG4gICAgLy8gY29udmVydGluZyBpdCB0byBhbiBhcnJheSBiZWZvcmUgcHJvdmlkaW5nIGl0IGBmdW5jYC5cbiAgICB2YXIgYXJnc0luZGV4ID0gLTEsXG4gICAgICAgIGFyZ3NMZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoLFxuICAgICAgICBsZWZ0SW5kZXggPSAtMSxcbiAgICAgICAgbGVmdExlbmd0aCA9IHBhcnRpYWxzLmxlbmd0aCxcbiAgICAgICAgYXJncyA9IEFycmF5KGxlZnRMZW5ndGggKyBhcmdzTGVuZ3RoKTtcblxuICAgIHdoaWxlICgrK2xlZnRJbmRleCA8IGxlZnRMZW5ndGgpIHtcbiAgICAgIGFyZ3NbbGVmdEluZGV4XSA9IHBhcnRpYWxzW2xlZnRJbmRleF07XG4gICAgfVxuICAgIHdoaWxlIChhcmdzTGVuZ3RoLS0pIHtcbiAgICAgIGFyZ3NbbGVmdEluZGV4KytdID0gYXJndW1lbnRzWysrYXJnc0luZGV4XTtcbiAgICB9XG4gICAgdmFyIGZuID0gKHRoaXMgJiYgdGhpcyAhPT0gZ2xvYmFsICYmIHRoaXMgaW5zdGFuY2VvZiB3cmFwcGVyKSA/IEN0b3IgOiBmdW5jO1xuICAgIHJldHVybiBmbi5hcHBseShpc0JpbmQgPyB0aGlzQXJnIDogdGhpcywgYXJncyk7XG4gIH1cbiAgcmV0dXJuIHdyYXBwZXI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlUGFydGlhbFdyYXBwZXI7XG5cbn0pLmNhbGwodGhpcyx0eXBlb2YgZ2xvYmFsICE9PSBcInVuZGVmaW5lZFwiID8gZ2xvYmFsIDogdHlwZW9mIHNlbGYgIT09IFwidW5kZWZpbmVkXCIgPyBzZWxmIDogdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IHdpbmRvdyA6IHt9KVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ6dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSW01dlpHVmZiVzlrZFd4bGN5OXNiMlJoYzJndFkyOXRjR0YwTDJsdWRHVnlibUZzTDJOeVpXRjBaVkJoY25ScFlXeFhjbUZ3Y0dWeUxtcHpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdRVUZCUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CSWl3aVptbHNaU0k2SW1kbGJtVnlZWFJsWkM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SjJZWElnWTNKbFlYUmxRM1J2Y2xkeVlYQndaWElnUFNCeVpYRjFhWEpsS0NjdUwyTnlaV0YwWlVOMGIzSlhjbUZ3Y0dWeUp5azdYRzVjYmk4cUtpQlZjMlZrSUhSdklHTnZiWEJ2YzJVZ1ltbDBiV0Z6YTNNZ1ptOXlJSGR5WVhCd1pYSWdiV1YwWVdSaGRHRXVJQ292WEc1MllYSWdRa2xPUkY5R1RFRkhJRDBnTVR0Y2JseHVMeW9xWEc0Z0tpQkRjbVZoZEdWeklHRWdablZ1WTNScGIyNGdkR2hoZENCM2NtRndjeUJnWm5WdVkyQWdZVzVrSUdsdWRtOXJaWE1nYVhRZ2QybDBhQ0IwYUdVZ2IzQjBhVzl1WVd3Z1lIUm9hWE5nWEc0Z0tpQmlhVzVrYVc1bklHOW1JR0IwYUdselFYSm5ZQ0JoYm1RZ2RHaGxJR0J3WVhKMGFXRnNjMkFnY0hKbGNHVnVaR1ZrSUhSdklIUm9iM05sSUhCeWIzWnBaR1ZrSUhSdlhHNGdLaUIwYUdVZ2QzSmhjSEJsY2k1Y2JpQXFYRzRnS2lCQWNISnBkbUYwWlZ4dUlDb2dRSEJoY21GdElIdEdkVzVqZEdsdmJuMGdablZ1WXlCVWFHVWdablZ1WTNScGIyNGdkRzhnY0dGeWRHbGhiR3g1SUdGd2NHeDVJR0Z5WjNWdFpXNTBjeUIwYnk1Y2JpQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmlhWFJ0WVhOcklGUm9aU0JpYVhSdFlYTnJJRzltSUdac1lXZHpMaUJUWldVZ1lHTnlaV0YwWlZkeVlYQndaWEpnSUdadmNpQnRiM0psSUdSbGRHRnBiSE11WEc0Z0tpQkFjR0Z5WVcwZ2V5cDlJSFJvYVhOQmNtY2dWR2hsSUdCMGFHbHpZQ0JpYVc1a2FXNW5JRzltSUdCbWRXNWpZQzVjYmlBcUlFQndZWEpoYlNCN1FYSnlZWGw5SUhCaGNuUnBZV3h6SUZSb1pTQmhjbWQxYldWdWRITWdkRzhnY0hKbGNHVnVaQ0IwYnlCMGFHOXpaU0J3Y205MmFXUmxaQ0IwYnlCMGFHVWdibVYzSUdaMWJtTjBhVzl1TGx4dUlDb2dRSEpsZEhWeWJuTWdlMFoxYm1OMGFXOXVmU0JTWlhSMWNtNXpJSFJvWlNCdVpYY2dZbTkxYm1RZ1puVnVZM1JwYjI0dVhHNGdLaTljYm1aMWJtTjBhVzl1SUdOeVpXRjBaVkJoY25ScFlXeFhjbUZ3Y0dWeUtHWjFibU1zSUdKcGRHMWhjMnNzSUhSb2FYTkJjbWNzSUhCaGNuUnBZV3h6S1NCN1hHNGdJSFpoY2lCcGMwSnBibVFnUFNCaWFYUnRZWE5ySUNZZ1FrbE9SRjlHVEVGSExGeHVJQ0FnSUNBZ1EzUnZjaUE5SUdOeVpXRjBaVU4wYjNKWGNtRndjR1Z5S0daMWJtTXBPMXh1WEc0Z0lHWjFibU4wYVc5dUlIZHlZWEJ3WlhJb0tTQjdYRzRnSUNBZ0x5OGdRWFp2YVdRZ1lHRnlaM1Z0Wlc1MGMyQWdiMkpxWldOMElIVnpaU0JrYVhOeGRXRnNhV1o1YVc1bklHOXdkR2x0YVhwaGRHbHZibk1nWW5sY2JpQWdJQ0F2THlCamIyNTJaWEowYVc1bklHbDBJSFJ2SUdGdUlHRnljbUY1SUdKbFptOXlaU0J3Y205MmFXUnBibWNnYVhRZ1lHWjFibU5nTGx4dUlDQWdJSFpoY2lCaGNtZHpTVzVrWlhnZ1BTQXRNU3hjYmlBZ0lDQWdJQ0FnWVhKbmMweGxibWQwYUNBOUlHRnlaM1Z0Wlc1MGN5NXNaVzVuZEdnc1hHNGdJQ0FnSUNBZ0lHeGxablJKYm1SbGVDQTlJQzB4TEZ4dUlDQWdJQ0FnSUNCc1pXWjBUR1Z1WjNSb0lEMGdjR0Z5ZEdsaGJITXViR1Z1WjNSb0xGeHVJQ0FnSUNBZ0lDQmhjbWR6SUQwZ1FYSnlZWGtvYkdWbWRFeGxibWQwYUNBcklHRnlaM05NWlc1bmRHZ3BPMXh1WEc0Z0lDQWdkMmhwYkdVZ0tDc3JiR1ZtZEVsdVpHVjRJRHdnYkdWbWRFeGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ1lYSm5jMXRzWldaMFNXNWtaWGhkSUQwZ2NHRnlkR2xoYkhOYmJHVm1kRWx1WkdWNFhUdGNiaUFnSUNCOVhHNGdJQ0FnZDJocGJHVWdLR0Z5WjNOTVpXNW5kR2d0TFNrZ2UxeHVJQ0FnSUNBZ1lYSm5jMXRzWldaMFNXNWtaWGdySzEwZ1BTQmhjbWQxYldWdWRITmJLeXRoY21kelNXNWtaWGhkTzF4dUlDQWdJSDFjYmlBZ0lDQjJZWElnWm00Z1BTQW9kR2hwY3lBbUppQjBhR2x6SUNFOVBTQm5iRzlpWVd3Z0ppWWdkR2hwY3lCcGJuTjBZVzVqWlc5bUlIZHlZWEJ3WlhJcElEOGdRM1J2Y2lBNklHWjFibU03WEc0Z0lDQWdjbVYwZFhKdUlHWnVMbUZ3Y0d4NUtHbHpRbWx1WkNBL0lIUm9hWE5CY21jZ09pQjBhR2x6TENCaGNtZHpLVHRjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdkM0poY0hCbGNqdGNibjFjYmx4dWJXOWtkV3hsTG1WNGNHOXlkSE1nUFNCamNtVmhkR1ZRWVhKMGFXRnNWM0poY0hCbGNqdGNiaUpkZlE9PSIsInZhciBiYXNlU2V0RGF0YSA9IHJlcXVpcmUoJy4vYmFzZVNldERhdGEnKSxcbiAgICBjcmVhdGVCaW5kV3JhcHBlciA9IHJlcXVpcmUoJy4vY3JlYXRlQmluZFdyYXBwZXInKSxcbiAgICBjcmVhdGVIeWJyaWRXcmFwcGVyID0gcmVxdWlyZSgnLi9jcmVhdGVIeWJyaWRXcmFwcGVyJyksXG4gICAgY3JlYXRlUGFydGlhbFdyYXBwZXIgPSByZXF1aXJlKCcuL2NyZWF0ZVBhcnRpYWxXcmFwcGVyJyksXG4gICAgZ2V0RGF0YSA9IHJlcXVpcmUoJy4vZ2V0RGF0YScpLFxuICAgIG1lcmdlRGF0YSA9IHJlcXVpcmUoJy4vbWVyZ2VEYXRhJyksXG4gICAgc2V0RGF0YSA9IHJlcXVpcmUoJy4vc2V0RGF0YScpO1xuXG4vKiogVXNlZCB0byBjb21wb3NlIGJpdG1hc2tzIGZvciB3cmFwcGVyIG1ldGFkYXRhLiAqL1xudmFyIEJJTkRfRkxBRyA9IDEsXG4gICAgQklORF9LRVlfRkxBRyA9IDIsXG4gICAgUEFSVElBTF9GTEFHID0gMzIsXG4gICAgUEFSVElBTF9SSUdIVF9GTEFHID0gNjQ7XG5cbi8qKiBVc2VkIGFzIHRoZSBgVHlwZUVycm9yYCBtZXNzYWdlIGZvciBcIkZ1bmN0aW9uc1wiIG1ldGhvZHMuICovXG52YXIgRlVOQ19FUlJPUl9URVhUID0gJ0V4cGVjdGVkIGEgZnVuY3Rpb24nO1xuXG4vKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1heCA9IE1hdGgubWF4O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGVpdGhlciBjdXJyaWVzIG9yIGludm9rZXMgYGZ1bmNgIHdpdGggb3B0aW9uYWxcbiAqIGB0aGlzYCBiaW5kaW5nIGFuZCBwYXJ0aWFsbHkgYXBwbGllZCBhcmd1bWVudHMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7RnVuY3Rpb258c3RyaW5nfSBmdW5jIFRoZSBmdW5jdGlvbiBvciBtZXRob2QgbmFtZSB0byByZWZlcmVuY2UuXG4gKiBAcGFyYW0ge251bWJlcn0gYml0bWFzayBUaGUgYml0bWFzayBvZiBmbGFncy5cbiAqICBUaGUgYml0bWFzayBtYXkgYmUgY29tcG9zZWQgb2YgdGhlIGZvbGxvd2luZyBmbGFnczpcbiAqICAgICAxIC0gYF8uYmluZGBcbiAqICAgICAyIC0gYF8uYmluZEtleWBcbiAqICAgICA0IC0gYF8uY3VycnlgIG9yIGBfLmN1cnJ5UmlnaHRgIG9mIGEgYm91bmQgZnVuY3Rpb25cbiAqICAgICA4IC0gYF8uY3VycnlgXG4gKiAgICAxNiAtIGBfLmN1cnJ5UmlnaHRgXG4gKiAgICAzMiAtIGBfLnBhcnRpYWxgXG4gKiAgICA2NCAtIGBfLnBhcnRpYWxSaWdodGBcbiAqICAgMTI4IC0gYF8ucmVhcmdgXG4gKiAgIDI1NiAtIGBfLmFyeWBcbiAqIEBwYXJhbSB7Kn0gW3RoaXNBcmddIFRoZSBgdGhpc2AgYmluZGluZyBvZiBgZnVuY2AuXG4gKiBAcGFyYW0ge0FycmF5fSBbcGFydGlhbHNdIFRoZSBhcmd1bWVudHMgdG8gYmUgcGFydGlhbGx5IGFwcGxpZWQuXG4gKiBAcGFyYW0ge0FycmF5fSBbaG9sZGVyc10gVGhlIGBwYXJ0aWFsc2AgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAqIEBwYXJhbSB7QXJyYXl9IFthcmdQb3NdIFRoZSBhcmd1bWVudCBwb3NpdGlvbnMgb2YgdGhlIG5ldyBmdW5jdGlvbi5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbYXJ5XSBUaGUgYXJpdHkgY2FwIG9mIGBmdW5jYC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbYXJpdHldIFRoZSBhcml0eSBvZiBgZnVuY2AuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyB3cmFwcGVkIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBjcmVhdGVXcmFwcGVyKGZ1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzLCBhcmdQb3MsIGFyeSwgYXJpdHkpIHtcbiAgdmFyIGlzQmluZEtleSA9IGJpdG1hc2sgJiBCSU5EX0tFWV9GTEFHO1xuICBpZiAoIWlzQmluZEtleSAmJiB0eXBlb2YgZnVuYyAhPSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihGVU5DX0VSUk9SX1RFWFQpO1xuICB9XG4gIHZhciBsZW5ndGggPSBwYXJ0aWFscyA/IHBhcnRpYWxzLmxlbmd0aCA6IDA7XG4gIGlmICghbGVuZ3RoKSB7XG4gICAgYml0bWFzayAmPSB+KFBBUlRJQUxfRkxBRyB8IFBBUlRJQUxfUklHSFRfRkxBRyk7XG4gICAgcGFydGlhbHMgPSBob2xkZXJzID0gdW5kZWZpbmVkO1xuICB9XG4gIGxlbmd0aCAtPSAoaG9sZGVycyA/IGhvbGRlcnMubGVuZ3RoIDogMCk7XG4gIGlmIChiaXRtYXNrICYgUEFSVElBTF9SSUdIVF9GTEFHKSB7XG4gICAgdmFyIHBhcnRpYWxzUmlnaHQgPSBwYXJ0aWFscyxcbiAgICAgICAgaG9sZGVyc1JpZ2h0ID0gaG9sZGVycztcblxuICAgIHBhcnRpYWxzID0gaG9sZGVycyA9IHVuZGVmaW5lZDtcbiAgfVxuICB2YXIgZGF0YSA9IGlzQmluZEtleSA/IHVuZGVmaW5lZCA6IGdldERhdGEoZnVuYyksXG4gICAgICBuZXdEYXRhID0gW2Z1bmMsIGJpdG1hc2ssIHRoaXNBcmcsIHBhcnRpYWxzLCBob2xkZXJzLCBwYXJ0aWFsc1JpZ2h0LCBob2xkZXJzUmlnaHQsIGFyZ1BvcywgYXJ5LCBhcml0eV07XG5cbiAgaWYgKGRhdGEpIHtcbiAgICBtZXJnZURhdGEobmV3RGF0YSwgZGF0YSk7XG4gICAgYml0bWFzayA9IG5ld0RhdGFbMV07XG4gICAgYXJpdHkgPSBuZXdEYXRhWzldO1xuICB9XG4gIG5ld0RhdGFbOV0gPSBhcml0eSA9PSBudWxsXG4gICAgPyAoaXNCaW5kS2V5ID8gMCA6IGZ1bmMubGVuZ3RoKVxuICAgIDogKG5hdGl2ZU1heChhcml0eSAtIGxlbmd0aCwgMCkgfHwgMCk7XG5cbiAgaWYgKGJpdG1hc2sgPT0gQklORF9GTEFHKSB7XG4gICAgdmFyIHJlc3VsdCA9IGNyZWF0ZUJpbmRXcmFwcGVyKG5ld0RhdGFbMF0sIG5ld0RhdGFbMl0pO1xuICB9IGVsc2UgaWYgKChiaXRtYXNrID09IFBBUlRJQUxfRkxBRyB8fCBiaXRtYXNrID09IChCSU5EX0ZMQUcgfCBQQVJUSUFMX0ZMQUcpKSAmJiAhbmV3RGF0YVs0XS5sZW5ndGgpIHtcbiAgICByZXN1bHQgPSBjcmVhdGVQYXJ0aWFsV3JhcHBlci5hcHBseSh1bmRlZmluZWQsIG5ld0RhdGEpO1xuICB9IGVsc2Uge1xuICAgIHJlc3VsdCA9IGNyZWF0ZUh5YnJpZFdyYXBwZXIuYXBwbHkodW5kZWZpbmVkLCBuZXdEYXRhKTtcbiAgfVxuICB2YXIgc2V0dGVyID0gZGF0YSA/IGJhc2VTZXREYXRhIDogc2V0RGF0YTtcbiAgcmV0dXJuIHNldHRlcihyZXN1bHQsIG5ld0RhdGEpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZVdyYXBwZXI7XG4iLCJ2YXIgYXJyYXlTb21lID0gcmVxdWlyZSgnLi9hcnJheVNvbWUnKTtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsRGVlcGAgZm9yIGFycmF5cyB3aXRoIHN1cHBvcnQgZm9yXG4gKiBwYXJ0aWFsIGRlZXAgY29tcGFyaXNvbnMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBjb21wYXJlLlxuICogQHBhcmFtIHtBcnJheX0gb3RoZXIgVGhlIG90aGVyIGFycmF5IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpbmcgYXJyYXlzLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNMb29zZV0gU3BlY2lmeSBwZXJmb3JtaW5nIHBhcnRpYWwgY29tcGFyaXNvbnMuXG4gKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tBXSBUcmFja3MgdHJhdmVyc2VkIGB2YWx1ZWAgb2JqZWN0cy5cbiAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0JdIFRyYWNrcyB0cmF2ZXJzZWQgYG90aGVyYCBvYmplY3RzLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBhcnJheXMgYXJlIGVxdWl2YWxlbnQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gZXF1YWxBcnJheXMoYXJyYXksIG90aGVyLCBlcXVhbEZ1bmMsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgYXJyTGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgb3RoTGVuZ3RoID0gb3RoZXIubGVuZ3RoO1xuXG4gIGlmIChhcnJMZW5ndGggIT0gb3RoTGVuZ3RoICYmICEoaXNMb29zZSAmJiBvdGhMZW5ndGggPiBhcnJMZW5ndGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIElnbm9yZSBub24taW5kZXggcHJvcGVydGllcy5cbiAgd2hpbGUgKCsraW5kZXggPCBhcnJMZW5ndGgpIHtcbiAgICB2YXIgYXJyVmFsdWUgPSBhcnJheVtpbmRleF0sXG4gICAgICAgIG90aFZhbHVlID0gb3RoZXJbaW5kZXhdLFxuICAgICAgICByZXN1bHQgPSBjdXN0b21pemVyID8gY3VzdG9taXplcihpc0xvb3NlID8gb3RoVmFsdWUgOiBhcnJWYWx1ZSwgaXNMb29zZSA/IGFyclZhbHVlIDogb3RoVmFsdWUsIGluZGV4KSA6IHVuZGVmaW5lZDtcblxuICAgIGlmIChyZXN1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy8gUmVjdXJzaXZlbHkgY29tcGFyZSBhcnJheXMgKHN1c2NlcHRpYmxlIHRvIGNhbGwgc3RhY2sgbGltaXRzKS5cbiAgICBpZiAoaXNMb29zZSkge1xuICAgICAgaWYgKCFhcnJheVNvbWUob3RoZXIsIGZ1bmN0aW9uKG90aFZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJyVmFsdWUgPT09IG90aFZhbHVlIHx8IGVxdWFsRnVuYyhhcnJWYWx1ZSwgb3RoVmFsdWUsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKTtcbiAgICAgICAgICB9KSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghKGFyclZhbHVlID09PSBvdGhWYWx1ZSB8fCBlcXVhbEZ1bmMoYXJyVmFsdWUsIG90aFZhbHVlLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQikpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVxdWFsQXJyYXlzO1xuIiwiLyoqIGBPYmplY3QjdG9TdHJpbmdgIHJlc3VsdCByZWZlcmVuY2VzLiAqL1xudmFyIGJvb2xUYWcgPSAnW29iamVjdCBCb29sZWFuXScsXG4gICAgZGF0ZVRhZyA9ICdbb2JqZWN0IERhdGVdJyxcbiAgICBlcnJvclRhZyA9ICdbb2JqZWN0IEVycm9yXScsXG4gICAgbnVtYmVyVGFnID0gJ1tvYmplY3QgTnVtYmVyXScsXG4gICAgcmVnZXhwVGFnID0gJ1tvYmplY3QgUmVnRXhwXScsXG4gICAgc3RyaW5nVGFnID0gJ1tvYmplY3QgU3RyaW5nXSc7XG5cbi8qKlxuICogQSBzcGVjaWFsaXplZCB2ZXJzaW9uIG9mIGBiYXNlSXNFcXVhbERlZXBgIGZvciBjb21wYXJpbmcgb2JqZWN0cyBvZlxuICogdGhlIHNhbWUgYHRvU3RyaW5nVGFnYC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBvbmx5IHN1cHBvcnRzIGNvbXBhcmluZyB2YWx1ZXMgd2l0aCB0YWdzIG9mXG4gKiBgQm9vbGVhbmAsIGBEYXRlYCwgYEVycm9yYCwgYE51bWJlcmAsIGBSZWdFeHBgLCBvciBgU3RyaW5nYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge09iamVjdH0gb3RoZXIgVGhlIG90aGVyIG9iamVjdCB0byBjb21wYXJlLlxuICogQHBhcmFtIHtzdHJpbmd9IHRhZyBUaGUgYHRvU3RyaW5nVGFnYCBvZiB0aGUgb2JqZWN0cyB0byBjb21wYXJlLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGVxdWFsQnlUYWcob2JqZWN0LCBvdGhlciwgdGFnKSB7XG4gIHN3aXRjaCAodGFnKSB7XG4gICAgY2FzZSBib29sVGFnOlxuICAgIGNhc2UgZGF0ZVRhZzpcbiAgICAgIC8vIENvZXJjZSBkYXRlcyBhbmQgYm9vbGVhbnMgdG8gbnVtYmVycywgZGF0ZXMgdG8gbWlsbGlzZWNvbmRzIGFuZCBib29sZWFuc1xuICAgICAgLy8gdG8gYDFgIG9yIGAwYCB0cmVhdGluZyBpbnZhbGlkIGRhdGVzIGNvZXJjZWQgdG8gYE5hTmAgYXMgbm90IGVxdWFsLlxuICAgICAgcmV0dXJuICtvYmplY3QgPT0gK290aGVyO1xuXG4gICAgY2FzZSBlcnJvclRhZzpcbiAgICAgIHJldHVybiBvYmplY3QubmFtZSA9PSBvdGhlci5uYW1lICYmIG9iamVjdC5tZXNzYWdlID09IG90aGVyLm1lc3NhZ2U7XG5cbiAgICBjYXNlIG51bWJlclRhZzpcbiAgICAgIC8vIFRyZWF0IGBOYU5gIHZzLiBgTmFOYCBhcyBlcXVhbC5cbiAgICAgIHJldHVybiAob2JqZWN0ICE9ICtvYmplY3QpXG4gICAgICAgID8gb3RoZXIgIT0gK290aGVyXG4gICAgICAgIDogb2JqZWN0ID09ICtvdGhlcjtcblxuICAgIGNhc2UgcmVnZXhwVGFnOlxuICAgIGNhc2Ugc3RyaW5nVGFnOlxuICAgICAgLy8gQ29lcmNlIHJlZ2V4ZXMgdG8gc3RyaW5ncyBhbmQgdHJlYXQgc3RyaW5ncyBwcmltaXRpdmVzIGFuZCBzdHJpbmdcbiAgICAgIC8vIG9iamVjdHMgYXMgZXF1YWwuIFNlZSBodHRwczovL2VzNS5naXRodWIuaW8vI3gxNS4xMC42LjQgZm9yIG1vcmUgZGV0YWlscy5cbiAgICAgIHJldHVybiBvYmplY3QgPT0gKG90aGVyICsgJycpO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBlcXVhbEJ5VGFnO1xuIiwidmFyIGtleXMgPSByZXF1aXJlKCcuLi9vYmplY3Qva2V5cycpO1xuXG4vKiogVXNlZCBmb3IgbmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIG9iamVjdFByb3RvID0gT2JqZWN0LnByb3RvdHlwZTtcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYGJhc2VJc0VxdWFsRGVlcGAgZm9yIG9iamVjdHMgd2l0aCBzdXBwb3J0IGZvclxuICogcGFydGlhbCBkZWVwIGNvbXBhcmlzb25zLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY29tcGFyZS5cbiAqIEBwYXJhbSB7T2JqZWN0fSBvdGhlciBUaGUgb3RoZXIgb2JqZWN0IHRvIGNvbXBhcmUuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBlcXVhbEZ1bmMgVGhlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBlcXVpdmFsZW50cyBvZiB2YWx1ZXMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBbY3VzdG9taXplcl0gVGhlIGZ1bmN0aW9uIHRvIGN1c3RvbWl6ZSBjb21wYXJpbmcgdmFsdWVzLlxuICogQHBhcmFtIHtib29sZWFufSBbaXNMb29zZV0gU3BlY2lmeSBwZXJmb3JtaW5nIHBhcnRpYWwgY29tcGFyaXNvbnMuXG4gKiBAcGFyYW0ge0FycmF5fSBbc3RhY2tBXSBUcmFja3MgdHJhdmVyc2VkIGB2YWx1ZWAgb2JqZWN0cy5cbiAqIEBwYXJhbSB7QXJyYXl9IFtzdGFja0JdIFRyYWNrcyB0cmF2ZXJzZWQgYG90aGVyYCBvYmplY3RzLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3RzIGFyZSBlcXVpdmFsZW50LCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGVxdWFsT2JqZWN0cyhvYmplY3QsIG90aGVyLCBlcXVhbEZ1bmMsIGN1c3RvbWl6ZXIsIGlzTG9vc2UsIHN0YWNrQSwgc3RhY2tCKSB7XG4gIHZhciBvYmpQcm9wcyA9IGtleXMob2JqZWN0KSxcbiAgICAgIG9iakxlbmd0aCA9IG9ialByb3BzLmxlbmd0aCxcbiAgICAgIG90aFByb3BzID0ga2V5cyhvdGhlciksXG4gICAgICBvdGhMZW5ndGggPSBvdGhQcm9wcy5sZW5ndGg7XG5cbiAgaWYgKG9iakxlbmd0aCAhPSBvdGhMZW5ndGggJiYgIWlzTG9vc2UpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdmFyIGluZGV4ID0gb2JqTGVuZ3RoO1xuICB3aGlsZSAoaW5kZXgtLSkge1xuICAgIHZhciBrZXkgPSBvYmpQcm9wc1tpbmRleF07XG4gICAgaWYgKCEoaXNMb29zZSA/IGtleSBpbiBvdGhlciA6IGhhc093blByb3BlcnR5LmNhbGwob3RoZXIsIGtleSkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHZhciBza2lwQ3RvciA9IGlzTG9vc2U7XG4gIHdoaWxlICgrK2luZGV4IDwgb2JqTGVuZ3RoKSB7XG4gICAga2V5ID0gb2JqUHJvcHNbaW5kZXhdO1xuICAgIHZhciBvYmpWYWx1ZSA9IG9iamVjdFtrZXldLFxuICAgICAgICBvdGhWYWx1ZSA9IG90aGVyW2tleV0sXG4gICAgICAgIHJlc3VsdCA9IGN1c3RvbWl6ZXIgPyBjdXN0b21pemVyKGlzTG9vc2UgPyBvdGhWYWx1ZSA6IG9ialZhbHVlLCBpc0xvb3NlPyBvYmpWYWx1ZSA6IG90aFZhbHVlLCBrZXkpIDogdW5kZWZpbmVkO1xuXG4gICAgLy8gUmVjdXJzaXZlbHkgY29tcGFyZSBvYmplY3RzIChzdXNjZXB0aWJsZSB0byBjYWxsIHN0YWNrIGxpbWl0cykuXG4gICAgaWYgKCEocmVzdWx0ID09PSB1bmRlZmluZWQgPyBlcXVhbEZ1bmMob2JqVmFsdWUsIG90aFZhbHVlLCBjdXN0b21pemVyLCBpc0xvb3NlLCBzdGFja0EsIHN0YWNrQikgOiByZXN1bHQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHNraXBDdG9yIHx8IChza2lwQ3RvciA9IGtleSA9PSAnY29uc3RydWN0b3InKTtcbiAgfVxuICBpZiAoIXNraXBDdG9yKSB7XG4gICAgdmFyIG9iakN0b3IgPSBvYmplY3QuY29uc3RydWN0b3IsXG4gICAgICAgIG90aEN0b3IgPSBvdGhlci5jb25zdHJ1Y3RvcjtcblxuICAgIC8vIE5vbiBgT2JqZWN0YCBvYmplY3QgaW5zdGFuY2VzIHdpdGggZGlmZmVyZW50IGNvbnN0cnVjdG9ycyBhcmUgbm90IGVxdWFsLlxuICAgIGlmIChvYmpDdG9yICE9IG90aEN0b3IgJiZcbiAgICAgICAgKCdjb25zdHJ1Y3RvcicgaW4gb2JqZWN0ICYmICdjb25zdHJ1Y3RvcicgaW4gb3RoZXIpICYmXG4gICAgICAgICEodHlwZW9mIG9iakN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiBvYmpDdG9yIGluc3RhbmNlb2Ygb2JqQ3RvciAmJlxuICAgICAgICAgIHR5cGVvZiBvdGhDdG9yID09ICdmdW5jdGlvbicgJiYgb3RoQ3RvciBpbnN0YW5jZW9mIG90aEN0b3IpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGVxdWFsT2JqZWN0cztcbiIsInZhciBtZXRhTWFwID0gcmVxdWlyZSgnLi9tZXRhTWFwJyksXG4gICAgbm9vcCA9IHJlcXVpcmUoJy4uL3V0aWxpdHkvbm9vcCcpO1xuXG4vKipcbiAqIEdldHMgbWV0YWRhdGEgZm9yIGBmdW5jYC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgbWV0YWRhdGEgZm9yIGBmdW5jYC5cbiAqL1xudmFyIGdldERhdGEgPSAhbWV0YU1hcCA/IG5vb3AgOiBmdW5jdGlvbihmdW5jKSB7XG4gIHJldHVybiBtZXRhTWFwLmdldChmdW5jKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0RGF0YTtcbiIsInZhciByZWFsTmFtZXMgPSByZXF1aXJlKCcuL3JlYWxOYW1lcycpO1xuXG4vKipcbiAqIEdldHMgdGhlIG5hbWUgb2YgYGZ1bmNgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmdW5jIFRoZSBmdW5jdGlvbiB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IFJldHVybnMgdGhlIGZ1bmN0aW9uIG5hbWUuXG4gKi9cbmZ1bmN0aW9uIGdldEZ1bmNOYW1lKGZ1bmMpIHtcbiAgdmFyIHJlc3VsdCA9IGZ1bmMubmFtZSxcbiAgICAgIGFycmF5ID0gcmVhbE5hbWVzW3Jlc3VsdF0sXG4gICAgICBsZW5ndGggPSBhcnJheSA/IGFycmF5Lmxlbmd0aCA6IDA7XG5cbiAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgdmFyIGRhdGEgPSBhcnJheVtsZW5ndGhdLFxuICAgICAgICBvdGhlckZ1bmMgPSBkYXRhLmZ1bmM7XG4gICAgaWYgKG90aGVyRnVuYyA9PSBudWxsIHx8IG90aGVyRnVuYyA9PSBmdW5jKSB7XG4gICAgICByZXR1cm4gZGF0YS5uYW1lO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEZ1bmNOYW1lO1xuIiwidmFyIGJhc2VQcm9wZXJ0eSA9IHJlcXVpcmUoJy4vYmFzZVByb3BlcnR5Jyk7XG5cbi8qKlxuICogR2V0cyB0aGUgXCJsZW5ndGhcIiBwcm9wZXJ0eSB2YWx1ZSBvZiBgb2JqZWN0YC5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGF2b2lkIGEgW0pJVCBidWddKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI3OTIpXG4gKiB0aGF0IGFmZmVjdHMgU2FmYXJpIG9uIGF0IGxlYXN0IGlPUyA4LjEtOC4zIEFSTTY0LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7Kn0gUmV0dXJucyB0aGUgXCJsZW5ndGhcIiB2YWx1ZS5cbiAqL1xudmFyIGdldExlbmd0aCA9IGJhc2VQcm9wZXJ0eSgnbGVuZ3RoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0TGVuZ3RoO1xuIiwidmFyIGlzU3RyaWN0Q29tcGFyYWJsZSA9IHJlcXVpcmUoJy4vaXNTdHJpY3RDb21wYXJhYmxlJyksXG4gICAgcGFpcnMgPSByZXF1aXJlKCcuLi9vYmplY3QvcGFpcnMnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBwcm9wZXJ5IG5hbWVzLCB2YWx1ZXMsIGFuZCBjb21wYXJlIGZsYWdzIG9mIGBvYmplY3RgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIG1hdGNoIGRhdGEgb2YgYG9iamVjdGAuXG4gKi9cbmZ1bmN0aW9uIGdldE1hdGNoRGF0YShvYmplY3QpIHtcbiAgdmFyIHJlc3VsdCA9IHBhaXJzKG9iamVjdCksXG4gICAgICBsZW5ndGggPSByZXN1bHQubGVuZ3RoO1xuXG4gIHdoaWxlIChsZW5ndGgtLSkge1xuICAgIHJlc3VsdFtsZW5ndGhdWzJdID0gaXNTdHJpY3RDb21wYXJhYmxlKHJlc3VsdFtsZW5ndGhdWzFdKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGdldE1hdGNoRGF0YTtcbiIsInZhciBpc05hdGl2ZSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNOYXRpdmUnKTtcblxuLyoqXG4gKiBHZXRzIHRoZSBuYXRpdmUgZnVuY3Rpb24gYXQgYGtleWAgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgVGhlIGtleSBvZiB0aGUgbWV0aG9kIHRvIGdldC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBmdW5jdGlvbiBpZiBpdCdzIG5hdGl2ZSwgZWxzZSBgdW5kZWZpbmVkYC5cbiAqL1xuZnVuY3Rpb24gZ2V0TmF0aXZlKG9iamVjdCwga2V5KSB7XG4gIHZhciB2YWx1ZSA9IG9iamVjdCA9PSBudWxsID8gdW5kZWZpbmVkIDogb2JqZWN0W2tleV07XG4gIHJldHVybiBpc05hdGl2ZSh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXROYXRpdmU7XG4iLCIvKipcbiAqIEdldHMgdGhlIGluZGV4IGF0IHdoaWNoIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGBOYU5gIGlzIGZvdW5kIGluIGBhcnJheWAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBzZWFyY2guXG4gKiBAcGFyYW0ge251bWJlcn0gZnJvbUluZGV4IFRoZSBpbmRleCB0byBzZWFyY2ggZnJvbS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2Zyb21SaWdodF0gU3BlY2lmeSBpdGVyYXRpbmcgZnJvbSByaWdodCB0byBsZWZ0LlxuICogQHJldHVybnMge251bWJlcn0gUmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIG1hdGNoZWQgYE5hTmAsIGVsc2UgYC0xYC5cbiAqL1xuZnVuY3Rpb24gaW5kZXhPZk5hTihhcnJheSwgZnJvbUluZGV4LCBmcm9tUmlnaHQpIHtcbiAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCxcbiAgICAgIGluZGV4ID0gZnJvbUluZGV4ICsgKGZyb21SaWdodCA/IDAgOiAtMSk7XG5cbiAgd2hpbGUgKChmcm9tUmlnaHQgPyBpbmRleC0tIDogKytpbmRleCA8IGxlbmd0aCkpIHtcbiAgICB2YXIgb3RoZXIgPSBhcnJheVtpbmRleF07XG4gICAgaWYgKG90aGVyICE9PSBvdGhlcikge1xuICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cbiAgfVxuICByZXR1cm4gLTE7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5kZXhPZk5hTjtcbiIsIi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEluaXRpYWxpemVzIGFuIGFycmF5IGNsb25lLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gY2xvbmUuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGluaXRpYWxpemVkIGNsb25lLlxuICovXG5mdW5jdGlvbiBpbml0Q2xvbmVBcnJheShhcnJheSkge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgcmVzdWx0ID0gbmV3IGFycmF5LmNvbnN0cnVjdG9yKGxlbmd0aCk7XG5cbiAgLy8gQWRkIGFycmF5IHByb3BlcnRpZXMgYXNzaWduZWQgYnkgYFJlZ0V4cCNleGVjYC5cbiAgaWYgKGxlbmd0aCAmJiB0eXBlb2YgYXJyYXlbMF0gPT0gJ3N0cmluZycgJiYgaGFzT3duUHJvcGVydHkuY2FsbChhcnJheSwgJ2luZGV4JykpIHtcbiAgICByZXN1bHQuaW5kZXggPSBhcnJheS5pbmRleDtcbiAgICByZXN1bHQuaW5wdXQgPSBhcnJheS5pbnB1dDtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluaXRDbG9uZUFycmF5O1xuIiwiKGZ1bmN0aW9uIChnbG9iYWwpe1xudmFyIGJ1ZmZlckNsb25lID0gcmVxdWlyZSgnLi9idWZmZXJDbG9uZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYm9vbFRhZyA9ICdbb2JqZWN0IEJvb2xlYW5dJyxcbiAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nO1xuXG52YXIgYXJyYXlCdWZmZXJUYWcgPSAnW29iamVjdCBBcnJheUJ1ZmZlcl0nLFxuICAgIGZsb2F0MzJUYWcgPSAnW29iamVjdCBGbG9hdDMyQXJyYXldJyxcbiAgICBmbG9hdDY0VGFnID0gJ1tvYmplY3QgRmxvYXQ2NEFycmF5XScsXG4gICAgaW50OFRhZyA9ICdbb2JqZWN0IEludDhBcnJheV0nLFxuICAgIGludDE2VGFnID0gJ1tvYmplY3QgSW50MTZBcnJheV0nLFxuICAgIGludDMyVGFnID0gJ1tvYmplY3QgSW50MzJBcnJheV0nLFxuICAgIHVpbnQ4VGFnID0gJ1tvYmplY3QgVWludDhBcnJheV0nLFxuICAgIHVpbnQ4Q2xhbXBlZFRhZyA9ICdbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XScsXG4gICAgdWludDE2VGFnID0gJ1tvYmplY3QgVWludDE2QXJyYXldJyxcbiAgICB1aW50MzJUYWcgPSAnW29iamVjdCBVaW50MzJBcnJheV0nO1xuXG4vKiogVXNlZCB0byBtYXRjaCBgUmVnRXhwYCBmbGFncyBmcm9tIHRoZWlyIGNvZXJjZWQgc3RyaW5nIHZhbHVlcy4gKi9cbnZhciByZUZsYWdzID0gL1xcdyokLztcblxuLyoqIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBVaW50OEFycmF5ID0gZ2xvYmFsLlVpbnQ4QXJyYXk7XG5cbi8qKiBVc2VkIHRvIGxvb2t1cCBhIHR5cGUgYXJyYXkgY29uc3RydWN0b3JzIGJ5IGB0b1N0cmluZ1RhZ2AuICovXG52YXIgY3RvckJ5VGFnID0ge307XG5jdG9yQnlUYWdbZmxvYXQzMlRhZ10gPSBnbG9iYWwuRmxvYXQzMkFycmF5O1xuY3RvckJ5VGFnW2Zsb2F0NjRUYWddID0gZ2xvYmFsLkZsb2F0NjRBcnJheTtcbmN0b3JCeVRhZ1tpbnQ4VGFnXSA9IGdsb2JhbC5JbnQ4QXJyYXk7XG5jdG9yQnlUYWdbaW50MTZUYWddID0gZ2xvYmFsLkludDE2QXJyYXk7XG5jdG9yQnlUYWdbaW50MzJUYWddID0gZ2xvYmFsLkludDMyQXJyYXk7XG5jdG9yQnlUYWdbdWludDhUYWddID0gVWludDhBcnJheTtcbmN0b3JCeVRhZ1t1aW50OENsYW1wZWRUYWddID0gZ2xvYmFsLlVpbnQ4Q2xhbXBlZEFycmF5O1xuY3RvckJ5VGFnW3VpbnQxNlRhZ10gPSBnbG9iYWwuVWludDE2QXJyYXk7XG5jdG9yQnlUYWdbdWludDMyVGFnXSA9IGdsb2JhbC5VaW50MzJBcnJheTtcblxuLyoqXG4gKiBJbml0aWFsaXplcyBhbiBvYmplY3QgY2xvbmUgYmFzZWQgb24gaXRzIGB0b1N0cmluZ1RhZ2AuXG4gKlxuICogKipOb3RlOioqIFRoaXMgZnVuY3Rpb24gb25seSBzdXBwb3J0cyBjbG9uaW5nIHZhbHVlcyB3aXRoIHRhZ3Mgb2ZcbiAqIGBCb29sZWFuYCwgYERhdGVgLCBgRXJyb3JgLCBgTnVtYmVyYCwgYFJlZ0V4cGAsIG9yIGBTdHJpbmdgLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge3N0cmluZ30gdGFnIFRoZSBgdG9TdHJpbmdUYWdgIG9mIHRoZSBvYmplY3QgdG8gY2xvbmUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0RlZXBdIFNwZWNpZnkgYSBkZWVwIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaW5pdGlhbGl6ZWQgY2xvbmUuXG4gKi9cbmZ1bmN0aW9uIGluaXRDbG9uZUJ5VGFnKG9iamVjdCwgdGFnLCBpc0RlZXApIHtcbiAgdmFyIEN0b3IgPSBvYmplY3QuY29uc3RydWN0b3I7XG4gIHN3aXRjaCAodGFnKSB7XG4gICAgY2FzZSBhcnJheUJ1ZmZlclRhZzpcbiAgICAgIHJldHVybiBidWZmZXJDbG9uZShvYmplY3QpO1xuXG4gICAgY2FzZSBib29sVGFnOlxuICAgIGNhc2UgZGF0ZVRhZzpcbiAgICAgIHJldHVybiBuZXcgQ3Rvcigrb2JqZWN0KTtcblxuICAgIGNhc2UgZmxvYXQzMlRhZzogY2FzZSBmbG9hdDY0VGFnOlxuICAgIGNhc2UgaW50OFRhZzogY2FzZSBpbnQxNlRhZzogY2FzZSBpbnQzMlRhZzpcbiAgICBjYXNlIHVpbnQ4VGFnOiBjYXNlIHVpbnQ4Q2xhbXBlZFRhZzogY2FzZSB1aW50MTZUYWc6IGNhc2UgdWludDMyVGFnOlxuICAgICAgLy8gU2FmYXJpIDUgbW9iaWxlIGluY29ycmVjdGx5IGhhcyBgT2JqZWN0YCBhcyB0aGUgY29uc3RydWN0b3Igb2YgdHlwZWQgYXJyYXlzLlxuICAgICAgaWYgKEN0b3IgaW5zdGFuY2VvZiBDdG9yKSB7XG4gICAgICAgIEN0b3IgPSBjdG9yQnlUYWdbdGFnXTtcbiAgICAgIH1cbiAgICAgIHZhciBidWZmZXIgPSBvYmplY3QuYnVmZmVyO1xuICAgICAgcmV0dXJuIG5ldyBDdG9yKGlzRGVlcCA/IGJ1ZmZlckNsb25lKGJ1ZmZlcikgOiBidWZmZXIsIG9iamVjdC5ieXRlT2Zmc2V0LCBvYmplY3QubGVuZ3RoKTtcblxuICAgIGNhc2UgbnVtYmVyVGFnOlxuICAgIGNhc2Ugc3RyaW5nVGFnOlxuICAgICAgcmV0dXJuIG5ldyBDdG9yKG9iamVjdCk7XG5cbiAgICBjYXNlIHJlZ2V4cFRhZzpcbiAgICAgIHZhciByZXN1bHQgPSBuZXcgQ3RvcihvYmplY3Quc291cmNlLCByZUZsYWdzLmV4ZWMob2JqZWN0KSk7XG4gICAgICByZXN1bHQubGFzdEluZGV4ID0gb2JqZWN0Lmxhc3RJbmRleDtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGluaXRDbG9uZUJ5VGFnO1xuXG59KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbCA6IHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiID8gc2VsZiA6IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiB7fSlcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0OnV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYkltNXZaR1ZmYlc5a2RXeGxjeTlzYjJSaGMyZ3RZMjl0Y0dGMEwybHVkR1Z5Ym1Gc0wybHVhWFJEYkc5dVpVSjVWR0ZuTG1weklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJN1FVRkJRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQklpd2labWxzWlNJNkltZGxibVZ5WVhSbFpDNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUoyWVhJZ1luVm1abVZ5UTJ4dmJtVWdQU0J5WlhGMWFYSmxLQ2N1TDJKMVptWmxja05zYjI1bEp5azdYRzVjYmk4cUtpQmdUMkpxWldOMEkzUnZVM1J5YVc1bllDQnlaWE4xYkhRZ2NtVm1aWEpsYm1ObGN5NGdLaTljYm5aaGNpQmliMjlzVkdGbklEMGdKMXR2WW1wbFkzUWdRbTl2YkdWaGJsMG5MRnh1SUNBZ0lHUmhkR1ZVWVdjZ1BTQW5XMjlpYW1WamRDQkVZWFJsWFNjc1hHNGdJQ0FnYm5WdFltVnlWR0ZuSUQwZ0oxdHZZbXBsWTNRZ1RuVnRZbVZ5WFNjc1hHNGdJQ0FnY21WblpYaHdWR0ZuSUQwZ0oxdHZZbXBsWTNRZ1VtVm5SWGh3WFNjc1hHNGdJQ0FnYzNSeWFXNW5WR0ZuSUQwZ0oxdHZZbXBsWTNRZ1UzUnlhVzVuWFNjN1hHNWNiblpoY2lCaGNuSmhlVUoxWm1abGNsUmhaeUE5SUNkYmIySnFaV04wSUVGeWNtRjVRblZtWm1WeVhTY3NYRzRnSUNBZ1pteHZZWFF6TWxSaFp5QTlJQ2RiYjJKcVpXTjBJRVpzYjJGME16SkJjbkpoZVYwbkxGeHVJQ0FnSUdac2IyRjBOalJVWVdjZ1BTQW5XMjlpYW1WamRDQkdiRzloZERZMFFYSnlZWGxkSnl4Y2JpQWdJQ0JwYm5RNFZHRm5JRDBnSjF0dlltcGxZM1FnU1c1ME9FRnljbUY1WFNjc1hHNGdJQ0FnYVc1ME1UWlVZV2NnUFNBblcyOWlhbVZqZENCSmJuUXhOa0Z5Y21GNVhTY3NYRzRnSUNBZ2FXNTBNekpVWVdjZ1BTQW5XMjlpYW1WamRDQkpiblF6TWtGeWNtRjVYU2NzWEc0Z0lDQWdkV2x1ZERoVVlXY2dQU0FuVzI5aWFtVmpkQ0JWYVc1ME9FRnljbUY1WFNjc1hHNGdJQ0FnZFdsdWREaERiR0Z0Y0dWa1ZHRm5JRDBnSjF0dlltcGxZM1FnVldsdWREaERiR0Z0Y0dWa1FYSnlZWGxkSnl4Y2JpQWdJQ0IxYVc1ME1UWlVZV2NnUFNBblcyOWlhbVZqZENCVmFXNTBNVFpCY25KaGVWMG5MRnh1SUNBZ0lIVnBiblF6TWxSaFp5QTlJQ2RiYjJKcVpXTjBJRlZwYm5Rek1rRnljbUY1WFNjN1hHNWNiaThxS2lCVmMyVmtJSFJ2SUcxaGRHTm9JR0JTWldkRmVIQmdJR1pzWVdkeklHWnliMjBnZEdobGFYSWdZMjlsY21ObFpDQnpkSEpwYm1jZ2RtRnNkV1Z6TGlBcUwxeHVkbUZ5SUhKbFJteGhaM01nUFNBdlhGeDNLaVF2TzF4dVhHNHZLaW9nVG1GMGFYWmxJRzFsZEdodlpDQnlaV1psY21WdVkyVnpMaUFxTDF4dWRtRnlJRlZwYm5RNFFYSnlZWGtnUFNCbmJHOWlZV3d1VldsdWREaEJjbkpoZVR0Y2JseHVMeW9xSUZWelpXUWdkRzhnYkc5dmEzVndJR0VnZEhsd1pTQmhjbkpoZVNCamIyNXpkSEoxWTNSdmNuTWdZbmtnWUhSdlUzUnlhVzVuVkdGbllDNGdLaTljYm5aaGNpQmpkRzl5UW5sVVlXY2dQU0I3ZlR0Y2JtTjBiM0pDZVZSaFoxdG1iRzloZERNeVZHRm5YU0E5SUdkc2IySmhiQzVHYkc5aGRETXlRWEp5WVhrN1hHNWpkRzl5UW5sVVlXZGJabXh2WVhRMk5GUmhaMTBnUFNCbmJHOWlZV3d1Um14dllYUTJORUZ5Y21GNU8xeHVZM1J2Y2tKNVZHRm5XMmx1ZERoVVlXZGRJRDBnWjJ4dlltRnNMa2x1ZERoQmNuSmhlVHRjYm1OMGIzSkNlVlJoWjF0cGJuUXhObFJoWjEwZ1BTQm5iRzlpWVd3dVNXNTBNVFpCY25KaGVUdGNibU4wYjNKQ2VWUmhaMXRwYm5Rek1sUmhaMTBnUFNCbmJHOWlZV3d1U1c1ME16SkJjbkpoZVR0Y2JtTjBiM0pDZVZSaFoxdDFhVzUwT0ZSaFoxMGdQU0JWYVc1ME9FRnljbUY1TzF4dVkzUnZja0o1VkdGblczVnBiblE0UTJ4aGJYQmxaRlJoWjEwZ1BTQm5iRzlpWVd3dVZXbHVkRGhEYkdGdGNHVmtRWEp5WVhrN1hHNWpkRzl5UW5sVVlXZGJkV2x1ZERFMlZHRm5YU0E5SUdkc2IySmhiQzVWYVc1ME1UWkJjbkpoZVR0Y2JtTjBiM0pDZVZSaFoxdDFhVzUwTXpKVVlXZGRJRDBnWjJ4dlltRnNMbFZwYm5Rek1rRnljbUY1TzF4dVhHNHZLaXBjYmlBcUlFbHVhWFJwWVd4cGVtVnpJR0Z1SUc5aWFtVmpkQ0JqYkc5dVpTQmlZWE5sWkNCdmJpQnBkSE1nWUhSdlUzUnlhVzVuVkdGbllDNWNiaUFxWEc0Z0tpQXFLazV2ZEdVNktpb2dWR2hwY3lCbWRXNWpkR2x2YmlCdmJteDVJSE4xY0hCdmNuUnpJR05zYjI1cGJtY2dkbUZzZFdWeklIZHBkR2dnZEdGbmN5QnZabHh1SUNvZ1lFSnZiMnhsWVc1Z0xDQmdSR0YwWldBc0lHQkZjbkp2Y21Bc0lHQk9kVzFpWlhKZ0xDQmdVbVZuUlhod1lDd2diM0lnWUZOMGNtbHVaMkF1WEc0Z0tseHVJQ29nUUhCeWFYWmhkR1ZjYmlBcUlFQndZWEpoYlNCN1QySnFaV04wZlNCdlltcGxZM1FnVkdobElHOWlhbVZqZENCMGJ5QmpiRzl1WlM1Y2JpQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQjBZV2NnVkdobElHQjBiMU4wY21sdVoxUmhaMkFnYjJZZ2RHaGxJRzlpYW1WamRDQjBieUJqYkc5dVpTNWNiaUFxSUVCd1lYSmhiU0I3WW05dmJHVmhibjBnVzJselJHVmxjRjBnVTNCbFkybG1lU0JoSUdSbFpYQWdZMnh2Ym1VdVhHNGdLaUJBY21WMGRYSnVjeUI3VDJKcVpXTjBmU0JTWlhSMWNtNXpJSFJvWlNCcGJtbDBhV0ZzYVhwbFpDQmpiRzl1WlM1Y2JpQXFMMXh1Wm5WdVkzUnBiMjRnYVc1cGRFTnNiMjVsUW5sVVlXY29iMkpxWldOMExDQjBZV2NzSUdselJHVmxjQ2tnZTF4dUlDQjJZWElnUTNSdmNpQTlJRzlpYW1WamRDNWpiMjV6ZEhKMVkzUnZjanRjYmlBZ2MzZHBkR05vSUNoMFlXY3BJSHRjYmlBZ0lDQmpZWE5sSUdGeWNtRjVRblZtWm1WeVZHRm5PbHh1SUNBZ0lDQWdjbVYwZFhKdUlHSjFabVpsY2tOc2IyNWxLRzlpYW1WamRDazdYRzVjYmlBZ0lDQmpZWE5sSUdKdmIyeFVZV2M2WEc0Z0lDQWdZMkZ6WlNCa1lYUmxWR0ZuT2x4dUlDQWdJQ0FnY21WMGRYSnVJRzVsZHlCRGRHOXlLQ3R2WW1wbFkzUXBPMXh1WEc0Z0lDQWdZMkZ6WlNCbWJHOWhkRE15VkdGbk9pQmpZWE5sSUdac2IyRjBOalJVWVdjNlhHNGdJQ0FnWTJGelpTQnBiblE0VkdGbk9pQmpZWE5sSUdsdWRERTJWR0ZuT2lCallYTmxJR2x1ZERNeVZHRm5PbHh1SUNBZ0lHTmhjMlVnZFdsdWREaFVZV2M2SUdOaGMyVWdkV2x1ZERoRGJHRnRjR1ZrVkdGbk9pQmpZWE5sSUhWcGJuUXhObFJoWnpvZ1kyRnpaU0IxYVc1ME16SlVZV2M2WEc0Z0lDQWdJQ0F2THlCVFlXWmhjbWtnTlNCdGIySnBiR1VnYVc1amIzSnlaV04wYkhrZ2FHRnpJR0JQWW1wbFkzUmdJR0Z6SUhSb1pTQmpiMjV6ZEhKMVkzUnZjaUJ2WmlCMGVYQmxaQ0JoY25KaGVYTXVYRzRnSUNBZ0lDQnBaaUFvUTNSdmNpQnBibk4wWVc1alpXOW1JRU4wYjNJcElIdGNiaUFnSUNBZ0lDQWdRM1J2Y2lBOUlHTjBiM0pDZVZSaFoxdDBZV2RkTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnZG1GeUlHSjFabVpsY2lBOUlHOWlhbVZqZEM1aWRXWm1aWEk3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdibVYzSUVOMGIzSW9hWE5FWldWd0lEOGdZblZtWm1WeVEyeHZibVVvWW5WbVptVnlLU0E2SUdKMVptWmxjaXdnYjJKcVpXTjBMbUo1ZEdWUFptWnpaWFFzSUc5aWFtVmpkQzVzWlc1bmRHZ3BPMXh1WEc0Z0lDQWdZMkZ6WlNCdWRXMWlaWEpVWVdjNlhHNGdJQ0FnWTJGelpTQnpkSEpwYm1kVVlXYzZYRzRnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRU4wYjNJb2IySnFaV04wS1R0Y2JseHVJQ0FnSUdOaGMyVWdjbVZuWlhod1ZHRm5PbHh1SUNBZ0lDQWdkbUZ5SUhKbGMzVnNkQ0E5SUc1bGR5QkRkRzl5S0c5aWFtVmpkQzV6YjNWeVkyVXNJSEpsUm14aFozTXVaWGhsWXlodlltcGxZM1FwS1R0Y2JpQWdJQ0FnSUhKbGMzVnNkQzVzWVhOMFNXNWtaWGdnUFNCdlltcGxZM1F1YkdGemRFbHVaR1Y0TzF4dUlDQjlYRzRnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzU5WEc1Y2JtMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ2FXNXBkRU5zYjI1bFFubFVZV2M3WEc0aVhYMD0iLCIvKipcbiAqIEluaXRpYWxpemVzIGFuIG9iamVjdCBjbG9uZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgaW5pdGlhbGl6ZWQgY2xvbmUuXG4gKi9cbmZ1bmN0aW9uIGluaXRDbG9uZU9iamVjdChvYmplY3QpIHtcbiAgdmFyIEN0b3IgPSBvYmplY3QuY29uc3RydWN0b3I7XG4gIGlmICghKHR5cGVvZiBDdG9yID09ICdmdW5jdGlvbicgJiYgQ3RvciBpbnN0YW5jZW9mIEN0b3IpKSB7XG4gICAgQ3RvciA9IE9iamVjdDtcbiAgfVxuICByZXR1cm4gbmV3IEN0b3I7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5pdENsb25lT2JqZWN0O1xuIiwidmFyIGdldExlbmd0aCA9IHJlcXVpcmUoJy4vZ2V0TGVuZ3RoJyksXG4gICAgaXNMZW5ndGggPSByZXF1aXJlKCcuL2lzTGVuZ3RoJyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYXJyYXktbGlrZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhcnJheS1saWtlLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzQXJyYXlMaWtlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSAhPSBudWxsICYmIGlzTGVuZ3RoKGdldExlbmd0aCh2YWx1ZSkpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzQXJyYXlMaWtlO1xuIiwiLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIGhvc3Qgb2JqZWN0IGluIElFIDwgOS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIGhvc3Qgb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKi9cbnZhciBpc0hvc3RPYmplY3QgPSAoZnVuY3Rpb24oKSB7XG4gIHRyeSB7XG4gICAgT2JqZWN0KHsgJ3RvU3RyaW5nJzogMCB9ICsgJycpO1xuICB9IGNhdGNoKGUpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oKSB7IHJldHVybiBmYWxzZTsgfTtcbiAgfVxuICByZXR1cm4gZnVuY3Rpb24odmFsdWUpIHtcbiAgICAvLyBJRSA8IDkgcHJlc2VudHMgbWFueSBob3N0IG9iamVjdHMgYXMgYE9iamVjdGAgb2JqZWN0cyB0aGF0IGNhbiBjb2VyY2VcbiAgICAvLyB0byBzdHJpbmdzIGRlc3BpdGUgaGF2aW5nIGltcHJvcGVybHkgZGVmaW5lZCBgdG9TdHJpbmdgIG1ldGhvZHMuXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZS50b1N0cmluZyAhPSAnZnVuY3Rpb24nICYmIHR5cGVvZiAodmFsdWUgKyAnJykgPT0gJ3N0cmluZyc7XG4gIH07XG59KCkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzSG9zdE9iamVjdDtcbiIsIi8qKiBVc2VkIHRvIGRldGVjdCB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlcy4gKi9cbnZhciByZUlzVWludCA9IC9eXFxkKyQvO1xuXG4vKipcbiAqIFVzZWQgYXMgdGhlIFttYXhpbXVtIGxlbmd0aF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtbnVtYmVyLm1heF9zYWZlX2ludGVnZXIpXG4gKiBvZiBhbiBhcnJheS1saWtlIHZhbHVlLlxuICovXG52YXIgTUFYX1NBRkVfSU5URUdFUiA9IDkwMDcxOTkyNTQ3NDA5OTE7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSB2YWxpZCBhcnJheS1saWtlIGluZGV4LlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPU1BWF9TQUZFX0lOVEVHRVJdIFRoZSB1cHBlciBib3VuZHMgb2YgYSB2YWxpZCBpbmRleC5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgaW5kZXgsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNJbmRleCh2YWx1ZSwgbGVuZ3RoKSB7XG4gIHZhbHVlID0gKHR5cGVvZiB2YWx1ZSA9PSAnbnVtYmVyJyB8fCByZUlzVWludC50ZXN0KHZhbHVlKSkgPyArdmFsdWUgOiAtMTtcbiAgbGVuZ3RoID0gbGVuZ3RoID09IG51bGwgPyBNQVhfU0FGRV9JTlRFR0VSIDogbGVuZ3RoO1xuICByZXR1cm4gdmFsdWUgPiAtMSAmJiB2YWx1ZSAlIDEgPT0gMCAmJiB2YWx1ZSA8IGxlbmd0aDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0luZGV4O1xuIiwidmFyIGlzQXJyYXlMaWtlID0gcmVxdWlyZSgnLi9pc0FycmF5TGlrZScpLFxuICAgIGlzSW5kZXggPSByZXF1aXJlKCcuL2lzSW5kZXgnKSxcbiAgICBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2xhbmcvaXNPYmplY3QnKTtcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIHByb3ZpZGVkIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgdmFsdWUgYXJndW1lbnQuXG4gKiBAcGFyYW0geyp9IGluZGV4IFRoZSBwb3RlbnRpYWwgaXRlcmF0ZWUgaW5kZXggb3Iga2V5IGFyZ3VtZW50LlxuICogQHBhcmFtIHsqfSBvYmplY3QgVGhlIHBvdGVudGlhbCBpdGVyYXRlZSBvYmplY3QgYXJndW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFyZ3VtZW50cyBhcmUgZnJvbSBhbiBpdGVyYXRlZSBjYWxsLCBlbHNlIGBmYWxzZWAuXG4gKi9cbmZ1bmN0aW9uIGlzSXRlcmF0ZWVDYWxsKHZhbHVlLCBpbmRleCwgb2JqZWN0KSB7XG4gIGlmICghaXNPYmplY3Qob2JqZWN0KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgdHlwZSA9IHR5cGVvZiBpbmRleDtcbiAgaWYgKHR5cGUgPT0gJ251bWJlcidcbiAgICAgID8gKGlzQXJyYXlMaWtlKG9iamVjdCkgJiYgaXNJbmRleChpbmRleCwgb2JqZWN0Lmxlbmd0aCkpXG4gICAgICA6ICh0eXBlID09ICdzdHJpbmcnICYmIGluZGV4IGluIG9iamVjdCkpIHtcbiAgICB2YXIgb3RoZXIgPSBvYmplY3RbaW5kZXhdO1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdmFsdWUgPyAodmFsdWUgPT09IG90aGVyKSA6IChvdGhlciAhPT0gb3RoZXIpO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0l0ZXJhdGVlQ2FsbDtcbiIsInZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FycmF5JyksXG4gICAgdG9PYmplY3QgPSByZXF1aXJlKCcuL3RvT2JqZWN0Jyk7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIHByb3BlcnR5IG5hbWVzIHdpdGhpbiBwcm9wZXJ0eSBwYXRocy4gKi9cbnZhciByZUlzRGVlcFByb3AgPSAvXFwufFxcWyg/OlteW1xcXV0qfChbXCInXSkoPzooPyFcXDEpW15cXG5cXFxcXXxcXFxcLikqP1xcMSlcXF0vLFxuICAgIHJlSXNQbGFpblByb3AgPSAvXlxcdyokLztcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBhIHByb3BlcnR5IG5hbWUgYW5kIG5vdCBhIHByb3BlcnR5IHBhdGguXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHBhcmFtIHtPYmplY3R9IFtvYmplY3RdIFRoZSBvYmplY3QgdG8gcXVlcnkga2V5cyBvbi5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgcHJvcGVydHkgbmFtZSwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0tleSh2YWx1ZSwgb2JqZWN0KSB7XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICBpZiAoKHR5cGUgPT0gJ3N0cmluZycgJiYgcmVJc1BsYWluUHJvcC50ZXN0KHZhbHVlKSkgfHwgdHlwZSA9PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB2YXIgcmVzdWx0ID0gIXJlSXNEZWVwUHJvcC50ZXN0KHZhbHVlKTtcbiAgcmV0dXJuIHJlc3VsdCB8fCAob2JqZWN0ICE9IG51bGwgJiYgdmFsdWUgaW4gdG9PYmplY3Qob2JqZWN0KSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNLZXk7XG4iLCJ2YXIgTGF6eVdyYXBwZXIgPSByZXF1aXJlKCcuL0xhenlXcmFwcGVyJyksXG4gICAgZ2V0RGF0YSA9IHJlcXVpcmUoJy4vZ2V0RGF0YScpLFxuICAgIGdldEZ1bmNOYW1lID0gcmVxdWlyZSgnLi9nZXRGdW5jTmFtZScpLFxuICAgIGxvZGFzaCA9IHJlcXVpcmUoJy4uL2NoYWluL2xvZGFzaCcpO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgZnVuY2AgaGFzIGEgbGF6eSBjb3VudGVycGFydC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYGZ1bmNgIGhhcyBhIGxhenkgY291bnRlcnBhcnQsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNMYXppYWJsZShmdW5jKSB7XG4gIHZhciBmdW5jTmFtZSA9IGdldEZ1bmNOYW1lKGZ1bmMpO1xuICBpZiAoIShmdW5jTmFtZSBpbiBMYXp5V3JhcHBlci5wcm90b3R5cGUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHZhciBvdGhlciA9IGxvZGFzaFtmdW5jTmFtZV07XG4gIGlmIChmdW5jID09PSBvdGhlcikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHZhciBkYXRhID0gZ2V0RGF0YShvdGhlcik7XG4gIHJldHVybiAhIWRhdGEgJiYgZnVuYyA9PT0gZGF0YVswXTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0xhemlhYmxlO1xuIiwiLyoqXG4gKiBVc2VkIGFzIHRoZSBbbWF4aW11bSBsZW5ndGhdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzYuMC8jc2VjLW51bWJlci5tYXhfc2FmZV9pbnRlZ2VyKVxuICogb2YgYW4gYXJyYXktbGlrZSB2YWx1ZS5cbiAqL1xudmFyIE1BWF9TQUZFX0lOVEVHRVIgPSA5MDA3MTk5MjU0NzQwOTkxO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGEgdmFsaWQgYXJyYXktbGlrZSBsZW5ndGguXG4gKlxuICogKipOb3RlOioqIFRoaXMgZnVuY3Rpb24gaXMgYmFzZWQgb24gW2BUb0xlbmd0aGBdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzYuMC8jc2VjLXRvbGVuZ3RoKS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBhIHZhbGlkIGxlbmd0aCwgZWxzZSBgZmFsc2VgLlxuICovXG5mdW5jdGlvbiBpc0xlbmd0aCh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdudW1iZXInICYmIHZhbHVlID4gLTEgJiYgdmFsdWUgJSAxID09IDAgJiYgdmFsdWUgPD0gTUFYX1NBRkVfSU5URUdFUjtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0xlbmd0aDtcbiIsIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgb2JqZWN0LWxpa2UsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNPYmplY3RMaWtlKHZhbHVlKSB7XG4gIHJldHVybiAhIXZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PSAnb2JqZWN0Jztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc09iamVjdExpa2U7XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9sYW5nL2lzT2JqZWN0Jyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgc3VpdGFibGUgZm9yIHN0cmljdCBlcXVhbGl0eSBjb21wYXJpc29ucywgaS5lLiBgPT09YC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpZiBzdWl0YWJsZSBmb3Igc3RyaWN0XG4gKiAgZXF1YWxpdHkgY29tcGFyaXNvbnMsIGVsc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNTdHJpY3RDb21wYXJhYmxlKHZhbHVlKSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gdmFsdWUgJiYgIWlzT2JqZWN0KHZhbHVlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc1N0cmljdENvbXBhcmFibGU7XG4iLCJ2YXIgYXJyYXlDb3B5ID0gcmVxdWlyZSgnLi9hcnJheUNvcHknKSxcbiAgICBjb21wb3NlQXJncyA9IHJlcXVpcmUoJy4vY29tcG9zZUFyZ3MnKSxcbiAgICBjb21wb3NlQXJnc1JpZ2h0ID0gcmVxdWlyZSgnLi9jb21wb3NlQXJnc1JpZ2h0JyksXG4gICAgcmVwbGFjZUhvbGRlcnMgPSByZXF1aXJlKCcuL3JlcGxhY2VIb2xkZXJzJyk7XG5cbi8qKiBVc2VkIHRvIGNvbXBvc2UgYml0bWFza3MgZm9yIHdyYXBwZXIgbWV0YWRhdGEuICovXG52YXIgQklORF9GTEFHID0gMSxcbiAgICBDVVJSWV9CT1VORF9GTEFHID0gNCxcbiAgICBDVVJSWV9GTEFHID0gOCxcbiAgICBBUllfRkxBRyA9IDEyOCxcbiAgICBSRUFSR19GTEFHID0gMjU2O1xuXG4vKiogVXNlZCBhcyB0aGUgaW50ZXJuYWwgYXJndW1lbnQgcGxhY2Vob2xkZXIuICovXG52YXIgUExBQ0VIT0xERVIgPSAnX19sb2Rhc2hfcGxhY2Vob2xkZXJfXyc7XG5cbi8qIE5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcyBmb3IgdGhvc2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIG90aGVyIGBsb2Rhc2hgIG1ldGhvZHMuICovXG52YXIgbmF0aXZlTWluID0gTWF0aC5taW47XG5cbi8qKlxuICogTWVyZ2VzIHRoZSBmdW5jdGlvbiBtZXRhZGF0YSBvZiBgc291cmNlYCBpbnRvIGBkYXRhYC5cbiAqXG4gKiBNZXJnaW5nIG1ldGFkYXRhIHJlZHVjZXMgdGhlIG51bWJlciBvZiB3cmFwcGVycyByZXF1aXJlZCB0byBpbnZva2UgYSBmdW5jdGlvbi5cbiAqIFRoaXMgaXMgcG9zc2libGUgYmVjYXVzZSBtZXRob2RzIGxpa2UgYF8uYmluZGAsIGBfLmN1cnJ5YCwgYW5kIGBfLnBhcnRpYWxgXG4gKiBtYXkgYmUgYXBwbGllZCByZWdhcmRsZXNzIG9mIGV4ZWN1dGlvbiBvcmRlci4gTWV0aG9kcyBsaWtlIGBfLmFyeWAgYW5kIGBfLnJlYXJnYFxuICogYXVnbWVudCBmdW5jdGlvbiBhcmd1bWVudHMsIG1ha2luZyB0aGUgb3JkZXIgaW4gd2hpY2ggdGhleSBhcmUgZXhlY3V0ZWQgaW1wb3J0YW50LFxuICogcHJldmVudGluZyB0aGUgbWVyZ2luZyBvZiBtZXRhZGF0YS4gSG93ZXZlciwgd2UgbWFrZSBhbiBleGNlcHRpb24gZm9yIGEgc2FmZVxuICogY29tbW9uIGNhc2Ugd2hlcmUgY3VycmllZCBmdW5jdGlvbnMgaGF2ZSBgXy5hcnlgIGFuZCBvciBgXy5yZWFyZ2AgYXBwbGllZC5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtBcnJheX0gZGF0YSBUaGUgZGVzdGluYXRpb24gbWV0YWRhdGEuXG4gKiBAcGFyYW0ge0FycmF5fSBzb3VyY2UgVGhlIHNvdXJjZSBtZXRhZGF0YS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyBgZGF0YWAuXG4gKi9cbmZ1bmN0aW9uIG1lcmdlRGF0YShkYXRhLCBzb3VyY2UpIHtcbiAgdmFyIGJpdG1hc2sgPSBkYXRhWzFdLFxuICAgICAgc3JjQml0bWFzayA9IHNvdXJjZVsxXSxcbiAgICAgIG5ld0JpdG1hc2sgPSBiaXRtYXNrIHwgc3JjQml0bWFzayxcbiAgICAgIGlzQ29tbW9uID0gbmV3Qml0bWFzayA8IEFSWV9GTEFHO1xuXG4gIHZhciBpc0NvbWJvID1cbiAgICAoc3JjQml0bWFzayA9PSBBUllfRkxBRyAmJiBiaXRtYXNrID09IENVUlJZX0ZMQUcpIHx8XG4gICAgKHNyY0JpdG1hc2sgPT0gQVJZX0ZMQUcgJiYgYml0bWFzayA9PSBSRUFSR19GTEFHICYmIGRhdGFbN10ubGVuZ3RoIDw9IHNvdXJjZVs4XSkgfHxcbiAgICAoc3JjQml0bWFzayA9PSAoQVJZX0ZMQUcgfCBSRUFSR19GTEFHKSAmJiBiaXRtYXNrID09IENVUlJZX0ZMQUcpO1xuXG4gIC8vIEV4aXQgZWFybHkgaWYgbWV0YWRhdGEgY2FuJ3QgYmUgbWVyZ2VkLlxuICBpZiAoIShpc0NvbW1vbiB8fCBpc0NvbWJvKSkge1xuICAgIHJldHVybiBkYXRhO1xuICB9XG4gIC8vIFVzZSBzb3VyY2UgYHRoaXNBcmdgIGlmIGF2YWlsYWJsZS5cbiAgaWYgKHNyY0JpdG1hc2sgJiBCSU5EX0ZMQUcpIHtcbiAgICBkYXRhWzJdID0gc291cmNlWzJdO1xuICAgIC8vIFNldCB3aGVuIGN1cnJ5aW5nIGEgYm91bmQgZnVuY3Rpb24uXG4gICAgbmV3Qml0bWFzayB8PSAoYml0bWFzayAmIEJJTkRfRkxBRykgPyAwIDogQ1VSUllfQk9VTkRfRkxBRztcbiAgfVxuICAvLyBDb21wb3NlIHBhcnRpYWwgYXJndW1lbnRzLlxuICB2YXIgdmFsdWUgPSBzb3VyY2VbM107XG4gIGlmICh2YWx1ZSkge1xuICAgIHZhciBwYXJ0aWFscyA9IGRhdGFbM107XG4gICAgZGF0YVszXSA9IHBhcnRpYWxzID8gY29tcG9zZUFyZ3MocGFydGlhbHMsIHZhbHVlLCBzb3VyY2VbNF0pIDogYXJyYXlDb3B5KHZhbHVlKTtcbiAgICBkYXRhWzRdID0gcGFydGlhbHMgPyByZXBsYWNlSG9sZGVycyhkYXRhWzNdLCBQTEFDRUhPTERFUikgOiBhcnJheUNvcHkoc291cmNlWzRdKTtcbiAgfVxuICAvLyBDb21wb3NlIHBhcnRpYWwgcmlnaHQgYXJndW1lbnRzLlxuICB2YWx1ZSA9IHNvdXJjZVs1XTtcbiAgaWYgKHZhbHVlKSB7XG4gICAgcGFydGlhbHMgPSBkYXRhWzVdO1xuICAgIGRhdGFbNV0gPSBwYXJ0aWFscyA/IGNvbXBvc2VBcmdzUmlnaHQocGFydGlhbHMsIHZhbHVlLCBzb3VyY2VbNl0pIDogYXJyYXlDb3B5KHZhbHVlKTtcbiAgICBkYXRhWzZdID0gcGFydGlhbHMgPyByZXBsYWNlSG9sZGVycyhkYXRhWzVdLCBQTEFDRUhPTERFUikgOiBhcnJheUNvcHkoc291cmNlWzZdKTtcbiAgfVxuICAvLyBVc2Ugc291cmNlIGBhcmdQb3NgIGlmIGF2YWlsYWJsZS5cbiAgdmFsdWUgPSBzb3VyY2VbN107XG4gIGlmICh2YWx1ZSkge1xuICAgIGRhdGFbN10gPSBhcnJheUNvcHkodmFsdWUpO1xuICB9XG4gIC8vIFVzZSBzb3VyY2UgYGFyeWAgaWYgaXQncyBzbWFsbGVyLlxuICBpZiAoc3JjQml0bWFzayAmIEFSWV9GTEFHKSB7XG4gICAgZGF0YVs4XSA9IGRhdGFbOF0gPT0gbnVsbCA/IHNvdXJjZVs4XSA6IG5hdGl2ZU1pbihkYXRhWzhdLCBzb3VyY2VbOF0pO1xuICB9XG4gIC8vIFVzZSBzb3VyY2UgYGFyaXR5YCBpZiBvbmUgaXMgbm90IHByb3ZpZGVkLlxuICBpZiAoZGF0YVs5XSA9PSBudWxsKSB7XG4gICAgZGF0YVs5XSA9IHNvdXJjZVs5XTtcbiAgfVxuICAvLyBVc2Ugc291cmNlIGBmdW5jYCBhbmQgbWVyZ2UgYml0bWFza3MuXG4gIGRhdGFbMF0gPSBzb3VyY2VbMF07XG4gIGRhdGFbMV0gPSBuZXdCaXRtYXNrO1xuXG4gIHJldHVybiBkYXRhO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG1lcmdlRGF0YTtcbiIsIihmdW5jdGlvbiAoZ2xvYmFsKXtcbnZhciBnZXROYXRpdmUgPSByZXF1aXJlKCcuL2dldE5hdGl2ZScpO1xuXG4vKiogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIFdlYWtNYXAgPSBnZXROYXRpdmUoZ2xvYmFsLCAnV2Vha01hcCcpO1xuXG4vKiogVXNlZCB0byBzdG9yZSBmdW5jdGlvbiBtZXRhZGF0YS4gKi9cbnZhciBtZXRhTWFwID0gV2Vha01hcCAmJiBuZXcgV2Vha01hcDtcblxubW9kdWxlLmV4cG9ydHMgPSBtZXRhTWFwO1xuXG59KS5jYWxsKHRoaXMsdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbCA6IHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiID8gc2VsZiA6IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiB7fSlcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0OnV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKemIzVnlZMlZ6SWpwYkltNXZaR1ZmYlc5a2RXeGxjeTlzYjJSaGMyZ3RZMjl0Y0dGMEwybHVkR1Z5Ym1Gc0wyMWxkR0ZOWVhBdWFuTWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqdEJRVUZCTzBGQlEwRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CSWl3aVptbHNaU0k2SW1kbGJtVnlZWFJsWkM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SjJZWElnWjJWMFRtRjBhWFpsSUQwZ2NtVnhkV2x5WlNnbkxpOW5aWFJPWVhScGRtVW5LVHRjYmx4dUx5b3FJRTVoZEdsMlpTQnRaWFJvYjJRZ2NtVm1aWEpsYm1ObGN5NGdLaTljYm5aaGNpQlhaV0ZyVFdGd0lEMGdaMlYwVG1GMGFYWmxLR2RzYjJKaGJDd2dKMWRsWVd0TllYQW5LVHRjYmx4dUx5b3FJRlZ6WldRZ2RHOGdjM1J2Y21VZ1puVnVZM1JwYjI0Z2JXVjBZV1JoZEdFdUlDb3ZYRzUyWVhJZ2JXVjBZVTFoY0NBOUlGZGxZV3ROWVhBZ0ppWWdibVYzSUZkbFlXdE5ZWEE3WEc1Y2JtMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ2JXVjBZVTFoY0R0Y2JpSmRmUT09IiwiLyoqIFVzZWQgdG8gbG9va3VwIHVubWluaWZpZWQgZnVuY3Rpb24gbmFtZXMuICovXG52YXIgcmVhbE5hbWVzID0ge307XG5cbm1vZHVsZS5leHBvcnRzID0gcmVhbE5hbWVzO1xuIiwidmFyIGFycmF5Q29weSA9IHJlcXVpcmUoJy4vYXJyYXlDb3B5JyksXG4gICAgaXNJbmRleCA9IHJlcXVpcmUoJy4vaXNJbmRleCcpO1xuXG4vKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZU1pbiA9IE1hdGgubWluO1xuXG4vKipcbiAqIFJlb3JkZXIgYGFycmF5YCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBpbmRleGVzIHdoZXJlIHRoZSBlbGVtZW50IGF0XG4gKiB0aGUgZmlyc3QgaW5kZXggaXMgYXNzaWduZWQgYXMgdGhlIGZpcnN0IGVsZW1lbnQsIHRoZSBlbGVtZW50IGF0XG4gKiB0aGUgc2Vjb25kIGluZGV4IGlzIGFzc2lnbmVkIGFzIHRoZSBzZWNvbmQgZWxlbWVudCwgYW5kIHNvIG9uLlxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJheSBUaGUgYXJyYXkgdG8gcmVvcmRlci5cbiAqIEBwYXJhbSB7QXJyYXl9IGluZGV4ZXMgVGhlIGFycmFuZ2VkIGFycmF5IGluZGV4ZXMuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgYGFycmF5YC5cbiAqL1xuZnVuY3Rpb24gcmVvcmRlcihhcnJheSwgaW5kZXhlcykge1xuICB2YXIgYXJyTGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgbGVuZ3RoID0gbmF0aXZlTWluKGluZGV4ZXMubGVuZ3RoLCBhcnJMZW5ndGgpLFxuICAgICAgb2xkQXJyYXkgPSBhcnJheUNvcHkoYXJyYXkpO1xuXG4gIHdoaWxlIChsZW5ndGgtLSkge1xuICAgIHZhciBpbmRleCA9IGluZGV4ZXNbbGVuZ3RoXTtcbiAgICBhcnJheVtsZW5ndGhdID0gaXNJbmRleChpbmRleCwgYXJyTGVuZ3RoKSA/IG9sZEFycmF5W2luZGV4XSA6IHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4gYXJyYXk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcmVvcmRlcjtcbiIsIi8qKiBVc2VkIGFzIHRoZSBpbnRlcm5hbCBhcmd1bWVudCBwbGFjZWhvbGRlci4gKi9cbnZhciBQTEFDRUhPTERFUiA9ICdfX2xvZGFzaF9wbGFjZWhvbGRlcl9fJztcblxuLyoqXG4gKiBSZXBsYWNlcyBhbGwgYHBsYWNlaG9sZGVyYCBlbGVtZW50cyBpbiBgYXJyYXlgIHdpdGggYW4gaW50ZXJuYWwgcGxhY2Vob2xkZXJcbiAqIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIHRoZWlyIGluZGV4ZXMuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBtb2RpZnkuXG4gKiBAcGFyYW0geyp9IHBsYWNlaG9sZGVyIFRoZSBwbGFjZWhvbGRlciB0byByZXBsYWNlLlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2YgcGxhY2Vob2xkZXIgaW5kZXhlcy5cbiAqL1xuZnVuY3Rpb24gcmVwbGFjZUhvbGRlcnMoYXJyYXksIHBsYWNlaG9sZGVyKSB7XG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoLFxuICAgICAgcmVzSW5kZXggPSAtMSxcbiAgICAgIHJlc3VsdCA9IFtdO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgaWYgKGFycmF5W2luZGV4XSA9PT0gcGxhY2Vob2xkZXIpIHtcbiAgICAgIGFycmF5W2luZGV4XSA9IFBMQUNFSE9MREVSO1xuICAgICAgcmVzdWx0WysrcmVzSW5kZXhdID0gaW5kZXg7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcmVwbGFjZUhvbGRlcnM7XG4iLCJ2YXIgYmFzZVNldERhdGEgPSByZXF1aXJlKCcuL2Jhc2VTZXREYXRhJyksXG4gICAgbm93ID0gcmVxdWlyZSgnLi4vZGF0ZS9ub3cnKTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IHdoZW4gYSBmdW5jdGlvbiBiZWNvbWVzIGhvdC4gKi9cbnZhciBIT1RfQ09VTlQgPSAxNTAsXG4gICAgSE9UX1NQQU4gPSAxNjtcblxuLyoqXG4gKiBTZXRzIG1ldGFkYXRhIGZvciBgZnVuY2AuXG4gKlxuICogKipOb3RlOioqIElmIHRoaXMgZnVuY3Rpb24gYmVjb21lcyBob3QsIGkuZS4gaXMgaW52b2tlZCBhIGxvdCBpbiBhIHNob3J0XG4gKiBwZXJpb2Qgb2YgdGltZSwgaXQgd2lsbCB0cmlwIGl0cyBicmVha2VyIGFuZCB0cmFuc2l0aW9uIHRvIGFuIGlkZW50aXR5IGZ1bmN0aW9uXG4gKiB0byBhdm9pZCBnYXJiYWdlIGNvbGxlY3Rpb24gcGF1c2VzIGluIFY4LiBTZWUgW1Y4IGlzc3VlIDIwNzBdKGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0yMDcwKVxuICogZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZnVuYyBUaGUgZnVuY3Rpb24gdG8gYXNzb2NpYXRlIG1ldGFkYXRhIHdpdGguXG4gKiBAcGFyYW0geyp9IGRhdGEgVGhlIG1ldGFkYXRhLlxuICogQHJldHVybnMge0Z1bmN0aW9ufSBSZXR1cm5zIGBmdW5jYC5cbiAqL1xudmFyIHNldERhdGEgPSAoZnVuY3Rpb24oKSB7XG4gIHZhciBjb3VudCA9IDAsXG4gICAgICBsYXN0Q2FsbGVkID0gMDtcblxuICByZXR1cm4gZnVuY3Rpb24oa2V5LCB2YWx1ZSkge1xuICAgIHZhciBzdGFtcCA9IG5vdygpLFxuICAgICAgICByZW1haW5pbmcgPSBIT1RfU1BBTiAtIChzdGFtcCAtIGxhc3RDYWxsZWQpO1xuXG4gICAgbGFzdENhbGxlZCA9IHN0YW1wO1xuICAgIGlmIChyZW1haW5pbmcgPiAwKSB7XG4gICAgICBpZiAoKytjb3VudCA+PSBIT1RfQ09VTlQpIHtcbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY291bnQgPSAwO1xuICAgIH1cbiAgICByZXR1cm4gYmFzZVNldERhdGEoa2V5LCB2YWx1ZSk7XG4gIH07XG59KCkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHNldERhdGE7XG4iLCJ2YXIgaXNBcmd1bWVudHMgPSByZXF1aXJlKCcuLi9sYW5nL2lzQXJndW1lbnRzJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcnJheScpLFxuICAgIGlzSW5kZXggPSByZXF1aXJlKCcuL2lzSW5kZXgnKSxcbiAgICBpc0xlbmd0aCA9IHJlcXVpcmUoJy4vaXNMZW5ndGgnKSxcbiAgICBpc1N0cmluZyA9IHJlcXVpcmUoJy4uL2xhbmcvaXNTdHJpbmcnKSxcbiAgICBrZXlzSW4gPSByZXF1aXJlKCcuLi9vYmplY3Qva2V5c0luJyk7XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIEEgZmFsbGJhY2sgaW1wbGVtZW50YXRpb24gb2YgYE9iamVjdC5rZXlzYCB3aGljaCBjcmVhdGVzIGFuIGFycmF5IG9mIHRoZVxuICogb3duIGVudW1lcmFibGUgcHJvcGVydHkgbmFtZXMgb2YgYG9iamVjdGAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmplY3QgVGhlIG9iamVjdCB0byBxdWVyeS5cbiAqIEByZXR1cm5zIHtBcnJheX0gUmV0dXJucyB0aGUgYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMuXG4gKi9cbmZ1bmN0aW9uIHNoaW1LZXlzKG9iamVjdCkge1xuICB2YXIgcHJvcHMgPSBrZXlzSW4ob2JqZWN0KSxcbiAgICAgIHByb3BzTGVuZ3RoID0gcHJvcHMubGVuZ3RoLFxuICAgICAgbGVuZ3RoID0gcHJvcHNMZW5ndGggJiYgb2JqZWN0Lmxlbmd0aDtcblxuICB2YXIgYWxsb3dJbmRleGVzID0gISFsZW5ndGggJiYgaXNMZW5ndGgobGVuZ3RoKSAmJlxuICAgIChpc0FycmF5KG9iamVjdCkgfHwgaXNBcmd1bWVudHMob2JqZWN0KSB8fCBpc1N0cmluZyhvYmplY3QpKTtcblxuICB2YXIgaW5kZXggPSAtMSxcbiAgICAgIHJlc3VsdCA9IFtdO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgcHJvcHNMZW5ndGgpIHtcbiAgICB2YXIga2V5ID0gcHJvcHNbaW5kZXhdO1xuICAgIGlmICgoYWxsb3dJbmRleGVzICYmIGlzSW5kZXgoa2V5LCBsZW5ndGgpKSB8fCBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KSkge1xuICAgICAgcmVzdWx0LnB1c2goa2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzaGltS2V5cztcbiIsInZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2xhbmcvaXNPYmplY3QnKSxcbiAgICBpc1N0cmluZyA9IHJlcXVpcmUoJy4uL2xhbmcvaXNTdHJpbmcnKSxcbiAgICBzdXBwb3J0ID0gcmVxdWlyZSgnLi4vc3VwcG9ydCcpO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYW4gb2JqZWN0IGlmIGl0J3Mgbm90IG9uZS5cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gcHJvY2Vzcy5cbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gdG9PYmplY3QodmFsdWUpIHtcbiAgaWYgKHN1cHBvcnQudW5pbmRleGVkQ2hhcnMgJiYgaXNTdHJpbmcodmFsdWUpKSB7XG4gICAgdmFyIGluZGV4ID0gLTEsXG4gICAgICAgIGxlbmd0aCA9IHZhbHVlLmxlbmd0aCxcbiAgICAgICAgcmVzdWx0ID0gT2JqZWN0KHZhbHVlKTtcblxuICAgIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgICByZXN1bHRbaW5kZXhdID0gdmFsdWUuY2hhckF0KGluZGV4KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICByZXR1cm4gaXNPYmplY3QodmFsdWUpID8gdmFsdWUgOiBPYmplY3QodmFsdWUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRvT2JqZWN0O1xuIiwidmFyIGJhc2VUb1N0cmluZyA9IHJlcXVpcmUoJy4vYmFzZVRvU3RyaW5nJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcnJheScpO1xuXG4vKiogVXNlZCB0byBtYXRjaCBwcm9wZXJ0eSBuYW1lcyB3aXRoaW4gcHJvcGVydHkgcGF0aHMuICovXG52YXIgcmVQcm9wTmFtZSA9IC9bXi5bXFxdXSt8XFxbKD86KC0/XFxkKyg/OlxcLlxcZCspPyl8KFtcIiddKSgoPzooPyFcXDIpW15cXG5cXFxcXXxcXFxcLikqPylcXDIpXFxdL2c7XG5cbi8qKiBVc2VkIHRvIG1hdGNoIGJhY2tzbGFzaGVzIGluIHByb3BlcnR5IHBhdGhzLiAqL1xudmFyIHJlRXNjYXBlQ2hhciA9IC9cXFxcKFxcXFwpPy9nO1xuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gcHJvcGVydHkgcGF0aCBhcnJheSBpZiBpdCdzIG5vdCBvbmUuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIHByb2Nlc3MuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIHByb3BlcnR5IHBhdGggYXJyYXkuXG4gKi9cbmZ1bmN0aW9uIHRvUGF0aCh2YWx1ZSkge1xuICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgdmFyIHJlc3VsdCA9IFtdO1xuICBiYXNlVG9TdHJpbmcodmFsdWUpLnJlcGxhY2UocmVQcm9wTmFtZSwgZnVuY3Rpb24obWF0Y2gsIG51bWJlciwgcXVvdGUsIHN0cmluZykge1xuICAgIHJlc3VsdC5wdXNoKHF1b3RlID8gc3RyaW5nLnJlcGxhY2UocmVFc2NhcGVDaGFyLCAnJDEnKSA6IChudW1iZXIgfHwgbWF0Y2gpKTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdG9QYXRoO1xuIiwidmFyIExhenlXcmFwcGVyID0gcmVxdWlyZSgnLi9MYXp5V3JhcHBlcicpLFxuICAgIExvZGFzaFdyYXBwZXIgPSByZXF1aXJlKCcuL0xvZGFzaFdyYXBwZXInKSxcbiAgICBhcnJheUNvcHkgPSByZXF1aXJlKCcuL2FycmF5Q29weScpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBjbG9uZSBvZiBgd3JhcHBlcmAuXG4gKlxuICogQHByaXZhdGVcbiAqIEBwYXJhbSB7T2JqZWN0fSB3cmFwcGVyIFRoZSB3cmFwcGVyIHRvIGNsb25lLlxuICogQHJldHVybnMge09iamVjdH0gUmV0dXJucyB0aGUgY2xvbmVkIHdyYXBwZXIuXG4gKi9cbmZ1bmN0aW9uIHdyYXBwZXJDbG9uZSh3cmFwcGVyKSB7XG4gIHJldHVybiB3cmFwcGVyIGluc3RhbmNlb2YgTGF6eVdyYXBwZXJcbiAgICA/IHdyYXBwZXIuY2xvbmUoKVxuICAgIDogbmV3IExvZGFzaFdyYXBwZXIod3JhcHBlci5fX3dyYXBwZWRfXywgd3JhcHBlci5fX2NoYWluX18sIGFycmF5Q29weSh3cmFwcGVyLl9fYWN0aW9uc19fKSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gd3JhcHBlckNsb25lO1xuIiwidmFyIGJhc2VDbG9uZSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2Jhc2VDbG9uZScpLFxuICAgIGJpbmRDYWxsYmFjayA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2JpbmRDYWxsYmFjaycpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBkZWVwIGNsb25lIG9mIGB2YWx1ZWAuIElmIGBjdXN0b21pemVyYCBpcyBwcm92aWRlZCBpdCBpcyBpbnZva2VkXG4gKiB0byBwcm9kdWNlIHRoZSBjbG9uZWQgdmFsdWVzLiBJZiBgY3VzdG9taXplcmAgcmV0dXJucyBgdW5kZWZpbmVkYCBjbG9uaW5nXG4gKiBpcyBoYW5kbGVkIGJ5IHRoZSBtZXRob2QgaW5zdGVhZC4gVGhlIGBjdXN0b21pemVyYCBpcyBib3VuZCB0byBgdGhpc0FyZ2BcbiAqIGFuZCBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50OyAodmFsdWUgWywgaW5kZXh8a2V5LCBvYmplY3RdKS5cbiAqXG4gKiAqKk5vdGU6KiogVGhpcyBtZXRob2QgaXMgbG9vc2VseSBiYXNlZCBvbiB0aGVcbiAqIFtzdHJ1Y3R1cmVkIGNsb25lIGFsZ29yaXRobV0oaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvaW5mcmFzdHJ1Y3R1cmUuaHRtbCNpbnRlcm5hbC1zdHJ1Y3R1cmVkLWNsb25pbmctYWxnb3JpdGhtKS5cbiAqIFRoZSBlbnVtZXJhYmxlIHByb3BlcnRpZXMgb2YgYGFyZ3VtZW50c2Agb2JqZWN0cyBhbmQgb2JqZWN0cyBjcmVhdGVkIGJ5XG4gKiBjb25zdHJ1Y3RvcnMgb3RoZXIgdGhhbiBgT2JqZWN0YCBhcmUgY2xvbmVkIHRvIHBsYWluIGBPYmplY3RgIG9iamVjdHMuIEFuXG4gKiBlbXB0eSBvYmplY3QgaXMgcmV0dXJuZWQgZm9yIHVuY2xvbmVhYmxlIHZhbHVlcyBzdWNoIGFzIGZ1bmN0aW9ucywgRE9NIG5vZGVzLFxuICogTWFwcywgU2V0cywgYW5kIFdlYWtNYXBzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gZGVlcCBjbG9uZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtjdXN0b21pemVyXSBUaGUgZnVuY3Rpb24gdG8gY3VzdG9taXplIGNsb25pbmcgdmFsdWVzLlxuICogQHBhcmFtIHsqfSBbdGhpc0FyZ10gVGhlIGB0aGlzYCBiaW5kaW5nIG9mIGBjdXN0b21pemVyYC5cbiAqIEByZXR1cm5zIHsqfSBSZXR1cm5zIHRoZSBkZWVwIGNsb25lZCB2YWx1ZS5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIHVzZXJzID0gW1xuICogICB7ICd1c2VyJzogJ2Jhcm5leScgfSxcbiAqICAgeyAndXNlcic6ICdmcmVkJyB9XG4gKiBdO1xuICpcbiAqIHZhciBkZWVwID0gXy5jbG9uZURlZXAodXNlcnMpO1xuICogZGVlcFswXSA9PT0gdXNlcnNbMF07XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIC8vIHVzaW5nIGEgY3VzdG9taXplciBjYWxsYmFja1xuICogdmFyIGVsID0gXy5jbG9uZURlZXAoZG9jdW1lbnQuYm9keSwgZnVuY3Rpb24odmFsdWUpIHtcbiAqICAgaWYgKF8uaXNFbGVtZW50KHZhbHVlKSkge1xuICogICAgIHJldHVybiB2YWx1ZS5jbG9uZU5vZGUodHJ1ZSk7XG4gKiAgIH1cbiAqIH0pO1xuICpcbiAqIGVsID09PSBkb2N1bWVudC5ib2R5XG4gKiAvLyA9PiBmYWxzZVxuICogZWwubm9kZU5hbWVcbiAqIC8vID0+IEJPRFlcbiAqIGVsLmNoaWxkTm9kZXMubGVuZ3RoO1xuICogLy8gPT4gMjBcbiAqL1xuZnVuY3Rpb24gY2xvbmVEZWVwKHZhbHVlLCBjdXN0b21pemVyLCB0aGlzQXJnKSB7XG4gIHJldHVybiB0eXBlb2YgY3VzdG9taXplciA9PSAnZnVuY3Rpb24nXG4gICAgPyBiYXNlQ2xvbmUodmFsdWUsIHRydWUsIGJpbmRDYWxsYmFjayhjdXN0b21pemVyLCB0aGlzQXJnLCAxKSlcbiAgICA6IGJhc2VDbG9uZSh2YWx1ZSwgdHJ1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gY2xvbmVEZWVwO1xuIiwidmFyIGlzQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNBcnJheUxpa2UnKSxcbiAgICBpc09iamVjdExpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc09iamVjdExpa2UnKTtcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgcHJvcGVydHlJc0VudW1lcmFibGUgPSBvYmplY3RQcm90by5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcblxuLyoqXG4gKiBDaGVja3MgaWYgYHZhbHVlYCBpcyBjbGFzc2lmaWVkIGFzIGFuIGBhcmd1bWVudHNgIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgY29ycmVjdGx5IGNsYXNzaWZpZWQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FyZ3VtZW50cyhmdW5jdGlvbigpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzQXJndW1lbnRzKFsxLCAyLCAzXSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc0FyZ3VtZW50cyh2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBpc0FycmF5TGlrZSh2YWx1ZSkgJiZcbiAgICBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCAnY2FsbGVlJykgJiYgIXByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodmFsdWUsICdjYWxsZWUnKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpc0FyZ3VtZW50cztcbiIsInZhciBnZXROYXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9nZXROYXRpdmUnKSxcbiAgICBpc0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzTGVuZ3RoJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNPYmplY3RMaWtlJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhcnJheVRhZyA9ICdbb2JqZWN0IEFycmF5XSc7XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzYuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZUlzQXJyYXkgPSBnZXROYXRpdmUoQXJyYXksICdpc0FycmF5Jyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhbiBgQXJyYXlgIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgY29ycmVjdGx5IGNsYXNzaWZpZWQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0FycmF5KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0FycmF5KGZ1bmN0aW9uKCkgeyByZXR1cm4gYXJndW1lbnRzOyB9KCkpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xudmFyIGlzQXJyYXkgPSBuYXRpdmVJc0FycmF5IHx8IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIGlzTGVuZ3RoKHZhbHVlLmxlbmd0aCkgJiYgb2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT0gYXJyYXlUYWc7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGlzQXJyYXk7XG4iLCJ2YXIgaXNBcmd1bWVudHMgPSByZXF1aXJlKCcuL2lzQXJndW1lbnRzJyksXG4gICAgaXNBcnJheSA9IHJlcXVpcmUoJy4vaXNBcnJheScpLFxuICAgIGlzQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNBcnJheUxpa2UnKSxcbiAgICBpc0Z1bmN0aW9uID0gcmVxdWlyZSgnLi9pc0Z1bmN0aW9uJyksXG4gICAgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNPYmplY3RMaWtlJyksXG4gICAgaXNTdHJpbmcgPSByZXF1aXJlKCcuL2lzU3RyaW5nJyksXG4gICAga2V5cyA9IHJlcXVpcmUoJy4uL29iamVjdC9rZXlzJyk7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgZW1wdHkuIEEgdmFsdWUgaXMgY29uc2lkZXJlZCBlbXB0eSB1bmxlc3MgaXQgaXMgYW5cbiAqIGBhcmd1bWVudHNgIG9iamVjdCwgYXJyYXksIHN0cmluZywgb3IgalF1ZXJ5LWxpa2UgY29sbGVjdGlvbiB3aXRoIGEgbGVuZ3RoXG4gKiBncmVhdGVyIHRoYW4gYDBgIG9yIGFuIG9iamVjdCB3aXRoIG93biBlbnVtZXJhYmxlIHByb3BlcnRpZXMuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdHxzdHJpbmd9IHZhbHVlIFRoZSB2YWx1ZSB0byBpbnNwZWN0LlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgZW1wdHksIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc0VtcHR5KG51bGwpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNFbXB0eSh0cnVlKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzRW1wdHkoMSk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0VtcHR5KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNFbXB0eSh7ICdhJzogMSB9KTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAoaXNBcnJheUxpa2UodmFsdWUpICYmIChpc0FycmF5KHZhbHVlKSB8fCBpc1N0cmluZyh2YWx1ZSkgfHwgaXNBcmd1bWVudHModmFsdWUpIHx8XG4gICAgICAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBpc0Z1bmN0aW9uKHZhbHVlLnNwbGljZSkpKSkge1xuICAgIHJldHVybiAhdmFsdWUubGVuZ3RoO1xuICB9XG4gIHJldHVybiAha2V5cyh2YWx1ZSkubGVuZ3RoO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzRW1wdHk7XG4iLCJ2YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuL2lzT2JqZWN0Jyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBmdW5jVGFnID0gJ1tvYmplY3QgRnVuY3Rpb25dJztcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZSBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG9ialRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBGdW5jdGlvbmAgb2JqZWN0LlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICogQHBhcmFtIHsqfSB2YWx1ZSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gUmV0dXJucyBgdHJ1ZWAgaWYgYHZhbHVlYCBpcyBjb3JyZWN0bHkgY2xhc3NpZmllZCwgZWxzZSBgZmFsc2VgLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLmlzRnVuY3Rpb24oXyk7XG4gKiAvLyA9PiB0cnVlXG4gKlxuICogXy5pc0Z1bmN0aW9uKC9hYmMvKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWUpIHtcbiAgLy8gVGhlIHVzZSBvZiBgT2JqZWN0I3RvU3RyaW5nYCBhdm9pZHMgaXNzdWVzIHdpdGggdGhlIGB0eXBlb2ZgIG9wZXJhdG9yXG4gIC8vIGluIG9sZGVyIHZlcnNpb25zIG9mIENocm9tZSBhbmQgU2FmYXJpIHdoaWNoIHJldHVybiAnZnVuY3Rpb24nIGZvciByZWdleGVzXG4gIC8vIGFuZCBTYWZhcmkgOCBlcXVpdmFsZW50cyB3aGljaCByZXR1cm4gJ29iamVjdCcgZm9yIHR5cGVkIGFycmF5IGNvbnN0cnVjdG9ycy5cbiAgcmV0dXJuIGlzT2JqZWN0KHZhbHVlKSAmJiBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBmdW5jVGFnO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzRnVuY3Rpb247XG4iLCJ2YXIgaXNGdW5jdGlvbiA9IHJlcXVpcmUoJy4vaXNGdW5jdGlvbicpLFxuICAgIGlzSG9zdE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzSG9zdE9iamVjdCcpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogVXNlZCB0byBkZXRlY3QgaG9zdCBjb25zdHJ1Y3RvcnMgKFNhZmFyaSA+IDUpLiAqL1xudmFyIHJlSXNIb3N0Q3RvciA9IC9eXFxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXFxdJC87XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byByZXNvbHZlIHRoZSBkZWNvbXBpbGVkIHNvdXJjZSBvZiBmdW5jdGlvbnMuICovXG52YXIgZm5Ub1N0cmluZyA9IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZztcblxuLyoqIFVzZWQgdG8gY2hlY2sgb2JqZWN0cyBmb3Igb3duIHByb3BlcnRpZXMuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcblxuLyoqIFVzZWQgdG8gZGV0ZWN0IGlmIGEgbWV0aG9kIGlzIG5hdGl2ZS4gKi9cbnZhciByZUlzTmF0aXZlID0gUmVnRXhwKCdeJyArXG4gIGZuVG9TdHJpbmcuY2FsbChoYXNPd25Qcm9wZXJ0eSkucmVwbGFjZSgvW1xcXFxeJC4qKz8oKVtcXF17fXxdL2csICdcXFxcJCYnKVxuICAucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXFxcXCgpfCBmb3IgLis/KD89XFxcXFxcXSkvZywgJyQxLio/JykgKyAnJCdcbik7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBuYXRpdmUgZnVuY3Rpb24uXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGEgbmF0aXZlIGZ1bmN0aW9uLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNOYXRpdmUoQXJyYXkucHJvdG90eXBlLnB1c2gpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNOYXRpdmUoXyk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc05hdGl2ZSh2YWx1ZSkge1xuICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoaXNGdW5jdGlvbih2YWx1ZSkpIHtcbiAgICByZXR1cm4gcmVJc05hdGl2ZS50ZXN0KGZuVG9TdHJpbmcuY2FsbCh2YWx1ZSkpO1xuICB9XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpICYmIChpc0hvc3RPYmplY3QodmFsdWUpID8gcmVJc05hdGl2ZSA6IHJlSXNIb3N0Q3RvcikudGVzdCh2YWx1ZSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNOYXRpdmU7XG4iLCIvKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIHRoZSBbbGFuZ3VhZ2UgdHlwZV0oaHR0cHM6Ly9lczUuZ2l0aHViLmlvLyN4OCkgb2YgYE9iamVjdGAuXG4gKiAoZS5nLiBhcnJheXMsIGZ1bmN0aW9ucywgb2JqZWN0cywgcmVnZXhlcywgYG5ldyBOdW1iZXIoMClgLCBhbmQgYG5ldyBTdHJpbmcoJycpYClcbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYW4gb2JqZWN0LCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNPYmplY3Qoe30pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNPYmplY3QoWzEsIDIsIDNdKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzT2JqZWN0KDEpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgLy8gQXZvaWQgYSBWOCBKSVQgYnVnIGluIENocm9tZSAxOS0yMC5cbiAgLy8gU2VlIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0yMjkxIGZvciBtb3JlIGRldGFpbHMuXG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICByZXR1cm4gISF2YWx1ZSAmJiAodHlwZSA9PSAnb2JqZWN0JyB8fCB0eXBlID09ICdmdW5jdGlvbicpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzT2JqZWN0O1xuIiwidmFyIGJhc2VGb3JJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2Jhc2VGb3JJbicpLFxuICAgIGlzQXJndW1lbnRzID0gcmVxdWlyZSgnLi9pc0FyZ3VtZW50cycpLFxuICAgIGlzSG9zdE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzSG9zdE9iamVjdCcpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzT2JqZWN0TGlrZScpLFxuICAgIHN1cHBvcnQgPSByZXF1aXJlKCcuLi9zdXBwb3J0Jyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJztcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKiBVc2VkIHRvIGNoZWNrIG9iamVjdHMgZm9yIG93biBwcm9wZXJ0aWVzLiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gb2JqZWN0UHJvdG8uaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZSBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG9ialRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIHRoYXQgaXMsIGFuIG9iamVjdCBjcmVhdGVkIGJ5IHRoZVxuICogYE9iamVjdGAgY29uc3RydWN0b3Igb3Igb25lIHdpdGggYSBgW1tQcm90b3R5cGVdXWAgb2YgYG51bGxgLlxuICpcbiAqICoqTm90ZToqKiBUaGlzIG1ldGhvZCBhc3N1bWVzIG9iamVjdHMgY3JlYXRlZCBieSB0aGUgYE9iamVjdGAgY29uc3RydWN0b3JcbiAqIGhhdmUgbm8gaW5oZXJpdGVkIGVudW1lcmFibGUgcHJvcGVydGllcy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgYSBwbGFpbiBvYmplY3QsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gRm9vKCkge1xuICogICB0aGlzLmEgPSAxO1xuICogfVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChuZXcgRm9vKTtcbiAqIC8vID0+IGZhbHNlXG4gKlxuICogXy5pc1BsYWluT2JqZWN0KFsxLCAyLCAzXSk7XG4gKiAvLyA9PiBmYWxzZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdCh7ICd4JzogMCwgJ3knOiAwIH0pO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNQbGFpbk9iamVjdChPYmplY3QuY3JlYXRlKG51bGwpKTtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZSkge1xuICB2YXIgQ3RvcjtcblxuICAvLyBFeGl0IGVhcmx5IGZvciBub24gYE9iamVjdGAgb2JqZWN0cy5cbiAgaWYgKCEoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBvYmpUb1N0cmluZy5jYWxsKHZhbHVlKSA9PSBvYmplY3RUYWcgJiYgIWlzSG9zdE9iamVjdCh2YWx1ZSkgJiYgIWlzQXJndW1lbnRzKHZhbHVlKSkgfHxcbiAgICAgICghaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgJ2NvbnN0cnVjdG9yJykgJiYgKEN0b3IgPSB2YWx1ZS5jb25zdHJ1Y3RvciwgdHlwZW9mIEN0b3IgPT0gJ2Z1bmN0aW9uJyAmJiAhKEN0b3IgaW5zdGFuY2VvZiBDdG9yKSkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIElFIDwgOSBpdGVyYXRlcyBpbmhlcml0ZWQgcHJvcGVydGllcyBiZWZvcmUgb3duIHByb3BlcnRpZXMuIElmIHRoZSBmaXJzdFxuICAvLyBpdGVyYXRlZCBwcm9wZXJ0eSBpcyBhbiBvYmplY3QncyBvd24gcHJvcGVydHkgdGhlbiB0aGVyZSBhcmUgbm8gaW5oZXJpdGVkXG4gIC8vIGVudW1lcmFibGUgcHJvcGVydGllcy5cbiAgdmFyIHJlc3VsdDtcbiAgaWYgKHN1cHBvcnQub3duTGFzdCkge1xuICAgIGJhc2VGb3JJbih2YWx1ZSwgZnVuY3Rpb24oc3ViVmFsdWUsIGtleSwgb2JqZWN0KSB7XG4gICAgICByZXN1bHQgPSBoYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwga2V5KTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0ICE9PSBmYWxzZTtcbiAgfVxuICAvLyBJbiBtb3N0IGVudmlyb25tZW50cyBhbiBvYmplY3QncyBvd24gcHJvcGVydGllcyBhcmUgaXRlcmF0ZWQgYmVmb3JlXG4gIC8vIGl0cyBpbmhlcml0ZWQgcHJvcGVydGllcy4gSWYgdGhlIGxhc3QgaXRlcmF0ZWQgcHJvcGVydHkgaXMgYW4gb2JqZWN0J3NcbiAgLy8gb3duIHByb3BlcnR5IHRoZW4gdGhlcmUgYXJlIG5vIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnRpZXMuXG4gIGJhc2VGb3JJbih2YWx1ZSwgZnVuY3Rpb24oc3ViVmFsdWUsIGtleSkge1xuICAgIHJlc3VsdCA9IGtleTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQgPT09IHVuZGVmaW5lZCB8fCBoYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbHVlLCByZXN1bHQpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzUGxhaW5PYmplY3Q7XG4iLCJ2YXIgaXNPYmplY3RMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvaXNPYmplY3RMaWtlJyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBzdHJpbmdUYWcgPSAnW29iamVjdCBTdHJpbmddJztcblxuLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5cbi8qKlxuICogVXNlZCB0byByZXNvbHZlIHRoZSBbYHRvU3RyaW5nVGFnYF0oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtb2JqZWN0LnByb3RvdHlwZS50b3N0cmluZylcbiAqIG9mIHZhbHVlcy5cbiAqL1xudmFyIG9ialRvU3RyaW5nID0gb2JqZWN0UHJvdG8udG9TdHJpbmc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgY2xhc3NpZmllZCBhcyBhIGBTdHJpbmdgIHByaW1pdGl2ZSBvciBvYmplY3QuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGNvcnJlY3RseSBjbGFzc2lmaWVkLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNTdHJpbmcoJ2FiYycpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNTdHJpbmcoMSk7XG4gKiAvLyA9PiBmYWxzZVxuICovXG5mdW5jdGlvbiBpc1N0cmluZyh2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09ICdzdHJpbmcnIHx8IChpc09iamVjdExpa2UodmFsdWUpICYmIG9ialRvU3RyaW5nLmNhbGwodmFsdWUpID09IHN0cmluZ1RhZyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNTdHJpbmc7XG4iLCJ2YXIgaXNMZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc0xlbmd0aCcpLFxuICAgIGlzT2JqZWN0TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzT2JqZWN0TGlrZScpO1xuXG4vKiogYE9iamVjdCN0b1N0cmluZ2AgcmVzdWx0IHJlZmVyZW5jZXMuICovXG52YXIgYXJnc1RhZyA9ICdbb2JqZWN0IEFyZ3VtZW50c10nLFxuICAgIGFycmF5VGFnID0gJ1tvYmplY3QgQXJyYXldJyxcbiAgICBib29sVGFnID0gJ1tvYmplY3QgQm9vbGVhbl0nLFxuICAgIGRhdGVUYWcgPSAnW29iamVjdCBEYXRlXScsXG4gICAgZXJyb3JUYWcgPSAnW29iamVjdCBFcnJvcl0nLFxuICAgIGZ1bmNUYWcgPSAnW29iamVjdCBGdW5jdGlvbl0nLFxuICAgIG1hcFRhZyA9ICdbb2JqZWN0IE1hcF0nLFxuICAgIG51bWJlclRhZyA9ICdbb2JqZWN0IE51bWJlcl0nLFxuICAgIG9iamVjdFRhZyA9ICdbb2JqZWN0IE9iamVjdF0nLFxuICAgIHJlZ2V4cFRhZyA9ICdbb2JqZWN0IFJlZ0V4cF0nLFxuICAgIHNldFRhZyA9ICdbb2JqZWN0IFNldF0nLFxuICAgIHN0cmluZ1RhZyA9ICdbb2JqZWN0IFN0cmluZ10nLFxuICAgIHdlYWtNYXBUYWcgPSAnW29iamVjdCBXZWFrTWFwXSc7XG5cbnZhciBhcnJheUJ1ZmZlclRhZyA9ICdbb2JqZWN0IEFycmF5QnVmZmVyXScsXG4gICAgZmxvYXQzMlRhZyA9ICdbb2JqZWN0IEZsb2F0MzJBcnJheV0nLFxuICAgIGZsb2F0NjRUYWcgPSAnW29iamVjdCBGbG9hdDY0QXJyYXldJyxcbiAgICBpbnQ4VGFnID0gJ1tvYmplY3QgSW50OEFycmF5XScsXG4gICAgaW50MTZUYWcgPSAnW29iamVjdCBJbnQxNkFycmF5XScsXG4gICAgaW50MzJUYWcgPSAnW29iamVjdCBJbnQzMkFycmF5XScsXG4gICAgdWludDhUYWcgPSAnW29iamVjdCBVaW50OEFycmF5XScsXG4gICAgdWludDhDbGFtcGVkVGFnID0gJ1tvYmplY3QgVWludDhDbGFtcGVkQXJyYXldJyxcbiAgICB1aW50MTZUYWcgPSAnW29iamVjdCBVaW50MTZBcnJheV0nLFxuICAgIHVpbnQzMlRhZyA9ICdbb2JqZWN0IFVpbnQzMkFycmF5XSc7XG5cbi8qKiBVc2VkIHRvIGlkZW50aWZ5IGB0b1N0cmluZ1RhZ2AgdmFsdWVzIG9mIHR5cGVkIGFycmF5cy4gKi9cbnZhciB0eXBlZEFycmF5VGFncyA9IHt9O1xudHlwZWRBcnJheVRhZ3NbZmxvYXQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1tmbG9hdDY0VGFnXSA9XG50eXBlZEFycmF5VGFnc1tpbnQ4VGFnXSA9IHR5cGVkQXJyYXlUYWdzW2ludDE2VGFnXSA9XG50eXBlZEFycmF5VGFnc1tpbnQzMlRhZ10gPSB0eXBlZEFycmF5VGFnc1t1aW50OFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbdWludDhDbGFtcGVkVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3VpbnQxNlRhZ10gPVxudHlwZWRBcnJheVRhZ3NbdWludDMyVGFnXSA9IHRydWU7XG50eXBlZEFycmF5VGFnc1thcmdzVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2FycmF5VGFnXSA9XG50eXBlZEFycmF5VGFnc1thcnJheUJ1ZmZlclRhZ10gPSB0eXBlZEFycmF5VGFnc1tib29sVGFnXSA9XG50eXBlZEFycmF5VGFnc1tkYXRlVGFnXSA9IHR5cGVkQXJyYXlUYWdzW2Vycm9yVGFnXSA9XG50eXBlZEFycmF5VGFnc1tmdW5jVGFnXSA9IHR5cGVkQXJyYXlUYWdzW21hcFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbbnVtYmVyVGFnXSA9IHR5cGVkQXJyYXlUYWdzW29iamVjdFRhZ10gPVxudHlwZWRBcnJheVRhZ3NbcmVnZXhwVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3NldFRhZ10gPVxudHlwZWRBcnJheVRhZ3Nbc3RyaW5nVGFnXSA9IHR5cGVkQXJyYXlUYWdzW3dlYWtNYXBUYWddID0gZmFsc2U7XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzYuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKipcbiAqIENoZWNrcyBpZiBgdmFsdWVgIGlzIGNsYXNzaWZpZWQgYXMgYSB0eXBlZCBhcnJheS5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IExhbmdcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgYHRydWVgIGlmIGB2YWx1ZWAgaXMgY29ycmVjdGx5IGNsYXNzaWZpZWQsIGVsc2UgYGZhbHNlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogXy5pc1R5cGVkQXJyYXkobmV3IFVpbnQ4QXJyYXkpO1xuICogLy8gPT4gdHJ1ZVxuICpcbiAqIF8uaXNUeXBlZEFycmF5KFtdKTtcbiAqIC8vID0+IGZhbHNlXG4gKi9cbmZ1bmN0aW9uIGlzVHlwZWRBcnJheSh2YWx1ZSkge1xuICByZXR1cm4gaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBpc0xlbmd0aCh2YWx1ZS5sZW5ndGgpICYmICEhdHlwZWRBcnJheVRhZ3Nbb2JqVG9TdHJpbmcuY2FsbCh2YWx1ZSldO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlzVHlwZWRBcnJheTtcbiIsIi8qKlxuICogQ2hlY2tzIGlmIGB2YWx1ZWAgaXMgYHVuZGVmaW5lZGAuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEBjYXRlZ29yeSBMYW5nXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGB0cnVlYCBpZiBgdmFsdWVgIGlzIGB1bmRlZmluZWRgLCBlbHNlIGBmYWxzZWAuXG4gKiBAZXhhbXBsZVxuICpcbiAqIF8uaXNVbmRlZmluZWQodm9pZCAwKTtcbiAqIC8vID0+IHRydWVcbiAqXG4gKiBfLmlzVW5kZWZpbmVkKG51bGwpO1xuICogLy8gPT4gZmFsc2VcbiAqL1xuZnVuY3Rpb24gaXNVbmRlZmluZWQodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaXNVbmRlZmluZWQ7XG4iLCJ2YXIgZ2V0TmF0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvZ2V0TmF0aXZlJyksXG4gICAgaXNBcnJheUxpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc0FycmF5TGlrZScpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vbGFuZy9pc09iamVjdCcpLFxuICAgIHNoaW1LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvc2hpbUtleXMnKSxcbiAgICBzdXBwb3J0ID0gcmVxdWlyZSgnLi4vc3VwcG9ydCcpO1xuXG4vKiBOYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMgZm9yIHRob3NlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBvdGhlciBgbG9kYXNoYCBtZXRob2RzLiAqL1xudmFyIG5hdGl2ZUtleXMgPSBnZXROYXRpdmUoT2JqZWN0LCAna2V5cycpO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gYXJyYXkgb2YgdGhlIG93biBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICpcbiAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLiBTZWUgdGhlXG4gKiBbRVMgc3BlY10oaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtb2JqZWN0LmtleXMpXG4gKiBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXMobmV3IEZvbyk7XG4gKiAvLyA9PiBbJ2EnLCAnYiddIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKlxuICogXy5rZXlzKCdoaScpO1xuICogLy8gPT4gWycwJywgJzEnXVxuICovXG52YXIga2V5cyA9ICFuYXRpdmVLZXlzID8gc2hpbUtleXMgOiBmdW5jdGlvbihvYmplY3QpIHtcbiAgdmFyIEN0b3IgPSBvYmplY3QgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IG9iamVjdC5jb25zdHJ1Y3RvcjtcbiAgaWYgKCh0eXBlb2YgQ3RvciA9PSAnZnVuY3Rpb24nICYmIEN0b3IucHJvdG90eXBlID09PSBvYmplY3QpIHx8XG4gICAgICAodHlwZW9mIG9iamVjdCA9PSAnZnVuY3Rpb24nID8gc3VwcG9ydC5lbnVtUHJvdG90eXBlcyA6IGlzQXJyYXlMaWtlKG9iamVjdCkpKSB7XG4gICAgcmV0dXJuIHNoaW1LZXlzKG9iamVjdCk7XG4gIH1cbiAgcmV0dXJuIGlzT2JqZWN0KG9iamVjdCkgPyBuYXRpdmVLZXlzKG9iamVjdCkgOiBbXTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ga2V5cztcbiIsInZhciBhcnJheUVhY2ggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9hcnJheUVhY2gnKSxcbiAgICBpc0FyZ3VtZW50cyA9IHJlcXVpcmUoJy4uL2xhbmcvaXNBcmd1bWVudHMnKSxcbiAgICBpc0FycmF5ID0gcmVxdWlyZSgnLi4vbGFuZy9pc0FycmF5JyksXG4gICAgaXNGdW5jdGlvbiA9IHJlcXVpcmUoJy4uL2xhbmcvaXNGdW5jdGlvbicpLFxuICAgIGlzSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc0luZGV4JyksXG4gICAgaXNMZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbC9pc0xlbmd0aCcpLFxuICAgIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vbGFuZy9pc09iamVjdCcpLFxuICAgIGlzU3RyaW5nID0gcmVxdWlyZSgnLi4vbGFuZy9pc1N0cmluZycpLFxuICAgIHN1cHBvcnQgPSByZXF1aXJlKCcuLi9zdXBwb3J0Jyk7XG5cbi8qKiBgT2JqZWN0I3RvU3RyaW5nYCByZXN1bHQgcmVmZXJlbmNlcy4gKi9cbnZhciBhcnJheVRhZyA9ICdbb2JqZWN0IEFycmF5XScsXG4gICAgYm9vbFRhZyA9ICdbb2JqZWN0IEJvb2xlYW5dJyxcbiAgICBkYXRlVGFnID0gJ1tvYmplY3QgRGF0ZV0nLFxuICAgIGVycm9yVGFnID0gJ1tvYmplY3QgRXJyb3JdJyxcbiAgICBmdW5jVGFnID0gJ1tvYmplY3QgRnVuY3Rpb25dJyxcbiAgICBudW1iZXJUYWcgPSAnW29iamVjdCBOdW1iZXJdJyxcbiAgICBvYmplY3RUYWcgPSAnW29iamVjdCBPYmplY3RdJyxcbiAgICByZWdleHBUYWcgPSAnW29iamVjdCBSZWdFeHBdJyxcbiAgICBzdHJpbmdUYWcgPSAnW29iamVjdCBTdHJpbmddJztcblxuLyoqIFVzZWQgdG8gZml4IHRoZSBKU2NyaXB0IGBbW0RvbnRFbnVtXV1gIGJ1Zy4gKi9cbnZhciBzaGFkb3dQcm9wcyA9IFtcbiAgJ2NvbnN0cnVjdG9yJywgJ2hhc093blByb3BlcnR5JywgJ2lzUHJvdG90eXBlT2YnLCAncHJvcGVydHlJc0VudW1lcmFibGUnLFxuICAndG9Mb2NhbGVTdHJpbmcnLCAndG9TdHJpbmcnLCAndmFsdWVPZidcbl07XG5cbi8qKiBVc2VkIGZvciBuYXRpdmUgbWV0aG9kIHJlZmVyZW5jZXMuICovXG52YXIgZXJyb3JQcm90byA9IEVycm9yLnByb3RvdHlwZSxcbiAgICBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGUsXG4gICAgc3RyaW5nUHJvdG8gPSBTdHJpbmcucHJvdG90eXBlO1xuXG4vKiogVXNlZCB0byBjaGVjayBvYmplY3RzIGZvciBvd24gcHJvcGVydGllcy4gKi9cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IG9iamVjdFByb3RvLmhhc093blByb3BlcnR5O1xuXG4vKipcbiAqIFVzZWQgdG8gcmVzb2x2ZSB0aGUgW2B0b1N0cmluZ1RhZ2BdKGh0dHA6Ly9lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYyLzYuMC8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmcpXG4gKiBvZiB2YWx1ZXMuXG4gKi9cbnZhciBvYmpUb1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuXG4vKiogVXNlZCB0byBhdm9pZCBpdGVyYXRpbmcgb3ZlciBub24tZW51bWVyYWJsZSBwcm9wZXJ0aWVzIGluIElFIDwgOS4gKi9cbnZhciBub25FbnVtUHJvcHMgPSB7fTtcbm5vbkVudW1Qcm9wc1thcnJheVRhZ10gPSBub25FbnVtUHJvcHNbZGF0ZVRhZ10gPSBub25FbnVtUHJvcHNbbnVtYmVyVGFnXSA9IHsgJ2NvbnN0cnVjdG9yJzogdHJ1ZSwgJ3RvTG9jYWxlU3RyaW5nJzogdHJ1ZSwgJ3RvU3RyaW5nJzogdHJ1ZSwgJ3ZhbHVlT2YnOiB0cnVlIH07XG5ub25FbnVtUHJvcHNbYm9vbFRhZ10gPSBub25FbnVtUHJvcHNbc3RyaW5nVGFnXSA9IHsgJ2NvbnN0cnVjdG9yJzogdHJ1ZSwgJ3RvU3RyaW5nJzogdHJ1ZSwgJ3ZhbHVlT2YnOiB0cnVlIH07XG5ub25FbnVtUHJvcHNbZXJyb3JUYWddID0gbm9uRW51bVByb3BzW2Z1bmNUYWddID0gbm9uRW51bVByb3BzW3JlZ2V4cFRhZ10gPSB7ICdjb25zdHJ1Y3Rvcic6IHRydWUsICd0b1N0cmluZyc6IHRydWUgfTtcbm5vbkVudW1Qcm9wc1tvYmplY3RUYWddID0geyAnY29uc3RydWN0b3InOiB0cnVlIH07XG5cbmFycmF5RWFjaChzaGFkb3dQcm9wcywgZnVuY3Rpb24oa2V5KSB7XG4gIGZvciAodmFyIHRhZyBpbiBub25FbnVtUHJvcHMpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChub25FbnVtUHJvcHMsIHRhZykpIHtcbiAgICAgIHZhciBwcm9wcyA9IG5vbkVudW1Qcm9wc1t0YWddO1xuICAgICAgcHJvcHNba2V5XSA9IGhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIGtleSk7XG4gICAgfVxuICB9XG59KTtcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGFycmF5IG9mIHRoZSBvd24gYW5kIGluaGVyaXRlZCBlbnVtZXJhYmxlIHByb3BlcnR5IG5hbWVzIG9mIGBvYmplY3RgLlxuICpcbiAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IG5hbWVzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBmdW5jdGlvbiBGb28oKSB7XG4gKiAgIHRoaXMuYSA9IDE7XG4gKiAgIHRoaXMuYiA9IDI7XG4gKiB9XG4gKlxuICogRm9vLnByb3RvdHlwZS5jID0gMztcbiAqXG4gKiBfLmtleXNJbihuZXcgRm9vKTtcbiAqIC8vID0+IFsnYScsICdiJywgJ2MnXSAoaXRlcmF0aW9uIG9yZGVyIGlzIG5vdCBndWFyYW50ZWVkKVxuICovXG5mdW5jdGlvbiBrZXlzSW4ob2JqZWN0KSB7XG4gIGlmIChvYmplY3QgPT0gbnVsbCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBpZiAoIWlzT2JqZWN0KG9iamVjdCkpIHtcbiAgICBvYmplY3QgPSBPYmplY3Qob2JqZWN0KTtcbiAgfVxuICB2YXIgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDtcblxuICBsZW5ndGggPSAobGVuZ3RoICYmIGlzTGVuZ3RoKGxlbmd0aCkgJiZcbiAgICAoaXNBcnJheShvYmplY3QpIHx8IGlzQXJndW1lbnRzKG9iamVjdCkgfHwgaXNTdHJpbmcob2JqZWN0KSkgJiYgbGVuZ3RoKSB8fCAwO1xuXG4gIHZhciBDdG9yID0gb2JqZWN0LmNvbnN0cnVjdG9yLFxuICAgICAgaW5kZXggPSAtMSxcbiAgICAgIHByb3RvID0gKGlzRnVuY3Rpb24oQ3RvcikgJiYgQ3Rvci5wcm90b3R5cGUpIHx8IG9iamVjdFByb3RvLFxuICAgICAgaXNQcm90byA9IHByb3RvID09PSBvYmplY3QsXG4gICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpLFxuICAgICAgc2tpcEluZGV4ZXMgPSBsZW5ndGggPiAwLFxuICAgICAgc2tpcEVycm9yUHJvcHMgPSBzdXBwb3J0LmVudW1FcnJvclByb3BzICYmIChvYmplY3QgPT09IGVycm9yUHJvdG8gfHwgb2JqZWN0IGluc3RhbmNlb2YgRXJyb3IpLFxuICAgICAgc2tpcFByb3RvID0gc3VwcG9ydC5lbnVtUHJvdG90eXBlcyAmJiBpc0Z1bmN0aW9uKG9iamVjdCk7XG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICByZXN1bHRbaW5kZXhdID0gKGluZGV4ICsgJycpO1xuICB9XG4gIC8vIGxvZGFzaCBza2lwcyB0aGUgYGNvbnN0cnVjdG9yYCBwcm9wZXJ0eSB3aGVuIGl0IGluZmVycyBpdCBpcyBpdGVyYXRpbmdcbiAgLy8gb3ZlciBhIGBwcm90b3R5cGVgIG9iamVjdCBiZWNhdXNlIElFIDwgOSBjYW4ndCBzZXQgdGhlIGBbW0VudW1lcmFibGVdXWBcbiAgLy8gYXR0cmlidXRlIG9mIGFuIGV4aXN0aW5nIHByb3BlcnR5IGFuZCB0aGUgYGNvbnN0cnVjdG9yYCBwcm9wZXJ0eSBvZiBhXG4gIC8vIHByb3RvdHlwZSBkZWZhdWx0cyB0byBub24tZW51bWVyYWJsZS5cbiAgZm9yICh2YXIga2V5IGluIG9iamVjdCkge1xuICAgIGlmICghKHNraXBQcm90byAmJiBrZXkgPT0gJ3Byb3RvdHlwZScpICYmXG4gICAgICAgICEoc2tpcEVycm9yUHJvcHMgJiYgKGtleSA9PSAnbWVzc2FnZScgfHwga2V5ID09ICduYW1lJykpICYmXG4gICAgICAgICEoc2tpcEluZGV4ZXMgJiYgaXNJbmRleChrZXksIGxlbmd0aCkpICYmXG4gICAgICAgICEoa2V5ID09ICdjb25zdHJ1Y3RvcicgJiYgKGlzUHJvdG8gfHwgIWhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpKSkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgfVxuICB9XG4gIGlmIChzdXBwb3J0Lm5vbkVudW1TaGFkb3dzICYmIG9iamVjdCAhPT0gb2JqZWN0UHJvdG8pIHtcbiAgICB2YXIgdGFnID0gb2JqZWN0ID09PSBzdHJpbmdQcm90byA/IHN0cmluZ1RhZyA6IChvYmplY3QgPT09IGVycm9yUHJvdG8gPyBlcnJvclRhZyA6IG9ialRvU3RyaW5nLmNhbGwob2JqZWN0KSksXG4gICAgICAgIG5vbkVudW1zID0gbm9uRW51bVByb3BzW3RhZ10gfHwgbm9uRW51bVByb3BzW29iamVjdFRhZ107XG5cbiAgICBpZiAodGFnID09IG9iamVjdFRhZykge1xuICAgICAgcHJvdG8gPSBvYmplY3RQcm90bztcbiAgICB9XG4gICAgbGVuZ3RoID0gc2hhZG93UHJvcHMubGVuZ3RoO1xuICAgIHdoaWxlIChsZW5ndGgtLSkge1xuICAgICAga2V5ID0gc2hhZG93UHJvcHNbbGVuZ3RoXTtcbiAgICAgIHZhciBub25FbnVtID0gbm9uRW51bXNba2V5XTtcbiAgICAgIGlmICghKGlzUHJvdG8gJiYgbm9uRW51bSkgJiZcbiAgICAgICAgICAobm9uRW51bSA/IGhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpIDogb2JqZWN0W2tleV0gIT09IHByb3RvW2tleV0pKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGtleSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ga2V5c0luO1xuIiwidmFyIGtleXMgPSByZXF1aXJlKCcuL2tleXMnKSxcbiAgICB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL3RvT2JqZWN0Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHR3byBkaW1lbnNpb25hbCBhcnJheSBvZiB0aGUga2V5LXZhbHVlIHBhaXJzIGZvciBgb2JqZWN0YCxcbiAqIGUuZy4gYFtba2V5MSwgdmFsdWUxXSwgW2tleTIsIHZhbHVlMl1dYC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IE9iamVjdFxuICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCBUaGUgb2JqZWN0IHRvIHF1ZXJ5LlxuICogQHJldHVybnMge0FycmF5fSBSZXR1cm5zIHRoZSBuZXcgYXJyYXkgb2Yga2V5LXZhbHVlIHBhaXJzLlxuICogQGV4YW1wbGVcbiAqXG4gKiBfLnBhaXJzKHsgJ2Jhcm5leSc6IDM2LCAnZnJlZCc6IDQwIH0pO1xuICogLy8gPT4gW1snYmFybmV5JywgMzZdLCBbJ2ZyZWQnLCA0MF1dIChpdGVyYXRpb24gb3JkZXIgaXMgbm90IGd1YXJhbnRlZWQpXG4gKi9cbmZ1bmN0aW9uIHBhaXJzKG9iamVjdCkge1xuICBvYmplY3QgPSB0b09iamVjdChvYmplY3QpO1xuXG4gIHZhciBpbmRleCA9IC0xLFxuICAgICAgcHJvcHMgPSBrZXlzKG9iamVjdCksXG4gICAgICBsZW5ndGggPSBwcm9wcy5sZW5ndGgsXG4gICAgICByZXN1bHQgPSBBcnJheShsZW5ndGgpO1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgdmFyIGtleSA9IHByb3BzW2luZGV4XTtcbiAgICByZXN1bHRbaW5kZXhdID0gW2tleSwgb2JqZWN0W2tleV1dO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcGFpcnM7XG4iLCJ2YXIgYmFzZVZhbHVlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2Jhc2VWYWx1ZXMnKSxcbiAgICBrZXlzID0gcmVxdWlyZSgnLi9rZXlzJyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB0aGUgb3duIGVudW1lcmFibGUgcHJvcGVydHkgdmFsdWVzIG9mIGBvYmplY3RgLlxuICpcbiAqICoqTm90ZToqKiBOb24tb2JqZWN0IHZhbHVlcyBhcmUgY29lcmNlZCB0byBvYmplY3RzLlxuICpcbiAqIEBzdGF0aWNcbiAqIEBtZW1iZXJPZiBfXG4gKiBAY2F0ZWdvcnkgT2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gcXVlcnkuXG4gKiBAcmV0dXJucyB7QXJyYXl9IFJldHVybnMgdGhlIGFycmF5IG9mIHByb3BlcnR5IHZhbHVlcy5cbiAqIEBleGFtcGxlXG4gKlxuICogZnVuY3Rpb24gRm9vKCkge1xuICogICB0aGlzLmEgPSAxO1xuICogICB0aGlzLmIgPSAyO1xuICogfVxuICpcbiAqIEZvby5wcm90b3R5cGUuYyA9IDM7XG4gKlxuICogXy52YWx1ZXMobmV3IEZvbyk7XG4gKiAvLyA9PiBbMSwgMl0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAqXG4gKiBfLnZhbHVlcygnaGknKTtcbiAqIC8vID0+IFsnaCcsICdpJ11cbiAqL1xuZnVuY3Rpb24gdmFsdWVzKG9iamVjdCkge1xuICByZXR1cm4gYmFzZVZhbHVlcyhvYmplY3QsIGtleXMob2JqZWN0KSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmFsdWVzO1xuIiwiLyoqIFVzZWQgZm9yIG5hdGl2ZSBtZXRob2QgcmVmZXJlbmNlcy4gKi9cbnZhciBhcnJheVByb3RvID0gQXJyYXkucHJvdG90eXBlLFxuICAgIGVycm9yUHJvdG8gPSBFcnJvci5wcm90b3R5cGUsXG4gICAgb2JqZWN0UHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuXG4vKiogTmF0aXZlIG1ldGhvZCByZWZlcmVuY2VzLiAqL1xudmFyIHByb3BlcnR5SXNFbnVtZXJhYmxlID0gb2JqZWN0UHJvdG8ucHJvcGVydHlJc0VudW1lcmFibGUsXG4gICAgc3BsaWNlID0gYXJyYXlQcm90by5zcGxpY2U7XG5cbi8qKlxuICogQW4gb2JqZWN0IGVudmlyb25tZW50IGZlYXR1cmUgZmxhZ3MuXG4gKlxuICogQHN0YXRpY1xuICogQG1lbWJlck9mIF9cbiAqIEB0eXBlIE9iamVjdFxuICovXG52YXIgc3VwcG9ydCA9IHt9O1xuXG4oZnVuY3Rpb24oeCkge1xuICB2YXIgQ3RvciA9IGZ1bmN0aW9uKCkgeyB0aGlzLnggPSB4OyB9LFxuICAgICAgb2JqZWN0ID0geyAnMCc6IHgsICdsZW5ndGgnOiB4IH0sXG4gICAgICBwcm9wcyA9IFtdO1xuXG4gIEN0b3IucHJvdG90eXBlID0geyAndmFsdWVPZic6IHgsICd5JzogeCB9O1xuICBmb3IgKHZhciBrZXkgaW4gbmV3IEN0b3IpIHsgcHJvcHMucHVzaChrZXkpOyB9XG5cbiAgLyoqXG4gICAqIERldGVjdCBpZiBgbmFtZWAgb3IgYG1lc3NhZ2VgIHByb3BlcnRpZXMgb2YgYEVycm9yLnByb3RvdHlwZWAgYXJlXG4gICAqIGVudW1lcmFibGUgYnkgZGVmYXVsdCAoSUUgPCA5LCBTYWZhcmkgPCA1LjEpLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIHN1cHBvcnQuZW51bUVycm9yUHJvcHMgPSBwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGVycm9yUHJvdG8sICdtZXNzYWdlJykgfHxcbiAgICBwcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGVycm9yUHJvdG8sICduYW1lJyk7XG5cbiAgLyoqXG4gICAqIERldGVjdCBpZiBgcHJvdG90eXBlYCBwcm9wZXJ0aWVzIGFyZSBlbnVtZXJhYmxlIGJ5IGRlZmF1bHQuXG4gICAqXG4gICAqIEZpcmVmb3ggPCAzLjYsIE9wZXJhID4gOS41MCAtIE9wZXJhIDwgMTEuNjAsIGFuZCBTYWZhcmkgPCA1LjFcbiAgICogKGlmIHRoZSBwcm90b3R5cGUgb3IgYSBwcm9wZXJ0eSBvbiB0aGUgcHJvdG90eXBlIGhhcyBiZWVuIHNldClcbiAgICogaW5jb3JyZWN0bHkgc2V0IHRoZSBgW1tFbnVtZXJhYmxlXV1gIHZhbHVlIG9mIGEgZnVuY3Rpb24ncyBgcHJvdG90eXBlYFxuICAgKiBwcm9wZXJ0eSB0byBgdHJ1ZWAuXG4gICAqXG4gICAqIEBtZW1iZXJPZiBfLnN1cHBvcnRcbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgc3VwcG9ydC5lbnVtUHJvdG90eXBlcyA9IHByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoQ3RvciwgJ3Byb3RvdHlwZScpO1xuXG4gIC8qKlxuICAgKiBEZXRlY3QgaWYgcHJvcGVydGllcyBzaGFkb3dpbmcgdGhvc2Ugb24gYE9iamVjdC5wcm90b3R5cGVgIGFyZSBub24tZW51bWVyYWJsZS5cbiAgICpcbiAgICogSW4gSUUgPCA5IGFuIG9iamVjdCdzIG93biBwcm9wZXJ0aWVzLCBzaGFkb3dpbmcgbm9uLWVudW1lcmFibGUgb25lcyxcbiAgICogYXJlIG1hZGUgbm9uLWVudW1lcmFibGUgYXMgd2VsbCAoYS5rLmEgdGhlIEpTY3JpcHQgYFtbRG9udEVudW1dXWAgYnVnKS5cbiAgICpcbiAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBzdXBwb3J0Lm5vbkVudW1TaGFkb3dzID0gIS92YWx1ZU9mLy50ZXN0KHByb3BzKTtcblxuICAvKipcbiAgICogRGV0ZWN0IGlmIG93biBwcm9wZXJ0aWVzIGFyZSBpdGVyYXRlZCBhZnRlciBpbmhlcml0ZWQgcHJvcGVydGllcyAoSUUgPCA5KS5cbiAgICpcbiAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBzdXBwb3J0Lm93bkxhc3QgPSBwcm9wc1swXSAhPSAneCc7XG5cbiAgLyoqXG4gICAqIERldGVjdCBpZiBgQXJyYXkjc2hpZnRgIGFuZCBgQXJyYXkjc3BsaWNlYCBhdWdtZW50IGFycmF5LWxpa2Ugb2JqZWN0c1xuICAgKiBjb3JyZWN0bHkuXG4gICAqXG4gICAqIEZpcmVmb3ggPCAxMCwgY29tcGF0aWJpbGl0eSBtb2RlcyBvZiBJRSA4LCBhbmQgSUUgPCA5IGhhdmUgYnVnZ3kgQXJyYXlcbiAgICogYHNoaWZ0KClgIGFuZCBgc3BsaWNlKClgIGZ1bmN0aW9ucyB0aGF0IGZhaWwgdG8gcmVtb3ZlIHRoZSBsYXN0IGVsZW1lbnQsXG4gICAqIGB2YWx1ZVswXWAsIG9mIGFycmF5LWxpa2Ugb2JqZWN0cyBldmVuIHRob3VnaCB0aGUgXCJsZW5ndGhcIiBwcm9wZXJ0eSBpc1xuICAgKiBzZXQgdG8gYDBgLiBUaGUgYHNoaWZ0KClgIG1ldGhvZCBpcyBidWdneSBpbiBjb21wYXRpYmlsaXR5IG1vZGVzIG9mIElFIDgsXG4gICAqIHdoaWxlIGBzcGxpY2UoKWAgaXMgYnVnZ3kgcmVnYXJkbGVzcyBvZiBtb2RlIGluIElFIDwgOS5cbiAgICpcbiAgICogQG1lbWJlck9mIF8uc3VwcG9ydFxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBzdXBwb3J0LnNwbGljZU9iamVjdHMgPSAoc3BsaWNlLmNhbGwob2JqZWN0LCAwLCAxKSwgIW9iamVjdFswXSk7XG5cbiAgLyoqXG4gICAqIERldGVjdCBsYWNrIG9mIHN1cHBvcnQgZm9yIGFjY2Vzc2luZyBzdHJpbmcgY2hhcmFjdGVycyBieSBpbmRleC5cbiAgICpcbiAgICogSUUgPCA4IGNhbid0IGFjY2VzcyBjaGFyYWN0ZXJzIGJ5IGluZGV4LiBJRSA4IGNhbiBvbmx5IGFjY2VzcyBjaGFyYWN0ZXJzXG4gICAqIGJ5IGluZGV4IG9uIHN0cmluZyBsaXRlcmFscywgbm90IHN0cmluZyBvYmplY3RzLlxuICAgKlxuICAgKiBAbWVtYmVyT2YgXy5zdXBwb3J0XG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIHN1cHBvcnQudW5pbmRleGVkQ2hhcnMgPSAoJ3gnWzBdICsgT2JqZWN0KCd4JylbMF0pICE9ICd4eCc7XG59KDEsIDApKTtcblxubW9kdWxlLmV4cG9ydHMgPSBzdXBwb3J0O1xuIiwiLyoqXG4gKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBmaXJzdCBhcmd1bWVudCBwcm92aWRlZCB0byBpdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IFV0aWxpdHlcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgQW55IHZhbHVlLlxuICogQHJldHVybnMgeyp9IFJldHVybnMgYHZhbHVlYC5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ3VzZXInOiAnZnJlZCcgfTtcbiAqXG4gKiBfLmlkZW50aXR5KG9iamVjdCkgPT09IG9iamVjdDtcbiAqIC8vID0+IHRydWVcbiAqL1xuZnVuY3Rpb24gaWRlbnRpdHkodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGlkZW50aXR5O1xuIiwiLyoqXG4gKiBBIG5vLW9wZXJhdGlvbiBmdW5jdGlvbiB0aGF0IHJldHVybnMgYHVuZGVmaW5lZGAgcmVnYXJkbGVzcyBvZiB0aGVcbiAqIGFyZ3VtZW50cyBpdCByZWNlaXZlcy5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IFV0aWxpdHlcbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdCA9IHsgJ3VzZXInOiAnZnJlZCcgfTtcbiAqXG4gKiBfLm5vb3Aob2JqZWN0KSA9PT0gdW5kZWZpbmVkO1xuICogLy8gPT4gdHJ1ZVxuICovXG5mdW5jdGlvbiBub29wKCkge1xuICAvLyBObyBvcGVyYXRpb24gcGVyZm9ybWVkLlxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IG5vb3A7XG4iLCJ2YXIgYmFzZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWwvYmFzZVByb3BlcnR5JyksXG4gICAgYmFzZVByb3BlcnR5RGVlcCA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2Jhc2VQcm9wZXJ0eURlZXAnKSxcbiAgICBpc0tleSA9IHJlcXVpcmUoJy4uL2ludGVybmFsL2lzS2V5Jyk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgcHJvcGVydHkgdmFsdWUgYXQgYHBhdGhgIG9uIGFcbiAqIGdpdmVuIG9iamVjdC5cbiAqXG4gKiBAc3RhdGljXG4gKiBAbWVtYmVyT2YgX1xuICogQGNhdGVnb3J5IFV0aWxpdHlcbiAqIEBwYXJhbSB7QXJyYXl8c3RyaW5nfSBwYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuXG4gKiBAcmV0dXJucyB7RnVuY3Rpb259IFJldHVybnMgdGhlIG5ldyBmdW5jdGlvbi5cbiAqIEBleGFtcGxlXG4gKlxuICogdmFyIG9iamVjdHMgPSBbXG4gKiAgIHsgJ2EnOiB7ICdiJzogeyAnYyc6IDIgfSB9IH0sXG4gKiAgIHsgJ2EnOiB7ICdiJzogeyAnYyc6IDEgfSB9IH1cbiAqIF07XG4gKlxuICogXy5tYXAob2JqZWN0cywgXy5wcm9wZXJ0eSgnYS5iLmMnKSk7XG4gKiAvLyA9PiBbMiwgMV1cbiAqXG4gKiBfLnBsdWNrKF8uc29ydEJ5KG9iamVjdHMsIF8ucHJvcGVydHkoWydhJywgJ2InLCAnYyddKSksICdhLmIuYycpO1xuICogLy8gPT4gWzEsIDJdXG4gKi9cbmZ1bmN0aW9uIHByb3BlcnR5KHBhdGgpIHtcbiAgcmV0dXJuIGlzS2V5KHBhdGgpID8gYmFzZVByb3BlcnR5KHBhdGgpIDogYmFzZVByb3BlcnR5RGVlcChwYXRoKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwcm9wZXJ0eTtcbiIsIi8qKlxuICogTW9kdWxlIGRlcGVuZGVuY2llcy5cbiAqL1xuXG52YXIgRW1pdHRlciA9IHJlcXVpcmUoJ2VtaXR0ZXInKTtcbnZhciByZWR1Y2UgPSByZXF1aXJlKCdyZWR1Y2UnKTtcblxuLyoqXG4gKiBSb290IHJlZmVyZW5jZSBmb3IgaWZyYW1lcy5cbiAqL1xuXG52YXIgcm9vdCA9ICd1bmRlZmluZWQnID09IHR5cGVvZiB3aW5kb3dcbiAgPyAodGhpcyB8fCBzZWxmKVxuICA6IHdpbmRvdztcblxuLyoqXG4gKiBOb29wLlxuICovXG5cbmZ1bmN0aW9uIG5vb3AoKXt9O1xuXG4vKipcbiAqIENoZWNrIGlmIGBvYmpgIGlzIGEgaG9zdCBvYmplY3QsXG4gKiB3ZSBkb24ndCB3YW50IHRvIHNlcmlhbGl6ZSB0aGVzZSA6KVxuICpcbiAqIFRPRE86IGZ1dHVyZSBwcm9vZiwgbW92ZSB0byBjb21wb2VudCBsYW5kXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9ialxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGlzSG9zdChvYmopIHtcbiAgdmFyIHN0ciA9IHt9LnRvU3RyaW5nLmNhbGwob2JqKTtcblxuICBzd2l0Y2ggKHN0cikge1xuICAgIGNhc2UgJ1tvYmplY3QgRmlsZV0nOlxuICAgIGNhc2UgJ1tvYmplY3QgQmxvYl0nOlxuICAgIGNhc2UgJ1tvYmplY3QgRm9ybURhdGFdJzpcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgWEhSLlxuICovXG5cbnJlcXVlc3QuZ2V0WEhSID0gZnVuY3Rpb24gKCkge1xuICBpZiAocm9vdC5YTUxIdHRwUmVxdWVzdFxuICAgICAgJiYgKCFyb290LmxvY2F0aW9uIHx8ICdmaWxlOicgIT0gcm9vdC5sb2NhdGlvbi5wcm90b2NvbFxuICAgICAgICAgIHx8ICFyb290LkFjdGl2ZVhPYmplY3QpKSB7XG4gICAgcmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdDtcbiAgfSBlbHNlIHtcbiAgICB0cnkgeyByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01pY3Jvc29mdC5YTUxIVFRQJyk7IH0gY2F0Y2goZSkge31cbiAgICB0cnkgeyByZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ01zeG1sMi5YTUxIVFRQLjYuMCcpOyB9IGNhdGNoKGUpIHt9XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBBY3RpdmVYT2JqZWN0KCdNc3htbDIuWE1MSFRUUC4zLjAnKTsgfSBjYXRjaChlKSB7fVxuICAgIHRyeSB7IHJldHVybiBuZXcgQWN0aXZlWE9iamVjdCgnTXN4bWwyLlhNTEhUVFAnKTsgfSBjYXRjaChlKSB7fVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn07XG5cbi8qKlxuICogUmVtb3ZlcyBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlLCBhZGRlZCB0byBzdXBwb3J0IElFLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG52YXIgdHJpbSA9ICcnLnRyaW1cbiAgPyBmdW5jdGlvbihzKSB7IHJldHVybiBzLnRyaW0oKTsgfVxuICA6IGZ1bmN0aW9uKHMpIHsgcmV0dXJuIHMucmVwbGFjZSgvKF5cXHMqfFxccyokKS9nLCAnJyk7IH07XG5cbi8qKlxuICogQ2hlY2sgaWYgYG9iamAgaXMgYW4gb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBpc09iamVjdChvYmopIHtcbiAgcmV0dXJuIG9iaiA9PT0gT2JqZWN0KG9iaik7XG59XG5cbi8qKlxuICogU2VyaWFsaXplIHRoZSBnaXZlbiBgb2JqYC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBzZXJpYWxpemUob2JqKSB7XG4gIGlmICghaXNPYmplY3Qob2JqKSkgcmV0dXJuIG9iajtcbiAgdmFyIHBhaXJzID0gW107XG4gIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICBpZiAobnVsbCAhPSBvYmpba2V5XSkge1xuICAgICAgcGFpcnMucHVzaChlbmNvZGVVUklDb21wb25lbnQoa2V5KVxuICAgICAgICArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudChvYmpba2V5XSkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcGFpcnMuam9pbignJicpO1xufVxuXG4vKipcbiAqIEV4cG9zZSBzZXJpYWxpemF0aW9uIG1ldGhvZC5cbiAqL1xuXG4gcmVxdWVzdC5zZXJpYWxpemVPYmplY3QgPSBzZXJpYWxpemU7XG5cbiAvKipcbiAgKiBQYXJzZSB0aGUgZ2l2ZW4geC13d3ctZm9ybS11cmxlbmNvZGVkIGBzdHJgLlxuICAqXG4gICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICAqIEByZXR1cm4ge09iamVjdH1cbiAgKiBAYXBpIHByaXZhdGVcbiAgKi9cblxuZnVuY3Rpb24gcGFyc2VTdHJpbmcoc3RyKSB7XG4gIHZhciBvYmogPSB7fTtcbiAgdmFyIHBhaXJzID0gc3RyLnNwbGl0KCcmJyk7XG4gIHZhciBwYXJ0cztcbiAgdmFyIHBhaXI7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHBhaXJzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XG4gICAgcGFpciA9IHBhaXJzW2ldO1xuICAgIHBhcnRzID0gcGFpci5zcGxpdCgnPScpO1xuICAgIG9ialtkZWNvZGVVUklDb21wb25lbnQocGFydHNbMF0pXSA9IGRlY29kZVVSSUNvbXBvbmVudChwYXJ0c1sxXSk7XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG4vKipcbiAqIEV4cG9zZSBwYXJzZXIuXG4gKi9cblxucmVxdWVzdC5wYXJzZVN0cmluZyA9IHBhcnNlU3RyaW5nO1xuXG4vKipcbiAqIERlZmF1bHQgTUlNRSB0eXBlIG1hcC5cbiAqXG4gKiAgICAgc3VwZXJhZ2VudC50eXBlcy54bWwgPSAnYXBwbGljYXRpb24veG1sJztcbiAqXG4gKi9cblxucmVxdWVzdC50eXBlcyA9IHtcbiAgaHRtbDogJ3RleHQvaHRtbCcsXG4gIGpzb246ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgeG1sOiAnYXBwbGljYXRpb24veG1sJyxcbiAgdXJsZW5jb2RlZDogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gICdmb3JtJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcsXG4gICdmb3JtLWRhdGEnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xufTtcblxuLyoqXG4gKiBEZWZhdWx0IHNlcmlhbGl6YXRpb24gbWFwLlxuICpcbiAqICAgICBzdXBlcmFnZW50LnNlcmlhbGl6ZVsnYXBwbGljYXRpb24veG1sJ10gPSBmdW5jdGlvbihvYmope1xuICogICAgICAgcmV0dXJuICdnZW5lcmF0ZWQgeG1sIGhlcmUnO1xuICogICAgIH07XG4gKlxuICovXG5cbiByZXF1ZXN0LnNlcmlhbGl6ZSA9IHtcbiAgICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnOiBzZXJpYWxpemUsXG4gICAnYXBwbGljYXRpb24vanNvbic6IEpTT04uc3RyaW5naWZ5XG4gfTtcblxuIC8qKlxuICAqIERlZmF1bHQgcGFyc2Vycy5cbiAgKlxuICAqICAgICBzdXBlcmFnZW50LnBhcnNlWydhcHBsaWNhdGlvbi94bWwnXSA9IGZ1bmN0aW9uKHN0cil7XG4gICogICAgICAgcmV0dXJuIHsgb2JqZWN0IHBhcnNlZCBmcm9tIHN0ciB9O1xuICAqICAgICB9O1xuICAqXG4gICovXG5cbnJlcXVlc3QucGFyc2UgPSB7XG4gICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnOiBwYXJzZVN0cmluZyxcbiAgJ2FwcGxpY2F0aW9uL2pzb24nOiBKU09OLnBhcnNlXG59O1xuXG4vKipcbiAqIFBhcnNlIHRoZSBnaXZlbiBoZWFkZXIgYHN0cmAgaW50b1xuICogYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIG1hcHBlZCBmaWVsZHMuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0clxuICogQHJldHVybiB7T2JqZWN0fVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gcGFyc2VIZWFkZXIoc3RyKSB7XG4gIHZhciBsaW5lcyA9IHN0ci5zcGxpdCgvXFxyP1xcbi8pO1xuICB2YXIgZmllbGRzID0ge307XG4gIHZhciBpbmRleDtcbiAgdmFyIGxpbmU7XG4gIHZhciBmaWVsZDtcbiAgdmFyIHZhbDtcblxuICBsaW5lcy5wb3AoKTsgLy8gdHJhaWxpbmcgQ1JMRlxuXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBsaW5lcy5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgIGxpbmUgPSBsaW5lc1tpXTtcbiAgICBpbmRleCA9IGxpbmUuaW5kZXhPZignOicpO1xuICAgIGZpZWxkID0gbGluZS5zbGljZSgwLCBpbmRleCkudG9Mb3dlckNhc2UoKTtcbiAgICB2YWwgPSB0cmltKGxpbmUuc2xpY2UoaW5kZXggKyAxKSk7XG4gICAgZmllbGRzW2ZpZWxkXSA9IHZhbDtcbiAgfVxuXG4gIHJldHVybiBmaWVsZHM7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBtaW1lIHR5cGUgZm9yIHRoZSBnaXZlbiBgc3RyYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiB0eXBlKHN0cil7XG4gIHJldHVybiBzdHIuc3BsaXQoLyAqOyAqLykuc2hpZnQoKTtcbn07XG5cbi8qKlxuICogUmV0dXJuIGhlYWRlciBmaWVsZCBwYXJhbWV0ZXJzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge09iamVjdH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHBhcmFtcyhzdHIpe1xuICByZXR1cm4gcmVkdWNlKHN0ci5zcGxpdCgvICo7ICovKSwgZnVuY3Rpb24ob2JqLCBzdHIpe1xuICAgIHZhciBwYXJ0cyA9IHN0ci5zcGxpdCgvICo9ICovKVxuICAgICAgLCBrZXkgPSBwYXJ0cy5zaGlmdCgpXG4gICAgICAsIHZhbCA9IHBhcnRzLnNoaWZ0KCk7XG5cbiAgICBpZiAoa2V5ICYmIHZhbCkgb2JqW2tleV0gPSB2YWw7XG4gICAgcmV0dXJuIG9iajtcbiAgfSwge30pO1xufTtcblxuLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IGBSZXNwb25zZWAgd2l0aCB0aGUgZ2l2ZW4gYHhocmAuXG4gKlxuICogIC0gc2V0IGZsYWdzICgub2ssIC5lcnJvciwgZXRjKVxuICogIC0gcGFyc2UgaGVhZGVyXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogIEFsaWFzaW5nIGBzdXBlcmFnZW50YCBhcyBgcmVxdWVzdGAgaXMgbmljZTpcbiAqXG4gKiAgICAgIHJlcXVlc3QgPSBzdXBlcmFnZW50O1xuICpcbiAqICBXZSBjYW4gdXNlIHRoZSBwcm9taXNlLWxpa2UgQVBJLCBvciBwYXNzIGNhbGxiYWNrczpcbiAqXG4gKiAgICAgIHJlcXVlc3QuZ2V0KCcvJykuZW5kKGZ1bmN0aW9uKHJlcyl7fSk7XG4gKiAgICAgIHJlcXVlc3QuZ2V0KCcvJywgZnVuY3Rpb24ocmVzKXt9KTtcbiAqXG4gKiAgU2VuZGluZyBkYXRhIGNhbiBiZSBjaGFpbmVkOlxuICpcbiAqICAgICAgcmVxdWVzdFxuICogICAgICAgIC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgLnNlbmQoeyBuYW1lOiAndGonIH0pXG4gKiAgICAgICAgLmVuZChmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqICBPciBwYXNzZWQgdG8gYC5zZW5kKClgOlxuICpcbiAqICAgICAgcmVxdWVzdFxuICogICAgICAgIC5wb3N0KCcvdXNlcicpXG4gKiAgICAgICAgLnNlbmQoeyBuYW1lOiAndGonIH0sIGZ1bmN0aW9uKHJlcyl7fSk7XG4gKlxuICogIE9yIHBhc3NlZCB0byBgLnBvc3QoKWA6XG4gKlxuICogICAgICByZXF1ZXN0XG4gKiAgICAgICAgLnBvc3QoJy91c2VyJywgeyBuYW1lOiAndGonIH0pXG4gKiAgICAgICAgLmVuZChmdW5jdGlvbihyZXMpe30pO1xuICpcbiAqIE9yIGZ1cnRoZXIgcmVkdWNlZCB0byBhIHNpbmdsZSBjYWxsIGZvciBzaW1wbGUgY2FzZXM6XG4gKlxuICogICAgICByZXF1ZXN0XG4gKiAgICAgICAgLnBvc3QoJy91c2VyJywgeyBuYW1lOiAndGonIH0sIGZ1bmN0aW9uKHJlcyl7fSk7XG4gKlxuICogQHBhcmFtIHtYTUxIVFRQUmVxdWVzdH0geGhyXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gUmVzcG9uc2UocmVxLCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICB0aGlzLnJlcSA9IHJlcTtcbiAgdGhpcy54aHIgPSB0aGlzLnJlcS54aHI7XG4gIC8vIHJlc3BvbnNlVGV4dCBpcyBhY2Nlc3NpYmxlIG9ubHkgaWYgcmVzcG9uc2VUeXBlIGlzICcnIG9yICd0ZXh0JyBhbmQgb24gb2xkZXIgYnJvd3NlcnNcbiAgdGhpcy50ZXh0ID0gKCh0aGlzLnJlcS5tZXRob2QgIT0nSEVBRCcgJiYgKHRoaXMueGhyLnJlc3BvbnNlVHlwZSA9PT0gJycgfHwgdGhpcy54aHIucmVzcG9uc2VUeXBlID09PSAndGV4dCcpKSB8fCB0eXBlb2YgdGhpcy54aHIucmVzcG9uc2VUeXBlID09PSAndW5kZWZpbmVkJylcbiAgICAgPyB0aGlzLnhoci5yZXNwb25zZVRleHRcbiAgICAgOiBudWxsO1xuICB0aGlzLnN0YXR1c1RleHQgPSB0aGlzLnJlcS54aHIuc3RhdHVzVGV4dDtcbiAgdGhpcy5zZXRTdGF0dXNQcm9wZXJ0aWVzKHRoaXMueGhyLnN0YXR1cyk7XG4gIHRoaXMuaGVhZGVyID0gdGhpcy5oZWFkZXJzID0gcGFyc2VIZWFkZXIodGhpcy54aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpO1xuICAvLyBnZXRBbGxSZXNwb25zZUhlYWRlcnMgc29tZXRpbWVzIGZhbHNlbHkgcmV0dXJucyBcIlwiIGZvciBDT1JTIHJlcXVlc3RzLCBidXRcbiAgLy8gZ2V0UmVzcG9uc2VIZWFkZXIgc3RpbGwgd29ya3MuIHNvIHdlIGdldCBjb250ZW50LXR5cGUgZXZlbiBpZiBnZXR0aW5nXG4gIC8vIG90aGVyIGhlYWRlcnMgZmFpbHMuXG4gIHRoaXMuaGVhZGVyWydjb250ZW50LXR5cGUnXSA9IHRoaXMueGhyLmdldFJlc3BvbnNlSGVhZGVyKCdjb250ZW50LXR5cGUnKTtcbiAgdGhpcy5zZXRIZWFkZXJQcm9wZXJ0aWVzKHRoaXMuaGVhZGVyKTtcbiAgdGhpcy5ib2R5ID0gdGhpcy5yZXEubWV0aG9kICE9ICdIRUFEJ1xuICAgID8gdGhpcy5wYXJzZUJvZHkodGhpcy50ZXh0ID8gdGhpcy50ZXh0IDogdGhpcy54aHIucmVzcG9uc2UpXG4gICAgOiBudWxsO1xufVxuXG4vKipcbiAqIEdldCBjYXNlLWluc2Vuc2l0aXZlIGBmaWVsZGAgdmFsdWUuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGZpZWxkXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlc3BvbnNlLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbihmaWVsZCl7XG4gIHJldHVybiB0aGlzLmhlYWRlcltmaWVsZC50b0xvd2VyQ2FzZSgpXTtcbn07XG5cbi8qKlxuICogU2V0IGhlYWRlciByZWxhdGVkIHByb3BlcnRpZXM6XG4gKlxuICogICAtIGAudHlwZWAgdGhlIGNvbnRlbnQgdHlwZSB3aXRob3V0IHBhcmFtc1xuICpcbiAqIEEgcmVzcG9uc2Ugb2YgXCJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLThcIlxuICogd2lsbCBwcm92aWRlIHlvdSB3aXRoIGEgYC50eXBlYCBvZiBcInRleHQvcGxhaW5cIi5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gaGVhZGVyXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUuc2V0SGVhZGVyUHJvcGVydGllcyA9IGZ1bmN0aW9uKGhlYWRlcil7XG4gIC8vIGNvbnRlbnQtdHlwZVxuICB2YXIgY3QgPSB0aGlzLmhlYWRlclsnY29udGVudC10eXBlJ10gfHwgJyc7XG4gIHRoaXMudHlwZSA9IHR5cGUoY3QpO1xuXG4gIC8vIHBhcmFtc1xuICB2YXIgb2JqID0gcGFyYW1zKGN0KTtcbiAgZm9yICh2YXIga2V5IGluIG9iaikgdGhpc1trZXldID0gb2JqW2tleV07XG59O1xuXG4vKipcbiAqIFBhcnNlIHRoZSBnaXZlbiBib2R5IGBzdHJgLlxuICpcbiAqIFVzZWQgZm9yIGF1dG8tcGFyc2luZyBvZiBib2RpZXMuIFBhcnNlcnNcbiAqIGFyZSBkZWZpbmVkIG9uIHRoZSBgc3VwZXJhZ2VudC5wYXJzZWAgb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge01peGVkfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVzcG9uc2UucHJvdG90eXBlLnBhcnNlQm9keSA9IGZ1bmN0aW9uKHN0cil7XG4gIHZhciBwYXJzZSA9IHJlcXVlc3QucGFyc2VbdGhpcy50eXBlXTtcbiAgcmV0dXJuIHBhcnNlICYmIHN0ciAmJiAoc3RyLmxlbmd0aCB8fCBzdHIgaW5zdGFuY2VvZiBPYmplY3QpXG4gICAgPyBwYXJzZShzdHIpXG4gICAgOiBudWxsO1xufTtcblxuLyoqXG4gKiBTZXQgZmxhZ3Mgc3VjaCBhcyBgLm9rYCBiYXNlZCBvbiBgc3RhdHVzYC5cbiAqXG4gKiBGb3IgZXhhbXBsZSBhIDJ4eCByZXNwb25zZSB3aWxsIGdpdmUgeW91IGEgYC5va2Agb2YgX190cnVlX19cbiAqIHdoZXJlYXMgNXh4IHdpbGwgYmUgX19mYWxzZV9fIGFuZCBgLmVycm9yYCB3aWxsIGJlIF9fdHJ1ZV9fLiBUaGVcbiAqIGAuY2xpZW50RXJyb3JgIGFuZCBgLnNlcnZlckVycm9yYCBhcmUgYWxzbyBhdmFpbGFibGUgdG8gYmUgbW9yZVxuICogc3BlY2lmaWMsIGFuZCBgLnN0YXR1c1R5cGVgIGlzIHRoZSBjbGFzcyBvZiBlcnJvciByYW5naW5nIGZyb20gMS4uNVxuICogc29tZXRpbWVzIHVzZWZ1bCBmb3IgbWFwcGluZyByZXNwb25kIGNvbG9ycyBldGMuXG4gKlxuICogXCJzdWdhclwiIHByb3BlcnRpZXMgYXJlIGFsc28gZGVmaW5lZCBmb3IgY29tbW9uIGNhc2VzLiBDdXJyZW50bHkgcHJvdmlkaW5nOlxuICpcbiAqICAgLSAubm9Db250ZW50XG4gKiAgIC0gLmJhZFJlcXVlc3RcbiAqICAgLSAudW5hdXRob3JpemVkXG4gKiAgIC0gLm5vdEFjY2VwdGFibGVcbiAqICAgLSAubm90Rm91bmRcbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gc3RhdHVzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUuc2V0U3RhdHVzUHJvcGVydGllcyA9IGZ1bmN0aW9uKHN0YXR1cyl7XG4gIC8vIGhhbmRsZSBJRTkgYnVnOiBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzEwMDQ2OTcyL21zaWUtcmV0dXJucy1zdGF0dXMtY29kZS1vZi0xMjIzLWZvci1hamF4LXJlcXVlc3RcbiAgaWYgKHN0YXR1cyA9PT0gMTIyMykge1xuICAgIHN0YXR1cyA9IDIwNDtcbiAgfVxuXG4gIHZhciB0eXBlID0gc3RhdHVzIC8gMTAwIHwgMDtcblxuICAvLyBzdGF0dXMgLyBjbGFzc1xuICB0aGlzLnN0YXR1cyA9IHN0YXR1cztcbiAgdGhpcy5zdGF0dXNUeXBlID0gdHlwZTtcblxuICAvLyBiYXNpY3NcbiAgdGhpcy5pbmZvID0gMSA9PSB0eXBlO1xuICB0aGlzLm9rID0gMiA9PSB0eXBlO1xuICB0aGlzLmNsaWVudEVycm9yID0gNCA9PSB0eXBlO1xuICB0aGlzLnNlcnZlckVycm9yID0gNSA9PSB0eXBlO1xuICB0aGlzLmVycm9yID0gKDQgPT0gdHlwZSB8fCA1ID09IHR5cGUpXG4gICAgPyB0aGlzLnRvRXJyb3IoKVxuICAgIDogZmFsc2U7XG5cbiAgLy8gc3VnYXJcbiAgdGhpcy5hY2NlcHRlZCA9IDIwMiA9PSBzdGF0dXM7XG4gIHRoaXMubm9Db250ZW50ID0gMjA0ID09IHN0YXR1cztcbiAgdGhpcy5iYWRSZXF1ZXN0ID0gNDAwID09IHN0YXR1cztcbiAgdGhpcy51bmF1dGhvcml6ZWQgPSA0MDEgPT0gc3RhdHVzO1xuICB0aGlzLm5vdEFjY2VwdGFibGUgPSA0MDYgPT0gc3RhdHVzO1xuICB0aGlzLm5vdEZvdW5kID0gNDA0ID09IHN0YXR1cztcbiAgdGhpcy5mb3JiaWRkZW4gPSA0MDMgPT0gc3RhdHVzO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gYW4gYEVycm9yYCByZXByZXNlbnRhdGl2ZSBvZiB0aGlzIHJlc3BvbnNlLlxuICpcbiAqIEByZXR1cm4ge0Vycm9yfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXNwb25zZS5wcm90b3R5cGUudG9FcnJvciA9IGZ1bmN0aW9uKCl7XG4gIHZhciByZXEgPSB0aGlzLnJlcTtcbiAgdmFyIG1ldGhvZCA9IHJlcS5tZXRob2Q7XG4gIHZhciB1cmwgPSByZXEudXJsO1xuXG4gIHZhciBtc2cgPSAnY2Fubm90ICcgKyBtZXRob2QgKyAnICcgKyB1cmwgKyAnICgnICsgdGhpcy5zdGF0dXMgKyAnKSc7XG4gIHZhciBlcnIgPSBuZXcgRXJyb3IobXNnKTtcbiAgZXJyLnN0YXR1cyA9IHRoaXMuc3RhdHVzO1xuICBlcnIubWV0aG9kID0gbWV0aG9kO1xuICBlcnIudXJsID0gdXJsO1xuXG4gIHJldHVybiBlcnI7XG59O1xuXG4vKipcbiAqIEV4cG9zZSBgUmVzcG9uc2VgLlxuICovXG5cbnJlcXVlc3QuUmVzcG9uc2UgPSBSZXNwb25zZTtcblxuLyoqXG4gKiBJbml0aWFsaXplIGEgbmV3IGBSZXF1ZXN0YCB3aXRoIHRoZSBnaXZlbiBgbWV0aG9kYCBhbmQgYHVybGAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG1ldGhvZFxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBSZXF1ZXN0KG1ldGhvZCwgdXJsKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgRW1pdHRlci5jYWxsKHRoaXMpO1xuICB0aGlzLl9xdWVyeSA9IHRoaXMuX3F1ZXJ5IHx8IFtdO1xuICB0aGlzLm1ldGhvZCA9IG1ldGhvZDtcbiAgdGhpcy51cmwgPSB1cmw7XG4gIHRoaXMuaGVhZGVyID0ge307XG4gIHRoaXMuX2hlYWRlciA9IHt9O1xuICB0aGlzLm9uKCdlbmQnLCBmdW5jdGlvbigpe1xuICAgIHZhciBlcnIgPSBudWxsO1xuICAgIHZhciByZXMgPSBudWxsO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJlcyA9IG5ldyBSZXNwb25zZShzZWxmKTtcbiAgICB9IGNhdGNoKGUpIHtcbiAgICAgIGVyciA9IG5ldyBFcnJvcignUGFyc2VyIGlzIHVuYWJsZSB0byBwYXJzZSB0aGUgcmVzcG9uc2UnKTtcbiAgICAgIGVyci5wYXJzZSA9IHRydWU7XG4gICAgICBlcnIub3JpZ2luYWwgPSBlO1xuICAgICAgcmV0dXJuIHNlbGYuY2FsbGJhY2soZXJyKTtcbiAgICB9XG5cbiAgICBzZWxmLmVtaXQoJ3Jlc3BvbnNlJywgcmVzKTtcblxuICAgIGlmIChlcnIpIHtcbiAgICAgIHJldHVybiBzZWxmLmNhbGxiYWNrKGVyciwgcmVzKTtcbiAgICB9XG5cbiAgICBpZiAocmVzLnN0YXR1cyA+PSAyMDAgJiYgcmVzLnN0YXR1cyA8IDMwMCkge1xuICAgICAgcmV0dXJuIHNlbGYuY2FsbGJhY2soZXJyLCByZXMpO1xuICAgIH1cblxuICAgIHZhciBuZXdfZXJyID0gbmV3IEVycm9yKHJlcy5zdGF0dXNUZXh0IHx8ICdVbnN1Y2Nlc3NmdWwgSFRUUCByZXNwb25zZScpO1xuICAgIG5ld19lcnIub3JpZ2luYWwgPSBlcnI7XG4gICAgbmV3X2Vyci5yZXNwb25zZSA9IHJlcztcbiAgICBuZXdfZXJyLnN0YXR1cyA9IHJlcy5zdGF0dXM7XG5cbiAgICBzZWxmLmNhbGxiYWNrKGVyciB8fCBuZXdfZXJyLCByZXMpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBNaXhpbiBgRW1pdHRlcmAuXG4gKi9cblxuRW1pdHRlcihSZXF1ZXN0LnByb3RvdHlwZSk7XG5cbi8qKlxuICogQWxsb3cgZm9yIGV4dGVuc2lvblxuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnVzZSA9IGZ1bmN0aW9uKGZuKSB7XG4gIGZuKHRoaXMpO1xuICByZXR1cm4gdGhpcztcbn1cblxuLyoqXG4gKiBTZXQgdGltZW91dCB0byBgbXNgLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBtc1xuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnRpbWVvdXQgPSBmdW5jdGlvbihtcyl7XG4gIHRoaXMuX3RpbWVvdXQgPSBtcztcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIENsZWFyIHByZXZpb3VzIHRpbWVvdXQuXG4gKlxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmNsZWFyVGltZW91dCA9IGZ1bmN0aW9uKCl7XG4gIHRoaXMuX3RpbWVvdXQgPSAwO1xuICBjbGVhclRpbWVvdXQodGhpcy5fdGltZXIpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQWJvcnQgdGhlIHJlcXVlc3QsIGFuZCBjbGVhciBwb3RlbnRpYWwgdGltZW91dC5cbiAqXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5hYm9ydCA9IGZ1bmN0aW9uKCl7XG4gIGlmICh0aGlzLmFib3J0ZWQpIHJldHVybjtcbiAgdGhpcy5hYm9ydGVkID0gdHJ1ZTtcbiAgdGhpcy54aHIuYWJvcnQoKTtcbiAgdGhpcy5jbGVhclRpbWVvdXQoKTtcbiAgdGhpcy5lbWl0KCdhYm9ydCcpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2V0IGhlYWRlciBgZmllbGRgIHRvIGB2YWxgLCBvciBtdWx0aXBsZSBmaWVsZHMgd2l0aCBvbmUgb2JqZWN0LlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqICAgICAgcmVxLmdldCgnLycpXG4gKiAgICAgICAgLnNldCgnQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb24nKVxuICogICAgICAgIC5zZXQoJ1gtQVBJLUtleScsICdmb29iYXInKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqICAgICAgcmVxLmdldCgnLycpXG4gKiAgICAgICAgLnNldCh7IEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLCAnWC1BUEktS2V5JzogJ2Zvb2JhcicgfSlcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IGZpZWxkXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24oZmllbGQsIHZhbCl7XG4gIGlmIChpc09iamVjdChmaWVsZCkpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gZmllbGQpIHtcbiAgICAgIHRoaXMuc2V0KGtleSwgZmllbGRba2V5XSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG4gIHRoaXMuX2hlYWRlcltmaWVsZC50b0xvd2VyQ2FzZSgpXSA9IHZhbDtcbiAgdGhpcy5oZWFkZXJbZmllbGRdID0gdmFsO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogUmVtb3ZlIGhlYWRlciBgZmllbGRgLlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogICAgICByZXEuZ2V0KCcvJylcbiAqICAgICAgICAudW5zZXQoJ1VzZXItQWdlbnQnKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWVsZFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnVuc2V0ID0gZnVuY3Rpb24oZmllbGQpe1xuICBkZWxldGUgdGhpcy5faGVhZGVyW2ZpZWxkLnRvTG93ZXJDYXNlKCldO1xuICBkZWxldGUgdGhpcy5oZWFkZXJbZmllbGRdO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogR2V0IGNhc2UtaW5zZW5zaXRpdmUgaGVhZGVyIGBmaWVsZGAgdmFsdWUuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGZpZWxkXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5nZXRIZWFkZXIgPSBmdW5jdGlvbihmaWVsZCl7XG4gIHJldHVybiB0aGlzLl9oZWFkZXJbZmllbGQudG9Mb3dlckNhc2UoKV07XG59O1xuXG4vKipcbiAqIFNldCBDb250ZW50LVR5cGUgdG8gYHR5cGVgLCBtYXBwaW5nIHZhbHVlcyBmcm9tIGByZXF1ZXN0LnR5cGVzYC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgIHN1cGVyYWdlbnQudHlwZXMueG1sID0gJ2FwcGxpY2F0aW9uL3htbCc7XG4gKlxuICogICAgICByZXF1ZXN0LnBvc3QoJy8nKVxuICogICAgICAgIC50eXBlKCd4bWwnKVxuICogICAgICAgIC5zZW5kKHhtbHN0cmluZylcbiAqICAgICAgICAuZW5kKGNhbGxiYWNrKTtcbiAqXG4gKiAgICAgIHJlcXVlc3QucG9zdCgnLycpXG4gKiAgICAgICAgLnR5cGUoJ2FwcGxpY2F0aW9uL3htbCcpXG4gKiAgICAgICAgLnNlbmQoeG1sc3RyaW5nKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUudHlwZSA9IGZ1bmN0aW9uKHR5cGUpe1xuICB0aGlzLnNldCgnQ29udGVudC1UeXBlJywgcmVxdWVzdC50eXBlc1t0eXBlXSB8fCB0eXBlKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCBBY2NlcHQgdG8gYHR5cGVgLCBtYXBwaW5nIHZhbHVlcyBmcm9tIGByZXF1ZXN0LnR5cGVzYC5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgIHN1cGVyYWdlbnQudHlwZXMuanNvbiA9ICdhcHBsaWNhdGlvbi9qc29uJztcbiAqXG4gKiAgICAgIHJlcXVlc3QuZ2V0KCcvYWdlbnQnKVxuICogICAgICAgIC5hY2NlcHQoJ2pzb24nKVxuICogICAgICAgIC5lbmQoY2FsbGJhY2spO1xuICpcbiAqICAgICAgcmVxdWVzdC5nZXQoJy9hZ2VudCcpXG4gKiAgICAgICAgLmFjY2VwdCgnYXBwbGljYXRpb24vanNvbicpXG4gKiAgICAgICAgLmVuZChjYWxsYmFjayk7XG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGFjY2VwdFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmFjY2VwdCA9IGZ1bmN0aW9uKHR5cGUpe1xuICB0aGlzLnNldCgnQWNjZXB0JywgcmVxdWVzdC50eXBlc1t0eXBlXSB8fCB0eXBlKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldCBBdXRob3JpemF0aW9uIGZpZWxkIHZhbHVlIHdpdGggYHVzZXJgIGFuZCBgcGFzc2AuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVzZXJcbiAqIEBwYXJhbSB7U3RyaW5nfSBwYXNzXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuYXV0aCA9IGZ1bmN0aW9uKHVzZXIsIHBhc3Mpe1xuICB2YXIgc3RyID0gYnRvYSh1c2VyICsgJzonICsgcGFzcyk7XG4gIHRoaXMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0Jhc2ljICcgKyBzdHIpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuKiBBZGQgcXVlcnktc3RyaW5nIGB2YWxgLlxuKlxuKiBFeGFtcGxlczpcbipcbiogICByZXF1ZXN0LmdldCgnL3Nob2VzJylcbiogICAgIC5xdWVyeSgnc2l6ZT0xMCcpXG4qICAgICAucXVlcnkoeyBjb2xvcjogJ2JsdWUnIH0pXG4qXG4qIEBwYXJhbSB7T2JqZWN0fFN0cmluZ30gdmFsXG4qIEByZXR1cm4ge1JlcXVlc3R9IGZvciBjaGFpbmluZ1xuKiBAYXBpIHB1YmxpY1xuKi9cblxuUmVxdWVzdC5wcm90b3R5cGUucXVlcnkgPSBmdW5jdGlvbih2YWwpe1xuICBpZiAoJ3N0cmluZycgIT0gdHlwZW9mIHZhbCkgdmFsID0gc2VyaWFsaXplKHZhbCk7XG4gIGlmICh2YWwpIHRoaXMuX3F1ZXJ5LnB1c2godmFsKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFdyaXRlIHRoZSBmaWVsZCBgbmFtZWAgYW5kIGB2YWxgIGZvciBcIm11bHRpcGFydC9mb3JtLWRhdGFcIlxuICogcmVxdWVzdCBib2RpZXMuXG4gKlxuICogYGBgIGpzXG4gKiByZXF1ZXN0LnBvc3QoJy91cGxvYWQnKVxuICogICAuZmllbGQoJ2ZvbycsICdiYXInKVxuICogICAuZW5kKGNhbGxiYWNrKTtcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcGFyYW0ge1N0cmluZ3xCbG9ifEZpbGV9IHZhbFxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmZpZWxkID0gZnVuY3Rpb24obmFtZSwgdmFsKXtcbiAgaWYgKCF0aGlzLl9mb3JtRGF0YSkgdGhpcy5fZm9ybURhdGEgPSBuZXcgcm9vdC5Gb3JtRGF0YSgpO1xuICB0aGlzLl9mb3JtRGF0YS5hcHBlbmQobmFtZSwgdmFsKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFF1ZXVlIHRoZSBnaXZlbiBgZmlsZWAgYXMgYW4gYXR0YWNobWVudCB0byB0aGUgc3BlY2lmaWVkIGBmaWVsZGAsXG4gKiB3aXRoIG9wdGlvbmFsIGBmaWxlbmFtZWAuXG4gKlxuICogYGBgIGpzXG4gKiByZXF1ZXN0LnBvc3QoJy91cGxvYWQnKVxuICogICAuYXR0YWNoKG5ldyBCbG9iKFsnPGEgaWQ9XCJhXCI+PGIgaWQ9XCJiXCI+aGV5ITwvYj48L2E+J10sIHsgdHlwZTogXCJ0ZXh0L2h0bWxcIn0pKVxuICogICAuZW5kKGNhbGxiYWNrKTtcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWVsZFxuICogQHBhcmFtIHtCbG9ifEZpbGV9IGZpbGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWxlbmFtZVxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmF0dGFjaCA9IGZ1bmN0aW9uKGZpZWxkLCBmaWxlLCBmaWxlbmFtZSl7XG4gIGlmICghdGhpcy5fZm9ybURhdGEpIHRoaXMuX2Zvcm1EYXRhID0gbmV3IHJvb3QuRm9ybURhdGEoKTtcbiAgdGhpcy5fZm9ybURhdGEuYXBwZW5kKGZpZWxkLCBmaWxlLCBmaWxlbmFtZSk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZW5kIGBkYXRhYCwgZGVmYXVsdGluZyB0aGUgYC50eXBlKClgIHRvIFwianNvblwiIHdoZW5cbiAqIGFuIG9iamVjdCBpcyBnaXZlbi5cbiAqXG4gKiBFeGFtcGxlczpcbiAqXG4gKiAgICAgICAvLyBxdWVyeXN0cmluZ1xuICogICAgICAgcmVxdWVzdC5nZXQoJy9zZWFyY2gnKVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIG11bHRpcGxlIGRhdGEgXCJ3cml0ZXNcIlxuICogICAgICAgcmVxdWVzdC5nZXQoJy9zZWFyY2gnKVxuICogICAgICAgICAuc2VuZCh7IHNlYXJjaDogJ3F1ZXJ5JyB9KVxuICogICAgICAgICAuc2VuZCh7IHJhbmdlOiAnMS4uNScgfSlcbiAqICAgICAgICAgLnNlbmQoeyBvcmRlcjogJ2Rlc2MnIH0pXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogICAgICAgLy8gbWFudWFsIGpzb25cbiAqICAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICogICAgICAgICAudHlwZSgnanNvbicpXG4gKiAgICAgICAgIC5zZW5kKCd7XCJuYW1lXCI6XCJ0alwifSlcbiAqICAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiAgICAgICAvLyBhdXRvIGpzb25cbiAqICAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICogICAgICAgICAuc2VuZCh7IG5hbWU6ICd0aicgfSlcbiAqICAgICAgICAgLmVuZChjYWxsYmFjaylcbiAqXG4gKiAgICAgICAvLyBtYW51YWwgeC13d3ctZm9ybS11cmxlbmNvZGVkXG4gKiAgICAgICByZXF1ZXN0LnBvc3QoJy91c2VyJylcbiAqICAgICAgICAgLnR5cGUoJ2Zvcm0nKVxuICogICAgICAgICAuc2VuZCgnbmFtZT10aicpXG4gKiAgICAgICAgIC5lbmQoY2FsbGJhY2spXG4gKlxuICogICAgICAgLy8gYXV0byB4LXd3dy1mb3JtLXVybGVuY29kZWRcbiAqICAgICAgIHJlcXVlc3QucG9zdCgnL3VzZXInKVxuICogICAgICAgICAudHlwZSgnZm9ybScpXG4gKiAgICAgICAgIC5zZW5kKHsgbmFtZTogJ3RqJyB9KVxuICogICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqICAgICAgIC8vIGRlZmF1bHRzIHRvIHgtd3d3LWZvcm0tdXJsZW5jb2RlZFxuICAqICAgICAgcmVxdWVzdC5wb3N0KCcvdXNlcicpXG4gICogICAgICAgIC5zZW5kKCduYW1lPXRvYmknKVxuICAqICAgICAgICAuc2VuZCgnc3BlY2llcz1mZXJyZXQnKVxuICAqICAgICAgICAuZW5kKGNhbGxiYWNrKVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfE9iamVjdH0gZGF0YVxuICogQHJldHVybiB7UmVxdWVzdH0gZm9yIGNoYWluaW5nXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLnNlbmQgPSBmdW5jdGlvbihkYXRhKXtcbiAgdmFyIG9iaiA9IGlzT2JqZWN0KGRhdGEpO1xuICB2YXIgdHlwZSA9IHRoaXMuZ2V0SGVhZGVyKCdDb250ZW50LVR5cGUnKTtcblxuICAvLyBtZXJnZVxuICBpZiAob2JqICYmIGlzT2JqZWN0KHRoaXMuX2RhdGEpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIGRhdGEpIHtcbiAgICAgIHRoaXMuX2RhdGFba2V5XSA9IGRhdGFba2V5XTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoJ3N0cmluZycgPT0gdHlwZW9mIGRhdGEpIHtcbiAgICBpZiAoIXR5cGUpIHRoaXMudHlwZSgnZm9ybScpO1xuICAgIHR5cGUgPSB0aGlzLmdldEhlYWRlcignQ29udGVudC1UeXBlJyk7XG4gICAgaWYgKCdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnID09IHR5cGUpIHtcbiAgICAgIHRoaXMuX2RhdGEgPSB0aGlzLl9kYXRhXG4gICAgICAgID8gdGhpcy5fZGF0YSArICcmJyArIGRhdGFcbiAgICAgICAgOiBkYXRhO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kYXRhID0gKHRoaXMuX2RhdGEgfHwgJycpICsgZGF0YTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5fZGF0YSA9IGRhdGE7XG4gIH1cblxuICBpZiAoIW9iaiB8fCBpc0hvc3QoZGF0YSkpIHJldHVybiB0aGlzO1xuICBpZiAoIXR5cGUpIHRoaXMudHlwZSgnanNvbicpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogSW52b2tlIHRoZSBjYWxsYmFjayB3aXRoIGBlcnJgIGFuZCBgcmVzYFxuICogYW5kIGhhbmRsZSBhcml0eSBjaGVjay5cbiAqXG4gKiBAcGFyYW0ge0Vycm9yfSBlcnJcbiAqIEBwYXJhbSB7UmVzcG9uc2V9IHJlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuY2FsbGJhY2sgPSBmdW5jdGlvbihlcnIsIHJlcyl7XG4gIHZhciBmbiA9IHRoaXMuX2NhbGxiYWNrO1xuICB0aGlzLmNsZWFyVGltZW91dCgpO1xuICBmbihlcnIsIHJlcyk7XG59O1xuXG4vKipcbiAqIEludm9rZSBjYWxsYmFjayB3aXRoIHgtZG9tYWluIGVycm9yLlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmNyb3NzRG9tYWluRXJyb3IgPSBmdW5jdGlvbigpe1xuICB2YXIgZXJyID0gbmV3IEVycm9yKCdPcmlnaW4gaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJyk7XG4gIGVyci5jcm9zc0RvbWFpbiA9IHRydWU7XG4gIHRoaXMuY2FsbGJhY2soZXJyKTtcbn07XG5cbi8qKlxuICogSW52b2tlIGNhbGxiYWNrIHdpdGggdGltZW91dCBlcnJvci5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS50aW1lb3V0RXJyb3IgPSBmdW5jdGlvbigpe1xuICB2YXIgdGltZW91dCA9IHRoaXMuX3RpbWVvdXQ7XG4gIHZhciBlcnIgPSBuZXcgRXJyb3IoJ3RpbWVvdXQgb2YgJyArIHRpbWVvdXQgKyAnbXMgZXhjZWVkZWQnKTtcbiAgZXJyLnRpbWVvdXQgPSB0aW1lb3V0O1xuICB0aGlzLmNhbGxiYWNrKGVycik7XG59O1xuXG4vKipcbiAqIEVuYWJsZSB0cmFuc21pc3Npb24gb2YgY29va2llcyB3aXRoIHgtZG9tYWluIHJlcXVlc3RzLlxuICpcbiAqIE5vdGUgdGhhdCBmb3IgdGhpcyB0byB3b3JrIHRoZSBvcmlnaW4gbXVzdCBub3QgYmVcbiAqIHVzaW5nIFwiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luXCIgd2l0aCBhIHdpbGRjYXJkLFxuICogYW5kIGFsc28gbXVzdCBzZXQgXCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFsc1wiXG4gKiB0byBcInRydWVcIi5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLndpdGhDcmVkZW50aWFscyA9IGZ1bmN0aW9uKCl7XG4gIHRoaXMuX3dpdGhDcmVkZW50aWFscyA9IHRydWU7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBJbml0aWF0ZSByZXF1ZXN0LCBpbnZva2luZyBjYWxsYmFjayBgZm4ocmVzKWBcbiAqIHdpdGggYW4gaW5zdGFuY2VvZiBgUmVzcG9uc2VgLlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fSBmb3IgY2hhaW5pbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oZm4pe1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHZhciB4aHIgPSB0aGlzLnhociA9IHJlcXVlc3QuZ2V0WEhSKCk7XG4gIHZhciBxdWVyeSA9IHRoaXMuX3F1ZXJ5LmpvaW4oJyYnKTtcbiAgdmFyIHRpbWVvdXQgPSB0aGlzLl90aW1lb3V0O1xuICB2YXIgZGF0YSA9IHRoaXMuX2Zvcm1EYXRhIHx8IHRoaXMuX2RhdGE7XG5cbiAgLy8gc3RvcmUgY2FsbGJhY2tcbiAgdGhpcy5fY2FsbGJhY2sgPSBmbiB8fCBub29wO1xuXG4gIC8vIHN0YXRlIGNoYW5nZVxuICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKXtcbiAgICBpZiAoNCAhPSB4aHIucmVhZHlTdGF0ZSkgcmV0dXJuO1xuXG4gICAgLy8gSW4gSUU5LCByZWFkcyB0byBhbnkgcHJvcGVydHkgKGUuZy4gc3RhdHVzKSBvZmYgb2YgYW4gYWJvcnRlZCBYSFIgd2lsbFxuICAgIC8vIHJlc3VsdCBpbiB0aGUgZXJyb3IgXCJDb3VsZCBub3QgY29tcGxldGUgdGhlIG9wZXJhdGlvbiBkdWUgdG8gZXJyb3IgYzAwYzAyM2ZcIlxuICAgIHZhciBzdGF0dXM7XG4gICAgdHJ5IHsgc3RhdHVzID0geGhyLnN0YXR1cyB9IGNhdGNoKGUpIHsgc3RhdHVzID0gMDsgfVxuXG4gICAgaWYgKDAgPT0gc3RhdHVzKSB7XG4gICAgICBpZiAoc2VsZi50aW1lZG91dCkgcmV0dXJuIHNlbGYudGltZW91dEVycm9yKCk7XG4gICAgICBpZiAoc2VsZi5hYm9ydGVkKSByZXR1cm47XG4gICAgICByZXR1cm4gc2VsZi5jcm9zc0RvbWFpbkVycm9yKCk7XG4gICAgfVxuICAgIHNlbGYuZW1pdCgnZW5kJyk7XG4gIH07XG5cbiAgLy8gcHJvZ3Jlc3NcbiAgdmFyIGhhbmRsZVByb2dyZXNzID0gZnVuY3Rpb24oZSl7XG4gICAgaWYgKGUudG90YWwgPiAwKSB7XG4gICAgICBlLnBlcmNlbnQgPSBlLmxvYWRlZCAvIGUudG90YWwgKiAxMDA7XG4gICAgfVxuICAgIHNlbGYuZW1pdCgncHJvZ3Jlc3MnLCBlKTtcbiAgfTtcbiAgaWYgKHRoaXMuaGFzTGlzdGVuZXJzKCdwcm9ncmVzcycpKSB7XG4gICAgeGhyLm9ucHJvZ3Jlc3MgPSBoYW5kbGVQcm9ncmVzcztcbiAgfVxuICB0cnkge1xuICAgIGlmICh4aHIudXBsb2FkICYmIHRoaXMuaGFzTGlzdGVuZXJzKCdwcm9ncmVzcycpKSB7XG4gICAgICB4aHIudXBsb2FkLm9ucHJvZ3Jlc3MgPSBoYW5kbGVQcm9ncmVzcztcbiAgICB9XG4gIH0gY2F0Y2goZSkge1xuICAgIC8vIEFjY2Vzc2luZyB4aHIudXBsb2FkIGZhaWxzIGluIElFIGZyb20gYSB3ZWIgd29ya2VyLCBzbyBqdXN0IHByZXRlbmQgaXQgZG9lc24ndCBleGlzdC5cbiAgICAvLyBSZXBvcnRlZCBoZXJlOlxuICAgIC8vIGh0dHBzOi8vY29ubmVjdC5taWNyb3NvZnQuY29tL0lFL2ZlZWRiYWNrL2RldGFpbHMvODM3MjQ1L3htbGh0dHByZXF1ZXN0LXVwbG9hZC10aHJvd3MtaW52YWxpZC1hcmd1bWVudC13aGVuLXVzZWQtZnJvbS13ZWItd29ya2VyLWNvbnRleHRcbiAgfVxuXG4gIC8vIHRpbWVvdXRcbiAgaWYgKHRpbWVvdXQgJiYgIXRoaXMuX3RpbWVyKSB7XG4gICAgdGhpcy5fdGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG4gICAgICBzZWxmLnRpbWVkb3V0ID0gdHJ1ZTtcbiAgICAgIHNlbGYuYWJvcnQoKTtcbiAgICB9LCB0aW1lb3V0KTtcbiAgfVxuXG4gIC8vIHF1ZXJ5c3RyaW5nXG4gIGlmIChxdWVyeSkge1xuICAgIHF1ZXJ5ID0gcmVxdWVzdC5zZXJpYWxpemVPYmplY3QocXVlcnkpO1xuICAgIHRoaXMudXJsICs9IH50aGlzLnVybC5pbmRleE9mKCc/JylcbiAgICAgID8gJyYnICsgcXVlcnlcbiAgICAgIDogJz8nICsgcXVlcnk7XG4gIH1cblxuICAvLyBpbml0aWF0ZSByZXF1ZXN0XG4gIHhoci5vcGVuKHRoaXMubWV0aG9kLCB0aGlzLnVybCwgdHJ1ZSk7XG5cbiAgLy8gQ09SU1xuICBpZiAodGhpcy5fd2l0aENyZWRlbnRpYWxzKSB4aHIud2l0aENyZWRlbnRpYWxzID0gdHJ1ZTtcblxuICAvLyBib2R5XG4gIGlmICgnR0VUJyAhPSB0aGlzLm1ldGhvZCAmJiAnSEVBRCcgIT0gdGhpcy5tZXRob2QgJiYgJ3N0cmluZycgIT0gdHlwZW9mIGRhdGEgJiYgIWlzSG9zdChkYXRhKSkge1xuICAgIC8vIHNlcmlhbGl6ZSBzdHVmZlxuICAgIHZhciBzZXJpYWxpemUgPSByZXF1ZXN0LnNlcmlhbGl6ZVt0aGlzLmdldEhlYWRlcignQ29udGVudC1UeXBlJyldO1xuICAgIGlmIChzZXJpYWxpemUpIGRhdGEgPSBzZXJpYWxpemUoZGF0YSk7XG4gIH1cblxuICAvLyBzZXQgaGVhZGVyIGZpZWxkc1xuICBmb3IgKHZhciBmaWVsZCBpbiB0aGlzLmhlYWRlcikge1xuICAgIGlmIChudWxsID09IHRoaXMuaGVhZGVyW2ZpZWxkXSkgY29udGludWU7XG4gICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoZmllbGQsIHRoaXMuaGVhZGVyW2ZpZWxkXSk7XG4gIH1cblxuICAvLyBzZW5kIHN0dWZmXG4gIHRoaXMuZW1pdCgncmVxdWVzdCcsIHRoaXMpO1xuICB4aHIuc2VuZChkYXRhKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIEV4cG9zZSBgUmVxdWVzdGAuXG4gKi9cblxucmVxdWVzdC5SZXF1ZXN0ID0gUmVxdWVzdDtcblxuLyoqXG4gKiBJc3N1ZSBhIHJlcXVlc3Q6XG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogICAgcmVxdWVzdCgnR0VUJywgJy91c2VycycpLmVuZChjYWxsYmFjaylcbiAqICAgIHJlcXVlc3QoJy91c2VycycpLmVuZChjYWxsYmFjaylcbiAqICAgIHJlcXVlc3QoJy91c2VycycsIGNhbGxiYWNrKVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBtZXRob2RcbiAqIEBwYXJhbSB7U3RyaW5nfEZ1bmN0aW9ufSB1cmwgb3IgY2FsbGJhY2tcbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIHJlcXVlc3QobWV0aG9kLCB1cmwpIHtcbiAgLy8gY2FsbGJhY2tcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIHVybCkge1xuICAgIHJldHVybiBuZXcgUmVxdWVzdCgnR0VUJywgbWV0aG9kKS5lbmQodXJsKTtcbiAgfVxuXG4gIC8vIHVybCBmaXJzdFxuICBpZiAoMSA9PSBhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG5ldyBSZXF1ZXN0KCdHRVQnLCBtZXRob2QpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXF1ZXN0KG1ldGhvZCwgdXJsKTtcbn1cblxuLyoqXG4gKiBHRVQgYHVybGAgd2l0aCBvcHRpb25hbCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZHxGdW5jdGlvbn0gZGF0YSBvciBmblxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QuZ2V0ID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbil7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdHRVQnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgZm4gPSBkYXRhLCBkYXRhID0gbnVsbDtcbiAgaWYgKGRhdGEpIHJlcS5xdWVyeShkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogSEVBRCBgdXJsYCB3aXRoIG9wdGlvbmFsIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfEZ1bmN0aW9ufSBkYXRhIG9yIGZuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5oZWFkID0gZnVuY3Rpb24odXJsLCBkYXRhLCBmbil7XG4gIHZhciByZXEgPSByZXF1ZXN0KCdIRUFEJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIGZuID0gZGF0YSwgZGF0YSA9IG51bGw7XG4gIGlmIChkYXRhKSByZXEuc2VuZChkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogREVMRVRFIGB1cmxgIHdpdGggb3B0aW9uYWwgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0LmRlbCA9IGZ1bmN0aW9uKHVybCwgZm4pe1xuICB2YXIgcmVxID0gcmVxdWVzdCgnREVMRVRFJywgdXJsKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogUEFUQ0ggYHVybGAgd2l0aCBvcHRpb25hbCBgZGF0YWAgYW5kIGNhbGxiYWNrIGBmbihyZXMpYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge01peGVkfSBkYXRhXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7UmVxdWVzdH1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxucmVxdWVzdC5wYXRjaCA9IGZ1bmN0aW9uKHVybCwgZGF0YSwgZm4pe1xuICB2YXIgcmVxID0gcmVxdWVzdCgnUEFUQ0gnLCB1cmwpO1xuICBpZiAoJ2Z1bmN0aW9uJyA9PSB0eXBlb2YgZGF0YSkgZm4gPSBkYXRhLCBkYXRhID0gbnVsbDtcbiAgaWYgKGRhdGEpIHJlcS5zZW5kKGRhdGEpO1xuICBpZiAoZm4pIHJlcS5lbmQoZm4pO1xuICByZXR1cm4gcmVxO1xufTtcblxuLyoqXG4gKiBQT1NUIGB1cmxgIHdpdGggb3B0aW9uYWwgYGRhdGFgIGFuZCBjYWxsYmFjayBgZm4ocmVzKWAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHVybFxuICogQHBhcmFtIHtNaXhlZH0gZGF0YVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge1JlcXVlc3R9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbnJlcXVlc3QucG9zdCA9IGZ1bmN0aW9uKHVybCwgZGF0YSwgZm4pe1xuICB2YXIgcmVxID0gcmVxdWVzdCgnUE9TVCcsIHVybCk7XG4gIGlmICgnZnVuY3Rpb24nID09IHR5cGVvZiBkYXRhKSBmbiA9IGRhdGEsIGRhdGEgPSBudWxsO1xuICBpZiAoZGF0YSkgcmVxLnNlbmQoZGF0YSk7XG4gIGlmIChmbikgcmVxLmVuZChmbik7XG4gIHJldHVybiByZXE7XG59O1xuXG4vKipcbiAqIFBVVCBgdXJsYCB3aXRoIG9wdGlvbmFsIGBkYXRhYCBhbmQgY2FsbGJhY2sgYGZuKHJlcylgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmxcbiAqIEBwYXJhbSB7TWl4ZWR8RnVuY3Rpb259IGRhdGEgb3IgZm5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtSZXF1ZXN0fVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5yZXF1ZXN0LnB1dCA9IGZ1bmN0aW9uKHVybCwgZGF0YSwgZm4pe1xuICB2YXIgcmVxID0gcmVxdWVzdCgnUFVUJywgdXJsKTtcbiAgaWYgKCdmdW5jdGlvbicgPT0gdHlwZW9mIGRhdGEpIGZuID0gZGF0YSwgZGF0YSA9IG51bGw7XG4gIGlmIChkYXRhKSByZXEuc2VuZChkYXRhKTtcbiAgaWYgKGZuKSByZXEuZW5kKGZuKTtcbiAgcmV0dXJuIHJlcTtcbn07XG5cbi8qKlxuICogRXhwb3NlIGByZXF1ZXN0YC5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVlc3Q7XG4iLCJcbi8qKlxuICogRXhwb3NlIGBFbWl0dGVyYC5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IEVtaXR0ZXI7XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhIG5ldyBgRW1pdHRlcmAuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBFbWl0dGVyKG9iaikge1xuICBpZiAob2JqKSByZXR1cm4gbWl4aW4ob2JqKTtcbn07XG5cbi8qKlxuICogTWl4aW4gdGhlIGVtaXR0ZXIgcHJvcGVydGllcy5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBtaXhpbihvYmopIHtcbiAgZm9yICh2YXIga2V5IGluIEVtaXR0ZXIucHJvdG90eXBlKSB7XG4gICAgb2JqW2tleV0gPSBFbWl0dGVyLnByb3RvdHlwZVtrZXldO1xuICB9XG4gIHJldHVybiBvYmo7XG59XG5cbi8qKlxuICogTGlzdGVuIG9uIHRoZSBnaXZlbiBgZXZlbnRgIHdpdGggYGZuYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcmV0dXJuIHtFbWl0dGVyfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5FbWl0dGVyLnByb3RvdHlwZS5vbiA9XG5FbWl0dGVyLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24oZXZlbnQsIGZuKXtcbiAgdGhpcy5fY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzIHx8IHt9O1xuICAodGhpcy5fY2FsbGJhY2tzW2V2ZW50XSA9IHRoaXMuX2NhbGxiYWNrc1tldmVudF0gfHwgW10pXG4gICAgLnB1c2goZm4pO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogQWRkcyBhbiBgZXZlbnRgIGxpc3RlbmVyIHRoYXQgd2lsbCBiZSBpbnZva2VkIGEgc2luZ2xlXG4gKiB0aW1lIHRoZW4gYXV0b21hdGljYWxseSByZW1vdmVkLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqIEByZXR1cm4ge0VtaXR0ZXJ9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkVtaXR0ZXIucHJvdG90eXBlLm9uY2UgPSBmdW5jdGlvbihldmVudCwgZm4pe1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHRoaXMuX2NhbGxiYWNrcyA9IHRoaXMuX2NhbGxiYWNrcyB8fCB7fTtcblxuICBmdW5jdGlvbiBvbigpIHtcbiAgICBzZWxmLm9mZihldmVudCwgb24pO1xuICAgIGZuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cblxuICBvbi5mbiA9IGZuO1xuICB0aGlzLm9uKGV2ZW50LCBvbik7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdpdmVuIGNhbGxiYWNrIGZvciBgZXZlbnRgIG9yIGFsbFxuICogcmVnaXN0ZXJlZCBjYWxsYmFja3MuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50XG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxuICogQHJldHVybiB7RW1pdHRlcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuRW1pdHRlci5wcm90b3R5cGUub2ZmID1cbkVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyID1cbkVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycyA9XG5FbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyID0gZnVuY3Rpb24oZXZlbnQsIGZuKXtcbiAgdGhpcy5fY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzIHx8IHt9O1xuXG4gIC8vIGFsbFxuICBpZiAoMCA9PSBhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgdGhpcy5fY2FsbGJhY2tzID0ge307XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvLyBzcGVjaWZpYyBldmVudFxuICB2YXIgY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzW2V2ZW50XTtcbiAgaWYgKCFjYWxsYmFja3MpIHJldHVybiB0aGlzO1xuXG4gIC8vIHJlbW92ZSBhbGwgaGFuZGxlcnNcbiAgaWYgKDEgPT0gYXJndW1lbnRzLmxlbmd0aCkge1xuICAgIGRlbGV0ZSB0aGlzLl9jYWxsYmFja3NbZXZlbnRdO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gcmVtb3ZlIHNwZWNpZmljIGhhbmRsZXJcbiAgdmFyIGNiO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGNhbGxiYWNrcy5sZW5ndGg7IGkrKykge1xuICAgIGNiID0gY2FsbGJhY2tzW2ldO1xuICAgIGlmIChjYiA9PT0gZm4gfHwgY2IuZm4gPT09IGZuKSB7XG4gICAgICBjYWxsYmFja3Muc3BsaWNlKGksIDEpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBFbWl0IGBldmVudGAgd2l0aCB0aGUgZ2l2ZW4gYXJncy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcbiAqIEBwYXJhbSB7TWl4ZWR9IC4uLlxuICogQHJldHVybiB7RW1pdHRlcn1cbiAqL1xuXG5FbWl0dGVyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24oZXZlbnQpe1xuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XG4gIHZhciBhcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDEpXG4gICAgLCBjYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3NbZXZlbnRdO1xuXG4gIGlmIChjYWxsYmFja3MpIHtcbiAgICBjYWxsYmFja3MgPSBjYWxsYmFja3Muc2xpY2UoMCk7XG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGNhbGxiYWNrcy5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xuICAgICAgY2FsbGJhY2tzW2ldLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gYXJyYXkgb2YgY2FsbGJhY2tzIGZvciBgZXZlbnRgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxuICogQHJldHVybiB7QXJyYXl9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uKGV2ZW50KXtcbiAgdGhpcy5fY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzIHx8IHt9O1xuICByZXR1cm4gdGhpcy5fY2FsbGJhY2tzW2V2ZW50XSB8fCBbXTtcbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhpcyBlbWl0dGVyIGhhcyBgZXZlbnRgIGhhbmRsZXJzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxuICogQHJldHVybiB7Qm9vbGVhbn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuRW1pdHRlci5wcm90b3R5cGUuaGFzTGlzdGVuZXJzID0gZnVuY3Rpb24oZXZlbnQpe1xuICByZXR1cm4gISEgdGhpcy5saXN0ZW5lcnMoZXZlbnQpLmxlbmd0aDtcbn07XG4iLCJcbi8qKlxuICogUmVkdWNlIGBhcnJgIHdpdGggYGZuYC5cbiAqXG4gKiBAcGFyYW0ge0FycmF5fSBhcnJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXG4gKiBAcGFyYW0ge01peGVkfSBpbml0aWFsXG4gKlxuICogVE9ETzogY29tYmF0aWJsZSBlcnJvciBoYW5kbGluZz9cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGFyciwgZm4sIGluaXRpYWwpeyAgXG4gIHZhciBpZHggPSAwO1xuICB2YXIgbGVuID0gYXJyLmxlbmd0aDtcbiAgdmFyIGN1cnIgPSBhcmd1bWVudHMubGVuZ3RoID09IDNcbiAgICA/IGluaXRpYWxcbiAgICA6IGFycltpZHgrK107XG5cbiAgd2hpbGUgKGlkeCA8IGxlbikge1xuICAgIGN1cnIgPSBmbi5jYWxsKG51bGwsIGN1cnIsIGFycltpZHhdLCArK2lkeCwgYXJyKTtcbiAgfVxuICBcbiAgcmV0dXJuIGN1cnI7XG59OyJdfQ== + +'use strict'; + +SwaggerUi.Views.ApiKeyButton = Backbone.View.extend({ // TODO: append this to global SwaggerUi + + events:{ + 'click #apikey_button' : 'toggleApiKeyContainer', + 'click #apply_api_key' : 'applyApiKey' + }, + + initialize: function(opts){ + this.options = opts || {}; + this.router = this.options.router; + }, + + render: function(){ + var template = this.template(); + $(this.el).html(template(this.model)); + + return this; + }, + + + applyApiKey: function(){ + var keyAuth = new SwaggerClient.ApiKeyAuthorization( + this.model.name, + $('#input_apiKey_entry').val(), + this.model.in + ); + this.router.api.clientAuthorizations.add(this.model.name, keyAuth); + this.router.load(); + $('#apikey_container').show(); + }, + + toggleApiKeyContainer: function(){ + if ($('#apikey_container').length) { + + var elem = $('#apikey_container').first(); + + if (elem.is(':visible')){ + elem.hide(); + } else { + + // hide others + $('.auth_container').hide(); + elem.show(); + } + } + }, + + template: function(){ + return Handlebars.templates.apikey_button_view; + } + +}); +'use strict'; + +SwaggerUi.Views.BasicAuthButton = Backbone.View.extend({ + + + initialize: function (opts) { + this.options = opts || {}; + this.router = this.options.router; + }, + + render: function(){ + var template = this.template(); + $(this.el).html(template(this.model)); + + return this; + }, + + events: { + 'click #basic_auth_button' : 'togglePasswordContainer', + 'click #apply_basic_auth' : 'applyPassword' + }, + + applyPassword: function(){ + var username = $('.input_username').val(); + var password = $('.input_password').val(); + var basicAuth = new SwaggerClient.PasswordAuthorization('basic', username, password); + this.router.api.clientAuthorizations.add(this.model.type, basicAuth); + this.router.load(); + $('#basic_auth_container').hide(); + }, + + togglePasswordContainer: function(){ + if ($('#basic_auth_container').length) { + var elem = $('#basic_auth_container').show(); + if (elem.is(':visible')){ + elem.slideUp(); + } else { + // hide others + $('.auth_container').hide(); + elem.show(); + } + } + }, + + template: function(){ + return Handlebars.templates.basic_auth_button_view; + } + +}); +'use strict'; + +SwaggerUi.Views.ContentTypeView = Backbone.View.extend({ + initialize: function() {}, + + render: function(){ + this.model.contentTypeId = 'ct' + Math.random(); + $(this.el).html(Handlebars.templates.content_type(this.model)); + return this; + } +}); +'use strict'; + +SwaggerUi.Views.HeaderView = Backbone.View.extend({ + events: { + 'click #show-pet-store-icon' : 'showPetStore', + 'click #explore' : 'showCustom', + 'keyup #input_baseUrl' : 'showCustomOnKeyup', + 'keyup #input_apiKey' : 'showCustomOnKeyup' + }, + + initialize: function(){}, + + showPetStore: function(){ + this.trigger('update-swagger-ui', { + url:'http://petstore.swagger.io/v2/swagger.json' + }); + }, + + showCustomOnKeyup: function(e){ + if (e.keyCode === 13) { + this.showCustom(); + } + }, + + showCustom: function(e){ + if (e) { + e.preventDefault(); + } + + this.trigger('update-swagger-ui', { + url: $('#input_baseUrl').val(), + apiKey: $('#input_apiKey').val() + }); + }, + + update: function(url, apiKey, trigger){ + if (trigger === undefined) { + trigger = false; + } + + $('#input_baseUrl').val(url); + + //$('#input_apiKey').val(apiKey); + if (trigger) { + this.trigger('update-swagger-ui', {url:url}); + } + } +}); + +'use strict'; + +SwaggerUi.Views.MainView = Backbone.View.extend({ + apisSorter : { + alpha : function(a,b){ return a.name.localeCompare(b.name); } + }, + operationsSorters : { + alpha : function(a,b){ return a.path.localeCompare(b.path); }, + method : function(a,b){ return a.method.localeCompare(b.method); } + }, + initialize: function(opts){ + var sorterOption, sorterFn, key, value; + opts = opts || {}; + + this.router = opts.router; + + // Sort APIs + if (opts.swaggerOptions.apisSorter) { + sorterOption = opts.swaggerOptions.apisSorter; + if (_.isFunction(sorterOption)) { + sorterFn = sorterOption; + } else { + sorterFn = this.apisSorter[sorterOption]; + } + if (_.isFunction(sorterFn)) { + this.model.apisArray.sort(sorterFn); + } + } + // Sort operations of each API + if (opts.swaggerOptions.operationsSorter) { + sorterOption = opts.swaggerOptions.operationsSorter; + if (_.isFunction(sorterOption)) { + sorterFn = sorterOption; + } else { + sorterFn = this.operationsSorters[sorterOption]; + } + if (_.isFunction(sorterFn)) { + for (key in this.model.apisArray) { + this.model.apisArray[key].operationsArray.sort(sorterFn); + } + } + } + + // set up the UI for input + this.model.auths = []; + + for (key in this.model.securityDefinitions) { + value = this.model.securityDefinitions[key]; + + this.model.auths.push({ + name: key, + type: value.type, + value: value + }); + } + + if ('validatorUrl' in opts.swaggerOptions) { + // Validator URL specified explicitly + this.model.validatorUrl = opts.swaggerOptions.validatorUrl; + } else if (this.model.url.indexOf('localhost') > 0) { + // Localhost override + this.model.validatorUrl = null; + } else { + // Default validator + if(window.location.protocol === 'https:') { + this.model.validatorUrl = 'https://online.swagger.io/validator'; + } + else { + this.model.validatorUrl = 'http://online.swagger.io/validator'; + } + } + }, + + render: function(){ + if (this.model.securityDefinitions) { + for (var name in this.model.securityDefinitions) { + var auth = this.model.securityDefinitions[name]; + var button; + + if (auth.type === 'apiKey' && $('#apikey_button').length === 0) { + button = new SwaggerUi.Views.ApiKeyButton({model: auth, router: this.router}).render().el; + $('.auth_main_container').append(button); + } + + if (auth.type === 'basicAuth' && $('#basic_auth_button').length === 0) { + button = new SwaggerUi.Views.BasicAuthButton({model: auth, router: this.router}).render().el; + $('.auth_main_container').append(button); + } + } + } + + // Render the outer container for resources + $(this.el).html(Handlebars.templates.main(this.model)); + + // Render each resource + + var resources = {}; + var counter = 0; + for (var i = 0; i < this.model.apisArray.length; i++) { + var resource = this.model.apisArray[i]; + var id = resource.name; + while (typeof resources[id] !== 'undefined') { + id = id + '_' + counter; + counter += 1; + } + resource.id = id; + resources[id] = resource; + this.addResource(resource, this.model.auths); + } + + $('.propWrap').hover(function onHover(){ + $('.optionsWrapper', $(this)).show(); + }, function offhover(){ + $('.optionsWrapper', $(this)).hide(); + }); + return this; + }, + + addResource: function(resource, auths){ + // Render a resource and add it to resources li + resource.id = resource.id.replace(/\s/g, '_'); + var resourceView = new SwaggerUi.Views.ResourceView({ + model: resource, + router: this.router, + tagName: 'li', + id: 'resource_' + resource.id, + className: 'resource', + auths: auths, + swaggerOptions: this.options.swaggerOptions + }); + $('#resources', this.el).append(resourceView.render().el); + }, + + clear: function(){ + $(this.el).html(''); + } +}); + +'use strict'; + +SwaggerUi.Views.OperationView = Backbone.View.extend({ + invocationUrl: null, + + events: { + 'submit .sandbox' : 'submitOperation', + 'click .submit' : 'submitOperation', + 'click .response_hider' : 'hideResponse', + 'click .toggleOperation' : 'toggleOperationContent', + 'mouseenter .api-ic' : 'mouseEnter', + 'dblclick .curl' : 'selectText', + }, + + initialize: function(opts) { + opts = opts || {}; + this.router = opts.router; + this.auths = opts.auths; + this.parentId = this.model.parentId; + this.nickname = this.model.nickname; + this.model.encodedParentId = encodeURIComponent(this.parentId); + return this; + }, + + selectText: function(event) { + var doc = document, + text = event.target.firstChild, + range, + selection; + if (doc.body.createTextRange) { + range = document.body.createTextRange(); + range.moveToElementText(text); + range.select(); + } else if (window.getSelection) { + selection = window.getSelection(); + range = document.createRange(); + range.selectNodeContents(text); + selection.removeAllRanges(); + selection.addRange(range); + } + }, + + mouseEnter: function(e) { + var elem = $(this.el).find('.content'); + var x = e.pageX; + var y = e.pageY; + var scX = $(window).scrollLeft(); + var scY = $(window).scrollTop(); + var scMaxX = scX + $(window).width(); + var scMaxY = scY + $(window).height(); + var wd = elem.width(); + var hgh = elem.height(); + + if (x + wd > scMaxX) { + x = scMaxX - wd; + } + + if (x < scX) { + x = scX; + } + + if (y + hgh > scMaxY) { + y = scMaxY - hgh; + } + + if (y < scY) { + y = scY; + } + + var pos = {}; + pos.top = y; + pos.left = x; + elem.css(pos); + }, + + // Note: copied from CoffeeScript compiled file + // TODO: redactor + render: function() { + var a, auth, auths, code, contentTypeModel, isMethodSubmissionSupported, k, key, l, len, len1, len2, len3, len4, m, modelAuths, n, o, p, param, q, ref, ref1, ref2, ref3, ref4, ref5, responseContentTypeView, responseSignatureView, schema, schemaObj, scopeIndex, signatureModel, statusCode, successResponse, type, v, value; + isMethodSubmissionSupported = jQuery.inArray(this.model.method, this.model.supportedSubmitMethods()) >= 0; + if (!isMethodSubmissionSupported) { + this.model.isReadOnly = true; + } + this.model.description = this.model.description || this.model.notes; + this.model.oauth = null; + modelAuths = this.model.authorizations || this.model.security; + if (modelAuths) { + if (Array.isArray(modelAuths)) { + for (l = 0, len = modelAuths.length; l < len; l++) { + auths = modelAuths[l]; + for (key in auths) { + for (a in this.auths) { + auth = this.auths[a]; + if (key === auth.name) { + if (auth.type === 'oauth2') { + this.model.oauth = {}; + this.model.oauth.scopes = []; + ref1 = auth.value.scopes; + for (k in ref1) { + v = ref1[k]; + scopeIndex = auths[key].indexOf(k); + if (scopeIndex >= 0) { + o = { + scope: k, + description: v + }; + this.model.oauth.scopes.push(o); + } + } + } + } + } + } + } + } else { + for (k in modelAuths) { + v = modelAuths[k]; + if (k === 'oauth2') { + if (this.model.oauth === null) { + this.model.oauth = {}; + } + if (this.model.oauth.scopes === void 0) { + this.model.oauth.scopes = []; + } + for (m = 0, len1 = v.length; m < len1; m++) { + o = v[m]; + this.model.oauth.scopes.push(o); + } + } + } + } + } + if (typeof this.model.responses !== 'undefined') { + this.model.responseMessages = []; + ref2 = this.model.responses; + for (code in ref2) { + value = ref2[code]; + schema = null; + schemaObj = this.model.responses[code].schema; + if (schemaObj && schemaObj.$ref) { + schema = schemaObj.$ref; + if (schema.indexOf('#/definitions/') !== -1) { + schema = schema.replace(/^.*#\/definitions\//, ''); + } + } + this.model.responseMessages.push({ + code: code, + message: value.description, + responseModel: schema + }); + } + } + if (typeof this.model.responseMessages === 'undefined') { + this.model.responseMessages = []; + } + signatureModel = null; + if (this.model.successResponse) { + successResponse = this.model.successResponse; + for (key in successResponse) { + value = successResponse[key]; + this.model.successCode = key; + if (typeof value === 'object' && typeof value.createJSONSample === 'function') { + signatureModel = { + sampleJSON: JSON.stringify(value.createJSONSample(), void 0, 2), + isParam: false, + signature: value.getMockSignature() + }; + } + } + } else if (this.model.responseClassSignature && this.model.responseClassSignature !== 'string') { + signatureModel = { + sampleJSON: this.model.responseSampleJSON, + isParam: false, + signature: this.model.responseClassSignature + }; + } + var opts = this.options.swaggerOptions; + if (opts.showRequestHeaders) { + this.model.showRequestHeaders = true; + } + $(this.el).html(Handlebars.templates.operation(this.model)); + if (signatureModel) { + responseSignatureView = new SwaggerUi.Views.SignatureView({ + model: signatureModel, + router: this.router, + tagName: 'div' + }); + $('.model-signature', $(this.el)).append(responseSignatureView.render().el); + } else { + this.model.responseClassSignature = 'string'; + $('.model-signature', $(this.el)).html(this.model.type); + } + contentTypeModel = { + isParam: false + }; + contentTypeModel.consumes = this.model.consumes; + contentTypeModel.produces = this.model.produces; + ref3 = this.model.parameters; + for (n = 0, len2 = ref3.length; n < len2; n++) { + param = ref3[n]; + type = param.type || param.dataType || ''; + if (typeof type === 'undefined') { + schema = param.schema; + if (schema && schema.$ref) { + ref = schema.$ref; + if (ref.indexOf('#/definitions/') === 0) { + type = ref.substring('#/definitions/'.length); + } else { + type = ref; + } + } + } + if (type && type.toLowerCase() === 'file') { + if (!contentTypeModel.consumes) { + contentTypeModel.consumes = 'multipart/form-data'; + } + } + param.type = type; + } + responseContentTypeView = new SwaggerUi.Views.ResponseContentTypeView({ + model: contentTypeModel, + router: this.router + }); + $('.response-content-type', $(this.el)).append(responseContentTypeView.render().el); + ref4 = this.model.parameters; + for (p = 0, len3 = ref4.length; p < len3; p++) { + param = ref4[p]; + this.addParameter(param, contentTypeModel.consumes); + } + ref5 = this.model.responseMessages; + for (q = 0, len4 = ref5.length; q < len4; q++) { + statusCode = ref5[q]; + this.addStatusCode(statusCode); + } + return this; + }, + + addParameter: function(param, consumes) { + // Render a parameter + param.consumes = consumes; + var paramView = new SwaggerUi.Views.ParameterView({ + model: param, + tagName: 'tr', + readOnly: this.model.isReadOnly + }); + $('.operation-params', $(this.el)).append(paramView.render().el); + }, + + addStatusCode: function(statusCode) { + // Render status codes + var statusCodeView = new SwaggerUi.Views.StatusCodeView({ + model: statusCode, + tagName: 'tr', + router: this.router + }); + $('.operation-status', $(this.el)).append(statusCodeView.render().el); + }, + + // Note: copied from CoffeeScript compiled file + // TODO: redactor + submitOperation: function(e) { + var error_free, form, isFileUpload, map, opts; + if (e !== null) { + e.preventDefault(); + } + form = $('.sandbox', $(this.el)); + error_free = true; + form.find('input.required').each(function() { + $(this).removeClass('error'); + if (jQuery.trim($(this).val()) === '') { + $(this).addClass('error'); + $(this).wiggle({ + callback: (function(_this) { + return function() { + $(_this).focus(); + }; + })(this) + }); + error_free = false; + } + }); + form.find('textarea.required').each(function() { + $(this).removeClass('error'); + if (jQuery.trim($(this).val()) === '') { + $(this).addClass('error'); + $(this).wiggle({ + callback: (function(_this) { + return function() { + return $(_this).focus(); + }; + })(this) + }); + error_free = false; + } + }); + form.find('select.required').each(function() { + $(this).removeClass('error'); + if (this.selectedIndex === -1) { + $(this).addClass('error'); + $(this).wiggle({ + callback: (function(_this) { + return function() { + $(_this).focus(); + }; + })(this) + }); + error_free = false; + } + }); + if (error_free) { + map = this.getInputMap(form); + isFileUpload = this.isFileUpload(form); + opts = { + parent: this + }; + if (this.options.swaggerOptions) { + for(var key in this.options.swaggerOptions) { + opts[key] = this.options.swaggerOptions[key]; + } + } + opts.responseContentType = $('div select[name=responseContentType]', $(this.el)).val(); + opts.requestContentType = $('div select[name=parameterContentType]', $(this.el)).val(); + $('.response_throbber', $(this.el)).show(); + if (isFileUpload) { + $('.request_url', $(this.el)).html('<pre></pre>'); + $('.request_url pre', $(this.el)).text(this.invocationUrl); + + opts.useJQuery = true; + map.parameterContentType = 'multipart/form-data'; + + return this.model.execute(map, opts, this.showCompleteStatus, this.showErrorStatus, this); + } else { + this.map = map; + return this.model.execute(map, opts, this.showCompleteStatus, this.showErrorStatus, this); + } + } + }, + + getInputMap: function (form) { + var map, ref1, l, len, o, ref2, m, len1, val, ref3, n, len2; + map = {}; + ref1 = form.find('input'); + for (l = 0, len = ref1.length; l < len; l++) { + o = ref1[l]; + if ((o.value !== null) && jQuery.trim(o.value).length > 0) { + map[o.name] = o.value; + } + if (o.type === 'file') { + map[o.name] = o.files[0]; + } + } + ref2 = form.find('textarea'); + for (m = 0, len1 = ref2.length; m < len1; m++) { + o = ref2[m]; + val = this.getTextAreaValue(o); + if ((val !== null) && jQuery.trim(val).length > 0) { + map[o.name] = val; + } + } + ref3 = form.find('select'); + for (n = 0, len2 = ref3.length; n < len2; n++) { + o = ref3[n]; + val = this.getSelectedValue(o); + if ((val !== null) && jQuery.trim(val).length > 0) { + map[o.name] = val; + } + } + return map; + }, + + isFileUpload: function (form) { + var ref1, l, len, o; + var isFileUpload = false; + ref1 = form.find('input'); + for (l = 0, len = ref1.length; l < len; l++) { + o = ref1[l]; + if (o.type === 'file') { + isFileUpload = true; + } + } + return isFileUpload; + }, + + success: function(response, parent) { + parent.showCompleteStatus(response); + }, + + // wraps a jquery response as a shred response + wrap: function(data) { + var h, headerArray, headers, i, l, len, o; + headers = {}; + headerArray = data.getAllResponseHeaders().split('\r'); + for (l = 0, len = headerArray.length; l < len; l++) { + i = headerArray[l]; + h = i.match(/^([^:]*?):(.*)$/); + if (!h) { + h = []; + } + h.shift(); + if (h[0] !== void 0 && h[1] !== void 0) { + headers[h[0].trim()] = h[1].trim(); + } + } + o = {}; + o.content = {}; + o.content.data = data.responseText; + o.headers = headers; + o.request = {}; + o.request.url = this.invocationUrl; + o.status = data.status; + return o; + }, + + getSelectedValue: function(select) { + if (!select.multiple) { + return select.value; + } else { + var options = []; + for (var l = 0, len = select.options.length; l < len; l++) { + var opt = select.options[l]; + if (opt.selected) { + options.push(opt.value); + } + } + if (options.length > 0) { + return options; + } else { + return null; + } + } + }, + + // handler for hide response link + hideResponse: function(e) { + if (e) { e.preventDefault(); } + $('.response', $(this.el)).slideUp(); + $('.response_hider', $(this.el)).fadeOut(); + }, + + // Show response from server + showResponse: function(response) { + var prettyJson = JSON.stringify(response, null, '\t').replace(/\n/g, '<br>'); + $('.response_body', $(this.el)).html(_.escape(prettyJson)); + }, + + // Show error from server + showErrorStatus: function(data, parent) { + parent.showStatus(data); + }, + + // show the status codes + showCompleteStatus: function(data, parent){ + parent.showStatus(data); + }, + + // Adapted from http://stackoverflow.com/a/2893259/454004 + // Note: directly ported from CoffeeScript + // TODO: Cleanup CoffeeScript artifacts + formatXml: function(xml) { + var contexp, fn, formatted, indent, l, lastType, len, lines, ln, pad, reg, transitions, wsexp; + reg = /(>)(<)(\/*)/g; + wsexp = /[ ]*(.*)[ ]+\n/g; + contexp = /(<.+>)(.+\n)/g; + xml = xml.replace(reg, '$1\n$2$3').replace(wsexp, '$1\n').replace(contexp, '$1\n$2'); + pad = 0; + formatted = ''; + lines = xml.split('\n'); + indent = 0; + lastType = 'other'; + transitions = { + 'single->single': 0, + 'single->closing': -1, + 'single->opening': 0, + 'single->other': 0, + 'closing->single': 0, + 'closing->closing': -1, + 'closing->opening': 0, + 'closing->other': 0, + 'opening->single': 1, + 'opening->closing': 0, + 'opening->opening': 1, + 'opening->other': 1, + 'other->single': 0, + 'other->closing': -1, + 'other->opening': 0, + 'other->other': 0 + }; + fn = function(ln) { + var fromTo, j, key, padding, type, types, value; + types = { + single: Boolean(ln.match(/<.+\/>/)), + closing: Boolean(ln.match(/<\/.+>/)), + opening: Boolean(ln.match(/<[^!?].*>/)) + }; + type = ((function() { + var results; + results = []; + for (key in types) { + value = types[key]; + if (value) { + results.push(key); + } + } + return results; + })())[0]; + type = type === void 0 ? 'other' : type; + fromTo = lastType + '->' + type; + lastType = type; + padding = ''; + indent += transitions[fromTo]; + padding = ((function() { + var m, ref1, results; + results = []; + for (j = m = 0, ref1 = indent; 0 <= ref1 ? m < ref1 : m > ref1; j = 0 <= ref1 ? ++m : --m) { + results.push(' '); + } + return results; + })()).join(''); + if (fromTo === 'opening->closing') { + formatted = formatted.substr(0, formatted.length - 1) + ln + '\n'; + } else { + formatted += padding + ln + '\n'; + } + }; + for (l = 0, len = lines.length; l < len; l++) { + ln = lines[l]; + fn(ln); + } + return formatted; + }, + + // puts the response data in UI + showStatus: function(response) { + var url, content; + if (response.content === undefined) { + content = response.data; + url = response.url; + } else { + content = response.content.data; + url = response.request.url; + } + var headers = response.headers; + content = jQuery.trim(content); + + // if server is nice, and sends content-type back, we can use it + var contentType = null; + if (headers) { + contentType = headers['Content-Type'] || headers['content-type']; + if (contentType) { + contentType = contentType.split(';')[0].trim(); + } + } + $('.response_body', $(this.el)).removeClass('json'); + $('.response_body', $(this.el)).removeClass('xml'); + + var supportsAudioPlayback = function(contentType){ + var audioElement = document.createElement('audio'); + return !!(audioElement.canPlayType && audioElement.canPlayType(contentType).replace(/no/, '')); + }; + + var pre; + var code; + if (!content) { + code = $('<code />').text('no content'); + pre = $('<pre class="json" />').append(code); + + // JSON + } else if (contentType === 'application/json' || /\+json$/.test(contentType)) { + var json = null; + try { + json = JSON.stringify(JSON.parse(content), null, ' '); + } catch (_error) { + json = 'can\'t parse JSON. Raw result:\n\n' + content; + } + code = $('<code />').text(json); + pre = $('<pre class="json" />').append(code); + + // XML + } else if (contentType === 'application/xml' || /\+xml$/.test(contentType)) { + code = $('<code />').text(this.formatXml(content)); + pre = $('<pre class="xml" />').append(code); + + // HTML + } else if (contentType === 'text/html') { + code = $('<code />').html(_.escape(content)); + pre = $('<pre class="xml" />').append(code); + + // Plain Text + } else if (/text\/plain/.test(contentType)) { + code = $('<code />').text(content); + pre = $('<pre class="plain" />').append(code); + + + // Image + } else if (/^image\//.test(contentType)) { + pre = $('<img>').attr('src', url); + + // Audio + } else if (/^audio\//.test(contentType) && supportsAudioPlayback(contentType)) { + pre = $('<audio controls>').append($('<source>').attr('src', url).attr('type', contentType)); + + // Download + } else if (headers['Content-Disposition'] && (/attachment/).test(headers['Content-Disposition']) || + headers['content-disposition'] && (/attachment/).test(headers['content-disposition']) || + headers['Content-Description'] && (/File Transfer/).test(headers['Content-Description']) || + headers['content-description'] && (/File Transfer/).test(headers['content-description'])) { + + if ('Blob' in window) { + var type = contentType || 'text/html'; + var blob = new Blob([content], {type: type}); + var a = document.createElement('a'); + var href = window.URL.createObjectURL(blob); + var fileName = response.url.substr(response.url.lastIndexOf('/') + 1); + var download = [type, fileName, href].join(':'); + + a.setAttribute('href', href); + a.setAttribute('download', download); + a.innerText = 'Download ' + fileName; + + pre = $('<div/>').append(a); + } else { + pre = $('<pre class="json" />').append('Download headers detected but your browser does not support downloading binary via XHR (Blob).'); + } + + // Location header based redirect download + } else if(headers.location || headers.Location) { + window.location = response.url; + + // Anything else (CORS) + } else { + code = $('<code />').text(content); + pre = $('<pre class="json" />').append(code); + } + var response_body = pre; + $('.request_url', $(this.el)).html('<pre></pre>'); + $('.request_url pre', $(this.el)).text(url); + $('.response_code', $(this.el)).html('<pre>' + response.status + '</pre>'); + $('.response_body', $(this.el)).html(response_body); + $('.response_headers', $(this.el)).html('<pre>' + _.escape(JSON.stringify(response.headers, null, ' ')).replace(/\n/g, '<br>') + '</pre>'); + $('.response', $(this.el)).slideDown(); + $('.response_hider', $(this.el)).show(); + $('.response_throbber', $(this.el)).hide(); + + + //adds curl output + var curlCommand = this.model.asCurl(this.map); + curlCommand = curlCommand.replace('!', '&#33;'); + $( '.curl', $(this.el)).html('<pre>' + curlCommand + '</pre>'); + + // only highlight the response if response is less than threshold, default state is highlight response + var opts = this.options.swaggerOptions; + + if (opts.showRequestHeaders) { + var form = $('.sandbox', $(this.el)), + map = this.getInputMap(form), + requestHeaders = this.model.getHeaderParams(map); + delete requestHeaders['Content-Type']; + $('.request_headers', $(this.el)).html('<pre>' + _.escape(JSON.stringify(requestHeaders, null, ' ')).replace(/\n/g, '<br>') + '</pre>'); + } + + var response_body_el = $('.response_body', $(this.el))[0]; + // only highlight the response if response is less than threshold, default state is highlight response + if (opts.highlightSizeThreshold && typeof response.data !== 'undefined' && response.data.length > opts.highlightSizeThreshold) { + return response_body_el; + } else { + return hljs.highlightBlock(response_body_el); + } + }, + + toggleOperationContent: function (event) { + var elem = $('#' + Docs.escapeResourceName(this.parentId + '_' + this.nickname + '_content')); + if (elem.is(':visible')){ + event.preventDefault(); + $.bbq.pushState('#/', 2); + Docs.collapseOperation(elem); + } else { + Docs.expandOperation(elem); + } + }, + + getTextAreaValue: function(textArea) { + var param, parsed, result, i; + if (textArea.value === null || jQuery.trim(textArea.value).length === 0) { + return null; + } + param = this.getParamByName(textArea.name); + if (param && param.type && param.type.toLowerCase() === 'array') { + parsed = textArea.value.split('\n'); + result = []; + for (i = 0; i < parsed.length; i++) { + if (parsed[i] !== null && jQuery.trim(parsed[i]).length > 0) { + result.push(parsed[i]); + } + } + return result.length > 0 ? result : null; + } else { + return textArea.value; + } + }, + + getParamByName: function(name) { + var i; + if (this.model.parameters) { + for(i = 0; i < this.model.parameters.length; i++) { + if (this.model.parameters[i].name === name) { + return this.model.parameters[i]; + } + } + } + return null; + } + +}); + +'use strict'; + +SwaggerUi.Views.ParameterContentTypeView = Backbone.View.extend({ + initialize: function () {}, + + render: function(){ + this.model.parameterContentTypeId = 'pct' + Math.random(); + $(this.el).html(Handlebars.templates.parameter_content_type(this.model)); + return this; + } + +}); +'use strict'; + +SwaggerUi.Views.ParameterView = Backbone.View.extend({ + initialize: function(){ + Handlebars.registerHelper('isArray', function(param, opts) { + if (param.type.toLowerCase() === 'array' || param.allowMultiple) { + return opts.fn(this); + } else { + return opts.inverse(this); + } + }); + }, + + render: function() { + var type = this.model.type || this.model.dataType; + + if (typeof type === 'undefined') { + var schema = this.model.schema; + if (schema && schema.$ref) { + var ref = schema.$ref; + if (ref.indexOf('#/definitions/') === 0) { + type = ref.substring('#/definitions/'.length); + } else { + type = ref; + } + } + } + + this.model.type = type; + this.model.paramType = this.model.in || this.model.paramType; + this.model.isBody = this.model.paramType === 'body' || this.model.in === 'body'; + this.model.isFile = type && type.toLowerCase() === 'file'; + + // Allow for default === false + if(typeof this.model.default === 'undefined') { + this.model.default = this.model.defaultValue; + } + + this.model.hasDefault = (typeof this.model.default !== 'undefined'); + this.model.valueId = 'm' + this.model.name + Math.random(); + + if (this.model.allowableValues) { + this.model.isList = true; + } + + var template = this.template(); + $(this.el).html(template(this.model)); + + var signatureModel = { + sampleJSON: this.model.sampleJSON, + isParam: true, + signature: this.model.signature + }; + + if (this.model.sampleJSON) { + var signatureView = new SwaggerUi.Views.SignatureView({model: signatureModel, tagName: 'div'}); + $('.model-signature', $(this.el)).append(signatureView.render().el); + } + else { + $('.model-signature', $(this.el)).html(this.model.signature); + } + + var isParam = false; + + if (this.model.isBody) { + isParam = true; + } + + var contentTypeModel = { + isParam: isParam + }; + + contentTypeModel.consumes = this.model.consumes; + + if (isParam) { + var parameterContentTypeView = new SwaggerUi.Views.ParameterContentTypeView({model: contentTypeModel}); + $('.parameter-content-type', $(this.el)).append(parameterContentTypeView.render().el); + } + + else { + var responseContentTypeView = new SwaggerUi.Views.ResponseContentTypeView({model: contentTypeModel}); + $('.response-content-type', $(this.el)).append(responseContentTypeView.render().el); + } + + return this; + }, + + // Return an appropriate template based on if the parameter is a list, readonly, required + template: function(){ + if (this.model.isList) { + return Handlebars.templates.param_list; + } else { + if (this.options.readOnly) { + if (this.model.required) { + return Handlebars.templates.param_readonly_required; + } else { + return Handlebars.templates.param_readonly; + } + } else { + if (this.model.required) { + return Handlebars.templates.param_required; + } else { + return Handlebars.templates.param; + } + } + } + } +}); + +'use strict'; + +SwaggerUi.Views.ResourceView = Backbone.View.extend({ + initialize: function(opts) { + opts = opts || {}; + this.router = opts.router; + this.auths = opts.auths; + if ('' === this.model.description) { + this.model.description = null; + } + if (this.model.description) { + this.model.summary = this.model.description; + } + }, + + render: function(){ + var methods = {}; + + + $(this.el).html(Handlebars.templates.resource(this.model)); + + // Render each operation + for (var i = 0; i < this.model.operationsArray.length; i++) { + var operation = this.model.operationsArray[i]; + var counter = 0; + var id = operation.nickname; + + while (typeof methods[id] !== 'undefined') { + id = id + '_' + counter; + counter += 1; + } + + methods[id] = operation; + + operation.nickname = id; + operation.parentId = this.model.id; + this.addOperation(operation); + } + + $('.toggleEndpointList', this.el).click(this.callDocs.bind(this, 'toggleEndpointListForResource')); + $('.collapseResource', this.el).click(this.callDocs.bind(this, 'collapseOperationsForResource')); + $('.expandResource', this.el).click(this.callDocs.bind(this, 'expandOperationsForResource')); + + return this; + }, + + addOperation: function(operation) { + + operation.number = this.number; + + // Render an operation and add it to operations li + var operationView = new SwaggerUi.Views.OperationView({ + model: operation, + router: this.router, + tagName: 'li', + className: 'endpoint', + swaggerOptions: this.options.swaggerOptions, + auths: this.auths + }); + + $('.endpoints', $(this.el)).append(operationView.render().el); + + this.number++; + + }, + // Generic Event handler (`Docs` is global) + + + callDocs: function(fnName, e) { + e.preventDefault(); + Docs[fnName](e.currentTarget.getAttribute('data-id')); + } +}); +'use strict'; + +SwaggerUi.Views.ResponseContentTypeView = Backbone.View.extend({ + initialize: function(){}, + + render: function(){ + this.model.responseContentTypeId = 'rct' + Math.random(); + $(this.el).html(Handlebars.templates.response_content_type(this.model)); + return this; + } +}); +'use strict'; + +SwaggerUi.Views.SignatureView = Backbone.View.extend({ + events: { + 'click a.description-link' : 'switchToDescription', + 'click a.snippet-link' : 'switchToSnippet', + 'mousedown .snippet' : 'snippetToTextArea' + }, + + initialize: function () { + + }, + + render: function(){ + + $(this.el).html(Handlebars.templates.signature(this.model)); + + this.switchToSnippet(); + + this.isParam = this.model.isParam; + + if (this.isParam) { + $('.notice', $(this.el)).text('Click to set as parameter value'); + } + + return this; + }, + + // handler for show signature + switchToDescription: function(e){ + if (e) { e.preventDefault(); } + + $('.snippet', $(this.el)).hide(); + $('.description', $(this.el)).show(); + $('.description-link', $(this.el)).addClass('selected'); + $('.snippet-link', $(this.el)).removeClass('selected'); + }, + + // handler for show sample + switchToSnippet: function(e){ + if (e) { e.preventDefault(); } + + $('.description', $(this.el)).hide(); + $('.snippet', $(this.el)).show(); + $('.snippet-link', $(this.el)).addClass('selected'); + $('.description-link', $(this.el)).removeClass('selected'); + }, + + // handler for snippet to text area + snippetToTextArea: function(e) { + if (this.isParam) { + if (e) { e.preventDefault(); } + + var textArea = $('textarea', $(this.el.parentNode.parentNode.parentNode)); + + // Fix for bug in IE 10/11 which causes placeholder text to be copied to "value" + if ($.trim(textArea.val()) === '' || textArea.prop('placeholder') === textArea.val()) { + textArea.val(this.model.sampleJSON); + } + } + } +}); +'use strict'; + +SwaggerUi.Views.StatusCodeView = Backbone.View.extend({ + initialize: function (opts) { + this.options = opts || {}; + this.router = this.options.router; + }, + + render: function(){ + $(this.el).html(Handlebars.templates.status_code(this.model)); + + if (this.router.api.models.hasOwnProperty(this.model.responseModel)) { + var responseModel = { + sampleJSON: JSON.stringify(this.router.api.models[this.model.responseModel].createJSONSample(), null, 2), + isParam: false, + signature: this.router.api.models[this.model.responseModel].getMockSignature(), + }; + + var responseModelView = new SwaggerUi.Views.SignatureView({model: responseModel, tagName: 'div'}); + $('.model-signature', this.$el).append(responseModelView.render().el); + } else { + $('.model-signature', this.$el).html(''); + } + return this; + } +});}).call(this); \ No newline at end of file diff --git a/reference/ucp/3.1/api/swagger-ui.min.js b/reference/ucp/3.1/api/swagger-ui.min.js new file mode 100644 index 0000000000..00973fded3 --- /dev/null +++ b/reference/ucp/3.1/api/swagger-ui.min.js @@ -0,0 +1,30 @@ +(function(){"use strict";window.SwaggerUi=Backbone.Router.extend({dom_id:"swagger_ui",options:null,api:null,headerView:null,mainView:null,initialize:function(options){options=options||{};if(!options.highlightSizeThreshold){options.highlightSizeThreshold=1e5}if(options.dom_id){this.dom_id=options.dom_id;delete options.dom_id}if(!options.supportedSubmitMethods){options.supportedSubmitMethods=["get","put","post","delete","head","options","patch"]}if(typeof options.oauth2RedirectUrl==="string"){window.oAuthRedirectUrl=options.redirectUrl}if(!$("#"+this.dom_id).length){$("body").append('<div id="'+this.dom_id+'"></div>')}this.options=options;marked.setOptions({gfm:true});var that=this;this.options.success=function(){return that.render()};this.options.progress=function(d){return that.showMessage(d)};this.options.failure=function(d){return that.onLoadFailure(d)};this.headerView=new SwaggerUi.Views.HeaderView({el:$("#header")});this.headerView.on("update-swagger-ui",function(data){return that.updateSwaggerUi(data)})},setOption:function(option,value){this.options[option]=value},getOption:function(option){return this.options[option]},updateSwaggerUi:function(data){this.options.url=data.url;this.load()},load:function(){if(this.mainView){this.mainView.clear()}var url=this.options.url;if(url&&url.indexOf("http")!==0){url=this.buildUrl(window.location.href.toString(),url)}if(this.api){this.options.authorizations=this.api.clientAuthorizations.authz}this.options.url=url;this.headerView.update(url);this.api=new SwaggerClient(this.options)},collapseAll:function(){Docs.collapseEndpointListForResource("")},listAll:function(){Docs.collapseOperationsForResource("")},expandAll:function(){Docs.expandOperationsForResource("")},render:function(){this.showMessage("Finished Loading Resource Information. Rendering Swagger UI...");this.mainView=new SwaggerUi.Views.MainView({model:this.api,el:$("#"+this.dom_id),swaggerOptions:this.options,router:this}).render();this.showMessage();switch(this.options.docExpansion){case"full":this.expandAll();break;case"list":this.listAll();break;default:break}this.renderGFM();if(this.options.onComplete){this.options.onComplete(this.api,this)}setTimeout(Docs.shebang.bind(this),100)},buildUrl:function(base,url){if(url.indexOf("/")===0){var parts=base.split("/");base=parts[0]+"//"+parts[2];return base+url}else{var endOfPath=base.length;if(base.indexOf("?")>-1){endOfPath=Math.min(endOfPath,base.indexOf("?"))}if(base.indexOf("#")>-1){endOfPath=Math.min(endOfPath,base.indexOf("#"))}base=base.substring(0,endOfPath);if(base.indexOf("/",base.length-1)!==-1){return base+url}return base+"/"+url}},showMessage:function(data){if(data===undefined){data=""}var $msgbar=$("#message-bar");$msgbar.removeClass("message-fail");$msgbar.addClass("message-success");$msgbar.html(data);if(window.SwaggerTranslator){window.SwaggerTranslator.translate($msgbar)}},onLoadFailure:function(data){if(data===undefined){data=""}$("#message-bar").removeClass("message-success");$("#message-bar").addClass("message-fail");var val=$("#message-bar").text(data);if(this.options.onFailure){this.options.onFailure(data)}return val},renderGFM:function(){$(".markdown").each(function(){$(this).html(marked($(this).html()))});$(".propDesc",".model-signature .description").each(function(){$(this).html(marked($(this).html())).addClass("markdown")})}});window.SwaggerUi.Views={};(function(){window.authorizations={add:function(){warn("Using window.authorizations is deprecated. Please use SwaggerUi.api.clientAuthorizations.add().");if(typeof window.swaggerUi==="undefined"){throw new TypeError("window.swaggerUi is not defined")}if(window.swaggerUi instanceof SwaggerUi){window.swaggerUi.api.clientAuthorizations.add.apply(window.swaggerUi.api.clientAuthorizations,arguments)}}};window.ApiKeyAuthorization=function(){warn("window.ApiKeyAuthorization is deprecated. Please use SwaggerClient.ApiKeyAuthorization.");SwaggerClient.ApiKeyAuthorization.apply(window,arguments)};window.PasswordAuthorization=function(){warn("window.PasswordAuthorization is deprecated. Please use SwaggerClient.PasswordAuthorization.");SwaggerClient.PasswordAuthorization.apply(window,arguments)};function warn(message){if("console"in window&&typeof window.console.warn==="function"){console.warn(message)}}})();(function(root,factory){if(typeof define==="function"&&define.amd){define(["b"],function(b){return root.SwaggerUi=factory(b)})}else if(typeof exports==="object"){module.exports=factory(require("b"))}else{root.SwaggerUi=factory(root.b)}})(this,function(){return SwaggerUi});this["Handlebars"]=this["Handlebars"]||{};this["Handlebars"]["templates"]=this["Handlebars"]["templates"]||{};this["Handlebars"]["templates"]["apikey_button_view"]=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(depth0,helpers,partials,data){var helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression;return"<!--div class='auth_button' id='apikey_button'><img class='auth_icon' alt='apply api key' src='images/apikey.jpeg'></div-->\n<div class='auth_container' id='apikey_container'>\n <div class='key_input_container'>\n <div class='auth_label'><label for='input_apiKey_entry'>"+escapeExpression((helper=(helper=helpers.keyName||(depth0!=null?depth0.keyName:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"keyName",hash:{},data:data}):helper))+"</label></div>\n <input placeholder='api_key' class='auth_input' id='input_apiKey_entry' name='apiKey' type='text'/>\n <div class='auth_submit'><a class='auth_submit_button' id='apply_api_key' href='#' data-sw-translate>apply</a></div>\n </div>\n</div>\n"},useData:true});this["Handlebars"]["templates"]["basic_auth_button_view"]=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(depth0,helpers,partials,data){return'<div class=\'auth_button\' id=\'basic_auth_button\'><img class=\'auth_icon\' src=\'images/password.jpeg\'></div>\n<div class=\'auth_container\' id=\'basic_auth_container\'>\n <div class=\'key_input_container\'>\n <div class="auth_label"><label for="input_username" data-sw-translate>Username</label></div>\n <input placeholder="username" class="auth_input" id="input_username" name="username" type="text"/>\n <div class="auth_label"><label for="password" data-sw-translate>Password</label></div>\n <input placeholder="password" class="auth_input" id="input_password" name="password" type="password"/>\n <div class=\'auth_submit\'><a class=\'auth_submit_button\' id="apply_basic_auth" href="#">apply</a></div>\n </div>\n</div>\n\n'},useData:true});this["Handlebars"]["templates"]["content_type"]=Handlebars.template({1:function(depth0,helpers,partials,data){var stack1,buffer="";stack1=helpers.each.call(depth0,depth0!=null?depth0.produces:depth0,{name:"each",hash:{},fn:this.program(2,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}return buffer},2:function(depth0,helpers,partials,data){var stack1,lambda=this.lambda,buffer=' <option value="';stack1=lambda(depth0,depth0);if(stack1!=null){buffer+=stack1}buffer+='">';stack1=lambda(depth0,depth0);if(stack1!=null){buffer+=stack1}return buffer+"</option>\n"},4:function(depth0,helpers,partials,data){return' <option value="application/json">application/json</option>\n'},compiler:[6,">= 2.0.0-beta.1"],main:function(depth0,helpers,partials,data){var stack1,helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression,buffer='<label data-sw-translate for="'+escapeExpression((helper=(helper=helpers.contentTypeId||(depth0!=null?depth0.contentTypeId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"contentTypeId",hash:{},data:data}):helper))+'">Response Content Type</label>\n<select name="contentType" id="'+escapeExpression((helper=(helper=helpers.contentTypeId||(depth0!=null?depth0.contentTypeId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"contentTypeId",hash:{},data:data}):helper))+'">\n';stack1=helpers["if"].call(depth0,depth0!=null?depth0.produces:depth0,{name:"if",hash:{},fn:this.program(1,data),inverse:this.program(4,data),data:data});if(stack1!=null){buffer+=stack1}return buffer+"</select>\n"},useData:true});"use strict";$(function(){$.fn.vAlign=function(){return this.each(function(){var ah=$(this).height();var ph=$(this).parent().height();var mh=(ph-ah)/2;$(this).css("margin-top",mh)})};$.fn.stretchFormtasticInputWidthToParent=function(){return this.each(function(){var p_width=$(this).closest("form").innerWidth();var p_padding=parseInt($(this).closest("form").css("padding-left"),10)+parseInt($(this).closest("form").css("padding-right"),10);var this_padding=parseInt($(this).css("padding-left"),10)+parseInt($(this).css("padding-right"),10);$(this).css("width",p_width-p_padding-this_padding)})};$("form.formtastic li.string input, form.formtastic textarea").stretchFormtasticInputWidthToParent();$("ul.downplayed li div.content p").vAlign();$("form.sandbox").submit(function(){var error_free=true;$(this).find("input.required").each(function(){$(this).removeClass("error");if($(this).val()===""){$(this).addClass("error");$(this).wiggle();error_free=false}});return error_free})});function clippyCopiedCallback(){$("#api_key_copied").fadeIn().delay(1e3).fadeOut()}function log(){log.history=log.history||[];log.history.push(arguments);if(this.console){console.log(Array.prototype.slice.call(arguments)[0])}}if(Function.prototype.bind&&console&&typeof console.log==="object"){["log","info","warn","error","assert","dir","clear","profile","profileEnd"].forEach(function(method){console[method]=this.bind(console[method],console)},Function.prototype.call)}window.Docs={shebang:function(){var fragments=$.param.fragment().split("/");fragments.shift();switch(fragments.length){case 1:if(fragments[0].length>0){var dom_id="resource_"+fragments[0];Docs.expandEndpointListForResource(fragments[0]);$("#"+dom_id).slideto({highlight:false})}break;case 2:Docs.expandEndpointListForResource(fragments[0]);$("#"+dom_id).slideto({highlight:false});var li_dom_id=fragments.join("_");var li_content_dom_id=li_dom_id+"_content";Docs.expandOperation($("#"+li_content_dom_id));$("#"+li_dom_id).slideto({highlight:false});break}},toggleEndpointListForResource:function(resource){var elem=$("li#resource_"+Docs.escapeResourceName(resource)+" ul.endpoints");if(elem.is(":visible")){Docs.collapseEndpointListForResource(resource)}else{Docs.expandEndpointListForResource(resource)}},expandEndpointListForResource:function(resource){var resource=Docs.escapeResourceName(resource);if(resource==""){$(".resource ul.endpoints").slideDown();return}$("li#resource_"+resource).addClass("active");var elem=$("li#resource_"+resource+" ul.endpoints");elem.slideDown()},collapseEndpointListForResource:function(resource){var resource=Docs.escapeResourceName(resource);if(resource==""){$(".resource ul.endpoints").slideUp();return}$("li#resource_"+resource).removeClass("active");var elem=$("li#resource_"+resource+" ul.endpoints");elem.slideUp()},expandOperationsForResource:function(resource){Docs.expandEndpointListForResource(resource);if(resource==""){$(".resource ul.endpoints li.operation div.content").slideDown();return}$("li#resource_"+Docs.escapeResourceName(resource)+" li.operation div.content").each(function(){Docs.expandOperation($(this))})},collapseOperationsForResource:function(resource){Docs.expandEndpointListForResource(resource);if(resource==""){$(".resource ul.endpoints li.operation div.content").slideUp();return}$("li#resource_"+Docs.escapeResourceName(resource)+" li.operation div.content").each(function(){Docs.collapseOperation($(this))})},escapeResourceName:function(resource){return resource.replace(/[!"#$%&'()*+,.\/:;<=>?@\[\\\]\^`{|}~]/g,"\\$&")},expandOperation:function(elem){elem.slideDown()},collapseOperation:function(elem){elem.slideUp()}};"use strict";Handlebars.registerHelper("sanitize",function(html){html=html.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,"");return new Handlebars.SafeString(html)});Handlebars.registerHelper("renderTextParam",function(param){var result,type="text",idAtt="";var isArray=param.type.toLowerCase()==="array"||param.allowMultiple;var defaultValue=isArray&&Array.isArray(param.default)?param.default.join("\n"):param.default;var dataVendorExtensions=Object.keys(param).filter(function(property){return property.match(/^X-data-/i)!==null}).reduce(function(result,property){return result+=" "+property.substring(2,property.length)+"='"+param[property]+"'"},"");if(typeof defaultValue==="undefined"){defaultValue=""}if(param.format&&param.format==="password"){type="password"}if(param.valueId){idAtt=" id='"+param.valueId+"'"}if(isArray){result="<textarea class='body-textarea"+(param.required?" required":"")+"' name='"+param.name+"'"+idAtt+dataVendorExtensions;result+=" placeholder='Provide multiple values in new lines"+(param.required?" (at least one required).":".")+"'>";result+=defaultValue+"</textarea>"}else{var parameterClass="parameter";if(param.required){parameterClass+=" required"}result="<input class='"+parameterClass+"' minlength='"+(param.required?1:0)+"'";result+=" name='"+param.name+"' placeholder='"+(param.required?"(required)":"")+"'"+idAtt+dataVendorExtensions;result+=" type='"+type+"' value='"+defaultValue+"'/>"}return new Handlebars.SafeString(result)});this["Handlebars"]["templates"]["main"]=Handlebars.template({1:function(depth0,helpers,partials,data){var stack1,lambda=this.lambda,escapeExpression=this.escapeExpression,buffer=' <div class="info_title">'+escapeExpression(lambda((stack1=depth0!=null?depth0.info:depth0)!=null?stack1.title:stack1,depth0))+'</div>\n <div class="info_description markdown">';stack1=lambda((stack1=depth0!=null?depth0.info:depth0)!=null?stack1.description:stack1,depth0);if(stack1!=null){buffer+=stack1}buffer+="</div>\n";stack1=helpers["if"].call(depth0,depth0!=null?depth0.externalDocs:depth0,{name:"if",hash:{},fn:this.program(2,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}buffer+=" ";stack1=helpers["if"].call(depth0,(stack1=depth0!=null?depth0.info:depth0)!=null?stack1.termsOfServiceUrl:stack1,{name:"if",hash:{},fn:this.program(4,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}buffer+="\n ";stack1=helpers["if"].call(depth0,(stack1=(stack1=depth0!=null?depth0.info:depth0)!=null?stack1.contact:stack1)!=null?stack1.name:stack1,{name:"if",hash:{},fn:this.program(6,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}buffer+="\n ";stack1=helpers["if"].call(depth0,(stack1=(stack1=depth0!=null?depth0.info:depth0)!=null?stack1.contact:stack1)!=null?stack1.url:stack1,{name:"if",hash:{},fn:this.program(8,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}buffer+="\n ";stack1=helpers["if"].call(depth0,(stack1=(stack1=depth0!=null?depth0.info:depth0)!=null?stack1.contact:stack1)!=null?stack1.email:stack1,{name:"if",hash:{},fn:this.program(10,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}buffer+="\n ";stack1=helpers["if"].call(depth0,(stack1=depth0!=null?depth0.info:depth0)!=null?stack1.license:stack1,{name:"if",hash:{},fn:this.program(12,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}return buffer+"\n"},2:function(depth0,helpers,partials,data){var stack1,lambda=this.lambda,escapeExpression=this.escapeExpression;return" <p>"+escapeExpression(lambda((stack1=depth0!=null?depth0.externalDocs:depth0)!=null?stack1.description:stack1,depth0))+'</p>\n <a href="'+escapeExpression(lambda((stack1=depth0!=null?depth0.externalDocs:depth0)!=null?stack1.url:stack1,depth0))+'" target="_blank">'+escapeExpression(lambda((stack1=depth0!=null?depth0.externalDocs:depth0)!=null?stack1.url:stack1,depth0))+"</a>\n"},4:function(depth0,helpers,partials,data){var stack1,lambda=this.lambda,escapeExpression=this.escapeExpression;return'<div class="info_tos"><a href="'+escapeExpression(lambda((stack1=depth0!=null?depth0.info:depth0)!=null?stack1.termsOfServiceUrl:stack1,depth0))+'" data-sw-translate>Terms of service</a></div>'},6:function(depth0,helpers,partials,data){var stack1,lambda=this.lambda,escapeExpression=this.escapeExpression;return"<div class='info_name' data-sw-translate>Created by "+escapeExpression(lambda((stack1=(stack1=depth0!=null?depth0.info:depth0)!=null?stack1.contact:stack1)!=null?stack1.name:stack1,depth0))+"</div>"},8:function(depth0,helpers,partials,data){var stack1,lambda=this.lambda,escapeExpression=this.escapeExpression;return"<div class='info_url' data-sw-translate>See more at <a href=\""+escapeExpression(lambda((stack1=(stack1=depth0!=null?depth0.info:depth0)!=null?stack1.contact:stack1)!=null?stack1.url:stack1,depth0))+'">'+escapeExpression(lambda((stack1=(stack1=depth0!=null?depth0.info:depth0)!=null?stack1.contact:stack1)!=null?stack1.url:stack1,depth0))+"</a></div>"},10:function(depth0,helpers,partials,data){var stack1,lambda=this.lambda,escapeExpression=this.escapeExpression;return"<div class='info_email'><a href=\"mailto:"+escapeExpression(lambda((stack1=(stack1=depth0!=null?depth0.info:depth0)!=null?stack1.contact:stack1)!=null?stack1.email:stack1,depth0))+"?subject="+escapeExpression(lambda((stack1=depth0!=null?depth0.info:depth0)!=null?stack1.title:stack1,depth0))+'" data-sw-translate>Contact the developer</a></div>'},12:function(depth0,helpers,partials,data){var stack1,lambda=this.lambda,escapeExpression=this.escapeExpression;return"<div class='info_license'><a href='"+escapeExpression(lambda((stack1=(stack1=depth0!=null?depth0.info:depth0)!=null?stack1.license:stack1)!=null?stack1.url:stack1,depth0))+"'>"+escapeExpression(lambda((stack1=(stack1=depth0!=null?depth0.info:depth0)!=null?stack1.license:stack1)!=null?stack1.name:stack1,depth0))+"</a></div>"},14:function(depth0,helpers,partials,data){var stack1,lambda=this.lambda,escapeExpression=this.escapeExpression;return' , <span style="font-variant: small-caps" data-sw-translate>api version</span>: '+escapeExpression(lambda((stack1=depth0!=null?depth0.info:depth0)!=null?stack1.version:stack1,depth0))+"\n "},16:function(depth0,helpers,partials,data){var helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression;return' <span style="float:right"><a href="'+escapeExpression((helper=(helper=helpers.validatorUrl||(depth0!=null?depth0.validatorUrl:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"validatorUrl",hash:{},data:data}):helper))+"/debug?url="+escapeExpression((helper=(helper=helpers.url||(depth0!=null?depth0.url:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"url",hash:{},data:data}):helper))+'"><img id="validator" src="'+escapeExpression((helper=(helper=helpers.validatorUrl||(depth0!=null?depth0.validatorUrl:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"validatorUrl",hash:{},data:data}):helper))+"?url="+escapeExpression((helper=(helper=helpers.url||(depth0!=null?depth0.url:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"url",hash:{},data:data}):helper))+'"></a>\n </span>\n'},compiler:[6,">= 2.0.0-beta.1"],main:function(depth0,helpers,partials,data){var stack1,helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression,buffer="<div class='info' id='api_info'>\n";stack1=helpers["if"].call(depth0,depth0!=null?depth0.info:depth0,{name:"if",hash:{},fn:this.program(1,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}buffer+="</div>\n<div class='container' id='resources_container'>\n <ul id='resources'></ul>\n\n <div class=\"footer\">\n <h4 style=\"color: #999\">[ <span style=\"font-variant: small-caps\">base url</span>: "+escapeExpression((helper=(helper=helpers.basePath||(depth0!=null?depth0.basePath:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"basePath",hash:{},data:data}):helper))+"\n";stack1=helpers["if"].call(depth0,(stack1=depth0!=null?depth0.info:depth0)!=null?stack1.version:stack1,{name:"if",hash:{},fn:this.program(14,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}buffer+="]\n";stack1=helpers["if"].call(depth0,depth0!=null?depth0.validatorUrl:depth0,{name:"if",hash:{},fn:this.program(16,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}return buffer+" </h4>\n </div>\n</div>\n"},useData:true});this["Handlebars"]["templates"]["operation"]=Handlebars.template({1:function(depth0,helpers,partials,data){return"deprecated"},3:function(depth0,helpers,partials,data){return" <h4>Warning: Deprecated</h4>\n"},5:function(depth0,helpers,partials,data){var stack1,helper,functionType="function",helperMissing=helpers.helperMissing,buffer=' <h4>Implementation Notes</h4>\n <div class="markdown">';stack1=(helper=(helper=helpers.description||(depth0!=null?depth0.description:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"description",hash:{},data:data}):helper);if(stack1!=null){buffer+=stack1}return buffer+"</div>\n"},7:function(depth0,helpers,partials,data){return' <div class="auth">\n <span class="api-ic ic-error">'},9:function(depth0,helpers,partials,data){var stack1,buffer=' <div class="api_information_panel">\n';stack1=helpers.each.call(depth0,depth0,{name:"each",hash:{},fn:this.program(10,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}return buffer+" </div>\n"},10:function(depth0,helpers,partials,data){var stack1,lambda=this.lambda,escapeExpression=this.escapeExpression,buffer=" <div title='";stack1=lambda(depth0!=null?depth0.description:depth0,depth0);if(stack1!=null){buffer+=stack1}return buffer+"'>"+escapeExpression(lambda(depth0!=null?depth0.scope:depth0,depth0))+"</div>\n"},12:function(depth0,helpers,partials,data){return"</span></div>"},14:function(depth0,helpers,partials,data){return' <div class=\'access\'>\n <span class="api-ic ic-off" title="click to authenticate"></span>\n </div>\n'},16:function(depth0,helpers,partials,data){var helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression;return" <h4><span data-sw-translate>Response Class</span> (<span data-sw-translate>Status</span> "+escapeExpression((helper=(helper=helpers.successCode||(depth0!=null?depth0.successCode:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"successCode",hash:{},data:data}):helper))+')</h4>\n <p><span class="model-signature" /></p>\n <br/>\n <div class="response-content-type" />\n'},18:function(depth0,helpers,partials,data){return' <h4 data-sw-translate>Parameters</h4>\n <table class=\'fullwidth\'>\n <thead>\n <tr>\n <th style="width: 100px; max-width: 100px" data-sw-translate>Parameter</th>\n <th style="width: 310px; max-width: 310px" data-sw-translate>Value</th>\n <th style="width: 200px; max-width: 200px" data-sw-translate>Description</th>\n <th style="width: 100px; max-width: 100px" data-sw-translate>Parameter Type</th>\n <th style="width: 220px; max-width: 230px" data-sw-translate>Data Type</th>\n </tr>\n </thead>\n <tbody class="operation-params">\n\n </tbody>\n </table>\n'},20:function(depth0,helpers,partials,data){return" <div style='margin:0;padding:0;display:inline'></div>\n <h4 data-sw-translate>Response Messages</h4>\n <table class='fullwidth'>\n <thead>\n <tr>\n <th data-sw-translate>HTTP Status Code</th>\n <th data-sw-translate>Reason</th>\n <th data-sw-translate>Response Model</th>\n <th data-sw-translate>Headers</th>\n </tr>\n </thead>\n <tbody class=\"operation-status\">\n\n </tbody>\n </table>\n"},22:function(depth0,helpers,partials,data){return""},24:function(depth0,helpers,partials,data){return" <div class='sandbox_header'>\n <input class='submit' type='button' value='Try it out!' data-sw-translate/>\n <a href='#' class='response_hider' style='display:none' data-sw-translate>Hide Response</a>\n <span class='response_throbber' style='display:none'></span>\n </div>\n"},26:function(depth0,helpers,partials,data){return" <h4 data-sw-translate>Request Headers</h4>\n <div class='block request_headers'></div>\n"},compiler:[6,">= 2.0.0-beta.1"],main:function(depth0,helpers,partials,data){var stack1,helper,options,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression,blockHelperMissing=helpers.blockHelperMissing,buffer="\n <ul class='operations' >\n <li class='"+escapeExpression((helper=(helper=helpers.method||(depth0!=null?depth0.method:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"method",hash:{},data:data}):helper))+" operation' id='"+escapeExpression((helper=(helper=helpers.parentId||(depth0!=null?depth0.parentId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"parentId",hash:{},data:data}):helper))+"_"+escapeExpression((helper=(helper=helpers.nickname||(depth0!=null?depth0.nickname:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"nickname",hash:{},data:data}):helper))+"'>\n <div class='heading'>\n <h3>\n <span class='http_method'>\n <a href='#!/"+escapeExpression((helper=(helper=helpers.encodedParentId||(depth0!=null?depth0.encodedParentId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"encodedParentId",hash:{},data:data}):helper))+"/"+escapeExpression((helper=(helper=helpers.nickname||(depth0!=null?depth0.nickname:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"nickname",hash:{},data:data}):helper))+'\' class="toggleOperation">'+escapeExpression((helper=(helper=helpers.method||(depth0!=null?depth0.method:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"method",hash:{},data:data}):helper))+"</a>\n </span>\n <span class='path'>\n <a href='#!/"+escapeExpression((helper=(helper=helpers.encodedParentId||(depth0!=null?depth0.encodedParentId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"encodedParentId",hash:{},data:data}):helper))+"/"+escapeExpression((helper=(helper=helpers.nickname||(depth0!=null?depth0.nickname:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"nickname",hash:{},data:data}):helper))+"' class=\"toggleOperation ";stack1=helpers["if"].call(depth0,depth0!=null?depth0.deprecated:depth0,{name:"if",hash:{},fn:this.program(1,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}buffer+='">'+escapeExpression((helper=(helper=helpers.path||(depth0!=null?depth0.path:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"path",hash:{},data:data}):helper))+"</a>\n </span>\n </h3>\n <ul class='options'>\n <li>\n <a href='#!/"+escapeExpression((helper=(helper=helpers.encodedParentId||(depth0!=null?depth0.encodedParentId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"encodedParentId",hash:{},data:data}):helper))+"/"+escapeExpression((helper=(helper=helpers.nickname||(depth0!=null?depth0.nickname:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"nickname",hash:{},data:data}):helper))+'\' class="toggleOperation">';stack1=(helper=(helper=helpers.summary||(depth0!=null?depth0.summary:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"summary",hash:{},data:data}):helper);if(stack1!=null){buffer+=stack1}buffer+="</a>\n </li>\n </ul>\n </div>\n <div class='content' id='"+escapeExpression((helper=(helper=helpers.parentId||(depth0!=null?depth0.parentId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"parentId",hash:{},data:data}):helper))+"_"+escapeExpression((helper=(helper=helpers.nickname||(depth0!=null?depth0.nickname:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"nickname",hash:{},data:data}):helper))+"_content' style='display:none'>\n";stack1=helpers["if"].call(depth0,depth0!=null?depth0.deprecated:depth0,{name:"if",hash:{},fn:this.program(3,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}stack1=helpers["if"].call(depth0,depth0!=null?depth0.description:depth0,{name:"if",hash:{},fn:this.program(5,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}stack1=(helper=(helper=helpers.oauth||(depth0!=null?depth0.oauth:depth0))!=null?helper:helperMissing,options={name:"oauth",hash:{},fn:this.program(7,data),inverse:this.noop,data:data},typeof helper===functionType?helper.call(depth0,options):helper);if(!helpers.oauth){stack1=blockHelperMissing.call(depth0,stack1,options)}if(stack1!=null){buffer+=stack1}buffer+="\n";stack1=helpers.each.call(depth0,depth0!=null?depth0.oauth:depth0,{name:"each",hash:{},fn:this.program(9,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}buffer+=" ";stack1=(helper=(helper=helpers.oauth||(depth0!=null?depth0.oauth:depth0))!=null?helper:helperMissing,options={name:"oauth",hash:{},fn:this.program(12,data),inverse:this.noop,data:data},typeof helper===functionType?helper.call(depth0,options):helper);if(!helpers.oauth){stack1=blockHelperMissing.call(depth0,stack1,options)}if(stack1!=null){buffer+=stack1}buffer+="\n";stack1=(helper=(helper=helpers.oauth||(depth0!=null?depth0.oauth:depth0))!=null?helper:helperMissing,options={name:"oauth",hash:{},fn:this.program(14,data),inverse:this.noop,data:data},typeof helper===functionType?helper.call(depth0,options):helper);if(!helpers.oauth){stack1=blockHelperMissing.call(depth0,stack1,options)}if(stack1!=null){buffer+=stack1}stack1=helpers["if"].call(depth0,depth0!=null?depth0.type:depth0,{name:"if",hash:{},fn:this.program(16,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}buffer+=" <form accept-charset='UTF-8' class='sandbox'>\n <div style='margin:0;padding:0;display:inline'></div>\n";stack1=helpers["if"].call(depth0,depth0!=null?depth0.parameters:depth0,{name:"if",hash:{},fn:this.program(18,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}stack1=helpers["if"].call(depth0,depth0!=null?depth0.responseMessages:depth0,{name:"if",hash:{},fn:this.program(20,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}stack1=helpers["if"].call(depth0,depth0!=null?depth0.isReadOnly:depth0,{name:"if",hash:{},fn:this.program(22,data),inverse:this.program(24,data),data:data});if(stack1!=null){buffer+=stack1}buffer+=" </form>\n <div class='response' style='display:none'>\n <h4>Curl</h4>\n <div class='block curl'></div>\n <h4 data-sw-translate>Request URL</h4>\n <div class='block request_url'></div>\n";stack1=helpers["if"].call(depth0,depth0!=null?depth0.showRequestHeaders:depth0,{name:"if",hash:{},fn:this.program(26,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}return buffer+" <h4 data-sw-translate>Response Body</h4>\n <div class='block response_body'></div>\n <h4 data-sw-translate>Response Code</h4>\n <div class='block response_code'></div>\n <h4 data-sw-translate>Response Headers</h4>\n <div class='block response_headers'></div>\n </div>\n </div>\n </li>\n </ul>\n"; + +},useData:true});this["Handlebars"]["templates"]["param"]=Handlebars.template({1:function(depth0,helpers,partials,data){var stack1,buffer="";stack1=helpers["if"].call(depth0,depth0!=null?depth0.isFile:depth0,{name:"if",hash:{},fn:this.program(2,data),inverse:this.program(4,data),data:data});if(stack1!=null){buffer+=stack1}return buffer},2:function(depth0,helpers,partials,data){var helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression;return' <input type="file" name=\''+escapeExpression((helper=(helper=helpers.name||(depth0!=null?depth0.name:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"name",hash:{},data:data}):helper))+"' id='"+escapeExpression((helper=(helper=helpers.valueId||(depth0!=null?depth0.valueId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"valueId",hash:{},data:data}):helper))+'\'/>\n <div class="parameter-content-type" />\n'},4:function(depth0,helpers,partials,data){var stack1,buffer="";stack1=helpers["if"].call(depth0,depth0!=null?depth0["default"]:depth0,{name:"if",hash:{},fn:this.program(5,data),inverse:this.program(7,data),data:data});if(stack1!=null){buffer+=stack1}return buffer},5:function(depth0,helpers,partials,data){var helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression;return" <textarea class='body-textarea' name='"+escapeExpression((helper=(helper=helpers.name||(depth0!=null?depth0.name:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"name",hash:{},data:data}):helper))+"' id='"+escapeExpression((helper=(helper=helpers.valueId||(depth0!=null?depth0.valueId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"valueId",hash:{},data:data}):helper))+"'>"+escapeExpression((helper=(helper=helpers["default"]||(depth0!=null?depth0["default"]:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"default",hash:{},data:data}):helper))+'</textarea>\n <br />\n <div class="parameter-content-type" />\n'},7:function(depth0,helpers,partials,data){var helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression;return" <textarea class='body-textarea' name='"+escapeExpression((helper=(helper=helpers.name||(depth0!=null?depth0.name:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"name",hash:{},data:data}):helper))+"' id='"+escapeExpression((helper=(helper=helpers.valueId||(depth0!=null?depth0.valueId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"valueId",hash:{},data:data}):helper))+'\'></textarea>\n <br />\n <div class="parameter-content-type" />\n'},9:function(depth0,helpers,partials,data){var stack1,buffer="";stack1=helpers["if"].call(depth0,depth0!=null?depth0.isFile:depth0,{name:"if",hash:{},fn:this.program(2,data),inverse:this.program(10,data),data:data});if(stack1!=null){buffer+=stack1}return buffer},10:function(depth0,helpers,partials,data){var stack1,helperMissing=helpers.helperMissing,buffer="";stack1=(helpers.renderTextParam||depth0&&depth0.renderTextParam||helperMissing).call(depth0,depth0,{name:"renderTextParam",hash:{},fn:this.program(11,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}return buffer},11:function(depth0,helpers,partials,data){return""},compiler:[6,">= 2.0.0-beta.1"],main:function(depth0,helpers,partials,data){var stack1,helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression,buffer="<td class='code'><label for='"+escapeExpression((helper=(helper=helpers.valueId||(depth0!=null?depth0.valueId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"valueId",hash:{},data:data}):helper))+"'>"+escapeExpression((helper=(helper=helpers.name||(depth0!=null?depth0.name:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"name",hash:{},data:data}):helper))+"</label></td>\n<td>\n\n";stack1=helpers["if"].call(depth0,depth0!=null?depth0.isBody:depth0,{name:"if",hash:{},fn:this.program(1,data),inverse:this.program(9,data),data:data});if(stack1!=null){buffer+=stack1}buffer+='\n</td>\n<td class="markdown">';stack1=(helper=(helper=helpers.description||(depth0!=null?depth0.description:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"description",hash:{},data:data}):helper);if(stack1!=null){buffer+=stack1}buffer+="</td>\n<td>";stack1=(helper=(helper=helpers.paramType||(depth0!=null?depth0.paramType:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"paramType",hash:{},data:data}):helper);if(stack1!=null){buffer+=stack1}return buffer+'</td>\n<td>\n <span class="model-signature"></span>\n</td>\n'},useData:true});this["Handlebars"]["templates"]["param_list"]=Handlebars.template({1:function(depth0,helpers,partials,data){return" required"},3:function(depth0,helpers,partials,data){return' multiple="multiple"'},5:function(depth0,helpers,partials,data){return" required "},7:function(depth0,helpers,partials,data){var stack1,buffer=" <option ";stack1=helpers.unless.call(depth0,depth0!=null?depth0.hasDefault:depth0,{name:"unless",hash:{},fn:this.program(8,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}return buffer+" value=''></option>\n"},8:function(depth0,helpers,partials,data){return' selected="" '},10:function(depth0,helpers,partials,data){var stack1,helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression,buffer="\n <option ";stack1=helpers["if"].call(depth0,depth0!=null?depth0.isDefault:depth0,{name:"if",hash:{},fn:this.program(11,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}buffer+=" value='"+escapeExpression((helper=(helper=helpers.value||(depth0!=null?depth0.value:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"value",hash:{},data:data}):helper))+"'> "+escapeExpression((helper=(helper=helpers.value||(depth0!=null?depth0.value:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"value",hash:{},data:data}):helper))+" ";stack1=helpers["if"].call(depth0,depth0!=null?depth0.isDefault:depth0,{name:"if",hash:{},fn:this.program(13,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}return buffer+" </option>\n\n"},11:function(depth0,helpers,partials,data){return' selected="" '},13:function(depth0,helpers,partials,data){return" (default) "},15:function(depth0,helpers,partials,data){return"<strong>"},17:function(depth0,helpers,partials,data){return"</strong>"},compiler:[6,">= 2.0.0-beta.1"],main:function(depth0,helpers,partials,data){var stack1,helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression,buffer="<td class='code";stack1=helpers["if"].call(depth0,depth0!=null?depth0.required:depth0,{name:"if",hash:{},fn:this.program(1,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}buffer+="'><label for='"+escapeExpression((helper=(helper=helpers.valueId||(depth0!=null?depth0.valueId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"valueId",hash:{},data:data}):helper))+"'>"+escapeExpression((helper=(helper=helpers.name||(depth0!=null?depth0.name:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"name",hash:{},data:data}):helper))+"</label></td>\n<td>\n <select ";stack1=(helpers.isArray||depth0&&depth0.isArray||helperMissing).call(depth0,depth0,{name:"isArray",hash:{},fn:this.program(3,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}buffer+=' class="parameter ';stack1=helpers["if"].call(depth0,depth0!=null?depth0.required:depth0,{name:"if",hash:{},fn:this.program(5,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}buffer+='" name="'+escapeExpression((helper=(helper=helpers.name||(depth0!=null?depth0.name:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"name",hash:{},data:data}):helper))+'" id="'+escapeExpression((helper=(helper=helpers.valueId||(depth0!=null?depth0.valueId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"valueId",hash:{},data:data}):helper))+'">\n\n';stack1=helpers.unless.call(depth0,depth0!=null?depth0.required:depth0,{name:"unless",hash:{},fn:this.program(7,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}buffer+="\n";stack1=helpers.each.call(depth0,(stack1=depth0!=null?depth0.allowableValues:depth0)!=null?stack1.descriptiveValues:stack1,{name:"each",hash:{},fn:this.program(10,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}buffer+='\n </select>\n</td>\n<td class="markdown">';stack1=helpers["if"].call(depth0,depth0!=null?depth0.required:depth0,{name:"if",hash:{},fn:this.program(15,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}stack1=(helper=(helper=helpers.description||(depth0!=null?depth0.description:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"description",hash:{},data:data}):helper);if(stack1!=null){buffer+=stack1}stack1=helpers["if"].call(depth0,depth0!=null?depth0.required:depth0,{name:"if",hash:{},fn:this.program(17,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}buffer+="</td>\n<td>";stack1=(helper=(helper=helpers.paramType||(depth0!=null?depth0.paramType:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"paramType",hash:{},data:data}):helper);if(stack1!=null){buffer+=stack1}return buffer+'</td>\n<td><span class="model-signature"></span></td>\n'},useData:true});this["Handlebars"]["templates"]["param_readonly"]=Handlebars.template({1:function(depth0,helpers,partials,data){var helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression;return" <textarea class='body-textarea' readonly='readonly' name='"+escapeExpression((helper=(helper=helpers.name||(depth0!=null?depth0.name:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"name",hash:{},data:data}):helper))+"' id='"+escapeExpression((helper=(helper=helpers.valueId||(depth0!=null?depth0.valueId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"valueId",hash:{},data:data}):helper))+"'>"+escapeExpression((helper=(helper=helpers["default"]||(depth0!=null?depth0["default"]:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"default",hash:{},data:data}):helper))+"</textarea>\n"},3:function(depth0,helpers,partials,data){var stack1,buffer="";stack1=helpers["if"].call(depth0,depth0!=null?depth0["default"]:depth0,{name:"if",hash:{},fn:this.program(4,data),inverse:this.program(6,data),data:data});if(stack1!=null){buffer+=stack1}return buffer},4:function(depth0,helpers,partials,data){var helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression;return" "+escapeExpression((helper=(helper=helpers["default"]||(depth0!=null?depth0["default"]:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"default",hash:{},data:data}):helper))+"\n"},6:function(depth0,helpers,partials,data){return" (empty)\n"},compiler:[6,">= 2.0.0-beta.1"],main:function(depth0,helpers,partials,data){var stack1,helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression,buffer="<td class='code'><label for='"+escapeExpression((helper=(helper=helpers.valueId||(depth0!=null?depth0.valueId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"valueId",hash:{},data:data}):helper))+"'>"+escapeExpression((helper=(helper=helpers.name||(depth0!=null?depth0.name:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"name",hash:{},data:data}):helper))+"</label></td>\n<td>\n";stack1=helpers["if"].call(depth0,depth0!=null?depth0.isBody:depth0,{name:"if",hash:{},fn:this.program(1,data),inverse:this.program(3,data),data:data});if(stack1!=null){buffer+=stack1}buffer+='</td>\n<td class="markdown">';stack1=(helper=(helper=helpers.description||(depth0!=null?depth0.description:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"description",hash:{},data:data}):helper);if(stack1!=null){buffer+=stack1}buffer+="</td>\n<td>";stack1=(helper=(helper=helpers.paramType||(depth0!=null?depth0.paramType:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"paramType",hash:{},data:data}):helper);if(stack1!=null){buffer+=stack1}return buffer+'</td>\n<td><span class="model-signature"></span></td>\n'},useData:true});this["Handlebars"]["templates"]["param_readonly_required"]=Handlebars.template({1:function(depth0,helpers,partials,data){var helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression;return" <textarea class='body-textarea' readonly='readonly' placeholder='(required)' name='"+escapeExpression((helper=(helper=helpers.name||(depth0!=null?depth0.name:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"name",hash:{},data:data}):helper))+"' id='"+escapeExpression((helper=(helper=helpers.valueId||(depth0!=null?depth0.valueId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"valueId",hash:{},data:data}):helper))+"'>"+escapeExpression((helper=(helper=helpers["default"]||(depth0!=null?depth0["default"]:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"default",hash:{},data:data}):helper))+"</textarea>\n"},3:function(depth0,helpers,partials,data){var stack1,buffer="";stack1=helpers["if"].call(depth0,depth0!=null?depth0["default"]:depth0,{name:"if",hash:{},fn:this.program(4,data),inverse:this.program(6,data),data:data});if(stack1!=null){buffer+=stack1}return buffer},4:function(depth0,helpers,partials,data){var helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression;return" "+escapeExpression((helper=(helper=helpers["default"]||(depth0!=null?depth0["default"]:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"default",hash:{},data:data}):helper))+"\n"},6:function(depth0,helpers,partials,data){return" (empty)\n"},compiler:[6,">= 2.0.0-beta.1"],main:function(depth0,helpers,partials,data){var stack1,helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression,buffer="<td class='code required'><label for='"+escapeExpression((helper=(helper=helpers.valueId||(depth0!=null?depth0.valueId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"valueId",hash:{},data:data}):helper))+"'>"+escapeExpression((helper=(helper=helpers.name||(depth0!=null?depth0.name:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"name",hash:{},data:data}):helper))+"</label></td>\n<td>\n";stack1=helpers["if"].call(depth0,depth0!=null?depth0.isBody:depth0,{name:"if",hash:{},fn:this.program(1,data),inverse:this.program(3,data),data:data});if(stack1!=null){buffer+=stack1}buffer+='</td>\n<td class="markdown">';stack1=(helper=(helper=helpers.description||(depth0!=null?depth0.description:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"description",hash:{},data:data}):helper);if(stack1!=null){buffer+=stack1}buffer+="</td>\n<td>";stack1=(helper=(helper=helpers.paramType||(depth0!=null?depth0.paramType:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"paramType",hash:{},data:data}):helper);if(stack1!=null){buffer+=stack1}return buffer+'</td>\n<td><span class="model-signature"></span></td>\n'},useData:true});this["Handlebars"]["templates"]["param_required"]=Handlebars.template({1:function(depth0,helpers,partials,data){var stack1,buffer="";stack1=helpers["if"].call(depth0,depth0!=null?depth0.isFile:depth0,{name:"if",hash:{},fn:this.program(2,data),inverse:this.program(4,data),data:data});if(stack1!=null){buffer+=stack1}return buffer},2:function(depth0,helpers,partials,data){var helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression;return' <input type="file" name=\''+escapeExpression((helper=(helper=helpers.name||(depth0!=null?depth0.name:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"name",hash:{},data:data}):helper))+"' id='"+escapeExpression((helper=(helper=helpers.valueId||(depth0!=null?depth0.valueId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"valueId",hash:{},data:data}):helper))+"'/>\n"},4:function(depth0,helpers,partials,data){var stack1,buffer="";stack1=helpers["if"].call(depth0,depth0!=null?depth0["default"]:depth0,{name:"if",hash:{},fn:this.program(5,data),inverse:this.program(7,data),data:data});if(stack1!=null){buffer+=stack1}return buffer},5:function(depth0,helpers,partials,data){var helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression;return" <textarea class='body-textarea required' placeholder='(required)' name='"+escapeExpression((helper=(helper=helpers.name||(depth0!=null?depth0.name:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"name",hash:{},data:data}):helper))+"' id=\""+escapeExpression((helper=(helper=helpers.valueId||(depth0!=null?depth0.valueId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"valueId",hash:{},data:data}):helper))+'">'+escapeExpression((helper=(helper=helpers["default"]||(depth0!=null?depth0["default"]:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"default",hash:{},data:data}):helper))+'</textarea>\n <br />\n <div class="parameter-content-type" />\n'},7:function(depth0,helpers,partials,data){var helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression;return" <textarea class='body-textarea required' placeholder='(required)' name='"+escapeExpression((helper=(helper=helpers.name||(depth0!=null?depth0.name:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"name",hash:{},data:data}):helper))+"' id='"+escapeExpression((helper=(helper=helpers.valueId||(depth0!=null?depth0.valueId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"valueId",hash:{},data:data}):helper))+'\'></textarea>\n <br />\n <div class="parameter-content-type" />\n'},9:function(depth0,helpers,partials,data){var stack1,buffer="";stack1=helpers["if"].call(depth0,depth0!=null?depth0.isFile:depth0,{name:"if",hash:{},fn:this.program(10,data),inverse:this.program(12,data),data:data});if(stack1!=null){buffer+=stack1}return buffer},10:function(depth0,helpers,partials,data){var helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression;return" <input class='parameter' class='required' type='file' name='"+escapeExpression((helper=(helper=helpers.name||(depth0!=null?depth0.name:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"name",hash:{},data:data}):helper))+"' id='"+escapeExpression((helper=(helper=helpers.valueId||(depth0!=null?depth0.valueId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"valueId",hash:{},data:data}):helper))+"'/>\n"},12:function(depth0,helpers,partials,data){var stack1,helperMissing=helpers.helperMissing,buffer="";stack1=(helpers.renderTextParam||depth0&&depth0.renderTextParam||helperMissing).call(depth0,depth0,{name:"renderTextParam",hash:{},fn:this.program(13,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}return buffer},13:function(depth0,helpers,partials,data){return""},compiler:[6,">= 2.0.0-beta.1"],main:function(depth0,helpers,partials,data){var stack1,helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression,buffer="<td class='code required'><label for='"+escapeExpression((helper=(helper=helpers.valueId||(depth0!=null?depth0.valueId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"valueId",hash:{},data:data}):helper))+"'>"+escapeExpression((helper=(helper=helpers.name||(depth0!=null?depth0.name:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"name",hash:{},data:data}):helper))+"</label></td>\n<td>\n";stack1=helpers["if"].call(depth0,depth0!=null?depth0.isBody:depth0,{name:"if",hash:{},fn:this.program(1,data),inverse:this.program(9,data),data:data});if(stack1!=null){buffer+=stack1}buffer+='</td>\n<td>\n <strong><span class="markdown">';stack1=(helper=(helper=helpers.description||(depth0!=null?depth0.description:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"description",hash:{},data:data}):helper);if(stack1!=null){buffer+=stack1}buffer+="</span></strong>\n</td>\n<td>";stack1=(helper=(helper=helpers.paramType||(depth0!=null?depth0.paramType:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"paramType",hash:{},data:data}):helper);if(stack1!=null){buffer+=stack1}return buffer+'</td>\n<td><span class="model-signature"></span></td>\n'},useData:true});this["Handlebars"]["templates"]["parameter_content_type"]=Handlebars.template({1:function(depth0,helpers,partials,data){var stack1,buffer="";stack1=helpers.each.call(depth0,depth0!=null?depth0.consumes:depth0,{name:"each",hash:{},fn:this.program(2,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}return buffer},2:function(depth0,helpers,partials,data){var stack1,lambda=this.lambda,buffer=' <option value="';stack1=lambda(depth0,depth0);if(stack1!=null){buffer+=stack1}buffer+='">';stack1=lambda(depth0,depth0);if(stack1!=null){buffer+=stack1}return buffer+"</option>\n"},4:function(depth0,helpers,partials,data){return' <option value="application/json">application/json</option>\n'},compiler:[6,">= 2.0.0-beta.1"],main:function(depth0,helpers,partials,data){var stack1,helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression,buffer='<label for="'+escapeExpression((helper=(helper=helpers.parameterContentTypeId||(depth0!=null?depth0.parameterContentTypeId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"parameterContentTypeId",hash:{},data:data}):helper))+'">Parameter content type:</label>\n<select name="parameterContentType" id="'+escapeExpression((helper=(helper=helpers.parameterContentTypeId||(depth0!=null?depth0.parameterContentTypeId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"parameterContentTypeId",hash:{},data:data}):helper))+'">\n';stack1=helpers["if"].call(depth0,depth0!=null?depth0.consumes:depth0,{name:"if",hash:{},fn:this.program(1,data),inverse:this.program(4,data),data:data});if(stack1!=null){buffer+=stack1}return buffer+"</select>\n"},useData:true});this["Handlebars"]["templates"]["resource"]=Handlebars.template({1:function(depth0,helpers,partials,data){return" : "},3:function(depth0,helpers,partials,data){var helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression;return" <li>\n <a href='"+escapeExpression((helper=(helper=helpers.url||(depth0!=null?depth0.url:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"url",hash:{},data:data}):helper))+"' data-sw-translate>Raw</a>\n </li>\n"},compiler:[6,">= 2.0.0-beta.1"],main:function(depth0,helpers,partials,data){var stack1,helper,options,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression,blockHelperMissing=helpers.blockHelperMissing,buffer="<div class='heading'>\n <h2>\n <a href='#!/"+escapeExpression((helper=(helper=helpers.id||(depth0!=null?depth0.id:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"id",hash:{},data:data}):helper))+'\' class="toggleEndpointList" data-id="'+escapeExpression((helper=(helper=helpers.id||(depth0!=null?depth0.id:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"id",hash:{},data:data}):helper))+'">'+escapeExpression((helper=(helper=helpers.name||(depth0!=null?depth0.name:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"name",hash:{},data:data}):helper))+"</a> ";stack1=(helper=(helper=helpers.summary||(depth0!=null?depth0.summary:depth0))!=null?helper:helperMissing,options={name:"summary",hash:{},fn:this.program(1,data),inverse:this.noop,data:data},typeof helper===functionType?helper.call(depth0,options):helper);if(!helpers.summary){stack1=blockHelperMissing.call(depth0,stack1,options)}if(stack1!=null){buffer+=stack1}stack1=(helper=(helper=helpers.summary||(depth0!=null?depth0.summary:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"summary",hash:{},data:data}):helper);if(stack1!=null){buffer+=stack1}buffer+="\n </h2>\n <ul class='options'>\n <li>\n <a href='#!/"+escapeExpression((helper=(helper=helpers.id||(depth0!=null?depth0.id:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"id",hash:{},data:data}):helper))+"' id='endpointListTogger_"+escapeExpression((helper=(helper=helpers.id||(depth0!=null?depth0.id:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"id",hash:{},data:data}):helper))+'\' class="toggleEndpointList" data-id="'+escapeExpression((helper=(helper=helpers.id||(depth0!=null?depth0.id:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"id",hash:{},data:data}):helper))+'" data-sw-translate>Show/Hide</a>\n </li>\n <li>\n <a href=\'#\' class="collapseResource" data-id="'+escapeExpression((helper=(helper=helpers.id||(depth0!=null?depth0.id:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"id",hash:{},data:data}):helper))+'" data-sw-translate>\n List Operations\n </a>\n </li>\n <li>\n <a href=\'#\' class="expandResource" data-id="'+escapeExpression((helper=(helper=helpers.id||(depth0!=null?depth0.id:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"id",hash:{},data:data}):helper))+'" data-sw-translate>\n Expand Operations\n </a>\n </li>\n';stack1=helpers["if"].call(depth0,depth0!=null?depth0.url:depth0,{name:"if",hash:{},fn:this.program(3,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}return buffer+" </ul>\n</div>\n<ul class='endpoints' id='"+escapeExpression((helper=(helper=helpers.id||(depth0!=null?depth0.id:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"id",hash:{},data:data}):helper))+"_endpoint_list' style='display:none'>\n\n</ul>\n"},useData:true});this["Handlebars"]["templates"]["response_content_type"]=Handlebars.template({1:function(depth0,helpers,partials,data){var stack1,buffer="";stack1=helpers.each.call(depth0,depth0!=null?depth0.produces:depth0,{name:"each",hash:{},fn:this.program(2,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}return buffer},2:function(depth0,helpers,partials,data){var stack1,lambda=this.lambda,buffer=' <option value="';stack1=lambda(depth0,depth0);if(stack1!=null){buffer+=stack1}buffer+='">';stack1=lambda(depth0,depth0);if(stack1!=null){buffer+=stack1}return buffer+"</option>\n"},4:function(depth0,helpers,partials,data){return' <option value="application/json">application/json</option>\n'},compiler:[6,">= 2.0.0-beta.1"],main:function(depth0,helpers,partials,data){var stack1,helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression,buffer='<label data-sw-translate for="'+escapeExpression((helper=(helper=helpers.responseContentTypeId||(depth0!=null?depth0.responseContentTypeId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"responseContentTypeId",hash:{},data:data}):helper))+'">Response Content Type</label>\n<select name="responseContentType" id="'+escapeExpression((helper=(helper=helpers.responseContentTypeId||(depth0!=null?depth0.responseContentTypeId:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"responseContentTypeId",hash:{},data:data}):helper))+'">\n';stack1=helpers["if"].call(depth0,depth0!=null?depth0.produces:depth0,{name:"if",hash:{},fn:this.program(1,data),inverse:this.program(4,data),data:data});if(stack1!=null){buffer+=stack1}return buffer+"</select>\n"},useData:true});this["Handlebars"]["templates"]["signature"]=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(depth0,helpers,partials,data){var stack1,helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression,buffer='<div>\n<ul class="signature-nav">\n <li><a class="description-link" href="#" data-sw-translate>Model</a></li>\n <li><a class="snippet-link" href="#" data-sw-translate>Model Schema</a></li>\n</ul>\n<div>\n\n<div class="signature-container">\n <div class="description">\n ';stack1=(helper=(helper=helpers.signature||(depth0!=null?depth0.signature:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"signature",hash:{},data:data}):helper);if(stack1!=null){buffer+=stack1}return buffer+'\n </div>\n\n <div class="snippet">\n <pre><code>'+escapeExpression((helper=(helper=helpers.sampleJSON||(depth0!=null?depth0.sampleJSON:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"sampleJSON",hash:{},data:data}):helper))+'</code></pre>\n <small class="notice"></small>\n </div>\n</div>\n\n'},useData:true});this["Handlebars"]["templates"]["status_code"]=Handlebars.template({1:function(depth0,helpers,partials,data){var lambda=this.lambda,escapeExpression=this.escapeExpression;return" <tr>\n <td>"+escapeExpression(lambda(data&&data.key,depth0))+"</td>\n <td>"+escapeExpression(lambda(depth0!=null?depth0.description:depth0,depth0))+"</td>\n <td>"+escapeExpression(lambda(depth0!=null?depth0.type:depth0,depth0))+"</td>\n </tr>\n"},compiler:[6,">= 2.0.0-beta.1"],main:function(depth0,helpers,partials,data){var stack1,helper,functionType="function",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression,buffer="<td width='15%' class='code'>"+escapeExpression((helper=(helper=helpers.code||(depth0!=null?depth0.code:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"code",hash:{},data:data}):helper))+'</td>\n<td class="markdown">';stack1=(helper=(helper=helpers.message||(depth0!=null?depth0.message:depth0))!=null?helper:helperMissing,typeof helper===functionType?helper.call(depth0,{name:"message",hash:{},data:data}):helper);if(stack1!=null){buffer+=stack1}buffer+='</td>\n<td width=\'50%\'><span class="model-signature" /></td>\n<td class="headers">\n <table>\n <tbody>\n';stack1=helpers.each.call(depth0,depth0!=null?depth0.headers:depth0,{ +name:"each",hash:{},fn:this.program(1,data),inverse:this.noop,data:data});if(stack1!=null){buffer+=stack1}return buffer+" </tbody>\n </table>\n</td>"},useData:true});(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.SwaggerClient=f()}})(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){"use strict";var auth=require("./lib/auth");var helpers=require("./lib/helpers");var SwaggerClient=require("./lib/client");var deprecationWrapper=function(url,options){helpers.log('This is deprecated, use "new SwaggerClient" instead.');return new SwaggerClient(url,options)};if(!Array.prototype.indexOf){Array.prototype.indexOf=function(obj,start){for(var i=start||0,j=this.length;i<j;i++){if(this[i]===obj){return i}}return-1}}if(!String.prototype.trim){String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}}if(!String.prototype.endsWith){String.prototype.endsWith=function(suffix){return this.indexOf(suffix,this.length-suffix.length)!==-1}}module.exports=SwaggerClient;SwaggerClient.ApiKeyAuthorization=auth.ApiKeyAuthorization;SwaggerClient.PasswordAuthorization=auth.PasswordAuthorization;SwaggerClient.CookieAuthorization=auth.CookieAuthorization;SwaggerClient.SwaggerApi=deprecationWrapper;SwaggerClient.SwaggerClient=deprecationWrapper;SwaggerClient.SchemaMarkup=require("./lib/schema-markup")},{"./lib/auth":2,"./lib/client":3,"./lib/helpers":4,"./lib/schema-markup":7}],2:[function(require,module,exports){"use strict";var helpers=require("./helpers");var btoa=require("btoa");var CookieJar=require("cookiejar");var _={each:require("lodash-compat/collection/each"),includes:require("lodash-compat/collection/includes"),isObject:require("lodash-compat/lang/isObject"),isArray:require("lodash-compat/lang/isArray")};var SwaggerAuthorizations=module.exports.SwaggerAuthorizations=function(authz){this.authz=authz||{}};SwaggerAuthorizations.prototype.add=function(name,auth){if(_.isObject(name)){for(var key in name){this.authz[key]=name[key]}}else if(typeof name==="string"){this.authz[name]=auth}return auth};SwaggerAuthorizations.prototype.remove=function(name){return delete this.authz[name]};SwaggerAuthorizations.prototype.apply=function(obj,securities){var status=true;var applyAll=!securities;var flattenedSecurities=[];_.each(securities,function(obj,key){if(typeof key==="string"){flattenedSecurities.push(key)}_.each(obj,function(val,key){flattenedSecurities.push(key)})});_.each(this.authz,function(auth,authName){if(applyAll||_.includes(flattenedSecurities,authName)){var newStatus=auth.apply(obj);status=status&&!!newStatus}});return status};var ApiKeyAuthorization=module.exports.ApiKeyAuthorization=function(name,value,type){this.name=name;this.value=value;this.type=type};ApiKeyAuthorization.prototype.apply=function(obj){if(this.type==="query"){if(obj.url.indexOf("?")>0){obj.url=obj.url+"&"+this.name+"="+this.value}else{obj.url=obj.url+"?"+this.name+"="+this.value}return true}else if(this.type==="header"){if(typeof obj.headers[this.name]==="undefined"){obj.headers[this.name]=this.value}return true}};var CookieAuthorization=module.exports.CookieAuthorization=function(cookie){this.cookie=cookie};CookieAuthorization.prototype.apply=function(obj){obj.cookieJar=obj.cookieJar||new CookieJar;obj.cookieJar.setCookie(this.cookie);return true};var PasswordAuthorization=module.exports.PasswordAuthorization=function(username,password){if(arguments.length===3){helpers.log("PasswordAuthorization: the 'name' argument has been removed, pass only username and password");username=arguments[1];password=arguments[2]}this.username=username;this.password=password};PasswordAuthorization.prototype.apply=function(obj){if(typeof obj.headers.Authorization==="undefined"){obj.headers.Authorization="Basic "+btoa(this.username+":"+this.password)}return true}},{"./helpers":4,btoa:18,cookiejar:19,"lodash-compat/collection/each":55,"lodash-compat/collection/includes":58,"lodash-compat/lang/isArray":143,"lodash-compat/lang/isObject":147}],3:[function(require,module,exports){"use strict";var _={bind:require("lodash-compat/function/bind"),cloneDeep:require("lodash-compat/lang/cloneDeep"),find:require("lodash-compat/collection/find"),forEach:require("lodash-compat/collection/forEach"),indexOf:require("lodash-compat/array/indexOf"),isArray:require("lodash-compat/lang/isArray"),isObject:require("lodash-compat/lang/isObject"),isFunction:require("lodash-compat/lang/isFunction"),isPlainObject:require("lodash-compat/lang/isPlainObject"),isUndefined:require("lodash-compat/lang/isUndefined")};var auth=require("./auth");var helpers=require("./helpers");var Model=require("./types/model");var Operation=require("./types/operation");var OperationGroup=require("./types/operationGroup");var Resolver=require("./resolver");var SwaggerHttp=require("./http");var SwaggerSpecConverter=require("./spec-converter");var reservedClientTags=["apis","authorizationScheme","authorizations","basePath","build","buildFrom1_1Spec","buildFrom1_2Spec","buildFromSpec","clientAuthorizations","convertInfo","debug","defaultErrorCallback","defaultSuccessCallback","fail","failure","finish","help","idFromOp","info","initialize","isBuilt","isValid","modelPropertyMacro","models","modelsArray","options","parameterMacro","parseUri","progress","resourceCount","sampleModels","selfReflect","setConsolidatedModels","spec","supportedSubmitMethods","swaggerRequestHeaders","tagFromLabel","url","useJQuery"];var reservedApiTags=["apis","asCurl","description","externalDocs","help","label","name","operation","operations","operationsArray","path","tag"];var supportedOperationMethods=["delete","get","head","options","patch","post","put"];var SwaggerClient=module.exports=function(url,options){this.authorizations=null;this.authorizationScheme=null;this.basePath=null;this.debug=false;this.info=null;this.isBuilt=false;this.isValid=false;this.modelsArray=[];this.resourceCount=0;this.url=null;this.useJQuery=false;this.swaggerObject={};this.clientAuthorizations=new auth.SwaggerAuthorizations;if(typeof url!=="undefined"){return this.initialize(url,options)}else{return this}};SwaggerClient.prototype.initialize=function(url,options){this.models={};this.sampleModels={};if(typeof url==="string"){this.url=url}else if(_.isObject(url)){options=url;this.url=options.url}options=options||{};this.clientAuthorizations.add(options.authorizations);this.swaggerRequestHeaders=options.swaggerRequestHeaders||"application/json;charset=utf-8,*/*";this.defaultSuccessCallback=options.defaultSuccessCallback||null;this.defaultErrorCallback=options.defaultErrorCallback||null;this.modelPropertyMacro=options.modelPropertyMacro||null;this.parameterMacro=options.parameterMacro||null;if(typeof options.success==="function"){this.success=options.success}if(options.useJQuery){this.useJQuery=options.useJQuery}this.options=options||{};this.supportedSubmitMethods=options.supportedSubmitMethods||[];this.failure=options.failure||function(){};this.progress=options.progress||function(){};this.spec=_.cloneDeep(options.spec);if(options.scheme){this.scheme=options.scheme}if(typeof options.success==="function"){this.ready=true;this.build()}};SwaggerClient.prototype.build=function(mock){if(this.isBuilt){return this}var self=this;this.progress("fetching resource list: "+this.url);var obj={useJQuery:this.useJQuery,url:this.url,method:"get",headers:{accept:this.swaggerRequestHeaders},on:{error:function(response){if(self.url.substring(0,4)!=="http"){return self.fail("Please specify the protocol for "+self.url)}else if(response.status===0){return self.fail("Can't read from server. It may not have the appropriate access-control-origin settings.")}else if(response.status===404){return self.fail("Can't read swagger JSON from "+self.url)}else{return self.fail(response.status+" : "+response.statusText+" "+self.url)}},response:function(resp){var responseObj=resp.obj;if(!responseObj){return self.fail("failed to parse JSON/YAML response")}self.swaggerVersion=responseObj.swaggerVersion;self.swaggerObject=responseObj;if(responseObj.swagger&&parseInt(responseObj.swagger)===2){self.swaggerVersion=responseObj.swagger;(new Resolver).resolve(responseObj,self.url,self.buildFromSpec,self);self.isValid=true}else{var converter=new SwaggerSpecConverter;self.oldSwaggerObject=self.swaggerObject;converter.setDocumentationLocation(self.url);converter.convert(responseObj,self.clientAuthorizations,function(spec){self.swaggerObject=spec;(new Resolver).resolve(spec,self.url,self.buildFromSpec,self);self.isValid=true})}}}};if(this.spec){self.swaggerObject=this.spec;setTimeout(function(){(new Resolver).resolve(self.spec,self.buildFromSpec,self)},10)}else{this.clientAuthorizations.apply(obj);if(mock){return obj}(new SwaggerHttp).execute(obj,this.options)}return this};SwaggerClient.prototype.buildFromSpec=function(response){if(this.isBuilt){return this}this.apis={};this.apisArray=[];this.basePath=response.basePath||"";this.consumes=response.consumes;this.host=response.host||"";this.info=response.info||{};this.produces=response.produces;this.schemes=response.schemes||[];this.securityDefinitions=response.securityDefinitions;this.title=response.title||"";if(response.externalDocs){this.externalDocs=response.externalDocs}this.authSchemes=response.securityDefinitions;var definedTags={};var k;if(Array.isArray(response.tags)){definedTags={};for(k=0;k<response.tags.length;k++){var t=response.tags[k];definedTags[t.name]=t}}var location;if(typeof this.url==="string"){location=this.parseUri(this.url);if(typeof this.scheme==="undefined"&&typeof this.schemes==="undefined"||this.schemes.length===0){this.scheme=location.scheme||"http"}else if(typeof this.scheme==="undefined"){this.scheme=this.schemes[0]}if(typeof this.host==="undefined"||this.host===""){this.host=location.host;if(location.port){this.host=this.host+":"+location.port}}}else{if(typeof this.schemes==="undefined"||this.schemes.length===0){this.scheme="http"}else if(typeof this.scheme==="undefined"){this.scheme=this.schemes[0]}}this.definitions=response.definitions;var key;for(key in this.definitions){var model=new Model(key,this.definitions[key],this.models,this.modelPropertyMacro);if(model){this.models[key]=model}}var self=this;self.apis.help=_.bind(self.help,self);_.forEach(response.paths,function(pathObj,path){if(!_.isPlainObject(pathObj)){return}_.forEach(supportedOperationMethods,function(method){var operation=pathObj[method];if(_.isUndefined(operation)){return}else if(!_.isPlainObject(operation)){helpers.log("The '"+method+"' operation for '"+path+"' path is not an Operation Object");return}var tags=operation.tags;if(_.isUndefined(tags)||!_.isArray(tags)||tags.length===0){tags=operation.tags=["default"]}var operationId=self.idFromOp(path,method,operation);var operationObject=new Operation(self,operation.scheme,operationId,method,path,operation,self.definitions,self.models,self.clientAuthorizations);_.forEach(tags,function(tag){var clientProperty=_.indexOf(reservedClientTags,tag)>-1?"_"+tag:tag;var apiProperty=_.indexOf(reservedApiTags,tag)>-1?"_"+tag:tag;var operationGroup=self[clientProperty];if(clientProperty!==tag){helpers.log("The '"+tag+"' tag conflicts with a SwaggerClient function/property name. Use 'client."+clientProperty+"' or 'client.apis."+tag+"' instead of 'client."+tag+"'.")}if(apiProperty!==tag){helpers.log("The '"+tag+"' tag conflicts with a SwaggerClient operation function/property name. Use "+"'client.apis."+apiProperty+"' instead of 'client.apis."+tag+"'.")}if(_.indexOf(reservedApiTags,operationId)>-1){helpers.log("The '"+operationId+"' operationId conflicts with a SwaggerClient operation "+"function/property name. Use 'client.apis."+apiProperty+"._"+operationId+"' instead of 'client.apis."+apiProperty+"."+operationId+"'.");operationId="_"+operationId;operationObject.nickname=operationId}if(_.isUndefined(operationGroup)){operationGroup=self[clientProperty]=self.apis[apiProperty]={};operationGroup.operations={};operationGroup.label=apiProperty;operationGroup.apis={};var tagDef=definedTags[tag];if(!_.isUndefined(tagDef)){operationGroup.description=tagDef.description;operationGroup.externalDocs=tagDef.externalDocs}self[clientProperty].help=_.bind(self.help,operationGroup);self.apisArray.push(new OperationGroup(tag,operationGroup.description,operationGroup.externalDocs,operationObject))}if(!_.isFunction(operationGroup.help)){operationGroup.help=_.bind(self.help,operationGroup)}self.apis[apiProperty][operationId]=operationGroup[operationId]=_.bind(operationObject.execute,operationObject);self.apis[apiProperty][operationId].help=operationGroup[operationId].help=_.bind(operationObject.help,operationObject);self.apis[apiProperty][operationId].asCurl=operationGroup[operationId].asCurl=_.bind(operationObject.asCurl,operationObject);operationGroup.apis[operationId]=operationGroup.operations[operationId]=operationObject;var api=_.find(self.apisArray,function(api){return api.tag===tag});if(api){api.operationsArray.push(operationObject)}})})});this.isBuilt=true;if(this.success){this.isValid=true;this.isBuilt=true;this.success()}return this};SwaggerClient.prototype.parseUri=function(uri){var urlParseRE=/^(((([^:\/#\?]+:)?(?:(\/\/)((?:(([^:@\/#\?]+)(?:\:([^:@\/#\?]+))?)@)?(([^:\/#\?\]\[]+|\[[^\/\]@#?]+\])(?:\:([0-9]+))?))?)?)?((\/?(?:[^\/\?#]+\/+)*)([^\?#]*)))?(\?[^#]+)?)(#.*)?/;var parts=urlParseRE.exec(uri);return{scheme:parts[4].replace(":",""),host:parts[11],port:parts[12],path:parts[15]}};SwaggerClient.prototype.help=function(dontPrint){var output="";if(this instanceof SwaggerClient){_.forEach(this.apis,function(api,name){if(_.isPlainObject(api)){output+="operations for the '"+name+"' tag\n";_.forEach(api.operations,function(operation,name){output+=" * "+name+": "+operation.summary+"\n"})}})}else if(this instanceof OperationGroup||_.isPlainObject(this)){output+="operations for the '"+this.label+"' tag\n";_.forEach(this.apis,function(operation,name){output+=" * "+name+": "+operation.summary+"\n"})}if(dontPrint){return output}else{helpers.log(output);return output}};SwaggerClient.prototype.tagFromLabel=function(label){return label};SwaggerClient.prototype.idFromOp=function(path,httpMethod,op){if(!op||!op.operationId){op=op||{};op.operationId=httpMethod+"_"+path}var opId=op.operationId.replace(/[\s!@#$%^&*()_+=\[{\]};:<>|.\/?,\\'""-]/g,"_")||path.substring(1)+"_"+httpMethod;opId=opId.replace(/((_){2,})/g,"_");opId=opId.replace(/^(_)*/g,"");opId=opId.replace(/([_])*$/g,"");return opId};SwaggerClient.prototype.setHost=function(host){this.host=host;if(this.apis){_.forEach(this.apis,function(api){if(api.operations){_.forEach(api.operations,function(operation){operation.host=host})}})}};SwaggerClient.prototype.setBasePath=function(basePath){this.basePath=basePath;if(this.apis){_.forEach(this.apis,function(api){if(api.operations){_.forEach(api.operations,function(operation){operation.basePath=basePath})}})}};SwaggerClient.prototype.fail=function(message){this.failure(message);throw message}},{"./auth":2,"./helpers":4,"./http":5,"./resolver":6,"./spec-converter":8,"./types/model":9,"./types/operation":10,"./types/operationGroup":11,"lodash-compat/array/indexOf":52,"lodash-compat/collection/find":56,"lodash-compat/collection/forEach":57,"lodash-compat/function/bind":61,"lodash-compat/lang/cloneDeep":141,"lodash-compat/lang/isArray":143,"lodash-compat/lang/isFunction":145,"lodash-compat/lang/isObject":147,"lodash-compat/lang/isPlainObject":148,"lodash-compat/lang/isUndefined":151}],4:[function(require,module,exports){(function(process){"use strict";var _={isPlainObject:require("lodash-compat/lang/isPlainObject"),indexOf:require("lodash-compat/array/indexOf")};module.exports.__bind=function(fn,me){return function(){return fn.apply(me,arguments)}};var log=module.exports.log=function(){if(console&&process.env.NODE_ENV!=="test"){console.log(Array.prototype.slice.call(arguments)[0])}};module.exports.fail=function(message){log(message)};var optionHtml=module.exports.optionHtml=function(label,value){return'<tr><td class="optionName">'+label+":</td><td>"+value+"</td></tr>"};var resolveSchema=module.exports.resolveSchema=function(schema){if(_.isPlainObject(schema.schema)){schema=resolveSchema(schema.schema)}return schema};var simpleRef=module.exports.simpleRef=function(name){if(typeof name==="undefined"){return null}if(name.indexOf("#/definitions/")===0){return name.substring("#/definitions/".length)}else{return name}}}).call(this,require("_process"))},{_process:17,"lodash-compat/array/indexOf":52,"lodash-compat/lang/isPlainObject":148}],5:[function(require,module,exports){"use strict";var helpers=require("./helpers");var jQuery=require("jquery");var request=require("superagent");var jsyaml=require("js-yaml");var _={isObject:require("lodash-compat/lang/isObject")};var JQueryHttpClient=function(){};var SuperagentHttpClient=function(){};var SwaggerHttp=module.exports=function(){};SwaggerHttp.prototype.execute=function(obj,opts){var client;if(opts&&opts.client){client=opts.client}else{client=new SuperagentHttpClient(opts)}if(obj&&obj.useJQuery===true||this.isInternetExplorer()){client=new JQueryHttpClient(opts)}var success=obj.on.response;var responseInterceptor=function(data){if(opts&&opts.responseInterceptor){data=opts.responseInterceptor.apply(data)}success(data)};obj.on.response=function(data){responseInterceptor(data)};if(_.isObject(obj)&&_.isObject(obj.body)){if(obj.body.type&&obj.body.type==="formData"){obj.contentType=false;obj.processData=false;delete obj.headers["Content-Type"]}else{obj.body=JSON.stringify(obj.body)}}client.execute(obj)};SwaggerHttp.prototype.isInternetExplorer=function(){var detectedIE=false;if(typeof navigator!=="undefined"&&navigator.userAgent){var nav=navigator.userAgent.toLowerCase();if(nav.indexOf("msie")!==-1){var version=parseInt(nav.split("msie")[1]);if(version<=8){detectedIE=true}}}return detectedIE};JQueryHttpClient.prototype.execute=function(obj){var cb=obj.on;var request=obj;obj.type=obj.method;obj.cache=false;delete obj.useJQuery;obj.data=obj.body;delete obj.body;obj.complete=function(response){var headers={};var headerArray=response.getAllResponseHeaders().split("\n");for(var i=0;i<headerArray.length;i++){var toSplit=headerArray[i].trim();if(toSplit.length===0){continue}var separator=toSplit.indexOf(":");if(separator===-1){headers[toSplit]=null;continue}var name=toSplit.substring(0,separator).trim();var value=toSplit.substring(separator+1).trim();headers[name]=value}var out={url:request.url,method:request.method,status:response.status,statusText:response.statusText,data:response.responseText,headers:headers};try{var possibleObj=response.responseJSON||jsyaml.safeLoad(response.responseText);out.obj=typeof possibleObj==="string"?{}:possibleObj}catch(ex){helpers.log("unable to parse JSON/YAML content")}out.obj=out.obj||null;if(response.status>=200&&response.status<300){cb.response(out)}else if(response.status===0||response.status>=400&&response.status<599){cb.error(out)}else{return cb.response(out)}};jQuery.support.cors=true;return jQuery.ajax(obj)};SuperagentHttpClient.prototype.execute=function(obj){var method=obj.method.toLowerCase();if(method==="delete"){method="del"}var headers=obj.headers||{};var r=request[method](obj.url);var name;for(name in headers){r.set(name,headers[name])}if(obj.body){r.send(obj.body)}if(typeof r.buffer==="function"){r.buffer()}r.end(function(err,res){res=res||{status:0,headers:{error:"no response from server"}};var response={url:obj.url,method:obj.method,headers:res.headers};var cb;if(!err&&res.error){err=res.error}if(err&&obj.on&&obj.on.error){response.obj=err;response.status=res?res.status:500;response.statusText=res?res.text:err.message;cb=obj.on.error}else if(res&&obj.on&&obj.on.response){var possibleObj;if(res.body&&Object.keys(res.body).length>0){possibleObj=res.body}else{try{possibleObj=jsyaml.safeLoad(res.text);possibleObj=typeof possibleObj==="string"?null:possibleObj}catch(e){helpers.log("cannot parse JSON/YAML content")}}response.obj=possibleObj||null;response.status=res.status;response.statusText=res.text;cb=obj.on.response}response.data=response.statusText;if(cb){cb(response)}})}},{"./helpers":4,jquery:20,"js-yaml":21,"lodash-compat/lang/isObject":147,superagent:160}],6:[function(require,module,exports){"use strict";var SwaggerHttp=require("./http");var _={isObject:require("lodash-compat/lang/isObject"),isArray:require("lodash-compat/lang/isArray")};var Resolver=module.exports=function(){};Resolver.prototype.processAllOf=function(name,definition,resolutionTable,unresolvedRefs,spec){var i,location,property;definition["x-resolved-from"]=["#/definitions/"+name];var allOf=definition.allOf;allOf.sort(function(a,b){if(a.$ref&&b.$ref){return 0}else if(a.$ref){return-1}else{return 1}});for(i=0;i<allOf.length;i++){property=allOf[i];location="/definitions/"+name+"/allOf";this.resolveInline(null,spec,property,resolutionTable,unresolvedRefs,location)}};Resolver.prototype.resolve=function(spec,arg1,arg2,arg3){var root=arg1,callback=arg2,scope=arg3,location,i;if(typeof arg1==="function"){root=null;callback=arg1;scope=arg2}var _root=root;this.scope=scope||this;this.iteration=this.iteration||0;var name,path,property,propertyName;var processedCalls=0,resolvedRefs={},unresolvedRefs={};var resolutionTable=[];for(name in spec.definitions){var definition=spec.definitions[name];for(propertyName in definition.properties){property=definition.properties[propertyName];if(_.isArray(property.allOf)){this.processAllOf(name,property,resolutionTable,unresolvedRefs,spec)}else{this.resolveTo(root,property,resolutionTable,"/definitions")}}if(definition.allOf){this.processAllOf(name,definition,resolutionTable,unresolvedRefs,spec)}}for(name in spec.paths){var method,operation,responseCode;path=spec.paths[name];for(method in path){if(method==="$ref"){location="/paths"+name;this.resolveInline(root,spec,path,resolutionTable,unresolvedRefs,location)}else{operation=path[method];var parameters=operation.parameters;for(i in parameters){var parameter=parameters[i];location="/paths"+name+"/"+method+"/parameters";if(parameter.in==="body"&&parameter.schema){this.resolveTo(root,parameter.schema,resolutionTable,location)}if(parameter.$ref){this.resolveInline(root,spec,parameter,resolutionTable,unresolvedRefs,parameter.$ref)}}for(responseCode in operation.responses){var response=operation.responses[responseCode];location="/paths"+name+"/"+method+"/responses/"+responseCode;if(_.isObject(response)){if(response.$ref){this.resolveInline(root,spec,response,resolutionTable,unresolvedRefs,location)}if(response.schema){this.resolveTo(root,response.schema,resolutionTable,location)}}}}}}var expectedCalls=0,toResolve=[];var all=resolutionTable;var parts;for(i=0;i<all.length;i++){var a=all[i];if(root===a.root){if(a.resolveAs==="ref"){var joined=((a.root||"")+"/"+a.key).split("/");var normalized=[];var url="";var k;if(a.key.indexOf("../")>=0){for(var j=0;j<joined.length;j++){if(joined[j]===".."){normalized=normalized.slice(0,normalized.length-1)}else{normalized.push(joined[j])}}for(k=0;k<normalized.length;k++){if(k>0){url+="/"}url+=normalized[k]}a.root=url;toResolve.push(a)}else{parts=a.key.split("#");if(parts.length===2){if(parts[0].indexOf("http://")===0||parts[0].indexOf("https://")===0){a.root=parts[0]}location=parts[1].split("/");var r;var s=spec;for(k=0;k<location.length;k++){var part=location[k];if(part!==""){s=s[part];if(typeof s!=="undefined"){r=s}else{r=null;break}}}if(r===null){toResolve.push(a)}}}}else{if(a.resolveAs==="inline"){if(a.key&&a.key.indexOf("#")===-1&&a.key.charAt(0)!=="/"){parts=a.root.split("/");location="";for(i=0;i<parts.length-1;i++){location+=parts[i]+"/"}location+=a.key;a.root=location;a.location=""}toResolve.push(a)}}}else{toResolve.push(a)}}expectedCalls=toResolve.length;for(var ii=0;ii<toResolve.length;ii++){(function(item,self){if(item.root===null||item.root===root){self.resolveItem(spec,_root,resolutionTable,resolvedRefs,unresolvedRefs,item);processedCalls+=1;if(processedCalls===expectedCalls){self.finish(spec,root,resolutionTable,resolvedRefs,unresolvedRefs,callback)}}else{var obj={useJQuery:false,url:item.root,method:"get",headers:{accept:self.scope.swaggerRequestHeaders||"application/json"},on:{error:function(){processedCalls+=1;unresolvedRefs[item.key]={root:item.root,location:item.location};if(processedCalls===expectedCalls){self.finish(spec,_root,resolutionTable,resolvedRefs,unresolvedRefs,callback)}},response:function(response){var swagger=response.obj;self.resolveItem(swagger,item.root,resolutionTable,resolvedRefs,unresolvedRefs,item);processedCalls+=1;if(processedCalls===expectedCalls){self.finish(spec,_root,resolutionTable,resolvedRefs,unresolvedRefs,callback)}}}};if(scope&&scope.clientAuthorizations){scope.clientAuthorizations.apply(obj)}(new SwaggerHttp).execute(obj)}})(toResolve[ii],this)}if(Object.keys(toResolve).length===0){this.finish(spec,_root,resolutionTable,resolvedRefs,unresolvedRefs,callback)}};Resolver.prototype.resolveItem=function(spec,root,resolutionTable,resolvedRefs,unresolvedRefs,item){var path=item.location;var location=spec,parts=path.split("/");if(path!==""){for(var j=0;j<parts.length;j++){var segment=parts[j];if(segment.indexOf("~1")!==-1){segment=parts[j].replace(/~0/g,"~").replace(/~1/g,"/");if(segment.charAt(0)!=="/"){segment="/"+segment}}if(typeof location==="undefined"||location===null){break}if(segment===""&&j===parts.length-1&&parts.length>1){location=null;break}if(segment.length>0){location=location[segment]}}}var resolved=item.key;parts=item.key.split("/");var resolvedName=parts[parts.length-1];if(resolvedName.indexOf("#")>=0){resolvedName=resolvedName.split("#")[1]}if(location!==null&&typeof location!=="undefined"){resolvedRefs[resolved]={name:resolvedName,obj:location,key:item.key,root:item.root}}else{unresolvedRefs[resolved]={root:item.root,location:item.location}}};Resolver.prototype.finish=function(spec,root,resolutionTable,resolvedRefs,unresolvedRefs,callback){var ref;for(ref in resolutionTable){var item=resolutionTable[ref];var key=item.key;var resolvedTo=resolvedRefs[key];if(resolvedTo){spec.definitions=spec.definitions||{};if(item.resolveAs==="ref"){for(key in resolvedTo.obj){var abs=this.retainRoot(resolvedTo.obj[key],item.root)}spec.definitions[resolvedTo.name]=resolvedTo.obj;item.obj.$ref="#/definitions/"+resolvedTo.name}else if(item.resolveAs==="inline"){var targetObj=item.obj;targetObj["x-resolved-from"]=[item.key];delete targetObj.$ref;for(key in resolvedTo.obj){var abs=this.retainRoot(resolvedTo.obj[key],item.root);targetObj[key]=abs}}}}var existingUnresolved=this.countUnresolvedRefs(spec);if(existingUnresolved.length===0||this.iteration>5){this.resolveAllOf(spec.definitions);callback.call(this.scope,spec,unresolvedRefs)}else{this.iteration+=1;this.resolve(spec,root,callback,this.scope)}};Resolver.prototype.countUnresolvedRefs=function(spec){var i;var refs=this.getRefs(spec);var keys=[];var unresolvedKeys=[];for(i in refs){if(i.indexOf("#")===0){keys.push(i.substring(1))}else{unresolvedKeys.push(i)}}for(i=0;i<keys.length;i++){var part=keys[i];var parts=part.split("/");var obj=spec;for(var k=0;k<parts.length;k++){var key=parts[k];if(key!==""){obj=obj[key];if(typeof obj==="undefined"){unresolvedKeys.push(part);break}}}}return unresolvedKeys.length};Resolver.prototype.getRefs=function(spec,obj){obj=obj||spec;var output={};for(var key in obj){if(!obj.hasOwnProperty(key)){continue}var item=obj[key];if(key==="$ref"&&typeof item==="string"){output[item]=null}else if(_.isObject(item)){var o=this.getRefs(item);for(var k in o){output[k]=null}}}return output};Resolver.prototype.retainRoot=function(obj,root){for(var key in obj){var item=obj[key];if(key==="$ref"&&typeof item==="string"){if(item.indexOf("http://")!==0&&item.indexOf("https://")!==0){if(item.indexOf("#")!==0){item="#"+item}item=(root||"")+item;obj[key]=item}}else if(_.isObject(item)){this.retainRoot(item,root)}}return obj};Resolver.prototype.resolveInline=function(root,spec,property,resolutionTable,unresolvedRefs,location){var key=property.$ref,ref=property.$ref,i,p,p2,rs;var rootTrimmed=false;if(ref){if(ref.indexOf("../")===0){p=ref.split("../");p2=root.split("/");ref="";for(i=0;i<p.length;i++){if(p[i]===""){p2=p2.slice(0,p2.length-1)}else{ref+=p[i]}}root="";for(i=0;i<p2.length-1;i++){if(i>0){root+="/"}root+=p2[i]}rootTrimmed=true}if(ref.indexOf("#")>=0){if(ref.indexOf("/")===0){rs=ref.split("#");p=root.split("//");p2=p[1].split("/");root=p[0]+"//"+p2[0]+rs[0];location=rs[1]}else{rs=ref.split("#");if(rs[0]!==""){p2=root.split("/");p2=p2.slice(0,p2.length-1);if(!rootTrimmed){root="";for(var k=0;k<p2.length;k++){if(k>0){root+="/"}root+=p2[k]}}root+="/"+ref.split("#")[0]}location=rs[1]}}if(ref.indexOf("http")===0){if(ref.indexOf("#")>=0){root=ref.split("#")[0];location=ref.split("#")[1]}else{root=ref;location=""}resolutionTable.push({obj:property,resolveAs:"inline",root:root,key:key,location:location})}else if(ref.indexOf("#")===0){location=ref.split("#")[1];resolutionTable.push({obj:property,resolveAs:"inline",root:root,key:key,location:location})}else{resolutionTable.push({obj:property,resolveAs:"inline",root:root,key:key,location:location})}}else if(property.type==="array"){this.resolveTo(root,property.items,resolutionTable,location)}};Resolver.prototype.resolveTo=function(root,property,resolutionTable,location){var sp,i;var ref=property.$ref;var lroot=root;if(typeof ref!=="undefined"){if(ref.indexOf("#")>=0){var parts=ref.split("#");if(parts[0]&&ref.indexOf("/")===0){}else if(parts[0]&&ref.indexOf("http")===0){}else if(parts[0]&&parts[0].length>0){sp=root.split("/");lroot="";for(i=0;i<sp.length-1;i++){lroot+=sp[i]+"/"}lroot+=parts[0]}else{}location=parts[1]}else{sp=root.split("/");lroot="";for(i=0;i<sp.length-1;i++){lroot+=sp[i]+"/"}lroot+=ref;location=""}resolutionTable.push({obj:property,resolveAs:"ref",root:lroot,key:ref,location:location})}else if(property.type==="array"){var items=property.items;this.resolveTo(root,items,resolutionTable,location)}};Resolver.prototype.resolveAllOf=function(spec,obj,depth){depth=depth||0;obj=obj||spec;var name;for(var key in obj){if(!obj.hasOwnProperty(key)){continue}var item=obj[key];if(item===null){throw new TypeError("Swagger 2.0 does not support null types ("+obj+"). See https://github.com/swagger-api/swagger-spec/issues/229.")}if(typeof item==="object"){this.resolveAllOf(spec,item,depth+1)}if(item&&typeof item.allOf!=="undefined"){var allOf=item.allOf;if(_.isArray(allOf)){var output={};output["x-composed"]=true;if(typeof item["x-resolved-from"]!=="undefined"){output["x-resolved-from"]=item["x-resolved-from"]}output.properties={};if(item.example){output.example=item.example}for(var i=0;i<allOf.length;i++){var component=allOf[i];var source="self";if(typeof component["x-resolved-from"]!=="undefined"){source=component["x-resolved-from"][0]}for(var part in component){if(!output.hasOwnProperty(part)){output[part]=JSON.parse(JSON.stringify(component[part]));if(part==="properties"){for(name in output[part]){output[part][name]["x-resolved-from"]=source}}}else{if(part==="properties"){var properties=component[part];for(name in properties){output.properties[name]=JSON.parse(JSON.stringify(properties[name]));var resolvedFrom=properties[name]["x-resolved-from"];if(typeof resolvedFrom==="undefined"||resolvedFrom==="self"){resolvedFrom=source; + +}output.properties[name]["x-resolved-from"]=resolvedFrom}}else if(part==="required"){var a=output.required.concat(component[part]);for(var k=0;k<a.length;++k){for(var j=k+1;j<a.length;++j){if(a[k]===a[j]){a.splice(j--,1)}}}output.required=a}else if(part==="x-resolved-from"){output["x-resolved-from"].push(source)}else{}}}}obj[key]=output}}if(_.isObject(item)){this.resolveAllOf(spec,item,depth+1)}}}},{"./http":5,"lodash-compat/lang/isArray":143,"lodash-compat/lang/isObject":147}],7:[function(require,module,exports){"use strict";var Helpers=require("./helpers");var _={isPlainObject:require("lodash-compat/lang/isPlainObject"),isUndefined:require("lodash-compat/lang/isUndefined"),isArray:require("lodash-compat/lang/isArray"),isObject:require("lodash-compat/lang/isObject"),isEmpty:require("lodash-compat/lang/isEmpty"),map:require("lodash-compat/collection/map"),indexOf:require("lodash-compat/array/indexOf"),cloneDeep:require("lodash-compat/lang/cloneDeep"),keys:require("lodash-compat/object/keys"),forEach:require("lodash-compat/collection/forEach")};module.exports.optionHtml=optionHtml;module.exports.typeFromJsonSchema=typeFromJsonSchema;module.exports.getStringSignature=getStringSignature;module.exports.schemaToHTML=schemaToHTML;module.exports.schemaToJSON=schemaToJSON;function optionHtml(label,value){return'<tr><td class="optionName">'+label+":</td><td>"+value+"</td></tr>"}function typeFromJsonSchema(type,format){var str;if(type==="integer"&&format==="int32"){str="integer"}else if(type==="integer"&&format==="int64"){str="long"}else if(type==="integer"&&typeof format==="undefined"){str="long"}else if(type==="string"&&format==="date-time"){str="date-time"}else if(type==="string"&&format==="date"){str="date"}else if(type==="number"&&format==="float"){str="float"}else if(type==="number"&&format==="double"){str="double"}else if(type==="number"&&typeof format==="undefined"){str="double"}else if(type==="boolean"){str="boolean"}else if(type==="string"){str="string"}return str}function getStringSignature(obj,baseComponent){var str="";if(typeof obj.$ref!=="undefined"){str+=Helpers.simpleRef(obj.$ref)}else if(typeof obj.type==="undefined"){str+="object"}else if(obj.type==="array"){if(baseComponent){str+=getStringSignature(obj.items||obj.$ref||{})}else{str+="Array[";str+=getStringSignature(obj.items||obj.$ref||{});str+="]"}}else if(obj.type==="integer"&&obj.format==="int32"){str+="integer"}else if(obj.type==="integer"&&obj.format==="int64"){str+="long"}else if(obj.type==="integer"&&typeof obj.format==="undefined"){str+="long"}else if(obj.type==="string"&&obj.format==="date-time"){str+="date-time"}else if(obj.type==="string"&&obj.format==="date"){str+="date"}else if(obj.type==="string"&&typeof obj.format==="undefined"){str+="string"}else if(obj.type==="number"&&obj.format==="float"){str+="float"}else if(obj.type==="number"&&obj.format==="double"){str+="double"}else if(obj.type==="number"&&typeof obj.format==="undefined"){str+="double"}else if(obj.type==="boolean"){str+="boolean"}else if(obj.$ref){str+=Helpers.simpleRef(obj.$ref)}else{str+=obj.type}return str}function schemaToJSON(schema,models,modelsToIgnore,modelPropertyMacro){schema=Helpers.resolveSchema(schema);if(typeof modelPropertyMacro!=="function"){modelPropertyMacro=function(prop){return(prop||{}).default}}modelsToIgnore=modelsToIgnore||{};var type=schema.type||"object";var format=schema.format;var model;var output;if(schema.example){output=schema.example}else if(_.isUndefined(schema.items)&&_.isArray(schema.enum)){output=schema.enum[0]}if(_.isUndefined(output)){if(schema.$ref){model=models[Helpers.simpleRef(schema.$ref)];if(!_.isUndefined(model)){if(_.isUndefined(modelsToIgnore[model.name])){modelsToIgnore[model.name]=model;output=schemaToJSON(model.definition,models,modelsToIgnore,modelPropertyMacro);delete modelsToIgnore[model.name]}else{if(model.type==="array"){output=[]}else{output={}}}}}else if(!_.isUndefined(schema.default)){output=schema.default}else if(type==="string"){if(format==="date-time"){output=(new Date).toISOString()}else if(format==="date"){output=(new Date).toISOString().split("T")[0]}else{output="string"}}else if(type==="integer"){output=0}else if(type==="number"){output=0}else if(type==="boolean"){output=true}else if(type==="object"){output={};_.forEach(schema.properties,function(property,name){var cProperty=_.cloneDeep(property);cProperty.default=modelPropertyMacro(property);output[name]=schemaToJSON(cProperty,models,modelsToIgnore,modelPropertyMacro)})}else if(type==="array"){output=[];if(_.isArray(schema.items)){_.forEach(schema.items,function(item){output.push(schemaToJSON(item,models,modelsToIgnore,modelPropertyMacro))})}else if(_.isPlainObject(schema.items)){output.push(schemaToJSON(schema.items,models,modelsToIgnore,modelPropertyMacro))}else if(_.isUndefined(schema.items)){output.push({})}else{Helpers.log("Array type's 'items' property is not an array or an object, cannot process")}}}return output}function schemaToHTML(name,schema,models,modelPropertyMacro){var strongOpen='<span class="strong">';var strongClose="</span>";if(_.isObject(arguments[0])){name=void 0;schema=arguments[0];models=arguments[1];modelPropertyMacro=arguments[2]}models=models||{};schema=Helpers.resolveSchema(schema);if(_.isEmpty(schema)){return strongOpen+"Empty"+strongClose}if(typeof schema.$ref==="string"){name=Helpers.simpleRef(schema.$ref);schema=models[name];if(typeof schema==="undefined"){return strongOpen+name+" is not defined!"+strongClose}}if(typeof name!=="string"){name=schema.title||"Inline Model"}if(schema.definition){schema=schema.definition}if(typeof modelPropertyMacro!=="function"){modelPropertyMacro=function(prop){return(prop||{}).default}}var references={};var seenModels=[];var inlineModels=0;var html=processModel(schema,name);while(_.keys(references).length>0){_.forEach(references,function(schema,name){var seenModel=_.indexOf(seenModels,name)>-1;delete references[name];if(!seenModel){seenModels.push(name);html+="<br />"+processModel(schema,name)}})}return html;function addReference(schema,name,skipRef){var modelName=name;var model;if(schema.$ref){modelName=schema.title||Helpers.simpleRef(schema.$ref);model=models[modelName]}else if(_.isUndefined(name)){modelName=schema.title||"Inline Model "+ ++inlineModels;model={definition:schema}}if(skipRef!==true){references[modelName]=_.isUndefined(model)?{}:model.definition}return modelName}function primitiveToHTML(schema){var html='<span class="propType">';var type=schema.type||"object";if(schema.$ref){html+=addReference(schema,Helpers.simpleRef(schema.$ref))}else if(type==="object"){if(!_.isUndefined(schema.properties)){html+=addReference(schema)}else{html+="object"}}else if(type==="array"){html+="Array[";if(_.isArray(schema.items)){html+=_.map(schema.items,addReference).join(",")}else if(_.isPlainObject(schema.items)){if(_.isUndefined(schema.items.$ref)){if(!_.isUndefined(schema.items.type)&&_.indexOf(["array","object"],schema.items.type)===-1){html+=schema.items.type}else{html+=addReference(schema.items)}}else{html+=addReference(schema.items,Helpers.simpleRef(schema.items.$ref))}}else{Helpers.log("Array type's 'items' schema is not an array or an object, cannot process");html+="object"}html+="]"}else{html+=schema.type}html+="</span>";return html}function primitiveToOptionsHTML(schema,html){var options="";var type=schema.type||"object";var isArray=type==="array";if(isArray){if(_.isPlainObject(schema.items)&&!_.isUndefined(schema.items.type)){type=schema.items.type}else{type="object"}}if(!_.isUndefined(schema.default)){options+=optionHtml("Default",schema.default)}switch(type){case"string":if(schema.minLength){options+=optionHtml("Min. Length",schema.minLength)}if(schema.maxLength){options+=optionHtml("Max. Length",schema.maxLength)}if(schema.pattern){options+=optionHtml("Reg. Exp.",schema.pattern)}break;case"integer":case"number":if(schema.minimum){options+=optionHtml("Min. Value",schema.minimum)}if(schema.exclusiveMinimum){options+=optionHtml("Exclusive Min.","true")}if(schema.maximum){options+=optionHtml("Max. Value",schema.maximum)}if(schema.exclusiveMaximum){options+=optionHtml("Exclusive Max.","true")}if(schema.multipleOf){options+=optionHtml("Multiple Of",schema.multipleOf)}break}if(isArray){if(schema.minItems){options+=optionHtml("Min. Items",schema.minItems)}if(schema.maxItems){options+=optionHtml("Max. Items",schema.maxItems)}if(schema.uniqueItems){options+=optionHtml("Unique Items","true")}if(schema.collectionFormat){options+=optionHtml("Coll. Format",schema.collectionFormat)}}if(_.isUndefined(schema.items)){if(_.isArray(schema.enum)){var enumString;if(type==="number"||type==="integer"){enumString=schema.enum.join(", ")}else{enumString='"'+schema.enum.join('", "')+'"'}options+=optionHtml("Enum",enumString)}}if(options.length>0){html='<span class="propWrap">'+html+'<table class="optionsWrapper"><tr><th colspan="2">'+type+"</th></tr>"+options+"</table></span>"}return html}function processModel(schema,name){var type=schema.type||"object";var isArray=schema.type==="array";var html=strongOpen+name+" "+(isArray?"[":"{")+strongClose;if(name){seenModels.push(name)}if(isArray){if(_.isArray(schema.items)){html+="<div>"+_.map(schema.items,function(item){var type=item.type||"object";if(_.isUndefined(item.$ref)){if(_.indexOf(["array","object"],type)>-1){if(type==="object"&&_.isUndefined(item.properties)){return"object"}else{return addReference(item)}}else{return primitiveToOptionsHTML(item,type)}}else{return addReference(item,Helpers.simpleRef(item.$ref))}}).join(",</div><div>")}else if(_.isPlainObject(schema.items)){if(_.isUndefined(schema.items.$ref)){if(_.indexOf(["array","object"],schema.items.type||"object")>-1){if((_.isUndefined(schema.items.type)||schema.items.type==="object")&&_.isUndefined(schema.items.properties)){html+="<div>object</div>"}else{html+="<div>"+addReference(schema.items)+"</div>"}}else{html+="<div>"+primitiveToOptionsHTML(schema.items,schema.items.type)+"</div>"}}else{html+="<div>"+addReference(schema.items,Helpers.simpleRef(schema.items.$ref))+"</div>"}}else{Helpers.log("Array type's 'items' property is not an array or an object, cannot process");html+="<div>object</div>"}}else{if(schema.$ref){html+="<div>"+addReference(schema,name)+"</div>"}else if(type==="object"){html+="<div>";if(_.isPlainObject(schema.properties)){html+=_.map(schema.properties,function(property,name){var propertyIsRequired=_.indexOf(schema.required,name)>=0;var cProperty=_.cloneDeep(property);var requiredClass=propertyIsRequired?"required":"";var html='<span class="propName '+requiredClass+'">'+name+"</span> (";var model;cProperty.default=modelPropertyMacro(cProperty);cProperty=Helpers.resolveSchema(cProperty);if(!_.isUndefined(cProperty.$ref)){model=models[Helpers.simpleRef(cProperty.$ref)];if(!_.isUndefined(model)&&_.indexOf([undefined,"array","object"],model.definition.type)===-1){cProperty=Helpers.resolveSchema(model.definition)}}html+=primitiveToHTML(cProperty);if(!propertyIsRequired){html+=', <span class="propOptKey">optional</span>'}html+=")";if(!_.isUndefined(cProperty.description)){html+=": "+'<span class="propDesc">'+cProperty.description+"</span>"}if(cProperty.enum){html+=' = <span class="propVals">[\''+cProperty.enum.join("', '")+"']</span>"}return primitiveToOptionsHTML(cProperty,html)}).join(",</div><div>")}html+="</div>"}else{html+="<div>"+primitiveToOptionsHTML(schema,type)+"</div>"}}return html+strongOpen+(isArray?"]":"}")+strongClose}}},{"./helpers":4,"lodash-compat/array/indexOf":52,"lodash-compat/collection/forEach":57,"lodash-compat/collection/map":59,"lodash-compat/lang/cloneDeep":141,"lodash-compat/lang/isArray":143,"lodash-compat/lang/isEmpty":144,"lodash-compat/lang/isObject":147,"lodash-compat/lang/isPlainObject":148,"lodash-compat/lang/isUndefined":151,"lodash-compat/object/keys":152}],8:[function(require,module,exports){"use strict";var SwaggerHttp=require("./http");var _={isObject:require("lodash-compat/lang/isObject")};var SwaggerSpecConverter=module.exports=function(){this.errors=[];this.warnings=[];this.modelMap={}};SwaggerSpecConverter.prototype.setDocumentationLocation=function(location){this.docLocation=location};SwaggerSpecConverter.prototype.convert=function(obj,clientAuthorizations,callback){if(!obj||!Array.isArray(obj.apis)){return this.finish(callback,null)}this.clientAuthorizations=clientAuthorizations;var swagger={swagger:"2.0"};swagger.originalVersion=obj.swaggerVersion;this.apiInfo(obj,swagger);this.securityDefinitions(obj,swagger);if(obj.basePath){this.setDocumentationLocation(obj.basePath)}var isSingleFileSwagger=false;var i;for(i=0;i<obj.apis.length;i++){var api=obj.apis[i];if(Array.isArray(api.operations)){isSingleFileSwagger=true}}if(isSingleFileSwagger){this.declaration(obj,swagger);this.finish(callback,swagger)}else{this.resourceListing(obj,swagger,callback)}};SwaggerSpecConverter.prototype.declaration=function(obj,swagger){var name,i,p,pos;if(!obj.apis){return}if(obj.basePath.indexOf("http://")===0){p=obj.basePath.substring("http://".length);pos=p.indexOf("/");if(pos>0){swagger.host=p.substring(0,pos);swagger.basePath=p.substring(pos)}else{swagger.host=p;swagger.basePath="/"}}else if(obj.basePath.indexOf("https://")===0){p=obj.basePath.substring("https://".length);pos=p.indexOf("/");if(pos>0){swagger.host=p.substring(0,pos);swagger.basePath=p.substring(pos)}else{swagger.host=p;swagger.basePath="/"}}else{swagger.basePath=obj.basePath}var resourceLevelAuth;if(obj.authorizations){resourceLevelAuth=obj.authorizations}if(obj.consumes){swagger.consumes=obj.consumes}if(obj.produces){swagger.produces=obj.produces}if(_.isObject(obj)){for(name in obj.models){var existingModel=obj.models[name];var key=existingModel.id||name;this.modelMap[key]=name}}for(i=0;i<obj.apis.length;i++){var api=obj.apis[i];var path=api.path;var operations=api.operations;this.operations(path,obj.resourcePath,operations,resourceLevelAuth,swagger)}var models=obj.models||{};this.models(models,swagger)};SwaggerSpecConverter.prototype.models=function(obj,swagger){if(!_.isObject(obj)){return}var name;swagger.definitions=swagger.definitions||{};for(name in obj){var existingModel=obj[name];var _enum=[];var schema={properties:{}};var propertyName;for(propertyName in existingModel.properties){var existingProperty=existingModel.properties[propertyName];var property={};this.dataType(existingProperty,property);if(existingProperty.description){property.description=existingProperty.description}if(existingProperty["enum"]){property["enum"]=existingProperty["enum"]}if(typeof existingProperty.required==="boolean"&&existingProperty.required===true){_enum.push(propertyName)}if(typeof existingProperty.required==="string"&&existingProperty.required==="true"){_enum.push(propertyName)}schema.properties[propertyName]=property}if(_enum.length>0){schema["enum"]=_enum}schema.required=existingModel.required;swagger.definitions[name]=schema}};SwaggerSpecConverter.prototype.extractTag=function(resourcePath){var pathString=resourcePath||"default";if(pathString.indexOf("http:")===0||pathString.indexOf("https:")===0){pathString=pathString.split(["/"]);pathString=pathString[pathString.length-1].substring()}if(pathString.endsWith(".json")){pathString=pathString.substring(0,pathString.length-".json".length)}return pathString.replace("/","")};SwaggerSpecConverter.prototype.operations=function(path,resourcePath,obj,resourceLevelAuth,swagger){if(!Array.isArray(obj)){return}var i;if(!swagger.paths){swagger.paths={}}var pathObj=swagger.paths[path]||{};var tag=this.extractTag(resourcePath);swagger.tags=swagger.tags||[];var matched=false;for(i=0;i<swagger.tags.length;i++){var tagObject=swagger.tags[i];if(tagObject.name===tag){matched=true}}if(!matched){swagger.tags.push({name:tag})}for(i=0;i<obj.length;i++){var existingOperation=obj[i];var method=(existingOperation.method||existingOperation.httpMethod).toLowerCase();var operation={tags:[tag]};var existingAuthorizations=existingOperation.authorizations;if(existingAuthorizations&&Object.keys(existingAuthorizations).length===0){existingAuthorizations=resourceLevelAuth}if(typeof existingAuthorizations!=="undefined"){var scopesObject;for(var key in existingAuthorizations){operation.security=operation.security||[];var scopes=existingAuthorizations[key];if(scopes){var securityScopes=[];for(var j in scopes){securityScopes.push(scopes[j].scope)}scopesObject={};scopesObject[key]=securityScopes;operation.security.push(scopesObject)}else{scopesObject={};scopesObject[key]=[];operation.security.push(scopesObject)}}}if(existingOperation.consumes){operation.consumes=existingOperation.consumes}else if(swagger.consumes){operation.consumes=swagger.consumes}if(existingOperation.produces){operation.produces=existingOperation.produces}else if(swagger.produces){operation.produces=swagger.produces}if(existingOperation.summary){operation.summary=existingOperation.summary}if(existingOperation.notes){operation.description=existingOperation.notes}if(existingOperation.nickname){operation.operationId=existingOperation.nickname}if(existingOperation.deprecated){operation.deprecated=existingOperation.deprecated}this.authorizations(existingAuthorizations,swagger);this.parameters(operation,existingOperation.parameters,swagger);this.responseMessages(operation,existingOperation,swagger);pathObj[method]=operation}swagger.paths[path]=pathObj};SwaggerSpecConverter.prototype.responseMessages=function(operation,existingOperation){if(!_.isObject(existingOperation)){return}var defaultResponse={};this.dataType(existingOperation,defaultResponse);if(!defaultResponse.schema&&defaultResponse.type){defaultResponse={schema:defaultResponse}}operation.responses=operation.responses||{};var has200=false;if(Array.isArray(existingOperation.responseMessages)){var i;var existingResponses=existingOperation.responseMessages;for(i=0;i<existingResponses.length;i++){var existingResponse=existingResponses[i];var response={description:existingResponse.message};if(existingResponse.code===200){has200=true}if(existingResponse.responseModel){response.schema={$ref:existingResponse.responseModel}}operation.responses[""+existingResponse.code]=response}}if(has200){operation.responses["default"]=defaultResponse}else{operation.responses["200"]=defaultResponse}};SwaggerSpecConverter.prototype.authorizations=function(obj){if(!_.isObject(obj)){return}};SwaggerSpecConverter.prototype.parameters=function(operation,obj){if(!Array.isArray(obj)){return}var i;for(i=0;i<obj.length;i++){var existingParameter=obj[i];var parameter={};parameter.name=existingParameter.name;parameter.description=existingParameter.description;parameter.required=existingParameter.required;parameter.in=existingParameter.paramType;if(parameter.in==="body"){parameter.name="body"}if(parameter.in==="form"){parameter.in="formData"}if(existingParameter.enum){parameter.enum=existingParameter.enum}if(existingParameter.allowMultiple===true||existingParameter.allowMultiple==="true"){var innerType={};this.dataType(existingParameter,innerType);parameter.type="array";parameter.items=innerType;if(existingParameter.allowableValues){var av=existingParameter.allowableValues;if(av.valueType==="LIST"){parameter["enum"]=av.values}}}else{this.dataType(existingParameter,parameter)}operation.parameters=operation.parameters||[];operation.parameters.push(parameter)}};SwaggerSpecConverter.prototype.dataType=function(source,target){if(!_.isObject(source)){return}if(source.minimum){target.minimum=source.minimum}if(source.maximum){target.maximum=source.maximum}if(source.format){target.format=source.format}if(typeof source.defaultValue!=="undefined"){target.default=source.defaultValue}var jsonSchemaType=this.toJsonSchema(source);if(jsonSchemaType){target=target||{};if(jsonSchemaType.type){target.type=jsonSchemaType.type}if(jsonSchemaType.format){target.format=jsonSchemaType.format}if(jsonSchemaType.$ref){target.schema={$ref:jsonSchemaType.$ref}}if(jsonSchemaType.items){target.items=jsonSchemaType.items}}};SwaggerSpecConverter.prototype.toJsonSchema=function(source){if(!source){return"object"}var detectedType=source.type||source.dataType||source.responseClass||"";var lcType=detectedType.toLowerCase();var format=(source.format||"").toLowerCase();if(lcType.indexOf("list[")===0){var innerType=detectedType.substring(5,detectedType.length-1);var jsonType=this.toJsonSchema({type:innerType});return{type:"array",items:jsonType}}else if(lcType==="int"||lcType==="integer"&&format==="int32"){return{type:"integer",format:"int32"}}else if(lcType==="long"||lcType==="integer"&&format==="int64"){return{type:"integer",format:"int64"}}else if(lcType==="integer"){return{type:"integer",format:"int64"}}else if(lcType==="float"||lcType==="number"&&format==="float"){return{type:"number",format:"float"}}else if(lcType==="double"||lcType==="number"&&format==="double"){return{type:"number",format:"double"}}else if(lcType==="string"&&format==="date-time"||lcType==="date"){return{type:"string",format:"date-time"}}else if(lcType==="string"){return{type:"string"}}else if(lcType==="file"){return{type:"file"}}else if(lcType==="boolean"){return{type:"boolean"}}else if(lcType==="array"||lcType==="list"){if(source.items){var it=this.toJsonSchema(source.items);return{type:"array",items:it}}else{return{type:"array",items:{type:"object"}}}}else if(source.$ref){return{$ref:"#/definitions/"+this.modelMap[source.$ref]||source.$ref}}else if(lcType==="void"||lcType===""){return{}}else{return{$ref:"#/definitions/"+this.modelMap[source.type]||source.type}}};SwaggerSpecConverter.prototype.resourceListing=function(obj,swagger,callback){var i;var processedCount=0;var self=this;var expectedCount=obj.apis.length;var _swagger=swagger;if(expectedCount===0){this.finish(callback,swagger)}for(i=0;i<expectedCount;i++){var api=obj.apis[i];var path=api.path;var absolutePath=this.getAbsolutePath(obj.swaggerVersion,this.docLocation,path);if(api.description){swagger.tags=swagger.tags||[];swagger.tags.push({name:this.extractTag(api.path),description:api.description||""})}var http={url:absolutePath,headers:{accept:"application/json"},on:{},method:"get"};http.on.response=function(data){processedCount+=1;var obj=data.obj;if(obj){self.declaration(obj,_swagger)}if(processedCount===expectedCount){self.finish(callback,_swagger)}};http.on.error=function(data){console.error(data);processedCount+=1;if(processedCount===expectedCount){self.finish(callback,_swagger)}};if(this.clientAuthorizations&&typeof this.clientAuthorizations.apply==="function"){this.clientAuthorizations.apply(http)}(new SwaggerHttp).execute(http)}};SwaggerSpecConverter.prototype.getAbsolutePath=function(version,docLocation,path){if(version==="1.0"){if(docLocation.endsWith(".json")){var pos=docLocation.lastIndexOf("/");if(pos>0){docLocation=docLocation.substring(0,pos)}}}var location=docLocation;if(path.indexOf("http://")===0||path.indexOf("https://")===0){location=path}else{if(docLocation.endsWith("/")){location=docLocation.substring(0,docLocation.length-1)}location+=path}location=location.replace("{format}","json");return location};SwaggerSpecConverter.prototype.securityDefinitions=function(obj,swagger){if(obj.authorizations){var name;for(name in obj.authorizations){var isValid=false;var securityDefinition={};var definition=obj.authorizations[name];if(definition.type==="apiKey"){securityDefinition.type="apiKey";securityDefinition.in=definition.passAs;securityDefinition.name=definition.keyname||name;isValid=true}else if(definition.type==="oauth2"){var existingScopes=definition.scopes||[];var scopes={};var i;for(i in existingScopes){var scope=existingScopes[i];scopes[scope.scope]=scope.description}securityDefinition.type="oauth2";if(i>0){securityDefinition.scopes=scopes}if(definition.grantTypes){if(definition.grantTypes.implicit){var implicit=definition.grantTypes.implicit;securityDefinition.flow="implicit";securityDefinition.authorizationUrl=implicit.loginEndpoint;isValid=true}if(definition.grantTypes["authorization_code"]){if(!securityDefinition.flow){var authCode=definition.grantTypes["authorization_code"];securityDefinition.flow="accessCode";securityDefinition.authorizationUrl=authCode.tokenRequestEndpoint.url;securityDefinition.tokenUrl=authCode.tokenEndpoint.url;isValid=true}}}}if(isValid){swagger.securityDefinitions=swagger.securityDefinitions||{};swagger.securityDefinitions[name]=securityDefinition}}}};SwaggerSpecConverter.prototype.apiInfo=function(obj,swagger){if(obj.info){var info=obj.info;swagger.info={};if(info.contact){swagger.info.contact={};swagger.info.contact.email=info.contact}if(info.description){swagger.info.description=info.description}if(info.title){swagger.info.title=info.title}if(info.termsOfServiceUrl){swagger.info.termsOfService=info.termsOfServiceUrl}if(info.license||info.licenseUrl){swagger.license={};if(info.license){swagger.license.name=info.license}if(info.licenseUrl){swagger.license.url=info.licenseUrl}}}else{this.warnings.push("missing info section")}};SwaggerSpecConverter.prototype.finish=function(callback,obj){callback(obj)}},{"./http":5,"lodash-compat/lang/isObject":147}],9:[function(require,module,exports){"use strict";var _={isPlainObject:require("lodash-compat/lang/isPlainObject"),isString:require("lodash-compat/lang/isString")};var SchemaMarkup=require("../schema-markup.js");var jsyaml=require("js-yaml");var Model=module.exports=function(name,definition,models,modelPropertyMacro){this.definition=definition||{};this.isArray=definition.type==="array";this.models=models||{};this.name=definition.title||name||"Inline Model";this.modelPropertyMacro=modelPropertyMacro||function(property){return property.default};return this};Model.prototype.createJSONSample=Model.prototype.getSampleValue=function(modelsToIgnore){modelsToIgnore=modelsToIgnore||{};modelsToIgnore[this.name]=this;if(this.examples&&_.isPlainObject(this.examples)&&this.examples["application/json"]){this.definition.example=this.examples["application/json"];if(_.isString(this.definition.example)){this.definition.example=jsyaml.safeLoad(this.definition.example)}}else if(!this.definition.example){this.definition.example=this.examples}return SchemaMarkup.schemaToJSON(this.definition,this.models,modelsToIgnore,this.modelPropertyMacro)};Model.prototype.getMockSignature=function(){return SchemaMarkup.schemaToHTML(this.name,this.definition,this.models,this.modelPropertyMacro)}},{"../schema-markup.js":7,"js-yaml":21,"lodash-compat/lang/isPlainObject":148,"lodash-compat/lang/isString":149}],10:[function(require,module,exports){"use strict";var _={cloneDeep:require("lodash-compat/lang/cloneDeep"),isUndefined:require("lodash-compat/lang/isUndefined"),isEmpty:require("lodash-compat/lang/isEmpty"),isObject:require("lodash-compat/lang/isObject")};var helpers=require("../helpers");var Model=require("./model");var SwaggerHttp=require("../http");var Operation=module.exports=function(parent,scheme,operationId,httpMethod,path,args,definitions,models,clientAuthorizations){var errors=[];parent=parent||{};args=args||{};if(parent&&parent.options){this.client=parent.options.client||null;this.responseInterceptor=parent.options.responseInterceptor||null}this.authorizations=args.security;this.basePath=parent.basePath||"/";this.clientAuthorizations=clientAuthorizations;this.consumes=args.consumes||parent.consumes||["application/json"];this.produces=args.produces||parent.produces||["application/json"];this.deprecated=args.deprecated;this.description=args.description;this.host=parent.host||"localhost";this.method=httpMethod||errors.push("Operation "+operationId+" is missing method.");this.models=models||{};this.nickname=operationId||errors.push("Operations must have a nickname.");this.operation=args;this.operations={};this.parameters=args!==null?args.parameters||[]:{};this.parent=parent;this.path=path||errors.push("Operation "+this.nickname+" is missing path.");this.responses=args.responses||{};this.scheme=scheme||parent.scheme||"http";this.schemes=args.schemes||parent.schemes;this.security=args.security;this.summary=args.summary||"";this.type=null;this.useJQuery=parent.useJQuery;this.parameterMacro=parent.parameterMacro||function(operation,parameter){return parameter.default};this.inlineModels=[];if(typeof this.deprecated==="string"){switch(this.deprecated.toLowerCase()){case"true":case"yes":case"1":{this.deprecated=true;break}case"false":case"no":case"0":case null:{this.deprecated=false;break}default:this.deprecated=Boolean(this.deprecated)}}var i,model;if(definitions){var key;for(key in definitions){model=new Model(key,definitions[key],this.models,parent.modelPropertyMacro);if(model){this.models[key]=model}}}else{definitions={}}for(i=0;i<this.parameters.length;i++){var param=this.parameters[i];param.default=this.parameterMacro(this,param);if(param.type==="array"){param.isList=true;param.allowMultiple=true;if(param.items&&param.items.enum){param["enum"]=param.items.enum}}var innerType=this.getType(param);if(innerType&&innerType.toString().toLowerCase()==="boolean"){param.allowableValues={};param.isList=true;param["enum"]=[true,false]}if(typeof param["enum"]!=="undefined"){var id;param.allowableValues={};param.allowableValues.values=[];param.allowableValues.descriptiveValues=[];for(id=0;id<param["enum"].length;id++){var value=param["enum"][id];var isDefault=value===param.default||value+""===param.default;param.allowableValues.values.push(value);param.allowableValues.descriptiveValues.push({value:value+"",isDefault:isDefault})}}if(param.type==="array"){innerType=[innerType];if(typeof param.allowableValues==="undefined"){delete param.isList;delete param.allowMultiple}}param.signature=this.getModelSignature(innerType,this.models).toString();param.sampleJSON=this.getModelSampleJSON(innerType,this.models);param.responseClassSignature=param.signature}var defaultResponseCode,response,responses=this.responses;if(responses["200"]){response=responses["200"];defaultResponseCode="200"}else if(responses["201"]){response=responses["201"];defaultResponseCode="201"}else if(responses["202"]){response=responses["202"];defaultResponseCode="202"}else if(responses["203"]){response=responses["203"];defaultResponseCode="203"}else if(responses["204"]){response=responses["204"];defaultResponseCode="204"}else if(responses["205"]){response=responses["205"];defaultResponseCode="205"}else if(responses["206"]){response=responses["206"];defaultResponseCode="206"}else if(responses["default"]){response=responses["default"];defaultResponseCode="default"}if(response&&response.schema){var resolvedModel=this.resolveModel(response.schema,definitions);var successResponse;delete responses[defaultResponseCode];if(resolvedModel){this.successResponse={};successResponse=this.successResponse[defaultResponseCode]=resolvedModel}else if(!response.schema.type||response.schema.type==="object"||response.schema.type==="array"){this.successResponse={};successResponse=this.successResponse[defaultResponseCode]=new Model(undefined,response.schema||{},this.models,parent.modelPropertyMacro)}else{this.successResponse={};successResponse=this.successResponse[defaultResponseCode]=response.schema}if(successResponse){if(response.description){successResponse.description=response.description}if(response.examples){successResponse.examples=response.examples}if(response.headers){successResponse.headers=response.headers}}this.type=response}if(errors.length>0){if(this.resource&&this.resource.api&&this.resource.api.fail){this.resource.api.fail(errors)}}return this};Operation.prototype.isDefaultArrayItemValue=function(value,param){if(param.default&&Array.isArray(param.default)){return param.default.indexOf(value)!==-1}return value===param.default};Operation.prototype.getType=function(param){var type=param.type;var format=param.format;var isArray=false;var str;if(type==="integer"&&format==="int32"){str="integer"}else if(type==="integer"&&format==="int64"){str="long"}else if(type==="integer"){str="integer"}else if(type==="string"){if(format==="date-time"){str="date-time"}else if(format==="date"){str="date"}else{str="string"; + +}}else if(type==="number"&&format==="float"){str="float"}else if(type==="number"&&format==="double"){str="double"}else if(type==="number"){str="double"}else if(type==="boolean"){str="boolean"}else if(type==="array"){isArray=true;if(param.items){str=this.getType(param.items)}}if(param.$ref){str=helpers.simpleRef(param.$ref)}var schema=param.schema;if(schema){var ref=schema.$ref;if(ref){ref=helpers.simpleRef(ref);if(isArray){return[ref]}else{return ref}}else{if(schema.type==="object"){return this.addInlineModel(schema)}return this.getType(schema)}}if(isArray){return[str]}else{return str}};Operation.prototype.addInlineModel=function(schema){var len=this.inlineModels.length;var model=this.resolveModel(schema,{});if(model){this.inlineModels.push(model);return"Inline Model "+len}return null};Operation.prototype.getInlineModel=function(inlineStr){if(/^Inline Model \d+$/.test(inlineStr)){var id=parseInt(inlineStr.substr("Inline Model".length).trim(),10);var model=this.inlineModels[id];return model}return null};Operation.prototype.resolveModel=function(schema,definitions){if(typeof schema.$ref!=="undefined"){var ref=schema.$ref;if(ref.indexOf("#/definitions/")===0){ref=ref.substring("#/definitions/".length)}if(definitions[ref]){return new Model(ref,definitions[ref],this.models,this.parent.modelPropertyMacro)}}else if(schema&&typeof schema==="object"&&(schema.type==="object"||_.isUndefined(schema.type))){return new Model(undefined,schema,this.models,this.parent.modelPropertyMacro)}return null};Operation.prototype.help=function(dontPrint){var out=this.nickname+": "+this.summary+"\n";for(var i=0;i<this.parameters.length;i++){var param=this.parameters[i];var typeInfo=param.signature;out+="\n * "+param.name+" ("+typeInfo+"): "+param.description}if(typeof dontPrint==="undefined"){helpers.log(out)}return out};Operation.prototype.getModelSignature=function(type,definitions){var isPrimitive,listType;if(type instanceof Array){listType=true;type=type[0]}if(typeof type==="undefined"){type="undefined";isPrimitive=true}else if(definitions[type]){type=definitions[type];isPrimitive=false}else if(this.getInlineModel(type)){type=this.getInlineModel(type);isPrimitive=false}else{isPrimitive=true}if(isPrimitive){if(listType){return"Array["+type+"]"}else{return type.toString()}}else{if(listType){return"Array["+type.getMockSignature()+"]"}else{return type.getMockSignature()}}};Operation.prototype.supportHeaderParams=function(){return true};Operation.prototype.supportedSubmitMethods=function(){return this.parent.supportedSubmitMethods};Operation.prototype.getHeaderParams=function(args){var headers=this.setContentTypes(args,{});for(var i=0;i<this.parameters.length;i++){var param=this.parameters[i];if(typeof args[param.name]!=="undefined"){if(param.in==="header"){var value=args[param.name];if(Array.isArray(value)){value=value.toString()}headers[param.name]=value}}}return headers};Operation.prototype.urlify=function(args){var formParams={};var requestUrl=this.path;var querystring="";for(var i=0;i<this.parameters.length;i++){var param=this.parameters[i];if(typeof args[param.name]!=="undefined"){if(param.in==="path"){var reg=new RegExp("{"+param.name+"}","gi");var value=args[param.name];if(Array.isArray(value)){value=this.encodePathCollection(param.collectionFormat,param.name,value)}else{value=this.encodePathParam(value)}requestUrl=requestUrl.replace(reg,value)}else if(param.in==="query"&&typeof args[param.name]!=="undefined"){if(querystring===""){querystring+="?"}else{querystring+="&"}if(typeof param.collectionFormat!=="undefined"){var qp=args[param.name];if(Array.isArray(qp)){querystring+=this.encodeQueryCollection(param.collectionFormat,param.name,qp)}else{querystring+=this.encodeQueryParam(param.name)+"="+this.encodeQueryParam(args[param.name])}}else{querystring+=this.encodeQueryParam(param.name)+"="+this.encodeQueryParam(args[param.name])}}else if(param.in==="formData"){formParams[param.name]=args[param.name]}}}var url=this.scheme+"://"+this.host;if(this.basePath!=="/"){url+=this.basePath}return url+requestUrl+querystring};Operation.prototype.getMissingParams=function(args){var missingParams=[];var i;for(i=0;i<this.parameters.length;i++){var param=this.parameters[i];if(param.required===true){if(typeof args[param.name]==="undefined"){missingParams=param.name}}}return missingParams};Operation.prototype.getBody=function(headers,args,opts){var formParams={},body,key,value,hasBody=false;for(var i=0;i<this.parameters.length;i++){var param=this.parameters[i];if(typeof args[param.name]!=="undefined"){if(param.in==="body"){body=args[param.name]}else if(param.in==="formData"){formParams[param.name]=args[param.name]}}else{if(param.in==="body"){hasBody=true}}}if(hasBody&&typeof body==="undefined"){var contentType=headers["Content-Type"];if(contentType&&contentType.indexOf("application/json")===0){body="{}"}}if(headers["Content-Type"]==="application/x-www-form-urlencoded"){var encoded="";for(key in formParams){value=formParams[key];if(typeof value!=="undefined"){if(encoded!==""){encoded+="&"}encoded+=encodeURIComponent(key)+"="+encodeURIComponent(value)}}body=encoded}else if(headers["Content-Type"]&&headers["Content-Type"].indexOf("multipart/form-data")>=0){if(opts.useJQuery){var bodyParam=new FormData;bodyParam.type="formData";for(key in formParams){value=args[key];if(typeof value!=="undefined"){if(value.type==="file"&&value.value){delete headers["Content-Type"];bodyParam.append(key,value.value)}else{bodyParam.append(key,value)}}}body=bodyParam}}return body};Operation.prototype.getModelSampleJSON=function(type,models){var listType,sampleJson,innerType;models=models||{};listType=type instanceof Array;innerType=listType?type[0]:type;if(models[innerType]){sampleJson=models[innerType].createJSONSample()}else if(this.getInlineModel(innerType)){sampleJson=this.getInlineModel(innerType).createJSONSample()}if(sampleJson){sampleJson=listType?[sampleJson]:sampleJson;if(typeof sampleJson==="string"){return sampleJson}else if(_.isObject(sampleJson)){var t=sampleJson;if(sampleJson instanceof Array&&sampleJson.length>0){t=sampleJson[0]}if(t.nodeName){var xmlString=(new XMLSerializer).serializeToString(t);return this.formatXml(xmlString)}else{return JSON.stringify(sampleJson,null,2)}}else{return sampleJson}}};Operation.prototype.do=function(args,opts,callback,error,parent){return this.execute(args,opts,callback,error,parent)};Operation.prototype.execute=function(arg1,arg2,arg3,arg4,parent){var args=arg1||{};var opts={},success,error;if(_.isObject(arg2)){opts=arg2;success=arg3;error=arg4}if(this.client){opts.client=this.client}if(this.responseInterceptor){opts.responseInterceptor=this.responseInterceptor}if(typeof arg2==="function"){success=arg2;error=arg3}success=success||this.parent.defaultSuccessCallback||helpers.log;error=error||this.parent.defaultErrorCallback||helpers.log;if(typeof opts.useJQuery==="undefined"){opts.useJQuery=this.useJQuery}var missingParams=this.getMissingParams(args);if(missingParams.length>0){var message="missing required params: "+missingParams;helpers.fail(message);error(message);return}var allHeaders=this.getHeaderParams(args);var contentTypeHeaders=this.setContentTypes(args,opts);var headers={},attrname;for(attrname in allHeaders){headers[attrname]=allHeaders[attrname]}for(attrname in contentTypeHeaders){headers[attrname]=contentTypeHeaders[attrname]}var body=this.getBody(contentTypeHeaders,args,opts);var url=this.urlify(args);if(url.indexOf(".{format}")>0){if(headers){var format=headers.Accept||headers.accept;if(format&&format.indexOf("json")>0){url=url.replace(".{format}",".json")}else if(format&&format.indexOf("xml")>0){url=url.replace(".{format}",".xml")}}}var obj={url:url,method:this.method.toUpperCase(),body:body,useJQuery:opts.useJQuery,headers:headers,on:{response:function(response){return success(response,parent)},error:function(response){return error(response,parent)}}};this.clientAuthorizations.apply(obj,this.operation.security);if(opts.mock===true){return obj}else{(new SwaggerHttp).execute(obj,opts)}};function itemByPriority(col,itemPriority){if(_.isEmpty(itemPriority)){return col[0]}for(var i=0,len=itemPriority.length;i<len;i++){if(col.indexOf(itemPriority[i])>-1){return itemPriority[i]}}return col[0]}Operation.prototype.setContentTypes=function(args,opts){var allDefinedParams=this.parameters;var body;var consumes=args.parameterContentType||itemByPriority(this.consumes,["application/json","application/yaml"]);var accepts=opts.responseContentType||itemByPriority(this.produces,["application/json","application/yaml"]);var definedFileParams=[];var definedFormParams=[];var headers={};var i;for(i=0;i<allDefinedParams.length;i++){var param=allDefinedParams[i];if(param.in==="formData"){if(param.type==="file"){definedFileParams.push(param)}else{definedFormParams.push(param)}}else if(param.in==="header"&&opts){var key=param.name;var headerValue=opts[param.name];if(typeof opts[param.name]!=="undefined"){headers[key]=headerValue}}else if(param.in==="body"&&typeof args[param.name]!=="undefined"){body=args[param.name]}}if(this.method==="post"||this.method==="put"||this.method==="patch"||this.method==="delete"&&body){if(opts.requestContentType){consumes=opts.requestContentType}if(definedFormParams.length>0){if(opts.requestContentType){consumes=opts.requestContentType}else if(definedFileParams.length>0){consumes="multipart/form-data"}else{consumes="application/x-www-form-urlencoded"}}}else{consumes=null}if(consumes&&this.consumes){if(this.consumes.indexOf(consumes)===-1){helpers.log("server doesn't consume "+consumes+", try "+JSON.stringify(this.consumes))}}if(!this.matchesAccept(accepts)){helpers.log("server can't produce "+accepts)}if(consumes&&body!==""||consumes==="application/x-www-form-urlencoded"){headers["Content-Type"]=consumes}if(accepts){headers.Accept=accepts}return headers};Operation.prototype.matchesAccept=function(accepts){if(!accepts||!this.produces){return true}return this.produces.indexOf(accepts)!==-1||this.produces.indexOf("*/*")!==-1};Operation.prototype.asCurl=function(args1,args2){var opts={mock:true};if(typeof args2==="object"){for(var argKey in args2){opts[argKey]=args2[argKey]}}var obj=this.execute(args1,opts);this.clientAuthorizations.apply(obj);var results=[];results.push("-X "+this.method.toUpperCase());if(obj.headers){var key;for(key in obj.headers){results.push('--header "'+key+": "+obj.headers[key]+'"')}}if(obj.body){var body;if(_.isObject(obj.body)){body=JSON.stringify(obj.body)}else{body=obj.body}results.push('-d "'+body.replace(/"/g,'\\"')+'"')}return"curl "+results.join(" ")+' "'+obj.url+'"'};Operation.prototype.encodePathCollection=function(type,name,value){var encoded="";var i;var separator="";if(type==="ssv"){separator="%20"}else if(type==="tsv"){separator="\\t"}else if(type==="pipes"){separator="|"}else{separator=","}for(i=0;i<value.length;i++){if(i===0){encoded=this.encodeQueryParam(value[i])}else{encoded+=separator+this.encodeQueryParam(value[i])}}return encoded};Operation.prototype.encodeQueryCollection=function(type,name,value){var encoded="";var i;if(type==="default"||type==="multi"){for(i=0;i<value.length;i++){if(i>0){encoded+="&"}encoded+=this.encodeQueryParam(name)+"="+this.encodeQueryParam(value[i])}}else{var separator="";if(type==="csv"){separator=","}else if(type==="ssv"){separator="%20"}else if(type==="tsv"){separator="\\t"}else if(type==="pipes"){separator="|"}else if(type==="brackets"){for(i=0;i<value.length;i++){if(i!==0){encoded+="&"}encoded+=this.encodeQueryParam(name)+"[]="+this.encodeQueryParam(value[i])}}if(separator!==""){for(i=0;i<value.length;i++){if(i===0){encoded=this.encodeQueryParam(name)+"="+this.encodeQueryParam(value[i])}else{encoded+=separator+this.encodeQueryParam(value[i])}}}}return encoded};Operation.prototype.encodeQueryParam=function(arg){return encodeURIComponent(arg)};Operation.prototype.encodePathParam=function(pathParam){return encodeURIComponent(pathParam)}},{"../helpers":4,"../http":5,"./model":9,"lodash-compat/lang/cloneDeep":141,"lodash-compat/lang/isEmpty":144,"lodash-compat/lang/isObject":147,"lodash-compat/lang/isUndefined":151}],11:[function(require,module,exports){"use strict";var OperationGroup=module.exports=function(tag,description,externalDocs,operation){this.description=description;this.externalDocs=externalDocs;this.name=tag;this.operation=operation;this.operationsArray=[];this.path=tag;this.tag=tag};OperationGroup.prototype.sort=function(){}},{}],12:[function(require,module,exports){},{}],13:[function(require,module,exports){var base64=require("base64-js");var ieee754=require("ieee754");var isArray=require("is-array");exports.Buffer=Buffer;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;Buffer.poolSize=8192;var rootParent={};Buffer.TYPED_ARRAY_SUPPORT=function(){function Foo(){}try{var buf=new ArrayBuffer(0);var arr=new Uint8Array(buf);arr.foo=function(){return 42};arr.constructor=Foo;return arr.foo()===42&&arr.constructor===Foo&&typeof arr.subarray==="function"&&new Uint8Array(1).subarray(1,1).byteLength===0}catch(e){return false}}();function kMaxLength(){return Buffer.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Buffer(arg){if(!(this instanceof Buffer)){if(arguments.length>1)return new Buffer(arg,arguments[1]);return new Buffer(arg)}this.length=0;this.parent=undefined;if(typeof arg==="number"){return fromNumber(this,arg)}if(typeof arg==="string"){return fromString(this,arg,arguments.length>1?arguments[1]:"utf8")}return fromObject(this,arg)}function fromNumber(that,length){that=allocate(that,length<0?0:checked(length)|0);if(!Buffer.TYPED_ARRAY_SUPPORT){for(var i=0;i<length;i++){that[i]=0}}return that}function fromString(that,string,encoding){if(typeof encoding!=="string"||encoding==="")encoding="utf8";var length=byteLength(string,encoding)|0;that=allocate(that,length);that.write(string,encoding);return that}function fromObject(that,object){if(Buffer.isBuffer(object))return fromBuffer(that,object);if(isArray(object))return fromArray(that,object);if(object==null){throw new TypeError("must start with number, buffer, array or string")}if(typeof ArrayBuffer!=="undefined"&&object.buffer instanceof ArrayBuffer){return fromTypedArray(that,object)}if(object.length)return fromArrayLike(that,object);return fromJsonObject(that,object)}function fromBuffer(that,buffer){var length=checked(buffer.length)|0;that=allocate(that,length);buffer.copy(that,0,0,length);return that}function fromArray(that,array){var length=checked(array.length)|0;that=allocate(that,length);for(var i=0;i<length;i+=1){that[i]=array[i]&255}return that}function fromTypedArray(that,array){var length=checked(array.length)|0;that=allocate(that,length);for(var i=0;i<length;i+=1){that[i]=array[i]&255}return that}function fromArrayLike(that,array){var length=checked(array.length)|0;that=allocate(that,length);for(var i=0;i<length;i+=1){that[i]=array[i]&255}return that}function fromJsonObject(that,object){var array;var length=0;if(object.type==="Buffer"&&isArray(object.data)){array=object.data;length=checked(array.length)|0}that=allocate(that,length);for(var i=0;i<length;i+=1){that[i]=array[i]&255}return that}function allocate(that,length){if(Buffer.TYPED_ARRAY_SUPPORT){that=Buffer._augment(new Uint8Array(length))}else{that.length=length;that._isBuffer=true}var fromPool=length!==0&&length<=Buffer.poolSize>>>1;if(fromPool)that.parent=rootParent;return that}function checked(length){if(length>=kMaxLength()){throw new RangeError("Attempt to allocate Buffer larger than maximum "+"size: 0x"+kMaxLength().toString(16)+" bytes")}return length|0}function SlowBuffer(subject,encoding){if(!(this instanceof SlowBuffer))return new SlowBuffer(subject,encoding);var buf=new Buffer(subject,encoding);delete buf.parent;return buf}Buffer.isBuffer=function isBuffer(b){return!!(b!=null&&b._isBuffer)};Buffer.compare=function compare(a,b){if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b)){throw new TypeError("Arguments must be Buffers")}if(a===b)return 0;var x=a.length;var y=b.length;var i=0;var len=Math.min(x,y);while(i<len){if(a[i]!==b[i])break;++i}if(i!==len){x=a[i];y=b[i]}if(x<y)return-1;if(y<x)return 1;return 0};Buffer.isEncoding=function isEncoding(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return true;default:return false}};Buffer.concat=function concat(list,length){if(!isArray(list))throw new TypeError("list argument must be an Array of Buffers.");if(list.length===0){return new Buffer(0)}else if(list.length===1){return list[0]}var i;if(length===undefined){length=0;for(i=0;i<list.length;i++){length+=list[i].length}}var buf=new Buffer(length);var pos=0;for(i=0;i<list.length;i++){var item=list[i];item.copy(buf,pos);pos+=item.length}return buf};function byteLength(string,encoding){if(typeof string!=="string")string=""+string;var len=string.length;if(len===0)return 0;var loweredCase=false;for(;;){switch(encoding){case"ascii":case"binary":case"raw":case"raws":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return len*2;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase();loweredCase=true}}}Buffer.byteLength=byteLength;Buffer.prototype.length=undefined;Buffer.prototype.parent=undefined;function slowToString(encoding,start,end){var loweredCase=false;start=start|0;end=end===undefined||end===Infinity?this.length:end|0;if(!encoding)encoding="utf8";if(start<0)start=0;if(end>this.length)end=this.length;if(end<=start)return"";while(true){switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"binary":return binarySlice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase();loweredCase=true}}}Buffer.prototype.toString=function toString(){var length=this.length|0;if(length===0)return"";if(arguments.length===0)return utf8Slice(this,0,length);return slowToString.apply(this,arguments)};Buffer.prototype.equals=function equals(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");if(this===b)return true;return Buffer.compare(this,b)===0};Buffer.prototype.inspect=function inspect(){var str="";var max=exports.INSPECT_MAX_BYTES;if(this.length>0){str=this.toString("hex",0,max).match(/.{2}/g).join(" ");if(this.length>max)str+=" ... "}return"<Buffer "+str+">"};Buffer.prototype.compare=function compare(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");if(this===b)return 0;return Buffer.compare(this,b)};Buffer.prototype.indexOf=function indexOf(val,byteOffset){if(byteOffset>2147483647)byteOffset=2147483647;else if(byteOffset<-2147483648)byteOffset=-2147483648;byteOffset>>=0;if(this.length===0)return-1;if(byteOffset>=this.length)return-1;if(byteOffset<0)byteOffset=Math.max(this.length+byteOffset,0);if(typeof val==="string"){if(val.length===0)return-1;return String.prototype.indexOf.call(this,val,byteOffset)}if(Buffer.isBuffer(val)){return arrayIndexOf(this,val,byteOffset)}if(typeof val==="number"){if(Buffer.TYPED_ARRAY_SUPPORT&&Uint8Array.prototype.indexOf==="function"){return Uint8Array.prototype.indexOf.call(this,val,byteOffset)}return arrayIndexOf(this,[val],byteOffset)}function arrayIndexOf(arr,val,byteOffset){var foundIndex=-1;for(var i=0;byteOffset+i<arr.length;i++){if(arr[byteOffset+i]===val[foundIndex===-1?0:i-foundIndex]){if(foundIndex===-1)foundIndex=i;if(i-foundIndex+1===val.length)return byteOffset+foundIndex}else{foundIndex=-1}}return-1}throw new TypeError("val must be string, number or Buffer")};Buffer.prototype.get=function get(offset){console.log(".get() is deprecated. Access using array indexes instead.");return this.readUInt8(offset)};Buffer.prototype.set=function set(v,offset){console.log(".set() is deprecated. Access using array indexes instead.");return this.writeUInt8(v,offset)};function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;if(!length){length=remaining}else{length=Number(length);if(length>remaining){length=remaining}}var strLen=string.length;if(strLen%2!==0)throw new Error("Invalid hex string");if(length>strLen/2){length=strLen/2}for(var i=0;i<length;i++){var parsed=parseInt(string.substr(i*2,2),16);if(isNaN(parsed))throw new Error("Invalid hex string");buf[offset+i]=parsed}return i}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length)}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length)}function binaryWrite(buf,string,offset,length){return asciiWrite(buf,string,offset,length)}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length)}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length)}Buffer.prototype.write=function write(string,offset,length,encoding){if(offset===undefined){encoding="utf8";length=this.length;offset=0}else if(length===undefined&&typeof offset==="string"){encoding=offset;length=this.length;offset=0}else if(isFinite(offset)){offset=offset|0;if(isFinite(length)){length=length|0;if(encoding===undefined)encoding="utf8"}else{encoding=length;length=undefined}}else{var swap=encoding;encoding=offset;offset=length|0;length=swap}var remaining=this.length-offset;if(length===undefined||length>remaining)length=remaining;if(string.length>0&&(length<0||offset<0)||offset>this.length){throw new RangeError("attempt to write outside buffer bounds")}if(!encoding)encoding="utf8";var loweredCase=false;for(;;){switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"binary":return binaryWrite(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase();loweredCase=true}}};Buffer.prototype.toJSON=function toJSON(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){if(start===0&&end===buf.length){return base64.fromByteArray(buf)}else{return base64.fromByteArray(buf.slice(start,end))}}function utf8Slice(buf,start,end){var res="";var tmp="";end=Math.min(buf.length,end);for(var i=start;i<end;i++){if(buf[i]<=127){res+=decodeUtf8Char(tmp)+String.fromCharCode(buf[i]);tmp=""}else{tmp+="%"+buf[i].toString(16)}}return res+decodeUtf8Char(tmp)}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;i++){ret+=String.fromCharCode(buf[i]&127)}return ret}function binarySlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;i++){ret+=String.fromCharCode(buf[i])}return ret}function hexSlice(buf,start,end){var len=buf.length;if(!start||start<0)start=0;if(!end||end<0||end>len)end=len;var out="";for(var i=start;i<end;i++){out+=toHex(buf[i])}return out}function utf16leSlice(buf,start,end){var bytes=buf.slice(start,end);var res="";for(var i=0;i<bytes.length;i+=2){res+=String.fromCharCode(bytes[i]+bytes[i+1]*256)}return res}Buffer.prototype.slice=function slice(start,end){var len=this.length;start=~~start;end=end===undefined?len:~~end;if(start<0){start+=len;if(start<0)start=0}else if(start>len){start=len}if(end<0){end+=len;if(end<0)end=0}else if(end>len){end=len}if(end<start)end=start;var newBuf;if(Buffer.TYPED_ARRAY_SUPPORT){newBuf=Buffer._augment(this.subarray(start,end))}else{var sliceLen=end-start;newBuf=new Buffer(sliceLen,undefined);for(var i=0;i<sliceLen;i++){newBuf[i]=this[i+start]}}if(newBuf.length)newBuf.parent=this.parent||this;return newBuf};function checkOffset(offset,ext,length){if(offset%1!==0||offset<0)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}Buffer.prototype.readUIntLE=function readUIntLE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i<byteLength&&(mul*=256)){val+=this[offset+i]*mul}return val};Buffer.prototype.readUIntBE=function readUIntBE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert){checkOffset(offset,byteLength,this.length)}var val=this[offset+--byteLength];var mul=1;while(byteLength>0&&(mul*=256)){val+=this[offset+--byteLength]*mul}return val};Buffer.prototype.readUInt8=function readUInt8(offset,noAssert){if(!noAssert)checkOffset(offset,1,this.length);return this[offset]};Buffer.prototype.readUInt16LE=function readUInt16LE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8};Buffer.prototype.readUInt16BE=function readUInt16BE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1]};Buffer.prototype.readUInt32LE=function readUInt32LE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer.prototype.readUInt32BE=function readUInt32BE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer.prototype.readIntLE=function readIntLE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i<byteLength&&(mul*=256)){val+=this[offset+i]*mul}mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readIntBE=function readIntBE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkOffset(offset,byteLength,this.length);var i=byteLength;var mul=1;var val=this[offset+--i];while(i>0&&(mul*=256)){val+=this[offset+--i]*mul}mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readInt8=function readInt8(offset,noAssert){if(!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&128))return this[offset];return(255-this[offset]+1)*-1};Buffer.prototype.readInt16LE=function readInt16LE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt16BE=function readInt16BE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt32LE=function readInt32LE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer.prototype.readInt32BE=function readInt32BE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer.prototype.readFloatLE=function readFloatLE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,true,23,4)};Buffer.prototype.readFloatBE=function readFloatBE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,false,23,4)};Buffer.prototype.readDoubleLE=function readDoubleLE(offset,noAssert){if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,true,52,8)};Buffer.prototype.readDoubleBE=function readDoubleBE(offset,noAssert){if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,false,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError("buffer must be a Buffer instance");if(value>max||value<min)throw new RangeError("value is out of bounds");if(offset+ext>buf.length)throw new RangeError("index out of range")}Buffer.prototype.writeUIntLE=function writeUIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength),0);var mul=1;var i=0;this[offset]=value&255;while(++i<byteLength&&(mul*=256)){this[offset+i]=value/mul&255}return offset+byteLength};Buffer.prototype.writeUIntBE=function writeUIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength),0);var i=byteLength-1;var mul=1;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){this[offset+i]=value/mul&255}return offset+byteLength};Buffer.prototype.writeUInt8=function writeUInt8(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,1,255,0);if(!Buffer.TYPED_ARRAY_SUPPORT)value=Math.floor(value);this[offset]=value;return offset+1};function objectWriteUInt16(buf,value,offset,littleEndian){if(value<0)value=65535+value+1;for(var i=0,j=Math.min(buf.length-offset,2);i<j;i++){buf[offset+i]=(value&255<<8*(littleEndian?i:1-i))>>>(littleEndian?i:1-i)*8}}Buffer.prototype.writeUInt16LE=function writeUInt16LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,65535,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value;this[offset+1]=value>>>8}else{objectWriteUInt16(this,value,offset,true)}return offset+2};Buffer.prototype.writeUInt16BE=function writeUInt16BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,65535,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>8;this[offset+1]=value}else{objectWriteUInt16(this,value,offset,false)}return offset+2};function objectWriteUInt32(buf,value,offset,littleEndian){if(value<0)value=4294967295+value+1;for(var i=0,j=Math.min(buf.length-offset,4);i<j;i++){buf[offset+i]=value>>>(littleEndian?i:3-i)*8&255}}Buffer.prototype.writeUInt32LE=function writeUInt32LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset+3]=value>>>24;this[offset+2]=value>>>16;this[offset+1]=value>>>8;this[offset]=value}else{objectWriteUInt32(this,value,offset,true)}return offset+4};Buffer.prototype.writeUInt32BE=function writeUInt32BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value}else{objectWriteUInt32(this,value,offset,false)}return offset+4};Buffer.prototype.writeIntLE=function writeIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0;var mul=1;var sub=value<0?1:0;this[offset]=value&255;while(++i<byteLength&&(mul*=256)){this[offset+i]=(value/mul>>0)-sub&255}return offset+byteLength};Buffer.prototype.writeIntBE=function writeIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1;var mul=1;var sub=value<0?1:0;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){this[offset+i]=(value/mul>>0)-sub&255}return offset+byteLength};Buffer.prototype.writeInt8=function writeInt8(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,1,127,-128);if(!Buffer.TYPED_ARRAY_SUPPORT)value=Math.floor(value);if(value<0)value=255+value+1; + +this[offset]=value;return offset+1};Buffer.prototype.writeInt16LE=function writeInt16LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value;this[offset+1]=value>>>8}else{objectWriteUInt16(this,value,offset,true)}return offset+2};Buffer.prototype.writeInt16BE=function writeInt16BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>8;this[offset+1]=value}else{objectWriteUInt16(this,value,offset,false)}return offset+2};Buffer.prototype.writeInt32LE=function writeInt32LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value;this[offset+1]=value>>>8;this[offset+2]=value>>>16;this[offset+3]=value>>>24}else{objectWriteUInt32(this,value,offset,true)}return offset+4};Buffer.prototype.writeInt32BE=function writeInt32BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(value<0)value=4294967295+value+1;if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value}else{objectWriteUInt32(this,value,offset,false)}return offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(value>max||value<min)throw new RangeError("value is out of bounds");if(offset+ext>buf.length)throw new RangeError("index out of range");if(offset<0)throw new RangeError("index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){if(!noAssert){checkIEEE754(buf,value,offset,4,3.4028234663852886e38,-3.4028234663852886e38)}ieee754.write(buf,value,offset,littleEndian,23,4);return offset+4}Buffer.prototype.writeFloatLE=function writeFloatLE(value,offset,noAssert){return writeFloat(this,value,offset,true,noAssert)};Buffer.prototype.writeFloatBE=function writeFloatBE(value,offset,noAssert){return writeFloat(this,value,offset,false,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){if(!noAssert){checkIEEE754(buf,value,offset,8,1.7976931348623157e308,-1.7976931348623157e308)}ieee754.write(buf,value,offset,littleEndian,52,8);return offset+8}Buffer.prototype.writeDoubleLE=function writeDoubleLE(value,offset,noAssert){return writeDouble(this,value,offset,true,noAssert)};Buffer.prototype.writeDoubleBE=function writeDoubleBE(value,offset,noAssert){return writeDouble(this,value,offset,false,noAssert)};Buffer.prototype.copy=function copy(target,targetStart,start,end){if(!start)start=0;if(!end&&end!==0)end=this.length;if(targetStart>=target.length)targetStart=target.length;if(!targetStart)targetStart=0;if(end>0&&end<start)end=start;if(end===start)return 0;if(target.length===0||this.length===0)return 0;if(targetStart<0){throw new RangeError("targetStart out of bounds")}if(start<0||start>=this.length)throw new RangeError("sourceStart out of bounds");if(end<0)throw new RangeError("sourceEnd out of bounds");if(end>this.length)end=this.length;if(target.length-targetStart<end-start){end=target.length-targetStart+start}var len=end-start;if(len<1e3||!Buffer.TYPED_ARRAY_SUPPORT){for(var i=0;i<len;i++){target[i+targetStart]=this[i+start]}}else{target._set(this.subarray(start,start+len),targetStart)}return len};Buffer.prototype.fill=function fill(value,start,end){if(!value)value=0;if(!start)start=0;if(!end)end=this.length;if(end<start)throw new RangeError("end < start");if(end===start)return;if(this.length===0)return;if(start<0||start>=this.length)throw new RangeError("start out of bounds");if(end<0||end>this.length)throw new RangeError("end out of bounds");var i;if(typeof value==="number"){for(i=start;i<end;i++){this[i]=value}}else{var bytes=utf8ToBytes(value.toString());var len=bytes.length;for(i=start;i<end;i++){this[i]=bytes[i%len]}}return this};Buffer.prototype.toArrayBuffer=function toArrayBuffer(){if(typeof Uint8Array!=="undefined"){if(Buffer.TYPED_ARRAY_SUPPORT){return new Buffer(this).buffer}else{var buf=new Uint8Array(this.length);for(var i=0,len=buf.length;i<len;i+=1){buf[i]=this[i]}return buf.buffer}}else{throw new TypeError("Buffer.toArrayBuffer not supported in this browser")}};var BP=Buffer.prototype;Buffer._augment=function _augment(arr){arr.constructor=Buffer;arr._isBuffer=true;arr._set=arr.set;arr.get=BP.get;arr.set=BP.set;arr.write=BP.write;arr.toString=BP.toString;arr.toLocaleString=BP.toString;arr.toJSON=BP.toJSON;arr.equals=BP.equals;arr.compare=BP.compare;arr.indexOf=BP.indexOf;arr.copy=BP.copy;arr.slice=BP.slice;arr.readUIntLE=BP.readUIntLE;arr.readUIntBE=BP.readUIntBE;arr.readUInt8=BP.readUInt8;arr.readUInt16LE=BP.readUInt16LE;arr.readUInt16BE=BP.readUInt16BE;arr.readUInt32LE=BP.readUInt32LE;arr.readUInt32BE=BP.readUInt32BE;arr.readIntLE=BP.readIntLE;arr.readIntBE=BP.readIntBE;arr.readInt8=BP.readInt8;arr.readInt16LE=BP.readInt16LE;arr.readInt16BE=BP.readInt16BE;arr.readInt32LE=BP.readInt32LE;arr.readInt32BE=BP.readInt32BE;arr.readFloatLE=BP.readFloatLE;arr.readFloatBE=BP.readFloatBE;arr.readDoubleLE=BP.readDoubleLE;arr.readDoubleBE=BP.readDoubleBE;arr.writeUInt8=BP.writeUInt8;arr.writeUIntLE=BP.writeUIntLE;arr.writeUIntBE=BP.writeUIntBE;arr.writeUInt16LE=BP.writeUInt16LE;arr.writeUInt16BE=BP.writeUInt16BE;arr.writeUInt32LE=BP.writeUInt32LE;arr.writeUInt32BE=BP.writeUInt32BE;arr.writeIntLE=BP.writeIntLE;arr.writeIntBE=BP.writeIntBE;arr.writeInt8=BP.writeInt8;arr.writeInt16LE=BP.writeInt16LE;arr.writeInt16BE=BP.writeInt16BE;arr.writeInt32LE=BP.writeInt32LE;arr.writeInt32BE=BP.writeInt32BE;arr.writeFloatLE=BP.writeFloatLE;arr.writeFloatBE=BP.writeFloatBE;arr.writeDoubleLE=BP.writeDoubleLE;arr.writeDoubleBE=BP.writeDoubleBE;arr.fill=BP.fill;arr.inspect=BP.inspect;arr.toArrayBuffer=BP.toArrayBuffer;return arr};var INVALID_BASE64_RE=/[^+\/0-9A-z\-]/g;function base64clean(str){str=stringtrim(str).replace(INVALID_BASE64_RE,"");if(str.length<2)return"";while(str.length%4!==0){str=str+"="}return str}function stringtrim(str){if(str.trim)return str.trim();return str.replace(/^\s+|\s+$/g,"")}function toHex(n){if(n<16)return"0"+n.toString(16);return n.toString(16)}function utf8ToBytes(string,units){units=units||Infinity;var codePoint;var length=string.length;var leadSurrogate=null;var bytes=[];var i=0;for(;i<length;i++){codePoint=string.charCodeAt(i);if(codePoint>55295&&codePoint<57344){if(leadSurrogate){if(codePoint<56320){if((units-=3)>-1)bytes.push(239,191,189);leadSurrogate=codePoint;continue}else{codePoint=leadSurrogate-55296<<10|codePoint-56320|65536;leadSurrogate=null}}else{if(codePoint>56319){if((units-=3)>-1)bytes.push(239,191,189);continue}else if(i+1===length){if((units-=3)>-1)bytes.push(239,191,189);continue}else{leadSurrogate=codePoint;continue}}}else if(leadSurrogate){if((units-=3)>-1)bytes.push(239,191,189);leadSurrogate=null}if(codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<2097152){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else{throw new Error("Invalid code point")}}return bytes}function asciiToBytes(str){var byteArray=[];for(var i=0;i<str.length;i++){byteArray.push(str.charCodeAt(i)&255)}return byteArray}function utf16leToBytes(str,units){var c,hi,lo;var byteArray=[];for(var i=0;i<str.length;i++){if((units-=2)<0)break;c=str.charCodeAt(i);hi=c>>8;lo=c%256;byteArray.push(lo);byteArray.push(hi)}return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i<length;i++){if(i+offset>=dst.length||i>=src.length)break;dst[i+offset]=src[i]}return i}function decodeUtf8Char(str){try{return decodeURIComponent(str)}catch(err){return String.fromCharCode(65533)}}},{"base64-js":14,ieee754:15,"is-array":16}],14:[function(require,module,exports){var lookup="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";(function(exports){"use strict";var Arr=typeof Uint8Array!=="undefined"?Uint8Array:Array;var PLUS="+".charCodeAt(0);var SLASH="/".charCodeAt(0);var NUMBER="0".charCodeAt(0);var LOWER="a".charCodeAt(0);var UPPER="A".charCodeAt(0);var PLUS_URL_SAFE="-".charCodeAt(0);var SLASH_URL_SAFE="_".charCodeAt(0);function decode(elt){var code=elt.charCodeAt(0);if(code===PLUS||code===PLUS_URL_SAFE)return 62;if(code===SLASH||code===SLASH_URL_SAFE)return 63;if(code<NUMBER)return-1;if(code<NUMBER+10)return code-NUMBER+26+26;if(code<UPPER+26)return code-UPPER;if(code<LOWER+26)return code-LOWER+26}function b64ToByteArray(b64){var i,j,l,tmp,placeHolders,arr;if(b64.length%4>0){throw new Error("Invalid string. Length must be a multiple of 4")}var len=b64.length;placeHolders="="===b64.charAt(len-2)?2:"="===b64.charAt(len-1)?1:0;arr=new Arr(b64.length*3/4-placeHolders);l=placeHolders>0?b64.length-4:b64.length;var L=0;function push(v){arr[L++]=v}for(i=0,j=0;i<l;i+=4,j+=3){tmp=decode(b64.charAt(i))<<18|decode(b64.charAt(i+1))<<12|decode(b64.charAt(i+2))<<6|decode(b64.charAt(i+3));push((tmp&16711680)>>16);push((tmp&65280)>>8);push(tmp&255)}if(placeHolders===2){tmp=decode(b64.charAt(i))<<2|decode(b64.charAt(i+1))>>4;push(tmp&255)}else if(placeHolders===1){tmp=decode(b64.charAt(i))<<10|decode(b64.charAt(i+1))<<4|decode(b64.charAt(i+2))>>2;push(tmp>>8&255);push(tmp&255)}return arr}function uint8ToBase64(uint8){var i,extraBytes=uint8.length%3,output="",temp,length;function encode(num){return lookup.charAt(num)}function tripletToBase64(num){return encode(num>>18&63)+encode(num>>12&63)+encode(num>>6&63)+encode(num&63)}for(i=0,length=uint8.length-extraBytes;i<length;i+=3){temp=(uint8[i]<<16)+(uint8[i+1]<<8)+uint8[i+2];output+=tripletToBase64(temp)}switch(extraBytes){case 1:temp=uint8[uint8.length-1];output+=encode(temp>>2);output+=encode(temp<<4&63);output+="==";break;case 2:temp=(uint8[uint8.length-2]<<8)+uint8[uint8.length-1];output+=encode(temp>>10);output+=encode(temp>>4&63);output+=encode(temp<<2&63);output+="=";break}return output}exports.toByteArray=b64ToByteArray;exports.fromByteArray=uint8ToBase64})(typeof exports==="undefined"?this.base64js={}:exports)},{}],15:[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m;var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var nBits=-7;var i=isLE?nBytes-1:0;var d=isLE?-1:1;var s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8){}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8){}if(e===0){e=1-eBias}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity}else{m=m+Math.pow(2,mLen);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c;var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0;var i=isLE?0:nBytes-1;var d=isLE?1:-1;var s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2}if(e+eBias>=1){value+=rt/c}else{value+=rt*Math.pow(2,1-eBias)}if(value*c>=2){e++;c/=2}if(e+eBias>=eMax){m=0;e=eMax}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0}}for(;mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8){}e=e<<mLen|m;eLen+=mLen;for(;eLen>0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8){}buffer[offset+i-d]|=s*128}},{}],16:[function(require,module,exports){var isArray=Array.isArray;var str=Object.prototype.toString;module.exports=isArray||function(val){return!!val&&"[object Array]"==str.call(val)}},{}],17:[function(require,module,exports){var process=module.exports={};var queue=[];var draining=false;function drainQueue(){if(draining){return}draining=true;var currentQueue;var len=queue.length;while(len){currentQueue=queue;queue=[];var i=-1;while(++i<len){currentQueue[i]()}len=queue.length}draining=false}process.nextTick=function(fun){queue.push(fun);if(!draining){setTimeout(drainQueue,0)}};process.title="browser";process.browser=true;process.env={};process.argv=[];process.version="";process.versions={};function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")};process.umask=function(){return 0}},{}],18:[function(require,module,exports){(function(Buffer){(function(){"use strict";function btoa(str){var buffer;if(str instanceof Buffer){buffer=str}else{buffer=new Buffer(str.toString(),"binary")}return buffer.toString("base64")}module.exports=btoa})()}).call(this,require("buffer").Buffer)},{buffer:13}],19:[function(require,module,exports){(function(){"use strict";function CookieAccessInfo(domain,path,secure,script){if(this instanceof CookieAccessInfo){this.domain=domain||undefined;this.path=path||"/";this.secure=!!secure;this.script=!!script;return this}return new CookieAccessInfo(domain,path,secure,script)}exports.CookieAccessInfo=CookieAccessInfo;function Cookie(cookiestr,request_domain,request_path){if(cookiestr instanceof Cookie){return cookiestr}if(this instanceof Cookie){this.name=null;this.value=null;this.expiration_date=Infinity;this.path=String(request_path||"/");this.explicit_path=false;this.domain=request_domain||null;this.explicit_domain=false;this.secure=false;this.noscript=false;if(cookiestr){this.parse(cookiestr,request_domain,request_path)}return this}return new Cookie(cookiestr)}exports.Cookie=Cookie;Cookie.prototype.toString=function toString(){var str=[this.name+"="+this.value];if(this.expiration_date!==Infinity){str.push("expires="+new Date(this.expiration_date).toGMTString())}if(this.domain){str.push("domain="+this.domain)}if(this.path){str.push("path="+this.path)}if(this.secure){str.push("secure")}if(this.noscript){str.push("httponly")}return str.join("; ")};Cookie.prototype.toValueString=function toValueString(){return this.name+"="+this.value};var cookie_str_splitter=/[:](?=\s*[a-zA-Z0-9_\-]+\s*[=])/g;Cookie.prototype.parse=function parse(str,request_domain,request_path){if(this instanceof Cookie){var parts=str.split(";").filter(function(value){return!!value}),pair=parts[0].match(/([^=]+)=([\s\S]*)/),key=pair[1],value=pair[2],i;this.name=key;this.value=value;for(i=1;i<parts.length;i+=1){pair=parts[i].match(/([^=]+)(?:=([\s\S]*))?/);key=pair[1].trim().toLowerCase();value=pair[2];switch(key){case"httponly":this.noscript=true;break;case"expires":this.expiration_date=value?Number(Date.parse(value)):Infinity;break;case"path":this.path=value?value.trim():"";this.explicit_path=true;break;case"domain":this.domain=value?value.trim():"";this.explicit_domain=!!this.domain;break;case"secure":this.secure=true;break}}if(!this.explicit_path){this.path=request_path||"/"}if(!this.explicit_domain){this.domain=request_domain}return this}return(new Cookie).parse(str,request_domain,request_path)};Cookie.prototype.matches=function matches(access_info){if(this.noscript&&access_info.script||this.secure&&!access_info.secure||!this.collidesWith(access_info)){return false}return true};Cookie.prototype.collidesWith=function collidesWith(access_info){if(this.path&&!access_info.path||this.domain&&!access_info.domain){return false}if(this.path&&access_info.path.indexOf(this.path)!==0){return false}if(!this.explicit_path){if(this.path!==access_info.path){return false}}var access_domain=access_info.domain&&access_info.domain.replace(/^[\.]/,"");var cookie_domain=this.domain&&this.domain.replace(/^[\.]/,"");if(cookie_domain===access_domain){return true}if(cookie_domain){if(!this.explicit_domain){return false}var wildcard=access_domain.indexOf(cookie_domain);if(wildcard===-1||wildcard!==access_domain.length-cookie_domain.length){return false}return true}return true};function CookieJar(){var cookies,cookies_list,collidable_cookie;if(this instanceof CookieJar){cookies=Object.create(null);this.setCookie=function setCookie(cookie,request_domain,request_path){var remove,i;cookie=new Cookie(cookie,request_domain,request_path);remove=cookie.expiration_date<=Date.now();if(cookies[cookie.name]!==undefined){cookies_list=cookies[cookie.name];for(i=0;i<cookies_list.length;i+=1){collidable_cookie=cookies_list[i];if(collidable_cookie.collidesWith(cookie)){if(remove){cookies_list.splice(i,1);if(cookies_list.length===0){delete cookies[cookie.name]}return false}cookies_list[i]=cookie;return cookie}}if(remove){return false}cookies_list.push(cookie);return cookie}if(remove){return false}cookies[cookie.name]=[cookie];return cookies[cookie.name]};this.getCookie=function getCookie(cookie_name,access_info){var cookie,i;cookies_list=cookies[cookie_name];if(!cookies_list){return}for(i=0;i<cookies_list.length;i+=1){cookie=cookies_list[i];if(cookie.expiration_date<=Date.now()){if(cookies_list.length===0){delete cookies[cookie.name]}continue}if(cookie.matches(access_info)){return cookie}}};this.getCookies=function getCookies(access_info){var matches=[],cookie_name,cookie;for(cookie_name in cookies){cookie=this.getCookie(cookie_name,access_info);if(cookie){matches.push(cookie)}}matches.toString=function toString(){return matches.join(":")};matches.toValueString=function toValueString(){return matches.map(function(c){return c.toValueString()}).join(";")};return matches};return this}return new CookieJar}exports.CookieJar=CookieJar;CookieJar.prototype.setCookies=function setCookies(cookies,request_domain,request_path){cookies=Array.isArray(cookies)?cookies:cookies.split(cookie_str_splitter);var successful=[],i,cookie;cookies=cookies.map(Cookie);for(i=0;i<cookies.length;i+=1){cookie=cookies[i];if(this.setCookie(cookie,request_domain,request_path)){successful.push(cookie)}}return successful}})()},{}],20:[function(require,module,exports){(function(global,factory){if(typeof module==="object"&&typeof module.exports==="object"){module.exports=global.document?factory(global,true):function(w){if(!w.document){throw new Error("jQuery requires a window with a document")}return factory(w)}}else{factory(global)}})(typeof window!=="undefined"?window:this,function(window,noGlobal){var arr=[];var slice=arr.slice;var concat=arr.concat;var push=arr.push;var indexOf=arr.indexOf;var class2type={};var toString=class2type.toString;var hasOwn=class2type.hasOwnProperty;var support={};var document=window.document,version="2.1.4",jQuery=function(selector,context){return new jQuery.fn.init(selector,context)},rtrim=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,rmsPrefix=/^-ms-/,rdashAlpha=/-([\da-z])/gi,fcamelCase=function(all,letter){return letter.toUpperCase()};jQuery.fn=jQuery.prototype={jquery:version,constructor:jQuery,selector:"",length:0,toArray:function(){return slice.call(this)},get:function(num){return num!=null?num<0?this[num+this.length]:this[num]:slice.call(this)},pushStack:function(elems){var ret=jQuery.merge(this.constructor(),elems);ret.prevObject=this;ret.context=this.context;return ret},each:function(callback,args){return jQuery.each(this,callback,args)},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem)}))},slice:function(){return this.pushStack(slice.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(i){var len=this.length,j=+i+(i<0?len:0);return this.pushStack(j>=0&&j<len?[this[j]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:push,sort:arr.sort,splice:arr.splice};jQuery.extend=jQuery.fn.extend=function(){var options,name,src,copy,copyIsArray,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=false;if(typeof target==="boolean"){deep=target;target=arguments[i]||{};i++}if(typeof target!=="object"&&!jQuery.isFunction(target)){target={}}if(i===length){target=this;i--}for(;i<length;i++){if((options=arguments[i])!=null){for(name in options){src=target[name];copy=options[name];if(target===copy){continue}if(deep&&copy&&(jQuery.isPlainObject(copy)||(copyIsArray=jQuery.isArray(copy)))){if(copyIsArray){copyIsArray=false;clone=src&&jQuery.isArray(src)?src:[]}else{clone=src&&jQuery.isPlainObject(src)?src:{}}target[name]=jQuery.extend(deep,clone,copy)}else if(copy!==undefined){target[name]=copy}}}}return target};jQuery.extend({expando:"jQuery"+(version+Math.random()).replace(/\D/g,""),isReady:true,error:function(msg){throw new Error(msg)},noop:function(){},isFunction:function(obj){return jQuery.type(obj)==="function"},isArray:Array.isArray,isWindow:function(obj){return obj!=null&&obj===obj.window},isNumeric:function(obj){return!jQuery.isArray(obj)&&obj-parseFloat(obj)+1>=0},isPlainObject:function(obj){if(jQuery.type(obj)!=="object"||obj.nodeType||jQuery.isWindow(obj)){return false}if(obj.constructor&&!hasOwn.call(obj.constructor.prototype,"isPrototypeOf")){return false}return true},isEmptyObject:function(obj){var name;for(name in obj){return false}return true},type:function(obj){if(obj==null){return obj+""}return typeof obj==="object"||typeof obj==="function"?class2type[toString.call(obj)]||"object":typeof obj},globalEval:function(code){var script,indirect=eval;code=jQuery.trim(code);if(code){if(code.indexOf("use strict")===1){script=document.createElement("script");script.text=code;document.head.appendChild(script).parentNode.removeChild(script)}else{indirect(code)}}},camelCase:function(string){return string.replace(rmsPrefix,"ms-").replace(rdashAlpha,fcamelCase)},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toLowerCase()===name.toLowerCase()},each:function(obj,callback,args){var value,i=0,length=obj.length,isArray=isArraylike(obj);if(args){if(isArray){for(;i<length;i++){value=callback.apply(obj[i],args);if(value===false){break}}}else{for(i in obj){value=callback.apply(obj[i],args);if(value===false){break}}}}else{if(isArray){for(;i<length;i++){value=callback.call(obj[i],i,obj[i]);if(value===false){break}}}else{for(i in obj){value=callback.call(obj[i],i,obj[i]);if(value===false){break}}}}return obj},trim:function(text){return text==null?"":(text+"").replace(rtrim,"")},makeArray:function(arr,results){var ret=results||[];if(arr!=null){if(isArraylike(Object(arr))){jQuery.merge(ret,typeof arr==="string"?[arr]:arr)}else{push.call(ret,arr)}}return ret},inArray:function(elem,arr,i){return arr==null?-1:indexOf.call(arr,elem,i)},merge:function(first,second){var len=+second.length,j=0,i=first.length;for(;j<len;j++){first[i++]=second[j]}first.length=i;return first},grep:function(elems,callback,invert){var callbackInverse,matches=[],i=0,length=elems.length,callbackExpect=!invert;for(;i<length;i++){callbackInverse=!callback(elems[i],i);if(callbackInverse!==callbackExpect){matches.push(elems[i])}}return matches},map:function(elems,callback,arg){var value,i=0,length=elems.length,isArray=isArraylike(elems),ret=[];if(isArray){for(;i<length;i++){value=callback(elems[i],i,arg);if(value!=null){ret.push(value)}}}else{for(i in elems){value=callback(elems[i],i,arg);if(value!=null){ret.push(value)}}}return concat.apply([],ret)},guid:1,proxy:function(fn,context){var tmp,args,proxy;if(typeof context==="string"){tmp=fn[context];context=fn;fn=tmp}if(!jQuery.isFunction(fn)){return undefined}args=slice.call(arguments,2);proxy=function(){return fn.apply(context||this,args.concat(slice.call(arguments)))};proxy.guid=fn.guid=fn.guid||jQuery.guid++;return proxy},now:Date.now,support:support});jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(i,name){class2type["[object "+name+"]"]=name.toLowerCase()});function isArraylike(obj){var length="length"in obj&&obj.length,type=jQuery.type(obj);if(type==="function"||jQuery.isWindow(obj)){return false}if(obj.nodeType===1&&length){return true}return type==="array"||length===0||typeof length==="number"&&length>0&&length-1 in obj}var Sizzle=function(window){var i,support,Expr,getText,isXML,tokenize,compile,select,outermostContext,sortInput,hasDuplicate,setDocument,document,docElem,documentIsHTML,rbuggyQSA,rbuggyMatches,matches,contains,expando="sizzle"+1*new Date,preferredDoc=window.document,dirruns=0,done=0,classCache=createCache(),tokenCache=createCache(),compilerCache=createCache(),sortOrder=function(a,b){if(a===b){hasDuplicate=true}return 0},MAX_NEGATIVE=1<<31,hasOwn={}.hasOwnProperty,arr=[],pop=arr.pop,push_native=arr.push,push=arr.push,slice=arr.slice,indexOf=function(list,elem){var i=0,len=list.length;for(;i<len;i++){if(list[i]===elem){return i}}return-1},booleans="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",whitespace="[\\x20\\t\\r\\n\\f]",characterEncoding="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",identifier=characterEncoding.replace("w","w#"),attributes="\\["+whitespace+"*("+characterEncoding+")(?:"+whitespace+"*([*^$|!~]?=)"+whitespace+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+identifier+"))|)"+whitespace+"*\\]",pseudos=":("+characterEncoding+")(?:\\(("+"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|"+"((?:\\\\.|[^\\\\()[\\]]|"+attributes+")*)|"+".*"+")\\)|)",rwhitespace=new RegExp(whitespace+"+","g"),rtrim=new RegExp("^"+whitespace+"+|((?:^|[^\\\\])(?:\\\\.)*)"+whitespace+"+$","g"),rcomma=new RegExp("^"+whitespace+"*,"+whitespace+"*"),rcombinators=new RegExp("^"+whitespace+"*([>+~]|"+whitespace+")"+whitespace+"*"),rattributeQuotes=new RegExp("="+whitespace+"*([^\\]'\"]*?)"+whitespace+"*\\]","g"),rpseudo=new RegExp(pseudos),ridentifier=new RegExp("^"+identifier+"$"),matchExpr={ID:new RegExp("^#("+characterEncoding+")"),CLASS:new RegExp("^\\.("+characterEncoding+")"),TAG:new RegExp("^("+characterEncoding.replace("w","w*")+")"),ATTR:new RegExp("^"+attributes),PSEUDO:new RegExp("^"+pseudos),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+whitespace+"*(even|odd|(([+-]|)(\\d*)n|)"+whitespace+"*(?:([+-]|)"+whitespace+"*(\\d+)|))"+whitespace+"*\\)|)","i"),bool:new RegExp("^(?:"+booleans+")$","i"),needsContext:new RegExp("^"+whitespace+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+whitespace+"*((?:-\\d)?\\d*)"+whitespace+"*\\)|)(?=[^-]|$)","i")},rinputs=/^(?:input|select|textarea|button)$/i,rheader=/^h\d$/i,rnative=/^[^{]+\{\s*\[native \w/,rquickExpr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,rsibling=/[+~]/,rescape=/'|\\/g,runescape=new RegExp("\\\\([\\da-f]{1,6}"+whitespace+"?|("+whitespace+")|.)","ig"),funescape=function(_,escaped,escapedWhitespace){var high="0x"+escaped-65536;return high!==high||escapedWhitespace?escaped:high<0?String.fromCharCode(high+65536):String.fromCharCode(high>>10|55296,high&1023|56320)},unloadHandler=function(){setDocument()};try{push.apply(arr=slice.call(preferredDoc.childNodes),preferredDoc.childNodes);arr[preferredDoc.childNodes.length].nodeType}catch(e){push={apply:arr.length?function(target,els){push_native.apply(target,slice.call(els))}:function(target,els){var j=target.length,i=0;while(target[j++]=els[i++]){}target.length=j-1}}}function Sizzle(selector,context,results,seed){var match,elem,m,nodeType,i,groups,old,nid,newContext,newSelector;if((context?context.ownerDocument||context:preferredDoc)!==document){setDocument(context)}context=context||document;results=results||[];nodeType=context.nodeType;if(typeof selector!=="string"||!selector||nodeType!==1&&nodeType!==9&&nodeType!==11){return results}if(!seed&&documentIsHTML){if(nodeType!==11&&(match=rquickExpr.exec(selector))){if(m=match[1]){if(nodeType===9){elem=context.getElementById(m);if(elem&&elem.parentNode){if(elem.id===m){results.push(elem);return results}}else{return results}}else{if(context.ownerDocument&&(elem=context.ownerDocument.getElementById(m))&&contains(context,elem)&&elem.id===m){results.push(elem);return results}}}else if(match[2]){push.apply(results,context.getElementsByTagName(selector));return results}else if((m=match[3])&&support.getElementsByClassName){push.apply(results,context.getElementsByClassName(m));return results}}if(support.qsa&&(!rbuggyQSA||!rbuggyQSA.test(selector))){nid=old=expando;newContext=context;newSelector=nodeType!==1&&selector;if(nodeType===1&&context.nodeName.toLowerCase()!=="object"){groups=tokenize(selector);if(old=context.getAttribute("id")){nid=old.replace(rescape,"\\$&")}else{context.setAttribute("id",nid)}nid="[id='"+nid+"'] ";i=groups.length;while(i--){groups[i]=nid+toSelector(groups[i])}newContext=rsibling.test(selector)&&testContext(context.parentNode)||context;newSelector=groups.join(",")}if(newSelector){try{push.apply(results,newContext.querySelectorAll(newSelector));return results}catch(qsaError){}finally{if(!old){context.removeAttribute("id")}}}}}return select(selector.replace(rtrim,"$1"),context,results,seed)}function createCache(){var keys=[];function cache(key,value){if(keys.push(key+" ")>Expr.cacheLength){delete cache[keys.shift()]}return cache[key+" "]=value}return cache}function markFunction(fn){fn[expando]=true;return fn}function assert(fn){var div=document.createElement("div");try{return!!fn(div)}catch(e){return false}finally{if(div.parentNode){div.parentNode.removeChild(div)}div=null}}function addHandle(attrs,handler){var arr=attrs.split("|"),i=attrs.length;while(i--){Expr.attrHandle[arr[i]]=handler}}function siblingCheck(a,b){var cur=b&&a,diff=cur&&a.nodeType===1&&b.nodeType===1&&(~b.sourceIndex||MAX_NEGATIVE)-(~a.sourceIndex||MAX_NEGATIVE);if(diff){return diff}if(cur){while(cur=cur.nextSibling){if(cur===b){return-1}}}return a?1:-1}function createInputPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type===type}}function createButtonPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return(name==="input"||name==="button")&&elem.type===type}}function createPositionalPseudo(fn){return markFunction(function(argument){argument=+argument;return markFunction(function(seed,matches){var j,matchIndexes=fn([],seed.length,argument),i=matchIndexes.length;while(i--){if(seed[j=matchIndexes[i]]){seed[j]=!(matches[j]=seed[j])}}})})}function testContext(context){return context&&typeof context.getElementsByTagName!=="undefined"&&context}support=Sizzle.support={};isXML=Sizzle.isXML=function(elem){var documentElement=elem&&(elem.ownerDocument||elem).documentElement;return documentElement?documentElement.nodeName!=="HTML":false};setDocument=Sizzle.setDocument=function(node){var hasCompare,parent,doc=node?node.ownerDocument||node:preferredDoc;if(doc===document||doc.nodeType!==9||!doc.documentElement){return document}document=doc;docElem=doc.documentElement;parent=doc.defaultView;if(parent&&parent!==parent.top){if(parent.addEventListener){parent.addEventListener("unload",unloadHandler,false)}else if(parent.attachEvent){parent.attachEvent("onunload",unloadHandler)}}documentIsHTML=!isXML(doc);support.attributes=assert(function(div){div.className="i";return!div.getAttribute("className")});support.getElementsByTagName=assert(function(div){div.appendChild(doc.createComment(""));return!div.getElementsByTagName("*").length});support.getElementsByClassName=rnative.test(doc.getElementsByClassName);support.getById=assert(function(div){docElem.appendChild(div).id=expando;return!doc.getElementsByName||!doc.getElementsByName(expando).length});if(support.getById){Expr.find["ID"]=function(id,context){if(typeof context.getElementById!=="undefined"&&documentIsHTML){var m=context.getElementById(id);return m&&m.parentNode?[m]:[]}};Expr.filter["ID"]=function(id){var attrId=id.replace(runescape,funescape);return function(elem){return elem.getAttribute("id")===attrId}}}else{delete Expr.find["ID"];Expr.filter["ID"]=function(id){ +var attrId=id.replace(runescape,funescape);return function(elem){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return node&&node.value===attrId}}}Expr.find["TAG"]=support.getElementsByTagName?function(tag,context){if(typeof context.getElementsByTagName!=="undefined"){return context.getElementsByTagName(tag)}else if(support.qsa){return context.querySelectorAll(tag)}}:function(tag,context){var elem,tmp=[],i=0,results=context.getElementsByTagName(tag);if(tag==="*"){while(elem=results[i++]){if(elem.nodeType===1){tmp.push(elem)}}return tmp}return results};Expr.find["CLASS"]=support.getElementsByClassName&&function(className,context){if(documentIsHTML){return context.getElementsByClassName(className)}};rbuggyMatches=[];rbuggyQSA=[];if(support.qsa=rnative.test(doc.querySelectorAll)){assert(function(div){docElem.appendChild(div).innerHTML="<a id='"+expando+"'></a>"+"<select id='"+expando+"-\f]' msallowcapture=''>"+"<option selected=''></option></select>";if(div.querySelectorAll("[msallowcapture^='']").length){rbuggyQSA.push("[*^$]="+whitespace+"*(?:''|\"\")")}if(!div.querySelectorAll("[selected]").length){rbuggyQSA.push("\\["+whitespace+"*(?:value|"+booleans+")")}if(!div.querySelectorAll("[id~="+expando+"-]").length){rbuggyQSA.push("~=")}if(!div.querySelectorAll(":checked").length){rbuggyQSA.push(":checked")}if(!div.querySelectorAll("a#"+expando+"+*").length){rbuggyQSA.push(".#.+[+~]")}});assert(function(div){var input=doc.createElement("input");input.setAttribute("type","hidden");div.appendChild(input).setAttribute("name","D");if(div.querySelectorAll("[name=d]").length){rbuggyQSA.push("name"+whitespace+"*[*^$|!~]?=")}if(!div.querySelectorAll(":enabled").length){rbuggyQSA.push(":enabled",":disabled")}div.querySelectorAll("*,:x");rbuggyQSA.push(",.*:")})}if(support.matchesSelector=rnative.test(matches=docElem.matches||docElem.webkitMatchesSelector||docElem.mozMatchesSelector||docElem.oMatchesSelector||docElem.msMatchesSelector)){assert(function(div){support.disconnectedMatch=matches.call(div,"div");matches.call(div,"[s!='']:x");rbuggyMatches.push("!=",pseudos)})}rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join("|"));rbuggyMatches=rbuggyMatches.length&&new RegExp(rbuggyMatches.join("|"));hasCompare=rnative.test(docElem.compareDocumentPosition);contains=hasCompare||rnative.test(docElem.contains)?function(a,b){var adown=a.nodeType===9?a.documentElement:a,bup=b&&b.parentNode;return a===bup||!!(bup&&bup.nodeType===1&&(adown.contains?adown.contains(bup):a.compareDocumentPosition&&a.compareDocumentPosition(bup)&16))}:function(a,b){if(b){while(b=b.parentNode){if(b===a){return true}}}return false};sortOrder=hasCompare?function(a,b){if(a===b){hasDuplicate=true;return 0}var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;if(compare){return compare}compare=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1;if(compare&1||!support.sortDetached&&b.compareDocumentPosition(a)===compare){if(a===doc||a.ownerDocument===preferredDoc&&contains(preferredDoc,a)){return-1}if(b===doc||b.ownerDocument===preferredDoc&&contains(preferredDoc,b)){return 1}return sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0}return compare&4?-1:1}:function(a,b){if(a===b){hasDuplicate=true;return 0}var cur,i=0,aup=a.parentNode,bup=b.parentNode,ap=[a],bp=[b];if(!aup||!bup){return a===doc?-1:b===doc?1:aup?-1:bup?1:sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0}else if(aup===bup){return siblingCheck(a,b)}cur=a;while(cur=cur.parentNode){ap.unshift(cur)}cur=b;while(cur=cur.parentNode){bp.unshift(cur)}while(ap[i]===bp[i]){i++}return i?siblingCheck(ap[i],bp[i]):ap[i]===preferredDoc?-1:bp[i]===preferredDoc?1:0};return doc};Sizzle.matches=function(expr,elements){return Sizzle(expr,null,null,elements)};Sizzle.matchesSelector=function(elem,expr){if((elem.ownerDocument||elem)!==document){setDocument(elem)}expr=expr.replace(rattributeQuotes,"='$1']");if(support.matchesSelector&&documentIsHTML&&(!rbuggyMatches||!rbuggyMatches.test(expr))&&(!rbuggyQSA||!rbuggyQSA.test(expr))){try{var ret=matches.call(elem,expr);if(ret||support.disconnectedMatch||elem.document&&elem.document.nodeType!==11){return ret}}catch(e){}}return Sizzle(expr,document,null,[elem]).length>0};Sizzle.contains=function(context,elem){if((context.ownerDocument||context)!==document){setDocument(context)}return contains(context,elem)};Sizzle.attr=function(elem,name){if((elem.ownerDocument||elem)!==document){setDocument(elem)}var fn=Expr.attrHandle[name.toLowerCase()],val=fn&&hasOwn.call(Expr.attrHandle,name.toLowerCase())?fn(elem,name,!documentIsHTML):undefined;return val!==undefined?val:support.attributes||!documentIsHTML?elem.getAttribute(name):(val=elem.getAttributeNode(name))&&val.specified?val.value:null};Sizzle.error=function(msg){throw new Error("Syntax error, unrecognized expression: "+msg)};Sizzle.uniqueSort=function(results){var elem,duplicates=[],j=0,i=0;hasDuplicate=!support.detectDuplicates;sortInput=!support.sortStable&&results.slice(0);results.sort(sortOrder);if(hasDuplicate){while(elem=results[i++]){if(elem===results[i]){j=duplicates.push(i)}}while(j--){results.splice(duplicates[j],1)}}sortInput=null;return results};getText=Sizzle.getText=function(elem){var node,ret="",i=0,nodeType=elem.nodeType;if(!nodeType){while(node=elem[i++]){ret+=getText(node)}}else if(nodeType===1||nodeType===9||nodeType===11){if(typeof elem.textContent==="string"){return elem.textContent}else{for(elem=elem.firstChild;elem;elem=elem.nextSibling){ret+=getText(elem)}}}else if(nodeType===3||nodeType===4){return elem.nodeValue}return ret};Expr=Sizzle.selectors={cacheLength:50,createPseudo:markFunction,match:matchExpr,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(match){match[1]=match[1].replace(runescape,funescape);match[3]=(match[3]||match[4]||match[5]||"").replace(runescape,funescape);if(match[2]==="~="){match[3]=" "+match[3]+" "}return match.slice(0,4)},CHILD:function(match){match[1]=match[1].toLowerCase();if(match[1].slice(0,3)==="nth"){if(!match[3]){Sizzle.error(match[0])}match[4]=+(match[4]?match[5]+(match[6]||1):2*(match[3]==="even"||match[3]==="odd"));match[5]=+(match[7]+match[8]||match[3]==="odd")}else if(match[3]){Sizzle.error(match[0])}return match},PSEUDO:function(match){var excess,unquoted=!match[6]&&match[2];if(matchExpr["CHILD"].test(match[0])){return null}if(match[3]){match[2]=match[4]||match[5]||""}else if(unquoted&&rpseudo.test(unquoted)&&(excess=tokenize(unquoted,true))&&(excess=unquoted.indexOf(")",unquoted.length-excess)-unquoted.length)){match[0]=match[0].slice(0,excess);match[2]=unquoted.slice(0,excess)}return match.slice(0,3)}},filter:{TAG:function(nodeNameSelector){var nodeName=nodeNameSelector.replace(runescape,funescape).toLowerCase();return nodeNameSelector==="*"?function(){return true}:function(elem){return elem.nodeName&&elem.nodeName.toLowerCase()===nodeName}},CLASS:function(className){var pattern=classCache[className+" "];return pattern||(pattern=new RegExp("(^|"+whitespace+")"+className+"("+whitespace+"|$)"))&&classCache(className,function(elem){return pattern.test(typeof elem.className==="string"&&elem.className||typeof elem.getAttribute!=="undefined"&&elem.getAttribute("class")||"")})},ATTR:function(name,operator,check){return function(elem){var result=Sizzle.attr(elem,name);if(result==null){return operator==="!="}if(!operator){return true}result+="";return operator==="="?result===check:operator==="!="?result!==check:operator==="^="?check&&result.indexOf(check)===0:operator==="*="?check&&result.indexOf(check)>-1:operator==="$="?check&&result.slice(-check.length)===check:operator==="~="?(" "+result.replace(rwhitespace," ")+" ").indexOf(check)>-1:operator==="|="?result===check||result.slice(0,check.length+1)===check+"-":false}},CHILD:function(type,what,argument,first,last){var simple=type.slice(0,3)!=="nth",forward=type.slice(-4)!=="last",ofType=what==="of-type";return first===1&&last===0?function(elem){return!!elem.parentNode}:function(elem,context,xml){var cache,outerCache,node,diff,nodeIndex,start,dir=simple!==forward?"nextSibling":"previousSibling",parent=elem.parentNode,name=ofType&&elem.nodeName.toLowerCase(),useCache=!xml&&!ofType;if(parent){if(simple){while(dir){node=elem;while(node=node[dir]){if(ofType?node.nodeName.toLowerCase()===name:node.nodeType===1){return false}}start=dir=type==="only"&&!start&&"nextSibling"}return true}start=[forward?parent.firstChild:parent.lastChild];if(forward&&useCache){outerCache=parent[expando]||(parent[expando]={});cache=outerCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=cache[0]===dirruns&&cache[2];node=nodeIndex&&parent.childNodes[nodeIndex];while(node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop()){if(node.nodeType===1&&++diff&&node===elem){outerCache[type]=[dirruns,nodeIndex,diff];break}}}else if(useCache&&(cache=(elem[expando]||(elem[expando]={}))[type])&&cache[0]===dirruns){diff=cache[1]}else{while(node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop()){if((ofType?node.nodeName.toLowerCase()===name:node.nodeType===1)&&++diff){if(useCache){(node[expando]||(node[expando]={}))[type]=[dirruns,diff]}if(node===elem){break}}}}diff-=last;return diff===first||diff%first===0&&diff/first>=0}}},PSEUDO:function(pseudo,argument){var args,fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||Sizzle.error("unsupported pseudo: "+pseudo);if(fn[expando]){return fn(argument)}if(fn.length>1){args=[pseudo,pseudo,"",argument];return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())?markFunction(function(seed,matches){var idx,matched=fn(seed,argument),i=matched.length;while(i--){idx=indexOf(seed,matched[i]);seed[idx]=!(matches[idx]=matched[i])}}):function(elem){return fn(elem,0,args)}}return fn}},pseudos:{not:markFunction(function(selector){var input=[],results=[],matcher=compile(selector.replace(rtrim,"$1"));return matcher[expando]?markFunction(function(seed,matches,context,xml){var elem,unmatched=matcher(seed,null,xml,[]),i=seed.length;while(i--){if(elem=unmatched[i]){seed[i]=!(matches[i]=elem)}}}):function(elem,context,xml){input[0]=elem;matcher(input,null,xml,results);input[0]=null;return!results.pop()}}),has:markFunction(function(selector){return function(elem){return Sizzle(selector,elem).length>0}}),contains:markFunction(function(text){text=text.replace(runescape,funescape);return function(elem){return(elem.textContent||elem.innerText||getText(elem)).indexOf(text)>-1}}),lang:markFunction(function(lang){if(!ridentifier.test(lang||"")){Sizzle.error("unsupported lang: "+lang)}lang=lang.replace(runescape,funescape).toLowerCase();return function(elem){var elemLang;do{if(elemLang=documentIsHTML?elem.lang:elem.getAttribute("xml:lang")||elem.getAttribute("lang")){elemLang=elemLang.toLowerCase();return elemLang===lang||elemLang.indexOf(lang+"-")===0}}while((elem=elem.parentNode)&&elem.nodeType===1);return false}}),target:function(elem){var hash=window.location&&window.location.hash;return hash&&hash.slice(1)===elem.id},root:function(elem){return elem===docElem},focus:function(elem){return elem===document.activeElement&&(!document.hasFocus||document.hasFocus())&&!!(elem.type||elem.href||~elem.tabIndex)},enabled:function(elem){return elem.disabled===false},disabled:function(elem){return elem.disabled===true},checked:function(elem){var nodeName=elem.nodeName.toLowerCase();return nodeName==="input"&&!!elem.checked||nodeName==="option"&&!!elem.selected},selected:function(elem){if(elem.parentNode){elem.parentNode.selectedIndex}return elem.selected===true},empty:function(elem){for(elem=elem.firstChild;elem;elem=elem.nextSibling){if(elem.nodeType<6){return false}}return true},parent:function(elem){return!Expr.pseudos["empty"](elem)},header:function(elem){return rheader.test(elem.nodeName)},input:function(elem){return rinputs.test(elem.nodeName)},button:function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type==="button"||name==="button"},text:function(elem){var attr;return elem.nodeName.toLowerCase()==="input"&&elem.type==="text"&&((attr=elem.getAttribute("type"))==null||attr.toLowerCase()==="text")},first:createPositionalPseudo(function(){return[0]}),last:createPositionalPseudo(function(matchIndexes,length){return[length-1]}),eq:createPositionalPseudo(function(matchIndexes,length,argument){return[argument<0?argument+length:argument]}),even:createPositionalPseudo(function(matchIndexes,length){var i=0;for(;i<length;i+=2){matchIndexes.push(i)}return matchIndexes}),odd:createPositionalPseudo(function(matchIndexes,length){var i=1;for(;i<length;i+=2){matchIndexes.push(i)}return matchIndexes}),lt:createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;--i>=0;){matchIndexes.push(i)}return matchIndexes}),gt:createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;++i<length;){matchIndexes.push(i)}return matchIndexes})}};Expr.pseudos["nth"]=Expr.pseudos["eq"];for(i in{radio:true,checkbox:true,file:true,password:true,image:true}){Expr.pseudos[i]=createInputPseudo(i)}for(i in{submit:true,reset:true}){Expr.pseudos[i]=createButtonPseudo(i)}function setFilters(){}setFilters.prototype=Expr.filters=Expr.pseudos;Expr.setFilters=new setFilters;tokenize=Sizzle.tokenize=function(selector,parseOnly){var matched,match,tokens,type,soFar,groups,preFilters,cached=tokenCache[selector+" "];if(cached){return parseOnly?0:cached.slice(0)}soFar=selector;groups=[];preFilters=Expr.preFilter;while(soFar){if(!matched||(match=rcomma.exec(soFar))){if(match){soFar=soFar.slice(match[0].length)||soFar}groups.push(tokens=[])}matched=false;if(match=rcombinators.exec(soFar)){matched=match.shift();tokens.push({value:matched,type:match[0].replace(rtrim," ")});soFar=soFar.slice(matched.length)}for(type in Expr.filter){if((match=matchExpr[type].exec(soFar))&&(!preFilters[type]||(match=preFilters[type](match)))){matched=match.shift();tokens.push({value:matched,type:type,matches:match});soFar=soFar.slice(matched.length)}}if(!matched){break}}return parseOnly?soFar.length:soFar?Sizzle.error(selector):tokenCache(selector,groups).slice(0)};function toSelector(tokens){var i=0,len=tokens.length,selector="";for(;i<len;i++){selector+=tokens[i].value}return selector}function addCombinator(matcher,combinator,base){var dir=combinator.dir,checkNonElements=base&&dir==="parentNode",doneName=done++;return combinator.first?function(elem,context,xml){while(elem=elem[dir]){if(elem.nodeType===1||checkNonElements){return matcher(elem,context,xml)}}}:function(elem,context,xml){var oldCache,outerCache,newCache=[dirruns,doneName];if(xml){while(elem=elem[dir]){if(elem.nodeType===1||checkNonElements){if(matcher(elem,context,xml)){return true}}}}else{while(elem=elem[dir]){if(elem.nodeType===1||checkNonElements){outerCache=elem[expando]||(elem[expando]={});if((oldCache=outerCache[dir])&&oldCache[0]===dirruns&&oldCache[1]===doneName){return newCache[2]=oldCache[2]}else{outerCache[dir]=newCache;if(newCache[2]=matcher(elem,context,xml)){return true}}}}}}}function elementMatcher(matchers){return matchers.length>1?function(elem,context,xml){var i=matchers.length;while(i--){if(!matchers[i](elem,context,xml)){return false}}return true}:matchers[0]}function multipleContexts(selector,contexts,results){var i=0,len=contexts.length;for(;i<len;i++){Sizzle(selector,contexts[i],results)}return results}function condense(unmatched,map,filter,context,xml){var elem,newUnmatched=[],i=0,len=unmatched.length,mapped=map!=null;for(;i<len;i++){if(elem=unmatched[i]){if(!filter||filter(elem,context,xml)){newUnmatched.push(elem);if(mapped){map.push(i)}}}}return newUnmatched}function setMatcher(preFilter,selector,matcher,postFilter,postFinder,postSelector){if(postFilter&&!postFilter[expando]){postFilter=setMatcher(postFilter)}if(postFinder&&!postFinder[expando]){postFinder=setMatcher(postFinder,postSelector)}return markFunction(function(seed,results,context,xml){var temp,i,elem,preMap=[],postMap=[],preexisting=results.length,elems=seed||multipleContexts(selector||"*",context.nodeType?[context]:context,[]),matcherIn=preFilter&&(seed||!selector)?condense(elems,preMap,preFilter,context,xml):elems,matcherOut=matcher?postFinder||(seed?preFilter:preexisting||postFilter)?[]:results:matcherIn;if(matcher){matcher(matcherIn,matcherOut,context,xml)}if(postFilter){temp=condense(matcherOut,postMap);postFilter(temp,[],context,xml);i=temp.length;while(i--){if(elem=temp[i]){matcherOut[postMap[i]]=!(matcherIn[postMap[i]]=elem)}}}if(seed){if(postFinder||preFilter){if(postFinder){temp=[];i=matcherOut.length;while(i--){if(elem=matcherOut[i]){temp.push(matcherIn[i]=elem)}}postFinder(null,matcherOut=[],temp,xml)}i=matcherOut.length;while(i--){if((elem=matcherOut[i])&&(temp=postFinder?indexOf(seed,elem):preMap[i])>-1){seed[temp]=!(results[temp]=elem)}}}}else{matcherOut=condense(matcherOut===results?matcherOut.splice(preexisting,matcherOut.length):matcherOut);if(postFinder){postFinder(null,results,matcherOut,xml)}else{push.apply(results,matcherOut)}}})}function matcherFromTokens(tokens){var checkContext,matcher,j,len=tokens.length,leadingRelative=Expr.relative[tokens[0].type],implicitRelative=leadingRelative||Expr.relative[" "],i=leadingRelative?1:0,matchContext=addCombinator(function(elem){return elem===checkContext},implicitRelative,true),matchAnyContext=addCombinator(function(elem){return indexOf(checkContext,elem)>-1},implicitRelative,true),matchers=[function(elem,context,xml){var ret=!leadingRelative&&(xml||context!==outermostContext)||((checkContext=context).nodeType?matchContext(elem,context,xml):matchAnyContext(elem,context,xml));checkContext=null;return ret}];for(;i<len;i++){if(matcher=Expr.relative[tokens[i].type]){matchers=[addCombinator(elementMatcher(matchers),matcher)]}else{matcher=Expr.filter[tokens[i].type].apply(null,tokens[i].matches);if(matcher[expando]){j=++i;for(;j<len;j++){if(Expr.relative[tokens[j].type]){break}}return setMatcher(i>1&&elementMatcher(matchers),i>1&&toSelector(tokens.slice(0,i-1).concat({value:tokens[i-2].type===" "?"*":""})).replace(rtrim,"$1"),matcher,i<j&&matcherFromTokens(tokens.slice(i,j)),j<len&&matcherFromTokens(tokens=tokens.slice(j)),j<len&&toSelector(tokens))}matchers.push(matcher)}}return elementMatcher(matchers)}function matcherFromGroupMatchers(elementMatchers,setMatchers){var bySet=setMatchers.length>0,byElement=elementMatchers.length>0,superMatcher=function(seed,context,xml,results,outermost){var elem,j,matcher,matchedCount=0,i="0",unmatched=seed&&[],setMatched=[],contextBackup=outermostContext,elems=seed||byElement&&Expr.find["TAG"]("*",outermost),dirrunsUnique=dirruns+=contextBackup==null?1:Math.random()||.1,len=elems.length;if(outermost){outermostContext=context!==document&&context}for(;i!==len&&(elem=elems[i])!=null;i++){if(byElement&&elem){j=0;while(matcher=elementMatchers[j++]){if(matcher(elem,context,xml)){results.push(elem);break}}if(outermost){dirruns=dirrunsUnique}}if(bySet){if(elem=!matcher&&elem){matchedCount--}if(seed){unmatched.push(elem)}}}matchedCount+=i;if(bySet&&i!==matchedCount){j=0;while(matcher=setMatchers[j++]){matcher(unmatched,setMatched,context,xml)}if(seed){if(matchedCount>0){while(i--){if(!(unmatched[i]||setMatched[i])){setMatched[i]=pop.call(results)}}}setMatched=condense(setMatched)}push.apply(results,setMatched);if(outermost&&!seed&&setMatched.length>0&&matchedCount+setMatchers.length>1){Sizzle.uniqueSort(results)}}if(outermost){dirruns=dirrunsUnique;outermostContext=contextBackup}return unmatched};return bySet?markFunction(superMatcher):superMatcher}compile=Sizzle.compile=function(selector,match){var i,setMatchers=[],elementMatchers=[],cached=compilerCache[selector+" "];if(!cached){if(!match){match=tokenize(selector)}i=match.length;while(i--){cached=matcherFromTokens(match[i]);if(cached[expando]){setMatchers.push(cached)}else{elementMatchers.push(cached)}}cached=compilerCache(selector,matcherFromGroupMatchers(elementMatchers,setMatchers));cached.selector=selector}return cached};select=Sizzle.select=function(selector,context,results,seed){var i,tokens,token,type,find,compiled=typeof selector==="function"&&selector,match=!seed&&tokenize(selector=compiled.selector||selector);results=results||[];if(match.length===1){tokens=match[0]=match[0].slice(0);if(tokens.length>2&&(token=tokens[0]).type==="ID"&&support.getById&&context.nodeType===9&&documentIsHTML&&Expr.relative[tokens[1].type]){context=(Expr.find["ID"](token.matches[0].replace(runescape,funescape),context)||[])[0];if(!context){return results}else if(compiled){context=context.parentNode}selector=selector.slice(tokens.shift().value.length)}i=matchExpr["needsContext"].test(selector)?0:tokens.length;while(i--){token=tokens[i];if(Expr.relative[type=token.type]){break}if(find=Expr.find[type]){if(seed=find(token.matches[0].replace(runescape,funescape),rsibling.test(tokens[0].type)&&testContext(context.parentNode)||context)){tokens.splice(i,1);selector=seed.length&&toSelector(tokens);if(!selector){push.apply(results,seed);return results}break}}}}(compiled||compile(selector,match))(seed,context,!documentIsHTML,results,rsibling.test(selector)&&testContext(context.parentNode)||context);return results};support.sortStable=expando.split("").sort(sortOrder).join("")===expando;support.detectDuplicates=!!hasDuplicate;setDocument();support.sortDetached=assert(function(div1){return div1.compareDocumentPosition(document.createElement("div"))&1});if(!assert(function(div){div.innerHTML="<a href='#'></a>";return div.firstChild.getAttribute("href")==="#"})){addHandle("type|href|height|width",function(elem,name,isXML){if(!isXML){return elem.getAttribute(name,name.toLowerCase()==="type"?1:2)}})}if(!support.attributes||!assert(function(div){div.innerHTML="<input/>";div.firstChild.setAttribute("value","");return div.firstChild.getAttribute("value")===""})){addHandle("value",function(elem,name,isXML){if(!isXML&&elem.nodeName.toLowerCase()==="input"){return elem.defaultValue}})}if(!assert(function(div){return div.getAttribute("disabled")==null})){addHandle(booleans,function(elem,name,isXML){var val;if(!isXML){return elem[name]===true?name.toLowerCase():(val=elem.getAttributeNode(name))&&val.specified?val.value:null}})}return Sizzle}(window);jQuery.find=Sizzle;jQuery.expr=Sizzle.selectors;jQuery.expr[":"]=jQuery.expr.pseudos;jQuery.unique=Sizzle.uniqueSort;jQuery.text=Sizzle.getText;jQuery.isXMLDoc=Sizzle.isXML;jQuery.contains=Sizzle.contains;var rneedsContext=jQuery.expr.match.needsContext;var rsingleTag=/^<(\w+)\s*\/?>(?:<\/\1>|)$/;var risSimple=/^.[^:#\[\.,]*$/;function winnow(elements,qualifier,not){if(jQuery.isFunction(qualifier)){return jQuery.grep(elements,function(elem,i){return!!qualifier.call(elem,i,elem)!==not})}if(qualifier.nodeType){return jQuery.grep(elements,function(elem){return elem===qualifier!==not})}if(typeof qualifier==="string"){if(risSimple.test(qualifier)){return jQuery.filter(qualifier,elements,not)}qualifier=jQuery.filter(qualifier,elements)}return jQuery.grep(elements,function(elem){return indexOf.call(qualifier,elem)>=0!==not})}jQuery.filter=function(expr,elems,not){var elem=elems[0];if(not){expr=":not("+expr+")"}return elems.length===1&&elem.nodeType===1?jQuery.find.matchesSelector(elem,expr)?[elem]:[]:jQuery.find.matches(expr,jQuery.grep(elems,function(elem){return elem.nodeType===1}))};jQuery.fn.extend({find:function(selector){var i,len=this.length,ret=[],self=this;if(typeof selector!=="string"){return this.pushStack(jQuery(selector).filter(function(){for(i=0;i<len;i++){if(jQuery.contains(self[i],this)){return true}}}))}for(i=0;i<len;i++){jQuery.find(selector,self[i],ret)}ret=this.pushStack(len>1?jQuery.unique(ret):ret);ret.selector=this.selector?this.selector+" "+selector:selector;return ret},filter:function(selector){return this.pushStack(winnow(this,selector||[],false))},not:function(selector){return this.pushStack(winnow(this,selector||[],true))},is:function(selector){return!!winnow(this,typeof selector==="string"&&rneedsContext.test(selector)?jQuery(selector):selector||[],false).length}});var rootjQuery,rquickExpr=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,init=jQuery.fn.init=function(selector,context){var match,elem;if(!selector){return this}if(typeof selector==="string"){if(selector[0]==="<"&&selector[selector.length-1]===">"&&selector.length>=3){match=[null,selector,null]}else{match=rquickExpr.exec(selector)}if(match&&(match[1]||!context)){if(match[1]){context=context instanceof jQuery?context[0]:context;jQuery.merge(this,jQuery.parseHTML(match[1],context&&context.nodeType?context.ownerDocument||context:document,true));if(rsingleTag.test(match[1])&&jQuery.isPlainObject(context)){for(match in context){if(jQuery.isFunction(this[match])){this[match](context[match])}else{this.attr(match,context[match])}}}return this}else{elem=document.getElementById(match[2]);if(elem&&elem.parentNode){this.length=1;this[0]=elem}this.context=document;this.selector=selector;return this}}else if(!context||context.jquery){return(context||rootjQuery).find(selector)}else{return this.constructor(context).find(selector)}}else if(selector.nodeType){this.context=this[0]=selector;this.length=1;return this}else if(jQuery.isFunction(selector)){return typeof rootjQuery.ready!=="undefined"?rootjQuery.ready(selector):selector(jQuery)}if(selector.selector!==undefined){this.selector=selector.selector;this.context=selector.context}return jQuery.makeArray(selector,this)};init.prototype=jQuery.fn;rootjQuery=jQuery(document);var rparentsprev=/^(?:parents|prev(?:Until|All))/,guaranteedUnique={children:true,contents:true,next:true,prev:true};jQuery.extend({dir:function(elem,dir,until){var matched=[],truncate=until!==undefined;while((elem=elem[dir])&&elem.nodeType!==9){if(elem.nodeType===1){if(truncate&&jQuery(elem).is(until)){break}matched.push(elem)}}return matched},sibling:function(n,elem){var matched=[];for(;n;n=n.nextSibling){if(n.nodeType===1&&n!==elem){matched.push(n)}}return matched}});jQuery.fn.extend({has:function(target){var targets=jQuery(target,this),l=targets.length;return this.filter(function(){var i=0;for(;i<l;i++){if(jQuery.contains(this,targets[i])){return true}}})},closest:function(selectors,context){var cur,i=0,l=this.length,matched=[],pos=rneedsContext.test(selectors)||typeof selectors!=="string"?jQuery(selectors,context||this.context):0;for(;i<l;i++){for(cur=this[i];cur&&cur!==context;cur=cur.parentNode){if(cur.nodeType<11&&(pos?pos.index(cur)>-1:cur.nodeType===1&&jQuery.find.matchesSelector(cur,selectors))){matched.push(cur);break}}}return this.pushStack(matched.length>1?jQuery.unique(matched):matched)},index:function(elem){if(!elem){return this[0]&&this[0].parentNode?this.first().prevAll().length:-1}if(typeof elem==="string"){return indexOf.call(jQuery(elem),this[0])}return indexOf.call(this,elem.jquery?elem[0]:elem)},add:function(selector,context){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),jQuery(selector,context))))},addBack:function(selector){return this.add(selector==null?this.prevObject:this.prevObject.filter(selector))}});function sibling(cur,dir){while((cur=cur[dir])&&cur.nodeType!==1){}return cur}jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&parent.nodeType!==11?parent:null},parents:function(elem){return jQuery.dir(elem,"parentNode")},parentsUntil:function(elem,i,until){return jQuery.dir(elem,"parentNode",until)},next:function(elem){return sibling(elem,"nextSibling")},prev:function(elem){return sibling(elem,"previousSibling")},nextAll:function(elem){return jQuery.dir(elem,"nextSibling")},prevAll:function(elem){return jQuery.dir(elem,"previousSibling")},nextUntil:function(elem,i,until){return jQuery.dir(elem,"nextSibling",until)},prevUntil:function(elem,i,until){return jQuery.dir(elem,"previousSibling",until)},siblings:function(elem){return jQuery.sibling((elem.parentNode||{}).firstChild,elem)},children:function(elem){return jQuery.sibling(elem.firstChild)},contents:function(elem){return elem.contentDocument||jQuery.merge([],elem.childNodes)}},function(name,fn){jQuery.fn[name]=function(until,selector){var matched=jQuery.map(this,fn,until);if(name.slice(-5)!=="Until"){selector=until}if(selector&&typeof selector==="string"){matched=jQuery.filter(selector,matched)}if(this.length>1){if(!guaranteedUnique[name]){jQuery.unique(matched)}if(rparentsprev.test(name)){matched.reverse()}}return this.pushStack(matched)}});var rnotwhite=/\S+/g;var optionsCache={};function createOptions(options){var object=optionsCache[options]={};jQuery.each(options.match(rnotwhite)||[],function(_,flag){object[flag]=true});return object}jQuery.Callbacks=function(options){options=typeof options==="string"?optionsCache[options]||createOptions(options):jQuery.extend({},options);var memory,fired,firing,firingStart,firingLength,firingIndex,list=[],stack=!options.once&&[],fire=function(data){memory=options.memory&&data;fired=true;firingIndex=firingStart||0;firingStart=0;firingLength=list.length;firing=true;for(;list&&firingIndex<firingLength;firingIndex++){if(list[firingIndex].apply(data[0],data[1])===false&&options.stopOnFalse){memory=false;break}}firing=false;if(list){if(stack){if(stack.length){fire(stack.shift())}}else if(memory){list=[]}else{self.disable()}}},self={add:function(){if(list){var start=list.length;(function add(args){jQuery.each(args,function(_,arg){var type=jQuery.type(arg);if(type==="function"){if(!options.unique||!self.has(arg)){list.push(arg)}}else if(arg&&arg.length&&type!=="string"){add(arg)}})})(arguments);if(firing){firingLength=list.length}else if(memory){firingStart=start;fire(memory)}}return this},remove:function(){if(list){jQuery.each(arguments,function(_,arg){var index;while((index=jQuery.inArray(arg,list,index))>-1){list.splice(index,1);if(firing){if(index<=firingLength){firingLength--}if(index<=firingIndex){firingIndex--}}}})}return this},has:function(fn){return fn?jQuery.inArray(fn,list)>-1:!!(list&&list.length)},empty:function(){list=[];firingLength=0;return this},disable:function(){list=stack=memory=undefined;return this},disabled:function(){return!list},lock:function(){stack=undefined;if(!memory){self.disable()}return this},locked:function(){return!stack},fireWith:function(context,args){if(list&&(!fired||stack)){args=args||[];args=[context,args.slice?args.slice():args];if(firing){stack.push(args)}else{fire(args)}}return this},fire:function(){self.fireWith(this,arguments);return this},fired:function(){return!!fired}};return self};jQuery.extend({Deferred:function(func){var tuples=[["resolve","done",jQuery.Callbacks("once memory"),"resolved"],["reject","fail",jQuery.Callbacks("once memory"),"rejected"],["notify","progress",jQuery.Callbacks("memory")]],state="pending",promise={state:function(){return state},always:function(){deferred.done(arguments).fail(arguments);return this},then:function(){var fns=arguments;return jQuery.Deferred(function(newDefer){jQuery.each(tuples,function(i,tuple){var fn=jQuery.isFunction(fns[i])&&fns[i];deferred[tuple[1]](function(){var returned=fn&&fn.apply(this,arguments);if(returned&&jQuery.isFunction(returned.promise)){returned.promise().done(newDefer.resolve).fail(newDefer.reject).progress(newDefer.notify)}else{newDefer[tuple[0]+"With"](this===promise?newDefer.promise():this,fn?[returned]:arguments)}})});fns=null}).promise()},promise:function(obj){return obj!=null?jQuery.extend(obj,promise):promise}},deferred={};promise.pipe=promise.then;jQuery.each(tuples,function(i,tuple){var list=tuple[2],stateString=tuple[3];promise[tuple[1]]=list.add;if(stateString){list.add(function(){state=stateString},tuples[i^1][2].disable,tuples[2][2].lock)}deferred[tuple[0]]=function(){deferred[tuple[0]+"With"](this===deferred?promise:this,arguments);return this};deferred[tuple[0]+"With"]=list.fireWith});promise.promise(deferred);if(func){func.call(deferred,deferred)}return deferred},when:function(subordinate){ +var i=0,resolveValues=slice.call(arguments),length=resolveValues.length,remaining=length!==1||subordinate&&jQuery.isFunction(subordinate.promise)?length:0,deferred=remaining===1?subordinate:jQuery.Deferred(),updateFunc=function(i,contexts,values){return function(value){contexts[i]=this;values[i]=arguments.length>1?slice.call(arguments):value;if(values===progressValues){deferred.notifyWith(contexts,values)}else if(!--remaining){deferred.resolveWith(contexts,values)}}},progressValues,progressContexts,resolveContexts;if(length>1){progressValues=new Array(length);progressContexts=new Array(length);resolveContexts=new Array(length);for(;i<length;i++){if(resolveValues[i]&&jQuery.isFunction(resolveValues[i].promise)){resolveValues[i].promise().done(updateFunc(i,resolveContexts,resolveValues)).fail(deferred.reject).progress(updateFunc(i,progressContexts,progressValues))}else{--remaining}}}if(!remaining){deferred.resolveWith(resolveContexts,resolveValues)}return deferred.promise()}});var readyList;jQuery.fn.ready=function(fn){jQuery.ready.promise().done(fn);return this};jQuery.extend({isReady:false,readyWait:1,holdReady:function(hold){if(hold){jQuery.readyWait++}else{jQuery.ready(true)}},ready:function(wait){if(wait===true?--jQuery.readyWait:jQuery.isReady){return}jQuery.isReady=true;if(wait!==true&&--jQuery.readyWait>0){return}readyList.resolveWith(document,[jQuery]);if(jQuery.fn.triggerHandler){jQuery(document).triggerHandler("ready");jQuery(document).off("ready")}}});function completed(){document.removeEventListener("DOMContentLoaded",completed,false);window.removeEventListener("load",completed,false);jQuery.ready()}jQuery.ready.promise=function(obj){if(!readyList){readyList=jQuery.Deferred();if(document.readyState==="complete"){setTimeout(jQuery.ready)}else{document.addEventListener("DOMContentLoaded",completed,false);window.addEventListener("load",completed,false)}}return readyList.promise(obj)};jQuery.ready.promise();var access=jQuery.access=function(elems,fn,key,value,chainable,emptyGet,raw){var i=0,len=elems.length,bulk=key==null;if(jQuery.type(key)==="object"){chainable=true;for(i in key){jQuery.access(elems,fn,i,key[i],true,emptyGet,raw)}}else if(value!==undefined){chainable=true;if(!jQuery.isFunction(value)){raw=true}if(bulk){if(raw){fn.call(elems,value);fn=null}else{bulk=fn;fn=function(elem,key,value){return bulk.call(jQuery(elem),value)}}}if(fn){for(;i<len;i++){fn(elems[i],key,raw?value:value.call(elems[i],i,fn(elems[i],key)))}}}return chainable?elems:bulk?fn.call(elems):len?fn(elems[0],key):emptyGet};jQuery.acceptData=function(owner){return owner.nodeType===1||owner.nodeType===9||!+owner.nodeType};function Data(){Object.defineProperty(this.cache={},0,{get:function(){return{}}});this.expando=jQuery.expando+Data.uid++}Data.uid=1;Data.accepts=jQuery.acceptData;Data.prototype={key:function(owner){if(!Data.accepts(owner)){return 0}var descriptor={},unlock=owner[this.expando];if(!unlock){unlock=Data.uid++;try{descriptor[this.expando]={value:unlock};Object.defineProperties(owner,descriptor)}catch(e){descriptor[this.expando]=unlock;jQuery.extend(owner,descriptor)}}if(!this.cache[unlock]){this.cache[unlock]={}}return unlock},set:function(owner,data,value){var prop,unlock=this.key(owner),cache=this.cache[unlock];if(typeof data==="string"){cache[data]=value}else{if(jQuery.isEmptyObject(cache)){jQuery.extend(this.cache[unlock],data)}else{for(prop in data){cache[prop]=data[prop]}}}return cache},get:function(owner,key){var cache=this.cache[this.key(owner)];return key===undefined?cache:cache[key]},access:function(owner,key,value){var stored;if(key===undefined||key&&typeof key==="string"&&value===undefined){stored=this.get(owner,key);return stored!==undefined?stored:this.get(owner,jQuery.camelCase(key))}this.set(owner,key,value);return value!==undefined?value:key},remove:function(owner,key){var i,name,camel,unlock=this.key(owner),cache=this.cache[unlock];if(key===undefined){this.cache[unlock]={}}else{if(jQuery.isArray(key)){name=key.concat(key.map(jQuery.camelCase))}else{camel=jQuery.camelCase(key);if(key in cache){name=[key,camel]}else{name=camel;name=name in cache?[name]:name.match(rnotwhite)||[]}}i=name.length;while(i--){delete cache[name[i]]}}},hasData:function(owner){return!jQuery.isEmptyObject(this.cache[owner[this.expando]]||{})},discard:function(owner){if(owner[this.expando]){delete this.cache[owner[this.expando]]}}};var data_priv=new Data;var data_user=new Data;var rbrace=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,rmultiDash=/([A-Z])/g;function dataAttr(elem,key,data){var name;if(data===undefined&&elem.nodeType===1){name="data-"+key.replace(rmultiDash,"-$1").toLowerCase();data=elem.getAttribute(name);if(typeof data==="string"){try{data=data==="true"?true:data==="false"?false:data==="null"?null:+data+""===data?+data:rbrace.test(data)?jQuery.parseJSON(data):data}catch(e){}data_user.set(elem,key,data)}else{data=undefined}}return data}jQuery.extend({hasData:function(elem){return data_user.hasData(elem)||data_priv.hasData(elem)},data:function(elem,name,data){return data_user.access(elem,name,data)},removeData:function(elem,name){data_user.remove(elem,name)},_data:function(elem,name,data){return data_priv.access(elem,name,data)},_removeData:function(elem,name){data_priv.remove(elem,name)}});jQuery.fn.extend({data:function(key,value){var i,name,data,elem=this[0],attrs=elem&&elem.attributes;if(key===undefined){if(this.length){data=data_user.get(elem);if(elem.nodeType===1&&!data_priv.get(elem,"hasDataAttrs")){i=attrs.length;while(i--){if(attrs[i]){name=attrs[i].name;if(name.indexOf("data-")===0){name=jQuery.camelCase(name.slice(5));dataAttr(elem,name,data[name])}}}data_priv.set(elem,"hasDataAttrs",true)}}return data}if(typeof key==="object"){return this.each(function(){data_user.set(this,key)})}return access(this,function(value){var data,camelKey=jQuery.camelCase(key);if(elem&&value===undefined){data=data_user.get(elem,key);if(data!==undefined){return data}data=data_user.get(elem,camelKey);if(data!==undefined){return data}data=dataAttr(elem,camelKey,undefined);if(data!==undefined){return data}return}this.each(function(){var data=data_user.get(this,camelKey);data_user.set(this,camelKey,value);if(key.indexOf("-")!==-1&&data!==undefined){data_user.set(this,key,value)}})},null,value,arguments.length>1,null,true)},removeData:function(key){return this.each(function(){data_user.remove(this,key)})}});jQuery.extend({queue:function(elem,type,data){var queue;if(elem){type=(type||"fx")+"queue";queue=data_priv.get(elem,type);if(data){if(!queue||jQuery.isArray(data)){queue=data_priv.access(elem,type,jQuery.makeArray(data))}else{queue.push(data)}}return queue||[]}},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),startLength=queue.length,fn=queue.shift(),hooks=jQuery._queueHooks(elem,type),next=function(){jQuery.dequeue(elem,type)};if(fn==="inprogress"){fn=queue.shift();startLength--}if(fn){if(type==="fx"){queue.unshift("inprogress")}delete hooks.stop;fn.call(elem,next,hooks)}if(!startLength&&hooks){hooks.empty.fire()}},_queueHooks:function(elem,type){var key=type+"queueHooks";return data_priv.get(elem,key)||data_priv.access(elem,key,{empty:jQuery.Callbacks("once memory").add(function(){data_priv.remove(elem,[type+"queue",key])})})}});jQuery.fn.extend({queue:function(type,data){var setter=2;if(typeof type!=="string"){data=type;type="fx";setter--}if(arguments.length<setter){return jQuery.queue(this[0],type)}return data===undefined?this:this.each(function(){var queue=jQuery.queue(this,type,data);jQuery._queueHooks(this,type);if(type==="fx"&&queue[0]!=="inprogress"){jQuery.dequeue(this,type)}})},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type)})},clearQueue:function(type){return this.queue(type||"fx",[])},promise:function(type,obj){var tmp,count=1,defer=jQuery.Deferred(),elements=this,i=this.length,resolve=function(){if(!--count){defer.resolveWith(elements,[elements])}};if(typeof type!=="string"){obj=type;type=undefined}type=type||"fx";while(i--){tmp=data_priv.get(elements[i],type+"queueHooks");if(tmp&&tmp.empty){count++;tmp.empty.add(resolve)}}resolve();return defer.promise(obj)}});var pnum=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source;var cssExpand=["Top","Right","Bottom","Left"];var isHidden=function(elem,el){elem=el||elem;return jQuery.css(elem,"display")==="none"||!jQuery.contains(elem.ownerDocument,elem)};var rcheckableType=/^(?:checkbox|radio)$/i;(function(){var fragment=document.createDocumentFragment(),div=fragment.appendChild(document.createElement("div")),input=document.createElement("input");input.setAttribute("type","radio");input.setAttribute("checked","checked");input.setAttribute("name","t");div.appendChild(input);support.checkClone=div.cloneNode(true).cloneNode(true).lastChild.checked;div.innerHTML="<textarea>x</textarea>";support.noCloneChecked=!!div.cloneNode(true).lastChild.defaultValue})();var strundefined=typeof undefined;support.focusinBubbles="onfocusin"in window;var rkeyEvent=/^key/,rmouseEvent=/^(?:mouse|pointer|contextmenu)|click/,rfocusMorph=/^(?:focusinfocus|focusoutblur)$/,rtypenamespace=/^([^.]*)(?:\.(.+)|)$/;function returnTrue(){return true}function returnFalse(){return false}function safeActiveElement(){try{return document.activeElement}catch(err){}}jQuery.event={global:{},add:function(elem,types,handler,data,selector){var handleObjIn,eventHandle,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=data_priv.get(elem);if(!elemData){return}if(handler.handler){handleObjIn=handler;handler=handleObjIn.handler;selector=handleObjIn.selector}if(!handler.guid){handler.guid=jQuery.guid++}if(!(events=elemData.events)){events=elemData.events={}}if(!(eventHandle=elemData.handle)){eventHandle=elemData.handle=function(e){return typeof jQuery!==strundefined&&jQuery.event.triggered!==e.type?jQuery.event.dispatch.apply(elem,arguments):undefined}}types=(types||"").match(rnotwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){continue}special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;special=jQuery.event.special[type]||{};handleObj=jQuery.extend({type:type,origType:origType,data:data,handler:handler,guid:handler.guid,selector:selector,needsContext:selector&&jQuery.expr.match.needsContext.test(selector),namespace:namespaces.join(".")},handleObjIn);if(!(handlers=events[type])){handlers=events[type]=[];handlers.delegateCount=0;if(!special.setup||special.setup.call(elem,data,namespaces,eventHandle)===false){if(elem.addEventListener){elem.addEventListener(type,eventHandle,false)}}}if(special.add){special.add.call(elem,handleObj);if(!handleObj.handler.guid){handleObj.handler.guid=handler.guid}}if(selector){handlers.splice(handlers.delegateCount++,0,handleObj)}else{handlers.push(handleObj)}jQuery.event.global[type]=true}},remove:function(elem,types,handler,selector,mappedTypes){var j,origCount,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=data_priv.hasData(elem)&&data_priv.get(elem);if(!elemData||!(events=elemData.events)){return}types=(types||"").match(rnotwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){for(type in events){jQuery.event.remove(elem,type+types[t],handler,selector,true)}continue}special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;handlers=events[type]||[];tmp=tmp[2]&&new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)");origCount=j=handlers.length;while(j--){handleObj=handlers[j];if((mappedTypes||origType===handleObj.origType)&&(!handler||handler.guid===handleObj.guid)&&(!tmp||tmp.test(handleObj.namespace))&&(!selector||selector===handleObj.selector||selector==="**"&&handleObj.selector)){handlers.splice(j,1);if(handleObj.selector){handlers.delegateCount--}if(special.remove){special.remove.call(elem,handleObj)}}}if(origCount&&!handlers.length){if(!special.teardown||special.teardown.call(elem,namespaces,elemData.handle)===false){jQuery.removeEvent(elem,type,elemData.handle)}delete events[type]}}if(jQuery.isEmptyObject(events)){delete elemData.handle;data_priv.remove(elem,"events")}},trigger:function(event,data,elem,onlyHandlers){var i,cur,tmp,bubbleType,ontype,handle,special,eventPath=[elem||document],type=hasOwn.call(event,"type")?event.type:event,namespaces=hasOwn.call(event,"namespace")?event.namespace.split("."):[];cur=tmp=elem=elem||document;if(elem.nodeType===3||elem.nodeType===8){return}if(rfocusMorph.test(type+jQuery.event.triggered)){return}if(type.indexOf(".")>=0){namespaces=type.split(".");type=namespaces.shift();namespaces.sort()}ontype=type.indexOf(":")<0&&"on"+type;event=event[jQuery.expando]?event:new jQuery.Event(type,typeof event==="object"&&event);event.isTrigger=onlyHandlers?2:3;event.namespace=namespaces.join(".");event.namespace_re=event.namespace?new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;event.result=undefined;if(!event.target){event.target=elem}data=data==null?[event]:jQuery.makeArray(data,[event]);special=jQuery.event.special[type]||{};if(!onlyHandlers&&special.trigger&&special.trigger.apply(elem,data)===false){return}if(!onlyHandlers&&!special.noBubble&&!jQuery.isWindow(elem)){bubbleType=special.delegateType||type;if(!rfocusMorph.test(bubbleType+type)){cur=cur.parentNode}for(;cur;cur=cur.parentNode){eventPath.push(cur);tmp=cur}if(tmp===(elem.ownerDocument||document)){eventPath.push(tmp.defaultView||tmp.parentWindow||window)}}i=0;while((cur=eventPath[i++])&&!event.isPropagationStopped()){event.type=i>1?bubbleType:special.bindType||type;handle=(data_priv.get(cur,"events")||{})[event.type]&&data_priv.get(cur,"handle");if(handle){handle.apply(cur,data)}handle=ontype&&cur[ontype];if(handle&&handle.apply&&jQuery.acceptData(cur)){event.result=handle.apply(cur,data);if(event.result===false){event.preventDefault()}}}event.type=type;if(!onlyHandlers&&!event.isDefaultPrevented()){if((!special._default||special._default.apply(eventPath.pop(),data)===false)&&jQuery.acceptData(elem)){if(ontype&&jQuery.isFunction(elem[type])&&!jQuery.isWindow(elem)){tmp=elem[ontype];if(tmp){elem[ontype]=null}jQuery.event.triggered=type;elem[type]();jQuery.event.triggered=undefined;if(tmp){elem[ontype]=tmp}}}}return event.result},dispatch:function(event){event=jQuery.event.fix(event);var i,j,ret,matched,handleObj,handlerQueue=[],args=slice.call(arguments),handlers=(data_priv.get(this,"events")||{})[event.type]||[],special=jQuery.event.special[event.type]||{};args[0]=event;event.delegateTarget=this;if(special.preDispatch&&special.preDispatch.call(this,event)===false){return}handlerQueue=jQuery.event.handlers.call(this,event,handlers);i=0;while((matched=handlerQueue[i++])&&!event.isPropagationStopped()){event.currentTarget=matched.elem;j=0;while((handleObj=matched.handlers[j++])&&!event.isImmediatePropagationStopped()){if(!event.namespace_re||event.namespace_re.test(handleObj.namespace)){event.handleObj=handleObj;event.data=handleObj.data;ret=((jQuery.event.special[handleObj.origType]||{}).handle||handleObj.handler).apply(matched.elem,args);if(ret!==undefined){if((event.result=ret)===false){event.preventDefault();event.stopPropagation()}}}}}if(special.postDispatch){special.postDispatch.call(this,event)}return event.result},handlers:function(event,handlers){var i,matches,sel,handleObj,handlerQueue=[],delegateCount=handlers.delegateCount,cur=event.target;if(delegateCount&&cur.nodeType&&(!event.button||event.type!=="click")){for(;cur!==this;cur=cur.parentNode||this){if(cur.disabled!==true||event.type!=="click"){matches=[];for(i=0;i<delegateCount;i++){handleObj=handlers[i];sel=handleObj.selector+" ";if(matches[sel]===undefined){matches[sel]=handleObj.needsContext?jQuery(sel,this).index(cur)>=0:jQuery.find(sel,this,null,[cur]).length}if(matches[sel]){matches.push(handleObj)}}if(matches.length){handlerQueue.push({elem:cur,handlers:matches})}}}}if(delegateCount<handlers.length){handlerQueue.push({elem:this,handlers:handlers.slice(delegateCount)})}return handlerQueue},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(event,original){if(event.which==null){event.which=original.charCode!=null?original.charCode:original.keyCode}return event}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(event,original){var eventDoc,doc,body,button=original.button;if(event.pageX==null&&original.clientX!=null){eventDoc=event.target.ownerDocument||document;doc=eventDoc.documentElement;body=eventDoc.body;event.pageX=original.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0);event.pageY=original.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0)}if(!event.which&&button!==undefined){event.which=button&1?1:button&2?3:button&4?2:0}return event}},fix:function(event){if(event[jQuery.expando]){return event}var i,prop,copy,type=event.type,originalEvent=event,fixHook=this.fixHooks[type];if(!fixHook){this.fixHooks[type]=fixHook=rmouseEvent.test(type)?this.mouseHooks:rkeyEvent.test(type)?this.keyHooks:{}}copy=fixHook.props?this.props.concat(fixHook.props):this.props;event=new jQuery.Event(originalEvent);i=copy.length;while(i--){prop=copy[i];event[prop]=originalEvent[prop]}if(!event.target){event.target=document}if(event.target.nodeType===3){event.target=event.target.parentNode}return fixHook.filter?fixHook.filter(event,originalEvent):event},special:{load:{noBubble:true},focus:{trigger:function(){if(this!==safeActiveElement()&&this.focus){this.focus();return false}},delegateType:"focusin"},blur:{trigger:function(){if(this===safeActiveElement()&&this.blur){this.blur();return false}},delegateType:"focusout"},click:{trigger:function(){if(this.type==="checkbox"&&this.click&&jQuery.nodeName(this,"input")){this.click();return false}},_default:function(event){return jQuery.nodeName(event.target,"a")}},beforeunload:{postDispatch:function(event){if(event.result!==undefined&&event.originalEvent){event.originalEvent.returnValue=event.result}}}},simulate:function(type,elem,event,bubble){var e=jQuery.extend(new jQuery.Event,event,{type:type,isSimulated:true,originalEvent:{}});if(bubble){jQuery.event.trigger(e,null,elem)}else{jQuery.event.dispatch.call(elem,e)}if(e.isDefaultPrevented()){event.preventDefault()}}};jQuery.removeEvent=function(elem,type,handle){if(elem.removeEventListener){elem.removeEventListener(type,handle,false)}};jQuery.Event=function(src,props){if(!(this instanceof jQuery.Event)){return new jQuery.Event(src,props)}if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=src.defaultPrevented||src.defaultPrevented===undefined&&src.returnValue===false?returnTrue:returnFalse}else{this.type=src}if(props){jQuery.extend(this,props)}this.timeStamp=src&&src.timeStamp||jQuery.now();this[jQuery.expando]=true};jQuery.Event.prototype={isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=returnTrue;if(e&&e.preventDefault){e.preventDefault()}},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=returnTrue;if(e&&e.stopPropagation){e.stopPropagation()}},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=returnTrue;if(e&&e.stopImmediatePropagation){e.stopImmediatePropagation()}this.stopPropagation()}};jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(orig,fix){jQuery.event.special[orig]={delegateType:fix,bindType:fix,handle:function(event){var ret,target=this,related=event.relatedTarget,handleObj=event.handleObj;if(!related||related!==target&&!jQuery.contains(target,related)){event.type=handleObj.origType;ret=handleObj.handler.apply(this,arguments);event.type=fix}return ret}}});if(!support.focusinBubbles){jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){var handler=function(event){jQuery.event.simulate(fix,event.target,jQuery.event.fix(event),true)};jQuery.event.special[fix]={setup:function(){var doc=this.ownerDocument||this,attaches=data_priv.access(doc,fix);if(!attaches){doc.addEventListener(orig,handler,true)}data_priv.access(doc,fix,(attaches||0)+1)},teardown:function(){var doc=this.ownerDocument||this,attaches=data_priv.access(doc,fix)-1;if(!attaches){doc.removeEventListener(orig,handler,true);data_priv.remove(doc,fix)}else{data_priv.access(doc,fix,attaches)}}}})}jQuery.fn.extend({on:function(types,selector,data,fn,one){var origFn,type;if(typeof types==="object"){if(typeof selector!=="string"){data=data||selector;selector=undefined}for(type in types){this.on(type,selector,data,types[type],one)}return this}if(data==null&&fn==null){fn=selector;data=selector=undefined}else if(fn==null){if(typeof selector==="string"){fn=data;data=undefined}else{fn=data;data=selector;selector=undefined}}if(fn===false){fn=returnFalse}else if(!fn){return this}if(one===1){origFn=fn;fn=function(event){jQuery().off(event);return origFn.apply(this,arguments)};fn.guid=origFn.guid||(origFn.guid=jQuery.guid++)}return this.each(function(){jQuery.event.add(this,types,fn,data,selector)})},one:function(types,selector,data,fn){return this.on(types,selector,data,fn,1)},off:function(types,selector,fn){var handleObj,type;if(types&&types.preventDefault&&types.handleObj){handleObj=types.handleObj;jQuery(types.delegateTarget).off(handleObj.namespace?handleObj.origType+"."+handleObj.namespace:handleObj.origType,handleObj.selector,handleObj.handler);return this}if(typeof types==="object"){for(type in types){this.off(type,selector,types[type])}return this}if(selector===false||typeof selector==="function"){fn=selector;selector=undefined}if(fn===false){fn=returnFalse}return this.each(function(){jQuery.event.remove(this,types,fn,selector)})},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this)})},triggerHandler:function(type,data){var elem=this[0];if(elem){return jQuery.event.trigger(type,data,elem,true)}}});var rxhtmlTag=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,rtagName=/<([\w:]+)/,rhtml=/<|&#?\w+;/,rnoInnerhtml=/<(?:script|style|link)/i,rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,rscriptType=/^$|\/(?:java|ecma)script/i,rscriptTypeMasked=/^true\/(.*)/,rcleanScript=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,wrapMap={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};wrapMap.optgroup=wrapMap.option;wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;function manipulationTarget(elem,content){return jQuery.nodeName(elem,"table")&&jQuery.nodeName(content.nodeType!==11?content:content.firstChild,"tr")?elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody")):elem}function disableScript(elem){elem.type=(elem.getAttribute("type")!==null)+"/"+elem.type;return elem}function restoreScript(elem){var match=rscriptTypeMasked.exec(elem.type);if(match){elem.type=match[1]}else{elem.removeAttribute("type")}return elem}function setGlobalEval(elems,refElements){var i=0,l=elems.length;for(;i<l;i++){data_priv.set(elems[i],"globalEval",!refElements||data_priv.get(refElements[i],"globalEval"))}}function cloneCopyEvent(src,dest){var i,l,type,pdataOld,pdataCur,udataOld,udataCur,events;if(dest.nodeType!==1){return}if(data_priv.hasData(src)){pdataOld=data_priv.access(src);pdataCur=data_priv.set(dest,pdataOld);events=pdataOld.events;if(events){delete pdataCur.handle;pdataCur.events={};for(type in events){for(i=0,l=events[type].length;i<l;i++){jQuery.event.add(dest,type,events[type][i])}}}}if(data_user.hasData(src)){udataOld=data_user.access(src);udataCur=jQuery.extend({},udataOld);data_user.set(dest,udataCur)}}function getAll(context,tag){var ret=context.getElementsByTagName?context.getElementsByTagName(tag||"*"):context.querySelectorAll?context.querySelectorAll(tag||"*"):[];return tag===undefined||tag&&jQuery.nodeName(context,tag)?jQuery.merge([context],ret):ret}function fixInput(src,dest){var nodeName=dest.nodeName.toLowerCase();if(nodeName==="input"&&rcheckableType.test(src.type)){dest.checked=src.checked}else if(nodeName==="input"||nodeName==="textarea"){dest.defaultValue=src.defaultValue}}jQuery.extend({clone:function(elem,dataAndEvents,deepDataAndEvents){var i,l,srcElements,destElements,clone=elem.cloneNode(true),inPage=jQuery.contains(elem.ownerDocument,elem);if(!support.noCloneChecked&&(elem.nodeType===1||elem.nodeType===11)&&!jQuery.isXMLDoc(elem)){destElements=getAll(clone);srcElements=getAll(elem);for(i=0,l=srcElements.length;i<l;i++){fixInput(srcElements[i],destElements[i])}}if(dataAndEvents){if(deepDataAndEvents){srcElements=srcElements||getAll(elem);destElements=destElements||getAll(clone);for(i=0,l=srcElements.length;i<l;i++){cloneCopyEvent(srcElements[i],destElements[i])}}else{cloneCopyEvent(elem,clone)}}destElements=getAll(clone,"script");if(destElements.length>0){setGlobalEval(destElements,!inPage&&getAll(elem,"script"))}return clone},buildFragment:function(elems,context,scripts,selection){var elem,tmp,tag,wrap,contains,j,fragment=context.createDocumentFragment(),nodes=[],i=0,l=elems.length;for(;i<l;i++){elem=elems[i];if(elem||elem===0){if(jQuery.type(elem)==="object"){jQuery.merge(nodes,elem.nodeType?[elem]:elem)}else if(!rhtml.test(elem)){nodes.push(context.createTextNode(elem))}else{tmp=tmp||fragment.appendChild(context.createElement("div"));tag=(rtagName.exec(elem)||["",""])[1].toLowerCase();wrap=wrapMap[tag]||wrapMap._default;tmp.innerHTML=wrap[1]+elem.replace(rxhtmlTag,"<$1></$2>")+wrap[2];j=wrap[0];while(j--){tmp=tmp.lastChild}jQuery.merge(nodes,tmp.childNodes);tmp=fragment.firstChild;tmp.textContent=""}}}fragment.textContent="";i=0;while(elem=nodes[i++]){if(selection&&jQuery.inArray(elem,selection)!==-1){continue}contains=jQuery.contains(elem.ownerDocument,elem);tmp=getAll(fragment.appendChild(elem),"script");if(contains){setGlobalEval(tmp)}if(scripts){j=0;while(elem=tmp[j++]){if(rscriptType.test(elem.type||"")){scripts.push(elem)}}}}return fragment},cleanData:function(elems){var data,elem,type,key,special=jQuery.event.special,i=0;for(;(elem=elems[i])!==undefined;i++){if(jQuery.acceptData(elem)){key=elem[data_priv.expando];if(key&&(data=data_priv.cache[key])){if(data.events){for(type in data.events){if(special[type]){jQuery.event.remove(elem,type)}else{jQuery.removeEvent(elem,type,data.handle)}}}if(data_priv.cache[key]){delete data_priv.cache[key]}}}delete data_user.cache[elem[data_user.expando]]}}});jQuery.fn.extend({text:function(value){return access(this,function(value){return value===undefined?jQuery.text(this):this.empty().each(function(){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){this.textContent=value}})},null,value,arguments.length)},append:function(){return this.domManip(arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.appendChild(elem)}})},prepend:function(){return this.domManip(arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.insertBefore(elem,target.firstChild)}})},before:function(){return this.domManip(arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this)}})},after:function(){return this.domManip(arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this.nextSibling)}})},remove:function(selector,keepData){var elem,elems=selector?jQuery.filter(selector,this):this,i=0;for(;(elem=elems[i])!=null;i++){if(!keepData&&elem.nodeType===1){jQuery.cleanData(getAll(elem))}if(elem.parentNode){if(keepData&&jQuery.contains(elem.ownerDocument,elem)){setGlobalEval(getAll(elem,"script"))}elem.parentNode.removeChild(elem)}}return this},empty:function(){var elem,i=0;for(;(elem=this[i])!=null;i++){if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.textContent=""}}return this},clone:function(dataAndEvents,deepDataAndEvents){dataAndEvents=dataAndEvents==null?false:dataAndEvents;deepDataAndEvents=deepDataAndEvents==null?dataAndEvents:deepDataAndEvents;return this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents)})},html:function(value){return access(this,function(value){var elem=this[0]||{},i=0,l=this.length;if(value===undefined&&elem.nodeType===1){return elem.innerHTML}if(typeof value==="string"&&!rnoInnerhtml.test(value)&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=value.replace(rxhtmlTag,"<$1></$2>");try{for(;i<l;i++){elem=this[i]||{};if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.innerHTML=value}}elem=0}catch(e){}}if(elem){this.empty().append(value)}},null,value,arguments.length)},replaceWith:function(){var arg=arguments[0];this.domManip(arguments,function(elem){arg=this.parentNode;jQuery.cleanData(getAll(this));if(arg){arg.replaceChild(elem,this)}});return arg&&(arg.length||arg.nodeType)?this:this.remove()},detach:function(selector){return this.remove(selector,true)},domManip:function(args,callback){args=concat.apply([],args);var fragment,first,scripts,hasScripts,node,doc,i=0,l=this.length,set=this,iNoClone=l-1,value=args[0],isFunction=jQuery.isFunction(value);if(isFunction||l>1&&typeof value==="string"&&!support.checkClone&&rchecked.test(value)){return this.each(function(index){var self=set.eq(index);if(isFunction){args[0]=value.call(this,index,self.html())}self.domManip(args,callback)})}if(l){fragment=jQuery.buildFragment(args,this[0].ownerDocument,false,this);first=fragment.firstChild;if(fragment.childNodes.length===1){fragment=first}if(first){scripts=jQuery.map(getAll(fragment,"script"),disableScript);hasScripts=scripts.length;for(;i<l;i++){node=fragment;if(i!==iNoClone){node=jQuery.clone(node,true,true);if(hasScripts){jQuery.merge(scripts,getAll(node,"script"))}}callback.call(this[i],node,i)}if(hasScripts){doc=scripts[scripts.length-1].ownerDocument;jQuery.map(scripts,restoreScript);for(i=0;i<hasScripts;i++){node=scripts[i];if(rscriptType.test(node.type||"")&&!data_priv.access(node,"globalEval")&&jQuery.contains(doc,node)){if(node.src){if(jQuery._evalUrl){jQuery._evalUrl(node.src)}}else{jQuery.globalEval(node.textContent.replace(rcleanScript,""))}}}}}}return this}});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var elems,ret=[],insert=jQuery(selector),last=insert.length-1,i=0;for(;i<=last;i++){elems=i===last?this:this.clone(true);jQuery(insert[i])[original](elems);push.apply(ret,elems.get())}return this.pushStack(ret)}});var iframe,elemdisplay={};function actualDisplay(name,doc){var style,elem=jQuery(doc.createElement(name)).appendTo(doc.body),display=window.getDefaultComputedStyle&&(style=window.getDefaultComputedStyle(elem[0]))?style.display:jQuery.css(elem[0],"display");elem.detach();return display}function defaultDisplay(nodeName){var doc=document,display=elemdisplay[nodeName];if(!display){display=actualDisplay(nodeName,doc);if(display==="none"||!display){iframe=(iframe||jQuery("<iframe frameborder='0' width='0' height='0'/>")).appendTo(doc.documentElement);doc=iframe[0].contentDocument;doc.write();doc.close();display=actualDisplay(nodeName,doc);iframe.detach()}elemdisplay[nodeName]=display}return display}var rmargin=/^margin/; + +var rnumnonpx=new RegExp("^("+pnum+")(?!px)[a-z%]+$","i");var getStyles=function(elem){if(elem.ownerDocument.defaultView.opener){return elem.ownerDocument.defaultView.getComputedStyle(elem,null)}return window.getComputedStyle(elem,null)};function curCSS(elem,name,computed){var width,minWidth,maxWidth,ret,style=elem.style;computed=computed||getStyles(elem);if(computed){ret=computed.getPropertyValue(name)||computed[name]}if(computed){if(ret===""&&!jQuery.contains(elem.ownerDocument,elem)){ret=jQuery.style(elem,name)}if(rnumnonpx.test(ret)&&rmargin.test(name)){width=style.width;minWidth=style.minWidth;maxWidth=style.maxWidth;style.minWidth=style.maxWidth=style.width=ret;ret=computed.width;style.width=width;style.minWidth=minWidth;style.maxWidth=maxWidth}}return ret!==undefined?ret+"":ret}function addGetHookIf(conditionFn,hookFn){return{get:function(){if(conditionFn()){delete this.get;return}return(this.get=hookFn).apply(this,arguments)}}}(function(){var pixelPositionVal,boxSizingReliableVal,docElem=document.documentElement,container=document.createElement("div"),div=document.createElement("div");if(!div.style){return}div.style.backgroundClip="content-box";div.cloneNode(true).style.backgroundClip="";support.clearCloneStyle=div.style.backgroundClip==="content-box";container.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;"+"position:absolute";container.appendChild(div);function computePixelPositionAndBoxSizingReliable(){div.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;"+"box-sizing:border-box;display:block;margin-top:1%;top:1%;"+"border:1px;padding:1px;width:4px;position:absolute";div.innerHTML="";docElem.appendChild(container);var divStyle=window.getComputedStyle(div,null);pixelPositionVal=divStyle.top!=="1%";boxSizingReliableVal=divStyle.width==="4px";docElem.removeChild(container)}if(window.getComputedStyle){jQuery.extend(support,{pixelPosition:function(){computePixelPositionAndBoxSizingReliable();return pixelPositionVal},boxSizingReliable:function(){if(boxSizingReliableVal==null){computePixelPositionAndBoxSizingReliable()}return boxSizingReliableVal},reliableMarginRight:function(){var ret,marginDiv=div.appendChild(document.createElement("div"));marginDiv.style.cssText=div.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;"+"box-sizing:content-box;display:block;margin:0;border:0;padding:0";marginDiv.style.marginRight=marginDiv.style.width="0";div.style.width="1px";docElem.appendChild(container);ret=!parseFloat(window.getComputedStyle(marginDiv,null).marginRight);docElem.removeChild(container);div.removeChild(marginDiv);return ret}})}})();jQuery.swap=function(elem,options,callback,args){var ret,name,old={};for(name in options){old[name]=elem.style[name];elem.style[name]=options[name]}ret=callback.apply(elem,args||[]);for(name in options){elem.style[name]=old[name]}return ret};var rdisplayswap=/^(none|table(?!-c[ea]).+)/,rnumsplit=new RegExp("^("+pnum+")(.*)$","i"),rrelNum=new RegExp("^([+-])=("+pnum+")","i"),cssShow={position:"absolute",visibility:"hidden",display:"block"},cssNormalTransform={letterSpacing:"0",fontWeight:"400"},cssPrefixes=["Webkit","O","Moz","ms"];function vendorPropName(style,name){if(name in style){return name}var capName=name[0].toUpperCase()+name.slice(1),origName=name,i=cssPrefixes.length;while(i--){name=cssPrefixes[i]+capName;if(name in style){return name}}return origName}function setPositiveNumber(elem,value,subtract){var matches=rnumsplit.exec(value);return matches?Math.max(0,matches[1]-(subtract||0))+(matches[2]||"px"):value}function augmentWidthOrHeight(elem,name,extra,isBorderBox,styles){var i=extra===(isBorderBox?"border":"content")?4:name==="width"?1:0,val=0;for(;i<4;i+=2){if(extra==="margin"){val+=jQuery.css(elem,extra+cssExpand[i],true,styles)}if(isBorderBox){if(extra==="content"){val-=jQuery.css(elem,"padding"+cssExpand[i],true,styles)}if(extra!=="margin"){val-=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles)}}else{val+=jQuery.css(elem,"padding"+cssExpand[i],true,styles);if(extra!=="padding"){val+=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles)}}}return val}function getWidthOrHeight(elem,name,extra){var valueIsBorderBox=true,val=name==="width"?elem.offsetWidth:elem.offsetHeight,styles=getStyles(elem),isBorderBox=jQuery.css(elem,"boxSizing",false,styles)==="border-box";if(val<=0||val==null){val=curCSS(elem,name,styles);if(val<0||val==null){val=elem.style[name]}if(rnumnonpx.test(val)){return val}valueIsBorderBox=isBorderBox&&(support.boxSizingReliable()||val===elem.style[name]);val=parseFloat(val)||0}return val+augmentWidthOrHeight(elem,name,extra||(isBorderBox?"border":"content"),valueIsBorderBox,styles)+"px"}function showHide(elements,show){var display,elem,hidden,values=[],index=0,length=elements.length;for(;index<length;index++){elem=elements[index];if(!elem.style){continue}values[index]=data_priv.get(elem,"olddisplay");display=elem.style.display;if(show){if(!values[index]&&display==="none"){elem.style.display=""}if(elem.style.display===""&&isHidden(elem)){values[index]=data_priv.access(elem,"olddisplay",defaultDisplay(elem.nodeName))}}else{hidden=isHidden(elem);if(display!=="none"||!hidden){data_priv.set(elem,"olddisplay",hidden?display:jQuery.css(elem,"display"))}}}for(index=0;index<length;index++){elem=elements[index];if(!elem.style){continue}if(!show||elem.style.display==="none"||elem.style.display===""){elem.style.display=show?values[index]||"":"none"}}return elements}jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity");return ret===""?"1":ret}}}},cssNumber:{columnCount:true,fillOpacity:true,flexGrow:true,flexShrink:true,fontWeight:true,lineHeight:true,opacity:true,order:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":"cssFloat"},style:function(elem,name,value,extra){if(!elem||elem.nodeType===3||elem.nodeType===8||!elem.style){return}var ret,type,hooks,origName=jQuery.camelCase(name),style=elem.style;name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(style,origName));hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(value!==undefined){type=typeof value;if(type==="string"&&(ret=rrelNum.exec(value))){value=(ret[1]+1)*ret[2]+parseFloat(jQuery.css(elem,name));type="number"}if(value==null||value!==value){return}if(type==="number"&&!jQuery.cssNumber[origName]){value+="px"}if(!support.clearCloneStyle&&value===""&&name.indexOf("background")===0){style[name]="inherit"}if(!hooks||!("set"in hooks)||(value=hooks.set(elem,value,extra))!==undefined){style[name]=value}}else{if(hooks&&"get"in hooks&&(ret=hooks.get(elem,false,extra))!==undefined){return ret}return style[name]}},css:function(elem,name,extra,styles){var val,num,hooks,origName=jQuery.camelCase(name);name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(elem.style,origName));hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(hooks&&"get"in hooks){val=hooks.get(elem,true,extra)}if(val===undefined){val=curCSS(elem,name,styles)}if(val==="normal"&&name in cssNormalTransform){val=cssNormalTransform[name]}if(extra===""||extra){num=parseFloat(val);return extra===true||jQuery.isNumeric(num)?num||0:val}return val}});jQuery.each(["height","width"],function(i,name){jQuery.cssHooks[name]={get:function(elem,computed,extra){if(computed){return rdisplayswap.test(jQuery.css(elem,"display"))&&elem.offsetWidth===0?jQuery.swap(elem,cssShow,function(){return getWidthOrHeight(elem,name,extra)}):getWidthOrHeight(elem,name,extra)}},set:function(elem,value,extra){var styles=extra&&getStyles(elem);return setPositiveNumber(elem,value,extra?augmentWidthOrHeight(elem,name,extra,jQuery.css(elem,"boxSizing",false,styles)==="border-box",styles):0)}}});jQuery.cssHooks.marginRight=addGetHookIf(support.reliableMarginRight,function(elem,computed){if(computed){return jQuery.swap(elem,{display:"inline-block"},curCSS,[elem,"marginRight"])}});jQuery.each({margin:"",padding:"",border:"Width"},function(prefix,suffix){jQuery.cssHooks[prefix+suffix]={expand:function(value){var i=0,expanded={},parts=typeof value==="string"?value.split(" "):[value];for(;i<4;i++){expanded[prefix+cssExpand[i]+suffix]=parts[i]||parts[i-2]||parts[0]}return expanded}};if(!rmargin.test(prefix)){jQuery.cssHooks[prefix+suffix].set=setPositiveNumber}});jQuery.fn.extend({css:function(name,value){return access(this,function(elem,name,value){var styles,len,map={},i=0;if(jQuery.isArray(name)){styles=getStyles(elem);len=name.length;for(;i<len;i++){map[name[i]]=jQuery.css(elem,name[i],false,styles)}return map}return value!==undefined?jQuery.style(elem,name,value):jQuery.css(elem,name)},name,value,arguments.length>1)},show:function(){return showHide(this,true)},hide:function(){return showHide(this)},toggle:function(state){if(typeof state==="boolean"){return state?this.show():this.hide()}return this.each(function(){if(isHidden(this)){jQuery(this).show()}else{jQuery(this).hide()}})}});function Tween(elem,options,prop,end,easing){return new Tween.prototype.init(elem,options,prop,end,easing)}jQuery.Tween=Tween;Tween.prototype={constructor:Tween,init:function(elem,options,prop,end,easing,unit){this.elem=elem;this.prop=prop;this.easing=easing||"swing";this.options=options;this.start=this.now=this.cur();this.end=end;this.unit=unit||(jQuery.cssNumber[prop]?"":"px")},cur:function(){var hooks=Tween.propHooks[this.prop];return hooks&&hooks.get?hooks.get(this):Tween.propHooks._default.get(this)},run:function(percent){var eased,hooks=Tween.propHooks[this.prop];if(this.options.duration){this.pos=eased=jQuery.easing[this.easing](percent,this.options.duration*percent,0,1,this.options.duration)}else{this.pos=eased=percent}this.now=(this.end-this.start)*eased+this.start;if(this.options.step){this.options.step.call(this.elem,this.now,this)}if(hooks&&hooks.set){hooks.set(this)}else{Tween.propHooks._default.set(this)}return this}};Tween.prototype.init.prototype=Tween.prototype;Tween.propHooks={_default:{get:function(tween){var result;if(tween.elem[tween.prop]!=null&&(!tween.elem.style||tween.elem.style[tween.prop]==null)){return tween.elem[tween.prop]}result=jQuery.css(tween.elem,tween.prop,"");return!result||result==="auto"?0:result},set:function(tween){if(jQuery.fx.step[tween.prop]){jQuery.fx.step[tween.prop](tween)}else if(tween.elem.style&&(tween.elem.style[jQuery.cssProps[tween.prop]]!=null||jQuery.cssHooks[tween.prop])){jQuery.style(tween.elem,tween.prop,tween.now+tween.unit)}else{tween.elem[tween.prop]=tween.now}}}};Tween.propHooks.scrollTop=Tween.propHooks.scrollLeft={set:function(tween){if(tween.elem.nodeType&&tween.elem.parentNode){tween.elem[tween.prop]=tween.now}}};jQuery.easing={linear:function(p){return p},swing:function(p){return.5-Math.cos(p*Math.PI)/2}};jQuery.fx=Tween.prototype.init;jQuery.fx.step={};var fxNow,timerId,rfxtypes=/^(?:toggle|show|hide)$/,rfxnum=new RegExp("^(?:([+-])=|)("+pnum+")([a-z%]*)$","i"),rrun=/queueHooks$/,animationPrefilters=[defaultPrefilter],tweeners={"*":[function(prop,value){var tween=this.createTween(prop,value),target=tween.cur(),parts=rfxnum.exec(value),unit=parts&&parts[3]||(jQuery.cssNumber[prop]?"":"px"),start=(jQuery.cssNumber[prop]||unit!=="px"&&+target)&&rfxnum.exec(jQuery.css(tween.elem,prop)),scale=1,maxIterations=20;if(start&&start[3]!==unit){unit=unit||start[3];parts=parts||[];start=+target||1;do{scale=scale||".5";start=start/scale;jQuery.style(tween.elem,prop,start+unit)}while(scale!==(scale=tween.cur()/target)&&scale!==1&&--maxIterations)}if(parts){start=tween.start=+start||+target||0;tween.unit=unit;tween.end=parts[1]?start+(parts[1]+1)*parts[2]:+parts[2]}return tween}]};function createFxNow(){setTimeout(function(){fxNow=undefined});return fxNow=jQuery.now()}function genFx(type,includeWidth){var which,i=0,attrs={height:type};includeWidth=includeWidth?1:0;for(;i<4;i+=2-includeWidth){which=cssExpand[i];attrs["margin"+which]=attrs["padding"+which]=type}if(includeWidth){attrs.opacity=attrs.width=type}return attrs}function createTween(value,prop,animation){var tween,collection=(tweeners[prop]||[]).concat(tweeners["*"]),index=0,length=collection.length;for(;index<length;index++){if(tween=collection[index].call(animation,prop,value)){return tween}}}function defaultPrefilter(elem,props,opts){var prop,value,toggle,tween,hooks,oldfire,display,checkDisplay,anim=this,orig={},style=elem.style,hidden=elem.nodeType&&isHidden(elem),dataShow=data_priv.get(elem,"fxshow");if(!opts.queue){hooks=jQuery._queueHooks(elem,"fx");if(hooks.unqueued==null){hooks.unqueued=0;oldfire=hooks.empty.fire;hooks.empty.fire=function(){if(!hooks.unqueued){oldfire()}}}hooks.unqueued++;anim.always(function(){anim.always(function(){hooks.unqueued--;if(!jQuery.queue(elem,"fx").length){hooks.empty.fire()}})})}if(elem.nodeType===1&&("height"in props||"width"in props)){opts.overflow=[style.overflow,style.overflowX,style.overflowY];display=jQuery.css(elem,"display");checkDisplay=display==="none"?data_priv.get(elem,"olddisplay")||defaultDisplay(elem.nodeName):display;if(checkDisplay==="inline"&&jQuery.css(elem,"float")==="none"){style.display="inline-block"}}if(opts.overflow){style.overflow="hidden";anim.always(function(){style.overflow=opts.overflow[0];style.overflowX=opts.overflow[1];style.overflowY=opts.overflow[2]})}for(prop in props){value=props[prop];if(rfxtypes.exec(value)){delete props[prop];toggle=toggle||value==="toggle";if(value===(hidden?"hide":"show")){if(value==="show"&&dataShow&&dataShow[prop]!==undefined){hidden=true}else{continue}}orig[prop]=dataShow&&dataShow[prop]||jQuery.style(elem,prop)}else{display=undefined}}if(!jQuery.isEmptyObject(orig)){if(dataShow){if("hidden"in dataShow){hidden=dataShow.hidden}}else{dataShow=data_priv.access(elem,"fxshow",{})}if(toggle){dataShow.hidden=!hidden}if(hidden){jQuery(elem).show()}else{anim.done(function(){jQuery(elem).hide()})}anim.done(function(){var prop;data_priv.remove(elem,"fxshow");for(prop in orig){jQuery.style(elem,prop,orig[prop])}});for(prop in orig){tween=createTween(hidden?dataShow[prop]:0,prop,anim);if(!(prop in dataShow)){dataShow[prop]=tween.start;if(hidden){tween.end=tween.start;tween.start=prop==="width"||prop==="height"?1:0}}}}else if((display==="none"?defaultDisplay(elem.nodeName):display)==="inline"){style.display=display}}function propFilter(props,specialEasing){var index,name,easing,value,hooks;for(index in props){name=jQuery.camelCase(index);easing=specialEasing[name];value=props[index];if(jQuery.isArray(value)){easing=value[1];value=props[index]=value[0]}if(index!==name){props[name]=value;delete props[index]}hooks=jQuery.cssHooks[name];if(hooks&&"expand"in hooks){value=hooks.expand(value);delete props[name];for(index in value){if(!(index in props)){props[index]=value[index];specialEasing[index]=easing}}}else{specialEasing[name]=easing}}}function Animation(elem,properties,options){var result,stopped,index=0,length=animationPrefilters.length,deferred=jQuery.Deferred().always(function(){delete tick.elem}),tick=function(){if(stopped){return false}var currentTime=fxNow||createFxNow(),remaining=Math.max(0,animation.startTime+animation.duration-currentTime),temp=remaining/animation.duration||0,percent=1-temp,index=0,length=animation.tweens.length;for(;index<length;index++){animation.tweens[index].run(percent)}deferred.notifyWith(elem,[animation,percent,remaining]);if(percent<1&&length){return remaining}else{deferred.resolveWith(elem,[animation]);return false}},animation=deferred.promise({elem:elem,props:jQuery.extend({},properties),opts:jQuery.extend(true,{specialEasing:{}},options),originalProperties:properties,originalOptions:options,startTime:fxNow||createFxNow(),duration:options.duration,tweens:[],createTween:function(prop,end){var tween=jQuery.Tween(elem,animation.opts,prop,end,animation.opts.specialEasing[prop]||animation.opts.easing);animation.tweens.push(tween);return tween},stop:function(gotoEnd){var index=0,length=gotoEnd?animation.tweens.length:0;if(stopped){return this}stopped=true;for(;index<length;index++){animation.tweens[index].run(1)}if(gotoEnd){deferred.resolveWith(elem,[animation,gotoEnd])}else{deferred.rejectWith(elem,[animation,gotoEnd])}return this}}),props=animation.props;propFilter(props,animation.opts.specialEasing);for(;index<length;index++){result=animationPrefilters[index].call(animation,elem,props,animation.opts);if(result){return result}}jQuery.map(props,createTween,animation);if(jQuery.isFunction(animation.opts.start)){animation.opts.start.call(elem,animation)}jQuery.fx.timer(jQuery.extend(tick,{elem:elem,anim:animation,queue:animation.opts.queue}));return animation.progress(animation.opts.progress).done(animation.opts.done,animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always)}jQuery.Animation=jQuery.extend(Animation,{tweener:function(props,callback){if(jQuery.isFunction(props)){callback=props;props=["*"]}else{props=props.split(" ")}var prop,index=0,length=props.length;for(;index<length;index++){prop=props[index];tweeners[prop]=tweeners[prop]||[];tweeners[prop].unshift(callback)}},prefilter:function(callback,prepend){if(prepend){animationPrefilters.unshift(callback)}else{animationPrefilters.push(callback)}}});jQuery.speed=function(speed,easing,fn){var opt=speed&&typeof speed==="object"?jQuery.extend({},speed):{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFunction(easing)&&easing};opt.duration=jQuery.fx.off?0:typeof opt.duration==="number"?opt.duration:opt.duration in jQuery.fx.speeds?jQuery.fx.speeds[opt.duration]:jQuery.fx.speeds._default;if(opt.queue==null||opt.queue===true){opt.queue="fx"}opt.old=opt.complete;opt.complete=function(){if(jQuery.isFunction(opt.old)){opt.old.call(this)}if(opt.queue){jQuery.dequeue(this,opt.queue)}};return opt};jQuery.fn.extend({fadeTo:function(speed,to,easing,callback){return this.filter(isHidden).css("opacity",0).show().end().animate({opacity:to},speed,easing,callback)},animate:function(prop,speed,easing,callback){var empty=jQuery.isEmptyObject(prop),optall=jQuery.speed(speed,easing,callback),doAnimation=function(){var anim=Animation(this,jQuery.extend({},prop),optall);if(empty||data_priv.get(this,"finish")){anim.stop(true)}};doAnimation.finish=doAnimation;return empty||optall.queue===false?this.each(doAnimation):this.queue(optall.queue,doAnimation)},stop:function(type,clearQueue,gotoEnd){var stopQueue=function(hooks){var stop=hooks.stop;delete hooks.stop;stop(gotoEnd)};if(typeof type!=="string"){gotoEnd=clearQueue;clearQueue=type;type=undefined}if(clearQueue&&type!==false){this.queue(type||"fx",[])}return this.each(function(){var dequeue=true,index=type!=null&&type+"queueHooks",timers=jQuery.timers,data=data_priv.get(this);if(index){if(data[index]&&data[index].stop){stopQueue(data[index])}}else{for(index in data){if(data[index]&&data[index].stop&&rrun.test(index)){stopQueue(data[index])}}}for(index=timers.length;index--;){if(timers[index].elem===this&&(type==null||timers[index].queue===type)){timers[index].anim.stop(gotoEnd);dequeue=false;timers.splice(index,1)}}if(dequeue||!gotoEnd){jQuery.dequeue(this,type)}})},finish:function(type){if(type!==false){type=type||"fx"}return this.each(function(){var index,data=data_priv.get(this),queue=data[type+"queue"],hooks=data[type+"queueHooks"],timers=jQuery.timers,length=queue?queue.length:0;data.finish=true;jQuery.queue(this,type,[]);if(hooks&&hooks.stop){hooks.stop.call(this,true)}for(index=timers.length;index--;){if(timers[index].elem===this&&timers[index].queue===type){timers[index].anim.stop(true);timers.splice(index,1)}}for(index=0;index<length;index++){if(queue[index]&&queue[index].finish){queue[index].finish.call(this)}}delete data.finish})}});jQuery.each(["toggle","show","hide"],function(i,name){var cssFn=jQuery.fn[name];jQuery.fn[name]=function(speed,easing,callback){return speed==null||typeof speed==="boolean"?cssFn.apply(this,arguments):this.animate(genFx(name,true),speed,easing,callback)}});jQuery.each({slideDown:genFx("show"),slideUp:genFx("hide"),slideToggle:genFx("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback)}});jQuery.timers=[];jQuery.fx.tick=function(){var timer,i=0,timers=jQuery.timers;fxNow=jQuery.now();for(;i<timers.length;i++){timer=timers[i];if(!timer()&&timers[i]===timer){timers.splice(i--,1)}}if(!timers.length){jQuery.fx.stop()}fxNow=undefined};jQuery.fx.timer=function(timer){jQuery.timers.push(timer);if(timer()){jQuery.fx.start()}else{jQuery.timers.pop()}};jQuery.fx.interval=13;jQuery.fx.start=function(){if(!timerId){timerId=setInterval(jQuery.fx.tick,jQuery.fx.interval)}};jQuery.fx.stop=function(){clearInterval(timerId);timerId=null};jQuery.fx.speeds={slow:600,fast:200,_default:400};jQuery.fn.delay=function(time,type){time=jQuery.fx?jQuery.fx.speeds[time]||time:time;type=type||"fx";return this.queue(type,function(next,hooks){var timeout=setTimeout(next,time);hooks.stop=function(){clearTimeout(timeout)}})};(function(){var input=document.createElement("input"),select=document.createElement("select"),opt=select.appendChild(document.createElement("option"));input.type="checkbox";support.checkOn=input.value!=="";support.optSelected=opt.selected;select.disabled=true;support.optDisabled=!opt.disabled;input=document.createElement("input");input.value="t";input.type="radio";support.radioValue=input.value==="t"})();var nodeHook,boolHook,attrHandle=jQuery.expr.attrHandle;jQuery.fn.extend({attr:function(name,value){return access(this,jQuery.attr,name,value,arguments.length>1)},removeAttr:function(name){return this.each(function(){jQuery.removeAttr(this,name)})}});jQuery.extend({attr:function(elem,name,value){var hooks,ret,nType=elem.nodeType;if(!elem||nType===3||nType===8||nType===2){return}if(typeof elem.getAttribute===strundefined){return jQuery.prop(elem,name,value)}if(nType!==1||!jQuery.isXMLDoc(elem)){name=name.toLowerCase();hooks=jQuery.attrHooks[name]||(jQuery.expr.match.bool.test(name)?boolHook:nodeHook)}if(value!==undefined){if(value===null){jQuery.removeAttr(elem,name)}else if(hooks&&"set"in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret}else{elem.setAttribute(name,value+"");return value}}else if(hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null){return ret}else{ret=jQuery.find.attr(elem,name);return ret==null?undefined:ret}},removeAttr:function(elem,value){var name,propName,i=0,attrNames=value&&value.match(rnotwhite);if(attrNames&&elem.nodeType===1){while(name=attrNames[i++]){propName=jQuery.propFix[name]||name;if(jQuery.expr.match.bool.test(name)){elem[propName]=false}elem.removeAttribute(name)}}},attrHooks:{type:{set:function(elem,value){if(!support.radioValue&&value==="radio"&&jQuery.nodeName(elem,"input")){var val=elem.value;elem.setAttribute("type",value);if(val){elem.value=val}return value}}}}});boolHook={set:function(elem,value,name){if(value===false){jQuery.removeAttr(elem,name)}else{elem.setAttribute(name,name)}return name}};jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g),function(i,name){var getter=attrHandle[name]||jQuery.find.attr;attrHandle[name]=function(elem,name,isXML){var ret,handle;if(!isXML){handle=attrHandle[name];attrHandle[name]=ret;ret=getter(elem,name,isXML)!=null?name.toLowerCase():null;attrHandle[name]=handle}return ret}});var rfocusable=/^(?:input|select|textarea|button)$/i;jQuery.fn.extend({prop:function(name,value){return access(this,jQuery.prop,name,value,arguments.length>1)},removeProp:function(name){return this.each(function(){delete this[jQuery.propFix[name]||name]})}});jQuery.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(elem,name,value){var ret,hooks,notxml,nType=elem.nodeType;if(!elem||nType===3||nType===8||nType===2){return}notxml=nType!==1||!jQuery.isXMLDoc(elem);if(notxml){name=jQuery.propFix[name]||name;hooks=jQuery.propHooks[name]}if(value!==undefined){return hooks&&"set"in hooks&&(ret=hooks.set(elem,value,name))!==undefined?ret:elem[name]=value}else{return hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null?ret:elem[name]}},propHooks:{tabIndex:{get:function(elem){return elem.hasAttribute("tabindex")||rfocusable.test(elem.nodeName)||elem.href?elem.tabIndex:-1}}}});if(!support.optSelected){jQuery.propHooks.selected={get:function(elem){var parent=elem.parentNode;if(parent&&parent.parentNode){parent.parentNode.selectedIndex}return null}}}jQuery.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){jQuery.propFix[this.toLowerCase()]=this});var rclass=/[\t\r\n\f]/g;jQuery.fn.extend({addClass:function(value){var classes,elem,cur,clazz,j,finalValue,proceed=typeof value==="string"&&value,i=0,len=this.length;if(jQuery.isFunction(value)){return this.each(function(j){jQuery(this).addClass(value.call(this,j,this.className))})}if(proceed){classes=(value||"").match(rnotwhite)||[];for(;i<len;i++){elem=this[i];cur=elem.nodeType===1&&(elem.className?(" "+elem.className+" ").replace(rclass," "):" ");if(cur){j=0;while(clazz=classes[j++]){if(cur.indexOf(" "+clazz+" ")<0){cur+=clazz+" "}}finalValue=jQuery.trim(cur);if(elem.className!==finalValue){elem.className=finalValue}}}}return this},removeClass:function(value){var classes,elem,cur,clazz,j,finalValue,proceed=arguments.length===0||typeof value==="string"&&value,i=0,len=this.length;if(jQuery.isFunction(value)){return this.each(function(j){jQuery(this).removeClass(value.call(this,j,this.className))})}if(proceed){classes=(value||"").match(rnotwhite)||[];for(;i<len;i++){elem=this[i];cur=elem.nodeType===1&&(elem.className?(" "+elem.className+" ").replace(rclass," "):"");if(cur){j=0;while(clazz=classes[j++]){while(cur.indexOf(" "+clazz+" ")>=0){cur=cur.replace(" "+clazz+" "," ")}}finalValue=value?jQuery.trim(cur):"";if(elem.className!==finalValue){elem.className=finalValue}}}}return this},toggleClass:function(value,stateVal){var type=typeof value;if(typeof stateVal==="boolean"&&type==="string"){return stateVal?this.addClass(value):this.removeClass(value)}if(jQuery.isFunction(value)){return this.each(function(i){jQuery(this).toggleClass(value.call(this,i,this.className,stateVal),stateVal)})}return this.each(function(){if(type==="string"){var className,i=0,self=jQuery(this),classNames=value.match(rnotwhite)||[];while(className=classNames[i++]){if(self.hasClass(className)){self.removeClass(className)}else{self.addClass(className)}}}else if(type===strundefined||type==="boolean"){if(this.className){data_priv.set(this,"__className__",this.className)}this.className=this.className||value===false?"":data_priv.get(this,"__className__")||""}})},hasClass:function(selector){var className=" "+selector+" ",i=0,l=this.length;for(;i<l;i++){if(this[i].nodeType===1&&(" "+this[i].className+" ").replace(rclass," ").indexOf(className)>=0){return true}}return false}});var rreturn=/\r/g;jQuery.fn.extend({val:function(value){var hooks,ret,isFunction,elem=this[0];if(!arguments.length){if(elem){hooks=jQuery.valHooks[elem.type]||jQuery.valHooks[elem.nodeName.toLowerCase()];if(hooks&&"get"in hooks&&(ret=hooks.get(elem,"value"))!==undefined){return ret}ret=elem.value;return typeof ret==="string"?ret.replace(rreturn,""):ret==null?"":ret}return}isFunction=jQuery.isFunction(value);return this.each(function(i){var val;if(this.nodeType!==1){return}if(isFunction){val=value.call(this,i,jQuery(this).val())}else{val=value}if(val==null){val=""}else if(typeof val==="number"){val+=""}else if(jQuery.isArray(val)){val=jQuery.map(val,function(value){return value==null?"":value+""})}hooks=jQuery.valHooks[this.type]||jQuery.valHooks[this.nodeName.toLowerCase()];if(!hooks||!("set"in hooks)||hooks.set(this,val,"value")===undefined){this.value=val}})}});jQuery.extend({valHooks:{option:{get:function(elem){var val=jQuery.find.attr(elem,"value");return val!=null?val:jQuery.trim(jQuery.text(elem))}},select:{get:function(elem){var value,option,options=elem.options,index=elem.selectedIndex,one=elem.type==="select-one"||index<0,values=one?null:[],max=one?index+1:options.length,i=index<0?max:one?index:0;for(;i<max;i++){option=options[i];if((option.selected||i===index)&&(support.optDisabled?!option.disabled:option.getAttribute("disabled")===null)&&(!option.parentNode.disabled||!jQuery.nodeName(option.parentNode,"optgroup"))){value=jQuery(option).val();if(one){return value}values.push(value)}}return values},set:function(elem,value){var optionSet,option,options=elem.options,values=jQuery.makeArray(value),i=options.length;while(i--){option=options[i];if(option.selected=jQuery.inArray(option.value,values)>=0){optionSet=true}}if(!optionSet){elem.selectedIndex=-1}return values}}}});jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]={set:function(elem,value){if(jQuery.isArray(value)){return elem.checked=jQuery.inArray(jQuery(elem).val(),value)>=0}}};if(!support.checkOn){jQuery.valHooks[this].get=function(elem){return elem.getAttribute("value")===null?"on":elem.value}}});jQuery.each(("blur focus focusin focusout load resize scroll unload click dblclick "+"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+"change select submit keydown keypress keyup error contextmenu").split(" "),function(i,name){jQuery.fn[name]=function(data,fn){return arguments.length>0?this.on(name,null,data,fn):this.trigger(name)}});jQuery.fn.extend({hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut||fnOver)},bind:function(types,data,fn){return this.on(types,null,data,fn)},unbind:function(types,fn){return this.off(types,null,fn)},delegate:function(selector,types,data,fn){return this.on(types,selector,data,fn)},undelegate:function(selector,types,fn){return arguments.length===1?this.off(selector,"**"):this.off(types,selector||"**",fn)}});var nonce=jQuery.now();var rquery=/\?/;jQuery.parseJSON=function(data){return JSON.parse(data+"")};jQuery.parseXML=function(data){var xml,tmp;if(!data||typeof data!=="string"){return null}try{tmp=new DOMParser;xml=tmp.parseFromString(data,"text/xml")}catch(e){xml=undefined}if(!xml||xml.getElementsByTagName("parsererror").length){jQuery.error("Invalid XML: "+data)}return xml};var rhash=/#.*$/,rts=/([?&])_=[^&]*/,rheaders=/^(.*?):[ \t]*([^\r\n]*)$/gm,rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,rurl=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,prefilters={},transports={},allTypes="*/".concat("*"),ajaxLocation=window.location.href,ajaxLocParts=rurl.exec(ajaxLocation.toLowerCase())||[];function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if(typeof dataTypeExpression!=="string"){func=dataTypeExpression;dataTypeExpression="*"}var dataType,i=0,dataTypes=dataTypeExpression.toLowerCase().match(rnotwhite)||[];if(jQuery.isFunction(func)){while(dataType=dataTypes[i++]){if(dataType[0]==="+"){dataType=dataType.slice(1)||"*";(structure[dataType]=structure[dataType]||[]).unshift(func)}else{(structure[dataType]=structure[dataType]||[]).push(func)}}}}}function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR){var inspected={},seekingTransport=structure===transports;function inspect(dataType){var selected;inspected[dataType]=true;jQuery.each(structure[dataType]||[],function(_,prefilterOrFactory){var dataTypeOrTransport=prefilterOrFactory(options,originalOptions,jqXHR);if(typeof dataTypeOrTransport==="string"&&!seekingTransport&&!inspected[dataTypeOrTransport]){options.dataTypes.unshift(dataTypeOrTransport);inspect(dataTypeOrTransport);return false}else if(seekingTransport){return!(selected=dataTypeOrTransport)}});return selected}return inspect(options.dataTypes[0])||!inspected["*"]&&inspect("*")}function ajaxExtend(target,src){var key,deep,flatOptions=jQuery.ajaxSettings.flatOptions||{};for(key in src){if(src[key]!==undefined){(flatOptions[key]?target:deep||(deep={}))[key]=src[key]; + +}}if(deep){jQuery.extend(true,target,deep)}return target}function ajaxHandleResponses(s,jqXHR,responses){var ct,type,finalDataType,firstDataType,contents=s.contents,dataTypes=s.dataTypes;while(dataTypes[0]==="*"){dataTypes.shift();if(ct===undefined){ct=s.mimeType||jqXHR.getResponseHeader("Content-Type")}}if(ct){for(type in contents){if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break}}}if(dataTypes[0]in responses){finalDataType=dataTypes[0]}else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break}if(!firstDataType){firstDataType=type}}finalDataType=finalDataType||firstDataType}if(finalDataType){if(finalDataType!==dataTypes[0]){dataTypes.unshift(finalDataType)}return responses[finalDataType]}}function ajaxConvert(s,response,jqXHR,isSuccess){var conv2,current,conv,tmp,prev,converters={},dataTypes=s.dataTypes.slice();if(dataTypes[1]){for(conv in s.converters){converters[conv.toLowerCase()]=s.converters[conv]}}current=dataTypes.shift();while(current){if(s.responseFields[current]){jqXHR[s.responseFields[current]]=response}if(!prev&&isSuccess&&s.dataFilter){response=s.dataFilter(response,s.dataType)}prev=current;current=dataTypes.shift();if(current){if(current==="*"){current=prev}else if(prev!=="*"&&prev!==current){conv=converters[prev+" "+current]||converters["* "+current];if(!conv){for(conv2 in converters){tmp=conv2.split(" ");if(tmp[1]===current){conv=converters[prev+" "+tmp[0]]||converters["* "+tmp[0]];if(conv){if(conv===true){conv=converters[conv2]}else if(converters[conv2]!==true){current=tmp[0];dataTypes.unshift(tmp[1])}break}}}}if(conv!==true){if(conv&&s["throws"]){response=conv(response)}else{try{response=conv(response)}catch(e){return{state:"parsererror",error:conv?e:"No conversion from "+prev+" to "+current}}}}}}}return{state:"success",data:response}}jQuery.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ajaxLocation,type:"GET",isLocal:rlocalProtocol.test(ajaxLocParts[1]),global:true,processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":allTypes,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":true,"text json":jQuery.parseJSON,"text xml":jQuery.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(target,settings){return settings?ajaxExtend(ajaxExtend(target,jQuery.ajaxSettings),settings):ajaxExtend(jQuery.ajaxSettings,target)},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){if(typeof url==="object"){options=url;url=undefined}options=options||{};var transport,cacheURL,responseHeadersString,responseHeaders,timeoutTimer,parts,fireGlobals,i,s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=s.context&&(callbackContext.nodeType||callbackContext.jquery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery.Callbacks("once memory"),statusCode=s.statusCode||{},requestHeaders={},requestHeadersNames={},state=0,strAbort="canceled",jqXHR={readyState:0,getResponseHeader:function(key){var match;if(state===2){if(!responseHeaders){responseHeaders={};while(match=rheaders.exec(responseHeadersString)){responseHeaders[match[1].toLowerCase()]=match[2]}}match=responseHeaders[key.toLowerCase()]}return match==null?null:match},getAllResponseHeaders:function(){return state===2?responseHeadersString:null},setRequestHeader:function(name,value){var lname=name.toLowerCase();if(!state){name=requestHeadersNames[lname]=requestHeadersNames[lname]||name;requestHeaders[name]=value}return this},overrideMimeType:function(type){if(!state){s.mimeType=type}return this},statusCode:function(map){var code;if(map){if(state<2){for(code in map){statusCode[code]=[statusCode[code],map[code]]}}else{jqXHR.always(map[jqXHR.status])}}return this},abort:function(statusText){var finalText=statusText||strAbort;if(transport){transport.abort(finalText)}done(0,finalText);return this}};deferred.promise(jqXHR).complete=completeDeferred.add;jqXHR.success=jqXHR.done;jqXHR.error=jqXHR.fail;s.url=((url||s.url||ajaxLocation)+"").replace(rhash,"").replace(rprotocol,ajaxLocParts[1]+"//");s.type=options.method||options.type||s.method||s.type;s.dataTypes=jQuery.trim(s.dataType||"*").toLowerCase().match(rnotwhite)||[""];if(s.crossDomain==null){parts=rurl.exec(s.url.toLowerCase());s.crossDomain=!!(parts&&(parts[1]!==ajaxLocParts[1]||parts[2]!==ajaxLocParts[2]||(parts[3]||(parts[1]==="http:"?"80":"443"))!==(ajaxLocParts[3]||(ajaxLocParts[1]==="http:"?"80":"443"))))}if(s.data&&s.processData&&typeof s.data!=="string"){s.data=jQuery.param(s.data,s.traditional)}inspectPrefiltersOrTransports(prefilters,s,options,jqXHR);if(state===2){return jqXHR}fireGlobals=jQuery.event&&s.global;if(fireGlobals&&jQuery.active++===0){jQuery.event.trigger("ajaxStart")}s.type=s.type.toUpperCase();s.hasContent=!rnoContent.test(s.type);cacheURL=s.url;if(!s.hasContent){if(s.data){cacheURL=s.url+=(rquery.test(cacheURL)?"&":"?")+s.data;delete s.data}if(s.cache===false){s.url=rts.test(cacheURL)?cacheURL.replace(rts,"$1_="+nonce++):cacheURL+(rquery.test(cacheURL)?"&":"?")+"_="+nonce++}}if(s.ifModified){if(jQuery.lastModified[cacheURL]){jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[cacheURL])}if(jQuery.etag[cacheURL]){jqXHR.setRequestHeader("If-None-Match",jQuery.etag[cacheURL])}}if(s.data&&s.hasContent&&s.contentType!==false||options.contentType){jqXHR.setRequestHeader("Content-Type",s.contentType)}jqXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+(s.dataTypes[0]!=="*"?", "+allTypes+"; q=0.01":""):s.accepts["*"]);for(i in s.headers){jqXHR.setRequestHeader(i,s.headers[i])}if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===false||state===2)){return jqXHR.abort()}strAbort="abort";for(i in{success:1,error:1,complete:1}){jqXHR[i](s[i])}transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR);if(!transport){done(-1,"No Transport")}else{jqXHR.readyState=1;if(fireGlobals){globalEventContext.trigger("ajaxSend",[jqXHR,s])}if(s.async&&s.timeout>0){timeoutTimer=setTimeout(function(){jqXHR.abort("timeout")},s.timeout)}try{state=1;transport.send(requestHeaders,done)}catch(e){if(state<2){done(-1,e)}else{throw e}}}function done(status,nativeStatusText,responses,headers){var isSuccess,success,error,response,modified,statusText=nativeStatusText;if(state===2){return}state=2;if(timeoutTimer){clearTimeout(timeoutTimer)}transport=undefined;responseHeadersString=headers||"";jqXHR.readyState=status>0?4:0;isSuccess=status>=200&&status<300||status===304;if(responses){response=ajaxHandleResponses(s,jqXHR,responses)}response=ajaxConvert(s,response,jqXHR,isSuccess);if(isSuccess){if(s.ifModified){modified=jqXHR.getResponseHeader("Last-Modified");if(modified){jQuery.lastModified[cacheURL]=modified}modified=jqXHR.getResponseHeader("etag");if(modified){jQuery.etag[cacheURL]=modified}}if(status===204||s.type==="HEAD"){statusText="nocontent"}else if(status===304){statusText="notmodified"}else{statusText=response.state;success=response.data;error=response.error;isSuccess=!error}}else{error=statusText;if(status||!statusText){statusText="error";if(status<0){status=0}}}jqXHR.status=status;jqXHR.statusText=(nativeStatusText||statusText)+"";if(isSuccess){deferred.resolveWith(callbackContext,[success,statusText,jqXHR])}else{deferred.rejectWith(callbackContext,[jqXHR,statusText,error])}jqXHR.statusCode(statusCode);statusCode=undefined;if(fireGlobals){globalEventContext.trigger(isSuccess?"ajaxSuccess":"ajaxError",[jqXHR,s,isSuccess?success:error])}completeDeferred.fireWith(callbackContext,[jqXHR,statusText]);if(fireGlobals){globalEventContext.trigger("ajaxComplete",[jqXHR,s]);if(!--jQuery.active){jQuery.event.trigger("ajaxStop")}}}return jqXHR},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json")},getScript:function(url,callback){return jQuery.get(url,undefined,callback,"script")}});jQuery.each(["get","post"],function(i,method){jQuery[method]=function(url,data,callback,type){if(jQuery.isFunction(data)){type=type||callback;callback=data;data=undefined}return jQuery.ajax({url:url,type:method,dataType:type,data:data,success:callback})}});jQuery._evalUrl=function(url){return jQuery.ajax({url:url,type:"GET",dataType:"script",async:false,global:false,"throws":true})};jQuery.fn.extend({wrapAll:function(html){var wrap;if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapAll(html.call(this,i))})}if(this[0]){wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){wrap.insertBefore(this[0])}wrap.map(function(){var elem=this;while(elem.firstElementChild){elem=elem.firstElementChild}return elem}).append(this)}return this},wrapInner:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapInner(html.call(this,i))})}return this.each(function(){var self=jQuery(this),contents=self.contents();if(contents.length){contents.wrapAll(html)}else{self.append(html)}})},wrap:function(html){var isFunction=jQuery.isFunction(html);return this.each(function(i){jQuery(this).wrapAll(isFunction?html.call(this,i):html)})},unwrap:function(){return this.parent().each(function(){if(!jQuery.nodeName(this,"body")){jQuery(this).replaceWith(this.childNodes)}}).end()}});jQuery.expr.filters.hidden=function(elem){return elem.offsetWidth<=0&&elem.offsetHeight<=0};jQuery.expr.filters.visible=function(elem){return!jQuery.expr.filters.hidden(elem)};var r20=/%20/g,rbracket=/\[\]$/,rCRLF=/\r?\n/g,rsubmitterTypes=/^(?:submit|button|image|reset|file)$/i,rsubmittable=/^(?:input|select|textarea|keygen)/i;function buildParams(prefix,obj,traditional,add){var name;if(jQuery.isArray(obj)){jQuery.each(obj,function(i,v){if(traditional||rbracket.test(prefix)){add(prefix,v)}else{buildParams(prefix+"["+(typeof v==="object"?i:"")+"]",v,traditional,add)}})}else if(!traditional&&jQuery.type(obj)==="object"){for(name in obj){buildParams(prefix+"["+name+"]",obj[name],traditional,add)}}else{add(prefix,obj)}}jQuery.param=function(a,traditional){var prefix,s=[],add=function(key,value){value=jQuery.isFunction(value)?value():value==null?"":value;s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(value)};if(traditional===undefined){traditional=jQuery.ajaxSettings&&jQuery.ajaxSettings.traditional}if(jQuery.isArray(a)||a.jquery&&!jQuery.isPlainObject(a)){jQuery.each(a,function(){add(this.name,this.value)})}else{for(prefix in a){buildParams(prefix,a[prefix],traditional,add)}}return s.join("&").replace(r20,"+")};jQuery.fn.extend({serialize:function(){return jQuery.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var elements=jQuery.prop(this,"elements");return elements?jQuery.makeArray(elements):this}).filter(function(){var type=this.type;return this.name&&!jQuery(this).is(":disabled")&&rsubmittable.test(this.nodeName)&&!rsubmitterTypes.test(type)&&(this.checked||!rcheckableType.test(type))}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:jQuery.isArray(val)?jQuery.map(val,function(val){return{name:elem.name,value:val.replace(rCRLF,"\r\n")}}):{name:elem.name,value:val.replace(rCRLF,"\r\n")}}).get()}});jQuery.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(e){}};var xhrId=0,xhrCallbacks={},xhrSuccessStatus={0:200,1223:204},xhrSupported=jQuery.ajaxSettings.xhr();if(window.attachEvent){window.attachEvent("onunload",function(){for(var key in xhrCallbacks){xhrCallbacks[key]()}})}support.cors=!!xhrSupported&&"withCredentials"in xhrSupported;support.ajax=xhrSupported=!!xhrSupported;jQuery.ajaxTransport(function(options){var callback;if(support.cors||xhrSupported&&!options.crossDomain){return{send:function(headers,complete){var i,xhr=options.xhr(),id=++xhrId;xhr.open(options.type,options.url,options.async,options.username,options.password);if(options.xhrFields){for(i in options.xhrFields){xhr[i]=options.xhrFields[i]}}if(options.mimeType&&xhr.overrideMimeType){xhr.overrideMimeType(options.mimeType)}if(!options.crossDomain&&!headers["X-Requested-With"]){headers["X-Requested-With"]="XMLHttpRequest"}for(i in headers){xhr.setRequestHeader(i,headers[i])}callback=function(type){return function(){if(callback){delete xhrCallbacks[id];callback=xhr.onload=xhr.onerror=null;if(type==="abort"){xhr.abort()}else if(type==="error"){complete(xhr.status,xhr.statusText)}else{complete(xhrSuccessStatus[xhr.status]||xhr.status,xhr.statusText,typeof xhr.responseText==="string"?{text:xhr.responseText}:undefined,xhr.getAllResponseHeaders())}}}};xhr.onload=callback();xhr.onerror=callback("error");callback=xhrCallbacks[id]=callback("abort");try{xhr.send(options.hasContent&&options.data||null)}catch(e){if(callback){throw e}}},abort:function(){if(callback){callback()}}}}});jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(text){jQuery.globalEval(text);return text}}});jQuery.ajaxPrefilter("script",function(s){if(s.cache===undefined){s.cache=false}if(s.crossDomain){s.type="GET"}});jQuery.ajaxTransport("script",function(s){if(s.crossDomain){var script,callback;return{send:function(_,complete){script=jQuery("<script>").prop({async:true,charset:s.scriptCharset,src:s.url}).on("load error",callback=function(evt){script.remove();callback=null;if(evt){complete(evt.type==="error"?404:200,evt.type)}});document.head.appendChild(script[0])},abort:function(){if(callback){callback()}}}}});var oldCallbacks=[],rjsonp=/(=)\?(?=&|$)|\?\?/;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var callback=oldCallbacks.pop()||jQuery.expando+"_"+nonce++;this[callback]=true;return callback}});jQuery.ajaxPrefilter("json jsonp",function(s,originalSettings,jqXHR){var callbackName,overwritten,responseContainer,jsonProp=s.jsonp!==false&&(rjsonp.test(s.url)?"url":typeof s.data==="string"&&!(s.contentType||"").indexOf("application/x-www-form-urlencoded")&&rjsonp.test(s.data)&&"data");if(jsonProp||s.dataTypes[0]==="jsonp"){callbackName=s.jsonpCallback=jQuery.isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback;if(jsonProp){s[jsonProp]=s[jsonProp].replace(rjsonp,"$1"+callbackName)}else if(s.jsonp!==false){s.url+=(rquery.test(s.url)?"&":"?")+s.jsonp+"="+callbackName}s.converters["script json"]=function(){if(!responseContainer){jQuery.error(callbackName+" was not called")}return responseContainer[0]};s.dataTypes[0]="json";overwritten=window[callbackName];window[callbackName]=function(){responseContainer=arguments};jqXHR.always(function(){window[callbackName]=overwritten;if(s[callbackName]){s.jsonpCallback=originalSettings.jsonpCallback;oldCallbacks.push(callbackName)}if(responseContainer&&jQuery.isFunction(overwritten)){overwritten(responseContainer[0])}responseContainer=overwritten=undefined});return"script"}});jQuery.parseHTML=function(data,context,keepScripts){if(!data||typeof data!=="string"){return null}if(typeof context==="boolean"){keepScripts=context;context=false}context=context||document;var parsed=rsingleTag.exec(data),scripts=!keepScripts&&[];if(parsed){return[context.createElement(parsed[1])]}parsed=jQuery.buildFragment([data],context,scripts);if(scripts&&scripts.length){jQuery(scripts).remove()}return jQuery.merge([],parsed.childNodes)};var _load=jQuery.fn.load;jQuery.fn.load=function(url,params,callback){if(typeof url!=="string"&&_load){return _load.apply(this,arguments)}var selector,type,response,self=this,off=url.indexOf(" ");if(off>=0){selector=jQuery.trim(url.slice(off));url=url.slice(0,off)}if(jQuery.isFunction(params)){callback=params;params=undefined}else if(params&&typeof params==="object"){type="POST"}if(self.length>0){jQuery.ajax({url:url,type:type,dataType:"html",data:params}).done(function(responseText){response=arguments;self.html(selector?jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector):responseText)}).complete(callback&&function(jqXHR,status){self.each(callback,response||[jqXHR.responseText,status,jqXHR])})}return this};jQuery.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(i,type){jQuery.fn[type]=function(fn){return this.on(type,fn)}});jQuery.expr.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem}).length};var docElem=window.document.documentElement;function getWindow(elem){return jQuery.isWindow(elem)?elem:elem.nodeType===9&&elem.defaultView}jQuery.offset={setOffset:function(elem,options,i){var curPosition,curLeft,curCSSTop,curTop,curOffset,curCSSLeft,calculatePosition,position=jQuery.css(elem,"position"),curElem=jQuery(elem),props={};if(position==="static"){elem.style.position="relative"}curOffset=curElem.offset();curCSSTop=jQuery.css(elem,"top");curCSSLeft=jQuery.css(elem,"left");calculatePosition=(position==="absolute"||position==="fixed")&&(curCSSTop+curCSSLeft).indexOf("auto")>-1;if(calculatePosition){curPosition=curElem.position();curTop=curPosition.top;curLeft=curPosition.left}else{curTop=parseFloat(curCSSTop)||0;curLeft=parseFloat(curCSSLeft)||0}if(jQuery.isFunction(options)){options=options.call(elem,i,curOffset)}if(options.top!=null){props.top=options.top-curOffset.top+curTop}if(options.left!=null){props.left=options.left-curOffset.left+curLeft}if("using"in options){options.using.call(elem,props)}else{curElem.css(props)}}};jQuery.fn.extend({offset:function(options){if(arguments.length){return options===undefined?this:this.each(function(i){jQuery.offset.setOffset(this,options,i)})}var docElem,win,elem=this[0],box={top:0,left:0},doc=elem&&elem.ownerDocument;if(!doc){return}docElem=doc.documentElement;if(!jQuery.contains(docElem,elem)){return box}if(typeof elem.getBoundingClientRect!==strundefined){box=elem.getBoundingClientRect()}win=getWindow(doc);return{top:box.top+win.pageYOffset-docElem.clientTop,left:box.left+win.pageXOffset-docElem.clientLeft}},position:function(){if(!this[0]){return}var offsetParent,offset,elem=this[0],parentOffset={top:0,left:0};if(jQuery.css(elem,"position")==="fixed"){offset=elem.getBoundingClientRect()}else{offsetParent=this.offsetParent();offset=this.offset();if(!jQuery.nodeName(offsetParent[0],"html")){parentOffset=offsetParent.offset()}parentOffset.top+=jQuery.css(offsetParent[0],"borderTopWidth",true);parentOffset.left+=jQuery.css(offsetParent[0],"borderLeftWidth",true)}return{top:offset.top-parentOffset.top-jQuery.css(elem,"marginTop",true),left:offset.left-parentOffset.left-jQuery.css(elem,"marginLeft",true)}},offsetParent:function(){return this.map(function(){var offsetParent=this.offsetParent||docElem;while(offsetParent&&(!jQuery.nodeName(offsetParent,"html")&&jQuery.css(offsetParent,"position")==="static")){offsetParent=offsetParent.offsetParent}return offsetParent||docElem})}});jQuery.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(method,prop){var top="pageYOffset"===prop;jQuery.fn[method]=function(val){return access(this,function(elem,method,val){var win=getWindow(elem);if(val===undefined){return win?win[prop]:elem[method]}if(win){win.scrollTo(!top?val:window.pageXOffset,top?val:window.pageYOffset)}else{elem[method]=val}},method,val,arguments.length,null)}});jQuery.each(["top","left"],function(i,prop){jQuery.cssHooks[prop]=addGetHookIf(support.pixelPosition,function(elem,computed){if(computed){computed=curCSS(elem,prop);return rnumnonpx.test(computed)?jQuery(elem).position()[prop]+"px":computed}})});jQuery.each({Height:"height",Width:"width"},function(name,type){jQuery.each({padding:"inner"+name,content:type,"":"outer"+name},function(defaultExtra,funcName){jQuery.fn[funcName]=function(margin,value){var chainable=arguments.length&&(defaultExtra||typeof margin!=="boolean"),extra=defaultExtra||(margin===true||value===true?"margin":"border");return access(this,function(elem,type,value){var doc;if(jQuery.isWindow(elem)){return elem.document.documentElement["client"+name]}if(elem.nodeType===9){doc=elem.documentElement;return Math.max(elem.body["scroll"+name],doc["scroll"+name],elem.body["offset"+name],doc["offset"+name],doc["client"+name])}return value===undefined?jQuery.css(elem,type,extra):jQuery.style(elem,type,value,extra)},type,chainable?margin:undefined,chainable,null)}})});jQuery.fn.size=function(){return this.length};jQuery.fn.andSelf=jQuery.fn.addBack;if(typeof define==="function"&&define.amd){define("jquery",[],function(){return jQuery})}var _jQuery=window.jQuery,_$=window.$;jQuery.noConflict=function(deep){if(window.$===jQuery){window.$=_$}if(deep&&window.jQuery===jQuery){window.jQuery=_jQuery}return jQuery};if(typeof noGlobal===strundefined){window.jQuery=window.$=jQuery}return jQuery})},{}],21:[function(require,module,exports){"use strict";var yaml=require("./lib/js-yaml.js");module.exports=yaml},{"./lib/js-yaml.js":22}],22:[function(require,module,exports){"use strict";var loader=require("./js-yaml/loader");var dumper=require("./js-yaml/dumper");function deprecated(name){return function(){throw new Error("Function "+name+" is deprecated and cannot be used.")}}module.exports.Type=require("./js-yaml/type");module.exports.Schema=require("./js-yaml/schema");module.exports.FAILSAFE_SCHEMA=require("./js-yaml/schema/failsafe");module.exports.JSON_SCHEMA=require("./js-yaml/schema/json");module.exports.CORE_SCHEMA=require("./js-yaml/schema/core");module.exports.DEFAULT_SAFE_SCHEMA=require("./js-yaml/schema/default_safe");module.exports.DEFAULT_FULL_SCHEMA=require("./js-yaml/schema/default_full");module.exports.load=loader.load;module.exports.loadAll=loader.loadAll;module.exports.safeLoad=loader.safeLoad;module.exports.safeLoadAll=loader.safeLoadAll;module.exports.dump=dumper.dump;module.exports.safeDump=dumper.safeDump;module.exports.YAMLException=require("./js-yaml/exception");module.exports.MINIMAL_SCHEMA=require("./js-yaml/schema/failsafe");module.exports.SAFE_SCHEMA=require("./js-yaml/schema/default_safe");module.exports.DEFAULT_SCHEMA=require("./js-yaml/schema/default_full");module.exports.scan=deprecated("scan");module.exports.parse=deprecated("parse");module.exports.compose=deprecated("compose");module.exports.addConstructor=deprecated("addConstructor")},{"./js-yaml/dumper":24,"./js-yaml/exception":25,"./js-yaml/loader":26,"./js-yaml/schema":28,"./js-yaml/schema/core":29,"./js-yaml/schema/default_full":30,"./js-yaml/schema/default_safe":31,"./js-yaml/schema/failsafe":32,"./js-yaml/schema/json":33,"./js-yaml/type":34}],23:[function(require,module,exports){"use strict";function isNothing(subject){return typeof subject==="undefined"||null===subject}function isObject(subject){return typeof subject==="object"&&null!==subject}function toArray(sequence){if(Array.isArray(sequence)){return sequence}else if(isNothing(sequence)){return[]}return[sequence]}function extend(target,source){var index,length,key,sourceKeys;if(source){sourceKeys=Object.keys(source);for(index=0,length=sourceKeys.length;index<length;index+=1){key=sourceKeys[index];target[key]=source[key]}}return target}function repeat(string,count){var result="",cycle;for(cycle=0;cycle<count;cycle+=1){result+=string}return result}function isNegativeZero(number){return 0===number&&Number.NEGATIVE_INFINITY===1/number}module.exports.isNothing=isNothing;module.exports.isObject=isObject;module.exports.toArray=toArray;module.exports.repeat=repeat;module.exports.isNegativeZero=isNegativeZero;module.exports.extend=extend},{}],24:[function(require,module,exports){"use strict";var common=require("./common");var YAMLException=require("./exception");var DEFAULT_FULL_SCHEMA=require("./schema/default_full");var DEFAULT_SAFE_SCHEMA=require("./schema/default_safe");var _toString=Object.prototype.toString;var _hasOwnProperty=Object.prototype.hasOwnProperty;var CHAR_TAB=9;var CHAR_LINE_FEED=10;var CHAR_CARRIAGE_RETURN=13;var CHAR_SPACE=32;var CHAR_EXCLAMATION=33;var CHAR_DOUBLE_QUOTE=34;var CHAR_SHARP=35;var CHAR_PERCENT=37;var CHAR_AMPERSAND=38;var CHAR_SINGLE_QUOTE=39;var CHAR_ASTERISK=42;var CHAR_COMMA=44;var CHAR_MINUS=45;var CHAR_COLON=58;var CHAR_GREATER_THAN=62;var CHAR_QUESTION=63;var CHAR_COMMERCIAL_AT=64;var CHAR_LEFT_SQUARE_BRACKET=91;var CHAR_RIGHT_SQUARE_BRACKET=93;var CHAR_GRAVE_ACCENT=96;var CHAR_LEFT_CURLY_BRACKET=123;var CHAR_VERTICAL_LINE=124;var CHAR_RIGHT_CURLY_BRACKET=125;var ESCAPE_SEQUENCES={};ESCAPE_SEQUENCES[0]="\\0";ESCAPE_SEQUENCES[7]="\\a";ESCAPE_SEQUENCES[8]="\\b";ESCAPE_SEQUENCES[9]="\\t";ESCAPE_SEQUENCES[10]="\\n";ESCAPE_SEQUENCES[11]="\\v";ESCAPE_SEQUENCES[12]="\\f";ESCAPE_SEQUENCES[13]="\\r";ESCAPE_SEQUENCES[27]="\\e";ESCAPE_SEQUENCES[34]='\\"';ESCAPE_SEQUENCES[92]="\\\\";ESCAPE_SEQUENCES[133]="\\N";ESCAPE_SEQUENCES[160]="\\_";ESCAPE_SEQUENCES[8232]="\\L";ESCAPE_SEQUENCES[8233]="\\P";var DEPRECATED_BOOLEANS_SYNTAX=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function compileStyleMap(schema,map){var result,keys,index,length,tag,style,type;if(null===map){return{}}result={};keys=Object.keys(map);for(index=0,length=keys.length;index<length;index+=1){tag=keys[index];style=String(map[tag]);if("!!"===tag.slice(0,2)){tag="tag:yaml.org,2002:"+tag.slice(2)}type=schema.compiledTypeMap[tag];if(type&&_hasOwnProperty.call(type.styleAliases,style)){style=type.styleAliases[style]}result[tag]=style}return result}function encodeHex(character){var string,handle,length;string=character.toString(16).toUpperCase();if(character<=255){handle="x";length=2}else if(character<=65535){handle="u";length=4}else if(character<=4294967295){handle="U";length=8}else{throw new YAMLException("code point within a string may not be greater than 0xFFFFFFFF")}return"\\"+handle+common.repeat("0",length-string.length)+string}function State(options){this.schema=options["schema"]||DEFAULT_FULL_SCHEMA;this.indent=Math.max(1,options["indent"]||2);this.skipInvalid=options["skipInvalid"]||false;this.flowLevel=common.isNothing(options["flowLevel"])?-1:options["flowLevel"];this.styleMap=compileStyleMap(this.schema,options["styles"]||null);this.sortKeys=options["sortKeys"]||false;this.implicitTypes=this.schema.compiledImplicit;this.explicitTypes=this.schema.compiledExplicit;this.tag=null;this.result="";this.duplicates=[];this.usedDuplicates=null}function indentString(string,spaces){var ind=common.repeat(" ",spaces),position=0,next=-1,result="",line,length=string.length;while(position<length){next=string.indexOf("\n",position);if(next===-1){line=string.slice(position);position=length}else{line=string.slice(position,next+1);position=next+1}if(line.length&&line!=="\n"){result+=ind}result+=line}return result}function generateNextLine(state,level){return"\n"+common.repeat(" ",state.indent*level)}function testImplicitResolving(state,str){var index,length,type;for(index=0,length=state.implicitTypes.length;index<length;index+=1){type=state.implicitTypes[index];if(type.resolve(str)){return true}}return false}function StringBuilder(source){this.source=source;this.result="";this.checkpoint=0}StringBuilder.prototype.takeUpTo=function(position){var er;if(position<this.checkpoint){er=new Error("position should be > checkpoint");er.position=position;er.checkpoint=this.checkpoint;throw er}this.result+=this.source.slice(this.checkpoint,position);this.checkpoint=position;return this};StringBuilder.prototype.escapeChar=function(){var character,esc;character=this.source.charCodeAt(this.checkpoint);esc=ESCAPE_SEQUENCES[character]||encodeHex(character);this.result+=esc;this.checkpoint+=1;return this};StringBuilder.prototype.finish=function(){if(this.source.length>this.checkpoint){this.takeUpTo(this.source.length)}};function writeScalar(state,object,level){var simple,first,spaceWrap,folded,literal,single,double,sawLineFeed,linePosition,longestLine,indent,max,character,position,escapeSeq,hexEsc,previous,lineLength,modifier,trailingLineBreaks,result;if(0===object.length){state.dump="''";return}if(-1!==DEPRECATED_BOOLEANS_SYNTAX.indexOf(object)){state.dump="'"+object+"'";return}simple=true;first=object.length?object.charCodeAt(0):0;spaceWrap=CHAR_SPACE===first||CHAR_SPACE===object.charCodeAt(object.length-1);if(CHAR_MINUS===first||CHAR_QUESTION===first||CHAR_COMMERCIAL_AT===first||CHAR_GRAVE_ACCENT===first){simple=false}if(spaceWrap){simple=false;folded=false;literal=false}else{folded=true;literal=true}single=true;double=new StringBuilder(object);sawLineFeed=false;linePosition=0;longestLine=0;indent=state.indent*level;max=80;if(indent<40){max-=indent}else{max=40}for(position=0;position<object.length;position++){character=object.charCodeAt(position);if(simple){if(!simpleChar(character)){simple=false}else{continue}}if(single&&character===CHAR_SINGLE_QUOTE){single=false}escapeSeq=ESCAPE_SEQUENCES[character];hexEsc=needsHexEscape(character);if(!escapeSeq&&!hexEsc){continue}if(character!==CHAR_LINE_FEED&&character!==CHAR_DOUBLE_QUOTE&&character!==CHAR_SINGLE_QUOTE){folded=false;literal=false}else if(character===CHAR_LINE_FEED){sawLineFeed=true;single=false;if(position>0){previous=object.charCodeAt(position-1);if(previous===CHAR_SPACE){literal=false;folded=false}}if(folded){lineLength=position-linePosition;linePosition=position;if(lineLength>longestLine){longestLine=lineLength}}}if(character!==CHAR_DOUBLE_QUOTE){single=false}double.takeUpTo(position);double.escapeChar()}if(simple&&testImplicitResolving(state,object)){simple=false}modifier="";if(folded||literal){trailingLineBreaks=0;if(object.charCodeAt(object.length-1)===CHAR_LINE_FEED){trailingLineBreaks+=1;if(object.charCodeAt(object.length-2)===CHAR_LINE_FEED){trailingLineBreaks+=1}}if(trailingLineBreaks===0){modifier="-"}else if(trailingLineBreaks===2){modifier="+"}}if(literal&&longestLine<max){folded=false}if(!sawLineFeed){literal=false}if(simple){state.dump=object}else if(single){state.dump="'"+object+"'"}else if(folded){result=fold(object,max);state.dump=">"+modifier+"\n"+indentString(result,indent)}else if(literal){if(!modifier){object=object.replace(/\n$/,"")}state.dump="|"+modifier+"\n"+indentString(object,indent)}else if(double){double.finish();state.dump='"'+double.result+'"'}else{throw new Error("Failed to dump scalar value")}return}function fold(object,max){var result="",position=0,length=object.length,trailing=/\n+$/.exec(object),newLine;if(trailing){length=trailing.index+1}while(position<length){newLine=object.indexOf("\n",position);if(newLine>length||newLine===-1){if(result){result+="\n\n"}result+=foldLine(object.slice(position,length),max);position=length}else{if(result){result+="\n\n"}result+=foldLine(object.slice(position,newLine),max);position=newLine+1}}if(trailing&&trailing[0]!=="\n"){result+=trailing[0]}return result}function foldLine(line,max){if(line===""){return line}var foldRe=/[^\s] [^\s]/g,result="",prevMatch=0,foldStart=0,match=foldRe.exec(line),index,foldEnd,folded;while(match){index=match.index;if(index-foldStart>max){if(prevMatch!==foldStart){foldEnd=prevMatch}else{foldEnd=index}if(result){result+="\n"}folded=line.slice(foldStart,foldEnd);result+=folded;foldStart=foldEnd+1}prevMatch=index+1;match=foldRe.exec(line)}if(result){result+="\n"}if(foldStart!==prevMatch&&line.length-foldStart>max){result+=line.slice(foldStart,prevMatch)+"\n"+line.slice(prevMatch+1)}else{result+=line.slice(foldStart)}return result}function simpleChar(character){return CHAR_TAB!==character&&CHAR_LINE_FEED!==character&&CHAR_CARRIAGE_RETURN!==character&&CHAR_COMMA!==character&&CHAR_LEFT_SQUARE_BRACKET!==character&&CHAR_RIGHT_SQUARE_BRACKET!==character&&CHAR_LEFT_CURLY_BRACKET!==character&&CHAR_RIGHT_CURLY_BRACKET!==character&&CHAR_SHARP!==character&&CHAR_AMPERSAND!==character&&CHAR_ASTERISK!==character&&CHAR_EXCLAMATION!==character&&CHAR_VERTICAL_LINE!==character&&CHAR_GREATER_THAN!==character&&CHAR_SINGLE_QUOTE!==character&&CHAR_DOUBLE_QUOTE!==character&&CHAR_PERCENT!==character&&CHAR_COLON!==character&&!ESCAPE_SEQUENCES[character]&&!needsHexEscape(character); + +}function needsHexEscape(character){return!(32<=character&&character<=126||133===character||160<=character&&character<=55295||57344<=character&&character<=65533||65536<=character&&character<=1114111)}function writeFlowSequence(state,level,object){var _result="",_tag=state.tag,index,length;for(index=0,length=object.length;index<length;index+=1){if(writeNode(state,level,object[index],false,false)){if(0!==index){_result+=", "}_result+=state.dump}}state.tag=_tag;state.dump="["+_result+"]"}function writeBlockSequence(state,level,object,compact){var _result="",_tag=state.tag,index,length;for(index=0,length=object.length;index<length;index+=1){if(writeNode(state,level+1,object[index],true,true)){if(!compact||0!==index){_result+=generateNextLine(state,level)}_result+="- "+state.dump}}state.tag=_tag;state.dump=_result||"[]"}function writeFlowMapping(state,level,object){var _result="",_tag=state.tag,objectKeyList=Object.keys(object),index,length,objectKey,objectValue,pairBuffer;for(index=0,length=objectKeyList.length;index<length;index+=1){pairBuffer="";if(0!==index){pairBuffer+=", "}objectKey=objectKeyList[index];objectValue=object[objectKey];if(!writeNode(state,level,objectKey,false,false)){continue}if(state.dump.length>1024){pairBuffer+="? "}pairBuffer+=state.dump+": ";if(!writeNode(state,level,objectValue,false,false)){continue}pairBuffer+=state.dump;_result+=pairBuffer}state.tag=_tag;state.dump="{"+_result+"}"}function writeBlockMapping(state,level,object,compact){var _result="",_tag=state.tag,objectKeyList=Object.keys(object),index,length,objectKey,objectValue,explicitPair,pairBuffer;if(state.sortKeys===true){objectKeyList.sort()}else if(typeof state.sortKeys==="function"){objectKeyList.sort(state.sortKeys)}else if(state.sortKeys){throw new YAMLException("sortKeys must be a boolean or a function")}for(index=0,length=objectKeyList.length;index<length;index+=1){pairBuffer="";if(!compact||0!==index){pairBuffer+=generateNextLine(state,level)}objectKey=objectKeyList[index];objectValue=object[objectKey];if(!writeNode(state,level+1,objectKey,true,true)){continue}explicitPair=null!==state.tag&&"?"!==state.tag||state.dump&&state.dump.length>1024;if(explicitPair){if(state.dump&&CHAR_LINE_FEED===state.dump.charCodeAt(0)){pairBuffer+="?"}else{pairBuffer+="? "}}pairBuffer+=state.dump;if(explicitPair){pairBuffer+=generateNextLine(state,level)}if(!writeNode(state,level+1,objectValue,true,explicitPair)){continue}if(state.dump&&CHAR_LINE_FEED===state.dump.charCodeAt(0)){pairBuffer+=":"}else{pairBuffer+=": "}pairBuffer+=state.dump;_result+=pairBuffer}state.tag=_tag;state.dump=_result||"{}"}function detectType(state,object,explicit){var _result,typeList,index,length,type,style;typeList=explicit?state.explicitTypes:state.implicitTypes;for(index=0,length=typeList.length;index<length;index+=1){type=typeList[index];if((type.instanceOf||type.predicate)&&(!type.instanceOf||"object"===typeof object&&object instanceof type.instanceOf)&&(!type.predicate||type.predicate(object))){state.tag=explicit?type.tag:"?";if(type.represent){style=state.styleMap[type.tag]||type.defaultStyle;if("[object Function]"===_toString.call(type.represent)){_result=type.represent(object,style)}else if(_hasOwnProperty.call(type.represent,style)){_result=type.represent[style](object,style)}else{throw new YAMLException("!<"+type.tag+'> tag resolver accepts not "'+style+'" style')}state.dump=_result}return true}}return false}function writeNode(state,level,object,block,compact){state.tag=null;state.dump=object;if(!detectType(state,object,false)){detectType(state,object,true)}var type=_toString.call(state.dump);if(block){block=0>state.flowLevel||state.flowLevel>level}if(null!==state.tag&&"?"!==state.tag||2!==state.indent&&level>0){compact=false}var objectOrArray="[object Object]"===type||"[object Array]"===type,duplicateIndex,duplicate;if(objectOrArray){duplicateIndex=state.duplicates.indexOf(object);duplicate=duplicateIndex!==-1}if(duplicate&&state.usedDuplicates[duplicateIndex]){state.dump="*ref_"+duplicateIndex}else{if(objectOrArray&&duplicate&&!state.usedDuplicates[duplicateIndex]){state.usedDuplicates[duplicateIndex]=true}if("[object Object]"===type){if(block&&0!==Object.keys(state.dump).length){writeBlockMapping(state,level,state.dump,compact);if(duplicate){state.dump="&ref_"+duplicateIndex+(0===level?"\n":"")+state.dump}}else{writeFlowMapping(state,level,state.dump);if(duplicate){state.dump="&ref_"+duplicateIndex+" "+state.dump}}}else if("[object Array]"===type){if(block&&0!==state.dump.length){writeBlockSequence(state,level,state.dump,compact);if(duplicate){state.dump="&ref_"+duplicateIndex+(0===level?"\n":"")+state.dump}}else{writeFlowSequence(state,level,state.dump);if(duplicate){state.dump="&ref_"+duplicateIndex+" "+state.dump}}}else if("[object String]"===type){if("?"!==state.tag){writeScalar(state,state.dump,level)}}else{if(state.skipInvalid){return false}throw new YAMLException("unacceptable kind of an object to dump "+type)}if(null!==state.tag&&"?"!==state.tag){state.dump="!<"+state.tag+"> "+state.dump}}return true}function getDuplicateReferences(object,state){var objects=[],duplicatesIndexes=[],index,length;inspectNode(object,objects,duplicatesIndexes);for(index=0,length=duplicatesIndexes.length;index<length;index+=1){state.duplicates.push(objects[duplicatesIndexes[index]])}state.usedDuplicates=new Array(length)}function inspectNode(object,objects,duplicatesIndexes){var type=_toString.call(object),objectKeyList,index,length;if(null!==object&&"object"===typeof object){index=objects.indexOf(object);if(-1!==index){if(-1===duplicatesIndexes.indexOf(index)){duplicatesIndexes.push(index)}}else{objects.push(object);if(Array.isArray(object)){for(index=0,length=object.length;index<length;index+=1){inspectNode(object[index],objects,duplicatesIndexes)}}else{objectKeyList=Object.keys(object);for(index=0,length=objectKeyList.length;index<length;index+=1){inspectNode(object[objectKeyList[index]],objects,duplicatesIndexes)}}}}}function dump(input,options){options=options||{};var state=new State(options);getDuplicateReferences(input,state);if(writeNode(state,0,input,true,true)){return state.dump+"\n"}return""}function safeDump(input,options){return dump(input,common.extend({schema:DEFAULT_SAFE_SCHEMA},options))}module.exports.dump=dump;module.exports.safeDump=safeDump},{"./common":23,"./exception":25,"./schema/default_full":30,"./schema/default_safe":31}],25:[function(require,module,exports){"use strict";function YAMLException(reason,mark){this.name="YAMLException";this.reason=reason;this.mark=mark;this.message=this.toString(false)}YAMLException.prototype.toString=function toString(compact){var result;result="JS-YAML: "+(this.reason||"(unknown reason)");if(!compact&&this.mark){result+=" "+this.mark.toString()}return result};module.exports=YAMLException},{}],26:[function(require,module,exports){"use strict";var common=require("./common");var YAMLException=require("./exception");var Mark=require("./mark");var DEFAULT_SAFE_SCHEMA=require("./schema/default_safe");var DEFAULT_FULL_SCHEMA=require("./schema/default_full");var _hasOwnProperty=Object.prototype.hasOwnProperty;var CONTEXT_FLOW_IN=1;var CONTEXT_FLOW_OUT=2;var CONTEXT_BLOCK_IN=3;var CONTEXT_BLOCK_OUT=4;var CHOMPING_CLIP=1;var CHOMPING_STRIP=2;var CHOMPING_KEEP=3;var PATTERN_NON_PRINTABLE=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;var PATTERN_NON_ASCII_LINE_BREAKS=/[\x85\u2028\u2029]/;var PATTERN_FLOW_INDICATORS=/[,\[\]\{\}]/;var PATTERN_TAG_HANDLE=/^(?:!|!!|![a-z\-]+!)$/i;var PATTERN_TAG_URI=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function is_EOL(c){return c===10||c===13}function is_WHITE_SPACE(c){return c===9||c===32}function is_WS_OR_EOL(c){return c===9||c===32||c===10||c===13}function is_FLOW_INDICATOR(c){return 44===c||91===c||93===c||123===c||125===c}function fromHexCode(c){var lc;if(48<=c&&c<=57){return c-48}lc=c|32;if(97<=lc&&lc<=102){return lc-97+10}return-1}function escapedHexLen(c){if(c===120){return 2}if(c===117){return 4}if(c===85){return 8}return 0}function fromDecimalCode(c){if(48<=c&&c<=57){return c-48}return-1}function simpleEscapeSequence(c){return c===48?"\x00":c===97?"":c===98?"\b":c===116?" ":c===9?" ":c===110?"\n":c===118?" ":c===102?"\f":c===114?"\r":c===101?"":c===32?" ":c===34?'"':c===47?"/":c===92?"\\":c===78?"…":c===95?" ":c===76?"\u2028":c===80?"\u2029":""}function charFromCodepoint(c){if(c<=65535){return String.fromCharCode(c)}return String.fromCharCode((c-65536>>10)+55296,(c-65536&1023)+56320)}var simpleEscapeCheck=new Array(256);var simpleEscapeMap=new Array(256);for(var i=0;i<256;i++){simpleEscapeCheck[i]=simpleEscapeSequence(i)?1:0;simpleEscapeMap[i]=simpleEscapeSequence(i)}function State(input,options){this.input=input;this.filename=options["filename"]||null;this.schema=options["schema"]||DEFAULT_FULL_SCHEMA;this.onWarning=options["onWarning"]||null;this.legacy=options["legacy"]||false;this.implicitTypes=this.schema.compiledImplicit;this.typeMap=this.schema.compiledTypeMap;this.length=input.length;this.position=0;this.line=0;this.lineStart=0;this.lineIndent=0;this.documents=[]}function generateError(state,message){return new YAMLException(message,new Mark(state.filename,state.input,state.position,state.line,state.position-state.lineStart))}function throwError(state,message){throw generateError(state,message)}function throwWarning(state,message){var error=generateError(state,message);if(state.onWarning){state.onWarning.call(null,error)}else{throw error}}var directiveHandlers={YAML:function handleYamlDirective(state,name,args){var match,major,minor;if(null!==state.version){throwError(state,"duplication of %YAML directive")}if(1!==args.length){throwError(state,"YAML directive accepts exactly one argument")}match=/^([0-9]+)\.([0-9]+)$/.exec(args[0]);if(null===match){throwError(state,"ill-formed argument of the YAML directive")}major=parseInt(match[1],10);minor=parseInt(match[2],10);if(1!==major){throwError(state,"unacceptable YAML version of the document")}state.version=args[0];state.checkLineBreaks=minor<2;if(1!==minor&&2!==minor){throwWarning(state,"unsupported YAML version of the document")}},TAG:function handleTagDirective(state,name,args){var handle,prefix;if(2!==args.length){throwError(state,"TAG directive accepts exactly two arguments")}handle=args[0];prefix=args[1];if(!PATTERN_TAG_HANDLE.test(handle)){throwError(state,"ill-formed tag handle (first argument) of the TAG directive")}if(_hasOwnProperty.call(state.tagMap,handle)){throwError(state,'there is a previously declared suffix for "'+handle+'" tag handle')}if(!PATTERN_TAG_URI.test(prefix)){throwError(state,"ill-formed tag prefix (second argument) of the TAG directive")}state.tagMap[handle]=prefix}};function captureSegment(state,start,end,checkJson){var _position,_length,_character,_result;if(start<end){_result=state.input.slice(start,end);if(checkJson){for(_position=0,_length=_result.length;_position<_length;_position+=1){_character=_result.charCodeAt(_position);if(!(9===_character||32<=_character&&_character<=1114111)){throwError(state,"expected valid JSON character")}}}state.result+=_result}}function mergeMappings(state,destination,source){var sourceKeys,key,index,quantity;if(!common.isObject(source)){throwError(state,"cannot merge mappings; the provided source object is unacceptable")}sourceKeys=Object.keys(source);for(index=0,quantity=sourceKeys.length;index<quantity;index+=1){key=sourceKeys[index];if(!_hasOwnProperty.call(destination,key)){destination[key]=source[key]}}}function storeMappingPair(state,_result,keyTag,keyNode,valueNode){var index,quantity;keyNode=String(keyNode);if(null===_result){_result={}}if("tag:yaml.org,2002:merge"===keyTag){if(Array.isArray(valueNode)){for(index=0,quantity=valueNode.length;index<quantity;index+=1){mergeMappings(state,_result,valueNode[index])}}else{mergeMappings(state,_result,valueNode)}}else{_result[keyNode]=valueNode}return _result}function readLineBreak(state){var ch;ch=state.input.charCodeAt(state.position);if(10===ch){state.position++}else if(13===ch){state.position++;if(10===state.input.charCodeAt(state.position)){state.position++}}else{throwError(state,"a line break is expected")}state.line+=1;state.lineStart=state.position}function skipSeparationSpace(state,allowComments,checkIndent){var lineBreaks=0,ch=state.input.charCodeAt(state.position);while(0!==ch){while(is_WHITE_SPACE(ch)){ch=state.input.charCodeAt(++state.position)}if(allowComments&&35===ch){do{ch=state.input.charCodeAt(++state.position)}while(ch!==10&&ch!==13&&0!==ch)}if(is_EOL(ch)){readLineBreak(state);ch=state.input.charCodeAt(state.position);lineBreaks++;state.lineIndent=0;while(32===ch){state.lineIndent++;ch=state.input.charCodeAt(++state.position)}}else{break}}if(-1!==checkIndent&&0!==lineBreaks&&state.lineIndent<checkIndent){throwWarning(state,"deficient indentation")}return lineBreaks}function testDocumentSeparator(state){var _position=state.position,ch;ch=state.input.charCodeAt(_position);if((45===ch||46===ch)&&state.input.charCodeAt(_position+1)===ch&&state.input.charCodeAt(_position+2)===ch){_position+=3;ch=state.input.charCodeAt(_position);if(ch===0||is_WS_OR_EOL(ch)){return true}}return false}function writeFoldedLines(state,count){if(1===count){state.result+=" "}else if(count>1){state.result+=common.repeat("\n",count-1)}}function readPlainScalar(state,nodeIndent,withinFlowCollection){var preceding,following,captureStart,captureEnd,hasPendingContent,_line,_lineStart,_lineIndent,_kind=state.kind,_result=state.result,ch;ch=state.input.charCodeAt(state.position);if(is_WS_OR_EOL(ch)||is_FLOW_INDICATOR(ch)||35===ch||38===ch||42===ch||33===ch||124===ch||62===ch||39===ch||34===ch||37===ch||64===ch||96===ch){return false}if(63===ch||45===ch){following=state.input.charCodeAt(state.position+1);if(is_WS_OR_EOL(following)||withinFlowCollection&&is_FLOW_INDICATOR(following)){return false}}state.kind="scalar";state.result="";captureStart=captureEnd=state.position;hasPendingContent=false;while(0!==ch){if(58===ch){following=state.input.charCodeAt(state.position+1);if(is_WS_OR_EOL(following)||withinFlowCollection&&is_FLOW_INDICATOR(following)){break}}else if(35===ch){preceding=state.input.charCodeAt(state.position-1);if(is_WS_OR_EOL(preceding)){break}}else if(state.position===state.lineStart&&testDocumentSeparator(state)||withinFlowCollection&&is_FLOW_INDICATOR(ch)){break}else if(is_EOL(ch)){_line=state.line;_lineStart=state.lineStart;_lineIndent=state.lineIndent;skipSeparationSpace(state,false,-1);if(state.lineIndent>=nodeIndent){hasPendingContent=true;ch=state.input.charCodeAt(state.position);continue}else{state.position=captureEnd;state.line=_line;state.lineStart=_lineStart;state.lineIndent=_lineIndent;break}}if(hasPendingContent){captureSegment(state,captureStart,captureEnd,false);writeFoldedLines(state,state.line-_line);captureStart=captureEnd=state.position;hasPendingContent=false}if(!is_WHITE_SPACE(ch)){captureEnd=state.position+1}ch=state.input.charCodeAt(++state.position)}captureSegment(state,captureStart,captureEnd,false);if(state.result){return true}state.kind=_kind;state.result=_result;return false}function readSingleQuotedScalar(state,nodeIndent){var ch,captureStart,captureEnd;ch=state.input.charCodeAt(state.position);if(39!==ch){return false}state.kind="scalar";state.result="";state.position++;captureStart=captureEnd=state.position;while(0!==(ch=state.input.charCodeAt(state.position))){if(39===ch){captureSegment(state,captureStart,state.position,true);ch=state.input.charCodeAt(++state.position);if(39===ch){captureStart=captureEnd=state.position;state.position++}else{return true}}else if(is_EOL(ch)){captureSegment(state,captureStart,captureEnd,true);writeFoldedLines(state,skipSeparationSpace(state,false,nodeIndent));captureStart=captureEnd=state.position}else if(state.position===state.lineStart&&testDocumentSeparator(state)){throwError(state,"unexpected end of the document within a single quoted scalar")}else{state.position++;captureEnd=state.position}}throwError(state,"unexpected end of the stream within a single quoted scalar")}function readDoubleQuotedScalar(state,nodeIndent){var captureStart,captureEnd,hexLength,hexResult,tmp,tmpEsc,ch;ch=state.input.charCodeAt(state.position);if(34!==ch){return false}state.kind="scalar";state.result="";state.position++;captureStart=captureEnd=state.position;while(0!==(ch=state.input.charCodeAt(state.position))){if(34===ch){captureSegment(state,captureStart,state.position,true);state.position++;return true}else if(92===ch){captureSegment(state,captureStart,state.position,true);ch=state.input.charCodeAt(++state.position);if(is_EOL(ch)){skipSeparationSpace(state,false,nodeIndent)}else if(ch<256&&simpleEscapeCheck[ch]){state.result+=simpleEscapeMap[ch];state.position++}else if((tmp=escapedHexLen(ch))>0){hexLength=tmp;hexResult=0;for(;hexLength>0;hexLength--){ch=state.input.charCodeAt(++state.position);if((tmp=fromHexCode(ch))>=0){hexResult=(hexResult<<4)+tmp}else{throwError(state,"expected hexadecimal character")}}state.result+=charFromCodepoint(hexResult);state.position++}else{throwError(state,"unknown escape sequence")}captureStart=captureEnd=state.position}else if(is_EOL(ch)){captureSegment(state,captureStart,captureEnd,true);writeFoldedLines(state,skipSeparationSpace(state,false,nodeIndent));captureStart=captureEnd=state.position}else if(state.position===state.lineStart&&testDocumentSeparator(state)){throwError(state,"unexpected end of the document within a double quoted scalar")}else{state.position++;captureEnd=state.position}}throwError(state,"unexpected end of the stream within a double quoted scalar")}function readFlowCollection(state,nodeIndent){var readNext=true,_line,_tag=state.tag,_result,_anchor=state.anchor,following,terminator,isPair,isExplicitPair,isMapping,keyNode,keyTag,valueNode,ch;ch=state.input.charCodeAt(state.position);if(ch===91){terminator=93;isMapping=false;_result=[]}else if(ch===123){terminator=125;isMapping=true;_result={}}else{return false}if(null!==state.anchor){state.anchorMap[state.anchor]=_result}ch=state.input.charCodeAt(++state.position);while(0!==ch){skipSeparationSpace(state,true,nodeIndent);ch=state.input.charCodeAt(state.position);if(ch===terminator){state.position++;state.tag=_tag;state.anchor=_anchor;state.kind=isMapping?"mapping":"sequence";state.result=_result;return true}else if(!readNext){throwError(state,"missed comma between flow collection entries")}keyTag=keyNode=valueNode=null;isPair=isExplicitPair=false;if(63===ch){following=state.input.charCodeAt(state.position+1);if(is_WS_OR_EOL(following)){isPair=isExplicitPair=true;state.position++;skipSeparationSpace(state,true,nodeIndent)}}_line=state.line;composeNode(state,nodeIndent,CONTEXT_FLOW_IN,false,true);keyTag=state.tag;keyNode=state.result;skipSeparationSpace(state,true,nodeIndent);ch=state.input.charCodeAt(state.position);if((isExplicitPair||state.line===_line)&&58===ch){isPair=true;ch=state.input.charCodeAt(++state.position);skipSeparationSpace(state,true,nodeIndent);composeNode(state,nodeIndent,CONTEXT_FLOW_IN,false,true);valueNode=state.result}if(isMapping){storeMappingPair(state,_result,keyTag,keyNode,valueNode)}else if(isPair){_result.push(storeMappingPair(state,null,keyTag,keyNode,valueNode))}else{_result.push(keyNode)}skipSeparationSpace(state,true,nodeIndent);ch=state.input.charCodeAt(state.position);if(44===ch){readNext=true;ch=state.input.charCodeAt(++state.position)}else{readNext=false}}throwError(state,"unexpected end of the stream within a flow collection")}function readBlockScalar(state,nodeIndent){var captureStart,folding,chomping=CHOMPING_CLIP,detectedIndent=false,textIndent=nodeIndent,emptyLines=0,atMoreIndented=false,tmp,ch;ch=state.input.charCodeAt(state.position);if(ch===124){folding=false}else if(ch===62){folding=true}else{return false}state.kind="scalar";state.result="";while(0!==ch){ch=state.input.charCodeAt(++state.position);if(43===ch||45===ch){if(CHOMPING_CLIP===chomping){chomping=43===ch?CHOMPING_KEEP:CHOMPING_STRIP}else{throwError(state,"repeat of a chomping mode identifier")}}else if((tmp=fromDecimalCode(ch))>=0){if(tmp===0){throwError(state,"bad explicit indentation width of a block scalar; it cannot be less than one")}else if(!detectedIndent){textIndent=nodeIndent+tmp-1;detectedIndent=true}else{throwError(state,"repeat of an indentation width identifier")}}else{break}}if(is_WHITE_SPACE(ch)){do{ch=state.input.charCodeAt(++state.position)}while(is_WHITE_SPACE(ch));if(35===ch){do{ch=state.input.charCodeAt(++state.position)}while(!is_EOL(ch)&&0!==ch)}}while(0!==ch){readLineBreak(state);state.lineIndent=0;ch=state.input.charCodeAt(state.position);while((!detectedIndent||state.lineIndent<textIndent)&&32===ch){state.lineIndent++;ch=state.input.charCodeAt(++state.position)}if(!detectedIndent&&state.lineIndent>textIndent){textIndent=state.lineIndent}if(is_EOL(ch)){emptyLines++;continue}if(state.lineIndent<textIndent){if(chomping===CHOMPING_KEEP){state.result+=common.repeat("\n",emptyLines)}else if(chomping===CHOMPING_CLIP){if(detectedIndent){state.result+="\n"}}break}if(folding){if(is_WHITE_SPACE(ch)){atMoreIndented=true;state.result+=common.repeat("\n",emptyLines+1)}else if(atMoreIndented){atMoreIndented=false;state.result+=common.repeat("\n",emptyLines+1)}else if(0===emptyLines){if(detectedIndent){state.result+=" "}}else{state.result+=common.repeat("\n",emptyLines)}}else if(detectedIndent){state.result+=common.repeat("\n",emptyLines+1)}else{}detectedIndent=true;emptyLines=0;captureStart=state.position;while(!is_EOL(ch)&&0!==ch){ch=state.input.charCodeAt(++state.position)}captureSegment(state,captureStart,state.position,false)}return true}function readBlockSequence(state,nodeIndent){var _line,_tag=state.tag,_anchor=state.anchor,_result=[],following,detected=false,ch;if(null!==state.anchor){state.anchorMap[state.anchor]=_result}ch=state.input.charCodeAt(state.position);while(0!==ch){if(45!==ch){break}following=state.input.charCodeAt(state.position+1);if(!is_WS_OR_EOL(following)){break}detected=true;state.position++;if(skipSeparationSpace(state,true,-1)){if(state.lineIndent<=nodeIndent){_result.push(null);ch=state.input.charCodeAt(state.position);continue}}_line=state.line;composeNode(state,nodeIndent,CONTEXT_BLOCK_IN,false,true);_result.push(state.result);skipSeparationSpace(state,true,-1);ch=state.input.charCodeAt(state.position);if((state.line===_line||state.lineIndent>nodeIndent)&&0!==ch){throwError(state,"bad indentation of a sequence entry")}else if(state.lineIndent<nodeIndent){break}}if(detected){state.tag=_tag;state.anchor=_anchor;state.kind="sequence";state.result=_result;return true}return false}function readBlockMapping(state,nodeIndent,flowIndent){var following,allowCompact,_line,_tag=state.tag,_anchor=state.anchor,_result={},keyTag=null,keyNode=null,valueNode=null,atExplicitKey=false,detected=false,ch;if(null!==state.anchor){state.anchorMap[state.anchor]=_result}ch=state.input.charCodeAt(state.position);while(0!==ch){following=state.input.charCodeAt(state.position+1);_line=state.line;if((63===ch||58===ch)&&is_WS_OR_EOL(following)){if(63===ch){if(atExplicitKey){storeMappingPair(state,_result,keyTag,keyNode,null);keyTag=keyNode=valueNode=null}detected=true;atExplicitKey=true;allowCompact=true}else if(atExplicitKey){atExplicitKey=false;allowCompact=true}else{throwError(state,"incomplete explicit mapping pair; a key node is missed")}state.position+=1;ch=following}else if(composeNode(state,flowIndent,CONTEXT_FLOW_OUT,false,true)){if(state.line===_line){ch=state.input.charCodeAt(state.position);while(is_WHITE_SPACE(ch)){ch=state.input.charCodeAt(++state.position)}if(58===ch){ch=state.input.charCodeAt(++state.position);if(!is_WS_OR_EOL(ch)){throwError(state,"a whitespace character is expected after the key-value separator within a block mapping")}if(atExplicitKey){storeMappingPair(state,_result,keyTag,keyNode,null);keyTag=keyNode=valueNode=null}detected=true;atExplicitKey=false;allowCompact=false;keyTag=state.tag;keyNode=state.result}else if(detected){throwError(state,"can not read an implicit mapping pair; a colon is missed")}else{state.tag=_tag;state.anchor=_anchor;return true}}else if(detected){throwError(state,"can not read a block mapping entry; a multiline key may not be an implicit key")}else{state.tag=_tag;state.anchor=_anchor;return true}}else{break}if(state.line===_line||state.lineIndent>nodeIndent){if(composeNode(state,nodeIndent,CONTEXT_BLOCK_OUT,true,allowCompact)){if(atExplicitKey){keyNode=state.result}else{valueNode=state.result}}if(!atExplicitKey){storeMappingPair(state,_result,keyTag,keyNode,valueNode);keyTag=keyNode=valueNode=null}skipSeparationSpace(state,true,-1);ch=state.input.charCodeAt(state.position)}if(state.lineIndent>nodeIndent&&0!==ch){throwError(state,"bad indentation of a mapping entry")}else if(state.lineIndent<nodeIndent){break}}if(atExplicitKey){storeMappingPair(state,_result,keyTag,keyNode,null)}if(detected){state.tag=_tag;state.anchor=_anchor;state.kind="mapping";state.result=_result}return detected}function readTagProperty(state){var _position,isVerbatim=false,isNamed=false,tagHandle,tagName,ch;ch=state.input.charCodeAt(state.position);if(33!==ch){return false}if(null!==state.tag){throwError(state,"duplication of a tag property")}ch=state.input.charCodeAt(++state.position);if(60===ch){isVerbatim=true;ch=state.input.charCodeAt(++state.position)}else if(33===ch){isNamed=true;tagHandle="!!";ch=state.input.charCodeAt(++state.position)}else{tagHandle="!"}_position=state.position;if(isVerbatim){do{ch=state.input.charCodeAt(++state.position)}while(0!==ch&&62!==ch);if(state.position<state.length){tagName=state.input.slice(_position,state.position);ch=state.input.charCodeAt(++state.position)}else{throwError(state,"unexpected end of the stream within a verbatim tag")}}else{while(0!==ch&&!is_WS_OR_EOL(ch)){if(33===ch){if(!isNamed){tagHandle=state.input.slice(_position-1,state.position+1);if(!PATTERN_TAG_HANDLE.test(tagHandle)){throwError(state,"named tag handle cannot contain such characters")}isNamed=true;_position=state.position+1}else{throwError(state,"tag suffix cannot contain exclamation marks")}}ch=state.input.charCodeAt(++state.position)}tagName=state.input.slice(_position,state.position);if(PATTERN_FLOW_INDICATORS.test(tagName)){throwError(state,"tag suffix cannot contain flow indicator characters")}}if(tagName&&!PATTERN_TAG_URI.test(tagName)){throwError(state,"tag name cannot contain such characters: "+tagName)}if(isVerbatim){state.tag=tagName}else if(_hasOwnProperty.call(state.tagMap,tagHandle)){state.tag=state.tagMap[tagHandle]+tagName}else if("!"===tagHandle){state.tag="!"+tagName}else if("!!"===tagHandle){state.tag="tag:yaml.org,2002:"+tagName}else{throwError(state,'undeclared tag handle "'+tagHandle+'"')}return true}function readAnchorProperty(state){var _position,ch;ch=state.input.charCodeAt(state.position);if(38!==ch){return false}if(null!==state.anchor){throwError(state,"duplication of an anchor property")}ch=state.input.charCodeAt(++state.position);_position=state.position;while(0!==ch&&!is_WS_OR_EOL(ch)&&!is_FLOW_INDICATOR(ch)){ch=state.input.charCodeAt(++state.position)}if(state.position===_position){throwError(state,"name of an anchor node must contain at least one character")}state.anchor=state.input.slice(_position,state.position);return true}function readAlias(state){var _position,alias,len=state.length,input=state.input,ch;ch=state.input.charCodeAt(state.position);if(42!==ch){return false}ch=state.input.charCodeAt(++state.position);_position=state.position;while(0!==ch&&!is_WS_OR_EOL(ch)&&!is_FLOW_INDICATOR(ch)){ch=state.input.charCodeAt(++state.position)}if(state.position===_position){throwError(state,"name of an alias node must contain at least one character")}alias=state.input.slice(_position,state.position);if(!state.anchorMap.hasOwnProperty(alias)){throwError(state,'unidentified alias "'+alias+'"')}state.result=state.anchorMap[alias];skipSeparationSpace(state,true,-1);return true}function composeNode(state,parentIndent,nodeContext,allowToSeek,allowCompact){var allowBlockStyles,allowBlockScalars,allowBlockCollections,indentStatus=1,atNewLine=false,hasContent=false,typeIndex,typeQuantity,type,flowIndent,blockIndent,_result;state.tag=null;state.anchor=null;state.kind=null;state.result=null;allowBlockStyles=allowBlockScalars=allowBlockCollections=CONTEXT_BLOCK_OUT===nodeContext||CONTEXT_BLOCK_IN===nodeContext;if(allowToSeek){if(skipSeparationSpace(state,true,-1)){atNewLine=true;if(state.lineIndent>parentIndent){indentStatus=1}else if(state.lineIndent===parentIndent){indentStatus=0}else if(state.lineIndent<parentIndent){indentStatus=-1}}}if(1===indentStatus){while(readTagProperty(state)||readAnchorProperty(state)){if(skipSeparationSpace(state,true,-1)){atNewLine=true;allowBlockCollections=allowBlockStyles;if(state.lineIndent>parentIndent){indentStatus=1}else if(state.lineIndent===parentIndent){indentStatus=0}else if(state.lineIndent<parentIndent){indentStatus=-1}}else{allowBlockCollections=false}}}if(allowBlockCollections){allowBlockCollections=atNewLine||allowCompact}if(1===indentStatus||CONTEXT_BLOCK_OUT===nodeContext){if(CONTEXT_FLOW_IN===nodeContext||CONTEXT_FLOW_OUT===nodeContext){flowIndent=parentIndent}else{flowIndent=parentIndent+1}blockIndent=state.position-state.lineStart;if(1===indentStatus){if(allowBlockCollections&&(readBlockSequence(state,blockIndent)||readBlockMapping(state,blockIndent,flowIndent))||readFlowCollection(state,flowIndent)){hasContent=true}else{if(allowBlockScalars&&readBlockScalar(state,flowIndent)||readSingleQuotedScalar(state,flowIndent)||readDoubleQuotedScalar(state,flowIndent)){hasContent=true}else if(readAlias(state)){hasContent=true;if(null!==state.tag||null!==state.anchor){throwError(state,"alias node should not have any properties")}}else if(readPlainScalar(state,flowIndent,CONTEXT_FLOW_IN===nodeContext)){hasContent=true;if(null===state.tag){state.tag="?"}}if(null!==state.anchor){state.anchorMap[state.anchor]=state.result}}}else if(0===indentStatus){hasContent=allowBlockCollections&&readBlockSequence(state,blockIndent)}}if(null!==state.tag&&"!"!==state.tag){if("?"===state.tag){for(typeIndex=0,typeQuantity=state.implicitTypes.length;typeIndex<typeQuantity;typeIndex+=1){type=state.implicitTypes[typeIndex];if(type.resolve(state.result)){state.result=type.construct(state.result);state.tag=type.tag;if(null!==state.anchor){state.anchorMap[state.anchor]=state.result}break}}}else if(_hasOwnProperty.call(state.typeMap,state.tag)){type=state.typeMap[state.tag];if(null!==state.result&&type.kind!==state.kind){throwError(state,"unacceptable node kind for !<"+state.tag+'> tag; it should be "'+type.kind+'", not "'+state.kind+'"')}if(!type.resolve(state.result)){throwError(state,"cannot resolve a node with !<"+state.tag+"> explicit tag")}else{state.result=type.construct(state.result);if(null!==state.anchor){state.anchorMap[state.anchor]=state.result}}}else{throwWarning(state,"unknown tag !<"+state.tag+">")}}return null!==state.tag||null!==state.anchor||hasContent}function readDocument(state){var documentStart=state.position,_position,directiveName,directiveArgs,hasDirectives=false,ch;state.version=null;state.checkLineBreaks=state.legacy;state.tagMap={};state.anchorMap={};while(0!==(ch=state.input.charCodeAt(state.position))){skipSeparationSpace(state,true,-1);ch=state.input.charCodeAt(state.position);if(state.lineIndent>0||37!==ch){break}hasDirectives=true;ch=state.input.charCodeAt(++state.position);_position=state.position;while(0!==ch&&!is_WS_OR_EOL(ch)){ch=state.input.charCodeAt(++state.position)}directiveName=state.input.slice(_position,state.position);directiveArgs=[];if(directiveName.length<1){throwError(state,"directive name must not be less than one character in length")}while(0!==ch){while(is_WHITE_SPACE(ch)){ch=state.input.charCodeAt(++state.position)}if(35===ch){do{ch=state.input.charCodeAt(++state.position); + +}while(0!==ch&&!is_EOL(ch));break}if(is_EOL(ch)){break}_position=state.position;while(0!==ch&&!is_WS_OR_EOL(ch)){ch=state.input.charCodeAt(++state.position)}directiveArgs.push(state.input.slice(_position,state.position))}if(0!==ch){readLineBreak(state)}if(_hasOwnProperty.call(directiveHandlers,directiveName)){directiveHandlers[directiveName](state,directiveName,directiveArgs)}else{throwWarning(state,'unknown document directive "'+directiveName+'"')}}skipSeparationSpace(state,true,-1);if(0===state.lineIndent&&45===state.input.charCodeAt(state.position)&&45===state.input.charCodeAt(state.position+1)&&45===state.input.charCodeAt(state.position+2)){state.position+=3;skipSeparationSpace(state,true,-1)}else if(hasDirectives){throwError(state,"directives end mark is expected")}composeNode(state,state.lineIndent-1,CONTEXT_BLOCK_OUT,false,true);skipSeparationSpace(state,true,-1);if(state.checkLineBreaks&&PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart,state.position))){throwWarning(state,"non-ASCII line breaks are interpreted as content")}state.documents.push(state.result);if(state.position===state.lineStart&&testDocumentSeparator(state)){if(46===state.input.charCodeAt(state.position)){state.position+=3;skipSeparationSpace(state,true,-1)}return}if(state.position<state.length-1){throwError(state,"end of the stream or a document separator is expected")}else{return}}function loadDocuments(input,options){input=String(input);options=options||{};if(input.length!==0){if(10!==input.charCodeAt(input.length-1)&&13!==input.charCodeAt(input.length-1)){input+="\n"}if(input.charCodeAt(0)===65279){input=input.slice(1)}}var state=new State(input,options);if(PATTERN_NON_PRINTABLE.test(state.input)){throwError(state,"the stream contains non-printable characters")}state.input+="\x00";while(32===state.input.charCodeAt(state.position)){state.lineIndent+=1;state.position+=1}while(state.position<state.length-1){readDocument(state)}return state.documents}function loadAll(input,iterator,options){var documents=loadDocuments(input,options),index,length;for(index=0,length=documents.length;index<length;index+=1){iterator(documents[index])}}function load(input,options){var documents=loadDocuments(input,options),index,length;if(0===documents.length){return undefined}else if(1===documents.length){return documents[0]}throw new YAMLException("expected a single document in the stream, but found more")}function safeLoadAll(input,output,options){loadAll(input,output,common.extend({schema:DEFAULT_SAFE_SCHEMA},options))}function safeLoad(input,options){return load(input,common.extend({schema:DEFAULT_SAFE_SCHEMA},options))}module.exports.loadAll=loadAll;module.exports.load=load;module.exports.safeLoadAll=safeLoadAll;module.exports.safeLoad=safeLoad},{"./common":23,"./exception":25,"./mark":27,"./schema/default_full":30,"./schema/default_safe":31}],27:[function(require,module,exports){"use strict";var common=require("./common");function Mark(name,buffer,position,line,column){this.name=name;this.buffer=buffer;this.position=position;this.line=line;this.column=column}Mark.prototype.getSnippet=function getSnippet(indent,maxLength){var head,start,tail,end,snippet;if(!this.buffer){return null}indent=indent||4;maxLength=maxLength||75;head="";start=this.position;while(start>0&&-1==="\x00\r\n…\u2028\u2029".indexOf(this.buffer.charAt(start-1))){start-=1;if(this.position-start>maxLength/2-1){head=" ... ";start+=5;break}}tail="";end=this.position;while(end<this.buffer.length&&-1==="\x00\r\n…\u2028\u2029".indexOf(this.buffer.charAt(end))){end+=1;if(end-this.position>maxLength/2-1){tail=" ... ";end-=5;break}}snippet=this.buffer.slice(start,end);return common.repeat(" ",indent)+head+snippet+tail+"\n"+common.repeat(" ",indent+this.position-start+head.length)+"^"};Mark.prototype.toString=function toString(compact){var snippet,where="";if(this.name){where+='in "'+this.name+'" '}where+="at line "+(this.line+1)+", column "+(this.column+1);if(!compact){snippet=this.getSnippet();if(snippet){where+=":\n"+snippet}}return where};module.exports=Mark},{"./common":23}],28:[function(require,module,exports){"use strict";var common=require("./common");var YAMLException=require("./exception");var Type=require("./type");function compileList(schema,name,result){var exclude=[];schema.include.forEach(function(includedSchema){result=compileList(includedSchema,name,result)});schema[name].forEach(function(currentType){result.forEach(function(previousType,previousIndex){if(previousType.tag===currentType.tag){exclude.push(previousIndex)}});result.push(currentType)});return result.filter(function(type,index){return-1===exclude.indexOf(index)})}function compileMap(){var result={},index,length;function collectType(type){result[type.tag]=type}for(index=0,length=arguments.length;index<length;index+=1){arguments[index].forEach(collectType)}return result}function Schema(definition){this.include=definition.include||[];this.implicit=definition.implicit||[];this.explicit=definition.explicit||[];this.implicit.forEach(function(type){if(type.loadKind&&"scalar"!==type.loadKind){throw new YAMLException("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}});this.compiledImplicit=compileList(this,"implicit",[]);this.compiledExplicit=compileList(this,"explicit",[]);this.compiledTypeMap=compileMap(this.compiledImplicit,this.compiledExplicit)}Schema.DEFAULT=null;Schema.create=function createSchema(){var schemas,types;switch(arguments.length){case 1:schemas=Schema.DEFAULT;types=arguments[0];break;case 2:schemas=arguments[0];types=arguments[1];break;default:throw new YAMLException("Wrong number of arguments for Schema.create function")}schemas=common.toArray(schemas);types=common.toArray(types);if(!schemas.every(function(schema){return schema instanceof Schema})){throw new YAMLException("Specified list of super schemas (or a single Schema object) contains a non-Schema object.")}if(!types.every(function(type){return type instanceof Type})){throw new YAMLException("Specified list of YAML types (or a single Type object) contains a non-Type object.")}return new Schema({include:schemas,explicit:types})};module.exports=Schema},{"./common":23,"./exception":25,"./type":34}],29:[function(require,module,exports){"use strict";var Schema=require("../schema");module.exports=new Schema({include:[require("./json")]})},{"../schema":28,"./json":33}],30:[function(require,module,exports){"use strict";var Schema=require("../schema");module.exports=Schema.DEFAULT=new Schema({include:[require("./default_safe")],explicit:[require("../type/js/undefined"),require("../type/js/regexp"),require("../type/js/function")]})},{"../schema":28,"../type/js/function":39,"../type/js/regexp":40,"../type/js/undefined":41,"./default_safe":31}],31:[function(require,module,exports){"use strict";var Schema=require("../schema");module.exports=new Schema({include:[require("./core")],implicit:[require("../type/timestamp"),require("../type/merge")],explicit:[require("../type/binary"),require("../type/omap"),require("../type/pairs"),require("../type/set")]})},{"../schema":28,"../type/binary":35,"../type/merge":43,"../type/omap":45,"../type/pairs":46,"../type/set":48,"../type/timestamp":50,"./core":29}],32:[function(require,module,exports){"use strict";var Schema=require("../schema");module.exports=new Schema({explicit:[require("../type/str"),require("../type/seq"),require("../type/map")]})},{"../schema":28,"../type/map":42,"../type/seq":47,"../type/str":49}],33:[function(require,module,exports){"use strict";var Schema=require("../schema");module.exports=new Schema({include:[require("./failsafe")],implicit:[require("../type/null"),require("../type/bool"),require("../type/int"),require("../type/float")]})},{"../schema":28,"../type/bool":36,"../type/float":37,"../type/int":38,"../type/null":44,"./failsafe":32}],34:[function(require,module,exports){"use strict";var YAMLException=require("./exception");var TYPE_CONSTRUCTOR_OPTIONS=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"];var YAML_NODE_KINDS=["scalar","sequence","mapping"];function compileStyleAliases(map){var result={};if(null!==map){Object.keys(map).forEach(function(style){map[style].forEach(function(alias){result[String(alias)]=style})})}return result}function Type(tag,options){options=options||{};Object.keys(options).forEach(function(name){if(-1===TYPE_CONSTRUCTOR_OPTIONS.indexOf(name)){throw new YAMLException('Unknown option "'+name+'" is met in definition of "'+tag+'" YAML type.')}});this.tag=tag;this.kind=options["kind"]||null;this.resolve=options["resolve"]||function(){return true};this.construct=options["construct"]||function(data){return data};this.instanceOf=options["instanceOf"]||null;this.predicate=options["predicate"]||null;this.represent=options["represent"]||null;this.defaultStyle=options["defaultStyle"]||null;this.styleAliases=compileStyleAliases(options["styleAliases"]||null);if(-1===YAML_NODE_KINDS.indexOf(this.kind)){throw new YAMLException('Unknown kind "'+this.kind+'" is specified for "'+tag+'" YAML type.')}}module.exports=Type},{"./exception":25}],35:[function(require,module,exports){"use strict";var NodeBuffer=require("buffer").Buffer;var Type=require("../type");var BASE64_MAP="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";function resolveYamlBinary(data){if(null===data){return false}var code,idx,bitlen=0,len=0,max=data.length,map=BASE64_MAP;for(idx=0;idx<max;idx++){code=map.indexOf(data.charAt(idx));if(code>64){continue}if(code<0){return false}bitlen+=6}return bitlen%8===0}function constructYamlBinary(data){var code,idx,tailbits,input=data.replace(/[\r\n=]/g,""),max=input.length,map=BASE64_MAP,bits=0,result=[];for(idx=0;idx<max;idx++){if(idx%4===0&&idx){result.push(bits>>16&255);result.push(bits>>8&255);result.push(bits&255)}bits=bits<<6|map.indexOf(input.charAt(idx))}tailbits=max%4*6;if(tailbits===0){result.push(bits>>16&255);result.push(bits>>8&255);result.push(bits&255)}else if(tailbits===18){result.push(bits>>10&255);result.push(bits>>2&255)}else if(tailbits===12){result.push(bits>>4&255)}if(NodeBuffer){return new NodeBuffer(result)}return result}function representYamlBinary(object){var result="",bits=0,idx,tail,max=object.length,map=BASE64_MAP;for(idx=0;idx<max;idx++){if(idx%3===0&&idx){result+=map[bits>>18&63];result+=map[bits>>12&63];result+=map[bits>>6&63];result+=map[bits&63]}bits=(bits<<8)+object[idx]}tail=max%3;if(tail===0){result+=map[bits>>18&63];result+=map[bits>>12&63];result+=map[bits>>6&63];result+=map[bits&63]}else if(tail===2){result+=map[bits>>10&63];result+=map[bits>>4&63];result+=map[bits<<2&63];result+=map[64]}else if(tail===1){result+=map[bits>>2&63];result+=map[bits<<4&63];result+=map[64];result+=map[64]}return result}function isBinary(object){return NodeBuffer&&NodeBuffer.isBuffer(object)}module.exports=new Type("tag:yaml.org,2002:binary",{kind:"scalar",resolve:resolveYamlBinary,construct:constructYamlBinary,predicate:isBinary,represent:representYamlBinary})},{"../type":34,buffer:12}],36:[function(require,module,exports){"use strict";var Type=require("../type");function resolveYamlBoolean(data){if(null===data){return false}var max=data.length;return max===4&&(data==="true"||data==="True"||data==="TRUE")||max===5&&(data==="false"||data==="False"||data==="FALSE")}function constructYamlBoolean(data){return data==="true"||data==="True"||data==="TRUE"}function isBoolean(object){return"[object Boolean]"===Object.prototype.toString.call(object)}module.exports=new Type("tag:yaml.org,2002:bool",{kind:"scalar",resolve:resolveYamlBoolean,construct:constructYamlBoolean,predicate:isBoolean,represent:{lowercase:function(object){return object?"true":"false"},uppercase:function(object){return object?"TRUE":"FALSE"},camelcase:function(object){return object?"True":"False"}},defaultStyle:"lowercase"})},{"../type":34}],37:[function(require,module,exports){"use strict";var common=require("../common");var Type=require("../type");var YAML_FLOAT_PATTERN=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)\\.[0-9_]*(?:[eE][-+][0-9]+)?"+"|\\.[0-9_]+(?:[eE][-+][0-9]+)?"+"|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*"+"|[-+]?\\.(?:inf|Inf|INF)"+"|\\.(?:nan|NaN|NAN))$");function resolveYamlFloat(data){if(null===data){return false}var value,sign,base,digits;if(!YAML_FLOAT_PATTERN.test(data)){return false}return true}function constructYamlFloat(data){var value,sign,base,digits;value=data.replace(/_/g,"").toLowerCase();sign="-"===value[0]?-1:1;digits=[];if(0<="+-".indexOf(value[0])){value=value.slice(1)}if(".inf"===value){return 1===sign?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY}else if(".nan"===value){return NaN}else if(0<=value.indexOf(":")){value.split(":").forEach(function(v){digits.unshift(parseFloat(v,10))});value=0;base=1;digits.forEach(function(d){value+=d*base;base*=60});return sign*value}return sign*parseFloat(value,10)}function representYamlFloat(object,style){if(isNaN(object)){switch(style){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}}else if(Number.POSITIVE_INFINITY===object){switch(style){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}}else if(Number.NEGATIVE_INFINITY===object){switch(style){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}}else if(common.isNegativeZero(object)){return"-0.0"}return object.toString(10)}function isFloat(object){return"[object Number]"===Object.prototype.toString.call(object)&&(0!==object%1||common.isNegativeZero(object))}module.exports=new Type("tag:yaml.org,2002:float",{kind:"scalar",resolve:resolveYamlFloat,construct:constructYamlFloat,predicate:isFloat,represent:representYamlFloat,defaultStyle:"lowercase"})},{"../common":23,"../type":34}],38:[function(require,module,exports){"use strict";var common=require("../common");var Type=require("../type");function isHexCode(c){return 48<=c&&c<=57||65<=c&&c<=70||97<=c&&c<=102}function isOctCode(c){return 48<=c&&c<=55}function isDecCode(c){return 48<=c&&c<=57}function resolveYamlInteger(data){if(null===data){return false}var max=data.length,index=0,hasDigits=false,ch;if(!max){return false}ch=data[index];if(ch==="-"||ch==="+"){ch=data[++index]}if(ch==="0"){if(index+1===max){return true}ch=data[++index];if(ch==="b"){index++;for(;index<max;index++){ch=data[index];if(ch==="_"){continue}if(ch!=="0"&&ch!=="1"){return false}hasDigits=true}return hasDigits}if(ch==="x"){index++;for(;index<max;index++){ch=data[index];if(ch==="_"){continue}if(!isHexCode(data.charCodeAt(index))){return false}hasDigits=true}return hasDigits}for(;index<max;index++){ch=data[index];if(ch==="_"){continue}if(!isOctCode(data.charCodeAt(index))){return false}hasDigits=true}return hasDigits}for(;index<max;index++){ch=data[index];if(ch==="_"){continue}if(ch===":"){break}if(!isDecCode(data.charCodeAt(index))){return false}hasDigits=true}if(!hasDigits){return false}if(ch!==":"){return true}return/^(:[0-5]?[0-9])+$/.test(data.slice(index))}function constructYamlInteger(data){var value=data,sign=1,ch,base,digits=[];if(value.indexOf("_")!==-1){value=value.replace(/_/g,"")}ch=value[0];if(ch==="-"||ch==="+"){if(ch==="-"){sign=-1}value=value.slice(1);ch=value[0]}if("0"===value){return 0}if(ch==="0"){if(value[1]==="b"){return sign*parseInt(value.slice(2),2)}if(value[1]==="x"){return sign*parseInt(value,16)}return sign*parseInt(value,8)}if(value.indexOf(":")!==-1){value.split(":").forEach(function(v){digits.unshift(parseInt(v,10))});value=0;base=1;digits.forEach(function(d){value+=d*base;base*=60});return sign*value}return sign*parseInt(value,10)}function isInteger(object){return"[object Number]"===Object.prototype.toString.call(object)&&(0===object%1&&!common.isNegativeZero(object))}module.exports=new Type("tag:yaml.org,2002:int",{kind:"scalar",resolve:resolveYamlInteger,construct:constructYamlInteger,predicate:isInteger,represent:{binary:function(object){return"0b"+object.toString(2)},octal:function(object){return"0"+object.toString(8)},decimal:function(object){return object.toString(10)},hexadecimal:function(object){return"0x"+object.toString(16).toUpperCase()}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},{"../common":23,"../type":34}],39:[function(require,module,exports){"use strict";var esprima;try{esprima=require("esprima")}catch(_){if(typeof window!=="undefined"){esprima=window.esprima}}var Type=require("../../type");function resolveJavascriptFunction(data){if(null===data){return false}try{var source="("+data+")",ast=esprima.parse(source,{range:true}),params=[],body;if("Program"!==ast.type||1!==ast.body.length||"ExpressionStatement"!==ast.body[0].type||"FunctionExpression"!==ast.body[0].expression.type){return false}return true}catch(err){return false}}function constructJavascriptFunction(data){var source="("+data+")",ast=esprima.parse(source,{range:true}),params=[],body;if("Program"!==ast.type||1!==ast.body.length||"ExpressionStatement"!==ast.body[0].type||"FunctionExpression"!==ast.body[0].expression.type){throw new Error("Failed to resolve function")}ast.body[0].expression.params.forEach(function(param){params.push(param.name)});body=ast.body[0].expression.body.range;return new Function(params,source.slice(body[0]+1,body[1]-1))}function representJavascriptFunction(object){return object.toString()}function isFunction(object){return"[object Function]"===Object.prototype.toString.call(object)}module.exports=new Type("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:resolveJavascriptFunction,construct:constructJavascriptFunction,predicate:isFunction,represent:representJavascriptFunction})},{"../../type":34,esprima:51}],40:[function(require,module,exports){"use strict";var Type=require("../../type");function resolveJavascriptRegExp(data){if(null===data){return false}if(0===data.length){return false}var regexp=data,tail=/\/([gim]*)$/.exec(data),modifiers="";if("/"===regexp[0]){if(tail){modifiers=tail[1]}if(modifiers.length>3){return false}if(regexp[regexp.length-modifiers.length-1]!=="/"){return false}regexp=regexp.slice(1,regexp.length-modifiers.length-1)}try{var dummy=new RegExp(regexp,modifiers);return true}catch(error){return false}}function constructJavascriptRegExp(data){var regexp=data,tail=/\/([gim]*)$/.exec(data),modifiers="";if("/"===regexp[0]){if(tail){modifiers=tail[1]}regexp=regexp.slice(1,regexp.length-modifiers.length-1)}return new RegExp(regexp,modifiers)}function representJavascriptRegExp(object){var result="/"+object.source+"/";if(object.global){result+="g"}if(object.multiline){result+="m"}if(object.ignoreCase){result+="i"}return result}function isRegExp(object){return"[object RegExp]"===Object.prototype.toString.call(object)}module.exports=new Type("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:resolveJavascriptRegExp,construct:constructJavascriptRegExp,predicate:isRegExp,represent:representJavascriptRegExp})},{"../../type":34}],41:[function(require,module,exports){"use strict";var Type=require("../../type");function resolveJavascriptUndefined(){return true}function constructJavascriptUndefined(){return undefined}function representJavascriptUndefined(){return""}function isUndefined(object){return"undefined"===typeof object}module.exports=new Type("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:resolveJavascriptUndefined,construct:constructJavascriptUndefined,predicate:isUndefined,represent:representJavascriptUndefined})},{"../../type":34}],42:[function(require,module,exports){"use strict";var Type=require("../type");module.exports=new Type("tag:yaml.org,2002:map",{kind:"mapping",construct:function(data){return null!==data?data:{}}})},{"../type":34}],43:[function(require,module,exports){"use strict";var Type=require("../type");function resolveYamlMerge(data){return"<<"===data||null===data}module.exports=new Type("tag:yaml.org,2002:merge",{kind:"scalar",resolve:resolveYamlMerge})},{"../type":34}],44:[function(require,module,exports){"use strict";var Type=require("../type");function resolveYamlNull(data){if(null===data){return true}var max=data.length;return max===1&&data==="~"||max===4&&(data==="null"||data==="Null"||data==="NULL")}function constructYamlNull(){return null}function isNull(object){return null===object}module.exports=new Type("tag:yaml.org,2002:null",{kind:"scalar",resolve:resolveYamlNull,construct:constructYamlNull,predicate:isNull,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},{"../type":34}],45:[function(require,module,exports){"use strict";var Type=require("../type");var _hasOwnProperty=Object.prototype.hasOwnProperty;var _toString=Object.prototype.toString;function resolveYamlOmap(data){if(null===data){return true}var objectKeys=[],index,length,pair,pairKey,pairHasKey,object=data;for(index=0,length=object.length;index<length;index+=1){pair=object[index];pairHasKey=false;if("[object Object]"!==_toString.call(pair)){return false}for(pairKey in pair){if(_hasOwnProperty.call(pair,pairKey)){if(!pairHasKey){pairHasKey=true}else{return false}}}if(!pairHasKey){return false}if(-1===objectKeys.indexOf(pairKey)){objectKeys.push(pairKey)}else{return false}}return true}function constructYamlOmap(data){return null!==data?data:[]}module.exports=new Type("tag:yaml.org,2002:omap",{kind:"sequence",resolve:resolveYamlOmap,construct:constructYamlOmap})},{"../type":34}],46:[function(require,module,exports){"use strict";var Type=require("../type");var _toString=Object.prototype.toString;function resolveYamlPairs(data){if(null===data){return true}var index,length,pair,keys,result,object=data;result=new Array(object.length);for(index=0,length=object.length;index<length;index+=1){pair=object[index];if("[object Object]"!==_toString.call(pair)){return false}keys=Object.keys(pair);if(1!==keys.length){return false}result[index]=[keys[0],pair[keys[0]]]}return true}function constructYamlPairs(data){if(null===data){return[]}var index,length,pair,keys,result,object=data;result=new Array(object.length);for(index=0,length=object.length;index<length;index+=1){pair=object[index];keys=Object.keys(pair);result[index]=[keys[0],pair[keys[0]]]}return result}module.exports=new Type("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:resolveYamlPairs,construct:constructYamlPairs})},{"../type":34}],47:[function(require,module,exports){"use strict";var Type=require("../type");module.exports=new Type("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(data){return null!==data?data:[]}})},{"../type":34}],48:[function(require,module,exports){"use strict";var Type=require("../type");var _hasOwnProperty=Object.prototype.hasOwnProperty;function resolveYamlSet(data){if(null===data){return true}var key,object=data;for(key in object){if(_hasOwnProperty.call(object,key)){if(null!==object[key]){return false}}}return true}function constructYamlSet(data){return null!==data?data:{}}module.exports=new Type("tag:yaml.org,2002:set",{kind:"mapping",resolve:resolveYamlSet,construct:constructYamlSet})},{"../type":34}],49:[function(require,module,exports){"use strict";var Type=require("../type");module.exports=new Type("tag:yaml.org,2002:str",{kind:"scalar",construct:function(data){return null!==data?data:""}})},{"../type":34}],50:[function(require,module,exports){"use strict";var Type=require("../type");var YAML_TIMESTAMP_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])"+"-([0-9][0-9]?)"+"-([0-9][0-9]?)"+"(?:(?:[Tt]|[ \\t]+)"+"([0-9][0-9]?)"+":([0-9][0-9])"+":([0-9][0-9])"+"(?:\\.([0-9]*))?"+"(?:[ \\t]*(Z|([-+])([0-9][0-9]?)"+"(?::([0-9][0-9]))?))?)?$");function resolveYamlTimestamp(data){if(null===data){return false}var match,year,month,day,hour,minute,second,fraction=0,delta=null,tz_hour,tz_minute,date;match=YAML_TIMESTAMP_REGEXP.exec(data);if(null===match){return false}return true}function constructYamlTimestamp(data){var match,year,month,day,hour,minute,second,fraction=0,delta=null,tz_hour,tz_minute,date;match=YAML_TIMESTAMP_REGEXP.exec(data);if(null===match){throw new Error("Date resolve error")}year=+match[1];month=+match[2]-1;day=+match[3];if(!match[4]){return new Date(Date.UTC(year,month,day))}hour=+match[4];minute=+match[5];second=+match[6];if(match[7]){fraction=match[7].slice(0,3);while(fraction.length<3){fraction+="0"}fraction=+fraction}if(match[9]){tz_hour=+match[10];tz_minute=+(match[11]||0);delta=(tz_hour*60+tz_minute)*6e4;if("-"===match[9]){delta=-delta}}date=new Date(Date.UTC(year,month,day,hour,minute,second,fraction));if(delta){date.setTime(date.getTime()-delta)}return date}function representYamlTimestamp(object){return object.toISOString()}module.exports=new Type("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:resolveYamlTimestamp,construct:constructYamlTimestamp,instanceOf:Date,represent:representYamlTimestamp})},{"../type":34}],51:[function(require,module,exports){(function(root,factory){"use strict";if(typeof define==="function"&&define.amd){define(["exports"],factory)}else if(typeof exports!=="undefined"){factory(exports)}else{factory(root.esprima={})}})(this,function(exports){"use strict";var Token,TokenName,FnExprTokens,Syntax,PlaceHolders,Messages,Regex,source,strict,sourceType,index,lineNumber,lineStart,hasLineTerminator,lastIndex,lastLineNumber,lastLineStart,startIndex,startLineNumber,startLineStart,scanning,length,lookahead,state,extra,isBindingElement,isAssignmentTarget,firstCoverInitializedNameError;Token={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8,RegularExpression:9,Template:10};TokenName={};TokenName[Token.BooleanLiteral]="Boolean";TokenName[Token.EOF]="<end>";TokenName[Token.Identifier]="Identifier";TokenName[Token.Keyword]="Keyword";TokenName[Token.NullLiteral]="Null";TokenName[Token.NumericLiteral]="Numeric";TokenName[Token.Punctuator]="Punctuator";TokenName[Token.StringLiteral]="String";TokenName[Token.RegularExpression]="RegularExpression";TokenName[Token.Template]="Template";FnExprTokens=["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="];Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"};PlaceHolders={ArrowParameterPlaceHolder:"ArrowParameterPlaceHolder"};Messages={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",DefaultRestParameter:"Unexpected token =",ObjectPatternAsRestParameter:"Unexpected token {",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ConstructorSpecialMethod:"Class constructor may not be an accessor",DuplicateConstructor:"A class may only have one constructor",StaticPrototype:"Classes may not have static property named prototype",MissingFromClause:"Unexpected token",NoAsAfterImportNamespace:"Unexpected token",InvalidModuleSpecifier:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalExportDeclaration:"Unexpected token"};Regex={NonAsciiIdentifierStart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢲऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"), +NonAsciiIdentifierPart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԯԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠ-ࢲࣤ-ॣ०-९ॱ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఀ-ఃఅ-ఌఎ-ఐఒ-నప-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಁ-ಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲഁ-ഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟ෦-෯ෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤞᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧ᪰-᪽ᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶ᳸᳹ᴀ-᷵᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚝꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꧠ-ꧾꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︭︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")};function assert(condition,message){if(!condition){throw new Error("ASSERT: "+message)}}function isDecimalDigit(ch){return ch>=48&&ch<=57}function isHexDigit(ch){return"0123456789abcdefABCDEF".indexOf(ch)>=0}function isOctalDigit(ch){return"01234567".indexOf(ch)>=0}function octalToDecimal(ch){var octal=ch!=="0",code="01234567".indexOf(ch);if(index<length&&isOctalDigit(source[index])){octal=true;code=code*8+"01234567".indexOf(source[index++]);if("0123".indexOf(ch)>=0&&index<length&&isOctalDigit(source[index])){code=code*8+"01234567".indexOf(source[index++])}}return{code:code,octal:octal}}function isWhiteSpace(ch){return ch===32||ch===9||ch===11||ch===12||ch===160||ch>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(ch)>=0}function isLineTerminator(ch){return ch===10||ch===13||ch===8232||ch===8233}function isIdentifierStart(ch){return ch===36||ch===95||ch>=65&&ch<=90||ch>=97&&ch<=122||ch===92||ch>=128&&Regex.NonAsciiIdentifierStart.test(String.fromCharCode(ch))}function isIdentifierPart(ch){return ch===36||ch===95||ch>=65&&ch<=90||ch>=97&&ch<=122||ch>=48&&ch<=57||ch===92||ch>=128&&Regex.NonAsciiIdentifierPart.test(String.fromCharCode(ch))}function isFutureReservedWord(id){switch(id){case"enum":case"export":case"import":case"super":return true;default:return false}}function isStrictModeReservedWord(id){switch(id){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return true;default:return false}}function isRestrictedWord(id){return id==="eval"||id==="arguments"}function isKeyword(id){switch(id.length){case 2:return id==="if"||id==="in"||id==="do";case 3:return id==="var"||id==="for"||id==="new"||id==="try"||id==="let";case 4:return id==="this"||id==="else"||id==="case"||id==="void"||id==="with"||id==="enum";case 5:return id==="while"||id==="break"||id==="catch"||id==="throw"||id==="const"||id==="yield"||id==="class"||id==="super";case 6:return id==="return"||id==="typeof"||id==="delete"||id==="switch"||id==="export"||id==="import";case 7:return id==="default"||id==="finally"||id==="extends";case 8:return id==="function"||id==="continue"||id==="debugger";case 10:return id==="instanceof";default:return false}}function addComment(type,value,start,end,loc){var comment;assert(typeof start==="number","Comment must have valid position");state.lastCommentStart=start;comment={type:type,value:value};if(extra.range){comment.range=[start,end]}if(extra.loc){comment.loc=loc}extra.comments.push(comment);if(extra.attachComment){extra.leadingComments.push(comment);extra.trailingComments.push(comment)}}function skipSingleLineComment(offset){var start,loc,ch,comment;start=index-offset;loc={start:{line:lineNumber,column:index-lineStart-offset}};while(index<length){ch=source.charCodeAt(index);++index;if(isLineTerminator(ch)){hasLineTerminator=true;if(extra.comments){comment=source.slice(start+offset,index-1);loc.end={line:lineNumber,column:index-lineStart-1};addComment("Line",comment,start,index-1,loc)}if(ch===13&&source.charCodeAt(index)===10){++index}++lineNumber;lineStart=index;return}}if(extra.comments){comment=source.slice(start+offset,index);loc.end={line:lineNumber,column:index-lineStart};addComment("Line",comment,start,index,loc)}}function skipMultiLineComment(){var start,loc,ch,comment;if(extra.comments){start=index-2;loc={start:{line:lineNumber,column:index-lineStart-2}}}while(index<length){ch=source.charCodeAt(index);if(isLineTerminator(ch)){if(ch===13&&source.charCodeAt(index+1)===10){++index}hasLineTerminator=true;++lineNumber;++index;lineStart=index}else if(ch===42){if(source.charCodeAt(index+1)===47){++index;++index;if(extra.comments){comment=source.slice(start+2,index-2);loc.end={line:lineNumber,column:index-lineStart};addComment("Block",comment,start,index,loc)}return}++index}else{++index}}if(extra.comments){loc.end={line:lineNumber,column:index-lineStart};comment=source.slice(start+2,index);addComment("Block",comment,start,index,loc)}tolerateUnexpectedToken()}function skipComment(){var ch,start;hasLineTerminator=false;start=index===0;while(index<length){ch=source.charCodeAt(index);if(isWhiteSpace(ch)){++index}else if(isLineTerminator(ch)){hasLineTerminator=true;++index;if(ch===13&&source.charCodeAt(index)===10){++index}++lineNumber;lineStart=index;start=true}else if(ch===47){ch=source.charCodeAt(index+1);if(ch===47){++index;++index;skipSingleLineComment(2);start=true}else if(ch===42){++index;++index;skipMultiLineComment()}else{break}}else if(start&&ch===45){if(source.charCodeAt(index+1)===45&&source.charCodeAt(index+2)===62){index+=3;skipSingleLineComment(3)}else{break}}else if(ch===60){if(source.slice(index+1,index+4)==="!--"){++index;++index;++index;++index;skipSingleLineComment(4)}else{break}}else{break}}}function scanHexEscape(prefix){var i,len,ch,code=0;len=prefix==="u"?4:2;for(i=0;i<len;++i){if(index<length&&isHexDigit(source[index])){ch=source[index++];code=code*16+"0123456789abcdef".indexOf(ch.toLowerCase())}else{return""}}return String.fromCharCode(code)}function scanUnicodeCodePointEscape(){var ch,code,cu1,cu2;ch=source[index];code=0;if(ch==="}"){throwUnexpectedToken()}while(index<length){ch=source[index++];if(!isHexDigit(ch)){break}code=code*16+"0123456789abcdef".indexOf(ch.toLowerCase())}if(code>1114111||ch!=="}"){throwUnexpectedToken()}if(code<=65535){return String.fromCharCode(code)}cu1=(code-65536>>10)+55296;cu2=(code-65536&1023)+56320;return String.fromCharCode(cu1,cu2)}function getEscapedIdentifier(){var ch,id;ch=source.charCodeAt(index++);id=String.fromCharCode(ch);if(ch===92){if(source.charCodeAt(index)!==117){throwUnexpectedToken()}++index;ch=scanHexEscape("u");if(!ch||ch==="\\"||!isIdentifierStart(ch.charCodeAt(0))){throwUnexpectedToken()}id=ch}while(index<length){ch=source.charCodeAt(index);if(!isIdentifierPart(ch)){break}++index;id+=String.fromCharCode(ch);if(ch===92){id=id.substr(0,id.length-1);if(source.charCodeAt(index)!==117){throwUnexpectedToken()}++index;ch=scanHexEscape("u");if(!ch||ch==="\\"||!isIdentifierPart(ch.charCodeAt(0))){throwUnexpectedToken()}id+=ch}}return id}function getIdentifier(){var start,ch;start=index++;while(index<length){ch=source.charCodeAt(index);if(ch===92){index=start;return getEscapedIdentifier()}if(isIdentifierPart(ch)){++index}else{break}}return source.slice(start,index)}function scanIdentifier(){var start,id,type;start=index;id=source.charCodeAt(index)===92?getEscapedIdentifier():getIdentifier();if(id.length===1){type=Token.Identifier}else if(isKeyword(id)){type=Token.Keyword}else if(id==="null"){type=Token.NullLiteral}else if(id==="true"||id==="false"){type=Token.BooleanLiteral}else{type=Token.Identifier}return{type:type,value:id,lineNumber:lineNumber,lineStart:lineStart,start:start,end:index}}function scanPunctuator(){var token,str;token={type:Token.Punctuator,value:"",lineNumber:lineNumber,lineStart:lineStart,start:index,end:index};str=source[index];switch(str){case"(":if(extra.tokenize){extra.openParenToken=extra.tokens.length}++index;break;case"{":if(extra.tokenize){extra.openCurlyToken=extra.tokens.length}state.curlyStack.push("{");++index;break;case".":++index;if(source[index]==="."&&source[index+1]==="."){index+=2;str="..."}break;case"}":++index;state.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++index;break;default:str=source.substr(index,4);if(str===">>>="){index+=4}else{str=str.substr(0,3);if(str==="==="||str==="!=="||str===">>>"||str==="<<="||str===">>="){index+=3}else{str=str.substr(0,2);if(str==="&&"||str==="||"||str==="=="||str==="!="||str==="+="||str==="-="||str==="*="||str==="/="||str==="++"||str==="--"||str==="<<"||str===">>"||str==="&="||str==="|="||str==="^="||str==="%="||str==="<="||str===">="||str==="=>"){index+=2}else{str=source[index];if("<>=!+-*%&|^/".indexOf(str)>=0){++index}}}}}if(index===token.start){throwUnexpectedToken()}token.end=index;token.value=str;return token}function scanHexLiteral(start){var number="";while(index<length){if(!isHexDigit(source[index])){break}number+=source[index++]}if(number.length===0){throwUnexpectedToken()}if(isIdentifierStart(source.charCodeAt(index))){throwUnexpectedToken()}return{type:Token.NumericLiteral,value:parseInt("0x"+number,16),lineNumber:lineNumber,lineStart:lineStart,start:start,end:index}}function scanBinaryLiteral(start){var ch,number;number="";while(index<length){ch=source[index];if(ch!=="0"&&ch!=="1"){break}number+=source[index++]}if(number.length===0){throwUnexpectedToken()}if(index<length){ch=source.charCodeAt(index);if(isIdentifierStart(ch)||isDecimalDigit(ch)){throwUnexpectedToken()}}return{type:Token.NumericLiteral,value:parseInt(number,2),lineNumber:lineNumber,lineStart:lineStart,start:start,end:index}}function scanOctalLiteral(prefix,start){var number,octal;if(isOctalDigit(prefix)){octal=true;number="0"+source[index++]}else{octal=false;++index;number=""}while(index<length){if(!isOctalDigit(source[index])){break}number+=source[index++]}if(!octal&&number.length===0){throwUnexpectedToken()}if(isIdentifierStart(source.charCodeAt(index))||isDecimalDigit(source.charCodeAt(index))){throwUnexpectedToken()}return{type:Token.NumericLiteral,value:parseInt(number,8),octal:octal,lineNumber:lineNumber,lineStart:lineStart,start:start,end:index}}function isImplicitOctalLiteral(){var i,ch;for(i=index+1;i<length;++i){ch=source[i];if(ch==="8"||ch==="9"){return false}if(!isOctalDigit(ch)){return true}}return true}function scanNumericLiteral(){var number,start,ch;ch=source[index];assert(isDecimalDigit(ch.charCodeAt(0))||ch===".","Numeric literal must start with a decimal digit or a decimal point");start=index;number="";if(ch!=="."){number=source[index++];ch=source[index];if(number==="0"){if(ch==="x"||ch==="X"){++index;return scanHexLiteral(start)}if(ch==="b"||ch==="B"){++index;return scanBinaryLiteral(start)}if(ch==="o"||ch==="O"){return scanOctalLiteral(ch,start)}if(isOctalDigit(ch)){if(isImplicitOctalLiteral()){return scanOctalLiteral(ch,start)}}}while(isDecimalDigit(source.charCodeAt(index))){number+=source[index++]}ch=source[index]}if(ch==="."){number+=source[index++];while(isDecimalDigit(source.charCodeAt(index))){number+=source[index++]}ch=source[index]}if(ch==="e"||ch==="E"){number+=source[index++];ch=source[index];if(ch==="+"||ch==="-"){number+=source[index++]}if(isDecimalDigit(source.charCodeAt(index))){while(isDecimalDigit(source.charCodeAt(index))){number+=source[index++]}}else{throwUnexpectedToken()}}if(isIdentifierStart(source.charCodeAt(index))){throwUnexpectedToken()}return{type:Token.NumericLiteral,value:parseFloat(number),lineNumber:lineNumber,lineStart:lineStart,start:start,end:index}}function scanStringLiteral(){var str="",quote,start,ch,unescaped,octToDec,octal=false;quote=source[index];assert(quote==="'"||quote==='"',"String literal must starts with a quote");start=index;++index;while(index<length){ch=source[index++];if(ch===quote){quote="";break}else if(ch==="\\"){ch=source[index++];if(!ch||!isLineTerminator(ch.charCodeAt(0))){switch(ch){case"u":case"x":if(source[index]==="{"){++index;str+=scanUnicodeCodePointEscape()}else{unescaped=scanHexEscape(ch);if(!unescaped){throw throwUnexpectedToken()}str+=unescaped}break;case"n":str+="\n";break;case"r":str+="\r";break;case"t":str+=" ";break;case"b":str+="\b";break;case"f":str+="\f";break;case"v":str+=" ";break;case"8":case"9":throw throwUnexpectedToken();default:if(isOctalDigit(ch)){octToDec=octalToDecimal(ch);octal=octToDec.octal||octal;str+=String.fromCharCode(octToDec.code)}else{str+=ch}break}}else{++lineNumber;if(ch==="\r"&&source[index]==="\n"){++index}lineStart=index}}else if(isLineTerminator(ch.charCodeAt(0))){break}else{str+=ch}}if(quote!==""){throwUnexpectedToken()}return{type:Token.StringLiteral,value:str,octal:octal,lineNumber:startLineNumber,lineStart:startLineStart,start:start,end:index}}function scanTemplate(){var cooked="",ch,start,rawOffset,terminated,head,tail,restore,unescaped;terminated=false;tail=false;start=index;head=source[index]==="`";rawOffset=2;++index;while(index<length){ch=source[index++];if(ch==="`"){rawOffset=1;tail=true;terminated=true;break}else if(ch==="$"){if(source[index]==="{"){state.curlyStack.push("${");++index;terminated=true;break}cooked+=ch}else if(ch==="\\"){ch=source[index++];if(!isLineTerminator(ch.charCodeAt(0))){switch(ch){case"n":cooked+="\n";break;case"r":cooked+="\r";break;case"t":cooked+=" ";break;case"u":case"x":if(source[index]==="{"){++index;cooked+=scanUnicodeCodePointEscape()}else{restore=index;unescaped=scanHexEscape(ch);if(unescaped){cooked+=unescaped}else{index=restore;cooked+=ch}}break;case"b":cooked+="\b";break;case"f":cooked+="\f";break;case"v":cooked+=" ";break;default:if(ch==="0"){if(isDecimalDigit(source.charCodeAt(index))){throwError(Messages.TemplateOctalLiteral)}cooked+="\x00"}else if(isOctalDigit(ch)){throwError(Messages.TemplateOctalLiteral)}else{cooked+=ch}break}}else{++lineNumber;if(ch==="\r"&&source[index]==="\n"){++index}lineStart=index}}else if(isLineTerminator(ch.charCodeAt(0))){++lineNumber;if(ch==="\r"&&source[index]==="\n"){++index}lineStart=index;cooked+="\n"}else{cooked+=ch}}if(!terminated){throwUnexpectedToken()}if(!head){state.curlyStack.pop()}return{type:Token.Template,value:{cooked:cooked,raw:source.slice(start+1,index-rawOffset)},head:head,tail:tail,lineNumber:lineNumber,lineStart:lineStart,start:start,end:index}}function testRegExp(pattern,flags){var tmp=pattern;if(flags.indexOf("u")>=0){tmp=tmp.replace(/\\u\{([0-9a-fA-F]+)\}/g,function($0,$1){if(parseInt($1,16)<=1114111){return"x"}throwUnexpectedToken(null,Messages.InvalidRegExp)}).replace(/\\u([a-fA-F0-9]{4})|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x")}try{RegExp(tmp)}catch(e){throwUnexpectedToken(null,Messages.InvalidRegExp)}try{return new RegExp(pattern,flags)}catch(exception){return null}}function scanRegExpBody(){var ch,str,classMarker,terminated,body;ch=source[index];assert(ch==="/","Regular expression literal must start with a slash");str=source[index++];classMarker=false;terminated=false;while(index<length){ch=source[index++];str+=ch;if(ch==="\\"){ch=source[index++];if(isLineTerminator(ch.charCodeAt(0))){throwUnexpectedToken(null,Messages.UnterminatedRegExp)}str+=ch}else if(isLineTerminator(ch.charCodeAt(0))){throwUnexpectedToken(null,Messages.UnterminatedRegExp)}else if(classMarker){if(ch==="]"){classMarker=false}}else{if(ch==="/"){terminated=true;break}else if(ch==="["){classMarker=true}}}if(!terminated){throwUnexpectedToken(null,Messages.UnterminatedRegExp)}body=str.substr(1,str.length-2);return{value:body,literal:str}}function scanRegExpFlags(){var ch,str,flags,restore;str="";flags="";while(index<length){ch=source[index];if(!isIdentifierPart(ch.charCodeAt(0))){break}++index;if(ch==="\\"&&index<length){ch=source[index];if(ch==="u"){++index;restore=index;ch=scanHexEscape("u");if(ch){flags+=ch;for(str+="\\u";restore<index;++restore){str+=source[restore]}}else{index=restore;flags+="u";str+="\\u"}tolerateUnexpectedToken()}else{str+="\\";tolerateUnexpectedToken()}}else{flags+=ch;str+=ch}}return{value:flags,literal:str}}function scanRegExp(){scanning=true;var start,body,flags,value;lookahead=null;skipComment();start=index;body=scanRegExpBody();flags=scanRegExpFlags();value=testRegExp(body.value,flags.value);scanning=false;if(extra.tokenize){return{type:Token.RegularExpression,value:value,regex:{pattern:body.value,flags:flags.value},lineNumber:lineNumber,lineStart:lineStart,start:start,end:index}}return{literal:body.literal+flags.literal,value:value,regex:{pattern:body.value,flags:flags.value},start:start,end:index}}function collectRegex(){var pos,loc,regex,token;skipComment();pos=index;loc={start:{line:lineNumber,column:index-lineStart}};regex=scanRegExp();loc.end={line:lineNumber,column:index-lineStart};if(!extra.tokenize){if(extra.tokens.length>0){token=extra.tokens[extra.tokens.length-1];if(token.range[0]===pos&&token.type==="Punctuator"){if(token.value==="/"||token.value==="/="){extra.tokens.pop()}}}extra.tokens.push({type:"RegularExpression",value:regex.literal,regex:regex.regex,range:[pos,index],loc:loc})}return regex}function isIdentifierName(token){return token.type===Token.Identifier||token.type===Token.Keyword||token.type===Token.BooleanLiteral||token.type===Token.NullLiteral}function advanceSlash(){var prevToken,checkToken;prevToken=extra.tokens[extra.tokens.length-1];if(!prevToken){return collectRegex()}if(prevToken.type==="Punctuator"){if(prevToken.value==="]"){return scanPunctuator()}if(prevToken.value===")"){checkToken=extra.tokens[extra.openParenToken-1];if(checkToken&&checkToken.type==="Keyword"&&(checkToken.value==="if"||checkToken.value==="while"||checkToken.value==="for"||checkToken.value==="with")){return collectRegex()}return scanPunctuator()}if(prevToken.value==="}"){if(extra.tokens[extra.openCurlyToken-3]&&extra.tokens[extra.openCurlyToken-3].type==="Keyword"){checkToken=extra.tokens[extra.openCurlyToken-4];if(!checkToken){return scanPunctuator()}}else if(extra.tokens[extra.openCurlyToken-4]&&extra.tokens[extra.openCurlyToken-4].type==="Keyword"){checkToken=extra.tokens[extra.openCurlyToken-5];if(!checkToken){return collectRegex()}}else{return scanPunctuator()}if(FnExprTokens.indexOf(checkToken.value)>=0){return scanPunctuator()}return collectRegex()}return collectRegex()}if(prevToken.type==="Keyword"&&prevToken.value!=="this"){return collectRegex()}return scanPunctuator()}function advance(){var ch,token;if(index>=length){return{type:Token.EOF,lineNumber:lineNumber,lineStart:lineStart,start:index,end:index}}ch=source.charCodeAt(index);if(isIdentifierStart(ch)){token=scanIdentifier();if(strict&&isStrictModeReservedWord(token.value)){token.type=Token.Keyword}return token}if(ch===40||ch===41||ch===59){return scanPunctuator()}if(ch===39||ch===34){return scanStringLiteral()}if(ch===46){if(isDecimalDigit(source.charCodeAt(index+1))){return scanNumericLiteral()}return scanPunctuator()}if(isDecimalDigit(ch)){return scanNumericLiteral()}if(extra.tokenize&&ch===47){return advanceSlash()}if(ch===96||ch===125&&state.curlyStack[state.curlyStack.length-1]==="${"){return scanTemplate()}return scanPunctuator()}function collectToken(){var loc,token,value,entry;loc={start:{line:lineNumber,column:index-lineStart}};token=advance();loc.end={line:lineNumber,column:index-lineStart};if(token.type!==Token.EOF){value=source.slice(token.start,token.end);entry={type:TokenName[token.type],value:value,range:[token.start,token.end],loc:loc};if(token.regex){entry.regex={pattern:token.regex.pattern,flags:token.regex.flags}}extra.tokens.push(entry)}return token}function lex(){var token;scanning=true;lastIndex=index;lastLineNumber=lineNumber;lastLineStart=lineStart;skipComment();token=lookahead;startIndex=index;startLineNumber=lineNumber;startLineStart=lineStart;lookahead=typeof extra.tokens!=="undefined"?collectToken():advance();scanning=false;return token}function peek(){scanning=true;skipComment();lastIndex=index;lastLineNumber=lineNumber;lastLineStart=lineStart;startIndex=index;startLineNumber=lineNumber;startLineStart=lineStart;lookahead=typeof extra.tokens!=="undefined"?collectToken():advance();scanning=false}function Position(){this.line=startLineNumber;this.column=startIndex-startLineStart}function SourceLocation(){this.start=new Position;this.end=null}function WrappingSourceLocation(startToken){this.start={line:startToken.lineNumber,column:startToken.start-startToken.lineStart};this.end=null}function Node(){if(extra.range){this.range=[startIndex,0]}if(extra.loc){this.loc=new SourceLocation}}function WrappingNode(startToken){if(extra.range){this.range=[startToken.start,0]}if(extra.loc){this.loc=new WrappingSourceLocation(startToken)}}WrappingNode.prototype=Node.prototype={processComment:function(){var lastChild,leadingComments,trailingComments,bottomRight=extra.bottomRightStack,i,comment,last=bottomRight[bottomRight.length-1];if(this.type===Syntax.Program){if(this.body.length>0){return}}if(extra.trailingComments.length>0){trailingComments=[];for(i=extra.trailingComments.length-1;i>=0;--i){comment=extra.trailingComments[i];if(comment.range[0]>=this.range[1]){trailingComments.unshift(comment);extra.trailingComments.splice(i,1)}}extra.trailingComments=[]}else{if(last&&last.trailingComments&&last.trailingComments[0].range[0]>=this.range[1]){trailingComments=last.trailingComments;delete last.trailingComments}}if(last){while(last&&last.range[0]>=this.range[0]){lastChild=last;last=bottomRight.pop()}}if(lastChild){if(lastChild.leadingComments&&lastChild.leadingComments[lastChild.leadingComments.length-1].range[1]<=this.range[0]){this.leadingComments=lastChild.leadingComments;lastChild.leadingComments=undefined}}else if(extra.leadingComments.length>0){leadingComments=[];for(i=extra.leadingComments.length-1;i>=0;--i){comment=extra.leadingComments[i];if(comment.range[1]<=this.range[0]){leadingComments.unshift(comment);extra.leadingComments.splice(i,1)}}}if(leadingComments&&leadingComments.length>0){this.leadingComments=leadingComments}if(trailingComments&&trailingComments.length>0){this.trailingComments=trailingComments}bottomRight.push(this)},finish:function(){if(extra.range){this.range[1]=lastIndex}if(extra.loc){this.loc.end={line:lastLineNumber,column:lastIndex-lastLineStart};if(extra.source){this.loc.source=extra.source}}if(extra.attachComment){this.processComment()}},finishArrayExpression:function(elements){this.type=Syntax.ArrayExpression;this.elements=elements;this.finish();return this},finishArrayPattern:function(elements){this.type=Syntax.ArrayPattern;this.elements=elements;this.finish();return this},finishArrowFunctionExpression:function(params,defaults,body,expression){this.type=Syntax.ArrowFunctionExpression;this.id=null;this.params=params;this.defaults=defaults;this.body=body;this.generator=false;this.expression=expression;this.finish();return this},finishAssignmentExpression:function(operator,left,right){this.type=Syntax.AssignmentExpression;this.operator=operator;this.left=left;this.right=right;this.finish();return this},finishAssignmentPattern:function(left,right){this.type=Syntax.AssignmentPattern;this.left=left;this.right=right;this.finish();return this},finishBinaryExpression:function(operator,left,right){this.type=operator==="||"||operator==="&&"?Syntax.LogicalExpression:Syntax.BinaryExpression;this.operator=operator;this.left=left;this.right=right;this.finish();return this},finishBlockStatement:function(body){this.type=Syntax.BlockStatement;this.body=body;this.finish();return this},finishBreakStatement:function(label){this.type=Syntax.BreakStatement;this.label=label;this.finish();return this},finishCallExpression:function(callee,args){this.type=Syntax.CallExpression;this.callee=callee;this.arguments=args;this.finish();return this},finishCatchClause:function(param,body){this.type=Syntax.CatchClause;this.param=param;this.body=body;this.finish();return this},finishClassBody:function(body){this.type=Syntax.ClassBody;this.body=body;this.finish();return this},finishClassDeclaration:function(id,superClass,body){this.type=Syntax.ClassDeclaration;this.id=id;this.superClass=superClass;this.body=body;this.finish();return this},finishClassExpression:function(id,superClass,body){this.type=Syntax.ClassExpression;this.id=id;this.superClass=superClass;this.body=body;this.finish();return this},finishConditionalExpression:function(test,consequent,alternate){this.type=Syntax.ConditionalExpression;this.test=test;this.consequent=consequent;this.alternate=alternate;this.finish();return this},finishContinueStatement:function(label){this.type=Syntax.ContinueStatement;this.label=label;this.finish();return this},finishDebuggerStatement:function(){this.type=Syntax.DebuggerStatement;this.finish();return this},finishDoWhileStatement:function(body,test){this.type=Syntax.DoWhileStatement;this.body=body;this.test=test;this.finish();return this},finishEmptyStatement:function(){this.type=Syntax.EmptyStatement;this.finish();return this},finishExpressionStatement:function(expression){this.type=Syntax.ExpressionStatement;this.expression=expression;this.finish();return this},finishForStatement:function(init,test,update,body){this.type=Syntax.ForStatement;this.init=init;this.test=test;this.update=update;this.body=body;this.finish();return this},finishForInStatement:function(left,right,body){this.type=Syntax.ForInStatement;this.left=left;this.right=right;this.body=body;this.each=false;this.finish();return this},finishFunctionDeclaration:function(id,params,defaults,body){this.type=Syntax.FunctionDeclaration;this.id=id;this.params=params;this.defaults=defaults;this.body=body;this.generator=false;this.expression=false;this.finish();return this},finishFunctionExpression:function(id,params,defaults,body){this.type=Syntax.FunctionExpression;this.id=id;this.params=params;this.defaults=defaults;this.body=body;this.generator=false;this.expression=false;this.finish();return this},finishIdentifier:function(name){this.type=Syntax.Identifier;this.name=name;this.finish();return this},finishIfStatement:function(test,consequent,alternate){this.type=Syntax.IfStatement;this.test=test;this.consequent=consequent;this.alternate=alternate;this.finish();return this},finishLabeledStatement:function(label,body){this.type=Syntax.LabeledStatement;this.label=label;this.body=body;this.finish();return this},finishLiteral:function(token){this.type=Syntax.Literal;this.value=token.value;this.raw=source.slice(token.start,token.end);if(token.regex){this.regex=token.regex}this.finish();return this},finishMemberExpression:function(accessor,object,property){this.type=Syntax.MemberExpression;this.computed=accessor==="[";this.object=object;this.property=property;this.finish();return this},finishNewExpression:function(callee,args){this.type=Syntax.NewExpression;this.callee=callee;this.arguments=args;this.finish();return this},finishObjectExpression:function(properties){this.type=Syntax.ObjectExpression;this.properties=properties;this.finish();return this},finishObjectPattern:function(properties){this.type=Syntax.ObjectPattern;this.properties=properties;this.finish();return this},finishPostfixExpression:function(operator,argument){this.type=Syntax.UpdateExpression;this.operator=operator;this.argument=argument;this.prefix=false;this.finish();return this},finishProgram:function(body){this.type=Syntax.Program;this.body=body;if(sourceType==="module"){this.sourceType=sourceType}this.finish();return this},finishProperty:function(kind,key,computed,value,method,shorthand){this.type=Syntax.Property;this.key=key;this.computed=computed;this.value=value;this.kind=kind;this.method=method;this.shorthand=shorthand;this.finish();return this},finishRestElement:function(argument){this.type=Syntax.RestElement;this.argument=argument;this.finish();return this},finishReturnStatement:function(argument){this.type=Syntax.ReturnStatement;this.argument=argument;this.finish();return this},finishSequenceExpression:function(expressions){this.type=Syntax.SequenceExpression;this.expressions=expressions;this.finish();return this},finishSpreadElement:function(argument){this.type=Syntax.SpreadElement;this.argument=argument;this.finish();return this},finishSwitchCase:function(test,consequent){this.type=Syntax.SwitchCase;this.test=test;this.consequent=consequent;this.finish();return this},finishSuper:function(){this.type=Syntax.Super;this.finish();return this},finishSwitchStatement:function(discriminant,cases){this.type=Syntax.SwitchStatement;this.discriminant=discriminant;this.cases=cases;this.finish();return this},finishTaggedTemplateExpression:function(tag,quasi){this.type=Syntax.TaggedTemplateExpression;this.tag=tag;this.quasi=quasi;this.finish();return this},finishTemplateElement:function(value,tail){this.type=Syntax.TemplateElement;this.value=value;this.tail=tail;this.finish();return this},finishTemplateLiteral:function(quasis,expressions){this.type=Syntax.TemplateLiteral;this.quasis=quasis;this.expressions=expressions;this.finish();return this},finishThisExpression:function(){this.type=Syntax.ThisExpression;this.finish();return this},finishThrowStatement:function(argument){this.type=Syntax.ThrowStatement;this.argument=argument;this.finish();return this},finishTryStatement:function(block,handler,finalizer){this.type=Syntax.TryStatement;this.block=block;this.guardedHandlers=[];this.handlers=handler?[handler]:[];this.handler=handler;this.finalizer=finalizer;this.finish();return this},finishUnaryExpression:function(operator,argument){this.type=operator==="++"||operator==="--"?Syntax.UpdateExpression:Syntax.UnaryExpression;this.operator=operator;this.argument=argument;this.prefix=true;this.finish();return this},finishVariableDeclaration:function(declarations){this.type=Syntax.VariableDeclaration;this.declarations=declarations;this.kind="var";this.finish();return this},finishLexicalDeclaration:function(declarations,kind){this.type=Syntax.VariableDeclaration;this.declarations=declarations;this.kind=kind;this.finish();return this},finishVariableDeclarator:function(id,init){this.type=Syntax.VariableDeclarator;this.id=id;this.init=init;this.finish();return this},finishWhileStatement:function(test,body){this.type=Syntax.WhileStatement;this.test=test;this.body=body;this.finish();return this},finishWithStatement:function(object,body){this.type=Syntax.WithStatement;this.object=object;this.body=body;this.finish();return this},finishExportSpecifier:function(local,exported){this.type=Syntax.ExportSpecifier;this.exported=exported||local;this.local=local;this.finish();return this},finishImportDefaultSpecifier:function(local){this.type=Syntax.ImportDefaultSpecifier;this.local=local;this.finish();return this},finishImportNamespaceSpecifier:function(local){this.type=Syntax.ImportNamespaceSpecifier;this.local=local;this.finish();return this},finishExportNamedDeclaration:function(declaration,specifiers,src){this.type=Syntax.ExportNamedDeclaration;this.declaration=declaration;this.specifiers=specifiers;this.source=src;this.finish();return this},finishExportDefaultDeclaration:function(declaration){this.type=Syntax.ExportDefaultDeclaration;this.declaration=declaration;this.finish();return this},finishExportAllDeclaration:function(src){this.type=Syntax.ExportAllDeclaration;this.source=src;this.finish();return this},finishImportSpecifier:function(local,imported){this.type=Syntax.ImportSpecifier;this.local=local||imported;this.imported=imported;this.finish();return this},finishImportDeclaration:function(specifiers,src){this.type=Syntax.ImportDeclaration;this.specifiers=specifiers;this.source=src;this.finish();return this}};function recordError(error){var e,existing;for(e=0;e<extra.errors.length;e++){existing=extra.errors[e];if(existing.index===error.index&&existing.message===error.message){return}}extra.errors.push(error)}function createError(line,pos,description){var error=new Error("Line "+line+": "+description); + +error.index=pos;error.lineNumber=line;error.column=pos-(scanning?lineStart:lastLineStart)+1;error.description=description;return error}function throwError(messageFormat){var args,msg;args=Array.prototype.slice.call(arguments,1);msg=messageFormat.replace(/%(\d)/g,function(whole,idx){assert(idx<args.length,"Message reference must be in range");return args[idx]});throw createError(lastLineNumber,lastIndex,msg)}function tolerateError(messageFormat){var args,msg,error;args=Array.prototype.slice.call(arguments,1);msg=messageFormat.replace(/%(\d)/g,function(whole,idx){assert(idx<args.length,"Message reference must be in range");return args[idx]});error=createError(lineNumber,lastIndex,msg);if(extra.errors){recordError(error)}else{throw error}}function unexpectedTokenError(token,message){var value,msg=message||Messages.UnexpectedToken;if(token){if(!message){msg=token.type===Token.EOF?Messages.UnexpectedEOS:token.type===Token.Identifier?Messages.UnexpectedIdentifier:token.type===Token.NumericLiteral?Messages.UnexpectedNumber:token.type===Token.StringLiteral?Messages.UnexpectedString:token.type===Token.Template?Messages.UnexpectedTemplate:Messages.UnexpectedToken;if(token.type===Token.Keyword){if(isFutureReservedWord(token.value)){msg=Messages.UnexpectedReserved}else if(strict&&isStrictModeReservedWord(token.value)){msg=Messages.StrictReservedWord}}}value=token.type===Token.Template?token.value.raw:token.value}else{value="ILLEGAL"}msg=msg.replace("%0",value);return token&&typeof token.lineNumber==="number"?createError(token.lineNumber,token.start,msg):createError(scanning?lineNumber:lastLineNumber,scanning?index:lastIndex,msg)}function throwUnexpectedToken(token,message){throw unexpectedTokenError(token,message)}function tolerateUnexpectedToken(token,message){var error=unexpectedTokenError(token,message);if(extra.errors){recordError(error)}else{throw error}}function expect(value){var token=lex();if(token.type!==Token.Punctuator||token.value!==value){throwUnexpectedToken(token)}}function expectCommaSeparator(){var token;if(extra.errors){token=lookahead;if(token.type===Token.Punctuator&&token.value===","){lex()}else if(token.type===Token.Punctuator&&token.value===";"){lex();tolerateUnexpectedToken(token)}else{tolerateUnexpectedToken(token,Messages.UnexpectedToken)}}else{expect(",")}}function expectKeyword(keyword){var token=lex();if(token.type!==Token.Keyword||token.value!==keyword){throwUnexpectedToken(token)}}function match(value){return lookahead.type===Token.Punctuator&&lookahead.value===value}function matchKeyword(keyword){return lookahead.type===Token.Keyword&&lookahead.value===keyword}function matchContextualKeyword(keyword){return lookahead.type===Token.Identifier&&lookahead.value===keyword}function matchAssign(){var op;if(lookahead.type!==Token.Punctuator){return false}op=lookahead.value;return op==="="||op==="*="||op==="/="||op==="%="||op==="+="||op==="-="||op==="<<="||op===">>="||op===">>>="||op==="&="||op==="^="||op==="|="}function consumeSemicolon(){if(source.charCodeAt(startIndex)===59||match(";")){lex();return}if(hasLineTerminator){return}lastIndex=startIndex;lastLineNumber=startLineNumber;lastLineStart=startLineStart;if(lookahead.type!==Token.EOF&&!match("}")){throwUnexpectedToken(lookahead)}}function isolateCoverGrammar(parser){var oldIsBindingElement=isBindingElement,oldIsAssignmentTarget=isAssignmentTarget,oldFirstCoverInitializedNameError=firstCoverInitializedNameError,result;isBindingElement=true;isAssignmentTarget=true;firstCoverInitializedNameError=null;result=parser();if(firstCoverInitializedNameError!==null){throwUnexpectedToken(firstCoverInitializedNameError)}isBindingElement=oldIsBindingElement;isAssignmentTarget=oldIsAssignmentTarget;firstCoverInitializedNameError=oldFirstCoverInitializedNameError;return result}function inheritCoverGrammar(parser){var oldIsBindingElement=isBindingElement,oldIsAssignmentTarget=isAssignmentTarget,oldFirstCoverInitializedNameError=firstCoverInitializedNameError,result;isBindingElement=true;isAssignmentTarget=true;firstCoverInitializedNameError=null;result=parser();isBindingElement=isBindingElement&&oldIsBindingElement;isAssignmentTarget=isAssignmentTarget&&oldIsAssignmentTarget;firstCoverInitializedNameError=oldFirstCoverInitializedNameError||firstCoverInitializedNameError;return result}function parseArrayPattern(){var node=new Node,elements=[],rest,restNode;expect("[");while(!match("]")){if(match(",")){lex();elements.push(null)}else{if(match("...")){restNode=new Node;lex();rest=parseVariableIdentifier();elements.push(restNode.finishRestElement(rest));break}else{elements.push(parsePatternWithDefault())}if(!match("]")){expect(",")}}}expect("]");return node.finishArrayPattern(elements)}function parsePropertyPattern(){var node=new Node,key,computed=match("["),init;if(lookahead.type===Token.Identifier){key=parseVariableIdentifier();if(match("=")){lex();init=parseAssignmentExpression();return node.finishProperty("init",key,false,new WrappingNode(key).finishAssignmentPattern(key,init),false,false)}else if(!match(":")){return node.finishProperty("init",key,false,key,false,true)}}else{key=parseObjectPropertyKey()}expect(":");init=parsePatternWithDefault();return node.finishProperty("init",key,computed,init,false,false)}function parseObjectPattern(){var node=new Node,properties=[];expect("{");while(!match("}")){properties.push(parsePropertyPattern());if(!match("}")){expect(",")}}lex();return node.finishObjectPattern(properties)}function parsePattern(){if(lookahead.type===Token.Identifier){return parseVariableIdentifier()}else if(match("[")){return parseArrayPattern()}else if(match("{")){return parseObjectPattern()}throwUnexpectedToken(lookahead)}function parsePatternWithDefault(){var startToken=lookahead,pattern,right;pattern=parsePattern();if(match("=")){lex();right=isolateCoverGrammar(parseAssignmentExpression);pattern=new WrappingNode(startToken).finishAssignmentPattern(pattern,right)}return pattern}function parseArrayInitialiser(){var elements=[],node=new Node,restSpread;expect("[");while(!match("]")){if(match(",")){lex();elements.push(null)}else if(match("...")){restSpread=new Node;lex();restSpread.finishSpreadElement(inheritCoverGrammar(parseAssignmentExpression));if(!match("]")){isAssignmentTarget=isBindingElement=false;expect(",")}elements.push(restSpread)}else{elements.push(inheritCoverGrammar(parseAssignmentExpression));if(!match("]")){expect(",")}}}lex();return node.finishArrayExpression(elements)}function parsePropertyFunction(node,paramInfo){var previousStrict,body;isAssignmentTarget=isBindingElement=false;previousStrict=strict;body=isolateCoverGrammar(parseFunctionSourceElements);if(strict&&paramInfo.firstRestricted){tolerateUnexpectedToken(paramInfo.firstRestricted,paramInfo.message)}if(strict&&paramInfo.stricted){tolerateUnexpectedToken(paramInfo.stricted,paramInfo.message)}strict=previousStrict;return node.finishFunctionExpression(null,paramInfo.params,paramInfo.defaults,body)}function parsePropertyMethodFunction(){var params,method,node=new Node;params=parseParams();method=parsePropertyFunction(node,params);return method}function parseObjectPropertyKey(){var token,node=new Node,expr;token=lex();switch(token.type){case Token.StringLiteral:case Token.NumericLiteral:if(strict&&token.octal){tolerateUnexpectedToken(token,Messages.StrictOctalLiteral)}return node.finishLiteral(token);case Token.Identifier:case Token.BooleanLiteral:case Token.NullLiteral:case Token.Keyword:return node.finishIdentifier(token.value);case Token.Punctuator:if(token.value==="["){expr=isolateCoverGrammar(parseAssignmentExpression);expect("]");return expr}break}throwUnexpectedToken(token)}function lookaheadPropertyName(){switch(lookahead.type){case Token.Identifier:case Token.StringLiteral:case Token.BooleanLiteral:case Token.NullLiteral:case Token.NumericLiteral:case Token.Keyword:return true;case Token.Punctuator:return lookahead.value==="["}return false}function tryParseMethodDefinition(token,key,computed,node){var value,options,methodNode;if(token.type===Token.Identifier){if(token.value==="get"&&lookaheadPropertyName()){computed=match("[");key=parseObjectPropertyKey();methodNode=new Node;expect("(");expect(")");value=parsePropertyFunction(methodNode,{params:[],defaults:[],stricted:null,firstRestricted:null,message:null});return node.finishProperty("get",key,computed,value,false,false)}else if(token.value==="set"&&lookaheadPropertyName()){computed=match("[");key=parseObjectPropertyKey();methodNode=new Node;expect("(");options={params:[],defaultCount:0,defaults:[],firstRestricted:null,paramSet:{}};if(match(")")){tolerateUnexpectedToken(lookahead)}else{parseParam(options);if(options.defaultCount===0){options.defaults=[]}}expect(")");value=parsePropertyFunction(methodNode,options);return node.finishProperty("set",key,computed,value,false,false)}}if(match("(")){value=parsePropertyMethodFunction();return node.finishProperty("init",key,computed,value,true,false)}return null}function checkProto(key,computed,hasProto){if(computed===false&&(key.type===Syntax.Identifier&&key.name==="__proto__"||key.type===Syntax.Literal&&key.value==="__proto__")){if(hasProto.value){tolerateError(Messages.DuplicateProtoProperty)}else{hasProto.value=true}}}function parseObjectProperty(hasProto){var token=lookahead,node=new Node,computed,key,maybeMethod,value;computed=match("[");key=parseObjectPropertyKey();maybeMethod=tryParseMethodDefinition(token,key,computed,node);if(maybeMethod){checkProto(maybeMethod.key,maybeMethod.computed,hasProto);return maybeMethod}checkProto(key,computed,hasProto);if(match(":")){lex();value=inheritCoverGrammar(parseAssignmentExpression);return node.finishProperty("init",key,computed,value,false,false)}if(token.type===Token.Identifier){if(match("=")){firstCoverInitializedNameError=lookahead;lex();value=isolateCoverGrammar(parseAssignmentExpression);return node.finishProperty("init",key,computed,new WrappingNode(token).finishAssignmentPattern(key,value),false,true)}return node.finishProperty("init",key,computed,key,false,true)}throwUnexpectedToken(lookahead)}function parseObjectInitialiser(){var properties=[],hasProto={value:false},node=new Node;expect("{");while(!match("}")){properties.push(parseObjectProperty(hasProto));if(!match("}")){expectCommaSeparator()}}expect("}");return node.finishObjectExpression(properties)}function reinterpretExpressionAsPattern(expr){var i;switch(expr.type){case Syntax.Identifier:case Syntax.MemberExpression:case Syntax.RestElement:case Syntax.AssignmentPattern:break;case Syntax.SpreadElement:expr.type=Syntax.RestElement;reinterpretExpressionAsPattern(expr.argument);break;case Syntax.ArrayExpression:expr.type=Syntax.ArrayPattern;for(i=0;i<expr.elements.length;i++){if(expr.elements[i]!==null){reinterpretExpressionAsPattern(expr.elements[i])}}break;case Syntax.ObjectExpression:expr.type=Syntax.ObjectPattern;for(i=0;i<expr.properties.length;i++){reinterpretExpressionAsPattern(expr.properties[i].value)}break;case Syntax.AssignmentExpression:expr.type=Syntax.AssignmentPattern;reinterpretExpressionAsPattern(expr.left);break;default:break}}function parseTemplateElement(option){var node,token;if(lookahead.type!==Token.Template||option.head&&!lookahead.head){throwUnexpectedToken()}node=new Node;token=lex();return node.finishTemplateElement({raw:token.value.raw,cooked:token.value.cooked},token.tail)}function parseTemplateLiteral(){var quasi,quasis,expressions,node=new Node;quasi=parseTemplateElement({head:true});quasis=[quasi];expressions=[];while(!quasi.tail){expressions.push(parseExpression());quasi=parseTemplateElement({head:false});quasis.push(quasi)}return node.finishTemplateLiteral(quasis,expressions)}function parseGroupExpression(){var expr,expressions,startToken,i;expect("(");if(match(")")){lex();if(!match("=>")){expect("=>")}return{type:PlaceHolders.ArrowParameterPlaceHolder,params:[]}}startToken=lookahead;if(match("...")){expr=parseRestElement();expect(")");if(!match("=>")){expect("=>")}return{type:PlaceHolders.ArrowParameterPlaceHolder,params:[expr]}}isBindingElement=true;expr=inheritCoverGrammar(parseAssignmentExpression);if(match(",")){isAssignmentTarget=false;expressions=[expr];while(startIndex<length){if(!match(",")){break}lex();if(match("...")){if(!isBindingElement){throwUnexpectedToken(lookahead)}expressions.push(parseRestElement());expect(")");if(!match("=>")){expect("=>")}isBindingElement=false;for(i=0;i<expressions.length;i++){reinterpretExpressionAsPattern(expressions[i])}return{type:PlaceHolders.ArrowParameterPlaceHolder,params:expressions}}expressions.push(inheritCoverGrammar(parseAssignmentExpression))}expr=new WrappingNode(startToken).finishSequenceExpression(expressions)}expect(")");if(match("=>")){if(!isBindingElement){throwUnexpectedToken(lookahead)}if(expr.type===Syntax.SequenceExpression){for(i=0;i<expr.expressions.length;i++){reinterpretExpressionAsPattern(expr.expressions[i])}}else{reinterpretExpressionAsPattern(expr)}expr={type:PlaceHolders.ArrowParameterPlaceHolder,params:expr.type===Syntax.SequenceExpression?expr.expressions:[expr]}}isBindingElement=false;return expr}function parsePrimaryExpression(){var type,token,expr,node;if(match("(")){isBindingElement=false;return inheritCoverGrammar(parseGroupExpression)}if(match("[")){return inheritCoverGrammar(parseArrayInitialiser)}if(match("{")){return inheritCoverGrammar(parseObjectInitialiser)}type=lookahead.type;node=new Node;if(type===Token.Identifier){expr=node.finishIdentifier(lex().value)}else if(type===Token.StringLiteral||type===Token.NumericLiteral){isAssignmentTarget=isBindingElement=false;if(strict&&lookahead.octal){tolerateUnexpectedToken(lookahead,Messages.StrictOctalLiteral)}expr=node.finishLiteral(lex())}else if(type===Token.Keyword){isAssignmentTarget=isBindingElement=false;if(matchKeyword("function")){return parseFunctionExpression()}if(matchKeyword("this")){lex();return node.finishThisExpression()}if(matchKeyword("class")){return parseClassExpression()}throwUnexpectedToken(lex())}else if(type===Token.BooleanLiteral){isAssignmentTarget=isBindingElement=false;token=lex();token.value=token.value==="true";expr=node.finishLiteral(token)}else if(type===Token.NullLiteral){isAssignmentTarget=isBindingElement=false;token=lex();token.value=null;expr=node.finishLiteral(token)}else if(match("/")||match("/=")){isAssignmentTarget=isBindingElement=false;index=startIndex;if(typeof extra.tokens!=="undefined"){token=collectRegex()}else{token=scanRegExp()}lex();expr=node.finishLiteral(token)}else if(type===Token.Template){expr=parseTemplateLiteral()}else{throwUnexpectedToken(lex())}return expr}function parseArguments(){var args=[];expect("(");if(!match(")")){while(startIndex<length){args.push(isolateCoverGrammar(parseAssignmentExpression));if(match(")")){break}expectCommaSeparator()}}expect(")");return args}function parseNonComputedProperty(){var token,node=new Node;token=lex();if(!isIdentifierName(token)){throwUnexpectedToken(token)}return node.finishIdentifier(token.value)}function parseNonComputedMember(){expect(".");return parseNonComputedProperty()}function parseComputedMember(){var expr;expect("[");expr=isolateCoverGrammar(parseExpression);expect("]");return expr}function parseNewExpression(){var callee,args,node=new Node;expectKeyword("new");callee=isolateCoverGrammar(parseLeftHandSideExpression);args=match("(")?parseArguments():[];isAssignmentTarget=isBindingElement=false;return node.finishNewExpression(callee,args)}function parseLeftHandSideExpressionAllowCall(){var quasi,expr,args,property,startToken,previousAllowIn=state.allowIn;startToken=lookahead;state.allowIn=true;if(matchKeyword("super")&&state.inFunctionBody){expr=new Node;lex();expr=expr.finishSuper();if(!match("(")&&!match(".")&&!match("[")){throwUnexpectedToken(lookahead)}}else{expr=inheritCoverGrammar(matchKeyword("new")?parseNewExpression:parsePrimaryExpression)}for(;;){if(match(".")){isBindingElement=false;isAssignmentTarget=true;property=parseNonComputedMember();expr=new WrappingNode(startToken).finishMemberExpression(".",expr,property)}else if(match("(")){isBindingElement=false;isAssignmentTarget=false;args=parseArguments();expr=new WrappingNode(startToken).finishCallExpression(expr,args)}else if(match("[")){isBindingElement=false;isAssignmentTarget=true;property=parseComputedMember();expr=new WrappingNode(startToken).finishMemberExpression("[",expr,property)}else if(lookahead.type===Token.Template&&lookahead.head){quasi=parseTemplateLiteral();expr=new WrappingNode(startToken).finishTaggedTemplateExpression(expr,quasi)}else{break}}state.allowIn=previousAllowIn;return expr}function parseLeftHandSideExpression(){var quasi,expr,property,startToken;assert(state.allowIn,"callee of new expression always allow in keyword.");startToken=lookahead;if(matchKeyword("super")&&state.inFunctionBody){expr=new Node;lex();expr=expr.finishSuper();if(!match("[")&&!match(".")){throwUnexpectedToken(lookahead)}}else{expr=inheritCoverGrammar(matchKeyword("new")?parseNewExpression:parsePrimaryExpression)}for(;;){if(match("[")){isBindingElement=false;isAssignmentTarget=true;property=parseComputedMember();expr=new WrappingNode(startToken).finishMemberExpression("[",expr,property)}else if(match(".")){isBindingElement=false;isAssignmentTarget=true;property=parseNonComputedMember();expr=new WrappingNode(startToken).finishMemberExpression(".",expr,property)}else if(lookahead.type===Token.Template&&lookahead.head){quasi=parseTemplateLiteral();expr=new WrappingNode(startToken).finishTaggedTemplateExpression(expr,quasi)}else{break}}return expr}function parsePostfixExpression(){var expr,token,startToken=lookahead;expr=inheritCoverGrammar(parseLeftHandSideExpressionAllowCall);if(!hasLineTerminator&&lookahead.type===Token.Punctuator){if(match("++")||match("--")){if(strict&&expr.type===Syntax.Identifier&&isRestrictedWord(expr.name)){tolerateError(Messages.StrictLHSPostfix)}if(!isAssignmentTarget){tolerateError(Messages.InvalidLHSInAssignment)}isAssignmentTarget=isBindingElement=false;token=lex();expr=new WrappingNode(startToken).finishPostfixExpression(token.value,expr)}}return expr}function parseUnaryExpression(){var token,expr,startToken;if(lookahead.type!==Token.Punctuator&&lookahead.type!==Token.Keyword){expr=parsePostfixExpression()}else if(match("++")||match("--")){startToken=lookahead;token=lex();expr=inheritCoverGrammar(parseUnaryExpression);if(strict&&expr.type===Syntax.Identifier&&isRestrictedWord(expr.name)){tolerateError(Messages.StrictLHSPrefix)}if(!isAssignmentTarget){tolerateError(Messages.InvalidLHSInAssignment)}expr=new WrappingNode(startToken).finishUnaryExpression(token.value,expr);isAssignmentTarget=isBindingElement=false}else if(match("+")||match("-")||match("~")||match("!")){startToken=lookahead;token=lex();expr=inheritCoverGrammar(parseUnaryExpression);expr=new WrappingNode(startToken).finishUnaryExpression(token.value,expr);isAssignmentTarget=isBindingElement=false}else if(matchKeyword("delete")||matchKeyword("void")||matchKeyword("typeof")){startToken=lookahead;token=lex();expr=inheritCoverGrammar(parseUnaryExpression);expr=new WrappingNode(startToken).finishUnaryExpression(token.value,expr);if(strict&&expr.operator==="delete"&&expr.argument.type===Syntax.Identifier){tolerateError(Messages.StrictDelete)}isAssignmentTarget=isBindingElement=false}else{expr=parsePostfixExpression()}return expr}function binaryPrecedence(token,allowIn){var prec=0;if(token.type!==Token.Punctuator&&token.type!==Token.Keyword){return 0}switch(token.value){case"||":prec=1;break;case"&&":prec=2;break;case"|":prec=3;break;case"^":prec=4;break;case"&":prec=5;break;case"==":case"!=":case"===":case"!==":prec=6;break;case"<":case">":case"<=":case">=":case"instanceof":prec=7;break;case"in":prec=allowIn?7:0;break;case"<<":case">>":case">>>":prec=8;break;case"+":case"-":prec=9;break;case"*":case"/":case"%":prec=11;break;default:break}return prec}function parseBinaryExpression(){var marker,markers,expr,token,prec,stack,right,operator,left,i;marker=lookahead;left=inheritCoverGrammar(parseUnaryExpression);token=lookahead;prec=binaryPrecedence(token,state.allowIn);if(prec===0){return left}isAssignmentTarget=isBindingElement=false;token.prec=prec;lex();markers=[marker,lookahead];right=isolateCoverGrammar(parseUnaryExpression);stack=[left,token,right];while((prec=binaryPrecedence(lookahead,state.allowIn))>0){while(stack.length>2&&prec<=stack[stack.length-2].prec){right=stack.pop();operator=stack.pop().value;left=stack.pop();markers.pop();expr=new WrappingNode(markers[markers.length-1]).finishBinaryExpression(operator,left,right);stack.push(expr)}token=lex();token.prec=prec;stack.push(token);markers.push(lookahead);expr=isolateCoverGrammar(parseUnaryExpression);stack.push(expr)}i=stack.length-1;expr=stack[i];markers.pop();while(i>1){expr=new WrappingNode(markers.pop()).finishBinaryExpression(stack[i-1].value,stack[i-2],expr);i-=2}return expr}function parseConditionalExpression(){var expr,previousAllowIn,consequent,alternate,startToken;startToken=lookahead;expr=inheritCoverGrammar(parseBinaryExpression);if(match("?")){lex();previousAllowIn=state.allowIn;state.allowIn=true;consequent=isolateCoverGrammar(parseAssignmentExpression);state.allowIn=previousAllowIn;expect(":");alternate=isolateCoverGrammar(parseAssignmentExpression);expr=new WrappingNode(startToken).finishConditionalExpression(expr,consequent,alternate);isAssignmentTarget=isBindingElement=false}return expr}function parseConciseBody(){if(match("{")){return parseFunctionSourceElements()}return isolateCoverGrammar(parseAssignmentExpression)}function checkPatternParam(options,param){var i;switch(param.type){case Syntax.Identifier:validateParam(options,param,param.name);break;case Syntax.RestElement:checkPatternParam(options,param.argument);break;case Syntax.AssignmentPattern:checkPatternParam(options,param.left);break;case Syntax.ArrayPattern:for(i=0;i<param.elements.length;i++){if(param.elements[i]!==null){checkPatternParam(options,param.elements[i])}}break;default:assert(param.type===Syntax.ObjectPattern,"Invalid type");for(i=0;i<param.properties.length;i++){checkPatternParam(options,param.properties[i].value)}break}}function reinterpretAsCoverFormalsList(expr){var i,len,param,params,defaults,defaultCount,options,token;defaults=[];defaultCount=0;params=[expr];switch(expr.type){case Syntax.Identifier:break;case PlaceHolders.ArrowParameterPlaceHolder:params=expr.params;break;default:return null}options={paramSet:{}};for(i=0,len=params.length;i<len;i+=1){param=params[i];switch(param.type){case Syntax.AssignmentPattern:params[i]=param.left;defaults.push(param.right);++defaultCount;checkPatternParam(options,param.left);break;default:checkPatternParam(options,param);params[i]=param;defaults.push(null);break}}if(options.message===Messages.StrictParamDupe){token=strict?options.stricted:options.firstRestricted;throwUnexpectedToken(token,options.message)}if(defaultCount===0){defaults=[]}return{params:params,defaults:defaults,stricted:options.stricted,firstRestricted:options.firstRestricted,message:options.message}}function parseArrowFunctionExpression(options,node){var previousStrict,body;if(hasLineTerminator){tolerateUnexpectedToken(lookahead)}expect("=>");previousStrict=strict;body=parseConciseBody();if(strict&&options.firstRestricted){throwUnexpectedToken(options.firstRestricted,options.message)}if(strict&&options.stricted){tolerateUnexpectedToken(options.stricted,options.message)}strict=previousStrict;return node.finishArrowFunctionExpression(options.params,options.defaults,body,body.type!==Syntax.BlockStatement)}function parseAssignmentExpression(){var token,expr,right,list,startToken;startToken=lookahead;token=lookahead;expr=parseConditionalExpression();if(expr.type===PlaceHolders.ArrowParameterPlaceHolder||match("=>")){isAssignmentTarget=isBindingElement=false;list=reinterpretAsCoverFormalsList(expr);if(list){firstCoverInitializedNameError=null;return parseArrowFunctionExpression(list,new WrappingNode(startToken))}return expr}if(matchAssign()){if(!isAssignmentTarget){tolerateError(Messages.InvalidLHSInAssignment)}if(strict&&expr.type===Syntax.Identifier&&isRestrictedWord(expr.name)){tolerateUnexpectedToken(token,Messages.StrictLHSAssignment)}if(!match("=")){isAssignmentTarget=isBindingElement=false}else{reinterpretExpressionAsPattern(expr)}token=lex();right=isolateCoverGrammar(parseAssignmentExpression);expr=new WrappingNode(startToken).finishAssignmentExpression(token.value,expr,right);firstCoverInitializedNameError=null}return expr}function parseExpression(){var expr,startToken=lookahead,expressions;expr=isolateCoverGrammar(parseAssignmentExpression);if(match(",")){expressions=[expr];while(startIndex<length){if(!match(",")){break}lex();expressions.push(isolateCoverGrammar(parseAssignmentExpression))}expr=new WrappingNode(startToken).finishSequenceExpression(expressions)}return expr}function parseStatementListItem(){if(lookahead.type===Token.Keyword){switch(lookahead.value){case"export":if(sourceType!=="module"){tolerateUnexpectedToken(lookahead,Messages.IllegalExportDeclaration)}return parseExportDeclaration();case"import":if(sourceType!=="module"){tolerateUnexpectedToken(lookahead,Messages.IllegalImportDeclaration)}return parseImportDeclaration();case"const":case"let":return parseLexicalDeclaration({inFor:false});case"function":return parseFunctionDeclaration(new Node);case"class":return parseClassDeclaration()}}return parseStatement()}function parseStatementList(){var list=[];while(startIndex<length){if(match("}")){break}list.push(parseStatementListItem())}return list}function parseBlock(){var block,node=new Node;expect("{");block=parseStatementList();expect("}");return node.finishBlockStatement(block)}function parseVariableIdentifier(){var token,node=new Node;token=lex();if(token.type!==Token.Identifier){if(strict&&token.type===Token.Keyword&&isStrictModeReservedWord(token.value)){tolerateUnexpectedToken(token,Messages.StrictReservedWord)}else{throwUnexpectedToken(token)}}return node.finishIdentifier(token.value)}function parseVariableDeclaration(){var init=null,id,node=new Node;id=parsePattern();if(strict&&isRestrictedWord(id.name)){tolerateError(Messages.StrictVarName)}if(match("=")){lex();init=isolateCoverGrammar(parseAssignmentExpression)}else if(id.type!==Syntax.Identifier){expect("=")}return node.finishVariableDeclarator(id,init)}function parseVariableDeclarationList(){var list=[];do{list.push(parseVariableDeclaration());if(!match(",")){break}lex()}while(startIndex<length);return list}function parseVariableStatement(node){var declarations;expectKeyword("var");declarations=parseVariableDeclarationList();consumeSemicolon();return node.finishVariableDeclaration(declarations)}function parseLexicalBinding(kind,options){var init=null,id,node=new Node;id=parsePattern();if(strict&&id.type===Syntax.Identifier&&isRestrictedWord(id.name)){tolerateError(Messages.StrictVarName)}if(kind==="const"){if(!matchKeyword("in")){expect("=");init=isolateCoverGrammar(parseAssignmentExpression)}}else if(!options.inFor&&id.type!==Syntax.Identifier||match("=")){expect("=");init=isolateCoverGrammar(parseAssignmentExpression)}return node.finishVariableDeclarator(id,init)}function parseBindingList(kind,options){var list=[];do{list.push(parseLexicalBinding(kind,options));if(!match(",")){break}lex()}while(startIndex<length);return list}function parseLexicalDeclaration(options){var kind,declarations,node=new Node;kind=lex().value;assert(kind==="let"||kind==="const","Lexical declaration must be either let or const");declarations=parseBindingList(kind,options);consumeSemicolon();return node.finishLexicalDeclaration(declarations,kind)}function parseRestElement(){var param,node=new Node;lex();if(match("{")){throwError(Messages.ObjectPatternAsRestParameter)}param=parseVariableIdentifier();if(match("=")){throwError(Messages.DefaultRestParameter)}if(!match(")")){throwError(Messages.ParameterAfterRestParameter)}return node.finishRestElement(param)}function parseEmptyStatement(node){expect(";");return node.finishEmptyStatement()}function parseExpressionStatement(node){var expr=parseExpression();consumeSemicolon();return node.finishExpressionStatement(expr)}function parseIfStatement(node){var test,consequent,alternate;expectKeyword("if");expect("(");test=parseExpression();expect(")");consequent=parseStatement();if(matchKeyword("else")){lex();alternate=parseStatement()}else{alternate=null}return node.finishIfStatement(test,consequent,alternate)}function parseDoWhileStatement(node){var body,test,oldInIteration;expectKeyword("do");oldInIteration=state.inIteration;state.inIteration=true;body=parseStatement();state.inIteration=oldInIteration;expectKeyword("while");expect("(");test=parseExpression();expect(")");if(match(";")){lex()}return node.finishDoWhileStatement(body,test)}function parseWhileStatement(node){var test,body,oldInIteration;expectKeyword("while");expect("(");test=parseExpression();expect(")");oldInIteration=state.inIteration;state.inIteration=true;body=parseStatement();state.inIteration=oldInIteration;return node.finishWhileStatement(test,body)}function parseForStatement(node){var init,initSeq,initStartToken,test,update,left,right,kind,declarations,body,oldInIteration,previousAllowIn=state.allowIn;init=test=update=null;expectKeyword("for");expect("(");if(match(";")){lex()}else{if(matchKeyword("var")){init=new Node;lex();state.allowIn=false;init=init.finishVariableDeclaration(parseVariableDeclarationList());state.allowIn=previousAllowIn;if(init.declarations.length===1&&matchKeyword("in")){lex();left=init;right=parseExpression();init=null}else{expect(";")}}else if(matchKeyword("const")||matchKeyword("let")){init=new Node;kind=lex().value;state.allowIn=false;declarations=parseBindingList(kind,{inFor:true});state.allowIn=previousAllowIn;if(declarations.length===1&&declarations[0].init===null&&matchKeyword("in")){init=init.finishLexicalDeclaration(declarations,kind);lex();left=init;right=parseExpression();init=null}else{consumeSemicolon();init=init.finishLexicalDeclaration(declarations,kind)}}else{initStartToken=lookahead;state.allowIn=false;init=inheritCoverGrammar(parseAssignmentExpression);state.allowIn=previousAllowIn;if(matchKeyword("in")){if(!isAssignmentTarget){tolerateError(Messages.InvalidLHSInForIn)}lex();reinterpretExpressionAsPattern(init);left=init;right=parseExpression();init=null}else{if(match(",")){initSeq=[init];while(match(",")){lex();initSeq.push(isolateCoverGrammar(parseAssignmentExpression))}init=new WrappingNode(initStartToken).finishSequenceExpression(initSeq)}expect(";")}}}if(typeof left==="undefined"){if(!match(";")){test=parseExpression()}expect(";");if(!match(")")){update=parseExpression()}}expect(")");oldInIteration=state.inIteration;state.inIteration=true;body=isolateCoverGrammar(parseStatement);state.inIteration=oldInIteration;return typeof left==="undefined"?node.finishForStatement(init,test,update,body):node.finishForInStatement(left,right,body)}function parseContinueStatement(node){var label=null,key;expectKeyword("continue");if(source.charCodeAt(startIndex)===59){lex();if(!state.inIteration){throwError(Messages.IllegalContinue)}return node.finishContinueStatement(null)}if(hasLineTerminator){if(!state.inIteration){throwError(Messages.IllegalContinue)}return node.finishContinueStatement(null)}if(lookahead.type===Token.Identifier){label=parseVariableIdentifier();key="$"+label.name;if(!Object.prototype.hasOwnProperty.call(state.labelSet,key)){throwError(Messages.UnknownLabel,label.name)}}consumeSemicolon();if(label===null&&!state.inIteration){throwError(Messages.IllegalContinue)}return node.finishContinueStatement(label)}function parseBreakStatement(node){var label=null,key;expectKeyword("break");if(source.charCodeAt(lastIndex)===59){lex();if(!(state.inIteration||state.inSwitch)){throwError(Messages.IllegalBreak)}return node.finishBreakStatement(null)}if(hasLineTerminator){if(!(state.inIteration||state.inSwitch)){throwError(Messages.IllegalBreak)}return node.finishBreakStatement(null); + +}if(lookahead.type===Token.Identifier){label=parseVariableIdentifier();key="$"+label.name;if(!Object.prototype.hasOwnProperty.call(state.labelSet,key)){throwError(Messages.UnknownLabel,label.name)}}consumeSemicolon();if(label===null&&!(state.inIteration||state.inSwitch)){throwError(Messages.IllegalBreak)}return node.finishBreakStatement(label)}function parseReturnStatement(node){var argument=null;expectKeyword("return");if(!state.inFunctionBody){tolerateError(Messages.IllegalReturn)}if(source.charCodeAt(lastIndex)===32){if(isIdentifierStart(source.charCodeAt(lastIndex+1))){argument=parseExpression();consumeSemicolon();return node.finishReturnStatement(argument)}}if(hasLineTerminator){return node.finishReturnStatement(null)}if(!match(";")){if(!match("}")&&lookahead.type!==Token.EOF){argument=parseExpression()}}consumeSemicolon();return node.finishReturnStatement(argument)}function parseWithStatement(node){var object,body;if(strict){tolerateError(Messages.StrictModeWith)}expectKeyword("with");expect("(");object=parseExpression();expect(")");body=parseStatement();return node.finishWithStatement(object,body)}function parseSwitchCase(){var test,consequent=[],statement,node=new Node;if(matchKeyword("default")){lex();test=null}else{expectKeyword("case");test=parseExpression()}expect(":");while(startIndex<length){if(match("}")||matchKeyword("default")||matchKeyword("case")){break}statement=parseStatementListItem();consequent.push(statement)}return node.finishSwitchCase(test,consequent)}function parseSwitchStatement(node){var discriminant,cases,clause,oldInSwitch,defaultFound;expectKeyword("switch");expect("(");discriminant=parseExpression();expect(")");expect("{");cases=[];if(match("}")){lex();return node.finishSwitchStatement(discriminant,cases)}oldInSwitch=state.inSwitch;state.inSwitch=true;defaultFound=false;while(startIndex<length){if(match("}")){break}clause=parseSwitchCase();if(clause.test===null){if(defaultFound){throwError(Messages.MultipleDefaultsInSwitch)}defaultFound=true}cases.push(clause)}state.inSwitch=oldInSwitch;expect("}");return node.finishSwitchStatement(discriminant,cases)}function parseThrowStatement(node){var argument;expectKeyword("throw");if(hasLineTerminator){throwError(Messages.NewlineAfterThrow)}argument=parseExpression();consumeSemicolon();return node.finishThrowStatement(argument)}function parseCatchClause(){var param,body,node=new Node;expectKeyword("catch");expect("(");if(match(")")){throwUnexpectedToken(lookahead)}param=parsePattern();if(strict&&isRestrictedWord(param.name)){tolerateError(Messages.StrictCatchVariable)}expect(")");body=parseBlock();return node.finishCatchClause(param,body)}function parseTryStatement(node){var block,handler=null,finalizer=null;expectKeyword("try");block=parseBlock();if(matchKeyword("catch")){handler=parseCatchClause()}if(matchKeyword("finally")){lex();finalizer=parseBlock()}if(!handler&&!finalizer){throwError(Messages.NoCatchOrFinally)}return node.finishTryStatement(block,handler,finalizer)}function parseDebuggerStatement(node){expectKeyword("debugger");consumeSemicolon();return node.finishDebuggerStatement()}function parseStatement(){var type=lookahead.type,expr,labeledBody,key,node;if(type===Token.EOF){throwUnexpectedToken(lookahead)}if(type===Token.Punctuator&&lookahead.value==="{"){return parseBlock()}isAssignmentTarget=isBindingElement=true;node=new Node;if(type===Token.Punctuator){switch(lookahead.value){case";":return parseEmptyStatement(node);case"(":return parseExpressionStatement(node);default:break}}else if(type===Token.Keyword){switch(lookahead.value){case"break":return parseBreakStatement(node);case"continue":return parseContinueStatement(node);case"debugger":return parseDebuggerStatement(node);case"do":return parseDoWhileStatement(node);case"for":return parseForStatement(node);case"function":return parseFunctionDeclaration(node);case"if":return parseIfStatement(node);case"return":return parseReturnStatement(node);case"switch":return parseSwitchStatement(node);case"throw":return parseThrowStatement(node);case"try":return parseTryStatement(node);case"var":return parseVariableStatement(node);case"while":return parseWhileStatement(node);case"with":return parseWithStatement(node);default:break}}expr=parseExpression();if(expr.type===Syntax.Identifier&&match(":")){lex();key="$"+expr.name;if(Object.prototype.hasOwnProperty.call(state.labelSet,key)){throwError(Messages.Redeclaration,"Label",expr.name)}state.labelSet[key]=true;labeledBody=parseStatement();delete state.labelSet[key];return node.finishLabeledStatement(expr,labeledBody)}consumeSemicolon();return node.finishExpressionStatement(expr)}function parseFunctionSourceElements(){var statement,body=[],token,directive,firstRestricted,oldLabelSet,oldInIteration,oldInSwitch,oldInFunctionBody,oldParenthesisCount,node=new Node;expect("{");while(startIndex<length){if(lookahead.type!==Token.StringLiteral){break}token=lookahead;statement=parseStatementListItem();body.push(statement);if(statement.expression.type!==Syntax.Literal){break}directive=source.slice(token.start+1,token.end-1);if(directive==="use strict"){strict=true;if(firstRestricted){tolerateUnexpectedToken(firstRestricted,Messages.StrictOctalLiteral)}}else{if(!firstRestricted&&token.octal){firstRestricted=token}}}oldLabelSet=state.labelSet;oldInIteration=state.inIteration;oldInSwitch=state.inSwitch;oldInFunctionBody=state.inFunctionBody;oldParenthesisCount=state.parenthesizedCount;state.labelSet={};state.inIteration=false;state.inSwitch=false;state.inFunctionBody=true;state.parenthesizedCount=0;while(startIndex<length){if(match("}")){break}body.push(parseStatementListItem())}expect("}");state.labelSet=oldLabelSet;state.inIteration=oldInIteration;state.inSwitch=oldInSwitch;state.inFunctionBody=oldInFunctionBody;state.parenthesizedCount=oldParenthesisCount;return node.finishBlockStatement(body)}function validateParam(options,param,name){var key="$"+name;if(strict){if(isRestrictedWord(name)){options.stricted=param;options.message=Messages.StrictParamName}if(Object.prototype.hasOwnProperty.call(options.paramSet,key)){options.stricted=param;options.message=Messages.StrictParamDupe}}else if(!options.firstRestricted){if(isRestrictedWord(name)){options.firstRestricted=param;options.message=Messages.StrictParamName}else if(isStrictModeReservedWord(name)){options.firstRestricted=param;options.message=Messages.StrictReservedWord}else if(Object.prototype.hasOwnProperty.call(options.paramSet,key)){options.firstRestricted=param;options.message=Messages.StrictParamDupe}}options.paramSet[key]=true}function parseParam(options){var token,param,def;token=lookahead;if(token.value==="..."){param=parseRestElement();validateParam(options,param.argument,param.argument.name);options.params.push(param);options.defaults.push(null);return false}param=parsePatternWithDefault();validateParam(options,token,token.value);if(param.type===Syntax.AssignmentPattern){def=param.right;param=param.left;++options.defaultCount}options.params.push(param);options.defaults.push(def);return!match(")")}function parseParams(firstRestricted){var options;options={params:[],defaultCount:0,defaults:[],firstRestricted:firstRestricted};expect("(");if(!match(")")){options.paramSet={};while(startIndex<length){if(!parseParam(options)){break}expect(",")}}expect(")");if(options.defaultCount===0){options.defaults=[]}return{params:options.params,defaults:options.defaults,stricted:options.stricted,firstRestricted:options.firstRestricted,message:options.message}}function parseFunctionDeclaration(node,identifierIsOptional){var id=null,params=[],defaults=[],body,token,stricted,tmp,firstRestricted,message,previousStrict;expectKeyword("function");if(!identifierIsOptional||!match("(")){token=lookahead;id=parseVariableIdentifier();if(strict){if(isRestrictedWord(token.value)){tolerateUnexpectedToken(token,Messages.StrictFunctionName)}}else{if(isRestrictedWord(token.value)){firstRestricted=token;message=Messages.StrictFunctionName}else if(isStrictModeReservedWord(token.value)){firstRestricted=token;message=Messages.StrictReservedWord}}}tmp=parseParams(firstRestricted);params=tmp.params;defaults=tmp.defaults;stricted=tmp.stricted;firstRestricted=tmp.firstRestricted;if(tmp.message){message=tmp.message}previousStrict=strict;body=parseFunctionSourceElements();if(strict&&firstRestricted){throwUnexpectedToken(firstRestricted,message)}if(strict&&stricted){tolerateUnexpectedToken(stricted,message)}strict=previousStrict;return node.finishFunctionDeclaration(id,params,defaults,body)}function parseFunctionExpression(){var token,id=null,stricted,firstRestricted,message,tmp,params=[],defaults=[],body,previousStrict,node=new Node;expectKeyword("function");if(!match("(")){token=lookahead;id=parseVariableIdentifier();if(strict){if(isRestrictedWord(token.value)){tolerateUnexpectedToken(token,Messages.StrictFunctionName)}}else{if(isRestrictedWord(token.value)){firstRestricted=token;message=Messages.StrictFunctionName}else if(isStrictModeReservedWord(token.value)){firstRestricted=token;message=Messages.StrictReservedWord}}}tmp=parseParams(firstRestricted);params=tmp.params;defaults=tmp.defaults;stricted=tmp.stricted;firstRestricted=tmp.firstRestricted;if(tmp.message){message=tmp.message}previousStrict=strict;body=parseFunctionSourceElements();if(strict&&firstRestricted){throwUnexpectedToken(firstRestricted,message)}if(strict&&stricted){tolerateUnexpectedToken(stricted,message)}strict=previousStrict;return node.finishFunctionExpression(id,params,defaults,body)}function parseClassBody(){var classBody,token,isStatic,hasConstructor=false,body,method,computed,key;classBody=new Node;expect("{");body=[];while(!match("}")){if(match(";")){lex()}else{method=new Node;token=lookahead;isStatic=false;computed=match("[");key=parseObjectPropertyKey();if(key.name==="static"&&lookaheadPropertyName()){token=lookahead;isStatic=true;computed=match("[");key=parseObjectPropertyKey()}method=tryParseMethodDefinition(token,key,computed,method);if(method){method["static"]=isStatic;if(method.kind==="init"){method.kind="method"}if(!isStatic){if(!method.computed&&(method.key.name||method.key.value.toString())==="constructor"){if(method.kind!=="method"||!method.method||method.value.generator){throwUnexpectedToken(token,Messages.ConstructorSpecialMethod)}if(hasConstructor){throwUnexpectedToken(token,Messages.DuplicateConstructor)}else{hasConstructor=true}method.kind="constructor"}}else{if(!method.computed&&(method.key.name||method.key.value.toString())==="prototype"){throwUnexpectedToken(token,Messages.StaticPrototype)}}method.type=Syntax.MethodDefinition;delete method.method;delete method.shorthand;body.push(method)}else{throwUnexpectedToken(lookahead)}}}lex();return classBody.finishClassBody(body)}function parseClassDeclaration(identifierIsOptional){var id=null,superClass=null,classNode=new Node,classBody,previousStrict=strict;strict=true;expectKeyword("class");if(!identifierIsOptional||lookahead.type===Token.Identifier){id=parseVariableIdentifier()}if(matchKeyword("extends")){lex();superClass=isolateCoverGrammar(parseLeftHandSideExpressionAllowCall)}classBody=parseClassBody();strict=previousStrict;return classNode.finishClassDeclaration(id,superClass,classBody)}function parseClassExpression(){var id=null,superClass=null,classNode=new Node,classBody,previousStrict=strict;strict=true;expectKeyword("class");if(lookahead.type===Token.Identifier){id=parseVariableIdentifier()}if(matchKeyword("extends")){lex();superClass=isolateCoverGrammar(parseLeftHandSideExpressionAllowCall)}classBody=parseClassBody();strict=previousStrict;return classNode.finishClassExpression(id,superClass,classBody)}function parseModuleSpecifier(){var node=new Node;if(lookahead.type!==Token.StringLiteral){throwError(Messages.InvalidModuleSpecifier)}return node.finishLiteral(lex())}function parseExportSpecifier(){var exported,local,node=new Node,def;if(matchKeyword("default")){def=new Node;lex();local=def.finishIdentifier("default")}else{local=parseVariableIdentifier()}if(matchContextualKeyword("as")){lex();exported=parseNonComputedProperty()}return node.finishExportSpecifier(local,exported)}function parseExportNamedDeclaration(node){var declaration=null,isExportFromIdentifier,src=null,specifiers=[];if(lookahead.type===Token.Keyword){switch(lookahead.value){case"let":case"const":case"var":case"class":case"function":declaration=parseStatementListItem();return node.finishExportNamedDeclaration(declaration,specifiers,null)}}expect("{");if(!match("}")){do{isExportFromIdentifier=isExportFromIdentifier||matchKeyword("default");specifiers.push(parseExportSpecifier())}while(match(",")&&lex())}expect("}");if(matchContextualKeyword("from")){lex();src=parseModuleSpecifier();consumeSemicolon()}else if(isExportFromIdentifier){throwError(lookahead.value?Messages.UnexpectedToken:Messages.MissingFromClause,lookahead.value)}else{consumeSemicolon()}return node.finishExportNamedDeclaration(declaration,specifiers,src)}function parseExportDefaultDeclaration(node){var declaration=null,expression=null;expectKeyword("default");if(matchKeyword("function")){declaration=parseFunctionDeclaration(new Node,true);return node.finishExportDefaultDeclaration(declaration)}if(matchKeyword("class")){declaration=parseClassDeclaration(true);return node.finishExportDefaultDeclaration(declaration)}if(matchContextualKeyword("from")){throwError(Messages.UnexpectedToken,lookahead.value)}if(match("{")){expression=parseObjectInitialiser()}else if(match("[")){expression=parseArrayInitialiser()}else{expression=parseAssignmentExpression()}consumeSemicolon();return node.finishExportDefaultDeclaration(expression)}function parseExportAllDeclaration(node){var src;expect("*");if(!matchContextualKeyword("from")){throwError(lookahead.value?Messages.UnexpectedToken:Messages.MissingFromClause,lookahead.value)}lex();src=parseModuleSpecifier();consumeSemicolon();return node.finishExportAllDeclaration(src)}function parseExportDeclaration(){var node=new Node;if(state.inFunctionBody){throwError(Messages.IllegalExportDeclaration)}expectKeyword("export");if(matchKeyword("default")){return parseExportDefaultDeclaration(node)}if(match("*")){return parseExportAllDeclaration(node)}return parseExportNamedDeclaration(node)}function parseImportSpecifier(){var local,imported,node=new Node;imported=parseNonComputedProperty();if(matchContextualKeyword("as")){lex();local=parseVariableIdentifier()}return node.finishImportSpecifier(local,imported)}function parseNamedImports(){var specifiers=[];expect("{");if(!match("}")){do{specifiers.push(parseImportSpecifier())}while(match(",")&&lex())}expect("}");return specifiers}function parseImportDefaultSpecifier(){var local,node=new Node;local=parseNonComputedProperty();return node.finishImportDefaultSpecifier(local)}function parseImportNamespaceSpecifier(){var local,node=new Node;expect("*");if(!matchContextualKeyword("as")){throwError(Messages.NoAsAfterImportNamespace)}lex();local=parseNonComputedProperty();return node.finishImportNamespaceSpecifier(local)}function parseImportDeclaration(){var specifiers,src,node=new Node;if(state.inFunctionBody){throwError(Messages.IllegalImportDeclaration)}expectKeyword("import");specifiers=[];if(lookahead.type===Token.StringLiteral){src=parseModuleSpecifier();consumeSemicolon();return node.finishImportDeclaration(specifiers,src)}if(!matchKeyword("default")&&isIdentifierName(lookahead)){specifiers.push(parseImportDefaultSpecifier());if(match(",")){lex()}}if(match("*")){specifiers.push(parseImportNamespaceSpecifier())}else if(match("{")){specifiers=specifiers.concat(parseNamedImports())}if(!matchContextualKeyword("from")){throwError(lookahead.value?Messages.UnexpectedToken:Messages.MissingFromClause,lookahead.value)}lex();src=parseModuleSpecifier();consumeSemicolon();return node.finishImportDeclaration(specifiers,src)}function parseScriptBody(){var statement,body=[],token,directive,firstRestricted;while(startIndex<length){token=lookahead;if(token.type!==Token.StringLiteral){break}statement=parseStatementListItem();body.push(statement);if(statement.expression.type!==Syntax.Literal){break}directive=source.slice(token.start+1,token.end-1);if(directive==="use strict"){strict=true;if(firstRestricted){tolerateUnexpectedToken(firstRestricted,Messages.StrictOctalLiteral)}}else{if(!firstRestricted&&token.octal){firstRestricted=token}}}while(startIndex<length){statement=parseStatementListItem();if(typeof statement==="undefined"){break}body.push(statement)}return body}function parseProgram(){var body,node;peek();node=new Node;body=parseScriptBody();return node.finishProgram(body)}function filterTokenLocation(){var i,entry,token,tokens=[];for(i=0;i<extra.tokens.length;++i){entry=extra.tokens[i];token={type:entry.type,value:entry.value};if(entry.regex){token.regex={pattern:entry.regex.pattern,flags:entry.regex.flags}}if(extra.range){token.range=entry.range}if(extra.loc){token.loc=entry.loc}tokens.push(token)}extra.tokens=tokens}function tokenize(code,options){var toString,tokens;toString=String;if(typeof code!=="string"&&!(code instanceof String)){code=toString(code)}source=code;index=0;lineNumber=source.length>0?1:0;lineStart=0;startIndex=index;startLineNumber=lineNumber;startLineStart=lineStart;length=source.length;lookahead=null;state={allowIn:true,labelSet:{},inFunctionBody:false,inIteration:false,inSwitch:false,lastCommentStart:-1,curlyStack:[]};extra={};options=options||{};options.tokens=true;extra.tokens=[];extra.tokenize=true;extra.openParenToken=-1;extra.openCurlyToken=-1;extra.range=typeof options.range==="boolean"&&options.range;extra.loc=typeof options.loc==="boolean"&&options.loc;if(typeof options.comment==="boolean"&&options.comment){extra.comments=[]}if(typeof options.tolerant==="boolean"&&options.tolerant){extra.errors=[]}try{peek();if(lookahead.type===Token.EOF){return extra.tokens}lex();while(lookahead.type!==Token.EOF){try{lex()}catch(lexError){if(extra.errors){recordError(lexError);break}else{throw lexError}}}filterTokenLocation();tokens=extra.tokens;if(typeof extra.comments!=="undefined"){tokens.comments=extra.comments}if(typeof extra.errors!=="undefined"){tokens.errors=extra.errors}}catch(e){throw e}finally{extra={}}return tokens}function parse(code,options){var program,toString;toString=String;if(typeof code!=="string"&&!(code instanceof String)){code=toString(code)}source=code;index=0;lineNumber=source.length>0?1:0;lineStart=0;startIndex=index;startLineNumber=lineNumber;startLineStart=lineStart;length=source.length;lookahead=null;state={allowIn:true,labelSet:{},inFunctionBody:false,inIteration:false,inSwitch:false,lastCommentStart:-1,curlyStack:[]};sourceType="script";strict=false;extra={};if(typeof options!=="undefined"){extra.range=typeof options.range==="boolean"&&options.range;extra.loc=typeof options.loc==="boolean"&&options.loc;extra.attachComment=typeof options.attachComment==="boolean"&&options.attachComment;if(extra.loc&&options.source!==null&&options.source!==undefined){extra.source=toString(options.source)}if(typeof options.tokens==="boolean"&&options.tokens){extra.tokens=[]}if(typeof options.comment==="boolean"&&options.comment){extra.comments=[]}if(typeof options.tolerant==="boolean"&&options.tolerant){extra.errors=[]}if(extra.attachComment){extra.range=true;extra.comments=[];extra.bottomRightStack=[];extra.trailingComments=[];extra.leadingComments=[]}if(options.sourceType==="module"){sourceType=options.sourceType;strict=true}}try{program=parseProgram();if(typeof extra.comments!=="undefined"){program.comments=extra.comments}if(typeof extra.tokens!=="undefined"){filterTokenLocation();program.tokens=extra.tokens}if(typeof extra.errors!=="undefined"){program.errors=extra.errors}}catch(e){throw e}finally{extra={}}return program}exports.version="2.2.0";exports.tokenize=tokenize;exports.parse=parse;exports.Syntax=function(){var name,types={};if(typeof Object.create==="function"){types=Object.create(null)}for(name in Syntax){if(Syntax.hasOwnProperty(name)){types[name]=Syntax[name]}}if(typeof Object.freeze==="function"){Object.freeze(types)}return types}()})},{}],52:[function(require,module,exports){var baseIndexOf=require("../internal/baseIndexOf"),binaryIndex=require("../internal/binaryIndex");var nativeMax=Math.max;function indexOf(array,value,fromIndex){var length=array?array.length:0;if(!length){return-1}if(typeof fromIndex=="number"){fromIndex=fromIndex<0?nativeMax(length+fromIndex,0):fromIndex}else if(fromIndex){var index=binaryIndex(array,value);if(index<length&&(value===value?value===array[index]:array[index]!==array[index])){return index}return-1}return baseIndexOf(array,value,fromIndex||0)}module.exports=indexOf},{"../internal/baseIndexOf":81,"../internal/binaryIndex":95}],53:[function(require,module,exports){function last(array){var length=array?array.length:0;return length?array[length-1]:undefined}module.exports=last},{}],54:[function(require,module,exports){var LazyWrapper=require("../internal/LazyWrapper"),LodashWrapper=require("../internal/LodashWrapper"),baseLodash=require("../internal/baseLodash"),isArray=require("../lang/isArray"),isObjectLike=require("../internal/isObjectLike"),wrapperClone=require("../internal/wrapperClone");var objectProto=Object.prototype;var hasOwnProperty=objectProto.hasOwnProperty;function lodash(value){if(isObjectLike(value)&&!isArray(value)&&!(value instanceof LazyWrapper)){if(value instanceof LodashWrapper){return value}if(hasOwnProperty.call(value,"__chain__")&&hasOwnProperty.call(value,"__wrapped__")){return wrapperClone(value)}}return new LodashWrapper(value)}lodash.prototype=baseLodash.prototype;module.exports=lodash},{"../internal/LazyWrapper":63,"../internal/LodashWrapper":64,"../internal/baseLodash":85,"../internal/isObjectLike":129,"../internal/wrapperClone":140,"../lang/isArray":143}],55:[function(require,module,exports){module.exports=require("./forEach")},{"./forEach":57}],56:[function(require,module,exports){var baseEach=require("../internal/baseEach"),createFind=require("../internal/createFind");var find=createFind(baseEach);module.exports=find},{"../internal/baseEach":74,"../internal/createFind":105}],57:[function(require,module,exports){var arrayEach=require("../internal/arrayEach"),baseEach=require("../internal/baseEach"),createForEach=require("../internal/createForEach");var forEach=createForEach(arrayEach,baseEach);module.exports=forEach},{"../internal/arrayEach":66,"../internal/baseEach":74,"../internal/createForEach":106}],58:[function(require,module,exports){var baseIndexOf=require("../internal/baseIndexOf"),getLength=require("../internal/getLength"),isArray=require("../lang/isArray"),isIterateeCall=require("../internal/isIterateeCall"),isLength=require("../internal/isLength"),isString=require("../lang/isString"),values=require("../object/values");var nativeMax=Math.max;function includes(collection,target,fromIndex,guard){var length=collection?getLength(collection):0;if(!isLength(length)){collection=values(collection);length=collection.length}if(typeof fromIndex!="number"||guard&&isIterateeCall(target,fromIndex,guard)){fromIndex=0}else{fromIndex=fromIndex<0?nativeMax(length+fromIndex,0):fromIndex||0}return typeof collection=="string"||!isArray(collection)&&isString(collection)?fromIndex<=length&&collection.indexOf(target,fromIndex)>-1:!!length&&baseIndexOf(collection,target,fromIndex)>-1}module.exports=includes},{"../internal/baseIndexOf":81,"../internal/getLength":115,"../internal/isIterateeCall":125,"../internal/isLength":128,"../lang/isArray":143,"../lang/isString":149,"../object/values":155}],59:[function(require,module,exports){var arrayMap=require("../internal/arrayMap"),baseCallback=require("../internal/baseCallback"),baseMap=require("../internal/baseMap"),isArray=require("../lang/isArray");function map(collection,iteratee,thisArg){var func=isArray(collection)?arrayMap:baseMap;iteratee=baseCallback(iteratee,thisArg,3);return func(collection,iteratee)}module.exports=map},{"../internal/arrayMap":67,"../internal/baseCallback":70,"../internal/baseMap":86,"../lang/isArray":143}],60:[function(require,module,exports){var getNative=require("../internal/getNative");var nativeNow=getNative(Date,"now");var now=nativeNow||function(){return(new Date).getTime()};module.exports=now},{"../internal/getNative":117}],61:[function(require,module,exports){var createWrapper=require("../internal/createWrapper"),replaceHolders=require("../internal/replaceHolders"),restParam=require("./restParam");var BIND_FLAG=1,PARTIAL_FLAG=32;var bind=restParam(function(func,thisArg,partials){var bitmask=BIND_FLAG;if(partials.length){var holders=replaceHolders(partials,bind.placeholder);bitmask|=PARTIAL_FLAG}return createWrapper(func,bitmask,thisArg,partials,holders)});bind.placeholder={};module.exports=bind},{"../internal/createWrapper":109,"../internal/replaceHolders":135,"./restParam":62}],62:[function(require,module,exports){var FUNC_ERROR_TEXT="Expected a function";var nativeMax=Math.max;function restParam(func,start){if(typeof func!="function"){throw new TypeError(FUNC_ERROR_TEXT)}start=nativeMax(start===undefined?func.length-1:+start||0,0);return function(){var args=arguments,index=-1,length=nativeMax(args.length-start,0),rest=Array(length);while(++index<length){rest[index]=args[start+index]}switch(start){case 0:return func.call(this,rest);case 1:return func.call(this,args[0],rest);case 2:return func.call(this,args[0],args[1],rest)}var otherArgs=Array(start+1);index=-1;while(++index<start){otherArgs[index]=args[index]}otherArgs[start]=rest;return func.apply(this,otherArgs)}}module.exports=restParam},{}],63:[function(require,module,exports){var baseCreate=require("./baseCreate"),baseLodash=require("./baseLodash");var POSITIVE_INFINITY=Number.POSITIVE_INFINITY;function LazyWrapper(value){this.__wrapped__=value;this.__actions__=[];this.__dir__=1;this.__filtered__=false;this.__iteratees__=[];this.__takeCount__=POSITIVE_INFINITY;this.__views__=[]}LazyWrapper.prototype=baseCreate(baseLodash.prototype);LazyWrapper.prototype.constructor=LazyWrapper;module.exports=LazyWrapper},{"./baseCreate":73,"./baseLodash":85}],64:[function(require,module,exports){var baseCreate=require("./baseCreate"),baseLodash=require("./baseLodash");function LodashWrapper(value,chainAll,actions){this.__wrapped__=value;this.__actions__=actions||[];this.__chain__=!!chainAll}LodashWrapper.prototype=baseCreate(baseLodash.prototype);LodashWrapper.prototype.constructor=LodashWrapper;module.exports=LodashWrapper},{"./baseCreate":73,"./baseLodash":85}],65:[function(require,module,exports){function arrayCopy(source,array){var index=-1,length=source.length;array||(array=Array(length));while(++index<length){array[index]=source[index]}return array}module.exports=arrayCopy},{}],66:[function(require,module,exports){function arrayEach(array,iteratee){var index=-1,length=array.length;while(++index<length){if(iteratee(array[index],index,array)===false){break}}return array}module.exports=arrayEach},{}],67:[function(require,module,exports){function arrayMap(array,iteratee){var index=-1,length=array.length,result=Array(length);while(++index<length){result[index]=iteratee(array[index],index,array)}return result}module.exports=arrayMap},{}],68:[function(require,module,exports){function arraySome(array,predicate){var index=-1,length=array.length;while(++index<length){if(predicate(array[index],index,array)){return true}}return false}module.exports=arraySome},{}],69:[function(require,module,exports){var baseCopy=require("./baseCopy"),keys=require("../object/keys");function baseAssign(object,source){return source==null?object:baseCopy(source,keys(source),object)}module.exports=baseAssign},{"../object/keys":152,"./baseCopy":72}],70:[function(require,module,exports){var baseMatches=require("./baseMatches"),baseMatchesProperty=require("./baseMatchesProperty"),bindCallback=require("./bindCallback"),identity=require("../utility/identity"),property=require("../utility/property");function baseCallback(func,thisArg,argCount){var type=typeof func;if(type=="function"){return thisArg===undefined?func:bindCallback(func,thisArg,argCount)}if(func==null){return identity}if(type=="object"){return baseMatches(func)}return thisArg===undefined?property(func):baseMatchesProperty(func,thisArg)}module.exports=baseCallback},{"../utility/identity":157,"../utility/property":159,"./baseMatches":87,"./baseMatchesProperty":88,"./bindCallback":97}],71:[function(require,module,exports){var arrayCopy=require("./arrayCopy"),arrayEach=require("./arrayEach"),baseAssign=require("./baseAssign"),baseForOwn=require("./baseForOwn"),initCloneArray=require("./initCloneArray"),initCloneByTag=require("./initCloneByTag"),initCloneObject=require("./initCloneObject"),isArray=require("../lang/isArray"),isHostObject=require("./isHostObject"),isObject=require("../lang/isObject");var argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",mapTag="[object Map]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",weakMapTag="[object WeakMap]";var arrayBufferTag="[object ArrayBuffer]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]";var cloneableTags={};cloneableTags[argsTag]=cloneableTags[arrayTag]=cloneableTags[arrayBufferTag]=cloneableTags[boolTag]=cloneableTags[dateTag]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[numberTag]=cloneableTags[objectTag]=cloneableTags[regexpTag]=cloneableTags[stringTag]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=true;cloneableTags[errorTag]=cloneableTags[funcTag]=cloneableTags[mapTag]=cloneableTags[setTag]=cloneableTags[weakMapTag]=false;var objectProto=Object.prototype;var objToString=objectProto.toString;function baseClone(value,isDeep,customizer,key,object,stackA,stackB){var result;if(customizer){result=object?customizer(value,key,object):customizer(value)}if(result!==undefined){return result}if(!isObject(value)){return value}var isArr=isArray(value);if(isArr){result=initCloneArray(value);if(!isDeep){return arrayCopy(value,result)}}else{var tag=objToString.call(value),isFunc=tag==funcTag;if(tag==objectTag||tag==argsTag||isFunc&&!object){if(isHostObject(value)){return object?value:{}}result=initCloneObject(isFunc?{}:value);if(!isDeep){return baseAssign(result,value)}}else{return cloneableTags[tag]?initCloneByTag(value,tag,isDeep):object?value:{}}}stackA||(stackA=[]);stackB||(stackB=[]);var length=stackA.length;while(length--){if(stackA[length]==value){return stackB[length]}}stackA.push(value);stackB.push(result);(isArr?arrayEach:baseForOwn)(value,function(subValue,key){result[key]=baseClone(subValue,isDeep,customizer,key,value,stackA,stackB)});return result}module.exports=baseClone},{"../lang/isArray":143,"../lang/isObject":147,"./arrayCopy":65,"./arrayEach":66,"./baseAssign":69,"./baseForOwn":79,"./initCloneArray":119,"./initCloneByTag":120,"./initCloneObject":121,"./isHostObject":123}],72:[function(require,module,exports){function baseCopy(source,props,object){object||(object={});var index=-1,length=props.length;while(++index<length){var key=props[index];object[key]=source[key]}return object}module.exports=baseCopy},{}],73:[function(require,module,exports){var isObject=require("../lang/isObject");var baseCreate=function(){function object(){}return function(prototype){if(isObject(prototype)){object.prototype=prototype;var result=new object;object.prototype=undefined}return result||{}}}();module.exports=baseCreate},{"../lang/isObject":147}],74:[function(require,module,exports){var baseForOwn=require("./baseForOwn"),createBaseEach=require("./createBaseEach"); + +var baseEach=createBaseEach(baseForOwn);module.exports=baseEach},{"./baseForOwn":79,"./createBaseEach":101}],75:[function(require,module,exports){function baseFind(collection,predicate,eachFunc,retKey){var result;eachFunc(collection,function(value,key,collection){if(predicate(value,key,collection)){result=retKey?key:value;return false}});return result}module.exports=baseFind},{}],76:[function(require,module,exports){function baseFindIndex(array,predicate,fromRight){var length=array.length,index=fromRight?length:-1;while(fromRight?index--:++index<length){if(predicate(array[index],index,array)){return index}}return-1}module.exports=baseFindIndex},{}],77:[function(require,module,exports){var createBaseFor=require("./createBaseFor");var baseFor=createBaseFor();module.exports=baseFor},{"./createBaseFor":102}],78:[function(require,module,exports){var baseFor=require("./baseFor"),keysIn=require("../object/keysIn");function baseForIn(object,iteratee){return baseFor(object,iteratee,keysIn)}module.exports=baseForIn},{"../object/keysIn":153,"./baseFor":77}],79:[function(require,module,exports){var baseFor=require("./baseFor"),keys=require("../object/keys");function baseForOwn(object,iteratee){return baseFor(object,iteratee,keys)}module.exports=baseForOwn},{"../object/keys":152,"./baseFor":77}],80:[function(require,module,exports){var toObject=require("./toObject");function baseGet(object,path,pathKey){if(object==null){return}object=toObject(object);if(pathKey!==undefined&&pathKey in object){path=[pathKey]}var index=0,length=path.length;while(object!=null&&index<length){object=toObject(object)[path[index++]]}return index&&index==length?object:undefined}module.exports=baseGet},{"./toObject":138}],81:[function(require,module,exports){var indexOfNaN=require("./indexOfNaN");function baseIndexOf(array,value,fromIndex){if(value!==value){return indexOfNaN(array,fromIndex)}var index=fromIndex-1,length=array.length;while(++index<length){if(array[index]===value){return index}}return-1}module.exports=baseIndexOf},{"./indexOfNaN":118}],82:[function(require,module,exports){var baseIsEqualDeep=require("./baseIsEqualDeep"),isObject=require("../lang/isObject"),isObjectLike=require("./isObjectLike");function baseIsEqual(value,other,customizer,isLoose,stackA,stackB){if(value===other){return true}if(value==null||other==null||!isObject(value)&&!isObjectLike(other)){return value!==value&&other!==other}return baseIsEqualDeep(value,other,baseIsEqual,customizer,isLoose,stackA,stackB)}module.exports=baseIsEqual},{"../lang/isObject":147,"./baseIsEqualDeep":83,"./isObjectLike":129}],83:[function(require,module,exports){var equalArrays=require("./equalArrays"),equalByTag=require("./equalByTag"),equalObjects=require("./equalObjects"),isArray=require("../lang/isArray"),isHostObject=require("./isHostObject"),isTypedArray=require("../lang/isTypedArray");var argsTag="[object Arguments]",arrayTag="[object Array]",objectTag="[object Object]";var objectProto=Object.prototype;var hasOwnProperty=objectProto.hasOwnProperty;var objToString=objectProto.toString;function baseIsEqualDeep(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objIsArr=isArray(object),othIsArr=isArray(other),objTag=arrayTag,othTag=arrayTag;if(!objIsArr){objTag=objToString.call(object);if(objTag==argsTag){objTag=objectTag}else if(objTag!=objectTag){objIsArr=isTypedArray(object)}}if(!othIsArr){othTag=objToString.call(other);if(othTag==argsTag){othTag=objectTag}else if(othTag!=objectTag){othIsArr=isTypedArray(other)}}var objIsObj=objTag==objectTag&&!isHostObject(object),othIsObj=othTag==objectTag&&!isHostObject(other),isSameTag=objTag==othTag;if(isSameTag&&!(objIsArr||objIsObj)){return equalByTag(object,other,objTag)}if(!isLoose){var objIsWrapped=objIsObj&&hasOwnProperty.call(object,"__wrapped__"),othIsWrapped=othIsObj&&hasOwnProperty.call(other,"__wrapped__");if(objIsWrapped||othIsWrapped){return equalFunc(objIsWrapped?object.value():object,othIsWrapped?other.value():other,customizer,isLoose,stackA,stackB)}}if(!isSameTag){return false}stackA||(stackA=[]);stackB||(stackB=[]);var length=stackA.length;while(length--){if(stackA[length]==object){return stackB[length]==other}}stackA.push(object);stackB.push(other);var result=(objIsArr?equalArrays:equalObjects)(object,other,equalFunc,customizer,isLoose,stackA,stackB);stackA.pop();stackB.pop();return result}module.exports=baseIsEqualDeep},{"../lang/isArray":143,"../lang/isTypedArray":150,"./equalArrays":110,"./equalByTag":111,"./equalObjects":112,"./isHostObject":123}],84:[function(require,module,exports){var baseIsEqual=require("./baseIsEqual"),toObject=require("./toObject");function baseIsMatch(object,matchData,customizer){var index=matchData.length,length=index,noCustomizer=!customizer;if(object==null){return!length}object=toObject(object);while(index--){var data=matchData[index];if(noCustomizer&&data[2]?data[1]!==object[data[0]]:!(data[0]in object)){return false}}while(++index<length){data=matchData[index];var key=data[0],objValue=object[key],srcValue=data[1];if(noCustomizer&&data[2]){if(objValue===undefined&&!(key in object)){return false}}else{var result=customizer?customizer(objValue,srcValue,key):undefined;if(!(result===undefined?baseIsEqual(srcValue,objValue,customizer,true):result)){return false}}}return true}module.exports=baseIsMatch},{"./baseIsEqual":82,"./toObject":138}],85:[function(require,module,exports){function baseLodash(){}module.exports=baseLodash},{}],86:[function(require,module,exports){var baseEach=require("./baseEach"),isArrayLike=require("./isArrayLike");function baseMap(collection,iteratee){var index=-1,result=isArrayLike(collection)?Array(collection.length):[];baseEach(collection,function(value,key,collection){result[++index]=iteratee(value,key,collection)});return result}module.exports=baseMap},{"./baseEach":74,"./isArrayLike":122}],87:[function(require,module,exports){var baseIsMatch=require("./baseIsMatch"),getMatchData=require("./getMatchData"),toObject=require("./toObject");function baseMatches(source){var matchData=getMatchData(source);if(matchData.length==1&&matchData[0][2]){var key=matchData[0][0],value=matchData[0][1];return function(object){if(object==null){return false}object=toObject(object);return object[key]===value&&(value!==undefined||key in object)}}return function(object){return baseIsMatch(object,matchData)}}module.exports=baseMatches},{"./baseIsMatch":84,"./getMatchData":116,"./toObject":138}],88:[function(require,module,exports){var baseGet=require("./baseGet"),baseIsEqual=require("./baseIsEqual"),baseSlice=require("./baseSlice"),isArray=require("../lang/isArray"),isKey=require("./isKey"),isStrictComparable=require("./isStrictComparable"),last=require("../array/last"),toObject=require("./toObject"),toPath=require("./toPath");function baseMatchesProperty(path,srcValue){var isArr=isArray(path),isCommon=isKey(path)&&isStrictComparable(srcValue),pathKey=path+"";path=toPath(path);return function(object){if(object==null){return false}var key=pathKey;object=toObject(object);if((isArr||!isCommon)&&!(key in object)){object=path.length==1?object:baseGet(object,baseSlice(path,0,-1));if(object==null){return false}key=last(path);object=toObject(object)}return object[key]===srcValue?srcValue!==undefined||key in object:baseIsEqual(srcValue,object[key],undefined,true)}}module.exports=baseMatchesProperty},{"../array/last":53,"../lang/isArray":143,"./baseGet":80,"./baseIsEqual":82,"./baseSlice":92,"./isKey":126,"./isStrictComparable":130,"./toObject":138,"./toPath":139}],89:[function(require,module,exports){var toObject=require("./toObject");function baseProperty(key){return function(object){return object==null?undefined:toObject(object)[key]}}module.exports=baseProperty},{"./toObject":138}],90:[function(require,module,exports){var baseGet=require("./baseGet"),toPath=require("./toPath");function basePropertyDeep(path){var pathKey=path+"";path=toPath(path);return function(object){return baseGet(object,path,pathKey)}}module.exports=basePropertyDeep},{"./baseGet":80,"./toPath":139}],91:[function(require,module,exports){var identity=require("../utility/identity"),metaMap=require("./metaMap");var baseSetData=!metaMap?identity:function(func,data){metaMap.set(func,data);return func};module.exports=baseSetData},{"../utility/identity":157,"./metaMap":132}],92:[function(require,module,exports){function baseSlice(array,start,end){var index=-1,length=array.length;start=start==null?0:+start||0;if(start<0){start=-start>length?0:length+start}end=end===undefined||end>length?length:+end||0;if(end<0){end+=length}length=start>end?0:end-start>>>0;start>>>=0;var result=Array(length);while(++index<length){result[index]=array[index+start]}return result}module.exports=baseSlice},{}],93:[function(require,module,exports){function baseToString(value){return value==null?"":value+""}module.exports=baseToString},{}],94:[function(require,module,exports){function baseValues(object,props){var index=-1,length=props.length,result=Array(length);while(++index<length){result[index]=object[props[index]]}return result}module.exports=baseValues},{}],95:[function(require,module,exports){var binaryIndexBy=require("./binaryIndexBy"),identity=require("../utility/identity");var MAX_ARRAY_LENGTH=4294967295,HALF_MAX_ARRAY_LENGTH=MAX_ARRAY_LENGTH>>>1;function binaryIndex(array,value,retHighest){var low=0,high=array?array.length:low;if(typeof value=="number"&&value===value&&high<=HALF_MAX_ARRAY_LENGTH){while(low<high){var mid=low+high>>>1,computed=array[mid];if((retHighest?computed<=value:computed<value)&&computed!==null){low=mid+1}else{high=mid}}return high}return binaryIndexBy(array,value,identity,retHighest)}module.exports=binaryIndex},{"../utility/identity":157,"./binaryIndexBy":96}],96:[function(require,module,exports){var nativeFloor=Math.floor,nativeMin=Math.min;var MAX_ARRAY_LENGTH=4294967295,MAX_ARRAY_INDEX=MAX_ARRAY_LENGTH-1;function binaryIndexBy(array,value,iteratee,retHighest){value=iteratee(value);var low=0,high=array?array.length:0,valIsNaN=value!==value,valIsNull=value===null,valIsUndef=value===undefined;while(low<high){var mid=nativeFloor((low+high)/2),computed=iteratee(array[mid]),isDef=computed!==undefined,isReflexive=computed===computed;if(valIsNaN){var setLow=isReflexive||retHighest}else if(valIsNull){setLow=isReflexive&&isDef&&(retHighest||computed!=null)}else if(valIsUndef){setLow=isReflexive&&(retHighest||isDef)}else if(computed==null){setLow=false}else{setLow=retHighest?computed<=value:computed<value}if(setLow){low=mid+1}else{high=mid}}return nativeMin(high,MAX_ARRAY_INDEX)}module.exports=binaryIndexBy},{}],97:[function(require,module,exports){var identity=require("../utility/identity");function bindCallback(func,thisArg,argCount){if(typeof func!="function"){return identity}if(thisArg===undefined){return func}switch(argCount){case 1:return function(value){return func.call(thisArg,value)};case 3:return function(value,index,collection){return func.call(thisArg,value,index,collection)};case 4:return function(accumulator,value,index,collection){return func.call(thisArg,accumulator,value,index,collection)};case 5:return function(value,other,key,object,source){return func.call(thisArg,value,other,key,object,source)}}return function(){return func.apply(thisArg,arguments)}}module.exports=bindCallback},{"../utility/identity":157}],98:[function(require,module,exports){(function(global){var ArrayBuffer=global.ArrayBuffer,Uint8Array=global.Uint8Array;function bufferClone(buffer){var result=new ArrayBuffer(buffer.byteLength),view=new Uint8Array(result);view.set(new Uint8Array(buffer));return result}module.exports=bufferClone}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],99:[function(require,module,exports){var nativeMax=Math.max;function composeArgs(args,partials,holders){var holdersLength=holders.length,argsIndex=-1,argsLength=nativeMax(args.length-holdersLength,0),leftIndex=-1,leftLength=partials.length,result=Array(leftLength+argsLength);while(++leftIndex<leftLength){result[leftIndex]=partials[leftIndex]}while(++argsIndex<holdersLength){result[holders[argsIndex]]=args[argsIndex]}while(argsLength--){result[leftIndex++]=args[argsIndex++]}return result}module.exports=composeArgs},{}],100:[function(require,module,exports){var nativeMax=Math.max;function composeArgsRight(args,partials,holders){var holdersIndex=-1,holdersLength=holders.length,argsIndex=-1,argsLength=nativeMax(args.length-holdersLength,0),rightIndex=-1,rightLength=partials.length,result=Array(argsLength+rightLength);while(++argsIndex<argsLength){result[argsIndex]=args[argsIndex]}var offset=argsIndex;while(++rightIndex<rightLength){result[offset+rightIndex]=partials[rightIndex]}while(++holdersIndex<holdersLength){result[offset+holders[holdersIndex]]=args[argsIndex++]}return result}module.exports=composeArgsRight},{}],101:[function(require,module,exports){var getLength=require("./getLength"),isLength=require("./isLength"),toObject=require("./toObject");function createBaseEach(eachFunc,fromRight){return function(collection,iteratee){var length=collection?getLength(collection):0;if(!isLength(length)){return eachFunc(collection,iteratee)}var index=fromRight?length:-1,iterable=toObject(collection);while(fromRight?index--:++index<length){if(iteratee(iterable[index],index,iterable)===false){break}}return collection}}module.exports=createBaseEach},{"./getLength":115,"./isLength":128,"./toObject":138}],102:[function(require,module,exports){var toObject=require("./toObject");function createBaseFor(fromRight){return function(object,iteratee,keysFunc){var iterable=toObject(object),props=keysFunc(object),length=props.length,index=fromRight?length:-1;while(fromRight?index--:++index<length){var key=props[index];if(iteratee(iterable[key],key,iterable)===false){break}}return object}}module.exports=createBaseFor},{"./toObject":138}],103:[function(require,module,exports){(function(global){var createCtorWrapper=require("./createCtorWrapper");function createBindWrapper(func,thisArg){var Ctor=createCtorWrapper(func);function wrapper(){var fn=this&&this!==global&&this instanceof wrapper?Ctor:func;return fn.apply(thisArg,arguments)}return wrapper}module.exports=createBindWrapper}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./createCtorWrapper":104}],104:[function(require,module,exports){var baseCreate=require("./baseCreate"),isObject=require("../lang/isObject");function createCtorWrapper(Ctor){return function(){var args=arguments;switch(args.length){case 0:return new Ctor;case 1:return new Ctor(args[0]);case 2:return new Ctor(args[0],args[1]);case 3:return new Ctor(args[0],args[1],args[2]);case 4:return new Ctor(args[0],args[1],args[2],args[3]);case 5:return new Ctor(args[0],args[1],args[2],args[3],args[4]);case 6:return new Ctor(args[0],args[1],args[2],args[3],args[4],args[5]);case 7:return new Ctor(args[0],args[1],args[2],args[3],args[4],args[5],args[6])}var thisBinding=baseCreate(Ctor.prototype),result=Ctor.apply(thisBinding,args);return isObject(result)?result:thisBinding}}module.exports=createCtorWrapper},{"../lang/isObject":147,"./baseCreate":73}],105:[function(require,module,exports){var baseCallback=require("./baseCallback"),baseFind=require("./baseFind"),baseFindIndex=require("./baseFindIndex"),isArray=require("../lang/isArray");function createFind(eachFunc,fromRight){return function(collection,predicate,thisArg){predicate=baseCallback(predicate,thisArg,3);if(isArray(collection)){var index=baseFindIndex(collection,predicate,fromRight);return index>-1?collection[index]:undefined}return baseFind(collection,predicate,eachFunc)}}module.exports=createFind},{"../lang/isArray":143,"./baseCallback":70,"./baseFind":75,"./baseFindIndex":76}],106:[function(require,module,exports){var bindCallback=require("./bindCallback"),isArray=require("../lang/isArray");function createForEach(arrayFunc,eachFunc){return function(collection,iteratee,thisArg){return typeof iteratee=="function"&&thisArg===undefined&&isArray(collection)?arrayFunc(collection,iteratee):eachFunc(collection,bindCallback(iteratee,thisArg,3))}}module.exports=createForEach},{"../lang/isArray":143,"./bindCallback":97}],107:[function(require,module,exports){(function(global){var arrayCopy=require("./arrayCopy"),composeArgs=require("./composeArgs"),composeArgsRight=require("./composeArgsRight"),createCtorWrapper=require("./createCtorWrapper"),isLaziable=require("./isLaziable"),reorder=require("./reorder"),replaceHolders=require("./replaceHolders"),setData=require("./setData");var BIND_FLAG=1,BIND_KEY_FLAG=2,CURRY_BOUND_FLAG=4,CURRY_FLAG=8,CURRY_RIGHT_FLAG=16,PARTIAL_FLAG=32,PARTIAL_RIGHT_FLAG=64,ARY_FLAG=128;var nativeMax=Math.max;function createHybridWrapper(func,bitmask,thisArg,partials,holders,partialsRight,holdersRight,argPos,ary,arity){var isAry=bitmask&ARY_FLAG,isBind=bitmask&BIND_FLAG,isBindKey=bitmask&BIND_KEY_FLAG,isCurry=bitmask&CURRY_FLAG,isCurryBound=bitmask&CURRY_BOUND_FLAG,isCurryRight=bitmask&CURRY_RIGHT_FLAG,Ctor=isBindKey?undefined:createCtorWrapper(func);function wrapper(){var length=arguments.length,index=length,args=Array(length);while(index--){args[index]=arguments[index]}if(partials){args=composeArgs(args,partials,holders)}if(partialsRight){args=composeArgsRight(args,partialsRight,holdersRight)}if(isCurry||isCurryRight){var placeholder=wrapper.placeholder,argsHolders=replaceHolders(args,placeholder);length-=argsHolders.length;if(length<arity){var newArgPos=argPos?arrayCopy(argPos):undefined,newArity=nativeMax(arity-length,0),newsHolders=isCurry?argsHolders:undefined,newHoldersRight=isCurry?undefined:argsHolders,newPartials=isCurry?args:undefined,newPartialsRight=isCurry?undefined:args;bitmask|=isCurry?PARTIAL_FLAG:PARTIAL_RIGHT_FLAG;bitmask&=~(isCurry?PARTIAL_RIGHT_FLAG:PARTIAL_FLAG);if(!isCurryBound){bitmask&=~(BIND_FLAG|BIND_KEY_FLAG)}var newData=[func,bitmask,thisArg,newPartials,newsHolders,newPartialsRight,newHoldersRight,newArgPos,ary,newArity],result=createHybridWrapper.apply(undefined,newData);if(isLaziable(func)){setData(result,newData)}result.placeholder=placeholder;return result}}var thisBinding=isBind?thisArg:this,fn=isBindKey?thisBinding[func]:func;if(argPos){args=reorder(args,argPos)}if(isAry&&ary<args.length){args.length=ary}if(this&&this!==global&&this instanceof wrapper){fn=Ctor||createCtorWrapper(func)}return fn.apply(thisBinding,args)}return wrapper}module.exports=createHybridWrapper}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./arrayCopy":65,"./composeArgs":99,"./composeArgsRight":100,"./createCtorWrapper":104,"./isLaziable":127,"./reorder":134,"./replaceHolders":135,"./setData":136}],108:[function(require,module,exports){(function(global){var createCtorWrapper=require("./createCtorWrapper");var BIND_FLAG=1;function createPartialWrapper(func,bitmask,thisArg,partials){var isBind=bitmask&BIND_FLAG,Ctor=createCtorWrapper(func);function wrapper(){var argsIndex=-1,argsLength=arguments.length,leftIndex=-1,leftLength=partials.length,args=Array(leftLength+argsLength);while(++leftIndex<leftLength){args[leftIndex]=partials[leftIndex]}while(argsLength--){args[leftIndex++]=arguments[++argsIndex]}var fn=this&&this!==global&&this instanceof wrapper?Ctor:func;return fn.apply(isBind?thisArg:this,args)}return wrapper}module.exports=createPartialWrapper}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./createCtorWrapper":104}],109:[function(require,module,exports){var baseSetData=require("./baseSetData"),createBindWrapper=require("./createBindWrapper"),createHybridWrapper=require("./createHybridWrapper"),createPartialWrapper=require("./createPartialWrapper"),getData=require("./getData"),mergeData=require("./mergeData"),setData=require("./setData");var BIND_FLAG=1,BIND_KEY_FLAG=2,PARTIAL_FLAG=32,PARTIAL_RIGHT_FLAG=64;var FUNC_ERROR_TEXT="Expected a function";var nativeMax=Math.max;function createWrapper(func,bitmask,thisArg,partials,holders,argPos,ary,arity){var isBindKey=bitmask&BIND_KEY_FLAG;if(!isBindKey&&typeof func!="function"){throw new TypeError(FUNC_ERROR_TEXT)}var length=partials?partials.length:0;if(!length){bitmask&=~(PARTIAL_FLAG|PARTIAL_RIGHT_FLAG);partials=holders=undefined}length-=holders?holders.length:0;if(bitmask&PARTIAL_RIGHT_FLAG){var partialsRight=partials,holdersRight=holders;partials=holders=undefined}var data=isBindKey?undefined:getData(func),newData=[func,bitmask,thisArg,partials,holders,partialsRight,holdersRight,argPos,ary,arity];if(data){mergeData(newData,data);bitmask=newData[1];arity=newData[9]}newData[9]=arity==null?isBindKey?0:func.length:nativeMax(arity-length,0)||0;if(bitmask==BIND_FLAG){var result=createBindWrapper(newData[0],newData[2])}else if((bitmask==PARTIAL_FLAG||bitmask==(BIND_FLAG|PARTIAL_FLAG))&&!newData[4].length){result=createPartialWrapper.apply(undefined,newData)}else{result=createHybridWrapper.apply(undefined,newData)}var setter=data?baseSetData:setData;return setter(result,newData)}module.exports=createWrapper},{"./baseSetData":91,"./createBindWrapper":103,"./createHybridWrapper":107,"./createPartialWrapper":108,"./getData":113,"./mergeData":131,"./setData":136}],110:[function(require,module,exports){var arraySome=require("./arraySome");function equalArrays(array,other,equalFunc,customizer,isLoose,stackA,stackB){var index=-1,arrLength=array.length,othLength=other.length;if(arrLength!=othLength&&!(isLoose&&othLength>arrLength)){return false}while(++index<arrLength){var arrValue=array[index],othValue=other[index],result=customizer?customizer(isLoose?othValue:arrValue,isLoose?arrValue:othValue,index):undefined;if(result!==undefined){if(result){continue}return false}if(isLoose){if(!arraySome(other,function(othValue){return arrValue===othValue||equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB)})){return false}}else if(!(arrValue===othValue||equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB))){return false}}return true}module.exports=equalArrays},{"./arraySome":68}],111:[function(require,module,exports){var boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",numberTag="[object Number]",regexpTag="[object RegExp]",stringTag="[object String]";function equalByTag(object,other,tag){switch(tag){case boolTag:case dateTag:return+object==+other;case errorTag:return object.name==other.name&&object.message==other.message;case numberTag:return object!=+object?other!=+other:object==+other;case regexpTag:case stringTag:return object==other+""}return false}module.exports=equalByTag},{}],112:[function(require,module,exports){var keys=require("../object/keys");var objectProto=Object.prototype;var hasOwnProperty=objectProto.hasOwnProperty;function equalObjects(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objProps=keys(object),objLength=objProps.length,othProps=keys(other),othLength=othProps.length;if(objLength!=othLength&&!isLoose){return false}var index=objLength;while(index--){var key=objProps[index];if(!(isLoose?key in other:hasOwnProperty.call(other,key))){return false}}var skipCtor=isLoose;while(++index<objLength){key=objProps[index];var objValue=object[key],othValue=other[key],result=customizer?customizer(isLoose?othValue:objValue,isLoose?objValue:othValue,key):undefined;if(!(result===undefined?equalFunc(objValue,othValue,customizer,isLoose,stackA,stackB):result)){return false}skipCtor||(skipCtor=key=="constructor")}if(!skipCtor){var objCtor=object.constructor,othCtor=other.constructor;if(objCtor!=othCtor&&("constructor"in object&&"constructor"in other)&&!(typeof objCtor=="function"&&objCtor instanceof objCtor&&typeof othCtor=="function"&&othCtor instanceof othCtor)){return false}}return true}module.exports=equalObjects},{"../object/keys":152}],113:[function(require,module,exports){var metaMap=require("./metaMap"),noop=require("../utility/noop");var getData=!metaMap?noop:function(func){return metaMap.get(func)};module.exports=getData},{"../utility/noop":158,"./metaMap":132}],114:[function(require,module,exports){var realNames=require("./realNames");function getFuncName(func){var result=func.name,array=realNames[result],length=array?array.length:0;while(length--){var data=array[length],otherFunc=data.func;if(otherFunc==null||otherFunc==func){return data.name}}return result}module.exports=getFuncName},{"./realNames":133}],115:[function(require,module,exports){var baseProperty=require("./baseProperty");var getLength=baseProperty("length");module.exports=getLength},{"./baseProperty":89}],116:[function(require,module,exports){var isStrictComparable=require("./isStrictComparable"),pairs=require("../object/pairs");function getMatchData(object){var result=pairs(object),length=result.length;while(length--){result[length][2]=isStrictComparable(result[length][1])}return result}module.exports=getMatchData},{"../object/pairs":154,"./isStrictComparable":130}],117:[function(require,module,exports){var isNative=require("../lang/isNative");function getNative(object,key){var value=object==null?undefined:object[key];return isNative(value)?value:undefined}module.exports=getNative},{"../lang/isNative":146}],118:[function(require,module,exports){function indexOfNaN(array,fromIndex,fromRight){var length=array.length,index=fromIndex+(fromRight?0:-1);while(fromRight?index--:++index<length){var other=array[index];if(other!==other){return index}}return-1}module.exports=indexOfNaN},{}],119:[function(require,module,exports){var objectProto=Object.prototype;var hasOwnProperty=objectProto.hasOwnProperty;function initCloneArray(array){var length=array.length,result=new array.constructor(length);if(length&&typeof array[0]=="string"&&hasOwnProperty.call(array,"index")){result.index=array.index;result.input=array.input}return result}module.exports=initCloneArray},{}],120:[function(require,module,exports){(function(global){var bufferClone=require("./bufferClone");var boolTag="[object Boolean]",dateTag="[object Date]",numberTag="[object Number]",regexpTag="[object RegExp]",stringTag="[object String]";var arrayBufferTag="[object ArrayBuffer]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]";var reFlags=/\w*$/;var Uint8Array=global.Uint8Array;var ctorByTag={};ctorByTag[float32Tag]=global.Float32Array;ctorByTag[float64Tag]=global.Float64Array;ctorByTag[int8Tag]=global.Int8Array;ctorByTag[int16Tag]=global.Int16Array;ctorByTag[int32Tag]=global.Int32Array;ctorByTag[uint8Tag]=Uint8Array;ctorByTag[uint8ClampedTag]=global.Uint8ClampedArray;ctorByTag[uint16Tag]=global.Uint16Array;ctorByTag[uint32Tag]=global.Uint32Array;function initCloneByTag(object,tag,isDeep){var Ctor=object.constructor;switch(tag){case arrayBufferTag:return bufferClone(object);case boolTag:case dateTag:return new Ctor(+object);case float32Tag:case float64Tag:case int8Tag:case int16Tag:case int32Tag:case uint8Tag:case uint8ClampedTag:case uint16Tag:case uint32Tag:if(Ctor instanceof Ctor){Ctor=ctorByTag[tag]}var buffer=object.buffer;return new Ctor(isDeep?bufferClone(buffer):buffer,object.byteOffset,object.length);case numberTag:case stringTag:return new Ctor(object);case regexpTag:var result=new Ctor(object.source,reFlags.exec(object));result.lastIndex=object.lastIndex}return result}module.exports=initCloneByTag}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./bufferClone":98}],121:[function(require,module,exports){function initCloneObject(object){var Ctor=object.constructor;if(!(typeof Ctor=="function"&&Ctor instanceof Ctor)){Ctor=Object}return new Ctor}module.exports=initCloneObject},{}],122:[function(require,module,exports){var getLength=require("./getLength"),isLength=require("./isLength");function isArrayLike(value){return value!=null&&isLength(getLength(value))}module.exports=isArrayLike},{"./getLength":115,"./isLength":128}],123:[function(require,module,exports){var isHostObject=function(){try{Object({toString:0}+"")}catch(e){return function(){return false}}return function(value){return typeof value.toString!="function"&&typeof(value+"")=="string"}}();module.exports=isHostObject},{}],124:[function(require,module,exports){var reIsUint=/^\d+$/;var MAX_SAFE_INTEGER=9007199254740991;function isIndex(value,length){value=typeof value=="number"||reIsUint.test(value)?+value:-1;length=length==null?MAX_SAFE_INTEGER:length;return value>-1&&value%1==0&&value<length}module.exports=isIndex},{}],125:[function(require,module,exports){var isArrayLike=require("./isArrayLike"),isIndex=require("./isIndex"),isObject=require("../lang/isObject");function isIterateeCall(value,index,object){if(!isObject(object)){return false}var type=typeof index;if(type=="number"?isArrayLike(object)&&isIndex(index,object.length):type=="string"&&index in object){var other=object[index];return value===value?value===other:other!==other}return false}module.exports=isIterateeCall},{"../lang/isObject":147,"./isArrayLike":122,"./isIndex":124}],126:[function(require,module,exports){var isArray=require("../lang/isArray"),toObject=require("./toObject");var reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/;function isKey(value,object){var type=typeof value;if(type=="string"&&reIsPlainProp.test(value)||type=="number"){return true}if(isArray(value)){return false}var result=!reIsDeepProp.test(value);return result||object!=null&&value in toObject(object)}module.exports=isKey},{"../lang/isArray":143,"./toObject":138}],127:[function(require,module,exports){var LazyWrapper=require("./LazyWrapper"),getData=require("./getData"),getFuncName=require("./getFuncName"),lodash=require("../chain/lodash");function isLaziable(func){var funcName=getFuncName(func);if(!(funcName in LazyWrapper.prototype)){return false}var other=lodash[funcName];if(func===other){return true}var data=getData(other);return!!data&&func===data[0]}module.exports=isLaziable},{"../chain/lodash":54,"./LazyWrapper":63,"./getData":113,"./getFuncName":114}],128:[function(require,module,exports){var MAX_SAFE_INTEGER=9007199254740991;function isLength(value){return typeof value=="number"&&value>-1&&value%1==0&&value<=MAX_SAFE_INTEGER}module.exports=isLength},{}],129:[function(require,module,exports){function isObjectLike(value){return!!value&&typeof value=="object"}module.exports=isObjectLike},{}],130:[function(require,module,exports){var isObject=require("../lang/isObject");function isStrictComparable(value){return value===value&&!isObject(value)}module.exports=isStrictComparable},{"../lang/isObject":147}],131:[function(require,module,exports){var arrayCopy=require("./arrayCopy"),composeArgs=require("./composeArgs"),composeArgsRight=require("./composeArgsRight"),replaceHolders=require("./replaceHolders");var BIND_FLAG=1,CURRY_BOUND_FLAG=4,CURRY_FLAG=8,ARY_FLAG=128,REARG_FLAG=256;var PLACEHOLDER="__lodash_placeholder__";var nativeMin=Math.min;function mergeData(data,source){var bitmask=data[1],srcBitmask=source[1],newBitmask=bitmask|srcBitmask,isCommon=newBitmask<ARY_FLAG;var isCombo=srcBitmask==ARY_FLAG&&bitmask==CURRY_FLAG||srcBitmask==ARY_FLAG&&bitmask==REARG_FLAG&&data[7].length<=source[8]||srcBitmask==(ARY_FLAG|REARG_FLAG)&&bitmask==CURRY_FLAG;if(!(isCommon||isCombo)){return data}if(srcBitmask&BIND_FLAG){data[2]=source[2];newBitmask|=bitmask&BIND_FLAG?0:CURRY_BOUND_FLAG}var value=source[3];if(value){var partials=data[3];data[3]=partials?composeArgs(partials,value,source[4]):arrayCopy(value);data[4]=partials?replaceHolders(data[3],PLACEHOLDER):arrayCopy(source[4])}value=source[5];if(value){partials=data[5];data[5]=partials?composeArgsRight(partials,value,source[6]):arrayCopy(value);data[6]=partials?replaceHolders(data[5],PLACEHOLDER):arrayCopy(source[6]); + +}value=source[7];if(value){data[7]=arrayCopy(value)}if(srcBitmask&ARY_FLAG){data[8]=data[8]==null?source[8]:nativeMin(data[8],source[8])}if(data[9]==null){data[9]=source[9]}data[0]=source[0];data[1]=newBitmask;return data}module.exports=mergeData},{"./arrayCopy":65,"./composeArgs":99,"./composeArgsRight":100,"./replaceHolders":135}],132:[function(require,module,exports){(function(global){var getNative=require("./getNative");var WeakMap=getNative(global,"WeakMap");var metaMap=WeakMap&&new WeakMap;module.exports=metaMap}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./getNative":117}],133:[function(require,module,exports){var realNames={};module.exports=realNames},{}],134:[function(require,module,exports){var arrayCopy=require("./arrayCopy"),isIndex=require("./isIndex");var nativeMin=Math.min;function reorder(array,indexes){var arrLength=array.length,length=nativeMin(indexes.length,arrLength),oldArray=arrayCopy(array);while(length--){var index=indexes[length];array[length]=isIndex(index,arrLength)?oldArray[index]:undefined}return array}module.exports=reorder},{"./arrayCopy":65,"./isIndex":124}],135:[function(require,module,exports){var PLACEHOLDER="__lodash_placeholder__";function replaceHolders(array,placeholder){var index=-1,length=array.length,resIndex=-1,result=[];while(++index<length){if(array[index]===placeholder){array[index]=PLACEHOLDER;result[++resIndex]=index}}return result}module.exports=replaceHolders},{}],136:[function(require,module,exports){var baseSetData=require("./baseSetData"),now=require("../date/now");var HOT_COUNT=150,HOT_SPAN=16;var setData=function(){var count=0,lastCalled=0;return function(key,value){var stamp=now(),remaining=HOT_SPAN-(stamp-lastCalled);lastCalled=stamp;if(remaining>0){if(++count>=HOT_COUNT){return key}}else{count=0}return baseSetData(key,value)}}();module.exports=setData},{"../date/now":60,"./baseSetData":91}],137:[function(require,module,exports){var isArguments=require("../lang/isArguments"),isArray=require("../lang/isArray"),isIndex=require("./isIndex"),isLength=require("./isLength"),isString=require("../lang/isString"),keysIn=require("../object/keysIn");var objectProto=Object.prototype;var hasOwnProperty=objectProto.hasOwnProperty;function shimKeys(object){var props=keysIn(object),propsLength=props.length,length=propsLength&&object.length;var allowIndexes=!!length&&isLength(length)&&(isArray(object)||isArguments(object)||isString(object));var index=-1,result=[];while(++index<propsLength){var key=props[index];if(allowIndexes&&isIndex(key,length)||hasOwnProperty.call(object,key)){result.push(key)}}return result}module.exports=shimKeys},{"../lang/isArguments":142,"../lang/isArray":143,"../lang/isString":149,"../object/keysIn":153,"./isIndex":124,"./isLength":128}],138:[function(require,module,exports){var isObject=require("../lang/isObject"),isString=require("../lang/isString"),support=require("../support");function toObject(value){if(support.unindexedChars&&isString(value)){var index=-1,length=value.length,result=Object(value);while(++index<length){result[index]=value.charAt(index)}return result}return isObject(value)?value:Object(value)}module.exports=toObject},{"../lang/isObject":147,"../lang/isString":149,"../support":156}],139:[function(require,module,exports){var baseToString=require("./baseToString"),isArray=require("../lang/isArray");var rePropName=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g;var reEscapeChar=/\\(\\)?/g;function toPath(value){if(isArray(value)){return value}var result=[];baseToString(value).replace(rePropName,function(match,number,quote,string){result.push(quote?string.replace(reEscapeChar,"$1"):number||match)});return result}module.exports=toPath},{"../lang/isArray":143,"./baseToString":93}],140:[function(require,module,exports){var LazyWrapper=require("./LazyWrapper"),LodashWrapper=require("./LodashWrapper"),arrayCopy=require("./arrayCopy");function wrapperClone(wrapper){return wrapper instanceof LazyWrapper?wrapper.clone():new LodashWrapper(wrapper.__wrapped__,wrapper.__chain__,arrayCopy(wrapper.__actions__))}module.exports=wrapperClone},{"./LazyWrapper":63,"./LodashWrapper":64,"./arrayCopy":65}],141:[function(require,module,exports){var baseClone=require("../internal/baseClone"),bindCallback=require("../internal/bindCallback");function cloneDeep(value,customizer,thisArg){return typeof customizer=="function"?baseClone(value,true,bindCallback(customizer,thisArg,1)):baseClone(value,true)}module.exports=cloneDeep},{"../internal/baseClone":71,"../internal/bindCallback":97}],142:[function(require,module,exports){var isArrayLike=require("../internal/isArrayLike"),isObjectLike=require("../internal/isObjectLike");var objectProto=Object.prototype;var hasOwnProperty=objectProto.hasOwnProperty;var propertyIsEnumerable=objectProto.propertyIsEnumerable;function isArguments(value){return isObjectLike(value)&&isArrayLike(value)&&hasOwnProperty.call(value,"callee")&&!propertyIsEnumerable.call(value,"callee")}module.exports=isArguments},{"../internal/isArrayLike":122,"../internal/isObjectLike":129}],143:[function(require,module,exports){var getNative=require("../internal/getNative"),isLength=require("../internal/isLength"),isObjectLike=require("../internal/isObjectLike");var arrayTag="[object Array]";var objectProto=Object.prototype;var objToString=objectProto.toString;var nativeIsArray=getNative(Array,"isArray");var isArray=nativeIsArray||function(value){return isObjectLike(value)&&isLength(value.length)&&objToString.call(value)==arrayTag};module.exports=isArray},{"../internal/getNative":117,"../internal/isLength":128,"../internal/isObjectLike":129}],144:[function(require,module,exports){var isArguments=require("./isArguments"),isArray=require("./isArray"),isArrayLike=require("../internal/isArrayLike"),isFunction=require("./isFunction"),isObjectLike=require("../internal/isObjectLike"),isString=require("./isString"),keys=require("../object/keys");function isEmpty(value){if(value==null){return true}if(isArrayLike(value)&&(isArray(value)||isString(value)||isArguments(value)||isObjectLike(value)&&isFunction(value.splice))){return!value.length}return!keys(value).length}module.exports=isEmpty},{"../internal/isArrayLike":122,"../internal/isObjectLike":129,"../object/keys":152,"./isArguments":142,"./isArray":143,"./isFunction":145,"./isString":149}],145:[function(require,module,exports){var isObject=require("./isObject");var funcTag="[object Function]";var objectProto=Object.prototype;var objToString=objectProto.toString;function isFunction(value){return isObject(value)&&objToString.call(value)==funcTag}module.exports=isFunction},{"./isObject":147}],146:[function(require,module,exports){var isFunction=require("./isFunction"),isHostObject=require("../internal/isHostObject"),isObjectLike=require("../internal/isObjectLike");var reIsHostCtor=/^\[object .+?Constructor\]$/;var objectProto=Object.prototype;var fnToString=Function.prototype.toString;var hasOwnProperty=objectProto.hasOwnProperty;var reIsNative=RegExp("^"+fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function isNative(value){if(value==null){return false}if(isFunction(value)){return reIsNative.test(fnToString.call(value))}return isObjectLike(value)&&(isHostObject(value)?reIsNative:reIsHostCtor).test(value)}module.exports=isNative},{"../internal/isHostObject":123,"../internal/isObjectLike":129,"./isFunction":145}],147:[function(require,module,exports){function isObject(value){var type=typeof value;return!!value&&(type=="object"||type=="function")}module.exports=isObject},{}],148:[function(require,module,exports){var baseForIn=require("../internal/baseForIn"),isArguments=require("./isArguments"),isHostObject=require("../internal/isHostObject"),isObjectLike=require("../internal/isObjectLike"),support=require("../support");var objectTag="[object Object]";var objectProto=Object.prototype;var hasOwnProperty=objectProto.hasOwnProperty;var objToString=objectProto.toString;function isPlainObject(value){var Ctor;if(!(isObjectLike(value)&&objToString.call(value)==objectTag&&!isHostObject(value)&&!isArguments(value))||!hasOwnProperty.call(value,"constructor")&&(Ctor=value.constructor,typeof Ctor=="function"&&!(Ctor instanceof Ctor))){return false}var result;if(support.ownLast){baseForIn(value,function(subValue,key,object){result=hasOwnProperty.call(object,key);return false});return result!==false}baseForIn(value,function(subValue,key){result=key});return result===undefined||hasOwnProperty.call(value,result)}module.exports=isPlainObject},{"../internal/baseForIn":78,"../internal/isHostObject":123,"../internal/isObjectLike":129,"../support":156,"./isArguments":142}],149:[function(require,module,exports){var isObjectLike=require("../internal/isObjectLike");var stringTag="[object String]";var objectProto=Object.prototype;var objToString=objectProto.toString;function isString(value){return typeof value=="string"||isObjectLike(value)&&objToString.call(value)==stringTag}module.exports=isString},{"../internal/isObjectLike":129}],150:[function(require,module,exports){var isLength=require("../internal/isLength"),isObjectLike=require("../internal/isObjectLike");var argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",mapTag="[object Map]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",weakMapTag="[object WeakMap]";var arrayBufferTag="[object ArrayBuffer]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]";var typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=true;typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=false;var objectProto=Object.prototype;var objToString=objectProto.toString;function isTypedArray(value){return isObjectLike(value)&&isLength(value.length)&&!!typedArrayTags[objToString.call(value)]}module.exports=isTypedArray},{"../internal/isLength":128,"../internal/isObjectLike":129}],151:[function(require,module,exports){function isUndefined(value){return value===undefined}module.exports=isUndefined},{}],152:[function(require,module,exports){var getNative=require("../internal/getNative"),isArrayLike=require("../internal/isArrayLike"),isObject=require("../lang/isObject"),shimKeys=require("../internal/shimKeys"),support=require("../support");var nativeKeys=getNative(Object,"keys");var keys=!nativeKeys?shimKeys:function(object){var Ctor=object==null?undefined:object.constructor;if(typeof Ctor=="function"&&Ctor.prototype===object||(typeof object=="function"?support.enumPrototypes:isArrayLike(object))){return shimKeys(object)}return isObject(object)?nativeKeys(object):[]};module.exports=keys},{"../internal/getNative":117,"../internal/isArrayLike":122,"../internal/shimKeys":137,"../lang/isObject":147,"../support":156}],153:[function(require,module,exports){var arrayEach=require("../internal/arrayEach"),isArguments=require("../lang/isArguments"),isArray=require("../lang/isArray"),isFunction=require("../lang/isFunction"),isIndex=require("../internal/isIndex"),isLength=require("../internal/isLength"),isObject=require("../lang/isObject"),isString=require("../lang/isString"),support=require("../support");var arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",stringTag="[object String]";var shadowProps=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"];var errorProto=Error.prototype,objectProto=Object.prototype,stringProto=String.prototype;var hasOwnProperty=objectProto.hasOwnProperty;var objToString=objectProto.toString;var nonEnumProps={};nonEnumProps[arrayTag]=nonEnumProps[dateTag]=nonEnumProps[numberTag]={constructor:true,toLocaleString:true,toString:true,valueOf:true};nonEnumProps[boolTag]=nonEnumProps[stringTag]={constructor:true,toString:true,valueOf:true};nonEnumProps[errorTag]=nonEnumProps[funcTag]=nonEnumProps[regexpTag]={constructor:true,toString:true};nonEnumProps[objectTag]={constructor:true};arrayEach(shadowProps,function(key){for(var tag in nonEnumProps){if(hasOwnProperty.call(nonEnumProps,tag)){var props=nonEnumProps[tag];props[key]=hasOwnProperty.call(props,key)}}});function keysIn(object){if(object==null){return[]}if(!isObject(object)){object=Object(object)}var length=object.length;length=length&&isLength(length)&&(isArray(object)||isArguments(object)||isString(object))&&length||0;var Ctor=object.constructor,index=-1,proto=isFunction(Ctor)&&Ctor.prototype||objectProto,isProto=proto===object,result=Array(length),skipIndexes=length>0,skipErrorProps=support.enumErrorProps&&(object===errorProto||object instanceof Error),skipProto=support.enumPrototypes&&isFunction(object);while(++index<length){result[index]=index+""}for(var key in object){if(!(skipProto&&key=="prototype")&&!(skipErrorProps&&(key=="message"||key=="name"))&&!(skipIndexes&&isIndex(key,length))&&!(key=="constructor"&&(isProto||!hasOwnProperty.call(object,key)))){result.push(key)}}if(support.nonEnumShadows&&object!==objectProto){var tag=object===stringProto?stringTag:object===errorProto?errorTag:objToString.call(object),nonEnums=nonEnumProps[tag]||nonEnumProps[objectTag];if(tag==objectTag){proto=objectProto}length=shadowProps.length;while(length--){key=shadowProps[length];var nonEnum=nonEnums[key];if(!(isProto&&nonEnum)&&(nonEnum?hasOwnProperty.call(object,key):object[key]!==proto[key])){result.push(key)}}}return result}module.exports=keysIn},{"../internal/arrayEach":66,"../internal/isIndex":124,"../internal/isLength":128,"../lang/isArguments":142,"../lang/isArray":143,"../lang/isFunction":145,"../lang/isObject":147,"../lang/isString":149,"../support":156}],154:[function(require,module,exports){var keys=require("./keys"),toObject=require("../internal/toObject");function pairs(object){object=toObject(object);var index=-1,props=keys(object),length=props.length,result=Array(length);while(++index<length){var key=props[index];result[index]=[key,object[key]]}return result}module.exports=pairs},{"../internal/toObject":138,"./keys":152}],155:[function(require,module,exports){var baseValues=require("../internal/baseValues"),keys=require("./keys");function values(object){return baseValues(object,keys(object))}module.exports=values},{"../internal/baseValues":94,"./keys":152}],156:[function(require,module,exports){var arrayProto=Array.prototype,errorProto=Error.prototype,objectProto=Object.prototype;var propertyIsEnumerable=objectProto.propertyIsEnumerable,splice=arrayProto.splice;var support={};(function(x){var Ctor=function(){this.x=x},object={0:x,length:x},props=[];Ctor.prototype={valueOf:x,y:x};for(var key in new Ctor){props.push(key)}support.enumErrorProps=propertyIsEnumerable.call(errorProto,"message")||propertyIsEnumerable.call(errorProto,"name");support.enumPrototypes=propertyIsEnumerable.call(Ctor,"prototype");support.nonEnumShadows=!/valueOf/.test(props);support.ownLast=props[0]!="x";support.spliceObjects=(splice.call(object,0,1),!object[0]);support.unindexedChars="x"[0]+Object("x")[0]!="xx"})(1,0);module.exports=support},{}],157:[function(require,module,exports){function identity(value){return value}module.exports=identity},{}],158:[function(require,module,exports){function noop(){}module.exports=noop},{}],159:[function(require,module,exports){var baseProperty=require("../internal/baseProperty"),basePropertyDeep=require("../internal/basePropertyDeep"),isKey=require("../internal/isKey");function property(path){return isKey(path)?baseProperty(path):basePropertyDeep(path)}module.exports=property},{"../internal/baseProperty":89,"../internal/basePropertyDeep":90,"../internal/isKey":126}],160:[function(require,module,exports){var Emitter=require("emitter");var reduce=require("reduce");var root="undefined"==typeof window?this||self:window;function noop(){}function isHost(obj){var str={}.toString.call(obj);switch(str){case"[object File]":case"[object Blob]":case"[object FormData]":return true;default:return false}}request.getXHR=function(){if(root.XMLHttpRequest&&(!root.location||"file:"!=root.location.protocol||!root.ActiveXObject)){return new XMLHttpRequest}else{try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(e){}}return false};var trim="".trim?function(s){return s.trim()}:function(s){return s.replace(/(^\s*|\s*$)/g,"")};function isObject(obj){return obj===Object(obj)}function serialize(obj){if(!isObject(obj))return obj;var pairs=[];for(var key in obj){if(null!=obj[key]){pairs.push(encodeURIComponent(key)+"="+encodeURIComponent(obj[key]))}}return pairs.join("&")}request.serializeObject=serialize;function parseString(str){var obj={};var pairs=str.split("&");var parts;var pair;for(var i=0,len=pairs.length;i<len;++i){pair=pairs[i];parts=pair.split("=");obj[decodeURIComponent(parts[0])]=decodeURIComponent(parts[1])}return obj}request.parseString=parseString;request.types={html:"text/html",json:"application/json",xml:"application/xml",urlencoded:"application/x-www-form-urlencoded",form:"application/x-www-form-urlencoded","form-data":"application/x-www-form-urlencoded"};request.serialize={"application/x-www-form-urlencoded":serialize,"application/json":JSON.stringify};request.parse={"application/x-www-form-urlencoded":parseString,"application/json":JSON.parse};function parseHeader(str){var lines=str.split(/\r?\n/);var fields={};var index;var line;var field;var val;lines.pop();for(var i=0,len=lines.length;i<len;++i){line=lines[i];index=line.indexOf(":");field=line.slice(0,index).toLowerCase();val=trim(line.slice(index+1));fields[field]=val}return fields}function type(str){return str.split(/ *; */).shift()}function params(str){return reduce(str.split(/ *; */),function(obj,str){var parts=str.split(/ *= */),key=parts.shift(),val=parts.shift();if(key&&val)obj[key]=val;return obj},{})}function Response(req,options){options=options||{};this.req=req;this.xhr=this.req.xhr;this.text=this.req.method!="HEAD"&&(this.xhr.responseType===""||this.xhr.responseType==="text")||typeof this.xhr.responseType==="undefined"?this.xhr.responseText:null;this.statusText=this.req.xhr.statusText;this.setStatusProperties(this.xhr.status);this.header=this.headers=parseHeader(this.xhr.getAllResponseHeaders());this.header["content-type"]=this.xhr.getResponseHeader("content-type");this.setHeaderProperties(this.header);this.body=this.req.method!="HEAD"?this.parseBody(this.text?this.text:this.xhr.response):null}Response.prototype.get=function(field){return this.header[field.toLowerCase()]};Response.prototype.setHeaderProperties=function(header){var ct=this.header["content-type"]||"";this.type=type(ct);var obj=params(ct);for(var key in obj)this[key]=obj[key]};Response.prototype.parseBody=function(str){var parse=request.parse[this.type];return parse&&str&&(str.length||str instanceof Object)?parse(str):null};Response.prototype.setStatusProperties=function(status){if(status===1223){status=204}var type=status/100|0;this.status=status;this.statusType=type;this.info=1==type;this.ok=2==type;this.clientError=4==type;this.serverError=5==type;this.error=4==type||5==type?this.toError():false;this.accepted=202==status;this.noContent=204==status;this.badRequest=400==status;this.unauthorized=401==status;this.notAcceptable=406==status;this.notFound=404==status;this.forbidden=403==status};Response.prototype.toError=function(){var req=this.req;var method=req.method;var url=req.url;var msg="cannot "+method+" "+url+" ("+this.status+")";var err=new Error(msg);err.status=this.status;err.method=method;err.url=url;return err};request.Response=Response;function Request(method,url){var self=this;Emitter.call(this);this._query=this._query||[];this.method=method;this.url=url;this.header={};this._header={};this.on("end",function(){var err=null;var res=null;try{res=new Response(self)}catch(e){err=new Error("Parser is unable to parse the response");err.parse=true;err.original=e;return self.callback(err)}self.emit("response",res);if(err){return self.callback(err,res)}if(res.status>=200&&res.status<300){return self.callback(err,res)}var new_err=new Error(res.statusText||"Unsuccessful HTTP response");new_err.original=err;new_err.response=res;new_err.status=res.status;self.callback(err||new_err,res)})}Emitter(Request.prototype);Request.prototype.use=function(fn){fn(this);return this};Request.prototype.timeout=function(ms){this._timeout=ms;return this};Request.prototype.clearTimeout=function(){this._timeout=0;clearTimeout(this._timer);return this};Request.prototype.abort=function(){if(this.aborted)return;this.aborted=true;this.xhr.abort();this.clearTimeout();this.emit("abort");return this};Request.prototype.set=function(field,val){if(isObject(field)){for(var key in field){this.set(key,field[key])}return this}this._header[field.toLowerCase()]=val;this.header[field]=val;return this};Request.prototype.unset=function(field){delete this._header[field.toLowerCase()];delete this.header[field];return this};Request.prototype.getHeader=function(field){return this._header[field.toLowerCase()]};Request.prototype.type=function(type){this.set("Content-Type",request.types[type]||type);return this};Request.prototype.accept=function(type){this.set("Accept",request.types[type]||type);return this};Request.prototype.auth=function(user,pass){var str=btoa(user+":"+pass);this.set("Authorization","Basic "+str);return this};Request.prototype.query=function(val){if("string"!=typeof val)val=serialize(val);if(val)this._query.push(val);return this};Request.prototype.field=function(name,val){if(!this._formData)this._formData=new root.FormData;this._formData.append(name,val);return this};Request.prototype.attach=function(field,file,filename){if(!this._formData)this._formData=new root.FormData;this._formData.append(field,file,filename);return this};Request.prototype.send=function(data){var obj=isObject(data);var type=this.getHeader("Content-Type");if(obj&&isObject(this._data)){for(var key in data){this._data[key]=data[key]}}else if("string"==typeof data){if(!type)this.type("form");type=this.getHeader("Content-Type");if("application/x-www-form-urlencoded"==type){this._data=this._data?this._data+"&"+data:data}else{this._data=(this._data||"")+data}}else{this._data=data}if(!obj||isHost(data))return this;if(!type)this.type("json");return this};Request.prototype.callback=function(err,res){var fn=this._callback;this.clearTimeout();fn(err,res)};Request.prototype.crossDomainError=function(){var err=new Error("Origin is not allowed by Access-Control-Allow-Origin");err.crossDomain=true;this.callback(err)};Request.prototype.timeoutError=function(){var timeout=this._timeout;var err=new Error("timeout of "+timeout+"ms exceeded");err.timeout=timeout;this.callback(err)};Request.prototype.withCredentials=function(){this._withCredentials=true;return this};Request.prototype.end=function(fn){var self=this;var xhr=this.xhr=request.getXHR();var query=this._query.join("&");var timeout=this._timeout;var data=this._formData||this._data;this._callback=fn||noop;xhr.onreadystatechange=function(){if(4!=xhr.readyState)return;var status;try{status=xhr.status}catch(e){status=0}if(0==status){if(self.timedout)return self.timeoutError();if(self.aborted)return;return self.crossDomainError()}self.emit("end")};var handleProgress=function(e){if(e.total>0){e.percent=e.loaded/e.total*100}self.emit("progress",e)};if(this.hasListeners("progress")){xhr.onprogress=handleProgress}try{if(xhr.upload&&this.hasListeners("progress")){xhr.upload.onprogress=handleProgress}}catch(e){}if(timeout&&!this._timer){this._timer=setTimeout(function(){self.timedout=true;self.abort()},timeout)}if(query){query=request.serializeObject(query);this.url+=~this.url.indexOf("?")?"&"+query:"?"+query}xhr.open(this.method,this.url,true);if(this._withCredentials)xhr.withCredentials=true;if("GET"!=this.method&&"HEAD"!=this.method&&"string"!=typeof data&&!isHost(data)){var serialize=request.serialize[this.getHeader("Content-Type")];if(serialize)data=serialize(data)}for(var field in this.header){if(null==this.header[field])continue;xhr.setRequestHeader(field,this.header[field])}this.emit("request",this);xhr.send(data);return this};request.Request=Request;function request(method,url){if("function"==typeof url){return new Request("GET",method).end(url)}if(1==arguments.length){return new Request("GET",method)}return new Request(method,url)}request.get=function(url,data,fn){var req=request("GET",url);if("function"==typeof data)fn=data,data=null;if(data)req.query(data);if(fn)req.end(fn);return req};request.head=function(url,data,fn){var req=request("HEAD",url);if("function"==typeof data)fn=data,data=null;if(data)req.send(data);if(fn)req.end(fn);return req};request.del=function(url,fn){var req=request("DELETE",url);if(fn)req.end(fn);return req};request.patch=function(url,data,fn){var req=request("PATCH",url);if("function"==typeof data)fn=data,data=null;if(data)req.send(data);if(fn)req.end(fn);return req};request.post=function(url,data,fn){var req=request("POST",url);if("function"==typeof data)fn=data,data=null;if(data)req.send(data);if(fn)req.end(fn);return req};request.put=function(url,data,fn){var req=request("PUT",url);if("function"==typeof data)fn=data,data=null;if(data)req.send(data);if(fn)req.end(fn);return req};module.exports=request},{emitter:161,reduce:162}],161:[function(require,module,exports){module.exports=Emitter;function Emitter(obj){if(obj)return mixin(obj)}function mixin(obj){for(var key in Emitter.prototype){obj[key]=Emitter.prototype[key]}return obj}Emitter.prototype.on=Emitter.prototype.addEventListener=function(event,fn){this._callbacks=this._callbacks||{};(this._callbacks[event]=this._callbacks[event]||[]).push(fn);return this};Emitter.prototype.once=function(event,fn){var self=this;this._callbacks=this._callbacks||{};function on(){self.off(event,on);fn.apply(this,arguments)}on.fn=fn;this.on(event,on);return this};Emitter.prototype.off=Emitter.prototype.removeListener=Emitter.prototype.removeAllListeners=Emitter.prototype.removeEventListener=function(event,fn){this._callbacks=this._callbacks||{};if(0==arguments.length){this._callbacks={};return this}var callbacks=this._callbacks[event];if(!callbacks)return this;if(1==arguments.length){delete this._callbacks[event];return this}var cb;for(var i=0;i<callbacks.length;i++){cb=callbacks[i];if(cb===fn||cb.fn===fn){callbacks.splice(i,1);break}}return this};Emitter.prototype.emit=function(event){this._callbacks=this._callbacks||{};var args=[].slice.call(arguments,1),callbacks=this._callbacks[event];if(callbacks){callbacks=callbacks.slice(0);for(var i=0,len=callbacks.length;i<len;++i){callbacks[i].apply(this,args)}}return this};Emitter.prototype.listeners=function(event){this._callbacks=this._callbacks||{};return this._callbacks[event]||[]};Emitter.prototype.hasListeners=function(event){return!!this.listeners(event).length}},{}],162:[function(require,module,exports){module.exports=function(arr,fn,initial){var idx=0;var len=arr.length;var curr=arguments.length==3?initial:arr[idx++];while(idx<len){curr=fn.call(null,curr,arr[idx],++idx,arr)}return curr}},{}]},{},[1])(1)});"use strict";SwaggerUi.Views.ApiKeyButton=Backbone.View.extend({events:{"click #apikey_button":"toggleApiKeyContainer","click #apply_api_key":"applyApiKey"},initialize:function(opts){this.options=opts||{};this.router=this.options.router},render:function(){var template=this.template();$(this.el).html(template(this.model));return this},applyApiKey:function(){var keyAuth=new SwaggerClient.ApiKeyAuthorization(this.model.name,$("#input_apiKey_entry").val(),this.model.in);this.router.api.clientAuthorizations.add(this.model.name,keyAuth);this.router.load();$("#apikey_container").show()},toggleApiKeyContainer:function(){if($("#apikey_container").length){var elem=$("#apikey_container").first();if(elem.is(":visible")){elem.hide()}else{$(".auth_container").hide();elem.show()}}},template:function(){return Handlebars.templates.apikey_button_view}});"use strict";SwaggerUi.Views.BasicAuthButton=Backbone.View.extend({initialize:function(opts){this.options=opts||{};this.router=this.options.router},render:function(){var template=this.template();$(this.el).html(template(this.model));return this},events:{"click #basic_auth_button":"togglePasswordContainer","click #apply_basic_auth":"applyPassword"},applyPassword:function(){var username=$(".input_username").val();var password=$(".input_password").val();var basicAuth=new SwaggerClient.PasswordAuthorization("basic",username,password);this.router.api.clientAuthorizations.add(this.model.type,basicAuth);this.router.load();$("#basic_auth_container").hide()},togglePasswordContainer:function(){if($("#basic_auth_container").length){var elem=$("#basic_auth_container").show();if(elem.is(":visible")){elem.slideUp()}else{$(".auth_container").hide();elem.show()}}},template:function(){return Handlebars.templates.basic_auth_button_view}});"use strict";SwaggerUi.Views.ContentTypeView=Backbone.View.extend({initialize:function(){},render:function(){this.model.contentTypeId="ct"+Math.random();$(this.el).html(Handlebars.templates.content_type(this.model));return this}});"use strict";SwaggerUi.Views.HeaderView=Backbone.View.extend({events:{"click #show-pet-store-icon":"showPetStore","click #explore":"showCustom","keyup #input_baseUrl":"showCustomOnKeyup","keyup #input_apiKey":"showCustomOnKeyup"},initialize:function(){},showPetStore:function(){this.trigger("update-swagger-ui",{url:"http://petstore.swagger.io/v2/swagger.json"})},showCustomOnKeyup:function(e){if(e.keyCode===13){this.showCustom()}},showCustom:function(e){if(e){e.preventDefault()}this.trigger("update-swagger-ui",{url:$("#input_baseUrl").val(),apiKey:$("#input_apiKey").val()})},update:function(url,apiKey,trigger){if(trigger===undefined){trigger=false}$("#input_baseUrl").val(url);if(trigger){this.trigger("update-swagger-ui",{url:url})}}});"use strict";SwaggerUi.Views.MainView=Backbone.View.extend({apisSorter:{alpha:function(a,b){return a.name.localeCompare(b.name)}},operationsSorters:{alpha:function(a,b){return a.path.localeCompare(b.path)},method:function(a,b){return a.method.localeCompare(b.method)}},initialize:function(opts){var sorterOption,sorterFn,key,value;opts=opts||{};this.router=opts.router;if(opts.swaggerOptions.apisSorter){sorterOption=opts.swaggerOptions.apisSorter;if(_.isFunction(sorterOption)){sorterFn=sorterOption}else{sorterFn=this.apisSorter[sorterOption]}if(_.isFunction(sorterFn)){this.model.apisArray.sort(sorterFn)}}if(opts.swaggerOptions.operationsSorter){sorterOption=opts.swaggerOptions.operationsSorter;if(_.isFunction(sorterOption)){sorterFn=sorterOption}else{sorterFn=this.operationsSorters[sorterOption]}if(_.isFunction(sorterFn)){for(key in this.model.apisArray){this.model.apisArray[key].operationsArray.sort(sorterFn)}}}this.model.auths=[];for(key in this.model.securityDefinitions){ +value=this.model.securityDefinitions[key];this.model.auths.push({name:key,type:value.type,value:value})}if("validatorUrl"in opts.swaggerOptions){this.model.validatorUrl=opts.swaggerOptions.validatorUrl}else if(this.model.url.indexOf("localhost")>0){this.model.validatorUrl=null}else{if(window.location.protocol==="https:"){this.model.validatorUrl="https://online.swagger.io/validator"}else{this.model.validatorUrl="http://online.swagger.io/validator"}}},render:function(){if(this.model.securityDefinitions){for(var name in this.model.securityDefinitions){var auth=this.model.securityDefinitions[name];var button;if(auth.type==="apiKey"&&$("#apikey_button").length===0){button=new SwaggerUi.Views.ApiKeyButton({model:auth,router:this.router}).render().el;$(".auth_main_container").append(button)}if(auth.type==="basicAuth"&&$("#basic_auth_button").length===0){button=new SwaggerUi.Views.BasicAuthButton({model:auth,router:this.router}).render().el;$(".auth_main_container").append(button)}}}$(this.el).html(Handlebars.templates.main(this.model));var resources={};var counter=0;for(var i=0;i<this.model.apisArray.length;i++){var resource=this.model.apisArray[i];var id=resource.name;while(typeof resources[id]!=="undefined"){id=id+"_"+counter;counter+=1}resource.id=id;resources[id]=resource;this.addResource(resource,this.model.auths)}$(".propWrap").hover(function onHover(){$(".optionsWrapper",$(this)).show()},function offhover(){$(".optionsWrapper",$(this)).hide()});return this},addResource:function(resource,auths){resource.id=resource.id.replace(/\s/g,"_");var resourceView=new SwaggerUi.Views.ResourceView({model:resource,router:this.router,tagName:"li",id:"resource_"+resource.id,className:"resource",auths:auths,swaggerOptions:this.options.swaggerOptions});$("#resources",this.el).append(resourceView.render().el)},clear:function(){$(this.el).html("")}});"use strict";SwaggerUi.Views.OperationView=Backbone.View.extend({invocationUrl:null,events:{"submit .sandbox":"submitOperation","click .submit":"submitOperation","click .response_hider":"hideResponse","click .toggleOperation":"toggleOperationContent","mouseenter .api-ic":"mouseEnter","dblclick .curl":"selectText"},initialize:function(opts){opts=opts||{};this.router=opts.router;this.auths=opts.auths;this.parentId=this.model.parentId;this.nickname=this.model.nickname;this.model.encodedParentId=encodeURIComponent(this.parentId);return this},selectText:function(event){var doc=document,text=event.target.firstChild,range,selection;if(doc.body.createTextRange){range=document.body.createTextRange();range.moveToElementText(text);range.select()}else if(window.getSelection){selection=window.getSelection();range=document.createRange();range.selectNodeContents(text);selection.removeAllRanges();selection.addRange(range)}},mouseEnter:function(e){var elem=$(this.el).find(".content");var x=e.pageX;var y=e.pageY;var scX=$(window).scrollLeft();var scY=$(window).scrollTop();var scMaxX=scX+$(window).width();var scMaxY=scY+$(window).height();var wd=elem.width();var hgh=elem.height();if(x+wd>scMaxX){x=scMaxX-wd}if(x<scX){x=scX}if(y+hgh>scMaxY){y=scMaxY-hgh}if(y<scY){y=scY}var pos={};pos.top=y;pos.left=x;elem.css(pos)},render:function(){var a,auth,auths,code,contentTypeModel,isMethodSubmissionSupported,k,key,l,len,len1,len2,len3,len4,m,modelAuths,n,o,p,param,q,ref,ref1,ref2,ref3,ref4,ref5,responseContentTypeView,responseSignatureView,schema,schemaObj,scopeIndex,signatureModel,statusCode,successResponse,type,v,value;isMethodSubmissionSupported=jQuery.inArray(this.model.method,this.model.supportedSubmitMethods())>=0;if(!isMethodSubmissionSupported){this.model.isReadOnly=true}this.model.description=this.model.description||this.model.notes;this.model.oauth=null;modelAuths=this.model.authorizations||this.model.security;if(modelAuths){if(Array.isArray(modelAuths)){for(l=0,len=modelAuths.length;l<len;l++){auths=modelAuths[l];for(key in auths){for(a in this.auths){auth=this.auths[a];if(key===auth.name){if(auth.type==="oauth2"){this.model.oauth={};this.model.oauth.scopes=[];ref1=auth.value.scopes;for(k in ref1){v=ref1[k];scopeIndex=auths[key].indexOf(k);if(scopeIndex>=0){o={scope:k,description:v};this.model.oauth.scopes.push(o)}}}}}}}}else{for(k in modelAuths){v=modelAuths[k];if(k==="oauth2"){if(this.model.oauth===null){this.model.oauth={}}if(this.model.oauth.scopes===void 0){this.model.oauth.scopes=[]}for(m=0,len1=v.length;m<len1;m++){o=v[m];this.model.oauth.scopes.push(o)}}}}}if(typeof this.model.responses!=="undefined"){this.model.responseMessages=[];ref2=this.model.responses;for(code in ref2){value=ref2[code];schema=null;schemaObj=this.model.responses[code].schema;if(schemaObj&&schemaObj.$ref){schema=schemaObj.$ref;if(schema.indexOf("#/definitions/")!==-1){schema=schema.replace(/^.*#\/definitions\//,"")}}this.model.responseMessages.push({code:code,message:value.description,responseModel:schema})}}if(typeof this.model.responseMessages==="undefined"){this.model.responseMessages=[]}signatureModel=null;if(this.model.successResponse){successResponse=this.model.successResponse;for(key in successResponse){value=successResponse[key];this.model.successCode=key;if(typeof value==="object"&&typeof value.createJSONSample==="function"){signatureModel={sampleJSON:JSON.stringify(value.createJSONSample(),void 0,2),isParam:false,signature:value.getMockSignature()}}}}else if(this.model.responseClassSignature&&this.model.responseClassSignature!=="string"){signatureModel={sampleJSON:this.model.responseSampleJSON,isParam:false,signature:this.model.responseClassSignature}}var opts=this.options.swaggerOptions;if(opts.showRequestHeaders){this.model.showRequestHeaders=true}$(this.el).html(Handlebars.templates.operation(this.model));if(signatureModel){responseSignatureView=new SwaggerUi.Views.SignatureView({model:signatureModel,router:this.router,tagName:"div"});$(".model-signature",$(this.el)).append(responseSignatureView.render().el)}else{this.model.responseClassSignature="string";$(".model-signature",$(this.el)).html(this.model.type)}contentTypeModel={isParam:false};contentTypeModel.consumes=this.model.consumes;contentTypeModel.produces=this.model.produces;ref3=this.model.parameters;for(n=0,len2=ref3.length;n<len2;n++){param=ref3[n];type=param.type||param.dataType||"";if(typeof type==="undefined"){schema=param.schema;if(schema&&schema.$ref){ref=schema.$ref;if(ref.indexOf("#/definitions/")===0){type=ref.substring("#/definitions/".length)}else{type=ref}}}if(type&&type.toLowerCase()==="file"){if(!contentTypeModel.consumes){contentTypeModel.consumes="multipart/form-data"}}param.type=type}responseContentTypeView=new SwaggerUi.Views.ResponseContentTypeView({model:contentTypeModel,router:this.router});$(".response-content-type",$(this.el)).append(responseContentTypeView.render().el);ref4=this.model.parameters;for(p=0,len3=ref4.length;p<len3;p++){param=ref4[p];this.addParameter(param,contentTypeModel.consumes)}ref5=this.model.responseMessages;for(q=0,len4=ref5.length;q<len4;q++){statusCode=ref5[q];this.addStatusCode(statusCode)}return this},addParameter:function(param,consumes){param.consumes=consumes;var paramView=new SwaggerUi.Views.ParameterView({model:param,tagName:"tr",readOnly:this.model.isReadOnly});$(".operation-params",$(this.el)).append(paramView.render().el)},addStatusCode:function(statusCode){var statusCodeView=new SwaggerUi.Views.StatusCodeView({model:statusCode,tagName:"tr",router:this.router});$(".operation-status",$(this.el)).append(statusCodeView.render().el)},submitOperation:function(e){var error_free,form,isFileUpload,map,opts;if(e!==null){e.preventDefault()}form=$(".sandbox",$(this.el));error_free=true;form.find("input.required").each(function(){$(this).removeClass("error");if(jQuery.trim($(this).val())===""){$(this).addClass("error");$(this).wiggle({callback:function(_this){return function(){$(_this).focus()}}(this)});error_free=false}});form.find("textarea.required").each(function(){$(this).removeClass("error");if(jQuery.trim($(this).val())===""){$(this).addClass("error");$(this).wiggle({callback:function(_this){return function(){return $(_this).focus()}}(this)});error_free=false}});form.find("select.required").each(function(){$(this).removeClass("error");if(this.selectedIndex===-1){$(this).addClass("error");$(this).wiggle({callback:function(_this){return function(){$(_this).focus()}}(this)});error_free=false}});if(error_free){map=this.getInputMap(form);isFileUpload=this.isFileUpload(form);opts={parent:this};if(this.options.swaggerOptions){for(var key in this.options.swaggerOptions){opts[key]=this.options.swaggerOptions[key]}}opts.responseContentType=$("div select[name=responseContentType]",$(this.el)).val();opts.requestContentType=$("div select[name=parameterContentType]",$(this.el)).val();$(".response_throbber",$(this.el)).show();if(isFileUpload){$(".request_url",$(this.el)).html("<pre></pre>");$(".request_url pre",$(this.el)).text(this.invocationUrl);opts.useJQuery=true;map.parameterContentType="multipart/form-data";return this.model.execute(map,opts,this.showCompleteStatus,this.showErrorStatus,this)}else{this.map=map;return this.model.execute(map,opts,this.showCompleteStatus,this.showErrorStatus,this)}}},getInputMap:function(form){var map,ref1,l,len,o,ref2,m,len1,val,ref3,n,len2;map={};ref1=form.find("input");for(l=0,len=ref1.length;l<len;l++){o=ref1[l];if(o.value!==null&&jQuery.trim(o.value).length>0){map[o.name]=o.value}if(o.type==="file"){map[o.name]=o.files[0]}}ref2=form.find("textarea");for(m=0,len1=ref2.length;m<len1;m++){o=ref2[m];val=this.getTextAreaValue(o);if(val!==null&&jQuery.trim(val).length>0){map[o.name]=val}}ref3=form.find("select");for(n=0,len2=ref3.length;n<len2;n++){o=ref3[n];val=this.getSelectedValue(o);if(val!==null&&jQuery.trim(val).length>0){map[o.name]=val}}return map},isFileUpload:function(form){var ref1,l,len,o;var isFileUpload=false;ref1=form.find("input");for(l=0,len=ref1.length;l<len;l++){o=ref1[l];if(o.type==="file"){isFileUpload=true}}return isFileUpload},success:function(response,parent){parent.showCompleteStatus(response)},wrap:function(data){var h,headerArray,headers,i,l,len,o;headers={};headerArray=data.getAllResponseHeaders().split("\r");for(l=0,len=headerArray.length;l<len;l++){i=headerArray[l];h=i.match(/^([^:]*?):(.*)$/);if(!h){h=[]}h.shift();if(h[0]!==void 0&&h[1]!==void 0){headers[h[0].trim()]=h[1].trim()}}o={};o.content={};o.content.data=data.responseText;o.headers=headers;o.request={};o.request.url=this.invocationUrl;o.status=data.status;return o},getSelectedValue:function(select){if(!select.multiple){return select.value}else{var options=[];for(var l=0,len=select.options.length;l<len;l++){var opt=select.options[l];if(opt.selected){options.push(opt.value)}}if(options.length>0){return options}else{return null}}},hideResponse:function(e){if(e){e.preventDefault()}$(".response",$(this.el)).slideUp();$(".response_hider",$(this.el)).fadeOut()},showResponse:function(response){var prettyJson=JSON.stringify(response,null," ").replace(/\n/g,"<br>");$(".response_body",$(this.el)).html(_.escape(prettyJson))},showErrorStatus:function(data,parent){parent.showStatus(data)},showCompleteStatus:function(data,parent){parent.showStatus(data)},formatXml:function(xml){var contexp,fn,formatted,indent,l,lastType,len,lines,ln,pad,reg,transitions,wsexp;reg=/(>)(<)(\/*)/g;wsexp=/[ ]*(.*)[ ]+\n/g;contexp=/(<.+>)(.+\n)/g;xml=xml.replace(reg,"$1\n$2$3").replace(wsexp,"$1\n").replace(contexp,"$1\n$2");pad=0;formatted="";lines=xml.split("\n");indent=0;lastType="other";transitions={"single->single":0,"single->closing":-1,"single->opening":0,"single->other":0,"closing->single":0,"closing->closing":-1,"closing->opening":0,"closing->other":0,"opening->single":1,"opening->closing":0,"opening->opening":1,"opening->other":1,"other->single":0,"other->closing":-1,"other->opening":0,"other->other":0};fn=function(ln){var fromTo,j,key,padding,type,types,value;types={single:Boolean(ln.match(/<.+\/>/)),closing:Boolean(ln.match(/<\/.+>/)),opening:Boolean(ln.match(/<[^!?].*>/))};type=function(){var results;results=[];for(key in types){value=types[key];if(value){results.push(key)}}return results}()[0];type=type===void 0?"other":type;fromTo=lastType+"->"+type;lastType=type;padding="";indent+=transitions[fromTo];padding=function(){var m,ref1,results;results=[];for(j=m=0,ref1=indent;0<=ref1?m<ref1:m>ref1;j=0<=ref1?++m:--m){results.push(" ")}return results}().join("");if(fromTo==="opening->closing"){formatted=formatted.substr(0,formatted.length-1)+ln+"\n"}else{formatted+=padding+ln+"\n"}};for(l=0,len=lines.length;l<len;l++){ln=lines[l];fn(ln)}return formatted},showStatus:function(response){var url,content;if(response.content===undefined){content=response.data;url=response.url}else{content=response.content.data;url=response.request.url}var headers=response.headers;content=jQuery.trim(content);var contentType=null;if(headers){contentType=headers["Content-Type"]||headers["content-type"];if(contentType){contentType=contentType.split(";")[0].trim()}}$(".response_body",$(this.el)).removeClass("json");$(".response_body",$(this.el)).removeClass("xml");var supportsAudioPlayback=function(contentType){var audioElement=document.createElement("audio");return!!(audioElement.canPlayType&&audioElement.canPlayType(contentType).replace(/no/,""))};var pre;var code;if(!content){code=$("<code />").text("no content");pre=$('<pre class="json" />').append(code)}else if(contentType==="application/json"||/\+json$/.test(contentType)){var json=null;try{json=JSON.stringify(JSON.parse(content),null," ")}catch(_error){json="can't parse JSON. Raw result:\n\n"+content}code=$("<code />").text(json);pre=$('<pre class="json" />').append(code)}else if(contentType==="application/xml"||/\+xml$/.test(contentType)){code=$("<code />").text(this.formatXml(content));pre=$('<pre class="xml" />').append(code)}else if(contentType==="text/html"){code=$("<code />").html(_.escape(content));pre=$('<pre class="xml" />').append(code)}else if(/text\/plain/.test(contentType)){code=$("<code />").text(content);pre=$('<pre class="plain" />').append(code)}else if(/^image\//.test(contentType)){pre=$("<img>").attr("src",url)}else if(/^audio\//.test(contentType)&&supportsAudioPlayback(contentType)){pre=$("<audio controls>").append($("<source>").attr("src",url).attr("type",contentType))}else if(headers["Content-Disposition"]&&/attachment/.test(headers["Content-Disposition"])||headers["content-disposition"]&&/attachment/.test(headers["content-disposition"])||headers["Content-Description"]&&/File Transfer/.test(headers["Content-Description"])||headers["content-description"]&&/File Transfer/.test(headers["content-description"])){if("Blob"in window){var type=contentType||"text/html";var blob=new Blob([content],{type:type});var a=document.createElement("a");var href=window.URL.createObjectURL(blob);var fileName=response.url.substr(response.url.lastIndexOf("/")+1);var download=[type,fileName,href].join(":");a.setAttribute("href",href);a.setAttribute("download",download);a.innerText="Download "+fileName;pre=$("<div/>").append(a)}else{pre=$('<pre class="json" />').append("Download headers detected but your browser does not support downloading binary via XHR (Blob).")}}else if(headers.location||headers.Location){window.location=response.url}else{code=$("<code />").text(content);pre=$('<pre class="json" />').append(code)}var response_body=pre;$(".request_url",$(this.el)).html("<pre></pre>");$(".request_url pre",$(this.el)).text(url);$(".response_code",$(this.el)).html("<pre>"+response.status+"</pre>");$(".response_body",$(this.el)).html(response_body);$(".response_headers",$(this.el)).html("<pre>"+_.escape(JSON.stringify(response.headers,null," ")).replace(/\n/g,"<br>")+"</pre>");$(".response",$(this.el)).slideDown();$(".response_hider",$(this.el)).show();$(".response_throbber",$(this.el)).hide();var curlCommand=this.model.asCurl(this.map);curlCommand=curlCommand.replace("!","&#33;");$(".curl",$(this.el)).html("<pre>"+curlCommand+"</pre>");var opts=this.options.swaggerOptions;if(opts.showRequestHeaders){var form=$(".sandbox",$(this.el)),map=this.getInputMap(form),requestHeaders=this.model.getHeaderParams(map);delete requestHeaders["Content-Type"];$(".request_headers",$(this.el)).html("<pre>"+_.escape(JSON.stringify(requestHeaders,null," ")).replace(/\n/g,"<br>")+"</pre>")}var response_body_el=$(".response_body",$(this.el))[0];if(opts.highlightSizeThreshold&&typeof response.data!=="undefined"&&response.data.length>opts.highlightSizeThreshold){return response_body_el}else{return hljs.highlightBlock(response_body_el)}},toggleOperationContent:function(event){var elem=$("#"+Docs.escapeResourceName(this.parentId+"_"+this.nickname+"_content"));if(elem.is(":visible")){event.preventDefault();$.bbq.pushState("#/",2);Docs.collapseOperation(elem)}else{Docs.expandOperation(elem)}},getTextAreaValue:function(textArea){var param,parsed,result,i;if(textArea.value===null||jQuery.trim(textArea.value).length===0){return null}param=this.getParamByName(textArea.name);if(param&&param.type&&param.type.toLowerCase()==="array"){parsed=textArea.value.split("\n");result=[];for(i=0;i<parsed.length;i++){if(parsed[i]!==null&&jQuery.trim(parsed[i]).length>0){result.push(parsed[i])}}return result.length>0?result:null}else{return textArea.value}},getParamByName:function(name){var i;if(this.model.parameters){for(i=0;i<this.model.parameters.length;i++){if(this.model.parameters[i].name===name){return this.model.parameters[i]}}}return null}});"use strict";SwaggerUi.Views.ParameterContentTypeView=Backbone.View.extend({initialize:function(){},render:function(){this.model.parameterContentTypeId="pct"+Math.random();$(this.el).html(Handlebars.templates.parameter_content_type(this.model));return this}});"use strict";SwaggerUi.Views.ParameterView=Backbone.View.extend({initialize:function(){Handlebars.registerHelper("isArray",function(param,opts){if(param.type.toLowerCase()==="array"||param.allowMultiple){return opts.fn(this)}else{return opts.inverse(this)}})},render:function(){var type=this.model.type||this.model.dataType;if(typeof type==="undefined"){var schema=this.model.schema;if(schema&&schema.$ref){var ref=schema.$ref;if(ref.indexOf("#/definitions/")===0){type=ref.substring("#/definitions/".length)}else{type=ref}}}this.model.type=type;this.model.paramType=this.model.in||this.model.paramType;this.model.isBody=this.model.paramType==="body"||this.model.in==="body";this.model.isFile=type&&type.toLowerCase()==="file";if(typeof this.model.default==="undefined"){this.model.default=this.model.defaultValue}this.model.hasDefault=typeof this.model.default!=="undefined";this.model.valueId="m"+this.model.name+Math.random();if(this.model.allowableValues){this.model.isList=true}var template=this.template();$(this.el).html(template(this.model));var signatureModel={sampleJSON:this.model.sampleJSON,isParam:true,signature:this.model.signature};if(this.model.sampleJSON){var signatureView=new SwaggerUi.Views.SignatureView({model:signatureModel,tagName:"div"});$(".model-signature",$(this.el)).append(signatureView.render().el)}else{$(".model-signature",$(this.el)).html(this.model.signature)}var isParam=false;if(this.model.isBody){isParam=true}var contentTypeModel={isParam:isParam};contentTypeModel.consumes=this.model.consumes;if(isParam){var parameterContentTypeView=new SwaggerUi.Views.ParameterContentTypeView({model:contentTypeModel});$(".parameter-content-type",$(this.el)).append(parameterContentTypeView.render().el)}else{var responseContentTypeView=new SwaggerUi.Views.ResponseContentTypeView({model:contentTypeModel});$(".response-content-type",$(this.el)).append(responseContentTypeView.render().el)}return this},template:function(){if(this.model.isList){return Handlebars.templates.param_list}else{if(this.options.readOnly){if(this.model.required){return Handlebars.templates.param_readonly_required}else{return Handlebars.templates.param_readonly}}else{if(this.model.required){return Handlebars.templates.param_required}else{return Handlebars.templates.param}}}}});"use strict";SwaggerUi.Views.ResourceView=Backbone.View.extend({initialize:function(opts){opts=opts||{};this.router=opts.router;this.auths=opts.auths;if(""===this.model.description){this.model.description=null}if(this.model.description){this.model.summary=this.model.description}},render:function(){var methods={};$(this.el).html(Handlebars.templates.resource(this.model));for(var i=0;i<this.model.operationsArray.length;i++){var operation=this.model.operationsArray[i];var counter=0;var id=operation.nickname;while(typeof methods[id]!=="undefined"){id=id+"_"+counter;counter+=1}methods[id]=operation;operation.nickname=id;operation.parentId=this.model.id;this.addOperation(operation)}$(".toggleEndpointList",this.el).click(this.callDocs.bind(this,"toggleEndpointListForResource"));$(".collapseResource",this.el).click(this.callDocs.bind(this,"collapseOperationsForResource"));$(".expandResource",this.el).click(this.callDocs.bind(this,"expandOperationsForResource"));return this},addOperation:function(operation){operation.number=this.number;var operationView=new SwaggerUi.Views.OperationView({model:operation,router:this.router,tagName:"li",className:"endpoint",swaggerOptions:this.options.swaggerOptions,auths:this.auths});$(".endpoints",$(this.el)).append(operationView.render().el);this.number++},callDocs:function(fnName,e){e.preventDefault();Docs[fnName](e.currentTarget.getAttribute("data-id"))}});"use strict";SwaggerUi.Views.ResponseContentTypeView=Backbone.View.extend({initialize:function(){},render:function(){this.model.responseContentTypeId="rct"+Math.random();$(this.el).html(Handlebars.templates.response_content_type(this.model));return this}});"use strict";SwaggerUi.Views.SignatureView=Backbone.View.extend({events:{"click a.description-link":"switchToDescription","click a.snippet-link":"switchToSnippet","mousedown .snippet":"snippetToTextArea"},initialize:function(){},render:function(){$(this.el).html(Handlebars.templates.signature(this.model));this.switchToSnippet();this.isParam=this.model.isParam;if(this.isParam){$(".notice",$(this.el)).text("Click to set as parameter value")}return this},switchToDescription:function(e){if(e){e.preventDefault()}$(".snippet",$(this.el)).hide();$(".description",$(this.el)).show();$(".description-link",$(this.el)).addClass("selected");$(".snippet-link",$(this.el)).removeClass("selected")},switchToSnippet:function(e){if(e){e.preventDefault()}$(".description",$(this.el)).hide();$(".snippet",$(this.el)).show();$(".snippet-link",$(this.el)).addClass("selected");$(".description-link",$(this.el)).removeClass("selected")},snippetToTextArea:function(e){if(this.isParam){if(e){e.preventDefault()}var textArea=$("textarea",$(this.el.parentNode.parentNode.parentNode));if($.trim(textArea.val())===""||textArea.prop("placeholder")===textArea.val()){textArea.val(this.model.sampleJSON)}}}});"use strict";SwaggerUi.Views.StatusCodeView=Backbone.View.extend({initialize:function(opts){this.options=opts||{};this.router=this.options.router},render:function(){$(this.el).html(Handlebars.templates.status_code(this.model));if(this.router.api.models.hasOwnProperty(this.model.responseModel)){var responseModel={sampleJSON:JSON.stringify(this.router.api.models[this.model.responseModel].createJSONSample(),null,2),isParam:false,signature:this.router.api.models[this.model.responseModel].getMockSignature()};var responseModelView=new SwaggerUi.Views.SignatureView({model:responseModel,tagName:"div"});$(".model-signature",this.$el).append(responseModelView.render().el)}else{$(".model-signature",this.$el).html("")}return this}})}).call(this); \ No newline at end of file diff --git a/reference/ucp/3.1/api/swagger-ui.min.js.original b/reference/ucp/3.1/api/swagger-ui.min.js.original new file mode 100644 index 0000000000..a3404b369f --- /dev/null +++ b/reference/ucp/3.1/api/swagger-ui.min.js.original @@ -0,0 +1,17 @@ +(function(){"use strict";function e(){e.history=e.history||[],e.history.push(arguments),this.console&&console.log(Array.prototype.slice.call(arguments)[0])}window.SwaggerUi=Backbone.Router.extend({dom_id:"swagger_ui",options:null,api:null,headerView:null,mainView:null,initialize:function(e){e=e||{},e.highlightSizeThreshold||(e.highlightSizeThreshold=1e5),e.dom_id&&(this.dom_id=e.dom_id,delete e.dom_id),e.supportedSubmitMethods||(e.supportedSubmitMethods=["get","put","post","delete","head","options","patch"]),"string"==typeof e.oauth2RedirectUrl&&(window.oAuthRedirectUrl=e.redirectUrl),$("#"+this.dom_id).length||$("body").append('<div id="'+this.dom_id+'"></div>'),this.options=e,marked.setOptions({gfm:!0});var t=this;this.options.success=function(){return t.render()},this.options.progress=function(e){return t.showMessage(e)},this.options.failure=function(e){return t.onLoadFailure(e)},this.headerView=new SwaggerUi.Views.HeaderView({el:$("#header")}),this.headerView.on("update-swagger-ui",function(e){return t.updateSwaggerUi(e)})},setOption:function(e,t){this.options[e]=t},getOption:function(e){return this.options[e]},updateSwaggerUi:function(e){this.options.url=e.url,this.load()},load:function(){this.mainView&&this.mainView.clear();var e=this.options.url;e&&0!==e.indexOf("http")&&(e=this.buildUrl(window.location.href.toString(),e)),this.api&&(this.options.authorizations=this.api.clientAuthorizations.authz),this.options.url=e,this.headerView.update(e),this.api=new SwaggerClient(this.options)},collapseAll:function(){Docs.collapseEndpointListForResource("")},listAll:function(){Docs.collapseOperationsForResource("")},expandAll:function(){Docs.expandOperationsForResource("")},render:function(){switch(this.showMessage("Finished Loading Resource Information. Rendering Swagger UI..."),this.mainView=new SwaggerUi.Views.MainView({model:this.api,el:$("#"+this.dom_id),swaggerOptions:this.options,router:this}).render(),this.showMessage(),this.options.docExpansion){case"full":this.expandAll();break;case"list":this.listAll()}this.renderGFM(),this.options.onComplete&&this.options.onComplete(this.api,this),setTimeout(Docs.shebang.bind(this),100)},buildUrl:function(e,t){if(0===t.indexOf("/")){var n=e.split("/");return e=n[0]+"//"+n[2],e+t}var r=e.length;return e.indexOf("?")>-1&&(r=Math.min(r,e.indexOf("?"))),e.indexOf("#")>-1&&(r=Math.min(r,e.indexOf("#"))),e=e.substring(0,r),-1!==e.indexOf("/",e.length-1)?e+t:e+"/"+t},showMessage:function(e){void 0===e&&(e="");var t=$("#message-bar");t.removeClass("message-fail"),t.addClass("message-success"),t.html(e),window.SwaggerTranslator&&window.SwaggerTranslator.translate(t)},onLoadFailure:function(e){void 0===e&&(e=""),$("#message-bar").removeClass("message-success"),$("#message-bar").addClass("message-fail");var t=$("#message-bar").text(e);return this.options.onFailure&&this.options.onFailure(e),t},renderGFM:function(){$(".markdown").each(function(){$(this).html(marked($(this).html()))}),$(".propDesc",".model-signature .description").each(function(){$(this).html(marked($(this).html())).addClass("markdown")})}}),window.SwaggerUi.Views={},function(){function e(e){"console"in window&&"function"==typeof window.console.warn&&console.warn(e)}window.authorizations={add:function(){if(e("Using window.authorizations is deprecated. Please use SwaggerUi.api.clientAuthorizations.add()."),"undefined"==typeof window.swaggerUi)throw new TypeError("window.swaggerUi is not defined");window.swaggerUi instanceof SwaggerUi&&window.swaggerUi.api.clientAuthorizations.add.apply(window.swaggerUi.api.clientAuthorizations,arguments)}},window.ApiKeyAuthorization=function(){e("window.ApiKeyAuthorization is deprecated. Please use SwaggerClient.ApiKeyAuthorization."),SwaggerClient.ApiKeyAuthorization.apply(window,arguments)},window.PasswordAuthorization=function(){e("window.PasswordAuthorization is deprecated. Please use SwaggerClient.PasswordAuthorization."),SwaggerClient.PasswordAuthorization.apply(window,arguments)}}(),function(e,t){"function"==typeof define&&define.amd?define(["b"],function(n){return e.SwaggerUi=t(n)}):"object"==typeof exports?module.exports=t(require("b")):e.SwaggerUi=t(e.b)}(this,function(){return SwaggerUi}),this.Handlebars=this.Handlebars||{},this.Handlebars.templates=this.Handlebars.templates||{},this.Handlebars.templates.apikey_button_view=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){var i,a="function",o=t.helperMissing,s=this.escapeExpression;return"<!--div class='auth_button' id='apikey_button'><img class='auth_icon' alt='apply api key' src='images/apikey.jpeg'></div-->\n<div class='auth_container' id='apikey_container'>\n <div class='key_input_container'>\n <div class='auth_label'><label for='input_apiKey_entry'>"+s((i=null!=(i=t.keyName||(null!=e?e.keyName:e))?i:o,typeof i===a?i.call(e,{name:"keyName",hash:{},data:r}):i))+"</label></div>\n <input placeholder='api_key' class='auth_input' id='input_apiKey_entry' name='apiKey' type='text'/>\n <div class='auth_submit'><a class='auth_submit_button' id='apply_api_key' href='#' data-sw-translate>apply</a></div>\n </div>\n</div>\n"},useData:!0}),this.Handlebars.templates.basic_auth_button_view=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){return'<div class=\'auth_button\' id=\'basic_auth_button\'><img class=\'auth_icon\' src=\'images/password.jpeg\'></div>\n<div class=\'auth_container\' id=\'basic_auth_container\'>\n <div class=\'key_input_container\'>\n <div class="auth_label"><label for="input_username" data-sw-translate>Username</label></div>\n <input placeholder="username" class="auth_input" id="input_username" name="username" type="text"/>\n <div class="auth_label"><label for="password" data-sw-translate>Password</label></div>\n <input placeholder="password" class="auth_input" id="input_password" name="password" type="password"/>\n <div class=\'auth_submit\'><a class=\'auth_submit_button\' id="apply_basic_auth" href="#">apply</a></div>\n </div>\n</div>\n\n'},useData:!0}),this.Handlebars.templates.content_type=Handlebars.template({1:function(e,t,n,r){var i,a="";return i=t.each.call(e,null!=e?e.produces:e,{name:"each",hash:{},fn:this.program(2,r),inverse:this.noop,data:r}),null!=i&&(a+=i),a},2:function(e,t,n,r){var i,a=this.lambda,o=' <option value="';return i=a(e,e),null!=i&&(o+=i),o+='">',i=a(e,e),null!=i&&(o+=i),o+"</option>\n"},4:function(e,t,n,r){return' <option value="application/json">application/json</option>\n'},compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){var i,a,o="function",s=t.helperMissing,l=this.escapeExpression,u='<label data-sw-translate for="'+l((a=null!=(a=t.contentTypeId||(null!=e?e.contentTypeId:e))?a:s,typeof a===o?a.call(e,{name:"contentTypeId",hash:{},data:r}):a))+'">Response Content Type</label>\n<select name="contentType" id="'+l((a=null!=(a=t.contentTypeId||(null!=e?e.contentTypeId:e))?a:s,typeof a===o?a.call(e,{name:"contentTypeId",hash:{},data:r}):a))+'">\n';return i=t["if"].call(e,null!=e?e.produces:e,{name:"if",hash:{},fn:this.program(1,r),inverse:this.program(4,r),data:r}),null!=i&&(u+=i),u+"</select>\n"},useData:!0}),$(function(){$.fn.vAlign=function(){return this.each(function(){var e=$(this).height(),t=$(this).parent().height(),n=(t-e)/2;$(this).css("margin-top",n)})},$.fn.stretchFormtasticInputWidthToParent=function(){return this.each(function(){var e=$(this).closest("form").innerWidth(),t=parseInt($(this).closest("form").css("padding-left"),10)+parseInt($(this).closest("form").css("padding-right"),10),n=parseInt($(this).css("padding-left"),10)+parseInt($(this).css("padding-right"),10);$(this).css("width",e-t-n)})},$("form.formtastic li.string input, form.formtastic textarea").stretchFormtasticInputWidthToParent(),$("ul.downplayed li div.content p").vAlign(),$("form.sandbox").submit(function(){var e=!0;return $(this).find("input.required").each(function(){$(this).removeClass("error"),""===$(this).val()&&($(this).addClass("error"),$(this).wiggle(),e=!1)}),e})}),Function.prototype.bind&&console&&"object"==typeof console.log&&["log","info","warn","error","assert","dir","clear","profile","profileEnd"].forEach(function(e){console[e]=this.bind(console[e],console)},Function.prototype.call),window.Docs={shebang:function(){var e=$.param.fragment().split("/");switch(e.shift(),e.length){case 1:if(e[0].length>0){var t="resource_"+e[0];Docs.expandEndpointListForResource(e[0]),$("#"+t).slideto({highlight:!1})}break;case 2:Docs.expandEndpointListForResource(e[0]),$("#"+t).slideto({highlight:!1});var n=e.join("_"),r=n+"_content";Docs.expandOperation($("#"+r)),$("#"+n).slideto({highlight:!1})}},toggleEndpointListForResource:function(e){var t=$("li#resource_"+Docs.escapeResourceName(e)+" ul.endpoints");t.is(":visible")?Docs.collapseEndpointListForResource(e):Docs.expandEndpointListForResource(e)},expandEndpointListForResource:function(e){var e=Docs.escapeResourceName(e);if(""==e)return void $(".resource ul.endpoints").slideDown();$("li#resource_"+e).addClass("active");var t=$("li#resource_"+e+" ul.endpoints");t.slideDown()},collapseEndpointListForResource:function(e){var e=Docs.escapeResourceName(e);if(""==e)return void $(".resource ul.endpoints").slideUp();$("li#resource_"+e).removeClass("active");var t=$("li#resource_"+e+" ul.endpoints");t.slideUp()},expandOperationsForResource:function(e){return Docs.expandEndpointListForResource(e),""==e?void $(".resource ul.endpoints li.operation div.content").slideDown():void $("li#resource_"+Docs.escapeResourceName(e)+" li.operation div.content").each(function(){Docs.expandOperation($(this))})},collapseOperationsForResource:function(e){return Docs.expandEndpointListForResource(e),""==e?void $(".resource ul.endpoints li.operation div.content").slideUp():void $("li#resource_"+Docs.escapeResourceName(e)+" li.operation div.content").each(function(){Docs.collapseOperation($(this))})},escapeResourceName:function(e){return e.replace(/[!"#$%&'()*+,.\/:;<=>?@\[\\\]\^`{|}~]/g,"\\$&")},expandOperation:function(e){e.slideDown()},collapseOperation:function(e){e.slideUp()}},Handlebars.registerHelper("sanitize",function(e){return e=e.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,""),new Handlebars.SafeString(e)}),Handlebars.registerHelper("renderTextParam",function(e){var t,n="text",r="",i="array"===e.type.toLowerCase()||e.allowMultiple,a=i&&Array.isArray(e["default"])?e["default"].join("\n"):e["default"],o=Object.keys(e).filter(function(e){return null!==e.match(/^X-data-/i)}).reduce(function(t,n){return t+=" "+n.substring(2,n.length)+"='"+e[n]+"'"},"");if("undefined"==typeof a&&(a=""),e.format&&"password"===e.format&&(n="password"),e.valueId&&(r=" id='"+e.valueId+"'"),i)t="<textarea class='body-textarea"+(e.required?" required":"")+"' name='"+e.name+"'"+r+o,t+=" placeholder='Provide multiple values in new lines"+(e.required?" (at least one required).":".")+"'>",t+=a+"</textarea>";else{var s="parameter";e.required&&(s+=" required"),t="<input class='"+s+"' minlength='"+(e.required?1:0)+"'",t+=" name='"+e.name+"' placeholder='"+(e.required?"(required)":"")+"'"+r+o,t+=" type='"+n+"' value='"+a+"'/>"}return new Handlebars.SafeString(t)}),this.Handlebars.templates.main=Handlebars.template({1:function(e,t,n,r){var i,a=this.lambda,o=this.escapeExpression,s=' <div class="info_title">'+o(a(null!=(i=null!=e?e.info:e)?i.title:i,e))+'</div>\n <div class="info_description markdown">';return i=a(null!=(i=null!=e?e.info:e)?i.description:i,e),null!=i&&(s+=i),s+="</div>\n",i=t["if"].call(e,null!=e?e.externalDocs:e,{name:"if",hash:{},fn:this.program(2,r),inverse:this.noop,data:r}),null!=i&&(s+=i),s+=" ",i=t["if"].call(e,null!=(i=null!=e?e.info:e)?i.termsOfServiceUrl:i,{name:"if",hash:{},fn:this.program(4,r),inverse:this.noop,data:r}),null!=i&&(s+=i),s+="\n ",i=t["if"].call(e,null!=(i=null!=(i=null!=e?e.info:e)?i.contact:i)?i.name:i,{name:"if",hash:{},fn:this.program(6,r),inverse:this.noop,data:r}),null!=i&&(s+=i),s+="\n ",i=t["if"].call(e,null!=(i=null!=(i=null!=e?e.info:e)?i.contact:i)?i.url:i,{name:"if",hash:{},fn:this.program(8,r),inverse:this.noop,data:r}),null!=i&&(s+=i),s+="\n ",i=t["if"].call(e,null!=(i=null!=(i=null!=e?e.info:e)?i.contact:i)?i.email:i,{name:"if",hash:{},fn:this.program(10,r),inverse:this.noop,data:r}),null!=i&&(s+=i),s+="\n ",i=t["if"].call(e,null!=(i=null!=e?e.info:e)?i.license:i,{name:"if",hash:{},fn:this.program(12,r),inverse:this.noop,data:r}),null!=i&&(s+=i),s+"\n"},2:function(e,t,n,r){var i,a=this.lambda,o=this.escapeExpression;return" <p>"+o(a(null!=(i=null!=e?e.externalDocs:e)?i.description:i,e))+'</p>\n <a href="'+o(a(null!=(i=null!=e?e.externalDocs:e)?i.url:i,e))+'" target="_blank">'+o(a(null!=(i=null!=e?e.externalDocs:e)?i.url:i,e))+"</a>\n"},4:function(e,t,n,r){var i,a=this.lambda,o=this.escapeExpression;return'<div class="info_tos"><a href="'+o(a(null!=(i=null!=e?e.info:e)?i.termsOfServiceUrl:i,e))+'" data-sw-translate>Terms of service</a></div>'},6:function(e,t,n,r){var i,a=this.lambda,o=this.escapeExpression;return"<div class='info_name' data-sw-translate>Created by "+o(a(null!=(i=null!=(i=null!=e?e.info:e)?i.contact:i)?i.name:i,e))+"</div>"},8:function(e,t,n,r){var i,a=this.lambda,o=this.escapeExpression;return"<div class='info_url' data-sw-translate>See more at <a href=\""+o(a(null!=(i=null!=(i=null!=e?e.info:e)?i.contact:i)?i.url:i,e))+'">'+o(a(null!=(i=null!=(i=null!=e?e.info:e)?i.contact:i)?i.url:i,e))+"</a></div>"},10:function(e,t,n,r){var i,a=this.lambda,o=this.escapeExpression;return"<div class='info_email'><a href=\"mailto:"+o(a(null!=(i=null!=(i=null!=e?e.info:e)?i.contact:i)?i.email:i,e))+"?subject="+o(a(null!=(i=null!=e?e.info:e)?i.title:i,e))+'" data-sw-translate>Contact the developer</a></div>'},12:function(e,t,n,r){var i,a=this.lambda,o=this.escapeExpression;return"<div class='info_license'><a href='"+o(a(null!=(i=null!=(i=null!=e?e.info:e)?i.license:i)?i.url:i,e))+"'>"+o(a(null!=(i=null!=(i=null!=e?e.info:e)?i.license:i)?i.name:i,e))+"</a></div>"},14:function(e,t,n,r){var i,a=this.lambda,o=this.escapeExpression;return' , <span style="font-variant: small-caps" data-sw-translate>api version</span>: '+o(a(null!=(i=null!=e?e.info:e)?i.version:i,e))+"\n "},16:function(e,t,n,r){var i,a="function",o=t.helperMissing,s=this.escapeExpression;return' <span style="float:right"><a href="'+s((i=null!=(i=t.validatorUrl||(null!=e?e.validatorUrl:e))?i:o,typeof i===a?i.call(e,{name:"validatorUrl",hash:{},data:r}):i))+"/debug?url="+s((i=null!=(i=t.url||(null!=e?e.url:e))?i:o,typeof i===a?i.call(e,{name:"url",hash:{},data:r}):i))+'"><img id="validator" src="'+s((i=null!=(i=t.validatorUrl||(null!=e?e.validatorUrl:e))?i:o,typeof i===a?i.call(e,{name:"validatorUrl",hash:{},data:r}):i))+"?url="+s((i=null!=(i=t.url||(null!=e?e.url:e))?i:o,typeof i===a?i.call(e,{name:"url",hash:{},data:r}):i))+'"></a>\n </span>\n'},compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){var i,a,o="function",s=t.helperMissing,l=this.escapeExpression,u="<div class='info' id='api_info'>\n";return i=t["if"].call(e,null!=e?e.info:e,{name:"if",hash:{},fn:this.program(1,r),inverse:this.noop,data:r}),null!=i&&(u+=i),u+="</div>\n<div class='container' id='resources_container'>\n <ul id='resources'></ul>\n\n <div class=\"footer\">\n <h4 style=\"color: #999\">[ <span style=\"font-variant: small-caps\">base url</span>: "+l((a=null!=(a=t.basePath||(null!=e?e.basePath:e))?a:s,typeof a===o?a.call(e,{name:"basePath",hash:{},data:r}):a))+"\n",i=t["if"].call(e,null!=(i=null!=e?e.info:e)?i.version:i,{name:"if",hash:{},fn:this.program(14,r),inverse:this.noop,data:r}),null!=i&&(u+=i),u+="]\n",i=t["if"].call(e,null!=e?e.validatorUrl:e,{name:"if",hash:{},fn:this.program(16,r),inverse:this.noop,data:r}),null!=i&&(u+=i),u+" </h4>\n </div>\n</div>\n"},useData:!0}),this.Handlebars.templates.operation=Handlebars.template({1:function(e,t,n,r){return"deprecated"},3:function(e,t,n,r){return" <h4>Warning: Deprecated</h4>\n"},5:function(e,t,n,r){var i,a,o="function",s=t.helperMissing,l=' <h4>Implementation Notes</h4>\n <div class="markdown">';return a=null!=(a=t.description||(null!=e?e.description:e))?a:s,i=typeof a===o?a.call(e,{name:"description",hash:{},data:r}):a,null!=i&&(l+=i),l+"</div>\n"},7:function(e,t,n,r){return' <div class="auth">\n <span class="api-ic ic-error">'},9:function(e,t,n,r){var i,a=' <div class="api_information_panel">\n';return i=t.each.call(e,e,{name:"each",hash:{},fn:this.program(10,r),inverse:this.noop,data:r}),null!=i&&(a+=i),a+" </div>\n"},10:function(e,t,n,r){var i,a=this.lambda,o=this.escapeExpression,s=" <div title='";return i=a(null!=e?e.description:e,e),null!=i&&(s+=i),s+"'>"+o(a(null!=e?e.scope:e,e))+"</div>\n"},12:function(e,t,n,r){return"</span></div>"},14:function(e,t,n,r){return' <div class=\'access\'>\n <span class="api-ic ic-off" title="click to authenticate"></span>\n </div>\n'},16:function(e,t,n,r){var i,a="function",o=t.helperMissing,s=this.escapeExpression;return" <h4><span data-sw-translate>Response Class</span> (<span data-sw-translate>Status</span> "+s((i=null!=(i=t.successCode||(null!=e?e.successCode:e))?i:o,typeof i===a?i.call(e,{name:"successCode",hash:{},data:r}):i))+')</h4>\n <p><span class="model-signature" /></p>\n <br/>\n <div class="response-content-type" />\n'},18:function(e,t,n,r){return' <h4 data-sw-translate>Parameters</h4>\n <table class=\'fullwidth\'>\n <thead>\n <tr>\n <th style="width: 100px; max-width: 100px" data-sw-translate>Parameter</th>\n <th style="width: 310px; max-width: 310px" data-sw-translate>Value</th>\n <th style="width: 200px; max-width: 200px" data-sw-translate>Description</th>\n <th style="width: 100px; max-width: 100px" data-sw-translate>Parameter Type</th>\n <th style="width: 220px; max-width: 230px" data-sw-translate>Data Type</th>\n </tr>\n </thead>\n <tbody class="operation-params">\n\n </tbody>\n </table>\n'},20:function(e,t,n,r){return" <div style='margin:0;padding:0;display:inline'></div>\n <h4 data-sw-translate>Response Messages</h4>\n <table class='fullwidth'>\n <thead>\n <tr>\n <th data-sw-translate>HTTP Status Code</th>\n <th data-sw-translate>Reason</th>\n <th data-sw-translate>Response Model</th>\n <th data-sw-translate>Headers</th>\n </tr>\n </thead>\n <tbody class=\"operation-status\">\n\n </tbody>\n </table>\n"},22:function(e,t,n,r){return""},24:function(e,t,n,r){return" <div class='sandbox_header'>\n <input class='submit' type='button' value='Try it out!' data-sw-translate/>\n <a href='#' class='response_hider' style='display:none' data-sw-translate>Hide Response</a>\n <span class='response_throbber' style='display:none'></span>\n </div>\n"},26:function(e,t,n,r){return" <h4 data-sw-translate>Request Headers</h4>\n <div class='block request_headers'></div>\n"},compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){var i,a,o,s="function",l=t.helperMissing,u=this.escapeExpression,c=t.blockHelperMissing,p="\n <ul class='operations' >\n <li class='"+u((a=null!=(a=t.method||(null!=e?e.method:e))?a:l,typeof a===s?a.call(e,{name:"method",hash:{},data:r}):a))+" operation' id='"+u((a=null!=(a=t.parentId||(null!=e?e.parentId:e))?a:l,typeof a===s?a.call(e,{name:"parentId",hash:{},data:r}):a))+"_"+u((a=null!=(a=t.nickname||(null!=e?e.nickname:e))?a:l,typeof a===s?a.call(e,{name:"nickname",hash:{},data:r}):a))+"'>\n <div class='heading'>\n <h3>\n <span class='http_method'>\n <a href='#!/"+u((a=null!=(a=t.encodedParentId||(null!=e?e.encodedParentId:e))?a:l,typeof a===s?a.call(e,{name:"encodedParentId",hash:{},data:r}):a))+"/"+u((a=null!=(a=t.nickname||(null!=e?e.nickname:e))?a:l,typeof a===s?a.call(e,{name:"nickname",hash:{},data:r}):a))+'\' class="toggleOperation">'+u((a=null!=(a=t.method||(null!=e?e.method:e))?a:l,typeof a===s?a.call(e,{name:"method",hash:{},data:r}):a))+"</a>\n </span>\n <span class='path'>\n <a href='#!/"+u((a=null!=(a=t.encodedParentId||(null!=e?e.encodedParentId:e))?a:l,typeof a===s?a.call(e,{name:"encodedParentId",hash:{},data:r}):a))+"/"+u((a=null!=(a=t.nickname||(null!=e?e.nickname:e))?a:l,typeof a===s?a.call(e,{name:"nickname",hash:{},data:r}):a))+"' class=\"toggleOperation ";return i=t["if"].call(e,null!=e?e.deprecated:e,{name:"if",hash:{},fn:this.program(1,r),inverse:this.noop,data:r}),null!=i&&(p+=i),p+='">'+u((a=null!=(a=t.path||(null!=e?e.path:e))?a:l,typeof a===s?a.call(e,{name:"path",hash:{},data:r}):a))+"</a>\n </span>\n </h3>\n <ul class='options'>\n <li>\n <a href='#!/"+u((a=null!=(a=t.encodedParentId||(null!=e?e.encodedParentId:e))?a:l,typeof a===s?a.call(e,{name:"encodedParentId",hash:{},data:r}):a))+"/"+u((a=null!=(a=t.nickname||(null!=e?e.nickname:e))?a:l,typeof a===s?a.call(e,{name:"nickname",hash:{},data:r}):a))+'\' class="toggleOperation">',a=null!=(a=t.summary||(null!=e?e.summary:e))?a:l,i=typeof a===s?a.call(e,{name:"summary",hash:{},data:r}):a,null!=i&&(p+=i),p+="</a>\n </li>\n </ul>\n </div>\n <div class='content' id='"+u((a=null!=(a=t.parentId||(null!=e?e.parentId:e))?a:l,typeof a===s?a.call(e,{name:"parentId",hash:{},data:r}):a))+"_"+u((a=null!=(a=t.nickname||(null!=e?e.nickname:e))?a:l,typeof a===s?a.call(e,{name:"nickname",hash:{},data:r}):a))+"_content' style='display:none'>\n",i=t["if"].call(e,null!=e?e.deprecated:e,{name:"if",hash:{},fn:this.program(3,r),inverse:this.noop,data:r}),null!=i&&(p+=i),i=t["if"].call(e,null!=e?e.description:e,{name:"if",hash:{},fn:this.program(5,r),inverse:this.noop,data:r}),null!=i&&(p+=i),a=null!=(a=t.oauth||(null!=e?e.oauth:e))?a:l,o={name:"oauth",hash:{},fn:this.program(7,r),inverse:this.noop,data:r},i=typeof a===s?a.call(e,o):a,t.oauth||(i=c.call(e,i,o)),null!=i&&(p+=i),p+="\n",i=t.each.call(e,null!=e?e.oauth:e,{name:"each",hash:{},fn:this.program(9,r),inverse:this.noop,data:r}),null!=i&&(p+=i),p+=" ",a=null!=(a=t.oauth||(null!=e?e.oauth:e))?a:l,o={name:"oauth",hash:{},fn:this.program(12,r),inverse:this.noop,data:r},i=typeof a===s?a.call(e,o):a,t.oauth||(i=c.call(e,i,o)),null!=i&&(p+=i),p+="\n",a=null!=(a=t.oauth||(null!=e?e.oauth:e))?a:l,o={name:"oauth",hash:{},fn:this.program(14,r),inverse:this.noop,data:r},i=typeof a===s?a.call(e,o):a,t.oauth||(i=c.call(e,i,o)),null!=i&&(p+=i),i=t["if"].call(e,null!=e?e.type:e,{name:"if",hash:{},fn:this.program(16,r),inverse:this.noop,data:r}),null!=i&&(p+=i),p+=" <form accept-charset='UTF-8' class='sandbox'>\n <div style='margin:0;padding:0;display:inline'></div>\n",i=t["if"].call(e,null!=e?e.parameters:e,{name:"if",hash:{},fn:this.program(18,r),inverse:this.noop,data:r}),null!=i&&(p+=i),i=t["if"].call(e,null!=e?e.responseMessages:e,{name:"if",hash:{},fn:this.program(20,r),inverse:this.noop,data:r}),null!=i&&(p+=i),i=t["if"].call(e,null!=e?e.isReadOnly:e,{name:"if",hash:{},fn:this.program(22,r),inverse:this.program(24,r),data:r}),null!=i&&(p+=i),p+=" </form>\n <div class='response' style='display:none'>\n <h4>Curl</h4>\n <div class='block curl'></div>\n <h4 data-sw-translate>Request URL</h4>\n <div class='block request_url'></div>\n",i=t["if"].call(e,null!=e?e.showRequestHeaders:e,{name:"if",hash:{},fn:this.program(26,r),inverse:this.noop,data:r}),null!=i&&(p+=i),p+" <h4 data-sw-translate>Response Body</h4>\n <div class='block response_body'></div>\n <h4 data-sw-translate>Response Code</h4>\n <div class='block response_code'></div>\n <h4 data-sw-translate>Response Headers</h4>\n <div class='block response_headers'></div>\n </div>\n </div>\n </li>\n </ul>\n"},useData:!0}),this.Handlebars.templates.param=Handlebars.template({1:function(e,t,n,r){var i,a="";return i=t["if"].call(e,null!=e?e.isFile:e,{name:"if",hash:{},fn:this.program(2,r),inverse:this.program(4,r),data:r}),null!=i&&(a+=i),a},2:function(e,t,n,r){var i,a="function",o=t.helperMissing,s=this.escapeExpression;return' <input type="file" name=\''+s((i=null!=(i=t.name||(null!=e?e.name:e))?i:o,typeof i===a?i.call(e,{name:"name",hash:{},data:r}):i))+"' id='"+s((i=null!=(i=t.valueId||(null!=e?e.valueId:e))?i:o,typeof i===a?i.call(e,{name:"valueId",hash:{},data:r}):i))+'\'/>\n <div class="parameter-content-type" />\n'},4:function(e,t,n,r){var i,a="";return i=t["if"].call(e,null!=e?e["default"]:e,{name:"if",hash:{},fn:this.program(5,r),inverse:this.program(7,r),data:r}),null!=i&&(a+=i),a},5:function(e,t,n,r){var i,a="function",o=t.helperMissing,s=this.escapeExpression;return" <textarea class='body-textarea' name='"+s((i=null!=(i=t.name||(null!=e?e.name:e))?i:o,typeof i===a?i.call(e,{name:"name",hash:{},data:r}):i))+"' id='"+s((i=null!=(i=t.valueId||(null!=e?e.valueId:e))?i:o,typeof i===a?i.call(e,{name:"valueId",hash:{},data:r}):i))+"'>"+s((i=null!=(i=t["default"]||(null!=e?e["default"]:e))?i:o,typeof i===a?i.call(e,{name:"default",hash:{},data:r}):i))+'</textarea>\n <br />\n <div class="parameter-content-type" />\n'},7:function(e,t,n,r){var i,a="function",o=t.helperMissing,s=this.escapeExpression;return" <textarea class='body-textarea' name='"+s((i=null!=(i=t.name||(null!=e?e.name:e))?i:o,typeof i===a?i.call(e,{name:"name",hash:{},data:r}):i))+"' id='"+s((i=null!=(i=t.valueId||(null!=e?e.valueId:e))?i:o,typeof i===a?i.call(e,{name:"valueId",hash:{},data:r}):i))+'\'></textarea>\n <br />\n <div class="parameter-content-type" />\n'},9:function(e,t,n,r){var i,a="";return i=t["if"].call(e,null!=e?e.isFile:e,{name:"if",hash:{},fn:this.program(2,r),inverse:this.program(10,r),data:r}),null!=i&&(a+=i),a},10:function(e,t,n,r){var i,a=t.helperMissing,o="";return i=(t.renderTextParam||e&&e.renderTextParam||a).call(e,e,{name:"renderTextParam",hash:{},fn:this.program(11,r),inverse:this.noop,data:r}),null!=i&&(o+=i),o},11:function(e,t,n,r){return""},compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){var i,a,o="function",s=t.helperMissing,l=this.escapeExpression,u="<td class='code'><label for='"+l((a=null!=(a=t.valueId||(null!=e?e.valueId:e))?a:s,typeof a===o?a.call(e,{name:"valueId",hash:{},data:r}):a))+"'>"+l((a=null!=(a=t.name||(null!=e?e.name:e))?a:s,typeof a===o?a.call(e,{name:"name",hash:{},data:r}):a))+"</label></td>\n<td>\n\n";return i=t["if"].call(e,null!=e?e.isBody:e,{name:"if",hash:{},fn:this.program(1,r),inverse:this.program(9,r),data:r}),null!=i&&(u+=i),u+='\n</td>\n<td class="markdown">',a=null!=(a=t.description||(null!=e?e.description:e))?a:s,i=typeof a===o?a.call(e,{name:"description",hash:{},data:r}):a,null!=i&&(u+=i),u+="</td>\n<td>",a=null!=(a=t.paramType||(null!=e?e.paramType:e))?a:s,i=typeof a===o?a.call(e,{name:"paramType",hash:{},data:r}):a,null!=i&&(u+=i),u+'</td>\n<td>\n <span class="model-signature"></span>\n</td>\n'},useData:!0}),this.Handlebars.templates.param_list=Handlebars.template({1:function(e,t,n,r){return" required"},3:function(e,t,n,r){return' multiple="multiple"'},5:function(e,t,n,r){return" required "},7:function(e,t,n,r){var i,a=" <option ";return i=t.unless.call(e,null!=e?e.hasDefault:e,{name:"unless",hash:{},fn:this.program(8,r),inverse:this.noop,data:r}),null!=i&&(a+=i),a+" value=''></option>\n"},8:function(e,t,n,r){return' selected="" '},10:function(e,t,n,r){var i,a,o="function",s=t.helperMissing,l=this.escapeExpression,u="\n <option ";return i=t["if"].call(e,null!=e?e.isDefault:e,{name:"if",hash:{},fn:this.program(11,r),inverse:this.noop,data:r}),null!=i&&(u+=i),u+=" value='"+l((a=null!=(a=t.value||(null!=e?e.value:e))?a:s,typeof a===o?a.call(e,{name:"value",hash:{},data:r}):a))+"'> "+l((a=null!=(a=t.value||(null!=e?e.value:e))?a:s,typeof a===o?a.call(e,{name:"value",hash:{},data:r}):a))+" ",i=t["if"].call(e,null!=e?e.isDefault:e,{name:"if",hash:{},fn:this.program(13,r),inverse:this.noop,data:r}),null!=i&&(u+=i),u+" </option>\n\n"},11:function(e,t,n,r){return' selected="" '},13:function(e,t,n,r){return" (default) "},15:function(e,t,n,r){return"<strong>"},17:function(e,t,n,r){return"</strong>"},compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){var i,a,o="function",s=t.helperMissing,l=this.escapeExpression,u="<td class='code";return i=t["if"].call(e,null!=e?e.required:e,{name:"if",hash:{},fn:this.program(1,r),inverse:this.noop,data:r}),null!=i&&(u+=i),u+="'><label for='"+l((a=null!=(a=t.valueId||(null!=e?e.valueId:e))?a:s,typeof a===o?a.call(e,{name:"valueId",hash:{},data:r}):a))+"'>"+l((a=null!=(a=t.name||(null!=e?e.name:e))?a:s,typeof a===o?a.call(e,{name:"name",hash:{},data:r}):a))+"</label></td>\n<td>\n <select ",i=(t.isArray||e&&e.isArray||s).call(e,e,{name:"isArray",hash:{},fn:this.program(3,r),inverse:this.noop,data:r}),null!=i&&(u+=i),u+=' class="parameter ',i=t["if"].call(e,null!=e?e.required:e,{name:"if",hash:{},fn:this.program(5,r),inverse:this.noop,data:r}),null!=i&&(u+=i),u+='" name="'+l((a=null!=(a=t.name||(null!=e?e.name:e))?a:s,typeof a===o?a.call(e,{name:"name",hash:{},data:r}):a))+'" id="'+l((a=null!=(a=t.valueId||(null!=e?e.valueId:e))?a:s,typeof a===o?a.call(e,{name:"valueId",hash:{},data:r}):a))+'">\n\n',i=t.unless.call(e,null!=e?e.required:e,{name:"unless",hash:{},fn:this.program(7,r),inverse:this.noop,data:r}),null!=i&&(u+=i),u+="\n",i=t.each.call(e,null!=(i=null!=e?e.allowableValues:e)?i.descriptiveValues:i,{name:"each",hash:{},fn:this.program(10,r),inverse:this.noop,data:r}),null!=i&&(u+=i),u+='\n </select>\n</td>\n<td class="markdown">',i=t["if"].call(e,null!=e?e.required:e,{name:"if",hash:{},fn:this.program(15,r),inverse:this.noop,data:r}),null!=i&&(u+=i),a=null!=(a=t.description||(null!=e?e.description:e))?a:s,i=typeof a===o?a.call(e,{name:"description",hash:{},data:r}):a,null!=i&&(u+=i),i=t["if"].call(e,null!=e?e.required:e,{name:"if",hash:{},fn:this.program(17,r),inverse:this.noop,data:r}),null!=i&&(u+=i),u+="</td>\n<td>",a=null!=(a=t.paramType||(null!=e?e.paramType:e))?a:s,i=typeof a===o?a.call(e,{name:"paramType",hash:{},data:r}):a,null!=i&&(u+=i),u+'</td>\n<td><span class="model-signature"></span></td>\n'},useData:!0}),this.Handlebars.templates.param_readonly=Handlebars.template({1:function(e,t,n,r){var i,a="function",o=t.helperMissing,s=this.escapeExpression;return" <textarea class='body-textarea' readonly='readonly' name='"+s((i=null!=(i=t.name||(null!=e?e.name:e))?i:o,typeof i===a?i.call(e,{name:"name",hash:{},data:r}):i))+"' id='"+s((i=null!=(i=t.valueId||(null!=e?e.valueId:e))?i:o,typeof i===a?i.call(e,{name:"valueId",hash:{},data:r}):i))+"'>"+s((i=null!=(i=t["default"]||(null!=e?e["default"]:e))?i:o,typeof i===a?i.call(e,{name:"default",hash:{},data:r}):i))+"</textarea>\n"},3:function(e,t,n,r){var i,a="";return i=t["if"].call(e,null!=e?e["default"]:e,{name:"if",hash:{},fn:this.program(4,r),inverse:this.program(6,r),data:r}),null!=i&&(a+=i),a},4:function(e,t,n,r){var i,a="function",o=t.helperMissing,s=this.escapeExpression;return" "+s((i=null!=(i=t["default"]||(null!=e?e["default"]:e))?i:o,typeof i===a?i.call(e,{name:"default",hash:{},data:r}):i))+"\n"},6:function(e,t,n,r){return" (empty)\n"},compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){var i,a,o="function",s=t.helperMissing,l=this.escapeExpression,u="<td class='code'><label for='"+l((a=null!=(a=t.valueId||(null!=e?e.valueId:e))?a:s,typeof a===o?a.call(e,{name:"valueId",hash:{},data:r}):a))+"'>"+l((a=null!=(a=t.name||(null!=e?e.name:e))?a:s,typeof a===o?a.call(e,{name:"name",hash:{},data:r}):a))+"</label></td>\n<td>\n";return i=t["if"].call(e,null!=e?e.isBody:e,{name:"if",hash:{},fn:this.program(1,r),inverse:this.program(3,r),data:r}),null!=i&&(u+=i),u+='</td>\n<td class="markdown">', +a=null!=(a=t.description||(null!=e?e.description:e))?a:s,i=typeof a===o?a.call(e,{name:"description",hash:{},data:r}):a,null!=i&&(u+=i),u+="</td>\n<td>",a=null!=(a=t.paramType||(null!=e?e.paramType:e))?a:s,i=typeof a===o?a.call(e,{name:"paramType",hash:{},data:r}):a,null!=i&&(u+=i),u+'</td>\n<td><span class="model-signature"></span></td>\n'},useData:!0}),this.Handlebars.templates.param_readonly_required=Handlebars.template({1:function(e,t,n,r){var i,a="function",o=t.helperMissing,s=this.escapeExpression;return" <textarea class='body-textarea' readonly='readonly' placeholder='(required)' name='"+s((i=null!=(i=t.name||(null!=e?e.name:e))?i:o,typeof i===a?i.call(e,{name:"name",hash:{},data:r}):i))+"' id='"+s((i=null!=(i=t.valueId||(null!=e?e.valueId:e))?i:o,typeof i===a?i.call(e,{name:"valueId",hash:{},data:r}):i))+"'>"+s((i=null!=(i=t["default"]||(null!=e?e["default"]:e))?i:o,typeof i===a?i.call(e,{name:"default",hash:{},data:r}):i))+"</textarea>\n"},3:function(e,t,n,r){var i,a="";return i=t["if"].call(e,null!=e?e["default"]:e,{name:"if",hash:{},fn:this.program(4,r),inverse:this.program(6,r),data:r}),null!=i&&(a+=i),a},4:function(e,t,n,r){var i,a="function",o=t.helperMissing,s=this.escapeExpression;return" "+s((i=null!=(i=t["default"]||(null!=e?e["default"]:e))?i:o,typeof i===a?i.call(e,{name:"default",hash:{},data:r}):i))+"\n"},6:function(e,t,n,r){return" (empty)\n"},compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){var i,a,o="function",s=t.helperMissing,l=this.escapeExpression,u="<td class='code required'><label for='"+l((a=null!=(a=t.valueId||(null!=e?e.valueId:e))?a:s,typeof a===o?a.call(e,{name:"valueId",hash:{},data:r}):a))+"'>"+l((a=null!=(a=t.name||(null!=e?e.name:e))?a:s,typeof a===o?a.call(e,{name:"name",hash:{},data:r}):a))+"</label></td>\n<td>\n";return i=t["if"].call(e,null!=e?e.isBody:e,{name:"if",hash:{},fn:this.program(1,r),inverse:this.program(3,r),data:r}),null!=i&&(u+=i),u+='</td>\n<td class="markdown">',a=null!=(a=t.description||(null!=e?e.description:e))?a:s,i=typeof a===o?a.call(e,{name:"description",hash:{},data:r}):a,null!=i&&(u+=i),u+="</td>\n<td>",a=null!=(a=t.paramType||(null!=e?e.paramType:e))?a:s,i=typeof a===o?a.call(e,{name:"paramType",hash:{},data:r}):a,null!=i&&(u+=i),u+'</td>\n<td><span class="model-signature"></span></td>\n'},useData:!0}),this.Handlebars.templates.param_required=Handlebars.template({1:function(e,t,n,r){var i,a="";return i=t["if"].call(e,null!=e?e.isFile:e,{name:"if",hash:{},fn:this.program(2,r),inverse:this.program(4,r),data:r}),null!=i&&(a+=i),a},2:function(e,t,n,r){var i,a="function",o=t.helperMissing,s=this.escapeExpression;return' <input type="file" name=\''+s((i=null!=(i=t.name||(null!=e?e.name:e))?i:o,typeof i===a?i.call(e,{name:"name",hash:{},data:r}):i))+"' id='"+s((i=null!=(i=t.valueId||(null!=e?e.valueId:e))?i:o,typeof i===a?i.call(e,{name:"valueId",hash:{},data:r}):i))+"'/>\n"},4:function(e,t,n,r){var i,a="";return i=t["if"].call(e,null!=e?e["default"]:e,{name:"if",hash:{},fn:this.program(5,r),inverse:this.program(7,r),data:r}),null!=i&&(a+=i),a},5:function(e,t,n,r){var i,a="function",o=t.helperMissing,s=this.escapeExpression;return" <textarea class='body-textarea required' placeholder='(required)' name='"+s((i=null!=(i=t.name||(null!=e?e.name:e))?i:o,typeof i===a?i.call(e,{name:"name",hash:{},data:r}):i))+"' id=\""+s((i=null!=(i=t.valueId||(null!=e?e.valueId:e))?i:o,typeof i===a?i.call(e,{name:"valueId",hash:{},data:r}):i))+'">'+s((i=null!=(i=t["default"]||(null!=e?e["default"]:e))?i:o,typeof i===a?i.call(e,{name:"default",hash:{},data:r}):i))+'</textarea>\n <br />\n <div class="parameter-content-type" />\n'},7:function(e,t,n,r){var i,a="function",o=t.helperMissing,s=this.escapeExpression;return" <textarea class='body-textarea required' placeholder='(required)' name='"+s((i=null!=(i=t.name||(null!=e?e.name:e))?i:o,typeof i===a?i.call(e,{name:"name",hash:{},data:r}):i))+"' id='"+s((i=null!=(i=t.valueId||(null!=e?e.valueId:e))?i:o,typeof i===a?i.call(e,{name:"valueId",hash:{},data:r}):i))+'\'></textarea>\n <br />\n <div class="parameter-content-type" />\n'},9:function(e,t,n,r){var i,a="";return i=t["if"].call(e,null!=e?e.isFile:e,{name:"if",hash:{},fn:this.program(10,r),inverse:this.program(12,r),data:r}),null!=i&&(a+=i),a},10:function(e,t,n,r){var i,a="function",o=t.helperMissing,s=this.escapeExpression;return" <input class='parameter' class='required' type='file' name='"+s((i=null!=(i=t.name||(null!=e?e.name:e))?i:o,typeof i===a?i.call(e,{name:"name",hash:{},data:r}):i))+"' id='"+s((i=null!=(i=t.valueId||(null!=e?e.valueId:e))?i:o,typeof i===a?i.call(e,{name:"valueId",hash:{},data:r}):i))+"'/>\n"},12:function(e,t,n,r){var i,a=t.helperMissing,o="";return i=(t.renderTextParam||e&&e.renderTextParam||a).call(e,e,{name:"renderTextParam",hash:{},fn:this.program(13,r),inverse:this.noop,data:r}),null!=i&&(o+=i),o},13:function(e,t,n,r){return""},compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){var i,a,o="function",s=t.helperMissing,l=this.escapeExpression,u="<td class='code required'><label for='"+l((a=null!=(a=t.valueId||(null!=e?e.valueId:e))?a:s,typeof a===o?a.call(e,{name:"valueId",hash:{},data:r}):a))+"'>"+l((a=null!=(a=t.name||(null!=e?e.name:e))?a:s,typeof a===o?a.call(e,{name:"name",hash:{},data:r}):a))+"</label></td>\n<td>\n";return i=t["if"].call(e,null!=e?e.isBody:e,{name:"if",hash:{},fn:this.program(1,r),inverse:this.program(9,r),data:r}),null!=i&&(u+=i),u+='</td>\n<td>\n <strong><span class="markdown">',a=null!=(a=t.description||(null!=e?e.description:e))?a:s,i=typeof a===o?a.call(e,{name:"description",hash:{},data:r}):a,null!=i&&(u+=i),u+="</span></strong>\n</td>\n<td>",a=null!=(a=t.paramType||(null!=e?e.paramType:e))?a:s,i=typeof a===o?a.call(e,{name:"paramType",hash:{},data:r}):a,null!=i&&(u+=i),u+'</td>\n<td><span class="model-signature"></span></td>\n'},useData:!0}),this.Handlebars.templates.parameter_content_type=Handlebars.template({1:function(e,t,n,r){var i,a="";return i=t.each.call(e,null!=e?e.consumes:e,{name:"each",hash:{},fn:this.program(2,r),inverse:this.noop,data:r}),null!=i&&(a+=i),a},2:function(e,t,n,r){var i,a=this.lambda,o=' <option value="';return i=a(e,e),null!=i&&(o+=i),o+='">',i=a(e,e),null!=i&&(o+=i),o+"</option>\n"},4:function(e,t,n,r){return' <option value="application/json">application/json</option>\n'},compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){var i,a,o="function",s=t.helperMissing,l=this.escapeExpression,u='<label for="'+l((a=null!=(a=t.parameterContentTypeId||(null!=e?e.parameterContentTypeId:e))?a:s,typeof a===o?a.call(e,{name:"parameterContentTypeId",hash:{},data:r}):a))+'">Parameter content type:</label>\n<select name="parameterContentType" id="'+l((a=null!=(a=t.parameterContentTypeId||(null!=e?e.parameterContentTypeId:e))?a:s,typeof a===o?a.call(e,{name:"parameterContentTypeId",hash:{},data:r}):a))+'">\n';return i=t["if"].call(e,null!=e?e.consumes:e,{name:"if",hash:{},fn:this.program(1,r),inverse:this.program(4,r),data:r}),null!=i&&(u+=i),u+"</select>\n"},useData:!0}),this.Handlebars.templates.resource=Handlebars.template({1:function(e,t,n,r){return" : "},3:function(e,t,n,r){var i,a="function",o=t.helperMissing,s=this.escapeExpression;return" <li>\n <a href='"+s((i=null!=(i=t.url||(null!=e?e.url:e))?i:o,typeof i===a?i.call(e,{name:"url",hash:{},data:r}):i))+"' data-sw-translate>Raw</a>\n </li>\n"},compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){var i,a,o,s="function",l=t.helperMissing,u=this.escapeExpression,c=t.blockHelperMissing,p="<div class='heading'>\n <h2>\n <a href='#!/"+u((a=null!=(a=t.id||(null!=e?e.id:e))?a:l,typeof a===s?a.call(e,{name:"id",hash:{},data:r}):a))+'\' class="toggleEndpointList" data-id="'+u((a=null!=(a=t.id||(null!=e?e.id:e))?a:l,typeof a===s?a.call(e,{name:"id",hash:{},data:r}):a))+'">'+u((a=null!=(a=t.name||(null!=e?e.name:e))?a:l,typeof a===s?a.call(e,{name:"name",hash:{},data:r}):a))+"</a> ";return a=null!=(a=t.summary||(null!=e?e.summary:e))?a:l,o={name:"summary",hash:{},fn:this.program(1,r),inverse:this.noop,data:r},i=typeof a===s?a.call(e,o):a,t.summary||(i=c.call(e,i,o)),null!=i&&(p+=i),a=null!=(a=t.summary||(null!=e?e.summary:e))?a:l,i=typeof a===s?a.call(e,{name:"summary",hash:{},data:r}):a,null!=i&&(p+=i),p+="\n </h2>\n <ul class='options'>\n <li>\n <a href='#!/"+u((a=null!=(a=t.id||(null!=e?e.id:e))?a:l,typeof a===s?a.call(e,{name:"id",hash:{},data:r}):a))+"' id='endpointListTogger_"+u((a=null!=(a=t.id||(null!=e?e.id:e))?a:l,typeof a===s?a.call(e,{name:"id",hash:{},data:r}):a))+'\' class="toggleEndpointList" data-id="'+u((a=null!=(a=t.id||(null!=e?e.id:e))?a:l,typeof a===s?a.call(e,{name:"id",hash:{},data:r}):a))+'" data-sw-translate>Show/Hide</a>\n </li>\n <li>\n <a href=\'#\' class="collapseResource" data-id="'+u((a=null!=(a=t.id||(null!=e?e.id:e))?a:l,typeof a===s?a.call(e,{name:"id",hash:{},data:r}):a))+'" data-sw-translate>\n List Operations\n </a>\n </li>\n <li>\n <a href=\'#\' class="expandResource" data-id="'+u((a=null!=(a=t.id||(null!=e?e.id:e))?a:l,typeof a===s?a.call(e,{name:"id",hash:{},data:r}):a))+'" data-sw-translate>\n Expand Operations\n </a>\n </li>\n',i=t["if"].call(e,null!=e?e.url:e,{name:"if",hash:{},fn:this.program(3,r),inverse:this.noop,data:r}),null!=i&&(p+=i),p+" </ul>\n</div>\n<ul class='endpoints' id='"+u((a=null!=(a=t.id||(null!=e?e.id:e))?a:l,typeof a===s?a.call(e,{name:"id",hash:{},data:r}):a))+"_endpoint_list' style='display:none'>\n\n</ul>\n"},useData:!0}),this.Handlebars.templates.response_content_type=Handlebars.template({1:function(e,t,n,r){var i,a="";return i=t.each.call(e,null!=e?e.produces:e,{name:"each",hash:{},fn:this.program(2,r),inverse:this.noop,data:r}),null!=i&&(a+=i),a},2:function(e,t,n,r){var i,a=this.lambda,o=' <option value="';return i=a(e,e),null!=i&&(o+=i),o+='">',i=a(e,e),null!=i&&(o+=i),o+"</option>\n"},4:function(e,t,n,r){return' <option value="application/json">application/json</option>\n'},compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){var i,a,o="function",s=t.helperMissing,l=this.escapeExpression,u='<label data-sw-translate for="'+l((a=null!=(a=t.responseContentTypeId||(null!=e?e.responseContentTypeId:e))?a:s,typeof a===o?a.call(e,{name:"responseContentTypeId",hash:{},data:r}):a))+'">Response Content Type</label>\n<select name="responseContentType" id="'+l((a=null!=(a=t.responseContentTypeId||(null!=e?e.responseContentTypeId:e))?a:s,typeof a===o?a.call(e,{name:"responseContentTypeId",hash:{},data:r}):a))+'">\n';return i=t["if"].call(e,null!=e?e.produces:e,{name:"if",hash:{},fn:this.program(1,r),inverse:this.program(4,r),data:r}),null!=i&&(u+=i),u+"</select>\n"},useData:!0}),this.Handlebars.templates.signature=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){var i,a,o="function",s=t.helperMissing,l=this.escapeExpression,u='<div>\n<ul class="signature-nav">\n <li><a class="description-link" href="#" data-sw-translate>Model</a></li>\n <li><a class="snippet-link" href="#" data-sw-translate>Model Schema</a></li>\n</ul>\n<div>\n\n<div class="signature-container">\n <div class="description">\n ';return a=null!=(a=t.signature||(null!=e?e.signature:e))?a:s,i=typeof a===o?a.call(e,{name:"signature",hash:{},data:r}):a,null!=i&&(u+=i),u+'\n </div>\n\n <div class="snippet">\n <pre><code>'+l((a=null!=(a=t.sampleJSON||(null!=e?e.sampleJSON:e))?a:s,typeof a===o?a.call(e,{name:"sampleJSON",hash:{},data:r}):a))+'</code></pre>\n <small class="notice"></small>\n </div>\n</div>\n\n'},useData:!0}),this.Handlebars.templates.status_code=Handlebars.template({1:function(e,t,n,r){var i=this.lambda,a=this.escapeExpression;return" <tr>\n <td>"+a(i(r&&r.key,e))+"</td>\n <td>"+a(i(null!=e?e.description:e,e))+"</td>\n <td>"+a(i(null!=e?e.type:e,e))+"</td>\n </tr>\n"},compiler:[6,">= 2.0.0-beta.1"],main:function(e,t,n,r){var i,a,o="function",s=t.helperMissing,l=this.escapeExpression,u="<td width='15%' class='code'>"+l((a=null!=(a=t.code||(null!=e?e.code:e))?a:s,typeof a===o?a.call(e,{name:"code",hash:{},data:r}):a))+'</td>\n<td class="markdown">';return a=null!=(a=t.message||(null!=e?e.message:e))?a:s,i=typeof a===o?a.call(e,{name:"message",hash:{},data:r}):a,null!=i&&(u+=i),u+='</td>\n<td width=\'50%\'><span class="model-signature" /></td>\n<td class="headers">\n <table>\n <tbody>\n',i=t.each.call(e,null!=e?e.headers:e,{name:"each",hash:{},fn:this.program(1,r),inverse:this.noop,data:r}),null!=i&&(u+=i),u+" </tbody>\n </table>\n</td>"},useData:!0}),function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.SwaggerClient=e()}}(function(){var e;return function t(e,n,r){function i(o,s){if(!n[o]){if(!e[o]){var l="function"==typeof require&&require;if(!s&&l)return l(o,!0);if(a)return a(o,!0);var u=new Error("Cannot find module '"+o+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[o]={exports:{}};e[o][0].call(c.exports,function(t){var n=e[o][1][t];return i(n?n:t)},c,c.exports,t,e,n,r)}return n[o].exports}for(var a="function"==typeof require&&require,o=0;o<r.length;o++)i(r[o]);return i}({1:[function(e,t,n){var r=e("./lib/auth"),i=e("./lib/helpers"),a=e("./lib/client"),o=function(e,t){return i.log('This is deprecated, use "new SwaggerClient" instead.'),new a(e,t)};Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){for(var n=t||0,r=this.length;r>n;n++)if(this[n]===e)return n;return-1}),String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),String.prototype.endsWith||(String.prototype.endsWith=function(e){return-1!==this.indexOf(e,this.length-e.length)}),t.exports=a,a.ApiKeyAuthorization=r.ApiKeyAuthorization,a.PasswordAuthorization=r.PasswordAuthorization,a.CookieAuthorization=r.CookieAuthorization,a.SwaggerApi=o,a.SwaggerClient=o,a.SchemaMarkup=e("./lib/schema-markup")},{"./lib/auth":2,"./lib/client":3,"./lib/helpers":4,"./lib/schema-markup":7}],2:[function(e,t,n){var r=e("./helpers"),i=e("btoa"),a=e("cookiejar"),o={each:e("lodash-compat/collection/each"),includes:e("lodash-compat/collection/includes"),isObject:e("lodash-compat/lang/isObject"),isArray:e("lodash-compat/lang/isArray")},s=t.exports.SwaggerAuthorizations=function(e){this.authz=e||{}};s.prototype.add=function(e,t){if(o.isObject(e))for(var n in e)this.authz[n]=e[n];else"string"==typeof e&&(this.authz[e]=t);return t},s.prototype.remove=function(e){return delete this.authz[e]},s.prototype.apply=function(e,t){var n=!0,r=!t,i=[];return o.each(t,function(e,t){"string"==typeof t&&i.push(t),o.each(e,function(e,t){i.push(t)})}),o.each(this.authz,function(t,a){if(r||o.includes(i,a)){var s=t.apply(e);n=n&&!!s}}),n};var l=t.exports.ApiKeyAuthorization=function(e,t,n){this.name=e,this.value=t,this.type=n};l.prototype.apply=function(e){return"query"===this.type?(e.url=e.url.indexOf("?")>0?e.url+"&"+this.name+"="+this.value:e.url+"?"+this.name+"="+this.value,!0):"header"===this.type?("undefined"==typeof e.headers[this.name]&&(e.headers[this.name]=this.value),!0):void 0};var u=t.exports.CookieAuthorization=function(e){this.cookie=e};u.prototype.apply=function(e){return e.cookieJar=e.cookieJar||new a,e.cookieJar.setCookie(this.cookie),!0};var c=t.exports.PasswordAuthorization=function(e,t){3===arguments.length&&(r.log("PasswordAuthorization: the 'name' argument has been removed, pass only username and password"),e=arguments[1],t=arguments[2]),this.username=e,this.password=t};c.prototype.apply=function(e){return"undefined"==typeof e.headers.Authorization&&(e.headers.Authorization="Basic "+i(this.username+":"+this.password)),!0}},{"./helpers":4,btoa:18,cookiejar:19,"lodash-compat/collection/each":55,"lodash-compat/collection/includes":58,"lodash-compat/lang/isArray":143,"lodash-compat/lang/isObject":147}],3:[function(e,t,n){var r={bind:e("lodash-compat/function/bind"),cloneDeep:e("lodash-compat/lang/cloneDeep"),find:e("lodash-compat/collection/find"),forEach:e("lodash-compat/collection/forEach"),indexOf:e("lodash-compat/array/indexOf"),isArray:e("lodash-compat/lang/isArray"),isObject:e("lodash-compat/lang/isObject"),isFunction:e("lodash-compat/lang/isFunction"),isPlainObject:e("lodash-compat/lang/isPlainObject"),isUndefined:e("lodash-compat/lang/isUndefined")},i=e("./auth"),a=e("./helpers"),o=e("./types/model"),s=e("./types/operation"),l=e("./types/operationGroup"),u=e("./resolver"),c=e("./http"),p=e("./spec-converter"),f=["apis","authorizationScheme","authorizations","basePath","build","buildFrom1_1Spec","buildFrom1_2Spec","buildFromSpec","clientAuthorizations","convertInfo","debug","defaultErrorCallback","defaultSuccessCallback","fail","failure","finish","help","idFromOp","info","initialize","isBuilt","isValid","modelPropertyMacro","models","modelsArray","options","parameterMacro","parseUri","progress","resourceCount","sampleModels","selfReflect","setConsolidatedModels","spec","supportedSubmitMethods","swaggerRequestHeaders","tagFromLabel","url","useJQuery"],h=["apis","asCurl","description","externalDocs","help","label","name","operation","operations","operationsArray","path","tag"],d=["delete","get","head","options","patch","post","put"],m=t.exports=function(e,t){return this.authorizations=null,this.authorizationScheme=null,this.basePath=null,this.debug=!1,this.info=null,this.isBuilt=!1,this.isValid=!1,this.modelsArray=[],this.resourceCount=0,this.url=null,this.useJQuery=!1,this.swaggerObject={},this.clientAuthorizations=new i.SwaggerAuthorizations,"undefined"!=typeof e?this.initialize(e,t):this};m.prototype.initialize=function(e,t){this.models={},this.sampleModels={},"string"==typeof e?this.url=e:r.isObject(e)&&(t=e,this.url=t.url),t=t||{},this.clientAuthorizations.add(t.authorizations),this.swaggerRequestHeaders=t.swaggerRequestHeaders||"application/json;charset=utf-8,*/*",this.defaultSuccessCallback=t.defaultSuccessCallback||null,this.defaultErrorCallback=t.defaultErrorCallback||null,this.modelPropertyMacro=t.modelPropertyMacro||null,this.parameterMacro=t.parameterMacro||null,"function"==typeof t.success&&(this.success=t.success),t.useJQuery&&(this.useJQuery=t.useJQuery),this.options=t||{},this.supportedSubmitMethods=t.supportedSubmitMethods||[],this.failure=t.failure||function(){},this.progress=t.progress||function(){},this.spec=r.cloneDeep(t.spec),t.scheme&&(this.scheme=t.scheme),"function"==typeof t.success&&(this.ready=!0,this.build())},m.prototype.build=function(e){if(this.isBuilt)return this;var t=this;this.progress("fetching resource list: "+this.url);var n={useJQuery:this.useJQuery,url:this.url,method:"get",headers:{accept:this.swaggerRequestHeaders},on:{error:function(e){return t.fail("http"!==t.url.substring(0,4)?"Please specify the protocol for "+t.url:0===e.status?"Can't read from server. It may not have the appropriate access-control-origin settings.":404===e.status?"Can't read swagger JSON from "+t.url:e.status+" : "+e.statusText+" "+t.url)},response:function(e){var n=e.obj;if(!n)return t.fail("failed to parse JSON/YAML response");if(t.swaggerVersion=n.swaggerVersion,t.swaggerObject=n,n.swagger&&2===parseInt(n.swagger))t.swaggerVersion=n.swagger,(new u).resolve(n,t.url,t.buildFromSpec,t),t.isValid=!0;else{var r=new p;t.oldSwaggerObject=t.swaggerObject,r.setDocumentationLocation(t.url),r.convert(n,t.clientAuthorizations,function(e){t.swaggerObject=e,(new u).resolve(e,t.url,t.buildFromSpec,t),t.isValid=!0})}}}};if(this.spec)t.swaggerObject=this.spec,setTimeout(function(){(new u).resolve(t.spec,t.buildFromSpec,t)},10);else{if(this.clientAuthorizations.apply(n),e)return n;(new c).execute(n,this.options)}return this},m.prototype.buildFromSpec=function(e){if(this.isBuilt)return this;this.apis={},this.apisArray=[],this.basePath=e.basePath||"",this.consumes=e.consumes,this.host=e.host||"",this.info=e.info||{},this.produces=e.produces,this.schemes=e.schemes||[],this.securityDefinitions=e.securityDefinitions,this.title=e.title||"",e.externalDocs&&(this.externalDocs=e.externalDocs),this.authSchemes=e.securityDefinitions;var t,n={};if(Array.isArray(e.tags))for(n={},t=0;t<e.tags.length;t++){var i=e.tags[t];n[i.name]=i}var u;"string"==typeof this.url?(u=this.parseUri(this.url),"undefined"==typeof this.scheme&&"undefined"==typeof this.schemes||0===this.schemes.length?this.scheme=u.scheme||"http":"undefined"==typeof this.scheme&&(this.scheme=this.schemes[0]),("undefined"==typeof this.host||""===this.host)&&(this.host=u.host,u.port&&(this.host=this.host+":"+u.port))):"undefined"==typeof this.schemes||0===this.schemes.length?this.scheme="http":"undefined"==typeof this.scheme&&(this.scheme=this.schemes[0]),this.definitions=e.definitions;var c;for(c in this.definitions){var p=new o(c,this.definitions[c],this.models,this.modelPropertyMacro);p&&(this.models[c]=p)}var m=this;return m.apis.help=r.bind(m.help,m),r.forEach(e.paths,function(e,t){r.isPlainObject(e)&&r.forEach(d,function(i){var o=e[i];if(!r.isUndefined(o)){if(!r.isPlainObject(o))return void a.log("The '"+i+"' operation for '"+t+"' path is not an Operation Object");var u=o.tags;(r.isUndefined(u)||!r.isArray(u)||0===u.length)&&(u=o.tags=["default"]);var c=m.idFromOp(t,i,o),p=new s(m,o.scheme,c,i,t,o,m.definitions,m.models,m.clientAuthorizations);r.forEach(u,function(e){var t=r.indexOf(f,e)>-1?"_"+e:e,i=r.indexOf(h,e)>-1?"_"+e:e,o=m[t];if(t!==e&&a.log("The '"+e+"' tag conflicts with a SwaggerClient function/property name. Use 'client."+t+"' or 'client.apis."+e+"' instead of 'client."+e+"'."),i!==e&&a.log("The '"+e+"' tag conflicts with a SwaggerClient operation function/property name. Use 'client.apis."+i+"' instead of 'client.apis."+e+"'."),r.indexOf(h,c)>-1&&(a.log("The '"+c+"' operationId conflicts with a SwaggerClient operation function/property name. Use 'client.apis."+i+"._"+c+"' instead of 'client.apis."+i+"."+c+"'."),c="_"+c,p.nickname=c),r.isUndefined(o)){o=m[t]=m.apis[i]={},o.operations={},o.label=i,o.apis={};var s=n[e];r.isUndefined(s)||(o.description=s.description,o.externalDocs=s.externalDocs),m[t].help=r.bind(m.help,o),m.apisArray.push(new l(e,o.description,o.externalDocs,p))}r.isFunction(o.help)||(o.help=r.bind(m.help,o)),m.apis[i][c]=o[c]=r.bind(p.execute,p),m.apis[i][c].help=o[c].help=r.bind(p.help,p),m.apis[i][c].asCurl=o[c].asCurl=r.bind(p.asCurl,p),o.apis[c]=o.operations[c]=p;var u=r.find(m.apisArray,function(t){return t.tag===e});u&&u.operationsArray.push(p)})}})}),this.isBuilt=!0,this.success&&(this.isValid=!0,this.isBuilt=!0,this.success()),this},m.prototype.parseUri=function(e){var t=/^(((([^:\/#\?]+:)?(?:(\/\/)((?:(([^:@\/#\?]+)(?:\:([^:@\/#\?]+))?)@)?(([^:\/#\?\]\[]+|\[[^\/\]@#?]+\])(?:\:([0-9]+))?))?)?)?((\/?(?:[^\/\?#]+\/+)*)([^\?#]*)))?(\?[^#]+)?)(#.*)?/,n=t.exec(e);return{scheme:n[4].replace(":",""),host:n[11],port:n[12],path:n[15]}},m.prototype.help=function(e){var t="";return this instanceof m?r.forEach(this.apis,function(e,n){r.isPlainObject(e)&&(t+="operations for the '"+n+"' tag\n",r.forEach(e.operations,function(e,n){t+=" * "+n+": "+e.summary+"\n"}))}):(this instanceof l||r.isPlainObject(this))&&(t+="operations for the '"+this.label+"' tag\n",r.forEach(this.apis,function(e,n){t+=" * "+n+": "+e.summary+"\n"})),e?t:(a.log(t),t)},m.prototype.tagFromLabel=function(e){return e},m.prototype.idFromOp=function(e,t,n){n&&n.operationId||(n=n||{},n.operationId=t+"_"+e);var r=n.operationId.replace(/[\s!@#$%^&*()_+=\[{\]};:<>|.\/?,\\'""-]/g,"_")||e.substring(1)+"_"+t;return r=r.replace(/((_){2,})/g,"_"),r=r.replace(/^(_)*/g,""),r=r.replace(/([_])*$/g,"")},m.prototype.setHost=function(e){this.host=e,this.apis&&r.forEach(this.apis,function(t){t.operations&&r.forEach(t.operations,function(t){t.host=e})})},m.prototype.setBasePath=function(e){this.basePath=e,this.apis&&r.forEach(this.apis,function(t){t.operations&&r.forEach(t.operations,function(t){t.basePath=e})})},m.prototype.fail=function(e){throw this.failure(e),e}},{"./auth":2,"./helpers":4,"./http":5,"./resolver":6,"./spec-converter":8,"./types/model":9,"./types/operation":10,"./types/operationGroup":11,"lodash-compat/array/indexOf":52,"lodash-compat/collection/find":56,"lodash-compat/collection/forEach":57,"lodash-compat/function/bind":61,"lodash-compat/lang/cloneDeep":141,"lodash-compat/lang/isArray":143,"lodash-compat/lang/isFunction":145,"lodash-compat/lang/isObject":147,"lodash-compat/lang/isPlainObject":148,"lodash-compat/lang/isUndefined":151}],4:[function(e,t,n){(function(n){var r={isPlainObject:e("lodash-compat/lang/isPlainObject"),indexOf:e("lodash-compat/array/indexOf")};t.exports.__bind=function(e,t){return function(){return e.apply(t,arguments)}};var i=t.exports.log=function(){console&&"test"!==n.env.NODE_ENV&&console.log(Array.prototype.slice.call(arguments)[0])};t.exports.fail=function(e){i(e)};{var a=(t.exports.optionHtml=function(e,t){return'<tr><td class="optionName">'+e+":</td><td>"+t+"</td></tr>"},t.exports.resolveSchema=function(e){return r.isPlainObject(e.schema)&&(e=a(e.schema)),e});t.exports.simpleRef=function(e){return"undefined"==typeof e?null:0===e.indexOf("#/definitions/")?e.substring("#/definitions/".length):e}}}).call(this,e("_process"))},{_process:17,"lodash-compat/array/indexOf":52,"lodash-compat/lang/isPlainObject":148}],5:[function(e,t,n){var r=e("./helpers"),i=e("jquery"),a=e("superagent"),o=e("js-yaml"),s={isObject:e("lodash-compat/lang/isObject")},l=function(){},u=function(){},c=t.exports=function(){};c.prototype.execute=function(e,t){var n;n=t&&t.client?t.client:new u(t),(e&&e.useJQuery===!0||this.isInternetExplorer())&&(n=new l(t));var r=e.on.response,i=function(e){t&&t.responseInterceptor&&(e=t.responseInterceptor.apply(e)),r(e)};e.on.response=function(e){i(e)},s.isObject(e)&&s.isObject(e.body)&&(e.body.type&&"formData"===e.body.type?(e.contentType=!1,e.processData=!1,delete e.headers["Content-Type"]):e.body=JSON.stringify(e.body)),n.execute(e)},c.prototype.isInternetExplorer=function(){var e=!1;if("undefined"!=typeof navigator&&navigator.userAgent){var t=navigator.userAgent.toLowerCase();if(-1!==t.indexOf("msie")){var n=parseInt(t.split("msie")[1]);8>=n&&(e=!0)}}return e},l.prototype.execute=function(e){var t=e.on,n=e;return e.type=e.method,e.cache=!1,delete e.useJQuery,e.data=e.body,delete e.body,e.complete=function(e){for(var i={},a=e.getAllResponseHeaders().split("\n"),s=0;s<a.length;s++){var l=a[s].trim();if(0!==l.length){var u=l.indexOf(":");if(-1!==u){var c=l.substring(0,u).trim(),p=l.substring(u+1).trim();i[c]=p}else i[l]=null}}var f={url:n.url,method:n.method,status:e.status,statusText:e.statusText,data:e.responseText,headers:i};try{var h=e.responseJSON||o.safeLoad(e.responseText);f.obj="string"==typeof h?{}:h}catch(d){r.log("unable to parse JSON/YAML content")}if(f.obj=f.obj||null,e.status>=200&&e.status<300)t.response(f);else{if(!(0===e.status||e.status>=400&&e.status<599))return t.response(f);t.error(f)}},i.support.cors=!0,i.ajax(e)},u.prototype.execute=function(e){var t=e.method.toLowerCase();"delete"===t&&(t="del");var n,i=e.headers||{},s=a[t](e.url);for(n in i)s.set(n,i[n]);e.body&&s.send(e.body),"function"==typeof s.buffer&&s.buffer(),s.end(function(t,n){n=n||{status:0,headers:{error:"no response from server"}};var i,a={url:e.url,method:e.method,headers:n.headers};if(!t&&n.error&&(t=n.error),t&&e.on&&e.on.error)a.obj=t,a.status=n?n.status:500,a.statusText=n?n.text:t.message,i=e.on.error;else if(n&&e.on&&e.on.response){var s;if(n.body&&Object.keys(n.body).length>0)s=n.body;else try{s=o.safeLoad(n.text),s="string"==typeof s?null:s}catch(l){r.log("cannot parse JSON/YAML content")}a.obj=s||null,a.status=n.status,a.statusText=n.text,i=e.on.response}a.data=a.statusText,i&&i(a)})}},{"./helpers":4,jquery:20,"js-yaml":21,"lodash-compat/lang/isObject":147,superagent:160}],6:[function(e,t,n){var r=e("./http"),i={isObject:e("lodash-compat/lang/isObject"),isArray:e("lodash-compat/lang/isArray")},a=t.exports=function(){};a.prototype.processAllOf=function(e,t,n,r,i){var a,o,s;t["x-resolved-from"]=["#/definitions/"+e];var l=t.allOf;for(l.sort(function(e,t){return e.$ref&&t.$ref?0:e.$ref?-1:1}),a=0;a<l.length;a++)s=l[a],o="/definitions/"+e+"/allOf",this.resolveInline(null,i,s,n,r,o)},a.prototype.resolve=function(e,t,n,a){var o,s,l=t,u=n,c=a;"function"==typeof t&&(l=null,u=t,c=n);var p=l;this.scope=c||this,this.iteration=this.iteration||0;var f,h,d,m,g=0,y={},v={},b=[];for(f in e.definitions){var w=e.definitions[f];for(m in w.properties)d=w.properties[m],i.isArray(d.allOf)?this.processAllOf(f,d,b,v,e):this.resolveTo(l,d,b,"/definitions");w.allOf&&this.processAllOf(f,w,b,v,e)}for(f in e.paths){var x,S,A;h=e.paths[f];for(x in h)if("$ref"===x)o="/paths"+f,this.resolveInline(l,e,h,b,v,o);else{S=h[x];var C=S.parameters;for(s in C){var E=C[s];o="/paths"+f+"/"+x+"/parameters","body"===E["in"]&&E.schema&&this.resolveTo(l,E.schema,b,o),E.$ref&&this.resolveInline(l,e,E,b,v,E.$ref)}for(A in S.responses){var k=S.responses[A];o="/paths"+f+"/"+x+"/responses/"+A,i.isObject(k)&&(k.$ref&&this.resolveInline(l,e,k,b,v,o),k.schema&&this.resolveTo(l,k.schema,b,o))}}}var O,j=0,T=[],I=b;for(s=0;s<I.length;s++){var _=I[s];if(l===_.root){if("ref"===_.resolveAs){var D,L=((_.root||"")+"/"+_.key).split("/"),P=[],N="";if(_.key.indexOf("../")>=0){for(var $=0;$<L.length;$++)".."===L[$]?P=P.slice(0,P.length-1):P.push(L[$]);for(D=0;D<P.length;D++)D>0&&(N+="/"),N+=P[D];_.root=N,T.push(_)}else if(O=_.key.split("#"),2===O.length){(0===O[0].indexOf("http://")||0===O[0].indexOf("https://"))&&(_.root=O[0]),o=O[1].split("/");var M,R=e;for(D=0;D<o.length;D++){var F=o[D];if(""!==F){if(R=R[F],"undefined"==typeof R){M=null;break}M=R}}null===M&&T.push(_)}}else if("inline"===_.resolveAs){if(_.key&&-1===_.key.indexOf("#")&&"/"!==_.key.charAt(0)){for(O=_.root.split("/"),o="",s=0;s<O.length-1;s++)o+=O[s]+"/";o+=_.key,_.root=o,_.location=""}T.push(_)}}else T.push(_)}j=T.length;for(var U=0;U<T.length;U++)!function(t,n){if(null===t.root||t.root===l)n.resolveItem(e,p,b,y,v,t),g+=1,g===j&&n.finish(e,l,b,y,v,u);else{var i={useJQuery:!1,url:t.root,method:"get",headers:{accept:n.scope.swaggerRequestHeaders||"application/json"},on:{error:function(){g+=1,v[t.key]={root:t.root,location:t.location},g===j&&n.finish(e,p,b,y,v,u)},response:function(r){var i=r.obj;n.resolveItem(i,t.root,b,y,v,t),g+=1,g===j&&n.finish(e,p,b,y,v,u)}}};c&&c.clientAuthorizations&&c.clientAuthorizations.apply(i),(new r).execute(i)}}(T[U],this);0===Object.keys(T).length&&this.finish(e,p,b,y,v,u)},a.prototype.resolveItem=function(e,t,n,r,i,a){var o=a.location,s=e,l=o.split("/");if(""!==o)for(var u=0;u<l.length;u++){var c=l[u];if(-1!==c.indexOf("~1")&&(c=l[u].replace(/~0/g,"~").replace(/~1/g,"/"),"/"!==c.charAt(0)&&(c="/"+c)),"undefined"==typeof s||null===s)break;if(""===c&&u===l.length-1&&l.length>1){s=null;break}c.length>0&&(s=s[c])}var p=a.key;l=a.key.split("/");var f=l[l.length-1];f.indexOf("#")>=0&&(f=f.split("#")[1]),null!==s&&"undefined"!=typeof s?r[p]={name:f,obj:s,key:a.key,root:a.root}:i[p]={root:a.root,location:a.location}},a.prototype.finish=function(e,t,n,r,i,a){var o;for(o in n){var s=n[o],l=s.key,u=r[l];if(u)if(e.definitions=e.definitions||{},"ref"===s.resolveAs){for(l in u.obj)var c=this.retainRoot(u.obj[l],s.root);e.definitions[u.name]=u.obj,s.obj.$ref="#/definitions/"+u.name}else if("inline"===s.resolveAs){var p=s.obj;p["x-resolved-from"]=[s.key],delete p.$ref;for(l in u.obj){var c=this.retainRoot(u.obj[l],s.root);p[l]=c}}}var f=this.countUnresolvedRefs(e);0===f.length||this.iteration>5?(this.resolveAllOf(e.definitions),a.call(this.scope,e,i)):(this.iteration+=1,this.resolve(e,t,a,this.scope))},a.prototype.countUnresolvedRefs=function(e){var t,n=this.getRefs(e),r=[],i=[];for(t in n)0===t.indexOf("#")?r.push(t.substring(1)):i.push(t);for(t=0;t<r.length;t++)for(var a=r[t],o=a.split("/"),s=e,l=0;l<o.length;l++){var u=o[l];if(""!==u&&(s=s[u],"undefined"==typeof s)){i.push(a);break}}return i.length; + +},a.prototype.getRefs=function(e,t){t=t||e;var n={};for(var r in t)if(t.hasOwnProperty(r)){var a=t[r];if("$ref"===r&&"string"==typeof a)n[a]=null;else if(i.isObject(a)){var o=this.getRefs(a);for(var s in o)n[s]=null}}return n},a.prototype.retainRoot=function(e,t){for(var n in e){var r=e[n];"$ref"===n&&"string"==typeof r?0!==r.indexOf("http://")&&0!==r.indexOf("https://")&&(0!==r.indexOf("#")&&(r="#"+r),r=(t||"")+r,e[n]=r):i.isObject(r)&&this.retainRoot(r,t)}return e},a.prototype.resolveInline=function(e,t,n,r,i,a){var o,s,l,u,c=n.$ref,p=n.$ref,f=!1;if(p){if(0===p.indexOf("../")){for(s=p.split("../"),l=e.split("/"),p="",o=0;o<s.length;o++)""===s[o]?l=l.slice(0,l.length-1):p+=s[o];for(e="",o=0;o<l.length-1;o++)o>0&&(e+="/"),e+=l[o];f=!0}if(p.indexOf("#")>=0)if(0===p.indexOf("/"))u=p.split("#"),s=e.split("//"),l=s[1].split("/"),e=s[0]+"//"+l[0]+u[0],a=u[1];else{if(u=p.split("#"),""!==u[0]){if(l=e.split("/"),l=l.slice(0,l.length-1),!f){e="";for(var h=0;h<l.length;h++)h>0&&(e+="/"),e+=l[h]}e+="/"+p.split("#")[0]}a=u[1]}0===p.indexOf("http")?(p.indexOf("#")>=0?(e=p.split("#")[0],a=p.split("#")[1]):(e=p,a=""),r.push({obj:n,resolveAs:"inline",root:e,key:c,location:a})):0===p.indexOf("#")?(a=p.split("#")[1],r.push({obj:n,resolveAs:"inline",root:e,key:c,location:a})):r.push({obj:n,resolveAs:"inline",root:e,key:c,location:a})}else"array"===n.type&&this.resolveTo(e,n.items,r,a)},a.prototype.resolveTo=function(e,t,n,r){var i,a,o=t.$ref,s=e;if("undefined"!=typeof o){if(o.indexOf("#")>=0){var l=o.split("#");if(l[0]&&0===o.indexOf("/"));else if(l[0]&&0===o.indexOf("http"));else if(l[0]&&l[0].length>0){for(i=e.split("/"),s="",a=0;a<i.length-1;a++)s+=i[a]+"/";s+=l[0]}r=l[1]}else{for(i=e.split("/"),s="",a=0;a<i.length-1;a++)s+=i[a]+"/";s+=o,r=""}n.push({obj:t,resolveAs:"ref",root:s,key:o,location:r})}else if("array"===t.type){var u=t.items;this.resolveTo(e,u,n,r)}},a.prototype.resolveAllOf=function(e,t,n){n=n||0,t=t||e;var r;for(var a in t)if(t.hasOwnProperty(a)){var o=t[a];if(null===o)throw new TypeError("Swagger 2.0 does not support null types ("+t+"). See https://github.com/swagger-api/swagger-spec/issues/229.");if("object"==typeof o&&this.resolveAllOf(e,o,n+1),o&&"undefined"!=typeof o.allOf){var s=o.allOf;if(i.isArray(s)){var l={};l["x-composed"]=!0,"undefined"!=typeof o["x-resolved-from"]&&(l["x-resolved-from"]=o["x-resolved-from"]),l.properties={},o.example&&(l.example=o.example);for(var u=0;u<s.length;u++){var c=s[u],p="self";"undefined"!=typeof c["x-resolved-from"]&&(p=c["x-resolved-from"][0]);for(var f in c)if(l.hasOwnProperty(f))if("properties"===f){var h=c[f];for(r in h){l.properties[r]=JSON.parse(JSON.stringify(h[r]));var d=h[r]["x-resolved-from"];("undefined"==typeof d||"self"===d)&&(d=p),l.properties[r]["x-resolved-from"]=d}}else if("required"===f){for(var m=l.required.concat(c[f]),g=0;g<m.length;++g)for(var y=g+1;y<m.length;++y)m[g]===m[y]&&m.splice(y--,1);l.required=m}else"x-resolved-from"===f&&l["x-resolved-from"].push(p);else if(l[f]=JSON.parse(JSON.stringify(c[f])),"properties"===f)for(r in l[f])l[f][r]["x-resolved-from"]=p}t[a]=l}}i.isObject(o)&&this.resolveAllOf(e,o,n+1)}}},{"./http":5,"lodash-compat/lang/isArray":143,"lodash-compat/lang/isObject":147}],7:[function(e,t,n){function r(e,t){return'<tr><td class="optionName">'+e+":</td><td>"+t+"</td></tr>"}function i(e,t){var n;return"integer"===e&&"int32"===t?n="integer":"integer"===e&&"int64"===t?n="long":"integer"===e&&"undefined"==typeof t?n="long":"string"===e&&"date-time"===t?n="date-time":"string"===e&&"date"===t?n="date":"number"===e&&"float"===t?n="float":"number"===e&&"double"===t?n="double":"number"===e&&"undefined"==typeof t?n="double":"boolean"===e?n="boolean":"string"===e&&(n="string"),n}function a(e,t){var n="";return"undefined"!=typeof e.$ref?n+=l.simpleRef(e.$ref):"undefined"==typeof e.type?n+="object":"array"===e.type?t?n+=a(e.items||e.$ref||{}):(n+="Array[",n+=a(e.items||e.$ref||{}),n+="]"):n+="integer"===e.type&&"int32"===e.format?"integer":"integer"===e.type&&"int64"===e.format?"long":"integer"===e.type&&"undefined"==typeof e.format?"long":"string"===e.type&&"date-time"===e.format?"date-time":"string"===e.type&&"date"===e.format?"date":"string"===e.type&&"undefined"==typeof e.format?"string":"number"===e.type&&"float"===e.format?"float":"number"===e.type&&"double"===e.format?"double":"number"===e.type&&"undefined"==typeof e.format?"double":"boolean"===e.type?"boolean":e.$ref?l.simpleRef(e.$ref):e.type,n}function o(e,t,n,r){e=l.resolveSchema(e),"function"!=typeof r&&(r=function(e){return(e||{})["default"]}),n=n||{};var i,a,s=e.type||"object",c=e.format;return e.example?a=e.example:u.isUndefined(e.items)&&u.isArray(e["enum"])&&(a=e["enum"][0]),u.isUndefined(a)&&(e.$ref?(i=t[l.simpleRef(e.$ref)],u.isUndefined(i)||(u.isUndefined(n[i.name])?(n[i.name]=i,a=o(i.definition,t,n,r),delete n[i.name]):a="array"===i.type?[]:{})):u.isUndefined(e["default"])?"string"===s?a="date-time"===c?(new Date).toISOString():"date"===c?(new Date).toISOString().split("T")[0]:"string":"integer"===s?a=0:"number"===s?a=0:"boolean"===s?a=!0:"object"===s?(a={},u.forEach(e.properties,function(e,i){var s=u.cloneDeep(e);s["default"]=r(e),a[i]=o(s,t,n,r)})):"array"===s&&(a=[],u.isArray(e.items)?u.forEach(e.items,function(e){a.push(o(e,t,n,r))}):u.isPlainObject(e.items)?a.push(o(e.items,t,n,r)):u.isUndefined(e.items)?a.push({}):l.log("Array type's 'items' property is not an array or an object, cannot process")):a=e["default"]),a}function s(e,t,n,i){function a(e,t,r){var i,a=t;return e.$ref?(a=e.title||l.simpleRef(e.$ref),i=n[a]):u.isUndefined(t)&&(a=e.title||"Inline Model "+ ++m,i={definition:e}),r!==!0&&(h[a]=u.isUndefined(i)?{}:i.definition),a}function o(e){var t='<span class="propType">',n=e.type||"object";return e.$ref?t+=a(e,l.simpleRef(e.$ref)):"object"===n?t+=u.isUndefined(e.properties)?"object":a(e):"array"===n?(t+="Array[",u.isArray(e.items)?t+=u.map(e.items,a).join(","):u.isPlainObject(e.items)?t+=u.isUndefined(e.items.$ref)?u.isUndefined(e.items.type)||-1!==u.indexOf(["array","object"],e.items.type)?a(e.items):e.items.type:a(e.items,l.simpleRef(e.items.$ref)):(l.log("Array type's 'items' schema is not an array or an object, cannot process"),t+="object"),t+="]"):t+=e.type,t+="</span>"}function s(e,t){var n="",i=e.type||"object",a="array"===i;switch(a&&(i=u.isPlainObject(e.items)&&!u.isUndefined(e.items.type)?e.items.type:"object"),u.isUndefined(e["default"])||(n+=r("Default",e["default"])),i){case"string":e.minLength&&(n+=r("Min. Length",e.minLength)),e.maxLength&&(n+=r("Max. Length",e.maxLength)),e.pattern&&(n+=r("Reg. Exp.",e.pattern));break;case"integer":case"number":e.minimum&&(n+=r("Min. Value",e.minimum)),e.exclusiveMinimum&&(n+=r("Exclusive Min.","true")),e.maximum&&(n+=r("Max. Value",e.maximum)),e.exclusiveMaximum&&(n+=r("Exclusive Max.","true")),e.multipleOf&&(n+=r("Multiple Of",e.multipleOf))}if(a&&(e.minItems&&(n+=r("Min. Items",e.minItems)),e.maxItems&&(n+=r("Max. Items",e.maxItems)),e.uniqueItems&&(n+=r("Unique Items","true")),e.collectionFormat&&(n+=r("Coll. Format",e.collectionFormat))),u.isUndefined(e.items)&&u.isArray(e["enum"])){var o;o="number"===i||"integer"===i?e["enum"].join(", "):'"'+e["enum"].join('", "')+'"',n+=r("Enum",o)}return n.length>0&&(t='<span class="propWrap">'+t+'<table class="optionsWrapper"><tr><th colspan="2">'+i+"</th></tr>"+n+"</table></span>"),t}function c(e,t){var r=e.type||"object",c="array"===e.type,h=p+t+" "+(c?"[":"{")+f;return t&&d.push(t),c?u.isArray(e.items)?h+="<div>"+u.map(e.items,function(e){var t=e.type||"object";return u.isUndefined(e.$ref)?u.indexOf(["array","object"],t)>-1?"object"===t&&u.isUndefined(e.properties)?"object":a(e):s(e,t):a(e,l.simpleRef(e.$ref))}).join(",</div><div>"):u.isPlainObject(e.items)?h+=u.isUndefined(e.items.$ref)?u.indexOf(["array","object"],e.items.type||"object")>-1?(u.isUndefined(e.items.type)||"object"===e.items.type)&&u.isUndefined(e.items.properties)?"<div>object</div>":"<div>"+a(e.items)+"</div>":"<div>"+s(e.items,e.items.type)+"</div>":"<div>"+a(e.items,l.simpleRef(e.items.$ref))+"</div>":(l.log("Array type's 'items' property is not an array or an object, cannot process"),h+="<div>object</div>"):e.$ref?h+="<div>"+a(e,t)+"</div>":"object"===r?(h+="<div>",u.isPlainObject(e.properties)&&(h+=u.map(e.properties,function(t,r){var a,c=u.indexOf(e.required,r)>=0,p=u.cloneDeep(t),f=c?"required":"",h='<span class="propName '+f+'">'+r+"</span> (";return p["default"]=i(p),p=l.resolveSchema(p),u.isUndefined(p.$ref)||(a=n[l.simpleRef(p.$ref)],u.isUndefined(a)||-1!==u.indexOf([void 0,"array","object"],a.definition.type)||(p=l.resolveSchema(a.definition))),h+=o(p),c||(h+=', <span class="propOptKey">optional</span>'),h+=")",u.isUndefined(p.description)||(h+=': <span class="propDesc">'+p.description+"</span>"),p["enum"]&&(h+=' = <span class="propVals">[\''+p["enum"].join("', '")+"']</span>"),s(p,h)}).join(",</div><div>")),h+="</div>"):h+="<div>"+s(e,r)+"</div>",h+p+(c?"]":"}")+f}var p='<span class="strong">',f="</span>";if(u.isObject(arguments[0])&&(e=void 0,t=arguments[0],n=arguments[1],i=arguments[2]),n=n||{},t=l.resolveSchema(t),u.isEmpty(t))return p+"Empty"+f;if("string"==typeof t.$ref&&(e=l.simpleRef(t.$ref),t=n[e],"undefined"==typeof t))return p+e+" is not defined!"+f;"string"!=typeof e&&(e=t.title||"Inline Model"),t.definition&&(t=t.definition),"function"!=typeof i&&(i=function(e){return(e||{})["default"]});for(var h={},d=[],m=0,g=c(t,e);u.keys(h).length>0;)u.forEach(h,function(e,t){var n=u.indexOf(d,t)>-1;delete h[t],n||(d.push(t),g+="<br />"+c(e,t))});return g}var l=e("./helpers"),u={isPlainObject:e("lodash-compat/lang/isPlainObject"),isUndefined:e("lodash-compat/lang/isUndefined"),isArray:e("lodash-compat/lang/isArray"),isObject:e("lodash-compat/lang/isObject"),isEmpty:e("lodash-compat/lang/isEmpty"),map:e("lodash-compat/collection/map"),indexOf:e("lodash-compat/array/indexOf"),cloneDeep:e("lodash-compat/lang/cloneDeep"),keys:e("lodash-compat/object/keys"),forEach:e("lodash-compat/collection/forEach")};t.exports.optionHtml=r,t.exports.typeFromJsonSchema=i,t.exports.getStringSignature=a,t.exports.schemaToHTML=s,t.exports.schemaToJSON=o},{"./helpers":4,"lodash-compat/array/indexOf":52,"lodash-compat/collection/forEach":57,"lodash-compat/collection/map":59,"lodash-compat/lang/cloneDeep":141,"lodash-compat/lang/isArray":143,"lodash-compat/lang/isEmpty":144,"lodash-compat/lang/isObject":147,"lodash-compat/lang/isPlainObject":148,"lodash-compat/lang/isUndefined":151,"lodash-compat/object/keys":152}],8:[function(e,t,n){var r=e("./http"),i={isObject:e("lodash-compat/lang/isObject")},a=t.exports=function(){this.errors=[],this.warnings=[],this.modelMap={}};a.prototype.setDocumentationLocation=function(e){this.docLocation=e},a.prototype.convert=function(e,t,n){if(!e||!Array.isArray(e.apis))return this.finish(n,null);this.clientAuthorizations=t;var r={swagger:"2.0"};r.originalVersion=e.swaggerVersion,this.apiInfo(e,r),this.securityDefinitions(e,r),e.basePath&&this.setDocumentationLocation(e.basePath);var i,a=!1;for(i=0;i<e.apis.length;i++){var o=e.apis[i];Array.isArray(o.operations)&&(a=!0)}a?(this.declaration(e,r),this.finish(n,r)):this.resourceListing(e,r,n)},a.prototype.declaration=function(e,t){var n,r,a,o;if(e.apis){0===e.basePath.indexOf("http://")?(a=e.basePath.substring("http://".length),o=a.indexOf("/"),o>0?(t.host=a.substring(0,o),t.basePath=a.substring(o)):(t.host=a,t.basePath="/")):0===e.basePath.indexOf("https://")?(a=e.basePath.substring("https://".length),o=a.indexOf("/"),o>0?(t.host=a.substring(0,o),t.basePath=a.substring(o)):(t.host=a,t.basePath="/")):t.basePath=e.basePath;var s;if(e.authorizations&&(s=e.authorizations),e.consumes&&(t.consumes=e.consumes),e.produces&&(t.produces=e.produces),i.isObject(e))for(n in e.models){var l=e.models[n],u=l.id||n;this.modelMap[u]=n}for(r=0;r<e.apis.length;r++){var c=e.apis[r],p=c.path,f=c.operations;this.operations(p,e.resourcePath,f,s,t)}var h=e.models||{};this.models(h,t)}},a.prototype.models=function(e,t){if(i.isObject(e)){var n;t.definitions=t.definitions||{};for(n in e){var r,a=e[n],o=[],s={properties:{}};for(r in a.properties){var l=a.properties[r],u={};this.dataType(l,u),l.description&&(u.description=l.description),l["enum"]&&(u["enum"]=l["enum"]),"boolean"==typeof l.required&&l.required===!0&&o.push(r),"string"==typeof l.required&&"true"===l.required&&o.push(r),s.properties[r]=u}o.length>0&&(s["enum"]=o),s.required=a.required,t.definitions[n]=s}}},a.prototype.extractTag=function(e){var t=e||"default";return(0===t.indexOf("http:")||0===t.indexOf("https:"))&&(t=t.split(["/"]),t=t[t.length-1].substring()),t.endsWith(".json")&&(t=t.substring(0,t.length-".json".length)),t.replace("/","")},a.prototype.operations=function(e,t,n,r,i){if(Array.isArray(n)){var a;i.paths||(i.paths={});var o=i.paths[e]||{},s=this.extractTag(t);i.tags=i.tags||[];var l=!1;for(a=0;a<i.tags.length;a++){var u=i.tags[a];u.name===s&&(l=!0)}for(l||i.tags.push({name:s}),a=0;a<n.length;a++){var c=n[a],p=(c.method||c.httpMethod).toLowerCase(),f={tags:[s]},h=c.authorizations;if(h&&0===Object.keys(h).length&&(h=r),"undefined"!=typeof h){var d;for(var m in h){f.security=f.security||[];var g=h[m];if(g){var y=[];for(var v in g)y.push(g[v].scope);d={},d[m]=y,f.security.push(d)}else d={},d[m]=[],f.security.push(d)}}c.consumes?f.consumes=c.consumes:i.consumes&&(f.consumes=i.consumes),c.produces?f.produces=c.produces:i.produces&&(f.produces=i.produces),c.summary&&(f.summary=c.summary),c.notes&&(f.description=c.notes),c.nickname&&(f.operationId=c.nickname),c.deprecated&&(f.deprecated=c.deprecated),this.authorizations(h,i),this.parameters(f,c.parameters,i),this.responseMessages(f,c,i),o[p]=f}i.paths[e]=o}},a.prototype.responseMessages=function(e,t){if(i.isObject(t)){var n={};this.dataType(t,n),!n.schema&&n.type&&(n={schema:n}),e.responses=e.responses||{};var r=!1;if(Array.isArray(t.responseMessages)){var a,o=t.responseMessages;for(a=0;a<o.length;a++){var s=o[a],l={description:s.message};200===s.code&&(r=!0),s.responseModel&&(l.schema={$ref:s.responseModel}),e.responses[""+s.code]=l}}r?e.responses["default"]=n:e.responses[200]=n}},a.prototype.authorizations=function(e){!i.isObject(e)},a.prototype.parameters=function(e,t){if(Array.isArray(t)){var n;for(n=0;n<t.length;n++){var r=t[n],i={};if(i.name=r.name,i.description=r.description,i.required=r.required,i["in"]=r.paramType,"body"===i["in"]&&(i.name="body"),"form"===i["in"]&&(i["in"]="formData"),r["enum"]&&(i["enum"]=r["enum"]),r.allowMultiple===!0||"true"===r.allowMultiple){var a={};if(this.dataType(r,a),i.type="array",i.items=a,r.allowableValues){var o=r.allowableValues;"LIST"===o.valueType&&(i["enum"]=o.values)}}else this.dataType(r,i);e.parameters=e.parameters||[],e.parameters.push(i)}}},a.prototype.dataType=function(e,t){if(i.isObject(e)){e.minimum&&(t.minimum=e.minimum),e.maximum&&(t.maximum=e.maximum),e.format&&(t.format=e.format),"undefined"!=typeof e.defaultValue&&(t["default"]=e.defaultValue);var n=this.toJsonSchema(e);n&&(t=t||{},n.type&&(t.type=n.type),n.format&&(t.format=n.format),n.$ref&&(t.schema={$ref:n.$ref}),n.items&&(t.items=n.items))}},a.prototype.toJsonSchema=function(e){if(!e)return"object";var t=e.type||e.dataType||e.responseClass||"",n=t.toLowerCase(),r=(e.format||"").toLowerCase();if(0===n.indexOf("list[")){var i=t.substring(5,t.length-1),a=this.toJsonSchema({type:i});return{type:"array",items:a}}if("int"===n||"integer"===n&&"int32"===r)return{type:"integer",format:"int32"};if("long"===n||"integer"===n&&"int64"===r)return{type:"integer",format:"int64"};if("integer"===n)return{type:"integer",format:"int64"};if("float"===n||"number"===n&&"float"===r)return{type:"number",format:"float"};if("double"===n||"number"===n&&"double"===r)return{type:"number",format:"double"};if("string"===n&&"date-time"===r||"date"===n)return{type:"string",format:"date-time"};if("string"===n)return{type:"string"};if("file"===n)return{type:"file"};if("boolean"===n)return{type:"boolean"};if("array"===n||"list"===n){if(e.items){var o=this.toJsonSchema(e.items);return{type:"array",items:o}}return{type:"array",items:{type:"object"}}}return e.$ref?{$ref:"#/definitions/"+this.modelMap[e.$ref]||e.$ref}:"void"===n||""===n?{}:{$ref:"#/definitions/"+this.modelMap[e.type]||e.type}},a.prototype.resourceListing=function(e,t,n){var i,a=0,o=this,s=e.apis.length,l=t;for(0===s&&this.finish(n,t),i=0;s>i;i++){var u=e.apis[i],c=u.path,p=this.getAbsolutePath(e.swaggerVersion,this.docLocation,c);u.description&&(t.tags=t.tags||[],t.tags.push({name:this.extractTag(u.path),description:u.description||""}));var f={url:p,headers:{accept:"application/json"},on:{},method:"get"};f.on.response=function(e){a+=1;var t=e.obj;t&&o.declaration(t,l),a===s&&o.finish(n,l)},f.on.error=function(e){console.error(e),a+=1,a===s&&o.finish(n,l)},this.clientAuthorizations&&"function"==typeof this.clientAuthorizations.apply&&this.clientAuthorizations.apply(f),(new r).execute(f)}},a.prototype.getAbsolutePath=function(e,t,n){if("1.0"===e&&t.endsWith(".json")){var r=t.lastIndexOf("/");r>0&&(t=t.substring(0,r))}var i=t;return 0===n.indexOf("http://")||0===n.indexOf("https://")?i=n:(t.endsWith("/")&&(i=t.substring(0,t.length-1)),i+=n),i=i.replace("{format}","json")},a.prototype.securityDefinitions=function(e,t){if(e.authorizations){var n;for(n in e.authorizations){var r=!1,i={},a=e.authorizations[n];if("apiKey"===a.type)i.type="apiKey",i["in"]=a.passAs,i.name=a.keyname||n,r=!0;else if("oauth2"===a.type){var o,s=a.scopes||[],l={};for(o in s){var u=s[o];l[u.scope]=u.description}if(i.type="oauth2",o>0&&(i.scopes=l),a.grantTypes){if(a.grantTypes.implicit){var c=a.grantTypes.implicit;i.flow="implicit",i.authorizationUrl=c.loginEndpoint,r=!0}if(a.grantTypes.authorization_code&&!i.flow){var p=a.grantTypes.authorization_code;i.flow="accessCode",i.authorizationUrl=p.tokenRequestEndpoint.url,i.tokenUrl=p.tokenEndpoint.url,r=!0}}}r&&(t.securityDefinitions=t.securityDefinitions||{},t.securityDefinitions[n]=i)}}},a.prototype.apiInfo=function(e,t){if(e.info){var n=e.info;t.info={},n.contact&&(t.info.contact={},t.info.contact.email=n.contact),n.description&&(t.info.description=n.description),n.title&&(t.info.title=n.title),n.termsOfServiceUrl&&(t.info.termsOfService=n.termsOfServiceUrl),(n.license||n.licenseUrl)&&(t.license={},n.license&&(t.license.name=n.license),n.licenseUrl&&(t.license.url=n.licenseUrl))}else this.warnings.push("missing info section")},a.prototype.finish=function(e,t){e(t)}},{"./http":5,"lodash-compat/lang/isObject":147}],9:[function(e,t,n){var r={isPlainObject:e("lodash-compat/lang/isPlainObject"),isString:e("lodash-compat/lang/isString")},i=e("../schema-markup.js"),a=e("js-yaml"),o=t.exports=function(e,t,n,r){return this.definition=t||{},this.isArray="array"===t.type,this.models=n||{},this.name=t.title||e||"Inline Model",this.modelPropertyMacro=r||function(e){return e["default"]},this};o.prototype.createJSONSample=o.prototype.getSampleValue=function(e){return e=e||{},e[this.name]=this,this.examples&&r.isPlainObject(this.examples)&&this.examples["application/json"]?(this.definition.example=this.examples["application/json"],r.isString(this.definition.example)&&(this.definition.example=a.safeLoad(this.definition.example))):this.definition.example||(this.definition.example=this.examples),i.schemaToJSON(this.definition,this.models,e,this.modelPropertyMacro)},o.prototype.getMockSignature=function(){return i.schemaToHTML(this.name,this.definition,this.models,this.modelPropertyMacro)}},{"../schema-markup.js":7,"js-yaml":21,"lodash-compat/lang/isPlainObject":148,"lodash-compat/lang/isString":149}],10:[function(e,t,n){function r(e,t){if(i.isEmpty(t))return e[0];for(var n=0,r=t.length;r>n;n++)if(e.indexOf(t[n])>-1)return t[n];return e[0]}var i={cloneDeep:e("lodash-compat/lang/cloneDeep"),isUndefined:e("lodash-compat/lang/isUndefined"),isEmpty:e("lodash-compat/lang/isEmpty"),isObject:e("lodash-compat/lang/isObject")},a=e("../helpers"),o=e("./model"),s=e("../http"),l=t.exports=function(e,t,n,r,i,a,s,l,u){var c=[];if(e=e||{},a=a||{},e&&e.options&&(this.client=e.options.client||null,this.responseInterceptor=e.options.responseInterceptor||null),this.authorizations=a.security,this.basePath=e.basePath||"/",this.clientAuthorizations=u,this.consumes=a.consumes||e.consumes||["application/json"],this.produces=a.produces||e.produces||["application/json"],this.deprecated=a.deprecated,this.description=a.description,this.host=e.host||"localhost",this.method=r||c.push("Operation "+n+" is missing method."),this.models=l||{},this.nickname=n||c.push("Operations must have a nickname."),this.operation=a,this.operations={},this.parameters=null!==a?a.parameters||[]:{},this.parent=e,this.path=i||c.push("Operation "+this.nickname+" is missing path."),this.responses=a.responses||{},this.scheme=t||e.scheme||"http",this.schemes=a.schemes||e.schemes,this.security=a.security,this.summary=a.summary||"",this.type=null,this.useJQuery=e.useJQuery,this.parameterMacro=e.parameterMacro||function(e,t){return t["default"]},this.inlineModels=[],"string"==typeof this.deprecated)switch(this.deprecated.toLowerCase()){case"true":case"yes":case"1":this.deprecated=!0;break;case"false":case"no":case"0":case null:this.deprecated=!1;break;default:this.deprecated=Boolean(this.deprecated)}var p,f;if(s){var h;for(h in s)f=new o(h,s[h],this.models,e.modelPropertyMacro),f&&(this.models[h]=f)}else s={};for(p=0;p<this.parameters.length;p++){var d=this.parameters[p];d["default"]=this.parameterMacro(this,d),"array"===d.type&&(d.isList=!0,d.allowMultiple=!0,d.items&&d.items["enum"]&&(d["enum"]=d.items["enum"]));var m=this.getType(d);if(m&&"boolean"===m.toString().toLowerCase()&&(d.allowableValues={},d.isList=!0,d["enum"]=[!0,!1]),"undefined"!=typeof d["enum"]){var g;for(d.allowableValues={},d.allowableValues.values=[],d.allowableValues.descriptiveValues=[],g=0;g<d["enum"].length;g++){var y=d["enum"][g],v=y===d["default"]||y+""===d["default"];d.allowableValues.values.push(y),d.allowableValues.descriptiveValues.push({value:y+"",isDefault:v})}}"array"===d.type&&(m=[m],"undefined"==typeof d.allowableValues&&(delete d.isList,delete d.allowMultiple)),d.signature=this.getModelSignature(m,this.models).toString(),d.sampleJSON=this.getModelSampleJSON(m,this.models),d.responseClassSignature=d.signature}var b,w,x=this.responses;if(x[200]?(w=x[200],b="200"):x[201]?(w=x[201],b="201"):x[202]?(w=x[202],b="202"):x[203]?(w=x[203],b="203"):x[204]?(w=x[204],b="204"):x[205]?(w=x[205],b="205"):x[206]?(w=x[206],b="206"):x["default"]&&(w=x["default"],b="default"),w&&w.schema){var S,A=this.resolveModel(w.schema,s);delete x[b],A?(this.successResponse={},S=this.successResponse[b]=A):w.schema.type&&"object"!==w.schema.type&&"array"!==w.schema.type?(this.successResponse={},S=this.successResponse[b]=w.schema):(this.successResponse={},S=this.successResponse[b]=new o(void 0,w.schema||{},this.models,e.modelPropertyMacro)),S&&(w.description&&(S.description=w.description),w.examples&&(S.examples=w.examples),w.headers&&(S.headers=w.headers)),this.type=w}return c.length>0&&this.resource&&this.resource.api&&this.resource.api.fail&&this.resource.api.fail(c),this};l.prototype.isDefaultArrayItemValue=function(e,t){return t["default"]&&Array.isArray(t["default"])?-1!==t["default"].indexOf(e):e===t["default"]},l.prototype.getType=function(e){var t,n=e.type,r=e.format,i=!1;"integer"===n&&"int32"===r?t="integer":"integer"===n&&"int64"===r?t="long":"integer"===n?t="integer":"string"===n?t="date-time"===r?"date-time":"date"===r?"date":"string":"number"===n&&"float"===r?t="float":"number"===n&&"double"===r?t="double":"number"===n?t="double":"boolean"===n?t="boolean":"array"===n&&(i=!0,e.items&&(t=this.getType(e.items))),e.$ref&&(t=a.simpleRef(e.$ref));var o=e.schema;if(o){var s=o.$ref;return s?(s=a.simpleRef(s),i?[s]:s):"object"===o.type?this.addInlineModel(o):this.getType(o)}return i?[t]:t},l.prototype.addInlineModel=function(e){var t=this.inlineModels.length,n=this.resolveModel(e,{});return n?(this.inlineModels.push(n),"Inline Model "+t):null},l.prototype.getInlineModel=function(e){if(/^Inline Model \d+$/.test(e)){var t=parseInt(e.substr("Inline Model".length).trim(),10),n=this.inlineModels[t];return n}return null},l.prototype.resolveModel=function(e,t){if("undefined"!=typeof e.$ref){var n=e.$ref;if(0===n.indexOf("#/definitions/")&&(n=n.substring("#/definitions/".length)),t[n])return new o(n,t[n],this.models,this.parent.modelPropertyMacro)}else if(e&&"object"==typeof e&&("object"===e.type||i.isUndefined(e.type)))return new o(void 0,e,this.models,this.parent.modelPropertyMacro);return null},l.prototype.help=function(e){for(var t=this.nickname+": "+this.summary+"\n",n=0;n<this.parameters.length;n++){var r=this.parameters[n],i=r.signature;t+="\n * "+r.name+" ("+i+"): "+r.description}return"undefined"==typeof e&&a.log(t),t},l.prototype.getModelSignature=function(e,t){var n,r;return e instanceof Array&&(r=!0,e=e[0]),"undefined"==typeof e?(e="undefined",n=!0):t[e]?(e=t[e],n=!1):this.getInlineModel(e)?(e=this.getInlineModel(e),n=!1):n=!0,n?r?"Array["+e+"]":e.toString():r?"Array["+e.getMockSignature()+"]":e.getMockSignature()},l.prototype.supportHeaderParams=function(){return!0},l.prototype.supportedSubmitMethods=function(){return this.parent.supportedSubmitMethods},l.prototype.getHeaderParams=function(e){for(var t=this.setContentTypes(e,{}),n=0;n<this.parameters.length;n++){var r=this.parameters[n];if("undefined"!=typeof e[r.name]&&"header"===r["in"]){var i=e[r.name];Array.isArray(i)&&(i=i.toString()),t[r.name]=i}}return t},l.prototype.urlify=function(e){for(var t={},n=this.path,r="",i=0;i<this.parameters.length;i++){var a=this.parameters[i];if("undefined"!=typeof e[a.name])if("path"===a["in"]){var o=new RegExp("{"+a.name+"}","gi"),s=e[a.name];s=Array.isArray(s)?this.encodePathCollection(a.collectionFormat,a.name,s):this.encodePathParam(s),n=n.replace(o,s)}else if("query"===a["in"]&&"undefined"!=typeof e[a.name])if(r+=""===r?"?":"&","undefined"!=typeof a.collectionFormat){var l=e[a.name];r+=Array.isArray(l)?this.encodeQueryCollection(a.collectionFormat,a.name,l):this.encodeQueryParam(a.name)+"="+this.encodeQueryParam(e[a.name])}else r+=this.encodeQueryParam(a.name)+"="+this.encodeQueryParam(e[a.name]);else"formData"===a["in"]&&(t[a.name]=e[a.name])}var u=this.scheme+"://"+this.host;return"/"!==this.basePath&&(u+=this.basePath),u+n+r},l.prototype.getMissingParams=function(e){var t,n=[];for(t=0;t<this.parameters.length;t++){var r=this.parameters[t];r.required===!0&&"undefined"==typeof e[r.name]&&(n=r.name)}return n},l.prototype.getBody=function(e,t,n){for(var r,i,a,o={},s=!1,l=0;l<this.parameters.length;l++){var u=this.parameters[l];"undefined"!=typeof t[u.name]?"body"===u["in"]?r=t[u.name]:"formData"===u["in"]&&(o[u.name]=t[u.name]):"body"===u["in"]&&(s=!0)}if(s&&"undefined"==typeof r){var c=e["Content-Type"];c&&0===c.indexOf("application/json")&&(r="{}")}if("application/x-www-form-urlencoded"===e["Content-Type"]){var p="";for(i in o)a=o[i],"undefined"!=typeof a&&(""!==p&&(p+="&"),p+=encodeURIComponent(i)+"="+encodeURIComponent(a));r=p}else if(e["Content-Type"]&&e["Content-Type"].indexOf("multipart/form-data")>=0&&n.useJQuery){var f=new FormData;f.type="formData";for(i in o)a=t[i],"undefined"!=typeof a&&("file"===a.type&&a.value?(delete e["Content-Type"],f.append(i,a.value)):f.append(i,a));r=f}return r},l.prototype.getModelSampleJSON=function(e,t){var n,r,a;if(t=t||{},n=e instanceof Array,a=n?e[0]:e,t[a]?r=t[a].createJSONSample():this.getInlineModel(a)&&(r=this.getInlineModel(a).createJSONSample()),r){if(r=n?[r]:r,"string"==typeof r)return r;if(i.isObject(r)){var o=r;if(r instanceof Array&&r.length>0&&(o=r[0]),o.nodeName){var s=(new XMLSerializer).serializeToString(o);return this.formatXml(s)}return JSON.stringify(r,null,2)}return r}},l.prototype["do"]=function(e,t,n,r,i){return this.execute(e,t,n,r,i)},l.prototype.execute=function(e,t,n,r,o){var l,u,c=e||{},p={};i.isObject(t)&&(p=t,l=n,u=r),this.client&&(p.client=this.client),this.responseInterceptor&&(p.responseInterceptor=this.responseInterceptor),"function"==typeof t&&(l=t,u=n),l=l||this.parent.defaultSuccessCallback||a.log,u=u||this.parent.defaultErrorCallback||a.log,"undefined"==typeof p.useJQuery&&(p.useJQuery=this.useJQuery);var f=this.getMissingParams(c);if(f.length>0){var h="missing required params: "+f;return a.fail(h),void u(h)}var d,m=this.getHeaderParams(c),g=this.setContentTypes(c,p),y={};for(d in m)y[d]=m[d];for(d in g)y[d]=g[d];var v=this.getBody(g,c,p),b=this.urlify(c);if(b.indexOf(".{format}")>0&&y){var w=y.Accept||y.accept;w&&w.indexOf("json")>0?b=b.replace(".{format}",".json"):w&&w.indexOf("xml")>0&&(b=b.replace(".{format}",".xml"))}var x={url:b,method:this.method.toUpperCase(),body:v,useJQuery:p.useJQuery,headers:y,on:{response:function(e){return l(e,o)},error:function(e){return u(e,o)}}};return this.clientAuthorizations.apply(x,this.operation.security),p.mock===!0?x:void(new s).execute(x,p)},l.prototype.setContentTypes=function(e,t){var n,i,o=this.parameters,s=e.parameterContentType||r(this.consumes,["application/json","application/yaml"]),l=t.responseContentType||r(this.produces,["application/json","application/yaml"]),u=[],c=[],p={};for(i=0;i<o.length;i++){var f=o[i];if("formData"===f["in"])"file"===f.type?u.push(f):c.push(f);else if("header"===f["in"]&&t){var h=f.name,d=t[f.name];"undefined"!=typeof t[f.name]&&(p[h]=d)}else"body"===f["in"]&&"undefined"!=typeof e[f.name]&&(n=e[f.name])}return"post"===this.method||"put"===this.method||"patch"===this.method||"delete"===this.method&&n?(t.requestContentType&&(s=t.requestContentType),c.length>0&&(s=t.requestContentType?t.requestContentType:u.length>0?"multipart/form-data":"application/x-www-form-urlencoded")):s=null,s&&this.consumes&&-1===this.consumes.indexOf(s)&&a.log("server doesn't consume "+s+", try "+JSON.stringify(this.consumes)),this.matchesAccept(l)||a.log("server can't produce "+l),(s&&""!==n||"application/x-www-form-urlencoded"===s)&&(p["Content-Type"]=s),l&&(p.Accept=l),p},l.prototype.matchesAccept=function(e){return e&&this.produces?-1!==this.produces.indexOf(e)||-1!==this.produces.indexOf("*/*"):!0},l.prototype.asCurl=function(e,t){var n={mock:!0};if("object"==typeof t)for(var r in t)n[r]=t[r];var a=this.execute(e,n);this.clientAuthorizations.apply(a);var o=[];if(o.push("-X "+this.method.toUpperCase()),a.headers){var s;for(s in a.headers)o.push('--header "'+s+": "+a.headers[s]+'"')}if(a.body){var l;l=i.isObject(a.body)?JSON.stringify(a.body):a.body,o.push('-d "'+l.replace(/"/g,'\\"')+'"')}return"curl "+o.join(" ")+' "'+a.url+'"'},l.prototype.encodePathCollection=function(e,t,n){var r,i="",a="";for(a="ssv"===e?"%20":"tsv"===e?"\\t":"pipes"===e?"|":",",r=0;r<n.length;r++)0===r?i=this.encodeQueryParam(n[r]):i+=a+this.encodeQueryParam(n[r]);return i},l.prototype.encodeQueryCollection=function(e,t,n){var r,i="";if("default"===e||"multi"===e)for(r=0;r<n.length;r++)r>0&&(i+="&"),i+=this.encodeQueryParam(t)+"="+this.encodeQueryParam(n[r]);else{var a="";if("csv"===e)a=",";else if("ssv"===e)a="%20";else if("tsv"===e)a="\\t";else if("pipes"===e)a="|";else if("brackets"===e)for(r=0;r<n.length;r++)0!==r&&(i+="&"),i+=this.encodeQueryParam(t)+"[]="+this.encodeQueryParam(n[r]);if(""!==a)for(r=0;r<n.length;r++)0===r?i=this.encodeQueryParam(t)+"="+this.encodeQueryParam(n[r]):i+=a+this.encodeQueryParam(n[r])}return i},l.prototype.encodeQueryParam=function(e){return encodeURIComponent(e)},l.prototype.encodePathParam=function(e){return encodeURIComponent(e)}},{"../helpers":4,"../http":5,"./model":9,"lodash-compat/lang/cloneDeep":141,"lodash-compat/lang/isEmpty":144,"lodash-compat/lang/isObject":147,"lodash-compat/lang/isUndefined":151}],11:[function(e,t,n){var r=t.exports=function(e,t,n,r){this.description=t,this.externalDocs=n,this.name=e,this.operation=r,this.operationsArray=[],this.path=e,this.tag=e};r.prototype.sort=function(){}},{}],12:[function(e,t,n){},{}],13:[function(e,t,n){function r(){return i.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function i(e){return this instanceof i?(this.length=0, +this.parent=void 0,"number"==typeof e?a(this,e):"string"==typeof e?o(this,e,arguments.length>1?arguments[1]:"utf8"):s(this,e)):arguments.length>1?new i(e,arguments[1]):new i(e)}function a(e,t){if(e=h(e,0>t?0:0|d(t)),!i.TYPED_ARRAY_SUPPORT)for(var n=0;t>n;n++)e[n]=0;return e}function o(e,t,n){("string"!=typeof n||""===n)&&(n="utf8");var r=0|g(t,n);return e=h(e,r),e.write(t,n),e}function s(e,t){if(i.isBuffer(t))return l(e,t);if(Y(t))return u(e,t);if(null==t)throw new TypeError("must start with number, buffer, array or string");return"undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer?c(e,t):t.length?p(e,t):f(e,t)}function l(e,t){var n=0|d(t.length);return e=h(e,n),t.copy(e,0,0,n),e}function u(e,t){var n=0|d(t.length);e=h(e,n);for(var r=0;n>r;r+=1)e[r]=255&t[r];return e}function c(e,t){var n=0|d(t.length);e=h(e,n);for(var r=0;n>r;r+=1)e[r]=255&t[r];return e}function p(e,t){var n=0|d(t.length);e=h(e,n);for(var r=0;n>r;r+=1)e[r]=255&t[r];return e}function f(e,t){var n,r=0;"Buffer"===t.type&&Y(t.data)&&(n=t.data,r=0|d(n.length)),e=h(e,r);for(var i=0;r>i;i+=1)e[i]=255&n[i];return e}function h(e,t){i.TYPED_ARRAY_SUPPORT?e=i._augment(new Uint8Array(t)):(e.length=t,e._isBuffer=!0);var n=0!==t&&t<=i.poolSize>>>1;return n&&(e.parent=K),e}function d(e){if(e>=r())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r().toString(16)+" bytes");return 0|e}function m(e,t){if(!(this instanceof m))return new m(e,t);var n=new i(e,t);return delete n.parent,n}function g(e,t){"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"binary":case"raw":case"raws":return n;case"utf8":case"utf-8":return U(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return U(e).length;t=(""+t).toLowerCase(),r=!0}}function y(e,t,n){var r=!1;if(t=0|t,n=void 0===n||n===1/0?this.length:0|n,e||(e="utf8"),0>t&&(t=0),n>this.length&&(n=this.length),t>=n)return"";for(;;)switch(e){case"hex":return j(this,t,n);case"utf8":case"utf-8":return E(this,t,n);case"ascii":return k(this,t,n);case"binary":return O(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function v(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r),r>i&&(r=i)):r=i;var a=t.length;if(a%2!==0)throw new Error("Invalid hex string");r>a/2&&(r=a/2);for(var o=0;r>o;o++){var s=parseInt(t.substr(2*o,2),16);if(isNaN(s))throw new Error("Invalid hex string");e[n+o]=s}return o}function b(e,t,n,r){return z(U(t,e.length-n),e,n,r)}function w(e,t,n,r){return z(B(t),e,n,r)}function x(e,t,n,r){return w(e,t,n,r)}function S(e,t,n,r){return z(H(t),e,n,r)}function A(e,t,n,r){return z(q(t,e.length-n),e,n,r)}function C(e,t,n){return W.fromByteArray(0===t&&n===e.length?e:e.slice(t,n))}function E(e,t,n){var r="",i="";n=Math.min(e.length,n);for(var a=t;n>a;a++)e[a]<=127?(r+=V(i)+String.fromCharCode(e[a]),i=""):i+="%"+e[a].toString(16);return r+V(i)}function k(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;n>i;i++)r+=String.fromCharCode(127&e[i]);return r}function O(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;n>i;i++)r+=String.fromCharCode(e[i]);return r}function j(e,t,n){var r=e.length;(!t||0>t)&&(t=0),(!n||0>n||n>r)&&(n=r);for(var i="",a=t;n>a;a++)i+=F(e[a]);return i}function T(e,t,n){for(var r=e.slice(t,n),i="",a=0;a<r.length;a+=2)i+=String.fromCharCode(r[a]+256*r[a+1]);return i}function I(e,t,n){if(e%1!==0||0>e)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function _(e,t,n,r,a,o){if(!i.isBuffer(e))throw new TypeError("buffer must be a Buffer instance");if(t>a||o>t)throw new RangeError("value is out of bounds");if(n+r>e.length)throw new RangeError("index out of range")}function D(e,t,n,r){0>t&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-n,2);a>i;i++)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function L(e,t,n,r){0>t&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-n,4);a>i;i++)e[n+i]=t>>>8*(r?i:3-i)&255}function P(e,t,n,r,i,a){if(t>i||a>t)throw new RangeError("value is out of bounds");if(n+r>e.length)throw new RangeError("index out of range");if(0>n)throw new RangeError("index out of range")}function N(e,t,n,r,i){return i||P(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),J.write(e,t,n,r,23,4),n+4}function $(e,t,n,r,i){return i||P(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),J.write(e,t,n,r,52,8),n+8}function M(e){if(e=R(e).replace(X,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function R(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function F(e){return 16>e?"0"+e.toString(16):e.toString(16)}function U(e,t){t=t||1/0;for(var n,r=e.length,i=null,a=[],o=0;r>o;o++){if(n=e.charCodeAt(o),n>55295&&57344>n){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(56320>n){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=i-55296<<10|n-56320|65536,i=null}else i&&((t-=3)>-1&&a.push(239,191,189),i=null);if(128>n){if((t-=1)<0)break;a.push(n)}else if(2048>n){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(65536>n){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(2097152>n))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function B(e){for(var t=[],n=0;n<e.length;n++)t.push(255&e.charCodeAt(n));return t}function q(e,t){for(var n,r,i,a=[],o=0;o<e.length&&!((t-=2)<0);o++)n=e.charCodeAt(o),r=n>>8,i=n%256,a.push(i),a.push(r);return a}function H(e){return W.toByteArray(M(e))}function z(e,t,n,r){for(var i=0;r>i&&!(i+n>=t.length||i>=e.length);i++)t[i+n]=e[i];return i}function V(e){try{return decodeURIComponent(e)}catch(t){return String.fromCharCode(65533)}}var W=e("base64-js"),J=e("ieee754"),Y=e("is-array");n.Buffer=i,n.SlowBuffer=m,n.INSPECT_MAX_BYTES=50,i.poolSize=8192;var K={};i.TYPED_ARRAY_SUPPORT=function(){function e(){}try{var t=new ArrayBuffer(0),n=new Uint8Array(t);return n.foo=function(){return 42},n.constructor=e,42===n.foo()&&n.constructor===e&&"function"==typeof n.subarray&&0===new Uint8Array(1).subarray(1,1).byteLength}catch(r){return!1}}(),i.isBuffer=function(e){return!(null==e||!e._isBuffer)},i.compare=function(e,t){if(!i.isBuffer(e)||!i.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,a=0,o=Math.min(n,r);o>a&&e[a]===t[a];)++a;return a!==o&&(n=e[a],r=t[a]),r>n?-1:n>r?1:0},i.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},i.concat=function(e,t){if(!Y(e))throw new TypeError("list argument must be an Array of Buffers.");if(0===e.length)return new i(0);if(1===e.length)return e[0];var n;if(void 0===t)for(t=0,n=0;n<e.length;n++)t+=e[n].length;var r=new i(t),a=0;for(n=0;n<e.length;n++){var o=e[n];o.copy(r,a),a+=o.length}return r},i.byteLength=g,i.prototype.length=void 0,i.prototype.parent=void 0,i.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?E(this,0,e):y.apply(this,arguments)},i.prototype.equals=function(e){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e?!0:0===i.compare(this,e)},i.prototype.inspect=function(){var e="",t=n.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+e+">"},i.prototype.compare=function(e){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e?0:i.compare(this,e)},i.prototype.indexOf=function(e,t){function n(e,t,n){for(var r=-1,i=0;n+i<e.length;i++)if(e[n+i]===t[-1===r?0:i-r]){if(-1===r&&(r=i),i-r+1===t.length)return n+r}else r=-1;return-1}if(t>2147483647?t=2147483647:-2147483648>t&&(t=-2147483648),t>>=0,0===this.length)return-1;if(t>=this.length)return-1;if(0>t&&(t=Math.max(this.length+t,0)),"string"==typeof e)return 0===e.length?-1:String.prototype.indexOf.call(this,e,t);if(i.isBuffer(e))return n(this,e,t);if("number"==typeof e)return i.TYPED_ARRAY_SUPPORT&&"function"===Uint8Array.prototype.indexOf?Uint8Array.prototype.indexOf.call(this,e,t):n(this,[e],t);throw new TypeError("val must be string, number or Buffer")},i.prototype.get=function(e){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(e)},i.prototype.set=function(e,t){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(e,t)},i.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else if(isFinite(t))t=0|t,isFinite(n)?(n=0|n,void 0===r&&(r="utf8")):(r=n,n=void 0);else{var i=r;r=t,t=0|n,n=i}var a=this.length-t;if((void 0===n||n>a)&&(n=a),e.length>0&&(0>n||0>t)||t>this.length)throw new RangeError("attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return v(this,e,t,n);case"utf8":case"utf-8":return b(this,e,t,n);case"ascii":return w(this,e,t,n);case"binary":return x(this,e,t,n);case"base64":return S(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},i.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,0>e?(e+=n,0>e&&(e=0)):e>n&&(e=n),0>t?(t+=n,0>t&&(t=0)):t>n&&(t=n),e>t&&(t=e);var r;if(i.TYPED_ARRAY_SUPPORT)r=i._augment(this.subarray(e,t));else{var a=t-e;r=new i(a,void 0);for(var o=0;a>o;o++)r[o]=this[o+e]}return r.length&&(r.parent=this.parent||this),r},i.prototype.readUIntLE=function(e,t,n){e=0|e,t=0|t,n||I(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return r},i.prototype.readUIntBE=function(e,t,n){e=0|e,t=0|t,n||I(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},i.prototype.readUInt8=function(e,t){return t||I(e,1,this.length),this[e]},i.prototype.readUInt16LE=function(e,t){return t||I(e,2,this.length),this[e]|this[e+1]<<8},i.prototype.readUInt16BE=function(e,t){return t||I(e,2,this.length),this[e]<<8|this[e+1]},i.prototype.readUInt32LE=function(e,t){return t||I(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},i.prototype.readUInt32BE=function(e,t){return t||I(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},i.prototype.readIntLE=function(e,t,n){e=0|e,t=0|t,n||I(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*t)),r},i.prototype.readIntBE=function(e,t,n){e=0|e,t=0|t,n||I(e,t,this.length);for(var r=t,i=1,a=this[e+--r];r>0&&(i*=256);)a+=this[e+--r]*i;return i*=128,a>=i&&(a-=Math.pow(2,8*t)),a},i.prototype.readInt8=function(e,t){return t||I(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},i.prototype.readInt16LE=function(e,t){t||I(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},i.prototype.readInt16BE=function(e,t){t||I(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},i.prototype.readInt32LE=function(e,t){return t||I(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},i.prototype.readInt32BE=function(e,t){return t||I(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},i.prototype.readFloatLE=function(e,t){return t||I(e,4,this.length),J.read(this,e,!0,23,4)},i.prototype.readFloatBE=function(e,t){return t||I(e,4,this.length),J.read(this,e,!1,23,4)},i.prototype.readDoubleLE=function(e,t){return t||I(e,8,this.length),J.read(this,e,!0,52,8)},i.prototype.readDoubleBE=function(e,t){return t||I(e,8,this.length),J.read(this,e,!1,52,8)},i.prototype.writeUIntLE=function(e,t,n,r){e=+e,t=0|t,n=0|n,r||_(this,e,t,n,Math.pow(2,8*n),0);var i=1,a=0;for(this[t]=255&e;++a<n&&(i*=256);)this[t+a]=e/i&255;return t+n},i.prototype.writeUIntBE=function(e,t,n,r){e=+e,t=0|t,n=0|n,r||_(this,e,t,n,Math.pow(2,8*n),0);var i=n-1,a=1;for(this[t+i]=255&e;--i>=0&&(a*=256);)this[t+i]=e/a&255;return t+n},i.prototype.writeUInt8=function(e,t,n){return e=+e,t=0|t,n||_(this,e,t,1,255,0),i.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=e,t+1},i.prototype.writeUInt16LE=function(e,t,n){return e=+e,t=0|t,n||_(this,e,t,2,65535,0),i.TYPED_ARRAY_SUPPORT?(this[t]=e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},i.prototype.writeUInt16BE=function(e,t,n){return e=+e,t=0|t,n||_(this,e,t,2,65535,0),i.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=e):D(this,e,t,!1),t+2},i.prototype.writeUInt32LE=function(e,t,n){return e=+e,t=0|t,n||_(this,e,t,4,4294967295,0),i.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e):L(this,e,t,!0),t+4},i.prototype.writeUInt32BE=function(e,t,n){return e=+e,t=0|t,n||_(this,e,t,4,4294967295,0),i.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e):L(this,e,t,!1),t+4},i.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t=0|t,!r){var i=Math.pow(2,8*n-1);_(this,e,t,n,i-1,-i)}var a=0,o=1,s=0>e?1:0;for(this[t]=255&e;++a<n&&(o*=256);)this[t+a]=(e/o>>0)-s&255;return t+n},i.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t=0|t,!r){var i=Math.pow(2,8*n-1);_(this,e,t,n,i-1,-i)}var a=n-1,o=1,s=0>e?1:0;for(this[t+a]=255&e;--a>=0&&(o*=256);)this[t+a]=(e/o>>0)-s&255;return t+n},i.prototype.writeInt8=function(e,t,n){return e=+e,t=0|t,n||_(this,e,t,1,127,-128),i.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),0>e&&(e=255+e+1),this[t]=e,t+1},i.prototype.writeInt16LE=function(e,t,n){return e=+e,t=0|t,n||_(this,e,t,2,32767,-32768),i.TYPED_ARRAY_SUPPORT?(this[t]=e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},i.prototype.writeInt16BE=function(e,t,n){return e=+e,t=0|t,n||_(this,e,t,2,32767,-32768),i.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=e):D(this,e,t,!1),t+2},i.prototype.writeInt32LE=function(e,t,n){return e=+e,t=0|t,n||_(this,e,t,4,2147483647,-2147483648),i.TYPED_ARRAY_SUPPORT?(this[t]=e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):L(this,e,t,!0),t+4},i.prototype.writeInt32BE=function(e,t,n){return e=+e,t=0|t,n||_(this,e,t,4,2147483647,-2147483648),0>e&&(e=4294967295+e+1),i.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e):L(this,e,t,!1),t+4},i.prototype.writeFloatLE=function(e,t,n){return N(this,e,t,!0,n)},i.prototype.writeFloatBE=function(e,t,n){return N(this,e,t,!1,n)},i.prototype.writeDoubleLE=function(e,t,n){return $(this,e,t,!0,n)},i.prototype.writeDoubleBE=function(e,t,n){return $(this,e,t,!1,n)},i.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&n>r&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(0>t)throw new RangeError("targetStart out of bounds");if(0>n||n>=this.length)throw new RangeError("sourceStart out of bounds");if(0>r)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var a=r-n;if(1e3>a||!i.TYPED_ARRAY_SUPPORT)for(var o=0;a>o;o++)e[o+t]=this[o+n];else e._set(this.subarray(n,n+a),t);return a},i.prototype.fill=function(e,t,n){if(e||(e=0),t||(t=0),n||(n=this.length),t>n)throw new RangeError("end < start");if(n!==t&&0!==this.length){if(0>t||t>=this.length)throw new RangeError("start out of bounds");if(0>n||n>this.length)throw new RangeError("end out of bounds");var r;if("number"==typeof e)for(r=t;n>r;r++)this[r]=e;else{var i=U(e.toString()),a=i.length;for(r=t;n>r;r++)this[r]=i[r%a]}return this}},i.prototype.toArrayBuffer=function(){if("undefined"!=typeof Uint8Array){if(i.TYPED_ARRAY_SUPPORT)return new i(this).buffer;for(var e=new Uint8Array(this.length),t=0,n=e.length;n>t;t+=1)e[t]=this[t];return e.buffer}throw new TypeError("Buffer.toArrayBuffer not supported in this browser")};var Q=i.prototype;i._augment=function(e){return e.constructor=i,e._isBuffer=!0,e._set=e.set,e.get=Q.get,e.set=Q.set,e.write=Q.write,e.toString=Q.toString,e.toLocaleString=Q.toString,e.toJSON=Q.toJSON,e.equals=Q.equals,e.compare=Q.compare,e.indexOf=Q.indexOf,e.copy=Q.copy,e.slice=Q.slice,e.readUIntLE=Q.readUIntLE,e.readUIntBE=Q.readUIntBE,e.readUInt8=Q.readUInt8,e.readUInt16LE=Q.readUInt16LE,e.readUInt16BE=Q.readUInt16BE,e.readUInt32LE=Q.readUInt32LE,e.readUInt32BE=Q.readUInt32BE,e.readIntLE=Q.readIntLE,e.readIntBE=Q.readIntBE,e.readInt8=Q.readInt8,e.readInt16LE=Q.readInt16LE,e.readInt16BE=Q.readInt16BE,e.readInt32LE=Q.readInt32LE,e.readInt32BE=Q.readInt32BE,e.readFloatLE=Q.readFloatLE,e.readFloatBE=Q.readFloatBE,e.readDoubleLE=Q.readDoubleLE,e.readDoubleBE=Q.readDoubleBE,e.writeUInt8=Q.writeUInt8,e.writeUIntLE=Q.writeUIntLE,e.writeUIntBE=Q.writeUIntBE,e.writeUInt16LE=Q.writeUInt16LE,e.writeUInt16BE=Q.writeUInt16BE,e.writeUInt32LE=Q.writeUInt32LE,e.writeUInt32BE=Q.writeUInt32BE,e.writeIntLE=Q.writeIntLE,e.writeIntBE=Q.writeIntBE,e.writeInt8=Q.writeInt8,e.writeInt16LE=Q.writeInt16LE,e.writeInt16BE=Q.writeInt16BE,e.writeInt32LE=Q.writeInt32LE,e.writeInt32BE=Q.writeInt32BE,e.writeFloatLE=Q.writeFloatLE,e.writeFloatBE=Q.writeFloatBE,e.writeDoubleLE=Q.writeDoubleLE,e.writeDoubleBE=Q.writeDoubleBE,e.fill=Q.fill,e.inspect=Q.inspect,e.toArrayBuffer=Q.toArrayBuffer,e};var X=/[^+\/0-9A-z\-]/g},{"base64-js":14,ieee754:15,"is-array":16}],14:[function(e,t,n){var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";!function(e){function t(e){var t=e.charCodeAt(0);return t===o||t===p?62:t===s||t===f?63:l>t?-1:l+10>t?t-l+26+26:c+26>t?t-c:u+26>t?t-u+26:void 0}function n(e){function n(e){u[p++]=e}var r,i,o,s,l,u;if(e.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var c=e.length;l="="===e.charAt(c-2)?2:"="===e.charAt(c-1)?1:0,u=new a(3*e.length/4-l),o=l>0?e.length-4:e.length;var p=0;for(r=0,i=0;o>r;r+=4,i+=3)s=t(e.charAt(r))<<18|t(e.charAt(r+1))<<12|t(e.charAt(r+2))<<6|t(e.charAt(r+3)),n((16711680&s)>>16),n((65280&s)>>8),n(255&s);return 2===l?(s=t(e.charAt(r))<<2|t(e.charAt(r+1))>>4,n(255&s)):1===l&&(s=t(e.charAt(r))<<10|t(e.charAt(r+1))<<4|t(e.charAt(r+2))>>2,n(s>>8&255),n(255&s)),u}function i(e){function t(e){return r.charAt(e)}function n(e){return t(e>>18&63)+t(e>>12&63)+t(e>>6&63)+t(63&e)}var i,a,o,s=e.length%3,l="";for(i=0,o=e.length-s;o>i;i+=3)a=(e[i]<<16)+(e[i+1]<<8)+e[i+2],l+=n(a);switch(s){case 1:a=e[e.length-1],l+=t(a>>2),l+=t(a<<4&63),l+="==";break;case 2:a=(e[e.length-2]<<8)+e[e.length-1],l+=t(a>>10),l+=t(a>>4&63),l+=t(a<<2&63),l+="="}return l}var a="undefined"!=typeof Uint8Array?Uint8Array:Array,o="+".charCodeAt(0),s="/".charCodeAt(0),l="0".charCodeAt(0),u="a".charCodeAt(0),c="A".charCodeAt(0),p="-".charCodeAt(0),f="_".charCodeAt(0);e.toByteArray=n,e.fromByteArray=i}("undefined"==typeof n?this.base64js={}:n)},{}],15:[function(e,t,n){n.read=function(e,t,n,r,i){var a,o,s=8*i-r-1,l=(1<<s)-1,u=l>>1,c=-7,p=n?i-1:0,f=n?-1:1,h=e[t+p];for(p+=f,a=h&(1<<-c)-1,h>>=-c,c+=s;c>0;a=256*a+e[t+p],p+=f,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=r;c>0;o=256*o+e[t+p],p+=f,c-=8);if(0===a)a=1-u;else{if(a===l)return o?0/0:(h?-1:1)*(1/0);o+=Math.pow(2,r),a-=u}return(h?-1:1)*o*Math.pow(2,a-r)},n.write=function(e,t,n,r,i,a){var o,s,l,u=8*a-i-1,c=(1<<u)-1,p=c>>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:a-1,d=r?1:-1,m=0>t||0===t&&0>1/t?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=c):(o=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-o))<1&&(o--,l*=2),t+=o+p>=1?f/l:f*Math.pow(2,1-p),t*l>=2&&(o++,l/=2),o+p>=c?(s=0,o=c):o+p>=1?(s=(t*l-1)*Math.pow(2,i),o+=p):(s=t*Math.pow(2,p-1)*Math.pow(2,i),o=0));i>=8;e[n+h]=255&s,h+=d,s/=256,i-=8);for(o=o<<i|s,u+=i;u>0;e[n+h]=255&o,h+=d,o/=256,u-=8);e[n+h-d]|=128*m}},{}],16:[function(e,t,n){var r=Array.isArray,i=Object.prototype.toString;t.exports=r||function(e){return!!e&&"[object Array]"==i.call(e)}},{}],17:[function(e,t,n){function r(){if(!s){s=!0;for(var e,t=o.length;t;){e=o,o=[];for(var n=-1;++n<t;)e[n]();t=o.length}s=!1}}function i(){}var a=t.exports={},o=[],s=!1;a.nextTick=function(e){o.push(e),s||setTimeout(r,0)},a.title="browser",a.browser=!0,a.env={},a.argv=[],a.version="",a.versions={},a.on=i,a.addListener=i,a.once=i,a.off=i,a.removeListener=i,a.removeAllListeners=i,a.emit=i,a.binding=function(e){throw new Error("process.binding is not supported")},a.cwd=function(){return"/"},a.chdir=function(e){throw new Error("process.chdir is not supported")},a.umask=function(){return 0}},{}],18:[function(e,t,n){(function(e){!function(){function n(t){var n;return n=t instanceof e?t:new e(t.toString(),"binary"),n.toString("base64")}t.exports=n}()}).call(this,e("buffer").Buffer)},{buffer:13}],19:[function(e,t,n){!function(){function e(t,n,r,i){return this instanceof e?(this.domain=t||void 0,this.path=n||"/",this.secure=!!r,this.script=!!i,this):new e(t,n,r,i)}function t(e,n,r){return e instanceof t?e:this instanceof t?(this.name=null,this.value=null,this.expiration_date=1/0,this.path=String(r||"/"),this.explicit_path=!1,this.domain=n||null,this.explicit_domain=!1,this.secure=!1,this.noscript=!1,e&&this.parse(e,n,r),this):new t(e)}function r(){var e,n,i;return this instanceof r?(e=Object.create(null),this.setCookie=function(r,a,o){var s,l;if(r=new t(r,a,o),s=r.expiration_date<=Date.now(),void 0!==e[r.name]){for(n=e[r.name],l=0;l<n.length;l+=1)if(i=n[l],i.collidesWith(r))return s?(n.splice(l,1),0===n.length&&delete e[r.name],!1):(n[l]=r,r);return s?!1:(n.push(r),r)}return s?!1:(e[r.name]=[r],e[r.name])},this.getCookie=function(t,r){var i,a;if(n=e[t])for(a=0;a<n.length;a+=1)if(i=n[a],i.expiration_date<=Date.now())0===n.length&&delete e[i.name];else if(i.matches(r))return i},this.getCookies=function(t){var n,r,i=[];for(n in e)r=this.getCookie(n,t),r&&i.push(r);return i.toString=function(){return i.join(":")},i.toValueString=function(){return i.map(function(e){return e.toValueString()}).join(";")},i},this):new r}n.CookieAccessInfo=e,n.Cookie=t,t.prototype.toString=function(){var e=[this.name+"="+this.value];return this.expiration_date!==1/0&&e.push("expires="+new Date(this.expiration_date).toGMTString()),this.domain&&e.push("domain="+this.domain),this.path&&e.push("path="+this.path),this.secure&&e.push("secure"),this.noscript&&e.push("httponly"),e.join("; ")},t.prototype.toValueString=function(){return this.name+"="+this.value};var i=/[:](?=\s*[a-zA-Z0-9_\-]+\s*[=])/g;t.prototype.parse=function(e,n,r){if(this instanceof t){var i,a=e.split(";").filter(function(e){return!!e}),o=a[0].match(/([^=]+)=([\s\S]*)/),s=o[1],l=o[2];for(this.name=s,this.value=l,i=1;i<a.length;i+=1)switch(o=a[i].match(/([^=]+)(?:=([\s\S]*))?/),s=o[1].trim().toLowerCase(),l=o[2],s){case"httponly":this.noscript=!0;break;case"expires":this.expiration_date=l?Number(Date.parse(l)):1/0;break;case"path":this.path=l?l.trim():"",this.explicit_path=!0;break;case"domain":this.domain=l?l.trim():"",this.explicit_domain=!!this.domain;break;case"secure":this.secure=!0}return this.explicit_path||(this.path=r||"/"),this.explicit_domain||(this.domain=n),this}return(new t).parse(e,n,r)},t.prototype.matches=function(e){return this.noscript&&e.script||this.secure&&!e.secure||!this.collidesWith(e)?!1:!0},t.prototype.collidesWith=function(e){if(this.path&&!e.path||this.domain&&!e.domain)return!1;if(this.path&&0!==e.path.indexOf(this.path))return!1;if(!this.explicit_path&&this.path!==e.path)return!1;var t=e.domain&&e.domain.replace(/^[\.]/,""),n=this.domain&&this.domain.replace(/^[\.]/,"");if(n===t)return!0;if(n){if(!this.explicit_domain)return!1;var r=t.indexOf(n);return-1===r||r!==t.length-n.length?!1:!0}return!0},n.CookieJar=r,r.prototype.setCookies=function(e,n,r){e=Array.isArray(e)?e:e.split(i);var a,o,s=[];for(e=e.map(t),a=0;a<e.length;a+=1)o=e[a],this.setCookie(o,n,r)&&s.push(o);return s}}()},{}],20:[function(t,n,r){!function(e,t){"object"==typeof n&&"object"==typeof n.exports?n.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(t,n){function r(e){var t="length"in e&&e.length,n=ee.type(e);return"function"===n||ee.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e}function i(e,t,n){if(ee.isFunction(t))return ee.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return ee.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(le.test(t))return ee.filter(t,e,n);t=ee.filter(t,e)}return ee.grep(e,function(e){return J.call(t,e)>=0!==n})}function a(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function o(e){var t=me[e]={};return ee.each(e.match(de)||[],function(e,n){t[n]=!0}),t}function s(){G.removeEventListener("DOMContentLoaded",s,!1),t.removeEventListener("load",s,!1),ee.ready()}function l(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=ee.expando+l.uid++}function u(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(xe,"-$1").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:we.test(n)?ee.parseJSON(n):n}catch(i){}be.set(e,t,n)}else n=void 0;return n}function c(){return!0}function p(){return!1}function f(){try{return G.activeElement}catch(e){}}function h(e,t){return ee.nodeName(e,"table")&&ee.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function d(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function m(e){var t=Me.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function g(e,t){for(var n=0,r=e.length;r>n;n++)ve.set(e[n],"globalEval",!t||ve.get(t[n],"globalEval"))}function y(e,t){var n,r,i,a,o,s,l,u;if(1===t.nodeType){if(ve.hasData(e)&&(a=ve.access(e),o=ve.set(t,a),u=a.events)){delete o.handle,o.events={};for(i in u)for(n=0,r=u[i].length;r>n;n++)ee.event.add(t,i,u[i][n])}be.hasData(e)&&(s=be.access(e),l=ee.extend({},s),be.set(t,l))}}function v(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&ee.nodeName(e,t)?ee.merge([e],n):n}function b(e,t){var n=t.nodeName.toLowerCase();"input"===n&&Ee.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}function w(e,n){var r,i=ee(n.createElement(e)).appendTo(n.body),a=t.getDefaultComputedStyle&&(r=t.getDefaultComputedStyle(i[0]))?r.display:ee.css(i[0],"display");return i.detach(),a}function x(e){var t=G,n=Be[e];return n||(n=w(e,t),"none"!==n&&n||(Ue=(Ue||ee("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement),t=Ue[0].contentDocument,t.write(),t.close(),n=w(e,t),Ue.detach()),Be[e]=n),n}function S(e,t,n){var r,i,a,o,s=e.style;return n=n||ze(e),n&&(o=n.getPropertyValue(t)||n[t]),n&&(""!==o||ee.contains(e.ownerDocument,e)||(o=ee.style(e,t)),He.test(o)&&qe.test(t)&&(r=s.width,i=s.minWidth,a=s.maxWidth,s.minWidth=s.maxWidth=s.width=o,o=n.width,s.width=r,s.minWidth=i,s.maxWidth=a)),void 0!==o?o+"":o}function A(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function C(e,t){if(t in e)return t;for(var n=t[0].toUpperCase()+t.slice(1),r=t,i=Qe.length;i--;)if(t=Qe[i]+n,t in e)return t;return r}function E(e,t,n){var r=We.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function k(e,t,n,r,i){for(var a=n===(r?"border":"content")?4:"width"===t?1:0,o=0;4>a;a+=2)"margin"===n&&(o+=ee.css(e,n+Ae[a],!0,i)),r?("content"===n&&(o-=ee.css(e,"padding"+Ae[a],!0,i)),"margin"!==n&&(o-=ee.css(e,"border"+Ae[a]+"Width",!0,i))):(o+=ee.css(e,"padding"+Ae[a],!0,i),"padding"!==n&&(o+=ee.css(e,"border"+Ae[a]+"Width",!0,i)));return o}function O(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,a=ze(e),o="border-box"===ee.css(e,"boxSizing",!1,a);if(0>=i||null==i){if(i=S(e,t,a),(0>i||null==i)&&(i=e.style[t]),He.test(i))return i;r=o&&(X.boxSizingReliable()||i===e.style[t]),i=parseFloat(i)||0}return i+k(e,t,n||(o?"border":"content"),r,a)+"px"}function j(e,t){for(var n,r,i,a=[],o=0,s=e.length;s>o;o++)r=e[o],r.style&&(a[o]=ve.get(r,"olddisplay"),n=r.style.display,t?(a[o]||"none"!==n||(r.style.display=""),""===r.style.display&&Ce(r)&&(a[o]=ve.access(r,"olddisplay",x(r.nodeName)))):(i=Ce(r),"none"===n&&i||ve.set(r,"olddisplay",i?n:ee.css(r,"display"))));for(o=0;s>o;o++)r=e[o],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?a[o]||"":"none"));return e}function T(e,t,n,r,i){return new T.prototype.init(e,t,n,r,i)}function I(){return setTimeout(function(){Xe=void 0}),Xe=ee.now()}function _(e,t){var n,r=0,i={height:e};for(t=t?1:0;4>r;r+=2-t)n=Ae[r],i["margin"+n]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function D(e,t,n){for(var r,i=(rt[t]||[]).concat(rt["*"]),a=0,o=i.length;o>a;a++)if(r=i[a].call(n,t,e))return r}function L(e,t,n){var r,i,a,o,s,l,u,c,p=this,f={},h=e.style,d=e.nodeType&&Ce(e),m=ve.get(e,"fxshow");n.queue||(s=ee._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,p.always(function(){p.always(function(){s.unqueued--,ee.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],u=ee.css(e,"display"),c="none"===u?ve.get(e,"olddisplay")||x(e.nodeName):u,"inline"===c&&"none"===ee.css(e,"float")&&(h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Ze.exec(i)){if(delete t[r],a=a||"toggle"===i,i===(d?"hide":"show")){if("show"!==i||!m||void 0===m[r])continue;d=!0}f[r]=m&&m[r]||ee.style(e,r)}else u=void 0;if(ee.isEmptyObject(f))"inline"===("none"===u?x(e.nodeName):u)&&(h.display=u);else{m?"hidden"in m&&(d=m.hidden):m=ve.access(e,"fxshow",{}),a&&(m.hidden=!d),d?ee(e).show():p.done(function(){ee(e).hide()}),p.done(function(){var t;ve.remove(e,"fxshow");for(t in f)ee.style(e,t,f[t])});for(r in f)o=D(d?m[r]:0,r,p),r in m||(m[r]=o.start,d&&(o.end=o.start,o.start="width"===r||"height"===r?1:0))}}function P(e,t){var n,r,i,a,o;for(n in e)if(r=ee.camelCase(n),i=t[r],a=e[n],ee.isArray(a)&&(i=a[1],a=e[n]=a[0]),n!==r&&(e[r]=a,delete e[n]),o=ee.cssHooks[r],o&&"expand"in o){a=o.expand(a),delete e[r];for(n in a)n in e||(e[n]=a[n],t[n]=i)}else t[r]=i}function N(e,t,n){var r,i,a=0,o=nt.length,s=ee.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;for(var t=Xe||I(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,a=1-r,o=0,l=u.tweens.length;l>o;o++)u.tweens[o].run(a);return s.notifyWith(e,[u,a,n]),1>a&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:ee.extend({},t),opts:ee.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xe||I(),duration:n.duration,tweens:[],createTween:function(t,n){var r=ee.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(P(c,u.opts.specialEasing);o>a;a++)if(r=nt[a].call(u,e,c,u.opts))return r;return ee.map(c,D,u),ee.isFunction(u.opts.start)&&u.opts.start.call(e,u),ee.fx.timer(ee.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function $(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,a=t.toLowerCase().match(de)||[];if(ee.isFunction(n))for(;r=a[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function M(e,t,n,r){function i(s){var l;return a[s]=!0,ee.each(e[s]||[],function(e,s){var u=s(t,n,r);return"string"!=typeof u||o||a[u]?o?!(l=u):void 0:(t.dataTypes.unshift(u),i(u),!1)}),l}var a={},o=e===wt; + +return i(t.dataTypes[0])||!a["*"]&&i("*")}function R(e,t){var n,r,i=ee.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&ee.extend(!0,e,r),e}function F(e,t,n){for(var r,i,a,o,s=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){l.unshift(i);break}if(l[0]in n)a=l[0];else{for(i in n){if(!l[0]||e.converters[i+" "+l[0]]){a=i;break}o||(o=i)}a=a||o}return a?(a!==l[0]&&l.unshift(a),n[a]):void 0}function U(e,t,n,r){var i,a,o,s,l,u={},c=e.dataTypes.slice();if(c[1])for(o in e.converters)u[o.toLowerCase()]=e.converters[o];for(a=c.shift();a;)if(e.responseFields[a]&&(n[e.responseFields[a]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=a,a=c.shift())if("*"===a)a=l;else if("*"!==l&&l!==a){if(o=u[l+" "+a]||u["* "+a],!o)for(i in u)if(s=i.split(" "),s[1]===a&&(o=u[l+" "+s[0]]||u["* "+s[0]])){o===!0?o=u[i]:u[i]!==!0&&(a=s[0],c.unshift(s[1]));break}if(o!==!0)if(o&&e["throws"])t=o(t);else try{t=o(t)}catch(p){return{state:"parsererror",error:o?p:"No conversion from "+l+" to "+a}}}return{state:"success",data:t}}function B(e,t,n,r){var i;if(ee.isArray(t))ee.each(t,function(t,i){n||Et.test(e)?r(e,i):B(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==ee.type(t))r(e,t);else for(i in t)B(e+"["+i+"]",t[i],n,r)}function q(e){return ee.isWindow(e)?e:9===e.nodeType&&e.defaultView}var H=[],z=H.slice,V=H.concat,W=H.push,J=H.indexOf,Y={},K=Y.toString,Q=Y.hasOwnProperty,X={},G=t.document,Z="2.1.4",ee=function(e,t){return new ee.fn.init(e,t)},te=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ne=/^-ms-/,re=/-([\da-z])/gi,ie=function(e,t){return t.toUpperCase()};ee.fn=ee.prototype={jquery:Z,constructor:ee,selector:"",length:0,toArray:function(){return z.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:z.call(this)},pushStack:function(e){var t=ee.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return ee.each(this,e,t)},map:function(e){return this.pushStack(ee.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(z.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:W,sort:H.sort,splice:H.splice},ee.extend=ee.fn.extend=function(){var e,t,n,r,i,a,o=arguments[0]||{},s=1,l=arguments.length,u=!1;for("boolean"==typeof o&&(u=o,o=arguments[s]||{},s++),"object"==typeof o||ee.isFunction(o)||(o={}),s===l&&(o=this,s--);l>s;s++)if(null!=(e=arguments[s]))for(t in e)n=o[t],r=e[t],o!==r&&(u&&r&&(ee.isPlainObject(r)||(i=ee.isArray(r)))?(i?(i=!1,a=n&&ee.isArray(n)?n:[]):a=n&&ee.isPlainObject(n)?n:{},o[t]=ee.extend(u,a,r)):void 0!==r&&(o[t]=r));return o},ee.extend({expando:"jQuery"+(Z+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===ee.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return!ee.isArray(e)&&e-parseFloat(e)+1>=0},isPlainObject:function(e){return"object"!==ee.type(e)||e.nodeType||ee.isWindow(e)?!1:e.constructor&&!Q.call(e.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?Y[K.call(e)]||"object":typeof e},globalEval:function(e){var t,n=eval;e=ee.trim(e),e&&(1===e.indexOf("use strict")?(t=G.createElement("script"),t.text=e,G.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(ne,"ms-").replace(re,ie)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var i,a=0,o=e.length,s=r(e);if(n){if(s)for(;o>a&&(i=t.apply(e[a],n),i!==!1);a++);else for(a in e)if(i=t.apply(e[a],n),i===!1)break}else if(s)for(;o>a&&(i=t.call(e[a],a,e[a]),i!==!1);a++);else for(a in e)if(i=t.call(e[a],a,e[a]),i===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(te,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(r(Object(e))?ee.merge(n,"string"==typeof e?[e]:e):W.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:J.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;n>r;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],a=0,o=e.length,s=!n;o>a;a++)r=!t(e[a],a),r!==s&&i.push(e[a]);return i},map:function(e,t,n){var i,a=0,o=e.length,s=r(e),l=[];if(s)for(;o>a;a++)i=t(e[a],a,n),null!=i&&l.push(i);else for(a in e)i=t(e[a],a,n),null!=i&&l.push(i);return V.apply([],l)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(n=e[t],t=e,e=n),ee.isFunction(e)?(r=z.call(arguments,2),i=function(){return e.apply(t||this,r.concat(z.call(arguments)))},i.guid=e.guid=e.guid||ee.guid++,i):void 0},now:Date.now,support:X}),ee.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){Y["[object "+t+"]"]=t.toLowerCase()});var ae=function(e){function t(e,t,n,r){var i,a,o,s,l,u,p,h,d,m;if((t?t.ownerDocument||t:U)!==D&&_(t),t=t||D,n=n||[],s=t.nodeType,"string"!=typeof e||!e||1!==s&&9!==s&&11!==s)return n;if(!r&&P){if(11!==s&&(i=ve.exec(e)))if(o=i[1]){if(9===s){if(a=t.getElementById(o),!a||!a.parentNode)return n;if(a.id===o)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(o))&&R(t,a)&&a.id===o)return n.push(a),n}else{if(i[2])return G.apply(n,t.getElementsByTagName(e)),n;if((o=i[3])&&x.getElementsByClassName)return G.apply(n,t.getElementsByClassName(o)),n}if(x.qsa&&(!N||!N.test(e))){if(h=p=F,d=t,m=1!==s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(u=E(e),(p=t.getAttribute("id"))?h=p.replace(we,"\\$&"):t.setAttribute("id",h),h="[id='"+h+"'] ",l=u.length;l--;)u[l]=h+f(u[l]);d=be.test(e)&&c(t.parentNode)||t,m=u.join(",")}if(m)try{return G.apply(n,d.querySelectorAll(m)),n}catch(g){}finally{p||t.removeAttribute("id")}}}return O(e.replace(le,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>S.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[F]=!0,e}function i(e){var t=D.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function a(e,t){for(var n=e.split("|"),r=e.length;r--;)S.attrHandle[n[r]]=t}function o(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||J)-(~e.sourceIndex||J);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function u(e){return r(function(t){return t=+t,r(function(n,r){for(var i,a=e([],n.length,t),o=a.length;o--;)n[i=a[o]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function p(){}function f(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function h(e,t,n){var r=t.dir,i=n&&"parentNode"===r,a=q++;return t.first?function(t,n,a){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,a)}:function(t,n,o){var s,l,u=[B,a];if(o){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,o))return!0}else for(;t=t[r];)if(1===t.nodeType||i){if(l=t[F]||(t[F]={}),(s=l[r])&&s[0]===B&&s[1]===a)return u[2]=s[2];if(l[r]=u,u[2]=e(t,n,o))return!0}}}function d(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(e,n,r){for(var i=0,a=n.length;a>i;i++)t(e,n[i],r);return r}function g(e,t,n,r,i){for(var a,o=[],s=0,l=e.length,u=null!=t;l>s;s++)(a=e[s])&&(!n||n(a,r,i))&&(o.push(a),u&&t.push(s));return o}function y(e,t,n,i,a,o){return i&&!i[F]&&(i=y(i)),a&&!a[F]&&(a=y(a,o)),r(function(r,o,s,l){var u,c,p,f=[],h=[],d=o.length,y=r||m(t||"*",s.nodeType?[s]:s,[]),v=!e||!r&&t?y:g(y,f,e,s,l),b=n?a||(r?e:d||i)?[]:o:v;if(n&&n(v,b,s,l),i)for(u=g(b,h),i(u,[],s,l),c=u.length;c--;)(p=u[c])&&(b[h[c]]=!(v[h[c]]=p));if(r){if(a||e){if(a){for(u=[],c=b.length;c--;)(p=b[c])&&u.push(v[c]=p);a(null,b=[],u,l)}for(c=b.length;c--;)(p=b[c])&&(u=a?ee(r,p):f[c])>-1&&(r[u]=!(o[u]=p))}}else b=g(b===o?b.splice(d,b.length):b),a?a(null,o,b,l):G.apply(o,b)})}function v(e){for(var t,n,r,i=e.length,a=S.relative[e[0].type],o=a||S.relative[" "],s=a?1:0,l=h(function(e){return e===t},o,!0),u=h(function(e){return ee(t,e)>-1},o,!0),c=[function(e,n,r){var i=!a&&(r||n!==j)||((t=n).nodeType?l(e,n,r):u(e,n,r));return t=null,i}];i>s;s++)if(n=S.relative[e[s].type])c=[h(d(c),n)];else{if(n=S.filter[e[s].type].apply(null,e[s].matches),n[F]){for(r=++s;i>r&&!S.relative[e[r].type];r++);return y(s>1&&d(c),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(le,"$1"),n,r>s&&v(e.slice(s,r)),i>r&&v(e=e.slice(r)),i>r&&f(e))}c.push(n)}return d(c)}function b(e,n){var i=n.length>0,a=e.length>0,o=function(r,o,s,l,u){var c,p,f,h=0,d="0",m=r&&[],y=[],v=j,b=r||a&&S.find.TAG("*",u),w=B+=null==v?1:Math.random()||.1,x=b.length;for(u&&(j=o!==D&&o);d!==x&&null!=(c=b[d]);d++){if(a&&c){for(p=0;f=e[p++];)if(f(c,o,s)){l.push(c);break}u&&(B=w)}i&&((c=!f&&c)&&h--,r&&m.push(c))}if(h+=d,i&&d!==h){for(p=0;f=n[p++];)f(m,y,o,s);if(r){if(h>0)for(;d--;)m[d]||y[d]||(y[d]=Q.call(l));y=g(y)}G.apply(l,y),u&&!r&&y.length>0&&h+n.length>1&&t.uniqueSort(l)}return u&&(B=w,j=v),m};return i?r(o):o}var w,x,S,A,C,E,k,O,j,T,I,_,D,L,P,N,$,M,R,F="sizzle"+1*new Date,U=e.document,B=0,q=0,H=n(),z=n(),V=n(),W=function(e,t){return e===t&&(I=!0),0},J=1<<31,Y={}.hasOwnProperty,K=[],Q=K.pop,X=K.push,G=K.push,Z=K.slice,ee=function(e,t){for(var n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1},te="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ne="[\\x20\\t\\r\\n\\f]",re="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ie=re.replace("w","w#"),ae="\\["+ne+"*("+re+")(?:"+ne+"*([*^$|!~]?=)"+ne+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ie+"))|)"+ne+"*\\]",oe=":("+re+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ae+")*)|.*)\\)|)",se=new RegExp(ne+"+","g"),le=new RegExp("^"+ne+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ne+"+$","g"),ue=new RegExp("^"+ne+"*,"+ne+"*"),ce=new RegExp("^"+ne+"*([>+~]|"+ne+")"+ne+"*"),pe=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(oe),he=new RegExp("^"+ie+"$"),de={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re.replace("w","w*")+")"),ATTR:new RegExp("^"+ae),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},me=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,ye=/^[^{]+\{\s*\[native \w/,ve=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,be=/[+~]/,we=/'|\\/g,xe=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),Se=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},Ae=function(){_()};try{G.apply(K=Z.call(U.childNodes),U.childNodes),K[U.childNodes.length].nodeType}catch(Ce){G={apply:K.length?function(e,t){X.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}x=t.support={},C=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},_=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:U;return r!==D&&9===r.nodeType&&r.documentElement?(D=r,L=r.documentElement,n=r.defaultView,n&&n!==n.top&&(n.addEventListener?n.addEventListener("unload",Ae,!1):n.attachEvent&&n.attachEvent("onunload",Ae)),P=!C(r),x.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),x.getElementsByTagName=i(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),x.getElementsByClassName=ye.test(r.getElementsByClassName),x.getById=i(function(e){return L.appendChild(e).id=F,!r.getElementsByName||!r.getElementsByName(F).length}),x.getById?(S.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&P){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},S.filter.ID=function(e){var t=e.replace(xe,Se);return function(e){return e.getAttribute("id")===t}}):(delete S.find.ID,S.filter.ID=function(e){var t=e.replace(xe,Se);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),S.find.TAG=x.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):x.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,a=t.getElementsByTagName(e);if("*"===e){for(;n=a[i++];)1===n.nodeType&&r.push(n);return r}return a},S.find.CLASS=x.getElementsByClassName&&function(e,t){return P?t.getElementsByClassName(e):void 0},$=[],N=[],(x.qsa=ye.test(r.querySelectorAll))&&(i(function(e){L.appendChild(e).innerHTML="<a id='"+F+"'></a><select id='"+F+"-\f]' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&N.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||N.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+F+"-]").length||N.push("~="),e.querySelectorAll(":checked").length||N.push(":checked"),e.querySelectorAll("a#"+F+"+*").length||N.push(".#.+[+~]")}),i(function(e){var t=r.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&N.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||N.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),N.push(",.*:")})),(x.matchesSelector=ye.test(M=L.matches||L.webkitMatchesSelector||L.mozMatchesSelector||L.oMatchesSelector||L.msMatchesSelector))&&i(function(e){x.disconnectedMatch=M.call(e,"div"),M.call(e,"[s!='']:x"),$.push("!=",oe)}),N=N.length&&new RegExp(N.join("|")),$=$.length&&new RegExp($.join("|")),t=ye.test(L.compareDocumentPosition),R=t||ye.test(L.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},W=t?function(e,t){if(e===t)return I=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!x.sortDetached&&t.compareDocumentPosition(e)===n?e===r||e.ownerDocument===U&&R(U,e)?-1:t===r||t.ownerDocument===U&&R(U,t)?1:T?ee(T,e)-ee(T,t):0:4&n?-1:1)}:function(e,t){if(e===t)return I=!0,0;var n,i=0,a=e.parentNode,s=t.parentNode,l=[e],u=[t];if(!a||!s)return e===r?-1:t===r?1:a?-1:s?1:T?ee(T,e)-ee(T,t):0;if(a===s)return o(e,t);for(n=e;n=n.parentNode;)l.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;l[i]===u[i];)i++;return i?o(l[i],u[i]):l[i]===U?-1:u[i]===U?1:0},r):D},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==D&&_(e),n=n.replace(pe,"='$1']"),!(!x.matchesSelector||!P||$&&$.test(n)||N&&N.test(n)))try{var r=M.call(e,n);if(r||x.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,D,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==D&&_(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==D&&_(e);var n=S.attrHandle[t.toLowerCase()],r=n&&Y.call(S.attrHandle,t.toLowerCase())?n(e,t,!P):void 0;return void 0!==r?r:x.attributes||!P?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(I=!x.detectDuplicates,T=!x.sortStable&&e.slice(0),e.sort(W),I){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return T=null,e},A=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=A(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=A(t);return n},S=t.selectors={cacheLength:50,createPseudo:r,match:de,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(xe,Se),e[3]=(e[3]||e[4]||e[5]||"").replace(xe,Se),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return de.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=E(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(xe,Se).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=H[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&H(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var a=t.attr(i,e);return null==a?"!="===n:n?(a+="","="===n?a===r:"!="===n?a!==r:"^="===n?r&&0===a.indexOf(r):"*="===n?r&&a.indexOf(r)>-1:"$="===n?r&&a.slice(-r.length)===r:"~="===n?(" "+a.replace(se," ")+" ").indexOf(r)>-1:"|="===n?a===r||a.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r,i){var a="nth"!==e.slice(0,3),o="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,h,d,m=a!==o?"nextSibling":"previousSibling",g=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(g){if(a){for(;m;){for(p=t;p=p[m];)if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;d=m="only"===e&&!d&&"nextSibling"}return!0}if(d=[o?g.firstChild:g.lastChild],o&&v){for(c=g[F]||(g[F]={}),u=c[e]||[],h=u[0]===B&&u[1],f=u[0]===B&&u[2],p=h&&g.childNodes[h];p=++h&&p&&p[m]||(f=h=0)||d.pop();)if(1===p.nodeType&&++f&&p===t){c[e]=[B,h,f];break}}else if(v&&(u=(t[F]||(t[F]={}))[e])&&u[0]===B)f=u[1];else for(;(p=++h&&p&&p[m]||(f=h=0)||d.pop())&&((s?p.nodeName.toLowerCase()!==y:1!==p.nodeType)||!++f||(v&&((p[F]||(p[F]={}))[e]=[B,f]),p!==t)););return f-=i,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(e,n){var i,a=S.pseudos[e]||S.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return a[F]?a(n):a.length>1?(i=[e,e,"",n],S.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=a(e,n),o=i.length;o--;)r=ee(e,i[o]),e[r]=!(t[r]=i[o])}):function(e){return a(e,0,i)}):a}},pseudos:{not:r(function(e){var t=[],n=[],i=k(e.replace(le,"$1"));return i[F]?r(function(e,t,n,r){for(var a,o=i(e,null,r,[]),s=e.length;s--;)(a=o[s])&&(e[s]=!(t[s]=a))}):function(e,r,a){return t[0]=e,i(t,null,a,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(xe,Se),function(t){return(t.textContent||t.innerText||A(t)).indexOf(e)>-1}}),lang:r(function(e){return he.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(xe,Se).toLowerCase(),function(t){var n;do if(n=P?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===L},focus:function(e){return e===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!S.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return me.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:u(function(){return[0]}),last:u(function(e,t){return[t-1]}),eq:u(function(e,t,n){return[0>n?n+t:n]}),even:u(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:u(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:u(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:u(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}},S.pseudos.nth=S.pseudos.eq;for(w in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})S.pseudos[w]=s(w);for(w in{submit:!0,reset:!0})S.pseudos[w]=l(w);return p.prototype=S.filters=S.pseudos,S.setFilters=new p,E=t.tokenize=function(e,n){var r,i,a,o,s,l,u,c=z[e+" "];if(c)return n?0:c.slice(0);for(s=e,l=[],u=S.preFilter;s;){(!r||(i=ue.exec(s)))&&(i&&(s=s.slice(i[0].length)||s),l.push(a=[])),r=!1,(i=ce.exec(s))&&(r=i.shift(),a.push({value:r,type:i[0].replace(le," ")}),s=s.slice(r.length));for(o in S.filter)!(i=de[o].exec(s))||u[o]&&!(i=u[o](i))||(r=i.shift(),a.push({value:r,type:o,matches:i}),s=s.slice(r.length));if(!r)break}return n?s.length:s?t.error(e):z(e,l).slice(0)},k=t.compile=function(e,t){var n,r=[],i=[],a=V[e+" "];if(!a){for(t||(t=E(e)),n=t.length;n--;)a=v(t[n]),a[F]?r.push(a):i.push(a);a=V(e,b(i,r)),a.selector=e}return a},O=t.select=function(e,t,n,r){var i,a,o,s,l,u="function"==typeof e&&e,p=!r&&E(e=u.selector||e);if(n=n||[],1===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(o=a[0]).type&&x.getById&&9===t.nodeType&&P&&S.relative[a[1].type]){if(t=(S.find.ID(o.matches[0].replace(xe,Se),t)||[])[0],!t)return n;u&&(t=t.parentNode),e=e.slice(a.shift().value.length)}for(i=de.needsContext.test(e)?0:a.length;i--&&(o=a[i],!S.relative[s=o.type]);)if((l=S.find[s])&&(r=l(o.matches[0].replace(xe,Se),be.test(a[0].type)&&c(t.parentNode)||t))){if(a.splice(i,1),e=r.length&&f(a),!e)return G.apply(n,r),n;break}}return(u||k(e,p))(r,t,!P,n,be.test(e)&&c(t.parentNode)||t),n},x.sortStable=F.split("").sort(W).join("")===F,x.detectDuplicates=!!I,_(),x.sortDetached=i(function(e){return 1&e.compareDocumentPosition(D.createElement("div"))}),i(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||a("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),x.attributes&&i(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||a("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||a(te,function(e,t,n){var r;return n?void 0:e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(t);ee.find=ae,ee.expr=ae.selectors,ee.expr[":"]=ee.expr.pseudos,ee.unique=ae.uniqueSort,ee.text=ae.getText,ee.isXMLDoc=ae.isXML,ee.contains=ae.contains;var oe=ee.expr.match.needsContext,se=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,le=/^.[^:#\[\.,]*$/;ee.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ee.find.matchesSelector(r,e)?[r]:[]:ee.find.matches(e,ee.grep(t,function(e){return 1===e.nodeType}))},ee.fn.extend({find:function(e){var t,n=this.length,r=[],i=this;if("string"!=typeof e)return this.pushStack(ee(e).filter(function(){for(t=0;n>t;t++)if(ee.contains(i[t],this))return!0}));for(t=0;n>t;t++)ee.find(e,i[t],r);return r=this.pushStack(n>1?ee.unique(r):r),r.selector=this.selector?this.selector+" "+e:e,r},filter:function(e){return this.pushStack(i(this,e||[],!1))},not:function(e){return this.pushStack(i(this,e||[],!0))},is:function(e){return!!i(this,"string"==typeof e&&oe.test(e)?ee(e):e||[],!1).length}});var ue,ce=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,pe=ee.fn.init=function(e,t){var n,r;if(!e)return this;if("string"==typeof e){if(n="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:ce.exec(e),!n||!n[1]&&t)return!t||t.jquery?(t||ue).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof ee?t[0]:t,ee.merge(this,ee.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:G,!0)),se.test(n[1])&&ee.isPlainObject(t))for(n in t)ee.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}return r=G.getElementById(n[2]),r&&r.parentNode&&(this.length=1,this[0]=r),this.context=G,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):ee.isFunction(e)?"undefined"!=typeof ue.ready?ue.ready(e):e(ee):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),ee.makeArray(e,this))};pe.prototype=ee.fn,ue=ee(G);var fe=/^(?:parents|prev(?:Until|All))/,he={children:!0,contents:!0,next:!0,prev:!0};ee.extend({dir:function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&ee(e).is(n))break;r.push(e)}return r},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}}),ee.fn.extend({has:function(e){var t=ee(e,this),n=t.length;return this.filter(function(){for(var e=0;n>e;e++)if(ee.contains(this,t[e]))return!0})},closest:function(e,t){for(var n,r=0,i=this.length,a=[],o=oe.test(e)||"string"!=typeof e?ee(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(o?o.index(n)>-1:1===n.nodeType&&ee.find.matchesSelector(n,e))){a.push(n);break}return this.pushStack(a.length>1?ee.unique(a):a)},index:function(e){return e?"string"==typeof e?J.call(ee(e),this[0]):J.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ee.unique(ee.merge(this.get(),ee(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ee.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return ee.dir(e,"parentNode")},parentsUntil:function(e,t,n){return ee.dir(e,"parentNode",n)},next:function(e){return a(e,"nextSibling")},prev:function(e){return a(e,"previousSibling")},nextAll:function(e){return ee.dir(e,"nextSibling")},prevAll:function(e){return ee.dir(e,"previousSibling")},nextUntil:function(e,t,n){return ee.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return ee.dir(e,"previousSibling",n)},siblings:function(e){return ee.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return ee.sibling(e.firstChild)},contents:function(e){return e.contentDocument||ee.merge([],e.childNodes)}},function(e,t){ee.fn[e]=function(n,r){var i=ee.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=ee.filter(r,i)),this.length>1&&(he[e]||ee.unique(i),fe.test(e)&&i.reverse()),this.pushStack(i)}});var de=/\S+/g,me={};ee.Callbacks=function(e){e="string"==typeof e?me[e]||o(e):ee.extend({},e);var t,n,r,i,a,s,l=[],u=!e.once&&[],c=function(o){for(t=e.memory&&o,n=!0,s=i||0,i=0,a=l.length,r=!0;l&&a>s;s++)if(l[s].apply(o[0],o[1])===!1&&e.stopOnFalse){t=!1;break}r=!1,l&&(u?u.length&&c(u.shift()):t?l=[]:p.disable())},p={add:function(){if(l){var n=l.length;!function o(t){ee.each(t,function(t,n){var r=ee.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&o(n)})}(arguments),r?a=l.length:t&&(i=n,c(t))}return this},remove:function(){return l&&ee.each(arguments,function(e,t){for(var n;(n=ee.inArray(t,l,n))>-1;)l.splice(n,1),r&&(a>=n&&a--,s>=n&&s--)}),this},has:function(e){return e?ee.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],a=0,this},disable:function(){return l=u=t=void 0,this},disabled:function(){return!l},lock:function(){return u=void 0,t||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||n&&!u||(t=t||[],t=[e,t.slice?t.slice():t],r?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!n}};return p},ee.extend({Deferred:function(e){var t=[["resolve","done",ee.Callbacks("once memory"),"resolved"],["reject","fail",ee.Callbacks("once memory"),"rejected"],["notify","progress",ee.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return ee.Deferred(function(n){ee.each(t,function(t,a){var o=ee.isFunction(e[t])&&e[t];i[a[1]](function(){var e=o&&o.apply(this,arguments);e&&ee.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a[0]+"With"](this===r?n.promise():this,o?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?ee.extend(e,r):r}},i={};return r.pipe=r.then,ee.each(t,function(e,a){var o=a[2],s=a[3];r[a[1]]=o.add,s&&o.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[a[0]]=function(){return i[a[0]+"With"](this===i?r:this,arguments),this},i[a[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,a=z.call(arguments),o=a.length,s=1!==o||e&&ee.isFunction(e.promise)?o:0,l=1===s?e:ee.Deferred(),u=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?z.call(arguments):i,r===t?l.notifyWith(n,r):--s||l.resolveWith(n,r)}};if(o>1)for(t=new Array(o),n=new Array(o),r=new Array(o);o>i;i++)a[i]&&ee.isFunction(a[i].promise)?a[i].promise().done(u(i,r,a)).fail(l.reject).progress(u(i,n,t)):--s;return s||l.resolveWith(r,a),l.promise()}});var ge;ee.fn.ready=function(e){return ee.ready.promise().done(e),this},ee.extend({isReady:!1,readyWait:1,holdReady:function(e){e?ee.readyWait++:ee.ready(!0)},ready:function(e){(e===!0?--ee.readyWait:ee.isReady)||(ee.isReady=!0,e!==!0&&--ee.readyWait>0||(ge.resolveWith(G,[ee]),ee.fn.triggerHandler&&(ee(G).triggerHandler("ready"),ee(G).off("ready"))))}}),ee.ready.promise=function(e){return ge||(ge=ee.Deferred(),"complete"===G.readyState?setTimeout(ee.ready):(G.addEventListener("DOMContentLoaded",s,!1),t.addEventListener("load",s,!1))),ge.promise(e)},ee.ready.promise();var ye=ee.access=function(e,t,n,r,i,a,o){var s=0,l=e.length,u=null==n;if("object"===ee.type(n)){i=!0;for(s in n)ee.access(e,t,s,n[s],!0,a,o)}else if(void 0!==r&&(i=!0,ee.isFunction(r)||(o=!0),u&&(o?(t.call(e,r),t=null):(u=t,t=function(e,t,n){return u.call(ee(e),n)})),t))for(;l>s;s++)t(e[s],n,o?r:r.call(e[s],s,t(e[s],n)));return i?e:u?t.call(e):l?t(e[0],n):a};ee.acceptData=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType},l.uid=1,l.accepts=ee.acceptData,l.prototype={key:function(e){if(!l.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=l.uid++;try{t[this.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,ee.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,t,n){var r,i=this.key(e),a=this.cache[i];if("string"==typeof t)a[t]=n;else if(ee.isEmptyObject(a))ee.extend(this.cache[i],t);else for(r in t)a[r]=t[r];return a},get:function(e,t){var n=this.cache[this.key(e)];return void 0===t?n:n[t]},access:function(e,t,n){var r;return void 0===t||t&&"string"==typeof t&&void 0===n?(r=this.get(e,t),void 0!==r?r:this.get(e,ee.camelCase(t))):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r,i,a=this.key(e),o=this.cache[a];if(void 0===t)this.cache[a]={};else{ee.isArray(t)?r=t.concat(t.map(ee.camelCase)):(i=ee.camelCase(t),t in o?r=[t,i]:(r=i,r=r in o?[r]:r.match(de)||[])),n=r.length;for(;n--;)delete o[r[n]]}},hasData:function(e){return!ee.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){ +e[this.expando]&&delete this.cache[e[this.expando]]}};var ve=new l,be=new l,we=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,xe=/([A-Z])/g;ee.extend({hasData:function(e){return be.hasData(e)||ve.hasData(e)},data:function(e,t,n){return be.access(e,t,n)},removeData:function(e,t){be.remove(e,t)},_data:function(e,t,n){return ve.access(e,t,n)},_removeData:function(e,t){ve.remove(e,t)}}),ee.fn.extend({data:function(e,t){var n,r,i,a=this[0],o=a&&a.attributes;if(void 0===e){if(this.length&&(i=be.get(a),1===a.nodeType&&!ve.get(a,"hasDataAttrs"))){for(n=o.length;n--;)o[n]&&(r=o[n].name,0===r.indexOf("data-")&&(r=ee.camelCase(r.slice(5)),u(a,r,i[r])));ve.set(a,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){be.set(this,e)}):ye(this,function(t){var n,r=ee.camelCase(e);if(a&&void 0===t){if(n=be.get(a,e),void 0!==n)return n;if(n=be.get(a,r),void 0!==n)return n;if(n=u(a,r,void 0),void 0!==n)return n}else this.each(function(){var n=be.get(this,r);be.set(this,r,t),-1!==e.indexOf("-")&&void 0!==n&&be.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){be.remove(this,e)})}}),ee.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=ve.get(e,t),n&&(!r||ee.isArray(n)?r=ve.access(e,t,ee.makeArray(n)):r.push(n)),r||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=ee.queue(e,t),r=n.length,i=n.shift(),a=ee._queueHooks(e,t),o=function(){ee.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete a.stop,i.call(e,o,a)),!r&&a&&a.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return ve.get(e,n)||ve.access(e,n,{empty:ee.Callbacks("once memory").add(function(){ve.remove(e,[t+"queue",n])})})}}),ee.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?ee.queue(this[0],e):void 0===t?this:this.each(function(){var n=ee.queue(this,e,t);ee._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&ee.dequeue(this,e)})},dequeue:function(e){return this.each(function(){ee.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=ee.Deferred(),a=this,o=this.length,s=function(){--r||i.resolveWith(a,[a])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";o--;)n=ve.get(a[o],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var Se=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Ae=["Top","Right","Bottom","Left"],Ce=function(e,t){return e=t||e,"none"===ee.css(e,"display")||!ee.contains(e.ownerDocument,e)},Ee=/^(?:checkbox|radio)$/i;!function(){var e=G.createDocumentFragment(),t=e.appendChild(G.createElement("div")),n=G.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),X.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="<textarea>x</textarea>",X.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var ke="undefined";X.focusinBubbles="onfocusin"in t;var Oe=/^key/,je=/^(?:mouse|pointer|contextmenu)|click/,Te=/^(?:focusinfocus|focusoutblur)$/,Ie=/^([^.]*)(?:\.(.+)|)$/;ee.event={global:{},add:function(e,t,n,r,i){var a,o,s,l,u,c,p,f,h,d,m,g=ve.get(e);if(g)for(n.handler&&(a=n,n=a.handler,i=a.selector),n.guid||(n.guid=ee.guid++),(l=g.events)||(l=g.events={}),(o=g.handle)||(o=g.handle=function(t){return typeof ee!==ke&&ee.event.triggered!==t.type?ee.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(de)||[""],u=t.length;u--;)s=Ie.exec(t[u])||[],h=m=s[1],d=(s[2]||"").split(".").sort(),h&&(p=ee.event.special[h]||{},h=(i?p.delegateType:p.bindType)||h,p=ee.event.special[h]||{},c=ee.extend({type:h,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&ee.expr.match.needsContext.test(i),namespace:d.join(".")},a),(f=l[h])||(f=l[h]=[],f.delegateCount=0,p.setup&&p.setup.call(e,r,d,o)!==!1||e.addEventListener&&e.addEventListener(h,o,!1)),p.add&&(p.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?f.splice(f.delegateCount++,0,c):f.push(c),ee.event.global[h]=!0)},remove:function(e,t,n,r,i){var a,o,s,l,u,c,p,f,h,d,m,g=ve.hasData(e)&&ve.get(e);if(g&&(l=g.events)){for(t=(t||"").match(de)||[""],u=t.length;u--;)if(s=Ie.exec(t[u])||[],h=m=s[1],d=(s[2]||"").split(".").sort(),h){for(p=ee.event.special[h]||{},h=(r?p.delegateType:p.bindType)||h,f=l[h]||[],s=s[2]&&new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),o=a=f.length;a--;)c=f[a],!i&&m!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(f.splice(a,1),c.selector&&f.delegateCount--,p.remove&&p.remove.call(e,c));o&&!f.length&&(p.teardown&&p.teardown.call(e,d,g.handle)!==!1||ee.removeEvent(e,h,g.handle),delete l[h])}else for(h in l)ee.event.remove(e,h+t[u],n,r,!0);ee.isEmptyObject(l)&&(delete g.handle,ve.remove(e,"events"))}},trigger:function(e,n,r,i){var a,o,s,l,u,c,p,f=[r||G],h=Q.call(e,"type")?e.type:e,d=Q.call(e,"namespace")?e.namespace.split("."):[];if(o=s=r=r||G,3!==r.nodeType&&8!==r.nodeType&&!Te.test(h+ee.event.triggered)&&(h.indexOf(".")>=0&&(d=h.split("."),h=d.shift(),d.sort()),u=h.indexOf(":")<0&&"on"+h,e=e[ee.expando]?e:new ee.Event(h,"object"==typeof e&&e),e.isTrigger=i?2:3,e.namespace=d.join("."),e.namespace_re=e.namespace?new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=r),n=null==n?[e]:ee.makeArray(n,[e]),p=ee.event.special[h]||{},i||!p.trigger||p.trigger.apply(r,n)!==!1)){if(!i&&!p.noBubble&&!ee.isWindow(r)){for(l=p.delegateType||h,Te.test(l+h)||(o=o.parentNode);o;o=o.parentNode)f.push(o),s=o;s===(r.ownerDocument||G)&&f.push(s.defaultView||s.parentWindow||t)}for(a=0;(o=f[a++])&&!e.isPropagationStopped();)e.type=a>1?l:p.bindType||h,c=(ve.get(o,"events")||{})[e.type]&&ve.get(o,"handle"),c&&c.apply(o,n),c=u&&o[u],c&&c.apply&&ee.acceptData(o)&&(e.result=c.apply(o,n),e.result===!1&&e.preventDefault());return e.type=h,i||e.isDefaultPrevented()||p._default&&p._default.apply(f.pop(),n)!==!1||!ee.acceptData(r)||u&&ee.isFunction(r[h])&&!ee.isWindow(r)&&(s=r[u],s&&(r[u]=null),ee.event.triggered=h,r[h](),ee.event.triggered=void 0,s&&(r[u]=s)),e.result}},dispatch:function(e){e=ee.event.fix(e);var t,n,r,i,a,o=[],s=z.call(arguments),l=(ve.get(this,"events")||{})[e.type]||[],u=ee.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!u.preDispatch||u.preDispatch.call(this,e)!==!1){for(o=ee.event.handlers.call(this,e,l),t=0;(i=o[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(a=i.handlers[n++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(a.namespace))&&(e.handleObj=a,e.data=a.data,r=((ee.event.special[a.origType]||{}).handle||a.handler).apply(i.elem,s),void 0!==r&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return u.postDispatch&&u.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,a,o=[],s=t.delegateCount,l=e.target;if(s&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!==this;l=l.parentNode||this)if(l.disabled!==!0||"click"!==e.type){for(r=[],n=0;s>n;n++)a=t[n],i=a.selector+" ",void 0===r[i]&&(r[i]=a.needsContext?ee(i,this).index(l)>=0:ee.find(i,this,null,[l]).length),r[i]&&r.push(a);r.length&&o.push({elem:l,handlers:r})}return s<t.length&&o.push({elem:this,handlers:t.slice(s)}),o},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,a=t.button;return null==e.pageX&&null!=t.clientX&&(n=e.target.ownerDocument||G,r=n.documentElement,i=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||i&&i.scrollLeft||0)-(r&&r.clientLeft||i&&i.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||i&&i.scrollTop||0)-(r&&r.clientTop||i&&i.clientTop||0)),e.which||void 0===a||(e.which=1&a?1:2&a?3:4&a?2:0),e}},fix:function(e){if(e[ee.expando])return e;var t,n,r,i=e.type,a=e,o=this.fixHooks[i];for(o||(this.fixHooks[i]=o=je.test(i)?this.mouseHooks:Oe.test(i)?this.keyHooks:{}),r=o.props?this.props.concat(o.props):this.props,e=new ee.Event(a),t=r.length;t--;)n=r[t],e[n]=a[n];return e.target||(e.target=G),3===e.target.nodeType&&(e.target=e.target.parentNode),o.filter?o.filter(e,a):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==f()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===f()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&ee.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(e){return ee.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=ee.extend(new ee.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?ee.event.trigger(i,null,t):ee.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},ee.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)},ee.Event=function(e,t){return this instanceof ee.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&e.returnValue===!1?c:p):this.type=e,t&&ee.extend(this,t),this.timeStamp=e&&e.timeStamp||ee.now(),void(this[ee.expando]=!0)):new ee.Event(e,t)},ee.Event.prototype={isDefaultPrevented:p,isPropagationStopped:p,isImmediatePropagationStopped:p,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=c,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=c,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=c,e&&e.stopImmediatePropagation&&e.stopImmediatePropagation(),this.stopPropagation()}},ee.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){ee.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,a=e.handleObj;return(!i||i!==r&&!ee.contains(r,i))&&(e.type=a.origType,n=a.handler.apply(this,arguments),e.type=t),n}}}),X.focusinBubbles||ee.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){ee.event.simulate(t,e.target,ee.event.fix(e),!0)};ee.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=ve.access(r,t);i||r.addEventListener(e,n,!0),ve.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=ve.access(r,t)-1;i?ve.access(r,t,i):(r.removeEventListener(e,n,!0),ve.remove(r,t))}}}),ee.fn.extend({on:function(e,t,n,r,i){var a,o;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=void 0);for(o in e)this.on(o,t,n,e[o],i);return this}if(null==n&&null==r?(r=t,n=t=void 0):null==r&&("string"==typeof t?(r=n,n=void 0):(r=n,n=t,t=void 0)),r===!1)r=p;else if(!r)return this;return 1===i&&(a=r,r=function(e){return ee().off(e),a.apply(this,arguments)},r.guid=a.guid||(a.guid=ee.guid++)),this.each(function(){ee.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,ee(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=void 0),n===!1&&(n=p),this.each(function(){ee.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){ee.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?ee.event.trigger(e,t,n,!0):void 0}});var _e=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,De=/<([\w:]+)/,Le=/<|&#?\w+;/,Pe=/<(?:script|style|link)/i,Ne=/checked\s*(?:[^=]|=\s*.checked.)/i,$e=/^$|\/(?:java|ecma)script/i,Me=/^true\/(.*)/,Re=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Fe={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Fe.optgroup=Fe.option,Fe.tbody=Fe.tfoot=Fe.colgroup=Fe.caption=Fe.thead,Fe.th=Fe.td,ee.extend({clone:function(e,t,n){var r,i,a,o,s=e.cloneNode(!0),l=ee.contains(e.ownerDocument,e);if(!(X.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ee.isXMLDoc(e)))for(o=v(s),a=v(e),r=0,i=a.length;i>r;r++)b(a[r],o[r]);if(t)if(n)for(a=a||v(e),o=o||v(s),r=0,i=a.length;i>r;r++)y(a[r],o[r]);else y(e,s);return o=v(s,"script"),o.length>0&&g(o,!l&&v(e,"script")),s},buildFragment:function(e,t,n,r){for(var i,a,o,s,l,u,c=t.createDocumentFragment(),p=[],f=0,h=e.length;h>f;f++)if(i=e[f],i||0===i)if("object"===ee.type(i))ee.merge(p,i.nodeType?[i]:i);else if(Le.test(i)){for(a=a||c.appendChild(t.createElement("div")),o=(De.exec(i)||["",""])[1].toLowerCase(),s=Fe[o]||Fe._default,a.innerHTML=s[1]+i.replace(_e,"<$1></$2>")+s[2],u=s[0];u--;)a=a.lastChild;ee.merge(p,a.childNodes),a=c.firstChild,a.textContent=""}else p.push(t.createTextNode(i));for(c.textContent="",f=0;i=p[f++];)if((!r||-1===ee.inArray(i,r))&&(l=ee.contains(i.ownerDocument,i),a=v(c.appendChild(i),"script"),l&&g(a),n))for(u=0;i=a[u++];)$e.test(i.type||"")&&n.push(i);return c},cleanData:function(e){for(var t,n,r,i,a=ee.event.special,o=0;void 0!==(n=e[o]);o++){if(ee.acceptData(n)&&(i=n[ve.expando],i&&(t=ve.cache[i]))){if(t.events)for(r in t.events)a[r]?ee.event.remove(n,r):ee.removeEvent(n,r,t.handle);ve.cache[i]&&delete ve.cache[i]}delete be.cache[n[be.expando]]}}}),ee.fn.extend({text:function(e){return ye(this,function(e){return void 0===e?ee.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=e)})},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=h(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=h(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,r=e?ee.filter(e,this):this,i=0;null!=(n=r[i]);i++)t||1!==n.nodeType||ee.cleanData(v(n)),n.parentNode&&(t&&ee.contains(n.ownerDocument,n)&&g(v(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(ee.cleanData(v(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return ee.clone(this,e,t)})},html:function(e){return ye(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Pe.test(e)&&!Fe[(De.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(_e,"<$1></$2>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(ee.cleanData(v(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=arguments[0];return this.domManip(arguments,function(t){e=this.parentNode,ee.cleanData(v(this)),e&&e.replaceChild(t,this)}),e&&(e.length||e.nodeType)?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t){e=V.apply([],e);var n,r,i,a,o,s,l=0,u=this.length,c=this,p=u-1,f=e[0],h=ee.isFunction(f);if(h||u>1&&"string"==typeof f&&!X.checkClone&&Ne.test(f))return this.each(function(n){var r=c.eq(n);h&&(e[0]=f.call(this,n,r.html())),r.domManip(e,t)});if(u&&(n=ee.buildFragment(e,this[0].ownerDocument,!1,this),r=n.firstChild,1===n.childNodes.length&&(n=r),r)){for(i=ee.map(v(n,"script"),d),a=i.length;u>l;l++)o=n,l!==p&&(o=ee.clone(o,!0,!0),a&&ee.merge(i,v(o,"script"))),t.call(this[l],o,l);if(a)for(s=i[i.length-1].ownerDocument,ee.map(i,m),l=0;a>l;l++)o=i[l],$e.test(o.type||"")&&!ve.access(o,"globalEval")&&ee.contains(s,o)&&(o.src?ee._evalUrl&&ee._evalUrl(o.src):ee.globalEval(o.textContent.replace(Re,"")))}return this}}),ee.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){ee.fn[e]=function(e){for(var n,r=[],i=ee(e),a=i.length-1,o=0;a>=o;o++)n=o===a?this:this.clone(!0),ee(i[o])[t](n),W.apply(r,n.get());return this.pushStack(r)}});var Ue,Be={},qe=/^margin/,He=new RegExp("^("+Se+")(?!px)[a-z%]+$","i"),ze=function(e){return e.ownerDocument.defaultView.opener?e.ownerDocument.defaultView.getComputedStyle(e,null):t.getComputedStyle(e,null)};!function(){function e(){o.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",o.innerHTML="",i.appendChild(a);var e=t.getComputedStyle(o,null);n="1%"!==e.top,r="4px"===e.width,i.removeChild(a)}var n,r,i=G.documentElement,a=G.createElement("div"),o=G.createElement("div");o.style&&(o.style.backgroundClip="content-box",o.cloneNode(!0).style.backgroundClip="",X.clearCloneStyle="content-box"===o.style.backgroundClip,a.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",a.appendChild(o),t.getComputedStyle&&ee.extend(X,{pixelPosition:function(){return e(),n},boxSizingReliable:function(){return null==r&&e(),r},reliableMarginRight:function(){var e,n=o.appendChild(G.createElement("div"));return n.style.cssText=o.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",n.style.marginRight=n.style.width="0",o.style.width="1px",i.appendChild(a),e=!parseFloat(t.getComputedStyle(n,null).marginRight),i.removeChild(a),o.removeChild(n),e}}))}(),ee.swap=function(e,t,n,r){var i,a,o={};for(a in t)o[a]=e.style[a],e.style[a]=t[a];i=n.apply(e,r||[]);for(a in t)e.style[a]=o[a];return i};var Ve=/^(none|table(?!-c[ea]).+)/,We=new RegExp("^("+Se+")(.*)$","i"),Je=new RegExp("^([+-])=("+Se+")","i"),Ye={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"},Qe=["Webkit","O","Moz","ms"];ee.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=S(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,a,o,s=ee.camelCase(t),l=e.style;return t=ee.cssProps[s]||(ee.cssProps[s]=C(l,s)),o=ee.cssHooks[t]||ee.cssHooks[s],void 0===n?o&&"get"in o&&void 0!==(i=o.get(e,!1,r))?i:l[t]:(a=typeof n,"string"===a&&(i=Je.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(ee.css(e,t)),a="number"),null!=n&&n===n&&("number"!==a||ee.cssNumber[s]||(n+="px"),X.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),o&&"set"in o&&void 0===(n=o.set(e,n,r))||(l[t]=n)),void 0)}},css:function(e,t,n,r){var i,a,o,s=ee.camelCase(t);return t=ee.cssProps[s]||(ee.cssProps[s]=C(e.style,s)),o=ee.cssHooks[t]||ee.cssHooks[s],o&&"get"in o&&(i=o.get(e,!0,n)),void 0===i&&(i=S(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(a=parseFloat(i),n===!0||ee.isNumeric(a)?a||0:i):i}}),ee.each(["height","width"],function(e,t){ee.cssHooks[t]={get:function(e,n,r){return n?Ve.test(ee.css(e,"display"))&&0===e.offsetWidth?ee.swap(e,Ye,function(){return O(e,t,r)}):O(e,t,r):void 0},set:function(e,n,r){var i=r&&ze(e);return E(e,n,r?k(e,t,r,"border-box"===ee.css(e,"boxSizing",!1,i),i):0)}}}),ee.cssHooks.marginRight=A(X.reliableMarginRight,function(e,t){return t?ee.swap(e,{display:"inline-block"},S,[e,"marginRight"]):void 0}),ee.each({margin:"",padding:"",border:"Width"},function(e,t){ee.cssHooks[e+t]={expand:function(n){for(var r=0,i={},a="string"==typeof n?n.split(" "):[n];4>r;r++)i[e+Ae[r]+t]=a[r]||a[r-2]||a[0];return i}},qe.test(e)||(ee.cssHooks[e+t].set=E)}),ee.fn.extend({css:function(e,t){return ye(this,function(e,t,n){var r,i,a={},o=0;if(ee.isArray(t)){for(r=ze(e),i=t.length;i>o;o++)a[t[o]]=ee.css(e,t[o],!1,r);return a}return void 0!==n?ee.style(e,t,n):ee.css(e,t)},e,t,arguments.length>1)},show:function(){return j(this,!0)},hide:function(){return j(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Ce(this)?ee(this).show():ee(this).hide()})}}),ee.Tween=T,T.prototype={constructor:T,init:function(e,t,n,r,i,a){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=a||(ee.cssNumber[n]?"":"px")},cur:function(){var e=T.propHooks[this.prop];return e&&e.get?e.get(this):T.propHooks._default.get(this)},run:function(e){var t,n=T.propHooks[this.prop];return this.pos=t=this.options.duration?ee.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):T.propHooks._default.set(this),this}},T.prototype.init.prototype=T.prototype,T.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=ee.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){ee.fx.step[e.prop]?ee.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[ee.cssProps[e.prop]]||ee.cssHooks[e.prop])?ee.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},T.propHooks.scrollTop=T.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ee.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},ee.fx=T.prototype.init,ee.fx.step={};var Xe,Ge,Ze=/^(?:toggle|show|hide)$/,et=new RegExp("^(?:([+-])=|)("+Se+")([a-z%]*)$","i"),tt=/queueHooks$/,nt=[L],rt={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=et.exec(t),a=i&&i[3]||(ee.cssNumber[e]?"":"px"),o=(ee.cssNumber[e]||"px"!==a&&+r)&&et.exec(ee.css(n.elem,e)),s=1,l=20;if(o&&o[3]!==a){a=a||o[3],i=i||[],o=+r||1;do s=s||".5",o/=s,ee.style(n.elem,e,o+a);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(o=n.start=+o||+r||0,n.unit=a,n.end=i[1]?o+(i[1]+1)*i[2]:+i[2]),n}]};ee.Animation=ee.extend(N,{tweener:function(e,t){ee.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],rt[n]=rt[n]||[],rt[n].unshift(t)},prefilter:function(e,t){t?nt.unshift(e):nt.push(e)}}),ee.speed=function(e,t,n){var r=e&&"object"==typeof e?ee.extend({},e):{complete:n||!n&&t||ee.isFunction(e)&&e,duration:e,easing:n&&t||t&&!ee.isFunction(t)&&t};return r.duration=ee.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in ee.fx.speeds?ee.fx.speeds[r.duration]:ee.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){ee.isFunction(r.old)&&r.old.call(this),r.queue&&ee.dequeue(this,r.queue)},r},ee.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Ce).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=ee.isEmptyObject(e),a=ee.speed(t,n,r),o=function(){var t=N(this,ee.extend({},e),a);(i||ve.get(this,"finish"))&&t.stop(!0)};return o.finish=o,i||a.queue===!1?this.each(o):this.queue(a.queue,o)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",a=ee.timers,o=ve.get(this);if(i)o[i]&&o[i].stop&&r(o[i]);else for(i in o)o[i]&&o[i].stop&&tt.test(i)&&r(o[i]);for(i=a.length;i--;)a[i].elem!==this||null!=e&&a[i].queue!==e||(a[i].anim.stop(n),t=!1,a.splice(i,1));(t||!n)&&ee.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=ve.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],a=ee.timers,o=r?r.length:0;for(n.finish=!0,ee.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=a.length;t--;)a[t].elem===this&&a[t].queue===e&&(a[t].anim.stop(!0),a.splice(t,1));for(t=0;o>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),ee.each(["toggle","show","hide"],function(e,t){var n=ee.fn[t];ee.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(_(t,!0),e,r,i)}}),ee.each({slideDown:_("show"),slideUp:_("hide"),slideToggle:_("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){ee.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),ee.timers=[],ee.fx.tick=function(){var e,t=0,n=ee.timers;for(Xe=ee.now();t<n.length;t++)e=n[t],e()||n[t]!==e||n.splice(t--,1);n.length||ee.fx.stop(),Xe=void 0},ee.fx.timer=function(e){ee.timers.push(e),e()?ee.fx.start():ee.timers.pop()},ee.fx.interval=13,ee.fx.start=function(){Ge||(Ge=setInterval(ee.fx.tick,ee.fx.interval))},ee.fx.stop=function(){clearInterval(Ge),Ge=null},ee.fx.speeds={slow:600,fast:200,_default:400},ee.fn.delay=function(e,t){return e=ee.fx?ee.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},function(){var e=G.createElement("input"),t=G.createElement("select"),n=t.appendChild(G.createElement("option"));e.type="checkbox",X.checkOn=""!==e.value,X.optSelected=n.selected,t.disabled=!0,X.optDisabled=!n.disabled,e=G.createElement("input"),e.value="t",e.type="radio",X.radioValue="t"===e.value}();var it,at,ot=ee.expr.attrHandle;ee.fn.extend({attr:function(e,t){return ye(this,ee.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){ee.removeAttr(this,e)})}}),ee.extend({attr:function(e,t,n){var r,i,a=e.nodeType;if(e&&3!==a&&8!==a&&2!==a)return typeof e.getAttribute===ke?ee.prop(e,t,n):(1===a&&ee.isXMLDoc(e)||(t=t.toLowerCase(),r=ee.attrHooks[t]||(ee.expr.match.bool.test(t)?at:it)),void 0===n?r&&"get"in r&&null!==(i=r.get(e,t))?i:(i=ee.find.attr(e,t),null==i?void 0:i):null!==n?r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:(e.setAttribute(t,n+""),n):void ee.removeAttr(e,t))},removeAttr:function(e,t){var n,r,i=0,a=t&&t.match(de);if(a&&1===e.nodeType)for(;n=a[i++];)r=ee.propFix[n]||n,ee.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)},attrHooks:{type:{set:function(e,t){if(!X.radioValue&&"radio"===t&&ee.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}}}),at={set:function(e,t,n){return t===!1?ee.removeAttr(e,n):e.setAttribute(n,n),n}},ee.each(ee.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ot[t]||ee.find.attr;ot[t]=function(e,t,r){var i,a;return r||(a=ot[t],ot[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,ot[t]=a),i}});var st=/^(?:input|select|textarea|button)$/i;ee.fn.extend({prop:function(e,t){return ye(this,ee.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[ee.propFix[e]||e]})}}),ee.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,a,o=e.nodeType;if(e&&3!==o&&8!==o&&2!==o)return a=1!==o||!ee.isXMLDoc(e),a&&(t=ee.propFix[t]||t,i=ee.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){return e.hasAttribute("tabindex")||st.test(e.nodeName)||e.href?e.tabIndex:-1}}}}),X.optSelected||(ee.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),ee.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ee.propFix[this.toLowerCase()]=this});var lt=/[\t\r\n\f]/g;ee.fn.extend({addClass:function(e){var t,n,r,i,a,o,s="string"==typeof e&&e,l=0,u=this.length;if(ee.isFunction(e))return this.each(function(t){ee(this).addClass(e.call(this,t,this.className))});if(s)for(t=(e||"").match(de)||[];u>l;l++)if(n=this[l],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(lt," "):" ")){for(a=0;i=t[a++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");o=ee.trim(r),n.className!==o&&(n.className=o)}return this},removeClass:function(e){var t,n,r,i,a,o,s=0===arguments.length||"string"==typeof e&&e,l=0,u=this.length;if(ee.isFunction(e))return this.each(function(t){ee(this).removeClass(e.call(this,t,this.className))});if(s)for(t=(e||"").match(de)||[];u>l;l++)if(n=this[l],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(lt," "):"")){for(a=0;i=t[a++];)for(;r.indexOf(" "+i+" ")>=0;)r=r.replace(" "+i+" "," ");o=e?ee.trim(r):"",n.className!==o&&(n.className=o)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):this.each(ee.isFunction(e)?function(n){ee(this).toggleClass(e.call(this,n,this.className,t),t)}:function(){if("string"===n)for(var t,r=0,i=ee(this),a=e.match(de)||[];t=a[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else(n===ke||"boolean"===n)&&(this.className&&ve.set(this,"__className__",this.className),this.className=this.className||e===!1?"":ve.get(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(lt," ").indexOf(t)>=0)return!0;return!1}});var ut=/\r/g;ee.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=ee.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,ee(this).val()):e,null==i?i="":"number"==typeof i?i+="":ee.isArray(i)&&(i=ee.map(i,function(e){return null==e?"":e+""})),t=ee.valHooks[this.type]||ee.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return t=ee.valHooks[i.type]||ee.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(ut,""):null==n?"":n)}}}),ee.extend({valHooks:{option:{get:function(e){var t=ee.find.attr(e,"value");return null!=t?t:ee.trim(ee.text(e))}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,a="select-one"===e.type||0>i,o=a?null:[],s=a?i+1:r.length,l=0>i?s:a?i:0;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(X.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&ee.nodeName(n.parentNode,"optgroup"))){if(t=ee(n).val(),a)return t;o.push(t)}return o},set:function(e,t){for(var n,r,i=e.options,a=ee.makeArray(t),o=i.length;o--;)r=i[o],(r.selected=ee.inArray(r.value,a)>=0)&&(n=!0);return n||(e.selectedIndex=-1),a}}}}),ee.each(["radio","checkbox"],function(){ee.valHooks[this]={set:function(e,t){return ee.isArray(t)?e.checked=ee.inArray(ee(e).val(),t)>=0:void 0}},X.checkOn||(ee.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),ee.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){ee.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),ee.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var ct=ee.now(),pt=/\?/;ee.parseJSON=function(e){return JSON.parse(e+"")},ee.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{n=new DOMParser,t=n.parseFromString(e,"text/xml")}catch(r){t=void 0}return(!t||t.getElementsByTagName("parsererror").length)&&ee.error("Invalid XML: "+e),t};var ft=/#.*$/,ht=/([?&])_=[^&]*/,dt=/^(.*?):[ \t]*([^\r\n]*)$/gm,mt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,gt=/^(?:GET|HEAD)$/,yt=/^\/\//,vt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,bt={},wt={},xt="*/".concat("*"),St=t.location.href,At=vt.exec(St.toLowerCase())||[]; + +ee.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:St,type:"GET",isLocal:mt.test(At[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":xt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":ee.parseJSON,"text xml":ee.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?R(R(e,ee.ajaxSettings),t):R(ee.ajaxSettings,e)},ajaxPrefilter:$(bt),ajaxTransport:$(wt),ajax:function(e,t){function n(e,t,n,o){var l,c,y,v,w,S=t;2!==b&&(b=2,s&&clearTimeout(s),r=void 0,a=o||"",x.readyState=e>0?4:0,l=e>=200&&300>e||304===e,n&&(v=F(p,x,n)),v=U(p,v,x,l),l?(p.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(ee.lastModified[i]=w),w=x.getResponseHeader("etag"),w&&(ee.etag[i]=w)),204===e||"HEAD"===p.type?S="nocontent":304===e?S="notmodified":(S=v.state,c=v.data,y=v.error,l=!y)):(y=S,(e||!S)&&(S="error",0>e&&(e=0))),x.status=e,x.statusText=(t||S)+"",l?d.resolveWith(f,[c,S,x]):d.rejectWith(f,[x,S,y]),x.statusCode(g),g=void 0,u&&h.trigger(l?"ajaxSuccess":"ajaxError",[x,p,l?c:y]),m.fireWith(f,[x,S]),u&&(h.trigger("ajaxComplete",[x,p]),--ee.active||ee.event.trigger("ajaxStop")))}"object"==typeof e&&(t=e,e=void 0),t=t||{};var r,i,a,o,s,l,u,c,p=ee.ajaxSetup({},t),f=p.context||p,h=p.context&&(f.nodeType||f.jquery)?ee(f):ee.event,d=ee.Deferred(),m=ee.Callbacks("once memory"),g=p.statusCode||{},y={},v={},b=0,w="canceled",x={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!o)for(o={};t=dt.exec(a);)o[t[1].toLowerCase()]=t[2];t=o[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)g[t]=[g[t],e[t]];else x.always(e[x.status]);return this},abort:function(e){var t=e||w;return r&&r.abort(t),n(0,t),this}};if(d.promise(x).complete=m.add,x.success=x.done,x.error=x.fail,p.url=((e||p.url||St)+"").replace(ft,"").replace(yt,At[1]+"//"),p.type=t.method||t.type||p.method||p.type,p.dataTypes=ee.trim(p.dataType||"*").toLowerCase().match(de)||[""],null==p.crossDomain&&(l=vt.exec(p.url.toLowerCase()),p.crossDomain=!(!l||l[1]===At[1]&&l[2]===At[2]&&(l[3]||("http:"===l[1]?"80":"443"))===(At[3]||("http:"===At[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=ee.param(p.data,p.traditional)),M(bt,p,t,x),2===b)return x;u=ee.event&&p.global,u&&0===ee.active++&&ee.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!gt.test(p.type),i=p.url,p.hasContent||(p.data&&(i=p.url+=(pt.test(i)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=ht.test(i)?i.replace(ht,"$1_="+ct++):i+(pt.test(i)?"&":"?")+"_="+ct++)),p.ifModified&&(ee.lastModified[i]&&x.setRequestHeader("If-Modified-Since",ee.lastModified[i]),ee.etag[i]&&x.setRequestHeader("If-None-Match",ee.etag[i])),(p.data&&p.hasContent&&p.contentType!==!1||t.contentType)&&x.setRequestHeader("Content-Type",p.contentType),x.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+xt+"; q=0.01":""):p.accepts["*"]);for(c in p.headers)x.setRequestHeader(c,p.headers[c]);if(p.beforeSend&&(p.beforeSend.call(f,x,p)===!1||2===b))return x.abort();w="abort";for(c in{success:1,error:1,complete:1})x[c](p[c]);if(r=M(wt,p,t,x)){x.readyState=1,u&&h.trigger("ajaxSend",[x,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){x.abort("timeout")},p.timeout));try{b=1,r.send(y,n)}catch(S){if(!(2>b))throw S;n(-1,S)}}else n(-1,"No Transport");return x},getJSON:function(e,t,n){return ee.get(e,t,n,"json")},getScript:function(e,t){return ee.get(e,void 0,t,"script")}}),ee.each(["get","post"],function(e,t){ee[t]=function(e,n,r,i){return ee.isFunction(n)&&(i=i||r,r=n,n=void 0),ee.ajax({url:e,type:t,dataType:i,data:n,success:r})}}),ee._evalUrl=function(e){return ee.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},ee.fn.extend({wrapAll:function(e){var t;return ee.isFunction(e)?this.each(function(t){ee(this).wrapAll(e.call(this,t))}):(this[0]&&(t=ee(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return this.each(ee.isFunction(e)?function(t){ee(this).wrapInner(e.call(this,t))}:function(){var t=ee(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=ee.isFunction(e);return this.each(function(n){ee(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){ee.nodeName(this,"body")||ee(this).replaceWith(this.childNodes)}).end()}}),ee.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0},ee.expr.filters.visible=function(e){return!ee.expr.filters.hidden(e)};var Ct=/%20/g,Et=/\[\]$/,kt=/\r?\n/g,Ot=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;ee.param=function(e,t){var n,r=[],i=function(e,t){t=ee.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=ee.ajaxSettings&&ee.ajaxSettings.traditional),ee.isArray(e)||e.jquery&&!ee.isPlainObject(e))ee.each(e,function(){i(this.name,this.value)});else for(n in e)B(n,e[n],t,i);return r.join("&").replace(Ct,"+")},ee.fn.extend({serialize:function(){return ee.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ee.prop(this,"elements");return e?ee.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ee(this).is(":disabled")&&jt.test(this.nodeName)&&!Ot.test(e)&&(this.checked||!Ee.test(e))}).map(function(e,t){var n=ee(this).val();return null==n?null:ee.isArray(n)?ee.map(n,function(e){return{name:t.name,value:e.replace(kt,"\r\n")}}):{name:t.name,value:n.replace(kt,"\r\n")}}).get()}}),ee.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(e){}};var Tt=0,It={},_t={0:200,1223:204},Dt=ee.ajaxSettings.xhr();t.attachEvent&&t.attachEvent("onunload",function(){for(var e in It)It[e]()}),X.cors=!!Dt&&"withCredentials"in Dt,X.ajax=Dt=!!Dt,ee.ajaxTransport(function(e){var t;return X.cors||Dt&&!e.crossDomain?{send:function(n,r){var i,a=e.xhr(),o=++Tt;if(a.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(i in e.xhrFields)a[i]=e.xhrFields[i];e.mimeType&&a.overrideMimeType&&a.overrideMimeType(e.mimeType),e.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest");for(i in n)a.setRequestHeader(i,n[i]);t=function(e){return function(){t&&(delete It[o],t=a.onload=a.onerror=null,"abort"===e?a.abort():"error"===e?r(a.status,a.statusText):r(_t[a.status]||a.status,a.statusText,"string"==typeof a.responseText?{text:a.responseText}:void 0,a.getAllResponseHeaders()))}},a.onload=t(),a.onerror=t("error"),t=It[o]=t("abort");try{a.send(e.hasContent&&e.data||null)}catch(s){if(t)throw s}},abort:function(){t&&t()}}:void 0}),ee.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return ee.globalEval(e),e}}}),ee.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),ee.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(r,i){t=ee("<script>").prop({async:!0,charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&i("error"===e.type?404:200,e.type)}),G.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Lt=[],Pt=/(=)\?(?=&|$)|\?\?/;ee.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Lt.pop()||ee.expando+"_"+ct++;return this[e]=!0,e}}),ee.ajaxPrefilter("json jsonp",function(e,n,r){var i,a,o,s=e.jsonp!==!1&&(Pt.test(e.url)?"url":"string"==typeof e.data&&!(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Pt.test(e.data)&&"data");return s||"jsonp"===e.dataTypes[0]?(i=e.jsonpCallback=ee.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,s?e[s]=e[s].replace(Pt,"$1"+i):e.jsonp!==!1&&(e.url+=(pt.test(e.url)?"&":"?")+e.jsonp+"="+i),e.converters["script json"]=function(){return o||ee.error(i+" was not called"),o[0]},e.dataTypes[0]="json",a=t[i],t[i]=function(){o=arguments},r.always(function(){t[i]=a,e[i]&&(e.jsonpCallback=n.jsonpCallback,Lt.push(i)),o&&ee.isFunction(a)&&a(o[0]),o=a=void 0}),"script"):void 0}),ee.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||G;var r=se.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=ee.buildFragment([e],t,i),i&&i.length&&ee(i).remove(),ee.merge([],r.childNodes))};var Nt=ee.fn.load;ee.fn.load=function(e,t,n){if("string"!=typeof e&&Nt)return Nt.apply(this,arguments);var r,i,a,o=this,s=e.indexOf(" ");return s>=0&&(r=ee.trim(e.slice(s)),e=e.slice(0,s)),ee.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),o.length>0&&ee.ajax({url:e,type:i,dataType:"html",data:t}).done(function(e){a=arguments,o.html(r?ee("<div>").append(ee.parseHTML(e)).find(r):e)}).complete(n&&function(e,t){o.each(n,a||[e.responseText,t,e])}),this},ee.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ee.fn[t]=function(e){return this.on(t,e)}}),ee.expr.filters.animated=function(e){return ee.grep(ee.timers,function(t){return e===t.elem}).length};var $t=t.document.documentElement;ee.offset={setOffset:function(e,t,n){var r,i,a,o,s,l,u,c=ee.css(e,"position"),p=ee(e),f={};"static"===c&&(e.style.position="relative"),s=p.offset(),a=ee.css(e,"top"),l=ee.css(e,"left"),u=("absolute"===c||"fixed"===c)&&(a+l).indexOf("auto")>-1,u?(r=p.position(),o=r.top,i=r.left):(o=parseFloat(a)||0,i=parseFloat(l)||0),ee.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(f.top=t.top-s.top+o),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):p.css(f)}},ee.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){ee.offset.setOffset(this,e,t)});var t,n,r=this[0],i={top:0,left:0},a=r&&r.ownerDocument;if(a)return t=a.documentElement,ee.contains(t,r)?(typeof r.getBoundingClientRect!==ke&&(i=r.getBoundingClientRect()),n=q(a),{top:i.top+n.pageYOffset-t.clientTop,left:i.left+n.pageXOffset-t.clientLeft}):i},position:function(){if(this[0]){var e,t,n=this[0],r={top:0,left:0};return"fixed"===ee.css(n,"position")?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),ee.nodeName(e[0],"html")||(r=e.offset()),r.top+=ee.css(e[0],"borderTopWidth",!0),r.left+=ee.css(e[0],"borderLeftWidth",!0)),{top:t.top-r.top-ee.css(n,"marginTop",!0),left:t.left-r.left-ee.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||$t;e&&!ee.nodeName(e,"html")&&"static"===ee.css(e,"position");)e=e.offsetParent;return e||$t})}}),ee.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r="pageYOffset"===n;ee.fn[e]=function(i){return ye(this,function(e,i,a){var o=q(e);return void 0===a?o?o[n]:e[i]:void(o?o.scrollTo(r?t.pageXOffset:a,r?a:t.pageYOffset):e[i]=a)},e,i,arguments.length,null)}}),ee.each(["top","left"],function(e,t){ee.cssHooks[t]=A(X.pixelPosition,function(e,n){return n?(n=S(e,t),He.test(n)?ee(e).position()[t]+"px":n):void 0})}),ee.each({Height:"height",Width:"width"},function(e,t){ee.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){ee.fn[r]=function(r,i){var a=arguments.length&&(n||"boolean"!=typeof r),o=n||(r===!0||i===!0?"margin":"border");return ye(this,function(t,n,r){var i;return ee.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?ee.css(t,n,o):ee.style(t,n,r,o)},t,a?r:void 0,a,null)}})}),ee.fn.size=function(){return this.length},ee.fn.andSelf=ee.fn.addBack,"function"==typeof e&&e.amd&&e("jquery",[],function(){return ee});var Mt=t.jQuery,Rt=t.$;return ee.noConflict=function(e){return t.$===ee&&(t.$=Rt),e&&t.jQuery===ee&&(t.jQuery=Mt),ee},typeof n===ke&&(t.jQuery=t.$=ee),ee})},{}],21:[function(e,t,n){var r=e("./lib/js-yaml.js");t.exports=r},{"./lib/js-yaml.js":22}],22:[function(e,t,n){function r(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}var i=e("./js-yaml/loader"),a=e("./js-yaml/dumper");t.exports.Type=e("./js-yaml/type"),t.exports.Schema=e("./js-yaml/schema"),t.exports.FAILSAFE_SCHEMA=e("./js-yaml/schema/failsafe"),t.exports.JSON_SCHEMA=e("./js-yaml/schema/json"),t.exports.CORE_SCHEMA=e("./js-yaml/schema/core"),t.exports.DEFAULT_SAFE_SCHEMA=e("./js-yaml/schema/default_safe"),t.exports.DEFAULT_FULL_SCHEMA=e("./js-yaml/schema/default_full"),t.exports.load=i.load,t.exports.loadAll=i.loadAll,t.exports.safeLoad=i.safeLoad,t.exports.safeLoadAll=i.safeLoadAll,t.exports.dump=a.dump,t.exports.safeDump=a.safeDump,t.exports.YAMLException=e("./js-yaml/exception"),t.exports.MINIMAL_SCHEMA=e("./js-yaml/schema/failsafe"),t.exports.SAFE_SCHEMA=e("./js-yaml/schema/default_safe"),t.exports.DEFAULT_SCHEMA=e("./js-yaml/schema/default_full"),t.exports.scan=r("scan"),t.exports.parse=r("parse"),t.exports.compose=r("compose"),t.exports.addConstructor=r("addConstructor")},{"./js-yaml/dumper":24,"./js-yaml/exception":25,"./js-yaml/loader":26,"./js-yaml/schema":28,"./js-yaml/schema/core":29,"./js-yaml/schema/default_full":30,"./js-yaml/schema/default_safe":31,"./js-yaml/schema/failsafe":32,"./js-yaml/schema/json":33,"./js-yaml/type":34}],23:[function(e,t,n){function r(e){return"undefined"==typeof e||null===e}function i(e){return"object"==typeof e&&null!==e}function a(e){return Array.isArray(e)?e:r(e)?[]:[e]}function o(e,t){var n,r,i,a;if(t)for(a=Object.keys(t),n=0,r=a.length;r>n;n+=1)i=a[n],e[i]=t[i];return e}function s(e,t){var n,r="";for(n=0;t>n;n+=1)r+=e;return r}function l(e){return 0===e&&Number.NEGATIVE_INFINITY===1/e}t.exports.isNothing=r,t.exports.isObject=i,t.exports.toArray=a,t.exports.repeat=s,t.exports.isNegativeZero=l,t.exports.extend=o},{}],24:[function(e,t,n){function r(e,t){var n,r,i,a,o,s,l;if(null===t)return{};for(n={},r=Object.keys(t),i=0,a=r.length;a>i;i+=1)o=r[i],s=String(t[o]),"!!"===o.slice(0,2)&&(o="tag:yaml.org,2002:"+o.slice(2)),l=e.compiledTypeMap[o],l&&I.call(l.styleAliases,s)&&(s=l.styleAliases[s]),n[o]=s;return n}function i(e){var t,n,r;if(t=e.toString(16).toUpperCase(),255>=e)n="x",r=2;else if(65535>=e)n="u",r=4;else{if(!(4294967295>=e))throw new k("code point within a string may not be greater than 0xFFFFFFFF");n="U",r=8}return"\\"+n+E.repeat("0",r-t.length)+t}function a(e){this.schema=e.schema||O,this.indent=Math.max(1,e.indent||2),this.skipInvalid=e.skipInvalid||!1,this.flowLevel=E.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=r(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function o(e,t){for(var n,r=E.repeat(" ",t),i=0,a=-1,o="",s=e.length;s>i;)a=e.indexOf("\n",i),-1===a?(n=e.slice(i),i=s):(n=e.slice(i,a+1),i=a+1),n.length&&"\n"!==n&&(o+=r),o+=n;return o}function s(e,t){return"\n"+E.repeat(" ",e.indent*t)}function l(e,t){var n,r,i;for(n=0,r=e.implicitTypes.length;r>n;n+=1)if(i=e.implicitTypes[n],i.resolve(t))return!0;return!1}function u(e){this.source=e,this.result="",this.checkpoint=0}function c(e,t,n){var r,i,a,s,c,f,m,g,y,v,b,w,x,S,A,C,E,k,O,j,T;if(0===t.length)return void(e.dump="''");if(-1!==te.indexOf(t))return void(e.dump="'"+t+"'");for(r=!0,i=t.length?t.charCodeAt(0):0,a=P===i||P===t.charCodeAt(t.length-1),(H===i||W===i||J===i||Q===i)&&(r=!1),a?(r=!1,s=!1,c=!1):(s=!0,c=!0),f=!0,m=new u(t),g=!1,y=0,v=0,b=e.indent*n,w=80,40>b?w-=b:w=40,S=0;S<t.length;S++){if(x=t.charCodeAt(S),r){if(h(x))continue;r=!1}f&&x===U&&(f=!1),A=ee[x],C=d(x),(A||C)&&(x!==D&&x!==$&&x!==U?(s=!1,c=!1):x===D&&(g=!0,f=!1,S>0&&(E=t.charCodeAt(S-1),E===P&&(c=!1,s=!1)),s&&(k=S-y,y=S,k>v&&(v=k))),x!==$&&(f=!1),m.takeUpTo(S),m.escapeChar())}if(r&&l(e,t)&&(r=!1),O="",(s||c)&&(j=0,t.charCodeAt(t.length-1)===D&&(j+=1,t.charCodeAt(t.length-2)===D&&(j+=1)),0===j?O="-":2===j&&(O="+")),c&&w>v&&(s=!1),g||(c=!1),r)e.dump=t;else if(f)e.dump="'"+t+"'";else if(s)T=p(t,w),e.dump=">"+O+"\n"+o(T,b);else if(c)O||(t=t.replace(/\n$/,"")),e.dump="|"+O+"\n"+o(t,b);else{if(!m)throw new Error("Failed to dump scalar value");m.finish(),e.dump='"'+m.result+'"'}}function p(e,t){var n,r="",i=0,a=e.length,o=/\n+$/.exec(e);for(o&&(a=o.index+1);a>i;)n=e.indexOf("\n",i),n>a||-1===n?(r&&(r+="\n\n"),r+=f(e.slice(i,a),t),i=a):(r&&(r+="\n\n"),r+=f(e.slice(i,n),t),i=n+1);return o&&"\n"!==o[0]&&(r+=o[0]),r}function f(e,t){if(""===e)return e;for(var n,r,i,a=/[^\s] [^\s]/g,o="",s=0,l=0,u=a.exec(e);u;)n=u.index,n-l>t&&(r=s!==l?s:n,o&&(o+="\n"),i=e.slice(l,r),o+=i,l=r+1),s=n+1,u=a.exec(e);return o&&(o+="\n"),o+=l!==s&&e.length-l>t?e.slice(l,s)+"\n"+e.slice(s+1):e.slice(l)}function h(e){return _!==e&&D!==e&&L!==e&&q!==e&&Y!==e&&K!==e&&X!==e&&Z!==e&&M!==e&&F!==e&&B!==e&&N!==e&&G!==e&&V!==e&&U!==e&&$!==e&&R!==e&&z!==e&&!ee[e]&&!d(e)}function d(e){return!(e>=32&&126>=e||133===e||e>=160&&55295>=e||e>=57344&&65533>=e||e>=65536&&1114111>=e)}function m(e,t,n){var r,i,a="",o=e.tag;for(r=0,i=n.length;i>r;r+=1)w(e,t,n[r],!1,!1)&&(0!==r&&(a+=", "),a+=e.dump);e.tag=o,e.dump="["+a+"]"}function g(e,t,n,r){var i,a,o="",l=e.tag;for(i=0,a=n.length;a>i;i+=1)w(e,t+1,n[i],!0,!0)&&(r&&0===i||(o+=s(e,t)),o+="- "+e.dump);e.tag=l,e.dump=o||"[]"}function y(e,t,n){var r,i,a,o,s,l="",u=e.tag,c=Object.keys(n);for(r=0,i=c.length;i>r;r+=1)s="",0!==r&&(s+=", "),a=c[r],o=n[a],w(e,t,a,!1,!1)&&(e.dump.length>1024&&(s+="? "),s+=e.dump+": ",w(e,t,o,!1,!1)&&(s+=e.dump,l+=s));e.tag=u,e.dump="{"+l+"}"}function v(e,t,n,r){var i,a,o,l,u,c,p="",f=e.tag,h=Object.keys(n);if(e.sortKeys===!0)h.sort();else if("function"==typeof e.sortKeys)h.sort(e.sortKeys);else if(e.sortKeys)throw new k("sortKeys must be a boolean or a function");for(i=0,a=h.length;a>i;i+=1)c="",r&&0===i||(c+=s(e,t)),o=h[i],l=n[o],w(e,t+1,o,!0,!0)&&(u=null!==e.tag&&"?"!==e.tag||e.dump&&e.dump.length>1024,u&&(c+=e.dump&&D===e.dump.charCodeAt(0)?"?":"? "),c+=e.dump,u&&(c+=s(e,t)),w(e,t+1,l,!0,u)&&(c+=e.dump&&D===e.dump.charCodeAt(0)?":":": ",c+=e.dump,p+=c));e.tag=f,e.dump=p||"{}"}function b(e,t,n){var r,i,a,o,s,l;for(i=n?e.explicitTypes:e.implicitTypes,a=0,o=i.length;o>a;a+=1)if(s=i[a],(s.instanceOf||s.predicate)&&(!s.instanceOf||"object"==typeof t&&t instanceof s.instanceOf)&&(!s.predicate||s.predicate(t))){if(e.tag=n?s.tag:"?",s.represent){if(l=e.styleMap[s.tag]||s.defaultStyle,"[object Function]"===T.call(s.represent))r=s.represent(t,l);else{if(!I.call(s.represent,l))throw new k("!<"+s.tag+'> tag resolver accepts not "'+l+'" style');r=s.represent[l](t,l)}e.dump=r}return!0}return!1}function w(e,t,n,r,i){e.tag=null,e.dump=n,b(e,n,!1)||b(e,n,!0);var a=T.call(e.dump);r&&(r=0>e.flowLevel||e.flowLevel>t),(null!==e.tag&&"?"!==e.tag||2!==e.indent&&t>0)&&(i=!1);var o,s,l="[object Object]"===a||"[object Array]"===a;if(l&&(o=e.duplicates.indexOf(n),s=-1!==o),s&&e.usedDuplicates[o])e.dump="*ref_"+o;else{if(l&&s&&!e.usedDuplicates[o]&&(e.usedDuplicates[o]=!0),"[object Object]"===a)r&&0!==Object.keys(e.dump).length?(v(e,t,e.dump,i),s&&(e.dump="&ref_"+o+(0===t?"\n":"")+e.dump)):(y(e,t,e.dump),s&&(e.dump="&ref_"+o+" "+e.dump));else if("[object Array]"===a)r&&0!==e.dump.length?(g(e,t,e.dump,i),s&&(e.dump="&ref_"+o+(0===t?"\n":"")+e.dump)):(m(e,t,e.dump),s&&(e.dump="&ref_"+o+" "+e.dump));else{if("[object String]"!==a){if(e.skipInvalid)return!1;throw new k("unacceptable kind of an object to dump "+a)}"?"!==e.tag&&c(e,e.dump,t)}null!==e.tag&&"?"!==e.tag&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function x(e,t){var n,r,i=[],a=[];for(S(e,i,a),n=0,r=a.length;r>n;n+=1)t.duplicates.push(i[a[n]]);t.usedDuplicates=new Array(r)}function S(e,t,n){{var r,i,a;T.call(e)}if(null!==e&&"object"==typeof e)if(i=t.indexOf(e),-1!==i)-1===n.indexOf(i)&&n.push(i);else if(t.push(e),Array.isArray(e))for(i=0,a=e.length;a>i;i+=1)S(e[i],t,n);else for(r=Object.keys(e),i=0,a=r.length;a>i;i+=1)S(e[r[i]],t,n)}function A(e,t){t=t||{};var n=new a(t);return x(e,n),w(n,0,e,!0,!0)?n.dump+"\n":""}function C(e,t){return A(e,E.extend({schema:j},t))}var E=e("./common"),k=e("./exception"),O=e("./schema/default_full"),j=e("./schema/default_safe"),T=Object.prototype.toString,I=Object.prototype.hasOwnProperty,_=9,D=10,L=13,P=32,N=33,$=34,M=35,R=37,F=38,U=39,B=42,q=44,H=45,z=58,V=62,W=63,J=64,Y=91,K=93,Q=96,X=123,G=124,Z=125,ee={};ee[0]="\\0",ee[7]="\\a",ee[8]="\\b",ee[9]="\\t",ee[10]="\\n",ee[11]="\\v",ee[12]="\\f",ee[13]="\\r",ee[27]="\\e",ee[34]='\\"',ee[92]="\\\\",ee[133]="\\N",ee[160]="\\_",ee[8232]="\\L",ee[8233]="\\P";var te=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];u.prototype.takeUpTo=function(e){var t;if(e<this.checkpoint)throw t=new Error("position should be > checkpoint"),t.position=e,t.checkpoint=this.checkpoint,t;return this.result+=this.source.slice(this.checkpoint,e),this.checkpoint=e,this},u.prototype.escapeChar=function(){var e,t;return e=this.source.charCodeAt(this.checkpoint),t=ee[e]||i(e),this.result+=t,this.checkpoint+=1,this},u.prototype.finish=function(){this.source.length>this.checkpoint&&this.takeUpTo(this.source.length)},t.exports.dump=A,t.exports.safeDump=C},{"./common":23,"./exception":25,"./schema/default_full":30,"./schema/default_safe":31}],25:[function(e,t,n){function r(e,t){this.name="YAMLException",this.reason=e,this.mark=t,this.message=this.toString(!1)}r.prototype.toString=function(e){var t;return t="JS-YAML: "+(this.reason||"(unknown reason)"),!e&&this.mark&&(t+=" "+this.mark.toString()),t},t.exports=r},{}],26:[function(e,t,n){function r(e){return 10===e||13===e}function i(e){return 9===e||32===e}function a(e){return 9===e||32===e||10===e||13===e}function o(e){return 44===e||91===e||93===e||123===e||125===e}function s(e){var t;return e>=48&&57>=e?e-48:(t=32|e,t>=97&&102>=t?t-97+10:-1)}function l(e){return 120===e?2:117===e?4:85===e?8:0}function u(e){return e>=48&&57>=e?e-48:-1}function c(e){return 48===e?"\x00":97===e?"":98===e?"\b":116===e?" ":9===e?" ":110===e?"\n":118===e?" ":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function p(e){return 65535>=e?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}function f(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||z,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function h(e,t){return new B(t,new q(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function d(e,t){throw h(e,t)}function m(e,t){var n=h(e,t);if(!e.onWarning)throw n;e.onWarning.call(null,n)}function g(e,t,n,r){var i,a,o,s;if(n>t){if(s=e.input.slice(t,n),r)for(i=0,a=s.length;a>i;i+=1)o=s.charCodeAt(i),9===o||o>=32&&1114111>=o||d(e,"expected valid JSON character");e.result+=s}}function y(e,t,n){var r,i,a,o;for(U.isObject(n)||d(e,"cannot merge mappings; the provided source object is unacceptable"),r=Object.keys(n),a=0,o=r.length;o>a;a+=1)i=r[a],V.call(t,i)||(t[i]=n[i])}function v(e,t,n,r,i){var a,o;if(r=String(r),null===t&&(t={}),"tag:yaml.org,2002:merge"===n)if(Array.isArray(i))for(a=0,o=i.length;o>a;a+=1)y(e,t,i[a]);else y(e,t,i);else t[r]=i;return t}function b(e){var t;t=e.input.charCodeAt(e.position),10===t?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):d(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function w(e,t,n){for(var a=0,o=e.input.charCodeAt(e.position);0!==o;){for(;i(o);)o=e.input.charCodeAt(++e.position);if(t&&35===o)do o=e.input.charCodeAt(++e.position);while(10!==o&&13!==o&&0!==o);if(!r(o))break;for(b(e),o=e.input.charCodeAt(e.position),a++,e.lineIndent=0;32===o;)e.lineIndent++,o=e.input.charCodeAt(++e.position)}return-1!==n&&0!==a&&e.lineIndent<n&&m(e,"deficient indentation"),a}function x(e){var t,n=e.position;return t=e.input.charCodeAt(n),45!==t&&46!==t||e.input.charCodeAt(n+1)!==t||e.input.charCodeAt(n+2)!==t||(n+=3,t=e.input.charCodeAt(n),0!==t&&!a(t))?!1:!0}function S(e,t){1===t?e.result+=" ":t>1&&(e.result+=U.repeat("\n",t-1))}function A(e,t,n){var s,l,u,c,p,f,h,d,m,y=e.kind,v=e.result;if(m=e.input.charCodeAt(e.position),a(m)||o(m)||35===m||38===m||42===m||33===m||124===m||62===m||39===m||34===m||37===m||64===m||96===m)return!1;if((63===m||45===m)&&(l=e.input.charCodeAt(e.position+1),a(l)||n&&o(l)))return!1;for(e.kind="scalar",e.result="",u=c=e.position,p=!1;0!==m;){if(58===m){if(l=e.input.charCodeAt(e.position+1),a(l)||n&&o(l))break}else if(35===m){if(s=e.input.charCodeAt(e.position-1),a(s))break}else{if(e.position===e.lineStart&&x(e)||n&&o(m))break;if(r(m)){if(f=e.line,h=e.lineStart,d=e.lineIndent,w(e,!1,-1),e.lineIndent>=t){p=!0,m=e.input.charCodeAt(e.position);continue}e.position=c,e.line=f,e.lineStart=h,e.lineIndent=d;break}}p&&(g(e,u,c,!1),S(e,e.line-f),u=c=e.position,p=!1),i(m)||(c=e.position+1),m=e.input.charCodeAt(++e.position)}return g(e,u,c,!1),e.result?!0:(e.kind=y,e.result=v,!1)}function C(e,t){var n,i,a;if(n=e.input.charCodeAt(e.position),39!==n)return!1;for(e.kind="scalar",e.result="",e.position++,i=a=e.position;0!==(n=e.input.charCodeAt(e.position));)if(39===n){if(g(e,i,e.position,!0),n=e.input.charCodeAt(++e.position),39!==n)return!0;i=a=e.position,e.position++}else r(n)?(g(e,i,a,!0),S(e,w(e,!1,t)),i=a=e.position):e.position===e.lineStart&&x(e)?d(e,"unexpected end of the document within a single quoted scalar"):(e.position++,a=e.position);d(e,"unexpected end of the stream within a single quoted scalar")}function E(e,t){var n,i,a,o,u,c;if(c=e.input.charCodeAt(e.position),34!==c)return!1;for(e.kind="scalar",e.result="",e.position++,n=i=e.position;0!==(c=e.input.charCodeAt(e.position));){if(34===c)return g(e,n,e.position,!0),e.position++,!0;if(92===c){if(g(e,n,e.position,!0),c=e.input.charCodeAt(++e.position),r(c))w(e,!1,t);else if(256>c&&ie[c])e.result+=ae[c],e.position++;else if((u=l(c))>0){for(a=u,o=0;a>0;a--)c=e.input.charCodeAt(++e.position),(u=s(c))>=0?o=(o<<4)+u:d(e,"expected hexadecimal character");e.result+=p(o),e.position++}else d(e,"unknown escape sequence");n=i=e.position}else r(c)?(g(e,n,i,!0),S(e,w(e,!1,t)),n=i=e.position):e.position===e.lineStart&&x(e)?d(e,"unexpected end of the document within a double quoted scalar"):(e.position++,i=e.position)}d(e,"unexpected end of the stream within a double quoted scalar")}function k(e,t){var n,r,i,o,s,l,u,c,p,f,h,m=!0,g=e.tag,y=e.anchor;if(h=e.input.charCodeAt(e.position),91===h)o=93,u=!1,r=[];else{if(123!==h)return!1;o=125,u=!0,r={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=r),h=e.input.charCodeAt(++e.position);0!==h;){if(w(e,!0,t),h=e.input.charCodeAt(e.position),h===o)return e.position++,e.tag=g,e.anchor=y,e.kind=u?"mapping":"sequence",e.result=r,!0;m||d(e,"missed comma between flow collection entries"),p=c=f=null,s=l=!1,63===h&&(i=e.input.charCodeAt(e.position+1),a(i)&&(s=l=!0,e.position++,w(e,!0,t))),n=e.line,L(e,t,W,!1,!0),p=e.tag,c=e.result,w(e,!0,t),h=e.input.charCodeAt(e.position),!l&&e.line!==n||58!==h||(s=!0,h=e.input.charCodeAt(++e.position),w(e,!0,t),L(e,t,W,!1,!0),f=e.result),u?v(e,r,p,c,f):r.push(s?v(e,null,p,c,f):c),w(e,!0,t),h=e.input.charCodeAt(e.position),44===h?(m=!0,h=e.input.charCodeAt(++e.position)):m=!1}d(e,"unexpected end of the stream within a flow collection")}function O(e,t){var n,a,o,s,l=Q,c=!1,p=t,f=0,h=!1;if(s=e.input.charCodeAt(e.position),124===s)a=!1;else{if(62!==s)return!1;a=!0}for(e.kind="scalar",e.result="";0!==s;)if(s=e.input.charCodeAt(++e.position),43===s||45===s)Q===l?l=43===s?G:X:d(e,"repeat of a chomping mode identifier");else{if(!((o=u(s))>=0))break;0===o?d(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):c?d(e,"repeat of an indentation width identifier"):(p=t+o-1,c=!0)}if(i(s)){do s=e.input.charCodeAt(++e.position);while(i(s));if(35===s)do s=e.input.charCodeAt(++e.position);while(!r(s)&&0!==s)}for(;0!==s;){for(b(e),e.lineIndent=0,s=e.input.charCodeAt(e.position);(!c||e.lineIndent<p)&&32===s;)e.lineIndent++,s=e.input.charCodeAt(++e.position);if(!c&&e.lineIndent>p&&(p=e.lineIndent),r(s))f++;else{if(e.lineIndent<p){l===G?e.result+=U.repeat("\n",f):l===Q&&c&&(e.result+="\n");break}for(a?i(s)?(h=!0,e.result+=U.repeat("\n",f+1)):h?(h=!1,e.result+=U.repeat("\n",f+1)):0===f?c&&(e.result+=" "):e.result+=U.repeat("\n",f):c&&(e.result+=U.repeat("\n",f+1)),c=!0,f=0,n=e.position;!r(s)&&0!==s;)s=e.input.charCodeAt(++e.position);g(e,n,e.position,!1)}}return!0}function j(e,t){var n,r,i,o=e.tag,s=e.anchor,l=[],u=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=l),i=e.input.charCodeAt(e.position);0!==i&&45===i&&(r=e.input.charCodeAt(e.position+1),a(r));)if(u=!0,e.position++,w(e,!0,-1)&&e.lineIndent<=t)l.push(null),i=e.input.charCodeAt(e.position);else if(n=e.line,L(e,t,Y,!1,!0),l.push(e.result),w(e,!0,-1),i=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==i)d(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break;return u?(e.tag=o,e.anchor=s,e.kind="sequence",e.result=l,!0):!1}function T(e,t,n){var r,o,s,l,u=e.tag,c=e.anchor,p={},f=null,h=null,m=null,g=!1,y=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=p),l=e.input.charCodeAt(e.position);0!==l;){if(r=e.input.charCodeAt(e.position+1),s=e.line,63!==l&&58!==l||!a(r)){if(!L(e,n,J,!1,!0))break;if(e.line===s){for(l=e.input.charCodeAt(e.position);i(l);)l=e.input.charCodeAt(++e.position);if(58===l)l=e.input.charCodeAt(++e.position),a(l)||d(e,"a whitespace character is expected after the key-value separator within a block mapping"),g&&(v(e,p,f,h,null),f=h=m=null),y=!0,g=!1,o=!1,f=e.tag,h=e.result;else{if(!y)return e.tag=u,e.anchor=c,!0;d(e,"can not read an implicit mapping pair; a colon is missed")}}else{if(!y)return e.tag=u,e.anchor=c,!0;d(e,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===l?(g&&(v(e,p,f,h,null),f=h=m=null),y=!0,g=!0,o=!0):g?(g=!1,o=!0):d(e,"incomplete explicit mapping pair; a key node is missed"),e.position+=1,l=r;if((e.line===s||e.lineIndent>t)&&(L(e,t,K,!0,o)&&(g?h=e.result:m=e.result),g||(v(e,p,f,h,m),f=h=m=null),w(e,!0,-1),l=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==l)d(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return g&&v(e,p,f,h,null),y&&(e.tag=u,e.anchor=c,e.kind="mapping",e.result=p),y}function I(e){var t,n,r,i,o=!1,s=!1;if(i=e.input.charCodeAt(e.position),33!==i)return!1;if(null!==e.tag&&d(e,"duplication of a tag property"),i=e.input.charCodeAt(++e.position),60===i?(o=!0,i=e.input.charCodeAt(++e.position)):33===i?(s=!0,n="!!",i=e.input.charCodeAt(++e.position)):n="!",t=e.position,o){do i=e.input.charCodeAt(++e.position);while(0!==i&&62!==i);e.position<e.length?(r=e.input.slice(t,e.position),i=e.input.charCodeAt(++e.position)):d(e,"unexpected end of the stream within a verbatim tag")}else{for(;0!==i&&!a(i);)33===i&&(s?d(e,"tag suffix cannot contain exclamation marks"):(n=e.input.slice(t-1,e.position+1),ne.test(n)||d(e,"named tag handle cannot contain such characters"),s=!0,t=e.position+1)),i=e.input.charCodeAt(++e.position);r=e.input.slice(t,e.position),te.test(r)&&d(e,"tag suffix cannot contain flow indicator characters")}return r&&!re.test(r)&&d(e,"tag name cannot contain such characters: "+r),o?e.tag=r:V.call(e.tagMap,n)?e.tag=e.tagMap[n]+r:"!"===n?e.tag="!"+r:"!!"===n?e.tag="tag:yaml.org,2002:"+r:d(e,'undeclared tag handle "'+n+'"'), +!0}function _(e){var t,n;if(n=e.input.charCodeAt(e.position),38!==n)return!1;for(null!==e.anchor&&d(e,"duplication of an anchor property"),n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!a(n)&&!o(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&d(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function D(e){{var t,n,r;e.length,e.input}if(r=e.input.charCodeAt(e.position),42!==r)return!1;for(r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!a(r)&&!o(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&d(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(n)||d(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],w(e,!0,-1),!0}function L(e,t,n,r,i){var a,o,s,l,u,c,p,f,h=1,g=!1,y=!1;if(e.tag=null,e.anchor=null,e.kind=null,e.result=null,a=o=s=K===n||Y===n,r&&w(e,!0,-1)&&(g=!0,e.lineIndent>t?h=1:e.lineIndent===t?h=0:e.lineIndent<t&&(h=-1)),1===h)for(;I(e)||_(e);)w(e,!0,-1)?(g=!0,s=a,e.lineIndent>t?h=1:e.lineIndent===t?h=0:e.lineIndent<t&&(h=-1)):s=!1;if(s&&(s=g||i),(1===h||K===n)&&(p=W===n||J===n?t:t+1,f=e.position-e.lineStart,1===h?s&&(j(e,f)||T(e,f,p))||k(e,p)?y=!0:(o&&O(e,p)||C(e,p)||E(e,p)?y=!0:D(e)?(y=!0,(null!==e.tag||null!==e.anchor)&&d(e,"alias node should not have any properties")):A(e,p,W===n)&&(y=!0,null===e.tag&&(e.tag="?")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===h&&(y=s&&j(e,f))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(l=0,u=e.implicitTypes.length;u>l;l+=1)if(c=e.implicitTypes[l],c.resolve(e.result)){e.result=c.construct(e.result),e.tag=c.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else V.call(e.typeMap,e.tag)?(c=e.typeMap[e.tag],null!==e.result&&c.kind!==e.kind&&d(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+c.kind+'", not "'+e.kind+'"'),c.resolve(e.result)?(e.result=c.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):d(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):m(e,"unknown tag !<"+e.tag+">");return null!==e.tag||null!==e.anchor||y}function P(e){var t,n,o,s,l=e.position,u=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(s=e.input.charCodeAt(e.position))&&(w(e,!0,-1),s=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==s));){for(u=!0,s=e.input.charCodeAt(++e.position),t=e.position;0!==s&&!a(s);)s=e.input.charCodeAt(++e.position);for(n=e.input.slice(t,e.position),o=[],n.length<1&&d(e,"directive name must not be less than one character in length");0!==s;){for(;i(s);)s=e.input.charCodeAt(++e.position);if(35===s){do s=e.input.charCodeAt(++e.position);while(0!==s&&!r(s));break}if(r(s))break;for(t=e.position;0!==s&&!a(s);)s=e.input.charCodeAt(++e.position);o.push(e.input.slice(t,e.position))}0!==s&&b(e),V.call(se,n)?se[n](e,n,o):m(e,'unknown document directive "'+n+'"')}return w(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,w(e,!0,-1)):u&&d(e,"directives end mark is expected"),L(e,e.lineIndent-1,K,!1,!0),w(e,!0,-1),e.checkLineBreaks&&ee.test(e.input.slice(l,e.position))&&m(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&x(e)?void(46===e.input.charCodeAt(e.position)&&(e.position+=3,w(e,!0,-1))):void(e.position<e.length-1&&d(e,"end of the stream or a document separator is expected"))}function N(e,t){e=String(e),t=t||{},0!==e.length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+="\n"),65279===e.charCodeAt(0)&&(e=e.slice(1)));var n=new f(e,t);for(Z.test(n.input)&&d(n,"the stream contains non-printable characters"),n.input+="\x00";32===n.input.charCodeAt(n.position);)n.lineIndent+=1,n.position+=1;for(;n.position<n.length-1;)P(n);return n.documents}function $(e,t,n){var r,i,a=N(e,n);for(r=0,i=a.length;i>r;r+=1)t(a[r])}function M(e,t){var n=N(e,t);if(0===n.length)return void 0;if(1===n.length)return n[0];throw new B("expected a single document in the stream, but found more")}function R(e,t,n){$(e,t,U.extend({schema:H},n))}function F(e,t){return M(e,U.extend({schema:H},t))}for(var U=e("./common"),B=e("./exception"),q=e("./mark"),H=e("./schema/default_safe"),z=e("./schema/default_full"),V=Object.prototype.hasOwnProperty,W=1,J=2,Y=3,K=4,Q=1,X=2,G=3,Z=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,ee=/[\x85\u2028\u2029]/,te=/[,\[\]\{\}]/,ne=/^(?:!|!!|![a-z\-]+!)$/i,re=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i,ie=new Array(256),ae=new Array(256),oe=0;256>oe;oe++)ie[oe]=c(oe)?1:0,ae[oe]=c(oe);var se={YAML:function(e,t,n){var r,i,a;null!==e.version&&d(e,"duplication of %YAML directive"),1!==n.length&&d(e,"YAML directive accepts exactly one argument"),r=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),null===r&&d(e,"ill-formed argument of the YAML directive"),i=parseInt(r[1],10),a=parseInt(r[2],10),1!==i&&d(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=2>a,1!==a&&2!==a&&m(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var r,i;2!==n.length&&d(e,"TAG directive accepts exactly two arguments"),r=n[0],i=n[1],ne.test(r)||d(e,"ill-formed tag handle (first argument) of the TAG directive"),V.call(e.tagMap,r)&&d(e,'there is a previously declared suffix for "'+r+'" tag handle'),re.test(i)||d(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[r]=i}};t.exports.loadAll=$,t.exports.load=M,t.exports.safeLoadAll=R,t.exports.safeLoad=F},{"./common":23,"./exception":25,"./mark":27,"./schema/default_full":30,"./schema/default_safe":31}],27:[function(e,t,n){function r(e,t,n,r,i){this.name=e,this.buffer=t,this.position=n,this.line=r,this.column=i}var i=e("./common");r.prototype.getSnippet=function(e,t){var n,r,a,o,s;if(!this.buffer)return null;for(e=e||4,t=t||75,n="",r=this.position;r>0&&-1==="\x00\r\n…\u2028\u2029".indexOf(this.buffer.charAt(r-1));)if(r-=1,this.position-r>t/2-1){n=" ... ",r+=5;break}for(a="",o=this.position;o<this.buffer.length&&-1==="\x00\r\n…\u2028\u2029".indexOf(this.buffer.charAt(o));)if(o+=1,o-this.position>t/2-1){a=" ... ",o-=5;break}return s=this.buffer.slice(r,o),i.repeat(" ",e)+n+s+a+"\n"+i.repeat(" ",e+this.position-r+n.length)+"^"},r.prototype.toString=function(e){var t,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(n+=":\n"+t)),n},t.exports=r},{"./common":23}],28:[function(e,t,n){function r(e,t,n){var i=[];return e.include.forEach(function(e){n=r(e,t,n)}),e[t].forEach(function(e){n.forEach(function(t,n){t.tag===e.tag&&i.push(n)}),n.push(e)}),n.filter(function(e,t){return-1===i.indexOf(t)})}function i(){function e(e){r[e.tag]=e}var t,n,r={};for(t=0,n=arguments.length;n>t;t+=1)arguments[t].forEach(e);return r}function a(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new s("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=r(this,"implicit",[]),this.compiledExplicit=r(this,"explicit",[]),this.compiledTypeMap=i(this.compiledImplicit,this.compiledExplicit)}var o=e("./common"),s=e("./exception"),l=e("./type");a.DEFAULT=null,a.create=function(){var e,t;switch(arguments.length){case 1:e=a.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new s("Wrong number of arguments for Schema.create function")}if(e=o.toArray(e),t=o.toArray(t),!e.every(function(e){return e instanceof a}))throw new s("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every(function(e){return e instanceof l}))throw new s("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new a({include:e,explicit:t})},t.exports=a},{"./common":23,"./exception":25,"./type":34}],29:[function(e,t,n){var r=e("../schema");t.exports=new r({include:[e("./json")]})},{"../schema":28,"./json":33}],30:[function(e,t,n){var r=e("../schema");t.exports=r.DEFAULT=new r({include:[e("./default_safe")],explicit:[e("../type/js/undefined"),e("../type/js/regexp"),e("../type/js/function")]})},{"../schema":28,"../type/js/function":39,"../type/js/regexp":40,"../type/js/undefined":41,"./default_safe":31}],31:[function(e,t,n){var r=e("../schema");t.exports=new r({include:[e("./core")],implicit:[e("../type/timestamp"),e("../type/merge")],explicit:[e("../type/binary"),e("../type/omap"),e("../type/pairs"),e("../type/set")]})},{"../schema":28,"../type/binary":35,"../type/merge":43,"../type/omap":45,"../type/pairs":46,"../type/set":48,"../type/timestamp":50,"./core":29}],32:[function(e,t,n){var r=e("../schema");t.exports=new r({explicit:[e("../type/str"),e("../type/seq"),e("../type/map")]})},{"../schema":28,"../type/map":42,"../type/seq":47,"../type/str":49}],33:[function(e,t,n){var r=e("../schema");t.exports=new r({include:[e("./failsafe")],implicit:[e("../type/null"),e("../type/bool"),e("../type/int"),e("../type/float")]})},{"../schema":28,"../type/bool":36,"../type/float":37,"../type/int":38,"../type/null":44,"./failsafe":32}],34:[function(e,t,n){function r(e){var t={};return null!==e&&Object.keys(e).forEach(function(n){e[n].forEach(function(e){t[String(e)]=n})}),t}function i(e,t){if(t=t||{},Object.keys(t).forEach(function(t){if(-1===o.indexOf(t))throw new a('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=r(t.styleAliases||null),-1===s.indexOf(this.kind))throw new a('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var a=e("./exception"),o=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],s=["scalar","sequence","mapping"];t.exports=i},{"./exception":25}],35:[function(e,t,n){function r(e){if(null===e)return!1;var t,n,r=0,i=e.length,a=u;for(n=0;i>n;n++)if(t=a.indexOf(e.charAt(n)),!(t>64)){if(0>t)return!1;r+=6}return r%8===0}function i(e){var t,n,r=e.replace(/[\r\n=]/g,""),i=r.length,a=u,o=0,l=[];for(t=0;i>t;t++)t%4===0&&t&&(l.push(o>>16&255),l.push(o>>8&255),l.push(255&o)),o=o<<6|a.indexOf(r.charAt(t));return n=i%4*6,0===n?(l.push(o>>16&255),l.push(o>>8&255),l.push(255&o)):18===n?(l.push(o>>10&255),l.push(o>>2&255)):12===n&&l.push(o>>4&255),s?new s(l):l}function a(e){var t,n,r="",i=0,a=e.length,o=u;for(t=0;a>t;t++)t%3===0&&t&&(r+=o[i>>18&63],r+=o[i>>12&63],r+=o[i>>6&63],r+=o[63&i]),i=(i<<8)+e[t];return n=a%3,0===n?(r+=o[i>>18&63],r+=o[i>>12&63],r+=o[i>>6&63],r+=o[63&i]):2===n?(r+=o[i>>10&63],r+=o[i>>4&63],r+=o[i<<2&63],r+=o[64]):1===n&&(r+=o[i>>2&63],r+=o[i<<4&63],r+=o[64],r+=o[64]),r}function o(e){return s&&s.isBuffer(e)}var s=e("buffer").Buffer,l=e("../type"),u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";t.exports=new l("tag:yaml.org,2002:binary",{kind:"scalar",resolve:r,construct:i,predicate:o,represent:a})},{"../type":34,buffer:12}],36:[function(e,t,n){function r(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)}function i(e){return"true"===e||"True"===e||"TRUE"===e}function a(e){return"[object Boolean]"===Object.prototype.toString.call(e)}var o=e("../type");t.exports=new o("tag:yaml.org,2002:bool",{kind:"scalar",resolve:r,construct:i,predicate:a,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},{"../type":34}],37:[function(e,t,n){function r(e){if(null===e)return!1;return u.test(e)?!0:!1}function i(e){var t,n,r,i;return t=e.replace(/_/g,"").toLowerCase(),n="-"===t[0]?-1:1,i=[],0<="+-".indexOf(t[0])&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?0/0:0<=t.indexOf(":")?(t.split(":").forEach(function(e){i.unshift(parseFloat(e,10))}),t=0,r=1,i.forEach(function(e){t+=e*r,r*=60}),n*t):n*parseFloat(t,10)}function a(e,t){if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(s.isNegativeZero(e))return"-0.0";return e.toString(10)}function o(e){return"[object Number]"===Object.prototype.toString.call(e)&&(0!==e%1||s.isNegativeZero(e))}var s=e("../common"),l=e("../type"),u=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)\\.[0-9_]*(?:[eE][-+][0-9]+)?|\\.[0-9_]+(?:[eE][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");t.exports=new l("tag:yaml.org,2002:float",{kind:"scalar",resolve:r,construct:i,predicate:o,represent:a,defaultStyle:"lowercase"})},{"../common":23,"../type":34}],38:[function(e,t,n){function r(e){return e>=48&&57>=e||e>=65&&70>=e||e>=97&&102>=e}function i(e){return e>=48&&55>=e}function a(e){return e>=48&&57>=e}function o(e){if(null===e)return!1;var t,n=e.length,o=0,s=!1;if(!n)return!1;if(t=e[o],("-"===t||"+"===t)&&(t=e[++o]),"0"===t){if(o+1===n)return!0;if(t=e[++o],"b"===t){for(o++;n>o;o++)if(t=e[o],"_"!==t){if("0"!==t&&"1"!==t)return!1;s=!0}return s}if("x"===t){for(o++;n>o;o++)if(t=e[o],"_"!==t){if(!r(e.charCodeAt(o)))return!1;s=!0}return s}for(;n>o;o++)if(t=e[o],"_"!==t){if(!i(e.charCodeAt(o)))return!1;s=!0}return s}for(;n>o;o++)if(t=e[o],"_"!==t){if(":"===t)break;if(!a(e.charCodeAt(o)))return!1;s=!0}return s?":"!==t?!0:/^(:[0-5]?[0-9])+$/.test(e.slice(o)):!1}function s(e){var t,n,r=e,i=1,a=[];return-1!==r.indexOf("_")&&(r=r.replace(/_/g,"")),t=r[0],("-"===t||"+"===t)&&("-"===t&&(i=-1),r=r.slice(1),t=r[0]),"0"===r?0:"0"===t?"b"===r[1]?i*parseInt(r.slice(2),2):"x"===r[1]?i*parseInt(r,16):i*parseInt(r,8):-1!==r.indexOf(":")?(r.split(":").forEach(function(e){a.unshift(parseInt(e,10))}),r=0,n=1,a.forEach(function(e){r+=e*n,n*=60}),i*r):i*parseInt(r,10)}function l(e){return"[object Number]"===Object.prototype.toString.call(e)&&0===e%1&&!u.isNegativeZero(e)}var u=e("../common"),c=e("../type");t.exports=new c("tag:yaml.org,2002:int",{kind:"scalar",resolve:o,construct:s,predicate:l,represent:{binary:function(e){return"0b"+e.toString(2)},octal:function(e){return"0"+e.toString(8)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return"0x"+e.toString(16).toUpperCase()}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},{"../common":23,"../type":34}],39:[function(e,t,n){function r(e){if(null===e)return!1;try{var t="("+e+")",n=s.parse(t,{range:!0});return"Program"!==n.type||1!==n.body.length||"ExpressionStatement"!==n.body[0].type||"FunctionExpression"!==n.body[0].expression.type?!1:!0}catch(r){return!1}}function i(e){var t,n="("+e+")",r=s.parse(n,{range:!0}),i=[];if("Program"!==r.type||1!==r.body.length||"ExpressionStatement"!==r.body[0].type||"FunctionExpression"!==r.body[0].expression.type)throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(e){i.push(e.name)}),t=r.body[0].expression.body.range,new Function(i,n.slice(t[0]+1,t[1]-1))}function a(e){return e.toString()}function o(e){return"[object Function]"===Object.prototype.toString.call(e)}var s;try{s=e("esprima")}catch(l){"undefined"!=typeof window&&(s=window.esprima)}var u=e("../../type");t.exports=new u("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:r,construct:i,predicate:o,represent:a})},{"../../type":34,esprima:51}],40:[function(e,t,n){function r(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,n=/\/([gim]*)$/.exec(e),r="";if("/"===t[0]){if(n&&(r=n[1]),r.length>3)return!1;if("/"!==t[t.length-r.length-1])return!1;t=t.slice(1,t.length-r.length-1)}try{{new RegExp(t,r)}return!0}catch(i){return!1}}function i(e){var t=e,n=/\/([gim]*)$/.exec(e),r="";return"/"===t[0]&&(n&&(r=n[1]),t=t.slice(1,t.length-r.length-1)),new RegExp(t,r)}function a(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function o(e){return"[object RegExp]"===Object.prototype.toString.call(e)}var s=e("../../type");t.exports=new s("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:r,construct:i,predicate:o,represent:a})},{"../../type":34}],41:[function(e,t,n){function r(){return!0}function i(){return void 0}function a(){return""}function o(e){return"undefined"==typeof e}var s=e("../../type");t.exports=new s("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:r,construct:i,predicate:o,represent:a})},{"../../type":34}],42:[function(e,t,n){var r=e("../type");t.exports=new r("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},{"../type":34}],43:[function(e,t,n){function r(e){return"<<"===e||null===e}var i=e("../type");t.exports=new i("tag:yaml.org,2002:merge",{kind:"scalar",resolve:r})},{"../type":34}],44:[function(e,t,n){function r(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)}function i(){return null}function a(e){return null===e}var o=e("../type");t.exports=new o("tag:yaml.org,2002:null",{kind:"scalar",resolve:r,construct:i,predicate:a,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},{"../type":34}],45:[function(e,t,n){function r(e){if(null===e)return!0;var t,n,r,i,a,l=[],u=e;for(t=0,n=u.length;n>t;t+=1){if(r=u[t],a=!1,"[object Object]"!==s.call(r))return!1;for(i in r)if(o.call(r,i)){if(a)return!1;a=!0}if(!a)return!1;if(-1!==l.indexOf(i))return!1;l.push(i)}return!0}function i(e){return null!==e?e:[]}var a=e("../type"),o=Object.prototype.hasOwnProperty,s=Object.prototype.toString;t.exports=new a("tag:yaml.org,2002:omap",{kind:"sequence",resolve:r,construct:i})},{"../type":34}],46:[function(e,t,n){function r(e){if(null===e)return!0;var t,n,r,i,a,s=e;for(a=new Array(s.length),t=0,n=s.length;n>t;t+=1){if(r=s[t],"[object Object]"!==o.call(r))return!1;if(i=Object.keys(r),1!==i.length)return!1;a[t]=[i[0],r[i[0]]]}return!0}function i(e){if(null===e)return[];var t,n,r,i,a,o=e;for(a=new Array(o.length),t=0,n=o.length;n>t;t+=1)r=o[t],i=Object.keys(r),a[t]=[i[0],r[i[0]]];return a}var a=e("../type"),o=Object.prototype.toString;t.exports=new a("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:r,construct:i})},{"../type":34}],47:[function(e,t,n){var r=e("../type");t.exports=new r("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}})},{"../type":34}],48:[function(e,t,n){function r(e){if(null===e)return!0;var t,n=e;for(t in n)if(o.call(n,t)&&null!==n[t])return!1;return!0}function i(e){return null!==e?e:{}}var a=e("../type"),o=Object.prototype.hasOwnProperty;t.exports=new a("tag:yaml.org,2002:set",{kind:"mapping",resolve:r,construct:i})},{"../type":34}],49:[function(e,t,n){var r=e("../type");t.exports=new r("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}})},{"../type":34}],50:[function(e,t,n){function r(e){if(null===e)return!1;var t;return t=s.exec(e),null===t?!1:!0}function i(e){var t,n,r,i,a,o,l,u,c,p,f=0,h=null;if(t=s.exec(e),null===t)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,i=+t[3],!t[4])return new Date(Date.UTC(n,r,i));if(a=+t[4],o=+t[5],l=+t[6],t[7]){for(f=t[7].slice(0,3);f.length<3;)f+="0";f=+f}return t[9]&&(u=+t[10],c=+(t[11]||0),h=6e4*(60*u+c),"-"===t[9]&&(h=-h)),p=new Date(Date.UTC(n,r,i,a,o,l,f)),h&&p.setTime(p.getTime()-h),p}function a(e){return e.toISOString()}var o=e("../type"),s=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?)?$");t.exports=new o("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:r,construct:i,instanceOf:Date,represent:a})},{"../type":34}],51:[function(t,n,r){!function(t,n){"function"==typeof e&&e.amd?e(["exports"],n):n("undefined"!=typeof r?r:t.esprima={})}(this,function(e){function t(e,t){if(!e)throw new Error("ASSERT: "+t)}function n(e){return e>=48&&57>=e}function r(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function i(e){return"01234567".indexOf(e)>=0}function a(e){var t="0"!==e,n="01234567".indexOf(e);return dn>nn&&i(Zt[nn])&&(t=!0,n=8*n+"01234567".indexOf(Zt[nn++]),"0123".indexOf(e)>=0&&dn>nn&&i(Zt[nn])&&(n=8*n+"01234567".indexOf(Zt[nn++]))),{code:n,octal:t}}function o(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function s(e){return 10===e||13===e||8232===e||8233===e}function l(e){return 36===e||95===e||e>=65&&90>=e||e>=97&&122>=e||92===e||e>=128&&Gt.NonAsciiIdentifierStart.test(String.fromCharCode(e))}function u(e){return 36===e||95===e||e>=65&&90>=e||e>=97&&122>=e||e>=48&&57>=e||92===e||e>=128&&Gt.NonAsciiIdentifierPart.test(String.fromCharCode(e))}function c(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}}function p(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}}function f(e){return"eval"===e||"arguments"===e}function h(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function d(e,n,r,i,a){var o;t("number"==typeof r,"Comment must have valid position"),gn.lastCommentStart=r,o={type:e,value:n},yn.range&&(o.range=[r,i]),yn.loc&&(o.loc=a),yn.comments.push(o),yn.attachComment&&(yn.leadingComments.push(o),yn.trailingComments.push(o))}function m(e){var t,n,r,i;for(t=nn-e,n={start:{line:rn,column:nn-an-e}};dn>nn;)if(r=Zt.charCodeAt(nn),++nn,s(r))return on=!0,yn.comments&&(i=Zt.slice(t+e,nn-1),n.end={line:rn,column:nn-an-1},d("Line",i,t,nn-1,n)),13===r&&10===Zt.charCodeAt(nn)&&++nn,++rn,void(an=nn);yn.comments&&(i=Zt.slice(t+e,nn),n.end={line:rn,column:nn-an},d("Line",i,t,nn,n))}function g(){var e,t,n,r;for(yn.comments&&(e=nn-2,t={start:{line:rn,column:nn-an-2}});dn>nn;)if(n=Zt.charCodeAt(nn),s(n))13===n&&10===Zt.charCodeAt(nn+1)&&++nn,on=!0,++rn,++nn,an=nn;else if(42===n){if(47===Zt.charCodeAt(nn+1))return++nn,++nn,void(yn.comments&&(r=Zt.slice(e+2,nn-2),t.end={line:rn,column:nn-an},d("Block",r,e,nn,t)));++nn}else++nn;yn.comments&&(t.end={line:rn,column:nn-an},r=Zt.slice(e+2,nn),d("Block",r,e,nn,t)),Z()}function y(){var e,t;for(on=!1,t=0===nn;dn>nn;)if(e=Zt.charCodeAt(nn),o(e))++nn;else if(s(e))on=!0,++nn,13===e&&10===Zt.charCodeAt(nn)&&++nn,++rn,an=nn,t=!0;else if(47===e)if(e=Zt.charCodeAt(nn+1),47===e)++nn,++nn,m(2),t=!0;else{if(42!==e)break;++nn,++nn,g()}else if(t&&45===e){if(45!==Zt.charCodeAt(nn+1)||62!==Zt.charCodeAt(nn+2))break;nn+=3,m(3)}else{if(60!==e)break;if("!--"!==Zt.slice(nn+1,nn+4))break;++nn,++nn,++nn,++nn,m(4)}}function v(e){var t,n,i,a=0;for(n="u"===e?4:2,t=0;n>t;++t){if(!(dn>nn&&r(Zt[nn])))return"";i=Zt[nn++],a=16*a+"0123456789abcdef".indexOf(i.toLowerCase())}return String.fromCharCode(a)}function b(){var e,t,n,i;for(e=Zt[nn],t=0,"}"===e&&G();dn>nn&&(e=Zt[nn++],r(e));)t=16*t+"0123456789abcdef".indexOf(e.toLowerCase());return(t>1114111||"}"!==e)&&G(),65535>=t?String.fromCharCode(t):(n=(t-65536>>10)+55296,i=(t-65536&1023)+56320,String.fromCharCode(n,i))}function w(){var e,t;for(e=Zt.charCodeAt(nn++),t=String.fromCharCode(e),92===e&&(117!==Zt.charCodeAt(nn)&&G(),++nn,e=v("u"),e&&"\\"!==e&&l(e.charCodeAt(0))||G(),t=e);dn>nn&&(e=Zt.charCodeAt(nn),u(e));)++nn,t+=String.fromCharCode(e),92===e&&(t=t.substr(0,t.length-1),117!==Zt.charCodeAt(nn)&&G(),++nn,e=v("u"),e&&"\\"!==e&&u(e.charCodeAt(0))||G(),t+=e);return t}function x(){var e,t;for(e=nn++;dn>nn;){if(t=Zt.charCodeAt(nn),92===t)return nn=e,w();if(!u(t))break;++nn}return Zt.slice(e,nn)}function S(){var e,t,n;return e=nn,t=92===Zt.charCodeAt(nn)?w():x(),n=1===t.length?Wt.Identifier:h(t)?Wt.Keyword:"null"===t?Wt.NullLiteral:"true"===t||"false"===t?Wt.BooleanLiteral:Wt.Identifier,{type:n,value:t,lineNumber:rn,lineStart:an,start:e,end:nn}}function A(){var e,t;switch(e={type:Wt.Punctuator,value:"",lineNumber:rn,lineStart:an,start:nn,end:nn},t=Zt[nn]){case"(":yn.tokenize&&(yn.openParenToken=yn.tokens.length),++nn;break;case"{":yn.tokenize&&(yn.openCurlyToken=yn.tokens.length),gn.curlyStack.push("{"),++nn;break;case".":++nn,"."===Zt[nn]&&"."===Zt[nn+1]&&(nn+=2,t="...");break;case"}":++nn,gn.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++nn;break;default:t=Zt.substr(nn,4),">>>="===t?nn+=4:(t=t.substr(0,3),"==="===t||"!=="===t||">>>"===t||"<<="===t||">>="===t?nn+=3:(t=t.substr(0,2),"&&"===t||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t?nn+=2:(t=Zt[nn],"<>=!+-*%&|^/".indexOf(t)>=0&&++nn)))}return nn===e.start&&G(),e.end=nn,e.value=t,e}function C(e){for(var t="";dn>nn&&r(Zt[nn]);)t+=Zt[nn++];return 0===t.length&&G(),l(Zt.charCodeAt(nn))&&G(),{type:Wt.NumericLiteral,value:parseInt("0x"+t,16),lineNumber:rn,lineStart:an,start:e,end:nn}}function E(e){var t,r;for(r="";dn>nn&&(t=Zt[nn],"0"===t||"1"===t);)r+=Zt[nn++];return 0===r.length&&G(),dn>nn&&(t=Zt.charCodeAt(nn),(l(t)||n(t))&&G()),{type:Wt.NumericLiteral,value:parseInt(r,2),lineNumber:rn,lineStart:an,start:e,end:nn}}function k(e,t){var r,a;for(i(e)?(a=!0,r="0"+Zt[nn++]):(a=!1,++nn,r="");dn>nn&&i(Zt[nn]);)r+=Zt[nn++];return a||0!==r.length||G(),(l(Zt.charCodeAt(nn))||n(Zt.charCodeAt(nn)))&&G(),{type:Wt.NumericLiteral,value:parseInt(r,8),octal:a,lineNumber:rn,lineStart:an,start:t,end:nn}}function O(){var e,t;for(e=nn+1;dn>e;++e){if(t=Zt[e],"8"===t||"9"===t)return!1;if(!i(t))return!0}return!0}function j(){var e,r,a;if(a=Zt[nn],t(n(a.charCodeAt(0))||"."===a,"Numeric literal must start with a decimal digit or a decimal point"),r=nn,e="","."!==a){if(e=Zt[nn++],a=Zt[nn],"0"===e){if("x"===a||"X"===a)return++nn,C(r);if("b"===a||"B"===a)return++nn,E(r);if("o"===a||"O"===a)return k(a,r);if(i(a)&&O())return k(a,r)}for(;n(Zt.charCodeAt(nn));)e+=Zt[nn++];a=Zt[nn]}if("."===a){for(e+=Zt[nn++];n(Zt.charCodeAt(nn));)e+=Zt[nn++];a=Zt[nn]}if("e"===a||"E"===a)if(e+=Zt[nn++],a=Zt[nn],("+"===a||"-"===a)&&(e+=Zt[nn++]),n(Zt.charCodeAt(nn)))for(;n(Zt.charCodeAt(nn));)e+=Zt[nn++];else G();return l(Zt.charCodeAt(nn))&&G(),{type:Wt.NumericLiteral,value:parseFloat(e),lineNumber:rn,lineStart:an,start:r,end:nn}}function T(){var e,n,r,o,l,u="",c=!1;for(e=Zt[nn],t("'"===e||'"'===e,"String literal must starts with a quote"),n=nn,++nn;dn>nn;){if(r=Zt[nn++],r===e){e="";break}if("\\"===r)if(r=Zt[nn++],r&&s(r.charCodeAt(0)))++rn,"\r"===r&&"\n"===Zt[nn]&&++nn,an=nn;else switch(r){case"u":case"x":if("{"===Zt[nn])++nn,u+=b();else{if(o=v(r),!o)throw G();u+=o}break;case"n":u+="\n";break;case"r":u+="\r";break;case"t":u+=" ";break;case"b":u+="\b";break;case"f":u+="\f";break;case"v":u+=" ";break;case"8":case"9":throw G();default:i(r)?(l=a(r),c=l.octal||c,u+=String.fromCharCode(l.code)):u+=r}else{if(s(r.charCodeAt(0)))break;u+=r}}return""!==e&&G(),{type:Wt.StringLiteral,value:u,octal:c,lineNumber:pn,lineStart:fn,start:n,end:nn}}function I(){var e,t,r,a,o,l,u,c,p="";for(a=!1,l=!1,t=nn,o="`"===Zt[nn],r=2,++nn;dn>nn;){if(e=Zt[nn++],"`"===e){r=1,l=!0,a=!0;break}if("$"===e){if("{"===Zt[nn]){gn.curlyStack.push("${"),++nn,a=!0;break}p+=e}else if("\\"===e)if(e=Zt[nn++],s(e.charCodeAt(0)))++rn,"\r"===e&&"\n"===Zt[nn]&&++nn,an=nn;else switch(e){case"n":p+="\n";break;case"r":p+="\r";break;case"t":p+=" ";break;case"u":case"x":"{"===Zt[nn]?(++nn,p+=b()):(u=nn,c=v(e),c?p+=c:(nn=u,p+=e));break;case"b":p+="\b";break;case"f":p+="\f";break;case"v":p+=" ";break;default:"0"===e?(n(Zt.charCodeAt(nn))&&K(Xt.TemplateOctalLiteral),p+="\x00"):i(e)?K(Xt.TemplateOctalLiteral):p+=e}else s(e.charCodeAt(0))?(++rn,"\r"===e&&"\n"===Zt[nn]&&++nn,an=nn,p+="\n"):p+=e}return a||G(),o||gn.curlyStack.pop(),{type:Wt.Template,value:{cooked:p,raw:Zt.slice(t+1,nn-r)},head:o,tail:l,lineNumber:rn,lineStart:an,start:t,end:nn}}function _(e,t){var n=e;t.indexOf("u")>=0&&(n=n.replace(/\\u\{([0-9a-fA-F]+)\}/g,function(e,t){return parseInt(t,16)<=1114111?"x":void G(null,Xt.InvalidRegExp)}).replace(/\\u([a-fA-F0-9]{4})|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"));try{RegExp(n)}catch(r){G(null,Xt.InvalidRegExp)}try{return new RegExp(e,t)}catch(i){return null}}function D(){var e,n,r,i,a;for(e=Zt[nn],t("/"===e,"Regular expression literal must start with a slash"),n=Zt[nn++],r=!1,i=!1;dn>nn;)if(e=Zt[nn++],n+=e,"\\"===e)e=Zt[nn++],s(e.charCodeAt(0))&&G(null,Xt.UnterminatedRegExp),n+=e;else if(s(e.charCodeAt(0)))G(null,Xt.UnterminatedRegExp);else if(r)"]"===e&&(r=!1);else{if("/"===e){i=!0;break}"["===e&&(r=!0)}return i||G(null,Xt.UnterminatedRegExp),a=n.substr(1,n.length-2),{value:a,literal:n}}function L(){var e,t,n,r;for(t="",n="";dn>nn&&(e=Zt[nn],u(e.charCodeAt(0)));)if(++nn,"\\"===e&&dn>nn)if(e=Zt[nn],"u"===e){if(++nn,r=nn,e=v("u"))for(n+=e,t+="\\u";nn>r;++r)t+=Zt[r];else nn=r,n+="u",t+="\\u";Z()}else t+="\\",Z();else n+=e,t+=e;return{value:n,literal:t}}function P(){hn=!0;var e,t,n,r;return mn=null,y(),e=nn,t=D(),n=L(),r=_(t.value,n.value),hn=!1,yn.tokenize?{type:Wt.RegularExpression,value:r,regex:{pattern:t.value,flags:n.value},lineNumber:rn,lineStart:an,start:e,end:nn}:{literal:t.literal+n.literal,value:r,regex:{pattern:t.value,flags:n.value},start:e,end:nn}}function N(){var e,t,n,r;return y(),e=nn,t={start:{line:rn,column:nn-an}},n=P(),t.end={line:rn,column:nn-an},yn.tokenize||(yn.tokens.length>0&&(r=yn.tokens[yn.tokens.length-1],r.range[0]===e&&"Punctuator"===r.type&&("/"===r.value||"/="===r.value)&&yn.tokens.pop()),yn.tokens.push({type:"RegularExpression",value:n.literal,regex:n.regex,range:[e,nn],loc:t})),n}function $(e){return e.type===Wt.Identifier||e.type===Wt.Keyword||e.type===Wt.BooleanLiteral||e.type===Wt.NullLiteral}function M(){var e,t;if(e=yn.tokens[yn.tokens.length-1],!e)return N();if("Punctuator"===e.type){if("]"===e.value)return A();if(")"===e.value)return t=yn.tokens[yn.openParenToken-1],!t||"Keyword"!==t.type||"if"!==t.value&&"while"!==t.value&&"for"!==t.value&&"with"!==t.value?A():N();if("}"===e.value){if(yn.tokens[yn.openCurlyToken-3]&&"Keyword"===yn.tokens[yn.openCurlyToken-3].type){if(t=yn.tokens[yn.openCurlyToken-4],!t)return A()}else{if(!yn.tokens[yn.openCurlyToken-4]||"Keyword"!==yn.tokens[yn.openCurlyToken-4].type)return A();if(t=yn.tokens[yn.openCurlyToken-5],!t)return N()}return Yt.indexOf(t.value)>=0?A():N()}return N()}return"Keyword"===e.type&&"this"!==e.value?N():A()}function R(){var e,t;return nn>=dn?{type:Wt.EOF,lineNumber:rn,lineStart:an,start:nn,end:nn}:(e=Zt.charCodeAt(nn),l(e)?(t=S(),en&&p(t.value)&&(t.type=Wt.Keyword),t):40===e||41===e||59===e?A():39===e||34===e?T():46===e?n(Zt.charCodeAt(nn+1))?j():A():n(e)?j():yn.tokenize&&47===e?M():96===e||125===e&&"${"===gn.curlyStack[gn.curlyStack.length-1]?I():A()); + +}function F(){var e,t,n,r;return e={start:{line:rn,column:nn-an}},t=R(),e.end={line:rn,column:nn-an},t.type!==Wt.EOF&&(n=Zt.slice(t.start,t.end),r={type:Jt[t.type],value:n,range:[t.start,t.end],loc:e},t.regex&&(r.regex={pattern:t.regex.pattern,flags:t.regex.flags}),yn.tokens.push(r)),t}function U(){var e;return hn=!0,sn=nn,ln=rn,un=an,y(),e=mn,cn=nn,pn=rn,fn=an,mn="undefined"!=typeof yn.tokens?F():R(),hn=!1,e}function B(){hn=!0,y(),sn=nn,ln=rn,un=an,cn=nn,pn=rn,fn=an,mn="undefined"!=typeof yn.tokens?F():R(),hn=!1}function q(){this.line=pn,this.column=cn-fn}function H(){this.start=new q,this.end=null}function z(e){this.start={line:e.lineNumber,column:e.start-e.lineStart},this.end=null}function V(){yn.range&&(this.range=[cn,0]),yn.loc&&(this.loc=new H)}function W(e){yn.range&&(this.range=[e.start,0]),yn.loc&&(this.loc=new z(e))}function J(e){var t,n;for(t=0;t<yn.errors.length;t++)if(n=yn.errors[t],n.index===e.index&&n.message===e.message)return;yn.errors.push(e)}function Y(e,t,n){var r=new Error("Line "+e+": "+n);return r.index=t,r.lineNumber=e,r.column=t-(hn?an:un)+1,r.description=n,r}function K(e){var n,r;throw n=Array.prototype.slice.call(arguments,1),r=e.replace(/%(\d)/g,function(e,r){return t(r<n.length,"Message reference must be in range"),n[r]}),Y(ln,sn,r)}function Q(e){var n,r,i;if(n=Array.prototype.slice.call(arguments,1),r=e.replace(/%(\d)/g,function(e,r){return t(r<n.length,"Message reference must be in range"),n[r]}),i=Y(rn,sn,r),!yn.errors)throw i;J(i)}function X(e,t){var n,r=t||Xt.UnexpectedToken;return e?(t||(r=e.type===Wt.EOF?Xt.UnexpectedEOS:e.type===Wt.Identifier?Xt.UnexpectedIdentifier:e.type===Wt.NumericLiteral?Xt.UnexpectedNumber:e.type===Wt.StringLiteral?Xt.UnexpectedString:e.type===Wt.Template?Xt.UnexpectedTemplate:Xt.UnexpectedToken,e.type===Wt.Keyword&&(c(e.value)?r=Xt.UnexpectedReserved:en&&p(e.value)&&(r=Xt.StrictReservedWord))),n=e.type===Wt.Template?e.value.raw:e.value):n="ILLEGAL",r=r.replace("%0",n),e&&"number"==typeof e.lineNumber?Y(e.lineNumber,e.start,r):Y(hn?rn:ln,hn?nn:sn,r)}function G(e,t){throw X(e,t)}function Z(e,t){var n=X(e,t);if(!yn.errors)throw n;J(n)}function ee(e){var t=U();(t.type!==Wt.Punctuator||t.value!==e)&&G(t)}function te(){var e;yn.errors?(e=mn,e.type===Wt.Punctuator&&","===e.value?U():e.type===Wt.Punctuator&&";"===e.value?(U(),Z(e)):Z(e,Xt.UnexpectedToken)):ee(",")}function ne(e){var t=U();(t.type!==Wt.Keyword||t.value!==e)&&G(t)}function re(e){return mn.type===Wt.Punctuator&&mn.value===e}function ie(e){return mn.type===Wt.Keyword&&mn.value===e}function ae(e){return mn.type===Wt.Identifier&&mn.value===e}function oe(){var e;return mn.type!==Wt.Punctuator?!1:(e=mn.value,"="===e||"*="===e||"/="===e||"%="===e||"+="===e||"-="===e||"<<="===e||">>="===e||">>>="===e||"&="===e||"^="===e||"|="===e)}function se(){return 59===Zt.charCodeAt(cn)||re(";")?void U():void(on||(sn=cn,ln=pn,un=fn,mn.type===Wt.EOF||re("}")||G(mn)))}function le(e){var t,n=vn,r=bn,i=wn;return vn=!0,bn=!0,wn=null,t=e(),null!==wn&&G(wn),vn=n,bn=r,wn=i,t}function ue(e){var t,n=vn,r=bn,i=wn;return vn=!0,bn=!0,wn=null,t=e(),vn=vn&&n,bn=bn&&r,wn=i||wn,t}function ce(){var e,t,n=new V,r=[];for(ee("[");!re("]");)if(re(","))U(),r.push(null);else{if(re("...")){t=new V,U(),e=Qe(),r.push(t.finishRestElement(e));break}r.push(de()),re("]")||ee(",")}return ee("]"),n.finishArrayPattern(r)}function pe(){var e,t,n=new V,r=re("[");if(mn.type===Wt.Identifier){if(e=Qe(),re("="))return U(),t=Ve(),n.finishProperty("init",e,!1,new W(e).finishAssignmentPattern(e,t),!1,!1);if(!re(":"))return n.finishProperty("init",e,!1,e,!1,!0)}else e=ve();return ee(":"),t=de(),n.finishProperty("init",e,r,t,!1,!1)}function fe(){var e=new V,t=[];for(ee("{");!re("}");)t.push(pe()),re("}")||ee(",");return U(),e.finishObjectPattern(t)}function he(){return mn.type===Wt.Identifier?Qe():re("[")?ce():re("{")?fe():void G(mn)}function de(){var e,t,n=mn;return e=he(),re("=")&&(U(),t=le(Ve),e=new W(n).finishAssignmentPattern(e,t)),e}function me(){var e,t=[],n=new V;for(ee("[");!re("]");)re(",")?(U(),t.push(null)):re("...")?(e=new V,U(),e.finishSpreadElement(ue(Ve)),re("]")||(bn=vn=!1,ee(",")),t.push(e)):(t.push(ue(Ve)),re("]")||ee(","));return U(),n.finishArrayExpression(t)}function ge(e,t){var n,r;return bn=vn=!1,n=en,r=le(xt),en&&t.firstRestricted&&Z(t.firstRestricted,t.message),en&&t.stricted&&Z(t.stricted,t.message),en=n,e.finishFunctionExpression(null,t.params,t.defaults,r)}function ye(){var e,t,n=new V;return e=Ct(),t=ge(n,e)}function ve(){var e,t,n=new V;switch(e=U(),e.type){case Wt.StringLiteral:case Wt.NumericLiteral:return en&&e.octal&&Z(e,Xt.StrictOctalLiteral),n.finishLiteral(e);case Wt.Identifier:case Wt.BooleanLiteral:case Wt.NullLiteral:case Wt.Keyword:return n.finishIdentifier(e.value);case Wt.Punctuator:if("["===e.value)return t=le(Ve),ee("]"),t}G(e)}function be(){switch(mn.type){case Wt.Identifier:case Wt.StringLiteral:case Wt.BooleanLiteral:case Wt.NullLiteral:case Wt.NumericLiteral:case Wt.Keyword:return!0;case Wt.Punctuator:return"["===mn.value}return!1}function we(e,t,n,r){var i,a,o;if(e.type===Wt.Identifier){if("get"===e.value&&be())return n=re("["),t=ve(),o=new V,ee("("),ee(")"),i=ge(o,{params:[],defaults:[],stricted:null,firstRestricted:null,message:null}),r.finishProperty("get",t,n,i,!1,!1);if("set"===e.value&&be())return n=re("["),t=ve(),o=new V,ee("("),a={params:[],defaultCount:0,defaults:[],firstRestricted:null,paramSet:{}},re(")")?Z(mn):(At(a),0===a.defaultCount&&(a.defaults=[])),ee(")"),i=ge(o,a),r.finishProperty("set",t,n,i,!1,!1)}return re("(")?(i=ye(),r.finishProperty("init",t,n,i,!0,!1)):null}function xe(e,t,n){t===!1&&(e.type===Kt.Identifier&&"__proto__"===e.name||e.type===Kt.Literal&&"__proto__"===e.value)&&(n.value?Q(Xt.DuplicateProtoProperty):n.value=!0)}function Se(e){var t,n,r,i,a=mn,o=new V;return t=re("["),n=ve(),(r=we(a,n,t,o))?(xe(r.key,r.computed,e),r):(xe(n,t,e),re(":")?(U(),i=ue(Ve),o.finishProperty("init",n,t,i,!1,!1)):a.type===Wt.Identifier?re("=")?(wn=mn,U(),i=le(Ve),o.finishProperty("init",n,t,new W(a).finishAssignmentPattern(n,i),!1,!0)):o.finishProperty("init",n,t,n,!1,!0):void G(mn))}function Ae(){var e=[],t={value:!1},n=new V;for(ee("{");!re("}");)e.push(Se(t)),re("}")||te();return ee("}"),n.finishObjectExpression(e)}function Ce(e){var t;switch(e.type){case Kt.Identifier:case Kt.MemberExpression:case Kt.RestElement:case Kt.AssignmentPattern:break;case Kt.SpreadElement:e.type=Kt.RestElement,Ce(e.argument);break;case Kt.ArrayExpression:for(e.type=Kt.ArrayPattern,t=0;t<e.elements.length;t++)null!==e.elements[t]&&Ce(e.elements[t]);break;case Kt.ObjectExpression:for(e.type=Kt.ObjectPattern,t=0;t<e.properties.length;t++)Ce(e.properties[t].value);break;case Kt.AssignmentExpression:e.type=Kt.AssignmentPattern,Ce(e.left)}}function Ee(e){var t,n;return(mn.type!==Wt.Template||e.head&&!mn.head)&&G(),t=new V,n=U(),t.finishTemplateElement({raw:n.value.raw,cooked:n.value.cooked},n.tail)}function ke(){var e,t,n,r=new V;for(e=Ee({head:!0}),t=[e],n=[];!e.tail;)n.push(We()),e=Ee({head:!1}),t.push(e);return r.finishTemplateLiteral(t,n)}function Oe(){var e,t,n,r;if(ee("("),re(")"))return U(),re("=>")||ee("=>"),{type:Qt.ArrowParameterPlaceHolder,params:[]};if(n=mn,re("..."))return e=rt(),ee(")"),re("=>")||ee("=>"),{type:Qt.ArrowParameterPlaceHolder,params:[e]};if(vn=!0,e=ue(Ve),re(",")){for(bn=!1,t=[e];dn>cn&&re(",");){if(U(),re("...")){for(vn||G(mn),t.push(rt()),ee(")"),re("=>")||ee("=>"),vn=!1,r=0;r<t.length;r++)Ce(t[r]);return{type:Qt.ArrowParameterPlaceHolder,params:t}}t.push(ue(Ve))}e=new W(n).finishSequenceExpression(t)}if(ee(")"),re("=>")){if(vn||G(mn),e.type===Kt.SequenceExpression)for(r=0;r<e.expressions.length;r++)Ce(e.expressions[r]);else Ce(e);e={type:Qt.ArrowParameterPlaceHolder,params:e.type===Kt.SequenceExpression?e.expressions:[e]}}return vn=!1,e}function je(){var e,t,n,r;if(re("("))return vn=!1,ue(Oe);if(re("["))return ue(me);if(re("{"))return ue(Ae);if(e=mn.type,r=new V,e===Wt.Identifier)n=r.finishIdentifier(U().value);else if(e===Wt.StringLiteral||e===Wt.NumericLiteral)bn=vn=!1,en&&mn.octal&&Z(mn,Xt.StrictOctalLiteral),n=r.finishLiteral(U());else if(e===Wt.Keyword){if(bn=vn=!1,ie("function"))return kt();if(ie("this"))return U(),r.finishThisExpression();if(ie("class"))return Tt();G(U())}else e===Wt.BooleanLiteral?(bn=vn=!1,t=U(),t.value="true"===t.value,n=r.finishLiteral(t)):e===Wt.NullLiteral?(bn=vn=!1,t=U(),t.value=null,n=r.finishLiteral(t)):re("/")||re("/=")?(bn=vn=!1,nn=cn,t="undefined"!=typeof yn.tokens?N():P(),U(),n=r.finishLiteral(t)):e===Wt.Template?n=ke():G(U());return n}function Te(){var e=[];if(ee("("),!re(")"))for(;dn>cn&&(e.push(le(Ve)),!re(")"));)te();return ee(")"),e}function Ie(){var e,t=new V;return e=U(),$(e)||G(e),t.finishIdentifier(e.value)}function _e(){return ee("."),Ie()}function De(){var e;return ee("["),e=le(We),ee("]"),e}function Le(){var e,t,n=new V;return ne("new"),e=le(Ne),t=re("(")?Te():[],bn=vn=!1,n.finishNewExpression(e,t)}function Pe(){var e,t,n,r,i,a=gn.allowIn;for(i=mn,gn.allowIn=!0,ie("super")&&gn.inFunctionBody?(t=new V,U(),t=t.finishSuper(),re("(")||re(".")||re("[")||G(mn)):t=ue(ie("new")?Le:je);;)if(re("."))vn=!1,bn=!0,r=_e(),t=new W(i).finishMemberExpression(".",t,r);else if(re("("))vn=!1,bn=!1,n=Te(),t=new W(i).finishCallExpression(t,n);else if(re("["))vn=!1,bn=!0,r=De(),t=new W(i).finishMemberExpression("[",t,r);else{if(mn.type!==Wt.Template||!mn.head)break;e=ke(),t=new W(i).finishTaggedTemplateExpression(t,e)}return gn.allowIn=a,t}function Ne(){var e,n,r,i;for(t(gn.allowIn,"callee of new expression always allow in keyword."),i=mn,ie("super")&&gn.inFunctionBody?(n=new V,U(),n=n.finishSuper(),re("[")||re(".")||G(mn)):n=ue(ie("new")?Le:je);;)if(re("["))vn=!1,bn=!0,r=De(),n=new W(i).finishMemberExpression("[",n,r);else if(re("."))vn=!1,bn=!0,r=_e(),n=new W(i).finishMemberExpression(".",n,r);else{if(mn.type!==Wt.Template||!mn.head)break;e=ke(),n=new W(i).finishTaggedTemplateExpression(n,e)}return n}function $e(){var e,t,n=mn;return e=ue(Pe),on||mn.type!==Wt.Punctuator||(re("++")||re("--"))&&(en&&e.type===Kt.Identifier&&f(e.name)&&Q(Xt.StrictLHSPostfix),bn||Q(Xt.InvalidLHSInAssignment),bn=vn=!1,t=U(),e=new W(n).finishPostfixExpression(t.value,e)),e}function Me(){var e,t,n;return mn.type!==Wt.Punctuator&&mn.type!==Wt.Keyword?t=$e():re("++")||re("--")?(n=mn,e=U(),t=ue(Me),en&&t.type===Kt.Identifier&&f(t.name)&&Q(Xt.StrictLHSPrefix),bn||Q(Xt.InvalidLHSInAssignment),t=new W(n).finishUnaryExpression(e.value,t),bn=vn=!1):re("+")||re("-")||re("~")||re("!")?(n=mn,e=U(),t=ue(Me),t=new W(n).finishUnaryExpression(e.value,t),bn=vn=!1):ie("delete")||ie("void")||ie("typeof")?(n=mn,e=U(),t=ue(Me),t=new W(n).finishUnaryExpression(e.value,t),en&&"delete"===t.operator&&t.argument.type===Kt.Identifier&&Q(Xt.StrictDelete),bn=vn=!1):t=$e(),t}function Re(e,t){var n=0;if(e.type!==Wt.Punctuator&&e.type!==Wt.Keyword)return 0;switch(e.value){case"||":n=1;break;case"&&":n=2;break;case"|":n=3;break;case"^":n=4;break;case"&":n=5;break;case"==":case"!=":case"===":case"!==":n=6;break;case"<":case">":case"<=":case">=":case"instanceof":n=7;break;case"in":n=t?7:0;break;case"<<":case">>":case">>>":n=8;break;case"+":case"-":n=9;break;case"*":case"/":case"%":n=11}return n}function Fe(){var e,t,n,r,i,a,o,s,l,u;if(e=mn,l=ue(Me),r=mn,i=Re(r,gn.allowIn),0===i)return l;for(bn=vn=!1,r.prec=i,U(),t=[e,mn],o=le(Me),a=[l,r,o];(i=Re(mn,gn.allowIn))>0;){for(;a.length>2&&i<=a[a.length-2].prec;)o=a.pop(),s=a.pop().value,l=a.pop(),t.pop(),n=new W(t[t.length-1]).finishBinaryExpression(s,l,o),a.push(n);r=U(),r.prec=i,a.push(r),t.push(mn),n=le(Me),a.push(n)}for(u=a.length-1,n=a[u],t.pop();u>1;)n=new W(t.pop()).finishBinaryExpression(a[u-1].value,a[u-2],n),u-=2;return n}function Ue(){var e,t,n,r,i;return i=mn,e=ue(Fe),re("?")&&(U(),t=gn.allowIn,gn.allowIn=!0,n=le(Ve),gn.allowIn=t,ee(":"),r=le(Ve),e=new W(i).finishConditionalExpression(e,n,r),bn=vn=!1),e}function Be(){return re("{")?xt():le(Ve)}function qe(e,n){var r;switch(n.type){case Kt.Identifier:St(e,n,n.name);break;case Kt.RestElement:qe(e,n.argument);break;case Kt.AssignmentPattern:qe(e,n.left);break;case Kt.ArrayPattern:for(r=0;r<n.elements.length;r++)null!==n.elements[r]&&qe(e,n.elements[r]);break;default:for(t(n.type===Kt.ObjectPattern,"Invalid type"),r=0;r<n.properties.length;r++)qe(e,n.properties[r].value)}}function He(e){var t,n,r,i,a,o,s,l;switch(a=[],o=0,i=[e],e.type){case Kt.Identifier:break;case Qt.ArrowParameterPlaceHolder:i=e.params;break;default:return null}for(s={paramSet:{}},t=0,n=i.length;n>t;t+=1)switch(r=i[t],r.type){case Kt.AssignmentPattern:i[t]=r.left,a.push(r.right),++o,qe(s,r.left);break;default:qe(s,r),i[t]=r,a.push(null)}return s.message===Xt.StrictParamDupe&&(l=en?s.stricted:s.firstRestricted,G(l,s.message)),0===o&&(a=[]),{params:i,defaults:a,stricted:s.stricted,firstRestricted:s.firstRestricted,message:s.message}}function ze(e,t){var n,r;return on&&Z(mn),ee("=>"),n=en,r=Be(),en&&e.firstRestricted&&G(e.firstRestricted,e.message),en&&e.stricted&&Z(e.stricted,e.message),en=n,t.finishArrowFunctionExpression(e.params,e.defaults,r,r.type!==Kt.BlockStatement)}function Ve(){var e,t,n,r,i;return i=mn,e=mn,t=Ue(),t.type===Qt.ArrowParameterPlaceHolder||re("=>")?(bn=vn=!1,r=He(t),r?(wn=null,ze(r,new W(i))):t):(oe()&&(bn||Q(Xt.InvalidLHSInAssignment),en&&t.type===Kt.Identifier&&f(t.name)&&Z(e,Xt.StrictLHSAssignment),re("=")?Ce(t):bn=vn=!1,e=U(),n=le(Ve),t=new W(i).finishAssignmentExpression(e.value,t,n),wn=null),t)}function We(){var e,t,n=mn;if(e=le(Ve),re(",")){for(t=[e];dn>cn&&re(",");)U(),t.push(le(Ve));e=new W(n).finishSequenceExpression(t)}return e}function Je(){if(mn.type===Wt.Keyword)switch(mn.value){case"export":return"module"!==tn&&Z(mn,Xt.IllegalExportDeclaration),Nt();case"import":return"module"!==tn&&Z(mn,Xt.IllegalImportDeclaration),Ut();case"const":case"let":return nt({inFor:!1});case"function":return Et(new V);case"class":return jt()}return wt()}function Ye(){for(var e=[];dn>cn&&!re("}");)e.push(Je());return e}function Ke(){var e,t=new V;return ee("{"),e=Ye(),ee("}"),t.finishBlockStatement(e)}function Qe(){var e,t=new V;return e=U(),e.type!==Wt.Identifier&&(en&&e.type===Wt.Keyword&&p(e.value)?Z(e,Xt.StrictReservedWord):G(e)),t.finishIdentifier(e.value)}function Xe(){var e,t=null,n=new V;return e=he(),en&&f(e.name)&&Q(Xt.StrictVarName),re("=")?(U(),t=le(Ve)):e.type!==Kt.Identifier&&ee("="),n.finishVariableDeclarator(e,t)}function Ge(){var e=[];do{if(e.push(Xe()),!re(","))break;U()}while(dn>cn);return e}function Ze(e){var t;return ne("var"),t=Ge(),se(),e.finishVariableDeclaration(t)}function et(e,t){var n,r=null,i=new V;return n=he(),en&&n.type===Kt.Identifier&&f(n.name)&&Q(Xt.StrictVarName),"const"===e?ie("in")||(ee("="),r=le(Ve)):(!t.inFor&&n.type!==Kt.Identifier||re("="))&&(ee("="),r=le(Ve)),i.finishVariableDeclarator(n,r)}function tt(e,t){var n=[];do{if(n.push(et(e,t)),!re(","))break;U()}while(dn>cn);return n}function nt(e){var n,r,i=new V;return n=U().value,t("let"===n||"const"===n,"Lexical declaration must be either let or const"),r=tt(n,e),se(),i.finishLexicalDeclaration(r,n)}function rt(){var e,t=new V;return U(),re("{")&&K(Xt.ObjectPatternAsRestParameter),e=Qe(),re("=")&&K(Xt.DefaultRestParameter),re(")")||K(Xt.ParameterAfterRestParameter),t.finishRestElement(e)}function it(e){return ee(";"),e.finishEmptyStatement()}function at(e){var t=We();return se(),e.finishExpressionStatement(t)}function ot(e){var t,n,r;return ne("if"),ee("("),t=We(),ee(")"),n=wt(),ie("else")?(U(),r=wt()):r=null,e.finishIfStatement(t,n,r)}function st(e){var t,n,r;return ne("do"),r=gn.inIteration,gn.inIteration=!0,t=wt(),gn.inIteration=r,ne("while"),ee("("),n=We(),ee(")"),re(";")&&U(),e.finishDoWhileStatement(t,n)}function lt(e){var t,n,r;return ne("while"),ee("("),t=We(),ee(")"),r=gn.inIteration,gn.inIteration=!0,n=wt(),gn.inIteration=r,e.finishWhileStatement(t,n)}function ut(e){var t,n,r,i,a,o,s,l,u,c,p,f=gn.allowIn;if(t=i=a=null,ne("for"),ee("("),re(";"))U();else if(ie("var"))t=new V,U(),gn.allowIn=!1,t=t.finishVariableDeclaration(Ge()),gn.allowIn=f,1===t.declarations.length&&ie("in")?(U(),o=t,s=We(),t=null):ee(";");else if(ie("const")||ie("let"))t=new V,l=U().value,gn.allowIn=!1,u=tt(l,{inFor:!0}),gn.allowIn=f,1===u.length&&null===u[0].init&&ie("in")?(t=t.finishLexicalDeclaration(u,l),U(),o=t,s=We(),t=null):(se(),t=t.finishLexicalDeclaration(u,l));else if(r=mn,gn.allowIn=!1,t=ue(Ve),gn.allowIn=f,ie("in"))bn||Q(Xt.InvalidLHSInForIn),U(),Ce(t),o=t,s=We(),t=null;else{if(re(",")){for(n=[t];re(",");)U(),n.push(le(Ve));t=new W(r).finishSequenceExpression(n)}ee(";")}return"undefined"==typeof o&&(re(";")||(i=We()),ee(";"),re(")")||(a=We())),ee(")"),p=gn.inIteration,gn.inIteration=!0,c=le(wt),gn.inIteration=p,"undefined"==typeof o?e.finishForStatement(t,i,a,c):e.finishForInStatement(o,s,c)}function ct(e){var t,n=null;return ne("continue"),59===Zt.charCodeAt(cn)?(U(),gn.inIteration||K(Xt.IllegalContinue),e.finishContinueStatement(null)):on?(gn.inIteration||K(Xt.IllegalContinue),e.finishContinueStatement(null)):(mn.type===Wt.Identifier&&(n=Qe(),t="$"+n.name,Object.prototype.hasOwnProperty.call(gn.labelSet,t)||K(Xt.UnknownLabel,n.name)),se(),null!==n||gn.inIteration||K(Xt.IllegalContinue),e.finishContinueStatement(n))}function pt(e){var t,n=null;return ne("break"),59===Zt.charCodeAt(sn)?(U(),gn.inIteration||gn.inSwitch||K(Xt.IllegalBreak),e.finishBreakStatement(null)):on?(gn.inIteration||gn.inSwitch||K(Xt.IllegalBreak),e.finishBreakStatement(null)):(mn.type===Wt.Identifier&&(n=Qe(),t="$"+n.name,Object.prototype.hasOwnProperty.call(gn.labelSet,t)||K(Xt.UnknownLabel,n.name)),se(),null!==n||gn.inIteration||gn.inSwitch||K(Xt.IllegalBreak),e.finishBreakStatement(n))}function ft(e){var t=null;return ne("return"),gn.inFunctionBody||Q(Xt.IllegalReturn),32===Zt.charCodeAt(sn)&&l(Zt.charCodeAt(sn+1))?(t=We(),se(),e.finishReturnStatement(t)):on?e.finishReturnStatement(null):(re(";")||re("}")||mn.type===Wt.EOF||(t=We()),se(),e.finishReturnStatement(t))}function ht(e){var t,n;return en&&Q(Xt.StrictModeWith),ne("with"),ee("("),t=We(),ee(")"),n=wt(),e.finishWithStatement(t,n)}function dt(){var e,t,n=[],r=new V;for(ie("default")?(U(),e=null):(ne("case"),e=We()),ee(":");dn>cn&&!(re("}")||ie("default")||ie("case"));)t=Je(),n.push(t);return r.finishSwitchCase(e,n)}function mt(e){var t,n,r,i,a;if(ne("switch"),ee("("),t=We(),ee(")"),ee("{"),n=[],re("}"))return U(),e.finishSwitchStatement(t,n);for(i=gn.inSwitch,gn.inSwitch=!0,a=!1;dn>cn&&!re("}");)r=dt(),null===r.test&&(a&&K(Xt.MultipleDefaultsInSwitch),a=!0),n.push(r);return gn.inSwitch=i,ee("}"),e.finishSwitchStatement(t,n)}function gt(e){var t;return ne("throw"),on&&K(Xt.NewlineAfterThrow),t=We(),se(),e.finishThrowStatement(t)}function yt(){var e,t,n=new V;return ne("catch"),ee("("),re(")")&&G(mn),e=he(),en&&f(e.name)&&Q(Xt.StrictCatchVariable),ee(")"),t=Ke(),n.finishCatchClause(e,t)}function vt(e){var t,n=null,r=null;return ne("try"),t=Ke(),ie("catch")&&(n=yt()),ie("finally")&&(U(),r=Ke()),n||r||K(Xt.NoCatchOrFinally),e.finishTryStatement(t,n,r)}function bt(e){return ne("debugger"),se(),e.finishDebuggerStatement()}function wt(){var e,t,n,r,i=mn.type;if(i===Wt.EOF&&G(mn),i===Wt.Punctuator&&"{"===mn.value)return Ke();if(bn=vn=!0,r=new V,i===Wt.Punctuator)switch(mn.value){case";":return it(r);case"(":return at(r)}else if(i===Wt.Keyword)switch(mn.value){case"break":return pt(r);case"continue":return ct(r);case"debugger":return bt(r);case"do":return st(r);case"for":return ut(r);case"function":return Et(r);case"if":return ot(r);case"return":return ft(r);case"switch":return mt(r);case"throw":return gt(r);case"try":return vt(r);case"var":return Ze(r);case"while":return lt(r);case"with":return ht(r)}return e=We(),e.type===Kt.Identifier&&re(":")?(U(),n="$"+e.name,Object.prototype.hasOwnProperty.call(gn.labelSet,n)&&K(Xt.Redeclaration,"Label",e.name),gn.labelSet[n]=!0,t=wt(),delete gn.labelSet[n],r.finishLabeledStatement(e,t)):(se(),r.finishExpressionStatement(e))}function xt(){var e,t,n,r,i,a,o,s,l,u=[],c=new V;for(ee("{");dn>cn&&mn.type===Wt.StringLiteral&&(t=mn,e=Je(),u.push(e),e.expression.type===Kt.Literal);)n=Zt.slice(t.start+1,t.end-1),"use strict"===n?(en=!0,r&&Z(r,Xt.StrictOctalLiteral)):!r&&t.octal&&(r=t);for(i=gn.labelSet,a=gn.inIteration,o=gn.inSwitch,s=gn.inFunctionBody,l=gn.parenthesizedCount,gn.labelSet={},gn.inIteration=!1,gn.inSwitch=!1,gn.inFunctionBody=!0,gn.parenthesizedCount=0;dn>cn&&!re("}");)u.push(Je());return ee("}"),gn.labelSet=i,gn.inIteration=a,gn.inSwitch=o,gn.inFunctionBody=s,gn.parenthesizedCount=l,c.finishBlockStatement(u)}function St(e,t,n){var r="$"+n;en?(f(n)&&(e.stricted=t,e.message=Xt.StrictParamName),Object.prototype.hasOwnProperty.call(e.paramSet,r)&&(e.stricted=t,e.message=Xt.StrictParamDupe)):e.firstRestricted||(f(n)?(e.firstRestricted=t,e.message=Xt.StrictParamName):p(n)?(e.firstRestricted=t,e.message=Xt.StrictReservedWord):Object.prototype.hasOwnProperty.call(e.paramSet,r)&&(e.firstRestricted=t,e.message=Xt.StrictParamDupe)),e.paramSet[r]=!0}function At(e){var t,n,r;return t=mn,"..."===t.value?(n=rt(),St(e,n.argument,n.argument.name),e.params.push(n),e.defaults.push(null),!1):(n=de(),St(e,t,t.value),n.type===Kt.AssignmentPattern&&(r=n.right,n=n.left,++e.defaultCount),e.params.push(n),e.defaults.push(r),!re(")"))}function Ct(e){var t;if(t={params:[],defaultCount:0,defaults:[],firstRestricted:e},ee("("),!re(")"))for(t.paramSet={};dn>cn&&At(t);)ee(",");return ee(")"),0===t.defaultCount&&(t.defaults=[]),{params:t.params,defaults:t.defaults,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}}function Et(e,t){var n,r,i,a,o,s,l,u=null,c=[],h=[];return ne("function"),t&&re("(")||(r=mn,u=Qe(),en?f(r.value)&&Z(r,Xt.StrictFunctionName):f(r.value)?(o=r,s=Xt.StrictFunctionName):p(r.value)&&(o=r,s=Xt.StrictReservedWord)),a=Ct(o),c=a.params,h=a.defaults,i=a.stricted,o=a.firstRestricted,a.message&&(s=a.message),l=en,n=xt(),en&&o&&G(o,s),en&&i&&Z(i,s),en=l,e.finishFunctionDeclaration(u,c,h,n)}function kt(){var e,t,n,r,i,a,o,s=null,l=[],u=[],c=new V;return ne("function"),re("(")||(e=mn,s=Qe(),en?f(e.value)&&Z(e,Xt.StrictFunctionName):f(e.value)?(n=e,r=Xt.StrictFunctionName):p(e.value)&&(n=e,r=Xt.StrictReservedWord)),i=Ct(n),l=i.params,u=i.defaults,t=i.stricted,n=i.firstRestricted,i.message&&(r=i.message),o=en,a=xt(),en&&n&&G(n,r),en&&t&&Z(t,r),en=o,c.finishFunctionExpression(s,l,u,a)}function Ot(){var e,t,n,r,i,a,o,s=!1;for(e=new V,ee("{"),r=[];!re("}");)re(";")?U():(i=new V,t=mn,n=!1,a=re("["),o=ve(),"static"===o.name&&be()&&(t=mn,n=!0,a=re("["),o=ve()),i=we(t,o,a,i),i?(i["static"]=n,"init"===i.kind&&(i.kind="method"),n?i.computed||"prototype"!==(i.key.name||i.key.value.toString())||G(t,Xt.StaticPrototype):i.computed||"constructor"!==(i.key.name||i.key.value.toString())||(("method"!==i.kind||!i.method||i.value.generator)&&G(t,Xt.ConstructorSpecialMethod),s?G(t,Xt.DuplicateConstructor):s=!0,i.kind="constructor"),i.type=Kt.MethodDefinition,delete i.method,delete i.shorthand,r.push(i)):G(mn));return U(),e.finishClassBody(r)}function jt(e){var t,n=null,r=null,i=new V,a=en;return en=!0,ne("class"),e&&mn.type!==Wt.Identifier||(n=Qe()),ie("extends")&&(U(),r=le(Pe)),t=Ot(),en=a,i.finishClassDeclaration(n,r,t)}function Tt(){var e,t=null,n=null,r=new V,i=en;return en=!0,ne("class"),mn.type===Wt.Identifier&&(t=Qe()),ie("extends")&&(U(),n=le(Pe)),e=Ot(),en=i,r.finishClassExpression(t,n,e)}function It(){var e=new V;return mn.type!==Wt.StringLiteral&&K(Xt.InvalidModuleSpecifier),e.finishLiteral(U())}function _t(){var e,t,n,r=new V;return ie("default")?(n=new V,U(),t=n.finishIdentifier("default")):t=Qe(),ae("as")&&(U(),e=Ie()),r.finishExportSpecifier(t,e)}function Dt(e){var t,n=null,r=null,i=[];if(mn.type===Wt.Keyword)switch(mn.value){case"let":case"const":case"var":case"class":case"function":return n=Je(),e.finishExportNamedDeclaration(n,i,null)}if(ee("{"),!re("}"))do t=t||ie("default"),i.push(_t());while(re(",")&&U());return ee("}"),ae("from")?(U(),r=It(),se()):t?K(mn.value?Xt.UnexpectedToken:Xt.MissingFromClause,mn.value):se(),e.finishExportNamedDeclaration(n,i,r)}function Lt(e){var t=null,n=null;return ne("default"),ie("function")?(t=Et(new V,!0),e.finishExportDefaultDeclaration(t)):ie("class")?(t=jt(!0),e.finishExportDefaultDeclaration(t)):(ae("from")&&K(Xt.UnexpectedToken,mn.value),n=re("{")?Ae():re("[")?me():Ve(),se(),e.finishExportDefaultDeclaration(n))}function Pt(e){var t;return ee("*"),ae("from")||K(mn.value?Xt.UnexpectedToken:Xt.MissingFromClause,mn.value),U(),t=It(),se(),e.finishExportAllDeclaration(t)}function Nt(){var e=new V;return gn.inFunctionBody&&K(Xt.IllegalExportDeclaration),ne("export"),ie("default")?Lt(e):re("*")?Pt(e):Dt(e)}function $t(){var e,t,n=new V;return t=Ie(),ae("as")&&(U(),e=Qe()),n.finishImportSpecifier(e,t)}function Mt(){var e=[];if(ee("{"),!re("}"))do e.push($t());while(re(",")&&U());return ee("}"),e}function Rt(){var e,t=new V;return e=Ie(),t.finishImportDefaultSpecifier(e)}function Ft(){var e,t=new V;return ee("*"),ae("as")||K(Xt.NoAsAfterImportNamespace),U(),e=Ie(),t.finishImportNamespaceSpecifier(e)}function Ut(){var e,t,n=new V;return gn.inFunctionBody&&K(Xt.IllegalImportDeclaration),ne("import"),e=[],mn.type===Wt.StringLiteral?(t=It(),se(),n.finishImportDeclaration(e,t)):(!ie("default")&&$(mn)&&(e.push(Rt()),re(",")&&U()),re("*")?e.push(Ft()):re("{")&&(e=e.concat(Mt())),ae("from")||K(mn.value?Xt.UnexpectedToken:Xt.MissingFromClause,mn.value),U(),t=It(),se(),n.finishImportDeclaration(e,t))}function Bt(){for(var e,t,n,r,i=[];dn>cn&&(t=mn,t.type===Wt.StringLiteral)&&(e=Je(),i.push(e),e.expression.type===Kt.Literal);)n=Zt.slice(t.start+1,t.end-1),"use strict"===n?(en=!0,r&&Z(r,Xt.StrictOctalLiteral)):!r&&t.octal&&(r=t);for(;dn>cn&&(e=Je(),"undefined"!=typeof e);)i.push(e);return i}function qt(){var e,t;return B(),t=new V,e=Bt(),t.finishProgram(e)}function Ht(){var e,t,n,r=[];for(e=0;e<yn.tokens.length;++e)t=yn.tokens[e],n={type:t.type,value:t.value},t.regex&&(n.regex={pattern:t.regex.pattern,flags:t.regex.flags}),yn.range&&(n.range=t.range),yn.loc&&(n.loc=t.loc),r.push(n);yn.tokens=r}function zt(e,t){var n,r;n=String,"string"==typeof e||e instanceof String||(e=n(e)),Zt=e,nn=0,rn=Zt.length>0?1:0,an=0,cn=nn,pn=rn,fn=an,dn=Zt.length,mn=null,gn={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1,curlyStack:[]},yn={},t=t||{},t.tokens=!0,yn.tokens=[],yn.tokenize=!0,yn.openParenToken=-1,yn.openCurlyToken=-1,yn.range="boolean"==typeof t.range&&t.range,yn.loc="boolean"==typeof t.loc&&t.loc,"boolean"==typeof t.comment&&t.comment&&(yn.comments=[]),"boolean"==typeof t.tolerant&&t.tolerant&&(yn.errors=[]);try{if(B(),mn.type===Wt.EOF)return yn.tokens;for(U();mn.type!==Wt.EOF;)try{U()}catch(i){if(yn.errors){J(i);break}throw i}Ht(),r=yn.tokens,"undefined"!=typeof yn.comments&&(r.comments=yn.comments),"undefined"!=typeof yn.errors&&(r.errors=yn.errors)}catch(a){throw a}finally{yn={}}return r}function Vt(e,t){var n,r;r=String,"string"==typeof e||e instanceof String||(e=r(e)),Zt=e,nn=0,rn=Zt.length>0?1:0,an=0,cn=nn,pn=rn,fn=an,dn=Zt.length,mn=null,gn={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1,curlyStack:[]},tn="script",en=!1,yn={},"undefined"!=typeof t&&(yn.range="boolean"==typeof t.range&&t.range,yn.loc="boolean"==typeof t.loc&&t.loc,yn.attachComment="boolean"==typeof t.attachComment&&t.attachComment,yn.loc&&null!==t.source&&void 0!==t.source&&(yn.source=r(t.source)),"boolean"==typeof t.tokens&&t.tokens&&(yn.tokens=[]),"boolean"==typeof t.comment&&t.comment&&(yn.comments=[]),"boolean"==typeof t.tolerant&&t.tolerant&&(yn.errors=[]),yn.attachComment&&(yn.range=!0,yn.comments=[],yn.bottomRightStack=[],yn.trailingComments=[],yn.leadingComments=[]),"module"===t.sourceType&&(tn=t.sourceType,en=!0));try{n=qt(),"undefined"!=typeof yn.comments&&(n.comments=yn.comments),"undefined"!=typeof yn.tokens&&(Ht(),n.tokens=yn.tokens),"undefined"!=typeof yn.errors&&(n.errors=yn.errors)}catch(i){throw i}finally{yn={}}return n}var Wt,Jt,Yt,Kt,Qt,Xt,Gt,Zt,en,tn,nn,rn,an,on,sn,ln,un,cn,pn,fn,hn,dn,mn,gn,yn,vn,bn,wn;Wt={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8,RegularExpression:9,Template:10},Jt={},Jt[Wt.BooleanLiteral]="Boolean",Jt[Wt.EOF]="<end>",Jt[Wt.Identifier]="Identifier",Jt[Wt.Keyword]="Keyword",Jt[Wt.NullLiteral]="Null",Jt[Wt.NumericLiteral]="Numeric",Jt[Wt.Punctuator]="Punctuator",Jt[Wt.StringLiteral]="String",Jt[Wt.RegularExpression]="RegularExpression",Jt[Wt.Template]="Template",Yt=["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="],Kt={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},Qt={ArrowParameterPlaceHolder:"ArrowParameterPlaceHolder"},Xt={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode", +StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",DefaultRestParameter:"Unexpected token =",ObjectPatternAsRestParameter:"Unexpected token {",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ConstructorSpecialMethod:"Class constructor may not be an accessor",DuplicateConstructor:"A class may only have one constructor",StaticPrototype:"Classes may not have static property named prototype",MissingFromClause:"Unexpected token",NoAsAfterImportNamespace:"Unexpected token",InvalidModuleSpecifier:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalExportDeclaration:"Unexpected token"},Gt={NonAsciiIdentifierStart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢲऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),NonAsciiIdentifierPart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԯԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠ-ࢲࣤ-ॣ०-९ॱ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఀ-ఃఅ-ఌఎ-ఐఒ-నప-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಁ-ಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲഁ-ഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟ෦-෯ෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤞᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧ᪰-᪽ᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶ᳸᳹ᴀ-᷵᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚝꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꧠ-ꧾꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︭︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")},W.prototype=V.prototype={processComment:function(){var e,t,n,r,i,a=yn.bottomRightStack,o=a[a.length-1];if(!(this.type===Kt.Program&&this.body.length>0)){if(yn.trailingComments.length>0){for(n=[],r=yn.trailingComments.length-1;r>=0;--r)i=yn.trailingComments[r],i.range[0]>=this.range[1]&&(n.unshift(i),yn.trailingComments.splice(r,1));yn.trailingComments=[]}else o&&o.trailingComments&&o.trailingComments[0].range[0]>=this.range[1]&&(n=o.trailingComments,delete o.trailingComments);if(o)for(;o&&o.range[0]>=this.range[0];)e=o,o=a.pop();if(e)e.leadingComments&&e.leadingComments[e.leadingComments.length-1].range[1]<=this.range[0]&&(this.leadingComments=e.leadingComments,e.leadingComments=void 0);else if(yn.leadingComments.length>0)for(t=[],r=yn.leadingComments.length-1;r>=0;--r)i=yn.leadingComments[r],i.range[1]<=this.range[0]&&(t.unshift(i),yn.leadingComments.splice(r,1));t&&t.length>0&&(this.leadingComments=t),n&&n.length>0&&(this.trailingComments=n),a.push(this)}},finish:function(){yn.range&&(this.range[1]=sn),yn.loc&&(this.loc.end={line:ln,column:sn-un},yn.source&&(this.loc.source=yn.source)),yn.attachComment&&this.processComment()},finishArrayExpression:function(e){return this.type=Kt.ArrayExpression,this.elements=e,this.finish(),this},finishArrayPattern:function(e){return this.type=Kt.ArrayPattern,this.elements=e,this.finish(),this},finishArrowFunctionExpression:function(e,t,n,r){return this.type=Kt.ArrowFunctionExpression,this.id=null,this.params=e,this.defaults=t,this.body=n,this.generator=!1,this.expression=r,this.finish(),this},finishAssignmentExpression:function(e,t,n){return this.type=Kt.AssignmentExpression,this.operator=e,this.left=t,this.right=n,this.finish(),this},finishAssignmentPattern:function(e,t){return this.type=Kt.AssignmentPattern,this.left=e,this.right=t,this.finish(),this},finishBinaryExpression:function(e,t,n){return this.type="||"===e||"&&"===e?Kt.LogicalExpression:Kt.BinaryExpression,this.operator=e,this.left=t,this.right=n,this.finish(),this},finishBlockStatement:function(e){return this.type=Kt.BlockStatement,this.body=e,this.finish(),this},finishBreakStatement:function(e){return this.type=Kt.BreakStatement,this.label=e,this.finish(),this},finishCallExpression:function(e,t){return this.type=Kt.CallExpression,this.callee=e,this.arguments=t,this.finish(),this},finishCatchClause:function(e,t){return this.type=Kt.CatchClause,this.param=e,this.body=t,this.finish(),this},finishClassBody:function(e){return this.type=Kt.ClassBody,this.body=e,this.finish(),this},finishClassDeclaration:function(e,t,n){return this.type=Kt.ClassDeclaration,this.id=e,this.superClass=t,this.body=n,this.finish(),this},finishClassExpression:function(e,t,n){return this.type=Kt.ClassExpression,this.id=e,this.superClass=t,this.body=n,this.finish(),this},finishConditionalExpression:function(e,t,n){return this.type=Kt.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=n,this.finish(),this},finishContinueStatement:function(e){return this.type=Kt.ContinueStatement,this.label=e,this.finish(),this},finishDebuggerStatement:function(){return this.type=Kt.DebuggerStatement,this.finish(),this},finishDoWhileStatement:function(e,t){return this.type=Kt.DoWhileStatement,this.body=e,this.test=t,this.finish(),this},finishEmptyStatement:function(){return this.type=Kt.EmptyStatement,this.finish(),this},finishExpressionStatement:function(e){return this.type=Kt.ExpressionStatement,this.expression=e,this.finish(),this},finishForStatement:function(e,t,n,r){return this.type=Kt.ForStatement,this.init=e,this.test=t,this.update=n,this.body=r,this.finish(),this},finishForInStatement:function(e,t,n){return this.type=Kt.ForInStatement,this.left=e,this.right=t,this.body=n,this.each=!1,this.finish(),this},finishFunctionDeclaration:function(e,t,n,r){return this.type=Kt.FunctionDeclaration,this.id=e,this.params=t,this.defaults=n,this.body=r,this.generator=!1,this.expression=!1,this.finish(),this},finishFunctionExpression:function(e,t,n,r){return this.type=Kt.FunctionExpression,this.id=e,this.params=t,this.defaults=n,this.body=r,this.generator=!1,this.expression=!1,this.finish(),this},finishIdentifier:function(e){return this.type=Kt.Identifier,this.name=e,this.finish(),this},finishIfStatement:function(e,t,n){return this.type=Kt.IfStatement,this.test=e,this.consequent=t,this.alternate=n,this.finish(),this},finishLabeledStatement:function(e,t){return this.type=Kt.LabeledStatement,this.label=e,this.body=t,this.finish(),this},finishLiteral:function(e){return this.type=Kt.Literal,this.value=e.value,this.raw=Zt.slice(e.start,e.end),e.regex&&(this.regex=e.regex),this.finish(),this},finishMemberExpression:function(e,t,n){return this.type=Kt.MemberExpression,this.computed="["===e,this.object=t,this.property=n,this.finish(),this},finishNewExpression:function(e,t){return this.type=Kt.NewExpression,this.callee=e,this.arguments=t,this.finish(),this},finishObjectExpression:function(e){return this.type=Kt.ObjectExpression,this.properties=e,this.finish(),this},finishObjectPattern:function(e){return this.type=Kt.ObjectPattern,this.properties=e,this.finish(),this},finishPostfixExpression:function(e,t){return this.type=Kt.UpdateExpression,this.operator=e,this.argument=t,this.prefix=!1,this.finish(),this},finishProgram:function(e){return this.type=Kt.Program,this.body=e,"module"===tn&&(this.sourceType=tn),this.finish(),this},finishProperty:function(e,t,n,r,i,a){return this.type=Kt.Property,this.key=t,this.computed=n,this.value=r,this.kind=e,this.method=i,this.shorthand=a,this.finish(),this},finishRestElement:function(e){return this.type=Kt.RestElement,this.argument=e,this.finish(),this},finishReturnStatement:function(e){return this.type=Kt.ReturnStatement,this.argument=e,this.finish(),this},finishSequenceExpression:function(e){return this.type=Kt.SequenceExpression,this.expressions=e,this.finish(),this},finishSpreadElement:function(e){return this.type=Kt.SpreadElement,this.argument=e,this.finish(),this},finishSwitchCase:function(e,t){return this.type=Kt.SwitchCase,this.test=e,this.consequent=t,this.finish(),this},finishSuper:function(){return this.type=Kt.Super,this.finish(),this},finishSwitchStatement:function(e,t){return this.type=Kt.SwitchStatement,this.discriminant=e,this.cases=t,this.finish(),this},finishTaggedTemplateExpression:function(e,t){return this.type=Kt.TaggedTemplateExpression,this.tag=e,this.quasi=t,this.finish(),this},finishTemplateElement:function(e,t){return this.type=Kt.TemplateElement,this.value=e,this.tail=t,this.finish(),this},finishTemplateLiteral:function(e,t){return this.type=Kt.TemplateLiteral,this.quasis=e,this.expressions=t,this.finish(),this},finishThisExpression:function(){return this.type=Kt.ThisExpression,this.finish(),this},finishThrowStatement:function(e){return this.type=Kt.ThrowStatement,this.argument=e,this.finish(),this},finishTryStatement:function(e,t,n){return this.type=Kt.TryStatement,this.block=e,this.guardedHandlers=[],this.handlers=t?[t]:[],this.handler=t,this.finalizer=n,this.finish(),this},finishUnaryExpression:function(e,t){return this.type="++"===e||"--"===e?Kt.UpdateExpression:Kt.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0,this.finish(),this},finishVariableDeclaration:function(e){return this.type=Kt.VariableDeclaration,this.declarations=e,this.kind="var",this.finish(),this},finishLexicalDeclaration:function(e,t){return this.type=Kt.VariableDeclaration,this.declarations=e,this.kind=t,this.finish(),this},finishVariableDeclarator:function(e,t){return this.type=Kt.VariableDeclarator,this.id=e,this.init=t,this.finish(),this},finishWhileStatement:function(e,t){return this.type=Kt.WhileStatement,this.test=e,this.body=t,this.finish(),this},finishWithStatement:function(e,t){return this.type=Kt.WithStatement,this.object=e,this.body=t,this.finish(),this},finishExportSpecifier:function(e,t){return this.type=Kt.ExportSpecifier,this.exported=t||e,this.local=e,this.finish(),this},finishImportDefaultSpecifier:function(e){return this.type=Kt.ImportDefaultSpecifier,this.local=e,this.finish(),this},finishImportNamespaceSpecifier:function(e){return this.type=Kt.ImportNamespaceSpecifier,this.local=e,this.finish(),this},finishExportNamedDeclaration:function(e,t,n){return this.type=Kt.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=n,this.finish(),this},finishExportDefaultDeclaration:function(e){return this.type=Kt.ExportDefaultDeclaration,this.declaration=e,this.finish(),this},finishExportAllDeclaration:function(e){return this.type=Kt.ExportAllDeclaration,this.source=e,this.finish(),this},finishImportSpecifier:function(e,t){return this.type=Kt.ImportSpecifier,this.local=e||t,this.imported=t,this.finish(),this},finishImportDeclaration:function(e,t){return this.type=Kt.ImportDeclaration,this.specifiers=e,this.source=t,this.finish(),this}},e.version="2.2.0",e.tokenize=zt,e.parse=Vt,e.Syntax=function(){var e,t={};"function"==typeof Object.create&&(t=Object.create(null));for(e in Kt)Kt.hasOwnProperty(e)&&(t[e]=Kt[e]);return"function"==typeof Object.freeze&&Object.freeze(t),t}()})},{}],52:[function(e,t,n){function r(e,t,n){var r=e?e.length:0;if(!r)return-1;if("number"==typeof n)n=0>n?o(r+n,0):n;else if(n){var s=a(e,t);return r>s&&(t===t?t===e[s]:e[s]!==e[s])?s:-1}return i(e,t,n||0)}var i=e("../internal/baseIndexOf"),a=e("../internal/binaryIndex"),o=Math.max;t.exports=r},{"../internal/baseIndexOf":81,"../internal/binaryIndex":95}],53:[function(e,t,n){function r(e){var t=e?e.length:0;return t?e[t-1]:void 0}t.exports=r},{}],54:[function(e,t,n){function r(e){if(l(e)&&!s(e)&&!(e instanceof i)){if(e instanceof a)return e;if(p.call(e,"__chain__")&&p.call(e,"__wrapped__"))return u(e)}return new a(e)}var i=e("../internal/LazyWrapper"),a=e("../internal/LodashWrapper"),o=e("../internal/baseLodash"),s=e("../lang/isArray"),l=e("../internal/isObjectLike"),u=e("../internal/wrapperClone"),c=Object.prototype,p=c.hasOwnProperty;r.prototype=o.prototype,t.exports=r},{"../internal/LazyWrapper":63,"../internal/LodashWrapper":64,"../internal/baseLodash":85,"../internal/isObjectLike":129,"../internal/wrapperClone":140,"../lang/isArray":143}],55:[function(e,t,n){t.exports=e("./forEach")},{"./forEach":57}],56:[function(e,t,n){var r=e("../internal/baseEach"),i=e("../internal/createFind"),a=i(r);t.exports=a},{"../internal/baseEach":74,"../internal/createFind":105}],57:[function(e,t,n){var r=e("../internal/arrayEach"),i=e("../internal/baseEach"),a=e("../internal/createForEach"),o=a(r,i);t.exports=o},{"../internal/arrayEach":66,"../internal/baseEach":74,"../internal/createForEach":106}],58:[function(e,t,n){function r(e,t,n,r){var f=e?a(e):0;return l(f)||(e=c(e),f=e.length),n="number"!=typeof n||r&&s(t,n,r)?0:0>n?p(f+n,0):n||0,"string"==typeof e||!o(e)&&u(e)?f>=n&&e.indexOf(t,n)>-1:!!f&&i(e,t,n)>-1}var i=e("../internal/baseIndexOf"),a=e("../internal/getLength"),o=e("../lang/isArray"),s=e("../internal/isIterateeCall"),l=e("../internal/isLength"),u=e("../lang/isString"),c=e("../object/values"),p=Math.max;t.exports=r},{"../internal/baseIndexOf":81,"../internal/getLength":115,"../internal/isIterateeCall":125,"../internal/isLength":128,"../lang/isArray":143,"../lang/isString":149,"../object/values":155}],59:[function(e,t,n){function r(e,t,n){var r=s(e)?i:o;return t=a(t,n,3),r(e,t)}var i=e("../internal/arrayMap"),a=e("../internal/baseCallback"),o=e("../internal/baseMap"),s=e("../lang/isArray");t.exports=r},{"../internal/arrayMap":67,"../internal/baseCallback":70,"../internal/baseMap":86,"../lang/isArray":143}],60:[function(e,t,n){var r=e("../internal/getNative"),i=r(Date,"now"),a=i||function(){return(new Date).getTime()};t.exports=a},{"../internal/getNative":117}],61:[function(e,t,n){var r=e("../internal/createWrapper"),i=e("../internal/replaceHolders"),a=e("./restParam"),o=1,s=32,l=a(function(e,t,n){var a=o;if(n.length){var u=i(n,l.placeholder);a|=s}return r(e,a,t,n,u)});l.placeholder={},t.exports=l},{"../internal/createWrapper":109,"../internal/replaceHolders":135,"./restParam":62}],62:[function(e,t,n){function r(e,t){if("function"!=typeof e)throw new TypeError(i);return t=a(void 0===t?e.length-1:+t||0,0),function(){for(var n=arguments,r=-1,i=a(n.length-t,0),o=Array(i);++r<i;)o[r]=n[t+r];switch(t){case 0:return e.call(this,o);case 1:return e.call(this,n[0],o);case 2:return e.call(this,n[0],n[1],o)}var s=Array(t+1);for(r=-1;++r<t;)s[r]=n[r];return s[t]=o,e.apply(this,s)}}var i="Expected a function",a=Math.max;t.exports=r},{}],63:[function(e,t,n){function r(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=o,this.__views__=[]}var i=e("./baseCreate"),a=e("./baseLodash"),o=Number.POSITIVE_INFINITY;r.prototype=i(a.prototype),r.prototype.constructor=r,t.exports=r},{"./baseCreate":73,"./baseLodash":85}],64:[function(e,t,n){function r(e,t,n){this.__wrapped__=e,this.__actions__=n||[],this.__chain__=!!t}var i=e("./baseCreate"),a=e("./baseLodash");r.prototype=i(a.prototype),r.prototype.constructor=r,t.exports=r},{"./baseCreate":73,"./baseLodash":85}],65:[function(e,t,n){function r(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}t.exports=r},{}],66:[function(e,t,n){function r(e,t){for(var n=-1,r=e.length;++n<r&&t(e[n],n,e)!==!1;);return e}t.exports=r},{}],67:[function(e,t,n){function r(e,t){for(var n=-1,r=e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}t.exports=r},{}],68:[function(e,t,n){function r(e,t){for(var n=-1,r=e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}t.exports=r},{}],69:[function(e,t,n){function r(e,t){return null==t?e:i(t,a(t),e)}var i=e("./baseCopy"),a=e("../object/keys");t.exports=r},{"../object/keys":152,"./baseCopy":72}],70:[function(e,t,n){function r(e,t,n){var r=typeof e;return"function"==r?void 0===t?e:o(e,t,n):null==e?s:"object"==r?i(e):void 0===t?l(e):a(e,t)}var i=e("./baseMatches"),a=e("./baseMatchesProperty"),o=e("./bindCallback"),s=e("../utility/identity"),l=e("../utility/property");t.exports=r},{"../utility/identity":157,"../utility/property":159,"./baseMatches":87,"./baseMatchesProperty":88,"./bindCallback":97}],71:[function(e,t,n){function r(e,t,n,m,g,y,v){var w;if(n&&(w=g?n(e,m,g):n(e)),void 0!==w)return w;if(!h(e))return e;var x=p(e);if(x){if(w=l(e),!t)return i(e,w)}else{var A=F.call(e),C=A==b;if(A!=S&&A!=d&&(!C||g))return M[A]?u(e,A,t):g?e:{};if(f(e))return g?e:{};if(w=c(C?{}:e),!t)return o(w,e)}y||(y=[]),v||(v=[]);for(var E=y.length;E--;)if(y[E]==e)return v[E];return y.push(e),v.push(w),(x?a:s)(e,function(i,a){w[a]=r(i,t,n,a,e,y,v)}),w}var i=e("./arrayCopy"),a=e("./arrayEach"),o=e("./baseAssign"),s=e("./baseForOwn"),l=e("./initCloneArray"),u=e("./initCloneByTag"),c=e("./initCloneObject"),p=e("../lang/isArray"),f=e("./isHostObject"),h=e("../lang/isObject"),d="[object Arguments]",m="[object Array]",g="[object Boolean]",y="[object Date]",v="[object Error]",b="[object Function]",w="[object Map]",x="[object Number]",S="[object Object]",A="[object RegExp]",C="[object Set]",E="[object String]",k="[object WeakMap]",O="[object ArrayBuffer]",j="[object Float32Array]",T="[object Float64Array]",I="[object Int8Array]",_="[object Int16Array]",D="[object Int32Array]",L="[object Uint8Array]",P="[object Uint8ClampedArray]",N="[object Uint16Array]",$="[object Uint32Array]",M={};M[d]=M[m]=M[O]=M[g]=M[y]=M[j]=M[T]=M[I]=M[_]=M[D]=M[x]=M[S]=M[A]=M[E]=M[L]=M[P]=M[N]=M[$]=!0,M[v]=M[b]=M[w]=M[C]=M[k]=!1;var R=Object.prototype,F=R.toString;t.exports=r},{"../lang/isArray":143,"../lang/isObject":147,"./arrayCopy":65,"./arrayEach":66,"./baseAssign":69,"./baseForOwn":79,"./initCloneArray":119,"./initCloneByTag":120,"./initCloneObject":121,"./isHostObject":123}],72:[function(e,t,n){function r(e,t,n){n||(n={});for(var r=-1,i=t.length;++r<i;){var a=t[r];n[a]=e[a]}return n}t.exports=r},{}],73:[function(e,t,n){var r=e("../lang/isObject"),i=function(){function e(){}return function(t){if(r(t)){e.prototype=t;var n=new e;e.prototype=void 0}return n||{}}}();t.exports=i},{"../lang/isObject":147}],74:[function(e,t,n){var r=e("./baseForOwn"),i=e("./createBaseEach"),a=i(r);t.exports=a},{"./baseForOwn":79,"./createBaseEach":101}],75:[function(e,t,n){function r(e,t,n,r){var i;return n(e,function(e,n,a){return t(e,n,a)?(i=r?n:e,!1):void 0}),i}t.exports=r},{}],76:[function(e,t,n){function r(e,t,n){for(var r=e.length,i=n?r:-1;n?i--:++i<r;)if(t(e[i],i,e))return i;return-1}t.exports=r},{}],77:[function(e,t,n){var r=e("./createBaseFor"),i=r();t.exports=i},{"./createBaseFor":102}],78:[function(e,t,n){function r(e,t){return i(e,t,a)}var i=e("./baseFor"),a=e("../object/keysIn");t.exports=r},{"../object/keysIn":153,"./baseFor":77}],79:[function(e,t,n){function r(e,t){return i(e,t,a)}var i=e("./baseFor"),a=e("../object/keys");t.exports=r},{"../object/keys":152,"./baseFor":77}],80:[function(e,t,n){function r(e,t,n){if(null!=e){e=i(e),void 0!==n&&n in e&&(t=[n]);for(var r=0,a=t.length;null!=e&&a>r;)e=i(e)[t[r++]];return r&&r==a?e:void 0}}var i=e("./toObject");t.exports=r},{"./toObject":138}],81:[function(e,t,n){function r(e,t,n){if(t!==t)return i(e,n);for(var r=n-1,a=e.length;++r<a;)if(e[r]===t)return r;return-1}var i=e("./indexOfNaN");t.exports=r},{"./indexOfNaN":118}],82:[function(e,t,n){function r(e,t,n,s,l,u){return e===t?!0:null==e||null==t||!a(e)&&!o(t)?e!==e&&t!==t:i(e,t,r,n,s,l,u)}var i=e("./baseIsEqualDeep"),a=e("../lang/isObject"),o=e("./isObjectLike");t.exports=r},{"../lang/isObject":147,"./baseIsEqualDeep":83,"./isObjectLike":129}],83:[function(e,t,n){function r(e,t,n,r,h,g,y){var v=s(e),b=s(t),w=p,x=p;v||(w=m.call(e),w==c?w=f:w!=f&&(v=u(e))),b||(x=m.call(t),x==c?x=f:x!=f&&(b=u(t)));var S=w==f&&!l(e),A=x==f&&!l(t),C=w==x;if(C&&!v&&!S)return a(e,t,w);if(!h){var E=S&&d.call(e,"__wrapped__"),k=A&&d.call(t,"__wrapped__");if(E||k)return n(E?e.value():e,k?t.value():t,r,h,g,y)}if(!C)return!1;g||(g=[]),y||(y=[]);for(var O=g.length;O--;)if(g[O]==e)return y[O]==t;g.push(e),y.push(t);var j=(v?i:o)(e,t,n,r,h,g,y);return g.pop(),y.pop(),j}var i=e("./equalArrays"),a=e("./equalByTag"),o=e("./equalObjects"),s=e("../lang/isArray"),l=e("./isHostObject"),u=e("../lang/isTypedArray"),c="[object Arguments]",p="[object Array]",f="[object Object]",h=Object.prototype,d=h.hasOwnProperty,m=h.toString;t.exports=r},{"../lang/isArray":143,"../lang/isTypedArray":150,"./equalArrays":110,"./equalByTag":111,"./equalObjects":112,"./isHostObject":123}],84:[function(e,t,n){function r(e,t,n){var r=t.length,o=r,s=!n;if(null==e)return!o;for(e=a(e);r--;){var l=t[r];if(s&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++r<o;){l=t[r];var u=l[0],c=e[u],p=l[1];if(s&&l[2]){if(void 0===c&&!(u in e))return!1}else{var f=n?n(c,p,u):void 0;if(!(void 0===f?i(p,c,n,!0):f))return!1}}return!0}var i=e("./baseIsEqual"),a=e("./toObject");t.exports=r},{"./baseIsEqual":82,"./toObject":138}],85:[function(e,t,n){function r(){}t.exports=r},{}],86:[function(e,t,n){function r(e,t){var n=-1,r=a(e)?Array(e.length):[];return i(e,function(e,i,a){r[++n]=t(e,i,a)}),r}var i=e("./baseEach"),a=e("./isArrayLike");t.exports=r},{"./baseEach":74,"./isArrayLike":122}],87:[function(e,t,n){function r(e){var t=a(e);if(1==t.length&&t[0][2]){var n=t[0][0],r=t[0][1];return function(e){return null==e?!1:(e=o(e),e[n]===r&&(void 0!==r||n in e))}}return function(e){return i(e,t)}}var i=e("./baseIsMatch"),a=e("./getMatchData"),o=e("./toObject");t.exports=r},{"./baseIsMatch":84,"./getMatchData":116,"./toObject":138}],88:[function(e,t,n){function r(e,t){var n=s(e),r=l(e)&&u(t),h=e+"";return e=f(e),function(s){if(null==s)return!1;var l=h;if(s=p(s),!(!n&&r||l in s)){if(s=1==e.length?s:i(s,o(e,0,-1)),null==s)return!1;l=c(e),s=p(s)}return s[l]===t?void 0!==t||l in s:a(t,s[l],void 0,!0)}}var i=e("./baseGet"),a=e("./baseIsEqual"),o=e("./baseSlice"),s=e("../lang/isArray"),l=e("./isKey"),u=e("./isStrictComparable"),c=e("../array/last"),p=e("./toObject"),f=e("./toPath");t.exports=r},{"../array/last":53,"../lang/isArray":143,"./baseGet":80,"./baseIsEqual":82,"./baseSlice":92,"./isKey":126,"./isStrictComparable":130,"./toObject":138,"./toPath":139}],89:[function(e,t,n){function r(e){return function(t){return null==t?void 0:i(t)[e]}}var i=e("./toObject");t.exports=r},{"./toObject":138}],90:[function(e,t,n){function r(e){var t=e+"";return e=a(e),function(n){return i(n,e,t)}}var i=e("./baseGet"),a=e("./toPath");t.exports=r},{"./baseGet":80,"./toPath":139}],91:[function(e,t,n){var r=e("../utility/identity"),i=e("./metaMap"),a=i?function(e,t){return i.set(e,t),e}:r;t.exports=a},{"../utility/identity":157,"./metaMap":132}],92:[function(e,t,n){function r(e,t,n){var r=-1,i=e.length;t=null==t?0:+t||0,0>t&&(t=-t>i?0:i+t),n=void 0===n||n>i?i:+n||0,0>n&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r<i;)a[r]=e[r+t];return a}t.exports=r},{}],93:[function(e,t,n){function r(e){return null==e?"":e+""}t.exports=r},{}],94:[function(e,t,n){function r(e,t){for(var n=-1,r=t.length,i=Array(r);++n<r;)i[n]=e[t[n]];return i}t.exports=r},{}],95:[function(e,t,n){function r(e,t,n){var r=0,o=e?e.length:r;if("number"==typeof t&&t===t&&s>=o){for(;o>r;){var l=r+o>>>1,u=e[l];(n?t>=u:t>u)&&null!==u?r=l+1:o=l}return o}return i(e,t,a,n)}var i=e("./binaryIndexBy"),a=e("../utility/identity"),o=4294967295,s=o>>>1;t.exports=r},{"../utility/identity":157,"./binaryIndexBy":96}],96:[function(e,t,n){function r(e,t,n,r){t=n(t);for(var o=0,l=e?e.length:0,u=t!==t,c=null===t,p=void 0===t;l>o;){var f=i((o+l)/2),h=n(e[f]),d=void 0!==h,m=h===h;if(u)var g=m||r;else g=c?m&&d&&(r||null!=h):p?m&&(r||d):null==h?!1:r?t>=h:t>h;g?o=f+1:l=f}return a(l,s)}var i=Math.floor,a=Math.min,o=4294967295,s=o-1;t.exports=r},{}],97:[function(e,t,n){function r(e,t,n){if("function"!=typeof e)return i;if(void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,a){return e.call(t,n,r,i,a)};case 5:return function(n,r,i,a,o){return e.call(t,n,r,i,a,o)}}return function(){return e.apply(t,arguments)}}var i=e("../utility/identity");t.exports=r},{"../utility/identity":157}],98:[function(e,t,n){(function(e){function n(e){var t=new r(e.byteLength),n=new i(t);return n.set(new i(e)),t}var r=e.ArrayBuffer,i=e.Uint8Array;t.exports=n}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],99:[function(e,t,n){function r(e,t,n){for(var r=n.length,a=-1,o=i(e.length-r,0),s=-1,l=t.length,u=Array(l+o);++s<l;)u[s]=t[s];for(;++a<r;)u[n[a]]=e[a];for(;o--;)u[s++]=e[a++];return u}var i=Math.max;t.exports=r},{}],100:[function(e,t,n){function r(e,t,n){for(var r=-1,a=n.length,o=-1,s=i(e.length-a,0),l=-1,u=t.length,c=Array(s+u);++o<s;)c[o]=e[o];for(var p=o;++l<u;)c[p+l]=t[l];for(;++r<a;)c[p+n[r]]=e[o++];return c}var i=Math.max;t.exports=r},{}],101:[function(e,t,n){function r(e,t){return function(n,r){var s=n?i(n):0;if(!a(s))return e(n,r);for(var l=t?s:-1,u=o(n);(t?l--:++l<s)&&r(u[l],l,u)!==!1;);return n}}var i=e("./getLength"),a=e("./isLength"),o=e("./toObject");t.exports=r},{"./getLength":115,"./isLength":128,"./toObject":138}],102:[function(e,t,n){function r(e){return function(t,n,r){for(var a=i(t),o=r(t),s=o.length,l=e?s:-1;e?l--:++l<s;){var u=o[l];if(n(a[u],u,a)===!1)break}return t}}var i=e("./toObject");t.exports=r},{"./toObject":138}],103:[function(e,t,n){(function(n){function r(e,t){function r(){var i=this&&this!==n&&this instanceof r?a:e;return i.apply(t,arguments)}var a=i(e);return r}var i=e("./createCtorWrapper");t.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./createCtorWrapper":104}],104:[function(e,t,n){function r(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=i(e.prototype),r=e.apply(n,t);return a(r)?r:n}}var i=e("./baseCreate"),a=e("../lang/isObject");t.exports=r},{"../lang/isObject":147,"./baseCreate":73}],105:[function(e,t,n){function r(e,t){return function(n,r,l){if(r=i(r,l,3),s(n)){var u=o(n,r,t);return u>-1?n[u]:void 0}return a(n,r,e)}}var i=e("./baseCallback"),a=e("./baseFind"),o=e("./baseFindIndex"),s=e("../lang/isArray");t.exports=r},{"../lang/isArray":143,"./baseCallback":70,"./baseFind":75,"./baseFindIndex":76}],106:[function(e,t,n){function r(e,t){return function(n,r,o){return"function"==typeof r&&void 0===o&&a(n)?e(n,r):t(n,i(r,o,3))}}var i=e("./bindCallback"),a=e("../lang/isArray");t.exports=r},{"../lang/isArray":143,"./bindCallback":97}],107:[function(e,t,n){(function(n){function r(e,t,x,S,A,C,E,k,O,j){function T(){for(var d=arguments.length,m=d,g=Array(d);m--;)g[m]=arguments[m];if(S&&(g=a(g,S,A)),C&&(g=o(g,C,E)),L||N){var b=T.placeholder,M=c(g,b);if(d-=M.length,j>d){var R=k?i(k):void 0,F=w(j-d,0),U=L?M:void 0,B=L?void 0:M,q=L?g:void 0,H=L?void 0:g;t|=L?y:v,t&=~(L?v:y),P||(t&=~(f|h));var z=[e,t,x,q,U,H,B,R,O,F],V=r.apply(void 0,z);return l(e)&&p(V,z),V.placeholder=b,V}}var W=_?x:this,J=D?W[e]:e;return k&&(g=u(g,k)),I&&O<g.length&&(g.length=O),this&&this!==n&&this instanceof T&&(J=$||s(e)),J.apply(W,g)}var I=t&b,_=t&f,D=t&h,L=t&m,P=t&d,N=t&g,$=D?void 0:s(e);return T}var i=e("./arrayCopy"),a=e("./composeArgs"),o=e("./composeArgsRight"),s=e("./createCtorWrapper"),l=e("./isLaziable"),u=e("./reorder"),c=e("./replaceHolders"),p=e("./setData"),f=1,h=2,d=4,m=8,g=16,y=32,v=64,b=128,w=Math.max;t.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./arrayCopy":65,"./composeArgs":99,"./composeArgsRight":100,"./createCtorWrapper":104,"./isLaziable":127,"./reorder":134,"./replaceHolders":135,"./setData":136}],108:[function(e,t,n){(function(n){function r(e,t,r,o){function s(){for(var t=-1,i=arguments.length,a=-1,c=o.length,p=Array(c+i);++a<c;)p[a]=o[a];for(;i--;)p[a++]=arguments[++t];var f=this&&this!==n&&this instanceof s?u:e;return f.apply(l?r:this,p)}var l=t&a,u=i(e);return s}var i=e("./createCtorWrapper"),a=1;t.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./createCtorWrapper":104}],109:[function(e,t,n){function r(e,t,n,r,y,v,b,w){var x=t&f;if(!x&&"function"!=typeof e)throw new TypeError(m);var S=r?r.length:0;if(S||(t&=~(h|d),r=y=void 0),S-=y?y.length:0,t&d){var A=r,C=y;r=y=void 0}var E=x?void 0:l(e),k=[e,t,n,r,y,A,C,v,b,w];if(E&&(u(k,E),t=k[1],w=k[9]),k[9]=null==w?x?0:e.length:g(w-S,0)||0,t==p)var O=a(k[0],k[2]);else O=t!=h&&t!=(p|h)||k[4].length?o.apply(void 0,k):s.apply(void 0,k);var j=E?i:c;return j(O,k)}var i=e("./baseSetData"),a=e("./createBindWrapper"),o=e("./createHybridWrapper"),s=e("./createPartialWrapper"),l=e("./getData"),u=e("./mergeData"),c=e("./setData"),p=1,f=2,h=32,d=64,m="Expected a function",g=Math.max;t.exports=r},{"./baseSetData":91,"./createBindWrapper":103,"./createHybridWrapper":107,"./createPartialWrapper":108,"./getData":113,"./mergeData":131,"./setData":136}],110:[function(e,t,n){function r(e,t,n,r,a,o,s){var l=-1,u=e.length,c=t.length;if(u!=c&&!(a&&c>u))return!1;for(;++l<u;){var p=e[l],f=t[l],h=r?r(a?f:p,a?p:f,l):void 0;if(void 0!==h){if(h)continue;return!1}if(a){if(!i(t,function(e){return p===e||n(p,e,r,a,o,s)}))return!1}else if(p!==f&&!n(p,f,r,a,o,s))return!1}return!0}var i=e("./arraySome");t.exports=r},{"./arraySome":68}],111:[function(e,t,n){function r(e,t,n){switch(n){case i:case a:return+e==+t;case o:return e.name==t.name&&e.message==t.message;case s:return e!=+e?t!=+t:e==+t;case l:case u:return e==t+""}return!1}var i="[object Boolean]",a="[object Date]",o="[object Error]",s="[object Number]",l="[object RegExp]",u="[object String]";t.exports=r},{}],112:[function(e,t,n){function r(e,t,n,r,a,s,l){var u=i(e),c=u.length,p=i(t),f=p.length;if(c!=f&&!a)return!1;for(var h=c;h--;){var d=u[h];if(!(a?d in t:o.call(t,d)))return!1}for(var m=a;++h<c;){d=u[h];var g=e[d],y=t[d],v=r?r(a?y:g,a?g:y,d):void 0;if(!(void 0===v?n(g,y,r,a,s,l):v))return!1;m||(m="constructor"==d)}if(!m){var b=e.constructor,w=t.constructor;if(b!=w&&"constructor"in e&&"constructor"in t&&!("function"==typeof b&&b instanceof b&&"function"==typeof w&&w instanceof w))return!1}return!0}var i=e("../object/keys"),a=Object.prototype,o=a.hasOwnProperty; + +t.exports=r},{"../object/keys":152}],113:[function(e,t,n){var r=e("./metaMap"),i=e("../utility/noop"),a=r?function(e){return r.get(e)}:i;t.exports=a},{"../utility/noop":158,"./metaMap":132}],114:[function(e,t,n){function r(e){for(var t=e.name,n=i[t],r=n?n.length:0;r--;){var a=n[r],o=a.func;if(null==o||o==e)return a.name}return t}var i=e("./realNames");t.exports=r},{"./realNames":133}],115:[function(e,t,n){var r=e("./baseProperty"),i=r("length");t.exports=i},{"./baseProperty":89}],116:[function(e,t,n){function r(e){for(var t=a(e),n=t.length;n--;)t[n][2]=i(t[n][1]);return t}var i=e("./isStrictComparable"),a=e("../object/pairs");t.exports=r},{"../object/pairs":154,"./isStrictComparable":130}],117:[function(e,t,n){function r(e,t){var n=null==e?void 0:e[t];return i(n)?n:void 0}var i=e("../lang/isNative");t.exports=r},{"../lang/isNative":146}],118:[function(e,t,n){function r(e,t,n){for(var r=e.length,i=t+(n?0:-1);n?i--:++i<r;){var a=e[i];if(a!==a)return i}return-1}t.exports=r},{}],119:[function(e,t,n){function r(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&a.call(e,"index")&&(n.index=e.index,n.input=e.input),n}var i=Object.prototype,a=i.hasOwnProperty;t.exports=r},{}],120:[function(e,t,n){(function(n){function r(e,t,n){var r=e.constructor;switch(t){case c:return i(e);case a:case o:return new r(+e);case p:case f:case h:case d:case m:case g:case y:case v:case b:r instanceof r&&(r=S[t]);var x=e.buffer;return new r(n?i(x):x,e.byteOffset,e.length);case s:case u:return new r(e);case l:var A=new r(e.source,w.exec(e));A.lastIndex=e.lastIndex}return A}var i=e("./bufferClone"),a="[object Boolean]",o="[object Date]",s="[object Number]",l="[object RegExp]",u="[object String]",c="[object ArrayBuffer]",p="[object Float32Array]",f="[object Float64Array]",h="[object Int8Array]",d="[object Int16Array]",m="[object Int32Array]",g="[object Uint8Array]",y="[object Uint8ClampedArray]",v="[object Uint16Array]",b="[object Uint32Array]",w=/\w*$/,x=n.Uint8Array,S={};S[p]=n.Float32Array,S[f]=n.Float64Array,S[h]=n.Int8Array,S[d]=n.Int16Array,S[m]=n.Int32Array,S[g]=x,S[y]=n.Uint8ClampedArray,S[v]=n.Uint16Array,S[b]=n.Uint32Array,t.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./bufferClone":98}],121:[function(e,t,n){function r(e){var t=e.constructor;return"function"==typeof t&&t instanceof t||(t=Object),new t}t.exports=r},{}],122:[function(e,t,n){function r(e){return null!=e&&a(i(e))}var i=e("./getLength"),a=e("./isLength");t.exports=r},{"./getLength":115,"./isLength":128}],123:[function(e,t,n){var r=function(){try{Object({toString:0}+"")}catch(e){return function(){return!1}}return function(e){return"function"!=typeof e.toString&&"string"==typeof(e+"")}}();t.exports=r},{}],124:[function(e,t,n){function r(e,t){return e="number"==typeof e||i.test(e)?+e:-1,t=null==t?a:t,e>-1&&e%1==0&&t>e}var i=/^\d+$/,a=9007199254740991;t.exports=r},{}],125:[function(e,t,n){function r(e,t,n){if(!o(n))return!1;var r=typeof t;if("number"==r?i(n)&&a(t,n.length):"string"==r&&t in n){var s=n[t];return e===e?e===s:s!==s}return!1}var i=e("./isArrayLike"),a=e("./isIndex"),o=e("../lang/isObject");t.exports=r},{"../lang/isObject":147,"./isArrayLike":122,"./isIndex":124}],126:[function(e,t,n){function r(e,t){var n=typeof e;if("string"==n&&s.test(e)||"number"==n)return!0;if(i(e))return!1;var r=!o.test(e);return r||null!=t&&e in a(t)}var i=e("../lang/isArray"),a=e("./toObject"),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,s=/^\w*$/;t.exports=r},{"../lang/isArray":143,"./toObject":138}],127:[function(e,t,n){function r(e){var t=o(e);if(!(t in i.prototype))return!1;var n=s[t];if(e===n)return!0;var r=a(n);return!!r&&e===r[0]}var i=e("./LazyWrapper"),a=e("./getData"),o=e("./getFuncName"),s=e("../chain/lodash");t.exports=r},{"../chain/lodash":54,"./LazyWrapper":63,"./getData":113,"./getFuncName":114}],128:[function(e,t,n){function r(e){return"number"==typeof e&&e>-1&&e%1==0&&i>=e}var i=9007199254740991;t.exports=r},{}],129:[function(e,t,n){function r(e){return!!e&&"object"==typeof e}t.exports=r},{}],130:[function(e,t,n){function r(e){return e===e&&!i(e)}var i=e("../lang/isObject");t.exports=r},{"../lang/isObject":147}],131:[function(e,t,n){function r(e,t){var n=e[1],r=t[1],m=n|r,g=p>m,y=r==p&&n==c||r==p&&n==f&&e[7].length<=t[8]||r==(p|f)&&n==c;if(!g&&!y)return e;r&l&&(e[2]=t[2],m|=n&l?0:u);var v=t[3];if(v){var b=e[3];e[3]=b?a(b,v,t[4]):i(v),e[4]=b?s(e[3],h):i(t[4])}return v=t[5],v&&(b=e[5],e[5]=b?o(b,v,t[6]):i(v),e[6]=b?s(e[5],h):i(t[6])),v=t[7],v&&(e[7]=i(v)),r&p&&(e[8]=null==e[8]?t[8]:d(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=m,e}var i=e("./arrayCopy"),a=e("./composeArgs"),o=e("./composeArgsRight"),s=e("./replaceHolders"),l=1,u=4,c=8,p=128,f=256,h="__lodash_placeholder__",d=Math.min;t.exports=r},{"./arrayCopy":65,"./composeArgs":99,"./composeArgsRight":100,"./replaceHolders":135}],132:[function(e,t,n){(function(n){var r=e("./getNative"),i=r(n,"WeakMap"),a=i&&new i;t.exports=a}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./getNative":117}],133:[function(e,t,n){var r={};t.exports=r},{}],134:[function(e,t,n){function r(e,t){for(var n=e.length,r=o(t.length,n),s=i(e);r--;){var l=t[r];e[r]=a(l,n)?s[l]:void 0}return e}var i=e("./arrayCopy"),a=e("./isIndex"),o=Math.min;t.exports=r},{"./arrayCopy":65,"./isIndex":124}],135:[function(e,t,n){function r(e,t){for(var n=-1,r=e.length,a=-1,o=[];++n<r;)e[n]===t&&(e[n]=i,o[++a]=n);return o}var i="__lodash_placeholder__";t.exports=r},{}],136:[function(e,t,n){var r=e("./baseSetData"),i=e("../date/now"),a=150,o=16,s=function(){var e=0,t=0;return function(n,s){var l=i(),u=o-(l-t);if(t=l,u>0){if(++e>=a)return n}else e=0;return r(n,s)}}();t.exports=s},{"../date/now":60,"./baseSetData":91}],137:[function(e,t,n){function r(e){for(var t=u(e),n=t.length,r=n&&e.length,c=!!r&&s(r)&&(a(e)||i(e)||l(e)),f=-1,h=[];++f<n;){var d=t[f];(c&&o(d,r)||p.call(e,d))&&h.push(d)}return h}var i=e("../lang/isArguments"),a=e("../lang/isArray"),o=e("./isIndex"),s=e("./isLength"),l=e("../lang/isString"),u=e("../object/keysIn"),c=Object.prototype,p=c.hasOwnProperty;t.exports=r},{"../lang/isArguments":142,"../lang/isArray":143,"../lang/isString":149,"../object/keysIn":153,"./isIndex":124,"./isLength":128}],138:[function(e,t,n){function r(e){if(o.unindexedChars&&a(e)){for(var t=-1,n=e.length,r=Object(e);++t<n;)r[t]=e.charAt(t);return r}return i(e)?e:Object(e)}var i=e("../lang/isObject"),a=e("../lang/isString"),o=e("../support");t.exports=r},{"../lang/isObject":147,"../lang/isString":149,"../support":156}],139:[function(e,t,n){function r(e){if(a(e))return e;var t=[];return i(e).replace(o,function(e,n,r,i){t.push(r?i.replace(s,"$1"):n||e)}),t}var i=e("./baseToString"),a=e("../lang/isArray"),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,s=/\\(\\)?/g;t.exports=r},{"../lang/isArray":143,"./baseToString":93}],140:[function(e,t,n){function r(e){return e instanceof i?e.clone():new a(e.__wrapped__,e.__chain__,o(e.__actions__))}var i=e("./LazyWrapper"),a=e("./LodashWrapper"),o=e("./arrayCopy");t.exports=r},{"./LazyWrapper":63,"./LodashWrapper":64,"./arrayCopy":65}],141:[function(e,t,n){function r(e,t,n){return"function"==typeof t?i(e,!0,a(t,n,1)):i(e,!0)}var i=e("../internal/baseClone"),a=e("../internal/bindCallback");t.exports=r},{"../internal/baseClone":71,"../internal/bindCallback":97}],142:[function(e,t,n){function r(e){return a(e)&&i(e)&&s.call(e,"callee")&&!l.call(e,"callee")}var i=e("../internal/isArrayLike"),a=e("../internal/isObjectLike"),o=Object.prototype,s=o.hasOwnProperty,l=o.propertyIsEnumerable;t.exports=r},{"../internal/isArrayLike":122,"../internal/isObjectLike":129}],143:[function(e,t,n){var r=e("../internal/getNative"),i=e("../internal/isLength"),a=e("../internal/isObjectLike"),o="[object Array]",s=Object.prototype,l=s.toString,u=r(Array,"isArray"),c=u||function(e){return a(e)&&i(e.length)&&l.call(e)==o};t.exports=c},{"../internal/getNative":117,"../internal/isLength":128,"../internal/isObjectLike":129}],144:[function(e,t,n){function r(e){return null==e?!0:o(e)&&(a(e)||u(e)||i(e)||l(e)&&s(e.splice))?!e.length:!c(e).length}var i=e("./isArguments"),a=e("./isArray"),o=e("../internal/isArrayLike"),s=e("./isFunction"),l=e("../internal/isObjectLike"),u=e("./isString"),c=e("../object/keys");t.exports=r},{"../internal/isArrayLike":122,"../internal/isObjectLike":129,"../object/keys":152,"./isArguments":142,"./isArray":143,"./isFunction":145,"./isString":149}],145:[function(e,t,n){function r(e){return i(e)&&s.call(e)==a}var i=e("./isObject"),a="[object Function]",o=Object.prototype,s=o.toString;t.exports=r},{"./isObject":147}],146:[function(e,t,n){function r(e){return null==e?!1:i(e)?p.test(u.call(e)):o(e)&&(a(e)?p:s).test(e)}var i=e("./isFunction"),a=e("../internal/isHostObject"),o=e("../internal/isObjectLike"),s=/^\[object .+?Constructor\]$/,l=Object.prototype,u=Function.prototype.toString,c=l.hasOwnProperty,p=RegExp("^"+u.call(c).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=r},{"../internal/isHostObject":123,"../internal/isObjectLike":129,"./isFunction":145}],147:[function(e,t,n){function r(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}t.exports=r},{}],148:[function(e,t,n){function r(e){var t;if(!s(e)||f.call(e)!=u||o(e)||a(e)||!p.call(e,"constructor")&&(t=e.constructor,"function"==typeof t&&!(t instanceof t)))return!1;var n;return l.ownLast?(i(e,function(e,t,r){return n=p.call(r,t),!1}),n!==!1):(i(e,function(e,t){n=t}),void 0===n||p.call(e,n))}var i=e("../internal/baseForIn"),a=e("./isArguments"),o=e("../internal/isHostObject"),s=e("../internal/isObjectLike"),l=e("../support"),u="[object Object]",c=Object.prototype,p=c.hasOwnProperty,f=c.toString;t.exports=r},{"../internal/baseForIn":78,"../internal/isHostObject":123,"../internal/isObjectLike":129,"../support":156,"./isArguments":142}],149:[function(e,t,n){function r(e){return"string"==typeof e||i(e)&&s.call(e)==a}var i=e("../internal/isObjectLike"),a="[object String]",o=Object.prototype,s=o.toString;t.exports=r},{"../internal/isObjectLike":129}],150:[function(e,t,n){function r(e){return a(e)&&i(e.length)&&!!T[_.call(e)]}var i=e("../internal/isLength"),a=e("../internal/isObjectLike"),o="[object Arguments]",s="[object Array]",l="[object Boolean]",u="[object Date]",c="[object Error]",p="[object Function]",f="[object Map]",h="[object Number]",d="[object Object]",m="[object RegExp]",g="[object Set]",y="[object String]",v="[object WeakMap]",b="[object ArrayBuffer]",w="[object Float32Array]",x="[object Float64Array]",S="[object Int8Array]",A="[object Int16Array]",C="[object Int32Array]",E="[object Uint8Array]",k="[object Uint8ClampedArray]",O="[object Uint16Array]",j="[object Uint32Array]",T={};T[w]=T[x]=T[S]=T[A]=T[C]=T[E]=T[k]=T[O]=T[j]=!0,T[o]=T[s]=T[b]=T[l]=T[u]=T[c]=T[p]=T[f]=T[h]=T[d]=T[m]=T[g]=T[y]=T[v]=!1;var I=Object.prototype,_=I.toString;t.exports=r},{"../internal/isLength":128,"../internal/isObjectLike":129}],151:[function(e,t,n){function r(e){return void 0===e}t.exports=r},{}],152:[function(e,t,n){var r=e("../internal/getNative"),i=e("../internal/isArrayLike"),a=e("../lang/isObject"),o=e("../internal/shimKeys"),s=e("../support"),l=r(Object,"keys"),u=l?function(e){var t=null==e?void 0:e.constructor;return"function"==typeof t&&t.prototype===e||("function"==typeof e?s.enumPrototypes:i(e))?o(e):a(e)?l(e):[]}:o;t.exports=u},{"../internal/getNative":117,"../internal/isArrayLike":122,"../internal/shimKeys":137,"../lang/isObject":147,"../support":156}],153:[function(e,t,n){function r(e){if(null==e)return[];c(e)||(e=Object(e));var t=e.length;t=t&&u(t)&&(o(e)||a(e)||p(e))&&t||0;for(var n=e.constructor,r=-1,i=s(n)&&n.prototype||C,h=i===e,d=Array(t),m=t>0,y=f.enumErrorProps&&(e===A||e instanceof Error),v=f.enumPrototypes&&s(e);++r<t;)d[r]=r+"";for(var w in e)v&&"prototype"==w||y&&("message"==w||"name"==w)||m&&l(w,t)||"constructor"==w&&(h||!k.call(e,w))||d.push(w);if(f.nonEnumShadows&&e!==C){var T=e===E?x:e===A?g:O.call(e),I=j[T]||j[b];for(T==b&&(i=C),t=S.length;t--;){w=S[t];var _=I[w];h&&_||(_?!k.call(e,w):e[w]===i[w])||d.push(w)}}return d}var i=e("../internal/arrayEach"),a=e("../lang/isArguments"),o=e("../lang/isArray"),s=e("../lang/isFunction"),l=e("../internal/isIndex"),u=e("../internal/isLength"),c=e("../lang/isObject"),p=e("../lang/isString"),f=e("../support"),h="[object Array]",d="[object Boolean]",m="[object Date]",g="[object Error]",y="[object Function]",v="[object Number]",b="[object Object]",w="[object RegExp]",x="[object String]",S=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],A=Error.prototype,C=Object.prototype,E=String.prototype,k=C.hasOwnProperty,O=C.toString,j={};j[h]=j[m]=j[v]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},j[d]=j[x]={constructor:!0,toString:!0,valueOf:!0},j[g]=j[y]=j[w]={constructor:!0,toString:!0},j[b]={constructor:!0},i(S,function(e){for(var t in j)if(k.call(j,t)){var n=j[t];n[e]=k.call(n,e)}}),t.exports=r},{"../internal/arrayEach":66,"../internal/isIndex":124,"../internal/isLength":128,"../lang/isArguments":142,"../lang/isArray":143,"../lang/isFunction":145,"../lang/isObject":147,"../lang/isString":149,"../support":156}],154:[function(e,t,n){function r(e){e=a(e);for(var t=-1,n=i(e),r=n.length,o=Array(r);++t<r;){var s=n[t];o[t]=[s,e[s]]}return o}var i=e("./keys"),a=e("../internal/toObject");t.exports=r},{"../internal/toObject":138,"./keys":152}],155:[function(e,t,n){function r(e){return i(e,a(e))}var i=e("../internal/baseValues"),a=e("./keys");t.exports=r},{"../internal/baseValues":94,"./keys":152}],156:[function(e,t,n){var r=Array.prototype,i=Error.prototype,a=Object.prototype,o=a.propertyIsEnumerable,s=r.splice,l={};!function(e){var t=function(){this.x=e},n={0:e,length:e},r=[];t.prototype={valueOf:e,y:e};for(var a in new t)r.push(a);l.enumErrorProps=o.call(i,"message")||o.call(i,"name"),l.enumPrototypes=o.call(t,"prototype"),l.nonEnumShadows=!/valueOf/.test(r),l.ownLast="x"!=r[0],l.spliceObjects=(s.call(n,0,1),!n[0]),l.unindexedChars="x"[0]+Object("x")[0]!="xx"}(1,0),t.exports=l},{}],157:[function(e,t,n){function r(e){return e}t.exports=r},{}],158:[function(e,t,n){function r(){}t.exports=r},{}],159:[function(e,t,n){function r(e){return o(e)?i(e):a(e)}var i=e("../internal/baseProperty"),a=e("../internal/basePropertyDeep"),o=e("../internal/isKey");t.exports=r},{"../internal/baseProperty":89,"../internal/basePropertyDeep":90,"../internal/isKey":126}],160:[function(e,t,n){function r(){}function i(e){var t={}.toString.call(e);switch(t){case"[object File]":case"[object Blob]":case"[object FormData]":return!0;default:return!1}}function a(e){return e===Object(e)}function o(e){if(!a(e))return e;var t=[];for(var n in e)null!=e[n]&&t.push(encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t.join("&")}function s(e){for(var t,n,r={},i=e.split("&"),a=0,o=i.length;o>a;++a)n=i[a],t=n.split("="),r[decodeURIComponent(t[0])]=decodeURIComponent(t[1]);return r}function l(e){var t,n,r,i,a=e.split(/\r?\n/),o={};a.pop();for(var s=0,l=a.length;l>s;++s)n=a[s],t=n.indexOf(":"),r=n.slice(0,t).toLowerCase(),i=y(n.slice(t+1)),o[r]=i;return o}function u(e){return e.split(/ *; */).shift()}function c(e){return m(e.split(/ *; */),function(e,t){var n=t.split(/ *= */),r=n.shift(),i=n.shift();return r&&i&&(e[r]=i),e},{})}function p(e,t){t=t||{},this.req=e,this.xhr=this.req.xhr,this.text="HEAD"!=this.req.method&&(""===this.xhr.responseType||"text"===this.xhr.responseType)||"undefined"==typeof this.xhr.responseType?this.xhr.responseText:null,this.statusText=this.req.xhr.statusText,this.setStatusProperties(this.xhr.status),this.header=this.headers=l(this.xhr.getAllResponseHeaders()),this.header["content-type"]=this.xhr.getResponseHeader("content-type"),this.setHeaderProperties(this.header),this.body="HEAD"!=this.req.method?this.parseBody(this.text?this.text:this.xhr.response):null}function f(e,t){var n=this;d.call(this),this._query=this._query||[],this.method=e,this.url=t,this.header={},this._header={},this.on("end",function(){var e=null,t=null;try{t=new p(n)}catch(r){return e=new Error("Parser is unable to parse the response"),e.parse=!0,e.original=r,n.callback(e)}if(n.emit("response",t),e)return n.callback(e,t);if(t.status>=200&&t.status<300)return n.callback(e,t);var i=new Error(t.statusText||"Unsuccessful HTTP response");i.original=e,i.response=t,i.status=t.status,n.callback(e||i,t)})}function h(e,t){return"function"==typeof t?new f("GET",e).end(t):1==arguments.length?new f("GET",e):new f(e,t)}var d=e("emitter"),m=e("reduce"),g="undefined"==typeof window?this||self:window;h.getXHR=function(){if(!(!g.XMLHttpRequest||g.location&&"file:"==g.location.protocol&&g.ActiveXObject))return new XMLHttpRequest;try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(e){}return!1};var y="".trim?function(e){return e.trim()}:function(e){return e.replace(/(^\s*|\s*$)/g,"")};h.serializeObject=o,h.parseString=s,h.types={html:"text/html",json:"application/json",xml:"application/xml",urlencoded:"application/x-www-form-urlencoded",form:"application/x-www-form-urlencoded","form-data":"application/x-www-form-urlencoded"},h.serialize={"application/x-www-form-urlencoded":o,"application/json":JSON.stringify},h.parse={"application/x-www-form-urlencoded":s,"application/json":JSON.parse},p.prototype.get=function(e){return this.header[e.toLowerCase()]},p.prototype.setHeaderProperties=function(e){var t=this.header["content-type"]||"";this.type=u(t);var n=c(t);for(var r in n)this[r]=n[r]},p.prototype.parseBody=function(e){var t=h.parse[this.type];return t&&e&&(e.length||e instanceof Object)?t(e):null},p.prototype.setStatusProperties=function(e){1223===e&&(e=204);var t=e/100|0;this.status=e,this.statusType=t,this.info=1==t,this.ok=2==t,this.clientError=4==t,this.serverError=5==t,this.error=4==t||5==t?this.toError():!1,this.accepted=202==e,this.noContent=204==e,this.badRequest=400==e,this.unauthorized=401==e,this.notAcceptable=406==e,this.notFound=404==e,this.forbidden=403==e},p.prototype.toError=function(){var e=this.req,t=e.method,n=e.url,r="cannot "+t+" "+n+" ("+this.status+")",i=new Error(r);return i.status=this.status,i.method=t,i.url=n,i},h.Response=p,d(f.prototype),f.prototype.use=function(e){return e(this),this},f.prototype.timeout=function(e){return this._timeout=e,this},f.prototype.clearTimeout=function(){return this._timeout=0,clearTimeout(this._timer),this},f.prototype.abort=function(){return this.aborted?void 0:(this.aborted=!0,this.xhr.abort(),this.clearTimeout(),this.emit("abort"),this)},f.prototype.set=function(e,t){if(a(e)){for(var n in e)this.set(n,e[n]);return this}return this._header[e.toLowerCase()]=t,this.header[e]=t,this},f.prototype.unset=function(e){return delete this._header[e.toLowerCase()],delete this.header[e],this},f.prototype.getHeader=function(e){return this._header[e.toLowerCase()]},f.prototype.type=function(e){return this.set("Content-Type",h.types[e]||e),this},f.prototype.accept=function(e){return this.set("Accept",h.types[e]||e),this},f.prototype.auth=function(e,t){var n=btoa(e+":"+t);return this.set("Authorization","Basic "+n),this},f.prototype.query=function(e){return"string"!=typeof e&&(e=o(e)),e&&this._query.push(e),this},f.prototype.field=function(e,t){return this._formData||(this._formData=new g.FormData),this._formData.append(e,t),this},f.prototype.attach=function(e,t,n){return this._formData||(this._formData=new g.FormData),this._formData.append(e,t,n),this},f.prototype.send=function(e){var t=a(e),n=this.getHeader("Content-Type");if(t&&a(this._data))for(var r in e)this._data[r]=e[r];else"string"==typeof e?(n||this.type("form"),n=this.getHeader("Content-Type"),this._data="application/x-www-form-urlencoded"==n?this._data?this._data+"&"+e:e:(this._data||"")+e):this._data=e;return!t||i(e)?this:(n||this.type("json"),this)},f.prototype.callback=function(e,t){var n=this._callback;this.clearTimeout(),n(e,t)},f.prototype.crossDomainError=function(){var e=new Error("Origin is not allowed by Access-Control-Allow-Origin");e.crossDomain=!0,this.callback(e)},f.prototype.timeoutError=function(){var e=this._timeout,t=new Error("timeout of "+e+"ms exceeded");t.timeout=e,this.callback(t)},f.prototype.withCredentials=function(){return this._withCredentials=!0,this},f.prototype.end=function(e){var t=this,n=this.xhr=h.getXHR(),a=this._query.join("&"),o=this._timeout,s=this._formData||this._data;this._callback=e||r,n.onreadystatechange=function(){if(4==n.readyState){var e;try{e=n.status}catch(r){e=0}if(0==e){if(t.timedout)return t.timeoutError();if(t.aborted)return;return t.crossDomainError()}t.emit("end")}};var l=function(e){e.total>0&&(e.percent=e.loaded/e.total*100),t.emit("progress",e)};this.hasListeners("progress")&&(n.onprogress=l);try{n.upload&&this.hasListeners("progress")&&(n.upload.onprogress=l)}catch(u){}if(o&&!this._timer&&(this._timer=setTimeout(function(){t.timedout=!0,t.abort()},o)),a&&(a=h.serializeObject(a),this.url+=~this.url.indexOf("?")?"&"+a:"?"+a),n.open(this.method,this.url,!0),this._withCredentials&&(n.withCredentials=!0),"GET"!=this.method&&"HEAD"!=this.method&&"string"!=typeof s&&!i(s)){var c=h.serialize[this.getHeader("Content-Type")];c&&(s=c(s))}for(var p in this.header)null!=this.header[p]&&n.setRequestHeader(p,this.header[p]);return this.emit("request",this),n.send(s),this},h.Request=f,h.get=function(e,t,n){var r=h("GET",e);return"function"==typeof t&&(n=t,t=null),t&&r.query(t),n&&r.end(n),r},h.head=function(e,t,n){var r=h("HEAD",e);return"function"==typeof t&&(n=t,t=null),t&&r.send(t),n&&r.end(n),r},h.del=function(e,t){var n=h("DELETE",e);return t&&n.end(t),n},h.patch=function(e,t,n){var r=h("PATCH",e);return"function"==typeof t&&(n=t,t=null),t&&r.send(t),n&&r.end(n),r},h.post=function(e,t,n){var r=h("POST",e);return"function"==typeof t&&(n=t,t=null),t&&r.send(t),n&&r.end(n),r},h.put=function(e,t,n){var r=h("PUT",e);return"function"==typeof t&&(n=t,t=null),t&&r.send(t),n&&r.end(n),r},t.exports=h},{emitter:161,reduce:162}],161:[function(e,t,n){function r(e){return e?i(e):void 0}function i(e){for(var t in r.prototype)e[t]=r.prototype[t];return e}t.exports=r,r.prototype.on=r.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[e]=this._callbacks[e]||[]).push(t),this},r.prototype.once=function(e,t){function n(){r.off(e,n),t.apply(this,arguments)}var r=this;return this._callbacks=this._callbacks||{},n.fn=t,this.on(e,n),this},r.prototype.off=r.prototype.removeListener=r.prototype.removeAllListeners=r.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks[e];if(!n)return this;if(1==arguments.length)return delete this._callbacks[e],this;for(var r,i=0;i<n.length;i++)if(r=n[i],r===t||r.fn===t){n.splice(i,1);break}return this},r.prototype.emit=function(e){this._callbacks=this._callbacks||{};var t=[].slice.call(arguments,1),n=this._callbacks[e];if(n){n=n.slice(0);for(var r=0,i=n.length;i>r;++r)n[r].apply(this,t)}return this},r.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks[e]||[]},r.prototype.hasListeners=function(e){return!!this.listeners(e).length}},{}],162:[function(e,t,n){t.exports=function(e,t,n){for(var r=0,i=e.length,a=3==arguments.length?n:e[r++];i>r;)a=t.call(null,a,e[r],++r,e);return a}},{}]},{},[1])(1)}),SwaggerUi.Views.ApiKeyButton=Backbone.View.extend({events:{"click #apikey_button":"toggleApiKeyContainer","click #apply_api_key":"applyApiKey"},initialize:function(e){this.options=e||{},this.router=this.options.router},render:function(){var e=this.template();return $(this.el).html(e(this.model)),this},applyApiKey:function(){var e=new SwaggerClient.ApiKeyAuthorization(this.model.name,$("#input_apiKey_entry").val(),this.model["in"]);this.router.api.clientAuthorizations.add(this.model.name,e),this.router.load(),$("#apikey_container").show()},toggleApiKeyContainer:function(){if($("#apikey_container").length){var e=$("#apikey_container").first();e.is(":visible")?e.hide():($(".auth_container").hide(),e.show())}},template:function(){return Handlebars.templates.apikey_button_view}}),SwaggerUi.Views.BasicAuthButton=Backbone.View.extend({initialize:function(e){this.options=e||{},this.router=this.options.router},render:function(){var e=this.template();return $(this.el).html(e(this.model)),this},events:{"click #basic_auth_button":"togglePasswordContainer","click #apply_basic_auth":"applyPassword"},applyPassword:function(){var e=$(".input_username").val(),t=$(".input_password").val(),n=new SwaggerClient.PasswordAuthorization("basic",e,t);this.router.api.clientAuthorizations.add(this.model.type,n),this.router.load(),$("#basic_auth_container").hide()},togglePasswordContainer:function(){if($("#basic_auth_container").length){var e=$("#basic_auth_container").show();e.is(":visible")?e.slideUp():($(".auth_container").hide(),e.show())}},template:function(){return Handlebars.templates.basic_auth_button_view}}),SwaggerUi.Views.ContentTypeView=Backbone.View.extend({initialize:function(){},render:function(){return this.model.contentTypeId="ct"+Math.random(),$(this.el).html(Handlebars.templates.content_type(this.model)),this}}),SwaggerUi.Views.HeaderView=Backbone.View.extend({events:{"click #show-pet-store-icon":"showPetStore","click #explore":"showCustom","keyup #input_baseUrl":"showCustomOnKeyup","keyup #input_apiKey":"showCustomOnKeyup"},initialize:function(){},showPetStore:function(){this.trigger("update-swagger-ui",{url:"http://petstore.swagger.io/v2/swagger.json"})},showCustomOnKeyup:function(e){13===e.keyCode&&this.showCustom()},showCustom:function(e){e&&e.preventDefault(),this.trigger("update-swagger-ui",{url:$("#input_baseUrl").val(),apiKey:$("#input_apiKey").val()})},update:function(e,t,n){void 0===n&&(n=!1),$("#input_baseUrl").val(e),n&&this.trigger("update-swagger-ui",{url:e})}}),SwaggerUi.Views.MainView=Backbone.View.extend({apisSorter:{alpha:function(e,t){return e.name.localeCompare(t.name)}},operationsSorters:{alpha:function(e,t){return e.path.localeCompare(t.path)},method:function(e,t){return e.method.localeCompare(t.method)}},initialize:function(e){var t,n,r,i;if(e=e||{},this.router=e.router,e.swaggerOptions.apisSorter&&(t=e.swaggerOptions.apisSorter,n=_.isFunction(t)?t:this.apisSorter[t],_.isFunction(n)&&this.model.apisArray.sort(n)),e.swaggerOptions.operationsSorter&&(t=e.swaggerOptions.operationsSorter,n=_.isFunction(t)?t:this.operationsSorters[t],_.isFunction(n)))for(r in this.model.apisArray)this.model.apisArray[r].operationsArray.sort(n);this.model.auths=[];for(r in this.model.securityDefinitions)i=this.model.securityDefinitions[r],this.model.auths.push({name:r,type:i.type,value:i});this.model.validatorUrl="validatorUrl"in e.swaggerOptions?e.swaggerOptions.validatorUrl:this.model.url.indexOf("localhost")>0?null:"https:"===window.location.protocol?"https://online.swagger.io/validator":"http://online.swagger.io/validator"},render:function(){if(this.model.securityDefinitions)for(var e in this.model.securityDefinitions){var t,n=this.model.securityDefinitions[e];"apiKey"===n.type&&0===$("#apikey_button").length&&(t=new SwaggerUi.Views.ApiKeyButton({model:n,router:this.router}).render().el,$(".auth_main_container").append(t)),"basicAuth"===n.type&&0===$("#basic_auth_button").length&&(t=new SwaggerUi.Views.BasicAuthButton({model:n,router:this.router}).render().el,$(".auth_main_container").append(t))}$(this.el).html(Handlebars.templates.main(this.model));for(var r={},i=0,a=0;a<this.model.apisArray.length;a++){for(var o=this.model.apisArray[a],s=o.name;"undefined"!=typeof r[s];)s=s+"_"+i,i+=1;o.id=s,r[s]=o,this.addResource(o,this.model.auths)}return $(".propWrap").hover(function(){$(".optionsWrapper",$(this)).show()},function(){$(".optionsWrapper",$(this)).hide()}),this},addResource:function(e,t){e.id=e.id.replace(/\s/g,"_");var n=new SwaggerUi.Views.ResourceView({model:e,router:this.router,tagName:"li",id:"resource_"+e.id,className:"resource",auths:t,swaggerOptions:this.options.swaggerOptions});$("#resources",this.el).append(n.render().el)},clear:function(){$(this.el).html("")}}),SwaggerUi.Views.OperationView=Backbone.View.extend({invocationUrl:null,events:{"submit .sandbox":"submitOperation","click .submit":"submitOperation","click .response_hider":"hideResponse","click .toggleOperation":"toggleOperationContent","mouseenter .api-ic":"mouseEnter","dblclick .curl":"selectText"},initialize:function(e){return e=e||{},this.router=e.router,this.auths=e.auths,this.parentId=this.model.parentId,this.nickname=this.model.nickname,this.model.encodedParentId=encodeURIComponent(this.parentId),this},selectText:function(e){var t,n,r=document,i=e.target.firstChild;r.body.createTextRange?(t=document.body.createTextRange(),t.moveToElementText(i),t.select()):window.getSelection&&(n=window.getSelection(),t=document.createRange(),t.selectNodeContents(i),n.removeAllRanges(),n.addRange(t))},mouseEnter:function(e){var t=$(this.el).find(".content"),n=e.pageX,r=e.pageY,i=$(window).scrollLeft(),a=$(window).scrollTop(),o=i+$(window).width(),s=a+$(window).height(),l=t.width(),u=t.height();n+l>o&&(n=o-l),i>n&&(n=i),r+u>s&&(r=s-u),a>r&&(r=a);var c={};c.top=r,c.left=n,t.css(c)},render:function(){var e,t,n,r,i,a,o,s,l,u,c,p,f,h,d,m,g,y,v,b,w,x,S,A,C,E,k,O,j,T,I,_,D,L,P,N,M,R;if(a=jQuery.inArray(this.model.method,this.model.supportedSubmitMethods())>=0,a||(this.model.isReadOnly=!0),this.model.description=this.model.description||this.model.notes,this.model.oauth=null,m=this.model.authorizations||this.model.security)if(Array.isArray(m))for(l=0,u=m.length;u>l;l++){n=m[l];for(s in n)for(e in this.auths)if(t=this.auths[e],s===t.name&&"oauth2"===t.type){this.model.oauth={},this.model.oauth.scopes=[],S=t.value.scopes;for(o in S)M=S[o],_=n[s].indexOf(o),_>=0&&(y={scope:o,description:M},this.model.oauth.scopes.push(y))}}else for(o in m)if(M=m[o],"oauth2"===o)for(null===this.model.oauth&&(this.model.oauth={}),void 0===this.model.oauth.scopes&&(this.model.oauth.scopes=[]),d=0,c=M.length;c>d;d++)y=M[d],this.model.oauth.scopes.push(y);if("undefined"!=typeof this.model.responses){this.model.responseMessages=[],A=this.model.responses;for(r in A)R=A[r],T=null,I=this.model.responses[r].schema,I&&I.$ref&&(T=I.$ref,-1!==T.indexOf("#/definitions/")&&(T=T.replace(/^.*#\/definitions\//,""))),this.model.responseMessages.push({code:r,message:R.description,responseModel:T})}if("undefined"==typeof this.model.responseMessages&&(this.model.responseMessages=[]),D=null,this.model.successResponse){P=this.model.successResponse;for(s in P)R=P[s],this.model.successCode=s,"object"==typeof R&&"function"==typeof R.createJSONSample&&(D={sampleJSON:JSON.stringify(R.createJSONSample(),void 0,2),isParam:!1,signature:R.getMockSignature()})}else this.model.responseClassSignature&&"string"!==this.model.responseClassSignature&&(D={sampleJSON:this.model.responseSampleJSON,isParam:!1,signature:this.model.responseClassSignature});var F=this.options.swaggerOptions;for(F.showRequestHeaders&&(this.model.showRequestHeaders=!0),$(this.el).html(Handlebars.templates.operation(this.model)),D?(j=new SwaggerUi.Views.SignatureView({model:D,router:this.router,tagName:"div"}),$(".model-signature",$(this.el)).append(j.render().el)):(this.model.responseClassSignature="string",$(".model-signature",$(this.el)).html(this.model.type)),i={isParam:!1},i.consumes=this.model.consumes,i.produces=this.model.produces,C=this.model.parameters,g=0,p=C.length;p>g;g++)b=C[g],N=b.type||b.dataType||"","undefined"==typeof N&&(T=b.schema,T&&T.$ref&&(x=T.$ref,N=0===x.indexOf("#/definitions/")?x.substring("#/definitions/".length):x)),N&&"file"===N.toLowerCase()&&(i.consumes||(i.consumes="multipart/form-data")), +b.type=N;for(O=new SwaggerUi.Views.ResponseContentTypeView({model:i,router:this.router}),$(".response-content-type",$(this.el)).append(O.render().el),E=this.model.parameters,v=0,f=E.length;f>v;v++)b=E[v],this.addParameter(b,i.consumes);for(k=this.model.responseMessages,w=0,h=k.length;h>w;w++)L=k[w],this.addStatusCode(L);return this},addParameter:function(e,t){e.consumes=t;var n=new SwaggerUi.Views.ParameterView({model:e,tagName:"tr",readOnly:this.model.isReadOnly});$(".operation-params",$(this.el)).append(n.render().el)},addStatusCode:function(e){var t=new SwaggerUi.Views.StatusCodeView({model:e,tagName:"tr",router:this.router});$(".operation-status",$(this.el)).append(t.render().el)},submitOperation:function(e){var t,n,r,i,a;if(null!==e&&e.preventDefault(),n=$(".sandbox",$(this.el)),t=!0,n.find("input.required").each(function(){$(this).removeClass("error"),""===jQuery.trim($(this).val())&&($(this).addClass("error"),$(this).wiggle({callback:function(e){return function(){$(e).focus()}}(this)}),t=!1)}),n.find("textarea.required").each(function(){$(this).removeClass("error"),""===jQuery.trim($(this).val())&&($(this).addClass("error"),$(this).wiggle({callback:function(e){return function(){return $(e).focus()}}(this)}),t=!1)}),n.find("select.required").each(function(){$(this).removeClass("error"),-1===this.selectedIndex&&($(this).addClass("error"),$(this).wiggle({callback:function(e){return function(){$(e).focus()}}(this)}),t=!1)}),t){if(i=this.getInputMap(n),r=this.isFileUpload(n),a={parent:this},this.options.swaggerOptions)for(var o in this.options.swaggerOptions)a[o]=this.options.swaggerOptions[o];return a.responseContentType=$("div select[name=responseContentType]",$(this.el)).val(),a.requestContentType=$("div select[name=parameterContentType]",$(this.el)).val(),$(".response_throbber",$(this.el)).show(),r?($(".request_url",$(this.el)).html("<pre></pre>"),$(".request_url pre",$(this.el)).text(this.invocationUrl),a.useJQuery=!0,i.parameterContentType="multipart/form-data",this.model.execute(i,a,this.showCompleteStatus,this.showErrorStatus,this)):(this.map=i,this.model.execute(i,a,this.showCompleteStatus,this.showErrorStatus,this))}},getInputMap:function(e){var t,n,r,i,a,o,s,l,u,c,p,f;for(t={},n=e.find("input"),r=0,i=n.length;i>r;r++)a=n[r],null!==a.value&&jQuery.trim(a.value).length>0&&(t[a.name]=a.value),"file"===a.type&&(t[a.name]=a.files[0]);for(o=e.find("textarea"),s=0,l=o.length;l>s;s++)a=o[s],u=this.getTextAreaValue(a),null!==u&&jQuery.trim(u).length>0&&(t[a.name]=u);for(c=e.find("select"),p=0,f=c.length;f>p;p++)a=c[p],u=this.getSelectedValue(a),null!==u&&jQuery.trim(u).length>0&&(t[a.name]=u);return t},isFileUpload:function(e){var t,n,r,i,a=!1;for(t=e.find("input"),n=0,r=t.length;r>n;n++)i=t[n],"file"===i.type&&(a=!0);return a},success:function(e,t){t.showCompleteStatus(e)},wrap:function(e){var t,n,r,i,a,o,s;for(r={},n=e.getAllResponseHeaders().split("\r"),a=0,o=n.length;o>a;a++)i=n[a],t=i.match(/^([^:]*?):(.*)$/),t||(t=[]),t.shift(),void 0!==t[0]&&void 0!==t[1]&&(r[t[0].trim()]=t[1].trim());return s={},s.content={},s.content.data=e.responseText,s.headers=r,s.request={},s.request.url=this.invocationUrl,s.status=e.status,s},getSelectedValue:function(e){if(e.multiple){for(var t=[],n=0,r=e.options.length;r>n;n++){var i=e.options[n];i.selected&&t.push(i.value)}return t.length>0?t:null}return e.value},hideResponse:function(e){e&&e.preventDefault(),$(".response",$(this.el)).slideUp(),$(".response_hider",$(this.el)).fadeOut()},showResponse:function(e){var t=JSON.stringify(e,null," ").replace(/\n/g,"<br>");$(".response_body",$(this.el)).html(_.escape(t))},showErrorStatus:function(e,t){t.showStatus(e)},showCompleteStatus:function(e,t){t.showStatus(e)},formatXml:function(e){var t,n,r,i,a,o,s,l,u,c,p,f,h;for(p=/(>)(<)(\/*)/g,h=/[ ]*(.*)[ ]+\n/g,t=/(<.+>)(.+\n)/g,e=e.replace(p,"$1\n$2$3").replace(h,"$1\n").replace(t,"$1\n$2"),c=0,r="",l=e.split("\n"),i=0,o="other",f={"single->single":0,"single->closing":-1,"single->opening":0,"single->other":0,"closing->single":0,"closing->closing":-1,"closing->opening":0,"closing->other":0,"opening->single":1,"opening->closing":0,"opening->opening":1,"opening->other":1,"other->single":0,"other->closing":-1,"other->opening":0,"other->other":0},n=function(e){var t,n,a,s,l,u,c;u={single:Boolean(e.match(/<.+\/>/)),closing:Boolean(e.match(/<\/.+>/)),opening:Boolean(e.match(/<[^!?].*>/))},l=function(){var e;e=[];for(a in u)c=u[a],c&&e.push(a);return e}()[0],l=void 0===l?"other":l,t=o+"->"+l,o=l,s="",i+=f[t],s=function(){var e,t,r;for(r=[],n=e=0,t=i;t>=0?t>e:e>t;n=t>=0?++e:--e)r.push(" ");return r}().join(""),"opening->closing"===t?r=r.substr(0,r.length-1)+e+"\n":r+=s+e+"\n"},a=0,s=l.length;s>a;a++)u=l[a],n(u);return r},showStatus:function(e){var t,n;void 0===e.content?(n=e.data,t=e.url):(n=e.content.data,t=e.request.url);var r=e.headers;n=jQuery.trim(n);var i=null;r&&(i=r["Content-Type"]||r["content-type"],i&&(i=i.split(";")[0].trim())),$(".response_body",$(this.el)).removeClass("json"),$(".response_body",$(this.el)).removeClass("xml");var a,o,s=function(e){var t=document.createElement("audio");return!(!t.canPlayType||!t.canPlayType(e).replace(/no/,""))};if(n)if("application/json"===i||/\+json$/.test(i)){var l=null;try{l=JSON.stringify(JSON.parse(n),null," ")}catch(u){l="can't parse JSON. Raw result:\n\n"+n}o=$("<code />").text(l),a=$('<pre class="json" />').append(o)}else if("application/xml"===i||/\+xml$/.test(i))o=$("<code />").text(this.formatXml(n)),a=$('<pre class="xml" />').append(o);else if("text/html"===i)o=$("<code />").html(_.escape(n)),a=$('<pre class="xml" />').append(o);else if(/text\/plain/.test(i))o=$("<code />").text(n),a=$('<pre class="plain" />').append(o);else if(/^image\//.test(i))a=$("<img>").attr("src",t);else if(/^audio\//.test(i)&&s(i))a=$("<audio controls>").append($("<source>").attr("src",t).attr("type",i));else if(r["Content-Disposition"]&&/attachment/.test(r["Content-Disposition"])||r["content-disposition"]&&/attachment/.test(r["content-disposition"])||r["Content-Description"]&&/File Transfer/.test(r["Content-Description"])||r["content-description"]&&/File Transfer/.test(r["content-description"]))if("Blob"in window){var c=i||"text/html",p=new Blob([n],{type:c}),f=document.createElement("a"),h=window.URL.createObjectURL(p),d=e.url.substr(e.url.lastIndexOf("/")+1),m=[c,d,h].join(":");f.setAttribute("href",h),f.setAttribute("download",m),f.innerText="Download "+d,a=$("<div/>").append(f)}else a=$('<pre class="json" />').append("Download headers detected but your browser does not support downloading binary via XHR (Blob).");else r.location||r.Location?window.location=e.url:(o=$("<code />").text(n),a=$('<pre class="json" />').append(o));else o=$("<code />").text("no content"),a=$('<pre class="json" />').append(o);var g=a;$(".request_url",$(this.el)).html("<pre></pre>"),$(".request_url pre",$(this.el)).text(t),$(".response_code",$(this.el)).html("<pre>"+e.status+"</pre>"),$(".response_body",$(this.el)).html(g),$(".response_headers",$(this.el)).html("<pre>"+_.escape(JSON.stringify(e.headers,null," ")).replace(/\n/g,"<br>")+"</pre>"),$(".response",$(this.el)).slideDown(),$(".response_hider",$(this.el)).show(),$(".response_throbber",$(this.el)).hide();var y=this.model.asCurl(this.map);y=y.replace("!","&#33;"),$(".curl",$(this.el)).html("<pre>"+y+"</pre>");var v=this.options.swaggerOptions;if(v.showRequestHeaders){var b=$(".sandbox",$(this.el)),w=this.getInputMap(b),x=this.model.getHeaderParams(w);delete x["Content-Type"],$(".request_headers",$(this.el)).html("<pre>"+_.escape(JSON.stringify(x,null," ")).replace(/\n/g,"<br>")+"</pre>")}var S=$(".response_body",$(this.el))[0];return v.highlightSizeThreshold&&"undefined"!=typeof e.data&&e.data.length>v.highlightSizeThreshold?S:hljs.highlightBlock(S)},toggleOperationContent:function(e){var t=$("#"+Docs.escapeResourceName(this.parentId+"_"+this.nickname+"_content"));t.is(":visible")?(e.preventDefault(),$.bbq.pushState("#/",2),Docs.collapseOperation(t)):Docs.expandOperation(t)},getTextAreaValue:function(e){var t,n,r,i;if(null===e.value||0===jQuery.trim(e.value).length)return null;if(t=this.getParamByName(e.name),t&&t.type&&"array"===t.type.toLowerCase()){for(n=e.value.split("\n"),r=[],i=0;i<n.length;i++)null!==n[i]&&jQuery.trim(n[i]).length>0&&r.push(n[i]);return r.length>0?r:null}return e.value},getParamByName:function(e){var t;if(this.model.parameters)for(t=0;t<this.model.parameters.length;t++)if(this.model.parameters[t].name===e)return this.model.parameters[t];return null}}),SwaggerUi.Views.ParameterContentTypeView=Backbone.View.extend({initialize:function(){},render:function(){return this.model.parameterContentTypeId="pct"+Math.random(),$(this.el).html(Handlebars.templates.parameter_content_type(this.model)),this}}),SwaggerUi.Views.ParameterView=Backbone.View.extend({initialize:function(){Handlebars.registerHelper("isArray",function(e,t){return"array"===e.type.toLowerCase()||e.allowMultiple?t.fn(this):t.inverse(this)})},render:function(){var e=this.model.type||this.model.dataType;if("undefined"==typeof e){var t=this.model.schema;if(t&&t.$ref){var n=t.$ref;e=0===n.indexOf("#/definitions/")?n.substring("#/definitions/".length):n}}this.model.type=e,this.model.paramType=this.model["in"]||this.model.paramType,this.model.isBody="body"===this.model.paramType||"body"===this.model["in"],this.model.isFile=e&&"file"===e.toLowerCase(),"undefined"==typeof this.model["default"]&&(this.model["default"]=this.model.defaultValue),this.model.hasDefault="undefined"!=typeof this.model["default"],this.model.valueId="m"+this.model.name+Math.random(),this.model.allowableValues&&(this.model.isList=!0);var r=this.template();$(this.el).html(r(this.model));var i={sampleJSON:this.model.sampleJSON,isParam:!0,signature:this.model.signature};if(this.model.sampleJSON){var a=new SwaggerUi.Views.SignatureView({model:i,tagName:"div"});$(".model-signature",$(this.el)).append(a.render().el)}else $(".model-signature",$(this.el)).html(this.model.signature);var o=!1;this.model.isBody&&(o=!0);var s={isParam:o};if(s.consumes=this.model.consumes,o){var l=new SwaggerUi.Views.ParameterContentTypeView({model:s});$(".parameter-content-type",$(this.el)).append(l.render().el)}else{var u=new SwaggerUi.Views.ResponseContentTypeView({model:s});$(".response-content-type",$(this.el)).append(u.render().el)}return this},template:function(){return this.model.isList?Handlebars.templates.param_list:this.options.readOnly?this.model.required?Handlebars.templates.param_readonly_required:Handlebars.templates.param_readonly:this.model.required?Handlebars.templates.param_required:Handlebars.templates.param}}),SwaggerUi.Views.ResourceView=Backbone.View.extend({initialize:function(e){e=e||{},this.router=e.router,this.auths=e.auths,""===this.model.description&&(this.model.description=null),this.model.description&&(this.model.summary=this.model.description)},render:function(){var e={};$(this.el).html(Handlebars.templates.resource(this.model));for(var t=0;t<this.model.operationsArray.length;t++){for(var n=this.model.operationsArray[t],r=0,i=n.nickname;"undefined"!=typeof e[i];)i=i+"_"+r,r+=1;e[i]=n,n.nickname=i,n.parentId=this.model.id,this.addOperation(n)}return $(".toggleEndpointList",this.el).click(this.callDocs.bind(this,"toggleEndpointListForResource")),$(".collapseResource",this.el).click(this.callDocs.bind(this,"collapseOperationsForResource")),$(".expandResource",this.el).click(this.callDocs.bind(this,"expandOperationsForResource")),this},addOperation:function(e){e.number=this.number;var t=new SwaggerUi.Views.OperationView({model:e,router:this.router,tagName:"li",className:"endpoint",swaggerOptions:this.options.swaggerOptions,auths:this.auths});$(".endpoints",$(this.el)).append(t.render().el),this.number++},callDocs:function(e,t){t.preventDefault(),Docs[e](t.currentTarget.getAttribute("data-id"))}}),SwaggerUi.Views.ResponseContentTypeView=Backbone.View.extend({initialize:function(){},render:function(){return this.model.responseContentTypeId="rct"+Math.random(),$(this.el).html(Handlebars.templates.response_content_type(this.model)),this}}),SwaggerUi.Views.SignatureView=Backbone.View.extend({events:{"click a.description-link":"switchToDescription","click a.snippet-link":"switchToSnippet","mousedown .snippet":"snippetToTextArea"},initialize:function(){},render:function(){return $(this.el).html(Handlebars.templates.signature(this.model)),this.switchToSnippet(),this.isParam=this.model.isParam,this.isParam&&$(".notice",$(this.el)).text("Click to set as parameter value"),this},switchToDescription:function(e){e&&e.preventDefault(),$(".snippet",$(this.el)).hide(),$(".description",$(this.el)).show(),$(".description-link",$(this.el)).addClass("selected"),$(".snippet-link",$(this.el)).removeClass("selected")},switchToSnippet:function(e){e&&e.preventDefault(),$(".description",$(this.el)).hide(),$(".snippet",$(this.el)).show(),$(".snippet-link",$(this.el)).addClass("selected"),$(".description-link",$(this.el)).removeClass("selected")},snippetToTextArea:function(e){if(this.isParam){e&&e.preventDefault();var t=$("textarea",$(this.el.parentNode.parentNode.parentNode));(""===$.trim(t.val())||t.prop("placeholder")===t.val())&&t.val(this.model.sampleJSON)}}}),SwaggerUi.Views.StatusCodeView=Backbone.View.extend({initialize:function(e){this.options=e||{},this.router=this.options.router},render:function(){if($(this.el).html(Handlebars.templates.status_code(this.model)),this.router.api.models.hasOwnProperty(this.model.responseModel)){var e={sampleJSON:JSON.stringify(this.router.api.models[this.model.responseModel].createJSONSample(),null,2),isParam:!1,signature:this.router.api.models[this.model.responseModel].getMockSignature()},t=new SwaggerUi.Views.SignatureView({model:e,tagName:"div"});$(".model-signature",this.$el).append(t.render().el)}else $(".model-signature",this.$el).html("");return this}})}).call(this); \ No newline at end of file diff --git a/reference/ucp/3.1/cli/backup.md b/reference/ucp/3.1/cli/backup.md new file mode 100644 index 0000000000..97250d35a8 --- /dev/null +++ b/reference/ucp/3.1/cli/backup.md @@ -0,0 +1,46 @@ +--- +title: docker/ucp backup +description: Create a backup of a UCP manager node +keywords: ucp, cli, backup +--- + +Create a backup of a UCP manager node + +## Usage + +```bash +docker container run --log-driver none --rm -i \ + --name ucp \ + -v /var/run/docker.sock:/var/run/docker.sock \ + docker/ucp \ + backup [command options] > backup.tar +``` + +## Description + +This command creates a tar file with the contents of the volumes used by +this UCP manager node, and prints it. You can then use the `restore` command to +restore the data from an existing backup. + +To create backups of a multi-node cluster, you only need to back up a single +manager node. The restore operation will reconstitute a new UCP installation +from the backup of any previous manager. + +Note: + + * During the backup, UCP is temporarily stopped. This does not affect your + applications. + + * The backup contains private keys and other sensitive information. Use the + `--passphrase` flag to encrypt the backup with PGP-compatible encryption. + + +## Options + +| Option | Description | +|:--------------------------|:---------------------------| +|`--debug, D`|Enable debug mode| +|`--jsonlog`|Produce json formatted output for easier parsing| +|`--interactive, i`|Run in interactive mode and prompt for configuration values| +|`--id`|The ID of the UCP instance to back up| +|`--passphrase`|Encrypt the tar file with a passphrase| diff --git a/reference/ucp/3.1/cli/dump-certs.md b/reference/ucp/3.1/cli/dump-certs.md new file mode 100644 index 0000000000..928bbbba1c --- /dev/null +++ b/reference/ucp/3.1/cli/dump-certs.md @@ -0,0 +1,35 @@ +--- +title: docker/ucp dump-certs +description: Print the public certificates used by this UCP web server +keywords: ucp, cli, dump-certs +--- + +Print the public certificates used by this UCP web server + +## Usage + +``` +docker container run --rm \ + --name ucp \ + -v /var/run/docker.sock:/var/run/docker.sock \ + docker/ucp \ + dump-certs [command options] + ``` + +## Description + +This command outputs the public certificates for the UCP web server running on +this node. By default it prints the contents of the ca.pem and cert.pem files. + +When integrating UCP and DTR, use this command with the `--cluster --ca` flags +to configure DTR. + + +## Options + +| Option | Description | +|:--------------------------|:---------------------------| +|`--debug, D`|Enable debug mode| +|`--jsonlog`|Produce json formatted output for easier parsing| +|`--ca`|Only print the contents of the ca.pem file| +|`--cluster`|Print the internal UCP swarm root CA and cert instead of the public server cert| diff --git a/reference/ucp/3.1/cli/example-config.md b/reference/ucp/3.1/cli/example-config.md new file mode 100644 index 0000000000..4756d724ad --- /dev/null +++ b/reference/ucp/3.1/cli/example-config.md @@ -0,0 +1,17 @@ +--- +title: docker/ucp example-config +description: Display an example configuration file for UCP +keywords: ucp, cli, config, configuration +--- + +Display an example configuration file for UCP + +## Usage + +``` +docker container run --rm -i \ + --name ucp \ + -v /var/run/docker.sock:/var/run/docker.sock \ + docker/ucp \ + example-config +``` diff --git a/reference/ucp/3.1/cli/id.md b/reference/ucp/3.1/cli/id.md new file mode 100644 index 0000000000..0721e0e1c6 --- /dev/null +++ b/reference/ucp/3.1/cli/id.md @@ -0,0 +1,25 @@ +--- +title: docker/ucp id +description: Print the ID of UCP running on this node +keywords: ucp, cli, id +--- + +Print the ID of UCP running on this node + +## Usage +``` +docker container run --rm \ + --name ucp \ + -v /var/run/docker.sock:/var/run/docker.sock \ + docker/ucp \ + id +``` + +## Description + +This command prints the ID of the UCP components running on this node. This ID +matches what you see when running the `docker info` command while using +a client bundle. + +This ID is used by other commands as confirmation. + diff --git a/reference/ucp/3.1/cli/images.md b/reference/ucp/3.1/cli/images.md new file mode 100644 index 0000000000..2980128ae0 --- /dev/null +++ b/reference/ucp/3.1/cli/images.md @@ -0,0 +1,34 @@ +--- +title: docker/ucp images +description: Verify the UCP images on this node +keywords: ucp, cli, images +--- + +Verify the UCP images on this node + +## Usage + +``` +docker container run --rm -it \ + --name ucp \ + -v /var/run/docker.sock:/var/run/docker.sock \ + docker/ucp \ + images [command options] +``` + +## Description + +This command checks the UCP images that are available in this node, and pulls +the ones that are missing. + + +## Options + +| Option | Description | +|:--------------------------|:---------------------------| +|`--debug, D`|Enable debug mode| +|`--jsonlog`|Produce json formatted output for easier parsing| +|`--pull`|Pull UCP images: `always`, when `missing`, or `never`| +|`--registry-username`|Username to use when pulling images| +|`--registry-password`|Password to use when pulling images| +|`--list`|List all images used by UCP but don't pull them| diff --git a/reference/ucp/3.1/cli/index.md b/reference/ucp/3.1/cli/index.md new file mode 100644 index 0000000000..12e71bdcc2 --- /dev/null +++ b/reference/ucp/3.1/cli/index.md @@ -0,0 +1,45 @@ +--- +title: docker/ucp overview +description: Learn about the commands available in the docker/ucp image. +keywords: ucp, cli, ucp +--- + +This image has commands to install and manage +Docker Universal Control Plane (UCP) on a Docker Engine. + +You can configure the commands using flags or environment variables. When using +environment variables, use the `docker container run -e VARIABLE_NAME` syntax to pass the +value from your shell, or `docker container run -e VARIABLE_NAME=value` to specify the +value explicitly on the command line. + +The container running this image needs to be named `ucp` and bind-mount the +Docker daemon socket. Below you can find an example of how to run this image. + +Additional help is available for each command with the `--help` flag. + +## Usage + +```bash +docker container run -it --rm \ + --name ucp \ + -v /var/run/docker.sock:/var/run/docker.sock \ + docker/ucp \ + command [command arguments] +``` + +## Commands + +| Option | Description | +|:-----------------|:----------------------------------------------------------| +| `install` | Install UCP on this node | +| `restart` | Start or restart UCP components running on this node | +| `stop` | Stop UCP components running on this node | +| `upgrade` | Upgrade the UCP cluster | +| `images` | Verify the UCP images on this node | +| `uninstall-ucp` | Uninstall UCP from this swarm | +| `dump-certs` | Print the public certificates used by this UCP web server | +| `support` | Create a support dump for this UCP node | +| `id` | Print the ID of UCP running on this node | +| `backup` | Create a backup of a UCP manager node | +| `restore` | Restore a UCP cluster from a backup | +| `example-config` | Display an example configuration file for UCP | diff --git a/reference/ucp/3.1/cli/install.md b/reference/ucp/3.1/cli/install.md new file mode 100644 index 0000000000..15d00660e4 --- /dev/null +++ b/reference/ucp/3.1/cli/install.md @@ -0,0 +1,89 @@ +--- +title: docker/ucp install +description: Install UCP on this node +keywords: ucp, cli, install +--- + +Install UCP on this node + +## Usage + +```bash +docker container run --rm -it \ + --name ucp \ + -v /var/run/docker.sock:/var/run/docker.sock \ + docker/ucp \ + install [command options] +``` + +## Description + +This command initializes a new swarm, turns this node into a manager, and installs +Docker Universal Control Plane (UCP). + +When installing UCP you can customize: + + * The certificates used by the UCP web server. Create a volume + named `ucp-controller-server-certs` and copy the `ca.pem`, `cert.pem`, and `key.pem` + files to the root directory. Then run the install command with the + `--external-server-cert` flag. + + * The license used by UCP, by bind-mounting the file at + `/config/docker_subscription.lic` in the tool. E.g. `-v /path/to/my/config/docker_subscription.lic:/config/docker_subscription.lic` + or by specifying with `--license "$(cat license.lic)` + +If you're joining more nodes to this swarm, open the following ports in your +firewall: + + * 443 or the '--controller-port' + * 2376 or the '--swarm-port' + * 12376, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387 + * 4789 (udp) and 7946 (tcp/udp) for overlay networking + +If you have SELinux policies enabled for your Docker install, you will need to +use `docker container run --rm -it --security-opt label=disable ...` when running this +command. + +## Options + +| Option | Description | +|:-------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `--debug, D` | Enable debug mode | +| `--jsonlog` | Produce json formatted output for easier parsing | +| `--interactive, i` | Run in interactive mode and prompt for configuration values | +| `--admin-username` | The UCP administrator username | +| `--admin-password` | The UCP administrator password | +| `--san` | Add subject alternative names to certificates (e.g. --san www1.acme.com --san www2.acme.com) | +| `--unmanaged-cni` | This determines who manages the CNI plugin, using `true` or `false`. The default is false. The `true` value installs UCP without a managed CNI plugin. UCP and the Kubernetes components will be running but pod to pod networking will not function until a CNI plugin is manually installed. This will impact some functionality of UCP until a CNI plugin is running. | +| `--host-address` | The network address to advertise to other nodes. Format: IP address or network interface name | +| `--data-path-addr` | Address or interface to use for data path traffic. Format: IP address or network interface name | +| `--controller-port` | Port for the web UI and API | +| `--kube-apiserver-port` | Port for the Kubernetes API server (default: 6443) | +| `--swarm-port` | Port for the Docker Swarm manager. Used for backwards compatibility | +| `--swarm-grpc-port` | Port for communication between nodes | +| `--cni-installer-url` | A URL pointing to a Kubernetes YAML file to be used as an installer for the CNI plugin of the cluster. If specified, the default CNI plugin is not installed. If the URL uses the HTTPS scheme, no certificate verification is performed. | + +| `--pod-cidr` | Kubernetes cluster IP pool for the pods to allocated IPs from (Default: 192.168.0.0/16) | +| `--cloud-provider` | The cloud provider for the cluster | +| `--dns` | Set custom DNS servers for the UCP containers | +| `--dns-opt` | Set DNS options for the UCP containers | +| `--dns-search` | Set custom DNS search domains for the UCP containers | +| `--unlock-key` | The unlock key for this swarm-mode cluster, if one exists. | +| `--existing-config` | Use the latest existing UCP config during this installation. The install fails if a config is not found. | +| `--force-minimums` | Force the install/upgrade even if the system doesn't meet the minimum requirements. | +| `--pull` | Pull UCP images: `always`, when `missing`, or `never` | +| `--registry-username` | Username to use when pulling images | +| `--registry-password` | Password to use when pulling images | +| `--kv-timeout` | Timeout in milliseconds for the key-value store | +| `--kv-snapshot-count` | Number of changes between key-value store snapshots | +| `--swarm-experimental` | Enable Docker Swarm experimental features. Used for backwards compatibility | +| `--disable-tracking` | Disable anonymous tracking and analytics | +| `--disable-usage` | Disable anonymous usage reporting | +| `--external-server-cert` | Use the certificates in the `ucp-controller-server-certs` volume instead of generating self-signed certs during installation | +| `--preserve-certs` | Don't generate certificates if they already exist | +| `--binpack` | Set the Docker Swarm scheduler to binpack mode. Used for backwards compatibility | +| `--random` | Set the Docker Swarm scheduler to random mode. Used for backwards compatibility | +| `--external-service-lb` | Set the external service load balancer reported in the UI | +| `--enable-profiling` | Enable performance profiling | +| `--license` | Add a license: e.g. --license "$(cat license.lic)" | +| `--force-insecure-tcp` | Force install to continue even with unauthenticated Docker Engine ports | diff --git a/reference/ucp/3.1/cli/restart.md b/reference/ucp/3.1/cli/restart.md new file mode 100644 index 0000000000..f1824f28ed --- /dev/null +++ b/reference/ucp/3.1/cli/restart.md @@ -0,0 +1,24 @@ +--- +title: docker/ucp restart +description: Start or restart UCP components running on this node +keywords: ucp, cli, restart +--- + +Start or restart UCP components running on this node + +## Usage + +``` +docker container run --rm -it \ + --name ucp \ + -v /var/run/docker.sock:/var/run/docker.sock \ + docker/ucp \ + restart [command options] +``` + +## Options + +| Option | Description | +|:--------------------------|:---------------------------| +|`--debug, D`|Enable debug mode| +|`--jsonlog`|Produce json formatted output for easier parsing| diff --git a/reference/ucp/3.1/cli/restore.md b/reference/ucp/3.1/cli/restore.md new file mode 100644 index 0000000000..e5d966e5d1 --- /dev/null +++ b/reference/ucp/3.1/cli/restore.md @@ -0,0 +1,70 @@ +--- +title: docker/ucp restore +description: Restore a UCP cluster from a backup +keywords: ucp, cli, restore +--- + +Restore a UCP cluster from a backup + +## Usage + +``` +docker container run --rm -i \ + --name ucp \ + -v /var/run/docker.sock:/var/run/docker.sock \ + docker/ucp \ + restore [command options] < backup.tar +``` + +## Description + +This command installs a new UCP cluster that is populated with the state of +a previous UCP manager node using a tar file generated by the `backup` command. +All UCP settings, users, teams and permissions will be restored from the backup +file. The Restore operation does not alter or recover any containers, networks, +volumes or services of an underlying cluster. + +The restore command can be performed on any manager node of an existing +cluster. If the current node does not belong in a cluster, one will be +initialized using the value of the `--host-address` flag. When restoring on an +existing swarm-mode cluster, no previous UCP components must be running on any +node of the cluster. This cleanup can be performed with the `uninstall-ucp` +command. + +If restore is performed on a different cluster than the one +where the backup file was taken on, the Cluster Root CA of the old UCP +installation will not be restored. This will invalidate any +previously issued Admin Client Bundles and all administrator will be required +to download new client bundles after the operation is completed. +Any existing Client Bundles for non-admin users will still be fully +operational. + +By default the backup tar file is read from stdin. You can also bind-mount the +backup file under /config/backup.tar, and run the restore command with the +`--interactive` flag. + +Notes: + + * Please run `uninstall-ucp` before attempting the restore operation on an + existing UCP cluster. + + * If your swarm-mode cluster has lost quorum and the original set of managers + are not recoverable, you can attempt to recover a single-manager cluster + with `docker swarm init --force-new-cluster`. + + * You can restore from a backup that was taken on a different manager node or + a different cluster altogether. + + +## Options + +| Option | Description | +|:-------------------|:----------------------------------------------------------------------------------------------| +| `--debug, D` | Enable debug mode | +| `--jsonlog` | Produce json formatted output for easier parsing | +| `--interactive, i` | Run in interactive mode and prompt for configuration values | +| `--passphrase` | Decrypt the backup tar file with the provided passphrase | +| `--san` | Add subject alternative names to certificates (e.g. --san www1.acme.com --san www2.acme.com) | +| `--host-address` | The network address to advertise to other nodes. Format: IP address or network interface name | +| `--data-path-addr` | Address or interface to use for data path traffic | +| `--unlock-key` | The unlock key for this swarm-mode cluster, if one exists. | diff --git a/reference/ucp/3.1/cli/stop.md b/reference/ucp/3.1/cli/stop.md new file mode 100644 index 0000000000..a246cb9fdf --- /dev/null +++ b/reference/ucp/3.1/cli/stop.md @@ -0,0 +1,24 @@ +--- +title: docker/ucp stop +description: Stop UCP components running on this node +keywords: ucp, cli, stop +--- + +Stop UCP components running on this node + +## Usage + +``` +docker container run --rm -it \ + --name ucp \ + -v /var/run/docker.sock:/var/run/docker.sock \ + docker/ucp \ + stop [command options] +``` + +## Options + +| Option | Description | +|:--------------------------|:---------------------------| +|`--debug, D`|Enable debug mode| +|`--jsonlog`|Produce json formatted output for easier parsing| diff --git a/reference/ucp/3.1/cli/support.md b/reference/ucp/3.1/cli/support.md new file mode 100644 index 0000000000..7649e26824 --- /dev/null +++ b/reference/ucp/3.1/cli/support.md @@ -0,0 +1,29 @@ +--- +title: docker/ucp support +description: Create a support dump for UCP nodes +keywords: ucp, cli, support, support dump, troubleshooting +--- + +Create a support dump for specified UCP nodes + +## Usage + +``` +docker container run --rm \ + --name ucp \ + -v /var/run/docker.sock:/var/run/docker.sock \ + docker/ucp \ + support [command options] > docker-support.tgz +``` + +## Description + +This command creates a support dump file for the specified node(s), and prints it to stdout. + +## Options + +| Option | Description | +|:--------------------------|:---------------------------| +|`--loglines`|Specify number of lines to grab from `journalctl`. The default is 10,000 lines.| +|`--servicedriller`|Run the swarm service driller (ssd) tool. For more information on this tool, see [Docker Swarm Service Driller (ssd)](https://github.com/docker/libnetwork/tree/master/cmd/ssd) Not run by default.| +|`--nodes`|Select specific nodes on which to produce a support dump. Comma-separated node IDs are allowed. The default selects all nodes.| diff --git a/reference/ucp/3.1/cli/uninstall-ucp.md b/reference/ucp/3.1/cli/uninstall-ucp.md new file mode 100644 index 0000000000..a1277e692c --- /dev/null +++ b/reference/ucp/3.1/cli/uninstall-ucp.md @@ -0,0 +1,42 @@ +--- +title: docker/ucp uninstall-ucp +description: Uninstall UCP from this swarm +keywords: ucp, cli, uninstall-ucp +--- + +Uninstall UCP from this swarm + +## Usage + +``` + docker container run --rm -it \ + --name ucp \ + -v /var/run/docker.sock:/var/run/docker.sock \ + docker/ucp \ + uninstall-ucp [command options] +``` + +## Description + +This command uninstalls UCP from the swarm, but preserves the swarm so that +your applications can continue running. + +After UCP is uninstalled you can use the `docker swarm leave` and +`docker node rm` commands to remove nodes from the swarm. + +Once UCP is uninstalled, you won't be able to join nodes to the swarm unless +UCP is installed again. + + +## Options + +| Option | Description | +| :-------------------- | :---------------------------------------------------------- | +| `--debug, D` | Enable debug mode | +| `--jsonlog` | Produce json formatted output for easier parsing | +| `--interactive, i` | Run in interactive mode and prompt for configuration values | +| `--pull` | Pull UCP images: `always`, when `missing`, or `never` | +| `--registry-username` | Username to use when pulling images | +| `--registry-password` | Password to use when pulling images | +| `--id` | The ID of the UCP instance to uninstall | +| `--purge-config` | Remove UCP configs during uninstallation | diff --git a/reference/ucp/3.1/cli/upgrade.md b/reference/ucp/3.1/cli/upgrade.md new file mode 100644 index 0000000000..0fbeb7a8aa --- /dev/null +++ b/reference/ucp/3.1/cli/upgrade.md @@ -0,0 +1,48 @@ +--- +title: docker/ucp upgrade +description: Upgrade the UCP components on this node +keywords: ucp, cli, upgrade +--- + +Upgrade the UCP cluster + +## Usage + +``` + docker container run --rm -it \ + --name ucp \ + -v /var/run/docker.sock:/var/run/docker.sock \ + docker/ucp \ + upgrade [command options] +``` + +## Description + +This command upgrades the UCP running on this cluster. + +Before performing an upgrade, you should perform a backup by using the +[backup](backup.md) command. + +After upgrading UCP, go to the UCP web UI and confirm each node is +healthy and that all nodes have been upgraded successfully. + + +## Options + +| Option | Description | +|:----------------------|:------------------------------------------------------------------------------------------------------| +| `--debug, D` | Enable debug mode | +| `--jsonlog` | Produce json formatted output for easier parsing | +| `--interactive, i` | Run in interactive mode and prompt for configuration values | +| `--admin-username` | The UCP administrator username | +| `--admin-password` | The UCP administrator password | +| `--pull` | Pull UCP images: `always`, when `missing`, or `never` | +| `--registry-username` | Username to use when pulling images | +| `--registry-password` | Password to use when pulling images | +| `--id` | The ID of the UCP instance to upgrade | +| `--host-address` | Override the previously configured host address with this IP or network interface | +| `--force-minimums` | Force the install/upgrade even if the system does not meet the minimum requirements | +| `--pod-cidr` | Kubernetes cluster IP pool for the pods to allocated IP from (Default: 192.168.0.0/16 | +| `--nodeport-range` | Allowed port range for Kubernetes services of type NodePort (Default: 32768-35535) | +| `--cloud-provider` | The cloud provider for the cluster | +| `--unmanaged-cni` | This determines who manages the CNI plugin, using `true` or `false`. The default is false. The `true` value installs UCP without a managed CNI plugin. UCP and the Kubernetes components will be running but pod to pod networking will not function until a CNI plugin is manually installed. This will impact some functionality of UCP until a CNI plugin is running. | From 503eb170b7834981bc4f4ad61deda1688424fbd3 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 22 Oct 2018 14:56:32 -0600 Subject: [PATCH 152/222] Update security.md incorporated @jamesonhyde-docker's feedback. --- engine/security/security.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/engine/security/security.md b/engine/security/security.md index 74124d004f..00e67997b5 100644 --- a/engine/security/security.md +++ b/engine/security/security.md @@ -204,16 +204,16 @@ those explicitly required for their processes. The Docker Content Trust signature verification feature is built directly into the `dockerd` binary. The Docker Engine can be configured to only permitted to run signed images. This is configured in the Dockerd -configuration file. To incorporate this, the Docker engine have -trustpinning configured in the `daemon.json` file. Trustpinning is when -Docker reposoitories with a known configured root key will only be accepted. +configuration file. To incorporate this, the Docker Engine has +trustpinning configured in the `daemon.json` file. To enable this feature, +trustpinning can be configured in daemon.json file, whereby only repositories +signed with a user-specified root key will be allowed to be pulled and run. -This feature provides image signature verification whenever a Docker pull -or run command uses an image. This provides insight to administrators that -was not previously available with the CLI being responsible for enforcing -and performing image signature verification. +This provides insight to administrators that was not previously available with +the CLI being responsible for enforcing and performing image signature verification. -For more information on configuring Docker Content Trust Signature Verificiation, go to (xxx)[xxx]. +For more information on configuring Docker Content Trust Signature Verificiation, go to +(Content trust in Docker)[engine/security/trust/content_trust]. ## Other kernel security features From 7cc1c3955a3fd109670ce41af8faeee3befd9ee0 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 22 Oct 2018 15:18:36 -0600 Subject: [PATCH 153/222] Update content_trust.md Partial incorporation of @jamesonhyde-docker's comments. Waiting for clarification on the rest. --- engine/security/trust/content_trust.md | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/engine/security/trust/content_trust.md b/engine/security/trust/content_trust.md index 3e5cdb92d5..63cf67d697 100644 --- a/engine/security/trust/content_trust.md +++ b/engine/security/trust/content_trust.md @@ -143,7 +143,7 @@ such as builds. Engine Signature Verification will prevent the following behaviors on an image: * Running a container to build an image (the base image must be signed, or must be scratch) -* Creating a container from an image that isn’t signed +* Creating a container from an image that is not signed * Enabling `skip-check-on-run` allows containers created by an already existing services to use whatever image was specified starting a container from an unsigned image * Enabling `skip-check-on-run` also allows containers previously created to run, independent of specified image @@ -151,18 +151,18 @@ Content trust does not verify that a running container’s filesystem has not be was in the image. For example, it does not prevent a container from writing to the filesystem, nor the container’s filesystem from being altered on disk. -It will also only pull signed images from registries, but will not prevent unsigned images from being +It will also pull and run signed images from registries, but will not prevent unsigned images from being imported, loaded, or created. -The image name, digest, or tag must be verified if content trust is enabled. he latest DCT metadata for +The image name, digest, or tag must be verified if content trust is enabled. The latest DCT metadata for an image must be downloaded from the trust server associated with the registry: * If an image tag does not have a digest, the DCT metadata translates the name to an image digest * If an image tag has an image digest, the DCT metadata verifies that the name matches the provided digest -* If an image digest does not have an image tag, the DCT metadata reverse lookups and provides the image tag as well as the digest. +* If an image digest does not have an image tag, the DCT metadata does a reverse lookup and provides the image tag as well as the digest. If translation or verification fails, the request or operation requiring the image is failed. This can happen because the content trust server is not reachable, if the `allow-expired-trust-cache` -is eanbled, or the the DCT metadata is used if the timestamp has not expired. +is enabled, or the the DCT metadata is used if the timestamp has not expired. DCT checks against metadata, and this will prevent an image verification for happening twice when using the `docker run` command. The `docker run` command first creates a container and starts it @@ -171,11 +171,7 @@ immediately. DCT needs to verify the image because a container could have been created before a change to the Content Trust configuration. As a result, DCT enforces the new configuration by applying it to the old created container. Alternately, a container could have been created significantly earlier, -which means the trust data for it is no longer valid. In that case, DCT will re-verify the container. - -Provided `skip-check-on-run` is not enabled, an initiated container's image will be re-validated -against the cached metadata first. If the cached metadata has expired or is not available, the image -will be validated using the image name, digest, or tag. +such that the trust data for it is no longer valid. The signature verification feature is configured in the Docker daemon configuration file `daemon.json`. @@ -201,7 +197,6 @@ The signature verification feature is configured in the Docker daemon configurat | ----------------------- |---------------| | `trust-pinning:root-keys` | Root key IDs are canonical IDs that sign the root metadata of the image trust data. In Docker Certified Trust (DCT), the root keys are unique certificates tying the name of the image to the repo metadata.  The private key ID (the canonical key ID) corresponding to the certificate is not dependent on the image name. If an image’s name matches more than one glob, then the most specific (longest) one is chosen.| |`trust-pinning:library-images` | This option pins the official libraries (`docker.io/library/*`) to the hard-coded Docker official images root key. DCT trusts the official images by default. This is in addition to whatever images are specified by `trust-pinning:root-keys`. If `trustpinning:root-keys` specifies a key mapping for `docker.io/library/*`, those keys will be preferred for trust pinning. Otherwise, if a more general `docker.io/*` or `*` are specified, the official images key will be preferred.| -| `skip-check-on-run` | Specifies whether DCT image validiation exempts existing containers or services. This determines whether the check is only on container creation or service creation, as opposed to container start or service maintenance, rescheduling, or rollback.| | `allow-expired-trust-cache` | Specifies whether cached locally expired metadata validates images if an external server is unreachable or does not have image trust metadata. This is necessary for machines which may be often offline, as may be the case for edge. This does not provide mitigations against freeze attacks, which is a necessary to provide availability in low-connectivity environments. | @@ -213,7 +208,7 @@ Content Trust can be enabled or disabled on a per-shell or per-invocation basis. To enable on a per-shell basis, enable the `DOCKER_CONTENT_TRUST` environment variable. Enabling per-shell is useful because you can have one shell configured for trusted operations and another terminal shell for untrusted operations. You can also add this declaration to -your shell profile to have it turned on always by default. +your shell profile to have it enabled by default. To enable content trust in a `bash` shell enter the following command: From 4da52d8ab944678377326495e8f3b0aee42e0b6f Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 22 Oct 2018 15:21:50 -0600 Subject: [PATCH 154/222] Update install-cni-plugin.md Added note per @mark-church --- ee/ucp/kubernetes/install-cni-plugin.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ee/ucp/kubernetes/install-cni-plugin.md b/ee/ucp/kubernetes/install-cni-plugin.md index c7ad2d6198..64e326ec27 100644 --- a/ee/ucp/kubernetes/install-cni-plugin.md +++ b/ee/ucp/kubernetes/install-cni-plugin.md @@ -31,6 +31,9 @@ docker container run --rm -it --name ucp \ --unmanaged-cni <true|false> \ --interactive ``` +***NOTE:*** The `true` value installs UCP without a managed CNI plugin. UCP and the Kubernetes components will be running +but pod to pod networking will not function until a CNI plugin is manually installed. This will impact some +functionality of UCP until a CNI plugin is running. You must provide a correct YAML installation file for the CNI plugin, but most of the default files work on Docker EE with no modification. From ee2172416fd3e9e4ee60a8e46630c4345f921117 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 22 Oct 2018 16:39:25 -0600 Subject: [PATCH 155/222] Update content_trust.md --- engine/security/trust/content_trust.md | 106 ++++++++++--------------- 1 file changed, 44 insertions(+), 62 deletions(-) diff --git a/engine/security/trust/content_trust.md b/engine/security/trust/content_trust.md index 63cf67d697..c3d9db3e5e 100644 --- a/engine/security/trust/content_trust.md +++ b/engine/security/trust/content_trust.md @@ -13,18 +13,23 @@ data received from a registry over any channel. ## About trust in Docker -Content trust allows operations with a remote Docker registry to enforce -client-side signing and verification of image tags. Content trust provides the +Docker Content Trust (DCT) allows operations with a remote Docker registry to enforce +client-side signing and verification of image tags. DCT provides the ability to use digital signatures for data sent to and received from remote Docker registries. These signatures allow client-side verification of the integrity and publisher of specific image tags. -When you enable content trust, signing occurs on the client after push and +Once DCT is enabled, image publishers can sign their images. Image consumers +can ensure that the images they use are signed. Publishers and consumers can be individuals +alone or in organizations. DCT supports users and automated processes +such as builds. + +When you enable DCT, signing occurs on the client after push and verification happens on the client after pull if you use Docker CE. If you use Docker EE with UCP, and you have configured UCP to require images to be signed before deploying, signing is verified by UCP. -### Image tags and content trust +### Image tags and DCT An individual image record has the following identifier: @@ -36,7 +41,7 @@ A particular image `REPOSITORY` can have multiple tags. For example, `latest` an `3.1.2` are both tags on the `mongo` image. An image publisher can build an image and tag combination many times changing the image with each build. -Content trust is associated with the `TAG` portion of an image. Each image +DCT is associated with the `TAG` portion of an image. Each image repository has a set of keys that image publishers use to sign an image tag. Image publishers have discretion on which tags they sign. @@ -57,24 +62,24 @@ push replaces the last unsigned tag `latest` but does not affect the signed `lat The ability to choose which tags they can sign, allows publishers to iterate over the unsigned version of an image before officially signing it. -Image consumers can enable content trust to ensure that images they use were -signed. If a consumer enables content trust, they can only pull, run, or build -with trusted images. Enabling content trust is like wearing a pair of +Image consumers can enable DCT to ensure that images they use were +signed. If a consumer enables DCT, they can only pull, run, or build +with trusted images. Enabling DCT is like wearing a pair of rose-colored glasses. Consumers "see" only signed image tags and the less desirable, unsigned image tags are "invisible" to them. ![Trust view](images/trust_view.png) -To the consumer who has not enabled content trust, nothing about how they +To the consumer who has not enabled DCT, nothing about how they work with Docker images changes. Every image is visible regardless of whether it is signed or not. -### Content trust operations and keys +### DCT operations and keys -When content trust is enabled, `docker` CLI commands that operate on tagged images must +When DCT is enabled, `docker` CLI commands that operate on tagged images must either have content signatures or explicit content hashes. The commands that -operate with content trust are: +operate with DCT are: * `push` * `build` @@ -82,7 +87,7 @@ operate with content trust are: * `pull` * `run` -For example, with content trust enabled a `docker pull someimage:latest` only +For example, with DCT enabled a `docker pull someimage:latest` only succeeds if `someimage:latest` is signed. However, an operation with an explicit content hash always succeeds as long as the hash exists: @@ -91,17 +96,17 @@ $ docker pull someimage@sha256:d149ab53f8718e987c3a3024bb8aa0e2caadf6c0328f1d9d8 ``` Trust for an image tag is managed through the use of signing keys. A key set is -created when an operation using content trust is first invoked. A key set consists +created when an operation using DCT is first invoked. A key set consists of the following classes of keys: -- an offline key that is the root of content trust for an image tag +- an offline key that is the root of DCT for an image tag - repository or tagging keys that sign tags - server-managed keys such as the timestamp key, which provides freshness security guarantees for your repository The following image depicts the various signing keys and their relationships: -![Content trust components](images/trust_components.png) +![Content Trust components](images/trust_components.png) >**WARNING**: > Loss of the root key is **very difficult** to recover from. @@ -114,9 +119,9 @@ The following image depicts the various signing keys and their relationships: You should backup the root key somewhere safe. Given that it is only required to create new repositories, it is a good idea to store it offline in hardware. For details on securing, and backing up your keys, make sure you -read how to [manage keys for content trust](trust_key_mng.md). +read how to [manage keys for DCT](trust_key_mng.md). -## Survey of typical content trust operations +## Survey of typical DCT operations This section surveys the typical trusted operations users perform with Docker images. Specifically, we go through the following steps to help us exercise @@ -128,51 +133,25 @@ these various trusted operations: * Pull the signed image pushed above * Pull unsigned image pushed above -### Enabling Content Trust in Docker Engine Configuration - -Currently, content trust is disabled by default. To enable it, set -the `DOCKER_CONTENT_TRUST` environment variable to `1`. Refer to the -[environment variables](../../reference/commandline/cli.md#environment-variables) -and [Notary](../../reference/commandline/cli.md#notary) configuration -for the docker client for more options. - -Once content trust is enabled, image publishers can sign their images. Image consumers -can ensure that the images they use are signed. Publishers and consumers can be individuals -alone or in organizations. Docker's content trust supports users and automated processes -such as builds. +### Enabling DCT in Docker Engine Configuration Engine Signature Verification will prevent the following behaviors on an image: * Running a container to build an image (the base image must be signed, or must be scratch) * Creating a container from an image that is not signed -* Enabling `skip-check-on-run` allows containers created by an already existing services to use whatever image was specified starting a container from an unsigned image -* Enabling `skip-check-on-run` also allows containers previously created to run, independent of specified image -Content trust does not verify that a running container’s filesystem has not been altered from what +DCT does not verify that a running container’s filesystem has not been altered from what was in the image. For example, it does not prevent a container from writing to the filesystem, nor the container’s filesystem from being altered on disk. It will also pull and run signed images from registries, but will not prevent unsigned images from being imported, loaded, or created. -The image name, digest, or tag must be verified if content trust is enabled. The latest DCT metadata for +The image name, digest, or tag must be verified if DCT is enabled. The latest DCT metadata for an image must be downloaded from the trust server associated with the registry: * If an image tag does not have a digest, the DCT metadata translates the name to an image digest * If an image tag has an image digest, the DCT metadata verifies that the name matches the provided digest * If an image digest does not have an image tag, the DCT metadata does a reverse lookup and provides the image tag as well as the digest. -If translation or verification fails, the request or operation requiring the image is failed. -This can happen because the content trust server is not reachable, if the `allow-expired-trust-cache` -is enabled, or the the DCT metadata is used if the timestamp has not expired. - -DCT checks against metadata, and this will prevent an image verification for happening twice when -using the `docker run` command. The `docker run` command first creates a container and starts it -immediately. - -DCT needs to verify the image because a container could have been created before a change to the -Content Trust configuration. As a result, DCT enforces the new configuration by applying it to -the old created container. Alternately, a container could have been created significantly earlier, -such that the trust data for it is no longer valid. - The signature verification feature is configured in the Docker daemon configuration file `daemon.json`. @@ -187,7 +166,7 @@ The signature verification feature is configured in the Docker daemon configurat }, “official-images”: true, }, - “skip-check-on-run”: true, + “mode”: “disabled” | “permissive” | “enforced”, “allow-expired-trust-cache”: true, } } @@ -198,19 +177,22 @@ The signature verification feature is configured in the Docker daemon configurat | `trust-pinning:root-keys` | Root key IDs are canonical IDs that sign the root metadata of the image trust data. In Docker Certified Trust (DCT), the root keys are unique certificates tying the name of the image to the repo metadata.  The private key ID (the canonical key ID) corresponding to the certificate is not dependent on the image name. If an image’s name matches more than one glob, then the most specific (longest) one is chosen.| |`trust-pinning:library-images` | This option pins the official libraries (`docker.io/library/*`) to the hard-coded Docker official images root key. DCT trusts the official images by default. This is in addition to whatever images are specified by `trust-pinning:root-keys`. If `trustpinning:root-keys` specifies a key mapping for `docker.io/library/*`, those keys will be preferred for trust pinning. Otherwise, if a more general `docker.io/*` or `*` are specified, the official images key will be preferred.| | `allow-expired-trust-cache` | Specifies whether cached locally expired metadata validates images if an external server is unreachable or does not have image trust metadata. This is necessary for machines which may be often offline, as may be the case for edge. This does not provide mitigations against freeze attacks, which is a necessary to provide availability in low-connectivity environments. | +| `mode` | Specifies whether DCT is enabled and enforced. Valid modes are: <br> +`disabled`: Verification is not active and the remainder of the content-trust related metadata will be ignored. *NOTE* that this is the default configuration if “mode” is not specfied. <br> +`permissive`: Verification will be performed, but only failures will only be logged and remain unenforced. This configuration is intended for testing of changes related to content-trust. <br> +`enforced`: DCT will be enforced and an image that cannot be verified successfully will not be pulled or run. | +### Enable and disable DCT per-shell or per-invocation -### Enable and disable content trust per-shell or per-invocation - -Instead of enabling Docker Content Trust through the system-wide configuration, Docker -Content Trust can be enabled or disabled on a per-shell or per-invocation basis. +Instead of enabling DCT through the system-wide configuration, DCT can be enabled or disabled +on a per-shell or per-invocation basis. To enable on a per-shell basis, enable the `DOCKER_CONTENT_TRUST` environment variable. Enabling per-shell is useful because you can have one shell configured for trusted operations and another terminal shell for untrusted operations. You can also add this declaration to your shell profile to have it enabled by default. -To enable content trust in a `bash` shell enter the following command: +To enable DCT in a `bash` shell enter the following command: ```bash export DOCKER_CONTENT_TRUST=1 @@ -220,7 +202,7 @@ Once set, each of the "tag" operations requires a key for a trusted tag. In an environment where `DOCKER_CONTENT_TRUST` is set, you can use the `--disable-content-trust` flag to run individual operations on tagged images -without content trust on an as-needed basis. +without DCT on an as-needed basis. Consider the following Dockerfile that uses an untrusted parent image: @@ -248,7 +230,7 @@ $ docker push --disable-content-trust <username>/nottrusttest:latest ... ``` -To invoke a command with content trust enabled regardless of whether or how the `DOCKER_CONTENT_TRUST` variable is set: +To invoke a command with DCT enabled regardless of whether or how the `DOCKER_CONTENT_TRUST` variable is set: ```bash $ docker build --disable-content-trust=false -t <username>/trusttest:testing . @@ -259,9 +241,9 @@ All of the trusted operations support the `--disable-content-trust` flag. ### Push trusted content -To create signed content for a specific image tag, simply enable content trust +To create signed content for a specific image tag, simply enable DCT and push a tagged image. If this is the first time you have pushed an image -using content trust on your system, the session looks like this: +using DCT on your system, the session looks like this: ```bash $ docker push <username>/trusttest:testing @@ -283,7 +265,7 @@ Repeat passphrase for new repository key with id docker.io/<username>/trusttest Finished initializing "docker.io/<username>/trusttest" ``` -When you push your first tagged image with content trust enabled, the `docker` +When you push your first tagged image with DCT enabled, the `docker` client recognizes this is your first push and: - alerts you that it is creating a new root key @@ -295,8 +277,8 @@ client recognizes this is your first push and: The passphrase you chose for both the root key and your repository key-pair should be randomly generated and stored in a *password manager*. -> **NOTE**: If you omit the `testing` tag, content trust is skipped. This is true -even if content trust is enabled and even if this is your first push. +> **NOTE**: If you omit the `testing` tag, DCT is skipped. This is true +even if DCT is enabled and even if this is your first push. ```bash $ docker push <username>/trusttest @@ -308,7 +290,7 @@ No tag specified, skipping trust metadata push ``` It is skipped because as the message states, you did not supply an image `TAG` -value. In Docker content trust, signatures are associated with tags. +value. In DCT, signatures are associated with tags. Once you have a root key on your system, subsequent images repositories you create can use that same root key: @@ -332,7 +314,7 @@ these. ### Pull image content -A common way to consume an image is to `pull` it. With content trust enabled, the Docker +A common way to consume an image is to `pull` it. With DCT enabled, the Docker client only allows `docker pull` to retrieve signed images. Let's try to pull the image you signed and pushed earlier: From c94aa9869aade91bf2822c67f729c58c4f50eb74 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 22 Oct 2018 19:44:27 -0600 Subject: [PATCH 156/222] Update upgrade.md Incorporated @mark-church's feedback. --- reference/ucp/3.1/cli/upgrade.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/ucp/3.1/cli/upgrade.md b/reference/ucp/3.1/cli/upgrade.md index 0fbeb7a8aa..f12c6435e5 100644 --- a/reference/ucp/3.1/cli/upgrade.md +++ b/reference/ucp/3.1/cli/upgrade.md @@ -45,4 +45,4 @@ healthy and that all nodes have been upgraded successfully. | `--pod-cidr` | Kubernetes cluster IP pool for the pods to allocated IP from (Default: 192.168.0.0/16 | | `--nodeport-range` | Allowed port range for Kubernetes services of type NodePort (Default: 32768-35535) | | `--cloud-provider` | The cloud provider for the cluster | -| `--unmanaged-cni` | This determines who manages the CNI plugin, using `true` or `false`. The default is false. The `true` value installs UCP without a managed CNI plugin. UCP and the Kubernetes components will be running but pod to pod networking will not function until a CNI plugin is manually installed. This will impact some functionality of UCP until a CNI plugin is running. | +| `--unmanaged-cni` | Flag to indicate if cni provider is calico and managed by UCP (calico is the default CNI provider). The default value is "true" when using the default Calico CNI. | From be8863e4905aa7dec27acbe6c07062335b86e7dc Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 22 Oct 2018 19:47:29 -0600 Subject: [PATCH 157/222] Update install.md --- reference/ucp/3.1/cli/install.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reference/ucp/3.1/cli/install.md b/reference/ucp/3.1/cli/install.md index 15d00660e4..1999e445c5 100644 --- a/reference/ucp/3.1/cli/install.md +++ b/reference/ucp/3.1/cli/install.md @@ -61,8 +61,8 @@ command. | `--kube-apiserver-port` | Port for the Kubernetes API server (default: 6443) | | `--swarm-port` | Port for the Docker Swarm manager. Used for backwards compatibility | | `--swarm-grpc-port` | Port for communication between nodes | -| `--cni-installer-url` | A URL pointing to a Kubernetes YAML file to be used as an installer for the CNI plugin of the cluster. If specified, the default CNI plugin is not installed. If the URL uses the HTTPS scheme, no certificate verification is performed. | - +| `--cni-installer-url` | flag to indicate if cni provider is calico and managed by UCP (calico is the default CNI provider). The default value is "true" when using the default Calico CNI. +| | `--pod-cidr` | Kubernetes cluster IP pool for the pods to allocated IPs from (Default: 192.168.0.0/16) | | `--cloud-provider` | The cloud provider for the cluster | | `--dns` | Set custom DNS servers for the UCP containers | From 133d9dd9cd8adbbc958aacce6d383e34b1faeb07 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 22 Oct 2018 19:50:03 -0600 Subject: [PATCH 158/222] Update install.md --- reference/ucp/3.1/cli/install.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/reference/ucp/3.1/cli/install.md b/reference/ucp/3.1/cli/install.md index 1999e445c5..c4a93fd0cd 100644 --- a/reference/ucp/3.1/cli/install.md +++ b/reference/ucp/3.1/cli/install.md @@ -61,7 +61,9 @@ command. | `--kube-apiserver-port` | Port for the Kubernetes API server (default: 6443) | | `--swarm-port` | Port for the Docker Swarm manager. Used for backwards compatibility | | `--swarm-grpc-port` | Port for communication between nodes | -| `--cni-installer-url` | flag to indicate if cni provider is calico and managed by UCP (calico is the default CNI provider). The default value is "true" when using the default Calico CNI. +| `--cni-installer-url` | Deprecated feature. A URL pointing to a Kubernetes YAML file to be used as an installer for the CNI plugin of the cluster. If specified, the default CNI plugin is not installed. If the URL uses the HTTPS scheme, no certificate verification is performed. +| +| `--unmanaged-cni` | flag to indicate if cni provider is calico and managed by UCP (calico is the default CNI provider). The default value is "true" when using the default Calico CNI. | | `--pod-cidr` | Kubernetes cluster IP pool for the pods to allocated IPs from (Default: 192.168.0.0/16) | | `--cloud-provider` | The cloud provider for the cluster | From cb0487628876787b7f530cd3ba0fa1ee34c539ad Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 22 Oct 2018 19:52:17 -0600 Subject: [PATCH 159/222] Update install-cni-plugin.md --- ee/ucp/kubernetes/install-cni-plugin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ee/ucp/kubernetes/install-cni-plugin.md b/ee/ucp/kubernetes/install-cni-plugin.md index 64e326ec27..1b32936199 100644 --- a/ee/ucp/kubernetes/install-cni-plugin.md +++ b/ee/ucp/kubernetes/install-cni-plugin.md @@ -11,7 +11,7 @@ keywords: ucp, cli, administration, kubectl, Kubernetes, cni, Container Networki For Docker Universal Control Plane, [Project Calico](https://docs.projectcalico.org/v3.0/introduction/) provides the secure networking functionality for the container communication with Kubernetes. -UCP supports third-party Container Networking Interface (CNI) plugins. By default, Docker EE +UCP supports certified third-party Container Networking Interface (CNI) plugins. By default, Docker EE installs the built-in [Calico](https://github.com/projectcalico/cni-plugin) plugin, but you can override the default and install a Docker certified plugin. From 7e6f87387c0cfe774ec6c27dc2c3d488ea5791f7 Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudezmt@users.noreply.github.com> Date: Tue, 23 Oct 2018 09:54:01 -0700 Subject: [PATCH 160/222] Incorporating peer feedback. --- .../admin/configure/external-storage/nfs.md | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/ee/dtr/admin/configure/external-storage/nfs.md b/ee/dtr/admin/configure/external-storage/nfs.md index 4d87cb914f..7111b59a68 100644 --- a/ee/dtr/admin/configure/external-storage/nfs.md +++ b/ee/dtr/admin/configure/external-storage/nfs.md @@ -36,26 +36,26 @@ docker run -it --rm {{ page.dtr_org }}/{{ page.dtr_repo }}:{{ dtr_version }} ins <other options> ``` -The NFS storage URL should be in the format `nfs://<nfs server>/<directory>`. If you're using **NFS v4**, you can specify additional options. See [docker/dtr install](../../../../../reference/dtr/2.6/cli/install/) for more details. +The NFS storage URL should be in the format `nfs://<nfs server>/<directory>`. With **NFS v4**, you can specify additional options. See [docker/dtr install](../../../../../reference/dtr/2.6/cli/install/) for more details. -When you join replicas to the DTR cluster, the replicas will pick up that -configuration, so you don't need to specify it again. +When joining replicas to a DTR cluster, the replicas will pick up your storage +configuration, so you will not need to specify it again. ### Reconfigure DTR to use NFS -If you're upgrading from a previous version of DTR and are already using -NFS you can continue using the same configurations. If you want to use **NFS v4**, see [docker/dtr reconfigure](../../../../../reference/dtr/2.6/cli/reconfigure/) for more NFS options. +When upgrading from a previous version of DTR that is already using +NFS, you can continue using the same configurations. If you want to use **NFS v4**, see [docker/dtr reconfigure](../../../../../reference/dtr/2.6/cli/reconfigure/) for more NFS options. -If you want to start using the new DTR built-in support for NFS you can -reconfigure DTR: +To take advantage of the new DTR built-in support for NFS, you can +reconfigure DTR to use NFS: ```bash docker run -it --rm {{ page.dtr_org }}/{{ page.dtr_repo }}:{{ dtr_version }} reconfigure \ --nfs-storage-url <nfs-storage-url> ``` -If you want to reconfigure DTR to stop using NFS storage, leave the `--nfs-storage-url` option +To reconfigure DTR to stop using NFS storage, leave the `--nfs-storage-url` option blank: ```bash @@ -63,9 +63,8 @@ docker run -it --rm {{ page.dtr_org }}/{{ page.dtr_repo }}:{{ dtr_version}} reco --nfs-storage-url "" ``` -If the IP address of your NFS server changes, even if the DNS address is kept -the same, you should reconfigure DTR to stop using NFS storage, and then -add it back again. +If the IP address of your NFS server changes with the DNS address staying the same, you should still +reconfigure DTR to stop using NFS storage, and then add it back again. ## Where to go next From 90649eabb1ead8db1eb80d88fb4cce74a860ac0c Mon Sep 17 00:00:00 2001 From: Spencer Cheng <spcheng0412@gmail.com> Date: Tue, 23 Oct 2018 10:03:55 -0700 Subject: [PATCH 161/222] Update github.md --- docker-hub/github.md | 60 ++++++++++++-------------------------------- 1 file changed, 16 insertions(+), 44 deletions(-) diff --git a/docker-hub/github.md b/docker-hub/github.md index 43f0b7a45d..f22c85e257 100644 --- a/docker-hub/github.md +++ b/docker-hub/github.md @@ -21,23 +21,9 @@ GitHub account. This allows the registry to see your GitHub repositories. To add, remove or view your linked account, log in to your Docker Hub account. Select **Settings > Linked Accounts & Services**. -![authorized-services](images/authorized-services.png) - -When linking to GitHub, select either ***Public and Private***, -or ***Limited Access***. - -![add-authorized-github-service.png](images/add-authorized-github-service.png) - -The ***Public and Private*** option is the easiest to use, as it grants the Docker -Hub full access to all of your repositories. GitHub also allows you to grant -access to repositories belonging to your GitHub organizations. - -If you choose ***Limited Access***, Docker Hub only gets permission to access your -public data and public repositories. - -Follow the onscreen instructions to authorize and link your GitHub account to -Docker Hub. Once it is linked, you can choose a source repository from -which to create the Automatic Build. +Linking to Github grants Docker Hub access to all of your repositories. Follow the +onscreen instructions to authorize and link your GitHub account to Docker Hub. +Once it is linked, you can choose a source repository from which to create the Automatic Build. You can review and revoke Docker Hub's access by visiting the [GitHub User's Applications settings](https://github.com/settings/applications). @@ -48,20 +34,10 @@ You can review and revoke Docker Hub's access by visiting the > using the **Start Build** button on the Hub, or if the webhook on the GitHub repository > still exists, it is triggered by any subsequent commits. -## Auto builds and limited linked GitHub accounts - -If you chose ***Limited Access*** for your Github account connection, after creating your automated build, -you will need to either: -* Manually trigger a Docker Hub build using the **Start a Build** button, or -* Add the GitHub webhook manually, as described in [GitHub Webhook](github.md#github-webhook). - -This only works for repositories under the user account, and adding an automated build to a public GitHub -organization using a ***Limited Access*** link is not possible. - ## Changing the GitHub user link If you want to remove, or change the level of linking between your GitHub -account and the Docker Hub, you need to make the change in two places. +account and Docker Hub, you need to make the change in two places. First, remove the **Linked Account** from your Docker Hub **Settings**. Then go to your GitHub account's Personal settings, and in the **Applications** section, @@ -72,17 +48,17 @@ You can now re-link your account at any time. ## GitHub organizations GitHub organizations and private repositories forked from organizations are -made available to auto build using the "Docker Hub Registry" application, which -needs to be added to the organization - and then applies to all users. +made available for auto builds using the "Docker Hub Registry" application, which +needs to be added to the organization - and then applied to all users. -To check, or request access, go to your GitHub **Settings** page, select the +To verify access or request access, go to your GitHub **Settings** page, select the **Applications** section from the left side bar, then click the **View** button for "Docker Hub Registry". ![Check User access to GitHub](images/gh-check-user-org-dh-app-access.png) The organization's administrators may need to go to the Organization's **Third -party access** screen in **Settings** to grant or deny access to the Docker Hub +party access** screen in **Settings** to grant or deny access to Docker Hub Registry application. This change applies to all organization members. ![Check Docker Hub application access to Organization](images/gh-check-admin-org-dh-app-access.png) @@ -101,8 +77,8 @@ Once you've selected the source repository, you can then configure: - The Hub user/org namespace the repository is built to - either your Docker ID name, or the name of any Hub organizations your account is in - The Docker repository name the image is built to - The description of the repository -- If the visibility of the Docker repository: "Public" or "Private" - You can change the accessibility options after the repository has been created. +- If the visibility of the Docker repository is "Public" or "Private", + you can change the accessibility options after the repository has been created. If you add a Private repository to a Hub user namespace, then you can only add other users as collaborators, and those users can view and pull all images in that repository. To configure more granular access permissions, such as using teams of @@ -110,11 +86,11 @@ Once you've selected the source repository, you can then configure: to add the Private repository to a Hub organization for which your user has Administrator privileges. - Enable or disable rebuilding the Docker image when a commit is pushed to the - GitHub repository. + GitHub repository You can also select one or more: -- The git branch/tag, -- A repository sub-directory to use as the context, +- The git branch/tag +- A repository sub-directory to use as the context - The Docker image tag name You can modify the description for the repository by clicking the "Description" section @@ -126,7 +102,7 @@ next build is triggered. If your GitHub repository contains links to private submodules, your build fails. -Normally, the Docker Hub sets up a deploy key in your GitHub repository. +Normally, Docker Hub sets up a deploy key in your GitHub repository. Unfortunately, GitHub only allows a repository deploy key to access a single repository. @@ -179,16 +155,12 @@ build. ## GitHub webhook -A GitHub webhook allows GitHub to notify the Docker Hub when something has +A GitHub webhook allows GitHub to notify Docker Hub when something has been committed to a given git repository. -When you create an Automated Build from a GitHub user that has full **Public and -Private** linking, a Service Hook should get automatically added to your GitHub +When you create an Automated Build, a webhook should get automatically added to your GitHub repository. -If your GitHub account link to the Docker Hub is **Limited Access**, then you -need to add the webhook manually. - To add, confirm, or modify the webhook, log in to GitHub, then navigate to the repository. Within the repository, select **Settings > Webhooks**. You must have admin privileges on the repository to view or modify From 51aef5b491872d4bfa34c0192e994ce2825821a5 Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudezmt@users.noreply.github.com> Date: Tue, 23 Oct 2018 11:03:34 -0700 Subject: [PATCH 162/222] Make additional edits --- docker-hub/github.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-hub/github.md b/docker-hub/github.md index f22c85e257..b32fa372c9 100644 --- a/docker-hub/github.md +++ b/docker-hub/github.md @@ -48,10 +48,10 @@ You can now re-link your account at any time. ## GitHub organizations GitHub organizations and private repositories forked from organizations are -made available for auto builds using the "Docker Hub Registry" application, which +made available for autobuilds using the "Docker Hub Registry" application, which needs to be added to the organization - and then applied to all users. -To verify access or request access, go to your GitHub **Settings** page, select the +To verify or request access, go to your GitHub **Settings** page. Select the **Applications** section from the left side bar, then click the **View** button for "Docker Hub Registry". @@ -95,7 +95,7 @@ You can also select one or more: You can modify the description for the repository by clicking the "Description" section of the repository view. -The "Full Description" is over-written by the README.md file when the +The "Full Description" is overwritten by the **README.md** file when the next build is triggered. ## GitHub private submodules @@ -156,7 +156,7 @@ build. ## GitHub webhook A GitHub webhook allows GitHub to notify Docker Hub when something has -been committed to a given git repository. +been committed to a given Git repository. When you create an Automated Build, a webhook should get automatically added to your GitHub repository. From 5978ac220a15abd6d96c4852ef2b49402dd4a959 Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudezmt@users.noreply.github.com> Date: Tue, 23 Oct 2018 11:05:59 -0700 Subject: [PATCH 163/222] Update note section --- docker-hub/github.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker-hub/github.md b/docker-hub/github.md index b32fa372c9..26c2f2ebd8 100644 --- a/docker-hub/github.md +++ b/docker-hub/github.md @@ -9,7 +9,8 @@ skip to [Creating an Automated Build](github.md#creating-an-automated-build). ## Linking Docker Hub to a GitHub account -> *Note:* +> Automated Build Permissions + > Automated Builds currently require *read* and *write* access since > [Docker Hub](https://hub.docker.com) needs to set up a GitHub webhook. > We have no choice here &ndash; this is how GitHub manages permissions. From cada8f776f3fc2eb8aab4a5eb0a374a6508c6cdb Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudez.mt@gmail.com> Date: Tue, 23 Oct 2018 17:07:30 -0700 Subject: [PATCH 164/222] Update formatting on note --- reference/dtr/2.6/cli/install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/dtr/2.6/cli/install.md b/reference/dtr/2.6/cli/install.md index 09baa1bfe3..0d0f055607 100644 --- a/reference/dtr/2.6/cli/install.md +++ b/reference/dtr/2.6/cli/install.md @@ -28,7 +28,7 @@ $ docker run -it --rm docker/dtr:2.5.0 install \ --ucp-node <UCP_NODE_HOSTNAME> \ --ucp-insecure-tls -Note: Use --ucp-ca "$(cat ca.pem)" instead of --ucp-insecure-tls for a production deployment. +Note: Use `--ucp-ca "$(cat ca.pem)"` instead of `--ucp-insecure-tls` for a production deployment. ## Options From 02690e50ca1608e7b31e8d6259b76386a0a1846d Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Wed, 24 Oct 2018 09:20:04 -0600 Subject: [PATCH 165/222] Update ce-ee-node-activate.md --- engine/ce-ee-node-activate.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/engine/ce-ee-node-activate.md b/engine/ce-ee-node-activate.md index b05f6ca8bc..c12a1e0256 100644 --- a/engine/ce-ee-node-activate.md +++ b/engine/ce-ee-node-activate.md @@ -52,7 +52,10 @@ Server: 2. Log into the Docker engine from the command line. -**NOTE:** When running the command `docker login`, the shell stores the credentials in the current user's home directory. For CentOS, the `sudo` command overwrites overwrites the $HOME environment variable. +**NOTE:** When running the command `docker login`, the shell stores the credentials in the current user's home +directory. RHEL and Ubuntu-based Linux distributions have different behavior for sudo. RHEL sets $HOME to point +to `/root` while Ubuntu leaves `$HOME` pointing to the user's home directory who ran `sudo` and this can cause +permission and access problems when switching between `sudo` and non-sudo'd commands. For Ubuntu or Debian: From d9599eb932916189723cf6a1637e1cd64a08120d Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Wed, 24 Oct 2018 09:22:39 -0600 Subject: [PATCH 166/222] Update ce-ee-node-activate.md --- engine/ce-ee-node-activate.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/ce-ee-node-activate.md b/engine/ce-ee-node-activate.md index c12a1e0256..57b73092ec 100644 --- a/engine/ce-ee-node-activate.md +++ b/engine/ce-ee-node-activate.md @@ -104,7 +104,7 @@ Restart docker with 'systemctl restart docker' to complete the activation. **NOTE:** If the Docker EE engines are in a swarm cluster, you only need to activate the license on the manager node. This action stores the license as a swarm configuration, which is compatible with UCP. -5. Check the Docker Engine version. The server engine will now be EE, and the client will stay CE. +5. Check the Docker Engine version. The engine server will become EE, and the engine client will stay CE. ``` $ docker version From 32d060a1f38e85e5a0cfe6b3a98b9cfca16585cf Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Wed, 24 Oct 2018 09:27:56 -0600 Subject: [PATCH 167/222] Update ce-ee-node-activate.md --- engine/ce-ee-node-activate.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/engine/ce-ee-node-activate.md b/engine/ce-ee-node-activate.md index 57b73092ec..166febef48 100644 --- a/engine/ce-ee-node-activate.md +++ b/engine/ce-ee-node-activate.md @@ -101,9 +101,6 @@ Successfully activated engine. Restart docker with 'systemctl restart docker' to complete the activation. ``` -**NOTE:** If the Docker EE engines are in a swarm cluster, you only need to activate the license on the -manager node. This action stores the license as a swarm configuration, which is compatible with UCP. - 5. Check the Docker Engine version. The engine server will become EE, and the engine client will stay CE. ``` @@ -129,6 +126,8 @@ Server: **NOTE**: Your output may vary slightly from what is displayed on this page. +6. If you are running a Swarm cluster with CE, please repeat these steps on each node. + ## Offline CE-EE node activation For offline CE-EE node activation, you'll need to get the Docker Enterprise Engine onto the system. The recommended model is to download the EE `.deb` or `.rpm` packages manually and copy them to the target systems. Afterward, download the license manually, and copy that license to the target systems. Use the `--license <path/to/license.file>` command line option to the activate command. From f8e6768375655f20148180545e40d7e5e02f1aa2 Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Wed, 24 Oct 2018 16:52:27 -0700 Subject: [PATCH 168/222] add known issues from issue #738 added to release notes --- ee/ucp/release-notes.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/ee/ucp/release-notes.md b/ee/ucp/release-notes.md index 5a11032d4d..0851134ba6 100644 --- a/ee/ucp/release-notes.md +++ b/ee/ucp/release-notes.md @@ -42,6 +42,23 @@ upgrade your installation to the latest release. * JSON configuration used with `kubectl create -f pod.json` containing fields with incorrect casing are no longer valid. You must correct these files before upgrading. When specifying keys in JSON resource definitions during direct API server communication, the keys are case-sensitive. A bug introduced in Kubernetes 1.8 caused the API server to accept a request with incorrect case and coerce it to correct case, but this behaviour has been fixed in 1.11 so the API server will again enforce correct casing. During this time, the `kubectl` tool continued to enforce case-sensitive keys, so users that strictly manage resources with `kubectl` will be unaffected by this change. * If you have a pod with a subpath volume PVC, there’s a chance that after the upgrade, it will conflict with some other pod; see [this pull request](https://github.com/kubernetes/kubernetes/pull/61373). It’s not clear if this issue will just prevent those pods from starting or if the whole cluster will fail. +**Known issues** +* You must use the ID of the user, organization, or team if you are manually creating a **ClusterRoleBinding** or **RoleBinding** for `User` or `Group` subjects. + * For the `User` subject Kind, the `Name` field should be the ID of the user. + * For the `Group` subject Kind, the format depends on whether you are creating a Binding for a team or an organization: + * For an organization, the format is `org:{org-id}` + * For a team, the format is `team:{org-id}:{team-id}` + +* In order to deploy Pods with containers using Restricted Parameters, a user must be an admin and a service account must explicitly have a **ClusterRoleBinding** with the `cluster-admin` **ClusterRole**. Restricted Parameters on Containers include: + * Host Bind Mounts + * Privileged Mode + * Extra Capabilities + * Host Networking + * Host IPC + * Host PID + +* If the `cluster-admin` built-in **ClusterRole** or **ClusterRoleBinding** are deleted, you can recreate it automatically by restarting the `ucp-kube-apiserver` container on any manager node. + # Version 3.0 ## 3.0.4 (2018-08-09) From 119fef7c2dd5a835a52e6b9c38e28a5b81d78025 Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Wed, 24 Oct 2018 17:09:41 -0700 Subject: [PATCH 169/222] relnotes from orca issue #15411 added to release notes --- ee/ucp/release-notes.md | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/ee/ucp/release-notes.md b/ee/ucp/release-notes.md index 0851134ba6..8038b7f2bb 100644 --- a/ee/ucp/release-notes.md +++ b/ee/ucp/release-notes.md @@ -57,10 +57,29 @@ upgrade your installation to the latest release. * Host IPC * Host PID -* If the `cluster-admin` built-in **ClusterRole** or **ClusterRoleBinding** are deleted, you can recreate it automatically by restarting the `ucp-kube-apiserver` container on any manager node. +* If the `cluster-admin` built-in **ClusterRole** or **ClusterRoleBinding** are deleted, you can recreate it automatically by restarting the `ucp-kube-apiserver` container on any manager node. # Version 3.0 +## 3.0.6 (2018-10-25) + +**Bug fixes** + +* Core + * Bumped Kubernetes version to 1.8.15. + * Resolved an issue where LDAP sync jobs would crash when handling an org admin + search result which does not correspond to an existing user. (docker/escalation#784 #docker/escalation#888) + * Fixed an issue that caused RethinkDB client lock contention. (docker/escalation#902 and docker/escalation#906) + * Fixed an issue that caused Azure IPAM not releasing addresses. (docker/escalation#815) + * Fixed an issue that caused installation of UCP on Azure unsuccessful. (docker/escalation#863) + * Fixed an issue that caused Interlock proxy service keeps on restarting (docker/escalation#814) + * Fixed an issue that caused Kubernetes DNS not working (#14064, #11981) + * Fixed an issue that causes a missing swarm placement constraints warning banner to show up unnecessarily. (#14539) +* Security + * Fixed `libcurl` vulnerability in RethinkDB image. (#15169) +* UI + * Fixed an issue that caused "Per User Limit" not working on Admin Settings. (docker/escalation#639) + ## 3.0.4 (2018-08-09) **Bug fixes** @@ -316,6 +335,18 @@ deprecated. Deploy your applications as Swarm services or Kubernetes workloads. # Version 2.2 +## Version 2.2.14 (2018-10-25) + +**Bug fixes** + +* Core + * Resolved an issue where LDAP sync jobs would crash when handling an org admin + search result which does not correspond to an existing user. (docker/escalation#784 #docker/escalation#888) + * Fixed an issue that caused RethinkDB client lock contention. (docker/escalation#902 and docker/escalation#906) +* UI + * Fixed an issue that caused "Per User Limit" not working on Admin Settings. (docker/escalation#639) + + ## Version 2.2.12 (2018-08-09) **Bug fixes** From 3cd3d202ae08269b8d22d4fea74f68dcfc274482 Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudez.mt@gmail.com> Date: Wed, 24 Oct 2018 16:37:55 -0700 Subject: [PATCH 170/222] Adding October 2018 patch release notes for EE Engine, UCP, and DTR. --- datacenter/dtr/2.3/guides/release-notes.md | 12 +++++ ee/dtr/release-notes.md | 23 ++++++++++ ee/engine/release-notes.md | 53 ++++++++++++++++++++++ ee/ucp/release-notes.md | 34 ++++++++++++++ 4 files changed, 122 insertions(+) diff --git a/datacenter/dtr/2.3/guides/release-notes.md b/datacenter/dtr/2.3/guides/release-notes.md index cfa07ad6d8..23396ebc11 100644 --- a/datacenter/dtr/2.3/guides/release-notes.md +++ b/datacenter/dtr/2.3/guides/release-notes.md @@ -11,6 +11,18 @@ known issues for each DTR version. You can then use [the upgrade instructions](admin/upgrade.md), to upgrade your installation to the latest release. +## Version 2.3.9 + +(25 October 2018) + +### Bug Fixes +* Added CSP (Content Security Policy). (docker/dhe-deploy#9368 and docker/dhe-deploy#9588) +* Fixed critical vulnerability in RethinkDB. (docker/dhe-deploy#9575) + +### Changelog +* Patched security vulnerabilities in the load balancer. +* Patch packages and base OS to eliminate and address some critical vulnerabilities in DTR dependencies. + ## Version 2.3.8 (26 July 2018) diff --git a/ee/dtr/release-notes.md b/ee/dtr/release-notes.md index b5e0ebfdc9..a99200787a 100644 --- a/ee/dtr/release-notes.md +++ b/ee/dtr/release-notes.md @@ -20,6 +20,17 @@ to upgrade your installation to the latest release. # Version 2.5 +## 2.5.6 (2018-10-25) + +### Bug Fixes +* Fixed a bug where Windows images could not be promoted. (docker/dhe-deploy#9215) +* Removed Python3 from base image. (docker/dhe-deploy#9219) +* Added CSP (docker/dhe-deploy#9366) +* Included foreign layers in scanned images. (docker/dhe-deploy#9488) +* Added dotnet.marsu to nautilus base image. (docker/dhe-deploy#9503) +* Backported ManifestList fixes. (docker/dhe-deploy#9547) +* Removed support sidebar link and associated content. (docker/dhe-deploy#9411) + ## 2.5.5 (2018-8-30) ### Bug Fixes @@ -161,6 +172,18 @@ specify `--log-protocol`. # Version 2.4 +## Version 2.4.7 + +(25 October 2018) + +### Bug Fixes +* Added CSP (Content Security Policy). (docker/dhe-deploy#9367 and docker/dhe-deploy#9584) +* Fixed critical vulnerability in RethinkDB. (docker/dhe-deploy#9574) + +### Changelog +* Patched security vulnerabilities in the load balancer. +* Patch packages and base OS to eliminate and address some critical vulnerabilities in DTR dependencies. + ## Version 2.4.6 (26 July 2018) diff --git a/ee/engine/release-notes.md b/ee/engine/release-notes.md index 29e720b771..fe4a4cb018 100644 --- a/ee/engine/release-notes.md +++ b/ee/engine/release-notes.md @@ -19,6 +19,40 @@ it references. However, Docker EE also includes back-ported fixes defect fixes that you can use in environments where new features cannot be adopted as quickly for consistency and compatibility reasons. +## 18.03.1-ee-4 (2018-10-25) + +> Important notes about this release +> +> If you're deploying UCP or DTR, use Docker EE Engine 17.06. +{: .important} + +### Client + +- Fixed help message flags on `docker stack` commands and child commands. [docker/cli#1251](https://github.com/docker/cli/pull/1251) +- Fixed typo breaking zsh `docker update` autocomplete. [docker/cli#1232](https://github.com/docker/cli/pull/1232) + +### Networking + +- Added optimizations to reduce the messages in the NetworkDB queue. [docker/libnetwork#2225](https://github.com/docker/libnetwork/pull/2225) +- Fixed a very rare condition where managers are not correctly triggering the reconnection logic. [docker/libnetwork#2226](https://github.com/docker/libnetwork/pull/2226) +- Changed loglevel from ***error*** to ***warning*** for missing `disable_ipv6` file. [docker/libnetwork#2224](https://github.com/docker/libnetwork/pull/2224) + +### Runtime + +- Fixed denial of service with large numbers in `cpuset-cpus` and `cpuset-mems`. [moby/moby#37967](https://github.com/moby/moby/pull/37967) +- Added stability improvements for `devicemapper` shutdown. [moby/moby#36307](https://github.com/moby/moby/pull/36307) [moby/moby#36438](https://github.com/moby/moby/pull/36438) + +### Swarm Mode + +- Fixed the logic used for skipping over running tasks. [docker/swarmkit#2724](https://github.com/docker/swarmkit/pull/2724) +- Addressed unassigned task leak when a service is removed. [docker/swarmkit#2709](https://github.com/docker/swarmkit/pull/2709) + + +### Builder + +- Added an error if build args are missing during `docker build`. [docker/engine#25](https://github.com/docker/engine/pull/25) +- Fixed an issue where HealthCheck runs while an image is building. [moby/moby#37413](https://github.com/moby/moby/pull/37413) + ## 18.03.1-ee-3 (2018-08-30) > Important notes about this release @@ -85,6 +119,25 @@ adopted as quickly for consistency and compatibility reasons. + Support for `--chown` with `COPY` and `ADD` in `Dockerfile`. + Add support for multiple logging drivers for `docker logs`. +## 17.06.2-ee-17 (2018-10-25) + +### Networking + +- Changed loglevel from ***error*** to ***warning*** for missing `disable_ipv6` file. [docker/libnetwork#2223](https://github.com/docker/libnetwork/pull/2223) +- Fixed subnet allocation to avoid reallocating recently freed subnets. [docker/libnetwork#2255](https://github.com/docker/libnetwork/pull/2255) +- Fixed libnetwork issue which caused errors to be returned when `iptables` or `firewalld` issues transient warnings. [docker/libnetwork#2218](https://github.com/docker/libnetwork/pull/2218) + +### Plugins + +- Fixed too many "Plugin not found" error messages. [moby/moby#36119](https://github.com/moby/moby/pull/36119) + +### Swarm mode + +- Added failed allocations retry immediately upon a deallocation to overcome IP exhaustion. [docker/swarmkit#2711](https://github.com/docker/swarmkit/pull/2711) +- Fixed leaking task resources. [docker/swarmkit#2755](https://github.com/docker/swarmkit/pull/2755) +- Fixed deadlock in dispatcher that could cause node to crash. [docker/swarmkit#2753](https://github.com/docker/swarmkit/pull/2753) + + ## 17.06.2-ee-16 (2018-07-26) ### Client diff --git a/ee/ucp/release-notes.md b/ee/ucp/release-notes.md index f4044552f6..b06b1e5902 100644 --- a/ee/ucp/release-notes.md +++ b/ee/ucp/release-notes.md @@ -20,6 +20,29 @@ upgrade your installation to the latest release. # Version 3.0 +## 3.0.6 (2018-10-25) + +**Bug fixes** + +* Core + + * Bumped Kubernetes version to 1.8.15. + * Fixed an issue where LDAP sync jobs would crash when handling an org admin search result which does not correspond to an existing user. (docker/escalation#784 #docker/escalation#888) + * Fixed an issue that caused RethinkDB client lock contention. (docker/escalation#902 and docker/escalation#906) + * Fixed an issue that prevented Azure IPAM from releasing addresses. (docker/escalation#815) + * Fixed an issue that caused installation of UCP on Azure to be unsuccessful. (docker/escalation#863) + * Fixed an issue that caused Interlock proxy service to keep restarting. (docker/escalation#814) + * Fixed an issue that prevented Kubernetes DNS from working. (docker/orca#14064 and docker/orca#11981) + * Fixed an issue that caused "Missing swarm placement constraints" warning banner to appear unnecessarily. (docker/orca#14539) + +* Security + + * Fixed `libcurl` vulnerability in RethinkDB image. (docker/orca#15169) + +* UI + + * Fixed an issue that prevented "Per User Limit" on Admin Settings from working. (docker/escalation#639) + ## 3.0.5 (2018-08-30) **Bug fixes** @@ -291,6 +314,17 @@ deprecated. Deploy your applications as Swarm services or Kubernetes workloads. # Version 2.2 +## Version 2.2.14 (2018-10-25) + +**Bug fixes** + +* Core + * Resolved an issue where LDAP sync jobs would crash when handling an org admin search result which does not correspond to an existing user. (docker/escalation#784 #docker/escalation#888) + * Fixed an issue that caused RethinkDB client lock contention. (docker/escalation#902 and docker/escalation#906) + +* UI + * Fixed an issue that prevented "Per User Limit" on Admin Settings from working. (docker/escalation#639) + ## Version 2.2.13 (2018-08-30) **Bug fixes** From 7466ba8c5afb9851d5272da182ec9cd3858ec99c Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudezmt@users.noreply.github.com> Date: Wed, 24 Oct 2018 17:27:42 -0700 Subject: [PATCH 171/222] Update release-notes.md Removed "Builder" changes. --- ee/engine/release-notes.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/ee/engine/release-notes.md b/ee/engine/release-notes.md index fe4a4cb018..9b50117cf1 100644 --- a/ee/engine/release-notes.md +++ b/ee/engine/release-notes.md @@ -47,12 +47,6 @@ adopted as quickly for consistency and compatibility reasons. - Fixed the logic used for skipping over running tasks. [docker/swarmkit#2724](https://github.com/docker/swarmkit/pull/2724) - Addressed unassigned task leak when a service is removed. [docker/swarmkit#2709](https://github.com/docker/swarmkit/pull/2709) - -### Builder - -- Added an error if build args are missing during `docker build`. [docker/engine#25](https://github.com/docker/engine/pull/25) -- Fixed an issue where HealthCheck runs while an image is building. [moby/moby#37413](https://github.com/moby/moby/pull/37413) - ## 18.03.1-ee-3 (2018-08-30) > Important notes about this release From 18266e3caa8b64149c74f59d760beec1cf924ba0 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Wed, 24 Oct 2018 22:08:22 -0600 Subject: [PATCH 172/222] Update install.md Added backticks and clarified `san` usage. --- reference/ucp/3.0/cli/install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/ucp/3.0/cli/install.md b/reference/ucp/3.0/cli/install.md index 0e074f75b9..cb4b4f92e4 100644 --- a/reference/ucp/3.0/cli/install.md +++ b/reference/ucp/3.0/cli/install.md @@ -53,7 +53,7 @@ command. | `--interactive, i` | Run in interactive mode and prompt for configuration values | | `--admin-username` | The UCP administrator username | | `--admin-password` | The UCP administrator password | -| `--san` | Add subject alternative names to certificates (e.g. --san www1.acme.com --san www2.acme.com) | +| `--san` | Add subject alternative names to certificates. The `-san` option can be used mulitple times, such as `--san www1.acme.com --san www2.acme.com`. | | `--host-address` | The network address to advertise to other nodes. Format: IP address or network interface name | | `--data-path-addr` | Address or interface to use for data path traffic. Format: IP address or network interface name | | `--controller-port` | Port for the web UI and API | From ab45d6974347a69c6444afee51f88c65c7ae636a Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Wed, 24 Oct 2018 22:09:40 -0600 Subject: [PATCH 173/222] Update install.md Replaced this node with a node. --- reference/ucp/3.1/cli/install.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reference/ucp/3.1/cli/install.md b/reference/ucp/3.1/cli/install.md index c4a93fd0cd..ab38a35b14 100644 --- a/reference/ucp/3.1/cli/install.md +++ b/reference/ucp/3.1/cli/install.md @@ -1,10 +1,10 @@ --- title: docker/ucp install -description: Install UCP on this node +description: Install UCP on a node keywords: ucp, cli, install --- -Install UCP on this node +Install UCP on a node ## Usage @@ -18,7 +18,7 @@ docker container run --rm -it \ ## Description -This command initializes a new swarm, turns this node into a manager, and installs +This command initializes a new swarm, turns anode into a manager, and installs Docker Universal Control Plane (UCP). When installing UCP you can customize: From c2929e72e795af35e41472ffe7ec124eb564bd54 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Wed, 24 Oct 2018 22:13:06 -0600 Subject: [PATCH 174/222] Update install.md --- reference/ucp/3.1/cli/install.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/reference/ucp/3.1/cli/install.md b/reference/ucp/3.1/cli/install.md index ab38a35b14..69252b795e 100644 --- a/reference/ucp/3.1/cli/install.md +++ b/reference/ucp/3.1/cli/install.md @@ -23,14 +23,8 @@ Docker Universal Control Plane (UCP). When installing UCP you can customize: - * The certificates used by the UCP web server. Create a volume - named `ucp-controller-server-certs` and copy the `ca.pem`, `cert.pem`, and `key.pem` - files to the root directory. Then run the install command with the - `--external-server-cert` flag. - - * The license used by UCP, by bind-mounting the file at - `/config/docker_subscription.lic` in the tool. E.g. `-v /path/to/my/config/docker_subscription.lic:/config/docker_subscription.lic` - or by specifying with `--license "$(cat license.lic)` + * The UCP web server certificates. Create a volume named `ucp-controller-server-certs` and copy the `ca.pem`, `cert.pem`, and `key.pem` files to the root directory. Then run the install command with the `--external-server-cert` flag. + * The UCP license, by bind-mounting the file at `/config/docker_subscription.lic` in the tool. E.g. `-v /path/to/my/config/docker_subscription.lic:/config/docker_subscription.lic` or by specifying with `--license "$(cat license.lic)` If you're joining more nodes to this swarm, open the following ports in your firewall: From 31cc35a9fac1345864b022b93c452b034915a751 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Wed, 24 Oct 2018 22:16:39 -0600 Subject: [PATCH 175/222] Update install.md --- reference/ucp/3.1/cli/install.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reference/ucp/3.1/cli/install.md b/reference/ucp/3.1/cli/install.md index 69252b795e..d3da093f7d 100644 --- a/reference/ucp/3.1/cli/install.md +++ b/reference/ucp/3.1/cli/install.md @@ -29,8 +29,8 @@ When installing UCP you can customize: If you're joining more nodes to this swarm, open the following ports in your firewall: - * 443 or the '--controller-port' - * 2376 or the '--swarm-port' + * 443 or the `--controller-port` + * 2376 or the `--swarm-port` * 12376, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387 * 4789 (udp) and 7946 (tcp/udp) for overlay networking From 32ba381a609d42d622eed553a25dd101df69655f Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Wed, 24 Oct 2018 22:17:32 -0600 Subject: [PATCH 176/222] Update upgrade.md --- reference/ucp/3.1/cli/upgrade.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/ucp/3.1/cli/upgrade.md b/reference/ucp/3.1/cli/upgrade.md index f12c6435e5..5fd9e3cfef 100644 --- a/reference/ucp/3.1/cli/upgrade.md +++ b/reference/ucp/3.1/cli/upgrade.md @@ -45,4 +45,4 @@ healthy and that all nodes have been upgraded successfully. | `--pod-cidr` | Kubernetes cluster IP pool for the pods to allocated IP from (Default: 192.168.0.0/16 | | `--nodeport-range` | Allowed port range for Kubernetes services of type NodePort (Default: 32768-35535) | | `--cloud-provider` | The cloud provider for the cluster | -| `--unmanaged-cni` | Flag to indicate if cni provider is calico and managed by UCP (calico is the default CNI provider). The default value is "true" when using the default Calico CNI. | +| `--unmanaged-cni` | Flag to indicate if CNI provider is Calico and managed by UCP. Calico is the default CNI provider. The default value is `true` when using the default Calico CNI. | From 4e855b1518090ac36329a9315973523053144f03 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Wed, 24 Oct 2018 22:20:04 -0600 Subject: [PATCH 177/222] Update install-cni-plugin.md --- ee/ucp/kubernetes/install-cni-plugin.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ee/ucp/kubernetes/install-cni-plugin.md b/ee/ucp/kubernetes/install-cni-plugin.md index 1b32936199..a2b803fe79 100644 --- a/ee/ucp/kubernetes/install-cni-plugin.md +++ b/ee/ucp/kubernetes/install-cni-plugin.md @@ -31,9 +31,9 @@ docker container run --rm -it --name ucp \ --unmanaged-cni <true|false> \ --interactive ``` -***NOTE:*** The `true` value installs UCP without a managed CNI plugin. UCP and the Kubernetes components will be running -but pod to pod networking will not function until a CNI plugin is manually installed. This will impact some -functionality of UCP until a CNI plugin is running. +***NOTE:*** Setting `--unmanaged-cni` to `true` value installs UCP without a managed CNI plugin. UCP and the +Kubernetes components will be running but pod-to-pod networking will not function until a CNI plugin is manually +installed. This will impact some functionality of UCP until a CNI plugin is running. You must provide a correct YAML installation file for the CNI plugin, but most of the default files work on Docker EE with no modification. From 79f8fed92675d06d7cb39cce5663042df565c4c0 Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Thu, 25 Oct 2018 09:29:24 -0700 Subject: [PATCH 178/222] peer review fwwdback --- ee/ucp/release-notes.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/ee/ucp/release-notes.md b/ee/ucp/release-notes.md index 8038b7f2bb..0677410e50 100644 --- a/ee/ucp/release-notes.md +++ b/ee/ucp/release-notes.md @@ -49,7 +49,7 @@ upgrade your installation to the latest release. * For an organization, the format is `org:{org-id}` * For a team, the format is `team:{org-id}:{team-id}` -* In order to deploy Pods with containers using Restricted Parameters, a user must be an admin and a service account must explicitly have a **ClusterRoleBinding** with the `cluster-admin` **ClusterRole**. Restricted Parameters on Containers include: +* In order to deploy Pods with containers using Restricted Parameters, a user must be an admin and a service account must explicitly have a **ClusterRoleBinding** with `cluster-admin` as the **ClusterRole**. Restricted Parameters on Containers include: * Host Bind Mounts * Privileged Mode * Extra Capabilities @@ -57,7 +57,7 @@ upgrade your installation to the latest release. * Host IPC * Host PID -* If the `cluster-admin` built-in **ClusterRole** or **ClusterRoleBinding** are deleted, you can recreate it automatically by restarting the `ucp-kube-apiserver` container on any manager node. +* If you delete the built-in **ClusterRole** or **ClusterRoleBinding** for `cluster-admin`, restart the `ucp-kube-apiserver` container on any manager node to recreate them. # Version 3.0 @@ -66,19 +66,19 @@ upgrade your installation to the latest release. **Bug fixes** * Core - * Bumped Kubernetes version to 1.8.15. + * Updated Kubernetes to version 1.8.15. * Resolved an issue where LDAP sync jobs would crash when handling an org admin search result which does not correspond to an existing user. (docker/escalation#784 #docker/escalation#888) * Fixed an issue that caused RethinkDB client lock contention. (docker/escalation#902 and docker/escalation#906) - * Fixed an issue that caused Azure IPAM not releasing addresses. (docker/escalation#815) - * Fixed an issue that caused installation of UCP on Azure unsuccessful. (docker/escalation#863) - * Fixed an issue that caused Interlock proxy service keeps on restarting (docker/escalation#814) - * Fixed an issue that caused Kubernetes DNS not working (#14064, #11981) - * Fixed an issue that causes a missing swarm placement constraints warning banner to show up unnecessarily. (#14539) + * Fixed an issue that caused Azure IPAM to not release addresses. (docker/escalation#815) + * Fixed an issue that caused unsuccessful installation of UCP on Azure. (docker/escalation#863) + * Fixed an issue that caused the Interlock proxy service to restart (docker/escalation#814) + * Fixed an issue that caused Kubernetes DNS to not work (#14064, #11981) + * Fixed an issue that causes a missing warning banner to appear unnecessarily. (#14539) * Security * Fixed `libcurl` vulnerability in RethinkDB image. (#15169) * UI - * Fixed an issue that caused "Per User Limit" not working on Admin Settings. (docker/escalation#639) + * Fixed an issue that caused "Per User Limit" to not work in Admin Settings. (docker/escalation#639) ## 3.0.4 (2018-08-09) @@ -340,11 +340,11 @@ deprecated. Deploy your applications as Swarm services or Kubernetes workloads. **Bug fixes** * Core - * Resolved an issue where LDAP sync jobs would crash when handling an org admin - search result which does not correspond to an existing user. (docker/escalation#784 #docker/escalation#888) + * Resolved an issue where LDAP sync jobs terminated when handling an org admin + Search result that does not resolve to an existing user. (docker/escalation#784 #docker/escalation#888) * Fixed an issue that caused RethinkDB client lock contention. (docker/escalation#902 and docker/escalation#906) * UI - * Fixed an issue that caused "Per User Limit" not working on Admin Settings. (docker/escalation#639) + * Fixed an issue that caused "Per User Limit" to not work on Admin Settings. (docker/escalation#639) ## Version 2.2.12 (2018-08-09) From 95e6230891e2e47619481f025bb8cf82dd5aa012 Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Thu, 25 Oct 2018 09:37:53 -0700 Subject: [PATCH 179/222] additional edits --- ee/ucp/release-notes.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ee/ucp/release-notes.md b/ee/ucp/release-notes.md index 0677410e50..ba877a3c22 100644 --- a/ee/ucp/release-notes.md +++ b/ee/ucp/release-notes.md @@ -67,8 +67,8 @@ upgrade your installation to the latest release. * Core * Updated Kubernetes to version 1.8.15. - * Resolved an issue where LDAP sync jobs would crash when handling an org admin - search result which does not correspond to an existing user. (docker/escalation#784 #docker/escalation#888) + * Resolved an issue where LDAP sync jobs would terminate when processing an org admin + Search result that does not resolve to an existing user. (docker/escalation#784 #docker/escalation#888) * Fixed an issue that caused RethinkDB client lock contention. (docker/escalation#902 and docker/escalation#906) * Fixed an issue that caused Azure IPAM to not release addresses. (docker/escalation#815) * Fixed an issue that caused unsuccessful installation of UCP on Azure. (docker/escalation#863) @@ -340,7 +340,7 @@ deprecated. Deploy your applications as Swarm services or Kubernetes workloads. **Bug fixes** * Core - * Resolved an issue where LDAP sync jobs terminated when handling an org admin + * Resolved an issue where LDAP sync jobs terminated when processing an org admin Search result that does not resolve to an existing user. (docker/escalation#784 #docker/escalation#888) * Fixed an issue that caused RethinkDB client lock contention. (docker/escalation#902 and docker/escalation#906) * UI From f1108462f6d03e34c598bfe2138fc458f08197ef Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Thu, 25 Oct 2018 11:46:15 -0700 Subject: [PATCH 180/222] deprecated features added per issue 766 --- ee/ucp/release-notes.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ee/ucp/release-notes.md b/ee/ucp/release-notes.md index ba877a3c22..b62c629163 100644 --- a/ee/ucp/release-notes.md +++ b/ee/ucp/release-notes.md @@ -21,6 +21,8 @@ upgrade your installation to the latest release. # Version 3.1 +## 3.1.0 (2018-11-8) + **New Features** * Default address pool for Swarm is now user configurable * UCP now supports Kubernetes Network Encryption using IPSec @@ -59,6 +61,17 @@ upgrade your installation to the latest release. * If you delete the built-in **ClusterRole** or **ClusterRoleBinding** for `cluster-admin`, restart the `ucp-kube-apiserver` container on any manager node to recreate them. +**Deprecated features** + +The following features are deprecated in UCP 3.1 + +* Collections + * Nested collections are deprecated and will be removed in future versions of the product. Customers should use non-nested collections going forward. +* Kubernetes + * **PersistentVolumeLabel** admission controller is deprecated in Kubernetes 1.11. This functionality will be migrated to Cloud Controller Manager [https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/](https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/) + * `--cni-install-url` is deprecated in favor of `--unmanaged-cni` + * KubeDNS is deprecated in favor of CoreDNS. + # Version 3.0 ## 3.0.6 (2018-10-25) From 3b86535170ef11476550e2bb81aeeca32364cc55 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Thu, 25 Oct 2018 13:16:13 -0600 Subject: [PATCH 181/222] Update security.md --- engine/security/security.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/engine/security/security.md b/engine/security/security.md index 00e67997b5..cfe0655f4d 100644 --- a/engine/security/security.md +++ b/engine/security/security.md @@ -202,12 +202,10 @@ those explicitly required for their processes. ## Docker Content Trust Signature Verification The Docker Content Trust signature verification feature is built directly -into the `dockerd` binary. The Docker Engine can be configured to only -permitted to run signed images. This is configured in the Dockerd -configuration file. To incorporate this, the Docker Engine has -trustpinning configured in the `daemon.json` file. To enable this feature, -trustpinning can be configured in daemon.json file, whereby only repositories -signed with a user-specified root key will be allowed to be pulled and run. +into the `dockerd` binary. The Docker Engine can be configured to only run +signed images. This is configured in the Dockerd configuration file. +To enable this feature, trustpinning can be configured in `daemon.json`, whereby +only repositories signed with a user-specified root key can be pulled and run. This provides insight to administrators that was not previously available with the CLI being responsible for enforcing and performing image signature verification. From 75e3c4de87614e057408045cac27698a479536eb Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Thu, 25 Oct 2018 13:19:03 -0600 Subject: [PATCH 182/222] Update content_trust.md --- engine/security/trust/content_trust.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/engine/security/trust/content_trust.md b/engine/security/trust/content_trust.md index c3d9db3e5e..5109ae3644 100644 --- a/engine/security/trust/content_trust.md +++ b/engine/security/trust/content_trust.md @@ -182,6 +182,11 @@ The signature verification feature is configured in the Docker daemon configurat `permissive`: Verification will be performed, but only failures will only be logged and remain unenforced. This configuration is intended for testing of changes related to content-trust. <br> `enforced`: DCT will be enforced and an image that cannot be verified successfully will not be pulled or run. | +***Note:*** The DCT configuration defined here is agnostic of any policy defined in +[UCP](https://docs.docker.com/v17.09/datacenter/ucp/2.0/guides/content-trust/#configure-ucp). +Images that can be deployed by the UCP trust policy but are disallowed by the Docker Engine +configuration will not successfully be deployed or run on that engine. + ### Enable and disable DCT per-shell or per-invocation Instead of enabling DCT through the system-wide configuration, DCT can be enabled or disabled From 5fc2b2976821147063694766ac50d80c7f1eb401 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Thu, 25 Oct 2018 15:23:30 -0600 Subject: [PATCH 183/222] Update security.md Incorporated @ddeyo's fixes --- engine/security/security.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/engine/security/security.md b/engine/security/security.md index cfe0655f4d..f4a761f6e2 100644 --- a/engine/security/security.md +++ b/engine/security/security.md @@ -201,14 +201,15 @@ those explicitly required for their processes. ## Docker Content Trust Signature Verification -The Docker Content Trust signature verification feature is built directly -into the `dockerd` binary. The Docker Engine can be configured to only run -signed images. This is configured in the Dockerd configuration file. +The Docker Engine can be configured to only run signed images. The Docker Content +Trust signature verification feature is built directly into the `dockerd` binary. +This is configured in the Dockerd configuration file. + To enable this feature, trustpinning can be configured in `daemon.json`, whereby only repositories signed with a user-specified root key can be pulled and run. -This provides insight to administrators that was not previously available with -the CLI being responsible for enforcing and performing image signature verification. +This feature provides more insight to administrators than previously available with +the CLI for enforcing and performing image signature verification. For more information on configuring Docker Content Trust Signature Verificiation, go to (Content trust in Docker)[engine/security/trust/content_trust]. From 3a5538dd99746a8b2b6391d53dce7ce72d3f4cea Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Thu, 25 Oct 2018 15:28:19 -0600 Subject: [PATCH 184/222] Update content_trust.md Incorporated @ddeyo's feedback --- engine/security/trust/content_trust.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/engine/security/trust/content_trust.md b/engine/security/trust/content_trust.md index 5109ae3644..a68fe3883f 100644 --- a/engine/security/trust/content_trust.md +++ b/engine/security/trust/content_trust.md @@ -20,14 +20,14 @@ Docker registries. These signatures allow client-side verification of the integrity and publisher of specific image tags. Once DCT is enabled, image publishers can sign their images. Image consumers -can ensure that the images they use are signed. Publishers and consumers can be individuals -alone or in organizations. DCT supports users and automated processes +can ensure that the images they use are signed. Publishers and consumers can +either be individuals or organizations. DCT supports users and automated processes such as builds. -When you enable DCT, signing occurs on the client after push and -verification happens on the client after pull if you use Docker CE. If you use -Docker EE with UCP, and you have configured UCP to require images to be signed -before deploying, signing is verified by UCP. +When you enable DCT, signing occurs on the client after push and verification +happens on the client after pull if you use Docker CE. If you use UCP, and you +have configured UCP to require images to be signed before deploying, signing is +verified by UCP. ### Image tags and DCT @@ -135,7 +135,7 @@ these various trusted operations: ### Enabling DCT in Docker Engine Configuration -Engine Signature Verification will prevent the following behaviors on an image: +Engine Signature Verification prevents the following behaviors on an image: * Running a container to build an image (the base image must be signed, or must be scratch) * Creating a container from an image that is not signed @@ -174,7 +174,7 @@ The signature verification feature is configured in the Docker daemon configurat | ***Stanza*** | ***Description*** | | ----------------------- |---------------| -| `trust-pinning:root-keys` | Root key IDs are canonical IDs that sign the root metadata of the image trust data. In Docker Certified Trust (DCT), the root keys are unique certificates tying the name of the image to the repo metadata.  The private key ID (the canonical key ID) corresponding to the certificate is not dependent on the image name. If an image’s name matches more than one glob, then the most specific (longest) one is chosen.| +| `trust-pinning:root-keys` | Root key IDs are canonical IDs that sign the root metadata of the image trust data. In Docker Certified Trust (DCT), the root keys are unique certificates tying the name of the image to the repo metadata.  The private key ID (the canonical key ID) corresponding to the certificate does not depend on the image name. If an image’s name matches more than one glob, then the most specific (longest) one is chosen.| |`trust-pinning:library-images` | This option pins the official libraries (`docker.io/library/*`) to the hard-coded Docker official images root key. DCT trusts the official images by default. This is in addition to whatever images are specified by `trust-pinning:root-keys`. If `trustpinning:root-keys` specifies a key mapping for `docker.io/library/*`, those keys will be preferred for trust pinning. Otherwise, if a more general `docker.io/*` or `*` are specified, the official images key will be preferred.| | `allow-expired-trust-cache` | Specifies whether cached locally expired metadata validates images if an external server is unreachable or does not have image trust metadata. This is necessary for machines which may be often offline, as may be the case for edge. This does not provide mitigations against freeze attacks, which is a necessary to provide availability in low-connectivity environments. | | `mode` | Specifies whether DCT is enabled and enforced. Valid modes are: <br> From 06e0673a7e8b35af5a69a3abe40ae8048a6cd1aa Mon Sep 17 00:00:00 2001 From: ollypom <oppomeroy@gmail.com> Date: Fri, 26 Oct 2018 17:21:17 +0100 Subject: [PATCH 185/222] Updated for October Patches Signed-off-by: ollypom <oppomeroy@gmail.com> --- _config.yml | 16 ++++++++-------- _data/ddc_offline_files_2.yaml | 26 ++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/_config.yml b/_config.yml index 00069b631f..5e2998bbcd 100644 --- a/_config.yml +++ b/_config.yml @@ -92,7 +92,7 @@ defaults: - scope: path: "install" values: - win_latest_build: "docker-17.06.2-ee-16" + win_latest_build: "docker-17.06.2-ee-17" - scope: path: "datacenter" values: @@ -102,21 +102,21 @@ defaults: values: dtr_org: "docker" dtr_repo: "dtr" - dtr_version: "2.5.5" + dtr_version: "2.5.6" - scope: path: "datacenter/dtr/2.4" values: hide_from_sitemap: true dtr_org: "docker" dtr_repo: "dtr" - dtr_version: "2.4.6" + dtr_version: "2.4.7" - scope: path: "datacenter/dtr/2.3" values: hide_from_sitemap: true dtr_org: "docker" dtr_repo: "dtr" - dtr_version: "2.3.8" + dtr_version: "2.3.9" - scope: path: "datacenter/dtr/2.2" values: @@ -138,23 +138,23 @@ defaults: values: ucp_org: "docker" ucp_repo: "ucp" - ucp_version: "3.0.5" + ucp_version: "3.0.6" - scope: # This is a bit of a hack for the get-support.md topic. path: "ee" values: ucp_org: "docker" ucp_repo: "ucp" dtr_repo: "dtr" - ucp_version: "3.0.5" + ucp_version: "3.0.6" dtr_version: "2.5.0" - dtr_latest_image: "docker/dtr:2.5.5" + dtr_latest_image: "docker/dtr:2.5.6" - scope: path: "datacenter/ucp/2.2" values: hide_from_sitemap: true ucp_org: "docker" ucp_repo: "ucp" - ucp_version: "2.2.13" + ucp_version: "2.2.14" - scope: path: "datacenter/ucp/2.1" values: diff --git a/_data/ddc_offline_files_2.yaml b/_data/ddc_offline_files_2.yaml index 1e4252ce24..458230376c 100644 --- a/_data/ddc_offline_files_2.yaml +++ b/_data/ddc_offline_files_2.yaml @@ -6,6 +6,16 @@ - product: "ucp" version: "3.0" tar-files: + - description: "3.0.6 Linux" + url: https://packages.docker.com/caas/ucp_images_3.0.6.tar.gz + - description: "3.0.6 IBM Z" + url: https://packages.docker.com/caas/ucp_images_s390x_3.0.6.tar.gz + - description: "3.0.6 Windows Server 2016 LTSC" + url: https://packages.docker.com/caas/ucp_images_win_2016_3.0.6.tar.gz + - description: "3.0.6 Windows Server 1709" + url: https://packages.docker.com/caas/ucp_images_win_1709_3.0.6.tar.gz + - description: "3.0.6 Windows Server 1803" + url: https://packages.docker.com/caas/ucp_images_win_1803_3.0.6.tar.gz - description: "3.0.5 Linux" url: https://packages.docker.com/caas/ucp_images_3.0.5.tar.gz - description: "3.0.5 IBM Z" @@ -53,6 +63,12 @@ - product: "ucp" version: "2.2" tar-files: + - description: "2.2.14 Linux" + url: https://packages.docker.com/caas/ucp_images_2.2.14.tar.gz + - description: "2.2.14 IBM Z" + url: https://packages.docker.com/caas/ucp_images_s390x_2.2.14.tar.gz + - description: "2.2.14 Windows" + url: https://packages.docker.com/caas/ucp_images_win_2.2.14.tar.gz - description: "2.2.13 Linux" url: https://packages.docker.com/caas/ucp_images_2.2.13.tar.gz - description: "2.2.13 IBM Z" @@ -128,6 +144,10 @@ - product: "dtr" version: "2.5" tar-files: + - description: "DTR 2.5.6 Linux x86" + url: https://packages.docker.com/caas/dtr_images_2.5.6.tar.gz + - description: "DTR 2.5.6 IBM Z" + url: https://packages.docker.com/caas/dtr_images_s390x_2.5.6.tar.gz - description: "DTR 2.5.5 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.5.5.tar.gz - description: "DTR 2.5.5 IBM Z" @@ -151,6 +171,10 @@ - product: "dtr" version: "2.4" tar-files: + - description: "DTR 2.4.7 Linux x86" + url: https://packages.docker.com/caas/dtr_images_2.4.7.tar.gz + - description: "DTR 2.4.7 IBM Z" + url: https://packages.docker.com/caas/dtr_images_s390x_2.4.7.tar.gz - description: "DTR 2.4.6 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.4.6.tar.gz - description: "DTR 2.4.6 IBM Z" @@ -182,6 +206,8 @@ - product: "dtr" version: "2.3" tar-files: + - description: "DTR 2.3.9" + url: https://packages.docker.com/caas/dtr_images_2.3.9.tar.gz - description: "DTR 2.3.8" url: https://packages.docker.com/caas/dtr_images_2.3.8.tar.gz - description: "DTR 2.3.7" From 32f8a7d5ee70c7226b9f641845b6758b020f4a3d Mon Sep 17 00:00:00 2001 From: ollypom <oppomeroy@gmail.com> Date: Fri, 26 Oct 2018 18:22:32 +0100 Subject: [PATCH 186/222] Remove DTR IBM Z Links Signed-off-by: ollypom <oppomeroy@gmail.com> --- _data/ddc_offline_files_2.yaml | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/_data/ddc_offline_files_2.yaml b/_data/ddc_offline_files_2.yaml index 458230376c..0f9ba29f20 100644 --- a/_data/ddc_offline_files_2.yaml +++ b/_data/ddc_offline_files_2.yaml @@ -146,63 +146,35 @@ tar-files: - description: "DTR 2.5.6 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.5.6.tar.gz - - description: "DTR 2.5.6 IBM Z" - url: https://packages.docker.com/caas/dtr_images_s390x_2.5.6.tar.gz - description: "DTR 2.5.5 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.5.5.tar.gz - - description: "DTR 2.5.5 IBM Z" - url: https://packages.docker.com/caas/dtr_images_s390x_2.5.5.tar.gz - description: "DTR 2.5.3 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.5.3.tar.gz - - description: "DTR 2.5.3 IBM Z" - url: https://packages.docker.com/caas/dtr_images_s390x_2.5.3.tar.gz - description: "DTR 2.5.2 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.5.2.tar.gz - - description: "DTR 2.5.2 IBM Z" - url: https://packages.docker.com/caas/dtr_images_s390x_2.5.2.tar.gz - description: "DTR 2.5.1 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.5.1.tar.gz - - description: "DTR 2.5.1 IBM Z" - url: https://packages.docker.com/caas/dtr_images_s390x_2.5.1.tar.gz - description: "DTR 2.5.0 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.5.0.tar.gz - - description: "DTR 2.5.0 IBM Z" - url: https://packages.docker.com/caas/dtr_images_s390x_2.5.0.tar.gz - product: "dtr" version: "2.4" tar-files: - description: "DTR 2.4.7 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.4.7.tar.gz - - description: "DTR 2.4.7 IBM Z" - url: https://packages.docker.com/caas/dtr_images_s390x_2.4.7.tar.gz - description: "DTR 2.4.6 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.4.6.tar.gz - - description: "DTR 2.4.6 IBM Z" - url: https://packages.docker.com/caas/dtr_images_s390x_2.4.6.tar.gz - description: "DTR 2.4.5 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.4.5.tar.gz - - description: "DTR 2.4.5 IBM Z" - url: https://packages.docker.com/caas/dtr_images_s390x_2.4.5.tar.gz - description: "DTR 2.4.4 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.4.4.tar.gz - - description: "DTR 2.4.4 IBM Z" - url: https://packages.docker.com/caas/dtr_images_s390x_2.4.4.tar.gz - description: "DTR 2.4.3 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.4.3.tar.gz - - description: "DTR 2.4.3 IBM Z" - url: https://packages.docker.com/caas/dtr_images_s390x_2.4.3.tar.gz - description: "DTR 2.4.2 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.4.2.tar.gz - - description: "DTR 2.4.2 IBM Z" - url: https://packages.docker.com/caas/dtr_images_s390x_2.4.2.tar.gz - description: "DTR 2.4.1 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.4.1.tar.gz - - description: "DTR 2.4.1 IBM Z" - url: https://packages.docker.com/caas/dtr_images_s390x_2.4.1.tar.gz - description: "DTR 2.4.0 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.4.0.tar.gz - - description: "DTR 2.4.0 IBM Z" - url: https://packages.docker.com/caas/dtr_images_s390x_2.4.0.tar.gz - product: "dtr" version: "2.3" tar-files: From ac9c918176b3cbe9a78d977b68477f84ed02d6ff Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Fri, 26 Oct 2018 11:41:55 -0700 Subject: [PATCH 187/222] support note added --- reference/ucp/3.0/cli/support.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/ucp/3.0/cli/support.md b/reference/ucp/3.0/cli/support.md index f30dfb497f..f46cdc7c29 100644 --- a/reference/ucp/3.0/cli/support.md +++ b/reference/ucp/3.0/cli/support.md @@ -4,7 +4,7 @@ description: Create a support dump for UCP nodes keywords: ucp, cli, support, support dump, troubleshooting --- -Create a support dump for specified UCP nodes +Create a support dump for specified UCP nodes. You create a support dump to help [Docker Support](http://success.docker.com/support) understand your environment and more effectively troubleshoot issues in resolving your support case. ## Usage From bbcb10e04eebe2396fd082e4262b594c96836a67 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Fri, 26 Oct 2018 13:37:06 -0600 Subject: [PATCH 188/222] Update install.md Fixed @bermudezmt's comments --- reference/ucp/3.1/cli/install.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reference/ucp/3.1/cli/install.md b/reference/ucp/3.1/cli/install.md index d3da093f7d..4c7a3dabd5 100644 --- a/reference/ucp/3.1/cli/install.md +++ b/reference/ucp/3.1/cli/install.md @@ -24,7 +24,7 @@ Docker Universal Control Plane (UCP). When installing UCP you can customize: * The UCP web server certificates. Create a volume named `ucp-controller-server-certs` and copy the `ca.pem`, `cert.pem`, and `key.pem` files to the root directory. Then run the install command with the `--external-server-cert` flag. - * The UCP license, by bind-mounting the file at `/config/docker_subscription.lic` in the tool. E.g. `-v /path/to/my/config/docker_subscription.lic:/config/docker_subscription.lic` or by specifying with `--license "$(cat license.lic)` + * The license used by UCP, which you can accomplish by bind-mounting the file at `/config/docker_subscription.lic` in the tool. For example, `-v /path/to/my/config/docker_subscription.lic:/config/docker_subscription.lic` or by specifying the `--license $(cat license.lic)` option. If you're joining more nodes to this swarm, open the following ports in your firewall: @@ -48,7 +48,7 @@ command. | `--admin-username` | The UCP administrator username | | `--admin-password` | The UCP administrator password | | `--san` | Add subject alternative names to certificates (e.g. --san www1.acme.com --san www2.acme.com) | -| `--unmanaged-cni` | This determines who manages the CNI plugin, using `true` or `false`. The default is false. The `true` value installs UCP without a managed CNI plugin. UCP and the Kubernetes components will be running but pod to pod networking will not function until a CNI plugin is manually installed. This will impact some functionality of UCP until a CNI plugin is running. | +| `--unmanaged-cni` | This determines who manages the CNI plugin, using `true` or `false`. The default is `false`. The `true` value installs UCP without a managed CNI plugin. UCP and the Kubernetes components will be running but pod to pod networking will not function until a CNI plugin is manually installed. This will impact some functionality of UCP until a CNI plugin is running. | | `--host-address` | The network address to advertise to other nodes. Format: IP address or network interface name | | `--data-path-addr` | Address or interface to use for data path traffic. Format: IP address or network interface name | | `--controller-port` | Port for the web UI and API | From c7c267e6c6a140b78f2d6ba4f9f177619a13e282 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Fri, 26 Oct 2018 13:38:40 -0600 Subject: [PATCH 189/222] Update install-cni-plugin.md --- ee/ucp/kubernetes/install-cni-plugin.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ee/ucp/kubernetes/install-cni-plugin.md b/ee/ucp/kubernetes/install-cni-plugin.md index a2b803fe79..b41c5bb84e 100644 --- a/ee/ucp/kubernetes/install-cni-plugin.md +++ b/ee/ucp/kubernetes/install-cni-plugin.md @@ -11,9 +11,9 @@ keywords: ucp, cli, administration, kubectl, Kubernetes, cni, Container Networki For Docker Universal Control Plane, [Project Calico](https://docs.projectcalico.org/v3.0/introduction/) provides the secure networking functionality for the container communication with Kubernetes. -UCP supports certified third-party Container Networking Interface (CNI) plugins. By default, Docker EE -installs the built-in [Calico](https://github.com/projectcalico/cni-plugin) plugin, but you -can override the default and install a Docker certified plugin. +UCP supports certified third-party Container Networking Interface (CNI) plugins. Docker EE installs the +built-in [Calico](https://github.com/projectcalico/cni-plugin) plugin, but you can override that and +install a Docker certified plugin. ***NOTE:*** The `--cni-installer-url` option is deprecated as of UCP 3.1. It is replaced by the `--unmanaged-cni` option. From 252e59e95772b8ccc6f77915e8eb811089a5564c Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Fri, 26 Oct 2018 13:51:11 -0600 Subject: [PATCH 190/222] Update install.md --- reference/ucp/3.0/cli/install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/ucp/3.0/cli/install.md b/reference/ucp/3.0/cli/install.md index cb4b4f92e4..54661d0f34 100644 --- a/reference/ucp/3.0/cli/install.md +++ b/reference/ucp/3.0/cli/install.md @@ -53,7 +53,7 @@ command. | `--interactive, i` | Run in interactive mode and prompt for configuration values | | `--admin-username` | The UCP administrator username | | `--admin-password` | The UCP administrator password | -| `--san` | Add subject alternative names to certificates. The `-san` option can be used mulitple times, such as `--san www1.acme.com --san www2.acme.com`. | +| `--san` | Add subject alternative names to certificates. The `-san` option can be used multiple times, such as `--san www1.acme.com --san www2.acme.com`. | | `--host-address` | The network address to advertise to other nodes. Format: IP address or network interface name | | `--data-path-addr` | Address or interface to use for data path traffic. Format: IP address or network interface name | | `--controller-port` | Port for the web UI and API | From 0f82cef1a3650394d1a2e70372e3f4c630ec8dbd Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Fri, 26 Oct 2018 13:55:57 -0600 Subject: [PATCH 191/222] Update upgrade.md --- reference/ucp/3.1/cli/upgrade.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reference/ucp/3.1/cli/upgrade.md b/reference/ucp/3.1/cli/upgrade.md index 5fd9e3cfef..26ac97d659 100644 --- a/reference/ucp/3.1/cli/upgrade.md +++ b/reference/ucp/3.1/cli/upgrade.md @@ -23,7 +23,7 @@ This command upgrades the UCP running on this cluster. Before performing an upgrade, you should perform a backup by using the [backup](backup.md) command. -After upgrading UCP, go to the UCP web UI and confirm each node is +After upgrading UCP, go to the UCP web interface and confirm each node is healthy and that all nodes have been upgraded successfully. @@ -42,7 +42,7 @@ healthy and that all nodes have been upgraded successfully. | `--id` | The ID of the UCP instance to upgrade | | `--host-address` | Override the previously configured host address with this IP or network interface | | `--force-minimums` | Force the install/upgrade even if the system does not meet the minimum requirements | -| `--pod-cidr` | Kubernetes cluster IP pool for the pods to allocated IP from (Default: 192.168.0.0/16 | -| `--nodeport-range` | Allowed port range for Kubernetes services of type NodePort (Default: 32768-35535) | +| `--pod-cidr` | Kubernetes cluster IP pool for the pods to allocated IP. The default IP pool is `192.168.0.0/16`. | +| `--nodeport-range` | Allowed port range for Kubernetes services of type `NodePort` The default port range is 32768-35535. | | `--cloud-provider` | The cloud provider for the cluster | | `--unmanaged-cni` | Flag to indicate if CNI provider is Calico and managed by UCP. Calico is the default CNI provider. The default value is `true` when using the default Calico CNI. | From 3e5185b330225e08cee71a8d10b3c14944dbb9b9 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Fri, 26 Oct 2018 13:57:29 -0600 Subject: [PATCH 192/222] Update upgrade.md --- reference/ucp/3.1/cli/upgrade.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/ucp/3.1/cli/upgrade.md b/reference/ucp/3.1/cli/upgrade.md index 26ac97d659..8c849dce8a 100644 --- a/reference/ucp/3.1/cli/upgrade.md +++ b/reference/ucp/3.1/cli/upgrade.md @@ -43,6 +43,6 @@ healthy and that all nodes have been upgraded successfully. | `--host-address` | Override the previously configured host address with this IP or network interface | | `--force-minimums` | Force the install/upgrade even if the system does not meet the minimum requirements | | `--pod-cidr` | Kubernetes cluster IP pool for the pods to allocated IP. The default IP pool is `192.168.0.0/16`. | -| `--nodeport-range` | Allowed port range for Kubernetes services of type `NodePort` The default port range is 32768-35535. | +| `--nodeport-range` | Allowed port range for Kubernetes services of type `NodePort`. The default port range is `32768-35535`. | | `--cloud-provider` | The cloud provider for the cluster | | `--unmanaged-cni` | Flag to indicate if CNI provider is Calico and managed by UCP. Calico is the default CNI provider. The default value is `true` when using the default Calico CNI. | From 5f535dd2aaf217bd552531100393875c36f248c1 Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudezmt@users.noreply.github.com> Date: Fri, 26 Oct 2018 13:19:31 -0700 Subject: [PATCH 193/222] Re-adding the offline packages for DTR 2.4. --- _data/ddc_offline_files_2.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/_data/ddc_offline_files_2.yaml b/_data/ddc_offline_files_2.yaml index 0f9ba29f20..3ff6d9e6fd 100644 --- a/_data/ddc_offline_files_2.yaml +++ b/_data/ddc_offline_files_2.yaml @@ -163,18 +163,32 @@ url: https://packages.docker.com/caas/dtr_images_2.4.7.tar.gz - description: "DTR 2.4.6 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.4.6.tar.gz + - description: "DTR 2.4.6 IBM Z" + url: https://packages.docker.com/caas/dtr_images_s390x_2.4.6.tar.gz - description: "DTR 2.4.5 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.4.5.tar.gz + - description: "DTR 2.4.5 IBM Z" + url: https://packages.docker.com/caas/dtr_images_s390x_2.4.5.tar.gz - description: "DTR 2.4.4 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.4.4.tar.gz + - description: "DTR 2.4.4 IBM Z" + url: https://packages.docker.com/caas/dtr_images_s390x_2.4.4.tar.gz - description: "DTR 2.4.3 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.4.3.tar.gz + - description: "DTR 2.4.3 IBM Z" + url: https://packages.docker.com/caas/dtr_images_s390x_2.4.3.tar.gz - description: "DTR 2.4.2 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.4.2.tar.gz + - description: "DTR 2.4.2 IBM Z" + url: https://packages.docker.com/caas/dtr_images_s390x_2.4.2.tar.gz - description: "DTR 2.4.1 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.4.1.tar.gz + - description: "DTR 2.4.1 IBM Z" + url: https://packages.docker.com/caas/dtr_images_s390x_2.4.1.tar.gz - description: "DTR 2.4.0 Linux x86" url: https://packages.docker.com/caas/dtr_images_2.4.0.tar.gz + - description: "DTR 2.4.0 IBM Z" + url: https://packages.docker.com/caas/dtr_images_s390x_2.4.0.tar.gz - product: "dtr" version: "2.3" tar-files: From 7c98425ed203a4d365feb5d72bc7959dfaabe07b Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Fri, 26 Oct 2018 15:08:05 -0700 Subject: [PATCH 194/222] fixed code error --- ee/ucp/admin/configure/collect-cluster-metrics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ee/ucp/admin/configure/collect-cluster-metrics.md b/ee/ucp/admin/configure/collect-cluster-metrics.md index 050784f66b..e8df379e44 100644 --- a/ee/ucp/admin/configure/collect-cluster-metrics.md +++ b/ee/ucp/admin/configure/collect-cluster-metrics.md @@ -120,7 +120,7 @@ To configure your external Prometheus server to scrape metrics from Prometheus i On AWS with Kube’s cloud provider configured, you can replace `ClusterIP` with `LoadBalancer` in the service YAML then access the service through the load balancer. If running Prometheus external to UCP, change the following domain for the inventory container in the Prometheus deployment from `ucp-controller.kube-system.svc.cluster.local` to an external domain to access UCP from the Prometheus node. ``` - kubectl apply -f - &lt;&lt;EOF + kubectl apply -f - <<EOF apiVersion: v1 kind: ConfigMap metadata: From 75c7269fb2ec230044c49418c4513f4a4ed39aaa Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudez.mt@gmail.com> Date: Fri, 19 Oct 2018 15:15:02 -0700 Subject: [PATCH 195/222] - Include metadatastoremigration section for 2.5 to 2.6 upgrade - Add relevant screenshots - Update instructions on using the Swagger UI for DTR API requests - Add link to v2.5 garbage collection page --- ee/dtr/admin/install/index.md | 21 ++++++------- ee/dtr/admin/upgrade.md | 47 +++++++++++++++++++--------- ee/dtr/images/migration-error.png | Bin 0 -> 108377 bytes ee/dtr/images/migration-warning.png | Bin 0 -> 205372 bytes 4 files changed, 42 insertions(+), 26 deletions(-) create mode 100644 ee/dtr/images/migration-error.png create mode 100644 ee/dtr/images/migration-warning.png diff --git a/ee/dtr/admin/install/index.md b/ee/dtr/admin/install/index.md index d0a4aabfda..f5265e1fba 100644 --- a/ee/dtr/admin/install/index.md +++ b/ee/dtr/admin/install/index.md @@ -8,24 +8,21 @@ redirect_from: --- Docker Trusted Registry (DTR) is a containerized application that runs on a -swarm managed by Docker Universal Control Plane (UCP). It can be installed +swarm managed by the Universal Control Plane (UCP). It can be installed on-premises or on a cloud infrastructure. -Use these instructions to install DTR. - ## Step 1. Validate the system requirements -The first step in installing DTR, is ensuring your -infrastructure has all the [requirements DTR needs to run](system-requirements.md). +Before installing DTR, make sure your +infrastructure meets the [system requirements](./system-requirements) that DTR needs to run. ## Step 2. Install UCP Since DTR requires Docker Universal Control Plane (UCP) -to run, you need to install UCP on all the nodes where you plan to install DTR. -[Learn how to install UCP](/datacenter/ucp/2.2/guides/admin/install.md). +to run, you need to [install UCP](../ucp/admin/install/) on all the nodes where you plan to install DTR. DTR needs to be installed on a worker node that is being managed by UCP. -You can't install DTR on a standalone Docker Engine. +You cannot install DTR on a standalone Docker Engine. ![](../../images/install-dtr-1.svg) @@ -65,12 +62,12 @@ DTR, so that UCP is automatically reconfigured to trust DTR. ## Step 4. Check that DTR is running In your browser, navigate to the Docker **Universal Control Plane** -web UI, and navigate to the **Applications** screen. DTR should be listed +web interface, and navigate to the **Applications** screen. DTR should be listed as an application. -![](../../images/install-dtr-3.png){: .with-border} +![](../../images/create-repository-1.png){: .with-border} -You can also access the **DTR web UI**, to make sure it is working. In your +You can also access the **DTR web interface**, to make sure it is working. In your browser, navigate to the address where you installed DTR. ![](../../images/install-dtr-4.png){: .with-border} @@ -131,7 +128,7 @@ To add replicas to a DTR cluster, use the `docker/dtr join` command: 3. Check that all replicas are running. In your browser, navigate to the Docker **Universal Control Plane** - web UI, and navigate to the **Applications** screen. All replicas should + web interface, and navigate to the **Applications** screen. All replicas should be displayed. ![](../../images/install-dtr-6.png){: .with-border} diff --git a/ee/dtr/admin/upgrade.md b/ee/dtr/admin/upgrade.md index 53068b05c4..4a82f49c98 100644 --- a/ee/dtr/admin/upgrade.md +++ b/ee/dtr/admin/upgrade.md @@ -4,20 +4,19 @@ description: Learn how to upgrade your Docker Trusted Registry keywords: dtr, upgrade, install --- -{% assign previous_version="2.4" %} +{% assign previous_version="2.5" %} -DTR uses [semantic versioning](http://semver.org/) and we aim to achieve specific -guarantees while upgrading between versions. We never support downgrading. We -support upgrades according to the following rules: +DTR uses [semantic versioning](http://semver.org/) and Docker aims to achieve specific +guarantees while upgrading between versions. While downgrades are not supported, Docker supports upgrades according to the following rules: -* When upgrading from one patch version to another you can skip patch versions +* When upgrading from one patch version to another, you can skip patch versions because no data migration is done for patch versions. -* When upgrading between minor versions, you can't skip versions, but you can - upgrade from any patch versions of the previous minor version to any patch +* When upgrading between minor versions, you ***cannot*** skip versions, but you can + upgrade from any patch version of the previous minor version to any patch version of the current minor version. -* When upgrading between major versions you also have to upgrade one major - version at a time, but you have to upgrade to the earliest available minor - version. We also strongly recommend upgrading to the latest minor/patch +* When upgrading between major versions, make sure to upgrade one major + version at a time &ndash; and also upgrade to the earliest available minor + version. We strongly recommend upgrading to the latest minor/patch version for your major version first. | Description | From | To | Supported | @@ -34,14 +33,14 @@ support upgrades according to the following rules: | major upgrade skipping minor version | x.y.z | x+1.y+1.z | no | There may be at most a few seconds of interruption during the upgrade of a -DTR cluster. Schedule the upgrade to take place outside business peak hours -to ensure the impact on your business is close to none. +DTR cluster. Schedule the upgrade to take place outside of peak hours +to avoid any business impacts. ## Minor upgrade Before starting your upgrade, make sure that: * The version of UCP you are using is supported by the version of DTR you -are trying to upgrade to. [Check the compatibility matrix](https://success.docker.com/Policies/Compatibility_Matrix). +are trying to upgrade to. [Check the compatibility matrix](https://success.docker.com/article/compatibility-matrix). * You have a recent [DTR backup](disaster-recovery/create-a-backup.md). * You [disable Docker content trust in UCP](/ee/ucp/admin/configure/run-only-the-images-you-trust/). @@ -73,7 +72,7 @@ docker run -it --rm \ By default the upgrade command runs in interactive mode and prompts you for any necessary information. You can also check the -[reference documentation](/reference/dtr/2.5/cli/index.md) for other existing flags. +[reference documentation](/reference/dtr/2.6/cli/index.md) for other existing flags. The upgrade command will start replacing every container in your DTR cluster, one replica at a time. It will also perform certain data migrations. If anything @@ -85,6 +84,25 @@ command and it will resume from where it left off. A patch upgrade changes only the DTR containers and it's always safer than a minor upgrade. The command is the same as for a minor upgrade. +## 2.5 to 2.6 upgrade + +When upgrading from `2.5` to `2.6`, the system will run a `metadatastoremigration` job after a successful upgrade. This involves migrating the blob links for your images which is necessary for online garbage collection. With `2.6`, you can log in to the DTR web interface and navigate to **System > Job Logs** to check the status of the `metadatastoremigration` job. See [Audit Jobs via the Web Interface](../manage-jobs/audit-jobs-via-ui/) for more details. + +![](../images/migration-warning.png){: .with-border} + +Garbage collection is disabled while the migration is running. In the case of a failed `metadatastoremigration`, the system will retry twice. + +![](../images/migration-error.png){: .with-border} + +If the three attempts fail, you will have to retrigger the `metadatastoremigration` job manually. To do so, send a `POST` request to the `/api/v0/jobs` endpoint: + +```bash +curl https://<dtr-external-url>/api/v0/jobs -X POST \ +-u username:accesstoken -H 'Content-Type':'application/json' -d \ +'{"action": "metadatastoremigration"}' +``` +Alternatively, select **API** from the bottom left navigation pane of the DTR web interface and use the Swagger UI to send your API request. + ## Download the vulnerability database After upgrading DTR, you need to re-download the vulnerability database. @@ -93,3 +111,4 @@ After upgrading DTR, you need to re-download the vulnerability database. ## Where to go next - [Release notes](../release-notes.md) +- [Garbage collection in v2.5](../../../v18.03/ee/dtr/admin/configure/garbage-collection.md) diff --git a/ee/dtr/images/migration-error.png b/ee/dtr/images/migration-error.png new file mode 100644 index 0000000000000000000000000000000000000000..58ac6a5bc3ace67b56912d1508aef8834f30f4e3 GIT binary patch literal 108377 zcmcG!by%BEw>FBjK+)n9Eydm4TC{j^_u{Srf|TN3+}(=1yStRMSa1s-JUEAUpYPr8 zuX}%go$EStC3&7anORx0X3fmK?pfhqlw>eaiBaL;;4oxAORB=bAuGbcy&^<GdU=vy zby53rdF3iDtB&$gd{DlIy?lS?CZ+AB=4jytFmW-5vvhE@H)nA*b1^q}aJ6!DgCcf| z!oj_Vla>6W?wNVC0`Sz3y6ZWEX1dCIE2HGSMhP-}jsL0evl>AhzNDL$e_K=I$r3hD zXE3Cylg(ou6(Ro{0;4KEUZKRdkKckWx079WVZ(|D0eIpLC~Z)P*SQlklZ)#`obu%; z&{EpKW#3a#q|xS2dROQDuR?21#RRo5l-LT#1o1F4b#3*Y6Opu|(WS{*if%fy;ie%> zSrp2kx8nc(u^CiMYrx)QC=04Jn=)GnQ|XP6LBal7zdK<(WJ$s2LG+)h|8+;l9I82- z&DD98%+R1@Pcq;X^tPARX25Dz$j$Vi0LJG*|34d0*UQge0%M9c7cFCVw!0p`lg7Nw zryLj@Fj?d!;d`1}$op?){@<pVPNYj!z@lUpJ&wBy*Y6b3Z}WSj-ubeMJvT&T32_k% z;r-PE@i5#7iNiLwY2eVl1o3-3N=XS4_I31CFUaH&ro`W}H-k23ev4SAFE>~t27L&! zvQkXQaABVA_=iDWbQqvm<e22PpR17icO^CcWJ|;UAu4vlnK?;ZLL!hX^z9~pSWLL} z(c6DoRvhIFS(5`GZ~Nt7y<7dkReTOW3YE1a@3wGGo-8@E*R)*1!$U?0LsxT?=isMX z$@RxYY~G@mW(oSqm1f2Gm#8pfkZwU^^iDGeI$}eBCUFsu6-gy`Na>fcj~a2E%+-#1 z#2`0gVkLHUowQ){+t{kEwV_Hp%#ZNIr?#hz(VWpXhZLamj$s?e@ZB}B+gq2;;O3U| z+6SM>O`pi3cLe<)#j5>{_Y9W<@|jC9`g5IkA9C7<T<!<1qsgY;$TG1B5%>)}#H+P> zYTKBFQeje!U!eXq2p>`#n$GU+(D5iuHiBd%-)?#opyS%>dCH045#Vn!uu9vC6*K+l z5bo##?|)#Wj47m543CKF+i=>1-H))1SQ^cdyI_6Yy7DZqqzEZ41<RH@@tr9lv!Zuc zxd@9kC3!AvovBnDQyug>XIi&4OS%r5iZSu(@?=9;Lf(}#bE0kJJ<%C%{^pGwy}2U1 zmdsvR$a|HfX;{ZsVO}CvAfqe!xWpN`$POTg%(N$Au|B|BoGQ^09sww_ZLNauaWwiN z!l`D@B35CRPh(8161J0(Y@NgpL&1M}hI8Mn?iNgsD0P5l05>P~v!phWQVMPn`b*!v zeDUxJ>;2b6>tK*|*d0d}YLU9s;}-zY@vP8Hm7?Gq+3=vyP_uN}WOEgDb;;`|U%Q2d z>?;z#emzwm$ww=0-~7HkTzu)sFN7+XxOD4?=e`6&!mP<VNj2QvsR-3oKaEaWCb+Mb z0^SwlzX8>;Hey&;W=0(nk43H##;4dK?~Wq8800|+;Y4^bVEm_mb6HZ#ACSX#Y0<4G z{IMGjL7YPQZ`Mp+7wSNvLEh!{?-L%|oX^*`UcR<}hB5r{N>&~mtB%N)zt)LS2eM`R zWf}>t%;$#p_d}CrmBgvGWbIdSdI@9Kf7714ci*PY)8XV`F?ITLjxA<rCZ@tYz?Cys ztQgqH^0(jOrr7IPq2a{iS}ip&Q0C=*8>+MGLBK2Sr)FeCO#y}H;kDOa=Q5-9bJwz< zg>Dp@4YOVz`Qn^8pC!eog_yj>#g$M{;Qm!x%TJ2w_hgOVv{U_)ViN`uV~sLVq2zWA z*uQu+x82xl{;@@qS^$5PgR-UeMzDk^Cy!mBKA&RvY+>E$mqSLiUp>?6@KAbCD?Y&t z?XN<Kj_`UrEHw;z4Emb`zKj4C`w(ufa=YeCULQPyl=WDOk;Zv+>OL(=Sq~&zf+<Ml zeYeSKYDSB@={>O}Nj5#YKe{h#dscC908C)5bD-Q6m)~}*)y?HwT^4nN%`(wp!Gq!A z24d@ValpWB#K`!R@fjrNd^5UR<#eDDUB1d+3{x4^a@mE#@^^QsGyv)g19jT+O}!H; zR=uU8@E<!cnsb5~s2$81ONd^?bL0QDraoC(Ri53l^z~C&#V@}K1qG}@BwW9Ceav&> zC!?mJiPQS>QALGPsmD==+woWYi3kvzkVLDA&-%}8NXr6$8vrUbcf#y(v>bwXdjII= z@(%rt`;SdFDKGmY#skLpgD9EJlh!pu(BV?dDPDJV4Tc3#Jx4WN9HPuQ_AV`y5?)uc z^dD+=xSQ(quNU5uThEjR2jY`-CKA|+>KOrN8#4Q?q;$Q7aO}R3Uy7Qc1g?4hxEJ$| zX`ZFnILHpriE7drm}4ux$Pp+XSvaI(rp!v1>iiLI$xT&Q!2)JB9iInzJ%cptmLL)` z!yw2sz-jR3nD5<6nh#)D<iT>yTK|5;XdjzAm8ESXVZTENO4tOsMTu2_Y@@M3*nG`u zCqM9ZUOBGbQU+EA-`*UvFQK<b-?Ld6{IYN>SCUNWoLV9X(ZP{=kj>gVDyVoW5C&*J zwzD>RLh69GMIc{=PR5yJK2rg<s5I%5mXg-PW$lLZ_{JNa>}MzZclVLMPCS>;yRzG9 z$&Q3B+S^kv4c6T+e#Ksl1QikwBN_|9&Mx$-&!+OPjs)PaC&6#EUQuiKS4Y+KpJ*u4 z0gSFOBfBO|7lLRTuXXmHz7lS^2Vt)jz7~;r&XT_y-UL{l|G8@Bq&w#=R^0bdF!R6p zeoA$saS-OuX$>_KZaU(2@Pt*nT_8`fJwB;a`7V#QXhFY9DjethY1^ACVyf@X44gmb zc$)S{S`U1FO7Sw9HXEqfaCfMt%(>k<yO;cX6Qc_`e`TqlfR0&$IDS5_JG|kBLxwA1 zVnW$uZ<dNVyHxn%I>U+W4&}8coiJfZeLGTna1)g)jMWYtI^MLm?=m}~6>)vvYQCm4 z6&Y2e^_d@zNj~zXW*rWTju$yMt^X5SN-t6@)_C5p9a+#;ZRYNDyZy|M%%k-VhrEFx zdKVF12MLvRP>?qd#2w2FSe2uA|M*~Qg@@IKc1r^qKBzEL?kCdZpJWqA5xpomyMTzP zE!DG8_DsFQI$swWY!HK0>w`vRPvX;jZk8p!E@C->*FUN{K%$Vn_OeWuFf&HnI}_N? zuk$j7;ArrV!7=)NzLzS+(7nFG(tw~+O~a<ni}z}lA+z_-Rh!=leh3`eulgOye#mZ( z6>FR@yC^dnaf;bK$nbu<!PG~R;PTt7j_l8$H5K5_k$~|1gPi*Fc#Hj4oH9>}TTRm< zwfHvu@kW2^5WPSy&f2-ND8=i#+d*V6m+XY8E!M5?F(!CW{k|itIf|=PxT902KKqgL zTbtvHW!ixIi_;9R1_34~f6}?>iA=%BD{w@vKmIreMgM~R@Cjp;JJZt9VOZ-rpC1@? zMfcUo?JiG7t*J~Lxw3Jw*V||j7^$3`Tq^9UBckqKgFZ4t86^VC6l|XVG2OvD&Ggr@ z`~aP4ik?N<*x0!7eJU8kr8mdLCXZ1?1<wVwihs7A>&QO|#1hsu?;HiJezynH7g;6G zqBoB#I)|sAjOU9W;U(rbPTp36Qai3KPhu4N^6&sVU!5I89rhku&Ebg}__8Dy{4lNP z$|{UP1u<n~zJI`=rIsNsq~jl9ZDP2#eL(VjO#e__?9~tea;s^d`7l=MX`_ut;dpv_ zy8PgMW&cBZ*rLX5*uf)XMx4cRE>!6AkuODa7D=kP72rfteK%SdHfPtA?e(e1mG-&F zz36)EVyo-N3vRhYQhxrO=nONI*Qvq>>-J78-dnp*;p+QJ=hhr!L|idZYz;eJpO<vM zdhyr&snIM!vWphXYN$|zpv9Evxm>@MuMOR-o)lcEOy*XYQlX+;eFRLCW$T^ms>SZa zIBn5d|FVa}dkIH?Vv*YhpaY1<VZB2GfYJKhIU!|4?OqBMy=!VL+_mLr2-KlCd0z~} zd%8`z4ub1qADpex*?#SOv;(_4wY6{L560Y>uHC(79#XdYzOy>nb~PyJe)#$DJ)Oe1 z0lW2wk5Zd%FN26*uXI?}HU02M%ji>klYP1H^>4FSb?<Hy5N)>qQ<3)--CrXchMO?= z4ZhfV9Y&$p#Mr|fU3W*^zwus}n{*tNT1QS^zP!>B959-khiyVs96m=}(iDD`Yzpl7 zRy-bnKz_88q33THgG7Eb7nv<^yFjyZ%xJnypj3(Qm_nx*J3PP+4%wB(JmD9Kr*F=; zSLYc&rtS0Er~Hb)DBRT$rUCBoeCWlPiEE9C4pwOp6lu(#sOj7Hv|-Y23TzCXX<Hw0 z#Y}0x*2t#EEE<mHV=vq3owS;K%vd-$tA}kJrd~Sl2%dpm1Hy7+N?1FxWLzAeNgd|{ zl?wZQ#DUULg+?U{5j5fDs$kEFmqsVi`F|KD%N%msw67mS57};%2Y~=d!Y8+_oy>${ zW5-EfLC*QwO8UgPNAMpaV9`^I$<ZH`DF^hucVkRwT0aDw@ka0G>l^@hWVDS!A#*X= z{m1BXLRWsfhwQg{)->SEzcH@=mn9^7+Xp`}U6Kmz+OnYw;MGBZD(ZM00+)OvlAf84 zrqt|jXtiIsQTG}}YTiLT=85k?bFGM|T`clU&2*qfdMqcNRgK5-0OKk7Y($?Xv7MF< zNx<w@ov@>1P~YJ^btp+;5D8EAVf{uNO)#^zPK3!vx2UqShouEO(-l^y65b-~x0diB z4F~eoeMJ@CJ5pWB-7$Wl6)5Eod2XFY4y*_Itua)B@FSRpZ$q8`xG<4r;~}k{Q5(!X z^&Gw9N_*;=pE&km0W2>j%n%>^;m_Wrh-J{^@}Qqz5&l6mEZPM;@*;rHB`oc%OI4IA zC)K~o@i1+V?dmoo18Sf%WoBEt_jg!g%X`F{{!UIh%0;vEs9v*dq}>6gV!ji6)jh1m zv303!kue8Ldxp8Pk*e?>kCwve`)^HN+35Yf^K?__+S=)<sj7;94$F9Yy#M3r=jSIX z#~>#!V%07EjyPwBijEH%@cI4O)`f<c*&oP7UgBm?0HU@Zg;lf+!}TJ8vna(vI*(E$ z(8Z;-Swc%c#B^-wj{>j6{tnZ)3US1v5;A#ZuJGBIvt0VM0>_PC!r-QX;ZSq6pF_@C z$ozaF`#nUJ{S)F!#$4vt%5Zyv+MQ^ajwX>ZRLq_3Rn4Z*45tfgJAp&sY9-T@Ub~CX zK=vmvO3ku$gUh7(@N6K2ly#Q0rwEqScgdi9akmW!OZR{`$TX%Yj6292zs`vWqnLXN zON(lB^at9Z`*X|Yr9VujZI{nUYPjkpdBn{)zbAAj9XU+{xQ>$;)%<Ls>t9jo%UWmn z`S7X2URcv=-P_^TfvTu8R@jgX6en(D!}!L7(HgK_d)UP1bzB=G?4)eeXS)v~%$AF| zXYycKeBGHrVIJ#F0gU#JS-%Vd>f8)6rXQ_DwI9-Z^T%{~8~EIfTE4^%5($MDUD=`I zZZ1;`9PT#C*Z%`wO0ruO)z*$ov-NB^{YY@lofDK}IKM!vt#QhwXJIk7ltyyqaE24U zzUluncjb-1CC%kwq0YReXPjQq{C;wd$S)FWg%{RvqR>nR{A7C~dpHpa=9>kT_rifq z>Q+_petzUUH=a!lQFh5paHz4%n5<tT{KdFb=!i=fIyG9)W5-nEc?>ZX)z$pI^Nap9 zWnKiwzDy2xV`THiA)9UZu>1=sXCj!i+)p=6k7*A_1Gat&w7xc3J|$S@F(byB&K%g| zRdVsW3j+AL#ry4i7Szt2T#X`6n|O3BJ~O@%h&sp$0*%p3AB>EakRGv7S0JaXxWaq! zb&MWj6+6Q^eZ!f{?|Y)Gh0o8uqWD?Do%~sK-sQPHs42&P2k0<y_=dX)6wp9B&M1|A zD~MJ^kwAtrCzMQ-<(WCD_X#P97P3KUt#(E^p`3beHxT+$KDH-*5!HjiSF?$wh*s%e z?{iP>sa$xbmz_kBtbT77%O0Z2Gas(>wHraiiQ&8n%F_q#%Q^U+D;hr3;__wbyXK6R z@lh$?r-l+LZ-pms3DleMw}QLBMu*xYG!1iJ!~2$FE$YM%t#jDloCj)oHghLlb^`>9 zi~M4T>UPG7ym!A$k?>XJAAOg_<;bKRPi8BBf$8x7S3HRFTFx336%_>yZE(ZsH-E1j zL+~1uPK=FW#+c~Fo=vaWK2H`@yzKNiNnd8PSl?2Zy4<1P<N*FYeQuhLL~dU*2FYz# z<-Pzfuho%VSBc!fAn-F%dTzFhn9m1SR$$|j@li(bz!p0@UI0J85-=Up%7(q7pf@VX zuj+|E1q5#2kKZ0JXLOOXpF6&)wP}xiL`FD-l-1cfTObF*%W#0y7nMHriE~7B?G%M} zNm<iTI*&HU9gj-^p29z6QSo!9B)If`b%^nehFNs>Z2^5#6_;ip2SPW8?*evAl01GL zY>qBxa%a8#Iu3IEH=0jSF72SLh#(!?(W*2#FK|2`>r;9#`}nGoHG4wQ+}-G=i74lt z)Wv`aHwnl|R_$AmtHXABCZU(*9Fy>M999ap)K`$3ck`R0;L>wW?Yl)nyD`?Gk}OG{ z<Gx&f!@iHWFWaEs{u<H4HkjGxz+^W~rQz70r^G|K%vqSBDKZg_))hGGwwgi4fASI! z;LoSWWZ}dLUe|!wOg5KCJI;=P6$kF`L~IT~s3raQe6G=l?xLBGsLDRCOiD+C5JL>E zx^iATq085-+^&4n8%s1J8!9?Ejc#u24+vDG@;mKCE@Kw+fAE~55bK&c=Go?A!&Ur? z+X#E6LG5Qh^%UOzO7WhP5vQd8lhmr3+J56Sl&(7$E@wV)pZm*L&zE%HMW9aewbp~E zn2L%Dz5CZqbz8-km79e3Y3S)uhbTmx0nyxwmx=Ep%MS_o$ZgO{&@Y-=Q^Q$b`|`pV zJb8<JLFUl3jsSvFmvWGZCgmxdvW|hRJ^rlHSkTLFHLJ}@B4M^eApH5k%N8-9h4IqC z^8AZGvTPnkvvT3hR?QKGr^l>3p5YBTAQRtN|L(G#>-L~+)Cc_N_vF6uiw$>qfmVT3 z>t5E~?U6?dk^OjW`gN!MUu2bdW=q4Ic5?9CTVfpP&p$~@K;b4t0cr8NX7~0!$+5FI zSTxx<=-eUJ`H5vep&r4r%tfyi)l|bGB8HAV%!rVh?6=Mm<8yMRPgc^7mKzasnzzI5 zYLjCPpG>{IBV^CK!!PfgY)EoA>DjZ6Fx_iEa7QIc6L}Ta=lcl^pQRHg<CS^-><;vo z=}9?c=@>Le#&a6MsjFfq%64#3#F9;oI5^f3&1h_6P|P=V+Ed{5y@R*i>uCWI^P0Sn zI!7#Ni6M6j0{89~N6_&>Gk>u+YPp|^1C@Zgi@D7V{{s%@ASm?rG}+0?MV{RW^G|%7 zZD6*Hu-Cb<7fUubfeW!tRIK`qf90Ev!^zncpHQE(w@38CX>uswg6rrRSZLY!V*54` zm~*Pf?!1;pakw(=^OSVkL<a7C_-oHhe%K2xZaCGCyQ!3s1}uynqzJK&UnI+;YABp+ z85_$7D$j!}rWzRNF<-rXSG<>O>ZH{6>6sSEA(UD{>W^K0*yEv}@f?=UR|s<QiGBQ1 zlGvITWxpA5ljC@2#%s3aVM`&(E-9m-RlpnHev+nX;{+PFznm5YTOZY&h)B2Kk-)H9 z>V4Kb?HsK<6;$-1F$+Lh|2aM?I^y_sLQaarr%$3GCgho=HhNZIai%XJD)x`2J73G~ z>*QOV(_YwAU4{;NpRobnvO|jBryGF>nc}ynfyxKEQYg;f`5hk?hA=<<4PX4f=pIIx zyN)MySKCz2;udvDs5NI=ySce#O%aM`YUk${jEs-l9<l#58YpKng&zwL53iFM{QcFv zMy1P)AUj@adX1%euPF!K6lp}xJ!IainT7uCttifYPJ4nDir_-IS@p2B`rn$R4-MWL z|F>$t&D{-Cz=Jbf({?RZL2oe}7Ea@Q?plxJng3QqWy%iJ_D4hpcs}qZVGmT|h!{fk z!iHmGW7GGqr|^`M{BMrEPX%hd#9B!PiMe;}m!=BhXC2Dn3xE=^eW0Q$sFlF}i=qm$ za<e#`V}X_)7do2_JA)>h$wOaG3Wmo=;tJ?lSxg`A*8Vq*FI|L$ao|6o4;mSvPj9yS zG``D1#A$`HPbSDKZ6_YKWxUeXIAO#dOV;jDXLj#_iiSoaME$p^!nWjgAUotc2%Uec z^TOhu4V!U$!2Peszf!5K|K{3X2Kpw4R#xqA$uFk@&)l-<e@6r_(w<5Lh=t&O!6k~@ z2J^yIGLHRi=ohxy;7rvTLk{@~Up(^*we=lxKF5sQYn;Lz0oBo@zr{sEe#k1e9W_c9 z&?{%lA!vl*1~5<GBj+ZGo8@B^Y*;2Posa(oqX#HHnmu*uF*I=2Bn3?P;cO1P=Th{C zAiPmSj0$-!Dzlpz&ZGFNANjrS%8sC`(L{l&3ojD~(Sr)<gXEQXvR`zom&nkVd5x(- zZVf=@$k4ZDsaS0ZV6}xrM9nD1rd5pj<dEcxCUu_rmk9@;DM-OIz^n+|2(xiraf&nq zF3owL%{_<2WpA-3-mDm9V+_go;%>b%W)sGDf7^5uplpk7_hX=xA3mu2B@PzLDN`f6 zKO><}zkwk|{M>l$>$Q4xWOvdD^;>q}Q={;uUYMjv0z*?3R8+75Ydpa>H#b|emY+UR z8cjTWXVGh}F@q>EkLPQQCpTEHgw#)wOR1~l!9lxW@VHYHM$jia2}(7EzZQ@%Tp4TG zH*hb+w0m_0UK1~S&396KdTz`V#agz^53z_OxWQ7XAlfm5sCl!zq<5bekeut1=ZH1t zR{Nq5R<+am&lRQc$W9U7k{@msHaM}K;1BP!P{saKqwtpnJ{yxJ51~|hky#j&{YsWj z3+Q^Tw-)cbgC%vvEIs2ao&PS)=3M#VDS!#1xjOI%?Xna$+Pf;a_pf;oY!%l9S;t}Q z%vUAPzZm8NvvB;T*kh4lEnjkO)o+7r_Q|QKp{-JI==)STxd^7g*%{3${ZU1}wZ14e zi}S;!#%%~hO<jFp$^9@@;1JEB?Uo>!#bD~Pd2RP1jq6|~XXyP%bJdg`SI*>`&)9=e zBneMU`gWC3@9dh34GZE-kr)@`X`gvS(C`-z>v-1aCbHwk=;CcOnOv4S;MvddiGJ(n zXl;}V$>5Q0W7v+KJPAGHKOBvCE>>Qv#%@2t%<*Gs9qGr@)CD3F6Q6dG7@(1d^OhJ! zRrkzp$RT>M@RspV^{>Qq75<vQuC^l82-E68_j=CO%iv08U0sDUQHrq=6;Z{PYh*Hk z>pq%ZtA_{epdl0eOBiE~MX$E8xKZ#mG-Z~oOHORZJd{=;(DYf}7<gzneVq^M#OvTc z7^yWs?hUdQ0Dt>J^@EzF4ohhiorOs($ZO}3zp28$=4RC&ib!kVi4E<%_dBMWSDDG~ zkVr^8J3CwUoli98F|Y(I`w4Mya17Hpx9zn<Js-m97?_!jw|~Yd01sqW{cHstyLqy# zl|@ERvHKYq7&b~vN;oX9GreIYiGsU|rScK-H|vkFsXmYug{}(+QO{>8xd{1~QWmh+ zHzUY%&sb#_W2|jK5F*KZ4U0U5hF8s^4INXL&QP)sAliH<s>1PRy1;dD9p0Xx1~Tkb zvHCD<fY9q=ao!&#WjAGa^f|^*5eC(^?(YvE(;MM`+dylpvF5B!=<2@H6xTan-7#@V z5o;9R<P$|Ae1G`6`Iz3gKccZ>jqJg3_RW9B?AJ`goKL$GB^m*1g^`flYZhlK(+#xf z%{;73VL<6*(;_hwmU@&p&=_Vqnc?5udXJy*D7mHHdk@ZR${VrdILWg2xs_m8s`~_- z8ACGv#)(kfh-|+&@z|B<47Dp5vCKQp4Td){CbXKR<t-Y<FLmoId~LvH|Ec-eR<>DQ zZ)Ph(eU`2`R~&B%)zq-(JU7;))VvbWokV_*Ds&q*W|@%uwf9NFB5Nlp3ChNV#rJVh zqZ#|F5nC#9Psi(vz*Ubg@x?&ciO2^N?~dfbN;y?koR>wSs28{7_V%{pZmb+mpMM{L zwPPIt2M32ShK`!r=~tnw+x{%g3+IP7><t!uen7+A-f=nR(Q^LR`#oEVve@$nt6H)# zUS2NXlAcfNDnNaww-{DosrLzYRxos4TNB@L&nCP5RB830>&%ZKoQmxDu^dg${JdYr zRi_S7m>cl#Tz~=-vDnZuD1TXGYnzLCFb*M!gnp3M1joF_EfKh6kPO!KkCn-a`Eb6H z4(N}$c<*{+{}^KC__?%B|D(vFUx)N7H8F1Oi=ZL9Dt0qG{s7e;I4ac*yMl$=@ZCHu ze3}y?bh6Cu6h=gcXB(`HCVD%6Q90WNmwa?WLCHJ`_4P)V{Dz@xNWFFBW>ags%BM`b za`e-bC4FZ-u@gTVBDHMtp%vxW^{J8&XYlX5<+Ft^Rc(jd;_;b#NNLm9Eh)NMt5w&h zuu#&x+9peMopYWEZQq*rzu~3s*X#M#LGuXJ1*C7G=pB9+Z&IJ%;F0CdMs>d{N3`ep zmKPWT$NqI@J-68a8oLsn%+3N3#wn?{oa}{M{3@B2jUpAO8*?@Ey3)|BHZ<6&HB-rX z%<;e5r+X51U>+SErKY2EU2UnYc-k+?9rWn?;&)v&mCH>VeHlhPHUJ%_*m>gV<4=?; zoNu|{FL%9kJ~&+`5|XASUHi+jl54DYF}sr)zdF3Q2-qH~4DDZ=brp=;*SV!c@+jL* za0j!#K1LM&Ms_pb)H?-Am5rEa=E<qxbP_PQIlfcAdY~-$kroLn@O^D;ZC8@<6Au}t zEVmJ=CwSV=Le~2H9nUmfpf=0FuJTtGLe~vz1{6Rr*Zz#!^%2$Ox$8sSHC}v@&PYsU zD_+V?SU3g^XCDS{;>lH>cwlSJVICAuE~(nDqRg-QlP&&&W|Qb>t~YygMYaAHQCNvR z9g*uB^piKYi$4qyvcUOl9hkE~gtA!$5F;2h{tYA+a@<_(`ZRENETD%kb6lccEo_pW zkpUE^Q5a96QyRxDhOGkpznJOQ+R(sJg<w^m-~4Mo$Z+h!kTcqG6Um<6j91;<+G1QC z9voKDSB>pNOv-r_6YfuZ-HNw>P2IFVy)Yg!%W%1V)=06^dqojY|5KnprzN1*StA82 zeA;C45R`TcHpIm9oH-#%ZxjetfnXI$C>ZOkk)f^abPAA+OoYz-Oh#|LWDMbcj-EEW zkLj2)yRm(igtNP@@v9HrBWDR`zVCGLOq+D{@qkElZ~$0zy1p)5hi~`f#Rl%1ZzLe@ zT~G%(9!(iFb@UA~+~1ybwR`%V>2i7yZaBF?`u3}xbi8-QO~HDpVpkm5&v$g!yOKY= zXQh@;_oOakLYAwad!-1E%_jIjt;}R@zepWOuK8)^JNrSnIEy!{Yc~+r?m9Y(J~cs( zqXS^;<B^5-i9*-oaHVjw8!`|RZ)0B3iq8eXEWPUM?vaMw#MvyhH8r7_NU&HD(lztr z^-%i_j4fj^LkERY@iUY&VEm*zOf5s*SI9Qv-YHoq0ZQ)s&6>;q1J$&Y+{ouA4yY!Q zAmVUWHw3<T@-Dn$6Ga#BZdxPOaHv%A=LJ8bsnGV56g`&CID`ZE2NM(TyO3~rf^;mc z^(~1{6Xfd?)X^aPcfcdZd<Rz+&56o`y*>^wMWYG?IjX(1!K9BgKr`GOeQoTGvkx5f z%EZCYh17WUHZ!l*r97Ato-v5L^Yp+<4}Eogxx&6BpL{e%)x8jD9yD9%uG}VVQRgi| zyC_9K$zlJF-G-hlA;yo?cZys-r<eyu=Ghbz)vBz|vlFhv>~o^VDP%BG=(nLUM4qyc z1RBnkJgmbHwCBn>zUbZnN4E=nL6P<(dQ)p4VCI9RdaCZla?dT|5@j;QOh7sdSPv5B zWi{-9bz8)30kFZ;S@2Z%zj)8r7tWifcB2~?w-eI`B%5~<u@UzY_db&F!2XeAFmRUJ zSe%>t?co6d^#bwPf?~wvc*$KM)rq{R=@uGF!38*(mz0viC3`3PRsGcqV<9OmMgC{D zy*JfXdmC+|+>5xAWXd01`da1Y(HMcK#*0swQv;Wvnjc8rai)CZkZkeA1||ID!5dn6 zcV0%yu5Z<j*YAeAGVpbZrcxFappnT{E6*&UC&T{mhXwD%!;Aroma?ObIn-}5kn3WA zw-?)z{n+t>T^~s^AXsR0RFN%HR#lZB=mEL7nM6CaT;j(G<Qvo|?Xi^7@%vbyh@AUH zb5XQpOfrLZ4EoyK*vpq+PkDfK<$EV=ICoHma7cNakuWilMjQqWh{9lZMwl>qz1>Tr zmG5B}QbG1n{g1uD%sM5qMrVBS&Kot9BWv%KE56^lbTl-<rLm%_ISx$Ae#2imIXPqQ z9$v6DxzC<Sw&z1_?xm5aD^H`lP0}!1I(K*^ts<(N5i%LLdNh>68}Hj;b$98QS@W9n zI7cJNQlS_G-66*Mc?brb-gr!jPxbNT8zbDZ<GMkb5?g%J6nH8T?--f_wtxroS$rI8 z)fX1VOlnV~u=Ja>RZeueGAOX_gvl2xPg7gZ8l^4p;!SrUWGW)ei{CybnYtXU4ix8m zwz)-B)hT4WW^UaiF0T5#v#gi1o!COk>wio8EO6;uqwm&z$wM3KR$#~XOV+rRQ|I<i z?2HTQbNX!h3=URYX;O74FPgU3eWP$qA(z(jg>aVsq1WMRiRWIM`l_ERoC+0m9cmf7 z72Mr9ol8@&;0oG$Ah-o&x4p+^wpz0NFs~R*N7?ah0+zEr8m?xYa*Joy2dm#5ZsZ5A zOq<P9Z-RLOOG*^B(t_gjeYe!BB9_J=SYm@{S{_BvW!Eskk>%v92EUNP#zuR3o{QGS zBJT7>&qpknV_Q@|VN?~%$&dc2NB8rc<!f1H3CFG+J#g#j%6`5%iWS1JgTGi>986?v z#v+Z`^GM)?T(9T1qeGz@*>Id4h1YYGZ)B>7zgS$qG&}QP^r}|WyRG-EBJhwU^d@bC zeTQ$AbqlRVxLoYmW^1!lhXdrKYGbkx&YxLtLL$S6X2$xb*u>1Plc|-+xI+?Wm^FPK z$?7czoJPG$i7ei<1E3OgIlX)2Dqm`ngD<))KWXdTVelu=P9gZ+dQcioTZ><GdsKd2 zofnK*=vgh~xi(Oo_!GV3)W+<AGi7`!tMa8I5I-`R6KKKgPclzXa-JY?&n3FDUikQp z>m8}%=3+yTfIJ}X5c=r?k;iC!Y}#mt&D^TLzp6FoV({*58#;OKe%@=lhch9I?nBFo zqLKtvzihUUs*=kOtQD!z^2w)vkl(uOykD}IUvB<KZq~5GNq~N~*U9TT*lU+ptSOOU zBTh>V)`~e@owbjC{|bGu<o&3{s^R<>*J`$Kw_2|cn8KsWA7gbHQE)LLeOa5Tf4_xS z*@*beXQg#}B)zwYgcKFzT*4$Q>Iuply?uB7$QrM2$UWtK^}JP#fZiRfiK=JqKoKvg z+JY84J+y=JYU9clr$1|1lsbGA#04KbC+fFM+L2aVMwF<xv1VT&&+@RK;F*insqCO6 z8y;&3)tiXXxp$@$oOuZid(-TR7pB$oHi6%%kg^^{maa{Pa$Z@W&jmnxwNTG|+4Y_G zCR*va(2JI@bln>aldH=gM1Oz#@cskw?gOC`IZElIF_@KzAHkv<>oFAmsVB6&xas@$ zBTRJtCEO$Oom>2rW3O9XSURo)Lmp!P-tzW}gFjgjP_Fi5{}zn88#91mraZT5Ca6hu z{Juj`xeXAGG;3v8lkMO6jMgpC_N(>C^Rpd}V*EHc9)>2*&QqNWV4T&>ngqkG&=ve8 zyTw=3sG4*N-}!YS5q87gavZ_g$NKa4f}FchGN$0hi{{G2q02&FbbMPPQe6wesf}aD z$4uedHx9&vH`o2&c)>U4i#th6;W0LfhrE>d9CvUHkt3pyd;W69ceyI6at?-z&Eonh zl6$W^9`jP*t5=5y0w_NMmR2rVwuYw6pV|?Lb`*^VsOC>^M=V<{&vE2LZ3kPbr}Nww z1^2O!k+~Wwo>{Y8ZVpx~wXe!86kKwlKON|t<>sl~VlnZ2AMn{Mu*~{uL_bo@R^LQ~ z<7(E-I%8TU4-$h~DG={y;eGek6rF#aKC}A{1q-{Znl#ttHnlM2+}{bkc56Q*J8927 z0#o_Ip&f13nKgG#Z94~~b^97!*Y01Yc-ii12)n7Q45_R_^I*!y%)Mqovy_ea48J~_ z>gcoRCamj@&9R8Kl?XT=t&Dcfdd}*F<f4{W;ob<R{~Ym*kI%%1=>qxc9taf=7ECe| z4_?K~^0NeLSyWh-C&_{9ysK_B8yv7>cyZ3ER>p*rq+ytqP6*-IiguY<vc<oW+{!Vx zPJhof>$ty6)S@w(o5t{Z+4mk+N~S7E)hw%H9`!8t@_cn}2H1+qoniHDp(%rxOuMr^ z{e^PnG41+A5U5i&3$uZi<XDgEJKd%dTbl@}6Eu09rYH5GOOyeEl_zy?fWY=mq}b_2 z^`mTLb*tllf=bGm(1jN5C$GoGmt-0FqopL-Zod+CkE0yS>~$xnt?2pu#$AxI<>@3J zn)MuWaJP}Wz($-5A5fJ^13FM@PI7Z?8}{4tF<{5^(a(whBRHT_RQWjnb4);^(8tj4 zNtRn$w7m<<p!PN7CTS8>1qwv9{$ILV9^@0aty!p*Jcw#kr>&3lSoGk&1hS5fNEh7C zAw%>JK)bt@<rr5wcf|E$Lan-k;NzCfiCkI*_){;A&35dSa}jj$5uWM+R&9BO$k<Px zvbVe|9(D$}pW*u1M>VwaeUWFz*6C@fD2z5#YOV=CAHITQ!nea-iGC4d4Tyu_Y9lVH zco~6^&ab|E!A<C~KM%;Iuln8FN4E(>`>{l{4+TO`EQu*7rn3^DD7w#Y-n=<ls11yY zLKk$~`?A$4ARy3j+822#)JS28PE6E5q(psoR{L`kM^5-#`_u7l0_d}R`XF2P&ief! zTu75|n)1^XTT>?Yw@*}evmAFLg`GQNrjN92*ao_|CFQKHcG}9)N@!Cj{@ZS6ZMtsr z?;TPJZ<4?0kKzm8s}OWcks3coBc{5JcwuKsdSJeVAIKU$=9@C!EQowbo$<esFYggp zI;}CA;wJZXrzC-GuRBW{x91w2#XT}I#Ro|eW=Gj!(ue)|k@_}N5&o9u%OApTKK9C+ zg)J#MPZzBG%+?1>Ep68=SONew!*RxHqruu<<a(Va3%XzJx7|7q{hBR5W4731JNz~4 z9o(!%6DU@_GqT9qKqUZV-9i4DjmrHW9YHj<*X#1OpR6qiUSm&MVWVlf{c$fd+x}Xs zoTPfWI4<n<xwU^jv5)b|=+mM@AC<xpGnVLUC5$R3LQJqkDHi(+cy&J(BI?_ua!&N7 zKM#mY7=>3x-{0TR$ksDh{xV2}Rj&8T<1o<vaKxfe@@^qD4NWBGXgWrYmZr~QYgNC( z!M#29AJivz;^_!VRriUFq4z#d*R2I*u$0sbzwi(-s+qjDn+037ysg83;q&@;Ql2SJ ze*DnY#bE8P;V|o2dZQ$>=u-O%r#Kmt8FYW>p;)pTG4u8dO>RDZ$ZiXDH>SC5v<b2$ z+k6>4*AI3@V$w--zU(NFd7V`+L09S>7gE^=9pcLYhF8}H!iBQY(tm(wJ4i07GB?LR z9zDlXAX3P6M@Bxc`eh_k;3qQP&=|6h4Y}M{?iP;Wu6{S)%cb-Ybw!du!oc(fU)|Zd zN<iP~8imp+1d{1hlZ!0Ynjsraq-)sDUT(#TZOk{?hDXNU_tPpSd2G(E%9(fBWZxf* zmFHtngeaM>vjArOZeczmj=XG&I+APURc5BcHF6Na>k2cVAGdWV>!hBPPNgroxoG2| znBjU78e%nus@0A^wyQFlbT^Ejuu-^B#FDx;?i&)gHOB~IFVmiRbnk#E1{9iIc|9~o z*s?QL9d-w?7xtF6Ro_#{76nQ-`nHQ>W*k(l@Spu=r{@dO^lxcuA(6A+;(vHzh~MWs z`>^zUjrMZLy^+A@SNyo(9A$$qWdrjh@NLXS&kAyM<u#eS15F^6m2!0`UOB((vYMSH z8D)q=9#1?TGMFSpPyk7m2U?4V_6Gz8%F9q3^G~6c0@tpJ$#NOliu6|eNz1yQD2FdA zG#U;?B3y0u{=vwHZB3Hl^u45N^+vLFkDZ${-CVRn-VzhsP*uzyn*7Tl09MoZ{_S`m zlet-4b4HYMi;z^&c%inD8>xD?MvKpc!R2;+ieBEfS8O#tNft-!!PgRQgi?hY$n}2m z7YHp|28k!Ig2d>$ET8tuunWQA%`4kX^OSzefbl%-hE5a^q(@bhU19mGH-kB^vZwL4 z)sy$dC^cWS>HRM0s?WBJaGIa~C}sstv<Xst`4Vnwmad}`p+_&$xkn~e4E@m&#Y|Hy zqR`YJyIBq916-G?3m`jmBVu?gGm`77ntts`S}%M4<QMW*rNm2sF@7OP`j!wGAcDxZ zjDf9k3OU?>S_bUr+Eq?bE!m*FknYn#7sGs?!B<aZAH6oYX=#g9<LhdVSK6CD;TFSL zVv<CF_P_3oX-s5`v@c!ERq74r4@Nq->MIZ#b(6e{a-WDr2JiG>Zw?#jyQuGIaGV2b zndpKRt`*_Fc+fL+hB$4IJ+Du*V4Z>{6iKr!7w<1HBR<UT;i>tiH5>5FZt|U7Josu{ zmpg4?2J}5V=$b{@EM=XnAc`5Z)0sBNmzd9zU)x0%x@Yj>i`nZ^<LG%n&n?9U(2TMt zu5uL3Ki(h<bF$P_0e%f(Y#$2+yE>4H!=~&%L+6qP@^vNnZKSVlc<lfQ%U!1STM>s4 zYa`$?skg&2rk|eA_SIR_p|q}>bdlLqR=G|sNO7#RGM3?_?4-1Ag}Mnk85TLj#oziv zQOsc&S<>xD0nHz&yvfc)J|rP=O3|ib%RRk?jKITsM>(EsK8Rim{ua10FgUF7FhCoE z>k&1*{wt;**T{8kN#$i<Pnu66%leq8^3g)tx)Gudcq}J2D{9(Ge|tD(4oeQSFaK`v zm4H9o!O)$C3rHvAnl(@~@O$B(_&K`QEtPs;FyRN0vXwUdJH6(FT6dv5le~e!!ML{+ zMvx$eSG06<S`Faw+`IsRXxpx!ZvB!p&&u70Zi<J+b40tGaxaH;=_GNe$q!=4px*SO z0=$v~NdRYNE_aBgu&^T=FtVeC6txIJj5XBMC@wY>a{Ri89S-E=>;f*(8*1TQLS&TO zn5^CN*8?J<+Xt>$UJQmFjy#;hZR|Ttd<o{7LZMb*A<GP6FxL~dA<62*$>O1CpeRBg zF%0MgkdHy%P*c^Xm_ct*k6{ImQVSjoV^*1IKQ%Kh$6oJnDZ;*fl+`h`TrH_FM*4#8 zhsN2g^5;B7rr}EHZKC>PIPX@2u*uTQIMVRYkjuV#%6Z=f+vyw_`onkqg(<_JqNEJy z>l1HsoHibfr(xD_Kmj+kK17U%M_2j=LWoOyhI;7)K?&mJnwZI~xA9QD%MVTT6o0A+ zk0;B<LGkcAbihA^6OOY9g*Av38A6eYCnx%|;NV(E3^YD|t2suT2+jr7uh=*g5uoN6 zWuyP1#af(dChsPtBt7iZysTII$JDpqv%Y)A(Gmu-G`F!@+RcAHY6LUT-;*7k7S2|( zOx#~eS-6vZvRf716N*T%Nlnt83M1+*G+}eTXz+JRIW(PeAPHu(WP0sPMda*)m+TK8 zyVm(V@&0N2hBkbA)tiyf;PNe-QtFfji`pB-?C}!iDJpX(E(M6@xy1XrYlrgU4!d+1 z`m?n_)a4E7t{9B@@FB1j=!Oy^mYw*OEwcM2O2g7XGS-4;xH59r2^{8M3w$W=@ajil zCA!7oQ+^ZzVDrzfCMfTXP`X8u4iwh1xvVt!v-6yzD#cEJeR7?yD|bUriLJV~>nS_Q zaW+O9_eiH63f(xhtSw*oK+Vg1%B0g+U|T}t(`5X{q>V;Guax*O$aBkj>346nZAu+& zDOp@Lg1VfHu5@#O@*StBfnXpTY3E)dQ3&Hy(MXy!gcm~?Q%g14H=`@4%#62;)zNU? z$k*g}FS#j7C(^RM=TBr)-r(1V^k6B~XlD|Qs56ukkIVgrs91vObz3c?B`N$Gzh9i! zAw^upu8aQaNmABx9!)1<-)EWq3>q>YHw@m*uj*WM68;A!<j2`9)&&<1P`?~9b^AQ` z<0PtH3SHsFXHeJLA2ylUa1rUiRZsVSYoeUU*fxfQ@@lFf9-}cc|Lh33^3n+Fi&FEP zv(BH^d}w9!l#g^Gs?r5lPZs%ZYS$dWh49WKhjuXYQ5mj{O$Npjr4t8Kn)Eh_lizz# zc<B&WVadI_IX(5K<0<b9EXZ9p2EMN|L&2@y3*P_YDaV2oBUkWz+9OE;;vNzCGDd>+ zJd(|Zwf-4h2~+y8ZlILvlu$vVtFWNpVd>zb&LWU&V4xeK28S*q!6KwxKdTn9NxFhz zQ6XB$O-`$igv|W|B}Mp)W;Ti=%lGLNrvc8Cf_4?}u^FWBvwsAkbaUCop@PEBcRhhv zXWO{3$mO?!UhBP~F<{YhL?xl<w<Q@`hQR2>dJ8V#TpX8De_vnAO?;%l@o%-jnXOty zSKIXEpcP<UnFxVh2)<PHn}VC2omQWRO;r@@-kIk^+0fK~%{RoWM6Q&boK9JbY*~HK zN!0VOfE!1zRzp_NMe>g{gNU`TT%GX%g^n7snyP%|;S&tIshB*2&=%tHM0{BYvXQCo zfO>JK2i^ScjZ?_*Z2t4xS<{|V8us%O5}nIfi059&v<k;c>*-mXOcJ+-CUuGE-3OSW zZxqBRr|-y)LS@5VV5bfAuUYo)*)Kh5k??GxDBSqdwhrG}3OwX|mF42*LPpEwx%1v@ zuaV*5Sc8JUFWfO>==N%){;)>GN8ng9dlV2i>w)r|>db|h_0if^dc}>P{=_>;tDC65 zn=QJG<0O5E-;zR-?sCUbBxI&jgSwN#GyI+$_=AwVGy6GNa;9TmV7cxF=}xdbJ=duI zWkyZcM@EZPSek?rMtw2OxHKM_Auvbun7RASy=kZyC{~GPKaqY&PqKt17(8jjY}RXe z*pu~nzFugSaaQr*lq1T+cYHGm?WSR*4?UdfDv`jg_(T@e7A3LxvXj*HmxZ?;oVUH; zL^A37UsUv&k7Qz#IsL>!i9y;j#&6b$H$9FF-3Ewa?ZAo`d1n0Jhh#^>DU(KXoRr_; zDv+y!;5SY9a-iaHyD9yFs8|+es>FfBm!wS(97VFmW#B&|O5#s1C-&{IueCsBf)EpS ztC^1tbIkfJMBpYBIThWPbYd$EV2Q@3*Cx~4(Fvcaaz?cVoV(YIVKT({SknAN*r><z z3xm8*#}Rub5gAol)I^J(?vF2M<S|{wY0mm=;`SHXw%LvFwq;xDxd$yk5K%8HjT{#Y z*AIQI7Qhu>ujJvZ8)=rUq@ITRkVc@0M6>RZ;VJjHuteLbhVZjzLbX3{WKm1}a}Z)Q zrb0S;-?>Mb>WPLHb8GonGM>ohBc)!>fpn&@mdoK|&=e7_r`lJE7Wg#7kFO0~M<4|w zA^EB(e6dyqc|M)S<Z#c^tG>gd8uRxQ{#jg|_R7%3AZoWy-fWB?=n3#%;kWNyEme6} z&NF%1htcy6<m7)tWkj7VLKc4|4yC3P$v6gq8M?(RJnGuhR<c&?>fYS@iINMCoJ>vJ zW<v!aLKpndTc2*g8gRNLv{?GXs!$bf*R_V1bb(6Ob0;(gB0qn`Wb{b9|B~9M*-o3l z;Lv(YFxS<V9G$^yl1?jsy%>s!#s8xqRs^-%(Ff@r-0&%S*V47Orjtms-#%f7&yCh? zHJ5ZZ`G=3N^YYfaTg|D?Q>$V@iDw5+dg<(4!chNA$eKHqmXFPWB%kHPkjn$9;d*k8 zu+ohP#Chz}0NkZ}d<-$U4(>h&1JebzKy)0AVb@w<8K#;5WY*Rs`(eYL)@o2&!H54- z&X+EZ>Ze_IlDdoBH^iqzAO;F)nr#&AmG&h5x8oQcb>0|+eh*a4D*)?bwu83RDiH_! zOOv?sIad&uVe;DE>;-d+p1xJU0%u_VDuN~X5j#`rdjq%}K#7*es~-3FX5fy)CHD#g zGh;#=BHDF3tk)R&?DDZ!H;38_2j}w_ySUe$a<MCKphj+Fa7wc@Eepzr8)|1V!V8++ z+7m3n#laPm<<BSY@8#gRG;P2Xno#}sTKfJYL^;-QtX*EQ(BIcu)jH$(bHru6Wnm9z zkkn^)o&C_R^@bsTaQ7WjT634bWx8lZXZ~!%^zTx&+uLbY3TO&h67*>e;Bn7uR=d|i zk(rlT6?s97rU*#hI^4cZN%+m8ulvTX>{02Oyg<+|L@K{BG@q`&EmX74edt%FP+%>A zMQnNJi7+>_ppj1uZ$a8_YKrNd2DyJt)_Mn3nt<dzU_qw;19(o>@?NcCa!{LHBA_(v z|CA2itINyN0IbYu%1~0_br`5vc}q;xmoirDi8^a#rNCPeM7BnfA=MESVZ92-?U%jC zr?#Vz>hIYS|J|T7lUej*Qq8I3W{87_Qz0ys{ONl2)@Q$p_r!DNl}`(v90S8TF>T1k z@EL)?@lQB0es@8WwY~XoWDyz2Toyl8zO08^&Z*eL4|J{F9&~z|N?VitK1(H=$L(=K zZ7C4W4uP){-~e4*%XY)mBy;gHrSFR7sUCn@$i;9k6JVtSk_mvu&y&Mu)IE?(^h+w& z8)6r45f0l9((aRsP5kMAvA;;ghQZ^m&1*gVvRIQW$gX!f@?ppD0SrgJkUU$wJ%i^D z&xRoRd}Ff^;#3Zp<f_NP5#>B4Sx0PBb>#3#OMr|T$1eFJ61TW4!M}3>VwNNj>|T=X z{;R~Dc`Q2*qu;}NO%B5J35lK$(1yR+^%~37q?Br}FBGYRPUDr3*+trESzQcLYS#Lv zm2w6V@8{3%HAIBlhG_n%!M$JF+p3vEq2O<b+ky-+PIC+~JhLOLFR_w$2LNIy%);&y ztKc1`1{)2cdic%RSSSLgi~_SLRxT9$_git9A6Jz(M9!(j*Pe%Rd6dfeFFw{8b)nd9 zbhVc_w~w?aPcyZLo2(l%^5g$oXKZXQ7AFIR`A_&LbtP}AI?$$<QrL5R@W_FAm*ewn z{Q@`aN5S$VWL^gYyiS?)+$)i-Apy2gMrm#TcAJ;00$hrVaT{O78O`|;w`lq8SP;8D zA;@`b=dRrZNL(%@`R}sL^EI{wdfY~|K+le!rj4oy^Twpb45>dvR-1oCiccH)-$F-h zzilO-0F~eOJIljv0BX*OVd(br6-P|%F93M`yIOi3Af?LH#s)*<A3ecH9l2krirjBY zbU0Gh=aT#?6kJ?QiG&$~)`G+;y-&jF;5D<B^r`H>|0OI;eZD&4x03<8zD9DyQ2<_g z7i|)wGV;V=)tT16m6nwJy1DPyIYKULn;!9xrePz6#WU*vsr7P4%M)Du?-lI7uAHS_ zFUx??FZ;LuQS;?4jXeaoI^4Kj^G|VM3cBgp|M=JcyF3Q&e~cYAcATtY-ha>F|B|L) zgR1x+i@yl@s;Xwi_?K1*>EddC>+>7$|3laQe^NzwP4M(;EqzaVAx7etd#wQ>mNAj^ zjw6|7oTH<ynH2A2c-+DOj|*0^yIt36Q&PLCtWx+8(q&H6WQce+1)vF$eT~9%vUy`s zKRE~Be%dUF6>GtDM2LdJA<{2u=_NSm2oy|vNmSXps^d)9JfFgB(viYM4<7y<1F6&T z`@J}IAfDad7pEfDJzO^;fJy0k5Br4F%mm?o_~}YgjwXOvm6zpzw7;3YO8%jEl(gG_ zU^rGr?8x3@m|w*3v8{Z`+g+KknHHCn7<Gfo=3aDm@K~>vCT{)Pmmhm5^CSuntw{jV zs+0XqtWJaFG`SzH2FXa@+dIi{%^S>Q{F`Zjw~ESyd^Fx(0y&TojwnZ5bIWVJf4kXN z$2uAHbU$k_0jAEyhtLYIIG|c7yubVs@Bc&He+D%bc44D1h=Oz#q!$IG_Y!(g5J8Hd z2+~{V5PBy8ktWhaq&E=>(tGbUKp=DigkD9Y_kOl#=6R0K`~CjT%=wW?CYjlL?RBqp zUDsOo+B@R8OEa-*k*I1AHBn(7Lg^^Y#KWU>o@cNEcpY>^L!~dT1~zrxU0<8?8ysx1 zLnFdQxyqwu^N&e%+!xp0rlo4Rq`j7L;)M(8FIUAhU}ZPh0$v`vLL2>R97?9kCXJxK z%6Y-Hwz2{0hvhQqOKZ>5bV+g1nZ6CD_TLj5P?$gG=CQy*m{3;TGYO!ELppNHH>`5C z{T@dCnAzTNdy}QfcP49pUrAyDdvV23ZEO{L<~n)Ptl`8|;ATB*^L4&q0&oOlz7>1B zLGQy3Z@<ThtMM?$#HMTSn9=db9Fu}5xrY2Axvk#|Dc<4&>-N$bINNGZY9$|X*kVAg z8i#crKJN$;-K*TJh1-nsC=DXI2yKziX}2ba*8|^vxv|5x5A;fq|Im^V`7}t_U{Gam zRd~VopX4a7*?Z-VCtTeD&tnrBW!sRLNsDxIb--wUH6AOAUq6s!(yg^n8*Jf7Ux?5` zX#4vMWkM9n1QD2e@GvSTee2R~Tb>I41zBFGxnOl_k~EgOilziUGm9>^|1rG0>d`jj zIAvS~DQlSCg@Kj2J(3oWTrV!WEErS2N$#I;H49tfJM~#gJdyIp6f8zJtDH+SLNB@I zf~X~gDcgu;Vh6vt<(p7ngvc9$;GhBH9sZ)eIW3}Q;^>YrP|5l)=da8INlmIXRbhWz zyPTH?y=#sz6>B4AdJLkWn;sgQHCZw`*XGEZSE;>N^P}wZFKGKVU1W6g=Zi=i+4)p( zTx7-iu_53Ruc+kzxP*lQ+O9C#@P^Q}wy~i&R{9O$Hj3>f7Ic4b2sd@Je&+M9)$O+* z8aK-|9`%ILr`qnFzaMc=8C-KS6!pMw+1XkPRQn`Qsb&eyYE?)UHSSnI8HnRK4_DGU zRPpj}PxhI$2{PMf2(NgqpTitDsr0mZM)foJkI=4FBMc=mQ4_8CsiYw??~dHd5TA3q zHkV0<X>z-M<9c%^E>6$Axw9A}g$++(0#8nMj+lM~0@_iPebVNkU?ARy$H13rO-O^O z8++e|I*#-oXh7U_TglK&UbT-pqL!G$jWc>If0aQIzOcro=D=l^*Eo)9hdNutEw<6M zS8dnHzgCOielf<Hf5IS#7w=k+i|wj`rB}dK4q?C%y+sq-T#U$wLeHK;v@Gd)M7XY* zVh;8YRv>-F;;pSU(qSodu@f5<d)Zu*sy#)5i$_MP<ZS|{xaNLl5~jWKCED}Vrx$y) z_yOT3Z=4yUW1dTvG=~@XHRxr$d~NOP?FGj}e$Cy4v1eK;N~w=jOSZrYZ_;1w)mR8X z6(f9O!km4G&|29-WMm<=KeE%sJI#4_@0<d`e`HL4BjSN?PvmpWv}5V<SgG4ZZ{g(N zI@C%ZFVHMTu?jRc?ZoWhuoUZ%axuy!kLcYP_I*`SFrO75Rm5_mc6=*`i>76wIt0Rc zA6;lqvnQjQ@oN7qKaw&gF&ni$ZpzA7@D*}!P)wGAT1{F%akH>-*V1WDLha{zlh^XM zq=}V`L>EG|Xuh-LcW}GD<9;~_aaH!oe~Iy^6PiNJ=CQe8%~CL^<TBsrk_UIGjlxu= zu^ZJ6a}Np%&S~DiH*+>>43mx{YzGW0qj8EB8=DcQu5q%=N1}X4)eWb|(Z6BQ^ZhAd zgQ7lcaccs5Ow&ayZZLmzk&}7LP_&s5+NHL#AU$|__bq=%VvVC!^&m3W0C8*An|;6| z+_;)5LT%62$Il24N#??f3wlU=nUx!nxG(u3w71;!BRNR)-8GY_nvT^QLo8MS?I9sU zv-qK#9kvRmv;Bjw8?WvLZ%pLV3B(^o-OmzS7YFSOQE^5cX{@^P664o?E3<5!52b@# ztqxhsOi$1A^}gx)6`1vCwCVcw(GIAf$H`Y}N}t!&TcRCFXTZHh)2j@TAE~abuSv~y z(<3TYtw2WTMccN>L8uIf?)cAR2Y$;l36yf)TVeDdjo-@~l+C-ni88rY&zHO~tQP8| zo@zYmPv*sc;^lIolOn_PDtv4&HRDya9+fH{E_hrtUa8#HQTcdDf*+~$y|E@M@4-UU z7=Z$uUE&c9)6qrmLRognfYYaOH%l)9XhIiDz<UkRs-dN$y*K>GPp*@f=3rz%4RrB} zG-uPpEvt3MPZgupDJuC`AK74j<lTp5%Ad7GF7E6}P>X{0oY@EV)jpM)?W51}jj2fv zP#Ld`(d$X8M+apHs<rsshs+ypZJHRh3QR+Xzrse-CXimi&@#b$E0^bpKA+K>CUJ|D z%O`URXctKt%C(@V0kO>a{{m6NXmA*!hHV)qjVAhyv(Yuf&SJ6qmzr@glCv~`^$%`* z8*KKxlQ$3c!ZP?BUv{6ZH|qSBHP%@zpUF_UR|DPV(Kx89(_Cp_gi3tnE=foXa9S)E zPPI~GA4rk+pBy^;s2NP!WxV~0-G)zY+a&LH1PnK&F#|Wt7RXjvdXp!M5{>*c=Gvfv zt-RaxM0dawG9e`nv;EcP_ep}Z>qyw~or((ZI5m7yevC7JLzd|#50rAJF8-Dz#;HZr zr0#emAeczacTJ^2!c}hwo&6Y6nLQjKDT9CWDj<hqCiautYN3zXiEr2+;s8?Y&d$!B zar0brNU51HW_|h0{nI<*J9Dq+C04-o#VBNT;d;0smB4}!iH?=XOiJWIVjb~EpT>Aw z&gJN?Pipw|iLCAS4Kb_Psp7kD!KwxGF^hCF^Hb<PwG<xf0c;i=uH^zwQy;dBZ%5ZI z@9sE+ZZ0)Ba8uo-XXnB!HoJcbK-*gu%V|#e&v{6+lqCn`YQby{d=Y+EX|LZQ<>Fj` z5DN>I7xit7-)hwFuNWx*Rmm64Q=)gG3+mYMmC{=vH@y|0ZgKi9zp|(nO6tRlUt=bE zRV|!~Kvn+~QD2JgXxg9@iph0#YaHC_y?uiCg2Tp;xSC8Uay6HN?r7fp(`s63XQPiQ zJ6FM4ZNE%BKAVCiG`z`96+SXqt!Ac;CbLoKITU=`WHMitFRq#ea$wfNF-P>~r*(XJ z`gxg_<|E*zci3uYd+xU0SQ;cr1^*)6hNw6PMW<R^@UpXp)XT9$S3@>^t@*zy%*&9e z|A$^Y>YgA84AG01$42cq^>j#3@)6}y^xH4=aW2IvvM~w-A!r~3XYTFbej6><&3IW> z*oeQn@BWFn#-a5N%PPECHh!UiZ&ad0MS05Xp`>4j{)1?RdwBHT+?lKG2&!}Z%wWht z_yGOg#KDG#$)YcjYX_^pFJrs63EsQ}*Lkq=-xE_CaZLEI{FYR`B;sT@9S!Z@J3n3e znkRh;|G8)VLh^8Cs+!Exn)_KI^dJ^th453tw3s;X!1Y)hu`&s$FD?wt5|+O46?WhB zyMu2g%VUwQdaq&<=1d&bpWLOz-^p|8^f2O|EYBF|VmW~O^I}%p98we%vKZw@Bc`#+ z@jPsqz1DjPgMs?TZa>}X^qJWmQUO+S3H-WT%AIKD!`>AtpC#-sm!wXymz1WB(bZyp zd!hE;KJx79$Iaw0W)0xRGR~rla~n`cMICQIM#E>GdTBkajA_4Y?Qb2`64}MkuL^pm z=rIqx8015r&3V+x#aUUhcg0xu<I<GR#=C&y5ZJQ2$?O2IT&sQ3GiFXt2!XU_JBDgc ziPrSncR^A*{P`uM9x(2w?9q3VUBLC$LB)SIZegA{qyQdp)oM&ESnFSYZ(4iqR{}k7 z2C4VCaAT7HQ)=~OSje~ho`>qmqz&8?Q3qIAqK?7$@J`;iyT0P}5LU5A@Dw={Vkm2k zo9U1tp9pn>OEUbb5RO|5K&Y*kxKTNqi*{?TrhXeR7U0oOEdB05Xg1nmVD15{w&k8r zmU5ds-lo6%Kx9Cr=RgIFoHh>>?=oK@P`~4AsX<MMT<jnnFch)I6(2BoJ|<ZAy@3Mj zQtQ!X{(aSh^+v)E3>@-pK0}L?r4)*qf6eKD%JpDI@l?=TCNT$Fj&ll^oH>&}c&o!_ z+%29vV7lAqT6B$5gEr}xB|cuPuOmKlhKSJMd*#OQlH3ma6QN%{KTjMoA{EY|m~AL$ zjZ4lq6PB5fi^FKgd=sy-|C}G?P!dBxwcXJdqAI~gX`ZdUk}?;FboOB%xS&g^bwuAn ze-d+k$K9)S#!GNVenz4uKA_*A$1F>bN7y!_kF*JG0>t4JZH4Y|{nwiK0ywsir3P)# zxgT=z^%fqDYf)>%$V)*I@W@#Ix;|nr*41OyKk!}&xl>7_4}T^kPp*~OYH*oeOGP|! z{(ixF@tue|pKBJ!l$MV{c#oH&2Ov|2ACcc%h7S#9s%u>wc>wRYs+`r=%cajOiVZqB ztS#AA;7AD4SSW5j0FN5hC(EWBe6!1paxMf>5zWM@eAwL2ojTAPum7rrYI{`#ipRV) zl;K>UjUp@1tw$Ip7FZ8jTW-GD22NP9Nk<@qc1nTOxY5@j9x%|6xb+_D#eXWb8;Kr} zTjRIrYJZYu*j#-P{j3P+X?pxB<>Sv3O5N-;JIXQIGNmyDxskma$QT^7Mz`S>|Jt6( zBHbx;T9HGU>`FY*M}C@ka@jJKbFlR#8d}>LP@}dSJCSo~XT|liuCO4;Fn&X!<kvRa z;@AAjcl`S8kcb4=fj?)r&ySvUdz?;>(H7bm^(E@7tPjIi;l-AJntxP`AqGL}tMd^F z<>elP^GP7ckc(g~Yx2VP<D$wW<6=OD*&VGrL;iSIdaz}0%zKTAm4ElJeZt$oKc{s> zLjoE}8nQP4@?~UYZ?}WC;;ijZPc(&H54i}5(o&WHrA8<^8~IDQk$Lgz_CpW!C56f% zM~6+sCuV^qZ_7^OHY)Un>w|x8<oU=Iq@%_u1H~0Lb*JjTM)d9U(tlF)7lecUE|yN6 zzMmz#krwkI=0>D#>8WY|4#)U3OrEW~g_{3wz~XwdXJ#YIYu(oz=Jc)~OcKzg0<jdl z%pwH%kZoI{G3&B1fKT^%ldY>YcU{N%L=bkCV{v*$%IQ8iKW9@|-P18qpHdHI#}w=* zT!+d}4qP!)9dQ2lu_ei1pk*+B<Zgx&klgTDiJEU&AxeG4`OL-o;yu!H3Pi1*+WQGu z1Fy3PoD*#yfd~I-iA+(b+2m|&^-6&F32t{daIV<yo$k`(^N7&a^F~<hL=X6JWoF+! zB@J?_cDkb?zWZK9OexciF2&nRVf5qHN1z;;o)KPJ#)&3YsuQElZPHyqyK2wSXM4zK zlD)Z*NgcSgs|@PMt#K&41c#xhQ0A|E>KpB<^%WgeyQg${Kf9;()w?uRD-MZH>Nn&1 zdcrqe`~lQ*GqBV6e#1wkx}(n_g{MJ!(#pVrTccpo9vf*<yCqI4#f}WiHpGs0@%7%; zu&79zAL^_-ijr=&ksDl9g}a%v>EuoNs#azoEA(_oiTF;4Zxa+gzA$X29Pyl@x~cP^ zz=5tVIH-dMpS1~&C$*-s<~-eAF#QNnA5i6RBhB<4_0*dO25U71$gk#kOZUO&^|q0d z--h~e{6*b7SGz@?CPG{wEPvZ4Ojs+U`7)Z-de7{Q8oZ!Im7K}PS%O}<T4IbB*Du_d z-a75<BJ+`uAhXgj=7rY%uQAr+<8BJyYt}&et8V_*Iw&|-Ch`{5Sx|f)hxMsvBX~!J z-CHmf(RH|gkX%6!95T*8NmB9CaNNg+vr`rrJ)wzQleymE8kNXmFr;J%8(($Vo}P0o zjyZXIZmQmVTor#1-SJzVj3oQbcz_|>i#Vi04fH@BjNFvRE6Hg-*x4$>hpldAIo+Hm zeT{zHx{12DSEFi;R)%=Zxu`&D&73_I^3-3CiY(}JAH{XO!-AG?B@U*^{?V06OSj!r zet~Uq;?>x@?AB$>g5v98EDN+P0s~G3@FGRo8(Xpn$?^4&kF}YwuEh};!MmyW;L(m} zf%i04D;nWf`me%YoasV{t)ez{qCMp<GEp6pO_yB>K`5<PsjarFU@1<T73P=9Z;NxL zkzH+>gx%-<ZwB<rd`UV?Z67I53ij5LHASm0-(#-G;H$aluOD%5995T73jID4`>K>X zj#g6)JZ7DYhu6k9*8#N3?j|#>oyv-)8cQ)2jJ%URsQcE^Eadj`QET(67;Ny9*giJH zk!jG%`9eL)@s<-`CVd!5J^DZWr{~9_6#BNlsy?zqfPS%d)I~{yigOm~Cu?WG&#P=T z&bmty-<X;&j{G`ug|X@DSyvAB(|t%Eb|wvq%YH3Lvi*{yjy2gdYp_MZd8j2lbWvy8 zM_HnOFP3x8Y+Fe#>6Ht*`(0giO_)?nShoEAbByNdxprk}pV<dnn%e_`0_Vd6n`fRE zI>tTgQv&xaVgrz%Xv>QrM*8smO+7bBiF@V|+A9R<*xFJPWkdCHSP*DvryKT-q5Y8D zAJ>X3|IucdYF3UdO}xL+y}QnUg<=*v6aZIio0>ejw@KaY-DiJET1LXY4iXhYtuJF_ z)6>cv#agyEEJ86TKm0qL9zpUMWCcCan3lfPSw;)SFa?Fjh{(N02K5%PV*`rX9TsMD zOg`O~kLG|fl6xn?F)i#OBnH0OIbr8}cB%XBr>r0YuTis(!rJb$;h-r|{Gkoq!k!;t za9-e1lt5~nwBY-01uE4G2+D#VtPbsJQasq<T$RuS$KYpZ<OE=~UnRIpu8@;bP$AVS z9{lv}6WFB7p{BR}^XkN2%O>f-RGVL+xp7{cOoXRR*%ML3N(;R?j*@$7IWP_*HOZ&3 zRr}~IV>me`KjGqiP(R-2Giz5K-I1Guc#A+@jThFzewKxQvvs!S?)3u|FUQiMcgp^( zFYLiMNi+6cxNaCgo(wIs`!`A_{=&P{bek71#iHi8F&COnoKN!^7|t)!H{m<WLH1{1 z=e(msPAR{d-8iRr&P93FJvMG2SB9kuSQI9#W!{JWk2L@LQKuFNBE06ZrtM#SX4THE zUPDPFlZ;vrQbT`)W`1!?)wZw%b@25*ANM#~^HCKqlnrgO991el{#~+zZ(i0H)z4p0 zc@3%Zm^hc_f6(!N*Yrm^u^OT}C7S8$2W45h3zasq%s<PSbKp3JznD*E;#C%I0b+QC zM=LkZ!@+-e_Vt-xHZo{lkh7M5aJ`&?hNz-S_vdXoO`_i!yzj~`9gk&x%P{#*PoZV6 z5S{e-0xzch#gNa<87RW{G^KiTs~rFf2dd3uZNVnva6?@(#&hmqoD6{*zw5h!oinc5 z>IL(IgH~w9<1)N)9Z9jTNk}%UBnJ9u*XNx5YMC(<tY!BHTa<)peHl}q1mehLYTNB} z1l<Z>M5C@>j5<lz)Ig-k@#!~okJJO|5T7~LC2p(7B^JEh%VD7J2>ED@^c{h;-!J~X zWe#XJKzLse)DVQ}A&X&UrV=9XoJZEsvZvG4JlNhzGPA+sWk27_=!)OJ&rTDfU~X8Q zW76QzB3FiOn#dy=$7Aoi^!T)xRgnQLT`C4i&ZDmi$sZcvkv50kKgDG`8B^EyCCLaw zHYz_=8srFCGzTD^?Gc#46!}1F*W|wGT3RHNX#C-jpAl-3QCLMgK?887j<JB}u8Yml z#o6%T)Za?-Z~eZj87$tFud!(ey`(LvCbO=*x^R7r^v}AtNqlE%wG0;OwDP_zLCCBg zqdFw$695<SFeWb{#-HLSy=u%m@IIACxr3)ALQ0@KMM5w)7W86AAx3)QsxV&Y(|rf? zISo(I6c8To?uDKKFVJu`sLRL@c-PGTvuyrFMVCI9x>XsYR=3ssrlnb*^KJK3bN;L( z_~x4}D$HrsdAZ@g^};sDENcVcR2uxSQ2EPwKoib;=}~bso(lu`9iO*+j+LXaxOw{7 z`alxg=p)OaWd4I83|USK#t3_aaXq<6-R2utWMc>$beamb{fZ!lffARs3_#A#g8fx) zVaE2PDx-=_RG)U8eFn<J$;$AT>qymk2Y;N|T1#U;DW<@UL6k%m3}MU(n9H=qBMO0) zS{tm6{uS;VWrQ}j5>pRb^3?KjpnE<gBA!Q#q+>ySnC3=}{nP=={wlna+rHr_Jc*r& z#KF*iWc*bHvSWPJLsRK@L~OO(<cZYuuQG=O{9C$?d3~K>&){eHHdSyLS)D-vpkzxP z*kv{VX<GZ9S_?-LHhKl;!3QHJ+!VbyP7qqKJSfEl{s(tmDssf=j6{pa<ob5xyMsH% zyenmflPf&sUEJje%?0(cdNZEEb8f`MLn6be@m{Nf*5#@G_ty-+bxEp4u0Z<PvgG-+ z8@gLN<ie<Rh+A0?0jLOaWBSp6K%2}{UvaL{ku((73vD9$t(<7#r*kl?!hId9(MG3H zDKhd<!X*3>N}@D|aMGk{AI^*Opvv>hLM|$azrPZO>KgDmD+~4qRI3%q{1q|~79oBc zn>DW{BUl!c0)x(wTcYOc9uZgAOJd(Cc3R4x;|Di+u<me|G@Ju{uePjv)NjuoAR}Gl zr$4!;+{{+rp+23cOa{7Wu_m5g`)5V;l7Ozyo)QJ|=PGXI7vDdh(3M4raQTnVc6IMl zBFL@Y%ruy0rX1HLlwI`e%3?Tt&tSl!M0NhEhQ5i`(hGZNnkCS>^z`$NT6%AYf%yIa z)L>G8#=<k6D<0VA5V8B|Ig@-s%c;#DjR<JL)<to+>0KK!p<>9CxU~kzaub9Wqu+kG z#a|HNV_w}0Y<_hGGB|}#j6$(6R}_A9L}$|4(HCBVYAtvbT$E<Zf1Ai}`GT<3k3OYV zI({Y5DBXdda?0VMcg|;PfZTdxhl{ohBY?bk3dQt)G5xF%WTvw!+!z2j^KNjhtTvI! zym)6~XFjbhjQYP)d6wP5cP<sR*wY&{A#Q){EBQz_MR<FnGg?c4F0>7(g%($oBXeDW zeYJ7)L)moq$u8VcGaaq<z1?sG70E)h`-h9smxg^>hIIH{bR2@Rb%qatc9-?b((^-4 zj_2lvG9K(6Oyn&wUT#1-h_f%@IfDJ`eTd9D7J6X`0c^`FhKUDsbb2eqrCGWw1dPy1 z?<UxH+rIahYr_N4g!3SW3SK}2I$ITH;GL`AX8_5<vMjloNdBTv{hTp>vQVmXORN3Q z=AV`qS7OObjv8HcKY)6s9&3B(eR_SEd>i%bO%>c>-}h{wu#T7bcAa?oQny8#RZQ59 zMrzkm^#YZ`e`W!=wHQyt$Jdv|MN|iyo+K}XrEeLIW7X5WFd2P9F}*;cJ>De~5Ph<X z^d^_v*<LWBpC~s=5+jQtQu5IfeE~E=3L5~flJu8=AHPSEc<|z5ll|$7hBFApBi##S z5WQVm)+2xRb{)V-Xs?7xrZA*cG!>4?-Kv$)mg*8D0jkk3porboOp!m?cK=ih9o1jf zPh=WhL5i$7Yd-4aIb*;8yNdjY^ui=JY6p}FcRt7@4!QuNAV1H445HJJnb73+JEQ}h z&@fbkG_c(hq*P98<y`<YB4cTk!dO?F>%hYXc|8};M=8NGLu!34r*4g5Kv(ir`17;1 zu?=mL^?@=e@Th3WdtC7+%QIgiMMgIZ&eVSZ;eWuVCCRFz(OwN40yVqA7J)Y&)3G;9 zvs2{6wkicP+hqTwji@LBT}Qq%P<ms3gWmN$b04L2eAPK+^Duem;Gl|YJf_W*HHt8L zv)trSu)>DyiN+oiKzD2Q*lJf7C3@V^N86KzQ=`3Ij8K`Bmu{|XePMKV2Fre;7j*@H zqINiNltQy%0q4AQvP{<re=GqxQU3IE=0K9j@4hwtvHdz6yA~_{RH0NYme+u|tm7Y6 zZSy#_fe>3KVg!o1l>a3JtJ-xqtfWah-ov4uFZG*kwB1!%A%w!qAw_nsFU2$U)14IA zj1<HHLlIel^015Tp6?!cJ*{0GKVyPo5R##E3;23S@FS^~Pg#*Jo0TuVn$eUA+U4(F zluuK<#{z!A1a*~Ti$<HvFHhcENuoNEWC~lXPfMV&UWN$YCYtP@=C?l@fL>w{Z6eN$ z!+Qypd~>CaVp=lB{t^%n9}~GAa<#nJ(^2Ee>GoK1W0n6YeU}Rg@lnKKbzBqqJtcjk zW|(HcM=)(MT6^P?b7ZNgdEO`?<QW$O?W<vrUzH9YLZ1a8MG*eIl4P?9+DH1c+TFfP zCr7E_&mxc_HY)v$N7Gb_n4B(=-L#F(nsc-6FKyEiiZY=>zde{QB1Jt<whSB?inkWK zGxu!lGa(a=&r2X~%QGQ(6LrN^0eqMoRCzZ{{T)4p|L}O*V1u-ZnR_MED5rK)0H6%4 zeBm=?rb0L_SeE5lQ9l_7cn9gq6jjr-cx54o@z|*3gN2qEaP!%p849M@voB9}Lj8L7 z{Mf3ZcmAKvf(~PNBDaNa(kk=Sz`*A^h=e}W4!I|6ne?sSo<<u}OusD&M?{sb84Zah z3$>H(+QDCM9$%cQ$8D?)U5Sr@<$dTTh2}DgPketeZ^kJ--j-lv3_AnICG6Ar&w6GI ztZrn7rDoJ<G+{cFrKQHoep*?dLq!4oPGVgP(Uy`61qaxXuE9ckN#@ZZV$Vh`tfC&~ zFIyI_?<rq_CN%^5b<d%8q?=GO>mOx)l^38iz*qW_V-p4xF4Ki9O|NVj2W^AU82t;3 zJq>I0Mn@iq-GMje^{9+7u*)M{+%avAOQ1XEG?Rbgoj2dRXCYJEl3pd=m`P$q(_I@? zQT21xt<9!5xpafJvUu-T<WU6m|Kpo>V<TJc@&;HFR3w18a?UE-cE1<F)#ycOUmM<I zk9uiuf|#ww@eWX+Fe!Gio1I;(b4ZARPH7Ul<2oBflPH~{50llH%~h=b!vgnXdzG{D zl%qhD`-S`~F7NZ01W>o0!5VCd-rb)Pkxd^MveN6P2kP7Kx6TY1{gxYLeC7zin>UUn z2&(@cWQv~i|7W(v()GV)|NS7G_y4DvlmEBIUqq~o#};3?v;Mc7{=Yx4f8zfC)X0w4 zclt*x5C{$eH&ket@4pKOe3){p<(J^E&GwF#*NScWjC(4}Z{H$p`91aDWh_VPoz9XG zRljy~&foA+JeEh`-p>>n9{6`gYKm16Mz+RjwfWYDyPR5>WH&XNi~GN_12|K%%q2oP z{|VW{|8sDuTB+F9ciiu{cZazgj!Cmvmsrd?d#&QX2C(ew=cxRj6Hv!JDx=iXeBZA} z*gCLZ(6?(|{Ldm8quAL*#Yj(QTo(HVPl~ym-`Lwq&5<^N1gfyQo*PcsHziF&haWHm zlJ3<pEi&oLfmL1Mj%efcA3AbQ#=qAwJQao8<s9{r{~A)Bm|8k?cz|>wSErDy*+2N? zp*W&gQ;yiE{@O8WP{e4=x*&Fnw!P0Ez==A~*ds(2OP6Fos84Z9jee;}%hZ?k2r!}d zR}vVpf;vk5M|%@+JelUYT9m@*AOroHDo3c->6Ij=TkqO#3p*E3PmS{QDT6F2^bs2~ zuZ(s1gN~;SuQfftr?UQQlwVzwr~0THIhpfz+cQV+0NJR=5JQuT)mN!X;t999YIupA zm+z3KRhgI?)|53=<uWkAs&vmvI5sCP4O@^4=Lef-{Vvj>B@~OPUWl`P^_RuIyyC;^ z|At8{=KZXWZN0^(FoZK#w$VJqZ38d4Z(aw=uj4;AWUp1ZnC$AYQ30h=8aU8qy7<-2 zl7N@X%dP$WRZKGMXyvX+;}bDQ=+$b6UU2|-m~AVy2FXDtGWe{`;QLHVwI(4wdFJx+ zrNW2)d~sV1NyC%385a|j+$Cl>J5qwJwyL*8gGr{pkOla$56Tu0OFInOw_`NIhZuy; zE-G@6G_8^Z1d`D3%=eguF3$)PnY5fH8Kb>BCFHKVYRo35)?Z>6X_vk#`tvtS%UUS@ zxw4Od9V1rAT5iy`uj_@$#N{&AwUEKd+SdDT!Ui;$`iC-H@A{H9d#WUze`|YO0W<X1 zi6oT;$u+jPH%6zt`yFQcIt~b=cd`iuZ}FK$=8?ep&wBSs4(McIze*p~H0v%*bGX9R zD><t-_frGbPumG|wu)yoS2)P6IHv{0?DnIySZB`VGscZTCK6yZr-{`TCsmg>1u+WN z7d9G_GNskZlh(V79YG9Wq*AMWX)|&Sv3?M*GQBv>`R~e?W93J0q#n0#sH#3&uh~|^ z$jCaetnU|zzu=BB@_b1ho`&kL-%>1hniY6zFp?#`xjRM`kz1p$yIe|{zuX?PJ?MOl z`^;)AIjw$j&?E!x_NE|HE=?=U_NnlW>xyAe%{KkQrq_?t+3cL($dWXMMJ=T;?h9w& zm-QOGnF`+p5Xl0EQ-sTeKkl}7UF+5ALe<XM7FU>uEQnc>rBm;MKw|Hm?4i|cA7u;a z<Lr@l9eY0C_-mV3#AA6vTAcLOav$65FLua#tKB^#iB4Hx{zhwzJ~a|>nwR^#rnpH| zVv>2|gKp5A*1Z+Q9RHq&Mj12aF5TsS;{urVN1mO8vJj`rHbQQ2NS_5QQ=jjp><-nN zTQ+F1uv_yJFPzYfg{fep@JX6ItW)aWw@Dw94^96ud(m%UH&%EX9h576-6F0edC`gk zSiS8!|AUwxWx^Ld`Qm?qpHOeqU8eF0W5O%GE9u|j_`#(yPSp|zUQNs8jHp0rX<n<b zGrge|+=b2D7lNdxnbM<|Yq7i>HRpBbGg8g2Z-V7yV{`d!cK28nYFn`Z%<IEZidN&P zKlbr*JNa~Xx5O1C>|1bn#3}1`L)oeg^2;wL?>`n+Ow{t9RrTs#Bu0jvUGABo1B^ar z7ELxsua_ObVP_MR8jfYUvyz9t+16XsG=g2bjW?Txw^3m7nIo0J!MU#%Q=$Sl=QemH zsjE3$4*R(rZqKjq=Y1i;SmQpoMN({mc8jMg4c_T5len1%MC<DV*yR!Y=yF}?F?y3) zIis;>utdkIZlg{nl>%?{Pm65a`clJaJXq$&<5{!U;4$|~kd=3xmwKSa%x6p0@4gTG zTMtKE>fC)o3*N2TkkHbE3gv_T9lz~asRF_^QL3<SI@{n28F|S(lkU;YSsj#05B21C z$+d1nT51uHB%Kq#A11WGMGcNlAgf|gebsozK~J<)9?u?WB<8E^=xKcu*&2EvG!;;v zXw%wi-yXq;#k`nhm>1ghJ9s0<QFZ<oL7a^~G-?xRC#oMU96UvTP(^>dB`EeLztBj= za^dmCRXzho2E0F=k-9{t0iB(TL4SLqUg9SeMl91Zz+&Vaeo9KGfImx{zwbwK%vH0h z5O&9BKI>WI>e4(MziKb9h>ChPzW7|KrZI^?1wL6bt9OJg_{d1j-}v~Yu-qYC;f-%j z&q$te^T`_L4p^{9KnK|H$!Y)jzu6my;n#@1c7DZZmMOI0#SDWx_hg=AZUYTROqu}_ z%x6p|k7q*h$bh%V=j_D#KpOjps0C@dG4@8ez8=L+CHM>L+B{#LRJY&K#2()&Za^dT z3r`|%JVvXSSJo^mGu4E%s=;aN9X9L1zK1pAwz1Jdd~~3_i{mG9Bctj0j?ID++v!~C zil!oX;O}VJMkB~%>z|YN&7N~j^_t1&H3^{UtMZi(r1w>>68TSzWY)>(lWtw^Hj5fO z08ukNT>7kM?C<8uC|4`ck%`(InHc$>q)Be{^s(`MQxNdfxrzt&d*>yni!lRQ(WAFa z9eO5<Kkp9-=DHu}jb6<d&#~*tC{%^?EVR-ZGtKH+sB~KR7Jlt1+N$P(>W(cv{w=N? zkJqZ)B6x3sd2qGvI*$SH&)^g5=RSx5b9l@^!EDawVOK-&ImROAmPev%*j%X5b=-W# z)l*Ld!<&#din}K}s9lFtvCfLH8i)Ku0004=;dyqt7ObF9dK}m7xkz5%dbt<QkSQb8 zp9oOXHXh#PpRE4c%Gdu&3S%sANz<tw-0^V@?Qnad%jLSg0^U2PG1&@@H$#siQe-=C z;orfoiikUAvK;3l%VFEKg6|qxySD@$O4v1%mk^4}X6DMS4#j(V=XF^1Qj&`sYYwu~ z^HJ4!ds{$anP+O?%~&MpVO;<;mIuha-JkbbU`mlSM&l?g1Kz*Lx2q<ANq>iA6rlci zha@^_a~ZfD%iCe}7iLMOtg14>I@4)Ber=<uD&!+P{yPWn;a<~dHce}yle){mvLx8W z;^TaV5wc3-E8^~)Q+=3rDsQo_9+tBA=A!#<82Z??(~ucI=hGy*QbA!z>!A4xz=Osy zvkC;t%G1YgzWQs>mM}k*@*ixB#Z((Hr4(<MOTwr_5d6-)cnZArbrkxkvXoF8)#;gY zbFML19^`_uB9U(pKx5c$=_6)u_&sb0)|h)Y9{c8L-u~Wlfa-3xh&h8W76s(Y$Q`eq zDy5bHlN3NVN!WxYmSjFy4A@pXXxpTK?HqFE@*lfRGBD$8)<f$>q>H2UBY-&KirqqH z`BTQHofPsr-%PXoz4T^<5Amf(4JThGxZv}TpEbLi)4b0pL`4lgwDaF8U_$N1b_4~( z@C7_4VZb!?z~ELKU%law6WzKsmbY04Otn1xKLPCn{aXu^sjmB9t>xVZ`&-x~HXg^{ zp!bUca=d!&G41vV6Rc6|Gq|JM$JB>(mCs40wfOJ&9U3w2(^fuLD_2ZJA5PvH-5a41 z-t{4odP8<~(rMpbnH0YDRH?4rjZMS9I2^c=xRPIH>WS)FlQWARN~}xbHg{<|D;zDQ zR<658x@D6w!3p2G@&`3Ce<A+U@BaJ#$Azq^G76nWUC`|fO?;PfeKmE-PpEEUQ**lA zv}|H2MVEkQ@Sx+w9ql?r$?PYe$XD<1r%K6x!Eq?gBTJ>wR<cwQT>TWoDc2%f<re5% zFX-+}DvkL+9DwzRh)R$hwQ`wH*-Iz#P;FmKv!_@oYHBpp{5MaYv(NC8tK)*<5W8F+ z!V8(QsingClUJv2tIFM)Jq=QB8ijh-?sI$m&rJ`WRYqW0fu{i7Mb00&4%8j}8C{|s zwRg8<@ITf}n3ws|^*V6Fcqf7SfMWLcKM{EUzNvT!LQ`L3zjFR?e~(ojc0PH}Ec5l~ zLB^!HONWS0F`OlL!#faB`m*@f7p{DP|FN{Y!;x4WcRvB8!Q8jofGlsc)O#<IaF&eu zWoDHgzWP+DFN<$uSH7W3%Ycu`*u=sOcA_?ao{)q4TR|GX&c5E^x+$yHU|KW6Deb}9 zb(P}v-b|~?z|Z-GqKi8?oYVZXw24X}s+Vg>rea_9+S5wT0ACiQmO)XvUCqDC*OOsa z6N-R;@kx}EOI{w-SYtOo&<?rGSt#RjD0j~fLxQNdChyU#GZA@{0-SO;^TOKB&_w)~ zi1#wsKV!-+w!eWv2-6`=es>p$Mr30~;c9DB0WoW_v@f8QqBmVPBSM6rO8;KE1&g|} zO+Cl?=4ejefP$5eo|IVsc+C38brtOtzWZ@_xqd$03b9($7aIdog#as8KEVaB`3IjK z(ZiUG9aaN(AM*;uA$#Y381tw(dvD`kgsNt9n5#B<-(A|9e1WgLZnUkZMMQU!zGgXZ z%T%uDZDSNT=U|I{R?<dD3<sbx#<9HgMUUJLtgclAN@bSWX6Y2+I_Y3yc{P+(egBx2 zp{7+ywUf=rxy<OVC@#<XIB$QCH}eT#UiMo2^hmPjU(`JR*88#uJgr5>G-^7Icrz(e z+aeDRDk2QCo-XVIY3Tj29!Ibkytr%mzv1@8?K^#`coLnM<oW_mrYwJdphzQt27qyZ z7X>RE{ivB*S_jQ4fZa#$w;w6=;TA;v6~EO0sJ01D>bK{V1yc#$JyRXU%`ER3%#9{n zln^XwTfsU-J|L!{`CH$(osZx=ZfPShVP>QI3FXtJ78ERH@S23;z&3seq7XhlWgSZ% z6^#tCgGx>lZK4b51h<n$7ut4&PBX=y>kh3ve&;R;pkL_cUN9dMi$7iq<`I?Pu1{qC zl~}>tN+aeD&z7`9bYjgG^<>^g(EnUqcM!L_{mKcQOw;&M0=0^EYT5mEl&w%4A7PlZ zG5=>iM{<1TDP4<}4dd(6=eBm{c-}}{Tt{F2L4a2T-!nHp=^H+P6>e4ALXUT^{6rdu z9Pb~|U!E3~nbr91v&fZXE?f3e3P4|`5?~&N&31n}Qd|@FJ>90THU3>{OOl*c$J?sP z2+HtppxFbaK*t?Z4UBuV(B^s=DBzTl%2xPh;kNWZgF?W7)4p@Nyc}_gOye}v4PYM) zr?UU;?DPa{*+>z^IPy+hPTDgM?qzj+F!Z(hx>`a7lzwNpi?*4epPzL)IZs^Uq9?_1 zz9NdD;YmM;a*!?4P`uCFweFTLGWtL(Vo48#&ibHSBX<(J&8lO$Y7Z?K$WoVClf5LJ zLlcjhj>$@<;ylh!T0V2tnVA&S=e1Wkw{CnbPsP+OPB8V3sX#>ol(xh1F1o^9s8w>y z7c>9%Htxq7sb_6)9-3&3@vUbf%9<EN0C~p0{(i7h54M*;`M1>12>JlT{JX;b?cJ0q z*Wyzohil=qg|@$my9zG*(^lfT{mfe#i&*c$-?s*<^<Z0+aR=mtu0WY>R%6z%i{v;+ zJE?ypvZ)3-mYOjvCS&{qKp{{&x6&W)xuM&h5mlqE?8C^u5R|m|&Zn?AVKIZ%KNRv8 z_WN}T&M6d+1(O@qtyz>5IyH<Y#fJy}LC{zigqS*#)5w`im!F`Yv*^SJP#G1!YrNL4 zN1KvD+khTN#=O-q1OFAD7Mf;V%=hCtscQl%VhaSY?DC2HoU3hk((_Av`vwPIg1Oq5 z%x{>5T}d!q2P?BMb?x~c!-d9)>zK@ZDHcb<B`ZcroT_d+Plmiv|63^}i|c+%+Y%Ld z@^{pLz{&<%qVjq5&S<|>Mft?0rcSZIgG1UzGiEvR5&?62tGTB3i60#&+XK73^j}~H zXi-3AYbIy-IPJn32E=!G)#YaA`x0;D{7x8|w3BOGE~VikJdcCt3f>>GE9Q$n?5aPm zp70p2+RktIZEqm``#X>B>oPO1Snj5iIYQviqrmXBD@glO<y%?!Nf&NL#z~_Y*61|1 zFZSDKvKs6$@cJah)QTA2$c=)Nq3gCC8gY;1yx;%Q@LN{x6sBC9-Blv$cU3i`xv}wl zlHj!+30)7#{HUnVaCVt%oUURV2=(oCL8B@RY8xhZ!$7I{sw|TrfO{z@gv@c{L7P46 zhl6;kI=o9iD?;hxi=@*2UhOR?3DgYI%TK;3!lNw8QwnK`*)W(foSj4GH_fSFd%RA2 zxQ|7?<;6Eg6(vP29O8RJs)N+^2zZ`Bt?*8cKCz9MKf?L3ewI`(DIv4762)J<L-Q=r zmkO-=>rw8HrRM`1q=EstVg6A?{nMT+S@6|<%>^Psm?0Bwi2sOr)Jno>a`V(cD`H|< z${6R@!M4BS4qaQO)TD-^HP7DsohPuC?ye3vD~i{o3L*#LD9N=<_m&cW3Fd?U8)qVM zkGGNwD}Gx2>4$*ie~dp3thls|ET<Es`_}VtVW<lKQMco_PDW0V;G%JhR!2g|0GlV7 zQ+KK2vf3qI$BZvRNgS<m4B*591DtJ(gr=Z&1^D+#qlM+TCurddI?^`G%7H?!8N4i+ zR99W|my|2B(;tgm{}15-*T%5+k|$}&QJ)=7%2xu%w5HLAd`#DeK48E%E3wV75>2JK ztxC-ztugjS?j=rycYad5tJlrkSY1QkpB%sk8!wsK7ss65#k-<2*uYHo`4Kb7h~y+0 zlk!%+5_5wi@6xf+=+$FU<n~6C^|uZkOwHb=F3dF0m&0In?Y%`tEJ?NPFMTsIGf4SJ zoNSk`?vQ~j{WdhQ?SK!3bTn7~>^^P4xYCTw^rccGzv`V_@6da%#3?rVyNMU?U~j*- z#JZk(UVD}krMWvA25nx5wV4a=AAE5y_Jgo%M1z@w?pIq-3N}Jy@vBNmpXvn0xoC-( zKgs?aY{PSfMF{;g+R{2j|06hhV%=e4K@PcfGwxsFU*~KP?w{ug3WhA)Yko+mxd(PM z`PQE0(&WFJ@ncVu+=+F>uGJw}q5(I8@HaB`=R<powTb=sZ`V&(vwouJTRnogROs1K zelk1#u*S0wack&H-e~<iDp%qr1Vm(X)qtpqXjw_mU;wp5QpIdXD?$f`dy3gnq#@az z40#=S%@*^dq0w-%voD22U`i3!4w+2T!g)I9G(d`9l2}<S1c`{*Z0^a`Ru{1?d$FDV zwkMQVAm%8-+@Lt7?0`|taFI>2uV?O-oJpbc{z#;GAv>OAmw&VVM!Q{T!E}6y;gxNA zgt^yy9&TN)S}vXw=W(9V@bJ>l53H@1(x7TaRbhkyTlCXwN15-mIJiEg>nXyd+=%C8 zh2MjVwCWZIl6hyo4!rlYEu2eM)oIrH_vYOmz2{lBNf#bXsWhp9ets{^h2?=<4(Cbh zm$vx17-#mBf`^ns9k9@1uQ<-nLDD1TNowuQ2W8_-?e?BM9}+vO)sU>=u}F|`X>$BL zsCKG(Uc)yd<|-Pe#xuOtJb3oZzmUB)D?8m^z0ezGD%OVAl<mEMl;8f%)T^Ez^la^C z%z+U7V!`Ip$4Z*oJrt~4z;$1@<)^0H^n|d;Vu}QNk&DZTSICd&v}e}{Z!74L^HDG? z;m^LScEkSFja^P$r7o*1y>9fmzR8uD7*0h7{fqP;oPVQAPT-|=*YV5{h`RbEWJZ>H z7dcJB?_)-k*+26<b0Y7DH8rGyrY<MI4Zl*oW4T}nqw|lrT#5WPB-$_8gbM~c(9CHq zwh(I@`BtABWGdr}SL|ONnzK8(SGWa$wYHTP>dEe3R<{jk*c<)nBTo>BainI@IdOt# zd#|j^7himTkLYE;mX!&8<-zSg<Iuaebo>mJ=+?(O51{J!OxY{JL$wG}o#txQ3R8)d z^-rP2bLl(QXixHhjfXGqu%0ATNU~<?6W$+tNfcVeNY8NqBn@c0mt%zLk6%HLY=g~z zW&!H=vOI7$rrOL9%q@ko0gQ5)JSNF64k{()YOCmtQpSGD7yQ$Bb!8XS@gjJ>((hsV z_E&XPKg?g9!Dv%Y7x?SMf*y^`ZmQqi^vTs-1C@M^`Z-B9S|T+3#={fcAN(llD*SF6 zxWQ)5ptv}pL?bAPhFIOyz&tOuuV(@i{?3rpyg$)Yqr(?q7t37~PBwNr|4^S5YDJ_X zbE;zEZd^wE{zp=f!o?cZoy1it{F|t#yXbY_qdQT$d($~H(v=TWMTlxG`wO|Nxc)KM z8b1VK{j*b<H8vrC4A~poIZ4tvMY@{sM2R*=A8sQ;|C1Kd$<Xc98$c~pdwc+!OEYQ@ zSd*UoyzxY6f8ng*7$&Xi<ujSSBOv1Rt3oS6uMC5FkI?y&9hs#vbUJdfR71+oUhG~b ziA8>1(;+g%1)Ho{1cYaj>KU&=PfVrSP&b?LucR<yqk?5bggk=ZwPcCXnV7D<9|Pgk zpDR+M$vW|B9nqTwZBDC*-x~$(?Q#&~{+jyEj-vrD`?_l2Mmy6?CT70%wKhhut>hmd zOLGyG*?COImh$T@Qti!;Sfew4grn>7VFL3p#fLV7olu>TrO4AuLC4o;i`MG+G(%%5 zqZSl((KrA)#qJcIdWT&o-6&f*9tqk;Z3Y{UE`DJNa(j)Q-8Qq%5U6almnAN;PjT_Z zQ=9!`Wn$+1s{5P};d=1wx^_Y_i|14--<2u<yCNwC<8R$lt9asfPu4FrtylpD$+9h{ zt+)@QU##9+f2Q67EcRuj=zja*f?&RafiCUrM6>|Te39qgLH(yerwB?BAY22xEKK2u z#DGCw$zqI0wf$#P^L}Fik?Py)S<p0#rB$<G8dbc3f@!7Q{m2LXFK9gG+J@ZsUx@FZ ziH(T~@8f4MJ|KO%^Fn9(M@n+jY)9G_6Sz()n!r~ncKz<|-UEUgqhGB!Gjn`P!RJka zvmM7*{@WY0dK(}DZk3{(yi-W_bX?hdTiB@h{iN#f7h(_^Hv=#8KLjN=az~Esavc0Q z-#QgqKvlIKrfxX?2GtQY{(AJVrePi9#$puVk;y;l|4Kk%T0~D<br0?0u@osICYZA7 zCu2c%wlO}`H^IQ{)X&eHFdiwie;V={P!@Vsm<Yfb@9sGo&(6Ktc|nDMdX7qsM|RmP z^xiyNENG_<fIdHbNv>`%E_$%;c)xR+v{4q*_WjWG9;h%UDz>OlZGP#oShsS81%<|q zv6@wECZK{0N9VfBWeIrJ!3JwTT4{go`$(j;4HQN?S|c5T{Wu<m-kR!5irTel;rzlv z%By_xW`*dl0{XMGpS7`N#M&2(a57}*nAu_ih@{g7$LY)nrxr+EvG0*G(p9G)vD(xX z_rGizC&+yE)t|=h+%*-JFD!C6TSv>t$<CuKpK9?emwe=_iNTQfz7BQOZkp=CWhugE zA@5y=<M!|$Q&@|e%Y~S%JJ-T*-*Ucas5rB<m6DSMe`Ml&BflA8WGrJWxA%I2=;Vap z7NwL-r(%LpOG{4_ay|D&VN<)=$A8MbmBWowJN&6vZt)^a+9?Us@jL6oCZBq^2s7$t zzTf~l6oNw*vs-Lu%^^F8EC~1-yatm=o4O09H#l{yiU3$Axqhmnfc3j%Nka0fUmy9b ztvLO!(H{B8f!6OvbFNONMY^o%o4Tb*roD~=SU32XhTw2@Lb3^_K^|M9Awt1yX3<UM zm3$SK9XT_~3Os^Lx-Lg`io2N@I03+nFYOI!NOxCSIq}77_In?24C~+}D+X$gFO+43 z;k|)Gx))eK9<jR{^4<Q#C-1(c1>m{)B3Ge$qq8~=E#T*T$m0n|Q?KS2xoY2E^PMVD zHmn+#`p;t<96Ip7`QZ_JEU7v49fzJ<K9Ufyj^vYA*&d<-`Rh}|ngBrlnQ7X-N?K}~ zOHeWV^y)SRlgWECK4|~c_T!or5><7Lir|msT&96Mt!`Qo$#r7h>9d#unBw~41p~Ka z{-snLuHB2w^Rmw^DZu~OBL@h+DP*(Ni<P{#f`1(#QA)xew-NkGtoB&f?BAz#Smz36 z6qPlmDSRkf;bfKUx^@lB>!Ku?2S8@1t~g{aiuYlt0@v^h2P-@S*AEH{YYC^lT*q2+ zS(lfe@E4rmthCeZFM`Kg)zkkxXMQt`;T-N9#moK}BWNl_>)mL=R%DmL<w8I+-u+@T zWo^i%c+<2*(7TWS_@GBXk#|ZPTpCqPE8l^Cf%h3u6IZ9Eau5gn#z5c(vQ*n-^KN~q zVGHd+yxScWx%e;4gxZd;!2EWOIcDF(S-jqdY%pb9Hzmo2G`n7ise|@P+Fn-{+qRp3 zNZ_)%^%N;ZwYIaXDbUs#5>;f0-dKe~XJ#Zn*c1ffsuxxkJ(Lk=X9eUi1c#+R7`-Da z%UTEUhNs9_gm~;dvmch92qW(EzQ7X#br22~`S9<bnQeQLbG?4iZFC<6jLr_82-JfL z+9(ohApOwUv%S4%G}=`E`1QdtI^)N(Xg<Bu_W%mwWol_uk!rNCxp4bO9i4qf+$B~L z!*Mhd9s2mavZ~-m7jLre;wKq6uP63#)#EHEqT<vVC7Oagl8wI?;TzM_Qs~Py#z%== zz+jDRlbJLHfr08pjY18<M|#Hf6BVWAC5cvIYHW(M$yEbJ#iZ}$-#r>DQGoUx50`|8 zG~EGz`3?l8y_Ly^y^Hs)&MA^eI|#><>8EAVtp}s3g0y)fK6jg&O()NfRH$*kDd?9{ zp0_sUb!|VbTQqnq;jnvbC?|mClz#3yK*Rc42XDYG$=UnXWnOl=*Se%`J?gJS_Saiq z!j89@eaK{@xpO-VlU~~Y@`hc9D#s7d73x9HDS-9#@p(aLf6Pb{hxrraX=_Dfgv-v$ z6F{mgcsJAIoxFz^FpQ-Uk$u*4kl#T6j~Z~re{JKN^woxy{5aa8&x-uO)4Q*zh9+ol zE^>eg0d;{0x2kr0ultr2;-tfvHaM!4LZ3p;rBz8o>V4Jrsh3AJ?7I;lbYul|E$jHi zPn}|=H4(qX_$HLie+1U>6XNHAD6%x&CP3sEuTqE@?XNe3?FkIbengiuQ?e{?UCuMl z$b^Y_n2nD+x?U9nU>TLpI+?Hu@d%|(m7LrG@FL4c8;IF!G0sm}e1&S*KY52T5;C~; zW2CQi&an968)sk={9nVZ?c2BH{>tlFLzhy&pZY@G!fts?Kvh@_GqLGekn@T#H62}G zsMM(lEUF_Y(D7P1`$=omTz}HK7pN)rKM(Q=<_JNADTjmhZCaGAoZJqM9^?MXI+p&h z2+?ubH8H{2Ps3#)D_H0UaQp64*B`N4b>RLN${$5P8~x!Zm>m2%G9;KQ(HgjMA8O^C zU=>`g;0n$aZ~echd+VsUmi1c{LIMdILU0R^KyY^pApsIB5Zom=G*07Aa0~7b+@<lx z-QC?gxN9SK<(%yE+xxut#{27ydmn?59wSY!URA5=`{tbAtSWC(At7z|vYq1=jg;W= zMvZC2p;C*SucT;EpXnK3hiAS8YQY-fsa71&nPFmx&t$R~k^uMX#5&x^U4A79P_)|* z>KNhzSp5zzv~MkJjkH)gQkpsk%ka1=ByXi=H?};8!^slsT@fi6HsfHtk1`w(fj1_? z*w;>w=LMc$wY5e-+t%Yi<hs0$OMlB3A70-Y%Z$ta&SYcUKT@3BWA~58cxZXPfhs58 zeXfk`ABO01627&20`OmbV@Y~z2P8(*cp#GM=_|1iG~Nmj=d+3hEh0`CId3m>@Jz#2 z47moxkP0uHdzmiSU6TA~=LL%T&nh^({im^f5>?BSFzoWpC@4-=)FFD|aTisC69HUn zM~{7aiLw>5K-!*9_yy6;Oy0Diqd6eA4;erkGq{2l#4)8Ab9BxP^|B&~`DO#Fh_Cd` zSSI$gmfxF(L`npEIaCdBNOF}kje|Q*%Q&a;O<iQY$TJZEzxXQboT*85Q*V~c(y#rP z474vqp0cCz{!lb&LZ_?QG0q>2NF^WN@~2pIq>Md-`M`zT24)%mvg~pf9uOOLItWE= z6P3Q%hGErkxAaVL>6s$~3P@JxPVC>^PS3atI2b3hQ~k2uQhkyWo698?V6+^z*I|7E z!%cy-w=a1kkTcj>frp<i)$$;xk>^-iL*6cm0<8h^&qnm)p0{?Vt1oCSFM~F!B3Wx2 zTd!HMiX#McnyG3J3NE<5SC^H4i}OEEK=BXxO<#SVQaunn_v?M0oOU{%9X3+d1gUZQ zH9yk_0F=)H;+PWjW0_5UNqpi6Wt`pJ{p^xGVC3-elGp_P`X|$MZit5F$1HA=EMJQE z1W1Mqxd5?acrb<P2*sPi0)R_KIWNCD`qIsiPu2dO1RoyWh9J*03G>(;0V_SSx(Kde z>2J}IRiMND;Ov-IawZ2WaJWR529YShRX;)nCW7)E9f2+TJTLM2>Y4zu8d`jHdvqXx z;(|&?-ly_6VEAE3@Oz~Zu!WHUnkXxmXq_i>mto85vz2q@rWC}0D&n`tkB>+UcBCNK z3^^;T^m=UXLKfde7Mdr~^qKprxReD|{j4sgM#7F=Icm5^tyda#;+b%3q?|oGI-QlL zxqoK`kNf_S-90kO57)QI9}?dJ!fZMaO{$5*Y~MYL-H%2Ls2~bc({;HrvvLl<CrhCP zW^uKP>d8A(d+^_9$VSNc@g#ah$`+lGX#q#^&mcO=!U_h2jDo?;<C|7>IXcxoe1La3 zRXE*6sLNmDu3tQ{BBziNkgt0CF00eCUH{b(s6~fmq$!s0tI4LZqND4|ag62qQQ4U% z0?Ah$RB;cCzr|xpn*(`cy4(eENs<tu;UTKKpGViavLaSbR|Y6CeCYrFmy@y?`N=je zXtxc#xmop4iod@nPoZxQe)sp@{*cA@-|ow@|K0$t?Z0;xduH}uyOF&v`v3PukZa~~ z@(yGIddh8~i@<?YN?`84chV3~XXhK0;wd`I(*JT8{@?UOLLn6CUwtkwsFAvJ;FbI~ zDZAd~)xRHu4d_euKX-QX{qNo7UQGS7x)C6u^50v%>HhcjaQ}NRl3ex33!x5v+B4J( zoE4}D28Z?SJDm1J4S!KlP*~LDEhdqnAxubc6acy-h(yF)1aX#^_v#MtFZ$2#8_tKN zOwRd3KFL`he}Xm-WgAW0geF~G0=(Sa-E0q~NTqQry0VJh4PPd1H=0Bp(|L7r`U)<b zMnT06sfYeGx?yjDP5Nx6dYRvD%*JVFcDLxF*X_|EYdXJ4xxw68rFl?X)a0iuo$i)> zfRif6yVj<rM73L73QE+VF|Vx^g3?6~y%x?}s4~u<_<j6l08`M%dZIJiHyKiU!gqr~ z-nk-K`ctx*B82q8y6W8MqQP(BdfH!9808USHE0<)ubLO<+Eu8_<A&FVx$y_uca4Fb z!jfFK(t8d2Q__u%1L1@9RLSAIkO79A2Uh;GQ*v7vutRRwGxD0BuqkbFmmkZyg95Ai z{!ucG@UaYK%Zt5P^-Z^&q4-wj<_8%$T+urNdZpiQeAg7ZafJRQ+~{_>))U+Dq!g() zV|&IjCSvQ>q#ZB?^r$j4r$^9(YGbyfla8)y%Q^Ct@jcHLU1l0<cF3Fh@-G*fwP~pN z5}m$!P_R*YH{7~bo6nP}J)CEem(LbyxO5s!PWQ6FF5z{DtKD^*H)eIKJM=6B=#yHU z(@<rw8kZ%}jnjGkx$DvKV=a%>1XJK>!7Z=uG(Gr`UFu!8zMc6pUgoHTmb(yI90Lt4 z>uLuv3xUin0W2>lRo$}r=Fz8TG^-7gF$8vQf81X^v^Hv@UxDWnz0Gc2=Ofy)-`}Ta z_25nrO6Q0hS>SZHcqvgB(?`q<aCM*Y`l|6fb^hXkY8Up4<3TLpNbN5Y^HaqHLf>?Z z(*l?8TKwFc%XLQO@tCzmTs0W*u}EK_>QbnzayiYR<1uJ`me+ek^&S1E)*>H*`EtV0 zcWL!sW5=%4uICs|*G~kFNA7qunSjpktPf3k`uLIE;aH&7Vtw*=cH6DlG844RyK5y% zDoTWa@Ze0~q-z8Qm4@h2>brM$_4Yme!@2hTcxU^QNS>U#Tu1X0CNFVu$LkHyn8^4D zf;%6zBwwQi1_yV7AjjvI!g8fD7A1s&L3;}t)Uqk97b)8x#6Pl{A0ZHNn?K*_ug4(1 zw&=493JU%t6@c=JmBOo#x%nl}NtF##fA6B~!M%VOI^j#_MwF6cq%b>j5*1<lEe4={ zL9IIJ7D-Cz<N^`->_*tQxSwidNJZzFG%7-Fy&oZ8>>@orZ1=jmDYF?=GaO3o_iSqX z1avNNYjqbv{WA$o!L0hiI<j3tOYR;d$JW-4ZbHuXyYgFii&aL<%`&Nd7TovS6DdXP z9i`2(2FDe+w^y4q8D@mum(%HJa9?-K$H2jNmA;+*N<ako5S$}Tz-q^WXL}^u9CVN^ z`Cap|XZz}gk1TbWktK2{G1p2(WIHhIGW0E%>O;37TM-E{(x!tinTUBqu4-#XZcID| z3|rT-2|~qwW>O;ZlqyO(U+!VH1WlS<0lgC<M&;)0kSp1JO7GT)nH%*<_^z*OP(2_l zY^`kx-^zWSt0giGSA5-y@7j4R+<dV->c)PT<z@~0L(D~0g~K8U>^EF2yfpy3t+p_p ztHnl;i3|RHjqlP)fuVuAR}o$r_Ft-&g;$MdgJN7y@36k@&5PT}zo7ER$QGYIX%=Q@ zhg=<v5BJQ}gv*c)!M1iw3QyqfMHV@^hil`3II~T*G)lpKweczlL>zg;#oQXhCyIsF z7x2T`q(~7dDRc|9D!qvwY=Z-oKZP(}m*lC+io9B$m+_BY#__ympc6{bd>#o=dG&lH z?m>Dr$E=jkG`-4fSgWM=m@AoyyEu`1z2B1NxT850tN6im3~RyR(1$^*I{5-t)wOEH zc5|cNKM-@#W@dSOFP=79@X;2bq-j%z3$*m;vFLa>wQKLbhtu=i{*U8g7>Myu9c+(* z6j>i<`%lvOt)j95gOv%8XX3zZuE4eL{oA)0YD#Le9tU^6H#bM;{3;(18i=T~GoZTQ ze5f557?cBy|J$?qZwCV3B$n&Y@L2E1nH`S;b3cWI=PH>>BQ)I_zSxFdj?^323TR;| zFWRBN*&qliO{SbR51SN;+!k#u?r!fz#=K0sGBxR86<HmRO>-tz3O@-yfBKkiVN2o? zvE{V1sW-SZoFZF{&7?|x_AB4xoe9F$SLa`XW0~~(&V=6!dvI=}XgTeY3SBuqI^UU~ zW~E5o=O0fvnyf+Cz{k_8nJ=HWn2`EJ!Al!R%0Eu{unjW^gKySEsX%qx1JfcPEyE8< zZP`@cW1mUU|A<QJuay<1p%4m-9ZWn~^<{S2jNlalcCAGqbG-f3pv7FQ&S7*?NoeqW z64?=cXMN==G-NjUW3y1nwtvwBqnP-z7uEo8^*=ip4LzMt?d~{qe+>lan{2O@XhILG z!)3Bu!_OEyS(9t!xoPY3<nAR$oWPtbX<jFDzjGr3rpT){G7&?iqb8v_$eM&}cDH7| z-Wv<`8ol)#Mh&O&{S4IIzPaMPy7S2_@|j8lb>n5?2Ul`-!@<=CCB||!Mh!4r(BQzY z;P(C*x9t}5%9P8&W?XO7Y?%{IRIc=TDhl~paA`Ab&HnnsEe!-VsNZ{n8$x<Xq2JX6 z{yaCZnARN%Uh2(CbI(zYqJD{ociey24AC1j{SozIwwyhM|DZ8kn;OVda;)^qrG|U8 z$5(f_!jgaB^2PvIjb2(`|7T!ONP2AtqUWOF8#=Z%JBQUQLjHRkKCrR4zk@}%nMck1 zU}}h)uD0SU8wQ(8n4E%!6eK59v>%9nv$fkgp0+wOhu|gh;p}$*lNLb_<drs|#$W7b z@}RnVH6rdJtalLVP^X<ye}r1cU(aJp)dm-?g9$io2>8MKThKK3RgY!&Pw!pJ^s=%# zT4#>aj{0n6ky=gj9~$o2@a+zXOdr~o8f(kIr6a@eii!kIOCkIV-dY9?f!jFf^{&1w z+piz=1e|&V%9`%9Ri-%zt*2+5+)>8UIh=9Y0whnruMIb!Aj=A0u=v0)pRD{?#b<Rr ztGX3(GtA?&zG!%IdwXv5nuhxOTs^!xslT$(>X<E-LA!TE<nG!4*ol$Q9a|LT9HqsW z<0RZjJN?e7)wHTWgC0hgIoe}3{1A*n<`Se$ExXz$7iYD7l<^_<9wap9R_12JhtmxA z(r&s5sZ`7Fp7giiAG_XYWX+JHVf)+;da6WIZ8G`Dr}cTg%+7RSyM4{#;5ycl?6+@^ z-J8?W9=QE-B@Z`k7sJjp(GQkO2P(4Zl|)Q_Y1YVCn7*coOpfk=TQ<Fzqo!r`!q+Bm z&-7^IuG~9v$<I1FgcLGEqvfdl5n0TS-ra;Zgggn38>{+?f}rJczw)IQ>E=AgcDeN% zY$F1=N_eyMmKXFe-N?l6E{9Ql2Fm<93Ih|`aXYle>7ch;ba+rLpVR524qtSibO)a1 z(Yb1M(pg&`FO@TLQXoW6ciLVW#hM_MF>Sql6indOUhMjCYN^4yv-WxZNuOX1-5zAT z7q)(nb7Lc`W=c2Qd_x^Y?Mg6rAkpm6Ho9xsED8kA4EVujBE1;9(UR-I-F$lpA)G8O zgdl9u5Y58n_-J*(V>(4DK`6@q;TWqa^-K`F<Y1OyAtRO~8CR;~p(TU_Ki_P1In?d1 zwg_oDK>kUUS^MqE3cv}0-MiTUmT2JKlKz?b6Ud*tdD_N*q<~2FX%h_TP#{S$|57!S z`3kwNlr40YA5gE2m`J4UCQTgDEDP{xKF1W6zTJC$DYdb%d5laysmTO3o-Gk{ak{VK zMpS{iQvt1!81D*I0VY1_e9ih@xDbYgS<UQBgT2|?r@J!;4Q$=A(w``}nXx=^3#Xow z;&x6iKM<%j(@<p&Bqsw&+~CnT5|_p7@4VLAH>7(STMQ7Llofhm{x>vlj(c4!Ay&O? zLJv3U-?iK^JfMe605B<N+h=Ek08a}tVAW+96-cJZ5BYZ8_vQH*aMBB#7wu!%mPWlE zF8|ngZ$EQ-UTu8aPf7#^L-r?6{4y-iP|^C)+f`%CHZ`V7q|Myn2Wa=)21IFY=Zp`8 zm)MpKM+~HMHG(^CWu}9Ci5#Ym3tqG>WvxhICh_-p(n%w=x=8LxY@xsqD>vS@aTW4- zo5ervB#>%jJJfX6Mc^t#J`c{aebB7&-<ls7=raV+`d<IQH(1GHhRd2~(7_u|hivV) z2xYTHl@^OZRlD52@5f*G`+Ss)g8;bWV`pcpOHo<CM%L>AL!4_rl*5`^@Ap3`eJ<yl ziWnRYXZv@mc2%3Lah^AjW1-`?InGqNP7*m^{!(J9E!u(nWRp}b>M$*jt%D&UzQ>)2 zsZz)7S1QRdnjSI`6aBRa;rH;kc!C-n6c8AO9Ciz*S*X<jRhy$J?O-;)<@sPYe6T1X z6+i>_Alu~zp}O@xN%u%wf%B(plT+?F{N_u9aN{q{OP?&*DcdmLIe?fDczIhrGBbUe z$LFg}L^aIO`NzSmdljQ0BwW$NrHxy)!#;m%o(j$5sVZVK`y3_<EN2g^1<K)|O5>^D zQb4!v=-6g74~h5!HGukuNaxaW$o#^A9x&&kp9klBZMKu?1bY5xQvBgby8ZOhzn&qG zKH{;iN8n*eCG_lAdUo6X)Bb!cA527aDGVWX1NT50qGO*{b=5FWa1+#G#uB)Hosck# zzOx(`z41*??`OMvUK11P@Na;YzzG%t3tqjwgKNASj3(Nw?jIiR)?v}9i7Unn3JQ8n zW90D*)(#7rk4xwr1TV`1@%-0J6KR#{REMb`&%@eernvQb+TrGCZrU4Gq10^%?4(2V z(tk>MQ;m08b-?gD7GcK`g^#2CfQRGBgVtJZU>e!EP!IE4o*Znd1|jV_gKqZA<zJHG zNBiNxP7E6??za|fR7^y68i>=gc@Aof)rWwqZ7<kbAF+0I7^P5R`Qg{sro=O<b`-2E z&_3eK&kuij0XTj{_4#MUq`(8(4_X5Po(4&NMu=}Veiklp&H%&-AWwEp6sIU{xiy}~ z5?{m6O3Q4{)qv+puT*TfN8B1Tjijwrrp8DhDcad_<w#b4DN{6cVk^G|!;f%&G#u3T z^5sjt^617Ae~ca3s4*vTdb1k3lT)<!xaa;CyYHYV@5ia`fMou$6D4=2jPzu$Iz}n% z2Ga#Z;#{g;j0b!X6L^;SMREui)ZySmc!?%}>L{p6YJV&&+|8IPfuP%B2ta^my<Y?q z@`D7LWz&Xy1GSIgl_pXI++kTAzWO`ie}+>sp^TZa+833M20t`f22}SWJRH(bmrR-g zp|lUJquVc^K2|Anqy=U}R#{%amUJSEdCxlre}&eeME*3@(=Gj)Spu$a&&AeTvCJK^ z4)xZz1}n{%l1rN(5dGUfrKJk~8m(dn@a8bUJ_3S5zHN+9WUM-Zf%&)aB)InGL=y4p z2A=lIMFb0vQMKy_E`4Blut7&eYle=*5D9fu<X&<z6=*!KwN5)liFAM(r_sd@wmwWV zmTPoL1yZkZuu$VL>x;=`5-O?QnUZPWcd%{eR931(1@%_oGN@MnNN9HT?|gxdpj50W zE^{y{+<}FHfA;HpryeyseNrMVCy%SrT%}qSKz{e;AT<LJOMv34aaw9^TQ}ccxDZVg zsvGu<TngR3K6~Iadp(}+E(lPi_ojo13r@SC87q%uZh^6h{%byIm>L;&#y{s4p+p}8 zP;r1)Zf+4)s|+{_EV1=p81C_J-79c-9DhWDpN{QXLV(2nHRqw#=)nyZAMR3JUj}Ag z0**|-z24gG*XZ`QsapWj7h+mCv1B3MAh3nx%>Z3ZWH~cL>ilR(6Z&hmiv4-=@L7(q zW@qTM#<Ryhr=smm)S*OUW$v2J4!iI5Tm@u>PIP`9=JQpJBm4r34Ab4E7NsZ!lWs%% z7=@RNIuY%6Ck!pSgg`grlid?cUk>UN4`!;y`}U#0t>HluCfeH+o_!7or()uY1z6=2 zXr|@bVwj4bJ8q!J+|$Mb&2p*2Pl+)R0!TO4*&?n$mu!Z){Ip1vrv4H2BTu;oGY*qn z<o$aA!FmS(hSS<5BcJac-wLO#4c9CTXp=elrffrjp#{Jq48F*(e+fO4Sv%{iDX-Fo zyMY1o-i!8~uG}*K(zYC4rj>vc-qLW#g$q6WxT@t*<FM%K)|T2h2X}p+lD$1Zxxe2# zoygZr;;S+{Jv(JCHyd6WxdBMQ^<~n-YMn>3SW4ww)<j<GUHF}k|NTA3^4%3$v07z% z$LdP`{2?{7uyExt{<14RUl+IVZBL4aTl|}T<&hF;dJ;?;<z-hCcm<p6a$p1<Z}YyB zI67o^y0{(akV3o0<oM<#H<ZHZ5?Df<79)-pxzOGQZl>7Da=5TQpnhc->~dR_l#LZr zF7kn2w}FfXT-M(!G69m~CS5}x%VYmQdmbNLX7!rG71)Dx{*EMn?&Gv;G;64jC@uWX zz3IyEMI<(M#whZS7dW#G_UguIGx5gAnlo|SOK#-h+yvE(0Pnv>i?cc&X^p8iU?F&G z&GWu>(DG|e3@_;BK+t@l!EesQ1W+D+L_x{JyK&S!eoptzGElKc0TPDqkY-?eYuvKC zY}}ZxO1K00Z#CrIs}^ybCI(w6&+q5Etd^^KK)^vrssZWmgs65ebZ2#Z_^pcN%rO9I zCc_8i2#}j{MH=gM6>(j!JE<g!6WRo^1o4Pu@LINQR+$=0Fp!_V%j2s|FAE44PE*<B z>XN;pv<n|dW)I)zAKM1&lo<MW{TN%nas91GxF)#47&StAzftnCVh2yYS5k8LbrTd4 zpmP-=(r`7W{_-Vq+N@Su_<0hS@=SOnK87A}SHSLUFP;jCvq37t;i}dxdDx-}tY(<( zumLp2{+<DJjCM6u=$HFC`&vnHbc35B-Xe`gyr;-BmQ8S>xG)ktuE~+^K4T7>O@mfu zY@wTtD1nE*!rSYn=9SZH0=rc|gZH03<Ca~cjI>+>UC2;}p3N6a8m;N+_mf_F?j>u0 zps=M8k4wQ@iI}-F_#FT;eSiZC$H0er`#0yV$LHJw>SfP8mvf{xOHjx*8js0=K5ZKj z{7OZ8os~xQmn<MCqn^Ee-yjeq*@tDKrm^;l8!X)0`w4f?-uX2E;SLI!{oG}w0$|IQ zjqS?^P-0+?cyzh-M1>1TJP5UB2*Wi;e1e(i)l(u8QaZ);mtS+fQTbSA564t0)$GoC zMy|_305B(=Ee4g2lbFJ77m;C9_-LiI{{4Lo3IYM^Hx_!OQr#u*HyUiWKffMVZ1NDI zBlA^TqI@Yy%yM7kv*XilKS}+3zB{GchH`i^wyXb3c+F;QP0zY+fhSpJuF_mY%4G8< z54&ArxzT@gdik@0!pk>dFXX?<Uu{KUrK6H-s23{%a-wRg<Cc?9;?Wyc*3p-7(MKbV zU_ZJptm*9b>$6{Tfvs^`BJz5aqoZ;Qw(vnf=2**0^?`T^KVJbLuioxO%4_P5ukvf@ z*6qj*@HxqhjM>u0H8#*gzbJ!ReRAqz{m~54<?)$5*72p0){1v4RbXIX*ZT3%LR2`p z_0T{e6V#WM{a&Y~XEc6*dalX@w_wd*X9b%OyLCCui7cx3!>3Qrm}-)^wOqq6_lNjb z%{I+rqabNeGS}$aTi3O<H9)Z0@IF{{yf_ShB;Je#0J^S*TLD>tQvm??vWjI!=7bWT zjCw5ToxPz-5HiEO`yNUu#1vaQqf*j*gX*xqWGm%HGE>S;?jaN@5~uO0c;cmyo3M(a z^JX?x-Cn)A<4Gin?2Qv|)U3HuSMw=yX~Q|@^pZ2aA><ikRtiuBcczO)8|&@M)QSbH zhSTbHy~Oik)NlZL?Q^-*Yy04Sm)BjIAn#K`%Fm*+VQlU|{PE*Q0eHChrvNO>O_yN{ z?$efa+2j6=d>#^+66ns!7f$-e{<oSnx;Wu?r>Y1xHm7+BKL$|rwSG$?-Q>4u4~`d4 zoVD#(1D_pl!0=gWJ%sNM^Sk@cvkguS1@2~+YY!u7ScpP_Q2?sFK|QFui(PkCA{ogO zaZ7bMVNJbhj<bR;5}=C#`CDJhDRrZxgQ{A6)OPoaG%@$uY_o8eTeyJNr0E-G;WSVR z-$~0Nn50U3we9fIzlp`9>WP0><9QdcHB`{`da%azeDO7)3Enwtx9DRDelc8D<NR8C z(MM0nej%95gnzy}xfuyRWS;KI5Fo>nj3vJnB+=v>z8allV4}@vzur#}1d}b_TUlwr ztkYckAhLHpSyzvziZr`#{enGLG-kN9A87c%dsf~?5`St$1;MTR7s;{Dq8;{U`)@x= z(rHW=+lm8n4j<`ao`RACSHE(xuC^iGHWbWm&_ynFw@Q4mH>mULmsvdjwGky&Le2hK zVd-z-aC0rgCxO?9Y`Ec!?rYNnUFCf!c$tcdJs6heOj)@X>vCWO1UU^p*SA3ATAyS+ zJh_9BBUzm@f~{r)RyEvv14b^egpN6i)wy6>pTCDk?cf6Ntitu<TOPqhul)Ia%)uzU z5}+6A>fo%2A+O)O_Wj-=7~Q>2!A}#HmzTFrhUy9sT~JL@M~5$4yMr=ybNch}Zp{)t zYLb{}9so(dVq%Kz2{^IUc6Jl0u(gr+EX8083J#Wh%fLkWhPSS-oyrKdp;I;2*D!qj z#1Ea=4I{1TK_;OLzKA8HHy+E_aO3fS%E(U$B$&6)pMLqGA`#gB$wpo;d-`hhz{k6d zQh-dhuI?5fPF8gqG<L#|A9;;kQnT5S?n^9pzL{R=8PKNon}plvAzg+q!)Sz<N(Po` zpSy}34ENK#;oXieB++Ezu7mq%n*t}}TwJ?;+uV3gj_<$dV5K#B9UOb)QQFXozux_Q zDHq6L#g_stp6-qPt_c~nwZ7hM@7LDX3pl#n9Aq%LfMw<p9o?rzJg=TVEn}uf17?=| z`}cmLBFYmWgW+P)>pS;~3fq97Aap-FBf2=)ulZytfB>$=LJzw1%2_<-qS;`J>*qgG zq9iq>r0RCBzW^yIIax#A^tJL;6KQbYT*F;cGr$Unw62?B#!HpYfcKYkW!9@|mUTDE zGJt853FwFyFxdL#^{3BLdDW(R>es>^f5x2eijlZdVO8IJ+7z$!umZU&o0p~gRiLg9 z@)sJ$(5#M*k@}x&FVK;Z9H7MmLahF7?}!y!QTVykuem9$d;|FS>Tmr`y{PtIP42ww z%&$8`8V9uE{4Fv+a_FGLL;)qB?iNqzC++T8q0ki-&@pjs`OfjjeGn5PIrg!H^u8<@ z5mr!8*kJXbP5=3YiJqUhd6_&>^4Jr}t2;xctICFpjR3u)vy05yQIhAz?Te}vAr7hL z_Ck^(fIsrAX98Z5yI(w^VkUZ7?M18L{y?HrGn;3hd}=&rKK1z!<?EY$&|;GhQ0D1# z6=~Z&{}Gp_ec;YN<<d|wa_5+ei$Z|@ohr4tZ%%N|$$upR!ui#dM7eoL@wc}5pyi&h zm%PH#(~gYAB#d7%tC4LsWzLpTd8)3O1O*><nPXPtkdw<QImj3jTy|mjv=5LI1gZV$ z*C7mD^2B-#(9+$Zqma`fDNyP{ZJ9{$@SU2L$`^U{{FT18VS*JkJ^f|nrQ(nPvX6*v zeh*=hoX?HjftAqok`0X}zkSR4d4=<$vj7OoviSrsS;>aA_ggj$#_sda)VrbJ+{0z; z!Qz;#c^=wANmm#EdEfyg-t@e@cwmGAfYR*da$9k6G0GGVTbJg!=Y(4R+1^}?3#hrV z9%}cYX2A-Hx#@-oIG9l1IH6N-wL+3<tDv8`uqiC?-;}L~7Uv=(zZC(|`xH;a%CS|p z`IfIzh>7bvD24w7C;*&nP+{q@5L}&K=I{0Q73Gix2S_LqhKemY9;*U1fi^%4RAInl zYIgj6TX_d1z1BOEjr1vemAPiQn7EkN43jjxtdZnRSMh+-6cH08YNznBX7PwdQ3Dl$ zbgpVW&azqP=DSgV9F_P;DcEw#V&<K-^|QdhXB;LIM|q0Zf1te01uA@G!nEonj^7g2 z<WEjhWrzwyp5Is*knfa?lXA(NBK*^wzoUtVv>8^70!1_c)s_;u07pA@{{#p&huK&y zplZ;FTr#B;K+$X-Q%412?$7@&-pd5}Uhz2F?aMDN{-wi>cdR(L$n<9=Kri+T?ti|) zE!mx_qp}|}O$h@j^ljTj#-+)IX1$i8{^~csf&cOmqFcMh&{I$iycTAS13)lDE2jb| zip@{+SfHr?r=t_{Yil1DPO5G0%c^JR51M9++302O79=eiQgOc7444OIKyuE~A0qwd zGut+Ez{XG;8}k1$0wljxOiaB~F!|$RlrPsW=HN_iYx>7$0+Nsa-#r0?8jGa=YHQ@q z=&#PbodfUW^hFQZ5}+RZ@1JCx|9s7#C!i}GlS64#zI_^}1jYv@z($c$X+8fd8VL`q zKV?~kqJAgFFcTNWe{RSmp~7CfnEK8h{Qg5&%KSbx9bLsgohCM2v`kEZg01BAfBoqH z;ckY%_x%4}U&a3icVhe7{<9$^_eEh~x>?4^!(A6}HEk5(kmI-i3ch(kOzI{D-)_R; zb?<gr{u50CB%FS`eLlOL@7mosn8>c**cU+QDUDJX`5lhWOWA9k&W`lwWG_>Cj`^41 zGJoRehraQn21?58lM^)Dg#eP=uJc_I<*K{`{>XK3!)3}}O^eR`=V6OkL9vI&73SeJ zzvuO=31KStzp`&|BVj^xbhHi&5m0Q*a41%Iv9>NN{(H#&&rf{SV0)XLtl#bpSM^x= zMdUg}`QdHrE*1;0#tDJz+w~RP@?(SjC-i()BiY8aOEZnzhNVuIxK1Uo^3c;<0gl1` zVWZ;;17PaMs5WuylM{1U<N)<bzG}1JK|}sY%|9&cUoVj?m)%_4`Y>K&MTo1^6i=_+ z#K@TyrmSa-OCzwjFRSZu+$JxQl-mAUm&`@f=q8<N-L$04Cr|fKMuS-8ski}3Vfstw zW1!l@W3ecppE5SW0q7>Pr+5IJ^bSps?&$ikehR03`<4=DK5#GNXolm5-ddAn$<B>J z$sl}e2Yzb(b61>K^xWa0^A2MW{drT9zb~)Y(7-q2KAJD4G2)oGFfp7GPVUI4Tdy1h zHEC@N6lZLAOD4bmK-A}#6LY><U4p$Z$N6Y8TO^l(<J_^4L8X!)ZP*|15GbA+a#$=p zjp}{uIlig4xx<-txFl*F=<^2fqGU?KzD}l4(K+y3yIs6@*dOdL=UP8@Hu=IIgMH_c za?$h>H?GV82KwjOnUf5eBg3V;iyP5bCeh#YjM3EV3I>YS5IoH7*@5+Kz%r-MSs@{{ zy;sw#up~t$1hpxSak@?gU1HTvL|{Q!q}(r>F2i(Sncw1$Dhs*%G7PIFS{kHe<On!O z&n)y9Z5veQ1*DdKt=-PWeo1O1Rt0>2%5!m52}0FdR|HFAL_6ILq#&{CigMQZ?g?qo zLKA}Yj{$TO-A=oi-61gYm4#2z;<eBVs?d%ZOpw)z#$(UlR@J^Ez%VNj%xNtmie^%7 zw8YW{bk!n|%Vpw-Jptg90px#!sd)>odb>S@cYvm{H#pOM-_T&1ux_{IZJ@%abWpqX z0w|1N#sx1lw2d!e{e3j?vJcE{t>y$?cg%z&$C+;B+A{&G|K1N8Q^ks&3`@^y9l)C+ zfaPD$)!RG9qk?D3m;Kw3aFlrvYa5Ci+eXg9i^)J&Y-xtQhC3a^y?{)-Frk-9{9-VT z?=ih7nkHfioHC7*P>XN6Dgs#Mvrws*`is0%bCGH$VpD%0`32w!pE7W^c7B9VDZvVS zwhw-?>x{pS&r7hxMtjD0a9bS#EK%+n!ot)xXL}5@vWPM@91A^G`3xBX`nBZhb$Cv% zA>Sk`y9FdEKWULe>el1pfM1}1ZGZg=Y{>SBy7BV)`@>gn6@xszpGwG0bS_QRt4!J3 zYc5XLAIuTc)#E)!l-vI3eApO=u-$l>AhmTz#qu1-`F-Rvtlnlj`83%!)wU;!o&B=z zu=_)tF?%CXoxJXMD9t8>Hs5;)V}OSQliD!$csaZ5o*5C~%PY=ki8)z02rIkmic~tz zKLHImD*8uI`|2xR&i$W{r6D#azoyDD4C4y=b**iw*ead#SA32GU*{OE=vwD~%p`Da zY)sz${JEcpAWaG+f(SBXA0*;@)ly?Rw$R{BSz&V;fR14ZZ}N$bjTz6CR4n5Wq>lqG zpkl#w>*{Je&VYyD)A~+Cj@1Q|EMvix>UB@rRyhU>0aN)h+25XfWPe2Ciwna!GX~2S z#%-NXHys>p)DZXE2Bm7-@xwE5Erm5T`;vl#w-<Xf^yl@d?|b8Da&T>4cMomwyUEUm zhbzUf)MgWt1Ll0DerDU1EgJ#qvz<1*u#Fkj6A1*lCPlga;i>48t)F_%+&0<vd4av) zo3ZV75)f#=OZdh)^{aMRLLD?YJNyb~OVhrH^Oy@nm^M7HxEW&n6<63rUk;n`y+*wA z^s$=|XJ&-pw!;$X+U5dimV&sD3@bh3;do#y<Y%8GlMd<^%eqoOzfOe5C{NNVQlLr1 zLPCo8rRhg&-@xA=KPjVON(~B1^g+_Oz9}}JX^M+zK|shE(2{ZhHQC;U-B|;Uj2AC{ zg*R6G=!M|PX~?6#1Gyt6f%lDW+BOvwW}XQUy%Zuy>tH^Od-VJlOk7LE3u0G3X{tXo z##sxk!~S*He`5hvt+Q5lOZhu+>cP!UUl3_#wlTZih*o%1b{i2hpocPieqn_yg-Et< zNYRpcK<SQ&(gB;JEhp99+6A@T8PDmfK9O3~>Pmw;^C0CQV1dhZxD=o8?9Ndw3M3<b z^#rjRdJAIg2~+emaJS1$BTpiAPk%_7O_B3jv_4x1V_J^Vk}K8>n9f#C#NS~ZuN;%J zr<Lj&PrEATin-{!*%_ieZ^#j}jVoDAN;4X-H(}UU<LK&dNAkRF({msf7!agF*0nAT zN}V^yEn05!Cw2ipNtc9AO<u%BCyLlOQxED9BSgd|4369jnh+3fnL}LfxNaN{Kb&S- z$S7#2bun^l!3GS^&&tXi&#9fY#xo9Nwf-kbe%L@=-v#Ncw%>EcqBtpa7GaWLJa-7l zBO~A-N>}}|=r?`8G#%wavpK##P9mngIYdgj5GX*wQ_l=}R7g7YW=5i~H1!sy=euz` zhx2Gy{B$MJz}Iad^kpo0`1%tUBHjo^K?0&U3!1j>U&-)FGbHwQHR$om#G@N7>&=p| zgEKQVThN5$$Hphpf(!>Q@o=M((meVc9H1!x^+ym86x=D~&)qPwhQ$(>QqeL-?Ym%| zEHc|}JK3YmRT)c}8sZs35;RdTfm2vt#zaJcZyQK3QD_NOH*jCdDS@&V3^Ny;Z}B_V zwv-rk)D-03%YAxQF1K2B(cQkLReW1olZ%qQX<+Zv_g6LH_p35PCL*P)OzM@g+G<PZ z(^$2FBej7q+j(`j8X7p8Z96oNu5={{*STX(R{LIn%npalkQ&P3Gdk4lU&SR_ONmv1 zb1fVf{cmI#FkIPWFV9w5^PdO^W=0fJ4t5yKCzRDiV_9BUSF;kWjIS;&O!lT&az`Jp z$UgaSLv%eXy>u2L=;X8>oW10oqnnZO5|5M;(0huKNxUCDGPMA|I*5QUfK+<&C9kJy z^2&66wt4gZi0&KcEHqwt<$Yp9ES8xu=lU~41d$^k57iqlF8bv3Hv92492=X+w<fn! z)$o#lyJqL%$Y4{EcdC2q%blRIEo1+#@zG!K?l%<c$-h=dS5SBl%182$Jb$I9RGuj# zd3IAz>{yiKCtj}>-&B~~JVe*gz1Y%!C-_Vt@tO~aJiw!!oMj!J_S`C2m}!d<<#iaK zMp_jT+Y<aGJD#36x>$lSU}vF2o!t@zgT1s~j&_|Az?LY3Wyjd4S&EEPmtzF-yZZL^ zeFkbr@21U4^09dY?OvxY!Y`13(EU-x*x1b;R>Tp4+Wn0~UO_&nw1&n3>JwI+q==SG z2GQ3haTgLo-x(jQGjG2T%w1>>pB^1+{@8hy5+V1uMPZbb_}bk)1-`X!td+zndC7_f z811cI6?!va$fVG2Z|S8Mt?jX`g&-3wb%l1K6z@qC7Z}gI9{CVo6R8c3P2)1&*?MG9 zJr|qirY&Q%Bt%b-IXiQ2{%VUo`6owPcMmWaejS@&TF>G>cF|Is%{k{9FYxzA0chwT zuuu%754aMFR3Nb_(91Fl7!w|oW*;B}SdpZ_CkzYIYqPSN>TTsQ{e7-B?DoWAU+sBF z%$M=~XZPNxr!kMNX2ffT6wTN7&ng!ddpCF&{AeRc|G9Q$x#C3?_zi}ed=g(`$R7HW zO106%|Frf^w!sWN^H6dLC5(=SI~*v(ArvXm4>#Wu`F;F&?mW;4$2uD7*55rRFzR2m z`l5=mUQ=0=y!K;^?^k3%GBdRC2d|`(K14COsr)Z|uHj(rpkmdcwoXG)x&vLp#AdP! z<2v2(ri|^Feft(%#yviSGmgqaD4RwxD=^d1B*jmUIbWvuUc_l%q+eDkrh;!t43zIv zfvS>btiOp(obt2aQIHr?!^m`$A4<`!y%IM6IDOCCf^ROSPtuBM4LoA+eD&*(=I?F7 zHk9O*5VNZxyZy6A5Q4WAe2z};*yKfTSKDLWxYp!{q-=LL%g!gtw{jEr@g(c#E?^RV zjB#yjdWpqe`82<#VaQggRM7M#4pK`sDKxLB=ru5{LI#RVEd~tn&8ty?^sZ9wjM3<9 z*FC=8HfXV9#iLTLi^hBH=cuw!K4<>;=7yzGTUH|sFQ93=o{T}IE_D!kvA(ktRNU58 zm0~f}6!VuCU~V0@{&C(gl$RiF;K4mHwDsv~t4O8U=v8I+{(LbNnzH3u@TYMrPN=-9 z3G85%d+KsKD7gy%;ZQnfI6>JWp>r`MwBH?YaCU#ykZ&`4a7+zC<%a-LRvl~j>i(u* z`|667>!VPjt_c&5F*Y{U3fDItZYQIBi-*@LjZP>~ERxlXdH>W&2VSQqkFQ8e51Slz znToiGk(?d!cbWRgzsSj9YiV&7;wGD4Zw{?m9nJb`*Or5oi8ur7n6zt6kzCf-oc2m0 z31su09`8@gYAlw#u}I|P%UxGgQmO!w_inv?n}+)AEgy^JteODB!P(9NqNjCK&etyr z=LiX-#vR@LKGdvob_XM<!SmT)oi{%_WQX$q8|p*~S5OxExX?^XdBdmAQw1gf4|J`% ztD~tHBKSTY%M*$wurTT4uxePHJ@I4A$(x^FO{HwPZ(mr!0&azmR;qERnyG2ymGW@^ zMXGbOfkYW+VQwhJ$eA=eW^rr^BNOqyF)N<DCYCp@29=dHJ)!XQe7W>=BenPX?1}@$ z(^Bl(N|b$?{h)sq7-p{*x_fRO6XQX=KBIiYQ~n|UrPsDm(6JyFg__E>uEaNPi(Hn^ zl<3=<N2cqsZFA-4)AxcX(iwDCM0g|vt?l9xlCrs3mFPZ*4UG)}Apz-f?F1L(A^L~+ zNYT-;<*t)EXhb}mM4=13=C8QapBO07AAm|Yw}>!KE;qv{roXBw$ru>C!2@%LbQQeT zl*K{=F9~?Ajj?G+Q7>o|=Dz3_6Ms%jDz{!sh6nzBu`A-YDC1Oz8{A2n+4{u{{!W;j ztl8`vX<A)R0u+3<f4e!1#ivakEGck5;zl!AwoqrptnDEjiFJRcmU5X}EkBDN+`g(a zecxW2s2LzDLq*ND7g8<RKcIV8y@<Z=QEaPv8D^0}xKEjD^J|16mQlTHrPb#drjQW1 zqlN~FWGusK^*pG3ejZMFQFZ{-`iMUG{)qS?$7t;Qmf{Iu@3%2U9>rEPxR?Cg-!nwd zvwrMIOURne%__GF0OP2bsO}wU{wv)%SFvRQgkb2ST>SAEo`XMF<Ua3ybUMo8OwetF zrDwdwm*2IQ(LO?5?UQf#vr9Efvqk-Z*Uc{#EE4<)-Rt|~0NmE8go1Hv%6xw_6{>Z+ zi_FXxOlQsWYM@)itZp9LVu4_^D>T~s^XDSWM}nc8TWS_$=6dJrh*@|FdK~X-YmTGc zoT}qchEty>7w-#%sov)`pFZRs(!uIxKMuIHgm-yO!dUJuf4t}_p*4__#hUwGSGE<1 z06Raenb<qc-tgXNa&~kaDY2)Ys{$$R-b^tjA}OFHUmT7TL$2E<*|?H4Ws*MG6fn~Z zG9JL}H1MOI;bZmlTF~2M#D|D2ENGZ9EH~M5R|lcqXv{axo%nXV7P?+DlOG$qwp(~O zIz2Zy%PVN{FjeCd9*+O$E<&-dR-<>+vYR3@LfbsFa<l6UahnFk7Hdd90H)Wa%|xPZ zdu!`eiT9M_uz^fKI%ZM^XL+P)0rJI3dvyK+7)GkH5FXxZPs|+^lhQ7YbThqafVg5M zPX~;xIS#Xqi$)YPj4=|PA0OU-CPMb{I*NGJ=7XeCWy1gDV`tG)15$7jv2qni%v6jk zCg#EvF~jHhQwNQ*1u-$M)_z71)h81Gdh3-|LLRIrkqgKsYDthj+BoRx>wl7v(3vVy zMJHtQO;3LXltWb-99gHeT=of3Ko|S--DBC3va>m=5JL^{qP_jd?&<U^$`A_|Odf5c ztqnO<)la)Q<s?!P4#?6t@?*!B=UwxV9Sm*1#i5})|DJ)N_Qk=NSZSgc8;83K!$2cU z=2#LZ2Fx+vydJOA<-n%kTqXf6x_Q3x(EiybiZJ8B<K-J|2gIyO)3N8mX$8BfN!k*I zGGwEx6y~#yX=4>OH}=gp12SVeEygS>Cf42TY$3?l8B+0FX`95=bZB>!Q2Fk^<SNhR zPT<$>=6luC3y$Y|PCM^1lAir^9X1yme46&PhMnlu$!j=YR8w+bwzU#4f+n8EKk|hW z(3V=QSdqxK@TKj7DJJKWbBqe@gSP+|6nb9Yb6Q$P{y{uSoAP3<8ZQHS<!O~vZIu8h zl>guW<on(C`AdSQ@8mzzWgfT%RM^l1PJjIq=JBiULQCEnxXB#)(%lt%)4e+-#!t#; zN0)`?wY+t80uLu<k5Q0c5RZF$G(WKFH{WAwlUr^vY7AHg$0?aT+~;aXXj|>neIK6u z-GP&p6obUvD^_}R*#?`FQ_NbBz-%+__5E$H@HiS^HB@xWJPR})_&vHfYdQVpgLB-Q z-|;4kr$)2hft{YqoN8nkUznU3uVk*Lz8IRkyB_s5p~jWbjO*}q&oVv`<=F8`R&-qD z8<Pt)_<)L3qst{V7guZoyHSNfKOP>lmQ*;Ipz&<QCgEYO)9KdP_BbqSm$|A%x;>AD z&GzIiea$09)f~B13XY(#R|me!@Qw*PSUXY-CQ6hM<Hi?Pw$)azcquXJL5+8MpX(ua zK$}#n-RX&|_q&F>p;P`@vBmRkO`^|y{S@v5)hi6ycdHMmIo=|829Dzc)eDs0WRn=Y zw+VBS%*!jovHQ_%VAQ6=VkHfYCE-bS9D+yGTW5#;NoUxR%VxMcZ5Il}W;kJSZ>#xr zRuSnB8JP`Lk_v3v;*umyV<(jclU8ldXx+5QW4LkZ6gp_A%Z+DIVY?A4ujZ=xuJJo8 z)T^?j3-JihkwJA%WwzHw>rJ{>D<T4?9aIQs`)-VlC>Ss=sQ5Tfwduil`*C2%!wHVj zv%NXMOwFddV8jtn(ATp!QjKvbaPk_w>`q^^AmFQQIIy)Pf|TO6?6UGo8~y6APTMo; zEfeh<A=*&H#(Et<=%8i`0jQI${XE_~#p>A$L6ka=2_4slf;i`=Xqb=DD=oC(Bt3Q4 ze&+MG5h!99t^E)>U^i+$??d+l$z8+HBR(SIs#!V$*0OM0rfy*7V3NpWeUeg0Nh{S* z3wvUPiiW1z>@G;kXP2&6I7iQy{P}cCagxkE?b?AB83br5N5>bhSvga3Ffw_gBc$L; z(t+q$8AS`99Y8`}_f4;}vc{qPiU@mi9#7T%QbxHitq*{8%2AzWT-L)qB0~msPEQtu zvYOdX7Y+G^bng-w`9FOgT$xI`S=D2URQ}R2bZ0H#IRC}SbJDO-XMYMXw9g}XPJ}Rs zq3?;BD_l9Hfj!f(HkF98H#ZaK&nTfU{xh$84i}ea-@n&-lS#9s&qZhj_DX(%(u9Xp z1Ga*dHV#`hO$2ZLKuvt~;bZbcTrj14jl=$;xSU-1seNwYTpF9PGh0%PMebMsix4=- z+cp8vKTxnpZIGociAElx0nGrxL)fV0Wx8T;0mFIwvu6vg<DsrB7m_c2{4jZr+dEKq zx;<Zr(j+8gw75JzTlet1)$4v^6aR-e1%=4{-V8nrJu%175a-vSI-q7z%d=NJJvy}p zB#c|vhU4Rt*Np7*gfB6$p4kEa)gUO?BapaH?cr)|ZJm{q^Ww#ewp2kE<AqvQ5s|84 zUMsq0tQCzuucY_@mKXA4fv8v%jO<Cea*ZrR=m61z>A13$lo+0%1qWi5(oH7)Nd4H} zvvbHu^iiC}<C?Fpm<y({!I;ERWZ$&0h=K*N7#2Ao<$XGxX>j|Mt-{Kl6JTY@5KTb( znytGYn#SX<;d>VUC|*j@11I#mWX`)D-2Kla;J?T>4IAM~6=G_`#B$Vx_vfHu%v(m} zHn$Ls@6U2%;xvH50F$6k$sue2Q;__LpI>c#qBSdNspdTle(=-UToh&|ti7B_d>;mN z8RYe4!~+KfOCFscZ{6(P9PJkIhB$3d7!GUqpbg({Ho&!#Na1TNL?Hv(O-pqQ&4BH@ zQi`(Oo0gur`<w)3$i!GPRbN~<>vxiw{Rt6B)<c|VVYYlZ8d{iS0zGS;!P`rX{Ke`u zhO-q0Lv?sa;jtY;#NCg0XlZHV>{h6OiB+ZU@FV_*h_O{V`#8i}>ZLmPuzSAWr)&km zh^4Z!fy9zI+!SslSYOhxuwxF>>TeiCfMdM@)**cYN|M%6S+@L{qbiI&0M3*cc-E>4 zzMQ)RGqFKV%W9##a60_q7{0%d(+AUaL+|hR9?2+oxE#2V&T{HqN_O8~GbVCwR%3Ig zO*cVoZORlCbR6<;aFl>0G%_GE>{Ufuf-oW>U;O(+>6?p&*dJqTKylPntGiIz)rKf0 z29vDzF2@vBZ+tH1uoq0l#z3IW%zT21Hf-|XE~K@AtFT->w)(0$U1hW1FDvWy@0eW! zS~MQd!9W0_IkL{yK*EAeKcl0QQ_8t}61U|6`kF=o02kR@dQI1&zM4$DYO53AqDx+m zEv2I19pp`;^-QbbuDhP>mIt|0h-H?Gu~c!1!nGxxl`w5%OI87rw6?w<m==!j;POVf z#zJm)xxQXORkb&V)Wu|!Cr2xsDi{1F{68_7zLlKjmYy;$y2TR#lQgg!RKp(^O2isn z+VtSn4xF%J;DSYxwdTuZ^s`~1?~2^Rrs@9HV|hGB5$z{c;iI=eX}f!HGA6v~Dk#GT z)MEGE&`fi-i93vIkZAI0Jiz39-TYs?t(hx$#Em&qt6ysCrfdBSAr%j7bAoEcV>*l) z8i?L*%u(S46M|Ko&pWK^TGOzd?e)LwBbQWBA-IEI=32~G4;cV3OUUhJBvU-x7Ii^` ziQxbQ2sIVlOsQg{-99-0SMYs;Qt=?6SCwv(v=tg4DM8IiMeK<RO^G3{9<6p7JXR+L zV0R{RWTnMYd_u62UTIO5$Oi&Le4Ik=eXB6t!s4G|Ru`^-4!ssN9?#~&T8+vt$X8Ve zaqF+E`|&^FF6LcA4y8PENplJQ@&k__@%KeBN0p~IU2a_g6x@;V$!*18;egy+nm5^R zeEocnPOnN=86G7e!7n#kGDOenOn72qVjNwZj#uYPmCbB-%P1P|T4`?Yw(FS()d7y9 z@%}|46uqRJiKitTz+o31q#2_9Iq1*~d|=Uu!G3HCkodfB?`kcqgcG~OAl5LUF6l(C znm80NdR^0;JHUp-(0>i?y(v^}w%`WRycQYW_p@EO!vqVPZCh*W47p6PsuHug%Izly zgMQO2bjgA!;m=?E(zb9~kCzy$s0e(@d#@uB(aenGVsCKMh6{j$zP>(_=h$MyW_-z$ ztS(yPsh=Qt6?XfE0QgJHxN~6xcrDk#OmI>Xy;4%>Qc7vt^5rdCt4Bi3%e))n71*vc z<ol=wa9E@vWT`^aT=}N<w<F;9&vhodN->wTJB<xtg<7$rb81uNM(2hVPfy=a>-abl zR&ZzCf+2)d^B^$%vd(A=P(0=2<v$xsScTeu%^lX;0S?`|S;jYNXa+amL>iGdtS7^5 z>3}5V042qeJik^6mi%mO&&e-|F`WYt&-AWp%D6;ZLeX>H0~z33fc)M*Ik}k(BPx+L zQRM|D3mG1Fh#2ls1lr;IP>O%wB6eiIG~mA|DJd~p&@w@zl(z&xSgVK^XKd1-VO#tA zVV8#`EiK1sdCXBm2&?Xi0$GF6nG<<tNo`%CSE3h@ESBV8S97LLe$O>K0lK48s(V8U zV=z=b<?!o&gk>gyCxE8`i;AAcKfKGmv!oIJ6bsE@<ou4wA?`na1Q-n1($n(;Zgm}< zoW}~qm65R;QqA}rMi$ckN(sQLjo3>dtO=uoxw!!!jD7h(cCd&eT<<*a{7aqs*K1E_ z7I4kK|7eT?SNPNRf4xM~Cwk}n?JIyU`S|sph35|?#;E`FIP~C3i~RFAsk)!E#{Uo& zDU~^ZX8)~yA2xz=fSc)&yKh?R=%mry0|jWruB}A@{7z_hpX1=e&|=+xkR*0~FJP1- z!H42d+FSraU1};BK9tzw?X_R0R7#C+!);seB5q`VSaT^i70N~H^!#p7^>{4~FBtYe zxuE1RU=y#cuTQmh0q%t9>p$BtabWI~LpS`7?Lq#Z?)m?y4*ciMXzaid<{b{!-Yu+- zR|h{u%XWz~+kx``<AG96PMGDG=*o=}K9NFXgFtp6|7<m7Rl&5>I3O+aKQybZi`CXn z2x!P?k(q200!(SjNcry%@xupG#Zr-Rz|4!_>elcK3$3_OS_BbcRW~CmCtH_;@EHbX z{xIn8`guSA&!qYY2RnVRcbgu<2^y+uwdo-3ytuDlx&9>?!2W?u{f_~OmIKKB&`VMT zV7=#9u`SJlh9+x*#&4Ph{F@N+4YpOLckX=a+GuTS`-YP-6kzwS8L3jrBIek?mVV%^ zbDG(A@b=kh^0n6cU&Os-T$SC|E(#)G0*cb1NQiVuhe1dyAV{}#cP&s-DWw|)0qK&C zMW=v(bT^Ccjy>4>egD7rdG`5m&ZqNy@X@tc-1nOIoMT+$8rQt0JbPW;bEw7pk81ug z6`8U3?s5X3e2<K&(v*{^wX-v?SVL0v2^w@6#4)@gu3}=byPjVG@8HFcnA^Zab~9Mk z-1Z!9@`17)NQ$5q$_h#rx$c|2ehNn}r?{6&>^!6}_Os_Ycjo8k?eB`5tw>$Wtn-Um z_j#^#yK4R8c|@hST#u#T3w>7JkM#_S_jUIZxnUsz&hWp#?CM{<Z0+o5vB+!m{Lov- z&bYq5*V9A-`tZ8JBsb5TdNDWMyOvcuLKlb&JxveP2I1Uc`gZHt!D|&2l-pTH;BZ-a zxlIdGL$~WB<=MgQE2pR3uEPJkdKO%rHkCTbTCHf<rxwklWPRv)pIFc<896#?9)H-S zh|@@(thSi7k`nNgxVE$NJ~y|rYN=6I!@)$;%7yb}`N*_Yz7>jnz;fh;wx=-nxRqef zo3Cg?W?Z!AyEh+MQv43rGW-%B`oc{57W_+{X(=uyqA9OvAv7{kR^RDrgWoNx+R5&6 z#Nv82qiRWf{fsVEeSKMt91B<&3>TQ<0ucmz37d~))DE4SrFD~2T3K4t4WRm6@44*> zn{W#pW@#Zz3s%@Ij96&IpJ-NFVARwI!E@f~_&qElE@pGms+0Y$IuXZQt?$PhMzmA| zgHv`rE<gOcMtJv|S|4&xqfpaTSOJka+B+p{ib_hoJY12a#}G$aDksiW{xRQ|;|g*e z-)UOVu;fhzj{5oeDw&6Ay>fCQ$}mQWc>8?~jrBdjY-i7rkuauTUvKHaxHw3WgE<ib z90r+Z<@xDV>=_(%?V`7vbwe!9+m<Zy#(7ZSM*h~S@}^62tt)r8F(E0P*uewemtU5n zk&WT{7L^-1pd&{c%6DdvLmsj}tgHKF+4nhqOdY3*4lUoIK};!I)ApAZO?2n`s_N?N z*Kz7vDxYW{b+sgIO)t)Z4Co;rdnotB*_XVUlRD?qVp6W{@kaX7wRvUWj2;OvUiC~e z{5?1Iy#WoD%DRW!Ewz%3Z{}G_WIRs(J-C9BD$cxUT5cSPmUOboqD8czbBQ+RcYLFy zsd_;8Kb15hb5}BVr28=ZaCEYM^33jEMu8uxcZjCMMMW_|;_U6`TWC0m;IlVU9vtVV z&+2cVKD_$m$rB#Cxoec}=TALqHki@whABh~8B!F{UU(vtSkP!_QUgz5L(<N&@P|ys z-_u@}`b$9==tO@G_^<-Yg6!kC`cf6dg~$(X!!GJ+AH!xetDSG?RlCPX;)8LgM2}?& zht-LfekJDdG>(3^va6HabJyx%LSE97;0SW{87v@SnYg;&60<OHSl<jwnFA{h9$M5G zqt!isj+U)inrJMH5P$vbS<Xq~Q;&zBn{?E?h$;$k6xcL;-*pzG=674CC0FBCwe`0h zGI5-0lsd~l&my5o>GDczqo+3<8!%$UBe+}d+o^U9_x2-RnuuC7;r1M*Y_2$tA;*Vg z60c@5kVp}ry+5_lyX_`%qd-cEHtM)u-`5bP^}frYL{36#@z2*s{rf#NGNg+au1@ca zCQF`zKmRwW^kB2m0xzWCo=EY2b%o>f$_CvP)^C&cr#ySgi7wMgV{A4&8oBFE&F+&0 zrrZT=Y+au8&+HVbb-q7@&3Yk1f?2tGgQk25oZ2_?4Ne@?J9FIx5y`eO4d~c2GiaB4 z`9VmF<u^N9Za?&z<Y^%9tkC~FjLcs>bGb^u(%6_+Gm+q<*A>~5zV8}p(zK6=V^m;S zgoeh7iM%7CH#P>IPMeizxx$sMKU?Ba+Qp$D2c6thY%uvynR9@x1_VrIW?FUW7LSn< zleVQdrAniIaarXfrU8{cp}lu6^Tk%alcL&&&ej8D{x#3mP1dxtO{N5X&8D~wM6LOO zkjRVPn9kdAQCgnqeyPniav`%P*nlZ`=Mgt<d}fW)$V^xaIy(VK<%o6}RsL?&)Q@)t zoltswUOYeY2oKK`_@9Qz{^}FU0)2mVty3gYnj1yLXJ%}U$CW!ZmOlgS7&CmiM8OfK zwD-rG6cFeTpNvM+5uN?fyG73Vg*Hg{)8}g~CdJl+Yo)rJi2_~mv60W;8U5U`chkKh zSfP&bOi};pb%{3hzJiA9D`60errp+1sJbKz^18K0ep>^sl-m>ONjr6FdHp<H8!y{> z-rS+4PMxyiiT|(wmClcF#pFi~-G@~vDO9gyI;IkZ#~pgPrgd}zop*I8%3L`;D0Y+) z3A}ziDPoCRZ2t&j%unqpIM@Du$H*GUG3?kUH>{F5;mUa>)m_^#6WlZ&R8@5a;I14} zN6;92UK+3`TVZ%xFNDrKA-y)vtTzwkAusoa)akRoQCEMVB#Xn=^QLR9CXUmGD@RqE zD^4X}pI)LZW4ET{iInZ!pSr*#PM-<Eio5rSUa5*<37_tA=utT1d3yiQhvxm}X1+Ej z$@N>CbS%jHfpg45Y&^%q{2lwjti0x?CZA8jXEV375ggOvS5D82Ce!walMeFZEarkw zE`D$Kn<k`w>f_)5G;r<4HSNhdp4djNMtyc2YsZ$3KK!C#x8;O?&eWM@0V9%oM73|% zMr<B12Rr1*QRZ{RX<RlI#?v~z{d_{>W5u+!(H1yb<#Xgh1f3{fS|a0Ob{07Fr_d(c zXWwcfcFddQj<2(@ut-WuIUN^>XJX2X7F#q0J=&;UU6z!PV7oY&u{}IFx?<JQ>DAWy zTmNwB1PB*eI2u!Uoc$yE+3}TpgHfFGlb-aeSciJWZ>MJ0n)vfBvIc6#tvjqJT=$*1 zEQZAnm<KmY+2l6cJSOLwE?m7V5z!(BsR>iH&(2Rq7{Kp=Luhd*8msC!1i7_5x}jU7 z!bTKW7A@_zxxaE1^D67nqSlf57W<2rAKN-RF8!Cr1dOJ5we<dhucSVJ_?UOuB^}B+ z@SwSK4-W$Gr15A}M3gPH(1#V5J?+6ncW)oxKR@1>X*g!d&MnOA6{&0;95`Y*NJ&bf z5DhYn@oe`k<ydTXY_8wBmHl+nv{<#Rt>aN`H?Fespvj6E7b&lEd0C|jjDe7W@RL=C zLfgXYn|T!4U0rRM4_Iq2;=6mMt-gGX_|!J{;v3SVxZFTWQVK+!wcXvgj@+fTLca0B zS^b~W(_2uanlDxz`0w9$KvUP~v}d>6I+PIp8XnpnElyeAAa84-1>dfmUHTM7Sh6<M z)X9DO$4L)8y9l$gQdY!RmD?2z3@hFMY#q^DJE#Z3Bcu8cnP=rAzC<@((4M}!++=P0 zOFqW`Zvw!r^SuQRbf*=q3!eF3rh7UIW0UX7-;=w$9_T+q3K8xOQBldKmX-YwV_a8U zo|m0A;p$6~GQ4r)ri8RC6$k%HxUi3?k6lg0Bd8hm_21vIz9Y4h7z|krGI+6JJs%l> zv%3T&F1^w!%F4?1FJ73OiL=LbdSm&;b7|k0(q+FxLMA`U^8x*Q@jfdiY^#QM@b2Ng zo_*=-*YpA+$(1x4+4KEvQ@hpvq~Pjf@SDgi8YzLj<xf|*<yDoG%#Xyu9mKm$Vc3H; zm$~wZjfBx?4sK56E)_4$eb4TT19JGg&AHtgxBm$RX+!)ZfyP|oXMeJ&(Ab4j(zk#i z)z5oPEqf}YSl}{Q{UZltJmCWxF4jCk(^bKh#w!l*JGHDPPVSUP7uwi3fg=fOXvO6i zhghN|@yvM&jEr7MI+UoCT63U?V+^Y|=E57=J)Hkr3!unlKCTose!pCQb*R|ytK)>+ zVhsk$eU_E)fV_1luS(XZdinc!n0ulCWjd+CY)#zjwd#`%51XBBl`1zHNZM_<3W(ey z#HaY6NsonW)AUNi`}YWVTVT_naj`vl?wa@tbM>oN(tL}vpb+~Vi}Y04A$*PE*{S+o zQDL|~Rul#Q&OfOAurm?m@2^g@r-Z@%nAH>F_ORpB1D)?R(HgRX2L{idKa`-)I6QQk zp0;*2=>F7-iU<!cv}<|-jcwSzs5@|q35|#~VoTxqLE<W~FZvxXkSKOrFTMkLx}*WS zXuD0$HNSRfyw-jYq^I{vM#>OuU9u;C`9R*->P8CM7F5zwy%2FC`g&)YI{k;ugLT%< zI4&&h@ieBl7vuTE!~39UfHDS(5NK0PCGRTF$!~jHApDv-l<(q`iw3-x;k}dsxgOlP zOLkQe(|6tDlwK2Yu3|xIy`!>rQhZU>0wsltkfV#coyJ^p0c>^L8YFCOZ~LxyQgV27 zROs4`fI*Fq8KFB7a2Ar~POE?UvMf`B6m7qSJQ;R-MK3+Ra+>v|u)Hj~46^^}*%`b$ z%7+STO`UUFSFxX0$M0HMPITtguY&C{_IrHRMqt14n2F&LH_JxgNL(N-Kt8P`jZDH^ zi`=TMZo<udK6l@rtq~^E;IR=A#bMIed1-={%AgF%L_Vj{N<xAjpH|MGAu<OLDIk6# zK@;jG8k#OT%gHk*M$N=TXxgrUQ%CqPJkfXWL@K$MuHU?luDvs`CVg&?1y~&9mF#Y< z4|3N=hMnUFFHVHe&k?tl9LZrCJyUhTk|Ak=GRYDD9+8s{OJFPSQqMfegxkC*T4auD z1HOm*2MJ-h6w5qQly&_^g@0>PZ+YL_)7a4V1@lqkiC=60(0=?#o1WHr2rQ15AI@c2 z0eubZZyo*0yrqI+Cr+<k<E4lP%~i_@F9NW3+uL$|daRxGbE;ZSh>ngfDh_Km9n3~R zj*E!ljT4nper-|Qn=PS7QMQ7!c;+!9hs?J<(A0EAIoHJT_{?VwZmx!f^p?EsaH-Ly zddp=ta-(+W;NqpU-95A;OiU<szD9nnt4s>SoEnU=1*02&5bMmQp`W$2b?S{|mzxb2 zc#Vw-y!hxvEToSoSZR;0eH`zcty+psNJyCIar6|Nh)~Y#g@s3lJ9(RXd(%yZEofHM z55E>@xl6s)M(Yl8Cj0q>rOXOtv%S4@9p^@}>tYr$*J1Nb&4t%Lxcp}DVLCm8a&b!w zaYIptU-9+3tF<Kwm9odqHl4>ozcuos8|U<4tEstK>0C`u>FmlZM*L}w)zT}s9KGen zOkFSRiQ1_T+-O$akK_uiJGdy^r!;-XoV<!UM}p$sRXbq#_=t`<k22}MH`wVCPqNm? zqkw7$5zB?2)i0U1u0aeFWR_0GpeeTa(8-m<<nWKl#u<KS=+VBPL?gM-3s`)ET7v-} z&Q1m<eWHW~;yRn-F#|x=M2;dR27b1u$W_^bT<Gu7vwF~+#cZ$G$;<aa6E007PHBwK z?3%&+JYBV6LYAHao4`@4m-MkS2>^52wCDHagibworm6fI>LAWu1}342iLssZQPvpg zp^*0p7;yD^D0XdF*YQAf2D=q(56DY<cuJN(d=4Au(9qD3<L|<0p<~@&v6Sd;odYCn z<*1x0bjd_kW67XjN+>4%%9eoXwIH!NYg+ehr7_<>#YEdJFX4xb2J=*Jx^Ny6`-9he z&HHt9Njjrl8quJV8B@OuykN&N<Kt01&A3<y;ToO*SVW*rl{QJWb+v&*lNde}B%hzI zIPId4(^fp2ySv(b1Lokk6it{!-mvuMQNk$LtFQyp2}!%XqaAF}82ArX4SFwX%C0Gk z&yDSYPaFDKuHO1b(ceerUx7Qckyz@@(Ca7EA1$#3=0T;j;7O(3Gvvyl{Q?=N7ZvZr zZU79=t^~d-@muay&}3*YUK##nPikS28{OHTH3Dlw^AyP)y)&9@f*W3Sfg*%TgzEW+ z51js=r%ou-S%HZGRYFK!2yR@7h2cbf69_r-?dF$L_$%?0rGI=zA}K+{7kJ_z&@FsM z4Y{{#s*_I3t#e?FADzc(i4`C>7&xGPiHmB16+^>G9SwkrfKjCx_9GJ=^i%@W*&L{( z1bxM)eiN8c_GpSjYjg999H!@2U<JiL?}NRmkocb2>0gC~5wB&~IiET>QQx5Z{kbA_ z<-z(Q1nft?6LxoUzr2z;uc<-1oV5+%N#*WytkSe$w#z9B?uqey?gYR%e1rBJ1Yhvd z!;dR5v&GUftz@C5OHZ_uPB=1Cc{_t28vWD*eO`$H9JT_Ap7h1uCWR;0G}sac7EA-? zW54HsTnUf=2!P;?H5*vV=q}7{ary^SfhEf*2q8c#oNF@J?0g~pN_t`XWSy^@fl;{- zh-Xm=<LhiaJ!WGSK?bljF(#rDd_=xHy8dbGU`Z=qS*bVM`VsVp4B`6+lJOmeA7tCw zn+fEOm&HIGW~M|6W3P8Gads+jZi+@Lo!E{93oSGtqLp%0{Cc!&5%mZ_u+7}~2x_i0 zblAwB(N|ia-DU$%P7d+BPNK!}+_+f<n1ur&KHuzBGnn7tgYn7FZ@#Jv7#C&%K{%~o zj~TR?Pf58z*(VC^<Gxbmw<;45^7%$jOPq*-=cHn!_HHUdyl)6SIu)4q_+{GnnOA{s zW*&9DwlS}z(4{Ur49j=oXo&-)&mJDf5(6xWEsGl$*q*pTC!vMgHirCaqL|frYh4wh zwlSyUJl`_yq%AZN)#?~ukN+mC;G^9Q?Q+j0yz{l<Z@I$Tg{6XTOCz`A(1_eu{7v#g z3}PuvJ<<-gl4o>*Mm;)2TCyL-v1E~t_V-7WPMrAjBAJq*(_OW5jD%>QZ(z7{7NP)M zN)GdxQqU<VP`GYt!p3ljHi0H5mop&m^ej*M?3^K%%UCfgN^CA%)6L-)Fb<b9>^M$* zYwz$A&}wL!7mGJ{S10a!E;b8vEn^lr%}isX8Ig^Cf$v`Ew9qYmzAr^lb|QxcblOKi zB8LvEerQl<6uHzfDzQZS_|5;WX&o=J6h<4|TdoV=Xf9YTjd9!EU$J){p<29L5Pln# zHzA^3)_hZM919`rFCN33b=w+d%Z}zwNNVxu%x=SHjq8L1O1<L8mhbn;R<Z1&`e&<} z|Hgo~@%)<dMH}2%0xn5<sv)c4vWU{}IN1iQ9#~0cWAaZIXUaBcVMlu-hU3|%>$5_7 z%|EuF(XrjcJ*nK0kIzdA()A4_Y?|FMWJkrZ98TqAW_S2VMWI_gSjPiCF!|A=!~LC* zcS4SQeY6NEPvj*1hRR~rbH%G!9&t?{QNl1|nkLS$<MpO1KZT(??SB#<{^f?wa&e|& zcK?2V2_>68-p%xj#%y~0Xf~89-!Jo*V6{wIY9=@@xMMeKwr&{!T`5`tPVZFPv;vnp zGbn~v=Hf*~=IS#Jq!sRbb-qccS2}7uT0wLDlLR2MndRknm>KZZX;^EM0E?mjDLp8L z8Vv1EvT;}uABYnp04HEr?Z|Ln`2)!YD%n=Z&D}K^UAzWpzT<X}pyLUKVpBQ=ujN%G z!4CKwQDbjCLPhwyfaQfEm7ECk{qGO!E?4$LHq_E-M;z!OBsvy4{ez5afl+Gv-A?<E zzC6=haZY8j<>Gud4Cv9E<^n=ym1YRA*Kb^#>T{f|@636!VL17L2S%Z+qI`Rs)Di<6 zPHrnk81wh6mEJP^yZPN7p&=rh4m{ZD;T~9Vw!OQIGOkH(U75uzN6WJZvd&2?^z;U6 zzA~2~78RpHO_PrHB?{^Q_vQW+Qeo+%7+9i(1}C!XRci$6M7*n22MqF2%>vtaopGEC z4c$oi2A|lvk&Sw|6CJa-;~wp6@_l_VC!<ur{Q;s*E-bw32|mk<V<}eC8#f_#kcLE_ zf{5qorGC#nPDw;u$zZwIY$6b%)xCQJS1zFv8qm-6VcpeBV{#Bw=#5cbYa(4@z@<Su zdv0Y5UqYt)0Y4o!55f`!YM>gS36L7~cr4}IqGb2S4iWmLkmRB@N)FBiR<9p`X`sPy z=2J30H*YXy`Wl;vUYpb4hsLTub^CN@uQW?g;7dYW$1d*<WRq*<<<7v|Wjkon*;ZIP zth$?Bthn$al`GCGgjV_Sl*J91K~?{;Mg!yrj*KaGdlk2Dm9H_2jX6^)W!<kF@2c_% z_>dWR2UMRYyp)SWLTF>M(NfKwIVL!tCWUoeb**-XqF&?pnQXSr8!jeh;#z{ZS$!_i z-=7Q?Z)Rv^k%!tV2U%u~;F@(889MO)jNv`to^pyr4NtT@lHHy=ho{d*bPLQK@?FNU z7PrSvGfnO?)8gNU8rp&X9D&$f?g?rxxZQ0uNk#Z#C9?BqGM$ojzq+)btg^^r_PtWx zq*J>&#c@Yb)$xAi>afR`0j4;>yQ{pE$g*F*MpjHK9TqxpC%?ZO<pNB+m4qua4W@I# zi)R6UqX2KQn{GRuZ?}4(f#HY~=uTuu5c4B@V~EM5qv>?5&8@Ap(WlCK4jF=_Q!ge7 ztEvUq$P+kvopzCziF+??(j6h_5W+!pyUSI*1!rxkKPAp~UE*ueUJs$xRuuBgOSD6& zH~%>&JhQA4A)d!yC~HVMf(8##e*6mG3PXU$1SK^;-9cc8^~{E$#PHThNKSISigDe% z<Lq{$d2r_=C^%lI3~yypN2bI~g1lm+Dmg}FIIwC5UFdwqR8mR`W%rgJ7|rgVdFiBv zEt$#j(e}C9uwOTd(jfNpt7=IJ8NHR@1VCI^NvsE!F7Ihgxy^L<PkjO@o`$w=TA`I} zjI5c>LIWBEG&AeLZHjx}|G4bR*qWc7ft}ITL*zG44cCL70(Uj2p<7#jU-_ov_0weS zHrC68g!I-XcJqC80v5IFih`mHR5lq)W2h%-r+i*2I|O9z8uvNZZ0yAm@y85B3(A-> zm1G)-l7p=<V!M~Zmm$RivCON9m=*qI(i6YbdQCSuvxGYa*r5T_u3L&<r2qoZ0~qQu zVSs8O1ypusLsb#=DZ~0L6uU*LIbCZ|ybf2Sm`s#e3Z39lTCxZopE7_?ILge{jDK`v zLW<J$8QeZvT&M4_nS+uioGO}|fC7)YtbyFcEyIg0!0xZQTd6sz%W`G4=Hh8mf6SP0 z;ol|mZquJR=iks?Ri4z%`uXiw)h#)>5LID0aNWKIX~+DL#e$FF`3qweVsOChBqra{ z*UMawA2;le{`u<e-7umdB+J1VTV~=hwQ}qv0Tbrb{9@8~t&PO&@%&Hl&@%^U0ds7? znHF*aZo(mgI|5suB(hbIAL=kHf9@sjxl&LNoVvNU!7k?hk-aXPzi_|UnF}<xad0wA zI%~Y%#>Bxk6L)N!D|mM(e1We4J;1vhB`~@auLP1*Mk;TAvk}@+mk#F6ea&vi>qzu> zJC)dBvRpNC++EPKLmRT+{r=t)13SXt36)Lx8)%>}_ZKks$&!z3EiklnM1ef9*Yyu; z$=aAGC{{5}v|7Zq+?pVcJ1?<x-zBDKhC<VMI)=?|#qB9Dx|dSrk<kq(8y-TNBZDn3 zqsM4Yt`x^`b#QX)cK}OYo}(O>*~G_j3q$RTnyZ+J!+l;<Q56xUgVu{LLqMh?IndJ^ ziaTygN6!C?zcUg-QdhwP)Q7T{Z}akM+RMkZS$U))$U8W5vQC_!S#oJKco1BZU`c!0 zT6E#$L)q*u7N^8y)K`cJ=zsnLU1G9jUgEv`ghf!RB_d9{`z0?vtKS0Y87v$G373Bw zjLSX3sC=CrB>@3OyX8L=Kab^!rYb4Zt$2h!L}T?_7FD!i*C7D<=^?2hXKsaMd1R0i zkX#zFgSi>FgMn_obutO@ap~u)Mb7)+7RgOTRUgf3h$uF{I6H5dTUh7;i1y^kDpU-= z-*Z6Ak8q*hKfXEAoZo4ypWApmnfG?`qfh)~u;f2NAm>d-WUTG{NV0r8|9u{OU++*f zZ%3G#{C0O@rz2G$T;W(GFAdfPyz9p4K!$>DHx|~HFVP~fNG{yhA_98p%BuuUdXbrL zkDb;iyJr_yq%M0$vS$&EbN6U31ad~WY!PaWQ0x6EaOZccs*cB{xr+T3lh?G;u%Ez; zOwi<NQt*jyl;#O{(E?MgK6}Bw(Sw~}HSxc#Xi02_La+-0atSpx%`BkZ(yl>hlMwyM z!{t~!Z&qMA?IT_i{5sj=I{4LFq}iSS!`xp*F3Zt3Ih}3I2dL&@&l>kbt5qJQT#fGN zMXmbr@dN;$0;3)`fD3I^OjL&Hmwohhn8w{zL(SY7+O$xJU)An9^?~Nh*11~VT?&%= zWqZ;?;}L0y(bsv8MW(|%5NNo#H`N?h^+#6Ay9()$2dx+f+qD`V$)KT!x^vdbjq1$h z04k%T3}o27@>;;M!zH%d5fKiTofW{@e(4mhhq{hZB0plGu}spU6mi><Z1m4jQ*mAh zH>mJ19|$mpxB6Qxa@jjmQtq^RL6bC4!*zcPwq8Nbf`z5FyJpV>K!0IeuK5xjhQ&mr z9{rvVokC4NUzAn8lN8+uRhvq=gCKBb3q_8T4mETXzy<Vty#oRSj-x1)zP|p9PQfL8 zqRSo=y}QE+k17FLc*@10o<b9v0yY=mriHb@qFP`0Hp`kPlif+vc{<O@>D{|ZYkXS| zwZ@y>!4FTp<$s_f5SMkaqYy<0wjQ!^ax$d!VuNOEd<@}ngNjfTz-?nQr*_M_;O|7_ z7YH7`mEzn&E+@AQ<3@z!f*~0Iu?T$Vf-t4qi`TCogp7G~|L@4Qtcw~?A<etk!GzP( zj@Db~FF8c%B#xxb*Aa1197TGA6z56Rl{jIUE*L!L2{CIpLk6hzaJ=Ug3eWJ+?>v8f z@6GG$828X=evtmCy!<cHz%gSjI3^)xlCsEkcsSv<_uHc_M53QxLY(1xjO#}EfuQyJ zjKRE?x|;w-&FL*=LPFU@UN|RtXK5tEOMdvabhWp7H6jdUySQ`WP4Dd|{%0{PB>W*U z<9HF{rTo?l+s&skj)6`#X@2RG0uLWwZ>chFKzBLiFUyW2sVH9ibpeaq+`toaBId5N z^(<_}5pSwg<dn*5R#PssG?|^W_DVWWM-#;qm6T&@T9X(7Q)X_9NeShG2Pr%JSv%R< zA5L!_r%?_J46O3odB>H)c|_knutc%Fxc2be`bmxw9me7HEs|c7Vz~6_Xj|)@uW#No z(os)EFhun--FOzNDQETSu|+PkO0avTlq3~3=PhMJL*ke4ac`&2xm|Ywp@$#x^Q~4_ zS2uU9JmyCUXAG9?_+B(LSX(=AkrFcb^cYdYhe%0D)ivTHP+-U7EiN*XFj{phLDlWW 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%0A!&WW>q~Y7eSe{rMNd3m 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 literal 0 HcmV?d00001 diff --git a/ee/dtr/images/migration-warning.png b/ee/dtr/images/migration-warning.png new file mode 100644 index 0000000000000000000000000000000000000000..84efb52e98609a6128d9b2d10212d317e2a81327 GIT binary patch literal 205372 zcmb@tWmH^E(=JRxa7%C}KyY_=cbDK2WU#><CIk=e&fxCu?(XgccX#-B&MVKI_naT! zS?lzgnZ2i1cXf4Db?xe_YX>XJOCZ7H!b3nnAW2DzDnmfP$U#7S!h(f<uZc0gs(inE zauAkMg?%rcus?#{|Km7{X*#L^O&whf?M)!eY=G7#bPmS$CMGrx=0L|Y$aa1Rh_4V* zqC%>!smH4>uBvK}9T#VfF4FD_u$fS>tr}m1a)N$V1yKeC6$|JtYq^}XHvdMNU(;<a zi=&386gz;WlnjLMfq*+0jP)2li;(*0^X)S;@qQb4Z?Jo$@h<f$z0pAe?6#MhP2cQU zk{6%MW+{J0=mnTyObQsJ67`dqtCJ$`v7@FOF}q7gy!~-%I=BUvT(2x`6G0V*CHDLL z-#?s%g>YD5WolE7*98dJ+*YC$TVI4fEnX+7BwpTN-4F!)yXn8~dZdOkXD{|-f$b-H z$@z7NMx4Sy26#+X->jGF%%);c=3OZNoAiJ5q#&y{&Syu#SLk&Z!x^P&eS+q~Cl=KW z3JLD6vSzn=Zfz6!@^=@`1I`-VD`~kDcH=*bd(Z;7#G+|9Y?r+1FICZLJkv)!=>MF+ zXW^ij-y%oJ4C5Ys2fjyN(cg(5t-m4iKcBBYB8&Vr+0R=!TN5+9faH}5Ljpe%zXD67 z7(9F4yO#ekN${fGD692Mfz*FBQsGSZ(EA^x#z*XU<Ag;-d<g<SZ+!|14=z0W{13st zlf0l%=Xa5@R6N{hk9~7co^wgvmog)4Hx<eo)i|<NH(U6F1@$oqQN>Z7iL*XTs2v*G zrk^QP3s%XPc~bT7(K_>L#VzrMfyUU-=8&bV(v}nKS^z|q%vhhIZyq=$k9F&PrRd0l zA8^kt&#A+h!>Esl<}X|NErFH0{`$|J&1+rSsu!Ai>83*Iz0r;#)k}#w^Rq(A`-2Ib zwFF!x9#?8@c450?7o|r$sWH*&dd?$Hsa(DJ_6HL)kH`}E;_-VJe<?|n5n#Q2w}?$C z+|>ma5%jg^L>z~FsqQ@1m6DRSLq*kZ&RbUFs~gVoqoFx&QyMFR3)-3EMps7&`SP~0 zc4Z(RA(7Y;e-?jgM^c_g2%8Jtd9`P@+KJm5Nn+I$Nj3!Gk;^5SymfWZ^}4r-!XK_1 z0%=9S4w+@QmU9tnQ=ZsN8C`V{Qgt57`eM~ublz*^iKo+SHm#K_6w2CSN`b}NUMKz& zk&y1nm4?0(l$NEQ*U9Jx2mN3A35toI!);&h>i9-aoPOUUO48M3+muRal2IErew1BN z5cKkN8&xZS*FGO{ph}thOI-k0uDpQJUCe*-+l*LjcMshCPhM~@azsdOV=wI>4as`( z@KFL6F^gQQvq1pBt*fR+##%&+g~FKI|ME})>d)?ik6Ts8Wf&%dXa`?Dr!CGbg?#O0 zmHXu=Z~ZqEhKw}%E|O?K{8H3(0E(I7(?S!TPUK=Z{_ct!9}rmj+^`w3RimxHaY)!H zNB$%-m2~?&{k-&=$t{OZ=v^A?jEak+U~%P**yM<v&u$A-NJ;@0799*g^*y2lUZAnv z#)!R(13;%W^L_a*UHWmlEynxTeI@4d2|&U_Ma6|TryYi-6*T0Q&C1HM<x0bruH<n* z8LDEGWud$gdG>zn^=D$G_7kUP^h)nYZeedggq{EWEuVyo{1XS}x*66c3wi(`KBC)> zgq<_BeR;Qe{p515vXb1;#viIik`;gl+@f9WR)v&?gl~IVH5F7z=?oi@UZ%@NB7zd@ zz2AnheQ|;eI>%5>jT=jLb8vmzBueBv#Izw=Z(3Rmpg`y*5-F!S%`p_(aJ%iAcXd$z zXtwS_ctVh2MFBT@$kDe%*{tq-4^h@`0%6xCY+pU~{d`oT#r^8+kAMS@NQ~urM0ZRV zPCZ`_PA#x#jqiS<+wou~$w4BbNbz+COTY4Qo^1uR-pXcKL4W2Zl??xvyLn@&nY(|+ z+}!-aDrxhx`=I0ODwB&@KSPl-6*)ROdSG-szoOzRBU(-T&5O6di7vFS2tm%hjG`Xi zQ_zx+TMCu<MvJw)FPpc3ypwHRVRn^t=k1MqO7vF8MomEFst9Lo6yCJoF-gkjd||4N zfOARTTRD8%_5Iu&$*Y^kYznzy&QQ~wT7cLuq=`5}Gepw~o`}oyJ%$VK6pDsAZ3E0~ zYs@OAC68ybUFoU2M_3tik?|{f(`TG8SSssbc7(;t7Z1<NS!wo@tIX`}1E*JA9kwhZ zu(t~|!kPQew_~2LBk(<qZZ~AL7>DNrA<^h-+({#U7wNL?P_Kr))S0GLb)?)`dq<!^ zes%3vly(B~kW82JbFtCk<xrcs^!=&+q~$KgknEtd#dKtT=_7$bnZVihGy4#fa@R=x zWr3a?%a7J>r12L+1%rP=-O``NLd0kok`UImcE;7C+uC7I!t;AG@EU<#ooy_bYyE!y zKK)@5{G({w(M1F(KX+F8i|*F9x*v`f9Uw?>>%W$LmMnVI!Z8fgEw+(AZQl~veM=mi zutN%8GV?!*QS+PsBJSx+?uhr`LVtu6vYyuI!m&0sGQgAQ2@KrEecHzIC$cM54t$A$ z^8jxZ=H}Z?OMr5#1#G<s6%_1WruF(-+)%oW!e8}DgU1MXn6{UbT<M66#|4OfD!e`E zn}P&V3`NF^>^z*@#=$}3Xn)y?a4LSyoOx+*aB%0Qqrvyr>^VEmG|~PZMMcG**2@@& z<7rPKwN45Gt?OTIbnC=85@N*LP;1u5t)HCjg?`YkigbO@R8k%=dw_A}tz?1-!$)pv zMr3#O)I<)Wmq|_!+F{i=sS^^hukuCU4n#%E8n{?!KoV<HKs%h(nIH>2;qqobxw|SS zR^mOR-<U@vDrSigKr+_cWNka<bstR{DFUi1O_g#GcZ^X*T<!;o)$pH{>&&l7jb#;j z-cA|+Sc<Ui&k$6$*^8BMJMJdYLM9kT;)`aqzstnygXrBkSq{hd_PCT<Tb_)9i}?tr zQrcqmbgo1$hm_m@rrRwh_tp3j#`AopTJ-se_;rdkVUz|$w#t=i2|SSYEB_3X9b$?Y zbXHXZ^-t26jsEFP(8zey?Ih@qQ51U`s79qpjh?x1FKf^FVuLg`(32f*=2(?5TFyUI zU7hBL?Er;Ui;!);M`G&P^qScJ$sjNg%|;||++~J;-12h+e?)tVOh`54e7|9-(P7R( z$+|l13-$N#2hKhl9%qe9EspHoHs?eK(B56?M5EM3GElD?hsODn^%mR+I!e~$UYd-Z z9aD8XSXYnz>1h#>kU8<aPJ8?I@G?DN$Ibtr5kt@$!BU;l(pO$y{PuB>tlP(2E0V5m zC27OuCSk9inIeJeTEMxI@AofrUv5ZgL*}p}^?%K=W3el2pVk&P2(ZHiDz7A@4f<O1 zWZ&(@LK{phIieaqab=_xOeGQ=e)`6BiNKZ^i4T|{?-Wvxl8e&c=IA(@M|Won%SKAg z^Ie6)RFdy?5Xrtb@(t`a+nFr_`m!#u{UYOWu3q*dx4@YeSQavh2yEDH>7W&97V*ep zw%N_SGpo26387APxFZ{-snLihy7T{2aa!x*`kD|B>UQof?NGWfXP-B=piu1q-dtk& z=uZb!F44b04*@L<>(j%fV&P2tt1Q(EoZ1oSt-ByPjU0RZiT9g)p1G|7V1CFUv<oNY zj>4o08v<)f;EWd_u(LQgV^Vn$?S)@`#Bpy{p(eY+yqsj}$%#uyT}`>)siv}G#+|NL zAhohox+&lEbIb$P`6d$HU5?9Wp?$pXLYL{vi^1!uOwc{**0(H{B3cS)?@0zT<M5Py zi1*+)n#1}s+ek3#o61P%FzI&zu@gMqDFU4^&Rtr#w01SG=YdhGRabJo;Gn>#wD}Mq zm*V=cGjA~q{--8kiRI<BAfXfUeAYp<i$xIAtkOr8jH>>Rjg2rxB^vB8HxrNY)@Vm` zowu$Z<oY2Wc$W%c>dUnPpb1Y_(rgyp7JA8YODT<3Fy%`pw2WiP<P>^(7?%V3q>xX! z`JyT7vrJSmhEK@5psa-lXlvZurHE<j-7fBZ@iIt_3GfiI%$?mW+>#9ar%z{0D;!}g z5i;CfqxSIW%}!EyRnVp9Q-DUIDr$N*r|UiH5#Uz+l@31!>bc<cbV$)pPP}ZJCyc3A z?j;*xW;T0k^!ZG-3$~AS5p?>|4a^dF5se_U<yIxuqv?W6=%U{y>!5~<thZPJ7YWBd z3>^A{jR5#t_4WLBMwa140BhxHwUrwCXPkX{7(2(ZZ#J1NOh7K2ZHdSh5Z#fp#H6!u z@wWNN0@un|MvcmmM;mlZdz^aJXyIS-yr9Uno~Y|PyUVWayxgHF=4<!3E2GS<prwgq zoW(^hMA^7fOY^*W@RXRlTV5a}s_Ta|U)bxU9u&cWXVq+WHrnw(0f-sWAk`H+x@`&` zz<p2WAQ9fYv5f9UQtk?~7{6IO@5%bOTSnQ*_?25+&Es`)!OCcr-Zq~-$MCb+hXB?i zxw~IvC7#=A-WCp!UMSzcs6U7tIQG8C9xGP9Tj+-Yc)ibob_6@h+`LqX4M*R(%U+Uj zRPrv@NY`14yKh#U6gY&73pGw$e`6A9l$aiWwrOyJU<&u5^*l7e{6iMAbg>blsSBp| z_`-kE<4oiM>gTx~!dB;89Xkzu=<vimA?ysIqgfD=7&}&OzO!%|x@9Eb{lVxRQSRAy za52JOdcybCB~y;C#Qv}-1+n6KRa$GI{de#W!q>92(pJ&Yk(CTe@qT$!_wd%!Bb26+ zmgY5Y7stUkg1moGI}16ydx|JHQ~K>yCzd)6Q)e1Bz2$R^PiVCamyp@ua$<4HE^=^6 zGpdC9`$Zmxur$L_L7h`bYTAYhTEMzWvtoF7VNPxQ<ZAi+HrdFug!%&->qM^Mjnv%X zf+?}~+Jj#%)W!9^43;niO&gsYsad7v8vFia%X3RDO`XUwPE9DpaGE&FJgqY=m+ROj z$>^)jt0K`_^PSsT+mlEZxxT0bg(e&zhuf_3B|&&Au#Vq|e0#FKosU02AUQ`-ZfzIw zQq>`=sG&r<S<;;2XYdKM?cB^$<4GD|gyFF7yA8#r{P`b^ku@S~UUl=0o0TeCQZl}9 zUOkNIC}9f=YB*<VfXhzRQMilSQK2*Mr68~?Vk)13HxB*I<yfl*!JU=AkI<6;*1`#| z?*I;k8Mq{kd%POjJPq5#9p36L=XtX;zXLZd5|i`p^uvZ7?N9fW*en!oS^ww8$2_;P za$tD4f73QHP4{N1$s|_!&klxx;ijNk0ZN7YO}W|}(lJ1*(z^{%wf2iu+xVW2-(i_| zq6IR|<ru2e?Q1C{*m_-(qZ}I2Dsa$UCaV17;DE1`$|3)toeiFE?y{BMb77?EBzY?y zCzqpqda0pyTd#KU?|V-GQ@lhrx}P7lcrDj$PN8m1+Pb%{46okr_Xw9Cge)_MK508b zr?aw(gezN(Wjtol<)uP?bw2|aYPI?8DS_d^wlaoY10}x{YU#LhU~`a{*MT`A06ZK- zD8*TdZ(r)1I<;p2A~w`*-0}$-Xg$zf^JWcuB084)0a%sDlidxTXE0a*NclZE49KG7 zuIe{Mp|>Q|ew<E_>}N^7+~fgYtYH0)Dm7+2ar%Q_g<3WA>i@mnRSFO*nwZpmd(%i+ z4flnf(G#vl8gA#v34D25b+x}UWC)hu4lSFF$j?0NN~}({eZz`zBdNJ=sEt5s6zpPx z1~d8{G3a-ej<*dLhb%h`Q_bEbmAErL*D$zxcK%2QaL2PO`^QwjXwSJ8FatbzjnCGb z4<plh0f@M>zkmW>z7f*GfUCRP{@R(dO3fxKDv>e#E-2%^*aTfxL*9Vt9|u*rYzoP9 zn|vS=euckwh_H6iiW#xw0s`QQ3PpTmiCVOhSmpZ{?@RkD2&4d?DQCBrwN?)eZ2<;` zyP!ux>x!wpj1Xnk%Vpk`8jRaAzWckqj}uDTjy6m1Z-+PL%Le(wgVM`A+l-9pKF*v% z9?7>rbH<vq&R7iZvKNxTY3=5N#6LYI)KxN8b0;^I_RSG5FdvWhil#yjldO>*iMnM~ zOn8D}5qc?~qvi>pzT~F)^^i@|)^eboJs?2xh}xRdQ|x3lH?rN*@u$B+E1caJvYQK) zTb^x|n|+E8R9h0OmO0y<%elLEeU#u8DE`k_n=4nLm(5V^&*!ohQzRFG2YTR$<+#A3 z#KiGbb7OAJDUAT;CQG(?Drc;C_8~n0KGODdR43tunn)hxo6mo@$($8rwGco^_tC?! zXvHz!lP^r}yV!kAOhEtv&i(i>w!uerPF?ypJm2(}pKjxPV^%D`<6p{lX6U76!zp^5 zqwFVFSCXy?iN;~^@3^~yep|{n-v;;Ndn_CzFnQ0dwp?xXmmGUT=@uVN!{?u<)!U~X zS@Wk{K#zMO8x{`wK?dkPw1N9sZr56kX{?K%ZwMWcSNYx3)esE@1zghPNWHHoC8+7z zZI3nS@p<a{PG)!b7|`VYM+ip--_3aL%KO8N;43pVYJRuS!?Bc{e?NaaxaHZ?Qx7F? zT968|dt&FtiystrL?crDy)kL~nq}Z9fAe=O_HC!1e_YhRKGu}Zft-okw$)HriO?BC z4tN&#L7i;!4xX2jdu-l=x0sfvS{r7)&<H6V5W_L`><0ME<{1(+G5wERlJKR?UL?KX zK$EwT5H!8)jV+MF{Nfji9EEls-!q$r6ryI{k#>6iTa#Z$%MBOC;oizftFEiH5VGEz zxf%6zf7xzOOu`)QaMc8^ut*myoYS@=HxnW$ql&VnReRX@rIPY-=7LJ7PamUPtg=us zk>$hwDMMCDeh_+jf@C>Le%%F?ujlmOsUp^}NVle;Uz8>HJGNn$T2N>xmHGRfS6AYX zZMwisI%>X*pCa**PX3+Wt!2xOsNqzUYWapuE7Uo1gj5lc(>n9Y`Av|laU8T($z^LV zqie~0qZNsG%vwfcUs@X-uZbuO;b#UNCkEfVnf9&!-fD0C$%mL`te{KTiY95{M?q$Z zyrvy>Gt$QNUXC#Nj{VaRH#dgHY2t9tf+A$Zw$7g$aCrOq>}s>8FHk7{;74HhDE+ip zu>Gec`cnN}KiY9^aw=6j7X}!}WL(eMHB+YmId7$}KL;4a_RxJDma(rb4K|!5yHr)j z-gn9Er)GI?sZ#2C1_x`<g=w5`=^<P+c{WdVE6qtyLn5B7Xj>`Qrq?0~lRPapPl)W_ zg*E<uXm{o+2KZ#MEde)gv_DNH`P?{R;O2HH7CAcSbJOZ8Jw0MWiwzB`FaJoe-)3f$ zwyaThRl1K2wpLXmn)z;qRAL9eQ?1Zm0>F63T(^EzW*_l<`g?ErECnbXP8g+AxqY74 zu~n#hM3x)1&zqc_WaHL{wX+ZY9Ztf*QQy}6S3E}C1CII_hFr3&U3C1wv_p1O=pB}@ zCucpEWs2eVnIg_qF1ea|FX8_HoNi9AjU?Ae#^n@#2K^`;RemtJ8TvmpD;PX%p|1}i zHcS8RG6_q3xH3^4a5c+O#ZdV-BceFfVppap_(y}={c;%^<!esZ;h(e0#6(3i5PkLM zOUlj^|FY-z&>X(MB_B{+qn^sK``i>J4r?bI+G>E0fHgwF$M?U($OSH@SG#gVoJ&&1 z;t`wi+CYI1o9{$oH@hViRh0)GZ`%KNu=++C34h@%s4*`pN{Q8G$uBP~h0%4xV5!Dh zgQyaYSpKKe(Hyhcsg?8b(qQ<>G8H9d!CB=0WRo&3A;lpS;ref5euvz8z!6I8AO1Fz z_i9nE=y#$14at4p0wsU@+eQ7W-`n&z0QLVE&+i_*TW|&;N}vc|im?PyL(PEp7p)$+ zJf{bdTsBIAdkt7S<*1wka8REh4TfZ7{Ej4<#^2;-z#`;q2UGpHVOg|p)NrcA^3YYh zXW*ae@L|F1p-o^Vi{ZfffASh6;Pd$0rcG7DToLCp;*GlX=PQfc+r~Q>02$i!rl`ig zk2VqU&knFkdx&a}tuB0h8R+cL0dqffBYa?$Y9q<kjcxQIDvhXU^|2_ACy|>y7)s); zDG&H^yde=$-$hEQ0`pcO4e}>(ll^NUY(>cUc15?!_e%9vn$Tq`tRSeUYk;-}#?aSa z8DB9^6l4vYM5FUSnnkRJ)Ho`C_eD{#M6`<RDddFn16`B!34n{02%Zj7DDmI!xPKR% zLV3BZm6XsDdhQ#p*l@(8dy*`S62&|qU>Ui+T=VB*85$Z=<cvQ*f6S9h>x(bdUZ`}S zh&P!m0jOxP0y`J?LcdZ|!~ay^e~q=n3NLj6)n!If<^8Rl!R(v{?4OYn6UiFt@Y;CT znnL05=(vHyc>`GTnf*Rt!CfRH0JI(YuA|C{A;fQ1zMS7>EW@a+fqL%zXC(usi+RHE zD6Su1Bb+8#=u%~x`|aGP2S^WR`p5ua{Lt<x?9JKo?h+Z+r7235i8~N`Sh3n$TXenB zlfH;{I_|7W9v*6W&t_YR`U`NW#lI$=F1*<0K9Ip^MLC&~t|s%imS@O#8$A96lTd0> zpT1D-_=c=NYP!k~pstR2adFXU)g*4!4n|dAlEGx)BMzR%piw_Rv;-<DM(SsJo-{d? z=+=if3cPl#)3^Ux=O{DV4Na<*PqskJ;K%w7vpiyabj)R?fIpOhOhL}1tHO1ZP%Xrf z@3P!rF%022NZpoJgL@Z;hO@9CD&fBM{S?u=?Tjnlxjir?P-51Fv%jS1=uYCw3`fE# z+$?m7lEnDI-nsue%j_zWJ5>JPD=nz0(sj@tG2`v0cmMoPWpnF{Uk&Yr!AORi&kc*c z*MMZ*;tnvtxCe*T9LV^?l@)U79<KiCqIhGMFjg7ejqdcGKL!Wk7E-=uheki3!5kd% zuqZa7A3a?03dhUT@WGItrGUvCg|fb@x;rpToPeEJE+M{gYvj@opm+>IvI34CE$Usj z&1cx1MCbJnSDKu3`T^Wzq5Ts0>1&9auDwv*C8ug)-EO)$xo=CVbKM0V?p4~7xc#Hd zz}^1amI({|Iup@(ffTZ5?PqHSY`Vs+?l(pkS!5L7?6^Uj!g_8G7!Uyw*kcu$B2to) z5C(6rFS1~+m@`waeur@dWNDBz)$w+VSxCt5BxV!t;<-<A>8DeLETj_QUs+3b+g&Tu zVD7EQ#;x}GB83RTdCS6#?B{?a97UvsNHa>qzN6|q-(S0xZ=Eb<&Mbz8u#*JN!4wHh z8|7$R-6IrN`DDj(*rI#!ps~f4cotu9{)m}}y_bajaZ$5(zYHFsecc&}Ko*povG2^j z(u^~{TCa{;qje6;UM+BO6@ZAQz{MoBRK;|9iYB#&2PSe@uOkH`4bMkUw(;<#fPV`9 zBUFPWDP<EFOM#go0l=H*GAizWrJc4k+C&I5oyv!{)T<&!54H9Gtz?dJte4^DQe-;j zPww)p&l*e(14fpgQeIa4@jdlzlfBML-F#Rahp=X<U@F*9YmxFqXqoXSAC=w2X1g6t z8IDEnSA07XB#%T4dmFK#61`P95;SG0ARx9o<J)+D9noEujN>_Keth6|<1a0k!?}bB z3gp4FxKVPt5kI4^yiAJe+FES_Ea$wuUt*D#D1oGJv*SnK+RpaIpbc(UxP%mvp?B!& zUC!1>QS)xNrdereLscHH`%d7g6jCuUFrZq&EiJrjp4)N|^y#)=u=E|3+`7=e5)=Cb zqmfTk8uw@16e{7LnLO>L0PqJ!Hy@A6{?}K~23g;Wh0eT^V2GWa#rX2+{p8O@cBeD% zuEb2+8*+-<PeWTB2e@yc*K|*~_EPxDAKMcZe)Bl%SIT_<aP^&bNvZy<Uu5<_Ra7M$ z91=!MPtwpnRwTcOt)1VScHZ_6WfU+R&6iSGg4n-5RX=#W1Z)E(3#W7h=@z|P#6QLG zvuIw0_F0uM8l!XipmsozDsNh4E<EJ!R&rqUo?;^sq@KydeQ@!v50ukJuM<GYWz*tP z3P2#pnjoe=*W^;tGJd*Rs1dX4FInxBNsRB?WT<RB3~yU`TTwjq@}|5K5D4{1#~UJu z39y}45oy?Mn}(IL&+=_&W;W5Lv(U9`Ug`!D+50^%r8E7Qykj)E>HMV#gMR8;zV1`L z2G1LAFWACze!psFFqWX`n!#%b-w`|OQ+L=A>ErtWo7YxxV!7;Q`Si#8&|F`Fr*Wpu zwyqxbXNxJi15wJaQ#sZ=V`hsrG~AC}XLbY0+Mh2G_9AfP?CqHc2M2W+O<9XU4`k*Y zY=iHa1^<x?P?^RW3vMl*rV5tImJ?+&*^1a6w|_Y_#Fr+U@*06kT_t|}<m74_dP0IK zZ?*o9r^HM)(H=vN-L^QZ%}Nl|73N$~>C!k8RKoI)L3%99^!Y>pyza*(7*`0M^Kxt7 zv|^?hbQ~h{HXXo*ebf1Jtv=!X-u1^k`h|$w9pBu_G@C4Cd|qB+e=yK;c)Y%Ldox5i z2=J%Jxv8>N{OK~Ojxhx6j5*WvX5S_VZ~xXN%zTF)nWWSaUdn}z@e~w{M8@2O#2$Nm zlPT=m2tLXjN0*MX#ww-;l?hp5EU2@?R)<CeHkx?#{;Fyepj+-P7&cJk7#RLlVzfVj z>UDuMk%yP@kwvc9l18#mmopw^4aBftEt?rXd=*b7>tJs$U*rc!s_Fsg(#<w|?!ZF? zq&cbQ_OCx}KziSA_GetHiO+9&(^1nC^S^GOCfQxsp<^WAgM5d^U%_vqtqu+Y^`w$k zlM#~|h?!pdo!gcI?ICyqFlL6vWA3};(7kGU{G9wLY{2&Zne{vSuj{_f{SyUZMB+M} zesxSfCSEQhPeBo8HeX3mgtL>G?=LN}SMFWfye)|v3B)hvy?p?i>>ir!iz1Hmd7|;& zW%zogS3LUbSJ-DGS~7VIN%5^DT(<is2JT6BRv>pigiX9=+rfB_238XR1fr&h1gsJ= zFBf8D2`qZ=Go&(el?#)~6S|S4Yjg(C8-hnQspJV)R7!fPWQ6&^!z+<&YD0vQKubS{ zwIJ5mpYTit70>QKUIF^3Frv3GP}?=0$K_YvTt1O<uSlM8fZxv8Mn7m}Oh(4JVo#9R zd-bP!cRy3nCVbwQ=3t){15$K=!@<?vWx`BHdal5lClSMQQ&KAq)aR+6>;(OGz1?VB zwZHkai$k7l<9U4j75KaU6t+jEACZv#;CxH;;(<){F&5xEhmFa96E;=)G|CgclT1;* zF#|p0ioa7yVE;lA8#rQ8om6QL0|VbdkS;nNMJlCri>!af<^T4iO+n&h02*N<YU?Mt zgMDQu4{nvAnLBVAGjHO6j_oaLEWbL|VdM+GZae(=DC#@6XqEm%icoh<Rz4u+Da`?$ zIvv+X?8E29A^Q+7)@(mWb7_Q=$!fk9CLe`UvKA?%o+&0NEAtqEE!>=AOe9h6AU<7e zc;f|gT1sksilHIqW<-9a_xL;X7K<el=$c#EPv*RJJ;?_+r4O4PF@8!Vy0_c5K}P@i zg-~4Biee0VIS!pSt}VV5myoNE(Tv;y<$%Xlm>v&nWG8=}dGNM5$a*5+wfkv``Eq07 zvTkf6t@itmgv1`v`ke8K*BS-KjIhHe%zv-qEzt?B7%*5tPmdqU%?DJC{G;0Wgu5@S z8A5yc`L3EFk?qLi{kT0iJoFng^{;{gN|J06rNe#wYZ&7)!%POhGgHfJn}%~L>@}Iq zJ6|}1j@{Mso^NuREnBIZ=VJnfn~tL$GoMjc-S)M{nmxQs*s<wrbblE(1=|=fUsdgX z^KTv+$605JCmto`JQ}4#KXx{zLLnz^X=F`l3-e{U>S6EvV#fFYtY*@IR&Vp?862c5 zPnA+u=JashySOfOxG-DbMD^w9RV(c95c}>em@NmBp{RbqpFbp;LOyf`Wn$pw#hDV( zPrvx9)x~aNs{n30Ar}MTw+ve5)1BZWG`0ZpZpkP6&8lK09(Ivk<gZ1Sb@WA7k-kOh z{|YCmKHajmZuX^wYf+Gq`AaGAE2Y>BkLou>c0E5E^SAe?j9l&vAFQ{76d%WjhCY6+ zb+gFrr;tzV=z&A~H8n5Pf5-H2Z>;dqb~~(I)%|#^*@magSp@HTdqpUW>16%kASTK4 zQVZ2(eIco;ms1<DDHuV)?$^oJ=g2?Hn>%$$<F{c4k@kcM=@@}Siz8cw>sNCuy*eK2 zlF4T;@po&(UjbeEIP1*l<87X)xgJ^6?d`&{;j1YNs@Mws&XaNR02Z*AhHih(PGPFc zQ}uQ5u<2F(*(F#62s12}FucBXx@i-8Le33Gs{u{Zrj00fwxfT?PEoTU^24HcUL@tA zq~Xe)@cWEUF`;YHZP`uB+lB+Lvj{a&%QCoN)8*pMq3?WXo!@XH>&tQD4!}F&nP*%# z78aBBm_Hqlyf@}^x<Vht`1$d@RLziUxYFj+_i9(VF?E!y8K>ZTXSvM>4~nZZzfB#F zt8Zn&OG6wH0{t`^E?IXa4#6(RW~0$@oXcy&+jnfjJ0-hEW_r6(9|#H89H9aku)S&; zM38yz>YK~|gfkf9*dKMTtPRPH$z#ch2%>R1?@<gQg7&2XSceQwRT%8v_C3j8Y*|h$ zIm3TE4IG&rr;LYkJq6=)hh|dQT(^;oV8hs1quQ3qnT5;-(?c&%$D}>6F+rj--O_PY zjS)Y2=Uwwg_>{^r>WKFIR3~)yeqv*(`(}68p_JoiTJ`+oFAGNPHo?j<O6)yeYeh-( zgeGkk7kbs&9eoXMG^9INev`%Jyn49lck>je{t))IRLJWFnz8GFz9lcMJEJx#v!D%} z&aI5Gg(me77n($lAJ^{+Ev$UDmX%2zQs@gUf3Wb4nR^-kq1X~^HcetmzbF>oP7{Wr z`lhAc@<#niDS}7nJo*>_I1<_CG{?>l+^x2|5H|JvV>YvsAEWG?&JZB))r5wn-qR-* za(}7<+vxt4uDa;#A169NXvBMh$Zy^U7*)4W_MhkzLV^ZtwQ9`e%h&iSUcBS!zxR!Y zV8$e*M6_S?9N+i2mbKqn7;T5Y=ElQ!iFT8KLr!Q|MFmwGNT!gM)YzN9G}Zom?KT`a zfR8{~b26{e5K3PciyjW?`(FHt1sv)>*EY|sh}#|OlzR68=l51R;ewy_+R2$#2Ge|F z8lGAa1v6_SdQ*Hkrd2U~>}j5xtsR5?iBjw$uCw~7!l>wPFSbMw7MQ#QPDNps;Mdag zeE0wu)NOd2Mibu!GOdYBJrx*@E0CW*wV?)``EULfF&hz1GNjxon=Q(&t+LYX-OGeV z|M+E+@v7Z+2tv~O)3S5tPeaCSw0#crbC@-q*;<TmV9#f&b=kD8f$DL%N2_TqGCAF` z<aNe?FFpPR5h9H2^7JaVmY<i4URZCM>L?t}><EhEoj<Q-;puXVLjqXG^vB!zAL7;t z(hd~edB3p-Ll5S1{Dv<6Z4Ux8HUlKM>q4QICNoVa$5*%l&ookd)$AV7@xHJgOoWqP z2xeD(U1B;sJE8Wgy}B!n?QzU@Lfo;$#@8~%8u{Z(^pa|S$Fjmqets1AN>_Jr5;9C( zgGMl$x=SZKWPJU>94o5zajIOw;4wo<M_AtGpj=o-Np!!_^E@fx70BOn|AAN#OKbI# z)L4AnXiVY-XH(8#0d4+b^c>4=<5UbCv>M8^4wku^a+)I5LNSsAyb&y$U9C#IneG6S zl?Hv<vbpba6!O10&ex%PUl5d=BAKjA=m|0`>D&-(_tTmAZ|jWFhOy;|=s(`ce{`QL zuQuBH{<hglg>}^f6{tJ(oZYK?u~IKEl7HnzbU7iG+fH}@rD=c_N7%e=eM*Ry_^|xs zM3f>AO1sO~>o!KSWDl?MMrrl7Fk>Pljjbyjl?;ZKzDt{vOODyl>YAhDZ_44aJ6;`Z zi*{XNMH0eL)uTA~W>t#1_(sMxTwZ%?^JB3*d1g}NAnEW^v=k>@8b@A<S#g~7@RWPm zy(udYHJlywqHJ}@Do#A1Zq)W;aJrmTYLrmGWH7rrQr{+*^t$N|lLlM7bi&3w`53g% zLMBtN|3OQw0nPGgd=2g5K(v!TE3XrYnF}04*a61~nNNyToGPJ968zozCa<<;Ras>0 zhdrhoM}_$r^pI4I_zK6D!q7w9AiAcT!s~t4feQ_g=`8R?GNil>_zy5h-fy8n^VMzp zrsX~6J6?(tT5t2h=6hs-QLyD~c-TFf)ViA0P`Td>bYr!M?OHEyj6NSQPT?zzD{|VJ zsY3F6ViUD!dF`;T^cLX6&p7GO1Lr%de(Ud8BFGTw9ICybi7~J`Jy<=1)XqkN%8U3= zxM^N$$AhvPydv*Em;9md%l(RXEKIER<{-S@nph*;HxXm>S3Y(xpmnbs8aL#5XEBZD z!;rI%ov9*P9>jeM_C;E-%_9>u@t;Hu<GpgSyg{stuk&`K>TAqKxS-#LiGK=;C)*&+ zO>7Zkq7+KbDK(#Ha%uw|#(%DQd;}Ksh8W!Yf0`3?R$ZB|3HKCmVTY*R8{=w>&U0CF zlW3(MUw*5Z4tJMVQu^`^?Bw>S$OiGmrt^6~m%jP=eR4it5OR0twqC9)y<Iszw$gLk zQF}~ZN??IThSfr(h`GPlR8?Z?CG60Bx_ur5<dDhj&97HqywnPaXtj+cygg!RyWg5^ zRIJs6@G}E|jm+QM2W3S2cY6+ohVk*{V$xUr93Ba{bX)Rv*Eu3nOkupq&^0_U7`)R5 z&%VGcfE+-kg!X!$_y&idNq#mUG+gacg@WuqjE=paB(Nf+W+S2Sn9A=Ca_m*wDX<fo zeX2uvRIkD)uOg9>blj90-}?DW6Db(ZZsAXi24dU`#K3$N1>d%w*<z8dt>)BBt=-M! zHvgX$xkfn}ua}_+B<{q~OO8XSh(3mjjlELF%7AUgh!$`4>@i0x-Z=33+s`!X=80kn z?c`q0iOo?!N=uNK<?V)yrLdGZ`NNkmb5sO%#~r64qaS8f3UP|}H%Gi4l8xQ-k-wy0 z^@SE~x=3Y@Wl{K{<dMp3v5=QVf>9X5z3|yic(A*+NbTNJYOj5w(mFpVAX+c^X}H^{ z*@=)D^Oo4SEsvtqm6GB`p&l3;iz7SoRSED=C&j|1gn2kraL*re{{w(l(&!>3ZMX=q zbUUf7|CbS?qhs1%_#q5aXn*%kK@oWMGm%M%nX7`*(0c$ihzN&IS=izPgyBHW$=h;E zCxnniGS)g8B(1I2SuSy?`vv@@hQ=smWTp7_;6$lyiO9q0(Wow-<l_gJ$}lf$ctB63 zk9lyYXSAN8MpSjHV%-l`fjw?^m5jj+E4tYlcFHm1xqpd#aUG7|6N9Nbp5_m%78f?; zA4!Mr)nk<Ix4-wuGwX!|b~69iF!&b?)(Hs%)q0}kwVWCo+w*d_I_!(WC;JXSqVQjz zOVySiY{E?&oSMN;v|4h!n`URt!E{72>&sRM!-MsS*4EbcYmJmjZdyZ4y>L?b@29q+ z%OUgbz)Te!+hx8Qy<4>P@$^p1yRrN`HV(!%-QJ^vh3fDVx5*rWCRQMsiNwhj_Ellp z>jgYe2jA5yQkdnfIME}S@p3yqY2iBZHZ`h8{3EW_p0{^OE5V6<6>w8l-EDcY7piYg zqv7Q6Ea-8MfY(jjL3Lj>UBFB_&Z}7%IpwfymGeTCg_6Th-Rs`mZaywMZ2SBuUo!9P zKDg%fMI)YGyC>nSB<p6MDbyTO%p$>c7gV3_nC1s`z%&edoE(5IDsWH_DcWZCoUCay z;PfIviKki)YyM62DKRft9cJ1OIS>*CCLx@E&MuWe`KrxQjz>^UN4mb~jZ^jIF%W;g zRei1O4tuOH?=LUN>LLmIuUx6}wpa4uc>2BPt1&WG+H<m!`6I){sht|Ya&qyjGgn?W zue2pb;n$L69HU1`n>~^jjnU}Y<W2&NvMD$YlY`RP_O7b9<Vg{XC6q}5jHm#jktMoO zgpF_)rK<G^W%eQG%k4U0`u)!#^W}E&ZTS2MI>^1xC;o~2F!7f@hFjq%Yd_$uq4Z?J zcFXJ2h3&g3>wsgss}z{qgXi1Q&ITBkh%Avhv*{hjGg=N!6;~XQ&D+AZqK0NKp><yP z3wDG7IKECBX6JE{)mI-8HF(wgXj2P8Vh^|T%a<+A^Lp54MA58t+UfI~KN~n3&em<G zUp{|<+FOSO3E;`X<XSorPO9r-yKHK{LlkxLOJz3-P(!HsOiWDgS!GqN{6{Lf6tW-2 z@VP(bPY?daph;pf7LVI2)vgbJK)~FvZ^Y)PbH-xEK1u|`)(!iR_C&N7+$Rpv82>pj z(r|{YEX9M!I960{LfPGFe(ijaLpdLwk;6|nTWq#~@&5v-i70FuSuSD$T%>5Snd#@g zP_HzIWPD{fD_|05I~Go$_i2~cMP<^e%>+yl-dcs^xP@TufasFHp=!IIT$=Ls(X6L; zh3P9~f$sBpnYb#-TsHfV{+u3lH*%ol$pm879IOQQbY%zFj)a!XS}mNCH#$8m_3e~{ z^WXj6?u5g(^ZC;+Qhg#|@mP*nz6R&+N@Ma4&uUKU(sRRB*>N)UvYgQoAz}(=ywD(& zl~xM@(dWrBNV(^Ol9eidx&wJ-Zq|aj@Oi+Nv*rRB#=4ZV4rG?j!=Do;G%O;GSF99l z`31W*-+pdn1<xBVONsZ#y_%kiv*Sl4aekZwGPQJ-*(3c$Y?>N^`Jb9D$j$ZmR@ysf zB&6$7j@v^tN#A)EleWLnljSY_1x2Fdb$=tKPxtF_748<6T5n3bE?tI0LLj535BIyj z$EA=ZX5^}@%UacgMur;!=v>k1*!!A3-y|cvd7lG^$1A+zcXJ1E)jskC2wS9L0qO2o zpg40)J`LIan!?t)xIb<^rn}y<r;LSvZp8oX<<CzDZpDi2f{^X*rJ{?l#@WuEBvd4Z z2iA$T^Jq<jBoUtZQvl#n((PqPzj{040P0jb@vnv!2OHmHsaCg?miJ3A_D8rfUMNij z=j@MLtChSJzTza+B6^Iwn70$1F!a>PD2l&~h}LS=6lyB6Pdh4bqbKY-nS!7k@*%`F z>c1M}#nFM>M72Q>LQ=C}D;D{X-@i3m%;5-uQfXweAB>ER8=rp<yY1{~xW4(K407B4 zG!zMpj*Ju(68f-QpI>c0NwPZ%j<8<Vahr|n=_B;=-Loj{=<B55nT`>zHbsu7eT)Yu zJ5tm!qRbZYl#UJ!Pe*^)p|IRx-DTYuS6=uqH<~;~?t(>swAr;#AK-?E&uW1Q=YL>D zRRbH0(tDuYuK}d{R^LrYPxzzS+krUhL`zjC`L2Q)gDY~ludPpwL2vw|j0R_w3f1Gp z`BFx}mmpo0yWVe6zjf$ZzB_1i6{b~UqB{9|ut{i;p)B?zZoT{~%v~e>PHMc;eN}xl z5l5(DzNq2D-sSbnu$0?=d#H7!<k(3*v)z_)3->8s86a8O{F1iK-I<-r7uS%xJ{s#| zl*Cz`{m^jU;@hr(T;LQre+m~v>j3xL*Ha>#Uz-sWWQ)VU0Q%LJ$H9))s$MHiw&X5| zPgu?UZG+7mNZVPP<#tCo?G8jf4kvtWe#k_!djmeQ*e}!^vac{PB;{Mz_lUbK*Cfr- z;&wX&$>Y!^$B#HLbrp{JQbwNG$RP6O-?YL;-5-eti!job7`BcYLtv-naHeF{v?+S< z6uJYDy|tVD*rZB>uK#2!FHN#GVYDvM?i7=$B<}9ZKlL!GDk1xiv2xcGY}++N7o99$ zlc^F`E4jICCwn6X)@C^@Dd#aHcIs%jXa!(Ky=s$VO3n6Jt1|bIHfT>4zbNzTGy0$D zwgNEX#vdPK7V+i+lnA8XvWsY?nd_^aB+z4jTrNMG9HX4|B+iW;mbd=n*!Jefa6H{N zGV+VT{<occFji)4)>)yKq)lW`UFmXo@u<O%5APWoFWLc&9>09kz>AtlNHq)<6&aV% zb9-vU@GSD1-}8g{CG5O`=ke%Uj5-q5Z|3x882u}`FpM=mb-aH}n{aM#)oln8dm?9G zt&kk*G0tZqo(4v11U(doIsyaVju!X#3Gg9zpqC+|PK2>RYA&*YT`ERQ2BNqxWAL)q zOme=dkYp`a_eQs#9uN{nw)Tu#3FPtwK0rpb#pv+xs(E#oA!%?5G5IT>{s#ljLyN`E z!?<glUk*Ra6005~r(CgJpztRINpx-{0d6EM0z_@!d%g_ogdfXFfr*_^w<(A~LmVpk zjF-m_@@0H-C{C_h*HIEg+lyxD$m&;YRgQyI+zN^D2cRW@ALnYz#hms?BEK)rbVRBh zE+%GQZi4O*AU_?~k1zt5tlj+w`gkqo`%a|+O9^FD1YT!(`S@0dMuMOuTEMeD$5NlF zUV1!!L4GP1?bD+!v%TCFuCw8>z*ufJTwB)(ZBlDcXbI}G_@}UBWP|74(w|N{Ufj+= z0|#})(xpB%?Yt66Zr(@S7*cYkhf<FQ{^dXx-gxpC=on1M00y7UyY-Q0P)m<7hnMf~ zgRWi$6oI^)!YUH3n?VgX^C^{<=iAnify*x#Ytj51seKhHS(2blH}xNKe+q}uI)4pR z12>~z_bx81tGV8;irwxzUwCilTAxqelP$V}fk}P-wFA{h6?~pN56-V?dnCC#2Cqyz z>d>4%(Yv7yJ63t?cjQ2Myk3L^2{k+yC*#yclq@v&tNJqEgDKi*!ibhW5e2>>8iln1 zPzb5{%8QPTwk=v~TAbWOxt_`V_}*e~A9$Xnd;vk6vJ$C@`8}$f`oLrEZGmeCEbRo( zMPZuWIK?8B!rU5O)#Q%6xDzy>9XQJKB#Sjk@mZpi>IzgD^y;)x*D#7~NuIpNN$)QN zYQ@-5rdT|wJ8NPvY3S)qze}UroX;K`iUsp>I5nxHQba1q=~Mi9DY;Gm>4QY*#X#LE zD<Si5hY_L&yER#LZE`!Q6C67s{p3Ug?Mzmy#DU$=2ib?NE@ojV*@Mo3Og_Lq=TI%y zzv194!dP^yY7YhS=DQz8*wBzL$by!mEp7-E)_A$-WWBw9e(KdOT4bu9Z)K-BgIO;d zo{BgLZ}E;_b+WfQVPQyxGhc9<2m0D|zwoKr4Tt^yM2b*e=GBFs0o;Zi<EKkc3TYK2 z3>X*D3kdNL7}y{*Gbm=6Ha5aDxNkL}wiUO(rJ|R&v|pJHrndhj(4E!U@oB{dO(B>_ zd$|SxhM;Dwp0TB@y2C(2-4x7*j3M`}Xh|!I^qAd|IW3wZ6N_;59+=B-BBU6{cu%s( zR1t?tM_>AEBN%|C=+lpX`AS)nS@EfBlys?pW_>&jspGiO;a57Vnp-26knXwD*;*^_ z`%71%qN3+L?Sv?%)BRSjUH+PSpfn0ulsK?{M@`}MLX{H&kMn5{BjQqxjohAm+QIUf zs?OMk=K#dQ5bv|iQ}<P%mD!^;LuKZj?uxzq=$*)?f%G@Rvr_B9d&|e@9~!#1?HyQc z$qDZIy-Qc^yR+>S|4JA*aV-Ona_7nE2`x0hA<CC6--pi<y?AN1oVK^HQKUPR5lL24 zZ<Skxdb@C6r6<dqw#(qG%iR+EBMTVB-~QSZKd%o8iKo+IeC@iDvif|_&+ec=4)(f* z!sD>sO)f6WuzsrRUn`iyUV_&Om48O(%z7{l^L@~_M1F?n77_U<TBmZ&jVJD03qX&S z$izww*E&0f{aKeeP{sM?Yi+eyQqkf@30Z+c4uydm+R>Ot^Ba?n?JX@*IuQUpR_ZS^ z#s8sWY~Jr#z~hd<RL$uO^xS$|$YO@ec)eEq^D8{&=g!}B<kWg>7DmxvCF7#L=$;gN zwmw&5BO}?CTfNC3-QP%`4s_j#4BZ8sUS1belB98<6UUF-T*p$qZr3bNYVVQ+cDr3l zeY_vR3vi$T5ngpt%xW8RT&j@jhmh9T(uj?mCNB?*?oKHC$x>tFb4f@|&sHoV)h9f5 z8zaFtQ&rzt((9FVJMUMlJ2?~Er4jJ<+cQQkmiLoE(^^4x)>MshzI@vKlL&}sCV!P7 zKh1u~5Xi#DwiCIY8o)Uh&DkeB?HhM)QvFy=GWCd52yb<`OfC`e(gY$GH&iE7QlQf2 zPZ>Wgqi_(@K(1kYisU{_7eOQSIH9hRh2hR|501Aoy~y`~y(Ltrhkn%G!<7rIDzU1% zqcv7>qxNd1X2kgNA0^6I<vp8zUdI8$xG%J<w$&kFY{l^kiB_*A_IPFGg*)FE<%Ebm z+g0j!yzR}vrx=fXMeMsTY|s(@=oIqn$R?sgU81OZo`H;P%*cNDDCMsjL^dysA$R;v z5Jd4oDbXM2II*`WHpA@4{2=b+PK2v~Z}UH`gOGe<EGU;T4F`YI&D28}?Xc@NVJQ^Z z%?t6NS8uz2Ocedp48EJju8=>H9oH`W({A(alZ`EIQIsCXg@X)C9z=pdd+2b!{v633 z|DVi4eB|KY+}2R}ajC~_R)bRc^EJ0&HZj@#uPg0-9ALGxw!Rh;6ar=mhqYc`DZY;% zRX88hMJ!4F0Ck74@UEyrd+ef__m_?w>64eTJ8MPmTKgIp0vXml!u)#+uel#&$?=Il z)CK)#8OU^A0)%1No#5rM4{B{pXy|`Kj1@y9@O^M3fevm+vA|^@Bm01_Fx(?HrxpD| zNXT8zLlhyoJt*czyJAi?76K7DHP+woN?eAs93I@NTpZ36NcqP2p~5btA9#LyZH#-* zlgnl>Ovi4+<RcQ>`oo*3>J94R{FPwue$`m}`ygmF$mRJ*^y_`G*BobQKNKld^NCB( zBN7j9nk8|dr@J1PY$&l$_J-=ai}}y;N7H~VTrLCt6W7$IJy4L@G<Rw)!samBX&+iZ zG&WzjYkOyG1bC^5fL9bfnXtEnNz-9}Xy!c|@xMwAh9>pL>1@L=hA89d%<rQbTK<)o z6j23~^8$z`2QIb$C7hrje39^=b`R|k;_#0uQFFNy*98e3#6D6r%f_x`|CI~y%%E}v z0f#{z^55MCn7$gWwtLi*#8jNF-=nD5#RjpKn5f^zbq{MHVxpeLw$e3?6=t)k{+p*i z*b~X1vpURvtrdaedOZ%&oMho?;~-+6%AahSp-%!ota=$<;t`eq-9t3To2^JPtk$4} zT1G5f5MC}q%4P>p+PHA@r14)96&207IXJr^k@!{$peFfeu}&6N`Oii39~Zzhdh+l8 zp27Q#WXkSpg`JA!ozTCjz2D``CU&I;YuRi5Rl7thH%{|U`Xv8<2FRQEhgRR|EwTFN z{Y7LdkBarb*7pBmGm2d<v+$o>2Gs!I<^Ca*cLwED%>VD_`u~cRyGpP8owauI`)h>d zC0(v8-e=KY>nmo9HEP@M8_qyF&_lvbqlPw+7e#~UIt}&TDu^Q0E%wh_Z(#4dcc43B zSB0Shg3NJ1Wjnu$QEP8ow^2^p%Ezr9CU#;T7`F+!hk<pjDr)hij^!TDjqyh|QZo<F zpjYLW2ZZwZmlh^{`r6|`{(HM8PvRC1yefygvj&k_Z_9eS0_!z+h8AQL0YGKl&Xb<1 z(f5iTWp%yPxy?fnOV9j&D)m<4ogrh1rt)ERHQ<wd;ZqYwe}##*Q&6>4tz87p?Bz?- zKK}j9_{JVbou~HA_bUufT~dh9emaLef`vx)(&`mQ9?!?#&b#3n`=`=HaT#px0o!ri z^9ep^W8@!>cjKY;n-VS^^B%|`BCRJLvVUlP3LR+4#_OE3S&Cw?NIh(V)#x+2wG;p6 z8zmhJtq#1Gd*`ige5%fX74TrTn;5s&lM!pz3(lj8j*2+Z_Sfdt6{22*$LZ6X&EPRa zf*!=1YgZM3=J^IC0OzcusGODqG=Dxa9AAr<VGPr-g%^<NyTV_hhoVm#u!Xws_T|T( z=IbrUcF9!|zAMz_D}G%l4xr&OW#g)`-+CS3W*A^{gzP(RDJA1ne|PYXvVLrT(+^<^ zX!eHZ2flnzi?E3&XhsB&_yTnWdlLnPh_Cl87Au=??a0XD_slw~Fg8#$#UmJXyuaMP z1e90Pfj}c41M1gY`XBz-+1~!>-nEXe=l?0EO>43fu*OF_-M%?duW{2Tpl|NBLl-1Q z_y1A%mH|<<-TNqriXtH((jZDocY}a}v;xxIT|=jYptN)&A|Ty44BbOX#|+&u4Bf-o zp7Z|B%k!N7r}N>&H$Lpy-1oXyUDsOc-W%yg?-fhnQ+bGvwpxR+!->SHg^*&=#PMex z$hO4rVcvKd%W@n?=A;cD+;?4xVi4>kJ<Gz`-%Vw4%3tP1v7^OIWaWeA?71{;E{3l- z&Oq|C_inDpN>R^UEDdgb!MFQ~5!lH*=$U>ql?-zn<ymW&McCm<9scu}<aG)H_-v3? z9L6dT3rH+z)s%!cojxmjCok<`*3L3P@&!7Jfk_|x=O{|-v7x{?WyffPhDr5Lo?^$z zbn)04euT3YAM)`ADeLl@@p$*HG71IFRh5Dm3@UeLp4@nmmV$qxoJwuo#~n9kDD~5q z=F>pK9O=RnaQ`J0sLp<e>zI+n^QLS1bU!RzAN#RkDG`KNTo!xzv*%!wm6G#JePMV^ z#vHOC%}d|S-_8@|I^Fc3Nnd_JEab_M^PK(WjFPg=#S6VVT3%SAZ7F14ebwml$#pZi zW{Sh^^}zMW;hIYQv1G^Lggqmlo0{uaWN+LDb^EP9gXJ!{YgG?o;%qM3coAY%VpVV3 zIsCsHZOKW!Fg&=xhN^3cT~C)gK7RJRVQDRv2sv{P3XPV$atqlLhFe*_!mr<b$-n98 zP)pvsx-Owz=)D_A_dx}V-w*TfkagiICHL2}W>2wVU6bT9I+uN8QsMq`<|p%6E2n#x zML#U+E_+t%vqMB@kOv~rI=0_U&mAeC=M^Cu^M&(M+E7+^pf)v9m()daZX2Lea<xdk zxS*`1UhH-TZyKyL;XmHQTGT(PD%12ja~!_u28YaK(RnQ4O989nHPG_&tE2nQasOVq z;Ws+gTzh|VFdpWZpW>XGrhU^OfpY6-v2ru8*?f}Y(oCemN{2G7$KgASdWmablS848 zQ79Qe`SP}#?dPm!;&22TIF|08X<hZKAdjK;n-e)jYhR{V_lE;Er~{728;vH5hgsge zLylsXPkzv~)@mH(*q4V!=_L$D7|p+YM5mLdSYj{EI^jI0nAd0VyJADAW#n+gBvC0P zWWbH%iW@4ERX^M&Yl402+u|K*s98H|NC9n7#r8AU6GI!Ms_SmXyP7={{$w*S|Jj40 z-RMmGQL(;*=PtWzPkkla(?GkwBgC+ka_oUTj5EW-`NX}hytmTu8x2)isglEXBb7fD zmG9&YE-v-GvSzby(o4JCFPQrHyb#@)N!8El50ZdG@j5B*G~sZ-kD#(Y5a2nt{crI9 z+PgGiJ$B?a#B;p4uKpb{ZC8}HPU+s1>%h)G{+^Zvsy>;SI<>(qa?Rjz^&qr|isyPb z1F-=TD}&IRI2F(c;~}niT_uyNpFxG$N#?z}N0<oZ<Z$HG`Q{g3A{`mxd`-8p9m;-- znfqhxFutVX;Ol!God?L3eR9Nkg|`ADDVxaLNPf~%ZQ9bQ4xlyN%)Lq^dm%FK=n~(y zbDe>poA`(Z>(rwL^5iIzd&4(l$lZ<*&R47kEN;wC_Ad)Mf}QMj_zm_?ue>$DbytB^ zhTU-?#J79M>sPovIIbAK`#C+f6yMWg=SPNWm67RRCuNJMfEN_up+QzHd67CaWZW+M zSpF@;$Wu^=#jTNLk`bBhE8(8QU1r0GwQntC=8$#AiCp{XQzT){aLYP#$B*Vjf7D|? zryLrFDI7>_U?T7<k5#|Woid))byD*tII=P8Px4a4*kX_dwmYhGZ!AhL<hFTYZ>qWg z;rAqI(%(mQ_(Sex=1wyNn_YYxxjq)sgR-u_R6*<LIf9{@uYXI)bsZh;V=mq#QFKR_ zw4_!wtV~XyWjFlf>|kOb6Z7fX<8R$|4Y>{siDqKqf_W!-<7nt@*Pbn>)y!p_<t`nD zFI8X~&5p0@O%*G{L9hc8_iJV0KDgN0v(3>zJRXR=%%pZ>evSuFYJW426Q|H5>MyFw z*4H!7?}Ye{qKVgvZF*BKJ#3m4SkGDA>mo_5G;7K9vmWp8wH}7awXZ~j3<w`XFBOpk z%#SNi8;QIO85s+`QCU9JN`e*kXinV)F|oV$)YHQmN;T!>2hBoJYp??QO@8NOa7lTu zs0_zu^Y9R8VPmy%Un+ZhrNv2qOyWJu!~Bf<S?nA>&1hV6;H7cbv4Y>vifd1q&v@Av zoagpop#7O0`?;nG998mI9W)1j)0rls!y}_PC3kO$E)v`M^{A}}7J)q`n{YyD+#=js zqgzA=3Wz;UQZTvRJz<=M^IEf6tq=!;+4GAjhX74j#!L6!H}1B1imo2(X3)xn=Q^)U zxVsO*!U_{dfWxFC<37Jhy!9M`a|%yEY6s`Y9nJ=1^9qL-#kf@&8t0_315&6ZKVqzm zrCa<SZ60>DD$u#OSPf5v2!>>6Ax;C^Z=NiiTENJz#CD^tRNF{8e)z?tn=-Km1xm_G zd);gtUM;PL{qX582(i!)VV$$y7j}tRlbO=E^^frkw~d?n#ETLfsUu!p1z+t6qpmW+ z1simt6CB20&DOL#K8Xj*5)$Zw8rqz&dvGeQZthz5d#GiNoaztj**_Bo4LcuCcM(dQ zUXt%VZMEl?yN2e1%w4~%zf#t+zoHz-u-KfSl*Y9Y_`Nk+fZE&Qy+<0|bJI{j))4>n zlTDu2Ykj+}j|@}}$sCiFwsby6jrZ$NlLU`6n~w~xh+k?wA?yKLpggDsP~$i!^jRwI z3)hl$b}O8n%TL3l$}&UZl!H(A$n5`G)*ktifih`-KWk1DsADD-@OZpT1ztKT<)>m- zAnMb)n^Z1g64Z@FM@rm}Y6|^y^eLEa-=NKTR6=}xnV7*z?dJvfg7$mb!n*uCHOx)4 z3!=6Xpmn_7{1<p-w$5T@Dlv1tS%_$%aMkeSXiZI&`y_e{B_eetHdO~RYuKkbw~jOF zeIws8kEvczFaFoEjQmZ1Y25B6Z`YEk%+S}PzkXw-wTEG?9wK>Ex&!1BeX@=_4y+4J zY;BbZ97YroR3E`NzQgeJjkSOU($dCp0&GolU+eRsXrn(|-fxEgPrM4`{?!qaB|IgM zWQfZ?1M1+AzR~P1r3%Fa!FgZyL==jdPv#?bO8DD<#o;_j($r6{Xki5>7>0&TVNlLW z4I>i6hxklQTZ1bQWT6RR@~qvGjN=|)%31Od9Oo%}1uQaYTz*qGj$QJd)8CK2U!4Yv z-{he{LPTjff41$y6Tw6o7*|?|mN~_<=WMbcKq5l!Jht->Z6-VFSKueA{0=3e=7SA* zn6s#6uQQ%&L=qBGv}oZDPVjt^s5vCqF+L}~Pled2-9w}n$x3w0;vi}fddxusmq7*n zC+4D5^&7bEic{8+3&NnM(Q2T~>`NdURWEk(_uJH$(hght&Hx{Q<n@p65!jsTVshJK zTKo4DS7W=GOPsMGKfPNZyBx+(NCoLpa<S-_t?iECz`@#=X8}$<{P2c#5q2vk$1!(` zW?#~4RKR`eVeTgWxtp7*=_)vEf%H!P?Tpms<=Gn<8p+Q$TX}xwYxXrYb6qL7!B2JX zM4>GM;Vg{Y)=A9JLe36Ik$<N8`nJ8~#nBb3u$xZhDM{`A=M@?4?r7fCRV}ugQXSsQ z*%ibIule$Q&6|YmYV6X6CY0|`3bt~S;e~1Q691Xj!?Vy`UH8V34b)c1cReBSmDp_~ zkYmdaBSM-XFuOUo_BeJ;xBUtholjRVAYZ%)U;JZXq@f;|0mc?~n?is<h>ifj9bJJ~ zxWzwz?|>JM^gHrYy;LYJi)3y#A`xw`bje)`(P8a)2;^rZt&SI6k<mBh5*)TKfV`mo zBI-V254oHioL9!*L+^;$`b+}|CsMI-@K!deP?=1H5w;HGGWiKCTq&ge<@uNtkYuez zjQx=BncX0p-f!*Mb8K82y3Y_1sFj6AlBZzX<S^J!3M3a>U+VT;ZgaYaSfC-SjtJ5` zb>7|PR4@HTm%yysZmy;KQauWcrN6!QrrQot6l6ZNXJ_sqchD_Gx_U+?vElCT{(fHQ z^!JH5<=^=6QG%tH8|0;~Q}w##oycK^rO_t}k)Z0RSS}J@idA9~^ClCIHCB&9y7L1) zB*Hdav3|_0d!;5{z^=FRae}y(QkjLd{^zKakQP)MhX)z}4^fwlB4=d3^3+3_lk_b& z|4iU4>Ze&vr{OSA;i)QB1$TsmW(B*FFV)pe;F=C)SPOV_y?vQTx=#`t$C_lI3%*&0 zg<{yX<VCn>LU2(xJR(SrRpM6OBpoFZJ2G30#Y|zN(fiOw9OSHm6c5&v?nC0Nx$|jq zlk+h+LR7QiIh7YSm4BOFKG&;~0~0*y|3miJ{Jv8-N(R1A<fXznoE@i6wkG-lHGxRY zW}d9KDN<KzYbwK_tn0`H<q4Z1()J~cDwdApmI@tseRWl*ChC%e;rqnlO9^$0Yy3EP zs3*<0NB6(I?O0hDKO#U%8C7_*@84pw=;IPHXqH~*jcryzT3Wd80E5-VzdVNw{GQiA zy_o}BwfvmB(7>eA3Oix3rb+#o21h-0Cjs)0E`P7cEeljn+^Ki4iUebi3)i<xQ{sDW zeP>LjxlPINW5jr)V8h}Ocp{rO`rAA5EL6>p5o5cK1h>ClV$5&Q?eGZ=zWbC-i7rER z0bi@$er0)Y#^vM&yrqJjxo&k$iUVzLuEsXk0PqFf@u6_e?QwL9d{lGyvVC$=CYEel zciDzvcL|;CjCl$Q!yP_-rq2_fsP*&DO<8O4e&ciYx@#mK|G@2%J4K+MyaYZB<qe&r z3?WsX(1TWsMT)XNc$Zk|Y?+1Y=YL`mDLTh`AuM%A4AwRiTb_9FJto@<th1?Zh<jx{ zqk>~GnfARyHMTPdzsa&Xa*t}$&BRRW_sU-`^O*R$V`j2ZCaEG0gaK-RUA9#lRAu1q zowfjolrt_a6|TlAD<P$lgdyza&$~ftt-vvI3_*IO5~JGMB6Z{|Co{YR1p8XikIR~O zW)s$$&3{ROUHE^)${!p)!P&AJp~>;wu;2A8Kt)YX0)A^$0&>S-)P!G4jlCMI(I7!x z<3SVn(dxf|#j@7O$FP(1rwjGsa)L9nCqc9KNv^5gy;d|93g_qZ8DL(7=RR2McSxit zSDCfrCYhht_cW{8RJ5`7xPKUA-4x|L`@=n6zN`YxKY}qO=cl`E_H=4PQ%_=Qdh|l8 zK{6yG8Yb-j^`fKdjQ=LD2CepR?=1IkFr)wfIpvi%w|_c2i3tA3wtCw%K~=Y(qd(>T zKSI_;SvfRaNatiR|4ZH`>Sl(snvRA4q8X!PuO8;&JjnkSak!d1_Ti28f}4Z9yYw9k zc>8wM5xm(Ro(d_GRQ;Y4k4}NnUG1iP_X%898ycfFs=QNxLZ$eEy?Ca{2cNH~0smJQ zUcMZCc?qvddJm&WTvW69`xpfVjls_vFwLEZMvWz#?++QJI;mzC^nUCmK?;W!{e!Jo zMIH&Cmb0q<-txSouD}YDD_pil&G&`9jx84-;V5R+i$ro`UZU6U?HOlk>CX3y-eDT? z@xPlS<Zb+mSKa$s%%fMuARV@l@#B2w=Ue8pe+nVWtb`y{=%Jspw)4c*4EZYs#J*Aw zm{okJQPj!U>8z?OJQ^}`JWCiDvA49cwzlTe#56k#7u*J(+knydp?F&&a0Cw~5m9#) zg<?&cmFH%wb9<z^9HtJr^^uQ{{avCxcD%EEAL`z-o&IW(_j)P)ssB}RM2Tl8y@2;Y zzl+k|4#o?6nta-}_PviN&a#MH@b>A_n~ZU2&zFvSEc2vx2P4Ocs&Ne`$E!kf`QkdQ z3~6Z#r(fChjh&#gkP>PYeQ(K_0*o8m;pn5f;eKtf@SQVw=^QU?J;ehtcKOUKjp?~J zw^c3A6?zOaFzeB(hvPiU$H75%*O2Oph&aBV6M&sQV>ovKRc{;Ur`VlV_(d<}7L7Kn zRW~l#*qonS(ZLSQ@s)kF=4bW(3j_bkztyOShZ6Qj>dKTq2cAm25fCk3B&Ji%t$pIB z<Cktpp{}NuR5}pGnO#?Az3^o&r;~ug?6c0dS-Od(C~nDXWAg)=ot=)Oeh(`x!KeU( z^vr>1CE4|6E2aVXvjQw~<=w57LQaXseBoUtCFF7?2Z&F)aLDMhLnOB2&>|YCY)J9X z`(>q%xNW3<DS7K-B2o!{O7$+CBp}2dCW{I63I^TWZwjgLHoi8|C-r`v$J~4x{2~W@ zaX#Z8c8)ry&BI0>T}8{06@SeDGxbL=uoPC^;BEYhQB7SenJ}^!p-Vwn;qIJvdm_hF z00}+v!f{uUr5Cj%8H4vMuqm18=%<Shy6#T}&m#m}l$@p$sW-l{LyKMqDQ~TqTyDO= z^HY)AccW_NX6v1^c_jk=l`fthCkfN0y7`%&rRY4D(Zbpvl$A&jDV6^$)IbsE;53zk z+<E!h)|l(UEYYA@bzl`G)_sbs$QNkqN&88Ag}ork+51h@7uZ#ar_;PHWoh9ryW;4( z=l(JjP{oU1Pd9L!f`-5g>{h48O<&d$!NXXe_Jog76j)GJ_-J9cDLVz#iy}q|d#yk- zurbR5<tw*GiIR$%=SMIVHc__sQ#_%7Y5^0!z!Lm2Q!_(MelXgSE<hcZ%F)~*8Urg& z;M+ZO!;hR+`eZ*%aWp3xolJ3>+x>=zpi?z5CWMD#dh8cH0x<_p^{<>gW0;O5-nfj5 zt@n8QdF(bt#xJELb(#NFpIYQ66CbMgPt-M5pC^Ks_N%k~xB_t(D3gMF0%)_0Bps-8 z8odN>4}6+AU$!3qkw6p57XU2L;!`5IKqhA^W$58=v#nB+4LlrV$#)4h-^S1EwePm3 z+B)c7-7~$9LwI#@AcUMrwEP67l)@#(##uZg8I6Ovsoo0#Btye$Sa16FGm28gMbULL zep&6o(3O(IwfIJ!<5n-4cNpQSdW52E=V9NvWt{J`yNYj>z^jP&1<*Yyp$75%bH$RU zZU;jo#3Gsg?`OZ!8Sc%K=#5<;+wG$-mKM-ZV6=F)1j`V|J4ySCD;s?8-iwnGX`xln z9zg~j$Z9T<D?cxH^o~bt;dU*}sxC_#Bj>850K06xw)<%BQS!CkwTPv~Uxgs|BQ)NB zElwwO(Sk7UVyn}%R7k8>Dodkm#nYOax(=c@FsjGNXUg9+zuDD+QIki4xDlWE)K)o+ zL0uY+T;UHVnVo@RE<hL05&E+X!Xhoz>Cal05LJ>*Rcr$|WuG*P<~^mk9-hxLzZ;k* z`78S}-Hai?9+&&c0#->euCGCUqz<K6RaNC~sW;nU94)uMe_3Of0jq#i6&A(FxSnu% zn*`sUX_JDnc9h$rcb4aqFvXbGw%)A)zK6u*wCEp-I_gGQJK_SL*PNKm0f!L`%xP0< zPWZHJ?~s^r%7?X}d{>AXW&jx|?Hl-iSu=S8-G=-9Xo@PZ7GC7VMr?+-u(P@s$ywM% z#OTGo;9lkU8J-mXxoxL)7BXRzgJAhhex4!RISgnoV7c|DU6Spb{A!f5eL=$*Yn=7B z*U!*|zQFot11N14DjA3qjs}+VrcPlWV+>~y+fE9*Rll~vq0oxf?J|@2w=6U**?O@w zb@5&oq9GDQz86FFFEpZYmP;5>l-0`ANqbQTU_AM4(cys_qgKj}em8Kwh6X+Z3k<1^ z|86N{%J9a}H=ZV=3Fd8&l@y767(FcSX`yG@a>;nta_uz28Dx|dm0!(RSlfXS!G=Nm zGA;*vjr-ghzc?Ak<fT>iK=<O`!FkyY3`oVM?KKX(u>l37*$PP)C_tAogD#OljT1Gl zcU^yD`9NRdVEUrPU0unlsU<3HZ)}wC+P5%I`9(7P#=3BZ68Kcpv|mDMrj}tJM;u+P z6pv~rTk@=OVWZp4>JJNDW$LxTra`JEq5Xb-)if%+Ck~)XlCtk~GRsffDO+O0DwrAT zA|K|V`KPM3m$nP=E4(*WaA%L!Pwn;v$$4fQ>&>nof4rMp%$7dKQ)D<ho5Cv9ZjUS@ zuE=@O)?ZArRv|?k0tj^>ljx^OZ}txumralkPKt)PRgx*m%mfq&jY1(5jlUYd!SY}p zpQs<2dc8j&4`aU9`XQ3zsbO~^2RkeCMhf$218}11rd`vi#1^1Za;|QI#C?d0+NXfo zpSB%#oy=l~-h~dPZcc&AUv==WdjxZf2f}zAT~<Qe4l8}!BM@6kpPn{XaY#s)U*IXi z+Ev5*J?&)$#YF^D=9HAzD}mX=%i`mhe{Lztj+H8PJ&CUHHG@ujdL+Jiv5-qbE*gJE zdS_kFL(-8pDeKm!-*oIfbG*W)8JbyE81m_kdg%(9z-;ZoVq#6WO$|Z=nalSD=^jt+ zMRM2Ygz^JJh;64N7~G;P(^PBCf)ht@zlK-+FvX8lDF)p*gs~pyv1)8yFSGu-Y&emL z3qL!%eoD8u!Mpc3Bud+BE16okJ`E<fQ_CWd7I30P?t-6Y`yqVr2|hFPJBE`Zr+rT* zlEvD(a8Gk5!CMC(f@r<e?kag0Q(&n3!LDdZ<p1;nlv~O~$gJ}_gst9+F?UW==>sqC zSXA#cPonL8<dy1c_t!NvLY(-3@tBXCH4f@df%R+uEAiO(eghdl`I7g%{&wZzbGXQ( z8)1*H-84mvLvuFp4<PvbHk0}7p)3=SaWpzflnT<khqVjuyo8~YI2YA{Y5ECCl#kzQ z6E6?a(LQ<EPQLonP3nz!M{9$>fuX@h?(0I6LAxtEku$I}1<FkeU1e%C9p{zR#7RB! z8bLsHghC4Ur7r!{oQGzg8X@u+<1R1iy%fq{+d?c7!Ae^bCV?<7FD^7svqXONcd5Pz z;G8xt34>@aux-w|FJ^SQ2E}Ssw8ow7BCXOj%)9EVmh~yZ#O`(&^i~YIT*2p`XIz~C zcRpMj`ly7bUo9BKJDp+Du{tBxkwOTsUk}!5C#%7{4<I1}F-FQ2bOZ~x*-D3`TvE7Z zALZTp0v_ar%7JNvhE1k*(toTccu;PpZ$DLToe#qr&SSZe^#*n_<Ut!9Dd+^aZr35O zxTK$ybZqvI0d>Vt-LZh<gZJyMFStoe{wRa1-R|^FynU<PIgMG_%XUU!WB#^w-CP_^ zK8elFjXXyt`XR1V?$!=-2P;8p=?vjY=1gdFzl(n-L3vU60T}4w-DMO&2A8r}&ty_N zc=dF=C>xLztuSXn7k+}vGQvyLv(F?}|E8XH)X@<Kb4uoJd=#v$ff?rz0rr?&bugmz zrLl;k?bzbU<DRHPXNkKH;#;`_HgpemEqx%NL7=W($=%(hyk2*yR^#l5@W~IRhJ5TC zqJQoB50s#-9j-k5BnAkC*F8s`>tQYr&Af0oDFkyL14bGF1lsQ(0=7Ontj{{yxc{T+ z<Gz4GHdFnMZ03=rn79Dbw=`wNmopZruCQ1=PJJEx^%=Ug)F@)htlbY(HSyBC&+j_t zm!a)OPZZJHIiUvP%xeei&}2TI)(fedWBZM4om43nbnkFNQzAOeDu(V#IOn=uWM$PN zQei>J?)~TEUyTxo?sNeI+i<ExF`k~XJX&sd)p*h(YYpqXa~xt^JhZ2gI?nQ}PikeD zu&6!iw_O*{Hhv+mW1SQCqA1l`{;~TgwNPH3618WwP36_;#EFS@(nlw9hu}7oE7MS# z3=y9OQ8`-N04Whk^s=RSkks|6cvt9glSI~1v4o%cZq&zTwdv!~4*uvTj(~n*Hf7qf zpjYv~P1SWjzRpG`m^?h4?M1J7b$9EdsoHcrq6CmiSP6_`3=WM^>Jx#~rw2OM$#Da5 zw=z7*bM7Z#d<-otZ9u#pBBd}~I%U*)XaC#7nVQ<{BQ!RHGf=;S$=An4$(0dHCvh*V zqKISYT?a<Byj#7Y=I7XQvq@=wONz-EX!#IT|4$%edvsxDKPORUq#{mTfZowg$!V;( znzipwWb{rw!Zd4%oj8}HG_=h6W+Y_x{VA!^&dw|D)ei&}ovZ**C^yu3)-v_9*h3C5 zFG4S{Zy%d%xuJLb@sAE5od&W2q(I0!VOY86!hzf&sT(o9=69kZYf%3i@o=}dGZSwa z|Iq<78k;_eX#Mj;HLT<K54xX^HrFe#m+T=aup>Z-BdjG}j~Gr*xJyIvK9keaau&2i zkABVdPVHz_z)PVCohL=0fY=<nkb&#bk0#Eanf~@AI)odzqg)-U06hrZ&&i8x1Ltwf zD!;C~WK8^<qshRU&uvfTr={o6>Rp|=q=db-!2I0@a7a3APR38`UQg@a|H|DFv|w^R zm_l<|dj=?L#P&Abt3IO-d7&{2i)Umi7!R|0#)b9aW0a*LVww{zPNEQ99^m?zG0Z#l zU7#xrtB}WzzGbQ$h=3_Ju)@J{`gZ700WKJeu<7hmaHXXyM?E07CA}t*y3UN$X|yB? z;>E#FM)Oy%1JMy_iS2z5U)%o3v6i4v@gX*|!Aue+zm8k|<XKCw1vU~SsmvZE?A7-= z>}V^|GRMxRnO82$jS8Wq(hfw9Svo;o4xU!vFA-ig&Q<p^Pmq0jicPzkX@zZHBxwGr zyY^zgt9q#G=_F~H*q*4u_C~&gH(nZO1yJ9fLp{!a@=c@L&r%Vg0Ky!cKbz@V^Rdv4 z!DM^C6gT)$-+;7~C{w-vJy-B`NVv>>0e?+2$NbVkY{6$Tup9o3Zgj>dO=r2Z%znN; zn@tku`kM@6xtED<k<}l`DpnKdNv6hRK2CF07A2JcU}9r{xvHs&W#C=MP5S(B4|wOL zPkHkJuYyg~R3c13=WtnJbMI9?PupUYKI&A<DsJkoA-x<O{kzK4oo};Y*JGR$Ysr9W z*uTTAf63g<ZvGsk!cLtOjTKAAA;Q&CJR}Hx?cBAI7++;6Q*7<cv-B_-4V^t+!{-^2 zXTC>^{3VdVIBh%&E$Y7SxwtYaJ@-||!`>>HIT~-2b<oJ$FR<=)q0|{K$S%1d?Pa=P z?=S$LUOGWxia3~kSEVgN7AEoGAr}{oj1o?rmB#MHD2#Ve9JxyZGhfzBgRg(lUHy|! zaQ<qgIEJA{Q1R9{aiy_w$2SVGp6l&(;uy8L+{GC(T=!P%#x(-B4`Go@L}~(nUX|;R z!(_9)OaUO`9(dDGRGEfQNcwf;r3+NtPv`Ab9<dRq$d7jGQ(WMB^4Fc<>oozgv#G}U zJa%=VSuffj4sG{o5|sR9pUp(mVq};XI{JI9gxAPfp3pR;u&h8QRkdc)Mrz$5lHizh zh+@@Zev;8?aKKw_S}%TaekS)CS@Y8G#_ut8akQG^un&(Wgkh*`!972#)C#5HU4N6p zu2oM1?gI_zH-!HY_s-}MyDZFYWV&-+CGQjRFnjN@vpwPVb%~L^xwakn#_ez8I<W?z zO90)`q?X4Avqt+Yl^Qh~yGLX^c#OI#ehOrBey8f3w{<@v_A`?^Z}k^THMA)zVB&T0 z0A$b9Q5gc<$PhV!;h!i*o3rsa%SjU({d9nd(&ZHD4TD!aoMU7Rud1VM8xQbP+TZWl zdE+^7xR`HNyr84^m<&ng=VHy(Cl>UecBALQGDui-|H|OY#pyJy((c;I?eqBWs@ncP z)v2lm7M`0q`-^AU+WS}=2y#6OVcif<R962OXm5qvko(x&;j82Nn_KjZ;d^mZLn~Jd zbWRh=i`jd&7yvgB&#(UFFYBZ|r(rv|^8IXzt6Jva%0pAC#O6D!SMPV(>@Bh9`w>oi z;a_TMOHhpnzR%HoZ<E1Hl9dY|H1&lUulGXfg0CO;ym6XVxv=saaGnBp{d$O#OJtLX zV3l>;-zB)Fk{a1S7-;qJ+eigR^S?uSDnM+0s`s<Wj&H4u0a>`$ck;>SGPV%AbkSaA zK&|}Fz3|OGhED}#DPwV#<|oy7TN|9QIy}QaBwv2aSn?;SA?+uy_m2I5pXFdk^T9oi zdYftli=~&Hx|MIZTW9ZUIb;q%s_h+{_M4OgVF-x*s4Ag>;Q8i4w3FO5qe;ZKgA6Cx z`;d_Q=Lr=|{7TZXMt~pzBy}-GYzC;nQPzYJ-&*%ynO|0eG@H1)(~3HtePPW%K5*)L z<h}=Y^<HVJFHYZ4R#?t8TeBTjc9b)q{!3Bpv-fLeQJN^YQ)@&%ULIFn)qVb@Zt^XV zNxTVbS$e%GC(pNmoV{k<Wo5C@y^ZqmK1B1$oSlH<4e54u7fTLN&xKb>yJH$U7zsxE z9utvQg;^#oTlDwZr}GwGNkrW}911opMLZQ2iHz2271>{?y~NAtZ=H4!)s=37r^0WK zvJrFAl?#imFGMYoo<H0}LQAc1LHrXX_Z6qNKe!kyCDXxr337dBy*D$K9ObC}AvWOt z?*-2NTY!iDn`Ya(v){~mpEnA$<ru^t%p@{e;2sm!A?NVII3L=Jzv|3Y-T>TI1oy*p ztpuW1;OS9Ocn823dA9)alxSF6UP52DjR2iId4RpMo2!%BF~}XJS;zmE8L=ITJnFsX z($`j3GVe8VHwq+9OaLuVoQb2Y#?yLudXlsd=S3IlG+a)ma?s&J%}#u3%kYx+jW4q- z;!;<0RJ~%7#O4NMnB5Lw%1ULk8|>T~qd8Jv?YsfZgOJv5v3ngC;=YvHGGx|vX`2_d z-Q923u*=G*aktmj`PoOy*=|S`pQLrG;}KJz2SqQFEONBcd3_?;`usz(P^<F7DHX89 zp(J74y@uR1?EYiq%2@0Llp$C5+(XO)=MV(o5r7dC0L5gvPraLtO)~WMOK;+Wo-oia zfebAq?zLc+l9HPqqKW?zI2T2ZeWL+}8eaMd(4_2iH%P40DHAQaF0K`g$)1vy`c{1I zAx;Ect$z3<F70-52=mY7Hu;oHZovLiwRb6UhwI!_HJ&+>8Sp41V=@zaw@@f_D{&n- zH-osT%hohz^z&7`vCTg;ofCLNX6rxqSmt7NYKBQ)H6BbW<{unvv#>RvNo8h&Gi5u# z<)Yx=&%;Y#)rZ`!ru;vhKB?SE87LH=rPeyFaY9vzRL^UF$q@f;JhnUum+b?Lb6B)W z-s86D(cB@{ITCXZ09ge4rQyiQZ4O~9*x{PIOvBhVYWetS-5|^IHZc}y^41dSNL4Uf z=BC9SfRSH2jW)BKt?h=Hi%PAj<~ndh!MP0yWjT!(9K7>W{H`ZMf%miQzBxk+`glY+ z*=>7Y|F8kmdbv1u%vRiRr!-g!8|=M)A-H(zt2rD|IE+?nk%Z>h!!L6b*Ruh-$g<$9 z*Ac?g7tbWbbg`8#y5r@YX&qDN-@TnJ?AOYc0i=8FpZhlu1L$u?C*4rRpIVfg!rU%` z!^R}oC_^M-b2lU$pm2~~gL@4|k_2ha%P?drxVxl)0iu8>^y>jO_012x5`U|<?F@{} zS<Fij#j~5-HH81edKc3lT2rYMNEJ;oI(?@<7j#BwLci3N_tJEB?V+sB24k_X6Wua_ z5^5;wj2z}O&%tL(bO;X>vr<pHyIj)`mR`ZuS-Ua2HcGzfJoLPV@9|QF=D4Jk;wD1T z%d$a*L3KF(@>F^sx)X+pkyFa@7aP}HlY8I(h&6a!1NmU@GUZ3N=d{)(<d*>VtywGF z4MZB?=bz{-rMn;=?s~~diJ>zwlpE=7epnre8%gnT8mWfxd6J{rw+9rfE4TfJ&fO=+ zqjkRA1nP@{gkB%jsMaR)pCgZ9I3nEcuPDa?Bgm7rYKFtJ?3NF-b{bB$9-yUj{o+Pz z@igL;=U;O^-K26+c%njPWg1{`2Mr1?TYAltT~?ntO5(9o#!|XHqdm9u4L;O_TZy;f z%+sHqjIqLLGC%h`pUm)^G%?(MBMvYntBG3XrH@rV=-*zPo)j_l0hI%@?n0!5-dM8` zE!gIxUo%~Q?X}0mX`I&u$^48w5KaGtJTf3|u;Dtj-zcb}TJ={CWx@ha{YiJSjH00w zjo4aRnIJN1$BFP%)W@VhKIP;X1L6&7QTr}aDL87CC?}{|*{$BaRycCoQ|ek*hzsB> z02n=>t9pBmyS2Io)NGKR0DaI|?{B|_t~d3kR9P4gZ!e0|A_t6XcZ*Af;$eM||8gW< zOz4~VAXC>)D_zg0&^!R$EG>B=sz%uQkXIlTwB+gGVW8L}1}9jnV*Qxe{4yg;3H!T& zxu^9<(r7lu4zva8ESC>A`sJeiiB0$UGh$(jVhKdKs4%tbQ+esQ1dVROswoqTl6->= zHLA<``zk>b!?&LZF_8=Gta;@;{j2zT4XA-Ov?j1AroXp$jW>kJ59M+44RgZ(?x8e2 zOI6?ej&R%{rAb7DRRWa=t)Oe{&BdiQ<(&|-3{^^mz^k|RR)IudlTPy9b2f4!Q)6-J zD!#WQ^IcHn5RKoBzEjXuUA0jL<htcR_SXX(a?tXp?5*l-bT*20i_>mKJrznnZr)Bf zb$ofgfCS)KmG(DG`bxL^8~T~l(}Zyq1-)ak<YgWl2-&|NxBvNmc&C+}A#^jw_T1Pz zV!6B|Rl2sX_8}&qxxq<ENg5CQPf}nDJ&5-Ee+lY8H&L#DKd!pYr|e~}@}PMCWSlCZ z@^{xg)raR>F}gQ1J^a<L$_5DJ-<bEReL8svLC&9$nkH$+-h`}%i5vo@C>Tf|YliOe zXb^5&*n+|a_G#5o>9*W3q4%XVggR!c;G{YG#`;8%phx@MWpE1ZxZec>zWO=T{}!o+ zI)op*HF?Y>i7GV7i`<h%sA`}i)1cA$zggtGoKH3kt`8&+!(P2zc`TIoU?(Hw?l4M} zE|wzmF5`P7v@X1l$+d_GB+oh~gUQ+2><K&mC;_B@f7AYl9YSRo`DbSbm;D@n-R++c zMm*h^b|*au3;Yv55w;f&kbVQ?;B&-R{JDI~N}JS<dMYs=D$Q!{ZUC@A<~;whtim=O zpRS@2>wiJyQ1|<i6>cfqzcl8NJoEzbt)}RFXmfuhqXu9&u~taVPf}=xsCG91TL0HM zj(3>dr-?;WlvFNT0q%<T#rxB=!q*cM20Z|jN){R!-eGRn6)Hr`#sR0Sw7K+()pA<v z>BfrUN1*mL#@V$r<Q~QpHEutRMtFG+sF{(kTXCVmLwCKQ@z26*2v4bdO*P$+dBAoz z;X_ga<`>2~&&q)Q%^@is`xJnIvC#PmaD64lcJe??Q3?G?N20ioT02Y;0Xof5-BEWz zcq=HTWH)AcV!J3=T{OfPpnSN+{cOe1OfFpwuNR|g#PA+8jr4N;j^YHq8X~u+vTaZJ zU+w>%BSo%XQc;>t)~0FR3zTX<GH{%D!jN_Vk+|Y@30SCxgTOdb7tNw8vk*FfOn@9^ z6JCnA410Lqwbhr-Px~fz!4dvgLd9C`_{3&^3BfI8N=xcP)j=5-M>;tpZ`JAC_Z6)} z*t=*5bdqccX;XER4V;^2GyfCS7+@#Ys-{SuUS2NBF0qeYmj!^u0qt&=Gp_15V*f75 zxIs!x$BwFnbkg>X09H?@A<Esq2)PR%8o2inf%*}w_wGQb2WQ~;Z#@Znf46NTAUmT; z)6f==`lwENYhtK_^ya3f`&j1{1^|}{0O&rB?kDZ$+S9$#ie%Hrj#<sM_HhuRO93Dy z!Lei+Hr`$=1;Cdtf?797R4~?mOihYB?;=EABr;}5;zsKw0xU&T=B>Ze=#MDaMaf5z zW60y{ji@R|wdZ%{m`2wrMP+-8#<@E>;?c#ZZY!IHEK+DNqcMoFk5oUH_r2#*pe8C# z9jaBS9L6#3|2a`%V>M22IE7;gQ2(0?Z5`AWNtNcx5kTq6pIxEk^7`5cUEP;*qu`yr zzsgMr&@J${SUZV`bOM4n)UAgExc4hGrh_5vmFp}TBi3A@-$b>T@X#u{m>Y5T)>CJJ z?EIuM=F(giYgs%JHd6dws$to*#tjy3OjM!3bgZ|p{q$x3A;)u)u|atjiHXJnI(&KG ziV47b)vnT?ucXha(z+|TKDxjO67pgU*DfU^UtRJvW0}Wa8wl{5*C$-BNkC}lx@VEz zdy)7VK=a&YpR>NqnGDR5WGj2)nKXJ|jHRon`|45BmtB%cyB?`Ls}-sHh2VZ+{}k1S zH&^4vkK4OwzlGh5te-^uqp3~;;1Y5GR%)1@{%9$L@u*gM#|KfQx#&C;!dS&8jU)l? zvmd*>^l*JwZ{1?~&VIAxW8NkRyCPVJ)6=s{t@>|<qhC?GxvqOwBVcUv3F0OXvdpqQ zpX;)ZAwzy3vi7SK?62#&4^){LP7f<M8HP&R?*oON!a{)?Afu=ZBg@o31<KtGhvzS* zqU4PM{w6_-^PYa)0=N2?l!|^x>G<cRI*Ts?4qvmh$baHQNdYvvv9fzb|LyR+Z>Y?t zbvugNAyazpEz#hoUi<I&-#v@ZGv0?JxlYuSH5QeYf=_EVZT2ZEm?3BLG;avrOOkDk zS<H*mV|PB2l>ZFN+Bu9(KNSJ3r^o4nhW9=F;LEf*y+LhgK{_cjs=HYXuHC2GLGU2n zNDlQ>c~|i`d^cjxdr}V<xHy8j=P;{YEl8F3wMGSEd@8c~LX{e<QG$T``@Hyo!*VCx zdKno9%>2@Zkb63+F&?=KU0nV^J2t$sMIkxs25$YM@v!#9BvEQ@DH`it8$stEUV*Vh zk|UlHS_5pkynRa27E!j5UrO}N*eh)X!?NB-te9&)ZgtUgR#aj-zCX5|Zgn%D+%Vl4 zawQw{pAKOu1w=%N;bVFMg_9~WdxTNz37(#w%`K^8mY?&7u`G;u1Dw8f^kf>dFSUhe z4|f!b+J`aEDzG1i)>o-yMC_Z=l)<3Kc1nJ8UYjH1O9%MIrHxG^>rbkm#AqOLwc_zZ z=N8sct;D#&unDRb<Ey7f0Y_~A*lqMWPf5&E^VNXw*}sUrv=X-R?9%;vVMs%aZ%fi_ zoAxvUy>EaOtW)5v2w@VM@s2Rjd`;w(upK<X%prEEi+N`BYhcR+6qWX8?*`->wP)C7 z%2Un;Rn$*Ox)9bISlBXFjY^}upn~a>jM0!3^}V@WH#e5VYvQ%xf*)I(zodbE9bChs zCwyJ_K7)!{epD}FpF-j5<HTQA9YdeIVF7${88xAK>o5FI%x!;vFS^qHR!x=+?x42D zwYH*XYJdNG=FM;(y-+7+1yhgej_35p#mChdTDx7ApN&ceud8R;_;)CZ`&~4IDfYAM zU_03kVS-387x_brYp6SzWb$?L^FI=_!K7Ph#^yGep(^>&qVM#jYk3K&Y+umzlO&H- z3(Xyg3c$taU2C2iaRMJeq!m=DyW2GO-XuqE4C_WG`P&n20%G%D8ixU6hnJG%>o0Db zem)u1H6^<8uqcR}3k^md3gUY-aWGHxRbmrYWJ`Cu*TxtiUV%INu9$aWqCD}$4DS|Q zt~Po^>Ls09eEDu0<-N2>ruy2$;B0&w6eL`yJ&L%-k`dQ85gdWos0%@HeXA$fJHr0? z;ot3owCbVn8j4OoR|^H{q&CzVJVFyb6uq`k5`5=&>*U49>vZ(yRw%!xXIG85O64ZN zT5)4(n1voArAxnbhd6L*1J4R12N4m3M8s+r8s^(M#*o;re*a@cf>Umj<-fT|%`f;q zjN>qx(})DS+^H;W|Mlyj1q1t))3)p;H~sshU#JrI-2U+Vyj=1O-xHhHx85ieQ<tv6 z>0bH5PdwAhQtHWQ^4~a%k1u#a5}P$3dL3VaA68CMc;5&AIR;-6UR~Y#9`>7G6K@)z zp*v4iEm9*4aSy4hgd`q*Ehl4iRkJ^`Oo@1Eb)r$BKIP^Z6Y#Xk-$UPlSFZ>mLa|$# zoxNM-d10DMSvK5q16t|ubV$j_od_=WH^;qK)OXv6XFspaiCqTQYfydof@RvV7i&(u z<stZLWdF~%cGF;wqBNp2T3(lbl+&WZ#n?^bEchn`iRWDM{gnoQ3)iO_BK09&=!HBb zRoky$?o<w71{4lTIeE9~>Alu!TR9ru@GNeCeE6V$G_ihs?l?(6KdH`&_0*cr5JdX5 zl8l1{``Ft0<?o-))oi*{j-G|J2OH%s;?xxChFGC~ICt&Sd0WNubq^eq*;aQN-j9*f zj`X0ZnijwBs8kTrcDEDmdr1C>S`@h0n7xdJ(P7j64sZAMs~U8Ag!1WK@#9;)|5q2` zuaEy8KaTvrj9QQXd(=AT-{Z$*y#J)>UylC%_awCRzbB!2tp8tI%3$?Qz-9;{=qm+! z{@Bcj-d!09+ON-3$T~VYX4KUsBvCu*6#lDA^MA3Cyb#3a|6TGt*r7$)-Y;aJ#`c?3 z|2d0vGPQpVv;Tib!VDFB$^X*}@bdrmvYbZ`FMOWuGSjk)Q%CoVjlczIfxGE2qD5t8 zt*oTnbM<F--6}!Ojt#mvaH4{DADuWoFD^VF^AGnz$F@u@w7r5(mrPZ()!haVWvW}G zHJ&?ssH^R?fGmTILtL9l2LU#_T#Maqgd;_g2^4*}8Tm3AwIU0=k*x85N_fs;fWf?E z$oRQTka;;Ajx7cfvB>a$Y%&B+ZhqC{d~0%RyIDHXzjumUaqwTXq@^z1Sla-t=$&yP zkE;YXVvDv!uNCaU8v(7C%dslXM~CF)q4&zI_q^!!edu!N70h=%lScf<wG=$}J09)~ zU%!)YI4L{B^gF%q*_}?9G`tbS_Y|R;zdGmc&UEMO7!nGVP11c=mYvhE+L+eIKJDJw zBbt!;aYnFVAXQi#c?A0sJ{_0hJKj@*XgHY)rCNzj0YzO-N6IcNz1k9W5lBhVa-Fy6 z-krI=?xBvK<QzAsF=vH@;#yokAf~e7|4*g(*LThd_aHuShGJUXy^#i0Ov&QOOGMz; z^v<v_`TEUm^3CaH$}EWR7j@QDjF<|BI8iOvTjZyxmi*f*0{o>Vmed38Y#N$p&xyV_ zf;0?ord0h~jUTTch7UQ^EAct&mnDG_{>eLKjp;?~kVipnBa5Fv9ig~CK|QAdSyK+P z1H#mP{qn<NGlsrGe_%(*m0h{v#ex>`w^{n49AuHedn;VJte1^VqMFfzmNuiE!U}=y zUOpKnAO>L%fyci|Oy&Q_N+=jk$Wj~ORC&XxK^<GvlJ*YvY$h_%?Urh7MPJ7U<sF*e zIgiomqs~+l#02c-SyI*qW0~#J5+F$qc{lGrIz1L`bTew#vUqrUaR|0b7c*v*Pb@LL z*yepJ^UiswzUm$g%Q-X5FH10u4yr*wOy1F1)jjgl6AKMI$~|4lnt<|ES{W;A&MyC* zEQ0`(gFD(HW`IwCxRQ%yMN8aVak&`YdI@kdWU|hwH0&gjKf-y8{zB+=m>9(CUb*Ro zTyv^WWa6MIBg^ZbHXBM26hb7Qanfp$I}s`IiHUz|Knz2q{Liaquv-JW<iCZ5by`;- zPtL?gU*?h~=?SDX1>W<^;!M-qA`K4x!s!Qm(bNw9dL&6vr}l8?SSvm;0iT=@=Z&ob zFc#oQ_2H_<`8AY%TBfa8l0K7{9_e*vuyQrwM!jnwZZag2$YSuV&G3gz9h(A)H$C_I zz$+G(_yFIl`?Y$F#zgPBy3z%$?=QCC4O8$2){ygYS)e3`NCeYY^JG~xo8qDDLRrTV z@Fu=BO0KH2!^^pS0!pGUb1O!ht*C_g1$c_q_2Ct^ebai_ihHHf)0S(_ptYh&WCt<z zgHki(f`N$=HU9a`#!-dG3|3;9wv?<DQ^sta$#Q)~vLZ_SrVyMoMCs3m#+R1iE_N9| zP;5I}Yu|MdM{ihhA2SN#+oNPYsPjh2o=R4cK+u2G<7dv#dpj0G8N;z_%$#JAfOPJS zK;$h#@JR2srk;?WyI!(HNWXd&g8kD!Ys}gQ0+>R9II4YeuOK)y)aepwls=h5{^6=> z`Gc*Suz~VT0HxJdwQXkmmkkBl;-6)_H9IasMZWffdgaMuUM@Mlb9`vil(>1Q^CvpB zb_`rE10P#tkZNMOUfqn5lxSBaIy7fV1K)b=?CIjPx)ykd_xtjSn}H$e47kL07vjA& zcg0f*KI|82*$<sFm+rO~LmkSy<>nLG@(~i@KYmlB&f2iFU8D)I7hUkX71f%V0XpYK zO5};@l~Xmh{QeV#zQ@Tx@)B~*%mP}U{V0Y>%UWsqx=FlMG6pm;%Rg<XCdt6L_l=Fa z`Ez1D&?~plI5tXQWLKT4=W5pQ{YigbS2F&2Pj;wANuI`8>9nmIThn%k94J@xYPqQC zrj5a6YaIWxd|69E$($;>zvX3HzJcSI0ip}xIMS?WgZ3P_10HZrRuex3WxqX!o%Iq9 zq;qF=|JF%T^0_^7nBF~oz0=<h<xCrVD=j@j%lW<c>mxMtfs`H`cT~dHa>qvC;;iTv z)KCc~&KB_b5iY<bf)Ku|kBxJ3tWwACe`aq^k?YP>03Q1a-CK^eaWHpKVnZvMD%r?u zfywlo?g@a#zrKm7Zb?1(Fx6kc!p0Xu|Lw64uq&~wvRON8FdkZ_=MoX>X4Hn3zB3NS z^KBrE=7Yt+DP{qtPOUT1n8hH@_4UNKmB{TjdDGESe)W4RX<G#zz|7B&iyY7yUo*8? z*BArWD8wee_tB-W+9GW_JFrNIx&lNvQ*Q?SlNA%!s@$Tu(e!QQ^@F^LK6b`Mc(nK{ zdZDl(%Go1Sz5()D0^~F4!j2AjJd=93eWTlU?>@JM2AMkf;z`{?*UG_P9aS&W89u4I z<t<0Rqs3MR-RCXN7Xtuw6gKcX!+6(4S6%$*e*SPKG{fIJ8Q9@3TK=_chRpRjEAdZP zWH2f`4Y&^`U|w;xB|7-VIKZU2zXA2O)<<&XE+>srE&1qDz3E2Qgzz#5(+49xRWPq; z-CrMMS0IdWr4NGY4P@4RM(7C<QrNEdry+j3u#c~uDVtOo9uU~quPFJUZrp2a7rKFE zJNH1&4lbq^)MieX{I7vo#pe~qCuDg|S7K#~o;&r`TIFRiHujJNz^>kgy6rJCF|BQg zqYMW_P5>*2P0VZqw$?S=aw}nFMQSruX3-DcUpi60W%*B*`kl}KqMj-(9ZdL~Oj4@> z2d#)MxqKw%a<`q6dkqr3IR$2bc%KUVyva~vNSW~__x%*myTmxH@!m>{lybHXhlQDy z*<_~{1APc()Ux1lB|4PG5#^1jfAD!s2HUK&{-_>R2(_APq(h^etyw$3+{ai<ce1GP zf_pt@)9+rDU6EaYgzo!Yrz|wz1SVVhcfI#)h-BLL?L1NzM?WvhMV*cMlki!-`EfHA zinn&WB!wZqKR9SI|FbJyY`L|vdl}UN8#18wis0PP?_B-1(y$tMWI0QVkIc#+Zb^|F zw%2P|On>}Y{F(pyMUv-o_7$nH7cJU`l0e#HV*MfNs`dMYgd6PI?aBuJl0LS!KT75t zno3pX<de#byS8g0$hlLq{Il8`2#3sJ$$!vDBBfEN@v7r(M45UKw8puRi!8F~d_cTm zBfIC~;%rM-<U;qa07k+V216V1+;T0DYwly`7e&hN?NeRe`c9`Lw#hg^o|Cw~1i##U z=<jM=$Cd%$j)0wCX5r6Dn+|{>g)@6eDJi5E<obBdCG&TElCrB6DHvF_TCN%MRB=$) z2-s7On_zk6YjpU^o<=5~Eg=vsTMWD+F>k#r3}>?Ta}UE>hS@}KMd+2u@LJC+EV#Tz zFIcpiW6^!RF_6pLm?3gvCgYBmkreX!eqsksPS?mCU}pbn5WC=a`9fl<+~hokHlK3a z#?b)`T6T17f`^%zrWlusoF2Qyt#&Wp_rH9QHaN7guSCPh$XMP~Ivkd&aJA+h7#Mi3 zY^CY31!!r4A9<tP;(V|QvbH7ueF!V89d;AWf?Tz<CV9uk#d@rN(MZ1Bx(e8{{_D9R z$Cu>iK4J*)juIPqQ}Q{B_CSU|IBP1esjGpI!LUa2-drZP(LMJCH)g<nETLL%Gs^P) zhD-S8KUk%i{8{gxu$k7->`cj#cHYl$k7)!k5bJyLE@c~~3me_zHXm+Va~lIv2?xk2 z){>FYFN<BVRbsOLG)1p=ek#i@_+x3hT27O&&cmCs?W;XuV*F<`mzGynWO>A8Dc0=z zY=Zy%0ID42H2hXckFBmn1-|6?FmZ2aU^#^txG;2Oy+q;W*mt(huA`sVW^1g7!NDKt zWT;cr)qYATd{06%D-+I4DbB?CJ+NI8ZL)aojfW<Qf&Z<Pp|81{TdtsBPR>ujm0j7% z!`l+==K2Pq7T(*q?d|PRhY4Bf%PY(0n<Z0PKz5Mjd&9cIRv*y<cO?h%l7`v6Dv)#E zY?`W-fQjmdr$Ly<CV<igyf8(6ZcezTiX0wna2^yI<>CVJp1kVfh}cmTv;lg;t}eO& zyKs5A*Ek(oNj7V0lT|tzem4k^Uz%8)a`R>4E#wNFUHs}9#QQ{G)wkTfgMPNg%C|Fs z>8~<TOmf@+DMOCkj{3EbFMS+Cq{U4CgonudoA>U8pa$Jf>*>CTwJG3x$-8pUMZ}yv z)<9iKTv|_I&CX0(oYW;kG{D=qWg9{FIg`kM5v^P^aO+Ra6LNls$H94PeB@B|QhILY zw9!hgTTyitIUoYit3G{4hl!{IphLUl&Dq>MO!w5(yuxqAoX-LN@O;1LrsM6cpshB< z9-{*jubAL}WA3e^s$9RdVH5?G?gjw?mF@;51f*0N7Tw)lB1njIw@8U}cgLc;yL-`{ z@6FlnbN2q7_pk4dZ@di0K$eT;TK99`b6(dquQ?yc*on%=h$z!BOf%GcyZ$S;N3VaG znp7|-=Bf9GKDc=u<jdsN@to9sOXdB0$$%$lh$eS8!xLP@GM^kTY3*qeVPq689Y4HU z+ePF+Xzf+2cwE2okjcg8?uK7?<cUzOB7iEBldi_2#cj;ytS?%hz0r940Pf=A_Ri1m z$}{V1V=U-b$CDve2iDtbq&PMY;&F(_Bt{D2AD(aQbds#>tDIMAI?c1c*KV@0;AOWp zke^yZE~W(*GIH9i%mRxLQ>bCCZYx_XNDQn1t|Svkk47rYSvpy#u=6eNJNO^lpBMk@ z8a_eg(B;_>-b*N`D<0zWU&JBPATzr|&uF8fij~TIe|5Gol`#Y{9Q+s-b!uNVd!G_l zR#un|j>R#TmjnEtSRM<Xob1^W-drWN*M1GGg3Tck@ay19V`BX_Q<9hWY0_#m$%D{i z<Kn*exUFyO_e`d>0El3G)`JrS^i<h`WH$35pM?eZBSsCEMZNs0RT)yZrB?t>#Ibvl zhs-!SYPqZDN695k>ghDA=*C)&;cGa-Jo!!w*1?eqL31X<#=#>S^T)6V$?7VmjJw)v zKB7K^p$RfO4>@_9pEyz{^RM|o%#Zk3vXTkt%dgU%BgZT_s}p*}-{SMP3%d33m+)Ba z$r48fovly>6fsktGjh*rL}4MJm$ZzCS_j2AeEa8e0912<_nYBdvhsd!J8xXGMKIYt zxon$Lr({~C#DZT=<5a13_wG>0s*pfe^cOx6Nw2%(+<PmlQSMh@dbR}5H$zeBZ-J6b z3ACEy%h2zc>TR`Y>}6_rqM~hH-!8qc${J>GQjN_UJPE<xg_pBeMs;yed;MCB-_yl{ z*sTB&F`;M@#+4Y=AZ|rBMLbZz2o9^^Vt9sB?S{^?XQ$dlk8GFA#^FNI$)K*5^_`K9 z^UEPBCFjT81?ReJQUdO0>VT%9<_P{#p=@-1jSrMorbmiO#(es;b+<rI!50a55EjA5 z6YsRkm7@#gVmB&~FEY|gBZFa6%(uC$%w+P9c`X-p*63BgkLqY&tLQQjqPb~BL>DFG zO;-$8>5A3gdJqEWk0Fe}>hwl%jRDdF=+F}+6#XGU&{__5J9~6MIE1(~Im5Z#+=P55 z=7`m&RV>o!RsESp5$7~E@rLOIP4JKBlt4cyvlz}C&DKmBLzjB{7MYCCA5HKo9K7;q zwfT`j@5V?fKc1|>y8o2P9325rBSvG?A?vRzadO5Abw*X!uCGZ9N(AAQE3C0D9{b&* zH!$OKI6XHg2}qpbi+@4AzYaW|2^?)&OohCxIYT9uN-hZMJPx@Bm6~o>{CTQu1#Eg7 zYI~m8=Z+CRPO4>QO#@yx5+*}FYL=DM=#a)iP1>w@)_17u5sWwBZX#O(AU%r!*y|>s z8RhKTYk<WNQ!`YYyHn>ko3gdWC~(y?$aglh4fdbbWp0(*p{FJBskN+P78+R>(cPIq z1;kMyWBXhS)h_}htro*QnN-OvRJdzqQ<<dcj=2Q6Y!@!~GYenj4aD<x*1A(b{@02F zA9z}MSWS%QOPi`znDvEv-2?;$uN5KgqFnPw4bc&N{@CI>vU#Ql_I<kkPJZ#VcnZ!H zyR7j$#Z!&^x}~8OlmE)BHaiBL3a7JC$zGFs6q~Zzzt7u5#4vCOB!G-VRAIJQN;=y~ z`|>#rC)$s$`Q~XkIWRnia+9Fu)$b=u5%Fx<HZy7F!`Rp&AkNUoXIahp1hlq_fXnX* z^3Fpjh;onnua~VYs&0914;$e@@-*l?)Cag|%}6HTk2b&-S{>r&7|BP9hJ?%b^id`p zRmLhHtB(rC)ih^+DSEtpK<0M(c<|##JCpfjG{L*@n7LR?<vW0koQ|^%#f`_lM;i1x zEyb-*B*oz<H_-BX-_;)qCg1J_0@O{(Ozu@fcFB9jfB9(sW}j7^$NuMx!E#rEMONXj zmxcZ7^KN)t?VQ6N3u6s){oh7SHzxCtz$TU~sEMnq;y!VtNSBe>9;_Q<s?k5fzW-bM ziH+T@%T;ggd}SO>ifig8r<-+c8pe3OfV-=GEQibt#Ax%m^17+_6<f$V<9_HlQR8zi zoF7&{DJp7YH0NM?d&Vj!%xWGK>nafn-f-0AGr}U5Jl7c8HjmLVc1~O_t`o9-e0?6h zBk~Un(!UB$@^Yu3Y$mY16xZ-LGKW}rPL$iVy~br!Z{l8VADf5<YQT&E(j(3WnG}`H zN&;7w$!h*6gU(LCro%N0(PFxBls!wwyE^H3Y5ag_@u*L|s<$0)-b428o3=8VJsI-W zJYGsa6fwo)<7O;eo?5xq;Lz&Cjsslz-b5!*Nl<G-tc!|(45pYpMaTBS$6B|4Ve_tD zBnP*bNI_x$G2q(S5)_UzXCJh<RN!h_yh@g;Iq(}1y|xB`)+TVh)6G+HFqf5rxEsce zgj+;Q@BQ&=-Gl@GWdT<{ba@d_s+`ijpBddxpFN`x;J~#ljGLLMZ9Kst#BBB{Y2V+& z(*)xy?s^<t`ONN@)kBKM6&av1-PNtK&v)G65ebg1{oih=Wr?9X&PcH(S|7Dk9Asp) z@W<k(zW(md6XdmA;sUZm<J1Y!1JBPlT?v-9bLj^`nS_^C1VQf@1m^Fkni0udzZ)id zda3PRB9VspF=wS{yh?v`-cMVwztWJh9DH?c+l;z1AM&fC1L*dQj18ZO_9|KT=he>y zKV)&#X)pp{nVFvM^PRtDveKC~#q$OwFq-c1!uTd@B`n$1dAklxxzx^hAz8vdP;hNs z{11BE601{)-=(EX&#m1G&D3Az0HGX%j7+Il<AhRxA(&IsiDBOsu-iNL6O>zrahMYy z>FwF>72j!N-FMPOvP;{M!lp!bkJT-o#9D|z?BO$sfZNw!NNR?Z8?3S91aIKHn;O9; zDc0&_Q7lmJ@6Z<h4HLU6H+Md^JcDC8$SulMY48%2RJ7XlDG7mgM^oxC;co!^`6kLF z9LQZ8uJOLB{K){!FAh7-tyINm=pMHs`2&4x(F!EK&9N#h44kO#2%2CTU0G^84SRTS z*Ye2eE{XS2D+wWUUOaAAB*er$KtXJyloe<JI}G&kaOtnE&N!}{dwn|)+@8N;LqOZ; zo&e=b29D_ceWu;YO&%aD*-G^{bvAAv9qh$u=tJ}Ebaa2dVyqY}x2K(RJE&?L*oo1! z6X3jA6^PD*^n%dmypdev1lXC=ai<{xhXWWduviIUNcPxSR9)|>UAeZ66L4iPl&TJW zE{D!vWB*kCz*}%1h<uBKG%0|E_#YnH5X;ao-d!2Hob7mw+@BUfPqK>HtLLJkq9UTA zA3v!!7rupe-Wo*o5}rpSSEMbtStlTMJ|qCw!w=9p0N#5M?_8sh`jc97ossa_Jy-x{ z5)pl8Gn#={<SM(SeR9zAvE^dFgpt5@w~bBu{mOF1jY0-q3TMDkL2WXWwDK%AB?c?5 z4YSA9vbN`_puTC9bH=w5+ox0Sr<Nu;eL~i~p4rsYG-C^;pK<7iXOlMhGQ7Dm$7{I? zj-y@2GN*);)|-^MMCMH)Iz^<6j10b$GsJ*^Q?ylAXwbNIe@h6MImcQ!xdU<TeC%bS zxQ}*GW8BR_dI^<-TfxH~dcmCRsNotAyYUjRNXF}%Y(oN%Q|@~pD=*(OF_?BfzKo`{ zDY+g@0+zbLdK^APi;WP#5{Ubz=#2I7iP&-OM1gcpG~dmHFyC##x)o0nKJq(|zH3jf zSzDp)V^bFP{dwMHmeamjr0)JTq)q_%X*~=4hCfk(b~fX2M1D1@4C)4rc+}qXx2e{a zm1~5FGI*M9NA#NRoH%KN9lsV^oHpuRU&E$LB`9Jv-I#%ffmGA-wi~zCd11FEr_`D$ zrn~LiD53|NpHdI2$1jfVuI^2DRmL?&NNdF~YR~rdt{B<T$g(F51CK8X5oeLpCQG9r z-l@Hk`r8J9x{yQUKS@bkn3*dn-zDyiF%aScWAc7E%r<(si%VFjlFk15XrV!xGj6U0 zfGmOQDU<st#6arG7pR@>>P`emo_7HQ-fQN(>q9w}yItMfhBL}*bjqy}{dJAUdkxQW zJuiAII{G?S<Dg_u>1u9+YvKT?y=VO(IvzBeS{~jQl0CHAJmIvxZG8%{+HGw-Jrg*5 zq|WQOQcdU^65+cF&{>g-^mDGfy~dGEJA^d})7%|Y#K(`Xm=Fj80t22R2e^WD5Y_N_ z0M4TrANF~DGex2dO;HhZlrJnFWcH^FF(vQqrF7*rEYf~e#{T*xE+qWB&wcaMsiV7} zhJmAesEVGJHY+_hvi1C&2Q4HqCPmh&Fk|QnA`fXkM`B!Fu9*LY?a*-1hiE1#z53Pj zhP7}<8A3}#nbI$2E%9`fgZIF?h+ShDh#21_-&^0)x<lGm^lgh)#G^M0M;EW>5(XOW zBLQ@@Wvub#7L+xY-y3f_ofp&yiP`w|>%C{z=R1O`f<ph+^U9Wd8#}H<?42XeY*_zZ z1$3F5Q!r)Y*UQ{!_@i$O8s%R+`R`a#8aS!;1uonKfc!<;htFO+6axm(b-iMEMb5+X zTgG+<)Pr=3lz$^jxV-?`!cBn8)z+3dPO7!7Rh}2y&K@>)Ji`+^zD>o+m{M3c0LbW1 zn@ZHW-l9?y7*Bo!%%R7CHPBF|z-~_6g46lpv52UMd{r{q8d$M@#^=oB^;2gstC5j4 zX~&zdfEMguHza53UO80qlitQMN8o9CdP^)r4_bxMmJXaIl;nNJm#G*yGMjz}&@0?s z|Dkr=`jJslSj5DTb(lF$T6&&FU3K5p@z!d;!<N0wFxDt9nR^!iDtgzktl|<f)C?RP zh54nq#NJJxM@_OzWm{7OexT&6d6NWYY$a^uQ2j(jE4WOJFDNHTe+w(%Vpnj}n#ysl zK-m4btXrmxs-mFBkzgEe=VY67GkN<gr~2Es?_9r6WvEh9$;&+U&7VDcCci;OM@M&D z*ns^({bfu-jNkY+N>4`R{B7g17IaCKn}7fr;U@*9Dajlrsyo>THsqa;-#FKqfjW2` z^OlXG?JC8sFTDiHHr0r2Qtx?MqDsfc-|WmrAH6`h=l6qfYPN_r=)Tb7{<azBAg3%Z zzv{s|<64_Ja3h|Kb47p*%rTnMFw(7BZ_kcNprVS66v&MNPH{f&c`K|@?}@*1pbJ$@ zLYmb3J<M+U>=}>2dPOG3+0LYQ=ZYl_4^R9|?R6v5uDRNkU);PP_TQ7#6A203jkc_~ zoR9A2meVTcet?1(Tu&@3XJNgB&O@NX@6>TeH3Jy(#bqxi(FqyByZKWXmU4n3{pR=; z8$-jbBEm5&s2gT*li6FD$e`hQJL$WdOzd@6d(D$wGc*A{mF(SKkne6Vv0l$cnA;(U z<j!|3pz8B&Xov-uQSB|z6#-2)5_Xg&R2KKgNkI#br)Jh`gahdh6q`Tg<u_cK+}<<? zLhMG_z4Q%A;*R?H{UjN<8Wwq||4=xnbQ+p83c~(kO2w1w79@}BwsEhMk6{@1n6pCg zJQidWJdpkwJ$tk)Eo9(NfGKsW%ZTmpupvcf`&532#X*-N;a=PXZ|iqz4Yioj#*YWb zu-QN$^C|JJl&~e9Pbg=)-;$e-nLh_7ZoiPpqW1Ec0^}JSP;^(;EgJ-meQEqVBdA$S z&aF7iCxuj0xIu_1H66YTRk-+@Xdapzry5&XF?m*<Q14dXX@|$ZShC}}*oJW)^&k}> zlsjL0xmMjB&~Upi>CrXe-q#mmhsD^n3Pi!6BRiw<XjIq~haKk%KK@99rLf~$6AVB$ z_B8kjtBEL}B2sqPfC&GOF+!aGudvN#`+o`BVY7=r3V-?gRB{2S@%L=zugXXJn?!3i zLLgCz@r5J+I`ZUm%jf`qXqrAVrybfKkQSU$Tx|2j+k3mVE>A~q^4=)ooN{jzIZ-w? zd5TI+E>PZXkJ4*W6dD<;yv+eF!N~~Gzg!vFj3>D9)U8lv3J)uHcA7s+^VhdeH0^)8 z3;xg{e{tdaV)sA4{x7BbEpwT_CgyV&m0mb%fRzazN)}rtsz&<ri&>8p{xw1W>lLl; z-(CQJ@wCkMa$yk@xoxz6{f5ma)4>6f(6sah#J`HqEAnFvu30Xol2QLL1OHd{ko?LE z4il|CUr>tn2gT@9WU~#@j=|x?KhLz;dQD4PP*MK>t}o*MyBFf0SLOe06U_hi<NTM6 zr6b^HW$E_<&$zbwpW(i{-#R2{cwT=&>L-=Zb2`_CWnIavbdYSi|Mw<UxHtM_?~gK; z;7>N-nX6^80V9<RPquN*#bwMS#BtH5WlHuesUwVc=t}0#i4pldv|md>f%7czJ@$-0 zacVieT<|Yd`TzB-|Jde1U0YI|IV`g%vnbqNBi;M8AQIPARq5%kf6&kfZZdif3bqE) z5&i+e`5_E{AC~*?9j|oeWbh<eA*1<3lN_-Ey(S@z8nJ4@)7#6#-9O<b!nYR(H6@)- zW}bvo$Rx+N>~V6P8<%)j^o0P|NaAs@tC6a*eCwe?&db*fd8K@`u8g2OoMrq8>+*QV zt4)V{?%(6G<Qiv^WHRZB2Qwr_f904%2FQhn1xu>ja(iv$miEK27c~`)&Y11%yiG4v zLqub?^~|Fau5HNDrs8So3$huxGc?8wstzt2jeb>FB!>r^8pSJpXatrMpn2c6OT86& z=d*m^@`{0>ZT%<=7$8*IjtJPzjJy%EEGiIdhTr;+z7H+Zt``ke`_M6#w28bqoc4AK z?;in&n?OVr<=UmCh+wc(sW_nb3~Ft)%Vk>=Q7}HW&CYgX^))H>gK*S9X=eQl*K;2t z1fL(Z#~UOS10$;rC3=%KK!`!`_5x++fqHWy5Gvscd5Lq?8@#^r$3;d>D;F8idtaS_ zw)AX;xZXapqnKh|TEvJ>pKe&DLdgs2U{cjR_gD0^H0<sn|GKG1nC|nM)^5gxq?H&~ zV=TPZN}1@_3UO8X0&BZgHU@rL6!Zw?YtH9dRY4CEVl2nF;WlPkMPgcim`r!jA01pN zB2H3iP|zV%voSLlekB-w%kH8<CN;mN=Uz^f)7jYJ&=eKSX_*x`U%|tb7soxYw$IT7 ze1oPt-R;C^z%(hfK}@^>{mDiXQLQ`?zpmZRK_e3q;$ThPw}mY=kfPxjHVZ9KOWb*N zh)!hkqS;2v`)0iv@!smHUQXmUEoP&K-lCcy5zOc8%bXv$j2pi@5#>9(_~?hynMEnk zxrSVF+Jx=|>K=4VL`VRQ?Gy)>qk}lhHaeGLg1DzQCMj@IuX)Yt!w2P0d*F_s|ML~5 zYY2AlxQB{}Pn-DJ3oJnkoBg3$n|L20X0k|6i*8%n@iVHPN^ai{pXbTvb&;j+q-G4~ zHbEqxkzAB>P^8y)t*lS*MD6@J!!XTXRE%^FvvxUM=33=%zzUG*t<NhDk0?0wYBtAb zq*8mK!>rv-dUp5~D9^Md^ZmwgBf*vhCflIdRrnurKLfH1M`mI)Ie48c<AR<hErWvG zn5Cq6?-`SRk>~l+b8k=7aSI9RObx7{DvIry*yY8aA<vA-EP>}aAZ|LTXJR+q-V7Z+ zK7nA48oz=d|FYH}r)KupQo9{g1C8^O?s|MP9NUsV2|pyO7+_<i#rpiKWB;|+W|NEE zcGqqX-90WZE+%@x)=T?R@57!2aFq;W=oAg)O01@SsmRg~4T};s@{f`+SH;A^AXQef zC@JALN4xqKSQOi9XEgj};^m!B&DXY!6&P*0O2nfvi^<^LU9A;3Pvu%pOS0)<7OQHA zh}gTKJYiEfWCZxO41KeydL+MLQ5`pA619p(Ev~QmeE)N4Fv8Ln4w}~>vQewBr7uhb zO^aT<S-8V#*>NF^K@_Drt<&RpQ|IG7EbmI0l_nh<WElgOg0rc1UhnU>;e0GRU5<LZ zDz#y@IBHAzu>0GN09_`0Ri9v1Oi@l_ORk!ZM8IKIv?X2fK>>mOcOxvRaq72j)}q+% z8Vn1G`M9Lq{5$@a#q(%HBt7+1zUfaq)dGhgko}Jsf@XG1RSAOdt}gFhC1FatxvzTZ z&hh8@NW1d$2{Q8)&L@&E;Lear=ETBBWpHQA$-QQJ%w=I;LPezy_o9_%q&jI-hn!`| zb16`gFteJKSs+?E+qiO8!IJKCm84RM8O#84S?9s|VOHGA9__PS%?kFYpW&F`v3;jH zw}WNmt}b)99op9htG;<|g6<3!6@Hc9J~+8fS=8T{bHG^-4r1ftA^I{n@Tgz&xnd{= zeyxms8J$1balH!WD|G)WRBdAOx_wVBF6i=nys7~QB0;#?+Oj335Im?B=6MVGqwqTf zr1T>iU-3oOpwa~v6Ba5)GEB|xpQ!S3q9LOIv6vI(NfYr38dpe}8p2nEhjO3a()R-E z_k_!bj#_SLOCxTS_p(QCuUU`v@_|Ba`M1@C(`s7t7<>;ClwKrg(a^~DQA+#s<y6_J zTk~4dy@M^8Jl~V;PR0_vgE>yY!7_JK7dsP4C!?2eqEz~3GxZTUG$E9&Te5TN44jhV z7E3!A@DK0@N=!4BVSQcN{c{kWQi}&~94rJP`taZ77)W@TuQ8~%Y<gb}6zL>*M*;Q4 z>h#wec2i}eC#-n+TFMO?(A&0uH0Sy!`uxmA$ehQP(|2}@6?B|Z#6UlNpHGZTh%!Ka zJ0YrvmQ32to`T1`a`KQtu(vCtE|-n>CGl+dcKfCm)h2@jo&v)HD}lD`#}iR^u{2$w zQEeZ}ym#-35sNE*m?)<YU;CwIUyz1V26<J<B9=4RS|}lLx~cbU!oE}$S40iMa{7W? zUUONb8iRutKE!g0gELy41YJ(8OvnBVsPXb>lIqv5%2f+HA9wot^kHi-w|y8R^7eEf zY0^}9RD$26nL$f=k{2vcvisFbzWr)&rsKGsv2kN`9J#D3AzX=w48`by8K1ONRW)Rc zow@Vm;uWV;2GC727CkAOg^IX$podidT9A?N2;#xHRZjhDr`jw+;_PYrzOhZ)In~$V z$CAuN`@zZrD*EebI2;<untg5jd3@X)iRi46yf-Luzt>_RBg5~{GNA(byiP_7@z?gs zFYiCCW>%DyDl02k2muY_<yBh>_-TBU{Yz&I$RxDus(WW<UxB&z=XX9%fiK#5rlfP{ zdUi8H!|Bx0FJH~R1qL?f$B%)crC2jtK0@N9Z5@GWO4fDeBq{O!In^sK^_r4%?X`zf z<>Kv&R@!WYuX|~xUI;|vcHW|w=FYTpHuO>pP{*%OABgyTedIei+pm-DHaJ0Yd%1IC z`|DPv5Zn_Py3zhmAGk5Hju3KXU19$kC3U)uf2`6PZ>I3^I~9}}j+Z`a2)_F_2#9Al z%0lU*jk<<D7)l>6cv4Hg+SaHBt0ah-nnAVtcCmYcAEK>2hnJ=dx^@vphAro0*1)U9 z5==Bp8Cc_^T|>IcG;xbIg1Io8Ws<^&L4qqco&7eFR0F&ubQ<N~y>2cQp2|4xyw_ch z&Vv&X^^F)w?>yM*(>9J8ihQ0HHe^He5kuRFPr$_y_Td%RtmSO9{7*_s0#2I`T9d_P z2`2m=dQNQv4H^0(Wbz;X#c!bR_6%-+maAmTP&@LXEAEzDOhm66ya}A5rJ|>XcQ{*A zC?i0z(%?j5t>9IOStW}qRfnKUV7#kW+vCzRGGX?bRhT_&+3QZdu5RnBC1DtwBl4>X zmW!koBXqVg;}X_je9k^EEi{oWXYMj%V2px-l40n02T4Ko3*<h+W3e368MB;e1%|^| z0auQkvHTV#=CkbX)y&-5YbX1xcL0W#^1B|$_hfAW<*kMar({wDVu#(Ez|myJQml94 z`$jW~f%9wIE%{gG&(rP;TeIb~-q+1bs?*3oVHvI^KvK#@Dpj*6Sw7(CNzA7Z`wjHm zD(4G0t|S>!ryU94BM31~NT{$_ZYZdChD>uo1X9rUm@7Ta9T4?b%XJ4RF}PJpLt;`4 z>04KA$Xx!r<H8u70qwe|S7o)~Sm<uOtS(&o*wSJx#WRwHc2u+owD&;J9Hr=~JDfJ2 zbp}6uYu0(fWSNB&gZGVO)GxY#zOaa?w@n}ct%fMtpfa|hTQmjR^M?^zqi~iVvwK3s zl?R>vjRxmmaMf8iEGW-8*?WrZ9*NbQIv3S6t?|^>69;dg!)M5lh1@81Ngj1MJ9}`G z<rbEB?0NOKDjHVbw`wFkCM72Acy)5v_lYRgU?b9L#)Orq)!LoiT($g>R&O<mQ=Nv5 z%~3~ZZ%%2@q*?Q-jhsaZtK}jEuz^Y`8{PDpgJqAcFvEE)O6B9LY+Vg$6%}PMK4y}_ z@s<oBWA_nUV+8l6%6o)}xNK8{Kb1u@7`AA)HxLaoc6B<-NnyfIH5TII=PBdYtI0y! z>OKBS8+&*m|E0Idsg5+CXK!cu#zqu%y5;U1Z~pGuG(#V#``zo;eW3m;qT<XgD{u%0 zG8~!bm3PC<DhEY#%K<QjOG#z{r5jo*_?P87<!ZO~B$o8dhz?Q}95n4<y-XE>YTEFn zSw|-g?K?_?(+NT%1D>uQ3fGu=q}&H%<5!D|3SzXsj4wL-05WQa&fA>&dzBgw(iOU0 ze$h9RkzOvR?T0!I_@nQ6-e9@A+GVQwafpp1k8kVCnGmKSoHRjZ3ooFJ1-7_YggW|8 zcN%cDHy3BvF_#T*4A=+*kkK;KyRk3NwuJmwTM5cDm`%;jlK$dM9Rc}ZC`&x!Z`@*j zYXf{v)F%%XU`P~IuByyRZi<gSk3Ql=LCz49V>M;Td9}&cfm0`ZuA37fDR8joI{X=( zRFE~d%fa;<|MhwV%M4B#d(&GhZ8X|5WWi8J^?}(hgK+(Qua`?kPa6*z0^WXyp%b59 zG=0>D+=ya;g9x`!7f3-cOkUaN&J9MrX~e%HREgiEXf<ox_MTy31bs`l92Ai?eqS;5 zd@7<Nk2Wk3pZQHe5f64nKZ>ZyCZ#$ra`|O0pvgpFVoucC;!V1qeX=OgWqKpx#MK)f zVLbesO06QR7_=C4nLDg8C@U8<0e9BQH`{)&uXG)Gid4Vk^sp0>VYOvo^|u;0E}XbL zEmCD7yb-O|P9=v}_bGRoIe?Od@)z0|azM|dw%0lprch9dz=lHywoOo?4@IYa=bbtQ zTmDH|b<=eeazKlhU1Q47;8SB!PriS23t2iPD#$BpwgKwky+gJ3cqal{D>#Z0HTwbN zLZb5B7ZYX_=CU002~?xT4LdUr@3B!jt1m({%I+-xhe3u<2_(D@Oon~L)Kal;gqpoB z8s+5V;@C}bK`n$Cpi`8I7Tta=rU8nor<-xyQ9{Ecn{l89b*i^Iz&9z_<5|@!<DqSx zv<JoNTq&Y7iW|aCn0>49mK?;P<%sMC>kDq(r$w*1%*BHa>i@J!bBFQUxZsB*dTb0Z z3G_5VW8M|@uj!`rN&?z5W-?UNMBlsP%vL{C{DIZYULPB<wys10RS_k@&)ckqen+jb zRyLA#=We0c#<>oa)19+)Qo9DArAe}CSPT+d)CI{Q!TO@?<VvT~rt$rq5utW&8RHo$ z+UlHl^W>HW)Wg;?=;`&<6$<L@sobju2$}SBWtVNN0B=qrXfr$SF8okU6Q^t^X0~wM z<|7X~%KoXbWgsjpd~f{%jRDyX?&C5f4_-gcGW<^LH3{)texA^qDXbVia;mMb?0@1v z#s2uQ_A?ajpYEbtlA(kCZI}@K3s4WXu9^j2{>q`l|K*8qTgAKZz5@;pH&&P!=(gAZ z{}Wap4=ef?kBeEhzJHtRo8T`MjK}p@ih%WC&+|44h`c}`?j@k~lLPe<8ch#y3joM_ z|C2`kD$q-Cc!-2Ac=}z}Sru-giZ^foopzR|R2$%^QD3%c2N*R!E0K58o8eX`AQ^)D zNvnR7>{hO{AtA>_%Cd*OQIrwTD9HNsyp-RZ)7bU;s$9lcbyE_j#=%gx>=DonCaPKC z;cppD62HF<BTgR6Q;SGW?h6sT?Pv|a3J3|IVP}tuV>M*4+Zf<M<Wws+(>~pq1YVm| zVZ?Vqg!afT?#HSxXo?Jm%NzTv9)AU)xw_o4_w<<GYk-a4mXY}*hKSF_owA)PU+#Rh z_sq3WZnPFpg{i2Ul>7phDd6AkIcs{WYbBKKXfQQ)8t$SkvgjO63rYd%Z;_b+aAvb{ zGA?TxLc+Or#^c{M#P6KvmE?si-jeqwP#2pl18*E+8sb^rbRZi(6CtwCSLLUs(ISB> z)NXtyoNEkfd9RNV#+3JX|6*uia-vfHUa_G+ge{eWe3;;$YL_8?jeag3@OwHpwll2E z(va;<31P58O#MjPjy%n5gp>lH2bp2-h%Lwj=DjF>r*V7I1TJ%AZ7yz2Wm6{cI>24y zP^@xXk)NW6`IZBB`&y5tvcB_2iKmJ=I60$25v?M?)dB}>CT*hQGyb!S>5@=Xw*#0w z>BTy$*Uh~_dtKAr+fm>;68BZFe^5Yv`Ro_>E2o7b8c_F7v+u^`yLah>su?H@?{6Q+ zT?^PcWWY4t+@FcImG!f`rH@(6$;6!IZA_Fu=4CA|oFs`F>xYznnG96I#K3*8=Y-!z zl`%oW(3ANb{Gn(TdYW^-Br=su_i30F{;E%-Hr%;;3>}X|)J~6U7>~}da|^}m#Mrg? z+<sRFHxDA~CWQ^6oK%892+X)9q}wzK%dbgGtJNQ))M7TC%;VfkAxDwfc1_9`nLud0 zFKOE?F_?sx#b%|0a6HARNjfL;g$>fPBHqN$4P9)jcat@H`@eqYg)Gl^rk~9TZ`6sr zLI3dP&89d8cF|ezs%imDRa2f$`9qQSlP44kJP+S9KCO#6p4*n9KDx!g4|sw8JT-QH z-TAOFandlw9>JlnC%0rA^=Z1c$V)$&OHZ<xNSzwzA3Y}em)H8l0?}{8Ka;&nBN<+! zr($4k8}qoD^Uj^Z@6C*zb#ir)cZnGJjWRvq$Q8ZNcsOrJJ8rHod~EUM+WkQ+kKwD$ zxJfv@)s<prsD=T(s)TX&<Ga@$F$&<*FLagDb6LIEO}q+?|EL80lOz4FdCQQC4PC?I zPKrEZUY09sPd>mR%Vp3q+CH>tw(q1W6Ef{KkUrq^h^dds>PiTJybf+_D{&hooL+8( z^PDQpy+m5#pjR8H*0%*Z1Lqu5NBPZ>#5}Xv09>-m@mn~TlgfBfcwg&&n6A;t4>#B_ zC3GqFdNivXb0Vs<qerJJy+0dILx7U?x3uZ5(>}9BgYygUDzTdD3=6&wZp@1I_^m=2 zuj(Cl8Q<VMdltxrn<6#8n`CWmL%~89tBx2vP$X^p!>xSslpnFmb>unUENyha6V!cp z<WghB3&IW+Zs*n=?hgJmgymhuWO;LZj4rf>TbZ0p6l=j`BlZMIg1Le$b9yLn&7u+q zq*?1Z1*H@~RApXR9UdM|R9aJh{P?ldOvPE$Z`gP&w|1&U(6C<pTL2Lwnj;_ojKAdj zREe7>s8H&Ge0{8Dp@**+n8U)Nyi-E(iUM98Z@4{%t2rfWhnQ&hpzxdDI91ma>CEEp z;xjjv)6??CBp{v@^}2B;+-dB1%$6s$(qypMXj$$Ay(_jonyk7*KbvD~jn)EhQiZH8 z@NHf7gV4zMzI_jVV{}rRxpmk!Od_CD>Z3%!7)M>l)>7r46c^^1Rl{3_o}k_yo6XII zkHR%AY><k>hzHLp#(k7Rx?Z8NwYm}hKK`MPU-Df{AjPK=2iUBbhldx;+K+ZBiNjbm zDvx=36MZyTLQty6+}6QnX<@OYJbkmV-d!ev>GA%_K{=Jw162;jlnjp-9MMDwr|W3} znixbWZ|e4$)^6%!HD+rTS2vx<4w5_jZv39^ACdFYgqR&ZIX=^d)(e-X8-G$o@DR|* zdLflV`HG!H(^6Kg8M|?M7+%(qGkloEOkyzfjo|%5Exl2t%O$fb^LqoS!Y`<(F!1p^ zlKEYYMt))3-bNKDS@GOSEkL>g5;_L7bg<-}pgn!TP4At$I9tSu|BH;Yxk>ja7Y|Qp zgwh)kap&y0)=0Z8KLt0-K_-gGwj9n6IxN#;6qbXP9vRzIdjd{Av0x9`w!#sI#2m;< zNkaz*y-2Q5C#P1|@PHnt>$<bFB2W2L4lb?e+VN-7V)!fcPg$dF)_<1}?gZY!*A9*c z#avc~MXJ5?>iiZG=!GuJyEXAhE<ut3G|$E)KNvqL??vS&t8#V*Z%oVbx@PwR+&$<W z0J`QOb#=8evj=2}NwVs~6K!pAU%m*{^6^*hP9^swH-r|U%|XAkbvrF)L;HD8yLKiV zpYVbjxRPb5d3R?w4LNsE;Q|~mAz1N2%i;pxOGWK&Z)nMO9t@?!$pmNRvm=e!@?=6Z zP)YeZzTwbrOqJ2*sg~)C{#Gb2!@UWPX%!%%!Q=`E2#B#;q6SCnWZD5UCieY@&nf1a zhG`vEKOOg=EwfPzaGGi?rN7c2p*fB}bLS%U%ujFCGhK&tR`<ePp+U8al*Pqm(mv|N znhWys);yCKTYwX!kbU3B!>cqmUnSn%(cU)MiJJrAv$vo5V?pU?h>5`1y4o;s|1cyk zVj`i>T29g2Y&2K;loO?4vG%gBqo)<3`pw(@qM-2l%R`ou;-@IDG+V5IC#-hAp<>g% zcNBDJ4#R%StlQUi5lf0^=Js^)bD{xdxO?2f0PHxQ$A}B7yD|<MbKEC;uuT~Ui#GS} zTtyojB>8%Xe@KX7+cz9=BbToLMZgcFiJ`%*^(H`rIOqIpYOYkyrgK$T)iBpTDKN76 zKc*eGp(79QJrOdWCi3ws)H^}Y!3sCuj(h0j>J%C!XASNiyrOMr==h$cj79hoBK_Wl z8tG0M3TwGs-dyyp$l}G7Bp{h)D>!ykmj=~C-R|HzHcM=k9B3G8PWSTPg{5?c4_nG2 zCSOwu82v&>TXc#h%7X|6d<s0T11O<7=F_L7T;iJ&=D*X@TU%FBJd5~mm!`>#XN$Qp zv{#=-qJD%~+1Tkd$7r(ZHJ;$h#!srsmGAM3Y-gg#O2n3$&&9g?>Aqr)>&D_#oT$|; zfL+vn5rUh6BzE@nwVC9(DH`c1GdVaon9Wx8mz(SMSU}VhpCa*Gv4kG(VG<Kdr3kni z4QB?KCjdvLVSlpS_82S?lQRYh&yeQYy>`NN10RL*RwkZ@mm8CK0eYKejT4@km%zUA z!R(<#HUV6uD&2L}D_@RY8Ip#mqLPv{?K-9@Hq+MHRZpE)v}qbfOsJ>tfTFEU)Ix2$ z`KojBNSh^rJ36%I`(s+B7}brjRP&${`t?kPkU#hcBdq!jtF&mkBE-?$(c{_~VH~Y4 zAavnPrqpHPqBkODOlU{P^j=$UZ&343p)c_8aqJgFT!F0yzzD@<b<V_(h?<t0i;U*z zC_s8<@Rfto57l5sEamVzf?YGd;#Z}QaM8i>2H!^H`a`$6gR=vj{?s&)GNa~!?V1v! zQI|2xY0#+JI1f!oKsd>i@P5LvHv>&Kwmq<N)IVO>etoQK$;MJ^iH4gC>28mmja132 ztf^+IbgWQKnWT;paCLPh<S<j-w3Uu$t7;sCIGwZzPuT9i^zsnEDd+r#Ov%mfJ<!-- zNw<G?@Kf_FC$_{41)u}an=*ogvKCL9*0&Wq4w(!#K8iVjUgjO|PKA-X=W7rCJ~5js z!lR)PlQLlC=TY|x8NcX#bZ0+E_U2*_&XN%=ek|mNZo(QD*9QG`o8tI?1A>l*q$WKU z(*xeH?$A!X=3ZD&1{EW9&ggrWchnXZ`IXg`6XglLYs=HK`^Q{oK=8b{08I}V*!Wgm zwyf(thHHt=Qdg(lCTE<t+bPbMbA#)|{hN`oJ<4>r5cSvjP}L90K51#*c_UW(z!CRA zW>RV8lP!bpFAnHzXRadc<F9R8JX0x0sx48kUNbc5ylNS3d&<j;vmc7IClo~f7a+z6 z3rzj-16@oEYEr@Yny%m!pM*pm=Kk|%7mc#f)EEB|LO?7&H_X3+=&0BI?FE<y7R@J5 zQF-=m`DbPiex(!t1Ojf?aomh6H1<f~owT)$9h{8xNM%)Z;?y}=BpnX7CxZ6_#|qYv zijvi(9r<PV|DK}X@ii+w+yB}$-OzwVdue=UswO0K;W+|i{7T2~#Xl<NF%PJuMOQRi zW_yEnXY+MFG;CKEyGM@Q{^RB>VJ06z(7R<%OiJ7sF1cz${pVfa7+4+fc;Wth=098@ zP(tD_Kg8b;XAejI$7BZ{>Hj~U61MDC%g1F$cdO$^Zll6uM@MSO7*aAPyDYOZleGOe zD8UGmBaoslInhBRr!ef-V_95Vb17;$SL*Df)mr-*rMJGKzVktZfmc9-^!vs*79-kO z$<%+oL=^-Z8+&PELm74|`t>WEh?tm?Ys#-*FW*SWg>^@V|I@#5Xz4&6k@>p+@3{(p zT@?HHe?5tU;#1bE|Cnj<|JGC7&B>k{tTUhz^VqaIq&B^^gSqLO`~7R$J;kTDd3|iX z-TeiM&DhWBDbqNF|K1sYeb1H$|2|u1*#O&<CSq@$yB%rKH!zGy41fPQMbq5(AKMlD z^;5R0bo|=N3f#i#=38;A53A-jwhzFmp?Jkjz?(+$_JLO!LG(W@3I6`lc~sKFL&KfD zv~Zw%B1FM6kJtQaU_r}aXU;n!BJDp`+@@(nb;$0l9v*IDa&j<34l$9KgqaX#UC61! zHl@op1<-S6d>PTf>0x7MXIT1*9*?7$tc}UDCa<V|sk}gt{EL+79-WW7JzcImfAsL- zwY7uI?}Pe(-Ex2du`HaeOf_$Xl(ELtkSR1OO3t{Zb>#)z7w<2@Gzi`MXGgkCOBs;y zob|_&E4?a}u}br#h@ZXd_-}7-k87)uKsy%au7w5O3*X@jgF{(tY}~`Cqkg#1gcw-~ z35lQ=AMcKaOlJgKutATq<DC27{T=_cE|6doDr1*(BRVQ-R=5mYq?$9Bp!rqkkLTgx za!*j7y`beq49q}=NBH(F(AwG|KL}lRuv*l%{^FRjC&K`6tD~_ivO`ZYkLCnMe$ThT zo;+xC?uh#O`sL7uKK0KL5tM0`#13=rvQB&SZguW`HDv$1+F{)ac`u}wv9Ny6jx{xr z3Tl%5blmwN(c=3eBOM)oK^F9}BBGLHN@fL@VJu}MFRZNigICOp=Ul$!wFJ%Gf<SF4 zQ&l;IzUHu)^i3&1gD+?Z_TOiM1Fldx&x<GwPGp_-ovIfvsE3}jgoB@chaO8y${L<t z&r8Tikkh@0)b>VP*j_ew^;qAnqth&l2O}YbyuGXP4IP1?JW*tdwl?$$)WDnD>8E4a z9ZAD57FSl*27aorf(IWql9}G>+^o^#BO_GX@3xMr^GsiA)M#UAXe4v-avyBhJ_dy( z>m&cvT$P%zUmSTxGldV}z$l1o9>)h_I=b0-q<#KP@Yc4rWpxN(aDcXHj|1?=0^a#x z{A?>ACQB^ursQ9ncZ8!Rez!2aRm8!;qHNml(c`GShzK!paVCk*S3bUvB4Q)IA3cuO zSB-1_Ns*Xz2dWTrKK<tghyA5SW5}PUNu46${ZQexIARV5TML|aCh=aCL=IN#BjFY( zck1@nYE280zlsZUoDq9xKn<HJC1+svO4zMV0S;<74)dV3PCQL=rstm>^3=lPqS_X9 zi{NtSOM(75P7;!Xj);iJ$H(^s`AO?=8lU#XEltYN0bYa=I)Q|UGQMTdU2K8pd8fnm zNdm`F%LoDARoC{plQR}3@sq~fsv|C^^Cxh)fnRIL2)fH*yhg*tREVgg20iX*A0eL} zHpa|LuU%yi1B}fqO~_6GLd-YGZzi{G|14Q!RDCva%iQ#8@nepOR;+Osw?Yr->^#44 zkyBND4=RJ?Z{O}rR-~YQG&kj`eH|x79ZVdUQCb?=A{N537-;FVkUtIQFDb6q*DTtT za*G9qYQX`Zz`W^~;&gTr<8`PK+k$XnD1PSwcMP+qclVob^`%$aoJr+Rk-iMBuX8<Y zmeYMusr^P%!{z8M_P9ka*>#B-1QlWVgt7AQ8t*FwQp5h78fM*7$W*yW=YA7B92YKL zKVw6${#<G2BZNnAR?;zj->Z)VEbu2{;5<Fy#w;c}ECugAHxyWAxc6(;A_J%Wm1Vs_ zp!G378q?kx70^gyNopLJ(>(>Jxr6ap_92=U|2kfh?}BKgu`sc6X2<%po^vsUN~=|1 zU}8%N>0o-)&qc;c#r7De74Hdg5fb%d^*4y9s1R5`4Ulp=Gp}~6d-fT|>$teK)n0If zJ26E=on>{tG5E~A)O2?0)KN(Z4>S+AfwR5=mVlYpVSfiJMA2xz&eX8}!umCwyQ^k* zKda$UD-t8CODhwIikh$q$DJu@?+$Uml%G@ZeP8(T#sM}d)^FOS3C+ph`Jms7tu+k> zQSfjb_O4`?n=8^1bJ;xs?Q(vHOWT&#D-+D`P)USZF2hEH|8?uDl}`%GtImPn-dj1^ zk~hwueHZ*_KCJ~pb9}UnkvMvQM5hk|Vnl4B)CaBS2;QlgEjgct+fm|<jzW481isQv zixq*Y#I!9a{7p;~6>;9)3}@;iwSOm6NkyX(^LrMeo~RD`tRLOC+9~0UKkKilt_+We zL3^Vt&eU*o%%3!+*)+W@xRlAeN6As|V%lP`zOuBoWz*%rIo@!ExPN-cXD(P(b-~3o zp~TgH>+UjGr=|pVA5(hB>f0wf18T^ezZh!Vl6@8ZkNh7~L6~B^wX`I%>>K3&{YlH* zZO?2>f%=wzNeQblK^!pj#?ucDvRO<NW(wz&8$t!TVy{RIIzD@Vhd%EQpi5D+R?PBY z^49!5>XGQoeuVgVl9VhkFhgyf_Q4Z0Bq|O8FYxJ;j)92VENmV!I|HfGU$L?vWsY<d zIFCgWxcU+@=e!)be9am~j6wR|%#A`ZXEfS~p-kCdR*HgxE`4g91U&x9=C$LDja-zu z&=+rltAQIZasZzc|BB3@U#%ndBjs;*<bUr;X|N}GMMMwAeS^%V>(i#Lz>W%EiIfMd z4P+P!Uf!6{g&(YY%98PHCLM)uZ=7APp>9``Vs^U|q=2$fdmQoK=a_eCVL)&gVr32Z z{-gqS)>2APYB5O+qEK}HwfDKt3m1sGfTV3}=v%2|4sX)g{O0-okd+a6k4t@AU9wud z&lBg5uHD_O?d_ZT`cOgUDYiX)9n?P#jS&_Lo*>m6EuuU<J(apyRZ@F+RP#!3d3#y9 zW-RZw`<yW1sp0V~TA>TfMa_6AvQ+;2J6G^ZlaBl7K|~`^Betcbo$oaXM5w5!S$pz- zTQBdwuV5-IOUQW&YUUeF`+`V3SUwtu<$#KM>g4KNq}{Cu7EoOLeS3dDo}Wq2r#xx2 zc~?APi~1zzKwQ>JP0jX(6P|)v{@~7GkEYq#BtQ<6-OihyNeq|gsSbIz8W9tdyrQF9 z@MIM54ynL{1G1$5NGY3dP!$rRELyRRP33C)A~2F8eKuzXKC))R^NUL@mYAi@#Xb;K z6phV5rfzSM6@;#tGXvm8)gSC0DLe0)fOmI>JAcC#RLp|(z{8{VtUU)msNE#R*1N-{ z_IBRT*?q>T#{dh#o8<HzC0URwmZzpBm?qU5j+67`8S-;l-h@-wlugTLkM(Q9f4WEf zA<vMhBPLaclj3^}JT$9`!SA`%*7Z-+SEl=<L3OIiT{-XLgVl%UK|~zCHVaKe6dh0v zN}iIDk*Voa6c+mDkE7{L&cr!YRz*Z5eN9Qx%m~no=oB$<;HaOQ19Fw3Q=b_}L|oF> zk_aS?WYVmlv=JS0N>+Hyly6VhzW30<UAwvWT@dFf(q?ZO;|HCdU!2P;tCa&Q`pgWZ zwyq99HJ)|djtkZ}smiLV<f=ugR-K{`swNK_2M1H%jnOCb!SI%_BJi&U+$*aStIG>O zuD-sy-!eK5J4?P^HybW)+{j_wL7jRO07eN4YVPze87PHS|NikK^k?{zTzyuhd|P|l z5iBxg(^;C+g|tA3nqs{GbpDLbd7yoE)VSI+j`@^>a^#`eoU+X^kOO50*YD^HshUW7 z{_B@7`KVGHc>YN(4l~$ISAQ>UEWD}cOX}$Dreq*bF8zKye7mx`KA5fR$~QABAuUOB zOcA}tk40w5_z?c#>y)RaWlJk706c$)V$~-hA$f|5oO?_*(bVMi<8vb`wbTP3@P2vt zP?kG5rJ&y#D5*d=2f+IL>N5H8ZR=>;*M%R?siamDK}sho-JA0}oxLiwIngvMvjp&M zo5KS5`74`GpK7}GMsBiBdhUOa_I+*hv21fFLNTc(A~g0<Bi{V&o1DH`b3vsO(nfW( z5dFpQRXpxb7}?vH5#i<yF#r^qO>4R=lc?J7_LUUWYNXz<-}nyvwsizKoWEe%B4DoX zx=pgbhAb?QoS!uUn(Q2QI$Mx7zJO8MkcoE2cln~|;AuGr5r-ue6+0~VN=95tN77D8 z+LzX55H?Zfhfy&nouzTJG3fa+$>n6ZN@+fQ<dcW6g+dBWKQyj=D4i@*-pTW}KP7jE zSTXlDLenDwD$8mxstlnRJ?QU`V24SK|C*_Fn^t~FNB4UlGBR3cJX*zDWPPyi=2lV_ zc@Y@H;(73?D|a*nNnUQeBgysj{%0VIS>40&j*P4^lZDHxi=j$w_)`)tajQ@~)YB}@ zD;7@9kn`3TeEhT4_I0%e{Q(_uIJme6(D;UZD@Phe!4&YqLpjjV(K$~5bKUkg@jyz8 z^F5(7pKgd}N-jPAUZUEdv|_Wmw=R~35cYy9tI)ce17PL$=nZ@gkJIcxl6e1-kE!HM zK3{!9Lt|ULgvE@;(lOwO%FSr+Y=;%qrh$If+0)eyf+s@Q3B&tZikL5VH}hAy$~QCs z46|8I`2YY_<hm#D5dPZh@X_FG2wxLzKYy=uizQc1{k+o|yu;pf|JMBa$h!>+yu?nu zrNO(}H!c8QPM0-JPY2Gro`TbBo{*|OYS?yUomqs9iQR!?t_ELtH=qrAoj`Plj%U?Q z#n;t^g$esDEHC%sm`{(0OMy3XRP}B&(l*IR11xE`c4iG|dZ<xV=PH#*^99o<z{{%V zoxbCxB>6ctY9L<LJlGjl0ebJy&RF}=ak6uwZ;IlV!ZF{WG<dajD;+{pJU;>xaB8cS zwl;=bX20HWxe*;M68Mnc3E01Y2`|&LRm*~L{vfhD&bqJymytFgWh<+z!{zo!K&5*y zL0FfxS+X7;nJDzRfvg1qZDA{iXEOL`&6R8kB#-&Iah6TLS1+>C@2@gx?Ulpz%{9Xg z5~U4pwS9efg{C{kXFx`m!SXbgsx%DdT#efCZr)Y;cYGbmZo%o1k<tPDAfDY=1R_KM zKuu+Jb!c*2XH$#VJ*`mFEr%bdTE;1N&#~=AJw7w+`Gw)OKZ!@o=jKx&c(D+P-;<GX zzd`g2444Zo$*LW<zl@r!jyoeM-$DuBOHs#jShVt21eL3AXWbss@;dIV2E`;V`(?8# z*Ex{L3Z9|^SJ1CjC8@1yX|*m%5$WrFb<q9(0JwvIKpp@RYr7{8#^=c+++ubY-q{*^ zZLN6$Jp=ut>FfE)a$Q6fl}P|`nauX#@;8SFK64}Cf&4E$F+F`WLu(1Q-!9o77N6Wi zqv;kD6GOu&z>oVmt;kyH`qK6K#?9Gahw_bcRg=DFE;Z<t2hjL_^w+@K8%C!|;jjo2 z0bEJ2pS&L2O5JX;{&15>1t$?s$6@#PA?SDyO1N;}e71y%SqPL{=^We{_B8`grSSS) z01u?<96P!s2(uYbx(G)0T;T32dK{L4i>a==dRBMa=H_FTbInsH2_4<t>thKPFX;Kb z&uHBG%0RtnVWAN~_ZB^t!MbgQ`yJ9bY*1`4>%zy+htF;%{`Kq(gdDfKVK!6}?r#k# zWaH}7NgnPlqjN}%cdDRq?5ku<i2)4Z(<eC~yspRRD>2(lpic)qnJ(YcYv191K}`h& z__xzz^aR{?OknDZf<{{3XaE%+sq4N*X76PXz~)#gjET_Q2B-sT*r<s<kOuD$Wil!0 zjCHp(u$|CB4HMvj5)(Oj<hj0(+HzlXc+T==T5Mh<4Plk@le~S9ot+)u@;Q$UU39>_ zo9ufNLZ$MM=1G;&GZB&7UK4iXX9ML5-BSXsqJ}^dF5I)n<3$dWoC1x04>p|bm87V# zh7E4oixqOJwBHE+xR&0p1M{4F`qaUHo|s5HS?EmLf`GE{b$qTk%3~6<j)a$&7tG2) zY7EEm3=NBGt8@HL4mb(>Hpl)zL_e4f2bi$Fq#bf#blyT+7L>(c<jJ%^Rh6?;oIu2< zz^~y;n1F;DtS8sq3$}s#TmFf4q_fon6=!AF^>*AyF?32mnq-Iv<KkjGt#M0|202l6 zTh<OIGw#U<m_eY@U@Yl8#O8tsm&8+w`0JFt29zUGwmFNbco2Z_OicV*v9L%rulBs5 zLb+1U`D=nW7?L1aAIFE|DJZ!0)$ee*pH;cg>D5uDY<u@`1pVN&N~zgn?y9QmgY~K9 zBz1pqI(W#)EDsNl;*M_s|2t#`3D;aAQMTdQcLT=z;GX4zT_NJ*_b@ansrOu#1``|q z&F2&{Nu_+9gTp8(5VHX*nj;YODlTRL%L`ik;C=wm0(L!!^qBYymXh%X-~fZ%0Zaz> z=b|V1j+e3S05zY1VFU?H_iXNlm>aiypB$dCnfApYCmACn+z=SSXWUK)a6NX~ppn|x zhFuDdVP9PTp@J!p8U(;NM8M*|(ogG{b&hxC!#{m0p%9$0Rq#_`SJ{m32#+zNRc{Gw z{!#^qYK1W?L7a+{vr8zL{N&rKcHg~!@H7C3?4g<;{!0y+JMJ6_d_n^bO2Te!2snrU z>P|V-eGigcxUI3^?N?IX`uP;AA+zvTD41Z#AqFknDzHxn^VH70&urK@f@?@!h$U4B zfbzGpKd76lQsD(=%Osr=+ULuBZ#hY*_@pfFKdEN`c1g|IuHo2<C0s0vJN4b!A`RTV z<g#9kGC_d+f0+B~zo`E0T@)1+6p@dFl!A&hNJ(3Ov<lLpbayj=g$M`;NXMv1m(<Wh zcL@X1T@KwaL)|s!-t)cZ+`r)Rlj7^;?7io`*Lv3TJZmjY<wdhC6b(9llm8O)63AQ4 z9U^?3dS!7Q7}ki0c%8Y@E|L0uc5b$*F8`+Rq_DSDJx{lH6Ct7|42T3lI#w$A9QZV+ zy`#-^ES1Z>v;s2~=(@eAuOH=BJ8gmzQc%w(a1apmwfKCg;?=oL|9rJ048tQeQ*IpV zy!0kxLeY4o7x(hcr*Y)Eh<aA!0uu2#n1gDg(SPmqde4FZuo{L|X53sU&HZ{qzYg6} zPk1lf<>7~vrOJ`__Nfhl=^)DASU@v={?vk7?E8+G{~Pf0FJ4K9h=$+M-LIL|G%m^9 zV9d%Drm$Gh(jqp;M-)$1vo1EfIy=uMlHd7d-|8s(q<H2?*r48A0Pe9iRI0nCaVT~o z)u($lPjY6;YwZ>be-Lfqg8E;hqg1X+{Go3QZe~EhV)WM?gX>}PRr}kTFyymv;iSt& z`15ppt11kiB&x)1lImi1*ol&856)XfcP;cBteyJy{5_sCK_v3pmMP!SL0;*?t`3nV z+Vaw+CE3lRhR{>%TRX4eab)X>GHFCFdgoV|P52Pyu8arMN-0j~-QJ4fUG0n$w+VBC z*P-UfZR{gtrj-pQe)GN@&I6<36&%J}9kGFhsTczOS`pQ+kGI+G-@pG$(3B)r>sr?L zL<Ga%p{fy&;FQG{uxN}f@f5mZPmd@yw6bLoE=w?I{#mvD86Y>~OCs~C?n4%you6~+ zwkhE?>0RhZ6ryz#7DgYgHecjld6HQVz?Z4|@PlB`0^dpn5AJW`rdD+OvF6#Dw~q<b z5*U8k_6!tX!E~*Co5j6-ygL$(CmP~Ifom%wstb1(l)2qisaJHwQi_R}YcQdb4N?6H z9&@-f0x>n{yFYn~Gk%M7%S`e0Y7tX_B_=LmR2Q<2<ci>?;>^<C?RL5DmK(S3evzU& zZW>M@1v)!3%!!I3OhGlL8>ACL&;hDUC`bDW9d#(AmXMGT!W#?~4HPtkRc=f~Ri3)R z)p<Nbo$&&aSu<b1#{7$46DC_GuMyPCs~c#J2TE^uS?raL+qqXTVipL@IAM#=SwW<J z($b)9OwO#lq)g*_v80TU`%&P*?8tZa?73$=%n5^~`!iPDb}9PqG+c3lDG!Y$ASB;` zw|#K`!zOC#wV8LP&v9$>-=3Uywq|{p3+kIY@d>U38SG2Knzrfj;NUWS9f;$}5iEI? zf|uVEeJ1+`u({P1?Ld?K@lwXdfb>uH0cUJS_XMIA;$y+<Ep^HLZPH`y>M#O~DH_<W zt7HCSH(d8~jWr@XN*VEpnFy@D3k<4zwt9pxN5!e%1Po%?PAVOAa{u+%<9I>YB<ar7 zd0lvVh6jB|h&w62yQ-mnZ@iUdZ_Io6DE!5XeeYIBKnShv-Dx1KzFAJ79~n-zpUNW! zQF&WR9}i|9j(JYqCl!CV0?u<F^9O!tsfIK)g~dmc)O3w`of<4Pp$nDR`jLYKJb5)j z)%qYnO%}K`FLL@>cyHw7<!-a^Q|=#VU+qs7gi4e?C@8J_OBflQ_#3a#iJz+Rp1Nb# zfVnt*cw|12dnxN!yLpO5)?%oVO^z*t2*z>Iys15c$=SlqFH0?Muy6zcd~#S{e_l{f zAab2fW2!RKF?GXb`p6P#<u!=rC<h0|vY37P$1dF`Pq+o~Q7@lZjs?)BSP5Gjt}B)B z9sa4{ja3AJlZs2{)Yoq2Q}zz7k_$5le~D|bKX*(M650mh_ZRd^At$OJ9-0(qawBym zU02yo-VFTmnUxNKhV}9+(WvNAy<f((kPn<CkM}b<#0V*%asrsk?t2m=R<7pP+_q23 zd|04mal1nixJ=`bq)1hLk-Bm7pM8ek`wVNFN8(o@f2Ti${Z3pj;<by-n@W)04GrW? zQ`5^GkY2PZ9JVa>%GNg02qeSqveZ+UZ3JkyR)negTY7rkOjh1vg9cNz3Q(*7n6_3y z1qURN=ybv?m}7v{??6hzFc08*^3d_%9ey3Ta-v%u7Qg2C2I+&lrlLY#t~*3Qa?rML zN%!y48~+NrrWq^QVTKb-{n*%U<pvW{Nktb!=6Y^KFvnX>2OzVd&ifZX%kLm?f}v6e z22pwV2>cE+d}TI%3&e*<``D#`?dn`%c!v~|c1eZDeR$yM^h-9ip74+couJ2K6clVC zuPvYOF{+F&G~jE``uY7seWK^xFt`8Nj$l7o3QSEg<DLHFwLjZ#cbA?0NBuRM3+sDX z>e*)34Olag3F0HVa~{%9j>iNrU_E(h_~KrVn5&_{bz0}%;c7Mu3ql+?8x+k4(5ddx zBcegHRY^{8zhz44&ok6!W}llj$wN|S?0#{~%&hoDr?CQdA&9|1&_F36XQ?epw6o-= zVQ$AuW4SCY&0RD>b=Vd7()aY7+i>6~UByIET^P^p6kBbM-DsYZ!*nr>Y;AQ6br|R- z39KN1qth?Ux;Kd*Cu0~yk|eo*)EM`Sj_Qo3_?JZzcMOaj5Q_Ce#4l$JIXKywg(Pd$ zpQm`0a079dprn)BDkhn=+|Y@*6VZw?(DppnBi1$$cCZRg?rnRsI%<PL!yP0_h;^6$ zWaelyfR579(Fsx#WP-uW%7pBZmx+H}U$PP+g=~^f5@3Zd;c+t0UOiAsM7L-KsVLU< z)V>7|AmlW+3DLL!1K-fHqOU)~4T0?8ILa=yo?{0+A1pj?sgpbteoPxmp5QAi845G= z)ttIkoy@`H3HAK;5++DYCNwi8=4Y;E!67-3zQ-z?=U(Z@op=<l$1u;eVS!KC&A_L% zCGSmi)~iS~=a;(wu^Dan<};w-8H{HI;=Hn|66VZI<?Ybfn53U*S5w?Ih!(g}Q(Y%{ za5<`bv`9M#-rg&?DDJ=i_5!^5{pA&KWA@I@4d7<>>XwA@-EuD+<^AICKrt`ls(iUK zPGGul<AkK9+;{YoT7Rh|X8+>li)UU9Y|urWx=i24sY(&%%MbGYPxZtYli{10Tz1uX zw~Po#8lGe{@&MW!Snu@Ybr&n{Z(0$w9&|JE4(F{HaMpQDW#q&3>aZ`9ub>^o-Ds3V z!15Uq6py5W+>FFThLX?pO$~NFlNr<o-`zs32*cYUJwdHAwWd)ec1fE1B_x5GoIMFe z-A7lk&FzZgZp}GGp_X1BC8VEN4g}o7LSk)aa;vOEjlJR>l#fY_vCvi>SO&oi3t#9e zy%Yb05-t{I=d(*G;S>IF#bZE$bX^^4mk5=7n72AW2t2@9isM>{ugRYT>OKXx+UL?8 z+r@#PZ(0#DAi@_|SPA6jayx&rB>CzqN48$y&3_+?o)%9EkWgrn!FX;sH4|VkwXjq_ zi@jDod-?Lkx>vlQpLVPApabC^yQOe<DW+bdQtrYOOsz+c-^Z5NJNS8@tktWuw6&#r zV4A*0Y5&sBfx|dCH|OzMpC*jmI%udiD6d*6YrZp`nxg4DOEYhDRBwTY>PP{1q__I^ zE_)t(5kAiagu6m~w@X^~Tg}MKrrt)pxQOShJ&cpB`4ABCR8Fq3yE}TY)E(R>?rXss zJo1W;9`5**0d}=*_nGSMsg=1#IAT6YBJrgko}_l;bLu3a6atCUugGqIN`>5Qr1Si# z<2kvmw%q5Dx9OTcU+*%DK+mKIABW<Cq9Ar?`HF|ZC$6iS`gH4+(g0nRoo#J6LkSd9 znnD@}AFNMV8H@0!=9vnh)<@m;RGIfa)OG=^E;pfa^CnwB4xbo%QHG^1(gLxw(jO7Z zsyyAjLq~fss&HRStkAx-pztW|3Po7^r?xEs)p6COh$gwbRSk{7)rF<UFuR3Fv(%jy zC@92!*V2bGXA4~G@A%+s7|))SKEqgjunv<GYy12C{xXQ+Y--m~SJ_UsCnek*0lj@e z8W5NghgnVfDlgr7V4Yriv9dY7H8wV-D0C7wF`*);EYwWsc1rRI-~9Tk6t&$0{xX-^ z6#RrOpH1vaqoUJDfX6v?<JSF8zkXjCkredkWIULx0=4w3p4aZiF)Jn9JwoW1!PBKW zE+(;p_5}L`fTC<~FQ(YFOjpe|H`jU5{%rH~v{vOI`7tCHQ>E)0xP1rIUX_td@C|0p zuRmx1Nj(wu@9PuL)zfvy=ljEg2F3UtI>N+b0OwiHn15sH6G_(43@{XCdX7VDXFxmq z&nB%z9(tWgS5Hr~+Jm&3N2`leCG_^}&+wl>ZF6d)-t9@nw#ZUe*EKiCJDhl3Fk?;g zO?uaI_9ft4D0%XY_81932u)0a?a3jfY^pM`QXMjD<V%+M4dfGix$b+(DjR!yGqn|K z>3{gLt}9S0gxc!4Z_QD!Z*NcfBhA)fKs~S7l;NXyYWn)hcFnmG*5g!02W*_|(*gc# z%~1ck&<SsCG{}wKb1Yp+6}p>uuE1!3QSxY!Zk+Li5BMG!CYOUsp=Pg;c{vXsGdaY{ z*w{Q01j`TdO;<ceM@QY)SH;+m$iyrMub`eZ|MJ<Qg2+e^TQ|1v^5`7R)|3CPw4i+P z0u!^bM1O9tVtm*8>Vs%y2JA=$>+RcjB;)q45!?!MAKzs*?Zh@|RDH51R3)IhK-D1V zwY##AVwNOc?Mp*JQTCJI=Al}rEF%Nu7a~57D@`#ot8g^L`O`;7Hn-J?<hiJzQYOfC zGs9`1`uFnR+t^(H?MVqXljvW=Xj5vS6k}ukKz#E-OA3xxx0Lb5cN!a;Okt;<zfLTo zgzSN(jRoCddJg+~L|^yCBhV`zp1L-{ip&N|A3#39bB>N#FogUxF`isnvC-jKHNF!O z(6MZtK%eOB^j6mqUUH!A#pX_SF1++sS5)Y(85+u{i~HXHvR|`22Cff2a{mCQE*c`8 z2{y|war!<I>DCvBgBl;HD_=H=x(6R&ZMB~CtY0vbowcq00KcE$xZ;Vg&dWC+x_Eqm zWGw}W4{mLJb2HPqBjso6)YPi}+(9GEU+pl(SeW@CZFP~hh-<K#Bsw}Te21BtTJGV) zDXpqKHg-;)8OHx(T>C);sf1hSWFCBF|L5nhBJpV)8j41cP95^=DWG2I^HYq=6eq|c z|M#cQB3j1#KLo)H{-)3L${>uZYbJwOHf#6-NSy!q;ZEOuZezjJzYAt9W@f|WO&DMD zA3y)U`=S0HGtrB*A%kV2C$qgS0+Lum{~P~tC(-HnshiYdAFe0E6IH`bY`6d0TT6Hr zKiU5uX_)!{H{X{_B~;@cIFE&*yflASjUpSpdW!$@8GTB~{1cvfiJ9dtS8)Ocefe@R z)qfkao}Mj^O5EPq&CSXEFL%@vOU0Z#3+-pmT7c?qY0W8DvjaB=2{{v3Du1EsMUn|M zS9o}9TUXiOcQyOT-&5LH==pLG5Xx1@Q~k$DqbQ^Avt$@8+IBwHEujFC3938iicA*J zvaSs`+`dHs31D1W20h5C!mWO!Jxi!Qllc!>llS%oD9QXQ;=%1H{lWj-Rv!zwgG+Q5 zwRlp*+}r~HW{8)TxYsaS-o%h7LLdsJ6bv!ujr|JPlfot7_<cktc>n8$xD|>;G25ED z;!y?nh(Ox9Z@=EcW)s2~l(Otj2bbj^N}tvFh5e<bW&^CSc$=6Q=2xv~GIuzXtyliW z%Z{lY6tFG>Iw8IF80Gn?)viNYsYJKBqCUf^4KsuEUn`5b8XG&TObHs*|8c$`h81cj zS}e|CwWjhTA~0+=;t~>1<rJiB;)i$J?Epx3RPJnU0e&HR1zhhWeu-dCIiQqG9#NSf z=5^{q5I`<N#ojN|6;a5BAGs4n3*1glMP={52a`L(yKTT}XJdCNbxQbEu{MGF1w|qP z#uFAc1=9|$iPA5x*m&<&rgFritc?^pTq~=@X-D&TKwTk<=`@|^(e79gp7@ZJMLMCF z6gXs^X@42i=nyDTu(7e6I%RQ24i2RiWj!b5;{w@Cav&^5pplB&GUp5sIzHSb69`Hm z!Ls3*1Ls?~Q|z_o6P2wi=i_sVD_+>lzIw?zuN^?rE|d7v_W4en&G93s9bnhW+4uO} zT62NZUlQWlVEYPaqxDdf<|gLO2D;i<&Q1L1JNRT4(Z8sOk-4;p;Vobc3EBPN|M7RO zQkLp40WN^uf}UZ;f<`NJUWsnN^l2pC>FC_Kof9!W_k!=l2Trq^oZze>f-O{`p^_)> z)_mh+z!rs;9B)`2Z3NL>7Sj~`cPv>9BuW#7ZP$@905O~O-54+y{_u#nb9mq89FzBP z$_h>4eAmo(RwRKZU(qi4nVufg<0kb$UYniB)QJtIWV855&sm|*o!zITx$^YYgBw~y zBEX-M@)GfGm6QR-Cjd}z?%7tYy?%k|1!GG?ZSAS##2!>$VowM`bBPxmp=xgv^xd3{ zIH?`$PlN&vK->#PuU+YpEm@-(ci%c{@q^71Xsh||fk{P(;aLAA{QzqM|0xB*z{b>1 z<>f_!S{c-Of1>?ghfpv}-7IbxoRpH8Tr0`L>O)OXlo8B7@vjq}zi_+={=MAZ1(2ly zB|$|`NkMh7rf1L{eQ;>Byxiv0H6w}taFZC{o2SC_?Xc3oYe8?gm|NxQ!2ynM<Gq`W zH|%5GA~?@FW<m#1f);(BqLVx>0(pYJTIfW*BxL>i@3-T$27&a69U@@GV#ICE@rdu- z2TF!W+<h<c+OX~L)y_XL41_9=QNzt-J^=?K&cF3Kfjjf_!MZ9)rWUysC=#N_=eAA$ z{vFXmTMAZrIg{MD%@rw!{G6umKDaT^f)sA@t|>HPy3LIiFGH*`lo<LV=Km*85>jDH zO164LDxd`jHu0l}h)3_<nPW1~a(8uI8wTaF&}mQqYDC0_vs)UhV*r~*pQ&bKfng3_ zBx|SPi82x1U|=MQ_pJS|5>{d1?%n%5QslzI(BASBb{<t3QL|-OKsbY{=-Cu**G5Of zo&KLIPfcBSEsT!Mr=tbnsl4?*QQnV=jLf$=P&S;IY3*vgUH$D%<>5Qb_GZb~B7txi zCq9go9})6O4kNtif~Njl7K>|3Rthnv&ybvh#t}xVt<>NQ1D*uFJ;??e;jxyTDo=vd zIcMg-JsxDm>Pf;NU-VlIM1(~K59xx9=(K|R;lqayzvn1De0UT7Tnn#e$NY<X1qA?p zMPa|36-TzbpWlZsU%skgo#1X@{3ZqCb<2_Ym6r}Vf8u4xj8;B&9_|IZ(VVm{Aog(@ zpS}N{8rg!-(Z)b7(RKXZA8ME8?t#6pGo=+3i3OdOIig_|P*<pD<AY9)7cPvT{<kqE z0%>+E|NJ@M&4+KzB7b$Xw!-B3$z@#!JuP8j4M(Rf4)I)ebs*-@cz5x=F$WGOD()XA z!O3u$<(AF=nZB7FzxNL-V&40QK2uj$e;q%h+qSD$K^VzSB<8wSYt5bWJ2gA|bG>Xx z66&X&(h}6Qsa*-3&`S08y?0}@@#<QTxu#V3uP>AAd*s`D$v(zs#zft2-R1psuvX3h zgz~q_533D%)kd2dNX!o{N}{MdZEyXJ`Puo+MX|Mw`S$LSw$0Orn<L`PEX?jFode*k zI^JL%nYhHN5}otpsXZ^ya36loUgVbxZEC{&u)tV0o0*x(!Uhv8rcjKaxXlSqyzZ|P zp&?6?LjPa524}VLnH9g%iI&gqhvkHXh+};Z+)(AaL-~?{C^|cu&+p$urLw~vt2M`` z#Yq*Ft=T$@<>$zj(2fP;0vN#+&7a;~wao=77{*$j;-#s%_|HF4-M>0v844(t3)j|` zW+cD)BCWtl>Fu`ySNUU_c_h30Hix?7-<IbiTY$BJtOqZjx<z#o<LWkc=)DU1@SKx{ z$2~91A9Eqw@wP9}T8G1{#A*%w{F##EtZ1;jvJ%PrpJQ6W6x4G%1&$UtRYzQxCPuhk z76Aw^zN-2X3atHIOsM<bj0&y&jQQx;7&xeIaSD9c)A#Kc;zzLqASk^rwzW7i^RLBv zRM6T(bMj|Nw+AI?#8i%KMtX;VVh2(kVI0L8V!c(Q(G#v4z8<AF)lv%T#}Y<6V*>`J zv%hbGz4)U~y{u6YELq8l8WlJ^rxOpn4iq*?6eVMi-&FH3g?b%)JvQ*!mDBe=knp^8 zJ*1*S47B2blLPvjwJ*DiB(%VoOD+yQcL@pLPWt)lSBwVIcRr!(<^LdN_`~cY-WbLC zOzJLiat`&poBSLLUst%fmB}j6h(FWsZY!{{vx}qz=Y>*Nl^dwiy-o}Re-b|jDK(fI zQ|z)}aC`G_9ovP20OS=~3fqz6IkyNA_kG^AsttA`5TZdIxH7rm-(#L#ynhNR2_U8F zF!fb|F;1YJf|2dzkSx5`I6vH(eVmb*n=55_ds|ye2RAZ*X<;T=E43IXte55J?Eg4p zE!7YXZi0-_Z)@OOxoHKmbnzan>pN}fkeX2v?UvH|kX05A^AQ5U<{&0$v51}0(t+zv zPG+fn_>i#fx>@%5wgdf%uIH)nFYmVRR0X_Yrn>TlS^7a>;Ejuh4^uQB{Bz}0%H6wx zFMi&Yet<o7LFo+JMdm6>ZF6iD>)xS*{cOu^w+mNhrw)9oHf3GiT%je-)^x8#%xZ6Q zih=@66E6y$I0RuS!YKBscKA-#<`>(%Pn{~^M3!xA?R2`JH7G{rmay2cwKoax-xK>t z2hDTj{Kp-Bdit=!<{^e;sjr|+5q!k91M{ScxB`>(y&B@m?O`2pwLESMES6r>^K((3 z0Gd&FUfE3LKflu_)}=P}TjN&B2^Z&epPpA%?)u8D_3q+a+c=i9^+e>-e|3(WbYFCI zAFuSze&MK=VR$x9(C1xKsN|0~kb@4*Y({Xx5T~YRo+F)(>l#PObNc$!&XF@o>mm^7 z0SXG*#*}uA7Wi?9?dVV>{DWH2TuGnmix*|~8&@+jGSo4Rjm=KC1wMClbcio-@UgM! zh+3J%Cxq9faD4xnlA^`w#cyIHaQy;l=neQs73^j~XX(B>w;uXkPfUr~lB1}8Y;3G< zrE~25hcj7NTN9C#l(dL&!=so9WjR=n;3qp<*0Fqzk>a7d@vM!O+e0}8g&9ZlyYPI} z7Z#iuNAL3U^LH=!s_!1=Y8t7Gk%oS1*${44m-yAFj%yuT88GlQ!Ea;TMCq8_iVuq- zaTe9dKa2`?#0uN&q}ZiAV7Hg<g-eAMdPOBUkte=5Z1n7cXhV|Iw&_6`Uw;0R=2>0V z!Zs^kcJX`n2Jqa>dr3BCz59EHwYm|(<1sY@zIUivP_v>{7VM7E<s;()M^<}`ZINtB z`9vpTiPyrs{=_;hV0#P6S^Rz8BqtNcpNw|32|iSh9xE0(50RXxE0O&B$(Pq^xtebs zkeB&+_^mtcN9F1!8hL*HJ=q#{m~R@}xn?tA-rDv69na^#z3nV6K1z!pCt~!SeVx^w zYG(W_ttTQ|2i0;Iyy2%1wFQw|HT?@~K!6<C!K)iKI>kh<_NotJ_E*%D&yWDqucWI> zf28m2M_u89;;?)BaEVqN@sCrQcl&$tzH<f9HgFDOMVDkz)+2B2o-;8g|F9U!zQ7`h zU@~K6y-FFe`BLa1o$ta{Km>qM=6mdc*ZVW?z3#KW=;1jYJ`)xeR{N=&^_QqQu^*|& z^y+-mz>JJ)v15wvR^-SA-tFY!_`zRFAk03gJpHENzl*s4mx1UJx4z+YiK?BJNJ?sI zZ?OhUT0q2zn1pxE@%Vr2%}(5z8P7U!syyk67a9or@}*^xB6-mFFR$eI_><;_d&ZMG zMLwCaokat;?%dhf_?v%NaY9s0!d)Cg%}6VELM}P~#GaR^IP;}Z@8I))*mPS~cc{N6 z_;5^5&&0w*IX#fu492s+F*Hdw6H&Fq<3RNeij&(C2y{-p;*Z2)Lh)%ke@8+k4lZkQ z3LjMDd8F&>ZJmfDrlA%?{42b2UC3X}FzL_=`Y<aiE8n_x>-S7qZskx~w1-4l|ND3@ zDcs5WMl%!T)vI+0B2KH$>Q9a%Y^8N*iyZhdW+x5d9)-)c)%7ea7CqlN=+qC}-qy>; z2$)=t&igPuKQDh%MWrd^Fea`)^YrdcGN=_&hXTk}Ro_=T(;i>h^xDLEc)SDQ&Gf;0 z@D<J<K>{XjZDs4r)k@qzUWTfbV`Ou;sCc(1Wq_0PFgR4!`|=wos~S(AHt#=_)AuT4 z1=5m8z&Dlj_3J6?i@JgEl?QFp($Wgp48*Q~I=^dk!oVuqY(4TNK0>wn^zu?P(dQ)I z3#_cHAIT6SrUrkT1emth%(m!@(^luz_f#Mry`M^cs;t}u#^=SwwtW?U)sz>F)(7DO z$9>_EZxs`FDB)y+w*tC%8q!10ZP_1@oEj`!V)CpO{LQR%RPM6xuqdn^+Wb2VNmw~V z1n25Sxtd(L8}>=Fs|vCG)bwp_=Vh5l`D<FDcCM)HG-YJUk&{HaPQ{%qQ-qld9kZj8 zq&8i5!dUCFXWHG{fx5l}yqNPl)geE>MiX-w?56g7eR^7)L36zQ0JVS(SW8~tbABb) zy=-$(m3m`Bpvq<fRQ0m?n(r)?y>>+PB-IKf%H5;b<xiu9$KzH0B$flSSgKSy9u>*s zyY=Ht#`%hq!!B@An&^4QetD24vnu}ZjBFeFBfNa{7IA+)ksiZ(N8dZ{eyH${uNFFx z$tR(CU`96H?$KQ1Mnu~FX8c<0&X`7Drhf1d2|4Cq<!xW)^TdJ_1qwQ9*=h}g)SmiF zuse`m#5I8$Un%#VWJ$ZKrfab`@)`Q%bx7kS?iPJityx#^uZI#%KARNW+}sTfO`FqM zN1Bz+XU8fey(C^Uw%y^DOsZv(*~0YMrRx=nVqqja%^@GgtlQ+bPToZLOg{KSz@*T! z_ErHXPs8Ks+hjENKGzt`FSzq_l*~lN#kGC=UXLBgBI$NpeX8b6Hg-_?u)i%5CZGsH z4k#%~K;vyi;f){GU(Yl=K3>L;ZPvb3G`ho3QB6p2%i7IFLsF-HvDvdJhlDIkxyK~s zRd>z=UpK7?Fz(F2n9=YW(?qV7_^bvqN(D^sU7Ja>NTuUlBd2Q}42Zy4H$1D@)OhB2 zkn<@xIQi*RowaW92WCG~3djm2`gzYQWL%PLdpeG{i1xjggx<kEPgHRFUmBkTd~oBg zo?f28vpLtK;Y=~q;y8|!8fQOCW2$%@E-Gks1tP?n4>6lw!5Ju@e`%51q7K3AHZhio za%^0ja8Fg@s5#yhTQ6}D$FD#BXJ=#Hc-=yhemg|O{2uI+fOOcnXfRKVI(QCZAQ^+m z$Il&#POtc~D!1A0-Me@G5~<nvHXFRAfrO+=M%y$n(fz97%U(gwND}Igx{hbEwqPco zU6UIOhj7^5my-!OdN(+D|D(745&nmBMtC-!>y!Q%vhZnzOS8eekdkfHDE`{+wnELe z%zT^+U92F)Nc5Ltf!%~;)M9Q<xfJA%VU%a!xP(5@tNGEhpZ5{sq-IL(C~N%#RR{}; zi2`o}=aiB!aO)N%JbWy>ZuVOq?Ay<Kdc=p<Z=&&tuOh+kjaG?8(Y-Ss`0AeMm>5mh z<>Agxd@~#C_Gu=Ctf%fS&UDUkd<P@pX9)b7KlRG*J!7E@95rRIEax+GyO$OEbA7RX zbsp=BRGE=S+_96ej1yY(;L&B+SzkQiKMNhjsB-%2ZP61x<TV8^tp*F-q*TQ5=WVow z7W%OKgdi1>_D)VwJ{2+4yNy7{m#M}<PARCF7%Z?MfrJczt9GcB_6?e6Pk_fQ`D`_( z$;8{ol}DaTur!xY?6K*j{$sbd0)U(8l_#FBraN?14{0*}H6wvcvXdOFSj`g^S`0;R z%UvutMhh8;2Dh7$XKW4={TB!3hIVa+$_|)dT}^#Ek7P3pnrmkoah-%ThT)3SaYjK9 z$89V$9&W8kLamUlQF2+L+@%Yn%I9bYI3jzbD7G5vyOMPB7470*=X(?36W5@}>N-`I zcjIYyls8=vYa8UW0`YZWZi5TAYbKCpNw#u|*7Wfx+nLSCXQ>@A(m9L$?$bT8EuNy+ zgJq}=%RdWyRvRa|&JJEk^*uW4ySg85#Hy@43$Uxv)bq{HpT?$LdNqv-(HWX(`fik6 z{LH18?ayTBV;|9oX5T2I8UZeeL=z4Tr~N?(aFk$szb7^x_CKUE?<u-aoT)+l&9!q; z!26I-JzKwBEN|~SmNHa}(;!FQB#@ePvZHLP?3_}t3=4F@Oa)6;!Q{nU5ByYeb54}a zpCIi#X6f|32R6zRSC(59h5)Kf&i;Lxb3OIQ(b4&*ZK5{4gwN?x!Dbd-a|v(#MO#Uv z{@>n!SSRXVUfudx51;5XFRe*<Ik>vc<GL75t#9m3M>6vKayGfaFoH^b1Y=IK6OM<g z{8xO}QdPRCHBpPg?c1%bhvkTCwPxMVQO<1T;+V_e+khj?$hb<?e$Hl;&}kDYh-eXC z>7C=?)S`U~&$ie~EzKq?twZIfL8)^rfNmj@NUQ$zj}gf%QxswIbO~iCQl5vm029TA z-wrGUH(F370ZJT1N#Sf-yYK7koxBmo_a5V-VLROw=&T)TJ5+96DfwX>Fip0+7l(ru z9)s&b>CIs?%^u~_{1x5rKegPIMBa~eVDazSDlXximzHjRR;l>_HFE*gt*YbFtUfkU z?#+5>QSw1zoS@=?M$z3P1K-FYQmWou7t;8hNz-<fRb`UP^siP&p<VUX@64ARP7K|P zNZ;ev8`F&;)fpH5?FDFPXn0l)>iX`o#i}f$luv^9!R~YTg=uG;w6XE6OV<Uy$%Zmg zEe)4Bu?A7|H1+g^3E2$){wWvnZdf`@XI{N1k|ON+^5_wHvcLEF!2us)PJ^nb5`(2n zuP%4!Vo?362nm;St!!*CSzvfs*3VD&8TR;M<yeXErMRLF6moa|0*F$v<mYtlNcD7e z&3m#hkoxM`CJDh3^h~u(^VR5KODiWU1*d5^8dHz_%-1K0E4T1jpA!X!n9YYXaS@O@ zMRk5V1HK(DvhEVbm=0HQ<r~-@UG&1=CIYyuoKNJNsh;~}J+`oH*DpKel%s^~N=8Ll zzxSJ<Xl|X#3rD}-yWp@32H8;oImc@9^6WEc{6~Er=VV3fiy_8Qt3Ue=GQr5F&WfDS z#rZ_Kc~YauJZUlL6fvYCh$i1{+S3NzCa(Y$%}=6)!C)*#GS4b#<e<*SrKY46!eW`E zwb1|@v6BKXFXnLJ9R-o+z3p#n=-#Drkf%((dgI!!<Q>>A`{M5GbWQsu#gjCXx<iT9 z<@@o0(ecDNnWewCeN>U&O$KteQfNIE_%P;SX36(r%QyloPlbq|ykR?9{o<_7s64gv zah1xhR68Q-0_onJ!WqTuu`=#I6Zm=hT<S#>3Y1t?aVwha&*frAHCj%QkYK9(r#dA9 z6!<o0R&RxTG@V>LBe>@D!^uV%F?#Jxmpp)&u#v?P3;v;slN+xtZd;FSP{X3@vx<+6 zyOQ?!Z&LG6Fi_U#ah%5XlrX^wAOd8@!Xinh^2GR`{w(#^m?)bw=W<9mgv$!?W@|pD z-~Yi>b;omRmnQ&9$#<T!9H$W&tn4UPijNg>J7q_9y`%1SyNLb%`L3?61X1sgHQ#m) z<4rVw%%mw(&=e(Akz77yzpHy5$_)>j8j{Z^o)=|97#3iLoV)MfQ`9Q2%PWX7dFU-} zRnrb;PUZyCXm0+Ek&JDxwR#<$noVDe<)3yj8#9PZ4MDxT5)%iPLXhGnNm3?FoRDbK zUshcQcim67>ZSVAiPiRDAw1jD%eX6<YURlNefRM2h%&_Oe>AA6LF#3ry7C~5*{{&X zt$jBUNadc&R?2w`yXrsjZF?HGSTMUKC)p_^Gy=}|u~=+hy0)JSv?!ZKmAfYs`-e>a z{oC-~#nNFHah_HAtl7bM$K+J9W~s9XJhIxMp@0FBO1llJ*$vfNwLD9lnoDtJqzGcU zwBP2q*o*u%1%>#tEScPcy_t8?`&3-=BT*_^i0;0mf=d7t;A+G-pLqviJ=o$MP2^Pp z^P&@NMUNMFbY};yy%oo#7WdC>If*MLkfGd}!5Z@{$MN=Mreb|pRLDR;L|VFQ{cm)C zmfCzvKBaK(#TH)?LN8hC0ws;Gqb926v5d?)2?MVniGy8LfJ-6B`_d)R2jL0fhJxgU z^W5JCNXI%Jc76$p{yV(%GF<gVhJMPupeXKzWECl4o{55?2*OuC$#2GYJs2UiC7by& z<H=AKx#*z$M5>9CwxFHm&PX{#<!LPTA>g;zv`99+i)Lo5%IA=%xD&D4Jk{5T(z+79 zJGX|bFU&bJk}>gzNJ{8`bI!O*g@FP-ARxH0J?s4Q9=@Tr-lU1hY};%=Yx=qfaleaN zmrrSB8asp_d5>&IRLN~kaIL-*)hEXa^&c;_c69uNB`=5T_2eB$sR_f_x%TL-K2?>e zxjE@0{7$TtucXZgO0ZkX=kWd-`ha_^+=b=FjW^{kOZQxtHOFD$>ejvXD6Ztk{+GY9 zzYN@*YsVCtsX*|2`RahpF>5psbq|tPFr(#z=S-Mqo~U8FH!RH|lvIqhl%bM_f(CF; zjokwShkw#@eAF5@O|U2UEKtq9yf!gdZdJ8?r-CdtXQAfO>q3g1pvsqnZE|u@eT*_j zcW7y&u#9$nUp}>%?=pxRCs8rdwysKed2DVp+v@s_GMDXeEUzH*G^?U6YrIe2)%Q16 zGE(~E)R$BquQNuXnizY}NC+?|Ay18Uh&WrGIERc>KmT*AX6}AJC@ObSGiqry+eeS$ zX}|p5%#4laU1oOC>(GsG_3G8U(7zF~z_}QkipXHGw9b}$0$J~czJ!NcCZVDCnf)t= zLVgy{sZT8{uZfZ}rrIDraW}>JxZMl>g*U$#8s*e9fpHF<j6PyJ!&v4c^?jm1Q^w{~ zb9?98m{~<n&d(-YtHwlK&Bph9oS6AqQ+bSYCBy5ot0QQtad<a*>QyDv+G@FdkKxPx zRrvx@H?5|jed*TC&KB9~M$F!T=GNhDk{5sTd83$f&&8=bPn8&Da7uhp6k#HvCtDw_ zq%mDnt{cES&_0K#W(g=F^RC*G@dW#$ZB|dcq(IdaYEET*ZKB)IeO!4ZX+A*a5}S_! zA5r<9M+C&6f`f^wBJ15-OF~DdYSNgzA2e>xl_KUY!rvdZrz+jm=d77WwSQ%=&1N%z z_^41}D{<fR@Jz+Ym@HJLL_k{H;ADPhcLyPZ4Zm%j%~cT-L!*9pNO`S2dM=S%(hzt6 z+)Ve1_;E|U^<br+HwpRkG}BA-C$I414efTjW(Nip9T@3s5o*V`CU33IYnQhm9!AB) zG!zXv;T$_yi4@!Joq4v!iv0F4BI<+elgWjp_7aR)&kqYqnaf8thE;nSce^wA&7dB1 z_DSXX({X5VN&>lLxMM@@HT(4#XC~I0;Y~+0T!aWTT|v&}jd^uEjyG|^cW4Ek-G@~s z<WN3=p}htGJVL^jOfd81)PAd~HQtD0N#pQcH4;k~Z6Y6O{QEb>ybDk(lP-@Zd$XQW z{P^*s^JEQ*HduY<08HQPtg)%@o=ffo_<*PXfz$S?CxP}2w)T@%oRCk4<<Om5x9%Ml zZa^LC2!ZnbxM!kiFjKeN5WE<?D_IvRg(khDNRDN6ABh`;95+k{w`6a6iZA}j1rOsr zed$1Bj*6DQ=Gpl!l|PIObF%YboJH%c+pIII^R5bQ7Jd6X*gsfWz!oh~H*)so9@;Pf zS3K{D$+xj8uk7=`mNj5XckdW(z7%o$D=H`Hp2~r3leH+ydsuv16VnvhvyTngUL8sd zoNMp>VPRBPSC3tP!~;)AH6J08svP&~a`~`4lFn+*jQw%@7S4978O5NBz8Yua{BgAF zeWQW~>{A3iEY|ul?lx;$j11!M;c0LgH8eH$WNN8?L=PYzB_#=UW9Y^--K_howEMF* zw({CP1qY=805Uc<=Jh&$6dtZb-L~6DpohvTKGX7l9Ix`)YNR$GT5sdXdsb+ww1r6S zd3thu6f5a1nkW{Jt{BbI;K@|aY3of<!1iTO65YIc(|WWtOg>UkxLP5SU3voTja$sh z16`u>V6~znmfv4JN3lLEicR&Sq&J@M-~KbZ8aS%Hi;Cn>KWU2h))zXl%Q`xTaT6OU zvbNnh7zS1Vu~%=czdC-2_mW54fKOjA#4zPY^>sLxMs|2G_TB(MF9??`)e|lJ`7>;( z-~_y`2)rMVvr&H^p8~TJ0lxx!X@fqeUncr#UPY*BjO*Y^qvOF4h9}^2py|OxMaRI` zU0wgtn0XoDq~wwx$b*L`K4eGR{7Igvq(GpFPm~cK=@;h(SL92*EH}R3YOQIsA<=IF zE2DAUD`$`*3Vx0zu|hb~Epf2O)fq%n6uqY8%Xiqv;qJND=m>aZhjrSdnHm2w8M&-} zOw~Z0EXAiHd_7n#>qTsM<C@XYyp;J!uNo2@0iA^_BjMq3mfn8Mj_uCrQ%!Co5gjm& zR4QJ^{asiHn8pi_oNgupwxgX$y)w2G7lke147m_b`S;~S@SST3u{gJ@zKIIS(k9eG ziSjAlE*k3e%2W2{=lY51hg|PO%C?tH8qTPXPAp*dSIpVpC#_G8u`1f-Dv!lBq+hyV zeL;C9;9?i2Sd5~yf$T>?;o`C9ax#)5Uu*aUN1t}Sd9Tsyfr{cV(!SPaqq-+fD4jzB zJ_Q;!#uY;;`&dm)z^p5gL^08f$jwdF2y)Uxh-T-j@#idWidAb2?B~mX<8o$gp&by* z2AttDNJ*p1ai_^>_l1I;+#Ls_h6Sx+?A)a^)2Qf91}(b|z>}(YKttOq#)LQ%GcH4X z{~AK(p=xUnn%MvDEVea|Lp?T4uM#oDeC2D**M?jPuQJ%nxpCnFv|0gK6$<12pr6Bd zy{2TVatu(S)8Q;zs`7PY9%3O1t(>zY{7w&QX1!!l=(J2$54Hqb^HIhYurSbS+_Di- z+ktnzN-p_~?hQ1z@k0FIj1`M`EE}o{^~U@gwg**N?RrKvZNaybd!|3CLQ$YCWc5f< zk<)keFn-FYiO;3?4Ai%SM{AP3y}d+tHBe;Wr$F3y6hI>O(T&nYT-@AUMdrgFK72S6 zLN8VO(=Lr-a>0!6gPML@Q++*5Rq$zqhA7yda21$Yq)LKfM)>W!2B^=CC_r6|*{bb} zJ~VuWyfIxBm5e-A!nj<&_`J@FSVzy&<M#lSS()zzM(h7I6+8i}VRPe<AFWhZMG^@M zm7Sddztiez{lCMlhBP|_{I&L0lnOhht0zKBuLzhy#0Aeu>Z8?`#Zv_VBB?{`*C(iv z*SnUym*tW1^mbw6_L37yfOi|$duH}G3&W^{UptABcO{X(29Ad_Mx=jHR6=}osLUZ) zq=go^h8l8z{^Kk*1ips^!cewjrdU~jl?=J?H)+hBqLtx9%Sa9i$BnC@LWq`1-+u?8 z<?*U`yXvDqhQmgo5;B|p54@f}JrC1`lTF%}>fJ;|M0$QmlcH?LEHB4Vaj19D^PW}x zEx^f1_J)+2+aAAd;kq*12tn)=>>ZwNi{$v==Qp*6+<O0r*^Sa`xGkAg*%2pC6I^(P z-@14Lv>QS%A8kZ+Q91tk47y>YJt(Q$O>mCIe`3q(=&sjbo2v3O<yH5sv73ZQJuH|N zpXTN1smU3wqhpoDRXh(*LclYVtCg)4bj6+=4FCLQOQvc?8uoZGo{V<;GF0hMSH|_! ze;m}f>(~y_=YnoUhzz-4O-XvF2d&P)%|E@mMl1AH*N#S&bWjfKEqvqN2bYu+CF_5r zaHOlJIHE{+?Y^q|E;d<JS-xbST3nRZd~)Wk)xZWWIwF?W@;*fT%AN}9ysA-3Sy@>i z<~jakoBaMg#c8n4Vj{1_bjf&p+5l&QlYgO#Nmt81JtIkLy5pmkwritV?kH%ZBiR`F zn-?rd4H`zW6s4|JdUMRoIE~~OmdHbTEtkQ61oS-ao~4#`FVEcRzI#MzSngJ|qIlgu zFGhx6lqvC{b3qu#Myvq)!n>?wi(?j(#32{SU@g6%^*x+`5K=znQx?a<4}R>(@7=V~ zU0vRsYM1^ca)#oZ`8J3=%NP01D(NMXHKfqUb)R7+`6S=gKvXJ5XYce*{iUv^;|;&b zPh|QYEs3uEdR!lOuTlOh_M9gTogAX}qGX_a9MOFJd7iBe^N$~&LIU`BFl+r9G}}}5 z<DP4e5kdGXgu^9l8N>A;JR-Z^MZe-y(w7+Xe8qq)yR!K^Y2VdztInQJW#yT|kC;8z zK;Ch+cfKW2FEA>Pb2MQy$mK+%rB~XjN8=4=rtKXa3-0?`4Wuh4`zxtztd8!GznA?y zp8*hQ^XMAzwjXfx#Gjyez|^yhc-r8m(s0g8+loo(Rzo{H9g^A2&5iXYUsy}Jd1^<g zq~fGmz5n#eoOEJbf9KmvZ=yQm)`y}EBErMvA3b`6I^xi6+01zXlQ6c3$p!$vOs}{c z$(gGD?%Q68$xTdpUGwF2N8BF&<8$cFjxy3uK|#ddnw|9SJ1(DDwOs|kM2H-(@LV{r z?rI_`kIptAM&Ki2PIxp@1!nGe*N1xy?1}K0P*yI`gR|@P(4hzjA<$G!nhKP)7gJ~l z)qZRDhP|sR1f(LQ)<k)5K)~Gb#knn)N*F+LUef80p%))tK2R}n{sj<v0zZ8=?D!xD z=P=sC`Q4HKWmxnr{ky4Cz<T{ge!jzfF`YjdLR@hUzKs{Dmc#+8dF`&6)um5SVT|C> zIyj)7o(#83qyuqC^jMNsnqdDJ>=O7#6FS?ln=hCw)$`;rtc-=RlER?1QLRi1LY}3X z;6v*`8g8c}CfREJy~oA)>fLDfdvYn-$3XNG!f%ZLeQuBWE%O;u_6dWxn<nj=mCqR_ z*P64c^o{#U1BeJQX`;DU-A(AEY|M0w4sYvA5Tc@Ub-(Mz_F9jjF^5Ev691b7<Ic~| z|A*Up$koHk%L%t>LInOXdwctunWo)b``5X;WroKS?QLss%6P7ucn<#V@9!T~+1cAO ztNU=FbbhLm5|>w)mZQtKPiLbeVY1Pbp0n$<gh~Vt)r%bYIqRik#5B+$<gXVsC_8rA z)uq}PQJcm}hK5)3$lZ}L<o(^do&9t}i%xTYqO?_uH;)e2J7N6Bs1rj*D&hDUpvXWA zO;gNxK|^+qG5uwP)52rN&b(1Z;OGf_>XJtF%H`c1KU+m7CFO;`ox4sf$v<d?OgV!V zI=;cZ5*1kwe?T8i7_Aie?O!YQnYhh!l#v<95nJ7j*G;=z<hd&%WH+V^nDsR;O~*nN zOsstz|EI&C@&nAtn5Pj~8Q!2BUpxrxB$*)4{yb=05-AWnz_+M(#?NPT-(?m~dwfab z&SBWor;2y1LQ{Tchm-p0<w$i<L>n%8iJ8XgWtCDE2Z~KCzq+U<sn!&mXoeZ|6um_J z``2fF6*YU)tqe7UgyPXBR*vDzaZUOR(*qI;PrAp3Uh%Ev$V&W0-}o5C|Ksl5N()ok z3y+d~62`97ximNKx^QAP#fjLKk@lIGa+WXyPxqNQS2xM8-W7LYXKKk<F==Zb=i`9G zBbYMQ-0&>rg>))Hgz620?;7gqf<_++n2~@CRE8oe9pNht+^X50Yo2#dow<PHa)TUE z(3**+6IbbVMhc50*S~-HvfAf&w~b=6CK59=b2%q`HatSw14h%GTd)31P2KDTYQu#! zi;drOV>76`XK7K#1#|?e$Bj{U^%Dvg9&?WO7R~|FO`yn_s-=GK*5RJ|;^fn%$Hb_w z)+IyUR128yh~G$TEZ}o+&@FYQHHu>WOnEiJ9;QXXpzDLcv-VTHCP4z<r>3Y*G_qc> zjR<>OW{@yNPZp={dpCXx3MH952$<oVPZafzVwS#Gh}f~4x7gUYU_EwB4J?z$Ii(yM z7Rj5nhT8gVrZCN+FGsJPxdu~!i%^W^YyVNX=_O8-`7*Zy2<D6z8O*QnN8*l$XF%MG z&zpG(G|)VczG2w>?;azy4CfOrwlsh^jOlto3>C+G-K3XDSvkeu&1Lx}!;!tKmw79i z+hA&r8rkg-{|X;v;g8BGyhN#9ZY&2R>sOn*6IOFh%MENnQ(wJ<@XxAk8Ng$b3ZlSV z+<4T*xprWT+CXgRJn)?#^?0GGx^l7nI66VnD+G@5O!6Md`s_^Tu&(5i$1~2FP#974 zkK)k<7*w~}U)}RvY0277oA_s1TKvQ>HVu?>?gCa&q(3paS!M9$9^{RfiQIjgqdQyi z#JCI+;WjJad33P7DI(r@fnYjeA(aaEjUQ!WJQ}(5U<`wu^g+UMp-fU;@5xP>&|`5I zud%=4r7@pCOT5fduPPS1vB_kZm800*^2+76XR5c0x2BTU@ESaaLcC3rgMoK@fNCv5 z$^wD9A!B=VS7*5u6Abf(+-)Wg`n<kfCO)V#b)pk4__NT)Zlz-x{Qmv>vE*OQmIEJC zI0l}js$EE`!nd9+<G0>X2uZx(2woSe`i|j6QU)p71g=Z7J|W}QQhOakPVU#(3@^vL z!@mCW$WL6v?f6~)H*Dv28mLF0q!}f58BfM4Jm_m28p;iOR2lfsRBJPn2{uzO`?7X- zw2{m_TOP>SqJ7RrbxZ+>5{a-+PgoeNW)DRoH>H)xRf_Va+EgR6NhIUdoTmz5Hw#5V z+hdc24QIaJrSC|IHJYCP_(VL1Q1nHqtqa;Lxodv(sE~b(;o2npURr|Q9fhL1T}4l` z@s;&jpuX>~)*d1~tBT%Y6i1=!Z9dMsZ);fC=D+(jKH-@NY_W06AwHbx4#GK)Mj!5P z8E(-TK>cCXl;DBb#GN6ukB8Ypc?V1$;blr7Evrf8@`WK8K>>kX#{xeDIR?&bj5o7j zxBlGd^3(lh|NRm0o$qxqYB|>B&-Ry)5`fjo>@HvL=;9QfS?SMxNeZ5Hf}Sf$bIj&6 z&tqISpz1!4TUOBzH0}qrdvt7c-xbe!FBknV?#mZ*M)dXfZyU1g6wRQ*HfgdB+GZFo zGVD6^)4d>gsXO{>f}&#foKCcGoZz0Bwy>T2n`#5}rZvaW@>$Z(`my7D8xpgwq=i=c zq^LY#lYP+AvEnNvHASH?)8q-j9SFegKOcGneWq1*=lmORT$pwr3>h+jY;0UV&jpe; z%^Tl6rrABNk&X$?;qn=tt&(%K0^*p(Z#&{WE%;|+cDvZdJ<4XS!)v7L3u7hv3pwbj zoKzfGVuIGVWn`qcfE5;Zs9#qA0{HsNtY1z8QXf9XzH5L!Stx#=rKu|g`QNvlcXzhl z6OcN*k8H`Bpuk&9@!Y4OcO<JD5!K&W{8QUgTZ=Hd1Et8&md|{wP>!vf2r#kiBl*~| znX{Sd<;XSGkYvQrJp$=RSY;M!Bi6B0L4RG|eRjv+h+Ds0@po#cy8qXu;S33a(*!I6 zv1tqv4&fjvg3Jc|vT6UY3)K?dYJhREFY`5j6&DytifqTf2B@ZnC51iI_7pYn7EXl9 zziUrt%B>FEPaZof4+-WSfoy}&hK5^POoNi-cf2LrrfEXyaD0HH5mFBHT=9Zaz}N=~ z-{ID~V6vEv?3hR|a7ogSP#w!JS=H0oOTdweIM32_yJ642Dr6kB25(oIPKm8zl6Y)P zmfaw|nCs_j9O^L(Fp(Tn=42*$yl=E+HvyyYhkm^#mhjpwvZ6~$N^)KsPkc*Ea@E`A z%vZ2d?XHZt1?|bqb`|ui+m4|len?8H<#`?jKi64tb5<l9aXn64IY^*HC)L%m$l?sQ zS!wu#=O?DEb_DW{(zBPbs>YE}2`>>#elso3tlV`}2|`T`3pRvG@dz2TgYacjoFcr0 zrRo%MpFRIDUI>%xqA+q{7M0)6qm_?eEI}mZNoks9@fdRj=lsiXcC9V?wy5Yw=r)W? zvw`aYbvMh-ZDdg;B_)M#72q>??!Z2?3@{i7-1+V5oQamQFITokGT>5eeE4e21q#5* z!OYC!QHnky=UGTqJrIJSF#Mp8_NA-OMP;i#Syt_8ek<CTs9D4l`-uBo+}stiv*s@w zBd<!+?;Goh(<%RS6ySUx%&Hn&yo4_vj<}}R!dtfpfk0RunLhc*@?5r9lI4I-YN}1y zv+OU#$wGI2VU5{!RMPki^~CjU&n0EN_WWX{@>Dd9h5u<cZ}=C(S>zYzU44PG>Xewt zcCLWsvM*hJF^cpIiUS2ARnlHOnD|s?#}St`JZH5XE@F$CyTBZK(X;AzFyojgra+7G zosjK()>@isvi7w*pRd;*)aOb))BvtdS66rNcz_#qQrs@?z0rFuTU%gYQO8}&Wo0m_ z)7O?&fRo;ihewi$uWvr$*A8R)<Ish2Ub~*WY+cGH8-}Mo!|8)!q6;HQvVX8qKO2A$ z^<f4koM2x2vc;RkJWyI%y52w7gAiDB^3nbEsm_ly45$h(yK1?zdnq1EQ1l2mpMj}7 zx7gTX8M|Fjr5Cml(aO3PNYj*}SO4MG{j|S-=1wp}qtPX%g7PY`Q>o|ZHP>ljHX{vm zut8_{x9qD(EXL8Kxwg3t&CUFtgI9v4a_j_rW_iy+ml2Esy2-^A83+6!?mVXCt%QU` z%s%ev$B@I%F!S+-ghV2>sM`<ssPCxuDDK8z<mY-zPP|G>@56BHI{!7a5!zk9(3Y6k zpR6AIZJ$4rL5&L4Y6O)Mold8U551)4XJHc1P=h#ZbGZS9^@7%0xwjjS<Bo5p6Z~nF zw(IP<VFFXhpu{8SHV7fZbdT702}X#k)8NVh(-=RLJ?`$MTm6I2se~WcejV8W;eR$O zKbdBK${v02`f`Ar9PIlI<YpKiLphc|2j-5J|M0O4LMRCgF=Xcm<Fj$Q?cJR!-@1YI z09UG^%iSF1m0|niI_dK5<@af6tO0TXqtsVkT@UQ&3G0?2o11xVq*dg6R{A3K9dYJ& z8eTi!ULSe7rj(cf@8q$UOd;OeA)sbZ%pQreT)tbedsJ-*;{$ceuY!SzrJz%6dw{B< z>;32x8EO7kExa#Yyjb5}zX28ELWT2ef3&^;PsE7F#j*hguSI<@1_9m14B!decf4kc z#uusY?TA?a%hOkOKt_N6i&1mP^HfFJ!=s~(&CMUaC&vk5Zbwsr7MRox;9IX;x$>r@ zL>T;01U9z7#OZ{}Q9XiHCDm<heAI2id;j2ol9pC3np-c1->l1KkRwctwS?e1Dt0c~ zY%;f9*@G#D?!Ycl*=2&qmfx(FnTXM@f80<HQi(KJ!&)_@+PI5`cK_`K7#ANiUzj*q z2M6?Fp&OIbQRSfF`0^Th{=26O&Y_k$332$GfTas_iqp8NXyFk;GZ8EFlo#VW71-{V z?I?hO`#hO;_Z}rz^-7YC!QC{1wMZD#y#uDO!}KWvO$&X?Egc=V`1vE`kiM2X=+K<w zK0rT*+gpZE0loitX>n_=WWovGAp*1701V8a4UZKWg_{mv)MOSf{oNb)-@mqVlUwrb z=3LwQQNu>bGUfGP#>~*rXkl=#cq#m0W%j^)Pvu}4NW-L{NNvlW{1#7mtv<k9NlnwO z5TwY%d0(XFf06grK~=x)-YAIZPf$>45KvH%mToWrr3IwBySq^oq(!95KoIF}mWXtT zNOyNGVA1Pb>)B_Yt<Rn_v**k^bKaSkKOBer=6zq+r>-zUJ%8ttPy~GwzOVxmdko_y zKkgIXu`9osH-4PSF7p&|TWGa5eLEqmB`@TPq`{XTWnP^9w%aYa<;agKhJz>k^hf_U zGXL8%OIX?J>HU6nAA~n~_f6WKn=sgM*1euy!{X?7{$$I01?@}!$jU0Ici)I^M?WSh zDQWeoAetAp<gM3FVENf%b~>d}fUX#X&NGXv)<q|PiZ1Up3zymqynJ9^XINiI1<E!c z-i;gE^_hTPS}C76T_S?~lOK;aAq<T@^`EHM-#R)vW~lheGcq!+lMu-Vq^EaH<+8zV z{n69{(K|o#KWIqghlEDnf~jyHC4E`DC*f`WPDck)z4q-<2G|KO(wlkJIq~h&n0N1< zfo69Li7cyO4+08ldLw!^rWsW09$sEE8)m-b(WRw4-|0VrVT+HjF4a}f<Qb2hogFDc zx<c8^j3K(W*MMh6yVN4`k=J6G4Hr<eufxCh_2CerPU>tetdn8;`O(~>)Hx|W_@T9= zecgj1LJBAXrn%+By!C3`c@s85_3z&Sw}D)tmW|VD1~#?`xL8oj<xRW>T^F607&ZuI za#qV@C*rK_^FUPB?L1QRyl(M<0<2KbnZdQ3T}*cN(nhe9?<A;<hXL!x$46jqUvOj9 z)Nb$ohJ0IFn}npKQmx1KjrfqTFnR`tpzC*J=4uov$;ci*dq(W%=Qms*!@PsOEpGcc zZ(mq^r!T6S+A}mX^23{~U_lG(oV>CMwpcVFsJ+KRSFc*zm8W~#@^E?6e(h`nST4-| zIwQj!-P2~PYdM1{@B&LnJzn(E1@U*}m)rExmQtZ!0&|oWbtH5|5gDeGOlnI<dk-8; zE+{HQ7@34U+|6AK3dDZfH(hq8XssrpdE$9J>ESNNTmVv+hrssXL!)wU?<(nPA(=@4 zOl?^`$8iWnu$JUit}#I(HC&uYn?7eewU;`T{{%!;@JssELhQf|aSA!mT~6rf0YDP? z{z`JmXR3pNy-gFH<L=oAY)x-Kk{t8{_TJm*d6F>sjK1L7L9=Cri2*j5yqE>uOB3#7 z>cYy3(Kg=~QJa2UZDeX{s<Th!_u=8g^7ttDhJO3yvAYGPv(Q-Wfwa!Xwy&{KwCBO+ zu}GM|)>>3+uP&(B(b#p854nAddS)9NRTCn`a1YUg2FtwrX%_|IDBVPd)6>NocmZ$5 zaA36I?Rhk<b!}Z;Y=eN{Pk(>Kq;s%v6kTCNP3Im6V*K)v&68F|@pigXw)Vb=!RzHC zTHd3|hv+xyer<V`1VsxV!sn-Aty^f`DO4rX)v+7*rN35nd{{}<Y40;(Cn<V4V7|Qj zvH9DyOT3|ij;?dMzqrC*Hk&JdY~54J$Ky(OXTd<1;@OtaIq!EUV<dv0Q|ansdB@VR z)v&4j)#MV0M8vhLL2yfA!uN+WcOxOVL!b{}5Zy&dmAV8XibMxGkyIzKNT0r<*3|9^ zUCBmd=-B6t@@Y>bWU4s<3<2e{kyqmv4XoJB0t@c(w7TOehh?rZt7o48>%o2V$KaD_ z;l-(Wmu^Y(nVEk+*HUM%Y+4BS>b}1jyr}x~*&Mqo$9efb4rOja_05C6nkAKjzuc2_ z6=^U2oEkz$=cK6e^AEc`I7T)s@sj?Z!7msGN~@^+gFg-g4AE6tOn}M!`GMkri}t78 zWG*f9{a=p7*JFLe|2DS8JL!M#gK=hFy25aW(Rpsk5wMgz5DIEPFn{ppSxWrKy&sqf zYx`uyi8N#>VZl0P(O=61De*T;AaCH04<ohrjmYNarevH<tV@^$v5Cxt^snC~!AflL z^LJN&|BOHQCLs6`p9}wwUjY9l#pAJ9Sy_3Qx1x%DSEn`bG0oTD66fdsYP`wI&I?>n zo#Y^Cd_D>?1}c&{K+4u19~tk7J$@9+d_K-rUOsy<@uztTZm}vZ4Uee1*vl~WhuC+O zSOd7=(RLx-VdLZsQMDd)<Pso<fIF-HFH(T*!j!mc0RSAA*!7v+xN*bdBsz%4V+$Kn zB7bRYbtpr~Rp(oh=P3fNq3U`*&q0`N3=)Uo5_@sjbe^&5r;*AhPpM{XQIE++uXexG zsqWLf`d=RVX!IAS&!LmctYciblsuv!4r@_J;X>0oP16C828#E*n<dfqr@=li5$WPl zyt#_cTv$iXMkJ985!geerYy$w2SBNL5P)z?jD|N3bg&YDR)PO#adeqm(2a{c5F0S7 zmswdC`^<Xgds2m$M~Xx(Eh#Vt5YQCg(*v*(eFd#3?)K-E7i21YZ)v3bR`T0!5-4ev zppn4b9%hz9NWU2dUx|26iUL%s#a+iU$(xwGRS=Z^696dR)^a7s($8{UEa0z*k*LpT zD&MYUFf~dX59C=)R+C^s0i$x?`|klagTxv?dHC4*20hVx@3Uc&Ws_a%@+evtBZVcf z)l&K0LKX0H>mIBfoxr~exXs+ga@=;5kdV4YK@yRi!-544o<a?Cn4C*~v`ns$E-D*O zu%7)i-=<;X-Jh1S*HcfQQpqUxbPm?On3`F8C}k#94vanpq^~0RWhXaAgQe4b+uNqN zOT9NFGrQ98@7vhaT8grF3kV8<HuE*qUpSLKSIEfBkw<nXYL>H)X{QHi{l9hf$EqJ) znL0J3ht0cMw}$D@Ye}a@yu>e$&S`(g-T?G4TtL_a7M1}QYB9J6zCiOdwHzs4c-ESS zk+(!9k9m_sCSL!#Ba8KOu1M+~hc?6L5fPCy!AnxarWi(VJ|S9z)Iy^)%B`+otPA+4 zzby9>PAUfWNoVn*J5O=AxFURnjTvBX#(McGn0q0t0A5v!G_Y=iQ{sC{bIub(7)k}M z$mYiJ)GTe0CbF2Ut5oJ*t30CgfyRs_{*Amj#*B*5(S}}){V?GQwku%E7r}@B=Z76z zon<JKf#7^tQTU+|T~xWvV_;}+GiGhs9P`y4uCOf3Ux+$*_wt7X<Z(fvl;J&Sp8d3Y z*KBzT+kP9wcNPO@nwT#|M9gP1Cf{3`Z4k6`?|o~UJGy(Z>D&nvbqftbWu6PmY8Afz zf3LYhn8LH@CLb}dY0y>}yXpbIa#!`E#{-kbOlY5sjAplxY*w7lHhH0Fx}9}<R{J+u zR?ehQ7xS%K(Uk`RwY9Y{1EZv>?nlOLBV*(3{r%>y{=K-hz%eQSZoBLs{OQd;K}bJ& z@&h#G8}l*OiLi%i+zZAnX*{N|@7pJt&Cbk#I><f}Sr<y&5Jo51joRI9Rk_*GI1XlH zl*s&F12`n?QqSQhRaaL|ZL0IMc>eXc(78W+jw^q9>SMV!_~kv{f6ku#kMA)e3l>hr z{;%Z&{ueDQ{eR|e^*`9hyBsq+gwuV>*b;O7?M2q4q!^C+($CHs{j)78Dr*EMmnYwx zgXjQpA8uC$^@oiZ-;d$+H6NjU*>ZGUGD8$^_57$XY!lLx@;HIdL2^2|vllk>HZidc z9G~|D$blbh8x;CZPlu`HdwYA0s(UR=dVi60rU<8l7w+lrmgIEOvxlF8spcy4?K8W6 zballZpF6h`8*dGg+}F@GK=y55!<*IOeY?JiV&E$27#K*w@_6G$u{gh(bv-W=Q#Lv0 zj7Q_nbaXWIKHwHK<JE;C7n~}B-BDptj9grym@=}XO%GNw=yBepq=W|tKTca<WMH^P zLLC?!?47nlL`JLV;c*^}PXdC1^TMG0JGpl8BF>$Snx2)Dn1-xGF>{(I(VfDkU6{x9 z@sshELq+Q5`-o)BE(Qv?Ha-sMW#LOHscfU;nBE8&MpxG^Hv%jOXTM5%EhITdw%p5u zqgr)7wr{&o-ET!G!B4o6o(`5eK|A5B$#Lt$`r*kv>(#2n(|B~IzW-^gIQk^UYj0(I zIrsHg8C=3Aatg2xjc@RHF0<%3*Bm=~w#5KN3IG+v3Dk_>YTK^oS>?<jIK*2<(lCym z^6uV~-{ZMPM#j?MrDF>gN{r1rvna0}uFS8Y9<-&~nJfo2z_k#mP_p{dP5MZ1q9Vxp zEH$JC{VXjlJ*x}ero~<O24dKC1?S0rZ-qmI_Z>RrfbKN>TcBrU%FeDG%Hww2-Ui`H z3n=`gF8iV4?Ctx&@nCw$%&t@Iqy3_ot_lNA|98J;nCai1)slpY?WnwPO7Ux83j~0C zX<J8qVy&-3#DDo~f2ZyNK5hMII%o#r!XEl|qyxr8CAeVOu}=*JL?p<6=8{l(!e>TX zTZ$CB15_Yv%xkK}kac}M2xw|w!Yv8%z4tm(QN&GUv@|O>F8A_W4TbX)Ma347?R<bP zdYiR@R~zY!5gYc@AK-!2q<giX)<kdcx2AY>LIUK-Fg+Dm`P3kygMNT@HdG!ct&-_@ zD03GELK5%nnyj@(Woza!8{jcV9r&CB0Ptz$8%7Y2fJBl<l|{WcF+BxZQclNqp13@% zzzX$ikkYPs+Tnwg4;fpy2u%2p^kgAu<b8Z<rRC&|wgM_F&@LT16;<Yw*v$$_Kmy%5 ze{hTuaZdQ<@ngkgoqYo{oF*&UEM0HcdoT9JV1@0X{+K#zfEVHKA|Y`AoUSBS+%uUP z#RBgKm&cF0`?Nyg&<XZ(7J+z+G%wvMZk8`HO`su`#n5GaNNlt=+8AK~tkI33B8q$C zH~!yjtr%Sf5hArc&Q^GfZRHU({(!n0{s`Wj_2Kmx`(!VUA#sXQhbMiz9__6xB($Kb zQ~cuXBt1=CXScDA+qtu<#s0&cZ0nltW=rrLw$}F%2;||9HgNhwy&@T5rHawUyb=+` z9!1oES=P=PJ-<=mzNrWLilxzt&D8GDR)1w6*lD9^IuOT%Ti#R3VV>~*@1m!S!Jmxt zG)IdUAXCZc@2^<n@JA{WmrMMO+G;i3P$b{~^2pj%)0*>8Vgw&@X-7CYWIY(W$AYKl zG6L-RJAFN2iM*TUP||`I^#fR(!qG0|&^!;vRb&DBl~--1Ic4u7vf_+|VdB6Nkh7q; z16l}2XII?!hupgV;NzRCOeq5?sgcps+WOwIrW^FQh4#mr0?X6I+Uym6uj*R7c3(=v zn!^cqitqR#f9BzPfAQqSFQTse71jPT&+gG)rj>MZ;*$DwO<i3bQgKq4W0}oH$+S;< zsfMfbJ62ss|JRvZ316F0emEP9ez)UfFyApzix7&$QoI<4+Nodn)N+T+dc})Ji$1Gz zb~u>cE_dnI2T?Jx2_TwR70e|!IH8WZOevI7U+1;uvls~`nV)q%RL}BsLLxD<Hw=-a zQi=%@d(5#VpT+&B>1ZQwG={h7D}%NfZp!kw{msv^aqo3kNwL-rj%kHTExQ2mK4*YT zA6@ri=Btnd6zOmyco;Na(aLvZO_FIrq44efmE1E^8o&B_j2(3FVtvo|;XWpnuO{{7 zmWrCE#XclJazz!iMDb1jY;PYpNy#ubxi=Tn`z+4~(X=}UIf@ENAm28{hH!qtz@W&f zp7*h!!T`g;LgRzY1deh5-8wMt49uIl<Bg%_zTJVx6w>mqgB4S1iUW!C<zDt*8+T8+ zGKg;39vrXlaLYkW$o}TI_K~sry!2J+*Z*99@P_u*N8FIRw_aZtm2~;|(&E<jJ6@W$ zMXcqhdK9W<e#ClnLzlPd_|U`Swy=47BDcF)cc(c7%D4DPX?UEcQe(XnAJyagS-+n0 zNlZ}B_Fg=ZV`0VO&*)FPKK566bJXeeX;#?+deUm{BM8w^hJh1Vs$pgnzrYagiEvkh zL4p=(3rhzUIT`LRiV=1iuVBt2bWt;V6Prp1yVT1ZZZ^Y3<{V@k`b7z(BqR~RHNvBV z1wR@^8E<{~;Nmw+%?y(9ur5l#1tmcBgn2tbWDD?j@7{X-Nu?E=u29|i1g&h=q|?|Y z&$YFaP21k+e%EECcZ1Xekr#*9dvd$?t_5D)@&{uWvE5K@tm>*i)RD1Zm=E&fifbxC zd~|Bs$;imuY4{m+xG;L>^4j3&f-B0fV0C!d|5`M<7(f2p!PKW~@7NPLub#W-_KSFD zzN>LYP#^oA$B!(z11F(baSAie$&rX;i_v1-H>cI#gXFcd)oVz>u0^OD6&4z4IFvQ} zL|&HrB57Yu`jM=a6?4UlM;b?6a(HCSPn4Cf)B5nduq;{FX?sj-rcsgSZR@t7iu(HO z!wuO*KY1S?5%ZHC<nl`nkS3b_c=LS06OV-T8-(Y3eCl8!?btXxC3H@`Pg9q>LNY8m z0NCP5t*bD;nL?2!S#i0Xo8PDMZe8ugv)7J9kP*ftT3vVH+sU1d!?_Y^AB2HIkf&|` z<4x1ms*ML}qZ2Fp%%_v<;JhP7&<eCN&N9HHSQ%t<4-RCgH$@~@2zVaZ1Wnkh<&ECo z{wSH7uP#9o;YOmX;c@SIL>7@}&Hi}YroW#2f|(rU=}KZIn{Pjnxpx^WnxiivlWu1y z;?xIkmQj&@%j+s_1f?u$Vv}<=`SA9n9Rp!z!9~QO+a-I1_-mTe3-^5YMF0k-@fvNo z^#Nl{?i%$oJ<b>1rMdUA;>hpYchkw3l$6dFcP6*Z($98jk2t+iXiL3~gXO-pQU8E( zZ~qF7p7PWh41k3b?E5{7h!LmIr-?bpR|rGhkg^^|@=y4tgS!hSvjDe6F-;1NrPqAw zsh>t!9DD=PtyoJfO~Ic=>;=TK6x5H=z|>|%xIC0O1Ge{ioR8K7>l62Jq5kSBJW2CC zh7I^@m8%&$E$tD?FPU~Q7a+A_@6F8=5$8DYo^pYJmR$!A>l>u;2e7Co@_Dn*)+e;X z0dnV#c6UeeQt@-{Bbj_e?Qikh<0kikkOK<PnHpSYaFuo!uI;DRK%x*^m5(p>7o8#z zTRocwc-%@@qjJkFb8=xnPvl#r5~JEH>JRvmx0{QR;QqQ3YJTvxQZ_5TlW+hFM!A8& z_wDN^eS5i&D+W6`MzA2DT;^MB4onk0mpSFsv!UCmua6ig!U4AejM=%}SNrnit0K5$ z&5CKwyTi!N7GjK@7Bh6xlBikhO2UYYf4!fmP?^24-&TQM86F&*fd8~n=3yeIyV$t? zstK<F9)Kwi?8L>vw$_E-SpRB`nwX^EUX~S0=ZoQ9>^3$xKb*M*<pLN-Iaf-04mYy; zGcrGGX6WNrH*l*mCnI&U9|}U&-la=dxO-;(&(7)l@P={5)SI-V)v47i;$6XCEaAxF zF0{7~TgKg4G`>IS-l^ZPxU=_Jp=%{&A9eA)M=za=)nxNne_~efMKHN7C|4V(dq~_q z+?gxC8@#LA1@J<-&1Az;NDRgYsGfg8Ypy}<C?@V-O9+{XpUBPCol@6)VL?Gn*2R^T z?>p&gNHg_5{E4YIPvOY2;U&c)*xv_re#rY|{^z*`HCtPQduwZmlj9rUX1(<&=x2q! z{y>4geOXR6xU@K3mY#Z{Ho9s(kxyh~xUvq9k4uc2@Yr>$f4sg%4<!Z%=#fjmn4epl zM5F`L&*iaY;I=V#Sm`c1S0pg&pH^>=Xrs~<GJg^l7G~bEF-bmzqK1U1qKb;eKzHwL zB*$oo;*)zlWT2x4GkND;%-U}ftO1)bxth`E8NqoixWO+0HFh-f+orHY{np)JRKx=N z$>qcM=~bV<#>5c8WP!QeVdn+U1$G@PzqB&fg0AkmcFK$1-eb-S84KL1o(R<F+EB?L zU7cjiqGp+xu{{CHpzV88B!gzYHjR$jUg#RlYARx#UeQjxJ&xV9gx$oJLL1S$mQtgc zdW<y~Xs5Buth}0Nb$-0k)KyP=uNOoWQi>@y`6{Dc`QC39`EV}4mEGRk&QwKa0{!|{ z-+fZl9H>r<;abZeX9mGLuOJS6$A~+Xn=VQv;spWmR;h90vP9VOsse+NdBDKD{J4v~ zNNTGZx@K=@jt8?ixvNQWniyY3q#=^|P*EP4Xj1dDV<!(v`ikbA@#q@YcY)8D!pA5( z_P&I>272GgYIxgtX;+g(elxb0Rp{OQ9nr8;FR_pYD&wU?6=GWZNW-}S4Jo^bJ9n;p zpN)_kCwdIuxT{aqH6}iDDT;qWT~PE20L;-XcB=)#n)|ad)w>??uqZ7~=|4{7^}iNl z-g!Ze!_Rw<_FvX1<dor=kXwr2Bzq>3st)*S&o8!<%gyd5bC$K@CIYZu&P4?VANm{( zmU@;6tJJ48W^<p}j8-L!;RGkKw7OU0h#d?nh3)y2I9#&dI}KnPb-zk%vO;wFGuk-! z)RTLYkfM8zqC@}?Omg{ICzrK}7*p~5xw++%HP}4h+II%iMsY22l$g#hyKbD|wvQ9N zX3@_qZNh(pnpl1SGDg_F>f9Z{&(xaOSIkoU0(WQHf8$)XrR5mjrKa8nY(hf!ow;t? zvvyHdkrcoI!TBXyME5H3-aLz0m%d3+T6W2T)68!Q<~R=7pIynABLGqjidUTjk1Z^a zq~_J12YRbPG;5x0=M~;u3;N_0YX^Of?Fe%YY#7G&o8MqTa6GiSxyY__TkuYkNI~9i z=M7=UP<g~j`%mmm(|-oWSF_5f?rML%J)uWYBaKse)ge)*zJ6iWVdF$HjN|*23pn#K z@o)@ixr*(^c3z!2w^T@+dXw_Dlf}N?n1FrrY~4NWRNq!dCq;19KQd=9-<W5ju60NT zp>AVyqrwhX<!;PC15}!8<7mb%Dsjap7I(9{4~WRf>^T*oR)Xyw>Jm*K5$6^Z%ivb; zmm*?jjev)^`1g#~&YvsL=g(?kyuH<~z3H&isrmI;?tNH&!_h`xn}m}1{nBXF@}`Zx znF57avcU0CCsCQW>h#ybuBN}9Zw`NRDG&2Iw#N1{s-eQe_{*LYf_8MGHFZ)SUQlQ& zPOd(@kM#;qgCkzM;nvzjMLN3wD|UjG*<&fmX|S_;NM!Uon|*&*kWgbmG2f9?&*fj% zQbW2Jmbc5umb3bn7p0=-ZsI0l6T5htwh9r{j1acMa3vk*y~XrH%o$Kjvfc#d7On@f zZ{$j;t)*8;TE8n9%~>_3JDOZ9K%9M4NELz}Q>o6&6%<P?#ikvs3z{WnSLBoVn)>=; zD0!_4ZHBqD%Bn}#>ktU>zzbJCIxlw5b*Cm<^?&6w{C@tzm1<#|*tOiV|I`9Bt@P(u z4(3zi;*(}*6dBc?9j&rz6i$V#XSIHU&`%;Q9!rxwKhNzQQ>QrxdjI;G*)%ftXICFT zzSyl_Ym!!O*un8TPZg#@s;GOFuizPc<v1Vwa!02Qt=TnrIxs6k%<>RDVGlcyc^N@s zs)*_Q%;yeL)N9OLsBodZkmbHv$0v+p)(&sxQC49?<@k*Yy$q6c*!>}mEPYdWkAOz( zJ94joaBB9gY8_ooi<fOR;RT!iSGjD)@<)>vZr$U#-M;ryxw#kpWC0O!blmn4^}j_u zQk$^6zZqLE=EZXRCH$><8-~4Q@AOrgxvF(N06sE43rhj2<YIA3M^#}%&$(^)(-bCz z5p!t06!EJnuCu#V<$vM5Ev`Aih0Fw;1WTzQ4~A$jN$TwmLo40t8I6yU24$NocR@Ya z(AN~%`jV&Gm$vD9VCMU!{#G7_^>BKwhTSyN*<}gR6N;XURCk>0Nm^-xL;dZ!c0=K3 zsEx08#f}7nT7U2u#Y9}5Bz{zozQHG?<tY+vH~Dya+UC8|B}Tqfd87XA^Pyg&hUNk4 zaZ)?$4IVzu<WCe{X(C!;QofS)qLfj!bUQyv{fY!>>rw1rC(1$v+{)FcizGbSHG-L5 zC$4MfagmF&Et1ZTu8tpCym175=E!CJHQH)KtHpQAA2ohY6!1C^gVA}T?l{gau=$-? z3VNP6_11SJpVz5sZ$Lz9g|j#p#ANmC*raOhQi_MxR<YG&j`>erP50To726*FS)-Ru z?#zlbTB(=Ew;nsDC4x?X=N*CWgvn|_jeyJCm!=^f6g!Jz0VG|(j62p$Pp?X%^f&i? z9-f2QW18&x**=2x$CkWc==P{wybX`PeY~$Cd=>Wk+OcvHZU1rU*ie#A<H)ockC2~* z4sqS5BV(#|{W2uW6UU-@{-5auohq@Pem3$HqY=RhaAVVdzxh5&V}Dk0ceTH9!B6$; z)5vvU6j<KFhK7eB2&k>ym1=9h-Rtt}f7NvCxH=4q8#<VJ_sbWHwYAG*m7ZaiL@i1m zbSRRS2S8cD?bB%<PAk~S!|){*Yj$N%yaZX{t8=+h4hr)G?o<4nRT*jd`Bl%!orQG{ zNThoU?%%><MVgnA5++(ws7TzS#Rddi3UUrU>&~W*cuvX>#;7z8Z!brd+vj1#u9*)f zHq2W{UPc{xojqLX&z9`{{wjB2{wN|DT-!xX;}_gE$D{Pw^?}oAnL6{ea6kSW+F)R? z)XF*M;7l*V^+IO8gVSj#_}yK#mrzn;VqUTugMRKFUcln<+R#iYuN#fs{OU^8Hoefi z8#3EDE|Zm!QMl?Rix*%PL3#DY^@lZs6E~rXfS0v>jVV2OF&(*nUC(MXwBhvl+|Lj4 zvLm%S)lL8E0)h2ZpdJ}n6S5nen5=R{#z_w9frBLchImNpm%HrxS4<2L6FhcLY45qB z=2vFEhjAc+U=W5<Z*Qr^*lR=DeMa-h8#<S2n^&%gmzeewE|77<JKG5j2|PN*iD!!L zh<RL1T0-r4PsHNUNmGaCX>8;|oIiwacP1VQZu;Cy;HBcbMorZ?SM;e<H^tm_{8ca_ ze{{tE5JkancSF=`cPflS4i#K6;T0B2!jjYnaS^A-sKsRa`sw+2{R>kO{1fkOhKqBx z%0daKg|M!YledDplS#FGcc;dn;l=Jse^|Ck7G^jOkHuA}5i=z5RopXP;ge;W_oUVC zsVx{k2|F3psA+zYeMU^<S8-PAHp_6d>(h5qkym{#p?TeAxHhDJyNp&<l)Y|kj)@yu z&;!eLFEho%lMONd3UadensF?1*8<-J@7P|8xp1_gS@&t28e5W9#_;H9-_a|xT&;@U zG5W^p2yKfU9~>QBE;l9CD1Em`SJ?cH&qOeH7pojLqaf1_*G+q#nngRcpxw=m!rocS zk#c&B;q1t%=5mizVpWBh)|dN!ev|tpO&(tpMF&OK4%6NywQtlRfXF4SCl_u9DHxA( zzMLiATt^3ouzT;<s%0OoDm!|PGD}ILY8pm~xor#ehF1lsrsSHXad*MQHyZToELsRc zn(Dak&3)2xR*5m}{c^}%UFxnyVPnrvLHJj~gt^c?9%q$r<w|}joOs;|;hRs@^k$A$ zsZeH0A5E*nmj2DM@-imkTH;x4QfDT&^ktv!hzC816MbD1v^@#7MQim5oz6|vn!a?; zuh;K~TNqiDUZt@&IVmVA&6|3t%$!o0_+2(Og<_D-TrJsa1*1z)lq(tK__jKj7YJM^ z2CyElY-{T?$Fk5sq*eVI26ZR_tsqQOc}&|@zP`5R@j;p%>#N$=ZzJjaDzJFqjnjA+ zf%*cLJ(*`NE^(^>+RM?Pv->%>^*pOYQ%5Q|(Y`bLer0|iC}6<%Tvuu`Aku}V#{>kY zuAOuiUYo@`yT$v;KN2KI>M$1d5~(Ye{n_|X3DH3lzPIwbSTOQaR7HH#&__&dkW}X~ zA6g~c@imrNi&X`g`1Qnbi6hzboQk`d@5NKvJYjcw{RxqmFN2gaO)en=Ct)d0(xxV5 zQyvo0GgBKaRaGl;bUa8$w7#HF@yN6?#fm$vd>cK>Sme~^le`RJAXh0#{c3z_0Vq39 zl;zWeFHfaZWppTqDuap#2uvb~)`C%4hc-JdVzk`XYrL!dskt4w^wQF5&#bcKP%Wj3 zQkO5NeA{2zuF+ps&(^?(Xk#Gz1$=e|;tTZdfO0%xNW+=sbf{9GTmP~_Z|?Hke#a|d zex?eeJM{`*f1uqhNlcrlPOsSNh}8Ar_b>MxscT{5>)tKPh>9n(MsSxs6NBo{uI@+) z?e7XIGqbaBrUip%4~^*36_ceA4d|90mN?9=^!+>i7xm)}{Dd*TD%R#UQO_e*SL^=5 zy9Fz%IU48XIdrN!cSv$PYP{8<b26CTp-n)T2yUV_E+ypm&{j|y6!}9#%IDwf3so%= zX54sI`*ww+5Anlq2y-^pHMF%w!!mfCimJmB?F>Ge;IS$vr5rC_Xr_k|r{>OrV|WCH z-_Q{zzkVl%(}=;4amBaXj|u#=Y9?yySNZJ{YV^uu&lLA>&YP}!3^6NeFM4@FC-EJ9 zf@`LjXu|2cOej7*x6~R?UpG|j%b4yfm<naRO70WG<iYXay8OwWO{Ftx0veH4@b|N3 ziXN|(+#Vw+y?Eh*(|kKg62HBjg1dvmdnohPhD%y*@N~s6MhP0=Wxls`D9p|Rr)j?9 z@~=AtHw3;#(`V+NYiw++@<cK;G&F$IU39>g*i)ISE|fB2!Fmle_EnDD2^V?>co|2( zvH)$hg&eT$OcfhmS=p?hiKi~#d6x*c_2}}^YnlT0qA#B&4!5==b2rKeoeG3po71c1 zwL#c?e?zBgY3xH@mB_EvpGT6_wd2827wV&63}DWHy~*0^sABfZo;JnKx%@U0GUHmj z+j~{QYcguCA3Ecz8b|DTgctMK5E~O6A${f)yAw4!mBil&a|SSrP#EE6Zd<Ncl9&Nr zqWGZb(qTPhu4xpRQA<m=y<=8N34uX0-(+O>K@U-EH7*5lGVNX34bYvu%_eHrSf_X_ zL6e8)xyBURk+zp5_n^;}k;t()n5;ucGZp>x{jzWCM1YCHIM1G$3ol*l>+|&d#=pL3 z|Gs4It#X786>yre;=&j5+*<56anpP9y>U2^<(lR0S7YDPW$Jn}Ei}IArk~62uPNNd z<xNgEe-iV!y4|~)YH|C{l^bg}MZ~V)Os!aaYr@ug=V&y)Ex{g?xueFWt`+aztmNBk z_8x>$BAm-DR!%N1FAqGxvf9akN=@CExS3+_?&z{vDM#2YY93j`CS`{n6xCJta&Io~ z_^K^~1;n{rpyDBNq3A#uc+qbnc9#t{s+s1~POIHDJ-s|VJ)JnGiknJXTkq<mq;?@_ zwLx0jBWz!<0R0~^o6c)+k~{D04ztEP7VYd+LZ~O~*UJlz^^D{FbfPR9g3iSj`!44S zE?y%ddIVN>a#Yi^oq6ul{Y4H<h28Zi((1Zjz3|joC6~9i!~7m*l8)rS+gM#x{3g&g zLxnOdH(6_Y(Vs@>@_nFn079CNr>>#kG{Mp?-#kCHQnm`3@nYLWJ7@JYQ`vZ~DAyyI zV7F3_WfGXh1>?otYi=H|bu8=DQ?{;UrzZzy14>d^RdxLug=E^8yFPSRQcA@hoUjNa z2%_vNLT4WnGzvB+0yuep`E64+0AheK6;&?4c-dcHJ&BwqH`?0_?m_hv#CkfNW%GHm z$n;nN<C}d^kfmAsPZg?CHTxNMV8eaX;6|kIGf0PXI-Z|_T^K4aQ%4RMYG`IKIpKpS z#(h2*2-aN?sF(<BY%J>;fYDdE@P55qAGR1JZ%|r+`v+fZ6_ie%zJ)@|hA719u|}kM z#|;f>I8|!aKXK_vjQJtamtctIx4PkKrB<=@ahxY;NkJx_)y_}Qg>#B)lYqSai(z24 zQeJ4&(G6;9%ZbVlhnpW?;RA)Jo~vUe6tvuNt3scB!tWD{F@xWw`_Ei>U~^yK?7{-D zUU7W1!9;r*{ftmcZ&;8<Gd3&Fd3^YALy+5kn@h;uA}l#M$8)56a=!?!y&8x1>yi?p zJT0EtWc&E7>6Y}Qz<f<zciR2xwDHMLC*B~Fo!+n;PMYlK2&3YcdjyuEAR}}0;L*B4 zCU<wcOe*p2K5pZ|P4|`J>FLZUzm(L}E)<2hxVRYl#MxO?dk*mpy!o$NTQB#4broox z{Nch7OifctUZ$#!32y}0k|{p_xJ#HO<6kR{3FHfl)QOYJ!3wd|yI#gRnBHHv|6oHE z9ukuYb(L1fp2{^8GbC;{g%X<q3rx(eaTRVGRQ~Aw?V)tFVZi}we!EQfY8phb3R$&# zqA=Gn%y}N`l7TXbzFB^%<&|?+-4qXmC+VGvn;=&<+vaDDU8{0eKB3xI0EX{IDXfqF zDj3w}6SuGf#2y2BS`P*e70#1E*ZXeW9h+`vYedyy0jcYFUMjQb(1tETR&aX5<}~c} zl7!0msF<$PXCH!R?TZ1QQkkA=<`mK&b1;@HDsx?UuVDB%jb)>?8(;dMI&tM%PkbRY zPek>2Q-O8$>$IFt4Rm?>qWsmYQ5lD04tQR}C94mw2U1o}FIXg@ljB7-pcAy;Z`qzm zvM@u_w1nE}c~qMq@e8tEf_8G}2kiUzL3s90wPQ@{T^0XTcmX~ftZ!H-rd3h>7IZyE zhlv%FJy$%N(T7cj{esTI@5GYdXnk8Oh15Mns#%@2Y_!v7*`l?USkgX)G(p)!<vW|! zqL6~IFg1{=?^kw&Ywh*H&=B^A1bv34AI;ZEX$(1=JAsy9jjM9veRFbHOuNMo0<M8^ zjLB%|luAX63g=rc2cwoQ!@r=UkCJ$fY)coKUG!O6nww_V)?UWMeCpcuMyyPhJM*hD zs~U`F<}Fxa#}`bkt;s1XzZJAdN`nU!?Bnp3C1uH{2n9Nmv2$6sXIv&kKoPZ2iV%m$ zAuKr#gyM1fCqUcpCWzAlZDY%c2GIPjR^^+j8`$-ll|N3<O?YGrV@+YC9U!+%Y>6+6 zCBT#*a%r4lxZGJ<rBXrREo^LTS74-K{$!<e!-+dia;B@+=GlDr<J*GHbKgL%1erQN zBa(@qRQNb-jc+_bF0{!{mE8<;J%2Gc0X+#S-u*FLt3i)ukuDgD3;CuF8{Z`<MNzDt z$hlik?(wE)Tcs_kJ^9D&LLZK7+E`U3$@TW6h-54kG9BokfQ9JIpT{R=QBIJJFZh{* z4!%r#g55J%VD38kt0SI2s%i7)Bf*S}1nrl^%x}^&GHzER1_U4B&#z^miA3c*O&2}J zSbRN4ga$YNsdS1JMW78guAfA5pDlh-t9mQxQ05u42q^pWCL!*c4Y4)X(+B(dXT#uo z{qb2g-s0!`=bj^btAkyO&JfiBb*@gWNAJfw*?<@Ih#=*H_B2&$JsiQrXFF2*0Xn59 zw~G>I4?@XUK#+bNQ00WxJizbY0#6uXBq=Q|Z#o;NpTNDh;c#g<n<aO+vTbE3oKP#O z<c_dswK@c|ZC)mq+xx0Y{u4!=JX)!K<h>p^mb13D##P$cAs0NrrdhUOjz`wnBWtTQ z;jTB|TjZLHVL5+xY4gYpa*e9#wxUm(E_d7?KqzTL<$!r+mZuFlZCbfiSz@@&3G#L7 z%y=!l5PQA58@_;RBgfl%d(FNP%Z;Ci=_6=z2GE_&Y>0cFV_B$J^=qC2>&(?#hxr2a z6J(DqQlj@sxHdo5CqylO`oKq$VyV^cHC1AGiLu!}%5<>lwiSun?ckW_7n)MZ3)z!S zXxxbR_)becR~A@mpEYDJtfy7Q8bwFJ=MO4}x0OxF@H|GgrTcCWqpFS#W9qPlRNXRF zOwCDeyf*(4r@@z^z~j!w%7BinV5Qqh-x_|m?8D`E9hkU(?zxsMug-RbbtS>MHJsrD zFQKN<oNImCJ_x5P(EEaA@E9RDNVrj^keS~HNbiqU$C#yFdn^n}3ylJg7yIgl(cH3X zofgU3`dTMp@dv|cpPF6ak#ZZy$yFJ7dDH3QO+l!f3*0)7bYwt&(&o<6>EEMQm;mus zNr5Q_M>669KZtAbYH5BznfEUWz;*aKWIt|krYn80p#Wcb!hEf!ZJ(N^Dzkp1PQ931 zIyd3H*p?LBFv|lQ-OCpO;RWZlJh)L(pJK6H06<<TG)sMq5%lcrX{Q$nqT}Ms^vwD= zMysxqTbzX+A}zTE9gi;Shf}}e>;jXF2mk>K>~^CSe$k#`ao60uZ=^R(7JTbAcnnFm zxp7eq1~=KoCdP^_kmdS<{@ZT_>wH(q4qXTBG1xj5keC|vMkH745w{Ct&oJ+M$_@#) z7_B0^zP_^`(RHG{g%%(H)%C4<fNf2zsXnz_$Iu_pAl-&`@x*bfP!IwCkxLQ^6yp6l zyFMS16)cR-Q4IvPfU~E>v4hWUteQ&1|AVEm-*8pO7>O+yKgIL)%#|4CJKmX{F4Q!v zuRh>EnEht>^%+;h=e>t9Qc!^~IxAkp80iPc5s8cGJHzB*vm)DlQAH&s#sl$0u;t%^ zmuY9;8;9b=k9Otv7d!U&%1RF`peeo^jkOhS{X@!ze!ggTu@|tF(u42fOABmf92zz> zD%n82RaRHtn@z@Dpdm9do`t1=7wQ2XLT$bB$l$!4&W);igEsftpBd3r^Lx}J?Qw?a z=a0s!sZ${3DpwB;IKOJALtdfVxbM(vb>3;be|mSSFt_iK3!QyMp`iCZE3_88S>B!i z{&sL6A(}pUlTg@w!(_DF76TKj4SE*b5On(aS(fa=W%Bz!*0=kCI}-5P?Y-=KYex|? zj2R!sTF!UEN|p(60N;NXAU?DquQ)h6oA%V79(Z^s2d80;y1shd`ec6t&E0sA5>-tT zujjVHu?#l0zT?1K&sf#t+$Vg-XC}O|><X7^XomrLG&t5fzMK9a*Rx2INFhb6D^B12 z*U_tma<Vrq%>zYxHQW0d^^xx4tR<>I%ZKMpe#vtljGJi+1&*{0GV?q8_SZ%geSBW@ z52Tf^d;%I@4mKO>3U5Two(}5XqPH7{3Ih}}I60Yxq&?R2_9}7o8q<pH<5(Yp69=B> zDGC=T&98$OR;f7=-u&<p%EoeM>6A+frpJf3;Z^7FLHb-`RE{XzcKKK(x$NAO`b6ec z-kJ2Um8sQ89FeEf2&b7hD<VzNsOPhZ*f3>aR@n1$5;<BYY67`wWesMgY$+q6h#Pov z)2*&52E6PP44aX&TV=%gl9`6~=3a4Kxg_g-a%^B%3GrN?CtyAF!@U#|@{Uz6oRc=W znR9!4-)KTzpUdgww%gh;egFW601iFQzTSlHW)*)2&o(zae~BW-e847R$r)!wo_c&~ zB1@uM791MocKuF%;bihjeOkqv$^(y)GMfi2Zh0kjku<&+uTs(|I6S#a(h+Moy|$cK zzEkr_GDa$;#v?k2Z8Rn>F37t(MJ`!jz$i`6-sMxrsBd9K$*h{gKLxHU26mFRval6! z)b3Kk)GS~Ke$}=i!w)^abj=r!n7OrE{mP;z7w{p@890@5a=H#NiL)h&LFU4zeo%zm z^K51Xn6`l<o&#X!xvtq3Krvg>IXHSbIazhiaIp5YH6jhivKFa!eUI7Tm>Y(j7cGD7 zn*!_Q2oKxJOHNXbo4>s0Kf7h-KOc4ZG0~6)T@2EyI!Yb}$|drc-KK9=_}11I0#D*d zg;#Vp^@tgZ@BWG8`SDuGV|IHjn+mBiW{mQsU!-mnc_k?7EF8{x8r04JHmNX#V<KIl zZ)T7?4DC=am|2~DBq4EoZ*{<MCgIw`{9{6@@9(1?D<LGQphLsNZ?oA&Nne3nR>`CK zQ__O{rHFzGe$ZO(F6~nyNjbQCxX)q?eMHR8iRWsCflvn&I<==#{IEI@d|NGWo%t2Z z!efWz64TS0>r9NXOBKHEGHX{6uX*S<Px-=b!f2{ckt-wh#F!saM?d#`y9L^_*_ky7 zNbH3MV7?J`gq2Aai_yaT_#xp`Sp}JFEjcig+YOZ;kgbh^R+<YSZ&s}{oQ(~^kchBZ z_=%^b4!4s3@5Kc$jzZu3;Fm$gen_=?{d<g!M}WIM$|A5``ne~6;sgOzTyG!Z;@yL@ zSnw>a-Vh62tv;!^Onxt*#Joqj(!ucL<OJr$W`Ge^r^=~GqzC3*c&z4Cw5AI4>*?u1 z$bFH+^uthMrnl?sa_M5JG@@Q_`0e%Jr$BD^3Cy&tI+a_TYq719=1T!6a-I{Sv%#U? zdA4A-P84eRjo$*A4NLpaO%`gduYiBeaEpMm`6?ReHFi3;tapqS`2jc}gaq6TLmc<g zt&bLDVep=REwrnHpI}|(+boMZ)|;PBivfO)o|Cg}B_V!i&croWMOkGS+5<CROTlvQ ze<2!e-S#{=&V!^Jiha(VfWU&2fDW9DAV$sf;Ty5Sw*cP#eR74y$#~SWyl2k=G&DKX zxhS%GXeSGe&({9#%xAtlnzkc}xwF!orOqrw#?PW+B6dxQpJO)+A21S%ja_|&qLr&- z78-gmXueTC#yV@RDCREw;$xpjea14pWI4}e4sQsMzI)hcb3xu&h(cpOiIFxpEOQi< zX-l$KJ`4TCmK!gwm~+i2P)k!`x{gDm4}PupPJ0bH&Np5Vgl6M8hkJ5Rty5{>M!&9w zs=~PcWXBtSIfo$ZlWv0DBjFu7I@B#Drc1OO{G;4wI3lQr+Ti5WJRYYDC1sM6kT_p2 zCZ?wCBq<^FHX%X64xyvghmHV(_0|VNh<Y@!wjsC%k-T=e!EXRJb0&)!CLyAdg;+v8 zy|l`zkuw?oIuMD?%*?Pgn@MxP#Y=9u<>6I1iK+&IN?JyNA-*80DM7h>2(wZ!-{v9a zSFeymXqCtMiNkCb`>3Yb=Q*)OMkQsDl^!3BKDNy+#^+fZ0%;86juPFX<C2nO94zkE ziw$&4s2v3Y>woLc9TNM3@WDEmq43ezxOINjnv>n!3l^7vYl?(~Im^Hh!WuQRx*D@A z1b-qVB&3NWzM$VpPEHOJkBiU&9e0t9jI1m@E8V$psT`CDGz=!sh(VA(w^Qb)cpl8U zJmW~;+B_O6*pf-h+dJac;uafIR^d0l40;tqAFLf@t>l(pL+GpvQgF!O`QF&r7SExd ziIjN!7~}RnJ2|AS6y8``vcP;LmPI|tQCad#cBAxQXS@4Mm`&UD)kR0dUS&&c77+YS z3l7{D9gCd{`s-Gfw{Nxx<y8M{^myaUU$^y-O3#&nG~taFK*~sa8iqady@!yx5@*67 zsQAH1we48a!S(a#?#m_$X$9`LjEm!ofnkQ(BI3d+ipleHdn@ci6gO|-PH0jz^{%$v zpqR3bRz#$@37mx;eTaaR*fyr)h&MB{at+h;k0XZ?kojL#<sS(EBEQ42XMZ^<U$cIz zsPu-sg7gP>bOS|Z{9V0whJi=oJL@6;WlB0BTB}azwC<qS>>CeDdL^ecx+FoL8Yg9h z<+riD8F?t$_I??Ga(1~EJqi_@Cwe@MB6IO){O*6)K`{UB(5lrG(!1gb|AIR=j}&;5 zbYbzK^4%5N9`*G+)YP2;3`Gz%-V%5bp3o-~B2}~<N1#(sWmfZGUHxO)>tU9YV?b<y zx6_Oio;uwxhvMKDdi(G8O2ks4O%%Xk;<=W@YqjP6ryp=mJjY1yBJ;v&jq~>AJ_qH> zUqjU-=6e6#qLF5$$ZA0uV`4J+*@R&|l98e9i86C-4PP9SH&G>pwU6@fAJ#bVwiIps zXy&mkzZuFyFEB)*;V2R^CV1JSk{l@MS0pV&!-JzpY16+fK@vaKLe9$*Dc|J89dJQ@ z8|?bF;M|5)%D(#KX=yZp?58JBu;Up?zn8HyF@@0Jy?XbbS^!}1AU+Ocr)Y2Pzs+fi zKa8)aY}BMYOn2q16dvx)&7glJas|uf?xsarR$<oj<|gWFF41!V1zL;mHJKjgta|G_ zY-~)tcPI<R77Ts+F)@*5{#9-I({miA1ab7EJYgY*pg!|%WtcMtyEKhb<X<N+r{rn# zpzkFyd6{VBt)40+-gMD<=VUFrOp04KMXm%GiMf#ngm6@DE7+2q`>sM!Eg0z~DbhM^ z;-RD2F;&v0Uu?dqhevW30K(5u6(^RQoz3m+`7XH@=pmjbPWm(whLI|lI!r%)qy3kQ z$nzbI_Rn2q56Z!hzwXXkn-e7H;VFLV86h{iE{~jZ2`U&}$VjN5Zt`9GCsLkXY`AsL zg8s8ly3Wtt*4|H8a)|=ZVb{aDN<uC9@Zq_1-|ai(5xbkm(6mfo<!T|Ge|j9Hbed>Y z>bZ@}cUl|)Q*q&2rP<SUFoS#mD|24yr0~-zqYNl8>$#PsO;BC?D+D}nz)ZBbi=Y08 zHf{lj%}1;G_Szlgizz87SO-2MJhgST7F#yHq#XL)d2g-)xY#giUkfjze-St}e<`bE zYu6A^k5)7qcsR}9`L7oSUK#zJp%<C+Cu<hk-64qlEaj5-IMUfajZJyjI)pg4G}W=p zHWlBuv|I2YmP2Ah*XrKNjXHI|+bQ$b87^)Iu?ei%q-?rU=z3p=o<t%-cS0;k<eADv z3o@&JZI!hhh4f?1LXS%gw;Fitf4v4J**&)zi7_2rcmTxBPkS5>S4c)`56*pR_Lp*a zau4fq6fLGfBTMFQvf$Y{dvgn8CN+}8Grl)e<c{_uICD){j$yzqG)CEd{P^+Ea9$={ z3IZMHTZ@d>M$s3a4;IWWPb+{|0fF|!s<>fSYBg~Z5|{X2s|<LW{hN%#6w>hJXSeo< z)7Z>HJJKK+S^4Yp=RMU%SeL)mxXKy(q*W&3-FKwDNT4ITP_UXE#iFg|dvNAGG&)-1 zhcp{O98p5mkOnpttdR;koNwi+!g8LXuAx(J3}6~rwr&Z-+2RTI7ySx${KZbQj--A$ zN^Z)4^f>lgKzw6$CJP4USr0y~F_U*YEe|Hj!q`eZ>yP)f<2Vv}xK(quTAl~OiMOW| z%)KL~<hA%#zPCy)X7UdfoFDhm?6i$;O`KYnHkQNI&uPY|GJoDsI<$Ngo5fLExxh%A z^T*osY->GwsT=EZ4ZnoL?<=pYqp{)h8Ok&l>krt@98EjEf_$mzB#}FNTaFh5X9<U0 z{61T~k3nA4TdPD5?APJy5+}UH!}Zo=SR6doFY4+<fycx)=-6L(S^5=`K9Juy*uvPc zo+@UIR~q!{6{pFMCqd!lZC%L~Se4`s!$uRptKmGYdgzG-aF4~W!dqBS*yG$}7CO52 z?!{j>rf<0jR~}h2>d4I(@shZ2k_0JaV1AG5IO=?O!c2z#8EI6B=(AR9yj+INfEs*a z7ysgM<hge&DoKekjNJ1j+t3I*Y;EbEcrIN9vks5_7&&Cg<%=S=SG&itO05j7<~6g- z<TDkMo_xk5sdPkM=&L_VdXDC2?XZP~2g|_RUeQX6IomRum`&@Y7dj`fAgZFNHZ3jF z?gf;frZWpGp>=iHwU;Z<VL{w~jtITxX%J;A*9W9iVj)W!HJP$Te?PT8KaR6-WuLk2 zW!b3P*i##qk$O%o!!!?P!(B8eBPv*G)d%++O<4k=!veWlmP^QWtlxPm!A_<f4hOAD zAC2YM1V$_Dx>ok6hHBTz>@G}#OpOcB!XLGfBfQqi@bH`oI0QUs404{@GJNsq;Z{d1 zzPGnZA@{PII|2(AkNEt1jc7U_PCJ{pLvC{7Ykwbb3TBb(TIv4HvCvAz@^RRSJ#p}> zfYMk?q`bYC11Ia1fEh8j1*x~mr!kIh0sZ45X%>xb2}9)7dp^nEaq*SEN?d}PNWf<f z<BNKhqk{{^aT%pd7p6!WaqKZ$Q@neo3vzVd>6uiE&tsf>5mLZyIJ&!Eys5Y$g2~gd zY=0I?#`JJD=!!>?rV1&$b~^~W$pzhR0KiMf!}@L#E%MEMlHKElH^*PkcT^ee*vy1m zr66UYEEz5@)*YX<yV2|hcyE%-Zi`WbH@75y3Wv=kTQ84Uy+GIaIA8bVY!O=~_HOr_ z<7^ugd1(cZ5{CsP>91TzdZY^nAxHW8ScAIr!aeIV5pcnhi=Lo?|G6-gS}}ofDS{xf z*sz22ddzkB=??W6F-(G|&2W9{a*27#S_?^~ccu7nD%oFq$mPS9^XC7kq){*JweoEp zrg^~3@y-%S>VIB8`6PvXaiU=L+_zHSOE;?H9x8DN^BptxZThpj_%|O$+aCMfW@IFy zp?J`JL(tK=Ye;m9kVSoaKAeKb?q|UEC$XX@vNG_-Ghc_PrnMrX+^orOlVmJ3$Z0k< z;Q80ckd%B(L_~#Y7y-rhC>6egwv?8ZKJchI9sjGO@MHzF2)2^;{gZ7+NAN*A-5%|D zmZwGH5k8Kb;H<1?sTx}o@MVdeDAPGG(Po9LPQJ|1?mOH5SH^~D6FO@N1he1voH?2^ zssL9v*F7I^cm(UE1JLWvcJ9feWzLJ2k<fE$>h2SOoO$O!QxOG&l^b>0<o?>_&)B0x zE$}k8<u^U*lJK>A7;(1T*wj}@T;J>UGQN$t$YsB61eu8;u<mTuAqnO?Voz&IZvXvA z{3MD}t3M0pE<nrcZi&4{d7~IuMZ$|ecf4VA-#`cp|MlHFuTPzmJ<c9I`}%Zxv-__V z=(UKHo4@;oKRw+r-%a7)LornTJru+9E2gsi^Fxt07$J;9x6?y%m3;TFN>SqMLnvt{ z%H4cAS_$Gexc2m`hyJL7Uz<pcBmd6e_#gebf6w5^{`U+Hk^X<r;K=&-433>=|Gi56 zADp}3`OAApHOQNEgx?HKYMgKWaUFIh-^cwOI`aSVZ~XV``~Tw!|1Uh4Z(Gxi%Ohnh zjEZR|H6=R*j%O#H6P}CId^ST{&laa0VSvtgT-<9^RLA!_fCG10AK?Z44b5Fq79}O6 z%d}!C@%ny=iQML5PtR<m<>l|(y?eLsWLU<3XwUo(AK$=&lW}vnVNaT<THo8481U@3 z-V=rRqt(Fzn8i?%8edp=56Y-wQS@o`<R0Vg+Ymx_-^j=)4r!`(VL4UA^DQ>c1rzVl zWe5};M^(YkB=TC5QVY9bKpP0lHM17fZdo_<&mnZqKkEa;<{CNq6UgB1-#s|+$k(fr z0Vp_b)$`44@<g6?MWxfcOnKBc^>7vYWThj0-=x2m7A17MepAkTHS_dF9ow@l=ndA_ zBBcCwV^g4PMwQ9I^jR41j8aA8UAlA&{H=Yvt*uWW$k|DM)#s-Ogh}N?DYSn4G0(dw z&*gB_<BeBapvWh)MgF6ki*{ayhK9gkn^{jBpGJ%dP1=4AYxVB|^~YIt+KxmyubVe( zpI?|a-RRpIjD5hr49?79eWWZ{uctYJO0(RC0{-@}9s?KGTNn#;jSOXBujhZdN5-g- z;*qiHb7LT1w}T%V33YwnJ&AI%t5@IL`e!c#xs{QtQS{;kF8;4tPiL8TcOT@a<rSaa ztMNwJtqkPJet7umi#|fE%4yyRCJhfOaA+3az7Tk;5s}1eowT?No|G)bbWG~ovwWSz z_0bCR1cYH@5MeF)lT^g_!NGWNiYoznHjt<7uD^_x%x~WepY%j7jH8Z9ihT~9oEAFU z>V1!kQ|w_>kxr$<t;StI_`a$aD8O-a_I0NSJ_;jcYfa|o*jwqRci$Leg#+l=OBZqt z1r@kTk&z@QCZ)0zQeTIJwC(!^FbxetLM9$5>%o%&aq9tA0N_0Kht1n!7zyDIlnAAl zaTPM$z5BX9N8Q{%_}B7y4L?L@Qe>u!`=>Fhe*IZyJ$Ts?pOn>Lq||bEZ8#?A3YC$) zJ)y~&c6+y@cfw>+p7UP%-IAS%@bC;c>w}{sWrUxvkFPJqJ%fNl(=A{tm&U5NA*GAQ zX6UNEzW#*QYMz|FnWk_(@RvOf)G(|rt4Rd8*puZj{ry?C@+-J`$PNw!)=wDDlrtzA z*kIt-V7^*iYt}`HM|}5ws*r1IJO?c_V&y~oaHZ~QmEMJeWU!y8_1S8;ILwYXW}}VH zm5`EBu5vOxhl7LO0Aqf9?g|^f{RC!y)H|4x0)tihGNg%Mt>fxM^(l%g<!SL^ef;#v za<rVSDU2)&gj&RRp9awS9W<;|kB^Q0LqK3Q+Z=(pr^-+$eU<@Ifu*G(@M0G-6UG>S zdQ7;p&?TFvRdyHd#^cBvMH=ZKqk~{_0RaIASQNra*A_0xVHdz<kKxc410la;!wXzX z;BGUY(`%!Qw3ks@l@1>c^_CYFq#y?Q@L)D7Br1x(N2Sz43EIR;*HyKkc@-6vwsdiE z2t<DOjuAO?Xc?ng$1l8hJ;3ku|6=dE|GECZzh6cOp(LBAi0qxc3kjLoBiST-%Loxk zw(OZL*_&+Hqq54(-g{i<`MIv|b^Bib!1t%i5ASz)dA**`$MbQ{xu5&FKh8Oc7c=hN z;9mJ`TDD8s_oF&-wA$xy8}z%%lLV8<)2ro+W>)_@QEH-bxZv$GSMkFIKGJ>eJ%8^~ zSZpjQJpHBLc8$C_*qE5mSUFew+n3P=r4-Tk(8K1ZSxTQHCH>B;w|3!aO%p^#kDhy% zB)tqU%YHk!s5888vDI!aI_2)OX+Sfgae3F-V8mf23W;B5R_Dh{DLj@V!SJNT_G<94 zTD{nz`yo{VpA9UZCXM^43uupqs_aeL!>La@$BwHI<*rQVt?m7B1F^{U{eQzj;nYGG zg>J4l=;7?~SRo}C0dg0ZSXi(N`;WHgzJBur@)C@T9_$>39+r8XI=>~Lw)A!_kM>@h z;Dm?Ddg1hM2-#MNm8CYn`LGCSo<uPyB32A@b$INiCynFb?1jj{1-n5*60}ipSnMTd z)357<YjoS~<L^Uztb?$Lo;zKPdz&*Uf4_&$fU&;bUs0Ehpi#_wmPKPeg95vVp__2n zn0zScxGWBr1g##8N57~eca*PLtgZJ*ULF_my$Z2xx{cnS!HLh!&wu*YLtq8xL1bX- z6zHGQyg2WOpf&6KKzDYsS`0S{heK{n!{9O~>ctjvxqgDPas3c4xSkl)yYnLR9>Hcb zVxgEvIaTYD18$_;Zf1JXu4@c2O^OLo%}a|i=9#UnSHKBXyYDl@MYYV#q`=}Q7+}s+ z9|pdC`}$AI6*hy0-i!0oco7fhw@#+co>G#M6W^?2zdPl^&RX27c39%_K6BM5)Rs|J zCPL<fz%xSiCOzbCb+S8H`#JJOJroe=L>-$!oonRARP9%Y73k>b0?^F+fkuHLZ0N=F zRTyMM>$P_si4L%`*1yU_K#=`1|7;`2Q`&laZ*Lx2u4)*FhMuXKs@tIrV|&4`8CY1t zAj)}qdKQf7++x+1KHQi>BLj^%>dl)s$eBUdxWn}xhxihy;An;lo^ykL6L8zPJDja} zM_4!ss-J^}I{cx&BL&aDPE^{_!k<l6+4~cU9{ED-{YiB*EI2q-uh#kO;I|!g)qB}# z;Jk~OeS&B!j@K(^s+`v;;DVcAlIEY*ARX5KZL4D=MS6+A9{BnB#R<8vJ<u$gZzU8f zkIRt`xuGG3HCb*!3?-0wIN=vw=pI<;el<?}h4<z8Av7cw`Q4xUFBS?8BV*N8tCO2Q zzcT98IR2Tec1Qw;Ydcjl2&13!cc(Y)CdZC#A50~{p-7|?%KteCWYFjh(WxaVS;)l} zB6N3}R1g=7kk5rDtZ3}QiOl>TC_tb$wGYRLV4u73#wT)Gzz^`7hBQUue@@SZEGZ>Z z0rZ+Lh3!Y1;(fx@5l%h#ZCpP?!XFFS+ptrRrwmr+`X`Vyj??7rcTI2T2NOmklE9#t zFi_)U1^;`ovBSo}@c}*@eG3+8=$n;h!|8@llUgYa*9#o>h9i1pYibtjCy9FfqE|}f zvq^_G?L1avVc=Wm*4J$!lRtfG13PltAJxnQI|O*KxLVxEC$_aQ(>OC(V-FVKxc+PO zjHI-1y`#N-2Yk?AnW+Lii(YV3eHAvpgCio$wq~0Hf`Y#KTzc0yuXlGw-s$VPf{8iM z=;K4dXZ?6}tPnPIh0M4g3<oqhJK6?Tei+V|!tcyCS~g*~?SX#*yWN5Qty^;uVhOQ$ zxVY)CWzN9+!hUH_`j5YcOI=Fwc?vGZ^<P%(M2%CvTQvqYK?%5IkQ10ESD17V)Hwc= zgo9e<a0m-FQx?3(V(bX~%M^k%EJ6a<@9swJ=F9xvTkQJ15d1^J!gz|gIXMR{X#la2 ziFph6CGzJ$GubdQPCwZ34kvI@%u-ZeHRov-{IuNWcg$wvWwMW7YU*uhbdjr`e+vaV z!jXK<etH2rVChPYuXvs88I9zs+%m|kv>1L1a}DEZS@PBMWuX=0_Tgc_MonTO<wJ)> zp3Bg8?~EZT)E!QHz)0B=*KK1zfB)xYFRmhPl#MO?!v`V=XI7<?_3VBSK*@!iSvKo- z2_WP$+`iqka#5^bp8(w~qoAJGw8ymw&Kkzn$^4X8di?k{56>q!su2YmgHwH<mry_g z$7D9&840<h>Ela?2M9!hxJn0;YI!T4J+XrwcqZm?NPX-3_9fbxqNX?zk#d5pTETq^ zD`R7pK{DRKiT5Hg6ULj=8CW_6Wbd!wQIMEOh_BtqkhN~cW#)6=T-b=4p*=KNn4Kly z4e@qsOb%kSH*;~ebAkVe32_4!YFQr4P|tQ*|3v}?j(~;+QIu(DHJA+P@4shY*Fa-^ z(7#VcPHqINGSTSMII<)1-~rz0!Fnrf5l)+5JW0ZC&+bM1uCz0O#f;-J?Y3Glh=YE= zFp8Jy+hg15x`!}j@+~}Yi*JOe+iYx41s}oW-OP&B5pWKMJM&#}d^XyV8Uem#zenNb z(RyOp**`k(E-GSTV$Mb>iK@i21wboU+9HF-aCpK{8zllyH|)x0A!z$6$qIlKjQi^0 z1Sbq%xt?ytc?Att?|wJ>mSuH8jL3}50GBRX>%9I7-V-Gbx54>({xKOj6Rjl3<OacP zg*}gy@1=YUw}Tc504UUoq>dMq*<wuqP=c!`6@{sq^gR^h<asP+#>Rdyf<d0$n^!OP z9NHcK%SlN`96m}%M+eX*rcQ-58VcMM&D*zc$+%zQqf!AA!3|P?S!R!33_D*AoZjK! zAOiXNGyeHwy{XHy-G0}d`H=29*cNT@-YD@eu~|7eCSV<8BJMoG!oq6W3lQ%9{`zKB z<@oOg_?Q5IN^`LK&)mJK`5O;?2L_a>gk6dL{P`2dZ$|@oA@sA5%NJdLhu5!5+;(4v zQ48GyXwe2%on>`zurV#uUBTU55YWS0i0D#EN=mr%H;XFU+S~s^gJv=gLlkP^>u3k9 z56e_XBCi#emzNi~hy3}?g@r(HxhQ4PLoa~I&wlx$VQg*vk;-#gfE~~2u=qsl`ExX7 z(UgVx`C0fd)ThHJtZNjrfJrQCr^cNVQB4B_MBqOq-&63S?r)kxH~LQ-g(&1mCusT6 z20YovKIv1z$HgTk&H?iL{_&o|yS*=iwJvtnGY$2fuOXOA!7M<9-b8%^xqV!lm3ye! z)m7jIJpf5P&Nmxr=`k04^o^<ZUbL6^^Ov|WU9i(`o~qPlI|vI2Q9{NTnOw*l?V|W^ zWqEm7+`xdAkB@J8rcn$$UG}q=FSy804mS-ldplon!C3@s@Qn}n?C9McXa$#Br*%mi z0{yZ(HWtM-v6r<E)s=ZU_C`N2l?fY~z2cKS&NMy=aZK{sW42ixWhr<tP`~jtQ@EF~ zx2Zv=`0WE+Z>Em3rZ9R|-O<Pev|76tCcS@n!Vcv8$M>x}aao-YRM@gVKkje|ddA6r zn|c?6n?sBPV@LQllfvv$>JxZjE8(Nzl6}itAItRZ1m0Yl;wRh~6x$d`lhUejWP<zy z!^g+x3^YtymA2H7ZoN$w@%Rg7frEq71V}K8bWIY+ac$x{WGmv(7&uwf>m51w%TyQ~ zfbu=wT~e4bfk#M+hKBa6Ckl|F@j`br4k6(qsPn+6vv=T>6{gVj8odz@{yl`4aSL{b zAp|0s8bx$pfIxreyP`V#`o2R9<Aiy#EZXHbC=Td2kf$>XCJToA_}EJO5;g*-#{o=h zw8tndE#2DL@dL94^p(|Z57z{sD07C4n)*HLaKot@C&(+_LTGQeyztmt|E*~%=Hcp^ z3J7rmAOy&>*vTj;=$V;u0iFgzd-VC&4*_xv<S5bp%OCjk>E_y0Eh#a>6Y&Tdkymic zBuT{M7Q_o=7A_}bdT<F+xUZJPq!AhT=5&3P>oz^glp_;v4+j@l687k;^AjiJJ^E9` z9%ac#XYRA;)!YQ%(F(m3w$^@fzdv1r6ldtj@8QFTu*l-#;;8x8Zjm-blBw`H(8!zs z;#v?~u2I*=d*)*W<UkmxRn)?1WpI(Wwv$zFK<AMLm<9gWb$$2DCJ(|EsLo3bo6+yz z#1(ei!EC%Z$=_2KMm<U3xe8A45hPh?C{~>c7H7{gcpo~rdHBw=aF5q&EY;(1qolI( z5j25$?ck7>k>L+697dd?xx2fA$lw3lH-udoasG2M-$e{yjvgk~U8CfamY0_=HTea+ zEU87H7M!|{jw!pBMM+6%0yBk6N=lR|9f!+3?KO(^uYrRD6x0aPspMobfmgTTTK}xA zg+YiQb^G@jU|8gxN5;U%4272bg&GU=iA9GI*p|alQBf*sl2?{j8osnYfBw7~SPtA= zNK|nl?L|U0L~Nw91)OYDOK61kScafjdiq%PA}}x@;PH}410*L3>?geI{xE9<G7_rs zVuMGJ<`Yp+yt_)wklVX^y4g4f2<ffAKeR8H#lWZF$?e1ogek`a+%J2TYc~N_gn=Kr zdEAE^C~2u^Wn=_%!?DRIDXoNKaUXb2mOmW7#iol>ts4%w;13uL%+B#DJ+@-bzx?+1 zz|J0Um%-XY8glZhVq%T-rx{fsIf-Tb_7q?i`wl$<Mn39q1j3v@c;fe*ZC00-f?%Y^ z-tr)Z@8W7%wh8r(8}v@t@x}IY?ab`y3STeZ{TAE1z`@6FgJ(1d_pYU*qrm#6{A$9} z6j5r(gQUSbYk#u@jL((|^vsYOEg4xbFeS*$dn7f3%+=4X;TQ{&>Bt?ea`Q;}0mtr7 zOv}SLgx1#9vx|#}U(c^g-5AWkhK3+_og%7Ublre-JNG;_U^zwkS^Wa+-CX4~bQq+{ zteCHofrWqVn*HI1p2aV41A}Q&*l<Z0DBxoP0ea2Bi-{zgrlzQ&KRUC>yU98?V&LeG zKs7mPI}V5j$@%}8G`H;2QBzaH*%mp|D#+Wk05mx|IgMW2vZ=_s8@O2rgbv&GadxIh zDc`@qg@px@V?6`U?JLld(;h6;Li@=Rd^X*x+akY*e``LgmrQiOntIag%h#V97^{*q z`!GxKCu`msMmN`25KqC5y(1z*4X&!a#HjV1o{!vbP?dzh)smj-YE{+6^67nUF_mSA zGMXqc+B!Ipbw0@VeR0`u@LyVhZlL5;a-LE{-P7tb|Mlo(0^i~la=N1|U0lP(tFvwX zRGw;ms4<3a!UV#L&lxwgs82nZCzWzq>yp@>mF;r8@?mzyg5KGopM+hL`laPzKDOIm zZ-R=;=qnMs#prpbcBZYTFK;o&n-h$B`3R73pASWTj0(b!Z=$+%3=`h_@(4HO0~P*c z3NH5@>T)N(fXh~0DuOOqUOc_!6_nRurs1Pkw+fy(-d05=$9}!7%3-c8ZCmtYE5hf@ z<MLu?n7i$?Wo%3XMFgnrrX)@&0BtmJ6w&nbv?LDQTYPeQR4{ldT)Kd*?d|I*Y2dSD zK#tVe(?blh_v@%O*dc*LlAe%cp!<SWP3^hC)2HFC2W#<rn~>#PMg47hg8}aZc5@dM z47u0UYF#!OVb|NRWf@Vy;Ns+Z0)v9^;-4@C5YcmRD5Hp+R>z`;`uh5=pzI+=KPzm6 zyovcYH7zYWNS^|TBq3{%MG*lISLt#9|BLQ>w3uiYpvy+eu3twK6BC2(3tl+A+q>xb z*KAPP=HgtvdR-C+!F6cjy>XmUICRo*kb;AspR~QbU6L&}^z?93p~D2cH*%eXG%ToK zI8Yb@Bthufnl*?QVF|!`uEG-R?R~1qn}v*|N(G0m4T3!;iqrnDG+lu5b0vVlZ4kC( zV19?j=^Aje=)NW2zN!CY53KwH;T7FCSHHgI@#DutKY#vAhkHc#)v9wX?dAf2_ZN%> zKD)+clMNLNPvD&k^wAE0rkNyAH);WQ1*k^O0wU0jmoHxqJ-ib@q?-Li<)Im{y!6n! zhZSu69<;Q$3ruhJ$HweEPY~-Oe>Pd;q+nVT85!y5eU%P@ZGjLjp`djG__TEJQGX$# zKRc<M@qQp1MwT{emjbEW@=#W&@_pC|bg<ge;Jsx4qJNWT&xJ5!4C!80x4~z?=%Mg= z!EoS$E`SIch0@=@{}_i3c?N)kS~@x&C5X|}OOk=N0Wb7;_+)>TQKLwgDS*frJYqT$ z`-|*WM)J}jtbNah-lMp{y8Xv?f5ousV4?ti_~h!n1T<m{xt2_}L4)UWu&+k@3s&uN zB9DVLm3Sl}94xm`{Wo)O-5-bqJm?4*3EotZlKW*CLah-=2G`XIZ#QGp;sByyI)__j z9uEM!Rybv4W|m+6_b+d1%(N#a1o-=#@zbRyk4nAI-M{tZ3jN2I%X<_7c*X-ibe)9c zp5kytL4yM10#}YtPH>@Lf8@uH^ok0KiX^ZNuTu*;5&;Vpwejd!Ua$dJtQP1lF!Adb z@<NpcPd82gFie-Qg+d6$&XgTDCZCsE|9s}TH~6Tft4j_O8#{lhK}qyjx<Id1!&F;t ze4(jH+{ny~QSZ+D>uNF{^A7{#<D{^I0T^#jxy<CvlhV+@MhU|oJ<+v4RT{oXJM00% zHK4k>IygLBBVPZTrFwKtE?DKsznr0cMpjlu6cGXfK0(N3+uPe~o9l?ks)MwZVbmy) z$hbX>{28^7Sj3rCA2_o>*mF47u0<~%9v+gyza?=NL?mG9!GiAj-mubl*kjYKVnop~ zHSP-H;=Z{m8M2XXfOD9iCJE4;*Ftpp3k4hI-2#I~{pHowP@rK$AfAQ7l0@%8oDD`| z?bI!>ckOa>x>1|5uV1gAws#g3qK^^V%T`R(c;R;E&YkPGZfU%z$+lsJj@1Dr<>hL5 zjak{*xYfEv&fZRke}^(RCrYItjO*g07353-41+XX>B(n7^@JSwNF>QI{@WJ9+>cH} zLt}ij^#_2;6O?kb{^0MdBK<VQ`n!C58lTt=^dUKay!%Owl-V}k4>u*_SBxIrNURs# zr_JlguI=sXlL6G$c6Pk0p3EqpzCqPr+(V-ApSXat@a^{H=ddRX#E@o_kT9zeH8eE9 zYH@OKa)QGd%vHG)U84_7-gjW@z613A{)pBqb9D1g`nUt5Hrv|dTwBb8crY}-7Kgyk z9!V2E4|Ec8_Oqo2TOT|JC$*&zU*Zr!>|y&t?w<)k&byiif5FoxUG2H<ykY-$zLg4W zZ)Q#Y*34-puF#=?J-@75gl(y)1pcq$3vZoQdYUN@DoqyxHTPfl_r$mS5P7QWn)Con z(ATBRyq-x#e&&^2JWWa@W7!MIiRzA!?MLPLI(1eM5#&jP<m8@SXX;}5+j5MjeYwD{ z`dSs6KE3jO<AcaE4K9F!0Iv8^sgSTvR68(!{P+=tf<zSc$so;nbDA2JY5x~)nbGM@ z&Qoh^78qn4SnIM0q{mZB^5~g$qYKSY@GJhw$uuzWW#EhY0|3<;-FMj82`g=<{DOk8 zlf`_(<KoDoh2_&N&Vjm<fXT@Se0OzoGlGK9kR8j@i;E**6VsqoJ$wNnOM^{7C9bUe zp}We)YOFxzm_pD8#O*)+0G^A<HhcL}o>c^GVH-g<s0GfQogGO)ewn3blarH3=J}6| z<fXAOy7*7|TfQUj)&7j}*VNP;0qth^^5Dy*kK*YQo#RF*fE2+-#7q_5gbab`=FLnl zJLFwBB}7k_@0?wnZf5Dvh?zph!NJAV0*t|{tyzgDNdnh_KMe{E#RCEupPQQ-VV#H0 z0N|?rqwfb`4auvtu`&JAWZ@75Y66-q`TBL3StJFL5hMYFC=*jv54D>PATW^|ro%*5 z6hg+GyLT}G8drH9bBz@|SA9_pl|p&ewrlwKTR<lurL$#V^P!-I2YrMg^KKm-RX-Wh zP_1D|h-rinIa2ryE(?$zhxx#5IKU>eUZnsr6#Ce+Ag5I=5@4c9H(4A&0jP5|LuSTn zI|I-4&)i(b4zKqg8{~vGTx7%9jslPEBpJk(BOvvRjE&QuO>azA`$L$x1Gxp%&s3Nk z?v<95+~@Rh>QI~#kdnl)sLA#sqM{0e)*`v{!@!;7t*!?L;{eq-2d4Y19|ejG_*4m~ zZbDfW7>PHKxmfK}&hWuIBs%ckxr4FPpV9$3`40&RxEL510OS<(PAqjaW*DL3a0Eo) zyGiVwT5E99-@)r6&J+6Dq(PPk+V}_CM=*Mb9;6p5;rv`&H|pK@Tfl=NbR&{-z`8<# zu^pliK1!?6TLg)YLlhJ!V1wT^US8;A{dP&6Uws`!K)uz+Ka&cN1J3G5xw;AnI<MW2 z?)cmN$lhY*Q@PLb`3OK@hy)E|WyedLsRcgj1zOkb?d^x^bHH|(Sx=~`s9r&QHQxOS zP{E>Wady@h29BY+-4lz7*x<&EtgZ29)gv&aH~sz=Wn5XMtF)VGhm{zF!$eHyP)-0; ziUE=Qii3kgfqp#&IJ;M%AWF5~{$@ARKrcl#5AhJcprC-mV(4yRr4+H^Z?z<F#X$U$ zKvE;VyV#fY?|by{-;M9TvX^ST&jq0#8351$*2)MnkD-hE=I{|m%NY?{yZvIV6BA_c zR5gE_vY!i;=f%!f_OeZ6h|4*p{f+6$*`V^GG+l(`9Lc!BjA5??!P2+(^(ijY2f>8A zx$p14>L9*TWCp0b5~#b(&(Ehq`D3Eqqw-hG8hC}Mnv(F~;3i<&UM&yMLE>E5b{4YS zH~Mu{s!!fsz?&WWPC{%)Y3)Of5e&g`Ho+&vC|#etwdUm^Rq~DR_k$cgA`8S{SBO7x zr_omD4v0+Vsy9`~(Dk5eJ(zxZv>J%NM7z||+lkX3waZZ!cyfkUb3Lv1GW3`1P&u1Z z*sQl8#<+g>mYfp?*}v7>tdGQ#v6olT<(|6@peav_V=wHzdCK;7>uOhX6y}w;ybmIZ zoZcHYHJFDQ4txr};5{~}oo^gr5t!Dx@Y#K^y1l(Uw0CAN4SwT2Z0gt}KPE5-$bBH; zdo*68m&K;PyNhxAJ*N>gU{!o@bcy1yn-)g+0rf9x5`dIczP?msx~+M`W^8j~g8*VM z)Fse0i*zLb3eIk9gacu6E78t-ybM^DsO$xo(~pflJ0xq<SgzmLot&Jq+;$Br{;jSm zG?O_v?9z8+7^1SbIGL^2CQ1cf&7xx1^xi=ONID*#n@~Am<#JAg+_T$1gb%!3)=wp< zWe%NGo+m<?c^k=$q502!WKt|XnJ<)q(jmjHvY*2O-*0GWn7YGN4uvsh2_c}+pc;pV z;;<aK52b8kC{2Apk4+dtTR1WW^w<hyA&>1>fEDG0PL7TUwF5wbhLla$_v=^g8^pw; z4dut+vrF9fEm7UEf=KxUVlbll0M~Hm-n}bO_4p4FwX6LfKgKS=Hwmc97jnXuwl>VG zSFZ{<E)$_l`3sKcEE3}5B>)$?M<%gfz7gW%y9LZgD}-|JU>M@$pJ0f@cc`xnRM_Y+ zHTl4H>-{W53eAhu-F_;&CW07m8zR78xEfh=^ZSr1qwDGESx?uI^IDGhK4Fl8gaH(7 zZ-5|c`SF7QW@V}gIcwO<chB_q7kAp{Lzz7?f&gyG$ka4zRP-_UA#7UDRA*ZB529lb zAwJeztEi}G2PJ{wix&Zq8fO45ex^AE*qumn7BU9p0P-H!Qi}4V{jg)v=Z6khP!W+v z9{tJ+qC+69erll#?v9W~xC!cPA;96>Bsb{+Y82r^FV^AIm0T3`%k4|lrk?Se!}$#+ z4RK;fOHV^X!+bD3P(C#e>PJU^f@nW{{#^LF{|KT6hx?v+wELUvRjyRet9&jSy23se zRNpK|{Tdq^)$DTB@;>gRNi=|30--&o0(In0gQk^^_l*^C4M=^{X*1EjIFTv-%j)W% zoTP&KpcK&M15g~C1X2)6Da_4`>6agC1aY>$(4gP1tp-L!3?Cmqa}QEX1cs6cI_B<e z0&kZJ^%x|0L8Va{WFYiYap+BLA;bU*v7nbip1!fUc`%&QzD-9bk%iX>mxG|c{F!u% z#1T0qrAGj|5b^=eMCr{5%GZ!uMd>R;-R0HF2$Nc_vc!U@uGU5U$!xPfz*j6sN5=uE zds$47p14@3vTyI~v_Lb|Oh=m)$-vky&B=#ffH07QK=hW7HXLj@4f0x)FFf{i$X;E~ zj_gY}-^)9MW32ReSPbDoUUU<RsF~X)V~|-GLJ)R6*<(7`m<kp3I{EbFw*kF7x4}4f z%R9Vy*Z7Y?zA!yabC`%EY{aKGGA5&ddzIv|t+EX5wJ*!9;+o{S){8HEAN0S#!Ht!` z7RO`6@O(CfLR?t4mfO@(?{kL%p8d<(BUXdk>6+8xkM7w_K58eM{p=U66E&->LP$!p zWZa$8&T(<cJP?!o5^-DrImvwPUQ1**`#an8j)OgCs)O0|ihs8BUh&|8m4x`im@BDN zhgq`%o>vyc;uhxXRvy6-n_a|ZfqS-xYCo#!-*Aq4jDw?N8&rjnAPxag0w;}Y`WlK! zpv+>J!Sj57T)<%w-}~Ztsj|!)=4^UGWtNQ77}NXYA0uLAP`Z7lP~YN)-tD^$#E(6Y zq>d{iS5cWk#EQ+nu!gsRSA=)hI9)Kgz)-aaj}Tm3T!ftc5v18$P^nA<kiY!vTYh(s zxl{R+87dQHXKy)PbWQwt)S=<*lD#fvdhhT;6$pnwcwBjFm1m{e0YtByon@asC16lW zF4#_ENdZdnrt%n{7nFfY%E~06N@lR?0-XInqY_A|5u7kY{{_JPP~4j<|CW~@7n(x0 zf-C`4Nt9O|73H<3$Hz5Ir-49dZD~P=!po=Ztjx@&nHgHHczj~Ur_%cRGzgf5i<R32 zwG6tlxB3(S-e?CwKpnt+A@G@k#~h`gpg<++Nj99L)B)0icVX1(u8BMGa3E{$CDd&R zAa|4jGk67}3DCO9%{iiXqns|Px_>dV0ipt~r10_9BIGOPBe{_pr%*}14v2}lXK7PP z{Gn)OcsK!sTZZUeKj_PQot&JBIwvWK3Wu)5Vd*J8IoCWbUP6rHr0>W6Z@?59Ltg%D z^*5N*`!_a<rpI~*fRB-9L&;|?4nd3e$L9Qez=+zy1WU1lC!W4PGPQB<pK5dr9%Q~q zga`}M_sXKApumN^+j^oz;vT!=_`;d6jkR@V)3IISIm0(9fJ?1#x#~N0-sd&#8fU*Y zXisL0%+0kji=t+RyM6Ki9f4(W{;IT#Ks+Nn#>;(%>vC{y{sjdr!X5`tPB@q#Z~<wa zt5eAaq&?98e>OMSS?>fifg)@We7Z%#`}fyGkLQU40s@c%#rN<&P%XTG?`FZ3$oP>R z@6$naun+;wQX9|%ycYyOFqXh5NJ!DiVcFXO!}AnL4cAwdA6klt)Enz8l7Q-v18PXr zfV;^=J*zZ&2E?RP>*t|v+zuR~nrQf-8Yu|zn9A^#cOHJpTeIAO<<rvEmPb<+Keh)> z^C2A4%;YoI{^d}Yxl^R*ZX_!!tG$0=Vqp;icWDG*5Lm``Sf*@ya(Z`<h9U!k2W&5l zhg0GocivpqFFra<pw(iY(R9u?3n1Vf#TNZ7KxzCh9$(k>W9ZALSR9-q%{imjIR9x; zto1so^hqA)$T>Y&sF9qzIpj{;)~#OA`r`>{Onc2y`!}k!KBv-D|Ephg8cs^&l(3iA zEd!>DWGB2?@phlSY&!HNz^aNq+o&ion$w|oXY@K<ujJt7ZUush!>|cX>U_fm2Pgw2 z`AoN+2V;<SHG`O;1SDktLffE}$f8q$4^FoQ(1O~|kIfsdP}U^_?+Dr*Um(}=d!thN zA>D^izd~Pl53k4v$T`GEKsEfEwhsszIBX{cV92KY)ZC)Wx40BDL&Mu326_*S0~!j* zd~AdyuB|nJKGn+uX&5jNLm7w<go(Vj(E}HWj#~WjIh08?yQ#Gm1K3SzU=tN|i^_q0 z^o8y42g+4Yn(6?~F3a|{e0rZKc(ecnc7Obclz;YC$CXwtDiL_v+}(|fBm|&hL<*Np z!^6ao0}pw-j`La!VVeC&ibR){!~s}^0WmlL%ni^Uwuy-eG>Apv2BQ1!EckfGwnI^@ zv)7Y1)f2K=*sX&g87v&y9S6IXe-h6nlW#+SkN*k%ToMQFnVx|GE5+-89Ayal3$1UK zB%q>0-LHN7^vRQvI6F`|f&A(n5+?z<Wj*y7K0`AdZw2~+*$1L5630u-2kEu6v{C`! z9RZz|rSTAUR+Rqhafo=GJK$#!Z~g~ro}{Fti01*ZR?A?<BNdSIW#;4nC9Y>lQrra% z9ub@gON60}wQ>_T&@qV?R?qA7Alm)%W^AM2jQ1%ksBT<z>)lCETOi?(AGfnPkVp~r zdUdpA^v@l5GCu?FW0~$50B0Cj_)VE|QJET*ud8)eY<D33G9LqqqJ(67Ykyze;`1S2 z^kP+>&^UzT4>2)VC?Fz{vP5?W)vr&ZhcW=eki-;0!Qc_257eQ)fm%3zwv|9bN*V-d zwnC%&@b)!4JXH%$C~@E+g><;qD<~eQ-a<+dqb&v{F+_QSu$<kZ1|aBw0IiyNY633G z?<VdQh!ue_uk&96l9B>PDAzmzeX5WTgl#@#d1>)WY_GBP`*)cWUwq|?Uv3Z@eX3;S zVQpIh-1*8!GfS|=#-7}vO80qoyt6O}`v@dl#ILKVARs`p3j0^Y(9#ldjqt{gY5mZ; zJzfDSEj8<>vG@fqcy+Lbu!A=cAPW*JK-;NhMerEt1q8?-%sc|_-I2ZLa>59<yjFu} z^+^4Gzt|-{Ak)H{XXE9HfeY9fpfiwy0{o+e>4eKL#2(?;IF|3CM``vR|7fv+m~O4} zHOO6CfSI3>Pu_Fq8C8Ho9Ru*2e{%}r4tkHLxDtM-D4J?U2|BIZ78OO{`G;(13=g!N zl+CKG;*zVaEgJ;UFfa=A0o`fdtj0W~tORKY2QRM-?4@b>Wa-S$mbYrmwPa`;r+&Q6 zOC$J2LX3aK_bHof3HR{#mL|s}f}ZdG0#|+rcYi;yDxSvkT(rgsL_MACkJSF;{cMV; z8uvB_k7m9`cDECG%a|JJh8fo@C~y0<m}(Kl5$wJeJo=KnV=_z0zJQ~oCSF9;*?GO{ z;#s&(WOtKgHole<Cow<$eDLEg|Ky^b=M_~N<)-8a%y|kiTnbzX=$!EF?CgLtBmw%; z4{{$KMC*vuA|VH81{()-4;4HSq<RHGr#D%I5@c#Hfx1$D8g_#uxRc1JD1R{drrus8 z+N;HzfeH_hL<>AH4$xqRQSv{<MJ?#mxpFeA<@$<Uo)H5^kbe0xTVs`<ld~C|7}9In zda8y5vcd^ae4|o<v^oMQM`V0_2x2&v_kKbsTLUA3e5?gZgzvz1GoS(}@OnPDJthfW zbI*Bg0u2uj56S-_r*8s=c6NSVt;RoH;`=)iqy;t*N7&#`TYyR`fwC}<#ZYEjQEd57 zGe}z65LPKaKNNBcBrICi#(%A-i20ESbboVC4<4i_6JN~;SH_DkHGDS37DCw@n!tq& z0J({1jUkZ(Ey>4`mhR3@98pnG7?bQDA5RWA!^qB#{e4%h-Ha$~^i+UTuU@?p2k?fh zizg^PwX-mw596Z`A3vr$8F~R7hJZU@(Ls=o#?H>3Bw#Oz8yo?O6X4VQfu@4;uA!9` z^c^e8>w5s~4>bFM1PLwa^Jf*%W3NGJ6#&_^qni_=Gk{fY8XLO>&M`0|B7#S>gl}?c zYWwWi0V>w%l7YBGGo%KdDr;Ooe@Mam|5;uRhB#peDff_8Kh(7(z&w;;;YRXQv8CSP zH-j`sem_wjN*}<;8H2qpgV2&$vnUL7c<69RqcuV`;5v*T!kPapyJtC85F-1Yg2ZB~ z)OJb`SY{e<K5t=e2c)u>!?u>Z)clG|zu--w<cNiQ2Ce578X_3dU$%sdjudEm*Nd}< zP}(UhE8eMHZ-7J_q4A)e04+%~fbYrGET+*Y&`MLk05-`S1l24oEb!1V0nd1De<zLO zwTj_^HT9U?gjO^{LhuM~3kqsy$yhi#@_?8$!+BCqaokkgjorb?Ne0Z;{$$Sr)JFO% zJ8B?iL7W4GFe4kA_g~cWk$Mf;!`GP_jhl*xg!N*ulyHav2Y6S|n>9nSt9BUW<0qNs z3pWUUgyYq$IB1Hn5rhOZgAiu{+Vxa?0*1SHn*bw2eGX&<QQAW!<HkIV4IrPvfon$m zGZK?Pms1Km29$UjSy|c;<`91j!VkFq+{qpwEO5n-(+pu3A(0+R%O>#fAm9HWe>?B) zJsVXcBuGQBDuorIKOBQUL^VO8Y!9Ibm9Y6eVQ5ATEMgGy3geEtOdln={TooMhi`8& zao-yae5WIu=un<nmLC!wO#%^`^F=2S@^qlUg@^|UXoPbsu9RmxoWVzEK{I)z+*Vp= z<sjm!3MC+Ms1r<ZB`%BYIC<T9(esAgk}_TQs@FFPO4M(U#O9I5r2ak%GPMRDIo8CP zX&CQky6G0|D`)w!eJsNi%}*;J*7`Iq;m>^Xxa*dAhUvh_h%&avX<}=eGB(CxPWtBb z%@<vm6?;7XGRK#j=ed4ty<v_eJCY2Gn3*PjOL;u2MaVaDxKlBj81GW*x!le8c_Pgs z5Fg&G*qx?8o$*mq7wg~rV)s#|)E-TDUteHINa-T^B{m#Lp?mm{90&oK8m{Y-ut_Lj zH>h6CWq@BWGGfENW#gNHwhK6PYV8#)kJFTIL*g<vHufEhVd3>dI2mII>;_kMTK0Yp zzy>IM+`4tkl2)4d#*Gh&iJ?&B%`Z3Zx~zvHr*=f3y0V(ur%!gxY*%O0;NimFdJA+T zVs=m|m3jG+;bnjFdw>+zfHfF8k}2iuU}+3YFDxwVj+0)2qb;{Vdj)pCX{}jzudAm= z3JU$by}gD&I6EgF9k~LT*wo%GYw9z<xCqq-0x0h?FG&908%NwU(5j#+Bl*p%0y!CS z-4+(ljSppjv>vKX-4L*nAD>r@Wq%5~mjI$6vaHKYNRbfEytlVt!X#HQ-aYDU6y|Qr zz-IzuuD?nV<r5Cf?w3Vpm4yG&0)+k6QHBFM03ek?u}*K&)nLW**$TuWH9@%#h%cp| zduf7PfetQB5(oY^=A?!-01gwS|MD=C00A(>&e1Pd{A+AjHfoX*5|}^7e%JdNNE93v z77!o*JkLO~@gJ1>6yOTN!otco4t7$Y{v`}Y@eILkn5T4v1O@*B7<i#szxTAu?vI6y zP2oNlIXU@bIXMZ49@D?R@q*L=_$3hd_!J7yjPZT%=ztr1vYN^o&04I=KDbD}?^O5n zC+mF(`lxqal^KP=$wzaBgapgqVN$rQz+h-mpkti6Z}YhK=7)u=6A2BL#K(74-t_Y^ z8VxRGlZ|9jIXd}TKji3UB&ob(TE*KXZz@!%=w!4-!<*OJ*~y~*nPK(PV*}FBn6Vzv z+ToxeBySd$-Q>w~F#rM`&ftUtVKoO@Qcw*wwFVJ#8n@vf=o0EnYtP<-iga0I806bX z1vQK00H|<C2d>q59`C$2P(~v5^})p2E$O!x(@X+fRrCph%o!CH57FxnGsUreXSOac z{CoMg?XVOtLE?D*dh`{<^CDOp>eRXAmJs^dAxM&OARPeQ3E$I-(Ext@4juxDJ)k&B z5^^B`v|!xypHacf)Ps{<DApwW0S_gvm0v4Tk=Oy>dm!l|T&+#C_~Cok+CqLW*;ql< zofP`5;{eUz4{j3LyhGV(g8C+Mu^ueYVG-&!vS1Gdg@uEFk1P3p&>=T+y<Ws6eZe(3 z30q2}DJ`AGQfKviJaJE>#6zEcC|E)jF7dy<P7Ds<o@O%A^#A)g$>88=Q7py(=O?*O zOn|BW?_b?K|NkYy!T*EnGJILg?;AX=r(_@tj}uO@{NJz5TuTD=i&aHeD>9yY>Bi^m zdTamvNxf^`aQpuc^MCM3{m+`pGBr?F-YIwDc&un*inQ?pCAW(U_?aGFk?UeA{;WUH z#l2)dduU>3HT-Tq9%3u`?o?z<vi{l`<J08!&5m=PMUQ{o263D-)DBaze`KUH+mAuF zO&8UpP@jA$36nzp5)&&VF|vwKUyoGj{L#f^FWPUTU*)~(oHu4L#Kl!j_3&YJRyU!t zt=$uADkzbUWcQHZwzakAQDqE4A|4#7q@3vEE{o-TFzFY<z0`a<`)9nnkwdZL{ykoj zE~a16wJx8bEaGTwUE0AQ#E7lJS^A;t#l6L-*w~=nf`aks@PM|vFbVV1$uH&raa~Wz zkkxRd$Ktj{C%b}B`-iSlkNZ3CkGhX8>@qZ_1TXtU^X(_Ml$CwGPMU(E3mEG$|3aLT zm2-z#Fk8*7VT11~9T72Q&c2t#aQ%_ZRQ~eRp<su0V$FvdQ=ZQm#j4JD%!*#mRmtzK zrLb*E?_E^ysl82%EIw>VE00O)YWgL{bs6n6_~7JnAB#xk=PTYLtS=8Awv4r(G)~`4 zcbWb($5`TVDbbs-g8>QSwrMe%rN7($O4V%BkHY1V47-qj3A$B|<W_tae#>!MpB|WD zsuB~k81Rtpua1l{>wU&HGJ^WG)aJ&N{C1Cm28U9$F4{~~4##>BXRe{;7v~EPLK=GR z2Y6Gp&TM@BIsFEPe|z1ucsv9_@@WJoO+tQet$kPU++FAJ<ab5M5>giIyQ5~0Lt~GO z7KKM%7lo(X>L1>+nt9@BOz#~hN@}E(j6zWWKg!!PWu)<Ew4ugc2(t&~{(W6yH!{(? zno?=wzn$@xG;t~Gfu_pOF)T$2-Vt}9cRCCpgsTq<3y2Q9QemSDb+H0RoBijJ!W;Va zI4GP3H_Ci|YuSk?#*$pE>%j1m2^o_$tPiUu9GdmB!T>KaYny`W#FRnF22RcM_8ICs zcr~6R+>7k(^Y$|tOPYFWLwvSV;d-Y8Et8Y@K!WUME6M&=5{(&}5*fP<2SCo<orBWS z(28_x!~e`N<jrrV=}5WS=oj11m<!4pMWh&>c)GkWGn2wW1NOm{C7Ccb;RnU;Me$9S zaM%nc`)~WUt_cLbBk7Aw`sim@<J24$GM5Un<=99St$HJFHvJm>2MTz18SZ76)beR@ zSW)2bg^CujXgAylia4d4-*L0})f8!BKj$3W?J2}pDD#!UcBs)S{MdMS?DL171r9#8 zh@YyA=}tY1affqC0-kFDzh)fQ&*aEr*(0LNei;2+amqEf4R6c5JCd(T`CxLXb)*dw z^=eU)Xi`K&3X&-RU}O`O{Oz9n(%nmoGcFuXKO{TnxnTNg>iGB+ht&>d;Xw-De>S|{ z%a^wn*`9|d`UK4;6|V#-{2K8<EnvIqIIsEjC$D#QcD99G**H4g5YbXA2%i6>)|<pb zVBl!3d3UqFapV2)BSO0Q>GK<_Z9qEW#S}J$MCGV7k6=PWh}K^zF{#dl3D3MGan5S2 z*vD)xNEiv$-b7{if689xL+kb(FY>}J@#+^{URj|R62dOpUu`kj7FOfoXXk3n_TWsN zs%M_rY`BP9ZNNuC!4gM@lG4%gl3ey0b--&`S(NXA!M-H)ru}h3^ENswuzLqC!KU^= z8vKs!r5nMCySwGMRB>^pdtgO}d)GT&khFF5%FXeP1>&-Ep9hsv^sCr(+sc_X^6Z=1 zbc;(QB)|E_w0WgZzx?K-b959cn}Ok#V@ZdvzDTB7C(KCloUSK?&hK+u$<#72K2#U@ zQzrxgiB?`~KWpUH1%sFSdapk2_%Um(n`n4d=&Pp9wO!1uKfj~};#U7o47`hTroYC= zP$R&VIe+-bPRh`ntw7OnyR{=>DXTIFkkv^?;ADM-kqM(Q%-UEUp3A><cL<(#i@mG~ zFK#?Tr>!){LLKGGa0d&IvTKsE8ZdbUY}FqAxG~J@ws)86D}$2wE+Hibs$y;8J-BK6 zzq9&<Lzk+SG_Mq*E;P5U@w_gK_>n^DMXnyFo7U7DsGwY{@%~xy(%x~XR+;g&m70;E zs^m(ekPZs9JnK-s#{2#*!!X`sXLPm1vDq5c)LPO(#_x0sre^rEeHOjctjJ4E;kS{v zqB=^-BFDr8#pO0yw2o1>sDzlerFY(@!`Q-s!NKP9ptR-7DKZ|LH7qb99I(@lb9Ch5 zwA6SWJ$sGoPCyl&tvESQW9l%!uwXP?EHq2%ibZhXEVFYc;)dJ6s5IBsERy@eG_Y}V zvUOQ*xWuR9mcYXa3{=q>N!T|Ug@IfNFO=_P9yhW!XLY@L-H$YtYQuGTs59KeE&|v- z3mP6ZU7&nzYU@i4<FOCyE@kr1E^Y38p3BR#;K)}-GYda$D)3|aOMGL%tn+@=Sbpe_ zlu9We8?||C{1)(*kaIuK|MSSXO^XV;pklcDWPBX2PE~N-S#yhYx_d9D$!ga<dY_V< zT>jE$tJD5$<r}t@NX*USS(E8<xj0_AeVH^n@!JHnhyM1*JC7BVI>N3fl)&FqjTPfn zOTG!=UNr6rpNbQ<<<XaxHXci-Ep?h=<|!~B+ztsL6Lr2pwZ1;EAKD)Y@we;ilF9ss zH_PK+g+6{%<(RGARH@ZabllttY(LNG+hn8%P%d!B#PB02NSk-WM<DZGa>C~FRUglN zQ$|!1yO1*)3Ne<3WSWZx2SR_@h)1g$tZIJZ4Hs{Ya^1MKwADtm7^gQKFe@(_{2dxZ z5ie7Z?a5)kD11aSiRUFE0;5Sy4$^7UI(wqfL$6rWD*AF65>t{!i0JUObPb|`95hbA zfo9Cz_PbxaYUq4nU%l3F{g)D~{T0LhF~!dA?iT-nM_T2c_nxT^bJ(4{u%LN_?Ll=Y z7D9({@`Z)c@%T$Q_1;0WTJgYvR?iErqbteH2k)(T#sWuJGy48h++se>%44@;#t5vp zaMLuKX!1V#a~cWh=Jy4wX05FZ?6CJe874vtK^ZZ(NUl>8ht?j_rt4FaMw=4S?#k?2 zs*f%zNZWOc@AnwN(I;Sjn}Zh@vi|whf1qO!A)FI^_Vo8~Kb5RI#k9<z$NQ;WIH|-e z$agEB&lMfzEw+(U@FH3Gn)q`x{pxAr492IesVZ}&hI!aDL1Ixc>i2I7IF67KXZJVH z4$g799eDP}ZH9w2sxLn1J)Jc|zC&UJ{Hed}`;IzVA4zN7I-dTIBrvV0!}i6C7cEmJ zyjT%5gz-<_hQ_j)w0pX&9X_P*^EhasMNpP#hbJ0J)2|r$g)q*wR`8!3o|AXO5(V+R z-<YXYK)51K^qva&W5Q_EJ5N4Q@w;|{?KF5tug;O&g;uz2U#GIve$`o+z~|l0LU;2- zRoz}}a^#z@q?aH3u7Y63l-~fBt1Uf6!zky_uCvp1w7z5O&3RUk1ZsIG4<lLBht6sI z3llX;l2)X>dq4Trq1Jl`iP+SfeC_YSN>2g~n_IPNELjmxAJLj(IZ2wZgXvpPU~T<- z{hCX}=$5E!)nk`ptdo-}3Qr6G3LWqsRSuVLJ~?kn-2Z{4C+YZv1qt17@3B=Pjn;>f ztV=7FjWlc)BB)oFMr0KQdLe{U6nT9*IB$?ZxUH05g4~bKc3GQE*N?7dh(4vS>lrl) zeg}vZo!!eaefjdw<aaR+x3&9FS&>juA|!64z1pa1_96Q7HPl3j6D8K+rk-&Vbb9SU zZid8)|F6Wvo#hovTeQ?ZE=_;C+5SeqP)}(Xw2ZERhZpVebK+>!Umnmz`y<u_IRn3O z`@BHr3O?79vn#0ET+9@_R%$^qG7GV*w@CU_hL14-e4<dVUpoL)c<1%o=S^0ir4=?x zz~O@aWbX(!x}X4sg1DEiv-DKJogM|8i@*x0Z`=F}s$HRw_d1n#9tcqa7|(rSkyln9 zXy7N?(Qdr!%+8`)fsQ<Ah)RXwDlgQ^<sWptd_M&}3-h<h&NSr(JJ#2~7!FOSJcACj zi1McV>PFC8bkrBk{CCq+wao*{<nuiI+)`1pML6s?sh&K3(o#0M%HdXExoRX%&QoY? zmGPQo@8U8r8iIv(KdV-SvKOA4l$2ETLU$}X_NG*$$#P{kX`TJ{)q(M0DSvk-6bj<) zE2{~V3TL;&gXR7Q<||`3*H*_>FGLj-&N$pL38++@8861)>u_*zh&Lurq22HAGr~BX z+qxWoz_Tu9<1JS2)3&?R`Md=6bFM?G!i-QkRYy$5@b-?Mf27MH+iM0zKkGS&`qn+S zf{$D~m6F5{;y9I)1haY{aNVd@h`H@C|9GBF2MapFSjtpacj{H&_|QZ5yZq|Uj7L(! zUMF@JYU%t3xA(5Mhm*YncXLy2crh9GesLNYl!8-AaIQIz?K1Nfeu|NN4DfVqjJeL& z-RGrI4HuW<AF~BZH@j4iY`0K(Bzl+nA|D<^(H*t3qPkDz`Y1+A?H9PdwW7>x6;Yr} z^ZiHMA;+qI?b@|%w_3icOO7WAW~)C$o}Ft9*J~wuL<_=70Um#s{hrdOW%;@QsiWMz zdezhZS4Xac(^Q_}$A5dm*Z=Q1(TM$Hh+~ECc`e7k<dw2z+L9|S<?@+UW|k3tDrzXm z!v_k|7z`nEsf3?(b7ff^8{WR8tXw=coO&SRcdUTNwt9SI&%#leNf14pDvF(R6~8U$ z^MgxjPw8Ypg7#psW~;tf&~Xq1jsv4;HDj!>J?+J?-=q~!i*)Vyes2Crwh;C1ALEey z!C-!Qq2||;BJsnT{*ODzG0#)m`Y#!njh{@s4YBA|M+qg=KClo@c-^4{^|(>F5=C8+ znUsck>DP$Yoa@qp4MLyZRipijqm6rW{D%C)5}Mp|bTMpGV|byrK*C#i?+>58Z+yo? zvfv99O7EX<b$n*fQqP{TFYl-ah^b-;``b;ohl`wUadF{xF)<<D7UNO43=F?O86sw( zwekiMzLCOpzpte1&4=?$;&6yS#@%S#?)(~(3C-4W9<6U(Kl55*BcK&}v&q>1VezW4 z2hDG1kGaz>?vj}$9LbHTpf_*Oz@Z1i6R&!n8rnF}5%I@k=caAo<Q0^#$HfgmB}OA{ z|F*PhuOHIB{i{20?@3}MjznxRx-yoy?2|Y@#BkZ@Xs)XaBKbf&jCOH$;W+OPd9URA zra`o~m$_-IU3Oh_S^tzERWEVud&OPWq$1_}9OfeelU3*Zx~roy<`X7+<bq`roGi3r zUT?vMEyoMl&M#V(_bB-&=-CPPEo+;Wa@jpGp60RaCiY*i3l5g97i9a;Wx6cnc+=Q; zZp5_MDH+89L8x=#^+^7@U(?qm&TR3A*q<cos67rdVjP^1d?L-nyUAeO4jlz;CXHU0 z!!e{VLn{*u?ytDtZTn|jHkvO-p7+M_(BSg2SIcV?qQYo-L7OKa6`A9W4<UEVB!66g zq_FTTy=rC)&Mz$6m;T;e8nvoAS|U+%cr9&8Y4zmuS0Xd^Gc*(+Ch{jw!i+St%6J;1 zGBEJ*_qLbi1fT@Yrgw}-{oCv9Q2^$o2hqFUC!?Hi4^F9?0jAC_8xjIU=+!BsV!xw6 zv#FkF`fPZp^wm$?vvTv~n*-gkai8!NLf^p&UKx2y%aB#{PtD_10hm0NsrYJMLtm}{ z(ji^CJR<geUGNLrC}Q9sDgt$1j4e*c=0<NHbFP<4d_s(V=6-%gJvBr%S$S=W7hDfP z44~ZAja$LTH!wUZ^XxSj3kx%Js`=U}is?&wJ#u;42Pe7S^=fPa?}y~%@Pak#_Z>JW z!HQFS%E}FKOKm|e?yn^lzn|_cYrG~MxV#6|Ye*|a12gLDf0a*Ex$2(n;%f7qDx031 z(fYKwV4SuNN_@+D1yuqVV{c?@`!;j_6MYB&{Dv1qtql8CEZ2j-_gZMgnCz+YLw)om zUTWO>Re6kwQts=z9!_vDQDQ0ts|fJ%?|_Pd=YH1CJ$G$)!6$f5#2bbNSJI5Sxu_17 zIah9;Or#enutt;q{<YTl7jd}Kt^!;Md{@fKQpc+}UnKJ1@mN-7(xV{@PKtgIIa<l? zSWuWYH;;+xoGQEWa5(4Acq>NDj~@f26&j19C3HLK8ENBRNOow%WZx$K&Tq1?WrH?X z5(fim%DUC)dZeUHy=#p}Kc$P;!J!T2dFgyRw6odB^W|z9{PJ8?OZ$H9(CWkn_nGq% zPO`8U79FN=rCVCKf}$GhfZhgV4nY4jG17ihtJMo!Z8M5U&MjXX9vqbTtj%k``G)KM z+?j+r5?PRgnq!RLerA6ZzUq_xIs&oqXu{QZwwL*ET=S4wF`yGT@RM5YN=xt#FD4rt zG!t&6#0Ae%R&G7FI^aE0V#?D`TQ3zo@mZU4alAP?)3JS+&HoWa_t<Wz_V!NdV|MvR z&3^ZB>HXxR=pRQh-1ZB8Osp(8B!u%glD=MUQ>6Z|te;jPhUMoAQt5LG(P9UIptau5 z)wSF%i$6T=<i-t~U{a1Yh1F0>#=)nlf^N~X<CE7XTtsA4y+hGf0x4bG6B#is9?-k( zW5Nd6J;t1Yitjzv6J>qroLfIcJec&$aol!~e%9MucXPx_Rd>@Qn33nh=1_fK@<$iF zpVWyVA}0^+u%D5b1wCIxLx$_M4v(lUfplBWkiFd9U4lfvbpAWf$Q!w1f?ZV&U$_3m zT%-y!Is1YAX5?PS+;c}30x_lEX*GnJvRtoBc&=Z~Yr9KMUdNPB)I(b*_S~NNO}GO6 zwllACV*p;_55}?`HDMVC!C6D!aZ+iH!&g+*BG>L_H65PLJ(gD)*fXL?)|9?@mhsk8 z7KR!KIbX^)CX2AR-}+{=&BZ?UMXn)d2j<o)xP+$&_Wd#Guoz0E(Q#QrpABt3XHqG+ ze~6AgQDZ`?xH5jvK;I|vluegI%%LIiiL3NoR{hn^YCO`1o@<z+`3Z|-q0lY<{@nmO z#;~*x(P<PmKvWy{{Y|;AQh<}PN85X#=P|MWTh#J$#sL`<Pn>g^`Z{ojCCMhi?(fuw z$j`%5y4@xEvASPh9>N7=!tclzbufo}j#D&?7jno|3$rULJlC@e1q21T{#_8I+axqf z*Sge{ylh>>uRs5&`YevmgKhKWP{R1H9dd`IUHSaQz15!>z7?#AgFE|`tV8>*mm;As zj8(K9hJSKX-x^Q0L9g4Er-ZpbSmIw9-kT5Xka&xEj!ZHOJiHfZLEPB($D3UprpRai zNNQE$ZpiZfOj_l+PJ!j$ykhs6fsZY``A!Gd%jMg`lT)nj7|+kx;@3K2C@XEhTAs^R zz)-r4d*slMI;?sZCP!C|^6VRUHX9f9`KB5ktci)A3$hc@Tn~weCjBcqJsl7j=&+=Z zx_ULFK&v)+%7gGj2Rpx6zd@!!|3<m(!3`!RCQp7Vf;(9IIV$yni|4$Sqin;QhIR>X zD?8f1H9oODr<bxbflj`Gp|LQ}WB-)>YFORr7-ik%51mD)r^%wNbutQ9aq#IyMU$(C z8#wt1IuF(K8xjS=3EjQqH<BL0bSh+(`$QhuAmjOdyKJN>?#9}`dUcyc*pI|&JZgA6 z*3<3W?VGxTtYVyWhCBPSGHLs!z1J_gcGRtZR`>(<Jv)2NojU$##4GI<O4aN~n*DiA z7}>~-u|XrXK->Z+`tr<IZ2tx_sSJ&EID-23y{3-Y{YRG?wFetZ`r@fF#}OeRrps~L z($cc8&lg!wJV)MRIawygvg=f1!O(!yib5{@1yb4+-`Ye<_Qn$i(78d6+`)1QFD$QL z#Oz8+Mf$Z*^?k%@_BWJXytqj~fVFW2bEmIrko>JE#?hY~nYwd#AqT^m=H@r#QH)y> z#oh(_jUl;l<_zH!wltFU#?@sk`VH?obIt1<TtT+hG8w4QTYtA8T8?&;3Z`2VlhQ`i zCMNdHu;g#DUy5G6BRhMxQCkJ_8`RT6?dzY##Mm&fW|hZALK&e|O5Kl?jt~6BGQUQ4 zm$oOqVsFgY{S|U<`}b}9Rib6hrjW~u^qJ7+2aeZwZB?`5Zro!qzOUR=Cl+~mLuWsk z$BNH7-6IzJJu$_2v6S*Fj>4HWY5hxKm|Oh`T6=5t+EiJdGbHd@m^*o|2d%cj*af&i zo$6^1VhWmMx_aINn5O(jqM60uYdE}K_~=KdPfK5)`<>39&F?;o`ldV-4_*Gy&-5iI z>}J1biFpW(e*b2*7wFbDpW)Xzx89-{%lG$SaEoe;5$O=*VM+4BCX8P#saSzY$~=S~ zM^xV`*Iq94kHpflVFcpNn_X7CCts9&%V;nirTT25-bKuc-{w!gN^4&V<$Kxg7&e(V zo=V$2KlFI)jG2`ljM>gc$Mne!behupRF5r8#Z|EX5SHF-Se3)<AhS?yKJnV>Tz|or zr1-*<n_W<iw{X}*{U)(<`#@d|rBkTTZfmoEcVndV+%vYds-(v~uZs#EMm5DZ-RwRV zDm&Ds2M^r*y?s_6+m501pDw+Z{$A>4C=Kd~7*R*34d+_J$F|V#pPxGkCf}&0CLbCY zxh>4{qce`0vz&QT))+U5;PGPgyP`1Lgl%m`!u!y&_A>563CEcAWN+4kaZrTw6PA+E z7+KQIZP?cQ#Jm!uoUWzfw|OYO@1D!3jOIE@`CnRqmn(J3cxGm1J4XwP@!cdpzqyEM z7U^?iE23c?T*L{+ms3?_Jqz6VbpK_7>R;pq4OS5kH+_;s>`ubd(maQJI1E=tv0fc_ z^IlP0C}n+Kn(%I+`&o8ov>Pw?bML)2Io%|^xcxcwT{GD`8XjEXRQ%TsXlY>tX8q{8 zj*j=q+Cx#h>EFinmg>yU%fl5F6&IF6RCOEOqF@RJz{}uw;aE?OAFmoEKQKc^Z5oa9 zp)t>-=-ha+ORDj|*n6w6s{1c`5J5quOga=1luiLj0RbfirMtVk73o$wRRl!3yQI6j zyE$~n?DPBgf97JIxtM1zh8um}_aKMw`NUd#ue}z;ma(pM$9ttga6Kyq%Z(&Z;UM(8 z^UtPOIy%bU&FsmhoPjqm!+>pQMe>1E!WkOuzo=X%rs$PKm*dViO${wlVG$8G1^Otw zyMjd+)NB4h<Kp&RoVorbTF2?+4Vr-wW07azu^6K$7uc*?Q<J51@eG;K_FHEp^v|US zJNPnE!@^rhcG-E*$RC>A#Pb7p<t6*`CjGcW75Ar<Y(WmwMPy+fIcKaSW0!$kGKVc= z`?g!BFHiT*;(hx&Hj;g*u-6|zl9dGp4vXypCs>+$dXVvh57?>sFp2TChNSU`GxSgx z7dmp&cZUAVDTPRdrP;J_to0qUDpw7MyGk!T=cJ72myT}TTWa)8<le2Xv{(S47<f*0 zHFq5lvPBF9y8pJUM+F=DxEs~{-C^Cs%&4RJE{y3tN$H3da_iG|_NW|Hp|So{I#mB_ z5qt(U{nbBK5+tnuwB29f;~T*4Mv6HM7*!!MnegQN^h1jBr<|FpCft4e{8isI`O>wy zx$e(f#9b>=nlen){KV}iZ8N(~vsciSv!3gJyeyH}2<c=u@&JMRgb?-woboH0ZY-{` zLT4&=?R&F|YmMfbHDoERO{LI6%B=3@h};XsC;Si;nl^0H(_iMU7FUW87?XWoZnwhF zGm@os<vy%#pUz&LxAL|u8+p#P)n59@ZH-f=;c8b@es?}A;xdGIr4K%yFFp6;E#lD9 zP}<Iq=3Y4!G`*JUiVJ75&(f<1Ax)m;xOY0E)x&!@*(5%RdHYxQrHCX7<Y621_0T$9 zCziI(Ew#a&bgFel!M8SiiwWDe+-l>MzGSSS-9GM!KWk+YF|&3{>U0i|9u*{DY`bCf zpKjsc9e#qUQRaq9B|d+5^?GMH=AiLl!pT?1i^~hgY%|)-o_l60RT93(m8^L^)Mb_B z`PNhDBG`m6OAg;^LwH-9FPF0i|L)S2+wjKpQ)E`i=o|Gba*J-gtSsR%cjGEN`%~=s zlBayHMsv*CUA;Q0v61q9)Qj%2IiakYP~(XLLfR4YA5PyzZr((<+B+bZxU&8|6do<S z*hZ5)68_CSB#T?;Zd}ggvm5xLj^#mtLx-W0EY<j9F7*DaH`4lo%ze@!ot^T@>qzCd zYL<3v^w+f%-6R#UjR{B7BvrAE-5vgpl@->{cp`Jyvn}|mQ%WT#JTf}HL`1tfDgZ}f z`NE8PT8<R@uLnVt>0iF1eQiqBMwv{+F5`ML(9e*?8Ce$@_GmhDPAbqkhtq^^9P2-x zy}~k(Emk!YyW@9zy+$U`_!I5@2Y4cm!e5;d$q==o$vr-Med)>J+zL|WQ|01Y%Iq2T z*WT&$Qfof$67gUjpcqDVEk~#!!rM6>7U)?nN}!1oMF2-0X5~ypZ+&0*;-dje+NJ=! zpNf4Hi`|JGITwLEbj-}*x5O2goc|nZC9$f2=Z$w^;rF+(hQnnyq-PNH(fY6y%iQ<z z2B@X;ZljDVlRbRsmF~MF9!mnbR+KTz8h3AF%~z9Ezc{qD`uizEqNd8JOYeauGSbj- z@de6Iru<Lawg<0DW0&Xf*0;B}@s=*;<af8X&EY2ep72e3*F`rfdN%By`>7p=(AhEM z;wE|;wGRDRB>*dXGqRff569otA&E#zDyk)2_SAZ?g52{0RwF3GP*zWzxi73&e)atL z34Un<WpC7AeYJ)+1P*>2IHXR`&21`XlLR~sX-+3+jyg;PbYG&uk{`|~ayY^o86C{A z(1m=G?r`;21E-UIi;3UOA}MA_kU}jn-_V`dnQ}YfVgc)^mKIp#e~;_o^9n63Z3?Si z>WE6SD@?nvpPdzYGvJI;WHAw-j^@i`P_K==GK>mWz5y=O@r@<=%Vsei6UuiPWMObs z=c!Jv=Y&;f>wd}UcDHnU^7-r6ao?n)H4hZNLr~KG`PX_)rj;>Bdaf7~hf?L22GLNt zGR+$l6wg=_S~SlIynVb`bq}KH;yD6;d1Kz_{q3$+adZ*Ul^Hb~y)olNUT(ehn*4~Y zZs*M<9TC%KBl8kCS>vu5l*{fdP`Pyk+_E__Jux)qQwfGsA0>_KFwM!+L3Vv@9)cJ~ z=O=f27Fx~|r?nT$a&JI*{ZDIe>t)ZE0^iZ?2w8WDA3S(qW#?we8+SP%sBSXRPSIPl zU+RXW2%j)l=GNB*0ieWkIq)UB^Zg^SB^@lKCa*ew<$#6?LAGE7LdwMPWAE^AuARN3 zd=!#+tZeMMYzYnyHczki5ZYLnXbK8qBQ9NbJDMczytnNMSk|6j@2oV3-NWJ{BU0xR z#Tno$5ToAH(Ar44o97Ieio;B|Pset4C*0Pl63t9G#%IrTSN7p}^?>)?rFNO?Cj8OD zV-)vt8@X3gJMl(YL;f%#zq?~e%|p?zeK*+8Pb`T+y)y@)O)EVNHh6v63jD@Hf23AI zEXF5A^^fOU$`vAC9<mkICVn-jaB9qcd1!kl;PK1OsI6MrGR-%TB@0PQOg*G8Js4d= z4&$)n*M?6?_pM#l1##2geIMg8mLBVBUl@)q{2QvgPubye{wn+A&xQ-$XJr$3>x~LC z?mb)F4obC4_;IhYEEEzy2qy&%FR4M~MwH6^3{$>j0k3Zii<ZUHkd9D)K-SDWH6L)A z@F%9{jsb?;j{*@b0~}R|TO6Xq66pHZU8Oh~n;8ADZA+^nXOLEl+mOh~!%ySb_CBwJ zfmc&OXwvbIhF`biI`5|Z$bDAHK;2&&f&m!_hXyt4T>)};I(hDOv}C5l)bK|obDzyG z=o?_>nhHWV)M-cRC%T6Nhr_Uy3FhwK2mbN}K^3PwhTwM`rAXAsNdT4eK-N2<yN_F? zGt$Ln_Q#Cv5gcX=cY)#nkU*hZ?#QE}4|_<m_k?M`rF>t0r0egY&fNKacf<?juNfM_ zUADa8qWSg%@~&=G^geG244i&`xmD)E=;<)y{A|E1G@d6iFgkbV^7pPhd2504)yL_o z$qJijgX9eDD>^1l0t~N=O-8kHAJ`DFz8L5+T;P&*J*?a_F|Hrya^o}J(phu13eWXq zAzsHoC0tw(XWYgXc50~(hl}J=z>-p>QRZo($%qAv>b?hoCzs*bpYwOQGM_Ifsi^k4 z<8zg;<vp$sIf0Rqy#5!iLp@e(^|-q`Ee?^vYS6{28wer7u7VT}+taMquSU!#Dd9MM z&=fGgyc|$jN$jwFONPmVZ{J==Tc>SqsY%Z15=`(XtMLUs+je+;A;Y?JW|>4mky0S> z5TfcM-#;GnSoL#K0toS@{%O{9p1-U#e(7r-1zBtBD8|Qoypbc5I;TK)iX6-HonpVI zJi}fe)ZZ^5jZO22fx`oLBq=PcHMi2Ekkeu-JRw1Q`!JqggAahpTgb7eAI`T6>Q*cB zgG21}*1bBwBXdhjZIFR|9r<P;bHt*zcqJWcdnC}gIJvak9V!lxm5U|-Obr#0Osn}< z8gftMEk=bm^cj_~iKwWl<6TA{(aZWxI3TnnMr@u^y~2S2YE{*QE~A{OvbLnl+I=Vf z4)tv$STs%zz^fmk!rs`O%HqPC=uD(dFL!84)3A?m!HJ;%^v%0NUeR<v)Mn*nVw>L$ zT$cnuG!rE6BkJ<sKTfE$16%v|)sFXDD(t$FQ`O5nh5R3QI8RVqqnB)FKtbDdbPto2 z%0o{|$C<Cnlq~k9#K_M2Ct91`y~pddCtucxO!Ul~v(_8+#3Sc7y)j`G|Eo$a#AoRL zc}e@K)|c1GS<zILg#2Jzw3sGxZE686{=9Wv{ettD1_Q%a!eyB^%PdeINLTp3Tl@R% zml^Df$yytV$+eELl{Y>wuTj<6tF8V^r6uea7+(34U0~8tyum?MUUTv1u#Z}8S}h^b z3|*q0t<$1<yr<B5O5~O4skeWM=%~aq3Tdg0yXF$3k2{Lo^1n6`8OibOKV1)8VyWIY zQksqwd7h2Iw-IHj)p<l<ulDXY?0OzGtihMtf{5Y|i^ujq45bG6RRUICZEXn31US{M zpnj*{3!j<ztV)JcCEFH^%7=qxviNRS6?a;ki|B{jbA@pQYrXEDoIa-hT9;!t_j~_o z|LQKK*ozj=M7b_=B-99sZw(EMp4-rI=5pU^melW3soTka$mu*E@wNiE<-_}gZN<bK zNCXHas%CiUeY~W6_FwD}TR%6@Big%^!Z%rF7Z1?jLL=CqP(m&(V(rb`@iWm=(?-LJ zW5T-6wv4A+L%)o4czAhF?0VGCa4)|&VMa5}#Ul(4MVh0cDUO(kf;-jnVx&mbJr<V$ zC3ZqB4@g<<X`##K&o_PJh%h8hmbs;pd0P}xd~_t(Ax%uw)HK2A<daH=hOuJuE%E4h zF9n6%8O@gMna*<-0xV=|x{J2ObcvU^LXQ5ao0%DF*W_FA&eKugdLubAztt<E-(!T5 zEsVAepfplbG8tTH18I+0su?g*Jbqhq?VQk5J6>#z<lYj5{Ad1~>C1&fmJT*L>ktJz ziHHSEWI|TJgXU#aworC*vu;q?xgpAIxyd{yr)n^dPs4-53&O9yefu8EV+NaGsJ@|r z6s9t!9aFIzL_#@m9jaWroD)b$U#jgHxmMZictE7B&bI45^F*E=@i8hI>+%wxiqTzs znwU9<&B<NK_6XNFL@k+UK7}`z`+8B+;pIujK-N^5cN+EvTAsl*VwsDgo-J$GhrV`4 zn_f=yuj-hr=~T_YMWXh?{OCmo&R=<Frmuz7zka0<@>tVB+H*I{<un>b7xowMC>EE` zqM~GrSos_O<#%>GyWaG_=YXSc+`}iA7S{dUrSq{$@&3PtXPmYNWlkD!wS&X&^!7B( zwK#IypOYW|oS~k|P^ykQCHnU2TSNZ$bo%8rENsk`mbc<gyY9VK{iES{E8S)HlNV-Z z>y9--Q{H)10N?HS)zUcSDUjB4+QuXLsmWSzw*!VkS@qG<xEu{SPyH(x2MY{Q*x|EL zH&!IS=5fb6g>*?a3>?y@OfLwSNH;!hypk=~_Qt~g1J0W<rIvSqqxTSRjibn98|#sf zl5{e@5E5*Nsnlf7j$<$0I4(TAT$*WF^1>A(;0PJq$0b@$P2#-K))rcmeLO?GyOGO0 zU5VkjyDa&j_7pujM=e>={q0rsSVj8wn1iP(myK*rrx#fYaAWIK@qF`rFA*!a1{RKm zL^D+LdEmC(<h5jKxJW2jZ!}Y`>f9v9f8gxF*PI-65#&|>RA}L)iRsdsR=$;$?Z!~@ zUA>MSpsgyCDg*1^`5Dyp-J^=_7_SPCX;jqBC&LB|dJ6Pfq?D@$7yV7;$U?Jqs`VQ# z%Uu)6+5VFX9o0O{Wt_P=zW3))Petzuq##;-Pq#krR-4VGM;sXfA+o_|Xl`go+|v{1 z4>t?&a|>9u{b9{V9hKzQ($OT~CGq7aillhuH#j`zR8q$5nZs?~yfm$iXiX5p6`{{k z_~-rTnJH(y=Jtm(Z7ci-a+(|7!j;akaYsvn>Wmm7=Al|GslrF9lG>xghOU!XMKl)1 zqgDs<EDAz$Vp7ZxzH2VFX6uH`F!Sm(Qq?z3<&#t=c5eB7Bq5dPDTqD%)zv*X@KN~6 znsmJOAKYIH%Uj%ZaH~sM)QGf<sHegLK_c+BnV#RSWBn2YTtV(aWJNz{q4EtQKbz;5 z_s-q<b+25<+S#*IUe6eZW*v-|8nt!L9Ni~)6qFl^tK*AZF!rECIkMf>wVD(&iosy3 znSQZjqX$+YtLEq*(X;L=r;8ZgC6gM0Yj)xiQ&tSNq<kAgt#DtnnPT77Rf0H!2YwyK zPP@O}67U|d`UDe7gB29I7n)Q^h(sbMo&rApGQIL$fvq%p`hGh^zklhBVe--*(6*Kd zi;|V~U}84IQ<`#DH!!XEwP3OZ5C_F`M8n98sJ%pwn<SAWL-i+#Mb$V}2g1Z8UX$qW zVYzWnFLbC>r&RqzLi7j2KH~`)I3V^I7HVVP14YrAn}eh>{~QG0sngU|r#lSy$6PGE zKo2G92n~$-_RJTbIX~a^%*r7!YQV^tM=nyi=TrK-_@l+{NK8gXX}<NdB&Ss=Pbi0^ zA!fBMG|&ci%=N^hwfCZNoh95yQy+TO5{OUfXG7d{L&H?!JB<*wQnG7p8ILn}zJzf} z6$p@f?`^HuRo~IcBNcbholsc^TfeDciu9QX)G-MAYeStzv!JEh=Q4W_oM}L7R1YbL zu*L_<+(`!<)+hb7beiRAn`n8Kl6~PG9n8GsQR5zSAb}&waV?T#_i&f$1?N{dE}8fC zZz!cHl{(S#@?B!ps&e@UgaC#8=X!nUxF4o%QDh=6Aj8x(ZudkKhw)d6PRzlQnED^3 zXB|3=8w(95;X;H5O#~352F5PW+1VrC>D1;`ind&Tdrm8F!|^1H&&x+o@u&q+$z`+6 zGj)E@($w^rLjnKaGYX^WqWj72lT$fczCPXqCbRc|1nnH`JfV6O#W7wycj++AlFRDe zc<&60th>FK_}%;WzXi(+mVYMPfCxK9c)#MyovnG7$eW|aOnkiNkiiK8pF{nA$b3c( zB7D_aCAC6UediA5Gx$C4>WQ;joISF3j17qdVE4V2<Q<~NhsErO2cC!FRMyKa<<h)! zj)-f#mE-AWhwYEG|9)zi-3n%YP2~IK)-I2Ir*^A)WyxVZ#_#DGN!zgk0_&A#f=6FF zsFP<8;to$!-d+V3RHWyO<;A{|cMb|6eC5|8>fQ#8w4Ls7FW}$Ph{5o<p-g0tI4Scg z=&f||pH;(nyZPa+IP0tV=R_sWj~zH1cz7mbFP6jt1!UzRGP41Pgy$dhHaM*>Zt~Ns z>*t$p7g_xIkWItSp!^=tjvVlTS5V15tZwJ_#mC;L5fc>rHN?fZg!n#`FD3O(>oQ8? z<jSO@e5&v-re0KYlFi^StGGN_agAvv)+F}r#q_3*KeG8e)6-m6dwb^M*+fHaYYQE; z^zo2~;@_HLq*fn!zm{?!=NqQE(#Ia&1T85S3qCdSE^hH>HwILHS@7=vSkYhO30drz ztDE}sah=!9dF9){lt7cKR6<p}gc`S3nmPkIUd@_NZt(|ORqb(wz66|3*P-}??X<dd z4;+jtHEh>nT0Bt<F}C8AUn-IgeAx?a0dl*p)e~%~k%eega$Uj8dh8d+4OssE??fgt z{adf&z>;G>&*mCkBqe+{Oa^JYvFpx+kcC3TyLbL4ylg%FKT}%P4(6!YjAWwu$lVOx z{l{T-<*3)zmlSujMUTv^*PP*ybuXK76I>WEPMeNI!3PAfA9Txk`Olv|4bStlghGcY zx&d_Wf{^*m8srw0KHB$BGXbNce)$4z8w!W+1SK5iOHNp`{y_m0p~;6%1F$SDt*qRB z{|L=COUr&pgy)m2u`SWz1Yy!}j@fsG?i*Z;U4Hcz4TDVK991qe^+J|P_q6EYJuU?) zjm(aeUn%dTr1EdG@mJw8DU-hD$aLj3j$?zi*H>@fg-uhZT(R#F5yFOwoG>LVAMIr% zHWSt>W4+RTC^q88R9qx2@%|rU>7@~{ojcgLEs(W2Q0^luCwJ#APJK%Ycf;$FkPpg; ziO!HdkGJ5o^>c1clkFR~LXKz+AH-upAq2KqGo!=unioVwS{~<RVt5tv_<Z%5TU-0= zTd8*j0j?C!Qoy00EsxHP49)Ay?%u(L!qD6zV?>PK?ldpf^z^LBC6Q+7*PB6~KNDPB zO75oy=n4UgfFeNCeNs{(vf4@MEOQcol)AQ$fGj#?nek=tczcV^F0Ji~y&;*(EC_Ak z8de(ez6xr2S-HlWab_)`8P-ISdUR5_^q&yw`Jl$<gl$W6VR}Cf-`x&o{}y3PnLFa; zFsvXb_lJWw=zeguV`UsM4!WPT53anh^}N)B7MGQhRs%9djD+jA3%$*ajdAHig`%oi zFF9SowTRe+PbM|MD1hk@g1u_J>oxO;4q7);kFzHnP+HeE#B&mA2(Zu@R4W7(9g)H1 zn`5QP^b_{_Vk74%82h@vvG2!z5_rlAh8a9d7Q8Rc{{Y0)J>z|QC57%a=btz-471i@ zE$sVyM`e1<nXoXvBQmO#a`qj%Zk!q%@4vu3J5p6Jt#%aKxN~f9v`g9l+sf9qbC1W$ z-oE6NqG7CUEx%{KW$ko!Ui;jAZgw`zsK$&m<=Q!qE!fMeA(;jun(A|!?}pltz6Zn? zW`u?VO^A5x6i7gNR_piuniC%%%R9L@p(rPZ;I1A?q5vhgQ-UX?KAu0szCr<)UVixn z5}PyXi1d~Wp;h%rH=geN?!OEN20Z3@Y+c{~GV*tqUmJ8(`dv6I+H%CWxLyreI}xCC zxJ_Y6Kj(VfzG63j)mllJN^mDg>Ur(4my_gmx9gP(GWqWM`}#<R<XEyofo_v=RF<OI zRh45O1r}*<^p{(EautgMg#C|Se%wKHru~oku2%l#@_*ffbej_Ax8@=`HiX~PsA5T_ z8A^%PnC-7V`>baGz5GRu^_f>Zhy@@s7gpOm4%_H4&fk^}(+3Bho2GF)Ur?4Jrc<;} z3*=YOkkf_#_3M<8%Z)LXcrK%iQ}B(3X#1j7QR1q`EP^CS;f-84xaZwt`=63e!#6h& zSaDZ@Y0m%Ce}sR@Y43keM>PH4Lmu0P|NocVzaRep-gD_%OYZjcyFgUfZ*21?-uiDJ zIQ)4^{;5c_#^W`nbkLVHif<X${Y_w```^DPS&_<+|M{x``i%ce>L{hk{~mSu|GxzJ z!2ZAfTw1`P2<JMT^(jRt1NbH4<F9zUCiaL&^9|kEIv~G&8|#;>w>5OGcbcLfjydcw z*=hVaY&>>YSf;0vjK6`72JH&x`3ZcdM;RFzSR}6k)<0#=ZZGR!@o=(5eEljM*mI=- z6f_L_!Jy<ke{pJi2M+#==jZ;?VoxYo?&3NeV|5^#m>e@bx>IS{i#vP2W$IBwtCL5| zIKfkqnE(qfSyWi$8zemh1_n+|un+|!Ng4Sv<05pZ2c5T-NJz3ubpri@C}9e{R3aol zdr3N=&yW)6I8-+h5?QBROzAyNTz9(X^o}jU)Ky)1=H~7@mQ@;X;;lWWq||QoOCg<b z{TQ2w8GCBqj0>h)dl9wQ4|_UlC1Je(&C{oFGb!`F+P!n<ruSE19A8pWbkZh}*`N?X zzh15%8rI7MlhwPH4y7Aa;t=V12j@<cCX;Rj0`L;pbYv~_1K_VbMukc-*;-t9^Du(? z+8jpFSHMa=1*}f4ZRLdz8h^(8H!Z+bF+e20;LuWK#?GK>yTF5g|DO4UO1Bo_kUb`q zG&CeoPfD`4*tgo(&BUSl7Tb~$Jt~J^fMnlioO&G9qE1w@ZtsP!vZ_bE-S%hy#@M3a zflXM<>!aiFEkjB1_~iHR-*ht%dFZ%a-tlxf-X2R_&PY!}ty}9Wpn`neGWP|%jnWH2 zL2U|)>LZ#DeSKLodzhd*!XoZH_D5JiJ?q5j@U{6&^>Oq~y|-j<|Ms<>L5b%b_^KTo zYBh}?N+j<;%+I%i#|9oFjji=)j?j0vH?wFz80(BV|K4OURcZUH<s6Z3J|K^dL$1d@ zRg~NEVdeC?u>2Bgc>RDvMX=UGQ&P|d^n3JxBg>EQ7TJjV_%1;0jm>cP@6aK)onxYV zvMn{u>o`EMR<phLVMe|+l9l?QC@u$wwV2eqxl8G@{`Dm)B%?b`YByn>iA6R#(6LC{ zE(qnE(%wHuVbG{<_S8xNp~2IaFT>+{<aGvDlIP~M&fj<}RbY2&?6D>vZoPALtr~hi z)6}7`%5O^v9<2awRn^o8ubX84ql4I^M$$P@2IzEuX@abad*sOisdtwMuA6{xx|%Zh z2CWD&XlPWrdmVt9fRM?QlKPrcNJ>Kks2$<x`7?Fn!6ywBBNo&1k)_iq9o(d=N7LL& z=Eom;986XO<(KYg9@ktVr9ADA+YMr)ufGs;SoGP<-b3bZmofUp@P`J3EN^5CDAk_g z1H%Pkht$gu_HI0b_7L><mf-)5fyk!ZW{DCc63~oe*(`MD<koXlCEQ(7$Wkp0mpgZe z<KGx9#t@ZGC{VQcFYM{>DFT#StY*VJ;42J0D}&zjYLHs=FzX(0%I8dJ9&)FurIeUn zN9Jot*N?RL_U19QN7FZa4Hp8qdsFi~hc}4inq5jt3LMjWcMp$j5&dmdi8|EM`)jjv zl+USQzDKBXnEo`Yhgy2^`1`dFn9SR34AVnw+?lk&+eHsqQ&W=U(6evwExQ|Mk$4?n zgoM_{u5B39%TWcI3iM)uV1xEbDXUcPTuQ(D(*H5$@~B$rZ5-@WtBoU5mBIv&m9eZ< z5`v%rQpX<y+^Zqk1tb=ALjpVAH#o7*hkgQt1^%EAn+YO*8!P*~Yl0QZzE?(1<<ffe z8wzecV))owwfSM4`)IH}t8G&q?PyATAWON{zehCWR^8B$ch%Juo0(!L?z9^*hk^nM zQHimrj0_X^a4w}oP6FPVoUH7hnfXt!n>q6l3JGL$&;N{4XX=<qSKrhe{Q3_3aG3Ls zTV8EIyKZf!(6`HGFsUH^)0jtu!LODKX}wSC(C!gj33XP<(x^7pb5FR+9x}rwV)kJt z=0KZWGBWO+_^GBcUgSvV2@<^ivMv*3Yb+9TSzpZKblpz5W;*<DBu$>?Fk9yNy>Nbm zon^yi(vX#2>he~^<&!6I#$VTGzRLEtd@e?u^;-x%x=O;y+Fm@5UNM5Y+MeU<-hJ;{ zSA}mOfCwn$i%h1zC2+ZAC}+&`Cq53xnqPPr!)Jv0JmB#S&9;Cc5V!=*lw=ie+;UbF zzL{*hA=ol99?NfI|LW5nb>m4-5a+36d2Dop^Ua#n(%q%a_L=$y(G1xPR7Q?h)w3B2 z=T1Hc8#?*jXI&~v<>o0v!;L_E=6Z9Z-VA@#p)q@1CEjHq$!l2?$AX=5-`+ym3k-mv zDfdfs=5v<P-a}xHlT~){KW6V$I5-_k-+H`_esk|~(+Ll^6?!uVSEjekR9>YI#OH>` z#I%NeSRmjwy88?RH?O?w5+fAZ>#mY16iM5_BIFHOmL%>gUx-J!VDh-%&>UjWmOyAv z?*Y|Z+1prm_3JwkFI4|L0TJB+5$9Knn&hUu&&lJeID|bIE*@S7{a?Pp$KTl27ydoH zXUD!YG(#;jttl`LD(`UA!6K8MD4r7Kn#oSY46}23|DAMRdBT2MA67#Itr|^3L2K)a zDw{>k^NPogD?1dNlwU_)y9uQ3EjgB3p*?sgiH%!B!bbomd_Y5;HZIBNRLXsDwlwlb zhjU$yte4J$vCeN}hR(LE%_wiq3?077^#?_)&QU1liT=fl{f;d*p|iu~!s#f+y8{|2 z$ih35=_7v0>nI4%g()Y&+#AWPHruX9HD!D$VrR^+uQQG%98R8xBt-9_O!V^O6R5Bl zOF-4p4IMkxBt4{R*O(Ztr`6siq4o%xck#=NmuoZ9!i%-rdqXD3CnPJaVnOoC_<|A| zhtbLUF<%~E`UK5_ii$~p^hx01u<599roQBj^9{TW4zs1x72`14bjIi$)ulqd<QQU_ z?gZ}S8$zN5b1UAS8B*>Si$?BhwWuIn!(&i+llxgn@p@kndKOSz(C_u@`~5pD4lQtP zES@?~O|+0I(*=99CYmn`C=Oi=doXzVK<Ba1kFgelX#<{Kk`JC^KBlXykW^V6oU;oo zayhy-uSswF9zB#_lCF-LM#c*QU4w3i@211vS*iIeB*mZX%_1-1esvx^i^$$1!XxY6 zXE%WfHL-mIoDiks*DkpW#0M97w1Db2`E6sgQd$<~=A^!(AELBI4n#vM_`>Rl2ZS3X zVwKig&H?!J-<FQvF7`kLDcH$(Va)Q?=VOqt<*d(kQKJ5mJ6&}eFu<JNsUKn{=2<k* zA@UV~>U0W~gm!16MHxu20Hn<)nv=8IE#p#7A*gWEhP^<Dw}QO+PE)2OV)^3zT3h+6 z5wI(e_a0PoMr%xPr<{*hKq`amO@M2DXKZbZL*?=B70;eAm)Rd&QyGN@V-B<TDv!5I zN4rZBE6ZIEU&Dv3(^%$@LU-o$+)E_r>GS8_T>JO~YYozzcFS~{#`K)}^Bh$JTRO<@ z8dUS3&dQ9S&Mf-o_WU_@q3IHlPiSIY(bzsHB1;vgq2Y<tba=fkz7y*AglGOuY&rDW zGgv*4A{3=kBU+J^zA8E%9+GPwCrCf#xE3d-X>052o3{ahbyT*pct>=6jLOXxYRWvV zj#o8jM=n$nvCS51?cK39_@ns-j37iu%J%FLQ=xzvn~uPO4CYoJBWm<c_b4Ghxi!qU z8UtqzU@A_5*+jW-PU7ph{mbS|GfNx0rJekRNlYx=rg3ZnEGDxfRXj!wz3C%pw8wHD zx`;q;QW_eL#Q4!`RzRz<h?wJWD{Tu_x8T~sMn&~<I=7Px>uhTB?m2V+mzF)@9~jzW zs{vK;&FRWy{_ez;*4>9lbvB6G3X#HIgi_IZ?ykhA?P<&+7bp3a7h9F^j^g_?B=zA# zRs_V7c?vefX&$+uou36^;}dcG=@{F`-%`HXInCQBb&I`%u8^wUa406h<&ds>OsyXX zw`}+Tp0%(>(#E<x{Ya;QM=dG}mk|9Pw@!Cx1kH!ZU!tOMfTaMarIf2q)!2;W?DK9N z7uYih3@^QedI=hsIB3I}BoWUW>RI<Bv-Y@l41Q?rX_vysT;=Bt1*oU{eU&X3%j#%I zbqf?&6RIt5c+S5K?5&X$-|w{qxcD(s);|;XmMC<)2+j{5ogJ(;H^52J3Wdda&fkZc zP<e%Zs{xDs$qFHAnrD~EM-ZODF^+t{Ols7b@;R+jo+v0so7{DUpE6@y9-c3?zwI$c z6q+6?qu`M7hQI{?y$W>Cgc`o8kzGmo9JOm<cm7icaG`tzCei8O#GIv4+HD+q4sNbU z3tF&|YKDBpcM=k8jFpyis9><j3XbM_5GV-Q1zzAtuQbSd1BZlD01Qc2A&r;YVf!Mp zHmX%)9^?)Oj@N3h?HuVF3Pwjc-KQ>z-JD&K9(ExiAqQu9w8S3yS<&8KeXM48?t{1n zYgD5YIY5?;!1(ss!F51eHyZ90D`;oKv^vUw-y^l@HO(BMs<9k;|99_5_?$_YrljBV zsU;w4h{TPJjeQW>7D;vXq*$86RkxN`lv>Z!(UfMySr-;p#c&uIlibqoCfm9sYaDMD zD^3?_@yh3PaK<$R6mJ*}|JI6{h-&$-hgcryqZSW)gaF-`{pS?33mKQQFQhrwJdb_B zt8$nD9Ib|cBOFlWjgk%%sNK1jTPsE2o74{-U=dha+ai$+n?=7Lj7H?^9DA|AG_3>- zK(Iu_{$A7_Hk)qm2>zrmeD!_^^Yw?imd}R<59#<c&P7pi&<#Iyv)w%LDZFD^z4Jpo zDdO%vPRo9MfY_OZpMFa!Mu+|-Sxdx>c9(|+uDIUnFaaL9hm0tfD{bsg6`it&vAfFq zdA~o#c(5gH)26JJPy~>NHhw>lDIkr0uvYpsj-lh(sjCf}P-!!htqE3J#yva(-Mu8m zifq4MD{(L2-xgI&=sW8!U`A#uGnU%5NFi?w-)`~(7lb<u5Y`{_U$i!64BQy#Sk2)* z-|IS1BH?k30JO=hvn^dUoIwlB$HREWsNp0e_5>R_mC`ogv2#9`A`!z99A#0}@Y{%$ z(`FkLuJ1IL<QvO(t;a3vd_xoSM!P$m_MLJ?8IkC?(m_(^7de;vH^6NB@2=}563%#i zL&z{vjMPKy5w==$1&@(;0$e@a_zP5fYby<1ryX?Jx)x|YA-ZktLlLxcM3C)Nakw76 z6!r<`uG1yj(%aTdoZr}NbgPX!I47Tc6>g7YXzGv5B)n)++&}xNHMiKlCJs&Vw+pvS zV8<yIYOx}!`lc_&YG!crU1n|s;4w7HT{)fD?pWGyo?&~!y;N3F2KjyO)jd3_vOD!E z;6=!W56BKGJ-)+9-?!E^!bE@t)CV}s&R&73l}4U`JA-PKgiP4l&*{GUa6rN*OWn8X zhDj?Ob6ps*2wo^v5r7n_)A}lj9H0KVLyjt}qSpC0Trg-2s@%Zxdv0#7&<9vP3yzQ7 z?&xdtubaJ>keIM@)cr=?<643|E1vC7i$me^1H#9WKm`WeV?-yS7$>TEGIee;9c{b} zisyL@{rAP5<3|qLqx>xmk(nbeKQh&-b&&Is^HlS&USik8v-?6OCruP>$F5xZ+T=pL zrGg~Upw3$RkZQR-DagZM5r~cTKY#fxXJn;qz+m*C0|))!Dkj2L-E^|b&G(gs{X78D z2!>NOFx<mqlpRpyo_V@&b7PZM`g?71(;Dl_ADJ915EvRBOX0(_&dNErINZfZL@M=Q z9?&!wOSQ&6SnyU>4=V}5qfQVepVSf!(eshNb|z7KT@yQZ0f95mDOetmlUu;Ivyi07 zc_cLT_4ymnC@jKHR;_aN{=K*;v46C~{?~9$@DYt7T$GY4t6dWgiZ%MY*>SPzzeL}P zE-dMB-PEl|JuS1`WkJDbR7=|w`g{SB0Hvx?_iwey7YJ_qO#%q)qy(}G_VUO)R0y9m z%<l%nOQXR*_rZ+yW3GB4IJ);&Ioa&*K?Wo;9#h?Ai~ZvAGDEqT25BAZcFq@5q7AmI zMdnj+Uv6Q_W+^gHyPumacgDgwBOOkis`T9l7}1RJ?0oy-1~^lP@z2OD_kd``udwhT zTvY5HCGH)J|4~(2$NBUZrkh(GUEKQeMaYr)``Swejmi*>?aAee&L(jMI_D!oEcEs$ znzmS*v>y`w+HY6Kw%owjm1XeLW|y2iSxySQTKV{|IaT>%B9&uV7lPo7-@g^pGSxDv zp8lLm;JoxbEu8I@!6E0BsvajY*~$I(Uw~a6m73QL6}zV<Mp^GX{>O3H8g+1(Q8%jz zBK(F^@wBt}{~$c6?gYrMXna5%?<6#t^?w@k3;y~Q<4ts;%aLrA;r+ekU6-s&KR-7t zfy})elA1_U9L+Q$t%mZONsQ|fWYTho{$yz?#hdajSpm9>C7@9t@$-{TUHB%pO!}(Y zqKq)S{UkA8xG`S+$ec62F2TzxXy)`uSjD0vPhd#X+=>zR$K$znF?91FDvGC(F_h1| zINlD}oqFLsqLq5y3-f~0Iq2)rmRbX+!tzN0>4s7mBv?CVUv4jxg*+=w|NQ&WiMt2M zyO+-QFPX4=Xem76@fbPg215CDduq^ZH>Q%46|z$mj&nArT|D6&lmpRV)FmgT0|&=z zk4fK@7U=@bwYz+q35N-`N4M`_>rCPc8BYHWcVh5|6U0=t#;?lh!f;?t4XMBZ8w(b! z>X>PAgPwiCE+Sh})`awnOZq5MPTQ|qX#A<#<t&eAmB0GWxPzSMQSkbZ*8J)m)Yp1T z8Y)ev@&li>NXuluUy>Mje`Gh;uV=qG-oR+$P8F(Qj&c{DP9XVB1KqGnvH3G@kBOE@ zlM&>YC2N|ip86}ZVbyUqk1?K)vM@C#v$FKc*1Zx9SSlzJnKW0$czAhk2i{JH@hvRU zos74LAvVlt`ju<rkEJj0Vd(Dj86%%#+x>fwI+HFj{%EY+S|4%x+%b})#YEs({AnL+ z;=j*^RZ?4CU+#Q>sj>blqi1yosDE9@SWM6DI1qNOXiSk^m%cc1IT9~vq8P>hGDqrV z4#(|lvJnw-tf~089lh*|XDcZ0*~e!rv|S<s`(!<-<TT;@U&3$S+Uy+=(oB*6J6svs z@PoeUD+ay}x9a~f=oov&hjQt1q}hwFV>tMi6bdXr!A$l^Vvp#0)(O-qt-iz0D%f4| z#$$ZB3Br@kJ@ySC>R;44vJ-KKGC!7_5lg)1DEidk%(!PdMRn8n>ufYPNASkT(-)jE z!xr`wxgKQiAJMiSynEOw#Msi@#O%1J*o;N0OSCs;sI->++6D(+tk?MCO39tyWW_~( z1yxhQ=`RRJl8;$$eOBRc@h5Y`D6kx}=35`<>bSU2*cz`)h6REr^s}k4k;S&t5x8qP zX!+gv*7ccf_X;9S07!#+ou)y?eRuZ`%wg>AWm?S7&I*9wUXpkaDo?ynQ(9av-dH?5 zPEkQzK{UqPtmdq`z!NCkBx<d)wmJq|TUu&1FWzzO%_IjEDFqExoPUZ>yi1J&okA28 z@9q;m4tBs{L~61sE&aKe$dU7uprhx5YBW+)236s0b90X~@FtE1WBUPc+pjrmw?()k zs*fSD_KQ<_pW$yX`UZRU?+P01UAt2ma?}uh+W?-mMqsFn0$Ft0;OibiXXJdUmZ$j! z>R9cNfd)!jNRf^PY}r?oVZ_-FshR^2#x?DN;1#~2%~I2;XET0t)~Af*!N&}Uxa*Qn zr6>bciCuAQMXzh^t>52;8tBs0Iqxh)0|A*RwXQy<f^>EvXOqn~IsL4mzG1qnI~=81 zE;Xt7c8pz6`Cgp#4g`vkQ(lwQ+}9V5$H=a~G>*M|pK#cGRItI>&a#x%Vo!HWj`0pQ zrol|T&~im#cE!E0r(F$Xe4<<Ql}h=C5)qNU8*=|+Sg$*%UQ_e`YIZZKs|d;~NN!Uc zUxJ*ATJ8xJc?J@mUjjAhCweOk`-O`E#l()OdNvRGgE^m4cm)4n&G4~Kgio}Ava9t( zU)}bPv2uFL-xpMyK|kf}IM(qTmVLdfF5I8_H>awOT5*L(EvYKmP<>|o{4!$SK^IXh z42SENz+eU4|C=*>wg{X+Ru+9xtnBv6@EFu|v~NzSzi3n9#~rdea*!i1wUP^9iXvws zhwI<~FbF9G=kHEJ`(eJd(iOR^A53h0aPlsMgnw7~XbZ%H;vjdFN!50OsXqy*Y`yqc zH`tzUx+bd%d$IM;AG%T)`H11v|2l-xGNNH7bpDFI%Oknwx*BwJ1Q61dw0DdYa*h>T zDuj@58{KDf<IL98@JOf>XiE=_hl#17zaQK4)B&Yf+1WjZq3Of;QWpF9M^r&10l?Hm zrDM8tmG~K$auLhx?O@i2oT28INYuqaM~X;+Vx9b%F)+Pw`q?BNTXy1zcUcvHl)UF% zL-ouOG&OMdmf4=(O?suC_M6M;3=27TcJ_OBxd(dr5}@%yDYst!ZTqf+%LGX-IVMVr zS0BIr?P0;U&f#aq?Eo`w$SkhZWQOoH@kGxbPquHNE4%seg7aOuuO>|NwIvQj_lN{( zpBP+b@v)sdu4t}$)*x>iYrXgPiSU|%r2-Qd!C~y7JJ#!JIPZxbNhYm4wm#c*I&;5x z3Pc(38hZr2T04nwK`{vnzexHOXU9NOpb~bBa))>v$So?4NyS!5xnsPV*2a|0#X&|5 z5PPM2%0;-PadvZ2Sob3v&{P|!iNbIH?Rds1kVHMHQ>7>Zx=8ci&DBr{;8<2S{>VRY zne<<$^Q^CjyN}`Cr|Y>@m$UaVRr^*TTMwU{_e>~BA;R}GwA^xyMMyNb!;;a?$|?<p zm*KURNB`bZNhW@-O(tjm`)LW_8?uBL=pJKk7f(jEO)^^3=SqU=^=0jHOr}}-DufaJ zm>N`En9(^*2J4hb<sQ6hWu~`;T7nFkF39Oh^tOm@<^4Yz$n%~ix9eW&M3P}H*Apg) zT`4}<^u||za^?QxayVNBVvxNc4J0O-n~STj%t{9=-gR)|z({$7gz1)CFWZY&wu@tk z#VL0_qycmH`4g*w-XGw!fAi)|$gvbo;&Hm_N4(f`Xgi=WW{b<sUtv(6R~NWv*FV%{ zIz$f&<FPV3;=(kEqKeb-1*&<_zfByArnhc7n>QLBPcE12MZ|WlYeJys(H6nPv8)N` z_5`v;y8Na6T4s7eN5)H7uF2MrrURtYi0(SRWN0Whx7!gDu<QPqa{5l)k>uP44>#k} zf)c2DjMS<Bm(je@eF<Gj{lk|ouyx4ow;M4KHNimBK?VgBY`~ybMxOBuH1ye_=mr0$ zxxGI+snjkLQC*7V_Gs5V({3&7R##Ri*Od4EO_#lWgungC#B8e4JagE%Sb3%AgD9z; ziIs_(9imz}OT}vFLw2S4t($~*3+{y76l_L>w!V8pX;ob8I-QH3JM3cZ(DU4(hu2}o zpvYthHQ#Et%;ow<RQG;M_`~M(k57L&q+4szM(h{;oAW*UvGx-qHZLEQFW1mDq9DHK z03prbZ7`>m<<6G!=MlCni>;sJ$gi4E?BDWd2h#7~S@P0g##eAJD1XH3_WnCd7fHeL zHt@~i9{DZ$iR_iLt<sE>zkMIL`Cnd0cUWD<@)^<;<2|L9!zjkf!$WI(PcMwJNl7uP zjFwG1`eas}>fZzQlad_LafNS!|MCs@{}WdDipwSP9pwXojIXLc@A=F|F5mVO)4;Kc za8Xa=SXx}&`P<Ukas7IU;C;{f5>tG+%e|%L&BX|Wc)Rx7yTljVylOZo=%14|f5s1% zhtM8Ze6(y^vgRBmu9>y8?&NMXYua1->O|~fyY_Wh<DjlQFuJd(&p=F4+$%V^QB!QD z{?fUjv<Mfa!K6=~rYS~CD3AIFd(zvM+t_zdp3KhPkJw}QtUQ!?x1(UtI4G74+sf*W z;aC>)T_<OVOunz2t=HgWI$H8j!+!0yiwn2bnEycS!g!Yoisx%~6M~zPUV?(qGE$>E zNRC=L3B}liX-7(M*Zxou!7*-kt?X#nBS|Gb&=YBF5KV2iaHJ;YGN$><A=KRQ(IZrD z74F}yviBXANl*lGWM;?d-NG{EgN+Sm(w@h$8+-1wzHoGM7NEq_LR@+6FnmCr3;%Gs z-4Qc+9z8y)xxVQ%TB^tES|yH(qReg<^yXR1e4~ZS6Fh&(v`S9y_={lOj10>>j-=8_ zr#758nn&-k2-$HCH-_I_PxJ0)88A#G(2iJW|2t4J?EC$+J^Ju%+k6vNdmFj_iH<<B z`s$=Q|D-%jef4g|-}ob&LGk<5E6&67TN0%F$|u#ol0=`;tAz}#F#K>@@L>!cI|vlg zSvmiUt<sr<8Ko*+?&1Woo^Kcwe*CzD8CrKOB3&2sZb2qp-_DE8U-*lB7ZK+5(Jq7k zskpmHU5I21r_QT&w~rH=t*(huzICiCGBu`z5e!RaJKT@<_8RMIG#Wgvv{BCH3NsZl zC~r#K`0=T*Ic9%=MOXjtlgOG1X=2)x?n^7e^d7Z33+_?@n&LOm9|TFeeNZBc-0cdf zGj~e#;|;HvQN<I-=tjVFJF_3c+^=&OpyR>BsUA!BxI{K%tUQ<Q@@lo=8^pX)Q#ZI& zW@gf=SM}mXCdI_u&R4`bpFF%lP2IR0!{7b9WwK+eV56X|?W|c$Hsd3K)HEcR0P%ga zJ|=v93&tkU_kS3CPffdH6G+BsO#<3ird4L+zvg{Ka|UIOYj=T5%tq^!O_|!@Gl~ii zvSuk&$duJkKDe{Fb!g}F&s&}SeOR09hY|@RU~j5PK~58|6{XU)Q=5?`PGWa;R18*| z<S53C!2Z-KSU?Vr(JyX<i+v?pFz>ecZ(4v)nYZN@dS^PmIk(lPP%}}s_-RB9dRymy zr?0gc{AMx|@q6*n_a5P-?QM|}7lp%@;bN2t#}whW6UR&HyWMV-fyG|Un}O{_ZtasF z7G1AgO-3qi!6iu4lcHlux${Vw!{SWYPK3glJCQ~_f2RtyM^`!FcDrz)^()J7L>7=S zn33zEvLu$HJV^8@P+5p#7=vcRS={nD1txy7{+pXWl1gu4cZgXse7uG0;>P>SKlk*9 z(R#;I_bqGT12|N?isq8XQ$`pFm9wQq?kLbE;C`Ar7dgs{UgfXN$z(;{*3+JPd`pBx ztRas7@kweat*WU;E;GV|6dAo!ddK}iK)d_nd;1i41s^XRH$ZD55*yvn$LB~w>3THR zaedrIjk0%kb@i{-_N4_VMrY?1p0J%P>VW6zkJ)IW=hsIUy}m!i<^&zdbU15uRRzDa z+5MI!28!`iEeCfnnogbMaYuARwAyRsqMps!kKMi;#UftWmB(6}em~KZt4~KrCoeV_ zy2;NaXHIU^Rr`j1P5PDgRa9hdK3TzA>wRIYF>kHWIfJe7Nb_p1<O36vh<$oA0dmz~ zaWSUV`b4>1?YBP$*6tnhyzZ%z$;9vBIB{4VxDE4)b9H?S{|XLlxxnq<Zm}}`O?3#t zk;(XV^>#d@x^{lyb@7wP@tDbI=JI0?IGV~hxiN9CJ^46S0B*JZS@D!IU{OnTHs0f) zkuSOpJ6Xu!_hX0cDwH#_A6}xNLR&;b%+8~;BT}V}?T7Kbhz+vU2|518L^}3Qj=Q<= zjvhS-2;CTbz=xRI_Ib^o`HYect0vV=2HMOduia(Ea6|pRex&h!pDMWDjQt_Y@Pn{0 zuh7&ud+;`Y?fw)bW&E;vdR&6iu(9^mG@;&rA|(m5@Lz@$myLue(Su0>+ZIHAzVnjq za<4HA|0ftLUlv9^|KNf5%$ro%H|Yb&Uw(D4B)G5n0o<gkS_^W2DU({Nm^fFK?mmal z2coXN+U?P%kYV`#&@cXrUOyz?6|cE;CW$_AVCnGCS%HM#PJWeZR-uN(ejAf%blI!r z4b<VX#t=^@Hrzc95b_1O@4z<jQ7{qvgQ&NnqL}sg<mBXj!W7`0LwG=mje{eStz5ik z+7rW~*DgT$0AgKn{wU_pSMs9#@(5>16@U6n&U-Zm|KAHDIIm?gKJL(Op~1>X`JA3- zzm}On*EvKV_v%8zBb1qiW8or|_TB>`pCNI)#XH(3k&L0D_4R^i0&oh7)<0bxy2LDO z(R!C;?SgN|BxgM>9(+Hr3GcXbqrZm!i2OA=;z85STi+4{P2d4~=aBdpLBabEO*oB1 z$}41czUT35prrMDfCdfM-2HH>WdERBk~0o&@3V(vNItiTP~;o_zK3sMz-F}b@`#+z z2j1V#z-BChC0<xpB%P*2(NX>Lr|8FGA6I+Jt*-_$BJ4*vl2&Du0`QiCF!+ei$2GeN zxw?HbWJXj_F^KOIMdsJ93K_jvrt=Anzv@X~Av<%s)nfAXk}pJ#crhiWkYM{r+x0^i zUXxm5%=Et-dXpOLrUegfOl7|7tB!jVpF_*cE)()Bl*Rj}_q)(U3;$IMR);ogiR3~Q zwAynrPj^Q_Tn7%<=>jeo&ai^d6N{Yt{&)TE`Xo=Zdx1@>W5xUY2^$<Eg_Z8BMMK1; z+T)wIR{34o1O*#pio~?o%nY5&2x!XqPXFL6THnGU#k`4PSgdS1ov$LM@FJqj`jV<h zIXiFjB!kt@^+>|-<wUhO2J+sQen#Ql!-M05S}cO*4P7Y?^E)?Q!e790;D>r5q;b0q z{W@;UV7(V8Y&gw1Qclyq@-Fsg@&O+m52`4dw2G~1d<jA%ep&KEYsbK^9?_O6f!Q$| z5#Q7HmwRJ25;5DMKhe$zd0JN%S7$xbg83TyKbib==E9fImMvg<WF{qqanQ8hw2yst z7k}^Haf2^GqSqd{Gb>hG(TZSgUyq-&q)DvFioFY;JIkK<R{+FJAfr=Yj3u=zE&e>1 zFGB_6bs~<6!`9=dYCl%2bv?NkkpwKpJbzC<HO{)b{g8R#&EM6r-}bShNtoirqqC%F zqF{8u1>ND4f*?h*I%&-OVQAZlsaoxh2~G$iu%-7e)Unq`kX$t16)d6!(o3@Q^;XCl zo7a4^KkDn=4tDUo=y9-F`I0&^@cCKG{p26XzWYkHSU9A(!YY`{!<V_YLxcX+-Pd8- zuKf8&A-$yD2^Ga-s@j4{+6b(nOSZ=YeHgt$#Fx*AFVOc5q&_RsHNz7C?>HSeNmy5z zksk2u@g;X`K7Ptx#E`~ypwp<l;dw=(QfWj?<RL%vV@|+b@8eRyV@p^jjZGWGd8@Xs z!EKJ<uR`{>^tsO>DfLl_E`R{;)vTxGHVoz{k;-f5?|fllen}Ybuqo0~l0DOQEJ~il zSbOmRw06FmdbshB@Pv$F6?1?TE665g)@y$>H*K{&$(6w8M&x#OkZ(v1K2fVfnfS=y z$cX6umw$(hC(HNE(`ufamF7jh?@M!%qf;-(GY&>qG6uI6W#45<qWbA+9DGKN&tUh| z+l$SlQ7RVRX1Ug0%(HL9pjz_a82omBDY5<-SpQnUdH#B9^2)|^wBq4A#uc5(k`;Wv zxAU&VW=pyZ(&b9B7!wsP<T<LfMt#SI+v;Z}d=_IQ@cn|Y+5k{So<3f!W>#S2ay(d4 zt@);a-O)MZ9h9xJO~UT56{m9)`vTwQFaw!Ar%{0l7d+h=8BC>9@ocQwzTUjU=?SLu zuBt5;hvxnaq~qHA-BS?kBcxY*7oiKs1tB>H^I!bp=4oz1%cA=~mH6sqPz=@H1Za0_ zcS11Kz*8EYkdfKWhmT*Wc^qa9H;$kaky;*nNb5~0(jp}O!&cX(8Tqza;_$rSjg~0$ zMNg~Mk^f!52wG=twq>IMz4-+-Pe-y1jCmyc1+x3zBxN*o85mE73}eVYR;rW6e^hp; z8oa_npVfF~Fm~bGho`$~^j_E_K1r=o^E^o-EIih~K<|BnM}RxoLkA88(-SA=v@Rvj z8Af$f6ad(o7p-%Gj0L!0cvj5pvHa+wNE;g!hxEpeWNy3Rh&!j~_I@NJoB5905)yG- z7#$<#p32!GJvnMJ2TS+5;iGg{&L@&?cs94Rc0<XSDB#i2zrE8!Z@db%@zS@0`-Zj~ ztSGQDWL`XeA^YbZYKg^H`OK!O=lstoXzr42Z^O?0`R39&2Ejk{ggoAUQzSXJVujE+ z(>y!w&$Sh4(fTAQyvown7F;oA?l$NzQ$J<C?<<|qm?UXJf5lL;IUXpI?5=I=m;zg0 zbNJu$ypj?h)t>?Y^7|@9IlfQC?>2BkFP{8RrN|3pkstrkk>HNriYCE5j#94CN0YjA zC$siO?Us^KWHWjFSHbB}aKr3qX?_07t*Zg1wHB_h@lk=yA;HWc?Y2pB@8OHI{;o?A z`;rpHd`kwZ^PZ+S$%!X;fgid{*-COwxun%0Ucny(K(jCbIa=b9{APUlQ%6`514pcR zo46nf0pE@auq@IRsie=cv7e`TD~PHl6Ik6Iq@DCMOkZNmZ7zQO+9-^*IYE55K3HOS zu3@+FW%T4`(bh1glvIeAbhJ(zkB6&#F2jEg8M^8u^uw)S@GklHo=!y771h}uK@lV% za}T*@V@5gQNAXIJdu8J9>{#6c-y&RM;+LkWuf)Prf2nQYIXPb~Q$y@YihE1|WK(gD zP6z=F%QR19-igok?xBm}daOg$Q+FlQ5*C>%82R2khTE+m%=~YVu}m#lg~OUBgT}E} zbUL-HE=vT!L7Oz`2Ydq_qlT1J)X(^y-v4w#quCL+^p6c?SYBT7bq_hxI2<U_4;h-i z3^Nnkjlru#SC4}^LSARKFJHdQZf#*h9AQ~m8O)l7`vtiUjT&u@7oQwWSbX>+gH#d= zrpjt{MA5(a^f#jET&c#D>+Bd2O7S+J4!8%%agZtIC8lG0WFY~o$*fujw_W+2Uh^5H zkq-~&3OdmxuHXvr>lzw7;}ww{q6hF(*J5W(c<@miyy>H&vAc<iwl(vz{}1-wI;_gK z>lR(8ppt@wl8S)R(hVvCQqm2J?(Pmnx&)-VyGvpb(%l`4knV0c_j<qY_r34F&j0&d z*FJk){v)fN^*r}8?=i<5V@|Le=}a|SA`bA85AVn0Pz`NE)5jq51@E_f_Jw)Xev4;q z%gEkzvTZ`cbvUynC-*%3@+yMze53|kJpZ*2B61cveY*kitLxbOm|QkO;-|bm<3Skf z4jc*uJ(eWm12S>|l0@^etm+l><AGRiUVok@Jl^vTT9`Y1OU7@F)7tU%M@~J_$jIuu z-Ib7WFanRYvXpXbvgjcPfs)&B+C0xRDK;$mt3qb1vsj45xS5tI`F8_GBzAkpj;S}B z7X~Gb+SOGrF6t%<k`wS63Z=(HgJW6g<A04eVL4PhPcxA*oddId%X~h{i4b8soY}SH z3L0;~M4A{uAe*qa_f1IRKTzosMK{cQ5;Q=oMTsKMI9raDXXsZJLj25%@nI0-22r7S zTQf(M`S3tktLHkEY+gBC!jEA8I|X@~sO~hIJ4wRoP5-t`J>oeS9)DH?X!G{~=+${) zERa`1RDuTCs6Gw6A=#e(cHAU5IFYZym76M1S@F=H1_XfVm0n5a3);-MVynHE(8Q4J zhgTEjPXk236J5uP?_y|wQc3yc`1!TW<wQqhWxu8sN0!10n}nWg44G8<i+}NonnFz` z?dXlX0qOBi@<?FTzYPIhp<`O6;YC5V3tWcq@x}<b6WC9iGu2Ag`3U$sHhK~j6_xwI z7$va%g8>9q_SW5w1Ec`woY>WRkWO>_76E7pkivi3+b@#_(Db@bGsjJ^iBcd0hHrz` z>*>E#s?tZu%0iMD;N0J-0putjlh@PFlZ*zfCId=qDr#~cdzbN2QBk(GwD1pF#xlgb zVPnGpj;_nQM(}FTP~6JS>OyPF>cm4|Pwy2N6etw5c5lNDMwWp|F71JM&wcmZHNa4q zFJHg<=HwVAJIe;#iI=-N)z#OkHVn*8&<9({rF}MWAw+d`h7GgB6_O+5^uQdC8crkA zP1vtHqJ>PT4)9#DFZ`Y9@1A3c%mVa0#u^2?NS5qtYRdM%$7tAi#NA>fzf`z?&jv}N zsKR|Hd@xm1Nl<wjUHG4fkEC|T>-Cv!`tw(rzs5&;X`*HIfoAWs;nJBAmbaS=SK#YQ zua2~+UcAz>vWDjoN2^8#HI{Jp<8CFBv0Nmtk8<f)6MipP`ASWDT{pSnvlMl^x~!d} zucHrJGWSIqk8l6OQgcg`h}HXPP=lHHq63dCYD~m@l-YixQ4j^&OZOIDsNK`l4u8qI zdeHFsq@|*|{Ey>3(NDwLhiW7L8cX-D4;uEI>RiAXJC07h4#kzHF~bPKe<CW~+S!jP z;OKCdQ*r)L8+6-VsHa}(c*Vl<TnLrGg>jZ3;4_NtQ_#!qp9kKf>WL2@$Oz^<(}eW` z@!1tWfJ9vW#HGSG50x2AbK8KKPFD^CKhQtp;mFC;?+a;!3T3jo1d@WVW*@VT14ZM1 zJb?5omHI#akByCIgdYDNUx|$^^R46mzT|)Fd6~GkL-F5$)844`{V&&&{3_;%TIM8W z;15qLxFoCFP4ZL!dF@vHT95zlrTag2y~-d($NmbAB`6y*Vnyk-=OzLA!!&6cxXHC@ z(ZmKjGcyY!6$42_P)$@Kxu8wpPRMb@&shH-nVB3=0Re!GnOPK2dPi1m=rmxM2$ZGK zwBxyc?WPvyEm*p-K7Mb<zCaDQ4$vDta=nm_4R6!tl4!qmj4N~4=zyF76V>PNRxLsR zf*7B3yzxR$&!Ewo|Gucayd3eYib>V5op`U$O%I;<s?uJZu4rxS&)6qXV*0F-1>@x0 zYwc=D-qW+rv*mIA8%-OMTP{7p=wJ`~lryT*5L(M^44S3uK-(H8*x{^F(G!g2umV?X z_lt$U>Q0e{pT!4;YuvvA3YT2SVA?jl_R7e@(v|P|u;*ab0o@Irxys9<YJ;S3-D$GG zCVkD5z*B)FByyS;#S6cY$@U}OsdsIs44@7-&5TVSm)#G^WEf8lBL7(!z=S=<Xf5J7 zM;~D?QT45>GJW7RZ3lV6Y4@mL!t$GHkuMBJLKQ;dgOcKg4tc_R%(KP-#RSbcfbAut zTvG_t8BjzXKMp#I8SQfpD!o5on!7$GhAe{o8oxx@8!hJUhhIGrm=ZJu(q)MhPD~ur zmGOw<n7g)!DAPl7cFgK(Sx#<Ft%W}7++`)E6w6`hPqH||p()=%?^(zP1pxuNxOFVU zw<5&+9ykJhvHEr}g`o8e(6upkt{PB!=Z)TrOKZL%v@uV5ZwctW$>y~wY4E&}Ob+cK z<6y1xfJ6C)>P3`TP2p_t6Kgm|)!+A;y+Oa7ZakK-f=LbqB2(nv{fcEaCB3V2#cCpB zBDpc2&w30<$aNLybjgD=a}`VWTS;TU%*?{DKsw~BOeZWXOa=Nf{y-M^>QfMe26=U2 z%t<AY;seBs0AWb)XUxR1>5~KAe0}?fji}V&nB999lVpgX6~zOs`GhM|`dyhtuLDR3 zAOOa`WBGMJFGq;xk%;KHrt(Vw0>tp7YxF9i{#}Oe{;mc@OA_g}E#6tWhu$RtYEt_z zmYmE&4f@(Wr-E{FbaH4r?ZjeNfSi@R{l`EFUq<fA)*mvhuW<sP_3B+3#SlxSJr&vF zI2r<^#lFj+1I^MGV1h9i?zS<X!Q+d$L2I^NQh(0maD=XxSMie}CPOU;GnR9WC#X?C zJQNHfY#NYHY8!Ls&H*)$Qj25uM>|uGYSq6z9lf<aZxQ@mTSqPw9Y`jOC6a*Oe`Hp# zpR>p5exNkxdeNnqB%d*?bv5V1N$5oQH59Y7qN=_8vO>DdjZ51VAS|Nl-8OJ~tnA>J zPBC<^Ggac>HkV&XS*+~|MbC*>+&cW_1SuFY<VzMi@Tfck<o@@T+pA_p8e|CT{uBlf z*KoS(34j*l=o6DhtVT19v^Y4=t=EtCORLM7;|*PGv$yb~$HXE3oq~2?Wr)NUp{+s< zZ@RP%24%#HHRL8efFz(p>R3cr7zM!IOj&CD8%_+op35~ZeB0CExjv0SrDFK!`=tzw zi9ERqZjet-Z|pM}uMrdTIy`_Z0)i}pGB87_hG7E`A&_Pe5h{0XC~1Bjx8IQ@92b&Z zu|6PiIT7wRQ7F~DrOCK{m0rVg`I)<VuB-WUe@>?FQbAL&2s5{W?kS~u8|T;{-b!e8 z+E4EnkFV+)&v}#36<c~g28XA>&NXB(0VWxCb=+@x<Hlo#n=N@k3JQQ1QigsTn&w-- zhhsTs4!)gs1w>AHUc^58De*O2dpkZwChwE;5{qnJ$ie;Eh$olT3!>`1=5pkUqerBp zBcn{(S9E4-$1GqiKLUKP%=2um`L*2_EN=cnm%V4#?cz^@{8^Q=Wj7xx9vevbhJ;{% z0^Wto;`^Oh&u6eYPwf*PXPh(K=bdhTfPQ}fDV%K}d7gc_vcbp`;u%oer&{_*C<wQs zy6Wojl(n3p&cgC)EJ&<pD$RTiLI_{D-Kp5Ix?sEjE?b(o`Lhv)?Zv+vKMgOVOgT!; zTIj}dRgu9mne@bB{W7^#xiMEj1}btyKClLf>?XzzDCS?>D^_Ae3_sF8ZnS&9R->Vo zI!ajGoXlkzKBU~Cew8p{#EKZ*5Nc1mq*4Azo(50&_B~#&VoB!-S;wcMVXc$4yp54G zlB=^D9GWOpIm7<WIm+H80l@yfQlV;f6huiqkD33mD@IY0-<>`1x-9AiCgvF@X(^FK zF@v-zYb>uV<{CXTRR7p8uAdA71b;dgQvtCjw~j`Wby+QkuwAYzM=tlh2L|-&I?{W3 zKppE{5&3+87}KjF@(oz6hx+iAT*X=(z>Muw^&so6q8>P`CfC~ZtJl6b<t2P>IM8vm zDv;(9)$`?x*r$8#44HB#rb^3E#L?<fNw%go!VVQC2flm_Pn-0*Pt&=y*_bO1ncg3a zSOFv07+I9wGTEmLY%YQV#Z)yL<Vi@@0O>TADJ|_B?Eaa%Z}122t5fvvA4Eb^+H%My zed-emrnxr(ef``0oZmwL2Lht}&K!Z4jDSRYxTeFOnI6<U<IPxBTXt5}qG!r|-6On6 zYuf^~DmIMFj*R`FC78gDaucdp7EYLViq=|#5NHq7I(Df0WAGQ946$F><8;dsQj~4z z&2hf;+f>IvdDx!_Tcn}$E?y9R*o)M4su}dm5a~Fm5Y(D_ZtYxx^N4(PzV{R|_1m2w zdr-rRFJWTsvJkQLtrf2W8=9MH2}AV2DZvD`S{&)n;p~E@_TPJyk5uCADU+63S3AfE zRuEXSAdo$aVkc}OzsF(UrKd~2x71x@k$ilaB1=^x_1Q8<4o}UjHvC&g7&Ftsiqd{f zv5@|2c8#E=l&zTEiymZI+R=Tvjn<AOXOLgGU=#SIC~o+9-RvGP-3sb28bhv757JYV zbh~n`H&~n=We=)&4dr0}sRNm76DjZa{SK)P4nbk9zD(oT_x)tx4k2=5r~$yE^M~=B z6F!NzkU)uWO3Rz~_GfNw?Qfr?#8p{61!e?HFg5iaIq0zeCpKbUosYPu&L37!ux-3@ zJKMPwc&{BVfM5k7>b2I-5x1SS)syPo1;4vi5nZqhIUSCIKk|dhf};7<_q$eM-Hq6% z;4CUN3Z7x>SCo}~gTayxK#z7XV)4$`L$k?c_$NS2!+(6x`3<8o?5p$aKuFLpnAF}w zU*Th0d5)uPuJ4l{bqhgoN4Y968XX;7`T??3vOAl-<<%D~X8tWl%=}qHFx$sdQyZGi zpvafu5MttFLjGi^$x&))6&C_rmk7lGN^49<gMWLVJrR@Zuq@ctWnb`%rb#cKqj_re zm9~_Ymw%6n0=KH=v(O~&hx)=Og++zvp`C!3zV_hxftga%QxoM;4eB0CM^!{9As=y3 zDKSZTzGeQxCFaKWkJ{#V{f32Qke@-L7L!L!4Z+NPCJ*mExuKw-)ShI#W?IkD2Ws<& zpHh6A6zi(0*#5l9C^hSM=>y|7LAn0@7f<4wN3AGlf^ev2{0(XO^z;lNv0$BgXa&LD zv+vNg5u{ryyL!)C43>5JKT@=cD`5Zhsl4&f1u_CKWEPE&&CJYfs9Z&t7Znu=@<Ze^ zP`x6#yVyM+dFydc5}GoW@(}VfBI5feC=}%~@(aZuOOq|)@+dI`#kaJUFQ5s2?$E)g z)DPPk^*e}G`&GzAw&6K1(&)}EY!d_&7hK%$_PzLNU;7E2M*<0G1BY8t&|oN_evd#N zPPoMA%||w`n{1Gs>TL$qYYmFk8=Njt`SVpC0>SJASxP;RFy>2t_s5t>kmC6|3~<yX zbq**Hu$3>)F7TDz>%;!cof~!^j{1oZybS2u91UmEc~tJO1F=EB&f#*#nIYmxbw7Z_ zWr(~nT@{0Tn5eTKqNMoXe)5jl7t?2LjQX}3jN^%CLwo6s@{!Gv!S3*|#357mW0eth zzhz<7KU#oP#W$woG<xVSA80sTz@2kHTlNE_G3U;$rX$N-JolS=&NKy-ri!-4e~^YM z&|bHI=<_tdSMUcZr^|yRC`v@%xM<j;<Ud}PE>F+bljrL`L`C@ki{rx~xKvLRy?0d5 z8lZ^5MlOE*NLjH-xk>*qgZkBTFa2|J+rbwd%4#Yt-NV>q<N4qAebL+Y2^e2y)>te& zy2e^3>3<C@_?714bAPKh`{VMJlx-Lw&9wpy8CI_uf!blfOrvXxdu;##A#4ZV3^OsJ zyL_4~Qh3h9xE$;;q3+JgBIiT4e*dE@*AUXDIoM6j3`ij&b;b@t!M_yWpMd-4z{*ju zUXgw%OHeHlcCZyMQ!s8cn=h1XN+n*@vGn}yp|d!Y<@3H=63)cCJ@Srl5ns7gVway! z%bpl%cH=`pse<Y&N|Q@dLKZRtODuZH2Mff9R!Bj!ikkA<j)+^gg(*y#b~B0VEt~Q) z=A5!SDkE(^=d2YG{f!21f%h~I-5S5Z`RQB4!SXZ8w5mc%{)Hne$wLpx_FvC8V;y8e zjo+?Hn|{;F!W3tuc~9{Q;|*4}_N@YCL=>?HFUP-l7S%F`Hx^B9o3|7@)C_mdcv5dp zkOql7=UdiD>JRC-QK*?;dhj_t0@;NixS|lP{_LVyenTXj$OxG{9b{m!dn)ok3W@O{ z`em*2HACp5WMJ48EOWd^0-F;AMCbPV4vA;{wnsZ$W^;{b_e3m6t`9I57g|MrexZ2c zP8j+Il!ui<wF7{Y-WrHMEa0vXh`+y^FZla=r!glw<!YR;@81sri~;jvsSro#1)A`E zgS&?zLIgh((x5I>>oAb*1-rv?{q6Tnf&D+Lw9@aQj24sy8VVE(d_eZcz<}6XSDlx1 z7;YE5ML=j0F4|JS#y&-Vou-X)Tnn^2pSy9|%XH?cj93Xj^M!SkJPu3Mon?Pd<#<;v z35pyKUCt4&kRa6rwEzb7#_v*F6J-}XPcg#00AYF{eFe_c{52Tol8qWg^Q#jS9Nu4w z+*)aCV`E!cm5P+53;j5SiAQ^V)(Ls5Ep=?h!zJYFEh4p;P*RuBCkQ5d8T4uRU$W#7 zHb_KdWdY_DBmB!FDJ(4D_J5+d+%R4wIqR5aImmdtyKBrq0y#q={s2lq@@EBJboTfz zCq%&@(+wJpjEH0c+erg2uQZT}t<hh;1mP8LWVYHQbfQ0j&^^yE0O&~4R8~+f&nWtn ziYJVQ3=gb;Z~-6aEVK+w{eH(V-bvnebo}58c{TtWtF+_foDxi2aRjvOw~&xWVCp(! zQxGnYs(gx$k2mD+pXBoca14_Si`Dt-dS41CfPxVtAVYjkK|!^=w6f^7E`&@cAaZZ< z2IXAjvb=G~h(6&hD=RNCWe@>Je6(imPtDq+>Q$&kZ7-Ycst(ATiAga0yy#>a-T`kY z66Ceir==KOBVkCcd|E?GkhwTWXL=Q`&PVy&Q7=Wvki;kpO~yY>#Itp6OiF!GO5qLY z6ADV*8GcC4$mrhyLxSYnZ~x@-;FU+i|FE--79JDhp*CJ1c)g5VxHaj=&Wd{!&!&m| zRe?tDYjSX~$8Bn@4e~N79>j3nbGbBNAvTXYAnSY+EJf+2JrOI%QLL;<@Z)yoJt5jl z*h8Ckh-&!_%`d?`;?`AuR8(Qm@S1Rq1=nMb+qf(8y?3%ZP(699_AV{yx=VM|*ii=) zGe6TQdqMc7Q%5veqFbd2;sv|LS`4F|gs%0Uz`EvOV>sMN_=F)#E{IaNjx6floaZY# z@h@V35Dg<Ukva+8G$qDq>GEPA%`L<jD0J?^eYK%XT>nahKokT0TU&s*COkeG)8|uw z0#Qw>xZmLMyr%`%c82xSr&IO!uf8YiO~NG*@r>Ha*49V8_`QlFhY+a5C9H7B7O-uM z+}RRi@P_pDDSeCqBC@n#DQeuaBe#s(XW{yvA>4}5%N;CL&zi@!yfVUA4)ekuK{2n+ zS(@hhS)UYQUen{<0WFOVtuLKm(1NRM*{U!9J3`7)ofa-+y_Z+be}_flrtBmGkk_He zvgdOH&BaZ>4(#5O<zK_^<ZrC#NXjMX|Eh3H@F$0UY|2L6L^@|4c9o(@%pzw!t!g=Z zg?9$;^$JUPp@Ti7>xZ6T`EF_H)u(6_<=Y$_6+#qA+Z6<L4egKT#x5UY1u^+?M+mXO z(3=AB>%rkt4?fV9`vqjkv{`zt(UFYft}aBeKYsD=^fAPX>}{Bzr7>B9e@J_G#rkl* zu`VvXde=@POdPj0J4!s9TwLgy(G>yCEN<){+nXpphGh1xf+4kSgJ|oidWVyqNYs(t zR#xZi7tstp2&@=)OkjN%)@yXo-N^}(2XG<1K!&8dj&kev{MI+LZM9(1XZ3UR)NgYF z;6tW*w8qTL3`$}_gY{=W06AfzN~p?V8YrqO@@KfE#q4VI;0Z3n-+<Q{ornU5PT3Pi zot09vJ2MaiAZ5zIRpJCX2f5aqR)0B1{%&3vPXxQU@~#b#K@dqE$iF~)8&>YW(dxy` zm0W1A#6h2|F_z$${1k%+8J9Aqtjbl|ELW>W<_#vd26h(bweMNwM}<?;hS!sZo1_?l zm~=_!?`mmK1xrMv+z}nTc3;U&wkEXYMz-UE@!}~+Vf|58-7s9N@aff`Xz*0G7W#+} zrHcvz<yoZRJObkhnGw%aS!mnMu8maa57xx(&V)2s9iM4vJ5k$i28eb~m3iPbh;L}( zBJxEz`pa+pe041?Een4e`$Yjs$M_gidv*p7KZlIhg;-1<<;+YqAxFtO4?a~>x%6HE zlzA>r7qtsj%AY|N)n*<W8*c(B^Xq&V@xWQkL%-MJKu(+I`4c<fGXlC}o}GP(&Pp|* z6p%=G4?>@~iW?@qdLt@OGd)3d{_bF|x^{VY+^cyKqznpO&#X3{0NcR>Mky=+1zUcH z3l4XG(M1*?9QLe0@LxewoZe|eeNkxHJyA9E=Qh0>#c{L*1&T+ldzzkz(4Lq?oHlG! z>b#z;#1|KmD9AAIRoX!BLtHo#z_k_dxLTVie!4go!%rh6WSPfnNRUDvhtDo$I;C;% zk#q#y8A(qAo?D@#e$Tbi_O`G3__4If3EOG<8AXPprLyNGrJ2%3ube2nvFl=uNbl;p z)#1|SR*VMkb9)fl^_wfkvJ-yygAHroEX%k4)SDghEaj)ySHA0X0D>-}&syRs(J%-L z5iHG2wTXqD$L^fHY?K(XzOZlj(ZWknYUl054&{iPo4>`HAmYr=YMB;bZN%3TY*und zp3BMsx&;X0fDEqRd8<SbOa=xLV;~@-;eANPP3Vshq6|#fmGHU<fQSWVn=c+!ZO3vM z^Fog8UqhTHy6MlkuIdJjJA%o$&?7w(z41xvTV`emHSKqQS(5P9%$*KLv<EE>j&=ga zgwgOR9Zo>$`Xv0B(-oawp7FuSNi*QchA%3v49<%tjI5SMQaJ5+p9LB8Ka1YB<GxUM z7Y5w_i(|FNMw4Qme8|Myfq+*Nq!M9x<Fe1KP~D#2E2izg(2K3|<>&TLZQ!9{b;95{ z=hYV<WOI_?g6un%RuA#kKejd}MY=&9`V>=6k^u$bDn=>`D29Rx8`7eI-dHS$@4tGB z`4n1FtNTc~n`!A9xa^zCsBqpX`!Heb9=Z$O@+7b+{W=h!@AN69W2Jl3VtLN8xUKDz z*MEAx2Y{LFK+kYlIlVmLqDLX2rhJr+gQ<vIJ<Y)jR?2iw2^|||L{jutdkNGhKVI~L znVrn;XfJtqZu_Z#5&&%5KM%?u=VydpJ`6EFQE~r5fdiB$sfwrhoSvIfKlm^RzGp)Y zS~swbeo6Ie+X9M+uA#6*0S0=QG`;(K+mi9>mWhgTss1n$3Bssz+S>L5j8ZWY!><K* z&-aucI{gvIf0#j$9yIlqaEc=%Nbwqeo}=9|5_MsH<W#W<1RgC?e@czpamMmxFd(J2 znh=Bn#%q@d3Bq%Bhe{OiD8moq(_)-$Y`qhg7%rnPkQMi@F_Le+WVe9(Xb?^Qbya6) z$Eh@%d0|sa9QIwXRIgnX_vqv^&~;+pP{?nX@9nMmqOPK^mmH?tKL@>vhu(@X)~h-0 zr8|UdDL2{smG%MkePn6rjposYoip?UH4Ag;b_~2!XSjegm~naefK^@Kb1uja`STSX z0;u{Lh_T=&m1a{jbBIGop09r*7#=UK^e*bR?Y_eH4T#aLAV*a#!Uv721V78;%If8P ziRlfGPG)c$P_F~z%Cq;#USfEs^m!@5!h|G$Sl{Zx#lHejiwG$4bV?H&R~;jka91zi z)9sfeC<9}bi7ZC(3^BSJ=K`soDbP<|W9`#VN2%PxKrGLYZ9n=V_7%X<ae%*Q`$X!k z+kuGcIWr4rH!Oxu#(~}GF&*HhDYwS$$A5eA27Eq#6isyJw~V)ods`+}$!jqJwV&XB z#^%TI9y@NkUh!jMe%$}qI=mR^0<x3m6C4hq9!7{OIa7FfVLTw=y*(;lt5vM-Ot1=N z*Igyls#7n#KNK;Vu4J0A-$!mbT0H<zHf5rKmN=y>W`5e-ncf-OLbO(l4F8nOv$^i$ z!(1B_rrn)Xn5X8Gc-0!C@V8p1kcebHA1`W1E~BRJ?no9&N}0thew-~v?^DtJh5dsk z{&#$IwNe6@&ff{j4vl`jiNywtYQ4vF*f+Qv##@ocX46#!L^b<=096MW!t!(8`D<LL zc^5g{zg`@<rj)#$>WwS}6LRheE4xC5cnezrZrS0inrc6*gV&8X_=<i8Pz4Wtc=-<X zV?v#`_`Mp->_8iy!`9e+a8iSA{lau6#>o2INlucLWf{3_mMOL-Z@W@SP4-?6PjOEN zCuKxWlu2^AF5&D6p#C|3bLTgdvxI<30NQcPzT#-QGCCWAMXL|qZ^H?^uTQ@LUIPR^ z#Er=mnZ49pT!b>H%(XjpPV2#C^@K(NzvnW#1vGREX$;#MNka%~109M~U$HZgI_?WJ zk2v3P+ARM<hNEJ`LVA3Pqz6V({m8bwv;9c*{&b*TG^8J%b8w_=isaYfCj0o6T@44P z%d&py9zsxASN!ZhRX0Zks3}`cbLq^s_JR??h9LiYg?wNaE<MV4uP5fASxxeG4Lp0f zKv-n=CKC~QP7SY8^Tt$vR7#MHsWz*kQ_xmDLn@8**D}SZEY|Y&a*cZ;KDIbp=U}8M ziu$xOz2Ezz9Ql<9sA(++m0Z68!jhH2tqg~LlP?lqg##t1+zfz}hsj`>6(N=--LpW@ zUnr;BX=l9z$!p5%PKU`PZe1Q+Nkz)x4U8E!y_UIAJD1y#C$0PjgJm%{<)>*=J*Xxj z9>1eT__L&Ea&STSZ2BI7VPA8ee_cc0jDeT(G@xqo&ArL@{-zy2tG@1cs!NpEr$q=b zrI-eD3D6_7E}qb)Z@??ESd*j%r0J;|+tHx8I8VpdxVX2!wdg#b8}<pq!c0~=G#w!u zuDDxv+>esE{EqZ{Q-L%egvv^j31#KZ&U%V9#><yTJnTztn{eyhHG0U0q<A*;@7e$M zPz-71j*nHc0ueZR@#TLze}Ll6+lDfMj*WiM?I#jQ7=JlF9m|I*C_4al-)z2$0J5lM z83xF-_h4n+lz3{Uaoo&5#tM&33`RIn_A^w4)g%njP@lGge#K=&p7HIQqTSTWwH}cN z`&^?`ALAL?Yg&cVfQ36(BZC_>$S`~MBP1k<BMuW%E$mV=Jw5%2LFunbvfAE0rQwh~ z&~SAwK>Csm+&GVJM)b?&ak~xQY05QOvx7|Fbw)>;$2|82ygsMpYInBsbA>R*Gt!sH z0Mz)mk%NTh*#hMWjLjCxQY}l}fll<D52*-|{R6`Zev;s+z}=UNdr-m3=$(Y8>&{O6 zx%{blr>>C*>Qm_74}e`k@HL|pFD7P74wvcy5s!!f1;~#s;2Te4nT!)ZKBR(B^&*P{ zctm}kIifV_TV}I6M;6l`9TeF}767V2pl>`r{{p2o7)z6e6je}w_U8}Ax=u{DtTt^_ ze9|>)X`y-+RuBW%%b#N3h+&hNk#7anHx)_+|1N3U&Cm7P2LwC=!XA&VZqX*J=iAt~ zfa*!%2S^x!IEQpk{9fL@7|J2wu9?JIoo<w*wYxTe<jd##XJZJof}ReGn@dPd#I3dl zEQ)WVzEB{j=0Lh}Et3bpy`$gzt9nDZZ?*e{+-XW8T`fVJYe!cR=-oASaE!wl8+Tpl zrlJW9MIp^BO|A8xp8`2Q0I))_JP~)$=tQ)~Vad%u@8C~1|Lu<%;dbx<WmLct^X|-+ zlY*a(1SyJV???^TwO+2_JFw%pTWFVeXHB4-tN=@Nz!kV}zM9W!tv5oz02v;5s`2>% z36tAUje)CW4Pat}JfI=#!%UnwPN+o*996jkUq0^(=k&<Z@s>2R#NogF&OBV0h>@7t zK_r){zXgBzzt=cJZ?>fH;k}XA=Y5Sc?@XFbY4S;nJ0ILQbWoksS(Um{JoALsYnLVi zRUYst0SFoj0ACt7r(@T-)$P~)$w8o~{`%eDr;rzYG1?Li(yw1Li7KBhTK^m#j5oQB z<ugk!k;=oW6M1%P3kYDV!@+`BW{b+{K_HTjY|UGfIHy*?0SwWHm<;3+^|T-ICJ%{- zp8n(E`1s==56AZ3n5I8Iyx1{6{U3^iJsi?J2RYN@P*RbcYV+X6IY!mY_dsm`>8hc; z{SRk_vlg9711D&wVEF#Vu{yX<LQgOM8Oiad-*>HVGE!yp&>vU;RkoVre(MyrAjX8{ za3;1Yt1-n55A)Vb6ZwKbff6`wbbI^TS9hySU`lX@-jLnsna0Lgv1DTkQ#2IJWd((p zo<-Z<Ni(l7M^U=CZALn^8vXi%d)IR^);P=!*FT1N<A2cF>}rWY=rHINeYJlcF`BmW zc4=!lasTJQWflRWA};o2124-d(Zj2S-~aaEXl107)zmz98Qq(@rsXe|>s{m>q^>Uu z%J6>Jz{^L+?Po&+el$?u;fmdsLbH#Qx<;Raw&wmG*g;^77i#Y+DsrMtUt}Dd>nhEO z5IX?a1a*#n%NUI;%2lKcsxUN&)*f-MLaT3j*u;B<fW;!svHeia&?osJAVjpmYW6k< zmZ=}8mnUrlyON<Pck^wHjivcA4<lX+E_7E{zJ6V5GN-JZje+SqHOX-w<$nj7`7!7p z@gtBv>jCZrg9b%mh9^IIJ5ZZG?F9v7gbVP;58pK7*1;3~!tmOclH;PcJu#gbi&|;J zDPMD1GZvqnY~A@xuar_CgzfjvQ8klIh&vkiJU$Kb+SXNC0<aL;QvaC=h(U{lwui2@ z_tc-DJ{6JxhNAZsYg?ZH+C3_K7|SoxuTj4SiUNPyr&XTBKKKCUFD(9-3rg5KyF`x6 zJ#t&6Xrj60^M^5Eawekp$S183j{nsVV=##@*n*N3;!e%)MWvvz+fe7a-;@`t-zJi> z%cT<vvgv>`vYu77B(m5fV#%cy*F3^xCugP6^&a*ck?vCg@bET;OP}}T8Z~tC$+bIi z4ttjflOfaGZu>=gJbhrjKNHO7VbAX-lPNvQ2X#u3>8@<l>>5fsCaJ_Cr243WXpy8m za8Qnp(Lh=NB7cv>`{&hr3y+lu+&{eHWk%hu*=Y{0MYG->;PXBOZE%1Lod(=w&n|bk z2A~%Y!MYZ-5nGt>??4o6%H#}mnh%(O$%Pm+OuNY36QP>SQ-<EBTAi-ZOC)j;33f^} zM-jJRi&t6B<A4I}#qBa>aLU=6>YX`nFy$<LMafwWiu1C<_}Ze<cmWs4STUkSfG@-7 zCGkJLjIvnq64h?3WYRt5Mu&%x4?vi(n{94%qv8(Yu6(gF5~9ox2wKQ(>yo8kSenZ? z4GISGQ7=5A_D&h*)Of%FWcdE=I)zYPGQgApSg=pj*BSFG@q1DIS$bN4b~yoqTEKM} zsqS#$%OPWX>36@tzpkDUEbo#3u<h8B`tg2K&G=R%AIRRHpmW$$1**thvIS*!<J^db zQmJpJ1LO>WVRopYY%?vfK|K0BXX7|fyLj#==PDP|DKaKoGCN_D96$JGIQWvJx-a4+ z@iRF#u2|Mk{cYQ3g%i%%*s>j@t5070dQbC*XUTLWh60U(TLxEh1+Yy3ZxNBZ>#5W3 z38uN~a$jxGZ~JQo$nC+O>GiZcxN@4jPFL<B5aD10sER#+<@4!jfA6B<SJ1Seb1OuR zNyo|)auvg+WI2b^Nc*3LBYP%SOdk<pFqv3ls!=TK58x3IK2Zb@W_H)6!_;_{&XPR{ z_3D#wUrE=*BK=ks71a_XfgnOMfTb9nm<eU2ktoo`-h{~QF{CdVZS7x#NcpN#v5G2# zfu(Ej0H4#ryC*<-j}FPzsNgPa(^*2+2UP|3{i%>pb2YV-+c+MNtAi<Y(%`<!<1`GH z@%K`$>zJvEO?TBOm_JMobvB?45XeS)da7zQI=eRttl|deHX*KFO0&TY8T3l|)Jpw9 zQz~CRjTbY8lbS9l)cG4|yaLui&%gaI@dc3%7WZ82X7d4=F~>|6v&U#{<V;%=#l~lx zeXG<Q;#&e>Wj{~W@1GCqn-_;qtkWl~++~P7;dR9X$jRmHY$k{9o;v6M%kWZl!bLBj zFBbDjED(Ltavncg100l?zVGnD{MuFqkU_^b*&!#3bVA;H@@dxDNN&6UHq6quix5yt zIj|-<o~);=voi|n=W#?Npi#Fp4Uy(J;recKZMo1fLf3u0=3(I<2A7Wnky7oEsROx! zm{#<-zxw4Ka6-LVq~xdUZpU+dB;CwYhml0c^ilc5h@#8Bi9Jk2S5z76m2YAs!gauH zy$>cfOv$x6G{(<Pk?;#DdO||GO=L6glHD;%fiXr%@;8oq&MmuR*XWkTmmKY4^ZSFE z<bp%>Y@aCQd%6To#+mQId<c2&Hn0#Pv{#5?38;1q*R02E-0CX<ME&BM;eht$mVNGy z5)#^Nj_%x;68(mo_;qtf2MS^h{)_j#J|k;eg3V(1uCr!?E6jP`sSj%A&ExIJwmDMF zvpCfty9d%HB8Qz@Jik!nbfcwDu>!WJK%RA~+Ns{v`<y76u_Fu(f5m9g7_ikC5EQ|O zIII6*VL8sEq|DJ8!;%Y+i+c+6SzUOjZsSEPC?3aELYt6Mtu^`JINpb#J|(CajjBL% zsl8`+J6De&-Om|FhE}&d4gd)OgjfKM=nkBS;;#-S`h|JF2c3dI4xmk2^)ZkR516mJ zYR=U`)uOtA7^V8-HYSQO!d6%M4W2H3UG48e8e-v&(%jO5gqrn02o-Mx3r}C)=V^w> z;&u1vp(x9(w4n!HkM1U~r?<KJ47jNqw=8Uo%4(|gC!wrYCy{P`rpz(Pa$$_zODDBx zMhj^~g@r}ZFfmHE@v4gUO~_E4v)qp#K55po13;h;`XaWKUzR9MtU9dS2xaE<4i_sN zPkucwkS1lJ3T<_KP9;c(FBlj8&9ZSTbjkY)82L;7S4&L`JI8-X2X!vvF@PuE8Jsju z9xm<S!p%Q(BY+V(1{2!+bKikJ^=~MJd_lse-FPpr&67QlmYJy+oU(^itNt%ZVPhf- zo9izm@uTx5BzLCE&RV0n>gQ(W=GvBqew4>I7^=tjB<ma3<zVgW=&Zaq7&+lJ#wvz7 z?b^Jq0Te1^bTyuGRR;)V5V;bN<H;Wuc+s0iqw)C^6&04+B?|~kCHg85Rewm6PnVmW z*qF$JwZmWE)_iHa#h)pC-(@=K+co{N?!@jU1;!Irk$1PkdDmEBX^;}`-usoBX4fI` zM|yjSth|^$8l|bjCsFKjTvY7zXOybHDAmr~i7NJIlj2-GJ=JadlXju5btUU7!*6T{ z`PSX`RRq@E8iT~A%a3laEfW}ANmM5aN_y<h3S~_ue!ZsnytZNF+;AE_mt5CiUGptL z#`=5{uV6CQ{WZO?2o_21$2T1&!{vBKj541<`&F0PUR#r?)JA+dXud1qobjk^e|T)A z#<n82(}jOL-(6+{tYLL!r3kAtv{aM=FXuP&>iQQqCd(yqHje`jwuXYndDrka=OeUB znt!DF3HdVnBy`hsq03j)d&*q{-NX4+0wyyQvt{!^K|X=;o#DD;;p>&@k5C>N-T1#I zytp%Rc5&*`WA4^tHa?0yM|0oTWh4#p4;~@Vq*sL1RVifKQP-~@JDN`9b<Xb7uyTIs zrq0WkFKft_B;1#t{1f_ne-GuFB8&PTEdVO&ld<RKv+7Z+NWWQkx13Ba!lt*J68sth zpANduWlbmDoSx<5!b;zXM(EQG-_JXjts0!ZSBj!pO83``B!rtdcVHc{=UPy6?1pwJ zzIhy(?Lmq{@5KHArbxA2TSC8`|Ke}@OQ|c`uGxqSbjBrePbqKy3rfjihKR#Yd`Ej2 zu+y{FM%B8vf|2YhzIrx};n3XuEOxfdJ01b=;aL6Zdp5{DyKqL?RI$ySd7nWASbTq% zmeL^iK`RWDRFt%|y}3hfD|F`bWpWx&S8@6TcG(mTXhq}a-O~Xr5&>tiZ6%KkS;|&4 z4JG)wuW|oX%E`hk?8K}SGcX`T;ll^7{uk_LdIp4eDY2;sL(=u#Dy|^5M<qt2H$y!A z>U5BHm=gNMB*bJD6{|l9en+dcE9c--k}xZDYj8&`>NaJL!zBW)O--^(r`eKCS855W zNZ?SXs8D&`A{4VPtFNz5O~wATv9ZyI|K0io08yw7G~3r4{sAFTetw4Gc%OD8W9S%> zMn^`>JGN_wfwX6JbJKW~uSn06jG*0!Rdv1B6|0AqjZLyUj~W%@Y1vC2wvy%0G+-yn zGR&l<;Jk>~<8Y?T$$ZDd(`nFWW@w!?=~G}mZ<`q`q(LAjD;M?aS7CFr7kNpXL4}IU zFql7g3d_^sR2LM^=vyD`UEF6xhAzRVS>)Do-@W|PO23lz;OmBs4y^LTE-N!rwS%`w zjLBG4wJt(7LV=lXr##xZss}ga=Q{ySvV=@?>vM9E{j3Yi--*Bfs`9;oZrZ9^Sn4Se z3W^8|5jauN?76WMh6IX#k=FVE(G7hd?N+C<sbYY9{TnyI2u8R(($~Wrr!ca=%(Ja) z&1J&N2W?fm*u1=g+Aw{2IXzM!9$C4q9_?_3Sw?Lbn-Vl<neJgECpTKyy2VA#*B?Q= zP-~l$WC;Z=C;3DxS&^-h!0ad=A79*yhTND*!-3>T3S?vy8qRmpDBd6aLW$+vKBYf+ z_@MIgT%gk7w&TI^smIDP=gV3R`ZcL8?mwfWf;B$~l7GSEk?tr1Z<3l<L9^2K39Tw{ z#jV$UgM!4<)_2AimzQNXUa%<j%+G6NSx~F|J-L@HXN`evC%l<#!twAxj)>$?m07K> z2@6^VQy?4*6~XGLXABPH@h$GCx`S7f73a{x7}P_yllj^;2yWfncNK%dVAuQno~IYU zocJ^CMu9MLVpPu8W_8CC>jJAjQF*X)_Bvnb*~#HyV_^^1#AS(W9IE&$JV!>G6KLSQ zZ*PEj@i@zJ6n~CJ5vre$dD!xRAy!zy`NEUte#Wj@E%QU?BIN5A6w}4qcHc#(sq!2| zIW#t$l~lM4gtB7gXYO^{54KeX67WRjAopUDq#n|2F?6Go;xXIXS-nLmO2x__1yN2E zfRo(3!=+atO?`S>MFR5Q4~tmWp85i9XGi<^lvGv9`Cqybn4NkBIzJ2eE%rS#f*j@2 zT%n6p_7(Pnu3X>_zT>izUMD99%RCL-mkPTRG!E;tWwtc~!ih?tgrHEy%eIH~-=BSN z?mB3=E&pAVv{-ifgVOjDTDOa|g#Oc=<d{rqt4JH)Oc2Tb>tO|*WHEMmj&X|m&tD)A zB{J}X{^#*E<lnD`KyrjfaR28iFS$3y|9)R{UN|fA|2(%i_9gzo|NPI&ghKM4qk}*= z*&?$4=P5`c;s0r0S3{%$f!ssi4t$>5AphrwdU@sr>Wj~BkgKzSbAh|rWLNg^pXc78 z&L98(^<@2jy%acn=x3`<n}1@*H*FA!%Gya3qM*M_TUw!lMxG{dy9>8=NDOsodNxt@ zJ|+fc9omdx<qg(~>B5az<*clnSvLz-LN=|gCtxp84<o1Hq7*V56ngiDWpwQr%%Cv3 zn8F%6hiPBk4i?40Zcc*Hg*w}M%-A)JWlG|~UJ)meEuPHCL@f$Do<3h$68Zy!0~tyM zN}{WX*i8;=Xc?UwLC2-`wss9~96Sb=(cFr4@<86bUD2<iGJ5iMW!G<c-in0F41--6 zR=6sX7}ij@Qug~cg@=!l?KC3Bm8H9<XXG;XoxZ*y0XN?p7C9hn>gnmBap0ng+zcFu z0%9tm#4!1<Uk51rmB#EjN|uXfsUk(!$p<vgJgRGMt!%H?5-eGDJA#Qc&=<2ExU73u z+u{$O1_VmIyGr(;Jp7Xty(z2v#q~U$7N)ecX3cdy6Rw<F>bygep>)-!%{VZyExSVP zx_%s$ybrP9Z%XPKfv*=2vP^ej<Xvq{R&JLwsQ-1yK!ZR+Ii0tH6^m|V;)FBq&c`Cf zzKSAn9ZfS_6Qmljt?g^$(Gu128=j;P&Jtm)ImhuBEL_7@#soH<8;aW6T52{ng+ab~ z(GtgPouo#G)<HrR<3O-&;S!LQ%&?gn{qcVdHgN?9hfu_q+`2RtBX*r=cYYc%Nix^+ zp;L#=o60NLX`P_{T$yQD$JgZa$ee+9yma#P@vI{WB@R(~qGGTcMNPgtBXI;QjjGG~ zOKIsnHpYtag8Nhb{d7)h^9M=_s?DSY%Z>0gNk(TCrBMVj1#9c-s3NbfV!=EjlX}!} zvw}-=%5DGDLSt-YHHJdeFN{>~{`H$*;o+|<rs<@lq(VGB{XwS<^2qK?#zxh`>Eosd zFi8QZX6)6HR0;3zw2)CAsaM&Mak?pohYxR!H5N5qYbPzdWG^4ucjq=vByGHhf;E$8 zc>j^xZ6}r@&!Rs*p4Z{WjW{lEHbtI-Uyl9NPVIw~$zm0ap!I>uJJ@BI09eG=TgM%y zE=Py#?C@KcO&iG@r}&#2x2Wjo;+9+20?7h=b~v@kow?`!NM_!s{lyd$0w!>AsqjHP zMDJa<mdlc(qOwF&+_Ej3uA$$M?s`}Wt6aJtTspbVPP@p0<^#T=ajD~`lLbFgN&w<N z8U7ufFH@91?;JFHA7OWL@f4g$*<q%#o*w4>C5=-yo1yxn!&>Fy%1S#7LM}y5FfTDh ziN2zKfM|7WlV$62Kue)OR%K;@%<PsI+<1}MUnld~1ZdvB{{U_$mvnO?jEz%YbQJG_ z#GoN?#8sO$0=PKDnP5D7mD$V}LHO=l$C~e9w5^>UsrqpD5<X9}N{_QSTE0r%Nz#P< z{>zg$^BVV<+i);4ek6xworZ@;jh}yk@WO$S&uO2Jkk=$Jx=3AP!*Zt1y2z~o76jW9 zJ1dz5hgnbqC(16|q07q5&eyH4cBvUuQ_{a)YSLaGNaD6#3x+zcMiFV?E^6lec1_E$ z?w!FPV$&TUQ04ZlZY?vAP)}5?+|E3uZ5&Q^zh=9P9JJ$S7K1{Q!TKGaTJo09F~ATF zZASyhw4zZt6|5-Z)8$JV&Ei7)nXI;^nCF5s^#oitB|WFR`DCm{Z7)P4a&r8{eEkYQ z&o`IT_Vv}(O=?k-GbhlxymKQ*p%<JKJr+-Jed2k~G69wbgV9q~*S1tQT&ykw18FHb z&riFaMy{@{Wjnew8FS$G2uR&0^X-skgeKOvCtaT{?=&#5C6_z$Yi=F4G%saTEnl-m zPzY#hM$xJXC-FE)Uw4v5Q6%vZq~Y(T$ew}*=4N+^501(BJY>yNJia>4DT*8$dZ=!2 zL)7EWCo+xps?p8eX_d2X8LQb?<FZi5+Vjl3f)pEH<a!iD;_YpxuWCFfagLiHVW#Pu z6yhWMy;ksv6l|)g&q!vg6r`n7_kI`cg)pEd_H9<IpX?pT#B=GVTa?JDF<D!0&1BT{ zL{S%Yk{YK0KL%pOX-eEH*No?7?IaSP62AY!vgVe@Z)w-`JCz)o8H0{CI*~Ft<7U8| zFxGe+Wa6ac?$_gVa3BLaJgX<1Ixl)4N-xUozE+s7t8?m7L%?|L<6(hw1kUQ;wXOVl z*YnNGJ<F|@YeIad_f1f8@(fncBRe5REdn<sHn*nEanx4IzS3iD&x5HAv7lxuO^S;L z`DjJ2ZhCzPxeXc`lW*f}Y;17xNHQ*2_+>6_^z~T@$G4MOu8d|RFx=O7O^<j;jfdqW z$vlSED!>4mJlmQ{d)Fk@h)gh*xnPW*^0eKMOg!QWgS5CTGTZ26=$jA2@vM)nKKt}U zF)9Dq!zgsDNImDW^UXr8E01}UD0;cN<{JR}$J@ekjL&k&@<Ah&8JJ^AUE{PGXj%aV z66)^`r2I-OBxP*Mz22)82U)^37U@XEJakgSaY5VN_-MhODKJQCD4+5ekC50+ban>- z;wsy7=xu{Z9wL*_I+Q(iF)UT2SJ67B)U>`90J|6rPEv?zKAYQHA=PcfYI4wJO~~RL zDBQsDA%Ze*2K?ZB2h)}qfqSZLFr*GFM}-2Hst2PH5fQ7J=|9-rYUJ-IZ*ZRz739=4 z<j<N+j%3is_ZU@D1a)G%N|BP1f@E~$9=ey--m92voAcHz`t*1WZnyI{@4>de)R(b_ zO|scS_~>Zs)jnl!(`cdd@#*kI_(aTXE$Dh!<mfuv_)fjbASv4Y90u<6U8v)(Mooxt z#uYkox>6l4=%!#+0_Yq2y|Z{w?#e$iC#_xHeGIv`Kil&O?VzVsyie^^tBLsQR9L&^ zXJ2=pT#rYLoBO6SbbFrPax)plQ7pos?^5=mZ}89-B^t$a7y+o9vRYldTaA^NXw!kl z;M_w^(2e(@f4g8bO~CVNa@Qvnm7HAs&@U8$F@Aw`wdM9&xk;|r?4|p8tExTN%=#M= z?k`4Nq*}+7)YX?Z8V3LtINxSBI(r*Q;(^l76ZWPv7iK%TP^$?Vg2A&o<jw}xd!6~6 zHfs&Xj;oY@#l~g|R9lP=$*dr_8Bi1#kNEEWz#hb+`yGMY8McDizIwA&8iiuzw4v1p zzqx0|4@c(AU#h|c<QU<$WjM#0ITg5ZIwM5qYWxZJ5?;I-c@0;Z!siW;;@a@%RHi3w zVRmckKft~v%V_5*CuitpF?tIHNi*V9FgA@VX}~v%Ky;&KqTURgOqvbZk3SVK20Q*Z z%+V7zmJzeYaG?s==J?xHC6~j~<Sj0(pB}SEG4_po*XP^k^lFHJZx&tQu|h=xLXA5L zW|ad*gH<;(1~I=X7Z(@eeOpH}YBLp<O%&qhEyK?RM$qQrW83a1Mu59wpGU&yU`!lc zgV$^n^K5ONaaU1_rnR(eP2cL%LoGH{*|@0`fovdOtv;KgyMJ84aSp149Uji!D=IZO zw64i8=6@Jj3BFF>K(#K2^#%IT;bHaVeht0a>h5aRW5NaVB!OkO%<O>+^$h+CY4~mF zKz4mv9*e*v+MojstF{Y3CSd1@Zh7U-Z5rBmwWcN-t=fhLQp}A2GUJ{T6>gWC&t<bq zW^K;%&e!G>j|afI=mE#UR7Oy5PE#BlQE9p_KzP0+FByB3cQ<oa(~rQdr$ijaV~@#9 zz}c@f*$r!t?lfaJT|AI+DN>7hKo1AA!f{FQ4Jst(=jV$?2Za)AjCUQ*lN{eIyZxf* z2Fd%aD@<Fm&Be(nS7=mt#`D0cY?aGq=eNN?LWvBSTkc?!x^gN{zMx3xmN$qWZ5N_f z&c~KE_O&mLYHRE8IZ^OE>t)T!%=4PPAX!;i+v}1|`BGs@t6N(%N=iznF1vW{_bVt_ zhI+WFq?U|~39Dca-O7<{Qhg2uzz{TgIT_y>#3ja+*SbR>386^ge6?O1b+}?qbUg2c zmtrAwW#~qd)aAoDN5gD<W{C<cUMvcIGC(eeQuHw<*)Za2W|X}Nl8D8xkyHXma2~p0 zR)lvCs4Zp#edF2Cq>25+u)vX%>0?&2zDMBH7Y`%{{gl7C6R<w|MV_H^ax)tJqu$TY zZ(;X3+C$mVT8)g;?lXWuG8)_h3P!c}KnBHI_>#;$6~%Fk_I(lPEw?qlqF`F^ZRqDS z1eFO?QWT>3>Sf=#t1M};u*4%+0K`4rp3h#njK~13i4nLJ=%kBpK(7FWe7)cO)*CKM zSK&#K8DZJ|L$TW4s1y>Ey$*vsDK#}Q_#Vea(3_N1<Pz9+F>L!xlg9zUunh7}LnCl; zU!=w)yDIi77T3|tVsYf~xt`^E-rsEvXZST<@9}IO#!sH@&a#2wO!oT=8Wjfp<(pTR zLurDl<$3|3WCF!4-j55w9H)35M~iP3IW=a}>HO|jxtdKLGrz4@s_s;p*<|KmL&Lu* z*%_c})#f!FC82Hc5tVMIgjMxFzieI2RZRTIqo^_-SAY98sTxyGn-S_C8lW()M!Ow} z)q%_X%PT`af;i~4;Xsn5dvX=vW&T1HUVvGSQ3uDP8jcgAYV(>Cg9)A$aSOnUPk&vk zWr+#y2-)rE{y+_O22E>gpNwmlm6E0cJ*QX@cef5$j1~~72f!s~%Ybp(x!Gx#i;EM6 z30S0mP2zvkeRsLjb^Or-<t1Ws{<-+7%6M9xWTtvTDuE%H1?Y@S=F6SG*;3K+sKJX= zazxau1|XBN-sKiF&ll4buFd^YR4=8n)zL?Es~RXo3(gHq=F@^e3mVb*dV0YU21(ib zaq6qhu6ARVdx^<kyz|@1!5qe2b@J|2$2!5~yAsvDh2rD26xXdE^y4xa9rZR&^}Dwk zSyhg!4d2ni%>+o8^5I*!_SaOR-T(%HH)5#7<eNp}rdUk)C5(=_8<)Ejf0^hL7{yEZ zdcJ%K_!g`FqHE&}1g}1zp*fljzZ<G<ax|V<KW4SwvJ;KgYoq16-pbfyIi0K~xpF-x zb!T5k;~QU%q9u)Csv&|SLY~?!d~^?XzcFae!>ZkrV{+Yx7Jsv8IODkZbHZ{ibMhL! z6s4<n9?A0BHKyOjpzl_e@pL1ripWFpbDOj1$XQZ70`IvL+`Gnu_U+YsQ`B+vD>im+ zX$gqK@;oCOTNAh&yI!H%+WpvCxJqjR<tzcn>vDBlvBoS;mfP+kmm&{XfoYVggR=)> zixLxwllWb~!V8tNI@M+;Ap0y<{^b=F3iZPFh~Em`XG!g{AGotgtK+@?#kPdlLb&an zRbIvkkLN=rgQDptUH8@M;5}eyou%5HEKq`j7Fh+rKS)i#yL<sg2}M6PQ6f+Rut&+r zpAy*oHf<2!S7oZGr05Wx>~W|d1Xx&=Y_Q>(4wtWTJ1l1c{w>>`Uy7|jNx=sVYrZ{7 zrhKf}qXPZ`e2CoiNY=?-sSNwPWoR6$&<cNI{z0j96oY-xKoXDU$=7gJP{#0i^teE> zcMTb814J<I0J93lj`@VPPn8?%x-;8`g3bOH$g-paQVKB5$>?n~Izv<BYs-<<<kn8R zC3^2l)C#g4_NEJp`CQa;b_JZi3^t5u7(|LznaWR&;1yJwNDhlG0sK*<3=?ML9qlf^ zi+sDfy`3?VWl`pl<5pX4<LEdVuG<+zuT<;|Y96D)SgLCAF0RhT(oGAf2aGZs;(r81 z!txX`X5$aoOyx%#z5R&e1)2nEcBSpi3b)3qD9YGxulz`VpOZQ}J8w0owQ{?ksehwz zwVpjW2-jt2JH<fpHc>3dcYjQ`%Hw{PI3qAC^j0cG<}|;ChLW=Vsyqj<62B730jXR2 zSJdP&%A>B<R*koe6mDuYX4$};qCUY{Hwh+$Iw(}B6};>GJH?p>2I5NBGV7xz;REn1 z*<?8kbL1$!bOWyCt+Tlb<N+*@AA_!n$d4{)`CpecSI-;|deqj{Z4S(CZ~fh5;dVPw zE?ZGHzj6;685tcf92Sh&(L~@jEHbYA_{%zz|A)P|jEb^--$qd%<x$EaBvnefLHaT1 zlJ1c14rzH1K~g|kK)RbD1_nd~L}KWkp+N>_1{i9{_nP1P|LwIu?6vk<`@{b9epK;h z=DzRijN>@Y^Qh2;We&xlD_SphvB$@Yp%rhtKMH23mYa8W*bZeD-6Wx!39`fQuR9{! zTd!ZgKJo3v4IYEqe_ZBFc2dtlm_*Gt*W?7CI3gk=x8o%-BQteYlg-$kw_F_;N5&AR zX?2@{RNW%wl!J2|+zD*?pGNy#*H`g4eyOmUs_PUw5$v~EwDed-Kj6qxt^d9@K!#9x zXIP#_6Y#}#>=mORlclhCdCEn12o*<bOUtv8&x<RH8PUnIA59vaTSH)P1ZI%1Ux|S! z(zXps;^Ix6+n~?j6y<%<c64cV!Oh02KJUAuvr4?>v}?q{TkY;`Uh_-)?e|f;k#^ie zHmm^ZSE~~rdB?<N<@tWEwx)o9QKNGNIb(m^Vzg{7TFvi6zjYD^T;})iux4Z*<0P<v zsY=OVby(e4)M>T6nL<k9^KO=iH~YodDnuFrqMJyVgP=+Ug*ECj8gmB+X%{lCmmFuS zn_Hb{i8IK}C*q@KwM{=*m<Hi;XkTW@J6~y4te8Wfd;jw7;ic-(C70={n3-x}2u$b| z$(6c(Y0ZTW!f7DsVEC9rc~F=`WT5gmL~)dB(Zt!i(OaW9=S)KBGUt{^*-9Q0IW5Fl z<0I#-)?Yo3rKM#xy_$-+eolX@q<5HO+WP%_S<XAe8&0wW_1_sy4LBQ`24n^g3fb0~ z8q}r*GYgf=3YpLE^uy|c!`%1|sp=o-U$&hU+-SAwI%M9cQ{xl796ilIM_uEArO?Yt z9jdZY`kD|scD%@~(_i}rf<4by|0+=hkP*(2Lt8UKc?{~iDt&p1ah~O6(eWl{M0Fmv zy$T9(EY<3{lX<cy3|P1d|J6tlj|qOczTWazo750YiFsr2Chug8Utl8chyP@iuC{qF zt_lQ)H9&h33f6`tC#UPZJw0-{!OvgR9HC0qD?;9QI!3d_)7y?K>m=p)=ffl#U3ip0 z9&62P3Vs>tI{#K%(yX2(ZCF9ROs!&L3NDi^u7IAGazs0p^><VJSyq^@*v4hAFE3XQ zsulqEts=Ef7fl2EC_)tzB5khUHkDB7ip~_wP%}D5D`yF?d-WX;f^^ae3Esp!ZA*0? zU3&{&-BLt@sg9tODv<9?9P~e^{DfHfZP04zA9wZVK^(2%8wzA#0!tZaM@6hBp8MF( z8-bEwYQ;?-b;e5K%s3X~30i6%qo$WJys<+Wva`1QG{OK?#h;!$lM#5~<1{((`I=jW zGV4I=LZ=-CSx{(WrYus^)zvj%qu=*tlR|arADZBX6-l*Rsk|9MHAbNyr&!xKrZLkv zBThC^y}Tz+PMwF-0#^1!QPT~PEM>3eryS1?aB{p(T`O+hSOi(+bjOFEEH_Wis87t^ zcY+<@52AU}td$<~7<Oox2Z>H%{Ja3R$N9bUr%e^#GzNAi?6>?BBnmEO=2u=a7r!za zrG587q9|J>K|FkTx3n~!=H{&vCls+&)i#e~)@j<ayo1=->+>w2*z>rZy04ZkU`zlO zcf&47zEream=|fuv9g!gA0vaI=$F&KR8m7r2yA5$HM0D;b14mEcKokrSvcTkul7nl zLElm<Nj*oV000%uTk-*W^^}5HL#T=6z3ZlUu>SA&{D4Y=48GFD#N-R;)b-S|?3d=H z*EhE-R@v3dt>2YGk1;hs%Fx<EL%^1p;^=h0Z3_X=AtoZ=aw~o+HT0;u?WlS_B3t{~ zW$G%YH1jK@nVEh&0E8cjIDP^4O63$XC;ucJjH&RIsb@<}Z2>R}l$R5+kAx1^l2hw4 z+Pt^&X+<3EXX|ZHBYEL0TZ0)wbG2{7%k?1b=e)*El>h^y3_e+oBz$fVNH>PFEA*<k z5s9gM=4J?}&$tR7WeCM}SNZ>GpQqbk_80SJl^lk>XlF#dVcx2f9oYChZs>Ke5<%q- zOlw`+EfSb*IF;WDtVP#!d`?Sa&2z$<d9xmKg0AOAB>8r7hL>{=2TT9tq;7)r*h^3r zHy!<|^*jVJ`}5j%*d1TZSSNU5Fave&x5cYD$2b=T|64<{8X@?EQLf;P&%9`HuFms4 zomRo3?nt}l|7rma`%baz=0D&Vd{EJ5ps#wo=*3Z_-es*GQ!Ksh#e%bFh3%mur#6b} zqGgX7;@}{j3l3Qo`&^TzZ4M(lkqI5zF>q^qalFd(;4(x|MWD<UQlotm?0z=uT!nO- zIGGAT1x2n)N_VJDeTXYVjeS>%<80f;b&efwmT^N$H}Z1hX(yXfOZ0XICOS&#C-3-8 zy0OPXJM$x@c1W=o(_7pZ?%zvgDDb7&S29V3TgGD|mciws3<G1YQV@q|B&qIgkI5z5 zRM(5u@gdp^?Q+H%G^<s7qnMzv#>C-7sa{A=)$c7rsflQ`Kd%LivNn^O8=yY8K=XPz z8~RVu#GkISsuy<KR6~S#>9W|mU0yj4f>eUA(^I8#{pKdUpicSb>9QhE>fYW8(2x;g zCGb_WOatCb!X5{^FZ*<YPWz7tK=vUPMjbM3mC*RPqN2j}Hidq78?8P1V=m+Zix5>B zKL>FU;RiQ$94$<o^F~!>PL`tvTmMEZ?z(1KxnAbGtu14!k<w<P1Vq(#>>&WNjKG+B zbI9fql-j%_ARypR(;TD``@QSB(l}^UOYJ0mYJFoklq7u(<KY>&4P#l{{=oz&m2~og z#Fez%ExzdmiD)EwFO9sFKK@M?u#5b7=Qi(*Pq}rOTpNIiv!#NKz+zElB{fJBi>&ur zDcFh0GeCBSfN}yvTZzY{UX`zNR~B?MlfW750G~#3sCVq@JMd?Fy9$swjed*Q7@k{~ z31ov~3fLG>9@@iY&wRk9iU>B<<_p-soKd4?#QvSzcP84p6&z>UE-FpM*N^cN{Znho z^0vinK?k3Ze~zm=%<KOFK%A`0sTz<>>nw_ykB_dhH`>qMnXELc`reYyQC1cJ!%Ct~ zgY2BHql0w5#OKy}YoY+C+lFcMu1iVHsjiarMVb8c2Oals#E=@$Sp((7DA2qKm#VpC z*-Y2?WvRKWn`}LLWYn@|tah<v$%S}oK9Dg4Xn46)j%mPr6P7NQYaUMJr|P`VtA&^u z<Q4$jxy)u<URhOjtj73q47k4w2k-wC5gEZL!lR}TpFPs<pbZcQ!XcHp5or&Mr)WpE z$&}>W#($V?C?*-&ZjW@e9qmlMN4im+!d8w#--q5Ndo-dCpjCY!MkdfZl5U-9AUts{ z`&sp3U{mA_;^j}6`zTw|0^YR{5CUa2waLp@ks|&myE_zQlZZp?2(TL^JPXJ!ZYzR! zysyvLSTx8@nxY`zYT^v>g!XEgJ>Uv<sjQ|lp2yrL9Eh?;7-B`0#{TV55wSja$8)jo zm1ToQwrLP>(u4k07a2Yb)CmhUo$>f;e7K_37tHH;w!8uStwq(c9gXYO!iX8)^hUfs z1JkeGs0j{;^X!-eVrWQ>$Ea}xSU*)MjVH0H7(FOXVs)TpaM|iv23E-uA?Gbku88t% zNgmUiy?uRLf`VGW2=xvLNn3H}y%w{b9-gG4tV>+tXuwI>S!FW1C)03t7GSsmLth2! zMtTxx#5BXMT?@E;slgy;3di-59L;cPYu<@@!rDJQ-FNB+Si6B%eYB*z;<1QZLF^!D zMC3<Q8F_+nvw|4|W1vp9d59_Yz+VO2Tcaa{V;udtdR^!3>3HU|fXPfBC>GP^oP*wx z4yO{;sQwYJsW5CBNFO}>yQcIV=dnK=i4SVsJUj1MwC~?f5u|O<fhgO=(TN&RP>&_S zK>jsq@`QlZTGhWw?a|1y1Q~kC{2638kqHAt1zPS{TG26Yr<7TJ&aTZ^Jyswhb?4&p zNGSDKfj}X4D5|*0mpt(N^7*Zvb+pp4?!o7h3Y$|H<pSi;JJr^2e;PoKjeDh<mpM5S zDHdZ~WF+PxW|G53saJ||F)8tL69*Gfhh=jCy-C7{-a^mB$19za*EXK^lw?_dUPHTn zPRp7oheoDi`X}mU=waT?&5RZ69Db+yJnsuR-fy#E4b(6gj8*_tYkaKo(*wAa5*?hx zlzyElZOap!bl8mL+K(%hwJl{nzxK{^o?rVoKF$1JX<v%mI2>?(%F5*|vn&OkZLYtE zkK6XaSiNYin+EK31s5F^s{_oK2*v3sAn%k?JuC?=xEu9g3Se*mH<0(pt7Bq5{NsH4 zIo#Z9etzD#%)vo4mq98>N75HF_2J$tXBiD;_0-77HXkWgB?8$4#--%&c>He*{y!0R zeDPe`1xC8y^bvYEsH}O6z7n9Er&Oc^%I2z4bUTq~PTl&#A^$qt3;3zi8M%^HxFo6! z$jbxlX8!gG>}Z&iwcRq?s#7p32ZfGKi5{7V|DQ0+f%GrdW#>!F%e-kM8dY6kVT2kR zD9)-ue}+GOM-4^GUU}vv@#*Be!)(O^)DYy`_LR@*g@ET)P6BuFV48e@rp#}uZD?a| zV|}X(48;Q#O%<WJ4+;(vem7yjlOw53$;a~5Sk$3VKcJ&ZWHH2r!CZ)k#}pBGI3DaL z_GWrB2g2(HqNfPxxRsJ>5)v@bh8#leeeIP(IViSufNF+QzqoNogcXp*9WvDBNlK~P zrna_Sd$p<62EeUh00o*yBUzF=q}=@S<tzlL9RK5QBZBLKv~ii8_GR*9{>>w3<1gR7 z6S1<)#am^ke<}R_{>OvVh&mPmJ`OC(O<>4J1j=?y61J#g@y~nkiWl#am>K~$T@kkh zMI3c7vr><%wx6FL{=^_YY$3HGiGZ{lbLrQoid>1Naf@Kk=qmy}RZJmU`k+Lei(B~h zE$VP89^<@y8;0#@tgYwHPbJtCn7bw0DY@mh;3_l(AU~kttG_e_%L?PN&g)W#bF2I! z<FvZlQ1jjyZlYNb-)?!`Hb_0E?lU(p#*g6nuk&7wM|mW(7(%5wVCp<hKXj6eL|qC2 zBBW(oteKNTU86u?7fU3hcypzu|5m7O>oIM<apQ(J_~luPS?TF4d>R@~ChkQ5SxhS| zWJ!7Ub{;Cj&;Mo<ZVZi1h>J@BoORH?`GCroH`Y0OtJisB3sUu6x#^hP%3{}mS`U3) zikn;Y0h?-V@9g)`Fj$LRQfkfV3l}4iW(NUBzNv-td8&wyA4);_bTd^NBy*5!<;P{e zT1a=&f1=*0(=Yz<kn+`r9jNidkIQK%T_-CO*ayVm&sQSKe4QwD%ioweiJe!1AxQA< zmzp6Yrt&=8gT?D>^efE@F#ZAOo-70=vpSy;xezPQ@7q!LCcgXqpRg5Ja+I(gr*Bqo zyjKOfrqiWW2Z=!5mlac&r39=(Yw+)--;EXMvfG`7TdMg=PUN=b4!RU6yWH*auRXzH z0N){@R-o>j<XLC)qgKh^$LwR~JOx#<672dPmjTh2w9c$4T>>rTiq$7(TK&3QVKwMT zPmNzrY)*4qm+c(g@mVSE$7{&fM>X|f)u-#Fn!!v*i3x4%XF@p#(__*ZnRTpcZoC>( z2eM<0Ypws>d}nH8gS?UeTAJ!C0KJ#{4xyr-GnM^h85r2pVpS>MkHFYpiMx-SB7&(e zO$9UtTDiO~_%1<dG+p<A9fJM-!ihSsbrlD08U~t1ES3haQ70Y*Q^<M0(Tzhws90@+ zit^!&MV%@&Y=@haPID7t>m8K*QG<^Vp>R{t?evTFmk=kMVpyv8`tL8AagMr&I+1-O zUj~5ec79%Eb6BAqxN=Uxwa3StIiIdUKw+W_R#O$9jX(10Y`l~VMf-yaAUrZ*t}&YI zHaQ48uG7l}eG_YW#L+xfMo^pB$zBSi8?0kZ7dpW+CBTE5zMmuN@O5ZWAtComXXtGn z^NaAqhA&@qTrMv(Z0zjjS>AfCv(0<9-6Y#RZk7QJ)$5Af+!_D_SBxxKfckZN5_zEm z0v-XK&$1D5JFm?&w=c>CZ9>E0%2keD8p)?^5Wcd4Lsj~dB)oWkuw^`=e85Z{?sC`# zsN$hB$2w#P&L<1brC<InR<&Rla3zedKwFzSYOj-`OsU)KJ9ORVH)KE3=ML#E--v0W zGyo8J_~XZ9iOI|5JN8m}<;skejkwlzIL*x>6BrsYT*Ym9__%jm#z9@{aFzF}+zb-U zG9UoG8hPu3IrzX*=3S;G;eQ&7sSb@Cl2HFDW#f0HlA4;-Y6TrOKZwIPxR(rxUz)q0 zuW`V}a4xXvnlxJ3cby1q8nmcTON%EZ0aRn0oNQA8jI?p`8AG;&n>Ggt`B|J2T)ng7 z>_n0kP5FBZFiKfoG9o;tz$9{i*S&ezYh}X0<#JVn3}rX3HIMWW^UIJkZFT~9-_4k` zIc{9;4PxDk`$ksgsH5&q<5tgg@ADH6>GRzlr>$16&C33?Xi6?Z0s;t`D31~agG8Yu zw!Pu|{vGXBPa6;zAujWJB90R+P+6iA>N@IX>&-R$!#SqI*+?dXO%IkSlaABKmwmSM zfXiZ#2~ZtpOW^zbvzD6gVPB%)y1of%MlLLHbbX-$w7bzepIAG|6ChLdDT@_Bvtt1( zKkhzl5!gX*gLjMbsi1P)e&b*hH3@@+XXSS(t-b$Hpo|KuK*GTK9|^-S9<z+WywP}a z?efy`eCYyIKF3C|BLy{jkp+wtQFV^5PrLAPnsD%GV5a5xprd))A6^vKO=C_nNENzl zLzg7<qnl38s{*k?RGO7M!W3!R!FWsBWcC$IpRJ;?Gluh);blXKXOxX;WWHDBw)EW; z7w!15OWr$29-|MM{mWF}$9xn$)?HtUq0BNN(<+&ln%olA7(!-NcR6W897BsCPHzoH zPN=^72-)sGBx8^^BT%JD-qYEK1aXUkv9LD4F9=yr3>l(-BQjwM)a3)99fQlvUfxPO z-It#4AM=@Ogl{^4=_%Byyc^+`0!eNe8wKT}Dd}TFBO|!!E(El8Z{XgIUr7icb86K* zB_#uM|GxVX+HZ0D2<qc}|GgJghzr{GhyYD|N-mjv4j)MMy0-~ADv68m&6_NHWju6h z85W-_WplCfeVO_9aDO7m2n2}gV?3=J8grOMSpjGmqcs)E@UCw_4Ci#;5eUt_*Jk#f zhBkLuyaB5s4iK3>qU#r4+vEtd<|c&T>AU~vkZ8s5R;;YXNw%}%;u7vBQ7l`?Ho9NV zqQ=H5%BimIB)EWP-b_Mp2xaZ=o;Z%f1gxf1E30Ts=g#{Ygc=(KKzl=<>ypt;=)bXe z&k2t2hYzoT7JeK$IMnH;84&Q%waP@vVQUM8tms5dROacM2bqCQJ5yKD&JJ$;&(JR` zmH|saK<<au6f#9d&*c^k9(?T6$Qjef3gM|u7m;=S9Mkp9HqN<5!7L{ypwRGv+Uc5* z&F0!OKrJzaNW2=Nm31CJ<&_07PaM~&l{TzFjnB@PI#N`rT5M5jJH{llT)+ZrLXZc> zVIFnS^+2FiwW^?;sw`14eOVfbX<(_ElRYX8IbGK$989Iu!aqM)2PU2!+kDD)nY*l0 z5OG3Y?=ht@--@Y8`_;2#sg~5_gi!XP4yyX~Or<#;G;u%?QQvljI|I_h%p<%M4DYBP z8FD<d^0RC_06!#yI-c4l%xnyK@ERWZAw85=R~`_k3~BEtThILm|IYGqU)X)&>ESWj zsI)p!@4yVwb8m6a>(|y_is6?(B;<7wMk187_bWMahmx#k`*MdaU&b-Ez&D`cX9G0{ ziVbX2RQ;{=Fw6$8<dsj`B}4PTWKYlOzk+~F^x6mo+)wj=Sj*g!oB(C*VpUB5^N12t zFiwD2QaKI^k;AoQ4abphFQx+Vy>WDqkc$B6tDsRUolU@eQ~>U!!Vim7ZsG4R0>iw% zXsE<1bD}G%qm@*`BX)oD8RD5_Ejy*Es5${yBF?*!swaOQpb??}0N94Dq2C!swV6|L zv=Ra8f~$>nMN)BWMbBKlPaDhGf25AHIQtmexwg>Gsmn%9fF_MylD61_AVXQf7Yk;p z>MS#0|09D;I~z;{8c65BJsmy0)ZXCdx<DYRSRX25-jBybk-Hc>4gXuS1_TyBP+^{8 zbKPCF=P@<H?6+Esugx!b_qSp>mRGE0x;`2yM}DKVJ{(4&Go?31#pm3Amd+aU$yA6` zujJ7;GzNgcAh-1@McR5W5eTCsCVo%U^HQW7c#TE@rR7$XCa66e{y-nzeD~<!or{WG zHG^Hfj}))MthjBFZ6@SGwaGW9fkkh;zVK7lSmUa5(=c1+8p_f?m8YDtN~oX+v^^WM z?2>;5YSMtZRl8ZQy6|2&_iFlI#5WzM`jUk~SA5Zq7gN##(DCVU&@0^vosLAgj;G*| zO}8wE6X-}D(^lmqo1KZo@LT7bMt7G{1TB{3>MA9}g9_k+=!7}on9}=7ft-GmEzzhO zc?B!29eD#l*K(5#L0W0=Z$6hv%Wt72m)VX}O$Aagsg$Io{KW7@%{NOuuJIeZCWVpM zPW|<PRF2w9LIMEVuZcap>;B=Pu2DcHz>=E1VQZ-JX{gU=AT~j>U<$pqzRn7;EHy^S z{9mi5TkLZV7rknPi<=-!2okD*UiFBm(O1NdBT;n(YUCW0vS5bA472~0R<soR<`MA` zx~z-250$6DsPF#f+x-X0;2>DVF-p7vEpw*C+gK!>fc&^!=o4ycYTYU=C0uc6Q2*I) zFov|Vmf*90-~f0*t|w143Ez2Do;1~Zi^}`|X<`ZBiyE>Q`xQ;tg(9@1A2`!g^W1^M zB}|m3BNx2`d}Z+Oc?9iNQHkB3){@*t|9dCr4cXr36C5HgXNCXXxUs&uS+bdfDviPc zc}j-#6_@mtYRStsZMu;&wZmYyQjCk^7GpK2v`^i4qOLCvI02OnxV`0~JXzvRd;0`? z$6LqPD$sZFP*C{USlgly9d6<a*@)xqsfuICa7r4QZy+Lqih|I_I*$Gvi{^SZQqOcN zfgVU4C<qTRI7^|5Ck5>??ptNNwY1FacyyAyf3%;PkkAZT{~xE8e=_139zJ3ym|~Eu zczs(IjL|sm&)f_6wv6b(geqkU2B(Ic<Ee{^i~2iX-wx*YECq_b-St011aTSVy+=g= zJ)%lKg6C!dc<%)aS<)#bB?Xj@c>vZ25`^}Dxc=mW$;;Ad$?%kn3=VT9CUB{(jCl0n zKFL)>h~4>a7Yc{u=P|~^>g!|6wJVByNrT}M(ttf6XaQ>MLiH^0@g{yTZLV#tP*isv zGXW_&^`0^TwPXdDWkbzi>MH6l+;Llowq|lhsnY%R0WQ$tT)TD+HQP|4o((m)_oo3a z1CVW4;qI>c&0DvA1ECvcp|$)?o(07nxeP&@Xacfs?Aj^^{Jx`OVzm3>8ASXr3r@Qg z@99cfT5NhyB97*YF{3M%L!k0P0pZwOqmBwtN-vO5Vi=t#r)&*@{y85g^Q^_pYWvL2 zv!+u!o95%5Z1R{Cg8I4Uqu*q6ARlxLaE3rHHvve|--E(b5*w`5xhqFL0KF!NqsQ51 z<I!d&+&U9d@$?00xWU8$q?caE(Mnm=uV=w~la`Ye#>Qa&w?0tDd<*XiCp6!0{`r<; zKfh7VP4T_RLBCJCJ9JR5Z(eFmSM}CVpJ^td-`uT6d6XoE8^#H3RlI7$Sq==L-d1z! z{*b%Z&nD6_xsT-jHUAA-w9qK|)Hse_HS^S;rg3SO=+G#ma<ikU5{$;g*h+2HJa$uA z5o-Ssb1qGGx|Al|3RUbS@!4w=JD8fMICI>}Ayu2RF5|~wp2FTNs<=3gUHFCEDiEkR zxpq!;&h;ox-l^H^%9lcVzXc$*kd+Gma)Z2fg6Qc!y~#J9k1Pa|2k7i~Ye!y|EXMxN z=p0zhH8Mm0kFsMq&>Mnx{V@~vhtq7PDqBx)&%pF_$uBHn77iehBO`aS1isRz039^& zPQ#y`Qk^bkfT_5h9r`S5XAi=h+Vb+2yO>#0(ML~!1KCvey{x`{^gBH>v$)WDpy}X< za|WTP<rxhOI;v0B)f^o&leD!T(%!ce8g?|>yPZlU7w=lLvbMJNOhQx-fO~TBZpj%A zI$ECfKVH7#4U}#bDG3k1&KLM7?I{<Rih#!+0FE0U9Z!w=gY*sJT@lgM{fH2Dzcvtg zsGqab&lZEaMp;=&ufMkTWr6}=)WKW>VAQD%<TcM0!6042a{g~L>3`?*T7S{xJqJ_| zkS~BS0zG@hQC#28-rs%meR))*5h-=0+ttj|E}*CZbQ~UkiWC;0uda%X1*<FiDs;-U z<U-hiT>R6gPn@REM#vdbCFSea%9E3K5g$KN(XdmV@U?zz=`pMH7vJe2nXXU;a|S^2 zT&J`$(?;!4<H?xTPy;9#7(JLQ@POnrJT1s~>3x>6lM4rN>Bb2*N<)lGdZ5yRDb4ah zmHsP}OhZGq2IW)JAerY>X$8IGt0L_Yxj8jhR_gFCi99f<uu|Kwje{NbZkFdqeCw|Z zHdLgjhzL3f`Jl-BkD4>kYWsHhYr+Cj-&TWJCb6<C0S9Q%@`BTtr!c7E5P?TryZ$M^ zDMf1C;1wM*|DENzBnuHwEwZC#bHtN`K`XwpI%R!z&?~`z5>!0x*gh;H4XrYP7jl4s zpO!74h(lFPLn%)d(lQVJ=K}AqYX9FR!=5<YS<0lFs7VkM67o^$-*u`F3h&y@rMn{g z?}rF%Unnes6We3)&e_WR{oT5pbbrce-$qb8iOBztY6xP#zZ=K<f6W|S8Tz<-XlEO{ zdULqCijBUh`R|2@h};kV&sZ1XZv1~9TJvffy-Bo-^;uE<`G33PCu!vdO%rjvKXhM> zJ^Ux}QiWRbzxVuo{)jZ+fB!)Ae@5>9_pSK<XQ0qsd#2u{jW7X*kLgHc0m25t_zta% z>xzisV%fMIK@;k7es~Oy+>()sii*CDH%JmVo1t6~g@57|!7c_9O>u%)Y~Bx3kLPA* zR{#SoKvksQxMKnWCz#a&eJJ0)B$$ei{uI;DR@r!Ppu!21XH9}aaW`c;7Z%?Et}%Fb zuTdqFJ#E%m&s)_Qh<xQacAh``UE~}N5GjzN%#=p&@YBZ8@>_pM(yrc_Y3>`XH%AHJ z-BLm3!D)gSuVG&AfZnUww(aL-<yQ%-HRyj4He2$aZ{2&b6chcv@bUHQoKa&>pRhhj z8bctGwC<}!{(b-H<1s|5^YL)+`6UgF?@W50PRLn^45O5{TTb9cP9PkX8#w&w(=sMl z*3!yK8=?O4<qxmy&1+#V7QlGG$;nBH5j<6JgX!-3uFnUVM8)2Vt$_)<QBfsxSmvgU zg!W9m8nYq5Yh9tOquR%utFWv<*fn(H>U~MM5b@2(yAQwaOG|M}eFfdGte5n;;n+cA z&aoM1O^01sn$!TUHzr6=rGMZZ+dD1Q*e5*_l~IK}XEi<h)7haL0sP+je<g<`oGTo$ zCUDquKCSrx#srqzT!<Ae1!3M4Bouvq^W;tF^TVPYw`1g@A;gs#C`tV}=Bbs`aJ~#2 zW*tdAo!tso^$rNG>FV+70Y9Dc3xT0I-z7xm;Y_W6*3enU=BC1?S+IZehC<^-6ERqV z{%)$9$f8TAdEmcVfU7*&7LV<CJl4T$L%S}(G!ugUPJBpP7l_4{Rm=KsEU@?sxC{q< zKls+^zI6wARV$O*<g73W%^d;1kcwjPGAvBkX*`UAPHeSXUd;hfXB-`7vFIWRoDsm{ zsOL80bpR}*4W0c+jtDeX)j-oYiJWuy?>*!*|HQ^KcikP1z1C^epS<Qgf5@ea5-mhG zOP5aW3UzEDCHqM}(}}r_elt`FprA?G5v?2wWz@(aCORX(e9?pQF@PbbEulRA?qD+= zt*}$S9Z%;*L#jD$Z`0i4a>XXb<|%W*AEe)7aMhslMj%021@~4!KtL}|ZHp#H44oi_ z7RS4(Y|-B#p|IQiRi{&FmbQVG(5wq!kXKK)40#l^J!}d+X86@6B9kw7Hca^UkXQ1B zCzfE+qwY(M(Y$3Q&-9Q8T@Ze$Kwj8+DoKx_&2wq@9?>ZUU5axnH+Vq!o4F9drtRin zo$B%Ta3jd(1;w^dFy>`U@RiTX!%11!A9ht8#aifuM*<=BL-^xHJabL)YF~oa(tDYy z2TDqg$3Di}f%CrT<zzmiYj^M6Q!2rBl-P!AIE=SSrfdsa55$}HyPj1kPyS7MXQTOo zxNNcUCPWth_12Klo92G%uM&a7?ao0#Qedfdp_Yp_qEW9K{@ialzvn1cp4p3vCvWYF z(`$8uC&s_2xPK~0X{Z6I!i4Yfi}BBB=F~0lEhq;5$B}<tAC@>Wi52VgaQ^kzEmlKW z8JV18S?7QD_EVw)e<!5>6fK)XyMVptqzpn~i4Tg2nxx%W%r@nuD~f#MWz}GFsX<Ep zhgr?<O5{y9E*dAK&?C7D$zRfH=KRz>=z@tU#Q5|(99?LGXFr;Yx{AU(fu^iyKtF$( znkU)x3OJt=UKhSO-&%3R(|zxd8Cvz>yvv2#kaK(SuD{*XNDGnwS`Y=e-m%&}N;^wD zWS-}vnF*9*8oC^(ze4{N6?IN6Qf;0<`ly}bLcTv#k|XKX&6|<6_8SkQDS54PHda=g z$Dz}1$b6%9WmP8GJHTr#p7AP66!?YvW{g?GGg&8n3i1ma@M_fM9aoI2kz~F7{adZ^ zt4ba7zDsQ`>{)s|PqceuzdrZ*c!UV3x9oD>U;CZ0Bk|(Nlc4zyvLRU)=bVi->++7D zeSNFP-*Z_TN)p-qcu8;FFg-i48;cbu-N7*sy;9J49N1KOE<A8hyV!7L0Swv(cf*2t zj=YXLn1nWXSu`*vqD*kGgi0xQc(p8kFU^KTfX$$ZmPX2x+pxh}^vVU8&3Ms%fA|?C z?fy)5=<5$U*64fGOd8Y3i*%TU074Q%Y_XXG15c@I<*V}G+&MMJlP6(YUevX~9>Q~d zFmXq4YX93+t>#3PZZ>cwxX$mkCwMEKW+)opK-2<6^5El^jBMY`k<KeC>`JwIH`OS+ z&%L?U$pP_tCM-+}KiHauc#!36jW09Z{a(V;u@Se@b5h$&47N3Jwwr!T3=jD}JDc%& z<V}bDd}4~z^mt`IJJtND&teELF;BE+nySvKm~yek<g=>MN`JX87h_O4-)Se-fjz3~ z5nimCH*E6|0;{C-24;rl{Z2x5`8QM<70T}S>`{;w`t-T34QGTWI8J}J;2(iuiRK{o z!<%umcOTNfY!F?1Q~2fu?L?J}$W;zo=<C;)vh}{^&5(}fkZ~%oVUOg!AxX$}i)O45 zJp=u74-~0+6Lv6=lI!#Es>j8!-+(WY!<;;q6lntWOu@E=s^IJ0uJH$US%S#)qgc22 zpWo3U+s{K*9(JBqcg+vP5S$hu8lge@JUydbVI#Hfr{s*lfZ%#HFRxO3_muE#CLf3Y zRNz*!G8NzNB=PZ2(a|dl5h|pN;;ADe{HMn#S2H%h>aWfV^>I`~G7ScPi(RsVKG*&C zDkr%rCsn>ry!y3)ZcCSS`Bx22r%{c2nlo9Mz1lQY;nJV><!4XdxZTK`=!XFa%YZlT z{8*i5eLwFdgx4IAmo=+7PM&)~gT~`Oe||%L>Hi_DTYeRTksqQcCt6DG$_hNbcpiKt z)e}S2WZ;LsWxl^T;N%6BTicrCTmJondDK~g?$!Lh>&8~3Td$|ARG2z8y_g5TKtdf^ z66nTULj@70OiXhHK1g8y-6yaKdJKG!4#&levW87VZ$9crk9u})#yFh0P#F24de<_% zZr>&g2FV%K>$g3O*g17!Lbn~}>-JT1n?V1anK9VlGgBWRH~ll##st<uiPre-?--KP zpC$ui1|w%X@G6^h1Y~1^i8I@7nKe1`fJnj)LK8kFZG0umP27Kj+v3#7{iH=HXtG0y z0eZZ#3EAd>-cWThRcib9-&enKL`X0g*NsqM)xLq3FGzH03t8{eTum3X>*&!(=^_Io z*~n1KC+>Jbx74TF@=Uy@9hPQnoD!Mq6`^lI5{S)`2=8QUvNVRdGK<&S6>K&$B$1^9 zo{F4N=EoO99F2_YeJ3$z<*_jb>}5FVBk3Hllh^~Z!n%WIDhZs<fd$R&S_#?={{0;s zR84HRQRQNzNKgCU<m7BB8-rB-d(T|d)zuGBbN%!>p1!`ty~HWvfye{7P;2XlotTSk z3`1ux*kDCWObiVfj~|lsy+_I5;$Z@A!)lf&kGp3hI<Q_go_-Z@8HC>yvo#ezIy5=C zV(^3c=?v`HFXnq>K>_o$>w@*zpg1X=WMX#UQE_G}@#QsO7x||Co#yx{Ir$e}-K4f- zY*w0h;N{Z>_P8SFEwN<8M+o7Dfu9$2-g*5oA?pLSiJ`2R1A=?pYw`Fw%a?VW-E#7i zSM}S*1L2Z>Sj}ox2i)R1l5+?V7_!j`H*I;{*Tmy6x-)Lw%*61ZyVynYk)+KnD>jYI z<JZ$y3i<i@8O`q=0okbCY&nDq!9VXw%8?@E<UqW=xz;aa_ejj=R=7gkYRNj+)dR$K zkuN!jUfHhTeh39i5P@5&7|}f7e)Que5qN`Dl5ZWl`-;NS5BCoW2eaJV4?j^uK@Av7 zBb$L?n8y`PRA+hY?Wtx8WZertWxbvL@77%6J83a7{nV<<h*a}*vt1)Dt21)?74(>! zR{3j>@jd*>NKvq{UiCcD_hqX-4^Ph(oIDxPuO+lx#fF+;+p-7A`ounb>O4_@pg);? zYqElxLDJWHwKtCH7_Sh|D6Nb|!W<Smq`fwWA%9NsKO#sfjUdq#`ZZ&np`jAKJHNo+ zBzsE+{~37#^~0*ebEIb*?BD}3+=*#VA!pF4L)iQ8kAZ4T888+^z)OzNEhV7a#E#dn z{aHLY`3bRs?>(sNxE@NDlm+67oS^5wS!!G%0iLvQbM*nDDO}WCq<emV<b81*on=(q z`megx_gf)ayNBnhbdpbJtB+mOl6mmg`R$hP<8aO^LGMxn9h5<2RLtdNaO*r|TWoS0 zs5v__9<0%=y5l6~s$7rEB<q+cGvt|c8E8<cGJC56`^y53CH|GkDg?HxHE#K@_WPLq zY{-OoEu;oOs_^$8SS^90mefd;D-wDy;?7!$V&1=0<Kf^`uB}>WnkAjlJQa}K0S4iZ z3p8$_rYhCD1AM?c>yhy(CZ<4r2&ME})!Bp|xKV9(({c(u<<p)uiC;UY?>nxvsnMoW z@3U|tW}@`EX)!)a(`5e6gfBtueS|_jK0xgmOf;h5Y;4uv>oUsHGautqL(Ix=5%||Y zf^2mGeJf?(d-OdeqZT%H(Q8ypF~!|;{Bt$8twu-fEprWAj#+O=i$#pv`aHX6`X~hc z*NrBHyJ<u(H09YaF@+bI{Lo4Yt6?V1zvN);%S2|ncQT`YsWgM<0~EBc8m1O&{jOfb zpC5_|ZSYtwOk}*@T6b^bl?Hx)<dF&Vt2GbUGayUsGA^T-*1j)+6LHvGkK~i4X$nwT zWP*ciHMq7ladyrHR_*m<cu~)^+VO#?CaV8g8%6%^=toZ@Y9@sc!!U?IB6{hNe?iH$ z?^44A%$aV5GD?!mkGIgrbvkyBr8p6SJgB3)5(;|vOgmp}927NH7n<I_eH$!kU0GjO zdgHEG&!+?G;2&S*R5<j09vp6MR&_4_C|YZK5*-!w6O`?(OigRCF$tRkHIj8UeXe)f zQz^vs#m*U}h?WS2DE<W{@CO$UJ_<^zZoGc|Mn<Q#_@j2%Go#YSBxx6eEw8OKstp?A zWx_uuN$RV6ZvIxf%42Tz+4M-O%zL}6WMsQBoWb1Fc;l~IH&;Po0yRTc?_Qhdp+u`! zhS8;IYX}2?^*ycOwmG?=lmbY8tM_`j|6IO}Z1QMdBovJL3j12y8$1t}k9|9_bg5*< zB8?W{HR?#B;Ow*;9TVn%7KOa=@w2#<yxBljBq&<>t&sT-$CLRqT)~Iw2M)fU5)w8y z(2|vA*nvJD#!wC<etYU+0E}qwcE4Y!t;;2tm3<`Q!D%RH_f+A?d7;&dujjx(l48Nc zbZfeS&Maq3d(h3v{|zpjQ#GsMJtzV|Ly|7z_JnLZ*gnU+#8$*nw<2@ph~j*YJ&=O_ zsd>(V^*~YvHiYIUW|6z?FAUO;$iu_qA)i({y6xD&yW1H}qs3)6HAY^Rn>_D#C0{{q zTGt)_FW!80E-q`sVy?4)PW+&7V7fX{(r%w;@PhHA;rRQLOa1D~o`Y-M@}tH6+Fp-B zf6n>f*0vg+KYzZjSC(Yb=^qo5R#P|!K_hQOM#V-GYT);Wf>czD>QL`3?xsX8J6~R@ z9Y)Mb(ZIvt6*=R&9}$CmWXoIod_^F-^_hoW$VJ?tR8&;_rkWu*m@S!Bq>^UD-QbFl zDA%uvPfMc)BSkh_V?`5H#?w+)Agmqy84U;2&=+pQ`ZrK-2l;q<r36Ol!GZJr0ltYE z^IVfw&%HUPn!WWjbHUKd^U$5=a%Nv9FxyR2$3e~LZ<ejid;Lpf>6kv*8q+>dLkiHw z4W>6o0cYPNF--~zJGl8$SSV2n5^r9=1r0(=WC+>{6D#wYK`lrB9U2~v&yTp{x$$+2 zIq!PSdJ$L!IWs^1Aa}5CCW*}$cXJ6;2uVRSN0rA~#x!xafA$$yADi{u0bLL7xNLmG z0kpgH;=W%wv9Pm=v%B+!dNs90X4h+FMu~4UNx4b2s(a=f84k^fyQ;t>>L&Jk;ETCn zXUS$z{$|sIlHpo#P6GV4zZMSOx=Eb;BwXy?y~Nk@GV{c-;N-EeD65#5NRi2&epZ|J zH43V2wOb4!WUr~gj2s8qr<Qb*ORFoqAVS%ZTd>i*9dD&U_HVwnrO@6U(`C2hzFxr) zdfVpLuzR}+`t~RFZ}{jpREz>Q<=j59@CRtHJQ*!cgJli(@?W_>EI5`TFRXsfI8@)6 z|7-27w9fI++?!Kpa&{KBuqXp&S?Aj&2vlEO{M6UjJa8E))16YI?-@LsWR=p7)H+Cy zX6C!>R9+gmvqZ--`u^<gjt$rR*}E-wkUSw>6LoGSb6U%`=yUlI3^0y%81v~}07V$X z9Ppicaw*{vZ6aRZ;5kYUj)?=JRT7L1TJ*!6PKpop;V>*nYVsE|x#0AU`|Y|<xgmeU z&O)5cV6l}MLIfb78qw09*m<cA;rcml2gkWacsA0>L^&IBw@FAJY--**!h;><(Yr<+ z?Xg*c;h#tN%k}+pJ-To0J%0TD<B(B(@Ua`c^re^$k~?Jun&b<Xi7aiPen-Y-TDrMu z*c;G5WJ;A6vCz-M-Qgg!;9{`0O;r~eq{!l$8D?;JAr=CwAIX&KVOuz=ef0>>wSi<h zejgPoN=ib9l=RnmwOJc*S<`no*QEpPR2L{j%k=QlUew0mCA1!1^VnDyI<>Z#_*r(a zHI)HagyNwL_)-U~)NDPNs9Y}~4aFpj(QCHe%io!6NVw%A`xA-G`L=X-%6XSHyxA`r z|JKe<0ekHga1UXB#*z-cs^GU{zlZO59K`nmm*A*Fx(xBRq(og$@_^9{o8j=lc=ET$ z;|32m`OFBVFW!Hdo(M-1Q}#$OfIe6BJpIQ_5_ddGB*tIEEB5X3a-~soSgx%aB%Sdt z%}>yk44G1O8rJ`14#5tl<%;xncT4yC?x4{bA|9k*DzRT;k>`Wl2O-x#kCDJA164P( z0^(5Rxy_9%eICfWvP630;Ty&V1L0<-5@W}G%Q{yr0`c+jLC8`WhWVy?|1(`Kn98Jb zg82j@bO{c|H%m`1R~>Rg$ACEtiiof<T&DE+b|}5L?dT5{)-pozr-A+|OdA)Q$sZB6 z7^;BCoOF>vUS%#GF|8qkWo0V&!u*Y1zh=4dF@cRm_{%oHj$qn>GViXWapxdTSP9cQ zjP0(nnBooFT+Lv<*_DQZgxB-st8QQ`unMlg7Dt;}xGnVFUzTTe08X0~D(PfXX<e7k zZGJ%la?-nE4Fv$Dkfc`gHzz4#jMmmOa!UW$=jRuAc=<pw?WXn>%y_y#k`?%DPsK7w zQoYx!GSbX{eH#~4FshiwYnm<{C>lpAa{ZfJ4Anyptq%~V>9N{82a{&wX4g8WY2G_j z!m#t<6fSD?9K>qn=O>yt`GA8zT_9wZ=?+XVIOItA+m9EMRT<5Oz#igj8j3oIivztP zMHBk&RB9duGoGAjcRG;N+xDx5P45eM{h*0?ay?`Z@iIGeG6{Y7gjXg9bowLvZ%Lkq zcm1Q|?JYPRsBt|!Jh?KL-gxXlc#7}pw*GV<&tlG|Stf14=&x21>I_l4Yd%hfQyTR2 z^e3ghWK*s))|kY%pj_9f*q3pwE^GdsoYtKhpk(oepP2lrAH2&%^EqNUCYws|{Yu** zoXi83R7pE>a?FA=<`JtPXEf8tSc{YQ9l)lr>jC_eudi>V!3D{@F9tlZSdc)*+ML)q zJB>$C9V;uVv%uzsuF2VIXXM4k7U(uWh))y>6!qP~51A~QH@tn2J5iycn$O7odTqVb zd?96vIDgRefU$)!CiFw%E!Lz^Tgd>)cr`n+*y`kX+ak3A?{n5zfxxHsno}vi@!9Eq z&!c5se`*zc7HZ?8E7c#2IJC2TzDli8$4$P|X}gpiH2k~-*?I%Cy7lW{!!RieTblg` zuJ#*w&pz(NT3}NQIM@AF(zHh({`&LJm1A+B-<vOq%WcdjEiGIh-#zz{jn`0y@>l9X zCwx;j2ng?0IxU6yw@&@K>j1-eEidN*Cg;?1rHTJpKSm1ZXKqiF_SUVkKMy#^QrEi$ z1_nCnSKRrY#TwHPg40t@c_xpEv>K)4F^K{N_kCKbRFv<|&JK-Okb6Bve6EP&KcLGQ z49yLAXTmgD9TpybW47Kp@5j8&Y}2-W{H4#2r}n37Am+8UwRzZ2+u{ZSI*Bj6&q9a_ z*wt72m;&~W`^O7$yB3G1aT`9Eg|;-7cf_@CaiYHGr*s3GL&6%8A^XB9oO+5)6;)Bc z6fuZntBZZP=i=h`04jN5%R}fVz25g@!(>CVpZ5gI%DOH<U0lgRupLZcFS^>bFZaT| zQU^1*djp*j?Hmk&L2!j!QFefLoe=+}b#i!pBeIh@^uoneEtAiUvEFXzM|;_WL5H~b zPj7*#vo{Ja{hz23_K@-3i%7;``wJT(<TFiD{$SR0?t*)gl9B*STclw8{S6zK$rS&f zZF944(y183$H2hge^w>72YMcmTsj;xgQzv9;sxp`ou)MF4K$-4HqtZov4=PJ(A4xq zryFsbz&ygw@%#J7{e9-BG)_%=KR>b5^LAQ0c6Oj3>}xU&q!9=aZ1vn&g0%Z<{l1w6 zG-RpMxXx7P?+5*h+)reXD1VEXiT!V{N1yH>+j6z-;Nt~2F@RIVfkL1J?8?@ld<_L| z!5}8DfI20O*Su@>({?~vQo;=y;Dy?**-itNOEh!XXBvsC@SvxL`@yCncQ_ngoF;Ik zOU-L)`+Y=H2~#vYtPb2vGNPjX9yV+F^`WfcR}#kqpkv-R9Wov?ZjZJ3RBiJKL^}D` z@}A3Mlp7k^-;Lcmu6+l^KMjA7uoD%$VP*=f!f$ck5)@*OZA#BEdQ@R>>EftUrHWu1 zBGl=?WNSV9&N|q_zc7GNs6jXf-^($&{8h2}E0I|>+Y#S2*oN&;Iq3f9tjf3<?AN#@ z;xr`;_w)8Hl#ip`nQw;E3lC+ARES&LDgL$<9$7W#w%9Q=S)q@|!DYom7A8dO-@Lhd zj9uIWTRW_W&s!pIB<g2CP8q+q#-z0Xms%`4G}H_LJT?_mV@DNyin+tUj3C4oxne^= zRV`5DUbv%dDkf4kQ81tjrZZ0Vacsrjh3?W~mZ~o4-Xv3ij=3M|eB6FKw)R!rFD!a; z`#!@1wN%xNlg8z~jdR7yWd)|ON*Cf&?<*>>!(+;I;pfO@aL!ix8h%!bZw~>@j$TKy z6~I^DKC1+XcJnYZA*#ht@2P$^SUEi|y{%np3M&_fX`B}OkaW1>Spkp)qBf{ol#e@Z z7&JR4_IRmUs_0eQPD06ONb4SQf6mnmKgERz^32jrRdmmhWtAE?NE}}<x&yf~7>WKD zJ2erhcrS5NU#jB9O(F5xy;u%==(0EIF!}D=#I-;_iGYCv8S5*E!SI6Ep{=*j^PDAn z=Hu=MrRnfT)WqZGSL;42@T|H)x0U|oth$|6=kMb^5p-R*8!Iee$E8-yYV$RwYkLX` zJ~2>!YrDTfk%BkXOzF{o#|Yd{BZ@z|`!MA_!_tOzWCimC=gweevVh6$s1jXqF&WN{ zf0Ix1)n2~PzK8E)2>~`>Ykz5KzJ4vA8P3c52}<qlKhrasyecSNaj+%D*i7SpvUu<b zI_6a?hImp55yYwH%JlHLcv%lP?)klY_t$&5=1&Pw*XY2NmK+oPv8JCktSTF-jV^mP zU&+T2KNjXDRZvjC87L6BJ>-+`*-x#y(~O?$27qC@Y;aOfxRavdv)Ou<tNe-ifn+`z z7i&hLiSF)fKdvvUKg)!4st$MoxAAro8aGj8n7ttG^_im}!5^_3r3fM>cZV&pV(y<V zp<t*tccyp-Kq>DtGOBk?lkfv5tKLp5`wB<J$Go!~Nirnsq<U0o$i4q#vL^x{MGcl} zJg$gVr^`Q21O=myOo4~0iJ_60o1>Xbc(Yj7lP5~?LM+0hU<pt$+%zhyf(}$-&hrpr z{+sa>OlKtT-+y~d#d9|Mg&KodgQumvwPM><+op0}yr3guSI>R&_*s-o+tHh4bTe3R zuX;$sBtS#TjrS+(z7>?q5?tNiDB<Ph#rpJV()Vu`#Y6rJkd@tQ!L6P<w<M2u*3*he zK(|=zT17i(R-2AJB~!nDH-PF%ULM#8&nk%pvB^9~N)P^@iVS$w*LyD0dy$|rb-4)4 zq4R~!&5WR+q{=J<0IC3<@H-ryOUtCgrc$h0sF550;je-1tK=%Cg@uKvsMw!W|AFGn z>n(lCHwz;pi9s4Ku0fc;(62V#%yNZ2nrLRXQAw*$-&|XJJw(Bobv2yEE>^&%`gSM@ zA0%r}Ly6?I8nx+gaNd-D7$7ZMvp$rJ@)-xXxfW}5#*Jbk5!uo~fP6%K5?ET<Kar6> zE-515mkSTFae*PS7LeFO^k_tlaY#Sn?6@CXngGp#?MKBIfq@?Db3QSvWVdhk0BJ62 zM!#t-p*`T`t5-_7GO!+DH#av7LdYkW@$TLCFqkw3lL{jN-!JFvQ*Qz;;JK@%Wdf@H z#fxIzBU2NT+E4@d&{uIGuu4>5x<T$zwpMTPhQVfA1Qb$k+(?5Kvj5wq!&yE&LDkeh zM5m1nKr634S<00fZJ8dSWnUM^KH|tMZ9^!?$L0<KBqm+lBepdN>_k|`xI!b@8GWCy zuzUfT!*;yRKxG{F4jJg+2{8NYR&BPWw>CTDFKeg?Ic5f=Z@?x+WM?zDrE(`)?<nH! zX0-SWI~};t4-QXkR80T$`!M=X*@-yi9A`Wh0XVsBUrpfFVntS~dI;`_;l~eV0#G!` zssCemcsK|-KRc`0sqO**sctYdtW643=eq*gbCCMEfHv1ERBX0jI1mD?0J0QPt_x`$ ze)bez6XHSLdrs9~_4%)+oP_1@e}@bGlrF8}YiYC*^G`;1l4cn=G7$IJ1GT@^n=rDI zn<m&SP8#gIzvKV4^vmKW=`=EHZ?Q?{@`tsI!eqfSJvGMpQ8`)3**)#**p_i;!@or~ z|4JN~4_oA=`?J>}i7B2A8gyOj2jOQ>=AqK2&)Y#Mn*Q<)<hxcG;~J_f^Z#8;k)-iz zx7)wPfSFds(z4FO9m9sCtG9lQCGc!9zQB#;tIfb`RfVdT_?Rmvf1EpbF^0cN!UM0k zD82*#U&i5qi-ZydGgEMCHu!qHHV4DHES4&Yb2H7yq#XKcIt5%&q#GJp>1$y;cJVtV z8p}83I@<kP05!?t*!u9^Bc);b*-xJY_<g3NQsKEau7}O5(~E-xHUpVALGcV`efu+* z+x$<%iBnBO!Jej!@N5BrTOo)u$p`YJ*DQKZG^cPY%f!S9jKa(X`6p0gjo<Bt(E!12 zG7try_fx!p`zA)(i>n`0dzSn(&vuPuju_5wXuuCD=NrL|13~nR{QQN92|ajrqJ9D- z?tsQc1{JUnUr9OUYyg%K!1&-tBVN{Q_6>{+O<Dz6cc-G?1^TniN4WlD@wg6rZ|cAl zhDX!?)dDQvy9dy=WadCo&-Gu!paJAbU2M0aE?Ru%aPOqdu<FkE#$eycLvzOx76Rba z9?U-LB8|_A`0#Poo6#WIh|#1i<OUeA!wuYf-;4|j_ui6f@xV1rQnM&ron{q;W-m1l zb*9VSeeS>EoFov0MI1NSn+C2<@gO;_n$)&5%Dx(^v^6w%m2X<d*yg?!rfu~<Q;%NF zy3jX;g@pT>cC1F`n3nA$CH2zaIXqm;_lgq|K)dr{vD@=jaRNDDw6{fF@<Oub`kPAC zgAjvhVq(o$WW)1F=BEYj9v;23v;FPE5IV70zg>#c!yVhYDlcl@Ih|g?Q)~Xv!g>JC zcnyRBc&Ofcoi@fLN5(Jbheo4dDD5Ylf|)d!3fe$TR<vJTt_A{_%Wv@bFbKa78uGpr zE`4sJB(oOxux4aEa*p9KK&@uLAp^VWqaSkYTT=Y9Ci~MUm=82y0NCMoS~0*$fNlmy z&1ZbTm^jLQ1H{Uem31zVwyL)nlLu#F3)s}x!Cwrf^Ghh*EwImf`4#3K2AcKsW3Qth za+xCdpD2%+q~gszLS+N+EB1LIc~9C9ok%d7n#`_GF600FJnUQ&FonbB?SqK3ROu{( z3KG*6Z`OW^-5|K*loVFzg(GNOIdtovgAS{CCO0OA<W_i>6y_p%Wo0G#z$`hvAvt;S zJx4n9Sv9!hm57!M!iRUASt^nJ`<}n;p-PM3MzdluQxwbNF~#r|4vLcf%!IAgPXRrq zrDpv2?{@3ghe;PHyWI3izYMH?h-_fMZu%9^f8_UkH<!#8zLhJ27s@>HS$@&(-?@3d z!abJQJ<iDF7bxT3o$}S}h_n*(A|$tuNmP91MY5QQ{r*Q1+*NG;Rny-=@ZR(`Dyjz} z9h8ZogHgAWA3YBecIiZ4`#$dmQ<Bdm4KgU81tTo<r?_X?9cMWJS!l2vk^sPk!(3@s z=U0^7bmOP8?Z!tqDglcbdjb&&v<APx3#H5DKrg6-1hJaC;~W;an2>=B6->C$Uq%bI zv_b`aj)J^YcA}yb0Sa|H{dxu=p`p^3t$(K{{`&O{fV)xg0%Tg|HNIrN|BJo1j*7Bv z_l8ka3=|QhBrHUv8>9>*lu%Jpx}-aX)LSK_q#IOVknV121{jd;?igU`7~W&<y`OjA z&;Hi>{`%JUu6M0H|5zY1*L7a!c^tnwRtKA)lOq6Bv<4a?g7#?F-}ThCB`)Zmud_!D zsFnR=0?cvtX*f15V(1GCE?vGf4@_43;?|}t`lL0?pzp7SIVJX(qScxB1g*R#Y6|)e zlBbd{E2MRvSHHSFXaG9Wz3FBy><;{fO4Rzn_15rPpNc7iUcD;74EX|YzHX1=Xm6sS zrhW#91+dONSxR9W-G+EE037gSDQKix*sissW8%{oiZ&|o)+wz%)~Lm<R8iPW<b&fy zN^KcctL(8za^}5<JdJ_RH}ja20YLF*RmqD5M*780iJmSoC|p{PcH8#FU;R`ewY|9` z)8I=!2g;82>cp=1GZFqVu)OMRiDXX!2F(g_CnHM~(i@I$L)e>)sk4u9{hQZlX@4g) z1;or_gsr@P{ep-cn}Mi~!(Z<eqe^U6AHwIC%^Ud3fTc}?<fQ22W`EXr(pP^DR>cQ^ zf?KS{%Fa(d?%f?XnA%dMqIcM*y-KAoKkv~CPq^`Lsjz7E>Z31t2CS_QYP6W-RsAw4 zsL0!Z9#CA=>9mGuZ3+apiIq4W&*E|?hl;~&yG#{2LT-aCoz0BW52=*Cs#uSoo8{Np zTASgXrD|m2q5eGSlkU)5fbJ;RHEO}Hv0ss!dPNbYvCyupwsYJkJpD-}M_-7cKh;1H zr;1`gY`Y#TrpU&NM1AvOGwVnYM;~l2w___SD~)@8kscpx^F&}EgeJ#!UcTyR^F_?g z<mBXIh&5d3%e+xb(xm9;>pP99)@tjdynS-LZ^;EJo!?AP&tauJv=6+qRVJU9jT{Kx zw1JZXw}+)leonz8c=z+M*A*t}1Y78vLH`qw`;<sWmNOb-5ZG$`DNqc=70GABXahG= zuBYb|=NG54*qa(VQ}~8w&ve!W9)o=Cph7I;l|MADdFH$HVrd%P2NyU0sH8_^jBi=7 zYNa$WgsY}sVl3{!ilwV!N6=>!y#4(R0Mi_)vW+kaV_{4U!9yGXLe$Q5)e$I~_DF48 z!-)tAiSy@)lUxTWdF-A5nWvItCj{&}IfvTb7c)f(GuRYFlk<c(vEyAywnfvQ$p895 zP<XNYTU~ej<KenNL|08I(Z))dzBVr5)to^Zxz)X~^MGeZs)s7IV*GB=7in=0fQ6`l z!zd4#Z`7Q1-a(5y2V=rYSnM@DYtq!zAje=sSAM;zx5jB|%3q?MO30ZdVA@gkV{fwx zRk1*@Uh#AZUGRrbm5ZwU$w~#rQEI^5i6e~@Jy|t#zb-^lX`)YPo*qOsasmI)KEgar z4Q+Jw+AztZIa%t(-ej_~mu5}`LXO@&2xY7LReKDq+dWhMz0=5CMX#M@^NlY^X<a}< z>{h!IA|t6_CZdnG-wd|#^83SH$`7gK^FDXHHtW8Tva0RyEOw{dxy>DndFXf(SfRGq zV(;?Z<M*8z$qf#uaQ23uQHuA~O0IsY!n71udei_$3@~KXLB$1lc;_ll!cvT<&+)$R zy9Tv_goMPOVkt^&|0alkQl9RP>7&EJyZ9)uV;tY@V8z^5hJERe&uwUCI+v7{yo9lq zCZe=2sANex3dN1T7Dq6V91;G4qyOo_wmcUHxDKd<bS{Ec>TY5nNp0<|3b@mWo?Ao{ zos)@pWL+xo#GJI|tO}>wHNYZ}j>R2Ydpb8y4r_YaRl9zFi4?Sv4tA@&Uqm~dHNHbi zPyZM|+~85kOp~{zPO}$5(RLFANn4A5xQu%`$#?gGdf_!z3G~z|xND1)J>&KHo3N3* zC&|j;lK_aX4NKLNT!%~62D1@&c6P{F*J*qW<z*ZYrt=@!UZV)150fOJel*VDH9fT= z`{c=KU|D3THWKAB=~^q_Mt_|}z0QA3#(l8&jXjPCt{u0dGSN4_7ly472w#(Jn(3*f zCr(a+PY-utZ{5!N{oxI25Sv7&{W2k*n2P@^pb5e7ednICs`s(hv2?viJBbEV$r{93 z&_Ky@W40JvglyMDfT8_8ICxf>(&(?JPf~$}AGcrA?%v7N5I7}CvZk=ha4y%O&QMqH za_D`fP*Oq<PV_FxdF|=G)r?4SmX;lJW<3bGxdXi+)N`Tt)gr&}FvWPC0%BZys`(Zk zz=I*ncL7;Fus7){!AbGcjbrBmk9O^r`~0!<=ny6adTyf*KOo{X%Iqe=b~tAMQGw4O zxvDvs@zU7X7-+L7*xyNyRUpjA&@(L|#-n9?5P@~acCPKrxpRL?to7iZ_pSvzpBWEP zbF(}~X7WlS8x}yBwkV)~7f853qk}B~@j8p1+2WTz08IC_cG!HwO@LBhb=^BP=u)_( zYL*Tsjh)#r{%wLhlQGS0<UG*DBcr3RCcK~BWadjvUR1>|e!T4FqNTdlc(}_Vc3n0h z0QMA8GCgUBwio;JNlF|(zJYjUtf5~q?XYNJ*~{n46)Q%C^KSQ?{)`^F9~HPVLZ4*O zr6>QK-(pn02~))sqHqqHASX60dP6@3bH)DOMfgdN)D;!`Nt&aSd7`9<hfvONI!V#` zk6ShJg`JNsC&MEsj#ZPc+xe-=&!k-TrZSt@1TGml+;nkvS@UFkIcwj2I6-XT5ZboZ z>{D+2rikl(bjM&ovRvgt*)6|07TLqrh}!r;f0336!;7wlGM0fUzI1vXzV)^A#3WK) zrdqZBn6X{$_LldJ7(PBvt30pl){@u7zsgSBgX3zi#vBm1-`-5n=cIbQ`e42~2_&Ky z&J*hb;yMFt^~8iWtlGQ7rysy>A4x?B=aTa+wj|soD1mXOJ_0CPm2<J+=){nh1_V}& z{QLp3)FB)!1dnTP!QFOs<yP_Q(q}pOKmhJ@*2dkliY(Q@uX7u<M(U4uadDkF>-CLM zv5~xq{o;kognoD~DT?wc)#qFM;j+|jX7aW`vgnZF3!g4s*8Y@@1z!)4#-R&v-A>_p zvhpfUf<ZyAD5iCj@4>?is4EN**BXk901BnPv2kcCkEIY>qtv%~^Zr23b5x)9T*#uY zKi@ZIy+-l~XsE7IkxL+DsT1~#Wm98C6^0m++2B+9QM<*LzB`Jzd-v{DDq3Pmy|4D4 zdj_0Gw@A*{jJA&=DTrH=xstgl03Lq-o@#7NlQ~>GvCDg$(BlunNyMIR4S|)y#r#Z6 zym0a2ZI_);tq#vGUr4WAdlEn^^m-+HJUS<b^RK`DY7S*q47Pp^%|0UhKvVw>`Q#*N zOP@=^TTop6nAFj4kKK<d+W+~797Kf=NgQK76%~!Wm_6|Vy>~^%y#KtLlFOL$_8ma< z298$FB6n>**49GHW!(0P^w#}W={Fgq4339y2s1gJXeR{?oVlagE$S{-a*awMEb1|F zR!{&3szle4sLOhNJNhNAiVU@3LCy9jN+?cLKKrG30no*Q!oy?dnU{1F5KVy$#d$M& zmR0-rzJE_`W?6nq9G#_Jw4Pi*3zNtb-6G;;kd(~{fmNbq73;@7-v9e`M0w=E7>-0e zQP~X>u$<?AW?rZ3$E$knFS?x4ZIq?NI`?tNV?}#3%k69tkiu3SBjth@=?{W6;V}8n z7mk4?p~(l@`}cWwBXw2jd=x(T;;d&-6E&gd&|`!uYDwQyy({dFogJ9&-Sae4&94Yu z#p4cX5*rbD=D-;I=PT&sfwGheHkmSIt-<<^;3*@b=GoOpL2cPME3p&avvSX7lG9&p zAA1O204>SCUMH4e&2!Q|W+x60G|jU+UuOU7AO7Q4j`+Wj|MoY*NIYKf&zEuZ|9lC+ zi2wgx7a`p6g{wg)S*FEnxM3O4vH$B8bn*+beouyFoOH-RI!b=*Q8w_8rRtp|F$xh= z|9DA9BVlR%^Oa-_BCCJ?#s7TC-&f=Rg6mRo4KHB?L4(RB)`Wn5kEqk7=IXgXn%&ns zj(}#J^QWqdA18sm!?)r*2sB4_T|Rg`dh`_wK3G;{Lb+8C47RTLcI@@p^BV27VEqG- z-0mIrEK=qLO2J9U(wC7qyn9RyBHWFQ4RmGuy7&2e9g%YVV#lgQCYimnWY?~N;>mgL z`0SZ;z{MU@2JeJ!(rcgmsN16F{0v?XE8v&r$0GQ+xIFL9Qv+wt3)L`~n9v2I&<~tG z{V8MZ5OP&Ndwvn`EjlJVy-q?bYwd2bZ;EpLkh5-OF<$z@PPR=kc{PX<QFWvYr=JZP z%`u2QD_gw}wF>+hSr+G!&I*cQ`0z<(mT)8!pL?2zg*v;$c9$LiIfcUUnIf!66UT`h zs6!1QlljDfTSC*gZw=D|N7VC|R_7nrGWQey{#{q<g2D0he~d4_5=LXXJ49)p9eh${ zw4Z67itpCks)>}A6%^DR$nujda2ZF0gjyyD${=Ml&NTPPo@w7`h|+u^>-@cA`u)I_ z7xcDA#bh^c>-sMLhbM{a9HEx$kT-lN&|uYouH<8-3!EyDf+q}u{h6InmpAUkQ<ui8 znz8t9@TfrbD9@T_Of$Zoir7r8klax~fB>$2du!nhyd)IP$IgZ6GCNEU{RbC!l0AD2 z#<hPx#%SyWpqK?d?eh>C2t*o`CsfDN1Q#h;32Md&iI@Qc1s)tX(sa-aQWKR5-RtAK z3s3Cqc<pHfUhv;k0W?^NJyx%q-^(xl(VI8q2?8b`^7BJ_XNdx7QSco?2&=$`Exf5H zS;6Dt^=9-hhC?P*%l30xNVKXnK&jA=ZXIW_05(%0XY3kWSW)dTeGl)^uo~AC6dahI zUNu*w$!u4^n_2c|e3c6J)2LU~-OfIOil~z4%4Gc_kN*13J<vakjXr!;en3QkN1-x> z?ehoZA*We|*Y={e^9HB(!2K)72y$g*Wmj%}?U9_vAS8l(JW+9RPye{)A9YeKaE%7@ z40YB*H<Y@U8K|TqG>=Q5K_X!Er7-y2d<&!~Mv6GK7!s=$Oo(4BXB6C~AV%AJc=C2W zTYWe-g=5ooKPB0Y{>v9H9`_|#*W$IB;bGs2Z&$@ql_SP9gz>;-rm!Qmxcxl{-@FSN z+tZ)^0@0?yIrnigrlzDomX@#vutV9v51>G?MT+^@7(9<Tk!Q9%B)QQ5#AUE3Qhe8} zZnWJW6sHFDdo57rkV5IU@$(rKk3PYohzP;J_OO_zAAKNb%wfOhJ;}I0H&noBIiF3I zvbW~-xW2LB8kB3(2itp9hsFG}32aRq*;RP=({dl%P@(CrCDXGRab{rJ+@DHq_WOh! zEt&4;#uOeN-T_CH&dy&6D*5_Vy$8>y%=>?he~w#Lw%u$~y(b&f0HU#yvcFYaL7xs^ z{d`YKFf~0*EvQQjh|*oRhj@u*6tBsB5GM0lqTlm!1HU92FBBoi67dbRq*xL4Zhh0L zyN0OBzHpb`JJov@KgPe25|oq(hVZ?h0M+L2ezxj*n1}rVOi^>SgdPruS&VQ6eYdBl zr&AAJ-8mvWy?0oX4I=uaNCyO%qgc$2Gra<$KERc5E3+?Bqja{316kB&_hwj|Rvs;A zJ$@$YIVDPPNuCTaK-*eVlox{+5sn@iZ!+eB#Vktbgb5HvJc`}b6?98{3+XyoOfcN) zq6=bwqvN?u0?=;U1j`7o>BzTp3~uLZAao<OYeEs8oth!WOTif)`%CsqZhf(TEJL+h zVi%c_>JsszB<gjlPIn<TfBTl#{B)7$1<Cuu%-`N=?wGw_ltatu=x^j0X<WiY#3NTJ ziS>7KQc&d_Zpy*l`0}ac{kv*<YHlaR1OMO?hu0FpdpgbMVG(U;6n>T!6Qcm?>FASx zOmV((?`v)+7gDI06X!A!<+8@M6Ac|5Yo$Bm9s~E6`qJc==j2XBg4&-@%FnRjNOjI2 z-j-5^R>U<FdPTg(kDx;F2W{gSR5k*h;}-x_nvc!FLlVjBd>>jp9s5D8-PQTl?He*k z%t(I3550RYGpv5-_p5_r(w34<=g-2AIZ6|Bo!S_Kn2n#n`2AWhKKkl+`QehLSjB6A zh$cLK%KUo4-ghyd;^<6`#dsmyI3VPytIWoub{{C+jPoLTTniGGAGBmr#9Y~WnDxDn z`YSVwRQ@@RDCgMNSe2>+%7;4(bqCkQCl@C0=LB2z;uC--^^S6C1%*^eoW!~9w$9`k zp;{I4Wls&o9~1G|9O(m)aY+TOWr{^>RmkFveU^ci01z}P&N5Z(VP_LUhY;j6G@j62 zuMCx(19R0n$@z(H3N5VUhOVp1G$BY{fJv=uek?w*vLY+}{=QbhYIAGhvT@%GnXh^B z8wya<!<O^40jKdUw*4eQZEOcK=#ME^t-8Mj+6KT$r`P5rp<RQmYc?fH5x)RIcC|QE z&X7;ZiiAW#;CQ?+M4)J&u?__-%t_57HOCdnwOAp%7z}<q03F{oeCI&ZcM5t-UQ_I4 zc&3sbj}9qe(c#mSr28i;o4uxZ$m>Zq6T|sj2M-VZV<emFyA%rT%BoFoO!#VrVim0z zbp@!mAB;Pm^wIK0fm5xLh*+mPEtwz#6ygy7y^)Tg0ey!`nayR`jGG*LUxOFn{N+n2 zm<gSFrn`}ZzCMG|Am3%=GTl{EUwf<Y0DKUjCt!N;;44r(Tuw78pz>Q7PcKJAjg;Et zS)=&Xcn{ljN8N}{IQuWmG~gWz%a(LEZlM0tR@Gbf(q{Sp&8??hxuPcAWR74j<kN~L zr=zQDyPyXgoo3COs&ep*Vuty(!Hic}!IbhAi(cH66MpjKiO}9W>A5R6{L9O40N#B1 zgTgsrqj#r)xdsq)KzFq8hHFa#M|Q8BZ*zXS*6%RzD-7E4dlt=(wsn(?`^~yLosJvh zl2hL-rDVUtv6mcil=90(lN7NCLkeqvFE6p5XLmbyc{Y6~F6yC6{IiHh(1+vI07c_F z-|bT@@O#|1&d&L<-9!sG5JuVogTpHz)$CVVe<!ox4{qGlY{5$B7xv1-TuAW4Iy0f; zXKQ|lgA(t1g9FU-K+UH2FOE5WFEyROt8zf33p;C6wUZEA)qZ%0QO9Xy_F1pMn0kol z?f&6n>8@Em_EWf~r!TAk^`1A+yg&O$(1aFf#QDZ{^*O{myQc2=$EUJ1LcB6H<P#mE zF66GF;?xy#S{TFiouAqt`%7FfRS0U(g5Z_ENl~^`{0_H4?NB%%X(x-{&GlD8sr{lv z;>O9s{G|@1N1W3~)RRkH&}dz1*i`$>hkkc*kwuC*-hzrlrL7tk8D1DNFyI3cDb|Ly zP$(1O_?y`(#p2OR{2PPy3S`gJ+L|GblAg47t+HDEj0#X?s!(l!<4A8ZFTux~)86<R zc-cT|b%FSbVcnd$Yz$AruZ0EuT@qxLh?HM~>~6qnNSp9K98+z+zJXx%9Q32=;b<UG zF{!q<d5t>cnP<;&8F$C4>4swW=a!XCj0+6hpBuJoN&GmyAL1(KcDN=w_F&s{-{5h} z)H7>4s~Yi|o>?U*`#`V3>Rw&Xam8_MP^z4wy}h;*eS@zClqz>T=!mqp%lv1W<Nf2u z9i+LmozZ9@vnaV>vLYx`n&E8l@$;MNudME_obCrJz{JGFqkhYwTtpK)7Gt?OQpE4E z6pL`}Es#k&)m^O+X9(~<{xXBzoLixI)^(rb#i~ea)E(i`hwkPUc<e?J@9)f~WGDD0 zuB92x`^zgopSgK)c2OouV0>bUthTnNRTtj$V7_6lU^Xp%{HMOnK48Ul|IKA3woXz5 ze#zhl-_sMYk1oDuEOi;T(-?J}xM~^U-aS$#77|FJF;r|YTXva%R?LBxiHS+fvWI|E zBSM|evUTWk)qhqI@c?`NNmu5;JE;KjY@avPg{e@<5U*BXIUWyGuA1Gk>*VjVpwMjq zLE7SYwK(3NHTnCCOj(?m-NMz;a>o=SbUax9=M5Obn_pP3{bqbvWG(}|^t~t})G?iG ze<!4tMq|4AmRJITW)C|cA(Y9C5#R&53(hn=&D^fBacD98I3_zfO1+EEeB|m=Gghg9 zs3lHlBJS@wyCePS9>cB>te49tS2S~}CicsVw(ZCNv4ge1oxTYIrHbRe7!bR$0ncE` zRjpL`AY(MLK)?$sf>gzPwY1@IqX@Oi-+klG|L|I=Q9iezgDc}~zp8H`w+cstKgk2z zoug+^RhX{Q7SERU^tl4iwm$vKdTu_~P)>{s-Zbc>on=4V{g)O%6u|29SGX!u@|4Cx z^t|Z6Ri?ky@(AF1W0mYH<-20+JRqC^$Cs!~l#jo!9^lokDo+h0XAB<1pn`zF-HR`z z)itVHq*_^>NYu?D0Ox4k&ZWTR+1v{`>(abh*%y-gkyZ{`&LWoJmy(t5sa)Ise&(E6 zp!WVolYQu&;wh>e(Z7U$$Sj{z_$v3Iq3P#h4!_@y>2DP~-sk})rD3<0M`*dp0#&-_ z)tQsT1N61v+p1@L1R7kQLtJ3xVL*8<ZdwrcaF>3hPIM(s&bu}Hb`1BEq~QB^f<FHY z4GSW@%@`U~xl8QhmnTqMIqHJ3cK4tSI4o%rY8>5!5D9ww1Pou*yo*MEX;uIBet=*Z zn=i6I?LG2@RKcmjld?Jj%AnwBe#_yGiU!pC{zW&3m7zM^Q>n<!ZnH)?+$qkpm&<mR zQ1uK*>^$xh?L%k3R2~ncc~h1|)5y4p{cahLAEw!wY(Hmw9`Du?-(k>SNx~T8B#G|1 ziid@y5Dw(IL1@F4fbusCF;T@yC#mnMYz&{5ql;@jGPBwSJI6+Fg;uOJZTklP|L}_u z`2yA8r!HO&shBHqc>g3syXwrxi|^TN35wx#y@fnfGg$(QUy)TAKxlm^hpCCifn>_= z1wlvp4|LU-$uB3Okax+GLfB!meQ?=#U(rNV`BP$(Lgf7PXyL8`XqBZ#)zC2!7cP;c zoP5{W+uwUx@t#ytZZDi!yq!M<gVSRWcEBX71pS`D?oLmmy>eEI$J-bEmwG457kPZX z2Haw2kH>fb`!L6$?&@WUl%3ye>3+ki6&~~PW5HtQpe}nP28q7O#~1c|7G=FRVEu4A zhc;_Fpr?TMuP0CNyI<WM0mSh!k9m|hxUZLbvy9h_qobo+hcRw7wRfZtc~20hJK|GT zg*9ZPW$$u7jGmbxhdQN7Ol)R*w`q)h`9arr(!|9PoZLmq2j6aG&b!3jKbDYr-Ob(M z@3d0Sys}E?lxD-ou2tDMh^6Fin~faJ?T~da@L=IQ4-(*a?_yh)F@auE7U_rrMo}IJ z^3|{77+x4JXG-0z*fM>SeFaaX{!T_g_li8?je(}=)z;3X5P%*kDl6fHy~EyNV{r!z z0cK{br8cTN$op?{2u>Nv&2A27iSni?dkqW-!mx=Dow4rpe#_3y_5i$em^(TCCIG2> zpU<$rtMY^T;q2x-4~Ke^)h${&I((i(?`C0mJY0vYN{>IkH0ho^c`Af>c(ZPI7*-IR zsE;%~#PR*E(NoDtuP=qLfisnlV;7E+Uy!q_aCR4f$HZY}40RHpYO#S(>ep3MqX8{} zle6<xdeW%LXIsbNs{x}fz`Ufmuc{G{v%HS{{pBJzB6`tr8B8av8inD?(UF=zrJCx$ zu|&*X{r2VJoInB?R^w7eMEx(dMlhSZ8=o%<({iYOwu!L;Q>#hOugCC1deh#5_S{1s z$R`R^#=FwsbC+o*78hl<mwKZFEa~N9`1w+Z&YbBiw$vIbGWV^n7Jr+rWYF{L)z+$u z;}FDZDs}#RcIo2v2ND}o4T!_l;wUb?My(yuXY^tB{Fk~*+(%^z{fkD%Ysn{^)}m5i z>H*Djw3^%5iJm9|JR7%tbi&=<zyBg)V|#<EUk)8#uHE&iU7Pb|mL0QvJU`zxd?8s` zW?$RU!T$8PrB7r~jhz7Qa9iizMt}>ZuxKPbgNvqHTCT9|Mf<$TRT_#~7-8F%@a6ND z+>;5NrJf#@PeP34&R;T{oZpt6BkWsx5|tSeb%~NAW|^z#U3p)JwR-%EZdBGgSl%iH zuGfw7oG8@GOxO%wi0W9xnyoq)KZDC;ytoM|ZqL&VIr1&KDXx)W&S^ld;xiB%wk*$^ zVvC;5;HW<+KM>46QTr<NA<FQxeF_<jVZY<Ph8#<N5pYlKjFL-+x9&hV6<E2vWu+63 zf8RG;6*&7WTN24-=t3KG0lDk2EYHY2jdp4@tG*$v;UxHR-)m~azL-AE#REZ}kQI1~ zo6CPd|4xFX_mAa2<#7SwbT5+NzY&SO+{3n5@5v*>Djxob%TjoSc>Q2R+HftfscH0) z%>&s%G6kD7O^NXrb=a@XTF60^|6a-b;mSy5gas6t`VA&xOJiYl<vTVD3)c80IyKmB zZEyWU5iN%A084$tH{4UMkW^y8KPl-U^bP4x6FDDTa-FLFAQ=mv{sqbbW3|}&7DiO+ za%Hzw!n0F%i7)=ga`P?NgNmhx%P|C>#E&CkKY3lD@~Y8I_zO&Lpy@#bS>N%zN=x%R z-2sz>7`CJpbp34d_JL7pmPl3ByYh~&h0B8lu0i`BSz*gc<(cQSsK1JT_PWlSKeTHc z?)Lru?P`UHXynoMeGyTc5GZ=8ZU{v0iXBivJSR*C*h4Jo!x(_JLugZs*0wOrubatp ze!Wh;O;@%(v)VsA0ig?{Y8)?%`$i+EKGxn^fzGvzBU)^^Kb?rMidN>6@(>hdH8(QV zI}=gm6yu3D4V$hTKFn8#ezv^WS~z3|jq>cLEMzGiQ__v-Liac|5sh+Eko!{XpHXC) z>&xafz!t5($x`_Uzn#?tR*zM+G&&(gp5LR$xejt)SKAMb2e%l9>=xS6>~9zkFI`uw z{u4T>$JF^<p6z)UYtZb5N`>on5UTa7RoaZ#d1+MGMOEOc?3PCZL8`N|LOgPjSa)iH z^v!+c#-+bENv+)mN<ojsYv(@Q>b7xy1Fht~>wvN!EpH8PU{+V&U!yr|zQEykPPGTX zZk(vUp?k!slYvlq|EabH`j3GEgBuVwwRdpPd6G!->-e`Vkd+TYSy16xj_VeO0tDTd zHJC2Wtkt*mdTJ_}B^Cf+e!7Q>zqC(v08w~6#Ml0`RxY0Zlc&8YkKH42U)STRT?G+Q z5pGuo1rn0qb$1As=N%jt1uV`6M@H7?^_mXmnsT^TiN!v&4OeisPk9y+0pPA*)E?cP zbC)?u!s6hr0tO9f`f?fZ94Cy`AVJTpx#_Euq^CDc#cM+hdnA5$7GtnW9P{OCUmVo% zy>P(?bQJ40%L2Li`F9{HqH%kPdtzF1#>TN4lXtubf}vyQ8@6b1u&f~6VLFJ|!RIhj zfva>k>PjY`w$*)6exMa__J#7*>vW%_*4`x{k=(XpPi#4SyqkX!L%y$+1<Y85@y}4_ zH<(0;wpj)pVg0DM{(^~C8{7R_gzIbNnAf>eqd%tnCGS)^Z|e>f7#CQK(tHS@6MkJ} zrV6vF<bnGqC~;V&0pD5j8|H2l=E;|fU4^E~Rr_-{pdoTQ+%f3OQ028SqX{UG4!Ui( zHWKAHURYt|dlX}^bK_F@t|RB=_Tfsb@LY9fuW}8qrBR6FHcy<EFe6_W#v`^xxY(tJ zk&%%!;oG+sOeK*HDJgXy+K&xU#*j{N<mZbTZS))*HD#F7gt_2CbXMVT<R^h-g~Av_ z9K0^6w@}L2Jb}$Q&ZGC1`Vpkc5q_6%G0qR#WYmF@`FLK;)@?{l<9u^YM<rx<sFayp z7MG=pF%XkQ<W@N3>!EB@Gx4BTJlitcoT5gqq3E#3c>9+Z5zMbL?kh4yfndj_G9?L_ z2cwXbEC=fQ>%1bx1!(+3SrnuH+Q)97cE;ZiHQR}@saFOl#|SWTje3*a4(3sNV>Nj= zx-oal*-=aW-rYWF)YqtSB9eCsI-{v~8+luvm8T&MoHM))S9Vk$DmngexFF?zz!NW? zb+<dGfNZ#fsjH%bCtd!Y4fp-9P2A2(S!g}BA=WC7yK*-{Ib_i4p^sSM$bvfR@&|^U zMjo>ltitSf71KZ8VF_S*`KKxV<F?%8uDWS|zYz))%k_8C&%aE6WUf$ai6Zs4H7HJR z!gHRR5ymR>&uV&xdO#Xevgc$mc5w!hu?c#z_A5&N3?}KgK`cq@$2uwcmMZ89oKoF2 z2-4o9)j;`}`Yu=G%O!9eg~L^Vl(B2q>Ec!$pm3U&ywYwbAJwm3JX09n-tNIreOwt` z*>e?|>&^W`#p%T*v!MePqAPTT=cC8UVebr}6@JX_=op@*riWW;%v6u9cDnFkphU1k zqojU?Ib?ko+wh+Ek5SD{_eic79D~~<Gc($8xrE2<C%xb2Y|)$8zZ(2##C@{8NNU^L zc~73eL}l9=@{${VWi|~WcC%2F3EJ+^g0CW0*yGf$-TYAzUAdt960w_06&mce_%jrQ zM@8qYMuZg>x)t6|2HHIhYHVoA2dKzmq~e*Z87s6h63@W+JJ%Sb=cxWuIZLHB7L&pH zt|%A|iC0BEqosT#^g>@l63M`0%;#aq8*ISQq5k;sy9#}p__o^Gk0}XhzX1o?GwyJm zJK1_#bclWqqRLbA?3{X=XX4W~?-Ib~tk>Dh#TtVR>D8-*!X3*w*YK6%mWQTCOe^ly zMM1~0kr1B1VgZBaVftI2EfJ}YHR3Z=#JcVAg54uV)Z(8>Hk)}HqrRhON4!R23=Yf0 zHHUEzL5XXrXK5MO^<KaCz<-OH(>n}nqzK7I=XRFci4uslQ9E>?2cBG5kd9({9_`_% zH$8<vE7Q*ATie;)1tAE<>cc$qCQMJ}_GzgAx)cvgJoRSS>@uh`kGTJ+?HfkW-!L*^ zj&4HvzP%(XTC6}6o9xz4@@v1E=5ESeTL_zmbo};30>u|N(40M~`+eb3V2(3zTW3I8 z|9vu%XXHg(EUmFhF@J7uZtO)t)aMq(jot0pD3iCDn!XkmSu3MuW3)5G7q9%-HTpz_ zZFh9tM^qm^7=|w6n$?;JJj!|-`y<a@SlieoIR<8#4VA@ZH!A#mS$i5Vvd{DJZqcy2 zcW)IsgtBOS1!?@ItG`j(I7fcOsADwEz~=2E9S`4`1fvt&F^Db)r}8N^oj!gZ{<ve> zpJhGUdL8Eb>B~D>S$&7WsVgI;-QZA*5y<}Ap=NBAV=Q>I+@Ec`G4%|FOgBx|A%C2% ztE;;}Ong^RkV;&9c%FcApDBM9=YFsvWO4Q!cIpy3Dg?H`V8z!e)rd>oO#Uc4Y@K9a z9S~&2<4*0NfvoOmf2v%*Ib$}3UDW7k`xItnt&qef`yt}thj|)a##>ycJhY&;b#8b^ zzgTFp!@XK&H{UJBFts%Gdy{XON^HHG=s<pR-At$tKI~knQG6p)U@;<UW$B4(rmYmL zX5bN@rxXuICEPMAb;v~Ypd}Z<K?BbKh|Z!WI$wgRtxb9Q9+$(wccQ8>K-^k`!_sA* zKS#c4x#maD{f&}mv1Kd`K^C5^Db+1`8J{D!utDa^V?t#rfZKdD{zAe``Bt`Qvg@j< z?H_Vp4Y%9i^KdH7P(-2_N(`Ni@|Rz8GZD%qQfv52Gv2P1)|RC~U$^}|I2MYl{u!`R z9^K~GFS3U<;T}daO-`<~g?aOq^)<U5F49$44B=iFVE7-JsC7i?sOt_owv+SPJ8)i& zdw-YlGVRJu5wXjJ6HD)F8cxwfSnCevO0a)MZm#iU@v>n25*vTEKf;^QP)P~tEnQut zQ_}!L@Q~Cluh{LLn{;*YPIQ?!aDG{8TROhVWph|v+I>0M(dfN=BG=)q3nDi29lY8X zU*6Qx^sUy@)jidQZ6uic5%YR&UvoE$B`_NnH&~wAY^hI)sQwT^i<+7=ECZO;ExEl> zEy^2MtNs0P+)$fF0r>|w@O%=oNwhBGXz^(}o3%{|8><Bg3nyJf1SR@^UXS$leu172 zmdFB+_SMIaZ}Da*-++4#@8FqQ^y1L@OM%)G-mh5W`Qmh+T_o)MWno^na}epzLJ>W$ zYG0Z%TLNPR5%OJ?hgUjbbUjT^>a#_r=dVk&Pht5;Dd=k*yD?Yj1Z_GAzLpq(xrCY7 z2Wn<6-A<$MS*q*)iHQb6{Ggy@%3FBr4E?PkTI<Y*@|YV6;%~p8J^j8ncK5P+F7mfO zE{pr45XxD7v-xX83R4(MxB!tc0ZnguJKz&Cva)&386MF*2@AuQg@&rf&Os-P-^PYY zW|eUwR#!hPy-mM*ji!~OdQDrqdJLXfI?l^pH|WSv;j6;Gw8|+Gu24(P7Y}#kMH#=( zFy!F-Dd*LJ@A}IMH6g1l(j)NlIYPGRih6)i20Yd|@f-q7-Z4`t`tTwm8;?x_srde2 zNPP~{*S97zi!$4>QDx=j8&CX=z%6~(-n8-&NVULJJ%SoWv2>T(f}>_*bF0AFVwid* zPi}W}3m*wL*<NnT9>%6|(L-EIo+!2f-QVLo)Y3v)K5VJD>4ey@M(;w9Q-O1pps>1! z_d!ZIIAbxpYv^yM5?)rC82Iu63=NmW99IqihhO|U8)~j2XHiX7s|ilE<QGlFRQ%2& z+Q;x0MdCP-z@kje-1ix|$Gf9ugH@ldV+|))RwTL`FGum)USaUy>Y=rx>nx_kRATuB z2nm^$k~kqIYZly#;9^67W7ohJbAy`ti*LRyvd({e`R{EF&u2i+jJoUG>}*4(Ix>|3 zoNZ8N)~&{m=fOXaMOxql(ZkqZ$&M-PH|Q-))~8lh{6<%uvl0>*^qK<r@HVzf8KdK; zl(I%2!FyqK_ESsGUKuH*gmC%R<QwkT0N8D(00Tc-Z&$%?&n_%@$HcIZ2ECeFyj`>9 zaw6d~#qUOGif~rJS8y|$Z;Q6bj`mj1jC8l(iI0LMl;qTP8($K@J^T%QG)!{C_6TnF z=gq2Qs}%=XEJ_~bC9~UsvbnyYp?ft^0ow8<JChUSzO8!J=*qysy93Tvm@+gt{FJ(S zEbXknmRlU4)r!zr&@VW9WX`g<c5aWdjx&#T6<8Bi;T%AVJfgpf)B-XxOU_=B6u}FX zn&FD2^*di#z3C{4r7)Y@#kO;7w||n!*;^jkwS;X7zhtf^3~)d`n&o*$JLn=56-ODu zMZot}@HNz1_+4t+Fion5+4vYCzO-|-I&1N^b5_7P-vW|&$HdViX&O0_ly4ED)o}_x zF}@ZhQJM*ynT15C07h<e2p3V7#MZ?Nh8OJq?w+lcEZoa}-T6iW$9-zPL-EHuYADI> za<}r1IpZo2%+@Y~L*T@Sj1WZ}p7@I9QGWC|4)lPfj<;mPByuj22B%Hgn$?2e9tiiD z@gG*Tr|&W{c1^Yy%|&o7UgvoI8Sr)$SBe{yQftGukK(TgO65n~i0%d_Lh7!r9KXe& zA&!-o)ek1uV|^1N2UI`=d;gm_15|61H9r!Mirl{l-M3$vVYaob!#`(>lREC4XPweo zLuOiMJHpcY+euQ2Pk&<Fbedh_yEr4jcV*AwfOrhCZ2xfV3OfuEj?&tsc<?Quw7a^v zv;t~rzlapChR&A+UoKsrnag|xUwJvEsQY_|FK@}{4O{>;k7vGo&a)XkS3~}tkH$aa zUGYZ>In6wpU-y*?I6+hXJ2I=#&g`8CSldCuswUc}*ce!}cQ`Sb$RBo`XlIG`WE*yT zS^D}c{46uv%AZ*lL1E#L&`^m=N>iJ;6-0a{E>vigDNvv{U1@G*|B`Ce`U@GELYTL( zFriJ)zuz{9g*OoCGEd2(h7a3)QkXV33l-9Rm7C%OfT-cQACVAty6+%jxO?}WHAs-K zBQg<L?-*fM1yaKL;e=VytZ!GOxibvQva+|IY|MOgakK*!R{__{_err7|1U)>0_(;h zYC4aq9>r@}hL-ijPG;^b^|+2LZSG@d8SnM=>@7UbY6uM_w<Wouj@tPXmcBBA^+LSg z5QbeTc_}1}^{;gQrG7kQ%38D-(lk6$t_vVzn<!Ch7<&Wkk*r0CsV(Z(q-DB<IIm;2 zV2^mn2*Fn^nywpbZu5AJx69*P-3Cr7;&&xhwLh7RA3Y*a5Z!*`xoUuv@VN$Ub+mw` zJczs*Rw=LU69Fx&AR}imiqwicXz!o1_mfQQJ!oyUzrh_BW4$F10>OW$74P}AT&=&a zT*jMn`t*Ipv?PRh%IS_jYlX_0?j-7)TfdU4`^B0oVemTpQ*=c}fl1$ID3PHwJ*8<r zHdD*PM$$f%D`vYRB0%`*S6r4+5h%B7N-t6Oo$6kAg4xF5!I$pxCKn3hzAOz>GdFg( zH?eVX&C{!KYtf}A%cF3_o79lY)*bbw?u(%MGmPNfQVHlTB<^3kts6pdU4!aSopu}( zaEG@;8g)^X<dv34U~1P(?8Oe=`(cQQd<PjONelnk;!83jiuI(9OoSZaRzG)_-d}VY zc-1z%g^s=^hIBi7CM9~;<>CE?+YDz#R+^^`o6;4^UUqf|)LtH84w|>9yXQh!v6IA; zExOp|=e9vSLXH|z^qKqdr9mRj^4Sarw)e9PWO#bAGwhs|t+PLv*_fO4+}_w)*Tz&4 zx~^{+5mP-3{(@4{1@TQxraG>@)ZNOm%8=%vIp_kYd3A~7#1`72#c599;DC9$Z7-uY zG0M}6CV(h#B8G@<6_%lrVAm+U_y`41AYki*rSl{;<W{ketyXABbgMOjrF|}QSVoq& z-4TQh=tixgSKBS+b+h;G-QzN<y@nkZZ`+Fk-$S%#I{za87B?;+WmY-fm9>@0skfoR z?`wvFy={k1#0+OPzgAh_#H3P?rcvrZSbGbJ*u_(@OP6Eb+qlS65TBc}AThur?~dI@ zVlP!;N`+yE#-k>OY$IvY-W3CYCmSrwcOu2huaiqit3<XBC#?5!B0+wS6L4Oj1bZZx z!O?qPr32N}H&wJ%Vu(oIZK;|qjg*ePK@rE4LOnMQb(9!WZ?*>Nr!0J%9H6V6E6JX+ zG(4xlzOv7qteU@J@p2nz<fB~7%`ldzx!fV3D1t4}P2f{gEiq&Kp`#<BUTNZa3?Cp4 z_sOdZ4_HL-u4=l3;faSiHbu*H9wT%<9MC;ST9*mbc#YdK5SK0xb6<W%o$&3Eekj1h zFSeJtapkE=Nyy;X;NJq{3W@G<l-9Pkg=$rOfACH8bZ<B@Jy)aaF`Gsq1(AzOYpC;S z0cGWAev9UX3**<Wo73pr0$2n($y0sk2#<VduKy$(F^KKw2=k>W-(hDTJ0h9r?3$*) z+IfDF;snCjWc12IwQ>p$txCf#y(vTOt8mW-MU2ui4TSYNPHU!V^^b&{1Y9&g<-j0j zKtKq(5#_q=&M*@!a&iEV7nzPd!K0uz%w_E(P2RHTSsEF+Kc=Rk=x8gw<diI<7t@OQ zyP8NbA1;!O=JjbF7B%aL6{<^no8Gplsi_HYQ8Y)@-ft1vLui9wm$+nEeOx4WXyxdb zqEYU!wKf{#J&a9<X*X6g&52P5Pi7K+4;{O~f|=Ra;a8A4rIMKq!4P?-m;~y%d0OEO z;edpP?SQjr%kqE?%`vMxyj^pyX%Kt9T$EuNeJMiQC<oQ~jfJPE=f_$<<iidEW~+Uy zd6={Nz*N&hC1E;6KG%5I0dR-rgNwm>8Fb5Umo3n<%TC2QQLv2|F5?q#R}<aeuqub| zjv<DB;v%A>O}4=d^-BB(BNG$PK}^fLYS2fNIPI(n!@7?aa;xKjp?|B<h=NeB(lPTc zXn+hm)IUJ2bG<bTad()UbeJ4llxX8lL_sHWGa}@pv+9|r_%;Oj!He!Ge^bt^*|n5U zii6JVKGcU(?Wi8+MTs=hzPRVSyZ1BS{`N_FGeG-IUy(zxyDGLh1{I*At~cnw?gNzu zb%oG51xmu~H=KMk51rV)`0BvwqVbXAwV6=6=w%ssI^DX3(?W`tC_BYUl>4%aaCg3$ zQssLFqb1`9w>_c+)QfdHelx=Hv<bBs@!@aYKpDVD+>abYK1l{l_Q#bItYf!-Xl0YM ziTdOGP2OZTF8t8qwAdtJRj;JrY>#_*<cmA;(V<{8f-`ob{nw<c*a{1@1rjjT$J^g` zdOCg-UyOou(~p|p8_=Rj2yu|mzsnX=B|EH?O@Q3L4JxdsqlVeR=<&dqkB@s`L)H*3 z62K%{AD7{c%0qH$!QtVOYwt=U1)T*6&?0Zc=HoNv6T`D7LzqZPZA!6^`yJcso;V|- zcf==9U}+Evg0F||h^*@1&(CB;f5577f3on7g9A8G*5^z!+eEX(7dAoLLTm_9H`tas zaoc?q9C>Di+r@G9_4R)WUL6w~Gk(2pQ2!kbY1qUvGBQ-e4uS*2Jctoxp+9$cSoA!v zB%$Y@s#H0PwzSAV^U)z<m-ipr3=YF@vrbS2mab<g<;fsn0YK6176;;?)<2bFIBn?c zdPH4?sPGB!Np{M;ElVxlC_>y1S`}(Bhtm-F0y4&~)Z>@}k4k^UA>YX^t7Va~46qUt zlR+`CU7y=pHL#dHmW)w4bIz+XNlqBw_{qw$l1W~k{z8N9taem5a2Ja_>E*fXq6{gy zRn&aMIhn4R$<^bfcM?4IuNTG?)HF1lg-zw2AB`cdodLQALa)G|eJ`@VH4XcM^%&l0 zU2`p=>@a%HbzeXo_C7ddq1&|bEFkk(nV4DRvBPweFfkdui;aW$j-P<Fx{l<R%MFuU z3Y<t(AObYp8+t+r1gPjjGHN`mFwkr?RkS<)mli;6(DSor9$X2Ej>u@8L%xLcTGPzv z?xjpeSZa)5R0L~!bl{CgDfE>WE|Y)*HT3IjE9bJ8%$zX+6r=lwJ)F)S{NB(hKYQmY z!WPYol=C&@kN9y^jNeOmj5=N>Ns}HO9j$L|B`IfXLI7k#MO#m*B4T&cabtJ435D{7 zX}x&YTGvl%moy`TKS?q$lH3RU_meQ;Kt+Yhe5gPNAZwxZObMLW;OMw==CCwM*4fWc zSqo2tqm?{be|Ato&Tz)CqEL_7$cV1`sIX&_RD`2(R}z;|M|>iVB@<|;hW7R_OUcXm z=kFRcsnIRDx5rm|KjceDfi^i~%+&Tkb2dnra@(~3HWwFjw-Co{cF1V1Jd{q*fJAbS z*;wrUjmzZkq6zVQ65OSAz%wa~d8!kdd3w_fT~^hwzY_c{&YjzUzkieZ<|B=QveC#4 z^ScVWv*KC|;O1_L=ns@hl!|m|5L?-{XtzbbX#%ndfM~b7!(>5+-9LZwJoS+I(H<gS zqEGhN*7h@XHe!8ai0UCLw}0A#Hj$;Meet{@wYbaXe9^R_9gTfFXXTA`2R?kyBV~zv zIo$Z&n4O6bJGM2G*xOa0^?pbhNIPWVPR(#H`Q8@V+{-KfW44EH-Pjd4ORw~2da^K7 zFLdPTUGN*%S*o9SPehki+F20mc~TW|i<w#I@WK)O>({S?8(hJ!2DlAllvmtgO8WL6 z7Es0Ko79?pz0USTLgI`VVpD&}_8u&j`ue*^$F3*aqNZ!Wwm{x2pq1L)Beb_2KTAmj zLp2{SGDcy``7u>M(dzwu{P#%{O3TaK;$>w;*>P4LLH=)Xq}OZ!(0IWiA?w>4E&Lt? zW13M3{l><|@Qh6?2Hg-)M)m!6+{DZ-MkQkNfs2QnJ8LVenx^4H%R`8{z1+~=%Z5_w z9;92&2=~fB;Sz2_Izwcn%8{!Zcc{zj*Vllwh@w9!_*-`XHtD8*CalZZNM~6o$!7*- z$HK!Gu3Tv7?!HqewpMT+J-r&XSd<x-UAP6d0Js|YvM@{<$R8RG4uy9-QF;SI`<q&! zu*a!LoT2hp?IX>D8pX%&>un(+#$oK7PAfkfn?Deo;D+QrLN?SlUb}Aa5V?y?M(crQ zs&r)ZgwI~EMHTF;pS`?7#657V5k3I{_qe%(PoKT0|1h+i4R35CA!+LG7pN0Sy?w$6 z_JF9Ctg6lLkmlg?)#qMz!Z@Kh_SG!2$nD^F5P5zxfNfW8G@YJ-#3my@{gS93QK>_> z%Nw*LIFu>SjbOGYo>$p!F6g*I;!)|_>>=e;5wxd&2Qjjecez09qK>s>aJSz~yZ!F| z#1oYV_U`A6-q*dW&}cs^On5h`#s&3L(B@85U8NiA=3)fuN|Q&IU_oxK_3m{eziQFn zqmy-BnXCxqum^8H&|ZngSx?-=Y#&4x`p&Dit)A)J>lG-u{+>pOEwGp}IpKbb3*9)< zWcE2hhFY}`Ba1SZWArLE+DAkl=l{4H;O|*!bQiR^W!ndL>*g6>kn24f*9>&^_=n%? z<V>}O^j!OXP{ztcL-!ZCSHlYuce304>j^S2TiTZuam={Z@5TX*6%pB*3N2F&D!C4H zqU8=9-*BsuK|M}oG*C*y=^3!*c9?J1L40wHe(8}!J;jxs9oIeg#&Igg!X(On8Jb9g zPI8QV1z#t6<A1_;S52bV-4kZg7aJ;8_luI7#^WkI!e}o=OG-Y=1%pS`p)+{`@j>uf z+*mDGadoLb#nC}VCU`s}=rzU+h6Bd;u{Dp?_}zq3@)&P>eBuyWe5$K^dw=s_zIg{g zvoIE=<{)$5|8hSaDV7S><Q0nwxwCv>AvG2pe0qz+rS)J?T}zd9My1oP-LoBvVw$%s z%D?-WNI*%MymJX{R36Y3DQRM&CT}1kfxCBkxoXeR=<&b2ei9Nh;_13#L=Q}E_Im~E zDOR#;<p)s6-5~5dN|t2Rs$@qQ03Esq%qBd1>r>bhR4VH~EnME-`rqz|%8@V#*S4#F zbed^x?;>MjhL*b=Hy{P$32^T2bF&8|xN8K2=hEJ$wzXmIP0lZekf~n#-`5oXo0c~L zXXM}py~ui33M$Zw{rq=pYXBhxWzh}Ch~GF+6_0n>F$QJ7?d==?xcBf|CDG0A#(<Pp zLz1Ddp&UMFd=Blgzb$}QS+UcN0Zv6QF*Wt`!@v8=jxy=@W08;|n*1*655+0P4?}zj zOkijQAXa2a<KG---Xb|t^t>8H&TN^{m9dky;F^SD)qB>oPyGM!m7Gsszs}phbbR(6 zsfJSx9(mlF*?-+YZ|@mzs2V_2Zl)<F#(w2PofpY)h5X--$^uk?|9ov){`_xVIFUYZ z(f#wX1vUM5tK+7MA|O)#e9@c!Hv?U>o*W?S|9l}b{=0=TkPqCM|NLKOa{s$A@BiqV znOk=>dL)4>W!EU*|F^{~f%^di!%rNICWBtVg~;2|I>;sa$7gN%>N)>Emk=KM|F7=n z6`|ZNXe06sr|%I!{2o9$a@%QPc!Cp#pM;Z@lmFx5laeBC3iWjt=#>|(oUBs1t5*m6 zBzjHHEHtZYl-aH~cf}4R|MOY#ZgxWj#UlyM5ksvXBCO1g4<Lw0*lije^{>_PH|RYY z92kt6Duigh43+Ya>K{Lnw`qNV_VZp~aRfpb#4TEmxQ+y(D>|H1zux?y<q-I#02$n- z{1$T~UoPPTF;brhft=T;veHf7jq%^!=|0K9i+NtR-AsW}=hcS*@Df@b&#{4?<_QEz zhq1h!TJm2ma7$s)nIxUFZ<LK~8<0`N*UKJNt|KL+=O1M&h|f1~guHRfyA6uQ!R;n7 z+nY-Ne4-@kmEc<N@_<4G)FboYUkhc^_=*=xys8{>?MtB~$gUXi=I{*E1v+x;<QEg{ zj(Uq}g&CThF%V%IRSZRjkn_~tOYYH<AQi*4X5akh?s5Bs%LCCbD<ws=vMN_DYO_Lx z7CkI@=A1bnKRcn*U6BIA!GD5A2ev)}5a_6zt9KVFYZ<m_Xm|0v{kQiy<9?L<xO?K; zOBgG{tX9HF04g5P(5tde&n-#n+xZCr@yXY1zP&OOb>U9+3=F#Abvb53cEpC{NB!5q z2^Tl$B&piYX)Fp$@iI;S!gF$#i;sT%brv551bh|r1b`^sfBlO9kJZjDZO1@e2X0Bv z)wgLc1D;=RwT39`v4t)ALQ^p*V83yET9W_vHgRM&6)DELy4O-VVhz@n^;9a|$)1WY z8_ByAA{6IX-{BoJ1jT>-6<MrLoy~7~x+cFj9YV;W@~wOjaWxY+3FPC1OmS`9cLV~i z1b{_oZmXX(sJdnBm}mhq4Z&%2R#vqCkc6fY;2ax$59KUPy=G;-LEPaQ?O>HRA5^C! zB?#Zhfq_Fcj9rZ?kQc3PnPlKUQd1jp%f$Y=d+(k#R_W%eVyP&nm#{PeDExDn|Iv?D zAgHJ3O-#R>j2t89{egE3xxI<^i$QTaS2KBMw^9?T)nlT|cOKqbwoxxOz67>cw1aR| zm^vJJ<FZkWQVCb|alx~@amB*du91~eQ%Ts^Y!X@$%Jx5b=X&Ipa>HK|q>%X<yY7Rp zk&X~cJi5Dms1*?#+m`wLCeW7La>d)RxeoFwWB?(-3BJ26e5xo;5t?ME_6?$UzE>|h zs<4RfJF1u2F?S>74$JdzZDvzkqj@f^G5{YCpfoG#`yeowvxoI@A<(;xTlC>Q&zR!V z7}FS%7^a}Z?VH=dM5$WvM!-In*_W`kJ0!;ei6-978QC(VK~ew)=wBJ#GmUTYwDdQa z!dQE>RLx}3E*n1tX%xUV-ie<G-QBB>FpDOv(R^`#?PEF=h7Q7zXU-CJ=Zy+GInUe^ z;SL7m<mao(G6Fo9YTaXX&Y!k@YtR<hvuU4e4SU9$0$U76jL-w)eT*~|lI8uH$r8D@ zg|_V_W-J}{TlxAd4!*!B!!eWLXsGhxPiH|?1|y~qn|F&rQ33KgPbd~%9e$ao-`{zb zXA62pF`Vo97Uq`v`o=%VXSQO?*dKDsV;3*Z_0v^jfo(KbbBD(9@5O_ZpG$q9kY`wD zC`QLE(rr-9ARbMbaKaGcz83_d@gnKvvC=yb<Z!8G%#CPa>#?Qp*3w%Ro<lFo?pYph zQZ0|VF>#V_{o{eIh~xc@;f=w$?bcq?tpmH8$uGjSw;~AH{)A_%Hi5-pFT)Za<MaLx zl1@2$ygA4J;%sY<Q=eT8`3I_#(KkvNs(}$HL@+HkL!FyMpua8UoHXWfD;rPw4(@SP z1@2Ay>%k=$2rVOnZ+iEVlpSGOM%dqc6+U4cw$=_C;oa~UNY|`ul)VYlm;}^{>sy%h zJ{5etBbo2IT_#&xY<YMOxF{;|eIiiIe^Q{ggg?E1lg<B0{P2vFSNU7?N`R5`Qz^H0 zkU$6(8I`v$#uVXNm8Y2|frAIX8ent=E8v>7aYWmQ7v&_&f`Lxrq_z&4GDaaGA84xe z_9zo3!!25U0Q0M&68rj8DsW?Yh=@e?q+8!!Hc?L(|HJz%j?O}dcKh}n1nd9@9$Tl* zefkJ8iy^y?k)S~?%ke@YfV%QkEarB}5J<JR*m0Cn_Uz$ezO;-CsFT7@F?dL{pNN`n z$2vd&ytBOdu{l#+qhAw9gkW~nP&JMQKn7mRrttA?A~x}TOF`E?&i*WoM9`vmI4Vit zg7V58JwJcxN*|{L-0akc=d-O`Iz5~sHtKyr{N|$_1ySPpW^2T{deaNyPE=9~vGov< z3iGVRR*z3{@coL=8NRGu(HQ>rg^<H0IayUqD~J>E3ia8wj$c2tUP3l4!D~fD>Z4v2 zFhV_9d$)#kR7><yEV5(9;>Z8tNopDKqvo;(Tjtj#--O!#mN!G&h%-P{ZUtO76<BY` z$tJLJaJZdaE$+YEKUwKG*4Qve{ox?H;Fh4^XLHktX`rWck70XS;y0Cp{Zq=}<m;!( z%H9gpam$*@@Ii%;>&h8?czl7QLd<f%W8Wg^Tg5q4+Wbl{<$yr))~z5WmT;rC2twfN z&zO}v<O?^U<EtN4Kd!@v=e_3z0=q4egXk6VO<&^Gp#$R6gId`|B3Pt=_JXuh=J@$X zAT|RjzjQf&W*hoCkikhhsG?Bjx52ZvMusXU5ZuP=Q7QU1A)|R@aoi}zk`%$2VCkpR zhdZ<57U^}G-tmwIN&VxXp7SDNDEEMlLrj&@zq*``Mc8@PDW0F`?&Q3MR5qoJt8%bB z^dDYsT?sl`Tg7Fupa22%2w%ngzJ0rSdiG05NJs<sEGpb^5iJg5xSrbB<dyy`be^OI zP)Ax?wuUJ%@PW$hP3c18E?P@Vjx;gVMNG$65knAm<AouBpw9dEvBCD3q%ptCtX@VA zfUABtznPnlI}fKfvv^0I)1FJJj_6XQO1Ew)tkTXbTgL~=tR#<|^zVW`O!lzIybUGz za4hpR;3(@Li`tt@*O^1FtYDM`r^&84%^z#_xc#r{zWOi9sC{!NK~kkdK&87oL>egt zLAsPq=`N+ipkYYq25E+n?if;f=<cpPe0TTrzJJ25KOqdm%skJz&wZ}@igLPTS?rFH zkt?~UI@SAz7gLX8*wuvKC!)TT>45&~meI)#5iwXMjj)I-J`Rq$N@~0Vab4n6XM~`Q zDbnL2UJ!9FT3d=jXRV<y+Wn{_-&`{bIlHS%3pEK+%YNUXI7xaTZzr~GbNT-BZs!1t zK_w*sE&*5S9T;OpkR1tvJTtJx9BRZ<0{6f$mr@w!NAXnGn|eoLVm5=i(gy(L3XgJd zNZhOM7h&J8pGm#4x6OwC`UOue({-w^E9Ln<C;d!P*dKZ{THvlG)HEFj4pEPAsRlIh z={R>B)#fg4I^KGnY`#{w@5+hk-b;{?mR<&!uFfP&+bdT#AdIk>ITTGTQcaB~pLoT{ z*s~?*D66q9<t9Z_>3cC@d_Oqon#LSgq}vu<xz6R#Z-3keB7mUqiNSoJ$2gcCeyW(p z6V*$|{Nx#t3;;YCb;}?F`j+PK{j0W^w2*FJXqD&s0Vn>$2v1yv7mZnrR3PTvGCe1N zn8Q~!if3AwmB>&M$RV~m4HRHr6h$fCGc)J${<w~eNFp8hcOKtV4n5$yK(~6Nm4@eD zeWeCbOco5j3k)i^?Gb?xvFY?IWp!OT?{WeD`2)I1<t_BR>h0Q+p`D7l6E;dv6g4mF z0L4eeq5oOW=M@_F6)x;B&1}ro1mRmxpw|SP+o+7JCORgjB>&s1gm^~XJZdXG>r9h| zN!E!uFj71gRicFLL{$|JCHM676fHEyk}fEf)%ieupkS$knNx!Bu5cIun-pk09{zf$ zS`POGJQ`_xvZTt<YcXVm$7a?~d3OPIF<0;y)E^Q69D6LReqpzoEUYq{?{A#B!|{ME z!~*R4Y-eU@@u`Wuqht0vm=FX^kPsS%Pk?SI<4qkG(KZm`Oo+@uLslZdh&Q21+}}C( z+2+yCoXn7~z7ib=T_j#Azc=4Gj!MezxZ7znOIPrE6<CV+mp8ZEsEY98ZYZ;49}n25 zkFGA64VjMc_(46AiAwGU`n*f0ZhIl8?Vc42aV_j-Vq)T<KZ%YTM@9xh-oweDFv@*W zACug_9^_~uudz1SwiDi*XrS6Zy9m)bCi)55qX<DPw_HzlkJI}AJ<ofdQrDd^Mwk7$ zt|&cEmg>sS*SLVoshEZoI3S5KWKfZUBq{q7%uB&<ZCu<1QwY0ba#Rsf2--d<0)Bg@ z-LYsl^%@Jb>`cUV!P7v3-^NBaVE-d8?ymMU>@Iw|+^Smp4663SP8grnbvSoIs$1tV zU`!515D%%8q2h{W?UM^-pRc2^uR$gf7&Ql+3%mZ==vg(ii%w21>}c*_)_~uv%B&H! zf?oUL`cjMKm)HR*<<n5RR1u=hO)4Hhb&&MGxx83u+v7u1Y~^9O{}XDU2D2m#9|CN0 zVGu(L3@#p!ZEy%#1nUg6QXhB3>G<MognjtY4S_za3(Q3l1uQST(G;n2W+4xPxH8UV zQZNGqKMaOKKR>4vd*KiG?Ho>HlMjM5urZq@gCu5DAHXj&GU?>@?fLQypEVfG*~xw} z`WBs(cS+}g=F_DD9jusrAfE!d^5gIjkW-=L#qa&-@bP2Pv(1&2Pluv<dU^@XPH6j$ zpFK!5fRUlT)%2`x>G8=yx^^smT>{&1?D(M~I}c0B1EEwUx*r9qm5m<!6#>=_SQ`*{ zdA@etGr+|fco1(@TQ9VRlr|f!)P@$#o%GFdDajdvxf}L#(I~BB;-}<Rf&|JMpE2z> zj|h<i-?&|$@~u@|73~LGPc@F~#sLN0NLHV)ll3HD-@ebv#bX&??!@w6P3uD_!4<lD zX*3Nc+GVeOJkH&QX02K#yMjT>vaJ3ZVmKp+GM$FM^z_Hd(6*g}?Y{*d896XtK*U&h z@vekpBdL}7DC-F4y6nyO!9NtL))}M0&-;D_>(AAfxvg5ZR4<$cGlEte=w3;Hxo8#; zy%uRzc6v4CxGuIJU7hc%)Y#5l9ClH$2KnG(U>NrNq}6S7`{9p*KAI(q2PQ1BMpK(G z&-2k-6)>V+!LJ5tS-8Pl8re^-`@o8H9W<`++%8W*F$OH;A=!P`&$sM4tXrJG+HGgf z_ksV2{BQ_PEx7r8>HQvjs`h0y^fY5%LWX0v`9={g)cI=H`~v_>1CM-A?SKOb5?qc3 zD*T6g@^;=D9`<|X(;1ZrcETQgb}B=wtATIqCIMdcT2I^;qy#aml1q1@qRHlphIrGC z*7;N*<v%=8`*2aFL+mqG*Y^_Ua4W=O@XLWG_;cap=<j#8)-|knYz-zh4`GDY`wc+4 zCktFytP2bl8lr#|$F0~^%k1!2PfuvjsbzAmPUY&qDwn8*TKB$8`V(%I536g%>F7-H zU|`WiAv$<tZL{l9b=IFuit-3dwGMlhl>lGXe7y1TjLR&{6u|!Gqj?fRR&;{2-+0OS zkH1LjalaJI_jrMh>G7}pOg*z>y-<b5*v!v#RS)vfmFdR-lI!+rj|GR7FY-QXc;-Sq zNj0<~neR5*jV_y9|NM&^Ss-6m#p1!7Q16`;BlbUvzDR~`xHxTYYf9i_Cj&~Qn$IKs zV&7jMi5A)j$G6jO8*eo7gt7B=a+o`^fM5Oj^U>0wOw%-}EO_9FHsQdDIO1{iq!Z-) zN){DZt2NsIh0sG(hzoSytgA$HN8ITvI8~a?u24bXecL6lE3U)f&6~P=>fk6!ldb+V zi<xq(>f_UC1SpBGx|CMhe9|0GE*{@a`F;oYcJ3wl^Mr$2b>&pt2O2sUIWFi*G;vcL z07WcIHMh+K#r*E!(}(gkkX!>1u)km^oUnU%4sP2c0>C-JmVq}?0CCkrzQ;q7GSu^K zv2SGg;v)RT+Rf)Gpe-0o6;`Qpl5|4?J<C61w*CLov3ma>9qW7wB}lHjmuNdUKFk1A z#E7H=RyCg_oAL)*&BORviJZ6FMSl=PL4dtjE|_2cZOtvl5wIsAC5+vi4Frx$Zl0b` z$;oAPbvx^<d}gYGWlp!Akdt?Ts1zXOs(H^ed<;{L@yVpgw}@j8RD+LVU_J&Rzesq| zvq01|bYkRu7SJ(Ps0W{gJ9X`Qx-Iz*ff-EyreCEl%%?5KJ&Q7D_F)gtl?+m=Rh0m} zYj?|1R;|nO-jlzK`T32v^XS$WpUG*%iQC3IV$&BFt&ibAE&*<@Jk@IK<Qkh?PpZBj zVh@$I-yMrluL9M!q@)oJBle{fh_R@n&87L3k`mBr_)t|E@9w5%v`U%wreN_v5VAE{ z5^DhxfiZwcchz@Do!>VOR7AVskP#=_dpf|{t1UeN9OQ?WMW>Q1VQI+(PKbs8QED7r zvF*DAWz!h2!43i0_4OUVu#B!mRbbxOxRipuzX*Hr?axGP7B($?NR#vu1M;N-KbPEP zvv;5mj!#c73wk@u*FYs?q1$X5w>|`T!5f!7kfW>XcX_XU#K^f`_GOsd%UcWPY(krz zLcu)QG%0Rc5JijX7>wXR2MtEU)FLmrB&R8b9WXsT(Nha_LxD`l;q2y{^*S2tJf+%2 zSsJKMw^NNOun7BATD0K%6|BwM(G@o<Y5T(&l0Y*W2%ZXXTsou0@46e^k6Gfh>b}t8 zknyy@;lF^hJGb4uND`lor7|7{Mmk8U`C~If<m>BOpi$hL_bzK==6vrD(3=+hPkI-V zdI+K;{P=9f?jaqbdB-zMglT$CnEn5Vb4QiXKKw_Uds$hP?6U-@`v7#bV1R-9sm%OR zflaqQ0?0T3@rzM2hd>%0N%Lh(@gcem7$qcqJC0{t-d;8-@k|wUZOuea2FDHE&G#uH zHkK>zK`yU{^L79Tgvd|yBGx(jWK{<N&BM<HI4}0#p1#Shz9m)`XXKcA->IdTX5erc zMihm((H#p7OT;ZYo?32BCs{w^^m8knEm}z7C@)D_wvYF|P-30^VMQIKSzi_K2(SY} zW}wQE2mPdj!{J5!1^WNx0(jlSS+seFJjfz<dTAMGz5>dG!`hi+Rn_+RKkic2(a}-4 zxAE~YG3wg9o{7%M)gO6+=9(Od0XKuTG;JScS60f}1frk6*bhqD8pJdSaAuTOE{&ru z>XJR;*#wi!pMKmee;Eek00&Oxuee@Bo?(I9y#)dS7+GRx!mfi9UBWznv2bj6g!nRP z<*hBX^U@OP8dX@=<lNPD{CT|W;pP>|OMG~U65r8f5J^27Y-ZCONC*D0NBnJ@em(b7 z*;?RN`;p0GK<{ZAgp>|Nep<V8^P0t>$^9E6dPtMIC4B<>Vy&$9^oJ*}XWdh(bFVaL z!}(~jt9V?|#{t>71|S^M$9*oU4E#B?L_CFnxw_NVbZ}sBG?(iL*Zlt2QpWjnfRt^p zqXSwB%CYV<z@h!v>?G!X>t!*$_Z-modLJrc&}`!*s3{L8E~n>$U%l?`h%7wMpBo<J zQmN&8X@wCp_tx6wJ|QJk3KU}J0_xKMNlA<Gz2|&(*O7o&@Uh>>ZNL8LA}l20FTAY{ z!L1TK3#@RS{BN|4d7{J&ekASYnW$af)zQK2yhhO(NrId(cn-+AxpFVySf@;}Orse( zD)T-t9N>DEA_)9q`ZUWo&Sq1m(XiH8^?M)0;0}6#D|&@T76j-aOFy2f18t(jt#}Ry zC|o=F_ExjZqK^+O&coBwjC)zCgmv^Lw@u7-Hr?NV-%r5w(GSq;)S6wC!ZRAJK@+O7 zt(jEeKI6iqS@arwY5I{)XzhM?&eaRwnF{?tWt4AoK2S?xnmm#4lO$us(}SlmfVKTG zE<kab{OPBjdBYzSxp>_unHb0wy$nvT&*esc+a#T&ijPv_C?&tf!n|!XC~cy4t@~lH z$L4wtTR2Y+0x{u+eMy9fG9bUlKpr+*<fyHyeJRHIw1jQ&W4Spc;KL}g6*BDROm3G0 zT5^8^4-#-FLx%jZxx^K6@=ZbroE*ISooi+|8N_Rvwl#Fx>M1%>sAC3sy&m;^xMarj z;&zDHm>mPEA5BFxgdga3cIE<x$0*fBm-C+*U>|C5O<8rraBZ|R6=;3KCyZ|6o|7D; ziOFmiX;^VM4<a+fC`d_3oAl>By&NSbHXUkG#R%|gg4HJjrqz^NzIqsM9}(ggdzZ<5 zMwV(m`~jxpL_5stX4tvBghcJk**g7t1RNklk(im8Sq9`Q$1C5`pO6Y*X9Pzt-RjRF z5zObrGF?ezE3}=G*QoN-vmOJmIzzP}U4Cf6>Rc;;+OXA?nbUKN=8szgBP894kxCIN zYH*XffNC~$A2e0#mNizfR-O2_={O=naccS>Vs8GHI#wY=J^#sA2`gPBIS!a~ig*zq zQQ4_PV5CB_-=pQL2Y}!6;`eoF8Z&!+XY+5C??bLB&d$xI8N&w)dzUX?^-H@tcN^OE zpRGl0yHr<8+lqU@`cp;8C4+H0GNr>I5Xm5HiQRuHYMEF8ej{13CLj)RW3GW8VmO>G zk*5z60;I%XeV7Ll1dtvau1+k}^NnjS^-6RFv8lu;`r=pvsWC`|U0C>R{(ViSmK1t# zU|@hv&W8=2);*Rgej}U9IRXt^3k&S19h2abGF~ZbMQpcJ7k~er5CW{wTf1hkz^7(( zI{HoKGn<c?69E*k+q4XHawnIAsrZfUmGK0MHNsCKu<^S*&1iCS){^H5-cD?~f8Co! z)|vV1*|f@auA@yN@#G=E1x%=)>IDdqL{?T*yqQ$?pK@I+OZc(Wvb1czkVCk`qRY>u zAD0qOllvR-mnxpaWE2&$HuMd$lDwvM_&D@}@q}7~UGL+f2gyW-+X8F<SAai_);JDl zcv5}T(OC|h7d@EnVm~9-Y_cZ3aoLh<((Xp%bREzk0k@<9xP~aQ(Iz8Bn+SV}C#qT6 zAHV<!lYS^gIzB4smT{%UsBy9wi>pc-&P|hP49|*V^{M^Nma_qS^5dISm0xO=l0l`O zPf^>_j5f>0PRN}d>HP8Z5EF|?R%g0QwfU}H;HmHL<@0V9RE^lBcyw*2LPpt*V#V38 z$*i0j!a?!T%(^seF76utyO7?$Bf{Dd78cRvth-2%LiQY!HAY?^oS`>weaUaUUZKQ_ z6mew3mTH7)^;%L4#y0f(h_prRUnvKlZ*_ADcUPF`$#<kPK811l3;G8T4ImrZnV~Cr z2pJnM+jG-b8Eq2{bo^Qy^xt(@-Esz!?Bb7ctg#9s`QAE^*SA7dPdrvgfLBQ9(PtbL z!HGN#!swS->FW8I&}gZbtq4JGMSX$0TvwHo-DxE+XmUllRqpGLT3Q(~HT=kA{C^MO z_Z_RvCFE#IY0x+YHZ^|fuOiDOx8C?bND3}cy1<>hH4CMP7fq9kt0N&wj$ekD07N7r zLTX&$E<wPAC`X0D?ks>q^c9Nm*<A!-_!=3GL9=l_iDGwmfBWBk4dbzkP=N|pVVY-; z#hwdcq+wG+z<LIiVE9!Rhv}&L&O$k9(`xUV;t^^-Hp&cP{<hA}N0wEOM6dAvvNzx1 zAw`lS{w=7aNtJ3g5CLJoDnY}WGZ2wZmZzUxA)r`1vgmX1%38mQ0&qH?pdy*jDRlrE z_u+Va*1@{LWV`+!A40FCr8Vu}F5!{kvR@RKlK8znOj>99K%Ai1E~o41ezN&A3$;Ou z`mfZ~Ql<9$^?YHb_&(Jd4W-$7e7Z+U+Y<#AW83A2I;Z7didSI~imbx>=MJ}>th2Ct zNMSr1N0KsKrG(+kglggVLsorU$ww4B6_u<LEws>(u+FPu;WCrkEn+e}$c)Q9YGNc# zfH-;7a_*4f-p^GA&1!5Wjf0K_e!Hv+-wrP@jC_~}e&XXQnrT#`pu^zU>e2g{TrVJO zw54gn`O*#9Qlm5s@PT;pG>JiZvH!wy6Z8twPD`_R_={w=)*0P(k1X{}vp`)=LHVht zTl3!Dysuw=<=Xl+E30)f=Q(r+=w}g|uMkaOauu=|s#b0|t>AS%fSSikHVdPQ!eNff zl(?;j`0aYWd8pxEt@Z49N&~7l|5oRlDv`e`v$1m8oT1_^(2zL!MZ$w;{?bRxvFj9J z4$9ok<$Bu3a^r6!Wv=t?=%j-FXB!*lQZh1`K%0edv$C=RhWiMh<1!u|>*|ulPCyPy zw|Ju*6acKgmjP$0)@k!ui9YY|M@sVY55Z4hjI+3U`lpkBWV@&(D~~#)YfAWh?-d^# zQt=TgH>F5KOBC$-;IIX6X=TGtN!Z2YcH;SkaXSYj$SFZqIpuHtYPiy%&)Q9gy|Y8B zUrNzSwC6);7^ZKBb?TLe`dVA(5$8$Qth}oe&<68~3@k1#?#12B&~r~`;+a>a`g#k} z_tCP5ZBB!h!3m;kT*}TOMuX;Iv&_uOmBy9fa(wfN-{tQT|NI^NhM7dCnWP>0!=$-$ z80oeH9g7ucJug=$k82%-u}#G93GgVz{_c5a<h?82auh8}jL!y_*|gMMX}Wry9smmv zZ5yHj^`owvO|{`(DU~z*IU$n;|F(_Maufst-yW!vS(5qjgQK84oSHA0l&idoR6F39 z=ys$5Iq0^gZ%ok|b>^J3diq9!u4UG#J}+scyhwhhUO<^oii{Yo80lAeR2OS>Gec-? z&&Y&DekHUVoyU^mp8l;;H>!Kg8XJ$H*7`G0h2k9VtKV))%IaBy=$#m{_)HuLwYn<Q z0!5^H>lSUy-@nZyky{33kaeu6^OCS%_?o>Gk&k|%v@=|lL&4WCos1WlBX!cdf`d9W zH3iw+RJGzU#?*IDt?xWaA&?!K`0VjcISN<BGh*dtJBB`1-xgEBaZ?ZqO~GuG*UE{B z9@+lG!wVr9w;EKM`|Y{rC@Rbvt6NgShT%(K#G{y@`d5Q3xL6lATLBH+Nm(BA&Q{}6 zl_ISII{2`-ogM284XcB;=ww4Pt6=qS&$?97kPI=X?;JY5>+|rZLm)3Qf>m2<D9FYN zO?XNhuPcgmqd3zdTS~rDONoa{TvmLh{vp?XE=Tk1WMlU6%=y>FA!f}boe~yZy_CbH zYgmUz4leGQ8-4oYl7-rD1+mOVtM$1OFhMo?*2$*D`Gqy}DsAhT=K<4d^kg`$&JGgs zQM*gfUkJIEKhh<WC#I^e=^-tk5~TOKhaj@<Pg-}&Jf$sbc&Z*f3#D0r-zmGZ^%G*! zD!8vVheA_+CY34yV-E=R0{)eYi;JpNYL2^mHF`1>$~wx;l@8x#EqH8aIqlvIJo2r( zu3`1-Sk^OBQ|TrR69_Bug`<S#6VI>K+*D;y0dGD~<9QUKZS$5rAAMlHUQV`KClV5S z$wZbrcoUXZV;7*yCK;dp8YEy5F4GOY?w&YRWr($Bpng)SUSMcq(&+1qYaQI{?lG5S z1uuajkCc4C5($e407F!o_m5rnvA)>}9?z7&x0qV{#6>RWXiHSrP;WfDp7w^WvgmHV zS?eMT!;9>OFh_+fTE=din@n?x&%`!4?_=xaM(xV(YG^dNcSz!KJcMIs|I~7l=bwsj zwN<2Gc(bHw4$+rO_=1Jn%t_+C9)nXdvY)((?DDTxlqdMa=-^!fW2l$5^SInB3;hl- zfq&8Z><Zb>l$ATRaCG(b0E8(=m>Ls<ny(HH)XRRs05wM(jYT{5sBsHx?$uc<guOV0 z>9P@1og5q;{RIlMj$`Xge*fe`=J$kQUTuU5u^)AuKx4Y`Y^*h}Yhw~_W<2G0w=q5b zy|>aTH)@01p2TvpD5{!up|uWRFPlsLWbUK8Ye@~C1Yc%mmU~RUak#H2FZYMRmUKtx zhb~jzWJrC!4<qs>a@;<tAUxBtQ~*4o!{zh0ONKdT7UR9Ks^tOfQE7MVUVX8FQZFUI z#@;b1aAK+TMgN({1&Pc`&&B7Sy5UOr%BcA$C!+5V6riU;K4U5rwmnTc2`e$`iix6l zo_xiDX?E_A*Im`coL(ma6xZ&=B7mSWn8nbqcbqg@W9Aw`Cf2?aXb0Lh!;$mCg9~|V z+~?w<>1Q@++bKUn!g6F;1&LC}skMJZniwUTYf3+&uiFe3R8I_Yv?~<J+K#D~fsRg; z{UAe*Rr0d2=X{B^PH8HEOx-g1i1pUSe$AhV@+{~$gfF%qT`5+O(P#Ha>SV{7MrK)t zw?_8<Ii{0te886y4T0;|;pN3UMrn@1MmBb4UvHqHRm8j(Ud@<=zHq~R*%JG5@A4ud zJEliUp&PMvp7%(W<9R^|QvwVzL0;S0-d>AozoO38pd5#=nlE?z@yBDvBe1JL-ww<s zP%-><T>rN7gxCDtTZ>@6@0|?R#{*kd>zU{anKs+`$C6bk`ai)m(_f>oqs3>R{M4n7 znNg5bO9<*_!k|<v1G<FX7&f#-#Ybjl^gH5S>R!IuNo4D6H@Hw``bUIL9-@5vvw;q2 z(L4=<b$CbwE{D1B&86?$^Q8gol;WXCM<+t+Ry+(kIXu0wjFC3mJ{%2-Z=VZzAcK>c zOnw$5J+qX3?^`fAjv6SEb}b*?u8~K29&lvJ?P~OPkq1yy)A8Yc?u#J`rl%26;?}NK zw2(@ub^lbL^ksVu2r|e|6Cxs_WR7zpJ0{B=4rSodGU7qe@$u3~@PIhz_Pb96gSThG zbkTTx!fB(~Uf**xbp9xULrgn8U8qg*xaA8B<TEO<FiNO!;`4ism&kVG#U=z8+fz+A z8YMFj&`X2BukxVXN|o|>c1<GAatD%|C3LisG+G-=J3IQbgLzQScx=X6%)K#x&K%b& zg|8v(mXi@iQZzx)lps&sH<XVxDcRe1-llWbRez+tE<iaK-*f8X14DEdXSvKmo%S!> zI$cwO2sZQNCdYIAj2ZPk5z*PX_IW~CmAjW`6dbO)HSNdMRJRSW>;{y0RAN%V)TiA@ zB~|39@8s>x4Jg)6C@F2negTC=gZXf}zjWWh`FSu{HDCas3VeYOw-BlOmv@BB)UVXS z={d_0f+OHu35v9O!3H`wJhXMG7!OoPBY41Py)%!($&GF(5XA3MNVzA9Av+VdPvT>u zIA)sCY>fuK(N&O*b%e$V+{eRaT=z4zV-*lzY!_g`cis!!*Mclsxtgr|cKM9&^T!aW z?y!27&L$MuMV%7tdCx!v+{UPWX#CeXPrn3k-sGuV8~nC6k2l1RW7w^IEPvp}Q)GbG zn&xfHGdSC1HJBA5S1TYKj-=LdKwX%Xh4M0sviT%EpV1vO3qPi(KE^P%1A>B$HcwYm zpsfAHg*;2DXqJHHuaN$YcQZs-LzV|^XgEK4kUb`tYEu-XUE93<Y^zo_R69<1eYX|3 z`UQ(Sr|nsjF8;Mh&`B`+k_O=Asdj2%iu1Rn3Eoi#eV$Vq4)25EmvU=Ia}B<)oq2nx zucs5^{KHrq9sQy~9HwbRi*z*+n`Ngb$fv8&6|-zfQ4eLzA)-TZX`;>4G~F9rP2e*_ z0%nXXkaUN@s{?!2wg&&*CB#ldcs!fQSZ!zmj|r~Jx1C^hCh6vR(fg$;ABWp3viG^g z+RdbDX6zvRyS4V5nj-t{Wx7ot@mpd^yQUz!@xWMhCjD+Y+FZlsYUsxNv}!a<x`QM* zvKs@hc4HOmD(yhoAMX$%T-;St^^T<%9;ZR9d3u#Xz45GpKiVD{jsLuq@fDlbClR(p zmBFE6Qg+-~v5=#E_Q%eqvDk7Het4ax*`CUhbmGMFu^JgEk}Ql@W60nJ<zI>iGk_5^ zyM1VA>9Z_eNq+z1yKr7+JucMVPUg|~a9O$U8~lju&<PAA*H}Ekt0Nh^7r*R0-MM1( z5xf>px!!e!_`S(*2d(OGy`Q1fyP1KG>Bn~b7GHVEYr<??FD@9{JH>HYoVN)=;AVqM zz2n;uKhVwqu#4!5lz(rEHs`6B=N-RDSjd}X5&rSJ+9Tq-dLI<O7qLe{#lj<XCf9G) zE%I@6Tr<_KtBvjEbba-jjno~v1ZfGAftmGN{QO)+Eg{#OcfvzyoTTsb2@2!-WxHI8 z2ck+pz{uG2>shLy)EF0+i%-W2)ySWPqJr0kD)FSuz01}iv2H=Kv}7OAUw143UPG2c zXipDfd))$#)ok#$;57O0l3r3N$~O)MeO`}>W_&lgpP^1#!Lf1TF<a-lkhytZOern1 zv^>;hctiZ^>2Tf)o+PJ3JdWmpgzLdqnVFFuitX(kCg55b4-5(MTD8F2p7%}OV6=Si zFdhhEHNREn&T4U&nE6v@!^95Lk5-y-U0U1a@EY#2$2Hlj)gL>{njE^`Z;oE=i<kTX zZ=+*j!OqCYK)7jYYJ$Q*4qS4Hq7TgmQ(E)YayblJfVJV$;-cT(?e!~Qc#|)9O5iN? zyhM*Vb(C1@o~ZhZpiq@vI4$$!>)gp#Z*$u!s3tPKlQqg}YTD|sh?n-(=*0R_Nj$!d z7ikcpM?;?ki-v}F?8ld+>qE8WJ}}tdA*e359NBJcX>Dhl0;MZ+B)f^)O&s=o{#9-_ zTsR!N(5#P{%vM;j|9+M)z52Mn7#=>==!gd{f%S;zz-=7SI9MtU%V#ze_p8|TE?ee4 z$Q~9C#e;G%f7R;vq?OBY{Y_5J$nRW}_IP~N1{r5BE;qlC%W(Zt{)YXeWrK3$_iBW- zPOAk1JG0-y<y3~sYF%CRwY0PnnytSrE$L$=G_0`}Je)3;&!FIKNfwihhkZ_!`a~+u z&$ty^-MME)Y9Av%T;gZQ073omD=VUs0Iu?TX-t%Lk7mQ+s)>l4O%$eKr6&If2BBzz zGM+KmY_bPx;HA_SR^`R#8)<P}2q<tK{~>FhokYyGu_y}vctou8xPFpLq}!QRJ2<$< zW8(yQED@PacH90m^hH@g4>HkxL2GQ6kch^oHU-PtIMzI38~M)Ehm*v~_8gXu>#nqn zDIL?bW_y26kPzLTZOO&qHEn{B8Pc8So(KeFb)ewOM8Am@VSH-94;HTRT|^H^&ftB6 zOMz^d2Nkk9(j+<+$o$#!uNSj#Z9wXvJ^x~<OKJFbZkFsi^~vT4q2G(S;|ll6gMt3K zsYVn2loX1L33HCU;~xmMYKh$$gua`Aw(DLfSd#*RLWqXT%2X>+KI@rKB&w5vcuQts zVe;cRpXiW029QMliuZ#*fNwZ_*9Z<p!9CJqwoLaIK8I7l!^?DaX*~WD%{VEW$c|sS zSxj`K^4<^_JV+Ez7>-VjAk;29RsmsC?yXu@c&J}oav>H`e@Yl*<(dTDuNNOOUJtSD zBLL_b{-;0S9}c7m%7bJ=uOb_sZd(@H_pZSd2X%E!`w@0m@FsrOa(HQzKPa#sGLIhl z3{NsJB*z1-Q4*iE-`U*NYg=YnphY!Ry41$jM``Ic3M^l2AOvWEgn}g#*+gOZQlL1~ zs2QpsAcInfxF9$174`7%O+Yy!D7cZh5-F;`kiI8WaC*FD_^xynF`TIdxjNel(x<`= ziqEBgPly@Au0!OQql9cISK45_r0d1)$Oil@kOA5YAbI2Ct^K8aO{B_P<@P^<Sm~e@ z`5|Xy^Z6TL_<ER1VX_r`wa~Y{=RWnDc9wtTFMOhbBvbX^i4@TIoAegBn@{Hp&(7&) zs4|R{>ybO$8pr}D=oK9sB>;W;`1jWKn~B_$<(1_-;tf<JOik&)92;EA1BtZM3%A8! zgeOsdLICH2Vi(w-zsF`v?<Vnbxc=iuT>P!JaGW84VBfNk$TKnmI@_CFvhgyD(=X-N zes#+p?`ER)#amljF|e=#OH0`s8ykV1CIDc!ueiA0dkrP=T5){pegX!oZR6vF+Qmf4 zd^W&xFz)<~L6etY5bpD^_t^@qeSKJfY_tK-#RJIg$ulv+5%KlH#UakKWDB<j=!;^T zNXrl9*7J&xpqLC%r4te;x6L!Up_Jgc>o-d~D__CY@Dka0h00?Y0+5+uFnY;KwJi9< zW8Le%SRk#+pXDA&!H1FNErKd4g#Kb@-uut~Jh@A?%R}|5aOaLhmjA|R4b^X7d)_bt z$hxRJeBv<L=4@&3+#zShIxo4^tSZ)MVM5=a@t}ND2>CoKj3b$JVc*fs1B%K!2U5Vk zZvzDNvd`<3Sq|jB7r07fO&>OztfIgj<6#RxTk80p?@(wYSSKvd>s`ljx&cCb;%HXk z^K{_eDU;}rX}p(Ilb6J6fyz&;36R;h<^9nisVdR`zVr*^OQzLxO%XklsH{QaJ8|x; zm9!wKo%#M@L>tp<YSCh7z*1j>VV6caf{EOQiF^;eVOm}__YZGL*T(R_zv=l|iUGT~ zx(BOBgkt|be~e2@Cb04pZW|bUa&hAF^RE_LYi1?cM|mV0W#`(bNG>Fky+{DPFzhJ} z`l-zK-q27|$0@({WMSy1d6m{T;)7S2zO=;}I_3o_zQ5w2^{*HO(H>Aq(AopK>C)0( zYN_iZ$ZsZs?*6gAGkx%ti^(6<7;=gVL6MQp<<QsgWR)kVVEg_%(wfoYElT?VsaONc z)s;VsOsP)Y!eZEbG;)iHkhn@4B~}P0m6DPUFp#RW0nq+;yd%5iia9Y+8w^e)=em5& zeJ8h1<>V9sf*Tro_`FC76bK<mY=eVnP4t|MkH6H-=AC_!04)!YkNW54%KE3h;1ndC z(9kH|A&CK3Vr5MI^%G2y`Q|WZu)O^P14VasG4qTH6eKk?G@6oKLF>!*0%>Am;=taK zyY3FHDqo{e+W0*e;Il3wc4F*=-sX>!F??VGSu-nzSyyySTYRrDkO>rMD=M50P8i&- zz&$xNGp#cg*g7Ue^hYT>e_WLbXF*e9CYiR&8Kenwaee>!Ghj3ut4Xl%eSW$sgKCaq zA~O6aIqQ8s_zAL#%8-}y`_OrsI#F;$)n!eU`IQ>=hsU`*HQJJAQ#B`lae4Lh%`r=f zvx58w;G92?NC&#{>=RSBAIHz$4wf3Uhwn7FXa6SS;$QK0JCSbhpck2}s-&H4lv4ll z`!|-{(6dEbc2=HYZHk|~$Q2c67Xo51F$|T7tbr|pehjB}zo6>x3Vztn59C9hO{RWY zvMdW8@$e8-Fghk%&G=Br`@M%{|7%PMCu(r1KFo3rsxn?`Km`FXS84Gir+K|^S5Ew> zBM)d5LPnO4aY|SAgF&GpzCQXd4bL6UV31kH0xsGao|E+QQBYnnliKSA8%#L}1?iPB zUe1k9V{bYm{P@|3)ezXC47`L`7VOc*<W>Ho?XWA$Y2w2;sFGN)$<Ny~!SUv^XMcw- z&d=<%P`RjR7DM%byNxPQia$zBOk`MHzJ0&O{zERcP@m#If}WA&mI*Qp(!~Jsav`Z4 zQ%O^_7{{tN&ZRfBReAQ<NzX>!5>Hi+i^DMg^Jk^(ivDF6y=xc~hY^+5Oy-R-|L5tz zSMLr@hJl^RfBjS70Y~-!`hQ5C)c<!6iKMKng+L&g@=_A&{|~>rKldnvolcUMjF~Rr P)k5T@m8DAF7zX?=TbF2| literal 0 HcmV?d00001 From 5a2e15dc042d811333055caa196c6404e45deb47 Mon Sep 17 00:00:00 2001 From: Joffrey F <joffrey@docker.com> Date: Mon, 29 Oct 2018 11:50:49 -0700 Subject: [PATCH 196/222] Final Compose 1.23.0 updates Signed-off-by: Joffrey F <joffrey@docker.com> --- _config.yml | 2 +- compose/reference/build.md | 1 + release-notes/docker-compose.md | 18 +++++++++++++++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index 00069b631f..406e72ec09 100644 --- a/_config.yml +++ b/_config.yml @@ -23,7 +23,7 @@ latest_stable_docker_engine_api_version: "1.37" docker_ce_stable_version: "18.03" docker_ce_edge_version: "18.05" docker_ee_version: "17.06" -compose_version: "1.22.0" +compose_version: "1.23.0" machine_version: "0.14.0" distribution_version: "2.6" dtr_version: "2.5" diff --git a/compose/reference/build.md b/compose/reference/build.md index af41c55888..0bac60a39d 100644 --- a/compose/reference/build.md +++ b/compose/reference/build.md @@ -16,6 +16,7 @@ Options: --pull Always attempt to pull a newer version of the image. -m, --memory MEM Sets memory limit for the build container. --build-arg key=val Set build-time variables for services. + --parallel Build images in parallel. ``` Services are built once and then tagged, by default as `project_service`. For diff --git a/release-notes/docker-compose.md b/release-notes/docker-compose.md index 35daf979d4..d320b26daa 100644 --- a/release-notes/docker-compose.md +++ b/release-notes/docker-compose.md @@ -5,7 +5,7 @@ keywords: release notes, compose toc_max: 2 --- -## 1.23.0 (2018-10-10) +## 1.23.0 (2018-10-30) ### Important note @@ -24,6 +24,9 @@ naming scheme accordingly before upgrading. to print a hash string for each service's configuration to facilitate rolling updates. +- Added `--parallel` flag to the `docker-compose build` command, allowing + Compose to build up to 5 images simultaneously. + - Output for the `pull` command now reports status / progress even when pulling multiple images in parallel. @@ -51,14 +54,27 @@ naming scheme accordingly before upgrading. the actual exit code even when the watched container isn't the cause of the exit. +- Fixed an issue that would prevent recreating a service in some cases where + a volume would be mapped to the same mountpoint as a volume declared inside + the image's Dockerfile. + - Fixed a bug that caused hash configuration with multiple networks to be inconsistent, causing some services to be unnecessarily restarted. +- Fixed a bug that would cause failures with variable substitution for services + with a name containing one or more dot characters + - Fixed a pipe handling issue when using the containerized version of Compose. - Fixed a bug causing `external: false` entries in the Compose file to be printed as `external: true` in the output of `docker-compose config` +- Fixed a bug where issuing a `docker-compose pull` command on services + without a defined image key would cause Compose to crash + +- Volumes and binds are now mounted in the order they're declared in the + service definition + ### Miscellaneous - The `zsh` completion script has been updated with new options, and no From 22775babc43a61376f3fa8cc7a59013c586e7b1d Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Mon, 29 Oct 2018 20:01:28 -0700 Subject: [PATCH 197/222] Helm and tiller helper topic added --- _data/toc.yaml | 8 +++++--- ee/ucp/admin/configure/enable-helm-tiller.md | 17 +++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 ee/ucp/admin/configure/enable-helm-tiller.md diff --git a/_data/toc.yaml b/_data/toc.yaml index e97fdfd5b5..25e90e3eea 100644 --- a/_data/toc.yaml +++ b/_data/toc.yaml @@ -1572,6 +1572,8 @@ manuals: title: Create UCP audit logs - path: /ee/ucp/admin/configure/enable-saml-authentication/ title: Enable SAML authentication + - path: /ee/ucp/admin/configure/enable-helm-tiller/ + title: Enable Helm and Tiller with UCP - path: /ee/ucp/admin/configure/external-auth/ title: Integrate with LDAP - path: /ee/ucp/admin/configure/license-your-installation/ @@ -2348,11 +2350,11 @@ manuals: - sectiontitle: Manage jobs section: - path: /ee/dtr/admin/manage-jobs/job-queue/ - title: Job Queue + title: Job Queue - path: /ee/dtr/admin/manage-jobs/audit-jobs-via-ui/ - title: Audit Jobs with the Web Interface + title: Audit Jobs with the Web Interface - path: /ee/dtr/admin/manage-jobs/audit-jobs-via-api/ - title: Audit Jobs with the API + title: Audit Jobs with the API - path: /ee/dtr/admin/manage-jobs/auto-delete-job-logs/ title: Enable Auto-Deletion of Job Logs - sectiontitle: Monitor and troubleshoot diff --git a/ee/ucp/admin/configure/enable-helm-tiller.md b/ee/ucp/admin/configure/enable-helm-tiller.md new file mode 100644 index 0000000000..44a767a303 --- /dev/null +++ b/ee/ucp/admin/configure/enable-helm-tiller.md @@ -0,0 +1,17 @@ +--- +title: Enable Helm and Tiller with UCP +description: Learn how to modify service accounts to enable Helm and Tiller to operate with UCP. +keywords: Helm, ucp, Tiller, Kubernetes, service accounts, Kubernetes +--- + +To use Helm and Tiller with UCP, you must modify the `kube-system` default service account to define the necessary roles. Enter the following `kubectl` commands in this order: + +``` +kubectl create rolebinding default-view --clusterrole=view --serviceaccount=kube-system:default --namespace=kube-system + +kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default +``` + +## Using Helm + +For more information about using Helm, see [Using Helm - Role-Based Access Control](https://docs.helm.sh/using_helm/#role-based-access-control). From f9c0ba4790b3c8d93603841501fdc9a114f8ac1d Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Mon, 29 Oct 2018 23:45:29 -0700 Subject: [PATCH 198/222] new kube resource topic --- _data/toc.yaml | 8 +++++--- ee/ucp/images/kubemap.png | Bin 0 -> 171489 bytes ee/ucp/kubernetes/kube-resources.md | 9 +++++++++ 3 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 ee/ucp/images/kubemap.png create mode 100644 ee/ucp/kubernetes/kube-resources.md diff --git a/_data/toc.yaml b/_data/toc.yaml index e97fdfd5b5..52f8f04615 100644 --- a/_data/toc.yaml +++ b/_data/toc.yaml @@ -1725,6 +1725,8 @@ manuals: path: /ee/ucp/interlock/upgrade/ - sectiontitle: Deploy apps with Kubernetes section: + - title: Access Kubernetes Resources + path: /ee/ucp/kubernetes/kube-resources/ - title: Deploy a workload path: /ee/ucp/kubernetes/ - title: Deploy a Compose-based app @@ -2348,11 +2350,11 @@ manuals: - sectiontitle: Manage jobs section: - path: /ee/dtr/admin/manage-jobs/job-queue/ - title: Job Queue + title: Job Queue - path: /ee/dtr/admin/manage-jobs/audit-jobs-via-ui/ - title: Audit Jobs with the Web Interface + title: Audit Jobs with the Web Interface - path: /ee/dtr/admin/manage-jobs/audit-jobs-via-api/ - title: Audit Jobs with the API + title: Audit Jobs with the API - path: /ee/dtr/admin/manage-jobs/auto-delete-job-logs/ title: Enable Auto-Deletion of Job Logs - sectiontitle: Monitor and troubleshoot diff --git a/ee/ucp/images/kubemap.png b/ee/ucp/images/kubemap.png new file mode 100644 index 0000000000000000000000000000000000000000..ed3acb7d597631f2f09902b8e1696e7751ac2db1 GIT binary patch literal 171489 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%0AZ_E z`2v7iwL@$~lUY3Pw#>}dHA)Fgeyw(ItpcS;{9=Rg-dEuYoG2x<(cf1jeVeppxl-V_ z<hhBUx}VW6*w=K5O&ABR&vqrSCFA&P=HVGB{XvRe=X)A-ySt^Zj=4ZC9_nfTt<mDl ztWOR0J$!vPKtth7EiU@<qhB4fEBPILZ2%H2fTvGLI*t8BPD$#@B-bxhT417X%m}G4 zt>DD^OeGZwO4czPgMagEG{U<hWCZE%gZLL-+Xb*{NcOXEZ~X+-lm)KiKt{|v%FKSO zLUn$N@f4si7b41Z%?&Rh?7Ah-|FViSR7%~xO}5}D^&%T~AMHhOV^SP=+kUBq^*y4n zA)ZJ}pT0VKTMwPVn=awtBFT`#uakNBXzQ1spGq9Pz;x>Iz&@qMkGUeRW-CFzbz><A z30obOct<fDksGtg<!1q+gt>i8Szi8YZ;+TFY%~bdj8VW4+ZDUl!GRdaKDG6*(lFo5 zHbyg@2hXOWk#Nf!8|VAf1p(~gd~cr=(F2?SjZit<37N1r#ARO`H1>8iCsER53COe} zRbj|iW;rB`^{3MgDRsqp-S=iCjEu+x5w6yn?Y;oClSI@+*9W%dHEsV1<a4r{IL+PS z&W?_R0vL)EjFW4BO3YaX&U@^;s0<d}+VhhWjo738eF57A#>O>12=y?!Hp;$;IpENT z&-KO8D0hZpaDf8Rcw0{(Q11Xx4v@=?9(k*d8@dj}<K*P#QqdctTEA=D^!D>(*KaHV zN_i?a;slgYWvaPV#l?fOyn9K7Z+-$rVRI67$-PUUUat6?!pg}BlMsU+ZUKP}WlxGy zEY@6FF<1$W8&MwHR6X%D3<(oue*@cuoy%$(8Xb83B~F|cCzsy^mJOX&ei3)k|8#52 zIf%JOJHiitfdnr;C7D~)nOvO-SSWQX%9|0O%AXI=;Is(%A=bw*Rfzc2;NF1L$LHl4 z8AR(r&YeNoQK$rQ2)m8eDL2W9b60FKtk+l?<9qp^TNkuOO&Hz4Luybc)Z6>&%U%V0 zTDgDu8w;`s3bYjB*rc2sLt9dB`T>nLcr5fyf2qUNwcr9zYHJ8?T7mqwvHobnGLbs% zPK{J$%~Xn^jWgU6^=6EDs`s$z_KG@*aeANOUTKWMd5qAY(JZmfkd5#8b2RdG<92!; zIywYjP4C6Q$HuhBG~)-?7UUc1kI`(AZ@+K64K53wu6-^$bgqBgTTK`Zlr)eUZ_Q@j z4T<!CL&QOJw7K+AgG@Xa6?JvH9?sX)Hjp~sUiqSR6lULxV1o*6%hS{)!6a742^%#T zPTAUmc^r~be&ZmuqW^_{81esW9V`Fthxz}xCFg(I@Y6>R9N1IH2HyU=4xu%CSD*`E z;_n`vXbRLy?W_US*J_HY@~RS2QnwM$ML7gGGIJRSivJSs30zXXF&6nS3d(CRMx68? zV<5E8X{njz7^VLb?&b(eB%_YKwY0V#l$(TPksV64kyLOI(cb>|B7oK<fOz@)ED+$H zIvD=yT4E%cot^zhc>TeVk&%BlF`*!Gb94XQTci#t02tK2k36){Jq$e8aAHH8S-Iae zI={)#_))W+7<-PRLgYWDt8fmb;-LG{PxJ0ow=YnLWu|20XXD5epraNfa36?N$(BnX z|8chCAj$bGlk`89gs%iCDYeQI@REr5(DFm55nd7tc}ty^1w#~*M7TtAd;HamaY>0w z(%642NTUHBE<4#}f4n)1$4(o_UI1boW4e}DA6BLxV!Bx(`}&!f-!-#9YM3$xI{IHd zQqd?3MAJrH3vDjnW#ZB+Dk{!@t}rmuCrpYmD?!w;H8r(9`sBnb*QanhD*IDQxvw+A zf1syr*u?po<Br1+GZh2Xz|EoD<`$%7C4>E#qN5@`JS0U)T0{+nN<xR5aj^ub1bAxr zjpc<!nIfJKf;?r0)f6I@3x#E{+lbZC_)GMR8JV@i72rh&nPRbv%oT{eOVF5X_OW0N zWMZ+iGbXiBM8$1m_oY%Zmp|?eQSlhwhWvdvL+orsY=+fFozufCx~-0DFj=NE6hVnE zrs)vi5{c^he%-wx7g}wSn*k^(Aij9^7Y(Z|i-crJy~5gU$d;>H?RHvezg$>xJI~-C zA*lf>zP$k>wX@OkCY!SKmOxqgBcK-ZpC7*WNl?nhe+5<DZ)mNj)hr2l9>8O-_ht?= z@uM(Faj$P;&sF1g_>u{E+OBk<Lq!}1yw8%$3x%Ec%uUp1UUessiacy+%}(k!QE4%L z{p#|aLVsz9p=q$VLO}-$_pPg|PnY9;WJ0cB>-_BOf_<yYS=yVBerfMS&Z{7_uiaiw zUmRDs_rQQRcMaG?#DRsvRYW7D>3kniqeRHywrM=n^5U1~h8xYcVh`Av&aRv5;L*Fq zAk(QfMEEvLN6!*N@E<B1NZ0TDuvrSwLBvGa(v4=>t=2I4-Fe+6Zu22lEXarjJAE~` zzkgwN6an=efUwng@gicT=B16dw-}P;<hF(Wl7P5;>(7;JUOPmWEIuby0(k&VyA4<I z980LEyhb)`@%K@d)TCuWthl=k?&}G-l`N>T6=9Tp!iHxDJa!>TfSFJp+HhG)%69{8 zXFRqGZ3?(=Q#!wJF;+c}s2w*0z}u+99Vpzhl^EB(5&?%uKUd9F*e;V25*Ms{)eG=Q zOicc9X{_&b>oD>GdJ2z-ga98`ZG1MU4+O3TQt>zf)^#y|QMaG|o{q14=^yWgCrZA) zhH-}}sPOtJ2FipPc60Uw3e++{(^P?e7Pmvy%XHgJ1XRMLegfKl>%Sew-9RWz^zVnT zDBAgfrrk<}*?`;MZ(?7^#i%h0(8UZ+2-X&NTCMdY9y2=9=i?Lhx_@)!w^)0C6An~; zDLAt_7EymtI*}eF)6f`Eq+7RUYh#n#C*t=A^36?Va0$FC3CSV}?>Y}qDMNmp55eyF z`L&%zSWq@G`|?C<_86Ona%&-z%dGP5V&(SOXMSrehN-f08BJAoC)MtYTD}0%E-V>R z5#|j%H5xhR*8Pb1D7PT5s@zP0YpEh7+q$*8y)bd~)!|;lcR^nb4wnI81wCnQY%yJ@ z<#;9K5KiSBZsMNlTs{ihEE=4saJd`-FBqt-tWL{r6Cuzk==8DWM>i6t1fhhGVXx0S z&s@O*mOD{+XU;|dm>}-HYV$`>-8#MMyT+gpxcNFoh7ylP^p8t1egz@rKev+P6cXTZ z80U_?A{Pmiq#TcnPI!TX)^CcP`Axv*nzP`j((qMn+j_(s_95f<&=_%AOL(c)pCU!( zxWV6~{0qMLB1U5Idn~$Z^rQr?kkciNk5$D?=+?n3c?KLH=F7byL#5lb*sT}XKZdCY z0^D6B8d+9e>iz6I33WUv4@#T1Af0x_5EY4bA~<rf*)9auXZx050m#zEV)3_Pb!!Sg za8r6Q!VSUS56)n3E22~kBfAq2vT1}NMqxZ6*ob<b1<wFMg3@LaCs~0SS}18RInV3c zllD57CI<mQRb{syDUlD$+TJ!Tojq5;jliFmn|Ev-l@fs;0g9M|x=#rw`**n6^uj_r zQD8Em5Jli|Sgdw5dXfLdNr3q71eYGCU;H!UV30aEh)jsr^XTj6nx*$PODzBpJ>M!y zjSV%uj!lhWvYBgefx14rkQsrOo2}~9b1-FK!!TKNYD4=zTFq=n50&i@K+DtttFOR^ zby&2vZFx#M;9IQcI2pNf1}7F99fU;4D#lWnw0@B0P<|Uq(VhiKLm(_InKIZ|8wanm z7xYFNExxt;sC#1xOxLPi94+yg^ofrmGy?fEwuan5m;d_xvCq_^2kA>A#^=KcVRe)_ zdt<sai_K1IieGh_$TF|q`%LI0Ngv$q7y+)e>czXyHGY>OewWulcX-)})q7uH|A{(} zR`R8dK{l@KUDT+N@U{VvI4N{65e#M?zYQliSifnvg3l2?l#1>(s^_o%;z;yo19QN9 zK+~z7Q8#wI{}sxSu?D2ts5fLvf#DgJL}L({h%9pCiXRt(<Xd*>SB>t(@Ohoi8W{|8 zpSXf&em~<@*VT2B&(6wv`JG-x(BnYZ;^2L70hT;18`JjU>umFp*G^y6bMyE<&CGwm zfL8`=2OAAQ(XZ81L+WTz*ALTpTd+i}es&ouNJzR?^%QCVo}(iE;7im1pY3u5TQ}nO zugJNE4d++Lil2_eyyeGa$eNWj^@ad5E=UzO@n-|Fo*Hg$K|7oMgMBxjyAo{-Jh&|E zal>L+ba~sA$k%{X6!fce75oJ*HXq|lO5!Icb1omMqcC3y@ORzvHnsX4Zl11wVYvJB zu0F_uebC>3AT)Gya4`Atbwor6-SDu>*Q3c4yjPNvzB*~ga;S(|Rt)`7$hejG2<f$k zMs3zW%a@8c<T%1dv~G<TXk_vIO(K4u@9P~Z3@SpSs9;ivOJ_!j<T?Bt)}fArCgk~( z?F9tvdIoskkeO$^4g`dwo5>Z0a33<dwP^GkTw=!dGw(3-Lp_fc(Mx)PK2hF_ghVEY zM};KNToO_sMQRzoAuRIUdb{cqj(%Zo7>&Q<d`V1C$VT~kqPC-KNZ0J<f(<7flN>F* zg<hjQaqAFRN)OL&@@qpuQdfR=c+==QqIq>2yooo|-~}UV%E;p9Kxz?cm??QrD@mOA zzfeH*Bj(lJ@<{D3^mBVdBQgH3y+XcQg$;!(d|64kNrg2%waq=NUXWbeG=_vnAtA(z z(V?$DCvCoHmFG|meWW=S!$K?END}T@zh*Hu*+M7b-dhV2pCG6ahiq*tIUJGgrH*J( z!V*FDpNAZOMJDrIoH+%0-vCI&hsmBb#fOf9&cN_?Oa=-^y=g-w$V-j}g*$etSRea{ z*K6GA7{+Lf5-RcH1%66=ag$vwe|}DO5?uzD7x_>Fe}Eu^TG!(`)m4|<B{@H#CTL<T z`MF_Nw6X$h()x}96NQJz@8~@u&PQfJwvc(alNd_Li~9zO1jn@o)GD+pkfJ214sEGx zbQ73a)JPIML$HG^?L#A*5UORE*Cs(jgZ#Jq845ygH+)#l_t?0@H6ml7k?M4_qA>0{ zUKm*3Ur^Xx8!M2tEW<F7d+7T0li-*FjA*v3{D5pE!uh*GWvPXd$W_`5^Vcp=D0Ncr z4QZ|sY2KeLFA&2Zt<b3<5uvmB&4-G(zScL9&T0%}EaY*p^>Z7YLAKG%Fu#rUW!L#l z%@TC~xbu=i3=uJ`-zuN)m*rF@+zC3`>n2y%Ory7eIo{2VXW>74ys25cL4QUit<^;K zP3!mO_PgWerZj>aRM@^p^S%L@II0rOQbl#G*qf%0mNS{CR6skh&&B2oW&inXuLsJg z0$EC&_39P}o{hZ^Qw9Z~kbcv|>cWQoMUTUPwVOEu2*Pd99sDC)sO0)Aja@c9fNpFT z_I?XJN_&#LHTfIl-<8WNj@Q3G=izAK<E%%}3Ajm#i)g2DkU76uI<orwj3Ghf2Ac-W zW<S%CfFT6Q>03+gHxS-*Y{F|K3=#LQ5Pt0%U!EDOnf9*d>))0<kF+(!0cSC4aHo)5 z9(!7fH8TD=??^doe2Q`cnev;F--YCQ)hD|qw=;PHET8d|N-S$zM;PLy)N!qH6<wx~ zWUJ{|T7;I11n7@&YRl;?G9nyAUpROvfS43=KU!!u;2Q=PP&=;nWao@iv6YrjWfXe9 z2QrP4<C351k(l|g3~HH0DRBT+h4~S+k(63P(v4qDz1ZS_DhQJ@zf)r%;m1g>SyOK7 za)4HX*8Xp$fiHyox<13w(n6w<5{g_4Gl6h<EC`s|m?<M<1ts^#$VRq|B!~(J9?kXg z0cs^;bQt6miP)kJVBG$DuRP(0s}%$(f1ITctEM~E`ssB>Ru_cSSuoN3q*<y0h6eW^ zeg)V|;($T3XjU`E8T>Y<Z6~<FLB`#laIk##%hm6k64R297uF81mG}|ld2>{wIcfdw zcUZx~UJqs{4Bhe-P$&sWws^toT)0ek_>*F@O*W%$UZ)31dH=gB<l~LaZ5F_-DjdE4 z^6T#L?r=0bCi#O}27ll{xXni^y&PfmZ!#nFkhnYmN!(uCM+Mws_U+@+t1fq090J;! zyw`f0D4HThFS=1zJVJ>b4Y9i*^-{BCH2-#rzsqhEDJe-R4|$6Zhk}xzX^{bO`PFmZ z<FuM21GZPaQCj1RdJtAl4`KdrLDorXWVo@s*9On>Yzc6#Tu}t<`ZrgVLX3=6J#Bl$ zf5WCnbV*5^I^(m2xdvF*pqqtV1)<0r-rZ@Dz)Ln}!B{fFk=JqG{gYj2XtYEF<L~i~ zoql|e%CMRV6%m2!?h5Vs*415scl2XT|K-g~{p;1Pjo+*JzgH08)NyA)ut`MG&6?1x zp(Z!!&F2zq>Os*8)S&$+@%p3XE?Qos3>8aHRa-%JMsCtgP(YMaUrpxKu^0y(K5Vj< zK)e=gbk6uxu(;)SjYf5t&0{xd+JGyNF;!xlH0U)|!C*gpyU!8z5A0$4cZ+q8!6gga zjQBBw-%$%7%BAu*ed}>3?0Cbpv=U%320o_L!4xWL!N{qp;9}aBzV!KvbTO|!qCHZv z(<9W!SKDg_LazG0??R#)U0s3B!RWs;@n{MRj3_6k%MYWo)8cEg8q7q*i&>e1f<m`e zmOFQ8_~~O?I0_PhJ=$-LDO1OLI!&(7<FV1;5HVsE<V(l~srID-EcRzokB=yxZrqI` z<oEf7@yv(Gg^<jTPWI9<Q3kDDfNbkifh-@O3jP_5JvVpc=av7A<ZD*80H@|gNknpO z!tcstRZ&q>1O!d{QWQ2KvrXK4u|U}V*)o--uS2xMsYKR58u5V7$;A~G7Mhcr<7n6$ zcsZSm6nuL*2PBn&)PBe7(?6E@YK_j$&*Q<EGq^E{usV##*OG+kmxzeGvWP8{q_hw& z!1ic_kZ!%~J?UFCuR~$lxb@|a{S2htl}+To=10BB5%psW#h2=$E-1Y3kWIU}!wU@= zHe2cNaT{rI&;neXklp7Z1XP0Q{5JrpadGxF6am$8CWFIgbBHGB-onBL=w1xLs}B`t zPQAXBGj0<X(1Y-~2?vZv$RlXsBEbb@v*-#B47{yR1-d4rKRRL!6zlc2%gD+#n#tfW zxtwCX!mf(HFfbru4GTi)Kfd^}G>l4cb$g2n9}4ViVd4FI?x#mZ7H7<l4L46XH;A`4 zkGkB)HcM!?qVZvwn7ZUJ1L9v-zLw5p)lz%OzrX*oKZt#%ASXxIzO*h4DE(~eMi{a^ zKB7jZvl}No6XNA$M#(P+erAY@iW&(&0eb#7>zM+bf^m*7FgW?#?mEK|Y+ai2@|sgq zo$Q|@86ZD(!wB^s1I@S!xD1gI5lI?K0HgChe|FSYhmWt7DVbq-WaNACBcH6g^WAT| zyqk{C46HdRo+=_i4`a8N&+Vz7xU4@op~%oeYHA+ViSh9-;%gsf`y%zfDJvleVPU?Z z2%4Op9@YUG<ALYUtbrFJ5i{xO>1lxfz;uo$Ol2Rx9)G|%LP=;|?eE;B8U1Q)d%FKT zEi?1>2Xv=JH7*+bipLH?pg<&g@f&?+Mh*$}iA)QHK?hz4Qo~ZRk?SYl-+Yku1YGTt zir||2f#0_Vjci+*vj7iG0kj{mJs_CjV>nB!^}OzIey~ACLcIW-wQgNUR20L18HJ6E zyo_{dO!Vv<G4UdYTjKLcvfu7C8%?dc>W;NUe~9l-)~nE@!g+L>puIDQlc#}?qea)X zzM#&^!C^Z)F)^Vg{13Jd&}@K4)0XzXBl5cjnEW3mA^NqTd~|esc0=!*6LU0PY(SQO z5^+-f>e&63R^Jx8KYeNCSkQH^Uk7XUPfpIQ+-rHZfdA{ACz89ou_cA{>MaQP27`Pt z-cIET&CK@0{(C+NZ2aLKkBMv&;3(^z=LZya!|~;#Tb+taG>Kbq{ylP|Z`)Ex@FqkX z!rMsm>MIcvDj*+K)rZQ;%&&_7mUjfuw0-vbHNW477rWu501hZ7P_{9)=X3IvlP(BD z`1ct~Qd5NhO>3w$gEJTe6~j}O3BWNHkmmUy#SJ6;ms#QR^KZ8lf-@__VjAwpfboXw z?*N_MrpYg%CI8P$#m2s3`nefV-qE2G&(6DPB4PaHW^=f_zaROl^uJdsBkjsLGd}-i zw(s+7UzzuW_IQ725><0dRki_0Oo;Hm%5w@|EQrAMAf+iJkLSAyOgsT*%Nz3U*tqW| zEce2RV_Sd@_vR?<Ke`H_M9wQy7orj4JQ1dm`MB8FV_)k04i3KsYpWkGAC;8b1^it8 z?&VYr<#ew<=Bh+!7dA+lAuK8^yf;ged1SvLXR`}r>8C7woUqVrH$)MC8~((vZj?*f z+NKqU<rfy##59O-Rf+$|vfVU+S_2QGjC@C~PYsmp2c8D7+Wljq59N==ChFAi2(AL} zqjPwft|`;U5}5(+v(V(KSBg2co6WPnfWICz-ap%Saq+|Ixejv+&R^WE81zCz^mk=& z8j_6sraWwM1T0mP5g#e+w?y`&t;fe0C79QZJead2^-dX~zb_}KADNirp2Cg<jbLoR zuT@lBn(^zGCux-nq_hDdc2`F~$P72BBL8#=p&PeJpiJ$TjOk@1yGSEjJ^`aWJ2@P- za`6|9qxiltg!b)k)}ZB<Td1z6P|kfm=aXM{nw8b^pGQ-pL`yWUcbPg}uf^=(E76{_ z3IGpT6sSo^xE!6I+hb3UN&;;4F<0=&gp1cB)K*d<BAFnc?0KJVfYCF9CBCt-JrkHe zS?ov(0i+mWJ@3=Vpeq!=D^H!M;UpES@a8<iRWlvE?>462y@o|^6LSZqSjsjVALA^s z;!qU@8CglJu#`^EQZYl!C^w8bx+v+&h20ug&PFx@q8_`huRbj?+Il6enIwi-cRkik zK5^$)vT01oK{t3_8v{?7L?TML8b@3<+3(->wT7OkD3VC1y@e*DEF3!U+H?$R<Ae_o zMcT=kRJ^1RiVRc-+Gh>tNS46qhi>>ehH5jGcLX(*tiLdst{LfKy4^%{iY2el`{YDs zx6^-x?>mNj`QgHda3x5@Zt<ZFkY(NjtYcYtpfkQ=sb;~iM>_qakJ0GJ^_@Y7A*EB> ze$(Vmp-}e%ZP_25saO<0_IF%=C4E|Xw_Cf`6f-fN9NLzo*!zA(tB1CCkDlMd+gJ(x zwN8x?8<(&5M~01b0yG@!1{_!vCU!u{jlnT7`<Uci@TP!1UV0&+F7Su7deu|Ph1Z<l zA|qa9Hf$zeQV1{WD|MQePv;7H<?;Ca{Pe8#+j4c6|21Zj^fjlCxXIT&j_>Da@r6qF z67Aq&$`DkwJOMuM<5@2XQ5cwsY1XUXd&Lmr6g8ud6wDid-@JPs8WKpS_Cl0W@oLxN z;w^5>4?@`%W1_-t?yCFHXrLv<x3xX_G1{(^vgqUHsHzfmbDAu9$56}3w6Z+zE@59x z<D>W5i+P=%1k4upyiWV64>qV?heq#{2-)ikyyL^R^L`i*uo-iBd=0)fcz~V^FT8cI z3DHw#?N%>(cn_uCz;S6X;qP#4M~N6OerWTZ7uj(N4T;q+(x#2rtSOD%l8eb0Cf1l! zba=lBwn%L{zbZ}JI@8fzs8Ojg+_gY%M4(3A8-U$@iB~!pj@KMx<`Fxg^OB5iv`_;= z8HncUM)zt}A|(vrz85fcYZFwev^3F^ll`xXz4<1f3uF%C-rKK0i^E>*!9vYan+pvO z4^M}=X1mKF8|l473Rttn!#Tu|n`h~M)^NTF9w4Q~WwTrCBiIxf(;i*VIT-3FwGs*O zNK*S}@S{-@)rw87a)F0#WIgWc!rVM_706rY%6{BM|70mfbTUK#Hbl}!)v>m?7l+aH zMx)5cO4GMCwq&pvsrt>&4q=?3!DH6y*JUxp`Zy-v@sRGF5W>Q)`(JrzAMn}LXf{v8 zH{ZzkQn8C%tbEKP6ROazGH6nedrkfkGpC6uOO!5^K;8yV9`!*~sT{m;y1$7X2`6;; z!cMO>X2)OZon77AiV!?&rbR0`mt~x$fC`gQX<5I^M0~mAhX5BD7ns=7RF1TKOpa1I z^^}(yp(u1#r*w1CT-cfCPS=X3$aO4efrquN0T<CpTAq6%r@n+L&2k!aDIY`flw}=? z4HU2Al<ExSIs`4)MC6{#)-pVt*06I&;f|X{P;d5AgQ(Z%Prr=tc;|jG6P=z~2n;OG znSX%I|IEcbHdY+ya=g29y*xW~w-Tjxt@#bmXCH*dwvzYFhrEV8p13zd6iEoqb`=S^ z#Y%LkiU$X;xw&7C(AEz(4j4Ol!;GqJq#p7eetI_&t45%Nn)K&6z!4j?ZM>cH_HDap ztcda3l>HSwmqSs@!RNm&`}yVIRw9uLVsGEZi;KJ_CYsg}-dyamZf>(ljL&Vk9Ja}l z1~ceE6iG^~R9Bc*ACg;KJB#=VrMfRfZWru%T(@gK%CIt?2U)k3x=!7A7<k&Rdfa5O z^h>zh%}8P9Gi>8U?|WTX_#6s(nCRXgpufnrW`nr2owTG7dIuR>va;@G;cT*%fxUcs zV9rptu8lW@)ambYYyx|#m;LE{h7tTuj<v;J;D0)3wsP#<Ji@KPic@A_;Un|ai%ili zl~QF5Bcw@|1>~$MuQJux>StHr<X~n$A`f`%h1$w8`inP4YgW*Lu!uE%h&cCSaAH=o z?eC+NY+sCtO8tkvCIxn?Bz#L`I$C-%-3?Ra?yB^Y#~u=xO{oG+4#iqh$_?10l>K;4 zH`+-Jmzacv%qT5YVnrT}KvTz_F5}*ZZr|SmZa>XFRlSH;o=TPFx;lSPSNaN@c_5`d z=Tsa&1w(P)m!p_3Ty_iJUsc6s8<7ax2BZ<lq@a<Uw5Po@WehG#(6^C%VW>AgjvIrv z4Ltr0Q26SQj`T8KI{Rb#&-zPfgPqHt5MvA`lUMHD{6pPvKb|(h&%a43`qDpul&Aj@ zbEs}!ZN7I<-~D;v{lKV>8};%%{3Bui@z&d)L{q+5E50wBc-=qszw6T*&JkY;U@1?a z(0J!EA*jO5d*>s{OlOeD5|VH0D0|o4*{W*P<GGVHWh7_Zlkw_Uof4l``l{QROU&=& zF17QEeZXo2Jrfx5_sx`GwXlub48!u^Mt>3wgX$hJnXsA3;ZFAR(A`{ZRo2+ibOLqu zB~+ACE&&(a>D<qAJfFE*_&o<^?*?+~r32HV1r0$-+pd}XOVg*T*n`QRYXj#)Lzk=H zzq6Xeq!4UT`*qaJ@XO*9R)FE?Vd~k)%(Al|Vdjil-0k_m=+Jq_+?cuV2RSsgZZwlQ z8bnSe5$xziWJMIFxQ}LoGdbL1Rd%53hf+KL(+&&64sa|(a`H(ctb*#ngUUo!1)sym zhLQSfA<x77?z7RI)8A3-VYs;S5w5;(Dkt9$?bfF0)*1>{Ir&Pijc%U)SeovcW6Gq) zLQz-Y_}yC|KA;fa;eHWcn->$Z&m=<QHu&+&RNc#NjQDjWl+(QvT<APd$9lxUQ3#oN zSKnl12%vh_NilXuUfxDN&iCCOA6e+>(G4o8!IA%iskdOOD%{$(m2OZP1Zj|#4r!3? z?(XjH25IT;?(Xh}MRzWw8|iPl_jA1a`vHQiHRl~;T<1Av!cv})@fxg`q8U~DgeB=6 zwvFJN?xKKVweu;+{W3NeOs@kIAQ{H$^zmz89}Ftt@%fzsSzNVNC)O?!-Vdjjpz!?R zXwSWePb7@yf><Z)Hs^eLdPY)xp|ZrWzpJ{4)%#<G6!*4kO02nE%w7K=gabWh)8Q%} z_;2f8sU0s&zq_Oab^b0gd~my;+IZg9pKFSupn?_Y<>%m0dYMZ+$shiezhrABo&J6P zv6dU7wBnj<?%>m`!|>RU&(Oq*9UKyGkE#Umz9J1dQLv^fA%A^`*O{nlY?=fV&~Opu z-;T@YiiPls5*JJTVVqW5Dx&f8J|fXlOyLz4$-&MC!b+Z+;g{^;>1wB_awDNq0qK|d zx#Rg}T{R_IBMgG%2G0whx@%!cNzchP<Z0c`(NE)ctDk{)M1fJxaSbtI<l$a%6uCGE zWo1Cajdu2kURB|Pu;N=!Cf`MM5c48#fEMmiXi|N@weF>efjXCN+u#pqQ1D`1Nm4z@ z`H!91>XgFwm5Ks`-W>KKYo5s}p7Q2QL$_X<r>OR+r&8+UGbM}CQgdVrW^?99N_rdB zkL<_drcoi()Qw7I7Un40*;EBv=wbu#GRe`^DT381W@U?xce6J#g8}-kop@22uIH>y zPkr|DCS~juvcvMq@};XCOGp0rzp@7B8jF(Dz}Q#?yqzvy;51G<rC<T$#;W|qDn75o z)=C7Xy&+dic+s|Kjq^hTYab(1dyq#bdkQ92gz=l}8moC#-dx`F0A{;uMG9jbjdw$p zgfx|V<GCT06`RAaJ(KyBF~q{h;PnDc*rv*iABT=b)T~Mt?0>jVW_0F@$>v2>Z<D48 zltntN+q?4HQSowTa}CdiCjX?A;ZJk5c}e6N+TYviYFFEjORyeeQO=jhL`DaKZ8v>a zG-SFN;tx#L+20HgI?SmPEqtdc6}%Ivk=s$yeR^qVe*~-kMQ@?3-c}h)!@@x7#>mT4 zu-Uw1Vro#dtJyZNIV>r*bUr^#NM`5<uIaUj)B$=Ulf_v#_27w6*fZVX==%9N3>`g5 zID7wUD;bmbH^@?-yef-?p(twADhQx?w+<CV5$ZGkdb)rgk$ka=Nb->vAYw~wyWcFA zY=fqsQ3;DUxTN)OjDzDUIN+>6EwyU2FfvHl;Hh-k1UKqTzn&Q&lq#V2`h-lB4=_r- z;D>C%F13(4lk3yhy;zAtiA@GwMI<Be`B)+iWFdV4i~^aSU0wlyo71C&SeeCwMJ(+; zV)i?SU08z<=Yc=(Lr@j(pL{%a6<E^j7{aAEteA!u=Ub?tWzM#EgwLI~a}RV-GO0|N zzqEsdYk*(4&}O}cLcqOHs)_9YVDnU^G)uPpP^L@8)~ss+qcqB81w}<LqCn6bKY3(o z8|>$hGq%W&JXNNhe$3+e@MnCopbFl>2KZ<T^kQcNa&!2brZ`FuGA@bn)ioqZ*;5NK zCLi6CnfLfRuDq)_bh{+@Y9A*Uryn>$ml<koKCTsu@nJSJc`Vq%S<RBL&hq?=A6~!# zx!TQ}QEd#IZo7-D{f3H9uC_C|qRP%uy^;4eU8nJJqOuLe*|oT|F@yw~a!}1KOZ53{ z6xfI%WXX~tmc@#werc5&_nMWyqw)fbEaqE{x=SA+SDlV46v}-PSIekbLCO|o?B}3n zoo09wm99YzGOpE!&9>IP=ZE7w1;{zuxjO0MA!H?*C3CfA_Xiu&<c=u1RV?i^LcVfc z*u*l{wL9E)_xV-v{1B`go5tMs2?0io4)5hk=}-#`0`9x73yr4icZYN|OLD;S=#vOj zS;l6z-UPm^%5U;~!j`7m9fs-jb+f;p+0kBYR4uJ4Qqas-)~sw>P^MW>R<-8o*xKjI z`?Fzdi({2J(;X<$FT)cWea35N78#wXtl3cHBqDuBmz>oRHa;~PhI-w?YVdd4;tsD2 zWIk7<$WS@8Q3g_0mA71wD}VQE)f8L-!F^_b+AAx~_i#Sbs23?7BJgxM=ix7xoE}@S z5cspuF57iO&q+-ey6FqA{`@{a0^-)Y;nQFP{3z$!R}O@Hk7g#vm%t5Z3g!v4YvTFb ztaWVsF)t4ehWBm?U(8D?Cabe#xWa>!z`GyyD_=ZDUC?KHf30{1?M@S(FFcoE-OnCl zmcmXGejhPhyS*=n!ylhEVCN=*eFHRpf(yTY3Dsz^bUxRJubZOEKW!7hA2|>HbN6`& z1Jmaeh0N`4)!Aqhg+UY4DJsiRmTxO%ayCFlw$=F_mQ0QY#{R7f(<PVJ!51%_Mw!%b zF_WumYoV0O4{Rpcc-Cs&=7<Z0hvM}jpgoc49vp~&S&>hZB<Lj-XJ58_k&;HoX;IVD zp|dl!Hn!yeq^481gXAt4HI@L1x1o-lIAqA=a^WC6G*6Gny3uXafhm{j2UnH%^F0~_ zGA5xi=tig0z8&bH0?{GEgt?J@@)myOG9}EJZ?SzT>KR2Eb3G{;@x9ZXo?CN^o2l8P zQ=<ta;Geyhk?=6^VXog+q?NITv7$C{g%-JFSMfbJ>HGWnhWB}wPC92c_$b3AW1@z_ zh4!w`e@xbS#=R0NG>p=!LqZLisDR0d7~=yCg95b7bG7cX5kex{3^kU{W=!phKh1lh z5N_lOHLF;+1E!D`<Lp|(I0&X%9TH+$Mthfv=@H^irL-nhOCB#!MQ4UqS}!<Kk;f); zt+PSF`i={a$5VFM<?!C{CnKnOrNQ}`9?0~%eC_<(mN4v?4W{rVP~)+cL61UNC|f#a zb5Uk_ExPC$&HApLUIMZ%Qm8*z6)HaW?1~AGiTryxA$SqfR@PH&IkDx-8!c<AnV#6; zay^4b*RX2t3T>eyWY`nkUj(MtW##bfXC{)OkTT|L#$9u@EB_dnZsB6Z<Fs<>ot)k6 z@wWcwscmo`2KhLDvny00@rheTBW?$wUc20rrK~(}QAwn8PbTm=#=FnZ(2)0s<Lp{v zE;Z|vylr|dx~vw?SHjE1ai9AJ@u<}X%Z=8pzm2|sv^p-{PFqjVV`}!L<a19?cjyT4 z%NK1{bB$x-G?5v|3vZa+*XvD0VekGZR{IEHCLViAe-+&EK4V~$v(+f~$<IOu%PyPm z6C`7%$36C4^_u6Sg9+V@Mi4}xgF!~$jLzOwRYTlK>}{&Tbo%LmLJs22tLI|yjqI&c zB@i(CLhGl|;;_O)%knAx2%PaFDVcI~d>lKR?4a7{8K(EcPd6_M4;VSwoNgl}*FSZb zAA9x5GJ9r5fX!f9w?*!|J-zIQtD?!2Z;EJ0lj+T2l6hYcK5mR+jt|xeqCujaA3kOr z6CoOLw(jQkhb&d7Gc$#({```{LW+}P5L01AeEk9)S)w6XsxCD+|D1~?e~?V9N<!26 zJiqb0h_-VcC_3?NZz#%kr4BPa9lqEvL>z1k90pr8?vCvTJ2EN~l18Zf<yG9TOR>|S z9l>;d`EpkV-}y8DPQ9Z;O{H+s#N0RCCI;jthQNU6Nw~6p`&SU9a$3?0d+vSxkUh^- z*Y14rF~EOv6iS>FP5#$jUtu|#{>4|=R8~}|ktTV@m$87{*lSs|fzK$bI2)GEAV1^^ zZ}3WWK#=EjJ-!se_ttE}EPkGvx?mCM`WqzAtE&OZ3x}yy6SIj(oUX(Ld-(yT%pmNq z_4N)^XIH*xNZz4M_)HQ)?V_4zo7%8Q)r$Eh&pY$|?w>Un<d|8^dSi!Uyji{EP!osF z@XV0#zdPD$)avPZu5;B}iXW^ZpEMlLI<7Y<He)~uRTfEWHdwAWPEAyritEM4+(hNC z;WwI<Z&nx=f2v>qqaQKPeP{_P&)+O9mq<7_t#}O@OrG01^SQyQR8qo|(sdkQ?($0` zAQw|-wYR$~I^%vgQY`lFmN8uFLM|i>=2U+XRM+PX#XK`+Eqm}g?0hO~KIgiqZg1YS zAH^9W--t>OeW)y7$@l*m*=X`GVo+J>ShQHFQ*B(l$hwN!0!|oM7u<A}DP^xLR%qYp z%S<MH6!C9c!!9XdGn*?~!qb+#;BV?9pj@vvinoY5p5(f-<+d8^Oco$xxjoyH-U|WV z5*?AkLyycG5;UZ#WEO5`v*ixsC3)syn_2hKBx5Wd#NZzvz0XPyfz|AtB~>aZJ|6FD zHtpww*CSXsgpiBi7LKV`PhZEH4<<H;Vnetc9T35N9a}kR2UbV?*8G&O0SEj0g+(Tb zhUVs8Y~0LbWZ$W%csV$7l@Q^@;SeM)uizi<QLgV%=*P2o5Zzz?1|E>=T9#i=%*}!C zD@}pw`&Qc@@B4;v%dN``dK{cd{yW~%Ke8Ly(wS_5Stj!X)7f|yHFeHG)st!L7n}L* zNiNuQbk=9|+C3!%@@tKf)1R5h+$P)Z_Q`qbwRR3Hec^zt2IR_3-^rlm-!{9e&vV@X zhuqVY*}i>rr};3l9kMGUs!JPqdLgVX#z0Gv(WU*2vZ~$QqpscNLdrd~x{NuA;B$BA zomi&)Gnx>2l|q$7RbxZm!oAKMsQG?dXR}^wuv(yI<&o6MX#D*)Q|_7#xbx7VuYs2Y zh<ed!n!^n;F(two!BZtAmM;pjY_Y!qDc02W#6;389#cZrvDw<2F24KjXEd><<X&hb zDjXl}-Vb~v?j}tG8!=n9+D_Sx6)KK>uGz-zkMJnEGH10+*Z!g^O>!R7be1pYEwZyp z#l~;3?ZTA3E2?@=jM~OWlxKx;mEaHtuB^+R%;c%*;^xc8m}0Vpi)BZ@`yTtWOwR@D z*)DnTCP8C6%klC}#tAp!Ymy+zR58N|pjFYfV8t(IoBh(Z`+Lfn&%qKSjI&mtYNN5S zd`ZQU-6D%7#v@z5#lt+`;@G;~*}8zo?(QuCY{RY9aeY)&KOTqf>kK-U*KQm=mG-n2 zVk$v`E+xV#W3^c;@=oR*kH+J>#gHr^p9RSjI<zvfa?Q<q7*+d7H?k~n#dvHJCQ}r6 z+m07*-m{}xtIKO@*Z&+xv5fko$}~3tePgOrwv?y+EQ7}bW6j*=HaPdVo(Q{m-z181 zVZK)Ac;G>oZ1ep}k{V53WSXbW+2;V}SbFVN-SswWyu4<br^T<+@+r2+xxD$9OW5<M zk05lSTC0)McXDWZ<Z8ii*lFolp)~rbZZA21XZCTmG&jv+VW^V(9yf2JUU&LCGiCMW zD;HBH92sXL27c%Fm#sxQu|MrvDe0cVOLnh|+F$uF;rW0_PT(O0(7$*<Lm1S_5-^o% zM}tM2=n422TFScXhpmoJVD<^LFfoG5$b6}+)LmQYq%*(2x2@KFXmh&ylQ@2Uusnz; zJDusR6`jc^`pPG6O?IHvm72zpg0q%vYX=W(H9OS5|79}J=0|$&d%iYj1ECC3D9F?+ z1~kmh0{Yl-<X=+$;q+<^!W0Z0&ft%!16y*^l|GPucwQ>1s<2ZizrM843I#m8)n*^V zN2E3@>5NQ|LPBVF3%nMvSj?UF^1TO`5pFUdN}?mts3>Br^gfpES~`#b0<}(gAKaV? ziE?bUD{=lKd^RN@aK`B^5g2l8QOQE(ie7&>L4E?8Lw4y5WQXMr;{$R**Reuz-@}nX zc(*5fe*NfTkuit!Z3d?;SHKaGLWoM3@rTQe0tS-LSBOL?NVr`8K$yS}X!7NSrQWIA zXu^6w86^;4b~Es^#(<P>z|Rs<hE5=vY$ELRB?0?iQD1>^plE-?6?~^I^yp03mg>C0 z%1k7&|CdSgosE*k|1-P`Lmhj1anO)_^@w*s5cVlEuW)!pwkhf=4v&N8uf@3$_0U}z z-rXAJf!}(uZw~?bM64q-m8!2v1jm+U<}N4Ys~sCKfts=gr3Y9<dPd|>{g=3&3c-Vl z@jq-cH|l}C<17i-*aVR8+N4=b3B8?GnEibQ6qm?o{`AkBZ<H@qRe!fivKG{D5_Yg# zcu8YTb2{a2G3+MhfsHz6H`40<xECUovf8=Tvx;1LF!*X(+47Vn#MA0Hry`A`)~J7j zMet0|b2YMqTwY_g!ZJy?OoU_g^ZvBFXtqGS8+TKGWny*cA%;%crLwwwvB+XP+EN<W z`qEiEhnB~XH7)P(Di&Prs)_TTQ1O>cw_CpNQ9c~4Rh#68#9pMd`gVj(7sG}+yst8K zO9cM>t;gXod|*tKkB!g*Pa}$=RIc4kP%v-nHtm!De22eeyFH*YQ&zdQP+5-f2Widh zC{uGJ0xpHGOBOLoh1xl7!F;tT*QA-PQ`Bmy-R(NpRZC+QUk;ut_RY5h`VjjH2!q{w z!?K?*d){pJ`}OF39vKkmy;LM7BfFXtVHbf#B*O8VIzCntXvx-Xxb<`rdv`4;xTM!| zGcYoPWqI970h+6=rG}g)Fo5WmZlc>tR|%tmlUZ}cCn}TUegsJV!NS9k3ua`b<u2Cf zo6?>AFwX_otAc*`@Z{$iVbbdAl>A-v0-t+F1PJg?Z-3`=#zNt-zZpv&V_9oFSuR!l zsS;hm(pv+LfkeC6O~fY`#W~F+OxA@NoKzO?!gA`mzYQ?_oNz0Kh(#Z8iR!O}dbi4u z^K%j}5C+wsSpp$MVH^@hywI*5U~5+k%;)zTkbcVWbFecPYd_!PRkD6oXqkWrr##;T zesB`4b}ki84$=W!2*}9?paFpAe-=r2KUi4UcD1h3WKu(8b@izHBXmClHBQ8)#47Lj zs#)5)wFqe6yLRZIHA&~CgbbcW#OuWVa4sJn#<k_MM`&G(QuvPcRJN*u`sio3W%sV> z*4+Vax9`qVJ3;>Vd6ef-$YB_Bx2jKH-Ms0skU&jkXKfFa8)eg{XT#aN&Rvzw-RUk5 zhm)FR&Nv0%tp>|$_IF*Nd$*ar^iUIjrdd>m0(V0`(ik`x_~E^`N9}Ro>b+pIP+y=Y zXT9nYo%)*S3WB4+Z9b^)AG$r2Z&ca93N+=>!*meo+ps)TDx2?6jNv7CLLy)@KW|Wv zq>#ztG?@T}&jYTjX5+&S5m+humU<`<V+E1*!rv}sr4zPewoy>p9dDY&_gXcGpFCqL zv$HyEq#n1W>ebPQe-C_cvma7W?7ZwePFA0et;-uuTQ(=+>0vF;LAeWfK&Y`%7VOji zQ(BkN`+PSX-834H+k0-pSaQiGjnj12K9W0k-RtQX{(YULxlAL!$ojeJ^`vTC(&9+# z=aOg!7Q5-uHW%x{+5_IY;mp7+x~X(Fr|W5p`JO3lMw?eZaKr`Td+)=XmZ(iXXu9R% zr#$v{e)t}q0$wEN(;0zI^T;vev{I1G52Hh!<{S`)&iR(NV$Q4ReC#$?h={OGx8w9J zs5Q3cGH9US#P$4w%kJ-DXXxA4QuQW210G1g&C#37OhE98gk<$A>NHgzTCW61iSSo! zY(O$G2X{+KyBEv0^B2B-dVEWUp;M2}th0OL>fJWde?vW8j)NsU&+fX(Gu4mF{)l@9 zOQfnG)&WIUd}Xmvwcy*skJ~txtX=8R2vm%W=d&P)P*x@yYL<2V1N4^5sc_)<P>`a^ zG*z89U!d9Ur_hE$yGq2J3Ff1$NJ(t>pnCzu;<#&mE~$463@mLQTnrlM-aju|a@+uD z4{5^i{)3m_`2<B|wcjuPBLs2k5(WmIhy=>$*a%)o-8dv2RENpNlk_c$7=5tQ{3iwk zqY;C}jMmSq#WUg>4H?~Ti515b(2LBB{yhgYDn74pLNI*IqSIM`7iH>`{Iu{~A5o!L zSE~s67y>E*uf#LBi?ToQzvm~r`9$^yJFnrvI7gIW{LQ^{-f<sXvRe;^lpE6yiAYyS z_L?KkqU-JDj<_{7WXjMdDES0SdQOusok=c72FDJW1y$quZI!=nkw3raLIs*M>m-6; zZNJy&6JmWO2ywB=U(v`{nRlVSTg`MZ)_Dy3`&|TB{!ileu)mm4K%2U2W^Q!}7J3A7 zReC0+#Dhv~_Sg(j*7^S2yASHic+BLSYnLrlEIBM^z@7?r(Z0{raVnRy9M6<G3!UkU zR(txw$zJ+Ajvf4A#%@lwnbzgI^10%rVxdp)u`(*Gz}u>};8_^jpdjeP-@(t4W=PM! z@1?~;S|q};C|$7RHn~a%O?Mf*5L~3%s8^P4Hc^w}H~>#Aex*Wp;?ElsJnx@b-pANq zrthzPc5Z{lmi7kMC^xG&VMQFE$f7d(f9sho7f5$cwl!t>*k{|eOazhVKP^=0<U23z zKn`8BI!qr3@%xP{+G0OoSJ^Q9=<v#N>$-#wkJul@VPIjfvQ0hRV)PLEN_S>s-F|Pi zQl-3yBGkNf`w+Q{vD;MkUP%dMUTd2NtI|YDG1cPTZ3ewF+>?_4W|-1wfglr}Wx2Yj z#0A_4kOR9f;AtV5Y=>DMedl<G8o368-hpL8P#=&GGBou43X4cg9FBDu4V;6J5{rjE z9@RpSGr!J35zq00_Ot7vCQz6jBMM4-5txUsky(0{!V-WrcseUrN_Kc`jppbX0p`dB zC=n%9YdO9iW`dk}88pez4mi2mQ3#oSnY5{jEp?b)`26Ma=_9)UGXP26I*04cPSlsZ zp6r~DMz=L?>Hz{NqLtg)9ZtAk2zU*Cx3zhg86kBxsOFL32t)Hn1_Lq0fE1vW4Zf^% z5OLR!t2MzY-uoQy&y}bP6D%RWG2-ZvzO={n6nu+S8-YTuz|jHJc7Ozb219`f3r@N^ z{{)bF&hEYr{=)gAcXACiN7^XZIEj)e<ha6H=XpW7QWcOUb3c4V5HYBEMx_gHhN97g zb%4+Kllfbt!EER7PAi2n<Pf@1t`MP-__Xfeou82(KN?TkeUI1use?*3BPk9UIVFo+ zYRAZd*|8_6HLoP41qc}nWnlB#BJNY+0O5r+#rS;(cQ>!i4ayE5%Y0a?Fv5<w1p}48 zpjZ28UIcH5U>H}9YKUO$Gv=YQ2xp(nS9+=2k%X^tL_P%ZYo^k_@8?ExHPt#*M5o`F zH~;cd21`B)=4W`l76bYDddq6O$)8n^d!NZwgjd+W(bXCp^(v&ucP7@9ReaZJnTbDn z-W=);Izmy7islL&0~fv9Vl)rNcMl@S%|~mKQEk;&jJ1>-o1|A=E}#Q;4#6VR$QG>D z>v`J6vnNRe9fCaZK><hXgh}9A02Nei)}Nm;#P)zkC=9+<TvKT(->Ok>zh~8Wc)5u< zX-_Et{i5~fk4;TY#lgnM#Z3gNe8peanRJ-waE@7Lv+VXwYGkPz$vC@%^h!2rbk=4g zy;exznaM}5vT#Xpq|AGX#y4w>WC#|DCRsJgoliZ-hG@8mgVRT+r?4*FI+k%%gpDxR znKdQWnI)lN*{4e9a>N}cbtE6MeJ=N%O;l94*fW#qlJ<+<TMZN<VOZ0h@n(E3HTt=y zGLU>!Tx3irV#W^!hKGcOe->Xk<Xr6DFp;QV*^8e#>6ie58VZKP!o4#a?Y1R3%LVhx zmILsHcYo<s21LR2d#;|}79%CkYw)yX{XF<wU8C5Z!vQb;#j6FA)|%iK?bMIEONl)@ zawjjqj3z29T5r2?ySP*jbQRx$=%uAzMpxI)yIFc>wk};tDi=f`r4W^zq6cy_Gw620 z99x9jd-VVav#D0MBzK4Gtg_0YDY=d}aW`jgbw00;&R+aU@S~LFO)>@&m2UU6`~9IQ z4;SjjsoA=>#j^H5C<p#(y^fafjneM%1@K^hPmxQ3CD;N4bfCZ8f%OvR%dMuUm#RcB zAjId1j9>s~5&2N%`^vULm>-r?t=5><VWX-cv;DH1nZe{eL|cYGmYh&An$rJEy&fU* zl@SUiG%iyL^D1fcTgeNP*F7!qw~0|294056`oY-Uzkz-}A~1a+cqfc}(%40IYxf%x zqc&Tu>7eqAYdKrNi}gyC#<V&4`h;RCY>>NxS({e46>ztS5Vc&a;50n^@|V$Ipu~U= zY4#G61qlwO?ns>^A1gX0n-RC~TlFW9<Xj)nI#s5dDhI$or$OLW6@C#sZIeo^y4vdb zmFJL1XeugT2OAy9DOr|HBJccBWO&yy1{t>|n$<{BDpFm4xT;u$0`p3FBR%7)-2mv* zk1WwdcX0X+Su#YWH851&%!R=u2u^&pA6f46Jq_(WtJ`e3M_zTl(5^oSOKg{6s*lMy zPgSX2E0K{rV_Ow6Id8r}ELxYa+gtazpHVTNYgUFm3n6H;X6yWv80Y=aAOlvB)^I(Y z%Tvr&N#l9?wdM1)h#o(d8t4hKV708?D7Sx(j%tr#Y}-L2*spir>3GxjENz~x+TyR= z8fg6Tbk}*%+Ff*KRyLR8m>7cRO)-JnB{0km;qcp}fFgtMez?rIe7f}slhxQ{>=^#F ze8G06;$$GdIlx;I4koGj?kLL}s59hnn$!aJ#3QHo{Y6$}yyo)7vUwP$J~=hFotdZe z<Hj=c`|{0({u*(_<S#!6;xp8#rcEh>-Wx6VI>^V*ydz-M5SW^((ux#x>xG)LHbP|8 zT}MXdrmp&0Z&bDN6b6D_rwEVdDs%!>GBwPcPZ?cWMfuBWau`VyF)xSaFON3eBiS`t z<rPz2*3Y9-Ih_9_y$X!3wC)$OG8l~beWYGUcRpq}m=!n8u7LvHnUyx^qrwrR0w6iy zm|W%Yx>#+73*R`sXF9ASUy;(N>2l6_nJkwgIfUB<5Rkw>&|6@Ty<EP7WHeDk_k@N; zqz7uM|2i?QUr^p%%Pu^9lUi|Eo#d3}6Q+Q`=~A^vP$(tjbac45A`2D`W?6P7-PqI= z-MC+JBrhL|FRWMM9$Pq)+p!^gbyRw@Oe&Z67|1-KSZ1xuu=xQ|_u3{)))AYi?vkj+ z(N4Y23R>9DOfreCxz-WFh8hiXU(z`D)AyT0h7Ok-6fYI8eA&8f<H$wZ^&h6^Ual9( z{Qhvb0Vx-}P*b`!N2kG(m+JP9L2==@Vu&MVz@g1_N*k&)mNF68*9K2pQaKT^=r-Fg zJ}61kDi=*bD?Dnx%Q}J?YB-$PvSph5bVzGW&S1D!{&2gTUA^N7M<~g-kL)6#p%U>? zB)F`#f;rEK>5E%7{2ojX_66#tvcD&AdEaZ{dr}HyVQ8%Nj9^3{v<^@fSFY7uZD;%X zw~$CvjwSaJM=FAI#B=paRn48m3DwsoGgx8gR@%HxVfd2!(Z6tc{qC}uC$_tqGe)78 z9jFt$T?GP*s+dT^%yR89V+Yu$bDova$Mt|V<vxYiGVkz9G@m^)ouXXNbexCpNUe9) zD{*|<V82A%1P9udr7|d1y5f_jAs20gU%gjg5DRwPo2gN)8GdNJXebL%G6-}bZ}dTI zPQ$QWqYMY~rpk(ng=rr7O*|S8YI^oDt1!e2lqS2eI@Hu<QL8}n98~{a&`RTa{*~QC z*qYUOfsJ5c)r{S0QNVJ5Yu-}Cvn};}L#5K8KPfHqq}fa*zxL-=_>F3X&b(_+&D1K- zar0?TULKp}MXJ_Q2)wtk>)8>WbW~B}acQaZX*s7|-|pmd^zqU8dcCV$^OQ9!OOv*z z;1d@ogZovO4fR5KX%oKtw!}>2Hmyi6kyLnuoiC`{acQivoE4u7tc<|?Tzi?hVI6oU z3A9s+=EMvOd%Zs&8T#)1T~&|5W2w}t*T12MY>Q55vjFGz56f6>wB~D4PA1W@%B=Cx zaOu+XHW>RyNF<sNv^Adb)@&V_=Tpi6v7XZ(kd#Y|Iv`EWy)(y!^yaF(s@%=m_jTvz zCIZk#t?5I=!uYe(*>at+Xnwjaag^x;Aj~meEOM+)Y=2wzoKV{uF`LfHOe5ebQ7X-y zHSI|CR1#C5kP&}kSfT^=N!>P|=dh~W+?8)A$(jYQN4-KGO`kDg!<K`~*_%&S-v>4# zD{9_#&X?sGy~sB^Be@(`m35ai?5P1bEWy8P5+Db1yE6l!zh*PW!v50u;BN%951yM` z7cc4<_xR9}ZV$zv$(!>NF{v4lh)&hvC#ovk2T8xGH^3Sf(mF)EejCA1LG6bPKfO_x z$|(`%?Wsv+8K(|Zh>DQG!2IoW1f$N_&*Ib-A3rK#BqBoH{p0s^ki%M(*@wdU)J4C1 zbtNcH#kgG~@|WExn_T@!$?IkZ{)H5$-+huQ0AbY6K#CK=5~xM-E%qn*A^n2*Q3I8N zrTD(YD_O#`)-(1CAAODK*N81gHs_(-pu3^b<S%YFF=V#|1tLz7>N~z#V)mY*(gVq( z1@GkgB-RHW>aJ$#tCMS%r7Sp2b|-&GY^2`1U7wBy{I&7T<#_Qlkuvc!M5M!Ry)7DT z4{m+DpIB|@Ym+=2F%vD2xsaJVjI9kUa#r#RB^FFFLv7hR&sE59T&ycA^5$w@xAQ5h zvzi!Z3tYU)73;;*0YDcuz1@CX{Q+(D{ku|zl#I-+@5^O?{@VT7Nf~RIQgfU{CIxll zg7R^*SqbaW@eP^+wY$l6{OpEOnUdle$8k?)EO_Uo8xck&sQu1QMqAlJ#gfx%GhOM^ zO^2tUtE%h9by;J28H+{d(BEG08oBQF#pU*Tc;KXFbCphYF2cTMbFIW#$O4{u(;3g= zEBeU|(#I`IQ<n)sMl-Yq)mIZd>co?BkU6{J@KY{Bu171XZAKQ0PlL-+74^bNDaikt zU8S^CN4e5_{5*lcyCgS|f7%nW&Dm<Rp;bb9L`=KT!aMO8dG(HP#rHb?#)aYL&q~Al z3YwybD_E+^Tx~xw-IX*i@A`UR-@ez%l16@+2R<4GCe(w^mpu1(kkWl7RuPbPCE49= zLH*hRnlEJAGQwg{PnVy60-zc`U&8ownzzZamlyXEfHEiz=TXnnxB2;pL{f6gmqi=) z|5D`H@{Do}w1xYbg%jKK#jkx~Y>uQZnfhDaY36TK-iNs@6!U!^6=4?4e0e7kR2!OK zV$t$l25xnP%wbNzsi#PCYg=cH2da2Hvh9~q;~Qs@6w^8#R?ELLhh<lV;DRLnXiM-t zab*5zb6yM}PZ&laY<61XmZ_4`Nf`|HG<P)y7dg)tO{Z~~UX6s$tDb*{lO0F6_pG&A z{G}sQ%&_M27B}vBO|p3XYp{g(m4a^dk(Me86Sv9qCZyM}NH&Albf85%bi%fE5F-rH zXy4oV3O^^HLF^sbGFdk5yXSR9aDoZ_7e2$@ibPFS0w%-)69oBKc#gJq6=cHiCUbL{ z$v+GrKL?|UK|y+<*(W5tWZ7!eIs9#zb!;X?o<vLV5PTwLShvMLiAiO&Ji2|PK;;pa zj@)X#%-?ip(5<t3X;?`xVaQ;y><vo20avcoD_#hGmZf6&i9*Rcbu(0TmL4jd%5J=w z7hbO_rP*-PF+cn;s}(P2A+?R0ke}XcMaXS@4_ZN_nABj=f68mMe6ZzpA*Yar`c|X< z75VMSaQ+E-uXr+@(emvt?v1E)R;$CwPGC{9(29sp<ISx7n(x6ZZj~4eLnJ1??0Jv^ z81FkizT6Uf6y%sc#S_pk;;5^4%;tTCEBkO%CvvrGGJ`~f`3w1s_G_nv)WqM(G9=fu z$og)e`;b}+2}-7&_Ip}g?)Y>dewp+i)*)aAkQngO8aW*Vs^!s-ld>L$O#i^??qzX* z@(+S<-}`A5h1;0OY9e~t6E$0pN=Z8}e%ws&ab%LzyTO9OkbO@5<~Suh-Qs5uDNN!o zM>X;(QWyh0&q<Q-OTs*=Q7t2-D#_HI@j=0jqhsW-@gRf`40kGKGEVw$ogX$-)8n6v zj1hzTAZk<QWMVzKs2D=C$*FvxsrF4N2L@`@>?@YZ;8|nJ<tP%clSRiWRDOp!w3wd; zLAgkL=KfBe=@wp0Pu{2@tnmSQY7!I9!NI{%1fxA)rILv?j|xW^4WZr<ic?VDA1W;o zAqWC9jQq1aVUP);gRr|ni(({(#+7Az$7w~wK*4~Kivm;nqztxr#4Xf7yx8^=7N+d) zgvp2~=%i8c>CsPOe+X(y3lI<@Y`o+6(Y~g~qGhM_9oEd(2|tSLJjUk{FF}M;edFZh z{YFfIMa$XjX4!eso`ZE3$*1O_Bq1{dDgZ?({*>xF{S#({bLn{|?iY}&<mUr)MmxMl zCue$wCT{Bkp<|J`C}|mVoSrezo}U-+Y+ztRU16S@fHFrx7s$Yd$I|sdcAr<^Kde>n zB{v+*-0Qe8lZ;8%=xYPe#$Y)VzSY9qFjoJ4Unf>s7`G}((oP$7+Co<M908>4NYkg0 z_#C1L(8%*1^IqPC)BRreA>*ddBX6$#_{9I95smQ23rNca2+|gXDOZVQq*H!UwACza zu8r^L(29li`dA2a^k=&#RY3K_C+vAJmc6~WPnOtkSkuv5{ry-`7c4%+UkrYW0gU7k zv_PYI<c2&)!J)3+KN@TV=5Ml7l;;+er;`#1+~t3BcfUQ2^$Ny-+X=k*T*l>Y;6dn7 zOC9?;9<KK`&MO$bkW5#c(Cp*K5qOCxKdHPeTFJt}S+a)HSZu*nb*~b^CPwUd>YN~X z`7dI@c+F^$gI+!^Y-GP7@6g0cGG9xaavrI0VH&5B0hX!@n8qT-&x(3hg)08?Zmy|} zOD^2aK_Xz=^W+`+QJ(QPRC=bl^%;=vHniC7u}YQrLYtDd%;){|%%LU+1t4A9Z<0cg znkF;~auQD-i#9eN9XK~J{>i0)`iM@zM=7b!`hqkfCV3XH-AhVl?M?Im(0i>>qSOzU z>6=4`A9q3rzu@wD`<_-Qjv6pgD$_qlU(mk$iytLs8kxYPp5=2eYbp#B{IRomLOJtG z`>jZ=*fQ3TU;E;fhJ}qK@_Vk@R(uuo+?S`WiNKRx(Li@5PCD}DgD5|!@Jnj`KCe_U zJMy-50)*k{E)Ny5iCL*n{!6E7Vk+`Fkp?XJ?c>48^+Oxvb8$othYcwWPv$QC)h(1; zt3yygJZ|o5s1UL)`Wfttm^>pD2?N8{IL#&Kn<)>0rO8*aUA>Q|=Nn-A?zli`5hG*x ze^miaedtDB?}*i>a1N9EyC{BTfWHM8#(sb~C{djPbzs!q-X};Qj^ENuby!Yyln=U0 z2D{D@@0BSI%{Q;yqRZ09iIKnS)``)C&W+1?mF&xlj|vqI(y|IZ-YHA9-u~5<D9F$n z<E;Jd)twh~z^*ZBR=6k=FwmJ7ZJVP<6c&;9g%;;{4L}<Ku5m(&z{$B{D%11j(0c!3 zUr*o@aDAG}G!21aoA_BfpneyM`ke~?Kd7VLUu$Tg*<WC<Qmy-g^Qbi2n2W^Oe_W$p zZ_mMXX2y&3uQRD%?}vK+*F086rnV1QBrjFYvXbLmzUSZfMp8j|tHe}j;9|h#@sHqY zM+~X<t&RzT|Hp3zV<IV(-fpaw042s-r*}5k(Y}ndF5jCF%E-hgd{w@0oO=_v*dA87 zW~Cv3!vdg;?Q6eaKmx+qI+5Si9{_Mwcf9WC{XfDo;J@VcF)r@g!$s%JQvG+fI#Vq6 z1a0A+{_^D9?rh+D2nwOd`tip|m@}D51@Wf~c&cqEPvft}$U(6C=WqWUX{IDk-KX3~ z(EnjpfgM88$TTwR$D^6ex!S2-u9=>{Lyex1spT^TXX=AzGryeO52f{ynP_=L7!Nkp zYPW(y<6I;F{QN)W6;qXQ<lwrer$rJwJAe(qh>Z@3dQCIYRaEKQeP8}QSKoTyP|OVk ztv-a8@`4CfgT^O^y1oK@?tcMOWv$-W-@o;Z56Y`erQ5%|0M>F$!S!_r!0xftW$XD! zqErhlqru_t(&l;r&A<%H?eqWWOBDfVA)Ty!Kvsb0NI5t-Nl8al`oZaOr(ZQ({7<)c zwF*(9hdXp!ZsL5gR!@!q(yg^sg)W$R^AIrD{~udhDF_dfszr#G=5~^l9G9CJ5D1OE ztGDygI_%>!Tky%pcErd*RFn_WTa#H)bT<uI;{zxl^9(;uEI^z0|B<ETVFCW*2i(iu zq|wkAUuZcX<=I$kUG48>WvkKZ@5$pKfJNHFV{xJmxz41&e-GW|{(rxp1OcXGHJv@q zbh;&gO>dDJEw7^5*6}RO)Cr?Kz{v!{|LCm~8z^D_GOA;Aom*=B+35HGm|N-+J-u25 z+by4>d_!XcE7_#`KHpe`pCK;559{#2eDma1lM_}+x}3@c10{ljPd&ifkfZ+ck_TAO z{`d9CFz)Z~x3+aOQ@PaiAOWDEA*m+-8d|Yc?>YfN9d&kFw?8M}4Qc5CRu<-I@#0l| zc^H_m^Izh)A%Yxd-{El>^?Ncy`#+SJ`EIl)U<!VGJb4`ga*tZ+D~!d?%i}PxF8;EB z7&Wpmc>kmL#pUvUAAkXTND$O{e`qxjTad=gh?~V&nF0;;j?++S5|zmj;INE5I>rDf zF|O#;3`(&K=kP$0{zdfvK7&|2VDjG0EfSaeocKe~f;eKafvFK_&1tN+FEAM(%_9~) zp`i!SU9E)aW-9ev?|)fJA(j1);8oFw3e0e*iFE?N<*qK|&X$#6`<fg8ZoS%_M*y%} zcz^$^Llcw`7?)p;TxL<_sv9e(Qm0G*o}mAnpEX22A$>vF$^u@Q;v+qOS{pW|I!F80 z*wk+oey@vb>~SVV(G&<bbxzLwbZ&MW>dU47`|J>iadIYr!l^Jm6}Q?<eXDyv4RxCK zckW8n>b|4S+%KaYw2VTK_>z*@6|}_nNB{fG1mQwzY6{kxJDf4U(4v(Bw4&=_!}!V4 zCz7}V2p3g_(uqmB9{w#XkYKGPo2VH%{>joKrmX_j|Nn_4W@ZMDCd2>+m=G9#Kol}5 z^W?z>bPn%bY+Kh)BUV&L4;&~d`C?&BibO0v@*bV2b8|ic;$}nLw|snE+N3b@f2?p? zI5{x7^uOzp4|*?A!szR(n(36B%rNjGwDg#2YnPua{h&z$mZh+3G9skgy9yiz=Su;g z$FlK?UibL^!QFkgC$=W`QtUsA9B**Y-~i=+QSoO2C?T&O2LSp!z4}kr5a=`)kd|p{ za{TwjUCgGcrLS(`^mP6CL5Hg9;6vkwy0LK@xY8G23Y>s`l0K4rK)B#ThlmgvCM^co zBL8U+ED>SkAkNRT{XU)?t9{Cz{3ZDj!03V75FlNOkW#L%3v#vLBaIS5N`uA&Z?seG zU;XC~`|mpSIu#&5kpK%jsN1=#FSoDfKOx`%yyi<w^<7>olhX_u)CtN)Sz{)qI_<|F zD|@ZJSsIy{nwcTe1(Ff|pLOz|fB-<jfc2Aexf?R`!!`eGZ$PepWo=w$`AMjie@Q@s zk{lv7!;kMw4aP~1K%56?)*>KC@WaFe_^X)-V^ESRl6?ycmlYNd{6{JSYJfBLPe=yh zz4fNVScft&Pi&NQZ-;sxL46zldSLUhxpivh;AtM1;GT*jqCm#)%N%^QdT{VDMuX%9 zrq`HJ>7%BA0B|N$w6==@Jt8bRTyHRo%h6@wm{n(5hm5Q~jsU>0|0B?RK7bZ-bDNt? z*YRjmq4)_9$v~YS=V&d9`+0eqfm-$#cMui~EIAJTTA-H!mTzDSU?33J`T~m&HpM~$ zL}sX!Rxrqf>y@4{C<I)9?+pIU`E1d8B?6N^COg0i_>K^w!k%=bsNym436dFoUZ5~B z6W3fXZvF;r`EB|iMaW8oi(Uo(_m8fGKnVGT<e!kx-I_|uQv=8=hyr@~r-wkG-px1d zVCR~gpq?H#Gc>?oV{$5@I()pUj4Gpn#Wp2Nk25#NESt?!Etn6C$^piyUUqv#9g`UW zuBx5c@9?8m+XGvYjKYIM3|b91pM8yt`wxs?Q7nj4Ul%VrA0m@SoMwTi;T0`G?3(<y zD~c5YV3d$#+{YH<^9thxjsa$nKtct0rGU?9smeVhn4FlL-0hX34>XWvKM7M=P;KgX zQ-qy7K0NgJ2>s96`L=7EbK!Y^4g~X~C8fm0_k8|hl-TN(l&+xk6-#G-!bQjaL=YH| zTY*<tbOQ{x;B;AcGo$(&;e`$OV^&?+N|j(@vBYY>0na*NFB<l+`=y^l%?E{#M-0rv zfHP$g1bPFuM}24jlZVpHwuAJ>A7aJFX-GdH{VEU*hYw!*jI`!@DrHn0CxQs*0wLl! zh^ShC=!2cubPuB<kr4&OAO%@r;SImGUoWhRRv#FOG%tSn3km~biK7=&`hfWKK4tBE z*glmcBYzj5x&!=3gQF&Ws&Hhfg7j$UQ^qh{L|;A!@rS|B8lcA$V^fI(mPikZM2Kb% zMGhLyD9Osn9K{f$eiHSFgbE@V0|{y}5fc7K+_|q(S50JazoI4mP&0nzag?tAO8F}+ z21N^usxG`p2WD2#Yd2+Nrvo?uMWMq8aajK-RoSQHVOg0%g}3ONcHoedqgO(u;>5G> zh6#K)2!K=|EDN{=a|y^k+*IXU{%aLajLlJ!2Zu`i1~e!Fnt+5PHI)m4;iGFnH9#mo zJ}Ovc1G+h~f&!);JDZ<L+nYj?9H8#^58Eq%{k6x{zg=@}RW_5YQ}G`Q?wt1BF)6*+ z^)rxib0I`;HofSAPoRK?3RcVD+9-7dM+2D1IY2&bp~=8bA>03kf<!apfcmD@<pC7p zOEb-SVE-aaaMORsjZb6z$T1EWq4~(LlF`VJW6NrRNOm^kRey1gq-qs1K5t+DNor!H zHeg#Ln)iW(`NEegIWPgpV%uHLV4%+z+Sv!Br1bm$1kDRQ$=BLHh5UqsMLAwBO-O3G z&+Qk@IY&bg6)*uX6~`Vwe?TX@>3yj;Qj<$IHFq$sO~?oR@dLT5gZB@E0kIMpK(+Oc z2RyH61RQ^{2!Qeya0KRf*&(QPzr8-3@m&IOt*u+kfBxEr>eQIuse@n#W(S8L{$B`o z86T0)-YIbkm{yAYT7csK60(&5KE`xaE)aru148g;{h>HHBVt04n+_ufRrD9mGHP== zRoY=1j5E#7_U;Tr<lEiBdLJUArGW+O-`oyJR@UuZD;pTJBbueEgahQVGGH7)IqFvs z2#>d>0peaN+`lCV&}{(@T<6PeVt|V+S8T4*=no-#dx1tY@Xs6`_y!EeBF^|#0a(n) zW{ITZY4t9?KF>4P@5L(=NoB(5GH7?Dk&loYLkjwWHzDD^{4g?WVgwFY$4*2CjTVc5 zbG9ih4NqME><O7vG>XDXM_D-$DlILw*nydUhkr4a0|N<yM!5>gRJlqEmsbdrL=7~C ztgrKCPrw6*%WDv1!J}Lv0}L(}&u}?g>-Km}niSXVG_m$>>scsMt(G*riZ4X-xtZz& zOum9f9EAdbdB5MeJTMBD9@4ggfyEEFMe(7FYY>fNMtE)g<!s}PGO9g7X}KK!mQaUO z4Gnw^{1OP$Lx+vPmXa3;Er;0P$`(o)!-oLH(R;`o)b|6}(dASMDsysaCo=g}T3fv# zi2cuQ*5E?Kuvkfb0o|zGZ7(TJc*D%|K{?=G1Vob8Lz8Pg;ffr8u<5m{0B`=uV&xX> zKN+w;j#|A7!9cZgc~Wk;xdL_Q@U*>?i}`FFITRjlI)cMs+;{tk0RLg^^)64;uBN$} zmiNm~BcB=n&eSEsK<TtNK^wIJ)=}khB?5MR2pW2Sk!k2%lWSE#U;9ZWn=_e)o}(&X za-iq1a&0$ZIfurI;0u14qDCPQdjm7*NQmz_Ffjo(IRIG$0m4bZoXfvXd;$r`OEba~ zD7r7*k$0gqtac2_tlC{JLJ$rm5PnHdijQ%-Ucfv;Nsv;pcx}EsDveZa#8QBco}x63 z{5e4Efci=y#EHvwF(AqP^e~GY&B6Tz%-{`JF(2k0oTUUme>MOdJ7&5fTgFVBW-z&o z4};}Pi}x}+pXB%3UQ$jGjOzO8p6ty18;HJ&vdvIe=>g6Solb=O2eC$dlO1$eMBp9( z7$$y24QdO#!|?JwEYjHmSLvck;Ak#j>Fy4#zxR?9puc#^X$P7clA)T~s<mYIYN~bg zyY;s&HdQ!Tbv<2&_NOqx;%^aP{9qeW4S1x{4<rE#nxBy)Q{DQH&ZCE0QUT%t3JT@` z|Lg=rCc|SEix0h1vjB=jqAt`DSWg2blfnTnkr+SbkE&d*46Tu!HWg?DDbxpASV(8H zMu-FCU&As-{QJ1fK!Z&jkX#YVX%Xpm7=4pIdH7Ha8x<Ej5gi?M0Zc&!a_<8EMhHOy zx%$9>PHQ0Q>y;#SAjft@<G<c)wNmCDiDmoB*P}{;QzVs&@EGrmC^re%iizx&FL&hH zJG}lJ&@64A%o&g8?|sg(ibZVjDwfGSDJv5!%-P@<;ja|fms8B`n)guz%u2vboT&Hm zG&rU(%3IBCKL!mcR^Gos?VFfLslEKy7q1I7^^LkZmz#U!2$>y|L$t}*_pQm0cr39< z3Kls*k$?xt)ptckz=*Kku~S%W`mdHlYeUhsJeB3_{mgcJBS;DrH8Jr;4iUI3{d(Xs zB(-oJZf}-f<^VJmVR`JLc)SKsUmEKgVY|5PcgZZ+WZLhw+vO!8xPawxqYx3z6>h!G zSu<J;BEWy<7B;5B?=}ItD@ceP5Wk8i6!F?_78x5c1qhIRbK8690tS-;DY)m$Z&Y!U z#OjJD8+m!{PG@DCVjJMeb_n+!z-+zqyK>DH@I^D%2j|FcpP)Pu_<AXf?U0I&27S## z?(r*1APz%Jrk_X51aO`iBB4;!(4JyK9fQ*K#ok(*%(j0ch&7xR=K_w+%q?Ak`F4Os z5e*#PZmJL1KJ1R<w62u$em6MH;DhF(KfVeyQvoJ*k5o}LGDM7ks7#)fBA4aMPZTDH zGjOrM+xZcjCm%QoJ|}&G(ey079Qn%B_rXJeg5kF~Is7c~$Lh|nn_VVGCEactLn0?^ z=ez};*T>$HU~opo4|!fzp<|#I1~B$N;y7fHvW=nL_;Oyep&(<D_fAhyx%@fQh;A(W zpiWNI)6<r@xgSl9;9~8mi8)hU59-qUq{y%>J|~y<x4V{L`N;NuIAx<^>G0QpYz#rx z{o4Wa8EH4y;b08d3n1gQi|J#}+JJ!$HggT%#KQI{otU9Hds47zwS?i3@I7;`e_aBb z$?1GE1KGjd3ukEZAY4cX1a5&=wNEE7@x})MAzV_zgv|iLfXC|ZC7^5I@%)pJnu$(0 zcsx^^4|rtl+{nB#nT)A-UeVA&gW0|W{?%L_Pg;c81w?4!$+X%<WH>ooK-4#cpIz2A zyy9|)^aR+Wgp~aju~mzK4%7nRBzHa8><8?IM-}0EjBKou)SH3`P>>lY{;?QjYH4~o z4;lw1E$$w4y0r?O@`h#&ZO$jh$N2oXcC*a?w%O~J_5wFLe>Ga-0Afl}xPacD0*qe6 z3(&hAUh1<)f{R7udt7EE<t0jaV11QuZ#j7i+9v^uQnUwd5-5f7VkLqK#lG}EQ!R<d zCZ239$q+CUsba_WnbdQozI;u`NKT@o^|LB8uz#eXzdQtz*MLeznB?F4F=4I>oTq^x z!W0pqldKvb8pQnaB}S{BY`HWQxUxV8_i$+X!9X4Oy;1q7_I?0g2a_m1iM-W(A|=*v zvU)lCZU}_Yj(6^m)EuO|46F>842?J-aF{Pmb_Y2%sYq<+cZ500sy0j9>kq59o`BOX zPH!yD)Wb8{2Z<c{y`i_Skn!^^gKx!(kby#_kAid>9X?>xcp`3g+vzU8ZCXoi*lc!N z|CNXH4OoYu0o-0YLDlL4Jr36$gVKPH4H5bEh;Sjmpp=iTl=UIJnu4E4AV+?~!JsqW zI6(Cmj;jLEYNanELeX+;e^KdxnTM!#Xb`K&|9$9bHjFS-lh6}B0p(8&aJcSYIZGUp zeD(b{M*IDSyuU-<31qi*7T@e{1Z_av<@i6-CN)%4Etd@UGjJuF-`s^Cws#C^mMRFj zb3B`K9nbg*P3E}MMoOfNnM!}_#J@hOeETc4{@x@@GN3#MNwyWxZA~gv2wxFHTNpcb z08QefA5iY!Tk5$9|3~4oz}pHkbmsV0lIF-aN=zzzpcu%|i$;*?0ls$x)J#9AF#uUw zeT|*RBMFA<-*5RF%eQU;Jo9Ei2?+};`pUkg2M{(Oal4+$>=d9c8S+~M?*<f~XBoB4 zR<=KwW!sDbmyy8g_J>pG?`WctP+>?)+<=amECnuP!E!M^5mL~C^J8NSb!f6N_z21$ znC7&11^pdf{Fh!%2Ug8I7QGIHZuMqM>NhlnHLAe@fxkjDmL8nfWU)|kguwLypU<}u z#)3w*vdirep>h53)O`fo?Xej?gjT>tPt2_S{>&0oay78QOqU7k{4wwpm^J`NK)Z9) z7=JVO5yfL@0hZ9ND)n}HVshj$@!Jmzcr(0C&SZ0fVomBdhrkl>j)U_n5DC~VX2!O8 z9&ejUdj`$(I~zxZTl4Znrf=Z_wRA>=W8;su$Z-6&(8s2uFA2&wGFHuPHa{_k_7vP| ziO^@Kr)4C?r_s>GVq;n2K<^uw7CUhK;N{c3e>Cfg%}&Ef{vAJrEgt#jhoYby-ry)0 zT&wsQedYAWAJZK<Iezl^blms9)&2yHFkiaxQ+0j|6DuX)tx)M*$L$+A<cjJ$*6$A< zlYPbh0l?O-0Rlv5JU%b8paB8dB@F>;4qW_|RGhUnweB6e`Z$B6h?yB-QXx$b`4+@{ zEP8FPwAh}(p~p<9{zdDxonFM^5ArU+7y+ODA!_Ba*g^Qw(l4u|nyY|^6c~LF(gTP$ zLPSLX&AZ6YVSr6uZ*d<#aeXsNCPPC4<g{fPm8)H^uzjTdlf?m>M4D+3gJ5vjZx?Zh zdguR-r?U*JvWwO=-67rGN|$s?m$Y<AgLESe(%mhMbT^Cc5~NeQK|leCGyV47=e_v7 zF4ntdjCjU#J65WfDgzV(6$}q47K#6PAD!lp2lKR|8%2?;Ed&nBsm%3Slm6T;Z)>Z@ zXIxTwylBJAOY|UUPtou+<Wk5YU~6sqTOsd-9|tfmw^~O<w86i6(sz0$fQS8pqUR%X zS25duYxdS-204(*M0Ew2ax+p%QHt!d>bIkvEw_9Uy+dK5Vfg1{Tr%Mq(0jd=k)GST zUE<P4WK2ZV8SP3gNO!x8N+HOw2xdeADZ|q;-o;8Z&T}i{i~e1ur+*(5SaL4z&~iN6 zp-bU+NmX50oYhD^GBxo98C`kmmFkA=HGCa(4cVz3n}PS%;daesyXN_}vD<d?ea4#> z^7c*?wtbY4a{^q|LY(D{wfQ1AicfzO(%68af3lxVD2#@A3~`JOyW8*CbJg{XwJYqb z$<fIN2Ok^%_r9N$w|jL_zK$O5mteoOGnNa&>~7cX*t7BYUGu<ft1uW`phE9P&Y#)r ziEDFSo)p_m{ji4iVtr){Kk#R+l+U$R6+b8#XL6EMDf%@1-8LwlE>?Rx^7-0jZ%Y10 z2N7^lF6M@cc)7kz07-GZ;H#NEV4+I60P-QGK{&ka7mfh;AZZrwFq}Ze#j^L398;NY zC)jFgfMwu>jKlCgs`O&b2MSrDJ|9lZ?Uf3AB%kjt(u`~TD{~ulebX^Xg%glp_Z6UL z@wyyxKy&&>*ljif!)kKT@Ogz~Ho6Uxi3yf6y7`1zN|JyvkHaNs7=yg_V6~vRBsG3> z3LUxtI8&GJbZYl?IP+muAd-xqMU!Pn84sSLdX*Ri7oiZ&VK&Thz^d0R#LMAz-g$3+ z#T^WwC4th^<dq3H|AiTydF2}Nvt$X37n2=-&JEdswRMM=h|lr1!S`H7Uw5x#lat*C zCU#n2<r$Exe=}Xr3WZL|lzfo8R0rk;`@54oEF+NiQt`XSOTE%HUZ=@@bcIIs%hj1W zDHgV0PQ8_h`E$NpQng<7XA7ETRaw9Jr9_`~YVu1%mqXph$?y0pPu{WV0#>`}&18)o zXgS{J<vm6)rK*NH@hVQ<8I*1Z^~=O$KDR`?CS#9uW~GYut4$tRhBT?<0)8)E#swN9 zao!#7+nrjvemosFBmz$ROV$mRtQ&lvlAizGX)wa)W#K+7xJ-vNDXqB9lJnVIreAd- zVmPdHTei$92*W0N{ghzjU`+&rwsDpl4O}b~_k_f1-AlM+%!fz1S(yT!-UwfVL!Gxy zNE|?!(c;1DAr+{Rnrw6RNn`F~;9%pe^?ZiQ=SpJ8-a6cUNuZHd<NbK7Aq?BU`00s{ zC}ZNp@hee)v`>#`)1Np|*$FHfX@|AO!G+!gyfmoCET^&kt=(TE-%+U1C^$@qCNe<o zN7el`qJx{v;7KltLDcCFoUoW7grU^wEGJvL+7R|5lwO?;oulmtDmB+CinyFud*i1~ z^6x!=woEMC6L<q4fZ!k=wD@UV`Spe+vV3*vC!|0vUU&0CO-3s2k>5FjRF^+aTCU{m zRz_W64zqnQ$yq)$M^`+5NdPAO;Xk{sd_YG%Id!VT=Y?vZ$L9rFibje;Iplv<RDqh~ zKR@rP)#f;2VPZ8tpJ(dB`0>T+>0GXG>tfAsi()<!K_g-RN_QztguWYh!tU429-mJi z=3&hx6NGO)f1bl*|E$X@y*BfpU)$J=D6ZNGj|-G2xFmst<>4xWYQG-P949E#AnM%T zGH{+9oXFg#9xs(fu<E^>I69BU$Yjy8snDqUP%eH_VPN6F?`qs{a-DS!9U2-G9jBFJ zrIO>9O4@n3^s-TfI$m<~tyt}Y+r&^8X6|f_BU3M>g-q;Ob=BAJ-c$QDY$73E9sIX8 zn*jn<-M>kLziBi!8ei{(6DSj}HoVk&>HVSLW#<w0THdM@ev{*^N%SzZvs6jdRI#9S zBxFCDcOaBgIdyz$Ymg>ye8mwiW@6H<!O8;pivr)jD3Q$I^(-{dw}#AjZVe(iP^bil z%b)Y^FEL7z${)IQXBL|*=3z!ygoRH4exP9BVG>SK){~Zf$Iisi{oHcrU^fv^cK$$x zzS7dCW}u0R$j%)_975X$Y5r+|6t(%@Zep9HA_}O{gy0}d!%0vB2$8cqg3+tI39T_< zR*t=h4w)vK9}l+_kVq9{Ef}#z0HokU9l%U7R<+_gL`RA)9v?y?cc7<$868rJtcVz9 z8xzoDl;5+6M~X)}Bt;5&QS`lolA(&%6Vi^vC%-z%Sf+(%RFu_`g6VpCGbgXg^93hJ zneborFGboTvV_)Yj%%qrJ2_dy-G(?TCpB|OPHB&pp58~)AO7{v{!&PEv?2xr8Af1n ztvXJUnrA07C*4tAwR!v~>UG2N_W{dsFmo_(w%m*wHyZNwyMiog*rEfkZ8(O_a^=UA z%*h3!HP2@b?r1z5qNMaO98W?0jUID-zaJRF^wqu;<XHog<_$Rgk|H^ewlb5_x@4B8 z79Z77Tgx?3+Jag{YV6lH5oCrWv=bAin!4?3U7nFrGBbrO$am#YQ0e;E{qwT2q|wL) zK3tryLRtp~Xx$~`+rMlaKPNtmPnMvEv#jkuP;qnfGUX(tzQVa*d00#J+7UoAYB<_$ zuuG6qt_oF66b7-7e2#3A<5Ono6tV&+PXqN28W@T9e%KJzwZ;;az`BS34#f9_!00-2 zDQSW0txHf%9J3!SwyWY*2Xfejl|1Nfjz6%D!Z0CrC5-Js)8z5H@Cu8|65wJ8aR29+ zz1>1=$vFNeNuS>T=<m?jR01A}o=u3q5K#oL@kN{UY|x@Mfzt7}@1NGg#>wB&=G*mN zF08xHl?C3CxT-DYV&(j8;XKU{5!ZZId<2;+wSU6vr(^oeqj_9WcH@DHHFKRK&zjB3 ztQd#UWv{CDuIXbOUBXSt@2}CxrGI76NI3USljgH~ZtXe;lMq$)7TfNaim{A6>Kue8 zf1CXooa6ddq_)P53@_=mRbsii+QS8U=4<frEjtJg$sW7}mM@i+q(zB)P@l(U{s}nt zOJei!A<Pq`=r{K3xd^hft)aLmVK2Ju0lFZ0^gTYmKfYas4Sx<v1{9?$5z1F@i6#E| zhHt-J*J|>#)a<L=6SdRRloe(ZW@X!&tuGILgTCB&R`Q2HhHyiuNncb}ujvO;OkGDC zHyxw<2=lt2hgQ;9(+YY<-BE49i8>~OB>^JATTGRjsM5IEsMeL$zpqdGSn=p<gN(X- zO)L+<B*R&6v3g0z0$`lV+wRh@tV)_ln>L=EV@V>Ya5h9K7vJ^hOUx%z+TSOOr`XQx z`wiS(sbg9$GEAxDia7mobn;kl_*^dEBt03%j3JMMjTH)Ni;_e)j4zW}BfvE-CI;Lz zt)RnmsEUFA&mKKqDm89RzpiQ0)+Xr#Xtpo7_&mI4O*8uog4nOdUt$#q-+qR<>WA#0 zKKo^ITt$FkZQMolO~1?dN?$SEh<~L^SOJH>?!)$KUIol-h3tY>KfY(A2u!WIt|TBK zsD*tmrES|Vnr$l|I=q$qvsv;sDuIBEF_~1qt*FZ8nip2aorvFQ{*EbFI+lptW(_jC zgBU}x`Dx@3x-iYNQzgJt!ol}YFpi&VxXGbrx%_1$flHf3r@?;Xv0O6zR;zqn)92@N zvT3hzkI&sqZ_>n>j<uK6kSfs_SJI*qvDycvhDAt1VW~0+r-Q_1!VYC&cj3?<VgZ}O z#=$vWat!%N7JRgOPniN^RS8$_zrU+2L6s=-jq4~vKE&Io2V;6Ng)*3#VtM&%*4xf} zbQN9PrrdI5o`{pds8<@OAl`H4rlc0wUy0H4KNY>}J8;uC{pEp01%h9hxRcXWf2e04 zZ&AdifDmlZ*Fg!3WS3*gLjv_hZ8>&didZ^W;wiS|p=!eh)#4$Dm;V~2fggWR@8aHb zqPtR4NoAg^gdF?sOPlZeRe{NsXgyKu$!#14SKtz6e9$ZU_Cnb4GGs%XEJ~98Z4gd5 z-FO5=-UjEIMAu9CtkpoLoA&|vdV{}r@8dKN>QF^l<05I@8(<3Dt2&}$_|~gT{_M9) zn!^GQ51;Gf;esfJJ&5f8Y@5Y@>pjXUS=3Lu$Ib>*R0Xu0oNy|+zT9tJ<`>o7fd`2F zlYlT;%MCz2r8sQ<w#e4V7TL2iwfkgadT~J!6B8V?eZs;`9hsDn@#bGs^O3bJDP=53 zpQ9*)2AhG2Iam6h^>9!DFrAvVWINYe4hwtdE7L1x|Lt`e?iig+bCp)PhJo#hg+v-- z_!xHiPf7&#PhU}e#n@eKHoVqW<oq{OiA{94ywrG7R-O*ByY3(=l&{P!Ew8P|@saM9 zgX{v?d&H1@Um`c!3)VAlbDNL$#}5ysV#U(4-i)F8?>(vhDT|EsUVXO3afvYg;=IJ; zI#O$0nvFBZ^vp(}aEQjWlNx>gO|5*7N9L1>GDZ$x4r)rMSUk-H);_e4RCz#<IMypF zO3L3qLm4RX4hJXSxx_2RoCV$)_Uzvusb?#OVc>U1C*yAHjXQw!d_stIMi*Sk6e0u0 zJO9%G|97aoye4#ZUKi^6wBCY-g8Vl(C{USPt)rwt=H0tu-IHf%BBP~OLtrJSQ4?ak zMn*V_<;St9D6>La@%UL{bi_b#iF&=`wisu<SoS@L=71mNCYo%^<zx#3FNNM7p;Co9 zh>B{={bZ|GvSi&m_qioytIZm9=tlj0xxM+3ffm)r?=W?Q7ZkW?gB}Ee*W3MRH_9Ry z6F)83<5Bi4V#&_~`T4zMiFy#M%RdlIiE3$}UM{aqP`yS;^93iv1~;HkB_%L@9j0)^ zg88pY#5R{7<Xg_Ck{BP4OHMSXG##%dGH<@A5dW&BDZ@$pgduv~rm|YtZfLBKfL!S6 z7Byyc5)Y-JVdum9>0Ca~&R>%gZzyTdq6B#^xZTe}f)|Sig93HY-s{{=UDZ!zUTJDp ze6#uObGSz^HT4rUq>VpFN~<-dt80#Hb1kS-LN07D_JbeKvGTI><2za3OsD~Iac9?& zU)DP-JX-4I<yFE*P+8>rvMSNdYj2&zT5=U)*F2un<Fgp1etwiY^nkooCOcXA+HBF| z)b635+liXAOYr5Lgt&#bXMSE&N6kqoZe5XBSof+bJ1#zo%OE*<AP|56NshTjf#;%z z3~0cP%ZMNkI*ec$!9}H@D1lO^O@Y<*2k*fKvw!XK(jcTTAcoM=m+-c5_g=8v`Bncj zNsaoeSvMQH{B{wTE&qJG(gfOe(u1nX<e)wh|7sws*JG5Lmnvc<psAG_1Ya6($c&&= z2u%8TiC`?)3WeAeUiKso)Zk%fp3?}F7GsH|E?8#Gx4w3TPp_e(qa#1xUCo}^p6tiy z)twkK$9aP>y6uJeeK(+Y5^`O9C(XVaQ7+|Kcj0$_((-kE74yUOV(9RvC)obJAkpRZ zZa&|~qKwtJSDV@`G0kx&YptKN65gPb3;9rFPR6zLcr{yTM*&NSxXq;Gcc@{wsp}DK zUEEneNLp=j%9X5WPh#RkwPp8kx9qztG&)v(*j89gXL}q93EdRZNWgA%3Vm|*9LVfR z)%VU)u!mv;1OX2C{#`j7HT9(J>rzPTH*H~{@v|a;&hx7yB3?4=-u-<gX*W9=cZU)Z zN+-^h=(ZiL8?dh=uQ)tZ&i5adGa+Sii%Qb_=5!f(rj2W9rl6nIup1=^ntX6G0U_d7 zF%E-rki#~{9v?q^*<*#KEocq`lq36&%0pI~0Kg}zw-ISIyMuYCe4E*biV@JjU^8e# zz@t*m?CEq66rhjDK?v=Ieg%3(KwejJrd4jB#ngLA^ZR3>JgO9bP?72jx`G8J`C3bo zR!g;CSZunG&wLTlQyALf_wTu_rUcqj=rnh&BKnm-N=^ov=APSG*??0yM;C=%H{V;q zy_jpwBuPC1+duQ?9KLr&8D<PB7waCzEyz)6C;DRr&0kVnBp<sRaw(R+eHvzkMTpDe za2*&iEVQ`b^PTTIHU2x*g*dfLF<6);^#!gkIga5LquIXnN1aPvZ;}OOR?7xQfHxKM zl=Ao&KTBtGmEozCm98+1JRy&@#t)JpSy^fNo9$N`-DUbN5ypxcKqu7Lg>nVFeuiWA z=8_kbH1hIUZ%fU?_yT<*^uo!{)4ZG*@-HvYfM3(Z?!nDlUz)=*6PxW;Rip28;CQ#h zhbRAET|>ktw{zn?7+Y?s21HG_(M8bth7Swz8-9BOli&$@qw)2{F)T=7A-L|Kxx4)> zrpwG!{<vo?KO!l?>uLWCxTHx2fwl*LS5`@C7Xf95JBG4R#%EW%PS9w)fQ9M#dx-Mi zDU|2Vw)nLeRqeer@%Z%d^X;|e^kHT$2cOsP)07SminhOqc#~JMDqsBUKkfY7-g%;m z#6}zB@;}_e&m+KU-RQCWYH4cWG&S+_badQf^POcayt6ZE0wINAdro~VJEx$_z}5u% z>VbJga8_E{$v4bSp+t5T87bea6YUA$u{&+hbvHuCOs8<?H9ho*nLD-M;c%3Z%PZ)& zF$31*iPq>*<9OHw_ea#TG`0Epr-P&ICa*b@mCf3Q!A&w|sNpWZlMhl-ob~<wOYkAY z0Et5=$SBa<@p+Pqg$0$Q^eZv~FT)PtUy4<FTr7_lSW*KOhq@U?aJbmkb1-7h&Km8z zUZ}PKI{FJyPpjp~6iNl^4|Ol}d$jJE7kWLwmrAR~aD8TpJ7Q8!)?%2R_CvN1C=@(F zi&GgTeOC1S8k`i>-u{qc`!>-@kp90_{yH9SMuBEPf+`QEKN1ZU^$C|09{@V>dn04z ze*S`U=3`9(r}&(y892?7+8$xb6?OB|k$ejur||H18R~V!^MWKL`oW(BjgEddqc(N0 z*^L##UVQAhG72&VG72&(5=vC0Lh*js2pzJV+|{XTf|NXFk(kr&z3F>JDNj{M>DJ}Q zm!+c0H6di-2??c{*YS=?IHrY#1up^7K|%d})MlYx_vSOOY*wM1ziK0+6}z3*=la(6 z=H&?9O;4I<Z{MEC))B5_zVsjTsH6u5qVLoOX`wb_QgmaZIAwT-;{T_VDKa1h<<x^c zg|57wf6!6TZwQv?FErbcGY4n3uD6A>7O#%3G(EdBryJsPaM{+c`hfB|^<Yn048~W3 za!T?+(2;2>JuE>k8BAiAM6~h(egY{90&HQ*fu}Vn;glhypa;H_v}|6D#gOCicf(KC z>wZjAs2i$Gl*nCHc~2rRg9rOkRDhK#C9AjSm0mXA<MhPTa+Bq!l-DVs7_$uxhvn$R z``_`8_fdx4Mow}$sr~x;2nj_w<JWd_Pq7#_6QeL*26vvJw>YnmrT}Aci=C;6x=Z$9 zn;N`4)96Qd4UV#C6!}SbYTT_Km8xoi?KE@WInT~EGcuP*NS5>X&*ZaVfoD|-JqEC) zx^lY{g@1(T8*GvgspZy=D$=65$bgbHiLKGR0VAOpJ1y??s+^*n-^ok&$MMvET~AzG z7*Ht|f@}Bko=)fg=3>dh!g5B$WwE>@2z5`7yZPs=0}wLFh24eNY3=@X=}GO+K-Fn= zY1T=n4$_$dCn@24+<A{G9Yg*kLK$Ca0`)+ShvN^@G7-NAwG1ok=}h5+{hSWSop^YF zLA$d(s4+SsfrcIy0h>{b%2#dx(hb*Ii2s${b`3bkOxA0OQTVcrpwXXNql5hMWUcKQ z6t`Kb?30$P0qzhGrKRahj*pMyWr6qssBBh>6&8Uu&3{vq^dItP=Ckvj*rY1VI2-3z zxa5#tf;kiAw8Xo_#5UQ;9b8PL<OF9YZaM3BDU1i9+O<Jz#cJLd*zwx_J%>>Qxraw9 z>3;6DTWD(HMsb<^IQXf|Nd*_%{s`q7`@6e{=vEdeAU;q|tBy?x|I47y6dNQCLjB0= zK%GTU;#XL#jz?m5<7Ifd$#4NKq=D(T$BQ-Ur5GQ`FCpJibofYby`MXQed8IR9It9M z=-%1@$}5m;;12|<JFK-!HcO~sqX8gmp>)jl3Fr*~?jn-OAj3q4VB7~)ap&b`Kg3#h za-)1pV;x`Frs|5<_rCfvX<4HxvKEMNp{}P(SQ3B}34NbHHv+$x-}-`GhUCF^QKFP3 zLCUBH)I+i;LnRh%i7<<$=LQ{a>hBAh@5(+j(3_+GK=cdBV*V#C{HM+QjS~}=P^zwP zxAOFtEgFq!*aX0sGVoACj=X)~Bc!l*gI;iFtm4Q)6?92AU64ahflTmWWL+4F1Wd7E zp#cp<;neH+2-ICb;RbZn5C}-mqg5=1>F9fY`OVc9ct0VaJ8X7go{I9Pn3+027quI7 zxKqFe-%HFkq}AxQSi_dOUTn-w&Si~{%PY#Qx4ak^%fAM2*<YalSjvbTmfUzVmD3cE z)^qy;l?Wx<6PUn3dba5gX-E^Hl%U*vv*;k?_6Lq1TBhoZbfHqu|7qV|7G(euI<8%z zRfWPVDwO%|q9oJgU~8%DJ&kOEM_%`Ssj`o!==j8xoT*D$hHTx{3^6bjge?cJ8j8u% z{G(vI2*MN8FUag554{MMGpV41Q1<i8_sq<=<oFPUynn^af5Oba9~9-;!Vj)P9aKcH z5mBQ(;Jw#_#^s`hwNks~<cLOKdZ0ms4s@+^b4{kYKh`E@mqw<B8A$)VIHa(sv>L5y z{Wgz_jT2rw{VofZcxPaj2+6XXNXJS`#!ibz^EMt|ID6%MaxN^(FO2iKa^4Wv|Je-= zre?j9ZXyY45ZJqU#SruO8ukQpOHzLg*gJ^4{>S8Y0(5aSS0Nc%CI$8YawIh5U|fxp zauJ`a*MR#;1Dh{ENp?qyO^(b=fjxmA`Msfj+rPRs|0MuAhWKq*rMQF`sVXNWwpP^# z^*nOnGVPj;RQuJ9t`{hVpd5aGXc)}rdxm5og?Qjc%?k(n1RMBGt47YWw7AGgCXPtq z?7{m&ygVuM-vrJ-bo<k0QIN)K)H_0-+sKY7<TrCa`DJ%mT0=9U+A_{!?Za_!u;XDq z!+!sM*Qi@-k<9|ed$I^ud;BSaL6#bb6b5v6K(L{-cfsd;!xx@Ll$R`VrZYB9%;ioB z2ehp3I}`|PpaW91E=2qQRvIP{v{$Dlro6UyR*U4+zr4c3k-?XP4MyBhA-u20ds8Sb zDvL6PjRv^`5Z2xTlYSZ6Qm2$P&XDiFU{PGohN{p>-X?KcSz9jx7<Nin7|@-XtJA!~ z1Cf1N+TNe%!n%kLfcQ(<>#*Mb*AEGb1)8C6QL9S#_HZ`IFtlL3$@Xo`LKT(cZrN=9 zD@rVCATn=N!2a(>0FrIdSrOUMQ6jB4-+(?&SX6VThHmmE%<tdQX5E{o)Jqi=6{BTP z?o@g$u2~IS=N20*hVX%}lw$PR<CD%3A0uIM32oJfj;WU&hOLG0IMUD>Fv1AmPB9t@ zUosV`LMRln^05hMYn!5gR%}u_hS=7odG5zs+3DS2W2?0yxff{IfHf{xiq^k03N|di zDwi8*On;8yq3PG#cs)dC1g!}T0sx~ifJg&{7C5)1CguyEKbGk>*_<@n=XUuHUj8-3 zbP%cs#qzbbSN_9O>-Y72dv5?z-Az+7<Mn*y2X!SS^om;NADN)G476JRghOBrJh{T6 zN|@xvsqpO?r)TO-^XWJuT;-RVx&2*eD6`^~y1sGE6S9`@6#|A@VY}uVgHb8~Z-o0J zC?ms+d%Xh8y2uBaOmFxR`HIUEzvZQ}hCsw$IbZ)?2c5UA%{4_4lkd6HxefeBuf%65 zVP<TN&j4rC9z?NHu4tfjJ&`0v?MTh;Y!f1`zkw7S{>O!n+jB&9>wH4G+IS%Jdcl4^ zyX<}8uzrUV4yTf7X<#H{ZsLu6#AcGPPJvDARP{Vm-^hFHa^HS>n~?3(wkXr`Y(ulB zHWXSxS@Zca4sZ+o{{sO5UqTY6+UU>xTvIc<hv`0LPNO3)cWo$Ux5&1a*Sn~!^|iGU z#oUmfZ3-$*YIxlrV74bC0*>>vC=@3uB@!(8f^36CtK1w1vkRSa=Z{KClQUlq2a+4@ zOvpb(LOD50VdpQ3{REP;pGnJ<>|0zj9>!-Zx{U#R<c8BDhTp)I`A7=dyCjsCznVy1 z>6{aX&F9Zt?z8C5R~Vc`WHB(J%cj~bWu{JnnC@t`h9dj!{0T9llAT%rKN4K%wc^1D zAWUEgqGDyD<H<oBO+?q(Ub~q%)$_PWxQg-pu-z7wwsj4#p<*wz^>eb^jI_9DHgLqS z*hE~hnO+}1+NP!EBFi`t!T#Txf1xOc>|K(bZU(UfajB;M8d@~|#B48c%SlSVZ)|Y} zb{n{WtOklNL(+LaU>bkl+LANbk@I4pgt0k%Ly->{Ca^2o9KKlVVhG)+8u=4LF$??m z_l5t?9}#*H4qBm~V@)Su8~E-0rKeGVoF>j!8~6Z0N<GO@SWFgWkzY6lxNF2Uk{cA% z6n&i~IR65oFkeO0`rzyy$KZaF8UUEO1HGv#J(tDQS0NP&K0-Va%)Pq$rp2$?7Lp}w zzP^DsS$RTDj<a78Q?)|&WQK<fy1kW}428eA9E~+aSDxnAUV^ta*N|%g+-xLx3h@6> zi0C$X$0VJY&7i6FrF_$t4EbTZh&?@HG#Bt+&;po!-P5V%<`{`O*)Qkz^KA{)5TloK z<6c9RH0Rn^*ok7K%woQLb@@>6{h~u19<x#`?DC2SA$y=&b$EaQFIk?Nnrr>}7k88T zOvR6g8=>r(FN|B8;ER44hsi&!Lk42-HQToiO*X{^jlAtH2U9hh_t!4Y;_Sc?S6*Gc z0SF8tu>kVvFSyi_5|EjqeibK`DuzNjFv*ALN{XDlY;0@>Fku}%;-SH<4(t@w#!Sy1 zZZlvCVsa!USH2MkgY)n9aJd2K+BVn>C7>~$?@Q&8!3p336hUH<uSC(<{ER#nzN<y5 zSLyPQ_#nPwS5;!Hu&E0V2brQ#j~9u2=p)|0dMjWjHd36&#t6CVFoRy?bPPI^=wx&- zJiDKbR$^iJFhc=5=GRek&V7BbQXZGd5lqo^?_92rm)F{!(0+hvgnG1*#+0fjfSOg# z6~R$I{Xxhr>8<rUG)j9YnhaG+D3+X6*0j{`4j1XsXW&bMWH>qnukXN^rmawCE_5-y zEg|t+YfjIRc!1UBwO^K?uGH<?j|gWN!ThyAVICZtE3$h#-_Iq$OC=J~Wpld%gqgie zK(258hF12hm*$((4g(sA2q|_Tb8f4TTJBCOk&1Aq#bmBzUyI#3IZm46&H^CS9|Ud~ zyL<;6WW|XI%c*R1EJhMu-~J&bu)M_6rM`bIiLkiDymOV%{&bUGN1O9bA$6nOg&+il z5Eq-fzY8(WVk#S6hCwCw;j}pJrwz(K+9bG7tVB(nxb`H{^Kwqke~&JW<W{N}PfX1B zs%{SbN>FijMo2)BH|zrT8N&IuKnV-r%7wz(xJ|Wz-7zV}D!GIP>jlP)a}q#>LT8D3 zov6kSu-uA#*{CSceSziSGu!5WX(*pw$uiTt$>NhUhLZ%0`9OC|<d8uuIF2hhs=-l& z&@kABaL1u02?Qg^^eBA&)SVeZl#2W|(6ZDAjDTi@;+Vc6zB!yJl!O?jm^BsF3~a_A zRvBN0FQ2wG2e$^a%>V&@@$?Sr$X)Q)ps}&hP|0}C1db7-{~u#fAw1%dvti41_ZZ#m zDL4o)R8CBiW-#6UPb<yP^I=;!YC;RfUX>FI7tN>!KRf3MTpolnQ(!I|G?aK3YBGvx zz!f4oMc6yjp+aH&Tiy^CY{1VZz3fgu2RyYjB50gBL!rP>WH-^Sbz)+ogY^+?A7o|= zjC>n6ikXWGdA1^6-oKb#FhjCrSNIIq*1?n0Z-D8s_*1R&yjUmjr}DZ1<NP{LIj!{^ zeN2b{#d&i9ZtTu^0A_~Qvx*#VLqkJW{G-3%_0$_mn`ccyI0ZN;_6bSIW!k&)0jplI z&ED^Q2IFRz^P8d(5MGT}?3Bi05)zQh3mHOZ7iT2dvSj%xEv8)*x?h52`9Wi%Y!^7p zUudbQtefxpURHcI#8C0~tB1m3Rmj5=W$98Zw9Dh)ykdVmp~fF4C8Ji179rGQ=XON9 zRFNh?gzoo%4NK&-P_-(Hja3G*3>4u^r$23x5h9@$Yi`f5h<9F^RgDXgRh;^={@<Tm z8;a#<p9?f$>hvik!1G`lfp@t_rD>Izh;qJ)sFg!5S@{F#dF_0Dyg9YUH=@<H<-SaN z@vui3Trv)AiF@h0zs6$s)rW(*YA7{vEN^n@3c#P3)Gz$%JToZ1=K}+xZbnv)`@Z7w z{ZuWY<+f!n^WFRS_|I6zcP`71;@&1K(PJwlxUTGsR;5Py4GbRhniWWT-=!w;M)_fA zX=#ht;#FDWD<G=`vwX_Rvn4}QLz?xdu)M~|VJvHFYdiTczCB1EU-KIMrekplC1m&X zqA|XcVq&!rZly3cKP>B-4?uA&H!}m$0`WaTSa5VGW0VK5rPkj|P&X5LiGVi)N2tY? z(KEv7yaGE_*)iB~fj`};zSdiNIc@2RoXR9ONign3{qJ9yj(C%dTD;Uqg|Gc<-+m$H zM5IJ|YGupf4i$f4U}SVdgq^8amR5cA2XUa()!y0l6&3;;ci-jvg7@QR4)?^wd^U?x zePt8hg++2hSTSC2QV_<2H}TO}#|Dr81j}-&>u1}a$d_8Sb5pg}ZFm@jf8V|cK0~oM zp`7PK+f8ZQW;(H;o^GqA0nd*SsE&KG2m0VqEQMrZu_%9UBsjD@=6AUJ_JX47IQEQf z1T!%4k`4|W?R;hbyWCO&O(HaRC&Ed^Liv9$QA%3w^xaNlu~Sk}`6Z+vvZ)libai4g zPt;|wOM%W0{=NhKkaCTY%q~HSBu|3kZB1NIK!NV)M3JtZS9(^P*8b>k80S`tlaxH8 zNbqf5U<kiAILpGn+aop9<lq+)D9qNEz1KwlVEEa@iAmC@yLj)ET34>g^_8qF5+T?F zR8&t2$i?y*y8U=#g<r27HU=yPw_M^k4oqP^TYcWL)5kJHEZ;oIFpEP}n~F-+Cnofp z%usn3$Q_?9)=`TJrKZXr^^Egz)4H8qbGg07zF^THq7m{rZc*NG`QCl0T5b9JfQY?x z`DWRQFHOS6NyF|jp>P-hoj5w@3L>tM%G%+5=4~p!l2&;krH?MpK_>R5OTI#omKF|8 z7Ch<ZuVXZdsqom1y3r8XA(nlen1J-vS2FM8#gLqex=S3RQ;kq92DxmKcXh=ON#Cg; z8|9eysO=$v7&|8LOYa%MN-`zc`#hCk7!m_#t9<cb5VC{fYSdD_-|!T`a${BPE*c~7 zMI~~Uq{SI6R<CcJ0&iG!2ECroem~8t?5cl-{A9Cc2v4TKC&$9W3FlO%q%s!UKte_? zS6dR0U2=p@qQO8?gntbN!>baFdr_k+6AE^AhCgw-$kU=U=|FE%MZSF2heKPzCd#n4 z`DqH=7ho1iS?{6<K4G!s|Dp&iD5`ucStqL<mvM_rNo^Pn#g*p}=B2v&g%`|f(9!oB zh<A7Q37(1H6eprYqA)fB)l;t*+3XLc>9K;;<o!JY5zoinr7Ii<a>L6T)FJajrwBRw zm1bd|=O8iWcjx%X(6HFxp^s3b(XvTYi#*>zW*@?4Zq=5n-LkgZb-fN#kuqo1{(>&< zyDp0ihlW!8nwfchexS|95LFU3JdJHbj@H>c>ixYg#PRSFOJ2@eixru7Ke3KS4JT0@ z5segyjVL3%{=P5zRG)fSf~qOK_h+)peLg2XL(do8Ggc8DN3aabAm%RLw4mZJbkxSo z#RYY6p$)@(_k&Wx$+p=#<?Uz>i&sXZS=&@Q2#_BAFqn*d)=oQpts<q_f@4-Nl3hIE zlTE*3*xmfPvYp9?&L)VNq7*<V)t7q1^wBhYPMISJKcDQ336e4^%?C+wa&-zFH}x1M zujbMSSby)!kNw{^-qbd2)BUP?Kv0*RQy9UcCaPE)P!+v<jIY45-A53vb7gb@e%msw zWcid*%e9p8no8z3l<4GyB>Vyb(qnbm{AKyScmfN`(yP}o{-(OzsTg$zr47ZBY0JKW zev4T`)V$f|^J#zL11tg>+-jHOtf@BUv@c2wCHfsI`{lmDz&^_=0tV^4KO}%jy;Oj& zEuewH;v%5Mu+8Qcgwgr?z5Ox|W+phn`x7|_1cVd2mq8L6%!c*2yconno|7x0evdGW zgRU%GViX(0<Y1F|j=X}U*#VxNP=u$NHclWB<956Ho|1f{$OqR5TNOw4_Ib47z)}AY zid{_gFpFL(%l%{l{qSqZ`{z-y0~i$aOkw}+pAhjSCdF*-(fKuOWr{CB8ma(JbPIBJ z$j763P$%5(FL;5{fKndWrv~dD+)Zb+iRD`z0h38#AtkGZw=f#D^^S`cxV&%Oc(|Or z?kM?~QmB)eKE6gb`g(WlcQ+X*Uak7zIZSdWsAH<Vfdhvbjh5r<hokYDhjXCJSKSzr zhTRwB4S-y$U*APR;%Dlec{Mhg%@{PQLG>9-21YEuZ1v;``9RZ?xHGYS6q^Jv_I`KI zChNHpDbIkmVof<B9Lm5cW4Gfq_~vMGt`e=Y6{RfR;F2wCFhL0Pwrkyf;b7j(=FjnZ zsmf9Z(h^oXw7;<5qk!8n+N$khHM$JLaWs)2E2u)rLSdk@tCl*fPvvynfXvNs-5X@N z<(v7?^MSl9Rh384&g@Uz-bbhWE+#uyNu`PEbK6B@{GFs~B7x|a1ex-($|OAA+)kAC zmb{;qQNm^Al@LFJ;*N+D7BR2g5;%R-OQ&l+Va#0;{^#s9M8+@jbaau{x+;_@kjmY! z=$(`fi@khH%N<M;FaM$$1P_PiuNNY5bh5Y&Ze1xGUNN3G3LZFS2LS=*Da5lduQy={ zok!ufiVi08Fl)L!_rNwIVxGFqat8$?<hV%aKVXmWyBJ~`8Z>$$-<@_o_BBpqiwB28 zy(T0i-XnN#LhzRDlUOW(5czoig{1ye+i!KkF-`+UyzQ+%0Ut_n=UVJH#nXR*(SmzK z_<qB!@dBkK=k4!!)nagh5-QTM#4*F<q``$yq5}gAm4*!n&CL3paIeKSB{sWH7P<uO zjy4Lz{f*fnP$`BMR_1D8NMg#MU21qpGF%+ghPobZ0&VP9n*~cfpmV{VYE(neXXS%G zoPLPO+WJA(;od7=upF=z51<IWsV8qgrMTP&NS97!_XZc)@4ZHEi~qWZ{=b(+PbeHV zUHT0+!sev#!o<Mf+C-BLE3e%T4IE3v@R3J}62&U4vE<E0t{xWl%ln_hagx#KITa<% zP|i`&W8xx&DHjN6{IqC<sVqj&HQmmRFellW3GmsJnq?n6?E-X47+KADt-lw2%Ig+` z37t2EAeZ^>ukjy35&G3WUv6E^9n?CV{3e@ER4d~(Uvl)c@qa0ht&p7_gVv+K!&z*1 z`#03v8S~{U*I2Kw<c<URhAR3NoG}!J>)&%>&vxhA*9cJx1H59B5;mhF357QEmD>b_ z%!y;rgaWRoNM}&6$y;XuPo>E-FOYEDwJzU7G<>W>(yVw_jXydEQ#lb=;XJl4XeeIl zLqDN-?-0XbjG1*Bky`aj=Gm8pJma%dF?b5d=)(~^^7!0PD0u7ezZ4JXGymVaLwqfp zA~o`><BMH~-sdm`j1{lzl(H@7KMrCNYTc??#^Q`Jkjo#aDZ0vVX|^(M6N(0bYo?~o z3CPlWf^qET2MMK$IVEH!`M7g|M0TInK&kZ%5*Yl2>DjnOCYlhQ7OLiaxg##!h}-TC ziF&X%o=URAt^fQ%B})X>7`Ec}L^NMHM*xB#Wy*KCX|jz)Cg5td*)5#@i5f?ODQWL$ zM<&`J9wib^?H+60>=L&Ynt0aRwOiK4!UP`d(hiJ`r^${>(6|s6gz!rVdfnqXW5Jif z9=EpoNHh#|(pZJiypkRo5cYg@J#IX@vy#+%ff$!dSc5AfSHeFGqyHz47#M1zmnLj? zKS@o@Mc$Hvf+fvlOQiIO3JHKdT8*TMzXGOy;h$o3%YP!{F$Y$fI)9O+*RZKrNEp>T z9n(&T@74{1Z<7A1+CP2sO?!Kvp4B3yytmOM9*W%8FNu(uD%V(i5btxG;ZqnyReu6O zm#d-(o;sl+CdSg)8QK|A<_qfLrMa02>o9Lvf;U6z?x`K`3opIIJ-<i<Bix}qgVhsF z#DyUXRryjfskcQ(-B|!_2xhMqJH4*Y*M00Z+R?wjz=nN(Dv(h0rEbKODVQAxdl0s8 zv&psvP#9R)TfIF^qS{&Y48;mK_&ZrvoBQX|YRHi0RPH_}Xke5<t=1fpIKqE@dqE9G z9R*EyM{X)fsfRK(#75sRhDhgQaO=1k<zv{9(PCh>?hTaBshW&_FGk}XKCWO9a+ohm z_|3e<CKRfk&gEg~Y$L!O6aWoE516nEK6U+~U4>-qCh6*hvUxESyz4|d=NPfCyV!06 zDBX%I&=#uJ^RHvn3a}MYgzB&jgo|p@+lWNG&{9XH*@(&@6Z3n)aHtmllCSB!uF0|D zs6Cq*5WNHhY$p}hegT3(ONafhUC;DGOEwj>*ksE_8r@v%kZ%2grSA`~JGrgL=0PsT z+7{nR)Z_f)crjMl6UvE5$Ax_XK<{Xz3Ej^(VDYNgTj}1HK^}q$79$-mb^l5J$`H_U z1U>F)!AHSFL|@)C1CpfQS)?Lq_u&M%8K1(|?M*|V159?y-ut7XX$~?T4A9f^09RyC z&3C*Zs3H9lZxs*-Bk%M>eWd^T{Vu`#xICf2|9dNxMEODb#U?Y1Q@m+$WWw#v<GDZ~ ze!kF9cOz$VDRoJH72;eiMVBzj#6dM}KWV|H-{g5R>%vAI#HkR-%qPJ;5^%$V&CD18 zt$`d7>Tz*LaxD1jswo8-UkD1%!SGK+EEV$hPQ`-n%lVTQBtA(Ut<ggFquucQz<p+w zwuuSRukJEmL_j;yNYfe{q1p?EkVX|n2IR*t*snko0Q7JVMQW>}?nv68LjvCM;4+OZ zQJ}5$2dF;HY*D3fptXEydq(4pQ`47kL}<>MVnl3-nTCHDhCsy{F{X%m|H92x&f%?U zO@1#{5a<*xFw@5_MBT^6F3YSgCYVQI0(BawUdZ(UA|SPyPsZ1Dx0?)Ly=Y_tXv*6L zQeeWp$@}&go-M`Y&a(-|nF{asB->Z4lNMm!fgcsv?WR|vA<2U~6!72XgofpvE~8~z zH=Vo#FuD`&Gt~~0Ijw#R6+S11sGxgTDg-o}HjTssr-Sc9UQ1ApQ6f0Eq!isW{og2H zf??nmj`P+Yp2o+F=BLugPAJ@t6kg-F-Cb^-aF=yC`1{vC8lB)El`^M(`}kVv^ZWa8 zf(yl%?A|P!G{vUoUm)tQt9Si#`K9!GTg3$*;!z8H*aX^ZWmLQim;{WATtBF!QOO~K zlnYoiL`*W)eEi@a2!BuZc3M0(pFscuarYFf3`hniPNQm}#Ux<bVk0MBEN#LD$JW>j zkjp|f7g?Cckcg7!Z8R|R2;($^MP$_J-DN+ltU_Vr`EU^c{V2S2lhI(&n+k@ZpxOg2 z!n^iabfEP1*>sRRK``)wPiT%ZSjaF9#@dZt&IGbCuu89P2FIOt>O!-s2??FysQGwI zkCwnkbhP{IC;r+Fx<h~?7jVAW2o4{3s9Mmj!NSYO;zMnn`a%>Bq82|K<1IOjt$z9I zhV#>mw`P6mCBk99$%Ts4^RUo6CL7&UCVyH1qimUcFglx@FO!O>eKK#a)$->qrNmIV z?%gFuJv?W%ES0L2MxM9-y(v*t9NCx2H0MFhdckrY>I~gqCLcrfdjm_%e~@5(`M8DE zc9FJ{EXkAG_~0Gu+?Gg_><s4|8_!4WZj+~f^PXN?jAjp}t*l;VNi{-;^}TJy0)avx zqIouo&+8o|bLzJJ9pC2HO_@4Sjjsjkw(4a?oaB<_Ths53khaHU2lM1T2Zu8&_>8Jm zQItkS-H55nzdpVhj1M5emrr@o<Sdp7RMPE#{+v-HkFF1euY&zRKew<jzBE&A<Jizv z9u<)=R~Sxp^kI;?4TZJu<!W{7Ep%8}87ZpETNfbEZ6G4y-|QjK(HeSJO_1^l9j#dL z_Yd2*t|FSm+*Xbcr~Ib87=)&^r}$dDQY&!w8BfC$lUZ*s=Igj}-Yf5#Afd(qP?1qn zNq}&+{`#-pJ1!m2hX`Q-&I3|2E^<U%j5p|7rS3UJ^R7YEgv_yE_FbfiJx4<)8FA^o z8cMV{-`|Rlj{_0!>#kOW&}xfa(pYtkDGAg}JWT2FxRKKKc**A;otD8^H!FWnfJ88? z_*;Bt{W~Wz)Hf&f&KSk%<XB{LHDmm_{5}|aCSnqhfE)Y3?ep&Y28KA>6*JkM?Lxs@ za*c0J(<}(e%E)#T0ty<=8Ohi;OAj-d#OS)bhi|Q`+FBGye-oMhGMBF+(JI50Z;~ia z9NpB@XUctt+HhyO#~=c2)1*kB#w2Qel9KqE4JsobW`E27n^=&1f!gRdDKmv4dDba* z{ZXGZ7R?G=8}#{k-cq%SR_sun=kiV7a#B_CzqqkT;RuU{DdxN29w`nZAJbTI(MCZk z#FQa;(@2@0_-0rBu5cb9<&Ea+K%HK!*Bg1^x-{Cx!j+lqX)zQ871q<Rv0w5AeJb8F z))FSNp$Q{OVU3DJxTV_?$S0>iv#^Mb!$bu2;?HITeRtkYD~pE5F8+uw>Psj=t5YU` zI64EtB8LmNsP$62V@EC;d-)?fQiF+>fVKQ%1Id%Xu+wwc6ghtH-JT#6tfwafL5tV* zfl3~S+0P<590nzX$qd1Z$iVlW=B^+3vm7_>UVppaN&zVkhwbmv2%LibqHAx0Ym`Wk z%XIn;D^oj>^rC?rKkXL1M3bA(`Yi8+T;wy%NJ0$JT_THK3!7m*Hx+-16_Gofr%so} zWZua_sfBs(dt(|>Mn>+_IDVJuBZCpDgM-AnBSm-}k)zHx4`E64DuEUZDj7CrKIkj7 z7)p%|&bP<wK7S-WekEJNau1izXR>;=1y?=#6dnh-n}W!q>Q<IdLovV#H^|{29@SXp zl^AO6Buj^20Qvw=MvrlCOqM(UofRxJ|0kNS0QAIb&AHH*WH}AZ6+ijz-$FVIp!&NJ zNas?jWV7hMJL9AdW}=q6JT8WEhS4)S@-*lNKD~^iz~-%xZm2d`cUT0MRJGhVMGT5a zVrRT&qdULdS(Q#>oycsld&n;4BB)Mp^SuA5^!M%YagP#JRBbODUMovz$T$Dz)1P#< zTBjo4{5Pp)7LO8^my5?2rVQIHe%Fh7oU9tTM9GcHqF;M?-&_`ijxS8;*Sqicr3l6z z`N&ut;JZL_uHS8~q+GU97Bj%Nc8RpUK%$qUfZ@B4eedz|8;><tG!zC7ep4b(4~{V6 z?}r{#1XJXjZMJ`t`J*f*^mxtAe~G5r@%i6wv;2wIw>$f+WTQV&@xykX<-@1z85S0< zi{;601Q-{2oR;@D@Ncxv1a6l^1=<2IO7xjEBlliI=l%V41WN-Oe4Ev*nAKoD^oTcy zU!B=(-W8FPWW*OSl{BJhLkXR$1D`_l&WnTUa|iDyy;jFPeZFD3Z}?Rk?RV3DynnhF znTev<lD_>QM*h3kzbb=yZqR-_ZS8_TtyAlLyvBn#{o!7EH{Obw&xqr5y{|>@<TrXm zOp1&ayW5*K1<MJeZo9t;x8ba<2vT?rbTD<KQ@0BEc%dGF@&{qvqey7-s2EC%D9v{d zbZzZJt?fh4wry>L0)jH4UcV65UO;YZ^cCb=6e1{1+#U^gjJ-kSbqz^o8shKyeL3rD zeYWG+-Hx>p5boj;;fvFWdrIMrd0}CP52pJDOo@JVl=)H^gG6eS?W=RBsUe=z9rfja z)O=tw{Z;E1tv);rjW;IAIHOq^q~wi-RS2}IYFgD*T2p)dhAaIkE}o=;NYNs*ly=ZG zQ~SstgrFNs){$hw{URFCRvaLPGaUA!);F9>U+puj!bkUQd=ySmW5hlR)sXUfAQ46k z;#rX}9bBT85B}h+5$6Hvnvsr|c!*{K)QO>Z!f#Duyt5-3Do`1DkcQNH{@#r+2#clQ za?-tc?)OF`GbnWmM=+rGW=Pvkl`wpDIk12Ekg2r7OUCDxQyk}_h;>Epy}?7VT4UC+ zz)}%Ibuxe9d7Mh3R9@a%!@`uqhpk{;K3DbvDF&h}eUUb8*iH-kQ<XUD!j=sE4oiRY zr}-5(o9$KGAe*M+tI`dHa1XD6F8`nSoefV-_E9fo+CAbwc49t!^Z8Cy5D=y0swOW* zOgFA^;hD6rWc&8cc&YvKCI=b8h0FMsWD{iz!@v-e0_KviC%^s87mFs_EfSkU?n8E` ztY?-BMpHPbjy<DnLF>~I;@eCu65{i>)=wpK)w3Gpgm20fN41Un={ZDVA7p-i7K#P1 zuj+V3Lu74?6pfD=QI;{^-oFH&|FC{*KG$}@YVu))D)Nzbb33^Ggxle|TP^0n5lj1Y z0dsN(`SN`t8#IC^!FNt;X@ppUDdEMQN8N94(u{}>1qq1+o@Izg1Tr(h=#D9B!RPXd z%3vvTxM2MAWkmX7Tsd5uQ0Z%$LEXoC2vp<NHkQxcFWY>0Q~JcF6v0j`NIYi-Ooo9* zH_5-cH~7sUmpD-UPr(W$al|X1AM2ZB&@s-J1sgr4W7j(t?Ut=;t_qo()8D*G3lVxE zB!no)cnjw&wdnPTNDfUsx!nHt`?gq}$L-+U(@T@pWFzRhU$2xpWzCH*!ck^-U(e4& z+;qlaXL_-1=8Z<QY<5>v$8~^7!PWdyJDc-2?wH?K?PWGe;LowB>(2>fuKhSd;qu{p ztaU^*n>F{fdOt0lfI!`<_z0Ju!QtrS^NrS}4*m48I-MVX{PqLgVsa5*sgqpE%s-i} z(+i^v+7PA*41X(Lx0`f<s`h3wK9j*z*bdC&>JL2@YfD&U-YR76hpxVLgx<LLhf9Du zyu#vhOTk;P8J_?c<iy+`hb|)k(1!Gf*;cJ|l>ml8=bNa|n0EoYcE=U`NdoT2YyQ82 z_5@wuo-PU74>k7ohczFG6j^_p6;vcOl9`*=VbI(bVUs~4pRdw>iG7m3A?5wNTS=F+ z&vLfj<3FxtuT9P|l~(c2x%>cjr!ecF<#4INEv}%ylufVIWbt8=#6pQ;(+pBOG}#`f zU!OP8FB^b=VdL&#`BY-B>rNr``Fw0$W*SKP{ERnQ?N{BFivCarm*UH6I)3QhCGXTI z9~~<;>e;uqKG(X9eSR@$)~?&KFr#5ktF19|CQ@M3wjFT3#l+8kvW0=A3{11kj!3}i zguj%AV%Pc54*Punm!bCnh2P*`U+}-B5pc7O)ZhEDK?Z&1h|4nK*+u*9qMzB{8)6~- zQt<|=xwoWkY47#>aNl)xes(p88N!2X5r;zuOBI`>au^x)eEb86iBxe*ZBXFs%42=p ziThoZ<v}daw2_>IF^daB2!vl69Us%E%ov(3*4%c3$Phn;4$(3!XOX7!SSp8$^#8>m zoT<J@Z#HWYL07Ou`nVwT2i<P5d%D(10G$Ngs6IDrI@&mirt${kc)mifMQQQAT?@-O zMxzjGpN?;%ZKcF*)muOy=XuHdQC!x^z4N|~2jDg<W?Mhbz5j+i{zl}J7gNCjt4M8o z9&=wI+6Fv-)6qhQLzW@HNPk-T2${8=mi%?dT64~l%T;xdj}@caSoy<Z_X%Rh90^N7 zi+tt6%iWBmT#8jS*s;ka&|YA2qI`SIOW3gsS<WJt8W>o9%5pt!DFeLP9^@zsdy$JI ziOHhmjV>p*;n=5|N1DsI5knCd#~u3H%s;tnpZXrOFJzZsxShke2d#I0-7gVJ>;z6> zEm3Pg^M?On%`2Fzb?e$cV_OpbM)<wWW2bMl;e7VPT{3%{&doaxv`uJ2h^?+}>k~~c z>%aD7m@=DDSP}{$_TC@m+Dk#$U|CwfU%N4N30xdg!E_z$9$cKRC}@gWRJvmD|N0{^ z2%zDV2Nxzfg!cW2*K1#{qilfB=!vC246SN5{|FKhHC)9RH^TD%qxU9%om{C&RtapW zbzoprsgp5Ynrh@Ykx+tcNxnMMuGPil`2Ow1O2yozXr>C^Hg2qnVIl|6o9lGEI|!6S z;01)kw5#g?SK_MlOssQX^XsrwgTF1OvzC32=!i8BLrL<XYHbHedM6gK=UjGnlO^`_ z)ywaOB|}DMYuIwuK72EY+CS^CYjbW<tzy!)k^1PBAfgg}bFtp(*0GS(V%K~{e?TuR z&{XcfX`&=}Ys2NbUo7)nVEqmzRGM+Oq&R8LC7rsh0-Ml#!EUYlCHY-pi=iu~N{Lg* zhlq>pPe!@?X3py+_9smwp5t6$#pUUmbUz!SBFi-B^Cq_=J{}LeD*g5#qw9LQ(CHNw zVT+O7bx{0Xfx9oezhhy+=6kd9w`$wi45RC4dM;1qZgwsfx|_+>Q)=c5O)vMyQ<JAG z9=jR0)35K}uss0e8!>vE0V|V&aI2Z*WV@10<KdGK_lL^a0U;p|<H^%ZmUj139>-g9 zgPIoPwqhX@A{I89uG-|7$pGwePoq>6SY;}jj-|e}AD5BA<q<BL8C$9Agjrg<Hy0r) za?UWrUMH!WlO)|ntWfD49<bEZF7Q%8p%k|-e`^rYU;=k%`(N2pTb?D?f|SkN@x3@C zASC2pO`%4Ha0qSTh|l@|F?Cj9S$$vEra?fuQ@Xo5r9(mKZjkQolx~nN5fn-3c<Am1 zX%LX^hHv@%zX#uuCwg7(XYaMvTw{)L&mIjw<ofIc$lkzQ85JV;;f!Xf{Q-;2cu8F- zJ}u%WZmU%*$OD5s@-JFGhOXyp7HrdysA;;_B)pB99i6b@@x=TV=a57xpZNQtSu6cg zJ{=>i4=rB(yewbpNI6BSpvdDP7Ud|0#N-Y$HJK{Y$3AQ#Y`ypbVM$pzR!-KsYsRLo zM0L5%#~84+heP5IrY-ZM_H%&#$B~Q}pULe!vkgu46)j89t7rR+6bz$Y{92|myx*pw zJ<YG@FS9<hIPLnE+hL|%wq;dH2#rk4^?Im8XpDNB!(0n0hzJp(pI6`K?;iJ;j;9Pi z7}+0hj?23acKXpBX3G{EWoq3K*n-uZG%#N^f|LburmnqKOS4COyWa!aA)ndEI>)p( zI?-ym+d<R;`ku&@dX!aHF&%N5@@(01p+?rmSfbgc%g<*=x57rgcKxLrtBKZw{4;d~ z<!oNF!<5eMuh*o!<_js>D-W;B=BqN}R91%B9?yA*7=(Ja;tVRnl|MBcE|&Ye)VCpA zlL;L(?zgoVOiKDz&=nBqo?M|^(5I)I6`IOzU<xF@Z_)|Uj*lH5A1bljO||G=3n*cJ zbbt<f%dmkr3GViij4dgz=p)|txdg0J2X+v!<KWjGo*-aNLn5_}#gp*x?46vv2389H zNtUmGXgRe8Ewww@&1XQpaS<SVl0~M+*J03d9IMliQ@x{R<C?#c`UL86``-baXsD-z zYUMkH>3p$YRROnR!7)eB^U*$5P|!{H7cqbP_`v(8{>Mq1E~njwlyb;K@%ycxMV4Xs z#uuR<IICr(11wyN<)dW;m3@x6TuteDdTdG=<lo<WFFP4o@tChjz!3P_ldQJccpt1% z$tc|w*_E<txz?zN<Oo(dv|P8{-|Ve68<z@%XlSJ=ejws`8jA7*;@QcBi+EO?J~6jl z!SuIZD#PuT6{LP!*6X=Ufdwc~Qd>JM@j|7w+Az#UI?UMC+=pBJ*LyQI-=^!@I=@%B zW+JF?(XrU~9cqgpqC3pha6UImWPyP;m!yKt=HKU%=g6BMncoc-)fAE0YH_~`EbxD* z&P`l!rOo`nfHSx#32*o#ZM_ulVy?k&eie*=A?LPnJ%JXnnQ<sDQb%kqP%nDFb=?L? ze@j*JS;K5F7wrC+f8O$6lTWlbMflr!qgpN1q^fk|9fgk&b;$5BHz<9bi!4Fjz<(jf zjKnn&NQ08l`*{A@7is8)xrvDQ^PQ#Ir}aItb&_I30)jw1`{g@ALL2MOVIXyu$I8ke z;A-ps?_B>^r^6WSaa!DZw~+{!ea|4;e>gP(25_A#f*H%l;O<@4<Ar<6h@T=^H(79y zbu86+t43kxz1CNLZhze?mRtQw+q)4}4Qnq37DEs{Mso%1Zr4{=WS=MRrHsDKwwf08 zje5s?!PF0AX)jLs%q=_=q8Rao*P(d2aNgb&{fjhJmlF*G#o=aDtY1Xzto4Ep3M$#3 z2zS<;$sfak?cM##8MRg$Un*+B4NutTE=Ayb>6kvJ+x2C^v<J(IO9Vxi4*j4aH-EF& zAUU?H4c~0pe8F-8$LO-V?W)V;>1?U`&^A9i{}yDzYVjwwiZ)EzyU#hlNZkKq^S9%} zhRYl&XP+9u$ZWsv?uMefT6VXeGL>5^V@f|3uF=0a4gU41<%(<pCeV1LfQbzzm07`h zedU*9&pivVYxX*3)aY@7{5EA!49y3}9t8%`84TP%i}jyQKp}}r$meo<X%24TnGL>2 zDFVZ#W7-^U$LH0_mS_Y*D|0-;rJS`Zras?!KBa@k?W_Dkuk?1(rTU4<vX=An3zD$# z0g;;>lz5HpZ_jdjFI^5WsPORSd_NyDzBGQ2$@K&(ns!D@lAP=IC$LAqQwA0$?IttY zET%N$1HE*Y+a+_g7X`<!#le){lq{=&14h)4@ZUOy3C|-W;N9EVgydsPpkTrFqY`R; ze;Y4KMW>q6;W~AhnRAb7FJ!eT$YdCw;>-|%v*i<TTO~27<6$pi^cyoeqG9E6waqJw z;IEHaZ*WxGas&C9Y*u_=fm5=@imVFyINK8xfetr<(SrH94)qk07&I!PqtUytRk4nM zi%mfm!G?n+%eA)`e8vuKez4gqetN=>t&brv!LTB}-A~<|jcUG>2`PD4xSPBCt#%K8 zGPz2@1)*6pZ&kTD-kQt3O;OJpp567ROucBZ&JB^xC;64pJB219>*E6bPi}v?D<+G# z+$v8^VrlyymcrVYT>t*E`CUIAY*(7wa(^Eh-tpSsZ$+n4c{g`d7lxgr^_E+lg&C8k z{dcRcAe2-EuM|0=rAcYw+_zNn?Q9j~i-XAm*`wxBgi$>ax0_h}u~i8P305*ky!PW& zXaoPC<5hq8;!Ui?q=oMZDP%Z%mR}vJe4jU+uq|B=XG;x|H7?x$HkoloiWaGI!i2Li zGzs+nv0$a`8>`o3+Qb`C(zDmQVP$5P`g+Zj_V`#+S64Wq^tZBndpkG@>zWTHT+dm; zi6OZc7lV<>5`R*mt_-Wa_Vm%dj=15_9Z*3zYpbYv{VmdAkXe|8o#%7gJPuEG@!$VS z1-Enao$R5D&GZzGjgO(&|5=+JXCRIg=`YVB-e%rE^`HKLy7pwj!z#YBNC=%^)@zR% z3Smu2G#bb2WNFdeFZ}xN@0$6M*MvQ2Fy4*BIp(z%?soHEm-hrJ`ZW>5X_ddY5etaK zJTe$H9;UE8;;=t9b>MWQszkZ8`MLu12}_p8!By!`bIL0}$3Qj8A%$Uj6GwQ3*U{Q| zm_#I4Sp`qZ$>#&Ki1QWM0y3p;VmWcs%GsQZfd#siI-`O&L?X5QBg*kGNqd~i_9hv# znK`C?adrze`Z@011|7qpru^CZ4R))0M5E2Twj2}JA8{rvZmAU8NWX(Aj6lE58azPH z@msH$MB<sM^UKnlv0rVHIIzFq&1o?@G3-$fEGxC>k7yQgJAG|#!+rQzd?$6!`(rx) zVxdVYoz(xCH(iZJNP|IuuQETQ6v9r$MZwEY&z;UXm0NOhAavx7UN+tMH1l@2vav6% z%JZLd%vT;7<&*V>g~eY<YTc^pYi=I*`UZ3}_QrwDfQqiIsK>{oA3ucG1$8r8p2`IS zt}{Cfr!)}}9LLwo0Sh&bOh^>ifq|tP9e7*zYj!|yjk@G3cGEH>KwVM6<xG0uW#9(q zUG&RaH7=sI!}WshB^-Vh-TKg6&;}N*MM)m@JKBaxO|R5@YndXYDKWA8A5y8=6(glH zBm$MR{shvg8K(k4mG1h}(Z(rF^}^-|+@67f&}9l_;Zno9F~nb|{T{z5rz07?Id+I> zZ4{}{ZHe=XxFHqt+wQT}M~wT+>HF9FlUSY-Stb4TT?L9=%hl0Tk>dCuQ!A$;oTO9L zP4w&N{$EEt#VQA5A+)TvLTAOFXxM)|xmZ`E=>x~fq|3+;kB@;H8#`2^x;&HCvkvh= ziV`&J)O6wcqQ9D623`rqE-4!ZRN>@3jnnq7HW!1raQ>sb`iRQ99_P&tT9Ucq)Obj6 zKP&Tc1icq}R=M6}O3+v?X71;3G~NqSbJ66LyesS3R69r(N>?Q=QST^Hd0?1Z-5$aW zH@I59J{C2SF1l`OI9PLuq7V@65DK`iTa}WT`KhZ}dPE;DZHxKwhDn!qgs@<`SaDcI zYJ7>`kp|gae&aeb`M&;Oq2>VssM|`*p4-1+*@TUnZ*S*#1O;P1@f`4bPMtRqkF|uB z(rmvcJ<-iuYO=_ij1~SR(=)in>*IMLb9LbMcg_5C@1v!Ij!%yZoMfV0M&cJ+|L2h? z#ks+fh0x-JQofk+Jf46(%v_bNs2;{x!G$LSaPqpk{*BkKnq#DINuiPkFKoj>(bJRm zR@jAWUP0%Sox{C7fUT+yXR=F^X>qaF<M@`C&_uoU2lGmRvA*yNB}DA*00#DU{eOPG z2K$xjx*VQQz<g5$20MqUH`G+`yy{)A=;VlK^~y@fPLdjWk%ff^CTbv4L)-)I4BpmZ zd9XR~d+!1o;Ug?nktw-|*O!c>>pRSFHQM3XZj|e#b{9=223Y>mlup4?k05?b{<8Zk z;+dbZB}_+)-!*L|DN8b*X^L1KkAo;2)VOLy16=>JS*&3Y1fuNSWxD(9DihDimR?Oj ze^=REhd}TdXcXMMoD6IxLf*QR^4YJ|x~v&jv|KsN`fMwxvz5X%%M8#*q8RYo*=!w$ zEZ-2#1k7wts#~Cu^8CD*I4dfB;_yBkKzpL)C3U)W>t&QTS4<!Ix%kZ-1QeHF6TQ&J z8$hEz77Fd&aNFt`mOAyb;FHu*p}uk|u#ErlchMnIrR}S!<{>?W1tBySj(LS1djt4X zNxiQ>E!6vr8)Jikcl_2vF}$RL`!n{OmZiO0d?if`8{R&<ZpSkf?;|AqWL5JxU5*#z z)tg_F&DQHy=5D2{{Qg0%iir)GXjUA*KYBnX<0*JqFCcwDwO#WO?_Ukkao=AqS*xn| zlNnnM2#X5(+)UrseLvFq)lSfZfW2;b-KpqBi`TU$)S#OdJ(sicWrAY#3om)C^Z3~^ z8ZK8{aE_%aA&*(lz}(71{qa<h{@TV$M2!7nIs7A%ijY;}_bDXqFLmsQKGRff53jA( ziX5g@+Oj;zIi3Gz@7MmhBnLu{#mfDY#akRxwAp^MllwtfH=?=&VbAluG8a1KJOQho zJrxmeUh8GQ%I6U7ui<RaL~3WDd&x0@8!mN5z>aONkr>e3w=^xjw$U5iK=Ko#>9JA` z4yHQKkn&AtW*G`(0X>!AOm}anL{lP&!4RJS7<1uqmS(J{JLSnmopJt#BqJ30zD#Zv zHTVA(7A~VHG2gLOC12}{%@X#%Ch@&XA9sRjCJ=C*nKEaB!&*$&rJ>F80mjh1@e-!{ z9TKurDSyl>hnsQ)RFd|I$;DqPInAIy=y`hksv-rt^i})I<)VuwYD{FiU%P}jyf_0> z)_1UnqWWXY6s1$(|FgD0cfUXr++x{kpo<4h4i&V0>2A<#Tf(ll*ig(xetYhms89es z{DZ&ACv5Ct%Jc8OX1t_)PnMOhuTXu3`_|`qZ>8T>&qMD{ZaaI6TwRIw>hxTMpeh+y z2t|KbzJ<Ngc`!HjIR2;>BqPqbTpPI{>~iu%k|+~cE3vJcXZNXZzAUPub;jmWn9?aL z_;#UDM5Mt_Ijf!&60EuZkt^pO)}5#oc`zB*ymy6XVWr*FCkI`D<y-CbNX~=A9pme2 zg(PgK5S3vA>=&&n<K4J|?t5Td!}wGyBa(BkPkT~bhb{*}kJK;ZHoVbzeQ>ZhGt1jB zyZt<yUKw#|4Ii%?uV1&g?Z30DbNI4k^YRD2hqR<TN6-7&{#8N-RwWJ7V!e&Q6YVHq zF1%FbjV_HZsdTLc@Adb|&W+rke#`;Ku?GR?JRfd1dy^VP>QLi<ABXzevJXH{%*<>8 zf|TY|a71Fkbo8#nTS^Abd&5sgovWe~6Od{hEGZXt&GiUFwOtjls|)4FW{9|DiqG9G zkJW?`1QN6!_39Iv0ims+mZJ$ChA*Ze2YcuVq{`9OfIgZD^l<ZcfZz5T)X(PZZn|K& zbq)fj1vHrX+=Qghex?q~@`v!cbuP(9vg-*$p0Cg_HN{8#f`{l-a>Gf<g}o_1ejC;z zArV6^u%P&*<s;*1#2wYUBPDbSr6P@jI`O(%$?4B;FHaj=o4)PSeC=<rennhb6R$V5 zq^TUO>=IzP-)7fb&-@uRoB&Da%OAFlNaCCVFTQGc|Ae&S7ussI!ilPk7^HE_2HOf% z!|GqY$FlfksmLYb%)3ZCl!Q<r!q*iiy-YIcF)VCZT86wGXXnZq&d{<2Fd6U6Y5P~} zsyNx%1-$Pc6V<&vvLCll6b1;LUiq`J5ozbOZ;%3}+^ZDljW)!aalHw#QV;F5zZz&E z=y*z$sSKe%kOJl}@Y!;jt<HaorN#kw2!8oD`nB$()atM!>o%r()$HLCB7Txv-bB5R z20Gd4na^Mb)s`h&Zj+JYpTf>Tmvq#M6N7+b;+(fk*kubp&L1yBWzkRaW?P)E3pb)_ z(<S=ZGWM25W5x^AGGU?$Ih}~1q;fQ(>kr%Takh>(?*Hz07nN3KHyRl^A8AX=NMI&2 zB{HrH4$Lr$)*eo-Ebp=rX3tEEIsZL`pVnodwlQ`Z42if#bW_#$+djn2Vf|<=jTI)x z$i&2;r05A|>^L4C?$o9$s~B<%e=_p#eAKXV7G2;D`oNIH^nugZcV-zs{)CtyE05n} zr!KdXu#L&`k|oxm!<&$RNzKX(*-e0kO^|tg)4W^VJD-Ve%y4p+tNm<Yn&wSfC$@3a zGW9Jx<~;#OY<#0nQBWP{hxJ4J#N@I3-Jo7mq@toKQ*L$j6;>Gu;nRx&RC8<FW^8Qr zOoXOgYuz^})sxlNr&r3TNOEU4iuYIBf3b3MRqmQ0P{#uFm&(asm0R3Sa+QY=qxIa{ zMfq*3Zb8$!*`uG98O#c?T&UUr^`HOqIZsG0YyQMzNHCcHBIrD`7X*v=no#g^uX@W- zy6P%_x02-Rct(`$n>r#6XX?XWmM8v{318Hd&{4f=eS3$3JZ(E`c9`^ji$Kn#Lcm0j ze%0K=)gr`0B>iCC-H}WbyL&`<<qZD8>-*Ob0?NlX>3Rt%UqrpmQ-EPoNo9EbGz?^b z9E}=1waIgHr>B{APesX!0$oCDL*}wqgwt4c<KEh%61AG_l;=;d+sIpkEQKDh(Vt<z zCguebGu%7;pTg0Id7Y-HJ+BnQg%bXA$tXL8A_plwb)pwYzfVL%9WE(Z|D2LnLuFI{ zZVdCO?E=bS1Z$vi6TK#VaEI}y+*nv&FZqu*)HqC?(16~6OU_M+!<3(=2Yo%Yi_VbD z1Ya}0>JG2Vrrv>wkP{y5K^BmCwx6>A!yro^!j<YPKT!0pv+rk?<XPq-iX^-$eLtQg z?su{26s=$$nul!C8OKxiMk`S)nDF?|A80*XVmWx7VdTCkjsE!>u;UgOfCY9YOCySC z_ZNS5vg-A(`ffu#3%xTvi?cjmdhzlVFXID)kpAX~SfY6zV3(?dT(B}(atR2V<Ok}> zot>fY&3@Mes#Crs$O8lXf?=hB$b%31Hlv&82UjrgAo2(pvT0;YN>#FCq~%_kjHLjM zp^D;<&acQeC{!riKzZQ4`&g<%YHQT$Wa{~f46+7HdXiCxz=D+1;z|)r4{V1g^Oa&4 zU5XL&x5Z^tzKNkw2z$DECY-!uznk48oy*0UD+Fnx2LIf{!_AhdH-I=hu;&l46*}D( zmQR1q$Nc7U(pmKRQ1mqs6tU6P-wK_ME^o?)7MBJP++0|2jwNzCm<`DVz=z3sF$^uF zMQxBkK_Y1X4sklCQK*^-Ez<nX1H)nL`%9Vve^|`1fiYEwS-pniffak`LpgfP4+ZK( zQ@%+i{aUSZv$GPCM9H#e2!>18f*#RNEryTnYnp*=Tbx$fZ$1uwBr-wAoud(ueK)DQ z5Y6`97nNheB}yquc@Li{%=y>3dbl3-$Eq-73N+M>PS&I5o5@M*X2<2k7EBxj)yK~G z><@$eeOgrqP)|W2jH0&h=-;3AAUBn7P9VeMDMHPEj>yB;OH*CoZ%X1v`35UT8?1Qq zo^F;urqjAh;!Z79`Yvi34uR???ENLB(QT+0_HeGKpQ+Wl+yu<PR2LY;O2N<nu|k9D z<vx!JkGj1*>W{_GH<TvOfzV_S_ztgbK90l~*2xYig#2JiA`$v+<?+?FPLhUC^9Cnf zy$O5{!%e<A46yFw!)!xL^l+8vmEL#vwO%l45}0qGA7fP&=0wm^oOoHdQ0nQZOV9`f zak3OHZ(k8y!XO{b9SNPfZhaj+tw6nkR)Oq9$jXE;IDkn9ABwn!7<x;-;-wkQ`CJ|6 zq<k@uX4*jR1zd~}Qis)cSl6I1HZJY>T+uKV%dwoT(=a&pby7KKqW$@f022kGK<ST0 zfu<5$f6~(6(3y2=E}y$)LCHVCUls^s`P%a4k3JkkX4(Ddcxer>s~{!Cpv4QDzQiY< zYyu3_WT6qMRZRa02qTExCRO|s$!yxX|5J(ix)2B>Lk^PPb(Z<!YT`D0?&zs#U9RA% zS<+_@F!VyQL;0=BV{l~Qm3kjAyK#e9F(<jRKOk^&Fu;iMwisjM@uKg=ZCZmATzN+H z8Xo3^oC(pRp?8oObslcVL>d%6Evc{DutlC?rwRm2wxO#&hN$?zQ`UOoekpeV8V6%| zlV@S6>MCf9Yvibcxp7$7$<f&d0c_gZbwUlWsIN)CBk+OyH&D--TKZGC?)I>rgp8m{ zEO!F+5xD$rzuA|LEksIGeEBu^Q<t2CNTY9aI|)TT?5$!tOT>|V?y58d@_+#YE}<W* z8hvSrb*-0<$Mk*iCg4w>^0V9<Humpd6T@Q>R^#7Z!6H^)sga9%AzTd$_==Lvx~Qn4 z^9Gl)8K+3)bj!MK?ElJY$j77<-7tiLy~L2)+K*2EH1{lTBo&`4!lpl|Iz9%S!H|zf zKG|E<GuiuE5Nfnb8xkTF5#J?)!bHrgiUgTxa!Cgc?=~-dG&@S2e_k}ur)kN5Ps0x9 zBldl*DpTckj{I<g0XkLsW^`XZZbX8=fe}3`YljEh#K1(9mT2l}4M=c0IZ>PGz6eEu z0xc`E8HN}m9UmQ~lM>H<<x*LNQ9ON53<h@NxjHoru4^D;;UPX(DO2#Zk_-4a9$`bY z^&|`=D4<c-2Y!90Hs4KzCW8r<95Za?cbPl<r)3cHW@mJ}Y)qN6--pd?0@(`5Xg#__ zS{e>x;KyPBM8@$>Djb!Rn;@EmfXl)b<U)<8_&pa;0)rfn>iO)kE&`rO*+2Yf>e=X2 z56s)5Q{}M>9?jBeH!+7U;jhfMI&Sqk1=#8KZrPYOHL9qjyg%%g-K)+Zol=sS!U8NI zP~j5|ClieF|BLqdHB{q-VIYQY%dKg<{JA0La2ofTo_DHqE`S3aj&T&!UhX+Np_lUE ztH5-4*{n?Yx4BmxGR*4&c<W1`aJ9DXoPkr!I@-qRH9Mc6xo3prlXBz-@$H_1gj&`7 zf>Lg;B7|Q3^Zslgw2hjTE4W*L^AKW6@RtXIMLJWdj;}j*T+`l37X-~LYSq;vuXQPz zOnb$scqHhiQ*XOiq3hu%Ma6$<8MtwHccB*~hk`0!whxTd`K^zVv{|}peK9dn#G=mB z)z4VTqp+;y+O-zo*r*dJ)5VYW0#Nj3U-;(#b5nzw6P?`%8cV?qlVPi`Lg?P2o=rH| zWPqez?(4g9kgj}+frwL1I_TYWrXNsPbq+5KEdKt@Lsv>bIQN2AeHujqB8|CF=%;*w zf{6NsmH*t_MouQ!SXsc%{oS%MrB11834|5DBctBE{otW`0w$;MI;=iE-l1@uy%I-~ zj2h`0B5JtuhGW<3aH?HGf(;qX<iOUg76f!CX8s@y9n2=o1>cQ+2<Y75<@i2#g_T2~ zvZ3N$9D*dWYMZjVYpdJhB0Tb7$T9>zfv@}*ER0nCE)?#pH_R0XfVdyV{LeNH9yDY@ zQhPQm0|yz`kov{!5dmuo9Sv1mo11C)CMsKE-TvhFH5;?pn}&OGL_E<<)6N0N{_KIH zU``0@<UC9`u=G1qz_aH^${?m^=O9vsFsRC@*iGbjCKPl-Y(fkT+f8VW&)2|uH_@M& zwj4K3j*R<jvY_`4E;i6>q0x)WwiQgafJT*;>%Jy!S?}Oz^u<u6UJN+JsNcfW@A}$} z+4)7v&khaX#i5&THh;m|0(FuYq68g=;AiCQ*+V1?hP8qFs?l-OY+nAZbR;hceB8&e z9m6j5E`1L6l<zam{c+t}TXZU&?GqMg0_1|?3=Av`O!F{O^Q`(pu6t0@aLNT{<Nx=G zkINwt8V2v=CopoGWGaA@usRe0i6FtB(@0Kfq<<>(<5Y0$uZZfzX^{sgZq+{>UV7R_ zMm1$owbhe|0(eTwdH^F56+5cVIO(l!h)n=N6!X8geF~4&tXz{D9e`0q@4H_dp2wzD zqNc^K_JpC$YWXy7;MweRB5H#1rX$jO8ci44`ZR&!On$JpBxWXN1emZfs(X$4qb^56 zLr#7-eFA|qBh)?ArUW7~!fEJuEq=d0wjiIu?-m#e6iYH;*IRvQoWm;)b|VQShb{oO zGHh|r0YN9|Z1G=0H^<nYn$W;HCt_z`(Bn^Z@x})@o_%}*RKM`jMK9_%nV{a{b(s9; ztEW$F_rjlSa=~BN`F6}vh?d<Fdjz&+blJWhiT?G8WIEL#WH9YWTD2}}_rDSq^uknR zFtD3(<izOMLnAD|WbnhXV8qQW4RsGd&N@ThxL!PTqyU}1KVCAZg?VJ94i*sAS;NCs zDh<N92qJshMcJ#og28x2H_?y(;%>Y|G0xfo%bkNIPFsCF*FXUk^|}u3+#Jai(rgKn zGp};op!9S+JvD~Fn&cEN20Tj4l)W$NJIDQQB-HrQazh5Hud=0$`^zI@LQ)i5Ps+hL zI|82!9W5A7j6uqL;(nFvAN9ivPFsP5It`uY?2*OJh?bfQjW(l1fg}rwTFCV}AfFX= zbVW>KKJr7)Ss>!(@(zIiq-Uo}6w?<%rHzs#ZK9e=e!2TRTpxu<bt5JGBLIMN<lk}L zy=zS|+_TVBUdA)w;dytS^NwDE_G%5cS_=;+#l~*u=V<jiFJscmMenz=yM@wtYe)o; zXsI0V5`XHnS#<S8fv<!_%y_f;>Y!5|8`~%H$GEG^-6y);eJ%@ecq6D6$htFg6Y<^c zpgQpU67l(W9WJ^ExB7Cr$bqO{eVc!>T!fxDOL$+y$%26O)HWc*Wn_H8w$IX0BTCNz zDX#@-U!l4tr)fMZY=hAunpF0oib{i!qE=T&YJ9awBsj|0ZqkPbKv*G)cXRG4<FYI` zKf|WuvtP;v@q!Q71m_6XlrpgE7{(i57;{dZs0-~(Uf=;xh=4m>y55>{fOvp{o%(X% zy?!Cg%<p!W^pIK<lDNpUu~D|V`sy5BKLnDqaW`ThXhw42{S!37Li_h2`8Lz1GK#H9 ztE=PN+3+S51Z^E?ZkSZ#2+Ra%4s1`!qD!5I0u6`?V3q*V2NT8CHL9JI9iyF4m^*rS z7r7Ty^5r{RD&s>85PV_y>N`otsR?Hd)~1v}T3+W{NoP#l82&6e5HZKffDVW<f-OW# zHTb%McHB{yT_HjVj)r)ZR%Ditm5A6L+miC9Vw~wF7|d!E%nx9LZ3|03C2<L>%8{`Y zcaS*6(Y+|E5v^8aZK_(@Pe!Ky=+kB7^sB!Y?TZwQWBDO9@3j0f&HwjkAJ`aEmxj4i zUWPtZRQ7f`z9xmHFyn-;DSfdwqM)W8oq`$ekkL~U?hi(+|2y+>yise4POYZs{A1An zd<6eu$KZ!DWFeUEr9nQ0dLxnb<!ESU-rqlJAmceb2%d`Bq!X7P0FdBi`@bb&af3_~ z_?OV#@zAKl6;!*ze?~eCTi5;1T77y~Mv?j2fFS<Qpi&^n((3t)Hx2~^Rb41UVyx`X zdix#3TAmlQv04vEJ6huZ{@$e&Z1+;hMJYiTdaH)$NI2*3aL$=8Y6sk2aembV#JZYW z*7e{GCOqeDMmZXtJ_o?SM$>rSUjmm@E$?FRuhf>zGDTZkvYO%-Z==qI0T6lM8mj*9 zf4GkbAD$Y$YxgU9X`6E4vfTCJ`&2BOBHc<csgtGL&M8U-R^*QFKU~AhcetdN3nbXo zp;njW4jTjx5Q})H<jQ(p^kR}v%g^5nygLIEWsHpZBq;xVQ2u&GTFs8RvAUZf)QfEd ztOKIqpGdm=69-ZmaBO}lFsD-axkV+kYwb-3!zHbE_K5nwkQ?Ps4ILdmMtX6Ew(xMc z*H>Q;4CKGzx>r?{kXTIa*NTI;J4X&~haxj*_w6@woTLG(9{fI3Fx{<9E*H)<XO`s( zWjr>idOx8G&h0*9rFO9FsRt{}zObLZ#$7+@Fj{RrK}GfQy3}p(9aYk2)I2%sN;|GT z8yWjbL3clnh^J=vLu{bh$Y&P&9dxdYj73pNg1?~A8$1Er;S}3kD6*ndnZyKtC!>Lp zk<flPiZ_0U1#7)*3<@R4F_iapZ#Fzw*^N#SjWS;JgD9AyEzI}rjgK{&yyMfO5-(Pk zpFijb+>_tOD~L8-P8R(Y!23}l466G)5kIMt!h^dPM1*hZACxT5;6TyIR`)DW{Frh% zBI0vHNI<xogz}D+>%aDcp#*0Wj1v1qupINo+3gN9Z^$5{X$n_{968d@S6Rc!3g$-G z5}cPC5|GmusPJ3Qq^8Vh_dhY<{45CSUTJw|#v}Kd2;i>5Ao?P+ZTS5&a!=h)j}y-K z=by>p2=<iHno6#U<&zzjR%ki7Un&N|QW|^ANJ(>kt~Bqef0Guq_-`r5y~r#4zKo=q zIuv%c@wQO#ws6*wQDdBvRTvJ;<70-kB22!`FGNQNu|ZVS_lb*rGI4)Wxe~=eDmtD# zA|<sz{`w^!2bUvH_!SSQ^N%Fc&f(uPxK<l?7gb%72+h)BXzZubNk>BNK@Vc?o7Ddr zG4|mf-r?k>z_i4W^5yDD2bB(N{OA6?uZ)u|`4B~u#7WD=Lxo}m{Y>enk_n{&&zVUg zntl75np*^{#2YAtUpk}!-C*&zP<a%AbH>9LoDJgi62})PD6Qs>gmynfzW>pJ{45SC zDhboQZBc3>dCmN&1%doQK_{Ptzp3;%Q^TwPCHMbKhA)UMMH-*rV2r)p?G<D+00~8d zHR_hzY=_d1`f&*IQ9((0oQ>I}mjCtxEABnu5!}u}pvbw%PeRKFp&{o)gaYl}S1QbD z6bE-<VUjEXcjpxaK_S0V5jm>Fm83X%oqg}OmEU7x>lfz16Rekh){{1`X=2WWf<s>~ zyS`CGK?RNFqSUnNGr>0?Z_HXu*%0xc<85t$lr|Y2jh}`}NGLw$nfS4yDoU478wwo< z`89DKFvbOL5W~VcmNj@h0x|+%fN0<y%gCryy^r&NN@aV)>IR;iNwJ|^fC&os)cmV( z*P3}jWLO>&!TCALMo>%oIAD<?pcBFbBc7(HDbXQd*Fo4#|NL0zGtO$TCq+#SN7ZjN zD{D#jc+a5^V5R@?Bnj=dqDczMObp8M<4WU05-*7DzN76UhrjjI3dG+eZBcCP)rNxq z7Bnz-x;cO5=5&SAscQSoa%26f&S-CYD>;y47e8&&WG)&+_F}TX|B#H{(Sq{yyk?G( zlz>GM!~U0B22B?_m7KXwMc7u1_;^w=i4SiA3*@K2uC(0j&9(V}%L+*DYc<&Ge}fHh z_}#3p)+ha`g7QDdza>PxAoY#WZ7C!HO^mmRnoRXgI^{oCc}1WEb6UIS^IQ)>R#fP8 zFrdIRuJSo>ez2)SI>&#@EG=yYO96RXTkoA`+DR~8je(aIM~MeEi~+Vn5aEYX1>}RL z^IudDSR}GKn-wD7)%p%iaR%DJ0{sWHD)a4uMB@|6Kn(E9R@mCw%$Cmr!ohakW$Po% zrEd6tZ&UFIEn|fenMHsF7P?yuOOF+Tz?#mMJoJ$fSH}bwx*K%j5khYEjFA%KViUre zvZA6~06*pYi=o=LnRCnWF4Wf~<>67-0(iNFBq(Am>?tX!s#(0Sxqxq}MxTi724}L! zgebef@3dL0MvJll6<F}TC|o&<2gU0mjx7nJ>^Gdr{@997{+F_*x7q^4PYM59aTI|R z2Wv+eiop)oKS-utI_SVlepZEu7p1PXZm7F;wPlt?gGHpLN5=UjK&&eNLwJPc#wT(C za5i*cu}|!oYd39!jsuU~5>9)l%ixLZD+Ps2@TRPOH##}%fL=yMq%i^T#RGmwRs?kY z@=6oRGAMvX@Z}Sar2dt9moM-Lr}xFSSORqDwa<hvX8m9vLVKmo%RnBl_%J@L#PRqB zI|qF2m+DZkv3<>UyQRwX;WW;??(N>QTtZpldVj$C6GjjDZfXA)IUQ|B>ozqoXpBDo zbL@BZQu~NF((iq&-3?9x5n_%L>mcA68YZizsPM`tgWXt-qJp2TBjH<`p|p#mbNCV9 zxMInf4_yE6rxAmZvbV4|z$<%`C&`kJ6RbQwa4$3+-;1$ZypvG%AV%Yg9Hu5-@cwi3 z1qw1}jq}utl$DN*JKBV#J@jR$hFpO~&}6@Eh++B*!C5#^Mu?%MR8$794px_>$KY5N z46a6oi>RXS8Zc3$<KP=jmLlPW8*;FRs!xYwz%tlr05}b&En4|9La$URRKSOF#sq_< zG=OfaJUT!rLtq0KjGm_$w}o?mBKl+r4hzbZvl>pNvCJO+yGuOf1wy01kBtuwkE*Di zpI`eQ6XK<&sEn}<-2V_7A3#Vv|NI#mR}!W*Pt@OY`g!A5MCD3I(K!l(87Cp*Ba_a+ zFa>_eS8CZ%&komX?;}D~zmUAtLp{#ip;D;+f7Wa<4EF6mX<8XAUox9*Mt@c(Cg<dk z=ZwibpI?-K>gi~<w)#2{<@VH=9Xt|BFFQLJiHf9JxmJfgoT`0`qY<Qaeb~#iz;FL} zJLSxa**($dv;}7PJ>0^BTf{fmVhRjJKHCMP*^!DL3Yqlb|B5i!sT)Lu$6S%L`&cEK zU2{vBJ41dKi>+5e4eJEn4EiXjJrz&oe776W3-_&(HqZ=I6Hl}Cq!05aqE3HmHiByJ z8w?(BC--IwA1~vt%LVh#G{2J9<EOE2QU;U$%vo+exSgZ=3f9MEP0}HWnxwCqnzOge zm{<-+*uU2YBV}v*6ZDWHGvrK7V<)>-grJ$zpfZQYQ&j(GL49~rC@LwbMuU~Id^`^w z{zzHgQtFYj^oy9+_Hu7f9bECjAGKhqNRloe@FADsey9FrH&0fNO3FF2GK|RE6(5#Z z#$dZYQ|6*$p)q@l_`kz>?G?f4vas20mabN|>d;^$+DwO|aern@Zf7;kWfHQ{o5D<& z!9}lP+eZ#)RO)<qMi#!E6;q+_uUk}dxm#YAMz=Pm@sBCq6UgBtaGhyI{t(t9r~N%R zMB|qo9I=2z{qCI}9y#G(*NdrRzfuoUF4fT@_QjEy7*~8*^cRSS0N^%Abao7{hk#$; z07lC7LtIpKt^1M)NB!w$uMk2=MD~uQf;`8=772i{X~l&h-h{{(W4T88a~K6W*a{Z? z?z`4m@zyd3BWlbCEY63><7yb>*huHNDAmANDw!A}0B6ytKzOfM3dAIjqZ9me&Ua*> zMh73*8ZH4RXYI7h`DcY8g-jB>tYKV*q0iChSgRR?M8_SMkOyU7CwV6ecNJPkn5F~; z%d|8p9^Ts4)=0_0fg$<P5e8;f1{S8#80Qunclnd0i~K{ipYOB`^rUI=&9-s3@zfMD zc2MymIxV=gegt=Q9UlJv@#A-$(w-x9Nn?ym>23mJI8GJPXJO7vg;G5H-K6vLGMcmZ z#y_w7BI5Lg9p?mVt3H&gS$qvWS#?_)`9q^fj~VU7O%x_g`!YQ(3wEqufzYC2C#x0! z3#OxERJIt|vW1{Yk}HOSjYKn`;h$R*nHb6_fLE1(zJP_1K#f-v6lMrbpd}o1T#dbc zHJ&Y`YUVvQMwOnDiWm`I0q(Sijc55K!)Xt<i0?luM&14a_B>y;^Wd;(GEpyZCH<F0 z{l*0r6d0Tu9@<u9qR3L9H2%MXn+dGeZG7Abh4r=K;?RZ-Ob62>c{4DMpf0s~ay1$X z)v3;eQR~i^u_D7DDK#~dfSjC+lsq#bEmgHZ&AO@B_jciZ*;}VhG!0r!R>Oep^o-18 z!;ECvv7wN3tFX5-+uPfx1AC_#w~?VUdPZ=JJbdxe>k{Bo){&`q=P3E1z?b(W6_y}b zl}XtX9ko95j=MSo8*i`GY58mz554w+;m%A=K|_V8UYd`{So~fLDnzpE{4{d5W7Eid zzd-+KdSPJy>HsNG?z8ZYVd@m;&mvQ5J$glyhVtozs-Q5$PHJa{X6X(nb|`|t+Vt-{ z0DuZ_G{MJB8CYOq)tvt=yL$_{=M7$ZrM^(AC+_vmY1ljR^`Op8jM*Up-vyLdmj6OV z_w5iU(X0=01!`)WU2Hi*wVzHpK^W^$&{=JKU~1%kDJ&X+E++Rjyf=+K<1J0h-f059 zhuwItNW%jpaU~+oVa4Y%X?Dd!yY4ZmhTS1TS3{<M+(6iO^HIJ{k#1~%KXYLT(Xz+V ztg)?*k9S5a-{*dB-{k?Fe69T^GIPbHp@E^S=?+!KOJhpNRBFrAyIumbj6vJXSwg~q zf<}O2qbYVDH<_5#VOqYV^|G;n)gu;-jE~>^@(u63e&BG9y5-mrzvKDdqGJEJp(sdb zr3#UaQM{Tl`75T=g$p*&07Qf)$^CsoM6&s%AyU=tLu+ueF*!WkN``vjNGy0Xd;fj* z?5y};zV-DbX(ZeN9Am~8BTST_AO@s5|JOzX1D(N}R+lyT6IK7gb+s=>TO!Lp{4b*c z-8~MCN~qnm@VP{Q!GBD3u41{)^~qkpjj4ZZ|47u)_2QUHR>g3VE8q`4UjO#l@KEMY zw&T2o4%6=IrvrCVkzya`gZhePwA}XH^o#`A*G@hr-W#{MMV8m(LZv?UkE`AN@rE^x zq$#Nxxi*$%4Q>Z%$`2~p%_gpw3ui~m?uP=_W{(4WoIL5{_}e`ZBqE-!qhrwq1@iLR z+rfpBSS9=%toPS<MTo9!A}9(JsmNSguZ-A*P0!f{DHralXA`$}ugL+2DrWWBwDg8d z$mh5@TFOYcBJ|(!?E@1cPVaTan5_kcQwq<<oLF0}4%)OeNdX@TP;-k+&E8sh?vPM7 z+JlP`Iyv0#4k)$(L$StL{toBwdS^%wcH}}x+ru^fltRtLz`*zaiVTo<gqE_`Fz~mh z5TRqb+IM@}l0`dM6m@x}s6dy9^6jmE?igQ13>xXQkmWr;J7?-JqkJ3^zu);~IGDR8 zvMODY=u*SQrCw;Sll5cCz3cQ3lftVuda;L!aTk;=rf|Nz+ny2{bF)&5#9C*UU@0kK zKiHyVE@;Gaxy8Zv61(HshV2(gisE%zv^1sRd7@4h!^Wn04TFQ)+mBt6YVV!YBuD(V zxJt)}1wxDeq$5u`8S%RwPHkMwPhB7nW%k;$oj5G`AAX(<ab;Ez5@HZx;$gbUQ?Y&v zc0a>F3Cctfzx%$0fv61Mcyl~17am@BH1u(4(Q`HgJnmPowu$HcPNV-k`!8xs(KWh) zkBr`A1E1KKzA*K0wZ-GG(Fx#rc{n*nDRz>PKPSBZuV4(^u!KRd4W}>5PZ(2(d)49V z`7oyckkiGrho#JrGq!<Zo$@=BJ)WzSm5j?5ha_G5OWyI><rwq|z=R-7H=6ja@><kV zKINpdt>ybHei=(=Or2`wA16)=x44dbg=1kYkgU|@{4@2un3Lx^G2wI1t(cOKVloY} zYU5p)DI@{U>Ca4)ovf0t7*zNIBCVyWA-fZjJXHr`c=W@#mL+~#InQ5@RknFBzO427 zGgDHOv@qi@;O$hAk{Fj;Lm?nAZv}@W<aS9*v(W%RDLjdYv!a!@4N;jLb8?E-v9z@{ zdcv@$69AMA1Y!~<AYGM6sHdd5LuO9!lyTx8^oAgK?NZf<|HDN-x<V49Sm_yAR3p7T zEY^;nn(<*bU52&5OcKtrZ`64y$z-@zp4u<#B@q-H`yZT>mcJuDpydfzJ3h^ITgDr< zw%=^uO>3&){jp%0w-t4r6igq(I~_`16<o|XAYSu7<E6^elOCkm*~P^Pen3Zg?R|b3 z_7no1T2R>Q{`4`7DGQyT8Br#>7;8!lIy_|er$thk38oliXRx`V`JPwxTZxjlwG&!Y zN@~`PYApv~Zr*!9-l=u9yLHctuLZHUpU(dt!5yIB;2;+mP)%D{X#F(biu$@L5}t)I zBg+^QrL&Vk5~un!8s;A}@n0yg1Bw0JP{!H&lem*bm+e+_X@oF!o$NF)ky0~5b!b%4 z*V4|WRrkc-QAr0=V0Gsz1h(07oajrQaKQe8bsH7<E(E+bE@_gd@lj(OgjLv>Su9g} z!Uc6Q4~Q2<&{f8|)6`g)qT*2no%SI2%FFenf?nr^lW$=!n8Ib~#`IRbW@f19Wso2V z$Ph>W<@a124TB8YcXwJ7Tr2_{&t;jbgs22+-(g{+DA#NKa>y!|y_MGfIzgwZlspY{ z*n`3bAVIA@%;hWtJkr>b8HzNjlnPq2>~mC?*}0y6;RaUb7vF4C3Z%Ep{{c$D9Vu{w z4hn&>NSO8fsG3v=EtflPgb~kiaX&ND+UPnO`SVl}vvQ2PVIw(KmPQ8t&G}@7R4M8R zd2^HJ!`=OZn9t7TcG&bM4>8pa@wJ50Y#4CHW8wd`iiMSu(-Cco)RCmQ;}=<MHhrm= z+I0~1dRm%Yeo>aTs_MuL+PD`<Ux6(QRkJp5zRgtkUXIre@3SyZLcWmOJ`CRc5tD+C z=WWTB(TesA$BqO~V%Xn*P@ltI<7e<evh*Da=d++DH!z@qPZ;0_AP8S+$CmDHXlcb! zj=h=&Zv6|Xdy?&cpLV)1Hx~U<8~tTE7ZZ^`_i)nWbW-|rCQM5I_xOA$-hHM7=ZXaT zQ5+Vf@rTPEmqD7+g0b4tEUe}=oNAjeE4g`sE@zFCMe7-^2rP61NBdwikJk~7mSbby zQoMzMj%Q<LV=Ki?$H9A#f{Zc<U)+d+NX&&w(8Y;z!I09rZKX@~RMAYUX&Cl-o3UD& zah-!fpc(<6_2-h;Aj=ydawbd{s*sA+JFPWYKEHpTc^Bi1m(z)ge%9=3ySBj<&T5>w zt@a$Do&;n=C(k+%5)g5D0A15wRv;dY&?LU>YYKoLA^;9m93G_GzS6QTG2EUmjEz+m zhsMU3{!-KE`=^-jy4G;N(D%cnwPwb#PM*9%l|Bwj;$*G~8twitwlTS9-n1QjvfjIa zu`S6+f)jTewgP-wt1{9@D*@{OX%Bj#bv@YsTP9TOW;;8(IFs_)4CobXWTI6kT`Y)s zp^s|3hLq{j2tG^Ngogso&#iY`kZ-Qg->F50UiK10qIpTHz5X5%C+qjovstp&a;ZN( zg2v1ivQ_T~8&RkbHyZW?hLr4?g@doOEh-uM0i<2HNCJB97A6^`-771Is&;@hKt{ll z_Bpy{Q-xHd(fh!Ei_T!xX%VX|Wt_pq-`}IZUb#h;z*BnL7lt5|guGw&)13WOn~Ac; zDYcrslRQV$8*+1RnR|B#266HyyM6oc$zc3rKMtL$26Sdq$HY%RbQqnP^(u2sJ4a@K zSk3e14I#Moiv&Tp+g_Zb5HhP+EeNe_(e=d<i@7dT0ZgKD9>>L$xgYxu1a)nRA`yjw z%|J*gmvg79cNmrTM$z54rl~SV&(+m6tx`|kG6h@vTjD>*n9=RiIr}!=_D-_ts^`KY z!OzuJ%Nu#WWgoU<VPEIx!^NXz5BnuI*R{Ll<4z}E=y(;HwHgkCm)+)AA6JhY?nd|B z>b56Xst~5Ec%m;WH)f8WKWe%bAawWM{VG{&C`wENrBe#XHQ8iKEQSp`<9?R54q~2{ z>(3=9`0*rybzTj}pDVmo+A%3JQ?zxgepWW@k1Gcpi#ly5l{|IJy7N_%3Kq5)ci)TM z<U09h$y<D$Hjy;Y&NJw^8ff+lCp7ya&4`44z0m43-Io*bn%QBcswH4_b&-p`JWz6U z=&cvf^F-N!^p*LAKPwBk3%VyJ&Sr-_fUK<DXM>4?3;MCEyINIsj#O!q3d$^!>3e{s zMFI%DvG&$>>K*<fr)xYwhS01uc)Gue!g-B?&%(%R?)xd?gEUhR8e{{H#eg!2q1`O~ ze>Q#h#da6`%Tu9uum3Zpl4B7#pF3Zm$O|w$ld(0}FE?3Sv`dw;kqSDg+|;d}x!}iV zH&^ZcCcVkea7HT)HTZjUJ|%auJtl%U=OE^IJ5!Qud3jAPTw^dl@|fr#5TR?JLxBJI z`}REZVlF;d?P8<9AXMXaZq4o{SLC4nNX+r^_u#Z88p*Vf|Me7uNVl61tKh@inmZT^ zul?Z&57r#vcI$`diih}ar+6|kx7(D}J9Sx)yv9wEG!=`;DHBOULm_|>7-W$hnHuD7 z56mJV_un6hf<=t8UGX^#JYK}U_sDAso7$uKr<Ag?f1CNczK#RBE73z`JaZaknyelE zK<OOEr|Qr$H<C!skZbo^Y0!y-S2wl9Hnn7{^kmfx{W;};f_iE`Z00g{pbxjZ0>(mh z%erl0B_o&h8g+KYIV?6G-H+<7QNVJOob|B??R5jo&z%VaXl(uK{{jAa$fX?w^)4le zl95M{ajL(6t#k3JDddxulC!sgKhQKBr6tvL@Y1kZ*u**#)U@P2M}0;;M|X6;aCW{q zNA<)`%*f41OjZQa5lu;HsdR6TOkZiSg|W40?cm$Hu(z+AstYJO<9?D=>a_+_VqtMQ zt50)Db`@e(TMP<pQ>uvy&<Tk=>St6|o-kReT2?~#itDmRX1+D{+}0g3s~O8^SV&4L zX-O+-;T$T1+wE>5N^R{_0bOOzieZzdH{x3v+F}XB$rS2;hsLSc@HE#Ls1xKyWk#f7 zqz*T+Sa1{)v}f>mb@vWQ?98-8`eF3GFT48_X5s+V!37W-$uMyAfB_VbMF$*zC_S9M z_ULIgTpf`^Mo!UIG^ci`YlEnGr7^uh{V67bnA=e3>lh1+q{Y5fhdX+rwq|E=J#Z9u z+fu#lJGQq$05OX7P}As3)P`D*F)R8C^%Uz8+MU`xNMs{&i97#eP|!DVr25^D@{)+L zP>LxZ$kM+B*3A6Jt2kwXhV4VO&J@rtrbLJs|6^+CqJ-BHqivvM$*yHfmj3?TyM!-^ zIk~B+%B&-7#+-|KXc3xYCh4_Jwm$=hP4Lti2KTkgG6fdlUA+a;2kB{cj1AYU2^SZO zC21qZH_tMeRRmNAHmei}QExSHBfa3?hLu%mdb^XA5cqTO3mXVzb#FT^3i}f#%bPo{ zTN^_Qh)_`_>wOqlKZo=EmXw*CoRpiHD8*_~Gpwb@8-eKK%)e7-Vxwb$_wT@lN5zUl zwdx$0046~tcBJ1`pat0xkfcx|qw-!iDH+9n<(!HVuY6m}@mHPW#hJ?b*#ti-Ot^56 zbiMfjZ`F!yJn8OfSOD%C>Oz&pQ64d$ow2iL8m}gpLm>)wWhR91(+6>ue~pBR7EkNV z?Lnz<G*XbO0K)>iyQnr0quFnI+8uG$kylLVBB7!N)xQ#DWnfLBki){JwQ<MCPzCJ* zAgxh4g;c~7hsV#@BOY<ge57yr@Zqo#=sx$iKed{$zL0{E7xkn<QfuM(o7u1|u%^=e zG$aD$LcTpndt{Fwy-*s_fbJ?YO!j}p^dUq%63#FuKfBfU)_ru0#(blT>_b_&-3XQC z29MJQuJan7<YB6|9lo#Dn=I+EDc&s2lEu#~xORU&l%;(v!93LRDjq?v|8SUeB|#2O zkS9$ejA(N<!&Z2mH+^`vmEIsTOGwC%fIv+Z|Bc1By{DUMZl<TVcu24o@+uqw&BOk| z(kwp+Acnnq2w;5gLhuonkH~R=%KY?ES+J-T1Tpe!cgLl6z;L3u@0uq7dMOztOe5m* zx6WG7^HQo?CKfaw;L%%L_pvZYB;mv+2!F(p3U>AFPg_C^g~bb@G2c|1?y~N|dfwPT zpu|X&cyBt3=y+`ALSsRq!g?a#Bpuj=ch#+$wk7wlpi#TS(Lb$xb(?LB2K;5u2l$i} z4rpSNO>EhCGN~R5D`G-HSNccRB7W=tHXk7RK@dKQwVowMJKR|ztGnCxA+~%l^kvv$ z%j#vszWTmqe7`>7nH4afS>E=9FaHmB?}v)|_H7tHi(H-<3hey%oG7?DBin5P+{{?i z!usN`c&qJ4=ygWsccT5lKzqfjUMK9|K>F7%7Dqz$Gjg;VPOJFBYlqza!iCV>m?B_t z$X~S-OUx(WdMl>^W_|hdGUUlvGV8X(M8_I5^0RV8b#DGi7(hfL4QF|}zfo0Cj^H(3 z15-b{(*W;U#P7K#QUgX~wR7<o&?9+1&75AL!&w0AXq{T$a^yGQ0|U9WiJspuj1X4Q zXXp?_^f1BZepU9xRshL{Mtzr$?i9rUfWx=HL|h4k?ng3ftxC)xjOmwG8~YnY%@Z)$ z4z`j>)n%EZzYb2BLNrX?{#V~>!iKLYgF~YnT1s2{RXm;F?VE*#0ePQc64dIbYIR#B zGUo_sXoAyA2<@j#Fk@h}8Vdht%<km}Gf}fN5<z(^vFF1*pY>ED09ymU9+hky%&y=4 zh(M-7a`Zf0`UyD>46)DUA-q9rpk((n!@E$dyCt!g&?AuX1eoLz<L>Zob#a&|$+t0* z!zq8C5YakifD=$WvK;azWeCNZ=3h#s6d}A1tLgIqJaioSp=g!z&9O+5+Vm~uD`?cG zd-OmA#Y|?Ck>cVXzEj%_zieimojmY|w<knrpa+7ez~07>F@aQ)5$A9DkFyP0a=^5( zKM#!{Cf4y5Wf$!E?cRj{EYHk&$S|s4ss<NN35K>*VR13e!UiVFoCf)}Rv^kw>|5si zl79vln@|esx{u%I01I4MW%yBvo;~CF`3Z5ROr4JVQ2)KTr#P4~U~e5e$_x~EMaIt# zp&cNPEUTJ3`|Z8y%KdBbiWWQ|ffA=PbZ@GvoaeB0-w3)tQXl&K`F&>td6UM(<$V5C zB?}?q;<69#o=WHcarKo^SwKy<gn+bwbeVK_cOxO)UDDl+bcu9>ba!`1cS(1Hbmu+l z_kQ=imtQQ_;(1QYnKNf*&)y?%x3FbH<Egb#q}bUS+UuYpk&;=gAR*qEka9*MIY_5- zBQ8)Eo4>}BG8LH#OJrOlzjy`$06@J|7IzjF1~3@?n=;72l|du%^FOJx{I0FAsj9q~ zT4rWt>5O~iuN$g?Mm##I*xoKB5gAb~+EOVOWyb<@rMc(-B%t@pa;Zb+9tIW=g!4j! z6~D9s6*djMO2;?8{o7j2VNy5jE_X;wIVDKnfCkq4*}IRDap>(3_dsHSjDv=M@Pm2l z$qAa~tn%@C4nP9B@__zJ&_n&gzj@rq2STThl5D=xf>Xf_NbLY38pq#rlEyJzMcuP7 z1mlYn2>7XV446SV*`4of-%d|0{s2l!LP%ZfA0@l8eq`d^75p<}IH&*th=7YvFMzle z4j%!H3`ulR40zPZ7fjE77lnlU98b$#Q*kvza|xtVY%dFq9UbWz{AC#!3+gQI&=B)L zWi$Wby$(e5u#U|Rt;S21yV=ud_o&S>$8k`4aQ`uL;U`rGV3|uBE0z8}W%Uwabbv{_ ziSw%5V*{ikbs(;Z<qcOxp`mY{c(;cNG@ELZ^RPn)%LsJIAhHty2{P!2NYT*1+(!T^ zD@(4kkJ0auxBz!a5PW2m_iwFMPsuoHKO;C4yw|uGfxc;fE%oNJHzWb7zmh;0T?XVB zc)nRT+_-0cf}P3{NY7c3J!$R2R#0=z{H=Ig#G<7}X>PP{do9iPg&dAu0E8%OXmC0@ zU)BO_sWQ%Jy&=Qc5}tZx(*0U2mkJ$DlIfxpq9keF#C5*Mlry<tc$d}brjySg0dd7m z#f2VeWT`GI^d1&h=e;%+Q0t;Lud8g3=%#aTJ~sB|CyRnK(x|sj#A$lfzgdobk(V6? zPt9a8pDp>z5~!g;Rm4C901oQ*M5tT7R8Vn|pv7l4Ws>y?O@^zerfluj<_VJf6i8WR z^~_&vrCiaPsjdFcg~tFcZ4_2^ZpM$?7>~p^0yzc-YhSzvg5Kg?@ZVYVVlB4}Lr|LQ z9_6M+p>E#*HeJ6CVaIQM6&XOi-uJVR1{}a64a7r3zbzl<bUKDa)ok<h1K3fL4>{g@ zaJP4GzGl}~mvCQiviEw8h{p$6ESI4`3YU!>aQ&Y^@9JGIdz9xGmuUepFWK94DCiSd z2tgqQbC6*-n=W)%oA}6wJ-fcP#i-NHmtXa~+EHmMJ+1g1i%RY5mR1H9>4!W(YK~p| zKyQpPhH^nb<9o%y=MQw`fO-O-zjDM#x~d4)KN^Z-WF)9eHf~BV)%VQr)thEbuqJv3 zK6YICSY6%3FxjH{4{sGHm|{W&tjJ($%Udx5tlZEiN~L>9^<uBBOK|z#Jgh7scro<) z#`-t;w02o=#^^)Fdch)fH;SxoTpumSWXpQXVbFH#3+iLgUD(4G84kvsFfoush}DP$ zL3sOzVqwG{Oce-n?T%;V<<+68IKD&e>b*Y``fjn{gl?7%RpFiz2r3k8Yz<&zV@zZh zK*F2VU`Kav83IR(gRLVD2y8hVET`_We9luoUiO6K|7f^1cD`_R4S=3XB~jtYEF1bL zFn!5?bRybMy1vqrDM0y@XBSgZGs4CAjE(?|zi=VV;lO6D@iyo)=td7#%Lyog6G;ED z5{{)np(raG0tj_M`9J6FRio|gB@jsQ7wES-g5m`z=EWg^66+tQuWU|<3}c{pw*TsL z^7u376F^mJHeH3`vw99CRAhi5YBl~KM!&*pjYcf^s8hK^tAYcdKQcum`;hV|Ps>w_ zdh=npS-oMn0I7+lxfGO-W0AWfa|GOv`oio;0{i4qDR)%h+Lb2Np)Md+eSwavgG3KU z{)Wt8r*sKGX9&5C4m*E_g2J+2DHJsyjH!4*oi;@ED;$D-Y@BM>-)g((0HAtx#QQ4w z+Y4j?!h8ZE%oc}x6lZ@EgPB8K%lV}M%Wnu|eF^`wO5u!TF%+QQ0!mi^2&E_CDj<O; z=kPHPit)8vzBvlEQ@H8H+U=tWWR?(Z8Ji%qs6`NCnpMZ-0_Eoq-=9XFj-%PJ_`DH* zmED7@O7@l(1S(AyqwCf%?*ypQGU{XaH~GA2jY*ORw-Etp&GdJ-PWf4}ta!lkgDv_7 zO5x2r;%fRY#K(vpSursJ9`8OvrFJwro?}6DZBwheybG>1l#8XQsCS<g#z%fR429b6 zc!PLEjKZ%#Noj0W@j?yoh69=&@d_6xws-Uy;bG)|lR>;1HzYx{uY56S^y&6;!qBs2 z@{3b`q6L2h$SN9aJoOvoUM$ciT_mZXs8(Ki0oWtBJqALgpG$rT-Lds{Dw@eK$}2O< zV`J}_U`cvE&{I4U;yh`0`sKY3h{S<!w?4Q^MHgYO4EqZLe;A=8$xJVAqcx4igW-7g zeCDM10|%@7N=jnV(Yg58bNNPnA^zY=LtaJfiThbJNC=&`O$fY`qX%C9s#R_&E?GoI zPO)4*krI1TG|q}h0npH!-w<rYZoNv?%fh);8qHlSJ^3Apa8*VAIj!qzB%PqOYr?%~ zfyr;43l%Ul$`|WD)!z%|QRpKc0f=-W?!{_`_wD)iYpkaT+|=_kiK8V%CVI!p>M;>2 zoiAizNCcXi`Z!2Ll|S<zn%lig93^P#txqTN$AM)MIz4RmhaCd#*mQ5I_kY(D$RIIf zM}FnOX``ebGbz5m_Wcx=YEkBjmWE>j;D*9RT}3{Skciu(_e<VBqwz0bKO}>&EnEdG zY<KDR5@i7{TwFZ`Pk(apxdtXzT)0U03`UjNS*RZ{e<$<@16o)D$CpWGwR}R)U|*P& zg#1K8iv4Ou`RVDY4WG`ya2yl|aCSK%*uF4Uf>%XiQhj}+NYxyf9%QUG#UHc;fJ=ac z`2=aUoNjQ6on464(gi(>s|;dKz{u+N$;t9#2|dRrD;OlbilG(S{)q|X(*FB7Rji`` z*oZnyJv2lL%n+6TV&W4MYwKv#J=uy*6mKxy$V|1>cbf*_Y+Q5tDA%yQ&Qo<z$Fl5y zyzlUe(tqpQFT{=|dn<ZE4x+O+X9R$c^-)MdV(<;-YXHXrk~PC$AiKP$rl9c6Pys^O z_YXl-Y@BWNiewuq-AjL94j&jXj4g}~uGz6lZ?m%j+9>~F<6U$=09c(Pk^?LnZ#?+b z<U$Ul)4|9bOj&N`;ZaAyjxw;?6@_hGLKwU6Nb{-U2I8pSlz6|TjJ{g+9D@UqWEyCm z%gv=38Tq_L1;D)nZRDmkNn(%y!+TLBE<Q95Dp%mwWSXECAK$$LT`Bzpk><c`$J$Tl zCh1T_RbsI`;dEXFX9K`+9M+My3<yl=x^1btd$WRI6lD2fF#qvdJ<=S!9HhsQrSOB2 z2fA-T>U-Tw_8I=zqg~Ei<GtFVZ7g)|6urLj0A3Z92|z#I2oyl$4&k3FlBGF+fr6`R z4=yf;DfY7uT#v|zrRDg$sEg<o;Wi37cZOc5zNy){fr0ldEU1rtnZAGj`43Kc@A?M} zkM`y!&KHB#e9h<HiOwb9qyb*qzbuuacfbk~$t(76+I0M_Z_up>810`S|64>f>J#T5 zJEO}$kWEc_M5wYF!s~E<Ctj>L;o^44vJHt&?88~49aTFsFv#kf%aE`k5~XC}|L-Hp zRUURmR{$OCE3CPzLhLa>D-6g&u%0ZkpB5Cx+F<DbQj~}nr6f)tcmmMcxVAOu^z$dx zMOVOoFF*vAM2M<mox4<6DkXJgo_}I8U=ma?sD;(OIz6X;z-xaKO}_j!SAQ@Yuu+Ap z016T)qoCmaN43G7|5=QGE16Etj1OSWHcP#IV|yO5v_}b(6LbftG^!-g&u8u5(zWky zJ_q@<`uR8Dukssq`%>~v6~!OpAko}$3;vtfpF=cpEQUBYSDno2UVS}fQKmE|AOf57 z9qXyJARQ0KK+eV5nj$S4MI8qLb@`;SwlhtuZJQ7?wnP>@<p0|ujQX*H%9n;d4JhKH z{!Yr&i3tx+0X=TRgOuYs2StUg<sIqRIApK4qkA*0XMoJyAIq|K^?!%;*Q#Xs{~D%S zh?rzbiUz<$Xfby|+-!qENe;3lp<=K<fB&;8ot+cGhH^DUx#)i}$v?8}rcGm-asPXt z4TBhCf`X{t3z7mN-qzOen!MnObME{02{{&N#OLDSbQGL_O#&BXY$|H?9x3`h5g>m3 zFC(i<3I00nt5yP~24Vb3=-OAaC-0cE#hIvQ?d8*w@~{jDlF<YNCyP(A5kM*9uVGVw z*Dd&2?xi+4DSx58@`918AHvc2u`sVDHn1Xd1F$i;aE-S;rQND}^C#;AWk_Uzng73g zfIb1o7}Y-0)btY%mqSfmX;~Fcjn3BAE;LHa;CV}OyB98?ZKPr~?Ee`k{J3wxC^jd% z2p&F%s(OR=PbHMg>PmZ7X2;Wuu=gZu4;GdFV9gN_2GY2m*m`~O+b1?e-`aEFKPqLO zJyT1>;(-%I8mpEi@^|ei$DkrfT~E1&US|1+a6t=sTZviYtzEW#nCl#UiDa$y_HBVT zoT4q&D|-Bhax|@X>m0KDThA)(Rxi74d4L&>k`O&9pEAE&0WV<S5LaHnv~sAJKY{%Q zg+QS&+A-gTM9OwS0|S;*?sH}o0EQQ|p+5k~s*_p3XVSm%&DWQ~K=Jb}zc-{gobn%! z6&>vN{Lf)cP6~V>-|2B6UJqz=q=;xJF#Gh0W?MmFzs$av7!fB%LQz4Xwx&k3CJ4sa zRCoJsTdL8~MO8ue7R?*7Ns;`I#ASc?&*y*MSv5z2;#B=`i`D7|NUeP#J;L}h&%h93 zttR^zU++(hg%c903X)pPOxE3YR0=6<T(D}+XE#!4{yqd0|2F#H3}^bWUaIvCWrG7@ zq4&TOUIDyac#WtM7C1ev>n1&@kVq0a6buXtK))d<=y%U(Qjkh{rM=fV2_bms|A+eV z&jCy`=g;YkGwU1p;q#e=-f?E62eivKI&{T<%EhQYsmbGgeD?8?Hs)j#dIi5n@gA$( z2j-CyC6d_xTR*rF|2eq77U=0#FpWd~;lsD$67F^mvtBH30uX4Blk0k9S$%(|rSo11 zi5RG;v}G-U66+2^XzyAmNBVP3&_W}<Q@w;CSZm<>v58=~GJp<msOR#tf^FrH>|gQ_ zY^g{3mOMQv8c`Y$@iVa8miV+%SJC5sz9E`v&vCHe5&l5z<0GQq;(9yM*A5StjcQB9 z<w78l6Zf7s<j)tJq&L@xS(uo!=&om<ZjeT#)7cEx5|*WCBobt*ls<{XiRCKf8E#W+ z)^_$>1qc*~5TX6M<tJoP%=t@{0{smkC{{aKXTK7dQKAa|Woxe|SYv%exordDNlXk3 z_jk-zR8Gus+MS5tbZsfaz?Qyh>L*T*S#I<4B5VfflOm(=r0xw-8SVC>l|FR-LFv*o z>lh+#SI?%bzW}Mf2SMs1X(xI!*9LeJQBhO)dUOclYuGrSK2XEu!O&d-TyRXRjdrWM zvECtgD2Dub`wl|;3FV@Te>lgcf!gpq8@ipaB^smC{s2emb+_p66jiZuwA`kUIYOBM zTDN-k_Z^rz!8QE%Ml&W<m!(i7BC6m+gn*Bggm%HhX9sRT;zQ-}$?sE8^^;~HA%Qz- z@1BMKGbdI^*!;L}DdXjzvp{NC?*X;?jS|8KOdjDvcVf*q-zbV|MzJY_;@M)yU)~%| zKPM|#2yy0Sc0helI2)*kujR}2P&^xdX0#ytX?zEPnW1(G2u@d_=7nHi|6wl#$i!?b z0Yr_`vGKQ1CLKNVS+*qKn*b!T%*t2J|B=qC!~l^OicVo$#k!oXEJ?qE@Xwgy;R33M znsbMf0LO-CP%rn!QL`&^K3v4&)m;fZ1}RXJvFYgi8JX7lt$<1AD6>+aKw5ef<SRVI zRK5z7u>Wu)*dJ0ax86I8m5eV7l9VXn@P-Ivb6lSqQmwM<i`lF$ZaBwMQPKWLadN6G z4l@Os5=o`f5W@MGTO^fDE^HI!9vgW0P^V|x`${;ks*FZ`lru+w_93*uvOtwU0Rpb< zf1=J-&v(W=+82j=_~7{PA;wPHYWQGvb}~#kBVAnY53vF-3u2YgPFq9-34SyXly!n+ zS&<^ebf>T+sGoisqE;oKsh~|TU(e;iW<52edaB-I3~mo-bTCCj1r&3ca%L}Xz6ta# zh|SurPbF?qDx>+l^0>RuY_jC$;>mM@NBrC#2xUOQ+~5s`kI!sLg&w-Z<*{~JiAfoR z1ACL4D7C-Tgu3jG{M%<edV+TauHqB*H!>E>dAZ-ypx~2hu$ch?|G$%I<)<}1CFVuw zKxX1cOf$+Yg}p;TLsRX>?sGaCt%D8#xLx3G0;6l%@Doy{1amQBwefM<<Gt6U#Yf+m zy8@~*i?Wr0k^Z-8t1k`F8}Kv+ef&gMr(57q!1Jm`1S36x3*;eY&*sPd^Ko&b`J68@ zyF@@7UUag@_tWr@!{GpEWNW;M8dOv<lRfXDcFT7>4T0pkx`59IU6!CQu|}VP_+|je z%G;c<k$%(JAS}RTXZ?LdH_&j_cHkGOO~<8GZbBbVtB}t`RSMw4%C)SACOK5(2%t^! zPX-lSPX{AHP^cEhJI3al3JyjQu{r9%@q6-W-9AEYt3&un<lGrV!2Id(($PWCe#0LD z=17DCdK2?C#Bx$OJWBQRq-P25TraN(*<z#$Z;0d5qzdKpMnV*eKt8KyUDpqKP`R)O zLhxY5!cI)3$Ej6_JWhWc@qpE`^mCQSNwW1USyYh_`rHL>6;M`BjuH%@)@t=p(~;E+ zC2`?<FBz{3je@|8C6yVjdgD&KYQxvZiG+hiQ;Ng>K=uSC@aIrvmr?kiC6~JSUA&K^ ze*HRTy?V7c2gZ67bbu!&#vIEauAtxmjGdogcBYU1Gy!6}Fp%KAK8D+h+U+y@adr>k z7l&JZ<0Ft19lCRYJ3EvP^bASz^z3|se#$gC9n)LPSA$~~3H<5$heKNP!^t`;cI9lC z0O|!tlM^yyi+U(}#V;#Qeh36q%U^rjCxKa_pFb2rLC178_O2@4!$mSH$~B;Uo=QK4 zj;9UaXmULE%Y%kR0gN>ULiWDsy#X=-2LIgSNtJl+w*f_j*gM*`)3#*c=mA4T-XzoT zPgkilP&RLVN3|{3w6(2H8SomEDNr1i$Vg^^P5>tQ!sZRj-(O69xkviQ-dXlPx6y4= zLV?|jh$LO9UlXKy%+7(qa9>jKdj0?)uwf(=;1Q^xZYV|-uiadXy6yJZLv32KJsypH zQt$bA2lDU5pR-6_->3tw7troSt5KaWvT5qGcGEw3qVl0A0V-R;jLp4&^{t?Kt+}d3 zPeA;Lc0JPc1C$_hI#d8)uWc`~)bdo!LV2lEum22iOsi{cYIvx`&mDpROeSOHMkQ+U zxzfQw5xuau6v}cSd;sRSMw$cDpi%019HYnp8?7p*G=eFSea!p8^rsW9VtaF<+Q--+ z2?<HbIrq*Y^455Ag@OtUEb;QTSsTm&ZB)$7kPueI0$I<%OaE4l7t{s@vh94yiOuQh z(3{o=x!OP<ji)x_jyJ;1omz*Cc88N)I5DXaK&zop6vI`VPu`GmA_`MIEW(&*P{oPo z*k;NO=$s@Bm3`!?R#K6TOV?KWrhQct6B9#>5si<Xe7)s*O><6c2z4vkE<2ndFOe{; zUcLLv>kXd}pDa$o<=~yjZ1p>sS^`r{^5Cc!P&mMQea6Ij2}RFb=Nk_t*r{MDwbJ_7 zc)i=9b3T<01v~p#CW4c))XcL2M^)h`C)h1*u)R&p?)v&}rBt&izy5<%>@*N1{8Rn7 zfhYALQ$$D<>KcqhzFe%e>00*>6#@KqK<~c7iz<!9X>SdY<xWPRDuf-cM$LbY`Ihy( z(ze`h_E%j@(!OWa@v1nql4kH5O#Sj7avpAGp(~T$LF*$?I+sJ~W$5aF4eV{%g;tS* zX^w!>fWc<0wa^XWBXPFA#7D<ReLY)qbFLFiVM@7JkTsZ{yZ!uS>v^Rt2$b8&$^D(r zwn1Eykk|;?I&SVi!utbACMk`1?Hh)72V0>|qiF#x&ZkGG8?w%2fV|<Bqj3$f1Q(AD zPs0YH_Cbw-#h!uX&X~htJu1?v^A~9C*%D%S!Q9G#o?z9Ab1$Pju+D0_XtJ3<uA_2> z5Mnk{$Zm4-YF#=`wh$K0jhq=XbLa&f!8o@TSm`*iPyIllbq$nxxtbp{BPt5m9e)v9 z6{#V0oyVi7Aa$Kx(<7~iq#!44UZjj(`>bNTN`bM#kI)I5+_`vt)BRzS|6c}Q+@GDf z;ad(#6F$)rUomawWQO>XBQ+&a-I2CaM4B?fr8>S76i#_03@!875j|mQ00%b<d(Ng8 zHgIBQ#_g#1c?J?~Y1R`}PMRNieypH;d$JNAGw{vtei3-05%==mL-7HkMXsn~Wx>gc z5wx{c-@*l93a9gUbafl!J-m#<d`81L3G#m_C`bw%@o$0;lw7@?esCQw4IlfgpPO^C zzy3Z*wmyg}dy4&a(!k7Y!@}$c`?9*)`o6JnAn}=2v*Ch*jBe`y3P9qokYBP}-|SL~ z8q=hCA-9(J3U&c;VpQ!uCFL@GZ6%56C+NV_SwBU38+e_`90@5krL@+lf<PGvo2I=o zZ~hNIa~Dh1s%n)=)Ib<uG5!OlVuT#KHw+Z|KI<Xo0b+yZeF|~^sfmRvRG@5J@aZ&> zr(M<h1;C66gt5052?V=e6H#S%934S31DO8bQ@@iMmaU+tUHLQn#x6M*`Easnr<$3Q zM&&*L_TK-l)!Ny}!d>^gw(FpjYmlbL^0Y8kqCg=+%ItH&G_eR98IP^9kaeL@p@MQ` z7=%~Q((H_MRxc5mf`r8je_tsXL`H_D!fP_N$o}3uLGrZ>IrHt7Mzs`wiJZ>bjZ;`T z@&|w9{lY+Bo<1J4J4z9j^3(ygg0!WD>Ok6SU9ZDIWs~k%a{b;%6I#VfYgD#x0>Lsz za;xT93I&BSYRdgZpR7BNE{k}>&_Ay|mhGam9Lc+Yf^_n+=+_|ZsaeDL!R*=bAj;Bj zO5bFrHz-aw23GObj%zZ=Y!4!+p)Vh7L+9qNp;6vO^-%_>@^H~VKzXVM_@I0Z$kj~@ zqr}Dpf`kwomk+n<JVZh_Ug`K(#6FPA17DrbfCK`_v?;}bS3ZbA&aY+ALk;`vp2LLS zMHw2813B!V&+nsA;~Vc3FR8sD3tJp*KU&K9IKioF=P?9#lybX$m5WvI@z9TBXb6p` zA+7yYs);DX)oOSA)~2}p#KgJL;XcB&oiB{H-u33yWw2scw=J`ciQcOW22|*)oY%?U z7Mo;NOkHq(=v90XPCphj7mxrIUDI_K=}eLEq>~9^yY2Br0yby^zJG^E)yJp21Q)Gz z@~-x1)@%$iRFp;+o{A{&r=e{AZ9l!0HkY02CSmU?eETT{&wT}CTkx%#zr+&^F|~<= z+85uB$U@%od<OVP;Y_TZF&8Lu7FA)$IL!hjk6iL0rXox)v?^rBV@BxLI`yY}ba<Gg zq+MO5;w>U4kIOcj6A($hG`%9M<vm5+5c$t{*_(3gV?T{eS7)>b<<rSbF|m}r>4yS6 zt4yDZwBRr!<o4TI7ERx@guGF+Y1|1@wR6*eH|{GUQvUcnl$_Jvx!xxHn$40#VOi@` zr?!ye3*AhaR?Ehj5N{uAmlq@~mgMR>x+Z3zY=pmdhBaH~X11>=s^6LgGpn6{8;D8f zuYb)?5aPe0bMm_;#J9L{Wni%XDie{}y74Q@X9M)&(rUV2M%v$Gv;?{x{_%lFTN+V* zRrm7__&qWSOrD+H;B{v?-#k3oOYC%oXW{HEl<9JIIPEJOTET%q0&e2nwT&J33aD(^ z!bt|ZouO2($s-!B(l}LIl#b1p&w$Wo=8!$D6_TPRcLJ&4y*@fm-vw1^+Mdh&MIu1w z=4^2l$UTCC`*!!!k)g+XJ<gQQO>%h)b1Mk_eAyY6zwxo>_A3>=qa2b8e{pWY)HTVv zil>P_y;fXAc1%0AkL(@G(oUtSR*S7xOIMG^;bko+NW)|qf`s`Q-+~ml0#**<Wr*6O z`*O+=<PWV@<^h@kXewQy61CbpGBs^&qJJ;#JbqLz4bQ@g*(8B&TJbzQj8dWaF4?V- zRHx0yr@^BBrh6y}-GuMm7GqYIpcZdKo7=U|FemD7UYETa;REb6T?(ptz$uxDRyFzF zk6W9E%UZ#yYlPcPMzgZ<c$+Y;_%2y7O~Lfz1DBXq;yz6(gXch!Cavbta0<Q4E^O#Q zT7NzHujR`?qp5d9l*|lMr>Bn=O{nIJHP7t@p}jN-yq5@}{XcX*<tPlo98Tp!{Q4E? zc*xsq^Q(h9FyffocDuk!!5$48e@M2F*;e;Zz3rC_@gb+X`Cv!Z0?O_Ym+e)Jm4d`u z$q#Y-$R?uQKd|$9mukx!9d?B2MG^Ay^N|Er#~8Ap35eUS!YJ3zelpakfiOc)U{Sl_ z2DD;*6lrE|bw15M3jW=6ZMB%^cHkec?Tn`$R5M^WaipR-Uu)}GraReVHNn_u<aH47 z__))`4{u1&ssep%X8v_;OS0EK@;7^N6ZA5jpqYGflTXDLYovlo*IjnB*H2EJg8dca zG5h{6Z33KD7AQw%cm3cWPo@SL<HXD#1gWp?XuaRQO*1z;Fw{FNc8ET<qk8e-{1)8x zJCq8hF0;uOoK6qn$f-PO?+q-rAk&DvPqvZMlUY5|d0fsPZWn+K+*4B;H?rFk*U%F8 zOfTtpFXviO-yr4FaPmcdUy4`u*f%DIh6_OatW35M%DW~Jb3^@H$XsJarbykbK#al@ zU*NmTBjGCR@c7X%7U6_1*@(X>iZVu$N1~*3IOjy!Bi}WsQ22v<7PI0%2lUZ<twvRf zF!e1WOKktjs8ELo152h@cqFx$;p}xrnDBthz5T{RMe2NQ{!3evsfOdl)T^}5nA+VB zwo*2C9l}+lGOE_YKY2T*o0Uh8oLh{lcBEAsw^382y@n<|6xhiiJ=&9~L!Fu&%!MQS z2kTn;w)*Ej;x1zt52ZS+E0L6(8H@MtV17*Ht+W_=rI%2T1vDZgBNaYve}iWlI#efR z8OEPME`uPQ;>+8Z+JY;t?!605uwqk3d!W!<<jBz+Bxx$q7TkKIG}^sTad?QJwK**O z6`~kp^SBvNAb7W@Kn@*GFx7OdJ|0!Mc#!w&iC!0iK1K8M+Niv7i`|Fr6Yn2~6F!*l z@144|N>)<x=^UrY)sK<lGS<!6T;Snp&F`2@W~-j7>jii^sK?-j%7j{~IU1cGI+1^M zok=zb%zjUN{l&wzD}|X;o5#h--kI3(s3z&va4m6_-V!_~I&@Q?i+BgMI@3(Sc*ar& zJvYbY!D5z7Nzd@T)RM=#C5r#Z<faHun{DO##I#wdd{I<{G+})}GR^X92<bIwWMZwl zHd+dEbD<7{vt4_~FXVZJpr976bacW2wHOQXem}o@N;<t4%<yM}BK533eD(YiXY~ar zyMf}Hl$1sgj-^F}zuPs``I&5Yr;L)ft(|Si(xRR>M45)Cq2<0@EXHaU;wuvXusF!I zQc-cWp~qMMm7hY3F8&d{LFnE6F?wi48}CNWy;IQ#&|LMm<_!%A%~PTojj_|Fcebka zC}PQJbv?yd37P>zKQNfT<6$xP?tP(;Ar@;JJXb)y0c-zzMt`W@Mg6GR+S=B&#%*w( zMw0_I@zj_p_&uyVwT`L8_tDZc_EPP5EetFqVkU=<B#%5Ks$nZ058K`W5i7}!9x2xd z)g;Z*H%3!B(N<F-Z~<^eR|jkszsV!r{UxY}B;C194!?>A7BiCBr)X_nm+ez0GdBwU zYF!E#o?@(Xd)mK+X{p-CE8#JGLQgl%@;vZ7Zhx?Wc0)awcbiZ>=d^5n>WLo(vUoN6 zd95V0D^dP(RMPy9!K+{DAr>bdI(L<$MK8)0vKP3$ZkQ;n4v5QC>n6iWunliuIv?pT z1V}K)Mvs@~YxRFE>u;x3HMm`G4cZyYj3&42eqDRSZta(7knJ30<ZY_*2pn00mF6&X zyuM-#H2YP2bv$R&IkC*{PlI(Pv{>wx+som2G*R>X)lTV}`(cHv-b?hk+4A|xZ{7*V zb}az0;sY@+DaBr}Zf~Q*yge?VaObb9(igB2-I9|nc5pJ<2AC<DooG7k-_RYTz`vsD zb2<{!8yq$Rp$8ca4-HK%^+c_sxg4`lrQf3qF6~=1S=&i?nu`}ZNpJOyBh}sZf6OV$ zQx>Vqw7e5XQ1jf*^p6g>z~`{KXNO)8Ez@k)YISYVAB-cH-$~%M_IV<kK4Eumn?jFO zd)n1K0R<1xhQ(8~3Tn5Y`Z%{#NHgnv9)OBNWmbfsRu1II=p8-r<M_Mzp1t=rTVLS> z5g@8``({Q15+0V;xv6ek?~YMgG|+g^5F++LQtS=43xTgx9HV_VR@WmPX<eqzd-pJ6 zo|h5f!&__TyZ_2Jf7rdtY9-KF1Y?G?U3pZvZP+~h8iGrw^+#tlYO@E1To+mG?DSmg ztV**c&k{<MO(cF&PuOzwUk#n5E!`EjJPbsBnCY8Ms$@FXJQuAgn=8Lx6gMN<#8Qy9 z*E5W7X<%&(mtIm@BJRb;klJ8<mV8QCgh44b+X=MV%oXJ#;`uWFNppdUf~T{cnt(Oq zeVn#kaOvs6H<<ub0u_3EiZB(It<LBVzmF9nvgXn;0;}<w))vpn$USqtd5FKBtZ(2q z*hHaT)0S%2g-SPlaUpOg5kIjrDOt{#!#xa{g)YX9seU1vJo4Lh|6)mJ_0^>fsl>V5 zkF=EIUpZOQzj#MiE^fQ+uh0wIwtPNwb6h1>Ev!#36w)qDXsQc}<}Jk3^b;V@io=t0 zT;_a<oaabwii~`FS_B16J<xx)I)P@Vq=7n|y8*=0iQInad0ihpnq8~7J_Sfl8x5mS zS>$Ii+9qq2iga~64N6Wf5y_-BxZa-IBkVl7Cw!$7Wm{<!#G2q~_5;A4@(g&k+6NCL zXq>x;2L?&Rp%siOvnL6VB<#L8k^vS_&?m48BLix5%dNw2EVrH#Zu8n+;0&m`8}9(V zpA#HQxceqZ)kJV*8dK!tq~!MzxZU%uM<X@oZM|?-rykM-ZVNe*knlYtLq0_;f+qc+ zD(hc>er4x&cu=?RgMF`hZr8n&#qtk_oeqpVs%87t;_zv1s{lUE_wq?=&()go{NaHX zNYZ7l_);l5W+%O2@EE8ot}*RXeGPab0Z##6pw*^Qs@FOJuL_BBhzlPdG<|41ah-?j z^VM%R+}1EGGp251SurWXIe510IR`7fEo4WL*^SSWMk73)+;DIKl|y|#sZGC37w^kc z^Ry|1{mRG{9HQPPertY+{K8S=M$mw9Tf46j>3eeErtE;rZFTM7#B)@u7=r5Ub7S@D z_}YGOR?7m88n1CAXjVogg`>(TIpVRWDR<+x)0*-d@xk@OSzN1N?<o8E#QRe3m%sDp z!w<i%CX>cr<8pb92OHC%89W#<vWT2}UNMpjTTO;(c?1yB*+q1d=8#dweV_iy)mC9- zQ0EyPw-`+E5uSOVvwli>yX9c!aK=oJ>Q+!E$g!5A+5Mtfk#%`f0YXr1$YO)g11Or+ zpKnLEBdym9HAN0dhwm=B?~hP^s0lzk&i=vm6uXrDWpIt|7HRoDP1KDAh#rl*junX^ z9CVS_Q{>>OhwXJK$|54-{xbgqMtQyup{zfJvONike2<2`DLSNhX4wAiyPW-Fl1vQ& zq7G9y5+OJD20Ovqvj|?v{$c8?OYt}B$2Ds=YLEwbyPS*7dl-1%)fBpg;t~HtI@I>F z`@`=6PAXSjBh$`PkER`|#KmTK7F5s9`HlD#`OrBX8dV<Jp@Ukysodv*M^RcrUZ>NO zf=M`;J;E7oTa$&MQq6gmL{~k)moGB>i*6!v1b;eHOFlXevu>?on)eh($@-T|$2IFv z`l46I_<@x~HiNlk!1WR(2S-VA<N|-mO9uTM7~aAcu;vnSzSn*;79z}v&I|<#er`0e zuhsS7^9YB^C|?M_jV1}3`oe5@btUgMqRsAkcet#d7m>#9Wj@-$4(-Oe%Wiu@bdHoJ zR9sNI{z^AIHXu-`Gw~{=*0uw!%MCSMqsisDcIk3SQnbcwLAPZ2{Kg&ECPA$Cpx5{s zhtp2pBr~8Ru(c49#{iT3M@7IpXd;V*S;w122dhD*8>)Ahtq9a9&Ay;PfpgsI({T@B z4>j^TX-veAy>XoWfkQtQXYY3ck&<r%eahTw6$E9Z?<IAtD><5rDd-G7ifV8-8MRk$ zZCgo9oW4aPuhqi1YCnD&Mh2=D3pp}!U&<Xggr@q8SujXwRqdIBGzQ*|L9s}>e4<U( z=fsLEn=ZDC?5K+S&EwR$>F7xwf1^S6I#%@urB7x?29gP+y3z9DZ@W(HklP2cuYmug zCRS90!#`o@+>eCyfm26^;Wi=yO=Q}ZN=1(y>u3>POp02l^fZqQJ(!EVVfC`eS`tzD zk+N)!aH=PLRz*L>J3Jw=VX2MyHDRp0)`+Mw(*GI@2IFcXWcBsHx!k%2@zPSoU8Lvl zeb!z2)?>%}S&bx-F2sxGrFw_!IE%mwT!zw>pi>Xgusu#ajdb1jO@MKx+3<kp{1Rm; zq}}K3?~`WwR6M70SFFhU;gIQXK_)LguO)}xD_0Y=xb~KiWd@af4zbdnSIxQ|>sX+o zv}&)M5a59bc-;o~yHU!L;atExGb}U`<5jLUN$eW2eqs<Fz1uulYONp#3ekd7_gA0y zJy&=<jmP<?+;?H-OWDE;QRh7b&2gQvC!i}ftyrpKp~kjWI=rz(REnTZ=eAQ3|5>Hp zv7-`m(m29&ruOl$1nb&Y;scvnH`@vaXW4W17tT&G1`g2xNI#a(^q#-<pwf>LmR&l3 z@OJIl(s<TllBg@$IM_u)=OUZVne|9$BOLvt<nRmhh@Q|V!b2v$>rENdI!f#W;N8T2 zG^M;>NNF_>MlYBH0|~_fwu;*uH!X}CYQ3&qnl3BQVA-<k+4dWLe<hd1)<m5KIk#}+ z%OG1Q0;@Drg}mAb>6Ro5I4As;)!?1vP4`9!^&oLY<Ug>D-wU3smN$!yTlefs-B0r? zKLrSnR_?zZ9>17fDLI*x$k|sfUc4jpe*3WoyrqZ_mF#25DM8_%50Qw-1`1LQVULuI zEA3{fX~^x$2f#mo*0N$eFO&iV3oPCXXP~5R;fRI2HT;)H@J}3JHH0+VnR!e)*0;M? zAw84IaWz%IIKNDZS^L6e#bPeY>sRnO_AytrY3~!}0Sk?4o$lOSiJ8-W>3rqm#q>^D zr)>qfxZ#&TtgwT{+&q8DTF39fNQ1ZDOZLA^23n|OSaz9QSJMu-c;vgp7usBPA9=iv z7%yiYVCW2Px%VfGZL@B%I}7CAsWf(8=-bTAqTNi@-%j@K+v7D`PY0AVp_I<oJDjHD z$2~OY{yg$1sx@D9n%|wUKn+oO`_oOZUQYFAE8a&=yOEnH4u__i-|YE<qn?*ZH6=^M znk_6#oLBhs8DGwIL+gH5o};e?kE1Uh($L~E+1wqCQMte$V1Vw>!*XNC74guSuan&g zR?j#%a?p9G7SqPtwkz)<D)Hzxb4VANiMS1}h?SccD<N>cPiQAy6$C;;qjhCyehf}q zb-cWxfCxCq#BBc-^;*}__Hx&Sk}!IY$s9+x1O`@yGZgc&X?Uq5y=>;B5TdKo?ClFW zGE4;bZ(lQn6VE*sHkw#355{q|p9|Hm=MFk2`nz?4iW!Ju>W!ns)YJxO$aN?8(lI^* z<}p2$vjTzY+)@qw>%eJkNa#q?vnz==mR!o3D)P@EeyOS2wziNAp}fvMqgtQQx_+^q zf<pbfEP)z$F$mAu!z_FrAow7Qp;_Sthr|^XMk(|cuF>-cuJP_`9={S<EP{Ea2X3n) z5B*FARs{|_+F))tc*c#)d?cuKZeg*Su$ovM2HK%r&4Me=cQ=jqH?B8#Zg2rEw{WeJ z0|S{hQ+jc^R5egIDOH6~e(1@gs8W)0Er9B5rR?Xf$DRw5)OHoK*C)Kj?E$Ga0x98F z_6|B?S8lVVO9?$25xtlSVRSl-E(Y^xurPtInJo5kQh5-=h&k^?n$OS9ovyE7Twr0` zZtwlS_KM_e+ZjsW+Vf?OK|#-8vs1D@OlNd-B}b@xP240c`HA-A#@&&`iC_WNrbaL4 zoqb2>TohHSn68+1oAp$y)Wk{S&M;(tgD>>TYHNcwXzi~EFANsKq`R<75i?8%6ond@ z*vDnolZ^6iWDZw;Om^qA-acH*e>a$A9}~x2yQW1UW-$wHEpw_Bl21thHfuJF$L%U3 zPSFV^5~JeDao9>i*}sI+>lf*>=763G$O>LPE;>$B8xC5weT-Lx@T;~hhv5(!5Oc-f zyx(nY>6qK#c69`@<AF!hJ5)6y*|L<F#5g9G*w|E;Y3p___?{2XBtXVE3@IcvwJa(# z+EG<yp(xFnsy;MNlpr}Au*~g3J+rP6+B=4H`h7~NE^_!Hib*x30f~9Ef(Qg#XnyYD z#d=8@>Ltp35C;2Bo}&Psww+d<gNDQ;w~ueE%5{EK_H%F`Q)$EM*UfsQvsz5%%_R)C zvOlyXwG^#0Qi$NFIn`MYjVZwE!(dBNDQ16WRFc8X$(qz1rI$Y_(T9sjvwSWMGLgM} zOJ}gbKPnsysi|I9HfJ5Qw~^4zMPoBqXd1b7c*q_tdcd^rx_G2{p<OJP6~H65BFcqv zOFZFmyjzO1Vz;gqN*8dm;Zcw4(P%$5{>5qYstKpCnrVFUYOM39i^QVgC{c{&t>;Ui z1QBu3Q2xdC`YF0@F$`&VYxOe{u|mdXPMRuDu3KbgpjDeB*~cCniliV^mj+A6NXx7p z6&NhTlc}VMulA^eo>KN47iq5)-@IGKUVk?4gFdH@4h&Cd>N(Q1EWpB%E+Jxe`Z?H* z9+J;NSKR62^9jQ5+uc>gWkNqC)=C()9zqbYoucqp;mdWKE*+al$J8E6NAj`Pdhg#A zu3WVRW8rKMrwZmxZrX<D8FTUM^)>8EJgjp5w!Aeo%mh557jvRkD@I(dI8avUnLb(J zv4JdyFJ?yppmAtwdSKvjy2uF^SAi)D=`ZXK68gKqTV>y`?r)O^i_(6{Q5$|23`9N5 z%9`BBWyEUzBnfY&T9+0feQwcHYFRObN<nD|mG<gWy@YHjxg>9;iC$f8OL0meG&EX2 z1i_E{9p6R=HR<F!$K?~tmL3}95sdso2tn7~jS9x+1iLd>NTlY@m?y&I{oUQ66}$5& z8MWyyJ-ht&Ly8-GqsTx6KcjRWqx;%<my-s8)(l_F!cQHYT(%jHw;$g(g=;u7ea&6- zOqrDzN~SNYi;ym1C)KVewR>ItVl){jOz%ya-P#1Q1{2#uo5_kxhkH2Mh}O+;-<L5r zZ^xc>Y<1`l;!Z*Jh91B<?Q=OsZ(Y8Tm`0$rO4-v;&U?)F*K+AZx6V79@-0{QQ`?_1 zn;c{=Xx`7HIo9IMRt%*Nt(z4EF}#s&_Rqwctevtu9GvDOl~UX(yC*F{(2eNZDeJbu z<M*6k&tC8S=*j-UUqNmJL!7rc_|>ts)lQJsQjeug-{k9Z%$GP&Q10<mTARnjTPGYn zFGtUcn3DjER)>k3Ykf>kjMw}#g(AS6YOi#wvw8pmSpa1!9N~dd@TP|F0kF5udli-L zZ-bb-KmOuLLBra_yi@qSLlv5!2)IB;x1R<BX*JThT#UR1O@HMY>IYolaM?W?>5nqu zMM?4-<TvS0wYQecUmUYqMlH!3qdu>aMiS2@q|TM=4r*Q}nA0dg>WIxTx~UZ9{+80p z`@*9|hLPTiak9RhDU5+%x1TRx_4|Q47ySXHu23(0{A_B~&96r)$##|mLuL^c<>u<= zMpYn^`DC;4=$f4sx7{fsd~K7B$3}n!ws~r>gZ4@z*L<^q#Hbc@l0A<5%^5SP%rkZw zA<-f|Z?pc+Q*>lHTs)d2fB)$!oZd|A*VHy6f%KkBywpaF550O-71=Y27>)c5u8yO- zG}QYS3H3*dQpM4}5Bi+gPUh40CowR!qufi-f>v5J^HmN9@L7SV9^aW5T63v(&elqP zt1%rj*hXCHV>|Kk8Y>&05AKvDtk^_ki3z!fe|u=ZQCPszOu9-n)P3f-(9Dip7;I85 zLn31NA-|HDSH_M8jcv-TEth8DZa>|P<^eZ4Z{2><niZIyURRa5JkH|>Tl;0n_AI32 zmq6vNITFqU`ZDf54K9nv+GPE@z#1H&^<HxJymp+d)B1ohSU51}Kd$v24rO|e!Di!& zWR<#1vxgss-Q1q|Tg12$jmj_2UCKmSJWs8V9ciT~h<Q@xQ`ueVq?VA?@SCRY4$~_N z-Sx@o+T}-|<;^H*B@vzU@X(|5JNQ;Qj^eZ>5J2DtM=e*7BJ_ikQ&e5OAvsx>oWZ>C z6Q6J0MBmu>So`>srH+XhUUa{p@_!t{1S!y<Y~bcNmh_{DJkV&~>76n$h`ml5ti<p; z!ihYXD}_CEEy;~#HdA5i-4O?+)`DCrQ~t8X^1Z&)uaQ1J35W_fd+XMg@U8ky!?~p| zFv)@*tnrMBlZA)lEI5ie;y;z*^uGGW_+3jQoul5)V%?;Ml7n4m8CS2z``ak_d(y+D z>U_yTSD{e{dsB1=l9FoI*Ay{|P<}`<3rLauPqe`ZG8?DKkL5M{mmSH-E|xa-N~FaN zmUic-q2Dl0O>Yy@kSV1b*H=a+uMU=xNE(xpUtjf(NrzL?NDBLB+BvDiV2Rrxp}pQ2 zBATdLhng`He^@YIB{mBqU>x-CE|EQyHI-7W3>+>%j#W-zyHuidI!xhkQMuN|7_HBf zwXws%KXS4j9#cw%TMWtg#zUa%Z2h?|Jwp1|9H$*Kp5xCZ>iI_d<}2jVY1_@l!Peu> zCD*zsqPz;})VrH3mKqLP8|2}S0k)fRx5pBQD&kV)&2FS)J@arNUl)uJPZ<{6?{Y;o z1mOKcQ;PT&KZIfA-L>Wb_8T3ej|`gif3W!3GNJW(+TY@IydDcHe4>tUTQFSX?PU%K zc^vnBPiu;<%4|a<{1Kd;V!Fd!(Bh?N`&<ro9Iv-)9vh9N_chrIoc6{F5Ji3wVaA*a zQJfSCgnREh_pbXc|7`zY?#@>L`ic>1)VlOv8wuaz;UsA=G@*SDqR!3ktb{M3BQ3+4 zsLYbGDAjaA&a%6~JDjPN8`!BN+YEXW>E_6aLcneJaG0}UOheSBb2GuJ=D+eiUgCp* zrHiZH*RsL$=)4gkHkZ@QhCxx8RCbT?6Dfj*ui?YZ6F(5q&a~r_ZSOW=mO_=Q%5Pw5 zph9=^CuCr@Uw@es*OiWpAm(=adFRsbTE=OZOu`-e<OJ4!Bj$*`CEA#lh_mFmn~{Ph z(#M~ja+*s?RU>Gjs_7RB0lUlQVQloyC?T8cS%a|xi6)dXzB-peUns(b=V|-XY=K?x zh!)@u8`4^`li?DGJ~JVxPzdf#g>Lp1BH&=BR?|Ly@PY1ikkMwdzDVf^&lCRwC<~Sy zorqv|V$N(r<pn<8H!apR>JrOrRph7?`yn-r%(CaUAvflEonA?%+t!HuXxFEiI;-P9 z%DuymOyg*>*lDH2y4GCYj34{r6A@XKm`u!L^VEF{xbgM~$G9zACOd!@ic*hqQF#&R zJ+&R49<<gL7i%4kJO*}*{u(I-6CPzd@7{=o7xd#VK187zi{A`N&Um)i&Z}!^@#)$U zpV<GmOJG9V$l`vXpmEg~(^+chz^j#_9Fi{R%!AsOiHF1FlDQFJ;kzXYaN<m~f4;Ll z4Nr$3S4KZ50xbQ^H3aG<`KGK2XB6QSCsA;!HP+U*a4b+bKU}??YpUW0bJAN9ZUlZ* zj#9H`C@K2HwXxDuY~9bvcf-E<K7hru+a~9uDNgPPGxdD&yl2H(4&e>MWxX&mI@VsW z-}yk++li{4EyoVw9WB4ftWNumq$3xBLdRzhHUcO?J00J_!Q=qA?zAa$qsgBRlt1|G zCnB737?Ee!VJiP0^CgB55IOtuyp_kI=oG(O)GqfFG-gF|ByN{K6v5*al<#475jiIh zv~iZI2~u4MP2Fy~@|se?dw+k~P>Mi(90|q!Jmrp`uU*3rlSY9ese4v%uB<Oj7+I|3 zj;`hH5p)3U@u=W0v-3`tf>-TXCDS_zlN1)h7e?MJxod`}<kOS4@voWIithcKZiX^q z2ja#n-m4KPx{$2UjliZ@ENW>RCnu+Pil5|1G&ZR80#NiX(ZL^_oa!WPk5(2^H|sTg z-Km8KK0Rw(Ul|!2?|?biF&?+nxkG*3>>gyj!uEM0*xxsy85t*IX%kviz-Cu9OVM9L zq`JIB%4ovghTJ#3@_upB!)?x9^oCSFr_j{uiR%p&6|}Kd7Yw$Bbw|7RCF>(DTgi1Z z^?B)(q{Xzm*NoOklk{nAyc*sk@mSrp*5%56o&qad3Cf!7d|&9bSNh%Wcv=thBF0v? z7`2OM3y<v+ww3%|UpjJnZS57o&mBr(2<4E~8JS1xyEy)KRPLX1s;g&KcyEI<<C{}3 zt$jE5-$P+erM|{2o>urxNcfJC!Ma-=j0FZ82}uR~JP+w-mPWvey@}Q5mtR7Y<<}g( zTAbtD+RC{pdX^*;$fV<JTKvhbrrdkk;em*0=q4^bChMf2SfMOm@oUoV`dpHNytLze z03uEOs;>_uA|m2Jx-@8V+To_Z5JJ1FsY&`IgK5aAXvk@G%!H4>L!Hd}8f$x_>}gaT z2gy-Ru46FX=Y*vng9n}(eD^e@V_^|{LgJmUkby2Q#(#~I_$|QN#g@|0zrfF*&8#_w zKtg3sZNHeBwh0d(_Tgx4T?T@Flw|F?Q9SAe`56HL*<b(ytslRq?Y@~Mr_?Vf*faQo z1|{S}m}CPcuR%wrqpPd?DE~H@fwF39wojdZS&c!O7bhzOfn`Q1GZs_f!eeW1ui?uE zED}<B&gQm~vun2*_lvJp--pJiJgda2?anX4Mu&^qyZrxa?i<cjOe_pbOM0=fhcU6{ zKiRREm<bePeiQ9A2#XqKnUYEK!Uh1(MWCgjQ5tJV#@Fe0kF_aBk1a0Ehl}Zbt*2*e z{oUxl=gsJ1XJiDAlXPY~BV>|lgdgJ#C#<fXd=e7EQ866ivo;xj=PDv5))*XImXzcN zbxRc7BJoW>_=oSXpi~|<EtH&msLl6n+J^GEl%bTxlx8R@s^T(9T=oXx977zO^78W5 zhS`q3i@foKWi9yKr)q;$1#dVDi};|RPdthH>r$rHVE*MXaWi)}ANKbeJDZ@tt9fT< zn^02f=REf<^^<e3VwdsUAs~eQlopeglpgKw?7VAyot_dGt?m8CAP(?TRh;#9bKY3J z2aM%Godx+iW)_4>{H|1DAIH1ePv8-dY;A2bQ#I?8DAu@t6s&#N%7?h$GAs!TclY&` zD=IwM&nkn*`98@o!BABJ#!CaVb~iDxbamRnH`Q`s?K0)&iKc{9a?fU=vwIW9zBa$K zUjqG1vNbb-`Z_nth~Yg*DALScL=eZJDaDu>zRs6ue1r%=FI;trzJ1pS>dMyp^HH7c z-v0jnmt~)*3=CotaPGauB}xOF&}jYPR8<4w;#pm&s^_3!1H7^z(i9b@+}ud<aGc2~ z=O_jiAew{uQDphW$FZ`D4)%9(V&j$jjqFY{{*DlQEHyq@^T>34(0AhE++9?JzGgqh zkj=`DRjrwoRfVP?MlIOceq!a?VQXhcNkH(9nTcTh(8n1P{dR_p5=|a?Mh2;+xdo%p z`tbeVLyLp+*Lok5*|7#>$+Bla16Q#?RIe}J8)qkZ92_1cNaxV-VV9>NZSirDAuG8m z1cWmdTJ0A--J48Ibf-c88Q0(4(H^Ye(|4`!^;JY*$p`%6q_fcYQBkT^=RgMG#42V$ zqA*hCM@3YmZ!`0r%@Ng_$i!xT#^qT5GS55KI)XA#AN;dyK9JDRSXeX0eHDC-oC|=W zLqSd>ywHY?3km7j)MtEfu&BB&bZpw@vqCwfvs?b$=Hwzl%7BP!zw~oOV4ahmgF_47 zn{K~=za9h{8Wt9;nAgW%s2~0;c2wRFMD1M22ohV?^~YC#hV@xO@cn!G3XmCp!{i1L z`Q0ioHz2w=ET{5&NrQ`ywKYdgT7)PPbXS|nb#^XxTpT02yYnaU(e8jZSXh5Q+Ul47 zTh6A#;LJRLc{fO==u-!Zs|pGVQa^lGpDhTWyPg#(DDvOF-IGaorKFgBg&5AHo-Oa3 zzb4dOC}&q*6)q-C(=CsHgY!*pf)OD^^56@SxS~A%S*YZ5!;-w5*52-+>(K*@^H4wS ze|;(SYjk4Vk3Nv(g#%Z7h~M)wvQ2=HI62b?<YC^27I__=oA&R~@@u=V3W^R$D9v(y znA7&d<Lyg9M%g=Pv^1kjNSK~j>*|<%nN&_p;8t%iod&!b+asy0PDGg=_o&U4)f6<8 z&w)xj(OpeW+5rNYi%riN)jue>Dd84;RaE|+cIrs~#YKek9Y~3gT2qRvzBXK<4i-g) zH|xJMg8jYDKKl8rE&2Cv0zMVBW)u>?X|=a?w*3hTeTm(DeWYAmRi!9@_IxbBG{1Vm z>G*TsM5!ich|pY>leVddlIQ3Cm0CAETq;avWD^Ntsh0X;s6U4BZ_x$%f{ZKJAR)<h z@+c_hLiBInN5Yf@N_X&oF=yF%zWlSZYdM9DZz(7a_T;UY74@zlX89hlOw8D!KlJgG zPfb}@S0YJ$8WLT85A=CW<P~c!E6@H9S7#ZN$F{9&+#$F_aCZ&v9^Bo6ySr;}C%C)2 zyF0<%f&>W=+_}wKd!KXaR^|6sp?mh2L!NiMa0c@^J@$3Ajl8UsjHEp3+Uj;Uzkk+V zzk#RqC$OvpeViz8@a6y@(!Is@mW70<&g4AOBI5*Rk)?K1jcR5He4=8Y!0hVe909)W z9(6}2+RiRiXJ;Ms{VH~{FG4R2qZ3-k<{j-FLkIgwzjmJ(G32g4@AN<*U@_>?Fw{VB zfS4LMJR-?W^LgI<VDpexvh;M-16_b{>M5<vZ|+8U<WgBwx`vBXX00dF4&p9KUMv;1 z0Y_}Fs4U+C!ycuMJZbk-DXEUvQ__PqOR|Li`0xJnylU7zSQE$Yu4U&Ihyoq+v9m^v zg_3m;&`>jnAE60>{jgh#fES6QV?eSh6;Z$>xXf)zX>Rq>e(B}lEGsW>K{*_y#oG(O zzb-GZEiKK(ot*q8CvQqiD>5=MN$xXNQE|1m*D^PUQqs@}t+7i0L=%a|NriNJ(0ISS zM8&_ouCpSTQ)1r(uDl{)NU!G|Z-1qzHQOHBAjP;I#oC`@Iqf#N!<=2d+#I2pao$Iq zXc-_d-3zrr4k^fr%lY>8hd3Qh>vow|g|%E1jD#lif|S(O*RA_q5?!Tg)HxO<L|BSC zBN(C5(b4@A)%06NgnfOB9<M<lxk$ibe_+13#y}z<eAd9l#WoO4PkRKV86DFqt7sO4 z#P)N<`EebI6)+|h0*ElRPpBMITR~3if#F|=CjMT$oH08G3%RQH`j1rg_(bLG3~kWB zKb@W9gM(n$FMy)8aCDT8>0DPQKPxjoD=TCF5cB>?wf3j7oidt!-Pb4|L_}UhLNCeD z>-g-9=9I{!1r-97q(8_P#MIPl<Kr5AUi8$E9vN2ZlN&n50-#L(nlp#6-Y?+o&c`f( z#~ZLkq_f}1{kUb@Pof)<fZJIRFN@oS#m7`nSN&7i{ytX!uj);&Ss4NzSL@}NxfZ)^ zVBZH|!YZez3F)6#pHhCmlIwMUKB_N##^UgJ($o%x%Yjx``%ldGN#?>FBm}l>mwjS~ zy;d1F&NGRD>>K&h%ZY?QUex6KHfCT#5`-GsPENBjHm-4E-tlDx5F$w|aC>^|=zVpL z0fKpkc4e3senP5xV2}^lPD+~x5o%oW<Fz2R>KJmb=!&MSQT118ro$6Uq!Y^+R7VBn zCOc}9ZOBdnC1FOXrC{T{K29Z4!d<#g+Sw}Q#ztcsEth}gUhe&OyQAnF(B)@G4JeBW z3HTk+UG+M>$$MIp)<#<yNulLOVsn1)??Dy&x#|UE29kh?^jvgb|NTT)Ra#zFlEvpo zcoKyt&^NSMP}s>r&HiU*Kmr-P)WTeCQOW5l@?*!6JiX1?6?|kKiVWVm72plB!iDY~ zMOFO~+5UYv+4%5n9vCx|FBlkF?sPBL_#YpMLl7^0(`X;DQb-ghIoFw_B@L3J<C1)~ zJ2Z4jO3IS&uTljyH7x8nqstW$xna1_NVX;I9~Tf-WyBrt(Q&$OppLdx995686&y3q zJ6orIu-Lsf(4-&dJGEMe&u@3H4vi8T2_MD_lTkB0SzSR>23S@1a9onp?)nFl5JOo_ z6WH7b-V6j~5oo<mXB-0}W^$XGAIyL$?foY>>YDO^6nL3&8mkjvl@ci^LI|)i>CZ}C zL0Ai81|!%d6%{r3ivR0M*gs(mxMI~aje#6p5m*UuH8NV~ACTu_Vf_uTt?FX>B-j9* zPzo|kJDy)vd}3fr2*{}Q^=BT274vFq*XCJ;B-Rgr9DdBi@$<611S^Q_oOQaZIlYS! zOP-XuwqtU<h9&Ca><hR`N+8bhcNiBol--A&?2yx*1~Mr{&5*fz|6{+qm&eKtZ>Fcd zrxrKolZCSRe6h%eYj{ISe8@W=F&7&_d-I%bpQEXaPcAwe8$533ylz{anTOm&+>r(O za-vd7s>{F%>YB<t+zh_c`4YRDt*#d9^<p~%$tM{VFkgd@L<}gCY$7GlEkuw%O)MuG z3t30xxo3fVVw@BZ{s;&O%5aN|h}qeHV?TSvQ3G-bJ)>)^q3RG$VeN^bVT#Jy+K8#Q z;(<cPHg6zOz+scH6%kqNwQ&5-;O$S=#y%gHcD1ie2((E=x7jW0%xo%L_ow4B2>@Fr zDT|9XZ`NXgn9YA5eXZ+;MqTrLT3BBhm7psq*#d42Ks3z7CC0_gF*eQ6Kf}ny!omYo zchqdb_GzP&bW>y0Gt;(8YNncEkWJMwZ+?%ZFFi5|NUt7WzR>m0k1S7&FjDXX7Zv{3 zN5JE&T<fG_Sxv$4KD#T8%Oj2J(P-p%+-0~>5VZV{FDU+fYfFSDXB%DGI?&i4{=0e2 z*@g2?LJk%N_P?{co&hn@Prw%u6dY=FbnGa8B9Vy|C}#|MpL)rEZM6KR?Zihy0grng zepKiU;L~}_$n^(%Q}@u_wvT~i%3fH+_x4GQ?|b^>L}y?i*v#mkmgv;j+zihmH3S~x z54r;i^XGdW){dyA<|Ze95y(JtmhRn?Dw8)-0NRdX=f>wy8QsNQ;3SEO;mu9uN|l!f zUyKw;oI}O(4MOq3OuFsp2^!Vub;2|@AhxtbB2Nr+Pj1q4u(6ST`GQDI74H63nnqHd z5rvk$2|Mb!ygW2LT^vLJxos1q>$P*>_8n}X>6EjSP29nQ++NsM5f=M(G_a<$+Qk`I zs#i3@`+XJMy{x`?dVLuH!O!6_8OThrH~6^S&O42UB7nH^7XdtaOxy!oWsw~O+dy92 zl_6KsPzvWpR#DSra5O%+=XOZOBze(~XZ@eV1OZ_?=3$h>a~*NiFH7|;nKsaB&jA~s zA&3Z)UlC%^8a#2raNzwrAO6ddAJ;_ORyI&451`NiJ8lH_b)I4Q<K8_C%&ossknIQk zfd{WBG+$o>RoDE9r04laLdC%W)JB1yL;!=PC@4WXgXAPq&@`X^r}*rS9zVD!OL6hC zm2`O-+UZFe$ffe~@|sd>HOORXlim{e?jLbqGK+ir-ixl}`^%+iYHG2+KEk3=04Box zU+BPAK+Hko{Ks}_sVn*eO5V7YHD#h>WUx7`-GPm!Bn7{uY0JaGBc&}*@%$cdIrj(r zO|j#0h0OEXtND3qa@A|LfQ5~*vXWpCy(uIg`B`Q2kZI7=Mlf7sdc@fRguZ~CHYGH) zy1d&=Z()=-MMiD;?sC+`uXp&&-lNNOUkZ=Ubv{O}pl9QrrY3uT3Gg^<-?)gHf*(K& zmetMNbpg$B{?lo$b-yN><=#v$)?OXRg{Yulz4!!xL5(Kdr4_WefhG2d=OoH=u-^bv z&+&23&pBkkcP41!53x4}(U=KU<)g0dRNI6oFV7g7_cp8uI!Z%F_iL3^z=O*wj*JF` zGWS*(ICKBhhz@t({UEUg4OS;c$3(JFNF_YnA3<36v64$mEu1g5x@1xrVy3Hs*S_e2 z=!gG=c0#Awz92w_eJ7YTp<d&1wxWoNjcg4<=`TG_D?6F(_IuWF>1@@Xoa-@UMG2^A zftZA8uwxIb2M?RdWmgdC)RjfNsork)c(~CYnbzm?I?k^CZes6jD()L1NVNn17J@-! z@DhLbIdV$O3G6c>b}$G6d*fd2F*pztIXAd7M>$1nYG@)o>b^}!9gHMf?@hp*qJa;j z?$#;jsokHLAg|OUOcz*wOCn@d?%CM5lHaMj+=hZ`&D`6=l^7Y7@U(@4;~1<A96TX) zL>dtnTh)7y@5s=$7K6O)aT|Dkr+0B-^Ls}Z0hc!+*T%*-Q2$GrC`rp8?~a9y_b4i1 zHh)YP1?`82ZCM%(<Z)0LZ=*kr#rDhdmc~b?X=$o}q|R_36)_WV?lxO7-|p@L*7#nE z0N>J%khS;T_+rJ7OD?hpb_!!yNz3_0Rb|-(EzN3!-DhrmX+U4JTa?Y`h0DuKQ&T=< z`tR}LsIpW@R8&Yfvof~#8{N5}PI5(u^G0zCs4-%Bl$9U9w`$4pp)slMS{@K`^otx% za9Js=qe4c<NFpyppB)Q1o~4cXMp~syw{`AD42uwaA6T2Bhg;{k75=$o$~k5#U>GNw z9Yg9)ySZx1L3x6`2!qLcRIJHi%k4|RPVDNl1!(0}_$7iafw~EK2PPr>RkLL|643Er z!%cko0mJWe|AyB)yD};*N9}z}12d_kib2BLvkyjw?Zl-?i~V9|>T8&Xqe26&-F|SO z@;PUa<CWV$TW?xgZ1wygviISEmlyncCLpgdfBdrS@7|Ei0vlUju3ZCC+E5!zp`Agi z>C_rEAcW20{<AaFv&O}(s<Lc)xDS}_c!ZDxNp&w2tLbDgcO)jG$J>>vhUmgv(Zmg6 z4th$`0R|=>Kf6||IWs;|pefSZRYg|;nqE}!N6mez+uKX&6L{P-lq&aUtJPiUeRtlh zdZpt&cAj!tkH`7up?lj`v(sE^yX;xMOoLcI^iW3&EI^b(8MJ3;QqT#K*l@ScRc3@I z-!TzKHZ$h|WOkhWGwzG`Ojl_qA=g)!I96IV5~9;YG!#2IYIIay!Ig7wy@`xmFv6UP zc(Bk>cKG3_Os-|}Y8>nYf@VAYmgkh_3<xIV6u#J*#8#RB|5mCM`A*Snq-k=pDK%8^ z2l|Um)G}>to&cCJlpP~$a~ZHX<GjjBKv+iv>47&^Xkai6G*o`1KbV@O`Y@<G*nx<+ zxQMvBhsMXp@^ZP%k1O^`DfU4r^sRBTag~9{QwxqwRM<O4DXF`~Wd>Mq=`<tVp_G-0 zxmWUIG8Gn@9bzRfaLmHVOl%XBPyux?-7`>al_HdvmVtxBag&kqV8KABmgaE?PH1{S zHr+P9>?wUgQ3>U%{j5raTSkG~2lemqZFz#Y?z=Lb4@s_LG4rLMK=aiwK#7wwX=K91 zr5#tAzoM}`4FHv-LFT|)?2NdYo7~t)khV;8_^R<3tc&Q%Yv_S|=c!D3HvAN^*T3-+ zm>-dTI1W}@`+YeC@zGaaLOyfbB1=jdr43Aj2x20ub~;2jULipSLREFKC|MN|0csY! z=aJk})x*}-R!`Bw!KEuWO%5z5H%1S$$#?gm&Iz-9_#mNIK|B7e)oWz<wZ&yqc_PCH z`$2XeVp&@|IXO#NLyMf_5q88J$&mZX!=Gi=^xBTNsyjcwzCJ=rS>^~XJv3ybyr!CF zf|h}{rWy;{e9z&*h6S9B`o%9o@<#DyCh{@|3nk5xo{fzliV5<O^R$0#RMHjXldtbs zlxb|p3}Mr;6+~!%z9r}KiiGERJxfZ}o-Zoxg<+;kqi&ZEDtrd`g6}VK@}kjUZiJ~8 z$z9s3Q-Arg4liq8Uvk2VSon{I^hYZ1{j(QD4X>fQoWI|Fc`hx<b)Mov(I;$zFl^w6 zZCmYVK|Q5-q}%gRSoc1@u1MR%XTGvCP7tb}FI~v0l8&LeoMio1L(oQMHXfc89}AoJ zAC0BiZ;~QGyht5PKWDUF`-9Ua%-*Xn2vaf>Q*+W&bQR=GYPlw#PUiL!igUMlwJhXL zWSnSOox*}EQJLp!@hY;a^sG*gPq8!bwAzw6*yukIQIMwx7;g4E7@IQ2L4@k^aGY5| zLHP%mYV0hf9(eGqSD2st&d|hIW*NGM3|6id6s)P4k({X#D?w&?-O$Yz@H0F{-$6@R zRf$%_BHXbwem#jV8<OFf2_L+f>{o)yu%9zWMCc`MYKq?7O*3GNB+czn%{xXxNyEV* zUtKlP)GYFoKRzZG6I(<?jB4jz6F{komnvy^Yc^-YjPj6@iUyj?E0qQl(uW!fO0~@F ze}lGsF=IpCL714*G8Y!|murH6x8gr&5KOKJ)Dr<Z9v22iXFzWO>Vks9a@E?_k)=)# zo(N6>G*q(l3Ff1_sirxmCcg}%x$WikgrBfJdK3r<*x23F4r90M`GHZtueC9w2-t6v z0t@_<5IweA#L`&-UrlsmCwT8}<Yw%}gYU%M+Nm`U78_B3GrQedozHZj*nEohs>7L< zs4pbemh4=Ld=yfrm+5;-ki@~~(HtI6@1ONe70rKin?0w3(;CdGw)`#`+e+#77<4^M zU;1QEi{&!;9mijeBh~EI-Y3$hczk&rv}c&B3p=@oh3_}){P25<40g}mpISDxIV!Q) zZKrFQtq^Q}eJ`RDv%r#n?KXY98oO4n+^BQ=JKm&hI;mNA(9&?<*pCYHZn}2`(R2X` zMJP|TGkZD?U!Bdv?{YGU6RF0i+2K3f3F)+avF)RFrz$G0b&W2ae^H^ST=MQHJ}oFC zcGsU*muMD4$m)4_?zEia$)R>c!Nbpcb$$Mm6>Czr!DHx&J~E~H2d~fE56DwJ$RlP$ z6-ePS6$fDABG8l2>0z;Ly0z5IQpIuL@w%RHv-aW@I3O$QU9>myuJ8FaxxGfC0^InG zBVfRW%@Io2$5`KC6G?q)CWW$_(o#BOQo9GyGAguVuObDZ!vOMJFpXhm<~H|(uJ9X+ zn8*os)?1PI7`6p`atVYYMK7b@2S=$<V{rfW>VTBkJdmR?n1X!VcuyX1Ezmy2)D$^K zu3wA59i*6o&r?u2xv)39@HBc=+V*gKVr)<{`b@1ONK74byb8vY3mY)1FvA+Qbo1(f z{W$(foh`>hd=TQ1i+YPUfJT7nD!{Vo@t8(^`n}HQxv@=#(&p(PBC|6pKQMoowWD@# zyu2L-EtwRLLxC#G6X{Go?*^aOXVt?aM4)C2x)9aidR!EV{Wff}V5jh#yp>Z>huP2U z#QNf?iXU5$2)5L~;$N|wKq_eZt62sfMyjD9F+Q)#@O0d}jHqfWh;oc0BPLtP8PEao z#2V*K$D8q{Q!HD&&bx`K==)~=FU2DFZv|K{p4v;Z<3n#vG5xnD%Att3d{b0Z$%R-J z*I51l(k-n$0V%nYS9~2db}WOO*0!{p12ee<^x?k(;0+y-dKx25{00^hf?zg~VZ`3@ z_4X#~$dIDUjA+SBtZwo#ur{D;*C|+9;tuq)_-m1upbvui#wFLWd7c34;5JuA2M2)5 z{hvNys2$LmfER2GTMZV{m0(!?lOb`GD08O`eMgM>2Sm@l>}F1MRYbcaCZqNwJg`~W z-P2Z)uZe?^R`vYpc+rV+X3bl8fV`qJ1*Q%a>yO*>Sqw@+Nz{+~i8koidB;c^OUnwH ziTb(3yPB-!Hr)~Z16e%Ld~pgsPWtid?;C+)c*TTXy96n5$yr&6>PkW;%s5e{%TTGV zHu*QW90p_41Lc_F40+U=n%^x}#fD5)g)qbJY+rnrLSNMvP#dl)PD&5R#U63WSdQND z*E+7xswlzWH8FY_`rF;WL?Dmji7vgX9i7+fsVk7Ec%6_UWGbqvs3&Jqx}2>S7wWpi z>9@QU@iuk8UUBF%TixV-mY7<(dG>(J`cc@}c(V`{IA@9byeJa#`Po^o{oT>rQO(uR zLes)Q&(+gCuBXP%-q0mTkjgr%KOYCXH{0n!Q06sf62Uv|sgnz{+tt9oyQmO-Z7q0! zX`Ht<2|<EZ4kb6=+RR`FhcH`FQE2F{B79P4cbBlDM!waxv<a6P9qky%_L7oF@ToEW z`>kMOr{lwdWz$BTO5rp+$4W5Au0tSfs3pT@lu?ipEu2~U!4;j(!Wx<=U6_gF7j4a6 zP<ppqnQEvp8){2DZt%3Zo<$+5>zfrXG?!XlOS<08zGX02szi$Jck!qd^^EO>WRzqh zQdRGUSNv_u)W91UsKAU(_uC1yfRV@#ISDL;);5j8XWLym9eqi8Egg^c@pPM+{ds*i z_S{an^j-AE4J1f{LUpk87X}&O5BBfEd8JyS%^L7}_%;P^SRr#&_pRVu(fig>Esx_4 zn^5w)SKMt{<8BXa8_C(|<E@L&`e8?y?9zT~Z8k&dVloLp`#@oD<z8BI4Cx^HiBgHI z;No4xN78PazSU9|5e$RhE+(V~3;Q>MtFv=V+4q|E^n%RFWUYxs37YXcIL9TXenx$$ zp`pXMV{7X+IEa2uE-I}yR}jrUIaygs_{g})NhJ=vnq{Em`bcpB69)(;2<=k&GclYd zqaJzc*mpSts@VI>pM0A&d<P@cv~%U7?Yx8;(Y&EJMR^<zlvBUC?&Ium4F@R2-8a89 zI-lheSn^|xwjb7JusC-uCFt@SU7lOD8%(1mqGU$Ul}Ny2S!a6AF&ETgZgPfjv{}1m z7Tvv(M;6<36@ONsArrB`8qJ&)ORGy&|N3aLfy!4iNy9RW8itrfp;taC3&+~QZ#JGU zd!)Y}mJ+!7j%08-UJQp<fqk3@eK>P5U$<<L7Dk-6`xYQ{&fiCDh%$qaJoA|ZQ{Uyu z(8dwx=k2!{GgfGYVfuA^MWHMBoEcN6+3{+FQ_7x6!nfB_2i6usE~j@zQw!NFYzK%J zj(~ufBcP!V1y%g;NDlo_(y6U5wNBeN&9N~|F}XzXaxt1Rd#WyEYU&Ggtlo7Yd0DUh zDlhWhM+peuvk?fr_!pd^E<qyit`9XHa0Bu>J7XltO@D{X%2<M;p2a6O&HZ!@iIrAU z!{N{v6HpeClWPkS2@Y*n20l(sBrX6aprxnBdN>ti_I3b(hJQwXGHYSP{JoY}m*=D@ zXLr*U`|(1et2T5}Bmu<30}{Wi8KqOD=I;-bf0BXxM6wu&#FZ9Vs>znY=~?3E&(KIf zKXfsD?@!C{bDc0owI?Q9O3O{hv}{rTgj0JT%Et7S=U@R9TSHO2z9W@>+kIf8LtGS} z7Cko+!&E#+pWFAW(q=d>d4KbTVwBiDm#k}8*=s%1gZ6#a?+;>dZ+>bIH1-K=;M+#6 z#o5kJw3I6CI*0pw)ziZ&trmmZ&=9MoY3&BnwaT`M=In7Q;;1z;xB0%TwVExT&IAVQ zc5jBXM>(P$2OMwD?nksK7nvhjY)+5ggKZ6JHm|qk2@!2F;8@%YfBw>$hRWOV1_VqS z)V??WW>d4Uu#s|*l^WYt@zB&&GqupMw)NE;N{xckM`!AVW}vTH`AG~1Bc#|T-jG}X zmKz9sBi-E+1_qWEngkrGV&6a-_xFWqCltt8JOUT;`B~o6n_`+HJG^uZ4KWBA{xb)z z-GW1qil0uT{PbjdrIk?&2gNne>${F1QW+L|xXPczfL8oxtjY%*fofS<*YNU0^_nV? zV}%^~@u$&1r`)-2tNrN=u?YeRYMwtORH(XTiy8t>?U7G!uVGz3!neCBjXH@pRi*}V zrf*{UIvjsXR)L?UIne?GuliE8q3biT@mPT*P<J`y$I0Ywswmb-Bkp<`&u%60!sNSn zv3$X+!0&hPq@T+8xy%0VUe$BUzUs72a@X^vi3J}s80>j5&<)Y*I8}m_y@A3W6*7O* zX%ON2!+v0^kS;xQk@}v#EQ!SS9_haQ==~-km3LV;p8B48wHg3QL{CC;eK0}9<Y8h$ zN1ip*2S&j+`n@a^>o5Swa+;dH{P^_fHhS2fo0k3rrb9ito;wD?Oc}>TW$ogkD<U#S z<4~ybKaVi`R~vPurJnR}JKADI0_NSMY;AK;Lz~N1+2iOTqXr<3(+zLR{QCA8&SWx5 zm5Yj$wT=w7Y79j|c_U>qd&_W6=xBi#3|p8_{*U$-w+W#h5^?%?hO<Atz15?xbJ~sW z6F1j-IAVj7km?8s^50+$TCE6m7!eVUQeuD+P)L~>XtYkkppnxG+2X=MiJ4{@LuRA< zkQCZPZ{Ynj6AUiRNutlPe9l(h=4{vusrju7J3G7T;v&$?Qe|gfWN%7VWnXN%r2==Z z>^RPyCRjS-*4{$JRzNi`CE2<D9gWz;zPROji0d{jo5d0_=eD0!0vbYx63e)MeF=SW zI)4NP1=6s#CN9vkPZ_F5Gwura?Sa&xAC9Fft13T`-g;dl3>bU{eUF+_HY#rjK*7(v zyD4iak08hujx^BO-$&?8{$3~V?oN>`Ju+}>heeTyk@_RyM|unZQ@BubFq6|V0#-bj z^$xJ4t-PF4_YcLu>bJ?)gOp~kIi9WhcD8r>#0n4uAMt5P+q+XpFF4t^RH(FQ0`}_D zDCM`~U`32;R|EGdSF57^1Ts^x(5&gXqV>aV1cn-uh;%0ur`0nB5isn#X0Xt`vj?w? z;ZL8rWe;3%+xaBPB1!Q|FiJY8v#|v{&(rbbntv|Zhq}!$!C)^&1zuLM4l7b+CFxUi zK8vhVFxh|6k)zd)7NeJsL}<NV4n+wHJL@pOS0~=N4F87t5EK@$E0Pk8v9Hd}B?ioc zi6lZ&8sJ2IL4f{{hzO(n%tL*>mUVKzlBVY8og83-pldnnUp9L}irtdR2u@1Uph1VA zo@1-3;cMt%=s*oja+Zra`}eNKX@G+$iwYCWiz%XzUFmU)5HeRi^Si8kMi*?41%9Fe z*WzXkXbsQpwU)wcmp)|9Nu#s`=*2VmSuQui8ZT$JK5vj#CP`zz+#U?YR=>Bop0_&C zzNxrMR+SQ;uZw{*ol*MtmBcC1#$_97Z1D~VUV_%J%naC{3?7T5=(k+Tk5^fKW5z~g zLjrElu?yWg@B7W80NGxmeaCRG*U8Y6e2qwBFEymJPTM1gKO2rTZNI-uRZ#ob9}oWS z&ML0tL64iDD(RuDEVr_R%p|<?NE;<wWwP2yTI`wl;UQXF+X_YzshgRajEZ%<e@KX$ z6H!Vvz3FU!bZ6z7l>!09bnyTtB(5}9p^j8nwi->x5jkKsSE@RM!+8EjgUxp#V4@gS z)%*9CoSBi&TnGpkodgq7lA|s42x5JeTF`T<ip|PNEgY=3q_%O(thIa*(t3JDv2G+$ zvAj5V(w4JH7&fY^f9UCiQPHjiPCU8)VXFZA%bPSCVS}P%os2W1dO!b}UwN4zf!*=u z)6C>lEc_?<zmCam4i@h&$;;iMql!#xiTH>}RoQSD5;k0?Ie@woP8n=N+?6Os*H4;O zgepJ&X8=jiX3SY8m&qU788EHr+>rTe)}jih=esq>V?)GrLu6I;&@`l%>Q5moubd`U z6SaWDU;hoSrLm9k@A+qKEQS^5&4r$7SZo-5$lvw;^r#Nm{9nGhdSr&^v#3)QE++2} zy2re93!G^=sB|AYQIzJTiqqwAd5;$2$T4$~F)bufuGy}(I<7Z`$w`rys`<!;cRk_M zHw928XQwPPOHWj6R!%k^RMW549!Euh!pY$LdTC?~ssDCe$HL6SRx-i9_!FPs`^|^o z`mFxs3Rg?byLOrOcJWt-GF6t`@gv4SSSI8CE)Iah*--;+i8o&<ieY|WlB#5NKBlvS zR8DheX^GVQ?TmB>?gc(rT3q~lkO;c8QB~eyZq>ona7Pd}8;^_QEF4_<gE<`P2M_rV zgZSQa%4+xt<^Bxslt9)6qb4hz#RhP5Q9h*GZneHXH?iWJ((bf=s^s#rJ=TI4j0|TN z0y8z1RSKWKBEJ@o&f&J3YX0-=r(5ejR!S{{Y0X85u0OaJ8D}M`5<XJL=X7MdailJ4 zr<DNFjOF2V5pp#(1P*=PU98K9$~<N+;;lCISRn8TpUrWjGC8q$YW-=VE)t5tL#*hS zQPoek+5Mfq;gDR4jLH6y*N7dXhJ^2_MmGaXHjBq+ckTAsPrJ)-eq;6eux6|0G$B-3 zrCC9e!G^>PTWuPL-TMhY^$;ht{@aMp`qEiX(XVuI(c@j%U|x>1>8{&lJLM7iY!0Wf zxvA%+vlULWt$ZnE)7M6$3rGTZXML8XDeIm4ZN_!iVg#Ux4voCo(8%HW#p`Az?K+iy zwbAUgI!H#XI*rS$PktV=hS#2>s4-rqopWaf4=Pj*p2IyPWN~_$Ire5F3Ec(*!<w-9 ztACYb=>1Q>{qqxCWi_?1Dm@hqIyq0zu?lsebX>V!b<6U*1exZf<TC>%7iXPK9pj0K zzqz}C0Nx19WuLHx&-+V*pVkCaloQky+DHq?DvIe#Ds8UDxhe|lQl`o2zS+(r-bQrp z8>FVfMU<=Cjc>)zBS=w~i=L9Yd+&c$P*ueLePDiZt}XowTr6C&1lE~{pOazy&m;W% zDB!lLOGG3uN6!f7Qaiio?tVLt7+u1MPda~cVi8rDWI&14Q+ngb!PP}<Jq<d!>xArW zk7wC{#;&qpJ36Z0M(_4`H!!+TEO{b|t^9=`XR1iGeMP&w*@ddomh8R(uN<D2Z__(p zDf09?xgtIX77n_wxQMFbLc<6Y=Vz*Ms?ze`xTkz>Fj5s%)mG9ETADv>Y_B$kSTm&< z0&EEd_sqGQ@|mbtHqMT1a6&q+;M|gLl5X@M$&yqSoTM6o*pFrG<7!~Qw4#|-RHFx# zw+ha(=`z87U#}(z4*&^ZU<s#xPYMo&3+fUQ-~hzLU=Scm78kXGQz2F2JPaN+wl~*l z^XlQk1p5EW3M(Gr^qz<*s?kosB_yKm{X#P~LfcDF+Cx)raE!!D6ICD=1Z6nZK~PO= zY#-m-2o5eBEp7eruunsi1xt^743kTp50&*(Ln$doTSfTSr6Kg$K^$%FgSU{6s)?bg zsgxMK1Q8iYsiOy2x4)QO<>-u*lyppZl=So@b$Kz1Ccdk#jfI|&g9$;jOfYuf90Ee& zHOS46nFF>Za!LxZp&<$J5sAS<l|__dRVQ=5F9a&4`$q@gjt<#bR>Ai81!AYH0kns% zy0QqA=5j2qk~ja_8!1D!YFb)8Hq=U9^6S?L=?Us`%Wtf^VBr-<^LV9c7RQhw2m9<- z8Ny_Jnmhembf!Kga;~Odb-cfNds`c68EM&?5Cn}K=1l_!ve#c)R@T_uyuGX}2N>gj zL#^ZFpSlty`)qYO`w;B?H=R=lAcu&FEyU%0KJe#7{6c(;1yzFm{Yro=?H^#Zw8Hyq z|3AlD{YOBf`F4s#RBdDYm<$BuUL%UJ=;%?TvMAaZPVnCA;P|VlQyT3w(<U3N;II`* zf^ef{9Mj!U$q{>&I!!V}>~<&`=`KyLg>Bk|pOY+DQuXc>9AsXuNe-k<yC~|!_Z?MN zr$e~<BYN%uix|cArJsXRTo0_F0YYRnRHcqC(LOILB5K3ZK%bT7J9ckSM15CrXhDgY zx1wSb^79c#>WL*uXJuYqDgb(!kn@Z=%qzHwUb7Al^D{GZMMr<-)d2u(cm@FS<A>$) zkAD?6N-@V{YTY-=Xtv97N=LkJK4M$j7{h9LeE%BT_}e~%&*B<&YdPIruyFW@V3vFp z?Tv@V*oUXL*T{jDMH(PVo0>itIC5D%8+tPrc4$Y8?x6U1H=sh1MeOEbfbur9u&Bz= zJ|pFGL+6l2#V{CDNDl#kV`b&YI?^v6I5_-Aix{AdKVe&1S^WL`Xj<I;o1wM6JSe3Y z8$*X}fxv`N1B|KD7XzOlD>@Nea*_cKKpgQ2NC5yAV5S$fzPKa*q5w$x>O*rIjPx|k z&=RAMTjM|QwvSJ*f`Z1uuZ#!D8C{{R;@d#4{{7@8Fw&J(YHr#Jg!jyFc<lFMi=mVh z;$B!Fu~kZ=8hx=+8!V@feaPH!{NE?`K|%8yNXpPU*2cO&%xbC)E6FYjMW8LH05!!( zEFT!S^0+iWQFB6ua#L_0g?JFz2dca^nL>Z!;nU^x>)BW0wf*nY|M)HLk3jJA=PFQv zS5)xC?Z#^5f(e3gE$)~Df&gOv9C72_9At+NZb!@{E&ZXKYJFf9R4uR2<q~E+0*-@* z%;@ovf}L&Wvi|@6Du+R7X)Y8*A+PV*_wzs*6DS4MW<UFFVeR#yEd~<O0(450M7reU zTVP-S1(iKI0)8oY29FdA@@YJx*|gXfSc{7Qb!RdBpYZYr0PiYm5V7kUCN?&VK3j5A z)2#T{J=Yc$1g4h<0o7=qu{<#6%+I%c$spE@h_v$dPGDot`k*2g35vXVlhFSd{MPG+ z`6^A<n?}`rM}iFV0cR`uB;}(1OPUfJth5^HT39e!2f^auq}^Vb!~ujlfa$u!B1(4@ zSBJ82uJf^8N5;-nR1_E|D%S5GedN{_R&BkrWfe`#&X?v^c-hIC5#ofYH5r(}!nl#^ zqaSqn_<|t+)r0Uq1)RobIE3zQy$nv9uac6H5#y{JS5O^ldevgxhP7@0gpZD4-Po83 zq<<_d(i(J~5r?t?hLh6_Ubi%o%JZ<HNKgun(x9PoLR+|0{e8ssrKPxx8&8a&;6Dg% zoj)GXSCy;yd*<$F<`2EV>j*iAYZkr_gPwwK>2Yb^d11LVCC-3^%)BO`#E@IM`fKdQ z*`m?;Bw5ac4NO@`WFigNRiOd>1GSs|3Mr+r$>qwxB0E%=z>_=}xI;xk08k?(mt}ho z{>z>-<Rxb~<I?go%=D8y<P}F&#~g{snw3q00KhOD90zcm!a|Cd7k}0UP-)`g{-~>K zGc|oPm)^}Yg_nSIVecOi(cd1}7AR`QJZc&Kzg)I@?GuaxSOA<sKh#4B0002oEA6PZ z3~om+0x$+Ir*XwSiAljEwy+rb+WAy!QdVOI0aeWFu?H!cTWP+|jT2Iz@MoS<&mV1N z1pK4#2>>JiJbnG>0<cHjK}M=lXNMRMAb<hU3+QM#N&}1xtZP1k5g^zY8e-owk!cMN z=bh>YNS{x!?mj+l<YIW(w10nFSfMDxQC&1WUi$-VCU;OYKyCkjKOa5(RffL49s!a@ zL9v-Kbv7KB0BcW($uDcG4)v|9jBE>}Ne|r*70D<%G$kr0#Wcf9mtUIRNU8{W)Yw?} z1GlXQ@7a9R{{_oypfSoT@cM;;6}&!U2vc`TdT^I20E#ZQDtFj7@9*zUfwqm6%7BAY z#K7>AhUO0VB<VN$#(n~I#?J+3N9XYIQK~-UkbqqRBl|+|Fa6iz6gAn?eM@-%^IUSA zZ{y=`l#pQ{0N$AJ{4ap1gcsdOyC$SCV0RZ51a>v2IN2*ShlI?>{NX7tm#%}QV$fj_ z;O7Tkyr|}?oZ2wliXiY;I^Ou#8<d1ecx!4Bd^CM7Fn7F6WDCmI29hh(81?HchsIS$ z<ljt=erqYu7&t=a%v<L>ae<-0Xvh5z6e$t|M~6wt*R`_eQX7*J8JLN<(xjx<7IDSl z4+jVfz+Mt7D!zm8`}*pgE>)+D-@Hs=LIn}vWmsA6g>9g+Es$R;exasD6)6YQ9@_$K z)tC}7fLg&f65n!|vPeFSC1kFg*Y7W`-m7<Guc0FZKz=`p9jpWn0u9`chkn{a$KL~s z0bI7m`A(BxUl&FT`++mJcPX)^1pyGf8f9f`Jxrg%!$+;n4Z?eBc=`A^Z8iX|u{i}3 z@W;4ZA>g9v4VS9N?EMHzb#?Og3YNyCXc-f&-Y`u5V$<L10Dut5-F|m&F(E<=Ggg1O z*W1R#>+e;Qf1G`{;6s}=1$V~CFId;}wGOWtekch^Gx$1!@Bg%xfg;?`RV}ZybZwjQ zv93F;lP*3_lZMj27%JWuds3frq;z3HILQK=aERXEBltc&QXC67D#x{?>;)HlqyHnS z5SK7xP5UxR$M6o#B-pev*m%z8`8ADO6~@nv1SOh0w*hig&hT1HWiBi)dpfV~LFo@C zi^tqVSm7&C_&^@JgU?^z72z$E1Rlizv_2W46$XZyW57%7d!nBd$I25j0~aC~L2oF< z|9o*jlLC=_S_+FW*VlqAEVvQ_JYjNzQ@B8Z^A&p&e#;7cZnA1If<z(s+bn>G(sFCZ z(DCoq@r@Si_!7-T7(a-Dl4|k&0$|0^;SNzl>kGYsr1aFuX332FuVLaIvpK!g>S2rs z^RM0Ac_@yKD{WRYGVoRpz07R}_h>2HEPKYN2{Zbg^+pFYr43dyTO*;v27l3$)n2bo zFYM_eDV0<dMfg#tZS}0XLHr?*y#B7i;Re6bs#kfu4E~r#6_og)BP6Z0l<fmeg+3lf zEV4`fr71J8UQn`?jhEe{*<*sEzHD(MCI=1%DGUiD%|Hb0zc@UjfQZv|l_)MN1^4>o z<OMO8S8llxqlW}Og1#6e9taegaSniXJN!_QQh68-0IlZZZ0YagPq?|MO}V=9FJbau z(_-M@*!A$h`0^Q&!Ou?$RUIa{$6+3`c4CpO=>#w1MX&ckoE5~N6+~P``PgcyI`PWB z)$tEhr>OB2GJUI;r`w+;+4}xV6jBdiMKwJX>l)35bAVDFVq9I}fej~&0L)z(7td;X zJ_i=;RF=r){F!U2*q7;fbqF88%KG9WeiC=_VI(~96m<@maQt&g)^3p^h0&U8^%K!B z*1*GkWp_V=jmyp7Fv<c#1nXInhXL$5$C4pHv{W9FO__tvtz)wLD1YQ=PLAXHT?oSS zj0p{J<{%~};h@g0F*MX=LmbQu@5tE5p9aavqVc(K=`QMwM^5l?5B3iumfvgrsUZ3R zZ<T?Hu-L59@}fWtG(rr%yAp@sO}is1k|Q)HIO$Nt&p*3;ylixRpd>(CI=#W8qjLK0 zg-vaDe={5BIs#@Fx1aG?zIfwCZjX|5GdDUD_Pqh&XoP}nfcP<_sN?=Th)=rw#DJO^ z8v))*+uieJkQ(HNI7JREx~DsIZ}u%7hwAcD16SvGI+U@p6FcIcy(>$O&pccP0Kxik zYu!RVvke$~de%kCMBRyC0l1$m;<3w}AW}Vx8c@%AccNWg)1-3+yc6poZ^JNw@B`B% zey{VILUS1keJd`1OC-m7CjavQ&@pmy_7&XWg8~rnaA{9?0KM01b@%A)4G1>b?ivY+ zRCm0JROBg3Ys=zs+iJ6F`SuHg{Z_$g`Me7TJ4uy&rz|s&<;pv^4uZFlNs&x?X8JR~ z5k%+7&KZT}UHlHLn9FT68pT(9HurFqmaw;nUw{c<BrObKvy*cGxO_JE6iT=TFN%h| zZFYC9*=aL@?DC2?=KiBUqU=B5#7Cw`6t4_7$jF`;b!G9FTSIIWiB1ay+(8&5u05R; z?%3FR9}Sp9>Tb^NUyc59`ttdN<245w3JA~WNtQ-u1w?jLg$4yh)W<02rNx$?jGqDF z2MMn-uYc>#Rh_@kB!U8qBb;7$vu3M1EcQWxc&wC^Y*<z^Qt%@GT}cjy?MAETRJ&@$ za;0X6?Lqlst<y^|EMlSZb*O9xkLwvWE)K2bohjzCBnT4%A@8@rQN_!sF|_aZVdBHL zfV+x*&&5*px_`QEM~wT~RsnP)eoiK+i}hKS!Smo)&kr4xEc!wx2)gXcdyz21qo}lo zi_H!!f*d*$-O}&)PJlV~e{YD$@!82E`0|QVaB!ulZ1*5B843vdBrP-Gg~DGNSfC^% zsR$O-@!PBIW`KnPys*E2Qi*)0L8So#Iht-o1xhyIrMc-L7DlpcNkc7U)C8c-QF4g; zO?Nl7?gpC^u>Fn>CssV8-_LRBpL7Ib(A$oPXLW*uA7Fp}^4Rr!BPBHx??@)t%Vd7J zBNmw&$AD(%-?z?K3NWKt9nSHV&3^9}Bhh%V-l&ECd1J@If=rY00?~jWD=U7t=b!Y^ z9}p<VvH}15Qu%8NgwbevU4?{-GOQ}IV=^LG9Imx3K@;jx<GnQGM;3n)*XPzsXNG}R zzV~4LxD|j!FfnoQ?Uv$Rt7h^a1S3N%F_nPC>V@LMp><*R0;F0%?er4+HzNQZD)bZj zl>q}y)%kkM_5*Ap2nk?#&}Z3mF9>kk6gAcH<e16BruM<LPOrnVfanA+Hpb2=6x83a zuU||-6BS#S#AqiDqe89W5g79Km^9F-jI2#7!eJ|%o8^UT<N>Np-<QGf0KAF#`ga6y zqEM`mtodJg#rUNJF#p5kA?BaCatWug4@9*OOiU^OTj>V$g~Q_ffRHO0W1(jX_T9!{ zbeh4<F+xeTNnNQi8COIQ68MT&?Ch}O(==(2;p!G6CwkxzR6OUiK!}f_{1I$Xa4^fv zYO+~Pr@?~AX=_?_J6z|@CWU{03gr<Dd?<yY$e~2u?4kru=_+rh_$$_j5!g0hE4S|N zZ}=7%0vOsMM*svKU^c%A`0Zu}qAt*dFXI1&cLA>oZMQ$J_b;6t1iysQEoy+&xw;q_ zPw|hyYq>~}B70a_`u7-~&YP^Ec9L68^^g;O(iHEP_tvZY<fKwsZ3_bBemAKPWVMQ0 z;&YRbc<Q=SLb8j5gdZ*Cy=%OTM7C@GIp{0EYa2+P0qL-1;dA|dBLZ`1IZ|OkLt=*2 z2j0fv>hQ?c3xfGQ)o$m&it`V??jSZYDrOyEFI(HMx&Q;>FAZFJ!6neXZ|ua(VxsN1 zW{2qI<yLJTPb3)>4AfQfIsBU)Zk!yf5@zzUGd_=N5u`-<WKB?^;*O7rfeAEhJVyJa zqd&eltJr{x2x;CnCDR9qu$_L!N5Y_xONW>xu|&Fqi@hXyY!4r>gPVLB?Uf8S!~PHz z89ZFz{zlD#>Vs|zc(dAr&%6Ahs;Y|fh=J(L!Tal4+vWSfuj_56<?DB?!kBYC_>jP> zlk}CdxppXuzoJABl_CK{X!1zt7^-cpgS>N2!25>OLT0RAULs*(8<2~uj;Ux+b`}yM z&zQns)P4$wcy0m*N09OM&Q2@K0oZ^}{P<HXRE*JprbVDLd61@{su??_qr*?mB*<Pn z9e*vjT)pWDDEb=IKi%BK3cMHAJy>7C_f*!~4h&D3`^{u4R7gDE{V~+up8av-LG&gE zBqzUT^T5x}wz?!P^!U~k*ANL=f``ydjxdw~k9Ss6IuP)R)#J3<XH5en*mqt>1a|na z-m;E32E-#qJ@MC)xgS8ff|7GTmwY;Ak(NjydoG7r`pG9WRjpD-S4$JV$M8R~Ygd4p zsR~l~yWPECz5B1v+rKFJQ-#&Cf)1=aFy<dBmG&%X2eKqYe|o>Oz&7r`zSqiz&~d7V zX-7PvP>Y$<0W%0amE8GNoa3S9=3RrI`AiZCZ>>|bX4X+roq*gEP@qnEVDn#@Jy=19 z0wQm3Z~olCh<bwYak@4TSSSUdZVLoJZoJYvbTAJNo=96+JO}*kYu!%wH#n>%@;S^l zPf=aZNGsf5;3Wk>Ria6W&d&va9Lw@H-Qrso5C!mfnT4w7Zk-v7LUU_J2P9(h#MP>` zs!Href5F2`)3}{)IbGGTDx}%FyZ<tkC5tn46kBqYQvhWLZc8v6u8_$M;cWj>*yv)D z!z^AGPrz#6@&xUd83NM%UDmUxy4hqfU&GO)s@ft|St-U&rOiJj$%}+orF`+SdXYQM zW}An|G6!2zpw!n|$JU%6%m?0J&?YXtl6TR(n|V(H!F0cV%vWN8j>UsEit>n-n$3sX zQGE%yOg`tmjl4vxn9MfMvki8PF3OoRUZrcRV6a{28P;4e1$GIynnDHca{g;^SIYZ_ zC~$Ge_|obaOq6VkH(o)2AGX$!l0)7`f$s9eK*viA623=PR(?l1_3i3a0LFKy3AUFj z%0k^kNnofTKY*&^`**u<-!Oyv`ikipa^SJ!h5-6*7j42z>j7Mlz06CjDh1?ktMD;g zLSO3aaUu8Y;p(nkKJ^S+*2G@ZZ;W(|`0AOEr<L)4A`Nh8u3~(3HM8#r^eJE2yw?eg zW6#=WJ|Vbx2r%Zz=0!0z!dgNi43?9xq^9CLj?6t8hauYGz{URfe$HV%_uB+IYD4K~ z>`<64{1bgym!mm!2+L(%(fhj--I7G@XozffQ-6Lw4d=23!2WCE&;t0s6u3IDnz70w zzN^3(kcz=}3dx$^U+^q?>-H+>$=zN_&(1p~Cf5a{B#!HaU2y`{*jG7*!ui#e(xHQE zu>aQM`k+h-w2?tMdRq1NOBdra;Mb)WU{FXo189<)JG)Mg8!0kwUvvoZPMRvIkYRcm z!d??jy?3ZnDPJ|wmkwU*Em1;PwpRFWY<d-vFuY7Q1IH3EZ3O6R^56H$;_H@33xMcd zK|3a&%@jXZHqyC?m53*L3sBI4neoW#PfO_I>tc7%py0PB@jmF|u~16^3BA3$a1TmY z^vJcVvRGiTmq((l2XK%&r8MRqT*CYgn8z!*-nI?KEuv!lD&){OZ&s!yoQ&{W2rLpt zQkV!xHDV^_!2^em;oNiJ6QtX?)2XR>nxdwN6XP^ZEs-FRYC>D$a2UPAsw%aLs&%aH zXP~b39-39|nF488Z|a~3m&K_m3;j$dzgtHq&=Oe_21<*C3(IE#m2xxO)Hn?qkJo=& zpg^zW0y-4Apke}ZhO5ws@W(a>lRXS=%Dr3|C_~GbKd^`L?=kA-<EUwfA1`RnAMV94 zHAY`XCLL`)<Cj9!mh7kCl0y?S6N;j5g%p${62bWVwN3hz<GF3?HVv8~Ux^*X+$Cnl zWUQb<3!bTy42=wSx=w{*c>Rr6FRXQVzsQ~m@po6S23Nhivc}*?xalLIoE>MC82H6l zpw(W4(8I%diz09*6Jn)4zodOu2mpG|Ko1c8LvLGAzS6_?3E|TWpmEA=gK>WuH0<cM zH}LN%KC5J*tx!PMP?KGJ0~$~tQ;f2zgR_0~tSsHoDvkd%X@S9!fEp;V0StS0v*&6* z=?P;H+{row6#p@<u3iEj!HM0IhP<Nq;mRt!#EgE*vd`h!=PYe4SqKag+jun2=C;Q4 zwY{&AsfV82vETNS<n-G;-qw6rz4R|y&nz)x>50zUo$_$Q25c*(qF~y+t`F0ku%>l7 zydJwFg6!PgHF_`b)D^kq*j(Ldnb6HfHZ*uVUK;650~VFq%$$^i2s1UfTz8)`klNzO zb>>p`7L!dW#Y29d@GB{+b@)mg*2uV>QyqJXniZxj35|H*Gc%oefg=bLH*~ji3rx*S z^_?t6KG$EV+itZx%AYrvzp+AJi06_J>(u!(qNkXULwmHYc06OKVS06}^T+l0Jq|A> zrk?A1<eC{BVI;*#Es>=zqZLq9GJKW)ext0Q^2PCFuPjnsKC7eD_Mv}+v${5Bm~vQN zLoE&yXXi~r=6bqnJxm_huKYKqF4@Y{L6$FCDpQfDlA2o5zRBI<^cXoaAvt-^!m7Nm z()(qlti!U{Wgl#7E~%A?F?GGgHizHs??!Zo`Zty2rfi5ovm+G_VffDbl@X(7J)%56 z^r+7akwbgokh8)i4UrM$;4g`Q5IR4XPbmft7!guAHAK6(TUw%k(eF*|`DB0T(Wheq z5u~61%GqEl>a|iTsb??qax`XOVSz5NKMxMRqV_f7-!TC24fuV=R-@OxbTu$<KO(>} zaJvAUU!HG@6u6bB{=n1(yrHGOx{feVwRwm^{3NPiqn@5JKPyE+mj?K;3#ueJ1&4(b z5$GiPMBL!$eO_=4KQM+!z07=%>#q&a!s-v4e(xdIEHuw8cKOa3wujhv3<esUE*txZ z@}1)rO1*J7CFCuBHycfEXY~a#ZTmC?wh=R|LslbHf7%t-?hBodMKY^=-m^XdW+mff zB_QrLAVHEU8F+ZcB^`E)nRNqxh0bRp$4g;zb$B`p!M9=3X?D}t2j5&zS8}v{d43V@ zcH2z|?|H7fkc=F41VrBDD013mo0&f~$Xu~`IR7&H4eGJD&xDluFwhNsjzeB*`r~wd zU4rBOY)kemli76)39TpTrM%cZRnxFr-dDHYedN1O{o&!vXS;O%QeCWk$C96Tw2}k- zqk@lf)wlb3SyX>I5{=iNIUmg!`>%icH-<v6#8rX}C05mxsH-ihtFo81w}WPzeoHDW z!7wXKB{DHd86G(bfhYm~g@wk!$$o;Ly1bLNuZ?wfj1qQqB_X7z7X~`|-j6IW$BPw2 zK;hBOT@BRSz+8AuD<M;`vR0j9pz!ID99$)LQ6h(V{0|m90vk6i3CSs-+7|?a^squV zQ=8is0UD|DGxStUP37gF+SMP^<A2tx+%kfJ$CnEAQqRcf)P1|#F(ehIUu*tVv!2p? zw=@%VXR~?pt9I9k^95I3V}=at4km;|PSd(H>wNr{XX)MZxVybOXbPVF5sy?{_P2oZ zG^3@ht6~U=BcHTo?XN!B>*AQ4Zu94~Yw2M|{U5(aGq>xF*Be8wC1f>ME=Dj+<xnm% z4S#Srtclx{-1N6Uanm$4$7o4Z)l^jY+-g|-Ov+<jdfUwuVl;#qQ{_H`P!HlciltwF zJA%ZCmJp|yA*6n9ce{22H;r0%XYLARv~2g$ql83Y$5H%=xt5ViuixqUj3}FEwlrNX z{i(S!o857;HStrGu2MRSHhF8O5}!}&doEyPNT<>LYlprIOP-$Kpjv;W!EgwK>emqu zIp%e6@E9%XB@1b$SuEb`uh;?3S4TbZZJp=3y!^>O+c7zO<=@iP)adsdq~}G{Co^t- zUH*jUcy+i5EiYR|lTDL>$E3$+vEIdbG{c|EAmN#tIU8JCbuxXwoL_jHXqoxZ^E!Cz zRWh^r)ALYO>j%cKhi`}B%s~>952xA9W3<rV1C%XxI;(X~?>-`w+Y1p(y&!Q48XC8Q zv-6V+u}K%e1ORAcBO;`KgNcph1LPx(O<OS8fvV-@*7A}E(ZHzXn+e^)w<<DV*N@0I z?Zmi*{Hlc$Qg^s#_635Rw8yY8lZ7RY2z4VL*ffY9Dudj4O(CJO%OzloPG9bKr<M5c z)Nwswe4TlUimSjx)4E~r-;Gk>;7dJ-2!p63DD(%(a}Lr+pP#CE&r@bf&EH;<_C<9C znEVuah&w)Od?_h_k@4nFg}n0;GYQ(KNrCs`a4S)GngqOv>S)&r+z;gUww@NcOi(Fg zr8?)84-&JWqpSq%lfN79YX=Zhz741RKce0`EXya_{-(Q;P&x#pr5gkV=?3ZU?(S}B z>5}g5Mg-~ZM!LKCjo)+5`*QI&7teFg%)MvtwLUBH(wIS~>2e^aR#i5$-SO@!XbP{A zgxk~fApL%Y%9_JT-1<U<R5K1X%E{^dFXgB!&J#%G;!j?oZgFI@WI-d3KmGiA4Xc1O z0hyN0JZ)>r!7LZ*mV#HsCEe-hhc(1v^2uS*^;{*t$Md|)i*{kt^3LqLd1Xwz2C1Vt zgK-;)4sJrs<S%&D5lW*cetLVnkA`Y_KOLZ&X|u*~62AzxcVu1k%GRQNNE%-ath8fM z^s9c*y9oZNt`DoCE%p8H%yVr&s&B@jk8%t>#&}wuzWX9U#)A`V5Q}I3r}u+`oC2}~ zhKL9*=Gp|YQs9IqS#JDn_wY&Ax};bl)U%{wC%a;Yh76whq+2O5ZaVJAEs~|CDIq>I zTAeFVIz|??bN^qTw;vk8(<>?~yS)~lo^tvEnMXOL)yq+p5|=wNga<h>!A*}Fo$&vk z`&lsfu25t#y&sSpo1ZWHKe2MYR9MH)4VYl*d4w)qT(bv};a-&Dj%L-U%1nI>a-|!* z<0H(xigSr?rQSi^yIzSDnR6l<%!*yS6zg_;@jm{@o&;eBc|K4=Ck0Ncsiyq|>&r-@ zo;4(tW<*YBYi&M@mux#$>M;!tqnDZw$Vt$&Ph5^)$8zFBD!Bh9ep_h62t`;N{EPTg z@UpDuS8vDZtX@@+kMUBMQ2#Y`(%x4e`_gHd*Hy3njWu@9@k<mPjeH6ZAHsUWTjeb< zy};z=Vh-nX58MAG?eJTcyKD~x1y2x|7r#BBzNvh*-i(HJ(f%l3!{sM;MBKG&9}bn7 zwbX3Bd=SslkP=r&FJY(6TsAe%O^{x5m?H>V-K{c*CPmDhtu=S5H0*DYLav|bTlRMI z;%IaN^^HX1%hW9nv-*quWe^`@=g2fX=xG9k!E18P>sXKqiC<J{;o;6cW^%Hsp9;xy zr&>!VrY;Q-6gWh{mXYu3Eq;}PJk5@B`lc`ZBIwA~4Vx^Bj-td9vNZc!#dngv?oayJ z8g9l)a9IC3f?X#3|2Vp&bbW<kSoB%dv{UC)WmBtPn4n)T3N$tYw`e`XT?wmd>zSSw z?baVwl67K@IUZ(rxzswFd|tapJTB&p5>Du7PFI?}`x6lJcAm)!Po<PBq@JAS%>R66 zS04>Ux+6r(3SkaVyx(2SfAdFH)FviQDIMFz;Ba$4KAEW1!tiAM_~7sH`i_x}iG`l^ z)sP<%HuY<r_1yd2v+yU0Bq3j(zDkBc1y#ik`>oOXR(qGfi6jHd>1@W1uVhn1P?M`1 zy+SYAA1Ak<ju=K5wOhUZMjw?w+TZ@&Zm3lI=>9h!yJVzm{rqY6WdwUJeI{l@h0`AJ zLA<D&p76_iJ(5NR3-(lC%T<#o)z-A?9cR7OSYO-VYM_!M-TTP8VER)=>fG%;o)46J zsZRMkMbG=8Q!HFgwVSTjAE1AA${eS0$4yqe!f^i<c7+e$dM>Z9ez)lJ<YM5G5T`_n zfk9?*4`YXe_uDmnq1E-_$0tD<%?8&)J)8hlzw>6CYbm9eAv0+F@QBjb-H%xF=M2X9 zsoUe~n<A?WsO(~>*SP)$08f)8c!`caR%ETMhhB6BYdrUI)b%}8-O>X4MXpyI_`Ogv z=H(%|Ap3D+GxJ0!G4MEK?d~P~{D$ygf<#Z2+f91=r9qQJtv+>p^%<Vu3u=An&C%|I zO|L-S$1t5wv>8^WhAk$i-uU5(rE`|6H6wjTU*0!M)EXtV#5ikHsrL1nl~jY?(X)u| zdet}Ym=nwNR@0TY*kk0FW;MuZJ%#q)$mPq=^Vi(bA+euf^%30-q}`l*CIr!<Q`oF} zj`AInZ8U3~x6Z^BI|;bWE-tnXL{C2FKh)(t&MJDV-_FCXj8eyuoyieS1#e;#BttT{ zQIwh6In!@k@tL)okt!e5K1sZ;mV~vp-2AXtp=Kk^Pc=;)DWa3QZ1CXlSbgdil+LQr zotbpf*e%ywIBtz?4`#4OA9N>R9xwh2`!@FBpz#H)$rx<osH|H3(Mk4*BqkDWy`Jq6 z7bf!ub_Q{KFK3h2*})~o{hw!lFqyx{%DPz^e?MSa!X4!<*p^4!(o{}0W@<E>N$(Bs z_iOIEV90b$A3VZ^KyhYzb9=HjQG6>KPd!E==(5_RR{L8jjnn!jE_O>4op?HL=~fY> z!AKzJp4GRsneTPE1yH|+rFRUbWA$Bpv{%Vz+zVQs5uA(np5foIyt|H0YS#D)74nsu z%+f(z0f=r2f~SD!M!_1WJVa&NvjonC-Szj3uBM0nu=K4mPL49>ii3XAPcZ5ageioD z&nNGmDk?e}9-geL(-+6VQC3#v3~et$RGw8Vc6=B0K{SYoyK>nC5{@G+Emi#=B~gi# zdZ~x^DW{;eCXV4N@O&<Cx3s0xVyvsdYIf-B`lgQQs4Fbef@WoYMeKDJr%9OO^mbcq zX~-=Yj;Y7=-XUUB<ZgxPe1$vR%1j>J>_*sqlhAe32}$`s{$7!;^-3R`skUFGW2sGF zp`k@6OW0Z-EV4ETZZ+$LB7EuVNRG7FlP8M>jpqH8AEO1?Jk8Fg4ex8-w?Cq%RBbnv z#1e4#e)qO~rTX&&H71?X&yUT$2-c@U<Kl!5C2;C8b#SZD`r{3QjiuQK<sGVD?Mj-= z)=xzYyCl3~p`Yo^?YkzdhD6a$#O}Q(*WW)z>m<4vZ_rRUG>VNu5<SS+dGRuT6O^BC zHl}*3Q2e`w|97;e%6CP#B3d8s^G!DjRqgh(Dnxt*LTT&crMA1>rKJ2^b2!=bdr04I zo%>ye%Uwd%iz1A$gVG`UbhgHFb=Pk%cDgb~8eLuXEUL@xE|*>0rHw?q4(n&tUY)Pa zR<C|mkLV{4&wDurJ}10x6V%oI3|KgQci%G9Sgs0Z0+KapP1qoz|6KYiv|y@j7a1YV zy)3pllf9h`XEA*!iF8MMCtLM7Uw?-s<tQ%hT^F1J`}MWsXVN&~g4zU_@^CH_2g&ww z1o^Sfv(M96`1n8=CoT>Pv||JR%)j#Xkf4*FUY7qt;Q}N-K%`+Aw|TJ!0f%hiaaYjd z_DJmco=jwRa?u&I_^K2YCE+{B&FEiz76d5F$oObaLP)%QC0{NF&a<n&q9w!6db+E; zoMTh#?GDK28DJ}JgfzZvl~3eWhXReG3$aw1Kwhdu?<LB=3Fs<1icd)g!aym7jg|el z!dtXLGx4~XlaYEwlS=-Zd0w49kuKjPO1l(t`KZ<AwHA~W&-Lg4UuB(m0(;Zn!PNn9 zOt07J{vG#pVq^1tSAE-cX+9_EAFIZyV1FB;48Dake>(M0Q53bBbrh~v9DMps^OvA} z^Q^__&7W_1F3`O##ao4zY_?1lf5YW+4FyuZr>Mm$l9<<6Z3L2~$>O{JVt@0#g|CIz z?QWbTSe8Fe|7tHk&qU~(xu|ty<8h?lbL%y}9$vx<2XocoDA6L1`+zTrN!jw#<AN$0 zG4Ttg9;Q6vN59`UN5pKem5QkydsT*F@oA47O!xN<(t{d)kR!}L7yne~aPMZ96}#X< z8f%_&#VbP7<4y^`KKxN0+IjWXnPXU<80npuSs5K1935Qfo|#%1>Rnjs%=Sk+{p!sI z6|5|hq*?YI25#HY-<sp{TkI!+1{J2!OfD9K<*M$y-#Q;1FQh);#4coOEcL~y%?vog zW9fG7Hj2U`iu?8X9FJ`)LO~}=fcJ^#MV}-XbZE_dV!3~ZMERcD!U#+t-=#8QenG<1 zeBte~-OWV#*gAxp?eug$xc?7$$LaG)iz00hCziC^s9s8X5Hqwd;<4C~u~k`Ej!SN` zX9wXYda`4_5O1?EX8k?JJO&BWQlAn;=|15#mLHqzcIh~zap`iJ9ElUe0rKLR6sh*+ zCr;Dh=1bfzQofHI6dgqyLiU7m9uL7(XILn(X+wq8_om~axJ?W#v>p5utBBNp>sri2 zMkz7o{M`lYCbxqka3wpCLK>a(b+LAPl7LYT*qND`1Mzj>b-6C*1zN(VW~ISitXfFq zmkb_T^pNMoe=mU@XF>WS$|)sttbs{`&-7T?t<XO>7se*Qf&URb_bL@jb0HTqWvv12 zc+%}IH;+YDbKrEVL=nD0fd~ERzC&$FEpSiN(ZC@3G=0DJLx%A??lxBR-o+2#7-G5j z5TB}7#PAi-$K7e-$}awPr9Of-!rAp|=}&Be%$70XY+PCYA2fogJdHx<ULs+2Xc6Xa z<RDCt&RF1hCo@7v6>`2qm_GbN(Zl67#cQ+9HMo25YW9Ue5`DSqgEt*>0`ixr>5}lG zU5{C&d+WhLhyL!pNy-()drg_#fYsAdyhsfnnNfyQA|GBic>$H(Bs8K{&$C<y1`~W& ztB2OflG@7GwhR`>%ZnwBy^+V$lxrPc=ILoRch^4t*;@!opfgOCa49d*uPigXeQNem z(1!%&{g4knzV%8olV!&sDlf7GT?jhJWZa8Uc4Au(6usc^l=-w@JheOi@S<2a*8e^~ zoDxlZWVqe_n5qp1XSPhMvZ6R6QKN4iVO<%{jEnlG;mgA#+2)zDg)RjdH+D+TKw{7E z({;l!FSLKJp2m?5CT2VY@9EG$FGoBbfcnh0ScP<BV{^%gNaDF^y58NzyG(tCeUDRf z5pFS89&*EJvp`i@q@XT8w1bRcEL6Yt!u9#VtSnJkuB6OtJH9k>{k@3`3BKRoA=Msi z)8dz?U+4|Ic1MAT@!7(*u65r7F<{@%Ji~hr4l`i6B=+LXFY=10W_4EiX6T;fU`9ww zHM`y)(ArCR-(S1X5x|p@n_>m$7yaD)bDc)S>vRCdvq*bWEl$+38Nn057R6;&uI834 zE^Cm}OMo|&oG=%9_6Fv^rFn%CFc>vMhnK<WENT8&kuRi#Z|ds6nZI_o0IytQvAV5N zK{w>#e%u%<h?eD~aQem5K-xP!q<cX-AVd*v7?mcTt3$x!*L2vMuF#p^Gb5T9q{}Y` zf}Xb{3r;Bvc2wS4mXYO0=)J#Pj#`(mh}`h)^{p$?c=Y;jk~gjuyrRzQJ6mn!*Svd^ zGF&&~g;A^LxSQ<X<nIo1`|L}m2cKLjgnTQVaw{>}CeUqieu4;MnH&$U+DU=MoD#jw zb0o<o!cU%^?~|{)5N?Iv#T`y(H(mHk&>~HjtdKEc{n}==Kh_9VwC^7q4ZKmooFlb< zypLu|DthySL>3=bOc;48$ei#Z$Mi0n2+iA)mq`d{`1?m+M7V2%8O@%Mn=R4e2dNB< zc7ENdXX)H;-6evv?mGmWKuoVe^}Hih{Aj#4a{U-_4$5lVT@pK7FcT6!#M_7n3r$UZ zz+C<?fW7~L(gepBTNfxP3so!q6%>%v=ovYL?CuME$yf`kT(Sfd3uVPvQRFO-Gu&@a zD4Lr(bvnJfb1;Q3G$-uB4Em!J)t`ONc6G+Byj@|u_m-P$w@c5IzDUP2cZ=seT`eG2 zO<mp7i6c}y*phjd?~IDDV*N6jIddFJI_9)q#cDLz{rVYYY<M(_%Pvj{ULQ*#wIjrd zM7+Jub#OAbhL+qnRF0Ca5Wyo-DigENdSBAF0P18lIS2_!!rT<gc)tecjE$B<d|9~( zDf`{L+s)H^HhCe^@MKvq7yUVkoE&x}^d9G0!0S<>gUw*4>>V=>EO|CjabAIJR!W)< z%$oZA4<H5g+t7f9gG5C6LMDngSE<fscHK=ehcm-gcRExoASV|etJ*?W=>50B`K$Ry zd=BMiI|~yT{AruLE9H=wwOK?YWaJA6-uvH7S{~?x)wVG<?x>11xypEN`gkohS#8eH zy<9SrK02Y<+d8qTBn$dn#pLvgU6TlSZ!fR?C0@!w7fOFD&A6nB&S2JC`{Fi&$9Qs5 zp;8bNL$cgz-yPX)U~==WZGP`qPZ_z^fT>J}%WQd>h#J7J_*q%JZw9)g#Kct9US9m~ zYadac>?WeI1&SSMbrRlfls&HR#XxsH>P@43!G`awLWsaKRz-WRG3q_&Xoq(q;92{~ z+`iyk+UjUZ9dyx4fy~kkRl6C(KnHib&*?rm8j$?vSy&kQiH|XZo8M^iXoEs5M$KhQ z$sysVt4AIk?;PX2*RL8mr7y`aaKVjFtEjAnM6oUmhL~!w>x9+Xv+<(n1ZOKTotnyS z`$xyyC)T%%N2|vkc-xuA$*SGIaDT$kr*i3?-S$#5EZq*dso}|z0IQ(bVk&%N1-F}c zMUCIx!a&%SyOaG(wjMJ4@O^37TYN4`|GwZReud^1$K8oFrhz8+$4B^}HV)2qhn?gU zMdR{k$+0fFfICELTS%W5L00CjT|jvJv+zM3sBZsuVC4A&XlZb2-VwAU!0Q6}7y!o1 zpY;7DfP{0BCOWTngu6VrPOG}ijO2Uz=7*>ur*OYDuBW@%>25W+aq)xDFKILnSW{)P zKIUc0EW7hKZ!#6xSelRSAk7n6TMCD_#g!zML#I*0MDQ_F=6XG%wYy)})H~?fxslHA zE!1)nZf+lRQ>>Kxep~<GD2j!z$sg+RO2BDFMwNA+Tl1&oQvlpQz#8~HNJTfJ?`eYH zYV#Xat8wHutJJBm$o_;5M2773j^RV01eXFY-N%ddult2|)+gF$3hasA_kW!HO}y`M zB3YVRz~kyw+_Oq^Ip46@yGKSYvfbW8ghAnTIfiu(mz2Vu!~6c3QhNdRePfm5-B~Q~ z+fGh+eKxt=Xv@KjMKF7#jBuvQl7jgW@yv1I0w=LP%2FUp!eHtfl+YX9u=qk5>OzxV zdF6Ukj~gOi^Tn2!!F$vrf+&C`=xu~YVK-_%Nqsbteu|xR-Y2)1G<>^Mq`Af-PS~D< zd_V8U;y7}@qiIPFiQUn3<T!ey^D))4-e8I$Jxhh?={nhnRaAjS(x>?bX2yv1FoHtb zd$q2rx%;NCx2oQufjA3Loe4`V!)KrBAmG?`)8er@OnQEtE;?D}b*@PhckaaOTI)$0 zt9e;}$vw^jw%2_>ZBb73V1^|R&z-xEZzOd159fDc46m6=5%EmkLUUd%%iOPKhUKZV zt(qJmj!>s@juu8Pay}-!FTvH%y*R9s7cn7nO{JqPjO`K%Cf;N=<JdKkIbP5^REwZ* z2%UQpEA)BYOErU@=wd@RI6YO-jvh6YAiGsR-nnTO3_JCaU(Df2AStk^q&Th4f6zFz zK7~z|*l#cQWrTy%H|$x-S`%!kxt}Lakl|1B=;#uR6=f{Ps?jjM=zr(~0v-fFsxL1S zeuHBLiStuo1@nH+u#An3aAjrFm!|4h*bpZaN)iVepr-0Hn@81z1JomnDWV&^S8o9W z8yxnt`iciBya%D?@_SiGXNIGzi}wYd=p_82%SSHe58|5<?Z~Em<w*=0jlHGOjKt)K zoQSIEI`hrey`mGZ&?wK3KIrZB^)8}ADcK)PhgJs@)7|E&ZiIwJ(Ft=xNB*7)-Z`}1 z9Gf3%(0|Zu^`?M8XL-0ieoaX)wsj+5{<gp+9F+H4)|-^sH@~o~<db{UVQ%KsfFwZa z9ZuBl-koEczYASM7lJCP1;Saj7)S<+G5F#}md2{czQiqGQAdtULm++h+gQTFe9iil zXB^Cn&o|lO`gb;}wPx;QfbDQJQNw<h$t;j^JFl^fi}mC1khq5Y`A*c*?@=v~wb~N} zzc{AVlgBC<R;L?iL+`0)Ct(jf{^d-XZO(g@l7&obTwaeGigcA#q@Ai%aH^-N3-0}4 zspKcX8h7E(mob{b?Q*rfpqO0o>U<O2k!T~N<exZGitRHP(ueaM8^s^D`hL(?*a_#C zvpY{o4H91ETC2A#n&VdH(Ju?mF|8J}vz|dFKE}#AbsFE7GdD|~yb3PHuGORS-d<|P zbS{_sCx+(7mIm#d>K))^Z!g76B=7JVs&c!znodcBl$W-Pmzdn_O)uXjS#GwyU#zZG zjm~N>vo?+Wk+FMh>?OG*vBuq8tgczqYd|zY%~4%1{4NcC7Zzl;;hb^3B@TZ0W509q zVMg=r1or|l#?V_v-Lfj=Z~ahmOlGUy%fU5vq3oK9`_=TvikfH{&2qVKKT-%!c5_Q8 zUG5i0;_+;>o4gO7>RUMtXSBKCbC*SDV9h3yBpOdkR+Or<?Nj~y?pkqYmEZgnyEmm7 zSZQ;<oc={%!lcFPa6cP#NDDWnMRza{fumy&G4;yFe0J~u<3~D(1n~vv{aJ;<IY5y1 zB>@z7=qE*BajGr{%NZ7h<7QMLA}D*{4;|6~>~j?TW~&WQiJHD00|G@*Avd~@@Z6QA z3#~Hwkd{K=D6rV~zpzyRJTL*L4Lb|FSTpjsKtH<dk6dflr|7uO()<CxY-*~^EH_1m z_9hG-ul6+*B`E{%g>)g*f3P^wew(*#Yg!DFRLxG!i7o!xvx{H;hL*N8lg|i=upVfF zPz`tIDl|H+pZmK5LPC>SpWS|B6G;+0HbMq)zjeDgo7f^jKtYvy364sG_}Y`V^<|_w zv1>M@;D+R`8N34^$uNH^iotF0R_niyM3LPru_(HlOX4sY)%LXu78pyD<uc6Tb4rDw z{KpIf(kGAMu2)}#6VpMDq53&;@mKXXQ}Mlj8>QwJoQL=rvzi7+9=~5UG*}OQ6(Tu< zq%ybvo+div-KZ`q^BI*~9}<z$oyM!(DhsORcRap8wjXB)q-SPdGb|rujH3k5Q>;3X zaYvr=Rbr^`oKdEcW+VKyq3X|?bC2?j&{&d-2oSu?g2dl*Q~}8ufcvei>;Vf@#!;O2 zbHJ8{^VbRjCsW`W4N)98ll17YlWjobt=0KhCY>iEGd4CU)^B!mh?XX&{!VwZm#P1c za%tG$-p#Rwl)uY9i|M#-R0xk8<crD>T`8kh`zjE&FlvFrW9jq-`fZ(haaCD?Lo%Zv z8VTB3SX3DmlOEe8v%}62U_+YhCWrfVPxgPp!e4HG`swS}_P#S!Rscu!@p+7*4<@uW zB;gmjZ0$w3XcX~OYN-450cwVe^QAuz`hX<IM^+nDl)cr?$aE+~c?o@8h|w@viDa1I zkVSWW-69Lakrd8KQ0)$yEo}1W9*Sg*eXn?Dt5xm?8Dx(X6`9Fx;e7bvsdkqMgkk(U ziP9QER@(#phrYz#!Ioc&AcpbY+hASw!0C-Omi)pCl~yJD(RM_2*o;&DeFQPh$9(a? z7MrDQsANYH{?>Bj^GLT?T4glb`I;uvAHFWU2EfUMa||Tx>DY~UgwjerC~u<Dn~Gp? z>hN7Nt{hZ@LgS9OzzxU7A~JBuUl8TH(<Eny(wXN7>#o*p!{3jG76D#QTietezrvb0 zB00!x|9Sb1oZ$GjboL`o)@x)WiC%$`CeN)dh?^qtV&M7y3wtDm7w_f{21A}E8_BcM zYQ72armw${xw&l-uHa`8n=|y=H(x`OpsQU~8qioxFwF>Wi0)E;8FP-S38LVS1O410 z99-I*CBFlVE;;arBa|Kdc}E`Df1T#Cfk9wj9@}J-DF9jSr?+sCNHhDrY4JWHITrrQ z;oIPz$rAZIF?3?Srm}D(K{<sCv5+NRx2}ytPRq{%;|zI}n4AFx(piu=PXWD{%$7^l zr6!fDVINZBw7iNg;qc$7wMlC<I3G-l+Xwq~V+w2Vx|~9uAd#kp%gTT%luAraOP1hq zii@16Z(@rKb3%&ayp{OPJ8`N|uJC`nB)DK3b={6mX{*^cHl2ChvrelX9%+}|>}!iA zVWNvivJqCJ8cgNKhtEDOw-u=h)SGn^CdH$+>a!bd`Hdv@^s|MK!96{+Hm9G7tW<%s z0*o96=Y*;h)fPs3$SFTo`@Vkch_&nfD+qx?BY}l<y7d<i#iL;4NB27EF8f4&X<%|y zTsRNQa<`=sn;4V{M<Io;ff>C(9`|)u?ib1R?*l(RpNCUvz(c_uh<hM#Kn3)6J8IXt zBBo+@GKn;a^Rc*wACL;dv!m)~jNN3kQu^tEI}l+vfi7u!oK8pZGw>H+=Nw@GWZ}kp zs<cL{M;TX~dFX3gZ7dT@Ux7=Q+(q|A04C2Fl|&|Rd{Z+o#{-jq=y6cDFNKSz_2`%7 z<Chuoxi7mSch>vmFK3VRlOLh^r!U83e9Fo`Uxo0*d>NbDQXjNlUnoQ)>5D0o1gHv( zv9t*f=X!N>)6`@tU|Q%ksueyL{3KmNodDh#eep>hlYcte|GW!9*O>nZag&1|4{{3P zfmateXMyoMBz5#mN%<GCp%qb5ng$t$u2L5)v<QKovf9tiv;Ep#y+S0j(~H2|y0SJB zI20H<HCfrthD<-_hr196;cc9x>U*fFw(cKr1bF39BLl<ln01A2Pxz4}X!XQ|zH$Xk zT7xaSDj==q=;`?sjPe$#(A8X@ij=_;nNEY8zQ1ZCWx;KrhST$+PL_oHY;P4Behm_Z zUI2gdng(Jb<I&#q+)VBL^+JTI+n2w6F#fd!ZPT4TJ{BI-h9kYz!J<?U)J|+1e?)f) z@Fz=MDrJaxwOZUM1h`Q@O4+%MlrOpPIGym>j+1slV->*&$=P2>^hNgdOHae;)6iPH zJBf`*?IR|VV`XhL1s(#>HFVW~Lea8UP=D|bipU<lk5C=YT<)3t6cBQCyu?Y#_wG0> zQrZ%5gh4=n<j}z9;~zg#uaB3|iT*Qf{g0`*6CH&Rjft-G==zXU7aEAmfzNXA11zvw zf+cIkfQPrc2dt}nrM^IYB(BTM>cb#IN*X<>D5rVTi!RvZjeZKz2f@Tp_IUf68A>vj zF9~WA_Zv#6?x<%o!s$TOMCF-BpI5IKV*XEO=8rc-eGxD6#KFIVMWyYw+;5?Bj_Kwq z90JLC#2^Z6t)LBt8jd%4fIvGWYQ|!=dkcyMk3~q>><a^52Adg@qd2)d+l2SG&sShP z66Wf;($c#D#QFZmX9HYp@529-Y$kc!9KkyCSyrmI2lwJZF^_*Wt!i*My44a?DtD>W zUb}v^-jgE_-T)1CNb1i&=~&fw5)w7IoEF*0zv=y!8P}a-)Y9`fZb3bB-I&CwqZI$V zt#@`j8-;+5VDP?UTgQj@bAELSA*9j<VvxzGmg!CLUbFQx9GZ^fNzZ#bRgdeFm1=`R z@UJ@_u6lurlAiEA;{T+O(3f>WqDWEkayO4ZHFpNL<b}s+SttQmp=a6Y$q68`l5F_< z<<z@+<}~Vz*ZieJ$x7{Mp!|xTB9PUon-iH%eq>{a<rBGZ{|kt#GX)%W5{jolmP5zu zI+I>(^=EvZ4rVTT^R1ooDr}fa>!s?U!4Ygrcb+tK7${>#LSmfcI)gcDR~(o`ksbq> zTwJ;c^CCw#*uQR<ctSyDQzm=-9Ay@|C%m>8mZp3EG|**cz7?4Q9)7<lGQ&M0R21@! zcC=dTt@?-6Z10xcF0I$vb+o@2T?U!D#f3D!<_N}o=cncYu?D}Yin#Xp^eK7X))&{+ zs7Q-g{QWZn90>Sqp$K_(wi8(I+>WEL5LZ6;!3b|GIN*Wy3M49{dRyPbFMhg4ga_lZ zX_yuyRC0u{aA`jGr){N+I8MuD7!f29zo)dYZagdp3YQc9AM74zN==UUsox{Nl;)KR zI?P(mvs&C(V%Or?K7b2^5PK7bdhHz7|GEAC$wq_WL_dE{N-3`NZ;Jxnc_jr{c4ZGY z?n3};0#Q033Sr)}51b`S1&A2|DhJ4)ZPLAB2g##1#@n)fo8zFOMZ+%P(bjo~txXOD z_i{5FlW_SN!kUU5y^=Bx#6w;~26hQODgEg;Ux9xYp|f_RGr@yITotZFAr*E8f9;4n zf8K?{;|@pOgQrQlfx_U$NW4$K>W-h!m@?efpG@dkEJ;;a{lyaP)8(6}uaqkq|7UIb zhbCiZNA2!50~ty~f4<RvSd_5$4{o85DACp5Bp^zZ&Y!H_2nE}-tdnf=cedp+7rAk4 zWI783v_x5O5ZLPfvg9OTf>96W5|Wd<oUIr}R`_LP=TNyIbNuJa)qo8HD7j6$hliOM z%0maYb>lHXrrrF_!;-K?_)|bnFxs;nI2CbcZ}@T$(2>Dc`VU6Hgo*Fz$=6`H`UWSF z5aT<ft}i(e|Fo^SOo`AiZT63^v$HvagF&aVHvhv?Snd24A!&d$R8+*K;>KQIQvex5 z{eOQ+($hPB<y807VXLJfwWM90P7GEWl^TfPgkbTKe*lc3CB-ISAOy#hic-alk}Vey zq<HeZ`#1Ia=lmj+A#H<r3m}O~HvreSsD9$!B7n~Bhmqcw4sn(Z8tq@lR)$zRnwsD= zLI4Hee|ezbGnBp7a1my5@e3PJK+AOxPosYq(jEn!A9?cE)c9Qg@{;fs121%)HA>)m z{*MRopUDF#@E(FyNM@$l0)q<(_->RG-`B8M6!C_ulJHMEssM@e_eKuDAH_}W)~%}k z5{k^I!^JGOFa1emBQ{*b-@E9vFKw^du>m56;D5c}-=sSu{{D3mSVaUXK_S>K#BHdb zoRbqbaw;`G=j5b3JOuw(Cdn}fD7rBXW{GEM@e$A1)lE;}{jcWs-Zjw5ewV=FTTPW~ zRtim*6dtwSod>@k?s^x;8uIEZ>klbL(1;;O6HuKQr>(3AvBTy>=I<;17xeO9?wfND z$$4N;L1oX=lZ3}3f|ivk;BbL=EqDhwv5Sq1NGE%^po$1%aS;+XK!Ivy3ko`!$=3OH zvBO}lUs^+@QmxULAqQli-ob}p<I>71y^bloH8tN?pm~GJpoN+88@0=q?v2_K_cItv za1ojQ9$jg9fZJby9giO~&9%GpuN!WIhWDA_bPach!jmyUb~S7iG{neeA-tR3ev7j6 zfJzWns?lnF+;Z)5G8icKJ8$0~-3(r?JXL~(Tc0vgLsW)Lukaie_|i@m+o>7oVg`RT zlm6eQGcI_;Wod0}TwE@VU*!krCP0zBodC=q8Q=j&H<TuuT$Cn9^ST@r6?J|3ZVNsh zH1xERyw6uN<;BKR+p9Y}@=q6nUj-nd1lc(PW;5~A!a^f|@%hO)?mYdPEnKSiV9FTW zKnTqGD4iD7&U$4yT{KZ8y{)HfZ$|HJ{mD#=;!s2sOIq&9ZQJy)^bqvCf$K_>H{<$6 zPVx*#O>yj7o9m#<^CP&hWV<+Ar`C^;QUp*7V~)c5{VPF%ubR^r$&m*nd<<+lg@R4* z>z8_vrUna0BFaV{YHD=A<ZV*8mrG9m6x*1*``~0j$;!V4wj2p2z9aEl-;eH(C(w*B zVr8XfhJqhih}qpyj;1F(P>fI3qG@PhQRJjD+kFdrLr~EXBXk{_962}{Sa0XUI;Dn( zo3q#xS<;w>hZ&aJjM6|Q8iOtZpH1m*WX5YbZ@ZVX2R-Zvw_j;@exckXB!-7h90NZf z|4qF(yKFW`1b%-1Xy=~nxDF0(FQ&TqKDGXE3v22dA6Y{o06_e=@N6VVNjvUL*+exh zfrAMg%IvY8<wgpy>+ryAp+&@Llhqdv5Lb_XrluUG`cd)m!PC)!4Sr;~FkL_i&}1ed zB%T2`!nd`?b8O5hn(}EK@Shb}-6Os{6@41K=o?VN!goGdg_h-Sdk$lQ;rN6=-%&RN zWBK*1gk!Xv{jorLUHum9#c$J+G2GC@UKu-Dv2A1DXq@jetLgp>Z*;VYqC||{aF2P< zF43Xk*lJR>F(vAtp~<av>@_i%n>_AwI2N{>v)Wxzd1HtLe_@CI(A-ovrQd&w)Bk3U ziZY&6aH~X_JIQ5Qv}Bqy*h|>X6xTcB$mIyvDrfM&?pz~#sB?nZ@h*fjS+|EiN$pY5 zFM~3)_o*e}0U&@c$4}MO)!4}i`XLp|#2t(tkQuWe@WDg_hsnh+<JVtyP*&f)gg^pL zfG)G-Ju&c}o?Ofv+KHRx?!12?ty1ispW$Q^rMq)EUBS!xVQFT?goyHZLlRh6ak3gm zRr50=@JLs7%~$Y+Pb$;2y)9Ql*@|L=Q%Xf>8LBWCO^7pl6iAv-qlR?_lbPh?6jnM6 zR6mIaxt0qa!CVqKcQn))T_SP@ob5I7Ki>3yFemtd$EX#I+hDyEo2Z(QkXmoBYt67C zCRdm$F*iAJ3Nnh48MTt=H9GWqgSV((-R~FOFO#g`WFz(1Ov?&x?x8>+-!>RilDy>$ ziq>j&hh`iPYU_f7`)B}7u)lC$1=5W9eYJJ#d%yP73;LM-E4#QJ7o84g*qura_dM;N zG@zl=p+TZu;N4F)+$`Hb46M9vH%n7c_Yj*xF8W>W;HlD-6n$dHCnVOPAyz2zJRJ4f zb8}TncNP4<G9gPxIOjW?8cbrM5>q8iz;EI|;m!bB0i59=#H$LPctq+sFSiC{*X|*Q zkL_|kih@T8gn&pWhElSdr;ObEg%*w0z{y-@rt9y8!j#c!D{gM)4K5hV{9a#;*C*9H znf+h++@)%IeEkAI@YcV~KW3{5B6r71FL3?kzW-H}#W#^QAQ<(N#CJ9Cw*s|#i{%$P zH})((Or^7n^TUa}Lc^d93Q?7KH8l{E1t+V>YTwkud6t)diQuf=?hL&W-`L;~SV%3C z0m$kUJZ)eE_a#5E3#Y2x>$gmifzctC?K<h8Vk9yD&R+|<&0IK?pOf><R6p0C&cC=^ z-677~7{9!0fHdgql9S!dc?(CaDm(ACJ&!2B4G*EU(&QE~%`TJ4@}7eX2lcB3NwAj3 zO>P*nYvKsDyjj^XuZv_ogbDbrqj+zLF`9%s9tlBQU=xaSPph1Ya_^>Ymf63i6?kh4 z_`I+)s(ZoYXJ`NErH~Q(tqhhvP`gJW0k{BQsMyy4u{;{nFf_<<oj)otLJ>k>2>1YO z?cm#nK|yyS4vQ%-D-#Vq&G4wPwC|3}6p%MrzB~Vvvq8@x1bds4gf^cI4Ua1EKKV|h znJG_b`Yopb8#&g2ubcbRw3^}2yEFkYMI>Ea62WV{#Savv_?Xxt6nIbL-=5rSSUVue zKzE#k-@UB1l$T9GZRy`#py=t+rqki8U=g@rfmj^O*ks}Zut%cPk}JEh4VX7KW{7^i z&4|qy!wmiTM6<n}IKD{6DVwF;?$Mih+DWp$cZ9@{?FLbGu@U~lXRq|R>`Cu0P7-7Y z%3BsnZvM2Pzy6r$k7GJbDDaE(ytxYyRj;K*SFsdgsBd|Gwq#Oi#|7?a%ZU&DS*md& zII44Sd~Y3!5NL|4zjTxFp*Y3%1~f}*cM<W^*ezuEGd`Fj<3|$<BH}zjiA=mF<QL`B zs&y6tX^M5<6IFi}<RqpjBJj=RnT(xdQ%$omy9#5fM;g9_ucuF$j7A8E7HNXw6J$ty zdu9GctG9*>(*p!=)W2!6q27PdkdDHQMj{1WKG(rf4#JY0Fog32;WSjx?Sf7A!NGUD zMioDFXa}Ip+?vJX)?2YiLh0o>osOE=I-O$FI*{GsyuZj^m<_`)B4!PNKFE6ulm>k~ zkD?EK;_+SUGBQJ=PI8=RFHZ#1AIbc3Vh0WEgFLYWfn_wRN^hj)+M1ZSD!v!5hU;I| z;3sNcgfeIWmb%FAXrjC=MO}@=$bCwRLSNiNiZy7+FhbC3J<;wst1}tXE>?3ZDji4x zJ;C*}7SY*%S3vxl!9k27=;SxJI5C!9J$J?!#|ylz-I*FLC*lvxgaY=2aEe-5$1x%y ztxl(C9?@A`zsOG`Ap}7ZlGnv{@qp^*BVM~RJpF7-BF*tPeM`Q6rev&@UadFKU|+E! zR>GP>a;srPWWeOo%~=aeGpz|>#y0wm{pE}jH<Th*4W*#}KT^Xz7v#com2{wB4Fa6Z z_xO4!rSVxTYGqpmRR=lwngB6S2<P^gCxrNo;n{MXl3}2r05m}*R6s{g?DS@me4eOI zvwL1nY&1&Jcu~`61}}p~H5Q5@oLFeO^~B^;$MXY&Mh8?w-ez2@<9?0qgnreMd<NWP zrnm6BLs{ueb~oN}Zkkk#`88r~?ar4Mc%Hmb3g~$?^)DHGMiRgktP09Jv#A27L(a0b zDl=dh4hTUB;<=IOBYKER<ACN1{M;A%nW5%~7Z-DryKC=M`I7V3Rl8&;xTeVxp2g7E zJP7=C7V!`mYl?_(3U#&{n_w*ZzOdjDCNRIlySJa1-=m+pP!cM@Fr`yBHnW2)o^CTX z&un*3LS|(k^ed;)`9gp&h3@N!h6@-R-thW%&kv_-DmbZ6)BYwr3X7HuRz-h#LXOu& z!%0p+>#a9FR?qC)|NrWB$IZ*M9>;Oh;rSowCg6NKh`!i{@dvm#kUC7az(475c`ifG zSS)Ih<oi*;_74;^G-H#e|9f$O9+8%mjfs{FkCtVmEfvLvF_n%;wjouzyS^3CJ!GY{ zTwd;}AqhcE<FVqggb&2HIbrI2CaVa@-sIk|)BVcB56v7J@WC!k1PwO$^VPvjD;PR_ z$;X*ddMKJO07+}~Mh>?}3l8gDpDKt2Y~>wx$4*xYWhLCBi;O}Q#B~RTKL9lv_GAw( zG&EEIxYmAcI3w%wt=LNpLgmgEx<fSF!Rfv!nXy0wq(wM<V!@9x)NriaAK%x8Uyb^! zPDBO*WlvGIxN(hz?%6Ms7+Hys=if5v!n^M9%-LZ?utxQ>+;6{&T^rlODyie1XWYwa zpf~7fEQJ3i`9D~U>{ihkRk5%aKR+M&);=~9=neq{8?2pZ5a`5#<l8QE5CD1qK&7mr zkamRcxBjZW73c?vrzrr*Oha25784}M=L);x6;ik{fvDBusMg{Mt1+%0OvcU7DmIoW znao6Of*;p4zE)+&Dn=R?7+%;vMrnet{_V@ihGJ~8zpM~*1RWv2`|vuMhy>l?_a)z- zp+yo>tKe4P$4IV^wV1941WfR3iSau0h$#I9V|s;c{xy_f>$)GccQISuA&BcjR3n5K z$h^Khn+&JJ^0L>5@y(_#20n%u62oPap6gx={8d05InMxFxQ`Vjk_yjIzcZv!@Tk-7 zaMZ&DKXPD*+u=p{@GYDpnX^nEZ85c|@i^lZ_G;eKrUd5b9Y|XKuTC!<>r_!u**#6R z)LkzowSi8Da2@ASz67CTXH}8GaB!P2q`sXSZ$Mf9-<R_>SUK?x{xxb;q<DOx<KFzo z&L${^ExqqDD87)k>xmX~VN8Lv2cei0ov$14RoC)F+q<?0S8C#gCexfB<+E+#x2R<? zMV)E%3~iP=MD!5_<l`687a<#RSY1v8e38uGsSm6NW9NMRjDUZ0A_!3l7xE=XAe(!< zS1gQ16iK2auFJP;ov2Gr+MN|01ilxQscY88iVuG;DKZlZm^lBC)@TWe4KZ;u?hrb# z2JODh%;sgJroeYyPRVY`{Xw#Om3?t~hsNe(_QAbyiq%rApDMRY&QnkE1<COkW_X-i zv!kjbR=}Wt_?Kj|SU(2)SVkuT`&&&ylK<_8mB}W0qDtuLC5C9ES45`)iG?zb$N2$8 zf+y;Yul5gkkORoNXX!Y=ONhhFyzW1gjDmt{n4laL(pP>JhE1JsY?ym9qSFR|OR~G8 zTEe{s<C)mhi1994{UhA4Urb}dQ*qUG4E2p=nrM_}{bnkP^Ht>)nJDwhSlpoAx*0KN z|CaqBr>-WsO62l>3(w1DYn`6FJq40469j5<u$543k^Z78xB+w)ld(+Woyu{w$=VCB zHF6ULT}}tPHh?yc=|d%XY=F;W2fZ#ts_?z7uC8t9euNR7iqqbB_ftJiDveMrc~wTD z>T<nCBVhHQ;WM9s;oqLjYX}5%JjJ@L8y+K8PSVTW<yX58P|VSh=~zdQ0v~9KT{)S% z(jaGF3q~|H_FteomF8yhiqqzj8h}((vjgH<?vq*+e#kXJi_;-7F%A<uLBN0gTyR<J zWY32nfQ40dcHR&|00UFnKMWU@fD1<VVG)Y?+c%h9!{q93gy-_F%tu&oaGJLFs(zo; zq_HC<s~nd!>xHRssGgj_bA=1KJe_Nlt<-Lhb@3Zy^@rJ`7f7R~EiZybuK!T`X-(ky z!E3J3rV|ivFtDKx&~wz4rJuJyD6W6N5C(5XAzkO*DZc=?d-xE<Fg2*nB~fj0SoX<A zo6}Vof-C>y#L`*YJL!p(%ud%Je25lE>Vxr)Ua-N3N)EDvj-EDCYK<cv7iv{cGuz$E zwQJFCG@Bf8q`Br}BmDnGyTYQxJ%TyN{9pH&tnAFI{V9*0zOWB(n>8V0;UL}Zj$rh< zp=Dq~zK|seb=h9we@xR8gX0BPGSf-uV2j&Kug}y=F1|9(`;)K@@Tl*O{$l&$7pF>O zF?&O8M8+-!YI_U@x?~ExjLT=rC1`y62k4rI{w<75gApIQ&+7PPeDLb%37q)>8FVTY z!JiB+&)xqU#dbK`g^piah5f!SqSmkFwrLv<6h=FL6C*h5;fW)cX?%BPXq2R`9teRB zL0weL6N*O)$=9Wr0-sc6WkL{}p%q@{DPQ^%M4^LwE;0-pv5u+HVG|J3Q1=_#NJ66+ zGbXd~=yWt_w_5l998~N&dEFY{@LjjH&%q?2^$qK#KDKmwKeIn&B9!q(GKr_zeP=tF zQK$L>@JrZ6@erP&L}W4qSe+IfO(EHg4%paH%bzxp{Bc9^C8UiTTa(vLLtZ{pr}7yc z>^tBIQy6U6?xAF8dP9SoU{|S}378x$x<C9R2=En?;@Z~gu=jem5CV2KcdOeclCHK{ zPS-y>$T<Yv8xyvn{xv1r*A1&<n}{3sj#nr<qiN{U$IJDFCDHxcNU^VQ^C!B|vKc(6 z55tu4O%n@HTo~?90f^GEQFX_LD1yIiQ({n~c84?I8G1>VTO0&Ci!_BsafGNX2!4Qg z&RVmf*`7&S;sulU%BZFsJd9z|H>f;v@`~tMS|Hlb91?<xodWNgu({-Pp^=24uV)oR z7lSGJ@g~+e&DsqWBJ7iorHwdj-Nq#>6j>H@8q_A@4+Fv{M%{K+W!7wAOQ})hO9;S) z1*g#<9{`2LwUyOJM@KZO3hRBE`MnAAU*R?A3puRA7DD5?R)SNNnSX@GQsIM~_U$Nt z{K`s*p2vLAxBpi(szT79mEMH^#IS`jyzQ4<4?gRmHJQO*N@Yp#5s##%2hd`gpDx@r zPN@r3?&73@@{El`Jue@6rzt6#_$i!|1$I+Zt~0y%7KJKhCg&IF+2>8s?;dQadqQ5g z=t>T2sRI%<UBp+k@k50ZY6kt0$6!EitWB02lUMw2^n8YcOz%vV+-qI*VQ6efc5GmD zaCB&NbnMTcF(z7uiXyX%nFrtT_|soljH(bjB<DdIDbK%0pB;8jYtWe}JNWOR7(*h~ zkjqqJ6~bhZfvg=>+~<W}=+o#weoq`W8+-cyq<I4q)w5^(5M9wo(OIRTfA7CW#Vawh zu2&N(JTCWx5o3AT;p;OxzsL1w?v;*oVyKuLVgVLXdyAvhR@uN>-hbVYvwG+NIU0S| zci{@cnuJ7IKiWL+Cl8vN6BisTka_WVIXmmx>}jJ0-<v=Qz%gT-^70EhyEc;0Bxs`_ zD}shnJ$F7teofrLZras$SaPm^lz-cZh%_}AU!5mF9l@wG|JRU}*OA2=qqThr8vF0? z>+U)WLV&BSX&|etqNlDjrF;8l|0qauTgzu7d8*exE_`y5Mb(9AduxN_P5<x1*nd66 zyOu8no<CJ^Vc+R2HyTjn8)V6>xGU0V(IlKCjCy?_dSqPj*$B^3{lNW&76V}(YxYM% zX)o_wwg@Z@6x!R4D76GGk2^!8zlDX2Z$a6!7y#AzX>GntSdps!!oCD#idRI_g**N% z-k@|=^0oShdb)o~@v*dIj2{%m#<V@^Oci<euQ~<)2^Ne<$rocO5u=#{_P@&PXYaqg zzQ48wm*7p}k`h76=K(u5<$t&B7wj&KtE<fd_Mrz^%{tG+7XW!*YI{tM(r6sb;<V}7 zQ&XHfVz0aYLKojvw9BS;qhP@sG_GlZomDilD_MyRtBcPbC7fcqy$FLs$dQb&NPo;v zMrw_}b-PD^QR!A}3$o^G6%z_t@_<YE2X?9=J1-sWe3!RH>3Bkduwfqs$q%1S4{)sA z(;}~PW})lkpJG;j&FC*FF)u35Z&&TQRH8+N?%l--p+-PK6m)tx(kUD>H{Z|AmeNrw zQ`pOCDd4y|TfUc+smS!~NrduX`Zpmyn}LP~X}6mgTNXpfqk<I{MA{Q?sx!w5IF%BY zpPXE5kc`fT83cmLkf=Tmb@`2<nJr$<54ZfO@z33SnpCe2N#S~B<h!`rOa9ttSyoEJ zFv?U?R$_!XW>JF|oh6bZ#q2ypY1L8ig+`dMwIH{xs)~lUv#NUGSkiYb@0Ep`t^HQ_ zwy*$KLoEo365u_;F4^MK*MC;*`0l(-&&XwEl@z}Xex;CQ1+Q5FBQs0G**Vs(lF`8r zK9%+kbn72EI5_F)DS+XBB|Q93u=&YJH6!E4ii*?Zc!PvrhwC6!kYSY?q}C`Z>Oez} zff3c|>=gAX0L%is89u&1a?us8cK_Lu<Z}-Tfn1tbUfK)!S3Iky{(tw$vo*-z#34LQ zHYZ6-w_TdO{O(CIFZi+5Yy#yh6*2Ee&dvl}f)jm<^X&!XXS|9WM7K>hzXIK|5k(AP zMhcd$-u}&B28z5Ib4BhPSvnc5`hTFnilx#uwf@NZvA_FI&-_vI$&`tAtavkylhd^$ z5G?Im-Tn-k=eb`*4(OJV8t}L$$0!n#nSDnr|HAGHqa>$Nr>synHRa@F7tP36VdiXu z@zVZe@o!Pw9a_PFTnk05l^^MvdndTJJ$&n7WO~krg7$M0&i6vyzqJ9)kD<$>G5Z}x zJtz~^Qf`sWX$P=#px&%9S=?zT%2O@+R9b6s-d=_N{zpChPgIJ4lG8s2AQ`qw&&qP2 zpxt@ze%j#@Y&hMI$7Lm*Od}UdRZ<t?n3t0CAJ?C({oryM4ZJT+s#xN4dGRm4Ov*}} zVRb|T;|XE?ScGcA_6B-R_P+g|K@sSFsjN2B<C+-_TqgC_zXQ$KyJJ#m4P^$Wzl=}R zwoeh4#x_zWGmu&F%F~-IFT<mj<}4Rk49@@PDdG{ezP?#0_KmhzpM>IL!KdeWu0<S0 z>$lb-DzEWZS5|w)DJ|)!tK$&tyudCkD&nD{+D%CjtVvo2zOp#5x%|`X0k#~xiHzPW z(^%Tu+-b6sfv*q~?~bvg!Ypvi*7aLKfC#0hM4Ex~Ld3E6d~nPayoBNkCfciz_)Cf> z?%;Cc*||(#*V%^4Lh;?p!`gJ3Pz50*vFN{ZqJvVGtKfx}tJAN|YW9ja|M%mvAeX^# zE(2}H-$Az6P&H+|znyLeXJ~IE#=_Fj1(<7Hsv3P9oi^T(CsG(~&N?m<#01fxM`Z1y z>;tri(dLWDg)y0R(u2#(L$wR1#O^3j$k-vL)2%~{rTtsQ`|g>*fayJD!8MNq0D{Ea zIrh}OogLNksN{bAK2<jvw#2ekS=EuLXG3y6$v3_UO||^WpceQ8|M6hI1;Arp-LJo` zZ2@UW5By5-(}02sxdMyidu2IAC%Ny9-uinuSaGw2FJA{9iw1?j1>%Ae_Z{SBKlS$G z1ErdJFklV+8C3s3w*ZNsJytdS`>qr_djNiOWJQDNHR>%KGyE@ZRJm!N!D*O*M3v8m zCfJ@h!4&aB=txlss!C`Pkw$j+HbWwFix^u7f}KWER*5znHg#P#m%Tz2au4gKlAd>z zTwJZ)%*H#oJ<Q>PlzfqTpzkTL8~4))`DM~2w8VU4#InfVV)?uFmdeo$oeBHJXR{ZX zn93LKx;2-zD0ThqcW>jh<rEYY($hALUOk`IPnT|qO7sX8p4iF8+kEW$(Ax_tUXD|I zq#Q**8L8RHNVHX!=L|RVA3sFxv)S*m#t?2cl2JRZeiz7SMVYQa7^bITVqmDGWr_+5 zw{@~dl>M`VwXpJ2wG`VMgFOl$6EE!hY;H^vN|5vzJ@3l<m=tw-tR(S8>ozy<Sv&gz z+k)X*=IM4M&+5SmgPOFc4t~NqeZuRNe}siqHZ(+(MdBd%Ss#uuGebXcK<qsWU-_*; zfT%k67VCln?}CDk0;*H2$bgCpi_f2D#o*!YO3;xa76BJGD<nq2%#wWT$7fs)W<s0< zCG=;vpV>d5%)PVAp>G&drj9Q^Begg^5(f!G8mLaw=9==Sc%$7s!UaA#JuELe5zLma zRq0I`zc;Ecn(sqz>++Euhh)7}ZM{8`9Q$Kn4@(n5l>D>)0iET_ZQQ>wMzAdnTyKNG zRFRm`b_>YOHr$(OGM3@%L`<;R0hJZ4ckf_B<caVM){hKx+)~Jv%hHF-;~!M@fvZbS zN14#r-RpVLNHS(wj>X0C*4DwcN}<i?a6Hp0!Fh!y;dIPgBd1Yncd}ye`9lIG-OXTU zf;*?qvS7R89y+qiT4XUUrVBOxU*2Tde7Tkt_RHjwL3)&T?2ah;&*ZEw`oVtjcs$pw zV4ppDP<j7C*+)lgET1{}oOQT=b_m-Us&lQyPtTU0U8D;=esN$VXKzmy(EVU9_fJc& zc;^Wj(9QUvI4Wwy$u7+8W;iR|lS1ENF!nnH$@J_L0*wc0TM1}SG$DJe7f}aif+zuJ zXUv<M)8r`WAB`^huHTHm+CH@65T@f|#i997sHqtNeD|p$qEczG+0*wfv3m9>R1l*a z->X}rhq1~4P~+ZQ0*uT;BfCrt@}x3G?9!8JDxQs*%*uES+DJ_KhTEY6q`5x)86qa< z5PTO%Lj#e&vKA+ykR`uJWAl{d-8MOe<Os@bOc?Y6W#|7R>K()5`lGesm=iU&Z5xf9 zHg+bq8@qAiMvZOTYS37XlSYkg<JtY6bKZAfS3b{V_77{_>xP<c%7|JqR;or|=-p#I z9ePhKV5%BA32@oIx@ZM&0UJU`L*_X?L6W&QRBeR;LiWO8R_7(`UI}A*S={p&jg%iw z2GTk=E)gKi%nYZw`jTIk_3{V<+z1s^kOi-YosOW>(=4_i+Sy8g)AJ-TW{L9QdWT0& zU4x~A;G+N?Y?nDfNsHo3?5yS67GqfTjtXR*DuR>}l3%sE+2Ht~;FLG+1wvF!9(d!M zPLez2ms860%)B;V)W<T@B&u;DL7-A{_~wgug#5lFRO4|!Nr`hR%xVcf$IXgYqj`%L z!__Ns3*OUKj4hIi_}Y1E*~P1}h6S&;bv^0w;z}M4`8Y+k?Oz3$^%5S}-rSft!>mtr zKp_5mvp*D-&CUHZHR<uTo87kn`(8+hfkXqVw_0v02q_3EI{GD%R!2y_ysBLjlM_>W z;=SXHq!dkkqba~VefuT2)t8S=dzIe}XnV)|{9m7nzJmi#u;FA7ins2FJK#`>eq?98 zllO|5UT&hax~jMXM4x$eg7ZX66dwSN$gYi80{pn$PZv&$LQxVW(3Op?cbf=XcCnJI z?MVJMSQ!7k3<a!x0Gt>%BOVEQ1Si4-Qw=bp`+KncMjjjo0Jb;${C)XQJsVsP5*5~L zes`UgHHIc+cAgtAVz%JG*hlzKW`pLn<$28JOAz$G7lsC+HZJCEanKjGp05_2{L||4 zdREq;H6{9~yXuvzs8;ogSxvaz(&e7TRBKI>8<C0*f?EIYhZwAot|ZYe=dEhd6V>Ag zudiWi!GMNtrKa9V#R2fyBV`udNiAX};7t`z14~NFeO1*+A;mc8_WS!3Nf|)E;XQj_ zP(sA_EVe$!OwsjK_7|Y=1vq}ORrY)@`NvjmzBty2|7-%@gf`RC-WQpAQdyyhPbi6r zDTqa?PELOUaX;7B4Bd*#z%iM_q|QJr#c_KR5nxOr%XcxXlemt6noe+jB@N*T@eN{H zBfbT$(esr74}qM9h8D;xR<`^b^t#`Bu`=q=+xyYyo)iY!`FC*@QFh=MZZ|ZZ?lZ(R zzj$qDLJ8B$j55%!Z{-ipCM|UW9FP6l3`_ZeJki0i`^OyyucgQZRJkTHLowFssqIK@ z<_1jqvQhwHpR0ef$eflz`N_?ZvBo87(h|cn726p^-6dEE2U&HF+kAx`hT@F2CFaQx z8y>6Zdl|YoLj@PKrm3!J3or@I>=GL~euPm=6pIIMD+HRDU4d9Wg_=Rb$%JHn`bl95 z-ap}Y#aBeVshW68bo{j1OLm60f)fCungW1!V+Aev%M9vX7Ife;d<*)0eY>l$Pdd{W zTVws?YI7O0aRO82?mM-UZ6M9uQD%lUeG<I}1LFT!Lz21F>2y!N%Jl({z%{_2D|*(y zDfE~Sya`wr(#xg2|F%Oi|A17%@V2Uqdb`jb;4{$~Ilzn{Z!{XO<ibiZW7MTC&&QER z*i!#pSNoHOzWS?<x+E~7>dp)LtWp%v1@#;$ZF=>1L4*8|qwRZmL;SBY<(1daknr{G zZqfSM<W`!H(9+)iH~1L`7)?Sz*b7|9dQp~^qo;{wi(I<6M1PAI9v@+;sjReApsg9$ z&4KD?R9Ic_de+um1su!a{Gmw*2{3!8nEY+Q=+6)j5Aehy-oAjhFd>hFrm99w@vK*f z7Xux0O}E#+VTp3qv)}!n_FF)ou<Y`8fq1%F*vA!FURwyVJuW*lrOEbwJ)`A(p1XeO zr8uj2ug3jk<@D%qY!_LU)}T5s;V`=kev=8f;-G)GwN~nan2EZ3XNTT;`;6+Zzqwv1 zpppv1%>%Qnc`?gF5e{@{3ChF+dnawIFT2^%oe{$em1s3K$3o(@GsRVKG~9`l92|b# z!1Zc%*E`jtyDV^#Ag81m$i9ggi=GEis>$Jve*<C&fGC!`-;6rxRF}X$O!+lj2ve2Q z1za*DVSq>BsryOQ`QYMns{miZlZ5@;*NPIf&cgc##5qM}$~6SyEPa_+BG|4h-heki zSaf$Lc(F3;{;OK}-h2lFPkVv{7p%F5lhXH@Eql5Gx2AFvJ(uRoqm=<>6ywoS9e_s< zC9BW%Ej6FL1DtaCQCswH|7a)C0EnLnMUqegFHXz{v#!raL=dEvr7y(Qbi1ka#rb}Z zoAvDL);6-#lws$3ooh=>7G-!`D(Amj9$p!U$kPqSVGj`}j~j1?GrBSJW)g8B49xfU z9V^UE`p6h7%H~QNfW#LFX?JBP{k>u`S@;^qL2xUn&*Z~HPEWuklYGbJRF_<V5uI5b zEYTGYL<@u8n<PY7B+W$R>cb9<NLO86dwxEfC^P4f&+#|xq&wkMqE`K3N+F6|iSKaK zD?>d4q;>I*w<Ro2sv<e>yYFfL&<7-6b9TIw&d$;4T9C{yIyJSPUr!|9*Re63k;Ftq z`*tQ<8+68mh+Qw>6A^(?dfe?FqfUgIJ7vI#6lN!PMq8<j&iQfC0&k_s*3#^%5+G>5 z-oJLZ9cOFlD~}V_76B92&Y~CD4KW+P7l4JD(1z%4Q?uShZM4#8&58F?YkYMQ8i+7J z71(nG3`z5}09y(S=-$84It}1BQtP~h-#TC;`3`)=?C)t=wABHB_w1L-N(%+7udvjO z_bPSlSd3IQK7jyN);|}+sKf#<7yV+SJz@`CQ4z6@8{PeJ{b8ZfLrCe4;R*yc7mdZ) zkYrSDcYwt-(g?=pMdU~b=RQksuAFA8*Ku`(b}TjYDxm!_69oplkbPUVuBYuWRyNes zl;NK3?!xG?4^Fm%GM<Rz4ok7$loZFtNkonF&7J|qFo&-VhsBBZlJb}h0sMet94Pze zWCJdXI9g6x4-T{hba0#nCx<JN@qVRF1L3e7|6D*BG7%d%FeVE#oz>>FKewm=UWN4N zAd*)4BugJ2m56Hj=Qg!MQ)8q}g=P);qDX=jEjkDP3%y!N-&^mrY_)8N7X;wGwgDY> z3<08Tvj3^@gPDfc%hxQcU_)-=x`XB}{|kQ4V`HpAVivt!dMpB4Tb<8aZJXXCe9}dP z<JY0>)2L0>>*rs9RIz7!J8k|cy3Di~T?90t@Ld->`z&}26aEWPkFTXRN)5>*^F#i* znCa_2r>ZIV;U{v|WOZq7aY-r+Okt-#ab>}&_#T3cp|pu(2u?`gcj$Z#X|yvvI>uFD z?;Qu5ZChJH5~9qMM1yr8KfM|OFgaOiajeO$WT4QuK(r+!gT#v&OooG_^AE}+Uh%-= zwrNakAWR&rE-e!c*y13%8awal-(ZT7hL*^bjM&}PP=^ce$3-yITkX#-pjE~=HuM}I zcp6D8c>}2T=j&Y>bKIdjP}xTUy1=-B22lA=y4*a-@tM62O{DQZI;E7aJaO)`Cfu*! z&Mk1}Vmv(lo?AFwsbW0I<T2GWQ)h}9ES_EZxhEx)uG=1Bot^!s%O|c+!hd{(5i7yj zH1BJB3Mz+FT+R!!;v)k?0uQ#Lmy3N|AS=3Iw+pf1>uFqn5w?cYUGB8gmy(UinKUBp z1pY%B)Z7o~Sfk)N0CNV4n*M_AO$~DmlaEPJ9W7LBAql1~7yBF2D^z&nGp0ijj$ck! zH1zaZf<E35%}e5<c9}S}sWZ5}hACal%?t+jZ>g(AqPtr`ef%tiQXL{a3H33tVzD}S zA%8n@P~kf;Z;BK}EW*YvnaT{#g5WHDpE5#!g{Kr@qr+lBhmey{L%#F9HwZW&Ojk&N zg0n);79r1oHDh3@AP_O3I+>ZC{u<jy=J^OK>;q)S7}PpppzEsI(EMPvO4ij^70?He zd&bQeQ>XtJkx%emc&HU!2;;O@{0+;q{zF7pn2G4%3ZK)sw=D0wck3WOPZ#p!36q9p z6t~N_yX#+QR*Q8T(1{QhzZoc-Pv%YiRzBl6@NW@jrKxGs?lchEj{Wrg!|jlLwB{!n zo~QSj1kOUEtS2hGMa9WWIBR6vrBw(r$Mjv?^mONqbCDQSw)tsm8~}0Q0ES7cY|7Em z5MZZNTMMEsvEt+u1$d`e<p@$p{u#VbkRQzSDS`0_kgp>xEh2{C?=Odl_*i7_b}=6g ze+SqpFXe{FkzrM7w;_Q(a?U;!GywMXy?a+^FE7YT#oTi^3AYQCtJ6Se2jIVddFpBf zgC8|u^9HwazY!qnexd>{|B7))O0-a<uo#tE!(`ZLHo4Zub%pc5sG!Gpv}0rm7Ubrv zAujp@5Jg&{pg;#i<n70|*Q`Asi4|;pMB03{6tqZ{1m}1;rv03I3G04eGb&`v)_=pG zltv}uqT`IZ*(v6w#t*btAPfhT9b|StI4!G}ueHF#^`4R{v-MZ)Ury`&_LWDFVIG3g z0Wprmas5#AYnjje8NlH?=ma+*%k7|Z`+Vxe#gmT4`#8zKmyiu7iG0v33<a0V!Ij)& zeXZ$vv~?O+-lsEKQ6>@a;`|VSF^%=(maS8+4Cqdh0J?^gYz@rL4G6xxqQch3O25_j z_7`cSuM#pYGf=F+jRSJFI0EisK+Xo(kZ-^Bhh^q-Kw^84lI@3kKtN;t;}?4a<fl1y zfe~ikSp+W|Mf9le4D5p+DdD9)%3<GiHr8UiiXQ$C-&VX=%onv3TdFT?Kb7UjV@7>j z07>$LgFW_-h{5gnipVRMS3{*!72l33;flQ^O)ZHcRaaH>H_622g0A0X+xLrGksOz| z)BeMg8PYXSs-bJ`ojbj1f|{`hi{aw<3l3}5mJX6hg`-Y6uTh%z>;8Ov4UOd~>%(A# z<#}5Fb%bzbZMVjdmtvgD3lKC8Am8fhO@)w0Kik4^ycAfP?p2c-e0vk7P){iT_S)av ziScQUvW^#O69%FmaA>WruA5eNQ08yS4uZc^06ZS7BldSvZw^;IhNttWcQwH8_N(1$ zAdu89cVdZR(5UUA{ZhU87$D;0aae(BK8(*3{f0YFRcO|GcZJOe#9|12{w=)Mbj%C& znW_*yaTOftelX2W*#U6@VN;w~VXK_OkG8t*|1o65_719fDzigO_fg4kxc2m58?w@6 zd(McWKIbTXg^nm*_J*bl0xGQ9pktJ=j7ht-P~sQr$l(AA2SW^{+q{#tvGEo#={p6i z`Ws!3Y8ns}PKXS)4qGoVo6na}wcr<9t*=vV35Sh_A`|hL3=NI(?P~O!2*&wq!>O;c z0KyIkh$MN4NC+8g3Ly=pVj~L-LybrzM=v46CCdUPv_H<AoTQ1neRm0j{4U$+5d@*& zMxZ>Q@BGZ|g@b&dKD+4Rw29bsMSQUkD+zlYG}ovNm`J~6;{fM%65@dsH?0ANrTR}4 ztJ=zMPyK<Az>il|nJ2D>-4sJ99ZMu^^MyN^rT4$-%BwKAw1NqVtGm{HYuuE96$+VP z1qN=mOQ(0g{&0>#bd}bFl?b2Pcx8_Ic)@P9!R|62G11bV-`7Zb1JNHZL>$l*d_a;i z$4BfdUJ-R%;j>vw(i!8e`qOSY@@>AMnN-y2W$tGv;}eShL&$i)*x0vK&VbP+cF_rg z7TdpPMm(o$T{f@n)=`Vf`fWzXO=!Nzy#Z@HPr(4Dyw#(EaC;ja4dOT{Q+falTme)I zd|y!834U!kj0xP%hms0}!2Z%`03z`LE?FYHAL+>&ntBSRb$p&hGq|WAE2T~juf(@0 z%3sFMKqU^3iWeA2&RAo0^Mf4-%}L>q^SL=-2ltA>Ted9p21a{+iCYFNQA*itZt&QC z4K^SFr1@ImfWDt+e>$`hF>%v(1U$(g<<6m&&N0!UdTZY|rx5U_6@O9&mrz97)V}96 z8<qexurDXFH<iSLBNJ+K0>K%QJNa|tYk=D4Ta|Br3C#dXi)JLjCe&i3ftJd?l;p4e z->>iy4qUY`_D~WHksC0e1a?H#|BG|UHNz!E1x?#`f5J-rf%HehABrg(JpQB3@A<C6 z7F_S;7`U~)TTxb4_St!)4v}7}uz@e#bPJ<<vhS1e##`{f>)YO&#IMpACX;USGheeJ zpqt$k$h*F1%q{%-o5L0M>4l6G+sE?f?(7(E-~|LZvCsk0$t93Ccl?fn0rzzxKiN!D zaAg&C$XtWVMNfv>=0nMHa?lHX3vU30>-&0>pbIX`#!SH0(n}HTPA&fh=ae-nxvD{Y zc|kP;C8ft<%8Na$a7oAt0}U-V{qRGZx$0+O0hr;R{ad$wIz@VDSk-@go$juLZO?}p zuu4Dm{&K|pcZL)qNQo1~Xz1#uCaE9nCWC?810YXMtv_;H+OA}l=%rC9)qE$0?7A1~ zNNC~S^Npz&2+gFR-~@X4KCr1{NDVR`!SD~BIq9KU^Ra|3&xeCZfEqy#Sc_H>aC_hU z<25nZ%#?e}eYPHmlks(F$6|w^kshS^-qt@^Y`*J$vUK@V%7k9wv$a%?h+i)aOIc}9 z3~;dLf6AemGW@^^+GqWiUf`6E52pvXrFfDdg4*Liy3o*Dn}R-PuGgu5d~N`iIBBlm zXFW*azCdZ5&bl;yB9|Ocftl?&Xw~C<3@IdEfI#mG%9aoz=K$skD&uVWy3i6Y&~;c! z642#t?HlPr^aBDz@W46>XgK^M2()c8rdfHg(!@w~_LnqT7l-?qf)YHvFduL&C)Sof zf~_O@E|;HpB)aqpFq&%v09nH)QpH%0DK@($*)L2qB5iK+j*X?!7rOk)o>fHr-kF{G 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 ammA1>yBo!0w+#&l_ySIp2Okv7gZ~$L*4O9& literal 0 HcmV?d00001 diff --git a/ee/ucp/kubernetes/kube-resources.md b/ee/ucp/kubernetes/kube-resources.md new file mode 100644 index 0000000000..bc45cf10e7 --- /dev/null +++ b/ee/ucp/kubernetes/kube-resources.md @@ -0,0 +1,9 @@ +--- +title: Find Kubernetes Resources +description: Learn where to access various Kubernetes resources in the UCP web interface. +keywords: ucp, resources, Kubernetes +--- + +The following diagram shows know which Kubernetes resources are accessed and set by the UCP web interface: + +![](../images/kubemap.png){: .with-border} From f04572326387173e73a8ace664bcddcb4006bb76 Mon Sep 17 00:00:00 2001 From: Jan Vorwerk <jandsu@users.noreply.github.com> Date: Tue, 30 Oct 2018 12:29:59 +0100 Subject: [PATCH 199/222] Document side effect on the --userns=host flag (#7537) * Document side effect on the --userns=host flag As explained in https://github.com/moby/moby/issues/34064#issuecomment-430985552 * Fixed typos & added reference to binaries with the setuid flag --- engine/security/userns-remap.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/engine/security/userns-remap.md b/engine/security/userns-remap.md index 23be0c9cdd..333e897156 100644 --- a/engine/security/userns-remap.md +++ b/engine/security/userns-remap.md @@ -245,6 +245,10 @@ for some of these limitations. To disable user namespaces for a specific container, add the `--userns=host` flag to the `docker container create`, `docker container run`, or `docker container exec` command. +There is a side effect when using this flag: user remapping will not be enabled for that container but, because the read-only (image) layers are shared between containers, ownership of the the containers filesystem will still be remapped. + +What this means is that the whole container filesystem will belong to the user specified in the `--userns-remap` daemon config (`231072` in the example above). This can lead to unexpected behavior of programs inside the container. For instance `sudo` (which checks that its binaries belong to user `0`) or binaries with a `setuid` flag. + ## User namespace known limitations The following standard Docker features are incompatible with running a Docker From 99dd423bc71d17f2ead73bf3804a1b925f2de095 Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Tue, 30 Oct 2018 10:16:10 -0700 Subject: [PATCH 200/222] helm link added --- ee/ucp/admin/configure/enable-helm-tiller.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ee/ucp/admin/configure/enable-helm-tiller.md b/ee/ucp/admin/configure/enable-helm-tiller.md index 44a767a303..e55fe617c4 100644 --- a/ee/ucp/admin/configure/enable-helm-tiller.md +++ b/ee/ucp/admin/configure/enable-helm-tiller.md @@ -4,7 +4,7 @@ description: Learn how to modify service accounts to enable Helm and Tiller to o keywords: Helm, ucp, Tiller, Kubernetes, service accounts, Kubernetes --- -To use Helm and Tiller with UCP, you must modify the `kube-system` default service account to define the necessary roles. Enter the following `kubectl` commands in this order: +To use [Helm and Tiller](https://helm.sh/) with UCP, you must modify the `kube-system` default service account to define the necessary roles. Enter the following `kubectl` commands in this order: ``` kubectl create rolebinding default-view --clusterrole=view --serviceaccount=kube-system:default --namespace=kube-system From 43d03c89c85c882798abc765923e9df81e2f47c1 Mon Sep 17 00:00:00 2001 From: David Deyo <david.deyo@docker.com> Date: Tue, 30 Oct 2018 10:54:46 -0700 Subject: [PATCH 201/222] uodate intro copy --- ee/ucp/kubernetes/kube-resources.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ee/ucp/kubernetes/kube-resources.md b/ee/ucp/kubernetes/kube-resources.md index bc45cf10e7..e566239056 100644 --- a/ee/ucp/kubernetes/kube-resources.md +++ b/ee/ucp/kubernetes/kube-resources.md @@ -4,6 +4,6 @@ description: Learn where to access various Kubernetes resources in the UCP web i keywords: ucp, resources, Kubernetes --- -The following diagram shows know which Kubernetes resources are accessed and set by the UCP web interface: +The following diagram shows know which Kubernetes resources are visible in the UCP web interface: ![](../images/kubemap.png){: .with-border} From f61754dacc60d5b026cf1b035dc6328720973df3 Mon Sep 17 00:00:00 2001 From: David Deyo <david.deyo@docker.com> Date: Tue, 30 Oct 2018 10:55:27 -0700 Subject: [PATCH 202/222] Update kube-resources.md --- ee/ucp/kubernetes/kube-resources.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ee/ucp/kubernetes/kube-resources.md b/ee/ucp/kubernetes/kube-resources.md index e566239056..6c79ca46cb 100644 --- a/ee/ucp/kubernetes/kube-resources.md +++ b/ee/ucp/kubernetes/kube-resources.md @@ -4,6 +4,6 @@ description: Learn where to access various Kubernetes resources in the UCP web i keywords: ucp, resources, Kubernetes --- -The following diagram shows know which Kubernetes resources are visible in the UCP web interface: +The following diagram shows which Kubernetes resources are visible in the UCP web interface: ![](../images/kubemap.png){: .with-border} From e0523873a6314302e123bfa36538abeeaf9f6208 Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudez.mt@gmail.com> Date: Tue, 30 Oct 2018 11:19:16 -0700 Subject: [PATCH 203/222] Clarify behavior in overriding image vulnerabilities --- ee/dtr/user/manage-images/override-a-vulnerability.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ee/dtr/user/manage-images/override-a-vulnerability.md b/ee/dtr/user/manage-images/override-a-vulnerability.md index 00e6fe0aca..76a14d6d18 100644 --- a/ee/dtr/user/manage-images/override-a-vulnerability.md +++ b/ee/dtr/user/manage-images/override-a-vulnerability.md @@ -22,12 +22,13 @@ vulnerability, and click **hide**. ![Vulnerability list](../../images/override-vulnerability-2.png){: .with-border} -The vulnerability is hidden for the particular image and component. If this -vulnerability shows up in other images, it is still reported. +The vulnerability is hidden system-wide and will no longer be reported as a vulnerability +on other affected images with the same layer IDs or digests. -After dismissing a vulnerability, DTR won't re-evaluate the promotion policies +After dismissing a vulnerability, DTR will not reevaluate the promotion policies you have set up for the repository. -If you want the promotion policy to be re-evaluated for the image after hiding + +If you want the promotion policy to be reevaluated for the image after hiding a particular vulnerability, click **Promote**. ## Where to go next From 441c5b572b842bfd98df15b3f37c2d998efbf9ef Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudezmt@users.noreply.github.com> Date: Tue, 30 Oct 2018 14:20:20 -0700 Subject: [PATCH 204/222] Minor edits --- compose/reference/config.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/compose/reference/config.md b/compose/reference/config.md index 5944912d09..56542663ab 100644 --- a/compose/reference/config.md +++ b/compose/reference/config.md @@ -10,13 +10,12 @@ Usage: config [options] Options: --resolve-image-digests Pin image tags to digests. - -q, --quiet Only validate the configuration, don't print - anything. + -q, --quiet Only validate the configuration – do not print anything. --services Print the service names, one per line. --volumes Print the volume names, one per line. --hash="*" Print the service config hash, one per line. Set "service1,service2" for a list of specified services - or use the wildcard symbol to display all services + or use the wildcard symbol to display all services. ``` Validate and view the Compose file. From 2e48d28232f2e3fd440193b7b2f167d72d26f038 Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudezmt@users.noreply.github.com> Date: Tue, 30 Oct 2018 14:28:57 -0700 Subject: [PATCH 205/222] Final edits --- release-notes/docker-compose.md | 61 ++++++++++++++++----------------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/release-notes/docker-compose.md b/release-notes/docker-compose.md index d320b26daa..522813ad00 100644 --- a/release-notes/docker-compose.md +++ b/release-notes/docker-compose.md @@ -33,9 +33,9 @@ naming scheme accordingly before upgrading. - For images with multiple names, Compose will now attempt to match the one present in the service configuration in the output of the `images` command. -### Bugfixes +### Bug Fixes -- Parallel `run` commands for the same service will no longer fail due to name +- Fixed an issue where parallel `run` commands for the same service would fail due to name collisions. - Fixed an issue where paths longer than 260 characters on Windows clients would @@ -48,32 +48,31 @@ naming scheme accordingly before upgrading. look for the `.env` file. - `docker-compose build` no longer fails when attempting to pull an image with - credentials provided by the gcloud credential helper. + credentials provided by the ***gcloud credential helper***. - Fixed the `--exit-code-from` option in `docker-compose up` to always report - the actual exit code even when the watched container isn't the cause of the + the actual exit code even when the watched container is not the cause of the exit. - Fixed an issue that would prevent recreating a service in some cases where - a volume would be mapped to the same mountpoint as a volume declared inside - the image's Dockerfile. + a volume would be mapped to the same mountpoint as a volume declared within the Dockerfile for that image. - Fixed a bug that caused hash configuration with multiple networks to be inconsistent, causing some services to be unnecessarily restarted. - Fixed a bug that would cause failures with variable substitution for services - with a name containing one or more dot characters + with a name containing one or more dot characters. - Fixed a pipe handling issue when using the containerized version of Compose. - Fixed a bug causing `external: false` entries in the Compose file to be - printed as `external: true` in the output of `docker-compose config` + printed as `external: true` in the output of `docker-compose config`. - Fixed a bug where issuing a `docker-compose pull` command on services - without a defined image key would cause Compose to crash + without a defined image key would cause Compose to crash. -- Volumes and binds are now mounted in the order they're declared in the - service definition +- Volumes and binds are now mounted in the order they are declared in the + service definition. ### Miscellaneous @@ -101,7 +100,7 @@ naming scheme accordingly before upgrading. - Added support for extension fields in service, network, and volume configurations -### Bugfixes +### Bug Fixes - Fixed a bug that prevented deployment with some Compose files when `DOCKER_DEFAULT_PLATFORM` was set @@ -135,14 +134,14 @@ naming scheme accordingly before upgrading. ## 1.21.2 (2018-05-03) -### Bugfixes +### Bug Fixes - Fixed a bug where the ip_range attirbute in IPAM configs was prevented from passing validation ## 1.21.1 (2018-04-27) -### Bugfixes +### Bug Fixes - In 1.21.0, we introduced a change to how project names are sanitized for internal use in resource names. This caused issues when manipulating an @@ -207,7 +206,7 @@ naming scheme accordingly before upgrading. - `docker-compose build` now supports the use of Dockerfile from outside the build context. -### Bugfixes +### Bug Fixes - Compose now checks that the volume's configuration matches the remote volume, and errors out if a mismatch is detected. @@ -278,7 +277,7 @@ naming scheme accordingly before upgrading. - Added the long-form `--detach` option to the `exec`, `run` and `up` commands -### Bugfixes +### Bug Fixes - Fixed `.dockerignore` handling, notably with regard to absolute paths and last-line precedence rules @@ -367,7 +366,7 @@ naming scheme accordingly before upgrading. - Bash completion should now be able to better differentiate between running, stopped and paused services -### Bugfixes +### Bug Fixes - Fixed a bug that would cause the `build` command to report a connection error when the build context contained unreadable files or FIFO objects. @@ -450,7 +449,7 @@ naming scheme accordingly before upgrading. - Setting `stop_grace_period` in service definitions now also sets the container's `stop_timeout` -### Bugfixes +### Bug Fixes - Fixed an issue where Compose was still handling service hostname according to legacy engine behavior, causing hostnames containing dots to be cut up @@ -519,7 +518,7 @@ naming scheme accordingly before upgrading. resources (networks, volumes, containers) without starting services. The `create` command is deprecated in favor of this new option -### Bugfixes +### Bug Fixes - Fixed a bug where `extra_hosts` values would be overridden by extension files instead of merging together @@ -571,7 +570,7 @@ naming scheme accordingly before upgrading. - Added new CLI flag `--no-ansi` to suppress ANSI control characters in output -### Bugfixes +### Bug Fixes - Fixed a bug where nested `extends` instructions weren't resolved properly, causing "file not found" errors @@ -626,7 +625,7 @@ naming scheme accordingly before upgrading. - Some improvements to CLI output -### Bugfixes +### Bug Fixes - Volumes specified through the `--volume` flag of `docker-compose run` now complement volumes declared in the service's defintion instead of replacing @@ -678,7 +677,7 @@ naming scheme accordingly before upgrading. - Differences in labels between the Compose file and remote network will now print a warning instead of preventing redeployment. -### Bugfixes +### Bug Fixes - Fixed a bug where service's dependencies were being rescaled to their default scale when running a `docker-compose run` command @@ -729,7 +728,7 @@ naming scheme accordingly before upgrading. - Added support for `options` in the `ipam` section of network definitions -### Bugfixes +### Bug Fixes - Fixed a bug where paths provided to compose via the `-f` option were not being resolved properly @@ -823,7 +822,7 @@ naming scheme accordingly before upgrading. - Added support for port range to single port in port mappings, such as `8000-8010:80`. -### Bugfixes +### Bug Fixes - `docker-compose run --rm` now removes anonymous volumes after execution, matching the behavior of `docker run --rm`. @@ -857,7 +856,7 @@ naming scheme accordingly before upgrading. ## 1.11.2 (2017-02-17) -### Bugfixes +### Bug Fixes - Fixed a bug that was preventing secrets configuration from being loaded properly @@ -877,7 +876,7 @@ naming scheme accordingly before upgrading. ## 1.11.1 (2017-02-09) -### Bugfixes +### Bug Fixes - Fixed a bug where the 3.1 file format was not being recognized as valid by the Compose parser @@ -897,7 +896,7 @@ naming scheme accordingly before upgrading. - Introduced the `docker-compose top` command that displays processes running for the different services managed by Compose. -### Bugfixes +### Bug Fixes - Fixed a bug where extending a service defining a healthcheck dictionary would cause `docker-compose` to error out. @@ -907,7 +906,7 @@ naming scheme accordingly before upgrading. ## 1.10.1 (2017-02-01) -### Bugfixes +### Bug Fixes - Fixed an issue where presence of older versions of the docker-py package would cause unexpected crashes while running Compose @@ -957,7 +956,7 @@ naming scheme accordingly before upgrading. - Added support for the `stop_grace_period` option in service definitions. -### Bugfixes +### Bug Fixes - Colored output now works properly on Windows. @@ -984,7 +983,7 @@ naming scheme accordingly before upgrading. environment variable `COMPOSE_CONVERT_WINDOWS_PATHS=1`. Users of Docker for Windows are not affected and do not need to set the variable. -New Features +### New Features - Interactive mode for `docker-compose run` and `docker-compose exec` is now supported on Windows platforms. The `docker` binary @@ -1011,7 +1010,7 @@ New Features - Overriding a `logging` configuration will now properly merge the `options` mappings if the `driver` values do not conflict. -Bug Fixes +### Bug Fixes - Fixed several bugs related to `npipe` protocol support on Windows. From 90af0bc8d5fba6456797cd18b2de6fa880a389e5 Mon Sep 17 00:00:00 2001 From: Ye Ben <ben.ye@daocloud.io> Date: Wed, 31 Oct 2018 17:05:58 +0800 Subject: [PATCH 206/222] fix a typo (#7589) fix a typo in line 242: Kubenetes -> Kubernetes --- docker-for-mac/edge-release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-for-mac/edge-release-notes.md b/docker-for-mac/edge-release-notes.md index 816cb37368..fcf0ad830d 100644 --- a/docker-for-mac/edge-release-notes.md +++ b/docker-for-mac/edge-release-notes.md @@ -239,7 +239,7 @@ for Mac](install.md#download-docker-for-mac). * Bug fixes and minor changes - Added "Restart" menu item. See [docker/for-mac#2407](https://github.com/docker/for-mac/issues/2407) - - Keep any existing kubectl binary when activating Kubenetes in Docker for Mac, and restore it when disabling Kubernetes. Fixes [docker/for-mac#2508](https://github.com/docker/for-mac/issues/2508), [docker/for-mac#2368](https://github.com/docker/for-mac/issues/2368) + - Keep any existing kubectl binary when activating Kubernetes in Docker for Mac, and restore it when disabling Kubernetes. Fixes [docker/for-mac#2508](https://github.com/docker/for-mac/issues/2508), [docker/for-mac#2368](https://github.com/docker/for-mac/issues/2368) - Fix Kubernetes context selector. Fixes [docker/for-mac#2495](https://github.com/docker/for-mac/issues/2495) ### Docker Community Edition 18.01.0-ce-mac48 2018-01-19 From 830958b57fc31ed8c207a043251a24ffde7f33b9 Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Wed, 31 Oct 2018 10:20:28 -0700 Subject: [PATCH 207/222] broken link issue addressed --- ee/ucp/kubernetes/layer-7-routing.md | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/ee/ucp/kubernetes/layer-7-routing.md b/ee/ucp/kubernetes/layer-7-routing.md index c1d343e0b2..789d463a4b 100644 --- a/ee/ucp/kubernetes/layer-7-routing.md +++ b/ee/ucp/kubernetes/layer-7-routing.md @@ -53,23 +53,15 @@ namespace needs access to Kubernetes resources, so create a grant with `Restricted Control` permissions. 1. From UCP, navigate to the **Grants** page, and click **Create Grant**. -2. Within the **Subject** pane, select **Service Account**. For the +2. Within the **Subject** pane, select **Service Account**. For the **Namespace** select **ingress-nginx**, and select **default** for the **Service Account**. Click **Next**. -3. Within the **Role** pane, select **Restricted Control**, and then click +3. Within the **Role** pane, select **Restricted Control**, and then click **Next**. 4. Within the **Resource Set** pane, select the **Type** **Namespace**, and select the **Apply grant to all existing and new namespaces** toggle. 5. Click **Create**. -> Ingress and role-based access control -> -> Docker EE has an access control system that differs from Kubernetes RBAC. -> If your ingress controller has access control requirements, you need to -> create corresponding UCP grants. Learn to -> [migrate Kubernetes roles to Docker EE authorization](../authorization/migrate-kubernetes-roles.md). -{: .important} - ## Deploy NGINX ingress controller The cluster is ready for the ingress controller deployment, which has three @@ -100,7 +92,7 @@ spec: labels: app: default-http-backend annotations: - seccomp.security.alpha.kubernetes.io/pod: docker/default + seccomp.security.alpha.kubernetes.io/pod: docker/default spec: terminationGracePeriodSeconds: 60 containers: @@ -177,7 +169,7 @@ spec: annotations: prometheus.io/port: '10254' prometheus.io/scrape: 'true' - seccomp.security.alpha.kubernetes.io/pod: docker/default + seccomp.security.alpha.kubernetes.io/pod: docker/default spec: initContainers: - command: From b99c70111355f76829a9a967827f054489a5f438 Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Wed, 31 Oct 2018 11:21:27 -0700 Subject: [PATCH 208/222] products renamed in overview pages --- ee/docker-ee-architecture.md | 28 +++++++++---------- ee/index.md | 53 ++++++++++++++++++------------------ 2 files changed, 40 insertions(+), 41 deletions(-) diff --git a/ee/docker-ee-architecture.md b/ee/docker-ee-architecture.md index 091f8b75d0..be5a5f4b5e 100644 --- a/ee/docker-ee-architecture.md +++ b/ee/docker-ee-architecture.md @@ -1,18 +1,18 @@ --- -title: Docker EE architecture -description: Learn about the architecture of Docker Enterprise Edition and how it delivers high availability for your workloads. -keywords: Docker EE, UCP, DTR, architecture, orchestration, Kubernetes, Swarm, cluster, high availability +title: Docker Enterprise architecture +description: Learn about the architecture of Docker Enterprise and how it delivers high availability for your workloads. +keywords: Docker Enterprise, UCP, DTR, architecture, orchestration, Kubernetes, Swarm, cluster, high availability --- -Docker Enterprise Edition (EE) enables deploying your workloads for high -availability (HA) onto the orchestrator of your choice. Docker EE system +Docker Enterprise enables deploying your workloads for high +availability (HA) onto the orchestrator of your choice. Docker Enterprise system components can run on multiple manager nodes in the cluster, and if one manager node fails, another takes its place automatically, without impact to the cluster. ## Choose your orchestrator -Docker EE provides access to the full API sets of three popular orchestrators: +Docker Enterprise provides access to the full API sets of three popular orchestrators: - Kubernetes: Full YAML object support - SwarmKit: Service-centric, Compose file version 3 @@ -20,17 +20,17 @@ Docker EE provides access to the full API sets of three popular orchestrators: ![](images/docker-ee-architecture-1.svg){: .with-border} -Docker EE proxies the underlying API of each orchestrator, giving you access +Docker Enterprise proxies the underlying API of each orchestrator, giving you access to all of the capabilities of each orchestrator, along with the benefits of -Docker EE, like role-based access control and Docker Content Trust. +Docker Enterprise, like role-based access control and Docker Content Trust. -## Docker EE components +## Docker Enterprise components -Docker EE has three major components, which together enable a full software +Docker Enterprise has three major components, which together enable a full software supply chain, from image creation, to secure image storage, to secure image deployment. -- **Docker EE Engine**: The commercially supported Docker engine for creating +- **Docker Engine - Enterprise**: The commercially supported Docker engine for creating images and running them in Docker containers. - **Docker Trusted Registry (DTR)**: The production-grade image storage solution @@ -57,11 +57,11 @@ deployment. ### Universal Control Plane (UCP) -Docker UCP is a containerized application that runs on [Docker EE Engine](../engine/index.md) +Docker UCP is a containerized application that runs on [Docker Engine - Enterprise](../engine/index.md) and extends its functionality to make it easier to deploy, configure, and monitor your applications at scale. -Docker UCP provides a web UI and a CLI for deploying images from Kubernetes +Docker UCP provides a web interface and a CLI for deploying images from Kubernetes YAML or Compose files. Once your workload is deployed, UCP enables monitoring containers and pods across your Docker cluster. @@ -70,7 +70,7 @@ users can make changes and deploy applications to your cluster. ![](/ee/ucp/images/ucp-architecture-1.svg){: .with-border} -Once a UCP instance is deployed, you don't interact with Docker EE Engine +Once a UCP instance is deployed, you don't interact with Docker Engine - Enterprise directly. Instead, you interact with UCP. Since UCP exposes the standard Docker API and the full Kubernetes API transparently, you can use the tools you already know and love, like `kubectl`, the Docker CLI client, and Docker diff --git a/ee/index.md b/ee/index.md index e8e344b6fc..998ee1971a 100644 --- a/ee/index.md +++ b/ee/index.md @@ -1,5 +1,5 @@ --- -title: Docker Enterprise Edition Platform +title: Docker Enterprise description: Learn about Docker Enterprise Edition, the enterprise-grade cluster management solution from Docker. keywords: Docker EE, UCP, DTR, orchestration, cluster, Kubernetes redirect_from: @@ -7,19 +7,18 @@ redirect_from: - /manuals/ --- -Docker Enterprise Edition Platform 2.0 (*Docker EE*) is a -Containers-as-a-Service (CaaS) platform that enables a secure software supply +Docker Enterprise 2.1 is a Containers-as-a-Service (CaaS) platform that enables a secure software supply chain and deploys diverse applications for high availability across disparate infrastructure, both on-premises and in the cloud. -Docker Enterprise Edition is a secure, scalable, and supported container +Docker Enterprise is a secure, scalable, and supported container platform for building and orchestrating applications across multi-tenant Linux, Windows Server 2016, and IBM Z environments. -Docker EE enables deploying your workloads for high availability (HA) onto the -orchestrator of your choice. Docker EE automates many of the tasks that +Docker Enterprise enables deploying your workloads for high availability (HA) onto the +orchestrator of your choice. Docker Enterprise automates many of the tasks that orchestration requires, like provisioning pods, containers, and cluster -resources. Self-healing components ensure that Docker EE clusters remain highly +resources. Self-healing components ensure that Docker Enterprise clusters remain highly available. Role-based access control applies to Kubernetes and Swarm orchestrators, and @@ -27,27 +26,27 @@ communication within the cluster is secured with TLS. [Docker Content Trust](/engine/security/trust/content_trust/) is enforced for images on all of the orchestrators. -Docker EE Platform includes Docker Universal Control Plane (UCP), the -enterprise-grade cluster management solution from Docker. You install it +Docker Enterprise includes Docker Universal Control Plane (UCP), the +cluster management solution from Docker. You install it on-premises or in your virtual private cloud, and it helps you manage your cluster and applications through a single interface. ![](images/docker-ee-overview-1.png){: .with-border} -## Docker Enterprise Edition features +## Docker Enterprise features -Docker EE Platform provides multi-architecture orchestration for Kubernetes and -Swarm workloads. Docker EE enables a secure software supply chain, with image +Docker Enterprise 2.1 provides multi-architecture orchestration for Kubernetes and +Swarm workloads. Docker Enterprise enables a secure software supply chain, with image promotion, mirroring between registries, and signing/scanning enforcement for Kubernetes images. ### Kubernetes support -Kubernetes in Docker EE fully supports all Docker EE features, including +Kubernetes in Docker Enterprise fully supports all Docker Enterprise features, including role-based access control, LDAP/AD integration, scanning, signing enforcement, and security policies. -Kubernetes features on Docker EE include: +Kubernetes features on Docker Enterprise include: - Kubernetes orchestration full feature set - CNCF Certified Kubernetes conformance @@ -71,7 +70,7 @@ which enable: - Resolving images of deployed workloads automatically, and accepting or rejecting images based on UCP's signing-policy feature -The default Docker EE installation includes both Kubernetes and Swarm +The default Docker Enterprise installation includes both Kubernetes and Swarm components across the cluster, so every newly joined worker node is ready to schedule Kubernetes or Swarm workloads. @@ -86,7 +85,7 @@ to schedule Kubernetes or Swarm workloads. ![](images/docker-ee-overview-4.svg){: .with-border} -- Docker EE manager nodes are both Swarm managers and Kubernetes masters, +- Docker Enterprise manager nodes are both Swarm managers and Kubernetes masters, to enable high availability - Allocate nodes for Swarm and Kubernetes workloads - Single pane of glass for monitoring apps @@ -107,43 +106,43 @@ to schedule Kubernetes or Swarm workloads. With Docker, you can join up to thousands of physical or virtual machines together to create a container cluster, allowing you to deploy your -applications at scale. Docker EE extends the functionality provided by Docker +applications at scale. Docker Enterprise extends the functionality provided by Docker Engine to make it easier to manage your cluster from a centralized place. -You can manage and monitor your container cluster using a graphical web UI. +You can manage and monitor your container cluster using a graphical web interface. ## Deploy, manage, and monitor -With Docker EE, you can manage from a centralized place all of the computing +With Docker Enterprise, you can manage from a centralized place all of the computing resources you have available, like nodes, volumes, and networks. You can also deploy and monitor your applications and services. ## Built-in security and access control -Docker EE has its own built-in authentication mechanism with role-based access +Docker Enterprise has its own built-in authentication mechanism with role-based access control (RBAC), so that you can control who can access and make changes to your -swarm and applications. Also, Docker EE authentication integrates with LDAP +swarm and applications. Also, Docker Enterprise authentication integrates with LDAP services. [Learn about role-based access control](access-control/index.md). ![](images/docker-ee-overview-2.png){: .with-border} -Docker EE integrates with Docker Trusted Registry so that you can keep the +Docker Enterprise integrates with Docker Trusted Registry so that you can keep the Docker images you use for your applications behind your firewall, where they are safe and can't be tampered with. You can also enforce security policies and only allow running applications that use Docker images you know and trust. -## Docker EE and the CLI +## Docker Enterprise and the CLI -Docker EE exposes the standard Docker API, so you can continue using the tools +Docker Enterprise exposes the standard Docker API, so you can continue using the tools that you already know, including the Docker CLI client, to deploy and manage your applications. For example, you can use the `docker info` command to check the -status of a Swarm managed by Docker EE: +status of a Swarm managed by Docker Enterprise: ```bash docker info @@ -169,7 +168,7 @@ Managers: 1 ## Use the Kubernetes CLI -Docker EE exposes the standard Kubernetes API, so you can use `kubectl` to +Docker Enterprise exposes the standard Kubernetes API, so you can use `kubectl` to manage your Kubernetes workloads: ```bash @@ -188,4 +187,4 @@ To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. ## Where to go next - [Supported platforms](supported-platforms.md) -- [Docker EE architecture](docker-ee-architecture.md) +- [Docker Enterprise architecture](docker-ee-architecture.md) From ea3f9e4481dc04713c55438198ef8ab301fbd357 Mon Sep 17 00:00:00 2001 From: Joffrey F <joffrey@docker.com> Date: Wed, 31 Oct 2018 16:42:52 -0700 Subject: [PATCH 209/222] Add release notes and update Compose version for latest patch Signed-off-by: Joffrey F <joffrey@docker.com> --- _config.yml | 2 +- release-notes/docker-compose.md | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index 7fe09df78a..a280a272b0 100644 --- a/_config.yml +++ b/_config.yml @@ -23,7 +23,7 @@ latest_stable_docker_engine_api_version: "1.37" docker_ce_stable_version: "18.03" docker_ce_edge_version: "18.05" docker_ee_version: "17.06" -compose_version: "1.23.0" +compose_version: "1.23.1" machine_version: "0.14.0" distribution_version: "2.6" dtr_version: "2.5" diff --git a/release-notes/docker-compose.md b/release-notes/docker-compose.md index 27f8bff61f..a2f8c834e1 100644 --- a/release-notes/docker-compose.md +++ b/release-notes/docker-compose.md @@ -5,6 +5,16 @@ keywords: release notes, compose toc_max: 2 --- +## 1.23.1 (2018-11-01) + +### Bug Fixes + +- Fixed a bug where working with containers created with a previous (< 1.23.0) + version of Compose would cause unexpected crashes + +- Fixed an issue where the behavior of the `--project-directory` flag would + vary depending on which subcommand was being used. + ## 1.23.0 (2018-10-30) ### Important note From cd8dba45e18622b6516551287d49a379dd8ca1fb Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Wed, 31 Oct 2018 20:37:34 -0700 Subject: [PATCH 210/222] changelog for 3.1 incorporated --- ee/ucp/release-notes.md | 57 ++++++++++++++++++++++++++++------------- 1 file changed, 39 insertions(+), 18 deletions(-) diff --git a/ee/ucp/release-notes.md b/ee/ucp/release-notes.md index b62c629163..bf2093d3ba 100644 --- a/ee/ucp/release-notes.md +++ b/ee/ucp/release-notes.md @@ -23,18 +23,39 @@ upgrade your installation to the latest release. ## 3.1.0 (2018-11-8) -**New Features** -* Default address pool for Swarm is now user configurable -* UCP now supports Kubernetes Network Encryption using IPSec -* UCP now supports Kubernetes v1.11 -* UCP now supports Kubernetes native role-based access control -* UCP now provides service metrics for all API calls, using Prometheus deployed as Kubernetes Daemon Set -* UCP now supports use of an external Prometheus instance to scrape metrics from UPC endpoints -* UCP supports SAML authentication -* DTR vulnerability scan data is now available through the UCP web interface +## New Features + +### Kubernetes + +* Kubernetes is updated to version 1.11.2. +* Access control for Kubernetes resources is now handled by the Kubernetes RBAC feature. Users can now create roles for Kubernetes APIs using Kubernetes `Role` and `ClusterRole` objects in the Kubernetes API. They can also grant permissions to users and service accounts with the `RoleBinding` and `ClusterRoleBinding` objects. The web interface for Kubernetes RBAC reflects these changes. + +### Logging + +Admins can now enable audit logging in the UCP config. This logs all incoming user-initiated requests in the `ucp-controller` logs. Admins can choose whether to log only metadata for incoming requests or the full request body as well. + +### Authentication + +* Admins can configure UCP to use a SAML-enabled identity provider for user authentication. If enabled, users who log into the UCP web interface are redirected to the identity provider's website to log in. Upon log in, users are redirected back to the UCP web interface, authenticated as the user chosen. + +### Metrics + +* The `ucp-metrics` Prometheus server (used to render charts in the UCP interface) has been engineered from a container on manager nodes to a Kubernetes daemonset. This lets admins change the daemonset's scheduling rules so that it runs on a set of worker nodes instead of manager nodes. Admins can designate certain UCP nodes to be metrics server nodes, freeing up resources on manager nodes. +* A `/metricsdiscovery` endpoint is added to the UCP controller so users can connect their own Prometheus instances to scrape UCP metrics data. + +### UCP web interface + +* If you enable single sign-on for a DTR instance with UCP, the UCP web interface shows image vulnerability data for images in that DTR instance. Containers, services, etc. that use images from that DTR instance show any vulnerabilities DTR detects. +* The UCP web interface is redesigned to offer larger views for viewing individual resources, with more information for Kubernetes resources. + +### Configs + +* UCP now stores its configs in its internal key-value store instead of in a Swarm config to allow config changes to propagate across the cluster more quickly. + +## API updates + +There are several backwards-incompatible changes in the Kube API that may affect user workloads. They are: -**API updates** -* There are several backwards-incompatible changes in the Kube API that may affect user workloads. They are: * A compatibility issue with the `allowPrivilegeEscalation` field that caused policies to start denying pods they previously allowed was fixed. If you defined `PodSecurityPolicy` objects using a 1.8.0 client or server and set `allowPrivilegeEscalation` to false, these objects must be reapplied after you upgrade. * These changes are automatically updated for taints. Tolerations for these taints must be updated manually. Specifically, you must: * Change `node.alpha.kubernetes.io/notReady` to `node.kubernetes.io/not-ready` @@ -44,14 +65,14 @@ upgrade your installation to the latest release. * JSON configuration used with `kubectl create -f pod.json` containing fields with incorrect casing are no longer valid. You must correct these files before upgrading. When specifying keys in JSON resource definitions during direct API server communication, the keys are case-sensitive. A bug introduced in Kubernetes 1.8 caused the API server to accept a request with incorrect case and coerce it to correct case, but this behaviour has been fixed in 1.11 so the API server will again enforce correct casing. During this time, the `kubectl` tool continued to enforce case-sensitive keys, so users that strictly manage resources with `kubectl` will be unaffected by this change. * If you have a pod with a subpath volume PVC, there’s a chance that after the upgrade, it will conflict with some other pod; see [this pull request](https://github.com/kubernetes/kubernetes/pull/61373). It’s not clear if this issue will just prevent those pods from starting or if the whole cluster will fail. -**Known issues** -* You must use the ID of the user, organization, or team if you are manually creating a **ClusterRoleBinding** or **RoleBinding** for `User` or `Group` subjects. - * For the `User` subject Kind, the `Name` field should be the ID of the user. - * For the `Group` subject Kind, the format depends on whether you are creating a Binding for a team or an organization: +## Known issues +* You must use the ID of the user, organization, or team if you manually create a **ClusterRoleBinding** or **RoleBinding** for `User` or `Group` subjects. (#14935) + * For the `User` subject Kind, the `Name` field contains the ID of the user. + * For the `Group` subject Kind, the format depends on whether you are create a Binding for a team or an organization: * For an organization, the format is `org:{org-id}` * For a team, the format is `team:{org-id}:{team-id}` -* In order to deploy Pods with containers using Restricted Parameters, a user must be an admin and a service account must explicitly have a **ClusterRoleBinding** with `cluster-admin` as the **ClusterRole**. Restricted Parameters on Containers include: +* To deploy Pods with containers using Restricted Parameters, the user must be an admin and a service account must explicitly have a **ClusterRoleBinding** with `cluster-admin` as the **ClusterRole**. Restricted Parameters on Containers include: * Host Bind Mounts * Privileged Mode * Extra Capabilities @@ -59,9 +80,9 @@ upgrade your installation to the latest release. * Host IPC * Host PID -* If you delete the built-in **ClusterRole** or **ClusterRoleBinding** for `cluster-admin`, restart the `ucp-kube-apiserver` container on any manager node to recreate them. +* If you delete the built-in **ClusterRole** or **ClusterRoleBinding** for `cluster-admin`, restart the `ucp-kube-apiserver` container on any manager node to recreate them. (#14483) -**Deprecated features** +## Deprecated features The following features are deprecated in UCP 3.1 From f2d0e1fb3f2fb14061a8a02dc8216fc7f9c057d6 Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Wed, 31 Oct 2018 20:41:52 -0700 Subject: [PATCH 211/222] edits --- ee/ucp/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ee/ucp/release-notes.md b/ee/ucp/release-notes.md index bf2093d3ba..3a3f2bf098 100644 --- a/ee/ucp/release-notes.md +++ b/ee/ucp/release-notes.md @@ -54,7 +54,7 @@ Admins can now enable audit logging in the UCP config. This logs all incoming us ## API updates -There are several backwards-incompatible changes in the Kube API that may affect user workloads. They are: +There are several backward-incompatible changes in the Kubernetes API that may affect user workloads. They are: * A compatibility issue with the `allowPrivilegeEscalation` field that caused policies to start denying pods they previously allowed was fixed. If you defined `PodSecurityPolicy` objects using a 1.8.0 client or server and set `allowPrivilegeEscalation` to false, these objects must be reapplied after you upgrade. * These changes are automatically updated for taints. Tolerations for these taints must be updated manually. Specifically, you must: From bb84913b17828e22d516e36004dcdc06a9c50fed Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Thu, 1 Nov 2018 11:19:43 -0700 Subject: [PATCH 212/222] peer review and eng changes made --- ee/ucp/release-notes.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/ee/ucp/release-notes.md b/ee/ucp/release-notes.md index 3a3f2bf098..b071533301 100644 --- a/ee/ucp/release-notes.md +++ b/ee/ucp/release-notes.md @@ -23,24 +23,33 @@ upgrade your installation to the latest release. ## 3.1.0 (2018-11-8) +## Bug Fixes + +* Swarm placement constraint warning banner no longer shows up for `ucp-auth` services (#14539) +* "update out of sequence" error messages no longer appear when changing admin settings (#7093) +* Kubernetes namespace status appears in the web interface (#14526) +* UCP Kubernetes compose components always run on managers (#14208) +* `docker network ls --filter id=<id>` now works with a UCP client bundle (#14840) +* Collection deletes are correctly blocked if there is a node in the collection (#13704) + ## New Features ### Kubernetes * Kubernetes is updated to version 1.11.2. -* Access control for Kubernetes resources is now handled by the Kubernetes RBAC feature. Users can now create roles for Kubernetes APIs using Kubernetes `Role` and `ClusterRole` objects in the Kubernetes API. They can also grant permissions to users and service accounts with the `RoleBinding` and `ClusterRoleBinding` objects. The web interface for Kubernetes RBAC reflects these changes. +* Kubernetes native RBAC feature manages access control for Kubernetes resources. Users can now create roles for Kubernetes APIs using Kubernetes `Role` and `ClusterRole` objects in the Kubernetes API. They can also grant permissions to users and service accounts with the `RoleBinding` and `ClusterRoleBinding` objects. The web interface for Kubernetes RBAC reflects these changes. ### Logging -Admins can now enable audit logging in the UCP config. This logs all incoming user-initiated requests in the `ucp-controller` logs. Admins can choose whether to log only metadata for incoming requests or the full request body as well. +Admins can now enable audit logging in the UCP config. This logs all incoming user-initiated requests in the `ucp-controller` logs. Admins can choose whether to log only metadata for incoming requests or the full request body as well. For more information, see [Create UCP audit logs](https://docs.docker.com/ee/ucp/admin/configure/create-audit-logs/). ### Authentication -* Admins can configure UCP to use a SAML-enabled identity provider for user authentication. If enabled, users who log into the UCP web interface are redirected to the identity provider's website to log in. Upon log in, users are redirected back to the UCP web interface, authenticated as the user chosen. +Admins can configure UCP to use a SAML-enabled identity provider for user authentication. If enabled, users who log into the UCP web interface are redirected to the identity provider's website to log in. Upon log in, users are redirected back to the UCP web interface, authenticated as the user chosen. For more information, see [Enable SAML authentication](https://docs.docker.com/ee/ucp/admin/configure/enable-saml-authentication/). ### Metrics -* The `ucp-metrics` Prometheus server (used to render charts in the UCP interface) has been engineered from a container on manager nodes to a Kubernetes daemonset. This lets admins change the daemonset's scheduling rules so that it runs on a set of worker nodes instead of manager nodes. Admins can designate certain UCP nodes to be metrics server nodes, freeing up resources on manager nodes. +* The `ucp-metrics` Prometheus server (used to render charts in the UCP interface) has been engineered from a container on manager nodes to a Kubernetes daemonset. This lets admins change the daemonset's scheduling rules so that it runs on a set of worker nodes instead of manager nodes. Admins can designate certain UCP nodes to be metrics server nodes, freeing up resources on manager nodes. For more information, see [Collect UCP cluster metrics with Prometheus](https://docs.docker.com/ee/ucp/admin/configure/collect-cluster-metrics/). * A `/metricsdiscovery` endpoint is added to the UCP controller so users can connect their own Prometheus instances to scrape UCP metrics data. ### UCP web interface @@ -50,7 +59,7 @@ Admins can now enable audit logging in the UCP config. This logs all incoming us ### Configs -* UCP now stores its configs in its internal key-value store instead of in a Swarm config to allow config changes to propagate across the cluster more quickly. +* UCP now stores its configurations in its internal key-value store instead of in a Swarm configuration so changes can propagate across the cluster more quickly. ## API updates From 502e674f1327aa5e7f81688ee288e0da43a6b047 Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Thu, 1 Nov 2018 11:33:09 -0700 Subject: [PATCH 213/222] more edits --- ee/ucp/release-notes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ee/ucp/release-notes.md b/ee/ucp/release-notes.md index b071533301..d858c6e9e4 100644 --- a/ee/ucp/release-notes.md +++ b/ee/ucp/release-notes.md @@ -49,8 +49,8 @@ Admins can configure UCP to use a SAML-enabled identity provider for user authen ### Metrics -* The `ucp-metrics` Prometheus server (used to render charts in the UCP interface) has been engineered from a container on manager nodes to a Kubernetes daemonset. This lets admins change the daemonset's scheduling rules so that it runs on a set of worker nodes instead of manager nodes. Admins can designate certain UCP nodes to be metrics server nodes, freeing up resources on manager nodes. For more information, see [Collect UCP cluster metrics with Prometheus](https://docs.docker.com/ee/ucp/admin/configure/collect-cluster-metrics/). -* A `/metricsdiscovery` endpoint is added to the UCP controller so users can connect their own Prometheus instances to scrape UCP metrics data. +* The `ucp-metrics` Prometheus server (used to render charts in the UCP interface) was engineered from a container on manager nodes to a Kubernetes daemonset. This lets admins change the daemonset's scheduling rules so that it runs on a set of worker nodes instead of manager nodes. Admins can designate certain UCP nodes to be metrics server nodes, freeing up resources on manager nodes. For more information, see [Collect UCP cluster metrics with Prometheus](https://docs.docker.com/ee/ucp/admin/configure/collect-cluster-metrics/). +* The UCP controller has a `/metricsdiscovery` endpoint so users can connect their own Prometheus instances to scrape UCP metrics data. ### UCP web interface From 06f6d8b8ece412e03fb6ead84bd88798f21b0aba Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudezmt@users.noreply.github.com> Date: Thu, 1 Nov 2018 12:26:44 -0700 Subject: [PATCH 214/222] Minor edits --- release-notes/docker-compose.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/release-notes/docker-compose.md b/release-notes/docker-compose.md index a2f8c834e1..d4a72da42b 100644 --- a/release-notes/docker-compose.md +++ b/release-notes/docker-compose.md @@ -9,11 +9,11 @@ toc_max: 2 ### Bug Fixes -- Fixed a bug where working with containers created with a previous (< 1.23.0) - version of Compose would cause unexpected crashes +- Fixed a bug where working with containers created with a version of Compose earlier than `1.23.0` + would cause unexpected crashes. - Fixed an issue where the behavior of the `--project-directory` flag would - vary depending on which subcommand was being used. + vary depending on which subcommand was used. ## 1.23.0 (2018-10-30) From 4b5ccd7cd4220c31e3d1168b0d3942cbb8c48883 Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudez.mt@gmail.com> Date: Thu, 1 Nov 2018 13:36:41 -0700 Subject: [PATCH 215/222] Update docker-ce-stable and docker-ce-edge versions to 18.09 --- _config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index c899066eaa..02364f6a8a 100644 --- a/_config.yml +++ b/_config.yml @@ -20,8 +20,8 @@ exclude: ["_scripts", "apidocs/layouts", "Gemfile", "hooks"] # You can't have - characters in these for non-YAML reasons latest_stable_docker_engine_api_version: "1.37" -docker_ce_stable_version: "18.03" -docker_ce_edge_version: "18.08" +docker_ce_stable_version: "18.09" +docker_ce_edge_version: "18.09" docker_ee_version: "2.1" compose_version: "1.22.0" machine_version: "0.14.0" From fe8a830dc708f8d6021fe1be9bb68bfa7ebdaa0f Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Thu, 1 Nov 2018 14:47:11 -0700 Subject: [PATCH 216/222] engine upgrade known issue added --- ee/ucp/release-notes.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ee/ucp/release-notes.md b/ee/ucp/release-notes.md index d858c6e9e4..58dee7a06c 100644 --- a/ee/ucp/release-notes.md +++ b/ee/ucp/release-notes.md @@ -75,6 +75,8 @@ There are several backward-incompatible changes in the Kubernetes API that may a * If you have a pod with a subpath volume PVC, there’s a chance that after the upgrade, it will conflict with some other pod; see [this pull request](https://github.com/kubernetes/kubernetes/pull/61373). It’s not clear if this issue will just prevent those pods from starting or if the whole cluster will fail. ## Known issues +* There are important changes to the upgrade process that, if not correctly followed, can impact the availability of applications running on the Swarm during uprades. These constraints impact any upgrades coming from any Docker Engine version before 18.09 to version 18.09 or greater. For more information about about upgrading Docker Enterprise to version 2.1, see [Upgrade Docker](../upgrade) + * You must use the ID of the user, organization, or team if you manually create a **ClusterRoleBinding** or **RoleBinding** for `User` or `Group` subjects. (#14935) * For the `User` subject Kind, the `Name` field contains the ID of the user. * For the `Group` subject Kind, the format depends on whether you are create a Binding for a team or an organization: From e889b713ccedd278e9b3dac58f8017fd763cf897 Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudez.mt@gmail.com> Date: Mon, 29 Oct 2018 22:13:33 -0700 Subject: [PATCH 217/222] Add list of new features and known issues for 2.6, update 2.5 with known issues, fix previous NFS assertion final fix Add update to dtr/restore CLI option in the release notes, incorporate peer feedback --- .../admin/configure/external-storage/nfs.md | 4 +- ee/dtr/release-notes.md | 90 ++++++++++++++++--- 2 files changed, 80 insertions(+), 14 deletions(-) diff --git a/ee/dtr/admin/configure/external-storage/nfs.md b/ee/dtr/admin/configure/external-storage/nfs.md index 7111b59a68..8c5f2ea9c9 100644 --- a/ee/dtr/admin/configure/external-storage/nfs.md +++ b/ee/dtr/admin/configure/external-storage/nfs.md @@ -36,7 +36,7 @@ docker run -it --rm {{ page.dtr_org }}/{{ page.dtr_repo }}:{{ dtr_version }} ins <other options> ``` -The NFS storage URL should be in the format `nfs://<nfs server>/<directory>`. With **NFS v4**, you can specify additional options. See [docker/dtr install](../../../../../reference/dtr/2.6/cli/install/) for more details. +Use the format `nfs://<nfs server>/<directory>` for the NFS storage URL. To support **NFS v4**, you can now specify additional options when running [docker/dtr install](../../../../../reference/dtr/2.6/cli/install/) with `--nfs-storage-url`. When joining replicas to a DTR cluster, the replicas will pick up your storage configuration, so you will not need to specify it again. @@ -44,7 +44,7 @@ configuration, so you will not need to specify it again. ### Reconfigure DTR to use NFS When upgrading from a previous version of DTR that is already using -NFS, you can continue using the same configurations. If you want to use **NFS v4**, see [docker/dtr reconfigure](../../../../../reference/dtr/2.6/cli/reconfigure/) for more NFS options. +NFS, you can continue using the same configurations. To support **NFS v4**, additional NFS reconfiguration options have been added to the CLI. See [docker/dtr reconfigure](../../../../../reference/dtr/2.6/cli/reconfigure/) for more details. To take advantage of the new DTR built-in support for NFS, you can diff --git a/ee/dtr/release-notes.md b/ee/dtr/release-notes.md index 3b11316770..e3c70ee78f 100644 --- a/ee/dtr/release-notes.md +++ b/ee/dtr/release-notes.md @@ -15,9 +15,66 @@ known issues for each DTR version. You can then use [the upgrade instructions](admin/upgrade.md), to upgrade your installation to the latest release. +* [Version 2.6](#version-26) * [Version 2.5](#version-25) * [Version 2.4](#version-24) +# Version 2.6 + +## 2.6.0 (2018-11-08) + +### New Features + +* Web Interface + * Online garbage collection is no longer an experimental feature. Users can now write to DTR and push images during garbage collection. [Learn about garbage collection](../admin/configure/garbage-collection/). + * Repository admins can now enable tag pruning for every repository that they manage by adding a pruning policy or setting a tag limit. [Learn about tag pruning](../user/tag-pruning). + * Users can now review and audit repository events on the web interface with the addition of the **Activity** tab on each repository.[Learn about repository event audits](../user/manage-repository-events/audit-repository-events/). + * DTR admins can now enable auto-deletion of repository events based on specified conditions. [Learn about repository event auto-deletion](../admin/configure/auto-delete-repo-events/). + * DTR admins can now review and audit jobs on the web interface with the addition of **Job Logs** within System settings. [Learn about job audits on the web interface](../admin/manage-jobs/audit-jobs-via-ui/). + * DTR admins can now enable auto-deletion of job logs based on specified conditions. [Learn about repository event auto-deletion](../admin/configure/auto-delete-repo-events/). + * Users can now mirror images from another Docker Trusted or Docker Hub registry using the web interface. [Learn about pull mirroring](../user/promotion-policies/pull-mirror). + +* CLI + * To support NFS v4, users can now pass additional options such as `--async-nfs` and `--nfs-options` when installing or reconfiguring NFS for external storage. See [docker/dtr install](../../reference/dtr/2.6/cli/install) and [docker/dtr reconfigure](../../reference/dtr/2.6/cli/reconfigure) for more details. + * When installing and restoring DTR from an existing backup, users are now required to specify a storage flag: `--dtr-use-default-storage`, `--dtr-storage-volume`, or `--nfs-storage-url`. This ensures recovery of the configured storage setting when the backup was created. See [docker/dtr restore](../../reference/dtr/2.6/cli/restore) for more details. + +* API + * Security admins can now export vulnerability scans to CSV via the `GET /api/v0/imagescan/scansummary/repositories/{namespace}/{reponame}/{tag}/export` endpoint. Specify `text/csv` as an Accept request HTTP header. + * Repository admins can now interact with repository pruning policies using the following endpoints: + * `GET /api/v0/repositories/{namespace}/{reponame}/pruningPolicies` + * `POST /api/v0/repositories/{namespace}/{reponame}/pruningPolicies` + * `GET /api/v0/repositories/{namespace}/{reponame}/pruningPolicies/test` + * `GET /api/v0/repositories/{namespace}/{reponame}/pruningPolicies/{pruningpolicyid}` + * `GET /api/v0/repositories/{namespace}/{reponame}/pruningPolicies/{pruningpolicyid}` + * `PUT /api/v0/repositories/{namespace}/{reponame}/pruningPolicies/{pruningpolicyid}` + * `DELETE /api/v0/repositories/{namespace}/{reponame}/pruningPolicies/{pruningpolicyid}` + + See [Docker Trusted Registry API](../../reference/dtr/2.6/api/) for endpoint details and example usage. Alternatively, you can log in to the DTR web interface and select **API** from the bottom left navigation pane. + +### Known issues + +* Web Interface + * Users with read-only permissions to a repository can edit the repository README but their changes will not be saved. Only repository admins should have the ability to [edit the description](../admin/manage-users/permission-levels/#team-permission-levels) of a repository. (docker/dhe-deploy #9677) + * Poll mirroring for Docker plugins such as `docker/imagefs` is currently broken. (docker/dhe-deploy #9490) + * When viewing the details of a scanned image tag, the header may display a different vulnerability count from the layer details. (docker/dhe-deploy #9474) + +* Webhooks + * When configured for "Image promoted from repository" events, a webhook notification is triggered twice during an image promotion when scanning is enabled on a repository. (docker/dhe-deploy #9685) + * HTTPS webhooks do not go through HTTPS proxy when configured. (docker/dhe-deploy #9492) + +* System + * When upgrading from `2.5` to `2.6`, the system will run a `metadatastoremigration` job after a successful upgrade. This is necessary for online garbage collection. If the three system attempts fail, you will have to retrigger the `metadatastoremigration` job manually. [Learn about manual metadata store migration](../admin/upgrade/#25-to-26-upgrade). + +### Deprecations + +* API + * `GET /api/v0/imagescan/repositories/{namespace}/{reponame}/{tag}` is deprecated in favor of `GET /api/v0/imagescan/scansummary/repositories/{namespace}/{reponame}/{tag}`. + * The following endpoints have been removed since online garbage collection will take care of these operations: + * `DELETE /api/v0/accounts/{namespace}/repositories` + * `DELETE /api/v0/repositories/{namespace}/{reponame}/manifests/{reference}` + * The `enableManifestLists` field on the `POST /api/v0/repositories/{namespace}` endpoint will be removed in DTR 2.7. See [Deprecation Notice](deprecation-notice) for more details. + + # Version 2.5 ## 2.5.3 (2018-6-21) @@ -32,6 +89,11 @@ to upgrade your installation to the latest release. * Prevent OOM during garbage collection by reading less data into memory at a time. * Fixed issue where worker capacities wouldn't update on minor version upgrades. +### Known Issues +* Webhooks + * When configured for "Image promoted from repository" events, a webhook notification will be triggered twice during an image promotion when scanning is enabled on a repository. (docker/dhe-deploy #9685) + + ## 2.5.2 (2018-5-21) ### Bug fixes @@ -59,7 +121,7 @@ to upgrade your installation to the latest release. * Copy existing scan results to new target repository when an image is promoted. * Address an issue causing scan results to not be available for images with long names. * Remove a race condition in which repositories deleted during tagmigration were causing tagmigration to fail. -* Enhancements to the mirroring UI including: +* Enhancements to the mirroring interface including: * Fixed URL for the destination repository. * Option to skip TLS verification when testing mirroring. @@ -88,7 +150,7 @@ restoring from a backup. DTR API without providing their credentials. [Learn about access tokens](user/access-tokens.md). * You can now configure DTR to run garbage collection jobs without putting DTR -in read-only mode. This is still experimental. +into read-only mode. This is still experimental. [Learn about garbage collection](admin/configure/garbage-collection.md). * Administrators can hide vulnerabilities in given image layers if they know that the vulnerability has been fixed. @@ -111,8 +173,8 @@ instead. ### Bug fixes -* UI - * Several improvements to the UI to make it more stable +* Web Interface + * Several improvements to the web interface to make it more stable * User accounts * When a user changes their password they are automatically logged out. * Vulnerability scanner @@ -128,19 +190,20 @@ specify `--log-protocol`. ### Known issues -* Web UI - * The web UI shows "This repository has no tags" in repositories where tags +* Web Interface + * The web interface shows "This repository has no tags" in repositories where tags have long names. As a workaround, reduce the length of the name for the repository and tag. - * When deleting a repository with signed images, the DTR web UI no longer + * When deleting a repository with signed images, the DTR web interface no longer shows instructions on how to delete trust data. - * There's no UI support to update mirroring policies when rotating the TLS + * There's no web interface support to update mirroring policies when rotating the TLS certificates used by DTR. Use the API instead. - * The UI for promotion policies is currently broken if you have a large number + * The web interface for promotion policies is currently broken if you have a large number of repositories. - * Clicking "Save & Apply" on a promotions policies doesn't work. -* Web hooks - * There is no web hook event for when an image is pulled. + * Clicking "Save & Apply" on a promotion policy doesn't work. +* Webhooks + * There is no webhook event for when an image is pulled. + * HTTPS webhooks do not go through HTTPS proxy when configured. (docker/dhe-deploy #9492) * Online garbage collection * The events API won't report events when tags and manifests are deleted. * The events API won't report blobs deleted by the garbage collection job. @@ -151,6 +214,9 @@ specify `--log-protocol`. * On upgrade the scanningstore container may restart with this error message: FATAL: database files are incompatible with server +* System + * When opting into online garbage collection, the system will run a `metadatastoremigration` job after a successful upgrade. If the three system attempts fail, you will have to retrigger the `metadatastoremigration` job manually. [Learn about manual metadata store migration](../../v18.03/ee/dtr/admin/configure/garbage-collection/#metadata-store-migration). + # Version 2.4 ## Version 2.4.6 From 02ab1ec89151222c8203dbf7655ed8c29cb8a270 Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Fri, 2 Nov 2018 11:38:02 -0700 Subject: [PATCH 218/222] LDAP disappearing settins added to known issues --- ee/ucp/release-notes.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ee/ucp/release-notes.md b/ee/ucp/release-notes.md index 58dee7a06c..12c2d61770 100644 --- a/ee/ucp/release-notes.md +++ b/ee/ucp/release-notes.md @@ -77,6 +77,8 @@ There are several backward-incompatible changes in the Kubernetes API that may a ## Known issues * There are important changes to the upgrade process that, if not correctly followed, can impact the availability of applications running on the Swarm during uprades. These constraints impact any upgrades coming from any Docker Engine version before 18.09 to version 18.09 or greater. For more information about about upgrading Docker Enterprise to version 2.1, see [Upgrade Docker](../upgrade) +* In the UCP web interface, LDAP settings disappear after submitting them. However, the sattings are properly saved. (#15503) + * You must use the ID of the user, organization, or team if you manually create a **ClusterRoleBinding** or **RoleBinding** for `User` or `Group` subjects. (#14935) * For the `User` subject Kind, the `Name` field contains the ID of the user. * For the `Group` subject Kind, the format depends on whether you are create a Binding for a team or an organization: From 35a4934a85da71a8cb736b7a4914b3f3e1416f3d Mon Sep 17 00:00:00 2001 From: David Deyo <david.deyo@docker.com> Date: Fri, 2 Nov 2018 13:30:58 -0700 Subject: [PATCH 219/222] Update release-notes.md --- ee/ucp/release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ee/ucp/release-notes.md b/ee/ucp/release-notes.md index 12c2d61770..068507c848 100644 --- a/ee/ucp/release-notes.md +++ b/ee/ucp/release-notes.md @@ -77,7 +77,7 @@ There are several backward-incompatible changes in the Kubernetes API that may a ## Known issues * There are important changes to the upgrade process that, if not correctly followed, can impact the availability of applications running on the Swarm during uprades. These constraints impact any upgrades coming from any Docker Engine version before 18.09 to version 18.09 or greater. For more information about about upgrading Docker Enterprise to version 2.1, see [Upgrade Docker](../upgrade) -* In the UCP web interface, LDAP settings disappear after submitting them. However, the sattings are properly saved. (#15503) +* In the UCP web interface, LDAP settings disappear after submitting them. However, the settings are properly saved. (#15503) * You must use the ID of the user, organization, or team if you manually create a **ClusterRoleBinding** or **RoleBinding** for `User` or `Group` subjects. (#14935) * For the `User` subject Kind, the `Name` field contains the ID of the user. From 2e36f4787268e3dc90fcc86805940e5d7ee68d12 Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Fri, 2 Nov 2018 14:17:59 -0700 Subject: [PATCH 220/222] deprecated features updated --- ee/ucp/release-notes.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ee/ucp/release-notes.md b/ee/ucp/release-notes.md index 12c2d61770..80e3c1c071 100644 --- a/ee/ucp/release-notes.md +++ b/ee/ucp/release-notes.md @@ -21,7 +21,7 @@ upgrade your installation to the latest release. # Version 3.1 -## 3.1.0 (2018-11-8) +## 3.1.0 (2018-11-08) ## Bug Fixes @@ -54,7 +54,7 @@ Admins can configure UCP to use a SAML-enabled identity provider for user authen ### UCP web interface -* If you enable single sign-on for a DTR instance with UCP, the UCP web interface shows image vulnerability data for images in that DTR instance. Containers, services, etc. that use images from that DTR instance show any vulnerabilities DTR detects. +* If you enable single sign-on for a DTR instance with UCP, the UCP web interface shows image vulnerability data for images in that DTR instance. Containers and services that use images from that DTR instance show any vulnerabilities DTR detects. * The UCP web interface is redesigned to offer larger views for viewing individual resources, with more information for Kubernetes resources. ### Configs @@ -77,7 +77,7 @@ There are several backward-incompatible changes in the Kubernetes API that may a ## Known issues * There are important changes to the upgrade process that, if not correctly followed, can impact the availability of applications running on the Swarm during uprades. These constraints impact any upgrades coming from any Docker Engine version before 18.09 to version 18.09 or greater. For more information about about upgrading Docker Enterprise to version 2.1, see [Upgrade Docker](../upgrade) -* In the UCP web interface, LDAP settings disappear after submitting them. However, the sattings are properly saved. (#15503) +* In the UCP web interface, LDAP settings disappear after submitting them. However, the settings are properly saved. (#15503) * You must use the ID of the user, organization, or team if you manually create a **ClusterRoleBinding** or **RoleBinding** for `User` or `Group` subjects. (#14935) * For the `User` subject Kind, the `Name` field contains the ID of the user. @@ -100,7 +100,8 @@ There are several backward-incompatible changes in the Kubernetes API that may a The following features are deprecated in UCP 3.1 * Collections - * Nested collections are deprecated and will be removed in future versions of the product. Customers should use non-nested collections going forward. + * User-created nested collections more than 2 layers deep within the root `/Swarm/` collection are deprecated and will be removed in future versions of the product. In the future, we recommend that at most only two levels of collections be created within UCP under the shared Cluster collection designated as `/Swarm/`. For example, if a production collection is created as a collection under the cluster collection `/Swarm/` as `/Swarm/production/` then at most one level of nestedness should be created, as in `/Swarm/production/app/`. + * Kubernetes * **PersistentVolumeLabel** admission controller is deprecated in Kubernetes 1.11. This functionality will be migrated to Cloud Controller Manager [https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/](https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/) * `--cni-install-url` is deprecated in favor of `--unmanaged-cni` From 12979d0f375dea942ece5c7e1f6327df9c909cca Mon Sep 17 00:00:00 2001 From: ddeyo <david.deyo@docker.com> Date: Fri, 2 Nov 2018 16:33:18 -0700 Subject: [PATCH 221/222] fix branch --- ee/images/docker-ee-overview-1.png | Bin 129442 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 ee/images/docker-ee-overview-1.png diff --git a/ee/images/docker-ee-overview-1.png b/ee/images/docker-ee-overview-1.png deleted file mode 100644 index 87219c3988d1e321f91bc3afb403df0cfb4e3c41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129442 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 From 037c20ef3297fe714719469591db06fdac2a6888 Mon Sep 17 00:00:00 2001 From: Maria Bermudez <bermudezmt@users.noreply.github.com> Date: Fri, 2 Nov 2018 17:46:18 -0700 Subject: [PATCH 222/222] Moved dates under version numbers In response to https://github.com/docker/docs-private/pull/815#discussion_r230534282. --- ee/dtr/release-notes.md | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/ee/dtr/release-notes.md b/ee/dtr/release-notes.md index e3c70ee78f..303db88281 100644 --- a/ee/dtr/release-notes.md +++ b/ee/dtr/release-notes.md @@ -21,7 +21,9 @@ to upgrade your installation to the latest release. # Version 2.6 -## 2.6.0 (2018-11-08) +## 2.6.0 + +(2018-11-08) ### New Features @@ -77,7 +79,9 @@ to upgrade your installation to the latest release. # Version 2.5 -## 2.5.3 (2018-6-21) +## 2.5.3 + +(2018-6-21) ### New Features @@ -94,13 +98,17 @@ to upgrade your installation to the latest release. * When configured for "Image promoted from repository" events, a webhook notification will be triggered twice during an image promotion when scanning is enabled on a repository. (docker/dhe-deploy #9685) -## 2.5.2 (2018-5-21) +## 2.5.2 + +(2018-5-21) ### Bug fixes * Fixed a problem where promotion policies based on scanning results would not be executed correctly. -## 2.5.1 (2018-5-17) +## 2.5.1 + +(2018-5-17) ### New features @@ -125,7 +133,9 @@ to upgrade your installation to the latest release. * Fixed URL for the destination repository. * Option to skip TLS verification when testing mirroring. -## 2.5.0 (2018-4-17) +## 2.5.0 + +(2018-4-17) ### New features @@ -254,13 +264,17 @@ specify `--log-protocol`. * Reduce noise in the jobrunner logs by changing some of the more detailed messages to debug level. * Eliminate a race condition in which webhook for license updates doesn't fire. -## Version 2.4.3 (2018-03-19) +## Version 2.4.3 + +(2018-03-19) **Security** * Dependencies updated to consume upstream CVE patches. -## Version 2.4.2 (13 February 2018) +## Version 2.4.2 + +(13 February 2018) **Security notice** @@ -276,7 +290,9 @@ potentially disclosed due to the vulnerability. Use the `--log-driver=none` option for `docker run` when running a DTR backup, HA cluster join or dumpcerts. -## 2.4.1 (20 November 2017) +## 2.4.1 + +(20 November 2017) **Bug fixes** @@ -307,7 +323,9 @@ removed in DTR 2.5. You can use the `/api/v0/imagescan/repositories/{namespace}/{reponame}/{tag}` endpoint instead. -## DTR 2.4.0 (2 November 2017) +## DTR 2.4.0 + +(2 November 2017) **New features**

    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 literal 0 HcmV?d00001 diff --git a/docker-hub/images/github-webhook.png b/docker-hub/images/github-webhook.png new file mode 100644 index 0000000000000000000000000000000000000000..519eed1171edbb46e2e119b2a89edaa47232c779 GIT binary patch literal 128297 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 R_R;@T?rYvFxckiS{{VeoucQC~ literal 0 HcmV?d00001 From 72913deb384ba14680ff1a9917f40ca77f6a8fdd Mon Sep 17 00:00:00 2001 From: Jie Min Wong Date: Fri, 28 Sep 2018 17:30:04 -0700 Subject: [PATCH 088/222] fix table --- docker-hub/github.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker-hub/github.md b/docker-hub/github.md index 9dd2817393..12bb833820 100644 --- a/docker-hub/github.md +++ b/docker-hub/github.md @@ -194,7 +194,8 @@ the repository, click "Settings" (the gear), then select "Webhooks". You must have Administrator privileges on the repository to view or modify this setting. Click on 'Add webhook', and use these settings: ---- +Field | Value +-------------- | Payload URL | https://registry.hub.docker.com/hooks/github | | Content type | application/json | | Which events would you like to trigger this webhook? | Just the push event | From ccbe274e821422f72049ef9ce0c0076371555621 Mon Sep 17 00:00:00 2001 From: Jie Min Wong Date: Fri, 28 Sep 2018 17:31:51 -0700 Subject: [PATCH 089/222] update table --- docker-hub/github.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docker-hub/github.md b/docker-hub/github.md index 12bb833820..b4ffeed483 100644 --- a/docker-hub/github.md +++ b/docker-hub/github.md @@ -194,12 +194,13 @@ the repository, click "Settings" (the gear), then select "Webhooks". You must have Administrator privileges on the repository to view or modify this setting. Click on 'Add webhook', and use these settings: -Field | Value --------------- + +| Field | Value | +| ------|------ | | Payload URL | https://registry.hub.docker.com/hooks/github | | Content type | application/json | | Which events would you like to trigger this webhook? | Just the push event | -| Active | selected | +| Active | checked | The image below shows the 'Webhooks/Add webhook' form with the above settings reflected: From 9f4c2271aed2eebee810d82353023b65f1777b60 Mon Sep 17 00:00:00 2001 From: Eiichi Kitagawa Date: Fri, 28 Sep 2018 22:02:59 -0700 Subject: [PATCH 090/222] missing "d" from: ... Docker an Notary... to: ... Docker and Notary ... --- .../dtr/2.3/guides/user/manage-images/sign-images/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datacenter/dtr/2.3/guides/user/manage-images/sign-images/index.md b/datacenter/dtr/2.3/guides/user/manage-images/sign-images/index.md index add8e4487c..cef1a76464 100644 --- a/datacenter/dtr/2.3/guides/user/manage-images/sign-images/index.md +++ b/datacenter/dtr/2.3/guides/user/manage-images/sign-images/index.md @@ -47,7 +47,7 @@ need to do the same procedure for every one of them. ### Configure your Notary client Start by [configuring your Notary client](../../access-dtr/configure-your-notary-client.md). -This ensures the Docker an Notary CLI clients know about your UCP private keys. +This ensures the Docker and Notary CLI clients know about your UCP private keys. ### Initialize the trust metadata From ac9a944eed8e5ab77d4397e2144497f64c63c418 Mon Sep 17 00:00:00 2001 From: Maria Bermudez Date: Mon, 1 Oct 2018 12:15:57 -0700 Subject: [PATCH 091/222] Update github.md - Grammar fixes - Instruction clarifications --- docker-hub/github.md | 68 ++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/docker-hub/github.md b/docker-hub/github.md index b4ffeed483..43f0b7a45d 100644 --- a/docker-hub/github.md +++ b/docker-hub/github.md @@ -12,28 +12,27 @@ skip to [Creating an Automated Build](github.md#creating-an-automated-build). > *Note:* > Automated Builds currently require *read* and *write* access since > [Docker Hub](https://hub.docker.com) needs to set up a GitHub webhook. -> We have no choice here, this is how GitHub manages permissions. +> We have no choice here – this is how GitHub manages permissions. > We do guarantee nothing else is touched in your account. To set up an Automated Build of a repository on GitHub, you need to link [Docker Hub](https://hub.docker.com/account/authorized-services/) to your GitHub account. This allows the registry to see your GitHub repositories. -To add, remove or view your linked account, go to the "Linked Accounts & -Services" section of your Hub profile "Settings". +To add, remove or view your linked account, log in to your Docker Hub account. Select **Settings > Linked Accounts & Services**. ![authorized-services](images/authorized-services.png) -When linking to GitHub, select either "Public and Private", -or "Limited Access" linking. +When linking to GitHub, select either ***Public and Private***, +or ***Limited Access***. ![add-authorized-github-service.png](images/add-authorized-github-service.png) -The "Public and Private" option is the easiest to use, as it grants the Docker +The ***Public and Private*** option is the easiest to use, as it grants the Docker Hub full access to all of your repositories. GitHub also allows you to grant access to repositories belonging to your GitHub organizations. -If you choose "Limited Access", Docker Hub only gets permission to access your +If you choose ***Limited Access***, Docker Hub only gets permission to access your public data and public repositories. Follow the onscreen instructions to authorize and link your GitHub account to @@ -43,29 +42,30 @@ which to create the Automatic Build. You can review and revoke Docker Hub's access by visiting the [GitHub User's Applications settings](https://github.com/settings/applications). -> **Note**: If you delete the GitHub account linkage that is used for one of your -> automated build repositories, the previously built images are still available. +> **Note**: If you delete the connection to the GitHub account that is used for one of your +> automated build repositories, previously built images are still available. > If you re-link to that GitHub account later, the automated build can be started -> using the "Start Build" button on the Hub, or if the webhook on the GitHub repository +> using the **Start Build** button on the Hub, or if the webhook on the GitHub repository > still exists, it is triggered by any subsequent commits. -## Auto builds and limited linked GitHub accounts. +## Auto builds and limited linked GitHub accounts -If you selected to link your GitHub account with only a "Limited Access" link, -then after creating your automated build, you need to either manually -trigger a Docker Hub build using the "Start a Build" button, or add the GitHub -webhook manually, as described in [GitHub Webhook](github.md#github-webhook). This only works for repositories -under the user account, and adding an automated build to a public GitHub -organization using a "Limited Access" link is not possible. +If you chose ***Limited Access*** for your Github account connection, after creating your automated build, +you will need to either: +* Manually trigger a Docker Hub build using the **Start a Build** button, or +* Add the GitHub webhook manually, as described in [GitHub Webhook](github.md#github-webhook). + +This only works for repositories under the user account, and adding an automated build to a public GitHub +organization using a ***Limited Access*** link is not possible. ## Changing the GitHub user link If you want to remove, or change the level of linking between your GitHub -account and the Docker Hub, you need to do this in two places. +account and the Docker Hub, you need to make the change in two places. -First, remove the "Linked Account" from your Docker Hub "Settings". Then go to -your GitHub account's Personal settings, and in the "Applications" section, -"Revoke access". +First, remove the **Linked Account** from your Docker Hub **Settings**. Then go to +your GitHub account's Personal settings, and in the **Applications** section, +***Revoke access***. You can now re-link your account at any time. @@ -75,20 +75,20 @@ GitHub organizations and private repositories forked from organizations are made available to auto build using the "Docker Hub Registry" application, which needs to be added to the organization - and then applies to all users. -To check, or request access, go to your GitHub user's "Setting" page, select the -"Applications" section from the left side bar, then click the "View" button for +To check, or request access, go to your GitHub **Settings** page, select the +**Applications** section from the left side bar, then click the **View** button for "Docker Hub Registry". ![Check User access to GitHub](images/gh-check-user-org-dh-app-access.png) -The organization's administrators may need to go to the Organization's "Third -party access" screen in "Settings" to grant or deny access to the Docker Hub +The organization's administrators may need to go to the Organization's **Third +party access** screen in **Settings** to grant or deny access to the Docker Hub Registry application. This change applies to all organization members. ![Check Docker Hub application access to Organization](images/gh-check-admin-org-dh-app-access.png) More detailed access controls to specific users and GitHub repositories can be -managed using the GitHub "People and Teams" interfaces. +managed using the GitHub **People and Teams** interfaces. ## Creating an Automated Build @@ -182,17 +182,17 @@ build. A GitHub webhook allows GitHub to notify the Docker Hub when something has been committed to a given git repository. -When you create an Automated Build from a GitHub user that has full "Public and -Private" linking, a Service Hook should get automatically added to your GitHub +When you create an Automated Build from a GitHub user that has full **Public and +Private** linking, a Service Hook should get automatically added to your GitHub repository. -If your GitHub account link to the Docker Hub is "Limited Access", then you +If your GitHub account link to the Docker Hub is **Limited Access**, then you need to add the webhook manually. To add, confirm, or modify the webhook, log in to GitHub, then navigate to -the repository, click "Settings" (the gear), then select "Webhooks". -You must have Administrator privileges on the repository to view or modify -this setting. Click on 'Add webhook', and use these settings: +the repository. Within the repository, select **Settings > Webhooks**. +You must have admin privileges on the repository to view or modify +this setting. Click **Add webhook**, and use the following settings: | Field | Value | @@ -202,11 +202,11 @@ this setting. Click on 'Add webhook', and use these settings: | Which events would you like to trigger this webhook? | Just the push event | | Active | checked | -The image below shows the 'Webhooks/Add webhook' form with the above settings reflected: +The image below shows the **Webhooks/Add webhook** form with the above settings reflected: ![github-webhook-add](images/github-webhook-add.png) -If configured correctly, you'll see this in the 'Webhooks' view +If configured correctly, you'll see this in the **Webhooks** view ![github-webhook](images/github-webhook.png) From b74257439b70bcb0ae72e33dbb219f4b63aaf939 Mon Sep 17 00:00:00 2001 From: Cameron Gagnon Date: Mon, 1 Oct 2018 13:47:06 -0700 Subject: [PATCH 092/222] Grammatical change of 'you' to 'your' --- install/linux/docker-ce/binaries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/linux/docker-ce/binaries.md b/install/linux/docker-ce/binaries.md index 051d0569c2..7f3fe62ca1 100644 --- a/install/linux/docker-ce/binaries.md +++ b/install/linux/docker-ce/binaries.md @@ -28,7 +28,7 @@ meets the prerequisites: - A 64-bit installation - Version 3.10 or higher of the Linux kernel. The latest version of the kernel - available for you platform is recommended. + available for your platform is recommended. - `iptables` version 1.4 or higher - `git` version 1.7 or higher - A `ps` executable, usually provided by `procps` or a similar package. From 1af68b8c4f2b2199fa10ea9f11b3f9d0aa8facda Mon Sep 17 00:00:00 2001 From: ddeyo Date: Tue, 2 Oct 2018 10:59:48 -0700 Subject: [PATCH 093/222] remove service driller --- reference/ucp/3.0/cli/support.md | 1 - 1 file changed, 1 deletion(-) diff --git a/reference/ucp/3.0/cli/support.md b/reference/ucp/3.0/cli/support.md index 7649e26824..d2e8146137 100644 --- a/reference/ucp/3.0/cli/support.md +++ b/reference/ucp/3.0/cli/support.md @@ -25,5 +25,4 @@ This command creates a support dump file for the specified node(s), and prints i | Option | Description | |:--------------------------|:---------------------------| |`--loglines`|Specify number of lines to grab from `journalctl`. The default is 10,000 lines.| -|`--servicedriller`|Run the swarm service driller (ssd) tool. For more information on this tool, see [Docker Swarm Service Driller (ssd)](https://github.com/docker/libnetwork/tree/master/cmd/ssd) Not run by default.| |`--nodes`|Select specific nodes on which to produce a support dump. Comma-separated node IDs are allowed. The default selects all nodes.| From 67845656a35c56a9ee67a1cf7dd5dba90058b867 Mon Sep 17 00:00:00 2001 From: Anne Henmi Date: Thu, 4 Oct 2018 10:59:04 -0600 Subject: [PATCH 094/222] resolve merge conflict --- engine/cc-ee-node-activation.md | 103 ++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 engine/cc-ee-node-activation.md diff --git a/engine/cc-ee-node-activation.md b/engine/cc-ee-node-activation.md new file mode 100644 index 0000000000..dceb0eb4bc --- /dev/null +++ b/engine/cc-ee-node-activation.md @@ -0,0 +1,103 @@ +--- +description: Engine +keywords: Engine, CE, EE, node activate +title: CE-EE Node Activate +--- + +The Docker Enterprise Engine for Docker `18.09` release introduces a new feature called CE-EE Node Activate, which allows a user to perform an in-place seamless activation of the EE feature-set on an existing CE node through the Docker Command Line Interface (CLI) without a re-install. + +CE-EE node activate will apply a license, and if you aren't already running the Enterprise engine, and switch the Docker engine to the enterprise engine binary. + +The Docker Commmunity Edition Engine for Docker version must be version `18.09` or higher. + +The activation can be performed either online with connection to Docker Hub, or offline. + +## Limitations + +* This feature is only supported on x86 Linux nodes +* Windows nodes are not currently supported +* Node level Engine activation between CE and EE is only supported in the same version of Docker Enterprise Engine for Docker +* Prior version of the Docker Enterprise Engine for Docker to not support this feature + +## Docker Engine 18.09 CE to EE Node Activation Process + +1. Check the current Docker version. +``` +root@docker-node:~# docker version +Client: + Version: 18.09.0-ce + API version: 1.39 + Go version: go1.10.3 + Git commit: ca36ebe + Built: Thu Aug 23 18:21:56 2018 + OS/Arch: linux/amd64 + Experimental: false +Server: + Engine: + Version: 18.09.0-ce + API version: 1.39 (minimum version 1.12) + Go version: go1.10.3 + Git commit: ca36ebe + Built: + OS/Arch: linux/amd64 + Experimental: false +``` +**NOTE**: Your output may vary slightly from what is displayed on this page. + +2. Log into the Docker engine from the command line. + +``` +root@docker-node:~# docker login +Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. +Username: beluga +Password: +WARNING! Your password will be stored unencrypted in /home/docker/.docker/config.json. +Configure a credential helper to remove this warning. See +https://docs.docker.com/engine/reference/commandline/login/#credentials-store +Login Succeeded +``` + +3. Activate the EE license. You must use sudo even if your user is part of the docker group. + +``` +root@docker-node:~# sudo docker engine activate +Looking for existing licenses for beluga... +NUM OWNER PRODUCT ID EXPIRES PRICING COMPONENTS +0 beluga docker-ee-trial 2018-09-13 21:41:12 +0000 UTC Nodes:10 +1 beluga docker-ee-trial 2018-08-31 03:17:15 +0000 UTC Nodes:10 +``` + +4. Pick the license of your choice +``` +Please pick a license by number: 0 +waiting for engine to be responsive... engine is online. +``` + +5. Check the Docker Enterprise Engine for Docker version. The server engine will now be EE, and the client will stay CE. +``` + +root@docker-node:~# docker version +Client: + Version: 18.09.0-ce + API version: 1.39 + Go version: go1.10.3 + Git commit: ca36ebe + Built: Thu Aug 23 18:21:56 2018 + OS/Arch: linux/amd64 + Experimental: false +Server: + Engine: + Version: 18.09.0-ee-1 + API version: 1.39 (minimum version 1.12) + Go version: go1.10.3 + Git commit: b9e7996 + Built: + OS/Arch: linux/amd64 + Experimental: false +``` + +**NOTE**: Your output may vary slightly from what is displayed on this page. + +## Off-line CE-EE node activation + +For offline CE-EE node activation, you'll need to get the enterprise engine onto the system. The recommended model is to download the EE deb or rpm packages manually and copy them to the target systems. Afterward, download the license manually, and copy that license to the target systems. Use the `--license` flag to the activate command. From 29121ec5dc0cb893782a296a3dc5307d2f3cdb2b Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Fri, 7 Sep 2018 10:36:11 -0600 Subject: [PATCH 095/222] Update cc-ee-node-activation.md Fixed per discussion from P team and @JustinINevill in Slack. --- engine/cc-ee-node-activation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/cc-ee-node-activation.md b/engine/cc-ee-node-activation.md index dceb0eb4bc..78a9bb89cb 100644 --- a/engine/cc-ee-node-activation.md +++ b/engine/cc-ee-node-activation.md @@ -8,7 +8,7 @@ The Docker Enterprise Engine for Docker `18.09` release introduces a new feature CE-EE node activate will apply a license, and if you aren't already running the Enterprise engine, and switch the Docker engine to the enterprise engine binary. -The Docker Commmunity Edition Engine for Docker version must be version `18.09` or higher. +The Docker Community Edition version must be 18.09 or higher. The activation can be performed either online with connection to Docker Hub, or offline. From 1d1d9f59a9aca2145d8bf9166822fcf02268da3e Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Fri, 7 Sep 2018 13:45:14 -0600 Subject: [PATCH 096/222] Update cc-ee-node-activation.md --- engine/cc-ee-node-activation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/engine/cc-ee-node-activation.md b/engine/cc-ee-node-activation.md index 78a9bb89cb..87b05a9d4a 100644 --- a/engine/cc-ee-node-activation.md +++ b/engine/cc-ee-node-activation.md @@ -4,7 +4,7 @@ keywords: Engine, CE, EE, node activate title: CE-EE Node Activate --- -The Docker Enterprise Engine for Docker `18.09` release introduces a new feature called CE-EE Node Activate, which allows a user to perform an in-place seamless activation of the EE feature-set on an existing CE node through the Docker Command Line Interface (CLI) without a re-install. +The Docker Engine release `18.09` release introduces a new feature called CE-EE Node Activate, which allows a user to perform an in-place seamless activation of the EE feature-set on an existing CE node through the Docker Command Line Interface (CLI) without a re-install. CE-EE node activate will apply a license, and if you aren't already running the Enterprise engine, and switch the Docker engine to the enterprise engine binary. @@ -73,7 +73,7 @@ Please pick a license by number: 0 waiting for engine to be responsive... engine is online. ``` -5. Check the Docker Enterprise Engine for Docker version. The server engine will now be EE, and the client will stay CE. +5. Check the Docker Engine version. The server engine will now be EE, and the client will stay CE. ``` root@docker-node:~# docker version From b33fc8d69cc6a643487311e07970c96ed6f91339 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 10 Sep 2018 12:34:53 -0600 Subject: [PATCH 097/222] Update cc-ee-node-activation.md --- engine/cc-ee-node-activation.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/engine/cc-ee-node-activation.md b/engine/cc-ee-node-activation.md index 87b05a9d4a..d85c83e987 100644 --- a/engine/cc-ee-node-activation.md +++ b/engine/cc-ee-node-activation.md @@ -1,12 +1,12 @@ --- description: Engine -keywords: Engine, CE, EE, node activate -title: CE-EE Node Activate +keywords: Engine, CE, EE, node, activation, enterprise +title: Enterprise Node Activation --- -The Docker Engine release `18.09` release introduces a new feature called CE-EE Node Activate, which allows a user to perform an in-place seamless activation of the EE feature-set on an existing CE node through the Docker Command Line Interface (CLI) without a re-install. +The Docker Engine release `18.09` release introduces a new feature called CE-EE Node Activate, which allows a user to perform an in-place seamless activation of the Enterprise engine feature-set on an existing Community Edition (CE) node through the Docker command line. -CE-EE node activate will apply a license, and if you aren't already running the Enterprise engine, and switch the Docker engine to the enterprise engine binary. +Enterprise Node Activation will apply a license, and if you aren't already running the Enterprise engine, and switch the Docker engine to the enterprise engine binary. The Docker Community Edition version must be 18.09 or higher. @@ -17,7 +17,7 @@ The activation can be performed either online with connection to Docker Hub, or * This feature is only supported on x86 Linux nodes * Windows nodes are not currently supported * Node level Engine activation between CE and EE is only supported in the same version of Docker Enterprise Engine for Docker -* Prior version of the Docker Enterprise Engine for Docker to not support this feature +* Prior versions of Docker CE do not support this feature ## Docker Engine 18.09 CE to EE Node Activation Process @@ -100,4 +100,4 @@ Server: ## Off-line CE-EE node activation -For offline CE-EE node activation, you'll need to get the enterprise engine onto the system. The recommended model is to download the EE deb or rpm packages manually and copy them to the target systems. Afterward, download the license manually, and copy that license to the target systems. Use the `--license` flag to the activate command. +For offline CE-EE node activation, you'll need to get the enterprise engine onto the system. The recommended model is to download the EE deb or rpm packages manually and copy them to the target systems. Afterward, download the license manually, and copy that license to the target systems. Use the `--license ` command line option to the activate command. From 73bc8269f5b01d325f811461c61e77d98a4c8c41 Mon Sep 17 00:00:00 2001 From: Anne Henmi <41210220+ahh-docker@users.noreply.github.com> Date: Mon, 10 Sep 2018 15:11:55 -0600 Subject: [PATCH 098/222] Update cc-ee-node-activation.md --- engine/cc-ee-node-activation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/engine/cc-ee-node-activation.md b/engine/cc-ee-node-activation.md index d85c83e987..4542bea926 100644 --- a/engine/cc-ee-node-activation.md +++ b/engine/cc-ee-node-activation.md @@ -1,12 +1,12 @@ --- description: Engine keywords: Engine, CE, EE, node, activation, enterprise -title: Enterprise Node Activation +title: CE-EE Node Activate --- The Docker Engine release `18.09` release introduces a new feature called CE-EE Node Activate, which allows a user to perform an in-place seamless activation of the Enterprise engine feature-set on an existing Community Edition (CE) node through the Docker command line. -Enterprise Node Activation will apply a license, and if you aren't already running the Enterprise engine, and switch the Docker engine to the enterprise engine binary. +CE-EE Node Activate will apply a license, and if you aren't already running the Enterprise engine, and switch the Docker engine to the enterprise engine binary. The Docker Community Edition version must be 18.09 or higher. From f79529bfe52005d4438f729d32af584008d38cdb Mon Sep 17 00:00:00 2001 From: Anne Henmi Date: Thu, 4 Oct 2018 15:31:33 -0600 Subject: [PATCH 099/222] Incorporated information from https://github.com/docker/docker-core-backlog/issues/396 and https://github.com/docker/docker-core-backlog/issues/432. --- engine/cc-ee-node-activation.md | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/engine/cc-ee-node-activation.md b/engine/cc-ee-node-activation.md index 4542bea926..66c429e44f 100644 --- a/engine/cc-ee-node-activation.md +++ b/engine/cc-ee-node-activation.md @@ -21,7 +21,8 @@ The activation can be performed either online with connection to Docker Hub, or ## Docker Engine 18.09 CE to EE Node Activation Process -1. Check the current Docker version. +1. Check the current Docker version. Both the Docker client and server (`containerd`) need to be installed. Your output may vary slightly from what is displayed on this page. + ``` root@docker-node:~# docker version Client: @@ -42,12 +43,27 @@ Server: OS/Arch: linux/amd64 Experimental: false ``` -**NOTE**: Your output may vary slightly from what is displayed on this page. 2. Log into the Docker engine from the command line. +**NOTE:** When the running the command `docker login`, the shell stores the credentials in the current users's home directory. For CentOS and Red Hat, the `sudo` command overwrites overwrites the $HOME environment variable. + + +For Ubuntu or Debian: ``` -root@docker-node:~# docker login +$ docker login +Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. +Username: beluga +Password: +WARNING! Your password will be stored unencrypted in /home/docker/.docker/config.json. +Configure a credential helper to remove this warning. See +https://docs.docker.com/engine/reference/commandline/login/#credentials-store +Login Succeeded +``` + +For CentOS or Red Hat Linux, use `sudo`: +``` +$ sudo docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. Username: beluga Password: @@ -59,6 +75,8 @@ Login Succeeded 3. Activate the EE license. You must use sudo even if your user is part of the docker group. +For Debian, Ubuntu, CentOS, or Red Hat Linux: + ``` root@docker-node:~# sudo docker engine activate Looking for existing licenses for beluga... From b1c961d8a3922832ccf804d60bfc85093b940a7a Mon Sep 17 00:00:00 2001 From: Anne Henmi Date: Thu, 4 Oct 2018 19:10:10 -0600 Subject: [PATCH 100/222] Added content for https://github.com/docker/docker-core-backlog/issues/374 --- engine/cc-ee-node-activation.md | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/engine/cc-ee-node-activation.md b/engine/cc-ee-node-activation.md index 66c429e44f..6ea47e2997 100644 --- a/engine/cc-ee-node-activation.md +++ b/engine/cc-ee-node-activation.md @@ -73,23 +73,20 @@ https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded ``` -3. Activate the EE license. You must use sudo even if your user is part of the docker group. +3. [Download your Docker Enterprise license](https://success.docker.com/article/where-is-my-docker-enterprise-edition-license) and distribute it to your Docker engines. -For Debian, Ubuntu, CentOS, or Red Hat Linux: +4. Activate the EE license. You must use sudo even if your user is part of the docker group. ``` -root@docker-node:~# sudo docker engine activate +root@docker-node:~# sudo docker engine actviate --license dockersub.lic Looking for existing licenses for beluga... NUM OWNER PRODUCT ID EXPIRES PRICING COMPONENTS 0 beluga docker-ee-trial 2018-09-13 21:41:12 +0000 UTC Nodes:10 1 beluga docker-ee-trial 2018-08-31 03:17:15 +0000 UTC Nodes:10 ``` -4. Pick the license of your choice -``` -Please pick a license by number: 0 -waiting for engine to be responsive... engine is online. -``` +**NOTE:** If the Docker EE engines are in a swarm cluster, you only need to activate the license on the +manager node. This action stores the license as a swarm configuration, which is compatible with UCP. 5. Check the Docker Engine version. The server engine will now be EE, and the client will stay CE. ``` From b2b2162cb822180cf2dad5fe1753f68ae70df5ef Mon Sep 17 00:00:00 2001 From: LoreenRH Date: Mon, 23 Jul 2018 16:30:31 +0200 Subject: [PATCH 101/222] Update docs for docker desktop Signed-off-by: LoreenRH --- _includes/kubernetes-mac-win.md | 23 +- .../images/diagnose-feedback-id.png | Bin 383556 -> 134877 bytes docker-for-mac/images/diagnose-feedback.png | Bin 250588 -> 130542 bytes .../mac-install-success-docker-cloud.png | Bin 251843 -> 128460 bytes .../images/menu/prefs-kubernetes.png | Bin 83844 -> 115047 bytes docker-for-mac/index.md | 289 +++++++++++------- docker-for-mac/opensource.md | 2 +- docker-for-mac/troubleshoot.md | 132 ++++---- docker-for-windows/faqs.md | 10 +- .../images/diagnose-feedback.png | Bin 0 -> 112335 bytes docker-for-windows/images/diagnostic-id.png | Bin 217768 -> 125846 bytes .../images/docker-app-welcome.png | Bin 216825 -> 96869 bytes .../images/docker-menu-context-switch.png | Bin 0 -> 38589 bytes .../images/docker-menu-settings.png | Bin 52416 -> 24546 bytes .../images/docker-menu-switch.png | Bin 53557 -> 9200 bytes docker-for-windows/images/issue-template.png | Bin 0 -> 141178 bytes .../images/settings-advanced.png | Bin 151043 -> 83559 bytes .../images/settings-daemon-advanced.png | Bin 116102 -> 92368 bytes .../images/settings-daemon-basic.png | Bin 116037 -> 91815 bytes .../images/settings-diagnose.png | Bin 180072 -> 0 bytes .../images/settings-general.png | Bin 141311 -> 105747 bytes .../images/settings-kubernetes.png | Bin 94161 -> 69476 bytes .../images/settings-network.png | Bin 125610 -> 86726 bytes .../images/settings-proxies.png | Bin 122647 -> 84427 bytes docker-for-windows/images/settings-reset.png | Bin 107838 -> 74324 bytes .../images/settings-shared-drives.png | Bin 97784 -> 72039 bytes docker-for-windows/index.md | 38 +-- docker-for-windows/install.md | 109 ++++--- docker-for-windows/opensource.md | 2 +- docker-for-windows/troubleshoot.md | 269 ++++++++++------ 30 files changed, 510 insertions(+), 364 deletions(-) create mode 100644 docker-for-windows/images/diagnose-feedback.png create mode 100644 docker-for-windows/images/docker-menu-context-switch.png create mode 100644 docker-for-windows/images/issue-template.png delete mode 100644 docker-for-windows/images/settings-diagnose.png diff --git a/_includes/kubernetes-mac-win.md b/_includes/kubernetes-mac-win.md index b4d794fa76..e4b895d95e 100644 --- a/_includes/kubernetes-mac-win.md +++ b/_includes/kubernetes-mac-win.md @@ -12,13 +12,11 @@ Usage: {% include kubernetes-mac-win.md platform="mac" %} {% if platform == "mac" %} {% assign product = "Docker for Mac" %} - {% capture min-version %}{{ product }} 17.12 CE{% endcapture %} - {% capture min-stable-version %}{{ product }} 18.06 CE{% endcapture %} - + {% capture min-version %}{{ product }} **17.12 CE Edge**{% endcapture %} + {% capture version-caveat %} - **Kubernetes is only available in {{ min-version }} and higher on the Edge channel, and in {{ in-stable-version }} and higher in the Stable channel** - - {% endcapture %} + Kubernetes is available in {{ min-version }} and higher, and **18.06 Stable** and higher + {% endcapture%} {% capture local-kubectl-warning %} > If you independently installed the Kubernetes CLI, `kubectl`, make sure that @@ -33,26 +31,21 @@ Usage: {% include kubernetes-mac-win.md platform="mac" %} {% elsif platform == "windows" %} {% assign product = "Docker for Windows" %} - {% capture min-version %}{{ product }} 18.02 CE{% endcapture %} - {% capture min-stable-version %}{{ product }} 18.06 CE{% endcapture %} + {% capture min-version %}{{ product }} **18.02 CE Edge**{% endcapture %} {% capture version-caveat %} - **Kubernetes is only available in {{ min-version }} and higher on the Edge channel, and in {{ in-stable-version }} and higher in the Stable channel** + Kubernetes is available in {{ min-version }} and higher, and **18.06 Stable** and higher {% endcapture %} {% capture local-kubectl-warning %} -If you installed `kubectl` by another method, and experience conflicts, remove it. + If you installed `kubectl` by another method, and experience conflicts, remove it. {% endcapture %} {% assign kubectl-path = "C:\>Program Files\Docker\Docker\Resources\bin\kubectl.exe" %} {% endif %} -{{ version-caveat }} To find out more about Stable and Edge channels and how to -switch between them, see -[General configuration](/docker-for-{{ platform }}/#general). - -{{ min-version }} includes a standalone Kubernetes server and client, +{{ version-caveat }}, this includes a standalone Kubernetes server and client, as well as Docker CLI integration. The Kubernetes server runs locally within your Docker instance, is not configurable, and is a single-node cluster. diff --git a/docker-for-mac/images/diagnose-feedback-id.png b/docker-for-mac/images/diagnose-feedback-id.png index 68bf55f4b68ecd778b066b8483f67452e3abbdaf..69f5a6b82956b423815a5385e922a6686fb2c2c6 100644 GIT binary patch literal 134877 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